From 695358bfbcd53e0501bfe40b743a2c2bf0082f55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antonio=20Gonz=C3=A1lez=20Viegas?= Date: Tue, 10 Oct 2023 09:47:16 +0200 Subject: [PATCH] Fix dependencies --- package.json | 7 +- resources/openbim-components.js | 196283 +++++++++++++++++++------ src/editors/Snapper/index.ts | 8 +- src/primitives/OffsetFaces/index.ts | 7 +- yarn.lock | 105 +- 5 files changed, 149035 insertions(+), 47375 deletions(-) diff --git a/package.json b/package.json index f5307f4..99be9f9 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "openbim-clay", "main": "index.js", - "version": "0.0.3", + "version": "0.0.4", "author": "antonio gonzalez viegas, quim moya", "license": "MIT", "packageManager": "yarn@3.2.1", @@ -29,6 +29,7 @@ "eslint-plugin-import": "^2.23.4", "eslint-plugin-prettier": "^3.4.0", "jest": "27.0.4", + "openbim-components": "^1.1.2", "prettier": "^2.3.1", "rollup": "3.2.3", "ts-jest": "^27.0.3", @@ -37,7 +38,9 @@ }, "dependencies": { "earcut": "^2.2.4", - "openbim-components": "1.0.0-alpha.102", "three": "0.152.2" + }, + "peerDependencies": { + "openbim-components": "^1.1.2" } } diff --git a/resources/openbim-components.js b/resources/openbim-components.js index 184ba9a..9f1b607 100644 --- a/resources/openbim-components.js +++ b/resources/openbim-components.js @@ -1,7 +1,106 @@ -import * as THREE from 'https://unpkg.com/three@0.152.2/build/three.module.js'; -import { Vector3, Matrix4, Object3D, Vector2, Plane, Line3, Triangle, Sphere, Box3, Mesh, Raycaster as Raycaster$1, Quaternion, Euler, MeshBasicMaterial, LineBasicMaterial, CylinderGeometry, BoxGeometry, BufferGeometry, Float32BufferAttribute, OctahedronGeometry, Line as Line$2, SphereGeometry, TorusGeometry, PlaneGeometry, DoubleSide, Color, OrthographicCamera, REVISION, BufferAttribute, UniformsLib, ShaderLib, UniformsUtils, Vector4, MathUtils } from 'https://unpkg.com/three@0.152.2/build/three.module.js'; +import * as THREE$1 from 'https://unpkg.com/three@0.152.2/build/three.module.js'; +import { Vector3 as Vector3$1, Matrix4, Object3D, Vector2 as Vector2$1, Raycaster as Raycaster$1, BufferAttribute as BufferAttribute$1, Plane, Line3, Triangle, Sphere, BackSide, DoubleSide, Box3, FrontSide, Mesh, Ray, Quaternion as Quaternion$1, Euler, MeshBasicMaterial, LineBasicMaterial, CylinderGeometry, BoxGeometry, BufferGeometry, Float32BufferAttribute, OctahedronGeometry, Line as Line$2, SphereGeometry, TorusGeometry, PlaneGeometry, EventDispatcher as EventDispatcher$1, MOUSE, TOUCH, Spherical, Color, PropertyBinding, InterpolateLinear, Source, NoColorSpace, MathUtils, RGBAFormat, InterpolateDiscrete, Scene, NearestFilter, NearestMipmapNearestFilter, NearestMipmapLinearFilter, LinearFilter, LinearMipmapNearestFilter, LinearMipmapLinearFilter, ClampToEdgeWrapping, RepeatWrapping, MirroredRepeatWrapping, SRGBColorSpace, InstancedMesh, OrthographicCamera, ShaderMaterial, UniformsUtils, WebGLRenderTarget, Clock, REVISION, DepthTexture, UnsignedIntType, DepthFormat, DataTexture, WebGLMultipleRenderTargets, RedFormat, FloatType, HalfFloatType, UniformsLib, ShaderLib, InstancedBufferGeometry, InstancedInterleavedBuffer, InterleavedBufferAttribute, WireframeGeometry, Vector4 } from 'https://unpkg.com/three@0.152.2/build/three.module.js'; + +var OBC = /*#__PURE__*/Object.freeze({ + __proto__: null, + get Component () { return Component; }, + get Event () { return Event; }, + get BaseRenderer () { return BaseRenderer; }, + get Mouse () { return Mouse; }, + get BaseSVGAnnotation () { return BaseSVGAnnotation; }, + get UIElement () { return UIElement; }, + get Disposer () { return Disposer; }, + get SimpleScene () { return SimpleScene; }, + get ToolComponent () { return ToolComponent; }, + get SimpleRenderer () { return SimpleRenderer; }, + get SimpleCamera () { return SimpleCamera; }, + get SimpleRaycaster () { return SimpleRaycaster; }, + get SimpleGrid () { return SimpleGrid; }, + get Components () { return Components; }, + get SimplePlane () { return SimplePlane; }, + get SimpleClipper () { return SimpleClipper; }, + get ScreenCuller () { return ScreenCuller; }, + get LocalCacher () { return LocalCacher; }, + get SimpleSVGViewport () { return SimpleSVGViewport; }, + get Simple2DMarker () { return Simple2DMarker; }, + get MaterialManager () { return MaterialManager; }, + get Simple2DScene () { return Simple2DScene; }, + get FragmentManager () { return FragmentManager; }, + get FragmentIfcLoader () { return FragmentIfcLoader; }, + get FragmentHighlighter () { return FragmentHighlighter; }, + get FragmentTree () { return FragmentTree; }, + get FragmentClassifier () { return FragmentClassifier; }, + get FragmentHider () { return FragmentHider; }, + get FragmentCacher () { return FragmentCacher; }, + get FragmentExploder () { return FragmentExploder; }, + get FragmentPlans () { return FragmentPlans; }, + get FragmentBoundingBox () { return FragmentBoundingBox; }, + get FragmentClipStyler () { return FragmentClipStyler; }, + get Button () { return Button; }, + get Toolbar () { return Toolbar; }, + get TreeView () { return TreeView; }, + get UIManager () { return UIManager; }, + get SimpleUIComponent () { return SimpleUIComponent; }, + get SimpleUICard () { return SimpleUICard; }, + get FloatingWindow () { return FloatingWindow; }, + get Dropdown () { return Dropdown; }, + get TextInput () { return TextInput; }, + get CheckboxInput () { return CheckboxInput; }, + get ColorInput () { return ColorInput; }, + get RangeInput () { return RangeInput; }, + get Canvas () { return Canvas; }, + get DragAndDropInput () { return DragAndDropInput; }, + get Spinner () { return Spinner; }, + get ToastNotification () { return ToastNotification; }, + get TextArea () { return TextArea; }, + get CommandsMenu () { return CommandsMenu; }, + get Drawer () { return Drawer; }, + get Modal () { return Modal; }, + get CloudProcessor () { return CloudProcessor; }, + get OrthoPerspectiveCamera () { return OrthoPerspectiveCamera; }, + get EdgesPlane () { return EdgesPlane; }, + get EdgesClipper () { return EdgesClipper; }, + get PostproductionRenderer () { return PostproductionRenderer; }, + get ShadowDropper () { return ShadowDropper; }, + get ViewpointsManager () { return ViewpointsManager; }, + get CubeMap () { return CubeMap; }, + get MiniMap () { return MiniMap; }, + get ArrowAnnotation () { return ArrowAnnotation; }, + get CircleAnnotation () { return CircleAnnotation; }, + get TextAnnotation () { return TextAnnotation; }, + get RectangleAnnotation () { return RectangleAnnotation; }, + get DrawManager () { return DrawManager; }, + get numberOfDigits () { return numberOfDigits; }, + get toCompositeID () { return toCompositeID; }, + get tooeenRandomId () { return tooeenRandomId; }, + get generateExpressIDFragmentIDMap () { return generateExpressIDFragmentIDMap; }, + get generateIfcGUID () { return generateIfcGUID; }, + get bufferGeometryToIndexed () { return bufferGeometryToIndexed; }, + get LineIntersectionPicker () { return LineIntersectionPicker; }, + get VertexPicker () { return VertexPicker; }, + get GeometryVerticesMarker () { return GeometryVerticesMarker; }, + get IfcCategories () { return IfcCategories; }, + get IfcCategoryMap () { return IfcCategoryMap; }, + get IfcElements () { return IfcElements; }, + get IfcJsonExporter () { return IfcJsonExporter; }, + get IfcPropertiesManager () { return IfcPropertiesManager; }, + get PropertyTag () { return PropertyTag; }, + get AttributeSet () { return AttributeSet; }, + get IfcPropertiesProcessor () { return IfcPropertiesProcessor; }, + get IfcPropertiesFinder () { return IfcPropertiesFinder; }, + get IfcPropertiesUtils () { return IfcPropertiesUtils; }, + get MapboxWindow () { return MapboxWindow; }, + get AreaMeasurement () { return AreaMeasurement; }, + get AngleMeasurement () { return AngleMeasurement; }, + get DimensionLabelClassName () { return DimensionLabelClassName; }, + get DimensionPreviewClassName () { return DimensionPreviewClassName; }, + get SimpleDimensionLine () { return SimpleDimensionLine; }, + get LengthMeasurement () { return LengthMeasurement; }, + get DXFExporter () { return DXFExporter; }, + get RoadNavigator () { return RoadNavigator; } +}); -class BufferManager { +let BufferManager$1 = class BufferManager { /** The current size of the buffers. */ get size() { const firstAttribute = this.attributes[0]; @@ -33,7 +132,7 @@ class BufferManager { if (this.geometry.hasAttribute(name)) { this.geometry.deleteAttribute(name); } - const attribute = new THREE.BufferAttribute(new Float32Array(0), 3); + const attribute = new THREE$1.BufferAttribute(new Float32Array(0), 3); attribute.name = name; this.geometry.setAttribute(name, attribute); } @@ -58,7 +157,7 @@ class BufferManager { resizeBuffers(attribute, oldCapacity) { this.geometry.deleteAttribute(attribute.name); const array = new Float32Array(this.capacity); - const newAttribute = new THREE.BufferAttribute(array, 3); + const newAttribute = new THREE$1.BufferAttribute(array, 3); newAttribute.name = attribute.name; newAttribute.count = attribute.count; this.geometry.setAttribute(attribute.name, newAttribute); @@ -69,12 +168,12 @@ class BufferManager { newAttribute.setXYZ(i, x, y, z); } } -} +}; /** * An object to keep track of entities and its position in a geometric buffer. */ -class IdIndexMap { +let IdIndexMap$1 = class IdIndexMap { constructor() { this._idGenerator = 0; this._ids = []; @@ -181,9 +280,9 @@ class IdIndexMap { getLastID() { return this._ids[this._ids.length - 1]; } -} +}; -class Selector { +let Selector$1 = class Selector { constructor() { this.data = new Set(); } @@ -226,7 +325,7 @@ class Selector { } return notSelectedIDs; } -} +}; class Vector { static get up() { @@ -301,14 +400,14 @@ class Raycaster { } } constructor() { - this._mouse = new THREE.Vector2(); - this._mouseEvent = new THREE.Vector2(); + this._mouse = new THREE$1.Vector2(); + this._mouseEvent = new THREE$1.Vector2(); this._trackMouse = false; this.getMousePosition = (event) => { this._mouseEvent.x = event.clientX; this._mouseEvent.y = event.clientY; }; - this._caster = new THREE.Raycaster(); + this._caster = new THREE$1.Raycaster(); if (!this._caster.params.Points) { throw new Error("Raycaster has undefined Points"); } @@ -328,6 +427,38 @@ class Raycaster { } } +/** + * Components are the building blocks of this library. Everything is a + * component: tools, scenes, objects, cameras, etc. + * All components must inherit from this class. The `Type` parameter defines + * the type of the core of this component. For instance, a component containing a + */ +class Component { + constructor(components) { + this.components = components; + /** Whether is component is {@link Disposable}. */ + this.isDisposeable = () => { + return "dispose" in this; + }; + /** Whether is component is {@link Resizeable}. */ + this.isResizeable = () => { + return "resize" in this && "getSize" in this; + }; + /** Whether is component is {@link Updateable}. */ + this.isUpdateable = () => { + return ("onAfterUpdate" in this && "onBeforeUpdate" in this && "update" in this); + }; + /** Whether is component is {@link Hideable}. */ + this.isHideable = () => { + return "visible" in this; + }; + /** Whether is component implements any kind of {@link UI}. */ + this.hasUI = () => { + return "uiElement" in this; + }; + } +} + /** * Simple event handler by * [Jason Kleban](https://gist.github.com/JasonKleban/50cee44960c225ac1993c922563aa540). @@ -339,37 +470,275 @@ class Raycaster { */ class Event { constructor() { - /** - * Triggers all the callbacks assigned to this event. - */ - this.trigger = ((data) => { - // @ts-ignore - this.handlers.slice(0).forEach((h) => h(data)); - }); + /** Triggers all the callbacks assigned to this event. */ + this.trigger = async (data) => { + const handlers = this.handlers.slice(0); + for (const handler of handlers) { + await handler(data); + } + }; this.handlers = []; } /** * Add a callback to this event instance. * @param handler - the callback to be added to this event. */ - on(handler) { + add(handler) { this.handlers.push(handler); } /** * Removes a callback from this event instance. * @param handler - the callback to be removed from this event. */ - off(handler) { + remove(handler) { this.handlers = this.handlers.filter((h) => h !== handler); } - /** - * Gets rid of all the suscribed events. - */ + /** Gets rid of all the suscribed events. */ reset() { this.handlers.length = 0; } } +/** + * A base component for other components whose main mission is to render a + * [scene](https://threejs.org/docs/#api/en/scenes/Scene). + * @noInheritDoc + */ +class BaseRenderer extends Component { + constructor() { + super(...arguments); + /** {@link Resizeable.onResize} */ + this.onResize = new Event(); + /** + * Event that fires when there has been a change to the list of clipping + * planes used by the active renderer. + */ + this.onClippingPlanesUpdated = new Event(); + /** + * The list of [clipping planes](https://threejs.org/docs/#api/en/renderers/WebGLRenderer.clippingPlanes) used by this + * instance of the renderer. + */ + this.clippingPlanes = []; + } + /** + * Forces the update of the clipping planes and all components that depend + * on them that are subscribed to `onClippingPlanesUpdated`. + */ + async updateClippingPlanes() { + await this.onClippingPlanesUpdated.trigger(); + } + /** + * Adds or removes a + * [clipping plane](https://threejs.org/docs/#api/en/renderers/WebGLRenderer.clippingPlanes) + * to the renderer. + */ + togglePlane(active, plane, isLocal) { + plane.isLocal = isLocal; + const index = this.clippingPlanes.indexOf(plane); + if (active && index === -1) { + this.clippingPlanes.push(plane); + } + else if (!active && index > -1) { + this.clippingPlanes.splice(index, 1); + } + const renderer = this.get(); + renderer.clippingPlanes = this.clippingPlanes.filter((plane) => !plane.isLocal); + } +} + +/** + * A helper to easily get the real position of the mouse in the Three.js canvas + * to work with tools like the + * [raycaster](https://threejs.org/docs/#api/en/core/Raycaster), even if it has + * been transformed through CSS or doesn't occupy the whole screen. + */ +class Mouse { + constructor(dom) { + this.dom = dom; + this._position = new THREE$1.Vector2(); + this.updateMouseInfo = (event) => { + this._event = event; + }; + this.setupEvents(true); + } + /** + * The real position of the mouse of the Three.js canvas. + */ + get position() { + if (this._event) { + const bounds = this.dom.getBoundingClientRect(); + this._position.x = this.getPositionX(bounds, this._event); + this._position.y = this.getPositionY(bounds, this._event); + } + return this._position; + } + /** {@link Disposable.dispose} */ + async dispose() { + this.setupEvents(false); + } + getPositionY(bound, event) { + return -((event.clientY - bound.top) / (bound.bottom - bound.top)) * 2 + 1; + } + getPositionX(bound, event) { + return ((event.clientX - bound.left) / (bound.right - bound.left)) * 2 - 1; + } + setupEvents(active) { + if (active) { + this.dom.addEventListener("mousemove", this.updateMouseInfo); + } + else { + this.dom.removeEventListener("mousemove", this.updateMouseInfo); + } + } +} + +function numberOfDigits(x) { + return Math.max(Math.floor(Math.log10(Math.abs(x))), 0) + 1; +} +function toCompositeID(id, count) { + const factor = 0.1 ** numberOfDigits(count); + id += count * factor; + let idString = id.toString(); + // add missing zeros + if (count % 10 === 0) { + for (let i = 0; i < factor; i++) { + idString += "0"; + } + } + return idString; +} +// Temporal id generator until the IFC id algorithm is implemented. +function tooeenRandomId() { + const characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; + let id = ""; + for (let i = 0; i < 10; i++) { + const randomIndex = Math.floor(Math.random() * characters.length); + id += characters.charAt(randomIndex); + } + return id; +} +function generateExpressIDFragmentIDMap(fragmentsList) { + const map = {}; + fragmentsList.forEach((fragment) => { + map[fragment.id] = new Set(fragment.items); + }); + return map; +} +// Would need to review this! +function generateIfcGUID() { + // prettier-ignore + const base64Chars = [ + "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F", "G", "H", + "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", + "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", + "s", "t", "u", "v", "w", "x", "y", "z", "_", "$", + ]; + const guid = THREE$1.MathUtils.generateUUID(); + const tailBytes = ((guid) => { + const bytes = []; + guid.split("-").map((number) => { + const bytesInChar = number.match(/.{1,2}/g); + if (bytesInChar) { + return bytesInChar.map((byte) => bytes.push(parseInt(byte, 16))); + } + return null; + }); + return bytes; + })(guid); + const headBytes = ((guid) => { + const bytes = []; + guid.split("-").map((number) => { + const bytesInChar = number.match(/.{1,2}/g); + if (bytesInChar) { + return bytesInChar.map((byte) => bytes.push(byte)); + } + return null; + }); + return bytes; + })(guid); + const cvTo64 = (number, result, start, len) => { + let num = number; + const n = len; + let i; + for (i = 0; i < n; i += 1) { + result[start + len - i - 1] = + base64Chars[parseInt((num % 64).toString(), 10)]; + num /= 64; + } + return result; + }; + const toUInt16 = (bytes, index) => + // eslint-disable-next-line no-bitwise + parseInt(bytes.slice(index, index + 2).reduce((str, v) => str + v, ""), 16) >>> 0; + const toUInt32 = (bytes, index) => + // eslint-disable-next-line no-bitwise + parseInt(bytes.slice(index, index + 4).reduce((str, v) => str + v, ""), 16) >>> 0; + const num = []; + let str = []; + let i; + let n = 2; + let pos = 0; + num[0] = toUInt32(headBytes, 0) / 16777216; + num[1] = toUInt32(headBytes, 0) % 16777216; + // eslint-disable-next-line no-bitwise + num[2] = (toUInt16(headBytes, 4) * 256 + toUInt16(headBytes, 6) / 256) >>> 0; + num[3] = + // eslint-disable-next-line no-bitwise + ((toUInt16(headBytes, 6) % 256) * 65536 + + tailBytes[8] * 256 + + tailBytes[9]) >>> + 0; + // eslint-disable-next-line no-bitwise + num[4] = (tailBytes[10] * 65536 + tailBytes[11] * 256 + tailBytes[12]) >>> 0; + // eslint-disable-next-line no-bitwise + num[5] = (tailBytes[13] * 65536 + tailBytes[14] * 256 + tailBytes[15]) >>> 0; + for (i = 0; i < 6; i++) { + str = cvTo64(num[i], str, pos, n); + pos += n; + n = 4; + } + return str.join(""); +} +function bufferGeometryToIndexed(geometry) { + const bufferAttribute = geometry.getAttribute("position"); + const size = bufferAttribute.itemSize; + const positions = bufferAttribute.array; + const indices = []; + const vertices = []; + const outVertices = []; + for (let i = 0; i < positions.length; i += size) { + const x = positions[i]; + const y = positions[i + 1]; + let vertex = `${x},${y}`; + const z = positions[i + 2]; + if (size >= 3) { + vertex += `,${z}`; + } + else { + vertex += `,0`; + } + const w = positions[i + 3]; + if (size === 4) { + vertex += `,${w}`; + } + if (vertices.indexOf(vertex) === -1) { + vertices.push(vertex); + indices.push(vertices.length - 1); + const split = vertex.split(","); + split.forEach((component) => outVertices.push(Number(component))); + } + else { + const index = vertices.indexOf(vertex); + indices.push(index); + } + } + const outIndices = new Uint16Array(indices); + const realVertices = new Float32Array(outVertices); + geometry.setAttribute("position", new THREE$1.BufferAttribute(realVertices, size === 2 ? 3 : size)); + geometry.setIndex(new THREE$1.BufferAttribute(outIndices, 1)); + geometry.getAttribute("position").needsUpdate = true; +} + class CSS2DObject extends Object3D { constructor( element = document.createElement( 'div' ) ) { @@ -385,7 +754,7 @@ class CSS2DObject extends Object3D { this.element.setAttribute( 'draggable', false ); - this.center = new Vector2( 0.5, 0.5 ); // ( 0, 0 ) is the lower left; ( 1, 1 ) is the top right + this.center = new Vector2$1( 0.5, 0.5 ); // ( 0, 0 ) is the lower left; ( 1, 1 ) is the top right this.addEventListener( 'removed', function () { @@ -419,901 +788,4113 @@ class CSS2DObject extends Object3D { // -new Vector3(); -new Matrix4(); -new Matrix4(); -new Vector3(); -new Vector3(); +const _vector$3 = new Vector3$1(); +const _viewMatrix = new Matrix4(); +const _viewProjectionMatrix = new Matrix4(); +const _a = new Vector3$1(); +const _b = new Vector3$1(); -var n=new Int32Array(2);new Float32Array(n.buffer);new Float64Array(n.buffer);new Uint16Array(new Uint8Array([1,0]).buffer)[0]===1;var d;(function(s){s[s.UTF8_BYTES=1]="UTF8_BYTES",s[s.UTF16_STRING=2]="UTF16_STRING";})(d||(d={})); - -/*! - * camera-controls - * https://github.com/yomotsu/camera-controls - * (c) 2017 @yomotsu - * Released under the MIT License. - */ -Object.freeze({ - NONE: 0, - ROTATE: 1, - TRUCK: 2, - OFFSET: 4, - DOLLY: 8, - ZOOM: 16, - TOUCH_ROTATE: 32, - TOUCH_TRUCK: 64, - TOUCH_OFFSET: 128, - TOUCH_DOLLY: 256, - TOUCH_ZOOM: 512, - TOUCH_DOLLY_TRUCK: 1024, - TOUCH_DOLLY_OFFSET: 2048, - TOUCH_DOLLY_ROTATE: 4096, - TOUCH_ZOOM_TRUCK: 8192, - TOUCH_ZOOM_OFFSET: 16384, - TOUCH_ZOOM_ROTATE: 32768, -}); -const isBrowser = typeof window !== 'undefined'; -isBrowser && /Mac/.test(navigator.platform); +class CSS2DRenderer { -function arrayToBox( nodeIndex32, array, target ) { + constructor( parameters = {} ) { - target.min.x = array[ nodeIndex32 ]; - target.min.y = array[ nodeIndex32 + 1 ]; - target.min.z = array[ nodeIndex32 + 2 ]; + const _this = this; - target.max.x = array[ nodeIndex32 + 3 ]; - target.max.y = array[ nodeIndex32 + 4 ]; - target.max.z = array[ nodeIndex32 + 5 ]; + let _width, _height; + let _widthHalf, _heightHalf; - return target; + const cache = { + objects: new WeakMap() + }; -} + const domElement = parameters.element !== undefined ? parameters.element : document.createElement( 'div' ); -const BIN_COUNT = 32; -new Array( BIN_COUNT ).fill().map( () => { + domElement.style.overflow = 'hidden'; - return { + this.domElement = domElement; - count: 0, - bounds: new Float32Array( 6 ), - rightCacheBounds: new Float32Array( 6 ), - leftCacheBounds: new Float32Array( 6 ), - candidate: 0, + this.getSize = function () { - }; + return { + width: _width, + height: _height + }; -} ); + }; -class SeparatingAxisBounds { + this.render = function ( scene, camera ) { - constructor() { + if ( scene.matrixWorldAutoUpdate === true ) scene.updateMatrixWorld(); + if ( camera.parent === null && camera.matrixWorldAutoUpdate === true ) camera.updateMatrixWorld(); - this.min = Infinity; - this.max = - Infinity; + _viewMatrix.copy( camera.matrixWorldInverse ); + _viewProjectionMatrix.multiplyMatrices( camera.projectionMatrix, _viewMatrix ); - } + renderObject( scene, scene, camera ); + zOrder( scene ); - setFromPointsField( points, field ) { + }; - let min = Infinity; - let max = - Infinity; - for ( let i = 0, l = points.length; i < l; i ++ ) { + this.setSize = function ( width, height ) { - const p = points[ i ]; - const val = p[ field ]; - min = val < min ? val : min; - max = val > max ? val : max; + _width = width; + _height = height; - } + _widthHalf = _width / 2; + _heightHalf = _height / 2; - this.min = min; - this.max = max; + domElement.style.width = width + 'px'; + domElement.style.height = height + 'px'; - } + }; - setFromPoints( axis, points ) { + function renderObject( object, scene, camera ) { - let min = Infinity; - let max = - Infinity; - for ( let i = 0, l = points.length; i < l; i ++ ) { + if ( object.isCSS2DObject ) { - const p = points[ i ]; - const val = axis.dot( p ); - min = val < min ? val : min; - max = val > max ? val : max; + _vector$3.setFromMatrixPosition( object.matrixWorld ); + _vector$3.applyMatrix4( _viewProjectionMatrix ); - } + const visible = ( object.visible === true ) && ( _vector$3.z >= - 1 && _vector$3.z <= 1 ) && ( object.layers.test( camera.layers ) === true ); + object.element.style.display = ( visible === true ) ? '' : 'none'; - this.min = min; - this.max = max; + if ( visible === true ) { - } + object.onBeforeRender( _this, scene, camera ); - isSeparated( other ) { + const element = object.element; - return this.min > other.max || other.min > this.max; + element.style.transform = 'translate(' + ( - 100 * object.center.x ) + '%,' + ( - 100 * object.center.y ) + '%)' + 'translate(' + ( _vector$3.x * _widthHalf + _widthHalf ) + 'px,' + ( - _vector$3.y * _heightHalf + _heightHalf ) + 'px)'; - } + if ( element.parentNode !== domElement ) { -} + domElement.appendChild( element ); -SeparatingAxisBounds.prototype.setFromBox = ( function () { + } - const p = new Vector3(); - return function setFromBox( axis, box ) { + object.onAfterRender( _this, scene, camera ); - const boxMin = box.min; - const boxMax = box.max; - let min = Infinity; - let max = - Infinity; - for ( let x = 0; x <= 1; x ++ ) { + } - for ( let y = 0; y <= 1; y ++ ) { + const objectData = { + distanceToCameraSquared: getDistanceToSquared( camera, object ) + }; - for ( let z = 0; z <= 1; z ++ ) { + cache.objects.set( object, objectData ); - p.x = boxMin.x * x + boxMax.x * ( 1 - x ); - p.y = boxMin.y * y + boxMax.y * ( 1 - y ); - p.z = boxMin.z * z + boxMax.z * ( 1 - z ); + } - const val = axis.dot( p ); - min = Math.min( val, min ); - max = Math.max( val, max ); + for ( let i = 0, l = object.children.length; i < l; i ++ ) { - } + renderObject( object.children[ i ], scene, camera ); } } - this.min = min; - this.max = max; - - }; - -} )(); - -( (function () { - - const cacheSatBounds = new SeparatingAxisBounds(); - return function areIntersecting( shape1, shape2 ) { - - const points1 = shape1.points; - const satAxes1 = shape1.satAxes; - const satBounds1 = shape1.satBounds; - - const points2 = shape2.points; - const satAxes2 = shape2.satAxes; - const satBounds2 = shape2.satBounds; + function getDistanceToSquared( object1, object2 ) { - // check axes of the first shape - for ( let i = 0; i < 3; i ++ ) { + _a.setFromMatrixPosition( object1.matrixWorld ); + _b.setFromMatrixPosition( object2.matrixWorld ); - const sb = satBounds1[ i ]; - const sa = satAxes1[ i ]; - cacheSatBounds.setFromPoints( sa, points2 ); - if ( sb.isSeparated( cacheSatBounds ) ) return false; + return _a.distanceToSquared( _b ); } - // check axes of the second shape - for ( let i = 0; i < 3; i ++ ) { + function filterAndFlatten( scene ) { - const sb = satBounds2[ i ]; - const sa = satAxes2[ i ]; - cacheSatBounds.setFromPoints( sa, points1 ); - if ( sb.isSeparated( cacheSatBounds ) ) return false; + const result = []; - } + scene.traverse( function ( object ) { - }; + if ( object.isCSS2DObject ) result.push( object ); -}) )(); + } ); -const closestPointLineToLine = ( function () { + return result; - // https://github.com/juj/MathGeoLib/blob/master/src/Geometry/Line.cpp#L56 - const dir1 = new Vector3(); - const dir2 = new Vector3(); - const v02 = new Vector3(); - return function closestPointLineToLine( l1, l2, result ) { + } - const v0 = l1.start; - const v10 = dir1; - const v2 = l2.start; - const v32 = dir2; + function zOrder( scene ) { - v02.subVectors( v0, v2 ); - dir1.subVectors( l1.end, l1.start ); - dir2.subVectors( l2.end, l2.start ); + const sorted = filterAndFlatten( scene ).sort( function ( a, b ) { - // float d0232 = v02.Dot(v32); - const d0232 = v02.dot( v32 ); + if ( a.renderOrder !== b.renderOrder ) { - // float d3210 = v32.Dot(v10); - const d3210 = v32.dot( v10 ); + return b.renderOrder - a.renderOrder; - // float d3232 = v32.Dot(v32); - const d3232 = v32.dot( v32 ); + } - // float d0210 = v02.Dot(v10); - const d0210 = v02.dot( v10 ); + const distanceA = cache.objects.get( a ).distanceToCameraSquared; + const distanceB = cache.objects.get( b ).distanceToCameraSquared; - // float d1010 = v10.Dot(v10); - const d1010 = v10.dot( v10 ); + return distanceA - distanceB; - // float denom = d1010*d3232 - d3210*d3210; - const denom = d1010 * d3232 - d3210 * d3210; + } ); - let d, d2; - if ( denom !== 0 ) { + const zMax = sorted.length; - d = ( d0232 * d3210 - d0210 * d3232 ) / denom; + for ( let i = 0, l = sorted.length; i < l; i ++ ) { - } else { + sorted[ i ].element.style.zIndex = zMax - i; - d = 0; + } } - d2 = ( d0232 + d * d3210 ) / d3232; - - result.x = d; - result.y = d2; - - }; - -} )(); - -const closestPointsSegmentToSegment = ( function () { - - // https://github.com/juj/MathGeoLib/blob/master/src/Geometry/LineSegment.cpp#L187 - const paramResult = new Vector2(); - const temp1 = new Vector3(); - const temp2 = new Vector3(); - return function closestPointsSegmentToSegment( l1, l2, target1, target2 ) { - - closestPointLineToLine( l1, l2, paramResult ); + } - let d = paramResult.x; - let d2 = paramResult.y; - if ( d >= 0 && d <= 1 && d2 >= 0 && d2 <= 1 ) { +} - l1.at( d, target1 ); - l2.at( d2, target2 ); +class LineIntersectionPicker extends Component { + set enabled(value) { + this._enabled = value; + if (!value) { + this._pickedPoint = null; + } + } + get enabled() { + return this._enabled; + } + get config() { + return this._config; + } + set config(value) { + this._config = { ...this._config, ...value }; + } + constructor(components, config) { + super(components); + this.name = "LineIntersectionPicker"; + this.onAfterUpdate = new Event(); + this.onBeforeUpdate = new Event(); + this._pickedPoint = null; + this._raycaster = new Raycaster$1(); + this._originVector = new Vector3$1(); + this.config = { + snapDistance: 0.25, + ...config, + }; + if (this._raycaster.params.Line) { + this._raycaster.params.Line.threshold = 0.2; + } + this._mouse = new Mouse(components.renderer.get().domElement); + const marker = document.createElement("div"); + marker.className = "w-[15px] h-[15px] border-3 border-solid border-red-500"; + this._marker = new CSS2DObject(marker); + this._marker.visible = false; + this.components.scene.get().add(this._marker); + this.enabled = false; + } + async dispose() { + this.onAfterUpdate.reset(); + this.onBeforeUpdate.reset(); + this._marker.removeFromParent(); + this._marker.element.remove(); + } + /** {@link Updateable.update} */ + update() { + if (!this.enabled) { + return; + } + this.onBeforeUpdate.trigger(this); + this._raycaster.setFromCamera(this._mouse.position, this.components.camera.get()); + // @ts-ignore + const lines = this.components.meshes.filter((mesh) => mesh.isLine); + const intersects = this._raycaster.intersectObjects(lines); + // console.log(intersects) + if (intersects.length !== 2) { + this._pickedPoint = null; + this.updateMarker(); + return; + } + // if (!intersects[0].index || !intersects[1].index) {return} + const lineA = intersects[0].object; + const lineB = intersects[1].object; + const indices = [intersects[0].index, intersects[1].index]; + const hitPoint = new Vector3$1() + .copy(intersects[0].point) + .add(intersects[1].point) + .multiplyScalar(0.5); + const isSameElement = lineA.uuid === lineB.uuid; + if (isSameElement) { + const line = lineA; + const pos = line.geometry.getAttribute("position"); + const vectorA = new Vector3$1().fromBufferAttribute(pos, indices[0]); + const vectorB = new Vector3$1().fromBufferAttribute(pos, indices[0] + 1); + const vectorC = new Vector3$1().fromBufferAttribute(pos, indices[1]); + const vectorD = new Vector3$1().fromBufferAttribute(pos, indices[1] + 1); + const point = this.findIntersection(vectorA, vectorB, vectorC, vectorD); + if (!point) { + return; + } + this._pickedPoint = point; + if (this._pickedPoint.distanceTo(hitPoint) > 0.25) { + return; + } + this.updateMarker(); + } + else { + const pos1 = lineA.geometry.getAttribute("position"); + const pos2 = lineB.geometry.getAttribute("position"); + const vectorA = new Vector3$1().fromBufferAttribute(pos1, indices[0]); + const vectorB = new Vector3$1().fromBufferAttribute(pos1, indices[0] + 1); + const vectorC = new Vector3$1().fromBufferAttribute(pos2, indices[1]); + const vectorD = new Vector3$1().fromBufferAttribute(pos2, indices[1] + 1); + const point = this.findIntersection(vectorA, vectorB, vectorC, vectorD); + if (!point) { + return; + } + this._pickedPoint = point; + if (this._pickedPoint.distanceTo(hitPoint) > 0.25) { + return; + } + this.updateMarker(); + } + this.onAfterUpdate.trigger(this); + } + findIntersection(p1, p2, p3, p4) { + const line1Dir = p2.sub(p1); + const line2Dir = p4.sub(p3); + const lineDirCross = new Vector3$1().crossVectors(line1Dir, line2Dir); + const denominator = lineDirCross.lengthSq(); + if (denominator === 0) { + return null; + } + const lineToPoint = p3.sub(p1); + const lineToPointCross = new Vector3$1().crossVectors(lineDirCross, lineToPoint); + const t1 = lineToPointCross.dot(line2Dir) / denominator; + return new Vector3$1().addVectors(p1, line1Dir.multiplyScalar(t1)); + } + updateMarker() { + var _a; + this._marker.visible = !!this._pickedPoint; + this._marker.position.copy((_a = this._pickedPoint) !== null && _a !== void 0 ? _a : this._originVector); + } + get() { + return this._pickedPoint; + } +} - return; +class Simple2DMarker extends Component { + set visible(value) { + this._visible = value; + this._marker.visible = value; + } + get visible() { + return this._visible; + } + constructor(components, marker) { + super(components); + /** {@link Component.enabled} */ + this.enabled = true; + this._visible = true; + let _marker; + if (marker) { + _marker = marker; + } + else { + _marker = document.createElement("div"); + _marker.className = + "w-[15px] h-[15px] border-3 border-solid border-red-600"; + } + this._marker = new CSS2DObject(_marker); + this.components.scene.get().add(this._marker); + this.visible = true; + } + /** {@link Component.get} */ + get() { + return this._marker; + } + toggleVisibility() { + this.visible = !this.visible; + } + async dispose() { + this._marker.removeFromParent(); + this._marker.element.remove(); + } +} - } else if ( d >= 0 && d <= 1 ) { +class VertexPicker extends Component { + set enabled(value) { + this._enabled = value; + if (!value) { + this._marker.visible = false; + this._pickedPoint = null; + } + } + get enabled() { + return this._enabled; + } + get _raycaster() { + return this._components.raycaster; + } + constructor(components, config) { + super(components); + this.name = "VertexPicker"; + this.afterUpdate = new Event(); + this.beforeUpdate = new Event(); + this._pickedPoint = null; + this._enabled = false; + this._workingPlane = null; + this.update = () => { + if (!this.enabled) + return; + this.beforeUpdate.trigger(this); + const intersects = this._raycaster.castRay(); + if (!intersects) { + this._marker.visible = false; + this._pickedPoint = null; + return; + } + const point = this.getClosestVertex(intersects); + if (!point) { + this._marker.visible = false; + this._pickedPoint = null; + return; + } + const isOnPlane = !this.workingPlane + ? true + : Math.abs(this.workingPlane.distanceToPoint(point)) < 0.001; + if (!isOnPlane) { + this._marker.visible = false; + this._pickedPoint = null; + return; + } + this._pickedPoint = point; + this._marker.visible = true; + this._marker + .get() + .position.set(this._pickedPoint.x, this._pickedPoint.y, this._pickedPoint.z); + this.afterUpdate.trigger(this); + }; + this._components = components; + this.config = { + snapDistance: 0.25, + showOnlyVertex: false, + ...config, + }; + this._marker = new Simple2DMarker(components, this.config.previewElement); + this._marker.visible = false; + this.setupEvents(true); + this.enabled = false; + } + set workingPlane(plane) { + this._workingPlane = plane; + } + get workingPlane() { + return this._workingPlane; + } + set config(value) { + this._config = { ...this._config, ...value }; + } + get config() { + return this._config; + } + async dispose() { + this.setupEvents(false); + await this._marker.dispose(); + this.afterUpdate.reset(); + this.beforeUpdate.reset(); + this._components = null; + } + get() { + return this._pickedPoint; + } + getClosestVertex(intersects) { + let closestVertex = new THREE$1.Vector3(); + let vertexFound = false; + let closestDistance = Number.MAX_SAFE_INTEGER; + const vertices = this.getVertices(intersects); + vertices === null || vertices === void 0 ? void 0 : vertices.forEach((vertex) => { + if (!vertex) + return; + const distance = intersects.point.distanceTo(vertex); + if (distance > closestDistance || distance > this._config.snapDistance) + return; + vertexFound = true; + closestVertex = vertex; + closestDistance = intersects.point.distanceTo(vertex); + }); + if (vertexFound) + return closestVertex; + return this.config.showOnlyVertex ? null : intersects.point; + } + getVertices(intersects) { + const mesh = intersects.object; + if (!intersects.face || !mesh) + return null; + const geom = mesh.geometry; + return [ + this.getVertex(intersects.face.a, geom), + this.getVertex(intersects.face.b, geom), + this.getVertex(intersects.face.c, geom), + ].map((vertex) => vertex === null || vertex === void 0 ? void 0 : vertex.applyMatrix4(mesh.matrixWorld)); + } + getVertex(index, geom) { + if (index === undefined) + return null; + const vertices = geom.attributes.position; + return new THREE$1.Vector3(vertices.getX(index), vertices.getY(index), vertices.getZ(index)); + } + setupEvents(active) { + const container = this._components.ui.viewerContainer; + if (active) { + container.addEventListener("mousemove", this.update); + } + else { + container.addEventListener("mousemove", this.update); + } + } +} - // Only d2 is out of bounds. - if ( d2 < 0 ) { +class GeometryVerticesMarker extends Component { + set visible(value) { + this._visible = value; + for (const marker of this._markers) + marker.visible = value; + } + get visible() { + return this._visible; + } + constructor(components, geometry) { + super(components); + this.name = "GeometryVerticesMarker"; + this.enabled = true; + this._markers = []; + this._visible = true; + const position = geometry.getAttribute("position"); + for (let index = 0; index < position.count; index++) { + const marker = new Simple2DMarker(components); + marker + .get() + .position.set(position.getX(index), position.getY(index), position.getZ(index)); + this._markers.push(marker); + } + } + async dispose() { + for (const marker of this._markers) { + await marker.dispose(); + } + this._markers = []; + } + get() { + return this._markers; + } +} - l2.at( 0, target2 ); +class BaseSVGAnnotation extends Component { + constructor() { + super(...arguments); + this.id = tooeenRandomId(); + this._enabled = false; + this._isDrawing = false; + this._svgViewport = null; + this.start = (_event) => { }; + this.draw = (_event) => { }; + this.end = (_event) => { }; + this.cancel = (event) => { + if (event) { + event.stopImmediatePropagation(); + if (event.key === "Escape") { + this.cancel(event); + } + } + }; + } + set svgViewport(value) { + this._svgViewport = value; + } + get svgViewport() { + var _a; + return (_a = this._svgViewport) !== null && _a !== void 0 ? _a : undefined; + } + set enabled(value) { + const main = this.uiElement.get("main"); + if (!this._svgViewport) { + main.active = false; + this._enabled = false; + return; + } + if (value === this._enabled) + return; + this._enabled = value; + main.active = value; + this.setupEvents(value); + } + get enabled() { + return this._enabled; + } + get canDraw() { + return this.enabled && this._svgViewport; + } + set drawManager(manager) { + this._drawManager = manager; + if (manager) { + manager.addDrawingTool(this.id, this); + const main = this.uiElement.get("main"); + manager.uiElement.get("drawingTools").addChild(main); + this.svgViewport = manager.viewport.get(); + } + else { + this.svgViewport = null; + } + } + get drawManager() { + return this._drawManager; + } + get() { + return null; + } + async dispose() { + if (this._drawManager) { + this._drawManager.dispose(); + } + if (this._svgViewport) { + this._svgViewport.remove(); + } + this.setupEvents(false); + this.uiElement.dispose(); + if (this.svgViewport) { + this.svgViewport.remove(); + } + } + setupEvents(active) { + if (active) { + document.addEventListener("keydown", this.cancel); + if (!this._svgViewport) + return; + this._svgViewport.addEventListener("mousemove", this.draw); + this._svgViewport.addEventListener("mousedown", this.start); + this._svgViewport.addEventListener("mouseup", this.end); + } + else { + document.removeEventListener("keydown", this.cancel); + if (!this._svgViewport) + return; + this._svgViewport.removeEventListener("mousemove", this.draw); + this._svgViewport.removeEventListener("mousedown", this.start); + this._svgViewport.removeEventListener("mouseup", this.end); + } + } +} - } else { +/** + * A simple object to handle UI components. You can use the generic constructor + * to specify the types of your UI components. + */ +class UIElement { + constructor() { + this._data = null; + this.initError = "UI Components not initialized."; + } + /** + * Gets the UI Component with the given name. If it doesn't exist, it will + * throw an error. + * + * @param name the identifier of the UI component. + */ + get(name) { + if (!this._data) { + throw new Error(this.initError); + } + return this._data[name]; + } + /** + * Sets all the UI components of this instance. + * + * @param data all the UI components sorted by name in an object. + */ + set(data) { + this._data = data; + } + /** + * Release all the memory used by this instance deleting all the UI components + * inside. + */ + async dispose() { + if (!this._data) + return; + for (const name in this._data) { + const uiComponent = this._data[name]; + await uiComponent.dispose(); + } + this._data = null; + } +} - l2.at( 1, target2 ); +var n=new Int32Array(2),b=new Float32Array(n.buffer),c=new Float64Array(n.buffer),h=new Uint16Array(new Uint8Array([1,0]).buffer)[0]===1;var d;(function(s){s[s.UTF8_BYTES=1]="UTF8_BYTES",s[s.UTF16_STRING=2]="UTF16_STRING";})(d||(d={}));var l=class s{constructor(t){this.bytes_=t,this.position_=0,this.text_decoder_=new TextDecoder;}static allocate(t){return new s(new Uint8Array(t))}clear(){this.position_=0;}bytes(){return this.bytes_}position(){return this.position_}setPosition(t){this.position_=t;}capacity(){return this.bytes_.length}readInt8(t){return this.readUint8(t)<<24>>24}readUint8(t){return this.bytes_[t]}readInt16(t){return this.readUint16(t)<<16>>16}readUint16(t){return this.bytes_[t]|this.bytes_[t+1]<<8}readInt32(t){return this.bytes_[t]|this.bytes_[t+1]<<8|this.bytes_[t+2]<<16|this.bytes_[t+3]<<24}readUint32(t){return this.readInt32(t)>>>0}readInt64(t){return BigInt.asIntN(64,BigInt(this.readUint32(t))+(BigInt(this.readUint32(t+4))<>8;}writeUint16(t,e){this.bytes_[t]=e,this.bytes_[t+1]=e>>8;}writeInt32(t,e){this.bytes_[t]=e,this.bytes_[t+1]=e>>8,this.bytes_[t+2]=e>>16,this.bytes_[t+3]=e>>24;}writeUint32(t,e){this.bytes_[t]=e,this.bytes_[t+1]=e>>8,this.bytes_[t+2]=e>>16,this.bytes_[t+3]=e>>24;}writeInt64(t,e){this.writeInt32(t,Number(BigInt.asIntN(32,e))),this.writeInt32(t+4,Number(BigInt.asIntN(32,e>>BigInt(32))));}writeUint64(t,e){this.writeUint32(t,Number(BigInt.asUintN(32,e))),this.writeUint32(t+4,Number(BigInt.asUintN(32,e>>BigInt(32))));}writeFloat32(t,e){b[0]=e,this.writeInt32(t,n[0]);}writeFloat64(t,e){c[0]=e,this.writeInt32(t,n[h?0:1]),this.writeInt32(t+4,n[h?1:0]);}getBufferIdentifier(){if(this.bytes_.length= 0 && d2 <= 1 ) { +/** + * A basic 3D [scene](https://threejs.org/docs/#api/en/scenes/Scene) to add + * objects hierarchically, and easily dispose them when you are finished with it. + * @noInheritDoc + */ +class SimpleScene extends Component { + constructor(components) { + super(components); + /** {@link Component.enabled} */ + this.enabled = true; + this._scene = new THREE$1.Scene(); + this._scene.background = new THREE$1.Color(0x202932); + } + /** {@link Component.get} */ + get() { + return this._scene; + } + /** {@link Disposable.dispose} */ + async dispose() { + const disposer = await this.components.tools.get(Disposer); + for (const child of this._scene.children) { + const mesh = child; + if (mesh.geometry) { + disposer.destroy(mesh); + } + } + this._scene.children = []; + } + /** Creates a simple and nice default set up for the scene (e.g. lighting). */ + setup() { + const directionalLight = new THREE$1.DirectionalLight(); + directionalLight.position.set(5, 10, 3); + directionalLight.intensity = 0.5; + this._scene.add(directionalLight); + const ambientLight = new THREE$1.AmbientLight(); + ambientLight.intensity = 0.5; + this._scene.add(ambientLight); + } +} - // Only d is out of bounds. - if ( d < 0 ) { +/** + * A basic renderer capable of rendering 3D and 2D objects + * ([Objec3Ds](https://threejs.org/docs/#api/en/core/Object3D) and + * [CSS2DObjects](https://threejs.org/docs/#examples/en/renderers/CSS2DRenderer) + * respectively). + */ +class SimpleRenderer extends BaseRenderer { + constructor(components, container, parameters) { + super(components); + /** {@link Component.name} */ + this.name = "SimpleRenderer"; + /** {@link Component.enabled} */ + this.enabled = true; + /** {@link Updateable.onBeforeUpdate} */ + this.onBeforeUpdate = new Event(); + /** {@link Updateable.onAfterUpdate} */ + this.onAfterUpdate = new Event(); + this._renderer2D = new CSS2DRenderer(); + /** {@link Resizeable.resize}. */ + this.resize = () => { + const width = this.container.clientWidth; + const height = this.container.clientHeight; + this._renderer.setSize(width, height); + this._renderer2D.setSize(width, height); + this.onResize.trigger(); + }; + this.onContextLost = (event) => { + event.preventDefault(); + this.components.enabled = false; + }; + this.onContextBack = () => { + this.components.enabled = true; + }; + this.container = container; + this._renderer = new THREE$1.WebGLRenderer({ + antialias: true, + alpha: true, + ...parameters, + }); + this._renderer.setPixelRatio(Math.min(window.devicePixelRatio, 2)); + this.setupRenderers(); + this.setupEvents(true); + this.resize(); + const context = this._renderer.getContext(); + const { canvas } = context; + canvas.addEventListener("webglcontextlost", this.onContextLost, false); + canvas.addEventListener("webglcontextrestored", this.onContextBack, false); + } + /** {@link Component.get} */ + get() { + return this._renderer; + } + /** {@link Updateable.update} */ + update(_delta) { + if (!this.enabled) + return; + this.onBeforeUpdate.trigger(this); + if (this.overrideScene && this.overrideCamera) { + this._renderer.render(this.overrideScene, this.overrideCamera); + this._renderer2D.render(this.overrideScene, this.overrideCamera); + } + else { + const scene = this.components.scene.get(); + const camera = this.components.camera.get(); + if (!scene || !camera) + return; + this._renderer.render(scene, camera); + this._renderer2D.render(scene, camera); + } + this.onAfterUpdate.trigger(this); + } + /** {@link Disposable.dispose} */ + async dispose() { + this.enabled = false; + this.setupEvents(false); + this._renderer.domElement.remove(); + this._renderer.dispose(); + this._renderer2D.domElement.remove(); + this.onResize.reset(); + this.onAfterUpdate.reset(); + this.onBeforeUpdate.reset(); + } + /** {@link Resizeable.getSize}. */ + getSize() { + return new THREE$1.Vector2(this._renderer.domElement.clientWidth, this._renderer.domElement.clientHeight); + } + setupEvents(active) { + if (active) { + window.addEventListener("resize", this.resize); + } + else { + window.removeEventListener("resize", this.resize); + } + } + setupRenderers() { + this._renderer.localClippingEnabled = true; + this.container.appendChild(this._renderer.domElement); + this._renderer2D.domElement.style.position = "absolute"; + this._renderer2D.domElement.style.top = "0px"; + this._renderer2D.domElement.style.pointerEvents = "none"; + this.container.appendChild(this._renderer2D.domElement); + } +} - l1.at( 0, target1 ); - - } else { - - l1.at( 1, target1 ); - - } +/*! + * camera-controls + * https://github.com/yomotsu/camera-controls + * (c) 2017 @yomotsu + * Released under the MIT License. + */ +// see https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/buttons#value +const MOUSE_BUTTON = { + LEFT: 1, + RIGHT: 2, + MIDDLE: 4, +}; +const ACTION = Object.freeze({ + NONE: 0, + ROTATE: 1, + TRUCK: 2, + OFFSET: 4, + DOLLY: 8, + ZOOM: 16, + TOUCH_ROTATE: 32, + TOUCH_TRUCK: 64, + TOUCH_OFFSET: 128, + TOUCH_DOLLY: 256, + TOUCH_ZOOM: 512, + TOUCH_DOLLY_TRUCK: 1024, + TOUCH_DOLLY_OFFSET: 2048, + TOUCH_DOLLY_ROTATE: 4096, + TOUCH_ZOOM_TRUCK: 8192, + TOUCH_ZOOM_OFFSET: 16384, + TOUCH_ZOOM_ROTATE: 32768, +}); +function isPerspectiveCamera(camera) { + return camera.isPerspectiveCamera; +} +function isOrthographicCamera(camera) { + return camera.isOrthographicCamera; +} - l2.closestPointToPoint( target1, true, target2 ); - return; +const PI_2 = Math.PI * 2; +const PI_HALF = Math.PI / 2; - } else { +const EPSILON$2 = 1e-5; +function approxZero(number, error = EPSILON$2) { + return Math.abs(number) < error; +} +function approxEquals(a, b, error = EPSILON$2) { + return approxZero(a - b, error); +} +function roundToStep(value, step) { + return Math.round(value / step) * step; +} +function infinityToMaxNumber(value) { + if (isFinite(value)) + return value; + if (value < 0) + return -Number.MAX_VALUE; + return Number.MAX_VALUE; +} +function maxNumberToInfinity(value) { + if (Math.abs(value) < Number.MAX_VALUE) + return value; + return value * Infinity; +} - // Both u and u2 are out of bounds. - let p; - if ( d < 0 ) { +function extractClientCoordFromEvent(pointers, out) { + out.set(0, 0); + pointers.forEach((pointer) => { + out.x += pointer.clientX; + out.y += pointer.clientY; + }); + out.x /= pointers.length; + out.y /= pointers.length; +} - p = l1.start; +function notSupportedInOrthographicCamera(camera, message) { + if (isOrthographicCamera(camera)) { + console.warn(`${message} is not supported in OrthographicCamera`); + return true; + } + return false; +} - } else { +/** + * A compat function for `Quaternion.invert()` / `Quaternion.inverse()`. + * `Quaternion.invert()` is introduced in r123 and `Quaternion.inverse()` emits a warning. + * We are going to use this compat for a while. + * @param target A target quaternion + */ +function quatInvertCompat(target) { + if (target.invert) { + target.invert(); + } + else { + target.inverse(); + } + return target; +} - p = l1.end; +class EventDispatcher { + constructor() { + this._listeners = {}; + } + /** + * Adds the specified event listener. + * @param type event name + * @param listener handler function + * @category Methods + */ + addEventListener(type, listener) { + const listeners = this._listeners; + if (listeners[type] === undefined) + listeners[type] = []; + if (listeners[type].indexOf(listener) === -1) + listeners[type].push(listener); + } + /** + * Presence of the specified event listener. + * @param type event name + * @param listener handler function + * @category Methods + */ + hasEventListener(type, listener) { + const listeners = this._listeners; + return listeners[type] !== undefined && listeners[type].indexOf(listener) !== -1; + } + /** + * Removes the specified event listener + * @param type event name + * @param listener handler function + * @category Methods + */ + removeEventListener(type, listener) { + const listeners = this._listeners; + const listenerArray = listeners[type]; + if (listenerArray !== undefined) { + const index = listenerArray.indexOf(listener); + if (index !== -1) + listenerArray.splice(index, 1); + } + } + /** + * Removes all event listeners + * @param type event name + * @category Methods + */ + removeAllEventListeners(type) { + if (!type) { + this._listeners = {}; + return; + } + if (Array.isArray(this._listeners[type])) + this._listeners[type].length = 0; + } + /** + * Fire an event type. + * @param event DispatcherEvent + * @category Methods + */ + dispatchEvent(event) { + const listeners = this._listeners; + const listenerArray = listeners[event.type]; + if (listenerArray !== undefined) { + event.target = this; + const array = listenerArray.slice(0); + for (let i = 0, l = array.length; i < l; i++) { + array[i].call(this, event); + } + } + } +} - } +const VERSION = '1.38.1'; // will be replaced with `version` in package.json during the build process. +const TOUCH_DOLLY_FACTOR = 1 / 8; +const isBrowser = typeof window !== 'undefined'; +const isMac = isBrowser && /Mac/.test(navigator.platform); +const isPointerEventsNotSupported = !(isBrowser && 'PointerEvent' in window); // Safari 12 does not support PointerEvents API +let THREE; +let _ORIGIN; +let _AXIS_Y; +let _AXIS_Z; +let _v2$1; +let _v3A; +let _v3B; +let _v3C; +let _xColumn; +let _yColumn; +let _zColumn; +let _deltaTarget; +let _deltaOffset; +let _sphericalA; +let _sphericalB; +let _box3A; +let _box3B; +let _sphere$1; +let _quaternionA; +let _quaternionB; +let _rotationMatrix; +let _raycaster$1; +class CameraControls extends EventDispatcher { + /** + * Injects THREE as the dependency. You can then proceed to use CameraControls. + * + * e.g + * ```javascript + * CameraControls.install( { THREE: THREE } ); + * ``` + * + * Note: If you do not wish to use enter three.js to reduce file size(tree-shaking for example), make a subset to install. + * + * ```js + * import { + * Vector2, + * Vector3, + * Vector4, + * Quaternion, + * Matrix4, + * Spherical, + * Box3, + * Sphere, + * Raycaster, + * MathUtils, + * } from 'three'; + * + * const subsetOfTHREE = { + * Vector2 : Vector2, + * Vector3 : Vector3, + * Vector4 : Vector4, + * Quaternion: Quaternion, + * Matrix4 : Matrix4, + * Spherical : Spherical, + * Box3 : Box3, + * Sphere : Sphere, + * Raycaster : Raycaster, + * MathUtils : { + * DEG2RAD: MathUtils.DEG2RAD, + * clamp: MathUtils.clamp, + * }, + * }; + + * CameraControls.install( { THREE: subsetOfTHREE } ); + * ``` + * @category Statics + */ + static install(libs) { + THREE = libs.THREE; + _ORIGIN = Object.freeze(new THREE.Vector3(0, 0, 0)); + _AXIS_Y = Object.freeze(new THREE.Vector3(0, 1, 0)); + _AXIS_Z = Object.freeze(new THREE.Vector3(0, 0, 1)); + _v2$1 = new THREE.Vector2(); + _v3A = new THREE.Vector3(); + _v3B = new THREE.Vector3(); + _v3C = new THREE.Vector3(); + _xColumn = new THREE.Vector3(); + _yColumn = new THREE.Vector3(); + _zColumn = new THREE.Vector3(); + _deltaTarget = new THREE.Vector3(); + _deltaOffset = new THREE.Vector3(); + _sphericalA = new THREE.Spherical(); + _sphericalB = new THREE.Spherical(); + _box3A = new THREE.Box3(); + _box3B = new THREE.Box3(); + _sphere$1 = new THREE.Sphere(); + _quaternionA = new THREE.Quaternion(); + _quaternionB = new THREE.Quaternion(); + _rotationMatrix = new THREE.Matrix4(); + _raycaster$1 = new THREE.Raycaster(); + } + /** + * list all ACTIONs + * @category Statics + */ + static get ACTION() { + return ACTION; + } + /** + * Creates a `CameraControls` instance. + * + * Note: + * You **must install** three.js before using camera-controls. see [#install](#install) + * Not doing so will lead to runtime errors (`undefined` references to THREE). + * + * e.g. + * ``` + * CameraControls.install( { THREE } ); + * const cameraControls = new CameraControls( camera, domElement ); + * ``` + * + * @param camera A `THREE.PerspectiveCamera` or `THREE.OrthographicCamera` to be controlled. + * @param domElement A `HTMLElement` for the draggable area, usually `renderer.domElement`. + * @category Constructor + */ + constructor(camera, domElement) { + super(); + /** + * Minimum vertical angle in radians. + * The angle has to be between `0` and `.maxPolarAngle` inclusive. + * The default value is `0`. + * + * e.g. + * ``` + * cameraControls.maxPolarAngle = 0; + * ``` + * @category Properties + */ + this.minPolarAngle = 0; // radians + /** + * Maximum vertical angle in radians. + * The angle has to be between `.maxPolarAngle` and `Math.PI` inclusive. + * The default value is `Math.PI`. + * + * e.g. + * ``` + * cameraControls.maxPolarAngle = Math.PI; + * ``` + * @category Properties + */ + this.maxPolarAngle = Math.PI; // radians + /** + * Minimum horizontal angle in radians. + * The angle has to be less than `.maxAzimuthAngle`. + * The default value is `- Infinity`. + * + * e.g. + * ``` + * cameraControls.minAzimuthAngle = - Infinity; + * ``` + * @category Properties + */ + this.minAzimuthAngle = -Infinity; // radians + /** + * Maximum horizontal angle in radians. + * The angle has to be greater than `.minAzimuthAngle`. + * The default value is `Infinity`. + * + * e.g. + * ``` + * cameraControls.maxAzimuthAngle = Infinity; + * ``` + * @category Properties + */ + this.maxAzimuthAngle = Infinity; // radians + // How far you can dolly in and out ( PerspectiveCamera only ) + /** + * Minimum distance for dolly. The value must be higher than `0`. + * PerspectiveCamera only. + * @category Properties + */ + this.minDistance = 0; + /** + * Maximum distance for dolly. The value must be higher than `minDistance`. + * PerspectiveCamera only. + * @category Properties + */ + this.maxDistance = Infinity; + /** + * `true` to enable Infinity Dolly. + * When the Dolly distance is less than the `minDistance`, radius of the sphere will be set `minDistance` automatically. + * @category Properties + */ + this.infinityDolly = false; + /** + * Minimum camera zoom. + * @category Properties + */ + this.minZoom = 0.01; + /** + * Maximum camera zoom. + * @category Properties + */ + this.maxZoom = Infinity; + /** + * The damping inertia. + * The value must be between `Math.EPSILON` to `1` inclusive. + * Setting `1` to disable smooth transitions. + * @category Properties + */ + this.dampingFactor = 0.05; + /** + * The damping inertia while dragging. + * The value must be between `Math.EPSILON` to `1` inclusive. + * Setting `1` to disable smooth transitions. + * @category Properties + */ + this.draggingDampingFactor = 0.25; + /** + * Speed of azimuth (horizontal) rotation. + * @category Properties + */ + this.azimuthRotateSpeed = 1.0; + /** + * Speed of polar (vertical) rotation. + * @category Properties + */ + this.polarRotateSpeed = 1.0; + /** + * Speed of mouse-wheel dollying. + * @category Properties + */ + this.dollySpeed = 1.0; + /** + * Speed of drag for truck and pedestal. + * @category Properties + */ + this.truckSpeed = 2.0; + /** + * `true` to enable Dolly-in to the mouse cursor coords. + * @category Properties + */ + this.dollyToCursor = false; + /** + * @category Properties + */ + this.dragToOffset = false; + /** + * The same as `.screenSpacePanning` in three.js's OrbitControls. + * @category Properties + */ + this.verticalDragToForward = false; + /** + * Friction ratio of the boundary. + * @category Properties + */ + this.boundaryFriction = 0.0; + /** + * Controls how soon the `rest` event fires as the camera slows. + * @category Properties + */ + this.restThreshold = 0.01; + /** + * An array of Meshes to collide with camera. + * Be aware colliderMeshes may decrease performance. The collision test uses 4 raycasters from the camera since the near plane has 4 corners. + * @category Properties + */ + this.colliderMeshes = []; + /** + * Force cancel user dragging. + * @category Methods + */ + // cancel will be overwritten in the constructor. + this.cancel = () => { }; + this._enabled = true; + this._state = ACTION.NONE; + this._viewport = null; + this._affectOffset = false; + this._dollyControlAmount = 0; + this._hasRested = true; + this._boundaryEnclosesCamera = false; + this._needsUpdate = true; + this._updatedLastTime = false; + this._elementRect = new DOMRect(); + this._activePointers = []; + this._truckInternal = (deltaX, deltaY, dragToOffset) => { + if (isPerspectiveCamera(this._camera)) { + const offset = _v3A.copy(this._camera.position).sub(this._target); + // half of the fov is center to top of screen + const fov = this._camera.getEffectiveFOV() * THREE.MathUtils.DEG2RAD; + const targetDistance = offset.length() * Math.tan(fov * 0.5); + const truckX = (this.truckSpeed * deltaX * targetDistance / this._elementRect.height); + const pedestalY = (this.truckSpeed * deltaY * targetDistance / this._elementRect.height); + if (this.verticalDragToForward) { + dragToOffset ? + this.setFocalOffset(this._focalOffsetEnd.x + truckX, this._focalOffsetEnd.y, this._focalOffsetEnd.z, true) : + this.truck(truckX, 0, true); + this.forward(-pedestalY, true); + } + else { + dragToOffset ? + this.setFocalOffset(this._focalOffsetEnd.x + truckX, this._focalOffsetEnd.y + pedestalY, this._focalOffsetEnd.z, true) : + this.truck(truckX, pedestalY, true); + } + } + else if (isOrthographicCamera(this._camera)) { + // orthographic + const camera = this._camera; + const truckX = deltaX * (camera.right - camera.left) / camera.zoom / this._elementRect.width; + const pedestalY = deltaY * (camera.top - camera.bottom) / camera.zoom / this._elementRect.height; + dragToOffset ? + this.setFocalOffset(this._focalOffsetEnd.x + truckX, this._focalOffsetEnd.y + pedestalY, this._focalOffsetEnd.z, true) : + this.truck(truckX, pedestalY, true); + } + }; + this._rotateInternal = (deltaX, deltaY) => { + const theta = PI_2 * this.azimuthRotateSpeed * deltaX / this._elementRect.height; // divide by *height* to refer the resolution + const phi = PI_2 * this.polarRotateSpeed * deltaY / this._elementRect.height; + this.rotate(theta, phi, true); + }; + this._dollyInternal = (delta, x, y) => { + const dollyScale = Math.pow(0.95, -delta * this.dollySpeed); + const distance = this._sphericalEnd.radius * dollyScale; + const prevRadius = this._sphericalEnd.radius; + const signedPrevRadius = prevRadius * (delta >= 0 ? -1 : 1); + this.dollyTo(distance); + if (this.infinityDolly && (distance < this.minDistance || this.maxDistance === this.minDistance)) { + this._camera.getWorldDirection(_v3A); + this._targetEnd.add(_v3A.normalize().multiplyScalar(signedPrevRadius)); + this._target.add(_v3A.normalize().multiplyScalar(signedPrevRadius)); + } + if (this.dollyToCursor) { + this._dollyControlAmount += this._sphericalEnd.radius - prevRadius; + if (this.infinityDolly && (distance < this.minDistance || this.maxDistance === this.minDistance)) { + this._dollyControlAmount -= signedPrevRadius; + } + this._dollyControlCoord.set(x, y); + } + return; + }; + this._zoomInternal = (delta, x, y) => { + const zoomScale = Math.pow(0.95, delta * this.dollySpeed); + const prevZoom = this._zoomEnd; + // for both PerspectiveCamera and OrthographicCamera + this.zoomTo(this._zoom * zoomScale); + if (this.dollyToCursor) { + this._dollyControlAmount += this._zoomEnd - prevZoom; + this._dollyControlCoord.set(x, y); + } + return; + }; + // Check if the user has installed THREE + if (typeof THREE === 'undefined') { + console.error('camera-controls: `THREE` is undefined. You must first run `CameraControls.install( { THREE: THREE } )`. Check the docs for further information.'); + } + this._camera = camera; + this._yAxisUpSpace = new THREE.Quaternion().setFromUnitVectors(this._camera.up, _AXIS_Y); + this._yAxisUpSpaceInverse = quatInvertCompat(this._yAxisUpSpace.clone()); + this._state = ACTION.NONE; + // the location + this._target = new THREE.Vector3(); + this._targetEnd = this._target.clone(); + this._focalOffset = new THREE.Vector3(); + this._focalOffsetEnd = this._focalOffset.clone(); + // rotation + this._spherical = new THREE.Spherical().setFromVector3(_v3A.copy(this._camera.position).applyQuaternion(this._yAxisUpSpace)); + this._sphericalEnd = this._spherical.clone(); + this._zoom = this._camera.zoom; + this._zoomEnd = this._zoom; + // collisionTest uses nearPlane.s + this._nearPlaneCorners = [ + new THREE.Vector3(), + new THREE.Vector3(), + new THREE.Vector3(), + new THREE.Vector3(), + ]; + this._updateNearPlaneCorners(); + // Target cannot move outside of this box + this._boundary = new THREE.Box3(new THREE.Vector3(-Infinity, -Infinity, -Infinity), new THREE.Vector3(Infinity, Infinity, Infinity)); + // reset + this._target0 = this._target.clone(); + this._position0 = this._camera.position.clone(); + this._zoom0 = this._zoom; + this._focalOffset0 = this._focalOffset.clone(); + this._dollyControlAmount = 0; + this._dollyControlCoord = new THREE.Vector2(); + // configs + this.mouseButtons = { + left: ACTION.ROTATE, + middle: ACTION.DOLLY, + right: ACTION.TRUCK, + wheel: isPerspectiveCamera(this._camera) ? ACTION.DOLLY : + isOrthographicCamera(this._camera) ? ACTION.ZOOM : + ACTION.NONE, + }; + this.touches = { + one: ACTION.TOUCH_ROTATE, + two: isPerspectiveCamera(this._camera) ? ACTION.TOUCH_DOLLY_TRUCK : + isOrthographicCamera(this._camera) ? ACTION.TOUCH_ZOOM_TRUCK : + ACTION.NONE, + three: ACTION.TOUCH_TRUCK, + }; + const dragStartPosition = new THREE.Vector2(); + const lastDragPosition = new THREE.Vector2(); + const dollyStart = new THREE.Vector2(); + const onPointerDown = (event) => { + if (!this._enabled || !this._domElement) + return; + // Don't call `event.preventDefault()` on the pointerdown event + // to keep receiving pointermove evens outside dragging iframe + // https://taye.me/blog/tips/2015/11/16/mouse-drag-outside-iframe/ + const pointer = { + pointerId: event.pointerId, + clientX: event.clientX, + clientY: event.clientY, + deltaX: 0, + deltaY: 0, + }; + this._activePointers.push(pointer); + // eslint-disable-next-line no-undef + this._domElement.ownerDocument.removeEventListener('pointermove', onPointerMove, { passive: false }); + this._domElement.ownerDocument.removeEventListener('pointerup', onPointerUp); + this._domElement.ownerDocument.addEventListener('pointermove', onPointerMove, { passive: false }); + this._domElement.ownerDocument.addEventListener('pointerup', onPointerUp); + startDragging(event); + }; + const onMouseDown = (event) => { + if (!this._enabled || !this._domElement) + return; + const pointer = { + pointerId: 0, + clientX: event.clientX, + clientY: event.clientY, + deltaX: 0, + deltaY: 0, + }; + this._activePointers.push(pointer); + // see https://github.com/microsoft/TypeScript/issues/32912#issuecomment-522142969 + // eslint-disable-next-line no-undef + this._domElement.ownerDocument.removeEventListener('mousemove', onMouseMove); + this._domElement.ownerDocument.removeEventListener('mouseup', onMouseUp); + this._domElement.ownerDocument.addEventListener('mousemove', onMouseMove); + this._domElement.ownerDocument.addEventListener('mouseup', onMouseUp); + startDragging(event); + }; + const onTouchStart = (event) => { + if (!this._enabled || !this._domElement) + return; + event.preventDefault(); + Array.prototype.forEach.call(event.changedTouches, (touch) => { + const pointer = { + pointerId: touch.identifier, + clientX: touch.clientX, + clientY: touch.clientY, + deltaX: 0, + deltaY: 0, + }; + this._activePointers.push(pointer); + }); + // eslint-disable-next-line no-undef + this._domElement.ownerDocument.removeEventListener('touchmove', onTouchMove, { passive: false }); + this._domElement.ownerDocument.removeEventListener('touchend', onTouchEnd); + this._domElement.ownerDocument.addEventListener('touchmove', onTouchMove, { passive: false }); + this._domElement.ownerDocument.addEventListener('touchend', onTouchEnd); + startDragging(event); + }; + const onPointerMove = (event) => { + if (event.cancelable) + event.preventDefault(); + const pointerId = event.pointerId; + const pointer = this._findPointerById(pointerId); + if (!pointer) + return; + pointer.clientX = event.clientX; + pointer.clientY = event.clientY; + pointer.deltaX = event.movementX; + pointer.deltaY = event.movementY; + if (event.pointerType === 'touch') { + switch (this._activePointers.length) { + case 1: + this._state = this.touches.one; + break; + case 2: + this._state = this.touches.two; + break; + case 3: + this._state = this.touches.three; + break; + } + } + else { + this._state = 0; + if ((event.buttons & MOUSE_BUTTON.LEFT) === MOUSE_BUTTON.LEFT) { + this._state = this._state | this.mouseButtons.left; + } + if ((event.buttons & MOUSE_BUTTON.MIDDLE) === MOUSE_BUTTON.MIDDLE) { + this._state = this._state | this.mouseButtons.middle; + } + if ((event.buttons & MOUSE_BUTTON.RIGHT) === MOUSE_BUTTON.RIGHT) { + this._state = this._state | this.mouseButtons.right; + } + } + dragging(); + }; + const onMouseMove = (event) => { + const pointer = this._findPointerById(0); + if (!pointer) + return; + pointer.clientX = event.clientX; + pointer.clientY = event.clientY; + pointer.deltaX = event.movementX; + pointer.deltaY = event.movementY; + this._state = 0; + if ((event.buttons & MOUSE_BUTTON.LEFT) === MOUSE_BUTTON.LEFT) { + this._state = this._state | this.mouseButtons.left; + } + if ((event.buttons & MOUSE_BUTTON.MIDDLE) === MOUSE_BUTTON.MIDDLE) { + this._state = this._state | this.mouseButtons.middle; + } + if ((event.buttons & MOUSE_BUTTON.RIGHT) === MOUSE_BUTTON.RIGHT) { + this._state = this._state | this.mouseButtons.right; + } + dragging(); + }; + const onTouchMove = (event) => { + if (event.cancelable) + event.preventDefault(); + Array.prototype.forEach.call(event.changedTouches, (touch) => { + const pointerId = touch.identifier; + const pointer = this._findPointerById(pointerId); + if (!pointer) + return; + pointer.clientX = touch.clientX; + pointer.clientY = touch.clientY; + // touch event does not have movementX and movementY. + }); + dragging(); + }; + const onPointerUp = (event) => { + const pointerId = event.pointerId; + const pointer = this._findPointerById(pointerId); + pointer && this._activePointers.splice(this._activePointers.indexOf(pointer), 1); + if (event.pointerType === 'touch') { + switch (this._activePointers.length) { + case 0: + this._state = ACTION.NONE; + break; + case 1: + this._state = this.touches.one; + break; + case 2: + this._state = this.touches.two; + break; + case 3: + this._state = this.touches.three; + break; + } + } + else { + this._state = ACTION.NONE; + } + endDragging(); + }; + const onMouseUp = () => { + const pointer = this._findPointerById(0); + pointer && this._activePointers.splice(this._activePointers.indexOf(pointer), 1); + this._state = ACTION.NONE; + endDragging(); + }; + const onTouchEnd = (event) => { + Array.prototype.forEach.call(event.changedTouches, (touch) => { + const pointerId = touch.identifier; + const pointer = this._findPointerById(pointerId); + pointer && this._activePointers.splice(this._activePointers.indexOf(pointer), 1); + }); + switch (this._activePointers.length) { + case 0: + this._state = ACTION.NONE; + break; + case 1: + this._state = this.touches.one; + break; + case 2: + this._state = this.touches.two; + break; + case 3: + this._state = this.touches.three; + break; + } + endDragging(); + }; + let lastScrollTimeStamp = -1; + const onMouseWheel = (event) => { + if (!this._enabled || this.mouseButtons.wheel === ACTION.NONE) + return; + event.preventDefault(); + if (this.dollyToCursor || + this.mouseButtons.wheel === ACTION.ROTATE || + this.mouseButtons.wheel === ACTION.TRUCK) { + const now = performance.now(); + // only need to fire this at scroll start. + if (lastScrollTimeStamp - now < 1000) + this._getClientRect(this._elementRect); + lastScrollTimeStamp = now; + } + // Ref: https://github.com/cedricpinson/osgjs/blob/00e5a7e9d9206c06fdde0436e1d62ab7cb5ce853/sources/osgViewer/input/source/InputSourceMouse.js#L89-L103 + const deltaYFactor = isMac ? -1 : -3; + const delta = (event.deltaMode === 1) ? event.deltaY / deltaYFactor : event.deltaY / (deltaYFactor * 10); + const x = this.dollyToCursor ? (event.clientX - this._elementRect.x) / this._elementRect.width * 2 - 1 : 0; + const y = this.dollyToCursor ? (event.clientY - this._elementRect.y) / this._elementRect.height * -2 + 1 : 0; + switch (this.mouseButtons.wheel) { + case ACTION.ROTATE: { + this._rotateInternal(event.deltaX, event.deltaY); + break; + } + case ACTION.TRUCK: { + this._truckInternal(event.deltaX, event.deltaY, false); + break; + } + case ACTION.OFFSET: { + this._truckInternal(event.deltaX, event.deltaY, true); + break; + } + case ACTION.DOLLY: { + this._dollyInternal(-delta, x, y); + break; + } + case ACTION.ZOOM: { + this._zoomInternal(-delta, x, y); + break; + } + } + this.dispatchEvent({ type: 'control' }); + }; + const onContextMenu = (event) => { + if (!this._enabled) + return; + event.preventDefault(); + }; + const startDragging = (event) => { + if (!this._enabled) + return; + extractClientCoordFromEvent(this._activePointers, _v2$1); + this._getClientRect(this._elementRect); + dragStartPosition.copy(_v2$1); + lastDragPosition.copy(_v2$1); + const isMultiTouch = this._activePointers.length >= 2; + if (isMultiTouch) { + // 2 finger pinch + const dx = _v2$1.x - this._activePointers[1].clientX; + const dy = _v2$1.y - this._activePointers[1].clientY; + const distance = Math.sqrt(dx * dx + dy * dy); + dollyStart.set(0, distance); + // center coords of 2 finger truck + const x = (this._activePointers[0].clientX + this._activePointers[1].clientX) * 0.5; + const y = (this._activePointers[0].clientY + this._activePointers[1].clientY) * 0.5; + lastDragPosition.set(x, y); + } + if ('touches' in event || + 'pointerType' in event && event.pointerType === 'touch') { + switch (this._activePointers.length) { + case 1: + this._state = this.touches.one; + break; + case 2: + this._state = this.touches.two; + break; + case 3: + this._state = this.touches.three; + break; + } + } + else { + this._state = 0; + if ((event.buttons & MOUSE_BUTTON.LEFT) === MOUSE_BUTTON.LEFT) { + this._state = this._state | this.mouseButtons.left; + } + if ((event.buttons & MOUSE_BUTTON.MIDDLE) === MOUSE_BUTTON.MIDDLE) { + this._state = this._state | this.mouseButtons.middle; + } + if ((event.buttons & MOUSE_BUTTON.RIGHT) === MOUSE_BUTTON.RIGHT) { + this._state = this._state | this.mouseButtons.right; + } + } + this.dispatchEvent({ type: 'controlstart' }); + }; + const dragging = () => { + if (!this._enabled) + return; + extractClientCoordFromEvent(this._activePointers, _v2$1); + // When pointer lock is enabled clientX, clientY, screenX, and screenY remain 0. + // If pointer lock is enabled, use the Delta directory, and assume active-pointer is not multiple. + const isPointerLockActive = this._domElement && document.pointerLockElement === this._domElement; + const deltaX = isPointerLockActive ? -this._activePointers[0].deltaX : lastDragPosition.x - _v2$1.x; + const deltaY = isPointerLockActive ? -this._activePointers[0].deltaY : lastDragPosition.y - _v2$1.y; + lastDragPosition.copy(_v2$1); + if ((this._state & ACTION.ROTATE) === ACTION.ROTATE || + (this._state & ACTION.TOUCH_ROTATE) === ACTION.TOUCH_ROTATE || + (this._state & ACTION.TOUCH_DOLLY_ROTATE) === ACTION.TOUCH_DOLLY_ROTATE || + (this._state & ACTION.TOUCH_ZOOM_ROTATE) === ACTION.TOUCH_ZOOM_ROTATE) { + this._rotateInternal(deltaX, deltaY); + } + if ((this._state & ACTION.DOLLY) === ACTION.DOLLY || + (this._state & ACTION.ZOOM) === ACTION.ZOOM) { + const dollyX = this.dollyToCursor ? (dragStartPosition.x - this._elementRect.x) / this._elementRect.width * 2 - 1 : 0; + const dollyY = this.dollyToCursor ? (dragStartPosition.y - this._elementRect.y) / this._elementRect.height * -2 + 1 : 0; + (this._state & ACTION.DOLLY) === ACTION.DOLLY ? + this._dollyInternal(deltaY * TOUCH_DOLLY_FACTOR, dollyX, dollyY) : + this._zoomInternal(deltaY * TOUCH_DOLLY_FACTOR, dollyX, dollyY); + } + if ((this._state & ACTION.TOUCH_DOLLY) === ACTION.TOUCH_DOLLY || + (this._state & ACTION.TOUCH_ZOOM) === ACTION.TOUCH_ZOOM || + (this._state & ACTION.TOUCH_DOLLY_TRUCK) === ACTION.TOUCH_DOLLY_TRUCK || + (this._state & ACTION.TOUCH_ZOOM_TRUCK) === ACTION.TOUCH_ZOOM_TRUCK || + (this._state & ACTION.TOUCH_DOLLY_OFFSET) === ACTION.TOUCH_DOLLY_OFFSET || + (this._state & ACTION.TOUCH_ZOOM_OFFSET) === ACTION.TOUCH_ZOOM_OFFSET || + (this._state & ACTION.TOUCH_DOLLY_ROTATE) === ACTION.TOUCH_DOLLY_ROTATE || + (this._state & ACTION.TOUCH_ZOOM_ROTATE) === ACTION.TOUCH_ZOOM_ROTATE) { + const dx = _v2$1.x - this._activePointers[1].clientX; + const dy = _v2$1.y - this._activePointers[1].clientY; + const distance = Math.sqrt(dx * dx + dy * dy); + const dollyDelta = dollyStart.y - distance; + dollyStart.set(0, distance); + const dollyX = this.dollyToCursor ? (lastDragPosition.x - this._elementRect.x) / this._elementRect.width * 2 - 1 : 0; + const dollyY = this.dollyToCursor ? (lastDragPosition.y - this._elementRect.y) / this._elementRect.height * -2 + 1 : 0; + (this._state & ACTION.TOUCH_DOLLY) === ACTION.TOUCH_DOLLY || + (this._state & ACTION.TOUCH_DOLLY_ROTATE) === ACTION.TOUCH_DOLLY_ROTATE || + (this._state & ACTION.TOUCH_DOLLY_TRUCK) === ACTION.TOUCH_DOLLY_TRUCK || + (this._state & ACTION.TOUCH_DOLLY_OFFSET) === ACTION.TOUCH_DOLLY_OFFSET ? + this._dollyInternal(dollyDelta * TOUCH_DOLLY_FACTOR, dollyX, dollyY) : + this._zoomInternal(dollyDelta * TOUCH_DOLLY_FACTOR, dollyX, dollyY); + } + if ((this._state & ACTION.TRUCK) === ACTION.TRUCK || + (this._state & ACTION.TOUCH_TRUCK) === ACTION.TOUCH_TRUCK || + (this._state & ACTION.TOUCH_DOLLY_TRUCK) === ACTION.TOUCH_DOLLY_TRUCK || + (this._state & ACTION.TOUCH_ZOOM_TRUCK) === ACTION.TOUCH_ZOOM_TRUCK) { + this._truckInternal(deltaX, deltaY, false); + } + if ((this._state & ACTION.OFFSET) === ACTION.OFFSET || + (this._state & ACTION.TOUCH_OFFSET) === ACTION.TOUCH_OFFSET || + (this._state & ACTION.TOUCH_DOLLY_OFFSET) === ACTION.TOUCH_DOLLY_OFFSET || + (this._state & ACTION.TOUCH_ZOOM_OFFSET) === ACTION.TOUCH_ZOOM_OFFSET) { + this._truckInternal(deltaX, deltaY, true); + } + this.dispatchEvent({ type: 'control' }); + }; + const endDragging = () => { + extractClientCoordFromEvent(this._activePointers, _v2$1); + lastDragPosition.copy(_v2$1); + if (this._activePointers.length === 0 && this._domElement) { + // eslint-disable-next-line no-undef + this._domElement.ownerDocument.removeEventListener('pointermove', onPointerMove, { passive: false }); + this._domElement.ownerDocument.removeEventListener('pointerup', onPointerUp); + // eslint-disable-next-line no-undef + this._domElement.ownerDocument.removeEventListener('touchmove', onTouchMove, { passive: false }); + this._domElement.ownerDocument.removeEventListener('touchend', onTouchEnd); + this.dispatchEvent({ type: 'controlend' }); + } + }; + this._addAllEventListeners = (domElement) => { + this._domElement = domElement; + this._domElement.style.touchAction = 'none'; + this._domElement.style.userSelect = 'none'; + this._domElement.style.webkitUserSelect = 'none'; + this._domElement.addEventListener('pointerdown', onPointerDown); + isPointerEventsNotSupported && this._domElement.addEventListener('mousedown', onMouseDown); + isPointerEventsNotSupported && this._domElement.addEventListener('touchstart', onTouchStart); + this._domElement.addEventListener('pointercancel', onPointerUp); + this._domElement.addEventListener('wheel', onMouseWheel, { passive: false }); + this._domElement.addEventListener('contextmenu', onContextMenu); + }; + this._removeAllEventListeners = () => { + if (!this._domElement) + return; + this._domElement.removeEventListener('pointerdown', onPointerDown); + this._domElement.removeEventListener('mousedown', onMouseDown); + this._domElement.removeEventListener('touchstart', onTouchStart); + this._domElement.removeEventListener('pointercancel', onPointerUp); + // https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/removeEventListener#matching_event_listeners_for_removal + // > it's probably wise to use the same values used for the call to `addEventListener()` when calling `removeEventListener()` + // see https://github.com/microsoft/TypeScript/issues/32912#issuecomment-522142969 + // eslint-disable-next-line no-undef + this._domElement.removeEventListener('wheel', onMouseWheel, { passive: false }); + this._domElement.removeEventListener('contextmenu', onContextMenu); + // eslint-disable-next-line no-undef + this._domElement.ownerDocument.removeEventListener('pointermove', onPointerMove, { passive: false }); + this._domElement.ownerDocument.removeEventListener('mousemove', onMouseMove); + // eslint-disable-next-line no-undef + this._domElement.ownerDocument.removeEventListener('touchmove', onTouchMove, { passive: false }); + this._domElement.ownerDocument.removeEventListener('pointerup', onPointerUp); + this._domElement.ownerDocument.removeEventListener('mouseup', onMouseUp); + this._domElement.ownerDocument.removeEventListener('touchend', onTouchEnd); + }; + this.cancel = () => { + if (this._state === ACTION.NONE) + return; + this._state = ACTION.NONE; + this._activePointers.length = 0; + endDragging(); + }; + if (domElement) + this.connect(domElement); + this.update(0); + } + /** + * The camera to be controlled + * @category Properties + */ + get camera() { + return this._camera; + } + set camera(camera) { + this._camera = camera; + this.updateCameraUp(); + this._camera.updateProjectionMatrix(); + this._updateNearPlaneCorners(); + this._needsUpdate = true; + } + /** + * Whether or not the controls are enabled. + * `false` to disable user dragging/touch-move, but all methods works. + * @category Properties + */ + get enabled() { + return this._enabled; + } + set enabled(enabled) { + if (!this._domElement) + return; + this._enabled = enabled; + if (enabled) { + this._domElement.style.touchAction = 'none'; + this._domElement.style.userSelect = 'none'; + this._domElement.style.webkitUserSelect = 'none'; + } + else { + this.cancel(); + this._domElement.style.touchAction = ''; + this._domElement.style.userSelect = ''; + this._domElement.style.webkitUserSelect = ''; + } + } + /** + * Returns `true` if the controls are active updating. + * readonly value. + * @category Properties + */ + get active() { + return !this._hasRested; + } + /** + * Getter for the current `ACTION`. + * readonly value. + * @category Properties + */ + get currentAction() { + return this._state; + } + /** + * get/set Current distance. + * @category Properties + */ + get distance() { + return this._spherical.radius; + } + set distance(distance) { + if (this._spherical.radius === distance && + this._sphericalEnd.radius === distance) + return; + this._spherical.radius = distance; + this._sphericalEnd.radius = distance; + this._needsUpdate = true; + } + // horizontal angle + /** + * get/set the azimuth angle (horizontal) in radians. + * Every 360 degrees turn is added to `.azimuthAngle` value, which is accumulative. + * @category Properties + */ + get azimuthAngle() { + return this._spherical.theta; + } + set azimuthAngle(azimuthAngle) { + if (this._spherical.theta === azimuthAngle && + this._sphericalEnd.theta === azimuthAngle) + return; + this._spherical.theta = azimuthAngle; + this._sphericalEnd.theta = azimuthAngle; + this._needsUpdate = true; + } + // vertical angle + /** + * get/set the polar angle (vertical) in radians. + * @category Properties + */ + get polarAngle() { + return this._spherical.phi; + } + set polarAngle(polarAngle) { + if (this._spherical.phi === polarAngle && + this._sphericalEnd.phi === polarAngle) + return; + this._spherical.phi = polarAngle; + this._sphericalEnd.phi = polarAngle; + this._needsUpdate = true; + } + /** + * Whether camera position should be enclosed in the boundary or not. + * @category Properties + */ + get boundaryEnclosesCamera() { + return this._boundaryEnclosesCamera; + } + set boundaryEnclosesCamera(boundaryEnclosesCamera) { + this._boundaryEnclosesCamera = boundaryEnclosesCamera; + this._needsUpdate = true; + } + /** + * Adds the specified event listener. + * Applicable event types (which is `K`) are: + * | Event name | Timing | + * | ------------------- | ------ | + * | `'controlstart'` | When the user starts to control the camera via mouse / touches. ¹ | + * | `'control'` | When the user controls the camera (dragging). | + * | `'controlend'` | When the user ends to control the camera. ¹ | + * | `'transitionstart'` | When any kind of transition starts, either user control or using a method with `enableTransition = true` | + * | `'update'` | When the camera position is updated. | + * | `'wake'` | When the camera starts moving. | + * | `'rest'` | When the camera movement is below `.restThreshold` ². | + * | `'sleep'` | When the camera end moving. | + * + * 1. `mouseButtons.wheel` (Mouse wheel control) does not emit `'controlstart'` and `'controlend'`. `mouseButtons.wheel` uses scroll-event internally, and scroll-event happens intermittently. That means "start" and "end" cannot be detected. + * 2. Due to damping, `sleep` will usually fire a few seconds after the camera _appears_ to have stopped moving. If you want to do something (e.g. enable UI, perform another transition) at the point when the camera has stopped, you probably want the `rest` event. This can be fine tuned using the `.restThreshold` parameter. See the [Rest and Sleep Example](https://yomotsu.github.io/camera-controls/examples/rest-and-sleep.html). + * + * e.g. + * ``` + * cameraControl.addEventListener( 'controlstart', myCallbackFunction ); + * ``` + * @param type event name + * @param listener handler function + * @category Methods + */ + addEventListener(type, listener) { + super.addEventListener(type, listener); + } + /** + * Removes the specified event listener + * e.g. + * ``` + * cameraControl.addEventListener( 'controlstart', myCallbackFunction ); + * ``` + * @param type event name + * @param listener handler function + * @category Methods + */ + removeEventListener(type, listener) { + super.removeEventListener(type, listener); + } + /** + * Rotate azimuthal angle(horizontal) and polar angle(vertical). + * Every value is added to the current value. + * @param azimuthAngle Azimuth rotate angle. In radian. + * @param polarAngle Polar rotate angle. In radian. + * @param enableTransition Whether to move smoothly or immediately + * @category Methods + */ + rotate(azimuthAngle, polarAngle, enableTransition = false) { + return this.rotateTo(this._sphericalEnd.theta + azimuthAngle, this._sphericalEnd.phi + polarAngle, enableTransition); + } + /** + * Rotate azimuthal angle(horizontal) to the given angle and keep the same polar angle(vertical) target. + * + * e.g. + * ``` + * cameraControls.rotateAzimuthTo( 30 * THREE.MathUtils.DEG2RAD, true ); + * ``` + * @param azimuthAngle Azimuth rotate angle. In radian. + * @param enableTransition Whether to move smoothly or immediately + * @category Methods + */ + rotateAzimuthTo(azimuthAngle, enableTransition = false) { + return this.rotateTo(azimuthAngle, this._sphericalEnd.phi, enableTransition); + } + /** + * Rotate polar angle(vertical) to the given angle and keep the same azimuthal angle(horizontal) target. + * + * e.g. + * ``` + * cameraControls.rotatePolarTo( 30 * THREE.MathUtils.DEG2RAD, true ); + * ``` + * @param polarAngle Polar rotate angle. In radian. + * @param enableTransition Whether to move smoothly or immediately + * @category Methods + */ + rotatePolarTo(polarAngle, enableTransition = false) { + return this.rotateTo(this._sphericalEnd.theta, polarAngle, enableTransition); + } + /** + * Rotate azimuthal angle(horizontal) and polar angle(vertical) to the given angle. + * Camera view will rotate over the orbit pivot absolutely: + * + * azimuthAngle + * ``` + * 0º + * \ + * 90º -----+----- -90º + * \ + * 180º + * ``` + * | direction | angle | + * | --------- | ---------------------- | + * | front | 0º | + * | left | 90º (`Math.PI / 2`) | + * | right | -90º (`- Math.PI / 2`) | + * | back | 180º (`Math.PI`) | + * + * polarAngle + * ``` + * 180º + * | + * 90º + * | + * 0º + * ``` + * | direction | angle | + * | -------------------- | ---------------------- | + * | top/sky | 180º (`Math.PI`) | + * | horizontal from view | 90º (`Math.PI / 2`) | + * | bottom/floor | 0º | + * + * @param azimuthAngle Azimuth rotate angle to. In radian. + * @param polarAngle Polar rotate angle to. In radian. + * @param enableTransition Whether to move smoothly or immediately + * @category Methods + */ + rotateTo(azimuthAngle, polarAngle, enableTransition = false) { + const theta = THREE.MathUtils.clamp(azimuthAngle, this.minAzimuthAngle, this.maxAzimuthAngle); + const phi = THREE.MathUtils.clamp(polarAngle, this.minPolarAngle, this.maxPolarAngle); + this._sphericalEnd.theta = theta; + this._sphericalEnd.phi = phi; + this._sphericalEnd.makeSafe(); + this._needsUpdate = true; + if (!enableTransition) { + this._spherical.theta = this._sphericalEnd.theta; + this._spherical.phi = this._sphericalEnd.phi; + } + const resolveImmediately = !enableTransition || + approxEquals(this._spherical.theta, this._sphericalEnd.theta, this.restThreshold) && + approxEquals(this._spherical.phi, this._sphericalEnd.phi, this.restThreshold); + return this._createOnRestPromise(resolveImmediately); + } + /** + * Dolly in/out camera position. + * @param distance Distance of dollyIn. Negative number for dollyOut. + * @param enableTransition Whether to move smoothly or immediately. + * @category Methods + */ + dolly(distance, enableTransition = false) { + return this.dollyTo(this._sphericalEnd.radius - distance, enableTransition); + } + /** + * Dolly in/out camera position to given distance. + * @param distance Distance of dolly. + * @param enableTransition Whether to move smoothly or immediately. + * @category Methods + */ + dollyTo(distance, enableTransition = false) { + const lastRadius = this._sphericalEnd.radius; + const newRadius = THREE.MathUtils.clamp(distance, this.minDistance, this.maxDistance); + const hasCollider = this.colliderMeshes.length >= 1; + if (hasCollider) { + const maxDistanceByCollisionTest = this._collisionTest(); + const isCollided = approxEquals(maxDistanceByCollisionTest, this._spherical.radius); + const isDollyIn = lastRadius > newRadius; + if (!isDollyIn && isCollided) + return Promise.resolve(); + this._sphericalEnd.radius = Math.min(newRadius, maxDistanceByCollisionTest); + } + else { + this._sphericalEnd.radius = newRadius; + } + this._needsUpdate = true; + if (!enableTransition) { + this._spherical.radius = this._sphericalEnd.radius; + } + const resolveImmediately = !enableTransition || approxEquals(this._spherical.radius, this._sphericalEnd.radius, this.restThreshold); + return this._createOnRestPromise(resolveImmediately); + } + /** + * Zoom in/out camera. The value is added to camera zoom. + * Limits set with `.minZoom` and `.maxZoom` + * @param zoomStep zoom scale + * @param enableTransition Whether to move smoothly or immediately + * @category Methods + */ + zoom(zoomStep, enableTransition = false) { + return this.zoomTo(this._zoomEnd + zoomStep, enableTransition); + } + /** + * Zoom in/out camera to given scale. The value overwrites camera zoom. + * Limits set with .minZoom and .maxZoom + * @param zoom + * @param enableTransition + * @category Methods + */ + zoomTo(zoom, enableTransition = false) { + this._zoomEnd = THREE.MathUtils.clamp(zoom, this.minZoom, this.maxZoom); + this._needsUpdate = true; + if (!enableTransition) { + this._zoom = this._zoomEnd; + } + const resolveImmediately = !enableTransition || approxEquals(this._zoom, this._zoomEnd, this.restThreshold); + return this._createOnRestPromise(resolveImmediately); + } + /** + * @deprecated `pan()` has been renamed to `truck()` + * @category Methods + */ + pan(x, y, enableTransition = false) { + console.warn('`pan` has been renamed to `truck`'); + return this.truck(x, y, enableTransition); + } + /** + * Truck and pedestal camera using current azimuthal angle + * @param x Horizontal translate amount + * @param y Vertical translate amount + * @param enableTransition Whether to move smoothly or immediately + * @category Methods + */ + truck(x, y, enableTransition = false) { + this._camera.updateMatrix(); + _xColumn.setFromMatrixColumn(this._camera.matrix, 0); + _yColumn.setFromMatrixColumn(this._camera.matrix, 1); + _xColumn.multiplyScalar(x); + _yColumn.multiplyScalar(-y); + const offset = _v3A.copy(_xColumn).add(_yColumn); + const to = _v3B.copy(this._targetEnd).add(offset); + return this.moveTo(to.x, to.y, to.z, enableTransition); + } + /** + * Move forward / backward. + * @param distance Amount to move forward / backward. Negative value to move backward + * @param enableTransition Whether to move smoothly or immediately + * @category Methods + */ + forward(distance, enableTransition = false) { + _v3A.setFromMatrixColumn(this._camera.matrix, 0); + _v3A.crossVectors(this._camera.up, _v3A); + _v3A.multiplyScalar(distance); + const to = _v3B.copy(this._targetEnd).add(_v3A); + return this.moveTo(to.x, to.y, to.z, enableTransition); + } + /** + * Move target position to given point. + * @param x x coord to move center position + * @param y y coord to move center position + * @param z z coord to move center position + * @param enableTransition Whether to move smoothly or immediately + * @category Methods + */ + moveTo(x, y, z, enableTransition = false) { + const offset = _v3A.set(x, y, z).sub(this._targetEnd); + this._encloseToBoundary(this._targetEnd, offset, this.boundaryFriction); + this._needsUpdate = true; + if (!enableTransition) { + this._target.copy(this._targetEnd); + } + const resolveImmediately = !enableTransition || + approxEquals(this._target.x, this._targetEnd.x, this.restThreshold) && + approxEquals(this._target.y, this._targetEnd.y, this.restThreshold) && + approxEquals(this._target.z, this._targetEnd.z, this.restThreshold); + return this._createOnRestPromise(resolveImmediately); + } + /** + * Fit the viewport to the box or the bounding box of the object, using the nearest axis. paddings are in unit. + * set `cover: true` to fill enter screen. + * e.g. + * ``` + * cameraControls.fitToBox( myMesh ); + * ``` + * @param box3OrObject Axis aligned bounding box to fit the view. + * @param enableTransition Whether to move smoothly or immediately. + * @param options | `` { cover: boolean, paddingTop: number, paddingLeft: number, paddingBottom: number, paddingRight: number } + * @returns Transition end promise + * @category Methods + */ + fitToBox(box3OrObject, enableTransition, { cover = false, paddingLeft = 0, paddingRight = 0, paddingBottom = 0, paddingTop = 0 } = {}) { + const promises = []; + const aabb = box3OrObject.isBox3 + ? _box3A.copy(box3OrObject) + : _box3A.setFromObject(box3OrObject); + if (aabb.isEmpty()) { + console.warn('camera-controls: fitTo() cannot be used with an empty box. Aborting'); + Promise.resolve(); + } + // round to closest axis ( forward | backward | right | left | top | bottom ) + const theta = roundToStep(this._sphericalEnd.theta, PI_HALF); + const phi = roundToStep(this._sphericalEnd.phi, PI_HALF); + promises.push(this.rotateTo(theta, phi, enableTransition)); + const normal = _v3A.setFromSpherical(this._sphericalEnd).normalize(); + const rotation = _quaternionA.setFromUnitVectors(normal, _AXIS_Z); + const viewFromPolar = approxEquals(Math.abs(normal.y), 1); + if (viewFromPolar) { + rotation.multiply(_quaternionB.setFromAxisAngle(_AXIS_Y, theta)); + } + rotation.multiply(this._yAxisUpSpaceInverse); + // make oriented bounding box + const bb = _box3B.makeEmpty(); + // left bottom back corner + _v3B.copy(aabb.min).applyQuaternion(rotation); + bb.expandByPoint(_v3B); + // right bottom back corner + _v3B.copy(aabb.min).setX(aabb.max.x).applyQuaternion(rotation); + bb.expandByPoint(_v3B); + // left top back corner + _v3B.copy(aabb.min).setY(aabb.max.y).applyQuaternion(rotation); + bb.expandByPoint(_v3B); + // right top back corner + _v3B.copy(aabb.max).setZ(aabb.min.z).applyQuaternion(rotation); + bb.expandByPoint(_v3B); + // left bottom front corner + _v3B.copy(aabb.min).setZ(aabb.max.z).applyQuaternion(rotation); + bb.expandByPoint(_v3B); + // right bottom front corner + _v3B.copy(aabb.max).setY(aabb.min.y).applyQuaternion(rotation); + bb.expandByPoint(_v3B); + // left top front corner + _v3B.copy(aabb.max).setX(aabb.min.x).applyQuaternion(rotation); + bb.expandByPoint(_v3B); + // right top front corner + _v3B.copy(aabb.max).applyQuaternion(rotation); + bb.expandByPoint(_v3B); + // add padding + bb.min.x -= paddingLeft; + bb.min.y -= paddingBottom; + bb.max.x += paddingRight; + bb.max.y += paddingTop; + rotation.setFromUnitVectors(_AXIS_Z, normal); + if (viewFromPolar) { + rotation.premultiply(_quaternionB.invert()); + } + rotation.premultiply(this._yAxisUpSpace); + const bbSize = bb.getSize(_v3A); + const center = bb.getCenter(_v3B).applyQuaternion(rotation); + if (isPerspectiveCamera(this._camera)) { + const distance = this.getDistanceToFitBox(bbSize.x, bbSize.y, bbSize.z, cover); + promises.push(this.moveTo(center.x, center.y, center.z, enableTransition)); + promises.push(this.dollyTo(distance, enableTransition)); + promises.push(this.setFocalOffset(0, 0, 0, enableTransition)); + } + else if (isOrthographicCamera(this._camera)) { + const camera = this._camera; + const width = camera.right - camera.left; + const height = camera.top - camera.bottom; + const zoom = cover ? Math.max(width / bbSize.x, height / bbSize.y) : Math.min(width / bbSize.x, height / bbSize.y); + promises.push(this.moveTo(center.x, center.y, center.z, enableTransition)); + promises.push(this.zoomTo(zoom, enableTransition)); + promises.push(this.setFocalOffset(0, 0, 0, enableTransition)); + } + return Promise.all(promises); + } + /** + * Fit the viewport to the sphere or the bounding sphere of the object. + * @param sphereOrMesh + * @param enableTransition + * @category Methods + */ + fitToSphere(sphereOrMesh, enableTransition) { + const promises = []; + const isSphere = sphereOrMesh instanceof THREE.Sphere; + const boundingSphere = isSphere ? + _sphere$1.copy(sphereOrMesh) : + createBoundingSphere(sphereOrMesh, _sphere$1); + promises.push(this.moveTo(boundingSphere.center.x, boundingSphere.center.y, boundingSphere.center.z, enableTransition)); + if (isPerspectiveCamera(this._camera)) { + const distanceToFit = this.getDistanceToFitSphere(boundingSphere.radius); + promises.push(this.dollyTo(distanceToFit, enableTransition)); + } + else if (isOrthographicCamera(this._camera)) { + const width = this._camera.right - this._camera.left; + const height = this._camera.top - this._camera.bottom; + const diameter = 2 * boundingSphere.radius; + const zoom = Math.min(width / diameter, height / diameter); + promises.push(this.zoomTo(zoom, enableTransition)); + } + promises.push(this.setFocalOffset(0, 0, 0, enableTransition)); + return Promise.all(promises); + } + /** + * Make an orbit with given points. + * @param positionX + * @param positionY + * @param positionZ + * @param targetX + * @param targetY + * @param targetZ + * @param enableTransition + * @category Methods + */ + setLookAt(positionX, positionY, positionZ, targetX, targetY, targetZ, enableTransition = false) { + const target = _v3B.set(targetX, targetY, targetZ); + const position = _v3A.set(positionX, positionY, positionZ); + this._targetEnd.copy(target); + this._sphericalEnd.setFromVector3(position.sub(target).applyQuaternion(this._yAxisUpSpace)); + this.normalizeRotations(); + this._needsUpdate = true; + if (!enableTransition) { + this._target.copy(this._targetEnd); + this._spherical.copy(this._sphericalEnd); + } + const resolveImmediately = !enableTransition || + approxEquals(this._target.x, this._targetEnd.x, this.restThreshold) && + approxEquals(this._target.y, this._targetEnd.y, this.restThreshold) && + approxEquals(this._target.z, this._targetEnd.z, this.restThreshold) && + approxEquals(this._spherical.theta, this._sphericalEnd.theta, this.restThreshold) && + approxEquals(this._spherical.phi, this._sphericalEnd.phi, this.restThreshold) && + approxEquals(this._spherical.radius, this._sphericalEnd.radius, this.restThreshold); + return this._createOnRestPromise(resolveImmediately); + } + /** + * Similar to setLookAt, but it interpolates between two states. + * @param positionAX + * @param positionAY + * @param positionAZ + * @param targetAX + * @param targetAY + * @param targetAZ + * @param positionBX + * @param positionBY + * @param positionBZ + * @param targetBX + * @param targetBY + * @param targetBZ + * @param t + * @param enableTransition + * @category Methods + */ + lerpLookAt(positionAX, positionAY, positionAZ, targetAX, targetAY, targetAZ, positionBX, positionBY, positionBZ, targetBX, targetBY, targetBZ, t, enableTransition = false) { + const targetA = _v3A.set(targetAX, targetAY, targetAZ); + const positionA = _v3B.set(positionAX, positionAY, positionAZ); + _sphericalA.setFromVector3(positionA.sub(targetA).applyQuaternion(this._yAxisUpSpace)); + const targetB = _v3C.set(targetBX, targetBY, targetBZ); + const positionB = _v3B.set(positionBX, positionBY, positionBZ); + _sphericalB.setFromVector3(positionB.sub(targetB).applyQuaternion(this._yAxisUpSpace)); + this._targetEnd.copy(targetA.lerp(targetB, t)); // tricky + const deltaTheta = _sphericalB.theta - _sphericalA.theta; + const deltaPhi = _sphericalB.phi - _sphericalA.phi; + const deltaRadius = _sphericalB.radius - _sphericalA.radius; + this._sphericalEnd.set(_sphericalA.radius + deltaRadius * t, _sphericalA.phi + deltaPhi * t, _sphericalA.theta + deltaTheta * t); + this.normalizeRotations(); + this._needsUpdate = true; + if (!enableTransition) { + this._target.copy(this._targetEnd); + this._spherical.copy(this._sphericalEnd); + } + const resolveImmediately = !enableTransition || + approxEquals(this._target.x, this._targetEnd.x, this.restThreshold) && + approxEquals(this._target.y, this._targetEnd.y, this.restThreshold) && + approxEquals(this._target.z, this._targetEnd.z, this.restThreshold) && + approxEquals(this._spherical.theta, this._sphericalEnd.theta, this.restThreshold) && + approxEquals(this._spherical.phi, this._sphericalEnd.phi, this.restThreshold) && + approxEquals(this._spherical.radius, this._sphericalEnd.radius, this.restThreshold); + return this._createOnRestPromise(resolveImmediately); + } + /** + * setLookAt without target, keep gazing at the current target + * @param positionX + * @param positionY + * @param positionZ + * @param enableTransition + * @category Methods + */ + setPosition(positionX, positionY, positionZ, enableTransition = false) { + return this.setLookAt(positionX, positionY, positionZ, this._targetEnd.x, this._targetEnd.y, this._targetEnd.z, enableTransition); + } + /** + * setLookAt without position, Stay still at the position. + * @param targetX + * @param targetY + * @param targetZ + * @param enableTransition + * @category Methods + */ + setTarget(targetX, targetY, targetZ, enableTransition = false) { + const pos = this.getPosition(_v3A); + const promise = this.setLookAt(pos.x, pos.y, pos.z, targetX, targetY, targetZ, enableTransition); + // see https://github.com/yomotsu/camera-controls/issues/335 + this._sphericalEnd.phi = THREE.MathUtils.clamp(this.polarAngle, this.minPolarAngle, this.maxPolarAngle); + return promise; + } + /** + * Set focal offset using the screen parallel coordinates. z doesn't affect in Orthographic as with Dolly. + * @param x + * @param y + * @param z + * @param enableTransition + * @category Methods + */ + setFocalOffset(x, y, z, enableTransition = false) { + this._focalOffsetEnd.set(x, y, z); + this._needsUpdate = true; + if (!enableTransition) { + this._focalOffset.copy(this._focalOffsetEnd); + } + this._affectOffset = + !approxZero(x) || + !approxZero(y) || + !approxZero(z); + const resolveImmediately = !enableTransition || + approxEquals(this._focalOffset.x, this._focalOffsetEnd.x, this.restThreshold) && + approxEquals(this._focalOffset.y, this._focalOffsetEnd.y, this.restThreshold) && + approxEquals(this._focalOffset.z, this._focalOffsetEnd.z, this.restThreshold); + return this._createOnRestPromise(resolveImmediately); + } + /** + * Set orbit point without moving the camera. + * SHOULD NOT RUN DURING ANIMATIONS. `setOrbitPoint()` will immediately fix the positions. + * @param targetX + * @param targetY + * @param targetZ + * @category Methods + */ + setOrbitPoint(targetX, targetY, targetZ) { + this._camera.updateMatrixWorld(); + _xColumn.setFromMatrixColumn(this._camera.matrixWorldInverse, 0); + _yColumn.setFromMatrixColumn(this._camera.matrixWorldInverse, 1); + _zColumn.setFromMatrixColumn(this._camera.matrixWorldInverse, 2); + const position = _v3A.set(targetX, targetY, targetZ); + const distance = position.distanceTo(this._camera.position); + const cameraToPoint = position.sub(this._camera.position); + _xColumn.multiplyScalar(cameraToPoint.x); + _yColumn.multiplyScalar(cameraToPoint.y); + _zColumn.multiplyScalar(cameraToPoint.z); + _v3A.copy(_xColumn).add(_yColumn).add(_zColumn); + _v3A.z = _v3A.z + distance; + this.dollyTo(distance, false); + this.setFocalOffset(-_v3A.x, _v3A.y, -_v3A.z, false); + this.moveTo(targetX, targetY, targetZ, false); + } + /** + * Set the boundary box that encloses the target of the camera. box3 is in THREE.Box3 + * @param box3 + * @category Methods + */ + setBoundary(box3) { + if (!box3) { + this._boundary.min.set(-Infinity, -Infinity, -Infinity); + this._boundary.max.set(Infinity, Infinity, Infinity); + this._needsUpdate = true; + return; + } + this._boundary.copy(box3); + this._boundary.clampPoint(this._targetEnd, this._targetEnd); + this._needsUpdate = true; + } + /** + * Set (or unset) the current viewport. + * Set this when you want to use renderer viewport and .dollyToCursor feature at the same time. + * @param viewportOrX + * @param y + * @param width + * @param height + * @category Methods + */ + setViewport(viewportOrX, y, width, height) { + if (viewportOrX === null) { // null + this._viewport = null; + return; + } + this._viewport = this._viewport || new THREE.Vector4(); + if (typeof viewportOrX === 'number') { // number + this._viewport.set(viewportOrX, y, width, height); + } + else { // Vector4 + this._viewport.copy(viewportOrX); + } + } + /** + * Calculate the distance to fit the box. + * @param width box width + * @param height box height + * @param depth box depth + * @returns distance + * @category Methods + */ + getDistanceToFitBox(width, height, depth, cover = false) { + if (notSupportedInOrthographicCamera(this._camera, 'getDistanceToFitBox')) + return this._spherical.radius; + const boundingRectAspect = width / height; + const fov = this._camera.getEffectiveFOV() * THREE.MathUtils.DEG2RAD; + const aspect = this._camera.aspect; + const heightToFit = (cover ? boundingRectAspect > aspect : boundingRectAspect < aspect) ? height : width / aspect; + return heightToFit * 0.5 / Math.tan(fov * 0.5) + depth * 0.5; + } + /** + * Calculate the distance to fit the sphere. + * @param radius sphere radius + * @returns distance + * @category Methods + */ + getDistanceToFitSphere(radius) { + if (notSupportedInOrthographicCamera(this._camera, 'getDistanceToFitSphere')) + return this._spherical.radius; + // https://stackoverflow.com/a/44849975 + const vFOV = this._camera.getEffectiveFOV() * THREE.MathUtils.DEG2RAD; + const hFOV = Math.atan(Math.tan(vFOV * 0.5) * this._camera.aspect) * 2; + const fov = 1 < this._camera.aspect ? vFOV : hFOV; + return radius / (Math.sin(fov * 0.5)); + } + /** + * Returns its current gazing target, which is the center position of the orbit. + * @param out current gazing target + * @category Methods + */ + getTarget(out) { + const _out = !!out && out.isVector3 ? out : new THREE.Vector3(); + return _out.copy(this._targetEnd); + } + /** + * Returns its current position. + * @param out current position + * @category Methods + */ + getPosition(out) { + const _out = !!out && out.isVector3 ? out : new THREE.Vector3(); + return _out.setFromSpherical(this._sphericalEnd).applyQuaternion(this._yAxisUpSpaceInverse).add(this._targetEnd); + } + /** + * Returns its current focal offset, which is how much the camera appears to be translated in screen parallel coordinates. + * @param out current focal offset + * @category Methods + */ + getFocalOffset(out) { + const _out = !!out && out.isVector3 ? out : new THREE.Vector3(); + return _out.copy(this._focalOffsetEnd); + } + /** + * Normalize camera azimuth angle rotation between 0 and 360 degrees. + * @category Methods + */ + normalizeRotations() { + this._sphericalEnd.theta = this._sphericalEnd.theta % PI_2; + if (this._sphericalEnd.theta < 0) + this._sphericalEnd.theta += PI_2; + this._spherical.theta += PI_2 * Math.round((this._sphericalEnd.theta - this._spherical.theta) / PI_2); + } + /** + * Reset all rotation and position to defaults. + * @param enableTransition + * @category Methods + */ + reset(enableTransition = false) { + const promises = [ + this.setLookAt(this._position0.x, this._position0.y, this._position0.z, this._target0.x, this._target0.y, this._target0.z, enableTransition), + this.setFocalOffset(this._focalOffset0.x, this._focalOffset0.y, this._focalOffset0.z, enableTransition), + this.zoomTo(this._zoom0, enableTransition), + ]; + return Promise.all(promises); + } + /** + * Set current camera position as the default position. + * @category Methods + */ + saveState() { + this.getTarget(this._target0); + this.getPosition(this._position0); + this._zoom0 = this._zoom; + this._focalOffset0.copy(this._focalOffset); + } + /** + * Sync camera-up direction. + * When camera-up vector is changed, `.updateCameraUp()` must be called. + * @category Methods + */ + updateCameraUp() { + this._yAxisUpSpace.setFromUnitVectors(this._camera.up, _AXIS_Y); + quatInvertCompat(this._yAxisUpSpaceInverse.copy(this._yAxisUpSpace)); + } + /** + * Update camera position and directions. + * This should be called in your tick loop every time, and returns true if re-rendering is needed. + * @param delta + * @returns updated + * @category Methods + */ + update(delta) { + const dampingFactor = this._state === ACTION.NONE ? this.dampingFactor : this.draggingDampingFactor; + // The original THREE.OrbitControls assume 60 FPS fixed and does NOT rely on delta time. + // (that must be a problem of the original one though) + // To to emulate the speed of the original one under 60 FPS, multiply `60` to delta, + // but ours are more flexible to any FPS unlike the original. + const lerpRatio = Math.min(dampingFactor * delta * 60, 1); + const deltaTheta = this._sphericalEnd.theta - this._spherical.theta; + const deltaPhi = this._sphericalEnd.phi - this._spherical.phi; + const deltaRadius = this._sphericalEnd.radius - this._spherical.radius; + const deltaTarget = _deltaTarget.subVectors(this._targetEnd, this._target); + const deltaOffset = _deltaOffset.subVectors(this._focalOffsetEnd, this._focalOffset); + if (!approxZero(deltaTheta) || + !approxZero(deltaPhi) || + !approxZero(deltaRadius) || + !approxZero(deltaTarget.x) || + !approxZero(deltaTarget.y) || + !approxZero(deltaTarget.z) || + !approxZero(deltaOffset.x) || + !approxZero(deltaOffset.y) || + !approxZero(deltaOffset.z)) { + this._spherical.set(this._spherical.radius + deltaRadius * lerpRatio, this._spherical.phi + deltaPhi * lerpRatio, this._spherical.theta + deltaTheta * lerpRatio); + this._target.add(deltaTarget.multiplyScalar(lerpRatio)); + this._focalOffset.add(deltaOffset.multiplyScalar(lerpRatio)); + this._needsUpdate = true; + } + else { + this._spherical.copy(this._sphericalEnd); + this._target.copy(this._targetEnd); + this._focalOffset.copy(this._focalOffsetEnd); + } + if (this._dollyControlAmount !== 0) { + if (isPerspectiveCamera(this._camera)) { + const camera = this._camera; + const cameraDirection = _v3A.setFromSpherical(this._spherical).applyQuaternion(this._yAxisUpSpaceInverse).normalize().negate(); + const planeX = _v3B.copy(cameraDirection).cross(camera.up).normalize(); + if (planeX.lengthSq() === 0) + planeX.x = 1.0; + const planeY = _v3C.crossVectors(planeX, cameraDirection); + const worldToScreen = this._sphericalEnd.radius * Math.tan(camera.getEffectiveFOV() * THREE.MathUtils.DEG2RAD * 0.5); + const prevRadius = this._sphericalEnd.radius - this._dollyControlAmount; + const lerpRatio = (prevRadius - this._sphericalEnd.radius) / this._sphericalEnd.radius; + const cursor = _v3A.copy(this._targetEnd) + .add(planeX.multiplyScalar(this._dollyControlCoord.x * worldToScreen * camera.aspect)) + .add(planeY.multiplyScalar(this._dollyControlCoord.y * worldToScreen)); + this._targetEnd.lerp(cursor, lerpRatio); + } + else if (isOrthographicCamera(this._camera)) { + const camera = this._camera; + const worldCursorPosition = _v3A.set(this._dollyControlCoord.x, this._dollyControlCoord.y, (camera.near + camera.far) / (camera.near - camera.far)).unproject(camera); //.sub( _v3B.set( this._focalOffset.x, this._focalOffset.y, 0 ) ); + const quaternion = _v3B.set(0, 0, -1).applyQuaternion(camera.quaternion); + const cursor = _v3C.copy(worldCursorPosition).add(quaternion.multiplyScalar(-worldCursorPosition.dot(camera.up))); + const prevZoom = this._zoom - this._dollyControlAmount; + const lerpRatio = -(prevZoom - this._zoomEnd) / this._zoom; + // find the "distance" (aka plane constant in three.js) of Plane + // from a given position (this._targetEnd) and normal vector (cameraDirection) + // https://www.maplesoft.com/support/help/maple/view.aspx?path=MathApps%2FEquationOfAPlaneNormal#bkmrk0 + const cameraDirection = _v3A.setFromSpherical(this._spherical).applyQuaternion(this._yAxisUpSpaceInverse).normalize().negate(); + const prevPlaneConstant = this._targetEnd.dot(cameraDirection); + this._targetEnd.lerp(cursor, lerpRatio); + const newPlaneConstant = this._targetEnd.dot(cameraDirection); + // Pull back the camera depth that has moved, to be the camera stationary as zoom + const pullBack = cameraDirection.multiplyScalar(newPlaneConstant - prevPlaneConstant); + this._targetEnd.sub(pullBack); + } + this._target.copy(this._targetEnd); + // target position may be moved beyond boundary. + this._boundary.clampPoint(this._targetEnd, this._targetEnd); + this._dollyControlAmount = 0; + } + // zoom + const deltaZoom = this._zoomEnd - this._zoom; + this._zoom += deltaZoom * lerpRatio; + if (this._camera.zoom !== this._zoom) { + if (approxZero(deltaZoom)) + this._zoom = this._zoomEnd; + this._camera.zoom = this._zoom; + this._camera.updateProjectionMatrix(); + this._updateNearPlaneCorners(); + this._needsUpdate = true; + } + // collision detection + const maxDistance = this._collisionTest(); + this._spherical.radius = Math.min(this._spherical.radius, maxDistance); + // decompose spherical to the camera position + this._spherical.makeSafe(); + this._camera.position.setFromSpherical(this._spherical).applyQuaternion(this._yAxisUpSpaceInverse).add(this._target); + this._camera.lookAt(this._target); + // set offset after the orbit movement + if (this._affectOffset) { + this._camera.updateMatrixWorld(); + _xColumn.setFromMatrixColumn(this._camera.matrix, 0); + _yColumn.setFromMatrixColumn(this._camera.matrix, 1); + _zColumn.setFromMatrixColumn(this._camera.matrix, 2); + _xColumn.multiplyScalar(this._focalOffset.x); + _yColumn.multiplyScalar(-this._focalOffset.y); + _zColumn.multiplyScalar(this._focalOffset.z); // notice: z-offset will not affect in Orthographic. + _v3A.copy(_xColumn).add(_yColumn).add(_zColumn); + this._camera.position.add(_v3A); + } + if (this._boundaryEnclosesCamera) { + this._encloseToBoundary(this._camera.position.copy(this._target), _v3A.setFromSpherical(this._spherical).applyQuaternion(this._yAxisUpSpaceInverse), 1.0); + } + const updated = this._needsUpdate; + if (updated && !this._updatedLastTime) { + this._hasRested = false; + this.dispatchEvent({ type: 'wake' }); + this.dispatchEvent({ type: 'update' }); + } + else if (updated) { + this.dispatchEvent({ type: 'update' }); + if (approxZero(deltaTheta, this.restThreshold) && + approxZero(deltaPhi, this.restThreshold) && + approxZero(deltaRadius, this.restThreshold) && + approxZero(deltaTarget.x, this.restThreshold) && + approxZero(deltaTarget.y, this.restThreshold) && + approxZero(deltaTarget.z, this.restThreshold) && + approxZero(deltaOffset.x, this.restThreshold) && + approxZero(deltaOffset.y, this.restThreshold) && + approxZero(deltaOffset.z, this.restThreshold) && + approxZero(deltaZoom, this.restThreshold) && + !this._hasRested) { + this._hasRested = true; + this.dispatchEvent({ type: 'rest' }); + } + } + else if (!updated && this._updatedLastTime) { + this.dispatchEvent({ type: 'sleep' }); + } + this._updatedLastTime = updated; + this._needsUpdate = false; + return updated; + } + /** + * Get all state in JSON string + * @category Methods + */ + toJSON() { + return JSON.stringify({ + enabled: this._enabled, + minDistance: this.minDistance, + maxDistance: infinityToMaxNumber(this.maxDistance), + minZoom: this.minZoom, + maxZoom: infinityToMaxNumber(this.maxZoom), + minPolarAngle: this.minPolarAngle, + maxPolarAngle: infinityToMaxNumber(this.maxPolarAngle), + minAzimuthAngle: infinityToMaxNumber(this.minAzimuthAngle), + maxAzimuthAngle: infinityToMaxNumber(this.maxAzimuthAngle), + dampingFactor: this.dampingFactor, + draggingDampingFactor: this.draggingDampingFactor, + dollySpeed: this.dollySpeed, + truckSpeed: this.truckSpeed, + dollyToCursor: this.dollyToCursor, + verticalDragToForward: this.verticalDragToForward, + target: this._targetEnd.toArray(), + position: _v3A.setFromSpherical(this._sphericalEnd).add(this._targetEnd).toArray(), + zoom: this._zoomEnd, + focalOffset: this._focalOffsetEnd.toArray(), + target0: this._target0.toArray(), + position0: this._position0.toArray(), + zoom0: this._zoom0, + focalOffset0: this._focalOffset0.toArray(), + }); + } + /** + * Reproduce the control state with JSON. enableTransition is where anim or not in a boolean. + * @param json + * @param enableTransition + * @category Methods + */ + fromJSON(json, enableTransition = false) { + const obj = JSON.parse(json); + const position = _v3A.fromArray(obj.position); + this.enabled = obj.enabled; + this.minDistance = obj.minDistance; + this.maxDistance = maxNumberToInfinity(obj.maxDistance); + this.minZoom = obj.minZoom; + this.maxZoom = maxNumberToInfinity(obj.maxZoom); + this.minPolarAngle = obj.minPolarAngle; + this.maxPolarAngle = maxNumberToInfinity(obj.maxPolarAngle); + this.minAzimuthAngle = maxNumberToInfinity(obj.minAzimuthAngle); + this.maxAzimuthAngle = maxNumberToInfinity(obj.maxAzimuthAngle); + this.dampingFactor = obj.dampingFactor; + this.draggingDampingFactor = obj.draggingDampingFactor; + this.dollySpeed = obj.dollySpeed; + this.truckSpeed = obj.truckSpeed; + this.dollyToCursor = obj.dollyToCursor; + this.verticalDragToForward = obj.verticalDragToForward; + this._target0.fromArray(obj.target0); + this._position0.fromArray(obj.position0); + this._zoom0 = obj.zoom0; + this._focalOffset0.fromArray(obj.focalOffset0); + this.moveTo(obj.target[0], obj.target[1], obj.target[2], enableTransition); + _sphericalA.setFromVector3(position.sub(this._targetEnd).applyQuaternion(this._yAxisUpSpace)); + this.rotateTo(_sphericalA.theta, _sphericalA.phi, enableTransition); + this.zoomTo(obj.zoom, enableTransition); + this.setFocalOffset(obj.focalOffset[0], obj.focalOffset[1], obj.focalOffset[2], enableTransition); + this._needsUpdate = true; + } + /** + * Attach all internal event handlers to enable drag control. + * @category Methods + */ + connect(domElement) { + if (this._domElement) { + console.warn('camera-controls is already connected.'); + return; + } + domElement.setAttribute('data-camera-controls-version', VERSION); + this._addAllEventListeners(domElement); + } + /** + * Detach all internal event handlers to disable drag control. + */ + disconnect() { + this._removeAllEventListeners(); + this._domElement = undefined; + } + /** + * Dispose the cameraControls instance itself, remove all eventListeners. + * @category Methods + */ + dispose() { + this.disconnect(); + if (this._domElement && 'setAttribute' in this._domElement) + this._domElement.removeAttribute('data-camera-controls-version'); + } + _findPointerById(pointerId) { + // to support IE11 use some instead of Array#find (will be removed when IE11 is deprecated) + let pointer = null; + this._activePointers.some((activePointer) => { + if (activePointer.pointerId === pointerId) { + pointer = activePointer; + return true; + } + return false; + }); + return pointer; + } + _encloseToBoundary(position, offset, friction) { + const offsetLength2 = offset.lengthSq(); + if (offsetLength2 === 0.0) { // sanity check + return position; + } + // See: https://twitter.com/FMS_Cat/status/1106508958640988161 + const newTarget = _v3B.copy(offset).add(position); // target + const clampedTarget = this._boundary.clampPoint(newTarget, _v3C); // clamped target + const deltaClampedTarget = clampedTarget.sub(newTarget); // newTarget -> clampedTarget + const deltaClampedTargetLength2 = deltaClampedTarget.lengthSq(); // squared length of deltaClampedTarget + if (deltaClampedTargetLength2 === 0.0) { // when the position doesn't have to be clamped + return position.add(offset); + } + else if (deltaClampedTargetLength2 === offsetLength2) { // when the position is completely stuck + return position; + } + else if (friction === 0.0) { + return position.add(offset).add(deltaClampedTarget); + } + else { + const offsetFactor = 1.0 + friction * deltaClampedTargetLength2 / offset.dot(deltaClampedTarget); + return position + .add(_v3B.copy(offset).multiplyScalar(offsetFactor)) + .add(deltaClampedTarget.multiplyScalar(1.0 - friction)); + } + } + _updateNearPlaneCorners() { + if (isPerspectiveCamera(this._camera)) { + const camera = this._camera; + const near = camera.near; + const fov = camera.getEffectiveFOV() * THREE.MathUtils.DEG2RAD; + const heightHalf = Math.tan(fov * 0.5) * near; // near plain half height + const widthHalf = heightHalf * camera.aspect; // near plain half width + this._nearPlaneCorners[0].set(-widthHalf, -heightHalf, 0); + this._nearPlaneCorners[1].set(widthHalf, -heightHalf, 0); + this._nearPlaneCorners[2].set(widthHalf, heightHalf, 0); + this._nearPlaneCorners[3].set(-widthHalf, heightHalf, 0); + } + else if (isOrthographicCamera(this._camera)) { + const camera = this._camera; + const zoomInv = 1 / camera.zoom; + const left = camera.left * zoomInv; + const right = camera.right * zoomInv; + const top = camera.top * zoomInv; + const bottom = camera.bottom * zoomInv; + this._nearPlaneCorners[0].set(left, top, 0); + this._nearPlaneCorners[1].set(right, top, 0); + this._nearPlaneCorners[2].set(right, bottom, 0); + this._nearPlaneCorners[3].set(left, bottom, 0); + } + } + // lateUpdate + _collisionTest() { + let distance = Infinity; + const hasCollider = this.colliderMeshes.length >= 1; + if (!hasCollider) + return distance; + if (notSupportedInOrthographicCamera(this._camera, '_collisionTest')) + return distance; + // divide by distance to normalize, lighter than `Vector3.prototype.normalize()` + const direction = _v3A.setFromSpherical(this._spherical).divideScalar(this._spherical.radius); + _rotationMatrix.lookAt(_ORIGIN, direction, this._camera.up); + for (let i = 0; i < 4; i++) { + const nearPlaneCorner = _v3B.copy(this._nearPlaneCorners[i]); + nearPlaneCorner.applyMatrix4(_rotationMatrix); + const origin = _v3C.addVectors(this._target, nearPlaneCorner); + _raycaster$1.set(origin, direction); + _raycaster$1.far = this._spherical.radius + 1; + const intersects = _raycaster$1.intersectObjects(this.colliderMeshes); + if (intersects.length !== 0 && intersects[0].distance < distance) { + distance = intersects[0].distance; + } + } + return distance; + } + /** + * Get its client rect and package into given `DOMRect` . + */ + _getClientRect(target) { + if (!this._domElement) + return; + const rect = this._domElement.getBoundingClientRect(); + target.x = rect.left; + target.y = rect.top; + if (this._viewport) { + target.x += this._viewport.x; + target.y += rect.height - this._viewport.w - this._viewport.y; + target.width = this._viewport.z; + target.height = this._viewport.w; + } + else { + target.width = rect.width; + target.height = rect.height; + } + return target; + } + _createOnRestPromise(resolveImmediately) { + if (resolveImmediately) + return Promise.resolve(); + this._hasRested = false; + this.dispatchEvent({ type: 'transitionstart' }); + return new Promise((resolve) => { + const onResolve = () => { + this.removeEventListener('rest', onResolve); + resolve(); + }; + this.addEventListener('rest', onResolve); + }); + } + // eslint-disable-next-line @typescript-eslint/no-unused-vars + _addAllEventListeners(_domElement) { } + _removeAllEventListeners() { } +} +function createBoundingSphere(object3d, out) { + const boundingSphere = out; + const center = boundingSphere.center; + _box3A.makeEmpty(); + // find the center + object3d.traverseVisible((object) => { + if (!object.isMesh) + return; + _box3A.expandByObject(object); + }); + _box3A.getCenter(center); + // find the radius + let maxRadiusSq = 0; + object3d.traverseVisible((object) => { + if (!object.isMesh) + return; + const mesh = object; + const geometry = mesh.geometry.clone(); + geometry.applyMatrix4(mesh.matrixWorld); + if (geometry.isBufferGeometry) { + const bufferGeometry = geometry; + const position = bufferGeometry.attributes.position; + for (let i = 0, l = position.count; i < l; i++) { + _v3A.fromBufferAttribute(position, i); + maxRadiusSq = Math.max(maxRadiusSq, center.distanceToSquared(_v3A)); + } + } + else { + // for old three.js, which supports both BufferGeometry and Geometry + // this condition block will be removed in the near future. + const position = geometry.attributes.position; + const vector = new THREE.Vector3(); + for (let i = 0, l = position.count; i < l; i++) { + vector.fromBufferAttribute(position, i); + maxRadiusSq = Math.max(maxRadiusSq, center.distanceToSquared(vector)); + } + } + }); + boundingSphere.radius = Math.sqrt(maxRadiusSq); + return boundingSphere; +} - let p2; - if ( d2 < 0 ) { +/** + * A basic camera that uses + * [yomotsu's cameracontrols](https://github.com/yomotsu/camera-controls) to + * easily control the camera in 2D and 3D. Check out it's API to find out + * what features it offers. + */ +class SimpleCamera extends Component { + /** {@link Component.enabled} */ + get enabled() { + return this.controls.enabled; + } + /** {@link Component.enabled} */ + set enabled(enabled) { + this.controls.enabled = enabled; + } + constructor(components) { + super(components); + /** {@link Updateable.onBeforeUpdate} */ + this.onBeforeUpdate = new Event(); + /** {@link Updateable.onAfterUpdate} */ + this.onAfterUpdate = new Event(); + this.onAspectUpdated = new Event(); + /** + * Updates the aspect of the camera to match the size of the + * {@link Components.renderer}. + */ + this.updateAspect = () => { + if (this.components.renderer.isResizeable()) { + const size = this.components.renderer.getSize(); + this._perspectiveCamera.aspect = size.width / size.height; + this._perspectiveCamera.updateProjectionMatrix(); + this.onAspectUpdated.trigger(); + } + }; + this._perspectiveCamera = this.setupCamera(); + this.activeCamera = this._perspectiveCamera; + this.controls = this.setupCameraControls(); + const scene = components.scene.get(); + scene.add(this._perspectiveCamera); + this.setupEvents(true); + } + /** {@link Component.get} */ + get() { + return this.activeCamera; + } + /** {@link Disposable.dispose} */ + async dispose() { + this.setupEvents(false); + this.enabled = false; + this.onAspectUpdated.reset(); + this.onBeforeUpdate.reset(); + this.onAfterUpdate.reset(); + this._perspectiveCamera.removeFromParent(); + this.controls.dispose(); + } + /** {@link Updateable.update} */ + update(_delta) { + if (this.enabled) { + this.onBeforeUpdate.trigger(this); + this.controls.update(_delta); + this.onAfterUpdate.trigger(this); + } + } + setupCamera() { + const aspect = window.innerWidth / window.innerHeight; + const camera = new THREE$1.PerspectiveCamera(60, aspect, 1, 1000); + camera.position.set(50, 50, 50); + camera.lookAt(new THREE$1.Vector3(0, 0, 0)); + return camera; + } + setupCameraControls() { + CameraControls.install({ THREE: SimpleCamera.getSubsetOfThree() }); + const dom = this.components.renderer.get().domElement; + const controls = new CameraControls(this._perspectiveCamera, dom); + controls.dampingFactor = 0.2; + controls.dollyToCursor = true; + controls.infinityDolly = true; + controls.setTarget(0, 0, 0); + return controls; + } + setupEvents(active) { + if (active) { + window.addEventListener("resize", this.updateAspect); + } + else { + window.removeEventListener("resize", this.updateAspect); + } + } + static getSubsetOfThree() { + return { + MOUSE: THREE$1.MOUSE, + Vector2: THREE$1.Vector2, + Vector3: THREE$1.Vector3, + Vector4: THREE$1.Vector4, + Quaternion: THREE$1.Quaternion, + Matrix4: THREE$1.Matrix4, + Spherical: THREE$1.Spherical, + Box3: THREE$1.Box3, + Sphere: THREE$1.Sphere, + Raycaster: THREE$1.Raycaster, + MathUtils: THREE$1.MathUtils, + }; + } +} - p2 = l2.start; +/** + * A base component for other components whose main mission is to cast rays, + * generally to pick objects with the mouse. + */ +class BaseRaycaster extends Component { +} - } else { +/** + * A simple [raycaster](https://threejs.org/docs/#api/en/core/Raycaster) + * that allows to easily get items from the scene using the mouse and touch + * events. + */ +class SimpleRaycaster extends BaseRaycaster { + constructor(components) { + super(components); + /** {@link Component.enabled} */ + this.enabled = true; + this._raycaster = new THREE$1.Raycaster(); + const renderer = components.renderer.get(); + const dom = renderer.domElement; + this.mouse = new Mouse(dom); + } + /** {@link Component.get} */ + get() { + return this._raycaster; + } + /** {@link Disposable.dispose} */ + async dispose() { + this.mouse.dispose(); + } + /** + * Throws a ray from the camera to the mouse or touch event point and returns + * the first item found. This also takes into account the clipping planes + * used by the renderer. + * + * @param items - the [meshes](https://threejs.org/docs/#api/en/objects/Mesh) + * to query. If not provided, it will query all the meshes stored in + * {@link Components.meshes}. + */ + castRay(items = this.components.meshes) { + const camera = this.components.camera.get(); + this._raycaster.setFromCamera(this.mouse.position, camera); + const result = this._raycaster.intersectObjects(items); + const filtered = this.filterClippingPlanes(result); + return filtered.length > 0 ? filtered[0] : null; + } + castRayFromVector(origin, direction, items = this.components.meshes) { + this._raycaster.set(origin, direction); + const result = this._raycaster.intersectObjects(items); + const filtered = this.filterClippingPlanes(result); + return filtered.length > 0 ? filtered[0] : null; + } + filterClippingPlanes(objs) { + const renderer = this.components.renderer; + if (!renderer.clippingPlanes) { + return objs; + } + const planes = renderer.clippingPlanes; + if (objs.length <= 0 || !planes || (planes === null || planes === void 0 ? void 0 : planes.length) <= 0) + return objs; + return objs.filter((elem) => planes.every((elem2) => elem2.distanceToPoint(elem.point) > 0)); + } +} - p2 = l2.end; +/** + * An infinite grid. Created by + * [fyrestar](https://github.com/Fyrestar/THREE.InfiniteGridHelper) + * and translated to typescript by + * [dkaraush](https://github.com/dkaraush/THREE.InfiniteGridHelper/blob/master/InfiniteGridHelper.ts). + */ +class SimpleGrid extends Component { + /** {@link Hideable.visible} */ + get visible() { + return this._grid.visible; + } + /** {@link Hideable.visible} */ + set visible(visible) { + if (visible) { + const scene = this.components.scene.get(); + scene.add(this._grid); + } + else { + this._grid.removeFromParent(); + } + } + /** The material of the grid. */ + get material() { + return this._grid.material; + } + /** + * Whether the grid should fade away with distance. Recommended to be true for + * perspective cameras and false for orthographic cameras. + */ + get fade() { + return this._fade === 3; + } + /** + * Whether the grid should fade away with distance. Recommended to be true for + * perspective cameras and false for orthographic cameras. + */ + set fade(active) { + this._fade = active ? 3 : 0; + this.material.uniforms.uFade.value = this._fade; + } + constructor(components, color = new THREE$1.Color(0xbbbbbb), size1 = 1, size2 = 10, distance = 500) { + super(components); + /** {@link Component.enabled} */ + this.enabled = true; + this._fade = 3; + this.updateZoom = () => { + const camera = this.components.camera; + this.material.uniforms.uZoom.value = camera.get().zoom; + }; + this.components.tools.add(SimpleGrid.uuid, this); + // Source: https://github.com/dkaraush/THREE.InfiniteGridHelper/blob/master/InfiniteGridHelper.ts + // Author: Fyrestar https://mevedia.com (https://github.com/Fyrestar/THREE.InfiniteGridHelper) + const geometry = new THREE$1.PlaneGeometry(2, 2, 1, 1); + const material = new THREE$1.ShaderMaterial({ + side: THREE$1.DoubleSide, + uniforms: { + uSize1: { + value: size1, + }, + uSize2: { + value: size2, + }, + uColor: { + value: color, + }, + uDistance: { + value: distance, + }, + uFade: { + value: this._fade, + }, + uZoom: { + value: 1, + }, + }, + transparent: true, + vertexShader: ` + + varying vec3 worldPosition; + + uniform float uDistance; + + void main() { + + vec3 pos = position.xzy * uDistance; + pos.xz += cameraPosition.xz; + + worldPosition = pos; + + gl_Position = projectionMatrix * modelViewMatrix * vec4(pos, 1.0); + + } + `, + fragmentShader: ` + + varying vec3 worldPosition; + + uniform float uZoom; + uniform float uFade; + uniform float uSize1; + uniform float uSize2; + uniform vec3 uColor; + uniform float uDistance; + + + + float getGrid(float size) { + + vec2 r = worldPosition.xz / size; + + + vec2 grid = abs(fract(r - 0.5) - 0.5) / fwidth(r); + float line = min(grid.x, grid.y); + + + return 1.0 - min(line, 1.0); + } + + void main() { + + + float d = 1.0 - min(distance(cameraPosition.xz, worldPosition.xz) / uDistance, 1.0); + + float g1 = getGrid(uSize1); + float g2 = getGrid(uSize2); + + // Ortho camera fades the grid away when zooming out + float minZoom = step(0.2, uZoom); + float zoomFactor = pow(min(uZoom, 1.), 2.) * minZoom; + + gl_FragColor = vec4(uColor.rgb, mix(g2, g1, g1) * pow(d, uFade)); + gl_FragColor.a = mix(0.5 * gl_FragColor.a, gl_FragColor.a, g2) * zoomFactor; + + if ( gl_FragColor.a <= 0.0 ) discard; + + + } + + `, + extensions: { + derivatives: true, + }, + }); + this._grid = new THREE$1.Mesh(geometry, material); + this._grid.frustumCulled = false; + const scene = components.scene.get(); + scene.add(this._grid); + this.setupEvents(true); + } + /** {@link Component.get} */ + get() { + return this._grid; + } + /** {@link Disposable.dispose} */ + async dispose() { + this.setupEvents(false); + const disposer = await this.components.tools.get(Disposer); + disposer.destroy(this._grid); + } + setupEvents(active) { + const camera = this.components.camera; + const controls = camera.controls; + if (active) { + controls.addEventListener("update", this.updateZoom); + } + else { + controls.removeEventListener("update", this.updateZoom); + } + } +} +SimpleGrid.uuid = "d1e814d5-b81c-4452-87a2-f039375e0489"; +ToolComponent.libraryUUIDs.add(SimpleGrid.uuid); - } +// Split strategy constants +const CENTER = 0; +const AVERAGE = 1; +const SAH = 2; +const CONTAINED = 2; - const closestPoint = temp1; - const closestPoint2 = temp2; - l1.closestPointToPoint( p2, true, temp1 ); - l2.closestPointToPoint( p, true, temp2 ); +// SAH cost constants +// TODO: hone these costs more. The relative difference between them should be the +// difference in measured time to perform a triangle intersection vs traversing +// bounds. +const TRIANGLE_INTERSECT_COST = 1.25; +const TRAVERSAL_COST = 1; - if ( closestPoint.distanceToSquared( p2 ) <= closestPoint2.distanceToSquared( p ) ) { - target1.copy( closestPoint ); - target2.copy( p2 ); - return; +// Build constants +const BYTES_PER_NODE = 6 * 4 + 4 + 4; +const IS_LEAFNODE_FLAG = 0xFFFF; - } else { +// EPSILON for computing floating point error during build +// https://en.wikipedia.org/wiki/Machine_epsilon#Values_for_standard_hardware_floating_point_arithmetics +const FLOAT32_EPSILON = Math.pow( 2, - 24 ); - target1.copy( p ); - target2.copy( closestPoint2 ); - return; +class MeshBVHNode { - } + constructor() { - } + // internal nodes have boundingData, left, right, and splitAxis + // leaf nodes have offset and count (referring to primitives in the mesh geometry) - }; + } -} )(); +} +function arrayToBox( nodeIndex32, array, target ) { -const sphereIntersectTriangle = ( function () { + target.min.x = array[ nodeIndex32 ]; + target.min.y = array[ nodeIndex32 + 1 ]; + target.min.z = array[ nodeIndex32 + 2 ]; - // https://stackoverflow.com/questions/34043955/detect-collision-between-sphere-and-triangle-in-three-js - const closestPointTemp = new Vector3(); - const projectedPointTemp = new Vector3(); - const planeTemp = new Plane(); - const lineTemp = new Line3(); - return function sphereIntersectTriangle( sphere, triangle ) { + target.max.x = array[ nodeIndex32 + 3 ]; + target.max.y = array[ nodeIndex32 + 4 ]; + target.max.z = array[ nodeIndex32 + 5 ]; - const { radius, center } = sphere; - const { a, b, c } = triangle; + return target; - // phase 1 - lineTemp.start = a; - lineTemp.end = b; - const closestPoint1 = lineTemp.closestPointToPoint( center, true, closestPointTemp ); - if ( closestPoint1.distanceTo( center ) <= radius ) return true; +} - lineTemp.start = a; - lineTemp.end = c; - const closestPoint2 = lineTemp.closestPointToPoint( center, true, closestPointTemp ); - if ( closestPoint2.distanceTo( center ) <= radius ) return true; +function getLongestEdgeIndex( bounds ) { - lineTemp.start = b; - lineTemp.end = c; - const closestPoint3 = lineTemp.closestPointToPoint( center, true, closestPointTemp ); - if ( closestPoint3.distanceTo( center ) <= radius ) return true; + let splitDimIdx = - 1; + let splitDist = - Infinity; - // phase 2 - const plane = triangle.getPlane( planeTemp ); - const dp = Math.abs( plane.distanceToPoint( center ) ); - if ( dp <= radius ) { + for ( let i = 0; i < 3; i ++ ) { - const pp = plane.projectPoint( center, projectedPointTemp ); - const cp = triangle.containsPoint( pp ); - if ( cp ) return true; + const dist = bounds[ i + 3 ] - bounds[ i ]; + if ( dist > splitDist ) { + + splitDist = dist; + splitDimIdx = i; } - return false; + } - }; + return splitDimIdx; -} )(); +} -const DIST_EPSILON = 1e-15; -function isNearZero( value ) { +// copies bounds a into bounds b +function copyBounds( source, target ) { - return Math.abs( value ) < DIST_EPSILON; + target.set( source ); } -class ExtendedTriangle extends Triangle { +// sets bounds target to the union of bounds a and b +function unionBounds( a, b, target ) { - constructor( ...args ) { + let aVal, bVal; + for ( let d = 0; d < 3; d ++ ) { - super( ...args ); + const d3 = d + 3; - this.isExtendedTriangle = true; - this.satAxes = new Array( 4 ).fill().map( () => new Vector3() ); - this.satBounds = new Array( 4 ).fill().map( () => new SeparatingAxisBounds() ); - this.points = [ this.a, this.b, this.c ]; - this.sphere = new Sphere(); - this.plane = new Plane(); - this.needsUpdate = true; + // set the minimum values + aVal = a[ d ]; + bVal = b[ d ]; + target[ d ] = aVal < bVal ? aVal : bVal; + + // set the max values + aVal = a[ d3 ]; + bVal = b[ d3 ]; + target[ d3 ] = aVal > bVal ? aVal : bVal; } - intersectsSphere( sphere ) { +} - return sphereIntersectTriangle( sphere, this ); +// expands the given bounds by the provided triangle bounds +function expandByTriangleBounds( startIndex, triangleBounds, bounds ) { - } + for ( let d = 0; d < 3; d ++ ) { - update() { + const tCenter = triangleBounds[ startIndex + 2 * d ]; + const tHalf = triangleBounds[ startIndex + 2 * d + 1 ]; - const a = this.a; - const b = this.b; - const c = this.c; - const points = this.points; + const tMin = tCenter - tHalf; + const tMax = tCenter + tHalf; - const satAxes = this.satAxes; - const satBounds = this.satBounds; + if ( tMin < bounds[ d ] ) { - const axis0 = satAxes[ 0 ]; - const sab0 = satBounds[ 0 ]; - this.getNormal( axis0 ); - sab0.setFromPoints( axis0, points ); + bounds[ d ] = tMin; - const axis1 = satAxes[ 1 ]; - const sab1 = satBounds[ 1 ]; - axis1.subVectors( a, b ); - sab1.setFromPoints( axis1, points ); + } - const axis2 = satAxes[ 2 ]; - const sab2 = satBounds[ 2 ]; - axis2.subVectors( b, c ); - sab2.setFromPoints( axis2, points ); + if ( tMax > bounds[ d + 3 ] ) { - const axis3 = satAxes[ 3 ]; - const sab3 = satBounds[ 3 ]; - axis3.subVectors( c, a ); - sab3.setFromPoints( axis3, points ); + bounds[ d + 3 ] = tMax; - this.sphere.setFromPoints( this.points ); - this.plane.setFromNormalAndCoplanarPoint( axis0, a ); - this.needsUpdate = false; + } } } -ExtendedTriangle.prototype.closestPointToSegment = ( function () { +// compute bounds surface area +function computeSurfaceArea( bounds ) { - const point1 = new Vector3(); - const point2 = new Vector3(); - const edge = new Line3(); + const d0 = bounds[ 3 ] - bounds[ 0 ]; + const d1 = bounds[ 4 ] - bounds[ 1 ]; + const d2 = bounds[ 5 ] - bounds[ 2 ]; - return function distanceToSegment( segment, target1 = null, target2 = null ) { + return 2 * ( d0 * d1 + d1 * d2 + d2 * d0 ); - const { start, end } = segment; - const points = this.points; - let distSq; - let closestDistanceSq = Infinity; +} - // check the triangle edges - for ( let i = 0; i < 3; i ++ ) { +function ensureIndex( geo, options ) { - const nexti = ( i + 1 ) % 3; - edge.start.copy( points[ i ] ); - edge.end.copy( points[ nexti ] ); + if ( ! geo.index ) { - closestPointsSegmentToSegment( edge, segment, point1, point2 ); + const vertexCount = geo.attributes.position.count; + const BufferConstructor = options.useSharedArrayBuffer ? SharedArrayBuffer : ArrayBuffer; + let index; + if ( vertexCount > 65535 ) { - distSq = point1.distanceToSquared( point2 ); - if ( distSq < closestDistanceSq ) { + index = new Uint32Array( new BufferConstructor( 4 * vertexCount ) ); - closestDistanceSq = distSq; - if ( target1 ) target1.copy( point1 ); - if ( target2 ) target2.copy( point2 ); + } else { - } + index = new Uint16Array( new BufferConstructor( 2 * vertexCount ) ); } - // check end points - this.closestPointToPoint( start, point1 ); - distSq = start.distanceToSquared( point1 ); - if ( distSq < closestDistanceSq ) { + geo.setIndex( new BufferAttribute$1( index, 1 ) ); - closestDistanceSq = distSq; - if ( target1 ) target1.copy( point1 ); - if ( target2 ) target2.copy( start ); + for ( let i = 0; i < vertexCount; i ++ ) { + + index[ i ] = i; } - this.closestPointToPoint( end, point1 ); - distSq = end.distanceToSquared( point1 ); - if ( distSq < closestDistanceSq ) { + } - closestDistanceSq = distSq; - if ( target1 ) target1.copy( point1 ); - if ( target2 ) target2.copy( end ); +} - } +// Computes the set of { offset, count } ranges which need independent BVH roots. Each +// region in the geometry index that belongs to a different set of material groups requires +// a separate BVH root, so that triangles indices belonging to one group never get swapped +// with triangle indices belongs to another group. For example, if the groups were like this: +// +// [-------------------------------------------------------------] +// |__________________| +// g0 = [0, 20] |______________________||_____________________| +// g1 = [16, 40] g2 = [41, 60] +// +// we would need four BVH roots: [0, 15], [16, 20], [21, 40], [41, 60]. +function getRootIndexRanges( geo ) { - return Math.sqrt( closestDistanceSq ); + if ( ! geo.groups || ! geo.groups.length ) { - }; + return [ { offset: 0, count: geo.index.count / 3 } ]; -} )(); + } -ExtendedTriangle.prototype.intersectsTriangle = ( function () { + const ranges = []; + const rangeBoundaries = new Set(); + for ( const group of geo.groups ) { - const saTri2 = new ExtendedTriangle(); - const arr1 = new Array( 3 ); - const arr2 = new Array( 3 ); - const cachedSatBounds = new SeparatingAxisBounds(); - const cachedSatBounds2 = new SeparatingAxisBounds(); - const cachedAxis = new Vector3(); - const dir1 = new Vector3(); - const dir2 = new Vector3(); - const tempDir = new Vector3(); - const edge = new Line3(); - const edge1 = new Line3(); - const edge2 = new Line3(); + rangeBoundaries.add( group.start ); + rangeBoundaries.add( group.start + group.count ); - // TODO: If the triangles are coplanar and intersecting the target is nonsensical. It should at least - // be a line contained by both triangles if not a different special case somehow represented in the return result. - return function intersectsTriangle( other, target = null, suppressLog = false ) { + } - if ( this.needsUpdate ) { + // note that if you don't pass in a comparator, it sorts them lexicographically as strings :-( + const sortedBoundaries = Array.from( rangeBoundaries.values() ).sort( ( a, b ) => a - b ); + for ( let i = 0; i < sortedBoundaries.length - 1; i ++ ) { - this.update(); + const start = sortedBoundaries[ i ], end = sortedBoundaries[ i + 1 ]; + ranges.push( { offset: ( start / 3 ), count: ( end - start ) / 3 } ); - } + } - if ( ! other.isExtendedTriangle ) { + return ranges; - saTri2.copy( other ); - saTri2.update(); - other = saTri2; +} - } else if ( other.needsUpdate ) { +// computes the union of the bounds of all of the given triangles and puts the resulting box in target. If +// centroidTarget is provided then a bounding box is computed for the centroids of the triangles, as well. +// These are computed together to avoid redundant accesses to bounds array. +function getBounds( triangleBounds, offset, count, target, centroidTarget = null ) { + + let minx = Infinity; + let miny = Infinity; + let minz = Infinity; + let maxx = - Infinity; + let maxy = - Infinity; + let maxz = - Infinity; + + let cminx = Infinity; + let cminy = Infinity; + let cminz = Infinity; + let cmaxx = - Infinity; + let cmaxy = - Infinity; + let cmaxz = - Infinity; + + const includeCentroid = centroidTarget !== null; + for ( let i = offset * 6, end = ( offset + count ) * 6; i < end; i += 6 ) { + + const cx = triangleBounds[ i + 0 ]; + const hx = triangleBounds[ i + 1 ]; + const lx = cx - hx; + const rx = cx + hx; + if ( lx < minx ) minx = lx; + if ( rx > maxx ) maxx = rx; + if ( includeCentroid && cx < cminx ) cminx = cx; + if ( includeCentroid && cx > cmaxx ) cmaxx = cx; + + const cy = triangleBounds[ i + 2 ]; + const hy = triangleBounds[ i + 3 ]; + const ly = cy - hy; + const ry = cy + hy; + if ( ly < miny ) miny = ly; + if ( ry > maxy ) maxy = ry; + if ( includeCentroid && cy < cminy ) cminy = cy; + if ( includeCentroid && cy > cmaxy ) cmaxy = cy; + + const cz = triangleBounds[ i + 4 ]; + const hz = triangleBounds[ i + 5 ]; + const lz = cz - hz; + const rz = cz + hz; + if ( lz < minz ) minz = lz; + if ( rz > maxz ) maxz = rz; + if ( includeCentroid && cz < cminz ) cminz = cz; + if ( includeCentroid && cz > cmaxz ) cmaxz = cz; - other.update(); + } - } + target[ 0 ] = minx; + target[ 1 ] = miny; + target[ 2 ] = minz; - const plane1 = this.plane; - const plane2 = other.plane; + target[ 3 ] = maxx; + target[ 4 ] = maxy; + target[ 5 ] = maxz; - if ( Math.abs( plane1.normal.dot( plane2.normal ) ) > 1.0 - 1e-10 ) { + if ( includeCentroid ) { - // perform separating axis intersection test only for coplanar triangles - const satBounds1 = this.satBounds; - const satAxes1 = this.satAxes; - arr2[ 0 ] = other.a; - arr2[ 1 ] = other.b; - arr2[ 2 ] = other.c; - for ( let i = 0; i < 4; i ++ ) { + centroidTarget[ 0 ] = cminx; + centroidTarget[ 1 ] = cminy; + centroidTarget[ 2 ] = cminz; - const sb = satBounds1[ i ]; - const sa = satAxes1[ i ]; - cachedSatBounds.setFromPoints( sa, arr2 ); - if ( sb.isSeparated( cachedSatBounds ) ) return false; + centroidTarget[ 3 ] = cmaxx; + centroidTarget[ 4 ] = cmaxy; + centroidTarget[ 5 ] = cmaxz; - } + } - const satBounds2 = other.satBounds; - const satAxes2 = other.satAxes; - arr1[ 0 ] = this.a; - arr1[ 1 ] = this.b; - arr1[ 2 ] = this.c; - for ( let i = 0; i < 4; i ++ ) { +} - const sb = satBounds2[ i ]; - const sa = satAxes2[ i ]; - cachedSatBounds.setFromPoints( sa, arr1 ); - if ( sb.isSeparated( cachedSatBounds ) ) return false; +// A stand alone function for retrieving the centroid bounds. +function getCentroidBounds( triangleBounds, offset, count, centroidTarget ) { - } + let cminx = Infinity; + let cminy = Infinity; + let cminz = Infinity; + let cmaxx = - Infinity; + let cmaxy = - Infinity; + let cmaxz = - Infinity; - // check crossed axes - for ( let i = 0; i < 4; i ++ ) { + for ( let i = offset * 6, end = ( offset + count ) * 6; i < end; i += 6 ) { - const sa1 = satAxes1[ i ]; - for ( let i2 = 0; i2 < 4; i2 ++ ) { + const cx = triangleBounds[ i + 0 ]; + if ( cx < cminx ) cminx = cx; + if ( cx > cmaxx ) cmaxx = cx; - const sa2 = satAxes2[ i2 ]; - cachedAxis.crossVectors( sa1, sa2 ); - cachedSatBounds.setFromPoints( cachedAxis, arr1 ); - cachedSatBounds2.setFromPoints( cachedAxis, arr2 ); - if ( cachedSatBounds.isSeparated( cachedSatBounds2 ) ) return false; + const cy = triangleBounds[ i + 2 ]; + if ( cy < cminy ) cminy = cy; + if ( cy > cmaxy ) cmaxy = cy; - } + const cz = triangleBounds[ i + 4 ]; + if ( cz < cminz ) cminz = cz; + if ( cz > cmaxz ) cmaxz = cz; - } + } - if ( target ) { + centroidTarget[ 0 ] = cminx; + centroidTarget[ 1 ] = cminy; + centroidTarget[ 2 ] = cminz; - // TODO find two points that intersect on the edges and make that the result - if ( ! suppressLog ) { + centroidTarget[ 3 ] = cmaxx; + centroidTarget[ 4 ] = cmaxy; + centroidTarget[ 5 ] = cmaxz; - console.warn( 'ExtendedTriangle.intersectsTriangle: Triangles are coplanar which does not support an output edge. Setting edge to 0, 0, 0.' ); +} - } - target.start.set( 0, 0, 0 ); - target.end.set( 0, 0, 0 ); +// reorders `tris` such that for `count` elements after `offset`, elements on the left side of the split +// will be on the left and elements on the right side of the split will be on the right. returns the index +// of the first element on the right side, or offset + count if there are no elements on the right side. +function partition( index, triangleBounds, offset, count, split ) { + + let left = offset; + let right = offset + count - 1; + const pos = split.pos; + const axisOffset = split.axis * 2; + + // hoare partitioning, see e.g. https://en.wikipedia.org/wiki/Quicksort#Hoare_partition_scheme + while ( true ) { + + while ( left <= right && triangleBounds[ left * 6 + axisOffset ] < pos ) { + + left ++; + + } + + + // if a triangle center lies on the partition plane it is considered to be on the right side + while ( left <= right && triangleBounds[ right * 6 + axisOffset ] >= pos ) { + + right --; + + } + + if ( left < right ) { + + // we need to swap all of the information associated with the triangles at index + // left and right; that's the verts in the geometry index, the bounds, + // and perhaps the SAH planes + + for ( let i = 0; i < 3; i ++ ) { + + let t0 = index[ left * 3 + i ]; + index[ left * 3 + i ] = index[ right * 3 + i ]; + index[ right * 3 + i ] = t0; + + let t1 = triangleBounds[ left * 6 + i * 2 + 0 ]; + triangleBounds[ left * 6 + i * 2 + 0 ] = triangleBounds[ right * 6 + i * 2 + 0 ]; + triangleBounds[ right * 6 + i * 2 + 0 ] = t1; + + let t2 = triangleBounds[ left * 6 + i * 2 + 1 ]; + triangleBounds[ left * 6 + i * 2 + 1 ] = triangleBounds[ right * 6 + i * 2 + 1 ]; + triangleBounds[ right * 6 + i * 2 + 1 ] = t2; } - return true; + left ++; + right --; } else { - // find the edge that intersects the other triangle plane - const points1 = this.points; - let found1 = false; - let count1 = 0; - for ( let i = 0; i < 3; i ++ ) { + return left; - const p = points1[ i ]; - const pNext = points1[ ( i + 1 ) % 3 ]; + } - edge.start.copy( p ); - edge.end.copy( pNext ); - edge.delta( dir1 ); + } - const targetPoint = found1 ? edge1.start : edge1.end; - const startIntersects = isNearZero( plane2.distanceToPoint( p ) ); - if ( isNearZero( plane2.normal.dot( dir1 ) ) && startIntersects ) { +} - // if the edge lies on the plane then take the line - edge1.copy( edge ); - count1 = 2; - break; +const BIN_COUNT = 32; +const binsSort = ( a, b ) => a.candidate - b.candidate; +const sahBins = new Array( BIN_COUNT ).fill().map( () => { - } + return { - // check if the start point is near the plane because "intersectLine" is not robust to that case - const doesIntersect = plane2.intersectLine( edge, targetPoint ) || startIntersects; - if ( doesIntersect && ! isNearZero( targetPoint.distanceTo( pNext ) ) ) { + count: 0, + bounds: new Float32Array( 6 ), + rightCacheBounds: new Float32Array( 6 ), + leftCacheBounds: new Float32Array( 6 ), + candidate: 0, - count1 ++; - if ( found1 ) { + }; - break; +} ); +const leftBounds = new Float32Array( 6 ); - } +function getOptimalSplit( nodeBoundingData, centroidBoundingData, triangleBounds, offset, count, strategy ) { - found1 = true; + let axis = - 1; + let pos = 0; - } + // Center + if ( strategy === CENTER ) { - } + axis = getLongestEdgeIndex( centroidBoundingData ); + if ( axis !== - 1 ) { - if ( count1 === 1 && other.containsPoint( edge1.end ) ) { + pos = ( centroidBoundingData[ axis ] + centroidBoundingData[ axis + 3 ] ) / 2; - if ( target ) { + } - target.start.copy( edge1.end ); - target.end.copy( edge1.end ); + } else if ( strategy === AVERAGE ) { - } + axis = getLongestEdgeIndex( nodeBoundingData ); + if ( axis !== - 1 ) { - return true; + pos = getAverage( triangleBounds, offset, count, axis ); - } else if ( count1 !== 2 ) { + } - return false; + } else if ( strategy === SAH ) { - } + const rootSurfaceArea = computeSurfaceArea( nodeBoundingData ); + let bestCost = TRIANGLE_INTERSECT_COST * count; - // find the other triangles edge that intersects this plane - const points2 = other.points; - let found2 = false; - let count2 = 0; - for ( let i = 0; i < 3; i ++ ) { + // iterate over all axes + const cStart = offset * 6; + const cEnd = ( offset + count ) * 6; + for ( let a = 0; a < 3; a ++ ) { - const p = points2[ i ]; - const pNext = points2[ ( i + 1 ) % 3 ]; + const axisLeft = centroidBoundingData[ a ]; + const axisRight = centroidBoundingData[ a + 3 ]; + const axisLength = axisRight - axisLeft; + const binWidth = axisLength / BIN_COUNT; - edge.start.copy( p ); - edge.end.copy( pNext ); - edge.delta( dir2 ); + // If we have fewer triangles than we're planning to split then just check all + // the triangle positions because it will be faster. + if ( count < BIN_COUNT / 4 ) { - const targetPoint = found2 ? edge2.start : edge2.end; - const startIntersects = isNearZero( plane1.distanceToPoint( p ) ); - if ( isNearZero( plane1.normal.dot( dir2 ) ) && startIntersects ) { + // initialize the bin candidates + const truncatedBins = [ ...sahBins ]; + truncatedBins.length = count; - // if the edge lies on the plane then take the line - edge2.copy( edge ); - count2 = 2; - break; + // set the candidates + let b = 0; + for ( let c = cStart; c < cEnd; c += 6, b ++ ) { - } + const bin = truncatedBins[ b ]; + bin.candidate = triangleBounds[ c + 2 * a ]; + bin.count = 0; - // check if the start point is near the plane because "intersectLine" is not robust to that case - const doesIntersect = plane1.intersectLine( edge, targetPoint ) || startIntersects; - if ( doesIntersect && ! isNearZero( targetPoint.distanceTo( pNext ) ) ) { + const { + bounds, + leftCacheBounds, + rightCacheBounds, + } = bin; + for ( let d = 0; d < 3; d ++ ) { - count2 ++; - if ( found2 ) { + rightCacheBounds[ d ] = Infinity; + rightCacheBounds[ d + 3 ] = - Infinity; - break; + leftCacheBounds[ d ] = Infinity; + leftCacheBounds[ d + 3 ] = - Infinity; + + bounds[ d ] = Infinity; + bounds[ d + 3 ] = - Infinity; } - found2 = true; + expandByTriangleBounds( c, triangleBounds, bounds ); } - } + truncatedBins.sort( binsSort ); - if ( count2 === 1 && this.containsPoint( edge2.end ) ) { + // remove redundant splits + let splitCount = count; + for ( let bi = 0; bi < splitCount; bi ++ ) { - if ( target ) { + const bin = truncatedBins[ bi ]; + while ( bi + 1 < splitCount && truncatedBins[ bi + 1 ].candidate === bin.candidate ) { - target.start.copy( edge2.end ); - target.end.copy( edge2.end ); + truncatedBins.splice( bi + 1, 1 ); + splitCount --; + + } } - return true; + // find the appropriate bin for each triangle and expand the bounds. + for ( let c = cStart; c < cEnd; c += 6 ) { - } else if ( count2 !== 2 ) { + const center = triangleBounds[ c + 2 * a ]; + for ( let bi = 0; bi < splitCount; bi ++ ) { - return false; + const bin = truncatedBins[ bi ]; + if ( center >= bin.candidate ) { - } + expandByTriangleBounds( c, triangleBounds, bin.rightCacheBounds ); - // find swap the second edge so both lines are running the same direction - edge1.delta( dir1 ); - edge2.delta( dir2 ); + } else { - if ( dir1.dot( dir2 ) < 0 ) { + expandByTriangleBounds( c, triangleBounds, bin.leftCacheBounds ); + bin.count ++; - let tmp = edge2.start; - edge2.start = edge2.end; - edge2.end = tmp; + } - } + } - // check if the edges are overlapping - const s1 = edge1.start.dot( dir1 ); - const e1 = edge1.end.dot( dir1 ); - const s2 = edge2.start.dot( dir1 ); - const e2 = edge2.end.dot( dir1 ); - const separated1 = e1 < s2; - const separated2 = s1 < e2; + } - if ( s1 !== e2 && s2 !== e1 && separated1 === separated2 ) { + // expand all the bounds + for ( let bi = 0; bi < splitCount; bi ++ ) { - return false; + const bin = truncatedBins[ bi ]; + const leftCount = bin.count; + const rightCount = count - bin.count; - } + // check the cost of this split + const leftBounds = bin.leftCacheBounds; + const rightBounds = bin.rightCacheBounds; - // assign the target output - if ( target ) { + let leftProb = 0; + if ( leftCount !== 0 ) { - tempDir.subVectors( edge1.start, edge2.start ); - if ( tempDir.dot( dir1 ) > 0 ) { + leftProb = computeSurfaceArea( leftBounds ) / rootSurfaceArea; - target.start.copy( edge1.start ); + } - } else { + let rightProb = 0; + if ( rightCount !== 0 ) { - target.start.copy( edge2.start ); + rightProb = computeSurfaceArea( rightBounds ) / rootSurfaceArea; - } + } - tempDir.subVectors( edge1.end, edge2.end ); - if ( tempDir.dot( dir1 ) < 0 ) { + const cost = TRAVERSAL_COST + TRIANGLE_INTERSECT_COST * ( + leftProb * leftCount + rightProb * rightCount + ); - target.end.copy( edge1.end ); + if ( cost < bestCost ) { - } else { + axis = a; + bestCost = cost; + pos = bin.candidate; - target.end.copy( edge2.end ); + } } - } - - return true; - - } - - }; + } else { -} )(); + // reset the bins + for ( let i = 0; i < BIN_COUNT; i ++ ) { + const bin = sahBins[ i ]; + bin.count = 0; + bin.candidate = axisLeft + binWidth + i * binWidth; -ExtendedTriangle.prototype.distanceToPoint = ( function () { + const bounds = bin.bounds; + for ( let d = 0; d < 3; d ++ ) { - const target = new Vector3(); - return function distanceToPoint( point ) { + bounds[ d ] = Infinity; + bounds[ d + 3 ] = - Infinity; - this.closestPointToPoint( point, target ); - return point.distanceTo( target ); + } - }; + } -} )(); + // iterate over all center positions + for ( let c = cStart; c < cEnd; c += 6 ) { + const triCenter = triangleBounds[ c + 2 * a ]; + const relativeCenter = triCenter - axisLeft; -ExtendedTriangle.prototype.distanceToTriangle = ( function () { + // in the partition function if the centroid lies on the split plane then it is + // considered to be on the right side of the split + let binIndex = ~ ~ ( relativeCenter / binWidth ); + if ( binIndex >= BIN_COUNT ) binIndex = BIN_COUNT - 1; - const point = new Vector3(); - const point2 = new Vector3(); - const cornerFields = [ 'a', 'b', 'c' ]; - const line1 = new Line3(); - const line2 = new Line3(); + const bin = sahBins[ binIndex ]; + bin.count ++; - return function distanceToTriangle( other, target1 = null, target2 = null ) { + expandByTriangleBounds( c, triangleBounds, bin.bounds ); - const lineTarget = target1 || target2 ? line1 : null; - if ( this.intersectsTriangle( other, lineTarget ) ) { + } - if ( target1 || target2 ) { + // cache the unioned bounds from right to left so we don't have to regenerate them each time + const lastBin = sahBins[ BIN_COUNT - 1 ]; + copyBounds( lastBin.bounds, lastBin.rightCacheBounds ); + for ( let i = BIN_COUNT - 2; i >= 0; i -- ) { - if ( target1 ) lineTarget.getCenter( target1 ); - if ( target2 ) lineTarget.getCenter( target2 ); + const bin = sahBins[ i ]; + const nextBin = sahBins[ i + 1 ]; + unionBounds( bin.bounds, nextBin.rightCacheBounds, bin.rightCacheBounds ); - } + } - return 0; + let leftCount = 0; + for ( let i = 0; i < BIN_COUNT - 1; i ++ ) { - } + const bin = sahBins[ i ]; + const binCount = bin.count; + const bounds = bin.bounds; - let closestDistanceSq = Infinity; + const nextBin = sahBins[ i + 1 ]; + const rightBounds = nextBin.rightCacheBounds; - // check all point distances - for ( let i = 0; i < 3; i ++ ) { + // don't do anything with the bounds if the new bounds have no triangles + if ( binCount !== 0 ) { - let dist; - const field = cornerFields[ i ]; - const otherVec = other[ field ]; - this.closestPointToPoint( otherVec, point ); + if ( leftCount === 0 ) { - dist = otherVec.distanceToSquared( point ); + copyBounds( bounds, leftBounds ); - if ( dist < closestDistanceSq ) { + } else { - closestDistanceSq = dist; - if ( target1 ) target1.copy( point ); - if ( target2 ) target2.copy( otherVec ); + unionBounds( bounds, leftBounds, leftBounds ); - } + } + } - const thisVec = this[ field ]; - other.closestPointToPoint( thisVec, point ); + leftCount += binCount; - dist = thisVec.distanceToSquared( point ); + // check the cost of this split + let leftProb = 0; + let rightProb = 0; - if ( dist < closestDistanceSq ) { + if ( leftCount !== 0 ) { - closestDistanceSq = dist; - if ( target1 ) target1.copy( thisVec ); - if ( target2 ) target2.copy( point ); + leftProb = computeSurfaceArea( leftBounds ) / rootSurfaceArea; - } + } - } + const rightCount = count - leftCount; + if ( rightCount !== 0 ) { - for ( let i = 0; i < 3; i ++ ) { + rightProb = computeSurfaceArea( rightBounds ) / rootSurfaceArea; - const f11 = cornerFields[ i ]; - const f12 = cornerFields[ ( i + 1 ) % 3 ]; - line1.set( this[ f11 ], this[ f12 ] ); - for ( let i2 = 0; i2 < 3; i2 ++ ) { + } - const f21 = cornerFields[ i2 ]; - const f22 = cornerFields[ ( i2 + 1 ) % 3 ]; - line2.set( other[ f21 ], other[ f22 ] ); + const cost = TRAVERSAL_COST + TRIANGLE_INTERSECT_COST * ( + leftProb * leftCount + rightProb * rightCount + ); - closestPointsSegmentToSegment( line1, line2, point, point2 ); + if ( cost < bestCost ) { - const dist = point.distanceToSquared( point2 ); - if ( dist < closestDistanceSq ) { + axis = a; + bestCost = cost; + pos = bin.candidate; - closestDistanceSq = dist; - if ( target1 ) target1.copy( point ); - if ( target2 ) target2.copy( point2 ); + } } @@ -1321,416 +4902,425 @@ ExtendedTriangle.prototype.distanceToTriangle = ( function () { } - return Math.sqrt( closestDistanceSq ); + } else { - }; + console.warn( `MeshBVH: Invalid build strategy value ${ strategy } used.` ); -} )(); + } -class OrientedBox { + return { axis, pos }; - constructor( min, max, matrix ) { +} - this.isOrientedBox = true; - this.min = new Vector3(); - this.max = new Vector3(); - this.matrix = new Matrix4(); - this.invMatrix = new Matrix4(); - this.points = new Array( 8 ).fill().map( () => new Vector3() ); - this.satAxes = new Array( 3 ).fill().map( () => new Vector3() ); - this.satBounds = new Array( 3 ).fill().map( () => new SeparatingAxisBounds() ); - this.alignedSatBounds = new Array( 3 ).fill().map( () => new SeparatingAxisBounds() ); - this.needsUpdate = false; +// returns the average coordinate on the specified axis of the all the provided triangles +function getAverage( triangleBounds, offset, count, axis ) { - if ( min ) this.min.copy( min ); - if ( max ) this.max.copy( max ); - if ( matrix ) this.matrix.copy( matrix ); + let avg = 0; + for ( let i = offset, end = offset + count; i < end; i ++ ) { + + avg += triangleBounds[ i * 6 + axis * 2 ]; } - set( min, max, matrix ) { + return avg / count; - this.min.copy( min ); - this.max.copy( max ); - this.matrix.copy( matrix ); - this.needsUpdate = true; +} - } +// precomputes the bounding box for each triangle; required for quickly calculating tree splits. +// result is an array of size tris.length * 6 where triangle i maps to a +// [x_center, x_delta, y_center, y_delta, z_center, z_delta] tuple starting at index i * 6, +// representing the center and half-extent in each dimension of triangle i +function computeTriangleBounds( geo, fullBounds ) { - copy( other ) { + const posAttr = geo.attributes.position; + const index = geo.index.array; + const triCount = index.length / 3; + const triangleBounds = new Float32Array( triCount * 6 ); + const normalized = posAttr.normalized; - this.min.copy( other.min ); - this.max.copy( other.max ); - this.matrix.copy( other.matrix ); - this.needsUpdate = true; + // used for non-normalized positions + const posArr = posAttr.array; + + // support for an interleaved position buffer + const bufferOffset = posAttr.offset || 0; + let stride = 3; + if ( posAttr.isInterleavedBufferAttribute ) { + + stride = posAttr.data.stride; } -} + // used for normalized positions + const getters = [ 'getX', 'getY', 'getZ' ]; -OrientedBox.prototype.update = ( function () { + for ( let tri = 0; tri < triCount; tri ++ ) { - return function update() { + const tri3 = tri * 3; + const tri6 = tri * 6; - const matrix = this.matrix; - const min = this.min; - const max = this.max; - - const points = this.points; - for ( let x = 0; x <= 1; x ++ ) { - - for ( let y = 0; y <= 1; y ++ ) { + let ai, bi, ci; - for ( let z = 0; z <= 1; z ++ ) { - - const i = ( ( 1 << 0 ) * x ) | ( ( 1 << 1 ) * y ) | ( ( 1 << 2 ) * z ); - const v = points[ i ]; - v.x = x ? max.x : min.x; - v.y = y ? max.y : min.y; - v.z = z ? max.z : min.z; + if ( normalized ) { - v.applyMatrix4( matrix ); + ai = index[ tri3 + 0 ]; + bi = index[ tri3 + 1 ]; + ci = index[ tri3 + 2 ]; - } + } else { - } + ai = index[ tri3 + 0 ] * stride + bufferOffset; + bi = index[ tri3 + 1 ] * stride + bufferOffset; + ci = index[ tri3 + 2 ] * stride + bufferOffset; } - const satBounds = this.satBounds; - const satAxes = this.satAxes; - const minVec = points[ 0 ]; - for ( let i = 0; i < 3; i ++ ) { - - const axis = satAxes[ i ]; - const sb = satBounds[ i ]; - const index = 1 << i; - const pi = points[ index ]; + for ( let el = 0; el < 3; el ++ ) { - axis.subVectors( minVec, pi ); - sb.setFromPoints( axis, points ); + let a, b, c; - } + if ( normalized ) { - const alignedSatBounds = this.alignedSatBounds; - alignedSatBounds[ 0 ].setFromPointsField( points, 'x' ); - alignedSatBounds[ 1 ].setFromPointsField( points, 'y' ); - alignedSatBounds[ 2 ].setFromPointsField( points, 'z' ); + a = posAttr[ getters[ el ] ]( ai ); + b = posAttr[ getters[ el ] ]( bi ); + c = posAttr[ getters[ el ] ]( ci ); - this.invMatrix.copy( this.matrix ).invert(); - this.needsUpdate = false; + } else { - }; + a = posArr[ ai + el ]; + b = posArr[ bi + el ]; + c = posArr[ ci + el ]; -} )(); + } -OrientedBox.prototype.intersectsBox = ( function () { + let min = a; + if ( b < min ) min = b; + if ( c < min ) min = c; - const aabbBounds = new SeparatingAxisBounds(); - return function intersectsBox( box ) { + let max = a; + if ( b > max ) max = b; + if ( c > max ) max = c; - // TODO: should this be doing SAT against the AABB? - if ( this.needsUpdate ) { + // Increase the bounds size by float32 epsilon to avoid precision errors when + // converting to 32 bit float. Scale the epsilon by the size of the numbers being + // worked with. + const halfExtents = ( max - min ) / 2; + const el2 = el * 2; + triangleBounds[ tri6 + el2 + 0 ] = min + halfExtents; + triangleBounds[ tri6 + el2 + 1 ] = halfExtents + ( Math.abs( min ) + halfExtents ) * FLOAT32_EPSILON; - this.update(); + if ( min < fullBounds[ el ] ) fullBounds[ el ] = min; + if ( max > fullBounds[ el + 3 ] ) fullBounds[ el + 3 ] = max; } - const min = box.min; - const max = box.max; - const satBounds = this.satBounds; - const satAxes = this.satAxes; - const alignedSatBounds = this.alignedSatBounds; + } - aabbBounds.min = min.x; - aabbBounds.max = max.x; - if ( alignedSatBounds[ 0 ].isSeparated( aabbBounds ) ) return false; + return triangleBounds; - aabbBounds.min = min.y; - aabbBounds.max = max.y; - if ( alignedSatBounds[ 1 ].isSeparated( aabbBounds ) ) return false; +} - aabbBounds.min = min.z; - aabbBounds.max = max.z; - if ( alignedSatBounds[ 2 ].isSeparated( aabbBounds ) ) return false; +function buildTree( geo, options ) { - for ( let i = 0; i < 3; i ++ ) { + function triggerProgress( trianglesProcessed ) { - const axis = satAxes[ i ]; - const sb = satBounds[ i ]; - aabbBounds.setFromBox( axis, box ); - if ( sb.isSeparated( aabbBounds ) ) return false; + if ( onProgress ) { - } + onProgress( trianglesProcessed / totalTriangles ); - return true; + } - }; + } -} )(); + // either recursively splits the given node, creating left and right subtrees for it, or makes it a leaf node, + // recording the offset and count of its triangles and writing them into the reordered geometry index. + function splitNode( node, offset, count, centroidBoundingData = null, depth = 0 ) { -OrientedBox.prototype.intersectsTriangle = ( function () { + if ( ! reachedMaxDepth && depth >= maxDepth ) { - const saTri = new ExtendedTriangle(); - const pointsArr = new Array( 3 ); - const cachedSatBounds = new SeparatingAxisBounds(); - const cachedSatBounds2 = new SeparatingAxisBounds(); - const cachedAxis = new Vector3(); - return function intersectsTriangle( triangle ) { + reachedMaxDepth = true; + if ( verbose ) { - if ( this.needsUpdate ) { + console.warn( `MeshBVH: Max depth of ${ maxDepth } reached when generating BVH. Consider increasing maxDepth.` ); + console.warn( geo ); - this.update(); + } } - if ( ! triangle.isExtendedTriangle ) { + // early out if we've met our capacity + if ( count <= maxLeafTris || depth >= maxDepth ) { - saTri.copy( triangle ); - saTri.update(); - triangle = saTri; + triggerProgress( offset + count ); + node.offset = offset; + node.count = count; + return node; - } else if ( triangle.needsUpdate ) { + } - triangle.update(); + // Find where to split the volume + const split = getOptimalSplit( node.boundingData, centroidBoundingData, triangleBounds, offset, count, strategy ); + if ( split.axis === - 1 ) { + + triggerProgress( offset + count ); + node.offset = offset; + node.count = count; + return node; } - const satBounds = this.satBounds; - const satAxes = this.satAxes; + const splitOffset = partition( indexArray, triangleBounds, offset, count, split ); - pointsArr[ 0 ] = triangle.a; - pointsArr[ 1 ] = triangle.b; - pointsArr[ 2 ] = triangle.c; + // create the two new child nodes + if ( splitOffset === offset || splitOffset === offset + count ) { - for ( let i = 0; i < 3; i ++ ) { + triggerProgress( offset + count ); + node.offset = offset; + node.count = count; - const sb = satBounds[ i ]; - const sa = satAxes[ i ]; - cachedSatBounds.setFromPoints( sa, pointsArr ); - if ( sb.isSeparated( cachedSatBounds ) ) return false; + } else { - } + node.splitAxis = split.axis; - const triSatBounds = triangle.satBounds; - const triSatAxes = triangle.satAxes; - const points = this.points; - for ( let i = 0; i < 3; i ++ ) { + // create the left child and compute its bounding box + const left = new MeshBVHNode(); + const lstart = offset; + const lcount = splitOffset - offset; + node.left = left; + left.boundingData = new Float32Array( 6 ); - const sb = triSatBounds[ i ]; - const sa = triSatAxes[ i ]; - cachedSatBounds.setFromPoints( sa, points ); - if ( sb.isSeparated( cachedSatBounds ) ) return false; + getBounds( triangleBounds, lstart, lcount, left.boundingData, cacheCentroidBoundingData ); + splitNode( left, lstart, lcount, cacheCentroidBoundingData, depth + 1 ); + + // repeat for right + const right = new MeshBVHNode(); + const rstart = splitOffset; + const rcount = count - lcount; + node.right = right; + right.boundingData = new Float32Array( 6 ); + + getBounds( triangleBounds, rstart, rcount, right.boundingData, cacheCentroidBoundingData ); + splitNode( right, rstart, rcount, cacheCentroidBoundingData, depth + 1 ); } - // check crossed axes - for ( let i = 0; i < 3; i ++ ) { + return node; - const sa1 = satAxes[ i ]; - for ( let i2 = 0; i2 < 4; i2 ++ ) { + } - const sa2 = triSatAxes[ i2 ]; - cachedAxis.crossVectors( sa1, sa2 ); - cachedSatBounds.setFromPoints( cachedAxis, pointsArr ); - cachedSatBounds2.setFromPoints( cachedAxis, points ); - if ( cachedSatBounds.isSeparated( cachedSatBounds2 ) ) return false; + ensureIndex( geo, options ); - } + // Compute the full bounds of the geometry at the same time as triangle bounds because + // we'll need it for the root bounds in the case with no groups and it should be fast here. + // We can't use the geometrying bounding box if it's available because it may be out of date. + const fullBounds = new Float32Array( 6 ); + const cacheCentroidBoundingData = new Float32Array( 6 ); + const triangleBounds = computeTriangleBounds( geo, fullBounds ); + const indexArray = geo.index.array; + const maxDepth = options.maxDepth; + const verbose = options.verbose; + const maxLeafTris = options.maxLeafTris; + const strategy = options.strategy; + const onProgress = options.onProgress; + const totalTriangles = geo.index.count / 3; + let reachedMaxDepth = false; - } + const roots = []; + const ranges = getRootIndexRanges( geo ); - return true; + if ( ranges.length === 1 ) { - }; + const range = ranges[ 0 ]; + const root = new MeshBVHNode(); + root.boundingData = fullBounds; + getCentroidBounds( triangleBounds, range.offset, range.count, cacheCentroidBoundingData ); -} )(); + splitNode( root, range.offset, range.count, cacheCentroidBoundingData ); + roots.push( root ); -OrientedBox.prototype.closestPointToPoint = ( function () { + } else { - return function closestPointToPoint( point, target1 ) { + for ( let range of ranges ) { - if ( this.needsUpdate ) { + const root = new MeshBVHNode(); + root.boundingData = new Float32Array( 6 ); + getBounds( triangleBounds, range.offset, range.count, root.boundingData, cacheCentroidBoundingData ); - this.update(); + splitNode( root, range.offset, range.count, cacheCentroidBoundingData ); + roots.push( root ); } - target1 - .copy( point ) - .applyMatrix4( this.invMatrix ) - .clamp( this.min, this.max ) - .applyMatrix4( this.matrix ); + } - return target1; + return roots; - }; +} -} )(); +function buildPackedTree( geo, options ) { -OrientedBox.prototype.distanceToPoint = ( function () { + // boundingData : 6 float32 + // right / offset : 1 uint32 + // splitAxis / isLeaf + count : 1 uint32 / 2 uint16 + const roots = buildTree( geo, options ); - const target = new Vector3(); - return function distanceToPoint( point ) { + let float32Array; + let uint32Array; + let uint16Array; + const packedRoots = []; + const BufferConstructor = options.useSharedArrayBuffer ? SharedArrayBuffer : ArrayBuffer; + for ( let i = 0; i < roots.length; i ++ ) { - this.closestPointToPoint( point, target ); - return point.distanceTo( target ); + const root = roots[ i ]; + let nodeCount = countNodes( root ); - }; + const buffer = new BufferConstructor( BYTES_PER_NODE * nodeCount ); + float32Array = new Float32Array( buffer ); + uint32Array = new Uint32Array( buffer ); + uint16Array = new Uint16Array( buffer ); + populateBuffer( 0, root ); + packedRoots.push( buffer ); -} )(); + } -OrientedBox.prototype.distanceToBox = ( function () { + return packedRoots; - const xyzFields = [ 'x', 'y', 'z' ]; - const segments1 = new Array( 12 ).fill().map( () => new Line3() ); - const segments2 = new Array( 12 ).fill().map( () => new Line3() ); + function countNodes( node ) { - const point1 = new Vector3(); - const point2 = new Vector3(); + if ( node.count ) { - // early out if we find a value below threshold - return function distanceToBox( box, threshold = 0, target1 = null, target2 = null ) { + return 1; - if ( this.needsUpdate ) { + } else { - this.update(); + return 1 + countNodes( node.left ) + countNodes( node.right ); } - if ( this.intersectsBox( box ) ) { - - if ( target1 || target2 ) { - - box.getCenter( point2 ); - this.closestPointToPoint( point2, point1 ); - box.closestPointToPoint( point1, point2 ); + } - if ( target1 ) target1.copy( point1 ); - if ( target2 ) target2.copy( point2 ); + function populateBuffer( byteOffset, node ) { - } + const stride4Offset = byteOffset / 4; + const stride2Offset = byteOffset / 2; + const isLeaf = ! ! node.count; + const boundingData = node.boundingData; + for ( let i = 0; i < 6; i ++ ) { - return 0; + float32Array[ stride4Offset + i ] = boundingData[ i ]; } - const threshold2 = threshold * threshold; - const min = box.min; - const max = box.max; - const points = this.points; - + if ( isLeaf ) { - // iterate over every edge and compare distances - let closestDistanceSq = Infinity; + const offset = node.offset; + const count = node.count; + uint32Array[ stride4Offset + 6 ] = offset; + uint16Array[ stride2Offset + 14 ] = count; + uint16Array[ stride2Offset + 15 ] = IS_LEAFNODE_FLAG; + return byteOffset + BYTES_PER_NODE; - // check over all these points - for ( let i = 0; i < 8; i ++ ) { + } else { - const p = points[ i ]; - point2.copy( p ).clamp( min, max ); + const left = node.left; + const right = node.right; + const splitAxis = node.splitAxis; - const dist = p.distanceToSquared( point2 ); - if ( dist < closestDistanceSq ) { + let nextUnusedPointer; + nextUnusedPointer = populateBuffer( byteOffset + BYTES_PER_NODE, left ); - closestDistanceSq = dist; - if ( target1 ) target1.copy( p ); - if ( target2 ) target2.copy( point2 ); + if ( ( nextUnusedPointer / 4 ) > Math.pow( 2, 32 ) ) { - if ( dist < threshold2 ) return Math.sqrt( dist ); + throw new Error( 'MeshBVH: Cannot store child pointer greater than 32 bits.' ); } + uint32Array[ stride4Offset + 6 ] = nextUnusedPointer / 4; + nextUnusedPointer = populateBuffer( nextUnusedPointer, right ); + + uint32Array[ stride4Offset + 7 ] = splitAxis; + return nextUnusedPointer; + } - // generate and check all line segment distances - let count = 0; - for ( let i = 0; i < 3; i ++ ) { + } - for ( let i1 = 0; i1 <= 1; i1 ++ ) { +} - for ( let i2 = 0; i2 <= 1; i2 ++ ) { +class SeparatingAxisBounds { - const nextIndex = ( i + 1 ) % 3; - const nextIndex2 = ( i + 2 ) % 3; + constructor() { - // get obb line segments - const index = i1 << nextIndex | i2 << nextIndex2; - const index2 = 1 << i | i1 << nextIndex | i2 << nextIndex2; - const p1 = points[ index ]; - const p2 = points[ index2 ]; - const line1 = segments1[ count ]; - line1.set( p1, p2 ); + this.min = Infinity; + this.max = - Infinity; + } - // get aabb line segments - const f1 = xyzFields[ i ]; - const f2 = xyzFields[ nextIndex ]; - const f3 = xyzFields[ nextIndex2 ]; - const line2 = segments2[ count ]; - const start = line2.start; - const end = line2.end; + setFromPointsField( points, field ) { - start[ f1 ] = min[ f1 ]; - start[ f2 ] = i1 ? min[ f2 ] : max[ f2 ]; - start[ f3 ] = i2 ? min[ f3 ] : max[ f2 ]; + let min = Infinity; + let max = - Infinity; + for ( let i = 0, l = points.length; i < l; i ++ ) { - end[ f1 ] = max[ f1 ]; - end[ f2 ] = i1 ? min[ f2 ] : max[ f2 ]; - end[ f3 ] = i2 ? min[ f3 ] : max[ f2 ]; + const p = points[ i ]; + const val = p[ field ]; + min = val < min ? val : min; + max = val > max ? val : max; - count ++; + } - } + this.min = min; + this.max = max; - } + } - } + setFromPoints( axis, points ) { - // check all the other boxes point - for ( let x = 0; x <= 1; x ++ ) { + let min = Infinity; + let max = - Infinity; + for ( let i = 0, l = points.length; i < l; i ++ ) { - for ( let y = 0; y <= 1; y ++ ) { + const p = points[ i ]; + const val = axis.dot( p ); + min = val < min ? val : min; + max = val > max ? val : max; - for ( let z = 0; z <= 1; z ++ ) { + } - point2.x = x ? max.x : min.x; - point2.y = y ? max.y : min.y; - point2.z = z ? max.z : min.z; + this.min = min; + this.max = max; - this.closestPointToPoint( point2, point1 ); - const dist = point2.distanceToSquared( point1 ); - if ( dist < closestDistanceSq ) { + } - closestDistanceSq = dist; - if ( target1 ) target1.copy( point1 ); - if ( target2 ) target2.copy( point2 ); + isSeparated( other ) { - if ( dist < threshold2 ) return Math.sqrt( dist ); + return this.min > other.max || other.min > this.max; - } + } - } +} - } +SeparatingAxisBounds.prototype.setFromBox = ( function () { - } + const p = new Vector3$1(); + return function setFromBox( axis, box ) { - for ( let i = 0; i < 12; i ++ ) { + const boxMin = box.min; + const boxMax = box.max; + let min = Infinity; + let max = - Infinity; + for ( let x = 0; x <= 1; x ++ ) { - const l1 = segments1[ i ]; - for ( let i2 = 0; i2 < 12; i2 ++ ) { + for ( let y = 0; y <= 1; y ++ ) { - const l2 = segments2[ i2 ]; - closestPointsSegmentToSegment( l1, l2, point1, point2 ); - const dist = point1.distanceToSquared( point2 ); - if ( dist < closestDistanceSq ) { + for ( let z = 0; z <= 1; z ++ ) { - closestDistanceSq = dist; - if ( target1 ) target1.copy( point1 ); - if ( target2 ) target2.copy( point2 ); + p.x = boxMin.x * x + boxMax.x * ( 1 - x ); + p.y = boxMin.y * y + boxMax.y * ( 1 - y ); + p.z = boxMin.z * z + boxMax.z * ( 1 - z ); - if ( dist < threshold2 ) return Math.sqrt( dist ); + const val = axis.dot( p ); + min = Math.min( val, min ); + max = Math.max( val, max ); } @@ -1738,7115 +5328,24269 @@ OrientedBox.prototype.distanceToBox = ( function () { } - return Math.sqrt( closestDistanceSq ); + this.min = min; + this.max = max; }; } )(); -// sets the vertices of triangle `tri` with the 3 vertices after i -function setTriangle( tri, i, index, pos ) { +( (function () { - const ta = tri.a; - const tb = tri.b; - const tc = tri.c; + const cacheSatBounds = new SeparatingAxisBounds(); + return function areIntersecting( shape1, shape2 ) { - let i0 = i; - let i1 = i + 1; - let i2 = i + 2; - if ( index ) { + const points1 = shape1.points; + const satAxes1 = shape1.satAxes; + const satBounds1 = shape1.satBounds; - i0 = index.getX( i ); - i1 = index.getX( i + 1 ); - i2 = index.getX( i + 2 ); + const points2 = shape2.points; + const satAxes2 = shape2.satAxes; + const satBounds2 = shape2.satBounds; - } + // check axes of the first shape + for ( let i = 0; i < 3; i ++ ) { - ta.x = pos.getX( i0 ); - ta.y = pos.getY( i0 ); - ta.z = pos.getZ( i0 ); + const sb = satBounds1[ i ]; + const sa = satAxes1[ i ]; + cacheSatBounds.setFromPoints( sa, points2 ); + if ( sb.isSeparated( cacheSatBounds ) ) return false; - tb.x = pos.getX( i1 ); - tb.y = pos.getY( i1 ); - tb.z = pos.getZ( i1 ); + } - tc.x = pos.getX( i2 ); - tc.y = pos.getY( i2 ); - tc.z = pos.getZ( i2 ); + // check axes of the second shape + for ( let i = 0; i < 3; i ++ ) { -} + const sb = satBounds2[ i ]; + const sa = satAxes2[ i ]; + cacheSatBounds.setFromPoints( sa, points1 ); + if ( sb.isSeparated( cacheSatBounds ) ) return false; -function IS_LEAF( n16, uint16Array ) { + } - return uint16Array[ n16 + 15 ] === 0xFFFF; + }; -} +}) )(); -function OFFSET( n32, uint32Array ) { +const closestPointLineToLine = ( function () { - return uint32Array[ n32 + 6 ]; + // https://github.com/juj/MathGeoLib/blob/master/src/Geometry/Line.cpp#L56 + const dir1 = new Vector3$1(); + const dir2 = new Vector3$1(); + const v02 = new Vector3$1(); + return function closestPointLineToLine( l1, l2, result ) { -} + const v0 = l1.start; + const v10 = dir1; + const v2 = l2.start; + const v32 = dir2; -function COUNT( n16, uint16Array ) { + v02.subVectors( v0, v2 ); + dir1.subVectors( l1.end, l1.start ); + dir2.subVectors( l2.end, l2.start ); - return uint16Array[ n16 + 14 ]; + // float d0232 = v02.Dot(v32); + const d0232 = v02.dot( v32 ); -} + // float d3210 = v32.Dot(v10); + const d3210 = v32.dot( v10 ); -function BOUNDING_DATA_INDEX( n32 ) { + // float d3232 = v32.Dot(v32); + const d3232 = v32.dot( v32 ); - return n32; + // float d0210 = v02.Dot(v10); + const d0210 = v02.dot( v10 ); -} + // float d1010 = v10.Dot(v10); + const d1010 = v10.dot( v10 ); -const boundingBox = new Box3(); -new Vector3(); + // float denom = d1010*d3232 - d3210*d3210; + const denom = d1010 * d3232 - d3210 * d3210; -( (function () { + let d, d2; + if ( denom !== 0 ) { - const triangle = new ExtendedTriangle(); - const triangle2 = new ExtendedTriangle(); - const invertedMat = new Matrix4(); + d = ( d0232 * d3210 - d0210 * d3232 ) / denom; - const obb = new OrientedBox(); - const obb2 = new OrientedBox(); + } else { - return function intersectsGeometry( nodeIndex32, geometry, otherGeometry, geometryToBvh, cachedObb = null ) { + d = 0; - let nodeIndex16 = nodeIndex32 * 2, float32Array = _float32Array, uint16Array = _uint16Array, uint32Array = _uint32Array; + } - if ( cachedObb === null ) { + d2 = ( d0232 + d * d3210 ) / d3232; - if ( ! otherGeometry.boundingBox ) { + result.x = d; + result.y = d2; - otherGeometry.computeBoundingBox(); + }; - } +} )(); - obb.set( otherGeometry.boundingBox.min, otherGeometry.boundingBox.max, geometryToBvh ); - cachedObb = obb; +const closestPointsSegmentToSegment = ( function () { - } + // https://github.com/juj/MathGeoLib/blob/master/src/Geometry/LineSegment.cpp#L187 + const paramResult = new Vector2$1(); + const temp1 = new Vector3$1(); + const temp2 = new Vector3$1(); + return function closestPointsSegmentToSegment( l1, l2, target1, target2 ) { - const isLeaf = IS_LEAF( nodeIndex16, uint16Array ); - if ( isLeaf ) { + closestPointLineToLine( l1, l2, paramResult ); - const thisGeometry = geometry; - const thisIndex = thisGeometry.index; - const thisPos = thisGeometry.attributes.position; + let d = paramResult.x; + let d2 = paramResult.y; + if ( d >= 0 && d <= 1 && d2 >= 0 && d2 <= 1 ) { - const index = otherGeometry.index; - const pos = otherGeometry.attributes.position; + l1.at( d, target1 ); + l2.at( d2, target2 ); - const offset = OFFSET( nodeIndex32, uint32Array ); - const count = COUNT( nodeIndex16, uint16Array ); + return; - // get the inverse of the geometry matrix so we can transform our triangles into the - // geometry space we're trying to test. We assume there are fewer triangles being checked - // here. - invertedMat.copy( geometryToBvh ).invert(); + } else if ( d >= 0 && d <= 1 ) { - if ( otherGeometry.boundsTree ) { + // Only d2 is out of bounds. + if ( d2 < 0 ) { - arrayToBox( BOUNDING_DATA_INDEX( nodeIndex32 ), float32Array, obb2 ); - obb2.matrix.copy( invertedMat ); - obb2.needsUpdate = true; + l2.at( 0, target2 ); - const res = otherGeometry.boundsTree.shapecast( { + } else { - intersectsBounds: box => obb2.intersectsBox( box ), + l2.at( 1, target2 ); - intersectsTriangle: tri => { + } - tri.a.applyMatrix4( geometryToBvh ); - tri.b.applyMatrix4( geometryToBvh ); - tri.c.applyMatrix4( geometryToBvh ); - tri.needsUpdate = true; + l1.closestPointToPoint( target2, true, target1 ); + return; - for ( let i = offset * 3, l = ( count + offset ) * 3; i < l; i += 3 ) { + } else if ( d2 >= 0 && d2 <= 1 ) { - // this triangle needs to be transformed into the current BVH coordinate frame - setTriangle( triangle2, i, thisIndex, thisPos ); - triangle2.needsUpdate = true; - if ( tri.intersectsTriangle( triangle2 ) ) { + // Only d is out of bounds. + if ( d < 0 ) { - return true; + l1.at( 0, target1 ); - } + } else { - } + l1.at( 1, target1 ); - return false; + } - } + l2.closestPointToPoint( target1, true, target2 ); + return; - } ); + } else { - return res; + // Both u and u2 are out of bounds. + let p; + if ( d < 0 ) { + + p = l1.start; } else { - for ( let i = offset * 3, l = ( count + offset * 3 ); i < l; i += 3 ) { + p = l1.end; - // this triangle needs to be transformed into the current BVH coordinate frame - setTriangle( triangle, i, thisIndex, thisPos ); - triangle.a.applyMatrix4( invertedMat ); - triangle.b.applyMatrix4( invertedMat ); - triangle.c.applyMatrix4( invertedMat ); - triangle.needsUpdate = true; + } - for ( let i2 = 0, l2 = index.count; i2 < l2; i2 += 3 ) { + let p2; + if ( d2 < 0 ) { - setTriangle( triangle2, i2, index, pos ); - triangle2.needsUpdate = true; + p2 = l2.start; - if ( triangle.intersectsTriangle( triangle2 ) ) { + } else { - return true; + p2 = l2.end; - } + } - } + const closestPoint = temp1; + const closestPoint2 = temp2; + l1.closestPointToPoint( p2, true, temp1 ); + l2.closestPointToPoint( p, true, temp2 ); - } + if ( closestPoint.distanceToSquared( p2 ) <= closestPoint2.distanceToSquared( p ) ) { - } - - } else { - - const left = nodeIndex32 + 8; - const right = uint32Array[ nodeIndex32 + 6 ]; - - arrayToBox( BOUNDING_DATA_INDEX( left ), float32Array, boundingBox ); - const leftIntersection = - cachedObb.intersectsBox( boundingBox ) && - intersectsGeometry( left, geometry, otherGeometry, geometryToBvh, cachedObb ); - - if ( leftIntersection ) return true; + target1.copy( closestPoint ); + target2.copy( p2 ); + return; - arrayToBox( BOUNDING_DATA_INDEX( right ), float32Array, boundingBox ); - const rightIntersection = - cachedObb.intersectsBox( boundingBox ) && - intersectsGeometry( right, geometry, otherGeometry, geometryToBvh, cachedObb ); + } else { - if ( rightIntersection ) return true; + target1.copy( p ); + target2.copy( closestPoint2 ); + return; - return false; + } } }; -}) )(); -let _float32Array; -let _uint16Array; -let _uint32Array; +} )(); -Mesh.prototype.raycast; -const _raycaster = new Raycaster$1(); +const sphereIntersectTriangle = ( function () { -const _tempVector = new Vector3(); -const _tempVector2 = new Vector3(); -const _tempQuaternion = new Quaternion(); -const _unit = { - X: new Vector3( 1, 0, 0 ), - Y: new Vector3( 0, 1, 0 ), - Z: new Vector3( 0, 0, 1 ) -}; + // https://stackoverflow.com/questions/34043955/detect-collision-between-sphere-and-triangle-in-three-js + const closestPointTemp = new Vector3$1(); + const projectedPointTemp = new Vector3$1(); + const planeTemp = new Plane(); + const lineTemp = new Line3(); + return function sphereIntersectTriangle( sphere, triangle ) { -const _changeEvent = { type: 'change' }; -const _mouseDownEvent = { type: 'mouseDown' }; -const _mouseUpEvent = { type: 'mouseUp', mode: null }; -const _objectChangeEvent = { type: 'objectChange' }; + const { radius, center } = sphere; + const { a, b, c } = triangle; -class TransformControls extends Object3D { + // phase 1 + lineTemp.start = a; + lineTemp.end = b; + const closestPoint1 = lineTemp.closestPointToPoint( center, true, closestPointTemp ); + if ( closestPoint1.distanceTo( center ) <= radius ) return true; - constructor( camera, domElement ) { + lineTemp.start = a; + lineTemp.end = c; + const closestPoint2 = lineTemp.closestPointToPoint( center, true, closestPointTemp ); + if ( closestPoint2.distanceTo( center ) <= radius ) return true; - super(); + lineTemp.start = b; + lineTemp.end = c; + const closestPoint3 = lineTemp.closestPointToPoint( center, true, closestPointTemp ); + if ( closestPoint3.distanceTo( center ) <= radius ) return true; - if ( domElement === undefined ) { + // phase 2 + const plane = triangle.getPlane( planeTemp ); + const dp = Math.abs( plane.distanceToPoint( center ) ); + if ( dp <= radius ) { - console.warn( 'THREE.TransformControls: The second parameter "domElement" is now mandatory.' ); - domElement = document; + const pp = plane.projectPoint( center, projectedPointTemp ); + const cp = triangle.containsPoint( pp ); + if ( cp ) return true; } - this.isTransformControls = true; - - this.visible = false; - this.domElement = domElement; - this.domElement.style.touchAction = 'none'; // disable touch scroll - - const _gizmo = new TransformControlsGizmo(); - this._gizmo = _gizmo; - this.add( _gizmo ); - - const _plane = new TransformControlsPlane(); - this._plane = _plane; - this.add( _plane ); - - const scope = this; - - // Defined getter, setter and store for a property - function defineProperty( propName, defaultValue ) { - - let propValue = defaultValue; - - Object.defineProperty( scope, propName, { + return false; - get: function () { + }; - return propValue !== undefined ? propValue : defaultValue; +} )(); - }, +const DIST_EPSILON = 1e-15; +function isNearZero( value ) { - set: function ( value ) { + return Math.abs( value ) < DIST_EPSILON; - if ( propValue !== value ) { +} - propValue = value; - _plane[ propName ] = value; - _gizmo[ propName ] = value; +class ExtendedTriangle extends Triangle { - scope.dispatchEvent( { type: propName + '-changed', value: value } ); - scope.dispatchEvent( _changeEvent ); + constructor( ...args ) { - } + super( ...args ); - } + this.isExtendedTriangle = true; + this.satAxes = new Array( 4 ).fill().map( () => new Vector3$1() ); + this.satBounds = new Array( 4 ).fill().map( () => new SeparatingAxisBounds() ); + this.points = [ this.a, this.b, this.c ]; + this.sphere = new Sphere(); + this.plane = new Plane(); + this.needsUpdate = true; - } ); + } - scope[ propName ] = defaultValue; - _plane[ propName ] = defaultValue; - _gizmo[ propName ] = defaultValue; + intersectsSphere( sphere ) { - } + return sphereIntersectTriangle( sphere, this ); - // Define properties with getters/setter - // Setting the defined property will automatically trigger change event - // Defined properties are passed down to gizmo and plane + } - defineProperty( 'camera', camera ); - defineProperty( 'object', undefined ); - defineProperty( 'enabled', true ); - defineProperty( 'axis', null ); - defineProperty( 'mode', 'translate' ); - defineProperty( 'translationSnap', null ); - defineProperty( 'rotationSnap', null ); - defineProperty( 'scaleSnap', null ); - defineProperty( 'space', 'world' ); - defineProperty( 'size', 1 ); - defineProperty( 'dragging', false ); - defineProperty( 'showX', true ); - defineProperty( 'showY', true ); - defineProperty( 'showZ', true ); + update() { - // Reusable utility variables + const a = this.a; + const b = this.b; + const c = this.c; + const points = this.points; - const worldPosition = new Vector3(); - const worldPositionStart = new Vector3(); - const worldQuaternion = new Quaternion(); - const worldQuaternionStart = new Quaternion(); - const cameraPosition = new Vector3(); - const cameraQuaternion = new Quaternion(); - const pointStart = new Vector3(); - const pointEnd = new Vector3(); - const rotationAxis = new Vector3(); - const rotationAngle = 0; - const eye = new Vector3(); + const satAxes = this.satAxes; + const satBounds = this.satBounds; - // TODO: remove properties unused in plane and gizmo + const axis0 = satAxes[ 0 ]; + const sab0 = satBounds[ 0 ]; + this.getNormal( axis0 ); + sab0.setFromPoints( axis0, points ); - defineProperty( 'worldPosition', worldPosition ); - defineProperty( 'worldPositionStart', worldPositionStart ); - defineProperty( 'worldQuaternion', worldQuaternion ); - defineProperty( 'worldQuaternionStart', worldQuaternionStart ); - defineProperty( 'cameraPosition', cameraPosition ); - defineProperty( 'cameraQuaternion', cameraQuaternion ); - defineProperty( 'pointStart', pointStart ); - defineProperty( 'pointEnd', pointEnd ); - defineProperty( 'rotationAxis', rotationAxis ); - defineProperty( 'rotationAngle', rotationAngle ); - defineProperty( 'eye', eye ); + const axis1 = satAxes[ 1 ]; + const sab1 = satBounds[ 1 ]; + axis1.subVectors( a, b ); + sab1.setFromPoints( axis1, points ); - this._offset = new Vector3(); - this._startNorm = new Vector3(); - this._endNorm = new Vector3(); - this._cameraScale = new Vector3(); + const axis2 = satAxes[ 2 ]; + const sab2 = satBounds[ 2 ]; + axis2.subVectors( b, c ); + sab2.setFromPoints( axis2, points ); - this._parentPosition = new Vector3(); - this._parentQuaternion = new Quaternion(); - this._parentQuaternionInv = new Quaternion(); - this._parentScale = new Vector3(); + const axis3 = satAxes[ 3 ]; + const sab3 = satBounds[ 3 ]; + axis3.subVectors( c, a ); + sab3.setFromPoints( axis3, points ); - this._worldScaleStart = new Vector3(); - this._worldQuaternionInv = new Quaternion(); - this._worldScale = new Vector3(); + this.sphere.setFromPoints( this.points ); + this.plane.setFromNormalAndCoplanarPoint( axis0, a ); + this.needsUpdate = false; - this._positionStart = new Vector3(); - this._quaternionStart = new Quaternion(); - this._scaleStart = new Vector3(); + } - this._getPointer = getPointer.bind( this ); - this._onPointerDown = onPointerDown.bind( this ); - this._onPointerHover = onPointerHover.bind( this ); - this._onPointerMove = onPointerMove.bind( this ); - this._onPointerUp = onPointerUp.bind( this ); +} - this.domElement.addEventListener( 'pointerdown', this._onPointerDown ); - this.domElement.addEventListener( 'pointermove', this._onPointerHover ); - this.domElement.addEventListener( 'pointerup', this._onPointerUp ); +ExtendedTriangle.prototype.closestPointToSegment = ( function () { - } + const point1 = new Vector3$1(); + const point2 = new Vector3$1(); + const edge = new Line3(); - // updateMatrixWorld updates key transformation variables - updateMatrixWorld() { + return function distanceToSegment( segment, target1 = null, target2 = null ) { - if ( this.object !== undefined ) { + const { start, end } = segment; + const points = this.points; + let distSq; + let closestDistanceSq = Infinity; - this.object.updateMatrixWorld(); + // check the triangle edges + for ( let i = 0; i < 3; i ++ ) { - if ( this.object.parent === null ) { + const nexti = ( i + 1 ) % 3; + edge.start.copy( points[ i ] ); + edge.end.copy( points[ nexti ] ); - console.error( 'TransformControls: The attached 3D object must be a part of the scene graph.' ); + closestPointsSegmentToSegment( edge, segment, point1, point2 ); - } else { + distSq = point1.distanceToSquared( point2 ); + if ( distSq < closestDistanceSq ) { - this.object.parent.matrixWorld.decompose( this._parentPosition, this._parentQuaternion, this._parentScale ); + closestDistanceSq = distSq; + if ( target1 ) target1.copy( point1 ); + if ( target2 ) target2.copy( point2 ); } - this.object.matrixWorld.decompose( this.worldPosition, this.worldQuaternion, this._worldScale ); + } - this._parentQuaternionInv.copy( this._parentQuaternion ).invert(); - this._worldQuaternionInv.copy( this.worldQuaternion ).invert(); + // check end points + this.closestPointToPoint( start, point1 ); + distSq = start.distanceToSquared( point1 ); + if ( distSq < closestDistanceSq ) { + + closestDistanceSq = distSq; + if ( target1 ) target1.copy( point1 ); + if ( target2 ) target2.copy( start ); } - this.camera.updateMatrixWorld(); - this.camera.matrixWorld.decompose( this.cameraPosition, this.cameraQuaternion, this._cameraScale ); + this.closestPointToPoint( end, point1 ); + distSq = end.distanceToSquared( point1 ); + if ( distSq < closestDistanceSq ) { - if ( this.camera.isOrthographicCamera ) { + closestDistanceSq = distSq; + if ( target1 ) target1.copy( point1 ); + if ( target2 ) target2.copy( end ); - this.camera.getWorldDirection( this.eye ).negate(); + } - } else { + return Math.sqrt( closestDistanceSq ); - this.eye.copy( this.cameraPosition ).sub( this.worldPosition ).normalize(); + }; - } +} )(); - super.updateMatrixWorld( this ); +ExtendedTriangle.prototype.intersectsTriangle = ( function () { - } + const saTri2 = new ExtendedTriangle(); + const arr1 = new Array( 3 ); + const arr2 = new Array( 3 ); + const cachedSatBounds = new SeparatingAxisBounds(); + const cachedSatBounds2 = new SeparatingAxisBounds(); + const cachedAxis = new Vector3$1(); + const dir1 = new Vector3$1(); + const dir2 = new Vector3$1(); + const tempDir = new Vector3$1(); + const edge = new Line3(); + const edge1 = new Line3(); + const edge2 = new Line3(); - pointerHover( pointer ) { + // TODO: If the triangles are coplanar and intersecting the target is nonsensical. It should at least + // be a line contained by both triangles if not a different special case somehow represented in the return result. + return function intersectsTriangle( other, target = null, suppressLog = false ) { - if ( this.object === undefined || this.dragging === true ) return; + if ( this.needsUpdate ) { - _raycaster.setFromCamera( pointer, this.camera ); + this.update(); - const intersect = intersectObjectWithRay( this._gizmo.picker[ this.mode ], _raycaster ); + } - if ( intersect ) { + if ( ! other.isExtendedTriangle ) { - this.axis = intersect.object.name; + saTri2.copy( other ); + saTri2.update(); + other = saTri2; - } else { + } else if ( other.needsUpdate ) { - this.axis = null; + other.update(); } - } + const plane1 = this.plane; + const plane2 = other.plane; - pointerDown( pointer ) { + if ( Math.abs( plane1.normal.dot( plane2.normal ) ) > 1.0 - 1e-10 ) { - if ( this.object === undefined || this.dragging === true || pointer.button !== 0 ) return; + // perform separating axis intersection test only for coplanar triangles + const satBounds1 = this.satBounds; + const satAxes1 = this.satAxes; + arr2[ 0 ] = other.a; + arr2[ 1 ] = other.b; + arr2[ 2 ] = other.c; + for ( let i = 0; i < 4; i ++ ) { - if ( this.axis !== null ) { + const sb = satBounds1[ i ]; + const sa = satAxes1[ i ]; + cachedSatBounds.setFromPoints( sa, arr2 ); + if ( sb.isSeparated( cachedSatBounds ) ) return false; - _raycaster.setFromCamera( pointer, this.camera ); + } - const planeIntersect = intersectObjectWithRay( this._plane, _raycaster, true ); + const satBounds2 = other.satBounds; + const satAxes2 = other.satAxes; + arr1[ 0 ] = this.a; + arr1[ 1 ] = this.b; + arr1[ 2 ] = this.c; + for ( let i = 0; i < 4; i ++ ) { - if ( planeIntersect ) { + const sb = satBounds2[ i ]; + const sa = satAxes2[ i ]; + cachedSatBounds.setFromPoints( sa, arr1 ); + if ( sb.isSeparated( cachedSatBounds ) ) return false; - this.object.updateMatrixWorld(); - this.object.parent.updateMatrixWorld(); + } - this._positionStart.copy( this.object.position ); - this._quaternionStart.copy( this.object.quaternion ); - this._scaleStart.copy( this.object.scale ); + // check crossed axes + for ( let i = 0; i < 4; i ++ ) { - this.object.matrixWorld.decompose( this.worldPositionStart, this.worldQuaternionStart, this._worldScaleStart ); + const sa1 = satAxes1[ i ]; + for ( let i2 = 0; i2 < 4; i2 ++ ) { - this.pointStart.copy( planeIntersect.point ).sub( this.worldPositionStart ); + const sa2 = satAxes2[ i2 ]; + cachedAxis.crossVectors( sa1, sa2 ); + cachedSatBounds.setFromPoints( cachedAxis, arr1 ); + cachedSatBounds2.setFromPoints( cachedAxis, arr2 ); + if ( cachedSatBounds.isSeparated( cachedSatBounds2 ) ) return false; + + } } - this.dragging = true; - _mouseDownEvent.mode = this.mode; - this.dispatchEvent( _mouseDownEvent ); + if ( target ) { - } + // TODO find two points that intersect on the edges and make that the result + if ( ! suppressLog ) { - } + console.warn( 'ExtendedTriangle.intersectsTriangle: Triangles are coplanar which does not support an output edge. Setting edge to 0, 0, 0.' ); - pointerMove( pointer ) { + } - const axis = this.axis; - const mode = this.mode; - const object = this.object; - let space = this.space; + target.start.set( 0, 0, 0 ); + target.end.set( 0, 0, 0 ); - if ( mode === 'scale' ) { + } - space = 'local'; + return true; - } else if ( axis === 'E' || axis === 'XYZE' || axis === 'XYZ' ) { + } else { - space = 'world'; + // find the edge that intersects the other triangle plane + const points1 = this.points; + let found1 = false; + let count1 = 0; + for ( let i = 0; i < 3; i ++ ) { - } + const p = points1[ i ]; + const pNext = points1[ ( i + 1 ) % 3 ]; - if ( object === undefined || axis === null || this.dragging === false || pointer.button !== - 1 ) return; + edge.start.copy( p ); + edge.end.copy( pNext ); + edge.delta( dir1 ); - _raycaster.setFromCamera( pointer, this.camera ); + const targetPoint = found1 ? edge1.start : edge1.end; + const startIntersects = isNearZero( plane2.distanceToPoint( p ) ); + if ( isNearZero( plane2.normal.dot( dir1 ) ) && startIntersects ) { - const planeIntersect = intersectObjectWithRay( this._plane, _raycaster, true ); + // if the edge lies on the plane then take the line + edge1.copy( edge ); + count1 = 2; + break; - if ( ! planeIntersect ) return; + } - this.pointEnd.copy( planeIntersect.point ).sub( this.worldPositionStart ); + // check if the start point is near the plane because "intersectLine" is not robust to that case + const doesIntersect = plane2.intersectLine( edge, targetPoint ) || startIntersects; + if ( doesIntersect && ! isNearZero( targetPoint.distanceTo( pNext ) ) ) { - if ( mode === 'translate' ) { + count1 ++; + if ( found1 ) { - // Apply translate + break; - this._offset.copy( this.pointEnd ).sub( this.pointStart ); + } - if ( space === 'local' && axis !== 'XYZ' ) { + found1 = true; - this._offset.applyQuaternion( this._worldQuaternionInv ); + } } - if ( axis.indexOf( 'X' ) === - 1 ) this._offset.x = 0; - if ( axis.indexOf( 'Y' ) === - 1 ) this._offset.y = 0; - if ( axis.indexOf( 'Z' ) === - 1 ) this._offset.z = 0; - - if ( space === 'local' && axis !== 'XYZ' ) { - - this._offset.applyQuaternion( this._quaternionStart ).divide( this._parentScale ); + if ( count1 === 1 && other.containsPoint( edge1.end ) ) { - } else { + if ( target ) { - this._offset.applyQuaternion( this._parentQuaternionInv ).divide( this._parentScale ); + target.start.copy( edge1.end ); + target.end.copy( edge1.end ); - } + } - object.position.copy( this._offset ).add( this._positionStart ); + return true; - // Apply translation snap + } else if ( count1 !== 2 ) { - if ( this.translationSnap ) { + return false; - if ( space === 'local' ) { + } - object.position.applyQuaternion( _tempQuaternion.copy( this._quaternionStart ).invert() ); + // find the other triangles edge that intersects this plane + const points2 = other.points; + let found2 = false; + let count2 = 0; + for ( let i = 0; i < 3; i ++ ) { - if ( axis.search( 'X' ) !== - 1 ) { + const p = points2[ i ]; + const pNext = points2[ ( i + 1 ) % 3 ]; - object.position.x = Math.round( object.position.x / this.translationSnap ) * this.translationSnap; + edge.start.copy( p ); + edge.end.copy( pNext ); + edge.delta( dir2 ); - } + const targetPoint = found2 ? edge2.start : edge2.end; + const startIntersects = isNearZero( plane1.distanceToPoint( p ) ); + if ( isNearZero( plane1.normal.dot( dir2 ) ) && startIntersects ) { - if ( axis.search( 'Y' ) !== - 1 ) { + // if the edge lies on the plane then take the line + edge2.copy( edge ); + count2 = 2; + break; - object.position.y = Math.round( object.position.y / this.translationSnap ) * this.translationSnap; + } - } + // check if the start point is near the plane because "intersectLine" is not robust to that case + const doesIntersect = plane1.intersectLine( edge, targetPoint ) || startIntersects; + if ( doesIntersect && ! isNearZero( targetPoint.distanceTo( pNext ) ) ) { - if ( axis.search( 'Z' ) !== - 1 ) { + count2 ++; + if ( found2 ) { - object.position.z = Math.round( object.position.z / this.translationSnap ) * this.translationSnap; + break; } - object.position.applyQuaternion( this._quaternionStart ); + found2 = true; } - if ( space === 'world' ) { - - if ( object.parent ) { + } - object.position.add( _tempVector.setFromMatrixPosition( object.parent.matrixWorld ) ); + if ( count2 === 1 && this.containsPoint( edge2.end ) ) { - } + if ( target ) { - if ( axis.search( 'X' ) !== - 1 ) { + target.start.copy( edge2.end ); + target.end.copy( edge2.end ); - object.position.x = Math.round( object.position.x / this.translationSnap ) * this.translationSnap; + } - } + return true; - if ( axis.search( 'Y' ) !== - 1 ) { + } else if ( count2 !== 2 ) { - object.position.y = Math.round( object.position.y / this.translationSnap ) * this.translationSnap; + return false; - } + } - if ( axis.search( 'Z' ) !== - 1 ) { + // find swap the second edge so both lines are running the same direction + edge1.delta( dir1 ); + edge2.delta( dir2 ); - object.position.z = Math.round( object.position.z / this.translationSnap ) * this.translationSnap; + if ( dir1.dot( dir2 ) < 0 ) { - } + let tmp = edge2.start; + edge2.start = edge2.end; + edge2.end = tmp; - if ( object.parent ) { + } - object.position.sub( _tempVector.setFromMatrixPosition( object.parent.matrixWorld ) ); + // check if the edges are overlapping + const s1 = edge1.start.dot( dir1 ); + const e1 = edge1.end.dot( dir1 ); + const s2 = edge2.start.dot( dir1 ); + const e2 = edge2.end.dot( dir1 ); + const separated1 = e1 < s2; + const separated2 = s1 < e2; - } + if ( s1 !== e2 && s2 !== e1 && separated1 === separated2 ) { - } + return false; } - } else if ( mode === 'scale' ) { + // assign the target output + if ( target ) { - if ( axis.search( 'XYZ' ) !== - 1 ) { + tempDir.subVectors( edge1.start, edge2.start ); + if ( tempDir.dot( dir1 ) > 0 ) { - let d = this.pointEnd.length() / this.pointStart.length(); + target.start.copy( edge1.start ); - if ( this.pointEnd.dot( this.pointStart ) < 0 ) d *= - 1; + } else { - _tempVector2.set( d, d, d ); + target.start.copy( edge2.start ); - } else { - - _tempVector.copy( this.pointStart ); - _tempVector2.copy( this.pointEnd ); + } - _tempVector.applyQuaternion( this._worldQuaternionInv ); - _tempVector2.applyQuaternion( this._worldQuaternionInv ); + tempDir.subVectors( edge1.end, edge2.end ); + if ( tempDir.dot( dir1 ) < 0 ) { - _tempVector2.divide( _tempVector ); + target.end.copy( edge1.end ); - if ( axis.search( 'X' ) === - 1 ) { + } else { - _tempVector2.x = 1; + target.end.copy( edge2.end ); } - if ( axis.search( 'Y' ) === - 1 ) { - - _tempVector2.y = 1; + } - } + return true; - if ( axis.search( 'Z' ) === - 1 ) { + } - _tempVector2.z = 1; + }; - } +} )(); - } - // Apply scale +ExtendedTriangle.prototype.distanceToPoint = ( function () { - object.scale.copy( this._scaleStart ).multiply( _tempVector2 ); + const target = new Vector3$1(); + return function distanceToPoint( point ) { - if ( this.scaleSnap ) { + this.closestPointToPoint( point, target ); + return point.distanceTo( target ); - if ( axis.search( 'X' ) !== - 1 ) { + }; - object.scale.x = Math.round( object.scale.x / this.scaleSnap ) * this.scaleSnap || this.scaleSnap; +} )(); - } - if ( axis.search( 'Y' ) !== - 1 ) { +ExtendedTriangle.prototype.distanceToTriangle = ( function () { - object.scale.y = Math.round( object.scale.y / this.scaleSnap ) * this.scaleSnap || this.scaleSnap; + const point = new Vector3$1(); + const point2 = new Vector3$1(); + const cornerFields = [ 'a', 'b', 'c' ]; + const line1 = new Line3(); + const line2 = new Line3(); - } + return function distanceToTriangle( other, target1 = null, target2 = null ) { - if ( axis.search( 'Z' ) !== - 1 ) { + const lineTarget = target1 || target2 ? line1 : null; + if ( this.intersectsTriangle( other, lineTarget ) ) { - object.scale.z = Math.round( object.scale.z / this.scaleSnap ) * this.scaleSnap || this.scaleSnap; + if ( target1 || target2 ) { - } + if ( target1 ) lineTarget.getCenter( target1 ); + if ( target2 ) lineTarget.getCenter( target2 ); } - } else if ( mode === 'rotate' ) { + return 0; - this._offset.copy( this.pointEnd ).sub( this.pointStart ); + } - const ROTATION_SPEED = 20 / this.worldPosition.distanceTo( _tempVector.setFromMatrixPosition( this.camera.matrixWorld ) ); + let closestDistanceSq = Infinity; - if ( axis === 'E' ) { + // check all point distances + for ( let i = 0; i < 3; i ++ ) { - this.rotationAxis.copy( this.eye ); - this.rotationAngle = this.pointEnd.angleTo( this.pointStart ); + let dist; + const field = cornerFields[ i ]; + const otherVec = other[ field ]; + this.closestPointToPoint( otherVec, point ); - this._startNorm.copy( this.pointStart ).normalize(); - this._endNorm.copy( this.pointEnd ).normalize(); + dist = otherVec.distanceToSquared( point ); - this.rotationAngle *= ( this._endNorm.cross( this._startNorm ).dot( this.eye ) < 0 ? 1 : - 1 ); + if ( dist < closestDistanceSq ) { - } else if ( axis === 'XYZE' ) { + closestDistanceSq = dist; + if ( target1 ) target1.copy( point ); + if ( target2 ) target2.copy( otherVec ); - this.rotationAxis.copy( this._offset ).cross( this.eye ).normalize(); - this.rotationAngle = this._offset.dot( _tempVector.copy( this.rotationAxis ).cross( this.eye ) ) * ROTATION_SPEED; + } - } else if ( axis === 'X' || axis === 'Y' || axis === 'Z' ) { - this.rotationAxis.copy( _unit[ axis ] ); + const thisVec = this[ field ]; + other.closestPointToPoint( thisVec, point ); - _tempVector.copy( _unit[ axis ] ); + dist = thisVec.distanceToSquared( point ); - if ( space === 'local' ) { + if ( dist < closestDistanceSq ) { - _tempVector.applyQuaternion( this.worldQuaternion ); + closestDistanceSq = dist; + if ( target1 ) target1.copy( thisVec ); + if ( target2 ) target2.copy( point ); - } + } - this.rotationAngle = this._offset.dot( _tempVector.cross( this.eye ).normalize() ) * ROTATION_SPEED; + } - } + for ( let i = 0; i < 3; i ++ ) { - // Apply rotation snap + const f11 = cornerFields[ i ]; + const f12 = cornerFields[ ( i + 1 ) % 3 ]; + line1.set( this[ f11 ], this[ f12 ] ); + for ( let i2 = 0; i2 < 3; i2 ++ ) { - if ( this.rotationSnap ) this.rotationAngle = Math.round( this.rotationAngle / this.rotationSnap ) * this.rotationSnap; + const f21 = cornerFields[ i2 ]; + const f22 = cornerFields[ ( i2 + 1 ) % 3 ]; + line2.set( other[ f21 ], other[ f22 ] ); - // Apply rotate - if ( space === 'local' && axis !== 'E' && axis !== 'XYZE' ) { + closestPointsSegmentToSegment( line1, line2, point, point2 ); - object.quaternion.copy( this._quaternionStart ); - object.quaternion.multiply( _tempQuaternion.setFromAxisAngle( this.rotationAxis, this.rotationAngle ) ).normalize(); + const dist = point.distanceToSquared( point2 ); + if ( dist < closestDistanceSq ) { - } else { + closestDistanceSq = dist; + if ( target1 ) target1.copy( point ); + if ( target2 ) target2.copy( point2 ); - this.rotationAxis.applyQuaternion( this._parentQuaternionInv ); - object.quaternion.copy( _tempQuaternion.setFromAxisAngle( this.rotationAxis, this.rotationAngle ) ); - object.quaternion.multiply( this._quaternionStart ).normalize(); + } } } - this.dispatchEvent( _changeEvent ); - this.dispatchEvent( _objectChangeEvent ); - - } + return Math.sqrt( closestDistanceSq ); - pointerUp( pointer ) { + }; - if ( pointer.button !== 0 ) return; +} )(); - if ( this.dragging && ( this.axis !== null ) ) { +class OrientedBox { - _mouseUpEvent.mode = this.mode; - this.dispatchEvent( _mouseUpEvent ); + constructor( min, max, matrix ) { - } + this.isOrientedBox = true; + this.min = new Vector3$1(); + this.max = new Vector3$1(); + this.matrix = new Matrix4(); + this.invMatrix = new Matrix4(); + this.points = new Array( 8 ).fill().map( () => new Vector3$1() ); + this.satAxes = new Array( 3 ).fill().map( () => new Vector3$1() ); + this.satBounds = new Array( 3 ).fill().map( () => new SeparatingAxisBounds() ); + this.alignedSatBounds = new Array( 3 ).fill().map( () => new SeparatingAxisBounds() ); + this.needsUpdate = false; - this.dragging = false; - this.axis = null; + if ( min ) this.min.copy( min ); + if ( max ) this.max.copy( max ); + if ( matrix ) this.matrix.copy( matrix ); } - dispose() { + set( min, max, matrix ) { - this.domElement.removeEventListener( 'pointerdown', this._onPointerDown ); - this.domElement.removeEventListener( 'pointermove', this._onPointerHover ); - this.domElement.removeEventListener( 'pointermove', this._onPointerMove ); - this.domElement.removeEventListener( 'pointerup', this._onPointerUp ); + this.min.copy( min ); + this.max.copy( max ); + this.matrix.copy( matrix ); + this.needsUpdate = true; - this.traverse( function ( child ) { + } - if ( child.geometry ) child.geometry.dispose(); - if ( child.material ) child.material.dispose(); + copy( other ) { - } ); + this.min.copy( other.min ); + this.max.copy( other.max ); + this.matrix.copy( other.matrix ); + this.needsUpdate = true; } - // Set current object - attach( object ) { +} - this.object = object; - this.visible = true; +OrientedBox.prototype.update = ( function () { - return this; + return function update() { - } + const matrix = this.matrix; + const min = this.min; + const max = this.max; - // Detach from object - detach() { + const points = this.points; + for ( let x = 0; x <= 1; x ++ ) { - this.object = undefined; - this.visible = false; - this.axis = null; + for ( let y = 0; y <= 1; y ++ ) { - return this; + for ( let z = 0; z <= 1; z ++ ) { - } + const i = ( ( 1 << 0 ) * x ) | ( ( 1 << 1 ) * y ) | ( ( 1 << 2 ) * z ); + const v = points[ i ]; + v.x = x ? max.x : min.x; + v.y = y ? max.y : min.y; + v.z = z ? max.z : min.z; - reset() { + v.applyMatrix4( matrix ); - if ( ! this.enabled ) return; + } - if ( this.dragging ) { + } - this.object.position.copy( this._positionStart ); - this.object.quaternion.copy( this._quaternionStart ); - this.object.scale.copy( this._scaleStart ); + } - this.dispatchEvent( _changeEvent ); - this.dispatchEvent( _objectChangeEvent ); + const satBounds = this.satBounds; + const satAxes = this.satAxes; + const minVec = points[ 0 ]; + for ( let i = 0; i < 3; i ++ ) { - this.pointStart.copy( this.pointEnd ); + const axis = satAxes[ i ]; + const sb = satBounds[ i ]; + const index = 1 << i; + const pi = points[ index ]; + + axis.subVectors( minVec, pi ); + sb.setFromPoints( axis, points ); } - } + const alignedSatBounds = this.alignedSatBounds; + alignedSatBounds[ 0 ].setFromPointsField( points, 'x' ); + alignedSatBounds[ 1 ].setFromPointsField( points, 'y' ); + alignedSatBounds[ 2 ].setFromPointsField( points, 'z' ); - getRaycaster() { + this.invMatrix.copy( this.matrix ).invert(); + this.needsUpdate = false; - return _raycaster; + }; - } +} )(); - // TODO: deprecate +OrientedBox.prototype.intersectsBox = ( function () { - getMode() { + const aabbBounds = new SeparatingAxisBounds(); + return function intersectsBox( box ) { - return this.mode; + // TODO: should this be doing SAT against the AABB? + if ( this.needsUpdate ) { - } + this.update(); - setMode( mode ) { + } - this.mode = mode; + const min = box.min; + const max = box.max; + const satBounds = this.satBounds; + const satAxes = this.satAxes; + const alignedSatBounds = this.alignedSatBounds; - } + aabbBounds.min = min.x; + aabbBounds.max = max.x; + if ( alignedSatBounds[ 0 ].isSeparated( aabbBounds ) ) return false; - setTranslationSnap( translationSnap ) { + aabbBounds.min = min.y; + aabbBounds.max = max.y; + if ( alignedSatBounds[ 1 ].isSeparated( aabbBounds ) ) return false; - this.translationSnap = translationSnap; + aabbBounds.min = min.z; + aabbBounds.max = max.z; + if ( alignedSatBounds[ 2 ].isSeparated( aabbBounds ) ) return false; - } + for ( let i = 0; i < 3; i ++ ) { - setRotationSnap( rotationSnap ) { + const axis = satAxes[ i ]; + const sb = satBounds[ i ]; + aabbBounds.setFromBox( axis, box ); + if ( sb.isSeparated( aabbBounds ) ) return false; - this.rotationSnap = rotationSnap; + } - } + return true; - setScaleSnap( scaleSnap ) { + }; - this.scaleSnap = scaleSnap; +} )(); - } +OrientedBox.prototype.intersectsTriangle = ( function () { - setSize( size ) { + const saTri = new ExtendedTriangle(); + const pointsArr = new Array( 3 ); + const cachedSatBounds = new SeparatingAxisBounds(); + const cachedSatBounds2 = new SeparatingAxisBounds(); + const cachedAxis = new Vector3$1(); + return function intersectsTriangle( triangle ) { - this.size = size; + if ( this.needsUpdate ) { - } + this.update(); - setSpace( space ) { + } - this.space = space; + if ( ! triangle.isExtendedTriangle ) { - } + saTri.copy( triangle ); + saTri.update(); + triangle = saTri; -} + } else if ( triangle.needsUpdate ) { -// mouse / touch event handlers + triangle.update(); -function getPointer( event ) { + } - if ( this.domElement.ownerDocument.pointerLockElement ) { + const satBounds = this.satBounds; + const satAxes = this.satAxes; - return { - x: 0, - y: 0, - button: event.button - }; + pointsArr[ 0 ] = triangle.a; + pointsArr[ 1 ] = triangle.b; + pointsArr[ 2 ] = triangle.c; - } else { + for ( let i = 0; i < 3; i ++ ) { - const rect = this.domElement.getBoundingClientRect(); + const sb = satBounds[ i ]; + const sa = satAxes[ i ]; + cachedSatBounds.setFromPoints( sa, pointsArr ); + if ( sb.isSeparated( cachedSatBounds ) ) return false; - return { - x: ( event.clientX - rect.left ) / rect.width * 2 - 1, - y: - ( event.clientY - rect.top ) / rect.height * 2 + 1, - button: event.button - }; + } - } + const triSatBounds = triangle.satBounds; + const triSatAxes = triangle.satAxes; + const points = this.points; + for ( let i = 0; i < 3; i ++ ) { -} + const sb = triSatBounds[ i ]; + const sa = triSatAxes[ i ]; + cachedSatBounds.setFromPoints( sa, points ); + if ( sb.isSeparated( cachedSatBounds ) ) return false; -function onPointerHover( event ) { + } - if ( ! this.enabled ) return; + // check crossed axes + for ( let i = 0; i < 3; i ++ ) { - switch ( event.pointerType ) { + const sa1 = satAxes[ i ]; + for ( let i2 = 0; i2 < 4; i2 ++ ) { - case 'mouse': - case 'pen': - this.pointerHover( this._getPointer( event ) ); - break; + const sa2 = triSatAxes[ i2 ]; + cachedAxis.crossVectors( sa1, sa2 ); + cachedSatBounds.setFromPoints( cachedAxis, pointsArr ); + cachedSatBounds2.setFromPoints( cachedAxis, points ); + if ( cachedSatBounds.isSeparated( cachedSatBounds2 ) ) return false; - } + } -} + } -function onPointerDown( event ) { + return true; - if ( ! this.enabled ) return; + }; - if ( ! document.pointerLockElement ) { +} )(); - this.domElement.setPointerCapture( event.pointerId ); +OrientedBox.prototype.closestPointToPoint = ( function () { - } + return function closestPointToPoint( point, target1 ) { - this.domElement.addEventListener( 'pointermove', this._onPointerMove ); + if ( this.needsUpdate ) { - this.pointerHover( this._getPointer( event ) ); - this.pointerDown( this._getPointer( event ) ); + this.update(); -} + } -function onPointerMove( event ) { + target1 + .copy( point ) + .applyMatrix4( this.invMatrix ) + .clamp( this.min, this.max ) + .applyMatrix4( this.matrix ); - if ( ! this.enabled ) return; + return target1; - this.pointerMove( this._getPointer( event ) ); + }; -} +} )(); -function onPointerUp( event ) { +OrientedBox.prototype.distanceToPoint = ( function () { - if ( ! this.enabled ) return; + const target = new Vector3$1(); + return function distanceToPoint( point ) { - this.domElement.releasePointerCapture( event.pointerId ); + this.closestPointToPoint( point, target ); + return point.distanceTo( target ); - this.domElement.removeEventListener( 'pointermove', this._onPointerMove ); + }; - this.pointerUp( this._getPointer( event ) ); +} )(); -} +OrientedBox.prototype.distanceToBox = ( function () { -function intersectObjectWithRay( object, raycaster, includeInvisible ) { + const xyzFields = [ 'x', 'y', 'z' ]; + const segments1 = new Array( 12 ).fill().map( () => new Line3() ); + const segments2 = new Array( 12 ).fill().map( () => new Line3() ); - const allIntersections = raycaster.intersectObject( object, true ); + const point1 = new Vector3$1(); + const point2 = new Vector3$1(); - for ( let i = 0; i < allIntersections.length; i ++ ) { + // early out if we find a value below threshold + return function distanceToBox( box, threshold = 0, target1 = null, target2 = null ) { - if ( allIntersections[ i ].object.visible || includeInvisible ) { + if ( this.needsUpdate ) { - return allIntersections[ i ]; + this.update(); } - } - - return false; + if ( this.intersectsBox( box ) ) { -} + if ( target1 || target2 ) { -// + box.getCenter( point2 ); + this.closestPointToPoint( point2, point1 ); + box.closestPointToPoint( point1, point2 ); -// Reusable utility variables + if ( target1 ) target1.copy( point1 ); + if ( target2 ) target2.copy( point2 ); -const _tempEuler = new Euler(); -const _alignVector = new Vector3( 0, 1, 0 ); -const _zeroVector = new Vector3( 0, 0, 0 ); -const _lookAtMatrix = new Matrix4(); -const _tempQuaternion2 = new Quaternion(); -const _identityQuaternion = new Quaternion(); -const _dirVector = new Vector3(); -const _tempMatrix = new Matrix4(); + } -const _unitX = new Vector3( 1, 0, 0 ); -const _unitY = new Vector3( 0, 1, 0 ); -const _unitZ = new Vector3( 0, 0, 1 ); + return 0; -const _v1 = new Vector3(); -const _v2 = new Vector3(); -const _v3 = new Vector3(); + } -class TransformControlsGizmo extends Object3D { + const threshold2 = threshold * threshold; + const min = box.min; + const max = box.max; + const points = this.points; - constructor() { - super(); + // iterate over every edge and compare distances + let closestDistanceSq = Infinity; - this.isTransformControlsGizmo = true; + // check over all these points + for ( let i = 0; i < 8; i ++ ) { - this.type = 'TransformControlsGizmo'; + const p = points[ i ]; + point2.copy( p ).clamp( min, max ); - // shared materials + const dist = p.distanceToSquared( point2 ); + if ( dist < closestDistanceSq ) { - const gizmoMaterial = new MeshBasicMaterial( { - depthTest: false, - depthWrite: false, - fog: false, - toneMapped: false, - transparent: true - } ); + closestDistanceSq = dist; + if ( target1 ) target1.copy( p ); + if ( target2 ) target2.copy( point2 ); - const gizmoLineMaterial = new LineBasicMaterial( { - depthTest: false, - depthWrite: false, - fog: false, - toneMapped: false, - transparent: true - } ); + if ( dist < threshold2 ) return Math.sqrt( dist ); - // Make unique material for each axis/color + } - const matInvisible = gizmoMaterial.clone(); - matInvisible.opacity = 0.15; + } - const matHelper = gizmoLineMaterial.clone(); - matHelper.opacity = 0.5; + // generate and check all line segment distances + let count = 0; + for ( let i = 0; i < 3; i ++ ) { - const matRed = gizmoMaterial.clone(); - matRed.color.setHex( 0xff0000 ); + for ( let i1 = 0; i1 <= 1; i1 ++ ) { - const matGreen = gizmoMaterial.clone(); - matGreen.color.setHex( 0x00ff00 ); + for ( let i2 = 0; i2 <= 1; i2 ++ ) { - const matBlue = gizmoMaterial.clone(); - matBlue.color.setHex( 0x0000ff ); + const nextIndex = ( i + 1 ) % 3; + const nextIndex2 = ( i + 2 ) % 3; - const matRedTransparent = gizmoMaterial.clone(); - matRedTransparent.color.setHex( 0xff0000 ); - matRedTransparent.opacity = 0.5; + // get obb line segments + const index = i1 << nextIndex | i2 << nextIndex2; + const index2 = 1 << i | i1 << nextIndex | i2 << nextIndex2; + const p1 = points[ index ]; + const p2 = points[ index2 ]; + const line1 = segments1[ count ]; + line1.set( p1, p2 ); - const matGreenTransparent = gizmoMaterial.clone(); - matGreenTransparent.color.setHex( 0x00ff00 ); - matGreenTransparent.opacity = 0.5; - const matBlueTransparent = gizmoMaterial.clone(); - matBlueTransparent.color.setHex( 0x0000ff ); - matBlueTransparent.opacity = 0.5; + // get aabb line segments + const f1 = xyzFields[ i ]; + const f2 = xyzFields[ nextIndex ]; + const f3 = xyzFields[ nextIndex2 ]; + const line2 = segments2[ count ]; + const start = line2.start; + const end = line2.end; - const matWhiteTransparent = gizmoMaterial.clone(); - matWhiteTransparent.opacity = 0.25; - - const matYellowTransparent = gizmoMaterial.clone(); - matYellowTransparent.color.setHex( 0xffff00 ); - matYellowTransparent.opacity = 0.25; + start[ f1 ] = min[ f1 ]; + start[ f2 ] = i1 ? min[ f2 ] : max[ f2 ]; + start[ f3 ] = i2 ? min[ f3 ] : max[ f2 ]; - const matYellow = gizmoMaterial.clone(); - matYellow.color.setHex( 0xffff00 ); + end[ f1 ] = max[ f1 ]; + end[ f2 ] = i1 ? min[ f2 ] : max[ f2 ]; + end[ f3 ] = i2 ? min[ f3 ] : max[ f2 ]; - const matGray = gizmoMaterial.clone(); - matGray.color.setHex( 0x787878 ); + count ++; - // reusable geometry + } - const arrowGeometry = new CylinderGeometry( 0, 0.04, 0.1, 12 ); - arrowGeometry.translate( 0, 0.05, 0 ); + } - const scaleHandleGeometry = new BoxGeometry( 0.08, 0.08, 0.08 ); - scaleHandleGeometry.translate( 0, 0.04, 0 ); + } - const lineGeometry = new BufferGeometry(); - lineGeometry.setAttribute( 'position', new Float32BufferAttribute( [ 0, 0, 0, 1, 0, 0 ], 3 ) ); + // check all the other boxes point + for ( let x = 0; x <= 1; x ++ ) { - const lineGeometry2 = new CylinderGeometry( 0.0075, 0.0075, 0.5, 3 ); - lineGeometry2.translate( 0, 0.25, 0 ); + for ( let y = 0; y <= 1; y ++ ) { - function CircleGeometry( radius, arc ) { + for ( let z = 0; z <= 1; z ++ ) { - const geometry = new TorusGeometry( radius, 0.0075, 3, 64, arc * Math.PI * 2 ); - geometry.rotateY( Math.PI / 2 ); - geometry.rotateX( Math.PI / 2 ); - return geometry; + point2.x = x ? max.x : min.x; + point2.y = y ? max.y : min.y; + point2.z = z ? max.z : min.z; - } + this.closestPointToPoint( point2, point1 ); + const dist = point2.distanceToSquared( point1 ); + if ( dist < closestDistanceSq ) { - // Special geometry for transform helper. If scaled with position vector it spans from [0,0,0] to position + closestDistanceSq = dist; + if ( target1 ) target1.copy( point1 ); + if ( target2 ) target2.copy( point2 ); - function TranslateHelperGeometry() { + if ( dist < threshold2 ) return Math.sqrt( dist ); - const geometry = new BufferGeometry(); + } - geometry.setAttribute( 'position', new Float32BufferAttribute( [ 0, 0, 0, 1, 1, 1 ], 3 ) ); + } - return geometry; + } } - // Gizmo definitions - custom hierarchy definitions for setupGizmo() function + for ( let i = 0; i < 12; i ++ ) { - const gizmoTranslate = { - X: [ - [ new Mesh( arrowGeometry, matRed ), [ 0.5, 0, 0 ], [ 0, 0, - Math.PI / 2 ]], - [ new Mesh( arrowGeometry, matRed ), [ - 0.5, 0, 0 ], [ 0, 0, Math.PI / 2 ]], - [ new Mesh( lineGeometry2, matRed ), [ 0, 0, 0 ], [ 0, 0, - Math.PI / 2 ]] - ], - Y: [ - [ new Mesh( arrowGeometry, matGreen ), [ 0, 0.5, 0 ]], - [ new Mesh( arrowGeometry, matGreen ), [ 0, - 0.5, 0 ], [ Math.PI, 0, 0 ]], - [ new Mesh( lineGeometry2, matGreen ) ] - ], - Z: [ - [ new Mesh( arrowGeometry, matBlue ), [ 0, 0, 0.5 ], [ Math.PI / 2, 0, 0 ]], - [ new Mesh( arrowGeometry, matBlue ), [ 0, 0, - 0.5 ], [ - Math.PI / 2, 0, 0 ]], - [ new Mesh( lineGeometry2, matBlue ), null, [ Math.PI / 2, 0, 0 ]] - ], - XYZ: [ - [ new Mesh( new OctahedronGeometry( 0.1, 0 ), matWhiteTransparent.clone() ), [ 0, 0, 0 ]] - ], - XY: [ - [ new Mesh( new BoxGeometry( 0.15, 0.15, 0.01 ), matBlueTransparent.clone() ), [ 0.15, 0.15, 0 ]] - ], - YZ: [ - [ new Mesh( new BoxGeometry( 0.15, 0.15, 0.01 ), matRedTransparent.clone() ), [ 0, 0.15, 0.15 ], [ 0, Math.PI / 2, 0 ]] - ], - XZ: [ - [ new Mesh( new BoxGeometry( 0.15, 0.15, 0.01 ), matGreenTransparent.clone() ), [ 0.15, 0, 0.15 ], [ - Math.PI / 2, 0, 0 ]] - ] - }; + const l1 = segments1[ i ]; + for ( let i2 = 0; i2 < 12; i2 ++ ) { - const pickerTranslate = { - X: [ - [ new Mesh( new CylinderGeometry( 0.2, 0, 0.6, 4 ), matInvisible ), [ 0.3, 0, 0 ], [ 0, 0, - Math.PI / 2 ]], - [ new Mesh( new CylinderGeometry( 0.2, 0, 0.6, 4 ), matInvisible ), [ - 0.3, 0, 0 ], [ 0, 0, Math.PI / 2 ]] - ], - Y: [ - [ new Mesh( new CylinderGeometry( 0.2, 0, 0.6, 4 ), matInvisible ), [ 0, 0.3, 0 ]], - [ new Mesh( new CylinderGeometry( 0.2, 0, 0.6, 4 ), matInvisible ), [ 0, - 0.3, 0 ], [ 0, 0, Math.PI ]] - ], - Z: [ - [ new Mesh( new CylinderGeometry( 0.2, 0, 0.6, 4 ), matInvisible ), [ 0, 0, 0.3 ], [ Math.PI / 2, 0, 0 ]], - [ new Mesh( new CylinderGeometry( 0.2, 0, 0.6, 4 ), matInvisible ), [ 0, 0, - 0.3 ], [ - Math.PI / 2, 0, 0 ]] - ], - XYZ: [ - [ new Mesh( new OctahedronGeometry( 0.2, 0 ), matInvisible ) ] - ], - XY: [ - [ new Mesh( new BoxGeometry( 0.2, 0.2, 0.01 ), matInvisible ), [ 0.15, 0.15, 0 ]] - ], - YZ: [ - [ new Mesh( new BoxGeometry( 0.2, 0.2, 0.01 ), matInvisible ), [ 0, 0.15, 0.15 ], [ 0, Math.PI / 2, 0 ]] - ], - XZ: [ - [ new Mesh( new BoxGeometry( 0.2, 0.2, 0.01 ), matInvisible ), [ 0.15, 0, 0.15 ], [ - Math.PI / 2, 0, 0 ]] - ] - }; + const l2 = segments2[ i2 ]; + closestPointsSegmentToSegment( l1, l2, point1, point2 ); + const dist = point1.distanceToSquared( point2 ); + if ( dist < closestDistanceSq ) { - const helperTranslate = { - START: [ - [ new Mesh( new OctahedronGeometry( 0.01, 2 ), matHelper ), null, null, null, 'helper' ] - ], - END: [ - [ new Mesh( new OctahedronGeometry( 0.01, 2 ), matHelper ), null, null, null, 'helper' ] - ], - DELTA: [ - [ new Line$2( TranslateHelperGeometry(), matHelper ), null, null, null, 'helper' ] - ], - X: [ - [ new Line$2( lineGeometry, matHelper.clone() ), [ - 1e3, 0, 0 ], null, [ 1e6, 1, 1 ], 'helper' ] - ], - Y: [ - [ new Line$2( lineGeometry, matHelper.clone() ), [ 0, - 1e3, 0 ], [ 0, 0, Math.PI / 2 ], [ 1e6, 1, 1 ], 'helper' ] - ], - Z: [ - [ new Line$2( lineGeometry, matHelper.clone() ), [ 0, 0, - 1e3 ], [ 0, - Math.PI / 2, 0 ], [ 1e6, 1, 1 ], 'helper' ] - ] - }; + closestDistanceSq = dist; + if ( target1 ) target1.copy( point1 ); + if ( target2 ) target2.copy( point2 ); - const gizmoRotate = { - XYZE: [ - [ new Mesh( CircleGeometry( 0.5, 1 ), matGray ), null, [ 0, Math.PI / 2, 0 ]] - ], - X: [ - [ new Mesh( CircleGeometry( 0.5, 0.5 ), matRed ) ] - ], - Y: [ - [ new Mesh( CircleGeometry( 0.5, 0.5 ), matGreen ), null, [ 0, 0, - Math.PI / 2 ]] - ], - Z: [ - [ new Mesh( CircleGeometry( 0.5, 0.5 ), matBlue ), null, [ 0, Math.PI / 2, 0 ]] - ], - E: [ - [ new Mesh( CircleGeometry( 0.75, 1 ), matYellowTransparent ), null, [ 0, Math.PI / 2, 0 ]] - ] - }; + if ( dist < threshold2 ) return Math.sqrt( dist ); - const helperRotate = { - AXIS: [ - [ new Line$2( lineGeometry, matHelper.clone() ), [ - 1e3, 0, 0 ], null, [ 1e6, 1, 1 ], 'helper' ] - ] - }; + } - const pickerRotate = { - XYZE: [ - [ new Mesh( new SphereGeometry( 0.25, 10, 8 ), matInvisible ) ] - ], - X: [ - [ new Mesh( new TorusGeometry( 0.5, 0.1, 4, 24 ), matInvisible ), [ 0, 0, 0 ], [ 0, - Math.PI / 2, - Math.PI / 2 ]], - ], - Y: [ - [ new Mesh( new TorusGeometry( 0.5, 0.1, 4, 24 ), matInvisible ), [ 0, 0, 0 ], [ Math.PI / 2, 0, 0 ]], - ], - Z: [ - [ new Mesh( new TorusGeometry( 0.5, 0.1, 4, 24 ), matInvisible ), [ 0, 0, 0 ], [ 0, 0, - Math.PI / 2 ]], - ], - E: [ - [ new Mesh( new TorusGeometry( 0.75, 0.1, 2, 24 ), matInvisible ) ] - ] - }; + } - const gizmoScale = { - X: [ - [ new Mesh( scaleHandleGeometry, matRed ), [ 0.5, 0, 0 ], [ 0, 0, - Math.PI / 2 ]], - [ new Mesh( lineGeometry2, matRed ), [ 0, 0, 0 ], [ 0, 0, - Math.PI / 2 ]], - [ new Mesh( scaleHandleGeometry, matRed ), [ - 0.5, 0, 0 ], [ 0, 0, Math.PI / 2 ]], - ], - Y: [ - [ new Mesh( scaleHandleGeometry, matGreen ), [ 0, 0.5, 0 ]], - [ new Mesh( lineGeometry2, matGreen ) ], - [ new Mesh( scaleHandleGeometry, matGreen ), [ 0, - 0.5, 0 ], [ 0, 0, Math.PI ]], - ], - Z: [ - [ new Mesh( scaleHandleGeometry, matBlue ), [ 0, 0, 0.5 ], [ Math.PI / 2, 0, 0 ]], - [ new Mesh( lineGeometry2, matBlue ), [ 0, 0, 0 ], [ Math.PI / 2, 0, 0 ]], - [ new Mesh( scaleHandleGeometry, matBlue ), [ 0, 0, - 0.5 ], [ - Math.PI / 2, 0, 0 ]] - ], - XY: [ - [ new Mesh( new BoxGeometry( 0.15, 0.15, 0.01 ), matBlueTransparent ), [ 0.15, 0.15, 0 ]] - ], - YZ: [ - [ new Mesh( new BoxGeometry( 0.15, 0.15, 0.01 ), matRedTransparent ), [ 0, 0.15, 0.15 ], [ 0, Math.PI / 2, 0 ]] - ], - XZ: [ - [ new Mesh( new BoxGeometry( 0.15, 0.15, 0.01 ), matGreenTransparent ), [ 0.15, 0, 0.15 ], [ - Math.PI / 2, 0, 0 ]] - ], - XYZ: [ - [ new Mesh( new BoxGeometry( 0.1, 0.1, 0.1 ), matWhiteTransparent.clone() ) ], - ] - }; + } - const pickerScale = { - X: [ - [ new Mesh( new CylinderGeometry( 0.2, 0, 0.6, 4 ), matInvisible ), [ 0.3, 0, 0 ], [ 0, 0, - Math.PI / 2 ]], - [ new Mesh( new CylinderGeometry( 0.2, 0, 0.6, 4 ), matInvisible ), [ - 0.3, 0, 0 ], [ 0, 0, Math.PI / 2 ]] - ], - Y: [ - [ new Mesh( new CylinderGeometry( 0.2, 0, 0.6, 4 ), matInvisible ), [ 0, 0.3, 0 ]], - [ new Mesh( new CylinderGeometry( 0.2, 0, 0.6, 4 ), matInvisible ), [ 0, - 0.3, 0 ], [ 0, 0, Math.PI ]] - ], - Z: [ - [ new Mesh( new CylinderGeometry( 0.2, 0, 0.6, 4 ), matInvisible ), [ 0, 0, 0.3 ], [ Math.PI / 2, 0, 0 ]], - [ new Mesh( new CylinderGeometry( 0.2, 0, 0.6, 4 ), matInvisible ), [ 0, 0, - 0.3 ], [ - Math.PI / 2, 0, 0 ]] - ], - XY: [ - [ new Mesh( new BoxGeometry( 0.2, 0.2, 0.01 ), matInvisible ), [ 0.15, 0.15, 0 ]], - ], - YZ: [ - [ new Mesh( new BoxGeometry( 0.2, 0.2, 0.01 ), matInvisible ), [ 0, 0.15, 0.15 ], [ 0, Math.PI / 2, 0 ]], - ], - XZ: [ - [ new Mesh( new BoxGeometry( 0.2, 0.2, 0.01 ), matInvisible ), [ 0.15, 0, 0.15 ], [ - Math.PI / 2, 0, 0 ]], - ], - XYZ: [ - [ new Mesh( new BoxGeometry( 0.2, 0.2, 0.2 ), matInvisible ), [ 0, 0, 0 ]], - ] - }; + return Math.sqrt( closestDistanceSq ); - const helperScale = { - X: [ - [ new Line$2( lineGeometry, matHelper.clone() ), [ - 1e3, 0, 0 ], null, [ 1e6, 1, 1 ], 'helper' ] - ], - Y: [ - [ new Line$2( lineGeometry, matHelper.clone() ), [ 0, - 1e3, 0 ], [ 0, 0, Math.PI / 2 ], [ 1e6, 1, 1 ], 'helper' ] - ], - Z: [ - [ new Line$2( lineGeometry, matHelper.clone() ), [ 0, 0, - 1e3 ], [ 0, - Math.PI / 2, 0 ], [ 1e6, 1, 1 ], 'helper' ] - ] - }; + }; - // Creates an Object3D with gizmos described in custom hierarchy definition. +} )(); - function setupGizmo( gizmoMap ) { +// Ripped and modified From THREE.js Mesh raycast +// https://github.com/mrdoob/three.js/blob/0aa87c999fe61e216c1133fba7a95772b503eddf/src/objects/Mesh.js#L115 +const _vA = /* @__PURE__ */ new Vector3$1(); +const _vB = /* @__PURE__ */ new Vector3$1(); +const _vC = /* @__PURE__ */ new Vector3$1(); - const gizmo = new Object3D(); +const _uvA = /* @__PURE__ */ new Vector2$1(); +const _uvB = /* @__PURE__ */ new Vector2$1(); +const _uvC = /* @__PURE__ */ new Vector2$1(); - for ( const name in gizmoMap ) { +const _normalA = /* @__PURE__ */ new Vector3$1(); +const _normalB = /* @__PURE__ */ new Vector3$1(); +const _normalC = /* @__PURE__ */ new Vector3$1(); - for ( let i = gizmoMap[ name ].length; i --; ) { +const _intersectionPoint = /* @__PURE__ */ new Vector3$1(); +function checkIntersection( ray, pA, pB, pC, point, side ) { - const object = gizmoMap[ name ][ i ][ 0 ].clone(); - const position = gizmoMap[ name ][ i ][ 1 ]; - const rotation = gizmoMap[ name ][ i ][ 2 ]; - const scale = gizmoMap[ name ][ i ][ 3 ]; - const tag = gizmoMap[ name ][ i ][ 4 ]; + let intersect; + if ( side === BackSide ) { - // name and tag properties are essential for picking and updating logic. - object.name = name; - object.tag = tag; + intersect = ray.intersectTriangle( pC, pB, pA, true, point ); - if ( position ) { + } else { - object.position.set( position[ 0 ], position[ 1 ], position[ 2 ] ); + intersect = ray.intersectTriangle( pA, pB, pC, side !== DoubleSide, point ); - } + } - if ( rotation ) { + if ( intersect === null ) return null; - object.rotation.set( rotation[ 0 ], rotation[ 1 ], rotation[ 2 ] ); + const distance = ray.origin.distanceTo( point ); - } + return { - if ( scale ) { + distance: distance, + point: point.clone(), - object.scale.set( scale[ 0 ], scale[ 1 ], scale[ 2 ] ); + }; - } +} - object.updateMatrix(); +function checkBufferGeometryIntersection( ray, position, normal, uv, uv1, a, b, c, side ) { - const tempGeometry = object.geometry.clone(); - tempGeometry.applyMatrix4( object.matrix ); - object.geometry = tempGeometry; - object.renderOrder = Infinity; + _vA.fromBufferAttribute( position, a ); + _vB.fromBufferAttribute( position, b ); + _vC.fromBufferAttribute( position, c ); - object.position.set( 0, 0, 0 ); - object.rotation.set( 0, 0, 0 ); - object.scale.set( 1, 1, 1 ); + const intersection = checkIntersection( ray, _vA, _vB, _vC, _intersectionPoint, side ); - gizmo.add( object ); + if ( intersection ) { - } + if ( uv ) { - } + _uvA.fromBufferAttribute( uv, a ); + _uvB.fromBufferAttribute( uv, b ); + _uvC.fromBufferAttribute( uv, c ); - return gizmo; + intersection.uv = Triangle.getInterpolation( _intersectionPoint, _vA, _vB, _vC, _uvA, _uvB, _uvC, new Vector2$1() ); } - // Gizmo creation + if ( uv1 ) { - this.gizmo = {}; - this.picker = {}; - this.helper = {}; + _uvA.fromBufferAttribute( uv1, a ); + _uvB.fromBufferAttribute( uv1, b ); + _uvC.fromBufferAttribute( uv1, c ); - this.add( this.gizmo[ 'translate' ] = setupGizmo( gizmoTranslate ) ); - this.add( this.gizmo[ 'rotate' ] = setupGizmo( gizmoRotate ) ); - this.add( this.gizmo[ 'scale' ] = setupGizmo( gizmoScale ) ); - this.add( this.picker[ 'translate' ] = setupGizmo( pickerTranslate ) ); - this.add( this.picker[ 'rotate' ] = setupGizmo( pickerRotate ) ); - this.add( this.picker[ 'scale' ] = setupGizmo( pickerScale ) ); - this.add( this.helper[ 'translate' ] = setupGizmo( helperTranslate ) ); - this.add( this.helper[ 'rotate' ] = setupGizmo( helperRotate ) ); - this.add( this.helper[ 'scale' ] = setupGizmo( helperScale ) ); + intersection.uv1 = Triangle.getInterpolation( _intersectionPoint, _vA, _vB, _vC, _uvA, _uvB, _uvC, new Vector2$1() ); - // Pickers should be hidden always + } - this.picker[ 'translate' ].visible = false; - this.picker[ 'rotate' ].visible = false; - this.picker[ 'scale' ].visible = false; + if ( normal ) { - } + _normalA.fromBufferAttribute( normal, a ); + _normalB.fromBufferAttribute( normal, b ); + _normalC.fromBufferAttribute( normal, c ); - // updateMatrixWorld will update transformations and appearance of individual handles + intersection.normal = Triangle.getInterpolation( _intersectionPoint, _vA, _vB, _vC, _normalA, _normalB, _normalC, new Vector3$1() ); + if ( intersection.normal.dot( ray.direction ) > 0 ) { - updateMatrixWorld( force ) { + intersection.normal.multiplyScalar( - 1 ); - const space = ( this.mode === 'scale' ) ? 'local' : this.space; // scale always oriented to local rotation + } - const quaternion = ( space === 'local' ) ? this.worldQuaternion : _identityQuaternion; + } - // Show only gizmos for current transform mode + const face = { + a: a, + b: b, + c: c, + normal: new Vector3$1(), + materialIndex: 0 + }; - this.gizmo[ 'translate' ].visible = this.mode === 'translate'; - this.gizmo[ 'rotate' ].visible = this.mode === 'rotate'; - this.gizmo[ 'scale' ].visible = this.mode === 'scale'; + Triangle.getNormal( _vA, _vB, _vC, face.normal ); - this.helper[ 'translate' ].visible = this.mode === 'translate'; - this.helper[ 'rotate' ].visible = this.mode === 'rotate'; - this.helper[ 'scale' ].visible = this.mode === 'scale'; + intersection.face = face; + intersection.faceIndex = a; + } - let handles = []; - handles = handles.concat( this.picker[ this.mode ].children ); - handles = handles.concat( this.gizmo[ this.mode ].children ); - handles = handles.concat( this.helper[ this.mode ].children ); + return intersection; - for ( let i = 0; i < handles.length; i ++ ) { +} - const handle = handles[ i ]; +// https://github.com/mrdoob/three.js/blob/0aa87c999fe61e216c1133fba7a95772b503eddf/src/objects/Mesh.js#L258 +function intersectTri( geo, side, ray, tri, intersections ) { - // hide aligned to camera + const triOffset = tri * 3; + const a = geo.index.getX( triOffset ); + const b = geo.index.getX( triOffset + 1 ); + const c = geo.index.getX( triOffset + 2 ); - handle.visible = true; - handle.rotation.set( 0, 0, 0 ); - handle.position.copy( this.worldPosition ); + const { position, normal, uv, uv1 } = geo.attributes; + const intersection = checkBufferGeometryIntersection( ray, position, normal, uv, uv1, a, b, c, side ); - let factor; + if ( intersection ) { - if ( this.camera.isOrthographicCamera ) { + intersection.faceIndex = tri; + if ( intersections ) intersections.push( intersection ); + return intersection; - factor = ( this.camera.top - this.camera.bottom ) / this.camera.zoom; + } - } else { + return null; - factor = this.worldPosition.distanceTo( this.cameraPosition ) * Math.min( 1.9 * Math.tan( Math.PI * this.camera.fov / 360 ) / this.camera.zoom, 7 ); +} - } +function intersectTris( geo, side, ray, offset, count, intersections ) { - handle.scale.set( 1, 1, 1 ).multiplyScalar( factor * this.size / 4 ); + for ( let i = offset, end = offset + count; i < end; i ++ ) { - // TODO: simplify helpers and consider decoupling from gizmo + intersectTri( geo, side, ray, i, intersections ); - if ( handle.tag === 'helper' ) { + } - handle.visible = false; +} - if ( handle.name === 'AXIS' ) { +function intersectClosestTri( geo, side, ray, offset, count ) { - handle.visible = !! this.axis; + let dist = Infinity; + let res = null; + for ( let i = offset, end = offset + count; i < end; i ++ ) { - if ( this.axis === 'X' ) { + const intersection = intersectTri( geo, side, ray, i ); + if ( intersection && intersection.distance < dist ) { - _tempQuaternion.setFromEuler( _tempEuler.set( 0, 0, 0 ) ); - handle.quaternion.copy( quaternion ).multiply( _tempQuaternion ); + res = intersection; + dist = intersection.distance; - if ( Math.abs( _alignVector.copy( _unitX ).applyQuaternion( quaternion ).dot( this.eye ) ) > 0.9 ) { + } - handle.visible = false; + } - } + return res; - } +} - if ( this.axis === 'Y' ) { +// converts the given BVH raycast intersection to align with the three.js raycast +// structure (include object, world space distance and point). +function convertRaycastIntersect( hit, object, raycaster ) { - _tempQuaternion.setFromEuler( _tempEuler.set( 0, 0, Math.PI / 2 ) ); - handle.quaternion.copy( quaternion ).multiply( _tempQuaternion ); + if ( hit === null ) { - if ( Math.abs( _alignVector.copy( _unitY ).applyQuaternion( quaternion ).dot( this.eye ) ) > 0.9 ) { + return null; - handle.visible = false; + } - } + hit.point.applyMatrix4( object.matrixWorld ); + hit.distance = hit.point.distanceTo( raycaster.ray.origin ); + hit.object = object; - } + if ( hit.distance < raycaster.near || hit.distance > raycaster.far ) { - if ( this.axis === 'Z' ) { + return null; - _tempQuaternion.setFromEuler( _tempEuler.set( 0, Math.PI / 2, 0 ) ); - handle.quaternion.copy( quaternion ).multiply( _tempQuaternion ); + } else { - if ( Math.abs( _alignVector.copy( _unitZ ).applyQuaternion( quaternion ).dot( this.eye ) ) > 0.9 ) { + return hit; - handle.visible = false; + } - } +} - } +// sets the vertices of triangle `tri` with the 3 vertices after i +function setTriangle( tri, i, index, pos ) { - if ( this.axis === 'XYZE' ) { + const ta = tri.a; + const tb = tri.b; + const tc = tri.c; - _tempQuaternion.setFromEuler( _tempEuler.set( 0, Math.PI / 2, 0 ) ); - _alignVector.copy( this.rotationAxis ); - handle.quaternion.setFromRotationMatrix( _lookAtMatrix.lookAt( _zeroVector, _alignVector, _unitY ) ); - handle.quaternion.multiply( _tempQuaternion ); - handle.visible = this.dragging; + let i0 = i; + let i1 = i + 1; + let i2 = i + 2; + if ( index ) { - } + i0 = index.getX( i ); + i1 = index.getX( i + 1 ); + i2 = index.getX( i + 2 ); - if ( this.axis === 'E' ) { + } - handle.visible = false; + ta.x = pos.getX( i0 ); + ta.y = pos.getY( i0 ); + ta.z = pos.getZ( i0 ); - } + tb.x = pos.getX( i1 ); + tb.y = pos.getY( i1 ); + tb.z = pos.getZ( i1 ); + tc.x = pos.getX( i2 ); + tc.y = pos.getY( i2 ); + tc.z = pos.getZ( i2 ); - } else if ( handle.name === 'START' ) { +} - handle.position.copy( this.worldPositionStart ); - handle.visible = this.dragging; +function iterateOverTriangles( + offset, + count, + geometry, + intersectsTriangleFunc, + contained, + depth, + triangle +) { - } else if ( handle.name === 'END' ) { + const index = geometry.index; + const pos = geometry.attributes.position; + for ( let i = offset, l = count + offset; i < l; i ++ ) { - handle.position.copy( this.worldPosition ); - handle.visible = this.dragging; + setTriangle( triangle, i * 3, index, pos ); + triangle.needsUpdate = true; - } else if ( handle.name === 'DELTA' ) { + if ( intersectsTriangleFunc( triangle, i, contained, depth ) ) { - handle.position.copy( this.worldPositionStart ); - handle.quaternion.copy( this.worldQuaternionStart ); - _tempVector.set( 1e-10, 1e-10, 1e-10 ).add( this.worldPositionStart ).sub( this.worldPosition ).multiplyScalar( - 1 ); - _tempVector.applyQuaternion( this.worldQuaternionStart.clone().invert() ); - handle.scale.copy( _tempVector ); - handle.visible = this.dragging; + return true; - } else { + } - handle.quaternion.copy( quaternion ); + } - if ( this.dragging ) { + return false; - handle.position.copy( this.worldPositionStart ); +} - } else { +class PrimitivePool { - handle.position.copy( this.worldPosition ); + constructor( getNewPrimitive ) { - } + this._getNewPrimitive = getNewPrimitive; + this._primitives = []; - if ( this.axis ) { + } - handle.visible = this.axis.search( handle.name ) !== - 1; + getPrimitive() { - } + const primitives = this._primitives; + if ( primitives.length === 0 ) { - } + return this._getNewPrimitive(); - // If updating helper, skip rest of the loop - continue; + } else { - } + return primitives.pop(); - // Align handles to current local or world rotation + } - handle.quaternion.copy( quaternion ); + } - if ( this.mode === 'translate' || this.mode === 'scale' ) { + releasePrimitive( primitive ) { - // Hide translate and scale axis facing the camera + this._primitives.push( primitive ); - const AXIS_HIDE_THRESHOLD = 0.99; - const PLANE_HIDE_THRESHOLD = 0.2; + } - if ( handle.name === 'X' ) { +} - if ( Math.abs( _alignVector.copy( _unitX ).applyQuaternion( quaternion ).dot( this.eye ) ) > AXIS_HIDE_THRESHOLD ) { +function IS_LEAF( n16, uint16Array ) { - handle.scale.set( 1e-10, 1e-10, 1e-10 ); - handle.visible = false; + return uint16Array[ n16 + 15 ] === 0xFFFF; - } +} - } +function OFFSET( n32, uint32Array ) { - if ( handle.name === 'Y' ) { + return uint32Array[ n32 + 6 ]; - if ( Math.abs( _alignVector.copy( _unitY ).applyQuaternion( quaternion ).dot( this.eye ) ) > AXIS_HIDE_THRESHOLD ) { +} - handle.scale.set( 1e-10, 1e-10, 1e-10 ); - handle.visible = false; +function COUNT( n16, uint16Array ) { - } + return uint16Array[ n16 + 14 ]; - } +} - if ( handle.name === 'Z' ) { +function LEFT_NODE( n32 ) { - if ( Math.abs( _alignVector.copy( _unitZ ).applyQuaternion( quaternion ).dot( this.eye ) ) > AXIS_HIDE_THRESHOLD ) { + return n32 + 8; - handle.scale.set( 1e-10, 1e-10, 1e-10 ); - handle.visible = false; +} - } +function RIGHT_NODE( n32, uint32Array ) { - } + return uint32Array[ n32 + 6 ]; - if ( handle.name === 'XY' ) { +} - if ( Math.abs( _alignVector.copy( _unitZ ).applyQuaternion( quaternion ).dot( this.eye ) ) < PLANE_HIDE_THRESHOLD ) { +function SPLIT_AXIS( n32, uint32Array ) { - handle.scale.set( 1e-10, 1e-10, 1e-10 ); - handle.visible = false; + return uint32Array[ n32 + 7 ]; - } +} - } +function BOUNDING_DATA_INDEX( n32 ) { - if ( handle.name === 'YZ' ) { + return n32; - if ( Math.abs( _alignVector.copy( _unitX ).applyQuaternion( quaternion ).dot( this.eye ) ) < PLANE_HIDE_THRESHOLD ) { +} - handle.scale.set( 1e-10, 1e-10, 1e-10 ); - handle.visible = false; +const boundingBox = new Box3(); +const boxIntersection = new Vector3$1(); +const xyzFields = [ 'x', 'y', 'z' ]; - } +function raycast( nodeIndex32, geometry, side, ray, intersects ) { - } + let nodeIndex16 = nodeIndex32 * 2, float32Array = _float32Array, uint16Array = _uint16Array, uint32Array = _uint32Array; - if ( handle.name === 'XZ' ) { + const isLeaf = IS_LEAF( nodeIndex16, uint16Array ); + if ( isLeaf ) { - if ( Math.abs( _alignVector.copy( _unitY ).applyQuaternion( quaternion ).dot( this.eye ) ) < PLANE_HIDE_THRESHOLD ) { + const offset = OFFSET( nodeIndex32, uint32Array ); + const count = COUNT( nodeIndex16, uint16Array ); - handle.scale.set( 1e-10, 1e-10, 1e-10 ); - handle.visible = false; + intersectTris( geometry, side, ray, offset, count, intersects ); - } + } else { - } + const leftIndex = LEFT_NODE( nodeIndex32 ); + if ( intersectRay( leftIndex, float32Array, ray, boxIntersection ) ) { - } else if ( this.mode === 'rotate' ) { + raycast( leftIndex, geometry, side, ray, intersects ); - // Align handles to current local or world rotation + } - _tempQuaternion2.copy( quaternion ); - _alignVector.copy( this.eye ).applyQuaternion( _tempQuaternion.copy( quaternion ).invert() ); + const rightIndex = RIGHT_NODE( nodeIndex32, uint32Array ); + if ( intersectRay( rightIndex, float32Array, ray, boxIntersection ) ) { - if ( handle.name.search( 'E' ) !== - 1 ) { + raycast( rightIndex, geometry, side, ray, intersects ); - handle.quaternion.setFromRotationMatrix( _lookAtMatrix.lookAt( this.eye, _zeroVector, _unitY ) ); + } - } + } - if ( handle.name === 'X' ) { +} - _tempQuaternion.setFromAxisAngle( _unitX, Math.atan2( - _alignVector.y, _alignVector.z ) ); - _tempQuaternion.multiplyQuaternions( _tempQuaternion2, _tempQuaternion ); - handle.quaternion.copy( _tempQuaternion ); +function raycastFirst( nodeIndex32, geometry, side, ray ) { - } + let nodeIndex16 = nodeIndex32 * 2, float32Array = _float32Array, uint16Array = _uint16Array, uint32Array = _uint32Array; - if ( handle.name === 'Y' ) { + const isLeaf = IS_LEAF( nodeIndex16, uint16Array ); + if ( isLeaf ) { - _tempQuaternion.setFromAxisAngle( _unitY, Math.atan2( _alignVector.x, _alignVector.z ) ); - _tempQuaternion.multiplyQuaternions( _tempQuaternion2, _tempQuaternion ); - handle.quaternion.copy( _tempQuaternion ); + const offset = OFFSET( nodeIndex32, uint32Array ); + const count = COUNT( nodeIndex16, uint16Array ); + return intersectClosestTri( geometry, side, ray, offset, count ); - } + } else { - if ( handle.name === 'Z' ) { + // consider the position of the split plane with respect to the oncoming ray; whichever direction + // the ray is coming from, look for an intersection among that side of the tree first + const splitAxis = SPLIT_AXIS( nodeIndex32, uint32Array ); + const xyzAxis = xyzFields[ splitAxis ]; + const rayDir = ray.direction[ xyzAxis ]; + const leftToRight = rayDir >= 0; - _tempQuaternion.setFromAxisAngle( _unitZ, Math.atan2( _alignVector.y, _alignVector.x ) ); - _tempQuaternion.multiplyQuaternions( _tempQuaternion2, _tempQuaternion ); - handle.quaternion.copy( _tempQuaternion ); + // c1 is the child to check first + let c1, c2; + if ( leftToRight ) { + + c1 = LEFT_NODE( nodeIndex32 ); + c2 = RIGHT_NODE( nodeIndex32, uint32Array ); + + } else { + + c1 = RIGHT_NODE( nodeIndex32, uint32Array ); + c2 = LEFT_NODE( nodeIndex32 ); + + } + + const c1Intersection = intersectRay( c1, float32Array, ray, boxIntersection ); + const c1Result = c1Intersection ? raycastFirst( c1, geometry, side, ray ) : null; + + // if we got an intersection in the first node and it's closer than the second node's bounding + // box, we don't need to consider the second node because it couldn't possibly be a better result + if ( c1Result ) { + + // check if the point is within the second bounds + // "point" is in the local frame of the bvh + const point = c1Result.point[ xyzAxis ]; + const isOutside = leftToRight ? + point <= float32Array[ c2 + splitAxis ] : // min bounding data + point >= float32Array[ c2 + splitAxis + 3 ]; // max bounding data + + if ( isOutside ) { + + return c1Result; + + } + + } + + // either there was no intersection in the first node, or there could still be a closer + // intersection in the second, so check the second node and then take the better of the two + const c2Intersection = intersectRay( c2, float32Array, ray, boxIntersection ); + const c2Result = c2Intersection ? raycastFirst( c2, geometry, side, ray ) : null; + + if ( c1Result && c2Result ) { + + return c1Result.distance <= c2Result.distance ? c1Result : c2Result; + + } else { + + return c1Result || c2Result || null; + + } + + } + +} + +const shapecast = ( function () { + + let _box1, _box2; + const boxStack = []; + const boxPool = new PrimitivePool( () => new Box3() ); + + return function shapecast( ...args ) { + + _box1 = boxPool.getPrimitive(); + _box2 = boxPool.getPrimitive(); + boxStack.push( _box1, _box2 ); + + const result = shapecastTraverse( ...args ); + + boxPool.releasePrimitive( _box1 ); + boxPool.releasePrimitive( _box2 ); + boxStack.pop(); + boxStack.pop(); + + const length = boxStack.length; + if ( length > 0 ) { + + _box2 = boxStack[ length - 1 ]; + _box1 = boxStack[ length - 2 ]; + + } + + return result; + + }; + + function shapecastTraverse( + nodeIndex32, + geometry, + intersectsBoundsFunc, + intersectsRangeFunc, + nodeScoreFunc = null, + nodeIndexByteOffset = 0, // offset for unique node identifier + depth = 0 + ) { + + // Define these inside the function so it has access to the local variables needed + // when converting to the buffer equivalents + function getLeftOffset( nodeIndex32 ) { + + let nodeIndex16 = nodeIndex32 * 2, uint16Array = _uint16Array, uint32Array = _uint32Array; + + // traverse until we find a leaf + while ( ! IS_LEAF( nodeIndex16, uint16Array ) ) { + + nodeIndex32 = LEFT_NODE( nodeIndex32 ); + nodeIndex16 = nodeIndex32 * 2; + + } + + return OFFSET( nodeIndex32, uint32Array ); + + } + + function getRightEndOffset( nodeIndex32 ) { + + let nodeIndex16 = nodeIndex32 * 2, uint16Array = _uint16Array, uint32Array = _uint32Array; + + // traverse until we find a leaf + while ( ! IS_LEAF( nodeIndex16, uint16Array ) ) { + + // adjust offset to point to the right node + nodeIndex32 = RIGHT_NODE( nodeIndex32, uint32Array ); + nodeIndex16 = nodeIndex32 * 2; + + } + + // return the end offset of the triangle range + return OFFSET( nodeIndex32, uint32Array ) + COUNT( nodeIndex16, uint16Array ); + + } + + let nodeIndex16 = nodeIndex32 * 2, float32Array = _float32Array, uint16Array = _uint16Array, uint32Array = _uint32Array; + + const isLeaf = IS_LEAF( nodeIndex16, uint16Array ); + if ( isLeaf ) { + + const offset = OFFSET( nodeIndex32, uint32Array ); + const count = COUNT( nodeIndex16, uint16Array ); + arrayToBox( BOUNDING_DATA_INDEX( nodeIndex32 ), float32Array, _box1 ); + return intersectsRangeFunc( offset, count, false, depth, nodeIndexByteOffset + nodeIndex32, _box1 ); + + } else { + + const left = LEFT_NODE( nodeIndex32 ); + const right = RIGHT_NODE( nodeIndex32, uint32Array ); + let c1 = left; + let c2 = right; + + let score1, score2; + let box1, box2; + if ( nodeScoreFunc ) { + + box1 = _box1; + box2 = _box2; + + // bounding data is not offset + arrayToBox( BOUNDING_DATA_INDEX( c1 ), float32Array, box1 ); + arrayToBox( BOUNDING_DATA_INDEX( c2 ), float32Array, box2 ); + + score1 = nodeScoreFunc( box1 ); + score2 = nodeScoreFunc( box2 ); + + if ( score2 < score1 ) { + + c1 = right; + c2 = left; + + const temp = score1; + score1 = score2; + score2 = temp; + + box1 = box2; + // box2 is always set before use below } } - // Hide disabled axes - handle.visible = handle.visible && ( handle.name.indexOf( 'X' ) === - 1 || this.showX ); - handle.visible = handle.visible && ( handle.name.indexOf( 'Y' ) === - 1 || this.showY ); - handle.visible = handle.visible && ( handle.name.indexOf( 'Z' ) === - 1 || this.showZ ); - handle.visible = handle.visible && ( handle.name.indexOf( 'E' ) === - 1 || ( this.showX && this.showY && this.showZ ) ); + // Check box 1 intersection + if ( ! box1 ) { - // highlight selected axis + box1 = _box1; + arrayToBox( BOUNDING_DATA_INDEX( c1 ), float32Array, box1 ); - handle.material._color = handle.material._color || handle.material.color.clone(); - handle.material._opacity = handle.material._opacity || handle.material.opacity; + } - handle.material.color.copy( handle.material._color ); - handle.material.opacity = handle.material._opacity; + const isC1Leaf = IS_LEAF( c1 * 2, uint16Array ); + const c1Intersection = intersectsBoundsFunc( box1, isC1Leaf, score1, depth + 1, nodeIndexByteOffset + c1 ); - if ( this.enabled && this.axis ) { + let c1StopTraversal; + if ( c1Intersection === CONTAINED ) { - if ( handle.name === this.axis ) { + const offset = getLeftOffset( c1 ); + const end = getRightEndOffset( c1 ); + const count = end - offset; - handle.material.color.setHex( 0xffff00 ); - handle.material.opacity = 1.0; + c1StopTraversal = intersectsRangeFunc( offset, count, true, depth + 1, nodeIndexByteOffset + c1, box1 ); - } else if ( this.axis.split( '' ).some( function ( a ) { + } else { - return handle.name === a; + c1StopTraversal = + c1Intersection && + shapecastTraverse( + c1, + geometry, + intersectsBoundsFunc, + intersectsRangeFunc, + nodeScoreFunc, + nodeIndexByteOffset, + depth + 1 + ); - } ) ) { + } - handle.material.color.setHex( 0xffff00 ); - handle.material.opacity = 1.0; + if ( c1StopTraversal ) return true; + + // Check box 2 intersection + // cached box2 will have been overwritten by previous traversal + box2 = _box2; + arrayToBox( BOUNDING_DATA_INDEX( c2 ), float32Array, box2 ); + + const isC2Leaf = IS_LEAF( c2 * 2, uint16Array ); + const c2Intersection = intersectsBoundsFunc( box2, isC2Leaf, score2, depth + 1, nodeIndexByteOffset + c2 ); + + let c2StopTraversal; + if ( c2Intersection === CONTAINED ) { + + const offset = getLeftOffset( c2 ); + const end = getRightEndOffset( c2 ); + const count = end - offset; + + c2StopTraversal = intersectsRangeFunc( offset, count, true, depth + 1, nodeIndexByteOffset + c2, box2 ); + + } else { + + c2StopTraversal = + c2Intersection && + shapecastTraverse( + c2, + geometry, + intersectsBoundsFunc, + intersectsRangeFunc, + nodeScoreFunc, + nodeIndexByteOffset, + depth + 1 + ); + + } + + if ( c2StopTraversal ) return true; + + return false; + + } + + } + +} )(); + +const intersectsGeometry = ( function () { + + const triangle = new ExtendedTriangle(); + const triangle2 = new ExtendedTriangle(); + const invertedMat = new Matrix4(); + + const obb = new OrientedBox(); + const obb2 = new OrientedBox(); + + return function intersectsGeometry( nodeIndex32, geometry, otherGeometry, geometryToBvh, cachedObb = null ) { + + let nodeIndex16 = nodeIndex32 * 2, float32Array = _float32Array, uint16Array = _uint16Array, uint32Array = _uint32Array; + + if ( cachedObb === null ) { + + if ( ! otherGeometry.boundingBox ) { + + otherGeometry.computeBoundingBox(); + + } + + obb.set( otherGeometry.boundingBox.min, otherGeometry.boundingBox.max, geometryToBvh ); + cachedObb = obb; + + } + + const isLeaf = IS_LEAF( nodeIndex16, uint16Array ); + if ( isLeaf ) { + + const thisGeometry = geometry; + const thisIndex = thisGeometry.index; + const thisPos = thisGeometry.attributes.position; + + const index = otherGeometry.index; + const pos = otherGeometry.attributes.position; + + const offset = OFFSET( nodeIndex32, uint32Array ); + const count = COUNT( nodeIndex16, uint16Array ); + + // get the inverse of the geometry matrix so we can transform our triangles into the + // geometry space we're trying to test. We assume there are fewer triangles being checked + // here. + invertedMat.copy( geometryToBvh ).invert(); + + if ( otherGeometry.boundsTree ) { + + arrayToBox( BOUNDING_DATA_INDEX( nodeIndex32 ), float32Array, obb2 ); + obb2.matrix.copy( invertedMat ); + obb2.needsUpdate = true; + + const res = otherGeometry.boundsTree.shapecast( { + + intersectsBounds: box => obb2.intersectsBox( box ), + + intersectsTriangle: tri => { + + tri.a.applyMatrix4( geometryToBvh ); + tri.b.applyMatrix4( geometryToBvh ); + tri.c.applyMatrix4( geometryToBvh ); + tri.needsUpdate = true; + + for ( let i = offset * 3, l = ( count + offset ) * 3; i < l; i += 3 ) { + + // this triangle needs to be transformed into the current BVH coordinate frame + setTriangle( triangle2, i, thisIndex, thisPos ); + triangle2.needsUpdate = true; + if ( tri.intersectsTriangle( triangle2 ) ) { + + return true; + + } + + } + + return false; + + } + + } ); + + return res; + + } else { + + for ( let i = offset * 3, l = ( count + offset * 3 ); i < l; i += 3 ) { + + // this triangle needs to be transformed into the current BVH coordinate frame + setTriangle( triangle, i, thisIndex, thisPos ); + triangle.a.applyMatrix4( invertedMat ); + triangle.b.applyMatrix4( invertedMat ); + triangle.c.applyMatrix4( invertedMat ); + triangle.needsUpdate = true; + + for ( let i2 = 0, l2 = index.count; i2 < l2; i2 += 3 ) { + + setTriangle( triangle2, i2, index, pos ); + triangle2.needsUpdate = true; + + if ( triangle.intersectsTriangle( triangle2 ) ) { + + return true; + + } + + } } } + } else { + + const left = nodeIndex32 + 8; + const right = uint32Array[ nodeIndex32 + 6 ]; + + arrayToBox( BOUNDING_DATA_INDEX( left ), float32Array, boundingBox ); + const leftIntersection = + cachedObb.intersectsBox( boundingBox ) && + intersectsGeometry( left, geometry, otherGeometry, geometryToBvh, cachedObb ); + + if ( leftIntersection ) return true; + + arrayToBox( BOUNDING_DATA_INDEX( right ), float32Array, boundingBox ); + const rightIntersection = + cachedObb.intersectsBox( boundingBox ) && + intersectsGeometry( right, geometry, otherGeometry, geometryToBvh, cachedObb ); + + if ( rightIntersection ) return true; + + return false; + } - super.updateMatrixWorld( force ); + }; - } +} )(); + +function intersectRay( nodeIndex32, array, ray, target ) { + + arrayToBox( nodeIndex32, array, boundingBox ); + return ray.intersectBox( boundingBox, target ); } -// +const bufferStack = []; +let _prevBuffer; +let _float32Array; +let _uint16Array; +let _uint32Array; +function setBuffer( buffer ) { -class TransformControlsPlane extends Mesh { + if ( _prevBuffer ) { - constructor() { + bufferStack.push( _prevBuffer ); - super( - new PlaneGeometry( 100000, 100000, 2, 2 ), - new MeshBasicMaterial( { visible: false, wireframe: true, side: DoubleSide, transparent: true, opacity: 0.1, toneMapped: false } ) - ); + } - this.isTransformControlsPlane = true; + _prevBuffer = buffer; + _float32Array = new Float32Array( buffer ); + _uint16Array = new Uint16Array( buffer ); + _uint32Array = new Uint32Array( buffer ); - this.type = 'TransformControlsPlane'; +} + +function clearBuffer() { + + _prevBuffer = null; + _float32Array = null; + _uint16Array = null; + _uint32Array = null; + + if ( bufferStack.length ) { + + setBuffer( bufferStack.pop() ); } - updateMatrixWorld( force ) { +} - let space = this.space; +const SKIP_GENERATION = Symbol( 'skip tree generation' ); - this.position.copy( this.worldPosition ); +const aabb = /* @__PURE__ */ new Box3(); +const aabb2 = /* @__PURE__ */ new Box3(); +const tempMatrix = /* @__PURE__ */ new Matrix4(); +const obb = /* @__PURE__ */ new OrientedBox(); +const obb2 = /* @__PURE__ */ new OrientedBox(); +const temp = /* @__PURE__ */ new Vector3$1(); +const temp1 = /* @__PURE__ */ new Vector3$1(); +const temp2 = /* @__PURE__ */ new Vector3$1(); +const temp3 = /* @__PURE__ */ new Vector3$1(); +const temp4 = /* @__PURE__ */ new Vector3$1(); +const tempBox = /* @__PURE__ */ new Box3(); +const trianglePool = /* @__PURE__ */ new PrimitivePool( () => new ExtendedTriangle() ); - if ( this.mode === 'scale' ) space = 'local'; // scale always oriented to local rotation +class MeshBVH { - _v1.copy( _unitX ).applyQuaternion( space === 'local' ? this.worldQuaternion : _identityQuaternion ); - _v2.copy( _unitY ).applyQuaternion( space === 'local' ? this.worldQuaternion : _identityQuaternion ); - _v3.copy( _unitZ ).applyQuaternion( space === 'local' ? this.worldQuaternion : _identityQuaternion ); + static serialize( bvh, options = {} ) { - // Align the plane for current transform mode, axis and space. + if ( options.isBufferGeometry ) { - _alignVector.copy( _v2 ); + console.warn( 'MeshBVH.serialize: The arguments for the function have changed. See documentation for new signature.' ); - switch ( this.mode ) { + return MeshBVH.serialize( + arguments[ 0 ], + { + cloneBuffers: arguments[ 2 ] === undefined ? true : arguments[ 2 ], + } + ); - case 'translate': - case 'scale': - switch ( this.axis ) { + } - case 'X': - _alignVector.copy( this.eye ).cross( _v1 ); - _dirVector.copy( _v1 ).cross( _alignVector ); - break; - case 'Y': - _alignVector.copy( this.eye ).cross( _v2 ); - _dirVector.copy( _v2 ).cross( _alignVector ); - break; - case 'Z': - _alignVector.copy( this.eye ).cross( _v3 ); - _dirVector.copy( _v3 ).cross( _alignVector ); - break; - case 'XY': - _dirVector.copy( _v3 ); - break; - case 'YZ': - _dirVector.copy( _v1 ); - break; - case 'XZ': - _alignVector.copy( _v3 ); - _dirVector.copy( _v2 ); - break; - case 'XYZ': - case 'E': - _dirVector.set( 0, 0, 0 ); - break; + options = { + cloneBuffers: true, + ...options, + }; + + const geometry = bvh.geometry; + const rootData = bvh._roots; + const indexAttribute = geometry.getIndex(); + let result; + if ( options.cloneBuffers ) { + + result = { + roots: rootData.map( root => root.slice() ), + index: indexAttribute.array.slice(), + }; + + } else { + + result = { + roots: rootData, + index: indexAttribute.array, + }; + + } + + return result; + + } + + static deserialize( data, geometry, options = {} ) { + + if ( typeof options === 'boolean' ) { + + console.warn( 'MeshBVH.deserialize: The arguments for the function have changed. See documentation for new signature.' ); + return MeshBVH.deserialize( + arguments[ 0 ], + arguments[ 1 ], + { + setIndex: arguments[ 2 ] === undefined ? true : arguments[ 2 ], } + ); - break; - case 'rotate': - default: - // special case for rotate - _dirVector.set( 0, 0, 0 ); + } + + options = { + setIndex: true, + ...options, + }; + + const { index, roots } = data; + const bvh = new MeshBVH( geometry, { ...options, [ SKIP_GENERATION ]: true } ); + bvh._roots = roots; + + if ( options.setIndex ) { + + const indexAttribute = geometry.getIndex(); + if ( indexAttribute === null ) { + + const newIndex = new BufferAttribute$1( data.index, 1, false ); + geometry.setIndex( newIndex ); + + } else if ( indexAttribute.array !== index ) { + + indexAttribute.array.set( index ); + indexAttribute.needsUpdate = true; + + } } - if ( _dirVector.length() === 0 ) { + return bvh; - // If in rotate mode, make the plane parallel to camera - this.quaternion.copy( this.cameraQuaternion ); + } - } else { + constructor( geometry, options = {} ) { - _tempMatrix.lookAt( _tempVector.set( 0, 0, 0 ), _dirVector, _alignVector ); + if ( ! geometry.isBufferGeometry ) { - this.quaternion.setFromRotationMatrix( _tempMatrix ); + throw new Error( 'MeshBVH: Only BufferGeometries are supported.' ); + + } else if ( geometry.index && geometry.index.isInterleavedBufferAttribute ) { + + throw new Error( 'MeshBVH: InterleavedBufferAttribute is not supported for the index attribute.' ); } - super.updateMatrixWorld( force ); + // default options + options = Object.assign( { + + strategy: CENTER, + maxDepth: 40, + maxLeafTris: 10, + verbose: true, + useSharedArrayBuffer: false, + setBoundingBox: true, + onProgress: null, + + // undocumented options + + // Whether to skip generating the tree. Used for deserialization. + [ SKIP_GENERATION ]: false, + + }, options ); + + if ( options.useSharedArrayBuffer && typeof SharedArrayBuffer === 'undefined' ) { + + throw new Error( 'MeshBVH: SharedArrayBuffer is not available.' ); + + } + + this._roots = null; + if ( ! options[ SKIP_GENERATION ] ) { + + this._roots = buildPackedTree( geometry, options ); + + if ( ! geometry.boundingBox && options.setBoundingBox ) { + + geometry.boundingBox = this.getBoundingBox( new Box3() ); + + } + + } + + // retain references to the geometry so we can use them it without having to + // take a geometry reference in every function. + this.geometry = geometry; } -} + refit( nodeIndices = null ) { -/* - * Dexie.js - a minimalistic wrapper for IndexedDB - * =============================================== - * - * By David Fahlander, david.fahlander@gmail.com - * - * Version 3.2.4, Tue May 30 2023 - * - * https://dexie.org - * - * Apache License Version 2.0, January 2004, http://www.apache.org/licenses/ - */ - -const _global = typeof globalThis !== 'undefined' ? globalThis : - typeof self !== 'undefined' ? self : - typeof window !== 'undefined' ? window : - global; + if ( nodeIndices && Array.isArray( nodeIndices ) ) { + + nodeIndices = new Set( nodeIndices ); + + } + + const geometry = this.geometry; + const indexArr = geometry.index.array; + const posAttr = geometry.attributes.position; + + let buffer, uint32Array, uint16Array, float32Array; + let byteOffset = 0; + const roots = this._roots; + for ( let i = 0, l = roots.length; i < l; i ++ ) { + + buffer = roots[ i ]; + uint32Array = new Uint32Array( buffer ); + uint16Array = new Uint16Array( buffer ); + float32Array = new Float32Array( buffer ); + + _traverse( 0, byteOffset ); + byteOffset += buffer.byteLength; + + } + + function _traverse( node32Index, byteOffset, force = false ) { + + const node16Index = node32Index * 2; + const isLeaf = uint16Array[ node16Index + 15 ] === IS_LEAFNODE_FLAG; + if ( isLeaf ) { + + const offset = uint32Array[ node32Index + 6 ]; + const count = uint16Array[ node16Index + 14 ]; + + let minx = Infinity; + let miny = Infinity; + let minz = Infinity; + let maxx = - Infinity; + let maxy = - Infinity; + let maxz = - Infinity; + + for ( let i = 3 * offset, l = 3 * ( offset + count ); i < l; i ++ ) { + + const index = indexArr[ i ]; + const x = posAttr.getX( index ); + const y = posAttr.getY( index ); + const z = posAttr.getZ( index ); + + if ( x < minx ) minx = x; + if ( x > maxx ) maxx = x; + + if ( y < miny ) miny = y; + if ( y > maxy ) maxy = y; + + if ( z < minz ) minz = z; + if ( z > maxz ) maxz = z; + + } + + if ( + float32Array[ node32Index + 0 ] !== minx || + float32Array[ node32Index + 1 ] !== miny || + float32Array[ node32Index + 2 ] !== minz || + + float32Array[ node32Index + 3 ] !== maxx || + float32Array[ node32Index + 4 ] !== maxy || + float32Array[ node32Index + 5 ] !== maxz + ) { + + float32Array[ node32Index + 0 ] = minx; + float32Array[ node32Index + 1 ] = miny; + float32Array[ node32Index + 2 ] = minz; + + float32Array[ node32Index + 3 ] = maxx; + float32Array[ node32Index + 4 ] = maxy; + float32Array[ node32Index + 5 ] = maxz; + + return true; + + } else { + + return false; + + } + + } else { + + const left = node32Index + 8; + const right = uint32Array[ node32Index + 6 ]; + + // the identifying node indices provided by the shapecast function include offsets of all + // root buffers to guarantee they're unique between roots so offset left and right indices here. + const offsetLeft = left + byteOffset; + const offsetRight = right + byteOffset; + let forceChildren = force; + let includesLeft = false; + let includesRight = false; + + if ( nodeIndices ) { + + // if we see that neither the left or right child are included in the set that need to be updated + // then we assume that all children need to be updated. + if ( ! forceChildren ) { + + includesLeft = nodeIndices.has( offsetLeft ); + includesRight = nodeIndices.has( offsetRight ); + forceChildren = ! includesLeft && ! includesRight; + + } + + } else { + + includesLeft = true; + includesRight = true; + + } + + const traverseLeft = forceChildren || includesLeft; + const traverseRight = forceChildren || includesRight; + + let leftChange = false; + if ( traverseLeft ) { + + leftChange = _traverse( left, byteOffset, forceChildren ); + + } + + let rightChange = false; + if ( traverseRight ) { + + rightChange = _traverse( right, byteOffset, forceChildren ); + + } + + const didChange = leftChange || rightChange; + if ( didChange ) { + + for ( let i = 0; i < 3; i ++ ) { + + const lefti = left + i; + const righti = right + i; + const minLeftValue = float32Array[ lefti ]; + const maxLeftValue = float32Array[ lefti + 3 ]; + const minRightValue = float32Array[ righti ]; + const maxRightValue = float32Array[ righti + 3 ]; + + float32Array[ node32Index + i ] = minLeftValue < minRightValue ? minLeftValue : minRightValue; + float32Array[ node32Index + i + 3 ] = maxLeftValue > maxRightValue ? maxLeftValue : maxRightValue; + + } + + } + + return didChange; + + } + + } + + } + + traverse( callback, rootIndex = 0 ) { + + const buffer = this._roots[ rootIndex ]; + const uint32Array = new Uint32Array( buffer ); + const uint16Array = new Uint16Array( buffer ); + _traverse( 0 ); + + function _traverse( node32Index, depth = 0 ) { + + const node16Index = node32Index * 2; + const isLeaf = uint16Array[ node16Index + 15 ] === IS_LEAFNODE_FLAG; + if ( isLeaf ) { + + const offset = uint32Array[ node32Index + 6 ]; + const count = uint16Array[ node16Index + 14 ]; + callback( depth, isLeaf, new Float32Array( buffer, node32Index * 4, 6 ), offset, count ); + + } else { + + // TODO: use node functions here + const left = node32Index + BYTES_PER_NODE / 4; + const right = uint32Array[ node32Index + 6 ]; + const splitAxis = uint32Array[ node32Index + 7 ]; + const stopTraversal = callback( depth, isLeaf, new Float32Array( buffer, node32Index * 4, 6 ), splitAxis ); + + if ( ! stopTraversal ) { + + _traverse( left, depth + 1 ); + _traverse( right, depth + 1 ); + + } + + } + + } + + } + + /* Core Cast Functions */ + raycast( ray, materialOrSide = FrontSide ) { + + const roots = this._roots; + const geometry = this.geometry; + const intersects = []; + const isMaterial = materialOrSide.isMaterial; + const isArrayMaterial = Array.isArray( materialOrSide ); + + const groups = geometry.groups; + const side = isMaterial ? materialOrSide.side : materialOrSide; + for ( let i = 0, l = roots.length; i < l; i ++ ) { + + const materialSide = isArrayMaterial ? materialOrSide[ groups[ i ].materialIndex ].side : side; + const startCount = intersects.length; + + setBuffer( roots[ i ] ); + raycast( 0, geometry, materialSide, ray, intersects ); + clearBuffer(); + + if ( isArrayMaterial ) { + + const materialIndex = groups[ i ].materialIndex; + for ( let j = startCount, jl = intersects.length; j < jl; j ++ ) { + + intersects[ j ].face.materialIndex = materialIndex; + + } + + } + + } + + return intersects; + + } + + raycastFirst( ray, materialOrSide = FrontSide ) { + + const roots = this._roots; + const geometry = this.geometry; + const isMaterial = materialOrSide.isMaterial; + const isArrayMaterial = Array.isArray( materialOrSide ); + + let closestResult = null; + + const groups = geometry.groups; + const side = isMaterial ? materialOrSide.side : materialOrSide; + for ( let i = 0, l = roots.length; i < l; i ++ ) { + + const materialSide = isArrayMaterial ? materialOrSide[ groups[ i ].materialIndex ].side : side; + + setBuffer( roots[ i ] ); + const result = raycastFirst( 0, geometry, materialSide, ray ); + clearBuffer(); + + if ( result != null && ( closestResult == null || result.distance < closestResult.distance ) ) { + + closestResult = result; + if ( isArrayMaterial ) { + + result.face.materialIndex = groups[ i ].materialIndex; + + } + + } + + } + + return closestResult; + + } + + intersectsGeometry( otherGeometry, geomToMesh ) { + + const geometry = this.geometry; + let result = false; + for ( const root of this._roots ) { + + setBuffer( root ); + result = intersectsGeometry( 0, geometry, otherGeometry, geomToMesh ); + clearBuffer(); + + if ( result ) { + + break; + + } + + } + + return result; + + } + + shapecast( callbacks, _intersectsTriangleFunc, _orderNodesFunc ) { + + const geometry = this.geometry; + if ( callbacks instanceof Function ) { + + if ( _intersectsTriangleFunc ) { + + // Support the previous function signature that provided three sequential index buffer + // indices here. + const originalTriangleFunc = _intersectsTriangleFunc; + _intersectsTriangleFunc = ( tri, index, contained, depth ) => { + + const i3 = index * 3; + return originalTriangleFunc( tri, i3, i3 + 1, i3 + 2, contained, depth ); + + }; + + + } + + callbacks = { + + boundsTraverseOrder: _orderNodesFunc, + intersectsBounds: callbacks, + intersectsTriangle: _intersectsTriangleFunc, + intersectsRange: null, + + }; + + console.warn( 'MeshBVH: Shapecast function signature has changed and now takes an object of callbacks as a second argument. See docs for new signature.' ); + + } + + const triangle = trianglePool.getPrimitive(); + let { + boundsTraverseOrder, + intersectsBounds, + intersectsRange, + intersectsTriangle, + } = callbacks; + + if ( intersectsRange && intersectsTriangle ) { + + const originalIntersectsRange = intersectsRange; + intersectsRange = ( offset, count, contained, depth, nodeIndex ) => { + + if ( ! originalIntersectsRange( offset, count, contained, depth, nodeIndex ) ) { + + return iterateOverTriangles( offset, count, geometry, intersectsTriangle, contained, depth, triangle ); + + } + + return true; + + }; + + } else if ( ! intersectsRange ) { + + if ( intersectsTriangle ) { + + intersectsRange = ( offset, count, contained, depth ) => { + + return iterateOverTriangles( offset, count, geometry, intersectsTriangle, contained, depth, triangle ); + + }; + + } else { + + intersectsRange = ( offset, count, contained ) => { + + return contained; + + }; + + } + + } + + let result = false; + let byteOffset = 0; + for ( const root of this._roots ) { + + setBuffer( root ); + result = shapecast( 0, geometry, intersectsBounds, intersectsRange, boundsTraverseOrder, byteOffset ); + clearBuffer(); + + if ( result ) { + + break; + + } + + byteOffset += root.byteLength; + + } + + trianglePool.releasePrimitive( triangle ); + + return result; + + } + + bvhcast( otherBvh, matrixToLocal, callbacks ) { + + // BVHCast function for intersecting two BVHs against each other. Ultimately just uses two recursive shapecast calls rather + // than an approach that walks down the tree (see bvhcast.js file for more info). + + let { + intersectsRanges, + intersectsTriangles, + } = callbacks; + + const indexAttr = this.geometry.index; + const positionAttr = this.geometry.attributes.position; + + const otherIndexAttr = otherBvh.geometry.index; + const otherPositionAttr = otherBvh.geometry.attributes.position; + + tempMatrix.copy( matrixToLocal ).invert(); + + const triangle = trianglePool.getPrimitive(); + const triangle2 = trianglePool.getPrimitive(); + + if ( intersectsTriangles ) { + + function iterateOverDoubleTriangles( offset1, count1, offset2, count2, depth1, index1, depth2, index2 ) { + + for ( let i2 = offset2, l2 = offset2 + count2; i2 < l2; i2 ++ ) { + + setTriangle( triangle2, i2 * 3, otherIndexAttr, otherPositionAttr ); + triangle2.a.applyMatrix4( matrixToLocal ); + triangle2.b.applyMatrix4( matrixToLocal ); + triangle2.c.applyMatrix4( matrixToLocal ); + triangle2.needsUpdate = true; + + for ( let i1 = offset1, l1 = offset1 + count1; i1 < l1; i1 ++ ) { + + setTriangle( triangle, i1 * 3, indexAttr, positionAttr ); + triangle.needsUpdate = true; + + if ( intersectsTriangles( triangle, triangle2, i1, i2, depth1, index1, depth2, index2 ) ) { + + return true; + + } + + } + + } + + return false; + + } + + if ( intersectsRanges ) { + + const originalIntersectsRanges = intersectsRanges; + intersectsRanges = function ( offset1, count1, offset2, count2, depth1, index1, depth2, index2 ) { + + if ( ! originalIntersectsRanges( offset1, count1, offset2, count2, depth1, index1, depth2, index2 ) ) { + + return iterateOverDoubleTriangles( offset1, count1, offset2, count2, depth1, index1, depth2, index2 ); + + } + + return true; + + }; + + } else { + + intersectsRanges = iterateOverDoubleTriangles; + + } + + } + + otherBvh.getBoundingBox( aabb2 ); + aabb2.applyMatrix4( matrixToLocal ); + const result = this.shapecast( { + + intersectsBounds: box => aabb2.intersectsBox( box ), + + intersectsRange: ( offset1, count1, contained, depth1, nodeIndex1, box ) => { + + aabb.copy( box ); + aabb.applyMatrix4( tempMatrix ); + return otherBvh.shapecast( { + + intersectsBounds: box => aabb.intersectsBox( box ), + + intersectsRange: ( offset2, count2, contained, depth2, nodeIndex2 ) => { + + return intersectsRanges( offset1, count1, offset2, count2, depth1, nodeIndex1, depth2, nodeIndex2 ); + + }, + + } ); + + } + + } ); + + trianglePool.releasePrimitive( triangle ); + trianglePool.releasePrimitive( triangle2 ); + return result; + + } + + /* Derived Cast Functions */ + intersectsBox( box, boxToMesh ) { + + obb.set( box.min, box.max, boxToMesh ); + obb.needsUpdate = true; + + return this.shapecast( + { + intersectsBounds: box => obb.intersectsBox( box ), + intersectsTriangle: tri => obb.intersectsTriangle( tri ) + } + ); + + } + + intersectsSphere( sphere ) { + + return this.shapecast( + { + intersectsBounds: box => sphere.intersectsBox( box ), + intersectsTriangle: tri => tri.intersectsSphere( sphere ) + } + ); + + } + + closestPointToGeometry( otherGeometry, geometryToBvh, target1 = { }, target2 = { }, minThreshold = 0, maxThreshold = Infinity ) { + + if ( ! otherGeometry.boundingBox ) { + + otherGeometry.computeBoundingBox(); + + } + + obb.set( otherGeometry.boundingBox.min, otherGeometry.boundingBox.max, geometryToBvh ); + obb.needsUpdate = true; + + const geometry = this.geometry; + const pos = geometry.attributes.position; + const index = geometry.index; + const otherPos = otherGeometry.attributes.position; + const otherIndex = otherGeometry.index; + const triangle = trianglePool.getPrimitive(); + const triangle2 = trianglePool.getPrimitive(); + + let tempTarget1 = temp1; + let tempTargetDest1 = temp2; + let tempTarget2 = null; + let tempTargetDest2 = null; + + if ( target2 ) { + + tempTarget2 = temp3; + tempTargetDest2 = temp4; + + } + + let closestDistance = Infinity; + let closestDistanceTriIndex = null; + let closestDistanceOtherTriIndex = null; + tempMatrix.copy( geometryToBvh ).invert(); + obb2.matrix.copy( tempMatrix ); + this.shapecast( + { + + boundsTraverseOrder: box => { + + return obb.distanceToBox( box ); + + }, + + intersectsBounds: ( box, isLeaf, score ) => { + + if ( score < closestDistance && score < maxThreshold ) { + + // if we know the triangles of this bounds will be intersected next then + // save the bounds to use during triangle checks. + if ( isLeaf ) { + + obb2.min.copy( box.min ); + obb2.max.copy( box.max ); + obb2.needsUpdate = true; + + } + + return true; + + } + + return false; + + }, + + intersectsRange: ( offset, count ) => { + + if ( otherGeometry.boundsTree ) { + + // if the other geometry has a bvh then use the accelerated path where we use shapecast to find + // the closest bounds in the other geometry to check. + return otherGeometry.boundsTree.shapecast( { + boundsTraverseOrder: box => { + + return obb2.distanceToBox( box ); + + }, + + intersectsBounds: ( box, isLeaf, score ) => { + + return score < closestDistance && score < maxThreshold; + + }, + + intersectsRange: ( otherOffset, otherCount ) => { + + for ( let i2 = otherOffset * 3, l2 = ( otherOffset + otherCount ) * 3; i2 < l2; i2 += 3 ) { + + setTriangle( triangle2, i2, otherIndex, otherPos ); + triangle2.a.applyMatrix4( geometryToBvh ); + triangle2.b.applyMatrix4( geometryToBvh ); + triangle2.c.applyMatrix4( geometryToBvh ); + triangle2.needsUpdate = true; + + for ( let i = offset * 3, l = ( offset + count ) * 3; i < l; i += 3 ) { + + setTriangle( triangle, i, index, pos ); + triangle.needsUpdate = true; + + const dist = triangle.distanceToTriangle( triangle2, tempTarget1, tempTarget2 ); + if ( dist < closestDistance ) { + + tempTargetDest1.copy( tempTarget1 ); + + if ( tempTargetDest2 ) { + + tempTargetDest2.copy( tempTarget2 ); + + } + + closestDistance = dist; + closestDistanceTriIndex = i / 3; + closestDistanceOtherTriIndex = i2 / 3; + + } + + // stop traversal if we find a point that's under the given threshold + if ( dist < minThreshold ) { + + return true; + + } + + } + + } + + }, + } ); + + } else { + + // If no bounds tree then we'll just check every triangle. + const triCount = otherIndex ? otherIndex.count : otherPos.count; + for ( let i2 = 0, l2 = triCount; i2 < l2; i2 += 3 ) { + + setTriangle( triangle2, i2, otherIndex, otherPos ); + triangle2.a.applyMatrix4( geometryToBvh ); + triangle2.b.applyMatrix4( geometryToBvh ); + triangle2.c.applyMatrix4( geometryToBvh ); + triangle2.needsUpdate = true; + + for ( let i = offset * 3, l = ( offset + count ) * 3; i < l; i += 3 ) { + + setTriangle( triangle, i, index, pos ); + triangle.needsUpdate = true; + + const dist = triangle.distanceToTriangle( triangle2, tempTarget1, tempTarget2 ); + if ( dist < closestDistance ) { + + tempTargetDest1.copy( tempTarget1 ); + + if ( tempTargetDest2 ) { + + tempTargetDest2.copy( tempTarget2 ); + + } + + closestDistance = dist; + closestDistanceTriIndex = i / 3; + closestDistanceOtherTriIndex = i2 / 3; + + } + + // stop traversal if we find a point that's under the given threshold + if ( dist < minThreshold ) { + + return true; + + } + + } + + } + + } + + }, + + } + + ); + + trianglePool.releasePrimitive( triangle ); + trianglePool.releasePrimitive( triangle2 ); + + if ( closestDistance === Infinity ) return null; + + if ( ! target1.point ) target1.point = tempTargetDest1.clone(); + else target1.point.copy( tempTargetDest1 ); + target1.distance = closestDistance, + target1.faceIndex = closestDistanceTriIndex; + + if ( target2 ) { + + if ( ! target2.point ) target2.point = tempTargetDest2.clone(); + else target2.point.copy( tempTargetDest2 ); + target2.point.applyMatrix4( tempMatrix ); + tempTargetDest1.applyMatrix4( tempMatrix ); + target2.distance = tempTargetDest1.sub( target2.point ).length(); + target2.faceIndex = closestDistanceOtherTriIndex; + + } + + return target1; + + } + + closestPointToPoint( point, target = { }, minThreshold = 0, maxThreshold = Infinity ) { + + // early out if under minThreshold + // skip checking if over maxThreshold + // set minThreshold = maxThreshold to quickly check if a point is within a threshold + // returns Infinity if no value found + const minThresholdSq = minThreshold * minThreshold; + const maxThresholdSq = maxThreshold * maxThreshold; + let closestDistanceSq = Infinity; + let closestDistanceTriIndex = null; + this.shapecast( + + { + + boundsTraverseOrder: box => { + + temp.copy( point ).clamp( box.min, box.max ); + return temp.distanceToSquared( point ); + + }, + + intersectsBounds: ( box, isLeaf, score ) => { + + return score < closestDistanceSq && score < maxThresholdSq; + + }, + + intersectsTriangle: ( tri, triIndex ) => { + + tri.closestPointToPoint( point, temp ); + const distSq = point.distanceToSquared( temp ); + if ( distSq < closestDistanceSq ) { + + temp1.copy( temp ); + closestDistanceSq = distSq; + closestDistanceTriIndex = triIndex; + + } + + if ( distSq < minThresholdSq ) { + + return true; + + } else { + + return false; + + } + + }, + + } + + ); + + if ( closestDistanceSq === Infinity ) return null; + + const closestDistance = Math.sqrt( closestDistanceSq ); + + if ( ! target.point ) target.point = temp1.clone(); + else target.point.copy( temp1 ); + target.distance = closestDistance, + target.faceIndex = closestDistanceTriIndex; + + return target; + + } + + getBoundingBox( target ) { + + target.makeEmpty(); + + const roots = this._roots; + roots.forEach( buffer => { + + arrayToBox( 0, new Float32Array( buffer ), tempBox ); + target.union( tempBox ); + + } ); + + return target; + + } -const keys = Object.keys; -const isArray = Array.isArray; -if (typeof Promise !== 'undefined' && !_global.Promise) { - _global.Promise = Promise; -} -function extend(obj, extension) { - if (typeof extension !== 'object') - return obj; - keys(extension).forEach(function (key) { - obj[key] = extension[key]; - }); - return obj; -} -const getProto = Object.getPrototypeOf; -const _hasOwn = {}.hasOwnProperty; -function hasOwn(obj, prop) { - return _hasOwn.call(obj, prop); -} -function props(proto, extension) { - if (typeof extension === 'function') - extension = extension(getProto(proto)); - (typeof Reflect === "undefined" ? keys : Reflect.ownKeys)(extension).forEach(key => { - setProp(proto, key, extension[key]); - }); -} -const defineProperty = Object.defineProperty; -function setProp(obj, prop, functionOrGetSet, options) { - defineProperty(obj, prop, extend(functionOrGetSet && hasOwn(functionOrGetSet, "get") && typeof functionOrGetSet.get === 'function' ? - { get: functionOrGetSet.get, set: functionOrGetSet.set, configurable: true } : - { value: functionOrGetSet, configurable: true, writable: true }, options)); -} -function derive(Child) { - return { - from: function (Parent) { - Child.prototype = Object.create(Parent.prototype); - setProp(Child.prototype, "constructor", Child); - return { - extend: props.bind(null, Child.prototype) - }; - } - }; -} -const getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; -function getPropertyDescriptor(obj, prop) { - const pd = getOwnPropertyDescriptor(obj, prop); - let proto; - return pd || (proto = getProto(obj)) && getPropertyDescriptor(proto, prop); -} -const _slice = [].slice; -function slice(args, start, end) { - return _slice.call(args, start, end); -} -function override(origFunc, overridedFactory) { - return overridedFactory(origFunc); -} -function assert(b) { - if (!b) - throw new Error("Assertion Failed"); -} -function asap$1(fn) { - if (_global.setImmediate) - setImmediate(fn); - else - setTimeout(fn, 0); -} -function arrayToObject(array, extractor) { - return array.reduce((result, item, i) => { - var nameAndValue = extractor(item, i); - if (nameAndValue) - result[nameAndValue[0]] = nameAndValue[1]; - return result; - }, {}); -} -function tryCatch(fn, onerror, args) { - try { - fn.apply(null, args); - } - catch (ex) { - onerror && onerror(ex); - } -} -function getByKeyPath(obj, keyPath) { - if (hasOwn(obj, keyPath)) - return obj[keyPath]; - if (!keyPath) - return obj; - if (typeof keyPath !== 'string') { - var rv = []; - for (var i = 0, l = keyPath.length; i < l; ++i) { - var val = getByKeyPath(obj, keyPath[i]); - rv.push(val); - } - return rv; - } - var period = keyPath.indexOf('.'); - if (period !== -1) { - var innerObj = obj[keyPath.substr(0, period)]; - return innerObj === undefined ? undefined : getByKeyPath(innerObj, keyPath.substr(period + 1)); - } - return undefined; } -function setByKeyPath(obj, keyPath, value) { - if (!obj || keyPath === undefined) - return; - if ('isFrozen' in Object && Object.isFrozen(obj)) - return; - if (typeof keyPath !== 'string' && 'length' in keyPath) { - assert(typeof value !== 'string' && 'length' in value); - for (var i = 0, l = keyPath.length; i < l; ++i) { - setByKeyPath(obj, keyPath[i], value[i]); - } - } - else { - var period = keyPath.indexOf('.'); - if (period !== -1) { - var currentKeyPath = keyPath.substr(0, period); - var remainingKeyPath = keyPath.substr(period + 1); - if (remainingKeyPath === "") - if (value === undefined) { - if (isArray(obj) && !isNaN(parseInt(currentKeyPath))) - obj.splice(currentKeyPath, 1); - else - delete obj[currentKeyPath]; - } - else - obj[currentKeyPath] = value; - else { - var innerObj = obj[currentKeyPath]; - if (!innerObj || !hasOwn(obj, currentKeyPath)) - innerObj = (obj[currentKeyPath] = {}); - setByKeyPath(innerObj, remainingKeyPath, value); - } - } - else { - if (value === undefined) { - if (isArray(obj) && !isNaN(parseInt(keyPath))) - obj.splice(keyPath, 1); - else - delete obj[keyPath]; - } - else - obj[keyPath] = value; - } - } + +const ray = /* @__PURE__ */ new Ray(); +const tmpInverseMatrix = /* @__PURE__ */ new Matrix4(); +const origMeshRaycastFunc = Mesh.prototype.raycast; + +function acceleratedRaycast( raycaster, intersects ) { + + if ( this.geometry.boundsTree ) { + + if ( this.material === undefined ) return; + + tmpInverseMatrix.copy( this.matrixWorld ).invert(); + ray.copy( raycaster.ray ).applyMatrix4( tmpInverseMatrix ); + + const bvh = this.geometry.boundsTree; + if ( raycaster.firstHitOnly === true ) { + + const hit = convertRaycastIntersect( bvh.raycastFirst( ray, this.material ), this, raycaster ); + if ( hit ) { + + intersects.push( hit ); + + } + + } else { + + const hits = bvh.raycast( ray, this.material ); + for ( let i = 0, l = hits.length; i < l; i ++ ) { + + const hit = convertRaycastIntersect( hits[ i ], this, raycaster ); + if ( hit ) { + + intersects.push( hit ); + + } + + } + + } + + } else { + + origMeshRaycastFunc.call( this, raycaster, intersects ); + + } + } -function delByKeyPath(obj, keyPath) { - if (typeof keyPath === 'string') - setByKeyPath(obj, keyPath, undefined); - else if ('length' in keyPath) - [].map.call(keyPath, function (kp) { - setByKeyPath(obj, kp, undefined); - }); + +function computeBoundsTree( options ) { + + this.boundsTree = new MeshBVH( this, options ); + return this.boundsTree; + } -function shallowClone(obj) { - var rv = {}; - for (var m in obj) { - if (hasOwn(obj, m)) - rv[m] = obj[m]; - } - return rv; + +function disposeBoundsTree() { + + this.boundsTree = null; + } -const concat = [].concat; -function flatten(a) { - return concat.apply([], a); + +var top = 'top'; +var bottom = 'bottom'; +var right = 'right'; +var left = 'left'; +var auto = 'auto'; +var basePlacements = [top, bottom, right, left]; +var start = 'start'; +var end = 'end'; +var clippingParents = 'clippingParents'; +var viewport = 'viewport'; +var popper = 'popper'; +var reference = 'reference'; +var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) { + return acc.concat([placement + "-" + start, placement + "-" + end]); +}, []); +var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) { + return acc.concat([placement, placement + "-" + start, placement + "-" + end]); +}, []); // modifiers that need to read the DOM + +var beforeRead = 'beforeRead'; +var read = 'read'; +var afterRead = 'afterRead'; // pure-logic modifiers + +var beforeMain = 'beforeMain'; +var main = 'main'; +var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state) + +var beforeWrite = 'beforeWrite'; +var write = 'write'; +var afterWrite = 'afterWrite'; +var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite]; + +function getNodeName(element) { + return element ? (element.nodeName || '').toLowerCase() : null; } -const intrinsicTypeNames = "Boolean,String,Date,RegExp,Blob,File,FileList,FileSystemFileHandle,ArrayBuffer,DataView,Uint8ClampedArray,ImageBitmap,ImageData,Map,Set,CryptoKey" - .split(',').concat(flatten([8, 16, 32, 64].map(num => ["Int", "Uint", "Float"].map(t => t + num + "Array")))).filter(t => _global[t]); -const intrinsicTypes = intrinsicTypeNames.map(t => _global[t]); -arrayToObject(intrinsicTypeNames, x => [x, true]); -let circularRefs = null; -function deepClone(any) { - circularRefs = typeof WeakMap !== 'undefined' && new WeakMap(); - const rv = innerDeepClone(any); - circularRefs = null; - return rv; + +function getWindow(node) { + if (node == null) { + return window; + } + + if (node.toString() !== '[object Window]') { + var ownerDocument = node.ownerDocument; + return ownerDocument ? ownerDocument.defaultView || window : window; + } + + return node; } -function innerDeepClone(any) { - if (!any || typeof any !== 'object') - return any; - let rv = circularRefs && circularRefs.get(any); - if (rv) - return rv; - if (isArray(any)) { - rv = []; - circularRefs && circularRefs.set(any, rv); - for (var i = 0, l = any.length; i < l; ++i) { - rv.push(innerDeepClone(any[i])); - } - } - else if (intrinsicTypes.indexOf(any.constructor) >= 0) { - rv = any; - } - else { - const proto = getProto(any); - rv = proto === Object.prototype ? {} : Object.create(proto); - circularRefs && circularRefs.set(any, rv); - for (var prop in any) { - if (hasOwn(any, prop)) { - rv[prop] = innerDeepClone(any[prop]); - } - } - } - return rv; + +function isElement(node) { + var OwnElement = getWindow(node).Element; + return node instanceof OwnElement || node instanceof Element; } -const { toString } = {}; -function toStringTag(o) { - return toString.call(o).slice(8, -1); + +function isHTMLElement(node) { + var OwnElement = getWindow(node).HTMLElement; + return node instanceof OwnElement || node instanceof HTMLElement; } -const iteratorSymbol = typeof Symbol !== 'undefined' ? - Symbol.iterator : - '@@iterator'; -const getIteratorOf = typeof iteratorSymbol === "symbol" ? function (x) { - var i; - return x != null && (i = x[iteratorSymbol]) && i.apply(x); -} : function () { return null; }; -const NO_CHAR_ARRAY = {}; -function getArrayOf(arrayLike) { - var i, a, x, it; - if (arguments.length === 1) { - if (isArray(arrayLike)) - return arrayLike.slice(); - if (this === NO_CHAR_ARRAY && typeof arrayLike === 'string') - return [arrayLike]; - if ((it = getIteratorOf(arrayLike))) { - a = []; - while ((x = it.next()), !x.done) - a.push(x.value); - return a; - } - if (arrayLike == null) - return [arrayLike]; - i = arrayLike.length; - if (typeof i === 'number') { - a = new Array(i); - while (i--) - a[i] = arrayLike[i]; - return a; - } - return [arrayLike]; - } - i = arguments.length; - a = new Array(i); - while (i--) - a[i] = arguments[i]; - return a; + +function isShadowRoot(node) { + // IE 11 has no ShadowRoot + if (typeof ShadowRoot === 'undefined') { + return false; + } + + var OwnElement = getWindow(node).ShadowRoot; + return node instanceof OwnElement || node instanceof ShadowRoot; } -const isAsyncFunction = typeof Symbol !== 'undefined' - ? (fn) => fn[Symbol.toStringTag] === 'AsyncFunction' - : () => false; -var debug = typeof location !== 'undefined' && - /^(http|https):\/\/(localhost|127\.0\.0\.1)/.test(location.href); -function setDebug(value, filter) { - debug = value; - libraryFilter = filter; +// and applies them to the HTMLElements such as popper and arrow + +function applyStyles(_ref) { + var state = _ref.state; + Object.keys(state.elements).forEach(function (name) { + var style = state.styles[name] || {}; + var attributes = state.attributes[name] || {}; + var element = state.elements[name]; // arrow is optional + virtual elements + + if (!isHTMLElement(element) || !getNodeName(element)) { + return; + } // Flow doesn't support to extend this property, but it's the most + // effective way to apply styles to an HTMLElement + // $FlowFixMe[cannot-write] + + + Object.assign(element.style, style); + Object.keys(attributes).forEach(function (name) { + var value = attributes[name]; + + if (value === false) { + element.removeAttribute(name); + } else { + element.setAttribute(name, value === true ? '' : value); + } + }); + }); } -var libraryFilter = () => true; -const NEEDS_THROW_FOR_STACK = !new Error("").stack; -function getErrorWithStack() { - if (NEEDS_THROW_FOR_STACK) - try { - getErrorWithStack.arguments; - throw new Error(); - } - catch (e) { - return e; - } - return new Error(); + +function effect$2(_ref2) { + var state = _ref2.state; + var initialStyles = { + popper: { + position: state.options.strategy, + left: '0', + top: '0', + margin: '0' + }, + arrow: { + position: 'absolute' + }, + reference: {} + }; + Object.assign(state.elements.popper.style, initialStyles.popper); + state.styles = initialStyles; + + if (state.elements.arrow) { + Object.assign(state.elements.arrow.style, initialStyles.arrow); + } + + return function () { + Object.keys(state.elements).forEach(function (name) { + var element = state.elements[name]; + var attributes = state.attributes[name] || {}; + var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them + + var style = styleProperties.reduce(function (style, property) { + style[property] = ''; + return style; + }, {}); // arrow is optional + virtual elements + + if (!isHTMLElement(element) || !getNodeName(element)) { + return; + } + + Object.assign(element.style, style); + Object.keys(attributes).forEach(function (attribute) { + element.removeAttribute(attribute); + }); + }); + }; +} // eslint-disable-next-line import/no-unused-modules + + +var applyStyles$1 = { + name: 'applyStyles', + enabled: true, + phase: 'write', + fn: applyStyles, + effect: effect$2, + requires: ['computeStyles'] +}; + +function getBasePlacement(placement) { + return placement.split('-')[0]; } -function prettyStack(exception, numIgnoredFrames) { - var stack = exception.stack; - if (!stack) - return ""; - numIgnoredFrames = (numIgnoredFrames || 0); - if (stack.indexOf(exception.name) === 0) - numIgnoredFrames += (exception.name + exception.message).split('\n').length; - return stack.split('\n') - .slice(numIgnoredFrames) - .filter(libraryFilter) - .map(frame => "\n" + frame) - .join(''); + +var max = Math.max; +var min = Math.min; +var round = Math.round; + +function getUAString() { + var uaData = navigator.userAgentData; + + if (uaData != null && uaData.brands && Array.isArray(uaData.brands)) { + return uaData.brands.map(function (item) { + return item.brand + "/" + item.version; + }).join(' '); + } + + return navigator.userAgent; } -var dexieErrorNames = [ - 'Modify', - 'Bulk', - 'OpenFailed', - 'VersionChange', - 'Schema', - 'Upgrade', - 'InvalidTable', - 'MissingAPI', - 'NoSuchDatabase', - 'InvalidArgument', - 'SubTransaction', - 'Unsupported', - 'Internal', - 'DatabaseClosed', - 'PrematureCommit', - 'ForeignAwait' -]; -var idbDomErrorNames = [ - 'Unknown', - 'Constraint', - 'Data', - 'TransactionInactive', - 'ReadOnly', - 'Version', - 'NotFound', - 'InvalidState', - 'InvalidAccess', - 'Abort', - 'Timeout', - 'QuotaExceeded', - 'Syntax', - 'DataClone' -]; -var errorList = dexieErrorNames.concat(idbDomErrorNames); -var defaultTexts = { - VersionChanged: "Database version changed by other database connection", - DatabaseClosed: "Database has been closed", - Abort: "Transaction aborted", - TransactionInactive: "Transaction has already completed or failed", - MissingAPI: "IndexedDB API missing. Please visit https://tinyurl.com/y2uuvskb" -}; -function DexieError(name, msg) { - this._e = getErrorWithStack(); - this.name = name; - this.message = msg; +function isLayoutViewport() { + return !/^((?!chrome|android).)*safari/i.test(getUAString()); } -derive(DexieError).from(Error).extend({ - stack: { - get: function () { - return this._stack || - (this._stack = this.name + ": " + this.message + prettyStack(this._e, 2)); - } - }, - toString: function () { return this.name + ": " + this.message; } -}); -function getMultiErrorMessage(msg, failures) { - return msg + ". Errors: " + Object.keys(failures) - .map(key => failures[key].toString()) - .filter((v, i, s) => s.indexOf(v) === i) - .join('\n'); + +function getBoundingClientRect(element, includeScale, isFixedStrategy) { + if (includeScale === void 0) { + includeScale = false; + } + + if (isFixedStrategy === void 0) { + isFixedStrategy = false; + } + + var clientRect = element.getBoundingClientRect(); + var scaleX = 1; + var scaleY = 1; + + if (includeScale && isHTMLElement(element)) { + scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1; + scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1; + } + + var _ref = isElement(element) ? getWindow(element) : window, + visualViewport = _ref.visualViewport; + + var addVisualOffsets = !isLayoutViewport() && isFixedStrategy; + var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX; + var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY; + var width = clientRect.width / scaleX; + var height = clientRect.height / scaleY; + return { + width: width, + height: height, + top: y, + right: x + width, + bottom: y + height, + left: x, + x: x, + y: y + }; } -function ModifyError(msg, failures, successCount, failedKeys) { - this._e = getErrorWithStack(); - this.failures = failures; - this.failedKeys = failedKeys; - this.successCount = successCount; - this.message = getMultiErrorMessage(msg, failures); + +// means it doesn't take into account transforms. + +function getLayoutRect(element) { + var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed. + // Fixes https://github.com/popperjs/popper-core/issues/1223 + + var width = element.offsetWidth; + var height = element.offsetHeight; + + if (Math.abs(clientRect.width - width) <= 1) { + width = clientRect.width; + } + + if (Math.abs(clientRect.height - height) <= 1) { + height = clientRect.height; + } + + return { + x: element.offsetLeft, + y: element.offsetTop, + width: width, + height: height + }; } -derive(ModifyError).from(DexieError); -function BulkError(msg, failures) { - this._e = getErrorWithStack(); - this.name = "BulkError"; - this.failures = Object.keys(failures).map(pos => failures[pos]); - this.failuresByPos = failures; - this.message = getMultiErrorMessage(msg, failures); + +function contains(parent, child) { + var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method + + if (parent.contains(child)) { + return true; + } // then fallback to custom implementation with Shadow DOM support + else if (rootNode && isShadowRoot(rootNode)) { + var next = child; + + do { + if (next && parent.isSameNode(next)) { + return true; + } // $FlowFixMe[prop-missing]: need a better way to handle this... + + + next = next.parentNode || next.host; + } while (next); + } // Give up, the result is false + + + return false; } -derive(BulkError).from(DexieError); -var errnames = errorList.reduce((obj, name) => (obj[name] = name + "Error", obj), {}); -const BaseException = DexieError; -var exceptions = errorList.reduce((obj, name) => { - var fullName = name + "Error"; - function DexieError(msgOrInner, inner) { - this._e = getErrorWithStack(); - this.name = fullName; - if (!msgOrInner) { - this.message = defaultTexts[name] || fullName; - this.inner = null; - } - else if (typeof msgOrInner === 'string') { - this.message = `${msgOrInner}${!inner ? '' : '\n ' + inner}`; - this.inner = inner || null; - } - else if (typeof msgOrInner === 'object') { - this.message = `${msgOrInner.name} ${msgOrInner.message}`; - this.inner = msgOrInner; - } + +function getComputedStyle(element) { + return getWindow(element).getComputedStyle(element); +} + +function isTableElement(element) { + return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0; +} + +function getDocumentElement(element) { + // $FlowFixMe[incompatible-return]: assume body is always available + return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing] + element.document) || window.document).documentElement; +} + +function getParentNode(element) { + if (getNodeName(element) === 'html') { + return element; + } + + return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle + // $FlowFixMe[incompatible-return] + // $FlowFixMe[prop-missing] + element.assignedSlot || // step into the shadow DOM of the parent of a slotted node + element.parentNode || ( // DOM Element detected + isShadowRoot(element) ? element.host : null) || // ShadowRoot detected + // $FlowFixMe[incompatible-call]: HTMLElement is a Node + getDocumentElement(element) // fallback + + ); +} + +function getTrueOffsetParent(element) { + if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837 + getComputedStyle(element).position === 'fixed') { + return null; + } + + return element.offsetParent; +} // `.offsetParent` reports `null` for fixed elements, while absolute elements +// return the containing block + + +function getContainingBlock(element) { + var isFirefox = /firefox/i.test(getUAString()); + var isIE = /Trident/i.test(getUAString()); + + if (isIE && isHTMLElement(element)) { + // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport + var elementCss = getComputedStyle(element); + + if (elementCss.position === 'fixed') { + return null; } - derive(DexieError).from(BaseException); - obj[name] = DexieError; - return obj; -}, {}); -exceptions.Syntax = SyntaxError; -exceptions.Type = TypeError; -exceptions.Range = RangeError; -var exceptionMap = idbDomErrorNames.reduce((obj, name) => { - obj[name + "Error"] = exceptions[name]; - return obj; -}, {}); -function mapError(domError, message) { - if (!domError || domError instanceof DexieError || domError instanceof TypeError || domError instanceof SyntaxError || !domError.name || !exceptionMap[domError.name]) - return domError; - var rv = new exceptionMap[domError.name](message || domError.message, domError); - if ("stack" in domError) { - setProp(rv, "stack", { get: function () { - return this.inner.stack; - } }); + } + + var currentNode = getParentNode(element); + + if (isShadowRoot(currentNode)) { + currentNode = currentNode.host; + } + + while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) { + var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that + // create a containing block. + // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block + + if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') { + return currentNode; + } else { + currentNode = currentNode.parentNode; } - return rv; -} -var fullNameExceptions = errorList.reduce((obj, name) => { - if (["Syntax", "Type", "Range"].indexOf(name) === -1) - obj[name + "Error"] = exceptions[name]; - return obj; -}, {}); -fullNameExceptions.ModifyError = ModifyError; -fullNameExceptions.DexieError = DexieError; -fullNameExceptions.BulkError = BulkError; + } -function nop() { } -function mirror(val) { return val; } -function pureFunctionChain(f1, f2) { - if (f1 == null || f1 === mirror) - return f2; - return function (val) { - return f2(f1(val)); - }; + return null; +} // Gets the closest ancestor positioned element. Handles some edge cases, +// such as table ancestors and cross browser bugs. + + +function getOffsetParent(element) { + var window = getWindow(element); + var offsetParent = getTrueOffsetParent(element); + + while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') { + offsetParent = getTrueOffsetParent(offsetParent); + } + + if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) { + return window; + } + + return offsetParent || getContainingBlock(element) || window; } -function callBoth(on1, on2) { - return function () { - on1.apply(this, arguments); - on2.apply(this, arguments); - }; + +function getMainAxisFromPlacement(placement) { + return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y'; } -function hookCreatingChain(f1, f2) { - if (f1 === nop) - return f2; - return function () { - var res = f1.apply(this, arguments); - if (res !== undefined) - arguments[0] = res; - var onsuccess = this.onsuccess, - onerror = this.onerror; - this.onsuccess = null; - this.onerror = null; - var res2 = f2.apply(this, arguments); - if (onsuccess) - this.onsuccess = this.onsuccess ? callBoth(onsuccess, this.onsuccess) : onsuccess; - if (onerror) - this.onerror = this.onerror ? callBoth(onerror, this.onerror) : onerror; - return res2 !== undefined ? res2 : res; - }; + +function within(min$1, value, max$1) { + return max(min$1, min(value, max$1)); } -function hookDeletingChain(f1, f2) { - if (f1 === nop) - return f2; - return function () { - f1.apply(this, arguments); - var onsuccess = this.onsuccess, - onerror = this.onerror; - this.onsuccess = this.onerror = null; - f2.apply(this, arguments); - if (onsuccess) - this.onsuccess = this.onsuccess ? callBoth(onsuccess, this.onsuccess) : onsuccess; - if (onerror) - this.onerror = this.onerror ? callBoth(onerror, this.onerror) : onerror; - }; +function withinMaxClamp(min, value, max) { + var v = within(min, value, max); + return v > max ? max : v; } -function hookUpdatingChain(f1, f2) { - if (f1 === nop) - return f2; - return function (modifications) { - var res = f1.apply(this, arguments); - extend(modifications, res); - var onsuccess = this.onsuccess, - onerror = this.onerror; - this.onsuccess = null; - this.onerror = null; - var res2 = f2.apply(this, arguments); - if (onsuccess) - this.onsuccess = this.onsuccess ? callBoth(onsuccess, this.onsuccess) : onsuccess; - if (onerror) - this.onerror = this.onerror ? callBoth(onerror, this.onerror) : onerror; - return res === undefined ? - (res2 === undefined ? undefined : res2) : - (extend(res, res2)); - }; + +function getFreshSideObject() { + return { + top: 0, + right: 0, + bottom: 0, + left: 0 + }; } -function reverseStoppableEventChain(f1, f2) { - if (f1 === nop) - return f2; - return function () { - if (f2.apply(this, arguments) === false) - return false; - return f1.apply(this, arguments); - }; + +function mergePaddingObject(paddingObject) { + return Object.assign({}, getFreshSideObject(), paddingObject); } -function promisableChain(f1, f2) { - if (f1 === nop) - return f2; - return function () { - var res = f1.apply(this, arguments); - if (res && typeof res.then === 'function') { - var thiz = this, i = arguments.length, args = new Array(i); - while (i--) - args[i] = arguments[i]; - return res.then(function () { - return f2.apply(thiz, args); - }); - } - return f2.apply(this, arguments); - }; + +function expandToHashMap(value, keys) { + return keys.reduce(function (hashMap, key) { + hashMap[key] = value; + return hashMap; + }, {}); } -var INTERNAL = {}; -const LONG_STACKS_CLIP_LIMIT = 100, -MAX_LONG_STACKS = 20, ZONE_ECHO_LIMIT = 100, [resolvedNativePromise, nativePromiseProto, resolvedGlobalPromise] = typeof Promise === 'undefined' ? - [] : - (() => { - let globalP = Promise.resolve(); - if (typeof crypto === 'undefined' || !crypto.subtle) - return [globalP, getProto(globalP), globalP]; - const nativeP = crypto.subtle.digest("SHA-512", new Uint8Array([0])); - return [ - nativeP, - getProto(nativeP), - globalP - ]; - })(), nativePromiseThen = nativePromiseProto && nativePromiseProto.then; -const NativePromise = resolvedNativePromise && resolvedNativePromise.constructor; -const patchGlobalPromise = !!resolvedGlobalPromise; -var stack_being_generated = false; -var schedulePhysicalTick = resolvedGlobalPromise ? - () => { resolvedGlobalPromise.then(physicalTick); } - : - _global.setImmediate ? - setImmediate.bind(null, physicalTick) : - _global.MutationObserver ? - () => { - var hiddenDiv = document.createElement("div"); - (new MutationObserver(() => { - physicalTick(); - hiddenDiv = null; - })).observe(hiddenDiv, { attributes: true }); - hiddenDiv.setAttribute('i', '1'); - } : - () => { setTimeout(physicalTick, 0); }; -var asap = function (callback, args) { - microtickQueue.push([callback, args]); - if (needsNewPhysicalTick) { - schedulePhysicalTick(); - needsNewPhysicalTick = false; - } +var toPaddingObject = function toPaddingObject(padding, state) { + padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, { + placement: state.placement + })) : padding; + return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements)); }; -var isOutsideMicroTick = true, -needsNewPhysicalTick = true, -unhandledErrors = [], -rejectingErrors = [], -currentFulfiller = null, rejectionMapper = mirror; -var globalPSD = { - id: 'global', - global: true, - ref: 0, - unhandleds: [], - onunhandled: globalError, - pgp: false, - env: {}, - finalize: function () { - this.unhandleds.forEach(uh => { - try { - globalError(uh[0], uh[1]); - } - catch (e) { } - }); + +function arrow(_ref) { + var _state$modifiersData$; + + var state = _ref.state, + name = _ref.name, + options = _ref.options; + var arrowElement = state.elements.arrow; + var popperOffsets = state.modifiersData.popperOffsets; + var basePlacement = getBasePlacement(state.placement); + var axis = getMainAxisFromPlacement(basePlacement); + var isVertical = [left, right].indexOf(basePlacement) >= 0; + var len = isVertical ? 'height' : 'width'; + + if (!arrowElement || !popperOffsets) { + return; + } + + var paddingObject = toPaddingObject(options.padding, state); + var arrowRect = getLayoutRect(arrowElement); + var minProp = axis === 'y' ? top : left; + var maxProp = axis === 'y' ? bottom : right; + var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len]; + var startDiff = popperOffsets[axis] - state.rects.reference[axis]; + var arrowOffsetParent = getOffsetParent(arrowElement); + var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0; + var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is + // outside of the popper bounds + + var min = paddingObject[minProp]; + var max = clientSize - arrowRect[len] - paddingObject[maxProp]; + var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference; + var offset = within(min, center, max); // Prevents breaking syntax highlighting... + + var axisProp = axis; + state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$); +} + +function effect$1(_ref2) { + var state = _ref2.state, + options = _ref2.options; + var _options$element = options.element, + arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element; + + if (arrowElement == null) { + return; + } // CSS selector + + + if (typeof arrowElement === 'string') { + arrowElement = state.elements.popper.querySelector(arrowElement); + + if (!arrowElement) { + return; } + } + + if (!contains(state.elements.popper, arrowElement)) { + return; + } + + state.elements.arrow = arrowElement; +} // eslint-disable-next-line import/no-unused-modules + + +var arrow$1 = { + name: 'arrow', + enabled: true, + phase: 'main', + fn: arrow, + effect: effect$1, + requires: ['popperOffsets'], + requiresIfExists: ['preventOverflow'] }; -var PSD = globalPSD; -var microtickQueue = []; -var numScheduledCalls = 0; -var tickFinalizers = []; -function DexiePromise(fn) { - if (typeof this !== 'object') - throw new TypeError('Promises must be constructed via new'); - this._listeners = []; - this.onuncatched = nop; - this._lib = false; - var psd = (this._PSD = PSD); - if (debug) { - this._stackHolder = getErrorWithStack(); - this._prev = null; - this._numPrev = 0; + +function getVariation(placement) { + return placement.split('-')[1]; +} + +var unsetSides = { + top: 'auto', + right: 'auto', + bottom: 'auto', + left: 'auto' +}; // Round the offsets to the nearest suitable subpixel based on the DPR. +// Zooming can change the DPR, but it seems to report a value that will +// cleanly divide the values into the appropriate subpixels. + +function roundOffsetsByDPR(_ref, win) { + var x = _ref.x, + y = _ref.y; + var dpr = win.devicePixelRatio || 1; + return { + x: round(x * dpr) / dpr || 0, + y: round(y * dpr) / dpr || 0 + }; +} + +function mapToStyles(_ref2) { + var _Object$assign2; + + var popper = _ref2.popper, + popperRect = _ref2.popperRect, + placement = _ref2.placement, + variation = _ref2.variation, + offsets = _ref2.offsets, + position = _ref2.position, + gpuAcceleration = _ref2.gpuAcceleration, + adaptive = _ref2.adaptive, + roundOffsets = _ref2.roundOffsets, + isFixed = _ref2.isFixed; + var _offsets$x = offsets.x, + x = _offsets$x === void 0 ? 0 : _offsets$x, + _offsets$y = offsets.y, + y = _offsets$y === void 0 ? 0 : _offsets$y; + + var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({ + x: x, + y: y + }) : { + x: x, + y: y + }; + + x = _ref3.x; + y = _ref3.y; + var hasX = offsets.hasOwnProperty('x'); + var hasY = offsets.hasOwnProperty('y'); + var sideX = left; + var sideY = top; + var win = window; + + if (adaptive) { + var offsetParent = getOffsetParent(popper); + var heightProp = 'clientHeight'; + var widthProp = 'clientWidth'; + + if (offsetParent === getWindow(popper)) { + offsetParent = getDocumentElement(popper); + + if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') { + heightProp = 'scrollHeight'; + widthProp = 'scrollWidth'; + } + } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it + + + offsetParent = offsetParent; + + if (placement === top || (placement === left || placement === right) && variation === end) { + sideY = bottom; + var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing] + offsetParent[heightProp]; + y -= offsetY - popperRect.height; + y *= gpuAcceleration ? 1 : -1; } - if (typeof fn !== 'function') { - if (fn !== INTERNAL) - throw new TypeError('Not a function'); - this._state = arguments[1]; - this._value = arguments[2]; - if (this._state === false) - handleRejection(this, this._value); - return; + + if (placement === left || (placement === top || placement === bottom) && variation === end) { + sideX = right; + var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing] + offsetParent[widthProp]; + x -= offsetX - popperRect.width; + x *= gpuAcceleration ? 1 : -1; } - this._state = null; - this._value = null; - ++psd.ref; - executePromiseTask(this, fn); + } + + var commonStyles = Object.assign({ + position: position + }, adaptive && unsetSides); + + var _ref4 = roundOffsets === true ? roundOffsetsByDPR({ + x: x, + y: y + }, getWindow(popper)) : { + x: x, + y: y + }; + + x = _ref4.x; + y = _ref4.y; + + if (gpuAcceleration) { + var _Object$assign; + + return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? "translate(" + x + "px, " + y + "px)" : "translate3d(" + x + "px, " + y + "px, 0)", _Object$assign)); + } + + return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + "px" : '', _Object$assign2[sideX] = hasX ? x + "px" : '', _Object$assign2.transform = '', _Object$assign2)); } -const thenProp = { - get: function () { - var psd = PSD, microTaskId = totalEchoes; - function then(onFulfilled, onRejected) { - var possibleAwait = !psd.global && (psd !== PSD || microTaskId !== totalEchoes); - const cleanup = possibleAwait && !decrementExpectedAwaits(); - var rv = new DexiePromise((resolve, reject) => { - propagateToListener(this, new Listener(nativeAwaitCompatibleWrap(onFulfilled, psd, possibleAwait, cleanup), nativeAwaitCompatibleWrap(onRejected, psd, possibleAwait, cleanup), resolve, reject, psd)); - }); - debug && linkToPreviousPromise(rv, this); - return rv; - } - then.prototype = INTERNAL; - return then; - }, - set: function (value) { - setProp(this, 'then', value && value.prototype === INTERNAL ? - thenProp : - { - get: function () { - return value; - }, - set: thenProp.set - }); + +function computeStyles(_ref5) { + var state = _ref5.state, + options = _ref5.options; + var _options$gpuAccelerat = options.gpuAcceleration, + gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat, + _options$adaptive = options.adaptive, + adaptive = _options$adaptive === void 0 ? true : _options$adaptive, + _options$roundOffsets = options.roundOffsets, + roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets; + var commonStyles = { + placement: getBasePlacement(state.placement), + variation: getVariation(state.placement), + popper: state.elements.popper, + popperRect: state.rects.popper, + gpuAcceleration: gpuAcceleration, + isFixed: state.options.strategy === 'fixed' + }; + + if (state.modifiersData.popperOffsets != null) { + state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, { + offsets: state.modifiersData.popperOffsets, + position: state.options.strategy, + adaptive: adaptive, + roundOffsets: roundOffsets + }))); + } + + if (state.modifiersData.arrow != null) { + state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, { + offsets: state.modifiersData.arrow, + position: 'absolute', + adaptive: false, + roundOffsets: roundOffsets + }))); + } + + state.attributes.popper = Object.assign({}, state.attributes.popper, { + 'data-popper-placement': state.placement + }); +} // eslint-disable-next-line import/no-unused-modules + + +var computeStyles$1 = { + name: 'computeStyles', + enabled: true, + phase: 'beforeWrite', + fn: computeStyles, + data: {} +}; + +var passive = { + passive: true +}; + +function effect(_ref) { + var state = _ref.state, + instance = _ref.instance, + options = _ref.options; + var _options$scroll = options.scroll, + scroll = _options$scroll === void 0 ? true : _options$scroll, + _options$resize = options.resize, + resize = _options$resize === void 0 ? true : _options$resize; + var window = getWindow(state.elements.popper); + var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper); + + if (scroll) { + scrollParents.forEach(function (scrollParent) { + scrollParent.addEventListener('scroll', instance.update, passive); + }); + } + + if (resize) { + window.addEventListener('resize', instance.update, passive); + } + + return function () { + if (scroll) { + scrollParents.forEach(function (scrollParent) { + scrollParent.removeEventListener('scroll', instance.update, passive); + }); } + + if (resize) { + window.removeEventListener('resize', instance.update, passive); + } + }; +} // eslint-disable-next-line import/no-unused-modules + + +var eventListeners = { + name: 'eventListeners', + enabled: true, + phase: 'write', + fn: function fn() {}, + effect: effect, + data: {} }; -props(DexiePromise.prototype, { - then: thenProp, - _then: function (onFulfilled, onRejected) { - propagateToListener(this, new Listener(null, null, onFulfilled, onRejected, PSD)); - }, - catch: function (onRejected) { - if (arguments.length === 1) - return this.then(null, onRejected); - var type = arguments[0], handler = arguments[1]; - return typeof type === 'function' ? this.then(null, err => - err instanceof type ? handler(err) : PromiseReject(err)) - : this.then(null, err => - err && err.name === type ? handler(err) : PromiseReject(err)); - }, - finally: function (onFinally) { - return this.then(value => { - onFinally(); - return value; - }, err => { - onFinally(); - return PromiseReject(err); - }); - }, - stack: { - get: function () { - if (this._stack) - return this._stack; - try { - stack_being_generated = true; - var stacks = getStack(this, [], MAX_LONG_STACKS); - var stack = stacks.join("\nFrom previous: "); - if (this._state !== null) - this._stack = stack; - return stack; - } - finally { - stack_being_generated = false; - } - } - }, - timeout: function (ms, msg) { - return ms < Infinity ? - new DexiePromise((resolve, reject) => { - var handle = setTimeout(() => reject(new exceptions.Timeout(msg)), ms); - this.then(resolve, reject).finally(clearTimeout.bind(null, handle)); - }) : this; + +var hash$1 = { + left: 'right', + right: 'left', + bottom: 'top', + top: 'bottom' +}; +function getOppositePlacement(placement) { + return placement.replace(/left|right|bottom|top/g, function (matched) { + return hash$1[matched]; + }); +} + +var hash = { + start: 'end', + end: 'start' +}; +function getOppositeVariationPlacement(placement) { + return placement.replace(/start|end/g, function (matched) { + return hash[matched]; + }); +} + +function getWindowScroll(node) { + var win = getWindow(node); + var scrollLeft = win.pageXOffset; + var scrollTop = win.pageYOffset; + return { + scrollLeft: scrollLeft, + scrollTop: scrollTop + }; +} + +function getWindowScrollBarX(element) { + // If has a CSS width greater than the viewport, then this will be + // incorrect for RTL. + // Popper 1 is broken in this case and never had a bug report so let's assume + // it's not an issue. I don't think anyone ever specifies width on + // anyway. + // Browsers where the left scrollbar doesn't cause an issue report `0` for + // this (e.g. Edge 2019, IE11, Safari) + return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft; +} + +function getViewportRect(element, strategy) { + var win = getWindow(element); + var html = getDocumentElement(element); + var visualViewport = win.visualViewport; + var width = html.clientWidth; + var height = html.clientHeight; + var x = 0; + var y = 0; + + if (visualViewport) { + width = visualViewport.width; + height = visualViewport.height; + var layoutViewport = isLayoutViewport(); + + if (layoutViewport || !layoutViewport && strategy === 'fixed') { + x = visualViewport.offsetLeft; + y = visualViewport.offsetTop; } -}); -if (typeof Symbol !== 'undefined' && Symbol.toStringTag) - setProp(DexiePromise.prototype, Symbol.toStringTag, 'Dexie.Promise'); -globalPSD.env = snapShot(); -function Listener(onFulfilled, onRejected, resolve, reject, zone) { - this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null; - this.onRejected = typeof onRejected === 'function' ? onRejected : null; - this.resolve = resolve; - this.reject = reject; - this.psd = zone; + } + + return { + width: width, + height: height, + x: x + getWindowScrollBarX(element), + y: y + }; } -props(DexiePromise, { - all: function () { - var values = getArrayOf.apply(null, arguments) - .map(onPossibleParallellAsync); - return new DexiePromise(function (resolve, reject) { - if (values.length === 0) - resolve([]); - var remaining = values.length; - values.forEach((a, i) => DexiePromise.resolve(a).then(x => { - values[i] = x; - if (!--remaining) - resolve(values); - }, reject)); - }); - }, - resolve: value => { - if (value instanceof DexiePromise) - return value; - if (value && typeof value.then === 'function') - return new DexiePromise((resolve, reject) => { - value.then(resolve, reject); - }); - var rv = new DexiePromise(INTERNAL, true, value); - linkToPreviousPromise(rv, currentFulfiller); - return rv; - }, - reject: PromiseReject, - race: function () { - var values = getArrayOf.apply(null, arguments).map(onPossibleParallellAsync); - return new DexiePromise((resolve, reject) => { - values.map(value => DexiePromise.resolve(value).then(resolve, reject)); - }); - }, - PSD: { - get: () => PSD, - set: value => PSD = value - }, - totalEchoes: { get: () => totalEchoes }, - newPSD: newScope, - usePSD: usePSD, - scheduler: { - get: () => asap, - set: value => { asap = value; } - }, - rejectionMapper: { - get: () => rejectionMapper, - set: value => { rejectionMapper = value; } - }, - follow: (fn, zoneProps) => { - return new DexiePromise((resolve, reject) => { - return newScope((resolve, reject) => { - var psd = PSD; - psd.unhandleds = []; - psd.onunhandled = reject; - psd.finalize = callBoth(function () { - run_at_end_of_this_or_next_physical_tick(() => { - this.unhandleds.length === 0 ? resolve() : reject(this.unhandleds[0]); - }); - }, psd.finalize); - fn(); - }, zoneProps, resolve, reject); - }); + +// of the `` and `` rect bounds if horizontally scrollable + +function getDocumentRect(element) { + var _element$ownerDocumen; + + var html = getDocumentElement(element); + var winScroll = getWindowScroll(element); + var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body; + var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0); + var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0); + var x = -winScroll.scrollLeft + getWindowScrollBarX(element); + var y = -winScroll.scrollTop; + + if (getComputedStyle(body || html).direction === 'rtl') { + x += max(html.clientWidth, body ? body.clientWidth : 0) - width; + } + + return { + width: width, + height: height, + x: x, + y: y + }; +} + +function isScrollParent(element) { + // Firefox wants us to check `-x` and `-y` variations as well + var _getComputedStyle = getComputedStyle(element), + overflow = _getComputedStyle.overflow, + overflowX = _getComputedStyle.overflowX, + overflowY = _getComputedStyle.overflowY; + + return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX); +} + +function getScrollParent(node) { + if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) { + // $FlowFixMe[incompatible-return]: assume body is always available + return node.ownerDocument.body; + } + + if (isHTMLElement(node) && isScrollParent(node)) { + return node; + } + + return getScrollParent(getParentNode(node)); +} + +/* +given a DOM element, return the list of all scroll parents, up the list of ancesors +until we get to the top window object. This list is what we attach scroll listeners +to, because if any of these parent elements scroll, we'll need to re-calculate the +reference element's position. +*/ + +function listScrollParents(element, list) { + var _element$ownerDocumen; + + if (list === void 0) { + list = []; + } + + var scrollParent = getScrollParent(element); + var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body); + var win = getWindow(scrollParent); + var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent; + var updatedList = list.concat(target); + return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here + updatedList.concat(listScrollParents(getParentNode(target))); +} + +function rectToClientRect(rect) { + return Object.assign({}, rect, { + left: rect.x, + top: rect.y, + right: rect.x + rect.width, + bottom: rect.y + rect.height + }); +} + +function getInnerBoundingClientRect(element, strategy) { + var rect = getBoundingClientRect(element, false, strategy === 'fixed'); + rect.top = rect.top + element.clientTop; + rect.left = rect.left + element.clientLeft; + rect.bottom = rect.top + element.clientHeight; + rect.right = rect.left + element.clientWidth; + rect.width = element.clientWidth; + rect.height = element.clientHeight; + rect.x = rect.left; + rect.y = rect.top; + return rect; +} + +function getClientRectFromMixedType(element, clippingParent, strategy) { + return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element))); +} // A "clipping parent" is an overflowable container with the characteristic of +// clipping (or hiding) overflowing elements with a position different from +// `initial` + + +function getClippingParents(element) { + var clippingParents = listScrollParents(getParentNode(element)); + var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0; + var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element; + + if (!isElement(clipperElement)) { + return []; + } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414 + + + return clippingParents.filter(function (clippingParent) { + return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body'; + }); +} // Gets the maximum area that the element is visible in due to any number of +// clipping parents + + +function getClippingRect(element, boundary, rootBoundary, strategy) { + var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary); + var clippingParents = [].concat(mainClippingParents, [rootBoundary]); + var firstClippingParent = clippingParents[0]; + var clippingRect = clippingParents.reduce(function (accRect, clippingParent) { + var rect = getClientRectFromMixedType(element, clippingParent, strategy); + accRect.top = max(rect.top, accRect.top); + accRect.right = min(rect.right, accRect.right); + accRect.bottom = min(rect.bottom, accRect.bottom); + accRect.left = max(rect.left, accRect.left); + return accRect; + }, getClientRectFromMixedType(element, firstClippingParent, strategy)); + clippingRect.width = clippingRect.right - clippingRect.left; + clippingRect.height = clippingRect.bottom - clippingRect.top; + clippingRect.x = clippingRect.left; + clippingRect.y = clippingRect.top; + return clippingRect; +} + +function computeOffsets(_ref) { + var reference = _ref.reference, + element = _ref.element, + placement = _ref.placement; + var basePlacement = placement ? getBasePlacement(placement) : null; + var variation = placement ? getVariation(placement) : null; + var commonX = reference.x + reference.width / 2 - element.width / 2; + var commonY = reference.y + reference.height / 2 - element.height / 2; + var offsets; + + switch (basePlacement) { + case top: + offsets = { + x: commonX, + y: reference.y - element.height + }; + break; + + case bottom: + offsets = { + x: commonX, + y: reference.y + reference.height + }; + break; + + case right: + offsets = { + x: reference.x + reference.width, + y: commonY + }; + break; + + case left: + offsets = { + x: reference.x - element.width, + y: commonY + }; + break; + + default: + offsets = { + x: reference.x, + y: reference.y + }; + } + + var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null; + + if (mainAxis != null) { + var len = mainAxis === 'y' ? 'height' : 'width'; + + switch (variation) { + case start: + offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2); + break; + + case end: + offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2); + break; } -}); -if (NativePromise) { - if (NativePromise.allSettled) - setProp(DexiePromise, "allSettled", function () { - const possiblePromises = getArrayOf.apply(null, arguments).map(onPossibleParallellAsync); - return new DexiePromise(resolve => { - if (possiblePromises.length === 0) - resolve([]); - let remaining = possiblePromises.length; - const results = new Array(remaining); - possiblePromises.forEach((p, i) => DexiePromise.resolve(p).then(value => results[i] = { status: "fulfilled", value }, reason => results[i] = { status: "rejected", reason }) - .then(() => --remaining || resolve(results))); - }); - }); - if (NativePromise.any && typeof AggregateError !== 'undefined') - setProp(DexiePromise, "any", function () { - const possiblePromises = getArrayOf.apply(null, arguments).map(onPossibleParallellAsync); - return new DexiePromise((resolve, reject) => { - if (possiblePromises.length === 0) - reject(new AggregateError([])); - let remaining = possiblePromises.length; - const failures = new Array(remaining); - possiblePromises.forEach((p, i) => DexiePromise.resolve(p).then(value => resolve(value), failure => { - failures[i] = failure; - if (!--remaining) - reject(new AggregateError(failures)); - })); - }); - }); + } + + return offsets; } -function executePromiseTask(promise, fn) { - try { - fn(value => { - if (promise._state !== null) - return; - if (value === promise) - throw new TypeError('A promise cannot be resolved with itself.'); - var shouldExecuteTick = promise._lib && beginMicroTickScope(); - if (value && typeof value.then === 'function') { - executePromiseTask(promise, (resolve, reject) => { - value instanceof DexiePromise ? - value._then(resolve, reject) : - value.then(resolve, reject); - }); - } - else { - promise._state = true; - promise._value = value; - propagateAllListeners(promise); - } - if (shouldExecuteTick) - endMicroTickScope(); - }, handleRejection.bind(null, promise)); + +function detectOverflow(state, options) { + if (options === void 0) { + options = {}; + } + + var _options = options, + _options$placement = _options.placement, + placement = _options$placement === void 0 ? state.placement : _options$placement, + _options$strategy = _options.strategy, + strategy = _options$strategy === void 0 ? state.strategy : _options$strategy, + _options$boundary = _options.boundary, + boundary = _options$boundary === void 0 ? clippingParents : _options$boundary, + _options$rootBoundary = _options.rootBoundary, + rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary, + _options$elementConte = _options.elementContext, + elementContext = _options$elementConte === void 0 ? popper : _options$elementConte, + _options$altBoundary = _options.altBoundary, + altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary, + _options$padding = _options.padding, + padding = _options$padding === void 0 ? 0 : _options$padding; + var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements)); + var altContext = elementContext === popper ? reference : popper; + var popperRect = state.rects.popper; + var element = state.elements[altBoundary ? altContext : elementContext]; + var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy); + var referenceClientRect = getBoundingClientRect(state.elements.reference); + var popperOffsets = computeOffsets({ + reference: referenceClientRect, + element: popperRect, + strategy: 'absolute', + placement: placement + }); + var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets)); + var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect + // 0 or negative = within the clipping rect + + var overflowOffsets = { + top: clippingClientRect.top - elementClientRect.top + paddingObject.top, + bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom, + left: clippingClientRect.left - elementClientRect.left + paddingObject.left, + right: elementClientRect.right - clippingClientRect.right + paddingObject.right + }; + var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element + + if (elementContext === popper && offsetData) { + var offset = offsetData[placement]; + Object.keys(overflowOffsets).forEach(function (key) { + var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1; + var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x'; + overflowOffsets[key] += offset[axis] * multiply; + }); + } + + return overflowOffsets; +} + +function computeAutoPlacement(state, options) { + if (options === void 0) { + options = {}; + } + + var _options = options, + placement = _options.placement, + boundary = _options.boundary, + rootBoundary = _options.rootBoundary, + padding = _options.padding, + flipVariations = _options.flipVariations, + _options$allowedAutoP = _options.allowedAutoPlacements, + allowedAutoPlacements = _options$allowedAutoP === void 0 ? placements : _options$allowedAutoP; + var variation = getVariation(placement); + var placements$1 = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) { + return getVariation(placement) === variation; + }) : basePlacements; + var allowedPlacements = placements$1.filter(function (placement) { + return allowedAutoPlacements.indexOf(placement) >= 0; + }); + + if (allowedPlacements.length === 0) { + allowedPlacements = placements$1; + } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions... + + + var overflows = allowedPlacements.reduce(function (acc, placement) { + acc[placement] = detectOverflow(state, { + placement: placement, + boundary: boundary, + rootBoundary: rootBoundary, + padding: padding + })[getBasePlacement(placement)]; + return acc; + }, {}); + return Object.keys(overflows).sort(function (a, b) { + return overflows[a] - overflows[b]; + }); +} + +function getExpandedFallbackPlacements(placement) { + if (getBasePlacement(placement) === auto) { + return []; + } + + var oppositePlacement = getOppositePlacement(placement); + return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)]; +} + +function flip(_ref) { + var state = _ref.state, + options = _ref.options, + name = _ref.name; + + if (state.modifiersData[name]._skip) { + return; + } + + var _options$mainAxis = options.mainAxis, + checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis, + _options$altAxis = options.altAxis, + checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis, + specifiedFallbackPlacements = options.fallbackPlacements, + padding = options.padding, + boundary = options.boundary, + rootBoundary = options.rootBoundary, + altBoundary = options.altBoundary, + _options$flipVariatio = options.flipVariations, + flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio, + allowedAutoPlacements = options.allowedAutoPlacements; + var preferredPlacement = state.options.placement; + var basePlacement = getBasePlacement(preferredPlacement); + var isBasePlacement = basePlacement === preferredPlacement; + var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement)); + var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) { + return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, { + placement: placement, + boundary: boundary, + rootBoundary: rootBoundary, + padding: padding, + flipVariations: flipVariations, + allowedAutoPlacements: allowedAutoPlacements + }) : placement); + }, []); + var referenceRect = state.rects.reference; + var popperRect = state.rects.popper; + var checksMap = new Map(); + var makeFallbackChecks = true; + var firstFittingPlacement = placements[0]; + + for (var i = 0; i < placements.length; i++) { + var placement = placements[i]; + + var _basePlacement = getBasePlacement(placement); + + var isStartVariation = getVariation(placement) === start; + var isVertical = [top, bottom].indexOf(_basePlacement) >= 0; + var len = isVertical ? 'width' : 'height'; + var overflow = detectOverflow(state, { + placement: placement, + boundary: boundary, + rootBoundary: rootBoundary, + altBoundary: altBoundary, + padding: padding + }); + var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top; + + if (referenceRect[len] > popperRect[len]) { + mainVariationSide = getOppositePlacement(mainVariationSide); } - catch (ex) { - handleRejection(promise, ex); + + var altVariationSide = getOppositePlacement(mainVariationSide); + var checks = []; + + if (checkMainAxis) { + checks.push(overflow[_basePlacement] <= 0); + } + + if (checkAltAxis) { + checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0); + } + + if (checks.every(function (check) { + return check; + })) { + firstFittingPlacement = placement; + makeFallbackChecks = false; + break; + } + + checksMap.set(placement, checks); + } + + if (makeFallbackChecks) { + // `2` may be desired in some cases – research later + var numberOfChecks = flipVariations ? 3 : 1; + + var _loop = function _loop(_i) { + var fittingPlacement = placements.find(function (placement) { + var checks = checksMap.get(placement); + + if (checks) { + return checks.slice(0, _i).every(function (check) { + return check; + }); + } + }); + + if (fittingPlacement) { + firstFittingPlacement = fittingPlacement; + return "break"; + } + }; + + for (var _i = numberOfChecks; _i > 0; _i--) { + var _ret = _loop(_i); + + if (_ret === "break") break; } + } + + if (state.placement !== firstFittingPlacement) { + state.modifiersData[name]._skip = true; + state.placement = firstFittingPlacement; + state.reset = true; + } +} // eslint-disable-next-line import/no-unused-modules + + +var flip$1 = { + name: 'flip', + enabled: true, + phase: 'main', + fn: flip, + requiresIfExists: ['offset'], + data: { + _skip: false + } +}; + +function getSideOffsets(overflow, rect, preventedOffsets) { + if (preventedOffsets === void 0) { + preventedOffsets = { + x: 0, + y: 0 + }; + } + + return { + top: overflow.top - rect.height - preventedOffsets.y, + right: overflow.right - rect.width + preventedOffsets.x, + bottom: overflow.bottom - rect.height + preventedOffsets.y, + left: overflow.left - rect.width - preventedOffsets.x + }; } -function handleRejection(promise, reason) { - rejectingErrors.push(reason); - if (promise._state !== null) - return; - var shouldExecuteTick = promise._lib && beginMicroTickScope(); - reason = rejectionMapper(reason); - promise._state = false; - promise._value = reason; - debug && reason !== null && typeof reason === 'object' && !reason._promise && tryCatch(() => { - var origProp = getPropertyDescriptor(reason, "stack"); - reason._promise = promise; - setProp(reason, "stack", { - get: () => stack_being_generated ? - origProp && (origProp.get ? - origProp.get.apply(reason) : - origProp.value) : - promise.stack - }); - }); - addPossiblyUnhandledError(promise); - propagateAllListeners(promise); - if (shouldExecuteTick) - endMicroTickScope(); + +function isAnySideFullyClipped(overflow) { + return [top, right, bottom, left].some(function (side) { + return overflow[side] >= 0; + }); } -function propagateAllListeners(promise) { - var listeners = promise._listeners; - promise._listeners = []; - for (var i = 0, len = listeners.length; i < len; ++i) { - propagateToListener(promise, listeners[i]); + +function hide(_ref) { + var state = _ref.state, + name = _ref.name; + var referenceRect = state.rects.reference; + var popperRect = state.rects.popper; + var preventedOffsets = state.modifiersData.preventOverflow; + var referenceOverflow = detectOverflow(state, { + elementContext: 'reference' + }); + var popperAltOverflow = detectOverflow(state, { + altBoundary: true + }); + var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect); + var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets); + var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets); + var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets); + state.modifiersData[name] = { + referenceClippingOffsets: referenceClippingOffsets, + popperEscapeOffsets: popperEscapeOffsets, + isReferenceHidden: isReferenceHidden, + hasPopperEscaped: hasPopperEscaped + }; + state.attributes.popper = Object.assign({}, state.attributes.popper, { + 'data-popper-reference-hidden': isReferenceHidden, + 'data-popper-escaped': hasPopperEscaped + }); +} // eslint-disable-next-line import/no-unused-modules + + +var hide$1 = { + name: 'hide', + enabled: true, + phase: 'main', + requiresIfExists: ['preventOverflow'], + fn: hide +}; + +function distanceAndSkiddingToXY(placement, rects, offset) { + var basePlacement = getBasePlacement(placement); + var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1; + + var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, { + placement: placement + })) : offset, + skidding = _ref[0], + distance = _ref[1]; + + skidding = skidding || 0; + distance = (distance || 0) * invertDistance; + return [left, right].indexOf(basePlacement) >= 0 ? { + x: distance, + y: skidding + } : { + x: skidding, + y: distance + }; +} + +function offset(_ref2) { + var state = _ref2.state, + options = _ref2.options, + name = _ref2.name; + var _options$offset = options.offset, + offset = _options$offset === void 0 ? [0, 0] : _options$offset; + var data = placements.reduce(function (acc, placement) { + acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset); + return acc; + }, {}); + var _data$state$placement = data[state.placement], + x = _data$state$placement.x, + y = _data$state$placement.y; + + if (state.modifiersData.popperOffsets != null) { + state.modifiersData.popperOffsets.x += x; + state.modifiersData.popperOffsets.y += y; + } + + state.modifiersData[name] = data; +} // eslint-disable-next-line import/no-unused-modules + + +var offset$1 = { + name: 'offset', + enabled: true, + phase: 'main', + requires: ['popperOffsets'], + fn: offset +}; + +function popperOffsets(_ref) { + var state = _ref.state, + name = _ref.name; + // Offsets are the actual position the popper needs to have to be + // properly positioned near its reference element + // This is the most basic placement, and will be adjusted by + // the modifiers in the next step + state.modifiersData[name] = computeOffsets({ + reference: state.rects.reference, + element: state.rects.popper, + strategy: 'absolute', + placement: state.placement + }); +} // eslint-disable-next-line import/no-unused-modules + + +var popperOffsets$1 = { + name: 'popperOffsets', + enabled: true, + phase: 'read', + fn: popperOffsets, + data: {} +}; + +function getAltAxis(axis) { + return axis === 'x' ? 'y' : 'x'; +} + +function preventOverflow(_ref) { + var state = _ref.state, + options = _ref.options, + name = _ref.name; + var _options$mainAxis = options.mainAxis, + checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis, + _options$altAxis = options.altAxis, + checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis, + boundary = options.boundary, + rootBoundary = options.rootBoundary, + altBoundary = options.altBoundary, + padding = options.padding, + _options$tether = options.tether, + tether = _options$tether === void 0 ? true : _options$tether, + _options$tetherOffset = options.tetherOffset, + tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset; + var overflow = detectOverflow(state, { + boundary: boundary, + rootBoundary: rootBoundary, + padding: padding, + altBoundary: altBoundary + }); + var basePlacement = getBasePlacement(state.placement); + var variation = getVariation(state.placement); + var isBasePlacement = !variation; + var mainAxis = getMainAxisFromPlacement(basePlacement); + var altAxis = getAltAxis(mainAxis); + var popperOffsets = state.modifiersData.popperOffsets; + var referenceRect = state.rects.reference; + var popperRect = state.rects.popper; + var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, { + placement: state.placement + })) : tetherOffset; + var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? { + mainAxis: tetherOffsetValue, + altAxis: tetherOffsetValue + } : Object.assign({ + mainAxis: 0, + altAxis: 0 + }, tetherOffsetValue); + var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null; + var data = { + x: 0, + y: 0 + }; + + if (!popperOffsets) { + return; + } + + if (checkMainAxis) { + var _offsetModifierState$; + + var mainSide = mainAxis === 'y' ? top : left; + var altSide = mainAxis === 'y' ? bottom : right; + var len = mainAxis === 'y' ? 'height' : 'width'; + var offset = popperOffsets[mainAxis]; + var min$1 = offset + overflow[mainSide]; + var max$1 = offset - overflow[altSide]; + var additive = tether ? -popperRect[len] / 2 : 0; + var minLen = variation === start ? referenceRect[len] : popperRect[len]; + var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go + // outside the reference bounds + + var arrowElement = state.elements.arrow; + var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : { + width: 0, + height: 0 + }; + var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject(); + var arrowPaddingMin = arrowPaddingObject[mainSide]; + var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want + // to include its full size in the calculation. If the reference is small + // and near the edge of a boundary, the popper can overflow even if the + // reference is not overflowing as well (e.g. virtual elements with no + // width or height) + + var arrowLen = within(0, referenceRect[len], arrowRect[len]); + var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis; + var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis; + var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow); + var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0; + var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0; + var tetherMin = offset + minOffset - offsetModifierValue - clientOffset; + var tetherMax = offset + maxOffset - offsetModifierValue; + var preventedOffset = within(tether ? min(min$1, tetherMin) : min$1, offset, tether ? max(max$1, tetherMax) : max$1); + popperOffsets[mainAxis] = preventedOffset; + data[mainAxis] = preventedOffset - offset; + } + + if (checkAltAxis) { + var _offsetModifierState$2; + + var _mainSide = mainAxis === 'x' ? top : left; + + var _altSide = mainAxis === 'x' ? bottom : right; + + var _offset = popperOffsets[altAxis]; + + var _len = altAxis === 'y' ? 'height' : 'width'; + + var _min = _offset + overflow[_mainSide]; + + var _max = _offset - overflow[_altSide]; + + var isOriginSide = [top, left].indexOf(basePlacement) !== -1; + + var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0; + + var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis; + + var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max; + + var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max); + + popperOffsets[altAxis] = _preventedOffset; + data[altAxis] = _preventedOffset - _offset; + } + + state.modifiersData[name] = data; +} // eslint-disable-next-line import/no-unused-modules + + +var preventOverflow$1 = { + name: 'preventOverflow', + enabled: true, + phase: 'main', + fn: preventOverflow, + requiresIfExists: ['offset'] +}; + +function getHTMLElementScroll(element) { + return { + scrollLeft: element.scrollLeft, + scrollTop: element.scrollTop + }; +} + +function getNodeScroll(node) { + if (node === getWindow(node) || !isHTMLElement(node)) { + return getWindowScroll(node); + } else { + return getHTMLElementScroll(node); + } +} + +function isElementScaled(element) { + var rect = element.getBoundingClientRect(); + var scaleX = round(rect.width) / element.offsetWidth || 1; + var scaleY = round(rect.height) / element.offsetHeight || 1; + return scaleX !== 1 || scaleY !== 1; +} // Returns the composite rect of an element relative to its offsetParent. +// Composite means it takes into account transforms as well as layout. + + +function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) { + if (isFixed === void 0) { + isFixed = false; + } + + var isOffsetParentAnElement = isHTMLElement(offsetParent); + var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent); + var documentElement = getDocumentElement(offsetParent); + var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed); + var scroll = { + scrollLeft: 0, + scrollTop: 0 + }; + var offsets = { + x: 0, + y: 0 + }; + + if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) { + if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078 + isScrollParent(documentElement)) { + scroll = getNodeScroll(offsetParent); + } + + if (isHTMLElement(offsetParent)) { + offsets = getBoundingClientRect(offsetParent, true); + offsets.x += offsetParent.clientLeft; + offsets.y += offsetParent.clientTop; + } else if (documentElement) { + offsets.x = getWindowScrollBarX(documentElement); + } + } + + return { + x: rect.left + scroll.scrollLeft - offsets.x, + y: rect.top + scroll.scrollTop - offsets.y, + width: rect.width, + height: rect.height + }; +} + +function order(modifiers) { + var map = new Map(); + var visited = new Set(); + var result = []; + modifiers.forEach(function (modifier) { + map.set(modifier.name, modifier); + }); // On visiting object, check for its dependencies and visit them recursively + + function sort(modifier) { + visited.add(modifier.name); + var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []); + requires.forEach(function (dep) { + if (!visited.has(dep)) { + var depModifier = map.get(dep); + + if (depModifier) { + sort(depModifier); + } + } + }); + result.push(modifier); + } + + modifiers.forEach(function (modifier) { + if (!visited.has(modifier.name)) { + // check for visited object + sort(modifier); } - var psd = promise._PSD; - --psd.ref || psd.finalize(); - if (numScheduledCalls === 0) { - ++numScheduledCalls; - asap(() => { - if (--numScheduledCalls === 0) - finalizePhysicalTick(); - }, []); + }); + return result; +} + +function orderModifiers(modifiers) { + // order based on dependencies + var orderedModifiers = order(modifiers); // order based on phase + + return modifierPhases.reduce(function (acc, phase) { + return acc.concat(orderedModifiers.filter(function (modifier) { + return modifier.phase === phase; + })); + }, []); +} + +function debounce(fn) { + var pending; + return function () { + if (!pending) { + pending = new Promise(function (resolve) { + Promise.resolve().then(function () { + pending = undefined; + resolve(fn()); + }); + }); } + + return pending; + }; } -function propagateToListener(promise, listener) { - if (promise._state === null) { - promise._listeners.push(listener); - return; + +function mergeByName(modifiers) { + var merged = modifiers.reduce(function (merged, current) { + var existing = merged[current.name]; + merged[current.name] = existing ? Object.assign({}, existing, current, { + options: Object.assign({}, existing.options, current.options), + data: Object.assign({}, existing.data, current.data) + }) : current; + return merged; + }, {}); // IE11 does not support Object.values + + return Object.keys(merged).map(function (key) { + return merged[key]; + }); +} + +var DEFAULT_OPTIONS = { + placement: 'bottom', + modifiers: [], + strategy: 'absolute' +}; + +function areValidElements() { + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return !args.some(function (element) { + return !(element && typeof element.getBoundingClientRect === 'function'); + }); +} + +function popperGenerator(generatorOptions) { + if (generatorOptions === void 0) { + generatorOptions = {}; + } + + var _generatorOptions = generatorOptions, + _generatorOptions$def = _generatorOptions.defaultModifiers, + defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def, + _generatorOptions$def2 = _generatorOptions.defaultOptions, + defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2; + return function createPopper(reference, popper, options) { + if (options === void 0) { + options = defaultOptions; + } + + var state = { + placement: 'bottom', + orderedModifiers: [], + options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions), + modifiersData: {}, + elements: { + reference: reference, + popper: popper + }, + attributes: {}, + styles: {} + }; + var effectCleanupFns = []; + var isDestroyed = false; + var instance = { + state: state, + setOptions: function setOptions(setOptionsAction) { + var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction; + cleanupModifierEffects(); + state.options = Object.assign({}, defaultOptions, state.options, options); + state.scrollParents = { + reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [], + popper: listScrollParents(popper) + }; // Orders the modifiers based on their dependencies and `phase` + // properties + + var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers + + state.orderedModifiers = orderedModifiers.filter(function (m) { + return m.enabled; + }); + runModifierEffects(); + return instance.update(); + }, + // Sync update – it will always be executed, even if not necessary. This + // is useful for low frequency updates where sync behavior simplifies the + // logic. + // For high frequency updates (e.g. `resize` and `scroll` events), always + // prefer the async Popper#update method + forceUpdate: function forceUpdate() { + if (isDestroyed) { + return; + } + + var _state$elements = state.elements, + reference = _state$elements.reference, + popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements + // anymore + + if (!areValidElements(reference, popper)) { + return; + } // Store the reference and popper rects to be read by modifiers + + + state.rects = { + reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'), + popper: getLayoutRect(popper) + }; // Modifiers have the ability to reset the current update cycle. The + // most common use case for this is the `flip` modifier changing the + // placement, which then needs to re-run all the modifiers, because the + // logic was previously ran for the previous placement and is therefore + // stale/incorrect + + state.reset = false; + state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier + // is filled with the initial data specified by the modifier. This means + // it doesn't persist and is fresh on each update. + // To ensure persistent data, use `${name}#persistent` + + state.orderedModifiers.forEach(function (modifier) { + return state.modifiersData[modifier.name] = Object.assign({}, modifier.data); + }); + + for (var index = 0; index < state.orderedModifiers.length; index++) { + if (state.reset === true) { + state.reset = false; + index = -1; + continue; + } + + var _state$orderedModifie = state.orderedModifiers[index], + fn = _state$orderedModifie.fn, + _state$orderedModifie2 = _state$orderedModifie.options, + _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2, + name = _state$orderedModifie.name; + + if (typeof fn === 'function') { + state = fn({ + state: state, + options: _options, + name: name, + instance: instance + }) || state; + } + } + }, + // Async and optimistically optimized update – it will not be executed if + // not necessary (debounced to run at most once-per-tick) + update: debounce(function () { + return new Promise(function (resolve) { + instance.forceUpdate(); + resolve(state); + }); + }), + destroy: function destroy() { + cleanupModifierEffects(); + isDestroyed = true; + } + }; + + if (!areValidElements(reference, popper)) { + return instance; } - var cb = promise._state ? listener.onFulfilled : listener.onRejected; - if (cb === null) { - return (promise._state ? listener.resolve : listener.reject)(promise._value); + + instance.setOptions(options).then(function (state) { + if (!isDestroyed && options.onFirstUpdate) { + options.onFirstUpdate(state); + } + }); // Modifiers have the ability to execute arbitrary code before the first + // update cycle runs. They will be executed in the same order as the update + // cycle. This is useful when a modifier adds some persistent data that + // other modifiers need to use, but the modifier is run after the dependent + // one. + + function runModifierEffects() { + state.orderedModifiers.forEach(function (_ref) { + var name = _ref.name, + _ref$options = _ref.options, + options = _ref$options === void 0 ? {} : _ref$options, + effect = _ref.effect; + + if (typeof effect === 'function') { + var cleanupFn = effect({ + state: state, + name: name, + instance: instance, + options: options + }); + + var noopFn = function noopFn() {}; + + effectCleanupFns.push(cleanupFn || noopFn); + } + }); } - ++listener.psd.ref; - ++numScheduledCalls; - asap(callListener, [cb, promise, listener]); + + function cleanupModifierEffects() { + effectCleanupFns.forEach(function (fn) { + return fn(); + }); + effectCleanupFns = []; + } + + return instance; + }; } -function callListener(cb, promise, listener) { - try { - currentFulfiller = promise; - var ret, value = promise._value; - if (promise._state) { - ret = cb(value); + +var defaultModifiers = [eventListeners, popperOffsets$1, computeStyles$1, applyStyles$1, offset$1, flip$1, preventOverflow$1, arrow$1, hide$1]; +var createPopper = /*#__PURE__*/popperGenerator({ + defaultModifiers: defaultModifiers +}); // eslint-disable-next-line import/no-unused-modules + +class SimpleUIComponent extends Component { + get domElement() { + if (!this._domElement) { + throw new Error("Dom element not initialized!"); } - else { - if (rejectingErrors.length) - rejectingErrors = []; - ret = cb(value); - if (rejectingErrors.indexOf(value) === -1) - markErrorAsHandled(promise); + return this._domElement; + } + set domElement(ele) { + if (this._domElement) { + this._domElement.remove(); } - listener.resolve(ret); + this._domElement = ele; } - catch (e) { - listener.reject(e); + set parent(value) { + this._parent = value; } - finally { - currentFulfiller = null; - if (--numScheduledCalls === 0) - finalizePhysicalTick(); - --listener.psd.ref || listener.psd.finalize(); + get parent() { + return this._parent; } -} -function getStack(promise, stacks, limit) { - if (stacks.length === limit) - return stacks; - var stack = ""; - if (promise._state === false) { - var failure = promise._value, errorName, message; - if (failure != null) { - errorName = failure.name || "Error"; - message = failure.message || failure; - stack = prettyStack(failure, 0); + get active() { + return this._active; + } + set active(active) { + this.domElement.setAttribute("data-active", String(active)); + this._active = active; + } + get visible() { + return this._visible; + } + set visible(value) { + this._visible = value; + if (value) { + this.domElement.classList.remove("hidden"); + this.onVisible.trigger(this.get()); } else { - errorName = failure; - message = ""; + this.domElement.classList.add("hidden"); + this.onHidden.trigger(this.get()); } - stacks.push(errorName + (message ? ": " + message : "") + stack); } - if (debug) { - stack = prettyStack(promise._stackHolder, 2); - if (stack && stacks.indexOf(stack) === -1) - stacks.push(stack); - if (promise._prev) - getStack(promise._prev, stacks, limit); + get enabled() { + return this._enabled; } - return stacks; -} -function linkToPreviousPromise(promise, prev) { - var numPrev = prev ? prev._numPrev + 1 : 0; - if (numPrev < LONG_STACKS_CLIP_LIMIT) { - promise._prev = prev; - promise._numPrev = numPrev; + set enabled(value) { + this._enabled = value; + if (value) { + this.onEnabled.trigger(this.get()); + } + else { + this.onDisabled.trigger(this.get()); + } + // this.onVisibilityChanged.trigger(value); + } + get hasElements() { + return this.children.length > 0; + } + set template(value) { + const regex = /id="([^"]+)"/g; + const temp = document.createElement("div"); + temp.innerHTML = value.replace(regex, `id="$1-${this.id}"`); + const newElement = temp.firstElementChild; + newElement.id = this.id; + this.domElement = newElement; + temp.remove(); + } + constructor(components, template, id) { + super(components); + this.name = "SimpleUIComponent"; + // TODO: Remove children and leave only slots? + this.children = []; + this.data = {}; + // Slots are other UIComponents that inherits all the logic from SimpleUIComponent + this.slots = {}; + // InnerElements are those HTML Elements which doesn't come from an UIComponent. + this.innerElements = {}; + this.onVisible = new Event(); + this.onHidden = new Event(); + this.onEnabled = new Event(); + this.onDisabled = new Event(); + this._parent = null; + this._enabled = true; + this._visible = true; + this._active = false; + this._components = components; + this.id = id !== null && id !== void 0 ? id : tooeenRandomId(); + this.template = template !== null && template !== void 0 ? template : "
"; } -} -function physicalTick() { - beginMicroTickScope() && endMicroTickScope(); -} -function beginMicroTickScope() { - var wasRootExec = isOutsideMicroTick; - isOutsideMicroTick = false; - needsNewPhysicalTick = false; - return wasRootExec; -} -function endMicroTickScope() { - var callbacks, i, l; - do { - while (microtickQueue.length > 0) { - callbacks = microtickQueue; - microtickQueue = []; - l = callbacks.length; - for (i = 0; i < l; ++i) { - var item = callbacks[i]; - item[0].apply(null, item[1]); + cleanData() { + this.data = {}; + } + get() { + return this.domElement; + } + async dispose(onlyChildren = false) { + for (const name in this.slots) { + const slot = this.slots[name]; + await slot.dispose(); + } + for (const child of this.children) { + await child.dispose(); + this.removeChild(child); + } + for (const name in this.innerElements) { + const element = this.innerElements[name]; + if (element) { + element.remove(); } } - } while (microtickQueue.length > 0); - isOutsideMicroTick = true; - needsNewPhysicalTick = true; -} -function finalizePhysicalTick() { - var unhandledErrs = unhandledErrors; - unhandledErrors = []; - unhandledErrs.forEach(p => { - p._PSD.onunhandled.call(null, p._value, p); - }); - var finalizers = tickFinalizers.slice(0); - var i = finalizers.length; - while (i) - finalizers[--i](); -} -function run_at_end_of_this_or_next_physical_tick(fn) { - function finalizer() { - fn(); - tickFinalizers.splice(tickFinalizers.indexOf(finalizer), 1); + if (!onlyChildren) { + if (this._domElement) { + this._domElement.remove(); + } + this.onVisible.reset(); + this.onHidden.reset(); + this.onEnabled.reset(); + this.onDisabled.reset(); + this.innerElements = {}; + this.children = []; + this.slots = {}; + this.parent = null; + } } - tickFinalizers.push(finalizer); - ++numScheduledCalls; - asap(() => { - if (--numScheduledCalls === 0) - finalizePhysicalTick(); - }, []); -} -function addPossiblyUnhandledError(promise) { - if (!unhandledErrors.some(p => p._value === promise._value)) - unhandledErrors.push(promise); -} -function markErrorAsHandled(promise) { - var i = unhandledErrors.length; - while (i) - if (unhandledErrors[--i]._value === promise._value) { - unhandledErrors.splice(i, 1); + addChild(...items) { + for (const item of items) { + this.children.push(item); + this.domElement.append(item.domElement); + item.parent = this; + } + } + removeChild(...items) { + for (const item of items) { + item.domElement.remove(); + item.parent = null; + } + const filtered = this.children.filter((child) => !items.includes(child)); + this.children = filtered; + } + removeFromParent() { + if (!this.parent) return; + this.get().removeAttribute("data-tooeen-slot"); + this.parent.removeChild(this); + } + getInnerElement(id) { + return this.get().querySelector(`#${id}-${this.id}`); + } + setSlot(name, uiComponent) { + const slot = this.get().querySelector(`[data-tooeen-slot="${name}"]`); + if (!slot) + throw new Error(`Slot ${name} not found. You need to declare it in the UIComponent template using data-tooeen="${name}"`); + const existingSlot = this.slots[name]; + if (existingSlot) + existingSlot.removeFromParent(); + this.slots[name] = uiComponent; + uiComponent.get().setAttribute("data-tooeen-slot", name); + slot.replaceWith(uiComponent.get()); + this.children.push(uiComponent); + } + setSlots() { + for (const name in this.slots) { + const component = this.slots[name]; + this.setSlot(name, component); } + } } -function PromiseReject(reason) { - return new DexiePromise(INTERNAL, false, reason); -} -function wrap(fn, errorCatcher) { - var psd = PSD; - return function () { - var wasRootExec = beginMicroTickScope(), outerScope = PSD; - try { - switchToZone(psd, true); - return fn.apply(this, arguments); - } - catch (e) { - errorCatcher && errorCatcher(e); + +// export class Toolbar extends SimpleUIComponent { +class Toolbar extends SimpleUIComponent { + set visible(visible) { + this._visible = visible && this.hasElements; + if (visible && this.hasElements) { + this.domElement.classList.remove("hidden"); + this.onVisible.trigger(this.get()); } - finally { - switchToZone(outerScope, false); - if (wasRootExec) - endMicroTickScope(); + else { + this.domElement.classList.add("hidden"); + this.onHidden.trigger(this.get()); } - }; -} -const task = { awaits: 0, echoes: 0, id: 0 }; -var taskCounter = 0; -var zoneStack = []; -var zoneEchoes = 0; -var totalEchoes = 0; -var zone_id_counter = 0; -function newScope(fn, props, a1, a2) { - var parent = PSD, psd = Object.create(parent); - psd.parent = parent; - psd.ref = 0; - psd.global = false; - psd.id = ++zone_id_counter; - var globalEnv = globalPSD.env; - psd.env = patchGlobalPromise ? { - Promise: DexiePromise, - PromiseProp: { value: DexiePromise, configurable: true, writable: true }, - all: DexiePromise.all, - race: DexiePromise.race, - allSettled: DexiePromise.allSettled, - any: DexiePromise.any, - resolve: DexiePromise.resolve, - reject: DexiePromise.reject, - nthen: getPatchedPromiseThen(globalEnv.nthen, psd), - gthen: getPatchedPromiseThen(globalEnv.gthen, psd) - } : {}; - if (props) - extend(psd, props); - ++parent.ref; - psd.finalize = function () { - --this.parent.ref || this.parent.finalize(); - }; - var rv = usePSD(psd, fn, a1, a2); - if (psd.ref === 0) - psd.finalize(); - return rv; -} -function incrementExpectedAwaits() { - if (!task.id) - task.id = ++taskCounter; - ++task.awaits; - task.echoes += ZONE_ECHO_LIMIT; - return task.id; -} -function decrementExpectedAwaits() { - if (!task.awaits) - return false; - if (--task.awaits === 0) - task.id = 0; - task.echoes = task.awaits * ZONE_ECHO_LIMIT; - return true; -} -if (('' + nativePromiseThen).indexOf('[native code]') === -1) { - incrementExpectedAwaits = decrementExpectedAwaits = nop; -} -function onPossibleParallellAsync(possiblePromise) { - if (task.echoes && possiblePromise && possiblePromise.constructor === NativePromise) { - incrementExpectedAwaits(); - return possiblePromise.then(x => { - decrementExpectedAwaits(); - return x; - }, e => { - decrementExpectedAwaits(); - return rejection(e); + } + get visible() { + return this._visible; + } + set enabled(enabled) { + this.closeMenus(); + this.children.forEach((button) => { + button.enabled = enabled; + button.menu.enabled = enabled; }); + this._enabled = enabled; } - return possiblePromise; -} -function zoneEnterEcho(targetZone) { - ++totalEchoes; - if (!task.echoes || --task.echoes === 0) { - task.echoes = task.id = 0; + set position(position) { + this._position = position; + this.updateElements(); } - zoneStack.push(PSD); - switchToZone(targetZone, true); -} -function zoneLeaveEcho() { - var zone = zoneStack[zoneStack.length - 1]; - zoneStack.pop(); - switchToZone(zone, false); -} -function switchToZone(targetZone, bEnteringZone) { - var currentZone = PSD; - if (bEnteringZone ? task.echoes && (!zoneEchoes++ || targetZone !== PSD) : zoneEchoes && (!--zoneEchoes || targetZone !== PSD)) { - enqueueNativeMicroTask(bEnteringZone ? zoneEnterEcho.bind(null, targetZone) : zoneLeaveEcho); + get position() { + return this._position; } - if (targetZone === PSD) - return; - PSD = targetZone; - if (currentZone === globalPSD) - globalPSD.env = snapShot(); - if (patchGlobalPromise) { - var GlobalPromise = globalPSD.env.Promise; - var targetEnv = targetZone.env; - nativePromiseProto.then = targetEnv.nthen; - GlobalPromise.prototype.then = targetEnv.gthen; - if (currentZone.global || targetZone.global) { - Object.defineProperty(_global, 'Promise', targetEnv.PromiseProp); - GlobalPromise.all = targetEnv.all; - GlobalPromise.race = targetEnv.race; - GlobalPromise.resolve = targetEnv.resolve; - GlobalPromise.reject = targetEnv.reject; - if (targetEnv.allSettled) - GlobalPromise.allSettled = targetEnv.allSettled; - if (targetEnv.any) - GlobalPromise.any = targetEnv.any; - } + constructor(components, options) { + var _a, _b; + const _options = { + position: "bottom", + ...options, + }; + const template = ` +
+ `; + super(components, template); + this.children = []; + this._parent = null; + this.name = (_a = _options.name) !== null && _a !== void 0 ? _a : "Toolbar"; + this.position = (_b = _options.position) !== null && _b !== void 0 ? _b : "bottom"; + this.visible = true; + } + get hasElements() { + return this.children.length > 0; + } + get() { + return this.domElement; + } + addChild(...button) { + button.forEach((btn) => { + btn.parent = this; + this.children.push(btn); + this.domElement.append(btn.domElement); + }); + this._components.ui.updateToolbars(); } -} -function snapShot() { - var GlobalPromise = _global.Promise; - return patchGlobalPromise ? { - Promise: GlobalPromise, - PromiseProp: Object.getOwnPropertyDescriptor(_global, "Promise"), - all: GlobalPromise.all, - race: GlobalPromise.race, - allSettled: GlobalPromise.allSettled, - any: GlobalPromise.any, - resolve: GlobalPromise.resolve, - reject: GlobalPromise.reject, - nthen: nativePromiseProto.then, - gthen: GlobalPromise.prototype.then - } : {}; -} -function usePSD(psd, fn, a1, a2, a3) { - var outerScope = PSD; - try { - switchToZone(psd, true); - return fn(a1, a2, a3); + updateElements() { + this.children.forEach((button) => (button.parent = this)); } - finally { - switchToZone(outerScope, false); + closeMenus() { + this.children.forEach((button) => button.closeMenus()); + } + setDirection(direction = "horizontal") { + this.domElement.classList.remove("flex-col"); + const directionClass = direction === "horizontal" ? ["flex"] : ["flex-col"]; + this.domElement.classList.add(...directionClass); } } -function enqueueNativeMicroTask(job) { - nativePromiseThen.call(resolvedNativePromise, job); -} -function nativeAwaitCompatibleWrap(fn, zone, possibleAwait, cleanup) { - return typeof fn !== 'function' ? fn : function () { - var outerZone = PSD; - if (possibleAwait) - incrementExpectedAwaits(); - switchToZone(zone, true); - try { - return fn.apply(this, arguments); +Toolbar.Class = { + Base: `flex shadow-md w-fit h-fit gap-x-2 gap-y-2 p-2 text-white rounded pointer-events-auto backdrop-blur-xl + bg-ifcjs-100 z-50 backdrop-blur-xl`, +}; + +class Button extends SimpleUIComponent { + set tooltip(value) { + const element = this.innerElements.tooltip; + element.textContent = value; + if (value) { + element.classList.remove("hidden"); } - finally { - switchToZone(outerZone, false); - if (cleanup) - enqueueNativeMicroTask(decrementExpectedAwaits); + else { + element.classList.add("hidden"); } - }; -} -function getPatchedPromiseThen(origThen, zone) { - return function (onResolved, onRejected) { - return origThen.call(this, nativeAwaitCompatibleWrap(onResolved, zone), nativeAwaitCompatibleWrap(onRejected, zone)); - }; -} -const UNHANDLEDREJECTION = "unhandledrejection"; -function globalError(err, promise) { - var rv; - try { - rv = promise.onuncatched(err); } - catch (e) { } - if (rv !== false) - try { - var event, eventData = { promise: promise, reason: err }; - if (_global.document && document.createEvent) { - event = document.createEvent('Event'); - event.initEvent(UNHANDLEDREJECTION, true, true); - extend(event, eventData); - } - else if (_global.CustomEvent) { - event = new CustomEvent(UNHANDLEDREJECTION, { detail: eventData }); - extend(event, eventData); + get tooltip() { + return this.innerElements.tooltip.textContent; + } + set label(value) { + const element = this.innerElements.label; + element.textContent = value; + if (value) { + element.classList.remove("hidden"); + } + else { + element.classList.add("hidden"); + } + } + get label() { + return this.innerElements.label.textContent; + } + set parent(toolbar) { + this._parent = toolbar; + if (toolbar) { + this.menu.position = toolbar.position; + this.updateMenuPlacement(); + } + } + get parent() { + return this._parent; + } + set alignment(value) { + this.domElement.classList.remove("justify-start", "justify-center", "justify-end"); + this.domElement.classList.add(`justify-${value}`); + } + set materialIcon(name) { + const icon = this.innerElements.icon; + icon.textContent = name; + if (name) { + icon.style.display = "unset"; + } + else { + icon.style.display = "none"; + } + } + get materialIcon() { + return this.innerElements.icon.textContent; + } + get customIcon() { + return this.innerElements.customIcon.innerHTML; + } + constructor(components, options) { + var _a, _b, _c; + const template = ` + + `; + super(components, template); + this.name = "TooeenButton"; + this.onClick = new Event(); + this._parent = null; + this._closeOnClick = true; + this.innerElements = { + customIcon: this.getInnerElement("custom-icon"), + icon: this.getInnerElement("icon"), + label: this.getInnerElement("label"), + tooltip: this.getInnerElement("tooltip"), + }; + this.materialIcon = (_a = options === null || options === void 0 ? void 0 : options.materialIconName) !== null && _a !== void 0 ? _a : null; + this.label = (_b = options === null || options === void 0 ? void 0 : options.name) !== null && _b !== void 0 ? _b : null; + this.tooltip = (_c = options === null || options === void 0 ? void 0 : options.tooltip) !== null && _c !== void 0 ? _c : null; + this.alignment = "start"; + if ((options === null || options === void 0 ? void 0 : options.closeOnClick) !== undefined) { + this._closeOnClick = options.closeOnClick; + } + this.domElement.onclick = async (e) => { + e.stopImmediatePropagation(); + await this.onClick.trigger(e); + if (this.menu.children.length) { + this.menu.visible = true; + this._popper.update(); } - if (event && _global.dispatchEvent) { - dispatchEvent(event); - if (!_global.PromiseRejectionEvent && _global.onunhandledrejection) - try { - _global.onunhandledrejection(event); + else if (this._closeOnClick) { + this._components.ui.closeMenus(); + this._components.ui.contextMenu.visible = false; + if (this.parent) { + if (!this.parent.parent) { + this._components.ui.closeMenus(); } - catch (_) { } + if (this.parent.closeMenus) { + this.parent.closeMenus(); + } + } } - if (debug && event && !event.defaultPrevented) { - console.warn(`Unhandled rejection: ${err.stack || err}`); + }; + this.domElement.addEventListener("mouseover", ({ target }) => { + if (this.isButton(target)) { + if (this._components.ui.tooltipsEnabled) { + this.innerElements.tooltip.classList.remove("opacity-0"); + } + } + }); + this.domElement.addEventListener("mouseleave", ({ target }) => { + if (this.isButton(target)) { + this.innerElements.tooltip.classList.add("opacity-0"); } + }); + // #region Extensible menu + this.menu = new Toolbar(components); + this.menu.visible = false; + this.menu.parent = this; + this.menu.setDirection("vertical"); + this.domElement.append(this.menu.domElement); + this._popper = createPopper(this.domElement, this.menu.domElement, { + modifiers: [ + { + name: "offset", + options: { offset: [0, 15] }, + }, + { + name: "preventOverflow", + options: { boundary: this._components.ui.viewerContainer }, + }, + ], + }); + // #endregion + this.onEnabled.add(() => (this.domElement.disabled = false)); + this.onDisabled.add(() => (this.domElement.disabled = true)); + } + async dispose(onlyChildren = false) { + await super.dispose(onlyChildren); + await this.menu.dispose(); + if (!onlyChildren) { + this.domElement.remove(); } - catch (e) { } -} -var rejection = DexiePromise.reject; - -function tempTransaction(db, mode, storeNames, fn) { - if (!db.idbdb || (!db._state.openComplete && (!PSD.letThrough && !db._vip))) { - if (db._state.openComplete) { - return rejection(new exceptions.DatabaseClosed(db._state.dbOpenError)); + this.onClick.reset(); + this._popper.destroy(); + } + addChild(...button) { + this.menu.addChild(...button); + } + closeMenus() { + this.menu.closeMenus(); + this.menu.visible = false; + } + async setCustomIcon(url) { + const { customIcon } = this.innerElements; + if (url) { + const response = await fetch(url); + customIcon.innerHTML = await response.text(); + customIcon.style.display = "unset"; } - if (!db._state.isBeingOpened) { - if (!db._options.autoOpen) - return rejection(new exceptions.DatabaseClosed()); - db.open().catch(nop); + else { + customIcon.style.display = "none"; } - return db._state.dbReadyPromise.then(() => tempTransaction(db, mode, storeNames, fn)); } - else { - var trans = db._createTransaction(mode, storeNames, db._dbSchema); - try { - trans.create(); - db._state.PR1398_maxLoop = 3; + updateMenuPlacement() { + var _a, _b, _c, _d, _e, _f; + let placement = "bottom"; + if (((_a = this.parent) === null || _a === void 0 ? void 0 : _a.position) === "bottom") { + placement = ((_b = this.parent) === null || _b === void 0 ? void 0 : _b.parent) ? "right" : "top"; } - catch (ex) { - if (ex.name === errnames.InvalidState && db.isOpen() && --db._state.PR1398_maxLoop > 0) { - console.warn('Dexie: Need to reopen db'); - db._close(); - return db.open().then(() => tempTransaction(db, mode, storeNames, fn)); - } - return rejection(ex); + if (((_c = this.parent) === null || _c === void 0 ? void 0 : _c.position) === "top") { + placement = ((_d = this.parent) === null || _d === void 0 ? void 0 : _d.parent) ? "right" : "bottom"; } - return trans._promise(mode, (resolve, reject) => { - return newScope(() => { - PSD.trans = trans; - return fn(resolve, reject, trans); - }); - }).then(result => { - return trans._completion.then(() => result); - }); + if (((_e = this.parent) === null || _e === void 0 ? void 0 : _e.position) === "left") { + placement = "right"; + } + if (((_f = this.parent) === null || _f === void 0 ? void 0 : _f.position) === "right") { + placement = "left"; + } + this._popper.setOptions({ placement }); + } + isButton(element) { + return (element === this.get() || + element === this.innerElements.icon || + element === this.innerElements.label); } } - -const DEXIE_VERSION = '3.2.4'; -const maxString = String.fromCharCode(65535); -const minKey = -Infinity; -const INVALID_KEY_ARGUMENT = "Invalid key provided. Keys must be of type string, number, Date or Array."; -const STRING_EXPECTED = "String expected."; -const connections = []; -const isIEOrEdge = typeof navigator !== 'undefined' && /(MSIE|Trident|Edge)/.test(navigator.userAgent); -const hasIEDeleteObjectStoreBug = isIEOrEdge; -const hangsOnDeleteLargeKeyRange = isIEOrEdge; -const dexieStackFrameFilter = frame => !/(dexie\.js|dexie\.min\.js)/.test(frame); -const DBNAMES_DB = '__dbnames'; -const READONLY = 'readonly'; -const READWRITE = 'readwrite'; - -function combine(filter1, filter2) { - return filter1 ? - filter2 ? - function () { return filter1.apply(this, arguments) && filter2.apply(this, arguments); } : - filter1 : - filter2; -} - -const AnyRange = { - type: 3 , - lower: -Infinity, - lowerOpen: false, - upper: [[]], - upperOpen: false +Button.Class = { + Base: ` + relative flex gap-x-2 items-center bg-transparent text-white rounded-[10px] + max-h-8 p-2 hover:cursor-pointer hover:bg-ifcjs-200 hover:text-black + data-[active=true]:cursor-pointer data-[active=true]:bg-ifcjs-200 data-[active=true]:text-black + disabled:cursor-default disabled:bg-gray-600 disabled:text-gray-400 pointer-events-auto + transition-all fill-white hover:fill-black + `, + Label: "text-sm tracking-[1.25px] whitespace-nowrap", + Tooltip: ` + transition-opacity bg-ifcjs-100 text-sm text-gray-100 rounded-md + absolute left-1/2 -translate-x-1/2 -translate-y-12 opacity-0 mx-auto p-4 w-max h-4 flex items-center + pointer-events-none + `, }; -function workaroundForUndefinedPrimKey(keyPath) { - return typeof keyPath === "string" && !/\./.test(keyPath) - ? (obj) => { - if (obj[keyPath] === undefined && (keyPath in obj)) { - obj = deepClone(obj); - delete obj[keyPath]; - } - return obj; - } - : (obj) => obj; -} - -let Table$3 = class Table { - _trans(mode, fn, writeLocked) { - const trans = this._tx || PSD.trans; - const tableName = this.name; - function checkTableInTransaction(resolve, reject, trans) { - if (!trans.schema[tableName]) - throw new exceptions.NotFound("Table " + tableName + " not part of transaction"); - return fn(trans.idbtrans, trans); - } - const wasRootExec = beginMicroTickScope(); - try { - return trans && trans.db === this.db ? - trans === PSD.trans ? - trans._promise(mode, checkTableInTransaction, writeLocked) : - newScope(() => trans._promise(mode, checkTableInTransaction, writeLocked), { trans: trans, transless: PSD.transless || PSD }) : - tempTransaction(this.db, mode, [this.name], checkTableInTransaction); +class TreeView extends SimpleUIComponent { + set description(value) { + const element = this.innerElements.description; + element.textContent = value; + if (value) { + element.classList.remove("hidden"); } - finally { - if (wasRootExec) - endMicroTickScope(); + else { + element.classList.add("hidden"); } } - get(keyOrCrit, cb) { - if (keyOrCrit && keyOrCrit.constructor === Object) - return this.where(keyOrCrit).first(cb); - return this._trans('readonly', (trans) => { - return this.core.get({ trans, key: keyOrCrit }) - .then(res => this.hook.reading.fire(res)); - }).then(cb); + get description() { + return this.innerElements.description.textContent; } - where(indexOrCrit) { - if (typeof indexOrCrit === 'string') - return new this.db.WhereClause(this, indexOrCrit); - if (isArray(indexOrCrit)) - return new this.db.WhereClause(this, `[${indexOrCrit.join('+')}]`); - const keyPaths = keys(indexOrCrit); - if (keyPaths.length === 1) - return this - .where(keyPaths[0]) - .equals(indexOrCrit[keyPaths[0]]); - const compoundIndex = this.schema.indexes.concat(this.schema.primKey).filter(ix => ix.compound && - keyPaths.every(keyPath => ix.keyPath.indexOf(keyPath) >= 0) && - ix.keyPath.every(keyPath => keyPaths.indexOf(keyPath) >= 0))[0]; - if (compoundIndex && this.db._maxKey !== maxString) - return this - .where(compoundIndex.name) - .equals(compoundIndex.keyPath.map(kp => indexOrCrit[kp])); - if (!compoundIndex && debug) - console.warn(`The query ${JSON.stringify(indexOrCrit)} on ${this.name} would benefit of a ` + - `compound index [${keyPaths.join('+')}]`); - const { idxByName } = this.schema; - const idb = this.db._deps.indexedDB; - function equals(a, b) { - try { - return idb.cmp(a, b) === 0; - } - catch (e) { - return false; - } - } - const [idx, filterFunction] = keyPaths.reduce(([prevIndex, prevFilterFn], keyPath) => { - const index = idxByName[keyPath]; - const value = indexOrCrit[keyPath]; - return [ - prevIndex || index, - prevIndex || !index ? - combine(prevFilterFn, index && index.multi ? - x => { - const prop = getByKeyPath(x, keyPath); - return isArray(prop) && prop.some(item => equals(value, item)); - } : x => equals(value, getByKeyPath(x, keyPath))) - : prevFilterFn - ]; - }, [null, null]); - return idx ? - this.where(idx.name).equals(indexOrCrit[idx.keyPath]) - .filter(filterFunction) : - compoundIndex ? - this.filter(filterFunction) : - this.where(keyPaths).equals(''); + set title(value) { + this.innerElements.title.textContent = value; } - filter(filterFunction) { - return this.toCollection().and(filterFunction); + get title() { + return this.innerElements.title.textContent; } - count(thenShortcut) { - return this.toCollection().count(thenShortcut); + set materialIcon(name) { + this.innerElements.expandBtn.textContent = name; } - offset(offset) { - return this.toCollection().offset(offset); + get expanded() { + return this._expanded; } - limit(numRows) { - return this.toCollection().limit(numRows); + set expanded(expanded) { + this._expanded = expanded; + this.slots.content.visible = expanded; + if (expanded) { + this.onExpand.trigger(); + this.innerElements.titleContainer.classList.add("bg-ifcjs-120"); + this.materialIcon = "arrow_drop_down"; + } + else { + this.onCollapse.trigger(); + this.innerElements.titleContainer.classList.remove("bg-ifcjs-120"); + this.materialIcon = "arrow_right"; + } } - each(callback) { - return this.toCollection().each(callback); + set onmouseover(listener) { + this.domElement.onmouseover = (e) => { + e.stopImmediatePropagation(); + listener(e); + }; } - toArray(thenShortcut) { - return this.toCollection().toArray(thenShortcut); + constructor(components, title) { + const template = ` +
+
+
+ +
+

+

+
+
+
+
+
+
+ `; + super(components, template); + this._expanded = true; + this.onExpand = new Event(); + this.onCollapse = new Event(); + this.onClick = new Event(); + this.domElement.onclick = async (e) => { + e.stopImmediatePropagation(); + await this.onClick.trigger(e); + }; + this.innerElements = { + titleContainer: this.getInnerElement("title-container"), + title: this.getInnerElement("title"), + description: this.getInnerElement("description"), + expandBtn: this.getInnerElement("expandBtn"), + }; + this.innerElements.expandBtn.onclick = () => this.toggle(); + this.slots = { + content: new SimpleUIComponent(components, `
`), + titleRight: new SimpleUIComponent(components), + }; + this.setSlots(); + this.title = title !== null && title !== void 0 ? title : null; + this.collapse(); } - toCollection() { - return new this.db.Collection(new this.db.WhereClause(this)); + async dispose(onlyChildren = false) { + await super.dispose(onlyChildren); + if (!onlyChildren) { + this.onExpand.reset(); + this.onCollapse.reset(); + } } - orderBy(index) { - return new this.db.Collection(new this.db.WhereClause(this, isArray(index) ? - `[${index.join('+')}]` : - index)); + toggle(deep = false) { + if (deep) { + if (this.expanded) { + this.collapse(); + } + else { + this.expand(); + } + } + else { + this.expanded = !this.expanded; + } } - reverse() { - return this.toCollection().reverse(); + addChild(...items) { + this.slots.content.addChild(...items); } - mapToClass(constructor) { - this.schema.mappedClass = constructor; - const readHook = obj => { - if (!obj) - return obj; - const res = Object.create(constructor.prototype); - for (var m in obj) - if (hasOwn(obj, m)) - try { - res[m] = obj[m]; - } - catch (_) { } - return res; - }; - if (this.schema.readHook) { - this.hook.reading.unsubscribe(this.schema.readHook); - } - this.schema.readHook = readHook; - this.hook("reading", readHook); - return constructor; + collapse(deep = true) { + if (!this.expanded) + return; + this.expanded = false; + if (!deep) + return; + for (const child of this.children) + if (child instanceof TreeView) + child.collapse(deep); } - defineClass() { - function Class(content) { - extend(this, content); - } - return this.mapToClass(Class); + expand(deep = true) { + if (this.expanded) + return; + this.expanded = true; + if (!deep) + return; + for (const child of this.children) + if (child instanceof TreeView) + child.expand(deep); } - add(obj, key) { - const { auto, keyPath } = this.schema.primKey; - let objToAdd = obj; - if (keyPath && auto) { - objToAdd = workaroundForUndefinedPrimKey(keyPath)(obj); - } - return this._trans('readwrite', trans => { - return this.core.mutate({ trans, type: 'add', keys: key != null ? [key] : null, values: [objToAdd] }); - }).then(res => res.numFailures ? DexiePromise.reject(res.failures[0]) : res.lastResult) - .then(lastResult => { - if (keyPath) { - try { - setByKeyPath(obj, keyPath, lastResult); - } - catch (_) { } +} + +// @ts-ignore +/** + * A component that handles all UI components. + */ +class UIManager extends Component { + get viewerContainer() { + return this._components.renderer.get().domElement + .parentElement; + } + constructor(components) { + super(components); + this.name = "UIManager"; + this.enabled = true; + this.toolbars = []; + this.tooltipsEnabled = true; + this.children = []; + this._mouseMoved = false; + this._mouseDown = false; + this._containers = { + top: document.createElement("div"), + right: document.createElement("div"), + bottom: document.createElement("div"), + left: document.createElement("div"), + }; + this.onMouseUp = () => { + this._mouseDown = false; + }; + this.onMouseMoved = () => { + if (this._mouseDown) { + this._mouseMoved = true; } - return lastResult; + }; + this.onMouseDown = (event) => { + this._mouseDown = true; + const canvas = this._components.renderer.get().domElement; + if (event.target === canvas) { + this.closeMenus(); + this.contextMenu.visible = false; + } + }; + this.onContextMenu = (event) => { + if (this._mouseMoved) { + this._mouseMoved = false; + return; + } + event.preventDefault(); + event.stopImmediatePropagation(); + this.closeMenus(); + this._contextMenuContainer.style.left = `${event.offsetX}px`; + this._contextMenuContainer.style.top = `${event.offsetY}px`; + this.contextMenu.visible = true; + this._popperInstance.update(); + }; + this._components = components; + this.contextMenu = new Toolbar(components); + this.contextMenu.setDirection("vertical"); + this.contextMenu.position = "left"; + this._contextMenuContainer = document.createElement("div"); + this._contextMenuContainer.style.position = "absolute"; + this._contextMenuContainer.append(this.contextMenu.domElement); + this._popperInstance = createPopper(this._contextMenuContainer, this.contextMenu.domElement, { + placement: "bottom-start", + modifiers: [ + { + name: "preventOverflow", + options: { + boundary: Object.values(this._containers), + }, + }, + ], }); - } - update(keyOrObject, modifications) { - if (typeof keyOrObject === 'object' && !isArray(keyOrObject)) { - const key = getByKeyPath(keyOrObject, this.schema.primKey.keyPath); - if (key === undefined) - return rejection(new exceptions.InvalidArgument("Given object does not contain its primary key")); - try { - if (typeof modifications !== "function") { - keys(modifications).forEach(keyPath => { - setByKeyPath(keyOrObject, keyPath, modifications[keyPath]); - }); - } - else { - modifications(keyOrObject, { value: keyOrObject, primKey: key }); - } + const containerClasses = { + top: ["top-0", "pt-4"], + right: ["top-0", "right-0", "pr-4"], + bottom: ["bottom-0", "pb-4"], + left: ["top-0", "left-0", "pl-4"], + }; + for (const id in this._containers) { + const container = this._containers[id]; + container.className = + "absolute flex gap-y-3 gap-x-3 pointer-events-none p-4"; + container.classList.add(...containerClasses[id]); + container.id = `${id}-toolbar-container`; + this.setContainerAlignment(id, "center"); + } + const hContainerClass = ["flex-row", "w-full"]; + const vContainerClass = ["flex-column", "h-full"]; + this._containers.top.classList.add(...hContainerClass); + this._containers.right.classList.add(...vContainerClass); + this._containers.bottom.classList.add(...hContainerClass); + this._containers.left.classList.add(...vContainerClass); + } + get() { + return this.toolbars; + } + async dispose() { + this.setupEvents(false); + for (const name in this._containers) { + const element = this._containers[name]; + element.remove(); + } + for (const toolbar of this.toolbars) { + await toolbar.dispose(); + } + for (const child of this.children) { + await child.dispose(); + } + this._popperInstance.destroy(); + this.children = []; + await this.contextMenu.dispose(); + this._containers = {}; + this._contextMenuContainer.remove(); + this._popperInstance = null; + this._components = null; + this.contextMenu = null; + this._contextMenuContainer = null; + } + init() { + this.setupEvents(true); + this.viewerContainer.append(this._containers.top, this._containers.right, this._containers.bottom, this._containers.left, this._contextMenuContainer); + } + add(...uiComponents) { + for (const component of uiComponents) { + this.children.push(component); + this.viewerContainer.append(component.domElement); + } + } + closeMenus() { + this.toolbars.forEach((toolbar) => toolbar.closeMenus()); + this.contextMenu.closeMenus(); + } + setContainerAlignment(container, alingment) { + this._containers[container].style.justifyContent = alingment; + this._containers[container].style.alignItems = alingment; + } + addToolbar(...toolbar) { + toolbar.forEach((tlbr) => { + const container = this._containers[tlbr.position]; + if (!container) { + return; } - catch (_a) { + container.append(tlbr.domElement); + this.toolbars.push(tlbr); + }); + this.updateToolbars(); + } + updateToolbars() { + this.toolbars.forEach((toolbar) => { + toolbar.visible = true; + toolbar.updateElements(); + if (toolbar.position === "bottom" || toolbar.position === "top") { + toolbar.setDirection("horizontal"); } - return this.where(":id").equals(key).modify(modifications); + else { + toolbar.setDirection("vertical"); + } + }); + } + setupEvents(active) { + if (active) { + this.viewerContainer.addEventListener("mouseup", this.onMouseUp); + this.viewerContainer.addEventListener("mousedown", this.onMouseDown); + this.viewerContainer.addEventListener("mousemove", this.onMouseMoved); + this.viewerContainer.addEventListener("contextmenu", this.onContextMenu); } else { - return this.where(":id").equals(keyOrObject).modify(modifications); + this.viewerContainer.removeEventListener("mouseup", this.onMouseUp); + this.viewerContainer.removeEventListener("mousedown", this.onMouseDown); + this.viewerContainer.removeEventListener("mousemove", this.onMouseMoved); + this.viewerContainer.removeEventListener("contextmenu", this.onContextMenu); } } - put(obj, key) { - const { auto, keyPath } = this.schema.primKey; - let objToAdd = obj; - if (keyPath && auto) { - objToAdd = workaroundForUndefinedPrimKey(keyPath)(obj); - } - return this._trans('readwrite', trans => this.core.mutate({ trans, type: 'put', values: [objToAdd], keys: key != null ? [key] : null })) - .then(res => res.numFailures ? DexiePromise.reject(res.failures[0]) : res.lastResult) - .then(lastResult => { - if (keyPath) { - try { - setByKeyPath(obj, keyPath, lastResult); - } - catch (_) { } - } - return lastResult; +} +// TODO: Does this need to be here? +UIManager.Class = { + Label: "block leading-6 text-gray-400 text-sm", +}; + +class SimpleUICard extends SimpleUIComponent { + set title(value) { + this.innerElements.title.textContent = value; + } + get title() { + return this.innerElements.title.textContent; + } + set description(value) { + this.innerElements.description.textContent = value; + } + get description() { + return this.innerElements.description.textContent; + } + constructor(components, id) { + const template = ` +
+
+

+

+
+
+
+ `; + super(components, template, id); + this.name = "SimpleUICard"; + this.innerElements = { + title: this.getInnerElement("title"), + description: this.getInnerElement("description"), + }; + this.slots = { + rightContainer: new SimpleUIComponent(components, `
`), + }; + this.setSlots(); + } + addChild(...items) { + items.forEach((item) => { + this.slots.rightContainer.addChild(item); }); } - delete(key) { - return this._trans('readwrite', trans => this.core.mutate({ trans, type: 'delete', keys: [key] })) - .then(res => res.numFailures ? DexiePromise.reject(res.failures[0]) : undefined); +} + +class FloatingWindow extends SimpleUIComponent { + get viewerContainer() { + return this._components.renderer.get().domElement + .parentElement; } - clear() { - return this._trans('readwrite', trans => this.core.mutate({ trans, type: 'deleteRange', range: AnyRange })) - .then(res => res.numFailures ? DexiePromise.reject(res.failures[0]) : undefined); + set description(value) { + const element = this.innerElements.description; + element.textContent = value; + if (value) { + element.classList.remove("hidden"); + } + else { + element === null || element === void 0 ? void 0 : element.classList.add("hidden"); + } } - bulkGet(keys) { - return this._trans('readonly', trans => { - return this.core.getMany({ - keys, - trans - }).then(result => result.map(res => this.hook.reading.fire(res))); - }); + get description() { + return this.innerElements.description.textContent; } - bulkAdd(objects, keysOrOptions, options) { - const keys = Array.isArray(keysOrOptions) ? keysOrOptions : undefined; - options = options || (keys ? undefined : keysOrOptions); - const wantResults = options ? options.allKeys : undefined; - return this._trans('readwrite', trans => { - const { auto, keyPath } = this.schema.primKey; - if (keyPath && keys) - throw new exceptions.InvalidArgument("bulkAdd(): keys argument invalid on tables with inbound keys"); - if (keys && keys.length !== objects.length) - throw new exceptions.InvalidArgument("Arguments objects and keys must have the same length"); - const numObjects = objects.length; - let objectsToAdd = keyPath && auto ? - objects.map(workaroundForUndefinedPrimKey(keyPath)) : - objects; - return this.core.mutate({ trans, type: 'add', keys: keys, values: objectsToAdd, wantResults }) - .then(({ numFailures, results, lastResult, failures }) => { - const result = wantResults ? results : lastResult; - if (numFailures === 0) - return result; - throw new BulkError(`${this.name}.bulkAdd(): ${numFailures} of ${numObjects} operations failed`, failures); - }); - }); + set title(value) { + const element = this.innerElements.title; + element.textContent = value; + if (value) { + element.classList.remove("hidden"); + } + else { + element.classList.add("hidden"); + } } - bulkPut(objects, keysOrOptions, options) { - const keys = Array.isArray(keysOrOptions) ? keysOrOptions : undefined; - options = options || (keys ? undefined : keysOrOptions); - const wantResults = options ? options.allKeys : undefined; - return this._trans('readwrite', trans => { - const { auto, keyPath } = this.schema.primKey; - if (keyPath && keys) - throw new exceptions.InvalidArgument("bulkPut(): keys argument invalid on tables with inbound keys"); - if (keys && keys.length !== objects.length) - throw new exceptions.InvalidArgument("Arguments objects and keys must have the same length"); - const numObjects = objects.length; - let objectsToPut = keyPath && auto ? - objects.map(workaroundForUndefinedPrimKey(keyPath)) : - objects; - return this.core.mutate({ trans, type: 'put', keys: keys, values: objectsToPut, wantResults }) - .then(({ numFailures, results, lastResult, failures }) => { - const result = wantResults ? results : lastResult; - if (numFailures === 0) - return result; - throw new BulkError(`${this.name}.bulkPut(): ${numFailures} of ${numObjects} operations failed`, failures); - }); - }); + get title() { + return this.innerElements.title.textContent; } - bulkDelete(keys) { - const numKeys = keys.length; - return this._trans('readwrite', trans => { - return this.core.mutate({ trans, type: 'delete', keys: keys }); - }).then(({ numFailures, lastResult, failures }) => { - if (numFailures === 0) - return lastResult; - throw new BulkError(`${this.name}.bulkDelete(): ${numFailures} of ${numKeys} operations failed`, failures); - }); + set resizeable(value) { + this._resizeable = value; + if (value) { + this.get().classList.add("resize"); + } + else { + this.get().classList.remove("resize"); + } + } + get resizeable() { + return this._resizeable; + } + set movable(value) { + this._movable = value; + if (value) { + this.innerElements.titleContainer.classList.add("cursor-move"); + } + else { + this.innerElements.titleContainer.classList.remove("cursor-move"); + } + } + get movable() { + return this._movable; + } + constructor(components, id) { + const template = ` +
+
+
+

Tooeen Floating Window

+

+
+ close +
+
+
+ `; + super(components, template, id); + this._resizeable = true; + this._movable = true; + this.onMoved = new Event(); + this.onResized = new Event(); + this._isMouseDown = false; + this._offsetX = 0; + this._offsetY = 0; + this.onMOuseDown = (event) => { + if (!this.movable) + return; + this._isMouseDown = true; + const rect = this.domElement.getBoundingClientRect(); + this._offsetX = event.clientX - rect.left; + this._offsetY = event.clientY - rect.top; + }; + this.onMouseUp = () => { + this._isMouseDown = false; + }; + this.onMouseMove = (event) => { + if (!(this._isMouseDown && this.movable)) + return; + const { width, height } = this.domElement.getBoundingClientRect(); + const { x, y, width: containerWidth, height: containerHeight, } = this.viewerContainer.getBoundingClientRect(); + const maxLeft = containerWidth - width; + const maxTop = containerHeight - height; + const left = Math.max(0, Math.min(event.clientX - this._offsetX - x, maxLeft)); + const top = Math.max(0, Math.min(event.clientY - this._offsetY - y, maxTop)); + this.domElement.style.left = `${left}px`; + this.domElement.style.top = `${top}px`; + this.onMoved.trigger(this); + }; + this.innerElements = { + title: this.getInnerElement("title"), + description: this.getInnerElement("description"), + titleContainer: this.getInnerElement("title-container"), + closeBtn: this.getInnerElement("close"), + }; + this.slots = { + content: new SimpleUIComponent(components, `
`), + }; + this.setSlots(); + this.innerElements.closeBtn.onclick = () => (this.visible = false); + this.setMovableListeners(); + const observer = new ResizeObserver(() => this.onResized.trigger()); + observer.observe(this.get()); + this.description = null; + this.movable = true; + this.resizeable = true; + this.referencePoints = { + topLeft: new Vector2$1(), + top: new Vector2$1(), + topRight: new Vector2$1(), + left: new Vector2$1(), + center: new Vector2$1(), + right: new Vector2$1(), + bottomLeft: new Vector2$1(), + bottom: new Vector2$1(), + bottomRight: new Vector2$1(), + }; + this.domElement.style.width = "400px"; + this.domElement.style.height = "250px"; + } + async dispose(onlyChildren = false) { + await super.dispose(onlyChildren); + this.setupEvents(false); + this.onMoved.reset(); + this.onResized.reset(); + } + setMovableListeners() { + // For node.js + try { + // eslint-disable-next-line no-unused-expressions + this._components.renderer; + } + catch (_e) { + return; + } + this.setupEvents(true); + } + addChild(...items) { + const content = this.slots.content; + content.addChild(...items); + if (!content.visible) + content.visible = true; + } + updateReferencePoints() { + const uiElementRect = this.domElement.getBoundingClientRect(); + this.referencePoints.topLeft.set(uiElementRect.x, uiElementRect.y); + this.referencePoints.top.set(uiElementRect.x + uiElementRect.width / 2, uiElementRect.y); + this.referencePoints.topRight.set(uiElementRect.x + uiElementRect.width, uiElementRect.y); + this.referencePoints.left.set(uiElementRect.x, uiElementRect.y + uiElementRect.height / 2); + this.referencePoints.center.set(uiElementRect.x + uiElementRect.width / 2, uiElementRect.y + uiElementRect.height / 2); + this.referencePoints.right.set(uiElementRect.x + uiElementRect.width, uiElementRect.y + uiElementRect.height / 2); + this.referencePoints.bottomLeft.set(uiElementRect.x, uiElementRect.y + uiElementRect.height); + this.referencePoints.bottom.set(uiElementRect.x + uiElementRect.width / 2, uiElementRect.y + uiElementRect.height); + this.referencePoints.bottomRight.set(uiElementRect.x + uiElementRect.width, uiElementRect.y + uiElementRect.height); + } + setupEvents(active) { + const title = this.innerElements.titleContainer; + const container = this.viewerContainer; + if (active) { + if (title) { + title.addEventListener("mousedown", this.onMOuseDown); + } + container.addEventListener("mousemove", this.onMouseMove); + container.addEventListener("mouseup", this.onMouseUp); + } + else { + if (title) { + title.removeEventListener("mousedown", this.onMOuseDown); + } + container.removeEventListener("mousemove", this.onMouseMove); + container.removeEventListener("mouseup", this.onMouseUp); + } } +} +FloatingWindow.Class = { + Base: "absolute flex flex-col backdrop-blur-xl shadow-md overflow-auto top-5 resize z-50 left-5 min-h-[80px] min-w-[150px] w-fit h-fit text-white bg-ifcjs-100 rounded-md", + Description: "text-base text-gray-400", }; -function Events(ctx) { - var evs = {}; - var rv = function (eventName, subscriber) { - if (subscriber) { - var i = arguments.length, args = new Array(i - 1); - while (--i) - args[i - 1] = arguments[i]; - evs[eventName].subscribe.apply(null, args); - return ctx; +class Dropdown extends SimpleUIComponent { + set value(value) { + var _a; + const option = (_a = this.options.find((v) => v === value)) !== null && _a !== void 0 ? _a : this.options[0]; + this.innerElements.button.textContent = option !== null && option !== void 0 ? option : null; + this.onChange.trigger(this.value); + } + get value() { + return this.innerElements.button.textContent; + } + set allowSearch(value) { + this._allowSearch = value; + if (value) { + this.innerElements.search.classList.remove("hidden"); } - else if (typeof (eventName) === 'string') { - return evs[eventName]; + else { + this.innerElements.search.classList.add("hidden"); } - }; - rv.addEventType = add; - for (var i = 1, l = arguments.length; i < l; ++i) { - add(arguments[i]); } - return rv; - function add(eventName, chainFunction, defaultFunction) { - if (typeof eventName === 'object') - return addConfiguredEvents(eventName); - if (!chainFunction) - chainFunction = reverseStoppableEventChain; - if (!defaultFunction) - defaultFunction = nop; - var context = { - subscribers: [], - fire: defaultFunction, - subscribe: function (cb) { - if (context.subscribers.indexOf(cb) === -1) { - context.subscribers.push(cb); - context.fire = chainFunction(context.fire, cb); - } - }, - unsubscribe: function (cb) { - context.subscribers = context.subscribers.filter(function (fn) { return fn !== cb; }); - context.fire = context.subscribers.reduce(chainFunction, defaultFunction); + get allowSearch() { + return this._allowSearch; + } + set label(value) { + this.innerElements.label.textContent = value; + if (value) { + this.innerElements.label.classList.remove("hidden"); + } + else { + this.innerElements.label.classList.add("hidden"); + } + } + get label() { + return this.innerElements.label.textContent; + } + constructor(components, name = "Tooeen Dropdown") { + const template = ` +
+ + + +
+ `; + super(components, template); + this.name = "TooeenDropdown"; + this.options = []; + this.onChange = new Event(); + this._allowSearch = false; + this.hide = (event) => { + if (!this.get().contains(event.target)) { + this.innerElements.dropdown.classList.add("hidden"); } }; - evs[eventName] = rv[eventName] = context; - return context; + this.innerElements = { + label: this.getInnerElement("label"), + button: this.getInnerElement("button"), + dropdown: this.getInnerElement("dropdown"), + search: this.getInnerElement("search"), + searchInput: this.getInnerElement("searchInput"), + dropdownList: this.getInnerElement("dropdownList"), + }; + this.setSearch(); + this.innerElements.button.onclick = () => this.toggle(); + this.setupEvents(true); + this.label = name; } - function addConfiguredEvents(cfg) { - keys(cfg).forEach(function (eventName) { - var args = cfg[eventName]; - if (isArray(args)) { - add(eventName, cfg[eventName][0], cfg[eventName][1]); - } - else if (args === 'asap') { - var context = add(eventName, mirror, function fire() { - var i = arguments.length, args = new Array(i); - while (i--) - args[i] = arguments[i]; - context.subscribers.forEach(function (fn) { - asap$1(function fireEvent() { - fn.apply(null, args); - }); - }); - }); + async dispose(onlyChildren = false) { + super.dispose(onlyChildren); + this.onChange.reset(); + this.setupEvents(false); + } + toggle() { + if (this.innerElements.dropdown.classList.contains("hidden")) { + this.innerElements.dropdown.classList.remove("hidden"); + } + else { + this.innerElements.dropdown.classList.add("hidden"); + } + } + addOption(...value) { + const options = value.filter((option) => !this.options.includes(option)); + for (const option of options) { + this.options.push(option); + const li = document.createElement("li"); + li.id = `${option.replace(/\s+/g, "_")}-${this.id}`; + li.className = "py-2 text-base cursor-pointer hover:text-ifcjs-200"; + li.textContent = option; + li.onclick = () => { + this.value = option; + this.innerElements.dropdown.classList.add("hidden"); + }; + this.innerElements.dropdownList.appendChild(li); + } + return this; + } + removeOption(...value) { + const optionsToDelete = value.filter((option) => this.options.includes(option)); + for (const name of optionsToDelete) { + const option = this.get().querySelector(`#${name.replace(/\s+/g, "_")}-${this.id}`); + if (!option) + continue; + option.remove(); + } + this.options = this.options.filter((option) => !value.includes(option)); + return this; + } + setSearch() { + this.innerElements.searchInput.oninput = () => { + var _a; + const searchValue = this.innerElements.searchInput.value.toLowerCase(); + const list = this.innerElements.dropdownList.children; + for (const child of list) { + const childText = (_a = child.textContent) === null || _a === void 0 ? void 0 : _a.toLowerCase(); + if (!childText) + continue; + if (childText.includes(searchValue)) { + child.classList.remove("hidden"); + } + else { + child.classList.add("hidden"); + } } - else - throw new exceptions.InvalidArgument("Invalid event config"); - }); + }; + } + setupEvents(active) { + if (active) { + document.addEventListener("click", this.hide, true); + } + else { + document.removeEventListener("click", this.hide, true); + } } } -function makeClassConstructor(prototype, constructor) { - derive(constructor).from({ prototype }); - return constructor; +class TextInput extends SimpleUIComponent { + set value(value) { + this.innerElements.input.value = value; + this.onChange.trigger(this.value); + } + get value() { + return this.innerElements.input.value; + } + set label(value) { + this.innerElements.label.textContent = value; + if (value) { + this.innerElements.label.classList.remove("hidden"); + } + else { + this.innerElements.label.classList.add("hidden"); + } + } + get label() { + return this.innerElements.label.textContent; + } + constructor(components) { + const template = ` +
+ + +
+ `; + super(components, template); + this.name = "TooeenTextInput"; + this.onChange = new Event(); + this.innerElements = { + label: this.getInnerElement("label"), + input: this.getInnerElement("input"), + }; + this.label = "Tooeen Text"; + this.innerElements.label.setAttribute("for", `input-${this.id}`); + } + async dispose(onlyChildren = false) { + await super.dispose(onlyChildren); + this.onChange.reset(); + } } -function createTableConstructor(db) { - return makeClassConstructor(Table$3.prototype, function Table(name, tableSchema, trans) { - this.db = db; - this._tx = trans; - this.name = name; - this.schema = tableSchema; - this.hook = db._allTables[name] ? db._allTables[name].hook : Events(null, { - "creating": [hookCreatingChain, nop], - "reading": [pureFunctionChain, mirror], - "updating": [hookUpdatingChain, nop], - "deleting": [hookDeletingChain, nop] +class CheckboxInput extends SimpleUIComponent { + set value(value) { + this.innerElements.input.checked = value; + this.onChange.trigger(this.value); + } + get value() { + return this.innerElements.input.checked; + } + set label(value) { + this.innerElements.label.textContent = value; + if (value) { + this.innerElements.label.classList.remove("hidden"); + } + else { + this.innerElements.label.classList.add("hidden"); + } + } + get label() { + return this.innerElements.label.textContent; + } + constructor(components) { + const template = ` +
+ + +
+ `; + super(components, template); + this.name = "TooeenCheckboxInput"; + this.onChange = new Event(); + this.innerElements = { + label: this.getInnerElement("label"), + input: this.getInnerElement("input"), + }; + this.innerElements.input.addEventListener("change", () => { + this.onChange.trigger(this.value); }); - }); + this.label = "Tooeen Checkbox"; + } + async dispose(onlyChildren = false) { + await super.dispose(onlyChildren); + this.onChange.reset(); + } } -function isPlainKeyRange(ctx, ignoreLimitFilter) { - return !(ctx.filter || ctx.algorithm || ctx.or) && - (ignoreLimitFilter ? ctx.justLimit : !ctx.replayFilter); -} -function addFilter(ctx, fn) { - ctx.filter = combine(ctx.filter, fn); -} -function addReplayFilter(ctx, factory, isLimitFilter) { - var curr = ctx.replayFilter; - ctx.replayFilter = curr ? () => combine(curr(), factory()) : factory; - ctx.justLimit = isLimitFilter && !curr; -} -function addMatchFilter(ctx, fn) { - ctx.isMatch = combine(ctx.isMatch, fn); -} -function getIndexOrStore(ctx, coreSchema) { - if (ctx.isPrimKey) - return coreSchema.primaryKey; - const index = coreSchema.getIndexByKeyPath(ctx.index); - if (!index) - throw new exceptions.Schema("KeyPath " + ctx.index + " on object store " + coreSchema.name + " is not indexed"); - return index; -} -function openCursor(ctx, coreTable, trans) { - const index = getIndexOrStore(ctx, coreTable.schema); - return coreTable.openCursor({ - trans, - values: !ctx.keysOnly, - reverse: ctx.dir === 'prev', - unique: !!ctx.unique, - query: { - index, - range: ctx.range +class ColorInput extends SimpleUIComponent { + set value(value) { + this.innerElements.input.value = value; + this.onChange.trigger(this.value); + } + get value() { + return this.innerElements.input.value; + } + set label(value) { + this.innerElements.label.textContent = value; + if (value) { + this.innerElements.label.classList.remove("hidden"); + } + else { + this.innerElements.label.classList.add("hidden"); } - }); -} -function iter(ctx, fn, coreTrans, coreTable) { - const filter = ctx.replayFilter ? combine(ctx.filter, ctx.replayFilter()) : ctx.filter; - if (!ctx.or) { - return iterate(openCursor(ctx, coreTable, coreTrans), combine(ctx.algorithm, filter), fn, !ctx.keysOnly && ctx.valueMapper); } - else { - const set = {}; - const union = (item, cursor, advance) => { - if (!filter || filter(cursor, advance, result => cursor.stop(result), err => cursor.fail(err))) { - var primaryKey = cursor.primaryKey; - var key = '' + primaryKey; - if (key === '[object ArrayBuffer]') - key = '' + new Uint8Array(primaryKey); - if (!hasOwn(set, key)) { - set[key] = true; - fn(item, cursor, advance); - } - } + get label() { + return this.innerElements.label.textContent; + } + // @ts-ignore + constructor(components) { + const template = ` +
+ + +
+ `; + super(components, template); + this.name = "TooeenColorInput"; + this.onChange = new Event(); + this.innerElements = { + label: this.getInnerElement("label"), + input: this.getInnerElement("input"), + }; + this.label = "Tooeen Color"; + this.value = "#BCF124"; + this.innerElements.input.oninput = () => { + this.onChange.trigger(this.value); }; - return Promise.all([ - ctx.or._iterate(union, coreTrans), - iterate(openCursor(ctx, coreTable, coreTrans), ctx.algorithm, union, !ctx.keysOnly && ctx.valueMapper) - ]); } -} -function iterate(cursorPromise, filter, fn, valueMapper) { - var mappedFn = valueMapper ? (x, c, a) => fn(valueMapper(x), c, a) : fn; - var wrappedFn = wrap(mappedFn); - return cursorPromise.then(cursor => { - if (cursor) { - return cursor.start(() => { - var c = () => cursor.continue(); - if (!filter || filter(cursor, advancer => c = advancer, val => { cursor.stop(val); c = nop; }, e => { cursor.fail(e); c = nop; })) - wrappedFn(cursor.value, cursor, advancer => c = advancer); - c(); - }); - } - }); + async dispose(onlyChildren = false) { + await super.dispose(onlyChildren); + this.onChange.reset(); + } } -function cmp(a, b) { - try { - const ta = type(a); - const tb = type(b); - if (ta !== tb) { - if (ta === 'Array') - return 1; - if (tb === 'Array') - return -1; - if (ta === 'binary') - return 1; - if (tb === 'binary') - return -1; - if (ta === 'string') - return 1; - if (tb === 'string') - return -1; - if (ta === 'Date') - return 1; - if (tb !== 'Date') - return NaN; - return -1; +class RangeInput extends SimpleUIComponent { + set value(value) { + this.innerElements.input.value = String(value); + this.onChange.trigger(this.value); + } + get value() { + return Number(this.innerElements.input.value); + } + set label(value) { + this.innerElements.label.textContent = value; + if (value) { + this.innerElements.label.classList.remove("hidden"); } - switch (ta) { - case 'number': - case 'Date': - case 'string': - return a > b ? 1 : a < b ? -1 : 0; - case 'binary': { - return compareUint8Arrays(getUint8Array(a), getUint8Array(b)); - } - case 'Array': - return compareArrays(a, b); + else { + this.innerElements.label.classList.add("hidden"); } } - catch (_a) { } - return NaN; -} -function compareArrays(a, b) { - const al = a.length; - const bl = b.length; - const l = al < bl ? al : bl; - for (let i = 0; i < l; ++i) { - const res = cmp(a[i], b[i]); - if (res !== 0) - return res; + get label() { + return this.innerElements.label.textContent; + } + set min(value) { + this.innerElements.input.min = String(value); + } + get min() { + return Number(this.innerElements.input.min); + } + set max(value) { + this.innerElements.input.max = String(value); + } + get max() { + return Number(this.innerElements.input.max); + } + set step(value) { + this.innerElements.input.step = String(value); + } + get step() { + return Number(this.innerElements.input.step); + } + // @ts-ignore + constructor(components) { + const template = ` +
+ + +
+ `; + super(components, template); + this.name = "TooeenRangeInput"; + this.onChange = new Event(); + this.innerElements = { + label: this.getInnerElement("label"), + input: this.getInnerElement("input"), + }; + this.label = "Tooeen Range"; + this.innerElements.input.oninput = () => { + this.onChange.trigger(this.value); + }; } - return al === bl ? 0 : al < bl ? -1 : 1; } -function compareUint8Arrays(a, b) { - const al = a.length; - const bl = b.length; - const l = al < bl ? al : bl; - for (let i = 0; i < l; ++i) { - if (a[i] !== b[i]) - return a[i] < b[i] ? -1 : 1; + +class Canvas extends SimpleUIComponent { + constructor(components) { + const template = ` + + `; + super(components, template); + this.name = "Canvas"; + this.onResize = new Event(); + this._size = new THREE$1.Vector2(320, 160); + } + getSize() { + return this._size; + } + resize(size) { + if (size) { + this._size = size; + this.domElement.style.width = `${size.x}px`; + this.domElement.style.height = `${size.y}px`; + this.onResize.trigger(size); + } } - return al === bl ? 0 : al < bl ? -1 : 1; } -function type(x) { - const t = typeof x; - if (t !== 'object') - return t; - if (ArrayBuffer.isView(x)) - return 'binary'; - const tsTag = toStringTag(x); - return tsTag === 'ArrayBuffer' ? 'binary' : tsTag; + +class DragAndDropInput extends SimpleUIComponent { + constructor(components, config) { + const subtitle = config ? config.subTitle : ""; + const template = ` +
+
+ +
+
+ `; + super(components, template); + this.name = "DragAndDropInput"; + this.onFilesLoaded = new Event(); + const input = this.get().querySelector("input"); + if (!input) + throw new Error("Input not found!"); + const onFilesLoaded = async () => { + if (input.files === null) + return; + await this.onFilesLoaded.trigger(input.files); + }; + input.onchange = () => onFilesLoaded(); + const allowDragDrop = (event) => event.preventDefault(); + this.get().ondragover = allowDragDrop; + this.get().ondragenter = allowDragDrop; + this.get().ondrop = async (event) => { + event.preventDefault(); + input.files = event.dataTransfer.files; + await onFilesLoaded(); + }; + } + async dispose(onlyChildren = false) { + await super.dispose(onlyChildren); + this.onFilesLoaded.reset(); + } } -function getUint8Array(a) { - if (a instanceof Uint8Array) - return a; - if (ArrayBuffer.isView(a)) - return new Uint8Array(a.buffer, a.byteOffset, a.byteLength); - return new Uint8Array(a); + +class Spinner extends SimpleUIComponent { + constructor(components) { + const template = ` +
+
+ + Loading... +
+
+ `; + super(components, template); + this.name = "Spinner"; + } } -class Collection { - _read(fn, cb) { - var ctx = this._ctx; - return ctx.error ? - ctx.table._trans(null, rejection.bind(null, ctx.error)) : - ctx.table._trans('readonly', fn).then(cb); +class ToastNotification extends SimpleUIComponent { + set materialIcon(name) { + this.innerElements.icon.textContent = name; + if (name) { + this.innerElements.icon.classList.remove("hidden"); + } + else { + this.innerElements.icon.classList.add("hidden"); + } + } + constructor(components, config) { + var _a; + // TODO: Extract icon ui component and reuse it + const template = ` +
+ +
+ `; + super(components, template); + this.name = "ToastNotification"; + this.duration = 3000; + this.innerElements = { + icon: this.getInnerElement("icon"), + message: this.getInnerElement("message"), + }; + this.domElement.style.zIndex = "9999"; + this.materialIcon = (_a = config.materialIconName) !== null && _a !== void 0 ? _a : "done"; + this.message = config.message; } - _write(fn) { - var ctx = this._ctx; - return ctx.error ? - ctx.table._trans(null, rejection.bind(null, ctx.error)) : - ctx.table._trans('readwrite', fn, "locked"); + get message() { + return this.innerElements.message.textContent; } - _addAlgorithm(fn) { - var ctx = this._ctx; - ctx.algorithm = combine(ctx.algorithm, fn); + set message(value) { + this.innerElements.message.textContent = value; } - _iterate(fn, coreTrans) { - return iter(this._ctx, fn, coreTrans, this._ctx.table.core); + set visible(active) { + const delay = 200; + if (active) { + super.visible = active; + setTimeout(() => { + this.domElement.style.transform = "translateY(0)"; + this.hideAutomatically(); + }, delay); + } + else { + this.domElement.style.transform = "translateY(10rem)"; + setTimeout(() => (super.visible = active), delay); + } } - clone(props) { - var rv = Object.create(this.constructor.prototype), ctx = Object.create(this._ctx); - if (props) - extend(ctx, props); - rv._ctx = ctx; - return rv; + hideAutomatically() { + setTimeout(() => { + this.visible = false; + }, this.duration); } - raw() { - this._ctx.valueMapper = null; - return this; +} + +class TextArea extends SimpleUIComponent { + set value(value) { + this.innerElements.input.value = value; + this.onChange.trigger(this.value); } - each(fn) { - var ctx = this._ctx; - return this._read(trans => iter(ctx, fn, trans, ctx.table.core)); + get value() { + return this.innerElements.input.value; } - count(cb) { - return this._read(trans => { - const ctx = this._ctx; - const coreTable = ctx.table.core; - if (isPlainKeyRange(ctx, true)) { - return coreTable.count({ - trans, - query: { - index: getIndexOrStore(ctx, coreTable.schema), - range: ctx.range - } - }).then(count => Math.min(count, ctx.limit)); - } - else { - var count = 0; - return iter(ctx, () => { ++count; return false; }, trans, coreTable) - .then(() => count); - } - }).then(cb); + set label(value) { + this.innerElements.label.textContent = value; + if (value) { + this.innerElements.label.classList.remove("hidden"); + } + else { + this.innerElements.label.classList.add("hidden"); + } } - sortBy(keyPath, cb) { - const parts = keyPath.split('.').reverse(), lastPart = parts[0], lastIndex = parts.length - 1; - function getval(obj, i) { - if (i) - return getval(obj[parts[i]], i - 1); - return obj[lastPart]; + get label() { + return this.innerElements.label.textContent; + } + set placeholder(value) { + this.innerElements.input.placeholder = value; + } + get placeholder() { + return this.innerElements.input.placeholder; + } + constructor(components) { + const template = ` +
+ + +
+ `; + super(components, template); + this.name = "TooeenTextArea"; + this.onChange = new Event(); + this.innerElements = { + label: this.getInnerElement("label"), + input: this.getInnerElement("input"), + }; + this.label = "Tooeen Text Area"; + this.placeholder = "Write something..."; + this.innerElements.label.setAttribute("for", `input-${this.id}`); + } + async dispose(onlyChildren = false) { + await super.dispose(onlyChildren); + this.onChange.reset(); + } +} + +class CommandsMenu extends SimpleUIComponent { + get hasCommands() { + return Object.keys(this.commands).length !== 0; + } + constructor(components) { + const template = `
`; + super(components, template); + this.name = "CommandsMenu"; + this.offset = new THREE$1.Vector2(20, -10); + this.commands = {}; + this.hideCommandsMenu = () => { + this.visible = false; + }; + this.innerElements = { + window: this.getInnerElement("window"), + }; + this.setupEvents(true); + } + update() { + this.dispose(true); + for (const name in this.commands) { + const command = this.commands[name]; + const button = new Button(this._components, { name }); + button.name = name; + this.addChild(button); + button.onClick.add(() => command(this.commandData)); } - var order = this._ctx.dir === "next" ? 1 : -1; - function sorter(a, b) { - var aVal = getval(a, lastIndex), bVal = getval(b, lastIndex); - return aVal < bVal ? -order : aVal > bVal ? order : 0; + } + popup(x, y) { + this.domElement.style.left = `${x + this.offset.x}px`; + this.domElement.style.top = `${y + this.offset.y}px`; + this.visible = true; + } + async dispose(onlyChildren = false) { + await super.dispose(onlyChildren); + if (!onlyChildren) { + this.setupEvents(false); + this.commands = {}; + this.commandData = null; } - return this.toArray(function (a) { - return a.sort(sorter); - }).then(cb); } - toArray(cb) { - return this._read(trans => { - var ctx = this._ctx; - if (ctx.dir === 'next' && isPlainKeyRange(ctx, true) && ctx.limit > 0) { - const { valueMapper } = ctx; - const index = getIndexOrStore(ctx, ctx.table.core.schema); - return ctx.table.core.query({ - trans, - limit: ctx.limit, - values: true, - query: { - index, - range: ctx.range - } - }).then(({ result }) => valueMapper ? result.map(valueMapper) : result); + setupEvents(active) { + if (active) { + window.addEventListener("click", this.hideCommandsMenu); + } + else { + window.removeEventListener("click", this.hideCommandsMenu); + } + } +} + +// TODO: Fix tooltips for buttons in drawers +class Drawer extends SimpleUIComponent { + get visible() { + return this._visible; + } + set visible(value) { + const classes = this.domElement.classList; + const isHorizontal = this._type === "top" || this._type === "bottom"; + if (isHorizontal) { + const sign = this._type === "top" ? "-" : ""; + if (value) { + classes.remove(`${sign}translate-y-full`); } else { - const a = []; - return iter(ctx, item => a.push(item), trans, ctx.table.core).then(() => a); + classes.add(`${sign}translate-y-full`); } - }, cb); - } - offset(offset) { - var ctx = this._ctx; - if (offset <= 0) - return this; - ctx.offset += offset; - if (isPlainKeyRange(ctx)) { - addReplayFilter(ctx, () => { - var offsetLeft = offset; - return (cursor, advance) => { - if (offsetLeft === 0) - return true; - if (offsetLeft === 1) { - --offsetLeft; - return false; - } - advance(() => { - cursor.advance(offsetLeft); - offsetLeft = 0; - }); - return false; - }; - }); } else { - addReplayFilter(ctx, () => { - var offsetLeft = offset; - return () => (--offsetLeft < 0); - }); - } - return this; - } - limit(numRows) { - this._ctx.limit = Math.min(this._ctx.limit, numRows); - addReplayFilter(this._ctx, () => { - var rowsLeft = numRows; - return function (cursor, advance, resolve) { - if (--rowsLeft <= 0) - advance(resolve); - return rowsLeft >= 0; - }; - }, true); - return this; - } - until(filterFunction, bIncludeStopEntry) { - addFilter(this._ctx, function (cursor, advance, resolve) { - if (filterFunction(cursor.value)) { - advance(resolve); - return bIncludeStopEntry; + const sign = this._type === "left" ? "-" : ""; + if (value) { + classes.remove(`${sign}translate-x-full`); } else { - return true; + classes.add(`${sign}translate-x-full`); } - }); - return this; + } + this._visible = value; } - first(cb) { - return this.limit(1).toArray(function (a) { return a[0]; }).then(cb); + get size() { + return this._size; + } + set size(value) { + this._size = value; + const horizontal = this._type === "top" || this._type === "bottom"; + const height = horizontal ? this._size : "inherit"; + const width = horizontal ? "inherit" : this._size; + this.domElement.style.height = height; + this.domElement.style.width = width; + } + set alignment(value) { + const classes = this.domElement.classList; + this._type = value; + classes.remove("h-full"); + classes.remove("w-full"); + classes.remove("top-0"); + classes.remove("bottom-0"); + classes.remove("left-0"); + classes.remove("right-0"); + classes.remove("-translate-x-full"); + classes.remove("-translate-y-full"); + classes.remove("translate-x-full"); + classes.remove("translate-y-full"); + if (value === "top" || value === "bottom") { + classes.add("w-full"); + classes.add("left-0"); + classes.add(`${value}-0`); + } + else { + classes.add("h-full"); + classes.add("top-0"); + classes.add(`${value}-0`); + } + this.size = this._size; + this.visible = this._visible; } - last(cb) { - return this.reverse().first(cb); + constructor(components) { + const template = ` +
+
+
+
+
+ `; + super(components, template); + this.name = "Drawer"; + this._size = "10rem"; + this._visible = true; + this._type = "left"; + this.domElement.style.width = this._size; + this.slots = { + content: new SimpleUIComponent(components, `
`), + }; + this.setSlots(); } - filter(filterFunction) { - addFilter(this._ctx, function (cursor) { - return filterFunction(cursor.value); - }); - addMatchFilter(this._ctx, filterFunction); - return this; + addChild(...items) { + const content = this.slots.content; + content.addChild(...items); + if (!content.visible) + content.visible = true; } - and(filter) { - return this.filter(filter); +} + +class Modal extends SimpleUIComponent { + set description(value) { + const element = this.innerElements.description; + element.textContent = value; + if (value) { + element.classList.remove("hidden"); + } + else { + element === null || element === void 0 ? void 0 : element.classList.add("hidden"); + } } - or(indexName) { - return new this.db.WhereClause(this._ctx.table, indexName, this); + get description() { + return this.innerElements.description.textContent; } - reverse() { - this._ctx.dir = (this._ctx.dir === "prev" ? "next" : "prev"); - if (this._ondirectionchange) - this._ondirectionchange(this._ctx.dir); - return this; + set title(value) { + const element = this.innerElements.title; + element.textContent = value; + if (value) { + element.classList.remove("hidden"); + } + else { + element.classList.add("hidden"); + } } - desc() { - return this.reverse(); + get title() { + return this.innerElements.title.textContent; } - eachKey(cb) { - var ctx = this._ctx; - ctx.keysOnly = !ctx.isMatch; - return this.each(function (val, cursor) { cb(cursor.key, cursor); }); + set visible(value) { + this._visible = value; + if (value) { + this.get().showModal(); + this.onVisible.trigger(); + } + else { + this.get().close(); + this.onHidden.trigger(); + } + } + get visible() { + return this._visible; + } + constructor(components, title = "Tooeen Modal") { + const template = ` + +
+
+

${title}

+

+
+
+
+
+
+ `; + super(components, template); + this.onAccept = new Event(); + this.onCancel = new Event(); + this.innerElements = { + title: this.getInnerElement("title"), + description: this.getInnerElement("description"), + }; + this.slots = { + content: new SimpleUIComponent(components), + actionButtons: new SimpleUIComponent(components, `
`), + }; + this.setSlots(); + const acceptBtn = new Button(this._components); + acceptBtn.materialIcon = "check"; + acceptBtn.label = "Accept"; + acceptBtn.get().classList.remove("hover:bg-ifcjs-200"); + acceptBtn.get().classList.add("hover:bg-success"); + acceptBtn.onClick.add(() => this.onAccept.trigger()); + const cancelBtn = new Button(this._components); + cancelBtn.materialIcon = "close"; + cancelBtn.label = "Cancel"; + cancelBtn.get().classList.remove("hover:bg-ifcjs-200"); + cancelBtn.get().classList.add("hover:bg-error"); + cancelBtn.onClick.add(() => this.onCancel.trigger()); + this.slots.actionButtons.addChild(cancelBtn, acceptBtn); + } + async dispose(onlyChildren = false) { + await super.dispose(onlyChildren); + this.onCancel.reset(); + this.onAccept.reset(); } - eachUniqueKey(cb) { - this._ctx.unique = "unique"; - return this.eachKey(cb); +} + +/** + * The entry point of Open BIM Components. + * It contains the basic items to create a BIM 3D scene based on Three.js, as + * well as all the tools provided by this library. It also manages the update + * loop of everything. Each instance has to be initialized with {@link init}. + * + */ +class Components { + /** + * The [Three.js renderer](https://threejs.org/docs/#api/en/renderers/WebGLRenderer) + * used to render the scene. This library provides multiple renderer + * components with pre-made functionality (e.g. rendering of 2D CSS elements. + */ + get renderer() { + if (!this._renderer) { + throw new Error("Renderer hasn't been initialised."); + } + return this._renderer; } - eachPrimaryKey(cb) { - var ctx = this._ctx; - ctx.keysOnly = !ctx.isMatch; - return this.each(function (val, cursor) { cb(cursor.primaryKey, cursor); }); + /** + * This needs to be initialized before calling init(). + */ + set renderer(renderer) { + this._renderer = renderer; } - keys(cb) { - var ctx = this._ctx; - ctx.keysOnly = !ctx.isMatch; - var a = []; - return this.each(function (item, cursor) { - a.push(cursor.key); - }).then(function () { - return a; - }).then(cb); + /** + * The [Three.js scene](https://threejs.org/docs/#api/en/scenes/Scene) + * where all the rendered items are placed. + */ + get scene() { + if (!this._scene) { + throw new Error("Scene hasn't been initialised."); + } + return this._scene; } - primaryKeys(cb) { - var ctx = this._ctx; - if (ctx.dir === 'next' && isPlainKeyRange(ctx, true) && ctx.limit > 0) { - return this._read(trans => { - var index = getIndexOrStore(ctx, ctx.table.core.schema); - return ctx.table.core.query({ - trans, - values: false, - limit: ctx.limit, - query: { - index, - range: ctx.range - } - }); - }).then(({ result }) => result).then(cb); + /** + * This needs to be initialized before calling init(). + */ + set scene(scene) { + this._scene = scene; + } + /** + * The [Three.js camera](https://threejs.org/docs/#api/en/cameras/Camera) + * that determines the point of view of the renderer. + */ + get camera() { + if (!this._camera) { + throw new Error("Camera hasn't been initialised."); } - ctx.keysOnly = !ctx.isMatch; - var a = []; - return this.each(function (item, cursor) { - a.push(cursor.primaryKey); - }).then(function () { - return a; - }).then(cb); + return this._camera; } - uniqueKeys(cb) { - this._ctx.unique = "unique"; - return this.keys(cb); + /** + * This needs to be initialized before calling init(). + */ + set camera(camera) { + this._camera = camera; } - firstKey(cb) { - return this.limit(1).keys(function (a) { return a[0]; }).then(cb); + /** + * A component using the [Three.js raycaster](https://threejs.org/docs/#api/en/core/Raycaster) + * used primarily to pick 3D items with the mouse or a touch screen. + */ + get raycaster() { + if (!this._raycaster) { + throw new Error("Raycaster hasn't been initialised."); + } + return this._raycaster; } - lastKey(cb) { - return this.reverse().firstKey(cb); + /** + * Although this is not necessary to make the library work, it's necessary + * to initialize this if any component that needs a raycaster is used. + */ + set raycaster(raycaster) { + this._raycaster = raycaster; } - distinct() { - var ctx = this._ctx, idx = ctx.index && ctx.table.schema.idxByName[ctx.index]; - if (!idx || !idx.multi) - return this; - var set = {}; - addFilter(this._ctx, function (cursor) { - var strKey = cursor.primaryKey.toString(); - var found = hasOwn(set, strKey); - set[strKey] = true; - return !found; - }); - return this; + constructor() { + /** + * All the loaded [meshes](https://threejs.org/docs/#api/en/objects/Mesh). + * This includes fragments, 3D scans, etc. + */ + this.meshes = []; + /** + * Event that fires when this instance has been fully initialized and is + * ready to work (scene, camera and renderer are ready). + */ + this.onInitialized = new Event(); + this.enabled = false; + this.update = async () => { + if (!this.enabled) + return; + const delta = this._clock.getDelta(); + await Components.update(this.scene, delta); + await Components.update(this.renderer, delta); + await Components.update(this.camera, delta); + await this.tools.update(delta); + const renderer = this.renderer.get(); + // Works the same as requestAnimationFrame, but let us use WebXR. + renderer.setAnimationLoop(this.update); + }; + this._clock = new THREE$1.Clock(); + this.tools = new ToolComponent(this); + this.ui = new UIManager(this); + Components.setupBVH(); } - modify(changes) { - var ctx = this._ctx; - return this._write(trans => { - var modifyer; - if (typeof changes === 'function') { - modifyer = changes; - } - else { - var keyPaths = keys(changes); - var numKeys = keyPaths.length; - modifyer = function (item) { - var anythingModified = false; - for (var i = 0; i < numKeys; ++i) { - var keyPath = keyPaths[i], val = changes[keyPath]; - if (getByKeyPath(item, keyPath) !== val) { - setByKeyPath(item, keyPath, val); - anythingModified = true; - } - } - return anythingModified; - }; - } - const coreTable = ctx.table.core; - const { outbound, extractKey } = coreTable.schema.primaryKey; - const limit = this.db._options.modifyChunkSize || 200; - const totalFailures = []; - let successCount = 0; - const failedKeys = []; - const applyMutateResult = (expectedCount, res) => { - const { failures, numFailures } = res; - successCount += expectedCount - numFailures; - for (let pos of keys(failures)) { - totalFailures.push(failures[pos]); - } - }; - return this.clone().primaryKeys().then(keys => { - const nextChunk = (offset) => { - const count = Math.min(limit, keys.length - offset); - return coreTable.getMany({ - trans, - keys: keys.slice(offset, offset + count), - cache: "immutable" - }).then(values => { - const addValues = []; - const putValues = []; - const putKeys = outbound ? [] : null; - const deleteKeys = []; - for (let i = 0; i < count; ++i) { - const origValue = values[i]; - const ctx = { - value: deepClone(origValue), - primKey: keys[offset + i] - }; - if (modifyer.call(ctx, ctx.value, ctx) !== false) { - if (ctx.value == null) { - deleteKeys.push(keys[offset + i]); - } - else if (!outbound && cmp(extractKey(origValue), extractKey(ctx.value)) !== 0) { - deleteKeys.push(keys[offset + i]); - addValues.push(ctx.value); - } - else { - putValues.push(ctx.value); - if (outbound) - putKeys.push(keys[offset + i]); - } - } - } - const criteria = isPlainKeyRange(ctx) && - ctx.limit === Infinity && - (typeof changes !== 'function' || changes === deleteCallback) && { - index: ctx.index, - range: ctx.range - }; - return Promise.resolve(addValues.length > 0 && - coreTable.mutate({ trans, type: 'add', values: addValues }) - .then(res => { - for (let pos in res.failures) { - deleteKeys.splice(parseInt(pos), 1); - } - applyMutateResult(addValues.length, res); - })).then(() => (putValues.length > 0 || (criteria && typeof changes === 'object')) && - coreTable.mutate({ - trans, - type: 'put', - keys: putKeys, - values: putValues, - criteria, - changeSpec: typeof changes !== 'function' - && changes - }).then(res => applyMutateResult(putValues.length, res))).then(() => (deleteKeys.length > 0 || (criteria && changes === deleteCallback)) && - coreTable.mutate({ - trans, - type: 'delete', - keys: deleteKeys, - criteria - }).then(res => applyMutateResult(deleteKeys.length, res))).then(() => { - return keys.length > offset + count && nextChunk(offset + limit); - }); - }); - }; - return nextChunk(0).then(() => { - if (totalFailures.length > 0) - throw new ModifyError("Error modifying one or more objects", totalFailures, successCount, failedKeys); - return keys.length; - }); - }); - }); + /** + * Initializes the library. It should be called at the start of the app after + * initializing the scene, the renderer and the + * camera. Additionally, if any component that need a raycaster is + * used, the {@link raycaster} will need to be initialized. + */ + init() { + this.enabled = true; + this._clock.start(); + this.ui.init(); + this.update(); + this.onInitialized.trigger(this); } - delete() { - var ctx = this._ctx, range = ctx.range; - if (isPlainKeyRange(ctx) && - ((ctx.isPrimKey && !hangsOnDeleteLargeKeyRange) || range.type === 3 )) - { - return this._write(trans => { - const { primaryKey } = ctx.table.core.schema; - const coreRange = range; - return ctx.table.core.count({ trans, query: { index: primaryKey, range: coreRange } }).then(count => { - return ctx.table.core.mutate({ trans, type: 'deleteRange', range: coreRange }) - .then(({ failures, lastResult, results, numFailures }) => { - if (numFailures) - throw new ModifyError("Could not delete some values", Object.keys(failures).map(pos => failures[pos]), count - numFailures); - return count - numFailures; - }); - }); - }); + /** + * Disposes the memory of all the components and tools of this instance of + * the library. A memory leak will be created if: + * + * - An instance of the library ends up out of scope and this function isn't + * called. This is especially relevant in Single Page Applications (React, + * Angular, Vue, etc). + * + * - Any of the objects of this instance (meshes, geometries, etc) is + * referenced by a reference type (object or array). + * + * You can learn more about how Three.js handles memory leaks + * [here](https://threejs.org/docs/#manual/en/introduction/How-to-dispose-of-objects). + * + */ + async dispose() { + const disposer = await this.tools.get(Disposer); + this.enabled = false; + await this.tools.dispose(); + await this.ui.dispose(); + this.onInitialized.reset(); + this._clock.stop(); + for (const mesh of this.meshes) { + disposer.destroy(mesh); + } + this.meshes.length = 0; + if (this.renderer.isDisposeable()) { + await this.renderer.dispose(); + } + if (this.scene.isDisposeable()) { + await this.scene.dispose(); + } + if (this.camera.isDisposeable()) { + await this.camera.dispose(); + } + if (this.raycaster.isDisposeable()) { + await this.raycaster.dispose(); + } + } + static async update(component, delta) { + if (component.isUpdateable() && component.enabled) { + await component.update(delta); } - return this.modify(deleteCallback); + } + static setupBVH() { + THREE$1.BufferGeometry.prototype.computeBoundsTree = computeBoundsTree; + THREE$1.BufferGeometry.prototype.disposeBoundsTree = disposeBoundsTree; + THREE$1.Mesh.prototype.raycast = acceleratedRaycast; } } -const deleteCallback = (value, ctx) => ctx.value = null; -function createCollectionConstructor(db) { - return makeClassConstructor(Collection.prototype, function Collection(whereClause, keyRangeGenerator) { - this.db = db; - let keyRange = AnyRange, error = null; - if (keyRangeGenerator) - try { - keyRange = keyRangeGenerator(); - } - catch (ex) { - error = ex; - } - const whereCtx = whereClause._ctx; - const table = whereCtx.table; - const readingHook = table.hook.reading.fire; - this._ctx = { - table: table, - index: whereCtx.index, - isPrimKey: (!whereCtx.index || (table.schema.primKey.keyPath && whereCtx.index === table.schema.primKey.name)), - range: keyRange, - keysOnly: false, - dir: "next", - unique: "", - algorithm: null, - filter: null, - replayFilter: null, - justLimit: true, - isMatch: null, - offset: 0, - limit: Infinity, - error: error, - or: whereCtx.or, - valueMapper: readingHook !== mirror ? readingHook : null - }; - }); -} +const _raycaster = new Raycaster$1(); -function simpleCompare(a, b) { - return a < b ? -1 : a === b ? 0 : 1; -} -function simpleCompareReverse(a, b) { - return a > b ? -1 : a === b ? 0 : 1; -} +const _tempVector = new Vector3$1(); +const _tempVector2 = new Vector3$1(); +const _tempQuaternion = new Quaternion$1(); +const _unit = { + X: new Vector3$1( 1, 0, 0 ), + Y: new Vector3$1( 0, 1, 0 ), + Z: new Vector3$1( 0, 0, 1 ) +}; -function fail(collectionOrWhereClause, err, T) { - var collection = collectionOrWhereClause instanceof WhereClause ? - new collectionOrWhereClause.Collection(collectionOrWhereClause) : - collectionOrWhereClause; - collection._ctx.error = T ? new T(err) : new TypeError(err); - return collection; -} -function emptyCollection(whereClause) { - return new whereClause.Collection(whereClause, () => rangeEqual("")).limit(0); -} -function upperFactory(dir) { - return dir === "next" ? - (s) => s.toUpperCase() : - (s) => s.toLowerCase(); -} -function lowerFactory(dir) { - return dir === "next" ? - (s) => s.toLowerCase() : - (s) => s.toUpperCase(); -} -function nextCasing(key, lowerKey, upperNeedle, lowerNeedle, cmp, dir) { - var length = Math.min(key.length, lowerNeedle.length); - var llp = -1; - for (var i = 0; i < length; ++i) { - var lwrKeyChar = lowerKey[i]; - if (lwrKeyChar !== lowerNeedle[i]) { - if (cmp(key[i], upperNeedle[i]) < 0) - return key.substr(0, i) + upperNeedle[i] + upperNeedle.substr(i + 1); - if (cmp(key[i], lowerNeedle[i]) < 0) - return key.substr(0, i) + lowerNeedle[i] + upperNeedle.substr(i + 1); - if (llp >= 0) - return key.substr(0, llp) + lowerKey[llp] + upperNeedle.substr(llp + 1); - return null; - } - if (cmp(key[i], lwrKeyChar) < 0) - llp = i; - } - if (length < lowerNeedle.length && dir === "next") - return key + upperNeedle.substr(key.length); - if (length < key.length && dir === "prev") - return key.substr(0, upperNeedle.length); - return (llp < 0 ? null : key.substr(0, llp) + lowerNeedle[llp] + upperNeedle.substr(llp + 1)); -} -function addIgnoreCaseAlgorithm(whereClause, match, needles, suffix) { - var upper, lower, compare, upperNeedles, lowerNeedles, direction, nextKeySuffix, needlesLen = needles.length; - if (!needles.every(s => typeof s === 'string')) { - return fail(whereClause, STRING_EXPECTED); - } - function initDirection(dir) { - upper = upperFactory(dir); - lower = lowerFactory(dir); - compare = (dir === "next" ? simpleCompare : simpleCompareReverse); - var needleBounds = needles.map(function (needle) { - return { lower: lower(needle), upper: upper(needle) }; - }).sort(function (a, b) { - return compare(a.lower, b.lower); - }); - upperNeedles = needleBounds.map(function (nb) { return nb.upper; }); - lowerNeedles = needleBounds.map(function (nb) { return nb.lower; }); - direction = dir; - nextKeySuffix = (dir === "next" ? "" : suffix); - } - initDirection("next"); - var c = new whereClause.Collection(whereClause, () => createRange(upperNeedles[0], lowerNeedles[needlesLen - 1] + suffix)); - c._ondirectionchange = function (direction) { - initDirection(direction); - }; - var firstPossibleNeedle = 0; - c._addAlgorithm(function (cursor, advance, resolve) { - var key = cursor.key; - if (typeof key !== 'string') - return false; - var lowerKey = lower(key); - if (match(lowerKey, lowerNeedles, firstPossibleNeedle)) { - return true; - } - else { - var lowestPossibleCasing = null; - for (var i = firstPossibleNeedle; i < needlesLen; ++i) { - var casing = nextCasing(key, lowerKey, upperNeedles[i], lowerNeedles[i], compare, direction); - if (casing === null && lowestPossibleCasing === null) - firstPossibleNeedle = i + 1; - else if (lowestPossibleCasing === null || compare(lowestPossibleCasing, casing) > 0) { - lowestPossibleCasing = casing; - } - } - if (lowestPossibleCasing !== null) { - advance(function () { cursor.continue(lowestPossibleCasing + nextKeySuffix); }); - } - else { - advance(resolve); - } - return false; - } - }); - return c; -} -function createRange(lower, upper, lowerOpen, upperOpen) { - return { - type: 2 , - lower, - upper, - lowerOpen, - upperOpen - }; -} -function rangeEqual(value) { - return { - type: 1 , - lower: value, - upper: value - }; -} +const _changeEvent$1 = { type: 'change' }; +const _mouseDownEvent = { type: 'mouseDown' }; +const _mouseUpEvent = { type: 'mouseUp', mode: null }; +const _objectChangeEvent = { type: 'objectChange' }; -class WhereClause { - get Collection() { - return this._ctx.table.db.Collection; - } - between(lower, upper, includeLower, includeUpper) { - includeLower = includeLower !== false; - includeUpper = includeUpper === true; - try { - if ((this._cmp(lower, upper) > 0) || - (this._cmp(lower, upper) === 0 && (includeLower || includeUpper) && !(includeLower && includeUpper))) - return emptyCollection(this); - return new this.Collection(this, () => createRange(lower, upper, !includeLower, !includeUpper)); - } - catch (e) { - return fail(this, INVALID_KEY_ARGUMENT); - } - } - equals(value) { - if (value == null) - return fail(this, INVALID_KEY_ARGUMENT); - return new this.Collection(this, () => rangeEqual(value)); - } - above(value) { - if (value == null) - return fail(this, INVALID_KEY_ARGUMENT); - return new this.Collection(this, () => createRange(value, undefined, true)); - } - aboveOrEqual(value) { - if (value == null) - return fail(this, INVALID_KEY_ARGUMENT); - return new this.Collection(this, () => createRange(value, undefined, false)); - } - below(value) { - if (value == null) - return fail(this, INVALID_KEY_ARGUMENT); - return new this.Collection(this, () => createRange(undefined, value, false, true)); - } - belowOrEqual(value) { - if (value == null) - return fail(this, INVALID_KEY_ARGUMENT); - return new this.Collection(this, () => createRange(undefined, value)); - } - startsWith(str) { - if (typeof str !== 'string') - return fail(this, STRING_EXPECTED); - return this.between(str, str + maxString, true, true); - } - startsWithIgnoreCase(str) { - if (str === "") - return this.startsWith(str); - return addIgnoreCaseAlgorithm(this, (x, a) => x.indexOf(a[0]) === 0, [str], maxString); - } - equalsIgnoreCase(str) { - return addIgnoreCaseAlgorithm(this, (x, a) => x === a[0], [str], ""); - } - anyOfIgnoreCase() { - var set = getArrayOf.apply(NO_CHAR_ARRAY, arguments); - if (set.length === 0) - return emptyCollection(this); - return addIgnoreCaseAlgorithm(this, (x, a) => a.indexOf(x) !== -1, set, ""); - } - startsWithAnyOfIgnoreCase() { - var set = getArrayOf.apply(NO_CHAR_ARRAY, arguments); - if (set.length === 0) - return emptyCollection(this); - return addIgnoreCaseAlgorithm(this, (x, a) => a.some(n => x.indexOf(n) === 0), set, maxString); - } - anyOf() { - const set = getArrayOf.apply(NO_CHAR_ARRAY, arguments); - let compare = this._cmp; - try { - set.sort(compare); - } - catch (e) { - return fail(this, INVALID_KEY_ARGUMENT); - } - if (set.length === 0) - return emptyCollection(this); - const c = new this.Collection(this, () => createRange(set[0], set[set.length - 1])); - c._ondirectionchange = direction => { - compare = (direction === "next" ? - this._ascending : - this._descending); - set.sort(compare); - }; - let i = 0; - c._addAlgorithm((cursor, advance, resolve) => { - const key = cursor.key; - while (compare(key, set[i]) > 0) { - ++i; - if (i === set.length) { - advance(resolve); - return false; - } - } - if (compare(key, set[i]) === 0) { - return true; - } - else { - advance(() => { cursor.continue(set[i]); }); - return false; - } - }); - return c; - } - notEqual(value) { - return this.inAnyRange([[minKey, value], [value, this.db._maxKey]], { includeLowers: false, includeUppers: false }); - } - noneOf() { - const set = getArrayOf.apply(NO_CHAR_ARRAY, arguments); - if (set.length === 0) - return new this.Collection(this); - try { - set.sort(this._ascending); - } - catch (e) { - return fail(this, INVALID_KEY_ARGUMENT); - } - const ranges = set.reduce((res, val) => res ? - res.concat([[res[res.length - 1][1], val]]) : - [[minKey, val]], null); - ranges.push([set[set.length - 1], this.db._maxKey]); - return this.inAnyRange(ranges, { includeLowers: false, includeUppers: false }); - } - inAnyRange(ranges, options) { - const cmp = this._cmp, ascending = this._ascending, descending = this._descending, min = this._min, max = this._max; - if (ranges.length === 0) - return emptyCollection(this); - if (!ranges.every(range => range[0] !== undefined && - range[1] !== undefined && - ascending(range[0], range[1]) <= 0)) { - return fail(this, "First argument to inAnyRange() must be an Array of two-value Arrays [lower,upper] where upper must not be lower than lower", exceptions.InvalidArgument); - } - const includeLowers = !options || options.includeLowers !== false; - const includeUppers = options && options.includeUppers === true; - function addRange(ranges, newRange) { - let i = 0, l = ranges.length; - for (; i < l; ++i) { - const range = ranges[i]; - if (cmp(newRange[0], range[1]) < 0 && cmp(newRange[1], range[0]) > 0) { - range[0] = min(range[0], newRange[0]); - range[1] = max(range[1], newRange[1]); - break; - } - } - if (i === l) - ranges.push(newRange); - return ranges; - } - let sortDirection = ascending; - function rangeSorter(a, b) { return sortDirection(a[0], b[0]); } - let set; - try { - set = ranges.reduce(addRange, []); - set.sort(rangeSorter); - } - catch (ex) { - return fail(this, INVALID_KEY_ARGUMENT); - } - let rangePos = 0; - const keyIsBeyondCurrentEntry = includeUppers ? - key => ascending(key, set[rangePos][1]) > 0 : - key => ascending(key, set[rangePos][1]) >= 0; - const keyIsBeforeCurrentEntry = includeLowers ? - key => descending(key, set[rangePos][0]) > 0 : - key => descending(key, set[rangePos][0]) >= 0; - function keyWithinCurrentRange(key) { - return !keyIsBeyondCurrentEntry(key) && !keyIsBeforeCurrentEntry(key); - } - let checkKey = keyIsBeyondCurrentEntry; - const c = new this.Collection(this, () => createRange(set[0][0], set[set.length - 1][1], !includeLowers, !includeUppers)); - c._ondirectionchange = direction => { - if (direction === "next") { - checkKey = keyIsBeyondCurrentEntry; - sortDirection = ascending; - } - else { - checkKey = keyIsBeforeCurrentEntry; - sortDirection = descending; - } - set.sort(rangeSorter); - }; - c._addAlgorithm((cursor, advance, resolve) => { - var key = cursor.key; - while (checkKey(key)) { - ++rangePos; - if (rangePos === set.length) { - advance(resolve); - return false; - } - } - if (keyWithinCurrentRange(key)) { - return true; - } - else if (this._cmp(key, set[rangePos][1]) === 0 || this._cmp(key, set[rangePos][0]) === 0) { - return false; - } - else { - advance(() => { - if (sortDirection === ascending) - cursor.continue(set[rangePos][0]); - else - cursor.continue(set[rangePos][1]); - }); - return false; - } - }); - return c; - } - startsWithAnyOf() { - const set = getArrayOf.apply(NO_CHAR_ARRAY, arguments); - if (!set.every(s => typeof s === 'string')) { - return fail(this, "startsWithAnyOf() only works with strings"); - } - if (set.length === 0) - return emptyCollection(this); - return this.inAnyRange(set.map((str) => [str, str + maxString])); - } -} +class TransformControls extends Object3D { -function createWhereClauseConstructor(db) { - return makeClassConstructor(WhereClause.prototype, function WhereClause(table, index, orCollection) { - this.db = db; - this._ctx = { - table: table, - index: index === ":id" ? null : index, - or: orCollection - }; - const indexedDB = db._deps.indexedDB; - if (!indexedDB) - throw new exceptions.MissingAPI(); - this._cmp = this._ascending = indexedDB.cmp.bind(indexedDB); - this._descending = (a, b) => indexedDB.cmp(b, a); - this._max = (a, b) => indexedDB.cmp(a, b) > 0 ? a : b; - this._min = (a, b) => indexedDB.cmp(a, b) < 0 ? a : b; - this._IDBKeyRange = db._deps.IDBKeyRange; - }); -} + constructor( camera, domElement ) { -function eventRejectHandler(reject) { - return wrap(function (event) { - preventDefault(event); - reject(event.target.error); - return false; - }); -} -function preventDefault(event) { - if (event.stopPropagation) - event.stopPropagation(); - if (event.preventDefault) - event.preventDefault(); -} + super(); -const DEXIE_STORAGE_MUTATED_EVENT_NAME = 'storagemutated'; -const STORAGE_MUTATED_DOM_EVENT_NAME = 'x-storagemutated-1'; -const globalEvents = Events(null, DEXIE_STORAGE_MUTATED_EVENT_NAME); + if ( domElement === undefined ) { -class Transaction { - _lock() { - assert(!PSD.global); - ++this._reculock; - if (this._reculock === 1 && !PSD.global) - PSD.lockOwnerFor = this; - return this; - } - _unlock() { - assert(!PSD.global); - if (--this._reculock === 0) { - if (!PSD.global) - PSD.lockOwnerFor = null; - while (this._blockedFuncs.length > 0 && !this._locked()) { - var fnAndPSD = this._blockedFuncs.shift(); - try { - usePSD(fnAndPSD[1], fnAndPSD[0]); - } - catch (e) { } - } - } - return this; - } - _locked() { - return this._reculock && PSD.lockOwnerFor !== this; - } - create(idbtrans) { - if (!this.mode) - return this; - const idbdb = this.db.idbdb; - const dbOpenError = this.db._state.dbOpenError; - assert(!this.idbtrans); - if (!idbtrans && !idbdb) { - switch (dbOpenError && dbOpenError.name) { - case "DatabaseClosedError": - throw new exceptions.DatabaseClosed(dbOpenError); - case "MissingAPIError": - throw new exceptions.MissingAPI(dbOpenError.message, dbOpenError); - default: - throw new exceptions.OpenFailed(dbOpenError); - } - } - if (!this.active) - throw new exceptions.TransactionInactive(); - assert(this._completion._state === null); - idbtrans = this.idbtrans = idbtrans || - (this.db.core - ? this.db.core.transaction(this.storeNames, this.mode, { durability: this.chromeTransactionDurability }) - : idbdb.transaction(this.storeNames, this.mode, { durability: this.chromeTransactionDurability })); - idbtrans.onerror = wrap(ev => { - preventDefault(ev); - this._reject(idbtrans.error); - }); - idbtrans.onabort = wrap(ev => { - preventDefault(ev); - this.active && this._reject(new exceptions.Abort(idbtrans.error)); - this.active = false; - this.on("abort").fire(ev); - }); - idbtrans.oncomplete = wrap(() => { - this.active = false; - this._resolve(); - if ('mutatedParts' in idbtrans) { - globalEvents.storagemutated.fire(idbtrans["mutatedParts"]); - } - }); - return this; - } - _promise(mode, fn, bWriteLock) { - if (mode === 'readwrite' && this.mode !== 'readwrite') - return rejection(new exceptions.ReadOnly("Transaction is readonly")); - if (!this.active) - return rejection(new exceptions.TransactionInactive()); - if (this._locked()) { - return new DexiePromise((resolve, reject) => { - this._blockedFuncs.push([() => { - this._promise(mode, fn, bWriteLock).then(resolve, reject); - }, PSD]); - }); - } - else if (bWriteLock) { - return newScope(() => { - var p = new DexiePromise((resolve, reject) => { - this._lock(); - const rv = fn(resolve, reject, this); - if (rv && rv.then) - rv.then(resolve, reject); - }); - p.finally(() => this._unlock()); - p._lib = true; - return p; - }); - } - else { - var p = new DexiePromise((resolve, reject) => { - var rv = fn(resolve, reject, this); - if (rv && rv.then) - rv.then(resolve, reject); - }); - p._lib = true; - return p; - } - } - _root() { - return this.parent ? this.parent._root() : this; - } - waitFor(promiseLike) { - var root = this._root(); - const promise = DexiePromise.resolve(promiseLike); - if (root._waitingFor) { - root._waitingFor = root._waitingFor.then(() => promise); - } - else { - root._waitingFor = promise; - root._waitingQueue = []; - var store = root.idbtrans.objectStore(root.storeNames[0]); - (function spin() { - ++root._spinCount; - while (root._waitingQueue.length) - (root._waitingQueue.shift())(); - if (root._waitingFor) - store.get(-Infinity).onsuccess = spin; - }()); - } - var currentWaitPromise = root._waitingFor; - return new DexiePromise((resolve, reject) => { - promise.then(res => root._waitingQueue.push(wrap(resolve.bind(null, res))), err => root._waitingQueue.push(wrap(reject.bind(null, err)))).finally(() => { - if (root._waitingFor === currentWaitPromise) { - root._waitingFor = null; - } - }); - }); - } - abort() { - if (this.active) { - this.active = false; - if (this.idbtrans) - this.idbtrans.abort(); - this._reject(new exceptions.Abort()); - } - } - table(tableName) { - const memoizedTables = (this._memoizedTables || (this._memoizedTables = {})); - if (hasOwn(memoizedTables, tableName)) - return memoizedTables[tableName]; - const tableSchema = this.schema[tableName]; - if (!tableSchema) { - throw new exceptions.NotFound("Table " + tableName + " not part of transaction"); - } - const transactionBoundTable = new this.db.Table(tableName, tableSchema, this); - transactionBoundTable.core = this.db.core.table(tableName); - memoizedTables[tableName] = transactionBoundTable; - return transactionBoundTable; - } -} + console.warn( 'THREE.TransformControls: The second parameter "domElement" is now mandatory.' ); + domElement = document; -function createTransactionConstructor(db) { - return makeClassConstructor(Transaction.prototype, function Transaction(mode, storeNames, dbschema, chromeTransactionDurability, parent) { - this.db = db; - this.mode = mode; - this.storeNames = storeNames; - this.schema = dbschema; - this.chromeTransactionDurability = chromeTransactionDurability; - this.idbtrans = null; - this.on = Events(this, "complete", "error", "abort"); - this.parent = parent || null; - this.active = true; - this._reculock = 0; - this._blockedFuncs = []; - this._resolve = null; - this._reject = null; - this._waitingFor = null; - this._waitingQueue = null; - this._spinCount = 0; - this._completion = new DexiePromise((resolve, reject) => { - this._resolve = resolve; - this._reject = reject; - }); - this._completion.then(() => { - this.active = false; - this.on.complete.fire(); - }, e => { - var wasActive = this.active; - this.active = false; - this.on.error.fire(e); - this.parent ? - this.parent._reject(e) : - wasActive && this.idbtrans && this.idbtrans.abort(); - return rejection(e); - }); - }); -} + } -function createIndexSpec(name, keyPath, unique, multi, auto, compound, isPrimKey) { - return { - name, - keyPath, - unique, - multi, - auto, - compound, - src: (unique && !isPrimKey ? '&' : '') + (multi ? '*' : '') + (auto ? "++" : "") + nameFromKeyPath(keyPath) - }; -} -function nameFromKeyPath(keyPath) { - return typeof keyPath === 'string' ? - keyPath : - keyPath ? ('[' + [].join.call(keyPath, '+') + ']') : ""; -} + this.isTransformControls = true; -function createTableSchema(name, primKey, indexes) { - return { - name, - primKey, - indexes, - mappedClass: null, - idxByName: arrayToObject(indexes, index => [index.name, index]) - }; -} + this.visible = false; + this.domElement = domElement; + this.domElement.style.touchAction = 'none'; // disable touch scroll -function safariMultiStoreFix(storeNames) { - return storeNames.length === 1 ? storeNames[0] : storeNames; -} -let getMaxKey = (IdbKeyRange) => { - try { - IdbKeyRange.only([[]]); - getMaxKey = () => [[]]; - return [[]]; - } - catch (e) { - getMaxKey = () => maxString; - return maxString; - } -}; + const _gizmo = new TransformControlsGizmo(); + this._gizmo = _gizmo; + this.add( _gizmo ); -function getKeyExtractor(keyPath) { - if (keyPath == null) { - return () => undefined; - } - else if (typeof keyPath === 'string') { - return getSinglePathKeyExtractor(keyPath); - } - else { - return obj => getByKeyPath(obj, keyPath); - } -} -function getSinglePathKeyExtractor(keyPath) { - const split = keyPath.split('.'); - if (split.length === 1) { - return obj => obj[keyPath]; - } - else { - return obj => getByKeyPath(obj, keyPath); - } -} + const _plane = new TransformControlsPlane(); + this._plane = _plane; + this.add( _plane ); -function arrayify(arrayLike) { - return [].slice.call(arrayLike); -} -let _id_counter = 0; -function getKeyPathAlias(keyPath) { - return keyPath == null ? - ":id" : - typeof keyPath === 'string' ? - keyPath : - `[${keyPath.join('+')}]`; -} -function createDBCore(db, IdbKeyRange, tmpTrans) { - function extractSchema(db, trans) { - const tables = arrayify(db.objectStoreNames); - return { - schema: { - name: db.name, - tables: tables.map(table => trans.objectStore(table)).map(store => { - const { keyPath, autoIncrement } = store; - const compound = isArray(keyPath); - const outbound = keyPath == null; - const indexByKeyPath = {}; - const result = { - name: store.name, - primaryKey: { - name: null, - isPrimaryKey: true, - outbound, - compound, - keyPath, - autoIncrement, - unique: true, - extractKey: getKeyExtractor(keyPath) - }, - indexes: arrayify(store.indexNames).map(indexName => store.index(indexName)) - .map(index => { - const { name, unique, multiEntry, keyPath } = index; - const compound = isArray(keyPath); - const result = { - name, - compound, - keyPath, - unique, - multiEntry, - extractKey: getKeyExtractor(keyPath) - }; - indexByKeyPath[getKeyPathAlias(keyPath)] = result; - return result; - }), - getIndexByKeyPath: (keyPath) => indexByKeyPath[getKeyPathAlias(keyPath)] - }; - indexByKeyPath[":id"] = result.primaryKey; - if (keyPath != null) { - indexByKeyPath[getKeyPathAlias(keyPath)] = result.primaryKey; - } - return result; - }) - }, - hasGetAll: tables.length > 0 && ('getAll' in trans.objectStore(tables[0])) && - !(typeof navigator !== 'undefined' && /Safari/.test(navigator.userAgent) && - !/(Chrome\/|Edge\/)/.test(navigator.userAgent) && - [].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1] < 604) - }; - } - function makeIDBKeyRange(range) { - if (range.type === 3 ) - return null; - if (range.type === 4 ) - throw new Error("Cannot convert never type to IDBKeyRange"); - const { lower, upper, lowerOpen, upperOpen } = range; - const idbRange = lower === undefined ? - upper === undefined ? - null : - IdbKeyRange.upperBound(upper, !!upperOpen) : - upper === undefined ? - IdbKeyRange.lowerBound(lower, !!lowerOpen) : - IdbKeyRange.bound(lower, upper, !!lowerOpen, !!upperOpen); - return idbRange; - } - function createDbCoreTable(tableSchema) { - const tableName = tableSchema.name; - function mutate({ trans, type, keys, values, range }) { - return new Promise((resolve, reject) => { - resolve = wrap(resolve); - const store = trans.objectStore(tableName); - const outbound = store.keyPath == null; - const isAddOrPut = type === "put" || type === "add"; - if (!isAddOrPut && type !== 'delete' && type !== 'deleteRange') - throw new Error("Invalid operation type: " + type); - const { length } = keys || values || { length: 1 }; - if (keys && values && keys.length !== values.length) { - throw new Error("Given keys array must have same length as given values array."); - } - if (length === 0) - return resolve({ numFailures: 0, failures: {}, results: [], lastResult: undefined }); - let req; - const reqs = []; - const failures = []; - let numFailures = 0; - const errorHandler = event => { - ++numFailures; - preventDefault(event); - }; - if (type === 'deleteRange') { - if (range.type === 4 ) - return resolve({ numFailures, failures, results: [], lastResult: undefined }); - if (range.type === 3 ) - reqs.push(req = store.clear()); - else - reqs.push(req = store.delete(makeIDBKeyRange(range))); - } - else { - const [args1, args2] = isAddOrPut ? - outbound ? - [values, keys] : - [values, null] : - [keys, null]; - if (isAddOrPut) { - for (let i = 0; i < length; ++i) { - reqs.push(req = (args2 && args2[i] !== undefined ? - store[type](args1[i], args2[i]) : - store[type](args1[i]))); - req.onerror = errorHandler; - } - } - else { - for (let i = 0; i < length; ++i) { - reqs.push(req = store[type](args1[i])); - req.onerror = errorHandler; - } - } - } - const done = event => { - const lastResult = event.target.result; - reqs.forEach((req, i) => req.error != null && (failures[i] = req.error)); - resolve({ - numFailures, - failures, - results: type === "delete" ? keys : reqs.map(req => req.result), - lastResult - }); - }; - req.onerror = event => { - errorHandler(event); - done(event); - }; - req.onsuccess = done; - }); - } - function openCursor({ trans, values, query, reverse, unique }) { - return new Promise((resolve, reject) => { - resolve = wrap(resolve); - const { index, range } = query; - const store = trans.objectStore(tableName); - const source = index.isPrimaryKey ? - store : - store.index(index.name); - const direction = reverse ? - unique ? - "prevunique" : - "prev" : - unique ? - "nextunique" : - "next"; - const req = values || !('openKeyCursor' in source) ? - source.openCursor(makeIDBKeyRange(range), direction) : - source.openKeyCursor(makeIDBKeyRange(range), direction); - req.onerror = eventRejectHandler(reject); - req.onsuccess = wrap(ev => { - const cursor = req.result; - if (!cursor) { - resolve(null); - return; - } - cursor.___id = ++_id_counter; - cursor.done = false; - const _cursorContinue = cursor.continue.bind(cursor); - let _cursorContinuePrimaryKey = cursor.continuePrimaryKey; - if (_cursorContinuePrimaryKey) - _cursorContinuePrimaryKey = _cursorContinuePrimaryKey.bind(cursor); - const _cursorAdvance = cursor.advance.bind(cursor); - const doThrowCursorIsNotStarted = () => { throw new Error("Cursor not started"); }; - const doThrowCursorIsStopped = () => { throw new Error("Cursor not stopped"); }; - cursor.trans = trans; - cursor.stop = cursor.continue = cursor.continuePrimaryKey = cursor.advance = doThrowCursorIsNotStarted; - cursor.fail = wrap(reject); - cursor.next = function () { - let gotOne = 1; - return this.start(() => gotOne-- ? this.continue() : this.stop()).then(() => this); - }; - cursor.start = (callback) => { - const iterationPromise = new Promise((resolveIteration, rejectIteration) => { - resolveIteration = wrap(resolveIteration); - req.onerror = eventRejectHandler(rejectIteration); - cursor.fail = rejectIteration; - cursor.stop = value => { - cursor.stop = cursor.continue = cursor.continuePrimaryKey = cursor.advance = doThrowCursorIsStopped; - resolveIteration(value); - }; - }); - const guardedCallback = () => { - if (req.result) { - try { - callback(); - } - catch (err) { - cursor.fail(err); - } - } - else { - cursor.done = true; - cursor.start = () => { throw new Error("Cursor behind last entry"); }; - cursor.stop(); - } - }; - req.onsuccess = wrap(ev => { - req.onsuccess = guardedCallback; - guardedCallback(); - }); - cursor.continue = _cursorContinue; - cursor.continuePrimaryKey = _cursorContinuePrimaryKey; - cursor.advance = _cursorAdvance; - guardedCallback(); - return iterationPromise; - }; - resolve(cursor); - }, reject); - }); - } - function query(hasGetAll) { - return (request) => { - return new Promise((resolve, reject) => { - resolve = wrap(resolve); - const { trans, values, limit, query } = request; - const nonInfinitLimit = limit === Infinity ? undefined : limit; - const { index, range } = query; - const store = trans.objectStore(tableName); - const source = index.isPrimaryKey ? store : store.index(index.name); - const idbKeyRange = makeIDBKeyRange(range); - if (limit === 0) - return resolve({ result: [] }); - if (hasGetAll) { - const req = values ? - source.getAll(idbKeyRange, nonInfinitLimit) : - source.getAllKeys(idbKeyRange, nonInfinitLimit); - req.onsuccess = event => resolve({ result: event.target.result }); - req.onerror = eventRejectHandler(reject); - } - else { - let count = 0; - const req = values || !('openKeyCursor' in source) ? - source.openCursor(idbKeyRange) : - source.openKeyCursor(idbKeyRange); - const result = []; - req.onsuccess = event => { - const cursor = req.result; - if (!cursor) - return resolve({ result }); - result.push(values ? cursor.value : cursor.primaryKey); - if (++count === limit) - return resolve({ result }); - cursor.continue(); - }; - req.onerror = eventRejectHandler(reject); - } - }); - }; - } - return { - name: tableName, - schema: tableSchema, - mutate, - getMany({ trans, keys }) { - return new Promise((resolve, reject) => { - resolve = wrap(resolve); - const store = trans.objectStore(tableName); - const length = keys.length; - const result = new Array(length); - let keyCount = 0; - let callbackCount = 0; - let req; - const successHandler = event => { - const req = event.target; - if ((result[req._pos] = req.result) != null) - ; - if (++callbackCount === keyCount) - resolve(result); - }; - const errorHandler = eventRejectHandler(reject); - for (let i = 0; i < length; ++i) { - const key = keys[i]; - if (key != null) { - req = store.get(keys[i]); - req._pos = i; - req.onsuccess = successHandler; - req.onerror = errorHandler; - ++keyCount; - } - } - if (keyCount === 0) - resolve(result); - }); - }, - get({ trans, key }) { - return new Promise((resolve, reject) => { - resolve = wrap(resolve); - const store = trans.objectStore(tableName); - const req = store.get(key); - req.onsuccess = event => resolve(event.target.result); - req.onerror = eventRejectHandler(reject); - }); - }, - query: query(hasGetAll), - openCursor, - count({ query, trans }) { - const { index, range } = query; - return new Promise((resolve, reject) => { - const store = trans.objectStore(tableName); - const source = index.isPrimaryKey ? store : store.index(index.name); - const idbKeyRange = makeIDBKeyRange(range); - const req = idbKeyRange ? source.count(idbKeyRange) : source.count(); - req.onsuccess = wrap(ev => resolve(ev.target.result)); - req.onerror = eventRejectHandler(reject); - }); - } - }; - } - const { schema, hasGetAll } = extractSchema(db, tmpTrans); - const tables = schema.tables.map(tableSchema => createDbCoreTable(tableSchema)); - const tableMap = {}; - tables.forEach(table => tableMap[table.name] = table); - return { - stack: "dbcore", - transaction: db.transaction.bind(db), - table(name) { - const result = tableMap[name]; - if (!result) - throw new Error(`Table '${name}' not found`); - return tableMap[name]; - }, - MIN_KEY: -Infinity, - MAX_KEY: getMaxKey(IdbKeyRange), - schema - }; -} + const scope = this; -function createMiddlewareStack(stackImpl, middlewares) { - return middlewares.reduce((down, { create }) => ({ ...down, ...create(down) }), stackImpl); -} -function createMiddlewareStacks(middlewares, idbdb, { IDBKeyRange, indexedDB }, tmpTrans) { - const dbcore = createMiddlewareStack(createDBCore(idbdb, IDBKeyRange, tmpTrans), middlewares.dbcore); - return { - dbcore - }; -} -function generateMiddlewareStacks({ _novip: db }, tmpTrans) { - const idbdb = tmpTrans.db; - const stacks = createMiddlewareStacks(db._middlewares, idbdb, db._deps, tmpTrans); - db.core = stacks.dbcore; - db.tables.forEach(table => { - const tableName = table.name; - if (db.core.schema.tables.some(tbl => tbl.name === tableName)) { - table.core = db.core.table(tableName); - if (db[tableName] instanceof db.Table) { - db[tableName].core = table.core; - } - } - }); -} + // Defined getter, setter and store for a property + function defineProperty( propName, defaultValue ) { -function setApiOnPlace({ _novip: db }, objs, tableNames, dbschema) { - tableNames.forEach(tableName => { - const schema = dbschema[tableName]; - objs.forEach(obj => { - const propDesc = getPropertyDescriptor(obj, tableName); - if (!propDesc || ("value" in propDesc && propDesc.value === undefined)) { - if (obj === db.Transaction.prototype || obj instanceof db.Transaction) { - setProp(obj, tableName, { - get() { return this.table(tableName); }, - set(value) { - defineProperty(this, tableName, { value, writable: true, configurable: true, enumerable: true }); - } - }); - } - else { - obj[tableName] = new db.Table(tableName, schema); - } - } - }); - }); -} -function removeTablesApi({ _novip: db }, objs) { - objs.forEach(obj => { - for (let key in obj) { - if (obj[key] instanceof db.Table) - delete obj[key]; - } - }); -} -function lowerVersionFirst(a, b) { - return a._cfg.version - b._cfg.version; -} -function runUpgraders(db, oldVersion, idbUpgradeTrans, reject) { - const globalSchema = db._dbSchema; - const trans = db._createTransaction('readwrite', db._storeNames, globalSchema); - trans.create(idbUpgradeTrans); - trans._completion.catch(reject); - const rejectTransaction = trans._reject.bind(trans); - const transless = PSD.transless || PSD; - newScope(() => { - PSD.trans = trans; - PSD.transless = transless; - if (oldVersion === 0) { - keys(globalSchema).forEach(tableName => { - createTable(idbUpgradeTrans, tableName, globalSchema[tableName].primKey, globalSchema[tableName].indexes); - }); - generateMiddlewareStacks(db, idbUpgradeTrans); - DexiePromise.follow(() => db.on.populate.fire(trans)).catch(rejectTransaction); - } - else - updateTablesAndIndexes(db, oldVersion, trans, idbUpgradeTrans).catch(rejectTransaction); - }); -} -function updateTablesAndIndexes({ _novip: db }, oldVersion, trans, idbUpgradeTrans) { - const queue = []; - const versions = db._versions; - let globalSchema = db._dbSchema = buildGlobalSchema(db, db.idbdb, idbUpgradeTrans); - let anyContentUpgraderHasRun = false; - const versToRun = versions.filter(v => v._cfg.version >= oldVersion); - versToRun.forEach(version => { - queue.push(() => { - const oldSchema = globalSchema; - const newSchema = version._cfg.dbschema; - adjustToExistingIndexNames(db, oldSchema, idbUpgradeTrans); - adjustToExistingIndexNames(db, newSchema, idbUpgradeTrans); - globalSchema = db._dbSchema = newSchema; - const diff = getSchemaDiff(oldSchema, newSchema); - diff.add.forEach(tuple => { - createTable(idbUpgradeTrans, tuple[0], tuple[1].primKey, tuple[1].indexes); - }); - diff.change.forEach(change => { - if (change.recreate) { - throw new exceptions.Upgrade("Not yet support for changing primary key"); - } - else { - const store = idbUpgradeTrans.objectStore(change.name); - change.add.forEach(idx => addIndex(store, idx)); - change.change.forEach(idx => { - store.deleteIndex(idx.name); - addIndex(store, idx); - }); - change.del.forEach(idxName => store.deleteIndex(idxName)); - } - }); - const contentUpgrade = version._cfg.contentUpgrade; - if (contentUpgrade && version._cfg.version > oldVersion) { - generateMiddlewareStacks(db, idbUpgradeTrans); - trans._memoizedTables = {}; - anyContentUpgraderHasRun = true; - let upgradeSchema = shallowClone(newSchema); - diff.del.forEach(table => { - upgradeSchema[table] = oldSchema[table]; - }); - removeTablesApi(db, [db.Transaction.prototype]); - setApiOnPlace(db, [db.Transaction.prototype], keys(upgradeSchema), upgradeSchema); - trans.schema = upgradeSchema; - const contentUpgradeIsAsync = isAsyncFunction(contentUpgrade); - if (contentUpgradeIsAsync) { - incrementExpectedAwaits(); - } - let returnValue; - const promiseFollowed = DexiePromise.follow(() => { - returnValue = contentUpgrade(trans); - if (returnValue) { - if (contentUpgradeIsAsync) { - var decrementor = decrementExpectedAwaits.bind(null, null); - returnValue.then(decrementor, decrementor); - } - } - }); - return (returnValue && typeof returnValue.then === 'function' ? - DexiePromise.resolve(returnValue) : promiseFollowed.then(() => returnValue)); - } - }); - queue.push(idbtrans => { - if (!anyContentUpgraderHasRun || !hasIEDeleteObjectStoreBug) { - const newSchema = version._cfg.dbschema; - deleteRemovedTables(newSchema, idbtrans); - } - removeTablesApi(db, [db.Transaction.prototype]); - setApiOnPlace(db, [db.Transaction.prototype], db._storeNames, db._dbSchema); - trans.schema = db._dbSchema; - }); - }); - function runQueue() { - return queue.length ? DexiePromise.resolve(queue.shift()(trans.idbtrans)).then(runQueue) : - DexiePromise.resolve(); - } - return runQueue().then(() => { - createMissingTables(globalSchema, idbUpgradeTrans); - }); -} -function getSchemaDiff(oldSchema, newSchema) { - const diff = { - del: [], - add: [], - change: [] - }; - let table; - for (table in oldSchema) { - if (!newSchema[table]) - diff.del.push(table); - } - for (table in newSchema) { - const oldDef = oldSchema[table], newDef = newSchema[table]; - if (!oldDef) { - diff.add.push([table, newDef]); - } - else { - const change = { - name: table, - def: newDef, - recreate: false, - del: [], - add: [], - change: [] - }; - if (( - '' + (oldDef.primKey.keyPath || '')) !== ('' + (newDef.primKey.keyPath || '')) || - (oldDef.primKey.auto !== newDef.primKey.auto && !isIEOrEdge)) - { - change.recreate = true; - diff.change.push(change); - } - else { - const oldIndexes = oldDef.idxByName; - const newIndexes = newDef.idxByName; - let idxName; - for (idxName in oldIndexes) { - if (!newIndexes[idxName]) - change.del.push(idxName); - } - for (idxName in newIndexes) { - const oldIdx = oldIndexes[idxName], newIdx = newIndexes[idxName]; - if (!oldIdx) - change.add.push(newIdx); - else if (oldIdx.src !== newIdx.src) - change.change.push(newIdx); - } - if (change.del.length > 0 || change.add.length > 0 || change.change.length > 0) { - diff.change.push(change); - } - } - } - } - return diff; -} -function createTable(idbtrans, tableName, primKey, indexes) { - const store = idbtrans.db.createObjectStore(tableName, primKey.keyPath ? - { keyPath: primKey.keyPath, autoIncrement: primKey.auto } : - { autoIncrement: primKey.auto }); - indexes.forEach(idx => addIndex(store, idx)); - return store; -} -function createMissingTables(newSchema, idbtrans) { - keys(newSchema).forEach(tableName => { - if (!idbtrans.db.objectStoreNames.contains(tableName)) { - createTable(idbtrans, tableName, newSchema[tableName].primKey, newSchema[tableName].indexes); - } - }); -} -function deleteRemovedTables(newSchema, idbtrans) { - [].slice.call(idbtrans.db.objectStoreNames).forEach(storeName => newSchema[storeName] == null && idbtrans.db.deleteObjectStore(storeName)); -} -function addIndex(store, idx) { - store.createIndex(idx.name, idx.keyPath, { unique: idx.unique, multiEntry: idx.multi }); -} -function buildGlobalSchema(db, idbdb, tmpTrans) { - const globalSchema = {}; - const dbStoreNames = slice(idbdb.objectStoreNames, 0); - dbStoreNames.forEach(storeName => { - const store = tmpTrans.objectStore(storeName); - let keyPath = store.keyPath; - const primKey = createIndexSpec(nameFromKeyPath(keyPath), keyPath || "", false, false, !!store.autoIncrement, keyPath && typeof keyPath !== "string", true); - const indexes = []; - for (let j = 0; j < store.indexNames.length; ++j) { - const idbindex = store.index(store.indexNames[j]); - keyPath = idbindex.keyPath; - var index = createIndexSpec(idbindex.name, keyPath, !!idbindex.unique, !!idbindex.multiEntry, false, keyPath && typeof keyPath !== "string", false); - indexes.push(index); - } - globalSchema[storeName] = createTableSchema(storeName, primKey, indexes); - }); - return globalSchema; -} -function readGlobalSchema({ _novip: db }, idbdb, tmpTrans) { - db.verno = idbdb.version / 10; - const globalSchema = db._dbSchema = buildGlobalSchema(db, idbdb, tmpTrans); - db._storeNames = slice(idbdb.objectStoreNames, 0); - setApiOnPlace(db, [db._allTables], keys(globalSchema), globalSchema); -} -function verifyInstalledSchema(db, tmpTrans) { - const installedSchema = buildGlobalSchema(db, db.idbdb, tmpTrans); - const diff = getSchemaDiff(installedSchema, db._dbSchema); - return !(diff.add.length || diff.change.some(ch => ch.add.length || ch.change.length)); -} -function adjustToExistingIndexNames({ _novip: db }, schema, idbtrans) { - const storeNames = idbtrans.db.objectStoreNames; - for (let i = 0; i < storeNames.length; ++i) { - const storeName = storeNames[i]; - const store = idbtrans.objectStore(storeName); - db._hasGetAll = 'getAll' in store; - for (let j = 0; j < store.indexNames.length; ++j) { - const indexName = store.indexNames[j]; - const keyPath = store.index(indexName).keyPath; - const dexieName = typeof keyPath === 'string' ? keyPath : "[" + slice(keyPath).join('+') + "]"; - if (schema[storeName]) { - const indexSpec = schema[storeName].idxByName[dexieName]; - if (indexSpec) { - indexSpec.name = indexName; - delete schema[storeName].idxByName[dexieName]; - schema[storeName].idxByName[indexName] = indexSpec; - } - } - } - } - if (typeof navigator !== 'undefined' && /Safari/.test(navigator.userAgent) && - !/(Chrome\/|Edge\/)/.test(navigator.userAgent) && - _global.WorkerGlobalScope && _global instanceof _global.WorkerGlobalScope && - [].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1] < 604) { - db._hasGetAll = false; - } -} -function parseIndexSyntax(primKeyAndIndexes) { - return primKeyAndIndexes.split(',').map((index, indexNum) => { - index = index.trim(); - const name = index.replace(/([&*]|\+\+)/g, ""); - const keyPath = /^\[/.test(name) ? name.match(/^\[(.*)\]$/)[1].split('+') : name; - return createIndexSpec(name, keyPath || null, /\&/.test(index), /\*/.test(index), /\+\+/.test(index), isArray(keyPath), indexNum === 0); - }); -} + let propValue = defaultValue; -class Version { - _parseStoresSpec(stores, outSchema) { - keys(stores).forEach(tableName => { - if (stores[tableName] !== null) { - var indexes = parseIndexSyntax(stores[tableName]); - var primKey = indexes.shift(); - if (primKey.multi) - throw new exceptions.Schema("Primary key cannot be multi-valued"); - indexes.forEach(idx => { - if (idx.auto) - throw new exceptions.Schema("Only primary key can be marked as autoIncrement (++)"); - if (!idx.keyPath) - throw new exceptions.Schema("Index must have a name and cannot be an empty string"); - }); - outSchema[tableName] = createTableSchema(tableName, primKey, indexes); - } - }); - } - stores(stores) { - const db = this.db; - this._cfg.storesSource = this._cfg.storesSource ? - extend(this._cfg.storesSource, stores) : - stores; - const versions = db._versions; - const storesSpec = {}; - let dbschema = {}; - versions.forEach(version => { - extend(storesSpec, version._cfg.storesSource); - dbschema = (version._cfg.dbschema = {}); - version._parseStoresSpec(storesSpec, dbschema); - }); - db._dbSchema = dbschema; - removeTablesApi(db, [db._allTables, db, db.Transaction.prototype]); - setApiOnPlace(db, [db._allTables, db, db.Transaction.prototype, this._cfg.tables], keys(dbschema), dbschema); - db._storeNames = keys(dbschema); - return this; - } - upgrade(upgradeFunction) { - this._cfg.contentUpgrade = promisableChain(this._cfg.contentUpgrade || nop, upgradeFunction); - return this; - } -} + Object.defineProperty( scope, propName, { -function createVersionConstructor(db) { - return makeClassConstructor(Version.prototype, function Version(versionNumber) { - this.db = db; - this._cfg = { - version: versionNumber, - storesSource: null, - dbschema: {}, - tables: {}, - contentUpgrade: null - }; - }); -} + get: function () { -function getDbNamesTable(indexedDB, IDBKeyRange) { - let dbNamesDB = indexedDB["_dbNamesDB"]; - if (!dbNamesDB) { - dbNamesDB = indexedDB["_dbNamesDB"] = new Dexie$1(DBNAMES_DB, { - addons: [], - indexedDB, - IDBKeyRange, - }); - dbNamesDB.version(1).stores({ dbnames: "name" }); - } - return dbNamesDB.table("dbnames"); -} -function hasDatabasesNative(indexedDB) { - return indexedDB && typeof indexedDB.databases === "function"; -} -function getDatabaseNames({ indexedDB, IDBKeyRange, }) { - return hasDatabasesNative(indexedDB) - ? Promise.resolve(indexedDB.databases()).then((infos) => infos - .map((info) => info.name) - .filter((name) => name !== DBNAMES_DB)) - : getDbNamesTable(indexedDB, IDBKeyRange).toCollection().primaryKeys(); -} -function _onDatabaseCreated({ indexedDB, IDBKeyRange }, name) { - !hasDatabasesNative(indexedDB) && - name !== DBNAMES_DB && - getDbNamesTable(indexedDB, IDBKeyRange).put({ name }).catch(nop); -} -function _onDatabaseDeleted({ indexedDB, IDBKeyRange }, name) { - !hasDatabasesNative(indexedDB) && - name !== DBNAMES_DB && - getDbNamesTable(indexedDB, IDBKeyRange).delete(name).catch(nop); -} + return propValue !== undefined ? propValue : defaultValue; -function vip(fn) { - return newScope(function () { - PSD.letThrough = true; - return fn(); - }); -} + }, -function idbReady() { - var isSafari = !navigator.userAgentData && - /Safari\//.test(navigator.userAgent) && - !/Chrom(e|ium)\//.test(navigator.userAgent); - if (!isSafari || !indexedDB.databases) - return Promise.resolve(); - var intervalId; - return new Promise(function (resolve) { - var tryIdb = function () { return indexedDB.databases().finally(resolve); }; - intervalId = setInterval(tryIdb, 100); - tryIdb(); - }).finally(function () { return clearInterval(intervalId); }); -} + set: function ( value ) { -function dexieOpen(db) { - const state = db._state; - const { indexedDB } = db._deps; - if (state.isBeingOpened || db.idbdb) - return state.dbReadyPromise.then(() => state.dbOpenError ? - rejection(state.dbOpenError) : - db); - debug && (state.openCanceller._stackHolder = getErrorWithStack()); - state.isBeingOpened = true; - state.dbOpenError = null; - state.openComplete = false; - const openCanceller = state.openCanceller; - function throwIfCancelled() { - if (state.openCanceller !== openCanceller) - throw new exceptions.DatabaseClosed('db.open() was cancelled'); - } - let resolveDbReady = state.dbReadyResolve, - upgradeTransaction = null, wasCreated = false; - return DexiePromise.race([openCanceller, (typeof navigator === 'undefined' ? DexiePromise.resolve() : idbReady()).then(() => new DexiePromise((resolve, reject) => { - throwIfCancelled(); - if (!indexedDB) - throw new exceptions.MissingAPI(); - const dbName = db.name; - const req = state.autoSchema ? - indexedDB.open(dbName) : - indexedDB.open(dbName, Math.round(db.verno * 10)); - if (!req) - throw new exceptions.MissingAPI(); - req.onerror = eventRejectHandler(reject); - req.onblocked = wrap(db._fireOnBlocked); - req.onupgradeneeded = wrap(e => { - upgradeTransaction = req.transaction; - if (state.autoSchema && !db._options.allowEmptyDB) { - req.onerror = preventDefault; - upgradeTransaction.abort(); - req.result.close(); - const delreq = indexedDB.deleteDatabase(dbName); - delreq.onsuccess = delreq.onerror = wrap(() => { - reject(new exceptions.NoSuchDatabase(`Database ${dbName} doesnt exist`)); - }); - } - else { - upgradeTransaction.onerror = eventRejectHandler(reject); - var oldVer = e.oldVersion > Math.pow(2, 62) ? 0 : e.oldVersion; - wasCreated = oldVer < 1; - db._novip.idbdb = req.result; - runUpgraders(db, oldVer / 10, upgradeTransaction, reject); - } - }, reject); - req.onsuccess = wrap(() => { - upgradeTransaction = null; - const idbdb = db._novip.idbdb = req.result; - const objectStoreNames = slice(idbdb.objectStoreNames); - if (objectStoreNames.length > 0) - try { - const tmpTrans = idbdb.transaction(safariMultiStoreFix(objectStoreNames), 'readonly'); - if (state.autoSchema) - readGlobalSchema(db, idbdb, tmpTrans); - else { - adjustToExistingIndexNames(db, db._dbSchema, tmpTrans); - if (!verifyInstalledSchema(db, tmpTrans)) { - console.warn(`Dexie SchemaDiff: Schema was extended without increasing the number passed to db.version(). Some queries may fail.`); - } - } - generateMiddlewareStacks(db, tmpTrans); - } - catch (e) { - } - connections.push(db); - idbdb.onversionchange = wrap(ev => { - state.vcFired = true; - db.on("versionchange").fire(ev); - }); - idbdb.onclose = wrap(ev => { - db.on("close").fire(ev); - }); - if (wasCreated) - _onDatabaseCreated(db._deps, dbName); - resolve(); - }, reject); - }))]).then(() => { - throwIfCancelled(); - state.onReadyBeingFired = []; - return DexiePromise.resolve(vip(() => db.on.ready.fire(db.vip))).then(function fireRemainders() { - if (state.onReadyBeingFired.length > 0) { - let remainders = state.onReadyBeingFired.reduce(promisableChain, nop); - state.onReadyBeingFired = []; - return DexiePromise.resolve(vip(() => remainders(db.vip))).then(fireRemainders); - } - }); - }).finally(() => { - state.onReadyBeingFired = null; - state.isBeingOpened = false; - }).then(() => { - return db; - }).catch(err => { - state.dbOpenError = err; - try { - upgradeTransaction && upgradeTransaction.abort(); - } - catch (_a) { } - if (openCanceller === state.openCanceller) { - db._close(); - } - return rejection(err); - }).finally(() => { - state.openComplete = true; - resolveDbReady(); - }); -} + if ( propValue !== value ) { -function awaitIterator(iterator) { - var callNext = result => iterator.next(result), doThrow = error => iterator.throw(error), onSuccess = step(callNext), onError = step(doThrow); - function step(getNext) { - return (val) => { - var next = getNext(val), value = next.value; - return next.done ? value : - (!value || typeof value.then !== 'function' ? - isArray(value) ? Promise.all(value).then(onSuccess, onError) : onSuccess(value) : - value.then(onSuccess, onError)); - }; - } - return step(callNext)(); -} + propValue = value; + _plane[ propName ] = value; + _gizmo[ propName ] = value; -function extractTransactionArgs(mode, _tableArgs_, scopeFunc) { - var i = arguments.length; - if (i < 2) - throw new exceptions.InvalidArgument("Too few arguments"); - var args = new Array(i - 1); - while (--i) - args[i - 1] = arguments[i]; - scopeFunc = args.pop(); - var tables = flatten(args); - return [mode, tables, scopeFunc]; -} -function enterTransactionScope(db, mode, storeNames, parentTransaction, scopeFunc) { - return DexiePromise.resolve().then(() => { - const transless = PSD.transless || PSD; - const trans = db._createTransaction(mode, storeNames, db._dbSchema, parentTransaction); - const zoneProps = { - trans: trans, - transless: transless - }; - if (parentTransaction) { - trans.idbtrans = parentTransaction.idbtrans; - } - else { - try { - trans.create(); - db._state.PR1398_maxLoop = 3; - } - catch (ex) { - if (ex.name === errnames.InvalidState && db.isOpen() && --db._state.PR1398_maxLoop > 0) { - console.warn('Dexie: Need to reopen db'); - db._close(); - return db.open().then(() => enterTransactionScope(db, mode, storeNames, null, scopeFunc)); - } - return rejection(ex); - } - } - const scopeFuncIsAsync = isAsyncFunction(scopeFunc); - if (scopeFuncIsAsync) { - incrementExpectedAwaits(); - } - let returnValue; - const promiseFollowed = DexiePromise.follow(() => { - returnValue = scopeFunc.call(trans, trans); - if (returnValue) { - if (scopeFuncIsAsync) { - var decrementor = decrementExpectedAwaits.bind(null, null); - returnValue.then(decrementor, decrementor); - } - else if (typeof returnValue.next === 'function' && typeof returnValue.throw === 'function') { - returnValue = awaitIterator(returnValue); - } - } - }, zoneProps); - return (returnValue && typeof returnValue.then === 'function' ? - DexiePromise.resolve(returnValue).then(x => trans.active ? - x - : rejection(new exceptions.PrematureCommit("Transaction committed too early. See http://bit.ly/2kdckMn"))) - : promiseFollowed.then(() => returnValue)).then(x => { - if (parentTransaction) - trans._resolve(); - return trans._completion.then(() => x); - }).catch(e => { - trans._reject(e); - return rejection(e); - }); - }); -} + scope.dispatchEvent( { type: propName + '-changed', value: value } ); + scope.dispatchEvent( _changeEvent$1 ); -function pad(a, value, count) { - const result = isArray(a) ? a.slice() : [a]; - for (let i = 0; i < count; ++i) - result.push(value); - return result; -} -function createVirtualIndexMiddleware(down) { - return { - ...down, - table(tableName) { - const table = down.table(tableName); - const { schema } = table; - const indexLookup = {}; - const allVirtualIndexes = []; - function addVirtualIndexes(keyPath, keyTail, lowLevelIndex) { - const keyPathAlias = getKeyPathAlias(keyPath); - const indexList = (indexLookup[keyPathAlias] = indexLookup[keyPathAlias] || []); - const keyLength = keyPath == null ? 0 : typeof keyPath === 'string' ? 1 : keyPath.length; - const isVirtual = keyTail > 0; - const virtualIndex = { - ...lowLevelIndex, - isVirtual, - keyTail, - keyLength, - extractKey: getKeyExtractor(keyPath), - unique: !isVirtual && lowLevelIndex.unique - }; - indexList.push(virtualIndex); - if (!virtualIndex.isPrimaryKey) { - allVirtualIndexes.push(virtualIndex); - } - if (keyLength > 1) { - const virtualKeyPath = keyLength === 2 ? - keyPath[0] : - keyPath.slice(0, keyLength - 1); - addVirtualIndexes(virtualKeyPath, keyTail + 1, lowLevelIndex); - } - indexList.sort((a, b) => a.keyTail - b.keyTail); - return virtualIndex; - } - const primaryKey = addVirtualIndexes(schema.primaryKey.keyPath, 0, schema.primaryKey); - indexLookup[":id"] = [primaryKey]; - for (const index of schema.indexes) { - addVirtualIndexes(index.keyPath, 0, index); - } - function findBestIndex(keyPath) { - const result = indexLookup[getKeyPathAlias(keyPath)]; - return result && result[0]; - } - function translateRange(range, keyTail) { - return { - type: range.type === 1 ? - 2 : - range.type, - lower: pad(range.lower, range.lowerOpen ? down.MAX_KEY : down.MIN_KEY, keyTail), - lowerOpen: true, - upper: pad(range.upper, range.upperOpen ? down.MIN_KEY : down.MAX_KEY, keyTail), - upperOpen: true - }; - } - function translateRequest(req) { - const index = req.query.index; - return index.isVirtual ? { - ...req, - query: { - index, - range: translateRange(req.query.range, index.keyTail) - } - } : req; - } - const result = { - ...table, - schema: { - ...schema, - primaryKey, - indexes: allVirtualIndexes, - getIndexByKeyPath: findBestIndex - }, - count(req) { - return table.count(translateRequest(req)); - }, - query(req) { - return table.query(translateRequest(req)); - }, - openCursor(req) { - const { keyTail, isVirtual, keyLength } = req.query.index; - if (!isVirtual) - return table.openCursor(req); - function createVirtualCursor(cursor) { - function _continue(key) { - key != null ? - cursor.continue(pad(key, req.reverse ? down.MAX_KEY : down.MIN_KEY, keyTail)) : - req.unique ? - cursor.continue(cursor.key.slice(0, keyLength) - .concat(req.reverse - ? down.MIN_KEY - : down.MAX_KEY, keyTail)) : - cursor.continue(); - } - const virtualCursor = Object.create(cursor, { - continue: { value: _continue }, - continuePrimaryKey: { - value(key, primaryKey) { - cursor.continuePrimaryKey(pad(key, down.MAX_KEY, keyTail), primaryKey); - } - }, - primaryKey: { - get() { - return cursor.primaryKey; - } - }, - key: { - get() { - const key = cursor.key; - return keyLength === 1 ? - key[0] : - key.slice(0, keyLength); - } - }, - value: { - get() { - return cursor.value; - } - } - }); - return virtualCursor; - } - return table.openCursor(translateRequest(req)) - .then(cursor => cursor && createVirtualCursor(cursor)); - } - }; - return result; - } - }; -} -const virtualIndexMiddleware = { - stack: "dbcore", - name: "VirtualIndexMiddleware", - level: 1, - create: createVirtualIndexMiddleware -}; + } -function getObjectDiff(a, b, rv, prfx) { - rv = rv || {}; - prfx = prfx || ''; - keys(a).forEach((prop) => { - if (!hasOwn(b, prop)) { - rv[prfx + prop] = undefined; - } - else { - var ap = a[prop], bp = b[prop]; - if (typeof ap === 'object' && typeof bp === 'object' && ap && bp) { - const apTypeName = toStringTag(ap); - const bpTypeName = toStringTag(bp); - if (apTypeName !== bpTypeName) { - rv[prfx + prop] = b[prop]; - } - else if (apTypeName === 'Object') { - getObjectDiff(ap, bp, rv, prfx + prop + '.'); - } - else if (ap !== bp) { - rv[prfx + prop] = b[prop]; - } - } - else if (ap !== bp) - rv[prfx + prop] = b[prop]; - } - }); - keys(b).forEach((prop) => { - if (!hasOwn(a, prop)) { - rv[prfx + prop] = b[prop]; - } - }); - return rv; -} + } -function getEffectiveKeys(primaryKey, req) { - if (req.type === 'delete') - return req.keys; - return req.keys || req.values.map(primaryKey.extractKey); -} + } ); -const hooksMiddleware = { - stack: "dbcore", - name: "HooksMiddleware", - level: 2, - create: (downCore) => ({ - ...downCore, - table(tableName) { - const downTable = downCore.table(tableName); - const { primaryKey } = downTable.schema; - const tableMiddleware = { - ...downTable, - mutate(req) { - const dxTrans = PSD.trans; - const { deleting, creating, updating } = dxTrans.table(tableName).hook; - switch (req.type) { - case 'add': - if (creating.fire === nop) - break; - return dxTrans._promise('readwrite', () => addPutOrDelete(req), true); - case 'put': - if (creating.fire === nop && updating.fire === nop) - break; - return dxTrans._promise('readwrite', () => addPutOrDelete(req), true); - case 'delete': - if (deleting.fire === nop) - break; - return dxTrans._promise('readwrite', () => addPutOrDelete(req), true); - case 'deleteRange': - if (deleting.fire === nop) - break; - return dxTrans._promise('readwrite', () => deleteRange(req), true); - } - return downTable.mutate(req); - function addPutOrDelete(req) { - const dxTrans = PSD.trans; - const keys = req.keys || getEffectiveKeys(primaryKey, req); - if (!keys) - throw new Error("Keys missing"); - req = req.type === 'add' || req.type === 'put' ? - { ...req, keys } : - { ...req }; - if (req.type !== 'delete') - req.values = [...req.values]; - if (req.keys) - req.keys = [...req.keys]; - return getExistingValues(downTable, req, keys).then(existingValues => { - const contexts = keys.map((key, i) => { - const existingValue = existingValues[i]; - const ctx = { onerror: null, onsuccess: null }; - if (req.type === 'delete') { - deleting.fire.call(ctx, key, existingValue, dxTrans); - } - else if (req.type === 'add' || existingValue === undefined) { - const generatedPrimaryKey = creating.fire.call(ctx, key, req.values[i], dxTrans); - if (key == null && generatedPrimaryKey != null) { - key = generatedPrimaryKey; - req.keys[i] = key; - if (!primaryKey.outbound) { - setByKeyPath(req.values[i], primaryKey.keyPath, key); - } - } - } - else { - const objectDiff = getObjectDiff(existingValue, req.values[i]); - const additionalChanges = updating.fire.call(ctx, objectDiff, key, existingValue, dxTrans); - if (additionalChanges) { - const requestedValue = req.values[i]; - Object.keys(additionalChanges).forEach(keyPath => { - if (hasOwn(requestedValue, keyPath)) { - requestedValue[keyPath] = additionalChanges[keyPath]; - } - else { - setByKeyPath(requestedValue, keyPath, additionalChanges[keyPath]); - } - }); - } - } - return ctx; - }); - return downTable.mutate(req).then(({ failures, results, numFailures, lastResult }) => { - for (let i = 0; i < keys.length; ++i) { - const primKey = results ? results[i] : keys[i]; - const ctx = contexts[i]; - if (primKey == null) { - ctx.onerror && ctx.onerror(failures[i]); - } - else { - ctx.onsuccess && ctx.onsuccess(req.type === 'put' && existingValues[i] ? - req.values[i] : - primKey - ); - } - } - return { failures, results, numFailures, lastResult }; - }).catch(error => { - contexts.forEach(ctx => ctx.onerror && ctx.onerror(error)); - return Promise.reject(error); - }); - }); - } - function deleteRange(req) { - return deleteNextChunk(req.trans, req.range, 10000); - } - function deleteNextChunk(trans, range, limit) { - return downTable.query({ trans, values: false, query: { index: primaryKey, range }, limit }) - .then(({ result }) => { - return addPutOrDelete({ type: 'delete', keys: result, trans }).then(res => { - if (res.numFailures > 0) - return Promise.reject(res.failures[0]); - if (result.length < limit) { - return { failures: [], numFailures: 0, lastResult: undefined }; - } - else { - return deleteNextChunk(trans, { ...range, lower: result[result.length - 1], lowerOpen: true }, limit); - } - }); - }); - } - } - }; - return tableMiddleware; - }, - }) -}; -function getExistingValues(table, req, effectiveKeys) { - return req.type === "add" - ? Promise.resolve([]) - : table.getMany({ trans: req.trans, keys: effectiveKeys, cache: "immutable" }); -} + scope[ propName ] = defaultValue; + _plane[ propName ] = defaultValue; + _gizmo[ propName ] = defaultValue; -function getFromTransactionCache(keys, cache, clone) { - try { - if (!cache) - return null; - if (cache.keys.length < keys.length) - return null; - const result = []; - for (let i = 0, j = 0; i < cache.keys.length && j < keys.length; ++i) { - if (cmp(cache.keys[i], keys[j]) !== 0) - continue; - result.push(clone ? deepClone(cache.values[i]) : cache.values[i]); - ++j; - } - return result.length === keys.length ? result : null; - } - catch (_a) { - return null; - } -} -const cacheExistingValuesMiddleware = { - stack: "dbcore", - level: -1, - create: (core) => { - return { - table: (tableName) => { - const table = core.table(tableName); - return { - ...table, - getMany: (req) => { - if (!req.cache) { - return table.getMany(req); - } - const cachedResult = getFromTransactionCache(req.keys, req.trans["_cache"], req.cache === "clone"); - if (cachedResult) { - return DexiePromise.resolve(cachedResult); - } - return table.getMany(req).then((res) => { - req.trans["_cache"] = { - keys: req.keys, - values: req.cache === "clone" ? deepClone(res) : res, - }; - return res; - }); - }, - mutate: (req) => { - if (req.type !== "add") - req.trans["_cache"] = null; - return table.mutate(req); - }, - }; - }, - }; - }, -}; + } -function isEmptyRange(node) { - return !("from" in node); -} -const RangeSet = function (fromOrTree, to) { - if (this) { - extend(this, arguments.length ? { d: 1, from: fromOrTree, to: arguments.length > 1 ? to : fromOrTree } : { d: 0 }); - } - else { - const rv = new RangeSet(); - if (fromOrTree && ("d" in fromOrTree)) { - extend(rv, fromOrTree); - } - return rv; - } -}; -props(RangeSet.prototype, { - add(rangeSet) { - mergeRanges(this, rangeSet); - return this; - }, - addKey(key) { - addRange(this, key, key); - return this; - }, - addKeys(keys) { - keys.forEach(key => addRange(this, key, key)); - return this; - }, - [iteratorSymbol]() { - return getRangeSetIterator(this); - } -}); -function addRange(target, from, to) { - const diff = cmp(from, to); - if (isNaN(diff)) - return; - if (diff > 0) - throw RangeError(); - if (isEmptyRange(target)) - return extend(target, { from, to, d: 1 }); - const left = target.l; - const right = target.r; - if (cmp(to, target.from) < 0) { - left - ? addRange(left, from, to) - : (target.l = { from, to, d: 1, l: null, r: null }); - return rebalance(target); - } - if (cmp(from, target.to) > 0) { - right - ? addRange(right, from, to) - : (target.r = { from, to, d: 1, l: null, r: null }); - return rebalance(target); - } - if (cmp(from, target.from) < 0) { - target.from = from; - target.l = null; - target.d = right ? right.d + 1 : 1; - } - if (cmp(to, target.to) > 0) { - target.to = to; - target.r = null; - target.d = target.l ? target.l.d + 1 : 1; - } - const rightWasCutOff = !target.r; - if (left && !target.l) { - mergeRanges(target, left); - } - if (right && rightWasCutOff) { - mergeRanges(target, right); - } -} -function mergeRanges(target, newSet) { - function _addRangeSet(target, { from, to, l, r }) { - addRange(target, from, to); - if (l) - _addRangeSet(target, l); - if (r) - _addRangeSet(target, r); - } - if (!isEmptyRange(newSet)) - _addRangeSet(target, newSet); -} -function rangesOverlap(rangeSet1, rangeSet2) { - const i1 = getRangeSetIterator(rangeSet2); - let nextResult1 = i1.next(); - if (nextResult1.done) - return false; - let a = nextResult1.value; - const i2 = getRangeSetIterator(rangeSet1); - let nextResult2 = i2.next(a.from); - let b = nextResult2.value; - while (!nextResult1.done && !nextResult2.done) { - if (cmp(b.from, a.to) <= 0 && cmp(b.to, a.from) >= 0) - return true; - cmp(a.from, b.from) < 0 - ? (a = (nextResult1 = i1.next(b.from)).value) - : (b = (nextResult2 = i2.next(a.from)).value); - } - return false; -} -function getRangeSetIterator(node) { - let state = isEmptyRange(node) ? null : { s: 0, n: node }; - return { - next(key) { - const keyProvided = arguments.length > 0; - while (state) { - switch (state.s) { - case 0: - state.s = 1; - if (keyProvided) { - while (state.n.l && cmp(key, state.n.from) < 0) - state = { up: state, n: state.n.l, s: 1 }; - } - else { - while (state.n.l) - state = { up: state, n: state.n.l, s: 1 }; - } - case 1: - state.s = 2; - if (!keyProvided || cmp(key, state.n.to) <= 0) - return { value: state.n, done: false }; - case 2: - if (state.n.r) { - state.s = 3; - state = { up: state, n: state.n.r, s: 0 }; - continue; - } - case 3: - state = state.up; - } - } - return { done: true }; - }, - }; -} -function rebalance(target) { - var _a, _b; - const diff = (((_a = target.r) === null || _a === void 0 ? void 0 : _a.d) || 0) - (((_b = target.l) === null || _b === void 0 ? void 0 : _b.d) || 0); - const r = diff > 1 ? "r" : diff < -1 ? "l" : ""; - if (r) { - const l = r === "r" ? "l" : "r"; - const rootClone = { ...target }; - const oldRootRight = target[r]; - target.from = oldRootRight.from; - target.to = oldRootRight.to; - target[r] = oldRootRight[r]; - rootClone[r] = oldRootRight[l]; - target[l] = rootClone; - rootClone.d = computeDepth(rootClone); - } - target.d = computeDepth(target); -} -function computeDepth({ r, l }) { - return (r ? (l ? Math.max(r.d, l.d) : r.d) : l ? l.d : 0) + 1; -} + // Define properties with getters/setter + // Setting the defined property will automatically trigger change event + // Defined properties are passed down to gizmo and plane -const observabilityMiddleware = { - stack: "dbcore", - level: 0, - create: (core) => { - const dbName = core.schema.name; - const FULL_RANGE = new RangeSet(core.MIN_KEY, core.MAX_KEY); - return { - ...core, - table: (tableName) => { - const table = core.table(tableName); - const { schema } = table; - const { primaryKey } = schema; - const { extractKey, outbound } = primaryKey; - const tableClone = { - ...table, - mutate: (req) => { - const trans = req.trans; - const mutatedParts = trans.mutatedParts || (trans.mutatedParts = {}); - const getRangeSet = (indexName) => { - const part = `idb://${dbName}/${tableName}/${indexName}`; - return (mutatedParts[part] || - (mutatedParts[part] = new RangeSet())); - }; - const pkRangeSet = getRangeSet(""); - const delsRangeSet = getRangeSet(":dels"); - const { type } = req; - let [keys, newObjs] = req.type === "deleteRange" - ? [req.range] - : req.type === "delete" - ? [req.keys] - : req.values.length < 50 - ? [[], req.values] - : []; - const oldCache = req.trans["_cache"]; - return table.mutate(req).then((res) => { - if (isArray(keys)) { - if (type !== "delete") - keys = res.results; - pkRangeSet.addKeys(keys); - const oldObjs = getFromTransactionCache(keys, oldCache); - if (!oldObjs && type !== "add") { - delsRangeSet.addKeys(keys); - } - if (oldObjs || newObjs) { - trackAffectedIndexes(getRangeSet, schema, oldObjs, newObjs); - } - } - else if (keys) { - const range = { from: keys.lower, to: keys.upper }; - delsRangeSet.add(range); - pkRangeSet.add(range); - } - else { - pkRangeSet.add(FULL_RANGE); - delsRangeSet.add(FULL_RANGE); - schema.indexes.forEach(idx => getRangeSet(idx.name).add(FULL_RANGE)); - } - return res; - }); - }, - }; - const getRange = ({ query: { index, range }, }) => { - var _a, _b; - return [ - index, - new RangeSet((_a = range.lower) !== null && _a !== void 0 ? _a : core.MIN_KEY, (_b = range.upper) !== null && _b !== void 0 ? _b : core.MAX_KEY), - ]; - }; - const readSubscribers = { - get: (req) => [primaryKey, new RangeSet(req.key)], - getMany: (req) => [primaryKey, new RangeSet().addKeys(req.keys)], - count: getRange, - query: getRange, - openCursor: getRange, - }; - keys(readSubscribers).forEach(method => { - tableClone[method] = function (req) { - const { subscr } = PSD; - if (subscr) { - const getRangeSet = (indexName) => { - const part = `idb://${dbName}/${tableName}/${indexName}`; - return (subscr[part] || - (subscr[part] = new RangeSet())); - }; - const pkRangeSet = getRangeSet(""); - const delsRangeSet = getRangeSet(":dels"); - const [queriedIndex, queriedRanges] = readSubscribers[method](req); - getRangeSet(queriedIndex.name || "").add(queriedRanges); - if (!queriedIndex.isPrimaryKey) { - if (method === "count") { - delsRangeSet.add(FULL_RANGE); - } - else { - const keysPromise = method === "query" && - outbound && - req.values && - table.query({ - ...req, - values: false, - }); - return table[method].apply(this, arguments).then((res) => { - if (method === "query") { - if (outbound && req.values) { - return keysPromise.then(({ result: resultingKeys }) => { - pkRangeSet.addKeys(resultingKeys); - return res; - }); - } - const pKeys = req.values - ? res.result.map(extractKey) - : res.result; - if (req.values) { - pkRangeSet.addKeys(pKeys); - } - else { - delsRangeSet.addKeys(pKeys); - } - } - else if (method === "openCursor") { - const cursor = res; - const wantValues = req.values; - return (cursor && - Object.create(cursor, { - key: { - get() { - delsRangeSet.addKey(cursor.primaryKey); - return cursor.key; - }, - }, - primaryKey: { - get() { - const pkey = cursor.primaryKey; - delsRangeSet.addKey(pkey); - return pkey; - }, - }, - value: { - get() { - wantValues && pkRangeSet.addKey(cursor.primaryKey); - return cursor.value; - }, - }, - })); - } - return res; - }); - } - } - } - return table[method].apply(this, arguments); - }; - }); - return tableClone; - }, - }; - }, -}; -function trackAffectedIndexes(getRangeSet, schema, oldObjs, newObjs) { - function addAffectedIndex(ix) { - const rangeSet = getRangeSet(ix.name || ""); - function extractKey(obj) { - return obj != null ? ix.extractKey(obj) : null; - } - const addKeyOrKeys = (key) => ix.multiEntry && isArray(key) - ? key.forEach(key => rangeSet.addKey(key)) - : rangeSet.addKey(key); - (oldObjs || newObjs).forEach((_, i) => { - const oldKey = oldObjs && extractKey(oldObjs[i]); - const newKey = newObjs && extractKey(newObjs[i]); - if (cmp(oldKey, newKey) !== 0) { - if (oldKey != null) - addKeyOrKeys(oldKey); - if (newKey != null) - addKeyOrKeys(newKey); - } - }); - } - schema.indexes.forEach(addAffectedIndex); -} + defineProperty( 'camera', camera ); + defineProperty( 'object', undefined ); + defineProperty( 'enabled', true ); + defineProperty( 'axis', null ); + defineProperty( 'mode', 'translate' ); + defineProperty( 'translationSnap', null ); + defineProperty( 'rotationSnap', null ); + defineProperty( 'scaleSnap', null ); + defineProperty( 'space', 'world' ); + defineProperty( 'size', 1 ); + defineProperty( 'dragging', false ); + defineProperty( 'showX', true ); + defineProperty( 'showY', true ); + defineProperty( 'showZ', true ); -class Dexie$1 { - constructor(name, options) { - this._middlewares = {}; - this.verno = 0; - const deps = Dexie$1.dependencies; - this._options = options = { - addons: Dexie$1.addons, - autoOpen: true, - indexedDB: deps.indexedDB, - IDBKeyRange: deps.IDBKeyRange, - ...options - }; - this._deps = { - indexedDB: options.indexedDB, - IDBKeyRange: options.IDBKeyRange - }; - const { addons, } = options; - this._dbSchema = {}; - this._versions = []; - this._storeNames = []; - this._allTables = {}; - this.idbdb = null; - this._novip = this; - const state = { - dbOpenError: null, - isBeingOpened: false, - onReadyBeingFired: null, - openComplete: false, - dbReadyResolve: nop, - dbReadyPromise: null, - cancelOpen: nop, - openCanceller: null, - autoSchema: true, - PR1398_maxLoop: 3 - }; - state.dbReadyPromise = new DexiePromise(resolve => { - state.dbReadyResolve = resolve; - }); - state.openCanceller = new DexiePromise((_, reject) => { - state.cancelOpen = reject; - }); - this._state = state; - this.name = name; - this.on = Events(this, "populate", "blocked", "versionchange", "close", { ready: [promisableChain, nop] }); - this.on.ready.subscribe = override(this.on.ready.subscribe, subscribe => { - return (subscriber, bSticky) => { - Dexie$1.vip(() => { - const state = this._state; - if (state.openComplete) { - if (!state.dbOpenError) - DexiePromise.resolve().then(subscriber); - if (bSticky) - subscribe(subscriber); - } - else if (state.onReadyBeingFired) { - state.onReadyBeingFired.push(subscriber); - if (bSticky) - subscribe(subscriber); - } - else { - subscribe(subscriber); - const db = this; - if (!bSticky) - subscribe(function unsubscribe() { - db.on.ready.unsubscribe(subscriber); - db.on.ready.unsubscribe(unsubscribe); - }); - } - }); - }; - }); - this.Collection = createCollectionConstructor(this); - this.Table = createTableConstructor(this); - this.Transaction = createTransactionConstructor(this); - this.Version = createVersionConstructor(this); - this.WhereClause = createWhereClauseConstructor(this); - this.on("versionchange", ev => { - if (ev.newVersion > 0) - console.warn(`Another connection wants to upgrade database '${this.name}'. Closing db now to resume the upgrade.`); - else - console.warn(`Another connection wants to delete database '${this.name}'. Closing db now to resume the delete request.`); - this.close(); - }); - this.on("blocked", ev => { - if (!ev.newVersion || ev.newVersion < ev.oldVersion) - console.warn(`Dexie.delete('${this.name}') was blocked`); - else - console.warn(`Upgrade '${this.name}' blocked by other connection holding version ${ev.oldVersion / 10}`); - }); - this._maxKey = getMaxKey(options.IDBKeyRange); - this._createTransaction = (mode, storeNames, dbschema, parentTransaction) => new this.Transaction(mode, storeNames, dbschema, this._options.chromeTransactionDurability, parentTransaction); - this._fireOnBlocked = ev => { - this.on("blocked").fire(ev); - connections - .filter(c => c.name === this.name && c !== this && !c._state.vcFired) - .map(c => c.on("versionchange").fire(ev)); - }; - this.use(virtualIndexMiddleware); - this.use(hooksMiddleware); - this.use(observabilityMiddleware); - this.use(cacheExistingValuesMiddleware); - this.vip = Object.create(this, { _vip: { value: true } }); - addons.forEach(addon => addon(this)); - } - version(versionNumber) { - if (isNaN(versionNumber) || versionNumber < 0.1) - throw new exceptions.Type(`Given version is not a positive number`); - versionNumber = Math.round(versionNumber * 10) / 10; - if (this.idbdb || this._state.isBeingOpened) - throw new exceptions.Schema("Cannot add version when database is open"); - this.verno = Math.max(this.verno, versionNumber); - const versions = this._versions; - var versionInstance = versions.filter(v => v._cfg.version === versionNumber)[0]; - if (versionInstance) - return versionInstance; - versionInstance = new this.Version(versionNumber); - versions.push(versionInstance); - versions.sort(lowerVersionFirst); - versionInstance.stores({}); - this._state.autoSchema = false; - return versionInstance; - } - _whenReady(fn) { - return (this.idbdb && (this._state.openComplete || PSD.letThrough || this._vip)) ? fn() : new DexiePromise((resolve, reject) => { - if (this._state.openComplete) { - return reject(new exceptions.DatabaseClosed(this._state.dbOpenError)); - } - if (!this._state.isBeingOpened) { - if (!this._options.autoOpen) { - reject(new exceptions.DatabaseClosed()); - return; - } - this.open().catch(nop); - } - this._state.dbReadyPromise.then(resolve, reject); - }).then(fn); - } - use({ stack, create, level, name }) { - if (name) - this.unuse({ stack, name }); - const middlewares = this._middlewares[stack] || (this._middlewares[stack] = []); - middlewares.push({ stack, create, level: level == null ? 10 : level, name }); - middlewares.sort((a, b) => a.level - b.level); - return this; - } - unuse({ stack, name, create }) { - if (stack && this._middlewares[stack]) { - this._middlewares[stack] = this._middlewares[stack].filter(mw => create ? mw.create !== create : - name ? mw.name !== name : - false); - } - return this; - } - open() { - return dexieOpen(this); - } - _close() { - const state = this._state; - const idx = connections.indexOf(this); - if (idx >= 0) - connections.splice(idx, 1); - if (this.idbdb) { - try { - this.idbdb.close(); - } - catch (e) { } - this._novip.idbdb = null; - } - state.dbReadyPromise = new DexiePromise(resolve => { - state.dbReadyResolve = resolve; - }); - state.openCanceller = new DexiePromise((_, reject) => { - state.cancelOpen = reject; - }); - } - close() { - this._close(); - const state = this._state; - this._options.autoOpen = false; - state.dbOpenError = new exceptions.DatabaseClosed(); - if (state.isBeingOpened) - state.cancelOpen(state.dbOpenError); - } - delete() { - const hasArguments = arguments.length > 0; - const state = this._state; - return new DexiePromise((resolve, reject) => { - const doDelete = () => { - this.close(); - var req = this._deps.indexedDB.deleteDatabase(this.name); - req.onsuccess = wrap(() => { - _onDatabaseDeleted(this._deps, this.name); - resolve(); - }); - req.onerror = eventRejectHandler(reject); - req.onblocked = this._fireOnBlocked; - }; - if (hasArguments) - throw new exceptions.InvalidArgument("Arguments not allowed in db.delete()"); - if (state.isBeingOpened) { - state.dbReadyPromise.then(doDelete); - } - else { - doDelete(); - } - }); - } - backendDB() { - return this.idbdb; - } - isOpen() { - return this.idbdb !== null; - } - hasBeenClosed() { - const dbOpenError = this._state.dbOpenError; - return dbOpenError && (dbOpenError.name === 'DatabaseClosed'); - } - hasFailed() { - return this._state.dbOpenError !== null; - } - dynamicallyOpened() { - return this._state.autoSchema; - } - get tables() { - return keys(this._allTables).map(name => this._allTables[name]); - } - transaction() { - const args = extractTransactionArgs.apply(this, arguments); - return this._transaction.apply(this, args); - } - _transaction(mode, tables, scopeFunc) { - let parentTransaction = PSD.trans; - if (!parentTransaction || parentTransaction.db !== this || mode.indexOf('!') !== -1) - parentTransaction = null; - const onlyIfCompatible = mode.indexOf('?') !== -1; - mode = mode.replace('!', '').replace('?', ''); - let idbMode, storeNames; - try { - storeNames = tables.map(table => { - var storeName = table instanceof this.Table ? table.name : table; - if (typeof storeName !== 'string') - throw new TypeError("Invalid table argument to Dexie.transaction(). Only Table or String are allowed"); - return storeName; - }); - if (mode == "r" || mode === READONLY) - idbMode = READONLY; - else if (mode == "rw" || mode == READWRITE) - idbMode = READWRITE; - else - throw new exceptions.InvalidArgument("Invalid transaction mode: " + mode); - if (parentTransaction) { - if (parentTransaction.mode === READONLY && idbMode === READWRITE) { - if (onlyIfCompatible) { - parentTransaction = null; - } - else - throw new exceptions.SubTransaction("Cannot enter a sub-transaction with READWRITE mode when parent transaction is READONLY"); - } - if (parentTransaction) { - storeNames.forEach(storeName => { - if (parentTransaction && parentTransaction.storeNames.indexOf(storeName) === -1) { - if (onlyIfCompatible) { - parentTransaction = null; - } - else - throw new exceptions.SubTransaction("Table " + storeName + - " not included in parent transaction."); - } - }); - } - if (onlyIfCompatible && parentTransaction && !parentTransaction.active) { - parentTransaction = null; - } - } - } - catch (e) { - return parentTransaction ? - parentTransaction._promise(null, (_, reject) => { reject(e); }) : - rejection(e); - } - const enterTransaction = enterTransactionScope.bind(null, this, idbMode, storeNames, parentTransaction, scopeFunc); - return (parentTransaction ? - parentTransaction._promise(idbMode, enterTransaction, "lock") : - PSD.trans ? - usePSD(PSD.transless, () => this._whenReady(enterTransaction)) : - this._whenReady(enterTransaction)); - } - table(tableName) { - if (!hasOwn(this._allTables, tableName)) { - throw new exceptions.InvalidTable(`Table ${tableName} does not exist`); - } - return this._allTables[tableName]; - } -} + // Reusable utility variables -const symbolObservable = typeof Symbol !== "undefined" && "observable" in Symbol - ? Symbol.observable - : "@@observable"; -class Observable { - constructor(subscribe) { - this._subscribe = subscribe; - } - subscribe(x, error, complete) { - return this._subscribe(!x || typeof x === "function" ? { next: x, error, complete } : x); - } - [symbolObservable]() { - return this; - } -} + const worldPosition = new Vector3$1(); + const worldPositionStart = new Vector3$1(); + const worldQuaternion = new Quaternion$1(); + const worldQuaternionStart = new Quaternion$1(); + const cameraPosition = new Vector3$1(); + const cameraQuaternion = new Quaternion$1(); + const pointStart = new Vector3$1(); + const pointEnd = new Vector3$1(); + const rotationAxis = new Vector3$1(); + const rotationAngle = 0; + const eye = new Vector3$1(); -function extendObservabilitySet(target, newSet) { - keys(newSet).forEach(part => { - const rangeSet = target[part] || (target[part] = new RangeSet()); - mergeRanges(rangeSet, newSet[part]); - }); - return target; -} + // TODO: remove properties unused in plane and gizmo -function liveQuery(querier) { - let hasValue = false; - let currentValue = undefined; - const observable = new Observable((observer) => { - const scopeFuncIsAsync = isAsyncFunction(querier); - function execute(subscr) { - if (scopeFuncIsAsync) { - incrementExpectedAwaits(); - } - const exec = () => newScope(querier, { subscr, trans: null }); - const rv = PSD.trans - ? - usePSD(PSD.transless, exec) - : exec(); - if (scopeFuncIsAsync) { - rv.then(decrementExpectedAwaits, decrementExpectedAwaits); - } - return rv; - } - let closed = false; - let accumMuts = {}; - let currentObs = {}; - const subscription = { - get closed() { - return closed; - }, - unsubscribe: () => { - closed = true; - globalEvents.storagemutated.unsubscribe(mutationListener); - }, - }; - observer.start && observer.start(subscription); - let querying = false, startedListening = false; - function shouldNotify() { - return keys(currentObs).some((key) => accumMuts[key] && rangesOverlap(accumMuts[key], currentObs[key])); - } - const mutationListener = (parts) => { - extendObservabilitySet(accumMuts, parts); - if (shouldNotify()) { - doQuery(); - } - }; - const doQuery = () => { - if (querying || closed) - return; - accumMuts = {}; - const subscr = {}; - const ret = execute(subscr); - if (!startedListening) { - globalEvents(DEXIE_STORAGE_MUTATED_EVENT_NAME, mutationListener); - startedListening = true; - } - querying = true; - Promise.resolve(ret).then((result) => { - hasValue = true; - currentValue = result; - querying = false; - if (closed) - return; - if (shouldNotify()) { - doQuery(); - } - else { - accumMuts = {}; - currentObs = subscr; - observer.next && observer.next(result); - } - }, (err) => { - querying = false; - hasValue = false; - observer.error && observer.error(err); - subscription.unsubscribe(); - }); - }; - doQuery(); - return subscription; - }); - observable.hasValue = () => hasValue; - observable.getValue = () => currentValue; - return observable; -} + defineProperty( 'worldPosition', worldPosition ); + defineProperty( 'worldPositionStart', worldPositionStart ); + defineProperty( 'worldQuaternion', worldQuaternion ); + defineProperty( 'worldQuaternionStart', worldQuaternionStart ); + defineProperty( 'cameraPosition', cameraPosition ); + defineProperty( 'cameraQuaternion', cameraQuaternion ); + defineProperty( 'pointStart', pointStart ); + defineProperty( 'pointEnd', pointEnd ); + defineProperty( 'rotationAxis', rotationAxis ); + defineProperty( 'rotationAngle', rotationAngle ); + defineProperty( 'eye', eye ); -let domDeps; -try { - domDeps = { - indexedDB: _global.indexedDB || _global.mozIndexedDB || _global.webkitIndexedDB || _global.msIndexedDB, - IDBKeyRange: _global.IDBKeyRange || _global.webkitIDBKeyRange - }; -} -catch (e) { - domDeps = { indexedDB: null, IDBKeyRange: null }; -} + this._offset = new Vector3$1(); + this._startNorm = new Vector3$1(); + this._endNorm = new Vector3$1(); + this._cameraScale = new Vector3$1(); -const Dexie = Dexie$1; -props(Dexie, { - ...fullNameExceptions, - delete(databaseName) { - const db = new Dexie(databaseName, { addons: [] }); - return db.delete(); - }, - exists(name) { - return new Dexie(name, { addons: [] }).open().then(db => { - db.close(); - return true; - }).catch('NoSuchDatabaseError', () => false); - }, - getDatabaseNames(cb) { - try { - return getDatabaseNames(Dexie.dependencies).then(cb); - } - catch (_a) { - return rejection(new exceptions.MissingAPI()); - } - }, - defineClass() { - function Class(content) { - extend(this, content); - } - return Class; - }, - ignoreTransaction(scopeFunc) { - return PSD.trans ? - usePSD(PSD.transless, scopeFunc) : - scopeFunc(); - }, - vip, - async: function (generatorFn) { - return function () { - try { - var rv = awaitIterator(generatorFn.apply(this, arguments)); - if (!rv || typeof rv.then !== 'function') - return DexiePromise.resolve(rv); - return rv; - } - catch (e) { - return rejection(e); - } - }; - }, - spawn: function (generatorFn, args, thiz) { - try { - var rv = awaitIterator(generatorFn.apply(thiz, args || [])); - if (!rv || typeof rv.then !== 'function') - return DexiePromise.resolve(rv); - return rv; - } - catch (e) { - return rejection(e); - } - }, - currentTransaction: { - get: () => PSD.trans || null - }, - waitFor: function (promiseOrFunction, optionalTimeout) { - const promise = DexiePromise.resolve(typeof promiseOrFunction === 'function' ? - Dexie.ignoreTransaction(promiseOrFunction) : - promiseOrFunction) - .timeout(optionalTimeout || 60000); - return PSD.trans ? - PSD.trans.waitFor(promise) : - promise; - }, - Promise: DexiePromise, - debug: { - get: () => debug, - set: value => { - setDebug(value, value === 'dexie' ? () => true : dexieStackFrameFilter); - } - }, - derive: derive, - extend: extend, - props: props, - override: override, - Events: Events, - on: globalEvents, - liveQuery, - extendObservabilitySet, - getByKeyPath: getByKeyPath, - setByKeyPath: setByKeyPath, - delByKeyPath: delByKeyPath, - shallowClone: shallowClone, - deepClone: deepClone, - getObjectDiff: getObjectDiff, - cmp, - asap: asap$1, - minKey: minKey, - addons: [], - connections: connections, - errnames: errnames, - dependencies: domDeps, - semVer: DEXIE_VERSION, - version: DEXIE_VERSION.split('.') - .map(n => parseInt(n)) - .reduce((p, c, i) => p + (c / Math.pow(10, i * 2))), -}); -Dexie.maxKey = getMaxKey(Dexie.dependencies.IDBKeyRange); + this._parentPosition = new Vector3$1(); + this._parentQuaternion = new Quaternion$1(); + this._parentQuaternionInv = new Quaternion$1(); + this._parentScale = new Vector3$1(); -if (typeof dispatchEvent !== 'undefined' && typeof addEventListener !== 'undefined') { - globalEvents(DEXIE_STORAGE_MUTATED_EVENT_NAME, updatedParts => { - if (!propagatingLocally) { - let event; - if (isIEOrEdge) { - event = document.createEvent('CustomEvent'); - event.initCustomEvent(STORAGE_MUTATED_DOM_EVENT_NAME, true, true, updatedParts); - } - else { - event = new CustomEvent(STORAGE_MUTATED_DOM_EVENT_NAME, { - detail: updatedParts - }); - } - propagatingLocally = true; - dispatchEvent(event); - propagatingLocally = false; - } - }); - addEventListener(STORAGE_MUTATED_DOM_EVENT_NAME, ({ detail }) => { - if (!propagatingLocally) { - propagateLocally(detail); - } - }); -} -function propagateLocally(updateParts) { - let wasMe = propagatingLocally; - try { - propagatingLocally = true; - globalEvents.storagemutated.fire(updateParts); - } - finally { - propagatingLocally = wasMe; - } -} -let propagatingLocally = false; + this._worldScaleStart = new Vector3$1(); + this._worldQuaternionInv = new Quaternion$1(); + this._worldScale = new Vector3$1(); -if (typeof BroadcastChannel !== 'undefined') { - const bc = new BroadcastChannel(STORAGE_MUTATED_DOM_EVENT_NAME); - if (typeof bc.unref === 'function') { - bc.unref(); - } - globalEvents(DEXIE_STORAGE_MUTATED_EVENT_NAME, (changedParts) => { - if (!propagatingLocally) { - bc.postMessage(changedParts); - } - }); - bc.onmessage = (ev) => { - if (ev.data) - propagateLocally(ev.data); - }; -} -else if (typeof self !== 'undefined' && typeof navigator !== 'undefined') { - globalEvents(DEXIE_STORAGE_MUTATED_EVENT_NAME, (changedParts) => { - try { - if (!propagatingLocally) { - if (typeof localStorage !== 'undefined') { - localStorage.setItem(STORAGE_MUTATED_DOM_EVENT_NAME, JSON.stringify({ - trig: Math.random(), - changedParts, - })); - } - if (typeof self['clients'] === 'object') { - [...self['clients'].matchAll({ includeUncontrolled: true })].forEach((client) => client.postMessage({ - type: STORAGE_MUTATED_DOM_EVENT_NAME, - changedParts, - })); - } - } - } - catch (_a) { } - }); - if (typeof addEventListener !== 'undefined') { - addEventListener('storage', (ev) => { - if (ev.key === STORAGE_MUTATED_DOM_EVENT_NAME) { - const data = JSON.parse(ev.newValue); - if (data) - propagateLocally(data.changedParts); - } - }); - } - const swContainer = self.document && navigator.serviceWorker; - if (swContainer) { - swContainer.addEventListener('message', propagateMessageLocally); - } -} -function propagateMessageLocally({ data }) { - if (data && data.type === STORAGE_MUTATED_DOM_EVENT_NAME) { - propagateLocally(data.changedParts); - } -} + this._positionStart = new Vector3$1(); + this._quaternionStart = new Quaternion$1(); + this._scaleStart = new Vector3$1(); -DexiePromise.rejectionMapper = mapError; -setDebug(debug, dexieStackFrameFilter); + this._getPointer = getPointer.bind( this ); + this._onPointerDown = onPointerDown.bind( this ); + this._onPointerHover = onPointerHover.bind( this ); + this._onPointerMove = onPointerMove.bind( this ); + this._onPointerUp = onPointerUp.bind( this ); -new Color(); + this.domElement.addEventListener( 'pointerdown', this._onPointerDown ); + this.domElement.addEventListener( 'pointermove', this._onPointerHover ); + this.domElement.addEventListener( 'pointerup', this._onPointerUp ); -const int32 = new Int32Array(2); -new Float32Array(int32.buffer); -new Float64Array(int32.buffer); -new Uint16Array(new Uint8Array([1, 0]).buffer)[0] === 1; + } -var Encoding; -(function (Encoding) { - Encoding[Encoding["UTF8_BYTES"] = 1] = "UTF8_BYTES"; - Encoding[Encoding["UTF16_STRING"] = 2] = "UTF16_STRING"; -})(Encoding || (Encoding = {})); + // updateMatrixWorld updates key transformation variables + updateMatrixWorld() { -var __commonJS = (cb, mod) => function __require() { - return mod || (0, cb[Object.keys(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; -}; + if ( this.object !== undefined ) { -// dist/web-ifc-mt.js -var require_web_ifc_mt = __commonJS({ - "dist/web-ifc-mt.js"(exports, module) { - var WebIFCWasm2 = (() => { - var _scriptDir = typeof document !== "undefined" && document.currentScript ? document.currentScript.src : void 0; - return function(WebIFCWasm3 = {}) { - function GROWABLE_HEAP_I8() { - if (wasmMemory.buffer != HEAP8.buffer) { - updateMemoryViews(); - } - return HEAP8; - } - function GROWABLE_HEAP_U8() { - if (wasmMemory.buffer != HEAP8.buffer) { - updateMemoryViews(); - } - return HEAPU8; - } - function GROWABLE_HEAP_I16() { - if (wasmMemory.buffer != HEAP8.buffer) { - updateMemoryViews(); - } - return HEAP16; - } - function GROWABLE_HEAP_U16() { - if (wasmMemory.buffer != HEAP8.buffer) { - updateMemoryViews(); - } - return HEAPU16; - } - function GROWABLE_HEAP_I32() { - if (wasmMemory.buffer != HEAP8.buffer) { - updateMemoryViews(); - } - return HEAP32; - } - function GROWABLE_HEAP_U32() { - if (wasmMemory.buffer != HEAP8.buffer) { - updateMemoryViews(); - } - return HEAPU32; - } - function GROWABLE_HEAP_F32() { - if (wasmMemory.buffer != HEAP8.buffer) { - updateMemoryViews(); - } - return HEAPF32; - } - function GROWABLE_HEAP_F64() { - if (wasmMemory.buffer != HEAP8.buffer) { - updateMemoryViews(); - } - return HEAPF64; - } - var Module = typeof WebIFCWasm3 != "undefined" ? WebIFCWasm3 : {}; - var readyPromiseResolve, readyPromiseReject; - Module["ready"] = new Promise(function(resolve, reject) { - readyPromiseResolve = resolve; - readyPromiseReject = reject; - }); - var moduleOverrides = Object.assign({}, Module); - var thisProgram = "./this.program"; - var quit_ = (status, toThrow) => { - throw toThrow; - }; - var ENVIRONMENT_IS_WEB = typeof window == "object"; - var ENVIRONMENT_IS_WORKER = typeof importScripts == "function"; - var ENVIRONMENT_IS_NODE = typeof process == "object" && typeof process.versions == "object" && typeof process.versions.node == "string"; - var ENVIRONMENT_IS_PTHREAD = Module["ENVIRONMENT_IS_PTHREAD"] || false; - var scriptDirectory = ""; - function locateFile(path) { - if (Module["locateFile"]) { - return Module["locateFile"](path, scriptDirectory); - } - return scriptDirectory + path; - } - var read_, readAsync, readBinary; - if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) { - if (ENVIRONMENT_IS_WORKER) { - scriptDirectory = self.location.href; - } else if (typeof document != "undefined" && document.currentScript) { - scriptDirectory = document.currentScript.src; - } - if (_scriptDir) { - scriptDirectory = _scriptDir; - } - if (scriptDirectory.indexOf("blob:") !== 0) { - scriptDirectory = scriptDirectory.substr(0, scriptDirectory.replace(/[?#].*/, "").lastIndexOf("/") + 1); - } else { - scriptDirectory = ""; - } - { - read_ = (url) => { - var xhr = new XMLHttpRequest(); - xhr.open("GET", url, false); - xhr.send(null); - return xhr.responseText; - }; - if (ENVIRONMENT_IS_WORKER) { - readBinary = (url) => { - var xhr = new XMLHttpRequest(); - xhr.open("GET", url, false); - xhr.responseType = "arraybuffer"; - xhr.send(null); - return new Uint8Array(xhr.response); - }; - } - readAsync = (url, onload, onerror) => { - var xhr = new XMLHttpRequest(); - xhr.open("GET", url, true); - xhr.responseType = "arraybuffer"; - xhr.onload = () => { - if (xhr.status == 200 || xhr.status == 0 && xhr.response) { - onload(xhr.response); - return; - } - onerror(); - }; - xhr.onerror = onerror; - xhr.send(null); - }; - } - } - var out = Module["print"] || console.log.bind(console); - var err = Module["printErr"] || console.warn.bind(console); - Object.assign(Module, moduleOverrides); - moduleOverrides = null; - if (Module["arguments"]) - Module["arguments"]; - if (Module["thisProgram"]) - thisProgram = Module["thisProgram"]; - if (Module["quit"]) - quit_ = Module["quit"]; - var wasmBinary; - if (Module["wasmBinary"]) - wasmBinary = Module["wasmBinary"]; - var noExitRuntime = Module["noExitRuntime"] || true; - if (typeof WebAssembly != "object") { - abort("no native wasm support detected"); - } - var wasmMemory; - var wasmModule; - var ABORT = false; - var EXITSTATUS; - function assert(condition, text) { - if (!condition) { - abort(text); - } - } - var UTF8Decoder = typeof TextDecoder != "undefined" ? new TextDecoder("utf8") : void 0; - function UTF8ArrayToString(heapOrArray, idx, maxBytesToRead) { - idx >>>= 0; - var endIdx = idx + maxBytesToRead; - var endPtr = idx; - while (heapOrArray[endPtr] && !(endPtr >= endIdx)) - ++endPtr; - if (endPtr - idx > 16 && heapOrArray.buffer && UTF8Decoder) { - return UTF8Decoder.decode(heapOrArray.buffer instanceof SharedArrayBuffer ? heapOrArray.slice(idx, endPtr) : heapOrArray.subarray(idx, endPtr)); - } - var str = ""; - while (idx < endPtr) { - var u0 = heapOrArray[idx++]; - if (!(u0 & 128)) { - str += String.fromCharCode(u0); - continue; - } - var u1 = heapOrArray[idx++] & 63; - if ((u0 & 224) == 192) { - str += String.fromCharCode((u0 & 31) << 6 | u1); - continue; - } - var u2 = heapOrArray[idx++] & 63; - if ((u0 & 240) == 224) { - u0 = (u0 & 15) << 12 | u1 << 6 | u2; - } else { - u0 = (u0 & 7) << 18 | u1 << 12 | u2 << 6 | heapOrArray[idx++] & 63; - } - if (u0 < 65536) { - str += String.fromCharCode(u0); - } else { - var ch = u0 - 65536; - str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023); - } - } - return str; - } - function UTF8ToString(ptr, maxBytesToRead) { - ptr >>>= 0; - return ptr ? UTF8ArrayToString(GROWABLE_HEAP_U8(), ptr, maxBytesToRead) : ""; - } - function stringToUTF8Array(str, heap, outIdx, maxBytesToWrite) { - outIdx >>>= 0; - if (!(maxBytesToWrite > 0)) + this.object.updateMatrixWorld(); + + if ( this.object.parent === null ) { + + console.error( 'TransformControls: The attached 3D object must be a part of the scene graph.' ); + + } else { + + this.object.parent.matrixWorld.decompose( this._parentPosition, this._parentQuaternion, this._parentScale ); + + } + + this.object.matrixWorld.decompose( this.worldPosition, this.worldQuaternion, this._worldScale ); + + this._parentQuaternionInv.copy( this._parentQuaternion ).invert(); + this._worldQuaternionInv.copy( this.worldQuaternion ).invert(); + + } + + this.camera.updateMatrixWorld(); + this.camera.matrixWorld.decompose( this.cameraPosition, this.cameraQuaternion, this._cameraScale ); + + if ( this.camera.isOrthographicCamera ) { + + this.camera.getWorldDirection( this.eye ).negate(); + + } else { + + this.eye.copy( this.cameraPosition ).sub( this.worldPosition ).normalize(); + + } + + super.updateMatrixWorld( this ); + + } + + pointerHover( pointer ) { + + if ( this.object === undefined || this.dragging === true ) return; + + _raycaster.setFromCamera( pointer, this.camera ); + + const intersect = intersectObjectWithRay( this._gizmo.picker[ this.mode ], _raycaster ); + + if ( intersect ) { + + this.axis = intersect.object.name; + + } else { + + this.axis = null; + + } + + } + + pointerDown( pointer ) { + + if ( this.object === undefined || this.dragging === true || pointer.button !== 0 ) return; + + if ( this.axis !== null ) { + + _raycaster.setFromCamera( pointer, this.camera ); + + const planeIntersect = intersectObjectWithRay( this._plane, _raycaster, true ); + + if ( planeIntersect ) { + + this.object.updateMatrixWorld(); + this.object.parent.updateMatrixWorld(); + + this._positionStart.copy( this.object.position ); + this._quaternionStart.copy( this.object.quaternion ); + this._scaleStart.copy( this.object.scale ); + + this.object.matrixWorld.decompose( this.worldPositionStart, this.worldQuaternionStart, this._worldScaleStart ); + + this.pointStart.copy( planeIntersect.point ).sub( this.worldPositionStart ); + + } + + this.dragging = true; + _mouseDownEvent.mode = this.mode; + this.dispatchEvent( _mouseDownEvent ); + + } + + } + + pointerMove( pointer ) { + + const axis = this.axis; + const mode = this.mode; + const object = this.object; + let space = this.space; + + if ( mode === 'scale' ) { + + space = 'local'; + + } else if ( axis === 'E' || axis === 'XYZE' || axis === 'XYZ' ) { + + space = 'world'; + + } + + if ( object === undefined || axis === null || this.dragging === false || pointer.button !== - 1 ) return; + + _raycaster.setFromCamera( pointer, this.camera ); + + const planeIntersect = intersectObjectWithRay( this._plane, _raycaster, true ); + + if ( ! planeIntersect ) return; + + this.pointEnd.copy( planeIntersect.point ).sub( this.worldPositionStart ); + + if ( mode === 'translate' ) { + + // Apply translate + + this._offset.copy( this.pointEnd ).sub( this.pointStart ); + + if ( space === 'local' && axis !== 'XYZ' ) { + + this._offset.applyQuaternion( this._worldQuaternionInv ); + + } + + if ( axis.indexOf( 'X' ) === - 1 ) this._offset.x = 0; + if ( axis.indexOf( 'Y' ) === - 1 ) this._offset.y = 0; + if ( axis.indexOf( 'Z' ) === - 1 ) this._offset.z = 0; + + if ( space === 'local' && axis !== 'XYZ' ) { + + this._offset.applyQuaternion( this._quaternionStart ).divide( this._parentScale ); + + } else { + + this._offset.applyQuaternion( this._parentQuaternionInv ).divide( this._parentScale ); + + } + + object.position.copy( this._offset ).add( this._positionStart ); + + // Apply translation snap + + if ( this.translationSnap ) { + + if ( space === 'local' ) { + + object.position.applyQuaternion( _tempQuaternion.copy( this._quaternionStart ).invert() ); + + if ( axis.search( 'X' ) !== - 1 ) { + + object.position.x = Math.round( object.position.x / this.translationSnap ) * this.translationSnap; + + } + + if ( axis.search( 'Y' ) !== - 1 ) { + + object.position.y = Math.round( object.position.y / this.translationSnap ) * this.translationSnap; + + } + + if ( axis.search( 'Z' ) !== - 1 ) { + + object.position.z = Math.round( object.position.z / this.translationSnap ) * this.translationSnap; + + } + + object.position.applyQuaternion( this._quaternionStart ); + + } + + if ( space === 'world' ) { + + if ( object.parent ) { + + object.position.add( _tempVector.setFromMatrixPosition( object.parent.matrixWorld ) ); + + } + + if ( axis.search( 'X' ) !== - 1 ) { + + object.position.x = Math.round( object.position.x / this.translationSnap ) * this.translationSnap; + + } + + if ( axis.search( 'Y' ) !== - 1 ) { + + object.position.y = Math.round( object.position.y / this.translationSnap ) * this.translationSnap; + + } + + if ( axis.search( 'Z' ) !== - 1 ) { + + object.position.z = Math.round( object.position.z / this.translationSnap ) * this.translationSnap; + + } + + if ( object.parent ) { + + object.position.sub( _tempVector.setFromMatrixPosition( object.parent.matrixWorld ) ); + + } + + } + + } + + } else if ( mode === 'scale' ) { + + if ( axis.search( 'XYZ' ) !== - 1 ) { + + let d = this.pointEnd.length() / this.pointStart.length(); + + if ( this.pointEnd.dot( this.pointStart ) < 0 ) d *= - 1; + + _tempVector2.set( d, d, d ); + + } else { + + _tempVector.copy( this.pointStart ); + _tempVector2.copy( this.pointEnd ); + + _tempVector.applyQuaternion( this._worldQuaternionInv ); + _tempVector2.applyQuaternion( this._worldQuaternionInv ); + + _tempVector2.divide( _tempVector ); + + if ( axis.search( 'X' ) === - 1 ) { + + _tempVector2.x = 1; + + } + + if ( axis.search( 'Y' ) === - 1 ) { + + _tempVector2.y = 1; + + } + + if ( axis.search( 'Z' ) === - 1 ) { + + _tempVector2.z = 1; + + } + + } + + // Apply scale + + object.scale.copy( this._scaleStart ).multiply( _tempVector2 ); + + if ( this.scaleSnap ) { + + if ( axis.search( 'X' ) !== - 1 ) { + + object.scale.x = Math.round( object.scale.x / this.scaleSnap ) * this.scaleSnap || this.scaleSnap; + + } + + if ( axis.search( 'Y' ) !== - 1 ) { + + object.scale.y = Math.round( object.scale.y / this.scaleSnap ) * this.scaleSnap || this.scaleSnap; + + } + + if ( axis.search( 'Z' ) !== - 1 ) { + + object.scale.z = Math.round( object.scale.z / this.scaleSnap ) * this.scaleSnap || this.scaleSnap; + + } + + } + + } else if ( mode === 'rotate' ) { + + this._offset.copy( this.pointEnd ).sub( this.pointStart ); + + const ROTATION_SPEED = 20 / this.worldPosition.distanceTo( _tempVector.setFromMatrixPosition( this.camera.matrixWorld ) ); + + if ( axis === 'E' ) { + + this.rotationAxis.copy( this.eye ); + this.rotationAngle = this.pointEnd.angleTo( this.pointStart ); + + this._startNorm.copy( this.pointStart ).normalize(); + this._endNorm.copy( this.pointEnd ).normalize(); + + this.rotationAngle *= ( this._endNorm.cross( this._startNorm ).dot( this.eye ) < 0 ? 1 : - 1 ); + + } else if ( axis === 'XYZE' ) { + + this.rotationAxis.copy( this._offset ).cross( this.eye ).normalize(); + this.rotationAngle = this._offset.dot( _tempVector.copy( this.rotationAxis ).cross( this.eye ) ) * ROTATION_SPEED; + + } else if ( axis === 'X' || axis === 'Y' || axis === 'Z' ) { + + this.rotationAxis.copy( _unit[ axis ] ); + + _tempVector.copy( _unit[ axis ] ); + + if ( space === 'local' ) { + + _tempVector.applyQuaternion( this.worldQuaternion ); + + } + + this.rotationAngle = this._offset.dot( _tempVector.cross( this.eye ).normalize() ) * ROTATION_SPEED; + + } + + // Apply rotation snap + + if ( this.rotationSnap ) this.rotationAngle = Math.round( this.rotationAngle / this.rotationSnap ) * this.rotationSnap; + + // Apply rotate + if ( space === 'local' && axis !== 'E' && axis !== 'XYZE' ) { + + object.quaternion.copy( this._quaternionStart ); + object.quaternion.multiply( _tempQuaternion.setFromAxisAngle( this.rotationAxis, this.rotationAngle ) ).normalize(); + + } else { + + this.rotationAxis.applyQuaternion( this._parentQuaternionInv ); + object.quaternion.copy( _tempQuaternion.setFromAxisAngle( this.rotationAxis, this.rotationAngle ) ); + object.quaternion.multiply( this._quaternionStart ).normalize(); + + } + + } + + this.dispatchEvent( _changeEvent$1 ); + this.dispatchEvent( _objectChangeEvent ); + + } + + pointerUp( pointer ) { + + if ( pointer.button !== 0 ) return; + + if ( this.dragging && ( this.axis !== null ) ) { + + _mouseUpEvent.mode = this.mode; + this.dispatchEvent( _mouseUpEvent ); + + } + + this.dragging = false; + this.axis = null; + + } + + dispose() { + + this.domElement.removeEventListener( 'pointerdown', this._onPointerDown ); + this.domElement.removeEventListener( 'pointermove', this._onPointerHover ); + this.domElement.removeEventListener( 'pointermove', this._onPointerMove ); + this.domElement.removeEventListener( 'pointerup', this._onPointerUp ); + + this.traverse( function ( child ) { + + if ( child.geometry ) child.geometry.dispose(); + if ( child.material ) child.material.dispose(); + + } ); + + } + + // Set current object + attach( object ) { + + this.object = object; + this.visible = true; + + return this; + + } + + // Detach from object + detach() { + + this.object = undefined; + this.visible = false; + this.axis = null; + + return this; + + } + + reset() { + + if ( ! this.enabled ) return; + + if ( this.dragging ) { + + this.object.position.copy( this._positionStart ); + this.object.quaternion.copy( this._quaternionStart ); + this.object.scale.copy( this._scaleStart ); + + this.dispatchEvent( _changeEvent$1 ); + this.dispatchEvent( _objectChangeEvent ); + + this.pointStart.copy( this.pointEnd ); + + } + + } + + getRaycaster() { + + return _raycaster; + + } + + // TODO: deprecate + + getMode() { + + return this.mode; + + } + + setMode( mode ) { + + this.mode = mode; + + } + + setTranslationSnap( translationSnap ) { + + this.translationSnap = translationSnap; + + } + + setRotationSnap( rotationSnap ) { + + this.rotationSnap = rotationSnap; + + } + + setScaleSnap( scaleSnap ) { + + this.scaleSnap = scaleSnap; + + } + + setSize( size ) { + + this.size = size; + + } + + setSpace( space ) { + + this.space = space; + + } + +} + +// mouse / touch event handlers + +function getPointer( event ) { + + if ( this.domElement.ownerDocument.pointerLockElement ) { + + return { + x: 0, + y: 0, + button: event.button + }; + + } else { + + const rect = this.domElement.getBoundingClientRect(); + + return { + x: ( event.clientX - rect.left ) / rect.width * 2 - 1, + y: - ( event.clientY - rect.top ) / rect.height * 2 + 1, + button: event.button + }; + + } + +} + +function onPointerHover( event ) { + + if ( ! this.enabled ) return; + + switch ( event.pointerType ) { + + case 'mouse': + case 'pen': + this.pointerHover( this._getPointer( event ) ); + break; + + } + +} + +function onPointerDown( event ) { + + if ( ! this.enabled ) return; + + if ( ! document.pointerLockElement ) { + + this.domElement.setPointerCapture( event.pointerId ); + + } + + this.domElement.addEventListener( 'pointermove', this._onPointerMove ); + + this.pointerHover( this._getPointer( event ) ); + this.pointerDown( this._getPointer( event ) ); + +} + +function onPointerMove( event ) { + + if ( ! this.enabled ) return; + + this.pointerMove( this._getPointer( event ) ); + +} + +function onPointerUp( event ) { + + if ( ! this.enabled ) return; + + this.domElement.releasePointerCapture( event.pointerId ); + + this.domElement.removeEventListener( 'pointermove', this._onPointerMove ); + + this.pointerUp( this._getPointer( event ) ); + +} + +function intersectObjectWithRay( object, raycaster, includeInvisible ) { + + const allIntersections = raycaster.intersectObject( object, true ); + + for ( let i = 0; i < allIntersections.length; i ++ ) { + + if ( allIntersections[ i ].object.visible || includeInvisible ) { + + return allIntersections[ i ]; + + } + + } + + return false; + +} + +// + +// Reusable utility variables + +const _tempEuler = new Euler(); +const _alignVector = new Vector3$1( 0, 1, 0 ); +const _zeroVector = new Vector3$1( 0, 0, 0 ); +const _lookAtMatrix = new Matrix4(); +const _tempQuaternion2 = new Quaternion$1(); +const _identityQuaternion = new Quaternion$1(); +const _dirVector = new Vector3$1(); +const _tempMatrix = new Matrix4(); + +const _unitX = new Vector3$1( 1, 0, 0 ); +const _unitY = new Vector3$1( 0, 1, 0 ); +const _unitZ = new Vector3$1( 0, 0, 1 ); + +const _v1 = new Vector3$1(); +const _v2 = new Vector3$1(); +const _v3 = new Vector3$1(); + +class TransformControlsGizmo extends Object3D { + + constructor() { + + super(); + + this.isTransformControlsGizmo = true; + + this.type = 'TransformControlsGizmo'; + + // shared materials + + const gizmoMaterial = new MeshBasicMaterial( { + depthTest: false, + depthWrite: false, + fog: false, + toneMapped: false, + transparent: true + } ); + + const gizmoLineMaterial = new LineBasicMaterial( { + depthTest: false, + depthWrite: false, + fog: false, + toneMapped: false, + transparent: true + } ); + + // Make unique material for each axis/color + + const matInvisible = gizmoMaterial.clone(); + matInvisible.opacity = 0.15; + + const matHelper = gizmoLineMaterial.clone(); + matHelper.opacity = 0.5; + + const matRed = gizmoMaterial.clone(); + matRed.color.setHex( 0xff0000 ); + + const matGreen = gizmoMaterial.clone(); + matGreen.color.setHex( 0x00ff00 ); + + const matBlue = gizmoMaterial.clone(); + matBlue.color.setHex( 0x0000ff ); + + const matRedTransparent = gizmoMaterial.clone(); + matRedTransparent.color.setHex( 0xff0000 ); + matRedTransparent.opacity = 0.5; + + const matGreenTransparent = gizmoMaterial.clone(); + matGreenTransparent.color.setHex( 0x00ff00 ); + matGreenTransparent.opacity = 0.5; + + const matBlueTransparent = gizmoMaterial.clone(); + matBlueTransparent.color.setHex( 0x0000ff ); + matBlueTransparent.opacity = 0.5; + + const matWhiteTransparent = gizmoMaterial.clone(); + matWhiteTransparent.opacity = 0.25; + + const matYellowTransparent = gizmoMaterial.clone(); + matYellowTransparent.color.setHex( 0xffff00 ); + matYellowTransparent.opacity = 0.25; + + const matYellow = gizmoMaterial.clone(); + matYellow.color.setHex( 0xffff00 ); + + const matGray = gizmoMaterial.clone(); + matGray.color.setHex( 0x787878 ); + + // reusable geometry + + const arrowGeometry = new CylinderGeometry( 0, 0.04, 0.1, 12 ); + arrowGeometry.translate( 0, 0.05, 0 ); + + const scaleHandleGeometry = new BoxGeometry( 0.08, 0.08, 0.08 ); + scaleHandleGeometry.translate( 0, 0.04, 0 ); + + const lineGeometry = new BufferGeometry(); + lineGeometry.setAttribute( 'position', new Float32BufferAttribute( [ 0, 0, 0, 1, 0, 0 ], 3 ) ); + + const lineGeometry2 = new CylinderGeometry( 0.0075, 0.0075, 0.5, 3 ); + lineGeometry2.translate( 0, 0.25, 0 ); + + function CircleGeometry( radius, arc ) { + + const geometry = new TorusGeometry( radius, 0.0075, 3, 64, arc * Math.PI * 2 ); + geometry.rotateY( Math.PI / 2 ); + geometry.rotateX( Math.PI / 2 ); + return geometry; + + } + + // Special geometry for transform helper. If scaled with position vector it spans from [0,0,0] to position + + function TranslateHelperGeometry() { + + const geometry = new BufferGeometry(); + + geometry.setAttribute( 'position', new Float32BufferAttribute( [ 0, 0, 0, 1, 1, 1 ], 3 ) ); + + return geometry; + + } + + // Gizmo definitions - custom hierarchy definitions for setupGizmo() function + + const gizmoTranslate = { + X: [ + [ new Mesh( arrowGeometry, matRed ), [ 0.5, 0, 0 ], [ 0, 0, - Math.PI / 2 ]], + [ new Mesh( arrowGeometry, matRed ), [ - 0.5, 0, 0 ], [ 0, 0, Math.PI / 2 ]], + [ new Mesh( lineGeometry2, matRed ), [ 0, 0, 0 ], [ 0, 0, - Math.PI / 2 ]] + ], + Y: [ + [ new Mesh( arrowGeometry, matGreen ), [ 0, 0.5, 0 ]], + [ new Mesh( arrowGeometry, matGreen ), [ 0, - 0.5, 0 ], [ Math.PI, 0, 0 ]], + [ new Mesh( lineGeometry2, matGreen ) ] + ], + Z: [ + [ new Mesh( arrowGeometry, matBlue ), [ 0, 0, 0.5 ], [ Math.PI / 2, 0, 0 ]], + [ new Mesh( arrowGeometry, matBlue ), [ 0, 0, - 0.5 ], [ - Math.PI / 2, 0, 0 ]], + [ new Mesh( lineGeometry2, matBlue ), null, [ Math.PI / 2, 0, 0 ]] + ], + XYZ: [ + [ new Mesh( new OctahedronGeometry( 0.1, 0 ), matWhiteTransparent.clone() ), [ 0, 0, 0 ]] + ], + XY: [ + [ new Mesh( new BoxGeometry( 0.15, 0.15, 0.01 ), matBlueTransparent.clone() ), [ 0.15, 0.15, 0 ]] + ], + YZ: [ + [ new Mesh( new BoxGeometry( 0.15, 0.15, 0.01 ), matRedTransparent.clone() ), [ 0, 0.15, 0.15 ], [ 0, Math.PI / 2, 0 ]] + ], + XZ: [ + [ new Mesh( new BoxGeometry( 0.15, 0.15, 0.01 ), matGreenTransparent.clone() ), [ 0.15, 0, 0.15 ], [ - Math.PI / 2, 0, 0 ]] + ] + }; + + const pickerTranslate = { + X: [ + [ new Mesh( new CylinderGeometry( 0.2, 0, 0.6, 4 ), matInvisible ), [ 0.3, 0, 0 ], [ 0, 0, - Math.PI / 2 ]], + [ new Mesh( new CylinderGeometry( 0.2, 0, 0.6, 4 ), matInvisible ), [ - 0.3, 0, 0 ], [ 0, 0, Math.PI / 2 ]] + ], + Y: [ + [ new Mesh( new CylinderGeometry( 0.2, 0, 0.6, 4 ), matInvisible ), [ 0, 0.3, 0 ]], + [ new Mesh( new CylinderGeometry( 0.2, 0, 0.6, 4 ), matInvisible ), [ 0, - 0.3, 0 ], [ 0, 0, Math.PI ]] + ], + Z: [ + [ new Mesh( new CylinderGeometry( 0.2, 0, 0.6, 4 ), matInvisible ), [ 0, 0, 0.3 ], [ Math.PI / 2, 0, 0 ]], + [ new Mesh( new CylinderGeometry( 0.2, 0, 0.6, 4 ), matInvisible ), [ 0, 0, - 0.3 ], [ - Math.PI / 2, 0, 0 ]] + ], + XYZ: [ + [ new Mesh( new OctahedronGeometry( 0.2, 0 ), matInvisible ) ] + ], + XY: [ + [ new Mesh( new BoxGeometry( 0.2, 0.2, 0.01 ), matInvisible ), [ 0.15, 0.15, 0 ]] + ], + YZ: [ + [ new Mesh( new BoxGeometry( 0.2, 0.2, 0.01 ), matInvisible ), [ 0, 0.15, 0.15 ], [ 0, Math.PI / 2, 0 ]] + ], + XZ: [ + [ new Mesh( new BoxGeometry( 0.2, 0.2, 0.01 ), matInvisible ), [ 0.15, 0, 0.15 ], [ - Math.PI / 2, 0, 0 ]] + ] + }; + + const helperTranslate = { + START: [ + [ new Mesh( new OctahedronGeometry( 0.01, 2 ), matHelper ), null, null, null, 'helper' ] + ], + END: [ + [ new Mesh( new OctahedronGeometry( 0.01, 2 ), matHelper ), null, null, null, 'helper' ] + ], + DELTA: [ + [ new Line$2( TranslateHelperGeometry(), matHelper ), null, null, null, 'helper' ] + ], + X: [ + [ new Line$2( lineGeometry, matHelper.clone() ), [ - 1e3, 0, 0 ], null, [ 1e6, 1, 1 ], 'helper' ] + ], + Y: [ + [ new Line$2( lineGeometry, matHelper.clone() ), [ 0, - 1e3, 0 ], [ 0, 0, Math.PI / 2 ], [ 1e6, 1, 1 ], 'helper' ] + ], + Z: [ + [ new Line$2( lineGeometry, matHelper.clone() ), [ 0, 0, - 1e3 ], [ 0, - Math.PI / 2, 0 ], [ 1e6, 1, 1 ], 'helper' ] + ] + }; + + const gizmoRotate = { + XYZE: [ + [ new Mesh( CircleGeometry( 0.5, 1 ), matGray ), null, [ 0, Math.PI / 2, 0 ]] + ], + X: [ + [ new Mesh( CircleGeometry( 0.5, 0.5 ), matRed ) ] + ], + Y: [ + [ new Mesh( CircleGeometry( 0.5, 0.5 ), matGreen ), null, [ 0, 0, - Math.PI / 2 ]] + ], + Z: [ + [ new Mesh( CircleGeometry( 0.5, 0.5 ), matBlue ), null, [ 0, Math.PI / 2, 0 ]] + ], + E: [ + [ new Mesh( CircleGeometry( 0.75, 1 ), matYellowTransparent ), null, [ 0, Math.PI / 2, 0 ]] + ] + }; + + const helperRotate = { + AXIS: [ + [ new Line$2( lineGeometry, matHelper.clone() ), [ - 1e3, 0, 0 ], null, [ 1e6, 1, 1 ], 'helper' ] + ] + }; + + const pickerRotate = { + XYZE: [ + [ new Mesh( new SphereGeometry( 0.25, 10, 8 ), matInvisible ) ] + ], + X: [ + [ new Mesh( new TorusGeometry( 0.5, 0.1, 4, 24 ), matInvisible ), [ 0, 0, 0 ], [ 0, - Math.PI / 2, - Math.PI / 2 ]], + ], + Y: [ + [ new Mesh( new TorusGeometry( 0.5, 0.1, 4, 24 ), matInvisible ), [ 0, 0, 0 ], [ Math.PI / 2, 0, 0 ]], + ], + Z: [ + [ new Mesh( new TorusGeometry( 0.5, 0.1, 4, 24 ), matInvisible ), [ 0, 0, 0 ], [ 0, 0, - Math.PI / 2 ]], + ], + E: [ + [ new Mesh( new TorusGeometry( 0.75, 0.1, 2, 24 ), matInvisible ) ] + ] + }; + + const gizmoScale = { + X: [ + [ new Mesh( scaleHandleGeometry, matRed ), [ 0.5, 0, 0 ], [ 0, 0, - Math.PI / 2 ]], + [ new Mesh( lineGeometry2, matRed ), [ 0, 0, 0 ], [ 0, 0, - Math.PI / 2 ]], + [ new Mesh( scaleHandleGeometry, matRed ), [ - 0.5, 0, 0 ], [ 0, 0, Math.PI / 2 ]], + ], + Y: [ + [ new Mesh( scaleHandleGeometry, matGreen ), [ 0, 0.5, 0 ]], + [ new Mesh( lineGeometry2, matGreen ) ], + [ new Mesh( scaleHandleGeometry, matGreen ), [ 0, - 0.5, 0 ], [ 0, 0, Math.PI ]], + ], + Z: [ + [ new Mesh( scaleHandleGeometry, matBlue ), [ 0, 0, 0.5 ], [ Math.PI / 2, 0, 0 ]], + [ new Mesh( lineGeometry2, matBlue ), [ 0, 0, 0 ], [ Math.PI / 2, 0, 0 ]], + [ new Mesh( scaleHandleGeometry, matBlue ), [ 0, 0, - 0.5 ], [ - Math.PI / 2, 0, 0 ]] + ], + XY: [ + [ new Mesh( new BoxGeometry( 0.15, 0.15, 0.01 ), matBlueTransparent ), [ 0.15, 0.15, 0 ]] + ], + YZ: [ + [ new Mesh( new BoxGeometry( 0.15, 0.15, 0.01 ), matRedTransparent ), [ 0, 0.15, 0.15 ], [ 0, Math.PI / 2, 0 ]] + ], + XZ: [ + [ new Mesh( new BoxGeometry( 0.15, 0.15, 0.01 ), matGreenTransparent ), [ 0.15, 0, 0.15 ], [ - Math.PI / 2, 0, 0 ]] + ], + XYZ: [ + [ new Mesh( new BoxGeometry( 0.1, 0.1, 0.1 ), matWhiteTransparent.clone() ) ], + ] + }; + + const pickerScale = { + X: [ + [ new Mesh( new CylinderGeometry( 0.2, 0, 0.6, 4 ), matInvisible ), [ 0.3, 0, 0 ], [ 0, 0, - Math.PI / 2 ]], + [ new Mesh( new CylinderGeometry( 0.2, 0, 0.6, 4 ), matInvisible ), [ - 0.3, 0, 0 ], [ 0, 0, Math.PI / 2 ]] + ], + Y: [ + [ new Mesh( new CylinderGeometry( 0.2, 0, 0.6, 4 ), matInvisible ), [ 0, 0.3, 0 ]], + [ new Mesh( new CylinderGeometry( 0.2, 0, 0.6, 4 ), matInvisible ), [ 0, - 0.3, 0 ], [ 0, 0, Math.PI ]] + ], + Z: [ + [ new Mesh( new CylinderGeometry( 0.2, 0, 0.6, 4 ), matInvisible ), [ 0, 0, 0.3 ], [ Math.PI / 2, 0, 0 ]], + [ new Mesh( new CylinderGeometry( 0.2, 0, 0.6, 4 ), matInvisible ), [ 0, 0, - 0.3 ], [ - Math.PI / 2, 0, 0 ]] + ], + XY: [ + [ new Mesh( new BoxGeometry( 0.2, 0.2, 0.01 ), matInvisible ), [ 0.15, 0.15, 0 ]], + ], + YZ: [ + [ new Mesh( new BoxGeometry( 0.2, 0.2, 0.01 ), matInvisible ), [ 0, 0.15, 0.15 ], [ 0, Math.PI / 2, 0 ]], + ], + XZ: [ + [ new Mesh( new BoxGeometry( 0.2, 0.2, 0.01 ), matInvisible ), [ 0.15, 0, 0.15 ], [ - Math.PI / 2, 0, 0 ]], + ], + XYZ: [ + [ new Mesh( new BoxGeometry( 0.2, 0.2, 0.2 ), matInvisible ), [ 0, 0, 0 ]], + ] + }; + + const helperScale = { + X: [ + [ new Line$2( lineGeometry, matHelper.clone() ), [ - 1e3, 0, 0 ], null, [ 1e6, 1, 1 ], 'helper' ] + ], + Y: [ + [ new Line$2( lineGeometry, matHelper.clone() ), [ 0, - 1e3, 0 ], [ 0, 0, Math.PI / 2 ], [ 1e6, 1, 1 ], 'helper' ] + ], + Z: [ + [ new Line$2( lineGeometry, matHelper.clone() ), [ 0, 0, - 1e3 ], [ 0, - Math.PI / 2, 0 ], [ 1e6, 1, 1 ], 'helper' ] + ] + }; + + // Creates an Object3D with gizmos described in custom hierarchy definition. + + function setupGizmo( gizmoMap ) { + + const gizmo = new Object3D(); + + for ( const name in gizmoMap ) { + + for ( let i = gizmoMap[ name ].length; i --; ) { + + const object = gizmoMap[ name ][ i ][ 0 ].clone(); + const position = gizmoMap[ name ][ i ][ 1 ]; + const rotation = gizmoMap[ name ][ i ][ 2 ]; + const scale = gizmoMap[ name ][ i ][ 3 ]; + const tag = gizmoMap[ name ][ i ][ 4 ]; + + // name and tag properties are essential for picking and updating logic. + object.name = name; + object.tag = tag; + + if ( position ) { + + object.position.set( position[ 0 ], position[ 1 ], position[ 2 ] ); + + } + + if ( rotation ) { + + object.rotation.set( rotation[ 0 ], rotation[ 1 ], rotation[ 2 ] ); + + } + + if ( scale ) { + + object.scale.set( scale[ 0 ], scale[ 1 ], scale[ 2 ] ); + + } + + object.updateMatrix(); + + const tempGeometry = object.geometry.clone(); + tempGeometry.applyMatrix4( object.matrix ); + object.geometry = tempGeometry; + object.renderOrder = Infinity; + + object.position.set( 0, 0, 0 ); + object.rotation.set( 0, 0, 0 ); + object.scale.set( 1, 1, 1 ); + + gizmo.add( object ); + + } + + } + + return gizmo; + + } + + // Gizmo creation + + this.gizmo = {}; + this.picker = {}; + this.helper = {}; + + this.add( this.gizmo[ 'translate' ] = setupGizmo( gizmoTranslate ) ); + this.add( this.gizmo[ 'rotate' ] = setupGizmo( gizmoRotate ) ); + this.add( this.gizmo[ 'scale' ] = setupGizmo( gizmoScale ) ); + this.add( this.picker[ 'translate' ] = setupGizmo( pickerTranslate ) ); + this.add( this.picker[ 'rotate' ] = setupGizmo( pickerRotate ) ); + this.add( this.picker[ 'scale' ] = setupGizmo( pickerScale ) ); + this.add( this.helper[ 'translate' ] = setupGizmo( helperTranslate ) ); + this.add( this.helper[ 'rotate' ] = setupGizmo( helperRotate ) ); + this.add( this.helper[ 'scale' ] = setupGizmo( helperScale ) ); + + // Pickers should be hidden always + + this.picker[ 'translate' ].visible = false; + this.picker[ 'rotate' ].visible = false; + this.picker[ 'scale' ].visible = false; + + } + + // updateMatrixWorld will update transformations and appearance of individual handles + + updateMatrixWorld( force ) { + + const space = ( this.mode === 'scale' ) ? 'local' : this.space; // scale always oriented to local rotation + + const quaternion = ( space === 'local' ) ? this.worldQuaternion : _identityQuaternion; + + // Show only gizmos for current transform mode + + this.gizmo[ 'translate' ].visible = this.mode === 'translate'; + this.gizmo[ 'rotate' ].visible = this.mode === 'rotate'; + this.gizmo[ 'scale' ].visible = this.mode === 'scale'; + + this.helper[ 'translate' ].visible = this.mode === 'translate'; + this.helper[ 'rotate' ].visible = this.mode === 'rotate'; + this.helper[ 'scale' ].visible = this.mode === 'scale'; + + + let handles = []; + handles = handles.concat( this.picker[ this.mode ].children ); + handles = handles.concat( this.gizmo[ this.mode ].children ); + handles = handles.concat( this.helper[ this.mode ].children ); + + for ( let i = 0; i < handles.length; i ++ ) { + + const handle = handles[ i ]; + + // hide aligned to camera + + handle.visible = true; + handle.rotation.set( 0, 0, 0 ); + handle.position.copy( this.worldPosition ); + + let factor; + + if ( this.camera.isOrthographicCamera ) { + + factor = ( this.camera.top - this.camera.bottom ) / this.camera.zoom; + + } else { + + factor = this.worldPosition.distanceTo( this.cameraPosition ) * Math.min( 1.9 * Math.tan( Math.PI * this.camera.fov / 360 ) / this.camera.zoom, 7 ); + + } + + handle.scale.set( 1, 1, 1 ).multiplyScalar( factor * this.size / 4 ); + + // TODO: simplify helpers and consider decoupling from gizmo + + if ( handle.tag === 'helper' ) { + + handle.visible = false; + + if ( handle.name === 'AXIS' ) { + + handle.visible = !! this.axis; + + if ( this.axis === 'X' ) { + + _tempQuaternion.setFromEuler( _tempEuler.set( 0, 0, 0 ) ); + handle.quaternion.copy( quaternion ).multiply( _tempQuaternion ); + + if ( Math.abs( _alignVector.copy( _unitX ).applyQuaternion( quaternion ).dot( this.eye ) ) > 0.9 ) { + + handle.visible = false; + + } + + } + + if ( this.axis === 'Y' ) { + + _tempQuaternion.setFromEuler( _tempEuler.set( 0, 0, Math.PI / 2 ) ); + handle.quaternion.copy( quaternion ).multiply( _tempQuaternion ); + + if ( Math.abs( _alignVector.copy( _unitY ).applyQuaternion( quaternion ).dot( this.eye ) ) > 0.9 ) { + + handle.visible = false; + + } + + } + + if ( this.axis === 'Z' ) { + + _tempQuaternion.setFromEuler( _tempEuler.set( 0, Math.PI / 2, 0 ) ); + handle.quaternion.copy( quaternion ).multiply( _tempQuaternion ); + + if ( Math.abs( _alignVector.copy( _unitZ ).applyQuaternion( quaternion ).dot( this.eye ) ) > 0.9 ) { + + handle.visible = false; + + } + + } + + if ( this.axis === 'XYZE' ) { + + _tempQuaternion.setFromEuler( _tempEuler.set( 0, Math.PI / 2, 0 ) ); + _alignVector.copy( this.rotationAxis ); + handle.quaternion.setFromRotationMatrix( _lookAtMatrix.lookAt( _zeroVector, _alignVector, _unitY ) ); + handle.quaternion.multiply( _tempQuaternion ); + handle.visible = this.dragging; + + } + + if ( this.axis === 'E' ) { + + handle.visible = false; + + } + + + } else if ( handle.name === 'START' ) { + + handle.position.copy( this.worldPositionStart ); + handle.visible = this.dragging; + + } else if ( handle.name === 'END' ) { + + handle.position.copy( this.worldPosition ); + handle.visible = this.dragging; + + } else if ( handle.name === 'DELTA' ) { + + handle.position.copy( this.worldPositionStart ); + handle.quaternion.copy( this.worldQuaternionStart ); + _tempVector.set( 1e-10, 1e-10, 1e-10 ).add( this.worldPositionStart ).sub( this.worldPosition ).multiplyScalar( - 1 ); + _tempVector.applyQuaternion( this.worldQuaternionStart.clone().invert() ); + handle.scale.copy( _tempVector ); + handle.visible = this.dragging; + + } else { + + handle.quaternion.copy( quaternion ); + + if ( this.dragging ) { + + handle.position.copy( this.worldPositionStart ); + + } else { + + handle.position.copy( this.worldPosition ); + + } + + if ( this.axis ) { + + handle.visible = this.axis.search( handle.name ) !== - 1; + + } + + } + + // If updating helper, skip rest of the loop + continue; + + } + + // Align handles to current local or world rotation + + handle.quaternion.copy( quaternion ); + + if ( this.mode === 'translate' || this.mode === 'scale' ) { + + // Hide translate and scale axis facing the camera + + const AXIS_HIDE_THRESHOLD = 0.99; + const PLANE_HIDE_THRESHOLD = 0.2; + + if ( handle.name === 'X' ) { + + if ( Math.abs( _alignVector.copy( _unitX ).applyQuaternion( quaternion ).dot( this.eye ) ) > AXIS_HIDE_THRESHOLD ) { + + handle.scale.set( 1e-10, 1e-10, 1e-10 ); + handle.visible = false; + + } + + } + + if ( handle.name === 'Y' ) { + + if ( Math.abs( _alignVector.copy( _unitY ).applyQuaternion( quaternion ).dot( this.eye ) ) > AXIS_HIDE_THRESHOLD ) { + + handle.scale.set( 1e-10, 1e-10, 1e-10 ); + handle.visible = false; + + } + + } + + if ( handle.name === 'Z' ) { + + if ( Math.abs( _alignVector.copy( _unitZ ).applyQuaternion( quaternion ).dot( this.eye ) ) > AXIS_HIDE_THRESHOLD ) { + + handle.scale.set( 1e-10, 1e-10, 1e-10 ); + handle.visible = false; + + } + + } + + if ( handle.name === 'XY' ) { + + if ( Math.abs( _alignVector.copy( _unitZ ).applyQuaternion( quaternion ).dot( this.eye ) ) < PLANE_HIDE_THRESHOLD ) { + + handle.scale.set( 1e-10, 1e-10, 1e-10 ); + handle.visible = false; + + } + + } + + if ( handle.name === 'YZ' ) { + + if ( Math.abs( _alignVector.copy( _unitX ).applyQuaternion( quaternion ).dot( this.eye ) ) < PLANE_HIDE_THRESHOLD ) { + + handle.scale.set( 1e-10, 1e-10, 1e-10 ); + handle.visible = false; + + } + + } + + if ( handle.name === 'XZ' ) { + + if ( Math.abs( _alignVector.copy( _unitY ).applyQuaternion( quaternion ).dot( this.eye ) ) < PLANE_HIDE_THRESHOLD ) { + + handle.scale.set( 1e-10, 1e-10, 1e-10 ); + handle.visible = false; + + } + + } + + } else if ( this.mode === 'rotate' ) { + + // Align handles to current local or world rotation + + _tempQuaternion2.copy( quaternion ); + _alignVector.copy( this.eye ).applyQuaternion( _tempQuaternion.copy( quaternion ).invert() ); + + if ( handle.name.search( 'E' ) !== - 1 ) { + + handle.quaternion.setFromRotationMatrix( _lookAtMatrix.lookAt( this.eye, _zeroVector, _unitY ) ); + + } + + if ( handle.name === 'X' ) { + + _tempQuaternion.setFromAxisAngle( _unitX, Math.atan2( - _alignVector.y, _alignVector.z ) ); + _tempQuaternion.multiplyQuaternions( _tempQuaternion2, _tempQuaternion ); + handle.quaternion.copy( _tempQuaternion ); + + } + + if ( handle.name === 'Y' ) { + + _tempQuaternion.setFromAxisAngle( _unitY, Math.atan2( _alignVector.x, _alignVector.z ) ); + _tempQuaternion.multiplyQuaternions( _tempQuaternion2, _tempQuaternion ); + handle.quaternion.copy( _tempQuaternion ); + + } + + if ( handle.name === 'Z' ) { + + _tempQuaternion.setFromAxisAngle( _unitZ, Math.atan2( _alignVector.y, _alignVector.x ) ); + _tempQuaternion.multiplyQuaternions( _tempQuaternion2, _tempQuaternion ); + handle.quaternion.copy( _tempQuaternion ); + + } + + } + + // Hide disabled axes + handle.visible = handle.visible && ( handle.name.indexOf( 'X' ) === - 1 || this.showX ); + handle.visible = handle.visible && ( handle.name.indexOf( 'Y' ) === - 1 || this.showY ); + handle.visible = handle.visible && ( handle.name.indexOf( 'Z' ) === - 1 || this.showZ ); + handle.visible = handle.visible && ( handle.name.indexOf( 'E' ) === - 1 || ( this.showX && this.showY && this.showZ ) ); + + // highlight selected axis + + handle.material._color = handle.material._color || handle.material.color.clone(); + handle.material._opacity = handle.material._opacity || handle.material.opacity; + + handle.material.color.copy( handle.material._color ); + handle.material.opacity = handle.material._opacity; + + if ( this.enabled && this.axis ) { + + if ( handle.name === this.axis ) { + + handle.material.color.setHex( 0xffff00 ); + handle.material.opacity = 1.0; + + } else if ( this.axis.split( '' ).some( function ( a ) { + + return handle.name === a; + + } ) ) { + + handle.material.color.setHex( 0xffff00 ); + handle.material.opacity = 1.0; + + } + + } + + } + + super.updateMatrixWorld( force ); + + } + +} + +// + +class TransformControlsPlane extends Mesh { + + constructor() { + + super( + new PlaneGeometry( 100000, 100000, 2, 2 ), + new MeshBasicMaterial( { visible: false, wireframe: true, side: DoubleSide, transparent: true, opacity: 0.1, toneMapped: false } ) + ); + + this.isTransformControlsPlane = true; + + this.type = 'TransformControlsPlane'; + + } + + updateMatrixWorld( force ) { + + let space = this.space; + + this.position.copy( this.worldPosition ); + + if ( this.mode === 'scale' ) space = 'local'; // scale always oriented to local rotation + + _v1.copy( _unitX ).applyQuaternion( space === 'local' ? this.worldQuaternion : _identityQuaternion ); + _v2.copy( _unitY ).applyQuaternion( space === 'local' ? this.worldQuaternion : _identityQuaternion ); + _v3.copy( _unitZ ).applyQuaternion( space === 'local' ? this.worldQuaternion : _identityQuaternion ); + + // Align the plane for current transform mode, axis and space. + + _alignVector.copy( _v2 ); + + switch ( this.mode ) { + + case 'translate': + case 'scale': + switch ( this.axis ) { + + case 'X': + _alignVector.copy( this.eye ).cross( _v1 ); + _dirVector.copy( _v1 ).cross( _alignVector ); + break; + case 'Y': + _alignVector.copy( this.eye ).cross( _v2 ); + _dirVector.copy( _v2 ).cross( _alignVector ); + break; + case 'Z': + _alignVector.copy( this.eye ).cross( _v3 ); + _dirVector.copy( _v3 ).cross( _alignVector ); + break; + case 'XY': + _dirVector.copy( _v3 ); + break; + case 'YZ': + _dirVector.copy( _v1 ); + break; + case 'XZ': + _alignVector.copy( _v3 ); + _dirVector.copy( _v2 ); + break; + case 'XYZ': + case 'E': + _dirVector.set( 0, 0, 0 ); + break; + + } + + break; + case 'rotate': + default: + // special case for rotate + _dirVector.set( 0, 0, 0 ); + + } + + if ( _dirVector.length() === 0 ) { + + // If in rotate mode, make the plane parallel to camera + this.quaternion.copy( this.cameraQuaternion ); + + } else { + + _tempMatrix.lookAt( _tempVector.set( 0, 0, 0 ), _dirVector, _alignVector ); + + this.quaternion.setFromRotationMatrix( _tempMatrix ); + + } + + super.updateMatrixWorld( force ); + + } + +} + +/** + * Each of the planes created by {@link SimpleClipper}. + */ +class SimplePlane extends Component { + /** {@link Component.enabled} */ + get enabled() { + return this._enabled; + } + /** {@link Component.enabled} */ + set enabled(state) { + this._enabled = state; + this.components.renderer.togglePlane(state, this._plane); + } + /** {@link Hideable.visible } */ + get visible() { + return this._visible; + } + /** {@link Hideable.visible } */ + set visible(state) { + this._visible = state; + this._controls.visible = state; + this._helper.visible = state; + this.toggleControls(state); + } + /** The meshes used for raycasting */ + get meshes() { + return [this._planeMesh, this._arrowBoundBox]; + } + /** The material of the clipping plane representation. */ + get planeMaterial() { + return this._planeMesh.material; + } + /** The material of the clipping plane representation. */ + set planeMaterial(material) { + this._planeMesh.material = material; + } + /** The size of the clipping plane representation. */ + get size() { + return this._planeMesh.scale.x; + } + /** Sets the size of the clipping plane representation. */ + set size(size) { + this._planeMesh.scale.set(size, size, size); + } + constructor(components, origin, normal, material, size = 5, activateControls = true) { + super(components); + /** {@link Component.name} */ + this.name = "SimplePlane"; + /** Event that fires when the user starts dragging a clipping plane. */ + this.onDraggingStarted = new Event(); + /** Event that fires when the user stops dragging a clipping plane. */ + this.onDraggingEnded = new Event(); + this._plane = new THREE$1.Plane(); + // TODO: Make all planes share the same geometry + // TODO: Clean up unnecessary attributes, clean up constructor + this._visible = true; + this._enabled = true; + this._controlsActive = false; + this._arrowBoundBox = new THREE$1.Mesh(); + this._hiddenMaterial = new THREE$1.MeshBasicMaterial({ + visible: false, + }); + /** {@link Updateable.update} */ + this.update = () => { + if (!this._enabled) + return; + this._plane.setFromNormalAndCoplanarPoint(this._normal, this._helper.position); + }; + this.changeDrag = (event) => { + this._visible = !event.value; + this.preventCameraMovement(); + this.notifyDraggingChanged(event); + }; + this._normal = normal; + this._origin = origin; + this.components.renderer.togglePlane(true, this._plane); + this._planeMesh = SimplePlane.newPlaneMesh(size, material); + this._helper = this.newHelper(); + this._controls = this.newTransformControls(); + this._plane.setFromNormalAndCoplanarPoint(normal, origin); + if (activateControls) { + this.toggleControls(true); + } + } + /** {@link Component.get} */ + get() { + return this._plane; + } + /** {@link Disposable.dispose} */ + async dispose() { + this._enabled = false; + this.onDraggingStarted.reset(); + this.onDraggingEnded.reset(); + this._helper.removeFromParent(); + this.components.renderer.togglePlane(false, this._plane); + this._arrowBoundBox.removeFromParent(); + this._arrowBoundBox.geometry.dispose(); + this._planeMesh.geometry.dispose(); + this._controls.removeFromParent(); + this._controls.dispose(); + } + toggleControls(state) { + if (state) { + if (this._controlsActive) + return; + this._controls.addEventListener("change", this.update); + this._controls.addEventListener("dragging-changed", this.changeDrag); + } + else { + this._controls.removeEventListener("change", this.update); + this._controls.removeEventListener("dragging-changed", this.changeDrag); + } + this._controlsActive = state; + } + newTransformControls() { + const camera = this.components.camera.get(); + const container = this.components.renderer.get().domElement; + const controls = new TransformControls(camera, container); + this.initializeControls(controls); + this.components.scene.get().add(controls); + return controls; + } + initializeControls(controls) { + controls.attach(this._helper); + controls.showX = false; + controls.showY = false; + controls.setSpace("local"); + this.createArrowBoundingBox(); + controls.children[0].children[0].add(this._arrowBoundBox); + } + createArrowBoundingBox() { + this._arrowBoundBox.geometry = new THREE$1.CylinderGeometry(0.18, 0.18, 1.2); + this._arrowBoundBox.material = this._hiddenMaterial; + this._arrowBoundBox.rotateX(Math.PI / 2); + this._arrowBoundBox.updateMatrix(); + this._arrowBoundBox.geometry.applyMatrix4(this._arrowBoundBox.matrix); + } + notifyDraggingChanged(event) { + if (event.value) { + this.onDraggingStarted.trigger(); + } + else { + this.onDraggingEnded.trigger(); + } + } + preventCameraMovement() { + this.components.camera.enabled = this._visible; + } + newHelper() { + const helper = new THREE$1.Object3D(); + helper.lookAt(this._normal); + helper.position.copy(this._origin); + this._planeMesh.position.z += 0.01; + helper.add(this._planeMesh); + this.components.scene.get().add(helper); + return helper; + } + static newPlaneMesh(size, material) { + const planeGeom = new THREE$1.PlaneGeometry(1); + const mesh = new THREE$1.Mesh(planeGeom, material); + mesh.scale.set(size, size, size); + return mesh; + } +} + +// TODO: Clean up UI element +/** + * A lightweight component to easily create and handle + * [clipping planes](https://threejs.org/docs/#api/en/materials/Material.clippingPlanes). + * + * @param components - the instance of {@link Components} used. + * @param planeType - the type of plane to be used by the clipper. + * E.g. {@link SimplePlane}. + */ +class SimpleClipper extends Component { + /** {@link Component.enabled} */ + get enabled() { + return this._enabled; + } + /** {@link Component.enabled} */ + set enabled(state) { + this._enabled = state; + for (const plane of this._planes) { + plane.enabled = state; + } + this.updateMaterialsAndPlanes(); + if (this.components.ui.enabled) { + this.uiElement.get("main").active = state; + } + } + /** {@link Hideable.visible } */ + get visible() { + return this._visible; + } + /** {@link Hideable.visible } */ + set visible(state) { + this._visible = state; + for (const plane of this._planes) { + plane.visible = state; + } + } + /** The material of the clipping plane representation. */ + get material() { + return this._material; + } + /** The material of the clipping plane representation. */ + set material(material) { + this._material = material; + for (const plane of this._planes) { + plane.planeMaterial = material; + } + } + /** The size of the geometric representation of the clippings planes. */ + get size() { + return this._size; + } + /** The size of the geometric representation of the clippings planes. */ + set size(size) { + this._size = size; + for (const plane of this._planes) { + plane.size = size; + } + } + constructor(components) { + super(components); + /** {@link Createable.onAfterCreate} */ + this.onAfterCreate = new Event(); + /** {@link Createable.onAfterDelete} */ + this.onAfterDelete = new Event(); + /** Event that fires when the user starts dragging a clipping plane. */ + this.onBeforeDrag = new Event(); + /** Event that fires when the user stops dragging a clipping plane. */ + this.onAfterDrag = new Event(); + this.onBeforeCreate = new Event(); + this.onBeforeCancel = new Event(); + this.onAfterCancel = new Event(); + this.onBeforeDelete = new Event(); + /** {@link UI.uiElement} */ + this.uiElement = new UIElement(); + /** + * Whether to force the clipping plane to be orthogonal in the Y direction + * (up). This is desirable when clipping a building horizontally and a + * clipping plane is created in it's roof, which might have a slight + * slope for draining purposes. + */ + this.orthogonalY = false; + /** + * The tolerance that determines whether a horizontallish clipping plane + * will be forced to be orthogonal to the Y direction. {@link orthogonalY} + * has to be `true` for this to apply. + */ + this.toleranceOrthogonalY = 0.7; + this._planes = []; + /** The material used in all the clipping planes. */ + this._material = new THREE$1.MeshBasicMaterial({ + color: 0xffff00, + side: THREE$1.DoubleSide, + transparent: true, + opacity: 0.2, + }); + this._size = 5; + this._enabled = false; + this._visible = true; + this._onStartDragging = () => { + this.onBeforeDrag.trigger(); + }; + this._onEndDragging = () => { + this.onAfterDrag.trigger(); + }; + this.components.tools.add(SimpleClipper.uuid, this); + this.PlaneType = SimplePlane; + if (components.ui.enabled) { + this.setUI(components); + } + } + endCreation() { } + cancelCreation() { } + /** {@link Component.get} */ + get() { + return this._planes; + } + /** {@link Disposable.dispose} */ + async dispose() { + this._enabled = false; + for (const plane of this._planes) { + await plane.dispose(); + } + this._planes.length = 0; + this.uiElement.dispose(); + this._material.dispose(); + this.onBeforeCreate.reset(); + this.onBeforeCancel.reset(); + this.onBeforeDelete.reset(); + this.onBeforeDrag.reset(); + this.onAfterCreate.reset(); + this.onAfterCancel.reset(); + this.onAfterDelete.reset(); + this.onAfterDrag.reset(); + } + /** {@link Createable.create} */ + create() { + if (!this.enabled) + return; + const intersects = this.components.raycaster.castRay(); + if (!intersects) + return; + this.createPlaneFromIntersection(intersects); + } + /** + * Creates a plane in a certain place and with a certain orientation, + * without the need of the mouse. + * + * @param normal - the orientation of the clipping plane. + * @param point - the position of the clipping plane. + * @param isPlan - whether this is a clipping plane used for floor plan + * navigation. + */ + createFromNormalAndCoplanarPoint(normal, point) { + const plane = this.newPlane(point, normal); + this.updateMaterialsAndPlanes(); + return plane; + } + /** + * {@link Createable.delete} + * + * @param plane - the plane to delete. If undefined, the the first plane + * found under the cursor will be deleted. + */ + delete(plane) { + if (!this.enabled) + return; + if (!plane) { + plane = this.pickPlane(); + } + if (!plane) { + return; + } + this.deletePlane(plane); + } + /** Deletes all the existing clipping planes. */ + deleteAll() { + while (this._planes.length > 0) { + this.delete(this._planes[0]); + } + } + deletePlane(plane) { + const index = this._planes.indexOf(plane); + if (index !== -1) { + this._planes.splice(index, 1); + this.components.renderer.togglePlane(false, plane.get()); + plane.dispose(); + this.updateMaterialsAndPlanes(); + this.onAfterDelete.trigger(plane); + } + } + setUI(components) { + const main = new Button(components); + main.materialIcon = "content_cut"; + main.onClick.add(() => { + this.enabled = !this.enabled; + this.visible = !this.visible; + }); + main.active = this.enabled; + this.uiElement.set({ main }); + } + pickPlane() { + const meshes = this.getAllPlaneMeshes(); + const intersects = this.components.raycaster.castRay(meshes); + if (intersects) { + const found = intersects.object; + return this._planes.find((p) => p.meshes.includes(found)); + } + return undefined; + } + getAllPlaneMeshes() { + const meshes = []; + for (const plane of this._planes) { + meshes.push(...plane.meshes); + } + return meshes; + } + createPlaneFromIntersection(intersect) { + var _a; + const constant = intersect.point.distanceTo(new THREE$1.Vector3(0, 0, 0)); + const normal = (_a = intersect.face) === null || _a === void 0 ? void 0 : _a.normal; + if (!constant || !normal) + return; + const worldNormal = this.getWorldNormal(intersect, normal); + const plane = this.newPlane(intersect.point, worldNormal.negate()); + this.components.renderer.togglePlane(true, plane.get()); + this.updateMaterialsAndPlanes(); + } + getWorldNormal(intersect, normal) { + const object = intersect.object; + let transform = intersect.object.matrixWorld.clone(); + const isInstance = object instanceof THREE$1.InstancedMesh; + if (isInstance && intersect.instanceId !== undefined) { + const temp = new THREE$1.Matrix4(); + object.getMatrixAt(intersect.instanceId, temp); + transform = temp.multiply(transform); + } + const normalMatrix = new THREE$1.Matrix3().getNormalMatrix(transform); + const worldNormal = normal.clone().applyMatrix3(normalMatrix).normalize(); + this.normalizePlaneDirectionY(worldNormal); + return worldNormal; + } + normalizePlaneDirectionY(normal) { + if (this.orthogonalY) { + if (normal.y > this.toleranceOrthogonalY) { + normal.x = 0; + normal.y = 1; + normal.z = 0; + } + if (normal.y < -this.toleranceOrthogonalY) { + normal.x = 0; + normal.y = -1; + normal.z = 0; + } + } + } + newPlane(point, normal) { + const plane = this.newPlaneInstance(point, normal); + plane.onDraggingStarted.add(this._onStartDragging); + plane.onDraggingEnded.add(this._onEndDragging); + this._planes.push(plane); + this.onAfterCreate.trigger(plane); + return plane; + } + newPlaneInstance(point, normal) { + return new this.PlaneType(this.components, point, normal, this._material); + } + updateMaterialsAndPlanes() { + this.components.renderer.updateClippingPlanes(); + const planes = this.components.renderer.clippingPlanes; + for (const model of this.components.meshes) { + if (Array.isArray(model.material)) { + for (const mat of model.material) { + mat.clippingPlanes = planes; + } + } + else { + model.material.clippingPlanes = planes; + } + } + } +} +SimpleClipper.uuid = "66290bc5-18c4-4cd1-9379-2e17a0617611"; +ToolComponent.libraryUUIDs.add(SimpleClipper.uuid); + +// +// Thanks to the advice here https://github.com/zalo/TetSim/commit/9696c2e1cd6354fb9bd40dbd299c58f4de0341dd +// +function clientWaitAsync(gl, sync, flags, intervalMilliseconds) { + return new Promise((resolve, reject) => { + function test() { + const res = gl.clientWaitSync(sync, flags, 0); + if (res === gl.WAIT_FAILED) { + reject(); + return; + } + if (res === gl.TIMEOUT_EXPIRED) { + setTimeout(test, intervalMilliseconds); + return; + } + resolve(); + } + test(); + }); +} +async function getBufferSubDataAsync(gl, target, buffer, srcByteOffset, dstBuffer, dstOffset, length) { + const sync = gl.fenceSync(gl.SYNC_GPU_COMMANDS_COMPLETE, 0); + gl.flush(); + await clientWaitAsync(gl, sync, 0, 10); + gl.deleteSync(sync); + gl.bindBuffer(target, buffer); + gl.getBufferSubData(target, srcByteOffset, dstBuffer, dstOffset, length); + gl.bindBuffer(target, null); +} +async function readPixelsAsync(gl, x, y, w, h, format, type, dest) { + const buf = gl.createBuffer(); + gl.bindBuffer(gl.PIXEL_PACK_BUFFER, buf); + gl.bufferData(gl.PIXEL_PACK_BUFFER, dest.byteLength, gl.STREAM_READ); + gl.readPixels(x, y, w, h, format, type, 0); + gl.bindBuffer(gl.PIXEL_PACK_BUFFER, null); + await getBufferSubDataAsync(gl, gl.PIXEL_PACK_BUFFER, buf, 0, dest); + gl.deleteBuffer(buf); + return dest; +} + +// TODO: Work at the instance level instead of the mesh level? +/** + * A tool to handle big scenes efficiently by automatically hiding the objects + * that are not visible to the camera. + */ +class ScreenCuller extends Component { + constructor(components, updateInterval = 1000, rtWidth = 512, rtHeight = 512, autoUpdate = true) { + super(components); + this.updateInterval = updateInterval; + this.rtWidth = rtWidth; + this.rtHeight = rtHeight; + this.autoUpdate = autoUpdate; + /** Fires after hiding the objects that were not visible to the camera. */ + this.onViewUpdated = new Event(); + /** {@link Component.enabled} */ + this.enabled = true; + /** + * Needs to check whether there are objects that need to be hidden or shown. + * You can bind this to the camera movement, to a certain interval, etc. + */ + this.needsUpdate = false; + /** + * Render the internal scene used to determine the object visibility. Used + * for debugging purposes. + */ + this.renderDebugFrame = false; + this._meshColorMap = new Map(); + this._visibleMeshes = []; + this._colorMeshes = new Map(); + this._meshes = new Map(); + this._currentVisibleMeshes = new Set(); + this._recentlyHiddenMeshes = new Set(); + this._transparentMat = new THREE$1.MeshBasicMaterial({ + transparent: true, + opacity: 0, + }); + this._colors = { r: 0, g: 0, b: 0, i: 0 }; + // Alternative scene and meshes to make the visibility check + this._scene = new THREE$1.Scene(); + /** + * The function that the culler uses to reprocess the scene. Generally it's + * better to call needsUpdate, but you can also call this to force it. + * @param force if true, it will refresh the scene even if needsUpdate is + * not true. + */ + this.updateVisibility = async (force) => { + if (!this.enabled) + return; + if (!this.needsUpdate && !force) + return; + const camera = this.components.camera.get(); + camera.updateMatrix(); + this.renderer.setSize(this.rtWidth, this.rtHeight); + this.renderer.setRenderTarget(this.renderTarget); + this.renderer.render(this._scene, camera); + const context = this.renderer.getContext(); + await readPixelsAsync(context, 0, 0, this.rtWidth, this.rtHeight, context.RGBA, context.UNSIGNED_BYTE, this._buffer); + this.renderer.setRenderTarget(null); + if (this.renderDebugFrame) { + this.renderer.render(this._scene, camera); + } + this.worker.postMessage({ + buffer: this._buffer, + }); + this.needsUpdate = false; + }; + this.handleWorkerMessage = async (event) => { + const colors = event.data.colors; + this._recentlyHiddenMeshes = new Set(this._currentVisibleMeshes); + this._currentVisibleMeshes.clear(); + this._visibleMeshes = []; + // Make found meshes visible + for (const code of colors.values()) { + const mesh = this._meshColorMap.get(code); + if (mesh) { + this._visibleMeshes.push(mesh); + mesh.visible = true; + this._currentVisibleMeshes.add(mesh.uuid); + this._recentlyHiddenMeshes.delete(mesh.uuid); + } + } + // Hide meshes that were visible before but not anymore + for (const uuid of this._recentlyHiddenMeshes) { + const mesh = this._meshes.get(uuid); + if (mesh === undefined) + continue; + mesh.visible = false; + } + await this.onViewUpdated.trigger(); + }; + components.tools.add(ScreenCuller.uuid, this); + this.renderer = new THREE$1.WebGLRenderer(); + const planes = this.components.renderer.clippingPlanes; + this.renderer.clippingPlanes = planes; + this.renderTarget = new THREE$1.WebGLRenderTarget(rtWidth, rtHeight); + this.bufferSize = rtWidth * rtHeight * 4; + this._buffer = new Uint8Array(this.bufferSize); + this.materialCache = new Map(); + const code = ` + addEventListener("message", (event) => { + const { buffer } = event.data; + const colors = new Set(); + for (let i = 0; i < buffer.length; i += 4) { + const r = buffer[i]; + const g = buffer[i + 1]; + const b = buffer[i + 2]; + const code = "" + r + "-" + g + "-" + b; + colors.add(code); + } + postMessage({ colors }); + }); + `; + const blob = new Blob([code], { type: "application/javascript" }); + this.worker = new Worker(URL.createObjectURL(blob)); + this.worker.addEventListener("message", this.handleWorkerMessage); + if (autoUpdate) + window.setInterval(this.updateVisibility, updateInterval); + } + /** + * {@link Component.get}. + * @returns the map of internal meshes used to determine visibility. + */ + get() { + return this._colorMeshes; + } + /** {@link Disposable.dispose} */ + async dispose() { + this.enabled = false; + this._currentVisibleMeshes.clear(); + this._recentlyHiddenMeshes.clear(); + this._scene.children.length = 0; + this.onViewUpdated.reset(); + this.worker.terminate(); + this.renderer.dispose(); + this.renderTarget.dispose(); + this._buffer = null; + this._transparentMat.dispose(); + this._meshColorMap.clear(); + this._visibleMeshes = []; + for (const id in this.materialCache) { + const material = this.materialCache.get(id); + if (material) { + material.dispose(); + } + } + const disposer = await this.components.tools.get(Disposer); + for (const id in this._colorMeshes) { + const mesh = this._colorMeshes.get(id); + if (mesh) { + disposer.destroy(mesh); + } + } + this._colorMeshes.clear(); + this._meshes.clear(); + } + /** + * Adds a new mesh to be processed and managed by the culler. + * @mesh the mesh or instanced mesh to add. + */ + add(mesh) { + if (!this.enabled) + return; + const isInstanced = mesh instanceof THREE$1.InstancedMesh; + const { geometry, material } = mesh; + const { r, g, b, code } = this.getNextColor(); + const colorMaterial = this.getMaterial(r, g, b); + let newMaterial; + if (Array.isArray(material)) { + let transparentOnly = true; + const matArray = []; + for (const mat of material) { + if (this.isTransparent(mat)) { + matArray.push(this._transparentMat); + } + else { + transparentOnly = false; + matArray.push(colorMaterial); + } + } + // If we find that all the materials are transparent then we must remove this from analysis + if (transparentOnly) { + colorMaterial.dispose(); + return; + } + newMaterial = matArray; + } + else if (this.isTransparent(material)) { + // This material is transparent, so we must remove it from analysis + colorMaterial.dispose(); + return; + } + else { + newMaterial = colorMaterial; + } + this._meshColorMap.set(code, mesh); + const count = isInstanced ? mesh.count : 1; + const colorMesh = new THREE$1.InstancedMesh(geometry, newMaterial, count); + if (isInstanced) { + colorMesh.instanceMatrix = mesh.instanceMatrix; + } + else { + colorMesh.setMatrixAt(0, new THREE$1.Matrix4()); + } + mesh.visible = false; + colorMesh.applyMatrix4(mesh.matrix); + colorMesh.updateMatrix(); + this._scene.add(colorMesh); + this._colorMeshes.set(mesh.uuid, colorMesh); + this._meshes.set(mesh.uuid, mesh); + } + getMaterial(r, g, b) { + const colorEnabled = THREE$1.ColorManagement.enabled; + THREE$1.ColorManagement.enabled = false; + const code = `rgb(${r}, ${g}, ${b})`; + const color = new THREE$1.Color(code); + let material = this.materialCache.get(code); + const clippingPlanes = this.components.renderer.clippingPlanes; + if (!material) { + material = new THREE$1.MeshBasicMaterial({ + color, + clippingPlanes, + side: THREE$1.DoubleSide, + }); + this.materialCache.set(code, material); + } + THREE$1.ColorManagement.enabled = colorEnabled; + return material; + } + isTransparent(material) { + return material.transparent && material.opacity < 1; + } + getNextColor() { + if (this._colors.i === 0) { + this._colors.b++; + if (this._colors.b === 256) { + this._colors.b = 0; + this._colors.i = 1; + } + } + if (this._colors.i === 1) { + this._colors.g++; + this._colors.i = 0; + if (this._colors.g === 256) { + this._colors.g = 0; + this._colors.i = 2; + } + } + if (this._colors.i === 2) { + this._colors.r++; + this._colors.i = 1; + if (this._colors.r === 256) { + this._colors.r = 0; + this._colors.i = 0; + } + } + return { + r: this._colors.r, + g: this._colors.g, + b: this._colors.b, + code: `${this._colors.r}-${this._colors.g}-${this._colors.b}`, + }; + } +} +ScreenCuller.uuid = "69f2a50d-c266-44fc-b1bd-fa4d34be89e6"; +ToolComponent.libraryUUIDs.add(ScreenCuller.uuid); + +/* + * Dexie.js - a minimalistic wrapper for IndexedDB + * =============================================== + * + * By David Fahlander, david.fahlander@gmail.com + * + * Version 3.2.4, Tue May 30 2023 + * + * https://dexie.org + * + * Apache License Version 2.0, January 2004, http://www.apache.org/licenses/ + */ + +const _global = typeof globalThis !== 'undefined' ? globalThis : + typeof self !== 'undefined' ? self : + typeof window !== 'undefined' ? window : + global; + +const keys = Object.keys; +const isArray = Array.isArray; +if (typeof Promise !== 'undefined' && !_global.Promise) { + _global.Promise = Promise; +} +function extend(obj, extension) { + if (typeof extension !== 'object') + return obj; + keys(extension).forEach(function (key) { + obj[key] = extension[key]; + }); + return obj; +} +const getProto = Object.getPrototypeOf; +const _hasOwn = {}.hasOwnProperty; +function hasOwn(obj, prop) { + return _hasOwn.call(obj, prop); +} +function props(proto, extension) { + if (typeof extension === 'function') + extension = extension(getProto(proto)); + (typeof Reflect === "undefined" ? keys : Reflect.ownKeys)(extension).forEach(key => { + setProp(proto, key, extension[key]); + }); +} +const defineProperty = Object.defineProperty; +function setProp(obj, prop, functionOrGetSet, options) { + defineProperty(obj, prop, extend(functionOrGetSet && hasOwn(functionOrGetSet, "get") && typeof functionOrGetSet.get === 'function' ? + { get: functionOrGetSet.get, set: functionOrGetSet.set, configurable: true } : + { value: functionOrGetSet, configurable: true, writable: true }, options)); +} +function derive(Child) { + return { + from: function (Parent) { + Child.prototype = Object.create(Parent.prototype); + setProp(Child.prototype, "constructor", Child); + return { + extend: props.bind(null, Child.prototype) + }; + } + }; +} +const getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; +function getPropertyDescriptor(obj, prop) { + const pd = getOwnPropertyDescriptor(obj, prop); + let proto; + return pd || (proto = getProto(obj)) && getPropertyDescriptor(proto, prop); +} +const _slice = [].slice; +function slice(args, start, end) { + return _slice.call(args, start, end); +} +function override(origFunc, overridedFactory) { + return overridedFactory(origFunc); +} +function assert(b) { + if (!b) + throw new Error("Assertion Failed"); +} +function asap$1(fn) { + if (_global.setImmediate) + setImmediate(fn); + else + setTimeout(fn, 0); +} +function arrayToObject(array, extractor) { + return array.reduce((result, item, i) => { + var nameAndValue = extractor(item, i); + if (nameAndValue) + result[nameAndValue[0]] = nameAndValue[1]; + return result; + }, {}); +} +function tryCatch(fn, onerror, args) { + try { + fn.apply(null, args); + } + catch (ex) { + onerror && onerror(ex); + } +} +function getByKeyPath(obj, keyPath) { + if (hasOwn(obj, keyPath)) + return obj[keyPath]; + if (!keyPath) + return obj; + if (typeof keyPath !== 'string') { + var rv = []; + for (var i = 0, l = keyPath.length; i < l; ++i) { + var val = getByKeyPath(obj, keyPath[i]); + rv.push(val); + } + return rv; + } + var period = keyPath.indexOf('.'); + if (period !== -1) { + var innerObj = obj[keyPath.substr(0, period)]; + return innerObj === undefined ? undefined : getByKeyPath(innerObj, keyPath.substr(period + 1)); + } + return undefined; +} +function setByKeyPath(obj, keyPath, value) { + if (!obj || keyPath === undefined) + return; + if ('isFrozen' in Object && Object.isFrozen(obj)) + return; + if (typeof keyPath !== 'string' && 'length' in keyPath) { + assert(typeof value !== 'string' && 'length' in value); + for (var i = 0, l = keyPath.length; i < l; ++i) { + setByKeyPath(obj, keyPath[i], value[i]); + } + } + else { + var period = keyPath.indexOf('.'); + if (period !== -1) { + var currentKeyPath = keyPath.substr(0, period); + var remainingKeyPath = keyPath.substr(period + 1); + if (remainingKeyPath === "") + if (value === undefined) { + if (isArray(obj) && !isNaN(parseInt(currentKeyPath))) + obj.splice(currentKeyPath, 1); + else + delete obj[currentKeyPath]; + } + else + obj[currentKeyPath] = value; + else { + var innerObj = obj[currentKeyPath]; + if (!innerObj || !hasOwn(obj, currentKeyPath)) + innerObj = (obj[currentKeyPath] = {}); + setByKeyPath(innerObj, remainingKeyPath, value); + } + } + else { + if (value === undefined) { + if (isArray(obj) && !isNaN(parseInt(keyPath))) + obj.splice(keyPath, 1); + else + delete obj[keyPath]; + } + else + obj[keyPath] = value; + } + } +} +function delByKeyPath(obj, keyPath) { + if (typeof keyPath === 'string') + setByKeyPath(obj, keyPath, undefined); + else if ('length' in keyPath) + [].map.call(keyPath, function (kp) { + setByKeyPath(obj, kp, undefined); + }); +} +function shallowClone(obj) { + var rv = {}; + for (var m in obj) { + if (hasOwn(obj, m)) + rv[m] = obj[m]; + } + return rv; +} +const concat = [].concat; +function flatten(a) { + return concat.apply([], a); +} +const intrinsicTypeNames = "Boolean,String,Date,RegExp,Blob,File,FileList,FileSystemFileHandle,ArrayBuffer,DataView,Uint8ClampedArray,ImageBitmap,ImageData,Map,Set,CryptoKey" + .split(',').concat(flatten([8, 16, 32, 64].map(num => ["Int", "Uint", "Float"].map(t => t + num + "Array")))).filter(t => _global[t]); +const intrinsicTypes = intrinsicTypeNames.map(t => _global[t]); +arrayToObject(intrinsicTypeNames, x => [x, true]); +let circularRefs = null; +function deepClone(any) { + circularRefs = typeof WeakMap !== 'undefined' && new WeakMap(); + const rv = innerDeepClone(any); + circularRefs = null; + return rv; +} +function innerDeepClone(any) { + if (!any || typeof any !== 'object') + return any; + let rv = circularRefs && circularRefs.get(any); + if (rv) + return rv; + if (isArray(any)) { + rv = []; + circularRefs && circularRefs.set(any, rv); + for (var i = 0, l = any.length; i < l; ++i) { + rv.push(innerDeepClone(any[i])); + } + } + else if (intrinsicTypes.indexOf(any.constructor) >= 0) { + rv = any; + } + else { + const proto = getProto(any); + rv = proto === Object.prototype ? {} : Object.create(proto); + circularRefs && circularRefs.set(any, rv); + for (var prop in any) { + if (hasOwn(any, prop)) { + rv[prop] = innerDeepClone(any[prop]); + } + } + } + return rv; +} +const { toString } = {}; +function toStringTag(o) { + return toString.call(o).slice(8, -1); +} +const iteratorSymbol = typeof Symbol !== 'undefined' ? + Symbol.iterator : + '@@iterator'; +const getIteratorOf = typeof iteratorSymbol === "symbol" ? function (x) { + var i; + return x != null && (i = x[iteratorSymbol]) && i.apply(x); +} : function () { return null; }; +const NO_CHAR_ARRAY = {}; +function getArrayOf(arrayLike) { + var i, a, x, it; + if (arguments.length === 1) { + if (isArray(arrayLike)) + return arrayLike.slice(); + if (this === NO_CHAR_ARRAY && typeof arrayLike === 'string') + return [arrayLike]; + if ((it = getIteratorOf(arrayLike))) { + a = []; + while ((x = it.next()), !x.done) + a.push(x.value); + return a; + } + if (arrayLike == null) + return [arrayLike]; + i = arrayLike.length; + if (typeof i === 'number') { + a = new Array(i); + while (i--) + a[i] = arrayLike[i]; + return a; + } + return [arrayLike]; + } + i = arguments.length; + a = new Array(i); + while (i--) + a[i] = arguments[i]; + return a; +} +const isAsyncFunction = typeof Symbol !== 'undefined' + ? (fn) => fn[Symbol.toStringTag] === 'AsyncFunction' + : () => false; + +var debug = typeof location !== 'undefined' && + /^(http|https):\/\/(localhost|127\.0\.0\.1)/.test(location.href); +function setDebug(value, filter) { + debug = value; + libraryFilter = filter; +} +var libraryFilter = () => true; +const NEEDS_THROW_FOR_STACK = !new Error("").stack; +function getErrorWithStack() { + if (NEEDS_THROW_FOR_STACK) + try { + getErrorWithStack.arguments; + throw new Error(); + } + catch (e) { + return e; + } + return new Error(); +} +function prettyStack(exception, numIgnoredFrames) { + var stack = exception.stack; + if (!stack) + return ""; + numIgnoredFrames = (numIgnoredFrames || 0); + if (stack.indexOf(exception.name) === 0) + numIgnoredFrames += (exception.name + exception.message).split('\n').length; + return stack.split('\n') + .slice(numIgnoredFrames) + .filter(libraryFilter) + .map(frame => "\n" + frame) + .join(''); +} + +var dexieErrorNames = [ + 'Modify', + 'Bulk', + 'OpenFailed', + 'VersionChange', + 'Schema', + 'Upgrade', + 'InvalidTable', + 'MissingAPI', + 'NoSuchDatabase', + 'InvalidArgument', + 'SubTransaction', + 'Unsupported', + 'Internal', + 'DatabaseClosed', + 'PrematureCommit', + 'ForeignAwait' +]; +var idbDomErrorNames = [ + 'Unknown', + 'Constraint', + 'Data', + 'TransactionInactive', + 'ReadOnly', + 'Version', + 'NotFound', + 'InvalidState', + 'InvalidAccess', + 'Abort', + 'Timeout', + 'QuotaExceeded', + 'Syntax', + 'DataClone' +]; +var errorList = dexieErrorNames.concat(idbDomErrorNames); +var defaultTexts = { + VersionChanged: "Database version changed by other database connection", + DatabaseClosed: "Database has been closed", + Abort: "Transaction aborted", + TransactionInactive: "Transaction has already completed or failed", + MissingAPI: "IndexedDB API missing. Please visit https://tinyurl.com/y2uuvskb" +}; +function DexieError(name, msg) { + this._e = getErrorWithStack(); + this.name = name; + this.message = msg; +} +derive(DexieError).from(Error).extend({ + stack: { + get: function () { + return this._stack || + (this._stack = this.name + ": " + this.message + prettyStack(this._e, 2)); + } + }, + toString: function () { return this.name + ": " + this.message; } +}); +function getMultiErrorMessage(msg, failures) { + return msg + ". Errors: " + Object.keys(failures) + .map(key => failures[key].toString()) + .filter((v, i, s) => s.indexOf(v) === i) + .join('\n'); +} +function ModifyError(msg, failures, successCount, failedKeys) { + this._e = getErrorWithStack(); + this.failures = failures; + this.failedKeys = failedKeys; + this.successCount = successCount; + this.message = getMultiErrorMessage(msg, failures); +} +derive(ModifyError).from(DexieError); +function BulkError(msg, failures) { + this._e = getErrorWithStack(); + this.name = "BulkError"; + this.failures = Object.keys(failures).map(pos => failures[pos]); + this.failuresByPos = failures; + this.message = getMultiErrorMessage(msg, failures); +} +derive(BulkError).from(DexieError); +var errnames = errorList.reduce((obj, name) => (obj[name] = name + "Error", obj), {}); +const BaseException = DexieError; +var exceptions = errorList.reduce((obj, name) => { + var fullName = name + "Error"; + function DexieError(msgOrInner, inner) { + this._e = getErrorWithStack(); + this.name = fullName; + if (!msgOrInner) { + this.message = defaultTexts[name] || fullName; + this.inner = null; + } + else if (typeof msgOrInner === 'string') { + this.message = `${msgOrInner}${!inner ? '' : '\n ' + inner}`; + this.inner = inner || null; + } + else if (typeof msgOrInner === 'object') { + this.message = `${msgOrInner.name} ${msgOrInner.message}`; + this.inner = msgOrInner; + } + } + derive(DexieError).from(BaseException); + obj[name] = DexieError; + return obj; +}, {}); +exceptions.Syntax = SyntaxError; +exceptions.Type = TypeError; +exceptions.Range = RangeError; +var exceptionMap = idbDomErrorNames.reduce((obj, name) => { + obj[name + "Error"] = exceptions[name]; + return obj; +}, {}); +function mapError(domError, message) { + if (!domError || domError instanceof DexieError || domError instanceof TypeError || domError instanceof SyntaxError || !domError.name || !exceptionMap[domError.name]) + return domError; + var rv = new exceptionMap[domError.name](message || domError.message, domError); + if ("stack" in domError) { + setProp(rv, "stack", { get: function () { + return this.inner.stack; + } }); + } + return rv; +} +var fullNameExceptions = errorList.reduce((obj, name) => { + if (["Syntax", "Type", "Range"].indexOf(name) === -1) + obj[name + "Error"] = exceptions[name]; + return obj; +}, {}); +fullNameExceptions.ModifyError = ModifyError; +fullNameExceptions.DexieError = DexieError; +fullNameExceptions.BulkError = BulkError; + +function nop() { } +function mirror(val) { return val; } +function pureFunctionChain(f1, f2) { + if (f1 == null || f1 === mirror) + return f2; + return function (val) { + return f2(f1(val)); + }; +} +function callBoth(on1, on2) { + return function () { + on1.apply(this, arguments); + on2.apply(this, arguments); + }; +} +function hookCreatingChain(f1, f2) { + if (f1 === nop) + return f2; + return function () { + var res = f1.apply(this, arguments); + if (res !== undefined) + arguments[0] = res; + var onsuccess = this.onsuccess, + onerror = this.onerror; + this.onsuccess = null; + this.onerror = null; + var res2 = f2.apply(this, arguments); + if (onsuccess) + this.onsuccess = this.onsuccess ? callBoth(onsuccess, this.onsuccess) : onsuccess; + if (onerror) + this.onerror = this.onerror ? callBoth(onerror, this.onerror) : onerror; + return res2 !== undefined ? res2 : res; + }; +} +function hookDeletingChain(f1, f2) { + if (f1 === nop) + return f2; + return function () { + f1.apply(this, arguments); + var onsuccess = this.onsuccess, + onerror = this.onerror; + this.onsuccess = this.onerror = null; + f2.apply(this, arguments); + if (onsuccess) + this.onsuccess = this.onsuccess ? callBoth(onsuccess, this.onsuccess) : onsuccess; + if (onerror) + this.onerror = this.onerror ? callBoth(onerror, this.onerror) : onerror; + }; +} +function hookUpdatingChain(f1, f2) { + if (f1 === nop) + return f2; + return function (modifications) { + var res = f1.apply(this, arguments); + extend(modifications, res); + var onsuccess = this.onsuccess, + onerror = this.onerror; + this.onsuccess = null; + this.onerror = null; + var res2 = f2.apply(this, arguments); + if (onsuccess) + this.onsuccess = this.onsuccess ? callBoth(onsuccess, this.onsuccess) : onsuccess; + if (onerror) + this.onerror = this.onerror ? callBoth(onerror, this.onerror) : onerror; + return res === undefined ? + (res2 === undefined ? undefined : res2) : + (extend(res, res2)); + }; +} +function reverseStoppableEventChain(f1, f2) { + if (f1 === nop) + return f2; + return function () { + if (f2.apply(this, arguments) === false) + return false; + return f1.apply(this, arguments); + }; +} +function promisableChain(f1, f2) { + if (f1 === nop) + return f2; + return function () { + var res = f1.apply(this, arguments); + if (res && typeof res.then === 'function') { + var thiz = this, i = arguments.length, args = new Array(i); + while (i--) + args[i] = arguments[i]; + return res.then(function () { + return f2.apply(thiz, args); + }); + } + return f2.apply(this, arguments); + }; +} + +var INTERNAL = {}; +const LONG_STACKS_CLIP_LIMIT = 100, +MAX_LONG_STACKS = 20, ZONE_ECHO_LIMIT = 100, [resolvedNativePromise, nativePromiseProto, resolvedGlobalPromise] = typeof Promise === 'undefined' ? + [] : + (() => { + let globalP = Promise.resolve(); + if (typeof crypto === 'undefined' || !crypto.subtle) + return [globalP, getProto(globalP), globalP]; + const nativeP = crypto.subtle.digest("SHA-512", new Uint8Array([0])); + return [ + nativeP, + getProto(nativeP), + globalP + ]; + })(), nativePromiseThen = nativePromiseProto && nativePromiseProto.then; +const NativePromise = resolvedNativePromise && resolvedNativePromise.constructor; +const patchGlobalPromise = !!resolvedGlobalPromise; +var stack_being_generated = false; +var schedulePhysicalTick = resolvedGlobalPromise ? + () => { resolvedGlobalPromise.then(physicalTick); } + : + _global.setImmediate ? + setImmediate.bind(null, physicalTick) : + _global.MutationObserver ? + () => { + var hiddenDiv = document.createElement("div"); + (new MutationObserver(() => { + physicalTick(); + hiddenDiv = null; + })).observe(hiddenDiv, { attributes: true }); + hiddenDiv.setAttribute('i', '1'); + } : + () => { setTimeout(physicalTick, 0); }; +var asap = function (callback, args) { + microtickQueue.push([callback, args]); + if (needsNewPhysicalTick) { + schedulePhysicalTick(); + needsNewPhysicalTick = false; + } +}; +var isOutsideMicroTick = true, +needsNewPhysicalTick = true, +unhandledErrors = [], +rejectingErrors = [], +currentFulfiller = null, rejectionMapper = mirror; +var globalPSD = { + id: 'global', + global: true, + ref: 0, + unhandleds: [], + onunhandled: globalError, + pgp: false, + env: {}, + finalize: function () { + this.unhandleds.forEach(uh => { + try { + globalError(uh[0], uh[1]); + } + catch (e) { } + }); + } +}; +var PSD = globalPSD; +var microtickQueue = []; +var numScheduledCalls = 0; +var tickFinalizers = []; +function DexiePromise(fn) { + if (typeof this !== 'object') + throw new TypeError('Promises must be constructed via new'); + this._listeners = []; + this.onuncatched = nop; + this._lib = false; + var psd = (this._PSD = PSD); + if (debug) { + this._stackHolder = getErrorWithStack(); + this._prev = null; + this._numPrev = 0; + } + if (typeof fn !== 'function') { + if (fn !== INTERNAL) + throw new TypeError('Not a function'); + this._state = arguments[1]; + this._value = arguments[2]; + if (this._state === false) + handleRejection(this, this._value); + return; + } + this._state = null; + this._value = null; + ++psd.ref; + executePromiseTask(this, fn); +} +const thenProp = { + get: function () { + var psd = PSD, microTaskId = totalEchoes; + function then(onFulfilled, onRejected) { + var possibleAwait = !psd.global && (psd !== PSD || microTaskId !== totalEchoes); + const cleanup = possibleAwait && !decrementExpectedAwaits(); + var rv = new DexiePromise((resolve, reject) => { + propagateToListener(this, new Listener(nativeAwaitCompatibleWrap(onFulfilled, psd, possibleAwait, cleanup), nativeAwaitCompatibleWrap(onRejected, psd, possibleAwait, cleanup), resolve, reject, psd)); + }); + debug && linkToPreviousPromise(rv, this); + return rv; + } + then.prototype = INTERNAL; + return then; + }, + set: function (value) { + setProp(this, 'then', value && value.prototype === INTERNAL ? + thenProp : + { + get: function () { + return value; + }, + set: thenProp.set + }); + } +}; +props(DexiePromise.prototype, { + then: thenProp, + _then: function (onFulfilled, onRejected) { + propagateToListener(this, new Listener(null, null, onFulfilled, onRejected, PSD)); + }, + catch: function (onRejected) { + if (arguments.length === 1) + return this.then(null, onRejected); + var type = arguments[0], handler = arguments[1]; + return typeof type === 'function' ? this.then(null, err => + err instanceof type ? handler(err) : PromiseReject(err)) + : this.then(null, err => + err && err.name === type ? handler(err) : PromiseReject(err)); + }, + finally: function (onFinally) { + return this.then(value => { + onFinally(); + return value; + }, err => { + onFinally(); + return PromiseReject(err); + }); + }, + stack: { + get: function () { + if (this._stack) + return this._stack; + try { + stack_being_generated = true; + var stacks = getStack(this, [], MAX_LONG_STACKS); + var stack = stacks.join("\nFrom previous: "); + if (this._state !== null) + this._stack = stack; + return stack; + } + finally { + stack_being_generated = false; + } + } + }, + timeout: function (ms, msg) { + return ms < Infinity ? + new DexiePromise((resolve, reject) => { + var handle = setTimeout(() => reject(new exceptions.Timeout(msg)), ms); + this.then(resolve, reject).finally(clearTimeout.bind(null, handle)); + }) : this; + } +}); +if (typeof Symbol !== 'undefined' && Symbol.toStringTag) + setProp(DexiePromise.prototype, Symbol.toStringTag, 'Dexie.Promise'); +globalPSD.env = snapShot(); +function Listener(onFulfilled, onRejected, resolve, reject, zone) { + this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null; + this.onRejected = typeof onRejected === 'function' ? onRejected : null; + this.resolve = resolve; + this.reject = reject; + this.psd = zone; +} +props(DexiePromise, { + all: function () { + var values = getArrayOf.apply(null, arguments) + .map(onPossibleParallellAsync); + return new DexiePromise(function (resolve, reject) { + if (values.length === 0) + resolve([]); + var remaining = values.length; + values.forEach((a, i) => DexiePromise.resolve(a).then(x => { + values[i] = x; + if (!--remaining) + resolve(values); + }, reject)); + }); + }, + resolve: value => { + if (value instanceof DexiePromise) + return value; + if (value && typeof value.then === 'function') + return new DexiePromise((resolve, reject) => { + value.then(resolve, reject); + }); + var rv = new DexiePromise(INTERNAL, true, value); + linkToPreviousPromise(rv, currentFulfiller); + return rv; + }, + reject: PromiseReject, + race: function () { + var values = getArrayOf.apply(null, arguments).map(onPossibleParallellAsync); + return new DexiePromise((resolve, reject) => { + values.map(value => DexiePromise.resolve(value).then(resolve, reject)); + }); + }, + PSD: { + get: () => PSD, + set: value => PSD = value + }, + totalEchoes: { get: () => totalEchoes }, + newPSD: newScope, + usePSD: usePSD, + scheduler: { + get: () => asap, + set: value => { asap = value; } + }, + rejectionMapper: { + get: () => rejectionMapper, + set: value => { rejectionMapper = value; } + }, + follow: (fn, zoneProps) => { + return new DexiePromise((resolve, reject) => { + return newScope((resolve, reject) => { + var psd = PSD; + psd.unhandleds = []; + psd.onunhandled = reject; + psd.finalize = callBoth(function () { + run_at_end_of_this_or_next_physical_tick(() => { + this.unhandleds.length === 0 ? resolve() : reject(this.unhandleds[0]); + }); + }, psd.finalize); + fn(); + }, zoneProps, resolve, reject); + }); + } +}); +if (NativePromise) { + if (NativePromise.allSettled) + setProp(DexiePromise, "allSettled", function () { + const possiblePromises = getArrayOf.apply(null, arguments).map(onPossibleParallellAsync); + return new DexiePromise(resolve => { + if (possiblePromises.length === 0) + resolve([]); + let remaining = possiblePromises.length; + const results = new Array(remaining); + possiblePromises.forEach((p, i) => DexiePromise.resolve(p).then(value => results[i] = { status: "fulfilled", value }, reason => results[i] = { status: "rejected", reason }) + .then(() => --remaining || resolve(results))); + }); + }); + if (NativePromise.any && typeof AggregateError !== 'undefined') + setProp(DexiePromise, "any", function () { + const possiblePromises = getArrayOf.apply(null, arguments).map(onPossibleParallellAsync); + return new DexiePromise((resolve, reject) => { + if (possiblePromises.length === 0) + reject(new AggregateError([])); + let remaining = possiblePromises.length; + const failures = new Array(remaining); + possiblePromises.forEach((p, i) => DexiePromise.resolve(p).then(value => resolve(value), failure => { + failures[i] = failure; + if (!--remaining) + reject(new AggregateError(failures)); + })); + }); + }); +} +function executePromiseTask(promise, fn) { + try { + fn(value => { + if (promise._state !== null) + return; + if (value === promise) + throw new TypeError('A promise cannot be resolved with itself.'); + var shouldExecuteTick = promise._lib && beginMicroTickScope(); + if (value && typeof value.then === 'function') { + executePromiseTask(promise, (resolve, reject) => { + value instanceof DexiePromise ? + value._then(resolve, reject) : + value.then(resolve, reject); + }); + } + else { + promise._state = true; + promise._value = value; + propagateAllListeners(promise); + } + if (shouldExecuteTick) + endMicroTickScope(); + }, handleRejection.bind(null, promise)); + } + catch (ex) { + handleRejection(promise, ex); + } +} +function handleRejection(promise, reason) { + rejectingErrors.push(reason); + if (promise._state !== null) + return; + var shouldExecuteTick = promise._lib && beginMicroTickScope(); + reason = rejectionMapper(reason); + promise._state = false; + promise._value = reason; + debug && reason !== null && typeof reason === 'object' && !reason._promise && tryCatch(() => { + var origProp = getPropertyDescriptor(reason, "stack"); + reason._promise = promise; + setProp(reason, "stack", { + get: () => stack_being_generated ? + origProp && (origProp.get ? + origProp.get.apply(reason) : + origProp.value) : + promise.stack + }); + }); + addPossiblyUnhandledError(promise); + propagateAllListeners(promise); + if (shouldExecuteTick) + endMicroTickScope(); +} +function propagateAllListeners(promise) { + var listeners = promise._listeners; + promise._listeners = []; + for (var i = 0, len = listeners.length; i < len; ++i) { + propagateToListener(promise, listeners[i]); + } + var psd = promise._PSD; + --psd.ref || psd.finalize(); + if (numScheduledCalls === 0) { + ++numScheduledCalls; + asap(() => { + if (--numScheduledCalls === 0) + finalizePhysicalTick(); + }, []); + } +} +function propagateToListener(promise, listener) { + if (promise._state === null) { + promise._listeners.push(listener); + return; + } + var cb = promise._state ? listener.onFulfilled : listener.onRejected; + if (cb === null) { + return (promise._state ? listener.resolve : listener.reject)(promise._value); + } + ++listener.psd.ref; + ++numScheduledCalls; + asap(callListener, [cb, promise, listener]); +} +function callListener(cb, promise, listener) { + try { + currentFulfiller = promise; + var ret, value = promise._value; + if (promise._state) { + ret = cb(value); + } + else { + if (rejectingErrors.length) + rejectingErrors = []; + ret = cb(value); + if (rejectingErrors.indexOf(value) === -1) + markErrorAsHandled(promise); + } + listener.resolve(ret); + } + catch (e) { + listener.reject(e); + } + finally { + currentFulfiller = null; + if (--numScheduledCalls === 0) + finalizePhysicalTick(); + --listener.psd.ref || listener.psd.finalize(); + } +} +function getStack(promise, stacks, limit) { + if (stacks.length === limit) + return stacks; + var stack = ""; + if (promise._state === false) { + var failure = promise._value, errorName, message; + if (failure != null) { + errorName = failure.name || "Error"; + message = failure.message || failure; + stack = prettyStack(failure, 0); + } + else { + errorName = failure; + message = ""; + } + stacks.push(errorName + (message ? ": " + message : "") + stack); + } + if (debug) { + stack = prettyStack(promise._stackHolder, 2); + if (stack && stacks.indexOf(stack) === -1) + stacks.push(stack); + if (promise._prev) + getStack(promise._prev, stacks, limit); + } + return stacks; +} +function linkToPreviousPromise(promise, prev) { + var numPrev = prev ? prev._numPrev + 1 : 0; + if (numPrev < LONG_STACKS_CLIP_LIMIT) { + promise._prev = prev; + promise._numPrev = numPrev; + } +} +function physicalTick() { + beginMicroTickScope() && endMicroTickScope(); +} +function beginMicroTickScope() { + var wasRootExec = isOutsideMicroTick; + isOutsideMicroTick = false; + needsNewPhysicalTick = false; + return wasRootExec; +} +function endMicroTickScope() { + var callbacks, i, l; + do { + while (microtickQueue.length > 0) { + callbacks = microtickQueue; + microtickQueue = []; + l = callbacks.length; + for (i = 0; i < l; ++i) { + var item = callbacks[i]; + item[0].apply(null, item[1]); + } + } + } while (microtickQueue.length > 0); + isOutsideMicroTick = true; + needsNewPhysicalTick = true; +} +function finalizePhysicalTick() { + var unhandledErrs = unhandledErrors; + unhandledErrors = []; + unhandledErrs.forEach(p => { + p._PSD.onunhandled.call(null, p._value, p); + }); + var finalizers = tickFinalizers.slice(0); + var i = finalizers.length; + while (i) + finalizers[--i](); +} +function run_at_end_of_this_or_next_physical_tick(fn) { + function finalizer() { + fn(); + tickFinalizers.splice(tickFinalizers.indexOf(finalizer), 1); + } + tickFinalizers.push(finalizer); + ++numScheduledCalls; + asap(() => { + if (--numScheduledCalls === 0) + finalizePhysicalTick(); + }, []); +} +function addPossiblyUnhandledError(promise) { + if (!unhandledErrors.some(p => p._value === promise._value)) + unhandledErrors.push(promise); +} +function markErrorAsHandled(promise) { + var i = unhandledErrors.length; + while (i) + if (unhandledErrors[--i]._value === promise._value) { + unhandledErrors.splice(i, 1); + return; + } +} +function PromiseReject(reason) { + return new DexiePromise(INTERNAL, false, reason); +} +function wrap(fn, errorCatcher) { + var psd = PSD; + return function () { + var wasRootExec = beginMicroTickScope(), outerScope = PSD; + try { + switchToZone(psd, true); + return fn.apply(this, arguments); + } + catch (e) { + errorCatcher && errorCatcher(e); + } + finally { + switchToZone(outerScope, false); + if (wasRootExec) + endMicroTickScope(); + } + }; +} +const task = { awaits: 0, echoes: 0, id: 0 }; +var taskCounter = 0; +var zoneStack = []; +var zoneEchoes = 0; +var totalEchoes = 0; +var zone_id_counter = 0; +function newScope(fn, props, a1, a2) { + var parent = PSD, psd = Object.create(parent); + psd.parent = parent; + psd.ref = 0; + psd.global = false; + psd.id = ++zone_id_counter; + var globalEnv = globalPSD.env; + psd.env = patchGlobalPromise ? { + Promise: DexiePromise, + PromiseProp: { value: DexiePromise, configurable: true, writable: true }, + all: DexiePromise.all, + race: DexiePromise.race, + allSettled: DexiePromise.allSettled, + any: DexiePromise.any, + resolve: DexiePromise.resolve, + reject: DexiePromise.reject, + nthen: getPatchedPromiseThen(globalEnv.nthen, psd), + gthen: getPatchedPromiseThen(globalEnv.gthen, psd) + } : {}; + if (props) + extend(psd, props); + ++parent.ref; + psd.finalize = function () { + --this.parent.ref || this.parent.finalize(); + }; + var rv = usePSD(psd, fn, a1, a2); + if (psd.ref === 0) + psd.finalize(); + return rv; +} +function incrementExpectedAwaits() { + if (!task.id) + task.id = ++taskCounter; + ++task.awaits; + task.echoes += ZONE_ECHO_LIMIT; + return task.id; +} +function decrementExpectedAwaits() { + if (!task.awaits) + return false; + if (--task.awaits === 0) + task.id = 0; + task.echoes = task.awaits * ZONE_ECHO_LIMIT; + return true; +} +if (('' + nativePromiseThen).indexOf('[native code]') === -1) { + incrementExpectedAwaits = decrementExpectedAwaits = nop; +} +function onPossibleParallellAsync(possiblePromise) { + if (task.echoes && possiblePromise && possiblePromise.constructor === NativePromise) { + incrementExpectedAwaits(); + return possiblePromise.then(x => { + decrementExpectedAwaits(); + return x; + }, e => { + decrementExpectedAwaits(); + return rejection(e); + }); + } + return possiblePromise; +} +function zoneEnterEcho(targetZone) { + ++totalEchoes; + if (!task.echoes || --task.echoes === 0) { + task.echoes = task.id = 0; + } + zoneStack.push(PSD); + switchToZone(targetZone, true); +} +function zoneLeaveEcho() { + var zone = zoneStack[zoneStack.length - 1]; + zoneStack.pop(); + switchToZone(zone, false); +} +function switchToZone(targetZone, bEnteringZone) { + var currentZone = PSD; + if (bEnteringZone ? task.echoes && (!zoneEchoes++ || targetZone !== PSD) : zoneEchoes && (!--zoneEchoes || targetZone !== PSD)) { + enqueueNativeMicroTask(bEnteringZone ? zoneEnterEcho.bind(null, targetZone) : zoneLeaveEcho); + } + if (targetZone === PSD) + return; + PSD = targetZone; + if (currentZone === globalPSD) + globalPSD.env = snapShot(); + if (patchGlobalPromise) { + var GlobalPromise = globalPSD.env.Promise; + var targetEnv = targetZone.env; + nativePromiseProto.then = targetEnv.nthen; + GlobalPromise.prototype.then = targetEnv.gthen; + if (currentZone.global || targetZone.global) { + Object.defineProperty(_global, 'Promise', targetEnv.PromiseProp); + GlobalPromise.all = targetEnv.all; + GlobalPromise.race = targetEnv.race; + GlobalPromise.resolve = targetEnv.resolve; + GlobalPromise.reject = targetEnv.reject; + if (targetEnv.allSettled) + GlobalPromise.allSettled = targetEnv.allSettled; + if (targetEnv.any) + GlobalPromise.any = targetEnv.any; + } + } +} +function snapShot() { + var GlobalPromise = _global.Promise; + return patchGlobalPromise ? { + Promise: GlobalPromise, + PromiseProp: Object.getOwnPropertyDescriptor(_global, "Promise"), + all: GlobalPromise.all, + race: GlobalPromise.race, + allSettled: GlobalPromise.allSettled, + any: GlobalPromise.any, + resolve: GlobalPromise.resolve, + reject: GlobalPromise.reject, + nthen: nativePromiseProto.then, + gthen: GlobalPromise.prototype.then + } : {}; +} +function usePSD(psd, fn, a1, a2, a3) { + var outerScope = PSD; + try { + switchToZone(psd, true); + return fn(a1, a2, a3); + } + finally { + switchToZone(outerScope, false); + } +} +function enqueueNativeMicroTask(job) { + nativePromiseThen.call(resolvedNativePromise, job); +} +function nativeAwaitCompatibleWrap(fn, zone, possibleAwait, cleanup) { + return typeof fn !== 'function' ? fn : function () { + var outerZone = PSD; + if (possibleAwait) + incrementExpectedAwaits(); + switchToZone(zone, true); + try { + return fn.apply(this, arguments); + } + finally { + switchToZone(outerZone, false); + if (cleanup) + enqueueNativeMicroTask(decrementExpectedAwaits); + } + }; +} +function getPatchedPromiseThen(origThen, zone) { + return function (onResolved, onRejected) { + return origThen.call(this, nativeAwaitCompatibleWrap(onResolved, zone), nativeAwaitCompatibleWrap(onRejected, zone)); + }; +} +const UNHANDLEDREJECTION = "unhandledrejection"; +function globalError(err, promise) { + var rv; + try { + rv = promise.onuncatched(err); + } + catch (e) { } + if (rv !== false) + try { + var event, eventData = { promise: promise, reason: err }; + if (_global.document && document.createEvent) { + event = document.createEvent('Event'); + event.initEvent(UNHANDLEDREJECTION, true, true); + extend(event, eventData); + } + else if (_global.CustomEvent) { + event = new CustomEvent(UNHANDLEDREJECTION, { detail: eventData }); + extend(event, eventData); + } + if (event && _global.dispatchEvent) { + dispatchEvent(event); + if (!_global.PromiseRejectionEvent && _global.onunhandledrejection) + try { + _global.onunhandledrejection(event); + } + catch (_) { } + } + if (debug && event && !event.defaultPrevented) { + console.warn(`Unhandled rejection: ${err.stack || err}`); + } + } + catch (e) { } +} +var rejection = DexiePromise.reject; + +function tempTransaction(db, mode, storeNames, fn) { + if (!db.idbdb || (!db._state.openComplete && (!PSD.letThrough && !db._vip))) { + if (db._state.openComplete) { + return rejection(new exceptions.DatabaseClosed(db._state.dbOpenError)); + } + if (!db._state.isBeingOpened) { + if (!db._options.autoOpen) + return rejection(new exceptions.DatabaseClosed()); + db.open().catch(nop); + } + return db._state.dbReadyPromise.then(() => tempTransaction(db, mode, storeNames, fn)); + } + else { + var trans = db._createTransaction(mode, storeNames, db._dbSchema); + try { + trans.create(); + db._state.PR1398_maxLoop = 3; + } + catch (ex) { + if (ex.name === errnames.InvalidState && db.isOpen() && --db._state.PR1398_maxLoop > 0) { + console.warn('Dexie: Need to reopen db'); + db._close(); + return db.open().then(() => tempTransaction(db, mode, storeNames, fn)); + } + return rejection(ex); + } + return trans._promise(mode, (resolve, reject) => { + return newScope(() => { + PSD.trans = trans; + return fn(resolve, reject, trans); + }); + }).then(result => { + return trans._completion.then(() => result); + }); + } +} + +const DEXIE_VERSION = '3.2.4'; +const maxString = String.fromCharCode(65535); +const minKey = -Infinity; +const INVALID_KEY_ARGUMENT = "Invalid key provided. Keys must be of type string, number, Date or Array."; +const STRING_EXPECTED = "String expected."; +const connections = []; +const isIEOrEdge = typeof navigator !== 'undefined' && /(MSIE|Trident|Edge)/.test(navigator.userAgent); +const hasIEDeleteObjectStoreBug = isIEOrEdge; +const hangsOnDeleteLargeKeyRange = isIEOrEdge; +const dexieStackFrameFilter = frame => !/(dexie\.js|dexie\.min\.js)/.test(frame); +const DBNAMES_DB = '__dbnames'; +const READONLY = 'readonly'; +const READWRITE = 'readwrite'; + +function combine(filter1, filter2) { + return filter1 ? + filter2 ? + function () { return filter1.apply(this, arguments) && filter2.apply(this, arguments); } : + filter1 : + filter2; +} + +const AnyRange = { + type: 3 , + lower: -Infinity, + lowerOpen: false, + upper: [[]], + upperOpen: false +}; + +function workaroundForUndefinedPrimKey(keyPath) { + return typeof keyPath === "string" && !/\./.test(keyPath) + ? (obj) => { + if (obj[keyPath] === undefined && (keyPath in obj)) { + obj = deepClone(obj); + delete obj[keyPath]; + } + return obj; + } + : (obj) => obj; +} + +let Table$3 = class Table { + _trans(mode, fn, writeLocked) { + const trans = this._tx || PSD.trans; + const tableName = this.name; + function checkTableInTransaction(resolve, reject, trans) { + if (!trans.schema[tableName]) + throw new exceptions.NotFound("Table " + tableName + " not part of transaction"); + return fn(trans.idbtrans, trans); + } + const wasRootExec = beginMicroTickScope(); + try { + return trans && trans.db === this.db ? + trans === PSD.trans ? + trans._promise(mode, checkTableInTransaction, writeLocked) : + newScope(() => trans._promise(mode, checkTableInTransaction, writeLocked), { trans: trans, transless: PSD.transless || PSD }) : + tempTransaction(this.db, mode, [this.name], checkTableInTransaction); + } + finally { + if (wasRootExec) + endMicroTickScope(); + } + } + get(keyOrCrit, cb) { + if (keyOrCrit && keyOrCrit.constructor === Object) + return this.where(keyOrCrit).first(cb); + return this._trans('readonly', (trans) => { + return this.core.get({ trans, key: keyOrCrit }) + .then(res => this.hook.reading.fire(res)); + }).then(cb); + } + where(indexOrCrit) { + if (typeof indexOrCrit === 'string') + return new this.db.WhereClause(this, indexOrCrit); + if (isArray(indexOrCrit)) + return new this.db.WhereClause(this, `[${indexOrCrit.join('+')}]`); + const keyPaths = keys(indexOrCrit); + if (keyPaths.length === 1) + return this + .where(keyPaths[0]) + .equals(indexOrCrit[keyPaths[0]]); + const compoundIndex = this.schema.indexes.concat(this.schema.primKey).filter(ix => ix.compound && + keyPaths.every(keyPath => ix.keyPath.indexOf(keyPath) >= 0) && + ix.keyPath.every(keyPath => keyPaths.indexOf(keyPath) >= 0))[0]; + if (compoundIndex && this.db._maxKey !== maxString) + return this + .where(compoundIndex.name) + .equals(compoundIndex.keyPath.map(kp => indexOrCrit[kp])); + if (!compoundIndex && debug) + console.warn(`The query ${JSON.stringify(indexOrCrit)} on ${this.name} would benefit of a ` + + `compound index [${keyPaths.join('+')}]`); + const { idxByName } = this.schema; + const idb = this.db._deps.indexedDB; + function equals(a, b) { + try { + return idb.cmp(a, b) === 0; + } + catch (e) { + return false; + } + } + const [idx, filterFunction] = keyPaths.reduce(([prevIndex, prevFilterFn], keyPath) => { + const index = idxByName[keyPath]; + const value = indexOrCrit[keyPath]; + return [ + prevIndex || index, + prevIndex || !index ? + combine(prevFilterFn, index && index.multi ? + x => { + const prop = getByKeyPath(x, keyPath); + return isArray(prop) && prop.some(item => equals(value, item)); + } : x => equals(value, getByKeyPath(x, keyPath))) + : prevFilterFn + ]; + }, [null, null]); + return idx ? + this.where(idx.name).equals(indexOrCrit[idx.keyPath]) + .filter(filterFunction) : + compoundIndex ? + this.filter(filterFunction) : + this.where(keyPaths).equals(''); + } + filter(filterFunction) { + return this.toCollection().and(filterFunction); + } + count(thenShortcut) { + return this.toCollection().count(thenShortcut); + } + offset(offset) { + return this.toCollection().offset(offset); + } + limit(numRows) { + return this.toCollection().limit(numRows); + } + each(callback) { + return this.toCollection().each(callback); + } + toArray(thenShortcut) { + return this.toCollection().toArray(thenShortcut); + } + toCollection() { + return new this.db.Collection(new this.db.WhereClause(this)); + } + orderBy(index) { + return new this.db.Collection(new this.db.WhereClause(this, isArray(index) ? + `[${index.join('+')}]` : + index)); + } + reverse() { + return this.toCollection().reverse(); + } + mapToClass(constructor) { + this.schema.mappedClass = constructor; + const readHook = obj => { + if (!obj) + return obj; + const res = Object.create(constructor.prototype); + for (var m in obj) + if (hasOwn(obj, m)) + try { + res[m] = obj[m]; + } + catch (_) { } + return res; + }; + if (this.schema.readHook) { + this.hook.reading.unsubscribe(this.schema.readHook); + } + this.schema.readHook = readHook; + this.hook("reading", readHook); + return constructor; + } + defineClass() { + function Class(content) { + extend(this, content); + } + return this.mapToClass(Class); + } + add(obj, key) { + const { auto, keyPath } = this.schema.primKey; + let objToAdd = obj; + if (keyPath && auto) { + objToAdd = workaroundForUndefinedPrimKey(keyPath)(obj); + } + return this._trans('readwrite', trans => { + return this.core.mutate({ trans, type: 'add', keys: key != null ? [key] : null, values: [objToAdd] }); + }).then(res => res.numFailures ? DexiePromise.reject(res.failures[0]) : res.lastResult) + .then(lastResult => { + if (keyPath) { + try { + setByKeyPath(obj, keyPath, lastResult); + } + catch (_) { } + } + return lastResult; + }); + } + update(keyOrObject, modifications) { + if (typeof keyOrObject === 'object' && !isArray(keyOrObject)) { + const key = getByKeyPath(keyOrObject, this.schema.primKey.keyPath); + if (key === undefined) + return rejection(new exceptions.InvalidArgument("Given object does not contain its primary key")); + try { + if (typeof modifications !== "function") { + keys(modifications).forEach(keyPath => { + setByKeyPath(keyOrObject, keyPath, modifications[keyPath]); + }); + } + else { + modifications(keyOrObject, { value: keyOrObject, primKey: key }); + } + } + catch (_a) { + } + return this.where(":id").equals(key).modify(modifications); + } + else { + return this.where(":id").equals(keyOrObject).modify(modifications); + } + } + put(obj, key) { + const { auto, keyPath } = this.schema.primKey; + let objToAdd = obj; + if (keyPath && auto) { + objToAdd = workaroundForUndefinedPrimKey(keyPath)(obj); + } + return this._trans('readwrite', trans => this.core.mutate({ trans, type: 'put', values: [objToAdd], keys: key != null ? [key] : null })) + .then(res => res.numFailures ? DexiePromise.reject(res.failures[0]) : res.lastResult) + .then(lastResult => { + if (keyPath) { + try { + setByKeyPath(obj, keyPath, lastResult); + } + catch (_) { } + } + return lastResult; + }); + } + delete(key) { + return this._trans('readwrite', trans => this.core.mutate({ trans, type: 'delete', keys: [key] })) + .then(res => res.numFailures ? DexiePromise.reject(res.failures[0]) : undefined); + } + clear() { + return this._trans('readwrite', trans => this.core.mutate({ trans, type: 'deleteRange', range: AnyRange })) + .then(res => res.numFailures ? DexiePromise.reject(res.failures[0]) : undefined); + } + bulkGet(keys) { + return this._trans('readonly', trans => { + return this.core.getMany({ + keys, + trans + }).then(result => result.map(res => this.hook.reading.fire(res))); + }); + } + bulkAdd(objects, keysOrOptions, options) { + const keys = Array.isArray(keysOrOptions) ? keysOrOptions : undefined; + options = options || (keys ? undefined : keysOrOptions); + const wantResults = options ? options.allKeys : undefined; + return this._trans('readwrite', trans => { + const { auto, keyPath } = this.schema.primKey; + if (keyPath && keys) + throw new exceptions.InvalidArgument("bulkAdd(): keys argument invalid on tables with inbound keys"); + if (keys && keys.length !== objects.length) + throw new exceptions.InvalidArgument("Arguments objects and keys must have the same length"); + const numObjects = objects.length; + let objectsToAdd = keyPath && auto ? + objects.map(workaroundForUndefinedPrimKey(keyPath)) : + objects; + return this.core.mutate({ trans, type: 'add', keys: keys, values: objectsToAdd, wantResults }) + .then(({ numFailures, results, lastResult, failures }) => { + const result = wantResults ? results : lastResult; + if (numFailures === 0) + return result; + throw new BulkError(`${this.name}.bulkAdd(): ${numFailures} of ${numObjects} operations failed`, failures); + }); + }); + } + bulkPut(objects, keysOrOptions, options) { + const keys = Array.isArray(keysOrOptions) ? keysOrOptions : undefined; + options = options || (keys ? undefined : keysOrOptions); + const wantResults = options ? options.allKeys : undefined; + return this._trans('readwrite', trans => { + const { auto, keyPath } = this.schema.primKey; + if (keyPath && keys) + throw new exceptions.InvalidArgument("bulkPut(): keys argument invalid on tables with inbound keys"); + if (keys && keys.length !== objects.length) + throw new exceptions.InvalidArgument("Arguments objects and keys must have the same length"); + const numObjects = objects.length; + let objectsToPut = keyPath && auto ? + objects.map(workaroundForUndefinedPrimKey(keyPath)) : + objects; + return this.core.mutate({ trans, type: 'put', keys: keys, values: objectsToPut, wantResults }) + .then(({ numFailures, results, lastResult, failures }) => { + const result = wantResults ? results : lastResult; + if (numFailures === 0) + return result; + throw new BulkError(`${this.name}.bulkPut(): ${numFailures} of ${numObjects} operations failed`, failures); + }); + }); + } + bulkDelete(keys) { + const numKeys = keys.length; + return this._trans('readwrite', trans => { + return this.core.mutate({ trans, type: 'delete', keys: keys }); + }).then(({ numFailures, lastResult, failures }) => { + if (numFailures === 0) + return lastResult; + throw new BulkError(`${this.name}.bulkDelete(): ${numFailures} of ${numKeys} operations failed`, failures); + }); + } +}; + +function Events(ctx) { + var evs = {}; + var rv = function (eventName, subscriber) { + if (subscriber) { + var i = arguments.length, args = new Array(i - 1); + while (--i) + args[i - 1] = arguments[i]; + evs[eventName].subscribe.apply(null, args); + return ctx; + } + else if (typeof (eventName) === 'string') { + return evs[eventName]; + } + }; + rv.addEventType = add; + for (var i = 1, l = arguments.length; i < l; ++i) { + add(arguments[i]); + } + return rv; + function add(eventName, chainFunction, defaultFunction) { + if (typeof eventName === 'object') + return addConfiguredEvents(eventName); + if (!chainFunction) + chainFunction = reverseStoppableEventChain; + if (!defaultFunction) + defaultFunction = nop; + var context = { + subscribers: [], + fire: defaultFunction, + subscribe: function (cb) { + if (context.subscribers.indexOf(cb) === -1) { + context.subscribers.push(cb); + context.fire = chainFunction(context.fire, cb); + } + }, + unsubscribe: function (cb) { + context.subscribers = context.subscribers.filter(function (fn) { return fn !== cb; }); + context.fire = context.subscribers.reduce(chainFunction, defaultFunction); + } + }; + evs[eventName] = rv[eventName] = context; + return context; + } + function addConfiguredEvents(cfg) { + keys(cfg).forEach(function (eventName) { + var args = cfg[eventName]; + if (isArray(args)) { + add(eventName, cfg[eventName][0], cfg[eventName][1]); + } + else if (args === 'asap') { + var context = add(eventName, mirror, function fire() { + var i = arguments.length, args = new Array(i); + while (i--) + args[i] = arguments[i]; + context.subscribers.forEach(function (fn) { + asap$1(function fireEvent() { + fn.apply(null, args); + }); + }); + }); + } + else + throw new exceptions.InvalidArgument("Invalid event config"); + }); + } +} + +function makeClassConstructor(prototype, constructor) { + derive(constructor).from({ prototype }); + return constructor; +} + +function createTableConstructor(db) { + return makeClassConstructor(Table$3.prototype, function Table(name, tableSchema, trans) { + this.db = db; + this._tx = trans; + this.name = name; + this.schema = tableSchema; + this.hook = db._allTables[name] ? db._allTables[name].hook : Events(null, { + "creating": [hookCreatingChain, nop], + "reading": [pureFunctionChain, mirror], + "updating": [hookUpdatingChain, nop], + "deleting": [hookDeletingChain, nop] + }); + }); +} + +function isPlainKeyRange(ctx, ignoreLimitFilter) { + return !(ctx.filter || ctx.algorithm || ctx.or) && + (ignoreLimitFilter ? ctx.justLimit : !ctx.replayFilter); +} +function addFilter(ctx, fn) { + ctx.filter = combine(ctx.filter, fn); +} +function addReplayFilter(ctx, factory, isLimitFilter) { + var curr = ctx.replayFilter; + ctx.replayFilter = curr ? () => combine(curr(), factory()) : factory; + ctx.justLimit = isLimitFilter && !curr; +} +function addMatchFilter(ctx, fn) { + ctx.isMatch = combine(ctx.isMatch, fn); +} +function getIndexOrStore(ctx, coreSchema) { + if (ctx.isPrimKey) + return coreSchema.primaryKey; + const index = coreSchema.getIndexByKeyPath(ctx.index); + if (!index) + throw new exceptions.Schema("KeyPath " + ctx.index + " on object store " + coreSchema.name + " is not indexed"); + return index; +} +function openCursor(ctx, coreTable, trans) { + const index = getIndexOrStore(ctx, coreTable.schema); + return coreTable.openCursor({ + trans, + values: !ctx.keysOnly, + reverse: ctx.dir === 'prev', + unique: !!ctx.unique, + query: { + index, + range: ctx.range + } + }); +} +function iter(ctx, fn, coreTrans, coreTable) { + const filter = ctx.replayFilter ? combine(ctx.filter, ctx.replayFilter()) : ctx.filter; + if (!ctx.or) { + return iterate(openCursor(ctx, coreTable, coreTrans), combine(ctx.algorithm, filter), fn, !ctx.keysOnly && ctx.valueMapper); + } + else { + const set = {}; + const union = (item, cursor, advance) => { + if (!filter || filter(cursor, advance, result => cursor.stop(result), err => cursor.fail(err))) { + var primaryKey = cursor.primaryKey; + var key = '' + primaryKey; + if (key === '[object ArrayBuffer]') + key = '' + new Uint8Array(primaryKey); + if (!hasOwn(set, key)) { + set[key] = true; + fn(item, cursor, advance); + } + } + }; + return Promise.all([ + ctx.or._iterate(union, coreTrans), + iterate(openCursor(ctx, coreTable, coreTrans), ctx.algorithm, union, !ctx.keysOnly && ctx.valueMapper) + ]); + } +} +function iterate(cursorPromise, filter, fn, valueMapper) { + var mappedFn = valueMapper ? (x, c, a) => fn(valueMapper(x), c, a) : fn; + var wrappedFn = wrap(mappedFn); + return cursorPromise.then(cursor => { + if (cursor) { + return cursor.start(() => { + var c = () => cursor.continue(); + if (!filter || filter(cursor, advancer => c = advancer, val => { cursor.stop(val); c = nop; }, e => { cursor.fail(e); c = nop; })) + wrappedFn(cursor.value, cursor, advancer => c = advancer); + c(); + }); + } + }); +} + +function cmp(a, b) { + try { + const ta = type(a); + const tb = type(b); + if (ta !== tb) { + if (ta === 'Array') + return 1; + if (tb === 'Array') + return -1; + if (ta === 'binary') + return 1; + if (tb === 'binary') + return -1; + if (ta === 'string') + return 1; + if (tb === 'string') + return -1; + if (ta === 'Date') + return 1; + if (tb !== 'Date') + return NaN; + return -1; + } + switch (ta) { + case 'number': + case 'Date': + case 'string': + return a > b ? 1 : a < b ? -1 : 0; + case 'binary': { + return compareUint8Arrays(getUint8Array(a), getUint8Array(b)); + } + case 'Array': + return compareArrays(a, b); + } + } + catch (_a) { } + return NaN; +} +function compareArrays(a, b) { + const al = a.length; + const bl = b.length; + const l = al < bl ? al : bl; + for (let i = 0; i < l; ++i) { + const res = cmp(a[i], b[i]); + if (res !== 0) + return res; + } + return al === bl ? 0 : al < bl ? -1 : 1; +} +function compareUint8Arrays(a, b) { + const al = a.length; + const bl = b.length; + const l = al < bl ? al : bl; + for (let i = 0; i < l; ++i) { + if (a[i] !== b[i]) + return a[i] < b[i] ? -1 : 1; + } + return al === bl ? 0 : al < bl ? -1 : 1; +} +function type(x) { + const t = typeof x; + if (t !== 'object') + return t; + if (ArrayBuffer.isView(x)) + return 'binary'; + const tsTag = toStringTag(x); + return tsTag === 'ArrayBuffer' ? 'binary' : tsTag; +} +function getUint8Array(a) { + if (a instanceof Uint8Array) + return a; + if (ArrayBuffer.isView(a)) + return new Uint8Array(a.buffer, a.byteOffset, a.byteLength); + return new Uint8Array(a); +} + +class Collection { + _read(fn, cb) { + var ctx = this._ctx; + return ctx.error ? + ctx.table._trans(null, rejection.bind(null, ctx.error)) : + ctx.table._trans('readonly', fn).then(cb); + } + _write(fn) { + var ctx = this._ctx; + return ctx.error ? + ctx.table._trans(null, rejection.bind(null, ctx.error)) : + ctx.table._trans('readwrite', fn, "locked"); + } + _addAlgorithm(fn) { + var ctx = this._ctx; + ctx.algorithm = combine(ctx.algorithm, fn); + } + _iterate(fn, coreTrans) { + return iter(this._ctx, fn, coreTrans, this._ctx.table.core); + } + clone(props) { + var rv = Object.create(this.constructor.prototype), ctx = Object.create(this._ctx); + if (props) + extend(ctx, props); + rv._ctx = ctx; + return rv; + } + raw() { + this._ctx.valueMapper = null; + return this; + } + each(fn) { + var ctx = this._ctx; + return this._read(trans => iter(ctx, fn, trans, ctx.table.core)); + } + count(cb) { + return this._read(trans => { + const ctx = this._ctx; + const coreTable = ctx.table.core; + if (isPlainKeyRange(ctx, true)) { + return coreTable.count({ + trans, + query: { + index: getIndexOrStore(ctx, coreTable.schema), + range: ctx.range + } + }).then(count => Math.min(count, ctx.limit)); + } + else { + var count = 0; + return iter(ctx, () => { ++count; return false; }, trans, coreTable) + .then(() => count); + } + }).then(cb); + } + sortBy(keyPath, cb) { + const parts = keyPath.split('.').reverse(), lastPart = parts[0], lastIndex = parts.length - 1; + function getval(obj, i) { + if (i) + return getval(obj[parts[i]], i - 1); + return obj[lastPart]; + } + var order = this._ctx.dir === "next" ? 1 : -1; + function sorter(a, b) { + var aVal = getval(a, lastIndex), bVal = getval(b, lastIndex); + return aVal < bVal ? -order : aVal > bVal ? order : 0; + } + return this.toArray(function (a) { + return a.sort(sorter); + }).then(cb); + } + toArray(cb) { + return this._read(trans => { + var ctx = this._ctx; + if (ctx.dir === 'next' && isPlainKeyRange(ctx, true) && ctx.limit > 0) { + const { valueMapper } = ctx; + const index = getIndexOrStore(ctx, ctx.table.core.schema); + return ctx.table.core.query({ + trans, + limit: ctx.limit, + values: true, + query: { + index, + range: ctx.range + } + }).then(({ result }) => valueMapper ? result.map(valueMapper) : result); + } + else { + const a = []; + return iter(ctx, item => a.push(item), trans, ctx.table.core).then(() => a); + } + }, cb); + } + offset(offset) { + var ctx = this._ctx; + if (offset <= 0) + return this; + ctx.offset += offset; + if (isPlainKeyRange(ctx)) { + addReplayFilter(ctx, () => { + var offsetLeft = offset; + return (cursor, advance) => { + if (offsetLeft === 0) + return true; + if (offsetLeft === 1) { + --offsetLeft; + return false; + } + advance(() => { + cursor.advance(offsetLeft); + offsetLeft = 0; + }); + return false; + }; + }); + } + else { + addReplayFilter(ctx, () => { + var offsetLeft = offset; + return () => (--offsetLeft < 0); + }); + } + return this; + } + limit(numRows) { + this._ctx.limit = Math.min(this._ctx.limit, numRows); + addReplayFilter(this._ctx, () => { + var rowsLeft = numRows; + return function (cursor, advance, resolve) { + if (--rowsLeft <= 0) + advance(resolve); + return rowsLeft >= 0; + }; + }, true); + return this; + } + until(filterFunction, bIncludeStopEntry) { + addFilter(this._ctx, function (cursor, advance, resolve) { + if (filterFunction(cursor.value)) { + advance(resolve); + return bIncludeStopEntry; + } + else { + return true; + } + }); + return this; + } + first(cb) { + return this.limit(1).toArray(function (a) { return a[0]; }).then(cb); + } + last(cb) { + return this.reverse().first(cb); + } + filter(filterFunction) { + addFilter(this._ctx, function (cursor) { + return filterFunction(cursor.value); + }); + addMatchFilter(this._ctx, filterFunction); + return this; + } + and(filter) { + return this.filter(filter); + } + or(indexName) { + return new this.db.WhereClause(this._ctx.table, indexName, this); + } + reverse() { + this._ctx.dir = (this._ctx.dir === "prev" ? "next" : "prev"); + if (this._ondirectionchange) + this._ondirectionchange(this._ctx.dir); + return this; + } + desc() { + return this.reverse(); + } + eachKey(cb) { + var ctx = this._ctx; + ctx.keysOnly = !ctx.isMatch; + return this.each(function (val, cursor) { cb(cursor.key, cursor); }); + } + eachUniqueKey(cb) { + this._ctx.unique = "unique"; + return this.eachKey(cb); + } + eachPrimaryKey(cb) { + var ctx = this._ctx; + ctx.keysOnly = !ctx.isMatch; + return this.each(function (val, cursor) { cb(cursor.primaryKey, cursor); }); + } + keys(cb) { + var ctx = this._ctx; + ctx.keysOnly = !ctx.isMatch; + var a = []; + return this.each(function (item, cursor) { + a.push(cursor.key); + }).then(function () { + return a; + }).then(cb); + } + primaryKeys(cb) { + var ctx = this._ctx; + if (ctx.dir === 'next' && isPlainKeyRange(ctx, true) && ctx.limit > 0) { + return this._read(trans => { + var index = getIndexOrStore(ctx, ctx.table.core.schema); + return ctx.table.core.query({ + trans, + values: false, + limit: ctx.limit, + query: { + index, + range: ctx.range + } + }); + }).then(({ result }) => result).then(cb); + } + ctx.keysOnly = !ctx.isMatch; + var a = []; + return this.each(function (item, cursor) { + a.push(cursor.primaryKey); + }).then(function () { + return a; + }).then(cb); + } + uniqueKeys(cb) { + this._ctx.unique = "unique"; + return this.keys(cb); + } + firstKey(cb) { + return this.limit(1).keys(function (a) { return a[0]; }).then(cb); + } + lastKey(cb) { + return this.reverse().firstKey(cb); + } + distinct() { + var ctx = this._ctx, idx = ctx.index && ctx.table.schema.idxByName[ctx.index]; + if (!idx || !idx.multi) + return this; + var set = {}; + addFilter(this._ctx, function (cursor) { + var strKey = cursor.primaryKey.toString(); + var found = hasOwn(set, strKey); + set[strKey] = true; + return !found; + }); + return this; + } + modify(changes) { + var ctx = this._ctx; + return this._write(trans => { + var modifyer; + if (typeof changes === 'function') { + modifyer = changes; + } + else { + var keyPaths = keys(changes); + var numKeys = keyPaths.length; + modifyer = function (item) { + var anythingModified = false; + for (var i = 0; i < numKeys; ++i) { + var keyPath = keyPaths[i], val = changes[keyPath]; + if (getByKeyPath(item, keyPath) !== val) { + setByKeyPath(item, keyPath, val); + anythingModified = true; + } + } + return anythingModified; + }; + } + const coreTable = ctx.table.core; + const { outbound, extractKey } = coreTable.schema.primaryKey; + const limit = this.db._options.modifyChunkSize || 200; + const totalFailures = []; + let successCount = 0; + const failedKeys = []; + const applyMutateResult = (expectedCount, res) => { + const { failures, numFailures } = res; + successCount += expectedCount - numFailures; + for (let pos of keys(failures)) { + totalFailures.push(failures[pos]); + } + }; + return this.clone().primaryKeys().then(keys => { + const nextChunk = (offset) => { + const count = Math.min(limit, keys.length - offset); + return coreTable.getMany({ + trans, + keys: keys.slice(offset, offset + count), + cache: "immutable" + }).then(values => { + const addValues = []; + const putValues = []; + const putKeys = outbound ? [] : null; + const deleteKeys = []; + for (let i = 0; i < count; ++i) { + const origValue = values[i]; + const ctx = { + value: deepClone(origValue), + primKey: keys[offset + i] + }; + if (modifyer.call(ctx, ctx.value, ctx) !== false) { + if (ctx.value == null) { + deleteKeys.push(keys[offset + i]); + } + else if (!outbound && cmp(extractKey(origValue), extractKey(ctx.value)) !== 0) { + deleteKeys.push(keys[offset + i]); + addValues.push(ctx.value); + } + else { + putValues.push(ctx.value); + if (outbound) + putKeys.push(keys[offset + i]); + } + } + } + const criteria = isPlainKeyRange(ctx) && + ctx.limit === Infinity && + (typeof changes !== 'function' || changes === deleteCallback) && { + index: ctx.index, + range: ctx.range + }; + return Promise.resolve(addValues.length > 0 && + coreTable.mutate({ trans, type: 'add', values: addValues }) + .then(res => { + for (let pos in res.failures) { + deleteKeys.splice(parseInt(pos), 1); + } + applyMutateResult(addValues.length, res); + })).then(() => (putValues.length > 0 || (criteria && typeof changes === 'object')) && + coreTable.mutate({ + trans, + type: 'put', + keys: putKeys, + values: putValues, + criteria, + changeSpec: typeof changes !== 'function' + && changes + }).then(res => applyMutateResult(putValues.length, res))).then(() => (deleteKeys.length > 0 || (criteria && changes === deleteCallback)) && + coreTable.mutate({ + trans, + type: 'delete', + keys: deleteKeys, + criteria + }).then(res => applyMutateResult(deleteKeys.length, res))).then(() => { + return keys.length > offset + count && nextChunk(offset + limit); + }); + }); + }; + return nextChunk(0).then(() => { + if (totalFailures.length > 0) + throw new ModifyError("Error modifying one or more objects", totalFailures, successCount, failedKeys); + return keys.length; + }); + }); + }); + } + delete() { + var ctx = this._ctx, range = ctx.range; + if (isPlainKeyRange(ctx) && + ((ctx.isPrimKey && !hangsOnDeleteLargeKeyRange) || range.type === 3 )) + { + return this._write(trans => { + const { primaryKey } = ctx.table.core.schema; + const coreRange = range; + return ctx.table.core.count({ trans, query: { index: primaryKey, range: coreRange } }).then(count => { + return ctx.table.core.mutate({ trans, type: 'deleteRange', range: coreRange }) + .then(({ failures, lastResult, results, numFailures }) => { + if (numFailures) + throw new ModifyError("Could not delete some values", Object.keys(failures).map(pos => failures[pos]), count - numFailures); + return count - numFailures; + }); + }); + }); + } + return this.modify(deleteCallback); + } +} +const deleteCallback = (value, ctx) => ctx.value = null; + +function createCollectionConstructor(db) { + return makeClassConstructor(Collection.prototype, function Collection(whereClause, keyRangeGenerator) { + this.db = db; + let keyRange = AnyRange, error = null; + if (keyRangeGenerator) + try { + keyRange = keyRangeGenerator(); + } + catch (ex) { + error = ex; + } + const whereCtx = whereClause._ctx; + const table = whereCtx.table; + const readingHook = table.hook.reading.fire; + this._ctx = { + table: table, + index: whereCtx.index, + isPrimKey: (!whereCtx.index || (table.schema.primKey.keyPath && whereCtx.index === table.schema.primKey.name)), + range: keyRange, + keysOnly: false, + dir: "next", + unique: "", + algorithm: null, + filter: null, + replayFilter: null, + justLimit: true, + isMatch: null, + offset: 0, + limit: Infinity, + error: error, + or: whereCtx.or, + valueMapper: readingHook !== mirror ? readingHook : null + }; + }); +} + +function simpleCompare(a, b) { + return a < b ? -1 : a === b ? 0 : 1; +} +function simpleCompareReverse(a, b) { + return a > b ? -1 : a === b ? 0 : 1; +} + +function fail(collectionOrWhereClause, err, T) { + var collection = collectionOrWhereClause instanceof WhereClause ? + new collectionOrWhereClause.Collection(collectionOrWhereClause) : + collectionOrWhereClause; + collection._ctx.error = T ? new T(err) : new TypeError(err); + return collection; +} +function emptyCollection(whereClause) { + return new whereClause.Collection(whereClause, () => rangeEqual("")).limit(0); +} +function upperFactory(dir) { + return dir === "next" ? + (s) => s.toUpperCase() : + (s) => s.toLowerCase(); +} +function lowerFactory(dir) { + return dir === "next" ? + (s) => s.toLowerCase() : + (s) => s.toUpperCase(); +} +function nextCasing(key, lowerKey, upperNeedle, lowerNeedle, cmp, dir) { + var length = Math.min(key.length, lowerNeedle.length); + var llp = -1; + for (var i = 0; i < length; ++i) { + var lwrKeyChar = lowerKey[i]; + if (lwrKeyChar !== lowerNeedle[i]) { + if (cmp(key[i], upperNeedle[i]) < 0) + return key.substr(0, i) + upperNeedle[i] + upperNeedle.substr(i + 1); + if (cmp(key[i], lowerNeedle[i]) < 0) + return key.substr(0, i) + lowerNeedle[i] + upperNeedle.substr(i + 1); + if (llp >= 0) + return key.substr(0, llp) + lowerKey[llp] + upperNeedle.substr(llp + 1); + return null; + } + if (cmp(key[i], lwrKeyChar) < 0) + llp = i; + } + if (length < lowerNeedle.length && dir === "next") + return key + upperNeedle.substr(key.length); + if (length < key.length && dir === "prev") + return key.substr(0, upperNeedle.length); + return (llp < 0 ? null : key.substr(0, llp) + lowerNeedle[llp] + upperNeedle.substr(llp + 1)); +} +function addIgnoreCaseAlgorithm(whereClause, match, needles, suffix) { + var upper, lower, compare, upperNeedles, lowerNeedles, direction, nextKeySuffix, needlesLen = needles.length; + if (!needles.every(s => typeof s === 'string')) { + return fail(whereClause, STRING_EXPECTED); + } + function initDirection(dir) { + upper = upperFactory(dir); + lower = lowerFactory(dir); + compare = (dir === "next" ? simpleCompare : simpleCompareReverse); + var needleBounds = needles.map(function (needle) { + return { lower: lower(needle), upper: upper(needle) }; + }).sort(function (a, b) { + return compare(a.lower, b.lower); + }); + upperNeedles = needleBounds.map(function (nb) { return nb.upper; }); + lowerNeedles = needleBounds.map(function (nb) { return nb.lower; }); + direction = dir; + nextKeySuffix = (dir === "next" ? "" : suffix); + } + initDirection("next"); + var c = new whereClause.Collection(whereClause, () => createRange(upperNeedles[0], lowerNeedles[needlesLen - 1] + suffix)); + c._ondirectionchange = function (direction) { + initDirection(direction); + }; + var firstPossibleNeedle = 0; + c._addAlgorithm(function (cursor, advance, resolve) { + var key = cursor.key; + if (typeof key !== 'string') + return false; + var lowerKey = lower(key); + if (match(lowerKey, lowerNeedles, firstPossibleNeedle)) { + return true; + } + else { + var lowestPossibleCasing = null; + for (var i = firstPossibleNeedle; i < needlesLen; ++i) { + var casing = nextCasing(key, lowerKey, upperNeedles[i], lowerNeedles[i], compare, direction); + if (casing === null && lowestPossibleCasing === null) + firstPossibleNeedle = i + 1; + else if (lowestPossibleCasing === null || compare(lowestPossibleCasing, casing) > 0) { + lowestPossibleCasing = casing; + } + } + if (lowestPossibleCasing !== null) { + advance(function () { cursor.continue(lowestPossibleCasing + nextKeySuffix); }); + } + else { + advance(resolve); + } + return false; + } + }); + return c; +} +function createRange(lower, upper, lowerOpen, upperOpen) { + return { + type: 2 , + lower, + upper, + lowerOpen, + upperOpen + }; +} +function rangeEqual(value) { + return { + type: 1 , + lower: value, + upper: value + }; +} + +class WhereClause { + get Collection() { + return this._ctx.table.db.Collection; + } + between(lower, upper, includeLower, includeUpper) { + includeLower = includeLower !== false; + includeUpper = includeUpper === true; + try { + if ((this._cmp(lower, upper) > 0) || + (this._cmp(lower, upper) === 0 && (includeLower || includeUpper) && !(includeLower && includeUpper))) + return emptyCollection(this); + return new this.Collection(this, () => createRange(lower, upper, !includeLower, !includeUpper)); + } + catch (e) { + return fail(this, INVALID_KEY_ARGUMENT); + } + } + equals(value) { + if (value == null) + return fail(this, INVALID_KEY_ARGUMENT); + return new this.Collection(this, () => rangeEqual(value)); + } + above(value) { + if (value == null) + return fail(this, INVALID_KEY_ARGUMENT); + return new this.Collection(this, () => createRange(value, undefined, true)); + } + aboveOrEqual(value) { + if (value == null) + return fail(this, INVALID_KEY_ARGUMENT); + return new this.Collection(this, () => createRange(value, undefined, false)); + } + below(value) { + if (value == null) + return fail(this, INVALID_KEY_ARGUMENT); + return new this.Collection(this, () => createRange(undefined, value, false, true)); + } + belowOrEqual(value) { + if (value == null) + return fail(this, INVALID_KEY_ARGUMENT); + return new this.Collection(this, () => createRange(undefined, value)); + } + startsWith(str) { + if (typeof str !== 'string') + return fail(this, STRING_EXPECTED); + return this.between(str, str + maxString, true, true); + } + startsWithIgnoreCase(str) { + if (str === "") + return this.startsWith(str); + return addIgnoreCaseAlgorithm(this, (x, a) => x.indexOf(a[0]) === 0, [str], maxString); + } + equalsIgnoreCase(str) { + return addIgnoreCaseAlgorithm(this, (x, a) => x === a[0], [str], ""); + } + anyOfIgnoreCase() { + var set = getArrayOf.apply(NO_CHAR_ARRAY, arguments); + if (set.length === 0) + return emptyCollection(this); + return addIgnoreCaseAlgorithm(this, (x, a) => a.indexOf(x) !== -1, set, ""); + } + startsWithAnyOfIgnoreCase() { + var set = getArrayOf.apply(NO_CHAR_ARRAY, arguments); + if (set.length === 0) + return emptyCollection(this); + return addIgnoreCaseAlgorithm(this, (x, a) => a.some(n => x.indexOf(n) === 0), set, maxString); + } + anyOf() { + const set = getArrayOf.apply(NO_CHAR_ARRAY, arguments); + let compare = this._cmp; + try { + set.sort(compare); + } + catch (e) { + return fail(this, INVALID_KEY_ARGUMENT); + } + if (set.length === 0) + return emptyCollection(this); + const c = new this.Collection(this, () => createRange(set[0], set[set.length - 1])); + c._ondirectionchange = direction => { + compare = (direction === "next" ? + this._ascending : + this._descending); + set.sort(compare); + }; + let i = 0; + c._addAlgorithm((cursor, advance, resolve) => { + const key = cursor.key; + while (compare(key, set[i]) > 0) { + ++i; + if (i === set.length) { + advance(resolve); + return false; + } + } + if (compare(key, set[i]) === 0) { + return true; + } + else { + advance(() => { cursor.continue(set[i]); }); + return false; + } + }); + return c; + } + notEqual(value) { + return this.inAnyRange([[minKey, value], [value, this.db._maxKey]], { includeLowers: false, includeUppers: false }); + } + noneOf() { + const set = getArrayOf.apply(NO_CHAR_ARRAY, arguments); + if (set.length === 0) + return new this.Collection(this); + try { + set.sort(this._ascending); + } + catch (e) { + return fail(this, INVALID_KEY_ARGUMENT); + } + const ranges = set.reduce((res, val) => res ? + res.concat([[res[res.length - 1][1], val]]) : + [[minKey, val]], null); + ranges.push([set[set.length - 1], this.db._maxKey]); + return this.inAnyRange(ranges, { includeLowers: false, includeUppers: false }); + } + inAnyRange(ranges, options) { + const cmp = this._cmp, ascending = this._ascending, descending = this._descending, min = this._min, max = this._max; + if (ranges.length === 0) + return emptyCollection(this); + if (!ranges.every(range => range[0] !== undefined && + range[1] !== undefined && + ascending(range[0], range[1]) <= 0)) { + return fail(this, "First argument to inAnyRange() must be an Array of two-value Arrays [lower,upper] where upper must not be lower than lower", exceptions.InvalidArgument); + } + const includeLowers = !options || options.includeLowers !== false; + const includeUppers = options && options.includeUppers === true; + function addRange(ranges, newRange) { + let i = 0, l = ranges.length; + for (; i < l; ++i) { + const range = ranges[i]; + if (cmp(newRange[0], range[1]) < 0 && cmp(newRange[1], range[0]) > 0) { + range[0] = min(range[0], newRange[0]); + range[1] = max(range[1], newRange[1]); + break; + } + } + if (i === l) + ranges.push(newRange); + return ranges; + } + let sortDirection = ascending; + function rangeSorter(a, b) { return sortDirection(a[0], b[0]); } + let set; + try { + set = ranges.reduce(addRange, []); + set.sort(rangeSorter); + } + catch (ex) { + return fail(this, INVALID_KEY_ARGUMENT); + } + let rangePos = 0; + const keyIsBeyondCurrentEntry = includeUppers ? + key => ascending(key, set[rangePos][1]) > 0 : + key => ascending(key, set[rangePos][1]) >= 0; + const keyIsBeforeCurrentEntry = includeLowers ? + key => descending(key, set[rangePos][0]) > 0 : + key => descending(key, set[rangePos][0]) >= 0; + function keyWithinCurrentRange(key) { + return !keyIsBeyondCurrentEntry(key) && !keyIsBeforeCurrentEntry(key); + } + let checkKey = keyIsBeyondCurrentEntry; + const c = new this.Collection(this, () => createRange(set[0][0], set[set.length - 1][1], !includeLowers, !includeUppers)); + c._ondirectionchange = direction => { + if (direction === "next") { + checkKey = keyIsBeyondCurrentEntry; + sortDirection = ascending; + } + else { + checkKey = keyIsBeforeCurrentEntry; + sortDirection = descending; + } + set.sort(rangeSorter); + }; + c._addAlgorithm((cursor, advance, resolve) => { + var key = cursor.key; + while (checkKey(key)) { + ++rangePos; + if (rangePos === set.length) { + advance(resolve); + return false; + } + } + if (keyWithinCurrentRange(key)) { + return true; + } + else if (this._cmp(key, set[rangePos][1]) === 0 || this._cmp(key, set[rangePos][0]) === 0) { + return false; + } + else { + advance(() => { + if (sortDirection === ascending) + cursor.continue(set[rangePos][0]); + else + cursor.continue(set[rangePos][1]); + }); + return false; + } + }); + return c; + } + startsWithAnyOf() { + const set = getArrayOf.apply(NO_CHAR_ARRAY, arguments); + if (!set.every(s => typeof s === 'string')) { + return fail(this, "startsWithAnyOf() only works with strings"); + } + if (set.length === 0) + return emptyCollection(this); + return this.inAnyRange(set.map((str) => [str, str + maxString])); + } +} + +function createWhereClauseConstructor(db) { + return makeClassConstructor(WhereClause.prototype, function WhereClause(table, index, orCollection) { + this.db = db; + this._ctx = { + table: table, + index: index === ":id" ? null : index, + or: orCollection + }; + const indexedDB = db._deps.indexedDB; + if (!indexedDB) + throw new exceptions.MissingAPI(); + this._cmp = this._ascending = indexedDB.cmp.bind(indexedDB); + this._descending = (a, b) => indexedDB.cmp(b, a); + this._max = (a, b) => indexedDB.cmp(a, b) > 0 ? a : b; + this._min = (a, b) => indexedDB.cmp(a, b) < 0 ? a : b; + this._IDBKeyRange = db._deps.IDBKeyRange; + }); +} + +function eventRejectHandler(reject) { + return wrap(function (event) { + preventDefault(event); + reject(event.target.error); + return false; + }); +} +function preventDefault(event) { + if (event.stopPropagation) + event.stopPropagation(); + if (event.preventDefault) + event.preventDefault(); +} + +const DEXIE_STORAGE_MUTATED_EVENT_NAME = 'storagemutated'; +const STORAGE_MUTATED_DOM_EVENT_NAME = 'x-storagemutated-1'; +const globalEvents = Events(null, DEXIE_STORAGE_MUTATED_EVENT_NAME); + +class Transaction { + _lock() { + assert(!PSD.global); + ++this._reculock; + if (this._reculock === 1 && !PSD.global) + PSD.lockOwnerFor = this; + return this; + } + _unlock() { + assert(!PSD.global); + if (--this._reculock === 0) { + if (!PSD.global) + PSD.lockOwnerFor = null; + while (this._blockedFuncs.length > 0 && !this._locked()) { + var fnAndPSD = this._blockedFuncs.shift(); + try { + usePSD(fnAndPSD[1], fnAndPSD[0]); + } + catch (e) { } + } + } + return this; + } + _locked() { + return this._reculock && PSD.lockOwnerFor !== this; + } + create(idbtrans) { + if (!this.mode) + return this; + const idbdb = this.db.idbdb; + const dbOpenError = this.db._state.dbOpenError; + assert(!this.idbtrans); + if (!idbtrans && !idbdb) { + switch (dbOpenError && dbOpenError.name) { + case "DatabaseClosedError": + throw new exceptions.DatabaseClosed(dbOpenError); + case "MissingAPIError": + throw new exceptions.MissingAPI(dbOpenError.message, dbOpenError); + default: + throw new exceptions.OpenFailed(dbOpenError); + } + } + if (!this.active) + throw new exceptions.TransactionInactive(); + assert(this._completion._state === null); + idbtrans = this.idbtrans = idbtrans || + (this.db.core + ? this.db.core.transaction(this.storeNames, this.mode, { durability: this.chromeTransactionDurability }) + : idbdb.transaction(this.storeNames, this.mode, { durability: this.chromeTransactionDurability })); + idbtrans.onerror = wrap(ev => { + preventDefault(ev); + this._reject(idbtrans.error); + }); + idbtrans.onabort = wrap(ev => { + preventDefault(ev); + this.active && this._reject(new exceptions.Abort(idbtrans.error)); + this.active = false; + this.on("abort").fire(ev); + }); + idbtrans.oncomplete = wrap(() => { + this.active = false; + this._resolve(); + if ('mutatedParts' in idbtrans) { + globalEvents.storagemutated.fire(idbtrans["mutatedParts"]); + } + }); + return this; + } + _promise(mode, fn, bWriteLock) { + if (mode === 'readwrite' && this.mode !== 'readwrite') + return rejection(new exceptions.ReadOnly("Transaction is readonly")); + if (!this.active) + return rejection(new exceptions.TransactionInactive()); + if (this._locked()) { + return new DexiePromise((resolve, reject) => { + this._blockedFuncs.push([() => { + this._promise(mode, fn, bWriteLock).then(resolve, reject); + }, PSD]); + }); + } + else if (bWriteLock) { + return newScope(() => { + var p = new DexiePromise((resolve, reject) => { + this._lock(); + const rv = fn(resolve, reject, this); + if (rv && rv.then) + rv.then(resolve, reject); + }); + p.finally(() => this._unlock()); + p._lib = true; + return p; + }); + } + else { + var p = new DexiePromise((resolve, reject) => { + var rv = fn(resolve, reject, this); + if (rv && rv.then) + rv.then(resolve, reject); + }); + p._lib = true; + return p; + } + } + _root() { + return this.parent ? this.parent._root() : this; + } + waitFor(promiseLike) { + var root = this._root(); + const promise = DexiePromise.resolve(promiseLike); + if (root._waitingFor) { + root._waitingFor = root._waitingFor.then(() => promise); + } + else { + root._waitingFor = promise; + root._waitingQueue = []; + var store = root.idbtrans.objectStore(root.storeNames[0]); + (function spin() { + ++root._spinCount; + while (root._waitingQueue.length) + (root._waitingQueue.shift())(); + if (root._waitingFor) + store.get(-Infinity).onsuccess = spin; + }()); + } + var currentWaitPromise = root._waitingFor; + return new DexiePromise((resolve, reject) => { + promise.then(res => root._waitingQueue.push(wrap(resolve.bind(null, res))), err => root._waitingQueue.push(wrap(reject.bind(null, err)))).finally(() => { + if (root._waitingFor === currentWaitPromise) { + root._waitingFor = null; + } + }); + }); + } + abort() { + if (this.active) { + this.active = false; + if (this.idbtrans) + this.idbtrans.abort(); + this._reject(new exceptions.Abort()); + } + } + table(tableName) { + const memoizedTables = (this._memoizedTables || (this._memoizedTables = {})); + if (hasOwn(memoizedTables, tableName)) + return memoizedTables[tableName]; + const tableSchema = this.schema[tableName]; + if (!tableSchema) { + throw new exceptions.NotFound("Table " + tableName + " not part of transaction"); + } + const transactionBoundTable = new this.db.Table(tableName, tableSchema, this); + transactionBoundTable.core = this.db.core.table(tableName); + memoizedTables[tableName] = transactionBoundTable; + return transactionBoundTable; + } +} + +function createTransactionConstructor(db) { + return makeClassConstructor(Transaction.prototype, function Transaction(mode, storeNames, dbschema, chromeTransactionDurability, parent) { + this.db = db; + this.mode = mode; + this.storeNames = storeNames; + this.schema = dbschema; + this.chromeTransactionDurability = chromeTransactionDurability; + this.idbtrans = null; + this.on = Events(this, "complete", "error", "abort"); + this.parent = parent || null; + this.active = true; + this._reculock = 0; + this._blockedFuncs = []; + this._resolve = null; + this._reject = null; + this._waitingFor = null; + this._waitingQueue = null; + this._spinCount = 0; + this._completion = new DexiePromise((resolve, reject) => { + this._resolve = resolve; + this._reject = reject; + }); + this._completion.then(() => { + this.active = false; + this.on.complete.fire(); + }, e => { + var wasActive = this.active; + this.active = false; + this.on.error.fire(e); + this.parent ? + this.parent._reject(e) : + wasActive && this.idbtrans && this.idbtrans.abort(); + return rejection(e); + }); + }); +} + +function createIndexSpec(name, keyPath, unique, multi, auto, compound, isPrimKey) { + return { + name, + keyPath, + unique, + multi, + auto, + compound, + src: (unique && !isPrimKey ? '&' : '') + (multi ? '*' : '') + (auto ? "++" : "") + nameFromKeyPath(keyPath) + }; +} +function nameFromKeyPath(keyPath) { + return typeof keyPath === 'string' ? + keyPath : + keyPath ? ('[' + [].join.call(keyPath, '+') + ']') : ""; +} + +function createTableSchema(name, primKey, indexes) { + return { + name, + primKey, + indexes, + mappedClass: null, + idxByName: arrayToObject(indexes, index => [index.name, index]) + }; +} + +function safariMultiStoreFix(storeNames) { + return storeNames.length === 1 ? storeNames[0] : storeNames; +} +let getMaxKey = (IdbKeyRange) => { + try { + IdbKeyRange.only([[]]); + getMaxKey = () => [[]]; + return [[]]; + } + catch (e) { + getMaxKey = () => maxString; + return maxString; + } +}; + +function getKeyExtractor(keyPath) { + if (keyPath == null) { + return () => undefined; + } + else if (typeof keyPath === 'string') { + return getSinglePathKeyExtractor(keyPath); + } + else { + return obj => getByKeyPath(obj, keyPath); + } +} +function getSinglePathKeyExtractor(keyPath) { + const split = keyPath.split('.'); + if (split.length === 1) { + return obj => obj[keyPath]; + } + else { + return obj => getByKeyPath(obj, keyPath); + } +} + +function arrayify(arrayLike) { + return [].slice.call(arrayLike); +} +let _id_counter = 0; +function getKeyPathAlias(keyPath) { + return keyPath == null ? + ":id" : + typeof keyPath === 'string' ? + keyPath : + `[${keyPath.join('+')}]`; +} +function createDBCore(db, IdbKeyRange, tmpTrans) { + function extractSchema(db, trans) { + const tables = arrayify(db.objectStoreNames); + return { + schema: { + name: db.name, + tables: tables.map(table => trans.objectStore(table)).map(store => { + const { keyPath, autoIncrement } = store; + const compound = isArray(keyPath); + const outbound = keyPath == null; + const indexByKeyPath = {}; + const result = { + name: store.name, + primaryKey: { + name: null, + isPrimaryKey: true, + outbound, + compound, + keyPath, + autoIncrement, + unique: true, + extractKey: getKeyExtractor(keyPath) + }, + indexes: arrayify(store.indexNames).map(indexName => store.index(indexName)) + .map(index => { + const { name, unique, multiEntry, keyPath } = index; + const compound = isArray(keyPath); + const result = { + name, + compound, + keyPath, + unique, + multiEntry, + extractKey: getKeyExtractor(keyPath) + }; + indexByKeyPath[getKeyPathAlias(keyPath)] = result; + return result; + }), + getIndexByKeyPath: (keyPath) => indexByKeyPath[getKeyPathAlias(keyPath)] + }; + indexByKeyPath[":id"] = result.primaryKey; + if (keyPath != null) { + indexByKeyPath[getKeyPathAlias(keyPath)] = result.primaryKey; + } + return result; + }) + }, + hasGetAll: tables.length > 0 && ('getAll' in trans.objectStore(tables[0])) && + !(typeof navigator !== 'undefined' && /Safari/.test(navigator.userAgent) && + !/(Chrome\/|Edge\/)/.test(navigator.userAgent) && + [].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1] < 604) + }; + } + function makeIDBKeyRange(range) { + if (range.type === 3 ) + return null; + if (range.type === 4 ) + throw new Error("Cannot convert never type to IDBKeyRange"); + const { lower, upper, lowerOpen, upperOpen } = range; + const idbRange = lower === undefined ? + upper === undefined ? + null : + IdbKeyRange.upperBound(upper, !!upperOpen) : + upper === undefined ? + IdbKeyRange.lowerBound(lower, !!lowerOpen) : + IdbKeyRange.bound(lower, upper, !!lowerOpen, !!upperOpen); + return idbRange; + } + function createDbCoreTable(tableSchema) { + const tableName = tableSchema.name; + function mutate({ trans, type, keys, values, range }) { + return new Promise((resolve, reject) => { + resolve = wrap(resolve); + const store = trans.objectStore(tableName); + const outbound = store.keyPath == null; + const isAddOrPut = type === "put" || type === "add"; + if (!isAddOrPut && type !== 'delete' && type !== 'deleteRange') + throw new Error("Invalid operation type: " + type); + const { length } = keys || values || { length: 1 }; + if (keys && values && keys.length !== values.length) { + throw new Error("Given keys array must have same length as given values array."); + } + if (length === 0) + return resolve({ numFailures: 0, failures: {}, results: [], lastResult: undefined }); + let req; + const reqs = []; + const failures = []; + let numFailures = 0; + const errorHandler = event => { + ++numFailures; + preventDefault(event); + }; + if (type === 'deleteRange') { + if (range.type === 4 ) + return resolve({ numFailures, failures, results: [], lastResult: undefined }); + if (range.type === 3 ) + reqs.push(req = store.clear()); + else + reqs.push(req = store.delete(makeIDBKeyRange(range))); + } + else { + const [args1, args2] = isAddOrPut ? + outbound ? + [values, keys] : + [values, null] : + [keys, null]; + if (isAddOrPut) { + for (let i = 0; i < length; ++i) { + reqs.push(req = (args2 && args2[i] !== undefined ? + store[type](args1[i], args2[i]) : + store[type](args1[i]))); + req.onerror = errorHandler; + } + } + else { + for (let i = 0; i < length; ++i) { + reqs.push(req = store[type](args1[i])); + req.onerror = errorHandler; + } + } + } + const done = event => { + const lastResult = event.target.result; + reqs.forEach((req, i) => req.error != null && (failures[i] = req.error)); + resolve({ + numFailures, + failures, + results: type === "delete" ? keys : reqs.map(req => req.result), + lastResult + }); + }; + req.onerror = event => { + errorHandler(event); + done(event); + }; + req.onsuccess = done; + }); + } + function openCursor({ trans, values, query, reverse, unique }) { + return new Promise((resolve, reject) => { + resolve = wrap(resolve); + const { index, range } = query; + const store = trans.objectStore(tableName); + const source = index.isPrimaryKey ? + store : + store.index(index.name); + const direction = reverse ? + unique ? + "prevunique" : + "prev" : + unique ? + "nextunique" : + "next"; + const req = values || !('openKeyCursor' in source) ? + source.openCursor(makeIDBKeyRange(range), direction) : + source.openKeyCursor(makeIDBKeyRange(range), direction); + req.onerror = eventRejectHandler(reject); + req.onsuccess = wrap(ev => { + const cursor = req.result; + if (!cursor) { + resolve(null); + return; + } + cursor.___id = ++_id_counter; + cursor.done = false; + const _cursorContinue = cursor.continue.bind(cursor); + let _cursorContinuePrimaryKey = cursor.continuePrimaryKey; + if (_cursorContinuePrimaryKey) + _cursorContinuePrimaryKey = _cursorContinuePrimaryKey.bind(cursor); + const _cursorAdvance = cursor.advance.bind(cursor); + const doThrowCursorIsNotStarted = () => { throw new Error("Cursor not started"); }; + const doThrowCursorIsStopped = () => { throw new Error("Cursor not stopped"); }; + cursor.trans = trans; + cursor.stop = cursor.continue = cursor.continuePrimaryKey = cursor.advance = doThrowCursorIsNotStarted; + cursor.fail = wrap(reject); + cursor.next = function () { + let gotOne = 1; + return this.start(() => gotOne-- ? this.continue() : this.stop()).then(() => this); + }; + cursor.start = (callback) => { + const iterationPromise = new Promise((resolveIteration, rejectIteration) => { + resolveIteration = wrap(resolveIteration); + req.onerror = eventRejectHandler(rejectIteration); + cursor.fail = rejectIteration; + cursor.stop = value => { + cursor.stop = cursor.continue = cursor.continuePrimaryKey = cursor.advance = doThrowCursorIsStopped; + resolveIteration(value); + }; + }); + const guardedCallback = () => { + if (req.result) { + try { + callback(); + } + catch (err) { + cursor.fail(err); + } + } + else { + cursor.done = true; + cursor.start = () => { throw new Error("Cursor behind last entry"); }; + cursor.stop(); + } + }; + req.onsuccess = wrap(ev => { + req.onsuccess = guardedCallback; + guardedCallback(); + }); + cursor.continue = _cursorContinue; + cursor.continuePrimaryKey = _cursorContinuePrimaryKey; + cursor.advance = _cursorAdvance; + guardedCallback(); + return iterationPromise; + }; + resolve(cursor); + }, reject); + }); + } + function query(hasGetAll) { + return (request) => { + return new Promise((resolve, reject) => { + resolve = wrap(resolve); + const { trans, values, limit, query } = request; + const nonInfinitLimit = limit === Infinity ? undefined : limit; + const { index, range } = query; + const store = trans.objectStore(tableName); + const source = index.isPrimaryKey ? store : store.index(index.name); + const idbKeyRange = makeIDBKeyRange(range); + if (limit === 0) + return resolve({ result: [] }); + if (hasGetAll) { + const req = values ? + source.getAll(idbKeyRange, nonInfinitLimit) : + source.getAllKeys(idbKeyRange, nonInfinitLimit); + req.onsuccess = event => resolve({ result: event.target.result }); + req.onerror = eventRejectHandler(reject); + } + else { + let count = 0; + const req = values || !('openKeyCursor' in source) ? + source.openCursor(idbKeyRange) : + source.openKeyCursor(idbKeyRange); + const result = []; + req.onsuccess = event => { + const cursor = req.result; + if (!cursor) + return resolve({ result }); + result.push(values ? cursor.value : cursor.primaryKey); + if (++count === limit) + return resolve({ result }); + cursor.continue(); + }; + req.onerror = eventRejectHandler(reject); + } + }); + }; + } + return { + name: tableName, + schema: tableSchema, + mutate, + getMany({ trans, keys }) { + return new Promise((resolve, reject) => { + resolve = wrap(resolve); + const store = trans.objectStore(tableName); + const length = keys.length; + const result = new Array(length); + let keyCount = 0; + let callbackCount = 0; + let req; + const successHandler = event => { + const req = event.target; + if ((result[req._pos] = req.result) != null) + ; + if (++callbackCount === keyCount) + resolve(result); + }; + const errorHandler = eventRejectHandler(reject); + for (let i = 0; i < length; ++i) { + const key = keys[i]; + if (key != null) { + req = store.get(keys[i]); + req._pos = i; + req.onsuccess = successHandler; + req.onerror = errorHandler; + ++keyCount; + } + } + if (keyCount === 0) + resolve(result); + }); + }, + get({ trans, key }) { + return new Promise((resolve, reject) => { + resolve = wrap(resolve); + const store = trans.objectStore(tableName); + const req = store.get(key); + req.onsuccess = event => resolve(event.target.result); + req.onerror = eventRejectHandler(reject); + }); + }, + query: query(hasGetAll), + openCursor, + count({ query, trans }) { + const { index, range } = query; + return new Promise((resolve, reject) => { + const store = trans.objectStore(tableName); + const source = index.isPrimaryKey ? store : store.index(index.name); + const idbKeyRange = makeIDBKeyRange(range); + const req = idbKeyRange ? source.count(idbKeyRange) : source.count(); + req.onsuccess = wrap(ev => resolve(ev.target.result)); + req.onerror = eventRejectHandler(reject); + }); + } + }; + } + const { schema, hasGetAll } = extractSchema(db, tmpTrans); + const tables = schema.tables.map(tableSchema => createDbCoreTable(tableSchema)); + const tableMap = {}; + tables.forEach(table => tableMap[table.name] = table); + return { + stack: "dbcore", + transaction: db.transaction.bind(db), + table(name) { + const result = tableMap[name]; + if (!result) + throw new Error(`Table '${name}' not found`); + return tableMap[name]; + }, + MIN_KEY: -Infinity, + MAX_KEY: getMaxKey(IdbKeyRange), + schema + }; +} + +function createMiddlewareStack(stackImpl, middlewares) { + return middlewares.reduce((down, { create }) => ({ ...down, ...create(down) }), stackImpl); +} +function createMiddlewareStacks(middlewares, idbdb, { IDBKeyRange, indexedDB }, tmpTrans) { + const dbcore = createMiddlewareStack(createDBCore(idbdb, IDBKeyRange, tmpTrans), middlewares.dbcore); + return { + dbcore + }; +} +function generateMiddlewareStacks({ _novip: db }, tmpTrans) { + const idbdb = tmpTrans.db; + const stacks = createMiddlewareStacks(db._middlewares, idbdb, db._deps, tmpTrans); + db.core = stacks.dbcore; + db.tables.forEach(table => { + const tableName = table.name; + if (db.core.schema.tables.some(tbl => tbl.name === tableName)) { + table.core = db.core.table(tableName); + if (db[tableName] instanceof db.Table) { + db[tableName].core = table.core; + } + } + }); +} + +function setApiOnPlace({ _novip: db }, objs, tableNames, dbschema) { + tableNames.forEach(tableName => { + const schema = dbschema[tableName]; + objs.forEach(obj => { + const propDesc = getPropertyDescriptor(obj, tableName); + if (!propDesc || ("value" in propDesc && propDesc.value === undefined)) { + if (obj === db.Transaction.prototype || obj instanceof db.Transaction) { + setProp(obj, tableName, { + get() { return this.table(tableName); }, + set(value) { + defineProperty(this, tableName, { value, writable: true, configurable: true, enumerable: true }); + } + }); + } + else { + obj[tableName] = new db.Table(tableName, schema); + } + } + }); + }); +} +function removeTablesApi({ _novip: db }, objs) { + objs.forEach(obj => { + for (let key in obj) { + if (obj[key] instanceof db.Table) + delete obj[key]; + } + }); +} +function lowerVersionFirst(a, b) { + return a._cfg.version - b._cfg.version; +} +function runUpgraders(db, oldVersion, idbUpgradeTrans, reject) { + const globalSchema = db._dbSchema; + const trans = db._createTransaction('readwrite', db._storeNames, globalSchema); + trans.create(idbUpgradeTrans); + trans._completion.catch(reject); + const rejectTransaction = trans._reject.bind(trans); + const transless = PSD.transless || PSD; + newScope(() => { + PSD.trans = trans; + PSD.transless = transless; + if (oldVersion === 0) { + keys(globalSchema).forEach(tableName => { + createTable(idbUpgradeTrans, tableName, globalSchema[tableName].primKey, globalSchema[tableName].indexes); + }); + generateMiddlewareStacks(db, idbUpgradeTrans); + DexiePromise.follow(() => db.on.populate.fire(trans)).catch(rejectTransaction); + } + else + updateTablesAndIndexes(db, oldVersion, trans, idbUpgradeTrans).catch(rejectTransaction); + }); +} +function updateTablesAndIndexes({ _novip: db }, oldVersion, trans, idbUpgradeTrans) { + const queue = []; + const versions = db._versions; + let globalSchema = db._dbSchema = buildGlobalSchema(db, db.idbdb, idbUpgradeTrans); + let anyContentUpgraderHasRun = false; + const versToRun = versions.filter(v => v._cfg.version >= oldVersion); + versToRun.forEach(version => { + queue.push(() => { + const oldSchema = globalSchema; + const newSchema = version._cfg.dbschema; + adjustToExistingIndexNames(db, oldSchema, idbUpgradeTrans); + adjustToExistingIndexNames(db, newSchema, idbUpgradeTrans); + globalSchema = db._dbSchema = newSchema; + const diff = getSchemaDiff(oldSchema, newSchema); + diff.add.forEach(tuple => { + createTable(idbUpgradeTrans, tuple[0], tuple[1].primKey, tuple[1].indexes); + }); + diff.change.forEach(change => { + if (change.recreate) { + throw new exceptions.Upgrade("Not yet support for changing primary key"); + } + else { + const store = idbUpgradeTrans.objectStore(change.name); + change.add.forEach(idx => addIndex(store, idx)); + change.change.forEach(idx => { + store.deleteIndex(idx.name); + addIndex(store, idx); + }); + change.del.forEach(idxName => store.deleteIndex(idxName)); + } + }); + const contentUpgrade = version._cfg.contentUpgrade; + if (contentUpgrade && version._cfg.version > oldVersion) { + generateMiddlewareStacks(db, idbUpgradeTrans); + trans._memoizedTables = {}; + anyContentUpgraderHasRun = true; + let upgradeSchema = shallowClone(newSchema); + diff.del.forEach(table => { + upgradeSchema[table] = oldSchema[table]; + }); + removeTablesApi(db, [db.Transaction.prototype]); + setApiOnPlace(db, [db.Transaction.prototype], keys(upgradeSchema), upgradeSchema); + trans.schema = upgradeSchema; + const contentUpgradeIsAsync = isAsyncFunction(contentUpgrade); + if (contentUpgradeIsAsync) { + incrementExpectedAwaits(); + } + let returnValue; + const promiseFollowed = DexiePromise.follow(() => { + returnValue = contentUpgrade(trans); + if (returnValue) { + if (contentUpgradeIsAsync) { + var decrementor = decrementExpectedAwaits.bind(null, null); + returnValue.then(decrementor, decrementor); + } + } + }); + return (returnValue && typeof returnValue.then === 'function' ? + DexiePromise.resolve(returnValue) : promiseFollowed.then(() => returnValue)); + } + }); + queue.push(idbtrans => { + if (!anyContentUpgraderHasRun || !hasIEDeleteObjectStoreBug) { + const newSchema = version._cfg.dbschema; + deleteRemovedTables(newSchema, idbtrans); + } + removeTablesApi(db, [db.Transaction.prototype]); + setApiOnPlace(db, [db.Transaction.prototype], db._storeNames, db._dbSchema); + trans.schema = db._dbSchema; + }); + }); + function runQueue() { + return queue.length ? DexiePromise.resolve(queue.shift()(trans.idbtrans)).then(runQueue) : + DexiePromise.resolve(); + } + return runQueue().then(() => { + createMissingTables(globalSchema, idbUpgradeTrans); + }); +} +function getSchemaDiff(oldSchema, newSchema) { + const diff = { + del: [], + add: [], + change: [] + }; + let table; + for (table in oldSchema) { + if (!newSchema[table]) + diff.del.push(table); + } + for (table in newSchema) { + const oldDef = oldSchema[table], newDef = newSchema[table]; + if (!oldDef) { + diff.add.push([table, newDef]); + } + else { + const change = { + name: table, + def: newDef, + recreate: false, + del: [], + add: [], + change: [] + }; + if (( + '' + (oldDef.primKey.keyPath || '')) !== ('' + (newDef.primKey.keyPath || '')) || + (oldDef.primKey.auto !== newDef.primKey.auto && !isIEOrEdge)) + { + change.recreate = true; + diff.change.push(change); + } + else { + const oldIndexes = oldDef.idxByName; + const newIndexes = newDef.idxByName; + let idxName; + for (idxName in oldIndexes) { + if (!newIndexes[idxName]) + change.del.push(idxName); + } + for (idxName in newIndexes) { + const oldIdx = oldIndexes[idxName], newIdx = newIndexes[idxName]; + if (!oldIdx) + change.add.push(newIdx); + else if (oldIdx.src !== newIdx.src) + change.change.push(newIdx); + } + if (change.del.length > 0 || change.add.length > 0 || change.change.length > 0) { + diff.change.push(change); + } + } + } + } + return diff; +} +function createTable(idbtrans, tableName, primKey, indexes) { + const store = idbtrans.db.createObjectStore(tableName, primKey.keyPath ? + { keyPath: primKey.keyPath, autoIncrement: primKey.auto } : + { autoIncrement: primKey.auto }); + indexes.forEach(idx => addIndex(store, idx)); + return store; +} +function createMissingTables(newSchema, idbtrans) { + keys(newSchema).forEach(tableName => { + if (!idbtrans.db.objectStoreNames.contains(tableName)) { + createTable(idbtrans, tableName, newSchema[tableName].primKey, newSchema[tableName].indexes); + } + }); +} +function deleteRemovedTables(newSchema, idbtrans) { + [].slice.call(idbtrans.db.objectStoreNames).forEach(storeName => newSchema[storeName] == null && idbtrans.db.deleteObjectStore(storeName)); +} +function addIndex(store, idx) { + store.createIndex(idx.name, idx.keyPath, { unique: idx.unique, multiEntry: idx.multi }); +} +function buildGlobalSchema(db, idbdb, tmpTrans) { + const globalSchema = {}; + const dbStoreNames = slice(idbdb.objectStoreNames, 0); + dbStoreNames.forEach(storeName => { + const store = tmpTrans.objectStore(storeName); + let keyPath = store.keyPath; + const primKey = createIndexSpec(nameFromKeyPath(keyPath), keyPath || "", false, false, !!store.autoIncrement, keyPath && typeof keyPath !== "string", true); + const indexes = []; + for (let j = 0; j < store.indexNames.length; ++j) { + const idbindex = store.index(store.indexNames[j]); + keyPath = idbindex.keyPath; + var index = createIndexSpec(idbindex.name, keyPath, !!idbindex.unique, !!idbindex.multiEntry, false, keyPath && typeof keyPath !== "string", false); + indexes.push(index); + } + globalSchema[storeName] = createTableSchema(storeName, primKey, indexes); + }); + return globalSchema; +} +function readGlobalSchema({ _novip: db }, idbdb, tmpTrans) { + db.verno = idbdb.version / 10; + const globalSchema = db._dbSchema = buildGlobalSchema(db, idbdb, tmpTrans); + db._storeNames = slice(idbdb.objectStoreNames, 0); + setApiOnPlace(db, [db._allTables], keys(globalSchema), globalSchema); +} +function verifyInstalledSchema(db, tmpTrans) { + const installedSchema = buildGlobalSchema(db, db.idbdb, tmpTrans); + const diff = getSchemaDiff(installedSchema, db._dbSchema); + return !(diff.add.length || diff.change.some(ch => ch.add.length || ch.change.length)); +} +function adjustToExistingIndexNames({ _novip: db }, schema, idbtrans) { + const storeNames = idbtrans.db.objectStoreNames; + for (let i = 0; i < storeNames.length; ++i) { + const storeName = storeNames[i]; + const store = idbtrans.objectStore(storeName); + db._hasGetAll = 'getAll' in store; + for (let j = 0; j < store.indexNames.length; ++j) { + const indexName = store.indexNames[j]; + const keyPath = store.index(indexName).keyPath; + const dexieName = typeof keyPath === 'string' ? keyPath : "[" + slice(keyPath).join('+') + "]"; + if (schema[storeName]) { + const indexSpec = schema[storeName].idxByName[dexieName]; + if (indexSpec) { + indexSpec.name = indexName; + delete schema[storeName].idxByName[dexieName]; + schema[storeName].idxByName[indexName] = indexSpec; + } + } + } + } + if (typeof navigator !== 'undefined' && /Safari/.test(navigator.userAgent) && + !/(Chrome\/|Edge\/)/.test(navigator.userAgent) && + _global.WorkerGlobalScope && _global instanceof _global.WorkerGlobalScope && + [].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1] < 604) { + db._hasGetAll = false; + } +} +function parseIndexSyntax(primKeyAndIndexes) { + return primKeyAndIndexes.split(',').map((index, indexNum) => { + index = index.trim(); + const name = index.replace(/([&*]|\+\+)/g, ""); + const keyPath = /^\[/.test(name) ? name.match(/^\[(.*)\]$/)[1].split('+') : name; + return createIndexSpec(name, keyPath || null, /\&/.test(index), /\*/.test(index), /\+\+/.test(index), isArray(keyPath), indexNum === 0); + }); +} + +class Version { + _parseStoresSpec(stores, outSchema) { + keys(stores).forEach(tableName => { + if (stores[tableName] !== null) { + var indexes = parseIndexSyntax(stores[tableName]); + var primKey = indexes.shift(); + if (primKey.multi) + throw new exceptions.Schema("Primary key cannot be multi-valued"); + indexes.forEach(idx => { + if (idx.auto) + throw new exceptions.Schema("Only primary key can be marked as autoIncrement (++)"); + if (!idx.keyPath) + throw new exceptions.Schema("Index must have a name and cannot be an empty string"); + }); + outSchema[tableName] = createTableSchema(tableName, primKey, indexes); + } + }); + } + stores(stores) { + const db = this.db; + this._cfg.storesSource = this._cfg.storesSource ? + extend(this._cfg.storesSource, stores) : + stores; + const versions = db._versions; + const storesSpec = {}; + let dbschema = {}; + versions.forEach(version => { + extend(storesSpec, version._cfg.storesSource); + dbschema = (version._cfg.dbschema = {}); + version._parseStoresSpec(storesSpec, dbschema); + }); + db._dbSchema = dbschema; + removeTablesApi(db, [db._allTables, db, db.Transaction.prototype]); + setApiOnPlace(db, [db._allTables, db, db.Transaction.prototype, this._cfg.tables], keys(dbschema), dbschema); + db._storeNames = keys(dbschema); + return this; + } + upgrade(upgradeFunction) { + this._cfg.contentUpgrade = promisableChain(this._cfg.contentUpgrade || nop, upgradeFunction); + return this; + } +} + +function createVersionConstructor(db) { + return makeClassConstructor(Version.prototype, function Version(versionNumber) { + this.db = db; + this._cfg = { + version: versionNumber, + storesSource: null, + dbschema: {}, + tables: {}, + contentUpgrade: null + }; + }); +} + +function getDbNamesTable(indexedDB, IDBKeyRange) { + let dbNamesDB = indexedDB["_dbNamesDB"]; + if (!dbNamesDB) { + dbNamesDB = indexedDB["_dbNamesDB"] = new Dexie$1(DBNAMES_DB, { + addons: [], + indexedDB, + IDBKeyRange, + }); + dbNamesDB.version(1).stores({ dbnames: "name" }); + } + return dbNamesDB.table("dbnames"); +} +function hasDatabasesNative(indexedDB) { + return indexedDB && typeof indexedDB.databases === "function"; +} +function getDatabaseNames({ indexedDB, IDBKeyRange, }) { + return hasDatabasesNative(indexedDB) + ? Promise.resolve(indexedDB.databases()).then((infos) => infos + .map((info) => info.name) + .filter((name) => name !== DBNAMES_DB)) + : getDbNamesTable(indexedDB, IDBKeyRange).toCollection().primaryKeys(); +} +function _onDatabaseCreated({ indexedDB, IDBKeyRange }, name) { + !hasDatabasesNative(indexedDB) && + name !== DBNAMES_DB && + getDbNamesTable(indexedDB, IDBKeyRange).put({ name }).catch(nop); +} +function _onDatabaseDeleted({ indexedDB, IDBKeyRange }, name) { + !hasDatabasesNative(indexedDB) && + name !== DBNAMES_DB && + getDbNamesTable(indexedDB, IDBKeyRange).delete(name).catch(nop); +} + +function vip(fn) { + return newScope(function () { + PSD.letThrough = true; + return fn(); + }); +} + +function idbReady() { + var isSafari = !navigator.userAgentData && + /Safari\//.test(navigator.userAgent) && + !/Chrom(e|ium)\//.test(navigator.userAgent); + if (!isSafari || !indexedDB.databases) + return Promise.resolve(); + var intervalId; + return new Promise(function (resolve) { + var tryIdb = function () { return indexedDB.databases().finally(resolve); }; + intervalId = setInterval(tryIdb, 100); + tryIdb(); + }).finally(function () { return clearInterval(intervalId); }); +} + +function dexieOpen(db) { + const state = db._state; + const { indexedDB } = db._deps; + if (state.isBeingOpened || db.idbdb) + return state.dbReadyPromise.then(() => state.dbOpenError ? + rejection(state.dbOpenError) : + db); + debug && (state.openCanceller._stackHolder = getErrorWithStack()); + state.isBeingOpened = true; + state.dbOpenError = null; + state.openComplete = false; + const openCanceller = state.openCanceller; + function throwIfCancelled() { + if (state.openCanceller !== openCanceller) + throw new exceptions.DatabaseClosed('db.open() was cancelled'); + } + let resolveDbReady = state.dbReadyResolve, + upgradeTransaction = null, wasCreated = false; + return DexiePromise.race([openCanceller, (typeof navigator === 'undefined' ? DexiePromise.resolve() : idbReady()).then(() => new DexiePromise((resolve, reject) => { + throwIfCancelled(); + if (!indexedDB) + throw new exceptions.MissingAPI(); + const dbName = db.name; + const req = state.autoSchema ? + indexedDB.open(dbName) : + indexedDB.open(dbName, Math.round(db.verno * 10)); + if (!req) + throw new exceptions.MissingAPI(); + req.onerror = eventRejectHandler(reject); + req.onblocked = wrap(db._fireOnBlocked); + req.onupgradeneeded = wrap(e => { + upgradeTransaction = req.transaction; + if (state.autoSchema && !db._options.allowEmptyDB) { + req.onerror = preventDefault; + upgradeTransaction.abort(); + req.result.close(); + const delreq = indexedDB.deleteDatabase(dbName); + delreq.onsuccess = delreq.onerror = wrap(() => { + reject(new exceptions.NoSuchDatabase(`Database ${dbName} doesnt exist`)); + }); + } + else { + upgradeTransaction.onerror = eventRejectHandler(reject); + var oldVer = e.oldVersion > Math.pow(2, 62) ? 0 : e.oldVersion; + wasCreated = oldVer < 1; + db._novip.idbdb = req.result; + runUpgraders(db, oldVer / 10, upgradeTransaction, reject); + } + }, reject); + req.onsuccess = wrap(() => { + upgradeTransaction = null; + const idbdb = db._novip.idbdb = req.result; + const objectStoreNames = slice(idbdb.objectStoreNames); + if (objectStoreNames.length > 0) + try { + const tmpTrans = idbdb.transaction(safariMultiStoreFix(objectStoreNames), 'readonly'); + if (state.autoSchema) + readGlobalSchema(db, idbdb, tmpTrans); + else { + adjustToExistingIndexNames(db, db._dbSchema, tmpTrans); + if (!verifyInstalledSchema(db, tmpTrans)) { + console.warn(`Dexie SchemaDiff: Schema was extended without increasing the number passed to db.version(). Some queries may fail.`); + } + } + generateMiddlewareStacks(db, tmpTrans); + } + catch (e) { + } + connections.push(db); + idbdb.onversionchange = wrap(ev => { + state.vcFired = true; + db.on("versionchange").fire(ev); + }); + idbdb.onclose = wrap(ev => { + db.on("close").fire(ev); + }); + if (wasCreated) + _onDatabaseCreated(db._deps, dbName); + resolve(); + }, reject); + }))]).then(() => { + throwIfCancelled(); + state.onReadyBeingFired = []; + return DexiePromise.resolve(vip(() => db.on.ready.fire(db.vip))).then(function fireRemainders() { + if (state.onReadyBeingFired.length > 0) { + let remainders = state.onReadyBeingFired.reduce(promisableChain, nop); + state.onReadyBeingFired = []; + return DexiePromise.resolve(vip(() => remainders(db.vip))).then(fireRemainders); + } + }); + }).finally(() => { + state.onReadyBeingFired = null; + state.isBeingOpened = false; + }).then(() => { + return db; + }).catch(err => { + state.dbOpenError = err; + try { + upgradeTransaction && upgradeTransaction.abort(); + } + catch (_a) { } + if (openCanceller === state.openCanceller) { + db._close(); + } + return rejection(err); + }).finally(() => { + state.openComplete = true; + resolveDbReady(); + }); +} + +function awaitIterator(iterator) { + var callNext = result => iterator.next(result), doThrow = error => iterator.throw(error), onSuccess = step(callNext), onError = step(doThrow); + function step(getNext) { + return (val) => { + var next = getNext(val), value = next.value; + return next.done ? value : + (!value || typeof value.then !== 'function' ? + isArray(value) ? Promise.all(value).then(onSuccess, onError) : onSuccess(value) : + value.then(onSuccess, onError)); + }; + } + return step(callNext)(); +} + +function extractTransactionArgs(mode, _tableArgs_, scopeFunc) { + var i = arguments.length; + if (i < 2) + throw new exceptions.InvalidArgument("Too few arguments"); + var args = new Array(i - 1); + while (--i) + args[i - 1] = arguments[i]; + scopeFunc = args.pop(); + var tables = flatten(args); + return [mode, tables, scopeFunc]; +} +function enterTransactionScope(db, mode, storeNames, parentTransaction, scopeFunc) { + return DexiePromise.resolve().then(() => { + const transless = PSD.transless || PSD; + const trans = db._createTransaction(mode, storeNames, db._dbSchema, parentTransaction); + const zoneProps = { + trans: trans, + transless: transless + }; + if (parentTransaction) { + trans.idbtrans = parentTransaction.idbtrans; + } + else { + try { + trans.create(); + db._state.PR1398_maxLoop = 3; + } + catch (ex) { + if (ex.name === errnames.InvalidState && db.isOpen() && --db._state.PR1398_maxLoop > 0) { + console.warn('Dexie: Need to reopen db'); + db._close(); + return db.open().then(() => enterTransactionScope(db, mode, storeNames, null, scopeFunc)); + } + return rejection(ex); + } + } + const scopeFuncIsAsync = isAsyncFunction(scopeFunc); + if (scopeFuncIsAsync) { + incrementExpectedAwaits(); + } + let returnValue; + const promiseFollowed = DexiePromise.follow(() => { + returnValue = scopeFunc.call(trans, trans); + if (returnValue) { + if (scopeFuncIsAsync) { + var decrementor = decrementExpectedAwaits.bind(null, null); + returnValue.then(decrementor, decrementor); + } + else if (typeof returnValue.next === 'function' && typeof returnValue.throw === 'function') { + returnValue = awaitIterator(returnValue); + } + } + }, zoneProps); + return (returnValue && typeof returnValue.then === 'function' ? + DexiePromise.resolve(returnValue).then(x => trans.active ? + x + : rejection(new exceptions.PrematureCommit("Transaction committed too early. See http://bit.ly/2kdckMn"))) + : promiseFollowed.then(() => returnValue)).then(x => { + if (parentTransaction) + trans._resolve(); + return trans._completion.then(() => x); + }).catch(e => { + trans._reject(e); + return rejection(e); + }); + }); +} + +function pad(a, value, count) { + const result = isArray(a) ? a.slice() : [a]; + for (let i = 0; i < count; ++i) + result.push(value); + return result; +} +function createVirtualIndexMiddleware(down) { + return { + ...down, + table(tableName) { + const table = down.table(tableName); + const { schema } = table; + const indexLookup = {}; + const allVirtualIndexes = []; + function addVirtualIndexes(keyPath, keyTail, lowLevelIndex) { + const keyPathAlias = getKeyPathAlias(keyPath); + const indexList = (indexLookup[keyPathAlias] = indexLookup[keyPathAlias] || []); + const keyLength = keyPath == null ? 0 : typeof keyPath === 'string' ? 1 : keyPath.length; + const isVirtual = keyTail > 0; + const virtualIndex = { + ...lowLevelIndex, + isVirtual, + keyTail, + keyLength, + extractKey: getKeyExtractor(keyPath), + unique: !isVirtual && lowLevelIndex.unique + }; + indexList.push(virtualIndex); + if (!virtualIndex.isPrimaryKey) { + allVirtualIndexes.push(virtualIndex); + } + if (keyLength > 1) { + const virtualKeyPath = keyLength === 2 ? + keyPath[0] : + keyPath.slice(0, keyLength - 1); + addVirtualIndexes(virtualKeyPath, keyTail + 1, lowLevelIndex); + } + indexList.sort((a, b) => a.keyTail - b.keyTail); + return virtualIndex; + } + const primaryKey = addVirtualIndexes(schema.primaryKey.keyPath, 0, schema.primaryKey); + indexLookup[":id"] = [primaryKey]; + for (const index of schema.indexes) { + addVirtualIndexes(index.keyPath, 0, index); + } + function findBestIndex(keyPath) { + const result = indexLookup[getKeyPathAlias(keyPath)]; + return result && result[0]; + } + function translateRange(range, keyTail) { + return { + type: range.type === 1 ? + 2 : + range.type, + lower: pad(range.lower, range.lowerOpen ? down.MAX_KEY : down.MIN_KEY, keyTail), + lowerOpen: true, + upper: pad(range.upper, range.upperOpen ? down.MIN_KEY : down.MAX_KEY, keyTail), + upperOpen: true + }; + } + function translateRequest(req) { + const index = req.query.index; + return index.isVirtual ? { + ...req, + query: { + index, + range: translateRange(req.query.range, index.keyTail) + } + } : req; + } + const result = { + ...table, + schema: { + ...schema, + primaryKey, + indexes: allVirtualIndexes, + getIndexByKeyPath: findBestIndex + }, + count(req) { + return table.count(translateRequest(req)); + }, + query(req) { + return table.query(translateRequest(req)); + }, + openCursor(req) { + const { keyTail, isVirtual, keyLength } = req.query.index; + if (!isVirtual) + return table.openCursor(req); + function createVirtualCursor(cursor) { + function _continue(key) { + key != null ? + cursor.continue(pad(key, req.reverse ? down.MAX_KEY : down.MIN_KEY, keyTail)) : + req.unique ? + cursor.continue(cursor.key.slice(0, keyLength) + .concat(req.reverse + ? down.MIN_KEY + : down.MAX_KEY, keyTail)) : + cursor.continue(); + } + const virtualCursor = Object.create(cursor, { + continue: { value: _continue }, + continuePrimaryKey: { + value(key, primaryKey) { + cursor.continuePrimaryKey(pad(key, down.MAX_KEY, keyTail), primaryKey); + } + }, + primaryKey: { + get() { + return cursor.primaryKey; + } + }, + key: { + get() { + const key = cursor.key; + return keyLength === 1 ? + key[0] : + key.slice(0, keyLength); + } + }, + value: { + get() { + return cursor.value; + } + } + }); + return virtualCursor; + } + return table.openCursor(translateRequest(req)) + .then(cursor => cursor && createVirtualCursor(cursor)); + } + }; + return result; + } + }; +} +const virtualIndexMiddleware = { + stack: "dbcore", + name: "VirtualIndexMiddleware", + level: 1, + create: createVirtualIndexMiddleware +}; + +function getObjectDiff(a, b, rv, prfx) { + rv = rv || {}; + prfx = prfx || ''; + keys(a).forEach((prop) => { + if (!hasOwn(b, prop)) { + rv[prfx + prop] = undefined; + } + else { + var ap = a[prop], bp = b[prop]; + if (typeof ap === 'object' && typeof bp === 'object' && ap && bp) { + const apTypeName = toStringTag(ap); + const bpTypeName = toStringTag(bp); + if (apTypeName !== bpTypeName) { + rv[prfx + prop] = b[prop]; + } + else if (apTypeName === 'Object') { + getObjectDiff(ap, bp, rv, prfx + prop + '.'); + } + else if (ap !== bp) { + rv[prfx + prop] = b[prop]; + } + } + else if (ap !== bp) + rv[prfx + prop] = b[prop]; + } + }); + keys(b).forEach((prop) => { + if (!hasOwn(a, prop)) { + rv[prfx + prop] = b[prop]; + } + }); + return rv; +} + +function getEffectiveKeys(primaryKey, req) { + if (req.type === 'delete') + return req.keys; + return req.keys || req.values.map(primaryKey.extractKey); +} + +const hooksMiddleware = { + stack: "dbcore", + name: "HooksMiddleware", + level: 2, + create: (downCore) => ({ + ...downCore, + table(tableName) { + const downTable = downCore.table(tableName); + const { primaryKey } = downTable.schema; + const tableMiddleware = { + ...downTable, + mutate(req) { + const dxTrans = PSD.trans; + const { deleting, creating, updating } = dxTrans.table(tableName).hook; + switch (req.type) { + case 'add': + if (creating.fire === nop) + break; + return dxTrans._promise('readwrite', () => addPutOrDelete(req), true); + case 'put': + if (creating.fire === nop && updating.fire === nop) + break; + return dxTrans._promise('readwrite', () => addPutOrDelete(req), true); + case 'delete': + if (deleting.fire === nop) + break; + return dxTrans._promise('readwrite', () => addPutOrDelete(req), true); + case 'deleteRange': + if (deleting.fire === nop) + break; + return dxTrans._promise('readwrite', () => deleteRange(req), true); + } + return downTable.mutate(req); + function addPutOrDelete(req) { + const dxTrans = PSD.trans; + const keys = req.keys || getEffectiveKeys(primaryKey, req); + if (!keys) + throw new Error("Keys missing"); + req = req.type === 'add' || req.type === 'put' ? + { ...req, keys } : + { ...req }; + if (req.type !== 'delete') + req.values = [...req.values]; + if (req.keys) + req.keys = [...req.keys]; + return getExistingValues(downTable, req, keys).then(existingValues => { + const contexts = keys.map((key, i) => { + const existingValue = existingValues[i]; + const ctx = { onerror: null, onsuccess: null }; + if (req.type === 'delete') { + deleting.fire.call(ctx, key, existingValue, dxTrans); + } + else if (req.type === 'add' || existingValue === undefined) { + const generatedPrimaryKey = creating.fire.call(ctx, key, req.values[i], dxTrans); + if (key == null && generatedPrimaryKey != null) { + key = generatedPrimaryKey; + req.keys[i] = key; + if (!primaryKey.outbound) { + setByKeyPath(req.values[i], primaryKey.keyPath, key); + } + } + } + else { + const objectDiff = getObjectDiff(existingValue, req.values[i]); + const additionalChanges = updating.fire.call(ctx, objectDiff, key, existingValue, dxTrans); + if (additionalChanges) { + const requestedValue = req.values[i]; + Object.keys(additionalChanges).forEach(keyPath => { + if (hasOwn(requestedValue, keyPath)) { + requestedValue[keyPath] = additionalChanges[keyPath]; + } + else { + setByKeyPath(requestedValue, keyPath, additionalChanges[keyPath]); + } + }); + } + } + return ctx; + }); + return downTable.mutate(req).then(({ failures, results, numFailures, lastResult }) => { + for (let i = 0; i < keys.length; ++i) { + const primKey = results ? results[i] : keys[i]; + const ctx = contexts[i]; + if (primKey == null) { + ctx.onerror && ctx.onerror(failures[i]); + } + else { + ctx.onsuccess && ctx.onsuccess(req.type === 'put' && existingValues[i] ? + req.values[i] : + primKey + ); + } + } + return { failures, results, numFailures, lastResult }; + }).catch(error => { + contexts.forEach(ctx => ctx.onerror && ctx.onerror(error)); + return Promise.reject(error); + }); + }); + } + function deleteRange(req) { + return deleteNextChunk(req.trans, req.range, 10000); + } + function deleteNextChunk(trans, range, limit) { + return downTable.query({ trans, values: false, query: { index: primaryKey, range }, limit }) + .then(({ result }) => { + return addPutOrDelete({ type: 'delete', keys: result, trans }).then(res => { + if (res.numFailures > 0) + return Promise.reject(res.failures[0]); + if (result.length < limit) { + return { failures: [], numFailures: 0, lastResult: undefined }; + } + else { + return deleteNextChunk(trans, { ...range, lower: result[result.length - 1], lowerOpen: true }, limit); + } + }); + }); + } + } + }; + return tableMiddleware; + }, + }) +}; +function getExistingValues(table, req, effectiveKeys) { + return req.type === "add" + ? Promise.resolve([]) + : table.getMany({ trans: req.trans, keys: effectiveKeys, cache: "immutable" }); +} + +function getFromTransactionCache(keys, cache, clone) { + try { + if (!cache) + return null; + if (cache.keys.length < keys.length) + return null; + const result = []; + for (let i = 0, j = 0; i < cache.keys.length && j < keys.length; ++i) { + if (cmp(cache.keys[i], keys[j]) !== 0) + continue; + result.push(clone ? deepClone(cache.values[i]) : cache.values[i]); + ++j; + } + return result.length === keys.length ? result : null; + } + catch (_a) { + return null; + } +} +const cacheExistingValuesMiddleware = { + stack: "dbcore", + level: -1, + create: (core) => { + return { + table: (tableName) => { + const table = core.table(tableName); + return { + ...table, + getMany: (req) => { + if (!req.cache) { + return table.getMany(req); + } + const cachedResult = getFromTransactionCache(req.keys, req.trans["_cache"], req.cache === "clone"); + if (cachedResult) { + return DexiePromise.resolve(cachedResult); + } + return table.getMany(req).then((res) => { + req.trans["_cache"] = { + keys: req.keys, + values: req.cache === "clone" ? deepClone(res) : res, + }; + return res; + }); + }, + mutate: (req) => { + if (req.type !== "add") + req.trans["_cache"] = null; + return table.mutate(req); + }, + }; + }, + }; + }, +}; + +function isEmptyRange(node) { + return !("from" in node); +} +const RangeSet = function (fromOrTree, to) { + if (this) { + extend(this, arguments.length ? { d: 1, from: fromOrTree, to: arguments.length > 1 ? to : fromOrTree } : { d: 0 }); + } + else { + const rv = new RangeSet(); + if (fromOrTree && ("d" in fromOrTree)) { + extend(rv, fromOrTree); + } + return rv; + } +}; +props(RangeSet.prototype, { + add(rangeSet) { + mergeRanges(this, rangeSet); + return this; + }, + addKey(key) { + addRange(this, key, key); + return this; + }, + addKeys(keys) { + keys.forEach(key => addRange(this, key, key)); + return this; + }, + [iteratorSymbol]() { + return getRangeSetIterator(this); + } +}); +function addRange(target, from, to) { + const diff = cmp(from, to); + if (isNaN(diff)) + return; + if (diff > 0) + throw RangeError(); + if (isEmptyRange(target)) + return extend(target, { from, to, d: 1 }); + const left = target.l; + const right = target.r; + if (cmp(to, target.from) < 0) { + left + ? addRange(left, from, to) + : (target.l = { from, to, d: 1, l: null, r: null }); + return rebalance(target); + } + if (cmp(from, target.to) > 0) { + right + ? addRange(right, from, to) + : (target.r = { from, to, d: 1, l: null, r: null }); + return rebalance(target); + } + if (cmp(from, target.from) < 0) { + target.from = from; + target.l = null; + target.d = right ? right.d + 1 : 1; + } + if (cmp(to, target.to) > 0) { + target.to = to; + target.r = null; + target.d = target.l ? target.l.d + 1 : 1; + } + const rightWasCutOff = !target.r; + if (left && !target.l) { + mergeRanges(target, left); + } + if (right && rightWasCutOff) { + mergeRanges(target, right); + } +} +function mergeRanges(target, newSet) { + function _addRangeSet(target, { from, to, l, r }) { + addRange(target, from, to); + if (l) + _addRangeSet(target, l); + if (r) + _addRangeSet(target, r); + } + if (!isEmptyRange(newSet)) + _addRangeSet(target, newSet); +} +function rangesOverlap(rangeSet1, rangeSet2) { + const i1 = getRangeSetIterator(rangeSet2); + let nextResult1 = i1.next(); + if (nextResult1.done) + return false; + let a = nextResult1.value; + const i2 = getRangeSetIterator(rangeSet1); + let nextResult2 = i2.next(a.from); + let b = nextResult2.value; + while (!nextResult1.done && !nextResult2.done) { + if (cmp(b.from, a.to) <= 0 && cmp(b.to, a.from) >= 0) + return true; + cmp(a.from, b.from) < 0 + ? (a = (nextResult1 = i1.next(b.from)).value) + : (b = (nextResult2 = i2.next(a.from)).value); + } + return false; +} +function getRangeSetIterator(node) { + let state = isEmptyRange(node) ? null : { s: 0, n: node }; + return { + next(key) { + const keyProvided = arguments.length > 0; + while (state) { + switch (state.s) { + case 0: + state.s = 1; + if (keyProvided) { + while (state.n.l && cmp(key, state.n.from) < 0) + state = { up: state, n: state.n.l, s: 1 }; + } + else { + while (state.n.l) + state = { up: state, n: state.n.l, s: 1 }; + } + case 1: + state.s = 2; + if (!keyProvided || cmp(key, state.n.to) <= 0) + return { value: state.n, done: false }; + case 2: + if (state.n.r) { + state.s = 3; + state = { up: state, n: state.n.r, s: 0 }; + continue; + } + case 3: + state = state.up; + } + } + return { done: true }; + }, + }; +} +function rebalance(target) { + var _a, _b; + const diff = (((_a = target.r) === null || _a === void 0 ? void 0 : _a.d) || 0) - (((_b = target.l) === null || _b === void 0 ? void 0 : _b.d) || 0); + const r = diff > 1 ? "r" : diff < -1 ? "l" : ""; + if (r) { + const l = r === "r" ? "l" : "r"; + const rootClone = { ...target }; + const oldRootRight = target[r]; + target.from = oldRootRight.from; + target.to = oldRootRight.to; + target[r] = oldRootRight[r]; + rootClone[r] = oldRootRight[l]; + target[l] = rootClone; + rootClone.d = computeDepth(rootClone); + } + target.d = computeDepth(target); +} +function computeDepth({ r, l }) { + return (r ? (l ? Math.max(r.d, l.d) : r.d) : l ? l.d : 0) + 1; +} + +const observabilityMiddleware = { + stack: "dbcore", + level: 0, + create: (core) => { + const dbName = core.schema.name; + const FULL_RANGE = new RangeSet(core.MIN_KEY, core.MAX_KEY); + return { + ...core, + table: (tableName) => { + const table = core.table(tableName); + const { schema } = table; + const { primaryKey } = schema; + const { extractKey, outbound } = primaryKey; + const tableClone = { + ...table, + mutate: (req) => { + const trans = req.trans; + const mutatedParts = trans.mutatedParts || (trans.mutatedParts = {}); + const getRangeSet = (indexName) => { + const part = `idb://${dbName}/${tableName}/${indexName}`; + return (mutatedParts[part] || + (mutatedParts[part] = new RangeSet())); + }; + const pkRangeSet = getRangeSet(""); + const delsRangeSet = getRangeSet(":dels"); + const { type } = req; + let [keys, newObjs] = req.type === "deleteRange" + ? [req.range] + : req.type === "delete" + ? [req.keys] + : req.values.length < 50 + ? [[], req.values] + : []; + const oldCache = req.trans["_cache"]; + return table.mutate(req).then((res) => { + if (isArray(keys)) { + if (type !== "delete") + keys = res.results; + pkRangeSet.addKeys(keys); + const oldObjs = getFromTransactionCache(keys, oldCache); + if (!oldObjs && type !== "add") { + delsRangeSet.addKeys(keys); + } + if (oldObjs || newObjs) { + trackAffectedIndexes(getRangeSet, schema, oldObjs, newObjs); + } + } + else if (keys) { + const range = { from: keys.lower, to: keys.upper }; + delsRangeSet.add(range); + pkRangeSet.add(range); + } + else { + pkRangeSet.add(FULL_RANGE); + delsRangeSet.add(FULL_RANGE); + schema.indexes.forEach(idx => getRangeSet(idx.name).add(FULL_RANGE)); + } + return res; + }); + }, + }; + const getRange = ({ query: { index, range }, }) => { + var _a, _b; + return [ + index, + new RangeSet((_a = range.lower) !== null && _a !== void 0 ? _a : core.MIN_KEY, (_b = range.upper) !== null && _b !== void 0 ? _b : core.MAX_KEY), + ]; + }; + const readSubscribers = { + get: (req) => [primaryKey, new RangeSet(req.key)], + getMany: (req) => [primaryKey, new RangeSet().addKeys(req.keys)], + count: getRange, + query: getRange, + openCursor: getRange, + }; + keys(readSubscribers).forEach(method => { + tableClone[method] = function (req) { + const { subscr } = PSD; + if (subscr) { + const getRangeSet = (indexName) => { + const part = `idb://${dbName}/${tableName}/${indexName}`; + return (subscr[part] || + (subscr[part] = new RangeSet())); + }; + const pkRangeSet = getRangeSet(""); + const delsRangeSet = getRangeSet(":dels"); + const [queriedIndex, queriedRanges] = readSubscribers[method](req); + getRangeSet(queriedIndex.name || "").add(queriedRanges); + if (!queriedIndex.isPrimaryKey) { + if (method === "count") { + delsRangeSet.add(FULL_RANGE); + } + else { + const keysPromise = method === "query" && + outbound && + req.values && + table.query({ + ...req, + values: false, + }); + return table[method].apply(this, arguments).then((res) => { + if (method === "query") { + if (outbound && req.values) { + return keysPromise.then(({ result: resultingKeys }) => { + pkRangeSet.addKeys(resultingKeys); + return res; + }); + } + const pKeys = req.values + ? res.result.map(extractKey) + : res.result; + if (req.values) { + pkRangeSet.addKeys(pKeys); + } + else { + delsRangeSet.addKeys(pKeys); + } + } + else if (method === "openCursor") { + const cursor = res; + const wantValues = req.values; + return (cursor && + Object.create(cursor, { + key: { + get() { + delsRangeSet.addKey(cursor.primaryKey); + return cursor.key; + }, + }, + primaryKey: { + get() { + const pkey = cursor.primaryKey; + delsRangeSet.addKey(pkey); + return pkey; + }, + }, + value: { + get() { + wantValues && pkRangeSet.addKey(cursor.primaryKey); + return cursor.value; + }, + }, + })); + } + return res; + }); + } + } + } + return table[method].apply(this, arguments); + }; + }); + return tableClone; + }, + }; + }, +}; +function trackAffectedIndexes(getRangeSet, schema, oldObjs, newObjs) { + function addAffectedIndex(ix) { + const rangeSet = getRangeSet(ix.name || ""); + function extractKey(obj) { + return obj != null ? ix.extractKey(obj) : null; + } + const addKeyOrKeys = (key) => ix.multiEntry && isArray(key) + ? key.forEach(key => rangeSet.addKey(key)) + : rangeSet.addKey(key); + (oldObjs || newObjs).forEach((_, i) => { + const oldKey = oldObjs && extractKey(oldObjs[i]); + const newKey = newObjs && extractKey(newObjs[i]); + if (cmp(oldKey, newKey) !== 0) { + if (oldKey != null) + addKeyOrKeys(oldKey); + if (newKey != null) + addKeyOrKeys(newKey); + } + }); + } + schema.indexes.forEach(addAffectedIndex); +} + +class Dexie$1 { + constructor(name, options) { + this._middlewares = {}; + this.verno = 0; + const deps = Dexie$1.dependencies; + this._options = options = { + addons: Dexie$1.addons, + autoOpen: true, + indexedDB: deps.indexedDB, + IDBKeyRange: deps.IDBKeyRange, + ...options + }; + this._deps = { + indexedDB: options.indexedDB, + IDBKeyRange: options.IDBKeyRange + }; + const { addons, } = options; + this._dbSchema = {}; + this._versions = []; + this._storeNames = []; + this._allTables = {}; + this.idbdb = null; + this._novip = this; + const state = { + dbOpenError: null, + isBeingOpened: false, + onReadyBeingFired: null, + openComplete: false, + dbReadyResolve: nop, + dbReadyPromise: null, + cancelOpen: nop, + openCanceller: null, + autoSchema: true, + PR1398_maxLoop: 3 + }; + state.dbReadyPromise = new DexiePromise(resolve => { + state.dbReadyResolve = resolve; + }); + state.openCanceller = new DexiePromise((_, reject) => { + state.cancelOpen = reject; + }); + this._state = state; + this.name = name; + this.on = Events(this, "populate", "blocked", "versionchange", "close", { ready: [promisableChain, nop] }); + this.on.ready.subscribe = override(this.on.ready.subscribe, subscribe => { + return (subscriber, bSticky) => { + Dexie$1.vip(() => { + const state = this._state; + if (state.openComplete) { + if (!state.dbOpenError) + DexiePromise.resolve().then(subscriber); + if (bSticky) + subscribe(subscriber); + } + else if (state.onReadyBeingFired) { + state.onReadyBeingFired.push(subscriber); + if (bSticky) + subscribe(subscriber); + } + else { + subscribe(subscriber); + const db = this; + if (!bSticky) + subscribe(function unsubscribe() { + db.on.ready.unsubscribe(subscriber); + db.on.ready.unsubscribe(unsubscribe); + }); + } + }); + }; + }); + this.Collection = createCollectionConstructor(this); + this.Table = createTableConstructor(this); + this.Transaction = createTransactionConstructor(this); + this.Version = createVersionConstructor(this); + this.WhereClause = createWhereClauseConstructor(this); + this.on("versionchange", ev => { + if (ev.newVersion > 0) + console.warn(`Another connection wants to upgrade database '${this.name}'. Closing db now to resume the upgrade.`); + else + console.warn(`Another connection wants to delete database '${this.name}'. Closing db now to resume the delete request.`); + this.close(); + }); + this.on("blocked", ev => { + if (!ev.newVersion || ev.newVersion < ev.oldVersion) + console.warn(`Dexie.delete('${this.name}') was blocked`); + else + console.warn(`Upgrade '${this.name}' blocked by other connection holding version ${ev.oldVersion / 10}`); + }); + this._maxKey = getMaxKey(options.IDBKeyRange); + this._createTransaction = (mode, storeNames, dbschema, parentTransaction) => new this.Transaction(mode, storeNames, dbschema, this._options.chromeTransactionDurability, parentTransaction); + this._fireOnBlocked = ev => { + this.on("blocked").fire(ev); + connections + .filter(c => c.name === this.name && c !== this && !c._state.vcFired) + .map(c => c.on("versionchange").fire(ev)); + }; + this.use(virtualIndexMiddleware); + this.use(hooksMiddleware); + this.use(observabilityMiddleware); + this.use(cacheExistingValuesMiddleware); + this.vip = Object.create(this, { _vip: { value: true } }); + addons.forEach(addon => addon(this)); + } + version(versionNumber) { + if (isNaN(versionNumber) || versionNumber < 0.1) + throw new exceptions.Type(`Given version is not a positive number`); + versionNumber = Math.round(versionNumber * 10) / 10; + if (this.idbdb || this._state.isBeingOpened) + throw new exceptions.Schema("Cannot add version when database is open"); + this.verno = Math.max(this.verno, versionNumber); + const versions = this._versions; + var versionInstance = versions.filter(v => v._cfg.version === versionNumber)[0]; + if (versionInstance) + return versionInstance; + versionInstance = new this.Version(versionNumber); + versions.push(versionInstance); + versions.sort(lowerVersionFirst); + versionInstance.stores({}); + this._state.autoSchema = false; + return versionInstance; + } + _whenReady(fn) { + return (this.idbdb && (this._state.openComplete || PSD.letThrough || this._vip)) ? fn() : new DexiePromise((resolve, reject) => { + if (this._state.openComplete) { + return reject(new exceptions.DatabaseClosed(this._state.dbOpenError)); + } + if (!this._state.isBeingOpened) { + if (!this._options.autoOpen) { + reject(new exceptions.DatabaseClosed()); + return; + } + this.open().catch(nop); + } + this._state.dbReadyPromise.then(resolve, reject); + }).then(fn); + } + use({ stack, create, level, name }) { + if (name) + this.unuse({ stack, name }); + const middlewares = this._middlewares[stack] || (this._middlewares[stack] = []); + middlewares.push({ stack, create, level: level == null ? 10 : level, name }); + middlewares.sort((a, b) => a.level - b.level); + return this; + } + unuse({ stack, name, create }) { + if (stack && this._middlewares[stack]) { + this._middlewares[stack] = this._middlewares[stack].filter(mw => create ? mw.create !== create : + name ? mw.name !== name : + false); + } + return this; + } + open() { + return dexieOpen(this); + } + _close() { + const state = this._state; + const idx = connections.indexOf(this); + if (idx >= 0) + connections.splice(idx, 1); + if (this.idbdb) { + try { + this.idbdb.close(); + } + catch (e) { } + this._novip.idbdb = null; + } + state.dbReadyPromise = new DexiePromise(resolve => { + state.dbReadyResolve = resolve; + }); + state.openCanceller = new DexiePromise((_, reject) => { + state.cancelOpen = reject; + }); + } + close() { + this._close(); + const state = this._state; + this._options.autoOpen = false; + state.dbOpenError = new exceptions.DatabaseClosed(); + if (state.isBeingOpened) + state.cancelOpen(state.dbOpenError); + } + delete() { + const hasArguments = arguments.length > 0; + const state = this._state; + return new DexiePromise((resolve, reject) => { + const doDelete = () => { + this.close(); + var req = this._deps.indexedDB.deleteDatabase(this.name); + req.onsuccess = wrap(() => { + _onDatabaseDeleted(this._deps, this.name); + resolve(); + }); + req.onerror = eventRejectHandler(reject); + req.onblocked = this._fireOnBlocked; + }; + if (hasArguments) + throw new exceptions.InvalidArgument("Arguments not allowed in db.delete()"); + if (state.isBeingOpened) { + state.dbReadyPromise.then(doDelete); + } + else { + doDelete(); + } + }); + } + backendDB() { + return this.idbdb; + } + isOpen() { + return this.idbdb !== null; + } + hasBeenClosed() { + const dbOpenError = this._state.dbOpenError; + return dbOpenError && (dbOpenError.name === 'DatabaseClosed'); + } + hasFailed() { + return this._state.dbOpenError !== null; + } + dynamicallyOpened() { + return this._state.autoSchema; + } + get tables() { + return keys(this._allTables).map(name => this._allTables[name]); + } + transaction() { + const args = extractTransactionArgs.apply(this, arguments); + return this._transaction.apply(this, args); + } + _transaction(mode, tables, scopeFunc) { + let parentTransaction = PSD.trans; + if (!parentTransaction || parentTransaction.db !== this || mode.indexOf('!') !== -1) + parentTransaction = null; + const onlyIfCompatible = mode.indexOf('?') !== -1; + mode = mode.replace('!', '').replace('?', ''); + let idbMode, storeNames; + try { + storeNames = tables.map(table => { + var storeName = table instanceof this.Table ? table.name : table; + if (typeof storeName !== 'string') + throw new TypeError("Invalid table argument to Dexie.transaction(). Only Table or String are allowed"); + return storeName; + }); + if (mode == "r" || mode === READONLY) + idbMode = READONLY; + else if (mode == "rw" || mode == READWRITE) + idbMode = READWRITE; + else + throw new exceptions.InvalidArgument("Invalid transaction mode: " + mode); + if (parentTransaction) { + if (parentTransaction.mode === READONLY && idbMode === READWRITE) { + if (onlyIfCompatible) { + parentTransaction = null; + } + else + throw new exceptions.SubTransaction("Cannot enter a sub-transaction with READWRITE mode when parent transaction is READONLY"); + } + if (parentTransaction) { + storeNames.forEach(storeName => { + if (parentTransaction && parentTransaction.storeNames.indexOf(storeName) === -1) { + if (onlyIfCompatible) { + parentTransaction = null; + } + else + throw new exceptions.SubTransaction("Table " + storeName + + " not included in parent transaction."); + } + }); + } + if (onlyIfCompatible && parentTransaction && !parentTransaction.active) { + parentTransaction = null; + } + } + } + catch (e) { + return parentTransaction ? + parentTransaction._promise(null, (_, reject) => { reject(e); }) : + rejection(e); + } + const enterTransaction = enterTransactionScope.bind(null, this, idbMode, storeNames, parentTransaction, scopeFunc); + return (parentTransaction ? + parentTransaction._promise(idbMode, enterTransaction, "lock") : + PSD.trans ? + usePSD(PSD.transless, () => this._whenReady(enterTransaction)) : + this._whenReady(enterTransaction)); + } + table(tableName) { + if (!hasOwn(this._allTables, tableName)) { + throw new exceptions.InvalidTable(`Table ${tableName} does not exist`); + } + return this._allTables[tableName]; + } +} + +const symbolObservable = typeof Symbol !== "undefined" && "observable" in Symbol + ? Symbol.observable + : "@@observable"; +class Observable { + constructor(subscribe) { + this._subscribe = subscribe; + } + subscribe(x, error, complete) { + return this._subscribe(!x || typeof x === "function" ? { next: x, error, complete } : x); + } + [symbolObservable]() { + return this; + } +} + +function extendObservabilitySet(target, newSet) { + keys(newSet).forEach(part => { + const rangeSet = target[part] || (target[part] = new RangeSet()); + mergeRanges(rangeSet, newSet[part]); + }); + return target; +} + +function liveQuery(querier) { + let hasValue = false; + let currentValue = undefined; + const observable = new Observable((observer) => { + const scopeFuncIsAsync = isAsyncFunction(querier); + function execute(subscr) { + if (scopeFuncIsAsync) { + incrementExpectedAwaits(); + } + const exec = () => newScope(querier, { subscr, trans: null }); + const rv = PSD.trans + ? + usePSD(PSD.transless, exec) + : exec(); + if (scopeFuncIsAsync) { + rv.then(decrementExpectedAwaits, decrementExpectedAwaits); + } + return rv; + } + let closed = false; + let accumMuts = {}; + let currentObs = {}; + const subscription = { + get closed() { + return closed; + }, + unsubscribe: () => { + closed = true; + globalEvents.storagemutated.unsubscribe(mutationListener); + }, + }; + observer.start && observer.start(subscription); + let querying = false, startedListening = false; + function shouldNotify() { + return keys(currentObs).some((key) => accumMuts[key] && rangesOverlap(accumMuts[key], currentObs[key])); + } + const mutationListener = (parts) => { + extendObservabilitySet(accumMuts, parts); + if (shouldNotify()) { + doQuery(); + } + }; + const doQuery = () => { + if (querying || closed) + return; + accumMuts = {}; + const subscr = {}; + const ret = execute(subscr); + if (!startedListening) { + globalEvents(DEXIE_STORAGE_MUTATED_EVENT_NAME, mutationListener); + startedListening = true; + } + querying = true; + Promise.resolve(ret).then((result) => { + hasValue = true; + currentValue = result; + querying = false; + if (closed) + return; + if (shouldNotify()) { + doQuery(); + } + else { + accumMuts = {}; + currentObs = subscr; + observer.next && observer.next(result); + } + }, (err) => { + querying = false; + hasValue = false; + observer.error && observer.error(err); + subscription.unsubscribe(); + }); + }; + doQuery(); + return subscription; + }); + observable.hasValue = () => hasValue; + observable.getValue = () => currentValue; + return observable; +} + +let domDeps; +try { + domDeps = { + indexedDB: _global.indexedDB || _global.mozIndexedDB || _global.webkitIndexedDB || _global.msIndexedDB, + IDBKeyRange: _global.IDBKeyRange || _global.webkitIDBKeyRange + }; +} +catch (e) { + domDeps = { indexedDB: null, IDBKeyRange: null }; +} + +const Dexie = Dexie$1; +props(Dexie, { + ...fullNameExceptions, + delete(databaseName) { + const db = new Dexie(databaseName, { addons: [] }); + return db.delete(); + }, + exists(name) { + return new Dexie(name, { addons: [] }).open().then(db => { + db.close(); + return true; + }).catch('NoSuchDatabaseError', () => false); + }, + getDatabaseNames(cb) { + try { + return getDatabaseNames(Dexie.dependencies).then(cb); + } + catch (_a) { + return rejection(new exceptions.MissingAPI()); + } + }, + defineClass() { + function Class(content) { + extend(this, content); + } + return Class; + }, + ignoreTransaction(scopeFunc) { + return PSD.trans ? + usePSD(PSD.transless, scopeFunc) : + scopeFunc(); + }, + vip, + async: function (generatorFn) { + return function () { + try { + var rv = awaitIterator(generatorFn.apply(this, arguments)); + if (!rv || typeof rv.then !== 'function') + return DexiePromise.resolve(rv); + return rv; + } + catch (e) { + return rejection(e); + } + }; + }, + spawn: function (generatorFn, args, thiz) { + try { + var rv = awaitIterator(generatorFn.apply(thiz, args || [])); + if (!rv || typeof rv.then !== 'function') + return DexiePromise.resolve(rv); + return rv; + } + catch (e) { + return rejection(e); + } + }, + currentTransaction: { + get: () => PSD.trans || null + }, + waitFor: function (promiseOrFunction, optionalTimeout) { + const promise = DexiePromise.resolve(typeof promiseOrFunction === 'function' ? + Dexie.ignoreTransaction(promiseOrFunction) : + promiseOrFunction) + .timeout(optionalTimeout || 60000); + return PSD.trans ? + PSD.trans.waitFor(promise) : + promise; + }, + Promise: DexiePromise, + debug: { + get: () => debug, + set: value => { + setDebug(value, value === 'dexie' ? () => true : dexieStackFrameFilter); + } + }, + derive: derive, + extend: extend, + props: props, + override: override, + Events: Events, + on: globalEvents, + liveQuery, + extendObservabilitySet, + getByKeyPath: getByKeyPath, + setByKeyPath: setByKeyPath, + delByKeyPath: delByKeyPath, + shallowClone: shallowClone, + deepClone: deepClone, + getObjectDiff: getObjectDiff, + cmp, + asap: asap$1, + minKey: minKey, + addons: [], + connections: connections, + errnames: errnames, + dependencies: domDeps, + semVer: DEXIE_VERSION, + version: DEXIE_VERSION.split('.') + .map(n => parseInt(n)) + .reduce((p, c, i) => p + (c / Math.pow(10, i * 2))), +}); +Dexie.maxKey = getMaxKey(Dexie.dependencies.IDBKeyRange); + +if (typeof dispatchEvent !== 'undefined' && typeof addEventListener !== 'undefined') { + globalEvents(DEXIE_STORAGE_MUTATED_EVENT_NAME, updatedParts => { + if (!propagatingLocally) { + let event; + if (isIEOrEdge) { + event = document.createEvent('CustomEvent'); + event.initCustomEvent(STORAGE_MUTATED_DOM_EVENT_NAME, true, true, updatedParts); + } + else { + event = new CustomEvent(STORAGE_MUTATED_DOM_EVENT_NAME, { + detail: updatedParts + }); + } + propagatingLocally = true; + dispatchEvent(event); + propagatingLocally = false; + } + }); + addEventListener(STORAGE_MUTATED_DOM_EVENT_NAME, ({ detail }) => { + if (!propagatingLocally) { + propagateLocally(detail); + } + }); +} +function propagateLocally(updateParts) { + let wasMe = propagatingLocally; + try { + propagatingLocally = true; + globalEvents.storagemutated.fire(updateParts); + } + finally { + propagatingLocally = wasMe; + } +} +let propagatingLocally = false; + +if (typeof BroadcastChannel !== 'undefined') { + const bc = new BroadcastChannel(STORAGE_MUTATED_DOM_EVENT_NAME); + if (typeof bc.unref === 'function') { + bc.unref(); + } + globalEvents(DEXIE_STORAGE_MUTATED_EVENT_NAME, (changedParts) => { + if (!propagatingLocally) { + bc.postMessage(changedParts); + } + }); + bc.onmessage = (ev) => { + if (ev.data) + propagateLocally(ev.data); + }; +} +else if (typeof self !== 'undefined' && typeof navigator !== 'undefined') { + globalEvents(DEXIE_STORAGE_MUTATED_EVENT_NAME, (changedParts) => { + try { + if (!propagatingLocally) { + if (typeof localStorage !== 'undefined') { + localStorage.setItem(STORAGE_MUTATED_DOM_EVENT_NAME, JSON.stringify({ + trig: Math.random(), + changedParts, + })); + } + if (typeof self['clients'] === 'object') { + [...self['clients'].matchAll({ includeUncontrolled: true })].forEach((client) => client.postMessage({ + type: STORAGE_MUTATED_DOM_EVENT_NAME, + changedParts, + })); + } + } + } + catch (_a) { } + }); + if (typeof addEventListener !== 'undefined') { + addEventListener('storage', (ev) => { + if (ev.key === STORAGE_MUTATED_DOM_EVENT_NAME) { + const data = JSON.parse(ev.newValue); + if (data) + propagateLocally(data.changedParts); + } + }); + } + const swContainer = self.document && navigator.serviceWorker; + if (swContainer) { + swContainer.addEventListener('message', propagateMessageLocally); + } +} +function propagateMessageLocally({ data }) { + if (data && data.type === STORAGE_MUTATED_DOM_EVENT_NAME) { + propagateLocally(data.changedParts); + } +} + +DexiePromise.rejectionMapper = mapError; +setDebug(debug, dexieStackFrameFilter); + +class ModelDatabase extends Dexie$1 { + constructor() { + super("ModelDatabase"); + this.version(2).stores({ + models: "id, file", + }); + } +} + +// TODO: Implement UI elements (this is probably just for 3d scans) +/** + * A tool to cache files using the browser's IndexedDB API. This might + * save loading time and infrastructure costs for files that need to be + * fetched from the cloud. + */ +class LocalCacher extends Component { + /** The IDs of all the stored files. */ + get ids() { + const serialized = localStorage.getItem(this._storedModels) || "[]"; + return JSON.parse(serialized); + } + constructor(components) { + super(components); + /** Fires when a file has been loaded from cache. */ + this.onFileLoaded = new Event(); + /** Fires when a file has been saved into cache. */ + this.onItemSaved = new Event(); + /** {@link Component.enabled} */ + this.enabled = true; + /** {@link UI.uiElement} */ + this.uiElement = new UIElement(); + this.cards = []; + this._storedModels = "open-bim-components-stored-files"; + components.tools.add(LocalCacher.uuid, this); + this._db = new ModelDatabase(); + if (components.ui.enabled) { + this.setUI(components); + } + } + /** + * {@link Component.get}. + * @param id the ID of the file to fetch. + */ + async get(id) { + if (this.exists(id)) { + await this._db.open(); + const result = await this.getModelFromLocalCache(id); + this._db.close(); + return result; + } + return null; + } + /** + * Saves the file with the given ID. + * @param id the ID to assign to the file. + * @param url the URL where the file is located. + */ + async save(id, url) { + this.addStoredID(id); + const rawData = await fetch(url); + const file = await rawData.blob(); + await this._db.open(); + await this._db.models.add({ + id, + file, + }); + this._db.close(); + } + /** + * Checks if there's a file stored with the given ID. + * @param id to check. + */ + exists(id) { + const stored = localStorage.getItem(id); + return stored !== null; + } + /** + * Deletes the files stored in the given ids. + * @param ids the identifiers of the files to delete. + */ + async delete(ids) { + await this._db.open(); + for (const id of ids) { + if (this.exists(id)) { + this.removeStoredID(id); + await this._db.models.where("id").equals(id).delete(); + } + } + this._db.close(); + } + /** Deletes all the stored files. */ + async deleteAll() { + await this._db.open(); + this.clearStoredIDs(); + await this._db.delete(); + this._db = new ModelDatabase(); + this._db.close(); + } + /** {@link Disposable.dispose} */ + async dispose() { + this.onFileLoaded.reset(); + this.onItemSaved.reset(); + for (const card of this.cards) { + await card.dispose(); + } + this.cards = []; + await this.uiElement.dispose(); + this._db = null; + } + setUI(components) { + const main = new Button(components); + main.materialIcon = "storage"; + main.tooltip = "Local cacher"; + const saveButton = new Button(components); + saveButton.label = "Save"; + saveButton.materialIcon = "save"; + const loadButton = new Button(components); + loadButton.label = "Download"; + loadButton.materialIcon = "download"; + main.addChild(saveButton, loadButton); + const floatingMenu = new FloatingWindow(components, "file-list-menu"); + this.uiElement.set({ main, loadButton, saveButton, floatingMenu }); + floatingMenu.title = "Saved Files"; + floatingMenu.visible = false; + const savedFilesMenuHTML = floatingMenu.get(); + savedFilesMenuHTML.style.left = "70px"; + savedFilesMenuHTML.style.top = "100px"; + savedFilesMenuHTML.style.width = "340px"; + savedFilesMenuHTML.style.height = "400px"; + const renderer = this.components.renderer.get(); + const viewerContainer = renderer.domElement.parentElement; + viewerContainer.appendChild(floatingMenu.get()); + } + async getModelFromLocalCache(id) { + const found = await this._db.models.where("id").equals(id).toArray(); + return found[0].file; + } + clearStoredIDs() { + const ids = this.ids; + for (const id of ids) { + this.removeStoredID(id); + } + } + removeStoredID(id) { + localStorage.removeItem(id); + const allIDs = this.ids; + const ids = allIDs.filter((savedId) => savedId !== id); + this.setStoredIDs(ids); + } + addStoredID(id) { + const time = performance.now().toString(); + localStorage.setItem(id, time); + const ids = this.ids; + ids.push(id); + this.setStoredIDs(ids); + } + setStoredIDs(ids) { + localStorage.setItem(this._storedModels, JSON.stringify(ids)); + } +} +LocalCacher.uuid = "22ae591a-3a67-4988-86c6-68d7b83febf2"; +ToolComponent.libraryUUIDs.add(LocalCacher.uuid); + +const _lut = [ '00', '01', '02', '03', '04', '05', '06', '07', '08', '09', '0a', '0b', '0c', '0d', '0e', '0f', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '1a', '1b', '1c', '1d', '1e', '1f', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '2a', '2b', '2c', '2d', '2e', '2f', '30', '31', '32', '33', '34', '35', '36', '37', '38', '39', '3a', '3b', '3c', '3d', '3e', '3f', '40', '41', '42', '43', '44', '45', '46', '47', '48', '49', '4a', '4b', '4c', '4d', '4e', '4f', '50', '51', '52', '53', '54', '55', '56', '57', '58', '59', '5a', '5b', '5c', '5d', '5e', '5f', '60', '61', '62', '63', '64', '65', '66', '67', '68', '69', '6a', '6b', '6c', '6d', '6e', '6f', '70', '71', '72', '73', '74', '75', '76', '77', '78', '79', '7a', '7b', '7c', '7d', '7e', '7f', '80', '81', '82', '83', '84', '85', '86', '87', '88', '89', '8a', '8b', '8c', '8d', '8e', '8f', '90', '91', '92', '93', '94', '95', '96', '97', '98', '99', '9a', '9b', '9c', '9d', '9e', '9f', 'a0', 'a1', 'a2', 'a3', 'a4', 'a5', 'a6', 'a7', 'a8', 'a9', 'aa', 'ab', 'ac', 'ad', 'ae', 'af', 'b0', 'b1', 'b2', 'b3', 'b4', 'b5', 'b6', 'b7', 'b8', 'b9', 'ba', 'bb', 'bc', 'bd', 'be', 'bf', 'c0', 'c1', 'c2', 'c3', 'c4', 'c5', 'c6', 'c7', 'c8', 'c9', 'ca', 'cb', 'cc', 'cd', 'ce', 'cf', 'd0', 'd1', 'd2', 'd3', 'd4', 'd5', 'd6', 'd7', 'd8', 'd9', 'da', 'db', 'dc', 'dd', 'de', 'df', 'e0', 'e1', 'e2', 'e3', 'e4', 'e5', 'e6', 'e7', 'e8', 'e9', 'ea', 'eb', 'ec', 'ed', 'ee', 'ef', 'f0', 'f1', 'f2', 'f3', 'f4', 'f5', 'f6', 'f7', 'f8', 'f9', 'fa', 'fb', 'fc', 'fd', 'fe', 'ff' ]; + +// http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/21963136#21963136 +function generateUUID() { + + const d0 = Math.random() * 0xffffffff | 0; + const d1 = Math.random() * 0xffffffff | 0; + const d2 = Math.random() * 0xffffffff | 0; + const d3 = Math.random() * 0xffffffff | 0; + const uuid = _lut[ d0 & 0xff ] + _lut[ d0 >> 8 & 0xff ] + _lut[ d0 >> 16 & 0xff ] + _lut[ d0 >> 24 & 0xff ] + '-' + + _lut[ d1 & 0xff ] + _lut[ d1 >> 8 & 0xff ] + '-' + _lut[ d1 >> 16 & 0x0f | 0x40 ] + _lut[ d1 >> 24 & 0xff ] + '-' + + _lut[ d2 & 0x3f | 0x80 ] + _lut[ d2 >> 8 & 0xff ] + '-' + _lut[ d2 >> 16 & 0xff ] + _lut[ d2 >> 24 & 0xff ] + + _lut[ d3 & 0xff ] + _lut[ d3 >> 8 & 0xff ] + _lut[ d3 >> 16 & 0xff ] + _lut[ d3 >> 24 & 0xff ]; + + // .toLowerCase() here flattens concatenated strings to save heap memory space. + return uuid.toLowerCase(); + +} + +function clamp( value, min, max ) { + + return Math.max( min, Math.min( max, value ) ); + +} + +function denormalize( value, array ) { + + switch ( array.constructor ) { + + case Float32Array: + + return value; + + case Uint16Array: + + return value / 65535.0; + + case Uint8Array: + + return value / 255.0; + + case Int16Array: + + return Math.max( value / 32767.0, - 1.0 ); + + case Int8Array: + + return Math.max( value / 127.0, - 1.0 ); + + default: + + throw new Error( 'Invalid component type.' ); + + } + +} + +function normalize( value, array ) { + + switch ( array.constructor ) { + + case Float32Array: + + return value; + + case Uint16Array: + + return Math.round( value * 65535.0 ); + + case Uint8Array: + + return Math.round( value * 255.0 ); + + case Int16Array: + + return Math.round( value * 32767.0 ); + + case Int8Array: + + return Math.round( value * 127.0 ); + + default: + + throw new Error( 'Invalid component type.' ); + + } + +} + +class SimpleSVGViewport extends Component { + get enabled() { + return this._enabled; + } + set enabled(value) { + this._enabled = value; + this.resize(); + this._undoList = []; + this.uiElement.get("toolbar").visible = value; + if (value) { + this._viewport.classList.remove("pointer-events-none"); + } + else { + this.clear(); + this.uiElement.get("settingsWindow").visible = false; + this._viewport.classList.add("pointer-events-none"); + } + } + set config(value) { + this._config = { ...this._config, ...value }; + } + get config() { + return this._config; + } + constructor(components, config) { + super(components); + this.uiElement = new UIElement(); + this.id = generateUUID().toLowerCase(); + this._enabled = false; + this._viewport = document.createElementNS("http://www.w3.org/2000/svg", "svg"); + this._size = new Vector2$1(); + this._undoList = []; + this.onResize = () => { + this.resize(); + }; + const defaultConfig = { + fillColor: "transparent", + strokeColor: "#ff0000", + strokeWidth: 4, + }; + this.config = { ...defaultConfig, ...(config !== null && config !== void 0 ? config : {}) }; + this._viewport.classList.add("absolute", "top-0", "right-0"); + // this._viewport.setAttribute("preserveAspectRatio", "xMidYMid") + this._viewport.setAttribute("width", "100%"); + this._viewport.setAttribute("height", "100%"); + // const renderer = this._components.renderer; + // const rendererSize = renderer.getSize(); + // const width = rendererSize.x + // const height = rendererSize.y + // this._viewport.setAttribute("viewBox", `0 0 ${width} ${height}`); + this.setUI(); + this.enabled = false; + this.components.ui.viewerContainer.append(this._viewport); + this.setupEvents(true); + } + async dispose() { + this._undoList = []; + this.uiElement.dispose(); + } + get() { + return this._viewport; + } + clear() { + const viewport = this.get(); + this._undoList = []; + while (viewport.firstChild) { + viewport.removeChild(viewport.firstChild); + } + } + getDrawing() { + return this.get().childNodes; + } + // setDrawing() { + // if (!this.enabled) { } + // } + /** {@link Resizeable.resize}. */ + resize() { + const renderer = this.components.renderer; + const rendererSize = renderer.getSize(); + const width = this.enabled ? rendererSize.x : 0; + const height = this.enabled ? rendererSize.y : 0; + this._size.set(width, height); + // this._viewport.setAttribute("viewBox", `0 0 ${this._size.x} ${this._size.y}`); + } + /** {@link Resizeable.getSize}. */ + getSize() { + return this._size; + } + setupEvents(active) { + if (active) { + window.addEventListener("resize", this.onResize); + } + else { + window.removeEventListener("resize", this.onResize); + } + } + setUI() { + var _a, _b; + const undoDrawingBtn = new Button(this.components, { + materialIconName: "undo", + }); + undoDrawingBtn.onClick.add(() => { + if (this._viewport.lastChild) { + this._undoList.push(this._viewport.lastChild); + this._viewport.lastChild.remove(); + } + }); + const redoDrawingBtn = new Button(this.components, { + materialIconName: "redo", + }); + redoDrawingBtn.onClick.add(() => { + const childNode = this._undoList[this._undoList.length - 1]; + if (childNode) { + this._undoList.pop(); + this._viewport.append(childNode); + } + }); + const clearDrawingBtn = new Button(this.components, { + materialIconName: "delete", + }); + clearDrawingBtn.onClick.add(() => this.clear()); + // #region Settings window + const settingsWindow = new FloatingWindow(this.components, this.id); + settingsWindow.title = "Drawing Settings"; + settingsWindow.visible = false; + const viewerContainer = this.components.renderer.get().domElement + .parentElement; + viewerContainer.append(settingsWindow.get()); + const strokeWidth = new RangeInput(this.components); + strokeWidth.label = "Stroke Width"; + strokeWidth.min = 2; + strokeWidth.max = 6; + strokeWidth.value = 4; + // strokeWidth.id = this.id; + strokeWidth.onChange.add((value) => { + // @ts-ignore + this.config = { strokeWidth: value }; + }); + const strokeColorInput = new ColorInput(this.components); + strokeColorInput.label = "Stroke Color"; + strokeColorInput.value = (_a = this.config.strokeColor) !== null && _a !== void 0 ? _a : "#BCF124"; + // strokeColorInput.name = "stroke-color"; + // strokeColorInput.id = this.id; + strokeColorInput.onChange.add((value) => { + this.config = { strokeColor: value }; + }); + const fillColorInput = new ColorInput(this.components); + strokeColorInput.label = "Fill Color"; + strokeColorInput.value = (_b = this.config.fillColor) !== null && _b !== void 0 ? _b : "#BCF124"; + // strokeColorInput.name = "fill-color"; + // strokeColorInput.id = this.id; + fillColorInput.onChange.add((value) => { + this.config = { fillColor: value }; + }); + settingsWindow.addChild(strokeColorInput, fillColorInput, strokeWidth); + const settingsBtn = new Button(this.components, { + materialIconName: "settings", + }); + settingsBtn.onClick.add(() => { + settingsWindow.visible = !settingsWindow.visible; + settingsBtn.active = settingsWindow.visible; + }); + settingsWindow.onHidden.add(() => (settingsBtn.active = false)); + const toolbar = new Toolbar(this.components, { position: "right" }); + toolbar.addChild(settingsBtn, undoDrawingBtn, redoDrawingBtn, clearDrawingBtn); + this.uiElement.set({ toolbar, settingsWindow }); + } +} + +// TODO: Clean up and document +// TODO: Disable / enable instance color for instance meshes +/** + * A tool to easily handle the materials of massive amounts of + * objects and scene background easily. + */ +class MaterialManager extends Component { + constructor(components) { + super(components); + /** {@link Component.enabled} */ + this.enabled = true; + this._originalBackground = null; + this._originals = {}; + this._list = {}; + this.components.tools.add(MaterialManager.uuid, this); + } + /** + * {@link Component.get}. + * @return list of created materials. + */ + get() { + return Object.keys(this._list); + } + /** + * Turns the specified material styles on or off. + * + * @param active whether to turn it on or off. + * @param ids the ids of the style to turn on or off. + */ + set(active, ids = Object.keys(this._list)) { + for (const id of ids) { + const { material, meshes } = this._list[id]; + for (const mesh of meshes) { + if (active) { + if (!this._originals[mesh.uuid]) { + this._originals[mesh.uuid] = { material: mesh.material }; + } + if (mesh instanceof THREE$1.InstancedMesh && mesh.instanceColor) { + this._originals[mesh.uuid].instances = mesh.instanceColor; + mesh.instanceColor = null; + } + mesh.material = material; + } + else { + if (!this._originals[mesh.uuid]) + continue; + mesh.material = this._originals[mesh.uuid].material; + const instances = this._originals[mesh.uuid].instances; + if (mesh instanceof THREE$1.InstancedMesh && instances) { + mesh.instanceColor = instances; + } + } + } + } + } + /** {@link Disposable.dispose} */ + async dispose() { + for (const id in this._list) { + const { material } = this._list[id]; + material.dispose(); + } + this._list = {}; + this._originals = {}; + } + /** + * Sets the color of the background of the scene. + * + * @param color: the color to apply. + */ + setBackgroundColor(color) { + const scene = this.components.scene.get(); + if (!this._originalBackground) { + this._originalBackground = scene.background; + } + if (this._originalBackground) { + scene.background = color; + } + } + /** + * Resets the scene background to the color that was being used + * before applying the material manager. + */ + resetBackgroundColor() { + const scene = this.components.scene.get(); + if (this._originalBackground) { + scene.background = this._originalBackground; + } + } + /** + * Creates a new material style. + * @param id the identifier of the style to create. + * @param material the material of the style. + */ + addMaterial(id, material) { + if (this._list[id]) { + throw new Error("This ID already exists!"); + } + this._list[id] = { material, meshes: new Set() }; + } + /** + * Assign meshes to a certain style. + * @param id the identifier of the style. + * @param meshes the meshes to assign to the style. + */ + addMeshes(id, meshes) { + if (!this._list[id]) { + throw new Error("This ID doesn't exists!"); + } + for (const mesh of meshes) { + this._list[id].meshes.add(mesh); + } + } +} +MaterialManager.uuid = "24989d27-fa2f-4797-8b08-35918f74e502"; +ToolComponent.libraryUUIDs.add(MaterialManager.uuid); + +// OrbitControls performs orbiting, dollying (zooming), and panning. +// Unlike TrackballControls, it maintains the "up" direction object.up (+Y by default). +// +// Orbit - left mouse / touch: one-finger move +// Zoom - middle mouse, or mousewheel / touch: two-finger spread or squish +// Pan - right mouse, or left mouse + ctrl/meta/shiftKey, or arrow keys / touch: two-finger move + +const _changeEvent = { type: 'change' }; +const _startEvent = { type: 'start' }; +const _endEvent = { type: 'end' }; + +class OrbitControls extends EventDispatcher$1 { + + constructor( object, domElement ) { + + super(); + + this.object = object; + this.domElement = domElement; + this.domElement.style.touchAction = 'none'; // disable touch scroll + + // Set to false to disable this control + this.enabled = true; + + // "target" sets the location of focus, where the object orbits around + this.target = new Vector3$1(); + + // How far you can dolly in and out ( PerspectiveCamera only ) + this.minDistance = 0; + this.maxDistance = Infinity; + + // How far you can zoom in and out ( OrthographicCamera only ) + this.minZoom = 0; + this.maxZoom = Infinity; + + // How far you can orbit vertically, upper and lower limits. + // Range is 0 to Math.PI radians. + this.minPolarAngle = 0; // radians + this.maxPolarAngle = Math.PI; // radians + + // How far you can orbit horizontally, upper and lower limits. + // If set, the interval [ min, max ] must be a sub-interval of [ - 2 PI, 2 PI ], with ( max - min < 2 PI ) + this.minAzimuthAngle = - Infinity; // radians + this.maxAzimuthAngle = Infinity; // radians + + // Set to true to enable damping (inertia) + // If damping is enabled, you must call controls.update() in your animation loop + this.enableDamping = false; + this.dampingFactor = 0.05; + + // This option actually enables dollying in and out; left as "zoom" for backwards compatibility. + // Set to false to disable zooming + this.enableZoom = true; + this.zoomSpeed = 1.0; + + // Set to false to disable rotating + this.enableRotate = true; + this.rotateSpeed = 1.0; + + // Set to false to disable panning + this.enablePan = true; + this.panSpeed = 1.0; + this.screenSpacePanning = true; // if false, pan orthogonal to world-space direction camera.up + this.keyPanSpeed = 7.0; // pixels moved per arrow key push + + // Set to true to automatically rotate around the target + // If auto-rotate is enabled, you must call controls.update() in your animation loop + this.autoRotate = false; + this.autoRotateSpeed = 2.0; // 30 seconds per orbit when fps is 60 + + // The four arrow keys + this.keys = { LEFT: 'ArrowLeft', UP: 'ArrowUp', RIGHT: 'ArrowRight', BOTTOM: 'ArrowDown' }; + + // Mouse buttons + this.mouseButtons = { LEFT: MOUSE.ROTATE, MIDDLE: MOUSE.DOLLY, RIGHT: MOUSE.PAN }; + + // Touch fingers + this.touches = { ONE: TOUCH.ROTATE, TWO: TOUCH.DOLLY_PAN }; + + // for reset + this.target0 = this.target.clone(); + this.position0 = this.object.position.clone(); + this.zoom0 = this.object.zoom; + + // the target DOM element for key events + this._domElementKeyEvents = null; + + // + // public methods + // + + this.getPolarAngle = function () { + + return spherical.phi; + + }; + + this.getAzimuthalAngle = function () { + + return spherical.theta; + + }; + + this.getDistance = function () { + + return this.object.position.distanceTo( this.target ); + + }; + + this.listenToKeyEvents = function ( domElement ) { + + domElement.addEventListener( 'keydown', onKeyDown ); + this._domElementKeyEvents = domElement; + + }; + + this.stopListenToKeyEvents = function () { + + this._domElementKeyEvents.removeEventListener( 'keydown', onKeyDown ); + this._domElementKeyEvents = null; + + }; + + this.saveState = function () { + + scope.target0.copy( scope.target ); + scope.position0.copy( scope.object.position ); + scope.zoom0 = scope.object.zoom; + + }; + + this.reset = function () { + + scope.target.copy( scope.target0 ); + scope.object.position.copy( scope.position0 ); + scope.object.zoom = scope.zoom0; + + scope.object.updateProjectionMatrix(); + scope.dispatchEvent( _changeEvent ); + + scope.update(); + + state = STATE.NONE; + + }; + + // this method is exposed, but perhaps it would be better if we can make it private... + this.update = function () { + + const offset = new Vector3$1(); + + // so camera.up is the orbit axis + const quat = new Quaternion$1().setFromUnitVectors( object.up, new Vector3$1( 0, 1, 0 ) ); + const quatInverse = quat.clone().invert(); + + const lastPosition = new Vector3$1(); + const lastQuaternion = new Quaternion$1(); + + const twoPI = 2 * Math.PI; + + return function update() { + + const position = scope.object.position; + + offset.copy( position ).sub( scope.target ); + + // rotate offset to "y-axis-is-up" space + offset.applyQuaternion( quat ); + + // angle from z-axis around y-axis + spherical.setFromVector3( offset ); + + if ( scope.autoRotate && state === STATE.NONE ) { + + rotateLeft( getAutoRotationAngle() ); + + } + + if ( scope.enableDamping ) { + + spherical.theta += sphericalDelta.theta * scope.dampingFactor; + spherical.phi += sphericalDelta.phi * scope.dampingFactor; + + } else { + + spherical.theta += sphericalDelta.theta; + spherical.phi += sphericalDelta.phi; + + } + + // restrict theta to be between desired limits + + let min = scope.minAzimuthAngle; + let max = scope.maxAzimuthAngle; + + if ( isFinite( min ) && isFinite( max ) ) { + + if ( min < - Math.PI ) min += twoPI; else if ( min > Math.PI ) min -= twoPI; + + if ( max < - Math.PI ) max += twoPI; else if ( max > Math.PI ) max -= twoPI; + + if ( min <= max ) { + + spherical.theta = Math.max( min, Math.min( max, spherical.theta ) ); + + } else { + + spherical.theta = ( spherical.theta > ( min + max ) / 2 ) ? + Math.max( min, spherical.theta ) : + Math.min( max, spherical.theta ); + + } + + } + + // restrict phi to be between desired limits + spherical.phi = Math.max( scope.minPolarAngle, Math.min( scope.maxPolarAngle, spherical.phi ) ); + + spherical.makeSafe(); + + + spherical.radius *= scale; + + // restrict radius to be between desired limits + spherical.radius = Math.max( scope.minDistance, Math.min( scope.maxDistance, spherical.radius ) ); + + // move target to panned location + + if ( scope.enableDamping === true ) { + + scope.target.addScaledVector( panOffset, scope.dampingFactor ); + + } else { + + scope.target.add( panOffset ); + + } + + offset.setFromSpherical( spherical ); + + // rotate offset back to "camera-up-vector-is-up" space + offset.applyQuaternion( quatInverse ); + + position.copy( scope.target ).add( offset ); + + scope.object.lookAt( scope.target ); + + if ( scope.enableDamping === true ) { + + sphericalDelta.theta *= ( 1 - scope.dampingFactor ); + sphericalDelta.phi *= ( 1 - scope.dampingFactor ); + + panOffset.multiplyScalar( 1 - scope.dampingFactor ); + + } else { + + sphericalDelta.set( 0, 0, 0 ); + + panOffset.set( 0, 0, 0 ); + + } + + scale = 1; + + // update condition is: + // min(camera displacement, camera rotation in radians)^2 > EPS + // using small-angle approximation cos(x/2) = 1 - x^2 / 8 + + if ( zoomChanged || + lastPosition.distanceToSquared( scope.object.position ) > EPS || + 8 * ( 1 - lastQuaternion.dot( scope.object.quaternion ) ) > EPS ) { + + scope.dispatchEvent( _changeEvent ); + + lastPosition.copy( scope.object.position ); + lastQuaternion.copy( scope.object.quaternion ); + zoomChanged = false; + + return true; + + } + + return false; + + }; + + }(); + + this.dispose = function () { + + scope.domElement.removeEventListener( 'contextmenu', onContextMenu ); + + scope.domElement.removeEventListener( 'pointerdown', onPointerDown ); + scope.domElement.removeEventListener( 'pointercancel', onPointerUp ); + scope.domElement.removeEventListener( 'wheel', onMouseWheel ); + + scope.domElement.removeEventListener( 'pointermove', onPointerMove ); + scope.domElement.removeEventListener( 'pointerup', onPointerUp ); + + + if ( scope._domElementKeyEvents !== null ) { + + scope._domElementKeyEvents.removeEventListener( 'keydown', onKeyDown ); + scope._domElementKeyEvents = null; + + } + + //scope.dispatchEvent( { type: 'dispose' } ); // should this be added here? + + }; + + // + // internals + // + + const scope = this; + + const STATE = { + NONE: - 1, + ROTATE: 0, + DOLLY: 1, + PAN: 2, + TOUCH_ROTATE: 3, + TOUCH_PAN: 4, + TOUCH_DOLLY_PAN: 5, + TOUCH_DOLLY_ROTATE: 6 + }; + + let state = STATE.NONE; + + const EPS = 0.000001; + + // current position in spherical coordinates + const spherical = new Spherical(); + const sphericalDelta = new Spherical(); + + let scale = 1; + const panOffset = new Vector3$1(); + let zoomChanged = false; + + const rotateStart = new Vector2$1(); + const rotateEnd = new Vector2$1(); + const rotateDelta = new Vector2$1(); + + const panStart = new Vector2$1(); + const panEnd = new Vector2$1(); + const panDelta = new Vector2$1(); + + const dollyStart = new Vector2$1(); + const dollyEnd = new Vector2$1(); + const dollyDelta = new Vector2$1(); + + const pointers = []; + const pointerPositions = {}; + + function getAutoRotationAngle() { + + return 2 * Math.PI / 60 / 60 * scope.autoRotateSpeed; + + } + + function getZoomScale() { + + return Math.pow( 0.95, scope.zoomSpeed ); + + } + + function rotateLeft( angle ) { + + sphericalDelta.theta -= angle; + + } + + function rotateUp( angle ) { + + sphericalDelta.phi -= angle; + + } + + const panLeft = function () { + + const v = new Vector3$1(); + + return function panLeft( distance, objectMatrix ) { + + v.setFromMatrixColumn( objectMatrix, 0 ); // get X column of objectMatrix + v.multiplyScalar( - distance ); + + panOffset.add( v ); + + }; + + }(); + + const panUp = function () { + + const v = new Vector3$1(); + + return function panUp( distance, objectMatrix ) { + + if ( scope.screenSpacePanning === true ) { + + v.setFromMatrixColumn( objectMatrix, 1 ); + + } else { + + v.setFromMatrixColumn( objectMatrix, 0 ); + v.crossVectors( scope.object.up, v ); + + } + + v.multiplyScalar( distance ); + + panOffset.add( v ); + + }; + + }(); + + // deltaX and deltaY are in pixels; right and down are positive + const pan = function () { + + const offset = new Vector3$1(); + + return function pan( deltaX, deltaY ) { + + const element = scope.domElement; + + if ( scope.object.isPerspectiveCamera ) { + + // perspective + const position = scope.object.position; + offset.copy( position ).sub( scope.target ); + let targetDistance = offset.length(); + + // half of the fov is center to top of screen + targetDistance *= Math.tan( ( scope.object.fov / 2 ) * Math.PI / 180.0 ); + + // we use only clientHeight here so aspect ratio does not distort speed + panLeft( 2 * deltaX * targetDistance / element.clientHeight, scope.object.matrix ); + panUp( 2 * deltaY * targetDistance / element.clientHeight, scope.object.matrix ); + + } else if ( scope.object.isOrthographicCamera ) { + + // orthographic + panLeft( deltaX * ( scope.object.right - scope.object.left ) / scope.object.zoom / element.clientWidth, scope.object.matrix ); + panUp( deltaY * ( scope.object.top - scope.object.bottom ) / scope.object.zoom / element.clientHeight, scope.object.matrix ); + + } else { + + // camera neither orthographic nor perspective + console.warn( 'WARNING: OrbitControls.js encountered an unknown camera type - pan disabled.' ); + scope.enablePan = false; + + } + + }; + + }(); + + function dollyOut( dollyScale ) { + + if ( scope.object.isPerspectiveCamera ) { + + scale /= dollyScale; + + } else if ( scope.object.isOrthographicCamera ) { + + scope.object.zoom = Math.max( scope.minZoom, Math.min( scope.maxZoom, scope.object.zoom * dollyScale ) ); + scope.object.updateProjectionMatrix(); + zoomChanged = true; + + } else { + + console.warn( 'WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled.' ); + scope.enableZoom = false; + + } + + } + + function dollyIn( dollyScale ) { + + if ( scope.object.isPerspectiveCamera ) { + + scale *= dollyScale; + + } else if ( scope.object.isOrthographicCamera ) { + + scope.object.zoom = Math.max( scope.minZoom, Math.min( scope.maxZoom, scope.object.zoom / dollyScale ) ); + scope.object.updateProjectionMatrix(); + zoomChanged = true; + + } else { + + console.warn( 'WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled.' ); + scope.enableZoom = false; + + } + + } + + // + // event callbacks - update the object state + // + + function handleMouseDownRotate( event ) { + + rotateStart.set( event.clientX, event.clientY ); + + } + + function handleMouseDownDolly( event ) { + + dollyStart.set( event.clientX, event.clientY ); + + } + + function handleMouseDownPan( event ) { + + panStart.set( event.clientX, event.clientY ); + + } + + function handleMouseMoveRotate( event ) { + + rotateEnd.set( event.clientX, event.clientY ); + + rotateDelta.subVectors( rotateEnd, rotateStart ).multiplyScalar( scope.rotateSpeed ); + + const element = scope.domElement; + + rotateLeft( 2 * Math.PI * rotateDelta.x / element.clientHeight ); // yes, height + + rotateUp( 2 * Math.PI * rotateDelta.y / element.clientHeight ); + + rotateStart.copy( rotateEnd ); + + scope.update(); + + } + + function handleMouseMoveDolly( event ) { + + dollyEnd.set( event.clientX, event.clientY ); + + dollyDelta.subVectors( dollyEnd, dollyStart ); + + if ( dollyDelta.y > 0 ) { + + dollyOut( getZoomScale() ); + + } else if ( dollyDelta.y < 0 ) { + + dollyIn( getZoomScale() ); + + } + + dollyStart.copy( dollyEnd ); + + scope.update(); + + } + + function handleMouseMovePan( event ) { + + panEnd.set( event.clientX, event.clientY ); + + panDelta.subVectors( panEnd, panStart ).multiplyScalar( scope.panSpeed ); + + pan( panDelta.x, panDelta.y ); + + panStart.copy( panEnd ); + + scope.update(); + + } + + function handleMouseWheel( event ) { + + if ( event.deltaY < 0 ) { + + dollyIn( getZoomScale() ); + + } else if ( event.deltaY > 0 ) { + + dollyOut( getZoomScale() ); + + } + + scope.update(); + + } + + function handleKeyDown( event ) { + + let needsUpdate = false; + + switch ( event.code ) { + + case scope.keys.UP: + + if ( event.ctrlKey || event.metaKey || event.shiftKey ) { + + rotateUp( 2 * Math.PI * scope.rotateSpeed / scope.domElement.clientHeight ); + + } else { + + pan( 0, scope.keyPanSpeed ); + + } + + needsUpdate = true; + break; + + case scope.keys.BOTTOM: + + if ( event.ctrlKey || event.metaKey || event.shiftKey ) { + + rotateUp( - 2 * Math.PI * scope.rotateSpeed / scope.domElement.clientHeight ); + + } else { + + pan( 0, - scope.keyPanSpeed ); + + } + + needsUpdate = true; + break; + + case scope.keys.LEFT: + + if ( event.ctrlKey || event.metaKey || event.shiftKey ) { + + rotateLeft( 2 * Math.PI * scope.rotateSpeed / scope.domElement.clientHeight ); + + } else { + + pan( scope.keyPanSpeed, 0 ); + + } + + needsUpdate = true; + break; + + case scope.keys.RIGHT: + + if ( event.ctrlKey || event.metaKey || event.shiftKey ) { + + rotateLeft( - 2 * Math.PI * scope.rotateSpeed / scope.domElement.clientHeight ); + + } else { + + pan( - scope.keyPanSpeed, 0 ); + + } + + needsUpdate = true; + break; + + } + + if ( needsUpdate ) { + + // prevent the browser from scrolling on cursor keys + event.preventDefault(); + + scope.update(); + + } + + + } + + function handleTouchStartRotate() { + + if ( pointers.length === 1 ) { + + rotateStart.set( pointers[ 0 ].pageX, pointers[ 0 ].pageY ); + + } else { + + const x = 0.5 * ( pointers[ 0 ].pageX + pointers[ 1 ].pageX ); + const y = 0.5 * ( pointers[ 0 ].pageY + pointers[ 1 ].pageY ); + + rotateStart.set( x, y ); + + } + + } + + function handleTouchStartPan() { + + if ( pointers.length === 1 ) { + + panStart.set( pointers[ 0 ].pageX, pointers[ 0 ].pageY ); + + } else { + + const x = 0.5 * ( pointers[ 0 ].pageX + pointers[ 1 ].pageX ); + const y = 0.5 * ( pointers[ 0 ].pageY + pointers[ 1 ].pageY ); + + panStart.set( x, y ); + + } + + } + + function handleTouchStartDolly() { + + const dx = pointers[ 0 ].pageX - pointers[ 1 ].pageX; + const dy = pointers[ 0 ].pageY - pointers[ 1 ].pageY; + + const distance = Math.sqrt( dx * dx + dy * dy ); + + dollyStart.set( 0, distance ); + + } + + function handleTouchStartDollyPan() { + + if ( scope.enableZoom ) handleTouchStartDolly(); + + if ( scope.enablePan ) handleTouchStartPan(); + + } + + function handleTouchStartDollyRotate() { + + if ( scope.enableZoom ) handleTouchStartDolly(); + + if ( scope.enableRotate ) handleTouchStartRotate(); + + } + + function handleTouchMoveRotate( event ) { + + if ( pointers.length == 1 ) { + + rotateEnd.set( event.pageX, event.pageY ); + + } else { + + const position = getSecondPointerPosition( event ); + + const x = 0.5 * ( event.pageX + position.x ); + const y = 0.5 * ( event.pageY + position.y ); + + rotateEnd.set( x, y ); + + } + + rotateDelta.subVectors( rotateEnd, rotateStart ).multiplyScalar( scope.rotateSpeed ); + + const element = scope.domElement; + + rotateLeft( 2 * Math.PI * rotateDelta.x / element.clientHeight ); // yes, height + + rotateUp( 2 * Math.PI * rotateDelta.y / element.clientHeight ); + + rotateStart.copy( rotateEnd ); + + } + + function handleTouchMovePan( event ) { + + if ( pointers.length === 1 ) { + + panEnd.set( event.pageX, event.pageY ); + + } else { + + const position = getSecondPointerPosition( event ); + + const x = 0.5 * ( event.pageX + position.x ); + const y = 0.5 * ( event.pageY + position.y ); + + panEnd.set( x, y ); + + } + + panDelta.subVectors( panEnd, panStart ).multiplyScalar( scope.panSpeed ); + + pan( panDelta.x, panDelta.y ); + + panStart.copy( panEnd ); + + } + + function handleTouchMoveDolly( event ) { + + const position = getSecondPointerPosition( event ); + + const dx = event.pageX - position.x; + const dy = event.pageY - position.y; + + const distance = Math.sqrt( dx * dx + dy * dy ); + + dollyEnd.set( 0, distance ); + + dollyDelta.set( 0, Math.pow( dollyEnd.y / dollyStart.y, scope.zoomSpeed ) ); + + dollyOut( dollyDelta.y ); + + dollyStart.copy( dollyEnd ); + + } + + function handleTouchMoveDollyPan( event ) { + + if ( scope.enableZoom ) handleTouchMoveDolly( event ); + + if ( scope.enablePan ) handleTouchMovePan( event ); + + } + + function handleTouchMoveDollyRotate( event ) { + + if ( scope.enableZoom ) handleTouchMoveDolly( event ); + + if ( scope.enableRotate ) handleTouchMoveRotate( event ); + + } + + // + // event handlers - FSM: listen for events and reset state + // + + function onPointerDown( event ) { + + if ( scope.enabled === false ) return; + + if ( pointers.length === 0 ) { + + scope.domElement.setPointerCapture( event.pointerId ); + + scope.domElement.addEventListener( 'pointermove', onPointerMove ); + scope.domElement.addEventListener( 'pointerup', onPointerUp ); + + } + + // + + addPointer( event ); + + if ( event.pointerType === 'touch' ) { + + onTouchStart( event ); + + } else { + + onMouseDown( event ); + + } + + } + + function onPointerMove( event ) { + + if ( scope.enabled === false ) return; + + if ( event.pointerType === 'touch' ) { + + onTouchMove( event ); + + } else { + + onMouseMove( event ); + + } + + } + + function onPointerUp( event ) { + + removePointer( event ); + + if ( pointers.length === 0 ) { + + scope.domElement.releasePointerCapture( event.pointerId ); + + scope.domElement.removeEventListener( 'pointermove', onPointerMove ); + scope.domElement.removeEventListener( 'pointerup', onPointerUp ); + + } + + scope.dispatchEvent( _endEvent ); + + state = STATE.NONE; + + } + + function onMouseDown( event ) { + + let mouseAction; + + switch ( event.button ) { + + case 0: + + mouseAction = scope.mouseButtons.LEFT; + break; + + case 1: + + mouseAction = scope.mouseButtons.MIDDLE; + break; + + case 2: + + mouseAction = scope.mouseButtons.RIGHT; + break; + + default: + + mouseAction = - 1; + + } + + switch ( mouseAction ) { + + case MOUSE.DOLLY: + + if ( scope.enableZoom === false ) return; + + handleMouseDownDolly( event ); + + state = STATE.DOLLY; + + break; + + case MOUSE.ROTATE: + + if ( event.ctrlKey || event.metaKey || event.shiftKey ) { + + if ( scope.enablePan === false ) return; + + handleMouseDownPan( event ); + + state = STATE.PAN; + + } else { + + if ( scope.enableRotate === false ) return; + + handleMouseDownRotate( event ); + + state = STATE.ROTATE; + + } + + break; + + case MOUSE.PAN: + + if ( event.ctrlKey || event.metaKey || event.shiftKey ) { + + if ( scope.enableRotate === false ) return; + + handleMouseDownRotate( event ); + + state = STATE.ROTATE; + + } else { + + if ( scope.enablePan === false ) return; + + handleMouseDownPan( event ); + + state = STATE.PAN; + + } + + break; + + default: + + state = STATE.NONE; + + } + + if ( state !== STATE.NONE ) { + + scope.dispatchEvent( _startEvent ); + + } + + } + + function onMouseMove( event ) { + + switch ( state ) { + + case STATE.ROTATE: + + if ( scope.enableRotate === false ) return; + + handleMouseMoveRotate( event ); + + break; + + case STATE.DOLLY: + + if ( scope.enableZoom === false ) return; + + handleMouseMoveDolly( event ); + + break; + + case STATE.PAN: + + if ( scope.enablePan === false ) return; + + handleMouseMovePan( event ); + + break; + + } + + } + + function onMouseWheel( event ) { + + if ( scope.enabled === false || scope.enableZoom === false || state !== STATE.NONE ) return; + + event.preventDefault(); + + scope.dispatchEvent( _startEvent ); + + handleMouseWheel( event ); + + scope.dispatchEvent( _endEvent ); + + } + + function onKeyDown( event ) { + + if ( scope.enabled === false || scope.enablePan === false ) return; + + handleKeyDown( event ); + + } + + function onTouchStart( event ) { + + trackPointer( event ); + + switch ( pointers.length ) { + + case 1: + + switch ( scope.touches.ONE ) { + + case TOUCH.ROTATE: + + if ( scope.enableRotate === false ) return; + + handleTouchStartRotate(); + + state = STATE.TOUCH_ROTATE; + + break; + + case TOUCH.PAN: + + if ( scope.enablePan === false ) return; + + handleTouchStartPan(); + + state = STATE.TOUCH_PAN; + + break; + + default: + + state = STATE.NONE; + + } + + break; + + case 2: + + switch ( scope.touches.TWO ) { + + case TOUCH.DOLLY_PAN: + + if ( scope.enableZoom === false && scope.enablePan === false ) return; + + handleTouchStartDollyPan(); + + state = STATE.TOUCH_DOLLY_PAN; + + break; + + case TOUCH.DOLLY_ROTATE: + + if ( scope.enableZoom === false && scope.enableRotate === false ) return; + + handleTouchStartDollyRotate(); + + state = STATE.TOUCH_DOLLY_ROTATE; + + break; + + default: + + state = STATE.NONE; + + } + + break; + + default: + + state = STATE.NONE; + + } + + if ( state !== STATE.NONE ) { + + scope.dispatchEvent( _startEvent ); + + } + + } + + function onTouchMove( event ) { + + trackPointer( event ); + + switch ( state ) { + + case STATE.TOUCH_ROTATE: + + if ( scope.enableRotate === false ) return; + + handleTouchMoveRotate( event ); + + scope.update(); + + break; + + case STATE.TOUCH_PAN: + + if ( scope.enablePan === false ) return; + + handleTouchMovePan( event ); + + scope.update(); + + break; + + case STATE.TOUCH_DOLLY_PAN: + + if ( scope.enableZoom === false && scope.enablePan === false ) return; + + handleTouchMoveDollyPan( event ); + + scope.update(); + + break; + + case STATE.TOUCH_DOLLY_ROTATE: + + if ( scope.enableZoom === false && scope.enableRotate === false ) return; + + handleTouchMoveDollyRotate( event ); + + scope.update(); + + break; + + default: + + state = STATE.NONE; + + } + + } + + function onContextMenu( event ) { + + if ( scope.enabled === false ) return; + + event.preventDefault(); + + } + + function addPointer( event ) { + + pointers.push( event ); + + } + + function removePointer( event ) { + + delete pointerPositions[ event.pointerId ]; + + for ( let i = 0; i < pointers.length; i ++ ) { + + if ( pointers[ i ].pointerId == event.pointerId ) { + + pointers.splice( i, 1 ); + return; + + } + + } + + } + + function trackPointer( event ) { + + let position = pointerPositions[ event.pointerId ]; + + if ( position === undefined ) { + + position = new Vector2$1(); + pointerPositions[ event.pointerId ] = position; + + } + + position.set( event.pageX, event.pageY ); + + } + + function getSecondPointerPosition( event ) { + + const pointer = ( event.pointerId === pointers[ 0 ].pointerId ) ? pointers[ 1 ] : pointers[ 0 ]; + + return pointerPositions[ pointer.pointerId ]; + + } + + // + + scope.domElement.addEventListener( 'contextmenu', onContextMenu ); + + scope.domElement.addEventListener( 'pointerdown', onPointerDown ); + scope.domElement.addEventListener( 'pointercancel', onPointerUp ); + scope.domElement.addEventListener( 'wheel', onMouseWheel, { passive: false } ); + + // force an update at start + + this.update(); + + } + +} + +// TODO: Decouple from floating window so it can be used anywhere (eg. on drawers) +/** + * A simple floating 2D scene that you can use to easily draw 2D graphics + * with all the power of Three.js. + */ +class Simple2DScene extends Component { + constructor(components) { + super(components); + /** {@link Updateable.onAfterUpdate} */ + this.onAfterUpdate = new Event(); + /** {@link Updateable.onBeforeUpdate} */ + this.onBeforeUpdate = new Event(); + /** {@link Resizeable.onResize} */ + this.onResize = new Event(); + /** {@link Component.enabled} */ + this.enabled = true; + /** {@link UI.uiElement} */ + this.uiElement = new UIElement(); + this._frustumSize = 50; + /** {@link Resizeable.resize} */ + this.resize = () => { + const parent = this.uiElement.get("canvas").parent; + if (!parent) + return; + const { clientWidth, clientHeight } = parent.domElement; + this._size.width = clientWidth; + this._size.height = clientHeight; + const { width, height } = this._size; + const aspect = width / height; + this._camera.left = (-this._frustumSize * aspect) / 2; + this._camera.right = (this._frustumSize * aspect) / 2; + this._camera.top = this._frustumSize / 2; + this._camera.bottom = -this._frustumSize / 2; + this._camera.updateProjectionMatrix(); + this._camera.updateProjectionMatrix(); + this._renderer.setSize(this._size.width, this._size.height); + }; + if (!components.ui.enabled) { + throw new Error("The Simple2DScene component needs to use UI elements (TODO: Decouple from them)."); + } + const canvas = new Canvas(components); + canvas.domElement.classList.remove("absolute"); + const mainWindow = new FloatingWindow(components); + components.ui.add(mainWindow); + mainWindow.visible = false; + mainWindow.domElement.style.height = "20rem"; + mainWindow.addChild(canvas); + const main = new Button(components); + main.materialIcon = "fact_check"; + main.tooltip = "2D scene"; + main.onClick.add(() => { + mainWindow.visible = !mainWindow.visible; + }); + this.uiElement.set({ mainWindow, main, canvas }); + this._scene = new THREE$1.Scene(); + this._size = { + width: mainWindow.domElement.clientWidth, + height: mainWindow.domElement.clientHeight, + }; + const { width, height } = this._size; + // Creates the camera (point of view of the user) + this._camera = new THREE$1.OrthographicCamera(75, width / height); + this._camera.position.z = 10; + this._renderer = new THREE$1.WebGLRenderer({ canvas: canvas.get() }); + this._renderer.setSize(width, height); + this._renderer.setPixelRatio(Math.min(window.devicePixelRatio, 2)); + // Creates the orbit controls (to navigate the scene) + this.controls = new OrbitControls(this._camera, this._renderer.domElement); + this.controls.target.set(0, 0, 0); + this.controls.enableRotate = false; + this.controls.enableZoom = true; + const parent = this.uiElement.get("canvas").parent; + if (parent) { + parent.domElement.classList.remove("p-4"); + parent.domElement.classList.remove("overflow-auto"); + parent.domElement.classList.add("overflow-hidden"); + parent.domElement.classList.add("h-full"); + } + mainWindow.onResized.add(this.resize); + mainWindow.domElement.style.width = "20rem"; + mainWindow.domElement.style.height = "20rem"; + } + /** + * {@link Component.get} + * @returns the 2D scene. + */ + get() { + return this._scene; + } + /** {@link Disposable.dispose} */ + async dispose() { + this._renderer.dispose(); + await this.uiElement.dispose(); + } + /** {@link Updateable.update} */ + async update() { + await this.onBeforeUpdate.trigger(); + this.controls.update(); + this._renderer.render(this._scene, this._camera); + await this.onAfterUpdate.trigger(); + } + /** {@link Resizeable.getSize} */ + getSize() { + return new THREE$1.Vector2(this._size.width, this._size.height); + } +} +Simple2DScene.uuid = "b48b7194-0f9a-43a4-a718-270b1522595f"; + +/** + * @param {Array} geometries + * @param {Boolean} useGroups + * @return {BufferGeometry} + */ +function mergeGeometries( geometries, useGroups = false ) { + + const isIndexed = geometries[ 0 ].index !== null; + + const attributesUsed = new Set( Object.keys( geometries[ 0 ].attributes ) ); + const morphAttributesUsed = new Set( Object.keys( geometries[ 0 ].morphAttributes ) ); + + const attributes = {}; + const morphAttributes = {}; + + const morphTargetsRelative = geometries[ 0 ].morphTargetsRelative; + + const mergedGeometry = new BufferGeometry(); + + let offset = 0; + + for ( let i = 0; i < geometries.length; ++ i ) { + + const geometry = geometries[ i ]; + let attributesCount = 0; + + // ensure that all geometries are indexed, or none + + if ( isIndexed !== ( geometry.index !== null ) ) { + + console.error( 'THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index ' + i + '. All geometries must have compatible attributes; make sure index attribute exists among all geometries, or in none of them.' ); + return null; + + } + + // gather attributes, exit early if they're different + + for ( const name in geometry.attributes ) { + + if ( ! attributesUsed.has( name ) ) { + + console.error( 'THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index ' + i + '. All geometries must have compatible attributes; make sure "' + name + '" attribute exists among all geometries, or in none of them.' ); + return null; + + } + + if ( attributes[ name ] === undefined ) attributes[ name ] = []; + + attributes[ name ].push( geometry.attributes[ name ] ); + + attributesCount ++; + + } + + // ensure geometries have the same number of attributes + + if ( attributesCount !== attributesUsed.size ) { + + console.error( 'THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index ' + i + '. Make sure all geometries have the same number of attributes.' ); + return null; + + } + + // gather morph attributes, exit early if they're different + + if ( morphTargetsRelative !== geometry.morphTargetsRelative ) { + + console.error( 'THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index ' + i + '. .morphTargetsRelative must be consistent throughout all geometries.' ); + return null; + + } + + for ( const name in geometry.morphAttributes ) { + + if ( ! morphAttributesUsed.has( name ) ) { + + console.error( 'THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index ' + i + '. .morphAttributes must be consistent throughout all geometries.' ); + return null; + + } + + if ( morphAttributes[ name ] === undefined ) morphAttributes[ name ] = []; + + morphAttributes[ name ].push( geometry.morphAttributes[ name ] ); + + } + + if ( useGroups ) { + + let count; + + if ( isIndexed ) { + + count = geometry.index.count; + + } else if ( geometry.attributes.position !== undefined ) { + + count = geometry.attributes.position.count; + + } else { + + console.error( 'THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index ' + i + '. The geometry must have either an index or a position attribute' ); + return null; + + } + + mergedGeometry.addGroup( offset, count, i ); + + offset += count; + + } + + } + + // merge indices + + if ( isIndexed ) { + + let indexOffset = 0; + const mergedIndex = []; + + for ( let i = 0; i < geometries.length; ++ i ) { + + const index = geometries[ i ].index; + + for ( let j = 0; j < index.count; ++ j ) { + + mergedIndex.push( index.getX( j ) + indexOffset ); + + } + + indexOffset += geometries[ i ].attributes.position.count; + + } + + mergedGeometry.setIndex( mergedIndex ); + + } + + // merge attributes + + for ( const name in attributes ) { + + const mergedAttribute = mergeAttributes( attributes[ name ] ); + + if ( ! mergedAttribute ) { + + console.error( 'THREE.BufferGeometryUtils: .mergeGeometries() failed while trying to merge the ' + name + ' attribute.' ); + return null; + + } + + mergedGeometry.setAttribute( name, mergedAttribute ); + + } + + // merge morph attributes + + for ( const name in morphAttributes ) { + + const numMorphTargets = morphAttributes[ name ][ 0 ].length; + + if ( numMorphTargets === 0 ) break; + + mergedGeometry.morphAttributes = mergedGeometry.morphAttributes || {}; + mergedGeometry.morphAttributes[ name ] = []; + + for ( let i = 0; i < numMorphTargets; ++ i ) { + + const morphAttributesToMerge = []; + + for ( let j = 0; j < morphAttributes[ name ].length; ++ j ) { + + morphAttributesToMerge.push( morphAttributes[ name ][ j ][ i ] ); + + } + + const mergedMorphAttribute = mergeAttributes( morphAttributesToMerge ); + + if ( ! mergedMorphAttribute ) { + + console.error( 'THREE.BufferGeometryUtils: .mergeGeometries() failed while trying to merge the ' + name + ' morphAttribute.' ); + return null; + + } + + mergedGeometry.morphAttributes[ name ].push( mergedMorphAttribute ); + + } + + } + + return mergedGeometry; + +} + +/** + * @param {Array} attributes + * @return {BufferAttribute} + */ +function mergeAttributes( attributes ) { + + let TypedArray; + let itemSize; + let normalized; + let arrayLength = 0; + + for ( let i = 0; i < attributes.length; ++ i ) { + + const attribute = attributes[ i ]; + + if ( attribute.isInterleavedBufferAttribute ) { + + console.error( 'THREE.BufferGeometryUtils: .mergeAttributes() failed. InterleavedBufferAttributes are not supported.' ); + return null; + + } + + if ( TypedArray === undefined ) TypedArray = attribute.array.constructor; + if ( TypedArray !== attribute.array.constructor ) { + + console.error( 'THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.array must be of consistent array types across matching attributes.' ); + return null; + + } + + if ( itemSize === undefined ) itemSize = attribute.itemSize; + if ( itemSize !== attribute.itemSize ) { + + console.error( 'THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.itemSize must be consistent across matching attributes.' ); + return null; + + } + + if ( normalized === undefined ) normalized = attribute.normalized; + if ( normalized !== attribute.normalized ) { + + console.error( 'THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.normalized must be consistent across matching attributes.' ); + return null; + + } + + arrayLength += attribute.array.length; + + } + + const array = new TypedArray( arrayLength ); + let offset = 0; + + for ( let i = 0; i < attributes.length; ++ i ) { + + array.set( attributes[ i ].array, offset ); + + offset += attributes[ i ].array.length; + + } + + return new BufferAttribute$1( array, itemSize, normalized ); + +} + +class GeometryUtils { + static merge(geometriesByMaterial, splitByBlocks = false) { + const geometriesByMat = []; + const sizes = []; + for (const geometries of geometriesByMaterial) { + const merged = this.mergeGeomsOfSameMaterial(geometries, splitByBlocks); + geometriesByMat.push(merged); + sizes.push(merged.index.count); + } + const geometry = mergeGeometries(geometriesByMat); + this.setupMaterialGroups(sizes, geometry); + this.cleanUp(geometriesByMat); + return geometry; + } + // When Three.js exports to glTF, it generates one separate mesh per material. All meshes + // share the same BufferAttributes and have different indices + static async mergeGltfMeshes(meshes) { + const geometry = new BufferGeometry(); + const attributes = meshes[0].geometry.attributes; + this.getMeshesAttributes(geometry, attributes); + this.getMeshesIndices(geometry, meshes); + return geometry; + } + static getMeshesAttributes(geometry, attributes) { + // Three.js GLTFExporter exports custom BufferAttributes as underscore lowercase + // eslint-disable-next-line no-underscore-dangle + geometry.setAttribute("blockID", attributes._blockid); + geometry.setAttribute("position", attributes.position); + geometry.setAttribute("normal", attributes.normal); + geometry.groups = []; + } + static getMeshesIndices(geometry, meshes) { + const counter = { index: 0, material: 0 }; + const indices = []; + for (const mesh of meshes) { + const index = mesh.geometry.index; + this.getIndicesOfMesh(index, indices); + this.getMeshGroup(geometry, counter, index); + this.cleanUpMesh(mesh); + } + geometry.setIndex(indices); + } + static getMeshGroup(geometry, counter, index) { + geometry.groups.push({ + start: counter.index, + count: index.count, + materialIndex: counter.material++, + }); + counter.index += index.count; + } + static cleanUpMesh(mesh) { + mesh.geometry.setIndex([]); + mesh.geometry.attributes = {}; + mesh.geometry.dispose(); + } + static getIndicesOfMesh(index, indices) { + for (const number of index.array) { + indices.push(number); + } + } + static cleanUp(geometries) { + geometries.forEach((geometry) => geometry.dispose()); + geometries.length = 0; + } + static setupMaterialGroups(sizes, geometry) { + let vertexCounter = 0; + let counter = 0; + for (const size of sizes) { + const group = { + start: vertexCounter, + count: size, + materialIndex: counter++, + }; + geometry.groups.push(group); + vertexCounter += size; + } + } + static mergeGeomsOfSameMaterial(geometries, splitByBlocks) { + this.checkAllGeometriesAreIndexed(geometries); + if (splitByBlocks) { + this.splitByBlocks(geometries); + } + const merged = mergeGeometries(geometries); + this.cleanUp(geometries); + return merged; + } + static splitByBlocks(geometries) { + let i = 0; + for (const geometry of geometries) { + const size = geometry.attributes.position.count; + // TODO: Substitute blockID attribute by block id map + const array = new Uint16Array(size).fill(i++); + geometry.setAttribute("blockID", new BufferAttribute$1(array, 1)); + } + } + static checkAllGeometriesAreIndexed(geometries) { + for (const geometry of geometries) { + if (!geometry.index) { + throw new Error("All geometries must be indexed!"); + } + } + } +} + +/** + * The KHR_mesh_quantization extension allows these extra attribute component types + * + * @see https://github.com/KhronosGroup/glTF/blob/main/extensions/2.0/Khronos/KHR_mesh_quantization/README.md#extending-mesh-attributes + */ +const KHR_mesh_quantization_ExtraAttrTypes = { + POSITION: [ + 'byte', + 'byte normalized', + 'unsigned byte', + 'unsigned byte normalized', + 'short', + 'short normalized', + 'unsigned short', + 'unsigned short normalized', + ], + NORMAL: [ + 'byte normalized', + 'short normalized', + ], + TANGENT: [ + 'byte normalized', + 'short normalized', + ], + TEXCOORD: [ + 'byte', + 'byte normalized', + 'unsigned byte', + 'short', + 'short normalized', + 'unsigned short', + ], +}; + + +class GLTFExporter { + + constructor() { + + this.pluginCallbacks = []; + + this.register( function ( writer ) { + + return new GLTFLightExtension( writer ); + + } ); + + this.register( function ( writer ) { + + return new GLTFMaterialsUnlitExtension( writer ); + + } ); + + this.register( function ( writer ) { + + return new GLTFMaterialsTransmissionExtension( writer ); + + } ); + + this.register( function ( writer ) { + + return new GLTFMaterialsVolumeExtension( writer ); + + } ); + + this.register( function ( writer ) { + + return new GLTFMaterialsIorExtension( writer ); + + } ); + + this.register( function ( writer ) { + + return new GLTFMaterialsSpecularExtension( writer ); + + } ); + + this.register( function ( writer ) { + + return new GLTFMaterialsClearcoatExtension( writer ); + + } ); + + this.register( function ( writer ) { + + return new GLTFMaterialsIridescenceExtension( writer ); + + } ); + + this.register( function ( writer ) { + + return new GLTFMaterialsSheenExtension( writer ); + + } ); + + this.register( function ( writer ) { + + return new GLTFMaterialsEmissiveStrengthExtension( writer ); + + } ); + + } + + register( callback ) { + + if ( this.pluginCallbacks.indexOf( callback ) === - 1 ) { + + this.pluginCallbacks.push( callback ); + + } + + return this; + + } + + unregister( callback ) { + + if ( this.pluginCallbacks.indexOf( callback ) !== - 1 ) { + + this.pluginCallbacks.splice( this.pluginCallbacks.indexOf( callback ), 1 ); + + } + + return this; + + } + + /** + * Parse scenes and generate GLTF output + * @param {Scene or [THREE.Scenes]} input Scene or Array of THREE.Scenes + * @param {Function} onDone Callback on completed + * @param {Function} onError Callback on errors + * @param {Object} options options + */ + parse( input, onDone, onError, options ) { + + const writer = new GLTFWriter(); + const plugins = []; + + for ( let i = 0, il = this.pluginCallbacks.length; i < il; i ++ ) { + + plugins.push( this.pluginCallbacks[ i ]( writer ) ); + + } + + writer.setPlugins( plugins ); + writer.write( input, onDone, options ).catch( onError ); + + } + + parseAsync( input, options ) { + + const scope = this; + + return new Promise( function ( resolve, reject ) { + + scope.parse( input, resolve, reject, options ); + + } ); + + } + +} + +//------------------------------------------------------------------------------ +// Constants +//------------------------------------------------------------------------------ + +const WEBGL_CONSTANTS = { + POINTS: 0x0000, + LINES: 0x0001, + LINE_LOOP: 0x0002, + LINE_STRIP: 0x0003, + TRIANGLES: 0x0004, + TRIANGLE_STRIP: 0x0005, + TRIANGLE_FAN: 0x0006, + + BYTE: 0x1400, + UNSIGNED_BYTE: 0x1401, + SHORT: 0x1402, + UNSIGNED_SHORT: 0x1403, + INT: 0x1404, + UNSIGNED_INT: 0x1405, + FLOAT: 0x1406, + + ARRAY_BUFFER: 0x8892, + ELEMENT_ARRAY_BUFFER: 0x8893, + + NEAREST: 0x2600, + LINEAR: 0x2601, + NEAREST_MIPMAP_NEAREST: 0x2700, + LINEAR_MIPMAP_NEAREST: 0x2701, + NEAREST_MIPMAP_LINEAR: 0x2702, + LINEAR_MIPMAP_LINEAR: 0x2703, + + CLAMP_TO_EDGE: 33071, + MIRRORED_REPEAT: 33648, + REPEAT: 10497 +}; + +const KHR_MESH_QUANTIZATION = 'KHR_mesh_quantization'; + +const THREE_TO_WEBGL = {}; + +THREE_TO_WEBGL[ NearestFilter ] = WEBGL_CONSTANTS.NEAREST; +THREE_TO_WEBGL[ NearestMipmapNearestFilter ] = WEBGL_CONSTANTS.NEAREST_MIPMAP_NEAREST; +THREE_TO_WEBGL[ NearestMipmapLinearFilter ] = WEBGL_CONSTANTS.NEAREST_MIPMAP_LINEAR; +THREE_TO_WEBGL[ LinearFilter ] = WEBGL_CONSTANTS.LINEAR; +THREE_TO_WEBGL[ LinearMipmapNearestFilter ] = WEBGL_CONSTANTS.LINEAR_MIPMAP_NEAREST; +THREE_TO_WEBGL[ LinearMipmapLinearFilter ] = WEBGL_CONSTANTS.LINEAR_MIPMAP_LINEAR; + +THREE_TO_WEBGL[ ClampToEdgeWrapping ] = WEBGL_CONSTANTS.CLAMP_TO_EDGE; +THREE_TO_WEBGL[ RepeatWrapping ] = WEBGL_CONSTANTS.REPEAT; +THREE_TO_WEBGL[ MirroredRepeatWrapping ] = WEBGL_CONSTANTS.MIRRORED_REPEAT; + +const PATH_PROPERTIES = { + scale: 'scale', + position: 'translation', + quaternion: 'rotation', + morphTargetInfluences: 'weights' +}; + +const DEFAULT_SPECULAR_COLOR = new Color(); + +// GLB constants +// https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#glb-file-format-specification + +const GLB_HEADER_BYTES = 12; +const GLB_HEADER_MAGIC = 0x46546C67; +const GLB_VERSION = 2; + +const GLB_CHUNK_PREFIX_BYTES = 8; +const GLB_CHUNK_TYPE_JSON = 0x4E4F534A; +const GLB_CHUNK_TYPE_BIN = 0x004E4942; + +//------------------------------------------------------------------------------ +// Utility functions +//------------------------------------------------------------------------------ + +/** + * Compare two arrays + * @param {Array} array1 Array 1 to compare + * @param {Array} array2 Array 2 to compare + * @return {Boolean} Returns true if both arrays are equal + */ +function equalArray( array1, array2 ) { + + return ( array1.length === array2.length ) && array1.every( function ( element, index ) { + + return element === array2[ index ]; + + } ); + +} + +/** + * Converts a string to an ArrayBuffer. + * @param {string} text + * @return {ArrayBuffer} + */ +function stringToArrayBuffer( text ) { + + return new TextEncoder().encode( text ).buffer; + +} + +/** + * Is identity matrix + * + * @param {Matrix4} matrix + * @returns {Boolean} Returns true, if parameter is identity matrix + */ +function isIdentityMatrix( matrix ) { + + return equalArray( matrix.elements, [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 ] ); + +} + +/** + * Get the min and max vectors from the given attribute + * @param {BufferAttribute} attribute Attribute to find the min/max in range from start to start + count + * @param {Integer} start + * @param {Integer} count + * @return {Object} Object containing the `min` and `max` values (As an array of attribute.itemSize components) + */ +function getMinMax( attribute, start, count ) { + + const output = { + + min: new Array( attribute.itemSize ).fill( Number.POSITIVE_INFINITY ), + max: new Array( attribute.itemSize ).fill( Number.NEGATIVE_INFINITY ) + + }; + + for ( let i = start; i < start + count; i ++ ) { + + for ( let a = 0; a < attribute.itemSize; a ++ ) { + + let value; + + if ( attribute.itemSize > 4 ) { + + // no support for interleaved data for itemSize > 4 + + value = attribute.array[ i * attribute.itemSize + a ]; + + } else { + + if ( a === 0 ) value = attribute.getX( i ); + else if ( a === 1 ) value = attribute.getY( i ); + else if ( a === 2 ) value = attribute.getZ( i ); + else if ( a === 3 ) value = attribute.getW( i ); + + if ( attribute.normalized === true ) { + + value = MathUtils.normalize( value, attribute.array ); + + } + + } + + output.min[ a ] = Math.min( output.min[ a ], value ); + output.max[ a ] = Math.max( output.max[ a ], value ); + + } + + } + + return output; + +} + +/** + * Get the required size + padding for a buffer, rounded to the next 4-byte boundary. + * https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#data-alignment + * + * @param {Integer} bufferSize The size the original buffer. + * @returns {Integer} new buffer size with required padding. + * + */ +function getPaddedBufferSize( bufferSize ) { + + return Math.ceil( bufferSize / 4 ) * 4; + +} + +/** + * Returns a buffer aligned to 4-byte boundary. + * + * @param {ArrayBuffer} arrayBuffer Buffer to pad + * @param {Integer} paddingByte (Optional) + * @returns {ArrayBuffer} The same buffer if it's already aligned to 4-byte boundary or a new buffer + */ +function getPaddedArrayBuffer( arrayBuffer, paddingByte = 0 ) { + + const paddedLength = getPaddedBufferSize( arrayBuffer.byteLength ); + + if ( paddedLength !== arrayBuffer.byteLength ) { + + const array = new Uint8Array( paddedLength ); + array.set( new Uint8Array( arrayBuffer ) ); + + if ( paddingByte !== 0 ) { + + for ( let i = arrayBuffer.byteLength; i < paddedLength; i ++ ) { + + array[ i ] = paddingByte; + + } + + } + + return array.buffer; + + } + + return arrayBuffer; + +} + +function getCanvas() { + + if ( typeof document === 'undefined' && typeof OffscreenCanvas !== 'undefined' ) { + + return new OffscreenCanvas( 1, 1 ); + + } + + return document.createElement( 'canvas' ); + +} + +function getToBlobPromise( canvas, mimeType ) { + + if ( canvas.toBlob !== undefined ) { + + return new Promise( ( resolve ) => canvas.toBlob( resolve, mimeType ) ); + + } + + let quality; + + // Blink's implementation of convertToBlob seems to default to a quality level of 100% + // Use the Blink default quality levels of toBlob instead so that file sizes are comparable. + if ( mimeType === 'image/jpeg' ) { + + quality = 0.92; + + } else if ( mimeType === 'image/webp' ) { + + quality = 0.8; + + } + + return canvas.convertToBlob( { + + type: mimeType, + quality: quality + + } ); + +} + +/** + * Writer + */ +class GLTFWriter { + + constructor() { + + this.plugins = []; + + this.options = {}; + this.pending = []; + this.buffers = []; + + this.byteOffset = 0; + this.buffers = []; + this.nodeMap = new Map(); + this.skins = []; + + this.extensionsUsed = {}; + this.extensionsRequired = {}; + + this.uids = new Map(); + this.uid = 0; + + this.json = { + asset: { + version: '2.0', + generator: 'THREE.GLTFExporter' + } + }; + + this.cache = { + meshes: new Map(), + attributes: new Map(), + attributesNormalized: new Map(), + materials: new Map(), + textures: new Map(), + images: new Map() + }; + + } + + setPlugins( plugins ) { + + this.plugins = plugins; + + } + + /** + * Parse scenes and generate GLTF output + * @param {Scene or [THREE.Scenes]} input Scene or Array of THREE.Scenes + * @param {Function} onDone Callback on completed + * @param {Object} options options + */ + async write( input, onDone, options = {} ) { + + this.options = Object.assign( { + // default options + binary: false, + trs: false, + onlyVisible: true, + maxTextureSize: Infinity, + animations: [], + includeCustomExtensions: false + }, options ); + + if ( this.options.animations.length > 0 ) { + + // Only TRS properties, and not matrices, may be targeted by animation. + this.options.trs = true; + + } + + this.processInput( input ); + + await Promise.all( this.pending ); + + const writer = this; + const buffers = writer.buffers; + const json = writer.json; + options = writer.options; + + const extensionsUsed = writer.extensionsUsed; + const extensionsRequired = writer.extensionsRequired; + + // Merge buffers. + const blob = new Blob( buffers, { type: 'application/octet-stream' } ); + + // Declare extensions. + const extensionsUsedList = Object.keys( extensionsUsed ); + const extensionsRequiredList = Object.keys( extensionsRequired ); + + if ( extensionsUsedList.length > 0 ) json.extensionsUsed = extensionsUsedList; + if ( extensionsRequiredList.length > 0 ) json.extensionsRequired = extensionsRequiredList; + + // Update bytelength of the single buffer. + if ( json.buffers && json.buffers.length > 0 ) json.buffers[ 0 ].byteLength = blob.size; + + if ( options.binary === true ) { + + // https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#glb-file-format-specification + + const reader = new FileReader(); + reader.readAsArrayBuffer( blob ); + reader.onloadend = function () { + + // Binary chunk. + const binaryChunk = getPaddedArrayBuffer( reader.result ); + const binaryChunkPrefix = new DataView( new ArrayBuffer( GLB_CHUNK_PREFIX_BYTES ) ); + binaryChunkPrefix.setUint32( 0, binaryChunk.byteLength, true ); + binaryChunkPrefix.setUint32( 4, GLB_CHUNK_TYPE_BIN, true ); + + // JSON chunk. + const jsonChunk = getPaddedArrayBuffer( stringToArrayBuffer( JSON.stringify( json ) ), 0x20 ); + const jsonChunkPrefix = new DataView( new ArrayBuffer( GLB_CHUNK_PREFIX_BYTES ) ); + jsonChunkPrefix.setUint32( 0, jsonChunk.byteLength, true ); + jsonChunkPrefix.setUint32( 4, GLB_CHUNK_TYPE_JSON, true ); + + // GLB header. + const header = new ArrayBuffer( GLB_HEADER_BYTES ); + const headerView = new DataView( header ); + headerView.setUint32( 0, GLB_HEADER_MAGIC, true ); + headerView.setUint32( 4, GLB_VERSION, true ); + const totalByteLength = GLB_HEADER_BYTES + + jsonChunkPrefix.byteLength + jsonChunk.byteLength + + binaryChunkPrefix.byteLength + binaryChunk.byteLength; + headerView.setUint32( 8, totalByteLength, true ); + + const glbBlob = new Blob( [ + header, + jsonChunkPrefix, + jsonChunk, + binaryChunkPrefix, + binaryChunk + ], { type: 'application/octet-stream' } ); + + const glbReader = new FileReader(); + glbReader.readAsArrayBuffer( glbBlob ); + glbReader.onloadend = function () { + + onDone( glbReader.result ); + + }; + + }; + + } else { + + if ( json.buffers && json.buffers.length > 0 ) { + + const reader = new FileReader(); + reader.readAsDataURL( blob ); + reader.onloadend = function () { + + const base64data = reader.result; + json.buffers[ 0 ].uri = base64data; + onDone( json ); + + }; + + } else { + + onDone( json ); + + } + + } + + + } + + /** + * Serializes a userData. + * + * @param {THREE.Object3D|THREE.Material} object + * @param {Object} objectDef + */ + serializeUserData( object, objectDef ) { + + if ( Object.keys( object.userData ).length === 0 ) return; + + const options = this.options; + const extensionsUsed = this.extensionsUsed; + + try { + + const json = JSON.parse( JSON.stringify( object.userData ) ); + + if ( options.includeCustomExtensions && json.gltfExtensions ) { + + if ( objectDef.extensions === undefined ) objectDef.extensions = {}; + + for ( const extensionName in json.gltfExtensions ) { + + objectDef.extensions[ extensionName ] = json.gltfExtensions[ extensionName ]; + extensionsUsed[ extensionName ] = true; + + } + + delete json.gltfExtensions; + + } + + if ( Object.keys( json ).length > 0 ) objectDef.extras = json; + + } catch ( error ) { + + console.warn( 'THREE.GLTFExporter: userData of \'' + object.name + '\' ' + + 'won\'t be serialized because of JSON.stringify error - ' + error.message ); + + } + + } + + /** + * Returns ids for buffer attributes. + * @param {Object} object + * @return {Integer} + */ + getUID( attribute, isRelativeCopy = false ) { + + if ( this.uids.has( attribute ) === false ) { + + const uids = new Map(); + + uids.set( true, this.uid ++ ); + uids.set( false, this.uid ++ ); + + this.uids.set( attribute, uids ); + + } + + const uids = this.uids.get( attribute ); + + return uids.get( isRelativeCopy ); + + } + + /** + * Checks if normal attribute values are normalized. + * + * @param {BufferAttribute} normal + * @returns {Boolean} + */ + isNormalizedNormalAttribute( normal ) { + + const cache = this.cache; + + if ( cache.attributesNormalized.has( normal ) ) return false; + + const v = new Vector3$1(); + + for ( let i = 0, il = normal.count; i < il; i ++ ) { + + // 0.0005 is from glTF-validator + if ( Math.abs( v.fromBufferAttribute( normal, i ).length() - 1.0 ) > 0.0005 ) return false; + + } + + return true; + + } + + /** + * Creates normalized normal buffer attribute. + * + * @param {BufferAttribute} normal + * @returns {BufferAttribute} + * + */ + createNormalizedNormalAttribute( normal ) { + + const cache = this.cache; + + if ( cache.attributesNormalized.has( normal ) ) return cache.attributesNormalized.get( normal ); + + const attribute = normal.clone(); + const v = new Vector3$1(); + + for ( let i = 0, il = attribute.count; i < il; i ++ ) { + + v.fromBufferAttribute( attribute, i ); + + if ( v.x === 0 && v.y === 0 && v.z === 0 ) { + + // if values can't be normalized set (1, 0, 0) + v.setX( 1.0 ); + + } else { + + v.normalize(); + + } + + attribute.setXYZ( i, v.x, v.y, v.z ); + + } + + cache.attributesNormalized.set( normal, attribute ); + + return attribute; + + } + + /** + * Applies a texture transform, if present, to the map definition. Requires + * the KHR_texture_transform extension. + * + * @param {Object} mapDef + * @param {THREE.Texture} texture + */ + applyTextureTransform( mapDef, texture ) { + + let didTransform = false; + const transformDef = {}; + + if ( texture.offset.x !== 0 || texture.offset.y !== 0 ) { + + transformDef.offset = texture.offset.toArray(); + didTransform = true; + + } + + if ( texture.rotation !== 0 ) { + + transformDef.rotation = texture.rotation; + didTransform = true; + + } + + if ( texture.repeat.x !== 1 || texture.repeat.y !== 1 ) { + + transformDef.scale = texture.repeat.toArray(); + didTransform = true; + + } + + if ( didTransform ) { + + mapDef.extensions = mapDef.extensions || {}; + mapDef.extensions[ 'KHR_texture_transform' ] = transformDef; + this.extensionsUsed[ 'KHR_texture_transform' ] = true; + + } + + } + + buildMetalRoughTexture( metalnessMap, roughnessMap ) { + + if ( metalnessMap === roughnessMap ) return metalnessMap; + + function getEncodingConversion( map ) { + + if ( map.colorSpace === SRGBColorSpace ) { + + return function SRGBToLinear( c ) { + + return ( c < 0.04045 ) ? c * 0.0773993808 : Math.pow( c * 0.9478672986 + 0.0521327014, 2.4 ); + + }; + + } + + return function LinearToLinear( c ) { + + return c; + + }; + + } + + console.warn( 'THREE.GLTFExporter: Merged metalnessMap and roughnessMap textures.' ); + + const metalness = metalnessMap ? metalnessMap.image : null; + const roughness = roughnessMap ? roughnessMap.image : null; + + const width = Math.max( metalness ? metalness.width : 0, roughness ? roughness.width : 0 ); + const height = Math.max( metalness ? metalness.height : 0, roughness ? roughness.height : 0 ); + + const canvas = getCanvas(); + canvas.width = width; + canvas.height = height; + + const context = canvas.getContext( '2d' ); + context.fillStyle = '#00ffff'; + context.fillRect( 0, 0, width, height ); + + const composite = context.getImageData( 0, 0, width, height ); + + if ( metalness ) { + + context.drawImage( metalness, 0, 0, width, height ); + + const convert = getEncodingConversion( metalnessMap ); + const data = context.getImageData( 0, 0, width, height ).data; + + for ( let i = 2; i < data.length; i += 4 ) { + + composite.data[ i ] = convert( data[ i ] / 256 ) * 256; + + } + + } + + if ( roughness ) { + + context.drawImage( roughness, 0, 0, width, height ); + + const convert = getEncodingConversion( roughnessMap ); + const data = context.getImageData( 0, 0, width, height ).data; + + for ( let i = 1; i < data.length; i += 4 ) { + + composite.data[ i ] = convert( data[ i ] / 256 ) * 256; + + } + + } + + context.putImageData( composite, 0, 0 ); + + // + + const reference = metalnessMap || roughnessMap; + + const texture = reference.clone(); + + texture.source = new Source( canvas ); + texture.colorSpace = NoColorSpace; + texture.channel = ( metalnessMap || roughnessMap ).channel; + + if ( metalnessMap && roughnessMap && metalnessMap.channel !== roughnessMap.channel ) { + + console.warn( 'THREE.GLTFExporter: UV channels for metalnessMap and roughnessMap textures must match.' ); + + } + + return texture; + + } + + /** + * Process a buffer to append to the default one. + * @param {ArrayBuffer} buffer + * @return {Integer} + */ + processBuffer( buffer ) { + + const json = this.json; + const buffers = this.buffers; + + if ( ! json.buffers ) json.buffers = [ { byteLength: 0 } ]; + + // All buffers are merged before export. + buffers.push( buffer ); + + return 0; + + } + + /** + * Process and generate a BufferView + * @param {BufferAttribute} attribute + * @param {number} componentType + * @param {number} start + * @param {number} count + * @param {number} target (Optional) Target usage of the BufferView + * @return {Object} + */ + processBufferView( attribute, componentType, start, count, target ) { + + const json = this.json; + + if ( ! json.bufferViews ) json.bufferViews = []; + + // Create a new dataview and dump the attribute's array into it + + let componentSize; + + switch ( componentType ) { + + case WEBGL_CONSTANTS.BYTE: + case WEBGL_CONSTANTS.UNSIGNED_BYTE: + + componentSize = 1; + + break; + + case WEBGL_CONSTANTS.SHORT: + case WEBGL_CONSTANTS.UNSIGNED_SHORT: + + componentSize = 2; + + break; + + default: + + componentSize = 4; + + } + + const byteLength = getPaddedBufferSize( count * attribute.itemSize * componentSize ); + const dataView = new DataView( new ArrayBuffer( byteLength ) ); + let offset = 0; + + for ( let i = start; i < start + count; i ++ ) { + + for ( let a = 0; a < attribute.itemSize; a ++ ) { + + let value; + + if ( attribute.itemSize > 4 ) { + + // no support for interleaved data for itemSize > 4 + + value = attribute.array[ i * attribute.itemSize + a ]; + + } else { + + if ( a === 0 ) value = attribute.getX( i ); + else if ( a === 1 ) value = attribute.getY( i ); + else if ( a === 2 ) value = attribute.getZ( i ); + else if ( a === 3 ) value = attribute.getW( i ); + + if ( attribute.normalized === true ) { + + value = MathUtils.normalize( value, attribute.array ); + + } + + } + + if ( componentType === WEBGL_CONSTANTS.FLOAT ) { + + dataView.setFloat32( offset, value, true ); + + } else if ( componentType === WEBGL_CONSTANTS.INT ) { + + dataView.setInt32( offset, value, true ); + + } else if ( componentType === WEBGL_CONSTANTS.UNSIGNED_INT ) { + + dataView.setUint32( offset, value, true ); + + } else if ( componentType === WEBGL_CONSTANTS.SHORT ) { + + dataView.setInt16( offset, value, true ); + + } else if ( componentType === WEBGL_CONSTANTS.UNSIGNED_SHORT ) { + + dataView.setUint16( offset, value, true ); + + } else if ( componentType === WEBGL_CONSTANTS.BYTE ) { + + dataView.setInt8( offset, value ); + + } else if ( componentType === WEBGL_CONSTANTS.UNSIGNED_BYTE ) { + + dataView.setUint8( offset, value ); + + } + + offset += componentSize; + + } + + } + + const bufferViewDef = { + + buffer: this.processBuffer( dataView.buffer ), + byteOffset: this.byteOffset, + byteLength: byteLength + + }; + + if ( target !== undefined ) bufferViewDef.target = target; + + if ( target === WEBGL_CONSTANTS.ARRAY_BUFFER ) { + + // Only define byteStride for vertex attributes. + bufferViewDef.byteStride = attribute.itemSize * componentSize; + + } + + this.byteOffset += byteLength; + + json.bufferViews.push( bufferViewDef ); + + // @TODO Merge bufferViews where possible. + const output = { + + id: json.bufferViews.length - 1, + byteLength: 0 + + }; + + return output; + + } + + /** + * Process and generate a BufferView from an image Blob. + * @param {Blob} blob + * @return {Promise} + */ + processBufferViewImage( blob ) { + + const writer = this; + const json = writer.json; + + if ( ! json.bufferViews ) json.bufferViews = []; + + return new Promise( function ( resolve ) { + + const reader = new FileReader(); + reader.readAsArrayBuffer( blob ); + reader.onloadend = function () { + + const buffer = getPaddedArrayBuffer( reader.result ); + + const bufferViewDef = { + buffer: writer.processBuffer( buffer ), + byteOffset: writer.byteOffset, + byteLength: buffer.byteLength + }; + + writer.byteOffset += buffer.byteLength; + resolve( json.bufferViews.push( bufferViewDef ) - 1 ); + + }; + + } ); + + } + + /** + * Process attribute to generate an accessor + * @param {BufferAttribute} attribute Attribute to process + * @param {THREE.BufferGeometry} geometry (Optional) Geometry used for truncated draw range + * @param {Integer} start (Optional) + * @param {Integer} count (Optional) + * @return {Integer|null} Index of the processed accessor on the "accessors" array + */ + processAccessor( attribute, geometry, start, count ) { + + const json = this.json; + + const types = { + + 1: 'SCALAR', + 2: 'VEC2', + 3: 'VEC3', + 4: 'VEC4', + 9: 'MAT3', + 16: 'MAT4' + + }; + + let componentType; + + // Detect the component type of the attribute array + if ( attribute.array.constructor === Float32Array ) { + + componentType = WEBGL_CONSTANTS.FLOAT; + + } else if ( attribute.array.constructor === Int32Array ) { + + componentType = WEBGL_CONSTANTS.INT; + + } else if ( attribute.array.constructor === Uint32Array ) { + + componentType = WEBGL_CONSTANTS.UNSIGNED_INT; + + } else if ( attribute.array.constructor === Int16Array ) { + + componentType = WEBGL_CONSTANTS.SHORT; + + } else if ( attribute.array.constructor === Uint16Array ) { + + componentType = WEBGL_CONSTANTS.UNSIGNED_SHORT; + + } else if ( attribute.array.constructor === Int8Array ) { + + componentType = WEBGL_CONSTANTS.BYTE; + + } else if ( attribute.array.constructor === Uint8Array ) { + + componentType = WEBGL_CONSTANTS.UNSIGNED_BYTE; + + } else { + + throw new Error( 'THREE.GLTFExporter: Unsupported bufferAttribute component type.' ); + + } + + if ( start === undefined ) start = 0; + if ( count === undefined ) count = attribute.count; + + // Skip creating an accessor if the attribute doesn't have data to export + if ( count === 0 ) return null; + + const minMax = getMinMax( attribute, start, count ); + let bufferViewTarget; + + // If geometry isn't provided, don't infer the target usage of the bufferView. For + // animation samplers, target must not be set. + if ( geometry !== undefined ) { + + bufferViewTarget = attribute === geometry.index ? WEBGL_CONSTANTS.ELEMENT_ARRAY_BUFFER : WEBGL_CONSTANTS.ARRAY_BUFFER; + + } + + const bufferView = this.processBufferView( attribute, componentType, start, count, bufferViewTarget ); + + const accessorDef = { + + bufferView: bufferView.id, + byteOffset: bufferView.byteOffset, + componentType: componentType, + count: count, + max: minMax.max, + min: minMax.min, + type: types[ attribute.itemSize ] + + }; + + if ( attribute.normalized === true ) accessorDef.normalized = true; + if ( ! json.accessors ) json.accessors = []; + + return json.accessors.push( accessorDef ) - 1; + + } + + /** + * Process image + * @param {Image} image to process + * @param {Integer} format of the image (RGBAFormat) + * @param {Boolean} flipY before writing out the image + * @param {String} mimeType export format + * @return {Integer} Index of the processed texture in the "images" array + */ + processImage( image, format, flipY, mimeType = 'image/png' ) { + + if ( image !== null ) { + + const writer = this; + const cache = writer.cache; + const json = writer.json; + const options = writer.options; + const pending = writer.pending; + + if ( ! cache.images.has( image ) ) cache.images.set( image, {} ); + + const cachedImages = cache.images.get( image ); + + const key = mimeType + ':flipY/' + flipY.toString(); + + if ( cachedImages[ key ] !== undefined ) return cachedImages[ key ]; + + if ( ! json.images ) json.images = []; + + const imageDef = { mimeType: mimeType }; + + const canvas = getCanvas(); + + canvas.width = Math.min( image.width, options.maxTextureSize ); + canvas.height = Math.min( image.height, options.maxTextureSize ); + + const ctx = canvas.getContext( '2d' ); + + if ( flipY === true ) { + + ctx.translate( 0, canvas.height ); + ctx.scale( 1, - 1 ); + + } + + if ( image.data !== undefined ) { // THREE.DataTexture + + if ( format !== RGBAFormat ) { + + console.error( 'GLTFExporter: Only RGBAFormat is supported.' ); + + } + + if ( image.width > options.maxTextureSize || image.height > options.maxTextureSize ) { + + console.warn( 'GLTFExporter: Image size is bigger than maxTextureSize', image ); + + } + + const data = new Uint8ClampedArray( image.height * image.width * 4 ); + + for ( let i = 0; i < data.length; i += 4 ) { + + data[ i + 0 ] = image.data[ i + 0 ]; + data[ i + 1 ] = image.data[ i + 1 ]; + data[ i + 2 ] = image.data[ i + 2 ]; + data[ i + 3 ] = image.data[ i + 3 ]; + + } + + ctx.putImageData( new ImageData( data, image.width, image.height ), 0, 0 ); + + } else { + + ctx.drawImage( image, 0, 0, canvas.width, canvas.height ); + + } + + if ( options.binary === true ) { + + pending.push( + + getToBlobPromise( canvas, mimeType ) + .then( blob => writer.processBufferViewImage( blob ) ) + .then( bufferViewIndex => { + + imageDef.bufferView = bufferViewIndex; + + } ) + + ); + + } else { + + if ( canvas.toDataURL !== undefined ) { + + imageDef.uri = canvas.toDataURL( mimeType ); + + } else { + + pending.push( + + getToBlobPromise( canvas, mimeType ) + .then( blob => new FileReader().readAsDataURL( blob ) ) + .then( dataURL => { + + imageDef.uri = dataURL; + + } ) + + ); + + } + + } + + const index = json.images.push( imageDef ) - 1; + cachedImages[ key ] = index; + return index; + + } else { + + throw new Error( 'THREE.GLTFExporter: No valid image data found. Unable to process texture.' ); + + } + + } + + /** + * Process sampler + * @param {Texture} map Texture to process + * @return {Integer} Index of the processed texture in the "samplers" array + */ + processSampler( map ) { + + const json = this.json; + + if ( ! json.samplers ) json.samplers = []; + + const samplerDef = { + magFilter: THREE_TO_WEBGL[ map.magFilter ], + minFilter: THREE_TO_WEBGL[ map.minFilter ], + wrapS: THREE_TO_WEBGL[ map.wrapS ], + wrapT: THREE_TO_WEBGL[ map.wrapT ] + }; + + return json.samplers.push( samplerDef ) - 1; + + } + + /** + * Process texture + * @param {Texture} map Map to process + * @return {Integer} Index of the processed texture in the "textures" array + */ + processTexture( map ) { + + const cache = this.cache; + const json = this.json; + + if ( cache.textures.has( map ) ) return cache.textures.get( map ); + + if ( ! json.textures ) json.textures = []; + + let mimeType = map.userData.mimeType; + + if ( mimeType === 'image/webp' ) mimeType = 'image/png'; + + const textureDef = { + sampler: this.processSampler( map ), + source: this.processImage( map.image, map.format, map.flipY, mimeType ) + }; + + if ( map.name ) textureDef.name = map.name; + + this._invokeAll( function ( ext ) { + + ext.writeTexture && ext.writeTexture( map, textureDef ); + + } ); + + const index = json.textures.push( textureDef ) - 1; + cache.textures.set( map, index ); + return index; + + } + + /** + * Process material + * @param {THREE.Material} material Material to process + * @return {Integer|null} Index of the processed material in the "materials" array + */ + processMaterial( material ) { + + const cache = this.cache; + const json = this.json; + + if ( cache.materials.has( material ) ) return cache.materials.get( material ); + + if ( material.isShaderMaterial ) { + + console.warn( 'GLTFExporter: THREE.ShaderMaterial not supported.' ); + return null; + + } + + if ( ! json.materials ) json.materials = []; + + // @QUESTION Should we avoid including any attribute that has the default value? + const materialDef = { pbrMetallicRoughness: {} }; + + if ( material.isMeshStandardMaterial !== true && material.isMeshBasicMaterial !== true ) { + + console.warn( 'GLTFExporter: Use MeshStandardMaterial or MeshBasicMaterial for best results.' ); + + } + + // pbrMetallicRoughness.baseColorFactor + const color = material.color.toArray().concat( [ material.opacity ] ); + + if ( ! equalArray( color, [ 1, 1, 1, 1 ] ) ) { + + materialDef.pbrMetallicRoughness.baseColorFactor = color; + + } + + if ( material.isMeshStandardMaterial ) { + + materialDef.pbrMetallicRoughness.metallicFactor = material.metalness; + materialDef.pbrMetallicRoughness.roughnessFactor = material.roughness; + + } else { + + materialDef.pbrMetallicRoughness.metallicFactor = 0.5; + materialDef.pbrMetallicRoughness.roughnessFactor = 0.5; + + } + + // pbrMetallicRoughness.metallicRoughnessTexture + if ( material.metalnessMap || material.roughnessMap ) { + + const metalRoughTexture = this.buildMetalRoughTexture( material.metalnessMap, material.roughnessMap ); + + const metalRoughMapDef = { + index: this.processTexture( metalRoughTexture ), + channel: metalRoughTexture.channel + }; + this.applyTextureTransform( metalRoughMapDef, metalRoughTexture ); + materialDef.pbrMetallicRoughness.metallicRoughnessTexture = metalRoughMapDef; + + } + + // pbrMetallicRoughness.baseColorTexture + if ( material.map ) { + + const baseColorMapDef = { + index: this.processTexture( material.map ), + texCoord: material.map.channel + }; + this.applyTextureTransform( baseColorMapDef, material.map ); + materialDef.pbrMetallicRoughness.baseColorTexture = baseColorMapDef; + + } + + if ( material.emissive ) { + + const emissive = material.emissive; + const maxEmissiveComponent = Math.max( emissive.r, emissive.g, emissive.b ); + + if ( maxEmissiveComponent > 0 ) { + + materialDef.emissiveFactor = material.emissive.toArray(); + + } + + // emissiveTexture + if ( material.emissiveMap ) { + + const emissiveMapDef = { + index: this.processTexture( material.emissiveMap ), + texCoord: material.emissiveMap.channel + }; + this.applyTextureTransform( emissiveMapDef, material.emissiveMap ); + materialDef.emissiveTexture = emissiveMapDef; + + } + + } + + // normalTexture + if ( material.normalMap ) { + + const normalMapDef = { + index: this.processTexture( material.normalMap ), + texCoord: material.normalMap.channel + }; + + if ( material.normalScale && material.normalScale.x !== 1 ) { + + // glTF normal scale is univariate. Ignore `y`, which may be flipped. + // Context: https://github.com/mrdoob/three.js/issues/11438#issuecomment-507003995 + normalMapDef.scale = material.normalScale.x; + + } + + this.applyTextureTransform( normalMapDef, material.normalMap ); + materialDef.normalTexture = normalMapDef; + + } + + // occlusionTexture + if ( material.aoMap ) { + + const occlusionMapDef = { + index: this.processTexture( material.aoMap ), + texCoord: material.aoMap.channel + }; + + if ( material.aoMapIntensity !== 1.0 ) { + + occlusionMapDef.strength = material.aoMapIntensity; + + } + + this.applyTextureTransform( occlusionMapDef, material.aoMap ); + materialDef.occlusionTexture = occlusionMapDef; + + } + + // alphaMode + if ( material.transparent ) { + + materialDef.alphaMode = 'BLEND'; + + } else { + + if ( material.alphaTest > 0.0 ) { + + materialDef.alphaMode = 'MASK'; + materialDef.alphaCutoff = material.alphaTest; + + } + + } + + // doubleSided + if ( material.side === DoubleSide ) materialDef.doubleSided = true; + if ( material.name !== '' ) materialDef.name = material.name; + + this.serializeUserData( material, materialDef ); + + this._invokeAll( function ( ext ) { + + ext.writeMaterial && ext.writeMaterial( material, materialDef ); + + } ); + + const index = json.materials.push( materialDef ) - 1; + cache.materials.set( material, index ); + return index; + + } + + /** + * Process mesh + * @param {THREE.Mesh} mesh Mesh to process + * @return {Integer|null} Index of the processed mesh in the "meshes" array + */ + processMesh( mesh ) { + + const cache = this.cache; + const json = this.json; + + const meshCacheKeyParts = [ mesh.geometry.uuid ]; + + if ( Array.isArray( mesh.material ) ) { + + for ( let i = 0, l = mesh.material.length; i < l; i ++ ) { + + meshCacheKeyParts.push( mesh.material[ i ].uuid ); + + } + + } else { + + meshCacheKeyParts.push( mesh.material.uuid ); + + } + + const meshCacheKey = meshCacheKeyParts.join( ':' ); + + if ( cache.meshes.has( meshCacheKey ) ) return cache.meshes.get( meshCacheKey ); + + const geometry = mesh.geometry; + + let mode; + + // Use the correct mode + if ( mesh.isLineSegments ) { + + mode = WEBGL_CONSTANTS.LINES; + + } else if ( mesh.isLineLoop ) { + + mode = WEBGL_CONSTANTS.LINE_LOOP; + + } else if ( mesh.isLine ) { + + mode = WEBGL_CONSTANTS.LINE_STRIP; + + } else if ( mesh.isPoints ) { + + mode = WEBGL_CONSTANTS.POINTS; + + } else { + + mode = mesh.material.wireframe ? WEBGL_CONSTANTS.LINES : WEBGL_CONSTANTS.TRIANGLES; + + } + + const meshDef = {}; + const attributes = {}; + const primitives = []; + const targets = []; + + // Conversion between attributes names in threejs and gltf spec + const nameConversion = { + uv: 'TEXCOORD_0', + uv1: 'TEXCOORD_1', + color: 'COLOR_0', + skinWeight: 'WEIGHTS_0', + skinIndex: 'JOINTS_0' + }; + + const originalNormal = geometry.getAttribute( 'normal' ); + + if ( originalNormal !== undefined && ! this.isNormalizedNormalAttribute( originalNormal ) ) { + + console.warn( 'THREE.GLTFExporter: Creating normalized normal attribute from the non-normalized one.' ); + + geometry.setAttribute( 'normal', this.createNormalizedNormalAttribute( originalNormal ) ); + + } + + // @QUESTION Detect if .vertexColors = true? + // For every attribute create an accessor + let modifiedAttribute = null; + + for ( let attributeName in geometry.attributes ) { + + // Ignore morph target attributes, which are exported later. + if ( attributeName.slice( 0, 5 ) === 'morph' ) continue; + + const attribute = geometry.attributes[ attributeName ]; + attributeName = nameConversion[ attributeName ] || attributeName.toUpperCase(); + + // Prefix all geometry attributes except the ones specifically + // listed in the spec; non-spec attributes are considered custom. + const validVertexAttributes = + /^(POSITION|NORMAL|TANGENT|TEXCOORD_\d+|COLOR_\d+|JOINTS_\d+|WEIGHTS_\d+)$/; + + if ( ! validVertexAttributes.test( attributeName ) ) attributeName = '_' + attributeName; + + if ( cache.attributes.has( this.getUID( attribute ) ) ) { + + attributes[ attributeName ] = cache.attributes.get( this.getUID( attribute ) ); + continue; + + } + + // JOINTS_0 must be UNSIGNED_BYTE or UNSIGNED_SHORT. + modifiedAttribute = null; + const array = attribute.array; + + if ( attributeName === 'JOINTS_0' && + ! ( array instanceof Uint16Array ) && + ! ( array instanceof Uint8Array ) ) { + + console.warn( 'GLTFExporter: Attribute "skinIndex" converted to type UNSIGNED_SHORT.' ); + modifiedAttribute = new BufferAttribute$1( new Uint16Array( array ), attribute.itemSize, attribute.normalized ); + + } + + const accessor = this.processAccessor( modifiedAttribute || attribute, geometry ); + + if ( accessor !== null ) { + + if ( ! attributeName.startsWith( '_' ) ) { + + this.detectMeshQuantization( attributeName, attribute ); + + } + + attributes[ attributeName ] = accessor; + cache.attributes.set( this.getUID( attribute ), accessor ); + + } + + } + + if ( originalNormal !== undefined ) geometry.setAttribute( 'normal', originalNormal ); + + // Skip if no exportable attributes found + if ( Object.keys( attributes ).length === 0 ) return null; + + // Morph targets + if ( mesh.morphTargetInfluences !== undefined && mesh.morphTargetInfluences.length > 0 ) { + + const weights = []; + const targetNames = []; + const reverseDictionary = {}; + + if ( mesh.morphTargetDictionary !== undefined ) { + + for ( const key in mesh.morphTargetDictionary ) { + + reverseDictionary[ mesh.morphTargetDictionary[ key ] ] = key; + + } + + } + + for ( let i = 0; i < mesh.morphTargetInfluences.length; ++ i ) { + + const target = {}; + let warned = false; + + for ( const attributeName in geometry.morphAttributes ) { + + // glTF 2.0 morph supports only POSITION/NORMAL/TANGENT. + // Three.js doesn't support TANGENT yet. + + if ( attributeName !== 'position' && attributeName !== 'normal' ) { + + if ( ! warned ) { + + console.warn( 'GLTFExporter: Only POSITION and NORMAL morph are supported.' ); + warned = true; + + } + + continue; + + } + + const attribute = geometry.morphAttributes[ attributeName ][ i ]; + const gltfAttributeName = attributeName.toUpperCase(); + + // Three.js morph attribute has absolute values while the one of glTF has relative values. + // + // glTF 2.0 Specification: + // https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#morph-targets + + const baseAttribute = geometry.attributes[ attributeName ]; + + if ( cache.attributes.has( this.getUID( attribute, true ) ) ) { + + target[ gltfAttributeName ] = cache.attributes.get( this.getUID( attribute, true ) ); + continue; + + } + + // Clones attribute not to override + const relativeAttribute = attribute.clone(); + + if ( ! geometry.morphTargetsRelative ) { + + for ( let j = 0, jl = attribute.count; j < jl; j ++ ) { + + for ( let a = 0; a < attribute.itemSize; a ++ ) { + + if ( a === 0 ) relativeAttribute.setX( j, attribute.getX( j ) - baseAttribute.getX( j ) ); + if ( a === 1 ) relativeAttribute.setY( j, attribute.getY( j ) - baseAttribute.getY( j ) ); + if ( a === 2 ) relativeAttribute.setZ( j, attribute.getZ( j ) - baseAttribute.getZ( j ) ); + if ( a === 3 ) relativeAttribute.setW( j, attribute.getW( j ) - baseAttribute.getW( j ) ); + + } + + } + + } + + target[ gltfAttributeName ] = this.processAccessor( relativeAttribute, geometry ); + cache.attributes.set( this.getUID( baseAttribute, true ), target[ gltfAttributeName ] ); + + } + + targets.push( target ); + + weights.push( mesh.morphTargetInfluences[ i ] ); + + if ( mesh.morphTargetDictionary !== undefined ) targetNames.push( reverseDictionary[ i ] ); + + } + + meshDef.weights = weights; + + if ( targetNames.length > 0 ) { + + meshDef.extras = {}; + meshDef.extras.targetNames = targetNames; + + } + + } + + const isMultiMaterial = Array.isArray( mesh.material ); + + if ( isMultiMaterial && geometry.groups.length === 0 ) return null; + + const materials = isMultiMaterial ? mesh.material : [ mesh.material ]; + const groups = isMultiMaterial ? geometry.groups : [ { materialIndex: 0, start: undefined, count: undefined } ]; + + for ( let i = 0, il = groups.length; i < il; i ++ ) { + + const primitive = { + mode: mode, + attributes: attributes, + }; + + this.serializeUserData( geometry, primitive ); + + if ( targets.length > 0 ) primitive.targets = targets; + + if ( geometry.index !== null ) { + + let cacheKey = this.getUID( geometry.index ); + + if ( groups[ i ].start !== undefined || groups[ i ].count !== undefined ) { + + cacheKey += ':' + groups[ i ].start + ':' + groups[ i ].count; + + } + + if ( cache.attributes.has( cacheKey ) ) { + + primitive.indices = cache.attributes.get( cacheKey ); + + } else { + + primitive.indices = this.processAccessor( geometry.index, geometry, groups[ i ].start, groups[ i ].count ); + cache.attributes.set( cacheKey, primitive.indices ); + + } + + if ( primitive.indices === null ) delete primitive.indices; + + } + + const material = this.processMaterial( materials[ groups[ i ].materialIndex ] ); + + if ( material !== null ) primitive.material = material; + + primitives.push( primitive ); + + } + + meshDef.primitives = primitives; + + if ( ! json.meshes ) json.meshes = []; + + this._invokeAll( function ( ext ) { + + ext.writeMesh && ext.writeMesh( mesh, meshDef ); + + } ); + + const index = json.meshes.push( meshDef ) - 1; + cache.meshes.set( meshCacheKey, index ); + return index; + + } + + /** + * If a vertex attribute with a + * [non-standard data type](https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#meshes-overview) + * is used, it is checked whether it is a valid data type according to the + * [KHR_mesh_quantization](https://github.com/KhronosGroup/glTF/blob/main/extensions/2.0/Khronos/KHR_mesh_quantization/README.md) + * extension. + * In this case the extension is automatically added to the list of used extensions. + * + * @param {string} attributeName + * @param {THREE.BufferAttribute} attribute + */ + detectMeshQuantization( attributeName, attribute ) { + + if ( this.extensionsUsed[ KHR_MESH_QUANTIZATION ] ) return; + + let attrType = undefined; + + switch ( attribute.array.constructor ) { + + case Int8Array: + + attrType = 'byte'; + + break; + + case Uint8Array: + + attrType = 'unsigned byte'; + + break; + + case Int16Array: + + attrType = 'short'; + + break; + + case Uint16Array: + + attrType = 'unsigned short'; + + break; + + default: + + return; + + } + + if ( attribute.normalized ) attrType += ' normalized'; + + const attrNamePrefix = attributeName.split( '_', 1 )[ 0 ]; + + if ( KHR_mesh_quantization_ExtraAttrTypes[ attrNamePrefix ] && KHR_mesh_quantization_ExtraAttrTypes[ attrNamePrefix ].includes( attrType ) ) { + + this.extensionsUsed[ KHR_MESH_QUANTIZATION ] = true; + this.extensionsRequired[ KHR_MESH_QUANTIZATION ] = true; + + } + + } + + /** + * Process camera + * @param {THREE.Camera} camera Camera to process + * @return {Integer} Index of the processed mesh in the "camera" array + */ + processCamera( camera ) { + + const json = this.json; + + if ( ! json.cameras ) json.cameras = []; + + const isOrtho = camera.isOrthographicCamera; + + const cameraDef = { + type: isOrtho ? 'orthographic' : 'perspective' + }; + + if ( isOrtho ) { + + cameraDef.orthographic = { + xmag: camera.right * 2, + ymag: camera.top * 2, + zfar: camera.far <= 0 ? 0.001 : camera.far, + znear: camera.near < 0 ? 0 : camera.near + }; + + } else { + + cameraDef.perspective = { + aspectRatio: camera.aspect, + yfov: MathUtils.degToRad( camera.fov ), + zfar: camera.far <= 0 ? 0.001 : camera.far, + znear: camera.near < 0 ? 0 : camera.near + }; + + } + + // Question: Is saving "type" as name intentional? + if ( camera.name !== '' ) cameraDef.name = camera.type; + + return json.cameras.push( cameraDef ) - 1; + + } + + /** + * Creates glTF animation entry from AnimationClip object. + * + * Status: + * - Only properties listed in PATH_PROPERTIES may be animated. + * + * @param {THREE.AnimationClip} clip + * @param {THREE.Object3D} root + * @return {number|null} + */ + processAnimation( clip, root ) { + + const json = this.json; + const nodeMap = this.nodeMap; + + if ( ! json.animations ) json.animations = []; + + clip = GLTFExporter.Utils.mergeMorphTargetTracks( clip.clone(), root ); + + const tracks = clip.tracks; + const channels = []; + const samplers = []; + + for ( let i = 0; i < tracks.length; ++ i ) { + + const track = tracks[ i ]; + const trackBinding = PropertyBinding.parseTrackName( track.name ); + let trackNode = PropertyBinding.findNode( root, trackBinding.nodeName ); + const trackProperty = PATH_PROPERTIES[ trackBinding.propertyName ]; + + if ( trackBinding.objectName === 'bones' ) { + + if ( trackNode.isSkinnedMesh === true ) { + + trackNode = trackNode.skeleton.getBoneByName( trackBinding.objectIndex ); + + } else { + + trackNode = undefined; + + } + + } + + if ( ! trackNode || ! trackProperty ) { + + console.warn( 'THREE.GLTFExporter: Could not export animation track "%s".', track.name ); + return null; + + } + + const inputItemSize = 1; + let outputItemSize = track.values.length / track.times.length; + + if ( trackProperty === PATH_PROPERTIES.morphTargetInfluences ) { + + outputItemSize /= trackNode.morphTargetInfluences.length; + + } + + let interpolation; + + // @TODO export CubicInterpolant(InterpolateSmooth) as CUBICSPLINE + + // Detecting glTF cubic spline interpolant by checking factory method's special property + // GLTFCubicSplineInterpolant is a custom interpolant and track doesn't return + // valid value from .getInterpolation(). + if ( track.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline === true ) { + + interpolation = 'CUBICSPLINE'; + + // itemSize of CUBICSPLINE keyframe is 9 + // (VEC3 * 3: inTangent, splineVertex, and outTangent) + // but needs to be stored as VEC3 so dividing by 3 here. + outputItemSize /= 3; + + } else if ( track.getInterpolation() === InterpolateDiscrete ) { + + interpolation = 'STEP'; + + } else { + + interpolation = 'LINEAR'; + + } + + samplers.push( { + input: this.processAccessor( new BufferAttribute$1( track.times, inputItemSize ) ), + output: this.processAccessor( new BufferAttribute$1( track.values, outputItemSize ) ), + interpolation: interpolation + } ); + + channels.push( { + sampler: samplers.length - 1, + target: { + node: nodeMap.get( trackNode ), + path: trackProperty + } + } ); + + } + + json.animations.push( { + name: clip.name || 'clip_' + json.animations.length, + samplers: samplers, + channels: channels + } ); + + return json.animations.length - 1; + + } + + /** + * @param {THREE.Object3D} object + * @return {number|null} + */ + processSkin( object ) { + + const json = this.json; + const nodeMap = this.nodeMap; + + const node = json.nodes[ nodeMap.get( object ) ]; + + const skeleton = object.skeleton; + + if ( skeleton === undefined ) return null; + + const rootJoint = object.skeleton.bones[ 0 ]; + + if ( rootJoint === undefined ) return null; + + const joints = []; + const inverseBindMatrices = new Float32Array( skeleton.bones.length * 16 ); + const temporaryBoneInverse = new Matrix4(); + + for ( let i = 0; i < skeleton.bones.length; ++ i ) { + + joints.push( nodeMap.get( skeleton.bones[ i ] ) ); + temporaryBoneInverse.copy( skeleton.boneInverses[ i ] ); + temporaryBoneInverse.multiply( object.bindMatrix ).toArray( inverseBindMatrices, i * 16 ); + + } + + if ( json.skins === undefined ) json.skins = []; + + json.skins.push( { + inverseBindMatrices: this.processAccessor( new BufferAttribute$1( inverseBindMatrices, 16 ) ), + joints: joints, + skeleton: nodeMap.get( rootJoint ) + } ); + + const skinIndex = node.skin = json.skins.length - 1; + + return skinIndex; + + } + + /** + * Process Object3D node + * @param {THREE.Object3D} node Object3D to processNode + * @return {Integer} Index of the node in the nodes list + */ + processNode( object ) { + + const json = this.json; + const options = this.options; + const nodeMap = this.nodeMap; + + if ( ! json.nodes ) json.nodes = []; + + const nodeDef = {}; + + if ( options.trs ) { + + const rotation = object.quaternion.toArray(); + const position = object.position.toArray(); + const scale = object.scale.toArray(); + + if ( ! equalArray( rotation, [ 0, 0, 0, 1 ] ) ) { + + nodeDef.rotation = rotation; + + } + + if ( ! equalArray( position, [ 0, 0, 0 ] ) ) { + + nodeDef.translation = position; + + } + + if ( ! equalArray( scale, [ 1, 1, 1 ] ) ) { + + nodeDef.scale = scale; + + } + + } else { + + if ( object.matrixAutoUpdate ) { + + object.updateMatrix(); + + } + + if ( isIdentityMatrix( object.matrix ) === false ) { + + nodeDef.matrix = object.matrix.elements; + + } + + } + + // We don't export empty strings name because it represents no-name in Three.js. + if ( object.name !== '' ) nodeDef.name = String( object.name ); + + this.serializeUserData( object, nodeDef ); + + if ( object.isMesh || object.isLine || object.isPoints ) { + + const meshIndex = this.processMesh( object ); + + if ( meshIndex !== null ) nodeDef.mesh = meshIndex; + + } else if ( object.isCamera ) { + + nodeDef.camera = this.processCamera( object ); + + } + + if ( object.isSkinnedMesh ) this.skins.push( object ); + + if ( object.children.length > 0 ) { + + const children = []; + + for ( let i = 0, l = object.children.length; i < l; i ++ ) { + + const child = object.children[ i ]; + + if ( child.visible || options.onlyVisible === false ) { + + const nodeIndex = this.processNode( child ); + + if ( nodeIndex !== null ) children.push( nodeIndex ); + + } + + } + + if ( children.length > 0 ) nodeDef.children = children; + + } + + this._invokeAll( function ( ext ) { + + ext.writeNode && ext.writeNode( object, nodeDef ); + + } ); + + const nodeIndex = json.nodes.push( nodeDef ) - 1; + nodeMap.set( object, nodeIndex ); + return nodeIndex; + + } + + /** + * Process Scene + * @param {Scene} node Scene to process + */ + processScene( scene ) { + + const json = this.json; + const options = this.options; + + if ( ! json.scenes ) { + + json.scenes = []; + json.scene = 0; + + } + + const sceneDef = {}; + + if ( scene.name !== '' ) sceneDef.name = scene.name; + + json.scenes.push( sceneDef ); + + const nodes = []; + + for ( let i = 0, l = scene.children.length; i < l; i ++ ) { + + const child = scene.children[ i ]; + + if ( child.visible || options.onlyVisible === false ) { + + const nodeIndex = this.processNode( child ); + + if ( nodeIndex !== null ) nodes.push( nodeIndex ); + + } + + } + + if ( nodes.length > 0 ) sceneDef.nodes = nodes; + + this.serializeUserData( scene, sceneDef ); + + } + + /** + * Creates a Scene to hold a list of objects and parse it + * @param {Array} objects List of objects to process + */ + processObjects( objects ) { + + const scene = new Scene(); + scene.name = 'AuxScene'; + + for ( let i = 0; i < objects.length; i ++ ) { + + // We push directly to children instead of calling `add` to prevent + // modify the .parent and break its original scene and hierarchy + scene.children.push( objects[ i ] ); + + } + + this.processScene( scene ); + + } + + /** + * @param {THREE.Object3D|Array} input + */ + processInput( input ) { + + const options = this.options; + + input = input instanceof Array ? input : [ input ]; + + this._invokeAll( function ( ext ) { + + ext.beforeParse && ext.beforeParse( input ); + + } ); + + const objectsWithoutScene = []; + + for ( let i = 0; i < input.length; i ++ ) { + + if ( input[ i ] instanceof Scene ) { + + this.processScene( input[ i ] ); + + } else { + + objectsWithoutScene.push( input[ i ] ); + + } + + } + + if ( objectsWithoutScene.length > 0 ) this.processObjects( objectsWithoutScene ); + + for ( let i = 0; i < this.skins.length; ++ i ) { + + this.processSkin( this.skins[ i ] ); + + } + + for ( let i = 0; i < options.animations.length; ++ i ) { + + this.processAnimation( options.animations[ i ], input[ 0 ] ); + + } + + this._invokeAll( function ( ext ) { + + ext.afterParse && ext.afterParse( input ); + + } ); + + } + + _invokeAll( func ) { + + for ( let i = 0, il = this.plugins.length; i < il; i ++ ) { + + func( this.plugins[ i ] ); + + } + + } + +} + +/** + * Punctual Lights Extension + * + * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_lights_punctual + */ +class GLTFLightExtension { + + constructor( writer ) { + + this.writer = writer; + this.name = 'KHR_lights_punctual'; + + } + + writeNode( light, nodeDef ) { + + if ( ! light.isLight ) return; + + if ( ! light.isDirectionalLight && ! light.isPointLight && ! light.isSpotLight ) { + + console.warn( 'THREE.GLTFExporter: Only directional, point, and spot lights are supported.', light ); + return; + + } + + const writer = this.writer; + const json = writer.json; + const extensionsUsed = writer.extensionsUsed; + + const lightDef = {}; + + if ( light.name ) lightDef.name = light.name; + + lightDef.color = light.color.toArray(); + + lightDef.intensity = light.intensity; + + if ( light.isDirectionalLight ) { + + lightDef.type = 'directional'; + + } else if ( light.isPointLight ) { + + lightDef.type = 'point'; + + if ( light.distance > 0 ) lightDef.range = light.distance; + + } else if ( light.isSpotLight ) { + + lightDef.type = 'spot'; + + if ( light.distance > 0 ) lightDef.range = light.distance; + + lightDef.spot = {}; + lightDef.spot.innerConeAngle = ( light.penumbra - 1.0 ) * light.angle * - 1.0; + lightDef.spot.outerConeAngle = light.angle; + + } + + if ( light.decay !== undefined && light.decay !== 2 ) { + + console.warn( 'THREE.GLTFExporter: Light decay may be lost. glTF is physically-based, ' + + 'and expects light.decay=2.' ); + + } + + if ( light.target + && ( light.target.parent !== light + || light.target.position.x !== 0 + || light.target.position.y !== 0 + || light.target.position.z !== - 1 ) ) { + + console.warn( 'THREE.GLTFExporter: Light direction may be lost. For best results, ' + + 'make light.target a child of the light with position 0,0,-1.' ); + + } + + if ( ! extensionsUsed[ this.name ] ) { + + json.extensions = json.extensions || {}; + json.extensions[ this.name ] = { lights: [] }; + extensionsUsed[ this.name ] = true; + + } + + const lights = json.extensions[ this.name ].lights; + lights.push( lightDef ); + + nodeDef.extensions = nodeDef.extensions || {}; + nodeDef.extensions[ this.name ] = { light: lights.length - 1 }; + + } + +} + +/** + * Unlit Materials Extension + * + * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_unlit + */ +class GLTFMaterialsUnlitExtension { + + constructor( writer ) { + + this.writer = writer; + this.name = 'KHR_materials_unlit'; + + } + + writeMaterial( material, materialDef ) { + + if ( ! material.isMeshBasicMaterial ) return; + + const writer = this.writer; + const extensionsUsed = writer.extensionsUsed; + + materialDef.extensions = materialDef.extensions || {}; + materialDef.extensions[ this.name ] = {}; + + extensionsUsed[ this.name ] = true; + + materialDef.pbrMetallicRoughness.metallicFactor = 0.0; + materialDef.pbrMetallicRoughness.roughnessFactor = 0.9; + + } + +} + +/** + * Clearcoat Materials Extension + * + * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_clearcoat + */ +class GLTFMaterialsClearcoatExtension { + + constructor( writer ) { + + this.writer = writer; + this.name = 'KHR_materials_clearcoat'; + + } + + writeMaterial( material, materialDef ) { + + if ( ! material.isMeshPhysicalMaterial || material.clearcoat === 0 ) return; + + const writer = this.writer; + const extensionsUsed = writer.extensionsUsed; + + const extensionDef = {}; + + extensionDef.clearcoatFactor = material.clearcoat; + + if ( material.clearcoatMap ) { + + const clearcoatMapDef = { + index: writer.processTexture( material.clearcoatMap ), + texCoord: material.clearcoatMap.channel + }; + writer.applyTextureTransform( clearcoatMapDef, material.clearcoatMap ); + extensionDef.clearcoatTexture = clearcoatMapDef; + + } + + extensionDef.clearcoatRoughnessFactor = material.clearcoatRoughness; + + if ( material.clearcoatRoughnessMap ) { + + const clearcoatRoughnessMapDef = { + index: writer.processTexture( material.clearcoatRoughnessMap ), + texCoord: material.clearcoatRoughnessMap.channel + }; + writer.applyTextureTransform( clearcoatRoughnessMapDef, material.clearcoatRoughnessMap ); + extensionDef.clearcoatRoughnessTexture = clearcoatRoughnessMapDef; + + } + + if ( material.clearcoatNormalMap ) { + + const clearcoatNormalMapDef = { + index: writer.processTexture( material.clearcoatNormalMap ), + texCoord: material.clearcoatNormalMap.channel + }; + writer.applyTextureTransform( clearcoatNormalMapDef, material.clearcoatNormalMap ); + extensionDef.clearcoatNormalTexture = clearcoatNormalMapDef; + + } + + materialDef.extensions = materialDef.extensions || {}; + materialDef.extensions[ this.name ] = extensionDef; + + extensionsUsed[ this.name ] = true; + + + } + +} + +/** + * Iridescence Materials Extension + * + * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_iridescence + */ +class GLTFMaterialsIridescenceExtension { + + constructor( writer ) { + + this.writer = writer; + this.name = 'KHR_materials_iridescence'; + + } + + writeMaterial( material, materialDef ) { + + if ( ! material.isMeshPhysicalMaterial || material.iridescence === 0 ) return; + + const writer = this.writer; + const extensionsUsed = writer.extensionsUsed; + + const extensionDef = {}; + + extensionDef.iridescenceFactor = material.iridescence; + + if ( material.iridescenceMap ) { + + const iridescenceMapDef = { + index: writer.processTexture( material.iridescenceMap ), + texCoord: material.iridescenceMap.channel + }; + writer.applyTextureTransform( iridescenceMapDef, material.iridescenceMap ); + extensionDef.iridescenceTexture = iridescenceMapDef; + + } + + extensionDef.iridescenceIor = material.iridescenceIOR; + extensionDef.iridescenceThicknessMinimum = material.iridescenceThicknessRange[ 0 ]; + extensionDef.iridescenceThicknessMaximum = material.iridescenceThicknessRange[ 1 ]; + + if ( material.iridescenceThicknessMap ) { + + const iridescenceThicknessMapDef = { + index: writer.processTexture( material.iridescenceThicknessMap ), + texCoord: material.iridescenceThicknessMap.channel + }; + writer.applyTextureTransform( iridescenceThicknessMapDef, material.iridescenceThicknessMap ); + extensionDef.iridescenceThicknessTexture = iridescenceThicknessMapDef; + + } + + materialDef.extensions = materialDef.extensions || {}; + materialDef.extensions[ this.name ] = extensionDef; + + extensionsUsed[ this.name ] = true; + + } + +} + +/** + * Transmission Materials Extension + * + * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_transmission + */ +class GLTFMaterialsTransmissionExtension { + + constructor( writer ) { + + this.writer = writer; + this.name = 'KHR_materials_transmission'; + + } + + writeMaterial( material, materialDef ) { + + if ( ! material.isMeshPhysicalMaterial || material.transmission === 0 ) return; + + const writer = this.writer; + const extensionsUsed = writer.extensionsUsed; + + const extensionDef = {}; + + extensionDef.transmissionFactor = material.transmission; + + if ( material.transmissionMap ) { + + const transmissionMapDef = { + index: writer.processTexture( material.transmissionMap ), + texCoord: material.transmissionMap.channel + }; + writer.applyTextureTransform( transmissionMapDef, material.transmissionMap ); + extensionDef.transmissionTexture = transmissionMapDef; + + } + + materialDef.extensions = materialDef.extensions || {}; + materialDef.extensions[ this.name ] = extensionDef; + + extensionsUsed[ this.name ] = true; + + } + +} + +/** + * Materials Volume Extension + * + * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_volume + */ +class GLTFMaterialsVolumeExtension { + + constructor( writer ) { + + this.writer = writer; + this.name = 'KHR_materials_volume'; + + } + + writeMaterial( material, materialDef ) { + + if ( ! material.isMeshPhysicalMaterial || material.transmission === 0 ) return; + + const writer = this.writer; + const extensionsUsed = writer.extensionsUsed; + + const extensionDef = {}; + + extensionDef.thicknessFactor = material.thickness; + + if ( material.thicknessMap ) { + + const thicknessMapDef = { + index: writer.processTexture( material.thicknessMap ), + texCoord: material.thicknessMap.channel + }; + writer.applyTextureTransform( thicknessMapDef, material.thicknessMap ); + extensionDef.thicknessTexture = thicknessMapDef; + + } + + extensionDef.attenuationDistance = material.attenuationDistance; + extensionDef.attenuationColor = material.attenuationColor.toArray(); + + materialDef.extensions = materialDef.extensions || {}; + materialDef.extensions[ this.name ] = extensionDef; + + extensionsUsed[ this.name ] = true; + + } + +} + +/** + * Materials ior Extension + * + * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_ior + */ +class GLTFMaterialsIorExtension { + + constructor( writer ) { + + this.writer = writer; + this.name = 'KHR_materials_ior'; + + } + + writeMaterial( material, materialDef ) { + + if ( ! material.isMeshPhysicalMaterial || material.ior === 1.5 ) return; + + const writer = this.writer; + const extensionsUsed = writer.extensionsUsed; + + const extensionDef = {}; + + extensionDef.ior = material.ior; + + materialDef.extensions = materialDef.extensions || {}; + materialDef.extensions[ this.name ] = extensionDef; + + extensionsUsed[ this.name ] = true; + + } + +} + +/** + * Materials specular Extension + * + * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_specular + */ +class GLTFMaterialsSpecularExtension { + + constructor( writer ) { + + this.writer = writer; + this.name = 'KHR_materials_specular'; + + } + + writeMaterial( material, materialDef ) { + + if ( ! material.isMeshPhysicalMaterial || ( material.specularIntensity === 1.0 && + material.specularColor.equals( DEFAULT_SPECULAR_COLOR ) && + ! material.specularIntensityMap && ! material.specularColorTexture ) ) return; + + const writer = this.writer; + const extensionsUsed = writer.extensionsUsed; + + const extensionDef = {}; + + if ( material.specularIntensityMap ) { + + const specularIntensityMapDef = { + index: writer.processTexture( material.specularIntensityMap ), + texCoord: material.specularIntensityMap.channel + }; + writer.applyTextureTransform( specularIntensityMapDef, material.specularIntensityMap ); + extensionDef.specularTexture = specularIntensityMapDef; + + } + + if ( material.specularColorMap ) { + + const specularColorMapDef = { + index: writer.processTexture( material.specularColorMap ), + texCoord: material.specularColorMap.channel + }; + writer.applyTextureTransform( specularColorMapDef, material.specularColorMap ); + extensionDef.specularColorTexture = specularColorMapDef; + + } + + extensionDef.specularFactor = material.specularIntensity; + extensionDef.specularColorFactor = material.specularColor.toArray(); + + materialDef.extensions = materialDef.extensions || {}; + materialDef.extensions[ this.name ] = extensionDef; + + extensionsUsed[ this.name ] = true; + + } + +} + +/** + * Sheen Materials Extension + * + * Specification: https://github.com/KhronosGroup/glTF/tree/main/extensions/2.0/Khronos/KHR_materials_sheen + */ +class GLTFMaterialsSheenExtension { + + constructor( writer ) { + + this.writer = writer; + this.name = 'KHR_materials_sheen'; + + } + + writeMaterial( material, materialDef ) { + + if ( ! material.isMeshPhysicalMaterial || material.sheen == 0.0 ) return; + + const writer = this.writer; + const extensionsUsed = writer.extensionsUsed; + + const extensionDef = {}; + + if ( material.sheenRoughnessMap ) { + + const sheenRoughnessMapDef = { + index: writer.processTexture( material.sheenRoughnessMap ), + texCoord: material.sheenRoughnessMap.channel + }; + writer.applyTextureTransform( sheenRoughnessMapDef, material.sheenRoughnessMap ); + extensionDef.sheenRoughnessTexture = sheenRoughnessMapDef; + + } + + if ( material.sheenColorMap ) { + + const sheenColorMapDef = { + index: writer.processTexture( material.sheenColorMap ), + texCoord: material.sheenColorMap.channel + }; + writer.applyTextureTransform( sheenColorMapDef, material.sheenColorMap ); + extensionDef.sheenColorTexture = sheenColorMapDef; + + } + + extensionDef.sheenRoughnessFactor = material.sheenRoughness; + extensionDef.sheenColorFactor = material.sheenColor.toArray(); + + materialDef.extensions = materialDef.extensions || {}; + materialDef.extensions[ this.name ] = extensionDef; + + extensionsUsed[ this.name ] = true; + + } + +} + +/** + * Materials Emissive Strength Extension + * + * Specification: https://github.com/KhronosGroup/glTF/blob/5768b3ce0ef32bc39cdf1bef10b948586635ead3/extensions/2.0/Khronos/KHR_materials_emissive_strength/README.md + */ +class GLTFMaterialsEmissiveStrengthExtension { + + constructor( writer ) { + + this.writer = writer; + this.name = 'KHR_materials_emissive_strength'; + + } + + writeMaterial( material, materialDef ) { + + if ( ! material.isMeshStandardMaterial || material.emissiveIntensity === 1.0 ) return; + + const writer = this.writer; + const extensionsUsed = writer.extensionsUsed; + + const extensionDef = {}; + + extensionDef.emissiveStrength = material.emissiveIntensity; + + materialDef.extensions = materialDef.extensions || {}; + materialDef.extensions[ this.name ] = extensionDef; + + extensionsUsed[ this.name ] = true; + + } + +} + +/** + * Static utility functions + */ +GLTFExporter.Utils = { + + insertKeyframe: function ( track, time ) { + + const tolerance = 0.001; // 1ms + const valueSize = track.getValueSize(); + + const times = new track.TimeBufferType( track.times.length + 1 ); + const values = new track.ValueBufferType( track.values.length + valueSize ); + const interpolant = track.createInterpolant( new track.ValueBufferType( valueSize ) ); + + let index; + + if ( track.times.length === 0 ) { + + times[ 0 ] = time; + + for ( let i = 0; i < valueSize; i ++ ) { + + values[ i ] = 0; + + } + + index = 0; + + } else if ( time < track.times[ 0 ] ) { + + if ( Math.abs( track.times[ 0 ] - time ) < tolerance ) return 0; + + times[ 0 ] = time; + times.set( track.times, 1 ); + + values.set( interpolant.evaluate( time ), 0 ); + values.set( track.values, valueSize ); + + index = 0; + + } else if ( time > track.times[ track.times.length - 1 ] ) { + + if ( Math.abs( track.times[ track.times.length - 1 ] - time ) < tolerance ) { + + return track.times.length - 1; + + } + + times[ times.length - 1 ] = time; + times.set( track.times, 0 ); + + values.set( track.values, 0 ); + values.set( interpolant.evaluate( time ), track.values.length ); + + index = times.length - 1; + + } else { + + for ( let i = 0; i < track.times.length; i ++ ) { + + if ( Math.abs( track.times[ i ] - time ) < tolerance ) return i; + + if ( track.times[ i ] < time && track.times[ i + 1 ] > time ) { + + times.set( track.times.slice( 0, i + 1 ), 0 ); + times[ i + 1 ] = time; + times.set( track.times.slice( i + 1 ), i + 2 ); + + values.set( track.values.slice( 0, ( i + 1 ) * valueSize ), 0 ); + values.set( interpolant.evaluate( time ), ( i + 1 ) * valueSize ); + values.set( track.values.slice( ( i + 1 ) * valueSize ), ( i + 2 ) * valueSize ); + + index = i + 1; + + break; + + } + + } + + } + + track.times = times; + track.values = values; + + return index; + + }, + + mergeMorphTargetTracks: function ( clip, root ) { + + const tracks = []; + const mergedTracks = {}; + const sourceTracks = clip.tracks; + + for ( let i = 0; i < sourceTracks.length; ++ i ) { + + let sourceTrack = sourceTracks[ i ]; + const sourceTrackBinding = PropertyBinding.parseTrackName( sourceTrack.name ); + const sourceTrackNode = PropertyBinding.findNode( root, sourceTrackBinding.nodeName ); + + if ( sourceTrackBinding.propertyName !== 'morphTargetInfluences' || sourceTrackBinding.propertyIndex === undefined ) { + + // Tracks that don't affect morph targets, or that affect all morph targets together, can be left as-is. + tracks.push( sourceTrack ); + continue; + + } + + if ( sourceTrack.createInterpolant !== sourceTrack.InterpolantFactoryMethodDiscrete + && sourceTrack.createInterpolant !== sourceTrack.InterpolantFactoryMethodLinear ) { + + if ( sourceTrack.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline ) { + + // This should never happen, because glTF morph target animations + // affect all targets already. + throw new Error( 'THREE.GLTFExporter: Cannot merge tracks with glTF CUBICSPLINE interpolation.' ); + + } + + console.warn( 'THREE.GLTFExporter: Morph target interpolation mode not yet supported. Using LINEAR instead.' ); + + sourceTrack = sourceTrack.clone(); + sourceTrack.setInterpolation( InterpolateLinear ); + + } + + const targetCount = sourceTrackNode.morphTargetInfluences.length; + const targetIndex = sourceTrackNode.morphTargetDictionary[ sourceTrackBinding.propertyIndex ]; + + if ( targetIndex === undefined ) { + + throw new Error( 'THREE.GLTFExporter: Morph target name not found: ' + sourceTrackBinding.propertyIndex ); + + } + + let mergedTrack; + + // If this is the first time we've seen this object, create a new + // track to store merged keyframe data for each morph target. + if ( mergedTracks[ sourceTrackNode.uuid ] === undefined ) { + + mergedTrack = sourceTrack.clone(); + + const values = new mergedTrack.ValueBufferType( targetCount * mergedTrack.times.length ); + + for ( let j = 0; j < mergedTrack.times.length; j ++ ) { + + values[ j * targetCount + targetIndex ] = mergedTrack.values[ j ]; + + } + + // We need to take into consideration the intended target node + // of our original un-merged morphTarget animation. + mergedTrack.name = ( sourceTrackBinding.nodeName || '' ) + '.morphTargetInfluences'; + mergedTrack.values = values; + + mergedTracks[ sourceTrackNode.uuid ] = mergedTrack; + tracks.push( mergedTrack ); + + continue; + + } + + const sourceInterpolant = sourceTrack.createInterpolant( new sourceTrack.ValueBufferType( 1 ) ); + + mergedTrack = mergedTracks[ sourceTrackNode.uuid ]; + + // For every existing keyframe of the merged track, write a (possibly + // interpolated) value from the source track. + for ( let j = 0; j < mergedTrack.times.length; j ++ ) { + + mergedTrack.values[ j * targetCount + targetIndex ] = sourceInterpolant.evaluate( mergedTrack.times[ j ] ); + + } + + // For every existing keyframe of the source track, write a (possibly + // new) keyframe to the merged track. Values from the previous loop may + // be written again, but keyframes are de-duplicated. + for ( let j = 0; j < sourceTrack.times.length; j ++ ) { + + const keyframeIndex = this.insertKeyframe( mergedTrack, sourceTrack.times[ j ] ); + mergedTrack.values[ keyframeIndex * targetCount + targetIndex ] = sourceTrack.values[ j ]; + + } + + } + + clip.tracks = tracks; + + return clip; + + } + +}; + +class Quaternion { + + constructor( x = 0, y = 0, z = 0, w = 1 ) { + + this.isQuaternion = true; + + this._x = x; + this._y = y; + this._z = z; + this._w = w; + + } + + static slerpFlat( dst, dstOffset, src0, srcOffset0, src1, srcOffset1, t ) { + + // fuzz-free, array-based Quaternion SLERP operation + + let x0 = src0[ srcOffset0 + 0 ], + y0 = src0[ srcOffset0 + 1 ], + z0 = src0[ srcOffset0 + 2 ], + w0 = src0[ srcOffset0 + 3 ]; + + const x1 = src1[ srcOffset1 + 0 ], + y1 = src1[ srcOffset1 + 1 ], + z1 = src1[ srcOffset1 + 2 ], + w1 = src1[ srcOffset1 + 3 ]; + + if ( t === 0 ) { + + dst[ dstOffset + 0 ] = x0; + dst[ dstOffset + 1 ] = y0; + dst[ dstOffset + 2 ] = z0; + dst[ dstOffset + 3 ] = w0; + return; + + } + + if ( t === 1 ) { + + dst[ dstOffset + 0 ] = x1; + dst[ dstOffset + 1 ] = y1; + dst[ dstOffset + 2 ] = z1; + dst[ dstOffset + 3 ] = w1; + return; + + } + + if ( w0 !== w1 || x0 !== x1 || y0 !== y1 || z0 !== z1 ) { + + let s = 1 - t; + const cos = x0 * x1 + y0 * y1 + z0 * z1 + w0 * w1, + dir = ( cos >= 0 ? 1 : - 1 ), + sqrSin = 1 - cos * cos; + + // Skip the Slerp for tiny steps to avoid numeric problems: + if ( sqrSin > Number.EPSILON ) { + + const sin = Math.sqrt( sqrSin ), + len = Math.atan2( sin, cos * dir ); + + s = Math.sin( s * len ) / sin; + t = Math.sin( t * len ) / sin; + + } + + const tDir = t * dir; + + x0 = x0 * s + x1 * tDir; + y0 = y0 * s + y1 * tDir; + z0 = z0 * s + z1 * tDir; + w0 = w0 * s + w1 * tDir; + + // Normalize in case we just did a lerp: + if ( s === 1 - t ) { + + const f = 1 / Math.sqrt( x0 * x0 + y0 * y0 + z0 * z0 + w0 * w0 ); + + x0 *= f; + y0 *= f; + z0 *= f; + w0 *= f; + + } + + } + + dst[ dstOffset ] = x0; + dst[ dstOffset + 1 ] = y0; + dst[ dstOffset + 2 ] = z0; + dst[ dstOffset + 3 ] = w0; + + } + + static multiplyQuaternionsFlat( dst, dstOffset, src0, srcOffset0, src1, srcOffset1 ) { + + const x0 = src0[ srcOffset0 ]; + const y0 = src0[ srcOffset0 + 1 ]; + const z0 = src0[ srcOffset0 + 2 ]; + const w0 = src0[ srcOffset0 + 3 ]; + + const x1 = src1[ srcOffset1 ]; + const y1 = src1[ srcOffset1 + 1 ]; + const z1 = src1[ srcOffset1 + 2 ]; + const w1 = src1[ srcOffset1 + 3 ]; + + dst[ dstOffset ] = x0 * w1 + w0 * x1 + y0 * z1 - z0 * y1; + dst[ dstOffset + 1 ] = y0 * w1 + w0 * y1 + z0 * x1 - x0 * z1; + dst[ dstOffset + 2 ] = z0 * w1 + w0 * z1 + x0 * y1 - y0 * x1; + dst[ dstOffset + 3 ] = w0 * w1 - x0 * x1 - y0 * y1 - z0 * z1; + + return dst; + + } + + get x() { + + return this._x; + + } + + set x( value ) { + + this._x = value; + this._onChangeCallback(); + + } + + get y() { + + return this._y; + + } + + set y( value ) { + + this._y = value; + this._onChangeCallback(); + + } + + get z() { + + return this._z; + + } + + set z( value ) { + + this._z = value; + this._onChangeCallback(); + + } + + get w() { + + return this._w; + + } + + set w( value ) { + + this._w = value; + this._onChangeCallback(); + + } + + set( x, y, z, w ) { + + this._x = x; + this._y = y; + this._z = z; + this._w = w; + + this._onChangeCallback(); + + return this; + + } + + clone() { + + return new this.constructor( this._x, this._y, this._z, this._w ); + + } + + copy( quaternion ) { + + this._x = quaternion.x; + this._y = quaternion.y; + this._z = quaternion.z; + this._w = quaternion.w; + + this._onChangeCallback(); + + return this; + + } + + setFromEuler( euler, update ) { + + const x = euler._x, y = euler._y, z = euler._z, order = euler._order; + + // http://www.mathworks.com/matlabcentral/fileexchange/ + // 20696-function-to-convert-between-dcm-euler-angles-quaternions-and-euler-vectors/ + // content/SpinCalc.m + + const cos = Math.cos; + const sin = Math.sin; + + const c1 = cos( x / 2 ); + const c2 = cos( y / 2 ); + const c3 = cos( z / 2 ); + + const s1 = sin( x / 2 ); + const s2 = sin( y / 2 ); + const s3 = sin( z / 2 ); + + switch ( order ) { + + case 'XYZ': + this._x = s1 * c2 * c3 + c1 * s2 * s3; + this._y = c1 * s2 * c3 - s1 * c2 * s3; + this._z = c1 * c2 * s3 + s1 * s2 * c3; + this._w = c1 * c2 * c3 - s1 * s2 * s3; + break; + + case 'YXZ': + this._x = s1 * c2 * c3 + c1 * s2 * s3; + this._y = c1 * s2 * c3 - s1 * c2 * s3; + this._z = c1 * c2 * s3 - s1 * s2 * c3; + this._w = c1 * c2 * c3 + s1 * s2 * s3; + break; + + case 'ZXY': + this._x = s1 * c2 * c3 - c1 * s2 * s3; + this._y = c1 * s2 * c3 + s1 * c2 * s3; + this._z = c1 * c2 * s3 + s1 * s2 * c3; + this._w = c1 * c2 * c3 - s1 * s2 * s3; + break; + + case 'ZYX': + this._x = s1 * c2 * c3 - c1 * s2 * s3; + this._y = c1 * s2 * c3 + s1 * c2 * s3; + this._z = c1 * c2 * s3 - s1 * s2 * c3; + this._w = c1 * c2 * c3 + s1 * s2 * s3; + break; + + case 'YZX': + this._x = s1 * c2 * c3 + c1 * s2 * s3; + this._y = c1 * s2 * c3 + s1 * c2 * s3; + this._z = c1 * c2 * s3 - s1 * s2 * c3; + this._w = c1 * c2 * c3 - s1 * s2 * s3; + break; + + case 'XZY': + this._x = s1 * c2 * c3 - c1 * s2 * s3; + this._y = c1 * s2 * c3 - s1 * c2 * s3; + this._z = c1 * c2 * s3 + s1 * s2 * c3; + this._w = c1 * c2 * c3 + s1 * s2 * s3; + break; + + default: + console.warn( 'THREE.Quaternion: .setFromEuler() encountered an unknown order: ' + order ); + + } + + if ( update !== false ) this._onChangeCallback(); + + return this; + + } + + setFromAxisAngle( axis, angle ) { + + // http://www.euclideanspace.com/maths/geometry/rotations/conversions/angleToQuaternion/index.htm + + // assumes axis is normalized + + const halfAngle = angle / 2, s = Math.sin( halfAngle ); + + this._x = axis.x * s; + this._y = axis.y * s; + this._z = axis.z * s; + this._w = Math.cos( halfAngle ); + + this._onChangeCallback(); + + return this; + + } + + setFromRotationMatrix( m ) { + + // http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToQuaternion/index.htm + + // assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled) + + const te = m.elements, + + m11 = te[ 0 ], m12 = te[ 4 ], m13 = te[ 8 ], + m21 = te[ 1 ], m22 = te[ 5 ], m23 = te[ 9 ], + m31 = te[ 2 ], m32 = te[ 6 ], m33 = te[ 10 ], + + trace = m11 + m22 + m33; + + if ( trace > 0 ) { + + const s = 0.5 / Math.sqrt( trace + 1.0 ); + + this._w = 0.25 / s; + this._x = ( m32 - m23 ) * s; + this._y = ( m13 - m31 ) * s; + this._z = ( m21 - m12 ) * s; + + } else if ( m11 > m22 && m11 > m33 ) { + + const s = 2.0 * Math.sqrt( 1.0 + m11 - m22 - m33 ); + + this._w = ( m32 - m23 ) / s; + this._x = 0.25 * s; + this._y = ( m12 + m21 ) / s; + this._z = ( m13 + m31 ) / s; + + } else if ( m22 > m33 ) { + + const s = 2.0 * Math.sqrt( 1.0 + m22 - m11 - m33 ); + + this._w = ( m13 - m31 ) / s; + this._x = ( m12 + m21 ) / s; + this._y = 0.25 * s; + this._z = ( m23 + m32 ) / s; + + } else { + + const s = 2.0 * Math.sqrt( 1.0 + m33 - m11 - m22 ); + + this._w = ( m21 - m12 ) / s; + this._x = ( m13 + m31 ) / s; + this._y = ( m23 + m32 ) / s; + this._z = 0.25 * s; + + } + + this._onChangeCallback(); + + return this; + + } + + setFromUnitVectors( vFrom, vTo ) { + + // assumes direction vectors vFrom and vTo are normalized + + let r = vFrom.dot( vTo ) + 1; + + if ( r < Number.EPSILON ) { + + // vFrom and vTo point in opposite directions + + r = 0; + + if ( Math.abs( vFrom.x ) > Math.abs( vFrom.z ) ) { + + this._x = - vFrom.y; + this._y = vFrom.x; + this._z = 0; + this._w = r; + + } else { + + this._x = 0; + this._y = - vFrom.z; + this._z = vFrom.y; + this._w = r; + + } + + } else { + + // crossVectors( vFrom, vTo ); // inlined to avoid cyclic dependency on Vector3 + + this._x = vFrom.y * vTo.z - vFrom.z * vTo.y; + this._y = vFrom.z * vTo.x - vFrom.x * vTo.z; + this._z = vFrom.x * vTo.y - vFrom.y * vTo.x; + this._w = r; + + } + + return this.normalize(); + + } + + angleTo( q ) { + + return 2 * Math.acos( Math.abs( clamp( this.dot( q ), - 1, 1 ) ) ); + + } + + rotateTowards( q, step ) { + + const angle = this.angleTo( q ); + + if ( angle === 0 ) return this; + + const t = Math.min( 1, step / angle ); + + this.slerp( q, t ); + + return this; + + } + + identity() { + + return this.set( 0, 0, 0, 1 ); + + } + + invert() { + + // quaternion is assumed to have unit length + + return this.conjugate(); + + } + + conjugate() { + + this._x *= - 1; + this._y *= - 1; + this._z *= - 1; + + this._onChangeCallback(); + + return this; + + } + + dot( v ) { + + return this._x * v._x + this._y * v._y + this._z * v._z + this._w * v._w; + + } + + lengthSq() { + + return this._x * this._x + this._y * this._y + this._z * this._z + this._w * this._w; + + } + + length() { + + return Math.sqrt( this._x * this._x + this._y * this._y + this._z * this._z + this._w * this._w ); + + } + + normalize() { + + let l = this.length(); + + if ( l === 0 ) { + + this._x = 0; + this._y = 0; + this._z = 0; + this._w = 1; + + } else { + + l = 1 / l; + + this._x = this._x * l; + this._y = this._y * l; + this._z = this._z * l; + this._w = this._w * l; + + } + + this._onChangeCallback(); + + return this; + + } + + multiply( q ) { + + return this.multiplyQuaternions( this, q ); + + } + + premultiply( q ) { + + return this.multiplyQuaternions( q, this ); + + } + + multiplyQuaternions( a, b ) { + + // from http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/code/index.htm + + const qax = a._x, qay = a._y, qaz = a._z, qaw = a._w; + const qbx = b._x, qby = b._y, qbz = b._z, qbw = b._w; + + this._x = qax * qbw + qaw * qbx + qay * qbz - qaz * qby; + this._y = qay * qbw + qaw * qby + qaz * qbx - qax * qbz; + this._z = qaz * qbw + qaw * qbz + qax * qby - qay * qbx; + this._w = qaw * qbw - qax * qbx - qay * qby - qaz * qbz; + + this._onChangeCallback(); + + return this; + + } + + slerp( qb, t ) { + + if ( t === 0 ) return this; + if ( t === 1 ) return this.copy( qb ); + + const x = this._x, y = this._y, z = this._z, w = this._w; + + // http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/slerp/ + + let cosHalfTheta = w * qb._w + x * qb._x + y * qb._y + z * qb._z; + + if ( cosHalfTheta < 0 ) { + + this._w = - qb._w; + this._x = - qb._x; + this._y = - qb._y; + this._z = - qb._z; + + cosHalfTheta = - cosHalfTheta; + + } else { + + this.copy( qb ); + + } + + if ( cosHalfTheta >= 1.0 ) { + + this._w = w; + this._x = x; + this._y = y; + this._z = z; + + return this; + + } + + const sqrSinHalfTheta = 1.0 - cosHalfTheta * cosHalfTheta; + + if ( sqrSinHalfTheta <= Number.EPSILON ) { + + const s = 1 - t; + this._w = s * w + t * this._w; + this._x = s * x + t * this._x; + this._y = s * y + t * this._y; + this._z = s * z + t * this._z; + + this.normalize(); + this._onChangeCallback(); + + return this; + + } + + const sinHalfTheta = Math.sqrt( sqrSinHalfTheta ); + const halfTheta = Math.atan2( sinHalfTheta, cosHalfTheta ); + const ratioA = Math.sin( ( 1 - t ) * halfTheta ) / sinHalfTheta, + ratioB = Math.sin( t * halfTheta ) / sinHalfTheta; + + this._w = ( w * ratioA + this._w * ratioB ); + this._x = ( x * ratioA + this._x * ratioB ); + this._y = ( y * ratioA + this._y * ratioB ); + this._z = ( z * ratioA + this._z * ratioB ); + + this._onChangeCallback(); + + return this; + + } + + slerpQuaternions( qa, qb, t ) { + + return this.copy( qa ).slerp( qb, t ); + + } + + random() { + + // Derived from http://planning.cs.uiuc.edu/node198.html + // Note, this source uses w, x, y, z ordering, + // so we swap the order below. + + const u1 = Math.random(); + const sqrt1u1 = Math.sqrt( 1 - u1 ); + const sqrtu1 = Math.sqrt( u1 ); + + const u2 = 2 * Math.PI * Math.random(); + + const u3 = 2 * Math.PI * Math.random(); + + return this.set( + sqrt1u1 * Math.cos( u2 ), + sqrtu1 * Math.sin( u3 ), + sqrtu1 * Math.cos( u3 ), + sqrt1u1 * Math.sin( u2 ), + ); + + } + + equals( quaternion ) { + + return ( quaternion._x === this._x ) && ( quaternion._y === this._y ) && ( quaternion._z === this._z ) && ( quaternion._w === this._w ); + + } + + fromArray( array, offset = 0 ) { + + this._x = array[ offset ]; + this._y = array[ offset + 1 ]; + this._z = array[ offset + 2 ]; + this._w = array[ offset + 3 ]; + + this._onChangeCallback(); + + return this; + + } + + toArray( array = [], offset = 0 ) { + + array[ offset ] = this._x; + array[ offset + 1 ] = this._y; + array[ offset + 2 ] = this._z; + array[ offset + 3 ] = this._w; + + return array; + + } + + fromBufferAttribute( attribute, index ) { + + this._x = attribute.getX( index ); + this._y = attribute.getY( index ); + this._z = attribute.getZ( index ); + this._w = attribute.getW( index ); + + return this; + + } + + toJSON() { + + return this.toArray(); + + } + + _onChange( callback ) { + + this._onChangeCallback = callback; + + return this; + + } + + _onChangeCallback() {} + + *[ Symbol.iterator ]() { + + yield this._x; + yield this._y; + yield this._z; + yield this._w; + + } + +} + +class Vector3 { + + constructor( x = 0, y = 0, z = 0 ) { + + Vector3.prototype.isVector3 = true; + + this.x = x; + this.y = y; + this.z = z; + + } + + set( x, y, z ) { + + if ( z === undefined ) z = this.z; // sprite.scale.set(x,y) + + this.x = x; + this.y = y; + this.z = z; + + return this; + + } + + setScalar( scalar ) { + + this.x = scalar; + this.y = scalar; + this.z = scalar; + + return this; + + } + + setX( x ) { + + this.x = x; + + return this; + + } + + setY( y ) { + + this.y = y; + + return this; + + } + + setZ( z ) { + + this.z = z; + + return this; + + } + + setComponent( index, value ) { + + switch ( index ) { + + case 0: this.x = value; break; + case 1: this.y = value; break; + case 2: this.z = value; break; + default: throw new Error( 'index is out of range: ' + index ); + + } + + return this; + + } + + getComponent( index ) { + + switch ( index ) { + + case 0: return this.x; + case 1: return this.y; + case 2: return this.z; + default: throw new Error( 'index is out of range: ' + index ); + + } + + } + + clone() { + + return new this.constructor( this.x, this.y, this.z ); + + } + + copy( v ) { + + this.x = v.x; + this.y = v.y; + this.z = v.z; + + return this; + + } + + add( v ) { + + this.x += v.x; + this.y += v.y; + this.z += v.z; + + return this; + + } + + addScalar( s ) { + + this.x += s; + this.y += s; + this.z += s; + + return this; + + } + + addVectors( a, b ) { + + this.x = a.x + b.x; + this.y = a.y + b.y; + this.z = a.z + b.z; + + return this; + + } + + addScaledVector( v, s ) { + + this.x += v.x * s; + this.y += v.y * s; + this.z += v.z * s; + + return this; + + } + + sub( v ) { + + this.x -= v.x; + this.y -= v.y; + this.z -= v.z; + + return this; + + } + + subScalar( s ) { + + this.x -= s; + this.y -= s; + this.z -= s; + + return this; + + } + + subVectors( a, b ) { + + this.x = a.x - b.x; + this.y = a.y - b.y; + this.z = a.z - b.z; + + return this; + + } + + multiply( v ) { + + this.x *= v.x; + this.y *= v.y; + this.z *= v.z; + + return this; + + } + + multiplyScalar( scalar ) { + + this.x *= scalar; + this.y *= scalar; + this.z *= scalar; + + return this; + + } + + multiplyVectors( a, b ) { + + this.x = a.x * b.x; + this.y = a.y * b.y; + this.z = a.z * b.z; + + return this; + + } + + applyEuler( euler ) { + + return this.applyQuaternion( _quaternion.setFromEuler( euler ) ); + + } + + applyAxisAngle( axis, angle ) { + + return this.applyQuaternion( _quaternion.setFromAxisAngle( axis, angle ) ); + + } + + applyMatrix3( m ) { + + const x = this.x, y = this.y, z = this.z; + const e = m.elements; + + this.x = e[ 0 ] * x + e[ 3 ] * y + e[ 6 ] * z; + this.y = e[ 1 ] * x + e[ 4 ] * y + e[ 7 ] * z; + this.z = e[ 2 ] * x + e[ 5 ] * y + e[ 8 ] * z; + + return this; + + } + + applyNormalMatrix( m ) { + + return this.applyMatrix3( m ).normalize(); + + } + + applyMatrix4( m ) { + + const x = this.x, y = this.y, z = this.z; + const e = m.elements; + + const w = 1 / ( e[ 3 ] * x + e[ 7 ] * y + e[ 11 ] * z + e[ 15 ] ); + + this.x = ( e[ 0 ] * x + e[ 4 ] * y + e[ 8 ] * z + e[ 12 ] ) * w; + this.y = ( e[ 1 ] * x + e[ 5 ] * y + e[ 9 ] * z + e[ 13 ] ) * w; + this.z = ( e[ 2 ] * x + e[ 6 ] * y + e[ 10 ] * z + e[ 14 ] ) * w; + + return this; + + } + + applyQuaternion( q ) { + + const x = this.x, y = this.y, z = this.z; + const qx = q.x, qy = q.y, qz = q.z, qw = q.w; + + // calculate quat * vector + + const ix = qw * x + qy * z - qz * y; + const iy = qw * y + qz * x - qx * z; + const iz = qw * z + qx * y - qy * x; + const iw = - qx * x - qy * y - qz * z; + + // calculate result * inverse quat + + this.x = ix * qw + iw * - qx + iy * - qz - iz * - qy; + this.y = iy * qw + iw * - qy + iz * - qx - ix * - qz; + this.z = iz * qw + iw * - qz + ix * - qy - iy * - qx; + + return this; + + } + + project( camera ) { + + return this.applyMatrix4( camera.matrixWorldInverse ).applyMatrix4( camera.projectionMatrix ); + + } + + unproject( camera ) { + + return this.applyMatrix4( camera.projectionMatrixInverse ).applyMatrix4( camera.matrixWorld ); + + } + + transformDirection( m ) { + + // input: THREE.Matrix4 affine matrix + // vector interpreted as a direction + + const x = this.x, y = this.y, z = this.z; + const e = m.elements; + + this.x = e[ 0 ] * x + e[ 4 ] * y + e[ 8 ] * z; + this.y = e[ 1 ] * x + e[ 5 ] * y + e[ 9 ] * z; + this.z = e[ 2 ] * x + e[ 6 ] * y + e[ 10 ] * z; + + return this.normalize(); + + } + + divide( v ) { + + this.x /= v.x; + this.y /= v.y; + this.z /= v.z; + + return this; + + } + + divideScalar( scalar ) { + + return this.multiplyScalar( 1 / scalar ); + + } + + min( v ) { + + this.x = Math.min( this.x, v.x ); + this.y = Math.min( this.y, v.y ); + this.z = Math.min( this.z, v.z ); + + return this; + + } + + max( v ) { + + this.x = Math.max( this.x, v.x ); + this.y = Math.max( this.y, v.y ); + this.z = Math.max( this.z, v.z ); + + return this; + + } + + clamp( min, max ) { + + // assumes min < max, componentwise + + this.x = Math.max( min.x, Math.min( max.x, this.x ) ); + this.y = Math.max( min.y, Math.min( max.y, this.y ) ); + this.z = Math.max( min.z, Math.min( max.z, this.z ) ); + + return this; + + } + + clampScalar( minVal, maxVal ) { + + this.x = Math.max( minVal, Math.min( maxVal, this.x ) ); + this.y = Math.max( minVal, Math.min( maxVal, this.y ) ); + this.z = Math.max( minVal, Math.min( maxVal, this.z ) ); + + return this; + + } + + clampLength( min, max ) { + + const length = this.length(); + + return this.divideScalar( length || 1 ).multiplyScalar( Math.max( min, Math.min( max, length ) ) ); + + } + + floor() { + + this.x = Math.floor( this.x ); + this.y = Math.floor( this.y ); + this.z = Math.floor( this.z ); + + return this; + + } + + ceil() { + + this.x = Math.ceil( this.x ); + this.y = Math.ceil( this.y ); + this.z = Math.ceil( this.z ); + + return this; + + } + + round() { + + this.x = Math.round( this.x ); + this.y = Math.round( this.y ); + this.z = Math.round( this.z ); + + return this; + + } + + roundToZero() { + + this.x = ( this.x < 0 ) ? Math.ceil( this.x ) : Math.floor( this.x ); + this.y = ( this.y < 0 ) ? Math.ceil( this.y ) : Math.floor( this.y ); + this.z = ( this.z < 0 ) ? Math.ceil( this.z ) : Math.floor( this.z ); + + return this; + + } + + negate() { + + this.x = - this.x; + this.y = - this.y; + this.z = - this.z; + + return this; + + } + + dot( v ) { + + return this.x * v.x + this.y * v.y + this.z * v.z; + + } + + // TODO lengthSquared? + + lengthSq() { + + return this.x * this.x + this.y * this.y + this.z * this.z; + + } + + length() { + + return Math.sqrt( this.x * this.x + this.y * this.y + this.z * this.z ); + + } + + manhattanLength() { + + return Math.abs( this.x ) + Math.abs( this.y ) + Math.abs( this.z ); + + } + + normalize() { + + return this.divideScalar( this.length() || 1 ); + + } + + setLength( length ) { + + return this.normalize().multiplyScalar( length ); + + } + + lerp( v, alpha ) { + + this.x += ( v.x - this.x ) * alpha; + this.y += ( v.y - this.y ) * alpha; + this.z += ( v.z - this.z ) * alpha; + + return this; + + } + + lerpVectors( v1, v2, alpha ) { + + this.x = v1.x + ( v2.x - v1.x ) * alpha; + this.y = v1.y + ( v2.y - v1.y ) * alpha; + this.z = v1.z + ( v2.z - v1.z ) * alpha; + + return this; + + } + + cross( v ) { + + return this.crossVectors( this, v ); + + } + + crossVectors( a, b ) { + + const ax = a.x, ay = a.y, az = a.z; + const bx = b.x, by = b.y, bz = b.z; + + this.x = ay * bz - az * by; + this.y = az * bx - ax * bz; + this.z = ax * by - ay * bx; + + return this; + + } + + projectOnVector( v ) { + + const denominator = v.lengthSq(); + + if ( denominator === 0 ) return this.set( 0, 0, 0 ); + + const scalar = v.dot( this ) / denominator; + + return this.copy( v ).multiplyScalar( scalar ); + + } + + projectOnPlane( planeNormal ) { + + _vector$2.copy( this ).projectOnVector( planeNormal ); + + return this.sub( _vector$2 ); + + } + + reflect( normal ) { + + // reflect incident vector off plane orthogonal to normal + // normal is assumed to have unit length + + return this.sub( _vector$2.copy( normal ).multiplyScalar( 2 * this.dot( normal ) ) ); + + } + + angleTo( v ) { + + const denominator = Math.sqrt( this.lengthSq() * v.lengthSq() ); + + if ( denominator === 0 ) return Math.PI / 2; + + const theta = this.dot( v ) / denominator; + + // clamp, to handle numerical problems + + return Math.acos( clamp( theta, - 1, 1 ) ); + + } + + distanceTo( v ) { + + return Math.sqrt( this.distanceToSquared( v ) ); + + } + + distanceToSquared( v ) { + + const dx = this.x - v.x, dy = this.y - v.y, dz = this.z - v.z; + + return dx * dx + dy * dy + dz * dz; + + } + + manhattanDistanceTo( v ) { + + return Math.abs( this.x - v.x ) + Math.abs( this.y - v.y ) + Math.abs( this.z - v.z ); + + } + + setFromSpherical( s ) { + + return this.setFromSphericalCoords( s.radius, s.phi, s.theta ); + + } + + setFromSphericalCoords( radius, phi, theta ) { + + const sinPhiRadius = Math.sin( phi ) * radius; + + this.x = sinPhiRadius * Math.sin( theta ); + this.y = Math.cos( phi ) * radius; + this.z = sinPhiRadius * Math.cos( theta ); + + return this; + + } + + setFromCylindrical( c ) { + + return this.setFromCylindricalCoords( c.radius, c.theta, c.y ); + + } + + setFromCylindricalCoords( radius, theta, y ) { + + this.x = radius * Math.sin( theta ); + this.y = y; + this.z = radius * Math.cos( theta ); + + return this; + + } + + setFromMatrixPosition( m ) { + + const e = m.elements; + + this.x = e[ 12 ]; + this.y = e[ 13 ]; + this.z = e[ 14 ]; + + return this; + + } + + setFromMatrixScale( m ) { + + const sx = this.setFromMatrixColumn( m, 0 ).length(); + const sy = this.setFromMatrixColumn( m, 1 ).length(); + const sz = this.setFromMatrixColumn( m, 2 ).length(); + + this.x = sx; + this.y = sy; + this.z = sz; + + return this; + + } + + setFromMatrixColumn( m, index ) { + + return this.fromArray( m.elements, index * 4 ); + + } + + setFromMatrix3Column( m, index ) { + + return this.fromArray( m.elements, index * 3 ); + + } + + setFromEuler( e ) { + + this.x = e._x; + this.y = e._y; + this.z = e._z; + + return this; + + } + + setFromColor( c ) { + + this.x = c.r; + this.y = c.g; + this.z = c.b; + + return this; + + } + + equals( v ) { + + return ( ( v.x === this.x ) && ( v.y === this.y ) && ( v.z === this.z ) ); + + } + + fromArray( array, offset = 0 ) { + + this.x = array[ offset ]; + this.y = array[ offset + 1 ]; + this.z = array[ offset + 2 ]; + + return this; + + } + + toArray( array = [], offset = 0 ) { + + array[ offset ] = this.x; + array[ offset + 1 ] = this.y; + array[ offset + 2 ] = this.z; + + return array; + + } + + fromBufferAttribute( attribute, index ) { + + this.x = attribute.getX( index ); + this.y = attribute.getY( index ); + this.z = attribute.getZ( index ); + + return this; + + } + + random() { + + this.x = Math.random(); + this.y = Math.random(); + this.z = Math.random(); + + return this; + + } + + randomDirection() { + + // Derived from https://mathworld.wolfram.com/SpherePointPicking.html + + const u = ( Math.random() - 0.5 ) * 2; + const t = Math.random() * Math.PI * 2; + const f = Math.sqrt( 1 - u ** 2 ); + + this.x = f * Math.cos( t ); + this.y = f * Math.sin( t ); + this.z = u; + + return this; + + } + + *[ Symbol.iterator ]() { + + yield this.x; + yield this.y; + yield this.z; + + } + +} + +const _vector$2 = /*@__PURE__*/ new Vector3(); +const _quaternion = /*@__PURE__*/ new Quaternion(); + +class Vector2 { + + constructor( x = 0, y = 0 ) { + + Vector2.prototype.isVector2 = true; + + this.x = x; + this.y = y; + + } + + get width() { + + return this.x; + + } + + set width( value ) { + + this.x = value; + + } + + get height() { + + return this.y; + + } + + set height( value ) { + + this.y = value; + + } + + set( x, y ) { + + this.x = x; + this.y = y; + + return this; + + } + + setScalar( scalar ) { + + this.x = scalar; + this.y = scalar; + + return this; + + } + + setX( x ) { + + this.x = x; + + return this; + + } + + setY( y ) { + + this.y = y; + + return this; + + } + + setComponent( index, value ) { + + switch ( index ) { + + case 0: this.x = value; break; + case 1: this.y = value; break; + default: throw new Error( 'index is out of range: ' + index ); + + } + + return this; + + } + + getComponent( index ) { + + switch ( index ) { + + case 0: return this.x; + case 1: return this.y; + default: throw new Error( 'index is out of range: ' + index ); + + } + + } + + clone() { + + return new this.constructor( this.x, this.y ); + + } + + copy( v ) { + + this.x = v.x; + this.y = v.y; + + return this; + + } + + add( v ) { + + this.x += v.x; + this.y += v.y; + + return this; + + } + + addScalar( s ) { + + this.x += s; + this.y += s; + + return this; + + } + + addVectors( a, b ) { + + this.x = a.x + b.x; + this.y = a.y + b.y; + + return this; + + } + + addScaledVector( v, s ) { + + this.x += v.x * s; + this.y += v.y * s; + + return this; + + } + + sub( v ) { + + this.x -= v.x; + this.y -= v.y; + + return this; + + } + + subScalar( s ) { + + this.x -= s; + this.y -= s; + + return this; + + } + + subVectors( a, b ) { + + this.x = a.x - b.x; + this.y = a.y - b.y; + + return this; + + } + + multiply( v ) { + + this.x *= v.x; + this.y *= v.y; + + return this; + + } + + multiplyScalar( scalar ) { + + this.x *= scalar; + this.y *= scalar; + + return this; + + } + + divide( v ) { + + this.x /= v.x; + this.y /= v.y; + + return this; + + } + + divideScalar( scalar ) { + + return this.multiplyScalar( 1 / scalar ); + + } + + applyMatrix3( m ) { + + const x = this.x, y = this.y; + const e = m.elements; + + this.x = e[ 0 ] * x + e[ 3 ] * y + e[ 6 ]; + this.y = e[ 1 ] * x + e[ 4 ] * y + e[ 7 ]; + + return this; + + } + + min( v ) { + + this.x = Math.min( this.x, v.x ); + this.y = Math.min( this.y, v.y ); + + return this; + + } + + max( v ) { + + this.x = Math.max( this.x, v.x ); + this.y = Math.max( this.y, v.y ); + + return this; + + } + + clamp( min, max ) { + + // assumes min < max, componentwise + + this.x = Math.max( min.x, Math.min( max.x, this.x ) ); + this.y = Math.max( min.y, Math.min( max.y, this.y ) ); + + return this; + + } + + clampScalar( minVal, maxVal ) { + + this.x = Math.max( minVal, Math.min( maxVal, this.x ) ); + this.y = Math.max( minVal, Math.min( maxVal, this.y ) ); + + return this; + + } + + clampLength( min, max ) { + + const length = this.length(); + + return this.divideScalar( length || 1 ).multiplyScalar( Math.max( min, Math.min( max, length ) ) ); + + } + + floor() { + + this.x = Math.floor( this.x ); + this.y = Math.floor( this.y ); + + return this; + + } + + ceil() { + + this.x = Math.ceil( this.x ); + this.y = Math.ceil( this.y ); + + return this; + + } + + round() { + + this.x = Math.round( this.x ); + this.y = Math.round( this.y ); + + return this; + + } + + roundToZero() { + + this.x = ( this.x < 0 ) ? Math.ceil( this.x ) : Math.floor( this.x ); + this.y = ( this.y < 0 ) ? Math.ceil( this.y ) : Math.floor( this.y ); + + return this; + + } + + negate() { + + this.x = - this.x; + this.y = - this.y; + + return this; + + } + + dot( v ) { + + return this.x * v.x + this.y * v.y; + + } + + cross( v ) { + + return this.x * v.y - this.y * v.x; + + } + + lengthSq() { + + return this.x * this.x + this.y * this.y; + + } + + length() { + + return Math.sqrt( this.x * this.x + this.y * this.y ); + + } + + manhattanLength() { + + return Math.abs( this.x ) + Math.abs( this.y ); + + } + + normalize() { + + return this.divideScalar( this.length() || 1 ); + + } + + angle() { + + // computes the angle in radians with respect to the positive x-axis + + const angle = Math.atan2( - this.y, - this.x ) + Math.PI; + + return angle; + + } + + angleTo( v ) { + + const denominator = Math.sqrt( this.lengthSq() * v.lengthSq() ); + + if ( denominator === 0 ) return Math.PI / 2; + + const theta = this.dot( v ) / denominator; + + // clamp, to handle numerical problems + + return Math.acos( clamp( theta, - 1, 1 ) ); + + } + + distanceTo( v ) { + + return Math.sqrt( this.distanceToSquared( v ) ); + + } + + distanceToSquared( v ) { + + const dx = this.x - v.x, dy = this.y - v.y; + return dx * dx + dy * dy; + + } + + manhattanDistanceTo( v ) { + + return Math.abs( this.x - v.x ) + Math.abs( this.y - v.y ); + + } + + setLength( length ) { + + return this.normalize().multiplyScalar( length ); + + } + + lerp( v, alpha ) { + + this.x += ( v.x - this.x ) * alpha; + this.y += ( v.y - this.y ) * alpha; + + return this; + + } + + lerpVectors( v1, v2, alpha ) { + + this.x = v1.x + ( v2.x - v1.x ) * alpha; + this.y = v1.y + ( v2.y - v1.y ) * alpha; + + return this; + + } + + equals( v ) { + + return ( ( v.x === this.x ) && ( v.y === this.y ) ); + + } + + fromArray( array, offset = 0 ) { + + this.x = array[ offset ]; + this.y = array[ offset + 1 ]; + + return this; + + } + + toArray( array = [], offset = 0 ) { + + array[ offset ] = this.x; + array[ offset + 1 ] = this.y; + + return array; + + } + + fromBufferAttribute( attribute, index ) { + + this.x = attribute.getX( index ); + this.y = attribute.getY( index ); + + return this; + + } + + rotateAround( center, angle ) { + + const c = Math.cos( angle ), s = Math.sin( angle ); + + const x = this.x - center.x; + const y = this.y - center.y; + + this.x = x * c - y * s + center.x; + this.y = x * s + y * c + center.y; + + return this; + + } + + random() { + + this.x = Math.random(); + this.y = Math.random(); + + return this; + + } + + *[ Symbol.iterator ]() { + + yield this.x; + yield this.y; + + } + +} + +const StaticDrawUsage = 35044; + +const _vector$1 = /*@__PURE__*/ new Vector3(); +const _vector2 = /*@__PURE__*/ new Vector2(); + +class BufferAttribute { + + constructor( array, itemSize, normalized = false ) { + + if ( Array.isArray( array ) ) { + + throw new TypeError( 'THREE.BufferAttribute: array should be a Typed Array.' ); + + } + + this.isBufferAttribute = true; + + this.name = ''; + + this.array = array; + this.itemSize = itemSize; + this.count = array !== undefined ? array.length / itemSize : 0; + this.normalized = normalized; + + this.usage = StaticDrawUsage; + this.updateRange = { offset: 0, count: - 1 }; + + this.version = 0; + + } + + onUploadCallback() {} + + set needsUpdate( value ) { + + if ( value === true ) this.version ++; + + } + + setUsage( value ) { + + this.usage = value; + + return this; + + } + + copy( source ) { + + this.name = source.name; + this.array = new source.array.constructor( source.array ); + this.itemSize = source.itemSize; + this.count = source.count; + this.normalized = source.normalized; + + this.usage = source.usage; + + return this; + + } + + copyAt( index1, attribute, index2 ) { + + index1 *= this.itemSize; + index2 *= attribute.itemSize; + + for ( let i = 0, l = this.itemSize; i < l; i ++ ) { + + this.array[ index1 + i ] = attribute.array[ index2 + i ]; + + } + + return this; + + } + + copyArray( array ) { + + this.array.set( array ); + + return this; + + } + + applyMatrix3( m ) { + + if ( this.itemSize === 2 ) { + + for ( let i = 0, l = this.count; i < l; i ++ ) { + + _vector2.fromBufferAttribute( this, i ); + _vector2.applyMatrix3( m ); + + this.setXY( i, _vector2.x, _vector2.y ); + + } + + } else if ( this.itemSize === 3 ) { + + for ( let i = 0, l = this.count; i < l; i ++ ) { + + _vector$1.fromBufferAttribute( this, i ); + _vector$1.applyMatrix3( m ); + + this.setXYZ( i, _vector$1.x, _vector$1.y, _vector$1.z ); + + } + + } + + return this; + + } + + applyMatrix4( m ) { + + for ( let i = 0, l = this.count; i < l; i ++ ) { + + _vector$1.fromBufferAttribute( this, i ); + + _vector$1.applyMatrix4( m ); + + this.setXYZ( i, _vector$1.x, _vector$1.y, _vector$1.z ); + + } + + return this; + + } + + applyNormalMatrix( m ) { + + for ( let i = 0, l = this.count; i < l; i ++ ) { + + _vector$1.fromBufferAttribute( this, i ); + + _vector$1.applyNormalMatrix( m ); + + this.setXYZ( i, _vector$1.x, _vector$1.y, _vector$1.z ); + + } + + return this; + + } + + transformDirection( m ) { + + for ( let i = 0, l = this.count; i < l; i ++ ) { + + _vector$1.fromBufferAttribute( this, i ); + + _vector$1.transformDirection( m ); + + this.setXYZ( i, _vector$1.x, _vector$1.y, _vector$1.z ); + + } + + return this; + + } + + set( value, offset = 0 ) { + + // Matching BufferAttribute constructor, do not normalize the array. + this.array.set( value, offset ); + + return this; + + } + + getX( index ) { + + let x = this.array[ index * this.itemSize ]; + + if ( this.normalized ) x = denormalize( x, this.array ); + + return x; + + } + + setX( index, x ) { + + if ( this.normalized ) x = normalize( x, this.array ); + + this.array[ index * this.itemSize ] = x; + + return this; + + } + + getY( index ) { + + let y = this.array[ index * this.itemSize + 1 ]; + + if ( this.normalized ) y = denormalize( y, this.array ); + + return y; + + } + + setY( index, y ) { + + if ( this.normalized ) y = normalize( y, this.array ); + + this.array[ index * this.itemSize + 1 ] = y; + + return this; + + } + + getZ( index ) { + + let z = this.array[ index * this.itemSize + 2 ]; + + if ( this.normalized ) z = denormalize( z, this.array ); + + return z; + + } + + setZ( index, z ) { + + if ( this.normalized ) z = normalize( z, this.array ); + + this.array[ index * this.itemSize + 2 ] = z; + + return this; + + } + + getW( index ) { + + let w = this.array[ index * this.itemSize + 3 ]; + + if ( this.normalized ) w = denormalize( w, this.array ); + + return w; + + } + + setW( index, w ) { + + if ( this.normalized ) w = normalize( w, this.array ); + + this.array[ index * this.itemSize + 3 ] = w; + + return this; + + } + + setXY( index, x, y ) { + + index *= this.itemSize; + + if ( this.normalized ) { + + x = normalize( x, this.array ); + y = normalize( y, this.array ); + + } + + this.array[ index + 0 ] = x; + this.array[ index + 1 ] = y; + + return this; + + } + + setXYZ( index, x, y, z ) { + + index *= this.itemSize; + + if ( this.normalized ) { + + x = normalize( x, this.array ); + y = normalize( y, this.array ); + z = normalize( z, this.array ); + + } + + this.array[ index + 0 ] = x; + this.array[ index + 1 ] = y; + this.array[ index + 2 ] = z; + + return this; + + } + + setXYZW( index, x, y, z, w ) { + + index *= this.itemSize; + + if ( this.normalized ) { + + x = normalize( x, this.array ); + y = normalize( y, this.array ); + z = normalize( z, this.array ); + w = normalize( w, this.array ); + + } + + this.array[ index + 0 ] = x; + this.array[ index + 1 ] = y; + this.array[ index + 2 ] = z; + this.array[ index + 3 ] = w; + + return this; + + } + + onUpload( callback ) { + + this.onUploadCallback = callback; + + return this; + + } + + clone() { + + return new this.constructor( this.array, this.itemSize ).copy( this ); + + } + + toJSON() { + + const data = { + itemSize: this.itemSize, + type: this.array.constructor.name, + array: Array.from( this.array ), + normalized: this.normalized + }; + + if ( this.name !== '' ) data.name = this.name; + if ( this.usage !== StaticDrawUsage ) data.usage = this.usage; + if ( this.updateRange.offset !== 0 || this.updateRange.count !== - 1 ) data.updateRange = this.updateRange; + + return data; + + } + + copyColorsArray() { // @deprecated, r144 + + console.error( 'THREE.BufferAttribute: copyColorsArray() was removed in r144.' ); + + } + + copyVector2sArray() { // @deprecated, r144 + + console.error( 'THREE.BufferAttribute: copyVector2sArray() was removed in r144.' ); + + } + + copyVector3sArray() { // @deprecated, r144 + + console.error( 'THREE.BufferAttribute: copyVector3sArray() was removed in r144.' ); + + } + + copyVector4sArray() { // @deprecated, r144 + + console.error( 'THREE.BufferAttribute: copyVector4sArray() was removed in r144.' ); + + } + +} + +class FragmentMesh extends InstancedMesh { + constructor(geometry, material, count, fragment) { + super(geometry, material, count); + this.elementCount = 0; + this.exportOptions = { + trs: false, + onlyVisible: false, + truncateDrawRange: true, + binary: true, + maxTextureSize: 0, + }; + this.exporter = new GLTFExporter(); + this.material = FragmentMesh.newMaterialArray(material); + this.geometry = this.newFragmentGeometry(geometry); + this.fragment = fragment; + } + exportData() { + const position = this.geometry.attributes.position.array; + const normal = this.geometry.attributes.normal.array; + const blockID = Array.from(this.geometry.attributes.blockID.array); + const index = Array.from(this.geometry.index.array); + const groups = []; + for (const group of this.geometry.groups) { + const index = group.materialIndex || 0; + const { start, count } = group; + groups.push(start, count, index); + } + const materials = []; + if (Array.isArray(this.material)) { + for (const material of this.material) { + const opacity = material.opacity; + const transparent = material.transparent ? 1 : 0; + const color = new Color(material.color).toArray(); + materials.push(opacity, transparent, ...color); + } + } + const matrices = Array.from(this.instanceMatrix.array); + let colors; + if (this.instanceColor !== null) { + colors = Array.from(this.instanceColor.array); + } + else { + colors = []; + } + return { + position, + normal, + index, + blockID, + groups, + materials, + matrices, + colors, + }; + } + export() { + const mesh = this; + return new Promise((resolve) => { + this.exporter.parse(mesh, (geometry) => resolve(geometry), (error) => console.log(error), this.exportOptions); + }); + } + newFragmentGeometry(geometry) { + if (!geometry.index) { + throw new Error("The geometry must be indexed!"); + } + if (!geometry.attributes.blockID) { + const vertexSize = geometry.attributes.position.count; + const array = new Uint16Array(vertexSize); + array.fill(this.elementCount++); + geometry.attributes.blockID = new BufferAttribute(array, 1); + } + const size = geometry.index.count; + FragmentMesh.initializeGroups(geometry, size); + return geometry; + } + static initializeGroups(geometry, size) { + if (!geometry.groups.length) { + geometry.groups.push({ + start: 0, + count: size, + materialIndex: 0, + }); + } + } + static newMaterialArray(material) { + if (!Array.isArray(material)) + material = [material]; + return material; + } +} + +/** + * Contains the logic to get, create and delete geometric subsets of an IFC model. For example, + * this can extract all the items in a specific IfcBuildingStorey and create a new Mesh. + */ +class Blocks { + constructor(fragment) { + this.fragment = fragment; + this._visibilityInitialized = false; + this._originalIndex = new Map(); + this._idIndexIndexMap = {}; + const rawIds = fragment.mesh.geometry.attributes.blockID.array; + this.ids = new Set(rawIds); + this.visibleIds = new Set(this.ids); + } + get count() { + return this.ids.size; + } + setVisibility(visible, itemIDs = new Set(this.fragment.items), isolate = false) { + const geometry = this.fragment.mesh.geometry; + const index = geometry.index; + if (!this._visibilityInitialized) { + this.initializeVisibility(index, geometry); + } + if (isolate) { + index.array.fill(0); + } + for (const id of itemIDs) { + const indices = this._idIndexIndexMap[id]; + for (const i of indices) { + const originalIndex = this._originalIndex.get(i); + if (originalIndex === undefined) + continue; + const blockID = geometry.attributes.blockID.getX(originalIndex); + const itemID = this.fragment.items[blockID]; + if (itemIDs.has(itemID)) { + if (visible) { + this.visibleIds.add(blockID); + } + else { + this.visibleIds.delete(blockID); + } + const newIndex = visible ? originalIndex : 0; + index.setX(i, newIndex); + } + } + } + index.needsUpdate = true; + } + initializeVisibility(index, geometry) { + for (let i = 0; i < index.count; i++) { + const foundIndex = index.getX(i); + this._originalIndex.set(i, foundIndex); + const blockID = geometry.attributes.blockID.getX(foundIndex); + const itemID = this.fragment.getItemID(0, blockID); + if (!this._idIndexIndexMap[itemID]) { + this._idIndexIndexMap[itemID] = []; + } + this._idIndexIndexMap[itemID].push(i); + } + this._visibilityInitialized = true; + } + // Use this only for destroying the current Fragment instance + dispose() { + this._idIndexIndexMap = {}; + this.ids.clear(); + this.visibleIds.clear(); + this._originalIndex.clear(); + this.ids = null; + this.visibleIds = null; + this._originalIndex = null; + } +} + +// Source: https://github.com/gkjohnson/three-mesh-bvh +class BVH { + static apply(geometry) { + if (!BVH.initialized) { + BufferGeometry.prototype.computeBoundsTree = computeBoundsTree; + BufferGeometry.prototype.disposeBoundsTree = disposeBoundsTree; + Mesh.prototype.raycast = acceleratedRaycast; + BVH.initialized = true; + } + if (!geometry.boundsTree) { + geometry.computeBoundsTree(); + } + } + static dispose(geometry) { + geometry.disposeBoundsTree(); + } +} +BVH.initialized = false; + +/* + * Fragments can contain one or multiple Instances of one or multiple Blocks + * Each Instance is identified by an instanceID (property of THREE.InstancedMesh) + * Each Block identified by a blockID (custom bufferAttribute per vertex) + * Both instanceId and blockId are unsigned integers starting at 0 and going up sequentially + * A specific Block of a specific Instance is an Item, identified by an itemID + * + * For example: + * Imagine a fragment mesh with 8 instances and 2 elements (16 items, identified from A to P) + * It will have instanceIds from 0 to 8, and blockIds from 0 to 2 + * If we raycast it, we will get an instanceId and the index of the found triangle + * We can use the index to get the blockId for that triangle + * Combining instanceId and blockId using the elementMap will give us the itemId + * The items will look like this: + * + * [ A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P ] + * + * Where the criteria to sort the items is the following (Y-axis is instance, X-axis is block): + * + * A C E G I K M O + * B D F H J L N P + * */ +let Fragment$1 = class Fragment { + constructor(geometry, material, count) { + this.fragments = {}; + this.items = []; + this.hiddenInstances = {}; + // When multiple instances represent the same object + // this allows to create a composite ID for each instance + // E.g. all the steps in a stair are a single thing + // so if the ID of the stair is asdf, then each step could be + // asdf.1, asdf.2, asdf.3, etc + // the value is the number of instances + this.composites = {}; + this.mesh = new FragmentMesh(geometry, material, count, this); + this.id = this.mesh.uuid; + this.capacity = count; + this.blocks = new Blocks(this); + BVH.apply(geometry); + } + get ids() { + const ids = new Set(); + for (const id of this.items) { + ids.add(id); + } + for (const id in this.hiddenInstances) { + ids.add(id); + } + return ids; + } + dispose(disposeResources = true) { + this.items = null; + this.group = undefined; + if (this.mesh) { + if (disposeResources) { + this.mesh.material.forEach((mat) => mat.dispose()); + this.mesh.material = []; + BVH.dispose(this.mesh.geometry); + this.mesh.geometry.dispose(); + this.mesh.geometry = null; + } + this.mesh.removeFromParent(); + this.mesh.dispose(); + this.mesh.fragment = null; + this.mesh = null; + } + this.disposeNestedFragments(); + } + getItemID(instanceID, blockID) { + const index = this.getItemIndex(instanceID, blockID); + return this.items[index]; + } + getInstanceAndBlockID(itemID) { + const index = this.items.indexOf(itemID); + const instanceID = this.getInstanceIDFromIndex(index); + const blockID = index % this.blocks.count; + return { instanceID, blockID }; + } + getVertexBlockID(geometry, index) { + const blocks = geometry.attributes.blockID; + return blocks.array[index]; + } + getItemData(itemID) { + const index = this.items.indexOf(itemID); + const instanceID = Math.ceil(index / this.blocks.count); + const blockID = index % this.blocks.count; + return { instanceID, blockID }; + } + getInstance(instanceID, matrix) { + return this.mesh.getMatrixAt(instanceID, matrix); + } + setInstance(instanceID, items) { + this.checkIfInstanceExist(instanceID); + this.mesh.setMatrixAt(instanceID, items.transform); + this.mesh.instanceMatrix.needsUpdate = true; + if (items.color && this.mesh.instanceColor) { + this.mesh.setColorAt(instanceID, items.color); + this.mesh.instanceColor.needsUpdate = true; + } + if (items.ids) { + this.saveItemsInMap(items.ids, instanceID); + } + } + addInstances(items) { + this.resizeCapacityIfNeeded(items.length); + const start = this.mesh.count; + this.mesh.count += items.length; + for (let i = 0; i < items.length; i++) { + this.setInstance(start + i, items[i]); + } + } + removeInstances(itemsIDs) { + if (this.mesh.count <= 1) { + this.clear(); + return; + } + this.deleteAndRearrangeInstances(itemsIDs); + this.mesh.count -= itemsIDs.length; + this.mesh.instanceMatrix.needsUpdate = true; + } + clear() { + this.mesh.clear(); + this.mesh.count = 0; + this.items = []; + } + addFragment(id, material = this.mesh.material) { + const newGeometry = this.initializeGeometry(); + if (material === this.mesh.material) { + this.copyGroups(newGeometry); + } + const newFragment = new Fragment$1(newGeometry, material, this.capacity); + newFragment.mesh.applyMatrix4(this.mesh.matrix); + newFragment.mesh.updateMatrix(); + this.fragments[id] = newFragment; + return this.fragments[id]; + } + removeFragment(id) { + const fragment = this.fragments[id]; + if (fragment) { + fragment.dispose(false); + delete this.fragments[id]; + } + } + resetVisibility() { + if (this.blocks.count > 1) { + this.blocks.setVisibility(true); + } + else { + const hiddenInstances = Object.keys(this.hiddenInstances); + this.makeInstancesVisible(hiddenInstances); + this.hiddenInstances = {}; + } + } + setVisibility(visible, itemIDs = this.ids) { + if (this.blocks.count > 1) { + this.blocks.setVisibility(visible, itemIDs); + } + else { + this.toggleInstanceVisibility(visible, itemIDs); + } + } + resize(size) { + var _a; + const newMesh = this.createFragmentMeshWithNewSize(size); + this.capacity = size; + const oldMesh = this.mesh; + (_a = oldMesh.parent) === null || _a === void 0 ? void 0 : _a.add(newMesh); + oldMesh.removeFromParent(); + this.mesh = newMesh; + oldMesh.dispose(); + } + exportData() { + const geometry = this.mesh.exportData(); + const ids = this.items.join("|"); + const id = this.id; + return { ...geometry, ids, id }; + } + copyGroups(newGeometry) { + newGeometry.groups = []; + for (const group of this.mesh.geometry.groups) { + newGeometry.groups.push({ ...group }); + } + } + initializeGeometry() { + const newGeometry = new THREE$1.BufferGeometry(); + newGeometry.setAttribute("position", this.mesh.geometry.attributes.position); + newGeometry.setAttribute("normal", this.mesh.geometry.attributes.normal); + newGeometry.setAttribute("blockID", this.mesh.geometry.attributes.blockID); + newGeometry.setIndex(Array.from(this.mesh.geometry.index.array)); + return newGeometry; + } + saveItemsInMap(ids, instanceId) { + this.checkBlockNumberValid(ids); + let counter = 0; + for (const id of ids) { + const index = this.getItemIndex(instanceId, counter); + this.items[index] = id; + counter++; + } + } + resizeCapacityIfNeeded(newSize) { + const necessaryCapacity = newSize + this.mesh.count; + if (necessaryCapacity > this.capacity) { + this.resize(necessaryCapacity); + } + } + createFragmentMeshWithNewSize(capacity) { + const newMesh = new FragmentMesh(this.mesh.geometry, this.mesh.material, capacity, this); + newMesh.count = this.mesh.count; + return newMesh; + } + disposeNestedFragments() { + const fragments = Object.values(this.fragments); + for (let i = 0; i < fragments.length; i++) { + fragments[i].dispose(); + } + this.fragments = {}; + } + checkBlockNumberValid(ids) { + if (ids.length > this.blocks.count) { + throw new Error(`You passed more items (${ids.length}) than blocks in this instance (${this.blocks.count})`); + } + } + checkIfInstanceExist(index) { + if (index > this.mesh.count) { + throw new Error(`The given index (${index}) exceeds the instances in this fragment (${this.mesh.count})`); + } + } + // Assigns the index of the removed instance to the last instance + // F.e. let there be 6 instances: (A) (B) (C) (D) (E) (F) + // If instance (C) is removed: -> (A) (B) (F) (D) (E) + deleteAndRearrangeInstances(ids) { + const deletedItems = []; + for (const id of ids) { + const deleted = this.deleteAndRearrange(id); + if (deleted) { + deletedItems.push(deleted); + } + } + for (const id of ids) { + delete this.hiddenInstances[id]; + } + return deletedItems; + } + deleteAndRearrange(id) { + const index = this.items.indexOf(id); + if (index === -1) + return null; + this.mesh.count--; + const isLastElement = index === this.mesh.count; + const instanceId = this.getInstanceIDFromIndex(index); + const tempMatrix = new THREE$1.Matrix4(); + const tempColor = new THREE$1.Color(); + const transform = new THREE$1.Matrix4(); + this.mesh.getMatrixAt(instanceId, transform); + const result = { ids: [id], transform }; + if (this.mesh.instanceColor) { + const color = new THREE$1.Color(); + this.mesh.getColorAt(instanceId, color); + result.color = color; + } + if (isLastElement) { + this.items.pop(); + return result; + } + const lastElement = this.mesh.count; + this.items[index] = this.items[lastElement]; + this.items.pop(); + this.mesh.getMatrixAt(lastElement, tempMatrix); + this.mesh.setMatrixAt(instanceId, tempMatrix); + this.mesh.instanceMatrix.needsUpdate = true; + if (this.mesh.instanceColor) { + this.mesh.getColorAt(lastElement, tempColor); + this.mesh.setColorAt(instanceId, tempColor); + this.mesh.instanceColor.needsUpdate = true; + } + return result; + } + getItemIndex(instanceId, blockId) { + return instanceId * this.blocks.count + blockId; + } + getInstanceIDFromIndex(itemIndex) { + return Math.trunc(itemIndex / this.blocks.count); + } + toggleInstanceVisibility(visible, itemIDs) { + if (visible) { + this.makeInstancesVisible(itemIDs); + } + else { + this.makeInstancesInvisible(itemIDs); + } + } + makeInstancesInvisible(itemIDs) { + itemIDs = this.filterHiddenItems(itemIDs, false); + const deletedItems = this.deleteAndRearrangeInstances(itemIDs); + for (const item of deletedItems) { + if (item.ids) { + this.hiddenInstances[item.ids[0]] = item; + } + } + } + makeInstancesVisible(itemIDs) { + const items = []; + itemIDs = this.filterHiddenItems(itemIDs, true); + for (const id of itemIDs) { + const found = this.hiddenInstances[id]; + if (found !== undefined) { + items.push(found); + delete this.hiddenInstances[id]; + } + } + this.addInstances(items); + } + filterHiddenItems(itemIDs, hidden) { + const hiddenItems = Object.keys(this.hiddenInstances); + const result = []; + for (const id of itemIDs) { + const isHidden = hidden && hiddenItems.includes(id); + const isNotHidden = !hidden && !hiddenItems.includes(id); + if (isHidden || isNotHidden) { + result.push(id); + } + } + return result; + } +}; + +const SIZEOF_SHORT = 2; +const SIZEOF_INT = 4; +const FILE_IDENTIFIER_LENGTH = 4; +const SIZE_PREFIX_LENGTH = 4; + +const int32 = new Int32Array(2); +const float32 = new Float32Array(int32.buffer); +const float64 = new Float64Array(int32.buffer); +const isLittleEndian = new Uint16Array(new Uint8Array([1, 0]).buffer)[0] === 1; + +var Encoding; +(function (Encoding) { + Encoding[Encoding["UTF8_BYTES"] = 1] = "UTF8_BYTES"; + Encoding[Encoding["UTF16_STRING"] = 2] = "UTF16_STRING"; +})(Encoding || (Encoding = {})); + +class ByteBuffer { + /** + * Create a new ByteBuffer with a given array of bytes (`Uint8Array`) + */ + constructor(bytes_) { + this.bytes_ = bytes_; + this.position_ = 0; + this.text_decoder_ = new TextDecoder(); + } + /** + * Create and allocate a new ByteBuffer with a given size. + */ + static allocate(byte_size) { + return new ByteBuffer(new Uint8Array(byte_size)); + } + clear() { + this.position_ = 0; + } + /** + * Get the underlying `Uint8Array`. + */ + bytes() { + return this.bytes_; + } + /** + * Get the buffer's position. + */ + position() { + return this.position_; + } + /** + * Set the buffer's position. + */ + setPosition(position) { + this.position_ = position; + } + /** + * Get the buffer's capacity. + */ + capacity() { + return this.bytes_.length; + } + readInt8(offset) { + return this.readUint8(offset) << 24 >> 24; + } + readUint8(offset) { + return this.bytes_[offset]; + } + readInt16(offset) { + return this.readUint16(offset) << 16 >> 16; + } + readUint16(offset) { + return this.bytes_[offset] | this.bytes_[offset + 1] << 8; + } + readInt32(offset) { + return this.bytes_[offset] | this.bytes_[offset + 1] << 8 | this.bytes_[offset + 2] << 16 | this.bytes_[offset + 3] << 24; + } + readUint32(offset) { + return this.readInt32(offset) >>> 0; + } + readInt64(offset) { + return BigInt.asIntN(64, BigInt(this.readUint32(offset)) + (BigInt(this.readUint32(offset + 4)) << BigInt(32))); + } + readUint64(offset) { + return BigInt.asUintN(64, BigInt(this.readUint32(offset)) + (BigInt(this.readUint32(offset + 4)) << BigInt(32))); + } + readFloat32(offset) { + int32[0] = this.readInt32(offset); + return float32[0]; + } + readFloat64(offset) { + int32[isLittleEndian ? 0 : 1] = this.readInt32(offset); + int32[isLittleEndian ? 1 : 0] = this.readInt32(offset + 4); + return float64[0]; + } + writeInt8(offset, value) { + this.bytes_[offset] = value; + } + writeUint8(offset, value) { + this.bytes_[offset] = value; + } + writeInt16(offset, value) { + this.bytes_[offset] = value; + this.bytes_[offset + 1] = value >> 8; + } + writeUint16(offset, value) { + this.bytes_[offset] = value; + this.bytes_[offset + 1] = value >> 8; + } + writeInt32(offset, value) { + this.bytes_[offset] = value; + this.bytes_[offset + 1] = value >> 8; + this.bytes_[offset + 2] = value >> 16; + this.bytes_[offset + 3] = value >> 24; + } + writeUint32(offset, value) { + this.bytes_[offset] = value; + this.bytes_[offset + 1] = value >> 8; + this.bytes_[offset + 2] = value >> 16; + this.bytes_[offset + 3] = value >> 24; + } + writeInt64(offset, value) { + this.writeInt32(offset, Number(BigInt.asIntN(32, value))); + this.writeInt32(offset + 4, Number(BigInt.asIntN(32, value >> BigInt(32)))); + } + writeUint64(offset, value) { + this.writeUint32(offset, Number(BigInt.asUintN(32, value))); + this.writeUint32(offset + 4, Number(BigInt.asUintN(32, value >> BigInt(32)))); + } + writeFloat32(offset, value) { + float32[0] = value; + this.writeInt32(offset, int32[0]); + } + writeFloat64(offset, value) { + float64[0] = value; + this.writeInt32(offset, int32[isLittleEndian ? 0 : 1]); + this.writeInt32(offset + 4, int32[isLittleEndian ? 1 : 0]); + } + /** + * Return the file identifier. Behavior is undefined for FlatBuffers whose + * schema does not include a file_identifier (likely points at padding or the + * start of a the root vtable). + */ + getBufferIdentifier() { + if (this.bytes_.length < this.position_ + SIZEOF_INT + + FILE_IDENTIFIER_LENGTH) { + throw new Error('FlatBuffers: ByteBuffer is too short to contain an identifier.'); + } + let result = ""; + for (let i = 0; i < FILE_IDENTIFIER_LENGTH; i++) { + result += String.fromCharCode(this.readInt8(this.position_ + SIZEOF_INT + i)); + } + return result; + } + /** + * Look up a field in the vtable, return an offset into the object, or 0 if the + * field is not present. + */ + __offset(bb_pos, vtable_offset) { + const vtable = bb_pos - this.readInt32(bb_pos); + return vtable_offset < this.readInt16(vtable) ? this.readInt16(vtable + vtable_offset) : 0; + } + /** + * Initialize any Table-derived type to point to the union at the given offset. + */ + __union(t, offset) { + t.bb_pos = offset + this.readInt32(offset); + t.bb = this; + return t; + } + /** + * Create a JavaScript string from UTF-8 data stored inside the FlatBuffer. + * This allocates a new string and converts to wide chars upon each access. + * + * To avoid the conversion to string, pass Encoding.UTF8_BYTES as the + * "optionalEncoding" argument. This is useful for avoiding conversion when + * the data will just be packaged back up in another FlatBuffer later on. + * + * @param offset + * @param opt_encoding Defaults to UTF16_STRING + */ + __string(offset, opt_encoding) { + offset += this.readInt32(offset); + const length = this.readInt32(offset); + offset += SIZEOF_INT; + const utf8bytes = this.bytes_.subarray(offset, offset + length); + if (opt_encoding === Encoding.UTF8_BYTES) + return utf8bytes; + else + return this.text_decoder_.decode(utf8bytes); + } + /** + * Handle unions that can contain string as its member, if a Table-derived type then initialize it, + * if a string then return a new one + * + * WARNING: strings are immutable in JS so we can't change the string that the user gave us, this + * makes the behaviour of __union_with_string different compared to __union + */ + __union_with_string(o, offset) { + if (typeof o === 'string') { + return this.__string(offset); + } + return this.__union(o, offset); + } + /** + * Retrieve the relative offset stored at "offset" + */ + __indirect(offset) { + return offset + this.readInt32(offset); + } + /** + * Get the start of data of a vector whose offset is stored at "offset" in this object. + */ + __vector(offset) { + return offset + this.readInt32(offset) + SIZEOF_INT; // data starts after the length + } + /** + * Get the length of a vector whose offset is stored at "offset" in this object. + */ + __vector_len(offset) { + return this.readInt32(offset + this.readInt32(offset)); + } + __has_identifier(ident) { + if (ident.length != FILE_IDENTIFIER_LENGTH) { + throw new Error('FlatBuffers: file identifier must be length ' + + FILE_IDENTIFIER_LENGTH); + } + for (let i = 0; i < FILE_IDENTIFIER_LENGTH; i++) { + if (ident.charCodeAt(i) != this.readInt8(this.position() + SIZEOF_INT + i)) { + return false; + } + } + return true; + } + /** + * A helper function for generating list for obj api + */ + createScalarList(listAccessor, listLength) { + const ret = []; + for (let i = 0; i < listLength; ++i) { + const val = listAccessor(i); + if (val !== null) { + ret.push(val); + } + } + return ret; + } + /** + * A helper function for generating list for obj api + * @param listAccessor function that accepts an index and return data at that index + * @param listLength listLength + * @param res result list + */ + createObjList(listAccessor, listLength) { + const ret = []; + for (let i = 0; i < listLength; ++i) { + const val = listAccessor(i); + if (val !== null) { + ret.push(val.unpack()); + } + } + return ret; + } +} + +class Builder { + /** + * Create a FlatBufferBuilder. + */ + constructor(opt_initial_size) { + /** Minimum alignment encountered so far. */ + this.minalign = 1; + /** The vtable for the current table. */ + this.vtable = null; + /** The amount of fields we're actually using. */ + this.vtable_in_use = 0; + /** Whether we are currently serializing a table. */ + this.isNested = false; + /** Starting offset of the current struct/table. */ + this.object_start = 0; + /** List of offsets of all vtables. */ + this.vtables = []; + /** For the current vector being built. */ + this.vector_num_elems = 0; + /** False omits default values from the serialized data */ + this.force_defaults = false; + this.string_maps = null; + this.text_encoder = new TextEncoder(); + let initial_size; + if (!opt_initial_size) { + initial_size = 1024; + } + else { + initial_size = opt_initial_size; + } + /** + * @type {ByteBuffer} + * @private + */ + this.bb = ByteBuffer.allocate(initial_size); + this.space = initial_size; + } + clear() { + this.bb.clear(); + this.space = this.bb.capacity(); + this.minalign = 1; + this.vtable = null; + this.vtable_in_use = 0; + this.isNested = false; + this.object_start = 0; + this.vtables = []; + this.vector_num_elems = 0; + this.force_defaults = false; + this.string_maps = null; + } + /** + * In order to save space, fields that are set to their default value + * don't get serialized into the buffer. Forcing defaults provides a + * way to manually disable this optimization. + * + * @param forceDefaults true always serializes default values + */ + forceDefaults(forceDefaults) { + this.force_defaults = forceDefaults; + } + /** + * Get the ByteBuffer representing the FlatBuffer. Only call this after you've + * called finish(). The actual data starts at the ByteBuffer's current position, + * not necessarily at 0. + */ + dataBuffer() { + return this.bb; + } + /** + * Get the bytes representing the FlatBuffer. Only call this after you've + * called finish(). + */ + asUint8Array() { + return this.bb.bytes().subarray(this.bb.position(), this.bb.position() + this.offset()); + } + /** + * Prepare to write an element of `size` after `additional_bytes` have been + * written, e.g. if you write a string, you need to align such the int length + * field is aligned to 4 bytes, and the string data follows it directly. If all + * you need to do is alignment, `additional_bytes` will be 0. + * + * @param size This is the of the new element to write + * @param additional_bytes The padding size + */ + prep(size, additional_bytes) { + // Track the biggest thing we've ever aligned to. + if (size > this.minalign) { + this.minalign = size; + } + // Find the amount of alignment needed such that `size` is properly + // aligned after `additional_bytes` + const align_size = ((~(this.bb.capacity() - this.space + additional_bytes)) + 1) & (size - 1); + // Reallocate the buffer if needed. + while (this.space < align_size + size + additional_bytes) { + const old_buf_size = this.bb.capacity(); + this.bb = Builder.growByteBuffer(this.bb); + this.space += this.bb.capacity() - old_buf_size; + } + this.pad(align_size); + } + pad(byte_size) { + for (let i = 0; i < byte_size; i++) { + this.bb.writeInt8(--this.space, 0); + } + } + writeInt8(value) { + this.bb.writeInt8(this.space -= 1, value); + } + writeInt16(value) { + this.bb.writeInt16(this.space -= 2, value); + } + writeInt32(value) { + this.bb.writeInt32(this.space -= 4, value); + } + writeInt64(value) { + this.bb.writeInt64(this.space -= 8, value); + } + writeFloat32(value) { + this.bb.writeFloat32(this.space -= 4, value); + } + writeFloat64(value) { + this.bb.writeFloat64(this.space -= 8, value); + } + /** + * Add an `int8` to the buffer, properly aligned, and grows the buffer (if necessary). + * @param value The `int8` to add the buffer. + */ + addInt8(value) { + this.prep(1, 0); + this.writeInt8(value); + } + /** + * Add an `int16` to the buffer, properly aligned, and grows the buffer (if necessary). + * @param value The `int16` to add the buffer. + */ + addInt16(value) { + this.prep(2, 0); + this.writeInt16(value); + } + /** + * Add an `int32` to the buffer, properly aligned, and grows the buffer (if necessary). + * @param value The `int32` to add the buffer. + */ + addInt32(value) { + this.prep(4, 0); + this.writeInt32(value); + } + /** + * Add an `int64` to the buffer, properly aligned, and grows the buffer (if necessary). + * @param value The `int64` to add the buffer. + */ + addInt64(value) { + this.prep(8, 0); + this.writeInt64(value); + } + /** + * Add a `float32` to the buffer, properly aligned, and grows the buffer (if necessary). + * @param value The `float32` to add the buffer. + */ + addFloat32(value) { + this.prep(4, 0); + this.writeFloat32(value); + } + /** + * Add a `float64` to the buffer, properly aligned, and grows the buffer (if necessary). + * @param value The `float64` to add the buffer. + */ + addFloat64(value) { + this.prep(8, 0); + this.writeFloat64(value); + } + addFieldInt8(voffset, value, defaultValue) { + if (this.force_defaults || value != defaultValue) { + this.addInt8(value); + this.slot(voffset); + } + } + addFieldInt16(voffset, value, defaultValue) { + if (this.force_defaults || value != defaultValue) { + this.addInt16(value); + this.slot(voffset); + } + } + addFieldInt32(voffset, value, defaultValue) { + if (this.force_defaults || value != defaultValue) { + this.addInt32(value); + this.slot(voffset); + } + } + addFieldInt64(voffset, value, defaultValue) { + if (this.force_defaults || value !== defaultValue) { + this.addInt64(value); + this.slot(voffset); + } + } + addFieldFloat32(voffset, value, defaultValue) { + if (this.force_defaults || value != defaultValue) { + this.addFloat32(value); + this.slot(voffset); + } + } + addFieldFloat64(voffset, value, defaultValue) { + if (this.force_defaults || value != defaultValue) { + this.addFloat64(value); + this.slot(voffset); + } + } + addFieldOffset(voffset, value, defaultValue) { + if (this.force_defaults || value != defaultValue) { + this.addOffset(value); + this.slot(voffset); + } + } + /** + * Structs are stored inline, so nothing additional is being added. `d` is always 0. + */ + addFieldStruct(voffset, value, defaultValue) { + if (value != defaultValue) { + this.nested(value); + this.slot(voffset); + } + } + /** + * Structures are always stored inline, they need to be created right + * where they're used. You'll get this assertion failure if you + * created it elsewhere. + */ + nested(obj) { + if (obj != this.offset()) { + throw new TypeError('FlatBuffers: struct must be serialized inline.'); + } + } + /** + * Should not be creating any other object, string or vector + * while an object is being constructed + */ + notNested() { + if (this.isNested) { + throw new TypeError('FlatBuffers: object serialization must not be nested.'); + } + } + /** + * Set the current vtable at `voffset` to the current location in the buffer. + */ + slot(voffset) { + if (this.vtable !== null) + this.vtable[voffset] = this.offset(); + } + /** + * @returns Offset relative to the end of the buffer. + */ + offset() { + return this.bb.capacity() - this.space; + } + /** + * Doubles the size of the backing ByteBuffer and copies the old data towards + * the end of the new buffer (since we build the buffer backwards). + * + * @param bb The current buffer with the existing data + * @returns A new byte buffer with the old data copied + * to it. The data is located at the end of the buffer. + * + * uint8Array.set() formally takes {Array|ArrayBufferView}, so to pass + * it a uint8Array we need to suppress the type check: + * @suppress {checkTypes} + */ + static growByteBuffer(bb) { + const old_buf_size = bb.capacity(); + // Ensure we don't grow beyond what fits in an int. + if (old_buf_size & 0xC0000000) { + throw new Error('FlatBuffers: cannot grow buffer beyond 2 gigabytes.'); + } + const new_buf_size = old_buf_size << 1; + const nbb = ByteBuffer.allocate(new_buf_size); + nbb.setPosition(new_buf_size - old_buf_size); + nbb.bytes().set(bb.bytes(), new_buf_size - old_buf_size); + return nbb; + } + /** + * Adds on offset, relative to where it will be written. + * + * @param offset The offset to add. + */ + addOffset(offset) { + this.prep(SIZEOF_INT, 0); // Ensure alignment is already done. + this.writeInt32(this.offset() - offset + SIZEOF_INT); + } + /** + * Start encoding a new object in the buffer. Users will not usually need to + * call this directly. The FlatBuffers compiler will generate helper methods + * that call this method internally. + */ + startObject(numfields) { + this.notNested(); + if (this.vtable == null) { + this.vtable = []; + } + this.vtable_in_use = numfields; + for (let i = 0; i < numfields; i++) { + this.vtable[i] = 0; // This will push additional elements as needed + } + this.isNested = true; + this.object_start = this.offset(); + } + /** + * Finish off writing the object that is under construction. + * + * @returns The offset to the object inside `dataBuffer` + */ + endObject() { + if (this.vtable == null || !this.isNested) { + throw new Error('FlatBuffers: endObject called without startObject'); + } + this.addInt32(0); + const vtableloc = this.offset(); + // Trim trailing zeroes. + let i = this.vtable_in_use - 1; + // eslint-disable-next-line no-empty + for (; i >= 0 && this.vtable[i] == 0; i--) { } + const trimmed_size = i + 1; + // Write out the current vtable. + for (; i >= 0; i--) { + // Offset relative to the start of the table. + this.addInt16(this.vtable[i] != 0 ? vtableloc - this.vtable[i] : 0); + } + const standard_fields = 2; // The fields below: + this.addInt16(vtableloc - this.object_start); + const len = (trimmed_size + standard_fields) * SIZEOF_SHORT; + this.addInt16(len); + // Search for an existing vtable that matches the current one. + let existing_vtable = 0; + const vt1 = this.space; + outer_loop: for (i = 0; i < this.vtables.length; i++) { + const vt2 = this.bb.capacity() - this.vtables[i]; + if (len == this.bb.readInt16(vt2)) { + for (let j = SIZEOF_SHORT; j < len; j += SIZEOF_SHORT) { + if (this.bb.readInt16(vt1 + j) != this.bb.readInt16(vt2 + j)) { + continue outer_loop; + } + } + existing_vtable = this.vtables[i]; + break; + } + } + if (existing_vtable) { + // Found a match: + // Remove the current vtable. + this.space = this.bb.capacity() - vtableloc; + // Point table to existing vtable. + this.bb.writeInt32(this.space, existing_vtable - vtableloc); + } + else { + // No match: + // Add the location of the current vtable to the list of vtables. + this.vtables.push(this.offset()); + // Point table to current vtable. + this.bb.writeInt32(this.bb.capacity() - vtableloc, this.offset() - vtableloc); + } + this.isNested = false; + return vtableloc; + } + /** + * Finalize a buffer, poiting to the given `root_table`. + */ + finish(root_table, opt_file_identifier, opt_size_prefix) { + const size_prefix = opt_size_prefix ? SIZE_PREFIX_LENGTH : 0; + if (opt_file_identifier) { + const file_identifier = opt_file_identifier; + this.prep(this.minalign, SIZEOF_INT + + FILE_IDENTIFIER_LENGTH + size_prefix); + if (file_identifier.length != FILE_IDENTIFIER_LENGTH) { + throw new TypeError('FlatBuffers: file identifier must be length ' + + FILE_IDENTIFIER_LENGTH); + } + for (let i = FILE_IDENTIFIER_LENGTH - 1; i >= 0; i--) { + this.writeInt8(file_identifier.charCodeAt(i)); + } + } + this.prep(this.minalign, SIZEOF_INT + size_prefix); + this.addOffset(root_table); + if (size_prefix) { + this.addInt32(this.bb.capacity() - this.space); + } + this.bb.setPosition(this.space); + } + /** + * Finalize a size prefixed buffer, pointing to the given `root_table`. + */ + finishSizePrefixed(root_table, opt_file_identifier) { + this.finish(root_table, opt_file_identifier, true); + } + /** + * This checks a required field has been set in a given table that has + * just been constructed. + */ + requiredField(table, field) { + const table_start = this.bb.capacity() - table; + const vtable_start = table_start - this.bb.readInt32(table_start); + const ok = field < this.bb.readInt16(vtable_start) && + this.bb.readInt16(vtable_start + field) != 0; + // If this fails, the caller will show what field needs to be set. + if (!ok) { + throw new TypeError('FlatBuffers: field ' + field + ' must be set'); + } + } + /** + * Start a new array/vector of objects. Users usually will not call + * this directly. The FlatBuffers compiler will create a start/end + * method for vector types in generated code. + * + * @param elem_size The size of each element in the array + * @param num_elems The number of elements in the array + * @param alignment The alignment of the array + */ + startVector(elem_size, num_elems, alignment) { + this.notNested(); + this.vector_num_elems = num_elems; + this.prep(SIZEOF_INT, elem_size * num_elems); + this.prep(alignment, elem_size * num_elems); // Just in case alignment > int. + } + /** + * Finish off the creation of an array and all its elements. The array must be + * created with `startVector`. + * + * @returns The offset at which the newly created array + * starts. + */ + endVector() { + this.writeInt32(this.vector_num_elems); + return this.offset(); + } + /** + * Encode the string `s` in the buffer using UTF-8. If the string passed has + * already been seen, we return the offset of the already written string + * + * @param s The string to encode + * @return The offset in the buffer where the encoded string starts + */ + createSharedString(s) { + if (!s) { 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 (!this.string_maps) { + this.string_maps = new Map(); + } + if (this.string_maps.has(s)) { + return this.string_maps.get(s); + } + const offset = this.createString(s); + this.string_maps.set(s, offset); + return offset; + } + /** + * Encode the string `s` in the buffer using UTF-8. If a Uint8Array is passed + * instead of a string, it is assumed to contain valid UTF-8 encoded data. + * + * @param s The string to encode + * @return The offset in the buffer where the encoded string starts + */ + createString(s) { + if (s === null || s === undefined) { + return 0; + } + let utf8; + if (s instanceof Uint8Array) { + utf8 = s; + } + else { + utf8 = this.text_encoder.encode(s); + } + this.addInt8(0); + this.startVector(1, utf8.length, 1); + this.bb.setPosition(this.space -= utf8.length); + for (let i = 0, offset = this.space, bytes = this.bb.bytes(); i < utf8.length; i++) { + bytes[offset++] = utf8[i]; + } + return this.endVector(); + } + /** + * A helper function to pack an object + * + * @returns offset of obj + */ + createObjectOffset(obj) { + if (obj === null) { + return 0; + } + if (typeof obj === 'string') { + return this.createString(obj); + } + else { + return obj.pack(this); + } + } + /** + * A helper function to pack a list of object + * + * @returns list of offsets of each non null object + */ + createObjectOffsetList(list) { + const ret = []; + for (let i = 0; i < list.length; ++i) { + const val = list[i]; + if (val !== null) { + ret.push(this.createObjectOffset(val)); + } + else { + throw new TypeError('FlatBuffers: Argument for createObjectOffsetList cannot contain null.'); + } + } + return ret; + } + createStructOffsetList(list, startFunc) { + startFunc(this, list.length); + this.createObjectOffsetList(list.slice().reverse()); + return this.endVector(); + } +} + +// automatically generated by the FlatBuffers compiler, do not modify +class Fragment { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsFragment(bb, obj) { + return (obj || new Fragment()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsFragment(bb, obj) { + bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); + return (obj || new Fragment()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + position(index) { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.readFloat32(this.bb.__vector(this.bb_pos + offset) + index * 4) : 0; + } + positionLength() { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + positionArray() { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? new Float32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; + } + normal(index) { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.readFloat32(this.bb.__vector(this.bb_pos + offset) + index * 4) : 0; + } + normalLength() { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + normalArray() { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? new Float32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; + } + index(index) { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? this.bb.readInt32(this.bb.__vector(this.bb_pos + offset) + index * 4) : 0; + } + indexLength() { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + indexArray() { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? new Int32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; + } + blockId(index) { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? this.bb.readInt32(this.bb.__vector(this.bb_pos + offset) + index * 4) : 0; + } + blockIdLength() { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + blockIdArray() { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? new Int32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; + } + groups(index) { + const offset = this.bb.__offset(this.bb_pos, 12); + return offset ? this.bb.readFloat32(this.bb.__vector(this.bb_pos + offset) + index * 4) : 0; + } + groupsLength() { + const offset = this.bb.__offset(this.bb_pos, 12); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + groupsArray() { + const offset = this.bb.__offset(this.bb_pos, 12); + return offset ? new Float32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; + } + materials(index) { + const offset = this.bb.__offset(this.bb_pos, 14); + return offset ? this.bb.readFloat32(this.bb.__vector(this.bb_pos + offset) + index * 4) : 0; + } + materialsLength() { + const offset = this.bb.__offset(this.bb_pos, 14); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + materialsArray() { + const offset = this.bb.__offset(this.bb_pos, 14); + return offset ? new Float32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; + } + matrices(index) { + const offset = this.bb.__offset(this.bb_pos, 16); + return offset ? this.bb.readFloat32(this.bb.__vector(this.bb_pos + offset) + index * 4) : 0; + } + matricesLength() { + const offset = this.bb.__offset(this.bb_pos, 16); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + matricesArray() { + const offset = this.bb.__offset(this.bb_pos, 16); + return offset ? new Float32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; + } + colors(index) { + const offset = this.bb.__offset(this.bb_pos, 18); + return offset ? this.bb.readFloat32(this.bb.__vector(this.bb_pos + offset) + index * 4) : 0; + } + colorsLength() { + const offset = this.bb.__offset(this.bb_pos, 18); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + colorsArray() { + const offset = this.bb.__offset(this.bb_pos, 18); + return offset ? new Float32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; + } + ids(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 20); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + id(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 22); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + composites(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 24); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + static startFragment(builder) { + builder.startObject(11); + } + static addPosition(builder, positionOffset) { + builder.addFieldOffset(0, positionOffset, 0); + } + static createPositionVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) { + builder.addFloat32(data[i]); + } + return builder.endVector(); + } + static startPositionVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addNormal(builder, normalOffset) { + builder.addFieldOffset(1, normalOffset, 0); + } + static createNormalVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) { + builder.addFloat32(data[i]); + } + return builder.endVector(); + } + static startNormalVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addIndex(builder, indexOffset) { + builder.addFieldOffset(2, indexOffset, 0); + } + static createIndexVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) { + builder.addInt32(data[i]); + } + return builder.endVector(); + } + static startIndexVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addBlockId(builder, blockIdOffset) { + builder.addFieldOffset(3, blockIdOffset, 0); + } + static createBlockIdVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) { + builder.addInt32(data[i]); + } + return builder.endVector(); + } + static startBlockIdVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addGroups(builder, groupsOffset) { + builder.addFieldOffset(4, groupsOffset, 0); + } + static createGroupsVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) { + builder.addFloat32(data[i]); + } + return builder.endVector(); + } + static startGroupsVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addMaterials(builder, materialsOffset) { + builder.addFieldOffset(5, materialsOffset, 0); + } + static createMaterialsVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) { + builder.addFloat32(data[i]); + } + return builder.endVector(); + } + static startMaterialsVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addMatrices(builder, matricesOffset) { + builder.addFieldOffset(6, matricesOffset, 0); + } + static createMatricesVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) { + builder.addFloat32(data[i]); + } + return builder.endVector(); + } + static startMatricesVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addColors(builder, colorsOffset) { + builder.addFieldOffset(7, colorsOffset, 0); + } + static createColorsVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) { + builder.addFloat32(data[i]); + } + return builder.endVector(); + } + static startColorsVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addIds(builder, idsOffset) { + builder.addFieldOffset(8, idsOffset, 0); + } + static addId(builder, idOffset) { + builder.addFieldOffset(9, idOffset, 0); + } + static addComposites(builder, compositesOffset) { + builder.addFieldOffset(10, compositesOffset, 0); + } + static endFragment(builder) { + const offset = builder.endObject(); + return offset; + } + static createFragment(builder, positionOffset, normalOffset, indexOffset, blockIdOffset, groupsOffset, materialsOffset, matricesOffset, colorsOffset, idsOffset, idOffset, compositesOffset) { + Fragment.startFragment(builder); + Fragment.addPosition(builder, positionOffset); + Fragment.addNormal(builder, normalOffset); + Fragment.addIndex(builder, indexOffset); + Fragment.addBlockId(builder, blockIdOffset); + Fragment.addGroups(builder, groupsOffset); + Fragment.addMaterials(builder, materialsOffset); + Fragment.addMatrices(builder, matricesOffset); + Fragment.addColors(builder, colorsOffset); + Fragment.addIds(builder, idsOffset); + Fragment.addId(builder, idOffset); + Fragment.addComposites(builder, compositesOffset); + return Fragment.endFragment(builder); + } +} + +// automatically generated by the FlatBuffers compiler, do not modify +let FragmentsGroup$1 = class FragmentsGroup { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsFragmentsGroup(bb, obj) { + return (obj || new FragmentsGroup$1()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsFragmentsGroup(bb, obj) { + bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); + return (obj || new FragmentsGroup$1()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + items(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? (obj || new Fragment()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + itemsLength() { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + coordinationMatrix(index) { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.readFloat32(this.bb.__vector(this.bb_pos + offset) + index * 4) : 0; + } + coordinationMatrixLength() { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + coordinationMatrixArray() { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? new Float32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; + } + ids(index) { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? this.bb.readUint32(this.bb.__vector(this.bb_pos + offset) + index * 4) : 0; + } + idsLength() { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + idsArray() { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? new Uint32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; + } + itemsKeys(index) { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? this.bb.readUint32(this.bb.__vector(this.bb_pos + offset) + index * 4) : 0; + } + itemsKeysLength() { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + itemsKeysArray() { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? new Uint32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; + } + itemsKeysIndices(index) { + const offset = this.bb.__offset(this.bb_pos, 12); + return offset ? this.bb.readUint32(this.bb.__vector(this.bb_pos + offset) + index * 4) : 0; + } + itemsKeysIndicesLength() { + const offset = this.bb.__offset(this.bb_pos, 12); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + itemsKeysIndicesArray() { + const offset = this.bb.__offset(this.bb_pos, 12); + return offset ? new Uint32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; + } + itemsRels(index) { + const offset = this.bb.__offset(this.bb_pos, 14); + return offset ? this.bb.readUint32(this.bb.__vector(this.bb_pos + offset) + index * 4) : 0; + } + itemsRelsLength() { + const offset = this.bb.__offset(this.bb_pos, 14); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + itemsRelsArray() { + const offset = this.bb.__offset(this.bb_pos, 14); + return offset ? new Uint32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; + } + itemsRelsIndices(index) { + const offset = this.bb.__offset(this.bb_pos, 16); + return offset ? this.bb.readUint32(this.bb.__vector(this.bb_pos + offset) + index * 4) : 0; + } + itemsRelsIndicesLength() { + const offset = this.bb.__offset(this.bb_pos, 16); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + itemsRelsIndicesArray() { + const offset = this.bb.__offset(this.bb_pos, 16); + return offset ? new Uint32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; + } + fragmentKeys(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 18); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + id(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 20); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + name(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 22); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + ifcName(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 24); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + ifcDescription(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 26); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + ifcSchema(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 28); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + maxExpressId() { + const offset = this.bb.__offset(this.bb_pos, 30); + return offset ? this.bb.readUint32(this.bb_pos + offset) : 0; + } + boundingBox(index) { + const offset = this.bb.__offset(this.bb_pos, 32); + return offset ? this.bb.readFloat32(this.bb.__vector(this.bb_pos + offset) + index * 4) : 0; + } + boundingBoxLength() { + const offset = this.bb.__offset(this.bb_pos, 32); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + boundingBoxArray() { + const offset = this.bb.__offset(this.bb_pos, 32); + return offset ? new Float32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; + } + static startFragmentsGroup(builder) { + builder.startObject(15); + } + static addItems(builder, itemsOffset) { + builder.addFieldOffset(0, itemsOffset, 0); + } + static createItemsVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) { + builder.addOffset(data[i]); + } + return builder.endVector(); + } + static startItemsVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addCoordinationMatrix(builder, coordinationMatrixOffset) { + builder.addFieldOffset(1, coordinationMatrixOffset, 0); + } + static createCoordinationMatrixVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) { + builder.addFloat32(data[i]); + } + return builder.endVector(); + } + static startCoordinationMatrixVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addIds(builder, idsOffset) { + builder.addFieldOffset(2, idsOffset, 0); + } + static createIdsVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) { + builder.addInt32(data[i]); + } + return builder.endVector(); + } + static startIdsVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addItemsKeys(builder, itemsKeysOffset) { + builder.addFieldOffset(3, itemsKeysOffset, 0); + } + static createItemsKeysVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) { + builder.addInt32(data[i]); + } + return builder.endVector(); + } + static startItemsKeysVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addItemsKeysIndices(builder, itemsKeysIndicesOffset) { + builder.addFieldOffset(4, itemsKeysIndicesOffset, 0); + } + static createItemsKeysIndicesVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) { + builder.addInt32(data[i]); + } + return builder.endVector(); + } + static startItemsKeysIndicesVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addItemsRels(builder, itemsRelsOffset) { + builder.addFieldOffset(5, itemsRelsOffset, 0); + } + static createItemsRelsVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) { + builder.addInt32(data[i]); + } + return builder.endVector(); + } + static startItemsRelsVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addItemsRelsIndices(builder, itemsRelsIndicesOffset) { + builder.addFieldOffset(6, itemsRelsIndicesOffset, 0); + } + static createItemsRelsIndicesVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) { + builder.addInt32(data[i]); + } + return builder.endVector(); + } + static startItemsRelsIndicesVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addFragmentKeys(builder, fragmentKeysOffset) { + builder.addFieldOffset(7, fragmentKeysOffset, 0); + } + static addId(builder, idOffset) { + builder.addFieldOffset(8, idOffset, 0); + } + static addName(builder, nameOffset) { + builder.addFieldOffset(9, nameOffset, 0); + } + static addIfcName(builder, ifcNameOffset) { + builder.addFieldOffset(10, ifcNameOffset, 0); + } + static addIfcDescription(builder, ifcDescriptionOffset) { + builder.addFieldOffset(11, ifcDescriptionOffset, 0); + } + static addIfcSchema(builder, ifcSchemaOffset) { + builder.addFieldOffset(12, ifcSchemaOffset, 0); + } + static addMaxExpressId(builder, maxExpressId) { + builder.addFieldInt32(13, maxExpressId, 0); + } + static addBoundingBox(builder, boundingBoxOffset) { + builder.addFieldOffset(14, boundingBoxOffset, 0); + } + static createBoundingBoxVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) { + builder.addFloat32(data[i]); + } + return builder.endVector(); + } + static startBoundingBoxVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static endFragmentsGroup(builder) { + const offset = builder.endObject(); + return offset; + } + static finishFragmentsGroupBuffer(builder, offset) { + builder.finish(offset); + } + static finishSizePrefixedFragmentsGroupBuffer(builder, offset) { + builder.finish(offset, undefined, true); + } + static createFragmentsGroup(builder, itemsOffset, coordinationMatrixOffset, idsOffset, itemsKeysOffset, itemsKeysIndicesOffset, itemsRelsOffset, itemsRelsIndicesOffset, fragmentKeysOffset, idOffset, nameOffset, ifcNameOffset, ifcDescriptionOffset, ifcSchemaOffset, maxExpressId, boundingBoxOffset) { + FragmentsGroup$1.startFragmentsGroup(builder); + FragmentsGroup$1.addItems(builder, itemsOffset); + FragmentsGroup$1.addCoordinationMatrix(builder, coordinationMatrixOffset); + FragmentsGroup$1.addIds(builder, idsOffset); + FragmentsGroup$1.addItemsKeys(builder, itemsKeysOffset); + FragmentsGroup$1.addItemsKeysIndices(builder, itemsKeysIndicesOffset); + FragmentsGroup$1.addItemsRels(builder, itemsRelsOffset); + FragmentsGroup$1.addItemsRelsIndices(builder, itemsRelsIndicesOffset); + FragmentsGroup$1.addFragmentKeys(builder, fragmentKeysOffset); + FragmentsGroup$1.addId(builder, idOffset); + FragmentsGroup$1.addName(builder, nameOffset); + FragmentsGroup$1.addIfcName(builder, ifcNameOffset); + FragmentsGroup$1.addIfcDescription(builder, ifcDescriptionOffset); + FragmentsGroup$1.addIfcSchema(builder, ifcSchemaOffset); + FragmentsGroup$1.addMaxExpressId(builder, maxExpressId); + FragmentsGroup$1.addBoundingBox(builder, boundingBoxOffset); + return FragmentsGroup$1.endFragmentsGroup(builder); + } +}; + +// TODO: Document this +class FragmentsGroup extends THREE$1.Group { + constructor() { + super(...arguments); + this.items = []; + this.boundingBox = new THREE$1.Box3(); + this.coordinationMatrix = new THREE$1.Matrix4(); + this.keyFragments = {}; + // data: [expressID: number]: [keys, rels] + this.data = {}; + this.ifcMetadata = { + name: "", + description: "", + schema: "IFC2X3", + maxExpressID: 0, + }; + } + getFragmentMap(expressIDs) { + const fragmentMap = {}; + for (const expressID of expressIDs) { + const data = this.data[expressID]; + if (!data) + continue; + for (const key of data[0]) { + const fragmentID = this.keyFragments[key]; + if (!fragmentMap[fragmentID]) + fragmentMap[fragmentID] = new Set(); + fragmentMap[fragmentID].add(expressID); } - 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; + } + return fragmentMap; + } + dispose(disposeResources = true) { + for (const fragment of this.items) { + fragment.dispose(disposeResources); + } + this.coordinationMatrix = new THREE$1.Matrix4(); + this.keyFragments = {}; + this.data = {}; + this.properties = {}; + } +} + +/** + * Object to export and import sets of fragments efficiently using + * [flatbuffers](https://flatbuffers.dev/). + */ +class Serializer { + constructor() { + this.fragmentIDSeparator = "|"; + } + import(bytes) { + const buffer = new ByteBuffer(bytes); + const fbFragmentsGroup = FragmentsGroup$1.getRootAsFragmentsGroup(buffer); + const fragmentsGroup = this.constructFragmentGroup(fbFragmentsGroup); + const length = fbFragmentsGroup.itemsLength(); + for (let i = 0; i < length; i++) { + const fbFragment = fbFragmentsGroup.items(i); + if (!fbFragment) + continue; + const geometry = this.constructGeometry(fbFragment); + const materials = this.constructMaterials(fbFragment); + const { instances, colors } = this.constructInstances(fbFragment); + const fragment = new Fragment$1(geometry, materials, instances.length); + this.getComposites(fbFragment, fragment); + this.setInstances(instances, colors, fragment); + this.setID(fbFragment, fragment); + fragmentsGroup.items.push(fragment); + fragmentsGroup.add(fragment.mesh); + } + return fragmentsGroup; + } + export(group) { + const builder = new Builder(1024); + const items = []; + const G = FragmentsGroup$1; + const F = Fragment; + for (const fragment of group.items) { + const result = fragment.exportData(); + const posVector = F.createPositionVector(builder, result.position); + const normalVector = F.createNormalVector(builder, result.normal); + const blockVector = F.createBlockIdVector(builder, result.blockID); + const indexVector = F.createIndexVector(builder, result.index); + const groupsVector = F.createGroupsVector(builder, result.groups); + const matsVector = F.createMaterialsVector(builder, result.materials); + const matricesVector = F.createMatricesVector(builder, result.matrices); + const colorsVector = F.createColorsVector(builder, result.colors); + const idsStr = builder.createString(result.ids); + const idStr = builder.createString(result.id); + const compositeStr = builder.createString(JSON.stringify(fragment.composites)); + F.startFragment(builder); + F.addPosition(builder, posVector); + F.addNormal(builder, normalVector); + F.addBlockId(builder, blockVector); + F.addIndex(builder, indexVector); + F.addGroups(builder, groupsVector); + F.addMaterials(builder, matsVector); + F.addMatrices(builder, matricesVector); + F.addColors(builder, colorsVector); + F.addIds(builder, idsStr); + F.addId(builder, idStr); + F.addComposites(builder, compositeStr); + const exported = Fragment.endFragment(builder); + items.push(exported); + } + const itemsVector = G.createItemsVector(builder, items); + const matrixVector = G.createCoordinationMatrixVector(builder, group.coordinationMatrix.elements); + let fragmentKeys = ""; + for (const key in group.keyFragments) { + const fragmentID = group.keyFragments[key]; + if (fragmentKeys.length) + fragmentKeys += this.fragmentIDSeparator; + fragmentKeys += fragmentID; + } + const fragmentKeysRef = builder.createString(fragmentKeys); + const keyIndices = []; + const itemsKeys = []; + const relsIndices = []; + const itemsRels = []; + const ids = []; + let keysCounter = 0; + let relsCounter = 0; + for (const expressID in group.data) { + keyIndices.push(keysCounter); + relsIndices.push(relsCounter); + const [keys, rels] = group.data[expressID]; + const id = parseInt(expressID, 10); + ids.push(id); + for (const key of keys) { + itemsKeys.push(key); + } + for (const rel of rels) { + itemsRels.push(rel); + } + keysCounter += keys.length; + relsCounter += rels.length; + } + const groupID = builder.createString(group.uuid); + const groupName = builder.createString(group.name); + const ifcName = builder.createString(group.ifcMetadata.name); + const ifcDescription = builder.createString(group.ifcMetadata.description); + const ifcSchema = builder.createString(group.ifcMetadata.schema); + const keysIVector = G.createItemsKeysIndicesVector(builder, keyIndices); + const keysVector = G.createItemsKeysVector(builder, itemsKeys); + const relsIVector = G.createItemsRelsIndicesVector(builder, relsIndices); + const relsVector = G.createItemsRelsVector(builder, itemsRels); + const idsVector = G.createIdsVector(builder, ids); + const { min, max } = group.boundingBox; + const bbox = [min.x, min.y, min.z, max.x, max.y, max.z]; + const bboxVector = G.createBoundingBoxVector(builder, bbox); + G.startFragmentsGroup(builder); + G.addId(builder, groupID); + G.addName(builder, groupName); + G.addIfcName(builder, ifcName); + G.addIfcDescription(builder, ifcDescription); + G.addIfcSchema(builder, ifcSchema); + G.addMaxExpressId(builder, group.ifcMetadata.maxExpressID); + G.addItems(builder, itemsVector); + G.addFragmentKeys(builder, fragmentKeysRef); + G.addIds(builder, idsVector); + G.addItemsKeysIndices(builder, keysIVector); + G.addItemsKeys(builder, keysVector); + G.addItemsRelsIndices(builder, relsIVector); + G.addItemsRels(builder, relsVector); + G.addCoordinationMatrix(builder, matrixVector); + G.addBoundingBox(builder, bboxVector); + const result = FragmentsGroup$1.endFragmentsGroup(builder); + builder.finish(result); + return builder.asUint8Array(); + } + getComposites(fbFragment, fragment) { + const composites = fbFragment.composites() || "{}"; + fragment.composites = JSON.parse(composites); + } + setID(fbFragment, fragment) { + const id = fbFragment.id(); + if (id) { + fragment.id = id; + fragment.mesh.uuid = id; + } + } + setInstances(instances, colors, fragment) { + for (let i = 0; i < instances.length; i++) { + fragment.setInstance(i, instances[i]); + if (colors.length) { + fragment.mesh.setColorAt(i, colors[i]); + } + } + } + constructInstances(fragment) { + const matricesData = fragment.matricesArray(); + const colorData = fragment.colorsArray(); + const colors = []; + const idsString = fragment.ids(); + const id = fragment.id(); + if (!matricesData || !idsString) { + throw new Error(`Error: Can't load empty fragment: ${id}`); + } + const ids = idsString.split("|"); + const singleInstance = matricesData.length === 16; + const manyItems = ids.length > 1; + const isMergedFragment = singleInstance && manyItems; + if (isMergedFragment) { + const transform = new THREE$1.Matrix4().fromArray(matricesData); + const instances = [{ ids, transform }]; + return { instances, colors }; + } + // Instanced fragment + const instances = []; + for (let i = 0; i < matricesData.length; i += 16) { + const matrixArray = matricesData.subarray(i, i + 17); + const transform = new THREE$1.Matrix4().fromArray(matrixArray); + const id = ids[i / 16]; + instances.push({ ids: [id], transform }); + } + if (colorData && colorData.length === instances.length * 3) { + for (let i = 0; i < colorData.length; i += 3) { + const [r, g, b] = colorData.subarray(i, i + 4); + const color = new THREE$1.Color(r, g, b); + colors.push(color); + } + } + return { instances, colors }; + } + constructMaterials(fragment) { + const materials = fragment.materialsArray(); + const matArray = []; + if (!materials) + return matArray; + for (let i = 0; i < materials.length; i += 5) { + const opacity = materials[i]; + const transparent = Boolean(materials[i + 1]); + const red = materials[i + 2]; + const green = materials[i + 3]; + const blue = materials[i + 4]; + const color = new THREE$1.Color(red, green, blue); + const material = new THREE$1.MeshLambertMaterial({ + color, + opacity, + transparent, + }); + matArray.push(material); + } + return matArray; + } + constructFragmentGroup(group) { + const fragmentsGroup = new FragmentsGroup(); + fragmentsGroup.uuid = group.id() || fragmentsGroup.uuid; + fragmentsGroup.name = group.name() || ""; + fragmentsGroup.ifcMetadata = { + name: group.ifcName() || "", + description: group.ifcDescription() || "", + schema: group.ifcSchema() || "IFC2X3", + maxExpressID: group.maxExpressId() || 0, + }; + const defaultMatrix = new THREE$1.Matrix4().elements; + const matrixArray = group.coordinationMatrixArray() || defaultMatrix; + const ids = group.idsArray() || new Uint32Array(); + const keysIndices = group.itemsKeysIndicesArray() || new Uint32Array(); + const keysArray = group.itemsKeysArray() || new Uint32Array(); + const relsArray = group.itemsRelsArray() || new Uint32Array(); + const relsIndices = group.itemsRelsIndicesArray() || new Uint32Array(); + const keysIdsString = group.fragmentKeys() || ""; + const keysIdsArray = keysIdsString.split(this.fragmentIDSeparator); + this.setGroupData(fragmentsGroup, ids, keysIndices, keysArray, 0); + this.setGroupData(fragmentsGroup, ids, relsIndices, relsArray, 1); + const bbox = group.boundingBoxArray() || [0, 0, 0, 0, 0, 0]; + const [minX, minY, minZ, maxX, maxY, maxZ] = bbox; + fragmentsGroup.boundingBox.min.set(minX, minY, minZ); + fragmentsGroup.boundingBox.max.set(maxX, maxY, maxZ); + for (let i = 0; i < keysIdsArray.length; i++) { + fragmentsGroup.keyFragments[i] = keysIdsArray[i]; + } + if (matrixArray.length === 16) { + fragmentsGroup.coordinationMatrix.fromArray(matrixArray); + } + return fragmentsGroup; + } + setGroupData(group, ids, indices, array, index) { + for (let i = 0; i < indices.length; i++) { + const expressID = ids[i]; + const currentIndex = indices[i]; + const nextIndex = indices[i + 1] || array.length; + const keys = []; + for (let j = currentIndex; j < nextIndex; j++) { + keys.push(array[j]); + } + if (!group.data[expressID]) { + group.data[expressID] = [[], []]; + } + group.data[expressID][index] = keys; + } + } + constructGeometry(fragment) { + const position = fragment.positionArray(); + const normal = fragment.normalArray(); + const blockID = fragment.blockIdArray(); + const index = fragment.indexArray(); + const groups = fragment.groupsArray(); + if (!index) + throw new Error("Index not found!"); + const geometry = new THREE$1.BufferGeometry(); + geometry.setIndex(Array.from(index)); + this.loadAttribute(geometry, "position", position, 3); + this.loadAttribute(geometry, "normal", normal, 3); + this.loadAttribute(geometry, "blockID", blockID, 1); + this.loadGeometryGroups(groups, geometry); + return geometry; + } + loadGeometryGroups(groups, geometry) { + if (!groups) + return; + for (let i = 0; i < groups.length; i += 3) { + const start = groups[i]; + const count = groups[i + 1]; + const materialIndex = groups[i + 2]; + geometry.addGroup(start, count, materialIndex); + } + } + loadAttribute(geometry, name, data, size) { + if (!data) + return; + geometry.setAttribute(name, new THREE$1.BufferAttribute(data, size)); + } +} + +/** + * Object that can efficiently load binary files that contain + * [fragment geometry](https://github.com/ifcjs/fragment). + */ +class FragmentManager extends Component { + /** The list of meshes of the created fragments. */ + get meshes() { + const allMeshes = []; + for (const fragID in this.list) { + allMeshes.push(this.list[fragID].mesh); + } + return allMeshes; + } + constructor(components) { + super(components); + /** {@link Component.enabled} */ + this.enabled = true; + /** All the created [fragments](https://github.com/ifcjs/fragment). */ + this.list = {}; + this.groups = []; + this.baseCoordinationModel = ""; + this.onFragmentsLoaded = new Event(); + this.uiElement = new UIElement(); + this.commands = []; + this._loader = new Serializer(); + this._cards = []; + this.components.tools.add(FragmentManager.uuid, this); + if (components.ui.enabled) { + this.setupUI(components); + } + } + /** {@link Component.get} */ + get() { + return Object.values(this.list); + } + /** {@link Component.get} */ + async dispose(disposeUI = false) { + if (disposeUI) { + this.onFragmentsLoaded.reset(); + this.uiElement.dispose(); + } + for (const group of this.groups) { + group.dispose(true); + } + for (const command of this.commands) { + await command.dispose(); + } + for (const card of this._cards) { + await card.dispose(); + } + this.groups = []; + this.list = {}; + } + async disposeGroup(group) { + for (const fragment of group.items) { + this.removeFragmentMesh(fragment); + delete this.list[fragment.id]; + } + group.dispose(true); + const index = this.groups.indexOf(group); + this.groups.splice(index, 1); + await this.updateWindow(); + } + /** Disposes all existing fragments */ + reset() { + for (const id in this.list) { + const fragment = this.list[id]; + fragment.dispose(); + } + this.list = {}; + } + /** + * Loads one or many fragments into the scene. + * @param data - the bytes containing the data for the fragments to load. + * @returns the list of IDs of the loaded fragments. + */ + async load(data) { + const group = this._loader.import(data); + const scene = this.components.scene.get(); + const ids = []; + scene.add(group); + for (const fragment of group.items) { + fragment.group = group; + this.list[fragment.id] = fragment; + ids.push(fragment.id); + this.components.meshes.push(fragment.mesh); + } + this.groups.push(group); + await this.onFragmentsLoaded.trigger(group); + return group; + } + /** + * Export the specified fragments. + * @param group - the fragments group to be exported. + * @returns the exported data as binary buffer. + */ + export(group) { + return this._loader.export(group); + } + async updateWindow() { + if (!this.components.ui.enabled) { + return; + } + for (const card of this._cards) { + await card.dispose(); + } + for (const group of this.groups) { + const card = new SimpleUICard(this.components); + // TODO: Make all cards like this? + card.domElement.classList.remove("bg-ifcjs-120"); + card.domElement.classList.remove("border-transparent"); + card.domElement.className += ` min-w-[300px] my-2 border-1 border-solid border-[#3A444E] `; + const buttonContainer = new SimpleUIComponent(this.components); + card.addChild(buttonContainer); + card.title = group.name; + this.uiElement.get("window").addChild(card); + this._cards.push(card); + // TODO: Use command list just like in fragment plans + const commandsButton = new Button(this.components); + commandsButton.materialIcon = "delete"; + buttonContainer.addChild(commandsButton); + commandsButton.onClick.add(() => this.disposeGroup(group)); + } + } + coordinate(models = this.groups) { + const baseModel = this.groups.find((group) => group.uuid === this.baseCoordinationModel); + if (!baseModel) { + console.log("No base model found for coordination!"); + return; + } + for (const model of models) { + if (model === baseModel) { + continue; } + model.position.set(0, 0, 0); + model.rotation.set(0, 0, 0); + model.scale.set(1, 1, 1); + model.updateMatrix(); + model.applyMatrix4(model.coordinationMatrix.clone().invert()); + model.applyMatrix4(baseModel.coordinationMatrix); + } + } + setupUI(components) { + const window = new FloatingWindow(components); + window.title = "Models"; + window.domElement.style.left = "70px"; + window.domElement.style.top = "100px"; + window.domElement.style.width = "340px"; + window.domElement.style.height = "400px"; + const windowContent = window.slots.content.domElement; + windowContent.classList.remove("overflow-auto"); + windowContent.classList.add("overflow-x-hidden"); + components.ui.add(window); + window.visible = false; + const main = new Button(components); + main.tooltip = "Models"; + main.materialIcon = "inbox"; + main.onClick.add(() => { + window.visible = !window.visible; + }); + this.uiElement.set({ main, window }); + this.onFragmentsLoaded.add(() => this.updateWindow()); + } + removeFragmentMesh(fragment) { + const meshes = this.components.meshes; + const mesh = fragment.mesh; + if (meshes.includes(mesh)) { + meshes.splice(meshes.indexOf(mesh), 1); + } + } +} +FragmentManager.uuid = "fef46874-46a3-461b-8c44-2922ab77c806"; +ToolComponent.libraryUUIDs.add(FragmentManager.uuid); + +var __defProp = Object.defineProperty; +var __defProps = Object.defineProperties; +var __getOwnPropDescs = Object.getOwnPropertyDescriptors; +var __getOwnPropSymbols = Object.getOwnPropertySymbols; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __propIsEnum = Object.prototype.propertyIsEnumerable; +var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var __spreadValues = (a, b) => { + for (var prop in b || (b = {})) + if (__hasOwnProp.call(b, prop)) + __defNormalProp(a, prop, b[prop]); + if (__getOwnPropSymbols) + for (var prop of __getOwnPropSymbols(b)) { + if (__propIsEnum.call(b, prop)) + __defNormalProp(a, prop, b[prop]); + } + return a; +}; +var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b)); +var __commonJS$1 = (cb, mod) => function __require() { + return mod || (0, cb[Object.keys(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; +}; +var __async = (__this, __arguments, generator) => { + return new Promise((resolve, reject) => { + var fulfilled = (value) => { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + }; + var rejected = (value) => { + try { + step(generator.throw(value)); + } catch (e) { + reject(e); + } + }; + var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected); + step((generator = generator.apply(__this, __arguments)).next()); + }); +}; + +// dist/web-ifc-mt.js +var require_web_ifc_mt$1 = __commonJS$1({ + "dist/web-ifc-mt.js"(exports, module) { + var WebIFCWasm2 = (() => { + var _scriptDir = typeof document !== "undefined" && document.currentScript ? document.currentScript.src : void 0; + return function(moduleArg = {}) { + function GROWABLE_HEAP_I8() { + if (wasmMemory.buffer != HEAP8.buffer) { + updateMemoryViews(); } - heap[outIdx >>> 0] = 0; - return outIdx - startIdx; + return HEAP8; } - function stringToUTF8(str, outPtr, maxBytesToWrite) { - return stringToUTF8Array(str, GROWABLE_HEAP_U8(), outPtr, maxBytesToWrite); + function GROWABLE_HEAP_U8() { + if (wasmMemory.buffer != HEAP8.buffer) { + updateMemoryViews(); + } + return HEAPU8; } - function lengthBytesUTF8(str) { - var len = 0; - for (var i = 0; i < str.length; ++i) { - var c = str.charCodeAt(i); - if (c <= 127) { - len++; - } else if (c <= 2047) { - len += 2; - } else if (c >= 55296 && c <= 57343) { - len += 4; - ++i; - } else { - len += 3; + function GROWABLE_HEAP_I16() { + if (wasmMemory.buffer != HEAP8.buffer) { + updateMemoryViews(); + } + return HEAP16; + } + function GROWABLE_HEAP_U16() { + if (wasmMemory.buffer != HEAP8.buffer) { + updateMemoryViews(); + } + return HEAPU16; + } + function GROWABLE_HEAP_I32() { + if (wasmMemory.buffer != HEAP8.buffer) { + updateMemoryViews(); + } + return HEAP32; + } + function GROWABLE_HEAP_U32() { + if (wasmMemory.buffer != HEAP8.buffer) { + updateMemoryViews(); + } + return HEAPU32; + } + function GROWABLE_HEAP_F32() { + if (wasmMemory.buffer != HEAP8.buffer) { + updateMemoryViews(); + } + return HEAPF32; + } + function GROWABLE_HEAP_F64() { + if (wasmMemory.buffer != HEAP8.buffer) { + updateMemoryViews(); + } + return HEAPF64; + } + var Module = moduleArg; + var readyPromiseResolve, readyPromiseReject; + Module["ready"] = new Promise((resolve, reject) => { + readyPromiseResolve = resolve; + readyPromiseReject = reject; + }); + var moduleOverrides = Object.assign({}, Module); + var thisProgram = "./this.program"; + var quit_ = (status, toThrow) => { + throw toThrow; + }; + var ENVIRONMENT_IS_WEB = typeof window == "object"; + var ENVIRONMENT_IS_WORKER = typeof importScripts == "function"; + var ENVIRONMENT_IS_NODE = typeof process == "object" && typeof process.versions == "object" && typeof process.versions.node == "string"; + var ENVIRONMENT_IS_PTHREAD = Module["ENVIRONMENT_IS_PTHREAD"] || false; + var scriptDirectory = ""; + function locateFile(path) { + if (Module["locateFile"]) { + return Module["locateFile"](path, scriptDirectory); + } + return scriptDirectory + path; + } + var read_, readAsync, readBinary; + if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) { + if (ENVIRONMENT_IS_WORKER) { + scriptDirectory = self.location.href; + } else if (typeof document != "undefined" && document.currentScript) { + scriptDirectory = document.currentScript.src; + } + if (_scriptDir) { + scriptDirectory = _scriptDir; + } + if (scriptDirectory.indexOf("blob:") !== 0) { + scriptDirectory = scriptDirectory.substr(0, scriptDirectory.replace(/[?#].*/, "").lastIndexOf("/") + 1); + } else { + scriptDirectory = ""; + } + { + read_ = (url) => { + var xhr = new XMLHttpRequest(); + xhr.open("GET", url, false); + xhr.send(null); + return xhr.responseText; + }; + if (ENVIRONMENT_IS_WORKER) { + readBinary = (url) => { + var xhr = new XMLHttpRequest(); + xhr.open("GET", url, false); + xhr.responseType = "arraybuffer"; + xhr.send(null); + return new Uint8Array(xhr.response); + }; } + readAsync = (url, onload, onerror) => { + var xhr = new XMLHttpRequest(); + xhr.open("GET", url, true); + xhr.responseType = "arraybuffer"; + xhr.onload = () => { + if (xhr.status == 200 || xhr.status == 0 && xhr.response) { + onload(xhr.response); + return; + } + onerror(); + }; + xhr.onerror = onerror; + xhr.send(null); + }; + } + } + var out = Module["print"] || console.log.bind(console); + var err = Module["printErr"] || console.error.bind(console); + Object.assign(Module, moduleOverrides); + moduleOverrides = null; + if (Module["arguments"]) + Module["arguments"]; + if (Module["thisProgram"]) + thisProgram = Module["thisProgram"]; + if (Module["quit"]) + quit_ = Module["quit"]; + var wasmBinary; + if (Module["wasmBinary"]) + wasmBinary = Module["wasmBinary"]; + var noExitRuntime = Module["noExitRuntime"] || true; + if (typeof WebAssembly != "object") { + abort("no native wasm support detected"); + } + var wasmMemory; + var wasmExports; + var wasmModule; + var ABORT = false; + var EXITSTATUS; + function assert(condition, text) { + if (!condition) { + abort(text); } - return len; } var HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64; function updateMemoryViews() { @@ -8884,8 +29628,9 @@ var require_web_ifc_mt = __commonJS({ var __ATPRERUN__ = []; var __ATINIT__ = []; var __ATPOSTRUN__ = []; + var runtimeKeepaliveCounter = 0; function keepRuntimeAlive() { - return noExitRuntime; + return noExitRuntime || runtimeKeepaliveCounter > 0; } function preRun() { if (Module["preRun"]) { @@ -8972,98 +29717,91 @@ var require_web_ifc_mt = __commonJS({ if (!isDataURI(wasmBinaryFile)) { wasmBinaryFile = locateFile(wasmBinaryFile); } - function getBinary(file) { - try { - if (file == wasmBinaryFile && wasmBinary) { - return new Uint8Array(wasmBinary); - } - if (readBinary) { - return readBinary(file); - } - throw "both async and sync fetching of the wasm failed"; - } catch (err2) { - abort(err2); + function getBinarySync(file) { + if (file == wasmBinaryFile && wasmBinary) { + return new Uint8Array(wasmBinary); } + if (readBinary) { + return readBinary(file); + } + throw "both async and sync fetching of the wasm failed"; } - function getBinaryPromise() { + function getBinaryPromise(binaryFile) { if (!wasmBinary && (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER)) { if (typeof fetch == "function") { - return fetch(wasmBinaryFile, { credentials: "same-origin" }).then(function(response) { + return fetch(binaryFile, { credentials: "same-origin" }).then((response) => { if (!response["ok"]) { - throw "failed to load wasm binary file at '" + wasmBinaryFile + "'"; + throw "failed to load wasm binary file at '" + binaryFile + "'"; } return response["arrayBuffer"](); - }).catch(function() { - return getBinary(wasmBinaryFile); - }); + }).catch(() => getBinarySync(binaryFile)); } } - return Promise.resolve().then(function() { - return getBinary(wasmBinaryFile); + return Promise.resolve().then(() => getBinarySync(binaryFile)); + } + function instantiateArrayBuffer(binaryFile, imports, receiver) { + return getBinaryPromise(binaryFile).then((binary) => WebAssembly.instantiate(binary, imports)).then((instance) => instance).then(receiver, (reason) => { + err("failed to asynchronously prepare wasm: " + reason); + abort(reason); }); } + function instantiateAsync(binary, binaryFile, imports, callback) { + if (!binary && typeof WebAssembly.instantiateStreaming == "function" && !isDataURI(binaryFile) && typeof fetch == "function") { + return fetch(binaryFile, { credentials: "same-origin" }).then((response) => { + var result = WebAssembly.instantiateStreaming(response, imports); + return result.then(callback, function(reason) { + err("wasm streaming compile failed: " + reason); + err("falling back to ArrayBuffer instantiation"); + return instantiateArrayBuffer(binaryFile, imports, callback); + }); + }); + } + return instantiateArrayBuffer(binaryFile, imports, callback); + } function createWasm() { var info = { "a": wasmImports }; function receiveInstance(instance, module2) { - var exports3 = instance.exports; - Module["asm"] = exports3; - registerTLSInit(Module["asm"]["ka"]); - wasmTable = Module["asm"]["ia"]; - addOnInit(Module["asm"]["ha"]); + var exports2 = instance.exports; + exports2 = applySignatureConversions(exports2); + wasmExports = exports2; + registerTLSInit(wasmExports["ha"]); + wasmTable = wasmExports["fa"]; + addOnInit(wasmExports["ea"]); wasmModule = module2; - PThread.loadWasmModuleToAllWorkers(() => removeRunDependency()); + removeRunDependency(); + return exports2; } addRunDependency(); function receiveInstantiationResult(result) { receiveInstance(result["instance"], result["module"]); } - function instantiateArrayBuffer(receiver) { - return getBinaryPromise().then(function(binary) { - return WebAssembly.instantiate(binary, info); - }).then(function(instance) { - return instance; - }).then(receiver, function(reason) { - err("failed to asynchronously prepare wasm: " + reason); - abort(reason); - }); - } - function instantiateAsync() { - if (!wasmBinary && typeof WebAssembly.instantiateStreaming == "function" && !isDataURI(wasmBinaryFile) && typeof fetch == "function") { - return fetch(wasmBinaryFile, { credentials: "same-origin" }).then(function(response) { - var result = WebAssembly.instantiateStreaming(response, info); - return result.then(receiveInstantiationResult, function(reason) { - err("wasm streaming compile failed: " + reason); - err("falling back to ArrayBuffer instantiation"); - return instantiateArrayBuffer(receiveInstantiationResult); - }); - }); - } else { - return instantiateArrayBuffer(receiveInstantiationResult); - } - } if (Module["instantiateWasm"]) { try { - var exports2 = Module["instantiateWasm"](info, receiveInstance); - return exports2; + return Module["instantiateWasm"](info, receiveInstance); } catch (e) { err("Module.instantiateWasm callback failed with error: " + e); readyPromiseReject(e); } } - instantiateAsync().catch(readyPromiseReject); + instantiateAsync(wasmBinary, wasmBinaryFile, info, receiveInstantiationResult).catch(readyPromiseReject); return {}; } var tempDouble; var tempI64; function ExitStatus(status) { this.name = "ExitStatus"; - this.message = "Program terminated with exit(" + status + ")"; + this.message = `Program terminated with exit(${status})`; this.status = status; } + var terminateWorker = function(worker) { + worker.terminate(); + worker.onmessage = (e) => { + }; + }; function killThread(pthread_ptr) { var worker = PThread.pthreads[pthread_ptr]; delete PThread.pthreads[pthread_ptr]; - worker.terminate(); + terminateWorker(worker); __emscripten_thread_free_data(pthread_ptr); PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker), 1); worker.pthread_ptr = 0; @@ -9143,19 +29881,14 @@ var require_web_ifc_mt = __commonJS({ }, join: function() { var paths = Array.prototype.slice.call(arguments); return PATH.normalize(paths.join("/")); - }, join2: (l, r) => { - return PATH.normalize(l + "/" + r); - } }; - function getRandomDevice() { + }, join2: (l, r) => PATH.normalize(l + "/" + r) }; + var initRandomFill = () => { if (typeof crypto == "object" && typeof crypto["getRandomValues"] == "function") { - var randomBuffer = new Uint8Array(1); - return () => { - crypto.getRandomValues(randomBuffer); - return randomBuffer[0]; - }; + return (view) => (view.set(crypto.getRandomValues(new Uint8Array(view.byteLength))), view); } else - return () => abort("randomDevice"); - } + abort("initRandomDevice"); + }; + var randomFill = (view) => (randomFill = initRandomFill())(view); var PATH_FS = { resolve: function() { var resolvedPath = "", resolvedAbsolute = false; for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) { @@ -9205,6 +29938,100 @@ var require_web_ifc_mt = __commonJS({ outputParts = outputParts.concat(toParts.slice(samePartsLength)); return outputParts.join("/"); } }; + var UTF8Decoder = typeof TextDecoder != "undefined" ? new TextDecoder("utf8") : void 0; + var UTF8ArrayToString = (heapOrArray, idx, maxBytesToRead) => { + idx >>>= 0; + var endIdx = idx + maxBytesToRead; + var endPtr = idx; + while (heapOrArray[endPtr] && !(endPtr >= endIdx)) + ++endPtr; + if (endPtr - idx > 16 && heapOrArray.buffer && UTF8Decoder) { + return UTF8Decoder.decode(heapOrArray.buffer instanceof SharedArrayBuffer ? heapOrArray.slice(idx, endPtr) : heapOrArray.subarray(idx, endPtr)); + } + var str = ""; + while (idx < endPtr) { + var u0 = heapOrArray[idx++]; + if (!(u0 & 128)) { + str += String.fromCharCode(u0); + continue; + } + var u1 = heapOrArray[idx++] & 63; + if ((u0 & 224) == 192) { + str += String.fromCharCode((u0 & 31) << 6 | u1); + continue; + } + var u2 = heapOrArray[idx++] & 63; + if ((u0 & 240) == 224) { + u0 = (u0 & 15) << 12 | u1 << 6 | u2; + } else { + u0 = (u0 & 7) << 18 | u1 << 12 | u2 << 6 | heapOrArray[idx++] & 63; + } + if (u0 < 65536) { + str += String.fromCharCode(u0); + } else { + var ch = u0 - 65536; + str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023); + } + } + return str; + }; + var FS_stdin_getChar_buffer = []; + var lengthBytesUTF8 = (str) => { + var len = 0; + for (var i = 0; i < str.length; ++i) { + var c = str.charCodeAt(i); + if (c <= 127) { + len++; + } else if (c <= 2047) { + len += 2; + } else if (c >= 55296 && c <= 57343) { + len += 4; + ++i; + } else { + len += 3; + } + } + return len; + }; + var stringToUTF8Array = (str, heap, outIdx, maxBytesToWrite) => { + outIdx >>>= 0; + if (!(maxBytesToWrite > 0)) + return 0; + var startIdx = outIdx; + var endIdx = outIdx + maxBytesToWrite - 1; + for (var i = 0; i < str.length; ++i) { + var u = str.charCodeAt(i); + if (u >= 55296 && u <= 57343) { + var u1 = str.charCodeAt(++i); + u = 65536 + ((u & 1023) << 10) | u1 & 1023; + } + if (u <= 127) { + if (outIdx >= endIdx) + break; + heap[outIdx++ >>> 0] = u; + } else if (u <= 2047) { + if (outIdx + 1 >= endIdx) + break; + heap[outIdx++ >>> 0] = 192 | u >> 6; + heap[outIdx++ >>> 0] = 128 | u & 63; + } else if (u <= 65535) { + if (outIdx + 2 >= endIdx) + break; + heap[outIdx++ >>> 0] = 224 | u >> 12; + heap[outIdx++ >>> 0] = 128 | u >> 6 & 63; + heap[outIdx++ >>> 0] = 128 | u & 63; + } else { + if (outIdx + 3 >= endIdx) + break; + heap[outIdx++ >>> 0] = 240 | u >> 18; + heap[outIdx++ >>> 0] = 128 | u >> 12 & 63; + heap[outIdx++ >>> 0] = 128 | u >> 6 & 63; + heap[outIdx++ >>> 0] = 128 | u & 63; + } + } + heap[outIdx >>> 0] = 0; + return outIdx - startIdx; + }; function intArrayFromString(stringy, dontAddNull, length) { var len = length > 0 ? length : lengthBytesUTF8(stringy) + 1; var u8array = new Array(len); @@ -9213,6 +30040,27 @@ var require_web_ifc_mt = __commonJS({ u8array.length = numBytesWritten; return u8array; } + var FS_stdin_getChar = () => { + if (!FS_stdin_getChar_buffer.length) { + var result = null; + if (typeof window != "undefined" && typeof window.prompt == "function") { + result = window.prompt("Input: "); + if (result !== null) { + result += "\n"; + } + } else if (typeof readline == "function") { + result = readline(); + if (result !== null) { + result += "\n"; + } + } + if (!result) { + return null; + } + FS_stdin_getChar_buffer = intArrayFromString(result, true); + } + return FS_stdin_getChar_buffer.shift(); + }; var TTY = { ttys: [], init: function() { }, shutdown: function() { }, register: function(dev, ops) { @@ -9269,25 +30117,7 @@ var require_web_ifc_mt = __commonJS({ } return i; } }, default_tty_ops: { get_char: function(tty) { - if (!tty.input.length) { - var result = null; - if (typeof window != "undefined" && typeof window.prompt == "function") { - result = window.prompt("Input: "); - if (result !== null) { - result += "\n"; - } - } else if (typeof readline == "function") { - result = readline(); - if (result !== null) { - result += "\n"; - } - } - if (!result) { - return null; - } - tty.input = intArrayFromString(result, true); - } - return tty.input.shift(); + return FS_stdin_getChar(); }, put_char: function(tty, val) { if (val === null || val === 10) { out(UTF8ArrayToString(tty.output, 0)); @@ -9301,6 +30131,12 @@ var require_web_ifc_mt = __commonJS({ out(UTF8ArrayToString(tty.output, 0)); tty.output = []; } + }, ioctl_tcgets: function(tty) { + return { c_iflag: 25856, c_oflag: 5, c_cflag: 191, c_lflag: 35387, c_cc: [3, 28, 127, 21, 4, 0, 1, 0, 17, 19, 26, 0, 18, 15, 23, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] }; + }, ioctl_tcsets: function(tty, optional_actions, data) { + return 0; + }, ioctl_tiocgwinsz: function(tty) { + return [24, 80]; } }, default_tty1_ops: { put_char: function(tty, val) { if (val === null || val === 10) { err(UTF8ArrayToString(tty.output, 0)); @@ -9315,12 +30151,12 @@ var require_web_ifc_mt = __commonJS({ tty.output = []; } } } }; - function mmapAlloc(size) { + var mmapAlloc = (size) => { abort(); - } - var MEMFS = { ops_table: null, mount: function(mount) { + }; + var MEMFS = { ops_table: null, mount(mount) { return MEMFS.createNode(null, "/", 16384 | 511, 0); - }, createNode: function(parent, name, mode, dev) { + }, createNode(parent, name, mode, dev) { if (FS.isBlkdev(mode) || FS.isFIFO(mode)) { throw new FS.ErrnoError(63); } @@ -9350,14 +30186,13 @@ var require_web_ifc_mt = __commonJS({ parent.timestamp = node.timestamp; } return node; - }, getFileDataAsTypedArray: function(node) { + }, getFileDataAsTypedArray(node) { if (!node.contents) return new Uint8Array(0); if (node.contents.subarray) return node.contents.subarray(0, node.usedBytes); return new Uint8Array(node.contents); - }, expandFileStorage: function(node, newCapacity) { - newCapacity >>>= 0; + }, expandFileStorage(node, newCapacity) { var prevCapacity = node.contents ? node.contents.length : 0; if (prevCapacity >= newCapacity) return; @@ -9369,8 +30204,7 @@ var require_web_ifc_mt = __commonJS({ node.contents = new Uint8Array(newCapacity); if (node.usedBytes > 0) node.contents.set(oldContents.subarray(0, node.usedBytes), 0); - }, resizeFileStorage: function(node, newSize) { - newSize >>>= 0; + }, resizeFileStorage(node, newSize) { if (node.usedBytes == newSize) return; if (newSize == 0) { @@ -9384,7 +30218,7 @@ var require_web_ifc_mt = __commonJS({ } node.usedBytes = newSize; } - }, node_ops: { getattr: function(node) { + }, node_ops: { getattr(node) { var attr = {}; attr.dev = FS.isChrdev(node.mode) ? node.id : 1; attr.ino = node.id; @@ -9408,7 +30242,7 @@ var require_web_ifc_mt = __commonJS({ attr.blksize = 4096; attr.blocks = Math.ceil(attr.size / attr.blksize); return attr; - }, setattr: function(node, attr) { + }, setattr(node, attr) { if (attr.mode !== void 0) { node.mode = attr.mode; } @@ -9418,11 +30252,11 @@ var require_web_ifc_mt = __commonJS({ if (attr.size !== void 0) { MEMFS.resizeFileStorage(node, attr.size); } - }, lookup: function(parent, name) { + }, lookup(parent, name) { throw FS.genericErrors[44]; - }, mknod: function(parent, name, mode, dev) { + }, mknod(parent, name, mode, dev) { return MEMFS.createNode(parent, name, mode, dev); - }, rename: function(old_node, new_dir, new_name) { + }, rename(old_node, new_dir, new_name) { if (FS.isDir(old_node.mode)) { var new_node; try { @@ -9441,17 +30275,17 @@ var require_web_ifc_mt = __commonJS({ new_dir.contents[new_name] = old_node; new_dir.timestamp = old_node.parent.timestamp; old_node.parent = new_dir; - }, unlink: function(parent, name) { + }, unlink(parent, name) { delete parent.contents[name]; parent.timestamp = Date.now(); - }, rmdir: function(parent, name) { + }, rmdir(parent, name) { var node = FS.lookupNode(parent, name); for (var i in node.contents) { throw new FS.ErrnoError(55); } delete parent.contents[name]; parent.timestamp = Date.now(); - }, readdir: function(node) { + }, readdir(node) { var entries = [".", ".."]; for (var key in node.contents) { if (!node.contents.hasOwnProperty(key)) { @@ -9460,16 +30294,16 @@ var require_web_ifc_mt = __commonJS({ entries.push(key); } return entries; - }, symlink: function(parent, newname, oldpath) { + }, symlink(parent, newname, oldpath) { var node = MEMFS.createNode(parent, newname, 511 | 40960, 0); node.link = oldpath; return node; - }, readlink: function(node) { + }, readlink(node) { if (!FS.isLink(node.mode)) { throw new FS.ErrnoError(28); } return node.link; - } }, stream_ops: { read: function(stream, buffer, offset, length, position) { + } }, stream_ops: { read(stream, buffer, offset, length, position) { var contents = stream.node.contents; if (position >= stream.node.usedBytes) return 0; @@ -9481,7 +30315,7 @@ var require_web_ifc_mt = __commonJS({ buffer[offset + i] = contents[position + i]; } return size; - }, write: function(stream, buffer, offset, length, position, canOwn) { + }, write(stream, buffer, offset, length, position, canOwn) { if (buffer.buffer === GROWABLE_HEAP_I8().buffer) { canOwn = false; } @@ -9513,7 +30347,7 @@ var require_web_ifc_mt = __commonJS({ } node.usedBytes = Math.max(node.usedBytes, position + length); return length; - }, llseek: function(stream, offset, whence) { + }, llseek(stream, offset, whence) { var position = offset; if (whence === 1) { position += stream.position; @@ -9526,10 +30360,10 @@ var require_web_ifc_mt = __commonJS({ throw new FS.ErrnoError(28); } return position; - }, allocate: function(stream, offset, length) { + }, allocate(stream, offset, length) { MEMFS.expandFileStorage(stream.node, offset + length); stream.node.usedBytes = Math.max(stream.node.usedBytes, offset + length); - }, mmap: function(stream, length, position, prot, flags) { + }, mmap(stream, length, position, prot, flags) { if (!FS.isFile(stream.node.mode)) { throw new FS.ErrnoError(43); } @@ -9552,18 +30386,17 @@ var require_web_ifc_mt = __commonJS({ if (!ptr) { throw new FS.ErrnoError(48); } - ptr >>>= 0; GROWABLE_HEAP_I8().set(contents, ptr >>> 0); } return { ptr, allocated }; - }, msync: function(stream, buffer, offset, length, mmapFlags) { + }, msync(stream, buffer, offset, length, mmapFlags) { MEMFS.stream_ops.write(stream, buffer, 0, length, offset, false); return 0; } } }; - function asyncLoad(url, onload, onerror, noRunDep) { - var dep = !noRunDep ? getUniqueRunDependency("al " + url) : ""; + var asyncLoad = (url, onload, onerror, noRunDep) => { + var dep = !noRunDep ? getUniqueRunDependency(`al ${url}`) : ""; readAsync(url, (arrayBuffer) => { - assert(arrayBuffer, 'Loading data file "' + url + '" failed (no arrayBuffer).'); + assert(arrayBuffer, `Loading data file "${url}" failed (no arrayBuffer).`); onload(new Uint8Array(arrayBuffer)); if (dep) removeRunDependency(); @@ -9571,11 +30404,71 @@ var require_web_ifc_mt = __commonJS({ if (onerror) { onerror(); } else { - throw 'Loading data file "' + url + '" failed.'; + throw `Loading data file "${url}" failed.`; } }); if (dep) addRunDependency(); + }; + var preloadPlugins = Module["preloadPlugins"] || []; + function FS_handledByPreloadPlugin(byteArray, fullname, finish, onerror) { + if (typeof Browser != "undefined") + Browser.init(); + var handled = false; + preloadPlugins.forEach(function(plugin) { + if (handled) + return; + if (plugin["canHandle"](fullname)) { + plugin["handle"](byteArray, fullname, finish, onerror); + handled = true; + } + }); + return handled; + } + function FS_createPreloadedFile(parent, name, url, canRead, canWrite, onload, onerror, dontCreateFile, canOwn, preFinish) { + var fullname = name ? PATH_FS.resolve(PATH.join2(parent, name)) : parent; + function processData(byteArray) { + function finish(byteArray2) { + if (preFinish) + preFinish(); + if (!dontCreateFile) { + FS.createDataFile(parent, name, byteArray2, canRead, canWrite, canOwn); + } + if (onload) + onload(); + removeRunDependency(); + } + if (FS_handledByPreloadPlugin(byteArray, fullname, finish, () => { + if (onerror) + onerror(); + removeRunDependency(); + })) { + return; + } + finish(byteArray); + } + addRunDependency(); + if (typeof url == "string") { + asyncLoad(url, (byteArray) => processData(byteArray), onerror); + } else { + processData(url); + } + } + function FS_modeStringToFlags(str) { + var flagModes = { "r": 0, "r+": 2, "w": 512 | 64 | 1, "w+": 512 | 64 | 2, "a": 1024 | 64 | 1, "a+": 1024 | 64 | 2 }; + var flags = flagModes[str]; + if (typeof flags == "undefined") { + throw new Error(`Unknown file open mode: ${str}`); + } + return flags; + } + function FS_getMode(canRead, canWrite) { + var mode = 0; + if (canRead) + mode |= 292 | 73; + if (canWrite) + mode |= 146; + return mode; } var FS = { root: null, mounts: [], devices: {}, streams: [], nextInode: 1, nameTable: null, currentPath: "/", initialized: false, ignorePermissions: true, ErrnoError: null, genericErrors: {}, filesystems: null, syncFSRequests: 0, lookupPath: (path, opts = {}) => { path = PATH_FS.resolve(path); @@ -9622,9 +30515,9 @@ var require_web_ifc_mt = __commonJS({ var mount = node.mount.mountpoint; if (!path) return mount; - return mount[mount.length - 1] !== "/" ? mount + "/" + path : mount + path; + return mount[mount.length - 1] !== "/" ? `${mount}/${path}` : mount + path; } - path = path ? node.name + "/" + path : node.name; + path = path ? `${node.name}/${path}` : node.name; node = node.parent; } }, hashName: (parentid, name) => { @@ -9670,31 +30563,7 @@ var require_web_ifc_mt = __commonJS({ return node; }, destroyNode: (node) => { FS.hashRemoveNode(node); - }, isRoot: (node) => { - return node === node.parent; - }, isMountpoint: (node) => { - return !!node.mounted; - }, isFile: (mode) => { - return (mode & 61440) === 32768; - }, isDir: (mode) => { - return (mode & 61440) === 16384; - }, isLink: (mode) => { - return (mode & 61440) === 40960; - }, isChrdev: (mode) => { - return (mode & 61440) === 8192; - }, isBlkdev: (mode) => { - return (mode & 61440) === 24576; - }, isFIFO: (mode) => { - return (mode & 61440) === 4096; - }, isSocket: (mode) => { - return (mode & 49152) === 49152; - }, flagModes: { "r": 0, "r+": 2, "w": 577, "w+": 578, "a": 1089, "a+": 1090 }, modeStringToFlags: (str) => { - var flags = FS.flagModes[str]; - if (typeof flags == "undefined") { - throw new Error("Unknown file open mode: " + str); - } - return flags; - }, flagsToPermissionString: (flag) => { + }, isRoot: (node) => node === node.parent, isMountpoint: (node) => !!node.mounted, isFile: (mode) => (mode & 61440) === 32768, isDir: (mode) => (mode & 61440) === 16384, isLink: (mode) => (mode & 61440) === 40960, isChrdev: (mode) => (mode & 61440) === 8192, isBlkdev: (mode) => (mode & 61440) === 24576, isFIFO: (mode) => (mode & 61440) === 4096, isSocket: (mode) => (mode & 49152) === 49152, flagsToPermissionString: (flag) => { var perms = ["r", "w", "rw"][flag & 3]; if (flag & 512) { perms += "w"; @@ -9762,41 +30631,49 @@ var require_web_ifc_mt = __commonJS({ } } return FS.nodePermissions(node, FS.flagsToPermissionString(flags)); - }, MAX_OPEN_FDS: 4096, nextfd: (fd_start = 0, fd_end = FS.MAX_OPEN_FDS) => { - for (var fd = fd_start; fd <= fd_end; fd++) { + }, MAX_OPEN_FDS: 4096, nextfd: () => { + for (var fd = 0; fd <= FS.MAX_OPEN_FDS; fd++) { if (!FS.streams[fd]) { return fd; } } throw new FS.ErrnoError(33); - }, getStream: (fd) => FS.streams[fd], createStream: (stream, fd_start, fd_end) => { + }, getStreamChecked: (fd) => { + var stream = FS.getStream(fd); + if (!stream) { + throw new FS.ErrnoError(8); + } + return stream; + }, getStream: (fd) => FS.streams[fd], createStream: (stream, fd = -1) => { if (!FS.FSStream) { FS.FSStream = function() { this.shared = {}; }; FS.FSStream.prototype = {}; - Object.defineProperties(FS.FSStream.prototype, { object: { get: function() { + Object.defineProperties(FS.FSStream.prototype, { object: { get() { return this.node; - }, set: function(val) { + }, set(val) { this.node = val; - } }, isRead: { get: function() { + } }, isRead: { get() { return (this.flags & 2097155) !== 1; - } }, isWrite: { get: function() { + } }, isWrite: { get() { return (this.flags & 2097155) !== 0; - } }, isAppend: { get: function() { + } }, isAppend: { get() { return this.flags & 1024; - } }, flags: { get: function() { + } }, flags: { get() { return this.shared.flags; - }, set: function(val) { + }, set(val) { this.shared.flags = val; - } }, position: { get: function() { + } }, position: { get() { return this.shared.position; - }, set: function(val) { + }, set(val) { this.shared.position = val; } } }); } stream = Object.assign(new FS.FSStream(), stream); - var fd = FS.nextfd(fd_start, fd_end); + if (fd == -1) { + fd = FS.nextfd(); + } stream.fd = fd; FS.streams[fd] = stream; return stream; @@ -9828,7 +30705,7 @@ var require_web_ifc_mt = __commonJS({ } FS.syncFSRequests++; if (FS.syncFSRequests > 1) { - err("warning: " + FS.syncFSRequests + " FS.syncfs operations in flight at once, probably just doing extra work"); + 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; @@ -9905,9 +30782,7 @@ var require_web_ifc_mt = __commonJS({ node.mounted = null; var idx = node.mount.mounts.indexOf(mount); node.mount.mounts.splice(idx, 1); - }, lookup: (parent, name) => { - return parent.node_ops.lookup(parent, name); - }, mknod: (path, mode, dev) => { + }, lookup: (parent, name) => parent.node_ops.lookup(parent, name), mknod: (path, mode, dev) => { var lookup = FS.lookupPath(path, { parent: true }); var parent = lookup.node; var name = PATH.basename(path); @@ -10096,9 +30971,7 @@ var require_web_ifc_mt = __commonJS({ throw new FS.ErrnoError(63); } return node.node_ops.getattr(node); - }, lstat: (path) => { - return FS.stat(path, true); - }, chmod: (path, mode, dontFollow) => { + }, lstat: (path) => FS.stat(path, true), chmod: (path, mode, dontFollow) => { var node; if (typeof path == "string") { var lookup = FS.lookupPath(path, { follow: !dontFollow }); @@ -10113,10 +30986,7 @@ var require_web_ifc_mt = __commonJS({ }, lchmod: (path, mode) => { FS.chmod(path, mode, true); }, fchmod: (fd, mode) => { - var stream = FS.getStream(fd); - if (!stream) { - throw new FS.ErrnoError(8); - } + var stream = FS.getStreamChecked(fd); FS.chmod(stream.node, mode); }, chown: (path, uid, gid, dontFollow) => { var node; @@ -10133,10 +31003,7 @@ var require_web_ifc_mt = __commonJS({ }, lchown: (path, uid, gid) => { FS.chown(path, uid, gid, true); }, fchown: (fd, uid, gid) => { - var stream = FS.getStream(fd); - if (!stream) { - throw new FS.ErrnoError(8); - } + var stream = FS.getStreamChecked(fd); FS.chown(stream.node, uid, gid); }, truncate: (path, len) => { if (len < 0) { @@ -10164,10 +31031,7 @@ var require_web_ifc_mt = __commonJS({ } node.node_ops.setattr(node, { size: len, timestamp: Date.now() }); }, ftruncate: (fd, len) => { - var stream = FS.getStream(fd); - if (!stream) { - throw new FS.ErrnoError(8); - } + var stream = FS.getStreamChecked(fd); if ((stream.flags & 2097155) === 0) { throw new FS.ErrnoError(28); } @@ -10180,7 +31044,7 @@ var require_web_ifc_mt = __commonJS({ if (path === "") { throw new FS.ErrnoError(44); } - flags = typeof flags == "string" ? FS.modeStringToFlags(flags) : flags; + flags = typeof flags == "string" ? FS_modeStringToFlags(flags) : flags; mode = typeof mode == "undefined" ? 438 : mode; if (flags & 64) { mode = mode & 4095 | 32768; @@ -10256,9 +31120,7 @@ var require_web_ifc_mt = __commonJS({ FS.closeStream(stream.fd); } stream.fd = null; - }, isClosed: (stream) => { - return stream.fd === null; - }, llseek: (stream, offset, whence) => { + }, isClosed: (stream) => stream.fd === null, llseek: (stream, offset, whence) => { if (FS.isClosed(stream)) { throw new FS.ErrnoError(8); } @@ -10272,7 +31134,6 @@ var require_web_ifc_mt = __commonJS({ stream.ungotten = []; return stream.position; }, read: (stream, buffer, offset, length, position) => { - offset >>>= 0; if (length < 0 || position < 0) { throw new FS.ErrnoError(28); } @@ -10299,7 +31160,6 @@ var require_web_ifc_mt = __commonJS({ stream.position += bytesRead; return bytesRead; }, write: (stream, buffer, offset, length, position, canOwn) => { - offset >>>= 0; if (length < 0 || position < 0) { throw new FS.ErrnoError(28); } @@ -10357,7 +31217,6 @@ var require_web_ifc_mt = __commonJS({ } return stream.stream_ops.mmap(stream, length, position, prot, flags); }, msync: (stream, buffer, offset, length, mmapFlags) => { - offset >>>= 0; if (!stream.stream_ops.msync) { return 0; } @@ -10371,7 +31230,7 @@ var require_web_ifc_mt = __commonJS({ 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 + '"'); + throw new Error(`Invalid encoding type "${opts.encoding}"`); } var ret; var stream = FS.open(path, opts.flags); @@ -10424,9 +31283,15 @@ var require_web_ifc_mt = __commonJS({ 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); + var randomBuffer = new Uint8Array(1024), randomLeft = 0; + var randomByte = () => { + if (randomLeft === 0) { + randomLeft = randomFill(randomBuffer).byteLength; + } + return randomBuffer[--randomLeft]; + }; + FS.createDevice("/dev", "random", randomByte); + FS.createDevice("/dev", "urandom", randomByte); FS.mkdir("/dev/shm"); FS.mkdir("/dev/shm/tmp"); }, createSpecialDirectories: () => { @@ -10437,9 +31302,7 @@ var require_web_ifc_mt = __commonJS({ var node = FS.createNode(proc_self, "fd", 16384 | 511, 73); node.node_ops = { lookup: (parent, name) => { var fd = +name; - var stream = FS.getStream(fd); - if (!stream) - throw new FS.ErrnoError(8); + var stream = FS.getStreamChecked(fd); var ret = { parent: null, mount: { mountpoint: "fake" }, node_ops: { readlink: () => stream.path } }; ret.parent = ret; return ret; @@ -10469,6 +31332,7 @@ var require_web_ifc_mt = __commonJS({ if (FS.ErrnoError) return; FS.ErrnoError = function ErrnoError(errno, node) { + this.name = "ErrnoError"; this.node = node; this.setErrno = function(errno2) { this.errno = errno2; @@ -10506,13 +31370,6 @@ var require_web_ifc_mt = __commonJS({ } FS.close(stream); } - }, getMode: (canRead, canWrite) => { - var mode = 0; - if (canRead) - mode |= 292 | 73; - if (canWrite) - mode |= 146; - return mode; }, findObject: (path, dontResolveLastLink) => { var ret = FS.analyzePath(path, dontResolveLastLink); if (!ret.exists) { @@ -10559,7 +31416,7 @@ var require_web_ifc_mt = __commonJS({ return current; }, createFile: (parent, name, properties, canRead, canWrite) => { var path = PATH.join2(typeof parent == "string" ? parent : FS.getPath(parent), name); - var mode = FS.getMode(canRead, canWrite); + var mode = FS_getMode(canRead, canWrite); return FS.create(path, mode); }, createDataFile: (parent, name, data, canRead, canWrite, canOwn) => { var path = name; @@ -10567,7 +31424,7 @@ var require_web_ifc_mt = __commonJS({ parent = typeof parent == "string" ? parent : FS.getPath(parent); path = name ? PATH.join2(parent, name) : parent; } - var mode = FS.getMode(canRead, canWrite); + var mode = FS_getMode(canRead, canWrite); var node = FS.create(path, mode); if (data) { if (typeof data == "string") { @@ -10585,7 +31442,7 @@ var require_web_ifc_mt = __commonJS({ return node; }, createDevice: (parent, name, input, output) => { var path = PATH.join2(typeof parent == "string" ? parent : FS.getPath(parent), name); - var mode = FS.getMode(!!input, !!output); + var mode = FS_getMode(!!input, !!output); if (!FS.createDevice.major) FS.createDevice.major = 64; var dev = FS.makedev(FS.createDevice.major++, 0); @@ -10786,126 +31643,11 @@ var require_web_ifc_mt = __commonJS({ }; node.stream_ops = stream_ops; return node; - }, createPreloadedFile: (parent, name, url, canRead, canWrite, onload, onerror, dontCreateFile, canOwn, preFinish) => { - var fullname = name ? PATH_FS.resolve(PATH.join2(parent, name)) : parent; - function processData(byteArray) { - function finish(byteArray2) { - if (preFinish) - preFinish(); - if (!dontCreateFile) { - FS.createDataFile(parent, name, byteArray2, canRead, canWrite, canOwn); - } - if (onload) - onload(); - removeRunDependency(); - } - if (Browser.handledByPreloadPlugin(byteArray, fullname, finish, () => { - if (onerror) - onerror(); - removeRunDependency(); - })) { - return; - } - finish(byteArray); - } - addRunDependency(); - if (typeof url == "string") { - asyncLoad(url, (byteArray) => processData(byteArray), onerror); - } else { - processData(url); - } - }, indexedDB: () => { - return window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB; - }, DB_NAME: () => { - return "EM_FS_" + window.location.pathname; - }, DB_VERSION: 20, DB_STORE_NAME: "FILE_DATA", saveFilesToDB: (paths, onload = () => { - }, onerror = () => { - }) => { - var indexedDB = FS.indexedDB(); - try { - var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION); - } catch (e) { - return onerror(e); - } - openRequest.onupgradeneeded = () => { - out("creating db"); - var db = openRequest.result; - db.createObjectStore(FS.DB_STORE_NAME); - }; - 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((path) => { - var putRequest = files.put(FS.analyzePath(path).object.contents, path); - putRequest.onsuccess = () => { - ok++; - if (ok + fail == total) - finish(); - }; - putRequest.onerror = () => { - fail++; - if (ok + fail == total) - finish(); - }; - }); - transaction.onerror = onerror; - }; - openRequest.onerror = onerror; - }, loadFilesFromDB: (paths, onload = () => { - }, onerror = () => { - }) => { - 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 = () => { - 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((path) => { - var getRequest = files.get(path); - 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 = () => { - fail++; - if (ok + fail == total) - finish(); - }; - }); - transaction.onerror = onerror; - }; - openRequest.onerror = onerror; } }; + var UTF8ToString = (ptr, maxBytesToRead) => { + ptr >>>= 0; + return ptr ? UTF8ArrayToString(GROWABLE_HEAP_U8(), ptr, maxBytesToRead) : ""; + }; var SYSCALLS = { DEFAULT_POLLMASK: 5, calculateAt: function(dirfd, path, allowEmpty) { if (PATH.isAbs(path)) { return path; @@ -10934,25 +31676,24 @@ var require_web_ifc_mt = __commonJS({ throw e; } GROWABLE_HEAP_I32()[buf >>> 2] = stat.dev; - GROWABLE_HEAP_I32()[buf + 8 >>> 2] = stat.ino; - GROWABLE_HEAP_I32()[buf + 12 >>> 2] = stat.mode; - GROWABLE_HEAP_U32()[buf + 16 >>> 2] = stat.nlink; - GROWABLE_HEAP_I32()[buf + 20 >>> 2] = stat.uid; - GROWABLE_HEAP_I32()[buf + 24 >>> 2] = stat.gid; - GROWABLE_HEAP_I32()[buf + 28 >>> 2] = stat.rdev; - 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)], GROWABLE_HEAP_I32()[buf + 40 >>> 2] = tempI64[0], GROWABLE_HEAP_I32()[buf + 44 >>> 2] = tempI64[1]; - GROWABLE_HEAP_I32()[buf + 48 >>> 2] = 4096; - GROWABLE_HEAP_I32()[buf + 52 >>> 2] = stat.blocks; + GROWABLE_HEAP_I32()[buf + 4 >>> 2] = stat.mode; + GROWABLE_HEAP_U32()[buf + 8 >>> 2] = stat.nlink; + GROWABLE_HEAP_I32()[buf + 12 >>> 2] = stat.uid; + GROWABLE_HEAP_I32()[buf + 16 >>> 2] = stat.gid; + GROWABLE_HEAP_I32()[buf + 20 >>> 2] = stat.rdev; + tempI64 = [stat.size >>> 0, (tempDouble = stat.size, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? +Math.floor(tempDouble / 4294967296) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], GROWABLE_HEAP_I32()[buf + 24 >>> 2] = tempI64[0], GROWABLE_HEAP_I32()[buf + 28 >>> 2] = tempI64[1]; + GROWABLE_HEAP_I32()[buf + 32 >>> 2] = 4096; + GROWABLE_HEAP_I32()[buf + 36 >>> 2] = stat.blocks; var atime = stat.atime.getTime(); var mtime = stat.mtime.getTime(); var ctime = stat.ctime.getTime(); - tempI64 = [Math.floor(atime / 1e3) >>> 0, (tempDouble = Math.floor(atime / 1e3), +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], GROWABLE_HEAP_I32()[buf + 56 >>> 2] = tempI64[0], GROWABLE_HEAP_I32()[buf + 60 >>> 2] = tempI64[1]; - GROWABLE_HEAP_U32()[buf + 64 >>> 2] = atime % 1e3 * 1e3; - tempI64 = [Math.floor(mtime / 1e3) >>> 0, (tempDouble = Math.floor(mtime / 1e3), +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], GROWABLE_HEAP_I32()[buf + 72 >>> 2] = tempI64[0], GROWABLE_HEAP_I32()[buf + 76 >>> 2] = tempI64[1]; - GROWABLE_HEAP_U32()[buf + 80 >>> 2] = mtime % 1e3 * 1e3; - tempI64 = [Math.floor(ctime / 1e3) >>> 0, (tempDouble = Math.floor(ctime / 1e3), +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], GROWABLE_HEAP_I32()[buf + 88 >>> 2] = tempI64[0], GROWABLE_HEAP_I32()[buf + 92 >>> 2] = tempI64[1]; - GROWABLE_HEAP_U32()[buf + 96 >>> 2] = ctime % 1e3 * 1e3; - 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)], GROWABLE_HEAP_I32()[buf + 104 >>> 2] = tempI64[0], GROWABLE_HEAP_I32()[buf + 108 >>> 2] = tempI64[1]; + tempI64 = [Math.floor(atime / 1e3) >>> 0, (tempDouble = Math.floor(atime / 1e3), +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? +Math.floor(tempDouble / 4294967296) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], GROWABLE_HEAP_I32()[buf + 40 >>> 2] = tempI64[0], GROWABLE_HEAP_I32()[buf + 44 >>> 2] = tempI64[1]; + GROWABLE_HEAP_U32()[buf + 48 >>> 2] = atime % 1e3 * 1e3; + tempI64 = [Math.floor(mtime / 1e3) >>> 0, (tempDouble = Math.floor(mtime / 1e3), +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? +Math.floor(tempDouble / 4294967296) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], GROWABLE_HEAP_I32()[buf + 56 >>> 2] = tempI64[0], GROWABLE_HEAP_I32()[buf + 60 >>> 2] = tempI64[1]; + GROWABLE_HEAP_U32()[buf + 64 >>> 2] = mtime % 1e3 * 1e3; + tempI64 = [Math.floor(ctime / 1e3) >>> 0, (tempDouble = Math.floor(ctime / 1e3), +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? +Math.floor(tempDouble / 4294967296) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], GROWABLE_HEAP_I32()[buf + 72 >>> 2] = tempI64[0], GROWABLE_HEAP_I32()[buf + 76 >>> 2] = tempI64[1]; + GROWABLE_HEAP_U32()[buf + 80 >>> 2] = ctime % 1e3 * 1e3; + tempI64 = [stat.ino >>> 0, (tempDouble = stat.ino, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? +Math.floor(tempDouble / 4294967296) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], GROWABLE_HEAP_I32()[buf + 88 >>> 2] = tempI64[0], GROWABLE_HEAP_I32()[buf + 92 >>> 2] = tempI64[1]; return 0; }, doMsync: function(addr, stream, len, flags, offset) { if (!FS.isFile(stream.node.mode)) { @@ -10961,25 +31702,22 @@ var require_web_ifc_mt = __commonJS({ if (flags & 2) { return 0; } - addr >>>= 0; var buffer = GROWABLE_HEAP_U8().slice(addr, addr + len); FS.msync(stream, buffer, offset, len, flags); - }, varargs: void 0, get: function() { + }, varargs: void 0, get() { SYSCALLS.varargs += 4; var ret = GROWABLE_HEAP_I32()[SYSCALLS.varargs - 4 >>> 2]; return ret; - }, getStr: function(ptr) { + }, getStr(ptr) { var ret = UTF8ToString(ptr); return ret; }, getStreamFromFD: function(fd) { - var stream = FS.getStream(fd); - if (!stream) - throw new FS.ErrnoError(8); + var stream = FS.getStreamChecked(fd); return stream; } }; function _proc_exit(code) { if (ENVIRONMENT_IS_PTHREAD) - return _emscripten_proxy_to_main_thread_js(1, 1, code); + return proxyToMainThread(1, 1, code); EXITSTATUS = code; if (!keepRuntimeAlive()) { PThread.terminateAllThreads(); @@ -10989,23 +31727,21 @@ var require_web_ifc_mt = __commonJS({ } quit_(code, new ExitStatus(code)); } - function exitJS(status, implicit) { + var exitJS = (status, implicit) => { EXITSTATUS = status; - if (!implicit) { - if (ENVIRONMENT_IS_PTHREAD) { - exitOnMainThread(status); - throw "unwind"; - } + if (ENVIRONMENT_IS_PTHREAD) { + exitOnMainThread(status); + throw "unwind"; } _proc_exit(status); - } + }; var _exit = exitJS; - function handleException(e) { + var handleException = (e) => { if (e instanceof ExitStatus || e == "unwind") { return EXITSTATUS; } quit_(1, e); - } + }; var PThread = { unusedWorkers: [], runningWorkers: [], tlsInitFunctions: [], pthreads: {}, init: function() { if (ENVIRONMENT_IS_PTHREAD) { PThread.initWorker(); @@ -11017,18 +31753,24 @@ var require_web_ifc_mt = __commonJS({ while (pthreadPoolSize--) { PThread.allocateUnusedWorker(); } + addOnPreRun(() => { + addRunDependency(); + PThread.loadWasmModuleToAllWorkers(() => removeRunDependency()); + }); }, initWorker: function() { noExitRuntime = false; }, setExitStatus: function(status) { EXITSTATUS = status; - }, terminateAllThreads: function() { - for (var worker of Object.values(PThread.pthreads)) { - PThread.returnWorkerToPool(worker); + }, terminateAllThreads__deps: ["$terminateWorker"], terminateAllThreads: function() { + for (var worker of PThread.runningWorkers) { + terminateWorker(worker); } for (var worker of PThread.unusedWorkers) { - worker.terminate(); + terminateWorker(worker); } PThread.unusedWorkers = []; + PThread.runningWorkers = []; + PThread.pthreads = []; }, returnWorkerToPool: function(worker) { var pthread_ptr = worker.pthread_ptr; delete PThread.pthreads[pthread_ptr]; @@ -11043,8 +31785,6 @@ var require_web_ifc_mt = __commonJS({ worker.onmessage = (e) => { var d = e["data"]; var cmd = d["cmd"]; - if (worker.pthread_ptr) - PThread.currentProxiedOperationCallerThread = worker.pthread_ptr; if (d["targetThread"] && d["targetThread"] != _pthread_self()) { var targetWorker = PThread.pthreads[d.targetThread]; if (targetWorker) { @@ -11052,11 +31792,10 @@ var require_web_ifc_mt = __commonJS({ } else { err('Internal error! Worker sent a message "' + cmd + '" to target pthread ' + d["targetThread"] + ", but that thread no longer exists!"); } - PThread.currentProxiedOperationCallerThread = void 0; return; } - if (cmd === "processProxyingQueue") { - executeNotifiedProxyingQueue(d["queue"]); + if (cmd === "checkMailbox") { + checkMailbox(); } else if (cmd === "spawnThread") { spawnThread(d); } else if (cmd === "cleanupThread") { @@ -11068,10 +31807,6 @@ var require_web_ifc_mt = __commonJS({ } else if (cmd === "loaded") { worker.loaded = true; onFinishedLoading(worker); - } else if (cmd === "print") { - out("Thread " + d["threadId"] + ": " + d["text"]); - } else if (cmd === "printErr") { - err("Thread " + d["threadId"] + ": " + d["text"]); } else if (cmd === "alert") { alert("Thread " + d["threadId"] + ": " + d["text"]); } else if (d.target === "setimmediate") { @@ -11081,7 +31816,6 @@ var require_web_ifc_mt = __commonJS({ } else if (cmd) { err("worker sent an unknown command " + cmd); } - PThread.currentProxiedOperationCallerThread = void 0; }; worker.onerror = (e) => { var message = "worker sent an error!"; @@ -11115,31 +31849,27 @@ var require_web_ifc_mt = __commonJS({ return PThread.unusedWorkers.pop(); } }; Module["PThread"] = PThread; - function callRuntimeCallbacks(callbacks) { + var callRuntimeCallbacks = (callbacks) => { while (callbacks.length > 0) { callbacks.shift()(Module); } - } + }; function establishStackSpace() { var pthread_ptr = _pthread_self(); - var stackTop = GROWABLE_HEAP_I32()[pthread_ptr + 52 >>> 2]; + var stackHigh = GROWABLE_HEAP_I32()[pthread_ptr + 52 >>> 2]; var stackSize = GROWABLE_HEAP_I32()[pthread_ptr + 56 >>> 2]; - var stackMax = stackTop - stackSize; - _emscripten_stack_set_limits(stackTop, stackMax); - stackRestore(stackTop); + var stackLow = stackHigh - stackSize; + _emscripten_stack_set_limits(stackHigh, stackLow); + stackRestore(stackHigh); } Module["establishStackSpace"] = establishStackSpace; function exitOnMainThread(returnCode) { if (ENVIRONMENT_IS_PTHREAD) - return _emscripten_proxy_to_main_thread_js(2, 0, returnCode); - try { - _exit(returnCode); - } catch (e) { - handleException(e); - } + return proxyToMainThread(2, 0, returnCode); + _exit(returnCode); } var wasmTableMirror = []; - function getWasmTableEntry(funcPtr) { + var getWasmTableEntry = (funcPtr) => { var func = wasmTableMirror[funcPtr]; if (!func) { if (funcPtr >= wasmTableMirror.length) @@ -11147,14 +31877,17 @@ var require_web_ifc_mt = __commonJS({ wasmTableMirror[funcPtr] = func = wasmTable.get(funcPtr); } return func; - } + }; function invokeEntryPoint(ptr, arg) { var result = getWasmTableEntry(ptr)(arg); - if (keepRuntimeAlive()) { - PThread.setExitStatus(result); - } else { - __emscripten_thread_exit(result); + function finish(result2) { + if (keepRuntimeAlive()) { + PThread.setExitStatus(result2); + } else { + __emscripten_thread_exit(result2); + } } + finish(result); } Module["invokeEntryPoint"] = invokeEntryPoint; function registerTLSInit(tlsInitFunc) { @@ -11175,9 +31908,6 @@ var require_web_ifc_mt = __commonJS({ this.get_destructor = function() { return GROWABLE_HEAP_U32()[this.ptr + 8 >>> 2]; }; - this.set_refcount = function(refcount) { - GROWABLE_HEAP_I32()[this.ptr >>> 2] = refcount; - }; this.set_caught = function(caught) { caught = caught ? 1 : 0; GROWABLE_HEAP_I8()[this.ptr + 12 >>> 0] = caught; @@ -11196,16 +31926,6 @@ var require_web_ifc_mt = __commonJS({ this.set_adjusted_ptr(0); this.set_type(type); this.set_destructor(destructor); - this.set_refcount(0); - this.set_caught(false); - this.set_rethrown(false); - }; - this.add_ref = function() { - Atomics.add(GROWABLE_HEAP_I32(), this.ptr + 0 >> 2, 1); - }; - this.release_ref = function() { - var prev = Atomics.sub(GROWABLE_HEAP_I32(), this.ptr + 0 >> 2, 1); - return prev === 1; }; this.set_adjusted_ptr = function(adjustedPtr) { GROWABLE_HEAP_U32()[this.ptr + 16 >>> 2] = adjustedPtr; @@ -11224,30 +31944,31 @@ var require_web_ifc_mt = __commonJS({ return this.excPtr; }; } + var exceptionLast = 0; + function convertI32PairToI53Checked(lo, hi) { + return hi + 2097152 >>> 0 < 4194305 - !!lo ? (lo >>> 0) + hi * 4294967296 : NaN; + } function ___cxa_throw(ptr, type, destructor) { + ptr >>>= 0; + type >>>= 0; + destructor >>>= 0; var info = new ExceptionInfo(ptr); info.init(type, destructor); - throw ptr; + exceptionLast = ptr; + throw exceptionLast; } function ___emscripten_init_main_thread_js(tb) { - __emscripten_thread_init(tb, !ENVIRONMENT_IS_WORKER, 1, !ENVIRONMENT_IS_WEB); + tb >>>= 0; + __emscripten_thread_init(tb, !ENVIRONMENT_IS_WORKER, 1, !ENVIRONMENT_IS_WEB, 5242880, false); PThread.threadInitTLS(); } function ___emscripten_thread_cleanup(thread) { + thread >>>= 0; if (!ENVIRONMENT_IS_PTHREAD) cleanupThread(thread); else postMessage({ "cmd": "cleanupThread", "thread": thread }); } - function __dlinit(main_dso_handle) { - } - var dlopenMissingError = "To use dlopen, you need enable dynamic linking, see https://github.com/emscripten-core/emscripten/wiki/Linking"; - function __dlopen_js(handle) { - abort(dlopenMissingError); - } - function __dlsym_catchup_js(handle, symbolIndex) { - abort(dlopenMissingError); - } var tupleRegistrations = {}; function runDestructors(destructors) { while (destructors.length) { @@ -11262,43 +31983,6 @@ var require_web_ifc_mt = __commonJS({ var awaitingDependencies = {}; var registeredTypes = {}; var typeDependencies = {}; - var char_0 = 48; - var char_9 = 57; - function makeLegalFunctionName(name) { - if (name === void 0) { - return "_unknown"; - } - name = name.replace(/[^a-zA-Z0-9_]/g, "$"); - var f = name.charCodeAt(0); - if (f >= char_0 && f <= char_9) { - return "_" + name; - } - return name; - } - function createNamedFunction(name, body) { - name = makeLegalFunctionName(name); - return new Function("body", "return function " + name + '() {\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); @@ -11341,6 +32025,7 @@ var require_web_ifc_mt = __commonJS({ } } function __embind_finalize_value_array(rawTupleType) { + rawTupleType >>>= 0; var reg = tupleRegistrations[rawTupleType]; delete tupleRegistrations[rawTupleType]; var elements = reg.elements; @@ -11360,9 +32045,7 @@ var require_web_ifc_mt = __commonJS({ var setterArgumentType = elementTypes2[i + elementsLength]; var setter = elt.setter; var setterContext = elt.setterContext; - elt.read = (ptr) => { - return getterReturnType["fromWireType"](getter(getterContext, ptr)); - }; + elt.read = (ptr) => getterReturnType["fromWireType"](getter(getterContext, ptr)); elt.write = (ptr, o) => { var destructors = []; setter(setterContext, ptr, setterArgumentType["toWireType"](destructors, o)); @@ -11378,7 +32061,7 @@ var require_web_ifc_mt = __commonJS({ return rv; }, "toWireType": function(destructors, o) { if (elementsLength !== o.length) { - throw new TypeError("Incorrect number of tuple elements for " + reg.name + ": expected=" + elementsLength + ", actual=" + o.length); + 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) { @@ -11392,7 +32075,8 @@ var require_web_ifc_mt = __commonJS({ }); } var structRegistrations = {}; - function __embind_finalize_value_object(structType) { + var __embind_finalize_value_object = function(structType) { + structType >>>= 0; var reg = structRegistrations[structType]; delete structRegistrations[structType]; var rawConstructor = reg.rawConstructor; @@ -11409,9 +32093,7 @@ var require_web_ifc_mt = __commonJS({ var setterArgumentType = fieldTypes2[i + fieldRecords.length]; var setter = field.setter; var setterContext = field.setterContext; - fields[fieldName] = { read: (ptr) => { - return getterReturnType["fromWireType"](getter(getterContext, ptr)); - }, write: (ptr, o) => { + fields[fieldName] = { read: (ptr) => getterReturnType["fromWireType"](getter(getterContext, ptr)), write: (ptr, o) => { var destructors = []; setter(setterContext, ptr, setterArgumentType["toWireType"](destructors, o)); runDestructors(destructors); @@ -11427,7 +32109,7 @@ var require_web_ifc_mt = __commonJS({ }, "toWireType": function(destructors, o) { for (var fieldName in fields) { if (!(fieldName in o)) { - throw new TypeError('Missing field: "' + fieldName + '"'); + throw new TypeError(`Missing field: "${fieldName}"`); } } var ptr = rawConstructor(); @@ -11440,7 +32122,7 @@ var require_web_ifc_mt = __commonJS({ return ptr; }, "argPackAdvance": 8, "readValueFromPointer": simpleReadValueFromPointer, destructorFunction: rawDestructor }]; }); - } + }; function __embind_register_bigint(primitiveType, name, size, minRange, maxRange) { } function getShiftFromSize(size) { @@ -11454,7 +32136,7 @@ var require_web_ifc_mt = __commonJS({ case 8: return 3; default: - throw new TypeError("Unknown type size: " + size); + throw new TypeError(`Unknown type size: ${size}`); } } function embind_init_charCodes() { @@ -11477,19 +32159,16 @@ var require_web_ifc_mt = __commonJS({ function throwBindingError(message) { throw new BindingError(message); } - function registerType(rawType, registeredInstance, options = {}) { - if (!("argPackAdvance" in registeredInstance)) { - throw new TypeError("registerType registeredInstance requires argPackAdvance"); - } + function sharedRegisterType(rawType, registeredInstance, options = {}) { var name = registeredInstance.name; if (!rawType) { - throwBindingError('type "' + name + '" must have a positive integer typeid pointer'); + throwBindingError(`type "${name}" must have a positive integer typeid pointer`); } if (registeredTypes.hasOwnProperty(rawType)) { if (options.ignoreDuplicateRegistrations) { return; } else { - throwBindingError("Cannot register type '" + name + "' twice"); + throwBindingError(`Cannot register type '${name}' twice`); } } registeredTypes[rawType] = registeredInstance; @@ -11500,7 +32179,16 @@ var require_web_ifc_mt = __commonJS({ callbacks.forEach((cb) => cb()); } } + function registerType(rawType, registeredInstance, options = {}) { + if (!("argPackAdvance" in registeredInstance)) { + throw new TypeError("registerType registeredInstance requires argPackAdvance"); + } + return sharedRegisterType(rawType, registeredInstance, options); + } function __embind_register_bool(rawType, name, size, trueValue, falseValue) { + rawType >>>= 0; + name >>>= 0; + size >>>= 0; var shift = getShiftFromSize(size); name = readLatin1String(name); registerType(rawType, { name, "fromWireType": function(wt) { @@ -11688,7 +32376,7 @@ var require_web_ifc_mt = __commonJS({ return makeClassHandle(toType.registeredClass.instancePrototype, { ptrType: toType, ptr: dp }); } } - function attachFinalizer(handle) { + var attachFinalizer = function(handle) { if (typeof FinalizationRegistry === "undefined") { attachFinalizer = (handle2) => handle2; return handle; @@ -11707,7 +32395,7 @@ var require_web_ifc_mt = __commonJS({ }; detachFinalizer = (handle2) => finalizationRegistry.unregister(handle2); return attachFinalizer(handle); - } + }; function ClassHandle_clone() { if (!this.$$.ptr) { throwInstanceAlreadyDeleted(this); @@ -11762,12 +32450,31 @@ var require_web_ifc_mt = __commonJS({ } function ClassHandle() { } + var char_0 = 48; + var char_9 = 57; + function makeLegalFunctionName(name) { + if (name === void 0) { + return "_unknown"; + } + name = name.replace(/[^a-zA-Z0-9_]/g, "$"); + var f = name.charCodeAt(0); + if (f >= char_0 && f <= char_9) { + return `_${name}`; + } + return name; + } + function createNamedFunction(name, body) { + name = makeLegalFunctionName(name); + return { [name]: function() { + return body.apply(this, arguments); + } }[name]; + } function ensureOverloadTable(proto, methodName, humanName) { if (proto[methodName].overloadTable === void 0) { var prevFunc = proto[methodName]; proto[methodName] = function() { if (!proto[methodName].overloadTable.hasOwnProperty(arguments.length)) { - throwBindingError("Function '" + humanName + "' called with an invalid number of arguments (" + arguments.length + ") - expects one of (" + proto[methodName].overloadTable + ")!"); + 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); }; @@ -11778,11 +32485,11 @@ var require_web_ifc_mt = __commonJS({ function exposePublicSymbol(name, value, numArguments) { if (Module.hasOwnProperty(name)) { if (numArguments === void 0 || Module[name].overloadTable !== void 0 && Module[name].overloadTable[numArguments] !== void 0) { - throwBindingError("Cannot register public name '" + name + "' twice"); + throwBindingError(`Cannot register public name '${name}' twice`); } ensureOverloadTable(Module, name, name); if (Module.hasOwnProperty(numArguments)) { - throwBindingError("Cannot register multiple overloads of a function with the same number of arguments (" + numArguments + ")!"); + throwBindingError(`Cannot register multiple overloads of a function with the same number of arguments (${numArguments})!`); } Module[name].overloadTable[numArguments] = value; } else { @@ -11806,7 +32513,7 @@ var require_web_ifc_mt = __commonJS({ 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); + throwBindingError(`Expected null or instance of ${desiredClass.name}, got an instance of ${ptrClass.name}`); } ptr = ptrClass.upcast(ptr); ptrClass = ptrClass.baseClass; @@ -11816,15 +32523,15 @@ var require_web_ifc_mt = __commonJS({ function constNoSmartPtrRawPointerToWireType(destructors, handle) { if (handle === null) { if (this.isReference) { - throwBindingError("null is not a valid " + this.name); + throwBindingError(`null is not a valid ${this.name}`); } return 0; } if (!handle.$$) { - throwBindingError('Cannot pass "' + embindRepr(handle) + '" as a ' + this.name); + throwBindingError(`Cannot pass "${embindRepr(handle)}" as a ${this.name}`); } if (!handle.$$.ptr) { - throwBindingError("Cannot pass deleted object as a pointer of type " + this.name); + 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); @@ -11834,7 +32541,7 @@ var require_web_ifc_mt = __commonJS({ var ptr; if (handle === null) { if (this.isReference) { - throwBindingError("null is not a valid " + this.name); + throwBindingError(`null is not a valid ${this.name}`); } if (this.isSmartPointer) { ptr = this.rawConstructor(); @@ -11847,13 +32554,13 @@ var require_web_ifc_mt = __commonJS({ } } if (!handle.$$) { - throwBindingError('Cannot pass "' + embindRepr(handle) + '" as a ' + this.name); + throwBindingError(`Cannot pass "${embindRepr(handle)}" as a ${this.name}`); } if (!handle.$$.ptr) { - throwBindingError("Cannot pass deleted object as a pointer of type " + this.name); + 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); + 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); @@ -11866,7 +32573,7 @@ var require_web_ifc_mt = __commonJS({ 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); + throwBindingError(`Cannot convert argument of type ${handle.$$.smartPtrType ? handle.$$.smartPtrType.name : handle.$$.ptrType.name} to parameter type ${this.name}`); } break; case 1: @@ -11894,18 +32601,18 @@ var require_web_ifc_mt = __commonJS({ function nonConstNoSmartPtrRawPointerToWireType(destructors, handle) { if (handle === null) { if (this.isReference) { - throwBindingError("null is not a valid " + this.name); + throwBindingError(`null is not a valid ${this.name}`); } return 0; } if (!handle.$$) { - throwBindingError('Cannot pass "' + embindRepr(handle) + '" as a ' + this.name); + throwBindingError(`Cannot pass "${embindRepr(handle)}" as a ${this.name}`); } if (!handle.$$.ptr) { - throwBindingError("Cannot pass deleted object as a pointer of type " + this.name); + 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); + 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); @@ -11970,25 +32677,25 @@ var require_web_ifc_mt = __commonJS({ Module[name].argCount = numArguments; } } - function dynCallLegacy(sig, ptr, args) { + var dynCallLegacy = (sig, ptr, args) => { var f = Module["dynCall_" + sig]; return args && args.length ? f.apply(null, [ptr].concat(args)) : f.call(null, ptr); - } - function dynCall(sig, ptr, args) { + }; + var dynCall = (sig, ptr, args) => { if (sig.includes("j")) { return dynCallLegacy(sig, ptr, args); } var rtn = getWasmTableEntry(ptr).apply(null, args); return rtn; - } - function getDynCaller(sig, ptr) { + }; + var getDynCaller = (sig, ptr) => { var argCache = []; return function() { argCache.length = 0; Object.assign(argCache, arguments); return dynCall(sig, ptr, argCache); }; - } + }; function embind__requireFunction(signature, rawFunction) { signature = readLatin1String(signature); function makeDynCaller() { @@ -11999,10 +32706,30 @@ var require_web_ifc_mt = __commonJS({ } var fp = makeDynCaller(); if (typeof fp != "function") { - throwBindingError("unknown function pointer with signature " + signature + ": " + rawFunction); + throwBindingError(`unknown function pointer with signature ${signature}: ${rawFunction}`); } return fp; } + function extendError(baseErrorType, errorName) { + var errorClass = createNamedFunction(errorName, function(message) { + this.name = errorName; + this.message = message; + var stack = new Error(message).stack; + if (stack !== void 0) { + this.stack = this.toString() + "\n" + stack.replace(/^Error(:[^\n]*)?\n/, ""); + } + }); + errorClass.prototype = Object.create(baseErrorType.prototype); + errorClass.prototype.constructor = errorClass; + errorClass.prototype.toString = function() { + if (this.message === void 0) { + return this.name; + } else { + return `${this.name}: ${this.message}`; + } + }; + return errorClass; + } var UnboundTypeError = void 0; function getTypeName(type) { var ptr = ___getTypeName(type); @@ -12028,9 +32755,22 @@ var require_web_ifc_mt = __commonJS({ seen[type] = true; } types.forEach(visit); - throw new UnboundTypeError(message + ": " + unboundTypes.map(getTypeName).join([", "])); + throw new UnboundTypeError(`${message}: ` + unboundTypes.map(getTypeName).join([", "])); } function __embind_register_class(rawType, rawPointerType, rawConstPointerType, baseClassRawType, getActualTypeSignature, getActualType, upcastSignature, upcast, downcastSignature, downcast, name, destructorSignature, rawDestructor) { + rawType >>>= 0; + rawPointerType >>>= 0; + rawConstPointerType >>>= 0; + baseClassRawType >>>= 0; + getActualTypeSignature >>>= 0; + getActualType >>>= 0; + upcastSignature >>>= 0; + upcast >>>= 0; + downcastSignature >>>= 0; + downcast >>>= 0; + name >>>= 0; + destructorSignature >>>= 0; + rawDestructor >>>= 0; name = readLatin1String(name); getActualType = embind__requireFunction(getActualTypeSignature, getActualType); if (upcast) { @@ -12042,7 +32782,7 @@ var require_web_ifc_mt = __commonJS({ rawDestructor = embind__requireFunction(destructorSignature, rawDestructor); var legalFunctionName = makeLegalFunctionName(name); exposePublicSymbol(legalFunctionName, function() { - throwUnboundTypeError("Cannot construct " + name + " due to unbound types", [baseClassRawType]); + throwUnboundTypeError(`Cannot construct ${name} due to unbound types`, [baseClassRawType]); }); whenDependentTypesAreResolved([rawType, rawPointerType, rawConstPointerType], baseClassRawType ? [baseClassRawType] : [], function(base) { base = base[0]; @@ -12063,13 +32803,19 @@ var require_web_ifc_mt = __commonJS({ } var body = registeredClass.constructor_body[arguments.length]; if (body === void 0) { - throw new BindingError("Tried to invoke ctor of " + name + " with invalid number of parameters (" + arguments.length + ") - expected (" + Object.keys(registeredClass.constructor_body).toString() + ") parameters instead!"); + throw new BindingError(`Tried to invoke ctor of ${name} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(registeredClass.constructor_body).toString()}) parameters instead!`); } return body.apply(this, arguments); }); var instancePrototype = Object.create(basePrototype, { constructor: { value: constructor } }); constructor.prototype = instancePrototype; var registeredClass = new RegisteredClass(name, constructor, instancePrototype, rawDestructor, baseClass, getActualType, upcast, downcast); + if (registeredClass.baseClass) { + if (registeredClass.baseClass.__derivedClasses === void 0) { + registeredClass.baseClass.__derivedClasses = []; + } + registeredClass.baseClass.__derivedClasses.push(registeredClass); + } var referenceConverter = new RegisteredPointer(name, registeredClass, true, false, false); var pointerConverter = new RegisteredPointer(name + "*", registeredClass, false, false, false); var constPointerConverter = new RegisteredPointer(name + " const*", registeredClass, false, true, false); @@ -12085,9 +32831,9 @@ var require_web_ifc_mt = __commonJS({ } return array; } - function new_(constructor, argumentList) { + function newFunc(constructor, argumentList) { if (!(constructor instanceof Function)) { - throw new TypeError("new_ called with constructor type " + typeof constructor + " which is not a function"); + throw new TypeError(`new_ called with constructor type ${typeof constructor} which is not a function`); } var dummy = createNamedFunction(constructor.name || "unknownFunctionName", function() { }); @@ -12096,7 +32842,7 @@ var require_web_ifc_mt = __commonJS({ var r = constructor.apply(obj, argumentList); return r instanceof Object ? r : obj; } - function craftInvokerFunction(humanName, argTypes, classType, cppInvokerFunc, cppTargetFunc) { + function craftInvokerFunction(humanName, argTypes, classType, cppInvokerFunc, cppTargetFunc, isAsync) { var argCount = argTypes.length; if (argCount < 2) { throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!"); @@ -12116,7 +32862,11 @@ var require_web_ifc_mt = __commonJS({ 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"; + var invokerFnBody = ` + return function ${makeLegalFunctionName(humanName)}(${argsList}) { + if (arguments.length !== ${argCount - 2}) { + throwBindingError('function ${humanName} called with ${arguments.length} arguments, expected ${argCount - 2} args!'); + }`; if (needsDestructorStack) { invokerFnBody += "var destructors = [];\n"; } @@ -12134,7 +32884,7 @@ var require_web_ifc_mt = __commonJS({ if (isClassMethodFunc) { argsListWired = "thisWired" + (argsListWired.length > 0 ? ", " : "") + argsListWired; } - invokerFnBody += (returns ? "var rv = " : "") + "invoker(fn" + (argsListWired.length > 0 ? ", " : "") + argsListWired + ");\n"; + invokerFnBody += (returns || isAsync ? "var rv = " : "") + "invoker(fn" + (argsListWired.length > 0 ? ", " : "") + argsListWired + ");\n"; if (needsDestructorStack) { invokerFnBody += "runDestructors(destructors);\n"; } else { @@ -12152,24 +32902,27 @@ var require_web_ifc_mt = __commonJS({ } invokerFnBody += "}\n"; args1.push(invokerFnBody); - var invokerFunction = new_(Function, args1).apply(null, args2); - return invokerFunction; + return newFunc(Function, args1).apply(null, args2); } function __embind_register_class_constructor(rawClassType, argCount, rawArgTypesAddr, invokerSignature, invoker, rawConstructor) { - assert(argCount > 0); + rawClassType >>>= 0; + rawArgTypesAddr >>>= 0; + invokerSignature >>>= 0; + invoker >>>= 0; + rawConstructor >>>= 0; var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr); invoker = embind__requireFunction(invokerSignature, invoker); whenDependentTypesAreResolved([], [rawClassType], function(classType) { classType = classType[0]; - var humanName = "constructor " + classType.name; + 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!"); + throw new BindingError(`Cannot register multiple constructors with identical number of parameters (${argCount - 1}) for class '${classType.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`); } classType.registeredClass.constructor_body[argCount - 1] = () => { - throwUnboundTypeError("Cannot construct " + classType.name + " due to unbound types", rawArgTypes); + throwUnboundTypeError(`Cannot construct ${classType.name} due to unbound types`, rawArgTypes); }; whenDependentTypesAreResolved([], rawArgTypes, function(argTypes) { argTypes.splice(1, 0, null); @@ -12179,13 +32932,19 @@ var require_web_ifc_mt = __commonJS({ return []; }); } - function __embind_register_class_function(rawClassType, methodName, argCount, rawArgTypesAddr, invokerSignature, rawInvoker, context, isPureVirtual) { + function __embind_register_class_function(rawClassType, methodName, argCount, rawArgTypesAddr, invokerSignature, rawInvoker, context, isPureVirtual, isAsync) { + rawClassType >>>= 0; + methodName >>>= 0; + rawArgTypesAddr >>>= 0; + invokerSignature >>>= 0; + rawInvoker >>>= 0; + context >>>= 0; var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr); methodName = readLatin1String(methodName); rawInvoker = embind__requireFunction(invokerSignature, rawInvoker); whenDependentTypesAreResolved([], [rawClassType], function(classType) { classType = classType[0]; - var humanName = classType.name + "." + methodName; + var humanName = `${classType.name}.${methodName}`; if (methodName.startsWith("@@")) { methodName = Symbol[methodName.substring(2)]; } @@ -12193,7 +32952,7 @@ var require_web_ifc_mt = __commonJS({ classType.registeredClass.pureVirtualFunctions.push(methodName); } function unboundTypesHandler() { - throwUnboundTypeError("Cannot call " + humanName + " due to unbound types", rawArgTypes); + throwUnboundTypeError(`Cannot call ${humanName} due to unbound types`, rawArgTypes); } var proto = classType.registeredClass.instancePrototype; var method = proto[methodName]; @@ -12206,7 +32965,7 @@ var require_web_ifc_mt = __commonJS({ proto[methodName].overloadTable[argCount - 2] = unboundTypesHandler; } whenDependentTypesAreResolved([], rawArgTypes, function(argTypes) { - var memberFunction = craftInvokerFunction(humanName, argTypes, classType, rawInvoker, context); + var memberFunction = craftInvokerFunction(humanName, argTypes, classType, rawInvoker, context, isAsync); if (proto[methodName].overloadTable === void 0) { memberFunction.argCount = argCount - 2; proto[methodName] = memberFunction; @@ -12218,40 +32977,50 @@ var require_web_ifc_mt = __commonJS({ return []; }); } - var emval_free_list = []; - var emval_handle_array = [{}, { value: void 0 }, { value: null }, { value: true }, { value: false }]; + function handleAllocatorInit() { + Object.assign(HandleAllocator.prototype, { get(id) { + return this.allocated[id]; + }, has(id) { + return this.allocated[id] !== void 0; + }, allocate(handle) { + var id = this.freelist.pop() || this.allocated.length; + this.allocated[id] = handle; + return id; + }, free(id) { + this.allocated[id] = void 0; + this.freelist.push(id); + } }); + } + function HandleAllocator() { + this.allocated = [void 0]; + this.freelist = []; + } + var emval_handles = new HandleAllocator(); function __emval_decref(handle) { - if (handle > 4 && --emval_handle_array[handle].refcount === 0) { - emval_handle_array[handle] = void 0; - emval_free_list.push(handle); + handle >>>= 0; + if (handle >= emval_handles.reserved && --emval_handles.get(handle).refcount === 0) { + emval_handles.free(handle); } } function count_emval_handles() { var count = 0; - for (var i = 5; i < emval_handle_array.length; ++i) { - if (emval_handle_array[i] !== void 0) { + for (var i = emval_handles.reserved; i < emval_handles.allocated.length; ++i) { + if (emval_handles.allocated[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() { + emval_handles.allocated.push({ value: void 0 }, { value: null }, { value: true }, { value: false }); + emval_handles.reserved = emval_handles.allocated.length; Module["count_emval_handles"] = count_emval_handles; - Module["get_first_emval"] = get_first_emval; } var Emval = { toValue: (handle) => { if (!handle) { throwBindingError("Cannot use deleted val. handle = " + handle); } - return emval_handle_array[handle].value; + return emval_handles.get(handle).value; }, toHandle: (value) => { switch (value) { case void 0: @@ -12263,13 +33032,13 @@ var require_web_ifc_mt = __commonJS({ 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 }; - return handle; + return emval_handles.allocate({ refcount: 1, value }); } } } }; function __embind_register_emval(rawType, name) { + rawType >>>= 0; + name >>>= 0; name = readLatin1String(name); registerType(rawType, { name, "fromWireType": function(handle) { var rv = Emval.toValue(handle); @@ -12301,6 +33070,9 @@ var require_web_ifc_mt = __commonJS({ } } function __embind_register_enum(rawType, name, size, isSigned) { + rawType >>>= 0; + name >>>= 0; + size >>>= 0; var shift = getShiftFromSize(size); name = readLatin1String(name); function ctor() { @@ -12321,10 +33093,13 @@ var require_web_ifc_mt = __commonJS({ return impl; } function __embind_register_enum_value(rawEnumType, name, enumValue) { + rawEnumType >>>= 0; + name >>>= 0; + enumValue >>>= 0; var enumType = requireRegisteredType(rawEnumType, "enum"); name = readLatin1String(name); var Enum = enumType.constructor; - var Value = Object.create(enumType.constructor.prototype, { value: { value: enumValue }, constructor: { value: createNamedFunction(enumType.name + "_" + name, function() { + var Value = Object.create(enumType.constructor.prototype, { value: { value: enumValue }, constructor: { value: createNamedFunction(`${enumType.name}_${name}`, function() { }) } }); Enum.values[enumValue] = Value; Enum[name] = Value; @@ -12355,6 +33130,9 @@ var require_web_ifc_mt = __commonJS({ } } function __embind_register_float(rawType, name, size) { + rawType >>>= 0; + name >>>= 0; + size >>>= 0; var shift = getShiftFromSize(size); name = readLatin1String(name); registerType(rawType, { name, "fromWireType": function(value) { @@ -12363,16 +33141,21 @@ var require_web_ifc_mt = __commonJS({ return value; }, "argPackAdvance": 8, "readValueFromPointer": floatReadValueFromPointer(name, shift), destructorFunction: null }); } - function __embind_register_function(name, argCount, rawArgTypesAddr, signature, rawInvoker, fn) { + function __embind_register_function(name, argCount, rawArgTypesAddr, signature, rawInvoker, fn, isAsync) { + name >>>= 0; + rawArgTypesAddr >>>= 0; + signature >>>= 0; + rawInvoker >>>= 0; + fn >>>= 0; var argTypes = heap32VectorToArray(argCount, rawArgTypesAddr); name = readLatin1String(name); rawInvoker = embind__requireFunction(signature, rawInvoker); exposePublicSymbol(name, function() { - throwUnboundTypeError("Cannot call " + name + " due to unbound types", argTypes); + throwUnboundTypeError(`Cannot call ${name} due to unbound types`, argTypes); }, argCount - 1); whenDependentTypesAreResolved([], argTypes, function(argTypes2) { var invokerArgsArray = [argTypes2[0], null].concat(argTypes2.slice(1)); - replacePublicSymbol(name, craftInvokerFunction(name, invokerArgsArray, null, rawInvoker, fn), argCount - 1); + replacePublicSymbol(name, craftInvokerFunction(name, invokerArgsArray, null, rawInvoker, fn, isAsync), argCount - 1); return []; }); } @@ -12401,6 +33184,9 @@ var require_web_ifc_mt = __commonJS({ } } function __embind_register_integer(primitiveType, name, size, minRange, maxRange) { + primitiveType >>>= 0; + name >>>= 0; + size >>>= 0; name = readLatin1String(name); var shift = getShiftFromSize(size); var fromWireType = (value) => value; @@ -12426,6 +33212,8 @@ var require_web_ifc_mt = __commonJS({ registerType(primitiveType, { name, "fromWireType": fromWireType, "toWireType": toWireType, "argPackAdvance": 8, "readValueFromPointer": integerReadValueFromPointer(name, shift, minRange !== 0), destructorFunction: null }); } function __embind_register_memory_view(rawType, dataTypeIndex, name) { + rawType >>>= 0; + name >>>= 0; var typeMapping = [Int8Array, Uint8Array, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array]; var TA = typeMapping[dataTypeIndex]; function decodeMemoryView(handle) { @@ -12438,7 +33226,10 @@ var require_web_ifc_mt = __commonJS({ name = readLatin1String(name); registerType(rawType, { name, "fromWireType": decodeMemoryView, "argPackAdvance": 8, "readValueFromPointer": decodeMemoryView }, { ignoreDuplicateRegistrations: true }); } + var stringToUTF8 = (str, outPtr, maxBytesToWrite) => stringToUTF8Array(str, GROWABLE_HEAP_U8(), outPtr, maxBytesToWrite); function __embind_register_std_string(rawType, name) { + rawType >>>= 0; + name >>>= 0; name = readLatin1String(name); var stdStringIsUTF8 = name === "std::string"; registerType(rawType, { name, "fromWireType": function(value) { @@ -12486,7 +33277,6 @@ var require_web_ifc_mt = __commonJS({ } var base = _malloc(4 + length + 1); var ptr = base + 4; - ptr >>>= 0; GROWABLE_HEAP_U32()[base >>> 2] = length; if (stdStringIsUTF8 && valueIsOfTypeString) { stringToUTF8(value, ptr, length + 1); @@ -12515,7 +33305,7 @@ var require_web_ifc_mt = __commonJS({ } }); } var UTF16Decoder = typeof TextDecoder != "undefined" ? new TextDecoder("utf-16le") : void 0; - function UTF16ToString(ptr, maxBytesToRead) { + var UTF16ToString = (ptr, maxBytesToRead) => { var endPtr = ptr; var idx = endPtr >> 1; var maxIdx = idx + maxBytesToRead / 2; @@ -12532,8 +33322,8 @@ var require_web_ifc_mt = __commonJS({ str += String.fromCharCode(codeUnit); } return str; - } - function stringToUTF16(str, outPtr, maxBytesToWrite) { + }; + var stringToUTF16 = (str, outPtr, maxBytesToWrite) => { if (maxBytesToWrite === void 0) { maxBytesToWrite = 2147483647; } @@ -12549,11 +33339,9 @@ var require_web_ifc_mt = __commonJS({ } GROWABLE_HEAP_I16()[outPtr >>> 1] = 0; return outPtr - startPtr; - } - function lengthBytesUTF16(str) { - return str.length * 2; - } - function UTF32ToString(ptr, maxBytesToRead) { + }; + var lengthBytesUTF16 = (str) => str.length * 2; + var UTF32ToString = (ptr, maxBytesToRead) => { var i = 0; var str = ""; while (!(i >= maxBytesToRead / 4)) { @@ -12569,8 +33357,8 @@ var require_web_ifc_mt = __commonJS({ } } return str; - } - function stringToUTF32(str, outPtr, maxBytesToWrite) { + }; + var stringToUTF32 = (str, outPtr, maxBytesToWrite) => { outPtr >>>= 0; if (maxBytesToWrite === void 0) { maxBytesToWrite = 2147483647; @@ -12592,8 +33380,8 @@ var require_web_ifc_mt = __commonJS({ } GROWABLE_HEAP_I32()[outPtr >>> 2] = 0; return outPtr - startPtr; - } - function lengthBytesUTF32(str) { + }; + var lengthBytesUTF32 = (str) => { var len = 0; for (var i = 0; i < str.length; ++i) { var codeUnit = str.charCodeAt(i); @@ -12602,8 +33390,11 @@ var require_web_ifc_mt = __commonJS({ len += 4; } return len; - } - function __embind_register_std_wstring(rawType, charSize, name) { + }; + var __embind_register_std_wstring = function(rawType, charSize, name) { + rawType >>>= 0; + charSize >>>= 0; + name >>>= 0; name = readLatin1String(name); var decodeString, encodeString, getHeap, lengthBytesUTF, shift; if (charSize === 2) { @@ -12642,11 +33433,10 @@ var require_web_ifc_mt = __commonJS({ return str; }, "toWireType": function(destructors, value) { if (!(typeof value == "string")) { - throwBindingError("Cannot pass non-string to C++ string type " + name); + throwBindingError(`Cannot pass non-string to C++ string type ${name}`); } var length = lengthBytesUTF(value); var ptr = _malloc(4 + length + charSize); - ptr >>>= 0; GROWABLE_HEAP_U32()[ptr >>> 2] = length >> shift; encodeString(value, ptr + 4, length + charSize); if (destructors !== null) { @@ -12656,20 +33446,53 @@ var require_web_ifc_mt = __commonJS({ }, "argPackAdvance": 8, "readValueFromPointer": simpleReadValueFromPointer, destructorFunction: function(ptr) { _free(ptr); } }); - } + }; function __embind_register_value_array(rawType, name, constructorSignature, rawConstructor, destructorSignature, rawDestructor) { + rawType >>>= 0; + name >>>= 0; + constructorSignature >>>= 0; + rawConstructor >>>= 0; + destructorSignature >>>= 0; + rawDestructor >>>= 0; tupleRegistrations[rawType] = { name: readLatin1String(name), rawConstructor: embind__requireFunction(constructorSignature, rawConstructor), rawDestructor: embind__requireFunction(destructorSignature, rawDestructor), elements: [] }; } function __embind_register_value_array_element(rawTupleType, getterReturnType, getterSignature, getter, getterContext, setterArgumentType, setterSignature, setter, setterContext) { + rawTupleType >>>= 0; + getterReturnType >>>= 0; + getterSignature >>>= 0; + getter >>>= 0; + getterContext >>>= 0; + setterArgumentType >>>= 0; + setterSignature >>>= 0; + setter >>>= 0; + setterContext >>>= 0; tupleRegistrations[rawTupleType].elements.push({ getterReturnType, getter: embind__requireFunction(getterSignature, getter), getterContext, setterArgumentType, setter: embind__requireFunction(setterSignature, setter), setterContext }); } function __embind_register_value_object(rawType, name, constructorSignature, rawConstructor, destructorSignature, rawDestructor) { + rawType >>>= 0; + name >>>= 0; + constructorSignature >>>= 0; + rawConstructor >>>= 0; + destructorSignature >>>= 0; + rawDestructor >>>= 0; structRegistrations[rawType] = { name: readLatin1String(name), rawConstructor: embind__requireFunction(constructorSignature, rawConstructor), rawDestructor: embind__requireFunction(destructorSignature, rawDestructor), fields: [] }; } function __embind_register_value_object_field(structType, fieldName, getterReturnType, getterSignature, getter, getterContext, setterArgumentType, setterSignature, setter, setterContext) { + structType >>>= 0; + fieldName >>>= 0; + getterReturnType >>>= 0; + getterSignature >>>= 0; + getter >>>= 0; + getterContext >>>= 0; + setterArgumentType >>>= 0; + setterSignature >>>= 0; + setter >>>= 0; + setterContext >>>= 0; structRegistrations[structType].fields.push({ fieldName: readLatin1String(fieldName), getterReturnType, getter: embind__requireFunction(getterSignature, getter), getterContext, setterArgumentType, setter: embind__requireFunction(setterSignature, setter), setterContext }); } function __embind_register_void(rawType, name) { + rawType >>>= 0; + name >>>= 0; name = readLatin1String(name); registerType(rawType, { isVoid: true, name, "argPackAdvance": 0, "fromWireType": function() { return void 0; @@ -12677,35 +33500,71 @@ var require_web_ifc_mt = __commonJS({ return void 0; } }); } - function __emscripten_err(str) { - err(UTF8ToString(str)); - } - function executeNotifiedProxyingQueue(queue) { - Atomics.store(GROWABLE_HEAP_I32(), queue >> 2, 1); - if (_pthread_self()) { - __emscripten_proxy_execute_task_queue(queue); + var maybeExit = () => { + if (!keepRuntimeAlive()) { + try { + if (ENVIRONMENT_IS_PTHREAD) + __emscripten_thread_exit(EXITSTATUS); + else + _exit(EXITSTATUS); + } catch (e) { + handleException(e); + } + } + }; + var callUserCallback = (func) => { + if (ABORT) { + return; + } + try { + func(); + maybeExit(); + } catch (e) { + handleException(e); + } + }; + function __emscripten_thread_mailbox_await(pthread_ptr) { + pthread_ptr >>>= 0; + if (typeof Atomics.waitAsync === "function") { + var wait = Atomics.waitAsync(GROWABLE_HEAP_I32(), pthread_ptr >> 2, pthread_ptr); + wait.value.then(checkMailbox); + var waitingAsync = pthread_ptr + 128; + Atomics.store(GROWABLE_HEAP_I32(), waitingAsync >> 2, 1); } - Atomics.compareExchange(GROWABLE_HEAP_I32(), queue >> 2, 1, 0); } - Module["executeNotifiedProxyingQueue"] = executeNotifiedProxyingQueue; - function __emscripten_notify_task_queue(targetThreadId, currThreadId, mainThreadId, queue) { + Module["__emscripten_thread_mailbox_await"] = __emscripten_thread_mailbox_await; + var checkMailbox = function() { + var pthread_ptr = _pthread_self(); + if (pthread_ptr) { + __emscripten_thread_mailbox_await(pthread_ptr); + callUserCallback(() => __emscripten_check_mailbox()); + } + }; + Module["checkMailbox"] = checkMailbox; + var __emscripten_notify_mailbox_postmessage = function(targetThreadId, currThreadId, mainThreadId) { + targetThreadId >>>= 0; + currThreadId >>>= 0; if (targetThreadId == currThreadId) { - setTimeout(() => executeNotifiedProxyingQueue(queue)); + setTimeout(() => checkMailbox()); } else if (ENVIRONMENT_IS_PTHREAD) { - postMessage({ "targetThread": targetThreadId, "cmd": "processProxyingQueue", "queue": queue }); + postMessage({ "targetThread": targetThreadId, "cmd": "checkMailbox" }); } else { var worker = PThread.pthreads[targetThreadId]; if (!worker) { return; } - worker.postMessage({ "cmd": "processProxyingQueue", "queue": queue }); + worker.postMessage({ "cmd": "checkMailbox" }); } - return 1; - } + }; function __emscripten_set_offscreencanvas_size(target, width, height) { return -1; } + function __emscripten_thread_set_strongref(thread) { + } function __emval_as(handle, returnType, destructorsRef) { + handle >>>= 0; + returnType >>>= 0; + destructorsRef >>>= 0; handle = Emval.toValue(handle); returnType = requireRegisteredType(returnType, "emval::as"); var destructors = []; @@ -12721,6 +33580,9 @@ var require_web_ifc_mt = __commonJS({ return a; } function __emval_call(handle, argCount, argTypes, argv) { + handle >>>= 0; + argTypes >>>= 0; + argv >>>= 0; handle = Emval.toValue(handle); var types = emval_lookupTypes(argCount, argTypes); var args = new Array(argCount); @@ -12749,6 +33611,7 @@ var require_web_ifc_mt = __commonJS({ }()("return this")(); } function __emval_get_global(name) { + name >>>= 0; if (name === 0) { return Emval.toHandle(emval_get_global()); } else { @@ -12757,25 +33620,32 @@ var require_web_ifc_mt = __commonJS({ } } function __emval_get_property(handle, key) { + handle >>>= 0; + key >>>= 0; handle = Emval.toValue(handle); key = Emval.toValue(key); return Emval.toHandle(handle[key]); } function __emval_incref(handle) { + handle >>>= 0; if (handle > 4) { - emval_handle_array[handle].refcount += 1; + emval_handles.get(handle).refcount += 1; } } function __emval_instanceof(object, constructor) { + object >>>= 0; + constructor >>>= 0; object = Emval.toValue(object); constructor = Emval.toValue(constructor); return object instanceof constructor; } function __emval_is_number(handle) { + handle >>>= 0; handle = Emval.toValue(handle); return typeof handle == "number"; } function __emval_is_string(handle) { + handle >>>= 0; handle = Emval.toValue(handle); return typeof handle == "string"; } @@ -12783,55 +33653,55 @@ var require_web_ifc_mt = __commonJS({ return Emval.toHandle([]); } function __emval_new_cstring(v) { + v >>>= 0; return Emval.toHandle(getStringOrSymbol(v)); } function __emval_new_object() { return Emval.toHandle({}); } function __emval_run_destructors(handle) { + handle >>>= 0; var destructors = Emval.toValue(handle); runDestructors(destructors); __emval_decref(handle); } function __emval_set_property(handle, key, value) { + handle >>>= 0; + key >>>= 0; + value >>>= 0; handle = Emval.toValue(handle); key = Emval.toValue(key); value = Emval.toValue(value); handle[key] = value; } function __emval_take_value(type, arg) { + type >>>= 0; + arg >>>= 0; type = requireRegisteredType(type, "_emval_take_value"); var v = type["readValueFromPointer"](arg); return Emval.toHandle(v); } - function _abort() { + var _abort = () => { abort(""); - } - function warnOnce(text) { - if (!warnOnce.shown) - warnOnce.shown = {}; - if (!warnOnce.shown[text]) { - warnOnce.shown[text] = 1; - err(text); - } - } + }; function _emscripten_check_blocking_allowed() { - if (ENVIRONMENT_IS_WORKER) - return; - warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread"); } + var runtimeKeepalivePush = () => { + runtimeKeepaliveCounter += 1; + }; + var _emscripten_exit_with_live_runtime = () => { + runtimeKeepalivePush(); + throw "unwind"; + }; var _emscripten_get_now; _emscripten_get_now = () => performance.timeOrigin + performance.now(); - function _emscripten_memcpy_big(dest, src, num) { - GROWABLE_HEAP_U8().copyWithin(dest >>> 0, src >>> 0, src + num >>> 0); - } - function withStackSave(f) { + var withStackSave = (f) => { var stack = stackSave(); var ret = f(); stackRestore(stack); return ret; - } - function _emscripten_proxy_to_main_thread_js(index, sync) { + }; + var proxyToMainThread = function(index, sync) { var numCallArgs = arguments.length - 2; var outerArgs = arguments; return withStackSave(() => { @@ -12842,34 +33712,36 @@ var require_web_ifc_mt = __commonJS({ var arg = outerArgs[2 + i]; GROWABLE_HEAP_F64()[b + i >>> 0] = arg; } - return _emscripten_run_in_main_runtime_thread_js(index, serializedNumCallArgs, args, sync); + return __emscripten_run_in_main_runtime_thread_js(index, serializedNumCallArgs, args, sync); }); - } - var _emscripten_receive_on_main_thread_js_callArgs = []; - function _emscripten_receive_on_main_thread_js(index, numCallArgs, args) { - _emscripten_receive_on_main_thread_js_callArgs.length = numCallArgs; + }; + var emscripten_receive_on_main_thread_js_callArgs = []; + function _emscripten_receive_on_main_thread_js(index, callingThread, numCallArgs, args) { + callingThread >>>= 0; + args >>>= 0; + PThread.currentProxiedOperationCallerThread = callingThread; + emscripten_receive_on_main_thread_js_callArgs.length = numCallArgs; var b = args >> 3; for (var i = 0; i < numCallArgs; i++) { - _emscripten_receive_on_main_thread_js_callArgs[i] = GROWABLE_HEAP_F64()[b + i >>> 0]; + emscripten_receive_on_main_thread_js_callArgs[i] = GROWABLE_HEAP_F64()[b + i >>> 0]; } var func = proxiedFunctionTable[index]; - return func.apply(null, _emscripten_receive_on_main_thread_js_callArgs); - } - function getHeapMax() { - return 4294901760; + return func.apply(null, emscripten_receive_on_main_thread_js_callArgs); } - function emscripten_realloc_buffer(size) { + var getHeapMax = () => 4294901760; + var growMemory = (size) => { var b = wasmMemory.buffer; + var pages = size - b.byteLength + 65535 >>> 16; try { - wasmMemory.grow(size - b.byteLength + 65535 >>> 16); + wasmMemory.grow(pages); updateMemoryViews(); return 1; } catch (e) { } - } + }; function _emscripten_resize_heap(requestedSize) { + requestedSize >>>= 0; var oldSize = GROWABLE_HEAP_U8().length; - requestedSize = requestedSize >>> 0; if (requestedSize <= oldSize) { return false; } @@ -12877,26 +33749,21 @@ var require_web_ifc_mt = __commonJS({ if (requestedSize > maxHeapSize) { return false; } - let alignUp = (x, multiple) => x + (multiple - x % multiple) % multiple; + var alignUp = (x, multiple) => x + (multiple - x % multiple) % multiple; for (var cutDown = 1; cutDown <= 4; cutDown *= 2) { var overGrownHeapSize = oldSize * (1 + 0.2 / cutDown); overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296); var newSize = Math.min(maxHeapSize, alignUp(Math.max(requestedSize, overGrownHeapSize), 65536)); - var replacement = emscripten_realloc_buffer(newSize); + var replacement = growMemory(newSize); if (replacement) { return true; } } return false; } - function _emscripten_unwind_to_js_event_loop() { - throw "unwind"; - } var ENV = {}; - function getExecutableName() { - return thisProgram || "./this.program"; - } - function getEnvStrings() { + var getExecutableName = () => thisProgram || "./this.program"; + var getEnvStrings = () => { if (!getEnvStrings.strings) { var lang = (typeof navigator == "object" && navigator.languages && navigator.languages[0] || "C").replace("-", "_") + ".UTF-8"; var env = { "USER": "web_user", "LOGNAME": "web_user", "PATH": "/", "PWD": "/", "HOME": "/home/web_user", "LANG": lang, "_": getExecutableName() }; @@ -12908,34 +33775,37 @@ var require_web_ifc_mt = __commonJS({ } var strings = []; for (var x in env) { - strings.push(x + "=" + env[x]); + strings.push(`${x}=${env[x]}`); } getEnvStrings.strings = strings; } return getEnvStrings.strings; - } - function writeAsciiToMemory(str, buffer, dontAddNull) { + }; + var stringToAscii = (str, buffer) => { for (var i = 0; i < str.length; ++i) { GROWABLE_HEAP_I8()[buffer++ >>> 0] = str.charCodeAt(i); } - if (!dontAddNull) - GROWABLE_HEAP_I8()[buffer >>> 0] = 0; - } + GROWABLE_HEAP_I8()[buffer >>> 0] = 0; + }; function _environ_get(__environ, environ_buf) { if (ENVIRONMENT_IS_PTHREAD) - return _emscripten_proxy_to_main_thread_js(3, 1, __environ, environ_buf); + return proxyToMainThread(3, 1, __environ, environ_buf); + __environ >>>= 0; + environ_buf >>>= 0; var bufSize = 0; getEnvStrings().forEach(function(string, i) { var ptr = environ_buf + bufSize; GROWABLE_HEAP_U32()[__environ + i * 4 >>> 2] = ptr; - writeAsciiToMemory(string, ptr); + stringToAscii(string, ptr); bufSize += string.length + 1; }); return 0; } function _environ_sizes_get(penviron_count, penviron_buf_size) { if (ENVIRONMENT_IS_PTHREAD) - return _emscripten_proxy_to_main_thread_js(4, 1, penviron_count, penviron_buf_size); + return proxyToMainThread(4, 1, penviron_count, penviron_buf_size); + penviron_count >>>= 0; + penviron_buf_size >>>= 0; var strings = getEnvStrings(); GROWABLE_HEAP_U32()[penviron_count >>> 2] = strings.length; var bufSize = 0; @@ -12947,18 +33817,18 @@ var require_web_ifc_mt = __commonJS({ } function _fd_close(fd) { if (ENVIRONMENT_IS_PTHREAD) - return _emscripten_proxy_to_main_thread_js(5, 1, fd); + return proxyToMainThread(5, 1, fd); try { var stream = SYSCALLS.getStreamFromFD(fd); FS.close(stream); return 0; } catch (e) { - if (typeof FS == "undefined" || !(e instanceof FS.ErrnoError)) + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; return e.errno; } } - function doReadv(stream, iov, iovcnt, offset) { + var doReadv = (stream, iov, iovcnt, offset) => { var ret = 0; for (var i = 0; i < iovcnt; i++) { var ptr = GROWABLE_HEAP_U32()[iov >>> 2]; @@ -12975,44 +33845,45 @@ var require_web_ifc_mt = __commonJS({ } } return ret; - } + }; function _fd_read(fd, iov, iovcnt, pnum) { if (ENVIRONMENT_IS_PTHREAD) - return _emscripten_proxy_to_main_thread_js(6, 1, fd, iov, iovcnt, pnum); + return proxyToMainThread(6, 1, fd, iov, iovcnt, pnum); + iov >>>= 0; + iovcnt >>>= 0; + pnum >>>= 0; try { var stream = SYSCALLS.getStreamFromFD(fd); var num = doReadv(stream, iov, iovcnt); GROWABLE_HEAP_U32()[pnum >>> 2] = num; return 0; } catch (e) { - if (typeof FS == "undefined" || !(e instanceof FS.ErrnoError)) + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; return e.errno; } } - function convertI32PairToI53Checked(lo, hi) { - return hi + 2097152 >>> 0 < 4194305 - !!lo ? (lo >>> 0) + hi * 4294967296 : NaN; - } function _fd_seek(fd, offset_low, offset_high, whence, newOffset) { if (ENVIRONMENT_IS_PTHREAD) - return _emscripten_proxy_to_main_thread_js(7, 1, fd, offset_low, offset_high, whence, newOffset); + return proxyToMainThread(7, 1, fd, offset_low, offset_high, whence, newOffset); + var offset = convertI32PairToI53Checked(offset_low, offset_high); + newOffset >>>= 0; try { - var offset = convertI32PairToI53Checked(offset_low, offset_high); if (isNaN(offset)) return 61; var stream = SYSCALLS.getStreamFromFD(fd); FS.llseek(stream, offset, whence); - tempI64 = [stream.position >>> 0, (tempDouble = stream.position, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], GROWABLE_HEAP_I32()[newOffset >>> 2] = tempI64[0], GROWABLE_HEAP_I32()[newOffset + 4 >>> 2] = tempI64[1]; + tempI64 = [stream.position >>> 0, (tempDouble = stream.position, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? +Math.floor(tempDouble / 4294967296) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], GROWABLE_HEAP_I32()[newOffset >>> 2] = tempI64[0], GROWABLE_HEAP_I32()[newOffset + 4 >>> 2] = tempI64[1]; if (stream.getdents && offset === 0 && whence === 0) stream.getdents = null; return 0; } catch (e) { - if (typeof FS == "undefined" || !(e instanceof FS.ErrnoError)) + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; return e.errno; } } - function doWritev(stream, iov, iovcnt, offset) { + var doWritev = (stream, iov, iovcnt, offset) => { var ret = 0; for (var i = 0; i < iovcnt; i++) { var ptr = GROWABLE_HEAP_U32()[iov >>> 2]; @@ -13027,38 +33898,39 @@ var require_web_ifc_mt = __commonJS({ } } return ret; - } + }; function _fd_write(fd, iov, iovcnt, pnum) { if (ENVIRONMENT_IS_PTHREAD) - return _emscripten_proxy_to_main_thread_js(8, 1, fd, iov, iovcnt, pnum); + return proxyToMainThread(8, 1, fd, iov, iovcnt, pnum); + iov >>>= 0; + iovcnt >>>= 0; + pnum >>>= 0; try { var stream = SYSCALLS.getStreamFromFD(fd); var num = doWritev(stream, iov, iovcnt); GROWABLE_HEAP_U32()[pnum >>> 2] = num; return 0; } catch (e) { - if (typeof FS == "undefined" || !(e instanceof FS.ErrnoError)) + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; return e.errno; } } - function __isLeapYear(year) { - return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0); - } - function __arraySum(array, index) { + var isLeapYear = (year) => year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0); + var arraySum = (array, index) => { var sum = 0; for (var i = 0; i <= index; sum += array[i++]) { } return sum; - } - var __MONTH_DAYS_LEAP = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; - var __MONTH_DAYS_REGULAR = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; - function __addDays(date, days) { + }; + var MONTH_DAYS_LEAP = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; + var MONTH_DAYS_REGULAR = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; + var addDays = (date, days) => { var newDate = new Date(date.getTime()); while (days > 0) { - var leap = __isLeapYear(newDate.getFullYear()); + var leap = isLeapYear(newDate.getFullYear()); var currentMonth = newDate.getMonth(); - var daysInCurrentMonth = (leap ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR)[currentMonth]; + var daysInCurrentMonth = (leap ? MONTH_DAYS_LEAP : MONTH_DAYS_REGULAR)[currentMonth]; if (days > daysInCurrentMonth - newDate.getDate()) { days -= daysInCurrentMonth - newDate.getDate() + 1; newDate.setDate(1); @@ -13074,11 +33946,15 @@ var require_web_ifc_mt = __commonJS({ } } return newDate; - } - function writeArrayToMemory(array, buffer) { + }; + var writeArrayToMemory = (array, buffer) => { GROWABLE_HEAP_I8().set(array, buffer >>> 0); - } + }; function _strftime(s, maxsize, format, tm) { + s >>>= 0; + maxsize >>>= 0; + format >>>= 0; + tm >>>= 0; var tm_zone = GROWABLE_HEAP_I32()[tm + 40 >>> 2]; var date = { tm_sec: GROWABLE_HEAP_I32()[tm >>> 2], tm_min: GROWABLE_HEAP_I32()[tm + 4 >>> 2], tm_hour: GROWABLE_HEAP_I32()[tm + 8 >>> 2], tm_mday: GROWABLE_HEAP_I32()[tm + 12 >>> 2], tm_mon: GROWABLE_HEAP_I32()[tm + 16 >>> 2], tm_year: GROWABLE_HEAP_I32()[tm + 20 >>> 2], tm_wday: GROWABLE_HEAP_I32()[tm + 24 >>> 2], tm_yday: GROWABLE_HEAP_I32()[tm + 28 >>> 2], tm_isdst: GROWABLE_HEAP_I32()[tm + 32 >>> 2], tm_gmtoff: GROWABLE_HEAP_I32()[tm + 36 >>> 2], tm_zone: tm_zone ? UTF8ToString(tm_zone) : "" }; var pattern = UTF8ToString(format); @@ -13129,7 +34005,7 @@ var require_web_ifc_mt = __commonJS({ } } function getWeekBasedYear(date2) { - var thisDate = __addDays(new Date(date2.tm_year + 1900, 0, 1), date2.tm_yday); + 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); @@ -13142,57 +34018,25 @@ var require_web_ifc_mt = __commonJS({ } return thisDate.getFullYear() - 1; } - var EXPANSION_RULES_2 = { "%a": function(date2) { - return WEEKDAYS[date2.tm_wday].substring(0, 3); - }, "%A": function(date2) { - return WEEKDAYS[date2.tm_wday]; - }, "%b": function(date2) { - return MONTHS[date2.tm_mon].substring(0, 3); - }, "%B": function(date2) { - return MONTHS[date2.tm_mon]; - }, "%C": function(date2) { + var EXPANSION_RULES_2 = { "%a": (date2) => WEEKDAYS[date2.tm_wday].substring(0, 3), "%A": (date2) => WEEKDAYS[date2.tm_wday], "%b": (date2) => MONTHS[date2.tm_mon].substring(0, 3), "%B": (date2) => MONTHS[date2.tm_mon], "%C": (date2) => { var year = date2.tm_year + 1900; return leadingNulls(year / 100 | 0, 2); - }, "%d": function(date2) { - return leadingNulls(date2.tm_mday, 2); - }, "%e": function(date2) { - return leadingSomething(date2.tm_mday, 2, " "); - }, "%g": function(date2) { - return getWeekBasedYear(date2).toString().substring(2); - }, "%G": function(date2) { - return getWeekBasedYear(date2); - }, "%H": function(date2) { - return leadingNulls(date2.tm_hour, 2); - }, "%I": function(date2) { + }, "%d": (date2) => leadingNulls(date2.tm_mday, 2), "%e": (date2) => leadingSomething(date2.tm_mday, 2, " "), "%g": (date2) => getWeekBasedYear(date2).toString().substring(2), "%G": (date2) => getWeekBasedYear(date2), "%H": (date2) => leadingNulls(date2.tm_hour, 2), "%I": (date2) => { var twelveHour = date2.tm_hour; if (twelveHour == 0) twelveHour = 12; else if (twelveHour > 12) twelveHour -= 12; return leadingNulls(twelveHour, 2); - }, "%j": function(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(date2) { - return leadingNulls(date2.tm_mon + 1, 2); - }, "%M": function(date2) { - return leadingNulls(date2.tm_min, 2); - }, "%n": function() { - return "\n"; - }, "%p": function(date2) { + }, "%j": (date2) => leadingNulls(date2.tm_mday + arraySum(isLeapYear(date2.tm_year + 1900) ? MONTH_DAYS_LEAP : MONTH_DAYS_REGULAR, date2.tm_mon - 1), 3), "%m": (date2) => leadingNulls(date2.tm_mon + 1, 2), "%M": (date2) => leadingNulls(date2.tm_min, 2), "%n": () => "\n", "%p": (date2) => { if (date2.tm_hour >= 0 && date2.tm_hour < 12) { return "AM"; } return "PM"; - }, "%S": function(date2) { - return leadingNulls(date2.tm_sec, 2); - }, "%t": function() { - return " "; - }, "%u": function(date2) { - return date2.tm_wday || 7; - }, "%U": function(date2) { + }, "%S": (date2) => leadingNulls(date2.tm_sec, 2), "%t": () => " ", "%u": (date2) => date2.tm_wday || 7, "%U": (date2) => { var days = date2.tm_yday + 7 - date2.tm_wday; return leadingNulls(Math.floor(days / 7), 2); - }, "%V": function(date2) { + }, "%V": (date2) => { var val = Math.floor((date2.tm_yday + 7 - (date2.tm_wday + 6) % 7) / 7); if ((date2.tm_wday + 371 - date2.tm_yday - 2) % 7 <= 2) { val++; @@ -13200,35 +34044,25 @@ var require_web_ifc_mt = __commonJS({ if (!val) { val = 52; var dec31 = (date2.tm_wday + 7 - date2.tm_yday - 1) % 7; - if (dec31 == 4 || dec31 == 5 && __isLeapYear(date2.tm_year % 400 - 1)) { + if (dec31 == 4 || dec31 == 5 && isLeapYear(date2.tm_year % 400 - 1)) { val++; } } else if (val == 53) { var jan1 = (date2.tm_wday + 371 - date2.tm_yday) % 7; - if (jan1 != 4 && (jan1 != 3 || !__isLeapYear(date2.tm_year))) + if (jan1 != 4 && (jan1 != 3 || !isLeapYear(date2.tm_year))) val = 1; } return leadingNulls(val, 2); - }, "%w": function(date2) { - return date2.tm_wday; - }, "%W": function(date2) { + }, "%w": (date2) => date2.tm_wday, "%W": (date2) => { var days = date2.tm_yday + 7 - (date2.tm_wday + 6) % 7; return leadingNulls(Math.floor(days / 7), 2); - }, "%y": function(date2) { - return (date2.tm_year + 1900).toString().substring(2); - }, "%Y": function(date2) { - return date2.tm_year + 1900; - }, "%z": function(date2) { + }, "%y": (date2) => (date2.tm_year + 1900).toString().substring(2), "%Y": (date2) => date2.tm_year + 1900, "%z": (date2) => { var off = date2.tm_gmtoff; var ahead = off >= 0; off = Math.abs(off) / 60; off = off / 60 * 100 + off % 60; return (ahead ? "+" : "-") + String("0000" + off).slice(-4); - }, "%Z": function(date2) { - return date2.tm_zone; - }, "%%": function() { - return "%"; - } }; + }, "%Z": (date2) => date2.tm_zone, "%%": () => "%" }; pattern = pattern.replace(/%%/g, "\0\0"); for (var rule in EXPANSION_RULES_2) { if (pattern.includes(rule)) { @@ -13244,6 +34078,10 @@ var require_web_ifc_mt = __commonJS({ return bytes.length - 1; } function _strftime_l(s, maxsize, format, tm, loc) { + s >>>= 0; + maxsize >>>= 0; + format >>>= 0; + tm >>>= 0; return _strftime(s, maxsize, format, tm); } PThread.init(); @@ -13277,84 +34115,64 @@ var require_web_ifc_mt = __commonJS({ return FS.isChrdev(this.mode); } } }); FS.FSNode = FSNode; + FS.createPreloadedFile = FS_createPreloadedFile; FS.staticInit(); - InternalError = Module["InternalError"] = extendError(Error, "InternalError"); + InternalError = Module["InternalError"] = class InternalError extends Error { + constructor(message) { + super(message); + this.name = "InternalError"; + } + }; embind_init_charCodes(); - BindingError = Module["BindingError"] = extendError(Error, "BindingError"); + BindingError = Module["BindingError"] = class BindingError extends Error { + constructor(message) { + super(message); + this.name = "BindingError"; + } + }; init_ClassHandle(); init_embind(); init_RegisteredPointer(); UnboundTypeError = Module["UnboundTypeError"] = extendError(Error, "UnboundTypeError"); + handleAllocatorInit(); init_emval(); var proxiedFunctionTable = [null, _proc_exit, exitOnMainThread, _environ_get, _environ_sizes_get, _fd_close, _fd_read, _fd_seek, _fd_write]; - var wasmImports = { "h": ___cxa_throw, "U": ___emscripten_init_main_thread_js, "K": ___emscripten_thread_cleanup, "Y": __dlinit, "$": __dlopen_js, "_": __dlsym_catchup_js, "ea": __embind_finalize_value_array, "r": __embind_finalize_value_object, "I": __embind_register_bigint, "ca": __embind_register_bool, "q": __embind_register_class, "p": __embind_register_class_constructor, "c": __embind_register_class_function, "ba": __embind_register_emval, "E": __embind_register_enum, "u": __embind_register_enum_value, "C": __embind_register_float, "d": __embind_register_function, "t": __embind_register_integer, "j": __embind_register_memory_view, "D": __embind_register_std_string, "y": __embind_register_std_wstring, "fa": __embind_register_value_array, "m": __embind_register_value_array_element, "s": __embind_register_value_object, "f": __embind_register_value_object_field, "da": __embind_register_void, "Z": __emscripten_err, "W": __emscripten_notify_task_queue, "T": __emscripten_set_offscreencanvas_size, "l": __emval_as, "x": __emval_call, "b": __emval_decref, "A": __emval_get_global, "i": __emval_get_property, "o": __emval_incref, "G": __emval_instanceof, "z": __emval_is_number, "F": __emval_is_string, "ga": __emval_new_array, "g": __emval_new_cstring, "w": __emval_new_object, "k": __emval_run_destructors, "n": __emval_set_property, "e": __emval_take_value, "B": _abort, "V": _emscripten_check_blocking_allowed, "v": _emscripten_get_now, "X": _emscripten_memcpy_big, "S": _emscripten_receive_on_main_thread_js, "Q": _emscripten_resize_heap, "aa": _emscripten_unwind_to_js_event_loop, "M": _environ_get, "N": _environ_sizes_get, "J": _exit, "O": _fd_close, "P": _fd_read, "H": _fd_seek, "R": _fd_write, "a": wasmMemory || Module["wasmMemory"], "L": _strftime_l }; + var wasmImports = { h: ___cxa_throw, W: ___emscripten_init_main_thread_js, K: ___emscripten_thread_cleanup, ba: __embind_finalize_value_array, r: __embind_finalize_value_object, I: __embind_register_bigint, $: __embind_register_bool, q: __embind_register_class, p: __embind_register_class_constructor, c: __embind_register_class_function, _: __embind_register_emval, E: __embind_register_enum, u: __embind_register_enum_value, C: __embind_register_float, d: __embind_register_function, t: __embind_register_integer, l: __embind_register_memory_view, D: __embind_register_std_string, z: __embind_register_std_wstring, ca: __embind_register_value_array, m: __embind_register_value_array_element, s: __embind_register_value_object, f: __embind_register_value_object_field, aa: __embind_register_void, R: __emscripten_notify_mailbox_postmessage, U: __emscripten_set_offscreencanvas_size, V: __emscripten_thread_mailbox_await, Z: __emscripten_thread_set_strongref, k: __emval_as, y: __emval_call, b: __emval_decref, B: __emval_get_global, i: __emval_get_property, o: __emval_incref, G: __emval_instanceof, A: __emval_is_number, F: __emval_is_string, da: __emval_new_array, g: __emval_new_cstring, w: __emval_new_object, j: __emval_run_destructors, n: __emval_set_property, e: __emval_take_value, x: _abort, X: _emscripten_check_blocking_allowed, Y: _emscripten_exit_with_live_runtime, v: _emscripten_get_now, T: _emscripten_receive_on_main_thread_js, Q: _emscripten_resize_heap, M: _environ_get, N: _environ_sizes_get, J: _exit, O: _fd_close, P: _fd_read, H: _fd_seek, S: _fd_write, a: wasmMemory || Module["wasmMemory"], L: _strftime_l }; createWasm(); - var _malloc = function() { - return (_malloc = Module["asm"]["ja"]).apply(null, arguments); - }; - Module["__emscripten_tls_init"] = function() { - return (Module["__emscripten_tls_init"] = Module["asm"]["ka"]).apply(null, arguments); - }; - var _pthread_self = Module["_pthread_self"] = function() { - return (_pthread_self = Module["_pthread_self"] = Module["asm"]["la"]).apply(null, arguments); - }; - var ___getTypeName = Module["___getTypeName"] = function() { - return (___getTypeName = Module["___getTypeName"] = Module["asm"]["ma"]).apply(null, arguments); - }; - Module["__embind_initialize_bindings"] = function() { - return (Module["__embind_initialize_bindings"] = Module["asm"]["na"]).apply(null, arguments); - }; - var __emscripten_thread_init = Module["__emscripten_thread_init"] = function() { - return (__emscripten_thread_init = Module["__emscripten_thread_init"] = Module["asm"]["oa"]).apply(null, arguments); - }; - Module["__emscripten_thread_crashed"] = function() { - return (Module["__emscripten_thread_crashed"] = Module["asm"]["pa"]).apply(null, arguments); - }; - var _emscripten_run_in_main_runtime_thread_js = function() { - return (_emscripten_run_in_main_runtime_thread_js = Module["asm"]["qa"]).apply(null, arguments); - }; - var __emscripten_proxy_execute_task_queue = Module["__emscripten_proxy_execute_task_queue"] = function() { - return (__emscripten_proxy_execute_task_queue = Module["__emscripten_proxy_execute_task_queue"] = Module["asm"]["ra"]).apply(null, arguments); - }; - var __emscripten_thread_free_data = function() { - return (__emscripten_thread_free_data = Module["asm"]["sa"]).apply(null, arguments); - }; - var __emscripten_thread_exit = Module["__emscripten_thread_exit"] = function() { - return (__emscripten_thread_exit = Module["__emscripten_thread_exit"] = Module["asm"]["ta"]).apply(null, arguments); - }; - var _free = function() { - return (_free = Module["asm"]["ua"]).apply(null, arguments); - }; - var _emscripten_stack_set_limits = function() { - return (_emscripten_stack_set_limits = Module["asm"]["va"]).apply(null, arguments); - }; - var stackSave = function() { - return (stackSave = Module["asm"]["wa"]).apply(null, arguments); - }; - var stackRestore = function() { - return (stackRestore = Module["asm"]["xa"]).apply(null, arguments); - }; - var stackAlloc = function() { - return (stackAlloc = Module["asm"]["ya"]).apply(null, arguments); - }; - var ___cxa_is_pointer_type = function() { - return (___cxa_is_pointer_type = Module["asm"]["za"]).apply(null, arguments); - }; - Module["dynCall_jiji"] = function() { - return (Module["dynCall_jiji"] = Module["asm"]["Aa"]).apply(null, arguments); - }; - Module["dynCall_viijii"] = function() { - return (Module["dynCall_viijii"] = Module["asm"]["Ba"]).apply(null, arguments); - }; - Module["dynCall_iiiiij"] = function() { - return (Module["dynCall_iiiiij"] = Module["asm"]["Ca"]).apply(null, arguments); - }; - Module["dynCall_iiiiijj"] = function() { - return (Module["dynCall_iiiiijj"] = Module["asm"]["Da"]).apply(null, arguments); - }; - Module["dynCall_iiiiiijj"] = function() { - return (Module["dynCall_iiiiiijj"] = Module["asm"]["Ea"]).apply(null, arguments); - }; + var _malloc = (a0) => (_malloc = wasmExports["ga"])(a0); + Module["__emscripten_tls_init"] = () => (Module["__emscripten_tls_init"] = wasmExports["ha"])(); + var _pthread_self = Module["_pthread_self"] = () => (_pthread_self = Module["_pthread_self"] = wasmExports["ia"])(); + var ___getTypeName = (a0) => (___getTypeName = wasmExports["ja"])(a0); + Module["__embind_initialize_bindings"] = () => (Module["__embind_initialize_bindings"] = wasmExports["ka"])(); + var __emscripten_thread_init = Module["__emscripten_thread_init"] = (a0, a1, a2, a3, a4, a5) => (__emscripten_thread_init = Module["__emscripten_thread_init"] = wasmExports["la"])(a0, a1, a2, a3, a4, a5); + Module["__emscripten_thread_crashed"] = () => (Module["__emscripten_thread_crashed"] = wasmExports["ma"])(); + var __emscripten_run_in_main_runtime_thread_js = (a0, a1, a2, a3) => (__emscripten_run_in_main_runtime_thread_js = wasmExports["na"])(a0, a1, a2, a3); + var __emscripten_thread_free_data = (a0) => (__emscripten_thread_free_data = wasmExports["oa"])(a0); + var __emscripten_thread_exit = Module["__emscripten_thread_exit"] = (a0) => (__emscripten_thread_exit = Module["__emscripten_thread_exit"] = wasmExports["pa"])(a0); + var _free = (a0) => (_free = wasmExports["qa"])(a0); + var __emscripten_check_mailbox = Module["__emscripten_check_mailbox"] = () => (__emscripten_check_mailbox = Module["__emscripten_check_mailbox"] = wasmExports["ra"])(); + var _emscripten_stack_set_limits = (a0, a1) => (_emscripten_stack_set_limits = wasmExports["sa"])(a0, a1); + var stackSave = () => (stackSave = wasmExports["ta"])(); + var stackRestore = (a0) => (stackRestore = wasmExports["ua"])(a0); + var stackAlloc = (a0) => (stackAlloc = wasmExports["va"])(a0); + var ___cxa_is_pointer_type = (a0) => (___cxa_is_pointer_type = wasmExports["wa"])(a0); + Module["dynCall_jiji"] = (a0, a1, a2, a3, a4) => (Module["dynCall_jiji"] = wasmExports["xa"])(a0, a1, a2, a3, a4); + Module["dynCall_viijii"] = (a0, a1, a2, a3, a4, a5, a6) => (Module["dynCall_viijii"] = wasmExports["ya"])(a0, a1, a2, a3, a4, a5, a6); + Module["dynCall_iiiiij"] = (a0, a1, a2, a3, a4, a5, a6) => (Module["dynCall_iiiiij"] = wasmExports["za"])(a0, a1, a2, a3, a4, a5, a6); + Module["dynCall_iiiiijj"] = (a0, a1, a2, a3, a4, a5, a6, a7, a8) => (Module["dynCall_iiiiijj"] = wasmExports["Aa"])(a0, a1, a2, a3, a4, a5, a6, a7, a8); + Module["dynCall_iiiiiijj"] = (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) => (Module["dynCall_iiiiiijj"] = wasmExports["Ba"])(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9); + function applySignatureConversions(exports2) { + exports2 = Object.assign({}, exports2); + var makeWrapper_pp = (f) => (a0) => f(a0) >>> 0; + var makeWrapper_p = (f) => () => f() >>> 0; + exports2["malloc"] = makeWrapper_pp(exports2["malloc"]); + exports2["pthread_self"] = makeWrapper_p(exports2["pthread_self"]); + exports2["__getTypeName"] = makeWrapper_pp(exports2["__getTypeName"]); + exports2["__errno_location"] = makeWrapper_p(exports2["__errno_location"]); + exports2["stackSave"] = makeWrapper_p(exports2["stackSave"]); + exports2["stackAlloc"] = makeWrapper_pp(exports2["stackAlloc"]); + return exports2; + } Module["keepRuntimeAlive"] = keepRuntimeAlive; Module["wasmMemory"] = wasmMemory; Module["ExitStatus"] = ExitStatus; @@ -13413,29 +34231,25 @@ var require_web_ifc_mt = __commonJS({ } } run(); - return WebIFCWasm3.ready; + return moduleArg.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; + define([], () => WebIFCWasm2); } }); // dist/web-ifc.js -var require_web_ifc = __commonJS({ +var require_web_ifc$1 = __commonJS$1({ "dist/web-ifc.js"(exports, module) { var WebIFCWasm2 = (() => { var _scriptDir = typeof document !== "undefined" && document.currentScript ? document.currentScript.src : void 0; - return function(WebIFCWasm3 = {}) { - var Module = typeof WebIFCWasm3 != "undefined" ? WebIFCWasm3 : {}; + return function(moduleArg = {}) { + var Module = moduleArg; var readyPromiseResolve, readyPromiseReject; - Module["ready"] = new Promise(function(resolve, reject) { + Module["ready"] = new Promise((resolve, reject) => { readyPromiseResolve = resolve; readyPromiseReject = reject; }); @@ -13449,7 +34263,7 @@ var require_web_ifc = __commonJS({ } return scriptDirectory + path; } - var read_, readAsync, readBinary; + var read_, readAsync; { if (typeof document != "undefined" && document.currentScript) { scriptDirectory = document.currentScript.src; @@ -13486,7 +34300,7 @@ var require_web_ifc = __commonJS({ } } var out = Module["print"] || console.log.bind(console); - var err = Module["printErr"] || console.warn.bind(console); + var err = Module["printErr"] || console.error.bind(console); Object.assign(Module, moduleOverrides); moduleOverrides = null; if (Module["arguments"]) @@ -13503,112 +34317,13 @@ var require_web_ifc = __commonJS({ abort("no native wasm support detected"); } var wasmMemory; + var wasmExports; var ABORT = false; function assert(condition, text) { if (!condition) { abort(text); } } - var UTF8Decoder = typeof TextDecoder != "undefined" ? new TextDecoder("utf8") : void 0; - function UTF8ArrayToString(heapOrArray, idx, maxBytesToRead) { - idx >>>= 0; - var endIdx = idx + maxBytesToRead; - var endPtr = idx; - while (heapOrArray[endPtr] && !(endPtr >= endIdx)) - ++endPtr; - if (endPtr - idx > 16 && heapOrArray.buffer && UTF8Decoder) { - return UTF8Decoder.decode(heapOrArray.subarray(idx, endPtr)); - } - var str = ""; - while (idx < endPtr) { - var u0 = heapOrArray[idx++]; - if (!(u0 & 128)) { - str += String.fromCharCode(u0); - continue; - } - var u1 = heapOrArray[idx++] & 63; - if ((u0 & 224) == 192) { - str += String.fromCharCode((u0 & 31) << 6 | u1); - continue; - } - var u2 = heapOrArray[idx++] & 63; - if ((u0 & 240) == 224) { - u0 = (u0 & 15) << 12 | u1 << 6 | u2; - } else { - u0 = (u0 & 7) << 18 | u1 << 12 | u2 << 6 | heapOrArray[idx++] & 63; - } - if (u0 < 65536) { - str += String.fromCharCode(u0); - } else { - var ch = u0 - 65536; - str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023); - } - } - return str; - } - 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 c = str.charCodeAt(i); - if (c <= 127) { - len++; - } else if (c <= 2047) { - len += 2; - } else if (c >= 55296 && c <= 57343) { - len += 4; - ++i; - } else { - len += 3; - } - } - return len; - } var HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64; function updateMemoryViews() { var b = wasmMemory.buffer; @@ -13705,92 +34420,79 @@ var require_web_ifc = __commonJS({ if (!isDataURI(wasmBinaryFile)) { wasmBinaryFile = locateFile(wasmBinaryFile); } - function getBinary(file) { - try { - if (file == wasmBinaryFile && wasmBinary) { - return new Uint8Array(wasmBinary); - } - if (readBinary) ; - throw "both async and sync fetching of the wasm failed"; - } catch (err2) { - abort(err2); + function getBinarySync(file) { + if (file == wasmBinaryFile && wasmBinary) { + return new Uint8Array(wasmBinary); } + throw "both async and sync fetching of the wasm failed"; } - function getBinaryPromise() { + function getBinaryPromise(binaryFile) { if (!wasmBinary && (ENVIRONMENT_IS_WEB )) { if (typeof fetch == "function") { - return fetch(wasmBinaryFile, { credentials: "same-origin" }).then(function(response) { + return fetch(binaryFile, { credentials: "same-origin" }).then((response) => { if (!response["ok"]) { - throw "failed to load wasm binary file at '" + wasmBinaryFile + "'"; + throw "failed to load wasm binary file at '" + binaryFile + "'"; } return response["arrayBuffer"](); - }).catch(function() { - return getBinary(wasmBinaryFile); - }); + }).catch(() => getBinarySync(binaryFile)); } } - return Promise.resolve().then(function() { - return getBinary(wasmBinaryFile); + return Promise.resolve().then(() => getBinarySync(binaryFile)); + } + function instantiateArrayBuffer(binaryFile, imports, receiver) { + return getBinaryPromise(binaryFile).then((binary) => WebAssembly.instantiate(binary, imports)).then((instance) => instance).then(receiver, (reason) => { + err("failed to asynchronously prepare wasm: " + reason); + abort(reason); }); } + function instantiateAsync(binary, binaryFile, imports, callback) { + if (!binary && typeof WebAssembly.instantiateStreaming == "function" && !isDataURI(binaryFile) && typeof fetch == "function") { + return fetch(binaryFile, { credentials: "same-origin" }).then((response) => { + var result = WebAssembly.instantiateStreaming(response, imports); + return result.then(callback, function(reason) { + err("wasm streaming compile failed: " + reason); + err("falling back to ArrayBuffer instantiation"); + return instantiateArrayBuffer(binaryFile, imports, callback); + }); + }); + } + return instantiateArrayBuffer(binaryFile, imports, callback); + } function createWasm() { var info = { "a": wasmImports }; function receiveInstance(instance, module2) { - var exports3 = instance.exports; - Module["asm"] = exports3; - wasmMemory = Module["asm"]["V"]; + var exports2 = instance.exports; + exports2 = applySignatureConversions(exports2); + wasmExports = exports2; + wasmMemory = wasmExports["V"]; updateMemoryViews(); - wasmTable = Module["asm"]["X"]; - addOnInit(Module["asm"]["W"]); + wasmTable = wasmExports["X"]; + addOnInit(wasmExports["W"]); removeRunDependency(); + return exports2; } addRunDependency(); function receiveInstantiationResult(result) { receiveInstance(result["instance"]); } - function instantiateArrayBuffer(receiver) { - return getBinaryPromise().then(function(binary) { - return WebAssembly.instantiate(binary, info); - }).then(function(instance) { - return instance; - }).then(receiver, function(reason) { - err("failed to asynchronously prepare wasm: " + reason); - abort(reason); - }); - } - function instantiateAsync() { - if (!wasmBinary && typeof WebAssembly.instantiateStreaming == "function" && !isDataURI(wasmBinaryFile) && typeof fetch == "function") { - return fetch(wasmBinaryFile, { credentials: "same-origin" }).then(function(response) { - var result = WebAssembly.instantiateStreaming(response, info); - return result.then(receiveInstantiationResult, function(reason) { - err("wasm streaming compile failed: " + reason); - err("falling back to ArrayBuffer instantiation"); - return instantiateArrayBuffer(receiveInstantiationResult); - }); - }); - } else { - return instantiateArrayBuffer(receiveInstantiationResult); - } - } if (Module["instantiateWasm"]) { try { - var exports2 = Module["instantiateWasm"](info, receiveInstance); - return exports2; + return Module["instantiateWasm"](info, receiveInstance); } catch (e) { err("Module.instantiateWasm callback failed with error: " + e); readyPromiseReject(e); } } - instantiateAsync().catch(readyPromiseReject); + instantiateAsync(wasmBinary, wasmBinaryFile, info, receiveInstantiationResult).catch(readyPromiseReject); return {}; } var tempDouble; var tempI64; - function callRuntimeCallbacks(callbacks) { + var callRuntimeCallbacks = (callbacks) => { while (callbacks.length > 0) { callbacks.shift()(Module); } - } + }; function ExceptionInfo(excPtr) { this.excPtr = excPtr; this.ptr = excPtr - 24; @@ -13806,9 +34508,6 @@ var require_web_ifc = __commonJS({ this.get_destructor = function() { return HEAPU32[this.ptr + 8 >>> 2]; }; - this.set_refcount = function(refcount) { - HEAP32[this.ptr >>> 2] = refcount; - }; this.set_caught = function(caught) { caught = caught ? 1 : 0; HEAP8[this.ptr + 12 >>> 0] = caught; @@ -13827,18 +34526,6 @@ var require_web_ifc = __commonJS({ this.set_adjusted_ptr(0); this.set_type(type); this.set_destructor(destructor); - this.set_refcount(0); - this.set_caught(false); - this.set_rethrown(false); - }; - this.add_ref = function() { - var value = HEAP32[this.ptr >>> 2]; - HEAP32[this.ptr >>> 2] = value + 1; - }; - this.release_ref = function() { - var prev = HEAP32[this.ptr >>> 2]; - HEAP32[this.ptr >>> 2] = prev - 1; - return prev === 1; }; this.set_adjusted_ptr = function(adjustedPtr) { HEAPU32[this.ptr + 16 >>> 2] = adjustedPtr; @@ -13857,10 +34544,18 @@ var require_web_ifc = __commonJS({ return this.excPtr; }; } + var exceptionLast = 0; + function convertI32PairToI53Checked(lo, hi) { + return hi + 2097152 >>> 0 < 4194305 - !!lo ? (lo >>> 0) + hi * 4294967296 : NaN; + } function ___cxa_throw(ptr, type, destructor) { + ptr >>>= 0; + type >>>= 0; + destructor >>>= 0; var info = new ExceptionInfo(ptr); info.init(type, destructor); - throw ptr; + exceptionLast = ptr; + throw exceptionLast; } var tupleRegistrations = {}; function runDestructors(destructors) { @@ -13876,43 +34571,6 @@ var require_web_ifc = __commonJS({ var awaitingDependencies = {}; var registeredTypes = {}; var typeDependencies = {}; - var char_0 = 48; - var char_9 = 57; - function makeLegalFunctionName(name) { - if (name === void 0) { - return "_unknown"; - } - name = name.replace(/[^a-zA-Z0-9_]/g, "$"); - var f = name.charCodeAt(0); - if (f >= char_0 && f <= char_9) { - return "_" + name; - } - return name; - } - function createNamedFunction(name, body) { - name = makeLegalFunctionName(name); - return new Function("body", "return function " + name + '() {\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); @@ -13955,6 +34613,7 @@ var require_web_ifc = __commonJS({ } } function __embind_finalize_value_array(rawTupleType) { + rawTupleType >>>= 0; var reg = tupleRegistrations[rawTupleType]; delete tupleRegistrations[rawTupleType]; var elements = reg.elements; @@ -13974,9 +34633,7 @@ var require_web_ifc = __commonJS({ var setterArgumentType = elementTypes2[i + elementsLength]; var setter = elt.setter; var setterContext = elt.setterContext; - elt.read = (ptr) => { - return getterReturnType["fromWireType"](getter(getterContext, ptr)); - }; + elt.read = (ptr) => getterReturnType["fromWireType"](getter(getterContext, ptr)); elt.write = (ptr, o) => { var destructors = []; setter(setterContext, ptr, setterArgumentType["toWireType"](destructors, o)); @@ -13992,7 +34649,7 @@ var require_web_ifc = __commonJS({ return rv; }, "toWireType": function(destructors, o) { if (elementsLength !== o.length) { - throw new TypeError("Incorrect number of tuple elements for " + reg.name + ": expected=" + elementsLength + ", actual=" + o.length); + 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) { @@ -14006,7 +34663,8 @@ var require_web_ifc = __commonJS({ }); } var structRegistrations = {}; - function __embind_finalize_value_object(structType) { + var __embind_finalize_value_object = function(structType) { + structType >>>= 0; var reg = structRegistrations[structType]; delete structRegistrations[structType]; var rawConstructor = reg.rawConstructor; @@ -14023,9 +34681,7 @@ var require_web_ifc = __commonJS({ var setterArgumentType = fieldTypes2[i + fieldRecords.length]; var setter = field.setter; var setterContext = field.setterContext; - fields[fieldName] = { read: (ptr) => { - return getterReturnType["fromWireType"](getter(getterContext, ptr)); - }, write: (ptr, o) => { + fields[fieldName] = { read: (ptr) => getterReturnType["fromWireType"](getter(getterContext, ptr)), write: (ptr, o) => { var destructors = []; setter(setterContext, ptr, setterArgumentType["toWireType"](destructors, o)); runDestructors(destructors); @@ -14041,7 +34697,7 @@ var require_web_ifc = __commonJS({ }, "toWireType": function(destructors, o) { for (var fieldName in fields) { if (!(fieldName in o)) { - throw new TypeError('Missing field: "' + fieldName + '"'); + throw new TypeError(`Missing field: "${fieldName}"`); } } var ptr = rawConstructor(); @@ -14054,7 +34710,7 @@ var require_web_ifc = __commonJS({ return ptr; }, "argPackAdvance": 8, "readValueFromPointer": simpleReadValueFromPointer, destructorFunction: rawDestructor }]; }); - } + }; function __embind_register_bigint(primitiveType, name, size, minRange, maxRange) { } function getShiftFromSize(size) { @@ -14068,7 +34724,7 @@ var require_web_ifc = __commonJS({ case 8: return 3; default: - throw new TypeError("Unknown type size: " + size); + throw new TypeError(`Unknown type size: ${size}`); } } function embind_init_charCodes() { @@ -14091,19 +34747,16 @@ var require_web_ifc = __commonJS({ function throwBindingError(message) { throw new BindingError(message); } - function registerType(rawType, registeredInstance, options = {}) { - if (!("argPackAdvance" in registeredInstance)) { - throw new TypeError("registerType registeredInstance requires argPackAdvance"); - } + function sharedRegisterType(rawType, registeredInstance, options = {}) { var name = registeredInstance.name; if (!rawType) { - throwBindingError('type "' + name + '" must have a positive integer typeid pointer'); + throwBindingError(`type "${name}" must have a positive integer typeid pointer`); } if (registeredTypes.hasOwnProperty(rawType)) { if (options.ignoreDuplicateRegistrations) { return; } else { - throwBindingError("Cannot register type '" + name + "' twice"); + throwBindingError(`Cannot register type '${name}' twice`); } } registeredTypes[rawType] = registeredInstance; @@ -14114,7 +34767,16 @@ var require_web_ifc = __commonJS({ callbacks.forEach((cb) => cb()); } } + function registerType(rawType, registeredInstance, options = {}) { + if (!("argPackAdvance" in registeredInstance)) { + throw new TypeError("registerType registeredInstance requires argPackAdvance"); + } + return sharedRegisterType(rawType, registeredInstance, options); + } function __embind_register_bool(rawType, name, size, trueValue, falseValue) { + rawType >>>= 0; + name >>>= 0; + size >>>= 0; var shift = getShiftFromSize(size); name = readLatin1String(name); registerType(rawType, { name, "fromWireType": function(wt) { @@ -14302,7 +34964,7 @@ var require_web_ifc = __commonJS({ return makeClassHandle(toType.registeredClass.instancePrototype, { ptrType: toType, ptr: dp }); } } - function attachFinalizer(handle) { + var attachFinalizer = function(handle) { if (typeof FinalizationRegistry === "undefined") { attachFinalizer = (handle2) => handle2; return handle; @@ -14321,7 +34983,7 @@ var require_web_ifc = __commonJS({ }; detachFinalizer = (handle2) => finalizationRegistry.unregister(handle2); return attachFinalizer(handle); - } + }; function ClassHandle_clone() { if (!this.$$.ptr) { throwInstanceAlreadyDeleted(this); @@ -14376,12 +35038,31 @@ var require_web_ifc = __commonJS({ } function ClassHandle() { } + var char_0 = 48; + var char_9 = 57; + function makeLegalFunctionName(name) { + if (name === void 0) { + return "_unknown"; + } + name = name.replace(/[^a-zA-Z0-9_]/g, "$"); + var f = name.charCodeAt(0); + if (f >= char_0 && f <= char_9) { + return `_${name}`; + } + return name; + } + function createNamedFunction(name, body) { + name = makeLegalFunctionName(name); + return { [name]: function() { + return body.apply(this, arguments); + } }[name]; + } function ensureOverloadTable(proto, methodName, humanName) { if (proto[methodName].overloadTable === void 0) { var prevFunc = proto[methodName]; proto[methodName] = function() { if (!proto[methodName].overloadTable.hasOwnProperty(arguments.length)) { - throwBindingError("Function '" + humanName + "' called with an invalid number of arguments (" + arguments.length + ") - expects one of (" + proto[methodName].overloadTable + ")!"); + 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); }; @@ -14392,11 +35073,11 @@ var require_web_ifc = __commonJS({ function exposePublicSymbol(name, value, numArguments) { if (Module.hasOwnProperty(name)) { if (numArguments === void 0 || Module[name].overloadTable !== void 0 && Module[name].overloadTable[numArguments] !== void 0) { - throwBindingError("Cannot register public name '" + name + "' twice"); + throwBindingError(`Cannot register public name '${name}' twice`); } ensureOverloadTable(Module, name, name); if (Module.hasOwnProperty(numArguments)) { - throwBindingError("Cannot register multiple overloads of a function with the same number of arguments (" + numArguments + ")!"); + throwBindingError(`Cannot register multiple overloads of a function with the same number of arguments (${numArguments})!`); } Module[name].overloadTable[numArguments] = value; } else { @@ -14420,7 +35101,7 @@ var require_web_ifc = __commonJS({ 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); + throwBindingError(`Expected null or instance of ${desiredClass.name}, got an instance of ${ptrClass.name}`); } ptr = ptrClass.upcast(ptr); ptrClass = ptrClass.baseClass; @@ -14430,15 +35111,15 @@ var require_web_ifc = __commonJS({ function constNoSmartPtrRawPointerToWireType(destructors, handle) { if (handle === null) { if (this.isReference) { - throwBindingError("null is not a valid " + this.name); + throwBindingError(`null is not a valid ${this.name}`); } return 0; } if (!handle.$$) { - throwBindingError('Cannot pass "' + embindRepr(handle) + '" as a ' + this.name); + throwBindingError(`Cannot pass "${embindRepr(handle)}" as a ${this.name}`); } if (!handle.$$.ptr) { - throwBindingError("Cannot pass deleted object as a pointer of type " + this.name); + 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); @@ -14448,7 +35129,7 @@ var require_web_ifc = __commonJS({ var ptr; if (handle === null) { if (this.isReference) { - throwBindingError("null is not a valid " + this.name); + throwBindingError(`null is not a valid ${this.name}`); } if (this.isSmartPointer) { ptr = this.rawConstructor(); @@ -14461,13 +35142,13 @@ var require_web_ifc = __commonJS({ } } if (!handle.$$) { - throwBindingError('Cannot pass "' + embindRepr(handle) + '" as a ' + this.name); + throwBindingError(`Cannot pass "${embindRepr(handle)}" as a ${this.name}`); } if (!handle.$$.ptr) { - throwBindingError("Cannot pass deleted object as a pointer of type " + this.name); + 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); + 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); @@ -14480,7 +35161,7 @@ var require_web_ifc = __commonJS({ 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); + throwBindingError(`Cannot convert argument of type ${handle.$$.smartPtrType ? handle.$$.smartPtrType.name : handle.$$.ptrType.name} to parameter type ${this.name}`); } break; case 1: @@ -14508,18 +35189,18 @@ var require_web_ifc = __commonJS({ function nonConstNoSmartPtrRawPointerToWireType(destructors, handle) { if (handle === null) { if (this.isReference) { - throwBindingError("null is not a valid " + this.name); + throwBindingError(`null is not a valid ${this.name}`); } return 0; } if (!handle.$$) { - throwBindingError('Cannot pass "' + embindRepr(handle) + '" as a ' + this.name); + throwBindingError(`Cannot pass "${embindRepr(handle)}" as a ${this.name}`); } if (!handle.$$.ptr) { - throwBindingError("Cannot pass deleted object as a pointer of type " + this.name); + 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); + 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); @@ -14584,12 +35265,12 @@ var require_web_ifc = __commonJS({ Module[name].argCount = numArguments; } } - function dynCallLegacy(sig, ptr, args) { + var dynCallLegacy = (sig, ptr, args) => { var f = Module["dynCall_" + sig]; return args && args.length ? f.apply(null, [ptr].concat(args)) : f.call(null, ptr); - } + }; var wasmTableMirror = []; - function getWasmTableEntry(funcPtr) { + var getWasmTableEntry = (funcPtr) => { var func = wasmTableMirror[funcPtr]; if (!func) { if (funcPtr >= wasmTableMirror.length) @@ -14597,22 +35278,22 @@ var require_web_ifc = __commonJS({ wasmTableMirror[funcPtr] = func = wasmTable.get(funcPtr); } return func; - } - function dynCall(sig, ptr, args) { + }; + var dynCall = (sig, ptr, args) => { if (sig.includes("j")) { return dynCallLegacy(sig, ptr, args); } var rtn = getWasmTableEntry(ptr).apply(null, args); return rtn; - } - function getDynCaller(sig, ptr) { + }; + var getDynCaller = (sig, ptr) => { var argCache = []; return function() { argCache.length = 0; Object.assign(argCache, arguments); return dynCall(sig, ptr, argCache); }; - } + }; function embind__requireFunction(signature, rawFunction) { signature = readLatin1String(signature); function makeDynCaller() { @@ -14623,10 +35304,30 @@ var require_web_ifc = __commonJS({ } var fp = makeDynCaller(); if (typeof fp != "function") { - throwBindingError("unknown function pointer with signature " + signature + ": " + rawFunction); + throwBindingError(`unknown function pointer with signature ${signature}: ${rawFunction}`); } return fp; } + function extendError(baseErrorType, errorName) { + var errorClass = createNamedFunction(errorName, function(message) { + this.name = errorName; + this.message = message; + var stack = new Error(message).stack; + if (stack !== void 0) { + this.stack = this.toString() + "\n" + stack.replace(/^Error(:[^\n]*)?\n/, ""); + } + }); + errorClass.prototype = Object.create(baseErrorType.prototype); + errorClass.prototype.constructor = errorClass; + errorClass.prototype.toString = function() { + if (this.message === void 0) { + return this.name; + } else { + return `${this.name}: ${this.message}`; + } + }; + return errorClass; + } var UnboundTypeError = void 0; function getTypeName(type) { var ptr = ___getTypeName(type); @@ -14652,9 +35353,22 @@ var require_web_ifc = __commonJS({ seen[type] = true; } types.forEach(visit); - throw new UnboundTypeError(message + ": " + unboundTypes.map(getTypeName).join([", "])); + throw new UnboundTypeError(`${message}: ` + unboundTypes.map(getTypeName).join([", "])); } function __embind_register_class(rawType, rawPointerType, rawConstPointerType, baseClassRawType, getActualTypeSignature, getActualType, upcastSignature, upcast, downcastSignature, downcast, name, destructorSignature, rawDestructor) { + rawType >>>= 0; + rawPointerType >>>= 0; + rawConstPointerType >>>= 0; + baseClassRawType >>>= 0; + getActualTypeSignature >>>= 0; + getActualType >>>= 0; + upcastSignature >>>= 0; + upcast >>>= 0; + downcastSignature >>>= 0; + downcast >>>= 0; + name >>>= 0; + destructorSignature >>>= 0; + rawDestructor >>>= 0; name = readLatin1String(name); getActualType = embind__requireFunction(getActualTypeSignature, getActualType); if (upcast) { @@ -14666,7 +35380,7 @@ var require_web_ifc = __commonJS({ rawDestructor = embind__requireFunction(destructorSignature, rawDestructor); var legalFunctionName = makeLegalFunctionName(name); exposePublicSymbol(legalFunctionName, function() { - throwUnboundTypeError("Cannot construct " + name + " due to unbound types", [baseClassRawType]); + throwUnboundTypeError(`Cannot construct ${name} due to unbound types`, [baseClassRawType]); }); whenDependentTypesAreResolved([rawType, rawPointerType, rawConstPointerType], baseClassRawType ? [baseClassRawType] : [], function(base) { base = base[0]; @@ -14687,13 +35401,19 @@ var require_web_ifc = __commonJS({ } var body = registeredClass.constructor_body[arguments.length]; if (body === void 0) { - throw new BindingError("Tried to invoke ctor of " + name + " with invalid number of parameters (" + arguments.length + ") - expected (" + Object.keys(registeredClass.constructor_body).toString() + ") parameters instead!"); + throw new BindingError(`Tried to invoke ctor of ${name} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(registeredClass.constructor_body).toString()}) parameters instead!`); } return body.apply(this, arguments); }); var instancePrototype = Object.create(basePrototype, { constructor: { value: constructor } }); constructor.prototype = instancePrototype; var registeredClass = new RegisteredClass(name, constructor, instancePrototype, rawDestructor, baseClass, getActualType, upcast, downcast); + if (registeredClass.baseClass) { + if (registeredClass.baseClass.__derivedClasses === void 0) { + registeredClass.baseClass.__derivedClasses = []; + } + registeredClass.baseClass.__derivedClasses.push(registeredClass); + } var referenceConverter = new RegisteredPointer(name, registeredClass, true, false, false); var pointerConverter = new RegisteredPointer(name + "*", registeredClass, false, false, false); var constPointerConverter = new RegisteredPointer(name + " const*", registeredClass, false, true, false); @@ -14709,9 +35429,9 @@ var require_web_ifc = __commonJS({ } return array; } - function new_(constructor, argumentList) { + function newFunc(constructor, argumentList) { if (!(constructor instanceof Function)) { - throw new TypeError("new_ called with constructor type " + typeof constructor + " which is not a function"); + throw new TypeError(`new_ called with constructor type ${typeof constructor} which is not a function`); } var dummy = createNamedFunction(constructor.name || "unknownFunctionName", function() { }); @@ -14720,7 +35440,7 @@ var require_web_ifc = __commonJS({ var r = constructor.apply(obj, argumentList); return r instanceof Object ? r : obj; } - function craftInvokerFunction(humanName, argTypes, classType, cppInvokerFunc, cppTargetFunc) { + function craftInvokerFunction(humanName, argTypes, classType, cppInvokerFunc, cppTargetFunc, isAsync) { var argCount = argTypes.length; if (argCount < 2) { throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!"); @@ -14740,7 +35460,11 @@ var require_web_ifc = __commonJS({ 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"; + var invokerFnBody = ` + return function ${makeLegalFunctionName(humanName)}(${argsList}) { + if (arguments.length !== ${argCount - 2}) { + throwBindingError('function ${humanName} called with ${arguments.length} arguments, expected ${argCount - 2} args!'); + }`; if (needsDestructorStack) { invokerFnBody += "var destructors = [];\n"; } @@ -14758,7 +35482,7 @@ var require_web_ifc = __commonJS({ if (isClassMethodFunc) { argsListWired = "thisWired" + (argsListWired.length > 0 ? ", " : "") + argsListWired; } - invokerFnBody += (returns ? "var rv = " : "") + "invoker(fn" + (argsListWired.length > 0 ? ", " : "") + argsListWired + ");\n"; + invokerFnBody += (returns || isAsync ? "var rv = " : "") + "invoker(fn" + (argsListWired.length > 0 ? ", " : "") + argsListWired + ");\n"; if (needsDestructorStack) { invokerFnBody += "runDestructors(destructors);\n"; } else { @@ -14776,24 +35500,27 @@ var require_web_ifc = __commonJS({ } invokerFnBody += "}\n"; args1.push(invokerFnBody); - var invokerFunction = new_(Function, args1).apply(null, args2); - return invokerFunction; + return newFunc(Function, args1).apply(null, args2); } function __embind_register_class_constructor(rawClassType, argCount, rawArgTypesAddr, invokerSignature, invoker, rawConstructor) { - assert(argCount > 0); + rawClassType >>>= 0; + rawArgTypesAddr >>>= 0; + invokerSignature >>>= 0; + invoker >>>= 0; + rawConstructor >>>= 0; var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr); invoker = embind__requireFunction(invokerSignature, invoker); whenDependentTypesAreResolved([], [rawClassType], function(classType) { classType = classType[0]; - var humanName = "constructor " + classType.name; + 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!"); + throw new BindingError(`Cannot register multiple constructors with identical number of parameters (${argCount - 1}) for class '${classType.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`); } classType.registeredClass.constructor_body[argCount - 1] = () => { - throwUnboundTypeError("Cannot construct " + classType.name + " due to unbound types", rawArgTypes); + throwUnboundTypeError(`Cannot construct ${classType.name} due to unbound types`, rawArgTypes); }; whenDependentTypesAreResolved([], rawArgTypes, function(argTypes) { argTypes.splice(1, 0, null); @@ -14803,13 +35530,19 @@ var require_web_ifc = __commonJS({ return []; }); } - function __embind_register_class_function(rawClassType, methodName, argCount, rawArgTypesAddr, invokerSignature, rawInvoker, context, isPureVirtual) { + function __embind_register_class_function(rawClassType, methodName, argCount, rawArgTypesAddr, invokerSignature, rawInvoker, context, isPureVirtual, isAsync) { + rawClassType >>>= 0; + methodName >>>= 0; + rawArgTypesAddr >>>= 0; + invokerSignature >>>= 0; + rawInvoker >>>= 0; + context >>>= 0; var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr); methodName = readLatin1String(methodName); rawInvoker = embind__requireFunction(invokerSignature, rawInvoker); whenDependentTypesAreResolved([], [rawClassType], function(classType) { classType = classType[0]; - var humanName = classType.name + "." + methodName; + var humanName = `${classType.name}.${methodName}`; if (methodName.startsWith("@@")) { methodName = Symbol[methodName.substring(2)]; } @@ -14817,7 +35550,7 @@ var require_web_ifc = __commonJS({ classType.registeredClass.pureVirtualFunctions.push(methodName); } function unboundTypesHandler() { - throwUnboundTypeError("Cannot call " + humanName + " due to unbound types", rawArgTypes); + throwUnboundTypeError(`Cannot call ${humanName} due to unbound types`, rawArgTypes); } var proto = classType.registeredClass.instancePrototype; var method = proto[methodName]; @@ -14830,7 +35563,7 @@ var require_web_ifc = __commonJS({ proto[methodName].overloadTable[argCount - 2] = unboundTypesHandler; } whenDependentTypesAreResolved([], rawArgTypes, function(argTypes) { - var memberFunction = craftInvokerFunction(humanName, argTypes, classType, rawInvoker, context); + var memberFunction = craftInvokerFunction(humanName, argTypes, classType, rawInvoker, context, isAsync); if (proto[methodName].overloadTable === void 0) { memberFunction.argCount = argCount - 2; proto[methodName] = memberFunction; @@ -14842,40 +35575,50 @@ var require_web_ifc = __commonJS({ return []; }); } - var emval_free_list = []; - var emval_handle_array = [{}, { value: void 0 }, { value: null }, { value: true }, { value: false }]; + function handleAllocatorInit() { + Object.assign(HandleAllocator.prototype, { get(id) { + return this.allocated[id]; + }, has(id) { + return this.allocated[id] !== void 0; + }, allocate(handle) { + var id = this.freelist.pop() || this.allocated.length; + this.allocated[id] = handle; + return id; + }, free(id) { + this.allocated[id] = void 0; + this.freelist.push(id); + } }); + } + function HandleAllocator() { + this.allocated = [void 0]; + this.freelist = []; + } + var emval_handles = new HandleAllocator(); function __emval_decref(handle) { - if (handle > 4 && --emval_handle_array[handle].refcount === 0) { - emval_handle_array[handle] = void 0; - emval_free_list.push(handle); + handle >>>= 0; + if (handle >= emval_handles.reserved && --emval_handles.get(handle).refcount === 0) { + emval_handles.free(handle); } } function count_emval_handles() { var count = 0; - for (var i = 5; i < emval_handle_array.length; ++i) { - if (emval_handle_array[i] !== void 0) { + for (var i = emval_handles.reserved; i < emval_handles.allocated.length; ++i) { + if (emval_handles.allocated[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() { + emval_handles.allocated.push({ value: void 0 }, { value: null }, { value: true }, { value: false }); + emval_handles.reserved = emval_handles.allocated.length; Module["count_emval_handles"] = count_emval_handles; - Module["get_first_emval"] = get_first_emval; } var Emval = { toValue: (handle) => { if (!handle) { throwBindingError("Cannot use deleted val. handle = " + handle); } - return emval_handle_array[handle].value; + return emval_handles.get(handle).value; }, toHandle: (value) => { switch (value) { case void 0: @@ -14887,13 +35630,13 @@ var require_web_ifc = __commonJS({ 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 }; - return handle; + return emval_handles.allocate({ refcount: 1, value }); } } } }; function __embind_register_emval(rawType, name) { + rawType >>>= 0; + name >>>= 0; name = readLatin1String(name); registerType(rawType, { name, "fromWireType": function(handle) { var rv = Emval.toValue(handle); @@ -14925,6 +35668,9 @@ var require_web_ifc = __commonJS({ } } function __embind_register_enum(rawType, name, size, isSigned) { + rawType >>>= 0; + name >>>= 0; + size >>>= 0; var shift = getShiftFromSize(size); name = readLatin1String(name); function ctor() { @@ -14945,10 +35691,13 @@ var require_web_ifc = __commonJS({ return impl; } function __embind_register_enum_value(rawEnumType, name, enumValue) { + rawEnumType >>>= 0; + name >>>= 0; + enumValue >>>= 0; var enumType = requireRegisteredType(rawEnumType, "enum"); name = readLatin1String(name); var Enum = enumType.constructor; - var Value = Object.create(enumType.constructor.prototype, { value: { value: enumValue }, constructor: { value: createNamedFunction(enumType.name + "_" + name, function() { + var Value = Object.create(enumType.constructor.prototype, { value: { value: enumValue }, constructor: { value: createNamedFunction(`${enumType.name}_${name}`, function() { }) } }); Enum.values[enumValue] = Value; Enum[name] = Value; @@ -14979,6 +35728,9 @@ var require_web_ifc = __commonJS({ } } function __embind_register_float(rawType, name, size) { + rawType >>>= 0; + name >>>= 0; + size >>>= 0; var shift = getShiftFromSize(size); name = readLatin1String(name); registerType(rawType, { name, "fromWireType": function(value) { @@ -14987,16 +35739,21 @@ var require_web_ifc = __commonJS({ return value; }, "argPackAdvance": 8, "readValueFromPointer": floatReadValueFromPointer(name, shift), destructorFunction: null }); } - function __embind_register_function(name, argCount, rawArgTypesAddr, signature, rawInvoker, fn) { + function __embind_register_function(name, argCount, rawArgTypesAddr, signature, rawInvoker, fn, isAsync) { + name >>>= 0; + rawArgTypesAddr >>>= 0; + signature >>>= 0; + rawInvoker >>>= 0; + fn >>>= 0; var argTypes = heap32VectorToArray(argCount, rawArgTypesAddr); name = readLatin1String(name); rawInvoker = embind__requireFunction(signature, rawInvoker); exposePublicSymbol(name, function() { - throwUnboundTypeError("Cannot call " + name + " due to unbound types", argTypes); + throwUnboundTypeError(`Cannot call ${name} due to unbound types`, argTypes); }, argCount - 1); whenDependentTypesAreResolved([], argTypes, function(argTypes2) { var invokerArgsArray = [argTypes2[0], null].concat(argTypes2.slice(1)); - replacePublicSymbol(name, craftInvokerFunction(name, invokerArgsArray, null, rawInvoker, fn), argCount - 1); + replacePublicSymbol(name, craftInvokerFunction(name, invokerArgsArray, null, rawInvoker, fn, isAsync), argCount - 1); return []; }); } @@ -15025,6 +35782,9 @@ var require_web_ifc = __commonJS({ } } function __embind_register_integer(primitiveType, name, size, minRange, maxRange) { + primitiveType >>>= 0; + name >>>= 0; + size >>>= 0; name = readLatin1String(name); var shift = getShiftFromSize(size); var fromWireType = (value) => value; @@ -15050,6 +35810,8 @@ var require_web_ifc = __commonJS({ registerType(primitiveType, { name, "fromWireType": fromWireType, "toWireType": toWireType, "argPackAdvance": 8, "readValueFromPointer": integerReadValueFromPointer(name, shift, minRange !== 0), destructorFunction: null }); } function __embind_register_memory_view(rawType, dataTypeIndex, name) { + rawType >>>= 0; + name >>>= 0; var typeMapping = [Int8Array, Uint8Array, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array]; var TA = typeMapping[dataTypeIndex]; function decodeMemoryView(handle) { @@ -15062,7 +35824,107 @@ var require_web_ifc = __commonJS({ name = readLatin1String(name); registerType(rawType, { name, "fromWireType": decodeMemoryView, "argPackAdvance": 8, "readValueFromPointer": decodeMemoryView }, { ignoreDuplicateRegistrations: true }); } + var stringToUTF8Array = (str, heap, outIdx, maxBytesToWrite) => { + outIdx >>>= 0; + if (!(maxBytesToWrite > 0)) + return 0; + var startIdx = outIdx; + var endIdx = outIdx + maxBytesToWrite - 1; + for (var i = 0; i < str.length; ++i) { + var u = str.charCodeAt(i); + if (u >= 55296 && u <= 57343) { + var u1 = str.charCodeAt(++i); + u = 65536 + ((u & 1023) << 10) | u1 & 1023; + } + if (u <= 127) { + if (outIdx >= endIdx) + break; + heap[outIdx++ >>> 0] = u; + } else if (u <= 2047) { + if (outIdx + 1 >= endIdx) + break; + heap[outIdx++ >>> 0] = 192 | u >> 6; + heap[outIdx++ >>> 0] = 128 | u & 63; + } else if (u <= 65535) { + if (outIdx + 2 >= endIdx) + break; + heap[outIdx++ >>> 0] = 224 | u >> 12; + heap[outIdx++ >>> 0] = 128 | u >> 6 & 63; + heap[outIdx++ >>> 0] = 128 | u & 63; + } else { + if (outIdx + 3 >= endIdx) + break; + heap[outIdx++ >>> 0] = 240 | u >> 18; + heap[outIdx++ >>> 0] = 128 | u >> 12 & 63; + heap[outIdx++ >>> 0] = 128 | u >> 6 & 63; + heap[outIdx++ >>> 0] = 128 | u & 63; + } + } + heap[outIdx >>> 0] = 0; + return outIdx - startIdx; + }; + var stringToUTF8 = (str, outPtr, maxBytesToWrite) => stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite); + var lengthBytesUTF8 = (str) => { + var len = 0; + for (var i = 0; i < str.length; ++i) { + var c = str.charCodeAt(i); + if (c <= 127) { + len++; + } else if (c <= 2047) { + len += 2; + } else if (c >= 55296 && c <= 57343) { + len += 4; + ++i; + } else { + len += 3; + } + } + return len; + }; + var UTF8Decoder = typeof TextDecoder != "undefined" ? new TextDecoder("utf8") : void 0; + var UTF8ArrayToString = (heapOrArray, idx, maxBytesToRead) => { + idx >>>= 0; + var endIdx = idx + maxBytesToRead; + var endPtr = idx; + while (heapOrArray[endPtr] && !(endPtr >= endIdx)) + ++endPtr; + if (endPtr - idx > 16 && heapOrArray.buffer && UTF8Decoder) { + return UTF8Decoder.decode(heapOrArray.subarray(idx, endPtr)); + } + var str = ""; + while (idx < endPtr) { + var u0 = heapOrArray[idx++]; + if (!(u0 & 128)) { + str += String.fromCharCode(u0); + continue; + } + var u1 = heapOrArray[idx++] & 63; + if ((u0 & 224) == 192) { + str += String.fromCharCode((u0 & 31) << 6 | u1); + continue; + } + var u2 = heapOrArray[idx++] & 63; + if ((u0 & 240) == 224) { + u0 = (u0 & 15) << 12 | u1 << 6 | u2; + } else { + u0 = (u0 & 7) << 18 | u1 << 12 | u2 << 6 | heapOrArray[idx++] & 63; + } + if (u0 < 65536) { + str += String.fromCharCode(u0); + } else { + var ch = u0 - 65536; + str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023); + } + } + return str; + }; + var UTF8ToString = (ptr, maxBytesToRead) => { + ptr >>>= 0; + return ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : ""; + }; function __embind_register_std_string(rawType, name) { + rawType >>>= 0; + name >>>= 0; name = readLatin1String(name); var stdStringIsUTF8 = name === "std::string"; registerType(rawType, { name, "fromWireType": function(value) { @@ -15110,7 +35972,6 @@ var require_web_ifc = __commonJS({ } var base = _malloc(4 + length + 1); var ptr = base + 4; - ptr >>>= 0; HEAPU32[base >>> 2] = length; if (stdStringIsUTF8 && valueIsOfTypeString) { stringToUTF8(value, ptr, length + 1); @@ -15139,7 +36000,7 @@ var require_web_ifc = __commonJS({ } }); } var UTF16Decoder = typeof TextDecoder != "undefined" ? new TextDecoder("utf-16le") : void 0; - function UTF16ToString(ptr, maxBytesToRead) { + var UTF16ToString = (ptr, maxBytesToRead) => { var endPtr = ptr; var idx = endPtr >> 1; var maxIdx = idx + maxBytesToRead / 2; @@ -15156,8 +36017,8 @@ var require_web_ifc = __commonJS({ str += String.fromCharCode(codeUnit); } return str; - } - function stringToUTF16(str, outPtr, maxBytesToWrite) { + }; + var stringToUTF16 = (str, outPtr, maxBytesToWrite) => { if (maxBytesToWrite === void 0) { maxBytesToWrite = 2147483647; } @@ -15173,11 +36034,9 @@ var require_web_ifc = __commonJS({ } HEAP16[outPtr >>> 1] = 0; return outPtr - startPtr; - } - function lengthBytesUTF16(str) { - return str.length * 2; - } - function UTF32ToString(ptr, maxBytesToRead) { + }; + var lengthBytesUTF16 = (str) => str.length * 2; + var UTF32ToString = (ptr, maxBytesToRead) => { var i = 0; var str = ""; while (!(i >= maxBytesToRead / 4)) { @@ -15193,8 +36052,8 @@ var require_web_ifc = __commonJS({ } } return str; - } - function stringToUTF32(str, outPtr, maxBytesToWrite) { + }; + var stringToUTF32 = (str, outPtr, maxBytesToWrite) => { outPtr >>>= 0; if (maxBytesToWrite === void 0) { maxBytesToWrite = 2147483647; @@ -15216,8 +36075,8 @@ var require_web_ifc = __commonJS({ } HEAP32[outPtr >>> 2] = 0; return outPtr - startPtr; - } - function lengthBytesUTF32(str) { + }; + var lengthBytesUTF32 = (str) => { var len = 0; for (var i = 0; i < str.length; ++i) { var codeUnit = str.charCodeAt(i); @@ -15226,8 +36085,11 @@ var require_web_ifc = __commonJS({ len += 4; } return len; - } - function __embind_register_std_wstring(rawType, charSize, name) { + }; + var __embind_register_std_wstring = function(rawType, charSize, name) { + rawType >>>= 0; + charSize >>>= 0; + name >>>= 0; name = readLatin1String(name); var decodeString, encodeString, getHeap, lengthBytesUTF, shift; if (charSize === 2) { @@ -15266,11 +36128,10 @@ var require_web_ifc = __commonJS({ return str; }, "toWireType": function(destructors, value) { if (!(typeof value == "string")) { - throwBindingError("Cannot pass non-string to C++ string type " + name); + throwBindingError(`Cannot pass non-string to C++ string type ${name}`); } 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) { @@ -15280,20 +36141,53 @@ var require_web_ifc = __commonJS({ }, "argPackAdvance": 8, "readValueFromPointer": simpleReadValueFromPointer, destructorFunction: function(ptr) { _free(ptr); } }); - } + }; function __embind_register_value_array(rawType, name, constructorSignature, rawConstructor, destructorSignature, rawDestructor) { + rawType >>>= 0; + name >>>= 0; + constructorSignature >>>= 0; + rawConstructor >>>= 0; + destructorSignature >>>= 0; + rawDestructor >>>= 0; tupleRegistrations[rawType] = { name: readLatin1String(name), rawConstructor: embind__requireFunction(constructorSignature, rawConstructor), rawDestructor: embind__requireFunction(destructorSignature, rawDestructor), elements: [] }; } function __embind_register_value_array_element(rawTupleType, getterReturnType, getterSignature, getter, getterContext, setterArgumentType, setterSignature, setter, setterContext) { + rawTupleType >>>= 0; + getterReturnType >>>= 0; + getterSignature >>>= 0; + getter >>>= 0; + getterContext >>>= 0; + setterArgumentType >>>= 0; + setterSignature >>>= 0; + setter >>>= 0; + setterContext >>>= 0; tupleRegistrations[rawTupleType].elements.push({ getterReturnType, getter: embind__requireFunction(getterSignature, getter), getterContext, setterArgumentType, setter: embind__requireFunction(setterSignature, setter), setterContext }); } function __embind_register_value_object(rawType, name, constructorSignature, rawConstructor, destructorSignature, rawDestructor) { + rawType >>>= 0; + name >>>= 0; + constructorSignature >>>= 0; + rawConstructor >>>= 0; + destructorSignature >>>= 0; + rawDestructor >>>= 0; structRegistrations[rawType] = { name: readLatin1String(name), rawConstructor: embind__requireFunction(constructorSignature, rawConstructor), rawDestructor: embind__requireFunction(destructorSignature, rawDestructor), fields: [] }; } function __embind_register_value_object_field(structType, fieldName, getterReturnType, getterSignature, getter, getterContext, setterArgumentType, setterSignature, setter, setterContext) { + structType >>>= 0; + fieldName >>>= 0; + getterReturnType >>>= 0; + getterSignature >>>= 0; + getter >>>= 0; + getterContext >>>= 0; + setterArgumentType >>>= 0; + setterSignature >>>= 0; + setter >>>= 0; + setterContext >>>= 0; structRegistrations[structType].fields.push({ fieldName: readLatin1String(fieldName), getterReturnType, getter: embind__requireFunction(getterSignature, getter), getterContext, setterArgumentType, setter: embind__requireFunction(setterSignature, setter), setterContext }); } function __embind_register_void(rawType, name) { + rawType >>>= 0; + name >>>= 0; name = readLatin1String(name); registerType(rawType, { isVoid: true, name, "argPackAdvance": 0, "fromWireType": function() { return void 0; @@ -15302,6 +36196,9 @@ var require_web_ifc = __commonJS({ } }); } function __emval_as(handle, returnType, destructorsRef) { + handle >>>= 0; + returnType >>>= 0; + destructorsRef >>>= 0; handle = Emval.toValue(handle); returnType = requireRegisteredType(returnType, "emval::as"); var destructors = []; @@ -15317,6 +36214,9 @@ var require_web_ifc = __commonJS({ return a; } function __emval_call(handle, argCount, argTypes, argv) { + handle >>>= 0; + argTypes >>>= 0; + argv >>>= 0; handle = Emval.toValue(handle); var types = emval_lookupTypes(argCount, argTypes); var args = new Array(argCount); @@ -15345,6 +36245,7 @@ var require_web_ifc = __commonJS({ }()("return this")(); } function __emval_get_global(name) { + name >>>= 0; if (name === 0) { return Emval.toHandle(emval_get_global()); } else { @@ -15353,25 +36254,32 @@ var require_web_ifc = __commonJS({ } } function __emval_get_property(handle, key) { + handle >>>= 0; + key >>>= 0; handle = Emval.toValue(handle); key = Emval.toValue(key); return Emval.toHandle(handle[key]); } function __emval_incref(handle) { + handle >>>= 0; if (handle > 4) { - emval_handle_array[handle].refcount += 1; + emval_handles.get(handle).refcount += 1; } } function __emval_instanceof(object, constructor) { + object >>>= 0; + constructor >>>= 0; object = Emval.toValue(object); constructor = Emval.toValue(constructor); return object instanceof constructor; } function __emval_is_number(handle) { + handle >>>= 0; handle = Emval.toValue(handle); return typeof handle == "number"; } function __emval_is_string(handle) { + handle >>>= 0; handle = Emval.toValue(handle); return typeof handle == "string"; } @@ -15379,58 +36287,67 @@ var require_web_ifc = __commonJS({ return Emval.toHandle([]); } function __emval_new_cstring(v) { + v >>>= 0; return Emval.toHandle(getStringOrSymbol(v)); } function __emval_new_object() { return Emval.toHandle({}); } function __emval_run_destructors(handle) { + handle >>>= 0; var destructors = Emval.toValue(handle); runDestructors(destructors); __emval_decref(handle); } function __emval_set_property(handle, key, value) { + handle >>>= 0; + key >>>= 0; + value >>>= 0; handle = Emval.toValue(handle); key = Emval.toValue(key); value = Emval.toValue(value); handle[key] = value; } function __emval_take_value(type, arg) { + type >>>= 0; + arg >>>= 0; type = requireRegisteredType(type, "_emval_take_value"); var v = type["readValueFromPointer"](arg); return Emval.toHandle(v); } - function _abort() { + var _abort = () => { abort(""); - } + }; function _emscripten_memcpy_big(dest, src, num) { - HEAPU8.copyWithin(dest >>> 0, src >>> 0, src + num >>> 0); - } - function getHeapMax() { - return 4294901760; + dest >>>= 0; + src >>>= 0; + num >>>= 0; + return HEAPU8.copyWithin(dest >>> 0, src >>> 0, src + num >>> 0); } - function emscripten_realloc_buffer(size) { + var getHeapMax = () => 4294901760; + var growMemory = (size) => { var b = wasmMemory.buffer; + var pages = size - b.byteLength + 65535 >>> 16; try { - wasmMemory.grow(size - b.byteLength + 65535 >>> 16); + wasmMemory.grow(pages); updateMemoryViews(); return 1; } catch (e) { } - } + }; function _emscripten_resize_heap(requestedSize) { + requestedSize >>>= 0; var oldSize = HEAPU8.length; - requestedSize = requestedSize >>> 0; var maxHeapSize = getHeapMax(); if (requestedSize > maxHeapSize) { return false; } - let alignUp = (x, multiple) => x + (multiple - x % multiple) % multiple; + var alignUp = (x, multiple) => x + (multiple - x % multiple) % multiple; for (var cutDown = 1; cutDown <= 4; cutDown *= 2) { var overGrownHeapSize = oldSize * (1 + 0.2 / cutDown); overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296); var newSize = Math.min(maxHeapSize, alignUp(Math.max(requestedSize, overGrownHeapSize), 65536)); - var replacement = emscripten_realloc_buffer(newSize); + var replacement = growMemory(newSize); if (replacement) { return true; } @@ -15438,10 +36355,8 @@ var require_web_ifc = __commonJS({ return false; } var ENV = {}; - function getExecutableName() { - return thisProgram || "./this.program"; - } - function getEnvStrings() { + var getExecutableName = () => thisProgram || "./this.program"; + var getEnvStrings = () => { if (!getEnvStrings.strings) { var lang = (typeof navigator == "object" && navigator.languages && navigator.languages[0] || "C").replace("-", "_") + ".UTF-8"; var env = { "USER": "web_user", "LOGNAME": "web_user", "PATH": "/", "PWD": "/", "HOME": "/home/web_user", "LANG": lang, "_": getExecutableName() }; @@ -15453,19 +36368,18 @@ var require_web_ifc = __commonJS({ } var strings = []; for (var x in env) { - strings.push(x + "=" + env[x]); + strings.push(`${x}=${env[x]}`); } getEnvStrings.strings = strings; } return getEnvStrings.strings; - } - function writeAsciiToMemory(str, buffer, dontAddNull) { + }; + var stringToAscii = (str, buffer) => { for (var i = 0; i < str.length; ++i) { HEAP8[buffer++ >>> 0] = str.charCodeAt(i); } - if (!dontAddNull) - HEAP8[buffer >>> 0] = 0; - } + HEAP8[buffer >>> 0] = 0; + }; var PATH = { isAbs: (path) => path.charAt(0) === "/", splitPath: (filename) => { var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/; return splitPathRe.exec(filename).slice(1); @@ -15520,19 +36434,14 @@ var require_web_ifc = __commonJS({ }, join: function() { var paths = Array.prototype.slice.call(arguments); return PATH.normalize(paths.join("/")); - }, join2: (l, r) => { - return PATH.normalize(l + "/" + r); - } }; - function getRandomDevice() { + }, join2: (l, r) => PATH.normalize(l + "/" + r) }; + var initRandomFill = () => { if (typeof crypto == "object" && typeof crypto["getRandomValues"] == "function") { - var randomBuffer = new Uint8Array(1); - return () => { - crypto.getRandomValues(randomBuffer); - return randomBuffer[0]; - }; + return (view) => crypto.getRandomValues(view); } else - return () => abort("randomDevice"); - } + abort("initRandomDevice"); + }; + var randomFill = (view) => (randomFill = initRandomFill())(view); var PATH_FS = { resolve: function() { var resolvedPath = "", resolvedAbsolute = false; for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) { @@ -15582,6 +36491,7 @@ var require_web_ifc = __commonJS({ outputParts = outputParts.concat(toParts.slice(samePartsLength)); return outputParts.join("/"); } }; + var FS_stdin_getChar_buffer = []; function intArrayFromString(stringy, dontAddNull, length) { var len = length > 0 ? length : lengthBytesUTF8(stringy) + 1; var u8array = new Array(len); @@ -15590,6 +36500,27 @@ var require_web_ifc = __commonJS({ u8array.length = numBytesWritten; return u8array; } + var FS_stdin_getChar = () => { + if (!FS_stdin_getChar_buffer.length) { + var result = null; + if (typeof window != "undefined" && typeof window.prompt == "function") { + result = window.prompt("Input: "); + if (result !== null) { + result += "\n"; + } + } else if (typeof readline == "function") { + result = readline(); + if (result !== null) { + result += "\n"; + } + } + if (!result) { + return null; + } + FS_stdin_getChar_buffer = intArrayFromString(result, true); + } + return FS_stdin_getChar_buffer.shift(); + }; var TTY = { ttys: [], init: function() { }, shutdown: function() { }, register: function(dev, ops) { @@ -15646,25 +36577,7 @@ var require_web_ifc = __commonJS({ } return i; } }, default_tty_ops: { get_char: function(tty) { - if (!tty.input.length) { - var result = null; - if (typeof window != "undefined" && typeof window.prompt == "function") { - result = window.prompt("Input: "); - if (result !== null) { - result += "\n"; - } - } else if (typeof readline == "function") { - result = readline(); - if (result !== null) { - result += "\n"; - } - } - if (!result) { - return null; - } - tty.input = intArrayFromString(result, true); - } - return tty.input.shift(); + return FS_stdin_getChar(); }, put_char: function(tty, val) { if (val === null || val === 10) { out(UTF8ArrayToString(tty.output, 0)); @@ -15678,6 +36591,12 @@ var require_web_ifc = __commonJS({ out(UTF8ArrayToString(tty.output, 0)); tty.output = []; } + }, ioctl_tcgets: function(tty) { + return { c_iflag: 25856, c_oflag: 5, c_cflag: 191, c_lflag: 35387, c_cc: [3, 28, 127, 21, 4, 0, 1, 0, 17, 19, 26, 0, 18, 15, 23, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] }; + }, ioctl_tcsets: function(tty, optional_actions, data) { + return 0; + }, ioctl_tiocgwinsz: function(tty) { + return [24, 80]; } }, default_tty1_ops: { put_char: function(tty, val) { if (val === null || val === 10) { err(UTF8ArrayToString(tty.output, 0)); @@ -15692,12 +36611,12 @@ var require_web_ifc = __commonJS({ tty.output = []; } } } }; - function mmapAlloc(size) { + var mmapAlloc = (size) => { abort(); - } - var MEMFS = { ops_table: null, mount: function(mount) { + }; + var MEMFS = { ops_table: null, mount(mount) { return MEMFS.createNode(null, "/", 16384 | 511, 0); - }, createNode: function(parent, name, mode, dev) { + }, createNode(parent, name, mode, dev) { if (FS.isBlkdev(mode) || FS.isFIFO(mode)) { throw new FS.ErrnoError(63); } @@ -15727,14 +36646,13 @@ var require_web_ifc = __commonJS({ parent.timestamp = node.timestamp; } return node; - }, getFileDataAsTypedArray: function(node) { + }, getFileDataAsTypedArray(node) { if (!node.contents) return new Uint8Array(0); if (node.contents.subarray) return node.contents.subarray(0, node.usedBytes); return new Uint8Array(node.contents); - }, expandFileStorage: function(node, newCapacity) { - newCapacity >>>= 0; + }, expandFileStorage(node, newCapacity) { var prevCapacity = node.contents ? node.contents.length : 0; if (prevCapacity >= newCapacity) return; @@ -15746,8 +36664,7 @@ var require_web_ifc = __commonJS({ node.contents = new Uint8Array(newCapacity); if (node.usedBytes > 0) node.contents.set(oldContents.subarray(0, node.usedBytes), 0); - }, resizeFileStorage: function(node, newSize) { - newSize >>>= 0; + }, resizeFileStorage(node, newSize) { if (node.usedBytes == newSize) return; if (newSize == 0) { @@ -15761,7 +36678,7 @@ var require_web_ifc = __commonJS({ } node.usedBytes = newSize; } - }, node_ops: { getattr: function(node) { + }, node_ops: { getattr(node) { var attr = {}; attr.dev = FS.isChrdev(node.mode) ? node.id : 1; attr.ino = node.id; @@ -15785,7 +36702,7 @@ var require_web_ifc = __commonJS({ attr.blksize = 4096; attr.blocks = Math.ceil(attr.size / attr.blksize); return attr; - }, setattr: function(node, attr) { + }, setattr(node, attr) { if (attr.mode !== void 0) { node.mode = attr.mode; } @@ -15795,11 +36712,11 @@ var require_web_ifc = __commonJS({ if (attr.size !== void 0) { MEMFS.resizeFileStorage(node, attr.size); } - }, lookup: function(parent, name) { + }, lookup(parent, name) { throw FS.genericErrors[44]; - }, mknod: function(parent, name, mode, dev) { + }, mknod(parent, name, mode, dev) { return MEMFS.createNode(parent, name, mode, dev); - }, rename: function(old_node, new_dir, new_name) { + }, rename(old_node, new_dir, new_name) { if (FS.isDir(old_node.mode)) { var new_node; try { @@ -15818,17 +36735,17 @@ var require_web_ifc = __commonJS({ new_dir.contents[new_name] = old_node; new_dir.timestamp = old_node.parent.timestamp; old_node.parent = new_dir; - }, unlink: function(parent, name) { + }, unlink(parent, name) { delete parent.contents[name]; parent.timestamp = Date.now(); - }, rmdir: function(parent, name) { + }, rmdir(parent, name) { var node = FS.lookupNode(parent, name); for (var i in node.contents) { throw new FS.ErrnoError(55); } delete parent.contents[name]; parent.timestamp = Date.now(); - }, readdir: function(node) { + }, readdir(node) { var entries = [".", ".."]; for (var key in node.contents) { if (!node.contents.hasOwnProperty(key)) { @@ -15837,16 +36754,16 @@ var require_web_ifc = __commonJS({ entries.push(key); } return entries; - }, symlink: function(parent, newname, oldpath) { + }, symlink(parent, newname, oldpath) { var node = MEMFS.createNode(parent, newname, 511 | 40960, 0); node.link = oldpath; return node; - }, readlink: function(node) { + }, readlink(node) { if (!FS.isLink(node.mode)) { throw new FS.ErrnoError(28); } return node.link; - } }, stream_ops: { read: function(stream, buffer, offset, length, position) { + } }, stream_ops: { read(stream, buffer, offset, length, position) { var contents = stream.node.contents; if (position >= stream.node.usedBytes) return 0; @@ -15858,7 +36775,7 @@ var require_web_ifc = __commonJS({ buffer[offset + i] = contents[position + i]; } return size; - }, write: function(stream, buffer, offset, length, position, canOwn) { + }, write(stream, buffer, offset, length, position, canOwn) { if (buffer.buffer === HEAP8.buffer) { canOwn = false; } @@ -15890,7 +36807,7 @@ var require_web_ifc = __commonJS({ } node.usedBytes = Math.max(node.usedBytes, position + length); return length; - }, llseek: function(stream, offset, whence) { + }, llseek(stream, offset, whence) { var position = offset; if (whence === 1) { position += stream.position; @@ -15903,10 +36820,10 @@ var require_web_ifc = __commonJS({ throw new FS.ErrnoError(28); } return position; - }, allocate: function(stream, offset, length) { + }, allocate(stream, offset, length) { MEMFS.expandFileStorage(stream.node, offset + length); stream.node.usedBytes = Math.max(stream.node.usedBytes, offset + length); - }, mmap: function(stream, length, position, prot, flags) { + }, mmap(stream, length, position, prot, flags) { if (!FS.isFile(stream.node.mode)) { throw new FS.ErrnoError(43); } @@ -15929,18 +36846,17 @@ var require_web_ifc = __commonJS({ if (!ptr) { throw new FS.ErrnoError(48); } - ptr >>>= 0; HEAP8.set(contents, ptr >>> 0); } return { ptr, allocated }; - }, msync: function(stream, buffer, offset, length, mmapFlags) { + }, msync(stream, buffer, offset, length, mmapFlags) { MEMFS.stream_ops.write(stream, buffer, 0, length, offset, false); return 0; } } }; - function asyncLoad(url, onload, onerror, noRunDep) { - var dep = !noRunDep ? getUniqueRunDependency("al " + url) : ""; + var asyncLoad = (url, onload, onerror, noRunDep) => { + var dep = !noRunDep ? getUniqueRunDependency(`al ${url}`) : ""; readAsync(url, (arrayBuffer) => { - assert(arrayBuffer, 'Loading data file "' + url + '" failed (no arrayBuffer).'); + assert(arrayBuffer, `Loading data file "${url}" failed (no arrayBuffer).`); onload(new Uint8Array(arrayBuffer)); if (dep) removeRunDependency(); @@ -15948,11 +36864,71 @@ var require_web_ifc = __commonJS({ if (onerror) { onerror(); } else { - throw 'Loading data file "' + url + '" failed.'; + throw `Loading data file "${url}" failed.`; } }); if (dep) addRunDependency(); + }; + var preloadPlugins = Module["preloadPlugins"] || []; + function FS_handledByPreloadPlugin(byteArray, fullname, finish, onerror) { + if (typeof Browser != "undefined") + Browser.init(); + var handled = false; + preloadPlugins.forEach(function(plugin) { + if (handled) + return; + if (plugin["canHandle"](fullname)) { + plugin["handle"](byteArray, fullname, finish, onerror); + handled = true; + } + }); + return handled; + } + function FS_createPreloadedFile(parent, name, url, canRead, canWrite, onload, onerror, dontCreateFile, canOwn, preFinish) { + var fullname = name ? PATH_FS.resolve(PATH.join2(parent, name)) : parent; + function processData(byteArray) { + function finish(byteArray2) { + if (preFinish) + preFinish(); + if (!dontCreateFile) { + FS.createDataFile(parent, name, byteArray2, canRead, canWrite, canOwn); + } + if (onload) + onload(); + removeRunDependency(); + } + if (FS_handledByPreloadPlugin(byteArray, fullname, finish, () => { + if (onerror) + onerror(); + removeRunDependency(); + })) { + return; + } + finish(byteArray); + } + addRunDependency(); + if (typeof url == "string") { + asyncLoad(url, (byteArray) => processData(byteArray), onerror); + } else { + processData(url); + } + } + function FS_modeStringToFlags(str) { + var flagModes = { "r": 0, "r+": 2, "w": 512 | 64 | 1, "w+": 512 | 64 | 2, "a": 1024 | 64 | 1, "a+": 1024 | 64 | 2 }; + var flags = flagModes[str]; + if (typeof flags == "undefined") { + throw new Error(`Unknown file open mode: ${str}`); + } + return flags; + } + function FS_getMode(canRead, canWrite) { + var mode = 0; + if (canRead) + mode |= 292 | 73; + if (canWrite) + mode |= 146; + return mode; } var FS = { root: null, mounts: [], devices: {}, streams: [], nextInode: 1, nameTable: null, currentPath: "/", initialized: false, ignorePermissions: true, ErrnoError: null, genericErrors: {}, filesystems: null, syncFSRequests: 0, lookupPath: (path, opts = {}) => { path = PATH_FS.resolve(path); @@ -15999,9 +36975,9 @@ var require_web_ifc = __commonJS({ var mount = node.mount.mountpoint; if (!path) return mount; - return mount[mount.length - 1] !== "/" ? mount + "/" + path : mount + path; + return mount[mount.length - 1] !== "/" ? `${mount}/${path}` : mount + path; } - path = path ? node.name + "/" + path : node.name; + path = path ? `${node.name}/${path}` : node.name; node = node.parent; } }, hashName: (parentid, name) => { @@ -16047,31 +37023,7 @@ var require_web_ifc = __commonJS({ return node; }, destroyNode: (node) => { FS.hashRemoveNode(node); - }, isRoot: (node) => { - return node === node.parent; - }, isMountpoint: (node) => { - return !!node.mounted; - }, isFile: (mode) => { - return (mode & 61440) === 32768; - }, isDir: (mode) => { - return (mode & 61440) === 16384; - }, isLink: (mode) => { - return (mode & 61440) === 40960; - }, isChrdev: (mode) => { - return (mode & 61440) === 8192; - }, isBlkdev: (mode) => { - return (mode & 61440) === 24576; - }, isFIFO: (mode) => { - return (mode & 61440) === 4096; - }, isSocket: (mode) => { - return (mode & 49152) === 49152; - }, flagModes: { "r": 0, "r+": 2, "w": 577, "w+": 578, "a": 1089, "a+": 1090 }, modeStringToFlags: (str) => { - var flags = FS.flagModes[str]; - if (typeof flags == "undefined") { - throw new Error("Unknown file open mode: " + str); - } - return flags; - }, flagsToPermissionString: (flag) => { + }, isRoot: (node) => node === node.parent, isMountpoint: (node) => !!node.mounted, isFile: (mode) => (mode & 61440) === 32768, isDir: (mode) => (mode & 61440) === 16384, isLink: (mode) => (mode & 61440) === 40960, isChrdev: (mode) => (mode & 61440) === 8192, isBlkdev: (mode) => (mode & 61440) === 24576, isFIFO: (mode) => (mode & 61440) === 4096, isSocket: (mode) => (mode & 49152) === 49152, flagsToPermissionString: (flag) => { var perms = ["r", "w", "rw"][flag & 3]; if (flag & 512) { perms += "w"; @@ -16139,41 +37091,49 @@ var require_web_ifc = __commonJS({ } } return FS.nodePermissions(node, FS.flagsToPermissionString(flags)); - }, MAX_OPEN_FDS: 4096, nextfd: (fd_start = 0, fd_end = FS.MAX_OPEN_FDS) => { - for (var fd = fd_start; fd <= fd_end; fd++) { + }, MAX_OPEN_FDS: 4096, nextfd: () => { + for (var fd = 0; fd <= FS.MAX_OPEN_FDS; fd++) { if (!FS.streams[fd]) { return fd; } } throw new FS.ErrnoError(33); - }, getStream: (fd) => FS.streams[fd], createStream: (stream, fd_start, fd_end) => { + }, getStreamChecked: (fd) => { + var stream = FS.getStream(fd); + if (!stream) { + throw new FS.ErrnoError(8); + } + return stream; + }, getStream: (fd) => FS.streams[fd], createStream: (stream, fd = -1) => { if (!FS.FSStream) { FS.FSStream = function() { this.shared = {}; }; FS.FSStream.prototype = {}; - Object.defineProperties(FS.FSStream.prototype, { object: { get: function() { + Object.defineProperties(FS.FSStream.prototype, { object: { get() { return this.node; - }, set: function(val) { + }, set(val) { this.node = val; - } }, isRead: { get: function() { + } }, isRead: { get() { return (this.flags & 2097155) !== 1; - } }, isWrite: { get: function() { + } }, isWrite: { get() { return (this.flags & 2097155) !== 0; - } }, isAppend: { get: function() { + } }, isAppend: { get() { return this.flags & 1024; - } }, flags: { get: function() { + } }, flags: { get() { return this.shared.flags; - }, set: function(val) { + }, set(val) { this.shared.flags = val; - } }, position: { get: function() { + } }, position: { get() { return this.shared.position; - }, set: function(val) { + }, set(val) { this.shared.position = val; } } }); } stream = Object.assign(new FS.FSStream(), stream); - var fd = FS.nextfd(fd_start, fd_end); + if (fd == -1) { + fd = FS.nextfd(); + } stream.fd = fd; FS.streams[fd] = stream; return stream; @@ -16205,7 +37165,7 @@ var require_web_ifc = __commonJS({ } FS.syncFSRequests++; if (FS.syncFSRequests > 1) { - err("warning: " + FS.syncFSRequests + " FS.syncfs operations in flight at once, probably just doing extra work"); + 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; @@ -16282,9 +37242,7 @@ var require_web_ifc = __commonJS({ node.mounted = null; var idx = node.mount.mounts.indexOf(mount); node.mount.mounts.splice(idx, 1); - }, lookup: (parent, name) => { - return parent.node_ops.lookup(parent, name); - }, mknod: (path, mode, dev) => { + }, lookup: (parent, name) => parent.node_ops.lookup(parent, name), mknod: (path, mode, dev) => { var lookup = FS.lookupPath(path, { parent: true }); var parent = lookup.node; var name = PATH.basename(path); @@ -16473,9 +37431,7 @@ var require_web_ifc = __commonJS({ throw new FS.ErrnoError(63); } return node.node_ops.getattr(node); - }, lstat: (path) => { - return FS.stat(path, true); - }, chmod: (path, mode, dontFollow) => { + }, lstat: (path) => FS.stat(path, true), chmod: (path, mode, dontFollow) => { var node; if (typeof path == "string") { var lookup = FS.lookupPath(path, { follow: !dontFollow }); @@ -16490,10 +37446,7 @@ var require_web_ifc = __commonJS({ }, lchmod: (path, mode) => { FS.chmod(path, mode, true); }, fchmod: (fd, mode) => { - var stream = FS.getStream(fd); - if (!stream) { - throw new FS.ErrnoError(8); - } + var stream = FS.getStreamChecked(fd); FS.chmod(stream.node, mode); }, chown: (path, uid, gid, dontFollow) => { var node; @@ -16510,10 +37463,7 @@ var require_web_ifc = __commonJS({ }, lchown: (path, uid, gid) => { FS.chown(path, uid, gid, true); }, fchown: (fd, uid, gid) => { - var stream = FS.getStream(fd); - if (!stream) { - throw new FS.ErrnoError(8); - } + var stream = FS.getStreamChecked(fd); FS.chown(stream.node, uid, gid); }, truncate: (path, len) => { if (len < 0) { @@ -16541,10 +37491,7 @@ var require_web_ifc = __commonJS({ } node.node_ops.setattr(node, { size: len, timestamp: Date.now() }); }, ftruncate: (fd, len) => { - var stream = FS.getStream(fd); - if (!stream) { - throw new FS.ErrnoError(8); - } + var stream = FS.getStreamChecked(fd); if ((stream.flags & 2097155) === 0) { throw new FS.ErrnoError(28); } @@ -16557,7 +37504,7 @@ var require_web_ifc = __commonJS({ if (path === "") { throw new FS.ErrnoError(44); } - flags = typeof flags == "string" ? FS.modeStringToFlags(flags) : flags; + flags = typeof flags == "string" ? FS_modeStringToFlags(flags) : flags; mode = typeof mode == "undefined" ? 438 : mode; if (flags & 64) { mode = mode & 4095 | 32768; @@ -16633,9 +37580,7 @@ var require_web_ifc = __commonJS({ FS.closeStream(stream.fd); } stream.fd = null; - }, isClosed: (stream) => { - return stream.fd === null; - }, llseek: (stream, offset, whence) => { + }, isClosed: (stream) => stream.fd === null, llseek: (stream, offset, whence) => { if (FS.isClosed(stream)) { throw new FS.ErrnoError(8); } @@ -16649,7 +37594,6 @@ var require_web_ifc = __commonJS({ stream.ungotten = []; return stream.position; }, read: (stream, buffer, offset, length, position) => { - offset >>>= 0; if (length < 0 || position < 0) { throw new FS.ErrnoError(28); } @@ -16676,7 +37620,6 @@ var require_web_ifc = __commonJS({ stream.position += bytesRead; return bytesRead; }, write: (stream, buffer, offset, length, position, canOwn) => { - offset >>>= 0; if (length < 0 || position < 0) { throw new FS.ErrnoError(28); } @@ -16734,7 +37677,6 @@ var require_web_ifc = __commonJS({ } return stream.stream_ops.mmap(stream, length, position, prot, flags); }, msync: (stream, buffer, offset, length, mmapFlags) => { - offset >>>= 0; if (!stream.stream_ops.msync) { return 0; } @@ -16748,7 +37690,7 @@ var require_web_ifc = __commonJS({ 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 + '"'); + throw new Error(`Invalid encoding type "${opts.encoding}"`); } var ret; var stream = FS.open(path, opts.flags); @@ -16801,9 +37743,15 @@ var require_web_ifc = __commonJS({ 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); + var randomBuffer = new Uint8Array(1024), randomLeft = 0; + var randomByte = () => { + if (randomLeft === 0) { + randomLeft = randomFill(randomBuffer).byteLength; + } + return randomBuffer[--randomLeft]; + }; + FS.createDevice("/dev", "random", randomByte); + FS.createDevice("/dev", "urandom", randomByte); FS.mkdir("/dev/shm"); FS.mkdir("/dev/shm/tmp"); }, createSpecialDirectories: () => { @@ -16814,9 +37762,7 @@ var require_web_ifc = __commonJS({ var node = FS.createNode(proc_self, "fd", 16384 | 511, 73); node.node_ops = { lookup: (parent, name) => { var fd = +name; - var stream = FS.getStream(fd); - if (!stream) - throw new FS.ErrnoError(8); + var stream = FS.getStreamChecked(fd); var ret = { parent: null, mount: { mountpoint: "fake" }, node_ops: { readlink: () => stream.path } }; ret.parent = ret; return ret; @@ -16846,6 +37792,7 @@ var require_web_ifc = __commonJS({ if (FS.ErrnoError) return; FS.ErrnoError = function ErrnoError(errno, node) { + this.name = "ErrnoError"; this.node = node; this.setErrno = function(errno2) { this.errno = errno2; @@ -16883,13 +37830,6 @@ var require_web_ifc = __commonJS({ } FS.close(stream); } - }, getMode: (canRead, canWrite) => { - var mode = 0; - if (canRead) - mode |= 292 | 73; - if (canWrite) - mode |= 146; - return mode; }, findObject: (path, dontResolveLastLink) => { var ret = FS.analyzePath(path, dontResolveLastLink); if (!ret.exists) { @@ -16936,7 +37876,7 @@ var require_web_ifc = __commonJS({ return current; }, createFile: (parent, name, properties, canRead, canWrite) => { var path = PATH.join2(typeof parent == "string" ? parent : FS.getPath(parent), name); - var mode = FS.getMode(canRead, canWrite); + var mode = FS_getMode(canRead, canWrite); return FS.create(path, mode); }, createDataFile: (parent, name, data, canRead, canWrite, canOwn) => { var path = name; @@ -16944,7 +37884,7 @@ var require_web_ifc = __commonJS({ parent = typeof parent == "string" ? parent : FS.getPath(parent); path = name ? PATH.join2(parent, name) : parent; } - var mode = FS.getMode(canRead, canWrite); + var mode = FS_getMode(canRead, canWrite); var node = FS.create(path, mode); if (data) { if (typeof data == "string") { @@ -16962,7 +37902,7 @@ var require_web_ifc = __commonJS({ return node; }, createDevice: (parent, name, input, output) => { var path = PATH.join2(typeof parent == "string" ? parent : FS.getPath(parent), name); - var mode = FS.getMode(!!input, !!output); + var mode = FS_getMode(!!input, !!output); if (!FS.createDevice.major) FS.createDevice.major = 64; var dev = FS.makedev(FS.createDevice.major++, 0); @@ -17151,125 +38091,6 @@ var require_web_ifc = __commonJS({ }; node.stream_ops = stream_ops; return node; - }, createPreloadedFile: (parent, name, url, canRead, canWrite, onload, onerror, dontCreateFile, canOwn, preFinish) => { - var fullname = name ? PATH_FS.resolve(PATH.join2(parent, name)) : parent; - function processData(byteArray) { - function finish(byteArray2) { - if (preFinish) - preFinish(); - if (!dontCreateFile) { - FS.createDataFile(parent, name, byteArray2, canRead, canWrite, canOwn); - } - if (onload) - onload(); - removeRunDependency(); - } - if (Browser.handledByPreloadPlugin(byteArray, fullname, finish, () => { - if (onerror) - onerror(); - removeRunDependency(); - })) { - return; - } - finish(byteArray); - } - addRunDependency(); - if (typeof url == "string") { - asyncLoad(url, (byteArray) => processData(byteArray), onerror); - } else { - processData(url); - } - }, indexedDB: () => { - return window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB; - }, DB_NAME: () => { - return "EM_FS_" + window.location.pathname; - }, DB_VERSION: 20, DB_STORE_NAME: "FILE_DATA", saveFilesToDB: (paths, onload = () => { - }, onerror = () => { - }) => { - var indexedDB = FS.indexedDB(); - try { - var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION); - } catch (e) { - return onerror(e); - } - openRequest.onupgradeneeded = () => { - out("creating db"); - var db = openRequest.result; - db.createObjectStore(FS.DB_STORE_NAME); - }; - 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((path) => { - var putRequest = files.put(FS.analyzePath(path).object.contents, path); - putRequest.onsuccess = () => { - ok++; - if (ok + fail == total) - finish(); - }; - putRequest.onerror = () => { - fail++; - if (ok + fail == total) - finish(); - }; - }); - transaction.onerror = onerror; - }; - openRequest.onerror = onerror; - }, loadFilesFromDB: (paths, onload = () => { - }, onerror = () => { - }) => { - 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 = () => { - 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((path) => { - var getRequest = files.get(path); - 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 = () => { - fail++; - if (ok + fail == total) - finish(); - }; - }); - transaction.onerror = onerror; - }; - openRequest.onerror = onerror; } }; var SYSCALLS = { DEFAULT_POLLMASK: 5, calculateAt: function(dirfd, path, allowEmpty) { if (PATH.isAbs(path)) { @@ -17299,25 +38120,24 @@ var require_web_ifc = __commonJS({ throw e; } HEAP32[buf >>> 2] = stat.dev; - HEAP32[buf + 8 >>> 2] = stat.ino; - HEAP32[buf + 12 >>> 2] = stat.mode; - HEAPU32[buf + 16 >>> 2] = stat.nlink; - HEAP32[buf + 20 >>> 2] = stat.uid; - HEAP32[buf + 24 >>> 2] = stat.gid; - HEAP32[buf + 28 >>> 2] = stat.rdev; - 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 + 4 >>> 2] = stat.mode; + HEAPU32[buf + 8 >>> 2] = stat.nlink; + HEAP32[buf + 12 >>> 2] = stat.uid; + HEAP32[buf + 16 >>> 2] = stat.gid; + HEAP32[buf + 20 >>> 2] = stat.rdev; + tempI64 = [stat.size >>> 0, (tempDouble = stat.size, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? +Math.floor(tempDouble / 4294967296) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[buf + 24 >>> 2] = tempI64[0], HEAP32[buf + 28 >>> 2] = tempI64[1]; + HEAP32[buf + 32 >>> 2] = 4096; + HEAP32[buf + 36 >>> 2] = stat.blocks; var atime = stat.atime.getTime(); var mtime = stat.mtime.getTime(); var ctime = stat.ctime.getTime(); - tempI64 = [Math.floor(atime / 1e3) >>> 0, (tempDouble = Math.floor(atime / 1e3), +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[buf + 56 >>> 2] = tempI64[0], HEAP32[buf + 60 >>> 2] = tempI64[1]; - HEAPU32[buf + 64 >>> 2] = atime % 1e3 * 1e3; - tempI64 = [Math.floor(mtime / 1e3) >>> 0, (tempDouble = Math.floor(mtime / 1e3), +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 + 72 >>> 2] = tempI64[0], HEAP32[buf + 76 >>> 2] = tempI64[1]; - HEAPU32[buf + 80 >>> 2] = mtime % 1e3 * 1e3; - tempI64 = [Math.floor(ctime / 1e3) >>> 0, (tempDouble = Math.floor(ctime / 1e3), +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 + 88 >>> 2] = tempI64[0], HEAP32[buf + 92 >>> 2] = tempI64[1]; - HEAPU32[buf + 96 >>> 2] = ctime % 1e3 * 1e3; - 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 + 104 >>> 2] = tempI64[0], HEAP32[buf + 108 >>> 2] = tempI64[1]; + tempI64 = [Math.floor(atime / 1e3) >>> 0, (tempDouble = Math.floor(atime / 1e3), +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? +Math.floor(tempDouble / 4294967296) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[buf + 40 >>> 2] = tempI64[0], HEAP32[buf + 44 >>> 2] = tempI64[1]; + HEAPU32[buf + 48 >>> 2] = atime % 1e3 * 1e3; + tempI64 = [Math.floor(mtime / 1e3) >>> 0, (tempDouble = Math.floor(mtime / 1e3), +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? +Math.floor(tempDouble / 4294967296) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[buf + 56 >>> 2] = tempI64[0], HEAP32[buf + 60 >>> 2] = tempI64[1]; + HEAPU32[buf + 64 >>> 2] = mtime % 1e3 * 1e3; + tempI64 = [Math.floor(ctime / 1e3) >>> 0, (tempDouble = Math.floor(ctime / 1e3), +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? +Math.floor(tempDouble / 4294967296) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[buf + 72 >>> 2] = tempI64[0], HEAP32[buf + 76 >>> 2] = tempI64[1]; + HEAPU32[buf + 80 >>> 2] = ctime % 1e3 * 1e3; + tempI64 = [stat.ino >>> 0, (tempDouble = stat.ino, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? +Math.floor(tempDouble / 4294967296) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[buf + 88 >>> 2] = tempI64[0], HEAP32[buf + 92 >>> 2] = tempI64[1]; return 0; }, doMsync: function(addr, stream, len, flags, offset) { if (!FS.isFile(stream.node.mode)) { @@ -17326,33 +38146,34 @@ var require_web_ifc = __commonJS({ if (flags & 2) { return 0; } - addr >>>= 0; var buffer = HEAPU8.slice(addr, addr + len); FS.msync(stream, buffer, offset, len, flags); - }, varargs: void 0, get: function() { + }, varargs: void 0, get() { SYSCALLS.varargs += 4; var ret = HEAP32[SYSCALLS.varargs - 4 >>> 2]; return ret; - }, getStr: function(ptr) { + }, getStr(ptr) { var ret = UTF8ToString(ptr); return ret; }, getStreamFromFD: function(fd) { - var stream = FS.getStream(fd); - if (!stream) - throw new FS.ErrnoError(8); + var stream = FS.getStreamChecked(fd); return stream; } }; function _environ_get(__environ, environ_buf) { + __environ >>>= 0; + environ_buf >>>= 0; var bufSize = 0; getEnvStrings().forEach(function(string, i) { var ptr = environ_buf + bufSize; HEAPU32[__environ + i * 4 >>> 2] = ptr; - writeAsciiToMemory(string, ptr); + stringToAscii(string, ptr); bufSize += string.length + 1; }); return 0; } function _environ_sizes_get(penviron_count, penviron_buf_size) { + penviron_count >>>= 0; + penviron_buf_size >>>= 0; var strings = getEnvStrings(); HEAPU32[penviron_count >>> 2] = strings.length; var bufSize = 0; @@ -17368,12 +38189,12 @@ var require_web_ifc = __commonJS({ FS.close(stream); return 0; } catch (e) { - if (typeof FS == "undefined" || !(e instanceof FS.ErrnoError)) + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; return e.errno; } } - function doReadv(stream, iov, iovcnt, offset) { + var doReadv = (stream, iov, iovcnt, offset) => { var ret = 0; for (var i = 0; i < iovcnt; i++) { var ptr = HEAPU32[iov >>> 2]; @@ -17390,40 +38211,41 @@ var require_web_ifc = __commonJS({ } } return ret; - } + }; function _fd_read(fd, iov, iovcnt, pnum) { + iov >>>= 0; + iovcnt >>>= 0; + pnum >>>= 0; try { var stream = SYSCALLS.getStreamFromFD(fd); var num = doReadv(stream, iov, iovcnt); HEAPU32[pnum >>> 2] = num; return 0; } catch (e) { - if (typeof FS == "undefined" || !(e instanceof FS.ErrnoError)) + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; return e.errno; } } - function convertI32PairToI53Checked(lo, hi) { - return hi + 2097152 >>> 0 < 4194305 - !!lo ? (lo >>> 0) + hi * 4294967296 : NaN; - } function _fd_seek(fd, offset_low, offset_high, whence, newOffset) { + var offset = convertI32PairToI53Checked(offset_low, offset_high); + newOffset >>>= 0; try { - var offset = convertI32PairToI53Checked(offset_low, offset_high); if (isNaN(offset)) return 61; var stream = SYSCALLS.getStreamFromFD(fd); FS.llseek(stream, offset, whence); - tempI64 = [stream.position >>> 0, (tempDouble = stream.position, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.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]; + tempI64 = [stream.position >>> 0, (tempDouble = stream.position, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? +Math.floor(tempDouble / 4294967296) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[newOffset >>> 2] = tempI64[0], HEAP32[newOffset + 4 >>> 2] = tempI64[1]; if (stream.getdents && offset === 0 && whence === 0) stream.getdents = null; return 0; } catch (e) { - if (typeof FS == "undefined" || !(e instanceof FS.ErrnoError)) + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; return e.errno; } } - function doWritev(stream, iov, iovcnt, offset) { + var doWritev = (stream, iov, iovcnt, offset) => { var ret = 0; for (var i = 0; i < iovcnt; i++) { var ptr = HEAPU32[iov >>> 2]; @@ -17438,36 +38260,37 @@ var require_web_ifc = __commonJS({ } } return ret; - } + }; function _fd_write(fd, iov, iovcnt, pnum) { + iov >>>= 0; + iovcnt >>>= 0; + pnum >>>= 0; try { var stream = SYSCALLS.getStreamFromFD(fd); var num = doWritev(stream, iov, iovcnt); HEAPU32[pnum >>> 2] = num; return 0; } catch (e) { - if (typeof FS == "undefined" || !(e instanceof FS.ErrnoError)) + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; return e.errno; } } - function __isLeapYear(year) { - return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0); - } - function __arraySum(array, index) { + var isLeapYear = (year) => year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0); + var arraySum = (array, index) => { var sum = 0; for (var i = 0; i <= index; sum += array[i++]) { } return sum; - } - var __MONTH_DAYS_LEAP = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; - var __MONTH_DAYS_REGULAR = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; - function __addDays(date, days) { + }; + var MONTH_DAYS_LEAP = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; + var MONTH_DAYS_REGULAR = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; + var addDays = (date, days) => { var newDate = new Date(date.getTime()); while (days > 0) { - var leap = __isLeapYear(newDate.getFullYear()); + var leap = isLeapYear(newDate.getFullYear()); var currentMonth = newDate.getMonth(); - var daysInCurrentMonth = (leap ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR)[currentMonth]; + var daysInCurrentMonth = (leap ? MONTH_DAYS_LEAP : MONTH_DAYS_REGULAR)[currentMonth]; if (days > daysInCurrentMonth - newDate.getDate()) { days -= daysInCurrentMonth - newDate.getDate() + 1; newDate.setDate(1); @@ -17483,11 +38306,15 @@ var require_web_ifc = __commonJS({ } } return newDate; - } - function writeArrayToMemory(array, buffer) { + }; + var writeArrayToMemory = (array, buffer) => { HEAP8.set(array, buffer >>> 0); - } + }; function _strftime(s, maxsize, format, tm) { + s >>>= 0; + maxsize >>>= 0; + format >>>= 0; + tm >>>= 0; var tm_zone = HEAP32[tm + 40 >>> 2]; var date = { tm_sec: HEAP32[tm >>> 2], tm_min: HEAP32[tm + 4 >>> 2], tm_hour: HEAP32[tm + 8 >>> 2], tm_mday: HEAP32[tm + 12 >>> 2], tm_mon: HEAP32[tm + 16 >>> 2], tm_year: HEAP32[tm + 20 >>> 2], tm_wday: HEAP32[tm + 24 >>> 2], tm_yday: HEAP32[tm + 28 >>> 2], tm_isdst: HEAP32[tm + 32 >>> 2], tm_gmtoff: HEAP32[tm + 36 >>> 2], tm_zone: tm_zone ? UTF8ToString(tm_zone) : "" }; var pattern = UTF8ToString(format); @@ -17538,7 +38365,7 @@ var require_web_ifc = __commonJS({ } } function getWeekBasedYear(date2) { - var thisDate = __addDays(new Date(date2.tm_year + 1900, 0, 1), date2.tm_yday); + 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); @@ -17551,57 +38378,25 @@ var require_web_ifc = __commonJS({ } return thisDate.getFullYear() - 1; } - var EXPANSION_RULES_2 = { "%a": function(date2) { - return WEEKDAYS[date2.tm_wday].substring(0, 3); - }, "%A": function(date2) { - return WEEKDAYS[date2.tm_wday]; - }, "%b": function(date2) { - return MONTHS[date2.tm_mon].substring(0, 3); - }, "%B": function(date2) { - return MONTHS[date2.tm_mon]; - }, "%C": function(date2) { + var EXPANSION_RULES_2 = { "%a": (date2) => WEEKDAYS[date2.tm_wday].substring(0, 3), "%A": (date2) => WEEKDAYS[date2.tm_wday], "%b": (date2) => MONTHS[date2.tm_mon].substring(0, 3), "%B": (date2) => MONTHS[date2.tm_mon], "%C": (date2) => { var year = date2.tm_year + 1900; return leadingNulls(year / 100 | 0, 2); - }, "%d": function(date2) { - return leadingNulls(date2.tm_mday, 2); - }, "%e": function(date2) { - return leadingSomething(date2.tm_mday, 2, " "); - }, "%g": function(date2) { - return getWeekBasedYear(date2).toString().substring(2); - }, "%G": function(date2) { - return getWeekBasedYear(date2); - }, "%H": function(date2) { - return leadingNulls(date2.tm_hour, 2); - }, "%I": function(date2) { + }, "%d": (date2) => leadingNulls(date2.tm_mday, 2), "%e": (date2) => leadingSomething(date2.tm_mday, 2, " "), "%g": (date2) => getWeekBasedYear(date2).toString().substring(2), "%G": (date2) => getWeekBasedYear(date2), "%H": (date2) => leadingNulls(date2.tm_hour, 2), "%I": (date2) => { var twelveHour = date2.tm_hour; if (twelveHour == 0) twelveHour = 12; else if (twelveHour > 12) twelveHour -= 12; return leadingNulls(twelveHour, 2); - }, "%j": function(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(date2) { - return leadingNulls(date2.tm_mon + 1, 2); - }, "%M": function(date2) { - return leadingNulls(date2.tm_min, 2); - }, "%n": function() { - return "\n"; - }, "%p": function(date2) { + }, "%j": (date2) => leadingNulls(date2.tm_mday + arraySum(isLeapYear(date2.tm_year + 1900) ? MONTH_DAYS_LEAP : MONTH_DAYS_REGULAR, date2.tm_mon - 1), 3), "%m": (date2) => leadingNulls(date2.tm_mon + 1, 2), "%M": (date2) => leadingNulls(date2.tm_min, 2), "%n": () => "\n", "%p": (date2) => { if (date2.tm_hour >= 0 && date2.tm_hour < 12) { return "AM"; } return "PM"; - }, "%S": function(date2) { - return leadingNulls(date2.tm_sec, 2); - }, "%t": function() { - return " "; - }, "%u": function(date2) { - return date2.tm_wday || 7; - }, "%U": function(date2) { + }, "%S": (date2) => leadingNulls(date2.tm_sec, 2), "%t": () => " ", "%u": (date2) => date2.tm_wday || 7, "%U": (date2) => { var days = date2.tm_yday + 7 - date2.tm_wday; return leadingNulls(Math.floor(days / 7), 2); - }, "%V": function(date2) { + }, "%V": (date2) => { var val = Math.floor((date2.tm_yday + 7 - (date2.tm_wday + 6) % 7) / 7); if ((date2.tm_wday + 371 - date2.tm_yday - 2) % 7 <= 2) { val++; @@ -17609,35 +38404,25 @@ var require_web_ifc = __commonJS({ if (!val) { val = 52; var dec31 = (date2.tm_wday + 7 - date2.tm_yday - 1) % 7; - if (dec31 == 4 || dec31 == 5 && __isLeapYear(date2.tm_year % 400 - 1)) { + if (dec31 == 4 || dec31 == 5 && isLeapYear(date2.tm_year % 400 - 1)) { val++; } } else if (val == 53) { var jan1 = (date2.tm_wday + 371 - date2.tm_yday) % 7; - if (jan1 != 4 && (jan1 != 3 || !__isLeapYear(date2.tm_year))) + if (jan1 != 4 && (jan1 != 3 || !isLeapYear(date2.tm_year))) val = 1; } return leadingNulls(val, 2); - }, "%w": function(date2) { - return date2.tm_wday; - }, "%W": function(date2) { + }, "%w": (date2) => date2.tm_wday, "%W": (date2) => { var days = date2.tm_yday + 7 - (date2.tm_wday + 6) % 7; return leadingNulls(Math.floor(days / 7), 2); - }, "%y": function(date2) { - return (date2.tm_year + 1900).toString().substring(2); - }, "%Y": function(date2) { - return date2.tm_year + 1900; - }, "%z": function(date2) { + }, "%y": (date2) => (date2.tm_year + 1900).toString().substring(2), "%Y": (date2) => date2.tm_year + 1900, "%z": (date2) => { var off = date2.tm_gmtoff; var ahead = off >= 0; off = Math.abs(off) / 60; off = off / 60 * 100 + off % 60; return (ahead ? "+" : "-") + String("0000" + off).slice(-4); - }, "%Z": function(date2) { - return date2.tm_zone; - }, "%%": function() { - return "%"; - } }; + }, "%Z": (date2) => date2.tm_zone, "%%": () => "%" }; pattern = pattern.replace(/%%/g, "\0\0"); for (var rule in EXPANSION_RULES_2) { if (pattern.includes(rule)) { @@ -17653,15 +38438,30 @@ var require_web_ifc = __commonJS({ return bytes.length - 1; } function _strftime_l(s, maxsize, format, tm, loc) { + s >>>= 0; + maxsize >>>= 0; + format >>>= 0; + tm >>>= 0; return _strftime(s, maxsize, format, tm); } - InternalError = Module["InternalError"] = extendError(Error, "InternalError"); + InternalError = Module["InternalError"] = class InternalError extends Error { + constructor(message) { + super(message); + this.name = "InternalError"; + } + }; embind_init_charCodes(); - BindingError = Module["BindingError"] = extendError(Error, "BindingError"); + BindingError = Module["BindingError"] = class BindingError extends Error { + constructor(message) { + super(message); + this.name = "BindingError"; + } + }; init_ClassHandle(); init_embind(); init_RegisteredPointer(); UnboundTypeError = Module["UnboundTypeError"] = extendError(Error, "UnboundTypeError"); + handleAllocatorInit(); init_emval(); var FSNode = function(parent, name, mode, rdev) { if (!parent) { @@ -17693,39 +38493,31 @@ var require_web_ifc = __commonJS({ return FS.isChrdev(this.mode); } } }); FS.FSNode = FSNode; - FS.staticInit(); - var wasmImports = { "g": ___cxa_throw, "S": __embind_finalize_value_array, "q": __embind_finalize_value_object, "G": __embind_register_bigint, "Q": __embind_register_bool, "p": __embind_register_class, "o": __embind_register_class_constructor, "b": __embind_register_class_function, "P": __embind_register_emval, "C": __embind_register_enum, "t": __embind_register_enum_value, "A": __embind_register_float, "c": __embind_register_function, "s": __embind_register_integer, "i": __embind_register_memory_view, "B": __embind_register_std_string, "w": __embind_register_std_wstring, "T": __embind_register_value_array, "l": __embind_register_value_array_element, "r": __embind_register_value_object, "e": __embind_register_value_object_field, "R": __embind_register_void, "k": __emval_as, "v": __emval_call, "a": __emval_decref, "y": __emval_get_global, "h": __emval_get_property, "n": __emval_incref, "E": __emval_instanceof, "x": __emval_is_number, "D": __emval_is_string, "U": __emval_new_array, "f": __emval_new_cstring, "u": __emval_new_object, "j": __emval_run_destructors, "m": __emval_set_property, "d": __emval_take_value, "z": _abort, "O": _emscripten_memcpy_big, "M": _emscripten_resize_heap, "I": _environ_get, "J": _environ_sizes_get, "K": _fd_close, "L": _fd_read, "F": _fd_seek, "N": _fd_write, "H": _strftime_l }; - createWasm(); - var _malloc = function() { - return (_malloc = Module["asm"]["Y"]).apply(null, arguments); - }; - var ___getTypeName = Module["___getTypeName"] = function() { - return (___getTypeName = Module["___getTypeName"] = Module["asm"]["Z"]).apply(null, arguments); - }; - Module["__embind_initialize_bindings"] = function() { - return (Module["__embind_initialize_bindings"] = Module["asm"]["_"]).apply(null, arguments); - }; - var _free = function() { - return (_free = Module["asm"]["$"]).apply(null, arguments); - }; - var ___cxa_is_pointer_type = function() { - return (___cxa_is_pointer_type = Module["asm"]["aa"]).apply(null, arguments); - }; - Module["dynCall_jiji"] = function() { - return (Module["dynCall_jiji"] = Module["asm"]["ba"]).apply(null, arguments); - }; - Module["dynCall_viijii"] = function() { - return (Module["dynCall_viijii"] = Module["asm"]["ca"]).apply(null, arguments); - }; - Module["dynCall_iiiiij"] = function() { - return (Module["dynCall_iiiiij"] = Module["asm"]["da"]).apply(null, arguments); - }; - Module["dynCall_iiiiijj"] = function() { - return (Module["dynCall_iiiiijj"] = Module["asm"]["ea"]).apply(null, arguments); - }; - Module["dynCall_iiiiiijj"] = function() { - return (Module["dynCall_iiiiiijj"] = Module["asm"]["fa"]).apply(null, arguments); - }; + FS.createPreloadedFile = FS_createPreloadedFile; + FS.staticInit(); + var wasmImports = { g: ___cxa_throw, S: __embind_finalize_value_array, q: __embind_finalize_value_object, G: __embind_register_bigint, Q: __embind_register_bool, p: __embind_register_class, o: __embind_register_class_constructor, b: __embind_register_class_function, P: __embind_register_emval, C: __embind_register_enum, t: __embind_register_enum_value, A: __embind_register_float, c: __embind_register_function, s: __embind_register_integer, k: __embind_register_memory_view, B: __embind_register_std_string, x: __embind_register_std_wstring, T: __embind_register_value_array, l: __embind_register_value_array_element, r: __embind_register_value_object, e: __embind_register_value_object_field, R: __embind_register_void, j: __emval_as, v: __emval_call, a: __emval_decref, z: __emval_get_global, h: __emval_get_property, n: __emval_incref, E: __emval_instanceof, y: __emval_is_number, D: __emval_is_string, U: __emval_new_array, f: __emval_new_cstring, u: __emval_new_object, i: __emval_run_destructors, m: __emval_set_property, d: __emval_take_value, w: _abort, O: _emscripten_memcpy_big, M: _emscripten_resize_heap, I: _environ_get, J: _environ_sizes_get, K: _fd_close, L: _fd_read, F: _fd_seek, N: _fd_write, H: _strftime_l }; + createWasm(); + var _malloc = (a0) => (_malloc = wasmExports["Y"])(a0); + var ___getTypeName = (a0) => (___getTypeName = wasmExports["Z"])(a0); + Module["__embind_initialize_bindings"] = () => (Module["__embind_initialize_bindings"] = wasmExports["_"])(); + var _free = (a0) => (_free = wasmExports["$"])(a0); + var ___cxa_is_pointer_type = (a0) => (___cxa_is_pointer_type = wasmExports["aa"])(a0); + Module["dynCall_jiji"] = (a0, a1, a2, a3, a4) => (Module["dynCall_jiji"] = wasmExports["ba"])(a0, a1, a2, a3, a4); + Module["dynCall_viijii"] = (a0, a1, a2, a3, a4, a5, a6) => (Module["dynCall_viijii"] = wasmExports["ca"])(a0, a1, a2, a3, a4, a5, a6); + Module["dynCall_iiiiij"] = (a0, a1, a2, a3, a4, a5, a6) => (Module["dynCall_iiiiij"] = wasmExports["da"])(a0, a1, a2, a3, a4, a5, a6); + Module["dynCall_iiiiijj"] = (a0, a1, a2, a3, a4, a5, a6, a7, a8) => (Module["dynCall_iiiiijj"] = wasmExports["ea"])(a0, a1, a2, a3, a4, a5, a6, a7, a8); + Module["dynCall_iiiiiijj"] = (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) => (Module["dynCall_iiiiiijj"] = wasmExports["fa"])(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9); + function applySignatureConversions(exports2) { + exports2 = Object.assign({}, exports2); + var makeWrapper_pp = (f) => (a0) => f(a0) >>> 0; + var makeWrapper_p = (f) => () => f() >>> 0; + exports2["malloc"] = makeWrapper_pp(exports2["malloc"]); + exports2["__getTypeName"] = makeWrapper_pp(exports2["__getTypeName"]); + exports2["__errno_location"] = makeWrapper_p(exports2["__errno_location"]); + exports2["stackSave"] = makeWrapper_p(exports2["stackSave"]); + exports2["stackAlloc"] = makeWrapper_pp(exports2["stackAlloc"]); + return exports2; + } var calledRun; dependenciesFulfilled = function runCaller() { if (!calledRun) @@ -17774,17308 +38566,33446 @@ var require_web_ifc = __commonJS({ } } run(); - return WebIFCWasm3.ready; + return moduleArg.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; + define([], () => WebIFCWasm2); + } +}); + +// dist/ifc-schema.ts +var IFCURIREFERENCE = 950732822; +var IFCTIME = 4075327185; +var IFCTEMPERATURERATEOFCHANGEMEASURE = 1209108979; +var IFCSOUNDPRESSURELEVELMEASURE = 3457685358; +var IFCSOUNDPOWERLEVELMEASURE = 4157543285; +var IFCPROPERTYSETDEFINITIONSET = 2798247006; +var IFCPOSITIVEINTEGER = 1790229001; +var IFCNONNEGATIVELENGTHMEASURE = 525895558; +var IFCLINEINDEX = 1774176899; +var IFCLANGUAGEID = 1275358634; +var IFCDURATION = 2541165894; +var IFCDAYINWEEKNUMBER = 3701338814; +var IFCDATETIME = 2195413836; +var IFCDATE = 937566702; +var IFCCARDINALPOINTREFERENCE = 1683019596; +var IFCBINARY = 2314439260; +var IFCAREADENSITYMEASURE = 1500781891; +var IFCARCINDEX = 3683503648; +var IFCYEARNUMBER = 4065007721; +var IFCWARPINGMOMENTMEASURE = 1718600412; +var IFCWARPINGCONSTANTMEASURE = 51269191; +var IFCVOLUMETRICFLOWRATEMEASURE = 2593997549; +var IFCVOLUMEMEASURE = 3458127941; +var IFCVAPORPERMEABILITYMEASURE = 3345633955; +var IFCTORQUEMEASURE = 1278329552; +var IFCTIMESTAMP = 2591213694; +var IFCTIMEMEASURE = 2726807636; +var IFCTHERMODYNAMICTEMPERATUREMEASURE = 743184107; +var IFCTHERMALTRANSMITTANCEMEASURE = 2016195849; +var IFCTHERMALRESISTANCEMEASURE = 857959152; +var IFCTHERMALEXPANSIONCOEFFICIENTMEASURE = 2281867870; +var IFCTHERMALCONDUCTIVITYMEASURE = 2645777649; +var IFCTHERMALADMITTANCEMEASURE = 232962298; +var IFCTEXTTRANSFORMATION = 296282323; +var IFCTEXTFONTNAME = 603696268; +var IFCTEXTDECORATION = 3490877962; +var IFCTEXTALIGNMENT = 1460886941; +var IFCTEXT = 2801250643; +var IFCTEMPERATUREGRADIENTMEASURE = 58845555; +var IFCSPECULARROUGHNESS = 361837227; +var IFCSPECULAREXPONENT = 2757832317; +var IFCSPECIFICHEATCAPACITYMEASURE = 3477203348; +var IFCSOUNDPRESSUREMEASURE = 993287707; +var IFCSOUNDPOWERMEASURE = 846465480; +var IFCSOLIDANGLEMEASURE = 3471399674; +var IFCSHEARMODULUSMEASURE = 408310005; +var IFCSECTIONALAREAINTEGRALMEASURE = 2190458107; +var IFCSECTIONMODULUSMEASURE = 3467162246; +var IFCSECONDINMINUTE = 2766185779; +var IFCROTATIONALSTIFFNESSMEASURE = 3211557302; +var IFCROTATIONALMASSMEASURE = 1755127002; +var IFCROTATIONALFREQUENCYMEASURE = 2133746277; +var IFCREAL = 200335297; +var IFCRATIOMEASURE = 96294661; +var IFCRADIOACTIVITYMEASURE = 3972513137; +var IFCPRESSUREMEASURE = 3665567075; +var IFCPRESENTABLETEXT = 2169031380; +var IFCPOWERMEASURE = 1364037233; +var IFCPOSITIVERATIOMEASURE = 1245737093; +var IFCPOSITIVEPLANEANGLEMEASURE = 3054510233; +var IFCPOSITIVELENGTHMEASURE = 2815919920; +var IFCPLANEANGLEMEASURE = 4042175685; +var IFCPLANARFORCEMEASURE = 2642773653; +var IFCPARAMETERVALUE = 2260317790; +var IFCPHMEASURE = 929793134; +var IFCNUMERICMEASURE = 2395907400; +var IFCNORMALISEDRATIOMEASURE = 2095195183; +var IFCMONTHINYEARNUMBER = 765770214; +var IFCMONETARYMEASURE = 2615040989; +var IFCMOMENTOFINERTIAMEASURE = 3114022597; +var IFCMOLECULARWEIGHTMEASURE = 1648970520; +var IFCMOISTUREDIFFUSIVITYMEASURE = 3177669450; +var IFCMODULUSOFSUBGRADEREACTIONMEASURE = 1753493141; +var IFCMODULUSOFROTATIONALSUBGRADEREACTIONMEASURE = 1052454078; +var IFCMODULUSOFLINEARSUBGRADEREACTIONMEASURE = 2173214787; +var IFCMODULUSOFELASTICITYMEASURE = 3341486342; +var IFCMINUTEINHOUR = 102610177; +var IFCMASSPERLENGTHMEASURE = 3531705166; +var IFCMASSMEASURE = 3124614049; +var IFCMASSFLOWRATEMEASURE = 4017473158; +var IFCMASSDENSITYMEASURE = 1477762836; +var IFCMAGNETICFLUXMEASURE = 2486716878; +var IFCMAGNETICFLUXDENSITYMEASURE = 286949696; +var IFCLUMINOUSINTENSITYMEASURE = 151039812; +var IFCLUMINOUSINTENSITYDISTRIBUTIONMEASURE = 2755797622; +var IFCLUMINOUSFLUXMEASURE = 2095003142; +var IFCLOGICAL = 503418787; +var IFCLINEARVELOCITYMEASURE = 3086160713; +var IFCLINEARSTIFFNESSMEASURE = 1307019551; +var IFCLINEARMOMENTMEASURE = 2128979029; +var IFCLINEARFORCEMEASURE = 191860431; +var IFCLENGTHMEASURE = 1243674935; +var IFCLABEL = 3258342251; +var IFCKINEMATICVISCOSITYMEASURE = 2054016361; +var IFCISOTHERMALMOISTURECAPACITYMEASURE = 3192672207; +var IFCIONCONCENTRATIONMEASURE = 3686016028; +var IFCINTEGERCOUNTRATEMEASURE = 3809634241; +var IFCINTEGER = 1939436016; +var IFCINDUCTANCEMEASURE = 2679005408; +var IFCILLUMINANCEMEASURE = 3358199106; +var IFCIDENTIFIER = 983778844; +var IFCHOURINDAY = 2589826445; +var IFCHEATINGVALUEMEASURE = 1158859006; +var IFCHEATFLUXDENSITYMEASURE = 3113092358; +var IFCGLOBALLYUNIQUEID = 3064340077; +var IFCFREQUENCYMEASURE = 3044325142; +var IFCFORCEMEASURE = 1361398929; +var IFCFONTWEIGHT = 2590844177; +var IFCFONTVARIANT = 2715512545; +var IFCFONTSTYLE = 1102727119; +var IFCENERGYMEASURE = 2078135608; +var IFCELECTRICVOLTAGEMEASURE = 2506197118; +var IFCELECTRICRESISTANCEMEASURE = 2951915441; +var IFCELECTRICCURRENTMEASURE = 3790457270; +var IFCELECTRICCONDUCTANCEMEASURE = 2093906313; +var IFCELECTRICCHARGEMEASURE = 3818826038; +var IFCELECTRICCAPACITANCEMEASURE = 1827137117; +var IFCDYNAMICVISCOSITYMEASURE = 69416015; +var IFCDOSEEQUIVALENTMEASURE = 524656162; +var IFCDIMENSIONCOUNT = 4134073009; +var IFCDESCRIPTIVEMEASURE = 1514641115; +var IFCDAYLIGHTSAVINGHOUR = 300323983; +var IFCDAYINMONTHNUMBER = 86635668; +var IFCCURVATUREMEASURE = 94842927; +var IFCCOUNTMEASURE = 1778710042; +var IFCCONTEXTDEPENDENTMEASURE = 3238673880; +var IFCCOMPOUNDPLANEANGLEMEASURE = 3812528620; +var IFCCOMPLEXNUMBER = 2991860651; +var IFCBOXALIGNMENT = 1867003952; +var IFCBOOLEAN = 2735952531; +var IFCAREAMEASURE = 2650437152; +var IFCANGULARVELOCITYMEASURE = 632304761; +var IFCAMOUNTOFSUBSTANCEMEASURE = 360377573; +var IFCACCELERATIONMEASURE = 4182062534; +var IFCABSORBEDDOSEMEASURE = 3699917729; +var IFCGEOSLICE = 1971632696; +var IFCGEOMODEL = 2680139844; +var IFCELECTRICFLOWTREATMENTDEVICE = 24726584; +var IFCDISTRIBUTIONBOARD = 3693000487; +var IFCCONVEYORSEGMENT = 3460952963; +var IFCCAISSONFOUNDATION = 3999819293; +var IFCBOREHOLE = 3314249567; +var IFCBEARING = 4196446775; +var IFCALIGNMENT = 325726236; +var IFCTRACKELEMENT = 3425753595; +var IFCSIGNAL = 991950508; +var IFCREINFORCEDSOIL = 3798194928; +var IFCRAIL = 3290496277; +var IFCPAVEMENT = 1383356374; +var IFCNAVIGATIONELEMENT = 2182337498; +var IFCMOORINGDEVICE = 234836483; +var IFCMOBILETELECOMMUNICATIONSAPPLIANCE = 2078563270; +var IFCLIQUIDTERMINAL = 1638804497; +var IFCLINEARPOSITIONINGELEMENT = 1154579445; +var IFCKERB = 2696325953; +var IFCGEOTECHNICALASSEMBLY = 2713699986; +var IFCELECTRICFLOWTREATMENTDEVICETYPE = 2142170206; +var IFCEARTHWORKSFILL = 3376911765; +var IFCEARTHWORKSELEMENT = 1077100507; +var IFCEARTHWORKSCUT = 3071239417; +var IFCDISTRIBUTIONBOARDTYPE = 479945903; +var IFCDEEPFOUNDATION = 3426335179; +var IFCCOURSE = 1502416096; +var IFCCONVEYORSEGMENTTYPE = 2940368186; +var IFCCAISSONFOUNDATIONTYPE = 3203706013; +var IFCBUILTSYSTEM = 3862327254; +var IFCBUILTELEMENT = 1876633798; +var IFCBRIDGEPART = 963979645; +var IFCBRIDGE = 644574406; +var IFCBEARINGTYPE = 3649138523; +var IFCALIGNMENTVERTICAL = 1662888072; +var IFCALIGNMENTSEGMENT = 317615605; +var IFCALIGNMENTHORIZONTAL = 1545765605; +var IFCALIGNMENTCANT = 4266260250; +var IFCVIBRATIONDAMPERTYPE = 3956297820; +var IFCVIBRATIONDAMPER = 1530820697; +var IFCVEHICLE = 840318589; +var IFCTRANSPORTATIONDEVICE = 1953115116; +var IFCTRACKELEMENTTYPE = 618700268; +var IFCTENDONCONDUITTYPE = 2281632017; +var IFCTENDONCONDUIT = 3663046924; +var IFCSINESPIRAL = 42703149; +var IFCSIGNALTYPE = 1894708472; +var IFCSIGNTYPE = 3599934289; +var IFCSIGN = 33720170; +var IFCSEVENTHORDERPOLYNOMIALSPIRAL = 1027922057; +var IFCSEGMENTEDREFERENCECURVE = 544395925; +var IFCSECONDORDERPOLYNOMIALSPIRAL = 3649235739; +var IFCROADPART = 550521510; +var IFCROAD = 146592293; +var IFCRELADHERESTOELEMENT = 3818125796; +var IFCREFERENT = 4021432810; +var IFCRAILWAYPART = 1891881377; +var IFCRAILWAY = 3992365140; +var IFCRAILTYPE = 1763565496; +var IFCPOSITIONINGELEMENT = 1946335990; +var IFCPAVEMENTTYPE = 514975943; +var IFCNAVIGATIONELEMENTTYPE = 506776471; +var IFCMOORINGDEVICETYPE = 710110818; +var IFCMOBILETELECOMMUNICATIONSAPPLIANCETYPE = 1950438474; +var IFCMARINEPART = 976884017; +var IFCMARINEFACILITY = 525669439; +var IFCLIQUIDTERMINALTYPE = 1770583370; +var IFCLINEARELEMENT = 2176059722; +var IFCKERBTYPE = 679976338; +var IFCIMPACTPROTECTIONDEVICETYPE = 3948183225; +var IFCIMPACTPROTECTIONDEVICE = 2568555532; +var IFCGRADIENTCURVE = 2898700619; +var IFCGEOTECHNICALSTRATUM = 1594536857; +var IFCGEOTECHNICALELEMENT = 4230923436; +var IFCFACILITYPARTCOMMON = 4228831410; +var IFCFACILITYPART = 1310830890; +var IFCFACILITY = 24185140; +var IFCDIRECTRIXDERIVEDREFERENCESWEPTAREASOLID = 4234616927; +var IFCDEEPFOUNDATIONTYPE = 1306400036; +var IFCCOURSETYPE = 4189326743; +var IFCCOSINESPIRAL = 2000195564; +var IFCCLOTHOID = 3497074424; +var IFCBUILTELEMENTTYPE = 1626504194; +var IFCVEHICLETYPE = 3651464721; +var IFCTRIANGULATEDIRREGULARNETWORK = 1229763772; +var IFCTRANSPORTATIONDEVICETYPE = 3665877780; +var IFCTHIRDORDERPOLYNOMIALSPIRAL = 782932809; +var IFCSPIRAL = 2735484536; +var IFCSECTIONEDSURFACE = 1356537516; +var IFCSECTIONEDSOLIDHORIZONTAL = 1290935644; +var IFCSECTIONEDSOLID = 1862484736; +var IFCRELPOSITIONS = 1441486842; +var IFCRELASSOCIATESPROFILEDEF = 1033248425; +var IFCPOLYNOMIALCURVE = 3381221214; +var IFCOFFSETCURVEBYDISTANCES = 2485787929; +var IFCOFFSETCURVE = 590820931; +var IFCINDEXEDPOLYGONALTEXTUREMAP = 3465909080; +var IFCDIRECTRIXCURVESWEPTAREASOLID = 593015953; +var IFCCURVESEGMENT = 4212018352; +var IFCAXIS2PLACEMENTLINEAR = 3425423356; +var IFCSEGMENT = 823603102; +var IFCPOINTBYDISTANCEEXPRESSION = 2165702409; +var IFCOPENCROSSPROFILEDEF = 182550632; +var IFCLINEARPLACEMENT = 388784114; +var IFCALIGNMENTHORIZONTALSEGMENT = 536804194; +var IFCALIGNMENTCANTSEGMENT = 3752311538; +var IFCTEXTURECOORDINATEINDICESWITHVOIDS = 1010789467; +var IFCTEXTURECOORDINATEINDICES = 222769930; +var IFCQUANTITYNUMBER = 2691318326; +var IFCALIGNMENTVERTICALSEGMENT = 3633395639; +var IFCALIGNMENTPARAMETERSEGMENT = 2879124712; +var IFCCONTROLLER = 25142252; +var IFCALARM = 3087945054; +var IFCACTUATOR = 4288193352; +var IFCUNITARYCONTROLELEMENT = 630975310; +var IFCSENSOR = 4086658281; +var IFCPROTECTIVEDEVICETRIPPINGUNIT = 2295281155; +var IFCFLOWINSTRUMENT = 182646315; +var IFCFIRESUPPRESSIONTERMINAL = 1426591983; +var IFCFILTER = 819412036; +var IFCFAN = 3415622556; +var IFCELECTRICTIMECONTROL = 1003880860; +var IFCELECTRICMOTOR = 402227799; +var IFCELECTRICGENERATOR = 264262732; +var IFCELECTRICFLOWSTORAGEDEVICE = 3310460725; +var IFCELECTRICDISTRIBUTIONBOARD = 862014818; +var IFCELECTRICAPPLIANCE = 1904799276; +var IFCDUCTSILENCER = 1360408905; +var IFCDUCTSEGMENT = 3518393246; +var IFCDUCTFITTING = 342316401; +var IFCDISTRIBUTIONCIRCUIT = 562808652; +var IFCDAMPER = 4074379575; +var IFCCOOLINGTOWER = 3640358203; +var IFCCOOLEDBEAM = 4136498852; +var IFCCONDENSER = 2272882330; +var IFCCOMPRESSOR = 3571504051; +var IFCCOMMUNICATIONSAPPLIANCE = 3221913625; +var IFCCOIL = 639361253; +var IFCCHILLER = 3902619387; +var IFCCABLESEGMENT = 4217484030; +var IFCCABLEFITTING = 1051757585; +var IFCCABLECARRIERSEGMENT = 3758799889; +var IFCCABLECARRIERFITTING = 635142910; +var IFCBURNER = 2938176219; +var IFCBOILER = 32344328; +var IFCBEAMSTANDARDCASE = 2906023776; +var IFCAUDIOVISUALAPPLIANCE = 277319702; +var IFCAIRTOAIRHEATRECOVERY = 2056796094; +var IFCAIRTERMINALBOX = 177149247; +var IFCAIRTERMINAL = 1634111441; +var IFCWINDOWSTANDARDCASE = 486154966; +var IFCWASTETERMINAL = 4237592921; +var IFCWALLELEMENTEDCASE = 4156078855; +var IFCVALVE = 4207607924; +var IFCUNITARYEQUIPMENT = 4292641817; +var IFCUNITARYCONTROLELEMENTTYPE = 3179687236; +var IFCTUBEBUNDLE = 3026737570; +var IFCTRANSFORMER = 3825984169; +var IFCTANK = 812556717; +var IFCSWITCHINGDEVICE = 1162798199; +var IFCSTRUCTURALLOADCASE = 385403989; +var IFCSTACKTERMINAL = 1404847402; +var IFCSPACEHEATER = 1999602285; +var IFCSOLARDEVICE = 3420628829; +var IFCSLABSTANDARDCASE = 3027962421; +var IFCSLABELEMENTEDCASE = 3127900445; +var IFCSHADINGDEVICE = 1329646415; +var IFCSANITARYTERMINAL = 3053780830; +var IFCREINFORCINGBARTYPE = 2572171363; +var IFCRATIONALBSPLINECURVEWITHKNOTS = 1232101972; +var IFCPUMP = 90941305; +var IFCPROTECTIVEDEVICETRIPPINGUNITTYPE = 655969474; +var IFCPROTECTIVEDEVICE = 738039164; +var IFCPLATESTANDARDCASE = 1156407060; +var IFCPIPESEGMENT = 3612865200; +var IFCPIPEFITTING = 310824031; +var IFCOUTLET = 3694346114; +var IFCOUTERBOUNDARYCURVE = 144952367; +var IFCMOTORCONNECTION = 2474470126; +var IFCMEMBERSTANDARDCASE = 1911478936; +var IFCMEDICALDEVICE = 1437502449; +var IFCLIGHTFIXTURE = 629592764; +var IFCLAMP = 76236018; +var IFCJUNCTIONBOX = 2176052936; +var IFCINTERCEPTOR = 4175244083; +var IFCHUMIDIFIER = 2068733104; +var IFCHEATEXCHANGER = 3319311131; +var IFCFLOWMETER = 2188021234; +var IFCEXTERNALSPATIALELEMENT = 1209101575; +var IFCEVAPORATOR = 484807127; +var IFCEVAPORATIVECOOLER = 3747195512; +var IFCENGINE = 2814081492; +var IFCELECTRICDISTRIBUTIONBOARDTYPE = 2417008758; +var IFCDOORSTANDARDCASE = 3242481149; +var IFCDISTRIBUTIONSYSTEM = 3205830791; +var IFCCOMMUNICATIONSAPPLIANCETYPE = 400855858; +var IFCCOLUMNSTANDARDCASE = 905975707; +var IFCCIVILELEMENT = 1677625105; +var IFCCHIMNEY = 3296154744; +var IFCCABLEFITTINGTYPE = 2674252688; +var IFCBURNERTYPE = 2188180465; +var IFCBUILDINGSYSTEM = 1177604601; +var IFCBUILDINGELEMENTPARTTYPE = 39481116; +var IFCBOUNDARYCURVE = 1136057603; +var IFCBSPLINECURVEWITHKNOTS = 2461110595; +var IFCAUDIOVISUALAPPLIANCETYPE = 1532957894; +var IFCWORKCALENDAR = 4088093105; +var IFCWINDOWTYPE = 4009809668; +var IFCVOIDINGFEATURE = 926996030; +var IFCVIBRATIONISOLATOR = 2391383451; +var IFCTENDONTYPE = 2415094496; +var IFCTENDONANCHORTYPE = 3081323446; +var IFCSYSTEMFURNITUREELEMENT = 413509423; +var IFCSURFACEFEATURE = 3101698114; +var IFCSTRUCTURALSURFACEACTION = 3657597509; +var IFCSTRUCTURALCURVEREACTION = 2757150158; +var IFCSTRUCTURALCURVEACTION = 1004757350; +var IFCSTAIRTYPE = 338393293; +var IFCSOLARDEVICETYPE = 1072016465; +var IFCSHADINGDEVICETYPE = 4074543187; +var IFCSEAMCURVE = 2157484638; +var IFCROOFTYPE = 2781568857; +var IFCREINFORCINGMESHTYPE = 2310774935; +var IFCREINFORCINGELEMENTTYPE = 964333572; +var IFCRATIONALBSPLINESURFACEWITHKNOTS = 683857671; +var IFCRAMPTYPE = 1469900589; +var IFCPOLYGONALFACESET = 2839578677; +var IFCPILETYPE = 1158309216; +var IFCOPENINGSTANDARDCASE = 3079942009; +var IFCMEDICALDEVICETYPE = 1114901282; +var IFCINTERSECTIONCURVE = 3113134337; +var IFCINTERCEPTORTYPE = 3946677679; +var IFCINDEXEDPOLYCURVE = 2571569899; +var IFCGEOGRAPHICELEMENT = 3493046030; +var IFCFURNITURE = 1509553395; +var IFCFOOTINGTYPE = 1893162501; +var IFCEXTERNALSPATIALSTRUCTUREELEMENT = 2853485674; +var IFCEVENT = 4148101412; +var IFCENGINETYPE = 132023988; +var IFCELEMENTASSEMBLYTYPE = 2397081782; +var IFCDOORTYPE = 2323601079; +var IFCCYLINDRICALSURFACE = 1213902940; +var IFCCONSTRUCTIONPRODUCTRESOURCETYPE = 1525564444; +var IFCCONSTRUCTIONMATERIALRESOURCETYPE = 4105962743; +var IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE = 2185764099; +var IFCCOMPOSITECURVEONSURFACE = 15328376; +var IFCCOMPLEXPROPERTYTEMPLATE = 3875453745; +var IFCCIVILELEMENTTYPE = 3893394355; +var IFCCHIMNEYTYPE = 2197970202; +var IFCBSPLINESURFACEWITHKNOTS = 167062518; +var IFCBSPLINESURFACE = 2887950389; +var IFCADVANCEDBREPWITHVOIDS = 2603310189; +var IFCADVANCEDBREP = 1635779807; +var IFCTRIANGULATEDFACESET = 2916149573; +var IFCTOROIDALSURFACE = 1935646853; +var IFCTESSELLATEDFACESET = 2387106220; +var IFCTASKTYPE = 3206491090; +var IFCSURFACECURVE = 699246055; +var IFCSUBCONTRACTRESOURCETYPE = 4095615324; +var IFCSTRUCTURALSURFACEREACTION = 603775116; +var IFCSPHERICALSURFACE = 4015995234; +var IFCSPATIALZONETYPE = 2481509218; +var IFCSPATIALZONE = 463610769; +var IFCSPATIALELEMENTTYPE = 710998568; +var IFCSPATIALELEMENT = 1412071761; +var IFCSIMPLEPROPERTYTEMPLATE = 3663146110; +var IFCREVOLVEDAREASOLIDTAPERED = 3243963512; +var IFCREPARAMETRISEDCOMPOSITECURVESEGMENT = 816062949; +var IFCRELSPACEBOUNDARY2NDLEVEL = 1521410863; +var IFCRELSPACEBOUNDARY1STLEVEL = 3523091289; +var IFCRELINTERFERESELEMENTS = 427948657; +var IFCRELDEFINESBYTEMPLATE = 307848117; +var IFCRELDEFINESBYOBJECT = 1462361463; +var IFCRELDECLARES = 2565941209; +var IFCRELASSIGNSTOGROUPBYFACTOR = 1027710054; +var IFCPROPERTYTEMPLATE = 3521284610; +var IFCPROPERTYSETTEMPLATE = 492091185; +var IFCPROJECTLIBRARY = 653396225; +var IFCPROCEDURETYPE = 569719735; +var IFCPREDEFINEDPROPERTYSET = 3967405729; +var IFCPCURVE = 1682466193; +var IFCLABORRESOURCETYPE = 428585644; +var IFCINDEXEDPOLYGONALFACEWITHVOIDS = 2294589976; +var IFCINDEXEDPOLYGONALFACE = 178912537; +var IFCGEOGRAPHICELEMENTTYPE = 4095422895; +var IFCFIXEDREFERENCESWEPTAREASOLID = 2652556860; +var IFCEXTRUDEDAREASOLIDTAPERED = 2804161546; +var IFCEVENTTYPE = 4024345920; +var IFCCURVEBOUNDEDSURFACE = 2629017746; +var IFCCREWRESOURCETYPE = 1815067380; +var IFCCONTEXT = 3419103109; +var IFCCONSTRUCTIONRESOURCETYPE = 2574617495; +var IFCCARTESIANPOINTLIST3D = 2059837836; +var IFCCARTESIANPOINTLIST2D = 1675464909; +var IFCCARTESIANPOINTLIST = 574549367; +var IFCADVANCEDFACE = 3406155212; +var IFCTYPERESOURCE = 3698973494; +var IFCTYPEPROCESS = 3736923433; +var IFCTESSELLATEDITEM = 901063453; +var IFCSWEPTDISKSOLIDPOLYGONAL = 1096409881; +var IFCRESOURCETIME = 1042787934; +var IFCRESOURCECONSTRAINTRELATIONSHIP = 1608871552; +var IFCRESOURCEAPPROVALRELATIONSHIP = 2943643501; +var IFCQUANTITYSET = 2090586900; +var IFCPROPERTYTEMPLATEDEFINITION = 1482703590; +var IFCPREDEFINEDPROPERTIES = 3778827333; +var IFCMIRROREDPROFILEDEF = 2998442950; +var IFCMATERIALRELATIONSHIP = 853536259; +var IFCMATERIALPROFILESETUSAGETAPERING = 3404854881; +var IFCMATERIALPROFILESETUSAGE = 3079605661; +var IFCMATERIALCONSTITUENTSET = 2852063980; +var IFCMATERIALCONSTITUENT = 3708119e3; +var IFCLAGTIME = 1585845231; +var IFCINDEXEDTRIANGLETEXTUREMAP = 2133299955; +var IFCINDEXEDTEXTUREMAP = 1437953363; +var IFCINDEXEDCOLOURMAP = 3570813810; +var IFCEXTERNALREFERENCERELATIONSHIP = 1437805879; +var IFCEXTENDEDPROPERTIES = 297599258; +var IFCEVENTTIME = 211053100; +var IFCCONVERSIONBASEDUNITWITHOFFSET = 2713554722; +var IFCCOLOURRGBLIST = 3285139300; +var IFCWORKTIME = 1236880293; +var IFCTIMEPERIOD = 1199560280; +var IFCTEXTUREVERTEXLIST = 3611470254; +var IFCTASKTIMERECURRING = 2771591690; +var IFCTASKTIME = 1549132990; +var IFCTABLECOLUMN = 2043862942; +var IFCSURFACEREINFORCEMENTAREA = 2934153892; +var IFCSTRUCTURALLOADORRESULT = 609421318; +var IFCSTRUCTURALLOADCONFIGURATION = 3478079324; +var IFCSCHEDULINGTIME = 1054537805; +var IFCRESOURCELEVELRELATIONSHIP = 2439245199; +var IFCREFERENCE = 2433181523; +var IFCRECURRENCEPATTERN = 3915482550; +var IFCPROPERTYABSTRACTION = 986844984; +var IFCPROJECTEDCRS = 3843373140; +var IFCPRESENTATIONITEM = 677532197; +var IFCMATERIALUSAGEDEFINITION = 1507914824; +var IFCMATERIALPROFILEWITHOFFSETS = 552965576; +var IFCMATERIALPROFILESET = 164193824; +var IFCMATERIALPROFILE = 2235152071; +var IFCMATERIALLAYERWITHOFFSETS = 1847252529; +var IFCMATERIALDEFINITION = 760658860; +var IFCMAPCONVERSION = 3057273783; +var IFCEXTERNALINFORMATION = 4294318154; +var IFCCOORDINATEREFERENCESYSTEM = 1466758467; +var IFCCOORDINATEOPERATION = 1785450214; +var IFCCONNECTIONVOLUMEGEOMETRY = 775493141; +var IFCREINFORCINGBAR = 979691226; +var IFCELECTRICDISTRIBUTIONPOINT = 3700593921; +var IFCDISTRIBUTIONCONTROLELEMENT = 1062813311; +var IFCDISTRIBUTIONCHAMBERELEMENT = 1052013943; +var IFCCONTROLLERTYPE = 578613899; +var IFCCHAMFEREDGEFEATURE = 2454782716; +var IFCBEAM = 753842376; +var IFCALARMTYPE = 3001207471; +var IFCACTUATORTYPE = 2874132201; +var IFCWINDOW = 3304561284; +var IFCWALLSTANDARDCASE = 3512223829; +var IFCWALL = 2391406946; +var IFCVIBRATIONISOLATORTYPE = 3313531582; +var IFCTENDONANCHOR = 2347447852; +var IFCTENDON = 3824725483; +var IFCSTRUCTURALANALYSISMODEL = 2515109513; +var IFCSTAIRFLIGHT = 4252922144; +var IFCSTAIR = 331165859; +var IFCSLAB = 1529196076; +var IFCSENSORTYPE = 1783015770; +var IFCROUNDEDEDGEFEATURE = 1376911519; +var IFCROOF = 2016517767; +var IFCREINFORCINGMESH = 2320036040; +var IFCREINFORCINGELEMENT = 3027567501; +var IFCRATIONALBEZIERCURVE = 3055160366; +var IFCRAMPFLIGHT = 3283111854; +var IFCRAMP = 3024970846; +var IFCRAILING = 2262370178; +var IFCPLATE = 3171933400; +var IFCPILE = 1687234759; +var IFCMEMBER = 1073191201; +var IFCFOOTING = 900683007; +var IFCFLOWTREATMENTDEVICE = 3508470533; +var IFCFLOWTERMINAL = 2223149337; +var IFCFLOWSTORAGEDEVICE = 707683696; +var IFCFLOWSEGMENT = 987401354; +var IFCFLOWMOVINGDEVICE = 3132237377; +var IFCFLOWINSTRUMENTTYPE = 4037862832; +var IFCFLOWFITTING = 4278956645; +var IFCFLOWCONTROLLER = 2058353004; +var IFCFIRESUPPRESSIONTERMINALTYPE = 4222183408; +var IFCFILTERTYPE = 1810631287; +var IFCFANTYPE = 346874300; +var IFCENERGYCONVERSIONDEVICE = 1658829314; +var IFCELECTRICALELEMENT = 857184966; +var IFCELECTRICALCIRCUIT = 1634875225; +var IFCELECTRICTIMECONTROLTYPE = 712377611; +var IFCELECTRICMOTORTYPE = 1217240411; +var IFCELECTRICHEATERTYPE = 1365060375; +var IFCELECTRICGENERATORTYPE = 1534661035; +var IFCELECTRICFLOWSTORAGEDEVICETYPE = 3277789161; +var IFCELECTRICAPPLIANCETYPE = 663422040; +var IFCEDGEFEATURE = 855621170; +var IFCDUCTSILENCERTYPE = 2030761528; +var IFCDUCTSEGMENTTYPE = 3760055223; +var IFCDUCTFITTINGTYPE = 869906466; +var IFCDOOR = 395920057; +var IFCDISTRIBUTIONPORT = 3041715199; +var IFCDISTRIBUTIONFLOWELEMENT = 3040386961; +var IFCDISTRIBUTIONELEMENT = 1945004755; +var IFCDISTRIBUTIONCONTROLELEMENTTYPE = 2063403501; +var IFCDISTRIBUTIONCHAMBERELEMENTTYPE = 1599208980; +var IFCDISCRETEACCESSORYTYPE = 2635815018; +var IFCDISCRETEACCESSORY = 1335981549; +var IFCDIAMETERDIMENSION = 4147604152; +var IFCDAMPERTYPE = 3961806047; +var IFCCURTAINWALL = 3495092785; +var IFCCOVERING = 1973544240; +var IFCCOOLINGTOWERTYPE = 2954562838; +var IFCCOOLEDBEAMTYPE = 335055490; +var IFCCONSTRUCTIONPRODUCTRESOURCE = 488727124; +var IFCCONSTRUCTIONMATERIALRESOURCE = 1060000209; +var IFCCONSTRUCTIONEQUIPMENTRESOURCE = 3898045240; +var IFCCONDITIONCRITERION = 1163958913; +var IFCCONDITION = 2188551683; +var IFCCONDENSERTYPE = 2816379211; +var IFCCOMPRESSORTYPE = 3850581409; +var IFCCOLUMN = 843113511; +var IFCCOILTYPE = 2301859152; +var IFCCIRCLE = 2611217952; +var IFCCHILLERTYPE = 2951183804; +var IFCCABLESEGMENTTYPE = 1285652485; +var IFCCABLECARRIERSEGMENTTYPE = 3293546465; +var IFCCABLECARRIERFITTINGTYPE = 395041908; +var IFCBUILDINGELEMENTPROXYTYPE = 1909888760; +var IFCBUILDINGELEMENTPROXY = 1095909175; +var IFCBUILDINGELEMENTPART = 2979338954; +var IFCBUILDINGELEMENTCOMPONENT = 52481810; +var IFCBUILDINGELEMENT = 3299480353; +var IFCBOILERTYPE = 231477066; +var IFCBEZIERCURVE = 1916977116; +var IFCBEAMTYPE = 819618141; +var IFCBSPLINECURVE = 1967976161; +var IFCASSET = 3460190687; +var IFCANGULARDIMENSION = 2470393545; +var IFCAIRTOAIRHEATRECOVERYTYPE = 1871374353; +var IFCAIRTERMINALTYPE = 3352864051; +var IFCAIRTERMINALBOXTYPE = 1411407467; +var IFCACTIONREQUEST = 3821786052; +var IFC2DCOMPOSITECURVE = 1213861670; +var IFCZONE = 1033361043; +var IFCWORKSCHEDULE = 3342526732; +var IFCWORKPLAN = 4218914973; +var IFCWORKCONTROL = 1028945134; +var IFCWASTETERMINALTYPE = 1133259667; +var IFCWALLTYPE = 1898987631; +var IFCVIRTUALELEMENT = 2769231204; +var IFCVALVETYPE = 728799441; +var IFCUNITARYEQUIPMENTTYPE = 1911125066; +var IFCTUBEBUNDLETYPE = 1600972822; +var IFCTRIMMEDCURVE = 3593883385; +var IFCTRANSPORTELEMENT = 1620046519; +var IFCTRANSFORMERTYPE = 1692211062; +var IFCTIMESERIESSCHEDULE = 1637806684; +var IFCTANKTYPE = 5716631; +var IFCSYSTEM = 2254336722; +var IFCSWITCHINGDEVICETYPE = 2315554128; +var IFCSUBCONTRACTRESOURCE = 148013059; +var IFCSTRUCTURALSURFACECONNECTION = 1975003073; +var IFCSTRUCTURALRESULTGROUP = 2986769608; +var IFCSTRUCTURALPOINTREACTION = 1235345126; +var IFCSTRUCTURALPOINTCONNECTION = 734778138; +var IFCSTRUCTURALPOINTACTION = 2082059205; +var IFCSTRUCTURALPLANARACTIONVARYING = 3987759626; +var IFCSTRUCTURALPLANARACTION = 1621171031; +var IFCSTRUCTURALLOADGROUP = 1252848954; +var IFCSTRUCTURALLINEARACTIONVARYING = 1721250024; +var IFCSTRUCTURALLINEARACTION = 1807405624; +var IFCSTRUCTURALCURVEMEMBERVARYING = 2445595289; +var IFCSTRUCTURALCURVEMEMBER = 214636428; +var IFCSTRUCTURALCURVECONNECTION = 4243806635; +var IFCSTRUCTURALCONNECTION = 1179482911; +var IFCSTRUCTURALACTION = 682877961; +var IFCSTAIRFLIGHTTYPE = 1039846685; +var IFCSTACKTERMINALTYPE = 3112655638; +var IFCSPACETYPE = 3812236995; +var IFCSPACEPROGRAM = 652456506; +var IFCSPACEHEATERTYPE = 1305183839; +var IFCSPACE = 3856911033; +var IFCSLABTYPE = 2533589738; +var IFCSITE = 4097777520; +var IFCSERVICELIFE = 4105383287; +var IFCSCHEDULETIMECONTROL = 3517283431; +var IFCSANITARYTERMINALTYPE = 1768891740; +var IFCRELASSIGNSTASKS = 2863920197; +var IFCRELAGGREGATES = 160246688; +var IFCRAMPFLIGHTTYPE = 2324767716; +var IFCRAILINGTYPE = 2893384427; +var IFCRADIUSDIMENSION = 3248260540; +var IFCPUMPTYPE = 2250791053; +var IFCPROTECTIVEDEVICETYPE = 1842657554; +var IFCPROJECTIONELEMENT = 3651124850; +var IFCPROJECTORDERRECORD = 3642467123; +var IFCPROJECTORDER = 2904328755; +var IFCPROCEDURE = 2744685151; +var IFCPORT = 3740093272; +var IFCPOLYLINE = 3724593414; +var IFCPLATETYPE = 4017108033; +var IFCPIPESEGMENTTYPE = 4231323485; +var IFCPIPEFITTINGTYPE = 804291784; +var IFCPERMIT = 3327091369; +var IFCPERFORMANCEHISTORY = 2382730787; +var IFCOUTLETTYPE = 2837617999; +var IFCORDERACTION = 3425660407; +var IFCOPENINGELEMENT = 3588315303; +var IFCOCCUPANT = 4143007308; +var IFCMOVE = 1916936684; +var IFCMOTORCONNECTIONTYPE = 977012517; +var IFCMEMBERTYPE = 3181161470; +var IFCMECHANICALFASTENERTYPE = 2108223431; +var IFCMECHANICALFASTENER = 377706215; +var IFCLINEARDIMENSION = 2506943328; +var IFCLIGHTFIXTURETYPE = 1161773419; +var IFCLAMPTYPE = 1051575348; +var IFCLABORRESOURCE = 3827777499; +var IFCJUNCTIONBOXTYPE = 4288270099; +var IFCINVENTORY = 2391368822; +var IFCHUMIDIFIERTYPE = 1806887404; +var IFCHEATEXCHANGERTYPE = 1251058090; +var IFCGROUP = 2706460486; +var IFCGRID = 3009204131; +var IFCGASTERMINALTYPE = 200128114; +var IFCFURNITURESTANDARD = 814719939; +var IFCFURNISHINGELEMENT = 263784265; +var IFCFLOWTREATMENTDEVICETYPE = 3009222698; +var IFCFLOWTERMINALTYPE = 2297155007; +var IFCFLOWSTORAGEDEVICETYPE = 1339347760; +var IFCFLOWSEGMENTTYPE = 1834744321; +var IFCFLOWMOVINGDEVICETYPE = 1482959167; +var IFCFLOWMETERTYPE = 3815607619; +var IFCFLOWFITTINGTYPE = 3198132628; +var IFCFLOWCONTROLLERTYPE = 3907093117; +var IFCFEATUREELEMENTSUBTRACTION = 1287392070; +var IFCFEATUREELEMENTADDITION = 2143335405; +var IFCFEATUREELEMENT = 2827207264; +var IFCFASTENERTYPE = 2489546625; +var IFCFASTENER = 647756555; +var IFCFACETEDBREPWITHVOIDS = 3737207727; +var IFCFACETEDBREP = 807026263; +var IFCEVAPORATORTYPE = 3390157468; +var IFCEVAPORATIVECOOLERTYPE = 3174744832; +var IFCEQUIPMENTSTANDARD = 3272907226; +var IFCEQUIPMENTELEMENT = 1962604670; +var IFCENERGYCONVERSIONDEVICETYPE = 2107101300; +var IFCELLIPSE = 1704287377; +var IFCELEMENTCOMPONENTTYPE = 2590856083; +var IFCELEMENTCOMPONENT = 1623761950; +var IFCELEMENTASSEMBLY = 4123344466; +var IFCELEMENT = 1758889154; +var IFCELECTRICALBASEPROPERTIES = 360485395; +var IFCDISTRIBUTIONFLOWELEMENTTYPE = 3849074793; +var IFCDISTRIBUTIONELEMENTTYPE = 3256556792; +var IFCDIMENSIONCURVEDIRECTEDCALLOUT = 681481545; +var IFCCURTAINWALLTYPE = 1457835157; +var IFCCREWRESOURCE = 3295246426; +var IFCCOVERINGTYPE = 1916426348; +var IFCCOSTSCHEDULE = 1419761937; +var IFCCOSTITEM = 3895139033; +var IFCCONTROL = 3293443760; +var IFCCONSTRUCTIONRESOURCE = 2559216714; +var IFCCONIC = 2510884976; +var IFCCOMPOSITECURVE = 3732776249; +var IFCCOLUMNTYPE = 300633059; +var IFCCIRCLEHOLLOWPROFILEDEF = 2937912522; +var IFCBUILDINGSTOREY = 3124254112; +var IFCBUILDINGELEMENTTYPE = 1950629157; +var IFCBUILDING = 4031249490; +var IFCBOUNDEDCURVE = 1260505505; +var IFCBOOLEANCLIPPINGRESULT = 3649129432; +var IFCBLOCK = 1334484129; +var IFCASYMMETRICISHAPEPROFILEDEF = 3207858831; +var IFCANNOTATION = 1674181508; +var IFCACTOR = 2296667514; +var IFCTRANSPORTELEMENTTYPE = 2097647324; +var IFCTASK = 3473067441; +var IFCSYSTEMFURNITUREELEMENTTYPE = 1580310250; +var IFCSURFACEOFREVOLUTION = 4124788165; +var IFCSURFACEOFLINEAREXTRUSION = 2809605785; +var IFCSURFACECURVESWEPTAREASOLID = 2028607225; +var IFCSTRUCTUREDDIMENSIONCALLOUT = 4070609034; +var IFCSTRUCTURALSURFACEMEMBERVARYING = 2218152070; +var IFCSTRUCTURALSURFACEMEMBER = 3979015343; +var IFCSTRUCTURALREACTION = 3689010777; +var IFCSTRUCTURALMEMBER = 530289379; +var IFCSTRUCTURALITEM = 3136571912; +var IFCSTRUCTURALACTIVITY = 3544373492; +var IFCSPHERE = 451544542; +var IFCSPATIALSTRUCTUREELEMENTTYPE = 3893378262; +var IFCSPATIALSTRUCTUREELEMENT = 2706606064; +var IFCRIGHTCIRCULARCYLINDER = 3626867408; +var IFCRIGHTCIRCULARCONE = 4158566097; +var IFCREVOLVEDAREASOLID = 1856042241; +var IFCRESOURCE = 2914609552; +var IFCRELVOIDSELEMENT = 1401173127; +var IFCRELSPACEBOUNDARY = 3451746338; +var IFCRELSERVICESBUILDINGS = 366585022; +var IFCRELSEQUENCE = 4122056220; +var IFCRELSCHEDULESCOSTITEMS = 1058617721; +var IFCRELREFERENCEDINSPATIALSTRUCTURE = 1245217292; +var IFCRELPROJECTSELEMENT = 750771296; +var IFCRELOVERRIDESPROPERTIES = 202636808; +var IFCRELOCCUPIESSPACES = 2051452291; +var IFCRELNESTS = 3268803585; +var IFCRELINTERACTIONREQUIREMENTS = 4189434867; +var IFCRELFLOWCONTROLELEMENTS = 279856033; +var IFCRELFILLSELEMENT = 3940055652; +var IFCRELDEFINESBYTYPE = 781010003; +var IFCRELDEFINESBYPROPERTIES = 4186316022; +var IFCRELDEFINES = 693640335; +var IFCRELDECOMPOSES = 2551354335; +var IFCRELCOVERSSPACES = 2802773753; +var IFCRELCOVERSBLDGELEMENTS = 886880790; +var IFCRELCONTAINEDINSPATIALSTRUCTURE = 3242617779; +var IFCRELCONNECTSWITHREALIZINGELEMENTS = 3678494232; +var IFCRELCONNECTSWITHECCENTRICITY = 504942748; +var IFCRELCONNECTSSTRUCTURALMEMBER = 1638771189; +var IFCRELCONNECTSSTRUCTURALELEMENT = 3912681535; +var IFCRELCONNECTSSTRUCTURALACTIVITY = 2127690289; +var IFCRELCONNECTSPORTS = 3190031847; +var IFCRELCONNECTSPORTTOELEMENT = 4201705270; +var IFCRELCONNECTSPATHELEMENTS = 3945020480; +var IFCRELCONNECTSELEMENTS = 1204542856; +var IFCRELCONNECTS = 826625072; +var IFCRELASSOCIATESPROFILEPROPERTIES = 2851387026; +var IFCRELASSOCIATESMATERIAL = 2655215786; +var IFCRELASSOCIATESLIBRARY = 3840914261; +var IFCRELASSOCIATESDOCUMENT = 982818633; +var IFCRELASSOCIATESCONSTRAINT = 2728634034; +var IFCRELASSOCIATESCLASSIFICATION = 919958153; +var IFCRELASSOCIATESAPPROVAL = 4095574036; +var IFCRELASSOCIATESAPPLIEDVALUE = 1327628568; +var IFCRELASSOCIATES = 1865459582; +var IFCRELASSIGNSTORESOURCE = 205026976; +var IFCRELASSIGNSTOPROJECTORDER = 3372526763; +var IFCRELASSIGNSTOPRODUCT = 2857406711; +var IFCRELASSIGNSTOPROCESS = 4278684876; +var IFCRELASSIGNSTOGROUP = 1307041759; +var IFCRELASSIGNSTOCONTROL = 2495723537; +var IFCRELASSIGNSTOACTOR = 1683148259; +var IFCRELASSIGNS = 3939117080; +var IFCRECTANGULARTRIMMEDSURFACE = 3454111270; +var IFCRECTANGULARPYRAMID = 2798486643; +var IFCRECTANGLEHOLLOWPROFILEDEF = 2770003689; +var IFCPROXY = 3219374653; +var IFCPROPERTYSET = 1451395588; +var IFCPROJECTIONCURVE = 4194566429; +var IFCPROJECT = 103090709; +var IFCPRODUCT = 4208778838; +var IFCPROCESS = 2945172077; +var IFCPLANE = 220341763; +var IFCPLANARBOX = 603570806; +var IFCPERMEABLECOVERINGPROPERTIES = 3566463478; +var IFCOFFSETCURVE3D = 3505215534; +var IFCOFFSETCURVE2D = 3388369263; +var IFCOBJECT = 3888040117; +var IFCMANIFOLDSOLIDBREP = 1425443689; +var IFCLINE = 1281925730; +var IFCLSHAPEPROFILEDEF = 572779678; +var IFCISHAPEPROFILEDEF = 1484403080; +var IFCGEOMETRICCURVESET = 987898635; +var IFCFURNITURETYPE = 1268542332; +var IFCFURNISHINGELEMENTTYPE = 4238390223; +var IFCFLUIDFLOWPROPERTIES = 3455213021; +var IFCFILLAREASTYLETILES = 315944413; +var IFCFILLAREASTYLETILESYMBOLWITHSTYLE = 4203026998; +var IFCFILLAREASTYLEHATCHING = 374418227; +var IFCFACEBASEDSURFACEMODEL = 2047409740; +var IFCEXTRUDEDAREASOLID = 477187591; +var IFCENERGYPROPERTIES = 80994333; +var IFCELLIPSEPROFILEDEF = 2835456948; +var IFCELEMENTARYSURFACE = 2777663545; +var IFCELEMENTTYPE = 339256511; +var IFCELEMENTQUANTITY = 1883228015; +var IFCEDGELOOP = 1472233963; +var IFCDRAUGHTINGPREDEFINEDCURVEFONT = 4006246654; +var IFCDRAUGHTINGPREDEFINEDCOLOUR = 445594917; +var IFCDRAUGHTINGCALLOUT = 3073041342; +var IFCDOORSTYLE = 526551008; +var IFCDOORPANELPROPERTIES = 1714330368; +var IFCDOORLININGPROPERTIES = 2963535650; +var IFCDIRECTION = 32440307; +var IFCDIMENSIONCURVETERMINATOR = 4054601972; +var IFCDIMENSIONCURVE = 606661476; +var IFCDEFINEDSYMBOL = 693772133; +var IFCCURVEBOUNDEDPLANE = 2827736869; +var IFCCURVE = 2601014836; +var IFCCSGSOLID = 2147822146; +var IFCCSGPRIMITIVE3D = 2506170314; +var IFCCRANERAILFSHAPEPROFILEDEF = 194851669; +var IFCCRANERAILASHAPEPROFILEDEF = 4133800736; +var IFCCOMPOSITECURVESEGMENT = 2485617015; +var IFCCLOSEDSHELL = 2205249479; +var IFCCIRCLEPROFILEDEF = 1383045692; +var IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM = 1416205885; +var IFCCARTESIANTRANSFORMATIONOPERATOR3D = 3331915920; +var IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM = 3486308946; +var IFCCARTESIANTRANSFORMATIONOPERATOR2D = 3749851601; +var IFCCARTESIANTRANSFORMATIONOPERATOR = 59481748; +var IFCCARTESIANPOINT = 1123145078; +var IFCCSHAPEPROFILEDEF = 2898889636; +var IFCBOXEDHALFSPACE = 2713105998; +var IFCBOUNDINGBOX = 2581212453; +var IFCBOUNDEDSURFACE = 4182860854; +var IFCBOOLEANRESULT = 2736907675; +var IFCAXIS2PLACEMENT3D = 2740243338; +var IFCAXIS2PLACEMENT2D = 3125803723; +var IFCAXIS1PLACEMENT = 4261334040; +var IFCANNOTATIONSURFACE = 1302238472; +var IFCANNOTATIONFILLAREAOCCURRENCE = 2265737646; +var IFCANNOTATIONFILLAREA = 669184980; +var IFCANNOTATIONCURVEOCCURRENCE = 3288037868; +var IFCZSHAPEPROFILEDEF = 2543172580; +var IFCWINDOWSTYLE = 1299126871; +var IFCWINDOWPANELPROPERTIES = 512836454; +var IFCWINDOWLININGPROPERTIES = 336235671; +var IFCVERTEXLOOP = 2759199220; +var IFCVECTOR = 1417489154; +var IFCUSHAPEPROFILEDEF = 427810014; +var IFCTYPEPRODUCT = 2347495698; +var IFCTYPEOBJECT = 1628702193; +var IFCTWODIRECTIONREPEATFACTOR = 1345879162; +var IFCTRAPEZIUMPROFILEDEF = 2715220739; +var IFCTEXTLITERALWITHEXTENT = 3124975700; +var IFCTEXTLITERAL = 4282788508; +var IFCTERMINATORSYMBOL = 3028897424; +var IFCTSHAPEPROFILEDEF = 3071757647; +var IFCSWEPTSURFACE = 230924584; +var IFCSWEPTDISKSOLID = 1260650574; +var IFCSWEPTAREASOLID = 2247615214; +var IFCSURFACESTYLERENDERING = 1878645084; +var IFCSURFACE = 2513912981; +var IFCSUBEDGE = 2233826070; +var IFCSTRUCTURALSTEELPROFILEPROPERTIES = 3653947884; +var IFCSTRUCTURALPROFILEPROPERTIES = 3843319758; +var IFCSTRUCTURALLOADSINGLEFORCEWARPING = 1190533807; +var IFCSTRUCTURALLOADSINGLEFORCE = 1597423693; +var IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION = 1973038258; +var IFCSTRUCTURALLOADSINGLEDISPLACEMENT = 2473145415; +var IFCSTRUCTURALLOADPLANARFORCE = 2668620305; +var IFCSTRUCTURALLOADLINEARFORCE = 1595516126; +var IFCSPACETHERMALLOADPROPERTIES = 390701378; +var IFCSOUNDVALUE = 1202362311; +var IFCSOUNDPROPERTIES = 2485662743; +var IFCSOLIDMODEL = 723233188; +var IFCSLIPPAGECONNECTIONCONDITION = 2609359061; +var IFCSHELLBASEDSURFACEMODEL = 4124623270; +var IFCSERVICELIFEFACTOR = 2411513650; +var IFCSECTIONEDSPINE = 1509187699; +var IFCROUNDEDRECTANGLEPROFILEDEF = 2778083089; +var IFCRELATIONSHIP = 478536968; +var IFCREINFORCEMENTDEFINITIONPROPERTIES = 3765753017; +var IFCREGULARTIMESERIES = 3413951693; +var IFCRECTANGLEPROFILEDEF = 3615266464; +var IFCPROPERTYTABLEVALUE = 110355661; +var IFCPROPERTYSINGLEVALUE = 3650150729; +var IFCPROPERTYSETDEFINITION = 3357820518; +var IFCPROPERTYREFERENCEVALUE = 941946838; +var IFCPROPERTYLISTVALUE = 2752243245; +var IFCPROPERTYENUMERATEDVALUE = 4166981789; +var IFCPROPERTYDEFINITION = 1680319473; +var IFCPROPERTYBOUNDEDVALUE = 871118103; +var IFCPRODUCTDEFINITIONSHAPE = 673634403; +var IFCPREDEFINEDPOINTMARKERSYMBOL = 179317114; +var IFCPREDEFINEDDIMENSIONSYMBOL = 433424934; +var IFCPREDEFINEDCURVEFONT = 2559016684; +var IFCPREDEFINEDCOLOUR = 759155922; +var IFCPOLYGONALBOUNDEDHALFSPACE = 2775532180; +var IFCPOLYLOOP = 2924175390; +var IFCPOINTONSURFACE = 1423911732; +var IFCPOINTONCURVE = 4022376103; +var IFCPOINT = 2067069095; +var IFCPLANAREXTENT = 1663979128; +var IFCPLACEMENT = 2004835150; +var IFCPIXELTEXTURE = 597895409; +var IFCPHYSICALCOMPLEXQUANTITY = 3021840470; +var IFCPATH = 2519244187; +var IFCPARAMETERIZEDPROFILEDEF = 2529465313; +var IFCORIENTEDEDGE = 1029017970; +var IFCOPENSHELL = 2665983363; +var IFCONEDIRECTIONREPEATFACTOR = 2833995503; +var IFCOBJECTDEFINITION = 219451334; +var IFCMECHANICALCONCRETEMATERIALPROPERTIES = 1430189142; +var IFCMATERIALDEFINITIONREPRESENTATION = 2022407955; +var IFCMAPPEDITEM = 2347385850; +var IFCLOOP = 1008929658; +var IFCLOCALPLACEMENT = 2624227202; +var IFCLIGHTSOURCESPOT = 3422422726; +var IFCLIGHTSOURCEPOSITIONAL = 1520743889; +var IFCLIGHTSOURCEGONIOMETRIC = 4266656042; +var IFCLIGHTSOURCEDIRECTIONAL = 2604431987; +var IFCLIGHTSOURCEAMBIENT = 125510826; +var IFCLIGHTSOURCE = 1402838566; +var IFCIRREGULARTIMESERIES = 3741457305; +var IFCIMAGETEXTURE = 3905492369; +var IFCHYGROSCOPICMATERIALPROPERTIES = 2445078500; +var IFCHALFSPACESOLID = 812098782; +var IFCGRIDPLACEMENT = 178086475; +var IFCGEOMETRICSET = 3590301190; +var IFCGEOMETRICREPRESENTATIONSUBCONTEXT = 4142052618; +var IFCGEOMETRICREPRESENTATIONITEM = 2453401579; +var IFCGEOMETRICREPRESENTATIONCONTEXT = 3448662350; +var IFCGENERALPROFILEPROPERTIES = 1446786286; +var IFCGENERALMATERIALPROPERTIES = 803998398; +var IFCFUELPROPERTIES = 3857492461; +var IFCFILLAREASTYLE = 738692330; +var IFCFAILURECONNECTIONCONDITION = 4219587988; +var IFCFACESURFACE = 3008276851; +var IFCFACEOUTERBOUND = 803316827; +var IFCFACEBOUND = 1809719519; +var IFCFACE = 2556980723; +var IFCEXTENDEDMATERIALPROPERTIES = 1860660968; +var IFCEDGECURVE = 476780140; +var IFCEDGE = 3900360178; +var IFCDRAUGHTINGPREDEFINEDTEXTFONT = 4170525392; +var IFCDOCUMENTREFERENCE = 3732053477; +var IFCDIMENSIONPAIR = 1694125774; +var IFCDIMENSIONCALLOUTRELATIONSHIP = 2273265877; +var IFCDERIVEDPROFILEDEF = 3632507154; +var IFCCURVESTYLE = 3800577675; +var IFCCONVERSIONBASEDUNIT = 2889183280; +var IFCCONTEXTDEPENDENTUNIT = 3050246964; +var IFCCONNECTIONPOINTECCENTRICITY = 45288368; +var IFCCONNECTIONCURVEGEOMETRY = 1981873012; +var IFCCONNECTEDFACESET = 370225590; +var IFCCOMPOSITEPROFILEDEF = 1485152156; +var IFCCOMPLEXPROPERTY = 2542286263; +var IFCCOLOURRGB = 776857604; +var IFCCLASSIFICATIONREFERENCE = 647927063; +var IFCCENTERLINEPROFILEDEF = 3150382593; +var IFCBLOBTEXTURE = 616511568; +var IFCARBITRARYPROFILEDEFWITHVOIDS = 2705031697; +var IFCARBITRARYOPENPROFILEDEF = 1310608509; +var IFCARBITRARYCLOSEDPROFILEDEF = 3798115385; +var IFCANNOTATIONTEXTOCCURRENCE = 2297822566; +var IFCANNOTATIONSYMBOLOCCURRENCE = 3612888222; +var IFCANNOTATIONSURFACEOCCURRENCE = 962685235; +var IFCANNOTATIONOCCURRENCE = 2442683028; +var IFCWATERPROPERTIES = 1065908215; +var IFCVIRTUALGRIDINTERSECTION = 891718957; +var IFCVERTEXPOINT = 1907098498; +var IFCVERTEXBASEDTEXTUREMAP = 3304826586; +var IFCVERTEX = 2799835756; +var IFCUNITASSIGNMENT = 180925521; +var IFCTOPOLOGYREPRESENTATION = 1735638870; +var IFCTOPOLOGICALREPRESENTATIONITEM = 1377556343; +var IFCTIMESERIESVALUE = 581633288; +var IFCTIMESERIESREFERENCERELATIONSHIP = 1718945513; +var IFCTIMESERIES = 3101149627; +var IFCTHERMALMATERIALPROPERTIES = 3317419933; +var IFCTEXTUREVERTEX = 1210645708; +var IFCTEXTUREMAP = 2552916305; +var IFCTEXTURECOORDINATEGENERATOR = 1742049831; +var IFCTEXTURECOORDINATE = 280115917; +var IFCTEXTSTYLEWITHBOXCHARACTERISTICS = 1484833681; +var IFCTEXTSTYLETEXTMODEL = 1640371178; +var IFCTEXTSTYLEFORDEFINEDFONT = 2636378356; +var IFCTEXTSTYLEFONTMODEL = 1983826977; +var IFCTEXTSTYLE = 1447204868; +var IFCTELECOMADDRESS = 912023232; +var IFCTABLEROW = 531007025; +var IFCTABLE = 985171141; +var IFCSYMBOLSTYLE = 1290481447; +var IFCSURFACETEXTURE = 626085974; +var IFCSURFACESTYLEWITHTEXTURES = 1351298697; +var IFCSURFACESTYLESHADING = 846575682; +var IFCSURFACESTYLEREFRACTION = 1607154358; +var IFCSURFACESTYLELIGHTING = 3303107099; +var IFCSURFACESTYLE = 1300840506; +var IFCSTYLEDREPRESENTATION = 3049322572; +var IFCSTYLEDITEM = 3958052878; +var IFCSTYLEMODEL = 2830218821; +var IFCSTRUCTURALLOADTEMPERATURE = 3408363356; +var IFCSTRUCTURALLOADSTATIC = 2525727697; +var IFCSTRUCTURALLOAD = 2162789131; +var IFCSTRUCTURALCONNECTIONCONDITION = 2273995522; +var IFCSIMPLEPROPERTY = 3692461612; +var IFCSHAPEREPRESENTATION = 4240577450; +var IFCSHAPEMODEL = 3982875396; +var IFCSHAPEASPECT = 867548509; +var IFCSECTIONREINFORCEMENTPROPERTIES = 4165799628; +var IFCSECTIONPROPERTIES = 2042790032; +var IFCSIUNIT = 448429030; +var IFCROOT = 2341007311; +var IFCRIBPLATEPROFILEPROPERTIES = 3679540991; +var IFCREPRESENTATIONMAP = 1660063152; +var IFCREPRESENTATIONITEM = 3008791417; +var IFCREPRESENTATIONCONTEXT = 3377609919; +var IFCREPRESENTATION = 1076942058; +var IFCRELAXATION = 1222501353; +var IFCREINFORCEMENTBARPROPERTIES = 1580146022; +var IFCREFERENCESVALUEDOCUMENT = 2692823254; +var IFCQUANTITYWEIGHT = 825690147; +var IFCQUANTITYVOLUME = 2405470396; +var IFCQUANTITYTIME = 3252649465; +var IFCQUANTITYLENGTH = 931644368; +var IFCQUANTITYCOUNT = 2093928680; +var IFCQUANTITYAREA = 2044713172; +var IFCPROPERTYENUMERATION = 3710013099; +var IFCPROPERTYDEPENDENCYRELATIONSHIP = 148025276; +var IFCPROPERTYCONSTRAINTRELATIONSHIP = 3896028662; +var IFCPROPERTY = 2598011224; +var IFCPROFILEPROPERTIES = 2802850158; +var IFCPROFILEDEF = 3958567839; +var IFCPRODUCTSOFCOMBUSTIONPROPERTIES = 2267347899; +var IFCPRODUCTREPRESENTATION = 2095639259; +var IFCPRESENTATIONSTYLEASSIGNMENT = 2417041796; +var IFCPRESENTATIONSTYLE = 3119450353; +var IFCPRESENTATIONLAYERWITHSTYLE = 1304840413; +var IFCPRESENTATIONLAYERASSIGNMENT = 2022622350; +var IFCPREDEFINEDTEXTFONT = 1775413392; +var IFCPREDEFINEDTERMINATORSYMBOL = 3213052703; +var IFCPREDEFINEDSYMBOL = 990879717; +var IFCPREDEFINEDITEM = 3727388367; +var IFCPOSTALADDRESS = 3355820592; +var IFCPHYSICALSIMPLEQUANTITY = 2226359599; +var IFCPHYSICALQUANTITY = 2483315170; +var IFCPERSONANDORGANIZATION = 101040310; +var IFCPERSON = 2077209135; +var IFCOWNERHISTORY = 1207048766; +var IFCORGANIZATIONRELATIONSHIP = 1411181986; +var IFCORGANIZATION = 4251960020; +var IFCOPTICALMATERIALPROPERTIES = 1227763645; +var IFCOBJECTIVE = 2251480897; +var IFCOBJECTPLACEMENT = 3701648758; +var IFCNAMEDUNIT = 1918398963; +var IFCMONETARYUNIT = 2706619895; +var IFCMETRIC = 3368373690; +var IFCMECHANICALSTEELMATERIALPROPERTIES = 677618848; +var IFCMECHANICALMATERIALPROPERTIES = 4256014907; +var IFCMEASUREWITHUNIT = 2597039031; +var IFCMATERIALPROPERTIES = 3265635763; +var IFCMATERIALLIST = 2199411900; +var IFCMATERIALLAYERSETUSAGE = 1303795690; +var IFCMATERIALLAYERSET = 3303938423; +var IFCMATERIALLAYER = 248100487; +var IFCMATERIALCLASSIFICATIONRELATIONSHIP = 1847130766; +var IFCMATERIAL = 1838606355; +var IFCLOCALTIME = 30780891; +var IFCLIGHTINTENSITYDISTRIBUTION = 1566485204; +var IFCLIGHTDISTRIBUTIONDATA = 4162380809; +var IFCLIBRARYREFERENCE = 3452421091; +var IFCLIBRARYINFORMATION = 2655187982; +var IFCIRREGULARTIMESERIESVALUE = 3020489413; +var IFCGRIDAXIS = 852622518; +var IFCEXTERNALLYDEFINEDTEXTFONT = 3548104201; +var IFCEXTERNALLYDEFINEDSYMBOL = 3207319532; +var IFCEXTERNALLYDEFINEDSURFACESTYLE = 1040185647; +var IFCEXTERNALLYDEFINEDHATCHSTYLE = 2242383968; +var IFCEXTERNALREFERENCE = 3200245327; +var IFCENVIRONMENTALIMPACTVALUE = 1648886627; +var IFCDRAUGHTINGCALLOUTRELATIONSHIP = 3796139169; +var IFCDOCUMENTINFORMATIONRELATIONSHIP = 770865208; +var IFCDOCUMENTINFORMATION = 1154170062; +var IFCDOCUMENTELECTRONICFORMAT = 1376555844; +var IFCDIMENSIONALEXPONENTS = 2949456006; +var IFCDERIVEDUNITELEMENT = 1045800335; +var IFCDERIVEDUNIT = 1765591967; +var IFCDATEANDTIME = 1072939445; +var IFCCURVESTYLEFONTPATTERN = 3510044353; +var IFCCURVESTYLEFONTANDSCALING = 2367409068; +var IFCCURVESTYLEFONT = 1105321065; +var IFCCURRENCYRELATIONSHIP = 539742890; +var IFCCOSTVALUE = 602808272; +var IFCCOORDINATEDUNIVERSALTIMEOFFSET = 1065062679; +var IFCCONSTRAINTRELATIONSHIP = 347226245; +var IFCCONSTRAINTCLASSIFICATIONRELATIONSHIP = 613356794; +var IFCCONSTRAINTAGGREGATIONRELATIONSHIP = 1658513725; +var IFCCONSTRAINT = 1959218052; +var IFCCONNECTIONSURFACEGEOMETRY = 2732653382; +var IFCCONNECTIONPORTGEOMETRY = 4257277454; +var IFCCONNECTIONPOINTGEOMETRY = 2614616156; +var IFCCONNECTIONGEOMETRY = 2859738748; +var IFCCOLOURSPECIFICATION = 3264961684; +var IFCCLASSIFICATIONNOTATIONFACET = 3639012971; +var IFCCLASSIFICATIONNOTATION = 938368621; +var IFCCLASSIFICATIONITEMRELATIONSHIP = 1098599126; +var IFCCLASSIFICATIONITEM = 1767535486; +var IFCCLASSIFICATION = 747523909; +var IFCCALENDARDATE = 622194075; +var IFCBOUNDARYNODECONDITIONWARPING = 2069777674; +var IFCBOUNDARYNODECONDITION = 1387855156; +var IFCBOUNDARYFACECONDITION = 3367102660; +var IFCBOUNDARYEDGECONDITION = 1560379544; +var IFCBOUNDARYCONDITION = 4037036970; +var IFCAPPROVALRELATIONSHIP = 3869604511; +var IFCAPPROVALPROPERTYRELATIONSHIP = 390851274; +var IFCAPPROVALACTORRELATIONSHIP = 2080292479; +var IFCAPPROVAL = 130549933; +var IFCAPPLIEDVALUERELATIONSHIP = 1110488051; +var IFCAPPLIEDVALUE = 411424972; +var IFCAPPLICATION = 639542469; +var IFCADDRESS = 618182010; +var IFCACTORROLE = 3630933823; +var FILE_DESCRIPTION = 599546466; +var FILE_NAME = 1390159747; +var FILE_SCHEMA = 1109904537; +var Handle$5 = class Handle { + constructor(value) { + this.value = value; + this.type = 5; + } +}; +var logical; +(function(logical2) { + logical2[logical2["FALSE"] = 0] = "FALSE"; + logical2[logical2["TRUE"] = 1] = "TRUE"; + logical2[logical2["UNKNOWN"] = 2] = "UNKNOWN"; +})(logical || (logical = {})); +var IfcLineObject$1 = class IfcLineObject { + constructor(expressID = -1) { + this.expressID = expressID; + this.type = 0; + } +}; +var FromRawLineData = []; +var InversePropertyDef = {}; +var InheritanceDef = {}; +var Constructors = {}; +var ToRawLineData = {}; +var TypeInitialisers = {}; +var SchemaNames = []; +function TypeInitialiser(schema, tapeItem) { + if (Array.isArray(tapeItem)) + tapeItem.map((p) => TypeInitialiser(schema, p)); + if (tapeItem.typecode) + return TypeInitialisers[schema][tapeItem.typecode](tapeItem.value); + else + return tapeItem.value; +} +function Labelise(tapeItem) { + tapeItem.value = tapeItem.value.toString(); + tapeItem.valueType = tapeItem.type; + tapeItem.type = 2; + tapeItem.label = tapeItem.constructor.name.toUpperCase(); + return tapeItem; +} +var Schemas$1; +(function(Schemas2) { + Schemas2["IFC2X3"] = "IFC2X3"; + Schemas2["IFC4"] = "IFC4"; + Schemas2["IFC4X3"] = "IFC4X3"; +})(Schemas$1 || (Schemas$1 = {})); +SchemaNames[1] = ["IFC2X3", "IFC2X_FINAL"]; +FromRawLineData[1] = { + 3630933823: (v) => new IFC2X3$1.IfcActorRole(v[0], !v[1] ? null : new IFC2X3$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcText(!v[2] ? null : v[2].value)), + 618182010: (v) => new IFC2X3$1.IfcAddress(v[0], !v[1] ? null : new IFC2X3$1.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value)), + 639542469: (v) => new IFC2X3$1.IfcApplication(new Handle$5(!v[0] ? null : v[0].value), new IFC2X3$1.IfcLabel(!v[1] ? null : v[1].value), new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), new IFC2X3$1.IfcIdentifier(!v[3] ? null : v[3].value)), + 411424972: (v) => new IFC2X3$1.IfcAppliedValue(!v[0] ? null : new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value), !v[3] ? null : new Handle$5(!v[3] ? null : v[3].value), !v[4] ? null : new Handle$5(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value)), + 1110488051: (v) => { + var _a; + return new IFC2X3$1.IfcAppliedValueRelationship(new Handle$5(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], v[2], !v[3] ? null : new IFC2X3$1.IfcLabel(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcText(!v[4] ? null : v[4].value)); + }, + 130549933: (v) => new IFC2X3$1.IfcApproval(!v[0] ? null : new IFC2X3$1.IfcText(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcLabel(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcText(!v[4] ? null : v[4].value), new IFC2X3$1.IfcLabel(!v[5] ? null : v[5].value), new IFC2X3$1.IfcIdentifier(!v[6] ? null : v[6].value)), + 2080292479: (v) => new IFC2X3$1.IfcApprovalActorRelationship(new Handle$5(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value)), + 390851274: (v) => { + var _a; + return new IFC2X3$1.IfcApprovalPropertyRelationship(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new Handle$5(!v[1] ? null : v[1].value)); + }, + 3869604511: (v) => new IFC2X3$1.IfcApprovalRelationship(new Handle$5(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcText(!v[2] ? null : v[2].value), new IFC2X3$1.IfcLabel(!v[3] ? null : v[3].value)), + 4037036970: (v) => new IFC2X3$1.IfcBoundaryCondition(!v[0] ? null : new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value)), + 1560379544: (v) => new IFC2X3$1.IfcBoundaryEdgeCondition(!v[0] ? null : new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcModulusOfLinearSubgradeReactionMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcModulusOfLinearSubgradeReactionMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcModulusOfLinearSubgradeReactionMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcModulusOfRotationalSubgradeReactionMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3$1.IfcModulusOfRotationalSubgradeReactionMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3$1.IfcModulusOfRotationalSubgradeReactionMeasure(!v[6] ? null : v[6].value)), + 3367102660: (v) => new IFC2X3$1.IfcBoundaryFaceCondition(!v[0] ? null : new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcModulusOfSubgradeReactionMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcModulusOfSubgradeReactionMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcModulusOfSubgradeReactionMeasure(!v[3] ? null : v[3].value)), + 1387855156: (v) => new IFC2X3$1.IfcBoundaryNodeCondition(!v[0] ? null : new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcLinearStiffnessMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLinearStiffnessMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcLinearStiffnessMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcRotationalStiffnessMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3$1.IfcRotationalStiffnessMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3$1.IfcRotationalStiffnessMeasure(!v[6] ? null : v[6].value)), + 2069777674: (v) => new IFC2X3$1.IfcBoundaryNodeConditionWarping(!v[0] ? null : new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcLinearStiffnessMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLinearStiffnessMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcLinearStiffnessMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcRotationalStiffnessMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3$1.IfcRotationalStiffnessMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3$1.IfcRotationalStiffnessMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcWarpingMomentMeasure(!v[7] ? null : v[7].value)), + 622194075: (v) => new IFC2X3$1.IfcCalendarDate(new IFC2X3$1.IfcDayInMonthNumber(!v[0] ? null : v[0].value), new IFC2X3$1.IfcMonthInYearNumber(!v[1] ? null : v[1].value), new IFC2X3$1.IfcYearNumber(!v[2] ? null : v[2].value)), + 747523909: (v) => new IFC2X3$1.IfcClassification(new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), new IFC2X3$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value), new IFC2X3$1.IfcLabel(!v[3] ? null : v[3].value)), + 1767535486: (v) => new IFC2X3$1.IfcClassificationItem(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value)), + 1098599126: (v) => { + var _a; + return new IFC2X3$1.IfcClassificationItemRelationship(new Handle$5(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 938368621: (v) => { + var _a; + return new IFC2X3$1.IfcClassificationNotation(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 3639012971: (v) => new IFC2X3$1.IfcClassificationNotationFacet(new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value)), + 3264961684: (v) => new IFC2X3$1.IfcColourSpecification(!v[0] ? null : new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value)), + 2859738748: (_) => new IFC2X3$1.IfcConnectionGeometry(), + 2614616156: (v) => new IFC2X3$1.IfcConnectionPointGeometry(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value)), + 4257277454: (v) => new IFC2X3$1.IfcConnectionPortGeometry(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value)), + 2732653382: (v) => new IFC2X3$1.IfcConnectionSurfaceGeometry(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value)), + 1959218052: (v) => new IFC2X3$1.IfcConstraint(new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcText(!v[1] ? null : v[1].value), v[2], !v[3] ? null : new IFC2X3$1.IfcLabel(!v[3] ? null : v[3].value), !v[4] ? null : new Handle$5(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3$1.IfcLabel(!v[6] ? null : v[6].value)), + 1658513725: (v) => { + var _a; + return new IFC2X3$1.IfcConstraintAggregationRelationship(!v[0] ? null : new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcText(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], v[4]); + }, + 613356794: (v) => { + var _a; + return new IFC2X3$1.IfcConstraintClassificationRelationship(new Handle$5(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 347226245: (v) => { + var _a; + return new IFC2X3$1.IfcConstraintRelationship(!v[0] ? null : new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcText(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 1065062679: (v) => new IFC2X3$1.IfcCoordinatedUniversalTimeOffset(new IFC2X3$1.IfcHourInDay(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcMinuteInHour(!v[1] ? null : v[1].value), v[2]), + 602808272: (v) => new IFC2X3$1.IfcCostValue(!v[0] ? null : new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value), !v[3] ? null : new Handle$5(!v[3] ? null : v[3].value), !v[4] ? null : new Handle$5(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), new IFC2X3$1.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcText(!v[7] ? null : v[7].value)), + 539742890: (v) => new IFC2X3$1.IfcCurrencyRelationship(new Handle$5(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), new IFC2X3$1.IfcPositiveRatioMeasure(!v[2] ? null : v[2].value), new Handle$5(!v[3] ? null : v[3].value), !v[4] ? null : new Handle$5(!v[4] ? null : v[4].value)), + 1105321065: (v) => { + var _a; + return new IFC2X3$1.IfcCurveStyleFont(!v[0] ? null : new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 2367409068: (v) => new IFC2X3$1.IfcCurveStyleFontAndScaling(!v[0] ? null : new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), new IFC2X3$1.IfcPositiveRatioMeasure(!v[2] ? null : v[2].value)), + 3510044353: (v) => new IFC2X3$1.IfcCurveStyleFontPattern(new IFC2X3$1.IfcLengthMeasure(!v[0] ? null : v[0].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value)), + 1072939445: (v) => new IFC2X3$1.IfcDateAndTime(new Handle$5(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value)), + 1765591967: (v) => { + var _a; + return new IFC2X3$1.IfcDerivedUnit(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], v[1], !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value)); + }, + 1045800335: (v) => new IFC2X3$1.IfcDerivedUnitElement(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : v[1].value), + 2949456006: (v) => new IFC2X3$1.IfcDimensionalExponents(!v[0] ? null : v[0].value, !v[1] ? null : v[1].value, !v[2] ? null : v[2].value, !v[3] ? null : v[3].value, !v[4] ? null : v[4].value, !v[5] ? null : v[5].value, !v[6] ? null : v[6].value), + 1376555844: (v) => new IFC2X3$1.IfcDocumentElectronicFormat(!v[0] ? null : new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value)), + 1154170062: (v) => { + var _a, _b; + return new IFC2X3$1.IfcDocumentInformation(new IFC2X3$1.IfcIdentifier(!v[0] ? null : v[0].value), new IFC2X3$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcText(!v[2] ? null : v[2].value), !v[3] ? null : ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[4] ? null : new IFC2X3$1.IfcText(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3$1.IfcText(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3$1.IfcText(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new Handle$5(!v[8] ? null : v[8].value), !v[9] ? null : ((_b = v[9]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[10] ? null : new Handle$5(!v[10] ? null : v[10].value), !v[11] ? null : new Handle$5(!v[11] ? null : v[11].value), !v[12] ? null : new Handle$5(!v[12] ? null : v[12].value), !v[13] ? null : new Handle$5(!v[13] ? null : v[13].value), !v[14] ? null : new Handle$5(!v[14] ? null : v[14].value), v[15], v[16]); + }, + 770865208: (v) => { + var _a; + return new IFC2X3$1.IfcDocumentInformationRelationship(new Handle$5(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value)); + }, + 3796139169: (v) => new IFC2X3$1.IfcDraughtingCalloutRelationship(!v[0] ? null : new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcText(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), new Handle$5(!v[3] ? null : v[3].value)), + 1648886627: (v) => new IFC2X3$1.IfcEnvironmentalImpactValue(!v[0] ? null : new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value), !v[3] ? null : new Handle$5(!v[3] ? null : v[3].value), !v[4] ? null : new Handle$5(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), new IFC2X3$1.IfcLabel(!v[6] ? null : v[6].value), v[7], !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value)), + 3200245327: (v) => new IFC2X3$1.IfcExternalReference(!v[0] ? null : new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcIdentifier(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value)), + 2242383968: (v) => new IFC2X3$1.IfcExternallyDefinedHatchStyle(!v[0] ? null : new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcIdentifier(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value)), + 1040185647: (v) => new IFC2X3$1.IfcExternallyDefinedSurfaceStyle(!v[0] ? null : new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcIdentifier(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value)), + 3207319532: (v) => new IFC2X3$1.IfcExternallyDefinedSymbol(!v[0] ? null : new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcIdentifier(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value)), + 3548104201: (v) => new IFC2X3$1.IfcExternallyDefinedTextFont(!v[0] ? null : new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcIdentifier(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value)), + 852622518: (v) => new IFC2X3$1.IfcGridAxis(!v[0] ? null : new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), new IFC2X3$1.IfcBoolean(!v[2] ? null : v[2].value)), + 3020489413: (v) => { + var _a; + return new IFC2X3$1.IfcIrregularTimeSeriesValue(new Handle$5(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(1, p) : null)) || []); + }, + 2655187982: (v) => { + var _a; + return new IFC2X3$1.IfcLibraryInformation(new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value), !v[3] ? null : new Handle$5(!v[3] ? null : v[3].value), !v[4] ? null : ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 3452421091: (v) => new IFC2X3$1.IfcLibraryReference(!v[0] ? null : new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcIdentifier(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value)), + 4162380809: (v) => { + var _a, _b; + return new IFC2X3$1.IfcLightDistributionData(new IFC2X3$1.IfcPlaneAngleMeasure(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC2X3$1.IfcPlaneAngleMeasure(p.value) : null)) || [], ((_b = v[2]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC2X3$1.IfcLuminousIntensityDistributionMeasure(p.value) : null)) || []); + }, + 1566485204: (v) => { + var _a; + return new IFC2X3$1.IfcLightIntensityDistribution(v[0], ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 30780891: (v) => new IFC2X3$1.IfcLocalTime(new IFC2X3$1.IfcHourInDay(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcMinuteInHour(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcSecondInMinute(!v[2] ? null : v[2].value), !v[3] ? null : new Handle$5(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcDaylightSavingHour(!v[4] ? null : v[4].value)), + 1838606355: (v) => new IFC2X3$1.IfcMaterial(new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value)), + 1847130766: (v) => { + var _a; + return new IFC2X3$1.IfcMaterialClassificationRelationship(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new Handle$5(!v[1] ? null : v[1].value)); + }, + 248100487: (v) => new IFC2X3$1.IfcMaterialLayer(!v[0] ? null : new Handle$5(!v[0] ? null : v[0].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLogical(!v[2] ? null : v[2].value)), + 3303938423: (v) => { + var _a; + return new IFC2X3$1.IfcMaterialLayerSet(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[1] ? null : new IFC2X3$1.IfcLabel(!v[1] ? null : v[1].value)); + }, + 1303795690: (v) => new IFC2X3$1.IfcMaterialLayerSetUsage(new Handle$5(!v[0] ? null : v[0].value), v[1], v[2], new IFC2X3$1.IfcLengthMeasure(!v[3] ? null : v[3].value)), + 2199411900: (v) => { + var _a; + return new IFC2X3$1.IfcMaterialList(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 3265635763: (v) => new IFC2X3$1.IfcMaterialProperties(new Handle$5(!v[0] ? null : v[0].value)), + 2597039031: (v) => new IFC2X3$1.IfcMeasureWithUnit(TypeInitialiser(1, v[0]), new Handle$5(!v[1] ? null : v[1].value)), + 4256014907: (v) => new IFC2X3$1.IfcMechanicalMaterialProperties(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcDynamicViscosityMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcModulusOfElasticityMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcModulusOfElasticityMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcPositiveRatioMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3$1.IfcThermalExpansionCoefficientMeasure(!v[5] ? null : v[5].value)), + 677618848: (v) => { + var _a; + return new IFC2X3$1.IfcMechanicalSteelMaterialProperties(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcDynamicViscosityMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcModulusOfElasticityMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcModulusOfElasticityMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcPositiveRatioMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3$1.IfcThermalExpansionCoefficientMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3$1.IfcPressureMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcPressureMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcPositiveRatioMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC2X3$1.IfcModulusOfElasticityMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC2X3$1.IfcPressureMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC2X3$1.IfcPositiveRatioMeasure(!v[11] ? null : v[11].value), !v[12] ? null : ((_a = v[12]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 3368373690: (v) => new IFC2X3$1.IfcMetric(new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcText(!v[1] ? null : v[1].value), v[2], !v[3] ? null : new IFC2X3$1.IfcLabel(!v[3] ? null : v[3].value), !v[4] ? null : new Handle$5(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3$1.IfcLabel(!v[6] ? null : v[6].value), v[7], !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), new Handle$5(!v[9] ? null : v[9].value)), + 2706619895: (v) => new IFC2X3$1.IfcMonetaryUnit(v[0]), + 1918398963: (v) => new IFC2X3$1.IfcNamedUnit(new Handle$5(!v[0] ? null : v[0].value), v[1]), + 3701648758: (_) => new IFC2X3$1.IfcObjectPlacement(), + 2251480897: (v) => new IFC2X3$1.IfcObjective(new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcText(!v[1] ? null : v[1].value), v[2], !v[3] ? null : new IFC2X3$1.IfcLabel(!v[3] ? null : v[3].value), !v[4] ? null : new Handle$5(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3$1.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : new Handle$5(!v[7] ? null : v[7].value), !v[8] ? null : new Handle$5(!v[8] ? null : v[8].value), v[9], !v[10] ? null : new IFC2X3$1.IfcLabel(!v[10] ? null : v[10].value)), + 1227763645: (v) => new IFC2X3$1.IfcOpticalMaterialProperties(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcPositiveRatioMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcPositiveRatioMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcPositiveRatioMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcPositiveRatioMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3$1.IfcPositiveRatioMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3$1.IfcPositiveRatioMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcPositiveRatioMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcPositiveRatioMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC2X3$1.IfcPositiveRatioMeasure(!v[9] ? null : v[9].value)), + 4251960020: (v) => { + var _a, _b; + return new IFC2X3$1.IfcOrganization(!v[0] ? null : new IFC2X3$1.IfcIdentifier(!v[0] ? null : v[0].value), new IFC2X3$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcText(!v[2] ? null : v[2].value), !v[3] ? null : ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[4] ? null : ((_b = v[4]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 1411181986: (v) => { + var _a; + return new IFC2X3$1.IfcOrganizationRelationship(new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcText(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 1207048766: (v) => new IFC2X3$1.IfcOwnerHistory(new Handle$5(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), v[2], v[3], !v[4] ? null : new IFC2X3$1.IfcTimeStamp(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), new IFC2X3$1.IfcTimeStamp(!v[7] ? null : v[7].value)), + 2077209135: (v) => { + var _a, _b, _c, _d, _e; + return new IFC2X3$1.IfcPerson(!v[0] ? null : new IFC2X3$1.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC2X3$1.IfcLabel(p.value) : null)) || [], !v[4] ? null : ((_b = v[4]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC2X3$1.IfcLabel(p.value) : null)) || [], !v[5] ? null : ((_c = v[5]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? new IFC2X3$1.IfcLabel(p.value) : null)) || [], !v[6] ? null : ((_d = v[6]) == null ? void 0 : _d.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : ((_e = v[7]) == null ? void 0 : _e.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 101040310: (v) => { + var _a; + return new IFC2X3$1.IfcPersonAndOrganization(new Handle$5(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 2483315170: (v) => new IFC2X3$1.IfcPhysicalQuantity(new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcText(!v[1] ? null : v[1].value)), + 2226359599: (v) => new IFC2X3$1.IfcPhysicalSimpleQuantity(new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value)), + 3355820592: (v) => { + var _a; + return new IFC2X3$1.IfcPostalAddress(v[0], !v[1] ? null : new IFC2X3$1.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcLabel(!v[3] ? null : v[3].value), !v[4] ? null : ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC2X3$1.IfcLabel(p.value) : null)) || [], !v[5] ? null : new IFC2X3$1.IfcLabel(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3$1.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : new IFC2X3$1.IfcLabel(!v[9] ? null : v[9].value)); + }, + 3727388367: (v) => new IFC2X3$1.IfcPreDefinedItem(new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value)), + 990879717: (v) => new IFC2X3$1.IfcPreDefinedSymbol(new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value)), + 3213052703: (v) => new IFC2X3$1.IfcPreDefinedTerminatorSymbol(new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value)), + 1775413392: (v) => new IFC2X3$1.IfcPreDefinedTextFont(new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value)), + 2022622350: (v) => { + var _a; + return new IFC2X3$1.IfcPresentationLayerAssignment(new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[3] ? null : new IFC2X3$1.IfcIdentifier(!v[3] ? null : v[3].value)); + }, + 1304840413: (v) => { + var _a, _b; + return new IFC2X3$1.IfcPresentationLayerWithStyle(new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[3] ? null : new IFC2X3$1.IfcIdentifier(!v[3] ? null : v[3].value), !v[4] ? null : v[4].value, !v[5] ? null : v[5].value, !v[6] ? null : v[6].value, !v[7] ? null : ((_b = v[7]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 3119450353: (v) => new IFC2X3$1.IfcPresentationStyle(!v[0] ? null : new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value)), + 2417041796: (v) => { + var _a; + return new IFC2X3$1.IfcPresentationStyleAssignment(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 2095639259: (v) => { + var _a; + return new IFC2X3$1.IfcProductRepresentation(!v[0] ? null : new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 2267347899: (v) => new IFC2X3$1.IfcProductsOfCombustionProperties(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcSpecificHeatCapacityMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcPositiveRatioMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcPositiveRatioMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcPositiveRatioMeasure(!v[4] ? null : v[4].value)), + 3958567839: (v) => new IFC2X3$1.IfcProfileDef(v[0], !v[1] ? null : new IFC2X3$1.IfcLabel(!v[1] ? null : v[1].value)), + 2802850158: (v) => new IFC2X3$1.IfcProfileProperties(!v[0] ? null : new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value)), + 2598011224: (v) => new IFC2X3$1.IfcProperty(new IFC2X3$1.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcText(!v[1] ? null : v[1].value)), + 3896028662: (v) => { + var _a; + return new IFC2X3$1.IfcPropertyConstraintRelationship(new Handle$5(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value)); + }, + 148025276: (v) => new IFC2X3$1.IfcPropertyDependencyRelationship(new Handle$5(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcText(!v[4] ? null : v[4].value)), + 3710013099: (v) => { + var _a; + return new IFC2X3$1.IfcPropertyEnumeration(new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(1, p) : null)) || [], !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value)); + }, + 2044713172: (v) => new IFC2X3$1.IfcQuantityArea(new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value), new IFC2X3$1.IfcAreaMeasure(!v[3] ? null : v[3].value)), + 2093928680: (v) => new IFC2X3$1.IfcQuantityCount(new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value), new IFC2X3$1.IfcCountMeasure(!v[3] ? null : v[3].value)), + 931644368: (v) => new IFC2X3$1.IfcQuantityLength(new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value), new IFC2X3$1.IfcLengthMeasure(!v[3] ? null : v[3].value)), + 3252649465: (v) => new IFC2X3$1.IfcQuantityTime(new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value), new IFC2X3$1.IfcTimeMeasure(!v[3] ? null : v[3].value)), + 2405470396: (v) => new IFC2X3$1.IfcQuantityVolume(new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value), new IFC2X3$1.IfcVolumeMeasure(!v[3] ? null : v[3].value)), + 825690147: (v) => new IFC2X3$1.IfcQuantityWeight(new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value), new IFC2X3$1.IfcMassMeasure(!v[3] ? null : v[3].value)), + 2692823254: (v) => { + var _a; + return new IFC2X3$1.IfcReferencesValueDocument(new Handle$5(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value)); + }, + 1580146022: (v) => new IFC2X3$1.IfcReinforcementBarProperties(new IFC2X3$1.IfcAreaMeasure(!v[0] ? null : v[0].value), new IFC2X3$1.IfcLabel(!v[1] ? null : v[1].value), v[2], !v[3] ? null : new IFC2X3$1.IfcLengthMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3$1.IfcCountMeasure(!v[5] ? null : v[5].value)), + 1222501353: (v) => new IFC2X3$1.IfcRelaxation(new IFC2X3$1.IfcNormalisedRatioMeasure(!v[0] ? null : v[0].value), new IFC2X3$1.IfcNormalisedRatioMeasure(!v[1] ? null : v[1].value)), + 1076942058: (v) => { + var _a; + return new IFC2X3$1.IfcRepresentation(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 3377609919: (v) => new IFC2X3$1.IfcRepresentationContext(!v[0] ? null : new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcLabel(!v[1] ? null : v[1].value)), + 3008791417: (_) => new IFC2X3$1.IfcRepresentationItem(), + 1660063152: (v) => new IFC2X3$1.IfcRepresentationMap(new Handle$5(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value)), + 3679540991: (v) => new IFC2X3$1.IfcRibPlateProfileProperties(!v[0] ? null : new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), v[6]), + 2341007311: (v) => new IFC2X3$1.IfcRoot(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value)), + 448429030: (v) => new IFC2X3$1.IfcSIUnit(v[0], v[1], v[2]), + 2042790032: (v) => new IFC2X3$1.IfcSectionProperties(v[0], new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value)), + 4165799628: (v) => { + var _a; + return new IFC2X3$1.IfcSectionReinforcementProperties(new IFC2X3$1.IfcLengthMeasure(!v[0] ? null : v[0].value), new IFC2X3$1.IfcLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLengthMeasure(!v[2] ? null : v[2].value), v[3], new Handle$5(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 867548509: (v) => { + var _a; + return new IFC2X3$1.IfcShapeAspect(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[1] ? null : new IFC2X3$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcText(!v[2] ? null : v[2].value), !v[3] ? null : v[3].value, new Handle$5(!v[4] ? null : v[4].value)); + }, + 3982875396: (v) => { + var _a; + return new IFC2X3$1.IfcShapeModel(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 4240577450: (v) => { + var _a; + return new IFC2X3$1.IfcShapeRepresentation(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 3692461612: (v) => new IFC2X3$1.IfcSimpleProperty(new IFC2X3$1.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcText(!v[1] ? null : v[1].value)), + 2273995522: (v) => new IFC2X3$1.IfcStructuralConnectionCondition(!v[0] ? null : new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value)), + 2162789131: (v) => new IFC2X3$1.IfcStructuralLoad(!v[0] ? null : new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value)), + 2525727697: (v) => new IFC2X3$1.IfcStructuralLoadStatic(!v[0] ? null : new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value)), + 3408363356: (v) => new IFC2X3$1.IfcStructuralLoadTemperature(!v[0] ? null : new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcThermodynamicTemperatureMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcThermodynamicTemperatureMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcThermodynamicTemperatureMeasure(!v[3] ? null : v[3].value)), + 2830218821: (v) => { + var _a; + return new IFC2X3$1.IfcStyleModel(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 3958052878: (v) => { + var _a; + return new IFC2X3$1.IfcStyledItem(!v[0] ? null : new Handle$5(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value)); + }, + 3049322572: (v) => { + var _a; + return new IFC2X3$1.IfcStyledRepresentation(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 1300840506: (v) => { + var _a; + return new IFC2X3$1.IfcSurfaceStyle(!v[0] ? null : new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), v[1], ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 3303107099: (v) => new IFC2X3$1.IfcSurfaceStyleLighting(new Handle$5(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), new Handle$5(!v[3] ? null : v[3].value)), + 1607154358: (v) => new IFC2X3$1.IfcSurfaceStyleRefraction(!v[0] ? null : new IFC2X3$1.IfcReal(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcReal(!v[1] ? null : v[1].value)), + 846575682: (v) => new IFC2X3$1.IfcSurfaceStyleShading(new Handle$5(!v[0] ? null : v[0].value)), + 1351298697: (v) => { + var _a; + return new IFC2X3$1.IfcSurfaceStyleWithTextures(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 626085974: (v) => new IFC2X3$1.IfcSurfaceTexture(!v[0] ? null : v[0].value, !v[1] ? null : v[1].value, v[2], !v[3] ? null : new Handle$5(!v[3] ? null : v[3].value)), + 1290481447: (v) => new IFC2X3$1.IfcSymbolStyle(!v[0] ? null : new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), TypeInitialiser(1, v[1])), + 985171141: (v) => { + var _a; + return new IFC2X3$1.IfcTable(!v[0] ? null : v[0].value, ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 531007025: (v) => { + var _a; + return new IFC2X3$1.IfcTableRow(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(1, p) : null)) || [], !v[1] ? null : v[1].value); + }, + 912023232: (v) => { + var _a, _b, _c; + return new IFC2X3$1.IfcTelecomAddress(v[0], !v[1] ? null : new IFC2X3$1.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC2X3$1.IfcLabel(p.value) : null)) || [], !v[4] ? null : ((_b = v[4]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC2X3$1.IfcLabel(p.value) : null)) || [], !v[5] ? null : new IFC2X3$1.IfcLabel(!v[5] ? null : v[5].value), !v[6] ? null : ((_c = v[6]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? new IFC2X3$1.IfcLabel(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value)); + }, + 1447204868: (v) => new IFC2X3$1.IfcTextStyle(!v[0] ? null : new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value), new Handle$5(!v[3] ? null : v[3].value)), + 1983826977: (v) => { + var _a; + return new IFC2X3$1.IfcTextStyleFontModel(new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC2X3$1.IfcTextFontName(p.value) : null)) || [], !v[2] ? null : new IFC2X3$1.IfcFontStyle(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcFontVariant(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcFontWeight(!v[4] ? null : v[4].value), TypeInitialiser(1, v[5])); + }, + 2636378356: (v) => new IFC2X3$1.IfcTextStyleForDefinedFont(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value)), + 1640371178: (v) => new IFC2X3$1.IfcTextStyleTextModel(!v[0] ? null : TypeInitialiser(1, v[0]), !v[1] ? null : new IFC2X3$1.IfcTextAlignment(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcTextDecoration(!v[2] ? null : v[2].value), !v[3] ? null : TypeInitialiser(1, v[3]), !v[4] ? null : TypeInitialiser(1, v[4]), !v[5] ? null : new IFC2X3$1.IfcTextTransformation(!v[5] ? null : v[5].value), !v[6] ? null : TypeInitialiser(1, v[6])), + 1484833681: (v) => new IFC2X3$1.IfcTextStyleWithBoxCharacteristics(!v[0] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcPlaneAngleMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcPlaneAngleMeasure(!v[3] ? null : v[3].value), !v[4] ? null : TypeInitialiser(1, v[4])), + 280115917: (_) => new IFC2X3$1.IfcTextureCoordinate(), + 1742049831: (v) => { + var _a; + return new IFC2X3$1.IfcTextureCoordinateGenerator(new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(1, p) : null)) || []); + }, + 2552916305: (v) => { + var _a; + return new IFC2X3$1.IfcTextureMap(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 1210645708: (v) => { + var _a; + return new IFC2X3$1.IfcTextureVertex(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC2X3$1.IfcParameterValue(p.value) : null)) || []); + }, + 3317419933: (v) => new IFC2X3$1.IfcThermalMaterialProperties(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcSpecificHeatCapacityMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcThermodynamicTemperatureMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcThermodynamicTemperatureMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcThermalConductivityMeasure(!v[4] ? null : v[4].value)), + 3101149627: (v) => new IFC2X3$1.IfcTimeSeries(new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcText(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), new Handle$5(!v[3] ? null : v[3].value), v[4], v[5], !v[6] ? null : new IFC2X3$1.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : new Handle$5(!v[7] ? null : v[7].value)), + 1718945513: (v) => { + var _a; + return new IFC2X3$1.IfcTimeSeriesReferenceRelationship(new Handle$5(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 581633288: (v) => { + var _a; + return new IFC2X3$1.IfcTimeSeriesValue(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(1, p) : null)) || []); + }, + 1377556343: (_) => new IFC2X3$1.IfcTopologicalRepresentationItem(), + 1735638870: (v) => { + var _a; + return new IFC2X3$1.IfcTopologyRepresentation(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 180925521: (v) => { + var _a; + return new IFC2X3$1.IfcUnitAssignment(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 2799835756: (_) => new IFC2X3$1.IfcVertex(), + 3304826586: (v) => { + var _a, _b; + return new IFC2X3$1.IfcVertexBasedTextureMap(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], ((_b = v[1]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 1907098498: (v) => new IFC2X3$1.IfcVertexPoint(new Handle$5(!v[0] ? null : v[0].value)), + 891718957: (v) => { + var _a, _b; + return new IFC2X3$1.IfcVirtualGridIntersection(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], ((_b = v[1]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC2X3$1.IfcLengthMeasure(p.value) : null)) || []); + }, + 1065908215: (v) => new IFC2X3$1.IfcWaterProperties(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : !v[1] ? null : v[1].value, !v[2] ? null : new IFC2X3$1.IfcIonConcentrationMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcIonConcentrationMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcIonConcentrationMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3$1.IfcNormalisedRatioMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3$1.IfcPHMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcNormalisedRatioMeasure(!v[7] ? null : v[7].value)), + 2442683028: (v) => { + var _a; + return new IFC2X3$1.IfcAnnotationOccurrence(!v[0] ? null : new Handle$5(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value)); + }, + 962685235: (v) => { + var _a; + return new IFC2X3$1.IfcAnnotationSurfaceOccurrence(!v[0] ? null : new Handle$5(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value)); + }, + 3612888222: (v) => { + var _a; + return new IFC2X3$1.IfcAnnotationSymbolOccurrence(!v[0] ? null : new Handle$5(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value)); + }, + 2297822566: (v) => { + var _a; + return new IFC2X3$1.IfcAnnotationTextOccurrence(!v[0] ? null : new Handle$5(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value)); + }, + 3798115385: (v) => new IFC2X3$1.IfcArbitraryClosedProfileDef(v[0], !v[1] ? null : new IFC2X3$1.IfcLabel(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value)), + 1310608509: (v) => new IFC2X3$1.IfcArbitraryOpenProfileDef(v[0], !v[1] ? null : new IFC2X3$1.IfcLabel(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value)), + 2705031697: (v) => { + var _a; + return new IFC2X3$1.IfcArbitraryProfileDefWithVoids(v[0], !v[1] ? null : new IFC2X3$1.IfcLabel(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 616511568: (v) => new IFC2X3$1.IfcBlobTexture(!v[0] ? null : v[0].value, !v[1] ? null : v[1].value, v[2], !v[3] ? null : new Handle$5(!v[3] ? null : v[3].value), new IFC2X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : v[5].value), + 3150382593: (v) => new IFC2X3$1.IfcCenterLineProfileDef(v[0], !v[1] ? null : new IFC2X3$1.IfcLabel(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value)), + 647927063: (v) => new IFC2X3$1.IfcClassificationReference(!v[0] ? null : new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcIdentifier(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new Handle$5(!v[3] ? null : v[3].value)), + 776857604: (v) => new IFC2X3$1.IfcColourRgb(!v[0] ? null : new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), new IFC2X3$1.IfcNormalisedRatioMeasure(!v[1] ? null : v[1].value), new IFC2X3$1.IfcNormalisedRatioMeasure(!v[2] ? null : v[2].value), new IFC2X3$1.IfcNormalisedRatioMeasure(!v[3] ? null : v[3].value)), + 2542286263: (v) => { + var _a; + return new IFC2X3$1.IfcComplexProperty(new IFC2X3$1.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcText(!v[1] ? null : v[1].value), new IFC2X3$1.IfcIdentifier(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 1485152156: (v) => { + var _a; + return new IFC2X3$1.IfcCompositeProfileDef(v[0], !v[1] ? null : new IFC2X3$1.IfcLabel(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[3] ? null : new IFC2X3$1.IfcLabel(!v[3] ? null : v[3].value)); + }, + 370225590: (v) => { + var _a; + return new IFC2X3$1.IfcConnectedFaceSet(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 1981873012: (v) => new IFC2X3$1.IfcConnectionCurveGeometry(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value)), + 45288368: (v) => new IFC2X3$1.IfcConnectionPointEccentricity(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLengthMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcLengthMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLengthMeasure(!v[4] ? null : v[4].value)), + 3050246964: (v) => new IFC2X3$1.IfcContextDependentUnit(new Handle$5(!v[0] ? null : v[0].value), v[1], new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value)), + 2889183280: (v) => new IFC2X3$1.IfcConversionBasedUnit(new Handle$5(!v[0] ? null : v[0].value), v[1], new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), new Handle$5(!v[3] ? null : v[3].value)), + 3800577675: (v) => new IFC2X3$1.IfcCurveStyle(!v[0] ? null : new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : TypeInitialiser(1, v[2]), !v[3] ? null : new Handle$5(!v[3] ? null : v[3].value)), + 3632507154: (v) => new IFC2X3$1.IfcDerivedProfileDef(v[0], !v[1] ? null : new IFC2X3$1.IfcLabel(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), new Handle$5(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value)), + 2273265877: (v) => new IFC2X3$1.IfcDimensionCalloutRelationship(!v[0] ? null : new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcText(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), new Handle$5(!v[3] ? null : v[3].value)), + 1694125774: (v) => new IFC2X3$1.IfcDimensionPair(!v[0] ? null : new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcText(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), new Handle$5(!v[3] ? null : v[3].value)), + 3732053477: (v) => new IFC2X3$1.IfcDocumentReference(!v[0] ? null : new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcIdentifier(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value)), + 4170525392: (v) => new IFC2X3$1.IfcDraughtingPreDefinedTextFont(new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value)), + 3900360178: (v) => new IFC2X3$1.IfcEdge(new Handle$5(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value)), + 476780140: (v) => new IFC2X3$1.IfcEdgeCurve(new Handle$5(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), !v[3] ? null : v[3].value), + 1860660968: (v) => { + var _a; + return new IFC2X3$1.IfcExtendedMaterialProperties(new Handle$5(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[2] ? null : new IFC2X3$1.IfcText(!v[2] ? null : v[2].value), new IFC2X3$1.IfcLabel(!v[3] ? null : v[3].value)); + }, + 2556980723: (v) => { + var _a; + return new IFC2X3$1.IfcFace(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 1809719519: (v) => new IFC2X3$1.IfcFaceBound(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : v[1].value), + 803316827: (v) => new IFC2X3$1.IfcFaceOuterBound(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : v[1].value), + 3008276851: (v) => { + var _a; + return new IFC2X3$1.IfcFaceSurface(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : v[2].value); + }, + 4219587988: (v) => new IFC2X3$1.IfcFailureConnectionCondition(!v[0] ? null : new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcForceMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcForceMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcForceMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcForceMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3$1.IfcForceMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3$1.IfcForceMeasure(!v[6] ? null : v[6].value)), + 738692330: (v) => { + var _a; + return new IFC2X3$1.IfcFillAreaStyle(!v[0] ? null : new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 3857492461: (v) => new IFC2X3$1.IfcFuelProperties(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcThermodynamicTemperatureMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcPositiveRatioMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcHeatingValueMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcHeatingValueMeasure(!v[4] ? null : v[4].value)), + 803998398: (v) => new IFC2X3$1.IfcGeneralMaterialProperties(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcMolecularWeightMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcNormalisedRatioMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcMassDensityMeasure(!v[3] ? null : v[3].value)), + 1446786286: (v) => new IFC2X3$1.IfcGeneralProfileProperties(!v[0] ? null : new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcMassPerLengthMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3$1.IfcAreaMeasure(!v[6] ? null : v[6].value)), + 3448662350: (v) => new IFC2X3$1.IfcGeometricRepresentationContext(!v[0] ? null : new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcLabel(!v[1] ? null : v[1].value), new IFC2X3$1.IfcDimensionCount(!v[2] ? null : v[2].value), !v[3] ? null : !v[3] ? null : v[3].value, new Handle$5(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value)), + 2453401579: (_) => new IFC2X3$1.IfcGeometricRepresentationItem(), + 4142052618: (v) => new IFC2X3$1.IfcGeometricRepresentationSubContext(!v[0] ? null : new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcLabel(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcPositiveRatioMeasure(!v[3] ? null : v[3].value), v[4], !v[5] ? null : new IFC2X3$1.IfcLabel(!v[5] ? null : v[5].value)), + 3590301190: (v) => { + var _a; + return new IFC2X3$1.IfcGeometricSet(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 178086475: (v) => new IFC2X3$1.IfcGridPlacement(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value)), + 812098782: (v) => new IFC2X3$1.IfcHalfSpaceSolid(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : v[1].value), + 2445078500: (v) => new IFC2X3$1.IfcHygroscopicMaterialProperties(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcPositiveRatioMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcPositiveRatioMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcIsothermalMoistureCapacityMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcVaporPermeabilityMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3$1.IfcMoistureDiffusivityMeasure(!v[5] ? null : v[5].value)), + 3905492369: (v) => new IFC2X3$1.IfcImageTexture(!v[0] ? null : v[0].value, !v[1] ? null : v[1].value, v[2], !v[3] ? null : new Handle$5(!v[3] ? null : v[3].value), new IFC2X3$1.IfcIdentifier(!v[4] ? null : v[4].value)), + 3741457305: (v) => { + var _a; + return new IFC2X3$1.IfcIrregularTimeSeries(new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcText(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), new Handle$5(!v[3] ? null : v[3].value), v[4], v[5], !v[6] ? null : new IFC2X3$1.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : new Handle$5(!v[7] ? null : v[7].value), ((_a = v[8]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 1402838566: (v) => new IFC2X3$1.IfcLightSource(!v[0] ? null : new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcNormalisedRatioMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcNormalisedRatioMeasure(!v[3] ? null : v[3].value)), + 125510826: (v) => new IFC2X3$1.IfcLightSourceAmbient(!v[0] ? null : new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcNormalisedRatioMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcNormalisedRatioMeasure(!v[3] ? null : v[3].value)), + 2604431987: (v) => new IFC2X3$1.IfcLightSourceDirectional(!v[0] ? null : new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcNormalisedRatioMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcNormalisedRatioMeasure(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value)), + 4266656042: (v) => new IFC2X3$1.IfcLightSourceGoniometric(!v[0] ? null : new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcNormalisedRatioMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcNormalisedRatioMeasure(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), new IFC2X3$1.IfcThermodynamicTemperatureMeasure(!v[6] ? null : v[6].value), new IFC2X3$1.IfcLuminousFluxMeasure(!v[7] ? null : v[7].value), v[8], new Handle$5(!v[9] ? null : v[9].value)), + 1520743889: (v) => new IFC2X3$1.IfcLightSourcePositional(!v[0] ? null : new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcNormalisedRatioMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcNormalisedRatioMeasure(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC2X3$1.IfcReal(!v[6] ? null : v[6].value), new IFC2X3$1.IfcReal(!v[7] ? null : v[7].value), new IFC2X3$1.IfcReal(!v[8] ? null : v[8].value)), + 3422422726: (v) => new IFC2X3$1.IfcLightSourceSpot(!v[0] ? null : new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcNormalisedRatioMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcNormalisedRatioMeasure(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC2X3$1.IfcReal(!v[6] ? null : v[6].value), new IFC2X3$1.IfcReal(!v[7] ? null : v[7].value), new IFC2X3$1.IfcReal(!v[8] ? null : v[8].value), new Handle$5(!v[9] ? null : v[9].value), !v[10] ? null : new IFC2X3$1.IfcReal(!v[10] ? null : v[10].value), new IFC2X3$1.IfcPositivePlaneAngleMeasure(!v[11] ? null : v[11].value), new IFC2X3$1.IfcPositivePlaneAngleMeasure(!v[12] ? null : v[12].value)), + 2624227202: (v) => new IFC2X3$1.IfcLocalPlacement(!v[0] ? null : new Handle$5(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value)), + 1008929658: (_) => new IFC2X3$1.IfcLoop(), + 2347385850: (v) => new IFC2X3$1.IfcMappedItem(new Handle$5(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value)), + 2022407955: (v) => { + var _a; + return new IFC2X3$1.IfcMaterialDefinitionRepresentation(!v[0] ? null : new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new Handle$5(!v[3] ? null : v[3].value)); + }, + 1430189142: (v) => new IFC2X3$1.IfcMechanicalConcreteMaterialProperties(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcDynamicViscosityMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcModulusOfElasticityMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcModulusOfElasticityMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcPositiveRatioMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3$1.IfcThermalExpansionCoefficientMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3$1.IfcPressureMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcText(!v[8] ? null : v[8].value), !v[9] ? null : new IFC2X3$1.IfcText(!v[9] ? null : v[9].value), !v[10] ? null : new IFC2X3$1.IfcNormalisedRatioMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC2X3$1.IfcText(!v[11] ? null : v[11].value)), + 219451334: (v) => new IFC2X3$1.IfcObjectDefinition(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value)), + 2833995503: (v) => new IFC2X3$1.IfcOneDirectionRepeatFactor(new Handle$5(!v[0] ? null : v[0].value)), + 2665983363: (v) => { + var _a; + return new IFC2X3$1.IfcOpenShell(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 1029017970: (v) => new IFC2X3$1.IfcOrientedEdge(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : v[1].value), + 2529465313: (v) => new IFC2X3$1.IfcParameterizedProfileDef(v[0], !v[1] ? null : new IFC2X3$1.IfcLabel(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value)), + 2519244187: (v) => { + var _a; + return new IFC2X3$1.IfcPath(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 3021840470: (v) => { + var _a; + return new IFC2X3$1.IfcPhysicalComplexQuantity(new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new IFC2X3$1.IfcLabel(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3$1.IfcLabel(!v[5] ? null : v[5].value)); + }, + 597895409: (v) => { + var _a; + return new IFC2X3$1.IfcPixelTexture(!v[0] ? null : v[0].value, !v[1] ? null : v[1].value, v[2], !v[3] ? null : new Handle$5(!v[3] ? null : v[3].value), new IFC2X3$1.IfcInteger(!v[4] ? null : v[4].value), new IFC2X3$1.IfcInteger(!v[5] ? null : v[5].value), new IFC2X3$1.IfcInteger(!v[6] ? null : v[6].value), ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? Number(p.value) : null)) || []); + }, + 2004835150: (v) => new IFC2X3$1.IfcPlacement(new Handle$5(!v[0] ? null : v[0].value)), + 1663979128: (v) => new IFC2X3$1.IfcPlanarExtent(new IFC2X3$1.IfcLengthMeasure(!v[0] ? null : v[0].value), new IFC2X3$1.IfcLengthMeasure(!v[1] ? null : v[1].value)), + 2067069095: (_) => new IFC2X3$1.IfcPoint(), + 4022376103: (v) => new IFC2X3$1.IfcPointOnCurve(new Handle$5(!v[0] ? null : v[0].value), new IFC2X3$1.IfcParameterValue(!v[1] ? null : v[1].value)), + 1423911732: (v) => new IFC2X3$1.IfcPointOnSurface(new Handle$5(!v[0] ? null : v[0].value), new IFC2X3$1.IfcParameterValue(!v[1] ? null : v[1].value), new IFC2X3$1.IfcParameterValue(!v[2] ? null : v[2].value)), + 2924175390: (v) => { + var _a; + return new IFC2X3$1.IfcPolyLoop(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 2775532180: (v) => new IFC2X3$1.IfcPolygonalBoundedHalfSpace(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : v[1].value, new Handle$5(!v[2] ? null : v[2].value), new Handle$5(!v[3] ? null : v[3].value)), + 759155922: (v) => new IFC2X3$1.IfcPreDefinedColour(new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value)), + 2559016684: (v) => new IFC2X3$1.IfcPreDefinedCurveFont(new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value)), + 433424934: (v) => new IFC2X3$1.IfcPreDefinedDimensionSymbol(new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value)), + 179317114: (v) => new IFC2X3$1.IfcPreDefinedPointMarkerSymbol(new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value)), + 673634403: (v) => { + var _a; + return new IFC2X3$1.IfcProductDefinitionShape(!v[0] ? null : new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 871118103: (v) => new IFC2X3$1.IfcPropertyBoundedValue(new IFC2X3$1.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : TypeInitialiser(1, v[2]), !v[3] ? null : TypeInitialiser(1, v[3]), !v[4] ? null : new Handle$5(!v[4] ? null : v[4].value)), + 1680319473: (v) => new IFC2X3$1.IfcPropertyDefinition(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value)), + 4166981789: (v) => { + var _a; + return new IFC2X3$1.IfcPropertyEnumeratedValue(new IFC2X3$1.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(1, p) : null)) || [], !v[3] ? null : new Handle$5(!v[3] ? null : v[3].value)); + }, + 2752243245: (v) => { + var _a; + return new IFC2X3$1.IfcPropertyListValue(new IFC2X3$1.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(1, p) : null)) || [], !v[3] ? null : new Handle$5(!v[3] ? null : v[3].value)); + }, + 941946838: (v) => new IFC2X3$1.IfcPropertyReferenceValue(new IFC2X3$1.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), new Handle$5(!v[3] ? null : v[3].value)), + 3357820518: (v) => new IFC2X3$1.IfcPropertySetDefinition(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value)), + 3650150729: (v) => new IFC2X3$1.IfcPropertySingleValue(new IFC2X3$1.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : TypeInitialiser(1, v[2]), !v[3] ? null : new Handle$5(!v[3] ? null : v[3].value)), + 110355661: (v) => { + var _a, _b; + return new IFC2X3$1.IfcPropertyTableValue(new IFC2X3$1.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(1, p) : null)) || [], ((_b = v[3]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(1, p) : null)) || [], !v[4] ? null : new IFC2X3$1.IfcText(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value)); + }, + 3615266464: (v) => new IFC2X3$1.IfcRectangleProfileDef(v[0], !v[1] ? null : new IFC2X3$1.IfcLabel(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value)), + 3413951693: (v) => { + var _a; + return new IFC2X3$1.IfcRegularTimeSeries(new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcText(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), new Handle$5(!v[3] ? null : v[3].value), v[4], v[5], !v[6] ? null : new IFC2X3$1.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : new Handle$5(!v[7] ? null : v[7].value), new IFC2X3$1.IfcTimeMeasure(!v[8] ? null : v[8].value), ((_a = v[9]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 3765753017: (v) => { + var _a; + return new IFC2X3$1.IfcReinforcementDefinitionProperties(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 478536968: (v) => new IFC2X3$1.IfcRelationship(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value)), + 2778083089: (v) => new IFC2X3$1.IfcRoundedRectangleProfileDef(v[0], !v[1] ? null : new IFC2X3$1.IfcLabel(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value)), + 1509187699: (v) => { + var _a, _b; + return new IFC2X3$1.IfcSectionedSpine(new Handle$5(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], ((_b = v[2]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 2411513650: (v) => new IFC2X3$1.IfcServiceLifeFactor(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), v[4], !v[5] ? null : TypeInitialiser(1, v[5]), TypeInitialiser(1, v[6]), !v[7] ? null : TypeInitialiser(1, v[7])), + 4124623270: (v) => { + var _a; + return new IFC2X3$1.IfcShellBasedSurfaceModel(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 2609359061: (v) => new IFC2X3$1.IfcSlippageConnectionCondition(!v[0] ? null : new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLengthMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcLengthMeasure(!v[3] ? null : v[3].value)), + 723233188: (_) => new IFC2X3$1.IfcSolidModel(), + 2485662743: (v) => { + var _a; + return new IFC2X3$1.IfcSoundProperties(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), new IFC2X3$1.IfcBoolean(!v[4] ? null : v[4].value), v[5], ((_a = v[6]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 1202362311: (v) => new IFC2X3$1.IfcSoundValue(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new Handle$5(!v[4] ? null : v[4].value), new IFC2X3$1.IfcFrequencyMeasure(!v[5] ? null : v[5].value), !v[6] ? null : TypeInitialiser(1, v[6])), + 390701378: (v) => new IFC2X3$1.IfcSpaceThermalLoadProperties(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcPositiveRatioMeasure(!v[4] ? null : v[4].value), v[5], v[6], !v[7] ? null : new IFC2X3$1.IfcText(!v[7] ? null : v[7].value), new IFC2X3$1.IfcPowerMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC2X3$1.IfcPowerMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new Handle$5(!v[10] ? null : v[10].value), !v[11] ? null : new IFC2X3$1.IfcLabel(!v[11] ? null : v[11].value), !v[12] ? null : new IFC2X3$1.IfcLabel(!v[12] ? null : v[12].value), v[13]), + 1595516126: (v) => new IFC2X3$1.IfcStructuralLoadLinearForce(!v[0] ? null : new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcLinearForceMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLinearForceMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcLinearForceMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLinearMomentMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3$1.IfcLinearMomentMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3$1.IfcLinearMomentMeasure(!v[6] ? null : v[6].value)), + 2668620305: (v) => new IFC2X3$1.IfcStructuralLoadPlanarForce(!v[0] ? null : new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcPlanarForceMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcPlanarForceMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcPlanarForceMeasure(!v[3] ? null : v[3].value)), + 2473145415: (v) => new IFC2X3$1.IfcStructuralLoadSingleDisplacement(!v[0] ? null : new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLengthMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcLengthMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcPlaneAngleMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3$1.IfcPlaneAngleMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3$1.IfcPlaneAngleMeasure(!v[6] ? null : v[6].value)), + 1973038258: (v) => new IFC2X3$1.IfcStructuralLoadSingleDisplacementDistortion(!v[0] ? null : new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLengthMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcLengthMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcPlaneAngleMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3$1.IfcPlaneAngleMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3$1.IfcPlaneAngleMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcCurvatureMeasure(!v[7] ? null : v[7].value)), + 1597423693: (v) => new IFC2X3$1.IfcStructuralLoadSingleForce(!v[0] ? null : new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcForceMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcForceMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcForceMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcTorqueMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3$1.IfcTorqueMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3$1.IfcTorqueMeasure(!v[6] ? null : v[6].value)), + 1190533807: (v) => new IFC2X3$1.IfcStructuralLoadSingleForceWarping(!v[0] ? null : new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcForceMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcForceMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcForceMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcTorqueMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3$1.IfcTorqueMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3$1.IfcTorqueMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcWarpingMomentMeasure(!v[7] ? null : v[7].value)), + 3843319758: (v) => new IFC2X3$1.IfcStructuralProfileProperties(!v[0] ? null : new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcMassPerLengthMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3$1.IfcAreaMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcMomentOfInertiaMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcMomentOfInertiaMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC2X3$1.IfcMomentOfInertiaMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC2X3$1.IfcMomentOfInertiaMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC2X3$1.IfcWarpingConstantMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new IFC2X3$1.IfcLengthMeasure(!v[12] ? null : v[12].value), !v[13] ? null : new IFC2X3$1.IfcLengthMeasure(!v[13] ? null : v[13].value), !v[14] ? null : new IFC2X3$1.IfcAreaMeasure(!v[14] ? null : v[14].value), !v[15] ? null : new IFC2X3$1.IfcAreaMeasure(!v[15] ? null : v[15].value), !v[16] ? null : new IFC2X3$1.IfcSectionModulusMeasure(!v[16] ? null : v[16].value), !v[17] ? null : new IFC2X3$1.IfcSectionModulusMeasure(!v[17] ? null : v[17].value), !v[18] ? null : new IFC2X3$1.IfcSectionModulusMeasure(!v[18] ? null : v[18].value), !v[19] ? null : new IFC2X3$1.IfcSectionModulusMeasure(!v[19] ? null : v[19].value), !v[20] ? null : new IFC2X3$1.IfcSectionModulusMeasure(!v[20] ? null : v[20].value), !v[21] ? null : new IFC2X3$1.IfcLengthMeasure(!v[21] ? null : v[21].value), !v[22] ? null : new IFC2X3$1.IfcLengthMeasure(!v[22] ? null : v[22].value)), + 3653947884: (v) => new IFC2X3$1.IfcStructuralSteelProfileProperties(!v[0] ? null : new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcMassPerLengthMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3$1.IfcAreaMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcMomentOfInertiaMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcMomentOfInertiaMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC2X3$1.IfcMomentOfInertiaMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC2X3$1.IfcMomentOfInertiaMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC2X3$1.IfcWarpingConstantMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new IFC2X3$1.IfcLengthMeasure(!v[12] ? null : v[12].value), !v[13] ? null : new IFC2X3$1.IfcLengthMeasure(!v[13] ? null : v[13].value), !v[14] ? null : new IFC2X3$1.IfcAreaMeasure(!v[14] ? null : v[14].value), !v[15] ? null : new IFC2X3$1.IfcAreaMeasure(!v[15] ? null : v[15].value), !v[16] ? null : new IFC2X3$1.IfcSectionModulusMeasure(!v[16] ? null : v[16].value), !v[17] ? null : new IFC2X3$1.IfcSectionModulusMeasure(!v[17] ? null : v[17].value), !v[18] ? null : new IFC2X3$1.IfcSectionModulusMeasure(!v[18] ? null : v[18].value), !v[19] ? null : new IFC2X3$1.IfcSectionModulusMeasure(!v[19] ? null : v[19].value), !v[20] ? null : new IFC2X3$1.IfcSectionModulusMeasure(!v[20] ? null : v[20].value), !v[21] ? null : new IFC2X3$1.IfcLengthMeasure(!v[21] ? null : v[21].value), !v[22] ? null : new IFC2X3$1.IfcLengthMeasure(!v[22] ? null : v[22].value), !v[23] ? null : new IFC2X3$1.IfcAreaMeasure(!v[23] ? null : v[23].value), !v[24] ? null : new IFC2X3$1.IfcAreaMeasure(!v[24] ? null : v[24].value), !v[25] ? null : new IFC2X3$1.IfcPositiveRatioMeasure(!v[25] ? null : v[25].value), !v[26] ? null : new IFC2X3$1.IfcPositiveRatioMeasure(!v[26] ? null : v[26].value)), + 2233826070: (v) => new IFC2X3$1.IfcSubedge(new Handle$5(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value)), + 2513912981: (_) => new IFC2X3$1.IfcSurface(), + 1878645084: (v) => new IFC2X3$1.IfcSurfaceStyleRendering(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3$1.IfcNormalisedRatioMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value), !v[3] ? null : new Handle$5(!v[3] ? null : v[3].value), !v[4] ? null : new Handle$5(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : TypeInitialiser(1, v[7]), v[8]), + 2247615214: (v) => new IFC2X3$1.IfcSweptAreaSolid(new Handle$5(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value)), + 1260650574: (v) => new IFC2X3$1.IfcSweptDiskSolid(new Handle$5(!v[0] ? null : v[0].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value), new IFC2X3$1.IfcParameterValue(!v[3] ? null : v[3].value), new IFC2X3$1.IfcParameterValue(!v[4] ? null : v[4].value)), + 230924584: (v) => new IFC2X3$1.IfcSweptSurface(new Handle$5(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value)), + 3071757647: (v) => new IFC2X3$1.IfcTShapeProfileDef(v[0], !v[1] ? null : new IFC2X3$1.IfcLabel(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC2X3$1.IfcPlaneAngleMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC2X3$1.IfcPlaneAngleMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[12] ? null : v[12].value)), + 3028897424: (v) => { + var _a; + return new IFC2X3$1.IfcTerminatorSymbol(!v[0] ? null : new Handle$5(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), new Handle$5(!v[3] ? null : v[3].value)); + }, + 4282788508: (v) => new IFC2X3$1.IfcTextLiteral(new IFC2X3$1.IfcPresentableText(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), v[2]), + 3124975700: (v) => new IFC2X3$1.IfcTextLiteralWithExtent(new IFC2X3$1.IfcPresentableText(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), v[2], new Handle$5(!v[3] ? null : v[3].value), new IFC2X3$1.IfcBoxAlignment(!v[4] ? null : v[4].value)), + 2715220739: (v) => new IFC2X3$1.IfcTrapeziumProfileDef(v[0], !v[1] ? null : new IFC2X3$1.IfcLabel(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC2X3$1.IfcLengthMeasure(!v[6] ? null : v[6].value)), + 1345879162: (v) => new IFC2X3$1.IfcTwoDirectionRepeatFactor(new Handle$5(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value)), + 1628702193: (v) => { + var _a; + return new IFC2X3$1.IfcTypeObject(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 2347495698: (v) => { + var _a, _b; + return new IFC2X3$1.IfcTypeProduct(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value)); + }, + 427810014: (v) => new IFC2X3$1.IfcUShapeProfileDef(v[0], !v[1] ? null : new IFC2X3$1.IfcLabel(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC2X3$1.IfcPlaneAngleMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[10] ? null : v[10].value)), + 1417489154: (v) => new IFC2X3$1.IfcVector(new Handle$5(!v[0] ? null : v[0].value), new IFC2X3$1.IfcLengthMeasure(!v[1] ? null : v[1].value)), + 2759199220: (v) => new IFC2X3$1.IfcVertexLoop(new Handle$5(!v[0] ? null : v[0].value)), + 336235671: (v) => new IFC2X3$1.IfcWindowLiningProperties(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcNormalisedRatioMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC2X3$1.IfcNormalisedRatioMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC2X3$1.IfcNormalisedRatioMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC2X3$1.IfcNormalisedRatioMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new Handle$5(!v[12] ? null : v[12].value)), + 512836454: (v) => new IFC2X3$1.IfcWindowPanelProperties(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), v[4], v[5], !v[6] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new Handle$5(!v[8] ? null : v[8].value)), + 1299126871: (v) => { + var _a, _b; + return new IFC2X3$1.IfcWindowStyle(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), v[8], v[9], !v[10] ? null : v[10].value, !v[11] ? null : v[11].value); + }, + 2543172580: (v) => new IFC2X3$1.IfcZShapeProfileDef(v[0], !v[1] ? null : new IFC2X3$1.IfcLabel(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value)), + 3288037868: (v) => { + var _a; + return new IFC2X3$1.IfcAnnotationCurveOccurrence(!v[0] ? null : new Handle$5(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value)); + }, + 669184980: (v) => { + var _a; + return new IFC2X3$1.IfcAnnotationFillArea(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 2265737646: (v) => { + var _a; + return new IFC2X3$1.IfcAnnotationFillAreaOccurrence(!v[0] ? null : new Handle$5(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new Handle$5(!v[3] ? null : v[3].value), v[4]); + }, + 1302238472: (v) => new IFC2X3$1.IfcAnnotationSurface(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value)), + 4261334040: (v) => new IFC2X3$1.IfcAxis1Placement(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value)), + 3125803723: (v) => new IFC2X3$1.IfcAxis2Placement2D(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value)), + 2740243338: (v) => new IFC2X3$1.IfcAxis2Placement3D(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value)), + 2736907675: (v) => new IFC2X3$1.IfcBooleanResult(v[0], new Handle$5(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value)), + 4182860854: (_) => new IFC2X3$1.IfcBoundedSurface(), + 2581212453: (v) => new IFC2X3$1.IfcBoundingBox(new Handle$5(!v[0] ? null : v[0].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value)), + 2713105998: (v) => new IFC2X3$1.IfcBoxedHalfSpace(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : v[1].value, new Handle$5(!v[2] ? null : v[2].value)), + 2898889636: (v) => new IFC2X3$1.IfcCShapeProfileDef(v[0], !v[1] ? null : new IFC2X3$1.IfcLabel(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value)), + 1123145078: (v) => { + var _a; + return new IFC2X3$1.IfcCartesianPoint(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC2X3$1.IfcLengthMeasure(p.value) : null)) || []); + }, + 59481748: (v) => new IFC2X3$1.IfcCartesianTransformationOperator(!v[0] ? null : new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), !v[3] ? null : !v[3] ? null : v[3].value), + 3749851601: (v) => new IFC2X3$1.IfcCartesianTransformationOperator2D(!v[0] ? null : new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), !v[3] ? null : !v[3] ? null : v[3].value), + 3486308946: (v) => new IFC2X3$1.IfcCartesianTransformationOperator2DnonUniform(!v[0] ? null : new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), !v[3] ? null : !v[3] ? null : v[3].value, !v[4] ? null : !v[4] ? null : v[4].value), + 3331915920: (v) => new IFC2X3$1.IfcCartesianTransformationOperator3D(!v[0] ? null : new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), !v[3] ? null : !v[3] ? null : v[3].value, !v[4] ? null : new Handle$5(!v[4] ? null : v[4].value)), + 1416205885: (v) => new IFC2X3$1.IfcCartesianTransformationOperator3DnonUniform(!v[0] ? null : new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), !v[3] ? null : !v[3] ? null : v[3].value, !v[4] ? null : new Handle$5(!v[4] ? null : v[4].value), !v[5] ? null : !v[5] ? null : v[5].value, !v[6] ? null : !v[6] ? null : v[6].value), + 1383045692: (v) => new IFC2X3$1.IfcCircleProfileDef(v[0], !v[1] ? null : new IFC2X3$1.IfcLabel(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value)), + 2205249479: (v) => { + var _a; + return new IFC2X3$1.IfcClosedShell(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 2485617015: (v) => new IFC2X3$1.IfcCompositeCurveSegment(v[0], !v[1] ? null : v[1].value, new Handle$5(!v[2] ? null : v[2].value)), + 4133800736: (v) => new IFC2X3$1.IfcCraneRailAShapeProfileDef(v[0], !v[1] ? null : new IFC2X3$1.IfcLabel(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[7] ? null : v[7].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[10] ? null : v[10].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[11] ? null : v[11].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[12] ? null : v[12].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[13] ? null : v[13].value), !v[14] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[14] ? null : v[14].value)), + 194851669: (v) => new IFC2X3$1.IfcCraneRailFShapeProfileDef(v[0], !v[1] ? null : new IFC2X3$1.IfcLabel(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[7] ? null : v[7].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[11] ? null : v[11].value)), + 2506170314: (v) => new IFC2X3$1.IfcCsgPrimitive3D(new Handle$5(!v[0] ? null : v[0].value)), + 2147822146: (v) => new IFC2X3$1.IfcCsgSolid(new Handle$5(!v[0] ? null : v[0].value)), + 2601014836: (_) => new IFC2X3$1.IfcCurve(), + 2827736869: (v) => { + var _a; + return new IFC2X3$1.IfcCurveBoundedPlane(new Handle$5(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 693772133: (v) => new IFC2X3$1.IfcDefinedSymbol(new Handle$5(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value)), + 606661476: (v) => { + var _a; + return new IFC2X3$1.IfcDimensionCurve(!v[0] ? null : new Handle$5(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value)); + }, + 4054601972: (v) => { + var _a; + return new IFC2X3$1.IfcDimensionCurveTerminator(!v[0] ? null : new Handle$5(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), new Handle$5(!v[3] ? null : v[3].value), v[4]); + }, + 32440307: (v) => { + var _a; + return new IFC2X3$1.IfcDirection(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? Number(p.value) : null)) || []); + }, + 2963535650: (v) => new IFC2X3$1.IfcDoorLiningProperties(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC2X3$1.IfcLengthMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC2X3$1.IfcLengthMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC2X3$1.IfcLengthMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[12] ? null : v[12].value), !v[13] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[13] ? null : v[13].value), !v[14] ? null : new Handle$5(!v[14] ? null : v[14].value)), + 1714330368: (v) => new IFC2X3$1.IfcDoorPanelProperties(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), v[5], !v[6] ? null : new IFC2X3$1.IfcNormalisedRatioMeasure(!v[6] ? null : v[6].value), v[7], !v[8] ? null : new Handle$5(!v[8] ? null : v[8].value)), + 526551008: (v) => { + var _a, _b; + return new IFC2X3$1.IfcDoorStyle(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), v[8], v[9], !v[10] ? null : v[10].value, !v[11] ? null : v[11].value); + }, + 3073041342: (v) => { + var _a; + return new IFC2X3$1.IfcDraughtingCallout(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 445594917: (v) => new IFC2X3$1.IfcDraughtingPreDefinedColour(new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value)), + 4006246654: (v) => new IFC2X3$1.IfcDraughtingPreDefinedCurveFont(new IFC2X3$1.IfcLabel(!v[0] ? null : v[0].value)), + 1472233963: (v) => { + var _a; + return new IFC2X3$1.IfcEdgeLoop(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 1883228015: (v) => { + var _a; + return new IFC2X3$1.IfcElementQuantity(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 339256511: (v) => { + var _a, _b; + return new IFC2X3$1.IfcElementType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value)); + }, + 2777663545: (v) => new IFC2X3$1.IfcElementarySurface(new Handle$5(!v[0] ? null : v[0].value)), + 2835456948: (v) => new IFC2X3$1.IfcEllipseProfileDef(v[0], !v[1] ? null : new IFC2X3$1.IfcLabel(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value)), + 80994333: (v) => new IFC2X3$1.IfcEnergyProperties(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), v[4], !v[5] ? null : new IFC2X3$1.IfcLabel(!v[5] ? null : v[5].value)), + 477187591: (v) => new IFC2X3$1.IfcExtrudedAreaSolid(new Handle$5(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value)), + 2047409740: (v) => { + var _a; + return new IFC2X3$1.IfcFaceBasedSurfaceModel(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 374418227: (v) => new IFC2X3$1.IfcFillAreaStyleHatching(new Handle$5(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value), !v[3] ? null : new Handle$5(!v[3] ? null : v[3].value), new IFC2X3$1.IfcPlaneAngleMeasure(!v[4] ? null : v[4].value)), + 4203026998: (v) => new IFC2X3$1.IfcFillAreaStyleTileSymbolWithStyle(new Handle$5(!v[0] ? null : v[0].value)), + 315944413: (v) => { + var _a; + return new IFC2X3$1.IfcFillAreaStyleTiles(new Handle$5(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new IFC2X3$1.IfcPositiveRatioMeasure(!v[2] ? null : v[2].value)); + }, + 3455213021: (v) => new IFC2X3$1.IfcFluidFlowProperties(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), v[4], !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new Handle$5(!v[7] ? null : v[7].value), new Handle$5(!v[8] ? null : v[8].value), !v[9] ? null : new Handle$5(!v[9] ? null : v[9].value), !v[10] ? null : new IFC2X3$1.IfcLabel(!v[10] ? null : v[10].value), !v[11] ? null : new IFC2X3$1.IfcThermodynamicTemperatureMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new IFC2X3$1.IfcThermodynamicTemperatureMeasure(!v[12] ? null : v[12].value), !v[13] ? null : new Handle$5(!v[13] ? null : v[13].value), !v[14] ? null : new Handle$5(!v[14] ? null : v[14].value), !v[15] ? null : TypeInitialiser(1, v[15]), !v[16] ? null : new IFC2X3$1.IfcPositiveRatioMeasure(!v[16] ? null : v[16].value), !v[17] ? null : new IFC2X3$1.IfcLinearVelocityMeasure(!v[17] ? null : v[17].value), !v[18] ? null : new IFC2X3$1.IfcPressureMeasure(!v[18] ? null : v[18].value)), + 4238390223: (v) => { + var _a, _b; + return new IFC2X3$1.IfcFurnishingElementType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value)); + }, + 1268542332: (v) => { + var _a, _b; + return new IFC2X3$1.IfcFurnitureType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 987898635: (v) => { + var _a; + return new IFC2X3$1.IfcGeometricCurveSet(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 1484403080: (v) => new IFC2X3$1.IfcIShapeProfileDef(v[0], !v[1] ? null : new IFC2X3$1.IfcLabel(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[7] ? null : v[7].value)), + 572779678: (v) => new IFC2X3$1.IfcLShapeProfileDef(v[0], !v[1] ? null : new IFC2X3$1.IfcLabel(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcPlaneAngleMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[10] ? null : v[10].value)), + 1281925730: (v) => new IFC2X3$1.IfcLine(new Handle$5(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value)), + 1425443689: (v) => new IFC2X3$1.IfcManifoldSolidBrep(new Handle$5(!v[0] ? null : v[0].value)), + 3888040117: (v) => new IFC2X3$1.IfcObject(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value)), + 3388369263: (v) => new IFC2X3$1.IfcOffsetCurve2D(new Handle$5(!v[0] ? null : v[0].value), new IFC2X3$1.IfcLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : v[2].value), + 3505215534: (v) => new IFC2X3$1.IfcOffsetCurve3D(new Handle$5(!v[0] ? null : v[0].value), new IFC2X3$1.IfcLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : v[2].value, new Handle$5(!v[3] ? null : v[3].value)), + 3566463478: (v) => new IFC2X3$1.IfcPermeableCoveringProperties(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), v[4], v[5], !v[6] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new Handle$5(!v[8] ? null : v[8].value)), + 603570806: (v) => new IFC2X3$1.IfcPlanarBox(new IFC2X3$1.IfcLengthMeasure(!v[0] ? null : v[0].value), new IFC2X3$1.IfcLengthMeasure(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value)), + 220341763: (v) => new IFC2X3$1.IfcPlane(new Handle$5(!v[0] ? null : v[0].value)), + 2945172077: (v) => new IFC2X3$1.IfcProcess(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value)), + 4208778838: (v) => new IFC2X3$1.IfcProduct(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value)), + 103090709: (v) => { + var _a; + return new IFC2X3$1.IfcProject(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3$1.IfcLabel(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3$1.IfcLabel(!v[6] ? null : v[6].value), ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new Handle$5(!v[8] ? null : v[8].value)); + }, + 4194566429: (v) => { + var _a; + return new IFC2X3$1.IfcProjectionCurve(!v[0] ? null : new Handle$5(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value)); + }, + 1451395588: (v) => { + var _a; + return new IFC2X3$1.IfcPropertySet(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 3219374653: (v) => new IFC2X3$1.IfcProxy(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), v[7], !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value)), + 2770003689: (v) => new IFC2X3$1.IfcRectangleHollowProfileDef(v[0], !v[1] ? null : new IFC2X3$1.IfcLabel(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[7] ? null : v[7].value)), + 2798486643: (v) => new IFC2X3$1.IfcRectangularPyramid(new Handle$5(!v[0] ? null : v[0].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value)), + 3454111270: (v) => new IFC2X3$1.IfcRectangularTrimmedSurface(new Handle$5(!v[0] ? null : v[0].value), new IFC2X3$1.IfcParameterValue(!v[1] ? null : v[1].value), new IFC2X3$1.IfcParameterValue(!v[2] ? null : v[2].value), new IFC2X3$1.IfcParameterValue(!v[3] ? null : v[3].value), new IFC2X3$1.IfcParameterValue(!v[4] ? null : v[4].value), !v[5] ? null : v[5].value, !v[6] ? null : v[6].value), + 3939117080: (v) => { + var _a; + return new IFC2X3$1.IfcRelAssigns(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], v[5]); + }, + 1683148259: (v) => { + var _a; + return new IFC2X3$1.IfcRelAssignsToActor(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], v[5], new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new Handle$5(!v[7] ? null : v[7].value)); + }, + 2495723537: (v) => { + var _a; + return new IFC2X3$1.IfcRelAssignsToControl(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], v[5], new Handle$5(!v[6] ? null : v[6].value)); + }, + 1307041759: (v) => { + var _a; + return new IFC2X3$1.IfcRelAssignsToGroup(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], v[5], new Handle$5(!v[6] ? null : v[6].value)); + }, + 4278684876: (v) => { + var _a; + return new IFC2X3$1.IfcRelAssignsToProcess(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], v[5], new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new Handle$5(!v[7] ? null : v[7].value)); + }, + 2857406711: (v) => { + var _a; + return new IFC2X3$1.IfcRelAssignsToProduct(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], v[5], new Handle$5(!v[6] ? null : v[6].value)); + }, + 3372526763: (v) => { + var _a; + return new IFC2X3$1.IfcRelAssignsToProjectOrder(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], v[5], new Handle$5(!v[6] ? null : v[6].value)); + }, + 205026976: (v) => { + var _a; + return new IFC2X3$1.IfcRelAssignsToResource(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], v[5], new Handle$5(!v[6] ? null : v[6].value)); + }, + 1865459582: (v) => { + var _a; + return new IFC2X3$1.IfcRelAssociates(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 1327628568: (v) => { + var _a; + return new IFC2X3$1.IfcRelAssociatesAppliedValue(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new Handle$5(!v[5] ? null : v[5].value)); + }, + 4095574036: (v) => { + var _a; + return new IFC2X3$1.IfcRelAssociatesApproval(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new Handle$5(!v[5] ? null : v[5].value)); + }, + 919958153: (v) => { + var _a; + return new IFC2X3$1.IfcRelAssociatesClassification(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new Handle$5(!v[5] ? null : v[5].value)); + }, + 2728634034: (v) => { + var _a; + return new IFC2X3$1.IfcRelAssociatesConstraint(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new IFC2X3$1.IfcLabel(!v[5] ? null : v[5].value), new Handle$5(!v[6] ? null : v[6].value)); + }, + 982818633: (v) => { + var _a; + return new IFC2X3$1.IfcRelAssociatesDocument(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new Handle$5(!v[5] ? null : v[5].value)); + }, + 3840914261: (v) => { + var _a; + return new IFC2X3$1.IfcRelAssociatesLibrary(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new Handle$5(!v[5] ? null : v[5].value)); + }, + 2655215786: (v) => { + var _a; + return new IFC2X3$1.IfcRelAssociatesMaterial(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new Handle$5(!v[5] ? null : v[5].value)); + }, + 2851387026: (v) => { + var _a; + return new IFC2X3$1.IfcRelAssociatesProfileProperties(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new Handle$5(!v[7] ? null : v[7].value)); + }, + 826625072: (v) => new IFC2X3$1.IfcRelConnects(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value)), + 1204542856: (v) => new IFC2X3$1.IfcRelConnectsElements(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new Handle$5(!v[4] ? null : v[4].value), new Handle$5(!v[5] ? null : v[5].value), new Handle$5(!v[6] ? null : v[6].value)), + 3945020480: (v) => { + var _a, _b; + return new IFC2X3$1.IfcRelConnectsPathElements(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new Handle$5(!v[4] ? null : v[4].value), new Handle$5(!v[5] ? null : v[5].value), new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? Number(p.value) : null)) || [], !v[8] ? null : ((_b = v[8]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? Number(p.value) : null)) || [], v[9], v[10]); + }, + 4201705270: (v) => new IFC2X3$1.IfcRelConnectsPortToElement(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value), new Handle$5(!v[5] ? null : v[5].value)), + 3190031847: (v) => new IFC2X3$1.IfcRelConnectsPorts(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value), new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value)), + 2127690289: (v) => new IFC2X3$1.IfcRelConnectsStructuralActivity(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value), new Handle$5(!v[5] ? null : v[5].value)), + 3912681535: (v) => new IFC2X3$1.IfcRelConnectsStructuralElement(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value), new Handle$5(!v[5] ? null : v[5].value)), + 1638771189: (v) => new IFC2X3$1.IfcRelConnectsStructuralMember(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value), new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new Handle$5(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new Handle$5(!v[9] ? null : v[9].value)), + 504942748: (v) => new IFC2X3$1.IfcRelConnectsWithEccentricity(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value), new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new Handle$5(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new Handle$5(!v[9] ? null : v[9].value), new Handle$5(!v[10] ? null : v[10].value)), + 3678494232: (v) => { + var _a; + return new IFC2X3$1.IfcRelConnectsWithRealizingElements(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new Handle$5(!v[4] ? null : v[4].value), new Handle$5(!v[5] ? null : v[5].value), new Handle$5(!v[6] ? null : v[6].value), ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value)); + }, + 3242617779: (v) => { + var _a; + return new IFC2X3$1.IfcRelContainedInSpatialStructure(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new Handle$5(!v[5] ? null : v[5].value)); + }, + 886880790: (v) => { + var _a; + return new IFC2X3$1.IfcRelCoversBldgElements(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 2802773753: (v) => { + var _a; + return new IFC2X3$1.IfcRelCoversSpaces(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 2551354335: (v) => { + var _a; + return new IFC2X3$1.IfcRelDecomposes(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 693640335: (v) => { + var _a; + return new IFC2X3$1.IfcRelDefines(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 4186316022: (v) => { + var _a; + return new IFC2X3$1.IfcRelDefinesByProperties(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new Handle$5(!v[5] ? null : v[5].value)); + }, + 781010003: (v) => { + var _a; + return new IFC2X3$1.IfcRelDefinesByType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new Handle$5(!v[5] ? null : v[5].value)); + }, + 3940055652: (v) => new IFC2X3$1.IfcRelFillsElement(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value), new Handle$5(!v[5] ? null : v[5].value)), + 279856033: (v) => { + var _a; + return new IFC2X3$1.IfcRelFlowControlElements(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new Handle$5(!v[5] ? null : v[5].value)); + }, + 4189434867: (v) => new IFC2X3$1.IfcRelInteractionRequirements(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcCountMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3$1.IfcNormalisedRatioMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), new Handle$5(!v[7] ? null : v[7].value), new Handle$5(!v[8] ? null : v[8].value)), + 3268803585: (v) => { + var _a; + return new IFC2X3$1.IfcRelNests(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 2051452291: (v) => { + var _a; + return new IFC2X3$1.IfcRelOccupiesSpaces(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], v[5], new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new Handle$5(!v[7] ? null : v[7].value)); + }, + 202636808: (v) => { + var _a, _b; + return new IFC2X3$1.IfcRelOverridesProperties(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new Handle$5(!v[5] ? null : v[5].value), ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 750771296: (v) => new IFC2X3$1.IfcRelProjectsElement(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value), new Handle$5(!v[5] ? null : v[5].value)), + 1245217292: (v) => { + var _a; + return new IFC2X3$1.IfcRelReferencedInSpatialStructure(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new Handle$5(!v[5] ? null : v[5].value)); + }, + 1058617721: (v) => { + var _a; + return new IFC2X3$1.IfcRelSchedulesCostItems(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], v[5], new Handle$5(!v[6] ? null : v[6].value)); + }, + 4122056220: (v) => new IFC2X3$1.IfcRelSequence(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value), new Handle$5(!v[5] ? null : v[5].value), new IFC2X3$1.IfcTimeMeasure(!v[6] ? null : v[6].value), v[7]), + 366585022: (v) => { + var _a; + return new IFC2X3$1.IfcRelServicesBuildings(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 3451746338: (v) => new IFC2X3$1.IfcRelSpaceBoundary(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), v[7], v[8]), + 1401173127: (v) => new IFC2X3$1.IfcRelVoidsElement(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value), new Handle$5(!v[5] ? null : v[5].value)), + 2914609552: (v) => new IFC2X3$1.IfcResource(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value)), + 1856042241: (v) => new IFC2X3$1.IfcRevolvedAreaSolid(new Handle$5(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), new IFC2X3$1.IfcPlaneAngleMeasure(!v[3] ? null : v[3].value)), + 4158566097: (v) => new IFC2X3$1.IfcRightCircularCone(new Handle$5(!v[0] ? null : v[0].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value)), + 3626867408: (v) => new IFC2X3$1.IfcRightCircularCylinder(new Handle$5(!v[0] ? null : v[0].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value)), + 2706606064: (v) => new IFC2X3$1.IfcSpatialStructureElement(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), v[8]), + 3893378262: (v) => { + var _a, _b; + return new IFC2X3$1.IfcSpatialStructureElementType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value)); + }, + 451544542: (v) => new IFC2X3$1.IfcSphere(new Handle$5(!v[0] ? null : v[0].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value)), + 3544373492: (v) => new IFC2X3$1.IfcStructuralActivity(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), new Handle$5(!v[7] ? null : v[7].value), v[8]), + 3136571912: (v) => new IFC2X3$1.IfcStructuralItem(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value)), + 530289379: (v) => new IFC2X3$1.IfcStructuralMember(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value)), + 3689010777: (v) => new IFC2X3$1.IfcStructuralReaction(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), new Handle$5(!v[7] ? null : v[7].value), v[8]), + 3979015343: (v) => new IFC2X3$1.IfcStructuralSurfaceMember(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), v[7], !v[8] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value)), + 2218152070: (v) => { + var _a; + return new IFC2X3$1.IfcStructuralSurfaceMemberVarying(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), v[7], !v[8] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value), ((_a = v[9]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC2X3$1.IfcPositiveLengthMeasure(p.value) : null)) || [], new Handle$5(!v[10] ? null : v[10].value)); + }, + 4070609034: (v) => { + var _a; + return new IFC2X3$1.IfcStructuredDimensionCallout(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 2028607225: (v) => new IFC2X3$1.IfcSurfaceCurveSweptAreaSolid(new Handle$5(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), new IFC2X3$1.IfcParameterValue(!v[3] ? null : v[3].value), new IFC2X3$1.IfcParameterValue(!v[4] ? null : v[4].value), new Handle$5(!v[5] ? null : v[5].value)), + 2809605785: (v) => new IFC2X3$1.IfcSurfaceOfLinearExtrusion(new Handle$5(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), new IFC2X3$1.IfcLengthMeasure(!v[3] ? null : v[3].value)), + 4124788165: (v) => new IFC2X3$1.IfcSurfaceOfRevolution(new Handle$5(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value)), + 1580310250: (v) => { + var _a, _b; + return new IFC2X3$1.IfcSystemFurnitureElementType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value)); + }, + 3473067441: (v) => new IFC2X3$1.IfcTask(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), new IFC2X3$1.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3$1.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : v[8].value, !v[9] ? null : !v[9] ? null : v[9].value), + 2097647324: (v) => { + var _a, _b; + return new IFC2X3$1.IfcTransportElementType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 2296667514: (v) => new IFC2X3$1.IfcActor(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), new Handle$5(!v[5] ? null : v[5].value)), + 1674181508: (v) => new IFC2X3$1.IfcAnnotation(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value)), + 3207858831: (v) => new IFC2X3$1.IfcAsymmetricIShapeProfileDef(v[0], !v[1] ? null : new IFC2X3$1.IfcLabel(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[7] ? null : v[7].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[11] ? null : v[11].value)), + 1334484129: (v) => new IFC2X3$1.IfcBlock(new Handle$5(!v[0] ? null : v[0].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value)), + 3649129432: (v) => new IFC2X3$1.IfcBooleanClippingResult(v[0], new Handle$5(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value)), + 1260505505: (_) => new IFC2X3$1.IfcBoundedCurve(), + 4031249490: (v) => new IFC2X3$1.IfcBuilding(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), v[8], !v[9] ? null : new IFC2X3$1.IfcLengthMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC2X3$1.IfcLengthMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new Handle$5(!v[11] ? null : v[11].value)), + 1950629157: (v) => { + var _a, _b; + return new IFC2X3$1.IfcBuildingElementType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value)); + }, + 3124254112: (v) => new IFC2X3$1.IfcBuildingStorey(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), v[8], !v[9] ? null : new IFC2X3$1.IfcLengthMeasure(!v[9] ? null : v[9].value)), + 2937912522: (v) => new IFC2X3$1.IfcCircleHollowProfileDef(v[0], !v[1] ? null : new IFC2X3$1.IfcLabel(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value)), + 300633059: (v) => { + var _a, _b; + return new IFC2X3$1.IfcColumnType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 3732776249: (v) => { + var _a; + return new IFC2X3$1.IfcCompositeCurve(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[1] ? null : v[1].value); + }, + 2510884976: (v) => new IFC2X3$1.IfcConic(new Handle$5(!v[0] ? null : v[0].value)), + 2559216714: (v) => new IFC2X3$1.IfcConstructionResource(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3$1.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3$1.IfcLabel(!v[6] ? null : v[6].value), v[7], !v[8] ? null : new Handle$5(!v[8] ? null : v[8].value)), + 3293443760: (v) => new IFC2X3$1.IfcControl(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value)), + 3895139033: (v) => new IFC2X3$1.IfcCostItem(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value)), + 1419761937: (v) => { + var _a; + return new IFC2X3$1.IfcCostSchedule(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new Handle$5(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : ((_a = v[9]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[10] ? null : new Handle$5(!v[10] ? null : v[10].value), new IFC2X3$1.IfcIdentifier(!v[11] ? null : v[11].value), v[12]); + }, + 1916426348: (v) => { + var _a, _b; + return new IFC2X3$1.IfcCoveringType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 3295246426: (v) => new IFC2X3$1.IfcCrewResource(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3$1.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3$1.IfcLabel(!v[6] ? null : v[6].value), v[7], !v[8] ? null : new Handle$5(!v[8] ? null : v[8].value)), + 1457835157: (v) => { + var _a, _b; + return new IFC2X3$1.IfcCurtainWallType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 681481545: (v) => { + var _a; + return new IFC2X3$1.IfcDimensionCurveDirectedCallout(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 3256556792: (v) => { + var _a, _b; + return new IFC2X3$1.IfcDistributionElementType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value)); + }, + 3849074793: (v) => { + var _a, _b; + return new IFC2X3$1.IfcDistributionFlowElementType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value)); + }, + 360485395: (v) => new IFC2X3$1.IfcElectricalBaseProperties(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), v[4], !v[5] ? null : new IFC2X3$1.IfcLabel(!v[5] ? null : v[5].value), v[6], new IFC2X3$1.IfcElectricVoltageMeasure(!v[7] ? null : v[7].value), new IFC2X3$1.IfcFrequencyMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC2X3$1.IfcElectricCurrentMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC2X3$1.IfcElectricCurrentMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC2X3$1.IfcPowerMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new IFC2X3$1.IfcPowerMeasure(!v[12] ? null : v[12].value), !v[13] ? null : v[13].value), + 1758889154: (v) => new IFC2X3$1.IfcElement(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 4123344466: (v) => new IFC2X3$1.IfcElementAssembly(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8], v[9]), + 1623761950: (v) => new IFC2X3$1.IfcElementComponent(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 2590856083: (v) => { + var _a, _b; + return new IFC2X3$1.IfcElementComponentType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value)); + }, + 1704287377: (v) => new IFC2X3$1.IfcEllipse(new Handle$5(!v[0] ? null : v[0].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value)), + 2107101300: (v) => { + var _a, _b; + return new IFC2X3$1.IfcEnergyConversionDeviceType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value)); + }, + 1962604670: (v) => new IFC2X3$1.IfcEquipmentElement(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 3272907226: (v) => new IFC2X3$1.IfcEquipmentStandard(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value)), + 3174744832: (v) => { + var _a, _b; + return new IFC2X3$1.IfcEvaporativeCoolerType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 3390157468: (v) => { + var _a, _b; + return new IFC2X3$1.IfcEvaporatorType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 807026263: (v) => new IFC2X3$1.IfcFacetedBrep(new Handle$5(!v[0] ? null : v[0].value)), + 3737207727: (v) => { + var _a; + return new IFC2X3$1.IfcFacetedBrepWithVoids(new Handle$5(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 647756555: (v) => new IFC2X3$1.IfcFastener(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 2489546625: (v) => { + var _a, _b; + return new IFC2X3$1.IfcFastenerType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value)); + }, + 2827207264: (v) => new IFC2X3$1.IfcFeatureElement(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 2143335405: (v) => new IFC2X3$1.IfcFeatureElementAddition(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 1287392070: (v) => new IFC2X3$1.IfcFeatureElementSubtraction(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 3907093117: (v) => { + var _a, _b; + return new IFC2X3$1.IfcFlowControllerType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value)); + }, + 3198132628: (v) => { + var _a, _b; + return new IFC2X3$1.IfcFlowFittingType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value)); + }, + 3815607619: (v) => { + var _a, _b; + return new IFC2X3$1.IfcFlowMeterType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1482959167: (v) => { + var _a, _b; + return new IFC2X3$1.IfcFlowMovingDeviceType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value)); + }, + 1834744321: (v) => { + var _a, _b; + return new IFC2X3$1.IfcFlowSegmentType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value)); + }, + 1339347760: (v) => { + var _a, _b; + return new IFC2X3$1.IfcFlowStorageDeviceType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value)); + }, + 2297155007: (v) => { + var _a, _b; + return new IFC2X3$1.IfcFlowTerminalType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value)); + }, + 3009222698: (v) => { + var _a, _b; + return new IFC2X3$1.IfcFlowTreatmentDeviceType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value)); + }, + 263784265: (v) => new IFC2X3$1.IfcFurnishingElement(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 814719939: (v) => new IFC2X3$1.IfcFurnitureStandard(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value)), + 200128114: (v) => { + var _a, _b; + return new IFC2X3$1.IfcGasTerminalType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 3009204131: (v) => { + var _a, _b, _c; + return new IFC2X3$1.IfcGrid(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], ((_b = v[8]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[9] ? null : ((_c = v[9]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 2706460486: (v) => new IFC2X3$1.IfcGroup(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value)), + 1251058090: (v) => { + var _a, _b; + return new IFC2X3$1.IfcHeatExchangerType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1806887404: (v) => { + var _a, _b; + return new IFC2X3$1.IfcHumidifierType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 2391368822: (v) => { + var _a; + return new IFC2X3$1.IfcInventory(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), v[5], new Handle$5(!v[6] ? null : v[6].value), ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new Handle$5(!v[8] ? null : v[8].value), !v[9] ? null : new Handle$5(!v[9] ? null : v[9].value), !v[10] ? null : new Handle$5(!v[10] ? null : v[10].value)); + }, + 4288270099: (v) => { + var _a, _b; + return new IFC2X3$1.IfcJunctionBoxType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 3827777499: (v) => new IFC2X3$1.IfcLaborResource(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3$1.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3$1.IfcLabel(!v[6] ? null : v[6].value), v[7], !v[8] ? null : new Handle$5(!v[8] ? null : v[8].value), !v[9] ? null : new IFC2X3$1.IfcText(!v[9] ? null : v[9].value)), + 1051575348: (v) => { + var _a, _b; + return new IFC2X3$1.IfcLampType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1161773419: (v) => { + var _a, _b; + return new IFC2X3$1.IfcLightFixtureType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 2506943328: (v) => { + var _a; + return new IFC2X3$1.IfcLinearDimension(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 377706215: (v) => new IFC2X3$1.IfcMechanicalFastener(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value)), + 2108223431: (v) => { + var _a, _b; + return new IFC2X3$1.IfcMechanicalFastenerType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value)); + }, + 3181161470: (v) => { + var _a, _b; + return new IFC2X3$1.IfcMemberType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 977012517: (v) => { + var _a, _b; + return new IFC2X3$1.IfcMotorConnectionType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1916936684: (v) => { + var _a; + return new IFC2X3$1.IfcMove(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), new IFC2X3$1.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3$1.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : v[8].value, !v[9] ? null : !v[9] ? null : v[9].value, new Handle$5(!v[10] ? null : v[10].value), new Handle$5(!v[11] ? null : v[11].value), !v[12] ? null : ((_a = v[12]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC2X3$1.IfcText(p.value) : null)) || []); + }, + 4143007308: (v) => new IFC2X3$1.IfcOccupant(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), new Handle$5(!v[5] ? null : v[5].value), v[6]), + 3588315303: (v) => new IFC2X3$1.IfcOpeningElement(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 3425660407: (v) => new IFC2X3$1.IfcOrderAction(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), new IFC2X3$1.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3$1.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : v[8].value, !v[9] ? null : !v[9] ? null : v[9].value, new IFC2X3$1.IfcIdentifier(!v[10] ? null : v[10].value)), + 2837617999: (v) => { + var _a, _b; + return new IFC2X3$1.IfcOutletType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 2382730787: (v) => new IFC2X3$1.IfcPerformanceHistory(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), new IFC2X3$1.IfcLabel(!v[5] ? null : v[5].value)), + 3327091369: (v) => new IFC2X3$1.IfcPermit(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), new IFC2X3$1.IfcIdentifier(!v[5] ? null : v[5].value)), + 804291784: (v) => { + var _a, _b; + return new IFC2X3$1.IfcPipeFittingType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 4231323485: (v) => { + var _a, _b; + return new IFC2X3$1.IfcPipeSegmentType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 4017108033: (v) => { + var _a, _b; + return new IFC2X3$1.IfcPlateType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 3724593414: (v) => { + var _a; + return new IFC2X3$1.IfcPolyline(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 3740093272: (v) => new IFC2X3$1.IfcPort(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value)), + 2744685151: (v) => new IFC2X3$1.IfcProcedure(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), new IFC2X3$1.IfcIdentifier(!v[5] ? null : v[5].value), v[6], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value)), + 2904328755: (v) => new IFC2X3$1.IfcProjectOrder(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), new IFC2X3$1.IfcIdentifier(!v[5] ? null : v[5].value), v[6], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value)), + 3642467123: (v) => { + var _a; + return new IFC2X3$1.IfcProjectOrderRecord(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], v[6]); + }, + 3651124850: (v) => new IFC2X3$1.IfcProjectionElement(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 1842657554: (v) => { + var _a, _b; + return new IFC2X3$1.IfcProtectiveDeviceType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 2250791053: (v) => { + var _a, _b; + return new IFC2X3$1.IfcPumpType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 3248260540: (v) => { + var _a; + return new IFC2X3$1.IfcRadiusDimension(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 2893384427: (v) => { + var _a, _b; + return new IFC2X3$1.IfcRailingType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 2324767716: (v) => { + var _a, _b; + return new IFC2X3$1.IfcRampFlightType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 160246688: (v) => { + var _a; + return new IFC2X3$1.IfcRelAggregates(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 2863920197: (v) => { + var _a; + return new IFC2X3$1.IfcRelAssignsTasks(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], v[5], new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new Handle$5(!v[7] ? null : v[7].value)); + }, + 1768891740: (v) => { + var _a, _b; + return new IFC2X3$1.IfcSanitaryTerminalType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 3517283431: (v) => new IFC2X3$1.IfcScheduleTimeControl(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new Handle$5(!v[7] ? null : v[7].value), !v[8] ? null : new Handle$5(!v[8] ? null : v[8].value), !v[9] ? null : new Handle$5(!v[9] ? null : v[9].value), !v[10] ? null : new Handle$5(!v[10] ? null : v[10].value), !v[11] ? null : new Handle$5(!v[11] ? null : v[11].value), !v[12] ? null : new Handle$5(!v[12] ? null : v[12].value), !v[13] ? null : new IFC2X3$1.IfcTimeMeasure(!v[13] ? null : v[13].value), !v[14] ? null : new IFC2X3$1.IfcTimeMeasure(!v[14] ? null : v[14].value), !v[15] ? null : new IFC2X3$1.IfcTimeMeasure(!v[15] ? null : v[15].value), !v[16] ? null : new IFC2X3$1.IfcTimeMeasure(!v[16] ? null : v[16].value), !v[17] ? null : new IFC2X3$1.IfcTimeMeasure(!v[17] ? null : v[17].value), !v[18] ? null : !v[18] ? null : v[18].value, !v[19] ? null : new Handle$5(!v[19] ? null : v[19].value), !v[20] ? null : new IFC2X3$1.IfcTimeMeasure(!v[20] ? null : v[20].value), !v[21] ? null : new IFC2X3$1.IfcTimeMeasure(!v[21] ? null : v[21].value), !v[22] ? null : new IFC2X3$1.IfcPositiveRatioMeasure(!v[22] ? null : v[22].value)), + 4105383287: (v) => new IFC2X3$1.IfcServiceLife(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), v[5], new IFC2X3$1.IfcTimeMeasure(!v[6] ? null : v[6].value)), + 4097777520: (v) => new IFC2X3$1.IfcSite(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), v[8], !v[9] ? null : new IFC2X3$1.IfcCompoundPlaneAngleMeasure(v[9].map((x) => x.value)), !v[10] ? null : new IFC2X3$1.IfcCompoundPlaneAngleMeasure(v[10].map((x) => x.value)), !v[11] ? null : new IFC2X3$1.IfcLengthMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new IFC2X3$1.IfcLabel(!v[12] ? null : v[12].value), !v[13] ? null : new Handle$5(!v[13] ? null : v[13].value)), + 2533589738: (v) => { + var _a, _b; + return new IFC2X3$1.IfcSlabType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 3856911033: (v) => new IFC2X3$1.IfcSpace(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), v[8], v[9], !v[10] ? null : new IFC2X3$1.IfcLengthMeasure(!v[10] ? null : v[10].value)), + 1305183839: (v) => { + var _a, _b; + return new IFC2X3$1.IfcSpaceHeaterType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 652456506: (v) => new IFC2X3$1.IfcSpaceProgram(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), new IFC2X3$1.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3$1.IfcAreaMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcAreaMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new Handle$5(!v[8] ? null : v[8].value), new IFC2X3$1.IfcAreaMeasure(!v[9] ? null : v[9].value)), + 3812236995: (v) => { + var _a, _b; + return new IFC2X3$1.IfcSpaceType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 3112655638: (v) => { + var _a, _b; + return new IFC2X3$1.IfcStackTerminalType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1039846685: (v) => { + var _a, _b; + return new IFC2X3$1.IfcStairFlightType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 682877961: (v) => new IFC2X3$1.IfcStructuralAction(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), new Handle$5(!v[7] ? null : v[7].value), v[8], !v[9] ? null : v[9].value, !v[10] ? null : new Handle$5(!v[10] ? null : v[10].value)), + 1179482911: (v) => new IFC2X3$1.IfcStructuralConnection(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new Handle$5(!v[7] ? null : v[7].value)), + 4243806635: (v) => new IFC2X3$1.IfcStructuralCurveConnection(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new Handle$5(!v[7] ? null : v[7].value)), + 214636428: (v) => new IFC2X3$1.IfcStructuralCurveMember(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), v[7]), + 2445595289: (v) => new IFC2X3$1.IfcStructuralCurveMemberVarying(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), v[7]), + 1807405624: (v) => new IFC2X3$1.IfcStructuralLinearAction(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), new Handle$5(!v[7] ? null : v[7].value), v[8], !v[9] ? null : v[9].value, !v[10] ? null : new Handle$5(!v[10] ? null : v[10].value), v[11]), + 1721250024: (v) => { + var _a; + return new IFC2X3$1.IfcStructuralLinearActionVarying(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), new Handle$5(!v[7] ? null : v[7].value), v[8], !v[9] ? null : v[9].value, !v[10] ? null : new Handle$5(!v[10] ? null : v[10].value), v[11], new Handle$5(!v[12] ? null : v[12].value), ((_a = v[13]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 1252848954: (v) => new IFC2X3$1.IfcStructuralLoadGroup(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), v[5], v[6], v[7], !v[8] ? null : new IFC2X3$1.IfcRatioMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC2X3$1.IfcLabel(!v[9] ? null : v[9].value)), + 1621171031: (v) => new IFC2X3$1.IfcStructuralPlanarAction(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), new Handle$5(!v[7] ? null : v[7].value), v[8], !v[9] ? null : v[9].value, !v[10] ? null : new Handle$5(!v[10] ? null : v[10].value), v[11]), + 3987759626: (v) => { + var _a; + return new IFC2X3$1.IfcStructuralPlanarActionVarying(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), new Handle$5(!v[7] ? null : v[7].value), v[8], !v[9] ? null : v[9].value, !v[10] ? null : new Handle$5(!v[10] ? null : v[10].value), v[11], new Handle$5(!v[12] ? null : v[12].value), ((_a = v[13]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 2082059205: (v) => new IFC2X3$1.IfcStructuralPointAction(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), new Handle$5(!v[7] ? null : v[7].value), v[8], !v[9] ? null : v[9].value, !v[10] ? null : new Handle$5(!v[10] ? null : v[10].value)), + 734778138: (v) => new IFC2X3$1.IfcStructuralPointConnection(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new Handle$5(!v[7] ? null : v[7].value)), + 1235345126: (v) => new IFC2X3$1.IfcStructuralPointReaction(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), new Handle$5(!v[7] ? null : v[7].value), v[8]), + 2986769608: (v) => new IFC2X3$1.IfcStructuralResultGroup(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), v[5], !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : v[7].value), + 1975003073: (v) => new IFC2X3$1.IfcStructuralSurfaceConnection(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new Handle$5(!v[7] ? null : v[7].value)), + 148013059: (v) => new IFC2X3$1.IfcSubContractResource(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3$1.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3$1.IfcLabel(!v[6] ? null : v[6].value), v[7], !v[8] ? null : new Handle$5(!v[8] ? null : v[8].value), !v[9] ? null : new Handle$5(!v[9] ? null : v[9].value), !v[10] ? null : new IFC2X3$1.IfcText(!v[10] ? null : v[10].value)), + 2315554128: (v) => { + var _a, _b; + return new IFC2X3$1.IfcSwitchingDeviceType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 2254336722: (v) => new IFC2X3$1.IfcSystem(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value)), + 5716631: (v) => { + var _a, _b; + return new IFC2X3$1.IfcTankType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1637806684: (v) => { + var _a; + return new IFC2X3$1.IfcTimeSeriesSchedule(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], v[6], new Handle$5(!v[7] ? null : v[7].value)); + }, + 1692211062: (v) => { + var _a, _b; + return new IFC2X3$1.IfcTransformerType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1620046519: (v) => new IFC2X3$1.IfcTransportElement(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8], !v[9] ? null : new IFC2X3$1.IfcMassMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC2X3$1.IfcCountMeasure(!v[10] ? null : v[10].value)), + 3593883385: (v) => { + var _a, _b; + return new IFC2X3$1.IfcTrimmedCurve(new Handle$5(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], ((_b = v[2]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[3] ? null : v[3].value, v[4]); + }, + 1600972822: (v) => { + var _a, _b; + return new IFC2X3$1.IfcTubeBundleType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1911125066: (v) => { + var _a, _b; + return new IFC2X3$1.IfcUnitaryEquipmentType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 728799441: (v) => { + var _a, _b; + return new IFC2X3$1.IfcValveType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 2769231204: (v) => new IFC2X3$1.IfcVirtualElement(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 1898987631: (v) => { + var _a, _b; + return new IFC2X3$1.IfcWallType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1133259667: (v) => { + var _a, _b; + return new IFC2X3$1.IfcWasteTerminalType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1028945134: (v) => { + var _a; + return new IFC2X3$1.IfcWorkControl(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), new IFC2X3$1.IfcIdentifier(!v[5] ? null : v[5].value), new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : new IFC2X3$1.IfcTimeMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC2X3$1.IfcTimeMeasure(!v[10] ? null : v[10].value), new Handle$5(!v[11] ? null : v[11].value), !v[12] ? null : new Handle$5(!v[12] ? null : v[12].value), v[13], !v[14] ? null : new IFC2X3$1.IfcLabel(!v[14] ? null : v[14].value)); + }, + 4218914973: (v) => { + var _a; + return new IFC2X3$1.IfcWorkPlan(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), new IFC2X3$1.IfcIdentifier(!v[5] ? null : v[5].value), new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : new IFC2X3$1.IfcTimeMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC2X3$1.IfcTimeMeasure(!v[10] ? null : v[10].value), new Handle$5(!v[11] ? null : v[11].value), !v[12] ? null : new Handle$5(!v[12] ? null : v[12].value), v[13], !v[14] ? null : new IFC2X3$1.IfcLabel(!v[14] ? null : v[14].value)); + }, + 3342526732: (v) => { + var _a; + return new IFC2X3$1.IfcWorkSchedule(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), new IFC2X3$1.IfcIdentifier(!v[5] ? null : v[5].value), new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : new IFC2X3$1.IfcTimeMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC2X3$1.IfcTimeMeasure(!v[10] ? null : v[10].value), new Handle$5(!v[11] ? null : v[11].value), !v[12] ? null : new Handle$5(!v[12] ? null : v[12].value), v[13], !v[14] ? null : new IFC2X3$1.IfcLabel(!v[14] ? null : v[14].value)); + }, + 1033361043: (v) => new IFC2X3$1.IfcZone(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value)), + 1213861670: (v) => { + var _a; + return new IFC2X3$1.Ifc2DCompositeCurve(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[1] ? null : v[1].value); + }, + 3821786052: (v) => new IFC2X3$1.IfcActionRequest(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), new IFC2X3$1.IfcIdentifier(!v[5] ? null : v[5].value)), + 1411407467: (v) => { + var _a, _b; + return new IFC2X3$1.IfcAirTerminalBoxType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 3352864051: (v) => { + var _a, _b; + return new IFC2X3$1.IfcAirTerminalType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1871374353: (v) => { + var _a, _b; + return new IFC2X3$1.IfcAirToAirHeatRecoveryType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 2470393545: (v) => { + var _a; + return new IFC2X3$1.IfcAngularDimension(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 3460190687: (v) => new IFC2X3$1.IfcAsset(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), new IFC2X3$1.IfcIdentifier(!v[5] ? null : v[5].value), new Handle$5(!v[6] ? null : v[6].value), new Handle$5(!v[7] ? null : v[7].value), new Handle$5(!v[8] ? null : v[8].value), new Handle$5(!v[9] ? null : v[9].value), new Handle$5(!v[10] ? null : v[10].value), new Handle$5(!v[11] ? null : v[11].value), new Handle$5(!v[12] ? null : v[12].value), new Handle$5(!v[13] ? null : v[13].value)), + 1967976161: (v) => { + var _a; + return new IFC2X3$1.IfcBSplineCurve(!v[0] ? null : v[0].value, ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], v[2], !v[3] ? null : v[3].value, !v[4] ? null : v[4].value); + }, + 819618141: (v) => { + var _a, _b; + return new IFC2X3$1.IfcBeamType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1916977116: (v) => { + var _a; + return new IFC2X3$1.IfcBezierCurve(!v[0] ? null : v[0].value, ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], v[2], !v[3] ? null : v[3].value, !v[4] ? null : v[4].value); + }, + 231477066: (v) => { + var _a, _b; + return new IFC2X3$1.IfcBoilerType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 3299480353: (v) => new IFC2X3$1.IfcBuildingElement(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 52481810: (v) => new IFC2X3$1.IfcBuildingElementComponent(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 2979338954: (v) => new IFC2X3$1.IfcBuildingElementPart(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 1095909175: (v) => new IFC2X3$1.IfcBuildingElementProxy(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 1909888760: (v) => { + var _a, _b; + return new IFC2X3$1.IfcBuildingElementProxyType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 395041908: (v) => { + var _a, _b; + return new IFC2X3$1.IfcCableCarrierFittingType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 3293546465: (v) => { + var _a, _b; + return new IFC2X3$1.IfcCableCarrierSegmentType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1285652485: (v) => { + var _a, _b; + return new IFC2X3$1.IfcCableSegmentType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 2951183804: (v) => { + var _a, _b; + return new IFC2X3$1.IfcChillerType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 2611217952: (v) => new IFC2X3$1.IfcCircle(new Handle$5(!v[0] ? null : v[0].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value)), + 2301859152: (v) => { + var _a, _b; + return new IFC2X3$1.IfcCoilType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 843113511: (v) => new IFC2X3$1.IfcColumn(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 3850581409: (v) => { + var _a, _b; + return new IFC2X3$1.IfcCompressorType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 2816379211: (v) => { + var _a, _b; + return new IFC2X3$1.IfcCondenserType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 2188551683: (v) => new IFC2X3$1.IfcCondition(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value)), + 1163958913: (v) => new IFC2X3$1.IfcConditionCriterion(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), new Handle$5(!v[5] ? null : v[5].value), new Handle$5(!v[6] ? null : v[6].value)), + 3898045240: (v) => new IFC2X3$1.IfcConstructionEquipmentResource(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3$1.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3$1.IfcLabel(!v[6] ? null : v[6].value), v[7], !v[8] ? null : new Handle$5(!v[8] ? null : v[8].value)), + 1060000209: (v) => { + var _a; + return new IFC2X3$1.IfcConstructionMaterialResource(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3$1.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3$1.IfcLabel(!v[6] ? null : v[6].value), v[7], !v[8] ? null : new Handle$5(!v[8] ? null : v[8].value), !v[9] ? null : ((_a = v[9]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[10] ? null : new IFC2X3$1.IfcRatioMeasure(!v[10] ? null : v[10].value)); + }, + 488727124: (v) => new IFC2X3$1.IfcConstructionProductResource(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3$1.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3$1.IfcLabel(!v[6] ? null : v[6].value), v[7], !v[8] ? null : new Handle$5(!v[8] ? null : v[8].value)), + 335055490: (v) => { + var _a, _b; + return new IFC2X3$1.IfcCooledBeamType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 2954562838: (v) => { + var _a, _b; + return new IFC2X3$1.IfcCoolingTowerType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1973544240: (v) => new IFC2X3$1.IfcCovering(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 3495092785: (v) => new IFC2X3$1.IfcCurtainWall(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 3961806047: (v) => { + var _a, _b; + return new IFC2X3$1.IfcDamperType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 4147604152: (v) => { + var _a; + return new IFC2X3$1.IfcDiameterDimension(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 1335981549: (v) => new IFC2X3$1.IfcDiscreteAccessory(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 2635815018: (v) => { + var _a, _b; + return new IFC2X3$1.IfcDiscreteAccessoryType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value)); + }, + 1599208980: (v) => { + var _a, _b; + return new IFC2X3$1.IfcDistributionChamberElementType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 2063403501: (v) => { + var _a, _b; + return new IFC2X3$1.IfcDistributionControlElementType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value)); + }, + 1945004755: (v) => new IFC2X3$1.IfcDistributionElement(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 3040386961: (v) => new IFC2X3$1.IfcDistributionFlowElement(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 3041715199: (v) => new IFC2X3$1.IfcDistributionPort(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), v[7]), + 395920057: (v) => new IFC2X3$1.IfcDoor(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value)), + 869906466: (v) => { + var _a, _b; + return new IFC2X3$1.IfcDuctFittingType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 3760055223: (v) => { + var _a, _b; + return new IFC2X3$1.IfcDuctSegmentType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 2030761528: (v) => { + var _a, _b; + return new IFC2X3$1.IfcDuctSilencerType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 855621170: (v) => new IFC2X3$1.IfcEdgeFeature(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value)), + 663422040: (v) => { + var _a, _b; + return new IFC2X3$1.IfcElectricApplianceType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 3277789161: (v) => { + var _a, _b; + return new IFC2X3$1.IfcElectricFlowStorageDeviceType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1534661035: (v) => { + var _a, _b; + return new IFC2X3$1.IfcElectricGeneratorType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1365060375: (v) => { + var _a, _b; + return new IFC2X3$1.IfcElectricHeaterType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1217240411: (v) => { + var _a, _b; + return new IFC2X3$1.IfcElectricMotorType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 712377611: (v) => { + var _a, _b; + return new IFC2X3$1.IfcElectricTimeControlType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1634875225: (v) => new IFC2X3$1.IfcElectricalCircuit(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value)), + 857184966: (v) => new IFC2X3$1.IfcElectricalElement(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 1658829314: (v) => new IFC2X3$1.IfcEnergyConversionDevice(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 346874300: (v) => { + var _a, _b; + return new IFC2X3$1.IfcFanType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1810631287: (v) => { + var _a, _b; + return new IFC2X3$1.IfcFilterType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 4222183408: (v) => { + var _a, _b; + return new IFC2X3$1.IfcFireSuppressionTerminalType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 2058353004: (v) => new IFC2X3$1.IfcFlowController(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 4278956645: (v) => new IFC2X3$1.IfcFlowFitting(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 4037862832: (v) => { + var _a, _b; + return new IFC2X3$1.IfcFlowInstrumentType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 3132237377: (v) => new IFC2X3$1.IfcFlowMovingDevice(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 987401354: (v) => new IFC2X3$1.IfcFlowSegment(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 707683696: (v) => new IFC2X3$1.IfcFlowStorageDevice(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 2223149337: (v) => new IFC2X3$1.IfcFlowTerminal(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 3508470533: (v) => new IFC2X3$1.IfcFlowTreatmentDevice(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 900683007: (v) => new IFC2X3$1.IfcFooting(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 1073191201: (v) => new IFC2X3$1.IfcMember(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 1687234759: (v) => new IFC2X3$1.IfcPile(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8], v[9]), + 3171933400: (v) => new IFC2X3$1.IfcPlate(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 2262370178: (v) => new IFC2X3$1.IfcRailing(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 3024970846: (v) => new IFC2X3$1.IfcRamp(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 3283111854: (v) => new IFC2X3$1.IfcRampFlight(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 3055160366: (v) => { + var _a, _b; + return new IFC2X3$1.IfcRationalBezierCurve(!v[0] ? null : v[0].value, ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], v[2], !v[3] ? null : v[3].value, !v[4] ? null : v[4].value, ((_b = v[5]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? Number(p.value) : null)) || []); + }, + 3027567501: (v) => new IFC2X3$1.IfcReinforcingElement(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value)), + 2320036040: (v) => new IFC2X3$1.IfcReinforcingMesh(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[10] ? null : v[10].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[11] ? null : v[11].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[12] ? null : v[12].value), new IFC2X3$1.IfcAreaMeasure(!v[13] ? null : v[13].value), new IFC2X3$1.IfcAreaMeasure(!v[14] ? null : v[14].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[15] ? null : v[15].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[16] ? null : v[16].value)), + 2016517767: (v) => new IFC2X3$1.IfcRoof(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 1376911519: (v) => new IFC2X3$1.IfcRoundedEdgeFeature(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value)), + 1783015770: (v) => { + var _a, _b; + return new IFC2X3$1.IfcSensorType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1529196076: (v) => new IFC2X3$1.IfcSlab(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 331165859: (v) => new IFC2X3$1.IfcStair(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 4252922144: (v) => new IFC2X3$1.IfcStairFlight(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : !v[8] ? null : v[8].value, !v[9] ? null : !v[9] ? null : v[9].value, !v[10] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[11] ? null : v[11].value)), + 2515109513: (v) => { + var _a, _b; + return new IFC2X3$1.IfcStructuralAnalysisModel(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), v[5], !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[8] ? null : ((_b = v[8]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 3824725483: (v) => new IFC2X3$1.IfcTendon(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9], new IFC2X3$1.IfcPositiveLengthMeasure(!v[10] ? null : v[10].value), new IFC2X3$1.IfcAreaMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new IFC2X3$1.IfcForceMeasure(!v[12] ? null : v[12].value), !v[13] ? null : new IFC2X3$1.IfcPressureMeasure(!v[13] ? null : v[13].value), !v[14] ? null : new IFC2X3$1.IfcNormalisedRatioMeasure(!v[14] ? null : v[14].value), !v[15] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[15] ? null : v[15].value), !v[16] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[16] ? null : v[16].value)), + 2347447852: (v) => new IFC2X3$1.IfcTendonAnchor(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value)), + 3313531582: (v) => { + var _a, _b; + return new IFC2X3$1.IfcVibrationIsolatorType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 2391406946: (v) => new IFC2X3$1.IfcWall(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 3512223829: (v) => new IFC2X3$1.IfcWallStandardCase(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 3304561284: (v) => new IFC2X3$1.IfcWindow(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value)), + 2874132201: (v) => { + var _a, _b; + return new IFC2X3$1.IfcActuatorType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 3001207471: (v) => { + var _a, _b; + return new IFC2X3$1.IfcAlarmType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 753842376: (v) => new IFC2X3$1.IfcBeam(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 2454782716: (v) => new IFC2X3$1.IfcChamferEdgeFeature(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[10] ? null : v[10].value)), + 578613899: (v) => { + var _a, _b; + return new IFC2X3$1.IfcControllerType(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC2X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1052013943: (v) => new IFC2X3$1.IfcDistributionChamberElement(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 1062813311: (v) => new IFC2X3$1.IfcDistributionControlElement(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcIdentifier(!v[8] ? null : v[8].value)), + 3700593921: (v) => new IFC2X3$1.IfcElectricDistributionPoint(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8], !v[9] ? null : new IFC2X3$1.IfcLabel(!v[9] ? null : v[9].value)), + 979691226: (v) => new IFC2X3$1.IfcReinforcingBar(new IFC2X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3$1.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3$1.IfcLabel(!v[8] ? null : v[8].value), new IFC2X3$1.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value), new IFC2X3$1.IfcAreaMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC2X3$1.IfcPositiveLengthMeasure(!v[11] ? null : v[11].value), v[12], v[13]) +}; +InheritanceDef[1] = { + 618182010: [IFCTELECOMADDRESS, IFCPOSTALADDRESS], + 411424972: [IFCENVIRONMENTALIMPACTVALUE, IFCCOSTVALUE], + 4037036970: [IFCBOUNDARYNODECONDITIONWARPING, IFCBOUNDARYNODECONDITION, IFCBOUNDARYFACECONDITION, IFCBOUNDARYEDGECONDITION], + 1387855156: [IFCBOUNDARYNODECONDITIONWARPING], + 3264961684: [IFCCOLOURRGB], + 2859738748: [IFCCONNECTIONCURVEGEOMETRY, IFCCONNECTIONSURFACEGEOMETRY, IFCCONNECTIONPORTGEOMETRY, IFCCONNECTIONPOINTECCENTRICITY, IFCCONNECTIONPOINTGEOMETRY], + 2614616156: [IFCCONNECTIONPOINTECCENTRICITY], + 1959218052: [IFCOBJECTIVE, IFCMETRIC], + 3796139169: [IFCDIMENSIONPAIR, IFCDIMENSIONCALLOUTRELATIONSHIP], + 3200245327: [IFCDOCUMENTREFERENCE, IFCCLASSIFICATIONREFERENCE, IFCLIBRARYREFERENCE, IFCEXTERNALLYDEFINEDTEXTFONT, IFCEXTERNALLYDEFINEDSYMBOL, IFCEXTERNALLYDEFINEDSURFACESTYLE, IFCEXTERNALLYDEFINEDHATCHSTYLE], + 3265635763: [IFCHYGROSCOPICMATERIALPROPERTIES, IFCGENERALMATERIALPROPERTIES, IFCFUELPROPERTIES, IFCEXTENDEDMATERIALPROPERTIES, IFCWATERPROPERTIES, IFCTHERMALMATERIALPROPERTIES, IFCPRODUCTSOFCOMBUSTIONPROPERTIES, IFCOPTICALMATERIALPROPERTIES, IFCMECHANICALCONCRETEMATERIALPROPERTIES, IFCMECHANICALSTEELMATERIALPROPERTIES, IFCMECHANICALMATERIALPROPERTIES], + 4256014907: [IFCMECHANICALCONCRETEMATERIALPROPERTIES, IFCMECHANICALSTEELMATERIALPROPERTIES], + 1918398963: [IFCCONVERSIONBASEDUNIT, IFCCONTEXTDEPENDENTUNIT, IFCSIUNIT], + 3701648758: [IFCLOCALPLACEMENT, IFCGRIDPLACEMENT], + 2483315170: [IFCPHYSICALCOMPLEXQUANTITY, IFCQUANTITYWEIGHT, IFCQUANTITYVOLUME, IFCQUANTITYTIME, IFCQUANTITYLENGTH, IFCQUANTITYCOUNT, IFCQUANTITYAREA, IFCPHYSICALSIMPLEQUANTITY], + 2226359599: [IFCQUANTITYWEIGHT, IFCQUANTITYVOLUME, IFCQUANTITYTIME, IFCQUANTITYLENGTH, IFCQUANTITYCOUNT, IFCQUANTITYAREA], + 3727388367: [IFCDRAUGHTINGPREDEFINEDCURVEFONT, IFCPREDEFINEDCURVEFONT, IFCDRAUGHTINGPREDEFINEDCOLOUR, IFCPREDEFINEDCOLOUR, IFCDRAUGHTINGPREDEFINEDTEXTFONT, IFCTEXTSTYLEFONTMODEL, IFCPREDEFINEDTEXTFONT, IFCPREDEFINEDPOINTMARKERSYMBOL, IFCPREDEFINEDDIMENSIONSYMBOL, IFCPREDEFINEDTERMINATORSYMBOL, IFCPREDEFINEDSYMBOL], + 990879717: [IFCPREDEFINEDPOINTMARKERSYMBOL, IFCPREDEFINEDDIMENSIONSYMBOL, IFCPREDEFINEDTERMINATORSYMBOL], + 1775413392: [IFCDRAUGHTINGPREDEFINEDTEXTFONT, IFCTEXTSTYLEFONTMODEL], + 2022622350: [IFCPRESENTATIONLAYERWITHSTYLE], + 3119450353: [IFCFILLAREASTYLE, IFCCURVESTYLE, IFCTEXTSTYLE, IFCSYMBOLSTYLE, IFCSURFACESTYLE], + 2095639259: [IFCPRODUCTDEFINITIONSHAPE, IFCMATERIALDEFINITIONREPRESENTATION], + 3958567839: [IFCLSHAPEPROFILEDEF, IFCASYMMETRICISHAPEPROFILEDEF, IFCISHAPEPROFILEDEF, IFCELLIPSEPROFILEDEF, IFCCRANERAILFSHAPEPROFILEDEF, IFCCRANERAILASHAPEPROFILEDEF, IFCCIRCLEHOLLOWPROFILEDEF, IFCCIRCLEPROFILEDEF, IFCCSHAPEPROFILEDEF, IFCZSHAPEPROFILEDEF, IFCUSHAPEPROFILEDEF, IFCTRAPEZIUMPROFILEDEF, IFCTSHAPEPROFILEDEF, IFCRECTANGLEHOLLOWPROFILEDEF, IFCROUNDEDRECTANGLEPROFILEDEF, IFCRECTANGLEPROFILEDEF, IFCPARAMETERIZEDPROFILEDEF, IFCDERIVEDPROFILEDEF, IFCCOMPOSITEPROFILEDEF, IFCCENTERLINEPROFILEDEF, IFCARBITRARYOPENPROFILEDEF, IFCARBITRARYPROFILEDEFWITHVOIDS, IFCARBITRARYCLOSEDPROFILEDEF], + 2802850158: [IFCSTRUCTURALSTEELPROFILEPROPERTIES, IFCSTRUCTURALPROFILEPROPERTIES, IFCGENERALPROFILEPROPERTIES, IFCRIBPLATEPROFILEPROPERTIES], + 2598011224: [IFCCOMPLEXPROPERTY, IFCPROPERTYTABLEVALUE, IFCPROPERTYSINGLEVALUE, IFCPROPERTYREFERENCEVALUE, IFCPROPERTYLISTVALUE, IFCPROPERTYENUMERATEDVALUE, IFCPROPERTYBOUNDEDVALUE, IFCSIMPLEPROPERTY], + 1076942058: [IFCSTYLEDREPRESENTATION, IFCSTYLEMODEL, IFCTOPOLOGYREPRESENTATION, IFCSHAPEREPRESENTATION, IFCSHAPEMODEL], + 3377609919: [IFCGEOMETRICREPRESENTATIONSUBCONTEXT, IFCGEOMETRICREPRESENTATIONCONTEXT], + 3008791417: [IFCMAPPEDITEM, IFCFILLAREASTYLETILES, IFCFILLAREASTYLETILESYMBOLWITHSTYLE, IFCFILLAREASTYLEHATCHING, IFCFACEBASEDSURFACEMODEL, IFCDIAMETERDIMENSION, IFCANGULARDIMENSION, IFCRADIUSDIMENSION, IFCLINEARDIMENSION, IFCDIMENSIONCURVEDIRECTEDCALLOUT, IFCSTRUCTUREDDIMENSIONCALLOUT, IFCDRAUGHTINGCALLOUT, IFCDIRECTION, IFCDEFINEDSYMBOL, IFCCIRCLE, IFCELLIPSE, IFCCONIC, IFCRATIONALBEZIERCURVE, IFCBEZIERCURVE, IFCBSPLINECURVE, IFCTRIMMEDCURVE, IFCPOLYLINE, IFC2DCOMPOSITECURVE, IFCCOMPOSITECURVE, IFCBOUNDEDCURVE, IFCOFFSETCURVE3D, IFCOFFSETCURVE2D, IFCLINE, IFCCURVE, IFCBLOCK, IFCSPHERE, IFCRIGHTCIRCULARCYLINDER, IFCRIGHTCIRCULARCONE, IFCRECTANGULARPYRAMID, IFCCSGPRIMITIVE3D, IFCCOMPOSITECURVESEGMENT, IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR3D, IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR2D, IFCCARTESIANTRANSFORMATIONOPERATOR, IFCBOUNDINGBOX, IFCBOOLEANCLIPPINGRESULT, IFCBOOLEANRESULT, IFCANNOTATIONSURFACE, IFCANNOTATIONFILLAREA, IFCVECTOR, IFCTEXTLITERALWITHEXTENT, IFCTEXTLITERAL, IFCPLANE, IFCELEMENTARYSURFACE, IFCRECTANGULARTRIMMEDSURFACE, IFCCURVEBOUNDEDPLANE, IFCBOUNDEDSURFACE, IFCSURFACEOFREVOLUTION, IFCSURFACEOFLINEAREXTRUSION, IFCSWEPTSURFACE, IFCSURFACE, IFCFACETEDBREPWITHVOIDS, IFCFACETEDBREP, IFCMANIFOLDSOLIDBREP, IFCCSGSOLID, IFCSWEPTDISKSOLID, IFCSURFACECURVESWEPTAREASOLID, IFCREVOLVEDAREASOLID, IFCEXTRUDEDAREASOLID, IFCSWEPTAREASOLID, IFCSOLIDMODEL, IFCSHELLBASEDSURFACEMODEL, IFCSECTIONEDSPINE, IFCCARTESIANPOINT, IFCPOINTONSURFACE, IFCPOINTONCURVE, IFCPOINT, IFCPLANARBOX, IFCPLANAREXTENT, IFCAXIS2PLACEMENT3D, IFCAXIS2PLACEMENT2D, IFCAXIS1PLACEMENT, IFCPLACEMENT, IFCTWODIRECTIONREPEATFACTOR, IFCONEDIRECTIONREPEATFACTOR, IFCLIGHTSOURCESPOT, IFCLIGHTSOURCEPOSITIONAL, IFCLIGHTSOURCEGONIOMETRIC, IFCLIGHTSOURCEDIRECTIONAL, IFCLIGHTSOURCEAMBIENT, IFCLIGHTSOURCE, IFCBOXEDHALFSPACE, IFCPOLYGONALBOUNDEDHALFSPACE, IFCHALFSPACESOLID, IFCGEOMETRICCURVESET, IFCGEOMETRICSET, IFCGEOMETRICREPRESENTATIONITEM, IFCPATH, IFCEDGELOOP, IFCVERTEXLOOP, IFCPOLYLOOP, IFCLOOP, IFCFACEOUTERBOUND, IFCFACEBOUND, IFCFACESURFACE, IFCFACE, IFCSUBEDGE, IFCORIENTEDEDGE, IFCEDGECURVE, IFCEDGE, IFCCLOSEDSHELL, IFCOPENSHELL, IFCCONNECTEDFACESET, IFCVERTEXPOINT, IFCVERTEX, IFCTOPOLOGICALREPRESENTATIONITEM, IFCANNOTATIONFILLAREAOCCURRENCE, IFCPROJECTIONCURVE, IFCDIMENSIONCURVE, IFCANNOTATIONCURVEOCCURRENCE, IFCANNOTATIONTEXTOCCURRENCE, IFCDIMENSIONCURVETERMINATOR, IFCTERMINATORSYMBOL, IFCANNOTATIONSYMBOLOCCURRENCE, IFCANNOTATIONSURFACEOCCURRENCE, IFCANNOTATIONOCCURRENCE, IFCSTYLEDITEM], + 2341007311: [IFCRELDEFINESBYTYPE, IFCRELOVERRIDESPROPERTIES, IFCRELDEFINESBYPROPERTIES, IFCRELDEFINES, IFCRELAGGREGATES, IFCRELNESTS, IFCRELDECOMPOSES, IFCRELVOIDSELEMENT, IFCRELSPACEBOUNDARY, IFCRELSERVICESBUILDINGS, IFCRELSEQUENCE, IFCRELREFERENCEDINSPATIALSTRUCTURE, IFCRELPROJECTSELEMENT, IFCRELINTERACTIONREQUIREMENTS, IFCRELFLOWCONTROLELEMENTS, IFCRELFILLSELEMENT, IFCRELCOVERSSPACES, IFCRELCOVERSBLDGELEMENTS, IFCRELCONTAINEDINSPATIALSTRUCTURE, IFCRELCONNECTSWITHECCENTRICITY, IFCRELCONNECTSSTRUCTURALMEMBER, IFCRELCONNECTSSTRUCTURALELEMENT, IFCRELCONNECTSSTRUCTURALACTIVITY, IFCRELCONNECTSPORTS, IFCRELCONNECTSPORTTOELEMENT, IFCRELCONNECTSWITHREALIZINGELEMENTS, IFCRELCONNECTSPATHELEMENTS, IFCRELCONNECTSELEMENTS, IFCRELCONNECTS, IFCRELASSOCIATESPROFILEPROPERTIES, IFCRELASSOCIATESMATERIAL, IFCRELASSOCIATESLIBRARY, IFCRELASSOCIATESDOCUMENT, IFCRELASSOCIATESCONSTRAINT, IFCRELASSOCIATESCLASSIFICATION, IFCRELASSOCIATESAPPROVAL, IFCRELASSOCIATESAPPLIEDVALUE, IFCRELASSOCIATES, IFCRELASSIGNSTORESOURCE, IFCRELASSIGNSTOPRODUCT, IFCRELASSIGNSTOPROCESS, IFCRELASSIGNSTOGROUP, IFCRELASSIGNSTASKS, IFCRELSCHEDULESCOSTITEMS, IFCRELASSIGNSTOPROJECTORDER, IFCRELASSIGNSTOCONTROL, IFCRELOCCUPIESSPACES, IFCRELASSIGNSTOACTOR, IFCRELASSIGNS, IFCRELATIONSHIP, IFCPROPERTYSET, IFCPERMEABLECOVERINGPROPERTIES, IFCFLUIDFLOWPROPERTIES, IFCELECTRICALBASEPROPERTIES, IFCENERGYPROPERTIES, IFCELEMENTQUANTITY, IFCDOORPANELPROPERTIES, IFCDOORLININGPROPERTIES, IFCWINDOWPANELPROPERTIES, IFCWINDOWLININGPROPERTIES, IFCSPACETHERMALLOADPROPERTIES, IFCSOUNDVALUE, IFCSOUNDPROPERTIES, IFCSERVICELIFEFACTOR, IFCREINFORCEMENTDEFINITIONPROPERTIES, IFCPROPERTYSETDEFINITION, IFCPROPERTYDEFINITION, IFCCONDITION, IFCASSET, IFCZONE, IFCSTRUCTURALANALYSISMODEL, IFCELECTRICALCIRCUIT, IFCSYSTEM, IFCSTRUCTURALRESULTGROUP, IFCSTRUCTURALLOADGROUP, IFCINVENTORY, IFCGROUP, IFCCONDITIONCRITERION, IFCACTIONREQUEST, IFCWORKSCHEDULE, IFCWORKPLAN, IFCWORKCONTROL, IFCTIMESERIESSCHEDULE, IFCSPACEPROGRAM, IFCSERVICELIFE, IFCSCHEDULETIMECONTROL, IFCPROJECTORDERRECORD, IFCPROJECTORDER, IFCPERMIT, IFCPERFORMANCEHISTORY, IFCFURNITURESTANDARD, IFCEQUIPMENTSTANDARD, IFCCOSTSCHEDULE, IFCCOSTITEM, IFCCONTROL, IFCOCCUPANT, IFCACTOR, IFCCONSTRUCTIONPRODUCTRESOURCE, IFCCONSTRUCTIONMATERIALRESOURCE, IFCCONSTRUCTIONEQUIPMENTRESOURCE, IFCSUBCONTRACTRESOURCE, IFCLABORRESOURCE, IFCCREWRESOURCE, IFCCONSTRUCTIONRESOURCE, IFCRESOURCE, IFCPROJECT, IFCDISTRIBUTIONPORT, IFCPORT, IFCGRID, IFCELECTRICALELEMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFLOWTREATMENTDEVICE, IFCFLOWTERMINAL, IFCFLOWSTORAGEDEVICE, IFCFLOWSEGMENT, IFCFLOWMOVINGDEVICE, IFCFLOWFITTING, IFCELECTRICDISTRIBUTIONPOINT, IFCFLOWCONTROLLER, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT, IFCDISTRIBUTIONELEMENT, IFCBEAM, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALL, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLAB, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCPLATE, IFCPILE, IFCMEMBER, IFCFOOTING, IFCDOOR, IFCCURTAINWALL, IFCCOVERING, IFCCOLUMN, IFCBUILDINGELEMENTPROXY, IFCREINFORCINGBAR, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCBUILDINGELEMENTPART, IFCBUILDINGELEMENTCOMPONENT, IFCBUILDINGELEMENT, IFCVIRTUALELEMENT, IFCTRANSPORTELEMENT, IFCFURNISHINGELEMENT, IFCCHAMFEREDGEFEATURE, IFCROUNDEDEDGEFEATURE, IFCEDGEFEATURE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION, IFCFEATUREELEMENT, IFCEQUIPMENTELEMENT, IFCDISCRETEACCESSORY, IFCMECHANICALFASTENER, IFCFASTENER, IFCELEMENTCOMPONENT, IFCELEMENTASSEMBLY, IFCELEMENT, IFCANNOTATION, IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION, IFCSTRUCTURALCONNECTION, IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER, IFCSTRUCTURALMEMBER, IFCSTRUCTURALITEM, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALPLANARACTIONVARYING, IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALLINEARACTIONVARYING, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALACTION, IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALREACTION, IFCSTRUCTURALACTIVITY, IFCSPACE, IFCSITE, IFCBUILDINGSTOREY, IFCBUILDING, IFCSPATIALSTRUCTUREELEMENT, IFCPROXY, IFCPRODUCT, IFCPROCEDURE, IFCORDERACTION, IFCMOVE, IFCTASK, IFCPROCESS, IFCOBJECT, IFCVIBRATIONISOLATORTYPE, IFCDISCRETEACCESSORYTYPE, IFCMECHANICALFASTENERTYPE, IFCFASTENERTYPE, IFCELEMENTCOMPONENTTYPE, IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCSENSORTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCDUCTSILENCERTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICHEATERTYPE, IFCELECTRICAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCGASTERMINALTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSPACEHEATERTYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE, IFCDISTRIBUTIONELEMENTTYPE, IFCBUILDINGELEMENTPROXYTYPE, IFCBEAMTYPE, IFCWALLTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCPLATETYPE, IFCMEMBERTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOLUMNTYPE, IFCBUILDINGELEMENTTYPE, IFCTRANSPORTELEMENTTYPE, IFCSPACETYPE, IFCSPATIALSTRUCTUREELEMENTTYPE, IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE, IFCFURNISHINGELEMENTTYPE, IFCELEMENTTYPE, IFCDOORSTYLE, IFCWINDOWSTYLE, IFCTYPEPRODUCT, IFCTYPEOBJECT, IFCOBJECTDEFINITION], + 3982875396: [IFCTOPOLOGYREPRESENTATION, IFCSHAPEREPRESENTATION], + 3692461612: [IFCPROPERTYTABLEVALUE, IFCPROPERTYSINGLEVALUE, IFCPROPERTYREFERENCEVALUE, IFCPROPERTYLISTVALUE, IFCPROPERTYENUMERATEDVALUE, IFCPROPERTYBOUNDEDVALUE], + 2273995522: [IFCSLIPPAGECONNECTIONCONDITION, IFCFAILURECONNECTIONCONDITION], + 2162789131: [IFCSTRUCTURALLOADSINGLEFORCEWARPING, IFCSTRUCTURALLOADSINGLEFORCE, IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION, IFCSTRUCTURALLOADSINGLEDISPLACEMENT, IFCSTRUCTURALLOADPLANARFORCE, IFCSTRUCTURALLOADLINEARFORCE, IFCSTRUCTURALLOADTEMPERATURE, IFCSTRUCTURALLOADSTATIC], + 2525727697: [IFCSTRUCTURALLOADSINGLEFORCEWARPING, IFCSTRUCTURALLOADSINGLEFORCE, IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION, IFCSTRUCTURALLOADSINGLEDISPLACEMENT, IFCSTRUCTURALLOADPLANARFORCE, IFCSTRUCTURALLOADLINEARFORCE, IFCSTRUCTURALLOADTEMPERATURE], + 2830218821: [IFCSTYLEDREPRESENTATION], + 3958052878: [IFCANNOTATIONFILLAREAOCCURRENCE, IFCPROJECTIONCURVE, IFCDIMENSIONCURVE, IFCANNOTATIONCURVEOCCURRENCE, IFCANNOTATIONTEXTOCCURRENCE, IFCDIMENSIONCURVETERMINATOR, IFCTERMINATORSYMBOL, IFCANNOTATIONSYMBOLOCCURRENCE, IFCANNOTATIONSURFACEOCCURRENCE, IFCANNOTATIONOCCURRENCE], + 846575682: [IFCSURFACESTYLERENDERING], + 626085974: [IFCPIXELTEXTURE, IFCIMAGETEXTURE, IFCBLOBTEXTURE], + 280115917: [IFCTEXTUREMAP, IFCTEXTURECOORDINATEGENERATOR], + 3101149627: [IFCREGULARTIMESERIES, IFCIRREGULARTIMESERIES], + 1377556343: [IFCPATH, IFCEDGELOOP, IFCVERTEXLOOP, IFCPOLYLOOP, IFCLOOP, IFCFACEOUTERBOUND, IFCFACEBOUND, IFCFACESURFACE, IFCFACE, IFCSUBEDGE, IFCORIENTEDEDGE, IFCEDGECURVE, IFCEDGE, IFCCLOSEDSHELL, IFCOPENSHELL, IFCCONNECTEDFACESET, IFCVERTEXPOINT, IFCVERTEX], + 2799835756: [IFCVERTEXPOINT], + 2442683028: [IFCANNOTATIONFILLAREAOCCURRENCE, IFCPROJECTIONCURVE, IFCDIMENSIONCURVE, IFCANNOTATIONCURVEOCCURRENCE, IFCANNOTATIONTEXTOCCURRENCE, IFCDIMENSIONCURVETERMINATOR, IFCTERMINATORSYMBOL, IFCANNOTATIONSYMBOLOCCURRENCE, IFCANNOTATIONSURFACEOCCURRENCE], + 3612888222: [IFCDIMENSIONCURVETERMINATOR, IFCTERMINATORSYMBOL], + 3798115385: [IFCARBITRARYPROFILEDEFWITHVOIDS], + 1310608509: [IFCCENTERLINEPROFILEDEF], + 370225590: [IFCCLOSEDSHELL, IFCOPENSHELL], + 3900360178: [IFCSUBEDGE, IFCORIENTEDEDGE, IFCEDGECURVE], + 2556980723: [IFCFACESURFACE], + 1809719519: [IFCFACEOUTERBOUND], + 1446786286: [IFCSTRUCTURALSTEELPROFILEPROPERTIES, IFCSTRUCTURALPROFILEPROPERTIES], + 3448662350: [IFCGEOMETRICREPRESENTATIONSUBCONTEXT], + 2453401579: [IFCFILLAREASTYLETILES, IFCFILLAREASTYLETILESYMBOLWITHSTYLE, IFCFILLAREASTYLEHATCHING, IFCFACEBASEDSURFACEMODEL, IFCDIAMETERDIMENSION, IFCANGULARDIMENSION, IFCRADIUSDIMENSION, IFCLINEARDIMENSION, IFCDIMENSIONCURVEDIRECTEDCALLOUT, IFCSTRUCTUREDDIMENSIONCALLOUT, IFCDRAUGHTINGCALLOUT, IFCDIRECTION, IFCDEFINEDSYMBOL, IFCCIRCLE, IFCELLIPSE, IFCCONIC, IFCRATIONALBEZIERCURVE, IFCBEZIERCURVE, IFCBSPLINECURVE, IFCTRIMMEDCURVE, IFCPOLYLINE, IFC2DCOMPOSITECURVE, IFCCOMPOSITECURVE, IFCBOUNDEDCURVE, IFCOFFSETCURVE3D, IFCOFFSETCURVE2D, IFCLINE, IFCCURVE, IFCBLOCK, IFCSPHERE, IFCRIGHTCIRCULARCYLINDER, IFCRIGHTCIRCULARCONE, IFCRECTANGULARPYRAMID, IFCCSGPRIMITIVE3D, IFCCOMPOSITECURVESEGMENT, IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR3D, IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR2D, IFCCARTESIANTRANSFORMATIONOPERATOR, IFCBOUNDINGBOX, IFCBOOLEANCLIPPINGRESULT, IFCBOOLEANRESULT, IFCANNOTATIONSURFACE, IFCANNOTATIONFILLAREA, IFCVECTOR, IFCTEXTLITERALWITHEXTENT, IFCTEXTLITERAL, IFCPLANE, IFCELEMENTARYSURFACE, IFCRECTANGULARTRIMMEDSURFACE, IFCCURVEBOUNDEDPLANE, IFCBOUNDEDSURFACE, IFCSURFACEOFREVOLUTION, IFCSURFACEOFLINEAREXTRUSION, IFCSWEPTSURFACE, IFCSURFACE, IFCFACETEDBREPWITHVOIDS, IFCFACETEDBREP, IFCMANIFOLDSOLIDBREP, IFCCSGSOLID, IFCSWEPTDISKSOLID, IFCSURFACECURVESWEPTAREASOLID, IFCREVOLVEDAREASOLID, IFCEXTRUDEDAREASOLID, IFCSWEPTAREASOLID, IFCSOLIDMODEL, IFCSHELLBASEDSURFACEMODEL, IFCSECTIONEDSPINE, IFCCARTESIANPOINT, IFCPOINTONSURFACE, IFCPOINTONCURVE, IFCPOINT, IFCPLANARBOX, IFCPLANAREXTENT, IFCAXIS2PLACEMENT3D, IFCAXIS2PLACEMENT2D, IFCAXIS1PLACEMENT, IFCPLACEMENT, IFCTWODIRECTIONREPEATFACTOR, IFCONEDIRECTIONREPEATFACTOR, IFCLIGHTSOURCESPOT, IFCLIGHTSOURCEPOSITIONAL, IFCLIGHTSOURCEGONIOMETRIC, IFCLIGHTSOURCEDIRECTIONAL, IFCLIGHTSOURCEAMBIENT, IFCLIGHTSOURCE, IFCBOXEDHALFSPACE, IFCPOLYGONALBOUNDEDHALFSPACE, IFCHALFSPACESOLID, IFCGEOMETRICCURVESET, IFCGEOMETRICSET], + 3590301190: [IFCGEOMETRICCURVESET], + 812098782: [IFCBOXEDHALFSPACE, IFCPOLYGONALBOUNDEDHALFSPACE], + 1402838566: [IFCLIGHTSOURCESPOT, IFCLIGHTSOURCEPOSITIONAL, IFCLIGHTSOURCEGONIOMETRIC, IFCLIGHTSOURCEDIRECTIONAL, IFCLIGHTSOURCEAMBIENT], + 1520743889: [IFCLIGHTSOURCESPOT], + 1008929658: [IFCEDGELOOP, IFCVERTEXLOOP, IFCPOLYLOOP], + 219451334: [IFCCONDITION, IFCASSET, IFCZONE, IFCSTRUCTURALANALYSISMODEL, IFCELECTRICALCIRCUIT, IFCSYSTEM, IFCSTRUCTURALRESULTGROUP, IFCSTRUCTURALLOADGROUP, IFCINVENTORY, IFCGROUP, IFCCONDITIONCRITERION, IFCACTIONREQUEST, IFCWORKSCHEDULE, IFCWORKPLAN, IFCWORKCONTROL, IFCTIMESERIESSCHEDULE, IFCSPACEPROGRAM, IFCSERVICELIFE, IFCSCHEDULETIMECONTROL, IFCPROJECTORDERRECORD, IFCPROJECTORDER, IFCPERMIT, IFCPERFORMANCEHISTORY, IFCFURNITURESTANDARD, IFCEQUIPMENTSTANDARD, IFCCOSTSCHEDULE, IFCCOSTITEM, IFCCONTROL, IFCOCCUPANT, IFCACTOR, IFCCONSTRUCTIONPRODUCTRESOURCE, IFCCONSTRUCTIONMATERIALRESOURCE, IFCCONSTRUCTIONEQUIPMENTRESOURCE, IFCSUBCONTRACTRESOURCE, IFCLABORRESOURCE, IFCCREWRESOURCE, IFCCONSTRUCTIONRESOURCE, IFCRESOURCE, IFCPROJECT, IFCDISTRIBUTIONPORT, IFCPORT, IFCGRID, IFCELECTRICALELEMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFLOWTREATMENTDEVICE, IFCFLOWTERMINAL, IFCFLOWSTORAGEDEVICE, IFCFLOWSEGMENT, IFCFLOWMOVINGDEVICE, IFCFLOWFITTING, IFCELECTRICDISTRIBUTIONPOINT, IFCFLOWCONTROLLER, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT, IFCDISTRIBUTIONELEMENT, IFCBEAM, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALL, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLAB, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCPLATE, IFCPILE, IFCMEMBER, IFCFOOTING, IFCDOOR, IFCCURTAINWALL, IFCCOVERING, IFCCOLUMN, IFCBUILDINGELEMENTPROXY, IFCREINFORCINGBAR, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCBUILDINGELEMENTPART, IFCBUILDINGELEMENTCOMPONENT, IFCBUILDINGELEMENT, IFCVIRTUALELEMENT, IFCTRANSPORTELEMENT, IFCFURNISHINGELEMENT, IFCCHAMFEREDGEFEATURE, IFCROUNDEDEDGEFEATURE, IFCEDGEFEATURE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION, IFCFEATUREELEMENT, IFCEQUIPMENTELEMENT, IFCDISCRETEACCESSORY, IFCMECHANICALFASTENER, IFCFASTENER, IFCELEMENTCOMPONENT, IFCELEMENTASSEMBLY, IFCELEMENT, IFCANNOTATION, IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION, IFCSTRUCTURALCONNECTION, IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER, IFCSTRUCTURALMEMBER, IFCSTRUCTURALITEM, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALPLANARACTIONVARYING, IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALLINEARACTIONVARYING, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALACTION, IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALREACTION, IFCSTRUCTURALACTIVITY, IFCSPACE, IFCSITE, IFCBUILDINGSTOREY, IFCBUILDING, IFCSPATIALSTRUCTUREELEMENT, IFCPROXY, IFCPRODUCT, IFCPROCEDURE, IFCORDERACTION, IFCMOVE, IFCTASK, IFCPROCESS, IFCOBJECT, IFCVIBRATIONISOLATORTYPE, IFCDISCRETEACCESSORYTYPE, IFCMECHANICALFASTENERTYPE, IFCFASTENERTYPE, IFCELEMENTCOMPONENTTYPE, IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCSENSORTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCDUCTSILENCERTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICHEATERTYPE, IFCELECTRICAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCGASTERMINALTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSPACEHEATERTYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE, IFCDISTRIBUTIONELEMENTTYPE, IFCBUILDINGELEMENTPROXYTYPE, IFCBEAMTYPE, IFCWALLTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCPLATETYPE, IFCMEMBERTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOLUMNTYPE, IFCBUILDINGELEMENTTYPE, IFCTRANSPORTELEMENTTYPE, IFCSPACETYPE, IFCSPATIALSTRUCTUREELEMENTTYPE, IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE, IFCFURNISHINGELEMENTTYPE, IFCELEMENTTYPE, IFCDOORSTYLE, IFCWINDOWSTYLE, IFCTYPEPRODUCT, IFCTYPEOBJECT], + 2833995503: [IFCTWODIRECTIONREPEATFACTOR], + 2529465313: [IFCLSHAPEPROFILEDEF, IFCASYMMETRICISHAPEPROFILEDEF, IFCISHAPEPROFILEDEF, IFCELLIPSEPROFILEDEF, IFCCRANERAILFSHAPEPROFILEDEF, IFCCRANERAILASHAPEPROFILEDEF, IFCCIRCLEHOLLOWPROFILEDEF, IFCCIRCLEPROFILEDEF, IFCCSHAPEPROFILEDEF, IFCZSHAPEPROFILEDEF, IFCUSHAPEPROFILEDEF, IFCTRAPEZIUMPROFILEDEF, IFCTSHAPEPROFILEDEF, IFCRECTANGLEHOLLOWPROFILEDEF, IFCROUNDEDRECTANGLEPROFILEDEF, IFCRECTANGLEPROFILEDEF], + 2004835150: [IFCAXIS2PLACEMENT3D, IFCAXIS2PLACEMENT2D, IFCAXIS1PLACEMENT], + 1663979128: [IFCPLANARBOX], + 2067069095: [IFCCARTESIANPOINT, IFCPOINTONSURFACE, IFCPOINTONCURVE], + 759155922: [IFCDRAUGHTINGPREDEFINEDCOLOUR], + 2559016684: [IFCDRAUGHTINGPREDEFINEDCURVEFONT], + 1680319473: [IFCPROPERTYSET, IFCPERMEABLECOVERINGPROPERTIES, IFCFLUIDFLOWPROPERTIES, IFCELECTRICALBASEPROPERTIES, IFCENERGYPROPERTIES, IFCELEMENTQUANTITY, IFCDOORPANELPROPERTIES, IFCDOORLININGPROPERTIES, IFCWINDOWPANELPROPERTIES, IFCWINDOWLININGPROPERTIES, IFCSPACETHERMALLOADPROPERTIES, IFCSOUNDVALUE, IFCSOUNDPROPERTIES, IFCSERVICELIFEFACTOR, IFCREINFORCEMENTDEFINITIONPROPERTIES, IFCPROPERTYSETDEFINITION], + 3357820518: [IFCPROPERTYSET, IFCPERMEABLECOVERINGPROPERTIES, IFCFLUIDFLOWPROPERTIES, IFCELECTRICALBASEPROPERTIES, IFCENERGYPROPERTIES, IFCELEMENTQUANTITY, IFCDOORPANELPROPERTIES, IFCDOORLININGPROPERTIES, IFCWINDOWPANELPROPERTIES, IFCWINDOWLININGPROPERTIES, IFCSPACETHERMALLOADPROPERTIES, IFCSOUNDVALUE, IFCSOUNDPROPERTIES, IFCSERVICELIFEFACTOR, IFCREINFORCEMENTDEFINITIONPROPERTIES], + 3615266464: [IFCRECTANGLEHOLLOWPROFILEDEF, IFCROUNDEDRECTANGLEPROFILEDEF], + 478536968: [IFCRELDEFINESBYTYPE, IFCRELOVERRIDESPROPERTIES, IFCRELDEFINESBYPROPERTIES, IFCRELDEFINES, IFCRELAGGREGATES, IFCRELNESTS, IFCRELDECOMPOSES, IFCRELVOIDSELEMENT, IFCRELSPACEBOUNDARY, IFCRELSERVICESBUILDINGS, IFCRELSEQUENCE, IFCRELREFERENCEDINSPATIALSTRUCTURE, IFCRELPROJECTSELEMENT, IFCRELINTERACTIONREQUIREMENTS, IFCRELFLOWCONTROLELEMENTS, IFCRELFILLSELEMENT, IFCRELCOVERSSPACES, IFCRELCOVERSBLDGELEMENTS, IFCRELCONTAINEDINSPATIALSTRUCTURE, IFCRELCONNECTSWITHECCENTRICITY, IFCRELCONNECTSSTRUCTURALMEMBER, IFCRELCONNECTSSTRUCTURALELEMENT, IFCRELCONNECTSSTRUCTURALACTIVITY, IFCRELCONNECTSPORTS, IFCRELCONNECTSPORTTOELEMENT, IFCRELCONNECTSWITHREALIZINGELEMENTS, IFCRELCONNECTSPATHELEMENTS, IFCRELCONNECTSELEMENTS, IFCRELCONNECTS, IFCRELASSOCIATESPROFILEPROPERTIES, IFCRELASSOCIATESMATERIAL, IFCRELASSOCIATESLIBRARY, IFCRELASSOCIATESDOCUMENT, IFCRELASSOCIATESCONSTRAINT, IFCRELASSOCIATESCLASSIFICATION, IFCRELASSOCIATESAPPROVAL, IFCRELASSOCIATESAPPLIEDVALUE, IFCRELASSOCIATES, IFCRELASSIGNSTORESOURCE, IFCRELASSIGNSTOPRODUCT, IFCRELASSIGNSTOPROCESS, IFCRELASSIGNSTOGROUP, IFCRELASSIGNSTASKS, IFCRELSCHEDULESCOSTITEMS, IFCRELASSIGNSTOPROJECTORDER, IFCRELASSIGNSTOCONTROL, IFCRELOCCUPIESSPACES, IFCRELASSIGNSTOACTOR, IFCRELASSIGNS], + 723233188: [IFCFACETEDBREPWITHVOIDS, IFCFACETEDBREP, IFCMANIFOLDSOLIDBREP, IFCCSGSOLID, IFCSWEPTDISKSOLID, IFCSURFACECURVESWEPTAREASOLID, IFCREVOLVEDAREASOLID, IFCEXTRUDEDAREASOLID, IFCSWEPTAREASOLID], + 2473145415: [IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION], + 1597423693: [IFCSTRUCTURALLOADSINGLEFORCEWARPING], + 3843319758: [IFCSTRUCTURALSTEELPROFILEPROPERTIES], + 2513912981: [IFCPLANE, IFCELEMENTARYSURFACE, IFCRECTANGULARTRIMMEDSURFACE, IFCCURVEBOUNDEDPLANE, IFCBOUNDEDSURFACE, IFCSURFACEOFREVOLUTION, IFCSURFACEOFLINEAREXTRUSION, IFCSWEPTSURFACE], + 2247615214: [IFCSURFACECURVESWEPTAREASOLID, IFCREVOLVEDAREASOLID, IFCEXTRUDEDAREASOLID], + 230924584: [IFCSURFACEOFREVOLUTION, IFCSURFACEOFLINEAREXTRUSION], + 3028897424: [IFCDIMENSIONCURVETERMINATOR], + 4282788508: [IFCTEXTLITERALWITHEXTENT], + 1628702193: [IFCVIBRATIONISOLATORTYPE, IFCDISCRETEACCESSORYTYPE, IFCMECHANICALFASTENERTYPE, IFCFASTENERTYPE, IFCELEMENTCOMPONENTTYPE, IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCSENSORTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCDUCTSILENCERTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICHEATERTYPE, IFCELECTRICAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCGASTERMINALTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSPACEHEATERTYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE, IFCDISTRIBUTIONELEMENTTYPE, IFCBUILDINGELEMENTPROXYTYPE, IFCBEAMTYPE, IFCWALLTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCPLATETYPE, IFCMEMBERTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOLUMNTYPE, IFCBUILDINGELEMENTTYPE, IFCTRANSPORTELEMENTTYPE, IFCSPACETYPE, IFCSPATIALSTRUCTUREELEMENTTYPE, IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE, IFCFURNISHINGELEMENTTYPE, IFCELEMENTTYPE, IFCDOORSTYLE, IFCWINDOWSTYLE, IFCTYPEPRODUCT], + 2347495698: [IFCVIBRATIONISOLATORTYPE, IFCDISCRETEACCESSORYTYPE, IFCMECHANICALFASTENERTYPE, IFCFASTENERTYPE, IFCELEMENTCOMPONENTTYPE, IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCSENSORTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCDUCTSILENCERTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICHEATERTYPE, IFCELECTRICAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCGASTERMINALTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSPACEHEATERTYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE, IFCDISTRIBUTIONELEMENTTYPE, IFCBUILDINGELEMENTPROXYTYPE, IFCBEAMTYPE, IFCWALLTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCPLATETYPE, IFCMEMBERTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOLUMNTYPE, IFCBUILDINGELEMENTTYPE, IFCTRANSPORTELEMENTTYPE, IFCSPACETYPE, IFCSPATIALSTRUCTUREELEMENTTYPE, IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE, IFCFURNISHINGELEMENTTYPE, IFCELEMENTTYPE, IFCDOORSTYLE, IFCWINDOWSTYLE], + 3288037868: [IFCPROJECTIONCURVE, IFCDIMENSIONCURVE], + 2736907675: [IFCBOOLEANCLIPPINGRESULT], + 4182860854: [IFCRECTANGULARTRIMMEDSURFACE, IFCCURVEBOUNDEDPLANE], + 59481748: [IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR3D, IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR2D], + 3749851601: [IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM], + 3331915920: [IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM], + 1383045692: [IFCCIRCLEHOLLOWPROFILEDEF], + 2506170314: [IFCBLOCK, IFCSPHERE, IFCRIGHTCIRCULARCYLINDER, IFCRIGHTCIRCULARCONE, IFCRECTANGULARPYRAMID], + 2601014836: [IFCCIRCLE, IFCELLIPSE, IFCCONIC, IFCRATIONALBEZIERCURVE, IFCBEZIERCURVE, IFCBSPLINECURVE, IFCTRIMMEDCURVE, IFCPOLYLINE, IFC2DCOMPOSITECURVE, IFCCOMPOSITECURVE, IFCBOUNDEDCURVE, IFCOFFSETCURVE3D, IFCOFFSETCURVE2D, IFCLINE], + 3073041342: [IFCDIAMETERDIMENSION, IFCANGULARDIMENSION, IFCRADIUSDIMENSION, IFCLINEARDIMENSION, IFCDIMENSIONCURVEDIRECTEDCALLOUT, IFCSTRUCTUREDDIMENSIONCALLOUT], + 339256511: [IFCVIBRATIONISOLATORTYPE, IFCDISCRETEACCESSORYTYPE, IFCMECHANICALFASTENERTYPE, IFCFASTENERTYPE, IFCELEMENTCOMPONENTTYPE, IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCSENSORTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCDUCTSILENCERTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICHEATERTYPE, IFCELECTRICAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCGASTERMINALTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSPACEHEATERTYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE, IFCDISTRIBUTIONELEMENTTYPE, IFCBUILDINGELEMENTPROXYTYPE, IFCBEAMTYPE, IFCWALLTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCPLATETYPE, IFCMEMBERTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOLUMNTYPE, IFCBUILDINGELEMENTTYPE, IFCTRANSPORTELEMENTTYPE, IFCSPACETYPE, IFCSPATIALSTRUCTUREELEMENTTYPE, IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE, IFCFURNISHINGELEMENTTYPE], + 2777663545: [IFCPLANE], + 80994333: [IFCELECTRICALBASEPROPERTIES], + 4238390223: [IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE], + 1484403080: [IFCASYMMETRICISHAPEPROFILEDEF], + 1425443689: [IFCFACETEDBREPWITHVOIDS, IFCFACETEDBREP], + 3888040117: [IFCCONDITION, IFCASSET, IFCZONE, IFCSTRUCTURALANALYSISMODEL, IFCELECTRICALCIRCUIT, IFCSYSTEM, IFCSTRUCTURALRESULTGROUP, IFCSTRUCTURALLOADGROUP, IFCINVENTORY, IFCGROUP, IFCCONDITIONCRITERION, IFCACTIONREQUEST, IFCWORKSCHEDULE, IFCWORKPLAN, IFCWORKCONTROL, IFCTIMESERIESSCHEDULE, IFCSPACEPROGRAM, IFCSERVICELIFE, IFCSCHEDULETIMECONTROL, IFCPROJECTORDERRECORD, IFCPROJECTORDER, IFCPERMIT, IFCPERFORMANCEHISTORY, IFCFURNITURESTANDARD, IFCEQUIPMENTSTANDARD, IFCCOSTSCHEDULE, IFCCOSTITEM, IFCCONTROL, IFCOCCUPANT, IFCACTOR, IFCCONSTRUCTIONPRODUCTRESOURCE, IFCCONSTRUCTIONMATERIALRESOURCE, IFCCONSTRUCTIONEQUIPMENTRESOURCE, IFCSUBCONTRACTRESOURCE, IFCLABORRESOURCE, IFCCREWRESOURCE, IFCCONSTRUCTIONRESOURCE, IFCRESOURCE, IFCPROJECT, IFCDISTRIBUTIONPORT, IFCPORT, IFCGRID, IFCELECTRICALELEMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFLOWTREATMENTDEVICE, IFCFLOWTERMINAL, IFCFLOWSTORAGEDEVICE, IFCFLOWSEGMENT, IFCFLOWMOVINGDEVICE, IFCFLOWFITTING, IFCELECTRICDISTRIBUTIONPOINT, IFCFLOWCONTROLLER, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT, IFCDISTRIBUTIONELEMENT, IFCBEAM, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALL, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLAB, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCPLATE, IFCPILE, IFCMEMBER, IFCFOOTING, IFCDOOR, IFCCURTAINWALL, IFCCOVERING, IFCCOLUMN, IFCBUILDINGELEMENTPROXY, IFCREINFORCINGBAR, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCBUILDINGELEMENTPART, IFCBUILDINGELEMENTCOMPONENT, IFCBUILDINGELEMENT, IFCVIRTUALELEMENT, IFCTRANSPORTELEMENT, IFCFURNISHINGELEMENT, IFCCHAMFEREDGEFEATURE, IFCROUNDEDEDGEFEATURE, IFCEDGEFEATURE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION, IFCFEATUREELEMENT, IFCEQUIPMENTELEMENT, IFCDISCRETEACCESSORY, IFCMECHANICALFASTENER, IFCFASTENER, IFCELEMENTCOMPONENT, IFCELEMENTASSEMBLY, IFCELEMENT, IFCANNOTATION, IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION, IFCSTRUCTURALCONNECTION, IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER, IFCSTRUCTURALMEMBER, IFCSTRUCTURALITEM, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALPLANARACTIONVARYING, IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALLINEARACTIONVARYING, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALACTION, IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALREACTION, IFCSTRUCTURALACTIVITY, IFCSPACE, IFCSITE, IFCBUILDINGSTOREY, IFCBUILDING, IFCSPATIALSTRUCTUREELEMENT, IFCPROXY, IFCPRODUCT, IFCPROCEDURE, IFCORDERACTION, IFCMOVE, IFCTASK, IFCPROCESS], + 2945172077: [IFCPROCEDURE, IFCORDERACTION, IFCMOVE, IFCTASK], + 4208778838: [IFCDISTRIBUTIONPORT, IFCPORT, IFCGRID, IFCELECTRICALELEMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFLOWTREATMENTDEVICE, IFCFLOWTERMINAL, IFCFLOWSTORAGEDEVICE, IFCFLOWSEGMENT, IFCFLOWMOVINGDEVICE, IFCFLOWFITTING, IFCELECTRICDISTRIBUTIONPOINT, IFCFLOWCONTROLLER, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT, IFCDISTRIBUTIONELEMENT, IFCBEAM, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALL, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLAB, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCPLATE, IFCPILE, IFCMEMBER, IFCFOOTING, IFCDOOR, IFCCURTAINWALL, IFCCOVERING, IFCCOLUMN, IFCBUILDINGELEMENTPROXY, IFCREINFORCINGBAR, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCBUILDINGELEMENTPART, IFCBUILDINGELEMENTCOMPONENT, IFCBUILDINGELEMENT, IFCVIRTUALELEMENT, IFCTRANSPORTELEMENT, IFCFURNISHINGELEMENT, IFCCHAMFEREDGEFEATURE, IFCROUNDEDEDGEFEATURE, IFCEDGEFEATURE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION, IFCFEATUREELEMENT, IFCEQUIPMENTELEMENT, IFCDISCRETEACCESSORY, IFCMECHANICALFASTENER, IFCFASTENER, IFCELEMENTCOMPONENT, IFCELEMENTASSEMBLY, IFCELEMENT, IFCANNOTATION, IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION, IFCSTRUCTURALCONNECTION, IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER, IFCSTRUCTURALMEMBER, IFCSTRUCTURALITEM, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALPLANARACTIONVARYING, IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALLINEARACTIONVARYING, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALACTION, IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALREACTION, IFCSTRUCTURALACTIVITY, IFCSPACE, IFCSITE, IFCBUILDINGSTOREY, IFCBUILDING, IFCSPATIALSTRUCTUREELEMENT, IFCPROXY], + 3939117080: [IFCRELASSIGNSTORESOURCE, IFCRELASSIGNSTOPRODUCT, IFCRELASSIGNSTOPROCESS, IFCRELASSIGNSTOGROUP, IFCRELASSIGNSTASKS, IFCRELSCHEDULESCOSTITEMS, IFCRELASSIGNSTOPROJECTORDER, IFCRELASSIGNSTOCONTROL, IFCRELOCCUPIESSPACES, IFCRELASSIGNSTOACTOR], + 1683148259: [IFCRELOCCUPIESSPACES], + 2495723537: [IFCRELASSIGNSTASKS, IFCRELSCHEDULESCOSTITEMS, IFCRELASSIGNSTOPROJECTORDER], + 1865459582: [IFCRELASSOCIATESPROFILEPROPERTIES, IFCRELASSOCIATESMATERIAL, IFCRELASSOCIATESLIBRARY, IFCRELASSOCIATESDOCUMENT, IFCRELASSOCIATESCONSTRAINT, IFCRELASSOCIATESCLASSIFICATION, IFCRELASSOCIATESAPPROVAL, IFCRELASSOCIATESAPPLIEDVALUE], + 826625072: [IFCRELVOIDSELEMENT, IFCRELSPACEBOUNDARY, IFCRELSERVICESBUILDINGS, IFCRELSEQUENCE, IFCRELREFERENCEDINSPATIALSTRUCTURE, IFCRELPROJECTSELEMENT, IFCRELINTERACTIONREQUIREMENTS, IFCRELFLOWCONTROLELEMENTS, IFCRELFILLSELEMENT, IFCRELCOVERSSPACES, IFCRELCOVERSBLDGELEMENTS, IFCRELCONTAINEDINSPATIALSTRUCTURE, IFCRELCONNECTSWITHECCENTRICITY, IFCRELCONNECTSSTRUCTURALMEMBER, IFCRELCONNECTSSTRUCTURALELEMENT, IFCRELCONNECTSSTRUCTURALACTIVITY, IFCRELCONNECTSPORTS, IFCRELCONNECTSPORTTOELEMENT, IFCRELCONNECTSWITHREALIZINGELEMENTS, IFCRELCONNECTSPATHELEMENTS, IFCRELCONNECTSELEMENTS], + 1204542856: [IFCRELCONNECTSWITHREALIZINGELEMENTS, IFCRELCONNECTSPATHELEMENTS], + 1638771189: [IFCRELCONNECTSWITHECCENTRICITY], + 2551354335: [IFCRELAGGREGATES, IFCRELNESTS], + 693640335: [IFCRELDEFINESBYTYPE, IFCRELOVERRIDESPROPERTIES, IFCRELDEFINESBYPROPERTIES], + 4186316022: [IFCRELOVERRIDESPROPERTIES], + 2914609552: [IFCCONSTRUCTIONPRODUCTRESOURCE, IFCCONSTRUCTIONMATERIALRESOURCE, IFCCONSTRUCTIONEQUIPMENTRESOURCE, IFCSUBCONTRACTRESOURCE, IFCLABORRESOURCE, IFCCREWRESOURCE, IFCCONSTRUCTIONRESOURCE], + 2706606064: [IFCSPACE, IFCSITE, IFCBUILDINGSTOREY, IFCBUILDING], + 3893378262: [IFCSPACETYPE], + 3544373492: [IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALPLANARACTIONVARYING, IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALLINEARACTIONVARYING, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALACTION, IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALREACTION], + 3136571912: [IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION, IFCSTRUCTURALCONNECTION, IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER, IFCSTRUCTURALMEMBER], + 530289379: [IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER], + 3689010777: [IFCSTRUCTURALPOINTREACTION], + 3979015343: [IFCSTRUCTURALSURFACEMEMBERVARYING], + 3473067441: [IFCORDERACTION, IFCMOVE], + 2296667514: [IFCOCCUPANT], + 1260505505: [IFCRATIONALBEZIERCURVE, IFCBEZIERCURVE, IFCBSPLINECURVE, IFCTRIMMEDCURVE, IFCPOLYLINE, IFC2DCOMPOSITECURVE, IFCCOMPOSITECURVE], + 1950629157: [IFCBUILDINGELEMENTPROXYTYPE, IFCBEAMTYPE, IFCWALLTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCPLATETYPE, IFCMEMBERTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOLUMNTYPE], + 3732776249: [IFC2DCOMPOSITECURVE], + 2510884976: [IFCCIRCLE, IFCELLIPSE], + 2559216714: [IFCCONSTRUCTIONPRODUCTRESOURCE, IFCCONSTRUCTIONMATERIALRESOURCE, IFCCONSTRUCTIONEQUIPMENTRESOURCE, IFCSUBCONTRACTRESOURCE, IFCLABORRESOURCE, IFCCREWRESOURCE], + 3293443760: [IFCCONDITIONCRITERION, IFCACTIONREQUEST, IFCWORKSCHEDULE, IFCWORKPLAN, IFCWORKCONTROL, IFCTIMESERIESSCHEDULE, IFCSPACEPROGRAM, IFCSERVICELIFE, IFCSCHEDULETIMECONTROL, IFCPROJECTORDERRECORD, IFCPROJECTORDER, IFCPERMIT, IFCPERFORMANCEHISTORY, IFCFURNITURESTANDARD, IFCEQUIPMENTSTANDARD, IFCCOSTSCHEDULE, IFCCOSTITEM], + 681481545: [IFCDIAMETERDIMENSION, IFCANGULARDIMENSION, IFCRADIUSDIMENSION, IFCLINEARDIMENSION], + 3256556792: [IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCSENSORTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCDUCTSILENCERTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICHEATERTYPE, IFCELECTRICAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCGASTERMINALTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSPACEHEATERTYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE], + 3849074793: [IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCDUCTSILENCERTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICHEATERTYPE, IFCELECTRICAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCGASTERMINALTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSPACEHEATERTYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENERGYCONVERSIONDEVICETYPE], + 1758889154: [IFCELECTRICALELEMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFLOWTREATMENTDEVICE, IFCFLOWTERMINAL, IFCFLOWSTORAGEDEVICE, IFCFLOWSEGMENT, IFCFLOWMOVINGDEVICE, IFCFLOWFITTING, IFCELECTRICDISTRIBUTIONPOINT, IFCFLOWCONTROLLER, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT, IFCDISTRIBUTIONELEMENT, IFCBEAM, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALL, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLAB, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCPLATE, IFCPILE, IFCMEMBER, IFCFOOTING, IFCDOOR, IFCCURTAINWALL, IFCCOVERING, IFCCOLUMN, IFCBUILDINGELEMENTPROXY, IFCREINFORCINGBAR, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCBUILDINGELEMENTPART, IFCBUILDINGELEMENTCOMPONENT, IFCBUILDINGELEMENT, IFCVIRTUALELEMENT, IFCTRANSPORTELEMENT, IFCFURNISHINGELEMENT, IFCCHAMFEREDGEFEATURE, IFCROUNDEDEDGEFEATURE, IFCEDGEFEATURE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION, IFCFEATUREELEMENT, IFCEQUIPMENTELEMENT, IFCDISCRETEACCESSORY, IFCMECHANICALFASTENER, IFCFASTENER, IFCELEMENTCOMPONENT, IFCELEMENTASSEMBLY], + 1623761950: [IFCDISCRETEACCESSORY, IFCMECHANICALFASTENER, IFCFASTENER], + 2590856083: [IFCVIBRATIONISOLATORTYPE, IFCDISCRETEACCESSORYTYPE, IFCMECHANICALFASTENERTYPE, IFCFASTENERTYPE], + 2107101300: [IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSPACEHEATERTYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE], + 647756555: [IFCMECHANICALFASTENER], + 2489546625: [IFCMECHANICALFASTENERTYPE], + 2827207264: [IFCCHAMFEREDGEFEATURE, IFCROUNDEDEDGEFEATURE, IFCEDGEFEATURE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION], + 2143335405: [IFCPROJECTIONELEMENT], + 1287392070: [IFCCHAMFEREDGEFEATURE, IFCROUNDEDEDGEFEATURE, IFCEDGEFEATURE, IFCOPENINGELEMENT], + 3907093117: [IFCELECTRICTIMECONTROLTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE], + 3198132628: [IFCDUCTFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE], + 1482959167: [IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE], + 1834744321: [IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE], + 1339347760: [IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE], + 2297155007: [IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICHEATERTYPE, IFCELECTRICAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCGASTERMINALTYPE], + 3009222698: [IFCFILTERTYPE, IFCDUCTSILENCERTYPE], + 2706460486: [IFCCONDITION, IFCASSET, IFCZONE, IFCSTRUCTURALANALYSISMODEL, IFCELECTRICALCIRCUIT, IFCSYSTEM, IFCSTRUCTURALRESULTGROUP, IFCSTRUCTURALLOADGROUP, IFCINVENTORY], + 3740093272: [IFCDISTRIBUTIONPORT], + 682877961: [IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALPLANARACTIONVARYING, IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALLINEARACTIONVARYING, IFCSTRUCTURALLINEARACTION], + 1179482911: [IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION], + 214636428: [IFCSTRUCTURALCURVEMEMBERVARYING], + 1807405624: [IFCSTRUCTURALLINEARACTIONVARYING], + 1621171031: [IFCSTRUCTURALPLANARACTIONVARYING], + 2254336722: [IFCSTRUCTURALANALYSISMODEL, IFCELECTRICALCIRCUIT], + 1028945134: [IFCWORKSCHEDULE, IFCWORKPLAN], + 1967976161: [IFCRATIONALBEZIERCURVE, IFCBEZIERCURVE], + 1916977116: [IFCRATIONALBEZIERCURVE], + 3299480353: [IFCBEAM, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALL, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLAB, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCPLATE, IFCPILE, IFCMEMBER, IFCFOOTING, IFCDOOR, IFCCURTAINWALL, IFCCOVERING, IFCCOLUMN, IFCBUILDINGELEMENTPROXY, IFCREINFORCINGBAR, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCBUILDINGELEMENTPART, IFCBUILDINGELEMENTCOMPONENT], + 52481810: [IFCREINFORCINGBAR, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCBUILDINGELEMENTPART], + 2635815018: [IFCVIBRATIONISOLATORTYPE], + 2063403501: [IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCSENSORTYPE, IFCFLOWINSTRUMENTTYPE], + 1945004755: [IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFLOWTREATMENTDEVICE, IFCFLOWTERMINAL, IFCFLOWSTORAGEDEVICE, IFCFLOWSEGMENT, IFCFLOWMOVINGDEVICE, IFCFLOWFITTING, IFCELECTRICDISTRIBUTIONPOINT, IFCFLOWCONTROLLER, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT], + 3040386961: [IFCDISTRIBUTIONCHAMBERELEMENT, IFCFLOWTREATMENTDEVICE, IFCFLOWTERMINAL, IFCFLOWSTORAGEDEVICE, IFCFLOWSEGMENT, IFCFLOWMOVINGDEVICE, IFCFLOWFITTING, IFCELECTRICDISTRIBUTIONPOINT, IFCFLOWCONTROLLER, IFCENERGYCONVERSIONDEVICE], + 855621170: [IFCCHAMFEREDGEFEATURE, IFCROUNDEDEDGEFEATURE], + 2058353004: [IFCELECTRICDISTRIBUTIONPOINT], + 3027567501: [IFCREINFORCINGBAR, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH], + 2391406946: [IFCWALLSTANDARDCASE] +}; +InversePropertyDef[1] = { + 618182010: [["OfPerson", IFCPERSON, 7, true], ["OfOrganization", IFCORGANIZATION, 4, true]], + 411424972: [["ValuesReferenced", IFCREFERENCESVALUEDOCUMENT, 1, true], ["ValueOfComponents", IFCAPPLIEDVALUERELATIONSHIP, 0, true], ["IsComponentIn", IFCAPPLIEDVALUERELATIONSHIP, 1, true]], + 130549933: [["Actors", IFCAPPROVALACTORRELATIONSHIP, 1, true], ["IsRelatedWith", IFCAPPROVALRELATIONSHIP, 0, true], ["Relates", IFCAPPROVALRELATIONSHIP, 1, true]], + 747523909: [["Contains", IFCCLASSIFICATIONITEM, 1, true]], + 1767535486: [["IsClassifiedItemIn", IFCCLASSIFICATIONITEMRELATIONSHIP, 1, true], ["IsClassifyingItemIn", IFCCLASSIFICATIONITEMRELATIONSHIP, 0, true]], + 1959218052: [["ClassifiedAs", IFCCONSTRAINTCLASSIFICATIONRELATIONSHIP, 0, true], ["RelatesConstraints", IFCCONSTRAINTRELATIONSHIP, 2, true], ["IsRelatedWith", IFCCONSTRAINTRELATIONSHIP, 3, true], ["PropertiesForConstraint", IFCPROPERTYCONSTRAINTRELATIONSHIP, 0, true], ["Aggregates", IFCCONSTRAINTAGGREGATIONRELATIONSHIP, 2, true], ["IsAggregatedIn", IFCCONSTRAINTAGGREGATIONRELATIONSHIP, 3, true]], + 602808272: [["ValuesReferenced", IFCREFERENCESVALUEDOCUMENT, 1, true], ["ValueOfComponents", IFCAPPLIEDVALUERELATIONSHIP, 0, true], ["IsComponentIn", IFCAPPLIEDVALUERELATIONSHIP, 1, true]], + 1154170062: [["IsPointedTo", IFCDOCUMENTINFORMATIONRELATIONSHIP, 1, true], ["IsPointer", IFCDOCUMENTINFORMATIONRELATIONSHIP, 0, true]], + 1648886627: [["ValuesReferenced", IFCREFERENCESVALUEDOCUMENT, 1, true], ["ValueOfComponents", IFCAPPLIEDVALUERELATIONSHIP, 0, true], ["IsComponentIn", IFCAPPLIEDVALUERELATIONSHIP, 1, true]], + 852622518: [["PartOfW", IFCGRID, 9, true], ["PartOfV", IFCGRID, 8, true], ["PartOfU", IFCGRID, 7, true], ["HasIntersections", IFCVIRTUALGRIDINTERSECTION, 0, true]], + 3452421091: [["ReferenceIntoLibrary", IFCLIBRARYINFORMATION, 4, true]], + 1838606355: [["HasRepresentation", IFCMATERIALDEFINITIONREPRESENTATION, 3, true], ["ClassifiedAs", IFCMATERIALCLASSIFICATIONRELATIONSHIP, 1, true]], + 248100487: [["ToMaterialLayerSet", IFCMATERIALLAYERSET, 0, false]], + 3368373690: [["ClassifiedAs", IFCCONSTRAINTCLASSIFICATIONRELATIONSHIP, 0, true], ["RelatesConstraints", IFCCONSTRAINTRELATIONSHIP, 2, true], ["IsRelatedWith", IFCCONSTRAINTRELATIONSHIP, 3, true], ["PropertiesForConstraint", IFCPROPERTYCONSTRAINTRELATIONSHIP, 0, true], ["Aggregates", IFCCONSTRAINTAGGREGATIONRELATIONSHIP, 2, true], ["IsAggregatedIn", IFCCONSTRAINTAGGREGATIONRELATIONSHIP, 3, true]], + 3701648758: [["PlacesObject", IFCPRODUCT, 5, true], ["ReferencedByPlacements", IFCLOCALPLACEMENT, 0, true]], + 2251480897: [["ClassifiedAs", IFCCONSTRAINTCLASSIFICATIONRELATIONSHIP, 0, true], ["RelatesConstraints", IFCCONSTRAINTRELATIONSHIP, 2, true], ["IsRelatedWith", IFCCONSTRAINTRELATIONSHIP, 3, true], ["PropertiesForConstraint", IFCPROPERTYCONSTRAINTRELATIONSHIP, 0, true], ["Aggregates", IFCCONSTRAINTAGGREGATIONRELATIONSHIP, 2, true], ["IsAggregatedIn", IFCCONSTRAINTAGGREGATIONRELATIONSHIP, 3, true]], + 4251960020: [["IsRelatedBy", IFCORGANIZATIONRELATIONSHIP, 3, true], ["Relates", IFCORGANIZATIONRELATIONSHIP, 2, true], ["Engages", IFCPERSONANDORGANIZATION, 1, true]], + 2077209135: [["EngagedIn", IFCPERSONANDORGANIZATION, 0, true]], + 2483315170: [["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]], + 2226359599: [["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]], + 3355820592: [["OfPerson", IFCPERSON, 7, true], ["OfOrganization", IFCORGANIZATION, 4, true]], + 2598011224: [["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 0, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 1, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true]], + 2044713172: [["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]], + 2093928680: [["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]], + 931644368: [["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]], + 3252649465: [["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]], + 2405470396: [["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]], + 825690147: [["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]], + 1076942058: [["RepresentationMap", IFCREPRESENTATIONMAP, 1, true], ["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["OfProductRepresentation", IFCPRODUCTREPRESENTATION, 2, true]], + 3377609919: [["RepresentationsInContext", IFCREPRESENTATION, 0, true]], + 3008791417: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 1660063152: [["MapUsage", IFCMAPPEDITEM, 0, true]], + 3982875396: [["RepresentationMap", IFCREPRESENTATIONMAP, 1, true], ["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["OfProductRepresentation", IFCPRODUCTREPRESENTATION, 2, true], ["OfShapeAspect", IFCSHAPEASPECT, 0, true]], + 4240577450: [["RepresentationMap", IFCREPRESENTATIONMAP, 1, true], ["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["OfProductRepresentation", IFCPRODUCTREPRESENTATION, 2, true], ["OfShapeAspect", IFCSHAPEASPECT, 0, true]], + 3692461612: [["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 0, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 1, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true]], + 2830218821: [["RepresentationMap", IFCREPRESENTATIONMAP, 1, true], ["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["OfProductRepresentation", IFCPRODUCTREPRESENTATION, 2, true]], + 3958052878: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3049322572: [["RepresentationMap", IFCREPRESENTATIONMAP, 1, true], ["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["OfProductRepresentation", IFCPRODUCTREPRESENTATION, 2, true]], + 531007025: [["OfTable", IFCTABLE, 1, false]], + 912023232: [["OfPerson", IFCPERSON, 7, true], ["OfOrganization", IFCORGANIZATION, 4, true]], + 280115917: [["AnnotatedSurface", IFCANNOTATIONSURFACE, 1, true]], + 1742049831: [["AnnotatedSurface", IFCANNOTATIONSURFACE, 1, true]], + 2552916305: [["AnnotatedSurface", IFCANNOTATIONSURFACE, 1, true]], + 3101149627: [["DocumentedBy", IFCTIMESERIESREFERENCERELATIONSHIP, 0, true]], + 1377556343: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 1735638870: [["RepresentationMap", IFCREPRESENTATIONMAP, 1, true], ["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["OfProductRepresentation", IFCPRODUCTREPRESENTATION, 2, true], ["OfShapeAspect", IFCSHAPEASPECT, 0, true]], + 2799835756: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 1907098498: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2442683028: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 962685235: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3612888222: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2297822566: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2542286263: [["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 0, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 1, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true]], + 370225590: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3732053477: [["ReferenceToDocument", IFCDOCUMENTINFORMATION, 3, true]], + 3900360178: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 476780140: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2556980723: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 1809719519: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 803316827: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3008276851: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3448662350: [["RepresentationsInContext", IFCREPRESENTATION, 0, true], ["HasSubContexts", IFCGEOMETRICREPRESENTATIONSUBCONTEXT, 6, true]], + 2453401579: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 4142052618: [["RepresentationsInContext", IFCREPRESENTATION, 0, true], ["HasSubContexts", IFCGEOMETRICREPRESENTATIONSUBCONTEXT, 6, true]], + 3590301190: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 178086475: [["PlacesObject", IFCPRODUCT, 5, true], ["ReferencedByPlacements", IFCLOCALPLACEMENT, 0, true]], + 812098782: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3741457305: [["DocumentedBy", IFCTIMESERIESREFERENCERELATIONSHIP, 0, true]], + 1402838566: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 125510826: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2604431987: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 4266656042: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 1520743889: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3422422726: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2624227202: [["PlacesObject", IFCPRODUCT, 5, true], ["ReferencedByPlacements", IFCLOCALPLACEMENT, 0, true]], + 1008929658: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2347385850: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 219451334: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true]], + 2833995503: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2665983363: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 1029017970: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2519244187: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3021840470: [["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]], + 2004835150: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 1663979128: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2067069095: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 4022376103: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 1423911732: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2924175390: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2775532180: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 673634403: [["ShapeOfProduct", IFCPRODUCT, 6, true], ["HasShapeAspects", IFCSHAPEASPECT, 4, true]], + 871118103: [["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 0, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 1, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true]], + 1680319473: [["HasAssociations", IFCRELASSOCIATES, 4, true]], + 4166981789: [["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 0, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 1, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true]], + 2752243245: [["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 0, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 1, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true]], + 941946838: [["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 0, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 1, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true]], + 3357820518: [["HasAssociations", IFCRELASSOCIATES, 4, true], ["PropertyDefinitionOf", IFCRELDEFINESBYPROPERTIES, 5, true], ["DefinesType", IFCTYPEOBJECT, 5, true]], + 3650150729: [["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 0, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 1, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true]], + 110355661: [["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 0, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 1, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true]], + 3413951693: [["DocumentedBy", IFCTIMESERIESREFERENCERELATIONSHIP, 0, true]], + 3765753017: [["HasAssociations", IFCRELASSOCIATES, 4, true], ["PropertyDefinitionOf", IFCRELDEFINESBYPROPERTIES, 5, true], ["DefinesType", IFCTYPEOBJECT, 5, true]], + 1509187699: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2411513650: [["HasAssociations", IFCRELASSOCIATES, 4, true], ["PropertyDefinitionOf", IFCRELDEFINESBYPROPERTIES, 5, true], ["DefinesType", IFCTYPEOBJECT, 5, true]], + 4124623270: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 723233188: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2485662743: [["HasAssociations", IFCRELASSOCIATES, 4, true], ["PropertyDefinitionOf", IFCRELDEFINESBYPROPERTIES, 5, true], ["DefinesType", IFCTYPEOBJECT, 5, true]], + 1202362311: [["HasAssociations", IFCRELASSOCIATES, 4, true], ["PropertyDefinitionOf", IFCRELDEFINESBYPROPERTIES, 5, true], ["DefinesType", IFCTYPEOBJECT, 5, true]], + 390701378: [["HasAssociations", IFCRELASSOCIATES, 4, true], ["PropertyDefinitionOf", IFCRELDEFINESBYPROPERTIES, 5, true], ["DefinesType", IFCTYPEOBJECT, 5, true]], + 2233826070: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2513912981: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2247615214: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 1260650574: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 230924584: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3028897424: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 4282788508: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3124975700: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 1345879162: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 1628702193: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 2347495698: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 1417489154: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2759199220: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 336235671: [["HasAssociations", IFCRELASSOCIATES, 4, true], ["PropertyDefinitionOf", IFCRELDEFINESBYPROPERTIES, 5, true], ["DefinesType", IFCTYPEOBJECT, 5, true]], + 512836454: [["HasAssociations", IFCRELASSOCIATES, 4, true], ["PropertyDefinitionOf", IFCRELDEFINESBYPROPERTIES, 5, true], ["DefinesType", IFCTYPEOBJECT, 5, true]], + 1299126871: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 3288037868: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 669184980: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2265737646: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 1302238472: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 4261334040: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3125803723: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2740243338: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2736907675: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 4182860854: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2581212453: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2713105998: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 1123145078: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 59481748: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3749851601: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3486308946: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3331915920: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 1416205885: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2205249479: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2485617015: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["UsingCurves", IFCCOMPOSITECURVE, 0, true]], + 2506170314: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2147822146: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2601014836: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2827736869: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 693772133: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 606661476: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["AnnotatedBySymbols", IFCTERMINATORSYMBOL, 3, true]], + 4054601972: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 32440307: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2963535650: [["HasAssociations", IFCRELASSOCIATES, 4, true], ["PropertyDefinitionOf", IFCRELDEFINESBYPROPERTIES, 5, true], ["DefinesType", IFCTYPEOBJECT, 5, true]], + 1714330368: [["HasAssociations", IFCRELASSOCIATES, 4, true], ["PropertyDefinitionOf", IFCRELDEFINESBYPROPERTIES, 5, true], ["DefinesType", IFCTYPEOBJECT, 5, true]], + 526551008: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 3073041342: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["IsRelatedFromCallout", IFCDRAUGHTINGCALLOUTRELATIONSHIP, 3, true], ["IsRelatedToCallout", IFCDRAUGHTINGCALLOUTRELATIONSHIP, 2, true]], + 1472233963: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 1883228015: [["HasAssociations", IFCRELASSOCIATES, 4, true], ["PropertyDefinitionOf", IFCRELDEFINESBYPROPERTIES, 5, true], ["DefinesType", IFCTYPEOBJECT, 5, true]], + 339256511: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 2777663545: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 80994333: [["HasAssociations", IFCRELASSOCIATES, 4, true], ["PropertyDefinitionOf", IFCRELDEFINESBYPROPERTIES, 5, true], ["DefinesType", IFCTYPEOBJECT, 5, true]], + 477187591: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2047409740: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 374418227: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 4203026998: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 315944413: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3455213021: [["HasAssociations", IFCRELASSOCIATES, 4, true], ["PropertyDefinitionOf", IFCRELDEFINESBYPROPERTIES, 5, true], ["DefinesType", IFCTYPEOBJECT, 5, true]], + 4238390223: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 1268542332: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 987898635: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 1281925730: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 1425443689: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3888040117: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true]], + 3388369263: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3505215534: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3566463478: [["HasAssociations", IFCRELASSOCIATES, 4, true], ["PropertyDefinitionOf", IFCRELDEFINESBYPROPERTIES, 5, true], ["DefinesType", IFCTYPEOBJECT, 5, true]], + 603570806: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 220341763: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2945172077: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["OperatesOn", IFCRELASSIGNSTOPROCESS, 6, true], ["IsSuccessorFrom", IFCRELSEQUENCE, 5, true], ["IsPredecessorTo", IFCRELSEQUENCE, 4, true]], + 4208778838: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 103090709: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true]], + 4194566429: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 1451395588: [["HasAssociations", IFCRELASSOCIATES, 4, true], ["PropertyDefinitionOf", IFCRELDEFINESBYPROPERTIES, 5, true], ["DefinesType", IFCTYPEOBJECT, 5, true]], + 3219374653: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 2798486643: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3454111270: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2914609552: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], + 1856042241: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 4158566097: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3626867408: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2706606064: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true]], + 3893378262: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 451544542: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3544373492: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, false]], + 3136571912: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true]], + 530289379: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ReferencesElement", IFCRELCONNECTSSTRUCTURALELEMENT, 5, true], ["ConnectedBy", IFCRELCONNECTSSTRUCTURALMEMBER, 4, true]], + 3689010777: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, false], ["Causes", IFCSTRUCTURALACTION, 10, true]], + 3979015343: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ReferencesElement", IFCRELCONNECTSSTRUCTURALELEMENT, 5, true], ["ConnectedBy", IFCRELCONNECTSSTRUCTURALMEMBER, 4, true]], + 2218152070: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ReferencesElement", IFCRELCONNECTSSTRUCTURALELEMENT, 5, true], ["ConnectedBy", IFCRELCONNECTSSTRUCTURALMEMBER, 4, true]], + 4070609034: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["IsRelatedFromCallout", IFCDRAUGHTINGCALLOUTRELATIONSHIP, 3, true], ["IsRelatedToCallout", IFCDRAUGHTINGCALLOUTRELATIONSHIP, 2, true]], + 2028607225: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2809605785: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 4124788165: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 1580310250: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 3473067441: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["OperatesOn", IFCRELASSIGNSTOPROCESS, 6, true], ["IsSuccessorFrom", IFCRELSEQUENCE, 5, true], ["IsPredecessorTo", IFCRELSEQUENCE, 4, true]], + 2097647324: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 2296667514: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["IsActingUpon", IFCRELASSIGNSTOACTOR, 6, true]], + 1674181508: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], + 1334484129: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3649129432: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 1260505505: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 4031249490: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true]], + 1950629157: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 3124254112: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true]], + 300633059: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 3732776249: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2510884976: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2559216714: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], + 3293443760: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], + 3895139033: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], + 1419761937: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], + 1916426348: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 3295246426: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], + 1457835157: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 681481545: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["IsRelatedFromCallout", IFCDRAUGHTINGCALLOUTRELATIONSHIP, 3, true], ["IsRelatedToCallout", IFCDRAUGHTINGCALLOUTRELATIONSHIP, 2, true]], + 3256556792: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 3849074793: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 360485395: [["HasAssociations", IFCRELASSOCIATES, 4, true], ["PropertyDefinitionOf", IFCRELDEFINESBYPROPERTIES, 5, true], ["DefinesType", IFCTYPEOBJECT, 5, true]], + 1758889154: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], + 4123344466: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], + 1623761950: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], + 2590856083: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 1704287377: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2107101300: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 1962604670: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], + 3272907226: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], + 3174744832: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 3390157468: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 807026263: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3737207727: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 647756555: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], + 2489546625: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 2827207264: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], + 2143335405: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["ProjectsElements", IFCRELPROJECTSELEMENT, 5, false]], + 1287392070: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["VoidsElements", IFCRELVOIDSELEMENT, 5, false]], + 3907093117: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 3198132628: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 3815607619: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 1482959167: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 1834744321: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 1339347760: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 2297155007: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 3009222698: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 263784265: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], + 814719939: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], + 200128114: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 3009204131: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], + 2706460486: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, false]], + 1251058090: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 1806887404: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 2391368822: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, false]], + 4288270099: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 3827777499: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], + 1051575348: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 1161773419: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 2506943328: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["IsRelatedFromCallout", IFCDRAUGHTINGCALLOUTRELATIONSHIP, 3, true], ["IsRelatedToCallout", IFCDRAUGHTINGCALLOUTRELATIONSHIP, 2, true]], + 377706215: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], + 2108223431: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 3181161470: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 977012517: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 1916936684: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["OperatesOn", IFCRELASSIGNSTOPROCESS, 6, true], ["IsSuccessorFrom", IFCRELSEQUENCE, 5, true], ["IsPredecessorTo", IFCRELSEQUENCE, 4, true]], + 4143007308: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["IsActingUpon", IFCRELASSIGNSTOACTOR, 6, true]], + 3588315303: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["VoidsElements", IFCRELVOIDSELEMENT, 5, false], ["HasFillings", IFCRELFILLSELEMENT, 4, true]], + 3425660407: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["OperatesOn", IFCRELASSIGNSTOPROCESS, 6, true], ["IsSuccessorFrom", IFCRELSEQUENCE, 5, true], ["IsPredecessorTo", IFCRELSEQUENCE, 4, true]], + 2837617999: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 2382730787: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], + 3327091369: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], + 804291784: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 4231323485: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 4017108033: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 3724593414: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3740093272: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["ContainedIn", IFCRELCONNECTSPORTTOELEMENT, 4, false], ["ConnectedFrom", IFCRELCONNECTSPORTS, 5, true], ["ConnectedTo", IFCRELCONNECTSPORTS, 4, true]], + 2744685151: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["OperatesOn", IFCRELASSIGNSTOPROCESS, 6, true], ["IsSuccessorFrom", IFCRELSEQUENCE, 5, true], ["IsPredecessorTo", IFCRELSEQUENCE, 4, true]], + 2904328755: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], + 3642467123: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], + 3651124850: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["ProjectsElements", IFCRELPROJECTSELEMENT, 5, false]], + 1842657554: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 2250791053: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 3248260540: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["IsRelatedFromCallout", IFCDRAUGHTINGCALLOUTRELATIONSHIP, 3, true], ["IsRelatedToCallout", IFCDRAUGHTINGCALLOUTRELATIONSHIP, 2, true]], + 2893384427: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 2324767716: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 1768891740: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 3517283431: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true], ["ScheduleTimeControlAssigned", IFCRELASSIGNSTASKS, 7, false]], + 4105383287: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], + 4097777520: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true]], + 2533589738: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 3856911033: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["HasCoverings", IFCRELCOVERSSPACES, 4, true], ["BoundedBy", IFCRELSPACEBOUNDARY, 4, true]], + 1305183839: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 652456506: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true], ["HasInteractionReqsFrom", IFCRELINTERACTIONREQUIREMENTS, 7, true], ["HasInteractionReqsTo", IFCRELINTERACTIONREQUIREMENTS, 8, true]], + 3812236995: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 3112655638: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 1039846685: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 682877961: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, false]], + 1179482911: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ConnectsStructuralMembers", IFCRELCONNECTSSTRUCTURALMEMBER, 5, true]], + 4243806635: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ConnectsStructuralMembers", IFCRELCONNECTSSTRUCTURALMEMBER, 5, true]], + 214636428: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ReferencesElement", IFCRELCONNECTSSTRUCTURALELEMENT, 5, true], ["ConnectedBy", IFCRELCONNECTSSTRUCTURALMEMBER, 4, true]], + 2445595289: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ReferencesElement", IFCRELCONNECTSSTRUCTURALELEMENT, 5, true], ["ConnectedBy", IFCRELCONNECTSSTRUCTURALMEMBER, 4, true]], + 1807405624: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, false]], + 1721250024: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, false]], + 1252848954: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, false], ["SourceOfResultGroup", IFCSTRUCTURALRESULTGROUP, 6, true], ["LoadGroupFor", IFCSTRUCTURALANALYSISMODEL, 7, true]], + 1621171031: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, false]], + 3987759626: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, false]], + 2082059205: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, false]], + 734778138: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ConnectsStructuralMembers", IFCRELCONNECTSSTRUCTURALMEMBER, 5, true]], + 1235345126: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, false], ["Causes", IFCSTRUCTURALACTION, 10, true]], + 2986769608: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, false], ["ResultGroupFor", IFCSTRUCTURALANALYSISMODEL, 8, true]], + 1975003073: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ConnectsStructuralMembers", IFCRELCONNECTSSTRUCTURALMEMBER, 5, true]], + 148013059: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], + 2315554128: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 2254336722: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, false], ["ServicesBuildings", IFCRELSERVICESBUILDINGS, 4, true]], + 5716631: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 1637806684: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], + 1692211062: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 1620046519: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], + 3593883385: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 1600972822: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 1911125066: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 728799441: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 2769231204: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], + 1898987631: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 1133259667: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 1028945134: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], + 4218914973: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], + 3342526732: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], + 1033361043: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, false]], + 1213861670: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3821786052: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], + 1411407467: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 3352864051: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 1871374353: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 2470393545: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["IsRelatedFromCallout", IFCDRAUGHTINGCALLOUTRELATIONSHIP, 3, true], ["IsRelatedToCallout", IFCDRAUGHTINGCALLOUTRELATIONSHIP, 2, true]], + 3460190687: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, false]], + 1967976161: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 819618141: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 1916977116: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 231477066: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 3299480353: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], + 52481810: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], + 2979338954: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], + 1095909175: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], + 1909888760: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 395041908: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 3293546465: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 1285652485: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 2951183804: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 2611217952: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2301859152: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 843113511: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], + 3850581409: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 2816379211: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 2188551683: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, false]], + 1163958913: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], + 3898045240: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], + 1060000209: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], + 488727124: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], + 335055490: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 2954562838: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 1973544240: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["CoversSpaces", IFCRELCOVERSSPACES, 5, true], ["Covers", IFCRELCOVERSBLDGELEMENTS, 5, true]], + 3495092785: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], + 3961806047: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 4147604152: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["IsRelatedFromCallout", IFCDRAUGHTINGCALLOUTRELATIONSHIP, 3, true], ["IsRelatedToCallout", IFCDRAUGHTINGCALLOUTRELATIONSHIP, 2, true]], + 1335981549: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], + 2635815018: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 1599208980: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 2063403501: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 1945004755: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], + 3040386961: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 3041715199: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["ContainedIn", IFCRELCONNECTSPORTTOELEMENT, 4, false], ["ConnectedFrom", IFCRELCONNECTSPORTS, 5, true], ["ConnectedTo", IFCRELCONNECTSPORTS, 4, true]], + 395920057: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], + 869906466: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 3760055223: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 2030761528: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 855621170: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["VoidsElements", IFCRELVOIDSELEMENT, 5, false]], + 663422040: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 3277789161: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 1534661035: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 1365060375: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 1217240411: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 712377611: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 1634875225: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, false], ["ServicesBuildings", IFCRELSERVICESBUILDINGS, 4, true]], + 857184966: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], + 1658829314: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 346874300: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 1810631287: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 4222183408: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 2058353004: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 4278956645: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 4037862832: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 3132237377: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 987401354: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 707683696: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 2223149337: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 3508470533: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 900683007: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], + 1073191201: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], + 1687234759: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], + 3171933400: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], + 2262370178: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], + 3024970846: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], + 3283111854: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], + 3055160366: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3027567501: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], + 2320036040: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], + 2016517767: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], + 1376911519: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["VoidsElements", IFCRELVOIDSELEMENT, 5, false]], + 1783015770: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 1529196076: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], + 331165859: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], + 4252922144: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], + 2515109513: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, false], ["ServicesBuildings", IFCRELSERVICESBUILDINGS, 4, true]], + 3824725483: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], + 2347447852: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], + 3313531582: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 2391406946: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], + 3512223829: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], + 3304561284: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], + 2874132201: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 3001207471: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 753842376: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], + 2454782716: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["VoidsElements", IFCRELVOIDSELEMENT, 5, false]], + 578613899: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], + 1052013943: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 1062813311: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["AssignedToFlowElement", IFCRELFLOWCONTROLELEMENTS, 4, true]], + 3700593921: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 979691226: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]] +}; +Constructors[1] = { + 3630933823: (a) => new IFC2X3$1.IfcActorRole(a[0], a[1], a[2]), + 618182010: (a) => new IFC2X3$1.IfcAddress(a[0], a[1], a[2]), + 639542469: (a) => new IFC2X3$1.IfcApplication(a[0], a[1], a[2], a[3]), + 411424972: (a) => new IFC2X3$1.IfcAppliedValue(a[0], a[1], a[2], a[3], a[4], a[5]), + 1110488051: (a) => new IFC2X3$1.IfcAppliedValueRelationship(a[0], a[1], a[2], a[3], a[4]), + 130549933: (a) => new IFC2X3$1.IfcApproval(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 2080292479: (a) => new IFC2X3$1.IfcApprovalActorRelationship(a[0], a[1], a[2]), + 390851274: (a) => new IFC2X3$1.IfcApprovalPropertyRelationship(a[0], a[1]), + 3869604511: (a) => new IFC2X3$1.IfcApprovalRelationship(a[0], a[1], a[2], a[3]), + 4037036970: (a) => new IFC2X3$1.IfcBoundaryCondition(a[0]), + 1560379544: (a) => new IFC2X3$1.IfcBoundaryEdgeCondition(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 3367102660: (a) => new IFC2X3$1.IfcBoundaryFaceCondition(a[0], a[1], a[2], a[3]), + 1387855156: (a) => new IFC2X3$1.IfcBoundaryNodeCondition(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 2069777674: (a) => new IFC2X3$1.IfcBoundaryNodeConditionWarping(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 622194075: (a) => new IFC2X3$1.IfcCalendarDate(a[0], a[1], a[2]), + 747523909: (a) => new IFC2X3$1.IfcClassification(a[0], a[1], a[2], a[3]), + 1767535486: (a) => new IFC2X3$1.IfcClassificationItem(a[0], a[1], a[2]), + 1098599126: (a) => new IFC2X3$1.IfcClassificationItemRelationship(a[0], a[1]), + 938368621: (a) => new IFC2X3$1.IfcClassificationNotation(a[0]), + 3639012971: (a) => new IFC2X3$1.IfcClassificationNotationFacet(a[0]), + 3264961684: (a) => new IFC2X3$1.IfcColourSpecification(a[0]), + 2859738748: (_) => new IFC2X3$1.IfcConnectionGeometry(), + 2614616156: (a) => new IFC2X3$1.IfcConnectionPointGeometry(a[0], a[1]), + 4257277454: (a) => new IFC2X3$1.IfcConnectionPortGeometry(a[0], a[1], a[2]), + 2732653382: (a) => new IFC2X3$1.IfcConnectionSurfaceGeometry(a[0], a[1]), + 1959218052: (a) => new IFC2X3$1.IfcConstraint(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 1658513725: (a) => new IFC2X3$1.IfcConstraintAggregationRelationship(a[0], a[1], a[2], a[3], a[4]), + 613356794: (a) => new IFC2X3$1.IfcConstraintClassificationRelationship(a[0], a[1]), + 347226245: (a) => new IFC2X3$1.IfcConstraintRelationship(a[0], a[1], a[2], a[3]), + 1065062679: (a) => new IFC2X3$1.IfcCoordinatedUniversalTimeOffset(a[0], a[1], a[2]), + 602808272: (a) => new IFC2X3$1.IfcCostValue(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 539742890: (a) => new IFC2X3$1.IfcCurrencyRelationship(a[0], a[1], a[2], a[3], a[4]), + 1105321065: (a) => new IFC2X3$1.IfcCurveStyleFont(a[0], a[1]), + 2367409068: (a) => new IFC2X3$1.IfcCurveStyleFontAndScaling(a[0], a[1], a[2]), + 3510044353: (a) => new IFC2X3$1.IfcCurveStyleFontPattern(a[0], a[1]), + 1072939445: (a) => new IFC2X3$1.IfcDateAndTime(a[0], a[1]), + 1765591967: (a) => new IFC2X3$1.IfcDerivedUnit(a[0], a[1], a[2]), + 1045800335: (a) => new IFC2X3$1.IfcDerivedUnitElement(a[0], a[1]), + 2949456006: (a) => new IFC2X3$1.IfcDimensionalExponents(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 1376555844: (a) => new IFC2X3$1.IfcDocumentElectronicFormat(a[0], a[1], a[2]), + 1154170062: (a) => new IFC2X3$1.IfcDocumentInformation(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16]), + 770865208: (a) => new IFC2X3$1.IfcDocumentInformationRelationship(a[0], a[1], a[2]), + 3796139169: (a) => new IFC2X3$1.IfcDraughtingCalloutRelationship(a[0], a[1], a[2], a[3]), + 1648886627: (a) => new IFC2X3$1.IfcEnvironmentalImpactValue(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3200245327: (a) => new IFC2X3$1.IfcExternalReference(a[0], a[1], a[2]), + 2242383968: (a) => new IFC2X3$1.IfcExternallyDefinedHatchStyle(a[0], a[1], a[2]), + 1040185647: (a) => new IFC2X3$1.IfcExternallyDefinedSurfaceStyle(a[0], a[1], a[2]), + 3207319532: (a) => new IFC2X3$1.IfcExternallyDefinedSymbol(a[0], a[1], a[2]), + 3548104201: (a) => new IFC2X3$1.IfcExternallyDefinedTextFont(a[0], a[1], a[2]), + 852622518: (a) => new IFC2X3$1.IfcGridAxis(a[0], a[1], a[2]), + 3020489413: (a) => new IFC2X3$1.IfcIrregularTimeSeriesValue(a[0], a[1]), + 2655187982: (a) => new IFC2X3$1.IfcLibraryInformation(a[0], a[1], a[2], a[3], a[4]), + 3452421091: (a) => new IFC2X3$1.IfcLibraryReference(a[0], a[1], a[2]), + 4162380809: (a) => new IFC2X3$1.IfcLightDistributionData(a[0], a[1], a[2]), + 1566485204: (a) => new IFC2X3$1.IfcLightIntensityDistribution(a[0], a[1]), + 30780891: (a) => new IFC2X3$1.IfcLocalTime(a[0], a[1], a[2], a[3], a[4]), + 1838606355: (a) => new IFC2X3$1.IfcMaterial(a[0]), + 1847130766: (a) => new IFC2X3$1.IfcMaterialClassificationRelationship(a[0], a[1]), + 248100487: (a) => new IFC2X3$1.IfcMaterialLayer(a[0], a[1], a[2]), + 3303938423: (a) => new IFC2X3$1.IfcMaterialLayerSet(a[0], a[1]), + 1303795690: (a) => new IFC2X3$1.IfcMaterialLayerSetUsage(a[0], a[1], a[2], a[3]), + 2199411900: (a) => new IFC2X3$1.IfcMaterialList(a[0]), + 3265635763: (a) => new IFC2X3$1.IfcMaterialProperties(a[0]), + 2597039031: (a) => new IFC2X3$1.IfcMeasureWithUnit(a[0], a[1]), + 4256014907: (a) => new IFC2X3$1.IfcMechanicalMaterialProperties(a[0], a[1], a[2], a[3], a[4], a[5]), + 677618848: (a) => new IFC2X3$1.IfcMechanicalSteelMaterialProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]), + 3368373690: (a) => new IFC2X3$1.IfcMetric(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2706619895: (a) => new IFC2X3$1.IfcMonetaryUnit(a[0]), + 1918398963: (a) => new IFC2X3$1.IfcNamedUnit(a[0], a[1]), + 3701648758: (_) => new IFC2X3$1.IfcObjectPlacement(), + 2251480897: (a) => new IFC2X3$1.IfcObjective(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), + 1227763645: (a) => new IFC2X3$1.IfcOpticalMaterialProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 4251960020: (a) => new IFC2X3$1.IfcOrganization(a[0], a[1], a[2], a[3], a[4]), + 1411181986: (a) => new IFC2X3$1.IfcOrganizationRelationship(a[0], a[1], a[2], a[3]), + 1207048766: (a) => new IFC2X3$1.IfcOwnerHistory(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 2077209135: (a) => new IFC2X3$1.IfcPerson(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 101040310: (a) => new IFC2X3$1.IfcPersonAndOrganization(a[0], a[1], a[2]), + 2483315170: (a) => new IFC2X3$1.IfcPhysicalQuantity(a[0], a[1]), + 2226359599: (a) => new IFC2X3$1.IfcPhysicalSimpleQuantity(a[0], a[1], a[2]), + 3355820592: (a) => new IFC2X3$1.IfcPostalAddress(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 3727388367: (a) => new IFC2X3$1.IfcPreDefinedItem(a[0]), + 990879717: (a) => new IFC2X3$1.IfcPreDefinedSymbol(a[0]), + 3213052703: (a) => new IFC2X3$1.IfcPreDefinedTerminatorSymbol(a[0]), + 1775413392: (a) => new IFC2X3$1.IfcPreDefinedTextFont(a[0]), + 2022622350: (a) => new IFC2X3$1.IfcPresentationLayerAssignment(a[0], a[1], a[2], a[3]), + 1304840413: (a) => new IFC2X3$1.IfcPresentationLayerWithStyle(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 3119450353: (a) => new IFC2X3$1.IfcPresentationStyle(a[0]), + 2417041796: (a) => new IFC2X3$1.IfcPresentationStyleAssignment(a[0]), + 2095639259: (a) => new IFC2X3$1.IfcProductRepresentation(a[0], a[1], a[2]), + 2267347899: (a) => new IFC2X3$1.IfcProductsOfCombustionProperties(a[0], a[1], a[2], a[3], a[4]), + 3958567839: (a) => new IFC2X3$1.IfcProfileDef(a[0], a[1]), + 2802850158: (a) => new IFC2X3$1.IfcProfileProperties(a[0], a[1]), + 2598011224: (a) => new IFC2X3$1.IfcProperty(a[0], a[1]), + 3896028662: (a) => new IFC2X3$1.IfcPropertyConstraintRelationship(a[0], a[1], a[2], a[3]), + 148025276: (a) => new IFC2X3$1.IfcPropertyDependencyRelationship(a[0], a[1], a[2], a[3], a[4]), + 3710013099: (a) => new IFC2X3$1.IfcPropertyEnumeration(a[0], a[1], a[2]), + 2044713172: (a) => new IFC2X3$1.IfcQuantityArea(a[0], a[1], a[2], a[3]), + 2093928680: (a) => new IFC2X3$1.IfcQuantityCount(a[0], a[1], a[2], a[3]), + 931644368: (a) => new IFC2X3$1.IfcQuantityLength(a[0], a[1], a[2], a[3]), + 3252649465: (a) => new IFC2X3$1.IfcQuantityTime(a[0], a[1], a[2], a[3]), + 2405470396: (a) => new IFC2X3$1.IfcQuantityVolume(a[0], a[1], a[2], a[3]), + 825690147: (a) => new IFC2X3$1.IfcQuantityWeight(a[0], a[1], a[2], a[3]), + 2692823254: (a) => new IFC2X3$1.IfcReferencesValueDocument(a[0], a[1], a[2], a[3]), + 1580146022: (a) => new IFC2X3$1.IfcReinforcementBarProperties(a[0], a[1], a[2], a[3], a[4], a[5]), + 1222501353: (a) => new IFC2X3$1.IfcRelaxation(a[0], a[1]), + 1076942058: (a) => new IFC2X3$1.IfcRepresentation(a[0], a[1], a[2], a[3]), + 3377609919: (a) => new IFC2X3$1.IfcRepresentationContext(a[0], a[1]), + 3008791417: (_) => new IFC2X3$1.IfcRepresentationItem(), + 1660063152: (a) => new IFC2X3$1.IfcRepresentationMap(a[0], a[1]), + 3679540991: (a) => new IFC2X3$1.IfcRibPlateProfileProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 2341007311: (a) => new IFC2X3$1.IfcRoot(a[0], a[1], a[2], a[3]), + 448429030: (a) => new IFC2X3$1.IfcSIUnit(a[0], a[1], a[2]), + 2042790032: (a) => new IFC2X3$1.IfcSectionProperties(a[0], a[1], a[2]), + 4165799628: (a) => new IFC2X3$1.IfcSectionReinforcementProperties(a[0], a[1], a[2], a[3], a[4], a[5]), + 867548509: (a) => new IFC2X3$1.IfcShapeAspect(a[0], a[1], a[2], a[3], a[4]), + 3982875396: (a) => new IFC2X3$1.IfcShapeModel(a[0], a[1], a[2], a[3]), + 4240577450: (a) => new IFC2X3$1.IfcShapeRepresentation(a[0], a[1], a[2], a[3]), + 3692461612: (a) => new IFC2X3$1.IfcSimpleProperty(a[0], a[1]), + 2273995522: (a) => new IFC2X3$1.IfcStructuralConnectionCondition(a[0]), + 2162789131: (a) => new IFC2X3$1.IfcStructuralLoad(a[0]), + 2525727697: (a) => new IFC2X3$1.IfcStructuralLoadStatic(a[0]), + 3408363356: (a) => new IFC2X3$1.IfcStructuralLoadTemperature(a[0], a[1], a[2], a[3]), + 2830218821: (a) => new IFC2X3$1.IfcStyleModel(a[0], a[1], a[2], a[3]), + 3958052878: (a) => new IFC2X3$1.IfcStyledItem(a[0], a[1], a[2]), + 3049322572: (a) => new IFC2X3$1.IfcStyledRepresentation(a[0], a[1], a[2], a[3]), + 1300840506: (a) => new IFC2X3$1.IfcSurfaceStyle(a[0], a[1], a[2]), + 3303107099: (a) => new IFC2X3$1.IfcSurfaceStyleLighting(a[0], a[1], a[2], a[3]), + 1607154358: (a) => new IFC2X3$1.IfcSurfaceStyleRefraction(a[0], a[1]), + 846575682: (a) => new IFC2X3$1.IfcSurfaceStyleShading(a[0]), + 1351298697: (a) => new IFC2X3$1.IfcSurfaceStyleWithTextures(a[0]), + 626085974: (a) => new IFC2X3$1.IfcSurfaceTexture(a[0], a[1], a[2], a[3]), + 1290481447: (a) => new IFC2X3$1.IfcSymbolStyle(a[0], a[1]), + 985171141: (a) => new IFC2X3$1.IfcTable(a[0], a[1]), + 531007025: (a) => new IFC2X3$1.IfcTableRow(a[0], a[1]), + 912023232: (a) => new IFC2X3$1.IfcTelecomAddress(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 1447204868: (a) => new IFC2X3$1.IfcTextStyle(a[0], a[1], a[2], a[3]), + 1983826977: (a) => new IFC2X3$1.IfcTextStyleFontModel(a[0], a[1], a[2], a[3], a[4], a[5]), + 2636378356: (a) => new IFC2X3$1.IfcTextStyleForDefinedFont(a[0], a[1]), + 1640371178: (a) => new IFC2X3$1.IfcTextStyleTextModel(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 1484833681: (a) => new IFC2X3$1.IfcTextStyleWithBoxCharacteristics(a[0], a[1], a[2], a[3], a[4]), + 280115917: (_) => new IFC2X3$1.IfcTextureCoordinate(), + 1742049831: (a) => new IFC2X3$1.IfcTextureCoordinateGenerator(a[0], a[1]), + 2552916305: (a) => new IFC2X3$1.IfcTextureMap(a[0]), + 1210645708: (a) => new IFC2X3$1.IfcTextureVertex(a[0]), + 3317419933: (a) => new IFC2X3$1.IfcThermalMaterialProperties(a[0], a[1], a[2], a[3], a[4]), + 3101149627: (a) => new IFC2X3$1.IfcTimeSeries(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 1718945513: (a) => new IFC2X3$1.IfcTimeSeriesReferenceRelationship(a[0], a[1]), + 581633288: (a) => new IFC2X3$1.IfcTimeSeriesValue(a[0]), + 1377556343: (_) => new IFC2X3$1.IfcTopologicalRepresentationItem(), + 1735638870: (a) => new IFC2X3$1.IfcTopologyRepresentation(a[0], a[1], a[2], a[3]), + 180925521: (a) => new IFC2X3$1.IfcUnitAssignment(a[0]), + 2799835756: (_) => new IFC2X3$1.IfcVertex(), + 3304826586: (a) => new IFC2X3$1.IfcVertexBasedTextureMap(a[0], a[1]), + 1907098498: (a) => new IFC2X3$1.IfcVertexPoint(a[0]), + 891718957: (a) => new IFC2X3$1.IfcVirtualGridIntersection(a[0], a[1]), + 1065908215: (a) => new IFC2X3$1.IfcWaterProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 2442683028: (a) => new IFC2X3$1.IfcAnnotationOccurrence(a[0], a[1], a[2]), + 962685235: (a) => new IFC2X3$1.IfcAnnotationSurfaceOccurrence(a[0], a[1], a[2]), + 3612888222: (a) => new IFC2X3$1.IfcAnnotationSymbolOccurrence(a[0], a[1], a[2]), + 2297822566: (a) => new IFC2X3$1.IfcAnnotationTextOccurrence(a[0], a[1], a[2]), + 3798115385: (a) => new IFC2X3$1.IfcArbitraryClosedProfileDef(a[0], a[1], a[2]), + 1310608509: (a) => new IFC2X3$1.IfcArbitraryOpenProfileDef(a[0], a[1], a[2]), + 2705031697: (a) => new IFC2X3$1.IfcArbitraryProfileDefWithVoids(a[0], a[1], a[2], a[3]), + 616511568: (a) => new IFC2X3$1.IfcBlobTexture(a[0], a[1], a[2], a[3], a[4], a[5]), + 3150382593: (a) => new IFC2X3$1.IfcCenterLineProfileDef(a[0], a[1], a[2], a[3]), + 647927063: (a) => new IFC2X3$1.IfcClassificationReference(a[0], a[1], a[2], a[3]), + 776857604: (a) => new IFC2X3$1.IfcColourRgb(a[0], a[1], a[2], a[3]), + 2542286263: (a) => new IFC2X3$1.IfcComplexProperty(a[0], a[1], a[2], a[3]), + 1485152156: (a) => new IFC2X3$1.IfcCompositeProfileDef(a[0], a[1], a[2], a[3]), + 370225590: (a) => new IFC2X3$1.IfcConnectedFaceSet(a[0]), + 1981873012: (a) => new IFC2X3$1.IfcConnectionCurveGeometry(a[0], a[1]), + 45288368: (a) => new IFC2X3$1.IfcConnectionPointEccentricity(a[0], a[1], a[2], a[3], a[4]), + 3050246964: (a) => new IFC2X3$1.IfcContextDependentUnit(a[0], a[1], a[2]), + 2889183280: (a) => new IFC2X3$1.IfcConversionBasedUnit(a[0], a[1], a[2], a[3]), + 3800577675: (a) => new IFC2X3$1.IfcCurveStyle(a[0], a[1], a[2], a[3]), + 3632507154: (a) => new IFC2X3$1.IfcDerivedProfileDef(a[0], a[1], a[2], a[3], a[4]), + 2273265877: (a) => new IFC2X3$1.IfcDimensionCalloutRelationship(a[0], a[1], a[2], a[3]), + 1694125774: (a) => new IFC2X3$1.IfcDimensionPair(a[0], a[1], a[2], a[3]), + 3732053477: (a) => new IFC2X3$1.IfcDocumentReference(a[0], a[1], a[2]), + 4170525392: (a) => new IFC2X3$1.IfcDraughtingPreDefinedTextFont(a[0]), + 3900360178: (a) => new IFC2X3$1.IfcEdge(a[0], a[1]), + 476780140: (a) => new IFC2X3$1.IfcEdgeCurve(a[0], a[1], a[2], a[3]), + 1860660968: (a) => new IFC2X3$1.IfcExtendedMaterialProperties(a[0], a[1], a[2], a[3]), + 2556980723: (a) => new IFC2X3$1.IfcFace(a[0]), + 1809719519: (a) => new IFC2X3$1.IfcFaceBound(a[0], a[1]), + 803316827: (a) => new IFC2X3$1.IfcFaceOuterBound(a[0], a[1]), + 3008276851: (a) => new IFC2X3$1.IfcFaceSurface(a[0], a[1], a[2]), + 4219587988: (a) => new IFC2X3$1.IfcFailureConnectionCondition(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 738692330: (a) => new IFC2X3$1.IfcFillAreaStyle(a[0], a[1]), + 3857492461: (a) => new IFC2X3$1.IfcFuelProperties(a[0], a[1], a[2], a[3], a[4]), + 803998398: (a) => new IFC2X3$1.IfcGeneralMaterialProperties(a[0], a[1], a[2], a[3]), + 1446786286: (a) => new IFC2X3$1.IfcGeneralProfileProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 3448662350: (a) => new IFC2X3$1.IfcGeometricRepresentationContext(a[0], a[1], a[2], a[3], a[4], a[5]), + 2453401579: (_) => new IFC2X3$1.IfcGeometricRepresentationItem(), + 4142052618: (a) => new IFC2X3$1.IfcGeometricRepresentationSubContext(a[0], a[1], a[2], a[3], a[4], a[5]), + 3590301190: (a) => new IFC2X3$1.IfcGeometricSet(a[0]), + 178086475: (a) => new IFC2X3$1.IfcGridPlacement(a[0], a[1]), + 812098782: (a) => new IFC2X3$1.IfcHalfSpaceSolid(a[0], a[1]), + 2445078500: (a) => new IFC2X3$1.IfcHygroscopicMaterialProperties(a[0], a[1], a[2], a[3], a[4], a[5]), + 3905492369: (a) => new IFC2X3$1.IfcImageTexture(a[0], a[1], a[2], a[3], a[4]), + 3741457305: (a) => new IFC2X3$1.IfcIrregularTimeSeries(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1402838566: (a) => new IFC2X3$1.IfcLightSource(a[0], a[1], a[2], a[3]), + 125510826: (a) => new IFC2X3$1.IfcLightSourceAmbient(a[0], a[1], a[2], a[3]), + 2604431987: (a) => new IFC2X3$1.IfcLightSourceDirectional(a[0], a[1], a[2], a[3], a[4]), + 4266656042: (a) => new IFC2X3$1.IfcLightSourceGoniometric(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1520743889: (a) => new IFC2X3$1.IfcLightSourcePositional(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3422422726: (a) => new IFC2X3$1.IfcLightSourceSpot(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]), + 2624227202: (a) => new IFC2X3$1.IfcLocalPlacement(a[0], a[1]), + 1008929658: (_) => new IFC2X3$1.IfcLoop(), + 2347385850: (a) => new IFC2X3$1.IfcMappedItem(a[0], a[1]), + 2022407955: (a) => new IFC2X3$1.IfcMaterialDefinitionRepresentation(a[0], a[1], a[2], a[3]), + 1430189142: (a) => new IFC2X3$1.IfcMechanicalConcreteMaterialProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), + 219451334: (a) => new IFC2X3$1.IfcObjectDefinition(a[0], a[1], a[2], a[3]), + 2833995503: (a) => new IFC2X3$1.IfcOneDirectionRepeatFactor(a[0]), + 2665983363: (a) => new IFC2X3$1.IfcOpenShell(a[0]), + 1029017970: (a) => new IFC2X3$1.IfcOrientedEdge(a[0], a[1]), + 2529465313: (a) => new IFC2X3$1.IfcParameterizedProfileDef(a[0], a[1], a[2]), + 2519244187: (a) => new IFC2X3$1.IfcPath(a[0]), + 3021840470: (a) => new IFC2X3$1.IfcPhysicalComplexQuantity(a[0], a[1], a[2], a[3], a[4], a[5]), + 597895409: (a) => new IFC2X3$1.IfcPixelTexture(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 2004835150: (a) => new IFC2X3$1.IfcPlacement(a[0]), + 1663979128: (a) => new IFC2X3$1.IfcPlanarExtent(a[0], a[1]), + 2067069095: (_) => new IFC2X3$1.IfcPoint(), + 4022376103: (a) => new IFC2X3$1.IfcPointOnCurve(a[0], a[1]), + 1423911732: (a) => new IFC2X3$1.IfcPointOnSurface(a[0], a[1], a[2]), + 2924175390: (a) => new IFC2X3$1.IfcPolyLoop(a[0]), + 2775532180: (a) => new IFC2X3$1.IfcPolygonalBoundedHalfSpace(a[0], a[1], a[2], a[3]), + 759155922: (a) => new IFC2X3$1.IfcPreDefinedColour(a[0]), + 2559016684: (a) => new IFC2X3$1.IfcPreDefinedCurveFont(a[0]), + 433424934: (a) => new IFC2X3$1.IfcPreDefinedDimensionSymbol(a[0]), + 179317114: (a) => new IFC2X3$1.IfcPreDefinedPointMarkerSymbol(a[0]), + 673634403: (a) => new IFC2X3$1.IfcProductDefinitionShape(a[0], a[1], a[2]), + 871118103: (a) => new IFC2X3$1.IfcPropertyBoundedValue(a[0], a[1], a[2], a[3], a[4]), + 1680319473: (a) => new IFC2X3$1.IfcPropertyDefinition(a[0], a[1], a[2], a[3]), + 4166981789: (a) => new IFC2X3$1.IfcPropertyEnumeratedValue(a[0], a[1], a[2], a[3]), + 2752243245: (a) => new IFC2X3$1.IfcPropertyListValue(a[0], a[1], a[2], a[3]), + 941946838: (a) => new IFC2X3$1.IfcPropertyReferenceValue(a[0], a[1], a[2], a[3]), + 3357820518: (a) => new IFC2X3$1.IfcPropertySetDefinition(a[0], a[1], a[2], a[3]), + 3650150729: (a) => new IFC2X3$1.IfcPropertySingleValue(a[0], a[1], a[2], a[3]), + 110355661: (a) => new IFC2X3$1.IfcPropertyTableValue(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 3615266464: (a) => new IFC2X3$1.IfcRectangleProfileDef(a[0], a[1], a[2], a[3], a[4]), + 3413951693: (a) => new IFC2X3$1.IfcRegularTimeSeries(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 3765753017: (a) => new IFC2X3$1.IfcReinforcementDefinitionProperties(a[0], a[1], a[2], a[3], a[4], a[5]), + 478536968: (a) => new IFC2X3$1.IfcRelationship(a[0], a[1], a[2], a[3]), + 2778083089: (a) => new IFC2X3$1.IfcRoundedRectangleProfileDef(a[0], a[1], a[2], a[3], a[4], a[5]), + 1509187699: (a) => new IFC2X3$1.IfcSectionedSpine(a[0], a[1], a[2]), + 2411513650: (a) => new IFC2X3$1.IfcServiceLifeFactor(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 4124623270: (a) => new IFC2X3$1.IfcShellBasedSurfaceModel(a[0]), + 2609359061: (a) => new IFC2X3$1.IfcSlippageConnectionCondition(a[0], a[1], a[2], a[3]), + 723233188: (_) => new IFC2X3$1.IfcSolidModel(), + 2485662743: (a) => new IFC2X3$1.IfcSoundProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 1202362311: (a) => new IFC2X3$1.IfcSoundValue(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 390701378: (a) => new IFC2X3$1.IfcSpaceThermalLoadProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]), + 1595516126: (a) => new IFC2X3$1.IfcStructuralLoadLinearForce(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 2668620305: (a) => new IFC2X3$1.IfcStructuralLoadPlanarForce(a[0], a[1], a[2], a[3]), + 2473145415: (a) => new IFC2X3$1.IfcStructuralLoadSingleDisplacement(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 1973038258: (a) => new IFC2X3$1.IfcStructuralLoadSingleDisplacementDistortion(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 1597423693: (a) => new IFC2X3$1.IfcStructuralLoadSingleForce(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 1190533807: (a) => new IFC2X3$1.IfcStructuralLoadSingleForceWarping(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 3843319758: (a) => new IFC2X3$1.IfcStructuralProfileProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17], a[18], a[19], a[20], a[21], a[22]), + 3653947884: (a) => new IFC2X3$1.IfcStructuralSteelProfileProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17], a[18], a[19], a[20], a[21], a[22], a[23], a[24], a[25], a[26]), + 2233826070: (a) => new IFC2X3$1.IfcSubedge(a[0], a[1], a[2]), + 2513912981: (_) => new IFC2X3$1.IfcSurface(), + 1878645084: (a) => new IFC2X3$1.IfcSurfaceStyleRendering(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2247615214: (a) => new IFC2X3$1.IfcSweptAreaSolid(a[0], a[1]), + 1260650574: (a) => new IFC2X3$1.IfcSweptDiskSolid(a[0], a[1], a[2], a[3], a[4]), + 230924584: (a) => new IFC2X3$1.IfcSweptSurface(a[0], a[1]), + 3071757647: (a) => new IFC2X3$1.IfcTShapeProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]), + 3028897424: (a) => new IFC2X3$1.IfcTerminatorSymbol(a[0], a[1], a[2], a[3]), + 4282788508: (a) => new IFC2X3$1.IfcTextLiteral(a[0], a[1], a[2]), + 3124975700: (a) => new IFC2X3$1.IfcTextLiteralWithExtent(a[0], a[1], a[2], a[3], a[4]), + 2715220739: (a) => new IFC2X3$1.IfcTrapeziumProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 1345879162: (a) => new IFC2X3$1.IfcTwoDirectionRepeatFactor(a[0], a[1]), + 1628702193: (a) => new IFC2X3$1.IfcTypeObject(a[0], a[1], a[2], a[3], a[4], a[5]), + 2347495698: (a) => new IFC2X3$1.IfcTypeProduct(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 427810014: (a) => new IFC2X3$1.IfcUShapeProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), + 1417489154: (a) => new IFC2X3$1.IfcVector(a[0], a[1]), + 2759199220: (a) => new IFC2X3$1.IfcVertexLoop(a[0]), + 336235671: (a) => new IFC2X3$1.IfcWindowLiningProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]), + 512836454: (a) => new IFC2X3$1.IfcWindowPanelProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1299126871: (a) => new IFC2X3$1.IfcWindowStyle(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), + 2543172580: (a) => new IFC2X3$1.IfcZShapeProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3288037868: (a) => new IFC2X3$1.IfcAnnotationCurveOccurrence(a[0], a[1], a[2]), + 669184980: (a) => new IFC2X3$1.IfcAnnotationFillArea(a[0], a[1]), + 2265737646: (a) => new IFC2X3$1.IfcAnnotationFillAreaOccurrence(a[0], a[1], a[2], a[3], a[4]), + 1302238472: (a) => new IFC2X3$1.IfcAnnotationSurface(a[0], a[1]), + 4261334040: (a) => new IFC2X3$1.IfcAxis1Placement(a[0], a[1]), + 3125803723: (a) => new IFC2X3$1.IfcAxis2Placement2D(a[0], a[1]), + 2740243338: (a) => new IFC2X3$1.IfcAxis2Placement3D(a[0], a[1], a[2]), + 2736907675: (a) => new IFC2X3$1.IfcBooleanResult(a[0], a[1], a[2]), + 4182860854: (_) => new IFC2X3$1.IfcBoundedSurface(), + 2581212453: (a) => new IFC2X3$1.IfcBoundingBox(a[0], a[1], a[2], a[3]), + 2713105998: (a) => new IFC2X3$1.IfcBoxedHalfSpace(a[0], a[1], a[2]), + 2898889636: (a) => new IFC2X3$1.IfcCShapeProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1123145078: (a) => new IFC2X3$1.IfcCartesianPoint(a[0]), + 59481748: (a) => new IFC2X3$1.IfcCartesianTransformationOperator(a[0], a[1], a[2], a[3]), + 3749851601: (a) => new IFC2X3$1.IfcCartesianTransformationOperator2D(a[0], a[1], a[2], a[3]), + 3486308946: (a) => new IFC2X3$1.IfcCartesianTransformationOperator2DnonUniform(a[0], a[1], a[2], a[3], a[4]), + 3331915920: (a) => new IFC2X3$1.IfcCartesianTransformationOperator3D(a[0], a[1], a[2], a[3], a[4]), + 1416205885: (a) => new IFC2X3$1.IfcCartesianTransformationOperator3DnonUniform(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 1383045692: (a) => new IFC2X3$1.IfcCircleProfileDef(a[0], a[1], a[2], a[3]), + 2205249479: (a) => new IFC2X3$1.IfcClosedShell(a[0]), + 2485617015: (a) => new IFC2X3$1.IfcCompositeCurveSegment(a[0], a[1], a[2]), + 4133800736: (a) => new IFC2X3$1.IfcCraneRailAShapeProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14]), + 194851669: (a) => new IFC2X3$1.IfcCraneRailFShapeProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), + 2506170314: (a) => new IFC2X3$1.IfcCsgPrimitive3D(a[0]), + 2147822146: (a) => new IFC2X3$1.IfcCsgSolid(a[0]), + 2601014836: (_) => new IFC2X3$1.IfcCurve(), + 2827736869: (a) => new IFC2X3$1.IfcCurveBoundedPlane(a[0], a[1], a[2]), + 693772133: (a) => new IFC2X3$1.IfcDefinedSymbol(a[0], a[1]), + 606661476: (a) => new IFC2X3$1.IfcDimensionCurve(a[0], a[1], a[2]), + 4054601972: (a) => new IFC2X3$1.IfcDimensionCurveTerminator(a[0], a[1], a[2], a[3], a[4]), + 32440307: (a) => new IFC2X3$1.IfcDirection(a[0]), + 2963535650: (a) => new IFC2X3$1.IfcDoorLiningProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14]), + 1714330368: (a) => new IFC2X3$1.IfcDoorPanelProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 526551008: (a) => new IFC2X3$1.IfcDoorStyle(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), + 3073041342: (a) => new IFC2X3$1.IfcDraughtingCallout(a[0]), + 445594917: (a) => new IFC2X3$1.IfcDraughtingPreDefinedColour(a[0]), + 4006246654: (a) => new IFC2X3$1.IfcDraughtingPreDefinedCurveFont(a[0]), + 1472233963: (a) => new IFC2X3$1.IfcEdgeLoop(a[0]), + 1883228015: (a) => new IFC2X3$1.IfcElementQuantity(a[0], a[1], a[2], a[3], a[4], a[5]), + 339256511: (a) => new IFC2X3$1.IfcElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2777663545: (a) => new IFC2X3$1.IfcElementarySurface(a[0]), + 2835456948: (a) => new IFC2X3$1.IfcEllipseProfileDef(a[0], a[1], a[2], a[3], a[4]), + 80994333: (a) => new IFC2X3$1.IfcEnergyProperties(a[0], a[1], a[2], a[3], a[4], a[5]), + 477187591: (a) => new IFC2X3$1.IfcExtrudedAreaSolid(a[0], a[1], a[2], a[3]), + 2047409740: (a) => new IFC2X3$1.IfcFaceBasedSurfaceModel(a[0]), + 374418227: (a) => new IFC2X3$1.IfcFillAreaStyleHatching(a[0], a[1], a[2], a[3], a[4]), + 4203026998: (a) => new IFC2X3$1.IfcFillAreaStyleTileSymbolWithStyle(a[0]), + 315944413: (a) => new IFC2X3$1.IfcFillAreaStyleTiles(a[0], a[1], a[2]), + 3455213021: (a) => new IFC2X3$1.IfcFluidFlowProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17], a[18]), + 4238390223: (a) => new IFC2X3$1.IfcFurnishingElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1268542332: (a) => new IFC2X3$1.IfcFurnitureType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 987898635: (a) => new IFC2X3$1.IfcGeometricCurveSet(a[0]), + 1484403080: (a) => new IFC2X3$1.IfcIShapeProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 572779678: (a) => new IFC2X3$1.IfcLShapeProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), + 1281925730: (a) => new IFC2X3$1.IfcLine(a[0], a[1]), + 1425443689: (a) => new IFC2X3$1.IfcManifoldSolidBrep(a[0]), + 3888040117: (a) => new IFC2X3$1.IfcObject(a[0], a[1], a[2], a[3], a[4]), + 3388369263: (a) => new IFC2X3$1.IfcOffsetCurve2D(a[0], a[1], a[2]), + 3505215534: (a) => new IFC2X3$1.IfcOffsetCurve3D(a[0], a[1], a[2], a[3]), + 3566463478: (a) => new IFC2X3$1.IfcPermeableCoveringProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 603570806: (a) => new IFC2X3$1.IfcPlanarBox(a[0], a[1], a[2]), + 220341763: (a) => new IFC2X3$1.IfcPlane(a[0]), + 2945172077: (a) => new IFC2X3$1.IfcProcess(a[0], a[1], a[2], a[3], a[4]), + 4208778838: (a) => new IFC2X3$1.IfcProduct(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 103090709: (a) => new IFC2X3$1.IfcProject(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 4194566429: (a) => new IFC2X3$1.IfcProjectionCurve(a[0], a[1], a[2]), + 1451395588: (a) => new IFC2X3$1.IfcPropertySet(a[0], a[1], a[2], a[3], a[4]), + 3219374653: (a) => new IFC2X3$1.IfcProxy(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2770003689: (a) => new IFC2X3$1.IfcRectangleHollowProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 2798486643: (a) => new IFC2X3$1.IfcRectangularPyramid(a[0], a[1], a[2], a[3]), + 3454111270: (a) => new IFC2X3$1.IfcRectangularTrimmedSurface(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 3939117080: (a) => new IFC2X3$1.IfcRelAssigns(a[0], a[1], a[2], a[3], a[4], a[5]), + 1683148259: (a) => new IFC2X3$1.IfcRelAssignsToActor(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 2495723537: (a) => new IFC2X3$1.IfcRelAssignsToControl(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 1307041759: (a) => new IFC2X3$1.IfcRelAssignsToGroup(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 4278684876: (a) => new IFC2X3$1.IfcRelAssignsToProcess(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 2857406711: (a) => new IFC2X3$1.IfcRelAssignsToProduct(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 3372526763: (a) => new IFC2X3$1.IfcRelAssignsToProjectOrder(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 205026976: (a) => new IFC2X3$1.IfcRelAssignsToResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 1865459582: (a) => new IFC2X3$1.IfcRelAssociates(a[0], a[1], a[2], a[3], a[4]), + 1327628568: (a) => new IFC2X3$1.IfcRelAssociatesAppliedValue(a[0], a[1], a[2], a[3], a[4], a[5]), + 4095574036: (a) => new IFC2X3$1.IfcRelAssociatesApproval(a[0], a[1], a[2], a[3], a[4], a[5]), + 919958153: (a) => new IFC2X3$1.IfcRelAssociatesClassification(a[0], a[1], a[2], a[3], a[4], a[5]), + 2728634034: (a) => new IFC2X3$1.IfcRelAssociatesConstraint(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 982818633: (a) => new IFC2X3$1.IfcRelAssociatesDocument(a[0], a[1], a[2], a[3], a[4], a[5]), + 3840914261: (a) => new IFC2X3$1.IfcRelAssociatesLibrary(a[0], a[1], a[2], a[3], a[4], a[5]), + 2655215786: (a) => new IFC2X3$1.IfcRelAssociatesMaterial(a[0], a[1], a[2], a[3], a[4], a[5]), + 2851387026: (a) => new IFC2X3$1.IfcRelAssociatesProfileProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 826625072: (a) => new IFC2X3$1.IfcRelConnects(a[0], a[1], a[2], a[3]), + 1204542856: (a) => new IFC2X3$1.IfcRelConnectsElements(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 3945020480: (a) => new IFC2X3$1.IfcRelConnectsPathElements(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), + 4201705270: (a) => new IFC2X3$1.IfcRelConnectsPortToElement(a[0], a[1], a[2], a[3], a[4], a[5]), + 3190031847: (a) => new IFC2X3$1.IfcRelConnectsPorts(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 2127690289: (a) => new IFC2X3$1.IfcRelConnectsStructuralActivity(a[0], a[1], a[2], a[3], a[4], a[5]), + 3912681535: (a) => new IFC2X3$1.IfcRelConnectsStructuralElement(a[0], a[1], a[2], a[3], a[4], a[5]), + 1638771189: (a) => new IFC2X3$1.IfcRelConnectsStructuralMember(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 504942748: (a) => new IFC2X3$1.IfcRelConnectsWithEccentricity(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), + 3678494232: (a) => new IFC2X3$1.IfcRelConnectsWithRealizingElements(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3242617779: (a) => new IFC2X3$1.IfcRelContainedInSpatialStructure(a[0], a[1], a[2], a[3], a[4], a[5]), + 886880790: (a) => new IFC2X3$1.IfcRelCoversBldgElements(a[0], a[1], a[2], a[3], a[4], a[5]), + 2802773753: (a) => new IFC2X3$1.IfcRelCoversSpaces(a[0], a[1], a[2], a[3], a[4], a[5]), + 2551354335: (a) => new IFC2X3$1.IfcRelDecomposes(a[0], a[1], a[2], a[3], a[4], a[5]), + 693640335: (a) => new IFC2X3$1.IfcRelDefines(a[0], a[1], a[2], a[3], a[4]), + 4186316022: (a) => new IFC2X3$1.IfcRelDefinesByProperties(a[0], a[1], a[2], a[3], a[4], a[5]), + 781010003: (a) => new IFC2X3$1.IfcRelDefinesByType(a[0], a[1], a[2], a[3], a[4], a[5]), + 3940055652: (a) => new IFC2X3$1.IfcRelFillsElement(a[0], a[1], a[2], a[3], a[4], a[5]), + 279856033: (a) => new IFC2X3$1.IfcRelFlowControlElements(a[0], a[1], a[2], a[3], a[4], a[5]), + 4189434867: (a) => new IFC2X3$1.IfcRelInteractionRequirements(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3268803585: (a) => new IFC2X3$1.IfcRelNests(a[0], a[1], a[2], a[3], a[4], a[5]), + 2051452291: (a) => new IFC2X3$1.IfcRelOccupiesSpaces(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 202636808: (a) => new IFC2X3$1.IfcRelOverridesProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 750771296: (a) => new IFC2X3$1.IfcRelProjectsElement(a[0], a[1], a[2], a[3], a[4], a[5]), + 1245217292: (a) => new IFC2X3$1.IfcRelReferencedInSpatialStructure(a[0], a[1], a[2], a[3], a[4], a[5]), + 1058617721: (a) => new IFC2X3$1.IfcRelSchedulesCostItems(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 4122056220: (a) => new IFC2X3$1.IfcRelSequence(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 366585022: (a) => new IFC2X3$1.IfcRelServicesBuildings(a[0], a[1], a[2], a[3], a[4], a[5]), + 3451746338: (a) => new IFC2X3$1.IfcRelSpaceBoundary(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1401173127: (a) => new IFC2X3$1.IfcRelVoidsElement(a[0], a[1], a[2], a[3], a[4], a[5]), + 2914609552: (a) => new IFC2X3$1.IfcResource(a[0], a[1], a[2], a[3], a[4]), + 1856042241: (a) => new IFC2X3$1.IfcRevolvedAreaSolid(a[0], a[1], a[2], a[3]), + 4158566097: (a) => new IFC2X3$1.IfcRightCircularCone(a[0], a[1], a[2]), + 3626867408: (a) => new IFC2X3$1.IfcRightCircularCylinder(a[0], a[1], a[2]), + 2706606064: (a) => new IFC2X3$1.IfcSpatialStructureElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3893378262: (a) => new IFC2X3$1.IfcSpatialStructureElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 451544542: (a) => new IFC2X3$1.IfcSphere(a[0], a[1]), + 3544373492: (a) => new IFC2X3$1.IfcStructuralActivity(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3136571912: (a) => new IFC2X3$1.IfcStructuralItem(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 530289379: (a) => new IFC2X3$1.IfcStructuralMember(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 3689010777: (a) => new IFC2X3$1.IfcStructuralReaction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3979015343: (a) => new IFC2X3$1.IfcStructuralSurfaceMember(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2218152070: (a) => new IFC2X3$1.IfcStructuralSurfaceMemberVarying(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), + 4070609034: (a) => new IFC2X3$1.IfcStructuredDimensionCallout(a[0]), + 2028607225: (a) => new IFC2X3$1.IfcSurfaceCurveSweptAreaSolid(a[0], a[1], a[2], a[3], a[4], a[5]), + 2809605785: (a) => new IFC2X3$1.IfcSurfaceOfLinearExtrusion(a[0], a[1], a[2], a[3]), + 4124788165: (a) => new IFC2X3$1.IfcSurfaceOfRevolution(a[0], a[1], a[2]), + 1580310250: (a) => new IFC2X3$1.IfcSystemFurnitureElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3473067441: (a) => new IFC2X3$1.IfcTask(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2097647324: (a) => new IFC2X3$1.IfcTransportElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2296667514: (a) => new IFC2X3$1.IfcActor(a[0], a[1], a[2], a[3], a[4], a[5]), + 1674181508: (a) => new IFC2X3$1.IfcAnnotation(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 3207858831: (a) => new IFC2X3$1.IfcAsymmetricIShapeProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), + 1334484129: (a) => new IFC2X3$1.IfcBlock(a[0], a[1], a[2], a[3]), + 3649129432: (a) => new IFC2X3$1.IfcBooleanClippingResult(a[0], a[1], a[2]), + 1260505505: (_) => new IFC2X3$1.IfcBoundedCurve(), + 4031249490: (a) => new IFC2X3$1.IfcBuilding(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), + 1950629157: (a) => new IFC2X3$1.IfcBuildingElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3124254112: (a) => new IFC2X3$1.IfcBuildingStorey(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2937912522: (a) => new IFC2X3$1.IfcCircleHollowProfileDef(a[0], a[1], a[2], a[3], a[4]), + 300633059: (a) => new IFC2X3$1.IfcColumnType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 3732776249: (a) => new IFC2X3$1.IfcCompositeCurve(a[0], a[1]), + 2510884976: (a) => new IFC2X3$1.IfcConic(a[0]), + 2559216714: (a) => new IFC2X3$1.IfcConstructionResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3293443760: (a) => new IFC2X3$1.IfcControl(a[0], a[1], a[2], a[3], a[4]), + 3895139033: (a) => new IFC2X3$1.IfcCostItem(a[0], a[1], a[2], a[3], a[4]), + 1419761937: (a) => new IFC2X3$1.IfcCostSchedule(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]), + 1916426348: (a) => new IFC2X3$1.IfcCoveringType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 3295246426: (a) => new IFC2X3$1.IfcCrewResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1457835157: (a) => new IFC2X3$1.IfcCurtainWallType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 681481545: (a) => new IFC2X3$1.IfcDimensionCurveDirectedCallout(a[0]), + 3256556792: (a) => new IFC2X3$1.IfcDistributionElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3849074793: (a) => new IFC2X3$1.IfcDistributionFlowElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 360485395: (a) => new IFC2X3$1.IfcElectricalBaseProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]), + 1758889154: (a) => new IFC2X3$1.IfcElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 4123344466: (a) => new IFC2X3$1.IfcElementAssembly(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1623761950: (a) => new IFC2X3$1.IfcElementComponent(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 2590856083: (a) => new IFC2X3$1.IfcElementComponentType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1704287377: (a) => new IFC2X3$1.IfcEllipse(a[0], a[1], a[2]), + 2107101300: (a) => new IFC2X3$1.IfcEnergyConversionDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1962604670: (a) => new IFC2X3$1.IfcEquipmentElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 3272907226: (a) => new IFC2X3$1.IfcEquipmentStandard(a[0], a[1], a[2], a[3], a[4]), + 3174744832: (a) => new IFC2X3$1.IfcEvaporativeCoolerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 3390157468: (a) => new IFC2X3$1.IfcEvaporatorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 807026263: (a) => new IFC2X3$1.IfcFacetedBrep(a[0]), + 3737207727: (a) => new IFC2X3$1.IfcFacetedBrepWithVoids(a[0], a[1]), + 647756555: (a) => new IFC2X3$1.IfcFastener(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 2489546625: (a) => new IFC2X3$1.IfcFastenerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2827207264: (a) => new IFC2X3$1.IfcFeatureElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 2143335405: (a) => new IFC2X3$1.IfcFeatureElementAddition(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 1287392070: (a) => new IFC2X3$1.IfcFeatureElementSubtraction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 3907093117: (a) => new IFC2X3$1.IfcFlowControllerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3198132628: (a) => new IFC2X3$1.IfcFlowFittingType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3815607619: (a) => new IFC2X3$1.IfcFlowMeterType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1482959167: (a) => new IFC2X3$1.IfcFlowMovingDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1834744321: (a) => new IFC2X3$1.IfcFlowSegmentType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1339347760: (a) => new IFC2X3$1.IfcFlowStorageDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2297155007: (a) => new IFC2X3$1.IfcFlowTerminalType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3009222698: (a) => new IFC2X3$1.IfcFlowTreatmentDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 263784265: (a) => new IFC2X3$1.IfcFurnishingElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 814719939: (a) => new IFC2X3$1.IfcFurnitureStandard(a[0], a[1], a[2], a[3], a[4]), + 200128114: (a) => new IFC2X3$1.IfcGasTerminalType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 3009204131: (a) => new IFC2X3$1.IfcGrid(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2706460486: (a) => new IFC2X3$1.IfcGroup(a[0], a[1], a[2], a[3], a[4]), + 1251058090: (a) => new IFC2X3$1.IfcHeatExchangerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1806887404: (a) => new IFC2X3$1.IfcHumidifierType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2391368822: (a) => new IFC2X3$1.IfcInventory(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), + 4288270099: (a) => new IFC2X3$1.IfcJunctionBoxType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 3827777499: (a) => new IFC2X3$1.IfcLaborResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1051575348: (a) => new IFC2X3$1.IfcLampType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1161773419: (a) => new IFC2X3$1.IfcLightFixtureType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2506943328: (a) => new IFC2X3$1.IfcLinearDimension(a[0]), + 377706215: (a) => new IFC2X3$1.IfcMechanicalFastener(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2108223431: (a) => new IFC2X3$1.IfcMechanicalFastenerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3181161470: (a) => new IFC2X3$1.IfcMemberType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 977012517: (a) => new IFC2X3$1.IfcMotorConnectionType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1916936684: (a) => new IFC2X3$1.IfcMove(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]), + 4143007308: (a) => new IFC2X3$1.IfcOccupant(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 3588315303: (a) => new IFC2X3$1.IfcOpeningElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 3425660407: (a) => new IFC2X3$1.IfcOrderAction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), + 2837617999: (a) => new IFC2X3$1.IfcOutletType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2382730787: (a) => new IFC2X3$1.IfcPerformanceHistory(a[0], a[1], a[2], a[3], a[4], a[5]), + 3327091369: (a) => new IFC2X3$1.IfcPermit(a[0], a[1], a[2], a[3], a[4], a[5]), + 804291784: (a) => new IFC2X3$1.IfcPipeFittingType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 4231323485: (a) => new IFC2X3$1.IfcPipeSegmentType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 4017108033: (a) => new IFC2X3$1.IfcPlateType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 3724593414: (a) => new IFC2X3$1.IfcPolyline(a[0]), + 3740093272: (a) => new IFC2X3$1.IfcPort(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 2744685151: (a) => new IFC2X3$1.IfcProcedure(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 2904328755: (a) => new IFC2X3$1.IfcProjectOrder(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 3642467123: (a) => new IFC2X3$1.IfcProjectOrderRecord(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 3651124850: (a) => new IFC2X3$1.IfcProjectionElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 1842657554: (a) => new IFC2X3$1.IfcProtectiveDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2250791053: (a) => new IFC2X3$1.IfcPumpType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 3248260540: (a) => new IFC2X3$1.IfcRadiusDimension(a[0]), + 2893384427: (a) => new IFC2X3$1.IfcRailingType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2324767716: (a) => new IFC2X3$1.IfcRampFlightType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 160246688: (a) => new IFC2X3$1.IfcRelAggregates(a[0], a[1], a[2], a[3], a[4], a[5]), + 2863920197: (a) => new IFC2X3$1.IfcRelAssignsTasks(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 1768891740: (a) => new IFC2X3$1.IfcSanitaryTerminalType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 3517283431: (a) => new IFC2X3$1.IfcScheduleTimeControl(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17], a[18], a[19], a[20], a[21], a[22]), + 4105383287: (a) => new IFC2X3$1.IfcServiceLife(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 4097777520: (a) => new IFC2X3$1.IfcSite(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]), + 2533589738: (a) => new IFC2X3$1.IfcSlabType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 3856911033: (a) => new IFC2X3$1.IfcSpace(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), + 1305183839: (a) => new IFC2X3$1.IfcSpaceHeaterType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 652456506: (a) => new IFC2X3$1.IfcSpaceProgram(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 3812236995: (a) => new IFC2X3$1.IfcSpaceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 3112655638: (a) => new IFC2X3$1.IfcStackTerminalType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1039846685: (a) => new IFC2X3$1.IfcStairFlightType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 682877961: (a) => new IFC2X3$1.IfcStructuralAction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), + 1179482911: (a) => new IFC2X3$1.IfcStructuralConnection(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 4243806635: (a) => new IFC2X3$1.IfcStructuralCurveConnection(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 214636428: (a) => new IFC2X3$1.IfcStructuralCurveMember(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 2445595289: (a) => new IFC2X3$1.IfcStructuralCurveMemberVarying(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 1807405624: (a) => new IFC2X3$1.IfcStructuralLinearAction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), + 1721250024: (a) => new IFC2X3$1.IfcStructuralLinearActionVarying(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]), + 1252848954: (a) => new IFC2X3$1.IfcStructuralLoadGroup(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1621171031: (a) => new IFC2X3$1.IfcStructuralPlanarAction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), + 3987759626: (a) => new IFC2X3$1.IfcStructuralPlanarActionVarying(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]), + 2082059205: (a) => new IFC2X3$1.IfcStructuralPointAction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), + 734778138: (a) => new IFC2X3$1.IfcStructuralPointConnection(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 1235345126: (a) => new IFC2X3$1.IfcStructuralPointReaction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2986769608: (a) => new IFC2X3$1.IfcStructuralResultGroup(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 1975003073: (a) => new IFC2X3$1.IfcStructuralSurfaceConnection(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 148013059: (a) => new IFC2X3$1.IfcSubContractResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), + 2315554128: (a) => new IFC2X3$1.IfcSwitchingDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2254336722: (a) => new IFC2X3$1.IfcSystem(a[0], a[1], a[2], a[3], a[4]), + 5716631: (a) => new IFC2X3$1.IfcTankType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1637806684: (a) => new IFC2X3$1.IfcTimeSeriesSchedule(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 1692211062: (a) => new IFC2X3$1.IfcTransformerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1620046519: (a) => new IFC2X3$1.IfcTransportElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), + 3593883385: (a) => new IFC2X3$1.IfcTrimmedCurve(a[0], a[1], a[2], a[3], a[4]), + 1600972822: (a) => new IFC2X3$1.IfcTubeBundleType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1911125066: (a) => new IFC2X3$1.IfcUnitaryEquipmentType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 728799441: (a) => new IFC2X3$1.IfcValveType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2769231204: (a) => new IFC2X3$1.IfcVirtualElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 1898987631: (a) => new IFC2X3$1.IfcWallType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1133259667: (a) => new IFC2X3$1.IfcWasteTerminalType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1028945134: (a) => new IFC2X3$1.IfcWorkControl(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14]), + 4218914973: (a) => new IFC2X3$1.IfcWorkPlan(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14]), + 3342526732: (a) => new IFC2X3$1.IfcWorkSchedule(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14]), + 1033361043: (a) => new IFC2X3$1.IfcZone(a[0], a[1], a[2], a[3], a[4]), + 1213861670: (a) => new IFC2X3$1.Ifc2DCompositeCurve(a[0], a[1]), + 3821786052: (a) => new IFC2X3$1.IfcActionRequest(a[0], a[1], a[2], a[3], a[4], a[5]), + 1411407467: (a) => new IFC2X3$1.IfcAirTerminalBoxType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 3352864051: (a) => new IFC2X3$1.IfcAirTerminalType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1871374353: (a) => new IFC2X3$1.IfcAirToAirHeatRecoveryType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2470393545: (a) => new IFC2X3$1.IfcAngularDimension(a[0]), + 3460190687: (a) => new IFC2X3$1.IfcAsset(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]), + 1967976161: (a) => new IFC2X3$1.IfcBSplineCurve(a[0], a[1], a[2], a[3], a[4]), + 819618141: (a) => new IFC2X3$1.IfcBeamType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1916977116: (a) => new IFC2X3$1.IfcBezierCurve(a[0], a[1], a[2], a[3], a[4]), + 231477066: (a) => new IFC2X3$1.IfcBoilerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 3299480353: (a) => new IFC2X3$1.IfcBuildingElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 52481810: (a) => new IFC2X3$1.IfcBuildingElementComponent(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 2979338954: (a) => new IFC2X3$1.IfcBuildingElementPart(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 1095909175: (a) => new IFC2X3$1.IfcBuildingElementProxy(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1909888760: (a) => new IFC2X3$1.IfcBuildingElementProxyType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 395041908: (a) => new IFC2X3$1.IfcCableCarrierFittingType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 3293546465: (a) => new IFC2X3$1.IfcCableCarrierSegmentType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1285652485: (a) => new IFC2X3$1.IfcCableSegmentType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2951183804: (a) => new IFC2X3$1.IfcChillerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2611217952: (a) => new IFC2X3$1.IfcCircle(a[0], a[1]), + 2301859152: (a) => new IFC2X3$1.IfcCoilType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 843113511: (a) => new IFC2X3$1.IfcColumn(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 3850581409: (a) => new IFC2X3$1.IfcCompressorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2816379211: (a) => new IFC2X3$1.IfcCondenserType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2188551683: (a) => new IFC2X3$1.IfcCondition(a[0], a[1], a[2], a[3], a[4]), + 1163958913: (a) => new IFC2X3$1.IfcConditionCriterion(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 3898045240: (a) => new IFC2X3$1.IfcConstructionEquipmentResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1060000209: (a) => new IFC2X3$1.IfcConstructionMaterialResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), + 488727124: (a) => new IFC2X3$1.IfcConstructionProductResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 335055490: (a) => new IFC2X3$1.IfcCooledBeamType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2954562838: (a) => new IFC2X3$1.IfcCoolingTowerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1973544240: (a) => new IFC2X3$1.IfcCovering(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3495092785: (a) => new IFC2X3$1.IfcCurtainWall(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 3961806047: (a) => new IFC2X3$1.IfcDamperType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 4147604152: (a) => new IFC2X3$1.IfcDiameterDimension(a[0]), + 1335981549: (a) => new IFC2X3$1.IfcDiscreteAccessory(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 2635815018: (a) => new IFC2X3$1.IfcDiscreteAccessoryType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1599208980: (a) => new IFC2X3$1.IfcDistributionChamberElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2063403501: (a) => new IFC2X3$1.IfcDistributionControlElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1945004755: (a) => new IFC2X3$1.IfcDistributionElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 3040386961: (a) => new IFC2X3$1.IfcDistributionFlowElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 3041715199: (a) => new IFC2X3$1.IfcDistributionPort(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 395920057: (a) => new IFC2X3$1.IfcDoor(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 869906466: (a) => new IFC2X3$1.IfcDuctFittingType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 3760055223: (a) => new IFC2X3$1.IfcDuctSegmentType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2030761528: (a) => new IFC2X3$1.IfcDuctSilencerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 855621170: (a) => new IFC2X3$1.IfcEdgeFeature(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 663422040: (a) => new IFC2X3$1.IfcElectricApplianceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 3277789161: (a) => new IFC2X3$1.IfcElectricFlowStorageDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1534661035: (a) => new IFC2X3$1.IfcElectricGeneratorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1365060375: (a) => new IFC2X3$1.IfcElectricHeaterType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1217240411: (a) => new IFC2X3$1.IfcElectricMotorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 712377611: (a) => new IFC2X3$1.IfcElectricTimeControlType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1634875225: (a) => new IFC2X3$1.IfcElectricalCircuit(a[0], a[1], a[2], a[3], a[4]), + 857184966: (a) => new IFC2X3$1.IfcElectricalElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 1658829314: (a) => new IFC2X3$1.IfcEnergyConversionDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 346874300: (a) => new IFC2X3$1.IfcFanType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1810631287: (a) => new IFC2X3$1.IfcFilterType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 4222183408: (a) => new IFC2X3$1.IfcFireSuppressionTerminalType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2058353004: (a) => new IFC2X3$1.IfcFlowController(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 4278956645: (a) => new IFC2X3$1.IfcFlowFitting(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 4037862832: (a) => new IFC2X3$1.IfcFlowInstrumentType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 3132237377: (a) => new IFC2X3$1.IfcFlowMovingDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 987401354: (a) => new IFC2X3$1.IfcFlowSegment(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 707683696: (a) => new IFC2X3$1.IfcFlowStorageDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 2223149337: (a) => new IFC2X3$1.IfcFlowTerminal(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 3508470533: (a) => new IFC2X3$1.IfcFlowTreatmentDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 900683007: (a) => new IFC2X3$1.IfcFooting(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1073191201: (a) => new IFC2X3$1.IfcMember(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 1687234759: (a) => new IFC2X3$1.IfcPile(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 3171933400: (a) => new IFC2X3$1.IfcPlate(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 2262370178: (a) => new IFC2X3$1.IfcRailing(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3024970846: (a) => new IFC2X3$1.IfcRamp(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3283111854: (a) => new IFC2X3$1.IfcRampFlight(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 3055160366: (a) => new IFC2X3$1.IfcRationalBezierCurve(a[0], a[1], a[2], a[3], a[4], a[5]), + 3027567501: (a) => new IFC2X3$1.IfcReinforcingElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2320036040: (a) => new IFC2X3$1.IfcReinforcingMesh(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16]), + 2016517767: (a) => new IFC2X3$1.IfcRoof(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1376911519: (a) => new IFC2X3$1.IfcRoundedEdgeFeature(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1783015770: (a) => new IFC2X3$1.IfcSensorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1529196076: (a) => new IFC2X3$1.IfcSlab(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 331165859: (a) => new IFC2X3$1.IfcStair(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 4252922144: (a) => new IFC2X3$1.IfcStairFlight(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), + 2515109513: (a) => new IFC2X3$1.IfcStructuralAnalysisModel(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3824725483: (a) => new IFC2X3$1.IfcTendon(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16]), + 2347447852: (a) => new IFC2X3$1.IfcTendonAnchor(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3313531582: (a) => new IFC2X3$1.IfcVibrationIsolatorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2391406946: (a) => new IFC2X3$1.IfcWall(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 3512223829: (a) => new IFC2X3$1.IfcWallStandardCase(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 3304561284: (a) => new IFC2X3$1.IfcWindow(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2874132201: (a) => new IFC2X3$1.IfcActuatorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 3001207471: (a) => new IFC2X3$1.IfcAlarmType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 753842376: (a) => new IFC2X3$1.IfcBeam(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 2454782716: (a) => new IFC2X3$1.IfcChamferEdgeFeature(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), + 578613899: (a) => new IFC2X3$1.IfcControllerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1052013943: (a) => new IFC2X3$1.IfcDistributionChamberElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 1062813311: (a) => new IFC2X3$1.IfcDistributionControlElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3700593921: (a) => new IFC2X3$1.IfcElectricDistributionPoint(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 979691226: (a) => new IFC2X3$1.IfcReinforcingBar(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]) +}; +ToRawLineData[1] = { + 3630933823: (i) => [i.Role, i.UserDefinedRole, i.Description], + 618182010: (i) => [i.Purpose, i.Description, i.UserDefinedPurpose], + 639542469: (i) => [i.ApplicationDeveloper, i.Version, i.ApplicationFullName, i.ApplicationIdentifier], + 411424972: (i) => [i.Name, i.Description, i.AppliedValue, i.UnitBasis, i.ApplicableDate, i.FixedUntilDate], + 1110488051: (i) => [i.ComponentOfTotal, i.Components, i.ArithmeticOperator, i.Name, i.Description], + 130549933: (i) => [i.Description, i.ApprovalDateTime, i.ApprovalStatus, i.ApprovalLevel, i.ApprovalQualifier, i.Name, i.Identifier], + 2080292479: (i) => [i.Actor, i.Approval, i.Role], + 390851274: (i) => [i.ApprovedProperties, i.Approval], + 3869604511: (i) => [i.RelatedApproval, i.RelatingApproval, i.Description, i.Name], + 4037036970: (i) => [i.Name], + 1560379544: (i) => [i.Name, i.LinearStiffnessByLengthX, i.LinearStiffnessByLengthY, i.LinearStiffnessByLengthZ, i.RotationalStiffnessByLengthX, i.RotationalStiffnessByLengthY, i.RotationalStiffnessByLengthZ], + 3367102660: (i) => [i.Name, i.LinearStiffnessByAreaX, i.LinearStiffnessByAreaY, i.LinearStiffnessByAreaZ], + 1387855156: (i) => [i.Name, i.LinearStiffnessX, i.LinearStiffnessY, i.LinearStiffnessZ, i.RotationalStiffnessX, i.RotationalStiffnessY, i.RotationalStiffnessZ], + 2069777674: (i) => [i.Name, i.LinearStiffnessX, i.LinearStiffnessY, i.LinearStiffnessZ, i.RotationalStiffnessX, i.RotationalStiffnessY, i.RotationalStiffnessZ, i.WarpingStiffness], + 622194075: (i) => [i.DayComponent, i.MonthComponent, i.YearComponent], + 747523909: (i) => [i.Source, i.Edition, i.EditionDate, i.Name], + 1767535486: (i) => [i.Notation, i.ItemOf, i.Title], + 1098599126: (i) => [i.RelatingItem, i.RelatedItems], + 938368621: (i) => [i.NotationFacets], + 3639012971: (i) => [i.NotationValue], + 3264961684: (i) => [i.Name], + 2859738748: (_) => [], + 2614616156: (i) => [i.PointOnRelatingElement, i.PointOnRelatedElement], + 4257277454: (i) => [i.LocationAtRelatingElement, i.LocationAtRelatedElement, i.ProfileOfPort], + 2732653382: (i) => [i.SurfaceOnRelatingElement, i.SurfaceOnRelatedElement], + 1959218052: (i) => [i.Name, i.Description, i.ConstraintGrade, i.ConstraintSource, i.CreatingActor, i.CreationTime, i.UserDefinedGrade], + 1658513725: (i) => [i.Name, i.Description, i.RelatingConstraint, i.RelatedConstraints, i.LogicalAggregator], + 613356794: (i) => [i.ClassifiedConstraint, i.RelatedClassifications], + 347226245: (i) => [i.Name, i.Description, i.RelatingConstraint, i.RelatedConstraints], + 1065062679: (i) => [i.HourOffset, i.MinuteOffset, i.Sense], + 602808272: (i) => [i.Name, i.Description, i.AppliedValue, i.UnitBasis, i.ApplicableDate, i.FixedUntilDate, i.CostType, i.Condition], + 539742890: (i) => [i.RelatingMonetaryUnit, i.RelatedMonetaryUnit, i.ExchangeRate, i.RateDateTime, i.RateSource], + 1105321065: (i) => [i.Name, i.PatternList], + 2367409068: (i) => [i.Name, i.CurveFont, i.CurveFontScaling], + 3510044353: (i) => [i.VisibleSegmentLength, i.InvisibleSegmentLength], + 1072939445: (i) => [i.DateComponent, i.TimeComponent], + 1765591967: (i) => [i.Elements, i.UnitType, i.UserDefinedType], + 1045800335: (i) => [i.Unit, i.Exponent], + 2949456006: (i) => [i.LengthExponent, i.MassExponent, i.TimeExponent, i.ElectricCurrentExponent, i.ThermodynamicTemperatureExponent, i.AmountOfSubstanceExponent, i.LuminousIntensityExponent], + 1376555844: (i) => [i.FileExtension, i.MimeContentType, i.MimeSubtype], + 1154170062: (i) => [i.DocumentId, i.Name, i.Description, i.DocumentReferences, i.Purpose, i.IntendedUse, i.Scope, i.Revision, i.DocumentOwner, i.Editors, i.CreationTime, i.LastRevisionTime, i.ElectronicFormat, i.ValidFrom, i.ValidUntil, i.Confidentiality, i.Status], + 770865208: (i) => [i.RelatingDocument, i.RelatedDocuments, i.RelationshipType], + 3796139169: (i) => [i.Name, i.Description, i.RelatingDraughtingCallout, i.RelatedDraughtingCallout], + 1648886627: (i) => [i.Name, i.Description, i.AppliedValue, i.UnitBasis, i.ApplicableDate, i.FixedUntilDate, i.ImpactType, i.Category, i.UserDefinedCategory], + 3200245327: (i) => [i.Location, i.ItemReference, i.Name], + 2242383968: (i) => [i.Location, i.ItemReference, i.Name], + 1040185647: (i) => [i.Location, i.ItemReference, i.Name], + 3207319532: (i) => [i.Location, i.ItemReference, i.Name], + 3548104201: (i) => [i.Location, i.ItemReference, i.Name], + 852622518: (i) => { + var _a; + return [i.AxisTag, i.AxisCurve, (_a = i.SameSense) == null ? void 0 : _a.toString()]; + }, + 3020489413: (i) => [i.TimeStamp, i.ListValues.map((p) => Labelise(p))], + 2655187982: (i) => [i.Name, i.Version, i.Publisher, i.VersionDate, i.LibraryReference], + 3452421091: (i) => [i.Location, i.ItemReference, i.Name], + 4162380809: (i) => [i.MainPlaneAngle, i.SecondaryPlaneAngle, i.LuminousIntensity], + 1566485204: (i) => [i.LightDistributionCurve, i.DistributionData], + 30780891: (i) => [i.HourComponent, i.MinuteComponent, i.SecondComponent, i.Zone, i.DaylightSavingOffset], + 1838606355: (i) => [i.Name], + 1847130766: (i) => [i.MaterialClassifications, i.ClassifiedMaterial], + 248100487: (i) => { + var _a; + return [i.Material, i.LayerThickness, (_a = i.IsVentilated) == null ? void 0 : _a.toString()]; + }, + 3303938423: (i) => [i.MaterialLayers, i.LayerSetName], + 1303795690: (i) => [i.ForLayerSet, i.LayerSetDirection, i.DirectionSense, i.OffsetFromReferenceLine], + 2199411900: (i) => [i.Materials], + 3265635763: (i) => [i.Material], + 2597039031: (i) => [Labelise(i.ValueComponent), i.UnitComponent], + 4256014907: (i) => [i.Material, i.DynamicViscosity, i.YoungModulus, i.ShearModulus, i.PoissonRatio, i.ThermalExpansionCoefficient], + 677618848: (i) => [i.Material, i.DynamicViscosity, i.YoungModulus, i.ShearModulus, i.PoissonRatio, i.ThermalExpansionCoefficient, i.YieldStress, i.UltimateStress, i.UltimateStrain, i.HardeningModule, i.ProportionalStress, i.PlasticStrain, i.Relaxations], + 3368373690: (i) => [i.Name, i.Description, i.ConstraintGrade, i.ConstraintSource, i.CreatingActor, i.CreationTime, i.UserDefinedGrade, i.Benchmark, i.ValueSource, i.DataValue], + 2706619895: (i) => [i.Currency], + 1918398963: (i) => [i.Dimensions, i.UnitType], + 3701648758: (_) => [], + 2251480897: (i) => [i.Name, i.Description, i.ConstraintGrade, i.ConstraintSource, i.CreatingActor, i.CreationTime, i.UserDefinedGrade, i.BenchmarkValues, i.ResultValues, i.ObjectiveQualifier, i.UserDefinedQualifier], + 1227763645: (i) => [i.Material, i.VisibleTransmittance, i.SolarTransmittance, i.ThermalIrTransmittance, i.ThermalIrEmissivityBack, i.ThermalIrEmissivityFront, i.VisibleReflectanceBack, i.VisibleReflectanceFront, i.SolarReflectanceFront, i.SolarReflectanceBack], + 4251960020: (i) => [i.Id, i.Name, i.Description, i.Roles, i.Addresses], + 1411181986: (i) => [i.Name, i.Description, i.RelatingOrganization, i.RelatedOrganizations], + 1207048766: (i) => [i.OwningUser, i.OwningApplication, i.State, i.ChangeAction, i.LastModifiedDate, i.LastModifyingUser, i.LastModifyingApplication, i.CreationDate], + 2077209135: (i) => [i.Id, i.FamilyName, i.GivenName, i.MiddleNames, i.PrefixTitles, i.SuffixTitles, i.Roles, i.Addresses], + 101040310: (i) => [i.ThePerson, i.TheOrganization, i.Roles], + 2483315170: (i) => [i.Name, i.Description], + 2226359599: (i) => [i.Name, i.Description, i.Unit], + 3355820592: (i) => [i.Purpose, i.Description, i.UserDefinedPurpose, i.InternalLocation, i.AddressLines, i.PostalBox, i.Town, i.Region, i.PostalCode, i.Country], + 3727388367: (i) => [i.Name], + 990879717: (i) => [i.Name], + 3213052703: (i) => [i.Name], + 1775413392: (i) => [i.Name], + 2022622350: (i) => [i.Name, i.Description, i.AssignedItems, i.Identifier], + 1304840413: (i) => [i.Name, i.Description, i.AssignedItems, i.Identifier, i.LayerOn, i.LayerFrozen, i.LayerBlocked, i.LayerStyles], + 3119450353: (i) => [i.Name], + 2417041796: (i) => [i.Styles], + 2095639259: (i) => [i.Name, i.Description, i.Representations], + 2267347899: (i) => [i.Material, i.SpecificHeatCapacity, i.N20Content, i.COContent, i.CO2Content], + 3958567839: (i) => [i.ProfileType, i.ProfileName], + 2802850158: (i) => [i.ProfileName, i.ProfileDefinition], + 2598011224: (i) => [i.Name, i.Description], + 3896028662: (i) => [i.RelatingConstraint, i.RelatedProperties, i.Name, i.Description], + 148025276: (i) => [i.DependingProperty, i.DependantProperty, i.Name, i.Description, i.Expression], + 3710013099: (i) => [i.Name, i.EnumerationValues.map((p) => Labelise(p)), i.Unit], + 2044713172: (i) => [i.Name, i.Description, i.Unit, i.AreaValue], + 2093928680: (i) => [i.Name, i.Description, i.Unit, i.CountValue], + 931644368: (i) => [i.Name, i.Description, i.Unit, i.LengthValue], + 3252649465: (i) => [i.Name, i.Description, i.Unit, i.TimeValue], + 2405470396: (i) => [i.Name, i.Description, i.Unit, i.VolumeValue], + 825690147: (i) => [i.Name, i.Description, i.Unit, i.WeightValue], + 2692823254: (i) => [i.ReferencedDocument, i.ReferencingValues, i.Name, i.Description], + 1580146022: (i) => [i.TotalCrossSectionArea, i.SteelGrade, i.BarSurface, i.EffectiveDepth, i.NominalBarDiameter, i.BarCount], + 1222501353: (i) => [i.RelaxationValue, i.InitialStress], + 1076942058: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items], + 3377609919: (i) => [i.ContextIdentifier, i.ContextType], + 3008791417: (_) => [], + 1660063152: (i) => [i.MappingOrigin, i.MappedRepresentation], + 3679540991: (i) => [i.ProfileName, i.ProfileDefinition, i.Thickness, i.RibHeight, i.RibWidth, i.RibSpacing, i.Direction], + 2341007311: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description], + 448429030: (i) => [i.Dimensions, i.UnitType, i.Prefix, i.Name], + 2042790032: (i) => [i.SectionType, i.StartProfile, i.EndProfile], + 4165799628: (i) => [i.LongitudinalStartPosition, i.LongitudinalEndPosition, i.TransversePosition, i.ReinforcementRole, i.SectionDefinition, i.CrossSectionReinforcementDefinitions], + 867548509: (i) => [i.ShapeRepresentations, i.Name, i.Description, i.ProductDefinitional, i.PartOfProductDefinitionShape], + 3982875396: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items], + 4240577450: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items], + 3692461612: (i) => [i.Name, i.Description], + 2273995522: (i) => [i.Name], + 2162789131: (i) => [i.Name], + 2525727697: (i) => [i.Name], + 3408363356: (i) => [i.Name, i.DeltaT_Constant, i.DeltaT_Y, i.DeltaT_Z], + 2830218821: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items], + 3958052878: (i) => [i.Item, i.Styles, i.Name], + 3049322572: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items], + 1300840506: (i) => [i.Name, i.Side, i.Styles], + 3303107099: (i) => [i.DiffuseTransmissionColour, i.DiffuseReflectionColour, i.TransmissionColour, i.ReflectanceColour], + 1607154358: (i) => [i.RefractionIndex, i.DispersionFactor], + 846575682: (i) => [i.SurfaceColour], + 1351298697: (i) => [i.Textures], + 626085974: (i) => [i.RepeatS, i.RepeatT, i.TextureType, i.TextureTransform], + 1290481447: (i) => [i.Name, Labelise(i.StyleOfSymbol)], + 985171141: (i) => [i.Name, i.Rows], + 531007025: (i) => [i.RowCells.map((p) => Labelise(p)), i.IsHeading], + 912023232: (i) => [i.Purpose, i.Description, i.UserDefinedPurpose, i.TelephoneNumbers, i.FacsimileNumbers, i.PagerNumber, i.ElectronicMailAddresses, i.WWWHomePageURL], + 1447204868: (i) => [i.Name, i.TextCharacterAppearance, i.TextStyle, i.TextFontStyle], + 1983826977: (i) => [i.Name, i.FontFamily, i.FontStyle, i.FontVariant, i.FontWeight, Labelise(i.FontSize)], + 2636378356: (i) => [i.Colour, i.BackgroundColour], + 1640371178: (i) => [!i.TextIndent ? null : Labelise(i.TextIndent), i.TextAlign, i.TextDecoration, !i.LetterSpacing ? null : Labelise(i.LetterSpacing), !i.WordSpacing ? null : Labelise(i.WordSpacing), i.TextTransform, !i.LineHeight ? null : Labelise(i.LineHeight)], + 1484833681: (i) => [i.BoxHeight, i.BoxWidth, i.BoxSlantAngle, i.BoxRotateAngle, !i.CharacterSpacing ? null : Labelise(i.CharacterSpacing)], + 280115917: (_) => [], + 1742049831: (i) => [i.Mode, i.Parameter.map((p) => Labelise(p))], + 2552916305: (i) => [i.TextureMaps], + 1210645708: (i) => [i.Coordinates], + 3317419933: (i) => [i.Material, i.SpecificHeatCapacity, i.BoilingPoint, i.FreezingPoint, i.ThermalConductivity], + 3101149627: (i) => [i.Name, i.Description, i.StartTime, i.EndTime, i.TimeSeriesDataType, i.DataOrigin, i.UserDefinedDataOrigin, i.Unit], + 1718945513: (i) => [i.ReferencedTimeSeries, i.TimeSeriesReferences], + 581633288: (i) => [i.ListValues.map((p) => Labelise(p))], + 1377556343: (_) => [], + 1735638870: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items], + 180925521: (i) => [i.Units], + 2799835756: (_) => [], + 3304826586: (i) => [i.TextureVertices, i.TexturePoints], + 1907098498: (i) => [i.VertexGeometry], + 891718957: (i) => [i.IntersectingAxes, i.OffsetDistances], + 1065908215: (i) => [i.Material, i.IsPotable, i.Hardness, i.AlkalinityConcentration, i.AcidityConcentration, i.ImpuritiesContent, i.PHLevel, i.DissolvedSolidsContent], + 2442683028: (i) => [i.Item, i.Styles, i.Name], + 962685235: (i) => [i.Item, i.Styles, i.Name], + 3612888222: (i) => [i.Item, i.Styles, i.Name], + 2297822566: (i) => [i.Item, i.Styles, i.Name], + 3798115385: (i) => [i.ProfileType, i.ProfileName, i.OuterCurve], + 1310608509: (i) => [i.ProfileType, i.ProfileName, i.Curve], + 2705031697: (i) => [i.ProfileType, i.ProfileName, i.OuterCurve, i.InnerCurves], + 616511568: (i) => [i.RepeatS, i.RepeatT, i.TextureType, i.TextureTransform, i.RasterFormat, i.RasterCode], + 3150382593: (i) => [i.ProfileType, i.ProfileName, i.Curve, i.Thickness], + 647927063: (i) => [i.Location, i.ItemReference, i.Name, i.ReferencedSource], + 776857604: (i) => [i.Name, i.Red, i.Green, i.Blue], + 2542286263: (i) => [i.Name, i.Description, i.UsageName, i.HasProperties], + 1485152156: (i) => [i.ProfileType, i.ProfileName, i.Profiles, i.Label], + 370225590: (i) => [i.CfsFaces], + 1981873012: (i) => [i.CurveOnRelatingElement, i.CurveOnRelatedElement], + 45288368: (i) => [i.PointOnRelatingElement, i.PointOnRelatedElement, i.EccentricityInX, i.EccentricityInY, i.EccentricityInZ], + 3050246964: (i) => [i.Dimensions, i.UnitType, i.Name], + 2889183280: (i) => [i.Dimensions, i.UnitType, i.Name, i.ConversionFactor], + 3800577675: (i) => [i.Name, i.CurveFont, !i.CurveWidth ? null : Labelise(i.CurveWidth), i.CurveColour], + 3632507154: (i) => [i.ProfileType, i.ProfileName, i.ParentProfile, i.Operator, i.Label], + 2273265877: (i) => [i.Name, i.Description, i.RelatingDraughtingCallout, i.RelatedDraughtingCallout], + 1694125774: (i) => [i.Name, i.Description, i.RelatingDraughtingCallout, i.RelatedDraughtingCallout], + 3732053477: (i) => [i.Location, i.ItemReference, i.Name], + 4170525392: (i) => [i.Name], + 3900360178: (i) => [i.EdgeStart, i.EdgeEnd], + 476780140: (i) => [i.EdgeStart, i.EdgeEnd, i.EdgeGeometry, i.SameSense], + 1860660968: (i) => [i.Material, i.ExtendedProperties, i.Description, i.Name], + 2556980723: (i) => [i.Bounds], + 1809719519: (i) => [i.Bound, i.Orientation], + 803316827: (i) => [i.Bound, i.Orientation], + 3008276851: (i) => [i.Bounds, i.FaceSurface, i.SameSense], + 4219587988: (i) => [i.Name, i.TensionFailureX, i.TensionFailureY, i.TensionFailureZ, i.CompressionFailureX, i.CompressionFailureY, i.CompressionFailureZ], + 738692330: (i) => [i.Name, i.FillStyles], + 3857492461: (i) => [i.Material, i.CombustionTemperature, i.CarbonContent, i.LowerHeatingValue, i.HigherHeatingValue], + 803998398: (i) => [i.Material, i.MolecularWeight, i.Porosity, i.MassDensity], + 1446786286: (i) => [i.ProfileName, i.ProfileDefinition, i.PhysicalWeight, i.Perimeter, i.MinimumPlateThickness, i.MaximumPlateThickness, i.CrossSectionArea], + 3448662350: (i) => [i.ContextIdentifier, i.ContextType, i.CoordinateSpaceDimension, i.Precision, i.WorldCoordinateSystem, i.TrueNorth], + 2453401579: (_) => [], + 4142052618: (i) => [i.ContextIdentifier, i.ContextType, i.CoordinateSpaceDimension, i.Precision, i.WorldCoordinateSystem, i.TrueNorth, i.ParentContext, i.TargetScale, i.TargetView, i.UserDefinedTargetView], + 3590301190: (i) => [i.Elements], + 178086475: (i) => [i.PlacementLocation, i.PlacementRefDirection], + 812098782: (i) => [i.BaseSurface, i.AgreementFlag], + 2445078500: (i) => [i.Material, i.UpperVaporResistanceFactor, i.LowerVaporResistanceFactor, i.IsothermalMoistureCapacity, i.VaporPermeability, i.MoistureDiffusivity], + 3905492369: (i) => [i.RepeatS, i.RepeatT, i.TextureType, i.TextureTransform, i.UrlReference], + 3741457305: (i) => [i.Name, i.Description, i.StartTime, i.EndTime, i.TimeSeriesDataType, i.DataOrigin, i.UserDefinedDataOrigin, i.Unit, i.Values], + 1402838566: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity], + 125510826: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity], + 2604431987: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity, i.Orientation], + 4266656042: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity, i.Position, i.ColourAppearance, i.ColourTemperature, i.LuminousFlux, i.LightEmissionSource, i.LightDistributionDataSource], + 1520743889: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity, i.Position, i.Radius, i.ConstantAttenuation, i.DistanceAttenuation, i.QuadricAttenuation], + 3422422726: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity, i.Position, i.Radius, i.ConstantAttenuation, i.DistanceAttenuation, i.QuadricAttenuation, i.Orientation, i.ConcentrationExponent, i.SpreadAngle, i.BeamWidthAngle], + 2624227202: (i) => [i.PlacementRelTo, i.RelativePlacement], + 1008929658: (_) => [], + 2347385850: (i) => [i.MappingSource, i.MappingTarget], + 2022407955: (i) => [i.Name, i.Description, i.Representations, i.RepresentedMaterial], + 1430189142: (i) => [i.Material, i.DynamicViscosity, i.YoungModulus, i.ShearModulus, i.PoissonRatio, i.ThermalExpansionCoefficient, i.CompressiveStrength, i.MaxAggregateSize, i.AdmixturesDescription, i.Workability, i.ProtectivePoreRatio, i.WaterImpermeability], + 219451334: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description], + 2833995503: (i) => [i.RepeatFactor], + 2665983363: (i) => [i.CfsFaces], + 1029017970: (i) => [i.EdgeStart, i.EdgeEnd, i.EdgeElement, i.Orientation], + 2529465313: (i) => [i.ProfileType, i.ProfileName, i.Position], + 2519244187: (i) => [i.EdgeList], + 3021840470: (i) => [i.Name, i.Description, i.HasQuantities, i.Discrimination, i.Quality, i.Usage], + 597895409: (i) => [i.RepeatS, i.RepeatT, i.TextureType, i.TextureTransform, i.Width, i.Height, i.ColourComponents, i.Pixel], + 2004835150: (i) => [i.Location], + 1663979128: (i) => [i.SizeInX, i.SizeInY], + 2067069095: (_) => [], + 4022376103: (i) => [i.BasisCurve, i.PointParameter], + 1423911732: (i) => [i.BasisSurface, i.PointParameterU, i.PointParameterV], + 2924175390: (i) => [i.Polygon], + 2775532180: (i) => [i.BaseSurface, i.AgreementFlag, i.Position, i.PolygonalBoundary], + 759155922: (i) => [i.Name], + 2559016684: (i) => [i.Name], + 433424934: (i) => [i.Name], + 179317114: (i) => [i.Name], + 673634403: (i) => [i.Name, i.Description, i.Representations], + 871118103: (i) => [i.Name, i.Description, !i.UpperBoundValue ? null : Labelise(i.UpperBoundValue), !i.LowerBoundValue ? null : Labelise(i.LowerBoundValue), i.Unit], + 1680319473: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description], + 4166981789: (i) => [i.Name, i.Description, i.EnumerationValues.map((p) => Labelise(p)), i.EnumerationReference], + 2752243245: (i) => [i.Name, i.Description, i.ListValues.map((p) => Labelise(p)), i.Unit], + 941946838: (i) => [i.Name, i.Description, i.UsageName, i.PropertyReference], + 3357820518: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description], + 3650150729: (i) => [i.Name, i.Description, !i.NominalValue ? null : Labelise(i.NominalValue), i.Unit], + 110355661: (i) => [i.Name, i.Description, i.DefiningValues.map((p) => Labelise(p)), i.DefinedValues.map((p) => Labelise(p)), i.Expression, i.DefiningUnit, i.DefinedUnit], + 3615266464: (i) => [i.ProfileType, i.ProfileName, i.Position, i.XDim, i.YDim], + 3413951693: (i) => [i.Name, i.Description, i.StartTime, i.EndTime, i.TimeSeriesDataType, i.DataOrigin, i.UserDefinedDataOrigin, i.Unit, i.TimeStep, i.Values], + 3765753017: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.DefinitionType, i.ReinforcementSectionDefinitions], + 478536968: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description], + 2778083089: (i) => [i.ProfileType, i.ProfileName, i.Position, i.XDim, i.YDim, i.RoundingRadius], + 1509187699: (i) => [i.SpineCurve, i.CrossSections, i.CrossSectionPositions], + 2411513650: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.PredefinedType, !i.UpperValue ? null : Labelise(i.UpperValue), Labelise(i.MostUsedValue), !i.LowerValue ? null : Labelise(i.LowerValue)], + 4124623270: (i) => [i.SbsmBoundary], + 2609359061: (i) => [i.Name, i.SlippageX, i.SlippageY, i.SlippageZ], + 723233188: (_) => [], + 2485662743: (i) => { + var _a; + return [i.GlobalId, i.OwnerHistory, i.Name, i.Description, (_a = i.IsAttenuating) == null ? void 0 : _a.toString(), i.SoundScale, i.SoundValues]; + }, + 1202362311: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.SoundLevelTimeSeries, i.Frequency, !i.SoundLevelSingleValue ? null : Labelise(i.SoundLevelSingleValue)], + 390701378: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableValueRatio, i.ThermalLoadSource, i.PropertySource, i.SourceDescription, i.MaximumValue, i.MinimumValue, i.ThermalLoadTimeSeriesValues, i.UserDefinedThermalLoadSource, i.UserDefinedPropertySource, i.ThermalLoadType], + 1595516126: (i) => [i.Name, i.LinearForceX, i.LinearForceY, i.LinearForceZ, i.LinearMomentX, i.LinearMomentY, i.LinearMomentZ], + 2668620305: (i) => [i.Name, i.PlanarForceX, i.PlanarForceY, i.PlanarForceZ], + 2473145415: (i) => [i.Name, i.DisplacementX, i.DisplacementY, i.DisplacementZ, i.RotationalDisplacementRX, i.RotationalDisplacementRY, i.RotationalDisplacementRZ], + 1973038258: (i) => [i.Name, i.DisplacementX, i.DisplacementY, i.DisplacementZ, i.RotationalDisplacementRX, i.RotationalDisplacementRY, i.RotationalDisplacementRZ, i.Distortion], + 1597423693: (i) => [i.Name, i.ForceX, i.ForceY, i.ForceZ, i.MomentX, i.MomentY, i.MomentZ], + 1190533807: (i) => [i.Name, i.ForceX, i.ForceY, i.ForceZ, i.MomentX, i.MomentY, i.MomentZ, i.WarpingMoment], + 3843319758: (i) => [i.ProfileName, i.ProfileDefinition, i.PhysicalWeight, i.Perimeter, i.MinimumPlateThickness, i.MaximumPlateThickness, i.CrossSectionArea, i.TorsionalConstantX, i.MomentOfInertiaYZ, i.MomentOfInertiaY, i.MomentOfInertiaZ, i.WarpingConstant, i.ShearCentreZ, i.ShearCentreY, i.ShearDeformationAreaZ, i.ShearDeformationAreaY, i.MaximumSectionModulusY, i.MinimumSectionModulusY, i.MaximumSectionModulusZ, i.MinimumSectionModulusZ, i.TorsionalSectionModulus, i.CentreOfGravityInX, i.CentreOfGravityInY], + 3653947884: (i) => [i.ProfileName, i.ProfileDefinition, i.PhysicalWeight, i.Perimeter, i.MinimumPlateThickness, i.MaximumPlateThickness, i.CrossSectionArea, i.TorsionalConstantX, i.MomentOfInertiaYZ, i.MomentOfInertiaY, i.MomentOfInertiaZ, i.WarpingConstant, i.ShearCentreZ, i.ShearCentreY, i.ShearDeformationAreaZ, i.ShearDeformationAreaY, i.MaximumSectionModulusY, i.MinimumSectionModulusY, i.MaximumSectionModulusZ, i.MinimumSectionModulusZ, i.TorsionalSectionModulus, i.CentreOfGravityInX, i.CentreOfGravityInY, i.ShearAreaZ, i.ShearAreaY, i.PlasticShapeFactorY, i.PlasticShapeFactorZ], + 2233826070: (i) => [i.EdgeStart, i.EdgeEnd, i.ParentEdge], + 2513912981: (_) => [], + 1878645084: (i) => [i.SurfaceColour, i.Transparency, i.DiffuseColour, i.TransmissionColour, i.DiffuseTransmissionColour, i.ReflectionColour, i.SpecularColour, !i.SpecularHighlight ? null : Labelise(i.SpecularHighlight), i.ReflectanceMethod], + 2247615214: (i) => [i.SweptArea, i.Position], + 1260650574: (i) => [i.Directrix, i.Radius, i.InnerRadius, i.StartParam, i.EndParam], + 230924584: (i) => [i.SweptCurve, i.Position], + 3071757647: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Depth, i.FlangeWidth, i.WebThickness, i.FlangeThickness, i.FilletRadius, i.FlangeEdgeRadius, i.WebEdgeRadius, i.WebSlope, i.FlangeSlope, i.CentreOfGravityInY], + 3028897424: (i) => [i.Item, i.Styles, i.Name, i.AnnotatedCurve], + 4282788508: (i) => [i.Literal, i.Placement, i.Path], + 3124975700: (i) => [i.Literal, i.Placement, i.Path, i.Extent, i.BoxAlignment], + 2715220739: (i) => [i.ProfileType, i.ProfileName, i.Position, i.BottomXDim, i.TopXDim, i.YDim, i.TopXOffset], + 1345879162: (i) => [i.RepeatFactor, i.SecondRepeatFactor], + 1628702193: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets], + 2347495698: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag], + 427810014: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Depth, i.FlangeWidth, i.WebThickness, i.FlangeThickness, i.FilletRadius, i.EdgeRadius, i.FlangeSlope, i.CentreOfGravityInX], + 1417489154: (i) => [i.Orientation, i.Magnitude], + 2759199220: (i) => [i.LoopVertex], + 336235671: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.LiningDepth, i.LiningThickness, i.TransomThickness, i.MullionThickness, i.FirstTransomOffset, i.SecondTransomOffset, i.FirstMullionOffset, i.SecondMullionOffset, i.ShapeAspectStyle], + 512836454: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.OperationType, i.PanelPosition, i.FrameDepth, i.FrameThickness, i.ShapeAspectStyle], + 1299126871: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ConstructionType, i.OperationType, i.ParameterTakesPrecedence, i.Sizeable], + 2543172580: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Depth, i.FlangeWidth, i.WebThickness, i.FlangeThickness, i.FilletRadius, i.EdgeRadius], + 3288037868: (i) => [i.Item, i.Styles, i.Name], + 669184980: (i) => [i.OuterBoundary, i.InnerBoundaries], + 2265737646: (i) => [i.Item, i.Styles, i.Name, i.FillStyleTarget, i.GlobalOrLocal], + 1302238472: (i) => [i.Item, i.TextureCoordinates], + 4261334040: (i) => [i.Location, i.Axis], + 3125803723: (i) => [i.Location, i.RefDirection], + 2740243338: (i) => [i.Location, i.Axis, i.RefDirection], + 2736907675: (i) => [i.Operator, i.FirstOperand, i.SecondOperand], + 4182860854: (_) => [], + 2581212453: (i) => [i.Corner, i.XDim, i.YDim, i.ZDim], + 2713105998: (i) => [i.BaseSurface, i.AgreementFlag, i.Enclosure], + 2898889636: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Depth, i.Width, i.WallThickness, i.Girth, i.InternalFilletRadius, i.CentreOfGravityInX], + 1123145078: (i) => [i.Coordinates], + 59481748: (i) => [i.Axis1, i.Axis2, i.LocalOrigin, i.Scale], + 3749851601: (i) => [i.Axis1, i.Axis2, i.LocalOrigin, i.Scale], + 3486308946: (i) => [i.Axis1, i.Axis2, i.LocalOrigin, i.Scale, i.Scale2], + 3331915920: (i) => [i.Axis1, i.Axis2, i.LocalOrigin, i.Scale, i.Axis3], + 1416205885: (i) => [i.Axis1, i.Axis2, i.LocalOrigin, i.Scale, i.Axis3, i.Scale2, i.Scale3], + 1383045692: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Radius], + 2205249479: (i) => [i.CfsFaces], + 2485617015: (i) => [i.Transition, i.SameSense, i.ParentCurve], + 4133800736: (i) => [i.ProfileType, i.ProfileName, i.Position, i.OverallHeight, i.BaseWidth2, i.Radius, i.HeadWidth, i.HeadDepth2, i.HeadDepth3, i.WebThickness, i.BaseWidth4, i.BaseDepth1, i.BaseDepth2, i.BaseDepth3, i.CentreOfGravityInY], + 194851669: (i) => [i.ProfileType, i.ProfileName, i.Position, i.OverallHeight, i.HeadWidth, i.Radius, i.HeadDepth2, i.HeadDepth3, i.WebThickness, i.BaseDepth1, i.BaseDepth2, i.CentreOfGravityInY], + 2506170314: (i) => [i.Position], + 2147822146: (i) => [i.TreeRootExpression], + 2601014836: (_) => [], + 2827736869: (i) => [i.BasisSurface, i.OuterBoundary, i.InnerBoundaries], + 693772133: (i) => [i.Definition, i.Target], + 606661476: (i) => [i.Item, i.Styles, i.Name], + 4054601972: (i) => [i.Item, i.Styles, i.Name, i.AnnotatedCurve, i.Role], + 32440307: (i) => [i.DirectionRatios], + 2963535650: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.LiningDepth, i.LiningThickness, i.ThresholdDepth, i.ThresholdThickness, i.TransomThickness, i.TransomOffset, i.LiningOffset, i.ThresholdOffset, i.CasingThickness, i.CasingDepth, i.ShapeAspectStyle], + 1714330368: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.PanelDepth, i.PanelOperation, i.PanelWidth, i.PanelPosition, i.ShapeAspectStyle], + 526551008: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.OperationType, i.ConstructionType, i.ParameterTakesPrecedence, i.Sizeable], + 3073041342: (i) => [i.Contents], + 445594917: (i) => [i.Name], + 4006246654: (i) => [i.Name], + 1472233963: (i) => [i.EdgeList], + 1883228015: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.MethodOfMeasurement, i.Quantities], + 339256511: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], + 2777663545: (i) => [i.Position], + 2835456948: (i) => [i.ProfileType, i.ProfileName, i.Position, i.SemiAxis1, i.SemiAxis2], + 80994333: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.EnergySequence, i.UserDefinedEnergySequence], + 477187591: (i) => [i.SweptArea, i.Position, i.ExtrudedDirection, i.Depth], + 2047409740: (i) => [i.FbsmFaces], + 374418227: (i) => [i.HatchLineAppearance, i.StartOfNextHatchLine, i.PointOfReferenceHatchLine, i.PatternStart, i.HatchLineAngle], + 4203026998: (i) => [i.Symbol], + 315944413: (i) => [i.TilingPattern, i.Tiles, i.TilingScale], + 3455213021: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.PropertySource, i.FlowConditionTimeSeries, i.VelocityTimeSeries, i.FlowrateTimeSeries, i.Fluid, i.PressureTimeSeries, i.UserDefinedPropertySource, i.TemperatureSingleValue, i.WetBulbTemperatureSingleValue, i.WetBulbTemperatureTimeSeries, i.TemperatureTimeSeries, !i.FlowrateSingleValue ? null : Labelise(i.FlowrateSingleValue), i.FlowConditionSingleValue, i.VelocitySingleValue, i.PressureSingleValue], + 4238390223: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], + 1268542332: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.AssemblyPlace], + 987898635: (i) => [i.Elements], + 1484403080: (i) => [i.ProfileType, i.ProfileName, i.Position, i.OverallWidth, i.OverallDepth, i.WebThickness, i.FlangeThickness, i.FilletRadius], + 572779678: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Depth, i.Width, i.Thickness, i.FilletRadius, i.EdgeRadius, i.LegSlope, i.CentreOfGravityInX, i.CentreOfGravityInY], + 1281925730: (i) => [i.Pnt, i.Dir], + 1425443689: (i) => [i.Outer], + 3888040117: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType], + 3388369263: (i) => [i.BasisCurve, i.Distance, i.SelfIntersect], + 3505215534: (i) => [i.BasisCurve, i.Distance, i.SelfIntersect, i.RefDirection], + 3566463478: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.OperationType, i.PanelPosition, i.FrameDepth, i.FrameThickness, i.ShapeAspectStyle], + 603570806: (i) => [i.SizeInX, i.SizeInY, i.Placement], + 220341763: (i) => [i.Position], + 2945172077: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType], + 4208778838: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation], + 103090709: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.LongName, i.Phase, i.RepresentationContexts, i.UnitsInContext], + 4194566429: (i) => [i.Item, i.Styles, i.Name], + 1451395588: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.HasProperties], + 3219374653: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.ProxyType, i.Tag], + 2770003689: (i) => [i.ProfileType, i.ProfileName, i.Position, i.XDim, i.YDim, i.WallThickness, i.InnerFilletRadius, i.OuterFilletRadius], + 2798486643: (i) => [i.Position, i.XLength, i.YLength, i.Height], + 3454111270: (i) => [i.BasisSurface, i.U1, i.V1, i.U2, i.V2, i.Usense, i.Vsense], + 3939117080: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType], + 1683148259: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingActor, i.ActingRole], + 2495723537: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingControl], + 1307041759: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingGroup], + 4278684876: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingProcess, i.QuantityInProcess], + 2857406711: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingProduct], + 3372526763: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingControl], + 205026976: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingResource], + 1865459582: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects], + 1327628568: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingAppliedValue], + 4095574036: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingApproval], + 919958153: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingClassification], + 2728634034: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.Intent, i.RelatingConstraint], + 982818633: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingDocument], + 3840914261: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingLibrary], + 2655215786: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingMaterial], + 2851387026: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingProfileProperties, i.ProfileSectionLocation, i.ProfileOrientation], + 826625072: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description], + 1204542856: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ConnectionGeometry, i.RelatingElement, i.RelatedElement], + 3945020480: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ConnectionGeometry, i.RelatingElement, i.RelatedElement, i.RelatingPriorities, i.RelatedPriorities, i.RelatedConnectionType, i.RelatingConnectionType], + 4201705270: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingPort, i.RelatedElement], + 3190031847: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingPort, i.RelatedPort, i.RealizingElement], + 2127690289: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingElement, i.RelatedStructuralActivity], + 3912681535: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingElement, i.RelatedStructuralMember], + 1638771189: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingStructuralMember, i.RelatedStructuralConnection, i.AppliedCondition, i.AdditionalConditions, i.SupportedLength, i.ConditionCoordinateSystem], + 504942748: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingStructuralMember, i.RelatedStructuralConnection, i.AppliedCondition, i.AdditionalConditions, i.SupportedLength, i.ConditionCoordinateSystem, i.ConnectionConstraint], + 3678494232: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ConnectionGeometry, i.RelatingElement, i.RelatedElement, i.RealizingElements, i.ConnectionType], + 3242617779: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedElements, i.RelatingStructure], + 886880790: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingBuildingElement, i.RelatedCoverings], + 2802773753: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedSpace, i.RelatedCoverings], + 2551354335: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingObject, i.RelatedObjects], + 693640335: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects], + 4186316022: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingPropertyDefinition], + 781010003: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingType], + 3940055652: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingOpeningElement, i.RelatedBuildingElement], + 279856033: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedControlElements, i.RelatingFlowElement], + 4189434867: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.DailyInteraction, i.ImportanceRating, i.LocationOfInteraction, i.RelatedSpaceProgram, i.RelatingSpaceProgram], + 3268803585: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingObject, i.RelatedObjects], + 2051452291: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingActor, i.ActingRole], + 202636808: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingPropertyDefinition, i.OverridingProperties], + 750771296: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingElement, i.RelatedFeatureElement], + 1245217292: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedElements, i.RelatingStructure], + 1058617721: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingControl], + 4122056220: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingProcess, i.RelatedProcess, i.TimeLag, i.SequenceType], + 366585022: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingSystem, i.RelatedBuildings], + 3451746338: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingSpace, i.RelatedBuildingElement, i.ConnectionGeometry, i.PhysicalOrVirtualBoundary, i.InternalOrExternalBoundary], + 1401173127: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingBuildingElement, i.RelatedOpeningElement], + 2914609552: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType], + 1856042241: (i) => [i.SweptArea, i.Position, i.Axis, i.Angle], + 4158566097: (i) => [i.Position, i.Height, i.BottomRadius], + 3626867408: (i) => [i.Position, i.Height, i.Radius], + 2706606064: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType], + 3893378262: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], + 451544542: (i) => [i.Position, i.Radius], + 3544373492: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal], + 3136571912: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation], + 530289379: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation], + 3689010777: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal], + 3979015343: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.PredefinedType, i.Thickness], + 2218152070: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.PredefinedType, i.Thickness, i.SubsequentThickness, i.VaryingThicknessLocation], + 4070609034: (i) => [i.Contents], + 2028607225: (i) => [i.SweptArea, i.Position, i.Directrix, i.StartParam, i.EndParam, i.ReferenceSurface], + 2809605785: (i) => [i.SweptCurve, i.Position, i.ExtrudedDirection, i.Depth], + 4124788165: (i) => [i.SweptCurve, i.Position, i.AxisPosition], + 1580310250: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], + 3473067441: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.TaskId, i.Status, i.WorkMethod, i.IsMilestone, i.Priority], + 2097647324: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 2296667514: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.TheActor], + 1674181508: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation], + 3207858831: (i) => [i.ProfileType, i.ProfileName, i.Position, i.OverallWidth, i.OverallDepth, i.WebThickness, i.FlangeThickness, i.FilletRadius, i.TopFlangeWidth, i.TopFlangeThickness, i.TopFlangeFilletRadius, i.CentreOfGravityInY], + 1334484129: (i) => [i.Position, i.XLength, i.YLength, i.ZLength], + 3649129432: (i) => [i.Operator, i.FirstOperand, i.SecondOperand], + 1260505505: (_) => [], + 4031249490: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.ElevationOfRefHeight, i.ElevationOfTerrain, i.BuildingAddress], + 1950629157: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], + 3124254112: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.Elevation], + 2937912522: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Radius, i.WallThickness], + 300633059: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 3732776249: (i) => [i.Segments, i.SelfIntersect], + 2510884976: (i) => [i.Position], + 2559216714: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ResourceIdentifier, i.ResourceGroup, i.ResourceConsumption, i.BaseQuantity], + 3293443760: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType], + 3895139033: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType], + 1419761937: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.SubmittedBy, i.PreparedBy, i.SubmittedOn, i.Status, i.TargetUsers, i.UpdateDate, i.ID, i.PredefinedType], + 1916426348: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 3295246426: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ResourceIdentifier, i.ResourceGroup, i.ResourceConsumption, i.BaseQuantity], + 1457835157: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 681481545: (i) => [i.Contents], + 3256556792: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], + 3849074793: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], + 360485395: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.EnergySequence, i.UserDefinedEnergySequence, i.ElectricCurrentType, i.InputVoltage, i.InputFrequency, i.FullLoadCurrent, i.MinimumCircuitCurrent, i.MaximumPowerInput, i.RatedPowerInput, i.InputPhase], + 1758889154: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 4123344466: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.AssemblyPlace, i.PredefinedType], + 1623761950: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 2590856083: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], + 1704287377: (i) => [i.Position, i.SemiAxis1, i.SemiAxis2], + 2107101300: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], + 1962604670: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 3272907226: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType], + 3174744832: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 3390157468: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 807026263: (i) => [i.Outer], + 3737207727: (i) => [i.Outer, i.Voids], + 647756555: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 2489546625: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], + 2827207264: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 2143335405: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 1287392070: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 3907093117: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], + 3198132628: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], + 3815607619: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1482959167: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], + 1834744321: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], + 1339347760: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], + 2297155007: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], + 3009222698: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], + 263784265: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 814719939: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType], + 200128114: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 3009204131: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.UAxes, i.VAxes, i.WAxes], + 2706460486: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType], + 1251058090: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1806887404: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 2391368822: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.InventoryType, i.Jurisdiction, i.ResponsiblePersons, i.LastUpdateDate, i.CurrentValue, i.OriginalValue], + 4288270099: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 3827777499: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ResourceIdentifier, i.ResourceGroup, i.ResourceConsumption, i.BaseQuantity, i.SkillSet], + 1051575348: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1161773419: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 2506943328: (i) => [i.Contents], + 377706215: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.NominalDiameter, i.NominalLength], + 2108223431: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], + 3181161470: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 977012517: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1916936684: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.TaskId, i.Status, i.WorkMethod, i.IsMilestone, i.Priority, i.MoveFrom, i.MoveTo, i.PunchList], + 4143007308: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.TheActor, i.PredefinedType], + 3588315303: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 3425660407: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.TaskId, i.Status, i.WorkMethod, i.IsMilestone, i.Priority, i.ActionID], + 2837617999: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 2382730787: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.LifeCyclePhase], + 3327091369: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.PermitID], + 804291784: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 4231323485: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 4017108033: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 3724593414: (i) => [i.Points], + 3740093272: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation], + 2744685151: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ProcedureID, i.ProcedureType, i.UserDefinedProcedureType], + 2904328755: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ID, i.PredefinedType, i.Status], + 3642467123: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Records, i.PredefinedType], + 3651124850: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 1842657554: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 2250791053: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 3248260540: (i) => [i.Contents], + 2893384427: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 2324767716: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 160246688: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingObject, i.RelatedObjects], + 2863920197: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingControl, i.TimeForTask], + 1768891740: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 3517283431: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ActualStart, i.EarlyStart, i.LateStart, i.ScheduleStart, i.ActualFinish, i.EarlyFinish, i.LateFinish, i.ScheduleFinish, i.ScheduleDuration, i.ActualDuration, i.RemainingTime, i.FreeFloat, i.TotalFloat, i.IsCritical, i.StatusTime, i.StartFloat, i.FinishFloat, i.Completion], + 4105383287: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ServiceLifeType, i.ServiceLifeDuration], + 4097777520: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.RefLatitude, i.RefLongitude, i.RefElevation, i.LandTitleNumber, i.SiteAddress], + 2533589738: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 3856911033: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.InteriorOrExteriorSpace, i.ElevationWithFlooring], + 1305183839: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 652456506: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.SpaceProgramIdentifier, i.MaxRequiredArea, i.MinRequiredArea, i.RequestedLocation, i.StandardRequiredArea], + 3812236995: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 3112655638: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1039846685: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 682877961: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.DestabilizingLoad, i.CausedBy], + 1179482911: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedCondition], + 4243806635: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedCondition], + 214636428: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.PredefinedType], + 2445595289: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.PredefinedType], + 1807405624: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.DestabilizingLoad, i.CausedBy, i.ProjectedOrTrue], + 1721250024: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.DestabilizingLoad, i.CausedBy, i.ProjectedOrTrue, i.VaryingAppliedLoadLocation, i.SubsequentAppliedLoads], + 1252848954: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.PredefinedType, i.ActionType, i.ActionSource, i.Coefficient, i.Purpose], + 1621171031: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.DestabilizingLoad, i.CausedBy, i.ProjectedOrTrue], + 3987759626: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.DestabilizingLoad, i.CausedBy, i.ProjectedOrTrue, i.VaryingAppliedLoadLocation, i.SubsequentAppliedLoads], + 2082059205: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.DestabilizingLoad, i.CausedBy], + 734778138: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedCondition], + 1235345126: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal], + 2986769608: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.TheoryType, i.ResultForLoadGroup, i.IsLinear], + 1975003073: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedCondition], + 148013059: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ResourceIdentifier, i.ResourceGroup, i.ResourceConsumption, i.BaseQuantity, i.SubContractor, i.JobDescription], + 2315554128: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 2254336722: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType], + 5716631: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1637806684: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ApplicableDates, i.TimeSeriesScheduleType, i.TimeSeries], + 1692211062: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1620046519: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.OperationType, i.CapacityByWeight, i.CapacityByNumber], + 3593883385: (i) => [i.BasisCurve, i.Trim1, i.Trim2, i.SenseAgreement, i.MasterRepresentation], + 1600972822: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1911125066: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 728799441: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 2769231204: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 1898987631: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1133259667: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1028945134: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identifier, i.CreationDate, i.Creators, i.Purpose, i.Duration, i.TotalFloat, i.StartTime, i.FinishTime, i.WorkControlType, i.UserDefinedControlType], + 4218914973: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identifier, i.CreationDate, i.Creators, i.Purpose, i.Duration, i.TotalFloat, i.StartTime, i.FinishTime, i.WorkControlType, i.UserDefinedControlType], + 3342526732: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identifier, i.CreationDate, i.Creators, i.Purpose, i.Duration, i.TotalFloat, i.StartTime, i.FinishTime, i.WorkControlType, i.UserDefinedControlType], + 1033361043: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType], + 1213861670: (i) => [i.Segments, i.SelfIntersect], + 3821786052: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.RequestID], + 1411407467: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 3352864051: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1871374353: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 2470393545: (i) => [i.Contents], + 3460190687: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.AssetID, i.OriginalValue, i.CurrentValue, i.TotalReplacementCost, i.Owner, i.User, i.ResponsiblePerson, i.IncorporationDate, i.DepreciatedValue], + 1967976161: (i) => [i.Degree, i.ControlPointsList, i.CurveForm, i.ClosedCurve, i.SelfIntersect], + 819618141: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1916977116: (i) => [i.Degree, i.ControlPointsList, i.CurveForm, i.ClosedCurve, i.SelfIntersect], + 231477066: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 3299480353: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 52481810: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 2979338954: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 1095909175: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.CompositionType], + 1909888760: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 395041908: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 3293546465: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1285652485: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 2951183804: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 2611217952: (i) => [i.Position, i.Radius], + 2301859152: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 843113511: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 3850581409: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 2816379211: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 2188551683: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType], + 1163958913: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Criterion, i.CriterionDateTime], + 3898045240: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ResourceIdentifier, i.ResourceGroup, i.ResourceConsumption, i.BaseQuantity], + 1060000209: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ResourceIdentifier, i.ResourceGroup, i.ResourceConsumption, i.BaseQuantity, i.Suppliers, i.UsageRatio], + 488727124: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ResourceIdentifier, i.ResourceGroup, i.ResourceConsumption, i.BaseQuantity], + 335055490: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 2954562838: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1973544240: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 3495092785: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 3961806047: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 4147604152: (i) => [i.Contents], + 1335981549: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 2635815018: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], + 1599208980: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 2063403501: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], + 1945004755: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 3040386961: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 3041715199: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.FlowDirection], + 395920057: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.OverallHeight, i.OverallWidth], + 869906466: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 3760055223: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 2030761528: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 855621170: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.FeatureLength], + 663422040: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 3277789161: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1534661035: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1365060375: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1217240411: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 712377611: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1634875225: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType], + 857184966: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 1658829314: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 346874300: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1810631287: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 4222183408: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 2058353004: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 4278956645: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 4037862832: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 3132237377: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 987401354: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 707683696: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 2223149337: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 3508470533: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 900683007: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 1073191201: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 1687234759: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType, i.ConstructionType], + 3171933400: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 2262370178: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 3024970846: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.ShapeType], + 3283111854: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 3055160366: (i) => [i.Degree, i.ControlPointsList, i.CurveForm, i.ClosedCurve, i.SelfIntersect, i.WeightsData], + 3027567501: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade], + 2320036040: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade, i.MeshLength, i.MeshWidth, i.LongitudinalBarNominalDiameter, i.TransverseBarNominalDiameter, i.LongitudinalBarCrossSectionArea, i.TransverseBarCrossSectionArea, i.LongitudinalBarSpacing, i.TransverseBarSpacing], + 2016517767: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.ShapeType], + 1376911519: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.FeatureLength, i.Radius], + 1783015770: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1529196076: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 331165859: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.ShapeType], + 4252922144: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.NumberOfRiser, i.NumberOfTreads, i.RiserHeight, i.TreadLength], + 2515109513: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.PredefinedType, i.OrientationOf2DPlane, i.LoadedBy, i.HasResults], + 3824725483: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade, i.PredefinedType, i.NominalDiameter, i.CrossSectionArea, i.TensionForce, i.PreStress, i.FrictionCoefficient, i.AnchorageSlip, i.MinCurvatureRadius], + 2347447852: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade], + 3313531582: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 2391406946: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 3512223829: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 3304561284: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.OverallHeight, i.OverallWidth], + 2874132201: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 3001207471: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 753842376: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 2454782716: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.FeatureLength, i.Width, i.Height], + 578613899: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1052013943: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 1062813311: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.ControlElementId], + 3700593921: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.DistributionPointFunction, i.UserDefinedFunction], + 979691226: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade, i.NominalDiameter, i.CrossSectionArea, i.BarLength, i.BarRole, i.BarSurface] +}; +TypeInitialisers[1] = { + 3699917729: (v) => new IFC2X3$1.IfcAbsorbedDoseMeasure(v), + 4182062534: (v) => new IFC2X3$1.IfcAccelerationMeasure(v), + 360377573: (v) => new IFC2X3$1.IfcAmountOfSubstanceMeasure(v), + 632304761: (v) => new IFC2X3$1.IfcAngularVelocityMeasure(v), + 2650437152: (v) => new IFC2X3$1.IfcAreaMeasure(v), + 2735952531: (v) => new IFC2X3$1.IfcBoolean(v), + 1867003952: (v) => new IFC2X3$1.IfcBoxAlignment(v), + 2991860651: (v) => new IFC2X3$1.IfcComplexNumber(v.map((x) => x.value)), + 3812528620: (v) => new IFC2X3$1.IfcCompoundPlaneAngleMeasure(v.map((x) => x.value)), + 3238673880: (v) => new IFC2X3$1.IfcContextDependentMeasure(v), + 1778710042: (v) => new IFC2X3$1.IfcCountMeasure(v), + 94842927: (v) => new IFC2X3$1.IfcCurvatureMeasure(v), + 86635668: (v) => new IFC2X3$1.IfcDayInMonthNumber(v), + 300323983: (v) => new IFC2X3$1.IfcDaylightSavingHour(v), + 1514641115: (v) => new IFC2X3$1.IfcDescriptiveMeasure(v), + 4134073009: (v) => new IFC2X3$1.IfcDimensionCount(v), + 524656162: (v) => new IFC2X3$1.IfcDoseEquivalentMeasure(v), + 69416015: (v) => new IFC2X3$1.IfcDynamicViscosityMeasure(v), + 1827137117: (v) => new IFC2X3$1.IfcElectricCapacitanceMeasure(v), + 3818826038: (v) => new IFC2X3$1.IfcElectricChargeMeasure(v), + 2093906313: (v) => new IFC2X3$1.IfcElectricConductanceMeasure(v), + 3790457270: (v) => new IFC2X3$1.IfcElectricCurrentMeasure(v), + 2951915441: (v) => new IFC2X3$1.IfcElectricResistanceMeasure(v), + 2506197118: (v) => new IFC2X3$1.IfcElectricVoltageMeasure(v), + 2078135608: (v) => new IFC2X3$1.IfcEnergyMeasure(v), + 1102727119: (v) => new IFC2X3$1.IfcFontStyle(v), + 2715512545: (v) => new IFC2X3$1.IfcFontVariant(v), + 2590844177: (v) => new IFC2X3$1.IfcFontWeight(v), + 1361398929: (v) => new IFC2X3$1.IfcForceMeasure(v), + 3044325142: (v) => new IFC2X3$1.IfcFrequencyMeasure(v), + 3064340077: (v) => new IFC2X3$1.IfcGloballyUniqueId(v), + 3113092358: (v) => new IFC2X3$1.IfcHeatFluxDensityMeasure(v), + 1158859006: (v) => new IFC2X3$1.IfcHeatingValueMeasure(v), + 2589826445: (v) => new IFC2X3$1.IfcHourInDay(v), + 983778844: (v) => new IFC2X3$1.IfcIdentifier(v), + 3358199106: (v) => new IFC2X3$1.IfcIlluminanceMeasure(v), + 2679005408: (v) => new IFC2X3$1.IfcInductanceMeasure(v), + 1939436016: (v) => new IFC2X3$1.IfcInteger(v), + 3809634241: (v) => new IFC2X3$1.IfcIntegerCountRateMeasure(v), + 3686016028: (v) => new IFC2X3$1.IfcIonConcentrationMeasure(v), + 3192672207: (v) => new IFC2X3$1.IfcIsothermalMoistureCapacityMeasure(v), + 2054016361: (v) => new IFC2X3$1.IfcKinematicViscosityMeasure(v), + 3258342251: (v) => new IFC2X3$1.IfcLabel(v), + 1243674935: (v) => new IFC2X3$1.IfcLengthMeasure(v), + 191860431: (v) => new IFC2X3$1.IfcLinearForceMeasure(v), + 2128979029: (v) => new IFC2X3$1.IfcLinearMomentMeasure(v), + 1307019551: (v) => new IFC2X3$1.IfcLinearStiffnessMeasure(v), + 3086160713: (v) => new IFC2X3$1.IfcLinearVelocityMeasure(v), + 503418787: (v) => new IFC2X3$1.IfcLogical(v), + 2095003142: (v) => new IFC2X3$1.IfcLuminousFluxMeasure(v), + 2755797622: (v) => new IFC2X3$1.IfcLuminousIntensityDistributionMeasure(v), + 151039812: (v) => new IFC2X3$1.IfcLuminousIntensityMeasure(v), + 286949696: (v) => new IFC2X3$1.IfcMagneticFluxDensityMeasure(v), + 2486716878: (v) => new IFC2X3$1.IfcMagneticFluxMeasure(v), + 1477762836: (v) => new IFC2X3$1.IfcMassDensityMeasure(v), + 4017473158: (v) => new IFC2X3$1.IfcMassFlowRateMeasure(v), + 3124614049: (v) => new IFC2X3$1.IfcMassMeasure(v), + 3531705166: (v) => new IFC2X3$1.IfcMassPerLengthMeasure(v), + 102610177: (v) => new IFC2X3$1.IfcMinuteInHour(v), + 3341486342: (v) => new IFC2X3$1.IfcModulusOfElasticityMeasure(v), + 2173214787: (v) => new IFC2X3$1.IfcModulusOfLinearSubgradeReactionMeasure(v), + 1052454078: (v) => new IFC2X3$1.IfcModulusOfRotationalSubgradeReactionMeasure(v), + 1753493141: (v) => new IFC2X3$1.IfcModulusOfSubgradeReactionMeasure(v), + 3177669450: (v) => new IFC2X3$1.IfcMoistureDiffusivityMeasure(v), + 1648970520: (v) => new IFC2X3$1.IfcMolecularWeightMeasure(v), + 3114022597: (v) => new IFC2X3$1.IfcMomentOfInertiaMeasure(v), + 2615040989: (v) => new IFC2X3$1.IfcMonetaryMeasure(v), + 765770214: (v) => new IFC2X3$1.IfcMonthInYearNumber(v), + 2095195183: (v) => new IFC2X3$1.IfcNormalisedRatioMeasure(v), + 2395907400: (v) => new IFC2X3$1.IfcNumericMeasure(v), + 929793134: (v) => new IFC2X3$1.IfcPHMeasure(v), + 2260317790: (v) => new IFC2X3$1.IfcParameterValue(v), + 2642773653: (v) => new IFC2X3$1.IfcPlanarForceMeasure(v), + 4042175685: (v) => new IFC2X3$1.IfcPlaneAngleMeasure(v), + 2815919920: (v) => new IFC2X3$1.IfcPositiveLengthMeasure(v), + 3054510233: (v) => new IFC2X3$1.IfcPositivePlaneAngleMeasure(v), + 1245737093: (v) => new IFC2X3$1.IfcPositiveRatioMeasure(v), + 1364037233: (v) => new IFC2X3$1.IfcPowerMeasure(v), + 2169031380: (v) => new IFC2X3$1.IfcPresentableText(v), + 3665567075: (v) => new IFC2X3$1.IfcPressureMeasure(v), + 3972513137: (v) => new IFC2X3$1.IfcRadioActivityMeasure(v), + 96294661: (v) => new IFC2X3$1.IfcRatioMeasure(v), + 200335297: (v) => new IFC2X3$1.IfcReal(v), + 2133746277: (v) => new IFC2X3$1.IfcRotationalFrequencyMeasure(v), + 1755127002: (v) => new IFC2X3$1.IfcRotationalMassMeasure(v), + 3211557302: (v) => new IFC2X3$1.IfcRotationalStiffnessMeasure(v), + 2766185779: (v) => new IFC2X3$1.IfcSecondInMinute(v), + 3467162246: (v) => new IFC2X3$1.IfcSectionModulusMeasure(v), + 2190458107: (v) => new IFC2X3$1.IfcSectionalAreaIntegralMeasure(v), + 408310005: (v) => new IFC2X3$1.IfcShearModulusMeasure(v), + 3471399674: (v) => new IFC2X3$1.IfcSolidAngleMeasure(v), + 846465480: (v) => new IFC2X3$1.IfcSoundPowerMeasure(v), + 993287707: (v) => new IFC2X3$1.IfcSoundPressureMeasure(v), + 3477203348: (v) => new IFC2X3$1.IfcSpecificHeatCapacityMeasure(v), + 2757832317: (v) => new IFC2X3$1.IfcSpecularExponent(v), + 361837227: (v) => new IFC2X3$1.IfcSpecularRoughness(v), + 58845555: (v) => new IFC2X3$1.IfcTemperatureGradientMeasure(v), + 2801250643: (v) => new IFC2X3$1.IfcText(v), + 1460886941: (v) => new IFC2X3$1.IfcTextAlignment(v), + 3490877962: (v) => new IFC2X3$1.IfcTextDecoration(v), + 603696268: (v) => new IFC2X3$1.IfcTextFontName(v), + 296282323: (v) => new IFC2X3$1.IfcTextTransformation(v), + 232962298: (v) => new IFC2X3$1.IfcThermalAdmittanceMeasure(v), + 2645777649: (v) => new IFC2X3$1.IfcThermalConductivityMeasure(v), + 2281867870: (v) => new IFC2X3$1.IfcThermalExpansionCoefficientMeasure(v), + 857959152: (v) => new IFC2X3$1.IfcThermalResistanceMeasure(v), + 2016195849: (v) => new IFC2X3$1.IfcThermalTransmittanceMeasure(v), + 743184107: (v) => new IFC2X3$1.IfcThermodynamicTemperatureMeasure(v), + 2726807636: (v) => new IFC2X3$1.IfcTimeMeasure(v), + 2591213694: (v) => new IFC2X3$1.IfcTimeStamp(v), + 1278329552: (v) => new IFC2X3$1.IfcTorqueMeasure(v), + 3345633955: (v) => new IFC2X3$1.IfcVaporPermeabilityMeasure(v), + 3458127941: (v) => new IFC2X3$1.IfcVolumeMeasure(v), + 2593997549: (v) => new IFC2X3$1.IfcVolumetricFlowRateMeasure(v), + 51269191: (v) => new IFC2X3$1.IfcWarpingConstantMeasure(v), + 1718600412: (v) => new IFC2X3$1.IfcWarpingMomentMeasure(v), + 4065007721: (v) => new IFC2X3$1.IfcYearNumber(v) +}; +var IFC2X3$1; +(function(IFC2X32) { + class IfcAbsorbedDoseMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcAbsorbedDoseMeasure = IfcAbsorbedDoseMeasure; + class IfcAccelerationMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcAccelerationMeasure = IfcAccelerationMeasure; + class IfcAmountOfSubstanceMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcAmountOfSubstanceMeasure = IfcAmountOfSubstanceMeasure; + class IfcAngularVelocityMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcAngularVelocityMeasure = IfcAngularVelocityMeasure; + class IfcAreaMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcAreaMeasure = IfcAreaMeasure; + class IfcBoolean { + constructor(v) { + this.type = 3; + this.value = v === null ? v : v == "T" ? true : false; + } + } + IFC2X32.IfcBoolean = IfcBoolean; + class IfcBoxAlignment { + constructor(value) { + this.value = value; + this.type = 1; + } + } + IFC2X32.IfcBoxAlignment = IfcBoxAlignment; + class IfcComplexNumber { + constructor(value) { + this.value = value; + this.type = 4; + } + } + IFC2X32.IfcComplexNumber = IfcComplexNumber; + class IfcCompoundPlaneAngleMeasure { + constructor(value) { + this.value = value; + this.type = 10; + } + } + IFC2X32.IfcCompoundPlaneAngleMeasure = IfcCompoundPlaneAngleMeasure; + class IfcContextDependentMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcContextDependentMeasure = IfcContextDependentMeasure; + class IfcCountMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcCountMeasure = IfcCountMeasure; + class IfcCurvatureMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcCurvatureMeasure = IfcCurvatureMeasure; + class IfcDayInMonthNumber { + constructor(v) { + this.type = 10; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcDayInMonthNumber = IfcDayInMonthNumber; + class IfcDaylightSavingHour { + constructor(v) { + this.type = 10; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcDaylightSavingHour = IfcDaylightSavingHour; + class IfcDescriptiveMeasure { + constructor(value) { + this.value = value; + this.type = 1; + } + } + IFC2X32.IfcDescriptiveMeasure = IfcDescriptiveMeasure; + class IfcDimensionCount { + constructor(v) { + this.type = 10; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcDimensionCount = IfcDimensionCount; + class IfcDoseEquivalentMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcDoseEquivalentMeasure = IfcDoseEquivalentMeasure; + class IfcDynamicViscosityMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcDynamicViscosityMeasure = IfcDynamicViscosityMeasure; + class IfcElectricCapacitanceMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcElectricCapacitanceMeasure = IfcElectricCapacitanceMeasure; + class IfcElectricChargeMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcElectricChargeMeasure = IfcElectricChargeMeasure; + class IfcElectricConductanceMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcElectricConductanceMeasure = IfcElectricConductanceMeasure; + class IfcElectricCurrentMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcElectricCurrentMeasure = IfcElectricCurrentMeasure; + class IfcElectricResistanceMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcElectricResistanceMeasure = IfcElectricResistanceMeasure; + class IfcElectricVoltageMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcElectricVoltageMeasure = IfcElectricVoltageMeasure; + class IfcEnergyMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcEnergyMeasure = IfcEnergyMeasure; + class IfcFontStyle { + constructor(value) { + this.value = value; + this.type = 1; + } + } + IFC2X32.IfcFontStyle = IfcFontStyle; + class IfcFontVariant { + constructor(value) { + this.value = value; + this.type = 1; + } + } + IFC2X32.IfcFontVariant = IfcFontVariant; + class IfcFontWeight { + constructor(value) { + this.value = value; + this.type = 1; + } + } + IFC2X32.IfcFontWeight = IfcFontWeight; + class IfcForceMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcForceMeasure = IfcForceMeasure; + class IfcFrequencyMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcFrequencyMeasure = IfcFrequencyMeasure; + class IfcGloballyUniqueId { + constructor(value) { + this.value = value; + this.type = 1; + } + } + IFC2X32.IfcGloballyUniqueId = IfcGloballyUniqueId; + class IfcHeatFluxDensityMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcHeatFluxDensityMeasure = IfcHeatFluxDensityMeasure; + class IfcHeatingValueMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcHeatingValueMeasure = IfcHeatingValueMeasure; + class IfcHourInDay { + constructor(v) { + this.type = 10; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcHourInDay = IfcHourInDay; + class IfcIdentifier { + constructor(value) { + this.value = value; + this.type = 1; + } + } + IFC2X32.IfcIdentifier = IfcIdentifier; + class IfcIlluminanceMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcIlluminanceMeasure = IfcIlluminanceMeasure; + class IfcInductanceMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcInductanceMeasure = IfcInductanceMeasure; + class IfcInteger { + constructor(v) { + this.type = 10; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcInteger = IfcInteger; + class IfcIntegerCountRateMeasure { + constructor(v) { + this.type = 10; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcIntegerCountRateMeasure = IfcIntegerCountRateMeasure; + class IfcIonConcentrationMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcIonConcentrationMeasure = IfcIonConcentrationMeasure; + class IfcIsothermalMoistureCapacityMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcIsothermalMoistureCapacityMeasure = IfcIsothermalMoistureCapacityMeasure; + class IfcKinematicViscosityMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcKinematicViscosityMeasure = IfcKinematicViscosityMeasure; + class IfcLabel { + constructor(value) { + this.value = value; + this.type = 1; + } + } + IFC2X32.IfcLabel = IfcLabel; + class IfcLengthMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcLengthMeasure = IfcLengthMeasure; + class IfcLinearForceMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcLinearForceMeasure = IfcLinearForceMeasure; + class IfcLinearMomentMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcLinearMomentMeasure = IfcLinearMomentMeasure; + class IfcLinearStiffnessMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcLinearStiffnessMeasure = IfcLinearStiffnessMeasure; + class IfcLinearVelocityMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcLinearVelocityMeasure = IfcLinearVelocityMeasure; + class IfcLogical { + constructor(v) { + this.type = 3; + this.value = v === null ? v : v == "T" ? 1 : v == "F" ? 0 : 2; + } + } + IFC2X32.IfcLogical = IfcLogical; + class IfcLuminousFluxMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcLuminousFluxMeasure = IfcLuminousFluxMeasure; + class IfcLuminousIntensityDistributionMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcLuminousIntensityDistributionMeasure = IfcLuminousIntensityDistributionMeasure; + class IfcLuminousIntensityMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcLuminousIntensityMeasure = IfcLuminousIntensityMeasure; + class IfcMagneticFluxDensityMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcMagneticFluxDensityMeasure = IfcMagneticFluxDensityMeasure; + class IfcMagneticFluxMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcMagneticFluxMeasure = IfcMagneticFluxMeasure; + class IfcMassDensityMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcMassDensityMeasure = IfcMassDensityMeasure; + class IfcMassFlowRateMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcMassFlowRateMeasure = IfcMassFlowRateMeasure; + class IfcMassMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcMassMeasure = IfcMassMeasure; + class IfcMassPerLengthMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcMassPerLengthMeasure = IfcMassPerLengthMeasure; + class IfcMinuteInHour { + constructor(v) { + this.type = 10; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcMinuteInHour = IfcMinuteInHour; + class IfcModulusOfElasticityMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcModulusOfElasticityMeasure = IfcModulusOfElasticityMeasure; + class IfcModulusOfLinearSubgradeReactionMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcModulusOfLinearSubgradeReactionMeasure = IfcModulusOfLinearSubgradeReactionMeasure; + class IfcModulusOfRotationalSubgradeReactionMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcModulusOfRotationalSubgradeReactionMeasure = IfcModulusOfRotationalSubgradeReactionMeasure; + class IfcModulusOfSubgradeReactionMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcModulusOfSubgradeReactionMeasure = IfcModulusOfSubgradeReactionMeasure; + class IfcMoistureDiffusivityMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcMoistureDiffusivityMeasure = IfcMoistureDiffusivityMeasure; + class IfcMolecularWeightMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcMolecularWeightMeasure = IfcMolecularWeightMeasure; + class IfcMomentOfInertiaMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcMomentOfInertiaMeasure = IfcMomentOfInertiaMeasure; + class IfcMonetaryMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcMonetaryMeasure = IfcMonetaryMeasure; + class IfcMonthInYearNumber { + constructor(v) { + this.type = 10; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcMonthInYearNumber = IfcMonthInYearNumber; + class IfcNormalisedRatioMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcNormalisedRatioMeasure = IfcNormalisedRatioMeasure; + class IfcNumericMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcNumericMeasure = IfcNumericMeasure; + class IfcPHMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcPHMeasure = IfcPHMeasure; + class IfcParameterValue { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcParameterValue = IfcParameterValue; + class IfcPlanarForceMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcPlanarForceMeasure = IfcPlanarForceMeasure; + class IfcPlaneAngleMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcPlaneAngleMeasure = IfcPlaneAngleMeasure; + class IfcPositiveLengthMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcPositiveLengthMeasure = IfcPositiveLengthMeasure; + class IfcPositivePlaneAngleMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcPositivePlaneAngleMeasure = IfcPositivePlaneAngleMeasure; + class IfcPositiveRatioMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcPositiveRatioMeasure = IfcPositiveRatioMeasure; + class IfcPowerMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcPowerMeasure = IfcPowerMeasure; + class IfcPresentableText { + constructor(value) { + this.value = value; + this.type = 1; + } + } + IFC2X32.IfcPresentableText = IfcPresentableText; + class IfcPressureMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcPressureMeasure = IfcPressureMeasure; + class IfcRadioActivityMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcRadioActivityMeasure = IfcRadioActivityMeasure; + class IfcRatioMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcRatioMeasure = IfcRatioMeasure; + class IfcReal { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcReal = IfcReal; + class IfcRotationalFrequencyMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcRotationalFrequencyMeasure = IfcRotationalFrequencyMeasure; + class IfcRotationalMassMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcRotationalMassMeasure = IfcRotationalMassMeasure; + class IfcRotationalStiffnessMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcRotationalStiffnessMeasure = IfcRotationalStiffnessMeasure; + class IfcSecondInMinute { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcSecondInMinute = IfcSecondInMinute; + class IfcSectionModulusMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcSectionModulusMeasure = IfcSectionModulusMeasure; + class IfcSectionalAreaIntegralMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcSectionalAreaIntegralMeasure = IfcSectionalAreaIntegralMeasure; + class IfcShearModulusMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcShearModulusMeasure = IfcShearModulusMeasure; + class IfcSolidAngleMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcSolidAngleMeasure = IfcSolidAngleMeasure; + class IfcSoundPowerMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcSoundPowerMeasure = IfcSoundPowerMeasure; + class IfcSoundPressureMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcSoundPressureMeasure = IfcSoundPressureMeasure; + class IfcSpecificHeatCapacityMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcSpecificHeatCapacityMeasure = IfcSpecificHeatCapacityMeasure; + class IfcSpecularExponent { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcSpecularExponent = IfcSpecularExponent; + class IfcSpecularRoughness { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcSpecularRoughness = IfcSpecularRoughness; + class IfcTemperatureGradientMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcTemperatureGradientMeasure = IfcTemperatureGradientMeasure; + class IfcText { + constructor(value) { + this.value = value; + this.type = 1; + } + } + IFC2X32.IfcText = IfcText; + class IfcTextAlignment { + constructor(value) { + this.value = value; + this.type = 1; + } + } + IFC2X32.IfcTextAlignment = IfcTextAlignment; + class IfcTextDecoration { + constructor(value) { + this.value = value; + this.type = 1; + } + } + IFC2X32.IfcTextDecoration = IfcTextDecoration; + class IfcTextFontName { + constructor(value) { + this.value = value; + this.type = 1; + } + } + IFC2X32.IfcTextFontName = IfcTextFontName; + class IfcTextTransformation { + constructor(value) { + this.value = value; + this.type = 1; + } + } + IFC2X32.IfcTextTransformation = IfcTextTransformation; + class IfcThermalAdmittanceMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcThermalAdmittanceMeasure = IfcThermalAdmittanceMeasure; + class IfcThermalConductivityMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcThermalConductivityMeasure = IfcThermalConductivityMeasure; + class IfcThermalExpansionCoefficientMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcThermalExpansionCoefficientMeasure = IfcThermalExpansionCoefficientMeasure; + class IfcThermalResistanceMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcThermalResistanceMeasure = IfcThermalResistanceMeasure; + class IfcThermalTransmittanceMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcThermalTransmittanceMeasure = IfcThermalTransmittanceMeasure; + class IfcThermodynamicTemperatureMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcThermodynamicTemperatureMeasure = IfcThermodynamicTemperatureMeasure; + class IfcTimeMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcTimeMeasure = IfcTimeMeasure; + class IfcTimeStamp { + constructor(v) { + this.type = 10; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcTimeStamp = IfcTimeStamp; + class IfcTorqueMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcTorqueMeasure = IfcTorqueMeasure; + class IfcVaporPermeabilityMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcVaporPermeabilityMeasure = IfcVaporPermeabilityMeasure; + class IfcVolumeMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcVolumeMeasure = IfcVolumeMeasure; + class IfcVolumetricFlowRateMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcVolumetricFlowRateMeasure = IfcVolumetricFlowRateMeasure; + class IfcWarpingConstantMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcWarpingConstantMeasure = IfcWarpingConstantMeasure; + class IfcWarpingMomentMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcWarpingMomentMeasure = IfcWarpingMomentMeasure; + class IfcYearNumber { + constructor(v) { + this.type = 10; + this.value = v === null ? v : parseFloat(v); + } + } + IFC2X32.IfcYearNumber = IfcYearNumber; + class IfcActionSourceTypeEnum { + } + IfcActionSourceTypeEnum.DEAD_LOAD_G = { type: 3, value: "DEAD_LOAD_G" }; + IfcActionSourceTypeEnum.COMPLETION_G1 = { type: 3, value: "COMPLETION_G1" }; + IfcActionSourceTypeEnum.LIVE_LOAD_Q = { type: 3, value: "LIVE_LOAD_Q" }; + IfcActionSourceTypeEnum.SNOW_S = { type: 3, value: "SNOW_S" }; + IfcActionSourceTypeEnum.WIND_W = { type: 3, value: "WIND_W" }; + IfcActionSourceTypeEnum.PRESTRESSING_P = { type: 3, value: "PRESTRESSING_P" }; + IfcActionSourceTypeEnum.SETTLEMENT_U = { type: 3, value: "SETTLEMENT_U" }; + IfcActionSourceTypeEnum.TEMPERATURE_T = { type: 3, value: "TEMPERATURE_T" }; + IfcActionSourceTypeEnum.EARTHQUAKE_E = { type: 3, value: "EARTHQUAKE_E" }; + IfcActionSourceTypeEnum.FIRE = { type: 3, value: "FIRE" }; + IfcActionSourceTypeEnum.IMPULSE = { type: 3, value: "IMPULSE" }; + IfcActionSourceTypeEnum.IMPACT = { type: 3, value: "IMPACT" }; + IfcActionSourceTypeEnum.TRANSPORT = { type: 3, value: "TRANSPORT" }; + IfcActionSourceTypeEnum.ERECTION = { type: 3, value: "ERECTION" }; + IfcActionSourceTypeEnum.PROPPING = { type: 3, value: "PROPPING" }; + IfcActionSourceTypeEnum.SYSTEM_IMPERFECTION = { type: 3, value: "SYSTEM_IMPERFECTION" }; + IfcActionSourceTypeEnum.SHRINKAGE = { type: 3, value: "SHRINKAGE" }; + IfcActionSourceTypeEnum.CREEP = { type: 3, value: "CREEP" }; + IfcActionSourceTypeEnum.LACK_OF_FIT = { type: 3, value: "LACK_OF_FIT" }; + IfcActionSourceTypeEnum.BUOYANCY = { type: 3, value: "BUOYANCY" }; + IfcActionSourceTypeEnum.ICE = { type: 3, value: "ICE" }; + IfcActionSourceTypeEnum.CURRENT = { type: 3, value: "CURRENT" }; + IfcActionSourceTypeEnum.WAVE = { type: 3, value: "WAVE" }; + IfcActionSourceTypeEnum.RAIN = { type: 3, value: "RAIN" }; + IfcActionSourceTypeEnum.BRAKES = { type: 3, value: "BRAKES" }; + IfcActionSourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcActionSourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcActionSourceTypeEnum = IfcActionSourceTypeEnum; + class IfcActionTypeEnum { + } + IfcActionTypeEnum.PERMANENT_G = { type: 3, value: "PERMANENT_G" }; + IfcActionTypeEnum.VARIABLE_Q = { type: 3, value: "VARIABLE_Q" }; + IfcActionTypeEnum.EXTRAORDINARY_A = { type: 3, value: "EXTRAORDINARY_A" }; + IfcActionTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcActionTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcActionTypeEnum = IfcActionTypeEnum; + class IfcActuatorTypeEnum { + } + IfcActuatorTypeEnum.ELECTRICACTUATOR = { type: 3, value: "ELECTRICACTUATOR" }; + IfcActuatorTypeEnum.HANDOPERATEDACTUATOR = { type: 3, value: "HANDOPERATEDACTUATOR" }; + IfcActuatorTypeEnum.HYDRAULICACTUATOR = { type: 3, value: "HYDRAULICACTUATOR" }; + IfcActuatorTypeEnum.PNEUMATICACTUATOR = { type: 3, value: "PNEUMATICACTUATOR" }; + IfcActuatorTypeEnum.THERMOSTATICACTUATOR = { type: 3, value: "THERMOSTATICACTUATOR" }; + IfcActuatorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcActuatorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcActuatorTypeEnum = IfcActuatorTypeEnum; + class IfcAddressTypeEnum { + } + IfcAddressTypeEnum.OFFICE = { type: 3, value: "OFFICE" }; + IfcAddressTypeEnum.SITE = { type: 3, value: "SITE" }; + IfcAddressTypeEnum.HOME = { type: 3, value: "HOME" }; + IfcAddressTypeEnum.DISTRIBUTIONPOINT = { type: 3, value: "DISTRIBUTIONPOINT" }; + IfcAddressTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IFC2X32.IfcAddressTypeEnum = IfcAddressTypeEnum; + class IfcAheadOrBehind { + } + IfcAheadOrBehind.AHEAD = { type: 3, value: "AHEAD" }; + IfcAheadOrBehind.BEHIND = { type: 3, value: "BEHIND" }; + IFC2X32.IfcAheadOrBehind = IfcAheadOrBehind; + class IfcAirTerminalBoxTypeEnum { + } + IfcAirTerminalBoxTypeEnum.CONSTANTFLOW = { type: 3, value: "CONSTANTFLOW" }; + IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREDEPENDANT = { type: 3, value: "VARIABLEFLOWPRESSUREDEPENDANT" }; + IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREINDEPENDANT = { type: 3, value: "VARIABLEFLOWPRESSUREINDEPENDANT" }; + IfcAirTerminalBoxTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcAirTerminalBoxTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcAirTerminalBoxTypeEnum = IfcAirTerminalBoxTypeEnum; + class IfcAirTerminalTypeEnum { + } + IfcAirTerminalTypeEnum.GRILLE = { type: 3, value: "GRILLE" }; + IfcAirTerminalTypeEnum.REGISTER = { type: 3, value: "REGISTER" }; + IfcAirTerminalTypeEnum.DIFFUSER = { type: 3, value: "DIFFUSER" }; + IfcAirTerminalTypeEnum.EYEBALL = { type: 3, value: "EYEBALL" }; + IfcAirTerminalTypeEnum.IRIS = { type: 3, value: "IRIS" }; + IfcAirTerminalTypeEnum.LINEARGRILLE = { type: 3, value: "LINEARGRILLE" }; + IfcAirTerminalTypeEnum.LINEARDIFFUSER = { type: 3, value: "LINEARDIFFUSER" }; + IfcAirTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcAirTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcAirTerminalTypeEnum = IfcAirTerminalTypeEnum; + class IfcAirToAirHeatRecoveryTypeEnum { + } + IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECOUNTERFLOWEXCHANGER = { type: 3, value: "FIXEDPLATECOUNTERFLOWEXCHANGER" }; + IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECROSSFLOWEXCHANGER = { type: 3, value: "FIXEDPLATECROSSFLOWEXCHANGER" }; + IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATEPARALLELFLOWEXCHANGER = { type: 3, value: "FIXEDPLATEPARALLELFLOWEXCHANGER" }; + IfcAirToAirHeatRecoveryTypeEnum.ROTARYWHEEL = { type: 3, value: "ROTARYWHEEL" }; + IfcAirToAirHeatRecoveryTypeEnum.RUNAROUNDCOILLOOP = { type: 3, value: "RUNAROUNDCOILLOOP" }; + IfcAirToAirHeatRecoveryTypeEnum.HEATPIPE = { type: 3, value: "HEATPIPE" }; + IfcAirToAirHeatRecoveryTypeEnum.TWINTOWERENTHALPYRECOVERYLOOPS = { type: 3, value: "TWINTOWERENTHALPYRECOVERYLOOPS" }; + IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONSEALEDTUBEHEATEXCHANGERS = { type: 3, value: "THERMOSIPHONSEALEDTUBEHEATEXCHANGERS" }; + IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONCOILTYPEHEATEXCHANGERS = { type: 3, value: "THERMOSIPHONCOILTYPEHEATEXCHANGERS" }; + IfcAirToAirHeatRecoveryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcAirToAirHeatRecoveryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcAirToAirHeatRecoveryTypeEnum = IfcAirToAirHeatRecoveryTypeEnum; + class IfcAlarmTypeEnum { + } + IfcAlarmTypeEnum.BELL = { type: 3, value: "BELL" }; + IfcAlarmTypeEnum.BREAKGLASSBUTTON = { type: 3, value: "BREAKGLASSBUTTON" }; + IfcAlarmTypeEnum.LIGHT = { type: 3, value: "LIGHT" }; + IfcAlarmTypeEnum.MANUALPULLBOX = { type: 3, value: "MANUALPULLBOX" }; + IfcAlarmTypeEnum.SIREN = { type: 3, value: "SIREN" }; + IfcAlarmTypeEnum.WHISTLE = { type: 3, value: "WHISTLE" }; + IfcAlarmTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcAlarmTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcAlarmTypeEnum = IfcAlarmTypeEnum; + class IfcAnalysisModelTypeEnum { + } + IfcAnalysisModelTypeEnum.IN_PLANE_LOADING_2D = { type: 3, value: "IN_PLANE_LOADING_2D" }; + IfcAnalysisModelTypeEnum.OUT_PLANE_LOADING_2D = { type: 3, value: "OUT_PLANE_LOADING_2D" }; + IfcAnalysisModelTypeEnum.LOADING_3D = { type: 3, value: "LOADING_3D" }; + IfcAnalysisModelTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcAnalysisModelTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcAnalysisModelTypeEnum = IfcAnalysisModelTypeEnum; + class IfcAnalysisTheoryTypeEnum { + } + IfcAnalysisTheoryTypeEnum.FIRST_ORDER_THEORY = { type: 3, value: "FIRST_ORDER_THEORY" }; + IfcAnalysisTheoryTypeEnum.SECOND_ORDER_THEORY = { type: 3, value: "SECOND_ORDER_THEORY" }; + IfcAnalysisTheoryTypeEnum.THIRD_ORDER_THEORY = { type: 3, value: "THIRD_ORDER_THEORY" }; + IfcAnalysisTheoryTypeEnum.FULL_NONLINEAR_THEORY = { type: 3, value: "FULL_NONLINEAR_THEORY" }; + IfcAnalysisTheoryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcAnalysisTheoryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcAnalysisTheoryTypeEnum = IfcAnalysisTheoryTypeEnum; + class IfcArithmeticOperatorEnum { + } + IfcArithmeticOperatorEnum.ADD = { type: 3, value: "ADD" }; + IfcArithmeticOperatorEnum.DIVIDE = { type: 3, value: "DIVIDE" }; + IfcArithmeticOperatorEnum.MULTIPLY = { type: 3, value: "MULTIPLY" }; + IfcArithmeticOperatorEnum.SUBTRACT = { type: 3, value: "SUBTRACT" }; + IFC2X32.IfcArithmeticOperatorEnum = IfcArithmeticOperatorEnum; + class IfcAssemblyPlaceEnum { + } + IfcAssemblyPlaceEnum.SITE = { type: 3, value: "SITE" }; + IfcAssemblyPlaceEnum.FACTORY = { type: 3, value: "FACTORY" }; + IfcAssemblyPlaceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcAssemblyPlaceEnum = IfcAssemblyPlaceEnum; + class IfcBSplineCurveForm { + } + IfcBSplineCurveForm.POLYLINE_FORM = { type: 3, value: "POLYLINE_FORM" }; + IfcBSplineCurveForm.CIRCULAR_ARC = { type: 3, value: "CIRCULAR_ARC" }; + IfcBSplineCurveForm.ELLIPTIC_ARC = { type: 3, value: "ELLIPTIC_ARC" }; + IfcBSplineCurveForm.PARABOLIC_ARC = { type: 3, value: "PARABOLIC_ARC" }; + IfcBSplineCurveForm.HYPERBOLIC_ARC = { type: 3, value: "HYPERBOLIC_ARC" }; + IfcBSplineCurveForm.UNSPECIFIED = { type: 3, value: "UNSPECIFIED" }; + IFC2X32.IfcBSplineCurveForm = IfcBSplineCurveForm; + class IfcBeamTypeEnum { + } + IfcBeamTypeEnum.BEAM = { type: 3, value: "BEAM" }; + IfcBeamTypeEnum.JOIST = { type: 3, value: "JOIST" }; + IfcBeamTypeEnum.LINTEL = { type: 3, value: "LINTEL" }; + IfcBeamTypeEnum.T_BEAM = { type: 3, value: "T_BEAM" }; + IfcBeamTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcBeamTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcBeamTypeEnum = IfcBeamTypeEnum; + class IfcBenchmarkEnum { + } + IfcBenchmarkEnum.GREATERTHAN = { type: 3, value: "GREATERTHAN" }; + IfcBenchmarkEnum.GREATERTHANOREQUALTO = { type: 3, value: "GREATERTHANOREQUALTO" }; + IfcBenchmarkEnum.LESSTHAN = { type: 3, value: "LESSTHAN" }; + IfcBenchmarkEnum.LESSTHANOREQUALTO = { type: 3, value: "LESSTHANOREQUALTO" }; + IfcBenchmarkEnum.EQUALTO = { type: 3, value: "EQUALTO" }; + IfcBenchmarkEnum.NOTEQUALTO = { type: 3, value: "NOTEQUALTO" }; + IFC2X32.IfcBenchmarkEnum = IfcBenchmarkEnum; + class IfcBoilerTypeEnum { + } + IfcBoilerTypeEnum.WATER = { type: 3, value: "WATER" }; + IfcBoilerTypeEnum.STEAM = { type: 3, value: "STEAM" }; + IfcBoilerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcBoilerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcBoilerTypeEnum = IfcBoilerTypeEnum; + class IfcBooleanOperator { + } + IfcBooleanOperator.UNION = { type: 3, value: "UNION" }; + IfcBooleanOperator.INTERSECTION = { type: 3, value: "INTERSECTION" }; + IfcBooleanOperator.DIFFERENCE = { type: 3, value: "DIFFERENCE" }; + IFC2X32.IfcBooleanOperator = IfcBooleanOperator; + class IfcBuildingElementProxyTypeEnum { + } + IfcBuildingElementProxyTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcBuildingElementProxyTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcBuildingElementProxyTypeEnum = IfcBuildingElementProxyTypeEnum; + class IfcCableCarrierFittingTypeEnum { + } + IfcCableCarrierFittingTypeEnum.BEND = { type: 3, value: "BEND" }; + IfcCableCarrierFittingTypeEnum.CROSS = { type: 3, value: "CROSS" }; + IfcCableCarrierFittingTypeEnum.REDUCER = { type: 3, value: "REDUCER" }; + IfcCableCarrierFittingTypeEnum.TEE = { type: 3, value: "TEE" }; + IfcCableCarrierFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCableCarrierFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcCableCarrierFittingTypeEnum = IfcCableCarrierFittingTypeEnum; + class IfcCableCarrierSegmentTypeEnum { + } + IfcCableCarrierSegmentTypeEnum.CABLELADDERSEGMENT = { type: 3, value: "CABLELADDERSEGMENT" }; + IfcCableCarrierSegmentTypeEnum.CABLETRAYSEGMENT = { type: 3, value: "CABLETRAYSEGMENT" }; + IfcCableCarrierSegmentTypeEnum.CABLETRUNKINGSEGMENT = { type: 3, value: "CABLETRUNKINGSEGMENT" }; + IfcCableCarrierSegmentTypeEnum.CONDUITSEGMENT = { type: 3, value: "CONDUITSEGMENT" }; + IfcCableCarrierSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCableCarrierSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcCableCarrierSegmentTypeEnum = IfcCableCarrierSegmentTypeEnum; + class IfcCableSegmentTypeEnum { + } + IfcCableSegmentTypeEnum.CABLESEGMENT = { type: 3, value: "CABLESEGMENT" }; + IfcCableSegmentTypeEnum.CONDUCTORSEGMENT = { type: 3, value: "CONDUCTORSEGMENT" }; + IfcCableSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCableSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcCableSegmentTypeEnum = IfcCableSegmentTypeEnum; + class IfcChangeActionEnum { + } + IfcChangeActionEnum.NOCHANGE = { type: 3, value: "NOCHANGE" }; + IfcChangeActionEnum.MODIFIED = { type: 3, value: "MODIFIED" }; + IfcChangeActionEnum.ADDED = { type: 3, value: "ADDED" }; + IfcChangeActionEnum.DELETED = { type: 3, value: "DELETED" }; + IfcChangeActionEnum.MODIFIEDADDED = { type: 3, value: "MODIFIEDADDED" }; + IfcChangeActionEnum.MODIFIEDDELETED = { type: 3, value: "MODIFIEDDELETED" }; + IFC2X32.IfcChangeActionEnum = IfcChangeActionEnum; + class IfcChillerTypeEnum { + } + IfcChillerTypeEnum.AIRCOOLED = { type: 3, value: "AIRCOOLED" }; + IfcChillerTypeEnum.WATERCOOLED = { type: 3, value: "WATERCOOLED" }; + IfcChillerTypeEnum.HEATRECOVERY = { type: 3, value: "HEATRECOVERY" }; + IfcChillerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcChillerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcChillerTypeEnum = IfcChillerTypeEnum; + class IfcCoilTypeEnum { + } + IfcCoilTypeEnum.DXCOOLINGCOIL = { type: 3, value: "DXCOOLINGCOIL" }; + IfcCoilTypeEnum.WATERCOOLINGCOIL = { type: 3, value: "WATERCOOLINGCOIL" }; + IfcCoilTypeEnum.STEAMHEATINGCOIL = { type: 3, value: "STEAMHEATINGCOIL" }; + IfcCoilTypeEnum.WATERHEATINGCOIL = { type: 3, value: "WATERHEATINGCOIL" }; + IfcCoilTypeEnum.ELECTRICHEATINGCOIL = { type: 3, value: "ELECTRICHEATINGCOIL" }; + IfcCoilTypeEnum.GASHEATINGCOIL = { type: 3, value: "GASHEATINGCOIL" }; + IfcCoilTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCoilTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcCoilTypeEnum = IfcCoilTypeEnum; + class IfcColumnTypeEnum { + } + IfcColumnTypeEnum.COLUMN = { type: 3, value: "COLUMN" }; + IfcColumnTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcColumnTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcColumnTypeEnum = IfcColumnTypeEnum; + class IfcCompressorTypeEnum { + } + IfcCompressorTypeEnum.DYNAMIC = { type: 3, value: "DYNAMIC" }; + IfcCompressorTypeEnum.RECIPROCATING = { type: 3, value: "RECIPROCATING" }; + IfcCompressorTypeEnum.ROTARY = { type: 3, value: "ROTARY" }; + IfcCompressorTypeEnum.SCROLL = { type: 3, value: "SCROLL" }; + IfcCompressorTypeEnum.TROCHOIDAL = { type: 3, value: "TROCHOIDAL" }; + IfcCompressorTypeEnum.SINGLESTAGE = { type: 3, value: "SINGLESTAGE" }; + IfcCompressorTypeEnum.BOOSTER = { type: 3, value: "BOOSTER" }; + IfcCompressorTypeEnum.OPENTYPE = { type: 3, value: "OPENTYPE" }; + IfcCompressorTypeEnum.HERMETIC = { type: 3, value: "HERMETIC" }; + IfcCompressorTypeEnum.SEMIHERMETIC = { type: 3, value: "SEMIHERMETIC" }; + IfcCompressorTypeEnum.WELDEDSHELLHERMETIC = { type: 3, value: "WELDEDSHELLHERMETIC" }; + IfcCompressorTypeEnum.ROLLINGPISTON = { type: 3, value: "ROLLINGPISTON" }; + IfcCompressorTypeEnum.ROTARYVANE = { type: 3, value: "ROTARYVANE" }; + IfcCompressorTypeEnum.SINGLESCREW = { type: 3, value: "SINGLESCREW" }; + IfcCompressorTypeEnum.TWINSCREW = { type: 3, value: "TWINSCREW" }; + IfcCompressorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCompressorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcCompressorTypeEnum = IfcCompressorTypeEnum; + class IfcCondenserTypeEnum { + } + IfcCondenserTypeEnum.WATERCOOLEDSHELLTUBE = { type: 3, value: "WATERCOOLEDSHELLTUBE" }; + IfcCondenserTypeEnum.WATERCOOLEDSHELLCOIL = { type: 3, value: "WATERCOOLEDSHELLCOIL" }; + IfcCondenserTypeEnum.WATERCOOLEDTUBEINTUBE = { type: 3, value: "WATERCOOLEDTUBEINTUBE" }; + IfcCondenserTypeEnum.WATERCOOLEDBRAZEDPLATE = { type: 3, value: "WATERCOOLEDBRAZEDPLATE" }; + IfcCondenserTypeEnum.AIRCOOLED = { type: 3, value: "AIRCOOLED" }; + IfcCondenserTypeEnum.EVAPORATIVECOOLED = { type: 3, value: "EVAPORATIVECOOLED" }; + IfcCondenserTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCondenserTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcCondenserTypeEnum = IfcCondenserTypeEnum; + class IfcConnectionTypeEnum { + } + IfcConnectionTypeEnum.ATPATH = { type: 3, value: "ATPATH" }; + IfcConnectionTypeEnum.ATSTART = { type: 3, value: "ATSTART" }; + IfcConnectionTypeEnum.ATEND = { type: 3, value: "ATEND" }; + IfcConnectionTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcConnectionTypeEnum = IfcConnectionTypeEnum; + class IfcConstraintEnum { + } + IfcConstraintEnum.HARD = { type: 3, value: "HARD" }; + IfcConstraintEnum.SOFT = { type: 3, value: "SOFT" }; + IfcConstraintEnum.ADVISORY = { type: 3, value: "ADVISORY" }; + IfcConstraintEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcConstraintEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcConstraintEnum = IfcConstraintEnum; + class IfcControllerTypeEnum { + } + IfcControllerTypeEnum.FLOATING = { type: 3, value: "FLOATING" }; + IfcControllerTypeEnum.PROPORTIONAL = { type: 3, value: "PROPORTIONAL" }; + IfcControllerTypeEnum.PROPORTIONALINTEGRAL = { type: 3, value: "PROPORTIONALINTEGRAL" }; + IfcControllerTypeEnum.PROPORTIONALINTEGRALDERIVATIVE = { type: 3, value: "PROPORTIONALINTEGRALDERIVATIVE" }; + IfcControllerTypeEnum.TIMEDTWOPOSITION = { type: 3, value: "TIMEDTWOPOSITION" }; + IfcControllerTypeEnum.TWOPOSITION = { type: 3, value: "TWOPOSITION" }; + IfcControllerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcControllerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcControllerTypeEnum = IfcControllerTypeEnum; + class IfcCooledBeamTypeEnum { + } + IfcCooledBeamTypeEnum.ACTIVE = { type: 3, value: "ACTIVE" }; + IfcCooledBeamTypeEnum.PASSIVE = { type: 3, value: "PASSIVE" }; + IfcCooledBeamTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCooledBeamTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcCooledBeamTypeEnum = IfcCooledBeamTypeEnum; + class IfcCoolingTowerTypeEnum { + } + IfcCoolingTowerTypeEnum.NATURALDRAFT = { type: 3, value: "NATURALDRAFT" }; + IfcCoolingTowerTypeEnum.MECHANICALINDUCEDDRAFT = { type: 3, value: "MECHANICALINDUCEDDRAFT" }; + IfcCoolingTowerTypeEnum.MECHANICALFORCEDDRAFT = { type: 3, value: "MECHANICALFORCEDDRAFT" }; + IfcCoolingTowerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCoolingTowerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcCoolingTowerTypeEnum = IfcCoolingTowerTypeEnum; + class IfcCostScheduleTypeEnum { + } + IfcCostScheduleTypeEnum.BUDGET = { type: 3, value: "BUDGET" }; + IfcCostScheduleTypeEnum.COSTPLAN = { type: 3, value: "COSTPLAN" }; + IfcCostScheduleTypeEnum.ESTIMATE = { type: 3, value: "ESTIMATE" }; + IfcCostScheduleTypeEnum.TENDER = { type: 3, value: "TENDER" }; + IfcCostScheduleTypeEnum.PRICEDBILLOFQUANTITIES = { type: 3, value: "PRICEDBILLOFQUANTITIES" }; + IfcCostScheduleTypeEnum.UNPRICEDBILLOFQUANTITIES = { type: 3, value: "UNPRICEDBILLOFQUANTITIES" }; + IfcCostScheduleTypeEnum.SCHEDULEOFRATES = { type: 3, value: "SCHEDULEOFRATES" }; + IfcCostScheduleTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCostScheduleTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcCostScheduleTypeEnum = IfcCostScheduleTypeEnum; + class IfcCoveringTypeEnum { + } + IfcCoveringTypeEnum.CEILING = { type: 3, value: "CEILING" }; + IfcCoveringTypeEnum.FLOORING = { type: 3, value: "FLOORING" }; + IfcCoveringTypeEnum.CLADDING = { type: 3, value: "CLADDING" }; + IfcCoveringTypeEnum.ROOFING = { type: 3, value: "ROOFING" }; + IfcCoveringTypeEnum.INSULATION = { type: 3, value: "INSULATION" }; + IfcCoveringTypeEnum.MEMBRANE = { type: 3, value: "MEMBRANE" }; + IfcCoveringTypeEnum.SLEEVING = { type: 3, value: "SLEEVING" }; + IfcCoveringTypeEnum.WRAPPING = { type: 3, value: "WRAPPING" }; + IfcCoveringTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCoveringTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcCoveringTypeEnum = IfcCoveringTypeEnum; + class IfcCurrencyEnum { + } + IfcCurrencyEnum.AED = { type: 3, value: "AED" }; + IfcCurrencyEnum.AES = { type: 3, value: "AES" }; + IfcCurrencyEnum.ATS = { type: 3, value: "ATS" }; + IfcCurrencyEnum.AUD = { type: 3, value: "AUD" }; + IfcCurrencyEnum.BBD = { type: 3, value: "BBD" }; + IfcCurrencyEnum.BEG = { type: 3, value: "BEG" }; + IfcCurrencyEnum.BGL = { type: 3, value: "BGL" }; + IfcCurrencyEnum.BHD = { type: 3, value: "BHD" }; + IfcCurrencyEnum.BMD = { type: 3, value: "BMD" }; + IfcCurrencyEnum.BND = { type: 3, value: "BND" }; + IfcCurrencyEnum.BRL = { type: 3, value: "BRL" }; + IfcCurrencyEnum.BSD = { type: 3, value: "BSD" }; + IfcCurrencyEnum.BWP = { type: 3, value: "BWP" }; + IfcCurrencyEnum.BZD = { type: 3, value: "BZD" }; + IfcCurrencyEnum.CAD = { type: 3, value: "CAD" }; + IfcCurrencyEnum.CBD = { type: 3, value: "CBD" }; + IfcCurrencyEnum.CHF = { type: 3, value: "CHF" }; + IfcCurrencyEnum.CLP = { type: 3, value: "CLP" }; + IfcCurrencyEnum.CNY = { type: 3, value: "CNY" }; + IfcCurrencyEnum.CYS = { type: 3, value: "CYS" }; + IfcCurrencyEnum.CZK = { type: 3, value: "CZK" }; + IfcCurrencyEnum.DDP = { type: 3, value: "DDP" }; + IfcCurrencyEnum.DEM = { type: 3, value: "DEM" }; + IfcCurrencyEnum.DKK = { type: 3, value: "DKK" }; + IfcCurrencyEnum.EGL = { type: 3, value: "EGL" }; + IfcCurrencyEnum.EST = { type: 3, value: "EST" }; + IfcCurrencyEnum.EUR = { type: 3, value: "EUR" }; + IfcCurrencyEnum.FAK = { type: 3, value: "FAK" }; + IfcCurrencyEnum.FIM = { type: 3, value: "FIM" }; + IfcCurrencyEnum.FJD = { type: 3, value: "FJD" }; + IfcCurrencyEnum.FKP = { type: 3, value: "FKP" }; + IfcCurrencyEnum.FRF = { type: 3, value: "FRF" }; + IfcCurrencyEnum.GBP = { type: 3, value: "GBP" }; + IfcCurrencyEnum.GIP = { type: 3, value: "GIP" }; + IfcCurrencyEnum.GMD = { type: 3, value: "GMD" }; + IfcCurrencyEnum.GRX = { type: 3, value: "GRX" }; + IfcCurrencyEnum.HKD = { type: 3, value: "HKD" }; + IfcCurrencyEnum.HUF = { type: 3, value: "HUF" }; + IfcCurrencyEnum.ICK = { type: 3, value: "ICK" }; + IfcCurrencyEnum.IDR = { type: 3, value: "IDR" }; + IfcCurrencyEnum.ILS = { type: 3, value: "ILS" }; + IfcCurrencyEnum.INR = { type: 3, value: "INR" }; + IfcCurrencyEnum.IRP = { type: 3, value: "IRP" }; + IfcCurrencyEnum.ITL = { type: 3, value: "ITL" }; + IfcCurrencyEnum.JMD = { type: 3, value: "JMD" }; + IfcCurrencyEnum.JOD = { type: 3, value: "JOD" }; + IfcCurrencyEnum.JPY = { type: 3, value: "JPY" }; + IfcCurrencyEnum.KES = { type: 3, value: "KES" }; + IfcCurrencyEnum.KRW = { type: 3, value: "KRW" }; + IfcCurrencyEnum.KWD = { type: 3, value: "KWD" }; + IfcCurrencyEnum.KYD = { type: 3, value: "KYD" }; + IfcCurrencyEnum.LKR = { type: 3, value: "LKR" }; + IfcCurrencyEnum.LUF = { type: 3, value: "LUF" }; + IfcCurrencyEnum.MTL = { type: 3, value: "MTL" }; + IfcCurrencyEnum.MUR = { type: 3, value: "MUR" }; + IfcCurrencyEnum.MXN = { type: 3, value: "MXN" }; + IfcCurrencyEnum.MYR = { type: 3, value: "MYR" }; + IfcCurrencyEnum.NLG = { type: 3, value: "NLG" }; + IfcCurrencyEnum.NZD = { type: 3, value: "NZD" }; + IfcCurrencyEnum.OMR = { type: 3, value: "OMR" }; + IfcCurrencyEnum.PGK = { type: 3, value: "PGK" }; + IfcCurrencyEnum.PHP = { type: 3, value: "PHP" }; + IfcCurrencyEnum.PKR = { type: 3, value: "PKR" }; + IfcCurrencyEnum.PLN = { type: 3, value: "PLN" }; + IfcCurrencyEnum.PTN = { type: 3, value: "PTN" }; + IfcCurrencyEnum.QAR = { type: 3, value: "QAR" }; + IfcCurrencyEnum.RUR = { type: 3, value: "RUR" }; + IfcCurrencyEnum.SAR = { type: 3, value: "SAR" }; + IfcCurrencyEnum.SCR = { type: 3, value: "SCR" }; + IfcCurrencyEnum.SEK = { type: 3, value: "SEK" }; + IfcCurrencyEnum.SGD = { type: 3, value: "SGD" }; + IfcCurrencyEnum.SKP = { type: 3, value: "SKP" }; + IfcCurrencyEnum.THB = { type: 3, value: "THB" }; + IfcCurrencyEnum.TRL = { type: 3, value: "TRL" }; + IfcCurrencyEnum.TTD = { type: 3, value: "TTD" }; + IfcCurrencyEnum.TWD = { type: 3, value: "TWD" }; + IfcCurrencyEnum.USD = { type: 3, value: "USD" }; + IfcCurrencyEnum.VEB = { type: 3, value: "VEB" }; + IfcCurrencyEnum.VND = { type: 3, value: "VND" }; + IfcCurrencyEnum.XEU = { type: 3, value: "XEU" }; + IfcCurrencyEnum.ZAR = { type: 3, value: "ZAR" }; + IfcCurrencyEnum.ZWD = { type: 3, value: "ZWD" }; + IfcCurrencyEnum.NOK = { type: 3, value: "NOK" }; + IFC2X32.IfcCurrencyEnum = IfcCurrencyEnum; + class IfcCurtainWallTypeEnum { + } + IfcCurtainWallTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCurtainWallTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcCurtainWallTypeEnum = IfcCurtainWallTypeEnum; + class IfcDamperTypeEnum { + } + IfcDamperTypeEnum.CONTROLDAMPER = { type: 3, value: "CONTROLDAMPER" }; + IfcDamperTypeEnum.FIREDAMPER = { type: 3, value: "FIREDAMPER" }; + IfcDamperTypeEnum.SMOKEDAMPER = { type: 3, value: "SMOKEDAMPER" }; + IfcDamperTypeEnum.FIRESMOKEDAMPER = { type: 3, value: "FIRESMOKEDAMPER" }; + IfcDamperTypeEnum.BACKDRAFTDAMPER = { type: 3, value: "BACKDRAFTDAMPER" }; + IfcDamperTypeEnum.RELIEFDAMPER = { type: 3, value: "RELIEFDAMPER" }; + IfcDamperTypeEnum.BLASTDAMPER = { type: 3, value: "BLASTDAMPER" }; + IfcDamperTypeEnum.GRAVITYDAMPER = { type: 3, value: "GRAVITYDAMPER" }; + IfcDamperTypeEnum.GRAVITYRELIEFDAMPER = { type: 3, value: "GRAVITYRELIEFDAMPER" }; + IfcDamperTypeEnum.BALANCINGDAMPER = { type: 3, value: "BALANCINGDAMPER" }; + IfcDamperTypeEnum.FUMEHOODEXHAUST = { type: 3, value: "FUMEHOODEXHAUST" }; + IfcDamperTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDamperTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcDamperTypeEnum = IfcDamperTypeEnum; + class IfcDataOriginEnum { + } + IfcDataOriginEnum.MEASURED = { type: 3, value: "MEASURED" }; + IfcDataOriginEnum.PREDICTED = { type: 3, value: "PREDICTED" }; + IfcDataOriginEnum.SIMULATED = { type: 3, value: "SIMULATED" }; + IfcDataOriginEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDataOriginEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcDataOriginEnum = IfcDataOriginEnum; + class IfcDerivedUnitEnum { + } + IfcDerivedUnitEnum.ANGULARVELOCITYUNIT = { type: 3, value: "ANGULARVELOCITYUNIT" }; + IfcDerivedUnitEnum.COMPOUNDPLANEANGLEUNIT = { type: 3, value: "COMPOUNDPLANEANGLEUNIT" }; + IfcDerivedUnitEnum.DYNAMICVISCOSITYUNIT = { type: 3, value: "DYNAMICVISCOSITYUNIT" }; + IfcDerivedUnitEnum.HEATFLUXDENSITYUNIT = { type: 3, value: "HEATFLUXDENSITYUNIT" }; + IfcDerivedUnitEnum.INTEGERCOUNTRATEUNIT = { type: 3, value: "INTEGERCOUNTRATEUNIT" }; + IfcDerivedUnitEnum.ISOTHERMALMOISTURECAPACITYUNIT = { type: 3, value: "ISOTHERMALMOISTURECAPACITYUNIT" }; + IfcDerivedUnitEnum.KINEMATICVISCOSITYUNIT = { type: 3, value: "KINEMATICVISCOSITYUNIT" }; + IfcDerivedUnitEnum.LINEARVELOCITYUNIT = { type: 3, value: "LINEARVELOCITYUNIT" }; + IfcDerivedUnitEnum.MASSDENSITYUNIT = { type: 3, value: "MASSDENSITYUNIT" }; + IfcDerivedUnitEnum.MASSFLOWRATEUNIT = { type: 3, value: "MASSFLOWRATEUNIT" }; + IfcDerivedUnitEnum.MOISTUREDIFFUSIVITYUNIT = { type: 3, value: "MOISTUREDIFFUSIVITYUNIT" }; + IfcDerivedUnitEnum.MOLECULARWEIGHTUNIT = { type: 3, value: "MOLECULARWEIGHTUNIT" }; + IfcDerivedUnitEnum.SPECIFICHEATCAPACITYUNIT = { type: 3, value: "SPECIFICHEATCAPACITYUNIT" }; + IfcDerivedUnitEnum.THERMALADMITTANCEUNIT = { type: 3, value: "THERMALADMITTANCEUNIT" }; + IfcDerivedUnitEnum.THERMALCONDUCTANCEUNIT = { type: 3, value: "THERMALCONDUCTANCEUNIT" }; + IfcDerivedUnitEnum.THERMALRESISTANCEUNIT = { type: 3, value: "THERMALRESISTANCEUNIT" }; + IfcDerivedUnitEnum.THERMALTRANSMITTANCEUNIT = { type: 3, value: "THERMALTRANSMITTANCEUNIT" }; + IfcDerivedUnitEnum.VAPORPERMEABILITYUNIT = { type: 3, value: "VAPORPERMEABILITYUNIT" }; + IfcDerivedUnitEnum.VOLUMETRICFLOWRATEUNIT = { type: 3, value: "VOLUMETRICFLOWRATEUNIT" }; + IfcDerivedUnitEnum.ROTATIONALFREQUENCYUNIT = { type: 3, value: "ROTATIONALFREQUENCYUNIT" }; + IfcDerivedUnitEnum.TORQUEUNIT = { type: 3, value: "TORQUEUNIT" }; + IfcDerivedUnitEnum.MOMENTOFINERTIAUNIT = { type: 3, value: "MOMENTOFINERTIAUNIT" }; + IfcDerivedUnitEnum.LINEARMOMENTUNIT = { type: 3, value: "LINEARMOMENTUNIT" }; + IfcDerivedUnitEnum.LINEARFORCEUNIT = { type: 3, value: "LINEARFORCEUNIT" }; + IfcDerivedUnitEnum.PLANARFORCEUNIT = { type: 3, value: "PLANARFORCEUNIT" }; + IfcDerivedUnitEnum.MODULUSOFELASTICITYUNIT = { type: 3, value: "MODULUSOFELASTICITYUNIT" }; + IfcDerivedUnitEnum.SHEARMODULUSUNIT = { type: 3, value: "SHEARMODULUSUNIT" }; + IfcDerivedUnitEnum.LINEARSTIFFNESSUNIT = { type: 3, value: "LINEARSTIFFNESSUNIT" }; + IfcDerivedUnitEnum.ROTATIONALSTIFFNESSUNIT = { type: 3, value: "ROTATIONALSTIFFNESSUNIT" }; + IfcDerivedUnitEnum.MODULUSOFSUBGRADEREACTIONUNIT = { type: 3, value: "MODULUSOFSUBGRADEREACTIONUNIT" }; + IfcDerivedUnitEnum.ACCELERATIONUNIT = { type: 3, value: "ACCELERATIONUNIT" }; + IfcDerivedUnitEnum.CURVATUREUNIT = { type: 3, value: "CURVATUREUNIT" }; + IfcDerivedUnitEnum.HEATINGVALUEUNIT = { type: 3, value: "HEATINGVALUEUNIT" }; + IfcDerivedUnitEnum.IONCONCENTRATIONUNIT = { type: 3, value: "IONCONCENTRATIONUNIT" }; + IfcDerivedUnitEnum.LUMINOUSINTENSITYDISTRIBUTIONUNIT = { type: 3, value: "LUMINOUSINTENSITYDISTRIBUTIONUNIT" }; + IfcDerivedUnitEnum.MASSPERLENGTHUNIT = { type: 3, value: "MASSPERLENGTHUNIT" }; + IfcDerivedUnitEnum.MODULUSOFLINEARSUBGRADEREACTIONUNIT = { type: 3, value: "MODULUSOFLINEARSUBGRADEREACTIONUNIT" }; + IfcDerivedUnitEnum.MODULUSOFROTATIONALSUBGRADEREACTIONUNIT = { type: 3, value: "MODULUSOFROTATIONALSUBGRADEREACTIONUNIT" }; + IfcDerivedUnitEnum.PHUNIT = { type: 3, value: "PHUNIT" }; + IfcDerivedUnitEnum.ROTATIONALMASSUNIT = { type: 3, value: "ROTATIONALMASSUNIT" }; + IfcDerivedUnitEnum.SECTIONAREAINTEGRALUNIT = { type: 3, value: "SECTIONAREAINTEGRALUNIT" }; + IfcDerivedUnitEnum.SECTIONMODULUSUNIT = { type: 3, value: "SECTIONMODULUSUNIT" }; + IfcDerivedUnitEnum.SOUNDPOWERUNIT = { type: 3, value: "SOUNDPOWERUNIT" }; + IfcDerivedUnitEnum.SOUNDPRESSUREUNIT = { type: 3, value: "SOUNDPRESSUREUNIT" }; + IfcDerivedUnitEnum.TEMPERATUREGRADIENTUNIT = { type: 3, value: "TEMPERATUREGRADIENTUNIT" }; + IfcDerivedUnitEnum.THERMALEXPANSIONCOEFFICIENTUNIT = { type: 3, value: "THERMALEXPANSIONCOEFFICIENTUNIT" }; + IfcDerivedUnitEnum.WARPINGCONSTANTUNIT = { type: 3, value: "WARPINGCONSTANTUNIT" }; + IfcDerivedUnitEnum.WARPINGMOMENTUNIT = { type: 3, value: "WARPINGMOMENTUNIT" }; + IfcDerivedUnitEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IFC2X32.IfcDerivedUnitEnum = IfcDerivedUnitEnum; + class IfcDimensionExtentUsage { + } + IfcDimensionExtentUsage.ORIGIN = { type: 3, value: "ORIGIN" }; + IfcDimensionExtentUsage.TARGET = { type: 3, value: "TARGET" }; + IFC2X32.IfcDimensionExtentUsage = IfcDimensionExtentUsage; + class IfcDirectionSenseEnum { + } + IfcDirectionSenseEnum.POSITIVE = { type: 3, value: "POSITIVE" }; + IfcDirectionSenseEnum.NEGATIVE = { type: 3, value: "NEGATIVE" }; + IFC2X32.IfcDirectionSenseEnum = IfcDirectionSenseEnum; + class IfcDistributionChamberElementTypeEnum { + } + IfcDistributionChamberElementTypeEnum.FORMEDDUCT = { type: 3, value: "FORMEDDUCT" }; + IfcDistributionChamberElementTypeEnum.INSPECTIONCHAMBER = { type: 3, value: "INSPECTIONCHAMBER" }; + IfcDistributionChamberElementTypeEnum.INSPECTIONPIT = { type: 3, value: "INSPECTIONPIT" }; + IfcDistributionChamberElementTypeEnum.MANHOLE = { type: 3, value: "MANHOLE" }; + IfcDistributionChamberElementTypeEnum.METERCHAMBER = { type: 3, value: "METERCHAMBER" }; + IfcDistributionChamberElementTypeEnum.SUMP = { type: 3, value: "SUMP" }; + IfcDistributionChamberElementTypeEnum.TRENCH = { type: 3, value: "TRENCH" }; + IfcDistributionChamberElementTypeEnum.VALVECHAMBER = { type: 3, value: "VALVECHAMBER" }; + IfcDistributionChamberElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDistributionChamberElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcDistributionChamberElementTypeEnum = IfcDistributionChamberElementTypeEnum; + class IfcDocumentConfidentialityEnum { + } + IfcDocumentConfidentialityEnum.PUBLIC = { type: 3, value: "PUBLIC" }; + IfcDocumentConfidentialityEnum.RESTRICTED = { type: 3, value: "RESTRICTED" }; + IfcDocumentConfidentialityEnum.CONFIDENTIAL = { type: 3, value: "CONFIDENTIAL" }; + IfcDocumentConfidentialityEnum.PERSONAL = { type: 3, value: "PERSONAL" }; + IfcDocumentConfidentialityEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDocumentConfidentialityEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcDocumentConfidentialityEnum = IfcDocumentConfidentialityEnum; + class IfcDocumentStatusEnum { + } + IfcDocumentStatusEnum.DRAFT = { type: 3, value: "DRAFT" }; + IfcDocumentStatusEnum.FINALDRAFT = { type: 3, value: "FINALDRAFT" }; + IfcDocumentStatusEnum.FINAL = { type: 3, value: "FINAL" }; + IfcDocumentStatusEnum.REVISION = { type: 3, value: "REVISION" }; + IfcDocumentStatusEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcDocumentStatusEnum = IfcDocumentStatusEnum; + class IfcDoorPanelOperationEnum { + } + IfcDoorPanelOperationEnum.SWINGING = { type: 3, value: "SWINGING" }; + IfcDoorPanelOperationEnum.DOUBLE_ACTING = { type: 3, value: "DOUBLE_ACTING" }; + IfcDoorPanelOperationEnum.SLIDING = { type: 3, value: "SLIDING" }; + IfcDoorPanelOperationEnum.FOLDING = { type: 3, value: "FOLDING" }; + IfcDoorPanelOperationEnum.REVOLVING = { type: 3, value: "REVOLVING" }; + IfcDoorPanelOperationEnum.ROLLINGUP = { type: 3, value: "ROLLINGUP" }; + IfcDoorPanelOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDoorPanelOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcDoorPanelOperationEnum = IfcDoorPanelOperationEnum; + class IfcDoorPanelPositionEnum { + } + IfcDoorPanelPositionEnum.LEFT = { type: 3, value: "LEFT" }; + IfcDoorPanelPositionEnum.MIDDLE = { type: 3, value: "MIDDLE" }; + IfcDoorPanelPositionEnum.RIGHT = { type: 3, value: "RIGHT" }; + IfcDoorPanelPositionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcDoorPanelPositionEnum = IfcDoorPanelPositionEnum; + class IfcDoorStyleConstructionEnum { + } + IfcDoorStyleConstructionEnum.ALUMINIUM = { type: 3, value: "ALUMINIUM" }; + IfcDoorStyleConstructionEnum.HIGH_GRADE_STEEL = { type: 3, value: "HIGH_GRADE_STEEL" }; + IfcDoorStyleConstructionEnum.STEEL = { type: 3, value: "STEEL" }; + IfcDoorStyleConstructionEnum.WOOD = { type: 3, value: "WOOD" }; + IfcDoorStyleConstructionEnum.ALUMINIUM_WOOD = { type: 3, value: "ALUMINIUM_WOOD" }; + IfcDoorStyleConstructionEnum.ALUMINIUM_PLASTIC = { type: 3, value: "ALUMINIUM_PLASTIC" }; + IfcDoorStyleConstructionEnum.PLASTIC = { type: 3, value: "PLASTIC" }; + IfcDoorStyleConstructionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDoorStyleConstructionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcDoorStyleConstructionEnum = IfcDoorStyleConstructionEnum; + class IfcDoorStyleOperationEnum { + } + IfcDoorStyleOperationEnum.SINGLE_SWING_LEFT = { type: 3, value: "SINGLE_SWING_LEFT" }; + IfcDoorStyleOperationEnum.SINGLE_SWING_RIGHT = { type: 3, value: "SINGLE_SWING_RIGHT" }; + IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING" }; + IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT" }; + IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT" }; + IfcDoorStyleOperationEnum.DOUBLE_SWING_LEFT = { type: 3, value: "DOUBLE_SWING_LEFT" }; + IfcDoorStyleOperationEnum.DOUBLE_SWING_RIGHT = { type: 3, value: "DOUBLE_SWING_RIGHT" }; + IfcDoorStyleOperationEnum.DOUBLE_DOOR_DOUBLE_SWING = { type: 3, value: "DOUBLE_DOOR_DOUBLE_SWING" }; + IfcDoorStyleOperationEnum.SLIDING_TO_LEFT = { type: 3, value: "SLIDING_TO_LEFT" }; + IfcDoorStyleOperationEnum.SLIDING_TO_RIGHT = { type: 3, value: "SLIDING_TO_RIGHT" }; + IfcDoorStyleOperationEnum.DOUBLE_DOOR_SLIDING = { type: 3, value: "DOUBLE_DOOR_SLIDING" }; + IfcDoorStyleOperationEnum.FOLDING_TO_LEFT = { type: 3, value: "FOLDING_TO_LEFT" }; + IfcDoorStyleOperationEnum.FOLDING_TO_RIGHT = { type: 3, value: "FOLDING_TO_RIGHT" }; + IfcDoorStyleOperationEnum.DOUBLE_DOOR_FOLDING = { type: 3, value: "DOUBLE_DOOR_FOLDING" }; + IfcDoorStyleOperationEnum.REVOLVING = { type: 3, value: "REVOLVING" }; + IfcDoorStyleOperationEnum.ROLLINGUP = { type: 3, value: "ROLLINGUP" }; + IfcDoorStyleOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDoorStyleOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcDoorStyleOperationEnum = IfcDoorStyleOperationEnum; + class IfcDuctFittingTypeEnum { + } + IfcDuctFittingTypeEnum.BEND = { type: 3, value: "BEND" }; + IfcDuctFittingTypeEnum.CONNECTOR = { type: 3, value: "CONNECTOR" }; + IfcDuctFittingTypeEnum.ENTRY = { type: 3, value: "ENTRY" }; + IfcDuctFittingTypeEnum.EXIT = { type: 3, value: "EXIT" }; + IfcDuctFittingTypeEnum.JUNCTION = { type: 3, value: "JUNCTION" }; + IfcDuctFittingTypeEnum.OBSTRUCTION = { type: 3, value: "OBSTRUCTION" }; + IfcDuctFittingTypeEnum.TRANSITION = { type: 3, value: "TRANSITION" }; + IfcDuctFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDuctFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcDuctFittingTypeEnum = IfcDuctFittingTypeEnum; + class IfcDuctSegmentTypeEnum { + } + IfcDuctSegmentTypeEnum.RIGIDSEGMENT = { type: 3, value: "RIGIDSEGMENT" }; + IfcDuctSegmentTypeEnum.FLEXIBLESEGMENT = { type: 3, value: "FLEXIBLESEGMENT" }; + IfcDuctSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDuctSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcDuctSegmentTypeEnum = IfcDuctSegmentTypeEnum; + class IfcDuctSilencerTypeEnum { + } + IfcDuctSilencerTypeEnum.FLATOVAL = { type: 3, value: "FLATOVAL" }; + IfcDuctSilencerTypeEnum.RECTANGULAR = { type: 3, value: "RECTANGULAR" }; + IfcDuctSilencerTypeEnum.ROUND = { type: 3, value: "ROUND" }; + IfcDuctSilencerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDuctSilencerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcDuctSilencerTypeEnum = IfcDuctSilencerTypeEnum; + class IfcElectricApplianceTypeEnum { + } + IfcElectricApplianceTypeEnum.COMPUTER = { type: 3, value: "COMPUTER" }; + IfcElectricApplianceTypeEnum.DIRECTWATERHEATER = { type: 3, value: "DIRECTWATERHEATER" }; + IfcElectricApplianceTypeEnum.DISHWASHER = { type: 3, value: "DISHWASHER" }; + IfcElectricApplianceTypeEnum.ELECTRICCOOKER = { type: 3, value: "ELECTRICCOOKER" }; + IfcElectricApplianceTypeEnum.ELECTRICHEATER = { type: 3, value: "ELECTRICHEATER" }; + IfcElectricApplianceTypeEnum.FACSIMILE = { type: 3, value: "FACSIMILE" }; + IfcElectricApplianceTypeEnum.FREESTANDINGFAN = { type: 3, value: "FREESTANDINGFAN" }; + IfcElectricApplianceTypeEnum.FREEZER = { type: 3, value: "FREEZER" }; + IfcElectricApplianceTypeEnum.FRIDGE_FREEZER = { type: 3, value: "FRIDGE_FREEZER" }; + IfcElectricApplianceTypeEnum.HANDDRYER = { type: 3, value: "HANDDRYER" }; + IfcElectricApplianceTypeEnum.INDIRECTWATERHEATER = { type: 3, value: "INDIRECTWATERHEATER" }; + IfcElectricApplianceTypeEnum.MICROWAVE = { type: 3, value: "MICROWAVE" }; + IfcElectricApplianceTypeEnum.PHOTOCOPIER = { type: 3, value: "PHOTOCOPIER" }; + IfcElectricApplianceTypeEnum.PRINTER = { type: 3, value: "PRINTER" }; + IfcElectricApplianceTypeEnum.REFRIGERATOR = { type: 3, value: "REFRIGERATOR" }; + IfcElectricApplianceTypeEnum.RADIANTHEATER = { type: 3, value: "RADIANTHEATER" }; + IfcElectricApplianceTypeEnum.SCANNER = { type: 3, value: "SCANNER" }; + IfcElectricApplianceTypeEnum.TELEPHONE = { type: 3, value: "TELEPHONE" }; + IfcElectricApplianceTypeEnum.TUMBLEDRYER = { type: 3, value: "TUMBLEDRYER" }; + IfcElectricApplianceTypeEnum.TV = { type: 3, value: "TV" }; + IfcElectricApplianceTypeEnum.VENDINGMACHINE = { type: 3, value: "VENDINGMACHINE" }; + IfcElectricApplianceTypeEnum.WASHINGMACHINE = { type: 3, value: "WASHINGMACHINE" }; + IfcElectricApplianceTypeEnum.WATERHEATER = { type: 3, value: "WATERHEATER" }; + IfcElectricApplianceTypeEnum.WATERCOOLER = { type: 3, value: "WATERCOOLER" }; + IfcElectricApplianceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcElectricApplianceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcElectricApplianceTypeEnum = IfcElectricApplianceTypeEnum; + class IfcElectricCurrentEnum { + } + IfcElectricCurrentEnum.ALTERNATING = { type: 3, value: "ALTERNATING" }; + IfcElectricCurrentEnum.DIRECT = { type: 3, value: "DIRECT" }; + IfcElectricCurrentEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcElectricCurrentEnum = IfcElectricCurrentEnum; + class IfcElectricDistributionPointFunctionEnum { + } + IfcElectricDistributionPointFunctionEnum.ALARMPANEL = { type: 3, value: "ALARMPANEL" }; + IfcElectricDistributionPointFunctionEnum.CONSUMERUNIT = { type: 3, value: "CONSUMERUNIT" }; + IfcElectricDistributionPointFunctionEnum.CONTROLPANEL = { type: 3, value: "CONTROLPANEL" }; + IfcElectricDistributionPointFunctionEnum.DISTRIBUTIONBOARD = { type: 3, value: "DISTRIBUTIONBOARD" }; + IfcElectricDistributionPointFunctionEnum.GASDETECTORPANEL = { type: 3, value: "GASDETECTORPANEL" }; + IfcElectricDistributionPointFunctionEnum.INDICATORPANEL = { type: 3, value: "INDICATORPANEL" }; + IfcElectricDistributionPointFunctionEnum.MIMICPANEL = { type: 3, value: "MIMICPANEL" }; + IfcElectricDistributionPointFunctionEnum.MOTORCONTROLCENTRE = { type: 3, value: "MOTORCONTROLCENTRE" }; + IfcElectricDistributionPointFunctionEnum.SWITCHBOARD = { type: 3, value: "SWITCHBOARD" }; + IfcElectricDistributionPointFunctionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcElectricDistributionPointFunctionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcElectricDistributionPointFunctionEnum = IfcElectricDistributionPointFunctionEnum; + class IfcElectricFlowStorageDeviceTypeEnum { + } + IfcElectricFlowStorageDeviceTypeEnum.BATTERY = { type: 3, value: "BATTERY" }; + IfcElectricFlowStorageDeviceTypeEnum.CAPACITORBANK = { type: 3, value: "CAPACITORBANK" }; + IfcElectricFlowStorageDeviceTypeEnum.HARMONICFILTER = { type: 3, value: "HARMONICFILTER" }; + IfcElectricFlowStorageDeviceTypeEnum.INDUCTORBANK = { type: 3, value: "INDUCTORBANK" }; + IfcElectricFlowStorageDeviceTypeEnum.UPS = { type: 3, value: "UPS" }; + IfcElectricFlowStorageDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcElectricFlowStorageDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcElectricFlowStorageDeviceTypeEnum = IfcElectricFlowStorageDeviceTypeEnum; + class IfcElectricGeneratorTypeEnum { + } + IfcElectricGeneratorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcElectricGeneratorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcElectricGeneratorTypeEnum = IfcElectricGeneratorTypeEnum; + class IfcElectricHeaterTypeEnum { + } + IfcElectricHeaterTypeEnum.ELECTRICPOINTHEATER = { type: 3, value: "ELECTRICPOINTHEATER" }; + IfcElectricHeaterTypeEnum.ELECTRICCABLEHEATER = { type: 3, value: "ELECTRICCABLEHEATER" }; + IfcElectricHeaterTypeEnum.ELECTRICMATHEATER = { type: 3, value: "ELECTRICMATHEATER" }; + IfcElectricHeaterTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcElectricHeaterTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcElectricHeaterTypeEnum = IfcElectricHeaterTypeEnum; + class IfcElectricMotorTypeEnum { + } + IfcElectricMotorTypeEnum.DC = { type: 3, value: "DC" }; + IfcElectricMotorTypeEnum.INDUCTION = { type: 3, value: "INDUCTION" }; + IfcElectricMotorTypeEnum.POLYPHASE = { type: 3, value: "POLYPHASE" }; + IfcElectricMotorTypeEnum.RELUCTANCESYNCHRONOUS = { type: 3, value: "RELUCTANCESYNCHRONOUS" }; + IfcElectricMotorTypeEnum.SYNCHRONOUS = { type: 3, value: "SYNCHRONOUS" }; + IfcElectricMotorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcElectricMotorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcElectricMotorTypeEnum = IfcElectricMotorTypeEnum; + class IfcElectricTimeControlTypeEnum { + } + IfcElectricTimeControlTypeEnum.TIMECLOCK = { type: 3, value: "TIMECLOCK" }; + IfcElectricTimeControlTypeEnum.TIMEDELAY = { type: 3, value: "TIMEDELAY" }; + IfcElectricTimeControlTypeEnum.RELAY = { type: 3, value: "RELAY" }; + IfcElectricTimeControlTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcElectricTimeControlTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcElectricTimeControlTypeEnum = IfcElectricTimeControlTypeEnum; + class IfcElementAssemblyTypeEnum { + } + IfcElementAssemblyTypeEnum.ACCESSORY_ASSEMBLY = { type: 3, value: "ACCESSORY_ASSEMBLY" }; + IfcElementAssemblyTypeEnum.ARCH = { type: 3, value: "ARCH" }; + IfcElementAssemblyTypeEnum.BEAM_GRID = { type: 3, value: "BEAM_GRID" }; + IfcElementAssemblyTypeEnum.BRACED_FRAME = { type: 3, value: "BRACED_FRAME" }; + IfcElementAssemblyTypeEnum.GIRDER = { type: 3, value: "GIRDER" }; + IfcElementAssemblyTypeEnum.REINFORCEMENT_UNIT = { type: 3, value: "REINFORCEMENT_UNIT" }; + IfcElementAssemblyTypeEnum.RIGID_FRAME = { type: 3, value: "RIGID_FRAME" }; + IfcElementAssemblyTypeEnum.SLAB_FIELD = { type: 3, value: "SLAB_FIELD" }; + IfcElementAssemblyTypeEnum.TRUSS = { type: 3, value: "TRUSS" }; + IfcElementAssemblyTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcElementAssemblyTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcElementAssemblyTypeEnum = IfcElementAssemblyTypeEnum; + class IfcElementCompositionEnum { + } + IfcElementCompositionEnum.COMPLEX = { type: 3, value: "COMPLEX" }; + IfcElementCompositionEnum.ELEMENT = { type: 3, value: "ELEMENT" }; + IfcElementCompositionEnum.PARTIAL = { type: 3, value: "PARTIAL" }; + IFC2X32.IfcElementCompositionEnum = IfcElementCompositionEnum; + class IfcEnergySequenceEnum { + } + IfcEnergySequenceEnum.PRIMARY = { type: 3, value: "PRIMARY" }; + IfcEnergySequenceEnum.SECONDARY = { type: 3, value: "SECONDARY" }; + IfcEnergySequenceEnum.TERTIARY = { type: 3, value: "TERTIARY" }; + IfcEnergySequenceEnum.AUXILIARY = { type: 3, value: "AUXILIARY" }; + IfcEnergySequenceEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcEnergySequenceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcEnergySequenceEnum = IfcEnergySequenceEnum; + class IfcEnvironmentalImpactCategoryEnum { + } + IfcEnvironmentalImpactCategoryEnum.COMBINEDVALUE = { type: 3, value: "COMBINEDVALUE" }; + IfcEnvironmentalImpactCategoryEnum.DISPOSAL = { type: 3, value: "DISPOSAL" }; + IfcEnvironmentalImpactCategoryEnum.EXTRACTION = { type: 3, value: "EXTRACTION" }; + IfcEnvironmentalImpactCategoryEnum.INSTALLATION = { type: 3, value: "INSTALLATION" }; + IfcEnvironmentalImpactCategoryEnum.MANUFACTURE = { type: 3, value: "MANUFACTURE" }; + IfcEnvironmentalImpactCategoryEnum.TRANSPORTATION = { type: 3, value: "TRANSPORTATION" }; + IfcEnvironmentalImpactCategoryEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcEnvironmentalImpactCategoryEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcEnvironmentalImpactCategoryEnum = IfcEnvironmentalImpactCategoryEnum; + class IfcEvaporativeCoolerTypeEnum { + } + IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER" }; + IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER" }; + IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER" }; + IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER" }; + IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEAIRWASHER = { type: 3, value: "DIRECTEVAPORATIVEAIRWASHER" }; + IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEPACKAGEAIRCOOLER = { type: 3, value: "INDIRECTEVAPORATIVEPACKAGEAIRCOOLER" }; + IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEWETCOIL = { type: 3, value: "INDIRECTEVAPORATIVEWETCOIL" }; + IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER = { type: 3, value: "INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER" }; + IfcEvaporativeCoolerTypeEnum.INDIRECTDIRECTCOMBINATION = { type: 3, value: "INDIRECTDIRECTCOMBINATION" }; + IfcEvaporativeCoolerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcEvaporativeCoolerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcEvaporativeCoolerTypeEnum = IfcEvaporativeCoolerTypeEnum; + class IfcEvaporatorTypeEnum { + } + IfcEvaporatorTypeEnum.DIRECTEXPANSIONSHELLANDTUBE = { type: 3, value: "DIRECTEXPANSIONSHELLANDTUBE" }; + IfcEvaporatorTypeEnum.DIRECTEXPANSIONTUBEINTUBE = { type: 3, value: "DIRECTEXPANSIONTUBEINTUBE" }; + IfcEvaporatorTypeEnum.DIRECTEXPANSIONBRAZEDPLATE = { type: 3, value: "DIRECTEXPANSIONBRAZEDPLATE" }; + IfcEvaporatorTypeEnum.FLOODEDSHELLANDTUBE = { type: 3, value: "FLOODEDSHELLANDTUBE" }; + IfcEvaporatorTypeEnum.SHELLANDCOIL = { type: 3, value: "SHELLANDCOIL" }; + IfcEvaporatorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcEvaporatorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcEvaporatorTypeEnum = IfcEvaporatorTypeEnum; + class IfcFanTypeEnum { + } + IfcFanTypeEnum.CENTRIFUGALFORWARDCURVED = { type: 3, value: "CENTRIFUGALFORWARDCURVED" }; + IfcFanTypeEnum.CENTRIFUGALRADIAL = { type: 3, value: "CENTRIFUGALRADIAL" }; + IfcFanTypeEnum.CENTRIFUGALBACKWARDINCLINEDCURVED = { type: 3, value: "CENTRIFUGALBACKWARDINCLINEDCURVED" }; + IfcFanTypeEnum.CENTRIFUGALAIRFOIL = { type: 3, value: "CENTRIFUGALAIRFOIL" }; + IfcFanTypeEnum.TUBEAXIAL = { type: 3, value: "TUBEAXIAL" }; + IfcFanTypeEnum.VANEAXIAL = { type: 3, value: "VANEAXIAL" }; + IfcFanTypeEnum.PROPELLORAXIAL = { type: 3, value: "PROPELLORAXIAL" }; + IfcFanTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcFanTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcFanTypeEnum = IfcFanTypeEnum; + class IfcFilterTypeEnum { + } + IfcFilterTypeEnum.AIRPARTICLEFILTER = { type: 3, value: "AIRPARTICLEFILTER" }; + IfcFilterTypeEnum.ODORFILTER = { type: 3, value: "ODORFILTER" }; + IfcFilterTypeEnum.OILFILTER = { type: 3, value: "OILFILTER" }; + IfcFilterTypeEnum.STRAINER = { type: 3, value: "STRAINER" }; + IfcFilterTypeEnum.WATERFILTER = { type: 3, value: "WATERFILTER" }; + IfcFilterTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcFilterTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcFilterTypeEnum = IfcFilterTypeEnum; + class IfcFireSuppressionTerminalTypeEnum { + } + IfcFireSuppressionTerminalTypeEnum.BREECHINGINLET = { type: 3, value: "BREECHINGINLET" }; + IfcFireSuppressionTerminalTypeEnum.FIREHYDRANT = { type: 3, value: "FIREHYDRANT" }; + IfcFireSuppressionTerminalTypeEnum.HOSEREEL = { type: 3, value: "HOSEREEL" }; + IfcFireSuppressionTerminalTypeEnum.SPRINKLER = { type: 3, value: "SPRINKLER" }; + IfcFireSuppressionTerminalTypeEnum.SPRINKLERDEFLECTOR = { type: 3, value: "SPRINKLERDEFLECTOR" }; + IfcFireSuppressionTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcFireSuppressionTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcFireSuppressionTerminalTypeEnum = IfcFireSuppressionTerminalTypeEnum; + class IfcFlowDirectionEnum { + } + IfcFlowDirectionEnum.SOURCE = { type: 3, value: "SOURCE" }; + IfcFlowDirectionEnum.SINK = { type: 3, value: "SINK" }; + IfcFlowDirectionEnum.SOURCEANDSINK = { type: 3, value: "SOURCEANDSINK" }; + IfcFlowDirectionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcFlowDirectionEnum = IfcFlowDirectionEnum; + class IfcFlowInstrumentTypeEnum { + } + IfcFlowInstrumentTypeEnum.PRESSUREGAUGE = { type: 3, value: "PRESSUREGAUGE" }; + IfcFlowInstrumentTypeEnum.THERMOMETER = { type: 3, value: "THERMOMETER" }; + IfcFlowInstrumentTypeEnum.AMMETER = { type: 3, value: "AMMETER" }; + IfcFlowInstrumentTypeEnum.FREQUENCYMETER = { type: 3, value: "FREQUENCYMETER" }; + IfcFlowInstrumentTypeEnum.POWERFACTORMETER = { type: 3, value: "POWERFACTORMETER" }; + IfcFlowInstrumentTypeEnum.PHASEANGLEMETER = { type: 3, value: "PHASEANGLEMETER" }; + IfcFlowInstrumentTypeEnum.VOLTMETER_PEAK = { type: 3, value: "VOLTMETER_PEAK" }; + IfcFlowInstrumentTypeEnum.VOLTMETER_RMS = { type: 3, value: "VOLTMETER_RMS" }; + IfcFlowInstrumentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcFlowInstrumentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcFlowInstrumentTypeEnum = IfcFlowInstrumentTypeEnum; + class IfcFlowMeterTypeEnum { + } + IfcFlowMeterTypeEnum.ELECTRICMETER = { type: 3, value: "ELECTRICMETER" }; + IfcFlowMeterTypeEnum.ENERGYMETER = { type: 3, value: "ENERGYMETER" }; + IfcFlowMeterTypeEnum.FLOWMETER = { type: 3, value: "FLOWMETER" }; + IfcFlowMeterTypeEnum.GASMETER = { type: 3, value: "GASMETER" }; + IfcFlowMeterTypeEnum.OILMETER = { type: 3, value: "OILMETER" }; + IfcFlowMeterTypeEnum.WATERMETER = { type: 3, value: "WATERMETER" }; + IfcFlowMeterTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcFlowMeterTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcFlowMeterTypeEnum = IfcFlowMeterTypeEnum; + class IfcFootingTypeEnum { + } + IfcFootingTypeEnum.FOOTING_BEAM = { type: 3, value: "FOOTING_BEAM" }; + IfcFootingTypeEnum.PAD_FOOTING = { type: 3, value: "PAD_FOOTING" }; + IfcFootingTypeEnum.PILE_CAP = { type: 3, value: "PILE_CAP" }; + IfcFootingTypeEnum.STRIP_FOOTING = { type: 3, value: "STRIP_FOOTING" }; + IfcFootingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcFootingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcFootingTypeEnum = IfcFootingTypeEnum; + class IfcGasTerminalTypeEnum { + } + IfcGasTerminalTypeEnum.GASAPPLIANCE = { type: 3, value: "GASAPPLIANCE" }; + IfcGasTerminalTypeEnum.GASBOOSTER = { type: 3, value: "GASBOOSTER" }; + IfcGasTerminalTypeEnum.GASBURNER = { type: 3, value: "GASBURNER" }; + IfcGasTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcGasTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcGasTerminalTypeEnum = IfcGasTerminalTypeEnum; + class IfcGeometricProjectionEnum { + } + IfcGeometricProjectionEnum.GRAPH_VIEW = { type: 3, value: "GRAPH_VIEW" }; + IfcGeometricProjectionEnum.SKETCH_VIEW = { type: 3, value: "SKETCH_VIEW" }; + IfcGeometricProjectionEnum.MODEL_VIEW = { type: 3, value: "MODEL_VIEW" }; + IfcGeometricProjectionEnum.PLAN_VIEW = { type: 3, value: "PLAN_VIEW" }; + IfcGeometricProjectionEnum.REFLECTED_PLAN_VIEW = { type: 3, value: "REFLECTED_PLAN_VIEW" }; + IfcGeometricProjectionEnum.SECTION_VIEW = { type: 3, value: "SECTION_VIEW" }; + IfcGeometricProjectionEnum.ELEVATION_VIEW = { type: 3, value: "ELEVATION_VIEW" }; + IfcGeometricProjectionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcGeometricProjectionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcGeometricProjectionEnum = IfcGeometricProjectionEnum; + class IfcGlobalOrLocalEnum { + } + IfcGlobalOrLocalEnum.GLOBAL_COORDS = { type: 3, value: "GLOBAL_COORDS" }; + IfcGlobalOrLocalEnum.LOCAL_COORDS = { type: 3, value: "LOCAL_COORDS" }; + IFC2X32.IfcGlobalOrLocalEnum = IfcGlobalOrLocalEnum; + class IfcHeatExchangerTypeEnum { + } + IfcHeatExchangerTypeEnum.PLATE = { type: 3, value: "PLATE" }; + IfcHeatExchangerTypeEnum.SHELLANDTUBE = { type: 3, value: "SHELLANDTUBE" }; + IfcHeatExchangerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcHeatExchangerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcHeatExchangerTypeEnum = IfcHeatExchangerTypeEnum; + class IfcHumidifierTypeEnum { + } + IfcHumidifierTypeEnum.STEAMINJECTION = { type: 3, value: "STEAMINJECTION" }; + IfcHumidifierTypeEnum.ADIABATICAIRWASHER = { type: 3, value: "ADIABATICAIRWASHER" }; + IfcHumidifierTypeEnum.ADIABATICPAN = { type: 3, value: "ADIABATICPAN" }; + IfcHumidifierTypeEnum.ADIABATICWETTEDELEMENT = { type: 3, value: "ADIABATICWETTEDELEMENT" }; + IfcHumidifierTypeEnum.ADIABATICATOMIZING = { type: 3, value: "ADIABATICATOMIZING" }; + IfcHumidifierTypeEnum.ADIABATICULTRASONIC = { type: 3, value: "ADIABATICULTRASONIC" }; + IfcHumidifierTypeEnum.ADIABATICRIGIDMEDIA = { type: 3, value: "ADIABATICRIGIDMEDIA" }; + IfcHumidifierTypeEnum.ADIABATICCOMPRESSEDAIRNOZZLE = { type: 3, value: "ADIABATICCOMPRESSEDAIRNOZZLE" }; + IfcHumidifierTypeEnum.ASSISTEDELECTRIC = { type: 3, value: "ASSISTEDELECTRIC" }; + IfcHumidifierTypeEnum.ASSISTEDNATURALGAS = { type: 3, value: "ASSISTEDNATURALGAS" }; + IfcHumidifierTypeEnum.ASSISTEDPROPANE = { type: 3, value: "ASSISTEDPROPANE" }; + IfcHumidifierTypeEnum.ASSISTEDBUTANE = { type: 3, value: "ASSISTEDBUTANE" }; + IfcHumidifierTypeEnum.ASSISTEDSTEAM = { type: 3, value: "ASSISTEDSTEAM" }; + IfcHumidifierTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcHumidifierTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcHumidifierTypeEnum = IfcHumidifierTypeEnum; + class IfcInternalOrExternalEnum { + } + IfcInternalOrExternalEnum.INTERNAL = { type: 3, value: "INTERNAL" }; + IfcInternalOrExternalEnum.EXTERNAL = { type: 3, value: "EXTERNAL" }; + IfcInternalOrExternalEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcInternalOrExternalEnum = IfcInternalOrExternalEnum; + class IfcInventoryTypeEnum { + } + IfcInventoryTypeEnum.ASSETINVENTORY = { type: 3, value: "ASSETINVENTORY" }; + IfcInventoryTypeEnum.SPACEINVENTORY = { type: 3, value: "SPACEINVENTORY" }; + IfcInventoryTypeEnum.FURNITUREINVENTORY = { type: 3, value: "FURNITUREINVENTORY" }; + IfcInventoryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcInventoryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcInventoryTypeEnum = IfcInventoryTypeEnum; + class IfcJunctionBoxTypeEnum { + } + IfcJunctionBoxTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcJunctionBoxTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcJunctionBoxTypeEnum = IfcJunctionBoxTypeEnum; + class IfcLampTypeEnum { + } + IfcLampTypeEnum.COMPACTFLUORESCENT = { type: 3, value: "COMPACTFLUORESCENT" }; + IfcLampTypeEnum.FLUORESCENT = { type: 3, value: "FLUORESCENT" }; + IfcLampTypeEnum.HIGHPRESSUREMERCURY = { type: 3, value: "HIGHPRESSUREMERCURY" }; + IfcLampTypeEnum.HIGHPRESSURESODIUM = { type: 3, value: "HIGHPRESSURESODIUM" }; + IfcLampTypeEnum.METALHALIDE = { type: 3, value: "METALHALIDE" }; + IfcLampTypeEnum.TUNGSTENFILAMENT = { type: 3, value: "TUNGSTENFILAMENT" }; + IfcLampTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcLampTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcLampTypeEnum = IfcLampTypeEnum; + class IfcLayerSetDirectionEnum { + } + IfcLayerSetDirectionEnum.AXIS1 = { type: 3, value: "AXIS1" }; + IfcLayerSetDirectionEnum.AXIS2 = { type: 3, value: "AXIS2" }; + IfcLayerSetDirectionEnum.AXIS3 = { type: 3, value: "AXIS3" }; + IFC2X32.IfcLayerSetDirectionEnum = IfcLayerSetDirectionEnum; + class IfcLightDistributionCurveEnum { + } + IfcLightDistributionCurveEnum.TYPE_A = { type: 3, value: "TYPE_A" }; + IfcLightDistributionCurveEnum.TYPE_B = { type: 3, value: "TYPE_B" }; + IfcLightDistributionCurveEnum.TYPE_C = { type: 3, value: "TYPE_C" }; + IfcLightDistributionCurveEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcLightDistributionCurveEnum = IfcLightDistributionCurveEnum; + class IfcLightEmissionSourceEnum { + } + IfcLightEmissionSourceEnum.COMPACTFLUORESCENT = { type: 3, value: "COMPACTFLUORESCENT" }; + IfcLightEmissionSourceEnum.FLUORESCENT = { type: 3, value: "FLUORESCENT" }; + IfcLightEmissionSourceEnum.HIGHPRESSUREMERCURY = { type: 3, value: "HIGHPRESSUREMERCURY" }; + IfcLightEmissionSourceEnum.HIGHPRESSURESODIUM = { type: 3, value: "HIGHPRESSURESODIUM" }; + IfcLightEmissionSourceEnum.LIGHTEMITTINGDIODE = { type: 3, value: "LIGHTEMITTINGDIODE" }; + IfcLightEmissionSourceEnum.LOWPRESSURESODIUM = { type: 3, value: "LOWPRESSURESODIUM" }; + IfcLightEmissionSourceEnum.LOWVOLTAGEHALOGEN = { type: 3, value: "LOWVOLTAGEHALOGEN" }; + IfcLightEmissionSourceEnum.MAINVOLTAGEHALOGEN = { type: 3, value: "MAINVOLTAGEHALOGEN" }; + IfcLightEmissionSourceEnum.METALHALIDE = { type: 3, value: "METALHALIDE" }; + IfcLightEmissionSourceEnum.TUNGSTENFILAMENT = { type: 3, value: "TUNGSTENFILAMENT" }; + IfcLightEmissionSourceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcLightEmissionSourceEnum = IfcLightEmissionSourceEnum; + class IfcLightFixtureTypeEnum { + } + IfcLightFixtureTypeEnum.POINTSOURCE = { type: 3, value: "POINTSOURCE" }; + IfcLightFixtureTypeEnum.DIRECTIONSOURCE = { type: 3, value: "DIRECTIONSOURCE" }; + IfcLightFixtureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcLightFixtureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcLightFixtureTypeEnum = IfcLightFixtureTypeEnum; + class IfcLoadGroupTypeEnum { + } + IfcLoadGroupTypeEnum.LOAD_GROUP = { type: 3, value: "LOAD_GROUP" }; + IfcLoadGroupTypeEnum.LOAD_CASE = { type: 3, value: "LOAD_CASE" }; + IfcLoadGroupTypeEnum.LOAD_COMBINATION_GROUP = { type: 3, value: "LOAD_COMBINATION_GROUP" }; + IfcLoadGroupTypeEnum.LOAD_COMBINATION = { type: 3, value: "LOAD_COMBINATION" }; + IfcLoadGroupTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcLoadGroupTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcLoadGroupTypeEnum = IfcLoadGroupTypeEnum; + class IfcLogicalOperatorEnum { + } + IfcLogicalOperatorEnum.LOGICALAND = { type: 3, value: "LOGICALAND" }; + IfcLogicalOperatorEnum.LOGICALOR = { type: 3, value: "LOGICALOR" }; + IFC2X32.IfcLogicalOperatorEnum = IfcLogicalOperatorEnum; + class IfcMemberTypeEnum { + } + IfcMemberTypeEnum.BRACE = { type: 3, value: "BRACE" }; + IfcMemberTypeEnum.CHORD = { type: 3, value: "CHORD" }; + IfcMemberTypeEnum.COLLAR = { type: 3, value: "COLLAR" }; + IfcMemberTypeEnum.MEMBER = { type: 3, value: "MEMBER" }; + IfcMemberTypeEnum.MULLION = { type: 3, value: "MULLION" }; + IfcMemberTypeEnum.PLATE = { type: 3, value: "PLATE" }; + IfcMemberTypeEnum.POST = { type: 3, value: "POST" }; + IfcMemberTypeEnum.PURLIN = { type: 3, value: "PURLIN" }; + IfcMemberTypeEnum.RAFTER = { type: 3, value: "RAFTER" }; + IfcMemberTypeEnum.STRINGER = { type: 3, value: "STRINGER" }; + IfcMemberTypeEnum.STRUT = { type: 3, value: "STRUT" }; + IfcMemberTypeEnum.STUD = { type: 3, value: "STUD" }; + IfcMemberTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcMemberTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcMemberTypeEnum = IfcMemberTypeEnum; + class IfcMotorConnectionTypeEnum { + } + IfcMotorConnectionTypeEnum.BELTDRIVE = { type: 3, value: "BELTDRIVE" }; + IfcMotorConnectionTypeEnum.COUPLING = { type: 3, value: "COUPLING" }; + IfcMotorConnectionTypeEnum.DIRECTDRIVE = { type: 3, value: "DIRECTDRIVE" }; + IfcMotorConnectionTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcMotorConnectionTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcMotorConnectionTypeEnum = IfcMotorConnectionTypeEnum; + class IfcNullStyle { + } + IfcNullStyle.NULL = { type: 3, value: "NULL" }; + IFC2X32.IfcNullStyle = IfcNullStyle; + class IfcObjectTypeEnum { + } + IfcObjectTypeEnum.PRODUCT = { type: 3, value: "PRODUCT" }; + IfcObjectTypeEnum.PROCESS = { type: 3, value: "PROCESS" }; + IfcObjectTypeEnum.CONTROL = { type: 3, value: "CONTROL" }; + IfcObjectTypeEnum.RESOURCE = { type: 3, value: "RESOURCE" }; + IfcObjectTypeEnum.ACTOR = { type: 3, value: "ACTOR" }; + IfcObjectTypeEnum.GROUP = { type: 3, value: "GROUP" }; + IfcObjectTypeEnum.PROJECT = { type: 3, value: "PROJECT" }; + IfcObjectTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcObjectTypeEnum = IfcObjectTypeEnum; + class IfcObjectiveEnum { + } + IfcObjectiveEnum.CODECOMPLIANCE = { type: 3, value: "CODECOMPLIANCE" }; + IfcObjectiveEnum.DESIGNINTENT = { type: 3, value: "DESIGNINTENT" }; + IfcObjectiveEnum.HEALTHANDSAFETY = { type: 3, value: "HEALTHANDSAFETY" }; + IfcObjectiveEnum.REQUIREMENT = { type: 3, value: "REQUIREMENT" }; + IfcObjectiveEnum.SPECIFICATION = { type: 3, value: "SPECIFICATION" }; + IfcObjectiveEnum.TRIGGERCONDITION = { type: 3, value: "TRIGGERCONDITION" }; + IfcObjectiveEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcObjectiveEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcObjectiveEnum = IfcObjectiveEnum; + class IfcOccupantTypeEnum { + } + IfcOccupantTypeEnum.ASSIGNEE = { type: 3, value: "ASSIGNEE" }; + IfcOccupantTypeEnum.ASSIGNOR = { type: 3, value: "ASSIGNOR" }; + IfcOccupantTypeEnum.LESSEE = { type: 3, value: "LESSEE" }; + IfcOccupantTypeEnum.LESSOR = { type: 3, value: "LESSOR" }; + IfcOccupantTypeEnum.LETTINGAGENT = { type: 3, value: "LETTINGAGENT" }; + IfcOccupantTypeEnum.OWNER = { type: 3, value: "OWNER" }; + IfcOccupantTypeEnum.TENANT = { type: 3, value: "TENANT" }; + IfcOccupantTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcOccupantTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcOccupantTypeEnum = IfcOccupantTypeEnum; + class IfcOutletTypeEnum { + } + IfcOutletTypeEnum.AUDIOVISUALOUTLET = { type: 3, value: "AUDIOVISUALOUTLET" }; + IfcOutletTypeEnum.COMMUNICATIONSOUTLET = { type: 3, value: "COMMUNICATIONSOUTLET" }; + IfcOutletTypeEnum.POWEROUTLET = { type: 3, value: "POWEROUTLET" }; + IfcOutletTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcOutletTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcOutletTypeEnum = IfcOutletTypeEnum; + class IfcPermeableCoveringOperationEnum { + } + IfcPermeableCoveringOperationEnum.GRILL = { type: 3, value: "GRILL" }; + IfcPermeableCoveringOperationEnum.LOUVER = { type: 3, value: "LOUVER" }; + IfcPermeableCoveringOperationEnum.SCREEN = { type: 3, value: "SCREEN" }; + IfcPermeableCoveringOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcPermeableCoveringOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcPermeableCoveringOperationEnum = IfcPermeableCoveringOperationEnum; + class IfcPhysicalOrVirtualEnum { + } + IfcPhysicalOrVirtualEnum.PHYSICAL = { type: 3, value: "PHYSICAL" }; + IfcPhysicalOrVirtualEnum.VIRTUAL = { type: 3, value: "VIRTUAL" }; + IfcPhysicalOrVirtualEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcPhysicalOrVirtualEnum = IfcPhysicalOrVirtualEnum; + class IfcPileConstructionEnum { + } + IfcPileConstructionEnum.CAST_IN_PLACE = { type: 3, value: "CAST_IN_PLACE" }; + IfcPileConstructionEnum.COMPOSITE = { type: 3, value: "COMPOSITE" }; + IfcPileConstructionEnum.PRECAST_CONCRETE = { type: 3, value: "PRECAST_CONCRETE" }; + IfcPileConstructionEnum.PREFAB_STEEL = { type: 3, value: "PREFAB_STEEL" }; + IfcPileConstructionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcPileConstructionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcPileConstructionEnum = IfcPileConstructionEnum; + class IfcPileTypeEnum { + } + IfcPileTypeEnum.COHESION = { type: 3, value: "COHESION" }; + IfcPileTypeEnum.FRICTION = { type: 3, value: "FRICTION" }; + IfcPileTypeEnum.SUPPORT = { type: 3, value: "SUPPORT" }; + IfcPileTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcPileTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcPileTypeEnum = IfcPileTypeEnum; + class IfcPipeFittingTypeEnum { + } + IfcPipeFittingTypeEnum.BEND = { type: 3, value: "BEND" }; + IfcPipeFittingTypeEnum.CONNECTOR = { type: 3, value: "CONNECTOR" }; + IfcPipeFittingTypeEnum.ENTRY = { type: 3, value: "ENTRY" }; + IfcPipeFittingTypeEnum.EXIT = { type: 3, value: "EXIT" }; + IfcPipeFittingTypeEnum.JUNCTION = { type: 3, value: "JUNCTION" }; + IfcPipeFittingTypeEnum.OBSTRUCTION = { type: 3, value: "OBSTRUCTION" }; + IfcPipeFittingTypeEnum.TRANSITION = { type: 3, value: "TRANSITION" }; + IfcPipeFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcPipeFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcPipeFittingTypeEnum = IfcPipeFittingTypeEnum; + class IfcPipeSegmentTypeEnum { + } + IfcPipeSegmentTypeEnum.FLEXIBLESEGMENT = { type: 3, value: "FLEXIBLESEGMENT" }; + IfcPipeSegmentTypeEnum.RIGIDSEGMENT = { type: 3, value: "RIGIDSEGMENT" }; + IfcPipeSegmentTypeEnum.GUTTER = { type: 3, value: "GUTTER" }; + IfcPipeSegmentTypeEnum.SPOOL = { type: 3, value: "SPOOL" }; + IfcPipeSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcPipeSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcPipeSegmentTypeEnum = IfcPipeSegmentTypeEnum; + class IfcPlateTypeEnum { + } + IfcPlateTypeEnum.CURTAIN_PANEL = { type: 3, value: "CURTAIN_PANEL" }; + IfcPlateTypeEnum.SHEET = { type: 3, value: "SHEET" }; + IfcPlateTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcPlateTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcPlateTypeEnum = IfcPlateTypeEnum; + class IfcProcedureTypeEnum { + } + IfcProcedureTypeEnum.ADVICE_CAUTION = { type: 3, value: "ADVICE_CAUTION" }; + IfcProcedureTypeEnum.ADVICE_NOTE = { type: 3, value: "ADVICE_NOTE" }; + IfcProcedureTypeEnum.ADVICE_WARNING = { type: 3, value: "ADVICE_WARNING" }; + IfcProcedureTypeEnum.CALIBRATION = { type: 3, value: "CALIBRATION" }; + IfcProcedureTypeEnum.DIAGNOSTIC = { type: 3, value: "DIAGNOSTIC" }; + IfcProcedureTypeEnum.SHUTDOWN = { type: 3, value: "SHUTDOWN" }; + IfcProcedureTypeEnum.STARTUP = { type: 3, value: "STARTUP" }; + IfcProcedureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcProcedureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcProcedureTypeEnum = IfcProcedureTypeEnum; + class IfcProfileTypeEnum { + } + IfcProfileTypeEnum.CURVE = { type: 3, value: "CURVE" }; + IfcProfileTypeEnum.AREA = { type: 3, value: "AREA" }; + IFC2X32.IfcProfileTypeEnum = IfcProfileTypeEnum; + class IfcProjectOrderRecordTypeEnum { + } + IfcProjectOrderRecordTypeEnum.CHANGE = { type: 3, value: "CHANGE" }; + IfcProjectOrderRecordTypeEnum.MAINTENANCE = { type: 3, value: "MAINTENANCE" }; + IfcProjectOrderRecordTypeEnum.MOVE = { type: 3, value: "MOVE" }; + IfcProjectOrderRecordTypeEnum.PURCHASE = { type: 3, value: "PURCHASE" }; + IfcProjectOrderRecordTypeEnum.WORK = { type: 3, value: "WORK" }; + IfcProjectOrderRecordTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcProjectOrderRecordTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcProjectOrderRecordTypeEnum = IfcProjectOrderRecordTypeEnum; + class IfcProjectOrderTypeEnum { + } + IfcProjectOrderTypeEnum.CHANGEORDER = { type: 3, value: "CHANGEORDER" }; + IfcProjectOrderTypeEnum.MAINTENANCEWORKORDER = { type: 3, value: "MAINTENANCEWORKORDER" }; + IfcProjectOrderTypeEnum.MOVEORDER = { type: 3, value: "MOVEORDER" }; + IfcProjectOrderTypeEnum.PURCHASEORDER = { type: 3, value: "PURCHASEORDER" }; + IfcProjectOrderTypeEnum.WORKORDER = { type: 3, value: "WORKORDER" }; + IfcProjectOrderTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcProjectOrderTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcProjectOrderTypeEnum = IfcProjectOrderTypeEnum; + class IfcProjectedOrTrueLengthEnum { + } + IfcProjectedOrTrueLengthEnum.PROJECTED_LENGTH = { type: 3, value: "PROJECTED_LENGTH" }; + IfcProjectedOrTrueLengthEnum.TRUE_LENGTH = { type: 3, value: "TRUE_LENGTH" }; + IFC2X32.IfcProjectedOrTrueLengthEnum = IfcProjectedOrTrueLengthEnum; + class IfcPropertySourceEnum { + } + IfcPropertySourceEnum.DESIGN = { type: 3, value: "DESIGN" }; + IfcPropertySourceEnum.DESIGNMAXIMUM = { type: 3, value: "DESIGNMAXIMUM" }; + IfcPropertySourceEnum.DESIGNMINIMUM = { type: 3, value: "DESIGNMINIMUM" }; + IfcPropertySourceEnum.SIMULATED = { type: 3, value: "SIMULATED" }; + IfcPropertySourceEnum.ASBUILT = { type: 3, value: "ASBUILT" }; + IfcPropertySourceEnum.COMMISSIONING = { type: 3, value: "COMMISSIONING" }; + IfcPropertySourceEnum.MEASURED = { type: 3, value: "MEASURED" }; + IfcPropertySourceEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcPropertySourceEnum.NOTKNOWN = { type: 3, value: "NOTKNOWN" }; + IFC2X32.IfcPropertySourceEnum = IfcPropertySourceEnum; + class IfcProtectiveDeviceTypeEnum { + } + IfcProtectiveDeviceTypeEnum.FUSEDISCONNECTOR = { type: 3, value: "FUSEDISCONNECTOR" }; + IfcProtectiveDeviceTypeEnum.CIRCUITBREAKER = { type: 3, value: "CIRCUITBREAKER" }; + IfcProtectiveDeviceTypeEnum.EARTHFAILUREDEVICE = { type: 3, value: "EARTHFAILUREDEVICE" }; + IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTCIRCUITBREAKER = { type: 3, value: "RESIDUALCURRENTCIRCUITBREAKER" }; + IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTSWITCH = { type: 3, value: "RESIDUALCURRENTSWITCH" }; + IfcProtectiveDeviceTypeEnum.VARISTOR = { type: 3, value: "VARISTOR" }; + IfcProtectiveDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcProtectiveDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcProtectiveDeviceTypeEnum = IfcProtectiveDeviceTypeEnum; + class IfcPumpTypeEnum { + } + IfcPumpTypeEnum.CIRCULATOR = { type: 3, value: "CIRCULATOR" }; + IfcPumpTypeEnum.ENDSUCTION = { type: 3, value: "ENDSUCTION" }; + IfcPumpTypeEnum.SPLITCASE = { type: 3, value: "SPLITCASE" }; + IfcPumpTypeEnum.VERTICALINLINE = { type: 3, value: "VERTICALINLINE" }; + IfcPumpTypeEnum.VERTICALTURBINE = { type: 3, value: "VERTICALTURBINE" }; + IfcPumpTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcPumpTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcPumpTypeEnum = IfcPumpTypeEnum; + class IfcRailingTypeEnum { + } + IfcRailingTypeEnum.HANDRAIL = { type: 3, value: "HANDRAIL" }; + IfcRailingTypeEnum.GUARDRAIL = { type: 3, value: "GUARDRAIL" }; + IfcRailingTypeEnum.BALUSTRADE = { type: 3, value: "BALUSTRADE" }; + IfcRailingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcRailingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcRailingTypeEnum = IfcRailingTypeEnum; + class IfcRampFlightTypeEnum { + } + IfcRampFlightTypeEnum.STRAIGHT = { type: 3, value: "STRAIGHT" }; + IfcRampFlightTypeEnum.SPIRAL = { type: 3, value: "SPIRAL" }; + IfcRampFlightTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcRampFlightTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcRampFlightTypeEnum = IfcRampFlightTypeEnum; + class IfcRampTypeEnum { + } + IfcRampTypeEnum.STRAIGHT_RUN_RAMP = { type: 3, value: "STRAIGHT_RUN_RAMP" }; + IfcRampTypeEnum.TWO_STRAIGHT_RUN_RAMP = { type: 3, value: "TWO_STRAIGHT_RUN_RAMP" }; + IfcRampTypeEnum.QUARTER_TURN_RAMP = { type: 3, value: "QUARTER_TURN_RAMP" }; + IfcRampTypeEnum.TWO_QUARTER_TURN_RAMP = { type: 3, value: "TWO_QUARTER_TURN_RAMP" }; + IfcRampTypeEnum.HALF_TURN_RAMP = { type: 3, value: "HALF_TURN_RAMP" }; + IfcRampTypeEnum.SPIRAL_RAMP = { type: 3, value: "SPIRAL_RAMP" }; + IfcRampTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcRampTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcRampTypeEnum = IfcRampTypeEnum; + class IfcReflectanceMethodEnum { + } + IfcReflectanceMethodEnum.BLINN = { type: 3, value: "BLINN" }; + IfcReflectanceMethodEnum.FLAT = { type: 3, value: "FLAT" }; + IfcReflectanceMethodEnum.GLASS = { type: 3, value: "GLASS" }; + IfcReflectanceMethodEnum.MATT = { type: 3, value: "MATT" }; + IfcReflectanceMethodEnum.METAL = { type: 3, value: "METAL" }; + IfcReflectanceMethodEnum.MIRROR = { type: 3, value: "MIRROR" }; + IfcReflectanceMethodEnum.PHONG = { type: 3, value: "PHONG" }; + IfcReflectanceMethodEnum.PLASTIC = { type: 3, value: "PLASTIC" }; + IfcReflectanceMethodEnum.STRAUSS = { type: 3, value: "STRAUSS" }; + IfcReflectanceMethodEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcReflectanceMethodEnum = IfcReflectanceMethodEnum; + class IfcReinforcingBarRoleEnum { + } + IfcReinforcingBarRoleEnum.MAIN = { type: 3, value: "MAIN" }; + IfcReinforcingBarRoleEnum.SHEAR = { type: 3, value: "SHEAR" }; + IfcReinforcingBarRoleEnum.LIGATURE = { type: 3, value: "LIGATURE" }; + IfcReinforcingBarRoleEnum.STUD = { type: 3, value: "STUD" }; + IfcReinforcingBarRoleEnum.PUNCHING = { type: 3, value: "PUNCHING" }; + IfcReinforcingBarRoleEnum.EDGE = { type: 3, value: "EDGE" }; + IfcReinforcingBarRoleEnum.RING = { type: 3, value: "RING" }; + IfcReinforcingBarRoleEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcReinforcingBarRoleEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcReinforcingBarRoleEnum = IfcReinforcingBarRoleEnum; + class IfcReinforcingBarSurfaceEnum { + } + IfcReinforcingBarSurfaceEnum.PLAIN = { type: 3, value: "PLAIN" }; + IfcReinforcingBarSurfaceEnum.TEXTURED = { type: 3, value: "TEXTURED" }; + IFC2X32.IfcReinforcingBarSurfaceEnum = IfcReinforcingBarSurfaceEnum; + class IfcResourceConsumptionEnum { + } + IfcResourceConsumptionEnum.CONSUMED = { type: 3, value: "CONSUMED" }; + IfcResourceConsumptionEnum.PARTIALLYCONSUMED = { type: 3, value: "PARTIALLYCONSUMED" }; + IfcResourceConsumptionEnum.NOTCONSUMED = { type: 3, value: "NOTCONSUMED" }; + IfcResourceConsumptionEnum.OCCUPIED = { type: 3, value: "OCCUPIED" }; + IfcResourceConsumptionEnum.PARTIALLYOCCUPIED = { type: 3, value: "PARTIALLYOCCUPIED" }; + IfcResourceConsumptionEnum.NOTOCCUPIED = { type: 3, value: "NOTOCCUPIED" }; + IfcResourceConsumptionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcResourceConsumptionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcResourceConsumptionEnum = IfcResourceConsumptionEnum; + class IfcRibPlateDirectionEnum { + } + IfcRibPlateDirectionEnum.DIRECTION_X = { type: 3, value: "DIRECTION_X" }; + IfcRibPlateDirectionEnum.DIRECTION_Y = { type: 3, value: "DIRECTION_Y" }; + IFC2X32.IfcRibPlateDirectionEnum = IfcRibPlateDirectionEnum; + class IfcRoleEnum { + } + IfcRoleEnum.SUPPLIER = { type: 3, value: "SUPPLIER" }; + IfcRoleEnum.MANUFACTURER = { type: 3, value: "MANUFACTURER" }; + IfcRoleEnum.CONTRACTOR = { type: 3, value: "CONTRACTOR" }; + IfcRoleEnum.SUBCONTRACTOR = { type: 3, value: "SUBCONTRACTOR" }; + IfcRoleEnum.ARCHITECT = { type: 3, value: "ARCHITECT" }; + IfcRoleEnum.STRUCTURALENGINEER = { type: 3, value: "STRUCTURALENGINEER" }; + IfcRoleEnum.COSTENGINEER = { type: 3, value: "COSTENGINEER" }; + IfcRoleEnum.CLIENT = { type: 3, value: "CLIENT" }; + IfcRoleEnum.BUILDINGOWNER = { type: 3, value: "BUILDINGOWNER" }; + IfcRoleEnum.BUILDINGOPERATOR = { type: 3, value: "BUILDINGOPERATOR" }; + IfcRoleEnum.MECHANICALENGINEER = { type: 3, value: "MECHANICALENGINEER" }; + IfcRoleEnum.ELECTRICALENGINEER = { type: 3, value: "ELECTRICALENGINEER" }; + IfcRoleEnum.PROJECTMANAGER = { type: 3, value: "PROJECTMANAGER" }; + IfcRoleEnum.FACILITIESMANAGER = { type: 3, value: "FACILITIESMANAGER" }; + IfcRoleEnum.CIVILENGINEER = { type: 3, value: "CIVILENGINEER" }; + IfcRoleEnum.COMISSIONINGENGINEER = { type: 3, value: "COMISSIONINGENGINEER" }; + IfcRoleEnum.ENGINEER = { type: 3, value: "ENGINEER" }; + IfcRoleEnum.OWNER = { type: 3, value: "OWNER" }; + IfcRoleEnum.CONSULTANT = { type: 3, value: "CONSULTANT" }; + IfcRoleEnum.CONSTRUCTIONMANAGER = { type: 3, value: "CONSTRUCTIONMANAGER" }; + IfcRoleEnum.FIELDCONSTRUCTIONMANAGER = { type: 3, value: "FIELDCONSTRUCTIONMANAGER" }; + IfcRoleEnum.RESELLER = { type: 3, value: "RESELLER" }; + IfcRoleEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IFC2X32.IfcRoleEnum = IfcRoleEnum; + class IfcRoofTypeEnum { + } + IfcRoofTypeEnum.FLAT_ROOF = { type: 3, value: "FLAT_ROOF" }; + IfcRoofTypeEnum.SHED_ROOF = { type: 3, value: "SHED_ROOF" }; + IfcRoofTypeEnum.GABLE_ROOF = { type: 3, value: "GABLE_ROOF" }; + IfcRoofTypeEnum.HIP_ROOF = { type: 3, value: "HIP_ROOF" }; + IfcRoofTypeEnum.HIPPED_GABLE_ROOF = { type: 3, value: "HIPPED_GABLE_ROOF" }; + IfcRoofTypeEnum.GAMBREL_ROOF = { type: 3, value: "GAMBREL_ROOF" }; + IfcRoofTypeEnum.MANSARD_ROOF = { type: 3, value: "MANSARD_ROOF" }; + IfcRoofTypeEnum.BARREL_ROOF = { type: 3, value: "BARREL_ROOF" }; + IfcRoofTypeEnum.RAINBOW_ROOF = { type: 3, value: "RAINBOW_ROOF" }; + IfcRoofTypeEnum.BUTTERFLY_ROOF = { type: 3, value: "BUTTERFLY_ROOF" }; + IfcRoofTypeEnum.PAVILION_ROOF = { type: 3, value: "PAVILION_ROOF" }; + IfcRoofTypeEnum.DOME_ROOF = { type: 3, value: "DOME_ROOF" }; + IfcRoofTypeEnum.FREEFORM = { type: 3, value: "FREEFORM" }; + IfcRoofTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcRoofTypeEnum = IfcRoofTypeEnum; + class IfcSIPrefix { + } + IfcSIPrefix.EXA = { type: 3, value: "EXA" }; + IfcSIPrefix.PETA = { type: 3, value: "PETA" }; + IfcSIPrefix.TERA = { type: 3, value: "TERA" }; + IfcSIPrefix.GIGA = { type: 3, value: "GIGA" }; + IfcSIPrefix.MEGA = { type: 3, value: "MEGA" }; + IfcSIPrefix.KILO = { type: 3, value: "KILO" }; + IfcSIPrefix.HECTO = { type: 3, value: "HECTO" }; + IfcSIPrefix.DECA = { type: 3, value: "DECA" }; + IfcSIPrefix.DECI = { type: 3, value: "DECI" }; + IfcSIPrefix.CENTI = { type: 3, value: "CENTI" }; + IfcSIPrefix.MILLI = { type: 3, value: "MILLI" }; + IfcSIPrefix.MICRO = { type: 3, value: "MICRO" }; + IfcSIPrefix.NANO = { type: 3, value: "NANO" }; + IfcSIPrefix.PICO = { type: 3, value: "PICO" }; + IfcSIPrefix.FEMTO = { type: 3, value: "FEMTO" }; + IfcSIPrefix.ATTO = { type: 3, value: "ATTO" }; + IFC2X32.IfcSIPrefix = IfcSIPrefix; + class IfcSIUnitName { + } + IfcSIUnitName.AMPERE = { type: 3, value: "AMPERE" }; + IfcSIUnitName.BECQUEREL = { type: 3, value: "BECQUEREL" }; + IfcSIUnitName.CANDELA = { type: 3, value: "CANDELA" }; + IfcSIUnitName.COULOMB = { type: 3, value: "COULOMB" }; + IfcSIUnitName.CUBIC_METRE = { type: 3, value: "CUBIC_METRE" }; + IfcSIUnitName.DEGREE_CELSIUS = { type: 3, value: "DEGREE_CELSIUS" }; + IfcSIUnitName.FARAD = { type: 3, value: "FARAD" }; + IfcSIUnitName.GRAM = { type: 3, value: "GRAM" }; + IfcSIUnitName.GRAY = { type: 3, value: "GRAY" }; + IfcSIUnitName.HENRY = { type: 3, value: "HENRY" }; + IfcSIUnitName.HERTZ = { type: 3, value: "HERTZ" }; + IfcSIUnitName.JOULE = { type: 3, value: "JOULE" }; + IfcSIUnitName.KELVIN = { type: 3, value: "KELVIN" }; + IfcSIUnitName.LUMEN = { type: 3, value: "LUMEN" }; + IfcSIUnitName.LUX = { type: 3, value: "LUX" }; + IfcSIUnitName.METRE = { type: 3, value: "METRE" }; + IfcSIUnitName.MOLE = { type: 3, value: "MOLE" }; + IfcSIUnitName.NEWTON = { type: 3, value: "NEWTON" }; + IfcSIUnitName.OHM = { type: 3, value: "OHM" }; + IfcSIUnitName.PASCAL = { type: 3, value: "PASCAL" }; + IfcSIUnitName.RADIAN = { type: 3, value: "RADIAN" }; + IfcSIUnitName.SECOND = { type: 3, value: "SECOND" }; + IfcSIUnitName.SIEMENS = { type: 3, value: "SIEMENS" }; + IfcSIUnitName.SIEVERT = { type: 3, value: "SIEVERT" }; + IfcSIUnitName.SQUARE_METRE = { type: 3, value: "SQUARE_METRE" }; + IfcSIUnitName.STERADIAN = { type: 3, value: "STERADIAN" }; + IfcSIUnitName.TESLA = { type: 3, value: "TESLA" }; + IfcSIUnitName.VOLT = { type: 3, value: "VOLT" }; + IfcSIUnitName.WATT = { type: 3, value: "WATT" }; + IfcSIUnitName.WEBER = { type: 3, value: "WEBER" }; + IFC2X32.IfcSIUnitName = IfcSIUnitName; + class IfcSanitaryTerminalTypeEnum { + } + IfcSanitaryTerminalTypeEnum.BATH = { type: 3, value: "BATH" }; + IfcSanitaryTerminalTypeEnum.BIDET = { type: 3, value: "BIDET" }; + IfcSanitaryTerminalTypeEnum.CISTERN = { type: 3, value: "CISTERN" }; + IfcSanitaryTerminalTypeEnum.SHOWER = { type: 3, value: "SHOWER" }; + IfcSanitaryTerminalTypeEnum.SINK = { type: 3, value: "SINK" }; + IfcSanitaryTerminalTypeEnum.SANITARYFOUNTAIN = { type: 3, value: "SANITARYFOUNTAIN" }; + IfcSanitaryTerminalTypeEnum.TOILETPAN = { type: 3, value: "TOILETPAN" }; + IfcSanitaryTerminalTypeEnum.URINAL = { type: 3, value: "URINAL" }; + IfcSanitaryTerminalTypeEnum.WASHHANDBASIN = { type: 3, value: "WASHHANDBASIN" }; + IfcSanitaryTerminalTypeEnum.WCSEAT = { type: 3, value: "WCSEAT" }; + IfcSanitaryTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcSanitaryTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcSanitaryTerminalTypeEnum = IfcSanitaryTerminalTypeEnum; + class IfcSectionTypeEnum { + } + IfcSectionTypeEnum.UNIFORM = { type: 3, value: "UNIFORM" }; + IfcSectionTypeEnum.TAPERED = { type: 3, value: "TAPERED" }; + IFC2X32.IfcSectionTypeEnum = IfcSectionTypeEnum; + class IfcSensorTypeEnum { + } + IfcSensorTypeEnum.CO2SENSOR = { type: 3, value: "CO2SENSOR" }; + IfcSensorTypeEnum.FIRESENSOR = { type: 3, value: "FIRESENSOR" }; + IfcSensorTypeEnum.FLOWSENSOR = { type: 3, value: "FLOWSENSOR" }; + IfcSensorTypeEnum.GASSENSOR = { type: 3, value: "GASSENSOR" }; + IfcSensorTypeEnum.HEATSENSOR = { type: 3, value: "HEATSENSOR" }; + IfcSensorTypeEnum.HUMIDITYSENSOR = { type: 3, value: "HUMIDITYSENSOR" }; + IfcSensorTypeEnum.LIGHTSENSOR = { type: 3, value: "LIGHTSENSOR" }; + IfcSensorTypeEnum.MOISTURESENSOR = { type: 3, value: "MOISTURESENSOR" }; + IfcSensorTypeEnum.MOVEMENTSENSOR = { type: 3, value: "MOVEMENTSENSOR" }; + IfcSensorTypeEnum.PRESSURESENSOR = { type: 3, value: "PRESSURESENSOR" }; + IfcSensorTypeEnum.SMOKESENSOR = { type: 3, value: "SMOKESENSOR" }; + IfcSensorTypeEnum.SOUNDSENSOR = { type: 3, value: "SOUNDSENSOR" }; + IfcSensorTypeEnum.TEMPERATURESENSOR = { type: 3, value: "TEMPERATURESENSOR" }; + IfcSensorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcSensorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcSensorTypeEnum = IfcSensorTypeEnum; + class IfcSequenceEnum { + } + IfcSequenceEnum.START_START = { type: 3, value: "START_START" }; + IfcSequenceEnum.START_FINISH = { type: 3, value: "START_FINISH" }; + IfcSequenceEnum.FINISH_START = { type: 3, value: "FINISH_START" }; + IfcSequenceEnum.FINISH_FINISH = { type: 3, value: "FINISH_FINISH" }; + IfcSequenceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcSequenceEnum = IfcSequenceEnum; + class IfcServiceLifeFactorTypeEnum { + } + IfcServiceLifeFactorTypeEnum.A_QUALITYOFCOMPONENTS = { type: 3, value: "A_QUALITYOFCOMPONENTS" }; + IfcServiceLifeFactorTypeEnum.B_DESIGNLEVEL = { type: 3, value: "B_DESIGNLEVEL" }; + IfcServiceLifeFactorTypeEnum.C_WORKEXECUTIONLEVEL = { type: 3, value: "C_WORKEXECUTIONLEVEL" }; + IfcServiceLifeFactorTypeEnum.D_INDOORENVIRONMENT = { type: 3, value: "D_INDOORENVIRONMENT" }; + IfcServiceLifeFactorTypeEnum.E_OUTDOORENVIRONMENT = { type: 3, value: "E_OUTDOORENVIRONMENT" }; + IfcServiceLifeFactorTypeEnum.F_INUSECONDITIONS = { type: 3, value: "F_INUSECONDITIONS" }; + IfcServiceLifeFactorTypeEnum.G_MAINTENANCELEVEL = { type: 3, value: "G_MAINTENANCELEVEL" }; + IfcServiceLifeFactorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcServiceLifeFactorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcServiceLifeFactorTypeEnum = IfcServiceLifeFactorTypeEnum; + class IfcServiceLifeTypeEnum { + } + IfcServiceLifeTypeEnum.ACTUALSERVICELIFE = { type: 3, value: "ACTUALSERVICELIFE" }; + IfcServiceLifeTypeEnum.EXPECTEDSERVICELIFE = { type: 3, value: "EXPECTEDSERVICELIFE" }; + IfcServiceLifeTypeEnum.OPTIMISTICREFERENCESERVICELIFE = { type: 3, value: "OPTIMISTICREFERENCESERVICELIFE" }; + IfcServiceLifeTypeEnum.PESSIMISTICREFERENCESERVICELIFE = { type: 3, value: "PESSIMISTICREFERENCESERVICELIFE" }; + IfcServiceLifeTypeEnum.REFERENCESERVICELIFE = { type: 3, value: "REFERENCESERVICELIFE" }; + IFC2X32.IfcServiceLifeTypeEnum = IfcServiceLifeTypeEnum; + class IfcSlabTypeEnum { + } + IfcSlabTypeEnum.FLOOR = { type: 3, value: "FLOOR" }; + IfcSlabTypeEnum.ROOF = { type: 3, value: "ROOF" }; + IfcSlabTypeEnum.LANDING = { type: 3, value: "LANDING" }; + IfcSlabTypeEnum.BASESLAB = { type: 3, value: "BASESLAB" }; + IfcSlabTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcSlabTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcSlabTypeEnum = IfcSlabTypeEnum; + class IfcSoundScaleEnum { + } + IfcSoundScaleEnum.DBA = { type: 3, value: "DBA" }; + IfcSoundScaleEnum.DBB = { type: 3, value: "DBB" }; + IfcSoundScaleEnum.DBC = { type: 3, value: "DBC" }; + IfcSoundScaleEnum.NC = { type: 3, value: "NC" }; + IfcSoundScaleEnum.NR = { type: 3, value: "NR" }; + IfcSoundScaleEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcSoundScaleEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcSoundScaleEnum = IfcSoundScaleEnum; + class IfcSpaceHeaterTypeEnum { + } + IfcSpaceHeaterTypeEnum.SECTIONALRADIATOR = { type: 3, value: "SECTIONALRADIATOR" }; + IfcSpaceHeaterTypeEnum.PANELRADIATOR = { type: 3, value: "PANELRADIATOR" }; + IfcSpaceHeaterTypeEnum.TUBULARRADIATOR = { type: 3, value: "TUBULARRADIATOR" }; + IfcSpaceHeaterTypeEnum.CONVECTOR = { type: 3, value: "CONVECTOR" }; + IfcSpaceHeaterTypeEnum.BASEBOARDHEATER = { type: 3, value: "BASEBOARDHEATER" }; + IfcSpaceHeaterTypeEnum.FINNEDTUBEUNIT = { type: 3, value: "FINNEDTUBEUNIT" }; + IfcSpaceHeaterTypeEnum.UNITHEATER = { type: 3, value: "UNITHEATER" }; + IfcSpaceHeaterTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcSpaceHeaterTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcSpaceHeaterTypeEnum = IfcSpaceHeaterTypeEnum; + class IfcSpaceTypeEnum { + } + IfcSpaceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcSpaceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcSpaceTypeEnum = IfcSpaceTypeEnum; + class IfcStackTerminalTypeEnum { + } + IfcStackTerminalTypeEnum.BIRDCAGE = { type: 3, value: "BIRDCAGE" }; + IfcStackTerminalTypeEnum.COWL = { type: 3, value: "COWL" }; + IfcStackTerminalTypeEnum.RAINWATERHOPPER = { type: 3, value: "RAINWATERHOPPER" }; + IfcStackTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcStackTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcStackTerminalTypeEnum = IfcStackTerminalTypeEnum; + class IfcStairFlightTypeEnum { + } + IfcStairFlightTypeEnum.STRAIGHT = { type: 3, value: "STRAIGHT" }; + IfcStairFlightTypeEnum.WINDER = { type: 3, value: "WINDER" }; + IfcStairFlightTypeEnum.SPIRAL = { type: 3, value: "SPIRAL" }; + IfcStairFlightTypeEnum.CURVED = { type: 3, value: "CURVED" }; + IfcStairFlightTypeEnum.FREEFORM = { type: 3, value: "FREEFORM" }; + IfcStairFlightTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcStairFlightTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcStairFlightTypeEnum = IfcStairFlightTypeEnum; + class IfcStairTypeEnum { + } + IfcStairTypeEnum.STRAIGHT_RUN_STAIR = { type: 3, value: "STRAIGHT_RUN_STAIR" }; + IfcStairTypeEnum.TWO_STRAIGHT_RUN_STAIR = { type: 3, value: "TWO_STRAIGHT_RUN_STAIR" }; + IfcStairTypeEnum.QUARTER_WINDING_STAIR = { type: 3, value: "QUARTER_WINDING_STAIR" }; + IfcStairTypeEnum.QUARTER_TURN_STAIR = { type: 3, value: "QUARTER_TURN_STAIR" }; + IfcStairTypeEnum.HALF_WINDING_STAIR = { type: 3, value: "HALF_WINDING_STAIR" }; + IfcStairTypeEnum.HALF_TURN_STAIR = { type: 3, value: "HALF_TURN_STAIR" }; + IfcStairTypeEnum.TWO_QUARTER_WINDING_STAIR = { type: 3, value: "TWO_QUARTER_WINDING_STAIR" }; + IfcStairTypeEnum.TWO_QUARTER_TURN_STAIR = { type: 3, value: "TWO_QUARTER_TURN_STAIR" }; + IfcStairTypeEnum.THREE_QUARTER_WINDING_STAIR = { type: 3, value: "THREE_QUARTER_WINDING_STAIR" }; + IfcStairTypeEnum.THREE_QUARTER_TURN_STAIR = { type: 3, value: "THREE_QUARTER_TURN_STAIR" }; + IfcStairTypeEnum.SPIRAL_STAIR = { type: 3, value: "SPIRAL_STAIR" }; + IfcStairTypeEnum.DOUBLE_RETURN_STAIR = { type: 3, value: "DOUBLE_RETURN_STAIR" }; + IfcStairTypeEnum.CURVED_RUN_STAIR = { type: 3, value: "CURVED_RUN_STAIR" }; + IfcStairTypeEnum.TWO_CURVED_RUN_STAIR = { type: 3, value: "TWO_CURVED_RUN_STAIR" }; + IfcStairTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcStairTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcStairTypeEnum = IfcStairTypeEnum; + class IfcStateEnum { + } + IfcStateEnum.READWRITE = { type: 3, value: "READWRITE" }; + IfcStateEnum.READONLY = { type: 3, value: "READONLY" }; + IfcStateEnum.LOCKED = { type: 3, value: "LOCKED" }; + IfcStateEnum.READWRITELOCKED = { type: 3, value: "READWRITELOCKED" }; + IfcStateEnum.READONLYLOCKED = { type: 3, value: "READONLYLOCKED" }; + IFC2X32.IfcStateEnum = IfcStateEnum; + class IfcStructuralCurveTypeEnum { + } + IfcStructuralCurveTypeEnum.RIGID_JOINED_MEMBER = { type: 3, value: "RIGID_JOINED_MEMBER" }; + IfcStructuralCurveTypeEnum.PIN_JOINED_MEMBER = { type: 3, value: "PIN_JOINED_MEMBER" }; + IfcStructuralCurveTypeEnum.CABLE = { type: 3, value: "CABLE" }; + IfcStructuralCurveTypeEnum.TENSION_MEMBER = { type: 3, value: "TENSION_MEMBER" }; + IfcStructuralCurveTypeEnum.COMPRESSION_MEMBER = { type: 3, value: "COMPRESSION_MEMBER" }; + IfcStructuralCurveTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcStructuralCurveTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcStructuralCurveTypeEnum = IfcStructuralCurveTypeEnum; + class IfcStructuralSurfaceTypeEnum { + } + IfcStructuralSurfaceTypeEnum.BENDING_ELEMENT = { type: 3, value: "BENDING_ELEMENT" }; + IfcStructuralSurfaceTypeEnum.MEMBRANE_ELEMENT = { type: 3, value: "MEMBRANE_ELEMENT" }; + IfcStructuralSurfaceTypeEnum.SHELL = { type: 3, value: "SHELL" }; + IfcStructuralSurfaceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcStructuralSurfaceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcStructuralSurfaceTypeEnum = IfcStructuralSurfaceTypeEnum; + class IfcSurfaceSide { + } + IfcSurfaceSide.POSITIVE = { type: 3, value: "POSITIVE" }; + IfcSurfaceSide.NEGATIVE = { type: 3, value: "NEGATIVE" }; + IfcSurfaceSide.BOTH = { type: 3, value: "BOTH" }; + IFC2X32.IfcSurfaceSide = IfcSurfaceSide; + class IfcSurfaceTextureEnum { + } + IfcSurfaceTextureEnum.BUMP = { type: 3, value: "BUMP" }; + IfcSurfaceTextureEnum.OPACITY = { type: 3, value: "OPACITY" }; + IfcSurfaceTextureEnum.REFLECTION = { type: 3, value: "REFLECTION" }; + IfcSurfaceTextureEnum.SELFILLUMINATION = { type: 3, value: "SELFILLUMINATION" }; + IfcSurfaceTextureEnum.SHININESS = { type: 3, value: "SHININESS" }; + IfcSurfaceTextureEnum.SPECULAR = { type: 3, value: "SPECULAR" }; + IfcSurfaceTextureEnum.TEXTURE = { type: 3, value: "TEXTURE" }; + IfcSurfaceTextureEnum.TRANSPARENCYMAP = { type: 3, value: "TRANSPARENCYMAP" }; + IfcSurfaceTextureEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcSurfaceTextureEnum = IfcSurfaceTextureEnum; + class IfcSwitchingDeviceTypeEnum { + } + IfcSwitchingDeviceTypeEnum.CONTACTOR = { type: 3, value: "CONTACTOR" }; + IfcSwitchingDeviceTypeEnum.EMERGENCYSTOP = { type: 3, value: "EMERGENCYSTOP" }; + IfcSwitchingDeviceTypeEnum.STARTER = { type: 3, value: "STARTER" }; + IfcSwitchingDeviceTypeEnum.SWITCHDISCONNECTOR = { type: 3, value: "SWITCHDISCONNECTOR" }; + IfcSwitchingDeviceTypeEnum.TOGGLESWITCH = { type: 3, value: "TOGGLESWITCH" }; + IfcSwitchingDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcSwitchingDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcSwitchingDeviceTypeEnum = IfcSwitchingDeviceTypeEnum; + class IfcTankTypeEnum { + } + IfcTankTypeEnum.PREFORMED = { type: 3, value: "PREFORMED" }; + IfcTankTypeEnum.SECTIONAL = { type: 3, value: "SECTIONAL" }; + IfcTankTypeEnum.EXPANSION = { type: 3, value: "EXPANSION" }; + IfcTankTypeEnum.PRESSUREVESSEL = { type: 3, value: "PRESSUREVESSEL" }; + IfcTankTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcTankTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcTankTypeEnum = IfcTankTypeEnum; + class IfcTendonTypeEnum { + } + IfcTendonTypeEnum.STRAND = { type: 3, value: "STRAND" }; + IfcTendonTypeEnum.WIRE = { type: 3, value: "WIRE" }; + IfcTendonTypeEnum.BAR = { type: 3, value: "BAR" }; + IfcTendonTypeEnum.COATED = { type: 3, value: "COATED" }; + IfcTendonTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcTendonTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcTendonTypeEnum = IfcTendonTypeEnum; + class IfcTextPath { + } + IfcTextPath.LEFT = { type: 3, value: "LEFT" }; + IfcTextPath.RIGHT = { type: 3, value: "RIGHT" }; + IfcTextPath.UP = { type: 3, value: "UP" }; + IfcTextPath.DOWN = { type: 3, value: "DOWN" }; + IFC2X32.IfcTextPath = IfcTextPath; + class IfcThermalLoadSourceEnum { + } + IfcThermalLoadSourceEnum.PEOPLE = { type: 3, value: "PEOPLE" }; + IfcThermalLoadSourceEnum.LIGHTING = { type: 3, value: "LIGHTING" }; + IfcThermalLoadSourceEnum.EQUIPMENT = { type: 3, value: "EQUIPMENT" }; + IfcThermalLoadSourceEnum.VENTILATIONINDOORAIR = { type: 3, value: "VENTILATIONINDOORAIR" }; + IfcThermalLoadSourceEnum.VENTILATIONOUTSIDEAIR = { type: 3, value: "VENTILATIONOUTSIDEAIR" }; + IfcThermalLoadSourceEnum.RECIRCULATEDAIR = { type: 3, value: "RECIRCULATEDAIR" }; + IfcThermalLoadSourceEnum.EXHAUSTAIR = { type: 3, value: "EXHAUSTAIR" }; + IfcThermalLoadSourceEnum.AIREXCHANGERATE = { type: 3, value: "AIREXCHANGERATE" }; + IfcThermalLoadSourceEnum.DRYBULBTEMPERATURE = { type: 3, value: "DRYBULBTEMPERATURE" }; + IfcThermalLoadSourceEnum.RELATIVEHUMIDITY = { type: 3, value: "RELATIVEHUMIDITY" }; + IfcThermalLoadSourceEnum.INFILTRATION = { type: 3, value: "INFILTRATION" }; + IfcThermalLoadSourceEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcThermalLoadSourceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcThermalLoadSourceEnum = IfcThermalLoadSourceEnum; + class IfcThermalLoadTypeEnum { + } + IfcThermalLoadTypeEnum.SENSIBLE = { type: 3, value: "SENSIBLE" }; + IfcThermalLoadTypeEnum.LATENT = { type: 3, value: "LATENT" }; + IfcThermalLoadTypeEnum.RADIANT = { type: 3, value: "RADIANT" }; + IfcThermalLoadTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcThermalLoadTypeEnum = IfcThermalLoadTypeEnum; + class IfcTimeSeriesDataTypeEnum { + } + IfcTimeSeriesDataTypeEnum.CONTINUOUS = { type: 3, value: "CONTINUOUS" }; + IfcTimeSeriesDataTypeEnum.DISCRETE = { type: 3, value: "DISCRETE" }; + IfcTimeSeriesDataTypeEnum.DISCRETEBINARY = { type: 3, value: "DISCRETEBINARY" }; + IfcTimeSeriesDataTypeEnum.PIECEWISEBINARY = { type: 3, value: "PIECEWISEBINARY" }; + IfcTimeSeriesDataTypeEnum.PIECEWISECONSTANT = { type: 3, value: "PIECEWISECONSTANT" }; + IfcTimeSeriesDataTypeEnum.PIECEWISECONTINUOUS = { type: 3, value: "PIECEWISECONTINUOUS" }; + IfcTimeSeriesDataTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcTimeSeriesDataTypeEnum = IfcTimeSeriesDataTypeEnum; + class IfcTimeSeriesScheduleTypeEnum { + } + IfcTimeSeriesScheduleTypeEnum.ANNUAL = { type: 3, value: "ANNUAL" }; + IfcTimeSeriesScheduleTypeEnum.MONTHLY = { type: 3, value: "MONTHLY" }; + IfcTimeSeriesScheduleTypeEnum.WEEKLY = { type: 3, value: "WEEKLY" }; + IfcTimeSeriesScheduleTypeEnum.DAILY = { type: 3, value: "DAILY" }; + IfcTimeSeriesScheduleTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcTimeSeriesScheduleTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcTimeSeriesScheduleTypeEnum = IfcTimeSeriesScheduleTypeEnum; + class IfcTransformerTypeEnum { + } + IfcTransformerTypeEnum.CURRENT = { type: 3, value: "CURRENT" }; + IfcTransformerTypeEnum.FREQUENCY = { type: 3, value: "FREQUENCY" }; + IfcTransformerTypeEnum.VOLTAGE = { type: 3, value: "VOLTAGE" }; + IfcTransformerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcTransformerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcTransformerTypeEnum = IfcTransformerTypeEnum; + class IfcTransitionCode { + } + IfcTransitionCode.DISCONTINUOUS = { type: 3, value: "DISCONTINUOUS" }; + IfcTransitionCode.CONTINUOUS = { type: 3, value: "CONTINUOUS" }; + IfcTransitionCode.CONTSAMEGRADIENT = { type: 3, value: "CONTSAMEGRADIENT" }; + IfcTransitionCode.CONTSAMEGRADIENTSAMECURVATURE = { type: 3, value: "CONTSAMEGRADIENTSAMECURVATURE" }; + IFC2X32.IfcTransitionCode = IfcTransitionCode; + class IfcTransportElementTypeEnum { + } + IfcTransportElementTypeEnum.ELEVATOR = { type: 3, value: "ELEVATOR" }; + IfcTransportElementTypeEnum.ESCALATOR = { type: 3, value: "ESCALATOR" }; + IfcTransportElementTypeEnum.MOVINGWALKWAY = { type: 3, value: "MOVINGWALKWAY" }; + IfcTransportElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcTransportElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcTransportElementTypeEnum = IfcTransportElementTypeEnum; + class IfcTrimmingPreference { + } + IfcTrimmingPreference.CARTESIAN = { type: 3, value: "CARTESIAN" }; + IfcTrimmingPreference.PARAMETER = { type: 3, value: "PARAMETER" }; + IfcTrimmingPreference.UNSPECIFIED = { type: 3, value: "UNSPECIFIED" }; + IFC2X32.IfcTrimmingPreference = IfcTrimmingPreference; + class IfcTubeBundleTypeEnum { + } + IfcTubeBundleTypeEnum.FINNED = { type: 3, value: "FINNED" }; + IfcTubeBundleTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcTubeBundleTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcTubeBundleTypeEnum = IfcTubeBundleTypeEnum; + class IfcUnitEnum { + } + IfcUnitEnum.ABSORBEDDOSEUNIT = { type: 3, value: "ABSORBEDDOSEUNIT" }; + IfcUnitEnum.AMOUNTOFSUBSTANCEUNIT = { type: 3, value: "AMOUNTOFSUBSTANCEUNIT" }; + IfcUnitEnum.AREAUNIT = { type: 3, value: "AREAUNIT" }; + IfcUnitEnum.DOSEEQUIVALENTUNIT = { type: 3, value: "DOSEEQUIVALENTUNIT" }; + IfcUnitEnum.ELECTRICCAPACITANCEUNIT = { type: 3, value: "ELECTRICCAPACITANCEUNIT" }; + IfcUnitEnum.ELECTRICCHARGEUNIT = { type: 3, value: "ELECTRICCHARGEUNIT" }; + IfcUnitEnum.ELECTRICCONDUCTANCEUNIT = { type: 3, value: "ELECTRICCONDUCTANCEUNIT" }; + IfcUnitEnum.ELECTRICCURRENTUNIT = { type: 3, value: "ELECTRICCURRENTUNIT" }; + IfcUnitEnum.ELECTRICRESISTANCEUNIT = { type: 3, value: "ELECTRICRESISTANCEUNIT" }; + IfcUnitEnum.ELECTRICVOLTAGEUNIT = { type: 3, value: "ELECTRICVOLTAGEUNIT" }; + IfcUnitEnum.ENERGYUNIT = { type: 3, value: "ENERGYUNIT" }; + IfcUnitEnum.FORCEUNIT = { type: 3, value: "FORCEUNIT" }; + IfcUnitEnum.FREQUENCYUNIT = { type: 3, value: "FREQUENCYUNIT" }; + IfcUnitEnum.ILLUMINANCEUNIT = { type: 3, value: "ILLUMINANCEUNIT" }; + IfcUnitEnum.INDUCTANCEUNIT = { type: 3, value: "INDUCTANCEUNIT" }; + IfcUnitEnum.LENGTHUNIT = { type: 3, value: "LENGTHUNIT" }; + IfcUnitEnum.LUMINOUSFLUXUNIT = { type: 3, value: "LUMINOUSFLUXUNIT" }; + IfcUnitEnum.LUMINOUSINTENSITYUNIT = { type: 3, value: "LUMINOUSINTENSITYUNIT" }; + IfcUnitEnum.MAGNETICFLUXDENSITYUNIT = { type: 3, value: "MAGNETICFLUXDENSITYUNIT" }; + IfcUnitEnum.MAGNETICFLUXUNIT = { type: 3, value: "MAGNETICFLUXUNIT" }; + IfcUnitEnum.MASSUNIT = { type: 3, value: "MASSUNIT" }; + IfcUnitEnum.PLANEANGLEUNIT = { type: 3, value: "PLANEANGLEUNIT" }; + IfcUnitEnum.POWERUNIT = { type: 3, value: "POWERUNIT" }; + IfcUnitEnum.PRESSUREUNIT = { type: 3, value: "PRESSUREUNIT" }; + IfcUnitEnum.RADIOACTIVITYUNIT = { type: 3, value: "RADIOACTIVITYUNIT" }; + IfcUnitEnum.SOLIDANGLEUNIT = { type: 3, value: "SOLIDANGLEUNIT" }; + IfcUnitEnum.THERMODYNAMICTEMPERATUREUNIT = { type: 3, value: "THERMODYNAMICTEMPERATUREUNIT" }; + IfcUnitEnum.TIMEUNIT = { type: 3, value: "TIMEUNIT" }; + IfcUnitEnum.VOLUMEUNIT = { type: 3, value: "VOLUMEUNIT" }; + IfcUnitEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IFC2X32.IfcUnitEnum = IfcUnitEnum; + class IfcUnitaryEquipmentTypeEnum { + } + IfcUnitaryEquipmentTypeEnum.AIRHANDLER = { type: 3, value: "AIRHANDLER" }; + IfcUnitaryEquipmentTypeEnum.AIRCONDITIONINGUNIT = { type: 3, value: "AIRCONDITIONINGUNIT" }; + IfcUnitaryEquipmentTypeEnum.SPLITSYSTEM = { type: 3, value: "SPLITSYSTEM" }; + IfcUnitaryEquipmentTypeEnum.ROOFTOPUNIT = { type: 3, value: "ROOFTOPUNIT" }; + IfcUnitaryEquipmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcUnitaryEquipmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcUnitaryEquipmentTypeEnum = IfcUnitaryEquipmentTypeEnum; + class IfcValveTypeEnum { + } + IfcValveTypeEnum.AIRRELEASE = { type: 3, value: "AIRRELEASE" }; + IfcValveTypeEnum.ANTIVACUUM = { type: 3, value: "ANTIVACUUM" }; + IfcValveTypeEnum.CHANGEOVER = { type: 3, value: "CHANGEOVER" }; + IfcValveTypeEnum.CHECK = { type: 3, value: "CHECK" }; + IfcValveTypeEnum.COMMISSIONING = { type: 3, value: "COMMISSIONING" }; + IfcValveTypeEnum.DIVERTING = { type: 3, value: "DIVERTING" }; + IfcValveTypeEnum.DRAWOFFCOCK = { type: 3, value: "DRAWOFFCOCK" }; + IfcValveTypeEnum.DOUBLECHECK = { type: 3, value: "DOUBLECHECK" }; + IfcValveTypeEnum.DOUBLEREGULATING = { type: 3, value: "DOUBLEREGULATING" }; + IfcValveTypeEnum.FAUCET = { type: 3, value: "FAUCET" }; + IfcValveTypeEnum.FLUSHING = { type: 3, value: "FLUSHING" }; + IfcValveTypeEnum.GASCOCK = { type: 3, value: "GASCOCK" }; + IfcValveTypeEnum.GASTAP = { type: 3, value: "GASTAP" }; + IfcValveTypeEnum.ISOLATING = { type: 3, value: "ISOLATING" }; + IfcValveTypeEnum.MIXING = { type: 3, value: "MIXING" }; + IfcValveTypeEnum.PRESSUREREDUCING = { type: 3, value: "PRESSUREREDUCING" }; + IfcValveTypeEnum.PRESSURERELIEF = { type: 3, value: "PRESSURERELIEF" }; + IfcValveTypeEnum.REGULATING = { type: 3, value: "REGULATING" }; + IfcValveTypeEnum.SAFETYCUTOFF = { type: 3, value: "SAFETYCUTOFF" }; + IfcValveTypeEnum.STEAMTRAP = { type: 3, value: "STEAMTRAP" }; + IfcValveTypeEnum.STOPCOCK = { type: 3, value: "STOPCOCK" }; + IfcValveTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcValveTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcValveTypeEnum = IfcValveTypeEnum; + class IfcVibrationIsolatorTypeEnum { + } + IfcVibrationIsolatorTypeEnum.COMPRESSION = { type: 3, value: "COMPRESSION" }; + IfcVibrationIsolatorTypeEnum.SPRING = { type: 3, value: "SPRING" }; + IfcVibrationIsolatorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcVibrationIsolatorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcVibrationIsolatorTypeEnum = IfcVibrationIsolatorTypeEnum; + class IfcWallTypeEnum { + } + IfcWallTypeEnum.STANDARD = { type: 3, value: "STANDARD" }; + IfcWallTypeEnum.POLYGONAL = { type: 3, value: "POLYGONAL" }; + IfcWallTypeEnum.SHEAR = { type: 3, value: "SHEAR" }; + IfcWallTypeEnum.ELEMENTEDWALL = { type: 3, value: "ELEMENTEDWALL" }; + IfcWallTypeEnum.PLUMBINGWALL = { type: 3, value: "PLUMBINGWALL" }; + IfcWallTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcWallTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcWallTypeEnum = IfcWallTypeEnum; + class IfcWasteTerminalTypeEnum { + } + IfcWasteTerminalTypeEnum.FLOORTRAP = { type: 3, value: "FLOORTRAP" }; + IfcWasteTerminalTypeEnum.FLOORWASTE = { type: 3, value: "FLOORWASTE" }; + IfcWasteTerminalTypeEnum.GULLYSUMP = { type: 3, value: "GULLYSUMP" }; + IfcWasteTerminalTypeEnum.GULLYTRAP = { type: 3, value: "GULLYTRAP" }; + IfcWasteTerminalTypeEnum.GREASEINTERCEPTOR = { type: 3, value: "GREASEINTERCEPTOR" }; + IfcWasteTerminalTypeEnum.OILINTERCEPTOR = { type: 3, value: "OILINTERCEPTOR" }; + IfcWasteTerminalTypeEnum.PETROLINTERCEPTOR = { type: 3, value: "PETROLINTERCEPTOR" }; + IfcWasteTerminalTypeEnum.ROOFDRAIN = { type: 3, value: "ROOFDRAIN" }; + IfcWasteTerminalTypeEnum.WASTEDISPOSALUNIT = { type: 3, value: "WASTEDISPOSALUNIT" }; + IfcWasteTerminalTypeEnum.WASTETRAP = { type: 3, value: "WASTETRAP" }; + IfcWasteTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcWasteTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcWasteTerminalTypeEnum = IfcWasteTerminalTypeEnum; + class IfcWindowPanelOperationEnum { + } + IfcWindowPanelOperationEnum.SIDEHUNGRIGHTHAND = { type: 3, value: "SIDEHUNGRIGHTHAND" }; + IfcWindowPanelOperationEnum.SIDEHUNGLEFTHAND = { type: 3, value: "SIDEHUNGLEFTHAND" }; + IfcWindowPanelOperationEnum.TILTANDTURNRIGHTHAND = { type: 3, value: "TILTANDTURNRIGHTHAND" }; + IfcWindowPanelOperationEnum.TILTANDTURNLEFTHAND = { type: 3, value: "TILTANDTURNLEFTHAND" }; + IfcWindowPanelOperationEnum.TOPHUNG = { type: 3, value: "TOPHUNG" }; + IfcWindowPanelOperationEnum.BOTTOMHUNG = { type: 3, value: "BOTTOMHUNG" }; + IfcWindowPanelOperationEnum.PIVOTHORIZONTAL = { type: 3, value: "PIVOTHORIZONTAL" }; + IfcWindowPanelOperationEnum.PIVOTVERTICAL = { type: 3, value: "PIVOTVERTICAL" }; + IfcWindowPanelOperationEnum.SLIDINGHORIZONTAL = { type: 3, value: "SLIDINGHORIZONTAL" }; + IfcWindowPanelOperationEnum.SLIDINGVERTICAL = { type: 3, value: "SLIDINGVERTICAL" }; + IfcWindowPanelOperationEnum.REMOVABLECASEMENT = { type: 3, value: "REMOVABLECASEMENT" }; + IfcWindowPanelOperationEnum.FIXEDCASEMENT = { type: 3, value: "FIXEDCASEMENT" }; + IfcWindowPanelOperationEnum.OTHEROPERATION = { type: 3, value: "OTHEROPERATION" }; + IfcWindowPanelOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcWindowPanelOperationEnum = IfcWindowPanelOperationEnum; + class IfcWindowPanelPositionEnum { + } + IfcWindowPanelPositionEnum.LEFT = { type: 3, value: "LEFT" }; + IfcWindowPanelPositionEnum.MIDDLE = { type: 3, value: "MIDDLE" }; + IfcWindowPanelPositionEnum.RIGHT = { type: 3, value: "RIGHT" }; + IfcWindowPanelPositionEnum.BOTTOM = { type: 3, value: "BOTTOM" }; + IfcWindowPanelPositionEnum.TOP = { type: 3, value: "TOP" }; + IfcWindowPanelPositionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcWindowPanelPositionEnum = IfcWindowPanelPositionEnum; + class IfcWindowStyleConstructionEnum { + } + IfcWindowStyleConstructionEnum.ALUMINIUM = { type: 3, value: "ALUMINIUM" }; + IfcWindowStyleConstructionEnum.HIGH_GRADE_STEEL = { type: 3, value: "HIGH_GRADE_STEEL" }; + IfcWindowStyleConstructionEnum.STEEL = { type: 3, value: "STEEL" }; + IfcWindowStyleConstructionEnum.WOOD = { type: 3, value: "WOOD" }; + IfcWindowStyleConstructionEnum.ALUMINIUM_WOOD = { type: 3, value: "ALUMINIUM_WOOD" }; + IfcWindowStyleConstructionEnum.PLASTIC = { type: 3, value: "PLASTIC" }; + IfcWindowStyleConstructionEnum.OTHER_CONSTRUCTION = { type: 3, value: "OTHER_CONSTRUCTION" }; + IfcWindowStyleConstructionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcWindowStyleConstructionEnum = IfcWindowStyleConstructionEnum; + class IfcWindowStyleOperationEnum { + } + IfcWindowStyleOperationEnum.SINGLE_PANEL = { type: 3, value: "SINGLE_PANEL" }; + IfcWindowStyleOperationEnum.DOUBLE_PANEL_VERTICAL = { type: 3, value: "DOUBLE_PANEL_VERTICAL" }; + IfcWindowStyleOperationEnum.DOUBLE_PANEL_HORIZONTAL = { type: 3, value: "DOUBLE_PANEL_HORIZONTAL" }; + IfcWindowStyleOperationEnum.TRIPLE_PANEL_VERTICAL = { type: 3, value: "TRIPLE_PANEL_VERTICAL" }; + IfcWindowStyleOperationEnum.TRIPLE_PANEL_BOTTOM = { type: 3, value: "TRIPLE_PANEL_BOTTOM" }; + IfcWindowStyleOperationEnum.TRIPLE_PANEL_TOP = { type: 3, value: "TRIPLE_PANEL_TOP" }; + IfcWindowStyleOperationEnum.TRIPLE_PANEL_LEFT = { type: 3, value: "TRIPLE_PANEL_LEFT" }; + IfcWindowStyleOperationEnum.TRIPLE_PANEL_RIGHT = { type: 3, value: "TRIPLE_PANEL_RIGHT" }; + IfcWindowStyleOperationEnum.TRIPLE_PANEL_HORIZONTAL = { type: 3, value: "TRIPLE_PANEL_HORIZONTAL" }; + IfcWindowStyleOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcWindowStyleOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcWindowStyleOperationEnum = IfcWindowStyleOperationEnum; + class IfcWorkControlTypeEnum { + } + IfcWorkControlTypeEnum.ACTUAL = { type: 3, value: "ACTUAL" }; + IfcWorkControlTypeEnum.BASELINE = { type: 3, value: "BASELINE" }; + IfcWorkControlTypeEnum.PLANNED = { type: 3, value: "PLANNED" }; + IfcWorkControlTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcWorkControlTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcWorkControlTypeEnum = IfcWorkControlTypeEnum; + class IfcActorRole extends IfcLineObject$1 { + constructor(Role, UserDefinedRole, Description) { + super(); + this.Role = Role; + this.UserDefinedRole = UserDefinedRole; + this.Description = Description; + this.type = 3630933823; + } + } + IFC2X32.IfcActorRole = IfcActorRole; + class IfcAddress extends IfcLineObject$1 { + constructor(Purpose, Description, UserDefinedPurpose) { + super(); + this.Purpose = Purpose; + this.Description = Description; + this.UserDefinedPurpose = UserDefinedPurpose; + this.type = 618182010; + } + } + IFC2X32.IfcAddress = IfcAddress; + class IfcApplication extends IfcLineObject$1 { + constructor(ApplicationDeveloper, Version, ApplicationFullName, ApplicationIdentifier) { + super(); + this.ApplicationDeveloper = ApplicationDeveloper; + this.Version = Version; + this.ApplicationFullName = ApplicationFullName; + this.ApplicationIdentifier = ApplicationIdentifier; + this.type = 639542469; + } + } + IFC2X32.IfcApplication = IfcApplication; + class IfcAppliedValue extends IfcLineObject$1 { + constructor(Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate) { + super(); + this.Name = Name; + this.Description = Description; + this.AppliedValue = AppliedValue; + this.UnitBasis = UnitBasis; + this.ApplicableDate = ApplicableDate; + this.FixedUntilDate = FixedUntilDate; + this.type = 411424972; + } + } + IFC2X32.IfcAppliedValue = IfcAppliedValue; + class IfcAppliedValueRelationship extends IfcLineObject$1 { + constructor(ComponentOfTotal, Components, ArithmeticOperator, Name, Description) { + super(); + this.ComponentOfTotal = ComponentOfTotal; + this.Components = Components; + this.ArithmeticOperator = ArithmeticOperator; + this.Name = Name; + this.Description = Description; + this.type = 1110488051; + } + } + IFC2X32.IfcAppliedValueRelationship = IfcAppliedValueRelationship; + class IfcApproval extends IfcLineObject$1 { + constructor(Description, ApprovalDateTime, ApprovalStatus, ApprovalLevel, ApprovalQualifier, Name, Identifier) { + super(); + this.Description = Description; + this.ApprovalDateTime = ApprovalDateTime; + this.ApprovalStatus = ApprovalStatus; + this.ApprovalLevel = ApprovalLevel; + this.ApprovalQualifier = ApprovalQualifier; + this.Name = Name; + this.Identifier = Identifier; + this.type = 130549933; + } + } + IFC2X32.IfcApproval = IfcApproval; + class IfcApprovalActorRelationship extends IfcLineObject$1 { + constructor(Actor, Approval, Role) { + super(); + this.Actor = Actor; + this.Approval = Approval; + this.Role = Role; + this.type = 2080292479; + } + } + IFC2X32.IfcApprovalActorRelationship = IfcApprovalActorRelationship; + class IfcApprovalPropertyRelationship extends IfcLineObject$1 { + constructor(ApprovedProperties, Approval) { + super(); + this.ApprovedProperties = ApprovedProperties; + this.Approval = Approval; + this.type = 390851274; + } + } + IFC2X32.IfcApprovalPropertyRelationship = IfcApprovalPropertyRelationship; + class IfcApprovalRelationship extends IfcLineObject$1 { + constructor(RelatedApproval, RelatingApproval, Description, Name) { + super(); + this.RelatedApproval = RelatedApproval; + this.RelatingApproval = RelatingApproval; + this.Description = Description; + this.Name = Name; + this.type = 3869604511; + } + } + IFC2X32.IfcApprovalRelationship = IfcApprovalRelationship; + class IfcBoundaryCondition extends IfcLineObject$1 { + constructor(Name) { + super(); + this.Name = Name; + this.type = 4037036970; + } + } + IFC2X32.IfcBoundaryCondition = IfcBoundaryCondition; + class IfcBoundaryEdgeCondition extends IfcBoundaryCondition { + constructor(Name, LinearStiffnessByLengthX, LinearStiffnessByLengthY, LinearStiffnessByLengthZ, RotationalStiffnessByLengthX, RotationalStiffnessByLengthY, RotationalStiffnessByLengthZ) { + super(Name); + this.Name = Name; + this.LinearStiffnessByLengthX = LinearStiffnessByLengthX; + this.LinearStiffnessByLengthY = LinearStiffnessByLengthY; + this.LinearStiffnessByLengthZ = LinearStiffnessByLengthZ; + this.RotationalStiffnessByLengthX = RotationalStiffnessByLengthX; + this.RotationalStiffnessByLengthY = RotationalStiffnessByLengthY; + this.RotationalStiffnessByLengthZ = RotationalStiffnessByLengthZ; + this.type = 1560379544; + } + } + IFC2X32.IfcBoundaryEdgeCondition = IfcBoundaryEdgeCondition; + class IfcBoundaryFaceCondition extends IfcBoundaryCondition { + constructor(Name, LinearStiffnessByAreaX, LinearStiffnessByAreaY, LinearStiffnessByAreaZ) { + super(Name); + this.Name = Name; + this.LinearStiffnessByAreaX = LinearStiffnessByAreaX; + this.LinearStiffnessByAreaY = LinearStiffnessByAreaY; + this.LinearStiffnessByAreaZ = LinearStiffnessByAreaZ; + this.type = 3367102660; + } + } + IFC2X32.IfcBoundaryFaceCondition = IfcBoundaryFaceCondition; + class IfcBoundaryNodeCondition extends IfcBoundaryCondition { + constructor(Name, LinearStiffnessX, LinearStiffnessY, LinearStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ) { + super(Name); + this.Name = Name; + this.LinearStiffnessX = LinearStiffnessX; + this.LinearStiffnessY = LinearStiffnessY; + this.LinearStiffnessZ = LinearStiffnessZ; + this.RotationalStiffnessX = RotationalStiffnessX; + this.RotationalStiffnessY = RotationalStiffnessY; + this.RotationalStiffnessZ = RotationalStiffnessZ; + this.type = 1387855156; + } + } + IFC2X32.IfcBoundaryNodeCondition = IfcBoundaryNodeCondition; + class IfcBoundaryNodeConditionWarping extends IfcBoundaryNodeCondition { + constructor(Name, LinearStiffnessX, LinearStiffnessY, LinearStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ, WarpingStiffness) { + super(Name, LinearStiffnessX, LinearStiffnessY, LinearStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ); + this.Name = Name; + this.LinearStiffnessX = LinearStiffnessX; + this.LinearStiffnessY = LinearStiffnessY; + this.LinearStiffnessZ = LinearStiffnessZ; + this.RotationalStiffnessX = RotationalStiffnessX; + this.RotationalStiffnessY = RotationalStiffnessY; + this.RotationalStiffnessZ = RotationalStiffnessZ; + this.WarpingStiffness = WarpingStiffness; + this.type = 2069777674; + } + } + IFC2X32.IfcBoundaryNodeConditionWarping = IfcBoundaryNodeConditionWarping; + class IfcCalendarDate extends IfcLineObject$1 { + constructor(DayComponent, MonthComponent, YearComponent) { + super(); + this.DayComponent = DayComponent; + this.MonthComponent = MonthComponent; + this.YearComponent = YearComponent; + this.type = 622194075; + } + } + IFC2X32.IfcCalendarDate = IfcCalendarDate; + class IfcClassification extends IfcLineObject$1 { + constructor(Source, Edition, EditionDate, Name) { + super(); + this.Source = Source; + this.Edition = Edition; + this.EditionDate = EditionDate; + this.Name = Name; + this.type = 747523909; + } + } + IFC2X32.IfcClassification = IfcClassification; + class IfcClassificationItem extends IfcLineObject$1 { + constructor(Notation, ItemOf, Title) { + super(); + this.Notation = Notation; + this.ItemOf = ItemOf; + this.Title = Title; + this.type = 1767535486; + } + } + IFC2X32.IfcClassificationItem = IfcClassificationItem; + class IfcClassificationItemRelationship extends IfcLineObject$1 { + constructor(RelatingItem, RelatedItems) { + super(); + this.RelatingItem = RelatingItem; + this.RelatedItems = RelatedItems; + this.type = 1098599126; + } + } + IFC2X32.IfcClassificationItemRelationship = IfcClassificationItemRelationship; + class IfcClassificationNotation extends IfcLineObject$1 { + constructor(NotationFacets) { + super(); + this.NotationFacets = NotationFacets; + this.type = 938368621; + } + } + IFC2X32.IfcClassificationNotation = IfcClassificationNotation; + class IfcClassificationNotationFacet extends IfcLineObject$1 { + constructor(NotationValue) { + super(); + this.NotationValue = NotationValue; + this.type = 3639012971; + } + } + IFC2X32.IfcClassificationNotationFacet = IfcClassificationNotationFacet; + class IfcColourSpecification extends IfcLineObject$1 { + constructor(Name) { + super(); + this.Name = Name; + this.type = 3264961684; + } + } + IFC2X32.IfcColourSpecification = IfcColourSpecification; + class IfcConnectionGeometry extends IfcLineObject$1 { + constructor() { + super(); + this.type = 2859738748; + } + } + IFC2X32.IfcConnectionGeometry = IfcConnectionGeometry; + class IfcConnectionPointGeometry extends IfcConnectionGeometry { + constructor(PointOnRelatingElement, PointOnRelatedElement) { + super(); + this.PointOnRelatingElement = PointOnRelatingElement; + this.PointOnRelatedElement = PointOnRelatedElement; + this.type = 2614616156; + } + } + IFC2X32.IfcConnectionPointGeometry = IfcConnectionPointGeometry; + class IfcConnectionPortGeometry extends IfcConnectionGeometry { + constructor(LocationAtRelatingElement, LocationAtRelatedElement, ProfileOfPort) { + super(); + this.LocationAtRelatingElement = LocationAtRelatingElement; + this.LocationAtRelatedElement = LocationAtRelatedElement; + this.ProfileOfPort = ProfileOfPort; + this.type = 4257277454; + } + } + IFC2X32.IfcConnectionPortGeometry = IfcConnectionPortGeometry; + class IfcConnectionSurfaceGeometry extends IfcConnectionGeometry { + constructor(SurfaceOnRelatingElement, SurfaceOnRelatedElement) { + super(); + this.SurfaceOnRelatingElement = SurfaceOnRelatingElement; + this.SurfaceOnRelatedElement = SurfaceOnRelatedElement; + this.type = 2732653382; + } + } + IFC2X32.IfcConnectionSurfaceGeometry = IfcConnectionSurfaceGeometry; + class IfcConstraint extends IfcLineObject$1 { + constructor(Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade) { + super(); + this.Name = Name; + this.Description = Description; + this.ConstraintGrade = ConstraintGrade; + this.ConstraintSource = ConstraintSource; + this.CreatingActor = CreatingActor; + this.CreationTime = CreationTime; + this.UserDefinedGrade = UserDefinedGrade; + this.type = 1959218052; + } + } + IFC2X32.IfcConstraint = IfcConstraint; + class IfcConstraintAggregationRelationship extends IfcLineObject$1 { + constructor(Name, Description, RelatingConstraint, RelatedConstraints, LogicalAggregator) { + super(); + this.Name = Name; + this.Description = Description; + this.RelatingConstraint = RelatingConstraint; + this.RelatedConstraints = RelatedConstraints; + this.LogicalAggregator = LogicalAggregator; + this.type = 1658513725; + } + } + IFC2X32.IfcConstraintAggregationRelationship = IfcConstraintAggregationRelationship; + class IfcConstraintClassificationRelationship extends IfcLineObject$1 { + constructor(ClassifiedConstraint, RelatedClassifications) { + super(); + this.ClassifiedConstraint = ClassifiedConstraint; + this.RelatedClassifications = RelatedClassifications; + this.type = 613356794; + } + } + IFC2X32.IfcConstraintClassificationRelationship = IfcConstraintClassificationRelationship; + class IfcConstraintRelationship extends IfcLineObject$1 { + constructor(Name, Description, RelatingConstraint, RelatedConstraints) { + super(); + this.Name = Name; + this.Description = Description; + this.RelatingConstraint = RelatingConstraint; + this.RelatedConstraints = RelatedConstraints; + this.type = 347226245; + } + } + IFC2X32.IfcConstraintRelationship = IfcConstraintRelationship; + class IfcCoordinatedUniversalTimeOffset extends IfcLineObject$1 { + constructor(HourOffset, MinuteOffset, Sense) { + super(); + this.HourOffset = HourOffset; + this.MinuteOffset = MinuteOffset; + this.Sense = Sense; + this.type = 1065062679; + } + } + IFC2X32.IfcCoordinatedUniversalTimeOffset = IfcCoordinatedUniversalTimeOffset; + class IfcCostValue extends IfcAppliedValue { + constructor(Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, CostType, Condition) { + super(Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate); + this.Name = Name; + this.Description = Description; + this.AppliedValue = AppliedValue; + this.UnitBasis = UnitBasis; + this.ApplicableDate = ApplicableDate; + this.FixedUntilDate = FixedUntilDate; + this.CostType = CostType; + this.Condition = Condition; + this.type = 602808272; + } + } + IFC2X32.IfcCostValue = IfcCostValue; + class IfcCurrencyRelationship extends IfcLineObject$1 { + constructor(RelatingMonetaryUnit, RelatedMonetaryUnit, ExchangeRate, RateDateTime, RateSource) { + super(); + this.RelatingMonetaryUnit = RelatingMonetaryUnit; + this.RelatedMonetaryUnit = RelatedMonetaryUnit; + this.ExchangeRate = ExchangeRate; + this.RateDateTime = RateDateTime; + this.RateSource = RateSource; + this.type = 539742890; + } + } + IFC2X32.IfcCurrencyRelationship = IfcCurrencyRelationship; + class IfcCurveStyleFont extends IfcLineObject$1 { + constructor(Name, PatternList) { + super(); + this.Name = Name; + this.PatternList = PatternList; + this.type = 1105321065; + } + } + IFC2X32.IfcCurveStyleFont = IfcCurveStyleFont; + class IfcCurveStyleFontAndScaling extends IfcLineObject$1 { + constructor(Name, CurveFont, CurveFontScaling) { + super(); + this.Name = Name; + this.CurveFont = CurveFont; + this.CurveFontScaling = CurveFontScaling; + this.type = 2367409068; + } + } + IFC2X32.IfcCurveStyleFontAndScaling = IfcCurveStyleFontAndScaling; + class IfcCurveStyleFontPattern extends IfcLineObject$1 { + constructor(VisibleSegmentLength, InvisibleSegmentLength) { + super(); + this.VisibleSegmentLength = VisibleSegmentLength; + this.InvisibleSegmentLength = InvisibleSegmentLength; + this.type = 3510044353; + } + } + IFC2X32.IfcCurveStyleFontPattern = IfcCurveStyleFontPattern; + class IfcDateAndTime extends IfcLineObject$1 { + constructor(DateComponent, TimeComponent) { + super(); + this.DateComponent = DateComponent; + this.TimeComponent = TimeComponent; + this.type = 1072939445; + } + } + IFC2X32.IfcDateAndTime = IfcDateAndTime; + class IfcDerivedUnit extends IfcLineObject$1 { + constructor(Elements, UnitType, UserDefinedType) { + super(); + this.Elements = Elements; + this.UnitType = UnitType; + this.UserDefinedType = UserDefinedType; + this.type = 1765591967; + } + } + IFC2X32.IfcDerivedUnit = IfcDerivedUnit; + class IfcDerivedUnitElement extends IfcLineObject$1 { + constructor(Unit, Exponent) { + super(); + this.Unit = Unit; + this.Exponent = Exponent; + this.type = 1045800335; + } + } + IFC2X32.IfcDerivedUnitElement = IfcDerivedUnitElement; + class IfcDimensionalExponents extends IfcLineObject$1 { + constructor(LengthExponent, MassExponent, TimeExponent, ElectricCurrentExponent, ThermodynamicTemperatureExponent, AmountOfSubstanceExponent, LuminousIntensityExponent) { + super(); + this.LengthExponent = LengthExponent; + this.MassExponent = MassExponent; + this.TimeExponent = TimeExponent; + this.ElectricCurrentExponent = ElectricCurrentExponent; + this.ThermodynamicTemperatureExponent = ThermodynamicTemperatureExponent; + this.AmountOfSubstanceExponent = AmountOfSubstanceExponent; + this.LuminousIntensityExponent = LuminousIntensityExponent; + this.type = 2949456006; + } + } + IFC2X32.IfcDimensionalExponents = IfcDimensionalExponents; + class IfcDocumentElectronicFormat extends IfcLineObject$1 { + constructor(FileExtension, MimeContentType, MimeSubtype) { + super(); + this.FileExtension = FileExtension; + this.MimeContentType = MimeContentType; + this.MimeSubtype = MimeSubtype; + this.type = 1376555844; + } + } + IFC2X32.IfcDocumentElectronicFormat = IfcDocumentElectronicFormat; + class IfcDocumentInformation extends IfcLineObject$1 { + constructor(DocumentId, Name, Description, DocumentReferences, Purpose, IntendedUse, Scope, Revision, DocumentOwner, Editors, CreationTime, LastRevisionTime, ElectronicFormat, ValidFrom, ValidUntil, Confidentiality, Status) { + super(); + this.DocumentId = DocumentId; + this.Name = Name; + this.Description = Description; + this.DocumentReferences = DocumentReferences; + this.Purpose = Purpose; + this.IntendedUse = IntendedUse; + this.Scope = Scope; + this.Revision = Revision; + this.DocumentOwner = DocumentOwner; + this.Editors = Editors; + this.CreationTime = CreationTime; + this.LastRevisionTime = LastRevisionTime; + this.ElectronicFormat = ElectronicFormat; + this.ValidFrom = ValidFrom; + this.ValidUntil = ValidUntil; + this.Confidentiality = Confidentiality; + this.Status = Status; + this.type = 1154170062; + } + } + IFC2X32.IfcDocumentInformation = IfcDocumentInformation; + class IfcDocumentInformationRelationship extends IfcLineObject$1 { + constructor(RelatingDocument, RelatedDocuments, RelationshipType) { + super(); + this.RelatingDocument = RelatingDocument; + this.RelatedDocuments = RelatedDocuments; + this.RelationshipType = RelationshipType; + this.type = 770865208; + } + } + IFC2X32.IfcDocumentInformationRelationship = IfcDocumentInformationRelationship; + class IfcDraughtingCalloutRelationship extends IfcLineObject$1 { + constructor(Name, Description, RelatingDraughtingCallout, RelatedDraughtingCallout) { + super(); + this.Name = Name; + this.Description = Description; + this.RelatingDraughtingCallout = RelatingDraughtingCallout; + this.RelatedDraughtingCallout = RelatedDraughtingCallout; + this.type = 3796139169; + } + } + IFC2X32.IfcDraughtingCalloutRelationship = IfcDraughtingCalloutRelationship; + class IfcEnvironmentalImpactValue extends IfcAppliedValue { + constructor(Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, ImpactType, Category, UserDefinedCategory) { + super(Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate); + this.Name = Name; + this.Description = Description; + this.AppliedValue = AppliedValue; + this.UnitBasis = UnitBasis; + this.ApplicableDate = ApplicableDate; + this.FixedUntilDate = FixedUntilDate; + this.ImpactType = ImpactType; + this.Category = Category; + this.UserDefinedCategory = UserDefinedCategory; + this.type = 1648886627; + } + } + IFC2X32.IfcEnvironmentalImpactValue = IfcEnvironmentalImpactValue; + class IfcExternalReference extends IfcLineObject$1 { + constructor(Location, ItemReference, Name) { + super(); + this.Location = Location; + this.ItemReference = ItemReference; + this.Name = Name; + this.type = 3200245327; + } + } + IFC2X32.IfcExternalReference = IfcExternalReference; + class IfcExternallyDefinedHatchStyle extends IfcExternalReference { + constructor(Location, ItemReference, Name) { + super(Location, ItemReference, Name); + this.Location = Location; + this.ItemReference = ItemReference; + this.Name = Name; + this.type = 2242383968; + } + } + IFC2X32.IfcExternallyDefinedHatchStyle = IfcExternallyDefinedHatchStyle; + class IfcExternallyDefinedSurfaceStyle extends IfcExternalReference { + constructor(Location, ItemReference, Name) { + super(Location, ItemReference, Name); + this.Location = Location; + this.ItemReference = ItemReference; + this.Name = Name; + this.type = 1040185647; + } + } + IFC2X32.IfcExternallyDefinedSurfaceStyle = IfcExternallyDefinedSurfaceStyle; + class IfcExternallyDefinedSymbol extends IfcExternalReference { + constructor(Location, ItemReference, Name) { + super(Location, ItemReference, Name); + this.Location = Location; + this.ItemReference = ItemReference; + this.Name = Name; + this.type = 3207319532; + } + } + IFC2X32.IfcExternallyDefinedSymbol = IfcExternallyDefinedSymbol; + class IfcExternallyDefinedTextFont extends IfcExternalReference { + constructor(Location, ItemReference, Name) { + super(Location, ItemReference, Name); + this.Location = Location; + this.ItemReference = ItemReference; + this.Name = Name; + this.type = 3548104201; + } + } + IFC2X32.IfcExternallyDefinedTextFont = IfcExternallyDefinedTextFont; + class IfcGridAxis extends IfcLineObject$1 { + constructor(AxisTag, AxisCurve, SameSense) { + super(); + this.AxisTag = AxisTag; + this.AxisCurve = AxisCurve; + this.SameSense = SameSense; + this.type = 852622518; + } + } + IFC2X32.IfcGridAxis = IfcGridAxis; + class IfcIrregularTimeSeriesValue extends IfcLineObject$1 { + constructor(TimeStamp, ListValues) { + super(); + this.TimeStamp = TimeStamp; + this.ListValues = ListValues; + this.type = 3020489413; + } + } + IFC2X32.IfcIrregularTimeSeriesValue = IfcIrregularTimeSeriesValue; + class IfcLibraryInformation extends IfcLineObject$1 { + constructor(Name, Version, Publisher, VersionDate, LibraryReference) { + super(); + this.Name = Name; + this.Version = Version; + this.Publisher = Publisher; + this.VersionDate = VersionDate; + this.LibraryReference = LibraryReference; + this.type = 2655187982; + } + } + IFC2X32.IfcLibraryInformation = IfcLibraryInformation; + class IfcLibraryReference extends IfcExternalReference { + constructor(Location, ItemReference, Name) { + super(Location, ItemReference, Name); + this.Location = Location; + this.ItemReference = ItemReference; + this.Name = Name; + this.type = 3452421091; + } + } + IFC2X32.IfcLibraryReference = IfcLibraryReference; + class IfcLightDistributionData extends IfcLineObject$1 { + constructor(MainPlaneAngle, SecondaryPlaneAngle, LuminousIntensity) { + super(); + this.MainPlaneAngle = MainPlaneAngle; + this.SecondaryPlaneAngle = SecondaryPlaneAngle; + this.LuminousIntensity = LuminousIntensity; + this.type = 4162380809; + } + } + IFC2X32.IfcLightDistributionData = IfcLightDistributionData; + class IfcLightIntensityDistribution extends IfcLineObject$1 { + constructor(LightDistributionCurve, DistributionData) { + super(); + this.LightDistributionCurve = LightDistributionCurve; + this.DistributionData = DistributionData; + this.type = 1566485204; + } + } + IFC2X32.IfcLightIntensityDistribution = IfcLightIntensityDistribution; + class IfcLocalTime extends IfcLineObject$1 { + constructor(HourComponent, MinuteComponent, SecondComponent, Zone, DaylightSavingOffset) { + super(); + this.HourComponent = HourComponent; + this.MinuteComponent = MinuteComponent; + this.SecondComponent = SecondComponent; + this.Zone = Zone; + this.DaylightSavingOffset = DaylightSavingOffset; + this.type = 30780891; + } + } + IFC2X32.IfcLocalTime = IfcLocalTime; + class IfcMaterial extends IfcLineObject$1 { + constructor(Name) { + super(); + this.Name = Name; + this.type = 1838606355; + } + } + IFC2X32.IfcMaterial = IfcMaterial; + class IfcMaterialClassificationRelationship extends IfcLineObject$1 { + constructor(MaterialClassifications, ClassifiedMaterial) { + super(); + this.MaterialClassifications = MaterialClassifications; + this.ClassifiedMaterial = ClassifiedMaterial; + this.type = 1847130766; + } + } + IFC2X32.IfcMaterialClassificationRelationship = IfcMaterialClassificationRelationship; + class IfcMaterialLayer extends IfcLineObject$1 { + constructor(Material, LayerThickness, IsVentilated) { + super(); + this.Material = Material; + this.LayerThickness = LayerThickness; + this.IsVentilated = IsVentilated; + this.type = 248100487; + } + } + IFC2X32.IfcMaterialLayer = IfcMaterialLayer; + class IfcMaterialLayerSet extends IfcLineObject$1 { + constructor(MaterialLayers, LayerSetName) { + super(); + this.MaterialLayers = MaterialLayers; + this.LayerSetName = LayerSetName; + this.type = 3303938423; + } + } + IFC2X32.IfcMaterialLayerSet = IfcMaterialLayerSet; + class IfcMaterialLayerSetUsage extends IfcLineObject$1 { + constructor(ForLayerSet, LayerSetDirection, DirectionSense, OffsetFromReferenceLine) { + super(); + this.ForLayerSet = ForLayerSet; + this.LayerSetDirection = LayerSetDirection; + this.DirectionSense = DirectionSense; + this.OffsetFromReferenceLine = OffsetFromReferenceLine; + this.type = 1303795690; + } + } + IFC2X32.IfcMaterialLayerSetUsage = IfcMaterialLayerSetUsage; + class IfcMaterialList extends IfcLineObject$1 { + constructor(Materials) { + super(); + this.Materials = Materials; + this.type = 2199411900; + } + } + IFC2X32.IfcMaterialList = IfcMaterialList; + class IfcMaterialProperties extends IfcLineObject$1 { + constructor(Material) { + super(); + this.Material = Material; + this.type = 3265635763; + } + } + IFC2X32.IfcMaterialProperties = IfcMaterialProperties; + class IfcMeasureWithUnit extends IfcLineObject$1 { + constructor(ValueComponent, UnitComponent) { + super(); + this.ValueComponent = ValueComponent; + this.UnitComponent = UnitComponent; + this.type = 2597039031; + } + } + IFC2X32.IfcMeasureWithUnit = IfcMeasureWithUnit; + class IfcMechanicalMaterialProperties extends IfcMaterialProperties { + constructor(Material, DynamicViscosity, YoungModulus, ShearModulus, PoissonRatio, ThermalExpansionCoefficient) { + super(Material); + this.Material = Material; + this.DynamicViscosity = DynamicViscosity; + this.YoungModulus = YoungModulus; + this.ShearModulus = ShearModulus; + this.PoissonRatio = PoissonRatio; + this.ThermalExpansionCoefficient = ThermalExpansionCoefficient; + this.type = 4256014907; + } + } + IFC2X32.IfcMechanicalMaterialProperties = IfcMechanicalMaterialProperties; + class IfcMechanicalSteelMaterialProperties extends IfcMechanicalMaterialProperties { + constructor(Material, DynamicViscosity, YoungModulus, ShearModulus, PoissonRatio, ThermalExpansionCoefficient, YieldStress, UltimateStress, UltimateStrain, HardeningModule, ProportionalStress, PlasticStrain, Relaxations) { + super(Material, DynamicViscosity, YoungModulus, ShearModulus, PoissonRatio, ThermalExpansionCoefficient); + this.Material = Material; + this.DynamicViscosity = DynamicViscosity; + this.YoungModulus = YoungModulus; + this.ShearModulus = ShearModulus; + this.PoissonRatio = PoissonRatio; + this.ThermalExpansionCoefficient = ThermalExpansionCoefficient; + this.YieldStress = YieldStress; + this.UltimateStress = UltimateStress; + this.UltimateStrain = UltimateStrain; + this.HardeningModule = HardeningModule; + this.ProportionalStress = ProportionalStress; + this.PlasticStrain = PlasticStrain; + this.Relaxations = Relaxations; + this.type = 677618848; + } + } + IFC2X32.IfcMechanicalSteelMaterialProperties = IfcMechanicalSteelMaterialProperties; + class IfcMetric extends IfcConstraint { + constructor(Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade, Benchmark, ValueSource, DataValue) { + super(Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade); + this.Name = Name; + this.Description = Description; + this.ConstraintGrade = ConstraintGrade; + this.ConstraintSource = ConstraintSource; + this.CreatingActor = CreatingActor; + this.CreationTime = CreationTime; + this.UserDefinedGrade = UserDefinedGrade; + this.Benchmark = Benchmark; + this.ValueSource = ValueSource; + this.DataValue = DataValue; + this.type = 3368373690; + } + } + IFC2X32.IfcMetric = IfcMetric; + class IfcMonetaryUnit extends IfcLineObject$1 { + constructor(Currency) { + super(); + this.Currency = Currency; + this.type = 2706619895; + } + } + IFC2X32.IfcMonetaryUnit = IfcMonetaryUnit; + class IfcNamedUnit extends IfcLineObject$1 { + constructor(Dimensions, UnitType) { + super(); + this.Dimensions = Dimensions; + this.UnitType = UnitType; + this.type = 1918398963; + } + } + IFC2X32.IfcNamedUnit = IfcNamedUnit; + class IfcObjectPlacement extends IfcLineObject$1 { + constructor() { + super(); + this.type = 3701648758; + } + } + IFC2X32.IfcObjectPlacement = IfcObjectPlacement; + class IfcObjective extends IfcConstraint { + constructor(Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade, BenchmarkValues, ResultValues, ObjectiveQualifier, UserDefinedQualifier) { + super(Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade); + this.Name = Name; + this.Description = Description; + this.ConstraintGrade = ConstraintGrade; + this.ConstraintSource = ConstraintSource; + this.CreatingActor = CreatingActor; + this.CreationTime = CreationTime; + this.UserDefinedGrade = UserDefinedGrade; + this.BenchmarkValues = BenchmarkValues; + this.ResultValues = ResultValues; + this.ObjectiveQualifier = ObjectiveQualifier; + this.UserDefinedQualifier = UserDefinedQualifier; + this.type = 2251480897; + } + } + IFC2X32.IfcObjective = IfcObjective; + class IfcOpticalMaterialProperties extends IfcMaterialProperties { + constructor(Material, VisibleTransmittance, SolarTransmittance, ThermalIrTransmittance, ThermalIrEmissivityBack, ThermalIrEmissivityFront, VisibleReflectanceBack, VisibleReflectanceFront, SolarReflectanceFront, SolarReflectanceBack) { + super(Material); + this.Material = Material; + this.VisibleTransmittance = VisibleTransmittance; + this.SolarTransmittance = SolarTransmittance; + this.ThermalIrTransmittance = ThermalIrTransmittance; + this.ThermalIrEmissivityBack = ThermalIrEmissivityBack; + this.ThermalIrEmissivityFront = ThermalIrEmissivityFront; + this.VisibleReflectanceBack = VisibleReflectanceBack; + this.VisibleReflectanceFront = VisibleReflectanceFront; + this.SolarReflectanceFront = SolarReflectanceFront; + this.SolarReflectanceBack = SolarReflectanceBack; + this.type = 1227763645; + } + } + IFC2X32.IfcOpticalMaterialProperties = IfcOpticalMaterialProperties; + class IfcOrganization extends IfcLineObject$1 { + constructor(Id, Name, Description, Roles, Addresses) { + super(); + this.Id = Id; + this.Name = Name; + this.Description = Description; + this.Roles = Roles; + this.Addresses = Addresses; + this.type = 4251960020; + } + } + IFC2X32.IfcOrganization = IfcOrganization; + class IfcOrganizationRelationship extends IfcLineObject$1 { + constructor(Name, Description, RelatingOrganization, RelatedOrganizations) { + super(); + this.Name = Name; + this.Description = Description; + this.RelatingOrganization = RelatingOrganization; + this.RelatedOrganizations = RelatedOrganizations; + this.type = 1411181986; + } + } + IFC2X32.IfcOrganizationRelationship = IfcOrganizationRelationship; + class IfcOwnerHistory extends IfcLineObject$1 { + constructor(OwningUser, OwningApplication, State, ChangeAction, LastModifiedDate, LastModifyingUser, LastModifyingApplication, CreationDate) { + super(); + this.OwningUser = OwningUser; + this.OwningApplication = OwningApplication; + this.State = State; + this.ChangeAction = ChangeAction; + this.LastModifiedDate = LastModifiedDate; + this.LastModifyingUser = LastModifyingUser; + this.LastModifyingApplication = LastModifyingApplication; + this.CreationDate = CreationDate; + this.type = 1207048766; + } + } + IFC2X32.IfcOwnerHistory = IfcOwnerHistory; + class IfcPerson extends IfcLineObject$1 { + constructor(Id, FamilyName, GivenName, MiddleNames, PrefixTitles, SuffixTitles, Roles, Addresses) { + super(); + this.Id = Id; + this.FamilyName = FamilyName; + this.GivenName = GivenName; + this.MiddleNames = MiddleNames; + this.PrefixTitles = PrefixTitles; + this.SuffixTitles = SuffixTitles; + this.Roles = Roles; + this.Addresses = Addresses; + this.type = 2077209135; + } + } + IFC2X32.IfcPerson = IfcPerson; + class IfcPersonAndOrganization extends IfcLineObject$1 { + constructor(ThePerson, TheOrganization, Roles) { + super(); + this.ThePerson = ThePerson; + this.TheOrganization = TheOrganization; + this.Roles = Roles; + this.type = 101040310; + } + } + IFC2X32.IfcPersonAndOrganization = IfcPersonAndOrganization; + class IfcPhysicalQuantity extends IfcLineObject$1 { + constructor(Name, Description) { + super(); + this.Name = Name; + this.Description = Description; + this.type = 2483315170; + } + } + IFC2X32.IfcPhysicalQuantity = IfcPhysicalQuantity; + class IfcPhysicalSimpleQuantity extends IfcPhysicalQuantity { + constructor(Name, Description, Unit) { + super(Name, Description); + this.Name = Name; + this.Description = Description; + this.Unit = Unit; + this.type = 2226359599; + } + } + IFC2X32.IfcPhysicalSimpleQuantity = IfcPhysicalSimpleQuantity; + class IfcPostalAddress extends IfcAddress { + constructor(Purpose, Description, UserDefinedPurpose, InternalLocation, AddressLines, PostalBox, Town, Region, PostalCode, Country) { + super(Purpose, Description, UserDefinedPurpose); + this.Purpose = Purpose; + this.Description = Description; + this.UserDefinedPurpose = UserDefinedPurpose; + this.InternalLocation = InternalLocation; + this.AddressLines = AddressLines; + this.PostalBox = PostalBox; + this.Town = Town; + this.Region = Region; + this.PostalCode = PostalCode; + this.Country = Country; + this.type = 3355820592; + } + } + IFC2X32.IfcPostalAddress = IfcPostalAddress; + class IfcPreDefinedItem extends IfcLineObject$1 { + constructor(Name) { + super(); + this.Name = Name; + this.type = 3727388367; + } + } + IFC2X32.IfcPreDefinedItem = IfcPreDefinedItem; + class IfcPreDefinedSymbol extends IfcPreDefinedItem { + constructor(Name) { + super(Name); + this.Name = Name; + this.type = 990879717; + } + } + IFC2X32.IfcPreDefinedSymbol = IfcPreDefinedSymbol; + class IfcPreDefinedTerminatorSymbol extends IfcPreDefinedSymbol { + constructor(Name) { + super(Name); + this.Name = Name; + this.type = 3213052703; + } + } + IFC2X32.IfcPreDefinedTerminatorSymbol = IfcPreDefinedTerminatorSymbol; + class IfcPreDefinedTextFont extends IfcPreDefinedItem { + constructor(Name) { + super(Name); + this.Name = Name; + this.type = 1775413392; + } + } + IFC2X32.IfcPreDefinedTextFont = IfcPreDefinedTextFont; + class IfcPresentationLayerAssignment extends IfcLineObject$1 { + constructor(Name, Description, AssignedItems, Identifier) { + super(); + this.Name = Name; + this.Description = Description; + this.AssignedItems = AssignedItems; + this.Identifier = Identifier; + this.type = 2022622350; + } + } + IFC2X32.IfcPresentationLayerAssignment = IfcPresentationLayerAssignment; + class IfcPresentationLayerWithStyle extends IfcPresentationLayerAssignment { + constructor(Name, Description, AssignedItems, Identifier, LayerOn, LayerFrozen, LayerBlocked, LayerStyles) { + super(Name, Description, AssignedItems, Identifier); + this.Name = Name; + this.Description = Description; + this.AssignedItems = AssignedItems; + this.Identifier = Identifier; + this.LayerOn = LayerOn; + this.LayerFrozen = LayerFrozen; + this.LayerBlocked = LayerBlocked; + this.LayerStyles = LayerStyles; + this.type = 1304840413; + } + } + IFC2X32.IfcPresentationLayerWithStyle = IfcPresentationLayerWithStyle; + class IfcPresentationStyle extends IfcLineObject$1 { + constructor(Name) { + super(); + this.Name = Name; + this.type = 3119450353; + } + } + IFC2X32.IfcPresentationStyle = IfcPresentationStyle; + class IfcPresentationStyleAssignment extends IfcLineObject$1 { + constructor(Styles) { + super(); + this.Styles = Styles; + this.type = 2417041796; + } + } + IFC2X32.IfcPresentationStyleAssignment = IfcPresentationStyleAssignment; + class IfcProductRepresentation extends IfcLineObject$1 { + constructor(Name, Description, Representations) { + super(); + this.Name = Name; + this.Description = Description; + this.Representations = Representations; + this.type = 2095639259; + } + } + IFC2X32.IfcProductRepresentation = IfcProductRepresentation; + class IfcProductsOfCombustionProperties extends IfcMaterialProperties { + constructor(Material, SpecificHeatCapacity, N20Content, COContent, CO2Content) { + super(Material); + this.Material = Material; + this.SpecificHeatCapacity = SpecificHeatCapacity; + this.N20Content = N20Content; + this.COContent = COContent; + this.CO2Content = CO2Content; + this.type = 2267347899; + } + } + IFC2X32.IfcProductsOfCombustionProperties = IfcProductsOfCombustionProperties; + class IfcProfileDef extends IfcLineObject$1 { + constructor(ProfileType, ProfileName) { + super(); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.type = 3958567839; + } + } + IFC2X32.IfcProfileDef = IfcProfileDef; + class IfcProfileProperties extends IfcLineObject$1 { + constructor(ProfileName, ProfileDefinition) { + super(); + this.ProfileName = ProfileName; + this.ProfileDefinition = ProfileDefinition; + this.type = 2802850158; + } + } + IFC2X32.IfcProfileProperties = IfcProfileProperties; + class IfcProperty extends IfcLineObject$1 { + constructor(Name, Description) { + super(); + this.Name = Name; + this.Description = Description; + this.type = 2598011224; + } + } + IFC2X32.IfcProperty = IfcProperty; + class IfcPropertyConstraintRelationship extends IfcLineObject$1 { + constructor(RelatingConstraint, RelatedProperties, Name, Description) { + super(); + this.RelatingConstraint = RelatingConstraint; + this.RelatedProperties = RelatedProperties; + this.Name = Name; + this.Description = Description; + this.type = 3896028662; + } + } + IFC2X32.IfcPropertyConstraintRelationship = IfcPropertyConstraintRelationship; + class IfcPropertyDependencyRelationship extends IfcLineObject$1 { + constructor(DependingProperty, DependantProperty, Name, Description, Expression) { + super(); + this.DependingProperty = DependingProperty; + this.DependantProperty = DependantProperty; + this.Name = Name; + this.Description = Description; + this.Expression = Expression; + this.type = 148025276; + } + } + IFC2X32.IfcPropertyDependencyRelationship = IfcPropertyDependencyRelationship; + class IfcPropertyEnumeration extends IfcLineObject$1 { + constructor(Name, EnumerationValues, Unit) { + super(); + this.Name = Name; + this.EnumerationValues = EnumerationValues; + this.Unit = Unit; + this.type = 3710013099; + } + } + IFC2X32.IfcPropertyEnumeration = IfcPropertyEnumeration; + class IfcQuantityArea extends IfcPhysicalSimpleQuantity { + constructor(Name, Description, Unit, AreaValue) { + super(Name, Description, Unit); + this.Name = Name; + this.Description = Description; + this.Unit = Unit; + this.AreaValue = AreaValue; + this.type = 2044713172; + } + } + IFC2X32.IfcQuantityArea = IfcQuantityArea; + class IfcQuantityCount extends IfcPhysicalSimpleQuantity { + constructor(Name, Description, Unit, CountValue) { + super(Name, Description, Unit); + this.Name = Name; + this.Description = Description; + this.Unit = Unit; + this.CountValue = CountValue; + this.type = 2093928680; + } + } + IFC2X32.IfcQuantityCount = IfcQuantityCount; + class IfcQuantityLength extends IfcPhysicalSimpleQuantity { + constructor(Name, Description, Unit, LengthValue) { + super(Name, Description, Unit); + this.Name = Name; + this.Description = Description; + this.Unit = Unit; + this.LengthValue = LengthValue; + this.type = 931644368; + } + } + IFC2X32.IfcQuantityLength = IfcQuantityLength; + class IfcQuantityTime extends IfcPhysicalSimpleQuantity { + constructor(Name, Description, Unit, TimeValue) { + super(Name, Description, Unit); + this.Name = Name; + this.Description = Description; + this.Unit = Unit; + this.TimeValue = TimeValue; + this.type = 3252649465; + } + } + IFC2X32.IfcQuantityTime = IfcQuantityTime; + class IfcQuantityVolume extends IfcPhysicalSimpleQuantity { + constructor(Name, Description, Unit, VolumeValue) { + super(Name, Description, Unit); + this.Name = Name; + this.Description = Description; + this.Unit = Unit; + this.VolumeValue = VolumeValue; + this.type = 2405470396; + } + } + IFC2X32.IfcQuantityVolume = IfcQuantityVolume; + class IfcQuantityWeight extends IfcPhysicalSimpleQuantity { + constructor(Name, Description, Unit, WeightValue) { + super(Name, Description, Unit); + this.Name = Name; + this.Description = Description; + this.Unit = Unit; + this.WeightValue = WeightValue; + this.type = 825690147; + } + } + IFC2X32.IfcQuantityWeight = IfcQuantityWeight; + class IfcReferencesValueDocument extends IfcLineObject$1 { + constructor(ReferencedDocument, ReferencingValues, Name, Description) { + super(); + this.ReferencedDocument = ReferencedDocument; + this.ReferencingValues = ReferencingValues; + this.Name = Name; + this.Description = Description; + this.type = 2692823254; + } + } + IFC2X32.IfcReferencesValueDocument = IfcReferencesValueDocument; + class IfcReinforcementBarProperties extends IfcLineObject$1 { + constructor(TotalCrossSectionArea, SteelGrade, BarSurface, EffectiveDepth, NominalBarDiameter, BarCount) { + super(); + this.TotalCrossSectionArea = TotalCrossSectionArea; + this.SteelGrade = SteelGrade; + this.BarSurface = BarSurface; + this.EffectiveDepth = EffectiveDepth; + this.NominalBarDiameter = NominalBarDiameter; + this.BarCount = BarCount; + this.type = 1580146022; + } + } + IFC2X32.IfcReinforcementBarProperties = IfcReinforcementBarProperties; + class IfcRelaxation extends IfcLineObject$1 { + constructor(RelaxationValue, InitialStress) { + super(); + this.RelaxationValue = RelaxationValue; + this.InitialStress = InitialStress; + this.type = 1222501353; + } + } + IFC2X32.IfcRelaxation = IfcRelaxation; + class IfcRepresentation extends IfcLineObject$1 { + constructor(ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { + super(); + this.ContextOfItems = ContextOfItems; + this.RepresentationIdentifier = RepresentationIdentifier; + this.RepresentationType = RepresentationType; + this.Items = Items; + this.type = 1076942058; + } + } + IFC2X32.IfcRepresentation = IfcRepresentation; + class IfcRepresentationContext extends IfcLineObject$1 { + constructor(ContextIdentifier, ContextType) { + super(); + this.ContextIdentifier = ContextIdentifier; + this.ContextType = ContextType; + this.type = 3377609919; + } + } + IFC2X32.IfcRepresentationContext = IfcRepresentationContext; + class IfcRepresentationItem extends IfcLineObject$1 { + constructor() { + super(); + this.type = 3008791417; + } + } + IFC2X32.IfcRepresentationItem = IfcRepresentationItem; + class IfcRepresentationMap extends IfcLineObject$1 { + constructor(MappingOrigin, MappedRepresentation) { + super(); + this.MappingOrigin = MappingOrigin; + this.MappedRepresentation = MappedRepresentation; + this.type = 1660063152; + } + } + IFC2X32.IfcRepresentationMap = IfcRepresentationMap; + class IfcRibPlateProfileProperties extends IfcProfileProperties { + constructor(ProfileName, ProfileDefinition, Thickness, RibHeight, RibWidth, RibSpacing, Direction) { + super(ProfileName, ProfileDefinition); + this.ProfileName = ProfileName; + this.ProfileDefinition = ProfileDefinition; + this.Thickness = Thickness; + this.RibHeight = RibHeight; + this.RibWidth = RibWidth; + this.RibSpacing = RibSpacing; + this.Direction = Direction; + this.type = 3679540991; + } + } + IFC2X32.IfcRibPlateProfileProperties = IfcRibPlateProfileProperties; + class IfcRoot extends IfcLineObject$1 { + constructor(GlobalId, OwnerHistory, Name, Description) { + super(); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.type = 2341007311; + } + } + IFC2X32.IfcRoot = IfcRoot; + class IfcSIUnit extends IfcNamedUnit { + constructor(UnitType, Prefix, Name) { + super(new Handle$5(0), UnitType); + this.UnitType = UnitType; + this.Prefix = Prefix; + this.Name = Name; + this.type = 448429030; + } + } + IFC2X32.IfcSIUnit = IfcSIUnit; + class IfcSectionProperties extends IfcLineObject$1 { + constructor(SectionType, StartProfile, EndProfile) { + super(); + this.SectionType = SectionType; + this.StartProfile = StartProfile; + this.EndProfile = EndProfile; + this.type = 2042790032; + } + } + IFC2X32.IfcSectionProperties = IfcSectionProperties; + class IfcSectionReinforcementProperties extends IfcLineObject$1 { + constructor(LongitudinalStartPosition, LongitudinalEndPosition, TransversePosition, ReinforcementRole, SectionDefinition, CrossSectionReinforcementDefinitions) { + super(); + this.LongitudinalStartPosition = LongitudinalStartPosition; + this.LongitudinalEndPosition = LongitudinalEndPosition; + this.TransversePosition = TransversePosition; + this.ReinforcementRole = ReinforcementRole; + this.SectionDefinition = SectionDefinition; + this.CrossSectionReinforcementDefinitions = CrossSectionReinforcementDefinitions; + this.type = 4165799628; + } + } + IFC2X32.IfcSectionReinforcementProperties = IfcSectionReinforcementProperties; + class IfcShapeAspect extends IfcLineObject$1 { + constructor(ShapeRepresentations, Name, Description, ProductDefinitional, PartOfProductDefinitionShape) { + super(); + this.ShapeRepresentations = ShapeRepresentations; + this.Name = Name; + this.Description = Description; + this.ProductDefinitional = ProductDefinitional; + this.PartOfProductDefinitionShape = PartOfProductDefinitionShape; + this.type = 867548509; + } } -}); -var Handle$4 = class Handle { - constructor(value) { - this.value = value; - this.type = 5; + IFC2X32.IfcShapeAspect = IfcShapeAspect; + class IfcShapeModel extends IfcRepresentation { + constructor(ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { + super(ContextOfItems, RepresentationIdentifier, RepresentationType, Items); + this.ContextOfItems = ContextOfItems; + this.RepresentationIdentifier = RepresentationIdentifier; + this.RepresentationType = RepresentationType; + this.Items = Items; + this.type = 3982875396; + } } -}; -var IfcLineObject = class { - constructor(expressID) { - this.expressID = expressID; - this.type = 0; + IFC2X32.IfcShapeModel = IfcShapeModel; + class IfcShapeRepresentation extends IfcShapeModel { + constructor(ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { + super(ContextOfItems, RepresentationIdentifier, RepresentationType, Items); + this.ContextOfItems = ContextOfItems; + this.RepresentationIdentifier = RepresentationIdentifier; + this.RepresentationType = RepresentationType; + this.Items = Items; + this.type = 4240577450; + } } -}; -var Schemas; -(function(Schemas2) { - Schemas2["IFC2X3"] = "IFC2X3"; - Schemas2["IFC4"] = "IFC4"; - Schemas2["IFC4X3"] = "IFC4X3"; -})(Schemas || (Schemas = {})); -var IFC2X3; -(function(IFC2X32) { - class IfcAbsorbedDoseMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcShapeRepresentation = IfcShapeRepresentation; + class IfcSimpleProperty extends IfcProperty { + constructor(Name, Description) { + super(Name, Description); + this.Name = Name; + this.Description = Description; + this.type = 3692461612; } } - IFC2X32.IfcAbsorbedDoseMeasure = IfcAbsorbedDoseMeasure; - class IfcAccelerationMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcSimpleProperty = IfcSimpleProperty; + class IfcStructuralConnectionCondition extends IfcLineObject$1 { + constructor(Name) { + super(); + this.Name = Name; + this.type = 2273995522; } } - IFC2X32.IfcAccelerationMeasure = IfcAccelerationMeasure; - class IfcAmountOfSubstanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcStructuralConnectionCondition = IfcStructuralConnectionCondition; + class IfcStructuralLoad extends IfcLineObject$1 { + constructor(Name) { + super(); + this.Name = Name; + this.type = 2162789131; } } - IFC2X32.IfcAmountOfSubstanceMeasure = IfcAmountOfSubstanceMeasure; - class IfcAngularVelocityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcStructuralLoad = IfcStructuralLoad; + class IfcStructuralLoadStatic extends IfcStructuralLoad { + constructor(Name) { + super(Name); + this.Name = Name; + this.type = 2525727697; } } - IFC2X32.IfcAngularVelocityMeasure = IfcAngularVelocityMeasure; - class IfcAreaMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcStructuralLoadStatic = IfcStructuralLoadStatic; + class IfcStructuralLoadTemperature extends IfcStructuralLoadStatic { + constructor(Name, DeltaT_Constant, DeltaT_Y, DeltaT_Z) { + super(Name); + this.Name = Name; + this.DeltaT_Constant = DeltaT_Constant; + this.DeltaT_Y = DeltaT_Y; + this.DeltaT_Z = DeltaT_Z; + this.type = 3408363356; } } - IFC2X32.IfcAreaMeasure = IfcAreaMeasure; - class IfcBoolean { - constructor(v) { - this.type = 3; - this.value = v == "true" ? true : false; + IFC2X32.IfcStructuralLoadTemperature = IfcStructuralLoadTemperature; + class IfcStyleModel extends IfcRepresentation { + constructor(ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { + super(ContextOfItems, RepresentationIdentifier, RepresentationType, Items); + this.ContextOfItems = ContextOfItems; + this.RepresentationIdentifier = RepresentationIdentifier; + this.RepresentationType = RepresentationType; + this.Items = Items; + this.type = 2830218821; } } - IFC2X32.IfcBoolean = IfcBoolean; - class IfcBoxAlignment { - constructor(value) { - this.value = value; - this.type = 1; + IFC2X32.IfcStyleModel = IfcStyleModel; + class IfcStyledItem extends IfcRepresentationItem { + constructor(Item, Styles, Name) { + super(); + this.Item = Item; + this.Styles = Styles; + this.Name = Name; + this.type = 3958052878; } } - IFC2X32.IfcBoxAlignment = IfcBoxAlignment; - class IfcComplexNumber { - constructor(value) { - this.value = value; + IFC2X32.IfcStyledItem = IfcStyledItem; + class IfcStyledRepresentation extends IfcStyleModel { + constructor(ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { + super(ContextOfItems, RepresentationIdentifier, RepresentationType, Items); + this.ContextOfItems = ContextOfItems; + this.RepresentationIdentifier = RepresentationIdentifier; + this.RepresentationType = RepresentationType; + this.Items = Items; + this.type = 3049322572; } } - IFC2X32.IfcComplexNumber = IfcComplexNumber; - class IfcCompoundPlaneAngleMeasure { - constructor(value) { - this.value = value; + IFC2X32.IfcStyledRepresentation = IfcStyledRepresentation; + class IfcSurfaceStyle extends IfcPresentationStyle { + constructor(Name, Side, Styles) { + super(Name); + this.Name = Name; + this.Side = Side; + this.Styles = Styles; + this.type = 1300840506; } } - IFC2X32.IfcCompoundPlaneAngleMeasure = IfcCompoundPlaneAngleMeasure; - class IfcContextDependentMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcSurfaceStyle = IfcSurfaceStyle; + class IfcSurfaceStyleLighting extends IfcLineObject$1 { + constructor(DiffuseTransmissionColour, DiffuseReflectionColour, TransmissionColour, ReflectanceColour) { + super(); + this.DiffuseTransmissionColour = DiffuseTransmissionColour; + this.DiffuseReflectionColour = DiffuseReflectionColour; + this.TransmissionColour = TransmissionColour; + this.ReflectanceColour = ReflectanceColour; + this.type = 3303107099; } } - IFC2X32.IfcContextDependentMeasure = IfcContextDependentMeasure; - class IfcCountMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcSurfaceStyleLighting = IfcSurfaceStyleLighting; + class IfcSurfaceStyleRefraction extends IfcLineObject$1 { + constructor(RefractionIndex, DispersionFactor) { + super(); + this.RefractionIndex = RefractionIndex; + this.DispersionFactor = DispersionFactor; + this.type = 1607154358; } } - IFC2X32.IfcCountMeasure = IfcCountMeasure; - class IfcCurvatureMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcSurfaceStyleRefraction = IfcSurfaceStyleRefraction; + class IfcSurfaceStyleShading extends IfcLineObject$1 { + constructor(SurfaceColour) { + super(); + this.SurfaceColour = SurfaceColour; + this.type = 846575682; } } - IFC2X32.IfcCurvatureMeasure = IfcCurvatureMeasure; - class IfcDayInMonthNumber { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcSurfaceStyleShading = IfcSurfaceStyleShading; + class IfcSurfaceStyleWithTextures extends IfcLineObject$1 { + constructor(Textures) { + super(); + this.Textures = Textures; + this.type = 1351298697; } } - IFC2X32.IfcDayInMonthNumber = IfcDayInMonthNumber; - class IfcDaylightSavingHour { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcSurfaceStyleWithTextures = IfcSurfaceStyleWithTextures; + class IfcSurfaceTexture extends IfcLineObject$1 { + constructor(RepeatS, RepeatT, TextureType, TextureTransform) { + super(); + this.RepeatS = RepeatS; + this.RepeatT = RepeatT; + this.TextureType = TextureType; + this.TextureTransform = TextureTransform; + this.type = 626085974; } } - IFC2X32.IfcDaylightSavingHour = IfcDaylightSavingHour; - class IfcDescriptiveMeasure { - constructor(value) { - this.value = value; - this.type = 1; + IFC2X32.IfcSurfaceTexture = IfcSurfaceTexture; + class IfcSymbolStyle extends IfcPresentationStyle { + constructor(Name, StyleOfSymbol) { + super(Name); + this.Name = Name; + this.StyleOfSymbol = StyleOfSymbol; + this.type = 1290481447; } } - IFC2X32.IfcDescriptiveMeasure = IfcDescriptiveMeasure; - class IfcDimensionCount { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcSymbolStyle = IfcSymbolStyle; + class IfcTable extends IfcLineObject$1 { + constructor(Name, Rows) { + super(); + this.Name = Name; + this.Rows = Rows; + this.type = 985171141; } } - IFC2X32.IfcDimensionCount = IfcDimensionCount; - class IfcDoseEquivalentMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcTable = IfcTable; + class IfcTableRow extends IfcLineObject$1 { + constructor(RowCells, IsHeading) { + super(); + this.RowCells = RowCells; + this.IsHeading = IsHeading; + this.type = 531007025; } } - IFC2X32.IfcDoseEquivalentMeasure = IfcDoseEquivalentMeasure; - class IfcDynamicViscosityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcTableRow = IfcTableRow; + class IfcTelecomAddress extends IfcAddress { + constructor(Purpose, Description, UserDefinedPurpose, TelephoneNumbers, FacsimileNumbers, PagerNumber, ElectronicMailAddresses, WWWHomePageURL) { + super(Purpose, Description, UserDefinedPurpose); + this.Purpose = Purpose; + this.Description = Description; + this.UserDefinedPurpose = UserDefinedPurpose; + this.TelephoneNumbers = TelephoneNumbers; + this.FacsimileNumbers = FacsimileNumbers; + this.PagerNumber = PagerNumber; + this.ElectronicMailAddresses = ElectronicMailAddresses; + this.WWWHomePageURL = WWWHomePageURL; + this.type = 912023232; } } - IFC2X32.IfcDynamicViscosityMeasure = IfcDynamicViscosityMeasure; - class IfcElectricCapacitanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcTelecomAddress = IfcTelecomAddress; + class IfcTextStyle extends IfcPresentationStyle { + constructor(Name, TextCharacterAppearance, TextStyle, TextFontStyle) { + super(Name); + this.Name = Name; + this.TextCharacterAppearance = TextCharacterAppearance; + this.TextStyle = TextStyle; + this.TextFontStyle = TextFontStyle; + this.type = 1447204868; + } + } + IFC2X32.IfcTextStyle = IfcTextStyle; + class IfcTextStyleFontModel extends IfcPreDefinedTextFont { + constructor(Name, FontFamily, FontStyle, FontVariant, FontWeight, FontSize) { + super(Name); + this.Name = Name; + this.FontFamily = FontFamily; + this.FontStyle = FontStyle; + this.FontVariant = FontVariant; + this.FontWeight = FontWeight; + this.FontSize = FontSize; + this.type = 1983826977; + } + } + IFC2X32.IfcTextStyleFontModel = IfcTextStyleFontModel; + class IfcTextStyleForDefinedFont extends IfcLineObject$1 { + constructor(Colour, BackgroundColour) { + super(); + this.Colour = Colour; + this.BackgroundColour = BackgroundColour; + this.type = 2636378356; + } + } + IFC2X32.IfcTextStyleForDefinedFont = IfcTextStyleForDefinedFont; + class IfcTextStyleTextModel extends IfcLineObject$1 { + constructor(TextIndent, TextAlign, TextDecoration, LetterSpacing, WordSpacing, TextTransform, LineHeight) { + super(); + this.TextIndent = TextIndent; + this.TextAlign = TextAlign; + this.TextDecoration = TextDecoration; + this.LetterSpacing = LetterSpacing; + this.WordSpacing = WordSpacing; + this.TextTransform = TextTransform; + this.LineHeight = LineHeight; + this.type = 1640371178; + } + } + IFC2X32.IfcTextStyleTextModel = IfcTextStyleTextModel; + class IfcTextStyleWithBoxCharacteristics extends IfcLineObject$1 { + constructor(BoxHeight, BoxWidth, BoxSlantAngle, BoxRotateAngle, CharacterSpacing) { + super(); + this.BoxHeight = BoxHeight; + this.BoxWidth = BoxWidth; + this.BoxSlantAngle = BoxSlantAngle; + this.BoxRotateAngle = BoxRotateAngle; + this.CharacterSpacing = CharacterSpacing; + this.type = 1484833681; + } + } + IFC2X32.IfcTextStyleWithBoxCharacteristics = IfcTextStyleWithBoxCharacteristics; + class IfcTextureCoordinate extends IfcLineObject$1 { + constructor() { + super(); + this.type = 280115917; + } + } + IFC2X32.IfcTextureCoordinate = IfcTextureCoordinate; + class IfcTextureCoordinateGenerator extends IfcTextureCoordinate { + constructor(Mode, Parameter) { + super(); + this.Mode = Mode; + this.Parameter = Parameter; + this.type = 1742049831; + } + } + IFC2X32.IfcTextureCoordinateGenerator = IfcTextureCoordinateGenerator; + class IfcTextureMap extends IfcTextureCoordinate { + constructor(TextureMaps) { + super(); + this.TextureMaps = TextureMaps; + this.type = 2552916305; + } + } + IFC2X32.IfcTextureMap = IfcTextureMap; + class IfcTextureVertex extends IfcLineObject$1 { + constructor(Coordinates) { + super(); + this.Coordinates = Coordinates; + this.type = 1210645708; + } + } + IFC2X32.IfcTextureVertex = IfcTextureVertex; + class IfcThermalMaterialProperties extends IfcMaterialProperties { + constructor(Material, SpecificHeatCapacity, BoilingPoint, FreezingPoint, ThermalConductivity) { + super(Material); + this.Material = Material; + this.SpecificHeatCapacity = SpecificHeatCapacity; + this.BoilingPoint = BoilingPoint; + this.FreezingPoint = FreezingPoint; + this.ThermalConductivity = ThermalConductivity; + this.type = 3317419933; + } + } + IFC2X32.IfcThermalMaterialProperties = IfcThermalMaterialProperties; + class IfcTimeSeries extends IfcLineObject$1 { + constructor(Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit) { + super(); + this.Name = Name; + this.Description = Description; + this.StartTime = StartTime; + this.EndTime = EndTime; + this.TimeSeriesDataType = TimeSeriesDataType; + this.DataOrigin = DataOrigin; + this.UserDefinedDataOrigin = UserDefinedDataOrigin; + this.Unit = Unit; + this.type = 3101149627; + } + } + IFC2X32.IfcTimeSeries = IfcTimeSeries; + class IfcTimeSeriesReferenceRelationship extends IfcLineObject$1 { + constructor(ReferencedTimeSeries, TimeSeriesReferences) { + super(); + this.ReferencedTimeSeries = ReferencedTimeSeries; + this.TimeSeriesReferences = TimeSeriesReferences; + this.type = 1718945513; + } + } + IFC2X32.IfcTimeSeriesReferenceRelationship = IfcTimeSeriesReferenceRelationship; + class IfcTimeSeriesValue extends IfcLineObject$1 { + constructor(ListValues) { + super(); + this.ListValues = ListValues; + this.type = 581633288; + } + } + IFC2X32.IfcTimeSeriesValue = IfcTimeSeriesValue; + class IfcTopologicalRepresentationItem extends IfcRepresentationItem { + constructor() { + super(); + this.type = 1377556343; + } + } + IFC2X32.IfcTopologicalRepresentationItem = IfcTopologicalRepresentationItem; + class IfcTopologyRepresentation extends IfcShapeModel { + constructor(ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { + super(ContextOfItems, RepresentationIdentifier, RepresentationType, Items); + this.ContextOfItems = ContextOfItems; + this.RepresentationIdentifier = RepresentationIdentifier; + this.RepresentationType = RepresentationType; + this.Items = Items; + this.type = 1735638870; + } + } + IFC2X32.IfcTopologyRepresentation = IfcTopologyRepresentation; + class IfcUnitAssignment extends IfcLineObject$1 { + constructor(Units) { + super(); + this.Units = Units; + this.type = 180925521; + } + } + IFC2X32.IfcUnitAssignment = IfcUnitAssignment; + class IfcVertex extends IfcTopologicalRepresentationItem { + constructor() { + super(); + this.type = 2799835756; + } + } + IFC2X32.IfcVertex = IfcVertex; + class IfcVertexBasedTextureMap extends IfcLineObject$1 { + constructor(TextureVertices, TexturePoints) { + super(); + this.TextureVertices = TextureVertices; + this.TexturePoints = TexturePoints; + this.type = 3304826586; + } + } + IFC2X32.IfcVertexBasedTextureMap = IfcVertexBasedTextureMap; + class IfcVertexPoint extends IfcVertex { + constructor(VertexGeometry) { + super(); + this.VertexGeometry = VertexGeometry; + this.type = 1907098498; + } + } + IFC2X32.IfcVertexPoint = IfcVertexPoint; + class IfcVirtualGridIntersection extends IfcLineObject$1 { + constructor(IntersectingAxes, OffsetDistances) { + super(); + this.IntersectingAxes = IntersectingAxes; + this.OffsetDistances = OffsetDistances; + this.type = 891718957; + } + } + IFC2X32.IfcVirtualGridIntersection = IfcVirtualGridIntersection; + class IfcWaterProperties extends IfcMaterialProperties { + constructor(Material, IsPotable, Hardness, AlkalinityConcentration, AcidityConcentration, ImpuritiesContent, PHLevel, DissolvedSolidsContent) { + super(Material); + this.Material = Material; + this.IsPotable = IsPotable; + this.Hardness = Hardness; + this.AlkalinityConcentration = AlkalinityConcentration; + this.AcidityConcentration = AcidityConcentration; + this.ImpuritiesContent = ImpuritiesContent; + this.PHLevel = PHLevel; + this.DissolvedSolidsContent = DissolvedSolidsContent; + this.type = 1065908215; + } + } + IFC2X32.IfcWaterProperties = IfcWaterProperties; + class IfcAnnotationOccurrence extends IfcStyledItem { + constructor(Item, Styles, Name) { + super(Item, Styles, Name); + this.Item = Item; + this.Styles = Styles; + this.Name = Name; + this.type = 2442683028; + } + } + IFC2X32.IfcAnnotationOccurrence = IfcAnnotationOccurrence; + class IfcAnnotationSurfaceOccurrence extends IfcAnnotationOccurrence { + constructor(Item, Styles, Name) { + super(Item, Styles, Name); + this.Item = Item; + this.Styles = Styles; + this.Name = Name; + this.type = 962685235; + } + } + IFC2X32.IfcAnnotationSurfaceOccurrence = IfcAnnotationSurfaceOccurrence; + class IfcAnnotationSymbolOccurrence extends IfcAnnotationOccurrence { + constructor(Item, Styles, Name) { + super(Item, Styles, Name); + this.Item = Item; + this.Styles = Styles; + this.Name = Name; + this.type = 3612888222; + } + } + IFC2X32.IfcAnnotationSymbolOccurrence = IfcAnnotationSymbolOccurrence; + class IfcAnnotationTextOccurrence extends IfcAnnotationOccurrence { + constructor(Item, Styles, Name) { + super(Item, Styles, Name); + this.Item = Item; + this.Styles = Styles; + this.Name = Name; + this.type = 2297822566; + } + } + IFC2X32.IfcAnnotationTextOccurrence = IfcAnnotationTextOccurrence; + class IfcArbitraryClosedProfileDef extends IfcProfileDef { + constructor(ProfileType, ProfileName, OuterCurve) { + super(ProfileType, ProfileName); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.OuterCurve = OuterCurve; + this.type = 3798115385; + } + } + IFC2X32.IfcArbitraryClosedProfileDef = IfcArbitraryClosedProfileDef; + class IfcArbitraryOpenProfileDef extends IfcProfileDef { + constructor(ProfileType, ProfileName, Curve) { + super(ProfileType, ProfileName); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Curve = Curve; + this.type = 1310608509; + } + } + IFC2X32.IfcArbitraryOpenProfileDef = IfcArbitraryOpenProfileDef; + class IfcArbitraryProfileDefWithVoids extends IfcArbitraryClosedProfileDef { + constructor(ProfileType, ProfileName, OuterCurve, InnerCurves) { + super(ProfileType, ProfileName, OuterCurve); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.OuterCurve = OuterCurve; + this.InnerCurves = InnerCurves; + this.type = 2705031697; + } + } + IFC2X32.IfcArbitraryProfileDefWithVoids = IfcArbitraryProfileDefWithVoids; + class IfcBlobTexture extends IfcSurfaceTexture { + constructor(RepeatS, RepeatT, TextureType, TextureTransform, RasterFormat, RasterCode) { + super(RepeatS, RepeatT, TextureType, TextureTransform); + this.RepeatS = RepeatS; + this.RepeatT = RepeatT; + this.TextureType = TextureType; + this.TextureTransform = TextureTransform; + this.RasterFormat = RasterFormat; + this.RasterCode = RasterCode; + this.type = 616511568; + } + } + IFC2X32.IfcBlobTexture = IfcBlobTexture; + class IfcCenterLineProfileDef extends IfcArbitraryOpenProfileDef { + constructor(ProfileType, ProfileName, Curve, Thickness) { + super(ProfileType, ProfileName, Curve); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Curve = Curve; + this.Thickness = Thickness; + this.type = 3150382593; + } + } + IFC2X32.IfcCenterLineProfileDef = IfcCenterLineProfileDef; + class IfcClassificationReference extends IfcExternalReference { + constructor(Location, ItemReference, Name, ReferencedSource) { + super(Location, ItemReference, Name); + this.Location = Location; + this.ItemReference = ItemReference; + this.Name = Name; + this.ReferencedSource = ReferencedSource; + this.type = 647927063; + } + } + IFC2X32.IfcClassificationReference = IfcClassificationReference; + class IfcColourRgb extends IfcColourSpecification { + constructor(Name, Red, Green, Blue) { + super(Name); + this.Name = Name; + this.Red = Red; + this.Green = Green; + this.Blue = Blue; + this.type = 776857604; + } + } + IFC2X32.IfcColourRgb = IfcColourRgb; + class IfcComplexProperty extends IfcProperty { + constructor(Name, Description, UsageName, HasProperties) { + super(Name, Description); + this.Name = Name; + this.Description = Description; + this.UsageName = UsageName; + this.HasProperties = HasProperties; + this.type = 2542286263; + } + } + IFC2X32.IfcComplexProperty = IfcComplexProperty; + class IfcCompositeProfileDef extends IfcProfileDef { + constructor(ProfileType, ProfileName, Profiles, Label) { + super(ProfileType, ProfileName); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Profiles = Profiles; + this.Label = Label; + this.type = 1485152156; + } + } + IFC2X32.IfcCompositeProfileDef = IfcCompositeProfileDef; + class IfcConnectedFaceSet extends IfcTopologicalRepresentationItem { + constructor(CfsFaces) { + super(); + this.CfsFaces = CfsFaces; + this.type = 370225590; + } + } + IFC2X32.IfcConnectedFaceSet = IfcConnectedFaceSet; + class IfcConnectionCurveGeometry extends IfcConnectionGeometry { + constructor(CurveOnRelatingElement, CurveOnRelatedElement) { + super(); + this.CurveOnRelatingElement = CurveOnRelatingElement; + this.CurveOnRelatedElement = CurveOnRelatedElement; + this.type = 1981873012; + } + } + IFC2X32.IfcConnectionCurveGeometry = IfcConnectionCurveGeometry; + class IfcConnectionPointEccentricity extends IfcConnectionPointGeometry { + constructor(PointOnRelatingElement, PointOnRelatedElement, EccentricityInX, EccentricityInY, EccentricityInZ) { + super(PointOnRelatingElement, PointOnRelatedElement); + this.PointOnRelatingElement = PointOnRelatingElement; + this.PointOnRelatedElement = PointOnRelatedElement; + this.EccentricityInX = EccentricityInX; + this.EccentricityInY = EccentricityInY; + this.EccentricityInZ = EccentricityInZ; + this.type = 45288368; } } - IFC2X32.IfcElectricCapacitanceMeasure = IfcElectricCapacitanceMeasure; - class IfcElectricChargeMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcConnectionPointEccentricity = IfcConnectionPointEccentricity; + class IfcContextDependentUnit extends IfcNamedUnit { + constructor(Dimensions, UnitType, Name) { + super(Dimensions, UnitType); + this.Dimensions = Dimensions; + this.UnitType = UnitType; + this.Name = Name; + this.type = 3050246964; } } - IFC2X32.IfcElectricChargeMeasure = IfcElectricChargeMeasure; - class IfcElectricConductanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcContextDependentUnit = IfcContextDependentUnit; + class IfcConversionBasedUnit extends IfcNamedUnit { + constructor(Dimensions, UnitType, Name, ConversionFactor) { + super(Dimensions, UnitType); + this.Dimensions = Dimensions; + this.UnitType = UnitType; + this.Name = Name; + this.ConversionFactor = ConversionFactor; + this.type = 2889183280; } } - IFC2X32.IfcElectricConductanceMeasure = IfcElectricConductanceMeasure; - class IfcElectricCurrentMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcConversionBasedUnit = IfcConversionBasedUnit; + class IfcCurveStyle extends IfcPresentationStyle { + constructor(Name, CurveFont, CurveWidth, CurveColour) { + super(Name); + this.Name = Name; + this.CurveFont = CurveFont; + this.CurveWidth = CurveWidth; + this.CurveColour = CurveColour; + this.type = 3800577675; } } - IFC2X32.IfcElectricCurrentMeasure = IfcElectricCurrentMeasure; - class IfcElectricResistanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcCurveStyle = IfcCurveStyle; + class IfcDerivedProfileDef extends IfcProfileDef { + constructor(ProfileType, ProfileName, ParentProfile, Operator, Label) { + super(ProfileType, ProfileName); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.ParentProfile = ParentProfile; + this.Operator = Operator; + this.Label = Label; + this.type = 3632507154; } } - IFC2X32.IfcElectricResistanceMeasure = IfcElectricResistanceMeasure; - class IfcElectricVoltageMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcDerivedProfileDef = IfcDerivedProfileDef; + class IfcDimensionCalloutRelationship extends IfcDraughtingCalloutRelationship { + constructor(Name, Description, RelatingDraughtingCallout, RelatedDraughtingCallout) { + super(Name, Description, RelatingDraughtingCallout, RelatedDraughtingCallout); + this.Name = Name; + this.Description = Description; + this.RelatingDraughtingCallout = RelatingDraughtingCallout; + this.RelatedDraughtingCallout = RelatedDraughtingCallout; + this.type = 2273265877; } } - IFC2X32.IfcElectricVoltageMeasure = IfcElectricVoltageMeasure; - class IfcEnergyMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcDimensionCalloutRelationship = IfcDimensionCalloutRelationship; + class IfcDimensionPair extends IfcDraughtingCalloutRelationship { + constructor(Name, Description, RelatingDraughtingCallout, RelatedDraughtingCallout) { + super(Name, Description, RelatingDraughtingCallout, RelatedDraughtingCallout); + this.Name = Name; + this.Description = Description; + this.RelatingDraughtingCallout = RelatingDraughtingCallout; + this.RelatedDraughtingCallout = RelatedDraughtingCallout; + this.type = 1694125774; } } - IFC2X32.IfcEnergyMeasure = IfcEnergyMeasure; - class IfcFontStyle { - constructor(value) { - this.value = value; - this.type = 1; + IFC2X32.IfcDimensionPair = IfcDimensionPair; + class IfcDocumentReference extends IfcExternalReference { + constructor(Location, ItemReference, Name) { + super(Location, ItemReference, Name); + this.Location = Location; + this.ItemReference = ItemReference; + this.Name = Name; + this.type = 3732053477; } } - IFC2X32.IfcFontStyle = IfcFontStyle; - class IfcFontVariant { - constructor(value) { - this.value = value; - this.type = 1; + IFC2X32.IfcDocumentReference = IfcDocumentReference; + class IfcDraughtingPreDefinedTextFont extends IfcPreDefinedTextFont { + constructor(Name) { + super(Name); + this.Name = Name; + this.type = 4170525392; } } - IFC2X32.IfcFontVariant = IfcFontVariant; - class IfcFontWeight { - constructor(value) { - this.value = value; - this.type = 1; + IFC2X32.IfcDraughtingPreDefinedTextFont = IfcDraughtingPreDefinedTextFont; + class IfcEdge extends IfcTopologicalRepresentationItem { + constructor(EdgeStart, EdgeEnd) { + super(); + this.EdgeStart = EdgeStart; + this.EdgeEnd = EdgeEnd; + this.type = 3900360178; } } - IFC2X32.IfcFontWeight = IfcFontWeight; - class IfcForceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcEdge = IfcEdge; + class IfcEdgeCurve extends IfcEdge { + constructor(EdgeStart, EdgeEnd, EdgeGeometry, SameSense) { + super(EdgeStart, EdgeEnd); + this.EdgeStart = EdgeStart; + this.EdgeEnd = EdgeEnd; + this.EdgeGeometry = EdgeGeometry; + this.SameSense = SameSense; + this.type = 476780140; } } - IFC2X32.IfcForceMeasure = IfcForceMeasure; - class IfcFrequencyMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcEdgeCurve = IfcEdgeCurve; + class IfcExtendedMaterialProperties extends IfcMaterialProperties { + constructor(Material, ExtendedProperties, Description, Name) { + super(Material); + this.Material = Material; + this.ExtendedProperties = ExtendedProperties; + this.Description = Description; + this.Name = Name; + this.type = 1860660968; } } - IFC2X32.IfcFrequencyMeasure = IfcFrequencyMeasure; - class IfcGloballyUniqueId { - constructor(value) { - this.value = value; - this.type = 1; + IFC2X32.IfcExtendedMaterialProperties = IfcExtendedMaterialProperties; + class IfcFace extends IfcTopologicalRepresentationItem { + constructor(Bounds) { + super(); + this.Bounds = Bounds; + this.type = 2556980723; } } - IFC2X32.IfcGloballyUniqueId = IfcGloballyUniqueId; - class IfcHeatFluxDensityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcFace = IfcFace; + class IfcFaceBound extends IfcTopologicalRepresentationItem { + constructor(Bound, Orientation) { + super(); + this.Bound = Bound; + this.Orientation = Orientation; + this.type = 1809719519; } } - IFC2X32.IfcHeatFluxDensityMeasure = IfcHeatFluxDensityMeasure; - class IfcHeatingValueMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcFaceBound = IfcFaceBound; + class IfcFaceOuterBound extends IfcFaceBound { + constructor(Bound, Orientation) { + super(Bound, Orientation); + this.Bound = Bound; + this.Orientation = Orientation; + this.type = 803316827; } } - IFC2X32.IfcHeatingValueMeasure = IfcHeatingValueMeasure; - class IfcHourInDay { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcFaceOuterBound = IfcFaceOuterBound; + class IfcFaceSurface extends IfcFace { + constructor(Bounds, FaceSurface, SameSense) { + super(Bounds); + this.Bounds = Bounds; + this.FaceSurface = FaceSurface; + this.SameSense = SameSense; + this.type = 3008276851; } } - IFC2X32.IfcHourInDay = IfcHourInDay; - class IfcIdentifier { - constructor(value) { - this.value = value; - this.type = 1; + IFC2X32.IfcFaceSurface = IfcFaceSurface; + class IfcFailureConnectionCondition extends IfcStructuralConnectionCondition { + constructor(Name, TensionFailureX, TensionFailureY, TensionFailureZ, CompressionFailureX, CompressionFailureY, CompressionFailureZ) { + super(Name); + this.Name = Name; + this.TensionFailureX = TensionFailureX; + this.TensionFailureY = TensionFailureY; + this.TensionFailureZ = TensionFailureZ; + this.CompressionFailureX = CompressionFailureX; + this.CompressionFailureY = CompressionFailureY; + this.CompressionFailureZ = CompressionFailureZ; + this.type = 4219587988; } } - IFC2X32.IfcIdentifier = IfcIdentifier; - class IfcIlluminanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcFailureConnectionCondition = IfcFailureConnectionCondition; + class IfcFillAreaStyle extends IfcPresentationStyle { + constructor(Name, FillStyles) { + super(Name); + this.Name = Name; + this.FillStyles = FillStyles; + this.type = 738692330; } } - IFC2X32.IfcIlluminanceMeasure = IfcIlluminanceMeasure; - class IfcInductanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcFillAreaStyle = IfcFillAreaStyle; + class IfcFuelProperties extends IfcMaterialProperties { + constructor(Material, CombustionTemperature, CarbonContent, LowerHeatingValue, HigherHeatingValue) { + super(Material); + this.Material = Material; + this.CombustionTemperature = CombustionTemperature; + this.CarbonContent = CarbonContent; + this.LowerHeatingValue = LowerHeatingValue; + this.HigherHeatingValue = HigherHeatingValue; + this.type = 3857492461; } } - IFC2X32.IfcInductanceMeasure = IfcInductanceMeasure; - class IfcInteger { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcFuelProperties = IfcFuelProperties; + class IfcGeneralMaterialProperties extends IfcMaterialProperties { + constructor(Material, MolecularWeight, Porosity, MassDensity) { + super(Material); + this.Material = Material; + this.MolecularWeight = MolecularWeight; + this.Porosity = Porosity; + this.MassDensity = MassDensity; + this.type = 803998398; } } - IFC2X32.IfcInteger = IfcInteger; - class IfcIntegerCountRateMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcGeneralMaterialProperties = IfcGeneralMaterialProperties; + class IfcGeneralProfileProperties extends IfcProfileProperties { + constructor(ProfileName, ProfileDefinition, PhysicalWeight, Perimeter, MinimumPlateThickness, MaximumPlateThickness, CrossSectionArea) { + super(ProfileName, ProfileDefinition); + this.ProfileName = ProfileName; + this.ProfileDefinition = ProfileDefinition; + this.PhysicalWeight = PhysicalWeight; + this.Perimeter = Perimeter; + this.MinimumPlateThickness = MinimumPlateThickness; + this.MaximumPlateThickness = MaximumPlateThickness; + this.CrossSectionArea = CrossSectionArea; + this.type = 1446786286; } } - IFC2X32.IfcIntegerCountRateMeasure = IfcIntegerCountRateMeasure; - class IfcIonConcentrationMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcGeneralProfileProperties = IfcGeneralProfileProperties; + class IfcGeometricRepresentationContext extends IfcRepresentationContext { + constructor(ContextIdentifier, ContextType, CoordinateSpaceDimension, Precision, WorldCoordinateSystem, TrueNorth) { + super(ContextIdentifier, ContextType); + this.ContextIdentifier = ContextIdentifier; + this.ContextType = ContextType; + this.CoordinateSpaceDimension = CoordinateSpaceDimension; + this.Precision = Precision; + this.WorldCoordinateSystem = WorldCoordinateSystem; + this.TrueNorth = TrueNorth; + this.type = 3448662350; } } - IFC2X32.IfcIonConcentrationMeasure = IfcIonConcentrationMeasure; - class IfcIsothermalMoistureCapacityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcGeometricRepresentationContext = IfcGeometricRepresentationContext; + class IfcGeometricRepresentationItem extends IfcRepresentationItem { + constructor() { + super(); + this.type = 2453401579; } } - IFC2X32.IfcIsothermalMoistureCapacityMeasure = IfcIsothermalMoistureCapacityMeasure; - class IfcKinematicViscosityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcGeometricRepresentationItem = IfcGeometricRepresentationItem; + class IfcGeometricRepresentationSubContext extends IfcGeometricRepresentationContext { + constructor(ContextIdentifier, ContextType, ParentContext, TargetScale, TargetView, UserDefinedTargetView) { + super(ContextIdentifier, ContextType, new IfcDimensionCount(0), null, new Handle$5(0), null); + this.ContextIdentifier = ContextIdentifier; + this.ContextType = ContextType; + this.ParentContext = ParentContext; + this.TargetScale = TargetScale; + this.TargetView = TargetView; + this.UserDefinedTargetView = UserDefinedTargetView; + this.type = 4142052618; } } - IFC2X32.IfcKinematicViscosityMeasure = IfcKinematicViscosityMeasure; - class IfcLabel { - constructor(value) { - this.value = value; - this.type = 1; + IFC2X32.IfcGeometricRepresentationSubContext = IfcGeometricRepresentationSubContext; + class IfcGeometricSet extends IfcGeometricRepresentationItem { + constructor(Elements) { + super(); + this.Elements = Elements; + this.type = 3590301190; } } - IFC2X32.IfcLabel = IfcLabel; - class IfcLengthMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcGeometricSet = IfcGeometricSet; + class IfcGridPlacement extends IfcObjectPlacement { + constructor(PlacementLocation, PlacementRefDirection) { + super(); + this.PlacementLocation = PlacementLocation; + this.PlacementRefDirection = PlacementRefDirection; + this.type = 178086475; } } - IFC2X32.IfcLengthMeasure = IfcLengthMeasure; - class IfcLinearForceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcGridPlacement = IfcGridPlacement; + class IfcHalfSpaceSolid extends IfcGeometricRepresentationItem { + constructor(BaseSurface, AgreementFlag) { + super(); + this.BaseSurface = BaseSurface; + this.AgreementFlag = AgreementFlag; + this.type = 812098782; } } - IFC2X32.IfcLinearForceMeasure = IfcLinearForceMeasure; - class IfcLinearMomentMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcHalfSpaceSolid = IfcHalfSpaceSolid; + class IfcHygroscopicMaterialProperties extends IfcMaterialProperties { + constructor(Material, UpperVaporResistanceFactor, LowerVaporResistanceFactor, IsothermalMoistureCapacity, VaporPermeability, MoistureDiffusivity) { + super(Material); + this.Material = Material; + this.UpperVaporResistanceFactor = UpperVaporResistanceFactor; + this.LowerVaporResistanceFactor = LowerVaporResistanceFactor; + this.IsothermalMoistureCapacity = IsothermalMoistureCapacity; + this.VaporPermeability = VaporPermeability; + this.MoistureDiffusivity = MoistureDiffusivity; + this.type = 2445078500; } } - IFC2X32.IfcLinearMomentMeasure = IfcLinearMomentMeasure; - class IfcLinearStiffnessMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcHygroscopicMaterialProperties = IfcHygroscopicMaterialProperties; + class IfcImageTexture extends IfcSurfaceTexture { + constructor(RepeatS, RepeatT, TextureType, TextureTransform, UrlReference) { + super(RepeatS, RepeatT, TextureType, TextureTransform); + this.RepeatS = RepeatS; + this.RepeatT = RepeatT; + this.TextureType = TextureType; + this.TextureTransform = TextureTransform; + this.UrlReference = UrlReference; + this.type = 3905492369; } } - IFC2X32.IfcLinearStiffnessMeasure = IfcLinearStiffnessMeasure; - class IfcLinearVelocityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcImageTexture = IfcImageTexture; + class IfcIrregularTimeSeries extends IfcTimeSeries { + constructor(Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit, Values) { + super(Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit); + this.Name = Name; + this.Description = Description; + this.StartTime = StartTime; + this.EndTime = EndTime; + this.TimeSeriesDataType = TimeSeriesDataType; + this.DataOrigin = DataOrigin; + this.UserDefinedDataOrigin = UserDefinedDataOrigin; + this.Unit = Unit; + this.Values = Values; + this.type = 3741457305; } } - IFC2X32.IfcLinearVelocityMeasure = IfcLinearVelocityMeasure; - class IfcLogical { - constructor(v) { - this.type = 3; - this.value = v == "true" ? true : false; + IFC2X32.IfcIrregularTimeSeries = IfcIrregularTimeSeries; + class IfcLightSource extends IfcGeometricRepresentationItem { + constructor(Name, LightColour, AmbientIntensity, Intensity) { + super(); + this.Name = Name; + this.LightColour = LightColour; + this.AmbientIntensity = AmbientIntensity; + this.Intensity = Intensity; + this.type = 1402838566; } } - IFC2X32.IfcLogical = IfcLogical; - class IfcLuminousFluxMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcLightSource = IfcLightSource; + class IfcLightSourceAmbient extends IfcLightSource { + constructor(Name, LightColour, AmbientIntensity, Intensity) { + super(Name, LightColour, AmbientIntensity, Intensity); + this.Name = Name; + this.LightColour = LightColour; + this.AmbientIntensity = AmbientIntensity; + this.Intensity = Intensity; + this.type = 125510826; } } - IFC2X32.IfcLuminousFluxMeasure = IfcLuminousFluxMeasure; - class IfcLuminousIntensityDistributionMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcLightSourceAmbient = IfcLightSourceAmbient; + class IfcLightSourceDirectional extends IfcLightSource { + constructor(Name, LightColour, AmbientIntensity, Intensity, Orientation) { + super(Name, LightColour, AmbientIntensity, Intensity); + this.Name = Name; + this.LightColour = LightColour; + this.AmbientIntensity = AmbientIntensity; + this.Intensity = Intensity; + this.Orientation = Orientation; + this.type = 2604431987; } } - IFC2X32.IfcLuminousIntensityDistributionMeasure = IfcLuminousIntensityDistributionMeasure; - class IfcLuminousIntensityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcLightSourceDirectional = IfcLightSourceDirectional; + class IfcLightSourceGoniometric extends IfcLightSource { + constructor(Name, LightColour, AmbientIntensity, Intensity, Position, ColourAppearance, ColourTemperature, LuminousFlux, LightEmissionSource, LightDistributionDataSource) { + super(Name, LightColour, AmbientIntensity, Intensity); + this.Name = Name; + this.LightColour = LightColour; + this.AmbientIntensity = AmbientIntensity; + this.Intensity = Intensity; + this.Position = Position; + this.ColourAppearance = ColourAppearance; + this.ColourTemperature = ColourTemperature; + this.LuminousFlux = LuminousFlux; + this.LightEmissionSource = LightEmissionSource; + this.LightDistributionDataSource = LightDistributionDataSource; + this.type = 4266656042; } } - IFC2X32.IfcLuminousIntensityMeasure = IfcLuminousIntensityMeasure; - class IfcMagneticFluxDensityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcLightSourceGoniometric = IfcLightSourceGoniometric; + class IfcLightSourcePositional extends IfcLightSource { + constructor(Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation) { + super(Name, LightColour, AmbientIntensity, Intensity); + this.Name = Name; + this.LightColour = LightColour; + this.AmbientIntensity = AmbientIntensity; + this.Intensity = Intensity; + this.Position = Position; + this.Radius = Radius; + this.ConstantAttenuation = ConstantAttenuation; + this.DistanceAttenuation = DistanceAttenuation; + this.QuadricAttenuation = QuadricAttenuation; + this.type = 1520743889; } } - IFC2X32.IfcMagneticFluxDensityMeasure = IfcMagneticFluxDensityMeasure; - class IfcMagneticFluxMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcLightSourcePositional = IfcLightSourcePositional; + class IfcLightSourceSpot extends IfcLightSourcePositional { + constructor(Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation, Orientation, ConcentrationExponent, SpreadAngle, BeamWidthAngle) { + super(Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation); + this.Name = Name; + this.LightColour = LightColour; + this.AmbientIntensity = AmbientIntensity; + this.Intensity = Intensity; + this.Position = Position; + this.Radius = Radius; + this.ConstantAttenuation = ConstantAttenuation; + this.DistanceAttenuation = DistanceAttenuation; + this.QuadricAttenuation = QuadricAttenuation; + this.Orientation = Orientation; + this.ConcentrationExponent = ConcentrationExponent; + this.SpreadAngle = SpreadAngle; + this.BeamWidthAngle = BeamWidthAngle; + this.type = 3422422726; } } - IFC2X32.IfcMagneticFluxMeasure = IfcMagneticFluxMeasure; - class IfcMassDensityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcLightSourceSpot = IfcLightSourceSpot; + class IfcLocalPlacement extends IfcObjectPlacement { + constructor(PlacementRelTo, RelativePlacement) { + super(); + this.PlacementRelTo = PlacementRelTo; + this.RelativePlacement = RelativePlacement; + this.type = 2624227202; } } - IFC2X32.IfcMassDensityMeasure = IfcMassDensityMeasure; - class IfcMassFlowRateMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcLocalPlacement = IfcLocalPlacement; + class IfcLoop extends IfcTopologicalRepresentationItem { + constructor() { + super(); + this.type = 1008929658; } } - IFC2X32.IfcMassFlowRateMeasure = IfcMassFlowRateMeasure; - class IfcMassMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcLoop = IfcLoop; + class IfcMappedItem extends IfcRepresentationItem { + constructor(MappingSource, MappingTarget) { + super(); + this.MappingSource = MappingSource; + this.MappingTarget = MappingTarget; + this.type = 2347385850; } } - IFC2X32.IfcMassMeasure = IfcMassMeasure; - class IfcMassPerLengthMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcMappedItem = IfcMappedItem; + class IfcMaterialDefinitionRepresentation extends IfcProductRepresentation { + constructor(Name, Description, Representations, RepresentedMaterial) { + super(Name, Description, Representations); + this.Name = Name; + this.Description = Description; + this.Representations = Representations; + this.RepresentedMaterial = RepresentedMaterial; + this.type = 2022407955; } } - IFC2X32.IfcMassPerLengthMeasure = IfcMassPerLengthMeasure; - class IfcMinuteInHour { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcMaterialDefinitionRepresentation = IfcMaterialDefinitionRepresentation; + class IfcMechanicalConcreteMaterialProperties extends IfcMechanicalMaterialProperties { + constructor(Material, DynamicViscosity, YoungModulus, ShearModulus, PoissonRatio, ThermalExpansionCoefficient, CompressiveStrength, MaxAggregateSize, AdmixturesDescription, Workability, ProtectivePoreRatio, WaterImpermeability) { + super(Material, DynamicViscosity, YoungModulus, ShearModulus, PoissonRatio, ThermalExpansionCoefficient); + this.Material = Material; + this.DynamicViscosity = DynamicViscosity; + this.YoungModulus = YoungModulus; + this.ShearModulus = ShearModulus; + this.PoissonRatio = PoissonRatio; + this.ThermalExpansionCoefficient = ThermalExpansionCoefficient; + this.CompressiveStrength = CompressiveStrength; + this.MaxAggregateSize = MaxAggregateSize; + this.AdmixturesDescription = AdmixturesDescription; + this.Workability = Workability; + this.ProtectivePoreRatio = ProtectivePoreRatio; + this.WaterImpermeability = WaterImpermeability; + this.type = 1430189142; } } - IFC2X32.IfcMinuteInHour = IfcMinuteInHour; - class IfcModulusOfElasticityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcMechanicalConcreteMaterialProperties = IfcMechanicalConcreteMaterialProperties; + class IfcObjectDefinition extends IfcRoot { + constructor(GlobalId, OwnerHistory, Name, Description) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.type = 219451334; } } - IFC2X32.IfcModulusOfElasticityMeasure = IfcModulusOfElasticityMeasure; - class IfcModulusOfLinearSubgradeReactionMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcObjectDefinition = IfcObjectDefinition; + class IfcOneDirectionRepeatFactor extends IfcGeometricRepresentationItem { + constructor(RepeatFactor) { + super(); + this.RepeatFactor = RepeatFactor; + this.type = 2833995503; } } - IFC2X32.IfcModulusOfLinearSubgradeReactionMeasure = IfcModulusOfLinearSubgradeReactionMeasure; - class IfcModulusOfRotationalSubgradeReactionMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcOneDirectionRepeatFactor = IfcOneDirectionRepeatFactor; + class IfcOpenShell extends IfcConnectedFaceSet { + constructor(CfsFaces) { + super(CfsFaces); + this.CfsFaces = CfsFaces; + this.type = 2665983363; } } - IFC2X32.IfcModulusOfRotationalSubgradeReactionMeasure = IfcModulusOfRotationalSubgradeReactionMeasure; - class IfcModulusOfSubgradeReactionMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcOpenShell = IfcOpenShell; + class IfcOrientedEdge extends IfcEdge { + constructor(EdgeElement, Orientation) { + super(new Handle$5(0), new Handle$5(0)); + this.EdgeElement = EdgeElement; + this.Orientation = Orientation; + this.type = 1029017970; } } - IFC2X32.IfcModulusOfSubgradeReactionMeasure = IfcModulusOfSubgradeReactionMeasure; - class IfcMoistureDiffusivityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcOrientedEdge = IfcOrientedEdge; + class IfcParameterizedProfileDef extends IfcProfileDef { + constructor(ProfileType, ProfileName, Position) { + super(ProfileType, ProfileName); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.type = 2529465313; } } - IFC2X32.IfcMoistureDiffusivityMeasure = IfcMoistureDiffusivityMeasure; - class IfcMolecularWeightMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcParameterizedProfileDef = IfcParameterizedProfileDef; + class IfcPath extends IfcTopologicalRepresentationItem { + constructor(EdgeList) { + super(); + this.EdgeList = EdgeList; + this.type = 2519244187; } } - IFC2X32.IfcMolecularWeightMeasure = IfcMolecularWeightMeasure; - class IfcMomentOfInertiaMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcPath = IfcPath; + class IfcPhysicalComplexQuantity extends IfcPhysicalQuantity { + constructor(Name, Description, HasQuantities, Discrimination, Quality, Usage) { + super(Name, Description); + this.Name = Name; + this.Description = Description; + this.HasQuantities = HasQuantities; + this.Discrimination = Discrimination; + this.Quality = Quality; + this.Usage = Usage; + this.type = 3021840470; } } - IFC2X32.IfcMomentOfInertiaMeasure = IfcMomentOfInertiaMeasure; - class IfcMonetaryMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcPhysicalComplexQuantity = IfcPhysicalComplexQuantity; + class IfcPixelTexture extends IfcSurfaceTexture { + constructor(RepeatS, RepeatT, TextureType, TextureTransform, Width, Height, ColourComponents, Pixel) { + super(RepeatS, RepeatT, TextureType, TextureTransform); + this.RepeatS = RepeatS; + this.RepeatT = RepeatT; + this.TextureType = TextureType; + this.TextureTransform = TextureTransform; + this.Width = Width; + this.Height = Height; + this.ColourComponents = ColourComponents; + this.Pixel = Pixel; + this.type = 597895409; } } - IFC2X32.IfcMonetaryMeasure = IfcMonetaryMeasure; - class IfcMonthInYearNumber { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcPixelTexture = IfcPixelTexture; + class IfcPlacement extends IfcGeometricRepresentationItem { + constructor(Location) { + super(); + this.Location = Location; + this.type = 2004835150; } } - IFC2X32.IfcMonthInYearNumber = IfcMonthInYearNumber; - class IfcNormalisedRatioMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcPlacement = IfcPlacement; + class IfcPlanarExtent extends IfcGeometricRepresentationItem { + constructor(SizeInX, SizeInY) { + super(); + this.SizeInX = SizeInX; + this.SizeInY = SizeInY; + this.type = 1663979128; } } - IFC2X32.IfcNormalisedRatioMeasure = IfcNormalisedRatioMeasure; - class IfcNumericMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcPlanarExtent = IfcPlanarExtent; + class IfcPoint extends IfcGeometricRepresentationItem { + constructor() { + super(); + this.type = 2067069095; } } - IFC2X32.IfcNumericMeasure = IfcNumericMeasure; - class IfcPHMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcPoint = IfcPoint; + class IfcPointOnCurve extends IfcPoint { + constructor(BasisCurve, PointParameter) { + super(); + this.BasisCurve = BasisCurve; + this.PointParameter = PointParameter; + this.type = 4022376103; } } - IFC2X32.IfcPHMeasure = IfcPHMeasure; - class IfcParameterValue { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcPointOnCurve = IfcPointOnCurve; + class IfcPointOnSurface extends IfcPoint { + constructor(BasisSurface, PointParameterU, PointParameterV) { + super(); + this.BasisSurface = BasisSurface; + this.PointParameterU = PointParameterU; + this.PointParameterV = PointParameterV; + this.type = 1423911732; } } - IFC2X32.IfcParameterValue = IfcParameterValue; - class IfcPlanarForceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcPointOnSurface = IfcPointOnSurface; + class IfcPolyLoop extends IfcLoop { + constructor(Polygon) { + super(); + this.Polygon = Polygon; + this.type = 2924175390; } } - IFC2X32.IfcPlanarForceMeasure = IfcPlanarForceMeasure; - class IfcPlaneAngleMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcPolyLoop = IfcPolyLoop; + class IfcPolygonalBoundedHalfSpace extends IfcHalfSpaceSolid { + constructor(BaseSurface, AgreementFlag, Position, PolygonalBoundary) { + super(BaseSurface, AgreementFlag); + this.BaseSurface = BaseSurface; + this.AgreementFlag = AgreementFlag; + this.Position = Position; + this.PolygonalBoundary = PolygonalBoundary; + this.type = 2775532180; } } - IFC2X32.IfcPlaneAngleMeasure = IfcPlaneAngleMeasure; - class IfcPositiveLengthMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcPolygonalBoundedHalfSpace = IfcPolygonalBoundedHalfSpace; + class IfcPreDefinedColour extends IfcPreDefinedItem { + constructor(Name) { + super(Name); + this.Name = Name; + this.type = 759155922; } } - IFC2X32.IfcPositiveLengthMeasure = IfcPositiveLengthMeasure; - class IfcPositivePlaneAngleMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcPreDefinedColour = IfcPreDefinedColour; + class IfcPreDefinedCurveFont extends IfcPreDefinedItem { + constructor(Name) { + super(Name); + this.Name = Name; + this.type = 2559016684; } } - IFC2X32.IfcPositivePlaneAngleMeasure = IfcPositivePlaneAngleMeasure; - class IfcPositiveRatioMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcPreDefinedCurveFont = IfcPreDefinedCurveFont; + class IfcPreDefinedDimensionSymbol extends IfcPreDefinedSymbol { + constructor(Name) { + super(Name); + this.Name = Name; + this.type = 433424934; } } - IFC2X32.IfcPositiveRatioMeasure = IfcPositiveRatioMeasure; - class IfcPowerMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcPreDefinedDimensionSymbol = IfcPreDefinedDimensionSymbol; + class IfcPreDefinedPointMarkerSymbol extends IfcPreDefinedSymbol { + constructor(Name) { + super(Name); + this.Name = Name; + this.type = 179317114; } } - IFC2X32.IfcPowerMeasure = IfcPowerMeasure; - class IfcPresentableText { - constructor(value) { - this.value = value; - this.type = 1; + IFC2X32.IfcPreDefinedPointMarkerSymbol = IfcPreDefinedPointMarkerSymbol; + class IfcProductDefinitionShape extends IfcProductRepresentation { + constructor(Name, Description, Representations) { + super(Name, Description, Representations); + this.Name = Name; + this.Description = Description; + this.Representations = Representations; + this.type = 673634403; } } - IFC2X32.IfcPresentableText = IfcPresentableText; - class IfcPressureMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcProductDefinitionShape = IfcProductDefinitionShape; + class IfcPropertyBoundedValue extends IfcSimpleProperty { + constructor(Name, Description, UpperBoundValue, LowerBoundValue, Unit) { + super(Name, Description); + this.Name = Name; + this.Description = Description; + this.UpperBoundValue = UpperBoundValue; + this.LowerBoundValue = LowerBoundValue; + this.Unit = Unit; + this.type = 871118103; } } - IFC2X32.IfcPressureMeasure = IfcPressureMeasure; - class IfcRadioActivityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcPropertyBoundedValue = IfcPropertyBoundedValue; + class IfcPropertyDefinition extends IfcRoot { + constructor(GlobalId, OwnerHistory, Name, Description) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.type = 1680319473; } } - IFC2X32.IfcRadioActivityMeasure = IfcRadioActivityMeasure; - class IfcRatioMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcPropertyDefinition = IfcPropertyDefinition; + class IfcPropertyEnumeratedValue extends IfcSimpleProperty { + constructor(Name, Description, EnumerationValues, EnumerationReference) { + super(Name, Description); + this.Name = Name; + this.Description = Description; + this.EnumerationValues = EnumerationValues; + this.EnumerationReference = EnumerationReference; + this.type = 4166981789; } } - IFC2X32.IfcRatioMeasure = IfcRatioMeasure; - class IfcReal { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcPropertyEnumeratedValue = IfcPropertyEnumeratedValue; + class IfcPropertyListValue extends IfcSimpleProperty { + constructor(Name, Description, ListValues, Unit) { + super(Name, Description); + this.Name = Name; + this.Description = Description; + this.ListValues = ListValues; + this.Unit = Unit; + this.type = 2752243245; } } - IFC2X32.IfcReal = IfcReal; - class IfcRotationalFrequencyMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcPropertyListValue = IfcPropertyListValue; + class IfcPropertyReferenceValue extends IfcSimpleProperty { + constructor(Name, Description, UsageName, PropertyReference) { + super(Name, Description); + this.Name = Name; + this.Description = Description; + this.UsageName = UsageName; + this.PropertyReference = PropertyReference; + this.type = 941946838; } } - IFC2X32.IfcRotationalFrequencyMeasure = IfcRotationalFrequencyMeasure; - class IfcRotationalMassMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcPropertyReferenceValue = IfcPropertyReferenceValue; + class IfcPropertySetDefinition extends IfcPropertyDefinition { + constructor(GlobalId, OwnerHistory, Name, Description) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.type = 3357820518; } } - IFC2X32.IfcRotationalMassMeasure = IfcRotationalMassMeasure; - class IfcRotationalStiffnessMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcPropertySetDefinition = IfcPropertySetDefinition; + class IfcPropertySingleValue extends IfcSimpleProperty { + constructor(Name, Description, NominalValue, Unit) { + super(Name, Description); + this.Name = Name; + this.Description = Description; + this.NominalValue = NominalValue; + this.Unit = Unit; + this.type = 3650150729; } } - IFC2X32.IfcRotationalStiffnessMeasure = IfcRotationalStiffnessMeasure; - class IfcSecondInMinute { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcPropertySingleValue = IfcPropertySingleValue; + class IfcPropertyTableValue extends IfcSimpleProperty { + constructor(Name, Description, DefiningValues, DefinedValues, Expression, DefiningUnit, DefinedUnit) { + super(Name, Description); + this.Name = Name; + this.Description = Description; + this.DefiningValues = DefiningValues; + this.DefinedValues = DefinedValues; + this.Expression = Expression; + this.DefiningUnit = DefiningUnit; + this.DefinedUnit = DefinedUnit; + this.type = 110355661; } } - IFC2X32.IfcSecondInMinute = IfcSecondInMinute; - class IfcSectionModulusMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcPropertyTableValue = IfcPropertyTableValue; + class IfcRectangleProfileDef extends IfcParameterizedProfileDef { + constructor(ProfileType, ProfileName, Position, XDim, YDim) { + super(ProfileType, ProfileName, Position); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.XDim = XDim; + this.YDim = YDim; + this.type = 3615266464; } } - IFC2X32.IfcSectionModulusMeasure = IfcSectionModulusMeasure; - class IfcSectionalAreaIntegralMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcRectangleProfileDef = IfcRectangleProfileDef; + class IfcRegularTimeSeries extends IfcTimeSeries { + constructor(Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit, TimeStep, Values) { + super(Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit); + this.Name = Name; + this.Description = Description; + this.StartTime = StartTime; + this.EndTime = EndTime; + this.TimeSeriesDataType = TimeSeriesDataType; + this.DataOrigin = DataOrigin; + this.UserDefinedDataOrigin = UserDefinedDataOrigin; + this.Unit = Unit; + this.TimeStep = TimeStep; + this.Values = Values; + this.type = 3413951693; } } - IFC2X32.IfcSectionalAreaIntegralMeasure = IfcSectionalAreaIntegralMeasure; - class IfcShearModulusMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcRegularTimeSeries = IfcRegularTimeSeries; + class IfcReinforcementDefinitionProperties extends IfcPropertySetDefinition { + constructor(GlobalId, OwnerHistory, Name, Description, DefinitionType, ReinforcementSectionDefinitions) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.DefinitionType = DefinitionType; + this.ReinforcementSectionDefinitions = ReinforcementSectionDefinitions; + this.type = 3765753017; } } - IFC2X32.IfcShearModulusMeasure = IfcShearModulusMeasure; - class IfcSolidAngleMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcReinforcementDefinitionProperties = IfcReinforcementDefinitionProperties; + class IfcRelationship extends IfcRoot { + constructor(GlobalId, OwnerHistory, Name, Description) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.type = 478536968; } } - IFC2X32.IfcSolidAngleMeasure = IfcSolidAngleMeasure; - class IfcSoundPowerMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcRelationship = IfcRelationship; + class IfcRoundedRectangleProfileDef extends IfcRectangleProfileDef { + constructor(ProfileType, ProfileName, Position, XDim, YDim, RoundingRadius) { + super(ProfileType, ProfileName, Position, XDim, YDim); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.XDim = XDim; + this.YDim = YDim; + this.RoundingRadius = RoundingRadius; + this.type = 2778083089; } } - IFC2X32.IfcSoundPowerMeasure = IfcSoundPowerMeasure; - class IfcSoundPressureMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcRoundedRectangleProfileDef = IfcRoundedRectangleProfileDef; + class IfcSectionedSpine extends IfcGeometricRepresentationItem { + constructor(SpineCurve, CrossSections, CrossSectionPositions) { + super(); + this.SpineCurve = SpineCurve; + this.CrossSections = CrossSections; + this.CrossSectionPositions = CrossSectionPositions; + this.type = 1509187699; } } - IFC2X32.IfcSoundPressureMeasure = IfcSoundPressureMeasure; - class IfcSpecificHeatCapacityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcSectionedSpine = IfcSectionedSpine; + class IfcServiceLifeFactor extends IfcPropertySetDefinition { + constructor(GlobalId, OwnerHistory, Name, Description, PredefinedType, UpperValue, MostUsedValue, LowerValue) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.PredefinedType = PredefinedType; + this.UpperValue = UpperValue; + this.MostUsedValue = MostUsedValue; + this.LowerValue = LowerValue; + this.type = 2411513650; } } - IFC2X32.IfcSpecificHeatCapacityMeasure = IfcSpecificHeatCapacityMeasure; - class IfcSpecularExponent { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcServiceLifeFactor = IfcServiceLifeFactor; + class IfcShellBasedSurfaceModel extends IfcGeometricRepresentationItem { + constructor(SbsmBoundary) { + super(); + this.SbsmBoundary = SbsmBoundary; + this.type = 4124623270; } } - IFC2X32.IfcSpecularExponent = IfcSpecularExponent; - class IfcSpecularRoughness { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcShellBasedSurfaceModel = IfcShellBasedSurfaceModel; + class IfcSlippageConnectionCondition extends IfcStructuralConnectionCondition { + constructor(Name, SlippageX, SlippageY, SlippageZ) { + super(Name); + this.Name = Name; + this.SlippageX = SlippageX; + this.SlippageY = SlippageY; + this.SlippageZ = SlippageZ; + this.type = 2609359061; } } - IFC2X32.IfcSpecularRoughness = IfcSpecularRoughness; - class IfcTemperatureGradientMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcSlippageConnectionCondition = IfcSlippageConnectionCondition; + class IfcSolidModel extends IfcGeometricRepresentationItem { + constructor() { + super(); + this.type = 723233188; } } - IFC2X32.IfcTemperatureGradientMeasure = IfcTemperatureGradientMeasure; - class IfcText { - constructor(value) { - this.value = value; - this.type = 1; + IFC2X32.IfcSolidModel = IfcSolidModel; + class IfcSoundProperties extends IfcPropertySetDefinition { + constructor(GlobalId, OwnerHistory, Name, Description, IsAttenuating, SoundScale, SoundValues) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.IsAttenuating = IsAttenuating; + this.SoundScale = SoundScale; + this.SoundValues = SoundValues; + this.type = 2485662743; } } - IFC2X32.IfcText = IfcText; - class IfcTextAlignment { - constructor(value) { - this.value = value; - this.type = 1; + IFC2X32.IfcSoundProperties = IfcSoundProperties; + class IfcSoundValue extends IfcPropertySetDefinition { + constructor(GlobalId, OwnerHistory, Name, Description, SoundLevelTimeSeries, Frequency, SoundLevelSingleValue) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.SoundLevelTimeSeries = SoundLevelTimeSeries; + this.Frequency = Frequency; + this.SoundLevelSingleValue = SoundLevelSingleValue; + this.type = 1202362311; } } - IFC2X32.IfcTextAlignment = IfcTextAlignment; - class IfcTextDecoration { - constructor(value) { - this.value = value; - this.type = 1; + IFC2X32.IfcSoundValue = IfcSoundValue; + class IfcSpaceThermalLoadProperties extends IfcPropertySetDefinition { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableValueRatio, ThermalLoadSource, PropertySource, SourceDescription, MaximumValue, MinimumValue, ThermalLoadTimeSeriesValues, UserDefinedThermalLoadSource, UserDefinedPropertySource, ThermalLoadType) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableValueRatio = ApplicableValueRatio; + this.ThermalLoadSource = ThermalLoadSource; + this.PropertySource = PropertySource; + this.SourceDescription = SourceDescription; + this.MaximumValue = MaximumValue; + this.MinimumValue = MinimumValue; + this.ThermalLoadTimeSeriesValues = ThermalLoadTimeSeriesValues; + this.UserDefinedThermalLoadSource = UserDefinedThermalLoadSource; + this.UserDefinedPropertySource = UserDefinedPropertySource; + this.ThermalLoadType = ThermalLoadType; + this.type = 390701378; } } - IFC2X32.IfcTextDecoration = IfcTextDecoration; - class IfcTextFontName { - constructor(value) { - this.value = value; - this.type = 1; + IFC2X32.IfcSpaceThermalLoadProperties = IfcSpaceThermalLoadProperties; + class IfcStructuralLoadLinearForce extends IfcStructuralLoadStatic { + constructor(Name, LinearForceX, LinearForceY, LinearForceZ, LinearMomentX, LinearMomentY, LinearMomentZ) { + super(Name); + this.Name = Name; + this.LinearForceX = LinearForceX; + this.LinearForceY = LinearForceY; + this.LinearForceZ = LinearForceZ; + this.LinearMomentX = LinearMomentX; + this.LinearMomentY = LinearMomentY; + this.LinearMomentZ = LinearMomentZ; + this.type = 1595516126; } } - IFC2X32.IfcTextFontName = IfcTextFontName; - class IfcTextTransformation { - constructor(value) { - this.value = value; - this.type = 1; + IFC2X32.IfcStructuralLoadLinearForce = IfcStructuralLoadLinearForce; + class IfcStructuralLoadPlanarForce extends IfcStructuralLoadStatic { + constructor(Name, PlanarForceX, PlanarForceY, PlanarForceZ) { + super(Name); + this.Name = Name; + this.PlanarForceX = PlanarForceX; + this.PlanarForceY = PlanarForceY; + this.PlanarForceZ = PlanarForceZ; + this.type = 2668620305; + } + } + IFC2X32.IfcStructuralLoadPlanarForce = IfcStructuralLoadPlanarForce; + class IfcStructuralLoadSingleDisplacement extends IfcStructuralLoadStatic { + constructor(Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ) { + super(Name); + this.Name = Name; + this.DisplacementX = DisplacementX; + this.DisplacementY = DisplacementY; + this.DisplacementZ = DisplacementZ; + this.RotationalDisplacementRX = RotationalDisplacementRX; + this.RotationalDisplacementRY = RotationalDisplacementRY; + this.RotationalDisplacementRZ = RotationalDisplacementRZ; + this.type = 2473145415; } } - IFC2X32.IfcTextTransformation = IfcTextTransformation; - class IfcThermalAdmittanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcStructuralLoadSingleDisplacement = IfcStructuralLoadSingleDisplacement; + class IfcStructuralLoadSingleDisplacementDistortion extends IfcStructuralLoadSingleDisplacement { + constructor(Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ, Distortion) { + super(Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ); + this.Name = Name; + this.DisplacementX = DisplacementX; + this.DisplacementY = DisplacementY; + this.DisplacementZ = DisplacementZ; + this.RotationalDisplacementRX = RotationalDisplacementRX; + this.RotationalDisplacementRY = RotationalDisplacementRY; + this.RotationalDisplacementRZ = RotationalDisplacementRZ; + this.Distortion = Distortion; + this.type = 1973038258; } } - IFC2X32.IfcThermalAdmittanceMeasure = IfcThermalAdmittanceMeasure; - class IfcThermalConductivityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcStructuralLoadSingleDisplacementDistortion = IfcStructuralLoadSingleDisplacementDistortion; + class IfcStructuralLoadSingleForce extends IfcStructuralLoadStatic { + constructor(Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ) { + super(Name); + this.Name = Name; + this.ForceX = ForceX; + this.ForceY = ForceY; + this.ForceZ = ForceZ; + this.MomentX = MomentX; + this.MomentY = MomentY; + this.MomentZ = MomentZ; + this.type = 1597423693; } } - IFC2X32.IfcThermalConductivityMeasure = IfcThermalConductivityMeasure; - class IfcThermalExpansionCoefficientMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcStructuralLoadSingleForce = IfcStructuralLoadSingleForce; + class IfcStructuralLoadSingleForceWarping extends IfcStructuralLoadSingleForce { + constructor(Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ, WarpingMoment) { + super(Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ); + this.Name = Name; + this.ForceX = ForceX; + this.ForceY = ForceY; + this.ForceZ = ForceZ; + this.MomentX = MomentX; + this.MomentY = MomentY; + this.MomentZ = MomentZ; + this.WarpingMoment = WarpingMoment; + this.type = 1190533807; } } - IFC2X32.IfcThermalExpansionCoefficientMeasure = IfcThermalExpansionCoefficientMeasure; - class IfcThermalResistanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcStructuralLoadSingleForceWarping = IfcStructuralLoadSingleForceWarping; + class IfcStructuralProfileProperties extends IfcGeneralProfileProperties { + constructor(ProfileName, ProfileDefinition, PhysicalWeight, Perimeter, MinimumPlateThickness, MaximumPlateThickness, CrossSectionArea, TorsionalConstantX, MomentOfInertiaYZ, MomentOfInertiaY, MomentOfInertiaZ, WarpingConstant, ShearCentreZ, ShearCentreY, ShearDeformationAreaZ, ShearDeformationAreaY, MaximumSectionModulusY, MinimumSectionModulusY, MaximumSectionModulusZ, MinimumSectionModulusZ, TorsionalSectionModulus, CentreOfGravityInX, CentreOfGravityInY) { + super(ProfileName, ProfileDefinition, PhysicalWeight, Perimeter, MinimumPlateThickness, MaximumPlateThickness, CrossSectionArea); + this.ProfileName = ProfileName; + this.ProfileDefinition = ProfileDefinition; + this.PhysicalWeight = PhysicalWeight; + this.Perimeter = Perimeter; + this.MinimumPlateThickness = MinimumPlateThickness; + this.MaximumPlateThickness = MaximumPlateThickness; + this.CrossSectionArea = CrossSectionArea; + this.TorsionalConstantX = TorsionalConstantX; + this.MomentOfInertiaYZ = MomentOfInertiaYZ; + this.MomentOfInertiaY = MomentOfInertiaY; + this.MomentOfInertiaZ = MomentOfInertiaZ; + this.WarpingConstant = WarpingConstant; + this.ShearCentreZ = ShearCentreZ; + this.ShearCentreY = ShearCentreY; + this.ShearDeformationAreaZ = ShearDeformationAreaZ; + this.ShearDeformationAreaY = ShearDeformationAreaY; + this.MaximumSectionModulusY = MaximumSectionModulusY; + this.MinimumSectionModulusY = MinimumSectionModulusY; + this.MaximumSectionModulusZ = MaximumSectionModulusZ; + this.MinimumSectionModulusZ = MinimumSectionModulusZ; + this.TorsionalSectionModulus = TorsionalSectionModulus; + this.CentreOfGravityInX = CentreOfGravityInX; + this.CentreOfGravityInY = CentreOfGravityInY; + this.type = 3843319758; } } - IFC2X32.IfcThermalResistanceMeasure = IfcThermalResistanceMeasure; - class IfcThermalTransmittanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcStructuralProfileProperties = IfcStructuralProfileProperties; + class IfcStructuralSteelProfileProperties extends IfcStructuralProfileProperties { + constructor(ProfileName, ProfileDefinition, PhysicalWeight, Perimeter, MinimumPlateThickness, MaximumPlateThickness, CrossSectionArea, TorsionalConstantX, MomentOfInertiaYZ, MomentOfInertiaY, MomentOfInertiaZ, WarpingConstant, ShearCentreZ, ShearCentreY, ShearDeformationAreaZ, ShearDeformationAreaY, MaximumSectionModulusY, MinimumSectionModulusY, MaximumSectionModulusZ, MinimumSectionModulusZ, TorsionalSectionModulus, CentreOfGravityInX, CentreOfGravityInY, ShearAreaZ, ShearAreaY, PlasticShapeFactorY, PlasticShapeFactorZ) { + super(ProfileName, ProfileDefinition, PhysicalWeight, Perimeter, MinimumPlateThickness, MaximumPlateThickness, CrossSectionArea, TorsionalConstantX, MomentOfInertiaYZ, MomentOfInertiaY, MomentOfInertiaZ, WarpingConstant, ShearCentreZ, ShearCentreY, ShearDeformationAreaZ, ShearDeformationAreaY, MaximumSectionModulusY, MinimumSectionModulusY, MaximumSectionModulusZ, MinimumSectionModulusZ, TorsionalSectionModulus, CentreOfGravityInX, CentreOfGravityInY); + this.ProfileName = ProfileName; + this.ProfileDefinition = ProfileDefinition; + this.PhysicalWeight = PhysicalWeight; + this.Perimeter = Perimeter; + this.MinimumPlateThickness = MinimumPlateThickness; + this.MaximumPlateThickness = MaximumPlateThickness; + this.CrossSectionArea = CrossSectionArea; + this.TorsionalConstantX = TorsionalConstantX; + this.MomentOfInertiaYZ = MomentOfInertiaYZ; + this.MomentOfInertiaY = MomentOfInertiaY; + this.MomentOfInertiaZ = MomentOfInertiaZ; + this.WarpingConstant = WarpingConstant; + this.ShearCentreZ = ShearCentreZ; + this.ShearCentreY = ShearCentreY; + this.ShearDeformationAreaZ = ShearDeformationAreaZ; + this.ShearDeformationAreaY = ShearDeformationAreaY; + this.MaximumSectionModulusY = MaximumSectionModulusY; + this.MinimumSectionModulusY = MinimumSectionModulusY; + this.MaximumSectionModulusZ = MaximumSectionModulusZ; + this.MinimumSectionModulusZ = MinimumSectionModulusZ; + this.TorsionalSectionModulus = TorsionalSectionModulus; + this.CentreOfGravityInX = CentreOfGravityInX; + this.CentreOfGravityInY = CentreOfGravityInY; + this.ShearAreaZ = ShearAreaZ; + this.ShearAreaY = ShearAreaY; + this.PlasticShapeFactorY = PlasticShapeFactorY; + this.PlasticShapeFactorZ = PlasticShapeFactorZ; + this.type = 3653947884; } } - IFC2X32.IfcThermalTransmittanceMeasure = IfcThermalTransmittanceMeasure; - class IfcThermodynamicTemperatureMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcStructuralSteelProfileProperties = IfcStructuralSteelProfileProperties; + class IfcSubedge extends IfcEdge { + constructor(EdgeStart, EdgeEnd, ParentEdge) { + super(EdgeStart, EdgeEnd); + this.EdgeStart = EdgeStart; + this.EdgeEnd = EdgeEnd; + this.ParentEdge = ParentEdge; + this.type = 2233826070; } } - IFC2X32.IfcThermodynamicTemperatureMeasure = IfcThermodynamicTemperatureMeasure; - class IfcTimeMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcSubedge = IfcSubedge; + class IfcSurface extends IfcGeometricRepresentationItem { + constructor() { + super(); + this.type = 2513912981; } } - IFC2X32.IfcTimeMeasure = IfcTimeMeasure; - class IfcTimeStamp { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcSurface = IfcSurface; + class IfcSurfaceStyleRendering extends IfcSurfaceStyleShading { + constructor(SurfaceColour, Transparency, DiffuseColour, TransmissionColour, DiffuseTransmissionColour, ReflectionColour, SpecularColour, SpecularHighlight, ReflectanceMethod) { + super(SurfaceColour); + this.SurfaceColour = SurfaceColour; + this.Transparency = Transparency; + this.DiffuseColour = DiffuseColour; + this.TransmissionColour = TransmissionColour; + this.DiffuseTransmissionColour = DiffuseTransmissionColour; + this.ReflectionColour = ReflectionColour; + this.SpecularColour = SpecularColour; + this.SpecularHighlight = SpecularHighlight; + this.ReflectanceMethod = ReflectanceMethod; + this.type = 1878645084; } } - IFC2X32.IfcTimeStamp = IfcTimeStamp; - class IfcTorqueMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcSurfaceStyleRendering = IfcSurfaceStyleRendering; + class IfcSweptAreaSolid extends IfcSolidModel { + constructor(SweptArea, Position) { + super(); + this.SweptArea = SweptArea; + this.Position = Position; + this.type = 2247615214; } } - IFC2X32.IfcTorqueMeasure = IfcTorqueMeasure; - class IfcVaporPermeabilityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcSweptAreaSolid = IfcSweptAreaSolid; + class IfcSweptDiskSolid extends IfcSolidModel { + constructor(Directrix, Radius, InnerRadius, StartParam, EndParam) { + super(); + this.Directrix = Directrix; + this.Radius = Radius; + this.InnerRadius = InnerRadius; + this.StartParam = StartParam; + this.EndParam = EndParam; + this.type = 1260650574; } } - IFC2X32.IfcVaporPermeabilityMeasure = IfcVaporPermeabilityMeasure; - class IfcVolumeMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcSweptDiskSolid = IfcSweptDiskSolid; + class IfcSweptSurface extends IfcSurface { + constructor(SweptCurve, Position) { + super(); + this.SweptCurve = SweptCurve; + this.Position = Position; + this.type = 230924584; } } - IFC2X32.IfcVolumeMeasure = IfcVolumeMeasure; - class IfcVolumetricFlowRateMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcSweptSurface = IfcSweptSurface; + class IfcTShapeProfileDef extends IfcParameterizedProfileDef { + constructor(ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, FlangeEdgeRadius, WebEdgeRadius, WebSlope, FlangeSlope, CentreOfGravityInY) { + super(ProfileType, ProfileName, Position); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.Depth = Depth; + this.FlangeWidth = FlangeWidth; + this.WebThickness = WebThickness; + this.FlangeThickness = FlangeThickness; + this.FilletRadius = FilletRadius; + this.FlangeEdgeRadius = FlangeEdgeRadius; + this.WebEdgeRadius = WebEdgeRadius; + this.WebSlope = WebSlope; + this.FlangeSlope = FlangeSlope; + this.CentreOfGravityInY = CentreOfGravityInY; + this.type = 3071757647; } } - IFC2X32.IfcVolumetricFlowRateMeasure = IfcVolumetricFlowRateMeasure; - class IfcWarpingConstantMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcTShapeProfileDef = IfcTShapeProfileDef; + class IfcTerminatorSymbol extends IfcAnnotationSymbolOccurrence { + constructor(Item, Styles, Name, AnnotatedCurve) { + super(Item, Styles, Name); + this.Item = Item; + this.Styles = Styles; + this.Name = Name; + this.AnnotatedCurve = AnnotatedCurve; + this.type = 3028897424; } } - IFC2X32.IfcWarpingConstantMeasure = IfcWarpingConstantMeasure; - class IfcWarpingMomentMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcTerminatorSymbol = IfcTerminatorSymbol; + class IfcTextLiteral extends IfcGeometricRepresentationItem { + constructor(Literal, Placement, Path) { + super(); + this.Literal = Literal; + this.Placement = Placement; + this.Path = Path; + this.type = 4282788508; } } - IFC2X32.IfcWarpingMomentMeasure = IfcWarpingMomentMeasure; - class IfcYearNumber { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC2X32.IfcTextLiteral = IfcTextLiteral; + class IfcTextLiteralWithExtent extends IfcTextLiteral { + constructor(Literal, Placement, Path, Extent, BoxAlignment) { + super(Literal, Placement, Path); + this.Literal = Literal; + this.Placement = Placement; + this.Path = Path; + this.Extent = Extent; + this.BoxAlignment = BoxAlignment; + this.type = 3124975700; } } - IFC2X32.IfcYearNumber = IfcYearNumber; - class IfcActionSourceTypeEnum { - } - IfcActionSourceTypeEnum.DEAD_LOAD_G = { type: 3, value: "DEAD_LOAD_G" }; - IfcActionSourceTypeEnum.COMPLETION_G1 = { type: 3, value: "COMPLETION_G1" }; - IfcActionSourceTypeEnum.LIVE_LOAD_Q = { type: 3, value: "LIVE_LOAD_Q" }; - IfcActionSourceTypeEnum.SNOW_S = { type: 3, value: "SNOW_S" }; - IfcActionSourceTypeEnum.WIND_W = { type: 3, value: "WIND_W" }; - IfcActionSourceTypeEnum.PRESTRESSING_P = { type: 3, value: "PRESTRESSING_P" }; - IfcActionSourceTypeEnum.SETTLEMENT_U = { type: 3, value: "SETTLEMENT_U" }; - IfcActionSourceTypeEnum.TEMPERATURE_T = { type: 3, value: "TEMPERATURE_T" }; - IfcActionSourceTypeEnum.EARTHQUAKE_E = { type: 3, value: "EARTHQUAKE_E" }; - IfcActionSourceTypeEnum.FIRE = { type: 3, value: "FIRE" }; - IfcActionSourceTypeEnum.IMPULSE = { type: 3, value: "IMPULSE" }; - IfcActionSourceTypeEnum.IMPACT = { type: 3, value: "IMPACT" }; - IfcActionSourceTypeEnum.TRANSPORT = { type: 3, value: "TRANSPORT" }; - IfcActionSourceTypeEnum.ERECTION = { type: 3, value: "ERECTION" }; - IfcActionSourceTypeEnum.PROPPING = { type: 3, value: "PROPPING" }; - IfcActionSourceTypeEnum.SYSTEM_IMPERFECTION = { type: 3, value: "SYSTEM_IMPERFECTION" }; - IfcActionSourceTypeEnum.SHRINKAGE = { type: 3, value: "SHRINKAGE" }; - IfcActionSourceTypeEnum.CREEP = { type: 3, value: "CREEP" }; - IfcActionSourceTypeEnum.LACK_OF_FIT = { type: 3, value: "LACK_OF_FIT" }; - IfcActionSourceTypeEnum.BUOYANCY = { type: 3, value: "BUOYANCY" }; - IfcActionSourceTypeEnum.ICE = { type: 3, value: "ICE" }; - IfcActionSourceTypeEnum.CURRENT = { type: 3, value: "CURRENT" }; - IfcActionSourceTypeEnum.WAVE = { type: 3, value: "WAVE" }; - IfcActionSourceTypeEnum.RAIN = { type: 3, value: "RAIN" }; - IfcActionSourceTypeEnum.BRAKES = { type: 3, value: "BRAKES" }; - IfcActionSourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcActionSourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcActionSourceTypeEnum = IfcActionSourceTypeEnum; - class IfcActionTypeEnum { - } - IfcActionTypeEnum.PERMANENT_G = { type: 3, value: "PERMANENT_G" }; - IfcActionTypeEnum.VARIABLE_Q = { type: 3, value: "VARIABLE_Q" }; - IfcActionTypeEnum.EXTRAORDINARY_A = { type: 3, value: "EXTRAORDINARY_A" }; - IfcActionTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcActionTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcActionTypeEnum = IfcActionTypeEnum; - class IfcActuatorTypeEnum { - } - IfcActuatorTypeEnum.ELECTRICACTUATOR = { type: 3, value: "ELECTRICACTUATOR" }; - IfcActuatorTypeEnum.HANDOPERATEDACTUATOR = { type: 3, value: "HANDOPERATEDACTUATOR" }; - IfcActuatorTypeEnum.HYDRAULICACTUATOR = { type: 3, value: "HYDRAULICACTUATOR" }; - IfcActuatorTypeEnum.PNEUMATICACTUATOR = { type: 3, value: "PNEUMATICACTUATOR" }; - IfcActuatorTypeEnum.THERMOSTATICACTUATOR = { type: 3, value: "THERMOSTATICACTUATOR" }; - IfcActuatorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcActuatorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcActuatorTypeEnum = IfcActuatorTypeEnum; - class IfcAddressTypeEnum { - } - IfcAddressTypeEnum.OFFICE = { type: 3, value: "OFFICE" }; - IfcAddressTypeEnum.SITE = { type: 3, value: "SITE" }; - IfcAddressTypeEnum.HOME = { type: 3, value: "HOME" }; - IfcAddressTypeEnum.DISTRIBUTIONPOINT = { type: 3, value: "DISTRIBUTIONPOINT" }; - IfcAddressTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IFC2X32.IfcAddressTypeEnum = IfcAddressTypeEnum; - class IfcAheadOrBehind { - } - IfcAheadOrBehind.AHEAD = { type: 3, value: "AHEAD" }; - IfcAheadOrBehind.BEHIND = { type: 3, value: "BEHIND" }; - IFC2X32.IfcAheadOrBehind = IfcAheadOrBehind; - class IfcAirTerminalBoxTypeEnum { - } - IfcAirTerminalBoxTypeEnum.CONSTANTFLOW = { type: 3, value: "CONSTANTFLOW" }; - IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREDEPENDANT = { type: 3, value: "VARIABLEFLOWPRESSUREDEPENDANT" }; - IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREINDEPENDANT = { type: 3, value: "VARIABLEFLOWPRESSUREINDEPENDANT" }; - IfcAirTerminalBoxTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcAirTerminalBoxTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcAirTerminalBoxTypeEnum = IfcAirTerminalBoxTypeEnum; - class IfcAirTerminalTypeEnum { - } - IfcAirTerminalTypeEnum.GRILLE = { type: 3, value: "GRILLE" }; - IfcAirTerminalTypeEnum.REGISTER = { type: 3, value: "REGISTER" }; - IfcAirTerminalTypeEnum.DIFFUSER = { type: 3, value: "DIFFUSER" }; - IfcAirTerminalTypeEnum.EYEBALL = { type: 3, value: "EYEBALL" }; - IfcAirTerminalTypeEnum.IRIS = { type: 3, value: "IRIS" }; - IfcAirTerminalTypeEnum.LINEARGRILLE = { type: 3, value: "LINEARGRILLE" }; - IfcAirTerminalTypeEnum.LINEARDIFFUSER = { type: 3, value: "LINEARDIFFUSER" }; - IfcAirTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcAirTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcAirTerminalTypeEnum = IfcAirTerminalTypeEnum; - class IfcAirToAirHeatRecoveryTypeEnum { - } - IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECOUNTERFLOWEXCHANGER = { type: 3, value: "FIXEDPLATECOUNTERFLOWEXCHANGER" }; - IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECROSSFLOWEXCHANGER = { type: 3, value: "FIXEDPLATECROSSFLOWEXCHANGER" }; - IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATEPARALLELFLOWEXCHANGER = { type: 3, value: "FIXEDPLATEPARALLELFLOWEXCHANGER" }; - IfcAirToAirHeatRecoveryTypeEnum.ROTARYWHEEL = { type: 3, value: "ROTARYWHEEL" }; - IfcAirToAirHeatRecoveryTypeEnum.RUNAROUNDCOILLOOP = { type: 3, value: "RUNAROUNDCOILLOOP" }; - IfcAirToAirHeatRecoveryTypeEnum.HEATPIPE = { type: 3, value: "HEATPIPE" }; - IfcAirToAirHeatRecoveryTypeEnum.TWINTOWERENTHALPYRECOVERYLOOPS = { type: 3, value: "TWINTOWERENTHALPYRECOVERYLOOPS" }; - IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONSEALEDTUBEHEATEXCHANGERS = { type: 3, value: "THERMOSIPHONSEALEDTUBEHEATEXCHANGERS" }; - IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONCOILTYPEHEATEXCHANGERS = { type: 3, value: "THERMOSIPHONCOILTYPEHEATEXCHANGERS" }; - IfcAirToAirHeatRecoveryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcAirToAirHeatRecoveryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcAirToAirHeatRecoveryTypeEnum = IfcAirToAirHeatRecoveryTypeEnum; - class IfcAlarmTypeEnum { - } - IfcAlarmTypeEnum.BELL = { type: 3, value: "BELL" }; - IfcAlarmTypeEnum.BREAKGLASSBUTTON = { type: 3, value: "BREAKGLASSBUTTON" }; - IfcAlarmTypeEnum.LIGHT = { type: 3, value: "LIGHT" }; - IfcAlarmTypeEnum.MANUALPULLBOX = { type: 3, value: "MANUALPULLBOX" }; - IfcAlarmTypeEnum.SIREN = { type: 3, value: "SIREN" }; - IfcAlarmTypeEnum.WHISTLE = { type: 3, value: "WHISTLE" }; - IfcAlarmTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcAlarmTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcAlarmTypeEnum = IfcAlarmTypeEnum; - class IfcAnalysisModelTypeEnum { - } - IfcAnalysisModelTypeEnum.IN_PLANE_LOADING_2D = { type: 3, value: "IN_PLANE_LOADING_2D" }; - IfcAnalysisModelTypeEnum.OUT_PLANE_LOADING_2D = { type: 3, value: "OUT_PLANE_LOADING_2D" }; - IfcAnalysisModelTypeEnum.LOADING_3D = { type: 3, value: "LOADING_3D" }; - IfcAnalysisModelTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcAnalysisModelTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcAnalysisModelTypeEnum = IfcAnalysisModelTypeEnum; - class IfcAnalysisTheoryTypeEnum { - } - IfcAnalysisTheoryTypeEnum.FIRST_ORDER_THEORY = { type: 3, value: "FIRST_ORDER_THEORY" }; - IfcAnalysisTheoryTypeEnum.SECOND_ORDER_THEORY = { type: 3, value: "SECOND_ORDER_THEORY" }; - IfcAnalysisTheoryTypeEnum.THIRD_ORDER_THEORY = { type: 3, value: "THIRD_ORDER_THEORY" }; - IfcAnalysisTheoryTypeEnum.FULL_NONLINEAR_THEORY = { type: 3, value: "FULL_NONLINEAR_THEORY" }; - IfcAnalysisTheoryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcAnalysisTheoryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcAnalysisTheoryTypeEnum = IfcAnalysisTheoryTypeEnum; - class IfcArithmeticOperatorEnum { - } - IfcArithmeticOperatorEnum.ADD = { type: 3, value: "ADD" }; - IfcArithmeticOperatorEnum.DIVIDE = { type: 3, value: "DIVIDE" }; - IfcArithmeticOperatorEnum.MULTIPLY = { type: 3, value: "MULTIPLY" }; - IfcArithmeticOperatorEnum.SUBTRACT = { type: 3, value: "SUBTRACT" }; - IFC2X32.IfcArithmeticOperatorEnum = IfcArithmeticOperatorEnum; - class IfcAssemblyPlaceEnum { - } - IfcAssemblyPlaceEnum.SITE = { type: 3, value: "SITE" }; - IfcAssemblyPlaceEnum.FACTORY = { type: 3, value: "FACTORY" }; - IfcAssemblyPlaceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcAssemblyPlaceEnum = IfcAssemblyPlaceEnum; - class IfcBSplineCurveForm { - } - IfcBSplineCurveForm.POLYLINE_FORM = { type: 3, value: "POLYLINE_FORM" }; - IfcBSplineCurveForm.CIRCULAR_ARC = { type: 3, value: "CIRCULAR_ARC" }; - IfcBSplineCurveForm.ELLIPTIC_ARC = { type: 3, value: "ELLIPTIC_ARC" }; - IfcBSplineCurveForm.PARABOLIC_ARC = { type: 3, value: "PARABOLIC_ARC" }; - IfcBSplineCurveForm.HYPERBOLIC_ARC = { type: 3, value: "HYPERBOLIC_ARC" }; - IfcBSplineCurveForm.UNSPECIFIED = { type: 3, value: "UNSPECIFIED" }; - IFC2X32.IfcBSplineCurveForm = IfcBSplineCurveForm; - class IfcBeamTypeEnum { - } - IfcBeamTypeEnum.BEAM = { type: 3, value: "BEAM" }; - IfcBeamTypeEnum.JOIST = { type: 3, value: "JOIST" }; - IfcBeamTypeEnum.LINTEL = { type: 3, value: "LINTEL" }; - IfcBeamTypeEnum.T_BEAM = { type: 3, value: "T_BEAM" }; - IfcBeamTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcBeamTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcBeamTypeEnum = IfcBeamTypeEnum; - class IfcBenchmarkEnum { - } - IfcBenchmarkEnum.GREATERTHAN = { type: 3, value: "GREATERTHAN" }; - IfcBenchmarkEnum.GREATERTHANOREQUALTO = { type: 3, value: "GREATERTHANOREQUALTO" }; - IfcBenchmarkEnum.LESSTHAN = { type: 3, value: "LESSTHAN" }; - IfcBenchmarkEnum.LESSTHANOREQUALTO = { type: 3, value: "LESSTHANOREQUALTO" }; - IfcBenchmarkEnum.EQUALTO = { type: 3, value: "EQUALTO" }; - IfcBenchmarkEnum.NOTEQUALTO = { type: 3, value: "NOTEQUALTO" }; - IFC2X32.IfcBenchmarkEnum = IfcBenchmarkEnum; - class IfcBoilerTypeEnum { - } - IfcBoilerTypeEnum.WATER = { type: 3, value: "WATER" }; - IfcBoilerTypeEnum.STEAM = { type: 3, value: "STEAM" }; - IfcBoilerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcBoilerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcBoilerTypeEnum = IfcBoilerTypeEnum; - class IfcBooleanOperator { - } - IfcBooleanOperator.UNION = { type: 3, value: "UNION" }; - IfcBooleanOperator.INTERSECTION = { type: 3, value: "INTERSECTION" }; - IfcBooleanOperator.DIFFERENCE = { type: 3, value: "DIFFERENCE" }; - IFC2X32.IfcBooleanOperator = IfcBooleanOperator; - class IfcBuildingElementProxyTypeEnum { - } - IfcBuildingElementProxyTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcBuildingElementProxyTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcBuildingElementProxyTypeEnum = IfcBuildingElementProxyTypeEnum; - class IfcCableCarrierFittingTypeEnum { - } - IfcCableCarrierFittingTypeEnum.BEND = { type: 3, value: "BEND" }; - IfcCableCarrierFittingTypeEnum.CROSS = { type: 3, value: "CROSS" }; - IfcCableCarrierFittingTypeEnum.REDUCER = { type: 3, value: "REDUCER" }; - IfcCableCarrierFittingTypeEnum.TEE = { type: 3, value: "TEE" }; - IfcCableCarrierFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCableCarrierFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcCableCarrierFittingTypeEnum = IfcCableCarrierFittingTypeEnum; - class IfcCableCarrierSegmentTypeEnum { - } - IfcCableCarrierSegmentTypeEnum.CABLELADDERSEGMENT = { type: 3, value: "CABLELADDERSEGMENT" }; - IfcCableCarrierSegmentTypeEnum.CABLETRAYSEGMENT = { type: 3, value: "CABLETRAYSEGMENT" }; - IfcCableCarrierSegmentTypeEnum.CABLETRUNKINGSEGMENT = { type: 3, value: "CABLETRUNKINGSEGMENT" }; - IfcCableCarrierSegmentTypeEnum.CONDUITSEGMENT = { type: 3, value: "CONDUITSEGMENT" }; - IfcCableCarrierSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCableCarrierSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcCableCarrierSegmentTypeEnum = IfcCableCarrierSegmentTypeEnum; - class IfcCableSegmentTypeEnum { - } - IfcCableSegmentTypeEnum.CABLESEGMENT = { type: 3, value: "CABLESEGMENT" }; - IfcCableSegmentTypeEnum.CONDUCTORSEGMENT = { type: 3, value: "CONDUCTORSEGMENT" }; - IfcCableSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCableSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcCableSegmentTypeEnum = IfcCableSegmentTypeEnum; - class IfcChangeActionEnum { - } - IfcChangeActionEnum.NOCHANGE = { type: 3, value: "NOCHANGE" }; - IfcChangeActionEnum.MODIFIED = { type: 3, value: "MODIFIED" }; - IfcChangeActionEnum.ADDED = { type: 3, value: "ADDED" }; - IfcChangeActionEnum.DELETED = { type: 3, value: "DELETED" }; - IfcChangeActionEnum.MODIFIEDADDED = { type: 3, value: "MODIFIEDADDED" }; - IfcChangeActionEnum.MODIFIEDDELETED = { type: 3, value: "MODIFIEDDELETED" }; - IFC2X32.IfcChangeActionEnum = IfcChangeActionEnum; - class IfcChillerTypeEnum { - } - IfcChillerTypeEnum.AIRCOOLED = { type: 3, value: "AIRCOOLED" }; - IfcChillerTypeEnum.WATERCOOLED = { type: 3, value: "WATERCOOLED" }; - IfcChillerTypeEnum.HEATRECOVERY = { type: 3, value: "HEATRECOVERY" }; - IfcChillerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcChillerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcChillerTypeEnum = IfcChillerTypeEnum; - class IfcCoilTypeEnum { - } - IfcCoilTypeEnum.DXCOOLINGCOIL = { type: 3, value: "DXCOOLINGCOIL" }; - IfcCoilTypeEnum.WATERCOOLINGCOIL = { type: 3, value: "WATERCOOLINGCOIL" }; - IfcCoilTypeEnum.STEAMHEATINGCOIL = { type: 3, value: "STEAMHEATINGCOIL" }; - IfcCoilTypeEnum.WATERHEATINGCOIL = { type: 3, value: "WATERHEATINGCOIL" }; - IfcCoilTypeEnum.ELECTRICHEATINGCOIL = { type: 3, value: "ELECTRICHEATINGCOIL" }; - IfcCoilTypeEnum.GASHEATINGCOIL = { type: 3, value: "GASHEATINGCOIL" }; - IfcCoilTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCoilTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcCoilTypeEnum = IfcCoilTypeEnum; - class IfcColumnTypeEnum { - } - IfcColumnTypeEnum.COLUMN = { type: 3, value: "COLUMN" }; - IfcColumnTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcColumnTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcColumnTypeEnum = IfcColumnTypeEnum; - class IfcCompressorTypeEnum { - } - IfcCompressorTypeEnum.DYNAMIC = { type: 3, value: "DYNAMIC" }; - IfcCompressorTypeEnum.RECIPROCATING = { type: 3, value: "RECIPROCATING" }; - IfcCompressorTypeEnum.ROTARY = { type: 3, value: "ROTARY" }; - IfcCompressorTypeEnum.SCROLL = { type: 3, value: "SCROLL" }; - IfcCompressorTypeEnum.TROCHOIDAL = { type: 3, value: "TROCHOIDAL" }; - IfcCompressorTypeEnum.SINGLESTAGE = { type: 3, value: "SINGLESTAGE" }; - IfcCompressorTypeEnum.BOOSTER = { type: 3, value: "BOOSTER" }; - IfcCompressorTypeEnum.OPENTYPE = { type: 3, value: "OPENTYPE" }; - IfcCompressorTypeEnum.HERMETIC = { type: 3, value: "HERMETIC" }; - IfcCompressorTypeEnum.SEMIHERMETIC = { type: 3, value: "SEMIHERMETIC" }; - IfcCompressorTypeEnum.WELDEDSHELLHERMETIC = { type: 3, value: "WELDEDSHELLHERMETIC" }; - IfcCompressorTypeEnum.ROLLINGPISTON = { type: 3, value: "ROLLINGPISTON" }; - IfcCompressorTypeEnum.ROTARYVANE = { type: 3, value: "ROTARYVANE" }; - IfcCompressorTypeEnum.SINGLESCREW = { type: 3, value: "SINGLESCREW" }; - IfcCompressorTypeEnum.TWINSCREW = { type: 3, value: "TWINSCREW" }; - IfcCompressorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCompressorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcCompressorTypeEnum = IfcCompressorTypeEnum; - class IfcCondenserTypeEnum { + IFC2X32.IfcTextLiteralWithExtent = IfcTextLiteralWithExtent; + class IfcTrapeziumProfileDef extends IfcParameterizedProfileDef { + constructor(ProfileType, ProfileName, Position, BottomXDim, TopXDim, YDim, TopXOffset) { + super(ProfileType, ProfileName, Position); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.BottomXDim = BottomXDim; + this.TopXDim = TopXDim; + this.YDim = YDim; + this.TopXOffset = TopXOffset; + this.type = 2715220739; + } } - IfcCondenserTypeEnum.WATERCOOLEDSHELLTUBE = { type: 3, value: "WATERCOOLEDSHELLTUBE" }; - IfcCondenserTypeEnum.WATERCOOLEDSHELLCOIL = { type: 3, value: "WATERCOOLEDSHELLCOIL" }; - IfcCondenserTypeEnum.WATERCOOLEDTUBEINTUBE = { type: 3, value: "WATERCOOLEDTUBEINTUBE" }; - IfcCondenserTypeEnum.WATERCOOLEDBRAZEDPLATE = { type: 3, value: "WATERCOOLEDBRAZEDPLATE" }; - IfcCondenserTypeEnum.AIRCOOLED = { type: 3, value: "AIRCOOLED" }; - IfcCondenserTypeEnum.EVAPORATIVECOOLED = { type: 3, value: "EVAPORATIVECOOLED" }; - IfcCondenserTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCondenserTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcCondenserTypeEnum = IfcCondenserTypeEnum; - class IfcConnectionTypeEnum { + IFC2X32.IfcTrapeziumProfileDef = IfcTrapeziumProfileDef; + class IfcTwoDirectionRepeatFactor extends IfcOneDirectionRepeatFactor { + constructor(RepeatFactor, SecondRepeatFactor) { + super(RepeatFactor); + this.RepeatFactor = RepeatFactor; + this.SecondRepeatFactor = SecondRepeatFactor; + this.type = 1345879162; + } } - IfcConnectionTypeEnum.ATPATH = { type: 3, value: "ATPATH" }; - IfcConnectionTypeEnum.ATSTART = { type: 3, value: "ATSTART" }; - IfcConnectionTypeEnum.ATEND = { type: 3, value: "ATEND" }; - IfcConnectionTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcConnectionTypeEnum = IfcConnectionTypeEnum; - class IfcConstraintEnum { + IFC2X32.IfcTwoDirectionRepeatFactor = IfcTwoDirectionRepeatFactor; + class IfcTypeObject extends IfcObjectDefinition { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.type = 1628702193; + } } - IfcConstraintEnum.HARD = { type: 3, value: "HARD" }; - IfcConstraintEnum.SOFT = { type: 3, value: "SOFT" }; - IfcConstraintEnum.ADVISORY = { type: 3, value: "ADVISORY" }; - IfcConstraintEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcConstraintEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcConstraintEnum = IfcConstraintEnum; - class IfcControllerTypeEnum { + IFC2X32.IfcTypeObject = IfcTypeObject; + class IfcTypeProduct extends IfcTypeObject { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.type = 2347495698; + } } - IfcControllerTypeEnum.FLOATING = { type: 3, value: "FLOATING" }; - IfcControllerTypeEnum.PROPORTIONAL = { type: 3, value: "PROPORTIONAL" }; - IfcControllerTypeEnum.PROPORTIONALINTEGRAL = { type: 3, value: "PROPORTIONALINTEGRAL" }; - IfcControllerTypeEnum.PROPORTIONALINTEGRALDERIVATIVE = { type: 3, value: "PROPORTIONALINTEGRALDERIVATIVE" }; - IfcControllerTypeEnum.TIMEDTWOPOSITION = { type: 3, value: "TIMEDTWOPOSITION" }; - IfcControllerTypeEnum.TWOPOSITION = { type: 3, value: "TWOPOSITION" }; - IfcControllerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcControllerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcControllerTypeEnum = IfcControllerTypeEnum; - class IfcCooledBeamTypeEnum { + IFC2X32.IfcTypeProduct = IfcTypeProduct; + class IfcUShapeProfileDef extends IfcParameterizedProfileDef { + constructor(ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, EdgeRadius, FlangeSlope, CentreOfGravityInX) { + super(ProfileType, ProfileName, Position); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.Depth = Depth; + this.FlangeWidth = FlangeWidth; + this.WebThickness = WebThickness; + this.FlangeThickness = FlangeThickness; + this.FilletRadius = FilletRadius; + this.EdgeRadius = EdgeRadius; + this.FlangeSlope = FlangeSlope; + this.CentreOfGravityInX = CentreOfGravityInX; + this.type = 427810014; + } } - IfcCooledBeamTypeEnum.ACTIVE = { type: 3, value: "ACTIVE" }; - IfcCooledBeamTypeEnum.PASSIVE = { type: 3, value: "PASSIVE" }; - IfcCooledBeamTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCooledBeamTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcCooledBeamTypeEnum = IfcCooledBeamTypeEnum; - class IfcCoolingTowerTypeEnum { + IFC2X32.IfcUShapeProfileDef = IfcUShapeProfileDef; + class IfcVector extends IfcGeometricRepresentationItem { + constructor(Orientation, Magnitude) { + super(); + this.Orientation = Orientation; + this.Magnitude = Magnitude; + this.type = 1417489154; + } } - IfcCoolingTowerTypeEnum.NATURALDRAFT = { type: 3, value: "NATURALDRAFT" }; - IfcCoolingTowerTypeEnum.MECHANICALINDUCEDDRAFT = { type: 3, value: "MECHANICALINDUCEDDRAFT" }; - IfcCoolingTowerTypeEnum.MECHANICALFORCEDDRAFT = { type: 3, value: "MECHANICALFORCEDDRAFT" }; - IfcCoolingTowerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCoolingTowerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcCoolingTowerTypeEnum = IfcCoolingTowerTypeEnum; - class IfcCostScheduleTypeEnum { + IFC2X32.IfcVector = IfcVector; + class IfcVertexLoop extends IfcLoop { + constructor(LoopVertex) { + super(); + this.LoopVertex = LoopVertex; + this.type = 2759199220; + } } - IfcCostScheduleTypeEnum.BUDGET = { type: 3, value: "BUDGET" }; - IfcCostScheduleTypeEnum.COSTPLAN = { type: 3, value: "COSTPLAN" }; - IfcCostScheduleTypeEnum.ESTIMATE = { type: 3, value: "ESTIMATE" }; - IfcCostScheduleTypeEnum.TENDER = { type: 3, value: "TENDER" }; - IfcCostScheduleTypeEnum.PRICEDBILLOFQUANTITIES = { type: 3, value: "PRICEDBILLOFQUANTITIES" }; - IfcCostScheduleTypeEnum.UNPRICEDBILLOFQUANTITIES = { type: 3, value: "UNPRICEDBILLOFQUANTITIES" }; - IfcCostScheduleTypeEnum.SCHEDULEOFRATES = { type: 3, value: "SCHEDULEOFRATES" }; - IfcCostScheduleTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCostScheduleTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcCostScheduleTypeEnum = IfcCostScheduleTypeEnum; - class IfcCoveringTypeEnum { + IFC2X32.IfcVertexLoop = IfcVertexLoop; + class IfcWindowLiningProperties extends IfcPropertySetDefinition { + constructor(GlobalId, OwnerHistory, Name, Description, LiningDepth, LiningThickness, TransomThickness, MullionThickness, FirstTransomOffset, SecondTransomOffset, FirstMullionOffset, SecondMullionOffset, ShapeAspectStyle) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.LiningDepth = LiningDepth; + this.LiningThickness = LiningThickness; + this.TransomThickness = TransomThickness; + this.MullionThickness = MullionThickness; + this.FirstTransomOffset = FirstTransomOffset; + this.SecondTransomOffset = SecondTransomOffset; + this.FirstMullionOffset = FirstMullionOffset; + this.SecondMullionOffset = SecondMullionOffset; + this.ShapeAspectStyle = ShapeAspectStyle; + this.type = 336235671; + } } - IfcCoveringTypeEnum.CEILING = { type: 3, value: "CEILING" }; - IfcCoveringTypeEnum.FLOORING = { type: 3, value: "FLOORING" }; - IfcCoveringTypeEnum.CLADDING = { type: 3, value: "CLADDING" }; - IfcCoveringTypeEnum.ROOFING = { type: 3, value: "ROOFING" }; - IfcCoveringTypeEnum.INSULATION = { type: 3, value: "INSULATION" }; - IfcCoveringTypeEnum.MEMBRANE = { type: 3, value: "MEMBRANE" }; - IfcCoveringTypeEnum.SLEEVING = { type: 3, value: "SLEEVING" }; - IfcCoveringTypeEnum.WRAPPING = { type: 3, value: "WRAPPING" }; - IfcCoveringTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCoveringTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcCoveringTypeEnum = IfcCoveringTypeEnum; - class IfcCurrencyEnum { + IFC2X32.IfcWindowLiningProperties = IfcWindowLiningProperties; + class IfcWindowPanelProperties extends IfcPropertySetDefinition { + constructor(GlobalId, OwnerHistory, Name, Description, OperationType, PanelPosition, FrameDepth, FrameThickness, ShapeAspectStyle) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.OperationType = OperationType; + this.PanelPosition = PanelPosition; + this.FrameDepth = FrameDepth; + this.FrameThickness = FrameThickness; + this.ShapeAspectStyle = ShapeAspectStyle; + this.type = 512836454; + } } - IfcCurrencyEnum.AED = { type: 3, value: "AED" }; - IfcCurrencyEnum.AES = { type: 3, value: "AES" }; - IfcCurrencyEnum.ATS = { type: 3, value: "ATS" }; - IfcCurrencyEnum.AUD = { type: 3, value: "AUD" }; - IfcCurrencyEnum.BBD = { type: 3, value: "BBD" }; - IfcCurrencyEnum.BEG = { type: 3, value: "BEG" }; - IfcCurrencyEnum.BGL = { type: 3, value: "BGL" }; - IfcCurrencyEnum.BHD = { type: 3, value: "BHD" }; - IfcCurrencyEnum.BMD = { type: 3, value: "BMD" }; - IfcCurrencyEnum.BND = { type: 3, value: "BND" }; - IfcCurrencyEnum.BRL = { type: 3, value: "BRL" }; - IfcCurrencyEnum.BSD = { type: 3, value: "BSD" }; - IfcCurrencyEnum.BWP = { type: 3, value: "BWP" }; - IfcCurrencyEnum.BZD = { type: 3, value: "BZD" }; - IfcCurrencyEnum.CAD = { type: 3, value: "CAD" }; - IfcCurrencyEnum.CBD = { type: 3, value: "CBD" }; - IfcCurrencyEnum.CHF = { type: 3, value: "CHF" }; - IfcCurrencyEnum.CLP = { type: 3, value: "CLP" }; - IfcCurrencyEnum.CNY = { type: 3, value: "CNY" }; - IfcCurrencyEnum.CYS = { type: 3, value: "CYS" }; - IfcCurrencyEnum.CZK = { type: 3, value: "CZK" }; - IfcCurrencyEnum.DDP = { type: 3, value: "DDP" }; - IfcCurrencyEnum.DEM = { type: 3, value: "DEM" }; - IfcCurrencyEnum.DKK = { type: 3, value: "DKK" }; - IfcCurrencyEnum.EGL = { type: 3, value: "EGL" }; - IfcCurrencyEnum.EST = { type: 3, value: "EST" }; - IfcCurrencyEnum.EUR = { type: 3, value: "EUR" }; - IfcCurrencyEnum.FAK = { type: 3, value: "FAK" }; - IfcCurrencyEnum.FIM = { type: 3, value: "FIM" }; - IfcCurrencyEnum.FJD = { type: 3, value: "FJD" }; - IfcCurrencyEnum.FKP = { type: 3, value: "FKP" }; - IfcCurrencyEnum.FRF = { type: 3, value: "FRF" }; - IfcCurrencyEnum.GBP = { type: 3, value: "GBP" }; - IfcCurrencyEnum.GIP = { type: 3, value: "GIP" }; - IfcCurrencyEnum.GMD = { type: 3, value: "GMD" }; - IfcCurrencyEnum.GRX = { type: 3, value: "GRX" }; - IfcCurrencyEnum.HKD = { type: 3, value: "HKD" }; - IfcCurrencyEnum.HUF = { type: 3, value: "HUF" }; - IfcCurrencyEnum.ICK = { type: 3, value: "ICK" }; - IfcCurrencyEnum.IDR = { type: 3, value: "IDR" }; - IfcCurrencyEnum.ILS = { type: 3, value: "ILS" }; - IfcCurrencyEnum.INR = { type: 3, value: "INR" }; - IfcCurrencyEnum.IRP = { type: 3, value: "IRP" }; - IfcCurrencyEnum.ITL = { type: 3, value: "ITL" }; - IfcCurrencyEnum.JMD = { type: 3, value: "JMD" }; - IfcCurrencyEnum.JOD = { type: 3, value: "JOD" }; - IfcCurrencyEnum.JPY = { type: 3, value: "JPY" }; - IfcCurrencyEnum.KES = { type: 3, value: "KES" }; - IfcCurrencyEnum.KRW = { type: 3, value: "KRW" }; - IfcCurrencyEnum.KWD = { type: 3, value: "KWD" }; - IfcCurrencyEnum.KYD = { type: 3, value: "KYD" }; - IfcCurrencyEnum.LKR = { type: 3, value: "LKR" }; - IfcCurrencyEnum.LUF = { type: 3, value: "LUF" }; - IfcCurrencyEnum.MTL = { type: 3, value: "MTL" }; - IfcCurrencyEnum.MUR = { type: 3, value: "MUR" }; - IfcCurrencyEnum.MXN = { type: 3, value: "MXN" }; - IfcCurrencyEnum.MYR = { type: 3, value: "MYR" }; - IfcCurrencyEnum.NLG = { type: 3, value: "NLG" }; - IfcCurrencyEnum.NZD = { type: 3, value: "NZD" }; - IfcCurrencyEnum.OMR = { type: 3, value: "OMR" }; - IfcCurrencyEnum.PGK = { type: 3, value: "PGK" }; - IfcCurrencyEnum.PHP = { type: 3, value: "PHP" }; - IfcCurrencyEnum.PKR = { type: 3, value: "PKR" }; - IfcCurrencyEnum.PLN = { type: 3, value: "PLN" }; - IfcCurrencyEnum.PTN = { type: 3, value: "PTN" }; - IfcCurrencyEnum.QAR = { type: 3, value: "QAR" }; - IfcCurrencyEnum.RUR = { type: 3, value: "RUR" }; - IfcCurrencyEnum.SAR = { type: 3, value: "SAR" }; - IfcCurrencyEnum.SCR = { type: 3, value: "SCR" }; - IfcCurrencyEnum.SEK = { type: 3, value: "SEK" }; - IfcCurrencyEnum.SGD = { type: 3, value: "SGD" }; - IfcCurrencyEnum.SKP = { type: 3, value: "SKP" }; - IfcCurrencyEnum.THB = { type: 3, value: "THB" }; - IfcCurrencyEnum.TRL = { type: 3, value: "TRL" }; - IfcCurrencyEnum.TTD = { type: 3, value: "TTD" }; - IfcCurrencyEnum.TWD = { type: 3, value: "TWD" }; - IfcCurrencyEnum.USD = { type: 3, value: "USD" }; - IfcCurrencyEnum.VEB = { type: 3, value: "VEB" }; - IfcCurrencyEnum.VND = { type: 3, value: "VND" }; - IfcCurrencyEnum.XEU = { type: 3, value: "XEU" }; - IfcCurrencyEnum.ZAR = { type: 3, value: "ZAR" }; - IfcCurrencyEnum.ZWD = { type: 3, value: "ZWD" }; - IfcCurrencyEnum.NOK = { type: 3, value: "NOK" }; - IFC2X32.IfcCurrencyEnum = IfcCurrencyEnum; - class IfcCurtainWallTypeEnum { + IFC2X32.IfcWindowPanelProperties = IfcWindowPanelProperties; + class IfcWindowStyle extends IfcTypeProduct { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ConstructionType, OperationType, ParameterTakesPrecedence, Sizeable) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ConstructionType = ConstructionType; + this.OperationType = OperationType; + this.ParameterTakesPrecedence = ParameterTakesPrecedence; + this.Sizeable = Sizeable; + this.type = 1299126871; + } } - IfcCurtainWallTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCurtainWallTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcCurtainWallTypeEnum = IfcCurtainWallTypeEnum; - class IfcDamperTypeEnum { + IFC2X32.IfcWindowStyle = IfcWindowStyle; + class IfcZShapeProfileDef extends IfcParameterizedProfileDef { + constructor(ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, EdgeRadius) { + super(ProfileType, ProfileName, Position); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.Depth = Depth; + this.FlangeWidth = FlangeWidth; + this.WebThickness = WebThickness; + this.FlangeThickness = FlangeThickness; + this.FilletRadius = FilletRadius; + this.EdgeRadius = EdgeRadius; + this.type = 2543172580; + } } - IfcDamperTypeEnum.CONTROLDAMPER = { type: 3, value: "CONTROLDAMPER" }; - IfcDamperTypeEnum.FIREDAMPER = { type: 3, value: "FIREDAMPER" }; - IfcDamperTypeEnum.SMOKEDAMPER = { type: 3, value: "SMOKEDAMPER" }; - IfcDamperTypeEnum.FIRESMOKEDAMPER = { type: 3, value: "FIRESMOKEDAMPER" }; - IfcDamperTypeEnum.BACKDRAFTDAMPER = { type: 3, value: "BACKDRAFTDAMPER" }; - IfcDamperTypeEnum.RELIEFDAMPER = { type: 3, value: "RELIEFDAMPER" }; - IfcDamperTypeEnum.BLASTDAMPER = { type: 3, value: "BLASTDAMPER" }; - IfcDamperTypeEnum.GRAVITYDAMPER = { type: 3, value: "GRAVITYDAMPER" }; - IfcDamperTypeEnum.GRAVITYRELIEFDAMPER = { type: 3, value: "GRAVITYRELIEFDAMPER" }; - IfcDamperTypeEnum.BALANCINGDAMPER = { type: 3, value: "BALANCINGDAMPER" }; - IfcDamperTypeEnum.FUMEHOODEXHAUST = { type: 3, value: "FUMEHOODEXHAUST" }; - IfcDamperTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDamperTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcDamperTypeEnum = IfcDamperTypeEnum; - class IfcDataOriginEnum { + IFC2X32.IfcZShapeProfileDef = IfcZShapeProfileDef; + class IfcAnnotationCurveOccurrence extends IfcAnnotationOccurrence { + constructor(Item, Styles, Name) { + super(Item, Styles, Name); + this.Item = Item; + this.Styles = Styles; + this.Name = Name; + this.type = 3288037868; + } } - IfcDataOriginEnum.MEASURED = { type: 3, value: "MEASURED" }; - IfcDataOriginEnum.PREDICTED = { type: 3, value: "PREDICTED" }; - IfcDataOriginEnum.SIMULATED = { type: 3, value: "SIMULATED" }; - IfcDataOriginEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDataOriginEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcDataOriginEnum = IfcDataOriginEnum; - class IfcDerivedUnitEnum { + IFC2X32.IfcAnnotationCurveOccurrence = IfcAnnotationCurveOccurrence; + class IfcAnnotationFillArea extends IfcGeometricRepresentationItem { + constructor(OuterBoundary, InnerBoundaries) { + super(); + this.OuterBoundary = OuterBoundary; + this.InnerBoundaries = InnerBoundaries; + this.type = 669184980; + } } - IfcDerivedUnitEnum.ANGULARVELOCITYUNIT = { type: 3, value: "ANGULARVELOCITYUNIT" }; - IfcDerivedUnitEnum.COMPOUNDPLANEANGLEUNIT = { type: 3, value: "COMPOUNDPLANEANGLEUNIT" }; - IfcDerivedUnitEnum.DYNAMICVISCOSITYUNIT = { type: 3, value: "DYNAMICVISCOSITYUNIT" }; - IfcDerivedUnitEnum.HEATFLUXDENSITYUNIT = { type: 3, value: "HEATFLUXDENSITYUNIT" }; - IfcDerivedUnitEnum.INTEGERCOUNTRATEUNIT = { type: 3, value: "INTEGERCOUNTRATEUNIT" }; - IfcDerivedUnitEnum.ISOTHERMALMOISTURECAPACITYUNIT = { type: 3, value: "ISOTHERMALMOISTURECAPACITYUNIT" }; - IfcDerivedUnitEnum.KINEMATICVISCOSITYUNIT = { type: 3, value: "KINEMATICVISCOSITYUNIT" }; - IfcDerivedUnitEnum.LINEARVELOCITYUNIT = { type: 3, value: "LINEARVELOCITYUNIT" }; - IfcDerivedUnitEnum.MASSDENSITYUNIT = { type: 3, value: "MASSDENSITYUNIT" }; - IfcDerivedUnitEnum.MASSFLOWRATEUNIT = { type: 3, value: "MASSFLOWRATEUNIT" }; - IfcDerivedUnitEnum.MOISTUREDIFFUSIVITYUNIT = { type: 3, value: "MOISTUREDIFFUSIVITYUNIT" }; - IfcDerivedUnitEnum.MOLECULARWEIGHTUNIT = { type: 3, value: "MOLECULARWEIGHTUNIT" }; - IfcDerivedUnitEnum.SPECIFICHEATCAPACITYUNIT = { type: 3, value: "SPECIFICHEATCAPACITYUNIT" }; - IfcDerivedUnitEnum.THERMALADMITTANCEUNIT = { type: 3, value: "THERMALADMITTANCEUNIT" }; - IfcDerivedUnitEnum.THERMALCONDUCTANCEUNIT = { type: 3, value: "THERMALCONDUCTANCEUNIT" }; - IfcDerivedUnitEnum.THERMALRESISTANCEUNIT = { type: 3, value: "THERMALRESISTANCEUNIT" }; - IfcDerivedUnitEnum.THERMALTRANSMITTANCEUNIT = { type: 3, value: "THERMALTRANSMITTANCEUNIT" }; - IfcDerivedUnitEnum.VAPORPERMEABILITYUNIT = { type: 3, value: "VAPORPERMEABILITYUNIT" }; - IfcDerivedUnitEnum.VOLUMETRICFLOWRATEUNIT = { type: 3, value: "VOLUMETRICFLOWRATEUNIT" }; - IfcDerivedUnitEnum.ROTATIONALFREQUENCYUNIT = { type: 3, value: "ROTATIONALFREQUENCYUNIT" }; - IfcDerivedUnitEnum.TORQUEUNIT = { type: 3, value: "TORQUEUNIT" }; - IfcDerivedUnitEnum.MOMENTOFINERTIAUNIT = { type: 3, value: "MOMENTOFINERTIAUNIT" }; - IfcDerivedUnitEnum.LINEARMOMENTUNIT = { type: 3, value: "LINEARMOMENTUNIT" }; - IfcDerivedUnitEnum.LINEARFORCEUNIT = { type: 3, value: "LINEARFORCEUNIT" }; - IfcDerivedUnitEnum.PLANARFORCEUNIT = { type: 3, value: "PLANARFORCEUNIT" }; - IfcDerivedUnitEnum.MODULUSOFELASTICITYUNIT = { type: 3, value: "MODULUSOFELASTICITYUNIT" }; - IfcDerivedUnitEnum.SHEARMODULUSUNIT = { type: 3, value: "SHEARMODULUSUNIT" }; - IfcDerivedUnitEnum.LINEARSTIFFNESSUNIT = { type: 3, value: "LINEARSTIFFNESSUNIT" }; - IfcDerivedUnitEnum.ROTATIONALSTIFFNESSUNIT = { type: 3, value: "ROTATIONALSTIFFNESSUNIT" }; - IfcDerivedUnitEnum.MODULUSOFSUBGRADEREACTIONUNIT = { type: 3, value: "MODULUSOFSUBGRADEREACTIONUNIT" }; - IfcDerivedUnitEnum.ACCELERATIONUNIT = { type: 3, value: "ACCELERATIONUNIT" }; - IfcDerivedUnitEnum.CURVATUREUNIT = { type: 3, value: "CURVATUREUNIT" }; - IfcDerivedUnitEnum.HEATINGVALUEUNIT = { type: 3, value: "HEATINGVALUEUNIT" }; - IfcDerivedUnitEnum.IONCONCENTRATIONUNIT = { type: 3, value: "IONCONCENTRATIONUNIT" }; - IfcDerivedUnitEnum.LUMINOUSINTENSITYDISTRIBUTIONUNIT = { type: 3, value: "LUMINOUSINTENSITYDISTRIBUTIONUNIT" }; - IfcDerivedUnitEnum.MASSPERLENGTHUNIT = { type: 3, value: "MASSPERLENGTHUNIT" }; - IfcDerivedUnitEnum.MODULUSOFLINEARSUBGRADEREACTIONUNIT = { type: 3, value: "MODULUSOFLINEARSUBGRADEREACTIONUNIT" }; - IfcDerivedUnitEnum.MODULUSOFROTATIONALSUBGRADEREACTIONUNIT = { type: 3, value: "MODULUSOFROTATIONALSUBGRADEREACTIONUNIT" }; - IfcDerivedUnitEnum.PHUNIT = { type: 3, value: "PHUNIT" }; - IfcDerivedUnitEnum.ROTATIONALMASSUNIT = { type: 3, value: "ROTATIONALMASSUNIT" }; - IfcDerivedUnitEnum.SECTIONAREAINTEGRALUNIT = { type: 3, value: "SECTIONAREAINTEGRALUNIT" }; - IfcDerivedUnitEnum.SECTIONMODULUSUNIT = { type: 3, value: "SECTIONMODULUSUNIT" }; - IfcDerivedUnitEnum.SOUNDPOWERUNIT = { type: 3, value: "SOUNDPOWERUNIT" }; - IfcDerivedUnitEnum.SOUNDPRESSUREUNIT = { type: 3, value: "SOUNDPRESSUREUNIT" }; - IfcDerivedUnitEnum.TEMPERATUREGRADIENTUNIT = { type: 3, value: "TEMPERATUREGRADIENTUNIT" }; - IfcDerivedUnitEnum.THERMALEXPANSIONCOEFFICIENTUNIT = { type: 3, value: "THERMALEXPANSIONCOEFFICIENTUNIT" }; - IfcDerivedUnitEnum.WARPINGCONSTANTUNIT = { type: 3, value: "WARPINGCONSTANTUNIT" }; - IfcDerivedUnitEnum.WARPINGMOMENTUNIT = { type: 3, value: "WARPINGMOMENTUNIT" }; - IfcDerivedUnitEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IFC2X32.IfcDerivedUnitEnum = IfcDerivedUnitEnum; - class IfcDimensionExtentUsage { + IFC2X32.IfcAnnotationFillArea = IfcAnnotationFillArea; + class IfcAnnotationFillAreaOccurrence extends IfcAnnotationOccurrence { + constructor(Item, Styles, Name, FillStyleTarget, GlobalOrLocal) { + super(Item, Styles, Name); + this.Item = Item; + this.Styles = Styles; + this.Name = Name; + this.FillStyleTarget = FillStyleTarget; + this.GlobalOrLocal = GlobalOrLocal; + this.type = 2265737646; + } } - IfcDimensionExtentUsage.ORIGIN = { type: 3, value: "ORIGIN" }; - IfcDimensionExtentUsage.TARGET = { type: 3, value: "TARGET" }; - IFC2X32.IfcDimensionExtentUsage = IfcDimensionExtentUsage; - class IfcDirectionSenseEnum { + IFC2X32.IfcAnnotationFillAreaOccurrence = IfcAnnotationFillAreaOccurrence; + class IfcAnnotationSurface extends IfcGeometricRepresentationItem { + constructor(Item, TextureCoordinates) { + super(); + this.Item = Item; + this.TextureCoordinates = TextureCoordinates; + this.type = 1302238472; + } } - IfcDirectionSenseEnum.POSITIVE = { type: 3, value: "POSITIVE" }; - IfcDirectionSenseEnum.NEGATIVE = { type: 3, value: "NEGATIVE" }; - IFC2X32.IfcDirectionSenseEnum = IfcDirectionSenseEnum; - class IfcDistributionChamberElementTypeEnum { + IFC2X32.IfcAnnotationSurface = IfcAnnotationSurface; + class IfcAxis1Placement extends IfcPlacement { + constructor(Location, Axis) { + super(Location); + this.Location = Location; + this.Axis = Axis; + this.type = 4261334040; + } } - IfcDistributionChamberElementTypeEnum.FORMEDDUCT = { type: 3, value: "FORMEDDUCT" }; - IfcDistributionChamberElementTypeEnum.INSPECTIONCHAMBER = { type: 3, value: "INSPECTIONCHAMBER" }; - IfcDistributionChamberElementTypeEnum.INSPECTIONPIT = { type: 3, value: "INSPECTIONPIT" }; - IfcDistributionChamberElementTypeEnum.MANHOLE = { type: 3, value: "MANHOLE" }; - IfcDistributionChamberElementTypeEnum.METERCHAMBER = { type: 3, value: "METERCHAMBER" }; - IfcDistributionChamberElementTypeEnum.SUMP = { type: 3, value: "SUMP" }; - IfcDistributionChamberElementTypeEnum.TRENCH = { type: 3, value: "TRENCH" }; - IfcDistributionChamberElementTypeEnum.VALVECHAMBER = { type: 3, value: "VALVECHAMBER" }; - IfcDistributionChamberElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDistributionChamberElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcDistributionChamberElementTypeEnum = IfcDistributionChamberElementTypeEnum; - class IfcDocumentConfidentialityEnum { + IFC2X32.IfcAxis1Placement = IfcAxis1Placement; + class IfcAxis2Placement2D extends IfcPlacement { + constructor(Location, RefDirection) { + super(Location); + this.Location = Location; + this.RefDirection = RefDirection; + this.type = 3125803723; + } } - IfcDocumentConfidentialityEnum.PUBLIC = { type: 3, value: "PUBLIC" }; - IfcDocumentConfidentialityEnum.RESTRICTED = { type: 3, value: "RESTRICTED" }; - IfcDocumentConfidentialityEnum.CONFIDENTIAL = { type: 3, value: "CONFIDENTIAL" }; - IfcDocumentConfidentialityEnum.PERSONAL = { type: 3, value: "PERSONAL" }; - IfcDocumentConfidentialityEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDocumentConfidentialityEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcDocumentConfidentialityEnum = IfcDocumentConfidentialityEnum; - class IfcDocumentStatusEnum { + IFC2X32.IfcAxis2Placement2D = IfcAxis2Placement2D; + class IfcAxis2Placement3D extends IfcPlacement { + constructor(Location, Axis, RefDirection) { + super(Location); + this.Location = Location; + this.Axis = Axis; + this.RefDirection = RefDirection; + this.type = 2740243338; + } } - IfcDocumentStatusEnum.DRAFT = { type: 3, value: "DRAFT" }; - IfcDocumentStatusEnum.FINALDRAFT = { type: 3, value: "FINALDRAFT" }; - IfcDocumentStatusEnum.FINAL = { type: 3, value: "FINAL" }; - IfcDocumentStatusEnum.REVISION = { type: 3, value: "REVISION" }; - IfcDocumentStatusEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcDocumentStatusEnum = IfcDocumentStatusEnum; - class IfcDoorPanelOperationEnum { + IFC2X32.IfcAxis2Placement3D = IfcAxis2Placement3D; + class IfcBooleanResult extends IfcGeometricRepresentationItem { + constructor(Operator, FirstOperand, SecondOperand) { + super(); + this.Operator = Operator; + this.FirstOperand = FirstOperand; + this.SecondOperand = SecondOperand; + this.type = 2736907675; + } } - IfcDoorPanelOperationEnum.SWINGING = { type: 3, value: "SWINGING" }; - IfcDoorPanelOperationEnum.DOUBLE_ACTING = { type: 3, value: "DOUBLE_ACTING" }; - IfcDoorPanelOperationEnum.SLIDING = { type: 3, value: "SLIDING" }; - IfcDoorPanelOperationEnum.FOLDING = { type: 3, value: "FOLDING" }; - IfcDoorPanelOperationEnum.REVOLVING = { type: 3, value: "REVOLVING" }; - IfcDoorPanelOperationEnum.ROLLINGUP = { type: 3, value: "ROLLINGUP" }; - IfcDoorPanelOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDoorPanelOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcDoorPanelOperationEnum = IfcDoorPanelOperationEnum; - class IfcDoorPanelPositionEnum { + IFC2X32.IfcBooleanResult = IfcBooleanResult; + class IfcBoundedSurface extends IfcSurface { + constructor() { + super(); + this.type = 4182860854; + } } - IfcDoorPanelPositionEnum.LEFT = { type: 3, value: "LEFT" }; - IfcDoorPanelPositionEnum.MIDDLE = { type: 3, value: "MIDDLE" }; - IfcDoorPanelPositionEnum.RIGHT = { type: 3, value: "RIGHT" }; - IfcDoorPanelPositionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcDoorPanelPositionEnum = IfcDoorPanelPositionEnum; - class IfcDoorStyleConstructionEnum { + IFC2X32.IfcBoundedSurface = IfcBoundedSurface; + class IfcBoundingBox extends IfcGeometricRepresentationItem { + constructor(Corner, XDim, YDim, ZDim) { + super(); + this.Corner = Corner; + this.XDim = XDim; + this.YDim = YDim; + this.ZDim = ZDim; + this.type = 2581212453; + } } - IfcDoorStyleConstructionEnum.ALUMINIUM = { type: 3, value: "ALUMINIUM" }; - IfcDoorStyleConstructionEnum.HIGH_GRADE_STEEL = { type: 3, value: "HIGH_GRADE_STEEL" }; - IfcDoorStyleConstructionEnum.STEEL = { type: 3, value: "STEEL" }; - IfcDoorStyleConstructionEnum.WOOD = { type: 3, value: "WOOD" }; - IfcDoorStyleConstructionEnum.ALUMINIUM_WOOD = { type: 3, value: "ALUMINIUM_WOOD" }; - IfcDoorStyleConstructionEnum.ALUMINIUM_PLASTIC = { type: 3, value: "ALUMINIUM_PLASTIC" }; - IfcDoorStyleConstructionEnum.PLASTIC = { type: 3, value: "PLASTIC" }; - IfcDoorStyleConstructionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDoorStyleConstructionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcDoorStyleConstructionEnum = IfcDoorStyleConstructionEnum; - class IfcDoorStyleOperationEnum { + IFC2X32.IfcBoundingBox = IfcBoundingBox; + class IfcBoxedHalfSpace extends IfcHalfSpaceSolid { + constructor(BaseSurface, AgreementFlag, Enclosure) { + super(BaseSurface, AgreementFlag); + this.BaseSurface = BaseSurface; + this.AgreementFlag = AgreementFlag; + this.Enclosure = Enclosure; + this.type = 2713105998; + } } - IfcDoorStyleOperationEnum.SINGLE_SWING_LEFT = { type: 3, value: "SINGLE_SWING_LEFT" }; - IfcDoorStyleOperationEnum.SINGLE_SWING_RIGHT = { type: 3, value: "SINGLE_SWING_RIGHT" }; - IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING" }; - IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT" }; - IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT" }; - IfcDoorStyleOperationEnum.DOUBLE_SWING_LEFT = { type: 3, value: "DOUBLE_SWING_LEFT" }; - IfcDoorStyleOperationEnum.DOUBLE_SWING_RIGHT = { type: 3, value: "DOUBLE_SWING_RIGHT" }; - IfcDoorStyleOperationEnum.DOUBLE_DOOR_DOUBLE_SWING = { type: 3, value: "DOUBLE_DOOR_DOUBLE_SWING" }; - IfcDoorStyleOperationEnum.SLIDING_TO_LEFT = { type: 3, value: "SLIDING_TO_LEFT" }; - IfcDoorStyleOperationEnum.SLIDING_TO_RIGHT = { type: 3, value: "SLIDING_TO_RIGHT" }; - IfcDoorStyleOperationEnum.DOUBLE_DOOR_SLIDING = { type: 3, value: "DOUBLE_DOOR_SLIDING" }; - IfcDoorStyleOperationEnum.FOLDING_TO_LEFT = { type: 3, value: "FOLDING_TO_LEFT" }; - IfcDoorStyleOperationEnum.FOLDING_TO_RIGHT = { type: 3, value: "FOLDING_TO_RIGHT" }; - IfcDoorStyleOperationEnum.DOUBLE_DOOR_FOLDING = { type: 3, value: "DOUBLE_DOOR_FOLDING" }; - IfcDoorStyleOperationEnum.REVOLVING = { type: 3, value: "REVOLVING" }; - IfcDoorStyleOperationEnum.ROLLINGUP = { type: 3, value: "ROLLINGUP" }; - IfcDoorStyleOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDoorStyleOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcDoorStyleOperationEnum = IfcDoorStyleOperationEnum; - class IfcDuctFittingTypeEnum { + IFC2X32.IfcBoxedHalfSpace = IfcBoxedHalfSpace; + class IfcCShapeProfileDef extends IfcParameterizedProfileDef { + constructor(ProfileType, ProfileName, Position, Depth, Width, WallThickness, Girth, InternalFilletRadius, CentreOfGravityInX) { + super(ProfileType, ProfileName, Position); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.Depth = Depth; + this.Width = Width; + this.WallThickness = WallThickness; + this.Girth = Girth; + this.InternalFilletRadius = InternalFilletRadius; + this.CentreOfGravityInX = CentreOfGravityInX; + this.type = 2898889636; + } } - IfcDuctFittingTypeEnum.BEND = { type: 3, value: "BEND" }; - IfcDuctFittingTypeEnum.CONNECTOR = { type: 3, value: "CONNECTOR" }; - IfcDuctFittingTypeEnum.ENTRY = { type: 3, value: "ENTRY" }; - IfcDuctFittingTypeEnum.EXIT = { type: 3, value: "EXIT" }; - IfcDuctFittingTypeEnum.JUNCTION = { type: 3, value: "JUNCTION" }; - IfcDuctFittingTypeEnum.OBSTRUCTION = { type: 3, value: "OBSTRUCTION" }; - IfcDuctFittingTypeEnum.TRANSITION = { type: 3, value: "TRANSITION" }; - IfcDuctFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDuctFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcDuctFittingTypeEnum = IfcDuctFittingTypeEnum; - class IfcDuctSegmentTypeEnum { + IFC2X32.IfcCShapeProfileDef = IfcCShapeProfileDef; + class IfcCartesianPoint extends IfcPoint { + constructor(Coordinates) { + super(); + this.Coordinates = Coordinates; + this.type = 1123145078; + } } - IfcDuctSegmentTypeEnum.RIGIDSEGMENT = { type: 3, value: "RIGIDSEGMENT" }; - IfcDuctSegmentTypeEnum.FLEXIBLESEGMENT = { type: 3, value: "FLEXIBLESEGMENT" }; - IfcDuctSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDuctSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcDuctSegmentTypeEnum = IfcDuctSegmentTypeEnum; - class IfcDuctSilencerTypeEnum { + IFC2X32.IfcCartesianPoint = IfcCartesianPoint; + class IfcCartesianTransformationOperator extends IfcGeometricRepresentationItem { + constructor(Axis1, Axis2, LocalOrigin, Scale) { + super(); + this.Axis1 = Axis1; + this.Axis2 = Axis2; + this.LocalOrigin = LocalOrigin; + this.Scale = Scale; + this.type = 59481748; + } } - IfcDuctSilencerTypeEnum.FLATOVAL = { type: 3, value: "FLATOVAL" }; - IfcDuctSilencerTypeEnum.RECTANGULAR = { type: 3, value: "RECTANGULAR" }; - IfcDuctSilencerTypeEnum.ROUND = { type: 3, value: "ROUND" }; - IfcDuctSilencerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDuctSilencerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcDuctSilencerTypeEnum = IfcDuctSilencerTypeEnum; - class IfcElectricApplianceTypeEnum { + IFC2X32.IfcCartesianTransformationOperator = IfcCartesianTransformationOperator; + class IfcCartesianTransformationOperator2D extends IfcCartesianTransformationOperator { + constructor(Axis1, Axis2, LocalOrigin, Scale) { + super(Axis1, Axis2, LocalOrigin, Scale); + this.Axis1 = Axis1; + this.Axis2 = Axis2; + this.LocalOrigin = LocalOrigin; + this.Scale = Scale; + this.type = 3749851601; + } } - IfcElectricApplianceTypeEnum.COMPUTER = { type: 3, value: "COMPUTER" }; - IfcElectricApplianceTypeEnum.DIRECTWATERHEATER = { type: 3, value: "DIRECTWATERHEATER" }; - IfcElectricApplianceTypeEnum.DISHWASHER = { type: 3, value: "DISHWASHER" }; - IfcElectricApplianceTypeEnum.ELECTRICCOOKER = { type: 3, value: "ELECTRICCOOKER" }; - IfcElectricApplianceTypeEnum.ELECTRICHEATER = { type: 3, value: "ELECTRICHEATER" }; - IfcElectricApplianceTypeEnum.FACSIMILE = { type: 3, value: "FACSIMILE" }; - IfcElectricApplianceTypeEnum.FREESTANDINGFAN = { type: 3, value: "FREESTANDINGFAN" }; - IfcElectricApplianceTypeEnum.FREEZER = { type: 3, value: "FREEZER" }; - IfcElectricApplianceTypeEnum.FRIDGE_FREEZER = { type: 3, value: "FRIDGE_FREEZER" }; - IfcElectricApplianceTypeEnum.HANDDRYER = { type: 3, value: "HANDDRYER" }; - IfcElectricApplianceTypeEnum.INDIRECTWATERHEATER = { type: 3, value: "INDIRECTWATERHEATER" }; - IfcElectricApplianceTypeEnum.MICROWAVE = { type: 3, value: "MICROWAVE" }; - IfcElectricApplianceTypeEnum.PHOTOCOPIER = { type: 3, value: "PHOTOCOPIER" }; - IfcElectricApplianceTypeEnum.PRINTER = { type: 3, value: "PRINTER" }; - IfcElectricApplianceTypeEnum.REFRIGERATOR = { type: 3, value: "REFRIGERATOR" }; - IfcElectricApplianceTypeEnum.RADIANTHEATER = { type: 3, value: "RADIANTHEATER" }; - IfcElectricApplianceTypeEnum.SCANNER = { type: 3, value: "SCANNER" }; - IfcElectricApplianceTypeEnum.TELEPHONE = { type: 3, value: "TELEPHONE" }; - IfcElectricApplianceTypeEnum.TUMBLEDRYER = { type: 3, value: "TUMBLEDRYER" }; - IfcElectricApplianceTypeEnum.TV = { type: 3, value: "TV" }; - IfcElectricApplianceTypeEnum.VENDINGMACHINE = { type: 3, value: "VENDINGMACHINE" }; - IfcElectricApplianceTypeEnum.WASHINGMACHINE = { type: 3, value: "WASHINGMACHINE" }; - IfcElectricApplianceTypeEnum.WATERHEATER = { type: 3, value: "WATERHEATER" }; - IfcElectricApplianceTypeEnum.WATERCOOLER = { type: 3, value: "WATERCOOLER" }; - IfcElectricApplianceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcElectricApplianceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcElectricApplianceTypeEnum = IfcElectricApplianceTypeEnum; - class IfcElectricCurrentEnum { + IFC2X32.IfcCartesianTransformationOperator2D = IfcCartesianTransformationOperator2D; + class IfcCartesianTransformationOperator2DnonUniform extends IfcCartesianTransformationOperator2D { + constructor(Axis1, Axis2, LocalOrigin, Scale, Scale2) { + super(Axis1, Axis2, LocalOrigin, Scale); + this.Axis1 = Axis1; + this.Axis2 = Axis2; + this.LocalOrigin = LocalOrigin; + this.Scale = Scale; + this.Scale2 = Scale2; + this.type = 3486308946; + } } - IfcElectricCurrentEnum.ALTERNATING = { type: 3, value: "ALTERNATING" }; - IfcElectricCurrentEnum.DIRECT = { type: 3, value: "DIRECT" }; - IfcElectricCurrentEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcElectricCurrentEnum = IfcElectricCurrentEnum; - class IfcElectricDistributionPointFunctionEnum { + IFC2X32.IfcCartesianTransformationOperator2DnonUniform = IfcCartesianTransformationOperator2DnonUniform; + class IfcCartesianTransformationOperator3D extends IfcCartesianTransformationOperator { + constructor(Axis1, Axis2, LocalOrigin, Scale, Axis3) { + super(Axis1, Axis2, LocalOrigin, Scale); + this.Axis1 = Axis1; + this.Axis2 = Axis2; + this.LocalOrigin = LocalOrigin; + this.Scale = Scale; + this.Axis3 = Axis3; + this.type = 3331915920; + } } - IfcElectricDistributionPointFunctionEnum.ALARMPANEL = { type: 3, value: "ALARMPANEL" }; - IfcElectricDistributionPointFunctionEnum.CONSUMERUNIT = { type: 3, value: "CONSUMERUNIT" }; - IfcElectricDistributionPointFunctionEnum.CONTROLPANEL = { type: 3, value: "CONTROLPANEL" }; - IfcElectricDistributionPointFunctionEnum.DISTRIBUTIONBOARD = { type: 3, value: "DISTRIBUTIONBOARD" }; - IfcElectricDistributionPointFunctionEnum.GASDETECTORPANEL = { type: 3, value: "GASDETECTORPANEL" }; - IfcElectricDistributionPointFunctionEnum.INDICATORPANEL = { type: 3, value: "INDICATORPANEL" }; - IfcElectricDistributionPointFunctionEnum.MIMICPANEL = { type: 3, value: "MIMICPANEL" }; - IfcElectricDistributionPointFunctionEnum.MOTORCONTROLCENTRE = { type: 3, value: "MOTORCONTROLCENTRE" }; - IfcElectricDistributionPointFunctionEnum.SWITCHBOARD = { type: 3, value: "SWITCHBOARD" }; - IfcElectricDistributionPointFunctionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcElectricDistributionPointFunctionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcElectricDistributionPointFunctionEnum = IfcElectricDistributionPointFunctionEnum; - class IfcElectricFlowStorageDeviceTypeEnum { + IFC2X32.IfcCartesianTransformationOperator3D = IfcCartesianTransformationOperator3D; + class IfcCartesianTransformationOperator3DnonUniform extends IfcCartesianTransformationOperator3D { + constructor(Axis1, Axis2, LocalOrigin, Scale, Axis3, Scale2, Scale3) { + super(Axis1, Axis2, LocalOrigin, Scale, Axis3); + this.Axis1 = Axis1; + this.Axis2 = Axis2; + this.LocalOrigin = LocalOrigin; + this.Scale = Scale; + this.Axis3 = Axis3; + this.Scale2 = Scale2; + this.Scale3 = Scale3; + this.type = 1416205885; + } } - IfcElectricFlowStorageDeviceTypeEnum.BATTERY = { type: 3, value: "BATTERY" }; - IfcElectricFlowStorageDeviceTypeEnum.CAPACITORBANK = { type: 3, value: "CAPACITORBANK" }; - IfcElectricFlowStorageDeviceTypeEnum.HARMONICFILTER = { type: 3, value: "HARMONICFILTER" }; - IfcElectricFlowStorageDeviceTypeEnum.INDUCTORBANK = { type: 3, value: "INDUCTORBANK" }; - IfcElectricFlowStorageDeviceTypeEnum.UPS = { type: 3, value: "UPS" }; - IfcElectricFlowStorageDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcElectricFlowStorageDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcElectricFlowStorageDeviceTypeEnum = IfcElectricFlowStorageDeviceTypeEnum; - class IfcElectricGeneratorTypeEnum { + IFC2X32.IfcCartesianTransformationOperator3DnonUniform = IfcCartesianTransformationOperator3DnonUniform; + class IfcCircleProfileDef extends IfcParameterizedProfileDef { + constructor(ProfileType, ProfileName, Position, Radius) { + super(ProfileType, ProfileName, Position); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.Radius = Radius; + this.type = 1383045692; + } } - IfcElectricGeneratorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcElectricGeneratorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcElectricGeneratorTypeEnum = IfcElectricGeneratorTypeEnum; - class IfcElectricHeaterTypeEnum { + IFC2X32.IfcCircleProfileDef = IfcCircleProfileDef; + class IfcClosedShell extends IfcConnectedFaceSet { + constructor(CfsFaces) { + super(CfsFaces); + this.CfsFaces = CfsFaces; + this.type = 2205249479; + } } - IfcElectricHeaterTypeEnum.ELECTRICPOINTHEATER = { type: 3, value: "ELECTRICPOINTHEATER" }; - IfcElectricHeaterTypeEnum.ELECTRICCABLEHEATER = { type: 3, value: "ELECTRICCABLEHEATER" }; - IfcElectricHeaterTypeEnum.ELECTRICMATHEATER = { type: 3, value: "ELECTRICMATHEATER" }; - IfcElectricHeaterTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcElectricHeaterTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcElectricHeaterTypeEnum = IfcElectricHeaterTypeEnum; - class IfcElectricMotorTypeEnum { + IFC2X32.IfcClosedShell = IfcClosedShell; + class IfcCompositeCurveSegment extends IfcGeometricRepresentationItem { + constructor(Transition, SameSense, ParentCurve) { + super(); + this.Transition = Transition; + this.SameSense = SameSense; + this.ParentCurve = ParentCurve; + this.type = 2485617015; + } } - IfcElectricMotorTypeEnum.DC = { type: 3, value: "DC" }; - IfcElectricMotorTypeEnum.INDUCTION = { type: 3, value: "INDUCTION" }; - IfcElectricMotorTypeEnum.POLYPHASE = { type: 3, value: "POLYPHASE" }; - IfcElectricMotorTypeEnum.RELUCTANCESYNCHRONOUS = { type: 3, value: "RELUCTANCESYNCHRONOUS" }; - IfcElectricMotorTypeEnum.SYNCHRONOUS = { type: 3, value: "SYNCHRONOUS" }; - IfcElectricMotorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcElectricMotorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcElectricMotorTypeEnum = IfcElectricMotorTypeEnum; - class IfcElectricTimeControlTypeEnum { + IFC2X32.IfcCompositeCurveSegment = IfcCompositeCurveSegment; + class IfcCraneRailAShapeProfileDef extends IfcParameterizedProfileDef { + constructor(ProfileType, ProfileName, Position, OverallHeight, BaseWidth2, Radius, HeadWidth, HeadDepth2, HeadDepth3, WebThickness, BaseWidth4, BaseDepth1, BaseDepth2, BaseDepth3, CentreOfGravityInY) { + super(ProfileType, ProfileName, Position); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.OverallHeight = OverallHeight; + this.BaseWidth2 = BaseWidth2; + this.Radius = Radius; + this.HeadWidth = HeadWidth; + this.HeadDepth2 = HeadDepth2; + this.HeadDepth3 = HeadDepth3; + this.WebThickness = WebThickness; + this.BaseWidth4 = BaseWidth4; + this.BaseDepth1 = BaseDepth1; + this.BaseDepth2 = BaseDepth2; + this.BaseDepth3 = BaseDepth3; + this.CentreOfGravityInY = CentreOfGravityInY; + this.type = 4133800736; + } } - IfcElectricTimeControlTypeEnum.TIMECLOCK = { type: 3, value: "TIMECLOCK" }; - IfcElectricTimeControlTypeEnum.TIMEDELAY = { type: 3, value: "TIMEDELAY" }; - IfcElectricTimeControlTypeEnum.RELAY = { type: 3, value: "RELAY" }; - IfcElectricTimeControlTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcElectricTimeControlTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcElectricTimeControlTypeEnum = IfcElectricTimeControlTypeEnum; - class IfcElementAssemblyTypeEnum { + IFC2X32.IfcCraneRailAShapeProfileDef = IfcCraneRailAShapeProfileDef; + class IfcCraneRailFShapeProfileDef extends IfcParameterizedProfileDef { + constructor(ProfileType, ProfileName, Position, OverallHeight, HeadWidth, Radius, HeadDepth2, HeadDepth3, WebThickness, BaseDepth1, BaseDepth2, CentreOfGravityInY) { + super(ProfileType, ProfileName, Position); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.OverallHeight = OverallHeight; + this.HeadWidth = HeadWidth; + this.Radius = Radius; + this.HeadDepth2 = HeadDepth2; + this.HeadDepth3 = HeadDepth3; + this.WebThickness = WebThickness; + this.BaseDepth1 = BaseDepth1; + this.BaseDepth2 = BaseDepth2; + this.CentreOfGravityInY = CentreOfGravityInY; + this.type = 194851669; + } } - IfcElementAssemblyTypeEnum.ACCESSORY_ASSEMBLY = { type: 3, value: "ACCESSORY_ASSEMBLY" }; - IfcElementAssemblyTypeEnum.ARCH = { type: 3, value: "ARCH" }; - IfcElementAssemblyTypeEnum.BEAM_GRID = { type: 3, value: "BEAM_GRID" }; - IfcElementAssemblyTypeEnum.BRACED_FRAME = { type: 3, value: "BRACED_FRAME" }; - IfcElementAssemblyTypeEnum.GIRDER = { type: 3, value: "GIRDER" }; - IfcElementAssemblyTypeEnum.REINFORCEMENT_UNIT = { type: 3, value: "REINFORCEMENT_UNIT" }; - IfcElementAssemblyTypeEnum.RIGID_FRAME = { type: 3, value: "RIGID_FRAME" }; - IfcElementAssemblyTypeEnum.SLAB_FIELD = { type: 3, value: "SLAB_FIELD" }; - IfcElementAssemblyTypeEnum.TRUSS = { type: 3, value: "TRUSS" }; - IfcElementAssemblyTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcElementAssemblyTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcElementAssemblyTypeEnum = IfcElementAssemblyTypeEnum; - class IfcElementCompositionEnum { + IFC2X32.IfcCraneRailFShapeProfileDef = IfcCraneRailFShapeProfileDef; + class IfcCsgPrimitive3D extends IfcGeometricRepresentationItem { + constructor(Position) { + super(); + this.Position = Position; + this.type = 2506170314; + } } - IfcElementCompositionEnum.COMPLEX = { type: 3, value: "COMPLEX" }; - IfcElementCompositionEnum.ELEMENT = { type: 3, value: "ELEMENT" }; - IfcElementCompositionEnum.PARTIAL = { type: 3, value: "PARTIAL" }; - IFC2X32.IfcElementCompositionEnum = IfcElementCompositionEnum; - class IfcEnergySequenceEnum { + IFC2X32.IfcCsgPrimitive3D = IfcCsgPrimitive3D; + class IfcCsgSolid extends IfcSolidModel { + constructor(TreeRootExpression) { + super(); + this.TreeRootExpression = TreeRootExpression; + this.type = 2147822146; + } } - IfcEnergySequenceEnum.PRIMARY = { type: 3, value: "PRIMARY" }; - IfcEnergySequenceEnum.SECONDARY = { type: 3, value: "SECONDARY" }; - IfcEnergySequenceEnum.TERTIARY = { type: 3, value: "TERTIARY" }; - IfcEnergySequenceEnum.AUXILIARY = { type: 3, value: "AUXILIARY" }; - IfcEnergySequenceEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcEnergySequenceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcEnergySequenceEnum = IfcEnergySequenceEnum; - class IfcEnvironmentalImpactCategoryEnum { + IFC2X32.IfcCsgSolid = IfcCsgSolid; + class IfcCurve extends IfcGeometricRepresentationItem { + constructor() { + super(); + this.type = 2601014836; + } } - IfcEnvironmentalImpactCategoryEnum.COMBINEDVALUE = { type: 3, value: "COMBINEDVALUE" }; - IfcEnvironmentalImpactCategoryEnum.DISPOSAL = { type: 3, value: "DISPOSAL" }; - IfcEnvironmentalImpactCategoryEnum.EXTRACTION = { type: 3, value: "EXTRACTION" }; - IfcEnvironmentalImpactCategoryEnum.INSTALLATION = { type: 3, value: "INSTALLATION" }; - IfcEnvironmentalImpactCategoryEnum.MANUFACTURE = { type: 3, value: "MANUFACTURE" }; - IfcEnvironmentalImpactCategoryEnum.TRANSPORTATION = { type: 3, value: "TRANSPORTATION" }; - IfcEnvironmentalImpactCategoryEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcEnvironmentalImpactCategoryEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcEnvironmentalImpactCategoryEnum = IfcEnvironmentalImpactCategoryEnum; - class IfcEvaporativeCoolerTypeEnum { + IFC2X32.IfcCurve = IfcCurve; + class IfcCurveBoundedPlane extends IfcBoundedSurface { + constructor(BasisSurface, OuterBoundary, InnerBoundaries) { + super(); + this.BasisSurface = BasisSurface; + this.OuterBoundary = OuterBoundary; + this.InnerBoundaries = InnerBoundaries; + this.type = 2827736869; + } } - IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER" }; - IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER" }; - IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER" }; - IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER" }; - IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEAIRWASHER = { type: 3, value: "DIRECTEVAPORATIVEAIRWASHER" }; - IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEPACKAGEAIRCOOLER = { type: 3, value: "INDIRECTEVAPORATIVEPACKAGEAIRCOOLER" }; - IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEWETCOIL = { type: 3, value: "INDIRECTEVAPORATIVEWETCOIL" }; - IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER = { type: 3, value: "INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER" }; - IfcEvaporativeCoolerTypeEnum.INDIRECTDIRECTCOMBINATION = { type: 3, value: "INDIRECTDIRECTCOMBINATION" }; - IfcEvaporativeCoolerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcEvaporativeCoolerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcEvaporativeCoolerTypeEnum = IfcEvaporativeCoolerTypeEnum; - class IfcEvaporatorTypeEnum { + IFC2X32.IfcCurveBoundedPlane = IfcCurveBoundedPlane; + class IfcDefinedSymbol extends IfcGeometricRepresentationItem { + constructor(Definition, Target) { + super(); + this.Definition = Definition; + this.Target = Target; + this.type = 693772133; + } } - IfcEvaporatorTypeEnum.DIRECTEXPANSIONSHELLANDTUBE = { type: 3, value: "DIRECTEXPANSIONSHELLANDTUBE" }; - IfcEvaporatorTypeEnum.DIRECTEXPANSIONTUBEINTUBE = { type: 3, value: "DIRECTEXPANSIONTUBEINTUBE" }; - IfcEvaporatorTypeEnum.DIRECTEXPANSIONBRAZEDPLATE = { type: 3, value: "DIRECTEXPANSIONBRAZEDPLATE" }; - IfcEvaporatorTypeEnum.FLOODEDSHELLANDTUBE = { type: 3, value: "FLOODEDSHELLANDTUBE" }; - IfcEvaporatorTypeEnum.SHELLANDCOIL = { type: 3, value: "SHELLANDCOIL" }; - IfcEvaporatorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcEvaporatorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcEvaporatorTypeEnum = IfcEvaporatorTypeEnum; - class IfcFanTypeEnum { + IFC2X32.IfcDefinedSymbol = IfcDefinedSymbol; + class IfcDimensionCurve extends IfcAnnotationCurveOccurrence { + constructor(Item, Styles, Name) { + super(Item, Styles, Name); + this.Item = Item; + this.Styles = Styles; + this.Name = Name; + this.type = 606661476; + } } - IfcFanTypeEnum.CENTRIFUGALFORWARDCURVED = { type: 3, value: "CENTRIFUGALFORWARDCURVED" }; - IfcFanTypeEnum.CENTRIFUGALRADIAL = { type: 3, value: "CENTRIFUGALRADIAL" }; - IfcFanTypeEnum.CENTRIFUGALBACKWARDINCLINEDCURVED = { type: 3, value: "CENTRIFUGALBACKWARDINCLINEDCURVED" }; - IfcFanTypeEnum.CENTRIFUGALAIRFOIL = { type: 3, value: "CENTRIFUGALAIRFOIL" }; - IfcFanTypeEnum.TUBEAXIAL = { type: 3, value: "TUBEAXIAL" }; - IfcFanTypeEnum.VANEAXIAL = { type: 3, value: "VANEAXIAL" }; - IfcFanTypeEnum.PROPELLORAXIAL = { type: 3, value: "PROPELLORAXIAL" }; - IfcFanTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcFanTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcFanTypeEnum = IfcFanTypeEnum; - class IfcFilterTypeEnum { + IFC2X32.IfcDimensionCurve = IfcDimensionCurve; + class IfcDimensionCurveTerminator extends IfcTerminatorSymbol { + constructor(Item, Styles, Name, AnnotatedCurve, Role) { + super(Item, Styles, Name, AnnotatedCurve); + this.Item = Item; + this.Styles = Styles; + this.Name = Name; + this.AnnotatedCurve = AnnotatedCurve; + this.Role = Role; + this.type = 4054601972; + } } - IfcFilterTypeEnum.AIRPARTICLEFILTER = { type: 3, value: "AIRPARTICLEFILTER" }; - IfcFilterTypeEnum.ODORFILTER = { type: 3, value: "ODORFILTER" }; - IfcFilterTypeEnum.OILFILTER = { type: 3, value: "OILFILTER" }; - IfcFilterTypeEnum.STRAINER = { type: 3, value: "STRAINER" }; - IfcFilterTypeEnum.WATERFILTER = { type: 3, value: "WATERFILTER" }; - IfcFilterTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcFilterTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcFilterTypeEnum = IfcFilterTypeEnum; - class IfcFireSuppressionTerminalTypeEnum { + IFC2X32.IfcDimensionCurveTerminator = IfcDimensionCurveTerminator; + class IfcDirection extends IfcGeometricRepresentationItem { + constructor(DirectionRatios) { + super(); + this.DirectionRatios = DirectionRatios; + this.type = 32440307; + } } - IfcFireSuppressionTerminalTypeEnum.BREECHINGINLET = { type: 3, value: "BREECHINGINLET" }; - IfcFireSuppressionTerminalTypeEnum.FIREHYDRANT = { type: 3, value: "FIREHYDRANT" }; - IfcFireSuppressionTerminalTypeEnum.HOSEREEL = { type: 3, value: "HOSEREEL" }; - IfcFireSuppressionTerminalTypeEnum.SPRINKLER = { type: 3, value: "SPRINKLER" }; - IfcFireSuppressionTerminalTypeEnum.SPRINKLERDEFLECTOR = { type: 3, value: "SPRINKLERDEFLECTOR" }; - IfcFireSuppressionTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcFireSuppressionTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcFireSuppressionTerminalTypeEnum = IfcFireSuppressionTerminalTypeEnum; - class IfcFlowDirectionEnum { + IFC2X32.IfcDirection = IfcDirection; + class IfcDoorLiningProperties extends IfcPropertySetDefinition { + constructor(GlobalId, OwnerHistory, Name, Description, LiningDepth, LiningThickness, ThresholdDepth, ThresholdThickness, TransomThickness, TransomOffset, LiningOffset, ThresholdOffset, CasingThickness, CasingDepth, ShapeAspectStyle) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.LiningDepth = LiningDepth; + this.LiningThickness = LiningThickness; + this.ThresholdDepth = ThresholdDepth; + this.ThresholdThickness = ThresholdThickness; + this.TransomThickness = TransomThickness; + this.TransomOffset = TransomOffset; + this.LiningOffset = LiningOffset; + this.ThresholdOffset = ThresholdOffset; + this.CasingThickness = CasingThickness; + this.CasingDepth = CasingDepth; + this.ShapeAspectStyle = ShapeAspectStyle; + this.type = 2963535650; + } } - IfcFlowDirectionEnum.SOURCE = { type: 3, value: "SOURCE" }; - IfcFlowDirectionEnum.SINK = { type: 3, value: "SINK" }; - IfcFlowDirectionEnum.SOURCEANDSINK = { type: 3, value: "SOURCEANDSINK" }; - IfcFlowDirectionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcFlowDirectionEnum = IfcFlowDirectionEnum; - class IfcFlowInstrumentTypeEnum { + IFC2X32.IfcDoorLiningProperties = IfcDoorLiningProperties; + class IfcDoorPanelProperties extends IfcPropertySetDefinition { + constructor(GlobalId, OwnerHistory, Name, Description, PanelDepth, PanelOperation, PanelWidth, PanelPosition, ShapeAspectStyle) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.PanelDepth = PanelDepth; + this.PanelOperation = PanelOperation; + this.PanelWidth = PanelWidth; + this.PanelPosition = PanelPosition; + this.ShapeAspectStyle = ShapeAspectStyle; + this.type = 1714330368; + } } - IfcFlowInstrumentTypeEnum.PRESSUREGAUGE = { type: 3, value: "PRESSUREGAUGE" }; - IfcFlowInstrumentTypeEnum.THERMOMETER = { type: 3, value: "THERMOMETER" }; - IfcFlowInstrumentTypeEnum.AMMETER = { type: 3, value: "AMMETER" }; - IfcFlowInstrumentTypeEnum.FREQUENCYMETER = { type: 3, value: "FREQUENCYMETER" }; - IfcFlowInstrumentTypeEnum.POWERFACTORMETER = { type: 3, value: "POWERFACTORMETER" }; - IfcFlowInstrumentTypeEnum.PHASEANGLEMETER = { type: 3, value: "PHASEANGLEMETER" }; - IfcFlowInstrumentTypeEnum.VOLTMETER_PEAK = { type: 3, value: "VOLTMETER_PEAK" }; - IfcFlowInstrumentTypeEnum.VOLTMETER_RMS = { type: 3, value: "VOLTMETER_RMS" }; - IfcFlowInstrumentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcFlowInstrumentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcFlowInstrumentTypeEnum = IfcFlowInstrumentTypeEnum; - class IfcFlowMeterTypeEnum { + IFC2X32.IfcDoorPanelProperties = IfcDoorPanelProperties; + class IfcDoorStyle extends IfcTypeProduct { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, OperationType, ConstructionType, ParameterTakesPrecedence, Sizeable) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.OperationType = OperationType; + this.ConstructionType = ConstructionType; + this.ParameterTakesPrecedence = ParameterTakesPrecedence; + this.Sizeable = Sizeable; + this.type = 526551008; + } } - IfcFlowMeterTypeEnum.ELECTRICMETER = { type: 3, value: "ELECTRICMETER" }; - IfcFlowMeterTypeEnum.ENERGYMETER = { type: 3, value: "ENERGYMETER" }; - IfcFlowMeterTypeEnum.FLOWMETER = { type: 3, value: "FLOWMETER" }; - IfcFlowMeterTypeEnum.GASMETER = { type: 3, value: "GASMETER" }; - IfcFlowMeterTypeEnum.OILMETER = { type: 3, value: "OILMETER" }; - IfcFlowMeterTypeEnum.WATERMETER = { type: 3, value: "WATERMETER" }; - IfcFlowMeterTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcFlowMeterTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcFlowMeterTypeEnum = IfcFlowMeterTypeEnum; - class IfcFootingTypeEnum { + IFC2X32.IfcDoorStyle = IfcDoorStyle; + class IfcDraughtingCallout extends IfcGeometricRepresentationItem { + constructor(Contents) { + super(); + this.Contents = Contents; + this.type = 3073041342; + } } - IfcFootingTypeEnum.FOOTING_BEAM = { type: 3, value: "FOOTING_BEAM" }; - IfcFootingTypeEnum.PAD_FOOTING = { type: 3, value: "PAD_FOOTING" }; - IfcFootingTypeEnum.PILE_CAP = { type: 3, value: "PILE_CAP" }; - IfcFootingTypeEnum.STRIP_FOOTING = { type: 3, value: "STRIP_FOOTING" }; - IfcFootingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcFootingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcFootingTypeEnum = IfcFootingTypeEnum; - class IfcGasTerminalTypeEnum { + IFC2X32.IfcDraughtingCallout = IfcDraughtingCallout; + class IfcDraughtingPreDefinedColour extends IfcPreDefinedColour { + constructor(Name) { + super(Name); + this.Name = Name; + this.type = 445594917; + } } - IfcGasTerminalTypeEnum.GASAPPLIANCE = { type: 3, value: "GASAPPLIANCE" }; - IfcGasTerminalTypeEnum.GASBOOSTER = { type: 3, value: "GASBOOSTER" }; - IfcGasTerminalTypeEnum.GASBURNER = { type: 3, value: "GASBURNER" }; - IfcGasTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcGasTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcGasTerminalTypeEnum = IfcGasTerminalTypeEnum; - class IfcGeometricProjectionEnum { + IFC2X32.IfcDraughtingPreDefinedColour = IfcDraughtingPreDefinedColour; + class IfcDraughtingPreDefinedCurveFont extends IfcPreDefinedCurveFont { + constructor(Name) { + super(Name); + this.Name = Name; + this.type = 4006246654; + } } - IfcGeometricProjectionEnum.GRAPH_VIEW = { type: 3, value: "GRAPH_VIEW" }; - IfcGeometricProjectionEnum.SKETCH_VIEW = { type: 3, value: "SKETCH_VIEW" }; - IfcGeometricProjectionEnum.MODEL_VIEW = { type: 3, value: "MODEL_VIEW" }; - IfcGeometricProjectionEnum.PLAN_VIEW = { type: 3, value: "PLAN_VIEW" }; - IfcGeometricProjectionEnum.REFLECTED_PLAN_VIEW = { type: 3, value: "REFLECTED_PLAN_VIEW" }; - IfcGeometricProjectionEnum.SECTION_VIEW = { type: 3, value: "SECTION_VIEW" }; - IfcGeometricProjectionEnum.ELEVATION_VIEW = { type: 3, value: "ELEVATION_VIEW" }; - IfcGeometricProjectionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcGeometricProjectionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcGeometricProjectionEnum = IfcGeometricProjectionEnum; - class IfcGlobalOrLocalEnum { + IFC2X32.IfcDraughtingPreDefinedCurveFont = IfcDraughtingPreDefinedCurveFont; + class IfcEdgeLoop extends IfcLoop { + constructor(EdgeList) { + super(); + this.EdgeList = EdgeList; + this.type = 1472233963; + } } - IfcGlobalOrLocalEnum.GLOBAL_COORDS = { type: 3, value: "GLOBAL_COORDS" }; - IfcGlobalOrLocalEnum.LOCAL_COORDS = { type: 3, value: "LOCAL_COORDS" }; - IFC2X32.IfcGlobalOrLocalEnum = IfcGlobalOrLocalEnum; - class IfcHeatExchangerTypeEnum { + IFC2X32.IfcEdgeLoop = IfcEdgeLoop; + class IfcElementQuantity extends IfcPropertySetDefinition { + constructor(GlobalId, OwnerHistory, Name, Description, MethodOfMeasurement, Quantities) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.MethodOfMeasurement = MethodOfMeasurement; + this.Quantities = Quantities; + this.type = 1883228015; + } } - IfcHeatExchangerTypeEnum.PLATE = { type: 3, value: "PLATE" }; - IfcHeatExchangerTypeEnum.SHELLANDTUBE = { type: 3, value: "SHELLANDTUBE" }; - IfcHeatExchangerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcHeatExchangerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcHeatExchangerTypeEnum = IfcHeatExchangerTypeEnum; - class IfcHumidifierTypeEnum { + IFC2X32.IfcElementQuantity = IfcElementQuantity; + class IfcElementType extends IfcTypeProduct { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 339256511; + } + } + IFC2X32.IfcElementType = IfcElementType; + class IfcElementarySurface extends IfcSurface { + constructor(Position) { + super(); + this.Position = Position; + this.type = 2777663545; + } } - IfcHumidifierTypeEnum.STEAMINJECTION = { type: 3, value: "STEAMINJECTION" }; - IfcHumidifierTypeEnum.ADIABATICAIRWASHER = { type: 3, value: "ADIABATICAIRWASHER" }; - IfcHumidifierTypeEnum.ADIABATICPAN = { type: 3, value: "ADIABATICPAN" }; - IfcHumidifierTypeEnum.ADIABATICWETTEDELEMENT = { type: 3, value: "ADIABATICWETTEDELEMENT" }; - IfcHumidifierTypeEnum.ADIABATICATOMIZING = { type: 3, value: "ADIABATICATOMIZING" }; - IfcHumidifierTypeEnum.ADIABATICULTRASONIC = { type: 3, value: "ADIABATICULTRASONIC" }; - IfcHumidifierTypeEnum.ADIABATICRIGIDMEDIA = { type: 3, value: "ADIABATICRIGIDMEDIA" }; - IfcHumidifierTypeEnum.ADIABATICCOMPRESSEDAIRNOZZLE = { type: 3, value: "ADIABATICCOMPRESSEDAIRNOZZLE" }; - IfcHumidifierTypeEnum.ASSISTEDELECTRIC = { type: 3, value: "ASSISTEDELECTRIC" }; - IfcHumidifierTypeEnum.ASSISTEDNATURALGAS = { type: 3, value: "ASSISTEDNATURALGAS" }; - IfcHumidifierTypeEnum.ASSISTEDPROPANE = { type: 3, value: "ASSISTEDPROPANE" }; - IfcHumidifierTypeEnum.ASSISTEDBUTANE = { type: 3, value: "ASSISTEDBUTANE" }; - IfcHumidifierTypeEnum.ASSISTEDSTEAM = { type: 3, value: "ASSISTEDSTEAM" }; - IfcHumidifierTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcHumidifierTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcHumidifierTypeEnum = IfcHumidifierTypeEnum; - class IfcInternalOrExternalEnum { + IFC2X32.IfcElementarySurface = IfcElementarySurface; + class IfcEllipseProfileDef extends IfcParameterizedProfileDef { + constructor(ProfileType, ProfileName, Position, SemiAxis1, SemiAxis2) { + super(ProfileType, ProfileName, Position); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.SemiAxis1 = SemiAxis1; + this.SemiAxis2 = SemiAxis2; + this.type = 2835456948; + } } - IfcInternalOrExternalEnum.INTERNAL = { type: 3, value: "INTERNAL" }; - IfcInternalOrExternalEnum.EXTERNAL = { type: 3, value: "EXTERNAL" }; - IfcInternalOrExternalEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcInternalOrExternalEnum = IfcInternalOrExternalEnum; - class IfcInventoryTypeEnum { + IFC2X32.IfcEllipseProfileDef = IfcEllipseProfileDef; + class IfcEnergyProperties extends IfcPropertySetDefinition { + constructor(GlobalId, OwnerHistory, Name, Description, EnergySequence, UserDefinedEnergySequence) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.EnergySequence = EnergySequence; + this.UserDefinedEnergySequence = UserDefinedEnergySequence; + this.type = 80994333; + } } - IfcInventoryTypeEnum.ASSETINVENTORY = { type: 3, value: "ASSETINVENTORY" }; - IfcInventoryTypeEnum.SPACEINVENTORY = { type: 3, value: "SPACEINVENTORY" }; - IfcInventoryTypeEnum.FURNITUREINVENTORY = { type: 3, value: "FURNITUREINVENTORY" }; - IfcInventoryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcInventoryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcInventoryTypeEnum = IfcInventoryTypeEnum; - class IfcJunctionBoxTypeEnum { + IFC2X32.IfcEnergyProperties = IfcEnergyProperties; + class IfcExtrudedAreaSolid extends IfcSweptAreaSolid { + constructor(SweptArea, Position, ExtrudedDirection, Depth) { + super(SweptArea, Position); + this.SweptArea = SweptArea; + this.Position = Position; + this.ExtrudedDirection = ExtrudedDirection; + this.Depth = Depth; + this.type = 477187591; + } } - IfcJunctionBoxTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcJunctionBoxTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcJunctionBoxTypeEnum = IfcJunctionBoxTypeEnum; - class IfcLampTypeEnum { + IFC2X32.IfcExtrudedAreaSolid = IfcExtrudedAreaSolid; + class IfcFaceBasedSurfaceModel extends IfcGeometricRepresentationItem { + constructor(FbsmFaces) { + super(); + this.FbsmFaces = FbsmFaces; + this.type = 2047409740; + } } - IfcLampTypeEnum.COMPACTFLUORESCENT = { type: 3, value: "COMPACTFLUORESCENT" }; - IfcLampTypeEnum.FLUORESCENT = { type: 3, value: "FLUORESCENT" }; - IfcLampTypeEnum.HIGHPRESSUREMERCURY = { type: 3, value: "HIGHPRESSUREMERCURY" }; - IfcLampTypeEnum.HIGHPRESSURESODIUM = { type: 3, value: "HIGHPRESSURESODIUM" }; - IfcLampTypeEnum.METALHALIDE = { type: 3, value: "METALHALIDE" }; - IfcLampTypeEnum.TUNGSTENFILAMENT = { type: 3, value: "TUNGSTENFILAMENT" }; - IfcLampTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcLampTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcLampTypeEnum = IfcLampTypeEnum; - class IfcLayerSetDirectionEnum { + IFC2X32.IfcFaceBasedSurfaceModel = IfcFaceBasedSurfaceModel; + class IfcFillAreaStyleHatching extends IfcGeometricRepresentationItem { + constructor(HatchLineAppearance, StartOfNextHatchLine, PointOfReferenceHatchLine, PatternStart, HatchLineAngle) { + super(); + this.HatchLineAppearance = HatchLineAppearance; + this.StartOfNextHatchLine = StartOfNextHatchLine; + this.PointOfReferenceHatchLine = PointOfReferenceHatchLine; + this.PatternStart = PatternStart; + this.HatchLineAngle = HatchLineAngle; + this.type = 374418227; + } } - IfcLayerSetDirectionEnum.AXIS1 = { type: 3, value: "AXIS1" }; - IfcLayerSetDirectionEnum.AXIS2 = { type: 3, value: "AXIS2" }; - IfcLayerSetDirectionEnum.AXIS3 = { type: 3, value: "AXIS3" }; - IFC2X32.IfcLayerSetDirectionEnum = IfcLayerSetDirectionEnum; - class IfcLightDistributionCurveEnum { + IFC2X32.IfcFillAreaStyleHatching = IfcFillAreaStyleHatching; + class IfcFillAreaStyleTileSymbolWithStyle extends IfcGeometricRepresentationItem { + constructor(Symbol2) { + super(); + this.Symbol = Symbol2; + this.type = 4203026998; + } } - IfcLightDistributionCurveEnum.TYPE_A = { type: 3, value: "TYPE_A" }; - IfcLightDistributionCurveEnum.TYPE_B = { type: 3, value: "TYPE_B" }; - IfcLightDistributionCurveEnum.TYPE_C = { type: 3, value: "TYPE_C" }; - IfcLightDistributionCurveEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcLightDistributionCurveEnum = IfcLightDistributionCurveEnum; - class IfcLightEmissionSourceEnum { + IFC2X32.IfcFillAreaStyleTileSymbolWithStyle = IfcFillAreaStyleTileSymbolWithStyle; + class IfcFillAreaStyleTiles extends IfcGeometricRepresentationItem { + constructor(TilingPattern, Tiles, TilingScale) { + super(); + this.TilingPattern = TilingPattern; + this.Tiles = Tiles; + this.TilingScale = TilingScale; + this.type = 315944413; + } } - IfcLightEmissionSourceEnum.COMPACTFLUORESCENT = { type: 3, value: "COMPACTFLUORESCENT" }; - IfcLightEmissionSourceEnum.FLUORESCENT = { type: 3, value: "FLUORESCENT" }; - IfcLightEmissionSourceEnum.HIGHPRESSUREMERCURY = { type: 3, value: "HIGHPRESSUREMERCURY" }; - IfcLightEmissionSourceEnum.HIGHPRESSURESODIUM = { type: 3, value: "HIGHPRESSURESODIUM" }; - IfcLightEmissionSourceEnum.LIGHTEMITTINGDIODE = { type: 3, value: "LIGHTEMITTINGDIODE" }; - IfcLightEmissionSourceEnum.LOWPRESSURESODIUM = { type: 3, value: "LOWPRESSURESODIUM" }; - IfcLightEmissionSourceEnum.LOWVOLTAGEHALOGEN = { type: 3, value: "LOWVOLTAGEHALOGEN" }; - IfcLightEmissionSourceEnum.MAINVOLTAGEHALOGEN = { type: 3, value: "MAINVOLTAGEHALOGEN" }; - IfcLightEmissionSourceEnum.METALHALIDE = { type: 3, value: "METALHALIDE" }; - IfcLightEmissionSourceEnum.TUNGSTENFILAMENT = { type: 3, value: "TUNGSTENFILAMENT" }; - IfcLightEmissionSourceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcLightEmissionSourceEnum = IfcLightEmissionSourceEnum; - class IfcLightFixtureTypeEnum { + IFC2X32.IfcFillAreaStyleTiles = IfcFillAreaStyleTiles; + class IfcFluidFlowProperties extends IfcPropertySetDefinition { + constructor(GlobalId, OwnerHistory, Name, Description, PropertySource, FlowConditionTimeSeries, VelocityTimeSeries, FlowrateTimeSeries, Fluid, PressureTimeSeries, UserDefinedPropertySource, TemperatureSingleValue, WetBulbTemperatureSingleValue, WetBulbTemperatureTimeSeries, TemperatureTimeSeries, FlowrateSingleValue, FlowConditionSingleValue, VelocitySingleValue, PressureSingleValue) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.PropertySource = PropertySource; + this.FlowConditionTimeSeries = FlowConditionTimeSeries; + this.VelocityTimeSeries = VelocityTimeSeries; + this.FlowrateTimeSeries = FlowrateTimeSeries; + this.Fluid = Fluid; + this.PressureTimeSeries = PressureTimeSeries; + this.UserDefinedPropertySource = UserDefinedPropertySource; + this.TemperatureSingleValue = TemperatureSingleValue; + this.WetBulbTemperatureSingleValue = WetBulbTemperatureSingleValue; + this.WetBulbTemperatureTimeSeries = WetBulbTemperatureTimeSeries; + this.TemperatureTimeSeries = TemperatureTimeSeries; + this.FlowrateSingleValue = FlowrateSingleValue; + this.FlowConditionSingleValue = FlowConditionSingleValue; + this.VelocitySingleValue = VelocitySingleValue; + this.PressureSingleValue = PressureSingleValue; + this.type = 3455213021; + } } - IfcLightFixtureTypeEnum.POINTSOURCE = { type: 3, value: "POINTSOURCE" }; - IfcLightFixtureTypeEnum.DIRECTIONSOURCE = { type: 3, value: "DIRECTIONSOURCE" }; - IfcLightFixtureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcLightFixtureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcLightFixtureTypeEnum = IfcLightFixtureTypeEnum; - class IfcLoadGroupTypeEnum { + IFC2X32.IfcFluidFlowProperties = IfcFluidFlowProperties; + class IfcFurnishingElementType extends IfcElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 4238390223; + } } - IfcLoadGroupTypeEnum.LOAD_GROUP = { type: 3, value: "LOAD_GROUP" }; - IfcLoadGroupTypeEnum.LOAD_CASE = { type: 3, value: "LOAD_CASE" }; - IfcLoadGroupTypeEnum.LOAD_COMBINATION_GROUP = { type: 3, value: "LOAD_COMBINATION_GROUP" }; - IfcLoadGroupTypeEnum.LOAD_COMBINATION = { type: 3, value: "LOAD_COMBINATION" }; - IfcLoadGroupTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcLoadGroupTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcLoadGroupTypeEnum = IfcLoadGroupTypeEnum; - class IfcLogicalOperatorEnum { + IFC2X32.IfcFurnishingElementType = IfcFurnishingElementType; + class IfcFurnitureType extends IfcFurnishingElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, AssemblyPlace) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.AssemblyPlace = AssemblyPlace; + this.type = 1268542332; + } } - IfcLogicalOperatorEnum.LOGICALAND = { type: 3, value: "LOGICALAND" }; - IfcLogicalOperatorEnum.LOGICALOR = { type: 3, value: "LOGICALOR" }; - IFC2X32.IfcLogicalOperatorEnum = IfcLogicalOperatorEnum; - class IfcMemberTypeEnum { + IFC2X32.IfcFurnitureType = IfcFurnitureType; + class IfcGeometricCurveSet extends IfcGeometricSet { + constructor(Elements) { + super(Elements); + this.Elements = Elements; + this.type = 987898635; + } } - IfcMemberTypeEnum.BRACE = { type: 3, value: "BRACE" }; - IfcMemberTypeEnum.CHORD = { type: 3, value: "CHORD" }; - IfcMemberTypeEnum.COLLAR = { type: 3, value: "COLLAR" }; - IfcMemberTypeEnum.MEMBER = { type: 3, value: "MEMBER" }; - IfcMemberTypeEnum.MULLION = { type: 3, value: "MULLION" }; - IfcMemberTypeEnum.PLATE = { type: 3, value: "PLATE" }; - IfcMemberTypeEnum.POST = { type: 3, value: "POST" }; - IfcMemberTypeEnum.PURLIN = { type: 3, value: "PURLIN" }; - IfcMemberTypeEnum.RAFTER = { type: 3, value: "RAFTER" }; - IfcMemberTypeEnum.STRINGER = { type: 3, value: "STRINGER" }; - IfcMemberTypeEnum.STRUT = { type: 3, value: "STRUT" }; - IfcMemberTypeEnum.STUD = { type: 3, value: "STUD" }; - IfcMemberTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcMemberTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcMemberTypeEnum = IfcMemberTypeEnum; - class IfcMotorConnectionTypeEnum { + IFC2X32.IfcGeometricCurveSet = IfcGeometricCurveSet; + class IfcIShapeProfileDef extends IfcParameterizedProfileDef { + constructor(ProfileType, ProfileName, Position, OverallWidth, OverallDepth, WebThickness, FlangeThickness, FilletRadius) { + super(ProfileType, ProfileName, Position); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.OverallWidth = OverallWidth; + this.OverallDepth = OverallDepth; + this.WebThickness = WebThickness; + this.FlangeThickness = FlangeThickness; + this.FilletRadius = FilletRadius; + this.type = 1484403080; + } } - IfcMotorConnectionTypeEnum.BELTDRIVE = { type: 3, value: "BELTDRIVE" }; - IfcMotorConnectionTypeEnum.COUPLING = { type: 3, value: "COUPLING" }; - IfcMotorConnectionTypeEnum.DIRECTDRIVE = { type: 3, value: "DIRECTDRIVE" }; - IfcMotorConnectionTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcMotorConnectionTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcMotorConnectionTypeEnum = IfcMotorConnectionTypeEnum; - class IfcNullStyle { + IFC2X32.IfcIShapeProfileDef = IfcIShapeProfileDef; + class IfcLShapeProfileDef extends IfcParameterizedProfileDef { + constructor(ProfileType, ProfileName, Position, Depth, Width, Thickness, FilletRadius, EdgeRadius, LegSlope, CentreOfGravityInX, CentreOfGravityInY) { + super(ProfileType, ProfileName, Position); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.Depth = Depth; + this.Width = Width; + this.Thickness = Thickness; + this.FilletRadius = FilletRadius; + this.EdgeRadius = EdgeRadius; + this.LegSlope = LegSlope; + this.CentreOfGravityInX = CentreOfGravityInX; + this.CentreOfGravityInY = CentreOfGravityInY; + this.type = 572779678; + } } - IfcNullStyle.NULL = { type: 3, value: "NULL" }; - IFC2X32.IfcNullStyle = IfcNullStyle; - class IfcObjectTypeEnum { + IFC2X32.IfcLShapeProfileDef = IfcLShapeProfileDef; + class IfcLine extends IfcCurve { + constructor(Pnt, Dir) { + super(); + this.Pnt = Pnt; + this.Dir = Dir; + this.type = 1281925730; + } } - IfcObjectTypeEnum.PRODUCT = { type: 3, value: "PRODUCT" }; - IfcObjectTypeEnum.PROCESS = { type: 3, value: "PROCESS" }; - IfcObjectTypeEnum.CONTROL = { type: 3, value: "CONTROL" }; - IfcObjectTypeEnum.RESOURCE = { type: 3, value: "RESOURCE" }; - IfcObjectTypeEnum.ACTOR = { type: 3, value: "ACTOR" }; - IfcObjectTypeEnum.GROUP = { type: 3, value: "GROUP" }; - IfcObjectTypeEnum.PROJECT = { type: 3, value: "PROJECT" }; - IfcObjectTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcObjectTypeEnum = IfcObjectTypeEnum; - class IfcObjectiveEnum { + IFC2X32.IfcLine = IfcLine; + class IfcManifoldSolidBrep extends IfcSolidModel { + constructor(Outer) { + super(); + this.Outer = Outer; + this.type = 1425443689; + } } - IfcObjectiveEnum.CODECOMPLIANCE = { type: 3, value: "CODECOMPLIANCE" }; - IfcObjectiveEnum.DESIGNINTENT = { type: 3, value: "DESIGNINTENT" }; - IfcObjectiveEnum.HEALTHANDSAFETY = { type: 3, value: "HEALTHANDSAFETY" }; - IfcObjectiveEnum.REQUIREMENT = { type: 3, value: "REQUIREMENT" }; - IfcObjectiveEnum.SPECIFICATION = { type: 3, value: "SPECIFICATION" }; - IfcObjectiveEnum.TRIGGERCONDITION = { type: 3, value: "TRIGGERCONDITION" }; - IfcObjectiveEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcObjectiveEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcObjectiveEnum = IfcObjectiveEnum; - class IfcOccupantTypeEnum { + IFC2X32.IfcManifoldSolidBrep = IfcManifoldSolidBrep; + class IfcObject extends IfcObjectDefinition { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.type = 3888040117; + } } - IfcOccupantTypeEnum.ASSIGNEE = { type: 3, value: "ASSIGNEE" }; - IfcOccupantTypeEnum.ASSIGNOR = { type: 3, value: "ASSIGNOR" }; - IfcOccupantTypeEnum.LESSEE = { type: 3, value: "LESSEE" }; - IfcOccupantTypeEnum.LESSOR = { type: 3, value: "LESSOR" }; - IfcOccupantTypeEnum.LETTINGAGENT = { type: 3, value: "LETTINGAGENT" }; - IfcOccupantTypeEnum.OWNER = { type: 3, value: "OWNER" }; - IfcOccupantTypeEnum.TENANT = { type: 3, value: "TENANT" }; - IfcOccupantTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcOccupantTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcOccupantTypeEnum = IfcOccupantTypeEnum; - class IfcOutletTypeEnum { + IFC2X32.IfcObject = IfcObject; + class IfcOffsetCurve2D extends IfcCurve { + constructor(BasisCurve, Distance, SelfIntersect) { + super(); + this.BasisCurve = BasisCurve; + this.Distance = Distance; + this.SelfIntersect = SelfIntersect; + this.type = 3388369263; + } } - IfcOutletTypeEnum.AUDIOVISUALOUTLET = { type: 3, value: "AUDIOVISUALOUTLET" }; - IfcOutletTypeEnum.COMMUNICATIONSOUTLET = { type: 3, value: "COMMUNICATIONSOUTLET" }; - IfcOutletTypeEnum.POWEROUTLET = { type: 3, value: "POWEROUTLET" }; - IfcOutletTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcOutletTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcOutletTypeEnum = IfcOutletTypeEnum; - class IfcPermeableCoveringOperationEnum { + IFC2X32.IfcOffsetCurve2D = IfcOffsetCurve2D; + class IfcOffsetCurve3D extends IfcCurve { + constructor(BasisCurve, Distance, SelfIntersect, RefDirection) { + super(); + this.BasisCurve = BasisCurve; + this.Distance = Distance; + this.SelfIntersect = SelfIntersect; + this.RefDirection = RefDirection; + this.type = 3505215534; + } } - IfcPermeableCoveringOperationEnum.GRILL = { type: 3, value: "GRILL" }; - IfcPermeableCoveringOperationEnum.LOUVER = { type: 3, value: "LOUVER" }; - IfcPermeableCoveringOperationEnum.SCREEN = { type: 3, value: "SCREEN" }; - IfcPermeableCoveringOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPermeableCoveringOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcPermeableCoveringOperationEnum = IfcPermeableCoveringOperationEnum; - class IfcPhysicalOrVirtualEnum { + IFC2X32.IfcOffsetCurve3D = IfcOffsetCurve3D; + class IfcPermeableCoveringProperties extends IfcPropertySetDefinition { + constructor(GlobalId, OwnerHistory, Name, Description, OperationType, PanelPosition, FrameDepth, FrameThickness, ShapeAspectStyle) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.OperationType = OperationType; + this.PanelPosition = PanelPosition; + this.FrameDepth = FrameDepth; + this.FrameThickness = FrameThickness; + this.ShapeAspectStyle = ShapeAspectStyle; + this.type = 3566463478; + } } - IfcPhysicalOrVirtualEnum.PHYSICAL = { type: 3, value: "PHYSICAL" }; - IfcPhysicalOrVirtualEnum.VIRTUAL = { type: 3, value: "VIRTUAL" }; - IfcPhysicalOrVirtualEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcPhysicalOrVirtualEnum = IfcPhysicalOrVirtualEnum; - class IfcPileConstructionEnum { + IFC2X32.IfcPermeableCoveringProperties = IfcPermeableCoveringProperties; + class IfcPlanarBox extends IfcPlanarExtent { + constructor(SizeInX, SizeInY, Placement) { + super(SizeInX, SizeInY); + this.SizeInX = SizeInX; + this.SizeInY = SizeInY; + this.Placement = Placement; + this.type = 603570806; + } } - IfcPileConstructionEnum.CAST_IN_PLACE = { type: 3, value: "CAST_IN_PLACE" }; - IfcPileConstructionEnum.COMPOSITE = { type: 3, value: "COMPOSITE" }; - IfcPileConstructionEnum.PRECAST_CONCRETE = { type: 3, value: "PRECAST_CONCRETE" }; - IfcPileConstructionEnum.PREFAB_STEEL = { type: 3, value: "PREFAB_STEEL" }; - IfcPileConstructionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPileConstructionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcPileConstructionEnum = IfcPileConstructionEnum; - class IfcPileTypeEnum { + IFC2X32.IfcPlanarBox = IfcPlanarBox; + class IfcPlane extends IfcElementarySurface { + constructor(Position) { + super(Position); + this.Position = Position; + this.type = 220341763; + } } - IfcPileTypeEnum.COHESION = { type: 3, value: "COHESION" }; - IfcPileTypeEnum.FRICTION = { type: 3, value: "FRICTION" }; - IfcPileTypeEnum.SUPPORT = { type: 3, value: "SUPPORT" }; - IfcPileTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPileTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcPileTypeEnum = IfcPileTypeEnum; - class IfcPipeFittingTypeEnum { + IFC2X32.IfcPlane = IfcPlane; + class IfcProcess extends IfcObject { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.type = 2945172077; + } } - IfcPipeFittingTypeEnum.BEND = { type: 3, value: "BEND" }; - IfcPipeFittingTypeEnum.CONNECTOR = { type: 3, value: "CONNECTOR" }; - IfcPipeFittingTypeEnum.ENTRY = { type: 3, value: "ENTRY" }; - IfcPipeFittingTypeEnum.EXIT = { type: 3, value: "EXIT" }; - IfcPipeFittingTypeEnum.JUNCTION = { type: 3, value: "JUNCTION" }; - IfcPipeFittingTypeEnum.OBSTRUCTION = { type: 3, value: "OBSTRUCTION" }; - IfcPipeFittingTypeEnum.TRANSITION = { type: 3, value: "TRANSITION" }; - IfcPipeFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPipeFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcPipeFittingTypeEnum = IfcPipeFittingTypeEnum; - class IfcPipeSegmentTypeEnum { + IFC2X32.IfcProcess = IfcProcess; + class IfcProduct extends IfcObject { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.type = 4208778838; + } } - IfcPipeSegmentTypeEnum.FLEXIBLESEGMENT = { type: 3, value: "FLEXIBLESEGMENT" }; - IfcPipeSegmentTypeEnum.RIGIDSEGMENT = { type: 3, value: "RIGIDSEGMENT" }; - IfcPipeSegmentTypeEnum.GUTTER = { type: 3, value: "GUTTER" }; - IfcPipeSegmentTypeEnum.SPOOL = { type: 3, value: "SPOOL" }; - IfcPipeSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPipeSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcPipeSegmentTypeEnum = IfcPipeSegmentTypeEnum; - class IfcPlateTypeEnum { + IFC2X32.IfcProduct = IfcProduct; + class IfcProject extends IfcObject { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.LongName = LongName; + this.Phase = Phase; + this.RepresentationContexts = RepresentationContexts; + this.UnitsInContext = UnitsInContext; + this.type = 103090709; + } } - IfcPlateTypeEnum.CURTAIN_PANEL = { type: 3, value: "CURTAIN_PANEL" }; - IfcPlateTypeEnum.SHEET = { type: 3, value: "SHEET" }; - IfcPlateTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPlateTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcPlateTypeEnum = IfcPlateTypeEnum; - class IfcProcedureTypeEnum { + IFC2X32.IfcProject = IfcProject; + class IfcProjectionCurve extends IfcAnnotationCurveOccurrence { + constructor(Item, Styles, Name) { + super(Item, Styles, Name); + this.Item = Item; + this.Styles = Styles; + this.Name = Name; + this.type = 4194566429; + } } - IfcProcedureTypeEnum.ADVICE_CAUTION = { type: 3, value: "ADVICE_CAUTION" }; - IfcProcedureTypeEnum.ADVICE_NOTE = { type: 3, value: "ADVICE_NOTE" }; - IfcProcedureTypeEnum.ADVICE_WARNING = { type: 3, value: "ADVICE_WARNING" }; - IfcProcedureTypeEnum.CALIBRATION = { type: 3, value: "CALIBRATION" }; - IfcProcedureTypeEnum.DIAGNOSTIC = { type: 3, value: "DIAGNOSTIC" }; - IfcProcedureTypeEnum.SHUTDOWN = { type: 3, value: "SHUTDOWN" }; - IfcProcedureTypeEnum.STARTUP = { type: 3, value: "STARTUP" }; - IfcProcedureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcProcedureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcProcedureTypeEnum = IfcProcedureTypeEnum; - class IfcProfileTypeEnum { + IFC2X32.IfcProjectionCurve = IfcProjectionCurve; + class IfcPropertySet extends IfcPropertySetDefinition { + constructor(GlobalId, OwnerHistory, Name, Description, HasProperties) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.HasProperties = HasProperties; + this.type = 1451395588; + } } - IfcProfileTypeEnum.CURVE = { type: 3, value: "CURVE" }; - IfcProfileTypeEnum.AREA = { type: 3, value: "AREA" }; - IFC2X32.IfcProfileTypeEnum = IfcProfileTypeEnum; - class IfcProjectOrderRecordTypeEnum { + IFC2X32.IfcPropertySet = IfcPropertySet; + class IfcProxy extends IfcProduct { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, ProxyType, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.ProxyType = ProxyType; + this.Tag = Tag; + this.type = 3219374653; + } } - IfcProjectOrderRecordTypeEnum.CHANGE = { type: 3, value: "CHANGE" }; - IfcProjectOrderRecordTypeEnum.MAINTENANCE = { type: 3, value: "MAINTENANCE" }; - IfcProjectOrderRecordTypeEnum.MOVE = { type: 3, value: "MOVE" }; - IfcProjectOrderRecordTypeEnum.PURCHASE = { type: 3, value: "PURCHASE" }; - IfcProjectOrderRecordTypeEnum.WORK = { type: 3, value: "WORK" }; - IfcProjectOrderRecordTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcProjectOrderRecordTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcProjectOrderRecordTypeEnum = IfcProjectOrderRecordTypeEnum; - class IfcProjectOrderTypeEnum { + IFC2X32.IfcProxy = IfcProxy; + class IfcRectangleHollowProfileDef extends IfcRectangleProfileDef { + constructor(ProfileType, ProfileName, Position, XDim, YDim, WallThickness, InnerFilletRadius, OuterFilletRadius) { + super(ProfileType, ProfileName, Position, XDim, YDim); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.XDim = XDim; + this.YDim = YDim; + this.WallThickness = WallThickness; + this.InnerFilletRadius = InnerFilletRadius; + this.OuterFilletRadius = OuterFilletRadius; + this.type = 2770003689; + } } - IfcProjectOrderTypeEnum.CHANGEORDER = { type: 3, value: "CHANGEORDER" }; - IfcProjectOrderTypeEnum.MAINTENANCEWORKORDER = { type: 3, value: "MAINTENANCEWORKORDER" }; - IfcProjectOrderTypeEnum.MOVEORDER = { type: 3, value: "MOVEORDER" }; - IfcProjectOrderTypeEnum.PURCHASEORDER = { type: 3, value: "PURCHASEORDER" }; - IfcProjectOrderTypeEnum.WORKORDER = { type: 3, value: "WORKORDER" }; - IfcProjectOrderTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcProjectOrderTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcProjectOrderTypeEnum = IfcProjectOrderTypeEnum; - class IfcProjectedOrTrueLengthEnum { + IFC2X32.IfcRectangleHollowProfileDef = IfcRectangleHollowProfileDef; + class IfcRectangularPyramid extends IfcCsgPrimitive3D { + constructor(Position, XLength, YLength, Height) { + super(Position); + this.Position = Position; + this.XLength = XLength; + this.YLength = YLength; + this.Height = Height; + this.type = 2798486643; + } } - IfcProjectedOrTrueLengthEnum.PROJECTED_LENGTH = { type: 3, value: "PROJECTED_LENGTH" }; - IfcProjectedOrTrueLengthEnum.TRUE_LENGTH = { type: 3, value: "TRUE_LENGTH" }; - IFC2X32.IfcProjectedOrTrueLengthEnum = IfcProjectedOrTrueLengthEnum; - class IfcPropertySourceEnum { + IFC2X32.IfcRectangularPyramid = IfcRectangularPyramid; + class IfcRectangularTrimmedSurface extends IfcBoundedSurface { + constructor(BasisSurface, U1, V1, U2, V2, Usense, Vsense) { + super(); + this.BasisSurface = BasisSurface; + this.U1 = U1; + this.V1 = V1; + this.U2 = U2; + this.V2 = V2; + this.Usense = Usense; + this.Vsense = Vsense; + this.type = 3454111270; + } } - IfcPropertySourceEnum.DESIGN = { type: 3, value: "DESIGN" }; - IfcPropertySourceEnum.DESIGNMAXIMUM = { type: 3, value: "DESIGNMAXIMUM" }; - IfcPropertySourceEnum.DESIGNMINIMUM = { type: 3, value: "DESIGNMINIMUM" }; - IfcPropertySourceEnum.SIMULATED = { type: 3, value: "SIMULATED" }; - IfcPropertySourceEnum.ASBUILT = { type: 3, value: "ASBUILT" }; - IfcPropertySourceEnum.COMMISSIONING = { type: 3, value: "COMMISSIONING" }; - IfcPropertySourceEnum.MEASURED = { type: 3, value: "MEASURED" }; - IfcPropertySourceEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPropertySourceEnum.NOTKNOWN = { type: 3, value: "NOTKNOWN" }; - IFC2X32.IfcPropertySourceEnum = IfcPropertySourceEnum; - class IfcProtectiveDeviceTypeEnum { + IFC2X32.IfcRectangularTrimmedSurface = IfcRectangularTrimmedSurface; + class IfcRelAssigns extends IfcRelationship { + constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatedObjectsType = RelatedObjectsType; + this.type = 3939117080; + } } - IfcProtectiveDeviceTypeEnum.FUSEDISCONNECTOR = { type: 3, value: "FUSEDISCONNECTOR" }; - IfcProtectiveDeviceTypeEnum.CIRCUITBREAKER = { type: 3, value: "CIRCUITBREAKER" }; - IfcProtectiveDeviceTypeEnum.EARTHFAILUREDEVICE = { type: 3, value: "EARTHFAILUREDEVICE" }; - IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTCIRCUITBREAKER = { type: 3, value: "RESIDUALCURRENTCIRCUITBREAKER" }; - IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTSWITCH = { type: 3, value: "RESIDUALCURRENTSWITCH" }; - IfcProtectiveDeviceTypeEnum.VARISTOR = { type: 3, value: "VARISTOR" }; - IfcProtectiveDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcProtectiveDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcProtectiveDeviceTypeEnum = IfcProtectiveDeviceTypeEnum; - class IfcPumpTypeEnum { + IFC2X32.IfcRelAssigns = IfcRelAssigns; + class IfcRelAssignsToActor extends IfcRelAssigns { + constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingActor, ActingRole) { + super(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatedObjectsType = RelatedObjectsType; + this.RelatingActor = RelatingActor; + this.ActingRole = ActingRole; + this.type = 1683148259; + } } - IfcPumpTypeEnum.CIRCULATOR = { type: 3, value: "CIRCULATOR" }; - IfcPumpTypeEnum.ENDSUCTION = { type: 3, value: "ENDSUCTION" }; - IfcPumpTypeEnum.SPLITCASE = { type: 3, value: "SPLITCASE" }; - IfcPumpTypeEnum.VERTICALINLINE = { type: 3, value: "VERTICALINLINE" }; - IfcPumpTypeEnum.VERTICALTURBINE = { type: 3, value: "VERTICALTURBINE" }; - IfcPumpTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPumpTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcPumpTypeEnum = IfcPumpTypeEnum; - class IfcRailingTypeEnum { + IFC2X32.IfcRelAssignsToActor = IfcRelAssignsToActor; + class IfcRelAssignsToControl extends IfcRelAssigns { + constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl) { + super(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatedObjectsType = RelatedObjectsType; + this.RelatingControl = RelatingControl; + this.type = 2495723537; + } } - IfcRailingTypeEnum.HANDRAIL = { type: 3, value: "HANDRAIL" }; - IfcRailingTypeEnum.GUARDRAIL = { type: 3, value: "GUARDRAIL" }; - IfcRailingTypeEnum.BALUSTRADE = { type: 3, value: "BALUSTRADE" }; - IfcRailingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcRailingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcRailingTypeEnum = IfcRailingTypeEnum; - class IfcRampFlightTypeEnum { + IFC2X32.IfcRelAssignsToControl = IfcRelAssignsToControl; + class IfcRelAssignsToGroup extends IfcRelAssigns { + constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingGroup) { + super(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatedObjectsType = RelatedObjectsType; + this.RelatingGroup = RelatingGroup; + this.type = 1307041759; + } } - IfcRampFlightTypeEnum.STRAIGHT = { type: 3, value: "STRAIGHT" }; - IfcRampFlightTypeEnum.SPIRAL = { type: 3, value: "SPIRAL" }; - IfcRampFlightTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcRampFlightTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcRampFlightTypeEnum = IfcRampFlightTypeEnum; - class IfcRampTypeEnum { + IFC2X32.IfcRelAssignsToGroup = IfcRelAssignsToGroup; + class IfcRelAssignsToProcess extends IfcRelAssigns { + constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingProcess, QuantityInProcess) { + super(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatedObjectsType = RelatedObjectsType; + this.RelatingProcess = RelatingProcess; + this.QuantityInProcess = QuantityInProcess; + this.type = 4278684876; + } } - IfcRampTypeEnum.STRAIGHT_RUN_RAMP = { type: 3, value: "STRAIGHT_RUN_RAMP" }; - IfcRampTypeEnum.TWO_STRAIGHT_RUN_RAMP = { type: 3, value: "TWO_STRAIGHT_RUN_RAMP" }; - IfcRampTypeEnum.QUARTER_TURN_RAMP = { type: 3, value: "QUARTER_TURN_RAMP" }; - IfcRampTypeEnum.TWO_QUARTER_TURN_RAMP = { type: 3, value: "TWO_QUARTER_TURN_RAMP" }; - IfcRampTypeEnum.HALF_TURN_RAMP = { type: 3, value: "HALF_TURN_RAMP" }; - IfcRampTypeEnum.SPIRAL_RAMP = { type: 3, value: "SPIRAL_RAMP" }; - IfcRampTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcRampTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcRampTypeEnum = IfcRampTypeEnum; - class IfcReflectanceMethodEnum { + IFC2X32.IfcRelAssignsToProcess = IfcRelAssignsToProcess; + class IfcRelAssignsToProduct extends IfcRelAssigns { + constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingProduct) { + super(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatedObjectsType = RelatedObjectsType; + this.RelatingProduct = RelatingProduct; + this.type = 2857406711; + } } - IfcReflectanceMethodEnum.BLINN = { type: 3, value: "BLINN" }; - IfcReflectanceMethodEnum.FLAT = { type: 3, value: "FLAT" }; - IfcReflectanceMethodEnum.GLASS = { type: 3, value: "GLASS" }; - IfcReflectanceMethodEnum.MATT = { type: 3, value: "MATT" }; - IfcReflectanceMethodEnum.METAL = { type: 3, value: "METAL" }; - IfcReflectanceMethodEnum.MIRROR = { type: 3, value: "MIRROR" }; - IfcReflectanceMethodEnum.PHONG = { type: 3, value: "PHONG" }; - IfcReflectanceMethodEnum.PLASTIC = { type: 3, value: "PLASTIC" }; - IfcReflectanceMethodEnum.STRAUSS = { type: 3, value: "STRAUSS" }; - IfcReflectanceMethodEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcReflectanceMethodEnum = IfcReflectanceMethodEnum; - class IfcReinforcingBarRoleEnum { + IFC2X32.IfcRelAssignsToProduct = IfcRelAssignsToProduct; + class IfcRelAssignsToProjectOrder extends IfcRelAssignsToControl { + constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl) { + super(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatedObjectsType = RelatedObjectsType; + this.RelatingControl = RelatingControl; + this.type = 3372526763; + } } - IfcReinforcingBarRoleEnum.MAIN = { type: 3, value: "MAIN" }; - IfcReinforcingBarRoleEnum.SHEAR = { type: 3, value: "SHEAR" }; - IfcReinforcingBarRoleEnum.LIGATURE = { type: 3, value: "LIGATURE" }; - IfcReinforcingBarRoleEnum.STUD = { type: 3, value: "STUD" }; - IfcReinforcingBarRoleEnum.PUNCHING = { type: 3, value: "PUNCHING" }; - IfcReinforcingBarRoleEnum.EDGE = { type: 3, value: "EDGE" }; - IfcReinforcingBarRoleEnum.RING = { type: 3, value: "RING" }; - IfcReinforcingBarRoleEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcReinforcingBarRoleEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcReinforcingBarRoleEnum = IfcReinforcingBarRoleEnum; - class IfcReinforcingBarSurfaceEnum { + IFC2X32.IfcRelAssignsToProjectOrder = IfcRelAssignsToProjectOrder; + class IfcRelAssignsToResource extends IfcRelAssigns { + constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingResource) { + super(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatedObjectsType = RelatedObjectsType; + this.RelatingResource = RelatingResource; + this.type = 205026976; + } } - IfcReinforcingBarSurfaceEnum.PLAIN = { type: 3, value: "PLAIN" }; - IfcReinforcingBarSurfaceEnum.TEXTURED = { type: 3, value: "TEXTURED" }; - IFC2X32.IfcReinforcingBarSurfaceEnum = IfcReinforcingBarSurfaceEnum; - class IfcResourceConsumptionEnum { + IFC2X32.IfcRelAssignsToResource = IfcRelAssignsToResource; + class IfcRelAssociates extends IfcRelationship { + constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.type = 1865459582; + } } - IfcResourceConsumptionEnum.CONSUMED = { type: 3, value: "CONSUMED" }; - IfcResourceConsumptionEnum.PARTIALLYCONSUMED = { type: 3, value: "PARTIALLYCONSUMED" }; - IfcResourceConsumptionEnum.NOTCONSUMED = { type: 3, value: "NOTCONSUMED" }; - IfcResourceConsumptionEnum.OCCUPIED = { type: 3, value: "OCCUPIED" }; - IfcResourceConsumptionEnum.PARTIALLYOCCUPIED = { type: 3, value: "PARTIALLYOCCUPIED" }; - IfcResourceConsumptionEnum.NOTOCCUPIED = { type: 3, value: "NOTOCCUPIED" }; - IfcResourceConsumptionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcResourceConsumptionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcResourceConsumptionEnum = IfcResourceConsumptionEnum; - class IfcRibPlateDirectionEnum { + IFC2X32.IfcRelAssociates = IfcRelAssociates; + class IfcRelAssociatesAppliedValue extends IfcRelAssociates { + constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingAppliedValue) { + super(GlobalId, OwnerHistory, Name, Description, RelatedObjects); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatingAppliedValue = RelatingAppliedValue; + this.type = 1327628568; + } } - IfcRibPlateDirectionEnum.DIRECTION_X = { type: 3, value: "DIRECTION_X" }; - IfcRibPlateDirectionEnum.DIRECTION_Y = { type: 3, value: "DIRECTION_Y" }; - IFC2X32.IfcRibPlateDirectionEnum = IfcRibPlateDirectionEnum; - class IfcRoleEnum { + IFC2X32.IfcRelAssociatesAppliedValue = IfcRelAssociatesAppliedValue; + class IfcRelAssociatesApproval extends IfcRelAssociates { + constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingApproval) { + super(GlobalId, OwnerHistory, Name, Description, RelatedObjects); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatingApproval = RelatingApproval; + this.type = 4095574036; + } } - IfcRoleEnum.SUPPLIER = { type: 3, value: "SUPPLIER" }; - IfcRoleEnum.MANUFACTURER = { type: 3, value: "MANUFACTURER" }; - IfcRoleEnum.CONTRACTOR = { type: 3, value: "CONTRACTOR" }; - IfcRoleEnum.SUBCONTRACTOR = { type: 3, value: "SUBCONTRACTOR" }; - IfcRoleEnum.ARCHITECT = { type: 3, value: "ARCHITECT" }; - IfcRoleEnum.STRUCTURALENGINEER = { type: 3, value: "STRUCTURALENGINEER" }; - IfcRoleEnum.COSTENGINEER = { type: 3, value: "COSTENGINEER" }; - IfcRoleEnum.CLIENT = { type: 3, value: "CLIENT" }; - IfcRoleEnum.BUILDINGOWNER = { type: 3, value: "BUILDINGOWNER" }; - IfcRoleEnum.BUILDINGOPERATOR = { type: 3, value: "BUILDINGOPERATOR" }; - IfcRoleEnum.MECHANICALENGINEER = { type: 3, value: "MECHANICALENGINEER" }; - IfcRoleEnum.ELECTRICALENGINEER = { type: 3, value: "ELECTRICALENGINEER" }; - IfcRoleEnum.PROJECTMANAGER = { type: 3, value: "PROJECTMANAGER" }; - IfcRoleEnum.FACILITIESMANAGER = { type: 3, value: "FACILITIESMANAGER" }; - IfcRoleEnum.CIVILENGINEER = { type: 3, value: "CIVILENGINEER" }; - IfcRoleEnum.COMISSIONINGENGINEER = { type: 3, value: "COMISSIONINGENGINEER" }; - IfcRoleEnum.ENGINEER = { type: 3, value: "ENGINEER" }; - IfcRoleEnum.OWNER = { type: 3, value: "OWNER" }; - IfcRoleEnum.CONSULTANT = { type: 3, value: "CONSULTANT" }; - IfcRoleEnum.CONSTRUCTIONMANAGER = { type: 3, value: "CONSTRUCTIONMANAGER" }; - IfcRoleEnum.FIELDCONSTRUCTIONMANAGER = { type: 3, value: "FIELDCONSTRUCTIONMANAGER" }; - IfcRoleEnum.RESELLER = { type: 3, value: "RESELLER" }; - IfcRoleEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IFC2X32.IfcRoleEnum = IfcRoleEnum; - class IfcRoofTypeEnum { + IFC2X32.IfcRelAssociatesApproval = IfcRelAssociatesApproval; + class IfcRelAssociatesClassification extends IfcRelAssociates { + constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingClassification) { + super(GlobalId, OwnerHistory, Name, Description, RelatedObjects); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatingClassification = RelatingClassification; + this.type = 919958153; + } } - IfcRoofTypeEnum.FLAT_ROOF = { type: 3, value: "FLAT_ROOF" }; - IfcRoofTypeEnum.SHED_ROOF = { type: 3, value: "SHED_ROOF" }; - IfcRoofTypeEnum.GABLE_ROOF = { type: 3, value: "GABLE_ROOF" }; - IfcRoofTypeEnum.HIP_ROOF = { type: 3, value: "HIP_ROOF" }; - IfcRoofTypeEnum.HIPPED_GABLE_ROOF = { type: 3, value: "HIPPED_GABLE_ROOF" }; - IfcRoofTypeEnum.GAMBREL_ROOF = { type: 3, value: "GAMBREL_ROOF" }; - IfcRoofTypeEnum.MANSARD_ROOF = { type: 3, value: "MANSARD_ROOF" }; - IfcRoofTypeEnum.BARREL_ROOF = { type: 3, value: "BARREL_ROOF" }; - IfcRoofTypeEnum.RAINBOW_ROOF = { type: 3, value: "RAINBOW_ROOF" }; - IfcRoofTypeEnum.BUTTERFLY_ROOF = { type: 3, value: "BUTTERFLY_ROOF" }; - IfcRoofTypeEnum.PAVILION_ROOF = { type: 3, value: "PAVILION_ROOF" }; - IfcRoofTypeEnum.DOME_ROOF = { type: 3, value: "DOME_ROOF" }; - IfcRoofTypeEnum.FREEFORM = { type: 3, value: "FREEFORM" }; - IfcRoofTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcRoofTypeEnum = IfcRoofTypeEnum; - class IfcSIPrefix { + IFC2X32.IfcRelAssociatesClassification = IfcRelAssociatesClassification; + class IfcRelAssociatesConstraint extends IfcRelAssociates { + constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, Intent, RelatingConstraint) { + super(GlobalId, OwnerHistory, Name, Description, RelatedObjects); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.Intent = Intent; + this.RelatingConstraint = RelatingConstraint; + this.type = 2728634034; + } } - IfcSIPrefix.EXA = { type: 3, value: "EXA" }; - IfcSIPrefix.PETA = { type: 3, value: "PETA" }; - IfcSIPrefix.TERA = { type: 3, value: "TERA" }; - IfcSIPrefix.GIGA = { type: 3, value: "GIGA" }; - IfcSIPrefix.MEGA = { type: 3, value: "MEGA" }; - IfcSIPrefix.KILO = { type: 3, value: "KILO" }; - IfcSIPrefix.HECTO = { type: 3, value: "HECTO" }; - IfcSIPrefix.DECA = { type: 3, value: "DECA" }; - IfcSIPrefix.DECI = { type: 3, value: "DECI" }; - IfcSIPrefix.CENTI = { type: 3, value: "CENTI" }; - IfcSIPrefix.MILLI = { type: 3, value: "MILLI" }; - IfcSIPrefix.MICRO = { type: 3, value: "MICRO" }; - IfcSIPrefix.NANO = { type: 3, value: "NANO" }; - IfcSIPrefix.PICO = { type: 3, value: "PICO" }; - IfcSIPrefix.FEMTO = { type: 3, value: "FEMTO" }; - IfcSIPrefix.ATTO = { type: 3, value: "ATTO" }; - IFC2X32.IfcSIPrefix = IfcSIPrefix; - class IfcSIUnitName { + IFC2X32.IfcRelAssociatesConstraint = IfcRelAssociatesConstraint; + class IfcRelAssociatesDocument extends IfcRelAssociates { + constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingDocument) { + super(GlobalId, OwnerHistory, Name, Description, RelatedObjects); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatingDocument = RelatingDocument; + this.type = 982818633; + } } - IfcSIUnitName.AMPERE = { type: 3, value: "AMPERE" }; - IfcSIUnitName.BECQUEREL = { type: 3, value: "BECQUEREL" }; - IfcSIUnitName.CANDELA = { type: 3, value: "CANDELA" }; - IfcSIUnitName.COULOMB = { type: 3, value: "COULOMB" }; - IfcSIUnitName.CUBIC_METRE = { type: 3, value: "CUBIC_METRE" }; - IfcSIUnitName.DEGREE_CELSIUS = { type: 3, value: "DEGREE_CELSIUS" }; - IfcSIUnitName.FARAD = { type: 3, value: "FARAD" }; - IfcSIUnitName.GRAM = { type: 3, value: "GRAM" }; - IfcSIUnitName.GRAY = { type: 3, value: "GRAY" }; - IfcSIUnitName.HENRY = { type: 3, value: "HENRY" }; - IfcSIUnitName.HERTZ = { type: 3, value: "HERTZ" }; - IfcSIUnitName.JOULE = { type: 3, value: "JOULE" }; - IfcSIUnitName.KELVIN = { type: 3, value: "KELVIN" }; - IfcSIUnitName.LUMEN = { type: 3, value: "LUMEN" }; - IfcSIUnitName.LUX = { type: 3, value: "LUX" }; - IfcSIUnitName.METRE = { type: 3, value: "METRE" }; - IfcSIUnitName.MOLE = { type: 3, value: "MOLE" }; - IfcSIUnitName.NEWTON = { type: 3, value: "NEWTON" }; - IfcSIUnitName.OHM = { type: 3, value: "OHM" }; - IfcSIUnitName.PASCAL = { type: 3, value: "PASCAL" }; - IfcSIUnitName.RADIAN = { type: 3, value: "RADIAN" }; - IfcSIUnitName.SECOND = { type: 3, value: "SECOND" }; - IfcSIUnitName.SIEMENS = { type: 3, value: "SIEMENS" }; - IfcSIUnitName.SIEVERT = { type: 3, value: "SIEVERT" }; - IfcSIUnitName.SQUARE_METRE = { type: 3, value: "SQUARE_METRE" }; - IfcSIUnitName.STERADIAN = { type: 3, value: "STERADIAN" }; - IfcSIUnitName.TESLA = { type: 3, value: "TESLA" }; - IfcSIUnitName.VOLT = { type: 3, value: "VOLT" }; - IfcSIUnitName.WATT = { type: 3, value: "WATT" }; - IfcSIUnitName.WEBER = { type: 3, value: "WEBER" }; - IFC2X32.IfcSIUnitName = IfcSIUnitName; - class IfcSanitaryTerminalTypeEnum { + IFC2X32.IfcRelAssociatesDocument = IfcRelAssociatesDocument; + class IfcRelAssociatesLibrary extends IfcRelAssociates { + constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingLibrary) { + super(GlobalId, OwnerHistory, Name, Description, RelatedObjects); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatingLibrary = RelatingLibrary; + this.type = 3840914261; + } } - IfcSanitaryTerminalTypeEnum.BATH = { type: 3, value: "BATH" }; - IfcSanitaryTerminalTypeEnum.BIDET = { type: 3, value: "BIDET" }; - IfcSanitaryTerminalTypeEnum.CISTERN = { type: 3, value: "CISTERN" }; - IfcSanitaryTerminalTypeEnum.SHOWER = { type: 3, value: "SHOWER" }; - IfcSanitaryTerminalTypeEnum.SINK = { type: 3, value: "SINK" }; - IfcSanitaryTerminalTypeEnum.SANITARYFOUNTAIN = { type: 3, value: "SANITARYFOUNTAIN" }; - IfcSanitaryTerminalTypeEnum.TOILETPAN = { type: 3, value: "TOILETPAN" }; - IfcSanitaryTerminalTypeEnum.URINAL = { type: 3, value: "URINAL" }; - IfcSanitaryTerminalTypeEnum.WASHHANDBASIN = { type: 3, value: "WASHHANDBASIN" }; - IfcSanitaryTerminalTypeEnum.WCSEAT = { type: 3, value: "WCSEAT" }; - IfcSanitaryTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSanitaryTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcSanitaryTerminalTypeEnum = IfcSanitaryTerminalTypeEnum; - class IfcSectionTypeEnum { + IFC2X32.IfcRelAssociatesLibrary = IfcRelAssociatesLibrary; + class IfcRelAssociatesMaterial extends IfcRelAssociates { + constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingMaterial) { + super(GlobalId, OwnerHistory, Name, Description, RelatedObjects); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatingMaterial = RelatingMaterial; + this.type = 2655215786; + } } - IfcSectionTypeEnum.UNIFORM = { type: 3, value: "UNIFORM" }; - IfcSectionTypeEnum.TAPERED = { type: 3, value: "TAPERED" }; - IFC2X32.IfcSectionTypeEnum = IfcSectionTypeEnum; - class IfcSensorTypeEnum { + IFC2X32.IfcRelAssociatesMaterial = IfcRelAssociatesMaterial; + class IfcRelAssociatesProfileProperties extends IfcRelAssociates { + constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingProfileProperties, ProfileSectionLocation, ProfileOrientation) { + super(GlobalId, OwnerHistory, Name, Description, RelatedObjects); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatingProfileProperties = RelatingProfileProperties; + this.ProfileSectionLocation = ProfileSectionLocation; + this.ProfileOrientation = ProfileOrientation; + this.type = 2851387026; + } } - IfcSensorTypeEnum.CO2SENSOR = { type: 3, value: "CO2SENSOR" }; - IfcSensorTypeEnum.FIRESENSOR = { type: 3, value: "FIRESENSOR" }; - IfcSensorTypeEnum.FLOWSENSOR = { type: 3, value: "FLOWSENSOR" }; - IfcSensorTypeEnum.GASSENSOR = { type: 3, value: "GASSENSOR" }; - IfcSensorTypeEnum.HEATSENSOR = { type: 3, value: "HEATSENSOR" }; - IfcSensorTypeEnum.HUMIDITYSENSOR = { type: 3, value: "HUMIDITYSENSOR" }; - IfcSensorTypeEnum.LIGHTSENSOR = { type: 3, value: "LIGHTSENSOR" }; - IfcSensorTypeEnum.MOISTURESENSOR = { type: 3, value: "MOISTURESENSOR" }; - IfcSensorTypeEnum.MOVEMENTSENSOR = { type: 3, value: "MOVEMENTSENSOR" }; - IfcSensorTypeEnum.PRESSURESENSOR = { type: 3, value: "PRESSURESENSOR" }; - IfcSensorTypeEnum.SMOKESENSOR = { type: 3, value: "SMOKESENSOR" }; - IfcSensorTypeEnum.SOUNDSENSOR = { type: 3, value: "SOUNDSENSOR" }; - IfcSensorTypeEnum.TEMPERATURESENSOR = { type: 3, value: "TEMPERATURESENSOR" }; - IfcSensorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSensorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcSensorTypeEnum = IfcSensorTypeEnum; - class IfcSequenceEnum { + IFC2X32.IfcRelAssociatesProfileProperties = IfcRelAssociatesProfileProperties; + class IfcRelConnects extends IfcRelationship { + constructor(GlobalId, OwnerHistory, Name, Description) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.type = 826625072; + } } - IfcSequenceEnum.START_START = { type: 3, value: "START_START" }; - IfcSequenceEnum.START_FINISH = { type: 3, value: "START_FINISH" }; - IfcSequenceEnum.FINISH_START = { type: 3, value: "FINISH_START" }; - IfcSequenceEnum.FINISH_FINISH = { type: 3, value: "FINISH_FINISH" }; - IfcSequenceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcSequenceEnum = IfcSequenceEnum; - class IfcServiceLifeFactorTypeEnum { + IFC2X32.IfcRelConnects = IfcRelConnects; + class IfcRelConnectsElements extends IfcRelConnects { + constructor(GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ConnectionGeometry = ConnectionGeometry; + this.RelatingElement = RelatingElement; + this.RelatedElement = RelatedElement; + this.type = 1204542856; + } } - IfcServiceLifeFactorTypeEnum.A_QUALITYOFCOMPONENTS = { type: 3, value: "A_QUALITYOFCOMPONENTS" }; - IfcServiceLifeFactorTypeEnum.B_DESIGNLEVEL = { type: 3, value: "B_DESIGNLEVEL" }; - IfcServiceLifeFactorTypeEnum.C_WORKEXECUTIONLEVEL = { type: 3, value: "C_WORKEXECUTIONLEVEL" }; - IfcServiceLifeFactorTypeEnum.D_INDOORENVIRONMENT = { type: 3, value: "D_INDOORENVIRONMENT" }; - IfcServiceLifeFactorTypeEnum.E_OUTDOORENVIRONMENT = { type: 3, value: "E_OUTDOORENVIRONMENT" }; - IfcServiceLifeFactorTypeEnum.F_INUSECONDITIONS = { type: 3, value: "F_INUSECONDITIONS" }; - IfcServiceLifeFactorTypeEnum.G_MAINTENANCELEVEL = { type: 3, value: "G_MAINTENANCELEVEL" }; - IfcServiceLifeFactorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcServiceLifeFactorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcServiceLifeFactorTypeEnum = IfcServiceLifeFactorTypeEnum; - class IfcServiceLifeTypeEnum { + IFC2X32.IfcRelConnectsElements = IfcRelConnectsElements; + class IfcRelConnectsPathElements extends IfcRelConnectsElements { + constructor(GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement, RelatingPriorities, RelatedPriorities, RelatedConnectionType, RelatingConnectionType) { + super(GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ConnectionGeometry = ConnectionGeometry; + this.RelatingElement = RelatingElement; + this.RelatedElement = RelatedElement; + this.RelatingPriorities = RelatingPriorities; + this.RelatedPriorities = RelatedPriorities; + this.RelatedConnectionType = RelatedConnectionType; + this.RelatingConnectionType = RelatingConnectionType; + this.type = 3945020480; + } } - IfcServiceLifeTypeEnum.ACTUALSERVICELIFE = { type: 3, value: "ACTUALSERVICELIFE" }; - IfcServiceLifeTypeEnum.EXPECTEDSERVICELIFE = { type: 3, value: "EXPECTEDSERVICELIFE" }; - IfcServiceLifeTypeEnum.OPTIMISTICREFERENCESERVICELIFE = { type: 3, value: "OPTIMISTICREFERENCESERVICELIFE" }; - IfcServiceLifeTypeEnum.PESSIMISTICREFERENCESERVICELIFE = { type: 3, value: "PESSIMISTICREFERENCESERVICELIFE" }; - IfcServiceLifeTypeEnum.REFERENCESERVICELIFE = { type: 3, value: "REFERENCESERVICELIFE" }; - IFC2X32.IfcServiceLifeTypeEnum = IfcServiceLifeTypeEnum; - class IfcSlabTypeEnum { + IFC2X32.IfcRelConnectsPathElements = IfcRelConnectsPathElements; + class IfcRelConnectsPortToElement extends IfcRelConnects { + constructor(GlobalId, OwnerHistory, Name, Description, RelatingPort, RelatedElement) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingPort = RelatingPort; + this.RelatedElement = RelatedElement; + this.type = 4201705270; + } } - IfcSlabTypeEnum.FLOOR = { type: 3, value: "FLOOR" }; - IfcSlabTypeEnum.ROOF = { type: 3, value: "ROOF" }; - IfcSlabTypeEnum.LANDING = { type: 3, value: "LANDING" }; - IfcSlabTypeEnum.BASESLAB = { type: 3, value: "BASESLAB" }; - IfcSlabTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSlabTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcSlabTypeEnum = IfcSlabTypeEnum; - class IfcSoundScaleEnum { + IFC2X32.IfcRelConnectsPortToElement = IfcRelConnectsPortToElement; + class IfcRelConnectsPorts extends IfcRelConnects { + constructor(GlobalId, OwnerHistory, Name, Description, RelatingPort, RelatedPort, RealizingElement) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingPort = RelatingPort; + this.RelatedPort = RelatedPort; + this.RealizingElement = RealizingElement; + this.type = 3190031847; + } + } + IFC2X32.IfcRelConnectsPorts = IfcRelConnectsPorts; + class IfcRelConnectsStructuralActivity extends IfcRelConnects { + constructor(GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedStructuralActivity) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingElement = RelatingElement; + this.RelatedStructuralActivity = RelatedStructuralActivity; + this.type = 2127690289; + } } - IfcSoundScaleEnum.DBA = { type: 3, value: "DBA" }; - IfcSoundScaleEnum.DBB = { type: 3, value: "DBB" }; - IfcSoundScaleEnum.DBC = { type: 3, value: "DBC" }; - IfcSoundScaleEnum.NC = { type: 3, value: "NC" }; - IfcSoundScaleEnum.NR = { type: 3, value: "NR" }; - IfcSoundScaleEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSoundScaleEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcSoundScaleEnum = IfcSoundScaleEnum; - class IfcSpaceHeaterTypeEnum { + IFC2X32.IfcRelConnectsStructuralActivity = IfcRelConnectsStructuralActivity; + class IfcRelConnectsStructuralElement extends IfcRelConnects { + constructor(GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedStructuralMember) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingElement = RelatingElement; + this.RelatedStructuralMember = RelatedStructuralMember; + this.type = 3912681535; + } } - IfcSpaceHeaterTypeEnum.SECTIONALRADIATOR = { type: 3, value: "SECTIONALRADIATOR" }; - IfcSpaceHeaterTypeEnum.PANELRADIATOR = { type: 3, value: "PANELRADIATOR" }; - IfcSpaceHeaterTypeEnum.TUBULARRADIATOR = { type: 3, value: "TUBULARRADIATOR" }; - IfcSpaceHeaterTypeEnum.CONVECTOR = { type: 3, value: "CONVECTOR" }; - IfcSpaceHeaterTypeEnum.BASEBOARDHEATER = { type: 3, value: "BASEBOARDHEATER" }; - IfcSpaceHeaterTypeEnum.FINNEDTUBEUNIT = { type: 3, value: "FINNEDTUBEUNIT" }; - IfcSpaceHeaterTypeEnum.UNITHEATER = { type: 3, value: "UNITHEATER" }; - IfcSpaceHeaterTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSpaceHeaterTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcSpaceHeaterTypeEnum = IfcSpaceHeaterTypeEnum; - class IfcSpaceTypeEnum { + IFC2X32.IfcRelConnectsStructuralElement = IfcRelConnectsStructuralElement; + class IfcRelConnectsStructuralMember extends IfcRelConnects { + constructor(GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingStructuralMember = RelatingStructuralMember; + this.RelatedStructuralConnection = RelatedStructuralConnection; + this.AppliedCondition = AppliedCondition; + this.AdditionalConditions = AdditionalConditions; + this.SupportedLength = SupportedLength; + this.ConditionCoordinateSystem = ConditionCoordinateSystem; + this.type = 1638771189; + } } - IfcSpaceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSpaceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcSpaceTypeEnum = IfcSpaceTypeEnum; - class IfcStackTerminalTypeEnum { + IFC2X32.IfcRelConnectsStructuralMember = IfcRelConnectsStructuralMember; + class IfcRelConnectsWithEccentricity extends IfcRelConnectsStructuralMember { + constructor(GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem, ConnectionConstraint) { + super(GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingStructuralMember = RelatingStructuralMember; + this.RelatedStructuralConnection = RelatedStructuralConnection; + this.AppliedCondition = AppliedCondition; + this.AdditionalConditions = AdditionalConditions; + this.SupportedLength = SupportedLength; + this.ConditionCoordinateSystem = ConditionCoordinateSystem; + this.ConnectionConstraint = ConnectionConstraint; + this.type = 504942748; + } } - IfcStackTerminalTypeEnum.BIRDCAGE = { type: 3, value: "BIRDCAGE" }; - IfcStackTerminalTypeEnum.COWL = { type: 3, value: "COWL" }; - IfcStackTerminalTypeEnum.RAINWATERHOPPER = { type: 3, value: "RAINWATERHOPPER" }; - IfcStackTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcStackTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcStackTerminalTypeEnum = IfcStackTerminalTypeEnum; - class IfcStairFlightTypeEnum { + IFC2X32.IfcRelConnectsWithEccentricity = IfcRelConnectsWithEccentricity; + class IfcRelConnectsWithRealizingElements extends IfcRelConnectsElements { + constructor(GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement, RealizingElements, ConnectionType) { + super(GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ConnectionGeometry = ConnectionGeometry; + this.RelatingElement = RelatingElement; + this.RelatedElement = RelatedElement; + this.RealizingElements = RealizingElements; + this.ConnectionType = ConnectionType; + this.type = 3678494232; + } } - IfcStairFlightTypeEnum.STRAIGHT = { type: 3, value: "STRAIGHT" }; - IfcStairFlightTypeEnum.WINDER = { type: 3, value: "WINDER" }; - IfcStairFlightTypeEnum.SPIRAL = { type: 3, value: "SPIRAL" }; - IfcStairFlightTypeEnum.CURVED = { type: 3, value: "CURVED" }; - IfcStairFlightTypeEnum.FREEFORM = { type: 3, value: "FREEFORM" }; - IfcStairFlightTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcStairFlightTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcStairFlightTypeEnum = IfcStairFlightTypeEnum; - class IfcStairTypeEnum { + IFC2X32.IfcRelConnectsWithRealizingElements = IfcRelConnectsWithRealizingElements; + class IfcRelContainedInSpatialStructure extends IfcRelConnects { + constructor(GlobalId, OwnerHistory, Name, Description, RelatedElements, RelatingStructure) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedElements = RelatedElements; + this.RelatingStructure = RelatingStructure; + this.type = 3242617779; + } } - IfcStairTypeEnum.STRAIGHT_RUN_STAIR = { type: 3, value: "STRAIGHT_RUN_STAIR" }; - IfcStairTypeEnum.TWO_STRAIGHT_RUN_STAIR = { type: 3, value: "TWO_STRAIGHT_RUN_STAIR" }; - IfcStairTypeEnum.QUARTER_WINDING_STAIR = { type: 3, value: "QUARTER_WINDING_STAIR" }; - IfcStairTypeEnum.QUARTER_TURN_STAIR = { type: 3, value: "QUARTER_TURN_STAIR" }; - IfcStairTypeEnum.HALF_WINDING_STAIR = { type: 3, value: "HALF_WINDING_STAIR" }; - IfcStairTypeEnum.HALF_TURN_STAIR = { type: 3, value: "HALF_TURN_STAIR" }; - IfcStairTypeEnum.TWO_QUARTER_WINDING_STAIR = { type: 3, value: "TWO_QUARTER_WINDING_STAIR" }; - IfcStairTypeEnum.TWO_QUARTER_TURN_STAIR = { type: 3, value: "TWO_QUARTER_TURN_STAIR" }; - IfcStairTypeEnum.THREE_QUARTER_WINDING_STAIR = { type: 3, value: "THREE_QUARTER_WINDING_STAIR" }; - IfcStairTypeEnum.THREE_QUARTER_TURN_STAIR = { type: 3, value: "THREE_QUARTER_TURN_STAIR" }; - IfcStairTypeEnum.SPIRAL_STAIR = { type: 3, value: "SPIRAL_STAIR" }; - IfcStairTypeEnum.DOUBLE_RETURN_STAIR = { type: 3, value: "DOUBLE_RETURN_STAIR" }; - IfcStairTypeEnum.CURVED_RUN_STAIR = { type: 3, value: "CURVED_RUN_STAIR" }; - IfcStairTypeEnum.TWO_CURVED_RUN_STAIR = { type: 3, value: "TWO_CURVED_RUN_STAIR" }; - IfcStairTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcStairTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcStairTypeEnum = IfcStairTypeEnum; - class IfcStateEnum { + IFC2X32.IfcRelContainedInSpatialStructure = IfcRelContainedInSpatialStructure; + class IfcRelCoversBldgElements extends IfcRelConnects { + constructor(GlobalId, OwnerHistory, Name, Description, RelatingBuildingElement, RelatedCoverings) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingBuildingElement = RelatingBuildingElement; + this.RelatedCoverings = RelatedCoverings; + this.type = 886880790; + } } - IfcStateEnum.READWRITE = { type: 3, value: "READWRITE" }; - IfcStateEnum.READONLY = { type: 3, value: "READONLY" }; - IfcStateEnum.LOCKED = { type: 3, value: "LOCKED" }; - IfcStateEnum.READWRITELOCKED = { type: 3, value: "READWRITELOCKED" }; - IfcStateEnum.READONLYLOCKED = { type: 3, value: "READONLYLOCKED" }; - IFC2X32.IfcStateEnum = IfcStateEnum; - class IfcStructuralCurveTypeEnum { + IFC2X32.IfcRelCoversBldgElements = IfcRelCoversBldgElements; + class IfcRelCoversSpaces extends IfcRelConnects { + constructor(GlobalId, OwnerHistory, Name, Description, RelatedSpace, RelatedCoverings) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedSpace = RelatedSpace; + this.RelatedCoverings = RelatedCoverings; + this.type = 2802773753; + } } - IfcStructuralCurveTypeEnum.RIGID_JOINED_MEMBER = { type: 3, value: "RIGID_JOINED_MEMBER" }; - IfcStructuralCurveTypeEnum.PIN_JOINED_MEMBER = { type: 3, value: "PIN_JOINED_MEMBER" }; - IfcStructuralCurveTypeEnum.CABLE = { type: 3, value: "CABLE" }; - IfcStructuralCurveTypeEnum.TENSION_MEMBER = { type: 3, value: "TENSION_MEMBER" }; - IfcStructuralCurveTypeEnum.COMPRESSION_MEMBER = { type: 3, value: "COMPRESSION_MEMBER" }; - IfcStructuralCurveTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcStructuralCurveTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcStructuralCurveTypeEnum = IfcStructuralCurveTypeEnum; - class IfcStructuralSurfaceTypeEnum { + IFC2X32.IfcRelCoversSpaces = IfcRelCoversSpaces; + class IfcRelDecomposes extends IfcRelationship { + constructor(GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingObject = RelatingObject; + this.RelatedObjects = RelatedObjects; + this.type = 2551354335; + } } - IfcStructuralSurfaceTypeEnum.BENDING_ELEMENT = { type: 3, value: "BENDING_ELEMENT" }; - IfcStructuralSurfaceTypeEnum.MEMBRANE_ELEMENT = { type: 3, value: "MEMBRANE_ELEMENT" }; - IfcStructuralSurfaceTypeEnum.SHELL = { type: 3, value: "SHELL" }; - IfcStructuralSurfaceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcStructuralSurfaceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcStructuralSurfaceTypeEnum = IfcStructuralSurfaceTypeEnum; - class IfcSurfaceSide { + IFC2X32.IfcRelDecomposes = IfcRelDecomposes; + class IfcRelDefines extends IfcRelationship { + constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.type = 693640335; + } } - IfcSurfaceSide.POSITIVE = { type: 3, value: "POSITIVE" }; - IfcSurfaceSide.NEGATIVE = { type: 3, value: "NEGATIVE" }; - IfcSurfaceSide.BOTH = { type: 3, value: "BOTH" }; - IFC2X32.IfcSurfaceSide = IfcSurfaceSide; - class IfcSurfaceTextureEnum { + IFC2X32.IfcRelDefines = IfcRelDefines; + class IfcRelDefinesByProperties extends IfcRelDefines { + constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingPropertyDefinition) { + super(GlobalId, OwnerHistory, Name, Description, RelatedObjects); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatingPropertyDefinition = RelatingPropertyDefinition; + this.type = 4186316022; + } } - IfcSurfaceTextureEnum.BUMP = { type: 3, value: "BUMP" }; - IfcSurfaceTextureEnum.OPACITY = { type: 3, value: "OPACITY" }; - IfcSurfaceTextureEnum.REFLECTION = { type: 3, value: "REFLECTION" }; - IfcSurfaceTextureEnum.SELFILLUMINATION = { type: 3, value: "SELFILLUMINATION" }; - IfcSurfaceTextureEnum.SHININESS = { type: 3, value: "SHININESS" }; - IfcSurfaceTextureEnum.SPECULAR = { type: 3, value: "SPECULAR" }; - IfcSurfaceTextureEnum.TEXTURE = { type: 3, value: "TEXTURE" }; - IfcSurfaceTextureEnum.TRANSPARENCYMAP = { type: 3, value: "TRANSPARENCYMAP" }; - IfcSurfaceTextureEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcSurfaceTextureEnum = IfcSurfaceTextureEnum; - class IfcSwitchingDeviceTypeEnum { + IFC2X32.IfcRelDefinesByProperties = IfcRelDefinesByProperties; + class IfcRelDefinesByType extends IfcRelDefines { + constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingType) { + super(GlobalId, OwnerHistory, Name, Description, RelatedObjects); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatingType = RelatingType; + this.type = 781010003; + } } - IfcSwitchingDeviceTypeEnum.CONTACTOR = { type: 3, value: "CONTACTOR" }; - IfcSwitchingDeviceTypeEnum.EMERGENCYSTOP = { type: 3, value: "EMERGENCYSTOP" }; - IfcSwitchingDeviceTypeEnum.STARTER = { type: 3, value: "STARTER" }; - IfcSwitchingDeviceTypeEnum.SWITCHDISCONNECTOR = { type: 3, value: "SWITCHDISCONNECTOR" }; - IfcSwitchingDeviceTypeEnum.TOGGLESWITCH = { type: 3, value: "TOGGLESWITCH" }; - IfcSwitchingDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSwitchingDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcSwitchingDeviceTypeEnum = IfcSwitchingDeviceTypeEnum; - class IfcTankTypeEnum { + IFC2X32.IfcRelDefinesByType = IfcRelDefinesByType; + class IfcRelFillsElement extends IfcRelConnects { + constructor(GlobalId, OwnerHistory, Name, Description, RelatingOpeningElement, RelatedBuildingElement) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingOpeningElement = RelatingOpeningElement; + this.RelatedBuildingElement = RelatedBuildingElement; + this.type = 3940055652; + } } - IfcTankTypeEnum.PREFORMED = { type: 3, value: "PREFORMED" }; - IfcTankTypeEnum.SECTIONAL = { type: 3, value: "SECTIONAL" }; - IfcTankTypeEnum.EXPANSION = { type: 3, value: "EXPANSION" }; - IfcTankTypeEnum.PRESSUREVESSEL = { type: 3, value: "PRESSUREVESSEL" }; - IfcTankTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcTankTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcTankTypeEnum = IfcTankTypeEnum; - class IfcTendonTypeEnum { + IFC2X32.IfcRelFillsElement = IfcRelFillsElement; + class IfcRelFlowControlElements extends IfcRelConnects { + constructor(GlobalId, OwnerHistory, Name, Description, RelatedControlElements, RelatingFlowElement) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedControlElements = RelatedControlElements; + this.RelatingFlowElement = RelatingFlowElement; + this.type = 279856033; + } } - IfcTendonTypeEnum.STRAND = { type: 3, value: "STRAND" }; - IfcTendonTypeEnum.WIRE = { type: 3, value: "WIRE" }; - IfcTendonTypeEnum.BAR = { type: 3, value: "BAR" }; - IfcTendonTypeEnum.COATED = { type: 3, value: "COATED" }; - IfcTendonTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcTendonTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcTendonTypeEnum = IfcTendonTypeEnum; - class IfcTextPath { + IFC2X32.IfcRelFlowControlElements = IfcRelFlowControlElements; + class IfcRelInteractionRequirements extends IfcRelConnects { + constructor(GlobalId, OwnerHistory, Name, Description, DailyInteraction, ImportanceRating, LocationOfInteraction, RelatedSpaceProgram, RelatingSpaceProgram) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.DailyInteraction = DailyInteraction; + this.ImportanceRating = ImportanceRating; + this.LocationOfInteraction = LocationOfInteraction; + this.RelatedSpaceProgram = RelatedSpaceProgram; + this.RelatingSpaceProgram = RelatingSpaceProgram; + this.type = 4189434867; + } } - IfcTextPath.LEFT = { type: 3, value: "LEFT" }; - IfcTextPath.RIGHT = { type: 3, value: "RIGHT" }; - IfcTextPath.UP = { type: 3, value: "UP" }; - IfcTextPath.DOWN = { type: 3, value: "DOWN" }; - IFC2X32.IfcTextPath = IfcTextPath; - class IfcThermalLoadSourceEnum { + IFC2X32.IfcRelInteractionRequirements = IfcRelInteractionRequirements; + class IfcRelNests extends IfcRelDecomposes { + constructor(GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects) { + super(GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingObject = RelatingObject; + this.RelatedObjects = RelatedObjects; + this.type = 3268803585; + } } - IfcThermalLoadSourceEnum.PEOPLE = { type: 3, value: "PEOPLE" }; - IfcThermalLoadSourceEnum.LIGHTING = { type: 3, value: "LIGHTING" }; - IfcThermalLoadSourceEnum.EQUIPMENT = { type: 3, value: "EQUIPMENT" }; - IfcThermalLoadSourceEnum.VENTILATIONINDOORAIR = { type: 3, value: "VENTILATIONINDOORAIR" }; - IfcThermalLoadSourceEnum.VENTILATIONOUTSIDEAIR = { type: 3, value: "VENTILATIONOUTSIDEAIR" }; - IfcThermalLoadSourceEnum.RECIRCULATEDAIR = { type: 3, value: "RECIRCULATEDAIR" }; - IfcThermalLoadSourceEnum.EXHAUSTAIR = { type: 3, value: "EXHAUSTAIR" }; - IfcThermalLoadSourceEnum.AIREXCHANGERATE = { type: 3, value: "AIREXCHANGERATE" }; - IfcThermalLoadSourceEnum.DRYBULBTEMPERATURE = { type: 3, value: "DRYBULBTEMPERATURE" }; - IfcThermalLoadSourceEnum.RELATIVEHUMIDITY = { type: 3, value: "RELATIVEHUMIDITY" }; - IfcThermalLoadSourceEnum.INFILTRATION = { type: 3, value: "INFILTRATION" }; - IfcThermalLoadSourceEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcThermalLoadSourceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcThermalLoadSourceEnum = IfcThermalLoadSourceEnum; - class IfcThermalLoadTypeEnum { + IFC2X32.IfcRelNests = IfcRelNests; + class IfcRelOccupiesSpaces extends IfcRelAssignsToActor { + constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingActor, ActingRole) { + super(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingActor, ActingRole); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatedObjectsType = RelatedObjectsType; + this.RelatingActor = RelatingActor; + this.ActingRole = ActingRole; + this.type = 2051452291; + } } - IfcThermalLoadTypeEnum.SENSIBLE = { type: 3, value: "SENSIBLE" }; - IfcThermalLoadTypeEnum.LATENT = { type: 3, value: "LATENT" }; - IfcThermalLoadTypeEnum.RADIANT = { type: 3, value: "RADIANT" }; - IfcThermalLoadTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcThermalLoadTypeEnum = IfcThermalLoadTypeEnum; - class IfcTimeSeriesDataTypeEnum { + IFC2X32.IfcRelOccupiesSpaces = IfcRelOccupiesSpaces; + class IfcRelOverridesProperties extends IfcRelDefinesByProperties { + constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingPropertyDefinition, OverridingProperties) { + super(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingPropertyDefinition); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatingPropertyDefinition = RelatingPropertyDefinition; + this.OverridingProperties = OverridingProperties; + this.type = 202636808; + } } - IfcTimeSeriesDataTypeEnum.CONTINUOUS = { type: 3, value: "CONTINUOUS" }; - IfcTimeSeriesDataTypeEnum.DISCRETE = { type: 3, value: "DISCRETE" }; - IfcTimeSeriesDataTypeEnum.DISCRETEBINARY = { type: 3, value: "DISCRETEBINARY" }; - IfcTimeSeriesDataTypeEnum.PIECEWISEBINARY = { type: 3, value: "PIECEWISEBINARY" }; - IfcTimeSeriesDataTypeEnum.PIECEWISECONSTANT = { type: 3, value: "PIECEWISECONSTANT" }; - IfcTimeSeriesDataTypeEnum.PIECEWISECONTINUOUS = { type: 3, value: "PIECEWISECONTINUOUS" }; - IfcTimeSeriesDataTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcTimeSeriesDataTypeEnum = IfcTimeSeriesDataTypeEnum; - class IfcTimeSeriesScheduleTypeEnum { + IFC2X32.IfcRelOverridesProperties = IfcRelOverridesProperties; + class IfcRelProjectsElement extends IfcRelConnects { + constructor(GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedFeatureElement) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingElement = RelatingElement; + this.RelatedFeatureElement = RelatedFeatureElement; + this.type = 750771296; + } } - IfcTimeSeriesScheduleTypeEnum.ANNUAL = { type: 3, value: "ANNUAL" }; - IfcTimeSeriesScheduleTypeEnum.MONTHLY = { type: 3, value: "MONTHLY" }; - IfcTimeSeriesScheduleTypeEnum.WEEKLY = { type: 3, value: "WEEKLY" }; - IfcTimeSeriesScheduleTypeEnum.DAILY = { type: 3, value: "DAILY" }; - IfcTimeSeriesScheduleTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcTimeSeriesScheduleTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcTimeSeriesScheduleTypeEnum = IfcTimeSeriesScheduleTypeEnum; - class IfcTransformerTypeEnum { + IFC2X32.IfcRelProjectsElement = IfcRelProjectsElement; + class IfcRelReferencedInSpatialStructure extends IfcRelConnects { + constructor(GlobalId, OwnerHistory, Name, Description, RelatedElements, RelatingStructure) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedElements = RelatedElements; + this.RelatingStructure = RelatingStructure; + this.type = 1245217292; + } } - IfcTransformerTypeEnum.CURRENT = { type: 3, value: "CURRENT" }; - IfcTransformerTypeEnum.FREQUENCY = { type: 3, value: "FREQUENCY" }; - IfcTransformerTypeEnum.VOLTAGE = { type: 3, value: "VOLTAGE" }; - IfcTransformerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcTransformerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcTransformerTypeEnum = IfcTransformerTypeEnum; - class IfcTransitionCode { + IFC2X32.IfcRelReferencedInSpatialStructure = IfcRelReferencedInSpatialStructure; + class IfcRelSchedulesCostItems extends IfcRelAssignsToControl { + constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl) { + super(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatedObjectsType = RelatedObjectsType; + this.RelatingControl = RelatingControl; + this.type = 1058617721; + } } - IfcTransitionCode.DISCONTINUOUS = { type: 3, value: "DISCONTINUOUS" }; - IfcTransitionCode.CONTINUOUS = { type: 3, value: "CONTINUOUS" }; - IfcTransitionCode.CONTSAMEGRADIENT = { type: 3, value: "CONTSAMEGRADIENT" }; - IfcTransitionCode.CONTSAMEGRADIENTSAMECURVATURE = { type: 3, value: "CONTSAMEGRADIENTSAMECURVATURE" }; - IFC2X32.IfcTransitionCode = IfcTransitionCode; - class IfcTransportElementTypeEnum { + IFC2X32.IfcRelSchedulesCostItems = IfcRelSchedulesCostItems; + class IfcRelSequence extends IfcRelConnects { + constructor(GlobalId, OwnerHistory, Name, Description, RelatingProcess, RelatedProcess, TimeLag, SequenceType) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingProcess = RelatingProcess; + this.RelatedProcess = RelatedProcess; + this.TimeLag = TimeLag; + this.SequenceType = SequenceType; + this.type = 4122056220; + } } - IfcTransportElementTypeEnum.ELEVATOR = { type: 3, value: "ELEVATOR" }; - IfcTransportElementTypeEnum.ESCALATOR = { type: 3, value: "ESCALATOR" }; - IfcTransportElementTypeEnum.MOVINGWALKWAY = { type: 3, value: "MOVINGWALKWAY" }; - IfcTransportElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcTransportElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcTransportElementTypeEnum = IfcTransportElementTypeEnum; - class IfcTrimmingPreference { + IFC2X32.IfcRelSequence = IfcRelSequence; + class IfcRelServicesBuildings extends IfcRelConnects { + constructor(GlobalId, OwnerHistory, Name, Description, RelatingSystem, RelatedBuildings) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingSystem = RelatingSystem; + this.RelatedBuildings = RelatedBuildings; + this.type = 366585022; + } } - IfcTrimmingPreference.CARTESIAN = { type: 3, value: "CARTESIAN" }; - IfcTrimmingPreference.PARAMETER = { type: 3, value: "PARAMETER" }; - IfcTrimmingPreference.UNSPECIFIED = { type: 3, value: "UNSPECIFIED" }; - IFC2X32.IfcTrimmingPreference = IfcTrimmingPreference; - class IfcTubeBundleTypeEnum { + IFC2X32.IfcRelServicesBuildings = IfcRelServicesBuildings; + class IfcRelSpaceBoundary extends IfcRelConnects { + constructor(GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingSpace = RelatingSpace; + this.RelatedBuildingElement = RelatedBuildingElement; + this.ConnectionGeometry = ConnectionGeometry; + this.PhysicalOrVirtualBoundary = PhysicalOrVirtualBoundary; + this.InternalOrExternalBoundary = InternalOrExternalBoundary; + this.type = 3451746338; + } } - IfcTubeBundleTypeEnum.FINNED = { type: 3, value: "FINNED" }; - IfcTubeBundleTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcTubeBundleTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcTubeBundleTypeEnum = IfcTubeBundleTypeEnum; - class IfcUnitEnum { + IFC2X32.IfcRelSpaceBoundary = IfcRelSpaceBoundary; + class IfcRelVoidsElement extends IfcRelConnects { + constructor(GlobalId, OwnerHistory, Name, Description, RelatingBuildingElement, RelatedOpeningElement) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingBuildingElement = RelatingBuildingElement; + this.RelatedOpeningElement = RelatedOpeningElement; + this.type = 1401173127; + } } - IfcUnitEnum.ABSORBEDDOSEUNIT = { type: 3, value: "ABSORBEDDOSEUNIT" }; - IfcUnitEnum.AMOUNTOFSUBSTANCEUNIT = { type: 3, value: "AMOUNTOFSUBSTANCEUNIT" }; - IfcUnitEnum.AREAUNIT = { type: 3, value: "AREAUNIT" }; - IfcUnitEnum.DOSEEQUIVALENTUNIT = { type: 3, value: "DOSEEQUIVALENTUNIT" }; - IfcUnitEnum.ELECTRICCAPACITANCEUNIT = { type: 3, value: "ELECTRICCAPACITANCEUNIT" }; - IfcUnitEnum.ELECTRICCHARGEUNIT = { type: 3, value: "ELECTRICCHARGEUNIT" }; - IfcUnitEnum.ELECTRICCONDUCTANCEUNIT = { type: 3, value: "ELECTRICCONDUCTANCEUNIT" }; - IfcUnitEnum.ELECTRICCURRENTUNIT = { type: 3, value: "ELECTRICCURRENTUNIT" }; - IfcUnitEnum.ELECTRICRESISTANCEUNIT = { type: 3, value: "ELECTRICRESISTANCEUNIT" }; - IfcUnitEnum.ELECTRICVOLTAGEUNIT = { type: 3, value: "ELECTRICVOLTAGEUNIT" }; - IfcUnitEnum.ENERGYUNIT = { type: 3, value: "ENERGYUNIT" }; - IfcUnitEnum.FORCEUNIT = { type: 3, value: "FORCEUNIT" }; - IfcUnitEnum.FREQUENCYUNIT = { type: 3, value: "FREQUENCYUNIT" }; - IfcUnitEnum.ILLUMINANCEUNIT = { type: 3, value: "ILLUMINANCEUNIT" }; - IfcUnitEnum.INDUCTANCEUNIT = { type: 3, value: "INDUCTANCEUNIT" }; - IfcUnitEnum.LENGTHUNIT = { type: 3, value: "LENGTHUNIT" }; - IfcUnitEnum.LUMINOUSFLUXUNIT = { type: 3, value: "LUMINOUSFLUXUNIT" }; - IfcUnitEnum.LUMINOUSINTENSITYUNIT = { type: 3, value: "LUMINOUSINTENSITYUNIT" }; - IfcUnitEnum.MAGNETICFLUXDENSITYUNIT = { type: 3, value: "MAGNETICFLUXDENSITYUNIT" }; - IfcUnitEnum.MAGNETICFLUXUNIT = { type: 3, value: "MAGNETICFLUXUNIT" }; - IfcUnitEnum.MASSUNIT = { type: 3, value: "MASSUNIT" }; - IfcUnitEnum.PLANEANGLEUNIT = { type: 3, value: "PLANEANGLEUNIT" }; - IfcUnitEnum.POWERUNIT = { type: 3, value: "POWERUNIT" }; - IfcUnitEnum.PRESSUREUNIT = { type: 3, value: "PRESSUREUNIT" }; - IfcUnitEnum.RADIOACTIVITYUNIT = { type: 3, value: "RADIOACTIVITYUNIT" }; - IfcUnitEnum.SOLIDANGLEUNIT = { type: 3, value: "SOLIDANGLEUNIT" }; - IfcUnitEnum.THERMODYNAMICTEMPERATUREUNIT = { type: 3, value: "THERMODYNAMICTEMPERATUREUNIT" }; - IfcUnitEnum.TIMEUNIT = { type: 3, value: "TIMEUNIT" }; - IfcUnitEnum.VOLUMEUNIT = { type: 3, value: "VOLUMEUNIT" }; - IfcUnitEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IFC2X32.IfcUnitEnum = IfcUnitEnum; - class IfcUnitaryEquipmentTypeEnum { + IFC2X32.IfcRelVoidsElement = IfcRelVoidsElement; + class IfcResource extends IfcObject { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.type = 2914609552; + } + } + IFC2X32.IfcResource = IfcResource; + class IfcRevolvedAreaSolid extends IfcSweptAreaSolid { + constructor(SweptArea, Position, Axis, Angle) { + super(SweptArea, Position); + this.SweptArea = SweptArea; + this.Position = Position; + this.Axis = Axis; + this.Angle = Angle; + this.type = 1856042241; + } } - IfcUnitaryEquipmentTypeEnum.AIRHANDLER = { type: 3, value: "AIRHANDLER" }; - IfcUnitaryEquipmentTypeEnum.AIRCONDITIONINGUNIT = { type: 3, value: "AIRCONDITIONINGUNIT" }; - IfcUnitaryEquipmentTypeEnum.SPLITSYSTEM = { type: 3, value: "SPLITSYSTEM" }; - IfcUnitaryEquipmentTypeEnum.ROOFTOPUNIT = { type: 3, value: "ROOFTOPUNIT" }; - IfcUnitaryEquipmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcUnitaryEquipmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcUnitaryEquipmentTypeEnum = IfcUnitaryEquipmentTypeEnum; - class IfcValveTypeEnum { + IFC2X32.IfcRevolvedAreaSolid = IfcRevolvedAreaSolid; + class IfcRightCircularCone extends IfcCsgPrimitive3D { + constructor(Position, Height, BottomRadius) { + super(Position); + this.Position = Position; + this.Height = Height; + this.BottomRadius = BottomRadius; + this.type = 4158566097; + } } - IfcValveTypeEnum.AIRRELEASE = { type: 3, value: "AIRRELEASE" }; - IfcValveTypeEnum.ANTIVACUUM = { type: 3, value: "ANTIVACUUM" }; - IfcValveTypeEnum.CHANGEOVER = { type: 3, value: "CHANGEOVER" }; - IfcValveTypeEnum.CHECK = { type: 3, value: "CHECK" }; - IfcValveTypeEnum.COMMISSIONING = { type: 3, value: "COMMISSIONING" }; - IfcValveTypeEnum.DIVERTING = { type: 3, value: "DIVERTING" }; - IfcValveTypeEnum.DRAWOFFCOCK = { type: 3, value: "DRAWOFFCOCK" }; - IfcValveTypeEnum.DOUBLECHECK = { type: 3, value: "DOUBLECHECK" }; - IfcValveTypeEnum.DOUBLEREGULATING = { type: 3, value: "DOUBLEREGULATING" }; - IfcValveTypeEnum.FAUCET = { type: 3, value: "FAUCET" }; - IfcValveTypeEnum.FLUSHING = { type: 3, value: "FLUSHING" }; - IfcValveTypeEnum.GASCOCK = { type: 3, value: "GASCOCK" }; - IfcValveTypeEnum.GASTAP = { type: 3, value: "GASTAP" }; - IfcValveTypeEnum.ISOLATING = { type: 3, value: "ISOLATING" }; - IfcValveTypeEnum.MIXING = { type: 3, value: "MIXING" }; - IfcValveTypeEnum.PRESSUREREDUCING = { type: 3, value: "PRESSUREREDUCING" }; - IfcValveTypeEnum.PRESSURERELIEF = { type: 3, value: "PRESSURERELIEF" }; - IfcValveTypeEnum.REGULATING = { type: 3, value: "REGULATING" }; - IfcValveTypeEnum.SAFETYCUTOFF = { type: 3, value: "SAFETYCUTOFF" }; - IfcValveTypeEnum.STEAMTRAP = { type: 3, value: "STEAMTRAP" }; - IfcValveTypeEnum.STOPCOCK = { type: 3, value: "STOPCOCK" }; - IfcValveTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcValveTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcValveTypeEnum = IfcValveTypeEnum; - class IfcVibrationIsolatorTypeEnum { + IFC2X32.IfcRightCircularCone = IfcRightCircularCone; + class IfcRightCircularCylinder extends IfcCsgPrimitive3D { + constructor(Position, Height, Radius) { + super(Position); + this.Position = Position; + this.Height = Height; + this.Radius = Radius; + this.type = 3626867408; + } } - IfcVibrationIsolatorTypeEnum.COMPRESSION = { type: 3, value: "COMPRESSION" }; - IfcVibrationIsolatorTypeEnum.SPRING = { type: 3, value: "SPRING" }; - IfcVibrationIsolatorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcVibrationIsolatorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcVibrationIsolatorTypeEnum = IfcVibrationIsolatorTypeEnum; - class IfcWallTypeEnum { + IFC2X32.IfcRightCircularCylinder = IfcRightCircularCylinder; + class IfcSpatialStructureElement extends IfcProduct { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.LongName = LongName; + this.CompositionType = CompositionType; + this.type = 2706606064; + } } - IfcWallTypeEnum.STANDARD = { type: 3, value: "STANDARD" }; - IfcWallTypeEnum.POLYGONAL = { type: 3, value: "POLYGONAL" }; - IfcWallTypeEnum.SHEAR = { type: 3, value: "SHEAR" }; - IfcWallTypeEnum.ELEMENTEDWALL = { type: 3, value: "ELEMENTEDWALL" }; - IfcWallTypeEnum.PLUMBINGWALL = { type: 3, value: "PLUMBINGWALL" }; - IfcWallTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcWallTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcWallTypeEnum = IfcWallTypeEnum; - class IfcWasteTerminalTypeEnum { + IFC2X32.IfcSpatialStructureElement = IfcSpatialStructureElement; + class IfcSpatialStructureElementType extends IfcElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 3893378262; + } } - IfcWasteTerminalTypeEnum.FLOORTRAP = { type: 3, value: "FLOORTRAP" }; - IfcWasteTerminalTypeEnum.FLOORWASTE = { type: 3, value: "FLOORWASTE" }; - IfcWasteTerminalTypeEnum.GULLYSUMP = { type: 3, value: "GULLYSUMP" }; - IfcWasteTerminalTypeEnum.GULLYTRAP = { type: 3, value: "GULLYTRAP" }; - IfcWasteTerminalTypeEnum.GREASEINTERCEPTOR = { type: 3, value: "GREASEINTERCEPTOR" }; - IfcWasteTerminalTypeEnum.OILINTERCEPTOR = { type: 3, value: "OILINTERCEPTOR" }; - IfcWasteTerminalTypeEnum.PETROLINTERCEPTOR = { type: 3, value: "PETROLINTERCEPTOR" }; - IfcWasteTerminalTypeEnum.ROOFDRAIN = { type: 3, value: "ROOFDRAIN" }; - IfcWasteTerminalTypeEnum.WASTEDISPOSALUNIT = { type: 3, value: "WASTEDISPOSALUNIT" }; - IfcWasteTerminalTypeEnum.WASTETRAP = { type: 3, value: "WASTETRAP" }; - IfcWasteTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcWasteTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcWasteTerminalTypeEnum = IfcWasteTerminalTypeEnum; - class IfcWindowPanelOperationEnum { + IFC2X32.IfcSpatialStructureElementType = IfcSpatialStructureElementType; + class IfcSphere extends IfcCsgPrimitive3D { + constructor(Position, Radius) { + super(Position); + this.Position = Position; + this.Radius = Radius; + this.type = 451544542; + } } - IfcWindowPanelOperationEnum.SIDEHUNGRIGHTHAND = { type: 3, value: "SIDEHUNGRIGHTHAND" }; - IfcWindowPanelOperationEnum.SIDEHUNGLEFTHAND = { type: 3, value: "SIDEHUNGLEFTHAND" }; - IfcWindowPanelOperationEnum.TILTANDTURNRIGHTHAND = { type: 3, value: "TILTANDTURNRIGHTHAND" }; - IfcWindowPanelOperationEnum.TILTANDTURNLEFTHAND = { type: 3, value: "TILTANDTURNLEFTHAND" }; - IfcWindowPanelOperationEnum.TOPHUNG = { type: 3, value: "TOPHUNG" }; - IfcWindowPanelOperationEnum.BOTTOMHUNG = { type: 3, value: "BOTTOMHUNG" }; - IfcWindowPanelOperationEnum.PIVOTHORIZONTAL = { type: 3, value: "PIVOTHORIZONTAL" }; - IfcWindowPanelOperationEnum.PIVOTVERTICAL = { type: 3, value: "PIVOTVERTICAL" }; - IfcWindowPanelOperationEnum.SLIDINGHORIZONTAL = { type: 3, value: "SLIDINGHORIZONTAL" }; - IfcWindowPanelOperationEnum.SLIDINGVERTICAL = { type: 3, value: "SLIDINGVERTICAL" }; - IfcWindowPanelOperationEnum.REMOVABLECASEMENT = { type: 3, value: "REMOVABLECASEMENT" }; - IfcWindowPanelOperationEnum.FIXEDCASEMENT = { type: 3, value: "FIXEDCASEMENT" }; - IfcWindowPanelOperationEnum.OTHEROPERATION = { type: 3, value: "OTHEROPERATION" }; - IfcWindowPanelOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcWindowPanelOperationEnum = IfcWindowPanelOperationEnum; - class IfcWindowPanelPositionEnum { + IFC2X32.IfcSphere = IfcSphere; + class IfcStructuralActivity extends IfcProduct { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedLoad = AppliedLoad; + this.GlobalOrLocal = GlobalOrLocal; + this.type = 3544373492; + } } - IfcWindowPanelPositionEnum.LEFT = { type: 3, value: "LEFT" }; - IfcWindowPanelPositionEnum.MIDDLE = { type: 3, value: "MIDDLE" }; - IfcWindowPanelPositionEnum.RIGHT = { type: 3, value: "RIGHT" }; - IfcWindowPanelPositionEnum.BOTTOM = { type: 3, value: "BOTTOM" }; - IfcWindowPanelPositionEnum.TOP = { type: 3, value: "TOP" }; - IfcWindowPanelPositionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcWindowPanelPositionEnum = IfcWindowPanelPositionEnum; - class IfcWindowStyleConstructionEnum { + IFC2X32.IfcStructuralActivity = IfcStructuralActivity; + class IfcStructuralItem extends IfcProduct { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.type = 3136571912; + } } - IfcWindowStyleConstructionEnum.ALUMINIUM = { type: 3, value: "ALUMINIUM" }; - IfcWindowStyleConstructionEnum.HIGH_GRADE_STEEL = { type: 3, value: "HIGH_GRADE_STEEL" }; - IfcWindowStyleConstructionEnum.STEEL = { type: 3, value: "STEEL" }; - IfcWindowStyleConstructionEnum.WOOD = { type: 3, value: "WOOD" }; - IfcWindowStyleConstructionEnum.ALUMINIUM_WOOD = { type: 3, value: "ALUMINIUM_WOOD" }; - IfcWindowStyleConstructionEnum.PLASTIC = { type: 3, value: "PLASTIC" }; - IfcWindowStyleConstructionEnum.OTHER_CONSTRUCTION = { type: 3, value: "OTHER_CONSTRUCTION" }; - IfcWindowStyleConstructionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcWindowStyleConstructionEnum = IfcWindowStyleConstructionEnum; - class IfcWindowStyleOperationEnum { + IFC2X32.IfcStructuralItem = IfcStructuralItem; + class IfcStructuralMember extends IfcStructuralItem { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.type = 530289379; + } } - IfcWindowStyleOperationEnum.SINGLE_PANEL = { type: 3, value: "SINGLE_PANEL" }; - IfcWindowStyleOperationEnum.DOUBLE_PANEL_VERTICAL = { type: 3, value: "DOUBLE_PANEL_VERTICAL" }; - IfcWindowStyleOperationEnum.DOUBLE_PANEL_HORIZONTAL = { type: 3, value: "DOUBLE_PANEL_HORIZONTAL" }; - IfcWindowStyleOperationEnum.TRIPLE_PANEL_VERTICAL = { type: 3, value: "TRIPLE_PANEL_VERTICAL" }; - IfcWindowStyleOperationEnum.TRIPLE_PANEL_BOTTOM = { type: 3, value: "TRIPLE_PANEL_BOTTOM" }; - IfcWindowStyleOperationEnum.TRIPLE_PANEL_TOP = { type: 3, value: "TRIPLE_PANEL_TOP" }; - IfcWindowStyleOperationEnum.TRIPLE_PANEL_LEFT = { type: 3, value: "TRIPLE_PANEL_LEFT" }; - IfcWindowStyleOperationEnum.TRIPLE_PANEL_RIGHT = { type: 3, value: "TRIPLE_PANEL_RIGHT" }; - IfcWindowStyleOperationEnum.TRIPLE_PANEL_HORIZONTAL = { type: 3, value: "TRIPLE_PANEL_HORIZONTAL" }; - IfcWindowStyleOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcWindowStyleOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcWindowStyleOperationEnum = IfcWindowStyleOperationEnum; - class IfcWorkControlTypeEnum { + IFC2X32.IfcStructuralMember = IfcStructuralMember; + class IfcStructuralReaction extends IfcStructuralActivity { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedLoad = AppliedLoad; + this.GlobalOrLocal = GlobalOrLocal; + this.type = 3689010777; + } } - IfcWorkControlTypeEnum.ACTUAL = { type: 3, value: "ACTUAL" }; - IfcWorkControlTypeEnum.BASELINE = { type: 3, value: "BASELINE" }; - IfcWorkControlTypeEnum.PLANNED = { type: 3, value: "PLANNED" }; - IfcWorkControlTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcWorkControlTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcWorkControlTypeEnum = IfcWorkControlTypeEnum; - class IfcActorRole extends IfcLineObject { - constructor(expressID, Role, UserDefinedRole, Description) { - super(expressID); - this.Role = Role; - this.UserDefinedRole = UserDefinedRole; + IFC2X32.IfcStructuralReaction = IfcStructuralReaction; + class IfcStructuralSurfaceMember extends IfcStructuralMember { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; this.Description = Description; - this.type = 3630933823; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.PredefinedType = PredefinedType; + this.Thickness = Thickness; + this.type = 3979015343; } } - IFC2X32.IfcActorRole = IfcActorRole; - class IfcAddress extends IfcLineObject { - constructor(expressID, Purpose, Description, UserDefinedPurpose) { - super(expressID); - this.Purpose = Purpose; + IFC2X32.IfcStructuralSurfaceMember = IfcStructuralSurfaceMember; + class IfcStructuralSurfaceMemberVarying extends IfcStructuralSurfaceMember { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness, SubsequentThickness, VaryingThicknessLocation) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; this.Description = Description; - this.UserDefinedPurpose = UserDefinedPurpose; - this.type = 618182010; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.PredefinedType = PredefinedType; + this.Thickness = Thickness; + this.SubsequentThickness = SubsequentThickness; + this.VaryingThicknessLocation = VaryingThicknessLocation; + this.type = 2218152070; } } - IFC2X32.IfcAddress = IfcAddress; - class IfcApplication extends IfcLineObject { - constructor(expressID, ApplicationDeveloper, Version, ApplicationFullName, ApplicationIdentifier) { - super(expressID); - this.ApplicationDeveloper = ApplicationDeveloper; - this.Version = Version; - this.ApplicationFullName = ApplicationFullName; - this.ApplicationIdentifier = ApplicationIdentifier; - this.type = 639542469; + IFC2X32.IfcStructuralSurfaceMemberVarying = IfcStructuralSurfaceMemberVarying; + class IfcStructuredDimensionCallout extends IfcDraughtingCallout { + constructor(Contents) { + super(Contents); + this.Contents = Contents; + this.type = 4070609034; } } - IFC2X32.IfcApplication = IfcApplication; - class IfcAppliedValue extends IfcLineObject { - constructor(expressID, Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate) { - super(expressID); + IFC2X32.IfcStructuredDimensionCallout = IfcStructuredDimensionCallout; + class IfcSurfaceCurveSweptAreaSolid extends IfcSweptAreaSolid { + constructor(SweptArea, Position, Directrix, StartParam, EndParam, ReferenceSurface) { + super(SweptArea, Position); + this.SweptArea = SweptArea; + this.Position = Position; + this.Directrix = Directrix; + this.StartParam = StartParam; + this.EndParam = EndParam; + this.ReferenceSurface = ReferenceSurface; + this.type = 2028607225; + } + } + IFC2X32.IfcSurfaceCurveSweptAreaSolid = IfcSurfaceCurveSweptAreaSolid; + class IfcSurfaceOfLinearExtrusion extends IfcSweptSurface { + constructor(SweptCurve, Position, ExtrudedDirection, Depth) { + super(SweptCurve, Position); + this.SweptCurve = SweptCurve; + this.Position = Position; + this.ExtrudedDirection = ExtrudedDirection; + this.Depth = Depth; + this.type = 2809605785; + } + } + IFC2X32.IfcSurfaceOfLinearExtrusion = IfcSurfaceOfLinearExtrusion; + class IfcSurfaceOfRevolution extends IfcSweptSurface { + constructor(SweptCurve, Position, AxisPosition) { + super(SweptCurve, Position); + this.SweptCurve = SweptCurve; + this.Position = Position; + this.AxisPosition = AxisPosition; + this.type = 4124788165; + } + } + IFC2X32.IfcSurfaceOfRevolution = IfcSurfaceOfRevolution; + class IfcSystemFurnitureElementType extends IfcFurnishingElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.AppliedValue = AppliedValue; - this.UnitBasis = UnitBasis; - this.ApplicableDate = ApplicableDate; - this.FixedUntilDate = FixedUntilDate; - this.type = 411424972; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 1580310250; } } - IFC2X32.IfcAppliedValue = IfcAppliedValue; - class IfcAppliedValueRelationship extends IfcLineObject { - constructor(expressID, ComponentOfTotal, Components, ArithmeticOperator, Name, Description) { - super(expressID); - this.ComponentOfTotal = ComponentOfTotal; - this.Components = Components; - this.ArithmeticOperator = ArithmeticOperator; + IFC2X32.IfcSystemFurnitureElementType = IfcSystemFurnitureElementType; + class IfcTask extends IfcProcess { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, TaskId, Status, WorkMethod, IsMilestone, Priority) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.type = 1110488051; + this.ObjectType = ObjectType; + this.TaskId = TaskId; + this.Status = Status; + this.WorkMethod = WorkMethod; + this.IsMilestone = IsMilestone; + this.Priority = Priority; + this.type = 3473067441; } } - IFC2X32.IfcAppliedValueRelationship = IfcAppliedValueRelationship; - class IfcApproval extends IfcLineObject { - constructor(expressID, Description, ApprovalDateTime, ApprovalStatus, ApprovalLevel, ApprovalQualifier, Name, Identifier) { - super(expressID); + IFC2X32.IfcTask = IfcTask; + class IfcTransportElementType extends IfcElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; this.Description = Description; - this.ApprovalDateTime = ApprovalDateTime; - this.ApprovalStatus = ApprovalStatus; - this.ApprovalLevel = ApprovalLevel; - this.ApprovalQualifier = ApprovalQualifier; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2097647324; + } + } + IFC2X32.IfcTransportElementType = IfcTransportElementType; + class IfcActor extends IfcObject { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.Identifier = Identifier; - this.type = 130549933; + this.Description = Description; + this.ObjectType = ObjectType; + this.TheActor = TheActor; + this.type = 2296667514; } } - IFC2X32.IfcApproval = IfcApproval; - class IfcApprovalActorRelationship extends IfcLineObject { - constructor(expressID, Actor, Approval, Role) { - super(expressID); - this.Actor = Actor; - this.Approval = Approval; - this.Role = Role; - this.type = 2080292479; + IFC2X32.IfcActor = IfcActor; + class IfcAnnotation extends IfcProduct { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.type = 1674181508; } } - IFC2X32.IfcApprovalActorRelationship = IfcApprovalActorRelationship; - class IfcApprovalPropertyRelationship extends IfcLineObject { - constructor(expressID, ApprovedProperties, Approval) { - super(expressID); - this.ApprovedProperties = ApprovedProperties; - this.Approval = Approval; - this.type = 390851274; + IFC2X32.IfcAnnotation = IfcAnnotation; + class IfcAsymmetricIShapeProfileDef extends IfcIShapeProfileDef { + constructor(ProfileType, ProfileName, Position, OverallWidth, OverallDepth, WebThickness, FlangeThickness, FilletRadius, TopFlangeWidth, TopFlangeThickness, TopFlangeFilletRadius, CentreOfGravityInY) { + super(ProfileType, ProfileName, Position, OverallWidth, OverallDepth, WebThickness, FlangeThickness, FilletRadius); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.OverallWidth = OverallWidth; + this.OverallDepth = OverallDepth; + this.WebThickness = WebThickness; + this.FlangeThickness = FlangeThickness; + this.FilletRadius = FilletRadius; + this.TopFlangeWidth = TopFlangeWidth; + this.TopFlangeThickness = TopFlangeThickness; + this.TopFlangeFilletRadius = TopFlangeFilletRadius; + this.CentreOfGravityInY = CentreOfGravityInY; + this.type = 3207858831; } } - IFC2X32.IfcApprovalPropertyRelationship = IfcApprovalPropertyRelationship; - class IfcApprovalRelationship extends IfcLineObject { - constructor(expressID, RelatedApproval, RelatingApproval, Description, Name) { - super(expressID); - this.RelatedApproval = RelatedApproval; - this.RelatingApproval = RelatingApproval; + IFC2X32.IfcAsymmetricIShapeProfileDef = IfcAsymmetricIShapeProfileDef; + class IfcBlock extends IfcCsgPrimitive3D { + constructor(Position, XLength, YLength, ZLength) { + super(Position); + this.Position = Position; + this.XLength = XLength; + this.YLength = YLength; + this.ZLength = ZLength; + this.type = 1334484129; + } + } + IFC2X32.IfcBlock = IfcBlock; + class IfcBooleanClippingResult extends IfcBooleanResult { + constructor(Operator, FirstOperand, SecondOperand) { + super(Operator, FirstOperand, SecondOperand); + this.Operator = Operator; + this.FirstOperand = FirstOperand; + this.SecondOperand = SecondOperand; + this.type = 3649129432; + } + } + IFC2X32.IfcBooleanClippingResult = IfcBooleanClippingResult; + class IfcBoundedCurve extends IfcCurve { + constructor() { + super(); + this.type = 1260505505; + } + } + IFC2X32.IfcBoundedCurve = IfcBoundedCurve; + class IfcBuilding extends IfcSpatialStructureElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, ElevationOfRefHeight, ElevationOfTerrain, BuildingAddress) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.LongName = LongName; + this.CompositionType = CompositionType; + this.ElevationOfRefHeight = ElevationOfRefHeight; + this.ElevationOfTerrain = ElevationOfTerrain; + this.BuildingAddress = BuildingAddress; + this.type = 4031249490; + } + } + IFC2X32.IfcBuilding = IfcBuilding; + class IfcBuildingElementType extends IfcElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.type = 3869604511; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 1950629157; } } - IFC2X32.IfcApprovalRelationship = IfcApprovalRelationship; - class IfcBoundaryCondition extends IfcLineObject { - constructor(expressID, Name) { - super(expressID); + IFC2X32.IfcBuildingElementType = IfcBuildingElementType; + class IfcBuildingStorey extends IfcSpatialStructureElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, Elevation) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.type = 4037036970; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.LongName = LongName; + this.CompositionType = CompositionType; + this.Elevation = Elevation; + this.type = 3124254112; } } - IFC2X32.IfcBoundaryCondition = IfcBoundaryCondition; - class IfcBoundaryEdgeCondition extends IfcBoundaryCondition { - constructor(expressID, Name, LinearStiffnessByLengthX, LinearStiffnessByLengthY, LinearStiffnessByLengthZ, RotationalStiffnessByLengthX, RotationalStiffnessByLengthY, RotationalStiffnessByLengthZ) { - super(expressID, Name); + IFC2X32.IfcBuildingStorey = IfcBuildingStorey; + class IfcCircleHollowProfileDef extends IfcCircleProfileDef { + constructor(ProfileType, ProfileName, Position, Radius, WallThickness) { + super(ProfileType, ProfileName, Position, Radius); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.Radius = Radius; + this.WallThickness = WallThickness; + this.type = 2937912522; + } + } + IFC2X32.IfcCircleHollowProfileDef = IfcCircleHollowProfileDef; + class IfcColumnType extends IfcBuildingElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.LinearStiffnessByLengthX = LinearStiffnessByLengthX; - this.LinearStiffnessByLengthY = LinearStiffnessByLengthY; - this.LinearStiffnessByLengthZ = LinearStiffnessByLengthZ; - this.RotationalStiffnessByLengthX = RotationalStiffnessByLengthX; - this.RotationalStiffnessByLengthY = RotationalStiffnessByLengthY; - this.RotationalStiffnessByLengthZ = RotationalStiffnessByLengthZ; - this.type = 1560379544; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 300633059; + } + } + IFC2X32.IfcColumnType = IfcColumnType; + class IfcCompositeCurve extends IfcBoundedCurve { + constructor(Segments, SelfIntersect) { + super(); + this.Segments = Segments; + this.SelfIntersect = SelfIntersect; + this.type = 3732776249; } } - IFC2X32.IfcBoundaryEdgeCondition = IfcBoundaryEdgeCondition; - class IfcBoundaryFaceCondition extends IfcBoundaryCondition { - constructor(expressID, Name, LinearStiffnessByAreaX, LinearStiffnessByAreaY, LinearStiffnessByAreaZ) { - super(expressID, Name); - this.Name = Name; - this.LinearStiffnessByAreaX = LinearStiffnessByAreaX; - this.LinearStiffnessByAreaY = LinearStiffnessByAreaY; - this.LinearStiffnessByAreaZ = LinearStiffnessByAreaZ; - this.type = 3367102660; + IFC2X32.IfcCompositeCurve = IfcCompositeCurve; + class IfcConic extends IfcCurve { + constructor(Position) { + super(); + this.Position = Position; + this.type = 2510884976; } } - IFC2X32.IfcBoundaryFaceCondition = IfcBoundaryFaceCondition; - class IfcBoundaryNodeCondition extends IfcBoundaryCondition { - constructor(expressID, Name, LinearStiffnessX, LinearStiffnessY, LinearStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ) { - super(expressID, Name); + IFC2X32.IfcConic = IfcConic; + class IfcConstructionResource extends IfcResource { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.LinearStiffnessX = LinearStiffnessX; - this.LinearStiffnessY = LinearStiffnessY; - this.LinearStiffnessZ = LinearStiffnessZ; - this.RotationalStiffnessX = RotationalStiffnessX; - this.RotationalStiffnessY = RotationalStiffnessY; - this.RotationalStiffnessZ = RotationalStiffnessZ; - this.type = 1387855156; + this.Description = Description; + this.ObjectType = ObjectType; + this.ResourceIdentifier = ResourceIdentifier; + this.ResourceGroup = ResourceGroup; + this.ResourceConsumption = ResourceConsumption; + this.BaseQuantity = BaseQuantity; + this.type = 2559216714; } } - IFC2X32.IfcBoundaryNodeCondition = IfcBoundaryNodeCondition; - class IfcBoundaryNodeConditionWarping extends IfcBoundaryNodeCondition { - constructor(expressID, Name, LinearStiffnessX, LinearStiffnessY, LinearStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ, WarpingStiffness) { - super(expressID, Name, LinearStiffnessX, LinearStiffnessY, LinearStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ); + IFC2X32.IfcConstructionResource = IfcConstructionResource; + class IfcControl extends IfcObject { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.LinearStiffnessX = LinearStiffnessX; - this.LinearStiffnessY = LinearStiffnessY; - this.LinearStiffnessZ = LinearStiffnessZ; - this.RotationalStiffnessX = RotationalStiffnessX; - this.RotationalStiffnessY = RotationalStiffnessY; - this.RotationalStiffnessZ = RotationalStiffnessZ; - this.WarpingStiffness = WarpingStiffness; - this.type = 2069777674; + this.Description = Description; + this.ObjectType = ObjectType; + this.type = 3293443760; } } - IFC2X32.IfcBoundaryNodeConditionWarping = IfcBoundaryNodeConditionWarping; - class IfcCalendarDate extends IfcLineObject { - constructor(expressID, DayComponent, MonthComponent, YearComponent) { - super(expressID); - this.DayComponent = DayComponent; - this.MonthComponent = MonthComponent; - this.YearComponent = YearComponent; - this.type = 622194075; + IFC2X32.IfcControl = IfcControl; + class IfcCostItem extends IfcControl { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.type = 3895139033; } } - IFC2X32.IfcCalendarDate = IfcCalendarDate; - class IfcClassification extends IfcLineObject { - constructor(expressID, Source, Edition, EditionDate, Name) { - super(expressID); - this.Source = Source; - this.Edition = Edition; - this.EditionDate = EditionDate; + IFC2X32.IfcCostItem = IfcCostItem; + class IfcCostSchedule extends IfcControl { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, SubmittedBy, PreparedBy, SubmittedOn, Status, TargetUsers, UpdateDate, ID, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.type = 747523909; + this.Description = Description; + this.ObjectType = ObjectType; + this.SubmittedBy = SubmittedBy; + this.PreparedBy = PreparedBy; + this.SubmittedOn = SubmittedOn; + this.Status = Status; + this.TargetUsers = TargetUsers; + this.UpdateDate = UpdateDate; + this.ID = ID; + this.PredefinedType = PredefinedType; + this.type = 1419761937; } } - IFC2X32.IfcClassification = IfcClassification; - class IfcClassificationItem extends IfcLineObject { - constructor(expressID, Notation, ItemOf, Title) { - super(expressID); - this.Notation = Notation; - this.ItemOf = ItemOf; - this.Title = Title; - this.type = 1767535486; + IFC2X32.IfcCostSchedule = IfcCostSchedule; + class IfcCoveringType extends IfcBuildingElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1916426348; } } - IFC2X32.IfcClassificationItem = IfcClassificationItem; - class IfcClassificationItemRelationship extends IfcLineObject { - constructor(expressID, RelatingItem, RelatedItems) { - super(expressID); - this.RelatingItem = RelatingItem; - this.RelatedItems = RelatedItems; - this.type = 1098599126; + IFC2X32.IfcCoveringType = IfcCoveringType; + class IfcCrewResource extends IfcConstructionResource { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ResourceIdentifier = ResourceIdentifier; + this.ResourceGroup = ResourceGroup; + this.ResourceConsumption = ResourceConsumption; + this.BaseQuantity = BaseQuantity; + this.type = 3295246426; } } - IFC2X32.IfcClassificationItemRelationship = IfcClassificationItemRelationship; - class IfcClassificationNotation extends IfcLineObject { - constructor(expressID, NotationFacets) { - super(expressID); - this.NotationFacets = NotationFacets; - this.type = 938368621; + IFC2X32.IfcCrewResource = IfcCrewResource; + class IfcCurtainWallType extends IfcBuildingElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1457835157; } } - IFC2X32.IfcClassificationNotation = IfcClassificationNotation; - class IfcClassificationNotationFacet extends IfcLineObject { - constructor(expressID, NotationValue) { - super(expressID); - this.NotationValue = NotationValue; - this.type = 3639012971; + IFC2X32.IfcCurtainWallType = IfcCurtainWallType; + class IfcDimensionCurveDirectedCallout extends IfcDraughtingCallout { + constructor(Contents) { + super(Contents); + this.Contents = Contents; + this.type = 681481545; } } - IFC2X32.IfcClassificationNotationFacet = IfcClassificationNotationFacet; - class IfcColourSpecification extends IfcLineObject { - constructor(expressID, Name) { - super(expressID); + IFC2X32.IfcDimensionCurveDirectedCallout = IfcDimensionCurveDirectedCallout; + class IfcDistributionElementType extends IfcElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.type = 3264961684; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 3256556792; } } - IFC2X32.IfcColourSpecification = IfcColourSpecification; - class IfcConnectionGeometry extends IfcLineObject { - constructor(expressID) { - super(expressID); - this.type = 2859738748; + IFC2X32.IfcDistributionElementType = IfcDistributionElementType; + class IfcDistributionFlowElementType extends IfcDistributionElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 3849074793; } } - IFC2X32.IfcConnectionGeometry = IfcConnectionGeometry; - class IfcConnectionPointGeometry extends IfcConnectionGeometry { - constructor(expressID, PointOnRelatingElement, PointOnRelatedElement) { - super(expressID); - this.PointOnRelatingElement = PointOnRelatingElement; - this.PointOnRelatedElement = PointOnRelatedElement; - this.type = 2614616156; + IFC2X32.IfcDistributionFlowElementType = IfcDistributionFlowElementType; + class IfcElectricalBaseProperties extends IfcEnergyProperties { + constructor(GlobalId, OwnerHistory, Name, Description, EnergySequence, UserDefinedEnergySequence, ElectricCurrentType, InputVoltage, InputFrequency, FullLoadCurrent, MinimumCircuitCurrent, MaximumPowerInput, RatedPowerInput, InputPhase) { + super(GlobalId, OwnerHistory, Name, Description, EnergySequence, UserDefinedEnergySequence); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.EnergySequence = EnergySequence; + this.UserDefinedEnergySequence = UserDefinedEnergySequence; + this.ElectricCurrentType = ElectricCurrentType; + this.InputVoltage = InputVoltage; + this.InputFrequency = InputFrequency; + this.FullLoadCurrent = FullLoadCurrent; + this.MinimumCircuitCurrent = MinimumCircuitCurrent; + this.MaximumPowerInput = MaximumPowerInput; + this.RatedPowerInput = RatedPowerInput; + this.InputPhase = InputPhase; + this.type = 360485395; } } - IFC2X32.IfcConnectionPointGeometry = IfcConnectionPointGeometry; - class IfcConnectionPortGeometry extends IfcConnectionGeometry { - constructor(expressID, LocationAtRelatingElement, LocationAtRelatedElement, ProfileOfPort) { - super(expressID); - this.LocationAtRelatingElement = LocationAtRelatingElement; - this.LocationAtRelatedElement = LocationAtRelatedElement; - this.ProfileOfPort = ProfileOfPort; - this.type = 4257277454; + IFC2X32.IfcElectricalBaseProperties = IfcElectricalBaseProperties; + class IfcElement extends IfcProduct { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 1758889154; } } - IFC2X32.IfcConnectionPortGeometry = IfcConnectionPortGeometry; - class IfcConnectionSurfaceGeometry extends IfcConnectionGeometry { - constructor(expressID, SurfaceOnRelatingElement, SurfaceOnRelatedElement) { - super(expressID); - this.SurfaceOnRelatingElement = SurfaceOnRelatingElement; - this.SurfaceOnRelatedElement = SurfaceOnRelatedElement; - this.type = 2732653382; + IFC2X32.IfcElement = IfcElement; + class IfcElementAssembly extends IfcElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, AssemblyPlace, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.AssemblyPlace = AssemblyPlace; + this.PredefinedType = PredefinedType; + this.type = 4123344466; } } - IFC2X32.IfcConnectionSurfaceGeometry = IfcConnectionSurfaceGeometry; - class IfcConstraint extends IfcLineObject { - constructor(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade) { - super(expressID); + IFC2X32.IfcElementAssembly = IfcElementAssembly; + class IfcElementComponent extends IfcElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.ConstraintGrade = ConstraintGrade; - this.ConstraintSource = ConstraintSource; - this.CreatingActor = CreatingActor; - this.CreationTime = CreationTime; - this.UserDefinedGrade = UserDefinedGrade; - this.type = 1959218052; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 1623761950; } } - IFC2X32.IfcConstraint = IfcConstraint; - class IfcConstraintAggregationRelationship extends IfcLineObject { - constructor(expressID, Name, Description, RelatingConstraint, RelatedConstraints, LogicalAggregator) { - super(expressID); + IFC2X32.IfcElementComponent = IfcElementComponent; + class IfcElementComponentType extends IfcElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.RelatingConstraint = RelatingConstraint; - this.RelatedConstraints = RelatedConstraints; - this.LogicalAggregator = LogicalAggregator; - this.type = 1658513725; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 2590856083; } } - IFC2X32.IfcConstraintAggregationRelationship = IfcConstraintAggregationRelationship; - class IfcConstraintClassificationRelationship extends IfcLineObject { - constructor(expressID, ClassifiedConstraint, RelatedClassifications) { - super(expressID); - this.ClassifiedConstraint = ClassifiedConstraint; - this.RelatedClassifications = RelatedClassifications; - this.type = 613356794; + IFC2X32.IfcElementComponentType = IfcElementComponentType; + class IfcEllipse extends IfcConic { + constructor(Position, SemiAxis1, SemiAxis2) { + super(Position); + this.Position = Position; + this.SemiAxis1 = SemiAxis1; + this.SemiAxis2 = SemiAxis2; + this.type = 1704287377; } } - IFC2X32.IfcConstraintClassificationRelationship = IfcConstraintClassificationRelationship; - class IfcConstraintRelationship extends IfcLineObject { - constructor(expressID, Name, Description, RelatingConstraint, RelatedConstraints) { - super(expressID); + IFC2X32.IfcEllipse = IfcEllipse; + class IfcEnergyConversionDeviceType extends IfcDistributionFlowElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.RelatingConstraint = RelatingConstraint; - this.RelatedConstraints = RelatedConstraints; - this.type = 347226245; - } - } - IFC2X32.IfcConstraintRelationship = IfcConstraintRelationship; - class IfcCoordinatedUniversalTimeOffset extends IfcLineObject { - constructor(expressID, HourOffset, MinuteOffset, Sense) { - super(expressID); - this.HourOffset = HourOffset; - this.MinuteOffset = MinuteOffset; - this.Sense = Sense; - this.type = 1065062679; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 2107101300; } } - IFC2X32.IfcCoordinatedUniversalTimeOffset = IfcCoordinatedUniversalTimeOffset; - class IfcCostValue extends IfcAppliedValue { - constructor(expressID, Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, CostType, Condition) { - super(expressID, Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate); + IFC2X32.IfcEnergyConversionDeviceType = IfcEnergyConversionDeviceType; + class IfcEquipmentElement extends IfcElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.AppliedValue = AppliedValue; - this.UnitBasis = UnitBasis; - this.ApplicableDate = ApplicableDate; - this.FixedUntilDate = FixedUntilDate; - this.CostType = CostType; - this.Condition = Condition; - this.type = 602808272; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 1962604670; } } - IFC2X32.IfcCostValue = IfcCostValue; - class IfcCurrencyRelationship extends IfcLineObject { - constructor(expressID, RelatingMonetaryUnit, RelatedMonetaryUnit, ExchangeRate, RateDateTime, RateSource) { - super(expressID); - this.RelatingMonetaryUnit = RelatingMonetaryUnit; - this.RelatedMonetaryUnit = RelatedMonetaryUnit; - this.ExchangeRate = ExchangeRate; - this.RateDateTime = RateDateTime; - this.RateSource = RateSource; - this.type = 539742890; + IFC2X32.IfcEquipmentElement = IfcEquipmentElement; + class IfcEquipmentStandard extends IfcControl { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.type = 3272907226; } } - IFC2X32.IfcCurrencyRelationship = IfcCurrencyRelationship; - class IfcCurveStyleFont extends IfcLineObject { - constructor(expressID, Name, PatternList) { - super(expressID); + IFC2X32.IfcEquipmentStandard = IfcEquipmentStandard; + class IfcEvaporativeCoolerType extends IfcEnergyConversionDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.PatternList = PatternList; - this.type = 1105321065; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3174744832; } } - IFC2X32.IfcCurveStyleFont = IfcCurveStyleFont; - class IfcCurveStyleFontAndScaling extends IfcLineObject { - constructor(expressID, Name, CurveFont, CurveFontScaling) { - super(expressID); + IFC2X32.IfcEvaporativeCoolerType = IfcEvaporativeCoolerType; + class IfcEvaporatorType extends IfcEnergyConversionDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.CurveFont = CurveFont; - this.CurveFontScaling = CurveFontScaling; - this.type = 2367409068; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3390157468; } } - IFC2X32.IfcCurveStyleFontAndScaling = IfcCurveStyleFontAndScaling; - class IfcCurveStyleFontPattern extends IfcLineObject { - constructor(expressID, VisibleSegmentLength, InvisibleSegmentLength) { - super(expressID); - this.VisibleSegmentLength = VisibleSegmentLength; - this.InvisibleSegmentLength = InvisibleSegmentLength; - this.type = 3510044353; + IFC2X32.IfcEvaporatorType = IfcEvaporatorType; + class IfcFacetedBrep extends IfcManifoldSolidBrep { + constructor(Outer) { + super(Outer); + this.Outer = Outer; + this.type = 807026263; } } - IFC2X32.IfcCurveStyleFontPattern = IfcCurveStyleFontPattern; - class IfcDateAndTime extends IfcLineObject { - constructor(expressID, DateComponent, TimeComponent) { - super(expressID); - this.DateComponent = DateComponent; - this.TimeComponent = TimeComponent; - this.type = 1072939445; + IFC2X32.IfcFacetedBrep = IfcFacetedBrep; + class IfcFacetedBrepWithVoids extends IfcManifoldSolidBrep { + constructor(Outer, Voids) { + super(Outer); + this.Outer = Outer; + this.Voids = Voids; + this.type = 3737207727; } } - IFC2X32.IfcDateAndTime = IfcDateAndTime; - class IfcDerivedUnit extends IfcLineObject { - constructor(expressID, Elements, UnitType, UserDefinedType) { - super(expressID); - this.Elements = Elements; - this.UnitType = UnitType; - this.UserDefinedType = UserDefinedType; - this.type = 1765591967; + IFC2X32.IfcFacetedBrepWithVoids = IfcFacetedBrepWithVoids; + class IfcFastener extends IfcElementComponent { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 647756555; } } - IFC2X32.IfcDerivedUnit = IfcDerivedUnit; - class IfcDerivedUnitElement extends IfcLineObject { - constructor(expressID, Unit, Exponent) { - super(expressID); - this.Unit = Unit; - this.Exponent = Exponent; - this.type = 1045800335; + IFC2X32.IfcFastener = IfcFastener; + class IfcFastenerType extends IfcElementComponentType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 2489546625; } } - IFC2X32.IfcDerivedUnitElement = IfcDerivedUnitElement; - class IfcDimensionalExponents extends IfcLineObject { - constructor(expressID, LengthExponent, MassExponent, TimeExponent, ElectricCurrentExponent, ThermodynamicTemperatureExponent, AmountOfSubstanceExponent, LuminousIntensityExponent) { - super(expressID); - this.LengthExponent = LengthExponent; - this.MassExponent = MassExponent; - this.TimeExponent = TimeExponent; - this.ElectricCurrentExponent = ElectricCurrentExponent; - this.ThermodynamicTemperatureExponent = ThermodynamicTemperatureExponent; - this.AmountOfSubstanceExponent = AmountOfSubstanceExponent; - this.LuminousIntensityExponent = LuminousIntensityExponent; - this.type = 2949456006; + IFC2X32.IfcFastenerType = IfcFastenerType; + class IfcFeatureElement extends IfcElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 2827207264; } } - IFC2X32.IfcDimensionalExponents = IfcDimensionalExponents; - class IfcDocumentElectronicFormat extends IfcLineObject { - constructor(expressID, FileExtension, MimeContentType, MimeSubtype) { - super(expressID); - this.FileExtension = FileExtension; - this.MimeContentType = MimeContentType; - this.MimeSubtype = MimeSubtype; - this.type = 1376555844; + IFC2X32.IfcFeatureElement = IfcFeatureElement; + class IfcFeatureElementAddition extends IfcFeatureElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 2143335405; } } - IFC2X32.IfcDocumentElectronicFormat = IfcDocumentElectronicFormat; - class IfcDocumentInformation extends IfcLineObject { - constructor(expressID, DocumentId, Name, Description, DocumentReferences, Purpose, IntendedUse, Scope, Revision, DocumentOwner, Editors, CreationTime, LastRevisionTime, ElectronicFormat, ValidFrom, ValidUntil, Confidentiality, Status) { - super(expressID); - this.DocumentId = DocumentId; + IFC2X32.IfcFeatureElementAddition = IfcFeatureElementAddition; + class IfcFeatureElementSubtraction extends IfcFeatureElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.DocumentReferences = DocumentReferences; - this.Purpose = Purpose; - this.IntendedUse = IntendedUse; - this.Scope = Scope; - this.Revision = Revision; - this.DocumentOwner = DocumentOwner; - this.Editors = Editors; - this.CreationTime = CreationTime; - this.LastRevisionTime = LastRevisionTime; - this.ElectronicFormat = ElectronicFormat; - this.ValidFrom = ValidFrom; - this.ValidUntil = ValidUntil; - this.Confidentiality = Confidentiality; - this.Status = Status; - this.type = 1154170062; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 1287392070; } } - IFC2X32.IfcDocumentInformation = IfcDocumentInformation; - class IfcDocumentInformationRelationship extends IfcLineObject { - constructor(expressID, RelatingDocument, RelatedDocuments, RelationshipType) { - super(expressID); - this.RelatingDocument = RelatingDocument; - this.RelatedDocuments = RelatedDocuments; - this.RelationshipType = RelationshipType; - this.type = 770865208; + IFC2X32.IfcFeatureElementSubtraction = IfcFeatureElementSubtraction; + class IfcFlowControllerType extends IfcDistributionFlowElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 3907093117; } } - IFC2X32.IfcDocumentInformationRelationship = IfcDocumentInformationRelationship; - class IfcDraughtingCalloutRelationship extends IfcLineObject { - constructor(expressID, Name, Description, RelatingDraughtingCallout, RelatedDraughtingCallout) { - super(expressID); + IFC2X32.IfcFlowControllerType = IfcFlowControllerType; + class IfcFlowFittingType extends IfcDistributionFlowElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.RelatingDraughtingCallout = RelatingDraughtingCallout; - this.RelatedDraughtingCallout = RelatedDraughtingCallout; - this.type = 3796139169; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 3198132628; } } - IFC2X32.IfcDraughtingCalloutRelationship = IfcDraughtingCalloutRelationship; - class IfcEnvironmentalImpactValue extends IfcAppliedValue { - constructor(expressID, Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, ImpactType, Category, UserDefinedCategory) { - super(expressID, Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate); + IFC2X32.IfcFlowFittingType = IfcFlowFittingType; + class IfcFlowMeterType extends IfcFlowControllerType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.AppliedValue = AppliedValue; - this.UnitBasis = UnitBasis; - this.ApplicableDate = ApplicableDate; - this.FixedUntilDate = FixedUntilDate; - this.ImpactType = ImpactType; - this.Category = Category; - this.UserDefinedCategory = UserDefinedCategory; - this.type = 1648886627; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3815607619; } } - IFC2X32.IfcEnvironmentalImpactValue = IfcEnvironmentalImpactValue; - class IfcExternalReference extends IfcLineObject { - constructor(expressID, Location, ItemReference, Name) { - super(expressID); - this.Location = Location; - this.ItemReference = ItemReference; + IFC2X32.IfcFlowMeterType = IfcFlowMeterType; + class IfcFlowMovingDeviceType extends IfcDistributionFlowElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.type = 3200245327; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 1482959167; } } - IFC2X32.IfcExternalReference = IfcExternalReference; - class IfcExternallyDefinedHatchStyle extends IfcExternalReference { - constructor(expressID, Location, ItemReference, Name) { - super(expressID, Location, ItemReference, Name); - this.Location = Location; - this.ItemReference = ItemReference; + IFC2X32.IfcFlowMovingDeviceType = IfcFlowMovingDeviceType; + class IfcFlowSegmentType extends IfcDistributionFlowElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.type = 2242383968; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 1834744321; } } - IFC2X32.IfcExternallyDefinedHatchStyle = IfcExternallyDefinedHatchStyle; - class IfcExternallyDefinedSurfaceStyle extends IfcExternalReference { - constructor(expressID, Location, ItemReference, Name) { - super(expressID, Location, ItemReference, Name); - this.Location = Location; - this.ItemReference = ItemReference; + IFC2X32.IfcFlowSegmentType = IfcFlowSegmentType; + class IfcFlowStorageDeviceType extends IfcDistributionFlowElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.type = 1040185647; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 1339347760; } } - IFC2X32.IfcExternallyDefinedSurfaceStyle = IfcExternallyDefinedSurfaceStyle; - class IfcExternallyDefinedSymbol extends IfcExternalReference { - constructor(expressID, Location, ItemReference, Name) { - super(expressID, Location, ItemReference, Name); - this.Location = Location; - this.ItemReference = ItemReference; + IFC2X32.IfcFlowStorageDeviceType = IfcFlowStorageDeviceType; + class IfcFlowTerminalType extends IfcDistributionFlowElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.type = 3207319532; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 2297155007; } } - IFC2X32.IfcExternallyDefinedSymbol = IfcExternallyDefinedSymbol; - class IfcExternallyDefinedTextFont extends IfcExternalReference { - constructor(expressID, Location, ItemReference, Name) { - super(expressID, Location, ItemReference, Name); - this.Location = Location; - this.ItemReference = ItemReference; + IFC2X32.IfcFlowTerminalType = IfcFlowTerminalType; + class IfcFlowTreatmentDeviceType extends IfcDistributionFlowElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.type = 3548104201; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 3009222698; } } - IFC2X32.IfcExternallyDefinedTextFont = IfcExternallyDefinedTextFont; - class IfcGridAxis extends IfcLineObject { - constructor(expressID, AxisTag, AxisCurve, SameSense) { - super(expressID); - this.AxisTag = AxisTag; - this.AxisCurve = AxisCurve; - this.SameSense = SameSense; - this.type = 852622518; + IFC2X32.IfcFlowTreatmentDeviceType = IfcFlowTreatmentDeviceType; + class IfcFurnishingElement extends IfcElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 263784265; } } - IFC2X32.IfcGridAxis = IfcGridAxis; - class IfcIrregularTimeSeriesValue extends IfcLineObject { - constructor(expressID, TimeStamp, ListValues) { - super(expressID); - this.TimeStamp = TimeStamp; - this.ListValues = ListValues; - this.type = 3020489413; + IFC2X32.IfcFurnishingElement = IfcFurnishingElement; + class IfcFurnitureStandard extends IfcControl { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.type = 814719939; } } - IFC2X32.IfcIrregularTimeSeriesValue = IfcIrregularTimeSeriesValue; - class IfcLibraryInformation extends IfcLineObject { - constructor(expressID, Name, Version, Publisher, VersionDate, LibraryReference) { - super(expressID); + IFC2X32.IfcFurnitureStandard = IfcFurnitureStandard; + class IfcGasTerminalType extends IfcFlowTerminalType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.Version = Version; - this.Publisher = Publisher; - this.VersionDate = VersionDate; - this.LibraryReference = LibraryReference; - this.type = 2655187982; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 200128114; } } - IFC2X32.IfcLibraryInformation = IfcLibraryInformation; - class IfcLibraryReference extends IfcExternalReference { - constructor(expressID, Location, ItemReference, Name) { - super(expressID, Location, ItemReference, Name); - this.Location = Location; - this.ItemReference = ItemReference; + IFC2X32.IfcGasTerminalType = IfcGasTerminalType; + class IfcGrid extends IfcProduct { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, UAxes, VAxes, WAxes) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.type = 3452421091; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.UAxes = UAxes; + this.VAxes = VAxes; + this.WAxes = WAxes; + this.type = 3009204131; } } - IFC2X32.IfcLibraryReference = IfcLibraryReference; - class IfcLightDistributionData extends IfcLineObject { - constructor(expressID, MainPlaneAngle, SecondaryPlaneAngle, LuminousIntensity) { - super(expressID); - this.MainPlaneAngle = MainPlaneAngle; - this.SecondaryPlaneAngle = SecondaryPlaneAngle; - this.LuminousIntensity = LuminousIntensity; - this.type = 4162380809; + IFC2X32.IfcGrid = IfcGrid; + class IfcGroup extends IfcObject { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.type = 2706460486; } } - IFC2X32.IfcLightDistributionData = IfcLightDistributionData; - class IfcLightIntensityDistribution extends IfcLineObject { - constructor(expressID, LightDistributionCurve, DistributionData) { - super(expressID); - this.LightDistributionCurve = LightDistributionCurve; - this.DistributionData = DistributionData; - this.type = 1566485204; + IFC2X32.IfcGroup = IfcGroup; + class IfcHeatExchangerType extends IfcEnergyConversionDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1251058090; } } - IFC2X32.IfcLightIntensityDistribution = IfcLightIntensityDistribution; - class IfcLocalTime extends IfcLineObject { - constructor(expressID, HourComponent, MinuteComponent, SecondComponent, Zone, DaylightSavingOffset) { - super(expressID); - this.HourComponent = HourComponent; - this.MinuteComponent = MinuteComponent; - this.SecondComponent = SecondComponent; - this.Zone = Zone; - this.DaylightSavingOffset = DaylightSavingOffset; - this.type = 30780891; + IFC2X32.IfcHeatExchangerType = IfcHeatExchangerType; + class IfcHumidifierType extends IfcEnergyConversionDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1806887404; } } - IFC2X32.IfcLocalTime = IfcLocalTime; - class IfcMaterial extends IfcLineObject { - constructor(expressID, Name) { - super(expressID); + IFC2X32.IfcHumidifierType = IfcHumidifierType; + class IfcInventory extends IfcGroup { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, InventoryType, Jurisdiction, ResponsiblePersons, LastUpdateDate, CurrentValue, OriginalValue) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.type = 1838606355; + this.Description = Description; + this.ObjectType = ObjectType; + this.InventoryType = InventoryType; + this.Jurisdiction = Jurisdiction; + this.ResponsiblePersons = ResponsiblePersons; + this.LastUpdateDate = LastUpdateDate; + this.CurrentValue = CurrentValue; + this.OriginalValue = OriginalValue; + this.type = 2391368822; } } - IFC2X32.IfcMaterial = IfcMaterial; - class IfcMaterialClassificationRelationship extends IfcLineObject { - constructor(expressID, MaterialClassifications, ClassifiedMaterial) { - super(expressID); - this.MaterialClassifications = MaterialClassifications; - this.ClassifiedMaterial = ClassifiedMaterial; - this.type = 1847130766; + IFC2X32.IfcInventory = IfcInventory; + class IfcJunctionBoxType extends IfcFlowFittingType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 4288270099; } } - IFC2X32.IfcMaterialClassificationRelationship = IfcMaterialClassificationRelationship; - class IfcMaterialLayer extends IfcLineObject { - constructor(expressID, Material, LayerThickness, IsVentilated) { - super(expressID); - this.Material = Material; - this.LayerThickness = LayerThickness; - this.IsVentilated = IsVentilated; - this.type = 248100487; + IFC2X32.IfcJunctionBoxType = IfcJunctionBoxType; + class IfcLaborResource extends IfcConstructionResource { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity, SkillSet) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ResourceIdentifier = ResourceIdentifier; + this.ResourceGroup = ResourceGroup; + this.ResourceConsumption = ResourceConsumption; + this.BaseQuantity = BaseQuantity; + this.SkillSet = SkillSet; + this.type = 3827777499; } } - IFC2X32.IfcMaterialLayer = IfcMaterialLayer; - class IfcMaterialLayerSet extends IfcLineObject { - constructor(expressID, MaterialLayers, LayerSetName) { - super(expressID); - this.MaterialLayers = MaterialLayers; - this.LayerSetName = LayerSetName; - this.type = 3303938423; + IFC2X32.IfcLaborResource = IfcLaborResource; + class IfcLampType extends IfcFlowTerminalType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1051575348; } } - IFC2X32.IfcMaterialLayerSet = IfcMaterialLayerSet; - class IfcMaterialLayerSetUsage extends IfcLineObject { - constructor(expressID, ForLayerSet, LayerSetDirection, DirectionSense, OffsetFromReferenceLine) { - super(expressID); - this.ForLayerSet = ForLayerSet; - this.LayerSetDirection = LayerSetDirection; - this.DirectionSense = DirectionSense; - this.OffsetFromReferenceLine = OffsetFromReferenceLine; - this.type = 1303795690; + IFC2X32.IfcLampType = IfcLampType; + class IfcLightFixtureType extends IfcFlowTerminalType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1161773419; } } - IFC2X32.IfcMaterialLayerSetUsage = IfcMaterialLayerSetUsage; - class IfcMaterialList extends IfcLineObject { - constructor(expressID, Materials) { - super(expressID); - this.Materials = Materials; - this.type = 2199411900; + IFC2X32.IfcLightFixtureType = IfcLightFixtureType; + class IfcLinearDimension extends IfcDimensionCurveDirectedCallout { + constructor(Contents) { + super(Contents); + this.Contents = Contents; + this.type = 2506943328; } } - IFC2X32.IfcMaterialList = IfcMaterialList; - class IfcMaterialProperties extends IfcLineObject { - constructor(expressID, Material) { - super(expressID); - this.Material = Material; - this.type = 3265635763; + IFC2X32.IfcLinearDimension = IfcLinearDimension; + class IfcMechanicalFastener extends IfcFastener { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, NominalDiameter, NominalLength) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.NominalDiameter = NominalDiameter; + this.NominalLength = NominalLength; + this.type = 377706215; } } - IFC2X32.IfcMaterialProperties = IfcMaterialProperties; - class IfcMeasureWithUnit extends IfcLineObject { - constructor(expressID, ValueComponent, UnitComponent) { - super(expressID); - this.ValueComponent = ValueComponent; - this.UnitComponent = UnitComponent; - this.type = 2597039031; + IFC2X32.IfcMechanicalFastener = IfcMechanicalFastener; + class IfcMechanicalFastenerType extends IfcFastenerType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 2108223431; } } - IFC2X32.IfcMeasureWithUnit = IfcMeasureWithUnit; - class IfcMechanicalMaterialProperties extends IfcMaterialProperties { - constructor(expressID, Material, DynamicViscosity, YoungModulus, ShearModulus, PoissonRatio, ThermalExpansionCoefficient) { - super(expressID, Material); - this.Material = Material; - this.DynamicViscosity = DynamicViscosity; - this.YoungModulus = YoungModulus; - this.ShearModulus = ShearModulus; - this.PoissonRatio = PoissonRatio; - this.ThermalExpansionCoefficient = ThermalExpansionCoefficient; - this.type = 4256014907; + IFC2X32.IfcMechanicalFastenerType = IfcMechanicalFastenerType; + class IfcMemberType extends IfcBuildingElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3181161470; } } - IFC2X32.IfcMechanicalMaterialProperties = IfcMechanicalMaterialProperties; - class IfcMechanicalSteelMaterialProperties extends IfcMechanicalMaterialProperties { - constructor(expressID, Material, DynamicViscosity, YoungModulus, ShearModulus, PoissonRatio, ThermalExpansionCoefficient, YieldStress, UltimateStress, UltimateStrain, HardeningModule, ProportionalStress, PlasticStrain, Relaxations) { - super(expressID, Material, DynamicViscosity, YoungModulus, ShearModulus, PoissonRatio, ThermalExpansionCoefficient); - this.Material = Material; - this.DynamicViscosity = DynamicViscosity; - this.YoungModulus = YoungModulus; - this.ShearModulus = ShearModulus; - this.PoissonRatio = PoissonRatio; - this.ThermalExpansionCoefficient = ThermalExpansionCoefficient; - this.YieldStress = YieldStress; - this.UltimateStress = UltimateStress; - this.UltimateStrain = UltimateStrain; - this.HardeningModule = HardeningModule; - this.ProportionalStress = ProportionalStress; - this.PlasticStrain = PlasticStrain; - this.Relaxations = Relaxations; - this.type = 677618848; + IFC2X32.IfcMemberType = IfcMemberType; + class IfcMotorConnectionType extends IfcEnergyConversionDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 977012517; } } - IFC2X32.IfcMechanicalSteelMaterialProperties = IfcMechanicalSteelMaterialProperties; - class IfcMetric extends IfcConstraint { - constructor(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade, Benchmark, ValueSource, DataValue) { - super(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade); + IFC2X32.IfcMotorConnectionType = IfcMotorConnectionType; + class IfcMove extends IfcTask { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, TaskId, Status, WorkMethod, IsMilestone, Priority, MoveFrom, MoveTo, PunchList) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, TaskId, Status, WorkMethod, IsMilestone, Priority); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.ConstraintGrade = ConstraintGrade; - this.ConstraintSource = ConstraintSource; - this.CreatingActor = CreatingActor; - this.CreationTime = CreationTime; - this.UserDefinedGrade = UserDefinedGrade; - this.Benchmark = Benchmark; - this.ValueSource = ValueSource; - this.DataValue = DataValue; - this.type = 3368373690; + this.ObjectType = ObjectType; + this.TaskId = TaskId; + this.Status = Status; + this.WorkMethod = WorkMethod; + this.IsMilestone = IsMilestone; + this.Priority = Priority; + this.MoveFrom = MoveFrom; + this.MoveTo = MoveTo; + this.PunchList = PunchList; + this.type = 1916936684; } } - IFC2X32.IfcMetric = IfcMetric; - class IfcMonetaryUnit extends IfcLineObject { - constructor(expressID, Currency) { - super(expressID); - this.Currency = Currency; - this.type = 2706619895; + IFC2X32.IfcMove = IfcMove; + class IfcOccupant extends IfcActor { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.TheActor = TheActor; + this.PredefinedType = PredefinedType; + this.type = 4143007308; } } - IFC2X32.IfcMonetaryUnit = IfcMonetaryUnit; - class IfcNamedUnit extends IfcLineObject { - constructor(expressID, Dimensions, UnitType) { - super(expressID); - this.Dimensions = Dimensions; - this.UnitType = UnitType; - this.type = 1918398963; + IFC2X32.IfcOccupant = IfcOccupant; + class IfcOpeningElement extends IfcFeatureElementSubtraction { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 3588315303; } } - IFC2X32.IfcNamedUnit = IfcNamedUnit; - class IfcObjectPlacement extends IfcLineObject { - constructor(expressID) { - super(expressID); - this.type = 3701648758; + IFC2X32.IfcOpeningElement = IfcOpeningElement; + class IfcOrderAction extends IfcTask { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, TaskId, Status, WorkMethod, IsMilestone, Priority, ActionID) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, TaskId, Status, WorkMethod, IsMilestone, Priority); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.TaskId = TaskId; + this.Status = Status; + this.WorkMethod = WorkMethod; + this.IsMilestone = IsMilestone; + this.Priority = Priority; + this.ActionID = ActionID; + this.type = 3425660407; } } - IFC2X32.IfcObjectPlacement = IfcObjectPlacement; - class IfcObjective extends IfcConstraint { - constructor(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade, BenchmarkValues, ResultValues, ObjectiveQualifier, UserDefinedQualifier) { - super(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade); + IFC2X32.IfcOrderAction = IfcOrderAction; + class IfcOutletType extends IfcFlowTerminalType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.ConstraintGrade = ConstraintGrade; - this.ConstraintSource = ConstraintSource; - this.CreatingActor = CreatingActor; - this.CreationTime = CreationTime; - this.UserDefinedGrade = UserDefinedGrade; - this.BenchmarkValues = BenchmarkValues; - this.ResultValues = ResultValues; - this.ObjectiveQualifier = ObjectiveQualifier; - this.UserDefinedQualifier = UserDefinedQualifier; - this.type = 2251480897; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2837617999; } } - IFC2X32.IfcObjective = IfcObjective; - class IfcOpticalMaterialProperties extends IfcMaterialProperties { - constructor(expressID, Material, VisibleTransmittance, SolarTransmittance, ThermalIrTransmittance, ThermalIrEmissivityBack, ThermalIrEmissivityFront, VisibleReflectanceBack, VisibleReflectanceFront, SolarReflectanceFront, SolarReflectanceBack) { - super(expressID, Material); - this.Material = Material; - this.VisibleTransmittance = VisibleTransmittance; - this.SolarTransmittance = SolarTransmittance; - this.ThermalIrTransmittance = ThermalIrTransmittance; - this.ThermalIrEmissivityBack = ThermalIrEmissivityBack; - this.ThermalIrEmissivityFront = ThermalIrEmissivityFront; - this.VisibleReflectanceBack = VisibleReflectanceBack; - this.VisibleReflectanceFront = VisibleReflectanceFront; - this.SolarReflectanceFront = SolarReflectanceFront; - this.SolarReflectanceBack = SolarReflectanceBack; - this.type = 1227763645; + IFC2X32.IfcOutletType = IfcOutletType; + class IfcPerformanceHistory extends IfcControl { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, LifeCyclePhase) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.LifeCyclePhase = LifeCyclePhase; + this.type = 2382730787; } } - IFC2X32.IfcOpticalMaterialProperties = IfcOpticalMaterialProperties; - class IfcOrganization extends IfcLineObject { - constructor(expressID, Id, Name, Description, Roles, Addresses) { - super(expressID); - this.Id = Id; + IFC2X32.IfcPerformanceHistory = IfcPerformanceHistory; + class IfcPermit extends IfcControl { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, PermitID) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.Roles = Roles; - this.Addresses = Addresses; - this.type = 4251960020; + this.ObjectType = ObjectType; + this.PermitID = PermitID; + this.type = 3327091369; } } - IFC2X32.IfcOrganization = IfcOrganization; - class IfcOrganizationRelationship extends IfcLineObject { - constructor(expressID, Name, Description, RelatingOrganization, RelatedOrganizations) { - super(expressID); + IFC2X32.IfcPermit = IfcPermit; + class IfcPipeFittingType extends IfcFlowFittingType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.RelatingOrganization = RelatingOrganization; - this.RelatedOrganizations = RelatedOrganizations; - this.type = 1411181986; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 804291784; } } - IFC2X32.IfcOrganizationRelationship = IfcOrganizationRelationship; - class IfcOwnerHistory extends IfcLineObject { - constructor(expressID, OwningUser, OwningApplication, State, ChangeAction, LastModifiedDate, LastModifyingUser, LastModifyingApplication, CreationDate) { - super(expressID); - this.OwningUser = OwningUser; - this.OwningApplication = OwningApplication; - this.State = State; - this.ChangeAction = ChangeAction; - this.LastModifiedDate = LastModifiedDate; - this.LastModifyingUser = LastModifyingUser; - this.LastModifyingApplication = LastModifyingApplication; - this.CreationDate = CreationDate; - this.type = 1207048766; + IFC2X32.IfcPipeFittingType = IfcPipeFittingType; + class IfcPipeSegmentType extends IfcFlowSegmentType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 4231323485; } } - IFC2X32.IfcOwnerHistory = IfcOwnerHistory; - class IfcPerson extends IfcLineObject { - constructor(expressID, Id, FamilyName, GivenName, MiddleNames, PrefixTitles, SuffixTitles, Roles, Addresses) { - super(expressID); - this.Id = Id; - this.FamilyName = FamilyName; - this.GivenName = GivenName; - this.MiddleNames = MiddleNames; - this.PrefixTitles = PrefixTitles; - this.SuffixTitles = SuffixTitles; - this.Roles = Roles; - this.Addresses = Addresses; - this.type = 2077209135; + IFC2X32.IfcPipeSegmentType = IfcPipeSegmentType; + class IfcPlateType extends IfcBuildingElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 4017108033; } } - IFC2X32.IfcPerson = IfcPerson; - class IfcPersonAndOrganization extends IfcLineObject { - constructor(expressID, ThePerson, TheOrganization, Roles) { - super(expressID); - this.ThePerson = ThePerson; - this.TheOrganization = TheOrganization; - this.Roles = Roles; - this.type = 101040310; + IFC2X32.IfcPlateType = IfcPlateType; + class IfcPolyline extends IfcBoundedCurve { + constructor(Points) { + super(); + this.Points = Points; + this.type = 3724593414; } } - IFC2X32.IfcPersonAndOrganization = IfcPersonAndOrganization; - class IfcPhysicalQuantity extends IfcLineObject { - constructor(expressID, Name, Description) { - super(expressID); + IFC2X32.IfcPolyline = IfcPolyline; + class IfcPort extends IfcProduct { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.type = 2483315170; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.type = 3740093272; } } - IFC2X32.IfcPhysicalQuantity = IfcPhysicalQuantity; - class IfcPhysicalSimpleQuantity extends IfcPhysicalQuantity { - constructor(expressID, Name, Description, Unit) { - super(expressID, Name, Description); + IFC2X32.IfcPort = IfcPort; + class IfcProcedure extends IfcProcess { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ProcedureID, ProcedureType, UserDefinedProcedureType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.Unit = Unit; - this.type = 2226359599; + this.ObjectType = ObjectType; + this.ProcedureID = ProcedureID; + this.ProcedureType = ProcedureType; + this.UserDefinedProcedureType = UserDefinedProcedureType; + this.type = 2744685151; } } - IFC2X32.IfcPhysicalSimpleQuantity = IfcPhysicalSimpleQuantity; - class IfcPostalAddress extends IfcAddress { - constructor(expressID, Purpose, Description, UserDefinedPurpose, InternalLocation, AddressLines, PostalBox, Town, Region, PostalCode, Country) { - super(expressID, Purpose, Description, UserDefinedPurpose); - this.Purpose = Purpose; + IFC2X32.IfcProcedure = IfcProcedure; + class IfcProjectOrder extends IfcControl { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ID, PredefinedType, Status) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; this.Description = Description; - this.UserDefinedPurpose = UserDefinedPurpose; - this.InternalLocation = InternalLocation; - this.AddressLines = AddressLines; - this.PostalBox = PostalBox; - this.Town = Town; - this.Region = Region; - this.PostalCode = PostalCode; - this.Country = Country; - this.type = 3355820592; + this.ObjectType = ObjectType; + this.ID = ID; + this.PredefinedType = PredefinedType; + this.Status = Status; + this.type = 2904328755; } } - IFC2X32.IfcPostalAddress = IfcPostalAddress; - class IfcPreDefinedItem extends IfcLineObject { - constructor(expressID, Name) { - super(expressID); + IFC2X32.IfcProjectOrder = IfcProjectOrder; + class IfcProjectOrderRecord extends IfcControl { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Records, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.type = 3727388367; + this.Description = Description; + this.ObjectType = ObjectType; + this.Records = Records; + this.PredefinedType = PredefinedType; + this.type = 3642467123; } } - IFC2X32.IfcPreDefinedItem = IfcPreDefinedItem; - class IfcPreDefinedSymbol extends IfcPreDefinedItem { - constructor(expressID, Name) { - super(expressID, Name); + IFC2X32.IfcProjectOrderRecord = IfcProjectOrderRecord; + class IfcProjectionElement extends IfcFeatureElementAddition { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.type = 990879717; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 3651124850; } } - IFC2X32.IfcPreDefinedSymbol = IfcPreDefinedSymbol; - class IfcPreDefinedTerminatorSymbol extends IfcPreDefinedSymbol { - constructor(expressID, Name) { - super(expressID, Name); + IFC2X32.IfcProjectionElement = IfcProjectionElement; + class IfcProtectiveDeviceType extends IfcFlowControllerType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.type = 3213052703; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1842657554; } } - IFC2X32.IfcPreDefinedTerminatorSymbol = IfcPreDefinedTerminatorSymbol; - class IfcPreDefinedTextFont extends IfcPreDefinedItem { - constructor(expressID, Name) { - super(expressID, Name); + IFC2X32.IfcProtectiveDeviceType = IfcProtectiveDeviceType; + class IfcPumpType extends IfcFlowMovingDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.type = 1775413392; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2250791053; } } - IFC2X32.IfcPreDefinedTextFont = IfcPreDefinedTextFont; - class IfcPresentationLayerAssignment extends IfcLineObject { - constructor(expressID, Name, Description, AssignedItems, Identifier) { - super(expressID); + IFC2X32.IfcPumpType = IfcPumpType; + class IfcRadiusDimension extends IfcDimensionCurveDirectedCallout { + constructor(Contents) { + super(Contents); + this.Contents = Contents; + this.type = 3248260540; + } + } + IFC2X32.IfcRadiusDimension = IfcRadiusDimension; + class IfcRailingType extends IfcBuildingElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.AssignedItems = AssignedItems; - this.Identifier = Identifier; - this.type = 2022622350; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2893384427; } } - IFC2X32.IfcPresentationLayerAssignment = IfcPresentationLayerAssignment; - class IfcPresentationLayerWithStyle extends IfcPresentationLayerAssignment { - constructor(expressID, Name, Description, AssignedItems, Identifier, LayerOn, LayerFrozen, LayerBlocked, LayerStyles) { - super(expressID, Name, Description, AssignedItems, Identifier); + IFC2X32.IfcRailingType = IfcRailingType; + class IfcRampFlightType extends IfcBuildingElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.AssignedItems = AssignedItems; - this.Identifier = Identifier; - this.LayerOn = LayerOn; - this.LayerFrozen = LayerFrozen; - this.LayerBlocked = LayerBlocked; - this.LayerStyles = LayerStyles; - this.type = 1304840413; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2324767716; } } - IFC2X32.IfcPresentationLayerWithStyle = IfcPresentationLayerWithStyle; - class IfcPresentationStyle extends IfcLineObject { - constructor(expressID, Name) { - super(expressID); + IFC2X32.IfcRampFlightType = IfcRampFlightType; + class IfcRelAggregates extends IfcRelDecomposes { + constructor(GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects) { + super(GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.type = 3119450353; + this.Description = Description; + this.RelatingObject = RelatingObject; + this.RelatedObjects = RelatedObjects; + this.type = 160246688; } } - IFC2X32.IfcPresentationStyle = IfcPresentationStyle; - class IfcPresentationStyleAssignment extends IfcLineObject { - constructor(expressID, Styles) { - super(expressID); - this.Styles = Styles; - this.type = 2417041796; + IFC2X32.IfcRelAggregates = IfcRelAggregates; + class IfcRelAssignsTasks extends IfcRelAssignsToControl { + constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl, TimeForTask) { + super(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatedObjectsType = RelatedObjectsType; + this.RelatingControl = RelatingControl; + this.TimeForTask = TimeForTask; + this.type = 2863920197; } } - IFC2X32.IfcPresentationStyleAssignment = IfcPresentationStyleAssignment; - class IfcProductRepresentation extends IfcLineObject { - constructor(expressID, Name, Description, Representations) { - super(expressID); + IFC2X32.IfcRelAssignsTasks = IfcRelAssignsTasks; + class IfcSanitaryTerminalType extends IfcFlowTerminalType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.Representations = Representations; - this.type = 2095639259; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1768891740; } } - IFC2X32.IfcProductRepresentation = IfcProductRepresentation; - class IfcProductsOfCombustionProperties extends IfcMaterialProperties { - constructor(expressID, Material, SpecificHeatCapacity, N20Content, COContent, CO2Content) { - super(expressID, Material); - this.Material = Material; - this.SpecificHeatCapacity = SpecificHeatCapacity; - this.N20Content = N20Content; - this.COContent = COContent; - this.CO2Content = CO2Content; - this.type = 2267347899; + IFC2X32.IfcSanitaryTerminalType = IfcSanitaryTerminalType; + class IfcScheduleTimeControl extends IfcControl { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ActualStart, EarlyStart, LateStart, ScheduleStart, ActualFinish, EarlyFinish, LateFinish, ScheduleFinish, ScheduleDuration, ActualDuration, RemainingTime, FreeFloat, TotalFloat, IsCritical, StatusTime, StartFloat, FinishFloat, Completion) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ActualStart = ActualStart; + this.EarlyStart = EarlyStart; + this.LateStart = LateStart; + this.ScheduleStart = ScheduleStart; + this.ActualFinish = ActualFinish; + this.EarlyFinish = EarlyFinish; + this.LateFinish = LateFinish; + this.ScheduleFinish = ScheduleFinish; + this.ScheduleDuration = ScheduleDuration; + this.ActualDuration = ActualDuration; + this.RemainingTime = RemainingTime; + this.FreeFloat = FreeFloat; + this.TotalFloat = TotalFloat; + this.IsCritical = IsCritical; + this.StatusTime = StatusTime; + this.StartFloat = StartFloat; + this.FinishFloat = FinishFloat; + this.Completion = Completion; + this.type = 3517283431; } } - IFC2X32.IfcProductsOfCombustionProperties = IfcProductsOfCombustionProperties; - class IfcProfileDef extends IfcLineObject { - constructor(expressID, ProfileType, ProfileName) { - super(expressID); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.type = 3958567839; + IFC2X32.IfcScheduleTimeControl = IfcScheduleTimeControl; + class IfcServiceLife extends IfcControl { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ServiceLifeType, ServiceLifeDuration) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ServiceLifeType = ServiceLifeType; + this.ServiceLifeDuration = ServiceLifeDuration; + this.type = 4105383287; } } - IFC2X32.IfcProfileDef = IfcProfileDef; - class IfcProfileProperties extends IfcLineObject { - constructor(expressID, ProfileName, ProfileDefinition) { - super(expressID); - this.ProfileName = ProfileName; - this.ProfileDefinition = ProfileDefinition; - this.type = 2802850158; + IFC2X32.IfcServiceLife = IfcServiceLife; + class IfcSite extends IfcSpatialStructureElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, RefLatitude, RefLongitude, RefElevation, LandTitleNumber, SiteAddress) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.LongName = LongName; + this.CompositionType = CompositionType; + this.RefLatitude = RefLatitude; + this.RefLongitude = RefLongitude; + this.RefElevation = RefElevation; + this.LandTitleNumber = LandTitleNumber; + this.SiteAddress = SiteAddress; + this.type = 4097777520; } } - IFC2X32.IfcProfileProperties = IfcProfileProperties; - class IfcProperty extends IfcLineObject { - constructor(expressID, Name, Description) { - super(expressID); + IFC2X32.IfcSite = IfcSite; + class IfcSlabType extends IfcBuildingElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.type = 2598011224; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2533589738; } } - IFC2X32.IfcProperty = IfcProperty; - class IfcPropertyConstraintRelationship extends IfcLineObject { - constructor(expressID, RelatingConstraint, RelatedProperties, Name, Description) { - super(expressID); - this.RelatingConstraint = RelatingConstraint; - this.RelatedProperties = RelatedProperties; + IFC2X32.IfcSlabType = IfcSlabType; + class IfcSpace extends IfcSpatialStructureElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, InteriorOrExteriorSpace, ElevationWithFlooring) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.type = 3896028662; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.LongName = LongName; + this.CompositionType = CompositionType; + this.InteriorOrExteriorSpace = InteriorOrExteriorSpace; + this.ElevationWithFlooring = ElevationWithFlooring; + this.type = 3856911033; } } - IFC2X32.IfcPropertyConstraintRelationship = IfcPropertyConstraintRelationship; - class IfcPropertyDependencyRelationship extends IfcLineObject { - constructor(expressID, DependingProperty, DependantProperty, Name, Description, Expression) { - super(expressID); - this.DependingProperty = DependingProperty; - this.DependantProperty = DependantProperty; + IFC2X32.IfcSpace = IfcSpace; + class IfcSpaceHeaterType extends IfcEnergyConversionDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.Expression = Expression; - this.type = 148025276; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1305183839; } } - IFC2X32.IfcPropertyDependencyRelationship = IfcPropertyDependencyRelationship; - class IfcPropertyEnumeration extends IfcLineObject { - constructor(expressID, Name, EnumerationValues, Unit) { - super(expressID); + IFC2X32.IfcSpaceHeaterType = IfcSpaceHeaterType; + class IfcSpaceProgram extends IfcControl { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, SpaceProgramIdentifier, MaxRequiredArea, MinRequiredArea, RequestedLocation, StandardRequiredArea) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.EnumerationValues = EnumerationValues; - this.Unit = Unit; - this.type = 3710013099; + this.Description = Description; + this.ObjectType = ObjectType; + this.SpaceProgramIdentifier = SpaceProgramIdentifier; + this.MaxRequiredArea = MaxRequiredArea; + this.MinRequiredArea = MinRequiredArea; + this.RequestedLocation = RequestedLocation; + this.StandardRequiredArea = StandardRequiredArea; + this.type = 652456506; } } - IFC2X32.IfcPropertyEnumeration = IfcPropertyEnumeration; - class IfcQuantityArea extends IfcPhysicalSimpleQuantity { - constructor(expressID, Name, Description, Unit, AreaValue) { - super(expressID, Name, Description, Unit); + IFC2X32.IfcSpaceProgram = IfcSpaceProgram; + class IfcSpaceType extends IfcSpatialStructureElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.Unit = Unit; - this.AreaValue = AreaValue; - this.type = 2044713172; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3812236995; } } - IFC2X32.IfcQuantityArea = IfcQuantityArea; - class IfcQuantityCount extends IfcPhysicalSimpleQuantity { - constructor(expressID, Name, Description, Unit, CountValue) { - super(expressID, Name, Description, Unit); + IFC2X32.IfcSpaceType = IfcSpaceType; + class IfcStackTerminalType extends IfcFlowTerminalType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.Unit = Unit; - this.CountValue = CountValue; - this.type = 2093928680; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3112655638; } } - IFC2X32.IfcQuantityCount = IfcQuantityCount; - class IfcQuantityLength extends IfcPhysicalSimpleQuantity { - constructor(expressID, Name, Description, Unit, LengthValue) { - super(expressID, Name, Description, Unit); + IFC2X32.IfcStackTerminalType = IfcStackTerminalType; + class IfcStairFlightType extends IfcBuildingElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.Unit = Unit; - this.LengthValue = LengthValue; - this.type = 931644368; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1039846685; } } - IFC2X32.IfcQuantityLength = IfcQuantityLength; - class IfcQuantityTime extends IfcPhysicalSimpleQuantity { - constructor(expressID, Name, Description, Unit, TimeValue) { - super(expressID, Name, Description, Unit); + IFC2X32.IfcStairFlightType = IfcStairFlightType; + class IfcStructuralAction extends IfcStructuralActivity { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.Unit = Unit; - this.TimeValue = TimeValue; - this.type = 3252649465; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedLoad = AppliedLoad; + this.GlobalOrLocal = GlobalOrLocal; + this.DestabilizingLoad = DestabilizingLoad; + this.CausedBy = CausedBy; + this.type = 682877961; } } - IFC2X32.IfcQuantityTime = IfcQuantityTime; - class IfcQuantityVolume extends IfcPhysicalSimpleQuantity { - constructor(expressID, Name, Description, Unit, VolumeValue) { - super(expressID, Name, Description, Unit); + IFC2X32.IfcStructuralAction = IfcStructuralAction; + class IfcStructuralConnection extends IfcStructuralItem { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.Unit = Unit; - this.VolumeValue = VolumeValue; - this.type = 2405470396; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedCondition = AppliedCondition; + this.type = 1179482911; } } - IFC2X32.IfcQuantityVolume = IfcQuantityVolume; - class IfcQuantityWeight extends IfcPhysicalSimpleQuantity { - constructor(expressID, Name, Description, Unit, WeightValue) { - super(expressID, Name, Description, Unit); + IFC2X32.IfcStructuralConnection = IfcStructuralConnection; + class IfcStructuralCurveConnection extends IfcStructuralConnection { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.Unit = Unit; - this.WeightValue = WeightValue; - this.type = 825690147; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedCondition = AppliedCondition; + this.type = 4243806635; } } - IFC2X32.IfcQuantityWeight = IfcQuantityWeight; - class IfcReferencesValueDocument extends IfcLineObject { - constructor(expressID, ReferencedDocument, ReferencingValues, Name, Description) { - super(expressID); - this.ReferencedDocument = ReferencedDocument; - this.ReferencingValues = ReferencingValues; + IFC2X32.IfcStructuralCurveConnection = IfcStructuralCurveConnection; + class IfcStructuralCurveMember extends IfcStructuralMember { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.type = 2692823254; - } - } - IFC2X32.IfcReferencesValueDocument = IfcReferencesValueDocument; - class IfcReinforcementBarProperties extends IfcLineObject { - constructor(expressID, TotalCrossSectionArea, SteelGrade, BarSurface, EffectiveDepth, NominalBarDiameter, BarCount) { - super(expressID); - this.TotalCrossSectionArea = TotalCrossSectionArea; - this.SteelGrade = SteelGrade; - this.BarSurface = BarSurface; - this.EffectiveDepth = EffectiveDepth; - this.NominalBarDiameter = NominalBarDiameter; - this.BarCount = BarCount; - this.type = 1580146022; - } - } - IFC2X32.IfcReinforcementBarProperties = IfcReinforcementBarProperties; - class IfcRelaxation extends IfcLineObject { - constructor(expressID, RelaxationValue, InitialStress) { - super(expressID); - this.RelaxationValue = RelaxationValue; - this.InitialStress = InitialStress; - this.type = 1222501353; - } - } - IFC2X32.IfcRelaxation = IfcRelaxation; - class IfcRepresentation extends IfcLineObject { - constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { - super(expressID); - this.ContextOfItems = ContextOfItems; - this.RepresentationIdentifier = RepresentationIdentifier; - this.RepresentationType = RepresentationType; - this.Items = Items; - this.type = 1076942058; - } - } - IFC2X32.IfcRepresentation = IfcRepresentation; - class IfcRepresentationContext extends IfcLineObject { - constructor(expressID, ContextIdentifier, ContextType) { - super(expressID); - this.ContextIdentifier = ContextIdentifier; - this.ContextType = ContextType; - this.type = 3377609919; - } - } - IFC2X32.IfcRepresentationContext = IfcRepresentationContext; - class IfcRepresentationItem extends IfcLineObject { - constructor(expressID) { - super(expressID); - this.type = 3008791417; - } - } - IFC2X32.IfcRepresentationItem = IfcRepresentationItem; - class IfcRepresentationMap extends IfcLineObject { - constructor(expressID, MappingOrigin, MappedRepresentation) { - super(expressID); - this.MappingOrigin = MappingOrigin; - this.MappedRepresentation = MappedRepresentation; - this.type = 1660063152; - } - } - IFC2X32.IfcRepresentationMap = IfcRepresentationMap; - class IfcRibPlateProfileProperties extends IfcProfileProperties { - constructor(expressID, ProfileName, ProfileDefinition, Thickness, RibHeight, RibWidth, RibSpacing, Direction) { - super(expressID, ProfileName, ProfileDefinition); - this.ProfileName = ProfileName; - this.ProfileDefinition = ProfileDefinition; - this.Thickness = Thickness; - this.RibHeight = RibHeight; - this.RibWidth = RibWidth; - this.RibSpacing = RibSpacing; - this.Direction = Direction; - this.type = 3679540991; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.PredefinedType = PredefinedType; + this.type = 214636428; } } - IFC2X32.IfcRibPlateProfileProperties = IfcRibPlateProfileProperties; - class IfcRoot extends IfcLineObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID); + IFC2X32.IfcStructuralCurveMember = IfcStructuralCurveMember; + class IfcStructuralCurveMemberVarying extends IfcStructuralCurveMember { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.type = 2341007311; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.PredefinedType = PredefinedType; + this.type = 2445595289; } } - IFC2X32.IfcRoot = IfcRoot; - class IfcSIUnit extends IfcNamedUnit { - constructor(expressID, UnitType, Prefix, Name) { - super(expressID, new Handle$4(0), UnitType); - this.UnitType = UnitType; - this.Prefix = Prefix; + IFC2X32.IfcStructuralCurveMemberVarying = IfcStructuralCurveMemberVarying; + class IfcStructuralLinearAction extends IfcStructuralAction { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy, ProjectedOrTrue) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.type = 448429030; - } - } - IFC2X32.IfcSIUnit = IfcSIUnit; - class IfcSectionProperties extends IfcLineObject { - constructor(expressID, SectionType, StartProfile, EndProfile) { - super(expressID); - this.SectionType = SectionType; - this.StartProfile = StartProfile; - this.EndProfile = EndProfile; - this.type = 2042790032; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedLoad = AppliedLoad; + this.GlobalOrLocal = GlobalOrLocal; + this.DestabilizingLoad = DestabilizingLoad; + this.CausedBy = CausedBy; + this.ProjectedOrTrue = ProjectedOrTrue; + this.type = 1807405624; } } - IFC2X32.IfcSectionProperties = IfcSectionProperties; - class IfcSectionReinforcementProperties extends IfcLineObject { - constructor(expressID, LongitudinalStartPosition, LongitudinalEndPosition, TransversePosition, ReinforcementRole, SectionDefinition, CrossSectionReinforcementDefinitions) { - super(expressID); - this.LongitudinalStartPosition = LongitudinalStartPosition; - this.LongitudinalEndPosition = LongitudinalEndPosition; - this.TransversePosition = TransversePosition; - this.ReinforcementRole = ReinforcementRole; - this.SectionDefinition = SectionDefinition; - this.CrossSectionReinforcementDefinitions = CrossSectionReinforcementDefinitions; - this.type = 4165799628; + IFC2X32.IfcStructuralLinearAction = IfcStructuralLinearAction; + class IfcStructuralLinearActionVarying extends IfcStructuralLinearAction { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy, ProjectedOrTrue, VaryingAppliedLoadLocation, SubsequentAppliedLoads) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy, ProjectedOrTrue); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedLoad = AppliedLoad; + this.GlobalOrLocal = GlobalOrLocal; + this.DestabilizingLoad = DestabilizingLoad; + this.CausedBy = CausedBy; + this.ProjectedOrTrue = ProjectedOrTrue; + this.VaryingAppliedLoadLocation = VaryingAppliedLoadLocation; + this.SubsequentAppliedLoads = SubsequentAppliedLoads; + this.type = 1721250024; } } - IFC2X32.IfcSectionReinforcementProperties = IfcSectionReinforcementProperties; - class IfcShapeAspect extends IfcLineObject { - constructor(expressID, ShapeRepresentations, Name, Description, ProductDefinitional, PartOfProductDefinitionShape) { - super(expressID); - this.ShapeRepresentations = ShapeRepresentations; + IFC2X32.IfcStructuralLinearActionVarying = IfcStructuralLinearActionVarying; + class IfcStructuralLoadGroup extends IfcGroup { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, ActionType, ActionSource, Coefficient, Purpose) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.ProductDefinitional = ProductDefinitional; - this.PartOfProductDefinitionShape = PartOfProductDefinitionShape; - this.type = 867548509; + this.ObjectType = ObjectType; + this.PredefinedType = PredefinedType; + this.ActionType = ActionType; + this.ActionSource = ActionSource; + this.Coefficient = Coefficient; + this.Purpose = Purpose; + this.type = 1252848954; } } - IFC2X32.IfcShapeAspect = IfcShapeAspect; - class IfcShapeModel extends IfcRepresentation { - constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { - super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items); - this.ContextOfItems = ContextOfItems; - this.RepresentationIdentifier = RepresentationIdentifier; - this.RepresentationType = RepresentationType; - this.Items = Items; - this.type = 3982875396; + IFC2X32.IfcStructuralLoadGroup = IfcStructuralLoadGroup; + class IfcStructuralPlanarAction extends IfcStructuralAction { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy, ProjectedOrTrue) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedLoad = AppliedLoad; + this.GlobalOrLocal = GlobalOrLocal; + this.DestabilizingLoad = DestabilizingLoad; + this.CausedBy = CausedBy; + this.ProjectedOrTrue = ProjectedOrTrue; + this.type = 1621171031; } } - IFC2X32.IfcShapeModel = IfcShapeModel; - class IfcShapeRepresentation extends IfcShapeModel { - constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { - super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items); - this.ContextOfItems = ContextOfItems; - this.RepresentationIdentifier = RepresentationIdentifier; - this.RepresentationType = RepresentationType; - this.Items = Items; - this.type = 4240577450; + IFC2X32.IfcStructuralPlanarAction = IfcStructuralPlanarAction; + class IfcStructuralPlanarActionVarying extends IfcStructuralPlanarAction { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy, ProjectedOrTrue, VaryingAppliedLoadLocation, SubsequentAppliedLoads) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy, ProjectedOrTrue); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedLoad = AppliedLoad; + this.GlobalOrLocal = GlobalOrLocal; + this.DestabilizingLoad = DestabilizingLoad; + this.CausedBy = CausedBy; + this.ProjectedOrTrue = ProjectedOrTrue; + this.VaryingAppliedLoadLocation = VaryingAppliedLoadLocation; + this.SubsequentAppliedLoads = SubsequentAppliedLoads; + this.type = 3987759626; } } - IFC2X32.IfcShapeRepresentation = IfcShapeRepresentation; - class IfcSimpleProperty extends IfcProperty { - constructor(expressID, Name, Description) { - super(expressID, Name, Description); + IFC2X32.IfcStructuralPlanarActionVarying = IfcStructuralPlanarActionVarying; + class IfcStructuralPointAction extends IfcStructuralAction { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.type = 3692461612; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedLoad = AppliedLoad; + this.GlobalOrLocal = GlobalOrLocal; + this.DestabilizingLoad = DestabilizingLoad; + this.CausedBy = CausedBy; + this.type = 2082059205; } } - IFC2X32.IfcSimpleProperty = IfcSimpleProperty; - class IfcStructuralConnectionCondition extends IfcLineObject { - constructor(expressID, Name) { - super(expressID); + IFC2X32.IfcStructuralPointAction = IfcStructuralPointAction; + class IfcStructuralPointConnection extends IfcStructuralConnection { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.type = 2273995522; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedCondition = AppliedCondition; + this.type = 734778138; } } - IFC2X32.IfcStructuralConnectionCondition = IfcStructuralConnectionCondition; - class IfcStructuralLoad extends IfcLineObject { - constructor(expressID, Name) { - super(expressID); + IFC2X32.IfcStructuralPointConnection = IfcStructuralPointConnection; + class IfcStructuralPointReaction extends IfcStructuralReaction { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.type = 2162789131; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedLoad = AppliedLoad; + this.GlobalOrLocal = GlobalOrLocal; + this.type = 1235345126; } } - IFC2X32.IfcStructuralLoad = IfcStructuralLoad; - class IfcStructuralLoadStatic extends IfcStructuralLoad { - constructor(expressID, Name) { - super(expressID, Name); + IFC2X32.IfcStructuralPointReaction = IfcStructuralPointReaction; + class IfcStructuralResultGroup extends IfcGroup { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, TheoryType, ResultForLoadGroup, IsLinear) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.type = 2525727697; + this.Description = Description; + this.ObjectType = ObjectType; + this.TheoryType = TheoryType; + this.ResultForLoadGroup = ResultForLoadGroup; + this.IsLinear = IsLinear; + this.type = 2986769608; } } - IFC2X32.IfcStructuralLoadStatic = IfcStructuralLoadStatic; - class IfcStructuralLoadTemperature extends IfcStructuralLoadStatic { - constructor(expressID, Name, DeltaT_Constant, DeltaT_Y, DeltaT_Z) { - super(expressID, Name); + IFC2X32.IfcStructuralResultGroup = IfcStructuralResultGroup; + class IfcStructuralSurfaceConnection extends IfcStructuralConnection { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.DeltaT_Constant = DeltaT_Constant; - this.DeltaT_Y = DeltaT_Y; - this.DeltaT_Z = DeltaT_Z; - this.type = 3408363356; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedCondition = AppliedCondition; + this.type = 1975003073; } } - IFC2X32.IfcStructuralLoadTemperature = IfcStructuralLoadTemperature; - class IfcStyleModel extends IfcRepresentation { - constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { - super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items); - this.ContextOfItems = ContextOfItems; - this.RepresentationIdentifier = RepresentationIdentifier; - this.RepresentationType = RepresentationType; - this.Items = Items; - this.type = 2830218821; + IFC2X32.IfcStructuralSurfaceConnection = IfcStructuralSurfaceConnection; + class IfcSubContractResource extends IfcConstructionResource { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity, SubContractor, JobDescription) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ResourceIdentifier = ResourceIdentifier; + this.ResourceGroup = ResourceGroup; + this.ResourceConsumption = ResourceConsumption; + this.BaseQuantity = BaseQuantity; + this.SubContractor = SubContractor; + this.JobDescription = JobDescription; + this.type = 148013059; } } - IFC2X32.IfcStyleModel = IfcStyleModel; - class IfcStyledItem extends IfcRepresentationItem { - constructor(expressID, Item, Styles, Name) { - super(expressID); - this.Item = Item; - this.Styles = Styles; + IFC2X32.IfcSubContractResource = IfcSubContractResource; + class IfcSwitchingDeviceType extends IfcFlowControllerType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.type = 3958052878; - } - } - IFC2X32.IfcStyledItem = IfcStyledItem; - class IfcStyledRepresentation extends IfcStyleModel { - constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { - super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items); - this.ContextOfItems = ContextOfItems; - this.RepresentationIdentifier = RepresentationIdentifier; - this.RepresentationType = RepresentationType; - this.Items = Items; - this.type = 3049322572; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2315554128; } } - IFC2X32.IfcStyledRepresentation = IfcStyledRepresentation; - class IfcSurfaceStyle extends IfcPresentationStyle { - constructor(expressID, Name, Side, Styles) { - super(expressID, Name); + IFC2X32.IfcSwitchingDeviceType = IfcSwitchingDeviceType; + class IfcSystem extends IfcGroup { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.Side = Side; - this.Styles = Styles; - this.type = 1300840506; + this.Description = Description; + this.ObjectType = ObjectType; + this.type = 2254336722; } } - IFC2X32.IfcSurfaceStyle = IfcSurfaceStyle; - class IfcSurfaceStyleLighting extends IfcLineObject { - constructor(expressID, DiffuseTransmissionColour, DiffuseReflectionColour, TransmissionColour, ReflectanceColour) { - super(expressID); - this.DiffuseTransmissionColour = DiffuseTransmissionColour; - this.DiffuseReflectionColour = DiffuseReflectionColour; - this.TransmissionColour = TransmissionColour; - this.ReflectanceColour = ReflectanceColour; - this.type = 3303107099; + IFC2X32.IfcSystem = IfcSystem; + class IfcTankType extends IfcFlowStorageDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 5716631; } } - IFC2X32.IfcSurfaceStyleLighting = IfcSurfaceStyleLighting; - class IfcSurfaceStyleRefraction extends IfcLineObject { - constructor(expressID, RefractionIndex, DispersionFactor) { - super(expressID); - this.RefractionIndex = RefractionIndex; - this.DispersionFactor = DispersionFactor; - this.type = 1607154358; + IFC2X32.IfcTankType = IfcTankType; + class IfcTimeSeriesSchedule extends IfcControl { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ApplicableDates, TimeSeriesScheduleType, TimeSeries) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ApplicableDates = ApplicableDates; + this.TimeSeriesScheduleType = TimeSeriesScheduleType; + this.TimeSeries = TimeSeries; + this.type = 1637806684; } } - IFC2X32.IfcSurfaceStyleRefraction = IfcSurfaceStyleRefraction; - class IfcSurfaceStyleShading extends IfcLineObject { - constructor(expressID, SurfaceColour) { - super(expressID); - this.SurfaceColour = SurfaceColour; - this.type = 846575682; + IFC2X32.IfcTimeSeriesSchedule = IfcTimeSeriesSchedule; + class IfcTransformerType extends IfcEnergyConversionDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1692211062; } } - IFC2X32.IfcSurfaceStyleShading = IfcSurfaceStyleShading; - class IfcSurfaceStyleWithTextures extends IfcLineObject { - constructor(expressID, Textures) { - super(expressID); - this.Textures = Textures; - this.type = 1351298697; + IFC2X32.IfcTransformerType = IfcTransformerType; + class IfcTransportElement extends IfcElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OperationType, CapacityByWeight, CapacityByNumber) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.OperationType = OperationType; + this.CapacityByWeight = CapacityByWeight; + this.CapacityByNumber = CapacityByNumber; + this.type = 1620046519; } } - IFC2X32.IfcSurfaceStyleWithTextures = IfcSurfaceStyleWithTextures; - class IfcSurfaceTexture extends IfcLineObject { - constructor(expressID, RepeatS, RepeatT, TextureType, TextureTransform) { - super(expressID); - this.RepeatS = RepeatS; - this.RepeatT = RepeatT; - this.TextureType = TextureType; - this.TextureTransform = TextureTransform; - this.type = 626085974; + IFC2X32.IfcTransportElement = IfcTransportElement; + class IfcTrimmedCurve extends IfcBoundedCurve { + constructor(BasisCurve, Trim1, Trim2, SenseAgreement, MasterRepresentation) { + super(); + this.BasisCurve = BasisCurve; + this.Trim1 = Trim1; + this.Trim2 = Trim2; + this.SenseAgreement = SenseAgreement; + this.MasterRepresentation = MasterRepresentation; + this.type = 3593883385; } } - IFC2X32.IfcSurfaceTexture = IfcSurfaceTexture; - class IfcSymbolStyle extends IfcPresentationStyle { - constructor(expressID, Name, StyleOfSymbol) { - super(expressID, Name); + IFC2X32.IfcTrimmedCurve = IfcTrimmedCurve; + class IfcTubeBundleType extends IfcEnergyConversionDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.StyleOfSymbol = StyleOfSymbol; - this.type = 1290481447; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1600972822; } } - IFC2X32.IfcSymbolStyle = IfcSymbolStyle; - class IfcTable extends IfcLineObject { - constructor(expressID, Name, Rows) { - super(expressID); + IFC2X32.IfcTubeBundleType = IfcTubeBundleType; + class IfcUnitaryEquipmentType extends IfcEnergyConversionDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.Rows = Rows; - this.type = 985171141; - } - } - IFC2X32.IfcTable = IfcTable; - class IfcTableRow extends IfcLineObject { - constructor(expressID, RowCells, IsHeading) { - super(expressID); - this.RowCells = RowCells; - this.IsHeading = IsHeading; - this.type = 531007025; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1911125066; } } - IFC2X32.IfcTableRow = IfcTableRow; - class IfcTelecomAddress extends IfcAddress { - constructor(expressID, Purpose, Description, UserDefinedPurpose, TelephoneNumbers, FacsimileNumbers, PagerNumber, ElectronicMailAddresses, WWWHomePageURL) { - super(expressID, Purpose, Description, UserDefinedPurpose); - this.Purpose = Purpose; + IFC2X32.IfcUnitaryEquipmentType = IfcUnitaryEquipmentType; + class IfcValveType extends IfcFlowControllerType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; this.Description = Description; - this.UserDefinedPurpose = UserDefinedPurpose; - this.TelephoneNumbers = TelephoneNumbers; - this.FacsimileNumbers = FacsimileNumbers; - this.PagerNumber = PagerNumber; - this.ElectronicMailAddresses = ElectronicMailAddresses; - this.WWWHomePageURL = WWWHomePageURL; - this.type = 912023232; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 728799441; } } - IFC2X32.IfcTelecomAddress = IfcTelecomAddress; - class IfcTextStyle extends IfcPresentationStyle { - constructor(expressID, Name, TextCharacterAppearance, TextStyle, TextFontStyle) { - super(expressID, Name); + IFC2X32.IfcValveType = IfcValveType; + class IfcVirtualElement extends IfcElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.TextCharacterAppearance = TextCharacterAppearance; - this.TextStyle = TextStyle; - this.TextFontStyle = TextFontStyle; - this.type = 1447204868; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 2769231204; } } - IFC2X32.IfcTextStyle = IfcTextStyle; - class IfcTextStyleFontModel extends IfcPreDefinedTextFont { - constructor(expressID, Name, FontFamily, FontStyle, FontVariant, FontWeight, FontSize) { - super(expressID, Name); + IFC2X32.IfcVirtualElement = IfcVirtualElement; + class IfcWallType extends IfcBuildingElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.FontFamily = FontFamily; - this.FontStyle = FontStyle; - this.FontVariant = FontVariant; - this.FontWeight = FontWeight; - this.FontSize = FontSize; - this.type = 1983826977; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1898987631; } } - IFC2X32.IfcTextStyleFontModel = IfcTextStyleFontModel; - class IfcTextStyleForDefinedFont extends IfcLineObject { - constructor(expressID, Colour, BackgroundColour) { - super(expressID); - this.Colour = Colour; - this.BackgroundColour = BackgroundColour; - this.type = 2636378356; + IFC2X32.IfcWallType = IfcWallType; + class IfcWasteTerminalType extends IfcFlowTerminalType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1133259667; } } - IFC2X32.IfcTextStyleForDefinedFont = IfcTextStyleForDefinedFont; - class IfcTextStyleTextModel extends IfcLineObject { - constructor(expressID, TextIndent, TextAlign, TextDecoration, LetterSpacing, WordSpacing, TextTransform, LineHeight) { - super(expressID); - this.TextIndent = TextIndent; - this.TextAlign = TextAlign; - this.TextDecoration = TextDecoration; - this.LetterSpacing = LetterSpacing; - this.WordSpacing = WordSpacing; - this.TextTransform = TextTransform; - this.LineHeight = LineHeight; - this.type = 1640371178; + IFC2X32.IfcWasteTerminalType = IfcWasteTerminalType; + class IfcWorkControl extends IfcControl { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identifier, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, WorkControlType, UserDefinedControlType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identifier = Identifier; + this.CreationDate = CreationDate; + this.Creators = Creators; + this.Purpose = Purpose; + this.Duration = Duration; + this.TotalFloat = TotalFloat; + this.StartTime = StartTime; + this.FinishTime = FinishTime; + this.WorkControlType = WorkControlType; + this.UserDefinedControlType = UserDefinedControlType; + this.type = 1028945134; } } - IFC2X32.IfcTextStyleTextModel = IfcTextStyleTextModel; - class IfcTextStyleWithBoxCharacteristics extends IfcLineObject { - constructor(expressID, BoxHeight, BoxWidth, BoxSlantAngle, BoxRotateAngle, CharacterSpacing) { - super(expressID); - this.BoxHeight = BoxHeight; - this.BoxWidth = BoxWidth; - this.BoxSlantAngle = BoxSlantAngle; - this.BoxRotateAngle = BoxRotateAngle; - this.CharacterSpacing = CharacterSpacing; - this.type = 1484833681; + IFC2X32.IfcWorkControl = IfcWorkControl; + class IfcWorkPlan extends IfcWorkControl { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identifier, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, WorkControlType, UserDefinedControlType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identifier, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, WorkControlType, UserDefinedControlType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identifier = Identifier; + this.CreationDate = CreationDate; + this.Creators = Creators; + this.Purpose = Purpose; + this.Duration = Duration; + this.TotalFloat = TotalFloat; + this.StartTime = StartTime; + this.FinishTime = FinishTime; + this.WorkControlType = WorkControlType; + this.UserDefinedControlType = UserDefinedControlType; + this.type = 4218914973; } } - IFC2X32.IfcTextStyleWithBoxCharacteristics = IfcTextStyleWithBoxCharacteristics; - class IfcTextureCoordinate extends IfcLineObject { - constructor(expressID) { - super(expressID); - this.type = 280115917; + IFC2X32.IfcWorkPlan = IfcWorkPlan; + class IfcWorkSchedule extends IfcWorkControl { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identifier, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, WorkControlType, UserDefinedControlType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identifier, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, WorkControlType, UserDefinedControlType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identifier = Identifier; + this.CreationDate = CreationDate; + this.Creators = Creators; + this.Purpose = Purpose; + this.Duration = Duration; + this.TotalFloat = TotalFloat; + this.StartTime = StartTime; + this.FinishTime = FinishTime; + this.WorkControlType = WorkControlType; + this.UserDefinedControlType = UserDefinedControlType; + this.type = 3342526732; } } - IFC2X32.IfcTextureCoordinate = IfcTextureCoordinate; - class IfcTextureCoordinateGenerator extends IfcTextureCoordinate { - constructor(expressID, Mode, Parameter) { - super(expressID); - this.Mode = Mode; - this.Parameter = Parameter; - this.type = 1742049831; + IFC2X32.IfcWorkSchedule = IfcWorkSchedule; + class IfcZone extends IfcGroup { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.type = 1033361043; } } - IFC2X32.IfcTextureCoordinateGenerator = IfcTextureCoordinateGenerator; - class IfcTextureMap extends IfcTextureCoordinate { - constructor(expressID, TextureMaps) { - super(expressID); - this.TextureMaps = TextureMaps; - this.type = 2552916305; + IFC2X32.IfcZone = IfcZone; + class Ifc2DCompositeCurve extends IfcCompositeCurve { + constructor(Segments, SelfIntersect) { + super(Segments, SelfIntersect); + this.Segments = Segments; + this.SelfIntersect = SelfIntersect; + this.type = 1213861670; } } - IFC2X32.IfcTextureMap = IfcTextureMap; - class IfcTextureVertex extends IfcLineObject { - constructor(expressID, Coordinates) { - super(expressID); - this.Coordinates = Coordinates; - this.type = 1210645708; + IFC2X32.Ifc2DCompositeCurve = Ifc2DCompositeCurve; + class IfcActionRequest extends IfcControl { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, RequestID) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.RequestID = RequestID; + this.type = 3821786052; } } - IFC2X32.IfcTextureVertex = IfcTextureVertex; - class IfcThermalMaterialProperties extends IfcMaterialProperties { - constructor(expressID, Material, SpecificHeatCapacity, BoilingPoint, FreezingPoint, ThermalConductivity) { - super(expressID, Material); - this.Material = Material; - this.SpecificHeatCapacity = SpecificHeatCapacity; - this.BoilingPoint = BoilingPoint; - this.FreezingPoint = FreezingPoint; - this.ThermalConductivity = ThermalConductivity; - this.type = 3317419933; + IFC2X32.IfcActionRequest = IfcActionRequest; + class IfcAirTerminalBoxType extends IfcFlowControllerType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1411407467; } } - IFC2X32.IfcThermalMaterialProperties = IfcThermalMaterialProperties; - class IfcTimeSeries extends IfcLineObject { - constructor(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit) { - super(expressID); + IFC2X32.IfcAirTerminalBoxType = IfcAirTerminalBoxType; + class IfcAirTerminalType extends IfcFlowTerminalType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.StartTime = StartTime; - this.EndTime = EndTime; - this.TimeSeriesDataType = TimeSeriesDataType; - this.DataOrigin = DataOrigin; - this.UserDefinedDataOrigin = UserDefinedDataOrigin; - this.Unit = Unit; - this.type = 3101149627; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3352864051; } } - IFC2X32.IfcTimeSeries = IfcTimeSeries; - class IfcTimeSeriesReferenceRelationship extends IfcLineObject { - constructor(expressID, ReferencedTimeSeries, TimeSeriesReferences) { - super(expressID); - this.ReferencedTimeSeries = ReferencedTimeSeries; - this.TimeSeriesReferences = TimeSeriesReferences; - this.type = 1718945513; + IFC2X32.IfcAirTerminalType = IfcAirTerminalType; + class IfcAirToAirHeatRecoveryType extends IfcEnergyConversionDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1871374353; } } - IFC2X32.IfcTimeSeriesReferenceRelationship = IfcTimeSeriesReferenceRelationship; - class IfcTimeSeriesValue extends IfcLineObject { - constructor(expressID, ListValues) { - super(expressID); - this.ListValues = ListValues; - this.type = 581633288; + IFC2X32.IfcAirToAirHeatRecoveryType = IfcAirToAirHeatRecoveryType; + class IfcAngularDimension extends IfcDimensionCurveDirectedCallout { + constructor(Contents) { + super(Contents); + this.Contents = Contents; + this.type = 2470393545; } } - IFC2X32.IfcTimeSeriesValue = IfcTimeSeriesValue; - class IfcTopologicalRepresentationItem extends IfcRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 1377556343; + IFC2X32.IfcAngularDimension = IfcAngularDimension; + class IfcAsset extends IfcGroup { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, AssetID, OriginalValue, CurrentValue, TotalReplacementCost, Owner, User, ResponsiblePerson, IncorporationDate, DepreciatedValue) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.AssetID = AssetID; + this.OriginalValue = OriginalValue; + this.CurrentValue = CurrentValue; + this.TotalReplacementCost = TotalReplacementCost; + this.Owner = Owner; + this.User = User; + this.ResponsiblePerson = ResponsiblePerson; + this.IncorporationDate = IncorporationDate; + this.DepreciatedValue = DepreciatedValue; + this.type = 3460190687; } } - IFC2X32.IfcTopologicalRepresentationItem = IfcTopologicalRepresentationItem; - class IfcTopologyRepresentation extends IfcShapeModel { - constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { - super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items); - this.ContextOfItems = ContextOfItems; - this.RepresentationIdentifier = RepresentationIdentifier; - this.RepresentationType = RepresentationType; - this.Items = Items; - this.type = 1735638870; + IFC2X32.IfcAsset = IfcAsset; + class IfcBSplineCurve extends IfcBoundedCurve { + constructor(Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect) { + super(); + this.Degree = Degree; + this.ControlPointsList = ControlPointsList; + this.CurveForm = CurveForm; + this.ClosedCurve = ClosedCurve; + this.SelfIntersect = SelfIntersect; + this.type = 1967976161; } } - IFC2X32.IfcTopologyRepresentation = IfcTopologyRepresentation; - class IfcUnitAssignment extends IfcLineObject { - constructor(expressID, Units) { - super(expressID); - this.Units = Units; - this.type = 180925521; + IFC2X32.IfcBSplineCurve = IfcBSplineCurve; + class IfcBeamType extends IfcBuildingElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 819618141; } } - IFC2X32.IfcUnitAssignment = IfcUnitAssignment; - class IfcVertex extends IfcTopologicalRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 2799835756; + IFC2X32.IfcBeamType = IfcBeamType; + class IfcBezierCurve extends IfcBSplineCurve { + constructor(Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect) { + super(Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect); + this.Degree = Degree; + this.ControlPointsList = ControlPointsList; + this.CurveForm = CurveForm; + this.ClosedCurve = ClosedCurve; + this.SelfIntersect = SelfIntersect; + this.type = 1916977116; } } - IFC2X32.IfcVertex = IfcVertex; - class IfcVertexBasedTextureMap extends IfcLineObject { - constructor(expressID, TextureVertices, TexturePoints) { - super(expressID); - this.TextureVertices = TextureVertices; - this.TexturePoints = TexturePoints; - this.type = 3304826586; + IFC2X32.IfcBezierCurve = IfcBezierCurve; + class IfcBoilerType extends IfcEnergyConversionDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 231477066; } } - IFC2X32.IfcVertexBasedTextureMap = IfcVertexBasedTextureMap; - class IfcVertexPoint extends IfcVertex { - constructor(expressID, VertexGeometry) { - super(expressID); - this.VertexGeometry = VertexGeometry; - this.type = 1907098498; + IFC2X32.IfcBoilerType = IfcBoilerType; + class IfcBuildingElement extends IfcElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 3299480353; } } - IFC2X32.IfcVertexPoint = IfcVertexPoint; - class IfcVirtualGridIntersection extends IfcLineObject { - constructor(expressID, IntersectingAxes, OffsetDistances) { - super(expressID); - this.IntersectingAxes = IntersectingAxes; - this.OffsetDistances = OffsetDistances; - this.type = 891718957; + IFC2X32.IfcBuildingElement = IfcBuildingElement; + class IfcBuildingElementComponent extends IfcBuildingElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 52481810; } } - IFC2X32.IfcVirtualGridIntersection = IfcVirtualGridIntersection; - class IfcWaterProperties extends IfcMaterialProperties { - constructor(expressID, Material, IsPotable, Hardness, AlkalinityConcentration, AcidityConcentration, ImpuritiesContent, PHLevel, DissolvedSolidsContent) { - super(expressID, Material); - this.Material = Material; - this.IsPotable = IsPotable; - this.Hardness = Hardness; - this.AlkalinityConcentration = AlkalinityConcentration; - this.AcidityConcentration = AcidityConcentration; - this.ImpuritiesContent = ImpuritiesContent; - this.PHLevel = PHLevel; - this.DissolvedSolidsContent = DissolvedSolidsContent; - this.type = 1065908215; + IFC2X32.IfcBuildingElementComponent = IfcBuildingElementComponent; + class IfcBuildingElementPart extends IfcBuildingElementComponent { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 2979338954; } } - IFC2X32.IfcWaterProperties = IfcWaterProperties; - class IfcAnnotationOccurrence extends IfcStyledItem { - constructor(expressID, Item, Styles, Name) { - super(expressID, Item, Styles, Name); - this.Item = Item; - this.Styles = Styles; + IFC2X32.IfcBuildingElementPart = IfcBuildingElementPart; + class IfcBuildingElementProxy extends IfcBuildingElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, CompositionType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.type = 2442683028; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.CompositionType = CompositionType; + this.type = 1095909175; } } - IFC2X32.IfcAnnotationOccurrence = IfcAnnotationOccurrence; - class IfcAnnotationSurfaceOccurrence extends IfcAnnotationOccurrence { - constructor(expressID, Item, Styles, Name) { - super(expressID, Item, Styles, Name); - this.Item = Item; - this.Styles = Styles; + IFC2X32.IfcBuildingElementProxy = IfcBuildingElementProxy; + class IfcBuildingElementProxyType extends IfcBuildingElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.type = 962685235; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1909888760; } } - IFC2X32.IfcAnnotationSurfaceOccurrence = IfcAnnotationSurfaceOccurrence; - class IfcAnnotationSymbolOccurrence extends IfcAnnotationOccurrence { - constructor(expressID, Item, Styles, Name) { - super(expressID, Item, Styles, Name); - this.Item = Item; - this.Styles = Styles; + IFC2X32.IfcBuildingElementProxyType = IfcBuildingElementProxyType; + class IfcCableCarrierFittingType extends IfcFlowFittingType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.type = 3612888222; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 395041908; } } - IFC2X32.IfcAnnotationSymbolOccurrence = IfcAnnotationSymbolOccurrence; - class IfcAnnotationTextOccurrence extends IfcAnnotationOccurrence { - constructor(expressID, Item, Styles, Name) { - super(expressID, Item, Styles, Name); - this.Item = Item; - this.Styles = Styles; + IFC2X32.IfcCableCarrierFittingType = IfcCableCarrierFittingType; + class IfcCableCarrierSegmentType extends IfcFlowSegmentType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.type = 2297822566; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3293546465; } } - IFC2X32.IfcAnnotationTextOccurrence = IfcAnnotationTextOccurrence; - class IfcArbitraryClosedProfileDef extends IfcProfileDef { - constructor(expressID, ProfileType, ProfileName, OuterCurve) { - super(expressID, ProfileType, ProfileName); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.OuterCurve = OuterCurve; - this.type = 3798115385; + IFC2X32.IfcCableCarrierSegmentType = IfcCableCarrierSegmentType; + class IfcCableSegmentType extends IfcFlowSegmentType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1285652485; } } - IFC2X32.IfcArbitraryClosedProfileDef = IfcArbitraryClosedProfileDef; - class IfcArbitraryOpenProfileDef extends IfcProfileDef { - constructor(expressID, ProfileType, ProfileName, Curve) { - super(expressID, ProfileType, ProfileName); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Curve = Curve; - this.type = 1310608509; + IFC2X32.IfcCableSegmentType = IfcCableSegmentType; + class IfcChillerType extends IfcEnergyConversionDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2951183804; } } - IFC2X32.IfcArbitraryOpenProfileDef = IfcArbitraryOpenProfileDef; - class IfcArbitraryProfileDefWithVoids extends IfcArbitraryClosedProfileDef { - constructor(expressID, ProfileType, ProfileName, OuterCurve, InnerCurves) { - super(expressID, ProfileType, ProfileName, OuterCurve); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.OuterCurve = OuterCurve; - this.InnerCurves = InnerCurves; - this.type = 2705031697; + IFC2X32.IfcChillerType = IfcChillerType; + class IfcCircle extends IfcConic { + constructor(Position, Radius) { + super(Position); + this.Position = Position; + this.Radius = Radius; + this.type = 2611217952; } } - IFC2X32.IfcArbitraryProfileDefWithVoids = IfcArbitraryProfileDefWithVoids; - class IfcBlobTexture extends IfcSurfaceTexture { - constructor(expressID, RepeatS, RepeatT, TextureType, TextureTransform, RasterFormat, RasterCode) { - super(expressID, RepeatS, RepeatT, TextureType, TextureTransform); - this.RepeatS = RepeatS; - this.RepeatT = RepeatT; - this.TextureType = TextureType; - this.TextureTransform = TextureTransform; - this.RasterFormat = RasterFormat; - this.RasterCode = RasterCode; - this.type = 616511568; + IFC2X32.IfcCircle = IfcCircle; + class IfcCoilType extends IfcEnergyConversionDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2301859152; } } - IFC2X32.IfcBlobTexture = IfcBlobTexture; - class IfcCenterLineProfileDef extends IfcArbitraryOpenProfileDef { - constructor(expressID, ProfileType, ProfileName, Curve, Thickness) { - super(expressID, ProfileType, ProfileName, Curve); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Curve = Curve; - this.Thickness = Thickness; - this.type = 3150382593; + IFC2X32.IfcCoilType = IfcCoilType; + class IfcColumn extends IfcBuildingElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 843113511; } } - IFC2X32.IfcCenterLineProfileDef = IfcCenterLineProfileDef; - class IfcClassificationReference extends IfcExternalReference { - constructor(expressID, Location, ItemReference, Name, ReferencedSource) { - super(expressID, Location, ItemReference, Name); - this.Location = Location; - this.ItemReference = ItemReference; + IFC2X32.IfcColumn = IfcColumn; + class IfcCompressorType extends IfcFlowMovingDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.ReferencedSource = ReferencedSource; - this.type = 647927063; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3850581409; } } - IFC2X32.IfcClassificationReference = IfcClassificationReference; - class IfcColourRgb extends IfcColourSpecification { - constructor(expressID, Name, Red, Green, Blue) { - super(expressID, Name); + IFC2X32.IfcCompressorType = IfcCompressorType; + class IfcCondenserType extends IfcEnergyConversionDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.Red = Red; - this.Green = Green; - this.Blue = Blue; - this.type = 776857604; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2816379211; } } - IFC2X32.IfcColourRgb = IfcColourRgb; - class IfcComplexProperty extends IfcProperty { - constructor(expressID, Name, Description, UsageName, HasProperties) { - super(expressID, Name, Description); + IFC2X32.IfcCondenserType = IfcCondenserType; + class IfcCondition extends IfcGroup { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.UsageName = UsageName; - this.HasProperties = HasProperties; - this.type = 2542286263; + this.ObjectType = ObjectType; + this.type = 2188551683; } } - IFC2X32.IfcComplexProperty = IfcComplexProperty; - class IfcCompositeProfileDef extends IfcProfileDef { - constructor(expressID, ProfileType, ProfileName, Profiles, Label) { - super(expressID, ProfileType, ProfileName); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Profiles = Profiles; - this.Label = Label; - this.type = 1485152156; + IFC2X32.IfcCondition = IfcCondition; + class IfcConditionCriterion extends IfcControl { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Criterion, CriterionDateTime) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Criterion = Criterion; + this.CriterionDateTime = CriterionDateTime; + this.type = 1163958913; } } - IFC2X32.IfcCompositeProfileDef = IfcCompositeProfileDef; - class IfcConnectedFaceSet extends IfcTopologicalRepresentationItem { - constructor(expressID, CfsFaces) { - super(expressID); - this.CfsFaces = CfsFaces; - this.type = 370225590; + IFC2X32.IfcConditionCriterion = IfcConditionCriterion; + class IfcConstructionEquipmentResource extends IfcConstructionResource { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ResourceIdentifier = ResourceIdentifier; + this.ResourceGroup = ResourceGroup; + this.ResourceConsumption = ResourceConsumption; + this.BaseQuantity = BaseQuantity; + this.type = 3898045240; } } - IFC2X32.IfcConnectedFaceSet = IfcConnectedFaceSet; - class IfcConnectionCurveGeometry extends IfcConnectionGeometry { - constructor(expressID, CurveOnRelatingElement, CurveOnRelatedElement) { - super(expressID); - this.CurveOnRelatingElement = CurveOnRelatingElement; - this.CurveOnRelatedElement = CurveOnRelatedElement; - this.type = 1981873012; + IFC2X32.IfcConstructionEquipmentResource = IfcConstructionEquipmentResource; + class IfcConstructionMaterialResource extends IfcConstructionResource { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity, Suppliers, UsageRatio) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ResourceIdentifier = ResourceIdentifier; + this.ResourceGroup = ResourceGroup; + this.ResourceConsumption = ResourceConsumption; + this.BaseQuantity = BaseQuantity; + this.Suppliers = Suppliers; + this.UsageRatio = UsageRatio; + this.type = 1060000209; } } - IFC2X32.IfcConnectionCurveGeometry = IfcConnectionCurveGeometry; - class IfcConnectionPointEccentricity extends IfcConnectionPointGeometry { - constructor(expressID, PointOnRelatingElement, PointOnRelatedElement, EccentricityInX, EccentricityInY, EccentricityInZ) { - super(expressID, PointOnRelatingElement, PointOnRelatedElement); - this.PointOnRelatingElement = PointOnRelatingElement; - this.PointOnRelatedElement = PointOnRelatedElement; - this.EccentricityInX = EccentricityInX; - this.EccentricityInY = EccentricityInY; - this.EccentricityInZ = EccentricityInZ; - this.type = 45288368; + IFC2X32.IfcConstructionMaterialResource = IfcConstructionMaterialResource; + class IfcConstructionProductResource extends IfcConstructionResource { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ResourceIdentifier = ResourceIdentifier; + this.ResourceGroup = ResourceGroup; + this.ResourceConsumption = ResourceConsumption; + this.BaseQuantity = BaseQuantity; + this.type = 488727124; } } - IFC2X32.IfcConnectionPointEccentricity = IfcConnectionPointEccentricity; - class IfcContextDependentUnit extends IfcNamedUnit { - constructor(expressID, Dimensions, UnitType, Name) { - super(expressID, Dimensions, UnitType); - this.Dimensions = Dimensions; - this.UnitType = UnitType; + IFC2X32.IfcConstructionProductResource = IfcConstructionProductResource; + class IfcCooledBeamType extends IfcEnergyConversionDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.type = 3050246964; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 335055490; } } - IFC2X32.IfcContextDependentUnit = IfcContextDependentUnit; - class IfcConversionBasedUnit extends IfcNamedUnit { - constructor(expressID, Dimensions, UnitType, Name, ConversionFactor) { - super(expressID, Dimensions, UnitType); - this.Dimensions = Dimensions; - this.UnitType = UnitType; + IFC2X32.IfcCooledBeamType = IfcCooledBeamType; + class IfcCoolingTowerType extends IfcEnergyConversionDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.ConversionFactor = ConversionFactor; - this.type = 2889183280; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2954562838; } } - IFC2X32.IfcConversionBasedUnit = IfcConversionBasedUnit; - class IfcCurveStyle extends IfcPresentationStyle { - constructor(expressID, Name, CurveFont, CurveWidth, CurveColour) { - super(expressID, Name); + IFC2X32.IfcCoolingTowerType = IfcCoolingTowerType; + class IfcCovering extends IfcBuildingElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.CurveFont = CurveFont; - this.CurveWidth = CurveWidth; - this.CurveColour = CurveColour; - this.type = 3800577675; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1973544240; } } - IFC2X32.IfcCurveStyle = IfcCurveStyle; - class IfcDerivedProfileDef extends IfcProfileDef { - constructor(expressID, ProfileType, ProfileName, ParentProfile, Operator, Label) { - super(expressID, ProfileType, ProfileName); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.ParentProfile = ParentProfile; - this.Operator = Operator; - this.Label = Label; - this.type = 3632507154; + IFC2X32.IfcCovering = IfcCovering; + class IfcCurtainWall extends IfcBuildingElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 3495092785; } } - IFC2X32.IfcDerivedProfileDef = IfcDerivedProfileDef; - class IfcDimensionCalloutRelationship extends IfcDraughtingCalloutRelationship { - constructor(expressID, Name, Description, RelatingDraughtingCallout, RelatedDraughtingCallout) { - super(expressID, Name, Description, RelatingDraughtingCallout, RelatedDraughtingCallout); + IFC2X32.IfcCurtainWall = IfcCurtainWall; + class IfcDamperType extends IfcFlowControllerType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.RelatingDraughtingCallout = RelatingDraughtingCallout; - this.RelatedDraughtingCallout = RelatedDraughtingCallout; - this.type = 2273265877; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3961806047; + } + } + IFC2X32.IfcDamperType = IfcDamperType; + class IfcDiameterDimension extends IfcDimensionCurveDirectedCallout { + constructor(Contents) { + super(Contents); + this.Contents = Contents; + this.type = 4147604152; } } - IFC2X32.IfcDimensionCalloutRelationship = IfcDimensionCalloutRelationship; - class IfcDimensionPair extends IfcDraughtingCalloutRelationship { - constructor(expressID, Name, Description, RelatingDraughtingCallout, RelatedDraughtingCallout) { - super(expressID, Name, Description, RelatingDraughtingCallout, RelatedDraughtingCallout); + IFC2X32.IfcDiameterDimension = IfcDiameterDimension; + class IfcDiscreteAccessory extends IfcElementComponent { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.RelatingDraughtingCallout = RelatingDraughtingCallout; - this.RelatedDraughtingCallout = RelatedDraughtingCallout; - this.type = 1694125774; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 1335981549; } } - IFC2X32.IfcDimensionPair = IfcDimensionPair; - class IfcDocumentReference extends IfcExternalReference { - constructor(expressID, Location, ItemReference, Name) { - super(expressID, Location, ItemReference, Name); - this.Location = Location; - this.ItemReference = ItemReference; + IFC2X32.IfcDiscreteAccessory = IfcDiscreteAccessory; + class IfcDiscreteAccessoryType extends IfcElementComponentType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.type = 3732053477; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 2635815018; } } - IFC2X32.IfcDocumentReference = IfcDocumentReference; - class IfcDraughtingPreDefinedTextFont extends IfcPreDefinedTextFont { - constructor(expressID, Name) { - super(expressID, Name); + IFC2X32.IfcDiscreteAccessoryType = IfcDiscreteAccessoryType; + class IfcDistributionChamberElementType extends IfcDistributionFlowElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.type = 4170525392; - } - } - IFC2X32.IfcDraughtingPreDefinedTextFont = IfcDraughtingPreDefinedTextFont; - class IfcEdge extends IfcTopologicalRepresentationItem { - constructor(expressID, EdgeStart, EdgeEnd) { - super(expressID); - this.EdgeStart = EdgeStart; - this.EdgeEnd = EdgeEnd; - this.type = 3900360178; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1599208980; } } - IFC2X32.IfcEdge = IfcEdge; - class IfcEdgeCurve extends IfcEdge { - constructor(expressID, EdgeStart, EdgeEnd, EdgeGeometry, SameSense) { - super(expressID, EdgeStart, EdgeEnd); - this.EdgeStart = EdgeStart; - this.EdgeEnd = EdgeEnd; - this.EdgeGeometry = EdgeGeometry; - this.SameSense = SameSense; - this.type = 476780140; + IFC2X32.IfcDistributionChamberElementType = IfcDistributionChamberElementType; + class IfcDistributionControlElementType extends IfcDistributionElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 2063403501; } } - IFC2X32.IfcEdgeCurve = IfcEdgeCurve; - class IfcExtendedMaterialProperties extends IfcMaterialProperties { - constructor(expressID, Material, ExtendedProperties, Description, Name) { - super(expressID, Material); - this.Material = Material; - this.ExtendedProperties = ExtendedProperties; - this.Description = Description; + IFC2X32.IfcDistributionControlElementType = IfcDistributionControlElementType; + class IfcDistributionElement extends IfcElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.type = 1860660968; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 1945004755; } } - IFC2X32.IfcExtendedMaterialProperties = IfcExtendedMaterialProperties; - class IfcFace extends IfcTopologicalRepresentationItem { - constructor(expressID, Bounds) { - super(expressID); - this.Bounds = Bounds; - this.type = 2556980723; + IFC2X32.IfcDistributionElement = IfcDistributionElement; + class IfcDistributionFlowElement extends IfcDistributionElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 3040386961; } } - IFC2X32.IfcFace = IfcFace; - class IfcFaceBound extends IfcTopologicalRepresentationItem { - constructor(expressID, Bound, Orientation) { - super(expressID); - this.Bound = Bound; - this.Orientation = Orientation; - this.type = 1809719519; + IFC2X32.IfcDistributionFlowElement = IfcDistributionFlowElement; + class IfcDistributionPort extends IfcPort { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, FlowDirection) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.FlowDirection = FlowDirection; + this.type = 3041715199; } } - IFC2X32.IfcFaceBound = IfcFaceBound; - class IfcFaceOuterBound extends IfcFaceBound { - constructor(expressID, Bound, Orientation) { - super(expressID, Bound, Orientation); - this.Bound = Bound; - this.Orientation = Orientation; - this.type = 803316827; + IFC2X32.IfcDistributionPort = IfcDistributionPort; + class IfcDoor extends IfcBuildingElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.OverallHeight = OverallHeight; + this.OverallWidth = OverallWidth; + this.type = 395920057; } } - IFC2X32.IfcFaceOuterBound = IfcFaceOuterBound; - class IfcFaceSurface extends IfcFace { - constructor(expressID, Bounds, FaceSurface, SameSense) { - super(expressID, Bounds); - this.Bounds = Bounds; - this.FaceSurface = FaceSurface; - this.SameSense = SameSense; - this.type = 3008276851; + IFC2X32.IfcDoor = IfcDoor; + class IfcDuctFittingType extends IfcFlowFittingType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 869906466; } } - IFC2X32.IfcFaceSurface = IfcFaceSurface; - class IfcFailureConnectionCondition extends IfcStructuralConnectionCondition { - constructor(expressID, Name, TensionFailureX, TensionFailureY, TensionFailureZ, CompressionFailureX, CompressionFailureY, CompressionFailureZ) { - super(expressID, Name); + IFC2X32.IfcDuctFittingType = IfcDuctFittingType; + class IfcDuctSegmentType extends IfcFlowSegmentType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.TensionFailureX = TensionFailureX; - this.TensionFailureY = TensionFailureY; - this.TensionFailureZ = TensionFailureZ; - this.CompressionFailureX = CompressionFailureX; - this.CompressionFailureY = CompressionFailureY; - this.CompressionFailureZ = CompressionFailureZ; - this.type = 4219587988; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3760055223; } } - IFC2X32.IfcFailureConnectionCondition = IfcFailureConnectionCondition; - class IfcFillAreaStyle extends IfcPresentationStyle { - constructor(expressID, Name, FillStyles) { - super(expressID, Name); + IFC2X32.IfcDuctSegmentType = IfcDuctSegmentType; + class IfcDuctSilencerType extends IfcFlowTreatmentDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.FillStyles = FillStyles; - this.type = 738692330; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2030761528; } } - IFC2X32.IfcFillAreaStyle = IfcFillAreaStyle; - class IfcFuelProperties extends IfcMaterialProperties { - constructor(expressID, Material, CombustionTemperature, CarbonContent, LowerHeatingValue, HigherHeatingValue) { - super(expressID, Material); - this.Material = Material; - this.CombustionTemperature = CombustionTemperature; - this.CarbonContent = CarbonContent; - this.LowerHeatingValue = LowerHeatingValue; - this.HigherHeatingValue = HigherHeatingValue; - this.type = 3857492461; + IFC2X32.IfcDuctSilencerType = IfcDuctSilencerType; + class IfcEdgeFeature extends IfcFeatureElementSubtraction { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, FeatureLength) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.FeatureLength = FeatureLength; + this.type = 855621170; } } - IFC2X32.IfcFuelProperties = IfcFuelProperties; - class IfcGeneralMaterialProperties extends IfcMaterialProperties { - constructor(expressID, Material, MolecularWeight, Porosity, MassDensity) { - super(expressID, Material); - this.Material = Material; - this.MolecularWeight = MolecularWeight; - this.Porosity = Porosity; - this.MassDensity = MassDensity; - this.type = 803998398; + IFC2X32.IfcEdgeFeature = IfcEdgeFeature; + class IfcElectricApplianceType extends IfcFlowTerminalType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 663422040; } } - IFC2X32.IfcGeneralMaterialProperties = IfcGeneralMaterialProperties; - class IfcGeneralProfileProperties extends IfcProfileProperties { - constructor(expressID, ProfileName, ProfileDefinition, PhysicalWeight, Perimeter, MinimumPlateThickness, MaximumPlateThickness, CrossSectionArea) { - super(expressID, ProfileName, ProfileDefinition); - this.ProfileName = ProfileName; - this.ProfileDefinition = ProfileDefinition; - this.PhysicalWeight = PhysicalWeight; - this.Perimeter = Perimeter; - this.MinimumPlateThickness = MinimumPlateThickness; - this.MaximumPlateThickness = MaximumPlateThickness; - this.CrossSectionArea = CrossSectionArea; - this.type = 1446786286; + IFC2X32.IfcElectricApplianceType = IfcElectricApplianceType; + class IfcElectricFlowStorageDeviceType extends IfcFlowStorageDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3277789161; } } - IFC2X32.IfcGeneralProfileProperties = IfcGeneralProfileProperties; - class IfcGeometricRepresentationContext extends IfcRepresentationContext { - constructor(expressID, ContextIdentifier, ContextType, CoordinateSpaceDimension, Precision, WorldCoordinateSystem, TrueNorth) { - super(expressID, ContextIdentifier, ContextType); - this.ContextIdentifier = ContextIdentifier; - this.ContextType = ContextType; - this.CoordinateSpaceDimension = CoordinateSpaceDimension; - this.Precision = Precision; - this.WorldCoordinateSystem = WorldCoordinateSystem; - this.TrueNorth = TrueNorth; - this.type = 3448662350; + IFC2X32.IfcElectricFlowStorageDeviceType = IfcElectricFlowStorageDeviceType; + class IfcElectricGeneratorType extends IfcEnergyConversionDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1534661035; } } - IFC2X32.IfcGeometricRepresentationContext = IfcGeometricRepresentationContext; - class IfcGeometricRepresentationItem extends IfcRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 2453401579; + IFC2X32.IfcElectricGeneratorType = IfcElectricGeneratorType; + class IfcElectricHeaterType extends IfcFlowTerminalType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1365060375; } } - IFC2X32.IfcGeometricRepresentationItem = IfcGeometricRepresentationItem; - class IfcGeometricRepresentationSubContext extends IfcGeometricRepresentationContext { - constructor(expressID, ContextIdentifier, ContextType, ParentContext, TargetScale, TargetView, UserDefinedTargetView) { - super(expressID, ContextIdentifier, ContextType, new IfcDimensionCount(0), null, new Handle$4(0), null); - this.ContextIdentifier = ContextIdentifier; - this.ContextType = ContextType; - this.ParentContext = ParentContext; - this.TargetScale = TargetScale; - this.TargetView = TargetView; - this.UserDefinedTargetView = UserDefinedTargetView; - this.type = 4142052618; + IFC2X32.IfcElectricHeaterType = IfcElectricHeaterType; + class IfcElectricMotorType extends IfcEnergyConversionDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1217240411; } } - IFC2X32.IfcGeometricRepresentationSubContext = IfcGeometricRepresentationSubContext; - class IfcGeometricSet extends IfcGeometricRepresentationItem { - constructor(expressID, Elements) { - super(expressID); - this.Elements = Elements; - this.type = 3590301190; + IFC2X32.IfcElectricMotorType = IfcElectricMotorType; + class IfcElectricTimeControlType extends IfcFlowControllerType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 712377611; } } - IFC2X32.IfcGeometricSet = IfcGeometricSet; - class IfcGridPlacement extends IfcObjectPlacement { - constructor(expressID, PlacementLocation, PlacementRefDirection) { - super(expressID); - this.PlacementLocation = PlacementLocation; - this.PlacementRefDirection = PlacementRefDirection; - this.type = 178086475; + IFC2X32.IfcElectricTimeControlType = IfcElectricTimeControlType; + class IfcElectricalCircuit extends IfcSystem { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.type = 1634875225; } } - IFC2X32.IfcGridPlacement = IfcGridPlacement; - class IfcHalfSpaceSolid extends IfcGeometricRepresentationItem { - constructor(expressID, BaseSurface, AgreementFlag) { - super(expressID); - this.BaseSurface = BaseSurface; - this.AgreementFlag = AgreementFlag; - this.type = 812098782; + IFC2X32.IfcElectricalCircuit = IfcElectricalCircuit; + class IfcElectricalElement extends IfcElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 857184966; } } - IFC2X32.IfcHalfSpaceSolid = IfcHalfSpaceSolid; - class IfcHygroscopicMaterialProperties extends IfcMaterialProperties { - constructor(expressID, Material, UpperVaporResistanceFactor, LowerVaporResistanceFactor, IsothermalMoistureCapacity, VaporPermeability, MoistureDiffusivity) { - super(expressID, Material); - this.Material = Material; - this.UpperVaporResistanceFactor = UpperVaporResistanceFactor; - this.LowerVaporResistanceFactor = LowerVaporResistanceFactor; - this.IsothermalMoistureCapacity = IsothermalMoistureCapacity; - this.VaporPermeability = VaporPermeability; - this.MoistureDiffusivity = MoistureDiffusivity; - this.type = 2445078500; + IFC2X32.IfcElectricalElement = IfcElectricalElement; + class IfcEnergyConversionDevice extends IfcDistributionFlowElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 1658829314; } } - IFC2X32.IfcHygroscopicMaterialProperties = IfcHygroscopicMaterialProperties; - class IfcImageTexture extends IfcSurfaceTexture { - constructor(expressID, RepeatS, RepeatT, TextureType, TextureTransform, UrlReference) { - super(expressID, RepeatS, RepeatT, TextureType, TextureTransform); - this.RepeatS = RepeatS; - this.RepeatT = RepeatT; - this.TextureType = TextureType; - this.TextureTransform = TextureTransform; - this.UrlReference = UrlReference; - this.type = 3905492369; + IFC2X32.IfcEnergyConversionDevice = IfcEnergyConversionDevice; + class IfcFanType extends IfcFlowMovingDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 346874300; } } - IFC2X32.IfcImageTexture = IfcImageTexture; - class IfcIrregularTimeSeries extends IfcTimeSeries { - constructor(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit, Values) { - super(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit); + IFC2X32.IfcFanType = IfcFanType; + class IfcFilterType extends IfcFlowTreatmentDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.StartTime = StartTime; - this.EndTime = EndTime; - this.TimeSeriesDataType = TimeSeriesDataType; - this.DataOrigin = DataOrigin; - this.UserDefinedDataOrigin = UserDefinedDataOrigin; - this.Unit = Unit; - this.Values = Values; - this.type = 3741457305; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1810631287; } } - IFC2X32.IfcIrregularTimeSeries = IfcIrregularTimeSeries; - class IfcLightSource extends IfcGeometricRepresentationItem { - constructor(expressID, Name, LightColour, AmbientIntensity, Intensity) { - super(expressID); + IFC2X32.IfcFilterType = IfcFilterType; + class IfcFireSuppressionTerminalType extends IfcFlowTerminalType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.LightColour = LightColour; - this.AmbientIntensity = AmbientIntensity; - this.Intensity = Intensity; - this.type = 1402838566; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 4222183408; } } - IFC2X32.IfcLightSource = IfcLightSource; - class IfcLightSourceAmbient extends IfcLightSource { - constructor(expressID, Name, LightColour, AmbientIntensity, Intensity) { - super(expressID, Name, LightColour, AmbientIntensity, Intensity); + IFC2X32.IfcFireSuppressionTerminalType = IfcFireSuppressionTerminalType; + class IfcFlowController extends IfcDistributionFlowElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.LightColour = LightColour; - this.AmbientIntensity = AmbientIntensity; - this.Intensity = Intensity; - this.type = 125510826; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 2058353004; } } - IFC2X32.IfcLightSourceAmbient = IfcLightSourceAmbient; - class IfcLightSourceDirectional extends IfcLightSource { - constructor(expressID, Name, LightColour, AmbientIntensity, Intensity, Orientation) { - super(expressID, Name, LightColour, AmbientIntensity, Intensity); + IFC2X32.IfcFlowController = IfcFlowController; + class IfcFlowFitting extends IfcDistributionFlowElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.LightColour = LightColour; - this.AmbientIntensity = AmbientIntensity; - this.Intensity = Intensity; - this.Orientation = Orientation; - this.type = 2604431987; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 4278956645; } } - IFC2X32.IfcLightSourceDirectional = IfcLightSourceDirectional; - class IfcLightSourceGoniometric extends IfcLightSource { - constructor(expressID, Name, LightColour, AmbientIntensity, Intensity, Position, ColourAppearance, ColourTemperature, LuminousFlux, LightEmissionSource, LightDistributionDataSource) { - super(expressID, Name, LightColour, AmbientIntensity, Intensity); + IFC2X32.IfcFlowFitting = IfcFlowFitting; + class IfcFlowInstrumentType extends IfcDistributionControlElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.LightColour = LightColour; - this.AmbientIntensity = AmbientIntensity; - this.Intensity = Intensity; - this.Position = Position; - this.ColourAppearance = ColourAppearance; - this.ColourTemperature = ColourTemperature; - this.LuminousFlux = LuminousFlux; - this.LightEmissionSource = LightEmissionSource; - this.LightDistributionDataSource = LightDistributionDataSource; - this.type = 4266656042; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 4037862832; } } - IFC2X32.IfcLightSourceGoniometric = IfcLightSourceGoniometric; - class IfcLightSourcePositional extends IfcLightSource { - constructor(expressID, Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation) { - super(expressID, Name, LightColour, AmbientIntensity, Intensity); + IFC2X32.IfcFlowInstrumentType = IfcFlowInstrumentType; + class IfcFlowMovingDevice extends IfcDistributionFlowElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.LightColour = LightColour; - this.AmbientIntensity = AmbientIntensity; - this.Intensity = Intensity; - this.Position = Position; - this.Radius = Radius; - this.ConstantAttenuation = ConstantAttenuation; - this.DistanceAttenuation = DistanceAttenuation; - this.QuadricAttenuation = QuadricAttenuation; - this.type = 1520743889; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 3132237377; } } - IFC2X32.IfcLightSourcePositional = IfcLightSourcePositional; - class IfcLightSourceSpot extends IfcLightSourcePositional { - constructor(expressID, Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation, Orientation, ConcentrationExponent, SpreadAngle, BeamWidthAngle) { - super(expressID, Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation); + IFC2X32.IfcFlowMovingDevice = IfcFlowMovingDevice; + class IfcFlowSegment extends IfcDistributionFlowElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.LightColour = LightColour; - this.AmbientIntensity = AmbientIntensity; - this.Intensity = Intensity; - this.Position = Position; - this.Radius = Radius; - this.ConstantAttenuation = ConstantAttenuation; - this.DistanceAttenuation = DistanceAttenuation; - this.QuadricAttenuation = QuadricAttenuation; - this.Orientation = Orientation; - this.ConcentrationExponent = ConcentrationExponent; - this.SpreadAngle = SpreadAngle; - this.BeamWidthAngle = BeamWidthAngle; - this.type = 3422422726; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 987401354; } } - IFC2X32.IfcLightSourceSpot = IfcLightSourceSpot; - class IfcLocalPlacement extends IfcObjectPlacement { - constructor(expressID, PlacementRelTo, RelativePlacement) { - super(expressID); - this.PlacementRelTo = PlacementRelTo; - this.RelativePlacement = RelativePlacement; - this.type = 2624227202; + IFC2X32.IfcFlowSegment = IfcFlowSegment; + class IfcFlowStorageDevice extends IfcDistributionFlowElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 707683696; } } - IFC2X32.IfcLocalPlacement = IfcLocalPlacement; - class IfcLoop extends IfcTopologicalRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 1008929658; + IFC2X32.IfcFlowStorageDevice = IfcFlowStorageDevice; + class IfcFlowTerminal extends IfcDistributionFlowElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 2223149337; } } - IFC2X32.IfcLoop = IfcLoop; - class IfcMappedItem extends IfcRepresentationItem { - constructor(expressID, MappingSource, MappingTarget) { - super(expressID); - this.MappingSource = MappingSource; - this.MappingTarget = MappingTarget; - this.type = 2347385850; + IFC2X32.IfcFlowTerminal = IfcFlowTerminal; + class IfcFlowTreatmentDevice extends IfcDistributionFlowElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 3508470533; } } - IFC2X32.IfcMappedItem = IfcMappedItem; - class IfcMaterialDefinitionRepresentation extends IfcProductRepresentation { - constructor(expressID, Name, Description, Representations, RepresentedMaterial) { - super(expressID, Name, Description, Representations); + IFC2X32.IfcFlowTreatmentDevice = IfcFlowTreatmentDevice; + class IfcFooting extends IfcBuildingElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.Representations = Representations; - this.RepresentedMaterial = RepresentedMaterial; - this.type = 2022407955; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 900683007; } } - IFC2X32.IfcMaterialDefinitionRepresentation = IfcMaterialDefinitionRepresentation; - class IfcMechanicalConcreteMaterialProperties extends IfcMechanicalMaterialProperties { - constructor(expressID, Material, DynamicViscosity, YoungModulus, ShearModulus, PoissonRatio, ThermalExpansionCoefficient, CompressiveStrength, MaxAggregateSize, AdmixturesDescription, Workability, ProtectivePoreRatio, WaterImpermeability) { - super(expressID, Material, DynamicViscosity, YoungModulus, ShearModulus, PoissonRatio, ThermalExpansionCoefficient); - this.Material = Material; - this.DynamicViscosity = DynamicViscosity; - this.YoungModulus = YoungModulus; - this.ShearModulus = ShearModulus; - this.PoissonRatio = PoissonRatio; - this.ThermalExpansionCoefficient = ThermalExpansionCoefficient; - this.CompressiveStrength = CompressiveStrength; - this.MaxAggregateSize = MaxAggregateSize; - this.AdmixturesDescription = AdmixturesDescription; - this.Workability = Workability; - this.ProtectivePoreRatio = ProtectivePoreRatio; - this.WaterImpermeability = WaterImpermeability; - this.type = 1430189142; + IFC2X32.IfcFooting = IfcFooting; + class IfcMember extends IfcBuildingElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 1073191201; } } - IFC2X32.IfcMechanicalConcreteMaterialProperties = IfcMechanicalConcreteMaterialProperties; - class IfcObjectDefinition extends IfcRoot { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); + IFC2X32.IfcMember = IfcMember; + class IfcPile extends IfcBuildingElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType, ConstructionType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.type = 219451334; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.ConstructionType = ConstructionType; + this.type = 1687234759; } } - IFC2X32.IfcObjectDefinition = IfcObjectDefinition; - class IfcOneDirectionRepeatFactor extends IfcGeometricRepresentationItem { - constructor(expressID, RepeatFactor) { - super(expressID); - this.RepeatFactor = RepeatFactor; - this.type = 2833995503; + IFC2X32.IfcPile = IfcPile; + class IfcPlate extends IfcBuildingElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 3171933400; } } - IFC2X32.IfcOneDirectionRepeatFactor = IfcOneDirectionRepeatFactor; - class IfcOpenShell extends IfcConnectedFaceSet { - constructor(expressID, CfsFaces) { - super(expressID, CfsFaces); - this.CfsFaces = CfsFaces; - this.type = 2665983363; + IFC2X32.IfcPlate = IfcPlate; + class IfcRailing extends IfcBuildingElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 2262370178; } } - IFC2X32.IfcOpenShell = IfcOpenShell; - class IfcOrientedEdge extends IfcEdge { - constructor(expressID, EdgeElement, Orientation) { - super(expressID, new Handle$4(0), new Handle$4(0)); - this.EdgeElement = EdgeElement; - this.Orientation = Orientation; - this.type = 1029017970; + IFC2X32.IfcRailing = IfcRailing; + class IfcRamp extends IfcBuildingElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, ShapeType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.ShapeType = ShapeType; + this.type = 3024970846; } } - IFC2X32.IfcOrientedEdge = IfcOrientedEdge; - class IfcParameterizedProfileDef extends IfcProfileDef { - constructor(expressID, ProfileType, ProfileName, Position) { - super(expressID, ProfileType, ProfileName); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.type = 2529465313; + IFC2X32.IfcRamp = IfcRamp; + class IfcRampFlight extends IfcBuildingElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 3283111854; } } - IFC2X32.IfcParameterizedProfileDef = IfcParameterizedProfileDef; - class IfcPath extends IfcTopologicalRepresentationItem { - constructor(expressID, EdgeList) { - super(expressID); - this.EdgeList = EdgeList; - this.type = 2519244187; + IFC2X32.IfcRampFlight = IfcRampFlight; + class IfcRationalBezierCurve extends IfcBezierCurve { + constructor(Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect, WeightsData) { + super(Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect); + this.Degree = Degree; + this.ControlPointsList = ControlPointsList; + this.CurveForm = CurveForm; + this.ClosedCurve = ClosedCurve; + this.SelfIntersect = SelfIntersect; + this.WeightsData = WeightsData; + this.type = 3055160366; } } - IFC2X32.IfcPath = IfcPath; - class IfcPhysicalComplexQuantity extends IfcPhysicalQuantity { - constructor(expressID, Name, Description, HasQuantities, Discrimination, Quality, Usage) { - super(expressID, Name, Description); + IFC2X32.IfcRationalBezierCurve = IfcRationalBezierCurve; + class IfcReinforcingElement extends IfcBuildingElementComponent { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.HasQuantities = HasQuantities; - this.Discrimination = Discrimination; - this.Quality = Quality; - this.Usage = Usage; - this.type = 3021840470; - } - } - IFC2X32.IfcPhysicalComplexQuantity = IfcPhysicalComplexQuantity; - class IfcPixelTexture extends IfcSurfaceTexture { - constructor(expressID, RepeatS, RepeatT, TextureType, TextureTransform, Width, Height, ColourComponents, Pixel) { - super(expressID, RepeatS, RepeatT, TextureType, TextureTransform); - this.RepeatS = RepeatS; - this.RepeatT = RepeatT; - this.TextureType = TextureType; - this.TextureTransform = TextureTransform; - this.Width = Width; - this.Height = Height; - this.ColourComponents = ColourComponents; - this.Pixel = Pixel; - this.type = 597895409; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.SteelGrade = SteelGrade; + this.type = 3027567501; } } - IFC2X32.IfcPixelTexture = IfcPixelTexture; - class IfcPlacement extends IfcGeometricRepresentationItem { - constructor(expressID, Location) { - super(expressID); - this.Location = Location; - this.type = 2004835150; + IFC2X32.IfcReinforcingElement = IfcReinforcingElement; + class IfcReinforcingMesh extends IfcReinforcingElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, MeshLength, MeshWidth, LongitudinalBarNominalDiameter, TransverseBarNominalDiameter, LongitudinalBarCrossSectionArea, TransverseBarCrossSectionArea, LongitudinalBarSpacing, TransverseBarSpacing) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.SteelGrade = SteelGrade; + this.MeshLength = MeshLength; + this.MeshWidth = MeshWidth; + this.LongitudinalBarNominalDiameter = LongitudinalBarNominalDiameter; + this.TransverseBarNominalDiameter = TransverseBarNominalDiameter; + this.LongitudinalBarCrossSectionArea = LongitudinalBarCrossSectionArea; + this.TransverseBarCrossSectionArea = TransverseBarCrossSectionArea; + this.LongitudinalBarSpacing = LongitudinalBarSpacing; + this.TransverseBarSpacing = TransverseBarSpacing; + this.type = 2320036040; } } - IFC2X32.IfcPlacement = IfcPlacement; - class IfcPlanarExtent extends IfcGeometricRepresentationItem { - constructor(expressID, SizeInX, SizeInY) { - super(expressID); - this.SizeInX = SizeInX; - this.SizeInY = SizeInY; - this.type = 1663979128; + IFC2X32.IfcReinforcingMesh = IfcReinforcingMesh; + class IfcRoof extends IfcBuildingElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, ShapeType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.ShapeType = ShapeType; + this.type = 2016517767; } } - IFC2X32.IfcPlanarExtent = IfcPlanarExtent; - class IfcPoint extends IfcGeometricRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 2067069095; + IFC2X32.IfcRoof = IfcRoof; + class IfcRoundedEdgeFeature extends IfcEdgeFeature { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, FeatureLength, Radius) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, FeatureLength); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.FeatureLength = FeatureLength; + this.Radius = Radius; + this.type = 1376911519; } } - IFC2X32.IfcPoint = IfcPoint; - class IfcPointOnCurve extends IfcPoint { - constructor(expressID, BasisCurve, PointParameter) { - super(expressID); - this.BasisCurve = BasisCurve; - this.PointParameter = PointParameter; - this.type = 4022376103; + IFC2X32.IfcRoundedEdgeFeature = IfcRoundedEdgeFeature; + class IfcSensorType extends IfcDistributionControlElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1783015770; } } - IFC2X32.IfcPointOnCurve = IfcPointOnCurve; - class IfcPointOnSurface extends IfcPoint { - constructor(expressID, BasisSurface, PointParameterU, PointParameterV) { - super(expressID); - this.BasisSurface = BasisSurface; - this.PointParameterU = PointParameterU; - this.PointParameterV = PointParameterV; - this.type = 1423911732; + IFC2X32.IfcSensorType = IfcSensorType; + class IfcSlab extends IfcBuildingElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1529196076; } } - IFC2X32.IfcPointOnSurface = IfcPointOnSurface; - class IfcPolyLoop extends IfcLoop { - constructor(expressID, Polygon) { - super(expressID); - this.Polygon = Polygon; - this.type = 2924175390; + IFC2X32.IfcSlab = IfcSlab; + class IfcStair extends IfcBuildingElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, ShapeType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.ShapeType = ShapeType; + this.type = 331165859; } } - IFC2X32.IfcPolyLoop = IfcPolyLoop; - class IfcPolygonalBoundedHalfSpace extends IfcHalfSpaceSolid { - constructor(expressID, BaseSurface, AgreementFlag, Position, PolygonalBoundary) { - super(expressID, BaseSurface, AgreementFlag); - this.BaseSurface = BaseSurface; - this.AgreementFlag = AgreementFlag; - this.Position = Position; - this.PolygonalBoundary = PolygonalBoundary; - this.type = 2775532180; + IFC2X32.IfcStair = IfcStair; + class IfcStairFlight extends IfcBuildingElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, NumberOfRiser, NumberOfTreads, RiserHeight, TreadLength) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.NumberOfRiser = NumberOfRiser; + this.NumberOfTreads = NumberOfTreads; + this.RiserHeight = RiserHeight; + this.TreadLength = TreadLength; + this.type = 4252922144; } } - IFC2X32.IfcPolygonalBoundedHalfSpace = IfcPolygonalBoundedHalfSpace; - class IfcPreDefinedColour extends IfcPreDefinedItem { - constructor(expressID, Name) { - super(expressID, Name); + IFC2X32.IfcStairFlight = IfcStairFlight; + class IfcStructuralAnalysisModel extends IfcSystem { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, OrientationOf2DPlane, LoadedBy, HasResults) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.type = 759155922; + this.Description = Description; + this.ObjectType = ObjectType; + this.PredefinedType = PredefinedType; + this.OrientationOf2DPlane = OrientationOf2DPlane; + this.LoadedBy = LoadedBy; + this.HasResults = HasResults; + this.type = 2515109513; } } - IFC2X32.IfcPreDefinedColour = IfcPreDefinedColour; - class IfcPreDefinedCurveFont extends IfcPreDefinedItem { - constructor(expressID, Name) { - super(expressID, Name); + IFC2X32.IfcStructuralAnalysisModel = IfcStructuralAnalysisModel; + class IfcTendon extends IfcReinforcingElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, PredefinedType, NominalDiameter, CrossSectionArea, TensionForce, PreStress, FrictionCoefficient, AnchorageSlip, MinCurvatureRadius) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.type = 2559016684; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.SteelGrade = SteelGrade; + this.PredefinedType = PredefinedType; + this.NominalDiameter = NominalDiameter; + this.CrossSectionArea = CrossSectionArea; + this.TensionForce = TensionForce; + this.PreStress = PreStress; + this.FrictionCoefficient = FrictionCoefficient; + this.AnchorageSlip = AnchorageSlip; + this.MinCurvatureRadius = MinCurvatureRadius; + this.type = 3824725483; } } - IFC2X32.IfcPreDefinedCurveFont = IfcPreDefinedCurveFont; - class IfcPreDefinedDimensionSymbol extends IfcPreDefinedSymbol { - constructor(expressID, Name) { - super(expressID, Name); + IFC2X32.IfcTendon = IfcTendon; + class IfcTendonAnchor extends IfcReinforcingElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.type = 433424934; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.SteelGrade = SteelGrade; + this.type = 2347447852; } } - IFC2X32.IfcPreDefinedDimensionSymbol = IfcPreDefinedDimensionSymbol; - class IfcPreDefinedPointMarkerSymbol extends IfcPreDefinedSymbol { - constructor(expressID, Name) { - super(expressID, Name); + IFC2X32.IfcTendonAnchor = IfcTendonAnchor; + class IfcVibrationIsolatorType extends IfcDiscreteAccessoryType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.type = 179317114; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3313531582; } } - IFC2X32.IfcPreDefinedPointMarkerSymbol = IfcPreDefinedPointMarkerSymbol; - class IfcProductDefinitionShape extends IfcProductRepresentation { - constructor(expressID, Name, Description, Representations) { - super(expressID, Name, Description, Representations); + IFC2X32.IfcVibrationIsolatorType = IfcVibrationIsolatorType; + class IfcWall extends IfcBuildingElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.Representations = Representations; - this.type = 673634403; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 2391406946; } } - IFC2X32.IfcProductDefinitionShape = IfcProductDefinitionShape; - class IfcPropertyBoundedValue extends IfcSimpleProperty { - constructor(expressID, Name, Description, UpperBoundValue, LowerBoundValue, Unit) { - super(expressID, Name, Description); + IFC2X32.IfcWall = IfcWall; + class IfcWallStandardCase extends IfcWall { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.UpperBoundValue = UpperBoundValue; - this.LowerBoundValue = LowerBoundValue; - this.Unit = Unit; - this.type = 871118103; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 3512223829; } } - IFC2X32.IfcPropertyBoundedValue = IfcPropertyBoundedValue; - class IfcPropertyDefinition extends IfcRoot { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); + IFC2X32.IfcWallStandardCase = IfcWallStandardCase; + class IfcWindow extends IfcBuildingElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.type = 1680319473; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.OverallHeight = OverallHeight; + this.OverallWidth = OverallWidth; + this.type = 3304561284; } } - IFC2X32.IfcPropertyDefinition = IfcPropertyDefinition; - class IfcPropertyEnumeratedValue extends IfcSimpleProperty { - constructor(expressID, Name, Description, EnumerationValues, EnumerationReference) { - super(expressID, Name, Description); + IFC2X32.IfcWindow = IfcWindow; + class IfcActuatorType extends IfcDistributionControlElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.EnumerationValues = EnumerationValues; - this.EnumerationReference = EnumerationReference; - this.type = 4166981789; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2874132201; } } - IFC2X32.IfcPropertyEnumeratedValue = IfcPropertyEnumeratedValue; - class IfcPropertyListValue extends IfcSimpleProperty { - constructor(expressID, Name, Description, ListValues, Unit) { - super(expressID, Name, Description); + IFC2X32.IfcActuatorType = IfcActuatorType; + class IfcAlarmType extends IfcDistributionControlElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.ListValues = ListValues; - this.Unit = Unit; - this.type = 2752243245; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3001207471; } } - IFC2X32.IfcPropertyListValue = IfcPropertyListValue; - class IfcPropertyReferenceValue extends IfcSimpleProperty { - constructor(expressID, Name, Description, UsageName, PropertyReference) { - super(expressID, Name, Description); + IFC2X32.IfcAlarmType = IfcAlarmType; + class IfcBeam extends IfcBuildingElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.UsageName = UsageName; - this.PropertyReference = PropertyReference; - this.type = 941946838; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 753842376; } } - IFC2X32.IfcPropertyReferenceValue = IfcPropertyReferenceValue; - class IfcPropertySetDefinition extends IfcPropertyDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); + IFC2X32.IfcBeam = IfcBeam; + class IfcChamferEdgeFeature extends IfcEdgeFeature { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, FeatureLength, Width, Height) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, FeatureLength); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.type = 3357820518; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.FeatureLength = FeatureLength; + this.Width = Width; + this.Height = Height; + this.type = 2454782716; } } - IFC2X32.IfcPropertySetDefinition = IfcPropertySetDefinition; - class IfcPropertySingleValue extends IfcSimpleProperty { - constructor(expressID, Name, Description, NominalValue, Unit) { - super(expressID, Name, Description); + IFC2X32.IfcChamferEdgeFeature = IfcChamferEdgeFeature; + class IfcControllerType extends IfcDistributionControlElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.NominalValue = NominalValue; - this.Unit = Unit; - this.type = 3650150729; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 578613899; } } - IFC2X32.IfcPropertySingleValue = IfcPropertySingleValue; - class IfcPropertyTableValue extends IfcSimpleProperty { - constructor(expressID, Name, Description, DefiningValues, DefinedValues, Expression, DefiningUnit, DefinedUnit) { - super(expressID, Name, Description); + IFC2X32.IfcControllerType = IfcControllerType; + class IfcDistributionChamberElement extends IfcDistributionFlowElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.DefiningValues = DefiningValues; - this.DefinedValues = DefinedValues; - this.Expression = Expression; - this.DefiningUnit = DefiningUnit; - this.DefinedUnit = DefinedUnit; - this.type = 110355661; - } - } - IFC2X32.IfcPropertyTableValue = IfcPropertyTableValue; - class IfcRectangleProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, XDim, YDim) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.XDim = XDim; - this.YDim = YDim; - this.type = 3615266464; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 1052013943; } } - IFC2X32.IfcRectangleProfileDef = IfcRectangleProfileDef; - class IfcRegularTimeSeries extends IfcTimeSeries { - constructor(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit, TimeStep, Values) { - super(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit); + IFC2X32.IfcDistributionChamberElement = IfcDistributionChamberElement; + class IfcDistributionControlElement extends IfcDistributionElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, ControlElementId) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.StartTime = StartTime; - this.EndTime = EndTime; - this.TimeSeriesDataType = TimeSeriesDataType; - this.DataOrigin = DataOrigin; - this.UserDefinedDataOrigin = UserDefinedDataOrigin; - this.Unit = Unit; - this.TimeStep = TimeStep; - this.Values = Values; - this.type = 3413951693; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.ControlElementId = ControlElementId; + this.type = 1062813311; } } - IFC2X32.IfcRegularTimeSeries = IfcRegularTimeSeries; - class IfcReinforcementDefinitionProperties extends IfcPropertySetDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, DefinitionType, ReinforcementSectionDefinitions) { - super(expressID, GlobalId, OwnerHistory, Name, Description); + IFC2X32.IfcDistributionControlElement = IfcDistributionControlElement; + class IfcElectricDistributionPoint extends IfcFlowController { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, DistributionPointFunction, UserDefinedFunction) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.DefinitionType = DefinitionType; - this.ReinforcementSectionDefinitions = ReinforcementSectionDefinitions; - this.type = 3765753017; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.DistributionPointFunction = DistributionPointFunction; + this.UserDefinedFunction = UserDefinedFunction; + this.type = 3700593921; } } - IFC2X32.IfcReinforcementDefinitionProperties = IfcReinforcementDefinitionProperties; - class IfcRelationship extends IfcRoot { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); + IFC2X32.IfcElectricDistributionPoint = IfcElectricDistributionPoint; + class IfcReinforcingBar extends IfcReinforcingElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, NominalDiameter, CrossSectionArea, BarLength, BarRole, BarSurface) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.type = 478536968; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.SteelGrade = SteelGrade; + this.NominalDiameter = NominalDiameter; + this.CrossSectionArea = CrossSectionArea; + this.BarLength = BarLength; + this.BarRole = BarRole; + this.BarSurface = BarSurface; + this.type = 979691226; } } - IFC2X32.IfcRelationship = IfcRelationship; - class IfcRoundedRectangleProfileDef extends IfcRectangleProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, XDim, YDim, RoundingRadius) { - super(expressID, ProfileType, ProfileName, Position, XDim, YDim); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.XDim = XDim; - this.YDim = YDim; - this.RoundingRadius = RoundingRadius; - this.type = 2778083089; + IFC2X32.IfcReinforcingBar = IfcReinforcingBar; +})(IFC2X3$1 || (IFC2X3$1 = {})); +SchemaNames[2] = ["IFC4", "IFC4X1", "IFC4X2"]; +FromRawLineData[2] = { + 3630933823: (v) => new IFC4$1.IfcActorRole(v[0], !v[1] ? null : new IFC4$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcText(!v[2] ? null : v[2].value)), + 618182010: (v) => new IFC4$1.IfcAddress(v[0], !v[1] ? null : new IFC4$1.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value)), + 639542469: (v) => new IFC4$1.IfcApplication(new Handle$5(!v[0] ? null : v[0].value), new IFC4$1.IfcLabel(!v[1] ? null : v[1].value), new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), new IFC4$1.IfcIdentifier(!v[3] ? null : v[3].value)), + 411424972: (v) => { + var _a; + return new IFC4$1.IfcAppliedValue(!v[0] ? null : new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value), !v[3] ? null : new Handle$5(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcDate(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4$1.IfcDate(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4$1.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), v[8], !v[9] ? null : ((_a = v[9]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 130549933: (v) => new IFC4$1.IfcApproval(!v[0] ? null : new IFC4$1.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcText(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcDateTime(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4$1.IfcLabel(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4$1.IfcText(!v[6] ? null : v[6].value), !v[7] ? null : new Handle$5(!v[7] ? null : v[7].value), !v[8] ? null : new Handle$5(!v[8] ? null : v[8].value)), + 4037036970: (v) => new IFC4$1.IfcBoundaryCondition(!v[0] ? null : new IFC4$1.IfcLabel(!v[0] ? null : v[0].value)), + 1560379544: (v) => new IFC4$1.IfcBoundaryEdgeCondition(!v[0] ? null : new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : TypeInitialiser(2, v[1]), !v[2] ? null : TypeInitialiser(2, v[2]), !v[3] ? null : TypeInitialiser(2, v[3]), !v[4] ? null : TypeInitialiser(2, v[4]), !v[5] ? null : TypeInitialiser(2, v[5]), !v[6] ? null : TypeInitialiser(2, v[6])), + 3367102660: (v) => new IFC4$1.IfcBoundaryFaceCondition(!v[0] ? null : new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : TypeInitialiser(2, v[1]), !v[2] ? null : TypeInitialiser(2, v[2]), !v[3] ? null : TypeInitialiser(2, v[3])), + 1387855156: (v) => new IFC4$1.IfcBoundaryNodeCondition(!v[0] ? null : new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : TypeInitialiser(2, v[1]), !v[2] ? null : TypeInitialiser(2, v[2]), !v[3] ? null : TypeInitialiser(2, v[3]), !v[4] ? null : TypeInitialiser(2, v[4]), !v[5] ? null : TypeInitialiser(2, v[5]), !v[6] ? null : TypeInitialiser(2, v[6])), + 2069777674: (v) => new IFC4$1.IfcBoundaryNodeConditionWarping(!v[0] ? null : new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : TypeInitialiser(2, v[1]), !v[2] ? null : TypeInitialiser(2, v[2]), !v[3] ? null : TypeInitialiser(2, v[3]), !v[4] ? null : TypeInitialiser(2, v[4]), !v[5] ? null : TypeInitialiser(2, v[5]), !v[6] ? null : TypeInitialiser(2, v[6]), !v[7] ? null : TypeInitialiser(2, v[7])), + 2859738748: (_) => new IFC4$1.IfcConnectionGeometry(), + 2614616156: (v) => new IFC4$1.IfcConnectionPointGeometry(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value)), + 2732653382: (v) => new IFC4$1.IfcConnectionSurfaceGeometry(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value)), + 775493141: (v) => new IFC4$1.IfcConnectionVolumeGeometry(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value)), + 1959218052: (v) => new IFC4$1.IfcConstraint(new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcText(!v[1] ? null : v[1].value), v[2], !v[3] ? null : new IFC4$1.IfcLabel(!v[3] ? null : v[3].value), !v[4] ? null : new Handle$5(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4$1.IfcDateTime(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4$1.IfcLabel(!v[6] ? null : v[6].value)), + 1785450214: (v) => new IFC4$1.IfcCoordinateOperation(new Handle$5(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value)), + 1466758467: (v) => new IFC4$1.IfcCoordinateReferenceSystem(new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcIdentifier(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcIdentifier(!v[3] ? null : v[3].value)), + 602808272: (v) => { + var _a; + return new IFC4$1.IfcCostValue(!v[0] ? null : new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value), !v[3] ? null : new Handle$5(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcDate(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4$1.IfcDate(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4$1.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), v[8], !v[9] ? null : ((_a = v[9]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 1765591967: (v) => { + var _a; + return new IFC4$1.IfcDerivedUnit(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], v[1], !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value)); + }, + 1045800335: (v) => new IFC4$1.IfcDerivedUnitElement(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : v[1].value), + 2949456006: (v) => new IFC4$1.IfcDimensionalExponents(!v[0] ? null : v[0].value, !v[1] ? null : v[1].value, !v[2] ? null : v[2].value, !v[3] ? null : v[3].value, !v[4] ? null : v[4].value, !v[5] ? null : v[5].value, !v[6] ? null : v[6].value), + 4294318154: (_) => new IFC4$1.IfcExternalInformation(), + 3200245327: (v) => new IFC4$1.IfcExternalReference(!v[0] ? null : new IFC4$1.IfcURIReference(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcIdentifier(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value)), + 2242383968: (v) => new IFC4$1.IfcExternallyDefinedHatchStyle(!v[0] ? null : new IFC4$1.IfcURIReference(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcIdentifier(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value)), + 1040185647: (v) => new IFC4$1.IfcExternallyDefinedSurfaceStyle(!v[0] ? null : new IFC4$1.IfcURIReference(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcIdentifier(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value)), + 3548104201: (v) => new IFC4$1.IfcExternallyDefinedTextFont(!v[0] ? null : new IFC4$1.IfcURIReference(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcIdentifier(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value)), + 852622518: (v) => new IFC4$1.IfcGridAxis(!v[0] ? null : new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), new IFC4$1.IfcBoolean(!v[2] ? null : v[2].value)), + 3020489413: (v) => { + var _a; + return new IFC4$1.IfcIrregularTimeSeriesValue(new IFC4$1.IfcDateTime(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(2, p) : null)) || []); + }, + 2655187982: (v) => new IFC4$1.IfcLibraryInformation(new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcDateTime(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcURIReference(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4$1.IfcText(!v[5] ? null : v[5].value)), + 3452421091: (v) => new IFC4$1.IfcLibraryReference(!v[0] ? null : new IFC4$1.IfcURIReference(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcIdentifier(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLanguageId(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value)), + 4162380809: (v) => { + var _a, _b; + return new IFC4$1.IfcLightDistributionData(new IFC4$1.IfcPlaneAngleMeasure(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4$1.IfcPlaneAngleMeasure(p.value) : null)) || [], ((_b = v[2]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4$1.IfcLuminousIntensityDistributionMeasure(p.value) : null)) || []); + }, + 1566485204: (v) => { + var _a; + return new IFC4$1.IfcLightIntensityDistribution(v[0], ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 3057273783: (v) => new IFC4$1.IfcMapConversion(new Handle$5(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), new IFC4$1.IfcLengthMeasure(!v[2] ? null : v[2].value), new IFC4$1.IfcLengthMeasure(!v[3] ? null : v[3].value), new IFC4$1.IfcLengthMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4$1.IfcReal(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4$1.IfcReal(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcReal(!v[7] ? null : v[7].value)), + 1847130766: (v) => { + var _a; + return new IFC4$1.IfcMaterialClassificationRelationship(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new Handle$5(!v[1] ? null : v[1].value)); + }, + 760658860: (_) => new IFC4$1.IfcMaterialDefinition(), + 248100487: (v) => new IFC4$1.IfcMaterialLayer(!v[0] ? null : new Handle$5(!v[0] ? null : v[0].value), new IFC4$1.IfcNonNegativeLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLogical(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcLabel(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcText(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4$1.IfcLabel(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4$1.IfcInteger(!v[6] ? null : v[6].value)), + 3303938423: (v) => { + var _a; + return new IFC4$1.IfcMaterialLayerSet(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[1] ? null : new IFC4$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcText(!v[2] ? null : v[2].value)); + }, + 1847252529: (v) => new IFC4$1.IfcMaterialLayerWithOffsets(!v[0] ? null : new Handle$5(!v[0] ? null : v[0].value), new IFC4$1.IfcNonNegativeLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLogical(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcLabel(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcText(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4$1.IfcLabel(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4$1.IfcInteger(!v[6] ? null : v[6].value), v[7], new IFC4$1.IfcLengthMeasure(!v[8] ? null : v[8].value)), + 2199411900: (v) => { + var _a; + return new IFC4$1.IfcMaterialList(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 2235152071: (v) => new IFC4$1.IfcMaterialProfile(!v[0] ? null : new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value), new Handle$5(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcInteger(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4$1.IfcLabel(!v[5] ? null : v[5].value)), + 164193824: (v) => { + var _a; + return new IFC4$1.IfcMaterialProfileSet(!v[0] ? null : new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[3] ? null : new Handle$5(!v[3] ? null : v[3].value)); + }, + 552965576: (v) => new IFC4$1.IfcMaterialProfileWithOffsets(!v[0] ? null : new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value), new Handle$5(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcInteger(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4$1.IfcLabel(!v[5] ? null : v[5].value), new IFC4$1.IfcLengthMeasure(!v[6] ? null : v[6].value)), + 1507914824: (_) => new IFC4$1.IfcMaterialUsageDefinition(), + 2597039031: (v) => new IFC4$1.IfcMeasureWithUnit(TypeInitialiser(2, v[0]), new Handle$5(!v[1] ? null : v[1].value)), + 3368373690: (v) => new IFC4$1.IfcMetric(new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcText(!v[1] ? null : v[1].value), v[2], !v[3] ? null : new IFC4$1.IfcLabel(!v[3] ? null : v[3].value), !v[4] ? null : new Handle$5(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4$1.IfcDateTime(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4$1.IfcLabel(!v[6] ? null : v[6].value), v[7], !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : new Handle$5(!v[9] ? null : v[9].value), !v[10] ? null : new Handle$5(!v[10] ? null : v[10].value)), + 2706619895: (v) => new IFC4$1.IfcMonetaryUnit(new IFC4$1.IfcLabel(!v[0] ? null : v[0].value)), + 1918398963: (v) => new IFC4$1.IfcNamedUnit(new Handle$5(!v[0] ? null : v[0].value), v[1]), + 3701648758: (_) => new IFC4$1.IfcObjectPlacement(), + 2251480897: (v) => { + var _a; + return new IFC4$1.IfcObjective(new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcText(!v[1] ? null : v[1].value), v[2], !v[3] ? null : new IFC4$1.IfcLabel(!v[3] ? null : v[3].value), !v[4] ? null : new Handle$5(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4$1.IfcDateTime(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4$1.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], v[8], v[9], !v[10] ? null : new IFC4$1.IfcLabel(!v[10] ? null : v[10].value)); + }, + 4251960020: (v) => { + var _a, _b; + return new IFC4$1.IfcOrganization(!v[0] ? null : new IFC4$1.IfcIdentifier(!v[0] ? null : v[0].value), new IFC4$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcText(!v[2] ? null : v[2].value), !v[3] ? null : ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[4] ? null : ((_b = v[4]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 1207048766: (v) => new IFC4$1.IfcOwnerHistory(new Handle$5(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), v[2], v[3], !v[4] ? null : new IFC4$1.IfcTimeStamp(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), new IFC4$1.IfcTimeStamp(!v[7] ? null : v[7].value)), + 2077209135: (v) => { + var _a, _b, _c, _d, _e; + return new IFC4$1.IfcPerson(!v[0] ? null : new IFC4$1.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4$1.IfcLabel(p.value) : null)) || [], !v[4] ? null : ((_b = v[4]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4$1.IfcLabel(p.value) : null)) || [], !v[5] ? null : ((_c = v[5]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? new IFC4$1.IfcLabel(p.value) : null)) || [], !v[6] ? null : ((_d = v[6]) == null ? void 0 : _d.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : ((_e = v[7]) == null ? void 0 : _e.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 101040310: (v) => { + var _a; + return new IFC4$1.IfcPersonAndOrganization(new Handle$5(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 2483315170: (v) => new IFC4$1.IfcPhysicalQuantity(new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcText(!v[1] ? null : v[1].value)), + 2226359599: (v) => new IFC4$1.IfcPhysicalSimpleQuantity(new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value)), + 3355820592: (v) => { + var _a; + return new IFC4$1.IfcPostalAddress(v[0], !v[1] ? null : new IFC4$1.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcLabel(!v[3] ? null : v[3].value), !v[4] ? null : ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4$1.IfcLabel(p.value) : null)) || [], !v[5] ? null : new IFC4$1.IfcLabel(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4$1.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4$1.IfcLabel(!v[9] ? null : v[9].value)); + }, + 677532197: (_) => new IFC4$1.IfcPresentationItem(), + 2022622350: (v) => { + var _a; + return new IFC4$1.IfcPresentationLayerAssignment(new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[3] ? null : new IFC4$1.IfcIdentifier(!v[3] ? null : v[3].value)); + }, + 1304840413: (v) => { + var _a, _b; + return new IFC4$1.IfcPresentationLayerWithStyle(new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[3] ? null : new IFC4$1.IfcIdentifier(!v[3] ? null : v[3].value), new IFC4$1.IfcLogical(!v[4] ? null : v[4].value), new IFC4$1.IfcLogical(!v[5] ? null : v[5].value), new IFC4$1.IfcLogical(!v[6] ? null : v[6].value), !v[7] ? null : ((_b = v[7]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 3119450353: (v) => new IFC4$1.IfcPresentationStyle(!v[0] ? null : new IFC4$1.IfcLabel(!v[0] ? null : v[0].value)), + 2417041796: (v) => { + var _a; + return new IFC4$1.IfcPresentationStyleAssignment(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 2095639259: (v) => { + var _a; + return new IFC4$1.IfcProductRepresentation(!v[0] ? null : new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 3958567839: (v) => new IFC4$1.IfcProfileDef(v[0], !v[1] ? null : new IFC4$1.IfcLabel(!v[1] ? null : v[1].value)), + 3843373140: (v) => new IFC4$1.IfcProjectedCRS(new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcIdentifier(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcIdentifier(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4$1.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value)), + 986844984: (_) => new IFC4$1.IfcPropertyAbstraction(), + 3710013099: (v) => { + var _a; + return new IFC4$1.IfcPropertyEnumeration(new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(2, p) : null)) || [], !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value)); + }, + 2044713172: (v) => new IFC4$1.IfcQuantityArea(new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value), new IFC4$1.IfcAreaMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value)), + 2093928680: (v) => new IFC4$1.IfcQuantityCount(new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value), new IFC4$1.IfcCountMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value)), + 931644368: (v) => new IFC4$1.IfcQuantityLength(new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value), new IFC4$1.IfcLengthMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value)), + 3252649465: (v) => new IFC4$1.IfcQuantityTime(new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value), new IFC4$1.IfcTimeMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value)), + 2405470396: (v) => new IFC4$1.IfcQuantityVolume(new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value), new IFC4$1.IfcVolumeMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value)), + 825690147: (v) => new IFC4$1.IfcQuantityWeight(new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value), new IFC4$1.IfcMassMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value)), + 3915482550: (v) => { + var _a, _b, _c, _d; + return new IFC4$1.IfcRecurrencePattern(v[0], !v[1] ? null : ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4$1.IfcDayInMonthNumber(p.value) : null)) || [], !v[2] ? null : ((_b = v[2]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4$1.IfcDayInWeekNumber(p.value) : null)) || [], !v[3] ? null : ((_c = v[3]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? new IFC4$1.IfcMonthInYearNumber(p.value) : null)) || [], !v[4] ? null : new IFC4$1.IfcInteger(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4$1.IfcInteger(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4$1.IfcInteger(!v[6] ? null : v[6].value), !v[7] ? null : ((_d = v[7]) == null ? void 0 : _d.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 2433181523: (v) => { + var _a; + return new IFC4$1.IfcReference(!v[0] ? null : new IFC4$1.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcIdentifier(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4$1.IfcInteger(p.value) : null)) || [], !v[4] ? null : new Handle$5(!v[4] ? null : v[4].value)); + }, + 1076942058: (v) => { + var _a; + return new IFC4$1.IfcRepresentation(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 3377609919: (v) => new IFC4$1.IfcRepresentationContext(!v[0] ? null : new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcLabel(!v[1] ? null : v[1].value)), + 3008791417: (_) => new IFC4$1.IfcRepresentationItem(), + 1660063152: (v) => new IFC4$1.IfcRepresentationMap(new Handle$5(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value)), + 2439245199: (v) => new IFC4$1.IfcResourceLevelRelationship(!v[0] ? null : new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcText(!v[1] ? null : v[1].value)), + 2341007311: (v) => new IFC4$1.IfcRoot(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value)), + 448429030: (v) => new IFC4$1.IfcSIUnit(v[0], v[1], v[2]), + 1054537805: (v) => new IFC4$1.IfcSchedulingTime(!v[0] ? null : new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), v[1], !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value)), + 867548509: (v) => { + var _a; + return new IFC4$1.IfcShapeAspect(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[1] ? null : new IFC4$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcText(!v[2] ? null : v[2].value), new IFC4$1.IfcLogical(!v[3] ? null : v[3].value), !v[4] ? null : new Handle$5(!v[4] ? null : v[4].value)); + }, + 3982875396: (v) => { + var _a; + return new IFC4$1.IfcShapeModel(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 4240577450: (v) => { + var _a; + return new IFC4$1.IfcShapeRepresentation(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 2273995522: (v) => new IFC4$1.IfcStructuralConnectionCondition(!v[0] ? null : new IFC4$1.IfcLabel(!v[0] ? null : v[0].value)), + 2162789131: (v) => new IFC4$1.IfcStructuralLoad(!v[0] ? null : new IFC4$1.IfcLabel(!v[0] ? null : v[0].value)), + 3478079324: (v) => { + var _a, _b; + return new IFC4$1.IfcStructuralLoadConfiguration(!v[0] ? null : new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[2] ? null : (_b = v[2]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new IFC4$1.IfcLengthMeasure(p2.value) : null)) || [])); + }, + 609421318: (v) => new IFC4$1.IfcStructuralLoadOrResult(!v[0] ? null : new IFC4$1.IfcLabel(!v[0] ? null : v[0].value)), + 2525727697: (v) => new IFC4$1.IfcStructuralLoadStatic(!v[0] ? null : new IFC4$1.IfcLabel(!v[0] ? null : v[0].value)), + 3408363356: (v) => new IFC4$1.IfcStructuralLoadTemperature(!v[0] ? null : new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcThermodynamicTemperatureMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcThermodynamicTemperatureMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcThermodynamicTemperatureMeasure(!v[3] ? null : v[3].value)), + 2830218821: (v) => { + var _a; + return new IFC4$1.IfcStyleModel(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 3958052878: (v) => { + var _a; + return new IFC4$1.IfcStyledItem(!v[0] ? null : new Handle$5(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value)); + }, + 3049322572: (v) => { + var _a; + return new IFC4$1.IfcStyledRepresentation(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 2934153892: (v) => { + var _a, _b; + return new IFC4$1.IfcSurfaceReinforcementArea(!v[0] ? null : new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4$1.IfcLengthMeasure(p.value) : null)) || [], !v[2] ? null : ((_b = v[2]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4$1.IfcLengthMeasure(p.value) : null)) || [], !v[3] ? null : new IFC4$1.IfcRatioMeasure(!v[3] ? null : v[3].value)); + }, + 1300840506: (v) => { + var _a; + return new IFC4$1.IfcSurfaceStyle(!v[0] ? null : new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), v[1], ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 3303107099: (v) => new IFC4$1.IfcSurfaceStyleLighting(new Handle$5(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), new Handle$5(!v[3] ? null : v[3].value)), + 1607154358: (v) => new IFC4$1.IfcSurfaceStyleRefraction(!v[0] ? null : new IFC4$1.IfcReal(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcReal(!v[1] ? null : v[1].value)), + 846575682: (v) => new IFC4$1.IfcSurfaceStyleShading(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcNormalisedRatioMeasure(!v[1] ? null : v[1].value)), + 1351298697: (v) => { + var _a; + return new IFC4$1.IfcSurfaceStyleWithTextures(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 626085974: (v) => { + var _a; + return new IFC4$1.IfcSurfaceTexture(new IFC4$1.IfcBoolean(!v[0] ? null : v[0].value), new IFC4$1.IfcBoolean(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcIdentifier(!v[2] ? null : v[2].value), !v[3] ? null : new Handle$5(!v[3] ? null : v[3].value), !v[4] ? null : ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4$1.IfcIdentifier(p.value) : null)) || []); + }, + 985171141: (v) => { + var _a, _b; + return new IFC4$1.IfcTable(!v[0] ? null : new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[2] ? null : ((_b = v[2]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 2043862942: (v) => new IFC4$1.IfcTableColumn(!v[0] ? null : new IFC4$1.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcText(!v[2] ? null : v[2].value), !v[3] ? null : new Handle$5(!v[3] ? null : v[3].value), !v[4] ? null : new Handle$5(!v[4] ? null : v[4].value)), + 531007025: (v) => { + var _a; + return new IFC4$1.IfcTableRow(!v[0] ? null : ((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(2, p) : null)) || [], !v[1] ? null : new IFC4$1.IfcBoolean(!v[1] ? null : v[1].value)); + }, + 1549132990: (v) => new IFC4$1.IfcTaskTime(!v[0] ? null : new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), v[1], !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), v[3], !v[4] ? null : new IFC4$1.IfcDuration(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4$1.IfcDateTime(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4$1.IfcDateTime(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcDateTime(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcDateTime(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4$1.IfcDateTime(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4$1.IfcDateTime(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4$1.IfcDuration(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4$1.IfcDuration(!v[12] ? null : v[12].value), !v[13] ? null : new IFC4$1.IfcBoolean(!v[13] ? null : v[13].value), !v[14] ? null : new IFC4$1.IfcDateTime(!v[14] ? null : v[14].value), !v[15] ? null : new IFC4$1.IfcDuration(!v[15] ? null : v[15].value), !v[16] ? null : new IFC4$1.IfcDateTime(!v[16] ? null : v[16].value), !v[17] ? null : new IFC4$1.IfcDateTime(!v[17] ? null : v[17].value), !v[18] ? null : new IFC4$1.IfcDuration(!v[18] ? null : v[18].value), !v[19] ? null : new IFC4$1.IfcPositiveRatioMeasure(!v[19] ? null : v[19].value)), + 2771591690: (v) => new IFC4$1.IfcTaskTimeRecurring(!v[0] ? null : new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), v[1], !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), v[3], !v[4] ? null : new IFC4$1.IfcDuration(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4$1.IfcDateTime(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4$1.IfcDateTime(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcDateTime(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcDateTime(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4$1.IfcDateTime(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4$1.IfcDateTime(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4$1.IfcDuration(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4$1.IfcDuration(!v[12] ? null : v[12].value), !v[13] ? null : new IFC4$1.IfcBoolean(!v[13] ? null : v[13].value), !v[14] ? null : new IFC4$1.IfcDateTime(!v[14] ? null : v[14].value), !v[15] ? null : new IFC4$1.IfcDuration(!v[15] ? null : v[15].value), !v[16] ? null : new IFC4$1.IfcDateTime(!v[16] ? null : v[16].value), !v[17] ? null : new IFC4$1.IfcDateTime(!v[17] ? null : v[17].value), !v[18] ? null : new IFC4$1.IfcDuration(!v[18] ? null : v[18].value), !v[19] ? null : new IFC4$1.IfcPositiveRatioMeasure(!v[19] ? null : v[19].value), new Handle$5(!v[20] ? null : v[20].value)), + 912023232: (v) => { + var _a, _b, _c, _d; + return new IFC4$1.IfcTelecomAddress(v[0], !v[1] ? null : new IFC4$1.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4$1.IfcLabel(p.value) : null)) || [], !v[4] ? null : ((_b = v[4]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4$1.IfcLabel(p.value) : null)) || [], !v[5] ? null : new IFC4$1.IfcLabel(!v[5] ? null : v[5].value), !v[6] ? null : ((_c = v[6]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? new IFC4$1.IfcLabel(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcURIReference(!v[7] ? null : v[7].value), !v[8] ? null : ((_d = v[8]) == null ? void 0 : _d.map((p) => (p == null ? void 0 : p.value) ? new IFC4$1.IfcURIReference(p.value) : null)) || []); + }, + 1447204868: (v) => new IFC4$1.IfcTextStyle(!v[0] ? null : new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value), new Handle$5(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcBoolean(!v[4] ? null : v[4].value)), + 2636378356: (v) => new IFC4$1.IfcTextStyleForDefinedFont(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value)), + 1640371178: (v) => new IFC4$1.IfcTextStyleTextModel(!v[0] ? null : TypeInitialiser(2, v[0]), !v[1] ? null : new IFC4$1.IfcTextAlignment(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcTextDecoration(!v[2] ? null : v[2].value), !v[3] ? null : TypeInitialiser(2, v[3]), !v[4] ? null : TypeInitialiser(2, v[4]), !v[5] ? null : new IFC4$1.IfcTextTransformation(!v[5] ? null : v[5].value), !v[6] ? null : TypeInitialiser(2, v[6])), + 280115917: (v) => { + var _a; + return new IFC4$1.IfcTextureCoordinate(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 1742049831: (v) => { + var _a, _b; + return new IFC4$1.IfcTextureCoordinateGenerator(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new IFC4$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : ((_b = v[2]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4$1.IfcReal(p.value) : null)) || []); + }, + 2552916305: (v) => { + var _a, _b; + return new IFC4$1.IfcTextureMap(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], ((_b = v[1]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new Handle$5(!v[2] ? null : v[2].value)); + }, + 1210645708: (v) => { + var _a; + return new IFC4$1.IfcTextureVertex(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4$1.IfcParameterValue(p.value) : null)) || []); + }, + 3611470254: (v) => { + var _a; + return new IFC4$1.IfcTextureVertexList((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new IFC4$1.IfcParameterValue(p2.value) : null)) || [])); + }, + 1199560280: (v) => new IFC4$1.IfcTimePeriod(new IFC4$1.IfcTime(!v[0] ? null : v[0].value), new IFC4$1.IfcTime(!v[1] ? null : v[1].value)), + 3101149627: (v) => new IFC4$1.IfcTimeSeries(new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcText(!v[1] ? null : v[1].value), new IFC4$1.IfcDateTime(!v[2] ? null : v[2].value), new IFC4$1.IfcDateTime(!v[3] ? null : v[3].value), v[4], v[5], !v[6] ? null : new IFC4$1.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : new Handle$5(!v[7] ? null : v[7].value)), + 581633288: (v) => { + var _a; + return new IFC4$1.IfcTimeSeriesValue(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(2, p) : null)) || []); + }, + 1377556343: (_) => new IFC4$1.IfcTopologicalRepresentationItem(), + 1735638870: (v) => { + var _a; + return new IFC4$1.IfcTopologyRepresentation(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 180925521: (v) => { + var _a; + return new IFC4$1.IfcUnitAssignment(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 2799835756: (_) => new IFC4$1.IfcVertex(), + 1907098498: (v) => new IFC4$1.IfcVertexPoint(new Handle$5(!v[0] ? null : v[0].value)), + 891718957: (v) => { + var _a, _b; + return new IFC4$1.IfcVirtualGridIntersection(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], ((_b = v[1]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4$1.IfcLengthMeasure(p.value) : null)) || []); + }, + 1236880293: (v) => new IFC4$1.IfcWorkTime(!v[0] ? null : new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), v[1], !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new Handle$5(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcDate(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4$1.IfcDate(!v[5] ? null : v[5].value)), + 3869604511: (v) => { + var _a; + return new IFC4$1.IfcApprovalRelationship(!v[0] ? null : new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcText(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 3798115385: (v) => new IFC4$1.IfcArbitraryClosedProfileDef(v[0], !v[1] ? null : new IFC4$1.IfcLabel(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value)), + 1310608509: (v) => new IFC4$1.IfcArbitraryOpenProfileDef(v[0], !v[1] ? null : new IFC4$1.IfcLabel(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value)), + 2705031697: (v) => { + var _a; + return new IFC4$1.IfcArbitraryProfileDefWithVoids(v[0], !v[1] ? null : new IFC4$1.IfcLabel(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 616511568: (v) => { + var _a; + return new IFC4$1.IfcBlobTexture(new IFC4$1.IfcBoolean(!v[0] ? null : v[0].value), new IFC4$1.IfcBoolean(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcIdentifier(!v[2] ? null : v[2].value), !v[3] ? null : new Handle$5(!v[3] ? null : v[3].value), !v[4] ? null : ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4$1.IfcIdentifier(p.value) : null)) || [], new IFC4$1.IfcIdentifier(!v[5] ? null : v[5].value), new IFC4$1.IfcBinary(!v[6] ? null : v[6].value)); + }, + 3150382593: (v) => new IFC4$1.IfcCenterLineProfileDef(v[0], !v[1] ? null : new IFC4$1.IfcLabel(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), new IFC4$1.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value)), + 747523909: (v) => { + var _a; + return new IFC4$1.IfcClassification(!v[0] ? null : new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcDate(!v[2] ? null : v[2].value), new IFC4$1.IfcLabel(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcText(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4$1.IfcURIReference(!v[5] ? null : v[5].value), !v[6] ? null : ((_a = v[6]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4$1.IfcIdentifier(p.value) : null)) || []); + }, + 647927063: (v) => new IFC4$1.IfcClassificationReference(!v[0] ? null : new IFC4$1.IfcURIReference(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcIdentifier(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new Handle$5(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcText(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4$1.IfcIdentifier(!v[5] ? null : v[5].value)), + 3285139300: (v) => { + var _a; + return new IFC4$1.IfcColourRgbList((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new IFC4$1.IfcNormalisedRatioMeasure(p2.value) : null)) || [])); + }, + 3264961684: (v) => new IFC4$1.IfcColourSpecification(!v[0] ? null : new IFC4$1.IfcLabel(!v[0] ? null : v[0].value)), + 1485152156: (v) => { + var _a; + return new IFC4$1.IfcCompositeProfileDef(v[0], !v[1] ? null : new IFC4$1.IfcLabel(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[3] ? null : new IFC4$1.IfcLabel(!v[3] ? null : v[3].value)); + }, + 370225590: (v) => { + var _a; + return new IFC4$1.IfcConnectedFaceSet(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 1981873012: (v) => new IFC4$1.IfcConnectionCurveGeometry(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value)), + 45288368: (v) => new IFC4$1.IfcConnectionPointEccentricity(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLengthMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcLengthMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLengthMeasure(!v[4] ? null : v[4].value)), + 3050246964: (v) => new IFC4$1.IfcContextDependentUnit(new Handle$5(!v[0] ? null : v[0].value), v[1], new IFC4$1.IfcLabel(!v[2] ? null : v[2].value)), + 2889183280: (v) => new IFC4$1.IfcConversionBasedUnit(new Handle$5(!v[0] ? null : v[0].value), v[1], new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), new Handle$5(!v[3] ? null : v[3].value)), + 2713554722: (v) => new IFC4$1.IfcConversionBasedUnitWithOffset(new Handle$5(!v[0] ? null : v[0].value), v[1], new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), new Handle$5(!v[3] ? null : v[3].value), new IFC4$1.IfcReal(!v[4] ? null : v[4].value)), + 539742890: (v) => new IFC4$1.IfcCurrencyRelationship(!v[0] ? null : new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcText(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), new Handle$5(!v[3] ? null : v[3].value), new IFC4$1.IfcPositiveRatioMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4$1.IfcDateTime(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value)), + 3800577675: (v) => new IFC4$1.IfcCurveStyle(!v[0] ? null : new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : TypeInitialiser(2, v[2]), !v[3] ? null : new Handle$5(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcBoolean(!v[4] ? null : v[4].value)), + 1105321065: (v) => { + var _a; + return new IFC4$1.IfcCurveStyleFont(!v[0] ? null : new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 2367409068: (v) => new IFC4$1.IfcCurveStyleFontAndScaling(!v[0] ? null : new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), new IFC4$1.IfcPositiveRatioMeasure(!v[2] ? null : v[2].value)), + 3510044353: (v) => new IFC4$1.IfcCurveStyleFontPattern(new IFC4$1.IfcLengthMeasure(!v[0] ? null : v[0].value), new IFC4$1.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value)), + 3632507154: (v) => new IFC4$1.IfcDerivedProfileDef(v[0], !v[1] ? null : new IFC4$1.IfcLabel(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), new Handle$5(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value)), + 1154170062: (v) => { + var _a; + return new IFC4$1.IfcDocumentInformation(new IFC4$1.IfcIdentifier(!v[0] ? null : v[0].value), new IFC4$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcText(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcURIReference(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcText(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4$1.IfcText(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4$1.IfcText(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new Handle$5(!v[8] ? null : v[8].value), !v[9] ? null : ((_a = v[9]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[10] ? null : new IFC4$1.IfcDateTime(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4$1.IfcDateTime(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4$1.IfcIdentifier(!v[12] ? null : v[12].value), !v[13] ? null : new IFC4$1.IfcDate(!v[13] ? null : v[13].value), !v[14] ? null : new IFC4$1.IfcDate(!v[14] ? null : v[14].value), v[15], v[16]); + }, + 770865208: (v) => { + var _a; + return new IFC4$1.IfcDocumentInformationRelationship(!v[0] ? null : new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcText(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value)); + }, + 3732053477: (v) => new IFC4$1.IfcDocumentReference(!v[0] ? null : new IFC4$1.IfcURIReference(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcIdentifier(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new Handle$5(!v[4] ? null : v[4].value)), + 3900360178: (v) => new IFC4$1.IfcEdge(new Handle$5(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value)), + 476780140: (v) => new IFC4$1.IfcEdgeCurve(new Handle$5(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), new IFC4$1.IfcBoolean(!v[3] ? null : v[3].value)), + 211053100: (v) => new IFC4$1.IfcEventTime(!v[0] ? null : new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), v[1], !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcDateTime(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcDateTime(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4$1.IfcDateTime(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4$1.IfcDateTime(!v[6] ? null : v[6].value)), + 297599258: (v) => { + var _a; + return new IFC4$1.IfcExtendedProperties(!v[0] ? null : new IFC4$1.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 1437805879: (v) => { + var _a; + return new IFC4$1.IfcExternalReferenceRelationship(!v[0] ? null : new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcText(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 2556980723: (v) => { + var _a; + return new IFC4$1.IfcFace(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 1809719519: (v) => new IFC4$1.IfcFaceBound(new Handle$5(!v[0] ? null : v[0].value), new IFC4$1.IfcBoolean(!v[1] ? null : v[1].value)), + 803316827: (v) => new IFC4$1.IfcFaceOuterBound(new Handle$5(!v[0] ? null : v[0].value), new IFC4$1.IfcBoolean(!v[1] ? null : v[1].value)), + 3008276851: (v) => { + var _a; + return new IFC4$1.IfcFaceSurface(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new Handle$5(!v[1] ? null : v[1].value), new IFC4$1.IfcBoolean(!v[2] ? null : v[2].value)); + }, + 4219587988: (v) => new IFC4$1.IfcFailureConnectionCondition(!v[0] ? null : new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcForceMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcForceMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcForceMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcForceMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4$1.IfcForceMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4$1.IfcForceMeasure(!v[6] ? null : v[6].value)), + 738692330: (v) => { + var _a; + return new IFC4$1.IfcFillAreaStyle(!v[0] ? null : new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[2] ? null : new IFC4$1.IfcBoolean(!v[2] ? null : v[2].value)); + }, + 3448662350: (v) => new IFC4$1.IfcGeometricRepresentationContext(!v[0] ? null : new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcLabel(!v[1] ? null : v[1].value), new IFC4$1.IfcDimensionCount(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcReal(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value)), + 2453401579: (_) => new IFC4$1.IfcGeometricRepresentationItem(), + 4142052618: (v) => new IFC4$1.IfcGeometricRepresentationSubContext(!v[0] ? null : new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcLabel(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcPositiveRatioMeasure(!v[3] ? null : v[3].value), v[4], !v[5] ? null : new IFC4$1.IfcLabel(!v[5] ? null : v[5].value)), + 3590301190: (v) => { + var _a; + return new IFC4$1.IfcGeometricSet(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 178086475: (v) => new IFC4$1.IfcGridPlacement(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value)), + 812098782: (v) => new IFC4$1.IfcHalfSpaceSolid(new Handle$5(!v[0] ? null : v[0].value), new IFC4$1.IfcBoolean(!v[1] ? null : v[1].value)), + 3905492369: (v) => { + var _a; + return new IFC4$1.IfcImageTexture(new IFC4$1.IfcBoolean(!v[0] ? null : v[0].value), new IFC4$1.IfcBoolean(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcIdentifier(!v[2] ? null : v[2].value), !v[3] ? null : new Handle$5(!v[3] ? null : v[3].value), !v[4] ? null : ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4$1.IfcIdentifier(p.value) : null)) || [], new IFC4$1.IfcURIReference(!v[5] ? null : v[5].value)); + }, + 3570813810: (v) => { + var _a; + return new IFC4$1.IfcIndexedColourMap(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcNormalisedRatioMeasure(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4$1.IfcPositiveInteger(p.value) : null)) || []); + }, + 1437953363: (v) => { + var _a; + return new IFC4$1.IfcIndexedTextureMap(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new Handle$5(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value)); + }, + 2133299955: (v) => { + var _a, _b; + return new IFC4$1.IfcIndexedTriangleTextureMap(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new Handle$5(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), !v[3] ? null : (_b = v[3]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new IFC4$1.IfcPositiveInteger(p2.value) : null)) || [])); + }, + 3741457305: (v) => { + var _a; + return new IFC4$1.IfcIrregularTimeSeries(new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcText(!v[1] ? null : v[1].value), new IFC4$1.IfcDateTime(!v[2] ? null : v[2].value), new IFC4$1.IfcDateTime(!v[3] ? null : v[3].value), v[4], v[5], !v[6] ? null : new IFC4$1.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : new Handle$5(!v[7] ? null : v[7].value), ((_a = v[8]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 1585845231: (v) => new IFC4$1.IfcLagTime(!v[0] ? null : new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), v[1], !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), TypeInitialiser(2, v[3]), v[4]), + 1402838566: (v) => new IFC4$1.IfcLightSource(!v[0] ? null : new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcNormalisedRatioMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcNormalisedRatioMeasure(!v[3] ? null : v[3].value)), + 125510826: (v) => new IFC4$1.IfcLightSourceAmbient(!v[0] ? null : new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcNormalisedRatioMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcNormalisedRatioMeasure(!v[3] ? null : v[3].value)), + 2604431987: (v) => new IFC4$1.IfcLightSourceDirectional(!v[0] ? null : new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcNormalisedRatioMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcNormalisedRatioMeasure(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value)), + 4266656042: (v) => new IFC4$1.IfcLightSourceGoniometric(!v[0] ? null : new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcNormalisedRatioMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcNormalisedRatioMeasure(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), new IFC4$1.IfcThermodynamicTemperatureMeasure(!v[6] ? null : v[6].value), new IFC4$1.IfcLuminousFluxMeasure(!v[7] ? null : v[7].value), v[8], new Handle$5(!v[9] ? null : v[9].value)), + 1520743889: (v) => new IFC4$1.IfcLightSourcePositional(!v[0] ? null : new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcNormalisedRatioMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcNormalisedRatioMeasure(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value), new IFC4$1.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC4$1.IfcReal(!v[6] ? null : v[6].value), new IFC4$1.IfcReal(!v[7] ? null : v[7].value), new IFC4$1.IfcReal(!v[8] ? null : v[8].value)), + 3422422726: (v) => new IFC4$1.IfcLightSourceSpot(!v[0] ? null : new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcNormalisedRatioMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcNormalisedRatioMeasure(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value), new IFC4$1.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC4$1.IfcReal(!v[6] ? null : v[6].value), new IFC4$1.IfcReal(!v[7] ? null : v[7].value), new IFC4$1.IfcReal(!v[8] ? null : v[8].value), new Handle$5(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4$1.IfcReal(!v[10] ? null : v[10].value), new IFC4$1.IfcPositivePlaneAngleMeasure(!v[11] ? null : v[11].value), new IFC4$1.IfcPositivePlaneAngleMeasure(!v[12] ? null : v[12].value)), + 2624227202: (v) => new IFC4$1.IfcLocalPlacement(!v[0] ? null : new Handle$5(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value)), + 1008929658: (_) => new IFC4$1.IfcLoop(), + 2347385850: (v) => new IFC4$1.IfcMappedItem(new Handle$5(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value)), + 1838606355: (v) => new IFC4$1.IfcMaterial(new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value)), + 3708119e3: (v) => new IFC4$1.IfcMaterialConstituent(!v[0] ? null : new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcText(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcNormalisedRatioMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value)), + 2852063980: (v) => { + var _a; + return new IFC4$1.IfcMaterialConstituentSet(!v[0] ? null : new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 2022407955: (v) => { + var _a; + return new IFC4$1.IfcMaterialDefinitionRepresentation(!v[0] ? null : new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new Handle$5(!v[3] ? null : v[3].value)); + }, + 1303795690: (v) => new IFC4$1.IfcMaterialLayerSetUsage(new Handle$5(!v[0] ? null : v[0].value), v[1], v[2], new IFC4$1.IfcLengthMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value)), + 3079605661: (v) => new IFC4$1.IfcMaterialProfileSetUsage(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcCardinalPointReference(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value)), + 3404854881: (v) => new IFC4$1.IfcMaterialProfileSetUsageTapering(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcCardinalPointReference(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value), new Handle$5(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcCardinalPointReference(!v[4] ? null : v[4].value)), + 3265635763: (v) => { + var _a; + return new IFC4$1.IfcMaterialProperties(!v[0] ? null : new IFC4$1.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new Handle$5(!v[3] ? null : v[3].value)); + }, + 853536259: (v) => { + var _a; + return new IFC4$1.IfcMaterialRelationship(!v[0] ? null : new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcText(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value)); + }, + 2998442950: (v) => new IFC4$1.IfcMirroredProfileDef(v[0], !v[1] ? null : new IFC4$1.IfcLabel(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcLabel(!v[3] ? null : v[3].value)), + 219451334: (v) => new IFC4$1.IfcObjectDefinition(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value)), + 2665983363: (v) => { + var _a; + return new IFC4$1.IfcOpenShell(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 1411181986: (v) => { + var _a; + return new IFC4$1.IfcOrganizationRelationship(!v[0] ? null : new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcText(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 1029017970: (v) => new IFC4$1.IfcOrientedEdge(new Handle$5(!v[0] ? null : v[0].value), new IFC4$1.IfcBoolean(!v[1] ? null : v[1].value)), + 2529465313: (v) => new IFC4$1.IfcParameterizedProfileDef(v[0], !v[1] ? null : new IFC4$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value)), + 2519244187: (v) => { + var _a; + return new IFC4$1.IfcPath(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 3021840470: (v) => { + var _a; + return new IFC4$1.IfcPhysicalComplexQuantity(new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new IFC4$1.IfcLabel(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4$1.IfcLabel(!v[5] ? null : v[5].value)); + }, + 597895409: (v) => { + var _a, _b; + return new IFC4$1.IfcPixelTexture(new IFC4$1.IfcBoolean(!v[0] ? null : v[0].value), new IFC4$1.IfcBoolean(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcIdentifier(!v[2] ? null : v[2].value), !v[3] ? null : new Handle$5(!v[3] ? null : v[3].value), !v[4] ? null : ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4$1.IfcIdentifier(p.value) : null)) || [], new IFC4$1.IfcInteger(!v[5] ? null : v[5].value), new IFC4$1.IfcInteger(!v[6] ? null : v[6].value), new IFC4$1.IfcInteger(!v[7] ? null : v[7].value), ((_b = v[8]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4$1.IfcBinary(p.value) : null)) || []); + }, + 2004835150: (v) => new IFC4$1.IfcPlacement(new Handle$5(!v[0] ? null : v[0].value)), + 1663979128: (v) => new IFC4$1.IfcPlanarExtent(new IFC4$1.IfcLengthMeasure(!v[0] ? null : v[0].value), new IFC4$1.IfcLengthMeasure(!v[1] ? null : v[1].value)), + 2067069095: (_) => new IFC4$1.IfcPoint(), + 4022376103: (v) => new IFC4$1.IfcPointOnCurve(new Handle$5(!v[0] ? null : v[0].value), new IFC4$1.IfcParameterValue(!v[1] ? null : v[1].value)), + 1423911732: (v) => new IFC4$1.IfcPointOnSurface(new Handle$5(!v[0] ? null : v[0].value), new IFC4$1.IfcParameterValue(!v[1] ? null : v[1].value), new IFC4$1.IfcParameterValue(!v[2] ? null : v[2].value)), + 2924175390: (v) => { + var _a; + return new IFC4$1.IfcPolyLoop(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 2775532180: (v) => new IFC4$1.IfcPolygonalBoundedHalfSpace(new Handle$5(!v[0] ? null : v[0].value), new IFC4$1.IfcBoolean(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), new Handle$5(!v[3] ? null : v[3].value)), + 3727388367: (v) => new IFC4$1.IfcPreDefinedItem(new IFC4$1.IfcLabel(!v[0] ? null : v[0].value)), + 3778827333: (_) => new IFC4$1.IfcPreDefinedProperties(), + 1775413392: (v) => new IFC4$1.IfcPreDefinedTextFont(new IFC4$1.IfcLabel(!v[0] ? null : v[0].value)), + 673634403: (v) => { + var _a; + return new IFC4$1.IfcProductDefinitionShape(!v[0] ? null : new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 2802850158: (v) => { + var _a; + return new IFC4$1.IfcProfileProperties(!v[0] ? null : new IFC4$1.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new Handle$5(!v[3] ? null : v[3].value)); + }, + 2598011224: (v) => new IFC4$1.IfcProperty(new IFC4$1.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcText(!v[1] ? null : v[1].value)), + 1680319473: (v) => new IFC4$1.IfcPropertyDefinition(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value)), + 148025276: (v) => new IFC4$1.IfcPropertyDependencyRelationship(!v[0] ? null : new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcText(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), new Handle$5(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcText(!v[4] ? null : v[4].value)), + 3357820518: (v) => new IFC4$1.IfcPropertySetDefinition(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value)), + 1482703590: (v) => new IFC4$1.IfcPropertyTemplateDefinition(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value)), + 2090586900: (v) => new IFC4$1.IfcQuantitySet(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value)), + 3615266464: (v) => new IFC4$1.IfcRectangleProfileDef(v[0], !v[1] ? null : new IFC4$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value), new IFC4$1.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC4$1.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value)), + 3413951693: (v) => { + var _a; + return new IFC4$1.IfcRegularTimeSeries(new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcText(!v[1] ? null : v[1].value), new IFC4$1.IfcDateTime(!v[2] ? null : v[2].value), new IFC4$1.IfcDateTime(!v[3] ? null : v[3].value), v[4], v[5], !v[6] ? null : new IFC4$1.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : new Handle$5(!v[7] ? null : v[7].value), new IFC4$1.IfcTimeMeasure(!v[8] ? null : v[8].value), ((_a = v[9]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 1580146022: (v) => new IFC4$1.IfcReinforcementBarProperties(new IFC4$1.IfcAreaMeasure(!v[0] ? null : v[0].value), new IFC4$1.IfcLabel(!v[1] ? null : v[1].value), v[2], !v[3] ? null : new IFC4$1.IfcLengthMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4$1.IfcCountMeasure(!v[5] ? null : v[5].value)), + 478536968: (v) => new IFC4$1.IfcRelationship(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value)), + 2943643501: (v) => { + var _a; + return new IFC4$1.IfcResourceApprovalRelationship(!v[0] ? null : new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new Handle$5(!v[3] ? null : v[3].value)); + }, + 1608871552: (v) => { + var _a; + return new IFC4$1.IfcResourceConstraintRelationship(!v[0] ? null : new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcText(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 1042787934: (v) => new IFC4$1.IfcResourceTime(!v[0] ? null : new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), v[1], !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcDuration(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcPositiveRatioMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4$1.IfcDateTime(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4$1.IfcDateTime(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcDuration(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4$1.IfcBoolean(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4$1.IfcDateTime(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4$1.IfcDuration(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4$1.IfcPositiveRatioMeasure(!v[12] ? null : v[12].value), !v[13] ? null : new IFC4$1.IfcDateTime(!v[13] ? null : v[13].value), !v[14] ? null : new IFC4$1.IfcDateTime(!v[14] ? null : v[14].value), !v[15] ? null : new IFC4$1.IfcDuration(!v[15] ? null : v[15].value), !v[16] ? null : new IFC4$1.IfcPositiveRatioMeasure(!v[16] ? null : v[16].value), !v[17] ? null : new IFC4$1.IfcPositiveRatioMeasure(!v[17] ? null : v[17].value)), + 2778083089: (v) => new IFC4$1.IfcRoundedRectangleProfileDef(v[0], !v[1] ? null : new IFC4$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value), new IFC4$1.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC4$1.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC4$1.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value)), + 2042790032: (v) => new IFC4$1.IfcSectionProperties(v[0], new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value)), + 4165799628: (v) => { + var _a; + return new IFC4$1.IfcSectionReinforcementProperties(new IFC4$1.IfcLengthMeasure(!v[0] ? null : v[0].value), new IFC4$1.IfcLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLengthMeasure(!v[2] ? null : v[2].value), v[3], new Handle$5(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 1509187699: (v) => { + var _a, _b; + return new IFC4$1.IfcSectionedSpine(new Handle$5(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], ((_b = v[2]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 4124623270: (v) => { + var _a; + return new IFC4$1.IfcShellBasedSurfaceModel(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 3692461612: (v) => new IFC4$1.IfcSimpleProperty(new IFC4$1.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcText(!v[1] ? null : v[1].value)), + 2609359061: (v) => new IFC4$1.IfcSlippageConnectionCondition(!v[0] ? null : new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLengthMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcLengthMeasure(!v[3] ? null : v[3].value)), + 723233188: (_) => new IFC4$1.IfcSolidModel(), + 1595516126: (v) => new IFC4$1.IfcStructuralLoadLinearForce(!v[0] ? null : new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcLinearForceMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLinearForceMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcLinearForceMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLinearMomentMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4$1.IfcLinearMomentMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4$1.IfcLinearMomentMeasure(!v[6] ? null : v[6].value)), + 2668620305: (v) => new IFC4$1.IfcStructuralLoadPlanarForce(!v[0] ? null : new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcPlanarForceMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcPlanarForceMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcPlanarForceMeasure(!v[3] ? null : v[3].value)), + 2473145415: (v) => new IFC4$1.IfcStructuralLoadSingleDisplacement(!v[0] ? null : new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLengthMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcLengthMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcPlaneAngleMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4$1.IfcPlaneAngleMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4$1.IfcPlaneAngleMeasure(!v[6] ? null : v[6].value)), + 1973038258: (v) => new IFC4$1.IfcStructuralLoadSingleDisplacementDistortion(!v[0] ? null : new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLengthMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcLengthMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcPlaneAngleMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4$1.IfcPlaneAngleMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4$1.IfcPlaneAngleMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcCurvatureMeasure(!v[7] ? null : v[7].value)), + 1597423693: (v) => new IFC4$1.IfcStructuralLoadSingleForce(!v[0] ? null : new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcForceMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcForceMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcForceMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcTorqueMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4$1.IfcTorqueMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4$1.IfcTorqueMeasure(!v[6] ? null : v[6].value)), + 1190533807: (v) => new IFC4$1.IfcStructuralLoadSingleForceWarping(!v[0] ? null : new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcForceMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcForceMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcForceMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcTorqueMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4$1.IfcTorqueMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4$1.IfcTorqueMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcWarpingMomentMeasure(!v[7] ? null : v[7].value)), + 2233826070: (v) => new IFC4$1.IfcSubedge(new Handle$5(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value)), + 2513912981: (_) => new IFC4$1.IfcSurface(), + 1878645084: (v) => new IFC4$1.IfcSurfaceStyleRendering(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcNormalisedRatioMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value), !v[3] ? null : new Handle$5(!v[3] ? null : v[3].value), !v[4] ? null : new Handle$5(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : TypeInitialiser(2, v[7]), v[8]), + 2247615214: (v) => new IFC4$1.IfcSweptAreaSolid(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value)), + 1260650574: (v) => new IFC4$1.IfcSweptDiskSolid(new Handle$5(!v[0] ? null : v[0].value), new IFC4$1.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcParameterValue(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcParameterValue(!v[4] ? null : v[4].value)), + 1096409881: (v) => new IFC4$1.IfcSweptDiskSolidPolygonal(new Handle$5(!v[0] ? null : v[0].value), new IFC4$1.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcParameterValue(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcParameterValue(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4$1.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value)), + 230924584: (v) => new IFC4$1.IfcSweptSurface(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value)), + 3071757647: (v) => new IFC4$1.IfcTShapeProfileDef(v[0], !v[1] ? null : new IFC4$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value), new IFC4$1.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC4$1.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC4$1.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC4$1.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcNonNegativeLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcNonNegativeLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4$1.IfcNonNegativeLengthMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4$1.IfcPlaneAngleMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4$1.IfcPlaneAngleMeasure(!v[11] ? null : v[11].value)), + 901063453: (_) => new IFC4$1.IfcTessellatedItem(), + 4282788508: (v) => new IFC4$1.IfcTextLiteral(new IFC4$1.IfcPresentableText(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), v[2]), + 3124975700: (v) => new IFC4$1.IfcTextLiteralWithExtent(new IFC4$1.IfcPresentableText(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), v[2], new Handle$5(!v[3] ? null : v[3].value), new IFC4$1.IfcBoxAlignment(!v[4] ? null : v[4].value)), + 1983826977: (v) => { + var _a; + return new IFC4$1.IfcTextStyleFontModel(new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4$1.IfcTextFontName(p.value) : null)) || [], !v[2] ? null : new IFC4$1.IfcFontStyle(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcFontVariant(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcFontWeight(!v[4] ? null : v[4].value), TypeInitialiser(2, v[5])); + }, + 2715220739: (v) => new IFC4$1.IfcTrapeziumProfileDef(v[0], !v[1] ? null : new IFC4$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value), new IFC4$1.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC4$1.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC4$1.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC4$1.IfcLengthMeasure(!v[6] ? null : v[6].value)), + 1628702193: (v) => { + var _a; + return new IFC4$1.IfcTypeObject(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 3736923433: (v) => { + var _a; + return new IFC4$1.IfcTypeProcess(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : new IFC4$1.IfcIdentifier(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcText(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value)); + }, + 2347495698: (v) => { + var _a, _b; + return new IFC4$1.IfcTypeProduct(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value)); + }, + 3698973494: (v) => { + var _a; + return new IFC4$1.IfcTypeResource(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : new IFC4$1.IfcIdentifier(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcText(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value)); + }, + 427810014: (v) => new IFC4$1.IfcUShapeProfileDef(v[0], !v[1] ? null : new IFC4$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value), new IFC4$1.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC4$1.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC4$1.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC4$1.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcNonNegativeLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcNonNegativeLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4$1.IfcPlaneAngleMeasure(!v[9] ? null : v[9].value)), + 1417489154: (v) => new IFC4$1.IfcVector(new Handle$5(!v[0] ? null : v[0].value), new IFC4$1.IfcLengthMeasure(!v[1] ? null : v[1].value)), + 2759199220: (v) => new IFC4$1.IfcVertexLoop(new Handle$5(!v[0] ? null : v[0].value)), + 1299126871: (v) => { + var _a, _b; + return new IFC4$1.IfcWindowStyle(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), v[8], v[9], new IFC4$1.IfcBoolean(!v[10] ? null : v[10].value), new IFC4$1.IfcBoolean(!v[11] ? null : v[11].value)); + }, + 2543172580: (v) => new IFC4$1.IfcZShapeProfileDef(v[0], !v[1] ? null : new IFC4$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value), new IFC4$1.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC4$1.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC4$1.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC4$1.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcNonNegativeLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcNonNegativeLengthMeasure(!v[8] ? null : v[8].value)), + 3406155212: (v) => { + var _a; + return new IFC4$1.IfcAdvancedFace(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new Handle$5(!v[1] ? null : v[1].value), new IFC4$1.IfcBoolean(!v[2] ? null : v[2].value)); + }, + 669184980: (v) => { + var _a; + return new IFC4$1.IfcAnnotationFillArea(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 3207858831: (v) => new IFC4$1.IfcAsymmetricIShapeProfileDef(v[0], !v[1] ? null : new IFC4$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value), new IFC4$1.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC4$1.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC4$1.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC4$1.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcNonNegativeLengthMeasure(!v[7] ? null : v[7].value), new IFC4$1.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4$1.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4$1.IfcNonNegativeLengthMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4$1.IfcNonNegativeLengthMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4$1.IfcPlaneAngleMeasure(!v[12] ? null : v[12].value), !v[13] ? null : new IFC4$1.IfcNonNegativeLengthMeasure(!v[13] ? null : v[13].value), !v[14] ? null : new IFC4$1.IfcPlaneAngleMeasure(!v[14] ? null : v[14].value)), + 4261334040: (v) => new IFC4$1.IfcAxis1Placement(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value)), + 3125803723: (v) => new IFC4$1.IfcAxis2Placement2D(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value)), + 2740243338: (v) => new IFC4$1.IfcAxis2Placement3D(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value)), + 2736907675: (v) => new IFC4$1.IfcBooleanResult(v[0], new Handle$5(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value)), + 4182860854: (_) => new IFC4$1.IfcBoundedSurface(), + 2581212453: (v) => new IFC4$1.IfcBoundingBox(new Handle$5(!v[0] ? null : v[0].value), new IFC4$1.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), new IFC4$1.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value), new IFC4$1.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value)), + 2713105998: (v) => new IFC4$1.IfcBoxedHalfSpace(new Handle$5(!v[0] ? null : v[0].value), new IFC4$1.IfcBoolean(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value)), + 2898889636: (v) => new IFC4$1.IfcCShapeProfileDef(v[0], !v[1] ? null : new IFC4$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value), new IFC4$1.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC4$1.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC4$1.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC4$1.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcNonNegativeLengthMeasure(!v[7] ? null : v[7].value)), + 1123145078: (v) => { + var _a; + return new IFC4$1.IfcCartesianPoint(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4$1.IfcLengthMeasure(p.value) : null)) || []); + }, + 574549367: (_) => new IFC4$1.IfcCartesianPointList(), + 1675464909: (v) => { + var _a; + return new IFC4$1.IfcCartesianPointList2D((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new IFC4$1.IfcLengthMeasure(p2.value) : null)) || [])); + }, + 2059837836: (v) => { + var _a; + return new IFC4$1.IfcCartesianPointList3D((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new IFC4$1.IfcLengthMeasure(p2.value) : null)) || [])); + }, + 59481748: (v) => new IFC4$1.IfcCartesianTransformationOperator(!v[0] ? null : new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcReal(!v[3] ? null : v[3].value)), + 3749851601: (v) => new IFC4$1.IfcCartesianTransformationOperator2D(!v[0] ? null : new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcReal(!v[3] ? null : v[3].value)), + 3486308946: (v) => new IFC4$1.IfcCartesianTransformationOperator2DnonUniform(!v[0] ? null : new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcReal(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcReal(!v[4] ? null : v[4].value)), + 3331915920: (v) => new IFC4$1.IfcCartesianTransformationOperator3D(!v[0] ? null : new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcReal(!v[3] ? null : v[3].value), !v[4] ? null : new Handle$5(!v[4] ? null : v[4].value)), + 1416205885: (v) => new IFC4$1.IfcCartesianTransformationOperator3DnonUniform(!v[0] ? null : new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcReal(!v[3] ? null : v[3].value), !v[4] ? null : new Handle$5(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4$1.IfcReal(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4$1.IfcReal(!v[6] ? null : v[6].value)), + 1383045692: (v) => new IFC4$1.IfcCircleProfileDef(v[0], !v[1] ? null : new IFC4$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value), new IFC4$1.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value)), + 2205249479: (v) => { + var _a; + return new IFC4$1.IfcClosedShell(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 776857604: (v) => new IFC4$1.IfcColourRgb(!v[0] ? null : new IFC4$1.IfcLabel(!v[0] ? null : v[0].value), new IFC4$1.IfcNormalisedRatioMeasure(!v[1] ? null : v[1].value), new IFC4$1.IfcNormalisedRatioMeasure(!v[2] ? null : v[2].value), new IFC4$1.IfcNormalisedRatioMeasure(!v[3] ? null : v[3].value)), + 2542286263: (v) => { + var _a; + return new IFC4$1.IfcComplexProperty(new IFC4$1.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcText(!v[1] ? null : v[1].value), new IFC4$1.IfcIdentifier(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 2485617015: (v) => new IFC4$1.IfcCompositeCurveSegment(v[0], new IFC4$1.IfcBoolean(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value)), + 2574617495: (v) => { + var _a, _b; + return new IFC4$1.IfcConstructionResourceType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : new IFC4$1.IfcIdentifier(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcText(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : ((_b = v[9]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[10] ? null : new Handle$5(!v[10] ? null : v[10].value)); + }, + 3419103109: (v) => { + var _a; + return new IFC4$1.IfcContext(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4$1.IfcLabel(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4$1.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[8] ? null : new Handle$5(!v[8] ? null : v[8].value)); + }, + 1815067380: (v) => { + var _a, _b; + return new IFC4$1.IfcCrewResourceType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : new IFC4$1.IfcIdentifier(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcText(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : ((_b = v[9]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[10] ? null : new Handle$5(!v[10] ? null : v[10].value), v[11]); + }, + 2506170314: (v) => new IFC4$1.IfcCsgPrimitive3D(new Handle$5(!v[0] ? null : v[0].value)), + 2147822146: (v) => new IFC4$1.IfcCsgSolid(new Handle$5(!v[0] ? null : v[0].value)), + 2601014836: (_) => new IFC4$1.IfcCurve(), + 2827736869: (v) => { + var _a; + return new IFC4$1.IfcCurveBoundedPlane(new Handle$5(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 2629017746: (v) => { + var _a; + return new IFC4$1.IfcCurveBoundedSurface(new Handle$5(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new IFC4$1.IfcBoolean(!v[2] ? null : v[2].value)); + }, + 32440307: (v) => { + var _a; + return new IFC4$1.IfcDirection(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4$1.IfcReal(p.value) : null)) || []); + }, + 526551008: (v) => { + var _a, _b; + return new IFC4$1.IfcDoorStyle(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), v[8], v[9], new IFC4$1.IfcBoolean(!v[10] ? null : v[10].value), new IFC4$1.IfcBoolean(!v[11] ? null : v[11].value)); + }, + 1472233963: (v) => { + var _a; + return new IFC4$1.IfcEdgeLoop(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 1883228015: (v) => { + var _a; + return new IFC4$1.IfcElementQuantity(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 339256511: (v) => { + var _a, _b; + return new IFC4$1.IfcElementType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value)); + }, + 2777663545: (v) => new IFC4$1.IfcElementarySurface(new Handle$5(!v[0] ? null : v[0].value)), + 2835456948: (v) => new IFC4$1.IfcEllipseProfileDef(v[0], !v[1] ? null : new IFC4$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value), new IFC4$1.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC4$1.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value)), + 4024345920: (v) => { + var _a; + return new IFC4$1.IfcEventType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : new IFC4$1.IfcIdentifier(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcText(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9], v[10], !v[11] ? null : new IFC4$1.IfcLabel(!v[11] ? null : v[11].value)); + }, + 477187591: (v) => new IFC4$1.IfcExtrudedAreaSolid(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), new IFC4$1.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value)), + 2804161546: (v) => new IFC4$1.IfcExtrudedAreaSolidTapered(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), new IFC4$1.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value)), + 2047409740: (v) => { + var _a; + return new IFC4$1.IfcFaceBasedSurfaceModel(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 374418227: (v) => new IFC4$1.IfcFillAreaStyleHatching(new Handle$5(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value), !v[3] ? null : new Handle$5(!v[3] ? null : v[3].value), new IFC4$1.IfcPlaneAngleMeasure(!v[4] ? null : v[4].value)), + 315944413: (v) => { + var _a, _b; + return new IFC4$1.IfcFillAreaStyleTiles(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], ((_b = v[1]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new IFC4$1.IfcPositiveRatioMeasure(!v[2] ? null : v[2].value)); + }, + 2652556860: (v) => new IFC4$1.IfcFixedReferenceSweptAreaSolid(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcParameterValue(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcParameterValue(!v[4] ? null : v[4].value), new Handle$5(!v[5] ? null : v[5].value)), + 4238390223: (v) => { + var _a, _b; + return new IFC4$1.IfcFurnishingElementType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value)); + }, + 1268542332: (v) => { + var _a, _b; + return new IFC4$1.IfcFurnitureType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9], v[10]); + }, + 4095422895: (v) => { + var _a, _b; + return new IFC4$1.IfcGeographicElementType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 987898635: (v) => { + var _a; + return new IFC4$1.IfcGeometricCurveSet(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 1484403080: (v) => new IFC4$1.IfcIShapeProfileDef(v[0], !v[1] ? null : new IFC4$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value), new IFC4$1.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC4$1.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC4$1.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC4$1.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcNonNegativeLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcNonNegativeLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4$1.IfcPlaneAngleMeasure(!v[9] ? null : v[9].value)), + 178912537: (v) => { + var _a; + return new IFC4$1.IfcIndexedPolygonalFace(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4$1.IfcPositiveInteger(p.value) : null)) || []); + }, + 2294589976: (v) => { + var _a, _b; + return new IFC4$1.IfcIndexedPolygonalFaceWithVoids(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4$1.IfcPositiveInteger(p.value) : null)) || [], (_b = v[1]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new IFC4$1.IfcPositiveInteger(p2.value) : null)) || [])); + }, + 572779678: (v) => new IFC4$1.IfcLShapeProfileDef(v[0], !v[1] ? null : new IFC4$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value), new IFC4$1.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC4$1.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4$1.IfcNonNegativeLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcNonNegativeLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcPlaneAngleMeasure(!v[8] ? null : v[8].value)), + 428585644: (v) => { + var _a, _b; + return new IFC4$1.IfcLaborResourceType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : new IFC4$1.IfcIdentifier(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcText(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : ((_b = v[9]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[10] ? null : new Handle$5(!v[10] ? null : v[10].value), v[11]); + }, + 1281925730: (v) => new IFC4$1.IfcLine(new Handle$5(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value)), + 1425443689: (v) => new IFC4$1.IfcManifoldSolidBrep(new Handle$5(!v[0] ? null : v[0].value)), + 3888040117: (v) => new IFC4$1.IfcObject(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value)), + 3388369263: (v) => new IFC4$1.IfcOffsetCurve2D(new Handle$5(!v[0] ? null : v[0].value), new IFC4$1.IfcLengthMeasure(!v[1] ? null : v[1].value), new IFC4$1.IfcLogical(!v[2] ? null : v[2].value)), + 3505215534: (v) => new IFC4$1.IfcOffsetCurve3D(new Handle$5(!v[0] ? null : v[0].value), new IFC4$1.IfcLengthMeasure(!v[1] ? null : v[1].value), new IFC4$1.IfcLogical(!v[2] ? null : v[2].value), new Handle$5(!v[3] ? null : v[3].value)), + 1682466193: (v) => new IFC4$1.IfcPcurve(new Handle$5(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value)), + 603570806: (v) => new IFC4$1.IfcPlanarBox(new IFC4$1.IfcLengthMeasure(!v[0] ? null : v[0].value), new IFC4$1.IfcLengthMeasure(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value)), + 220341763: (v) => new IFC4$1.IfcPlane(new Handle$5(!v[0] ? null : v[0].value)), + 759155922: (v) => new IFC4$1.IfcPreDefinedColour(new IFC4$1.IfcLabel(!v[0] ? null : v[0].value)), + 2559016684: (v) => new IFC4$1.IfcPreDefinedCurveFont(new IFC4$1.IfcLabel(!v[0] ? null : v[0].value)), + 3967405729: (v) => new IFC4$1.IfcPreDefinedPropertySet(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value)), + 569719735: (v) => { + var _a; + return new IFC4$1.IfcProcedureType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : new IFC4$1.IfcIdentifier(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcText(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 2945172077: (v) => new IFC4$1.IfcProcess(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4$1.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4$1.IfcText(!v[6] ? null : v[6].value)), + 4208778838: (v) => new IFC4$1.IfcProduct(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value)), + 103090709: (v) => { + var _a; + return new IFC4$1.IfcProject(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4$1.IfcLabel(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4$1.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[8] ? null : new Handle$5(!v[8] ? null : v[8].value)); + }, + 653396225: (v) => { + var _a; + return new IFC4$1.IfcProjectLibrary(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4$1.IfcLabel(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4$1.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[8] ? null : new Handle$5(!v[8] ? null : v[8].value)); + }, + 871118103: (v) => new IFC4$1.IfcPropertyBoundedValue(new IFC4$1.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : TypeInitialiser(2, v[2]), !v[3] ? null : TypeInitialiser(2, v[3]), !v[4] ? null : new Handle$5(!v[4] ? null : v[4].value), !v[5] ? null : TypeInitialiser(2, v[5])), + 4166981789: (v) => { + var _a; + return new IFC4$1.IfcPropertyEnumeratedValue(new IFC4$1.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(2, p) : null)) || [], !v[3] ? null : new Handle$5(!v[3] ? null : v[3].value)); + }, + 2752243245: (v) => { + var _a; + return new IFC4$1.IfcPropertyListValue(new IFC4$1.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(2, p) : null)) || [], !v[3] ? null : new Handle$5(!v[3] ? null : v[3].value)); + }, + 941946838: (v) => new IFC4$1.IfcPropertyReferenceValue(new IFC4$1.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcText(!v[2] ? null : v[2].value), !v[3] ? null : new Handle$5(!v[3] ? null : v[3].value)), + 1451395588: (v) => { + var _a; + return new IFC4$1.IfcPropertySet(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 492091185: (v) => { + var _a; + return new IFC4$1.IfcPropertySetTemplate(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), v[4], !v[5] ? null : new IFC4$1.IfcIdentifier(!v[5] ? null : v[5].value), ((_a = v[6]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 3650150729: (v) => new IFC4$1.IfcPropertySingleValue(new IFC4$1.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : TypeInitialiser(2, v[2]), !v[3] ? null : new Handle$5(!v[3] ? null : v[3].value)), + 110355661: (v) => { + var _a, _b; + return new IFC4$1.IfcPropertyTableValue(new IFC4$1.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(2, p) : null)) || [], !v[3] ? null : ((_b = v[3]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(2, p) : null)) || [], !v[4] ? null : new IFC4$1.IfcText(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), v[7]); + }, + 3521284610: (v) => new IFC4$1.IfcPropertyTemplate(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value)), + 3219374653: (v) => new IFC4$1.IfcProxy(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), v[7], !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value)), + 2770003689: (v) => new IFC4$1.IfcRectangleHollowProfileDef(v[0], !v[1] ? null : new IFC4$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value), new IFC4$1.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC4$1.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC4$1.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4$1.IfcNonNegativeLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcNonNegativeLengthMeasure(!v[7] ? null : v[7].value)), + 2798486643: (v) => new IFC4$1.IfcRectangularPyramid(new Handle$5(!v[0] ? null : v[0].value), new IFC4$1.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), new IFC4$1.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value), new IFC4$1.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value)), + 3454111270: (v) => new IFC4$1.IfcRectangularTrimmedSurface(new Handle$5(!v[0] ? null : v[0].value), new IFC4$1.IfcParameterValue(!v[1] ? null : v[1].value), new IFC4$1.IfcParameterValue(!v[2] ? null : v[2].value), new IFC4$1.IfcParameterValue(!v[3] ? null : v[3].value), new IFC4$1.IfcParameterValue(!v[4] ? null : v[4].value), new IFC4$1.IfcBoolean(!v[5] ? null : v[5].value), new IFC4$1.IfcBoolean(!v[6] ? null : v[6].value)), + 3765753017: (v) => { + var _a; + return new IFC4$1.IfcReinforcementDefinitionProperties(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 3939117080: (v) => { + var _a; + return new IFC4$1.IfcRelAssigns(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], v[5]); + }, + 1683148259: (v) => { + var _a; + return new IFC4$1.IfcRelAssignsToActor(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], v[5], new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new Handle$5(!v[7] ? null : v[7].value)); + }, + 2495723537: (v) => { + var _a; + return new IFC4$1.IfcRelAssignsToControl(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], v[5], new Handle$5(!v[6] ? null : v[6].value)); + }, + 1307041759: (v) => { + var _a; + return new IFC4$1.IfcRelAssignsToGroup(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], v[5], new Handle$5(!v[6] ? null : v[6].value)); + }, + 1027710054: (v) => { + var _a; + return new IFC4$1.IfcRelAssignsToGroupByFactor(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], v[5], new Handle$5(!v[6] ? null : v[6].value), new IFC4$1.IfcRatioMeasure(!v[7] ? null : v[7].value)); + }, + 4278684876: (v) => { + var _a; + return new IFC4$1.IfcRelAssignsToProcess(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], v[5], new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new Handle$5(!v[7] ? null : v[7].value)); + }, + 2857406711: (v) => { + var _a; + return new IFC4$1.IfcRelAssignsToProduct(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], v[5], new Handle$5(!v[6] ? null : v[6].value)); + }, + 205026976: (v) => { + var _a; + return new IFC4$1.IfcRelAssignsToResource(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], v[5], new Handle$5(!v[6] ? null : v[6].value)); + }, + 1865459582: (v) => { + var _a; + return new IFC4$1.IfcRelAssociates(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 4095574036: (v) => { + var _a; + return new IFC4$1.IfcRelAssociatesApproval(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new Handle$5(!v[5] ? null : v[5].value)); + }, + 919958153: (v) => { + var _a; + return new IFC4$1.IfcRelAssociatesClassification(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new Handle$5(!v[5] ? null : v[5].value)); + }, + 2728634034: (v) => { + var _a; + return new IFC4$1.IfcRelAssociatesConstraint(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[5] ? null : new IFC4$1.IfcLabel(!v[5] ? null : v[5].value), new Handle$5(!v[6] ? null : v[6].value)); + }, + 982818633: (v) => { + var _a; + return new IFC4$1.IfcRelAssociatesDocument(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new Handle$5(!v[5] ? null : v[5].value)); + }, + 3840914261: (v) => { + var _a; + return new IFC4$1.IfcRelAssociatesLibrary(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new Handle$5(!v[5] ? null : v[5].value)); + }, + 2655215786: (v) => { + var _a; + return new IFC4$1.IfcRelAssociatesMaterial(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new Handle$5(!v[5] ? null : v[5].value)); + }, + 826625072: (v) => new IFC4$1.IfcRelConnects(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value)), + 1204542856: (v) => new IFC4$1.IfcRelConnectsElements(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new Handle$5(!v[4] ? null : v[4].value), new Handle$5(!v[5] ? null : v[5].value), new Handle$5(!v[6] ? null : v[6].value)), + 3945020480: (v) => { + var _a, _b; + return new IFC4$1.IfcRelConnectsPathElements(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new Handle$5(!v[4] ? null : v[4].value), new Handle$5(!v[5] ? null : v[5].value), new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4$1.IfcInteger(p.value) : null)) || [], !v[8] ? null : ((_b = v[8]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4$1.IfcInteger(p.value) : null)) || [], v[9], v[10]); + }, + 4201705270: (v) => new IFC4$1.IfcRelConnectsPortToElement(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value), new Handle$5(!v[5] ? null : v[5].value)), + 3190031847: (v) => new IFC4$1.IfcRelConnectsPorts(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value), new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value)), + 2127690289: (v) => new IFC4$1.IfcRelConnectsStructuralActivity(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value), new Handle$5(!v[5] ? null : v[5].value)), + 1638771189: (v) => new IFC4$1.IfcRelConnectsStructuralMember(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value), new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new Handle$5(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new Handle$5(!v[9] ? null : v[9].value)), + 504942748: (v) => new IFC4$1.IfcRelConnectsWithEccentricity(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value), new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new Handle$5(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new Handle$5(!v[9] ? null : v[9].value), new Handle$5(!v[10] ? null : v[10].value)), + 3678494232: (v) => { + var _a; + return new IFC4$1.IfcRelConnectsWithRealizingElements(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new Handle$5(!v[4] ? null : v[4].value), new Handle$5(!v[5] ? null : v[5].value), new Handle$5(!v[6] ? null : v[6].value), ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value)); + }, + 3242617779: (v) => { + var _a; + return new IFC4$1.IfcRelContainedInSpatialStructure(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new Handle$5(!v[5] ? null : v[5].value)); + }, + 886880790: (v) => { + var _a; + return new IFC4$1.IfcRelCoversBldgElements(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 2802773753: (v) => { + var _a; + return new IFC4$1.IfcRelCoversSpaces(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 2565941209: (v) => { + var _a; + return new IFC4$1.IfcRelDeclares(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 2551354335: (v) => new IFC4$1.IfcRelDecomposes(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value)), + 693640335: (v) => new IFC4$1.IfcRelDefines(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value)), + 1462361463: (v) => { + var _a; + return new IFC4$1.IfcRelDefinesByObject(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new Handle$5(!v[5] ? null : v[5].value)); + }, + 4186316022: (v) => { + var _a; + return new IFC4$1.IfcRelDefinesByProperties(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new Handle$5(!v[5] ? null : v[5].value)); + }, + 307848117: (v) => { + var _a; + return new IFC4$1.IfcRelDefinesByTemplate(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new Handle$5(!v[5] ? null : v[5].value)); + }, + 781010003: (v) => { + var _a; + return new IFC4$1.IfcRelDefinesByType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new Handle$5(!v[5] ? null : v[5].value)); + }, + 3940055652: (v) => new IFC4$1.IfcRelFillsElement(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value), new Handle$5(!v[5] ? null : v[5].value)), + 279856033: (v) => { + var _a; + return new IFC4$1.IfcRelFlowControlElements(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new Handle$5(!v[5] ? null : v[5].value)); + }, + 427948657: (v) => new IFC4$1.IfcRelInterferesElements(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value), new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : v[8].value), + 3268803585: (v) => { + var _a; + return new IFC4$1.IfcRelNests(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 750771296: (v) => new IFC4$1.IfcRelProjectsElement(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value), new Handle$5(!v[5] ? null : v[5].value)), + 1245217292: (v) => { + var _a; + return new IFC4$1.IfcRelReferencedInSpatialStructure(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new Handle$5(!v[5] ? null : v[5].value)); + }, + 4122056220: (v) => new IFC4$1.IfcRelSequence(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value), new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), v[7], !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value)), + 366585022: (v) => { + var _a; + return new IFC4$1.IfcRelServicesBuildings(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 3451746338: (v) => new IFC4$1.IfcRelSpaceBoundary(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value), new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), v[7], v[8]), + 3523091289: (v) => new IFC4$1.IfcRelSpaceBoundary1stLevel(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value), new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), v[7], v[8], !v[9] ? null : new Handle$5(!v[9] ? null : v[9].value)), + 1521410863: (v) => new IFC4$1.IfcRelSpaceBoundary2ndLevel(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value), new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), v[7], v[8], !v[9] ? null : new Handle$5(!v[9] ? null : v[9].value), !v[10] ? null : new Handle$5(!v[10] ? null : v[10].value)), + 1401173127: (v) => new IFC4$1.IfcRelVoidsElement(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value), new Handle$5(!v[5] ? null : v[5].value)), + 816062949: (v) => new IFC4$1.IfcReparametrisedCompositeCurveSegment(v[0], new IFC4$1.IfcBoolean(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), new IFC4$1.IfcParameterValue(!v[3] ? null : v[3].value)), + 2914609552: (v) => new IFC4$1.IfcResource(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4$1.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4$1.IfcText(!v[6] ? null : v[6].value)), + 1856042241: (v) => new IFC4$1.IfcRevolvedAreaSolid(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), new IFC4$1.IfcPlaneAngleMeasure(!v[3] ? null : v[3].value)), + 3243963512: (v) => new IFC4$1.IfcRevolvedAreaSolidTapered(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), new IFC4$1.IfcPlaneAngleMeasure(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value)), + 4158566097: (v) => new IFC4$1.IfcRightCircularCone(new Handle$5(!v[0] ? null : v[0].value), new IFC4$1.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), new IFC4$1.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value)), + 3626867408: (v) => new IFC4$1.IfcRightCircularCylinder(new Handle$5(!v[0] ? null : v[0].value), new IFC4$1.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), new IFC4$1.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value)), + 3663146110: (v) => new IFC4$1.IfcSimplePropertyTemplate(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), v[4], !v[5] ? null : new IFC4$1.IfcLabel(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4$1.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : new Handle$5(!v[7] ? null : v[7].value), !v[8] ? null : new Handle$5(!v[8] ? null : v[8].value), !v[9] ? null : new Handle$5(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4$1.IfcLabel(!v[10] ? null : v[10].value), v[11]), + 1412071761: (v) => new IFC4$1.IfcSpatialElement(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value)), + 710998568: (v) => { + var _a, _b; + return new IFC4$1.IfcSpatialElementType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value)); + }, + 2706606064: (v) => new IFC4$1.IfcSpatialStructureElement(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), v[8]), + 3893378262: (v) => { + var _a, _b; + return new IFC4$1.IfcSpatialStructureElementType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value)); + }, + 463610769: (v) => new IFC4$1.IfcSpatialZone(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), v[8]), + 2481509218: (v) => { + var _a, _b; + return new IFC4$1.IfcSpatialZoneType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9], !v[10] ? null : new IFC4$1.IfcLabel(!v[10] ? null : v[10].value)); + }, + 451544542: (v) => new IFC4$1.IfcSphere(new Handle$5(!v[0] ? null : v[0].value), new IFC4$1.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value)), + 4015995234: (v) => new IFC4$1.IfcSphericalSurface(new Handle$5(!v[0] ? null : v[0].value), new IFC4$1.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value)), + 3544373492: (v) => new IFC4$1.IfcStructuralActivity(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), new Handle$5(!v[7] ? null : v[7].value), v[8]), + 3136571912: (v) => new IFC4$1.IfcStructuralItem(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value)), + 530289379: (v) => new IFC4$1.IfcStructuralMember(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value)), + 3689010777: (v) => new IFC4$1.IfcStructuralReaction(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), new Handle$5(!v[7] ? null : v[7].value), v[8]), + 3979015343: (v) => new IFC4$1.IfcStructuralSurfaceMember(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), v[7], !v[8] ? null : new IFC4$1.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value)), + 2218152070: (v) => new IFC4$1.IfcStructuralSurfaceMemberVarying(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), v[7], !v[8] ? null : new IFC4$1.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value)), + 603775116: (v) => new IFC4$1.IfcStructuralSurfaceReaction(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), new Handle$5(!v[7] ? null : v[7].value), v[8], v[9]), + 4095615324: (v) => { + var _a, _b; + return new IFC4$1.IfcSubContractResourceType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : new IFC4$1.IfcIdentifier(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcText(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : ((_b = v[9]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[10] ? null : new Handle$5(!v[10] ? null : v[10].value), v[11]); + }, + 699246055: (v) => { + var _a; + return new IFC4$1.IfcSurfaceCurve(new Handle$5(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], v[2]); + }, + 2028607225: (v) => new IFC4$1.IfcSurfaceCurveSweptAreaSolid(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcParameterValue(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcParameterValue(!v[4] ? null : v[4].value), new Handle$5(!v[5] ? null : v[5].value)), + 2809605785: (v) => new IFC4$1.IfcSurfaceOfLinearExtrusion(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), new IFC4$1.IfcLengthMeasure(!v[3] ? null : v[3].value)), + 4124788165: (v) => new IFC4$1.IfcSurfaceOfRevolution(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value)), + 1580310250: (v) => { + var _a, _b; + return new IFC4$1.IfcSystemFurnitureElementType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 3473067441: (v) => new IFC4$1.IfcTask(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4$1.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4$1.IfcText(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), new IFC4$1.IfcBoolean(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4$1.IfcInteger(!v[10] ? null : v[10].value), !v[11] ? null : new Handle$5(!v[11] ? null : v[11].value), v[12]), + 3206491090: (v) => { + var _a; + return new IFC4$1.IfcTaskType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : new IFC4$1.IfcIdentifier(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcText(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9], !v[10] ? null : new IFC4$1.IfcLabel(!v[10] ? null : v[10].value)); + }, + 2387106220: (v) => new IFC4$1.IfcTessellatedFaceSet(new Handle$5(!v[0] ? null : v[0].value)), + 1935646853: (v) => new IFC4$1.IfcToroidalSurface(new Handle$5(!v[0] ? null : v[0].value), new IFC4$1.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), new IFC4$1.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value)), + 2097647324: (v) => { + var _a, _b; + return new IFC4$1.IfcTransportElementType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 2916149573: (v) => { + var _a, _b, _c; + return new IFC4$1.IfcTriangulatedFaceSet(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : (_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new IFC4$1.IfcParameterValue(p2.value) : null)) || []), !v[2] ? null : new IFC4$1.IfcBoolean(!v[2] ? null : v[2].value), (_b = v[3]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new IFC4$1.IfcPositiveInteger(p2.value) : null)) || []), !v[4] ? null : ((_c = v[4]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? new IFC4$1.IfcPositiveInteger(p.value) : null)) || []); + }, + 336235671: (v) => new IFC4$1.IfcWindowLiningProperties(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4$1.IfcNonNegativeLengthMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4$1.IfcNonNegativeLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcNonNegativeLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcNormalisedRatioMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4$1.IfcNormalisedRatioMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4$1.IfcNormalisedRatioMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4$1.IfcNormalisedRatioMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new Handle$5(!v[12] ? null : v[12].value), !v[13] ? null : new IFC4$1.IfcLengthMeasure(!v[13] ? null : v[13].value), !v[14] ? null : new IFC4$1.IfcLengthMeasure(!v[14] ? null : v[14].value), !v[15] ? null : new IFC4$1.IfcLengthMeasure(!v[15] ? null : v[15].value)), + 512836454: (v) => new IFC4$1.IfcWindowPanelProperties(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), v[4], v[5], !v[6] ? null : new IFC4$1.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcPositiveLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new Handle$5(!v[8] ? null : v[8].value)), + 2296667514: (v) => new IFC4$1.IfcActor(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), new Handle$5(!v[5] ? null : v[5].value)), + 1635779807: (v) => new IFC4$1.IfcAdvancedBrep(new Handle$5(!v[0] ? null : v[0].value)), + 2603310189: (v) => { + var _a; + return new IFC4$1.IfcAdvancedBrepWithVoids(new Handle$5(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 1674181508: (v) => new IFC4$1.IfcAnnotation(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value)), + 2887950389: (v) => { + var _a; + return new IFC4$1.IfcBSplineSurface(new IFC4$1.IfcInteger(!v[0] ? null : v[0].value), new IFC4$1.IfcInteger(!v[1] ? null : v[1].value), (_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new Handle$5(p2.value) : null)) || []), v[3], new IFC4$1.IfcLogical(!v[4] ? null : v[4].value), new IFC4$1.IfcLogical(!v[5] ? null : v[5].value), new IFC4$1.IfcLogical(!v[6] ? null : v[6].value)); + }, + 167062518: (v) => { + var _a, _b, _c, _d, _e; + return new IFC4$1.IfcBSplineSurfaceWithKnots(new IFC4$1.IfcInteger(!v[0] ? null : v[0].value), new IFC4$1.IfcInteger(!v[1] ? null : v[1].value), (_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new Handle$5(p2.value) : null)) || []), v[3], new IFC4$1.IfcLogical(!v[4] ? null : v[4].value), new IFC4$1.IfcLogical(!v[5] ? null : v[5].value), new IFC4$1.IfcLogical(!v[6] ? null : v[6].value), ((_b = v[7]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4$1.IfcInteger(p.value) : null)) || [], ((_c = v[8]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? new IFC4$1.IfcInteger(p.value) : null)) || [], ((_d = v[9]) == null ? void 0 : _d.map((p) => (p == null ? void 0 : p.value) ? new IFC4$1.IfcParameterValue(p.value) : null)) || [], ((_e = v[10]) == null ? void 0 : _e.map((p) => (p == null ? void 0 : p.value) ? new IFC4$1.IfcParameterValue(p.value) : null)) || [], v[11]); + }, + 1334484129: (v) => new IFC4$1.IfcBlock(new Handle$5(!v[0] ? null : v[0].value), new IFC4$1.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), new IFC4$1.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value), new IFC4$1.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value)), + 3649129432: (v) => new IFC4$1.IfcBooleanClippingResult(v[0], new Handle$5(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value)), + 1260505505: (_) => new IFC4$1.IfcBoundedCurve(), + 4031249490: (v) => new IFC4$1.IfcBuilding(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), v[8], !v[9] ? null : new IFC4$1.IfcLengthMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4$1.IfcLengthMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new Handle$5(!v[11] ? null : v[11].value)), + 1950629157: (v) => { + var _a, _b; + return new IFC4$1.IfcBuildingElementType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value)); + }, + 3124254112: (v) => new IFC4$1.IfcBuildingStorey(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), v[8], !v[9] ? null : new IFC4$1.IfcLengthMeasure(!v[9] ? null : v[9].value)), + 2197970202: (v) => { + var _a, _b; + return new IFC4$1.IfcChimneyType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 2937912522: (v) => new IFC4$1.IfcCircleHollowProfileDef(v[0], !v[1] ? null : new IFC4$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value), new IFC4$1.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC4$1.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value)), + 3893394355: (v) => { + var _a, _b; + return new IFC4$1.IfcCivilElementType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value)); + }, + 300633059: (v) => { + var _a, _b; + return new IFC4$1.IfcColumnType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 3875453745: (v) => { + var _a; + return new IFC4$1.IfcComplexPropertyTemplate(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), v[5], !v[6] ? null : ((_a = v[6]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 3732776249: (v) => { + var _a; + return new IFC4$1.IfcCompositeCurve(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new IFC4$1.IfcLogical(!v[1] ? null : v[1].value)); + }, + 15328376: (v) => { + var _a; + return new IFC4$1.IfcCompositeCurveOnSurface(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new IFC4$1.IfcLogical(!v[1] ? null : v[1].value)); + }, + 2510884976: (v) => new IFC4$1.IfcConic(new Handle$5(!v[0] ? null : v[0].value)), + 2185764099: (v) => { + var _a, _b; + return new IFC4$1.IfcConstructionEquipmentResourceType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : new IFC4$1.IfcIdentifier(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcText(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : ((_b = v[9]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[10] ? null : new Handle$5(!v[10] ? null : v[10].value), v[11]); + }, + 4105962743: (v) => { + var _a, _b; + return new IFC4$1.IfcConstructionMaterialResourceType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : new IFC4$1.IfcIdentifier(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcText(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : ((_b = v[9]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[10] ? null : new Handle$5(!v[10] ? null : v[10].value), v[11]); + }, + 1525564444: (v) => { + var _a, _b; + return new IFC4$1.IfcConstructionProductResourceType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : new IFC4$1.IfcIdentifier(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcText(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : ((_b = v[9]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[10] ? null : new Handle$5(!v[10] ? null : v[10].value), v[11]); + }, + 2559216714: (v) => { + var _a; + return new IFC4$1.IfcConstructionResource(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4$1.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4$1.IfcText(!v[6] ? null : v[6].value), !v[7] ? null : new Handle$5(!v[7] ? null : v[7].value), !v[8] ? null : ((_a = v[8]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[9] ? null : new Handle$5(!v[9] ? null : v[9].value)); + }, + 3293443760: (v) => new IFC4$1.IfcControl(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4$1.IfcIdentifier(!v[5] ? null : v[5].value)), + 3895139033: (v) => { + var _a, _b; + return new IFC4$1.IfcCostItem(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4$1.IfcIdentifier(!v[5] ? null : v[5].value), v[6], !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[8] ? null : ((_b = v[8]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 1419761937: (v) => new IFC4$1.IfcCostSchedule(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4$1.IfcIdentifier(!v[5] ? null : v[5].value), v[6], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcDateTime(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4$1.IfcDateTime(!v[9] ? null : v[9].value)), + 1916426348: (v) => { + var _a, _b; + return new IFC4$1.IfcCoveringType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 3295246426: (v) => { + var _a; + return new IFC4$1.IfcCrewResource(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4$1.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4$1.IfcText(!v[6] ? null : v[6].value), !v[7] ? null : new Handle$5(!v[7] ? null : v[7].value), !v[8] ? null : ((_a = v[8]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[9] ? null : new Handle$5(!v[9] ? null : v[9].value), v[10]); + }, + 1457835157: (v) => { + var _a, _b; + return new IFC4$1.IfcCurtainWallType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1213902940: (v) => new IFC4$1.IfcCylindricalSurface(new Handle$5(!v[0] ? null : v[0].value), new IFC4$1.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value)), + 3256556792: (v) => { + var _a, _b; + return new IFC4$1.IfcDistributionElementType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value)); + }, + 3849074793: (v) => { + var _a, _b; + return new IFC4$1.IfcDistributionFlowElementType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value)); + }, + 2963535650: (v) => new IFC4$1.IfcDoorLiningProperties(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4$1.IfcNonNegativeLengthMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4$1.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcNonNegativeLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcNonNegativeLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4$1.IfcLengthMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4$1.IfcLengthMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4$1.IfcLengthMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4$1.IfcPositiveLengthMeasure(!v[12] ? null : v[12].value), !v[13] ? null : new IFC4$1.IfcPositiveLengthMeasure(!v[13] ? null : v[13].value), !v[14] ? null : new Handle$5(!v[14] ? null : v[14].value), !v[15] ? null : new IFC4$1.IfcLengthMeasure(!v[15] ? null : v[15].value), !v[16] ? null : new IFC4$1.IfcLengthMeasure(!v[16] ? null : v[16].value)), + 1714330368: (v) => new IFC4$1.IfcDoorPanelProperties(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), v[5], !v[6] ? null : new IFC4$1.IfcNormalisedRatioMeasure(!v[6] ? null : v[6].value), v[7], !v[8] ? null : new Handle$5(!v[8] ? null : v[8].value)), + 2323601079: (v) => { + var _a, _b; + return new IFC4$1.IfcDoorType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9], v[10], !v[11] ? null : new IFC4$1.IfcBoolean(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4$1.IfcLabel(!v[12] ? null : v[12].value)); + }, + 445594917: (v) => new IFC4$1.IfcDraughtingPreDefinedColour(new IFC4$1.IfcLabel(!v[0] ? null : v[0].value)), + 4006246654: (v) => new IFC4$1.IfcDraughtingPreDefinedCurveFont(new IFC4$1.IfcLabel(!v[0] ? null : v[0].value)), + 1758889154: (v) => new IFC4$1.IfcElement(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 4123344466: (v) => new IFC4$1.IfcElementAssembly(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8], v[9]), + 2397081782: (v) => { + var _a, _b; + return new IFC4$1.IfcElementAssemblyType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1623761950: (v) => new IFC4$1.IfcElementComponent(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 2590856083: (v) => { + var _a, _b; + return new IFC4$1.IfcElementComponentType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value)); + }, + 1704287377: (v) => new IFC4$1.IfcEllipse(new Handle$5(!v[0] ? null : v[0].value), new IFC4$1.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), new IFC4$1.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value)), + 2107101300: (v) => { + var _a, _b; + return new IFC4$1.IfcEnergyConversionDeviceType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value)); + }, + 132023988: (v) => { + var _a, _b; + return new IFC4$1.IfcEngineType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 3174744832: (v) => { + var _a, _b; + return new IFC4$1.IfcEvaporativeCoolerType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 3390157468: (v) => { + var _a, _b; + return new IFC4$1.IfcEvaporatorType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 4148101412: (v) => new IFC4$1.IfcEvent(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4$1.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4$1.IfcText(!v[6] ? null : v[6].value), v[7], v[8], !v[9] ? null : new IFC4$1.IfcLabel(!v[9] ? null : v[9].value), !v[10] ? null : new Handle$5(!v[10] ? null : v[10].value)), + 2853485674: (v) => new IFC4$1.IfcExternalSpatialStructureElement(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value)), + 807026263: (v) => new IFC4$1.IfcFacetedBrep(new Handle$5(!v[0] ? null : v[0].value)), + 3737207727: (v) => { + var _a; + return new IFC4$1.IfcFacetedBrepWithVoids(new Handle$5(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 647756555: (v) => new IFC4$1.IfcFastener(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 2489546625: (v) => { + var _a, _b; + return new IFC4$1.IfcFastenerType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 2827207264: (v) => new IFC4$1.IfcFeatureElement(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 2143335405: (v) => new IFC4$1.IfcFeatureElementAddition(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 1287392070: (v) => new IFC4$1.IfcFeatureElementSubtraction(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 3907093117: (v) => { + var _a, _b; + return new IFC4$1.IfcFlowControllerType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value)); + }, + 3198132628: (v) => { + var _a, _b; + return new IFC4$1.IfcFlowFittingType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value)); + }, + 3815607619: (v) => { + var _a, _b; + return new IFC4$1.IfcFlowMeterType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1482959167: (v) => { + var _a, _b; + return new IFC4$1.IfcFlowMovingDeviceType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value)); + }, + 1834744321: (v) => { + var _a, _b; + return new IFC4$1.IfcFlowSegmentType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value)); + }, + 1339347760: (v) => { + var _a, _b; + return new IFC4$1.IfcFlowStorageDeviceType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value)); + }, + 2297155007: (v) => { + var _a, _b; + return new IFC4$1.IfcFlowTerminalType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value)); + }, + 3009222698: (v) => { + var _a, _b; + return new IFC4$1.IfcFlowTreatmentDeviceType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value)); + }, + 1893162501: (v) => { + var _a, _b; + return new IFC4$1.IfcFootingType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 263784265: (v) => new IFC4$1.IfcFurnishingElement(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 1509553395: (v) => new IFC4$1.IfcFurniture(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 3493046030: (v) => new IFC4$1.IfcGeographicElement(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 3009204131: (v) => { + var _a, _b, _c; + return new IFC4$1.IfcGrid(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], ((_b = v[8]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[9] ? null : ((_c = v[9]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], v[10]); + }, + 2706460486: (v) => new IFC4$1.IfcGroup(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value)), + 1251058090: (v) => { + var _a, _b; + return new IFC4$1.IfcHeatExchangerType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1806887404: (v) => { + var _a, _b; + return new IFC4$1.IfcHumidifierType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 2571569899: (v) => { + var _a; + return new IFC4$1.IfcIndexedPolyCurve(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(2, p) : null)) || [], !v[2] ? null : new IFC4$1.IfcBoolean(!v[2] ? null : v[2].value)); + }, + 3946677679: (v) => { + var _a, _b; + return new IFC4$1.IfcInterceptorType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 3113134337: (v) => { + var _a; + return new IFC4$1.IfcIntersectionCurve(new Handle$5(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], v[2]); + }, + 2391368822: (v) => { + var _a; + return new IFC4$1.IfcInventory(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), v[5], !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[8] ? null : new IFC4$1.IfcDate(!v[8] ? null : v[8].value), !v[9] ? null : new Handle$5(!v[9] ? null : v[9].value), !v[10] ? null : new Handle$5(!v[10] ? null : v[10].value)); + }, + 4288270099: (v) => { + var _a, _b; + return new IFC4$1.IfcJunctionBoxType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 3827777499: (v) => { + var _a; + return new IFC4$1.IfcLaborResource(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4$1.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4$1.IfcText(!v[6] ? null : v[6].value), !v[7] ? null : new Handle$5(!v[7] ? null : v[7].value), !v[8] ? null : ((_a = v[8]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[9] ? null : new Handle$5(!v[9] ? null : v[9].value), v[10]); + }, + 1051575348: (v) => { + var _a, _b; + return new IFC4$1.IfcLampType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1161773419: (v) => { + var _a, _b; + return new IFC4$1.IfcLightFixtureType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 377706215: (v) => new IFC4$1.IfcMechanicalFastener(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4$1.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value), v[10]), + 2108223431: (v) => { + var _a, _b; + return new IFC4$1.IfcMechanicalFastenerType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9], !v[10] ? null : new IFC4$1.IfcPositiveLengthMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4$1.IfcPositiveLengthMeasure(!v[11] ? null : v[11].value)); + }, + 1114901282: (v) => { + var _a, _b; + return new IFC4$1.IfcMedicalDeviceType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 3181161470: (v) => { + var _a, _b; + return new IFC4$1.IfcMemberType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 977012517: (v) => { + var _a, _b; + return new IFC4$1.IfcMotorConnectionType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 4143007308: (v) => new IFC4$1.IfcOccupant(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), new Handle$5(!v[5] ? null : v[5].value), v[6]), + 3588315303: (v) => new IFC4$1.IfcOpeningElement(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 3079942009: (v) => new IFC4$1.IfcOpeningStandardCase(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 2837617999: (v) => { + var _a, _b; + return new IFC4$1.IfcOutletType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 2382730787: (v) => new IFC4$1.IfcPerformanceHistory(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4$1.IfcIdentifier(!v[5] ? null : v[5].value), new IFC4$1.IfcLabel(!v[6] ? null : v[6].value), v[7]), + 3566463478: (v) => new IFC4$1.IfcPermeableCoveringProperties(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), v[4], v[5], !v[6] ? null : new IFC4$1.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcPositiveLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new Handle$5(!v[8] ? null : v[8].value)), + 3327091369: (v) => new IFC4$1.IfcPermit(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4$1.IfcIdentifier(!v[5] ? null : v[5].value), v[6], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcText(!v[8] ? null : v[8].value)), + 1158309216: (v) => { + var _a, _b; + return new IFC4$1.IfcPileType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 804291784: (v) => { + var _a, _b; + return new IFC4$1.IfcPipeFittingType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 4231323485: (v) => { + var _a, _b; + return new IFC4$1.IfcPipeSegmentType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 4017108033: (v) => { + var _a, _b; + return new IFC4$1.IfcPlateType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 2839578677: (v) => { + var _a, _b; + return new IFC4$1.IfcPolygonalFaceSet(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4$1.IfcBoolean(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[3] ? null : ((_b = v[3]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4$1.IfcPositiveInteger(p.value) : null)) || []); + }, + 3724593414: (v) => { + var _a; + return new IFC4$1.IfcPolyline(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 3740093272: (v) => new IFC4$1.IfcPort(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value)), + 2744685151: (v) => new IFC4$1.IfcProcedure(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4$1.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4$1.IfcText(!v[6] ? null : v[6].value), v[7]), + 2904328755: (v) => new IFC4$1.IfcProjectOrder(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4$1.IfcIdentifier(!v[5] ? null : v[5].value), v[6], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcText(!v[8] ? null : v[8].value)), + 3651124850: (v) => new IFC4$1.IfcProjectionElement(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 1842657554: (v) => { + var _a, _b; + return new IFC4$1.IfcProtectiveDeviceType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 2250791053: (v) => { + var _a, _b; + return new IFC4$1.IfcPumpType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 2893384427: (v) => { + var _a, _b; + return new IFC4$1.IfcRailingType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 2324767716: (v) => { + var _a, _b; + return new IFC4$1.IfcRampFlightType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1469900589: (v) => { + var _a, _b; + return new IFC4$1.IfcRampType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 683857671: (v) => { + var _a, _b, _c, _d, _e, _f; + return new IFC4$1.IfcRationalBSplineSurfaceWithKnots(new IFC4$1.IfcInteger(!v[0] ? null : v[0].value), new IFC4$1.IfcInteger(!v[1] ? null : v[1].value), (_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new Handle$5(p2.value) : null)) || []), v[3], new IFC4$1.IfcLogical(!v[4] ? null : v[4].value), new IFC4$1.IfcLogical(!v[5] ? null : v[5].value), new IFC4$1.IfcLogical(!v[6] ? null : v[6].value), ((_b = v[7]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4$1.IfcInteger(p.value) : null)) || [], ((_c = v[8]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? new IFC4$1.IfcInteger(p.value) : null)) || [], ((_d = v[9]) == null ? void 0 : _d.map((p) => (p == null ? void 0 : p.value) ? new IFC4$1.IfcParameterValue(p.value) : null)) || [], ((_e = v[10]) == null ? void 0 : _e.map((p) => (p == null ? void 0 : p.value) ? new IFC4$1.IfcParameterValue(p.value) : null)) || [], v[11], (_f = v[12]) == null ? void 0 : _f.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new IFC4$1.IfcReal(p2.value) : null)) || [])); + }, + 3027567501: (v) => new IFC4$1.IfcReinforcingElement(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value)), + 964333572: (v) => { + var _a, _b; + return new IFC4$1.IfcReinforcingElementType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value)); + }, + 2320036040: (v) => new IFC4$1.IfcReinforcingMesh(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4$1.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4$1.IfcPositiveLengthMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4$1.IfcPositiveLengthMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4$1.IfcPositiveLengthMeasure(!v[12] ? null : v[12].value), !v[13] ? null : new IFC4$1.IfcAreaMeasure(!v[13] ? null : v[13].value), !v[14] ? null : new IFC4$1.IfcAreaMeasure(!v[14] ? null : v[14].value), !v[15] ? null : new IFC4$1.IfcPositiveLengthMeasure(!v[15] ? null : v[15].value), !v[16] ? null : new IFC4$1.IfcPositiveLengthMeasure(!v[16] ? null : v[16].value), v[17]), + 2310774935: (v) => { + var _a, _b, _c; + return new IFC4$1.IfcReinforcingMeshType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9], !v[10] ? null : new IFC4$1.IfcPositiveLengthMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4$1.IfcPositiveLengthMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4$1.IfcPositiveLengthMeasure(!v[12] ? null : v[12].value), !v[13] ? null : new IFC4$1.IfcPositiveLengthMeasure(!v[13] ? null : v[13].value), !v[14] ? null : new IFC4$1.IfcAreaMeasure(!v[14] ? null : v[14].value), !v[15] ? null : new IFC4$1.IfcAreaMeasure(!v[15] ? null : v[15].value), !v[16] ? null : new IFC4$1.IfcPositiveLengthMeasure(!v[16] ? null : v[16].value), !v[17] ? null : new IFC4$1.IfcPositiveLengthMeasure(!v[17] ? null : v[17].value), !v[18] ? null : new IFC4$1.IfcLabel(!v[18] ? null : v[18].value), !v[19] ? null : ((_c = v[19]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(2, p) : null)) || []); + }, + 160246688: (v) => { + var _a; + return new IFC4$1.IfcRelAggregates(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 2781568857: (v) => { + var _a, _b; + return new IFC4$1.IfcRoofType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1768891740: (v) => { + var _a, _b; + return new IFC4$1.IfcSanitaryTerminalType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 2157484638: (v) => { + var _a; + return new IFC4$1.IfcSeamCurve(new Handle$5(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], v[2]); + }, + 4074543187: (v) => { + var _a, _b; + return new IFC4$1.IfcShadingDeviceType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 4097777520: (v) => new IFC4$1.IfcSite(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), v[8], !v[9] ? null : new IFC4$1.IfcCompoundPlaneAngleMeasure(v[9].map((x) => x.value)), !v[10] ? null : new IFC4$1.IfcCompoundPlaneAngleMeasure(v[10].map((x) => x.value)), !v[11] ? null : new IFC4$1.IfcLengthMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4$1.IfcLabel(!v[12] ? null : v[12].value), !v[13] ? null : new Handle$5(!v[13] ? null : v[13].value)), + 2533589738: (v) => { + var _a, _b; + return new IFC4$1.IfcSlabType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1072016465: (v) => { + var _a, _b; + return new IFC4$1.IfcSolarDeviceType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 3856911033: (v) => new IFC4$1.IfcSpace(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), v[8], v[9], !v[10] ? null : new IFC4$1.IfcLengthMeasure(!v[10] ? null : v[10].value)), + 1305183839: (v) => { + var _a, _b; + return new IFC4$1.IfcSpaceHeaterType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 3812236995: (v) => { + var _a, _b; + return new IFC4$1.IfcSpaceType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9], !v[10] ? null : new IFC4$1.IfcLabel(!v[10] ? null : v[10].value)); + }, + 3112655638: (v) => { + var _a, _b; + return new IFC4$1.IfcStackTerminalType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1039846685: (v) => { + var _a, _b; + return new IFC4$1.IfcStairFlightType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 338393293: (v) => { + var _a, _b; + return new IFC4$1.IfcStairType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 682877961: (v) => new IFC4$1.IfcStructuralAction(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), new Handle$5(!v[7] ? null : v[7].value), v[8], !v[9] ? null : new IFC4$1.IfcBoolean(!v[9] ? null : v[9].value)), + 1179482911: (v) => new IFC4$1.IfcStructuralConnection(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new Handle$5(!v[7] ? null : v[7].value)), + 1004757350: (v) => new IFC4$1.IfcStructuralCurveAction(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), new Handle$5(!v[7] ? null : v[7].value), v[8], !v[9] ? null : new IFC4$1.IfcBoolean(!v[9] ? null : v[9].value), v[10], v[11]), + 4243806635: (v) => new IFC4$1.IfcStructuralCurveConnection(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new Handle$5(!v[7] ? null : v[7].value), new Handle$5(!v[8] ? null : v[8].value)), + 214636428: (v) => new IFC4$1.IfcStructuralCurveMember(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), v[7], new Handle$5(!v[8] ? null : v[8].value)), + 2445595289: (v) => new IFC4$1.IfcStructuralCurveMemberVarying(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), v[7], new Handle$5(!v[8] ? null : v[8].value)), + 2757150158: (v) => new IFC4$1.IfcStructuralCurveReaction(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), new Handle$5(!v[7] ? null : v[7].value), v[8], v[9]), + 1807405624: (v) => new IFC4$1.IfcStructuralLinearAction(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), new Handle$5(!v[7] ? null : v[7].value), v[8], !v[9] ? null : new IFC4$1.IfcBoolean(!v[9] ? null : v[9].value), v[10], v[11]), + 1252848954: (v) => new IFC4$1.IfcStructuralLoadGroup(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), v[5], v[6], v[7], !v[8] ? null : new IFC4$1.IfcRatioMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4$1.IfcLabel(!v[9] ? null : v[9].value)), + 2082059205: (v) => new IFC4$1.IfcStructuralPointAction(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), new Handle$5(!v[7] ? null : v[7].value), v[8], !v[9] ? null : new IFC4$1.IfcBoolean(!v[9] ? null : v[9].value)), + 734778138: (v) => new IFC4$1.IfcStructuralPointConnection(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new Handle$5(!v[7] ? null : v[7].value), !v[8] ? null : new Handle$5(!v[8] ? null : v[8].value)), + 1235345126: (v) => new IFC4$1.IfcStructuralPointReaction(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), new Handle$5(!v[7] ? null : v[7].value), v[8]), + 2986769608: (v) => new IFC4$1.IfcStructuralResultGroup(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), v[5], !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), new IFC4$1.IfcBoolean(!v[7] ? null : v[7].value)), + 3657597509: (v) => new IFC4$1.IfcStructuralSurfaceAction(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), new Handle$5(!v[7] ? null : v[7].value), v[8], !v[9] ? null : new IFC4$1.IfcBoolean(!v[9] ? null : v[9].value), v[10], v[11]), + 1975003073: (v) => new IFC4$1.IfcStructuralSurfaceConnection(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new Handle$5(!v[7] ? null : v[7].value)), + 148013059: (v) => { + var _a; + return new IFC4$1.IfcSubContractResource(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4$1.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4$1.IfcText(!v[6] ? null : v[6].value), !v[7] ? null : new Handle$5(!v[7] ? null : v[7].value), !v[8] ? null : ((_a = v[8]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[9] ? null : new Handle$5(!v[9] ? null : v[9].value), v[10]); + }, + 3101698114: (v) => new IFC4$1.IfcSurfaceFeature(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 2315554128: (v) => { + var _a, _b; + return new IFC4$1.IfcSwitchingDeviceType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 2254336722: (v) => new IFC4$1.IfcSystem(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value)), + 413509423: (v) => new IFC4$1.IfcSystemFurnitureElement(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 5716631: (v) => { + var _a, _b; + return new IFC4$1.IfcTankType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 3824725483: (v) => new IFC4$1.IfcTendon(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9], !v[10] ? null : new IFC4$1.IfcPositiveLengthMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4$1.IfcAreaMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4$1.IfcForceMeasure(!v[12] ? null : v[12].value), !v[13] ? null : new IFC4$1.IfcPressureMeasure(!v[13] ? null : v[13].value), !v[14] ? null : new IFC4$1.IfcNormalisedRatioMeasure(!v[14] ? null : v[14].value), !v[15] ? null : new IFC4$1.IfcPositiveLengthMeasure(!v[15] ? null : v[15].value), !v[16] ? null : new IFC4$1.IfcPositiveLengthMeasure(!v[16] ? null : v[16].value)), + 2347447852: (v) => new IFC4$1.IfcTendonAnchor(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]), + 3081323446: (v) => { + var _a, _b; + return new IFC4$1.IfcTendonAnchorType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 2415094496: (v) => { + var _a, _b; + return new IFC4$1.IfcTendonType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9], !v[10] ? null : new IFC4$1.IfcPositiveLengthMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4$1.IfcAreaMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4$1.IfcPositiveLengthMeasure(!v[12] ? null : v[12].value)); + }, + 1692211062: (v) => { + var _a, _b; + return new IFC4$1.IfcTransformerType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1620046519: (v) => new IFC4$1.IfcTransportElement(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 3593883385: (v) => { + var _a, _b; + return new IFC4$1.IfcTrimmedCurve(new Handle$5(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], ((_b = v[2]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new IFC4$1.IfcBoolean(!v[3] ? null : v[3].value), v[4]); + }, + 1600972822: (v) => { + var _a, _b; + return new IFC4$1.IfcTubeBundleType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1911125066: (v) => { + var _a, _b; + return new IFC4$1.IfcUnitaryEquipmentType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 728799441: (v) => { + var _a, _b; + return new IFC4$1.IfcValveType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 2391383451: (v) => new IFC4$1.IfcVibrationIsolator(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 3313531582: (v) => { + var _a, _b; + return new IFC4$1.IfcVibrationIsolatorType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 2769231204: (v) => new IFC4$1.IfcVirtualElement(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 926996030: (v) => new IFC4$1.IfcVoidingFeature(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 1898987631: (v) => { + var _a, _b; + return new IFC4$1.IfcWallType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1133259667: (v) => { + var _a, _b; + return new IFC4$1.IfcWasteTerminalType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 4009809668: (v) => { + var _a, _b; + return new IFC4$1.IfcWindowType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9], v[10], !v[11] ? null : new IFC4$1.IfcBoolean(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4$1.IfcLabel(!v[12] ? null : v[12].value)); + }, + 4088093105: (v) => { + var _a, _b; + return new IFC4$1.IfcWorkCalendar(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4$1.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : ((_a = v[6]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : ((_b = v[7]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], v[8]); + }, + 1028945134: (v) => { + var _a; + return new IFC4$1.IfcWorkControl(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4$1.IfcIdentifier(!v[5] ? null : v[5].value), new IFC4$1.IfcDateTime(!v[6] ? null : v[6].value), !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4$1.IfcDuration(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4$1.IfcDuration(!v[10] ? null : v[10].value), new IFC4$1.IfcDateTime(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4$1.IfcDateTime(!v[12] ? null : v[12].value)); + }, + 4218914973: (v) => { + var _a; + return new IFC4$1.IfcWorkPlan(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4$1.IfcIdentifier(!v[5] ? null : v[5].value), new IFC4$1.IfcDateTime(!v[6] ? null : v[6].value), !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4$1.IfcDuration(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4$1.IfcDuration(!v[10] ? null : v[10].value), new IFC4$1.IfcDateTime(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4$1.IfcDateTime(!v[12] ? null : v[12].value), v[13]); + }, + 3342526732: (v) => { + var _a; + return new IFC4$1.IfcWorkSchedule(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4$1.IfcIdentifier(!v[5] ? null : v[5].value), new IFC4$1.IfcDateTime(!v[6] ? null : v[6].value), !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4$1.IfcDuration(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4$1.IfcDuration(!v[10] ? null : v[10].value), new IFC4$1.IfcDateTime(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4$1.IfcDateTime(!v[12] ? null : v[12].value), v[13]); + }, + 1033361043: (v) => new IFC4$1.IfcZone(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4$1.IfcLabel(!v[5] ? null : v[5].value)), + 3821786052: (v) => new IFC4$1.IfcActionRequest(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4$1.IfcIdentifier(!v[5] ? null : v[5].value), v[6], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcText(!v[8] ? null : v[8].value)), + 1411407467: (v) => { + var _a, _b; + return new IFC4$1.IfcAirTerminalBoxType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 3352864051: (v) => { + var _a, _b; + return new IFC4$1.IfcAirTerminalType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1871374353: (v) => { + var _a, _b; + return new IFC4$1.IfcAirToAirHeatRecoveryType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 3460190687: (v) => new IFC4$1.IfcAsset(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4$1.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new Handle$5(!v[7] ? null : v[7].value), !v[8] ? null : new Handle$5(!v[8] ? null : v[8].value), !v[9] ? null : new Handle$5(!v[9] ? null : v[9].value), !v[10] ? null : new Handle$5(!v[10] ? null : v[10].value), !v[11] ? null : new Handle$5(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4$1.IfcDate(!v[12] ? null : v[12].value), !v[13] ? null : new Handle$5(!v[13] ? null : v[13].value)), + 1532957894: (v) => { + var _a, _b; + return new IFC4$1.IfcAudioVisualApplianceType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1967976161: (v) => { + var _a; + return new IFC4$1.IfcBSplineCurve(new IFC4$1.IfcInteger(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], v[2], new IFC4$1.IfcLogical(!v[3] ? null : v[3].value), new IFC4$1.IfcLogical(!v[4] ? null : v[4].value)); + }, + 2461110595: (v) => { + var _a, _b, _c; + return new IFC4$1.IfcBSplineCurveWithKnots(new IFC4$1.IfcInteger(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], v[2], new IFC4$1.IfcLogical(!v[3] ? null : v[3].value), new IFC4$1.IfcLogical(!v[4] ? null : v[4].value), ((_b = v[5]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4$1.IfcInteger(p.value) : null)) || [], ((_c = v[6]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? new IFC4$1.IfcParameterValue(p.value) : null)) || [], v[7]); + }, + 819618141: (v) => { + var _a, _b; + return new IFC4$1.IfcBeamType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 231477066: (v) => { + var _a, _b; + return new IFC4$1.IfcBoilerType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1136057603: (v) => { + var _a; + return new IFC4$1.IfcBoundaryCurve(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new IFC4$1.IfcLogical(!v[1] ? null : v[1].value)); + }, + 3299480353: (v) => new IFC4$1.IfcBuildingElement(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 2979338954: (v) => new IFC4$1.IfcBuildingElementPart(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 39481116: (v) => { + var _a, _b; + return new IFC4$1.IfcBuildingElementPartType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1095909175: (v) => new IFC4$1.IfcBuildingElementProxy(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 1909888760: (v) => { + var _a, _b; + return new IFC4$1.IfcBuildingElementProxyType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1177604601: (v) => new IFC4$1.IfcBuildingSystem(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), v[5], !v[6] ? null : new IFC4$1.IfcLabel(!v[6] ? null : v[6].value)), + 2188180465: (v) => { + var _a, _b; + return new IFC4$1.IfcBurnerType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 395041908: (v) => { + var _a, _b; + return new IFC4$1.IfcCableCarrierFittingType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 3293546465: (v) => { + var _a, _b; + return new IFC4$1.IfcCableCarrierSegmentType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 2674252688: (v) => { + var _a, _b; + return new IFC4$1.IfcCableFittingType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1285652485: (v) => { + var _a, _b; + return new IFC4$1.IfcCableSegmentType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 2951183804: (v) => { + var _a, _b; + return new IFC4$1.IfcChillerType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 3296154744: (v) => new IFC4$1.IfcChimney(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 2611217952: (v) => new IFC4$1.IfcCircle(new Handle$5(!v[0] ? null : v[0].value), new IFC4$1.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value)), + 1677625105: (v) => new IFC4$1.IfcCivilElement(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 2301859152: (v) => { + var _a, _b; + return new IFC4$1.IfcCoilType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 843113511: (v) => new IFC4$1.IfcColumn(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 905975707: (v) => new IFC4$1.IfcColumnStandardCase(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 400855858: (v) => { + var _a, _b; + return new IFC4$1.IfcCommunicationsApplianceType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 3850581409: (v) => { + var _a, _b; + return new IFC4$1.IfcCompressorType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 2816379211: (v) => { + var _a, _b; + return new IFC4$1.IfcCondenserType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 3898045240: (v) => { + var _a; + return new IFC4$1.IfcConstructionEquipmentResource(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4$1.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4$1.IfcText(!v[6] ? null : v[6].value), !v[7] ? null : new Handle$5(!v[7] ? null : v[7].value), !v[8] ? null : ((_a = v[8]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[9] ? null : new Handle$5(!v[9] ? null : v[9].value), v[10]); + }, + 1060000209: (v) => { + var _a; + return new IFC4$1.IfcConstructionMaterialResource(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4$1.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4$1.IfcText(!v[6] ? null : v[6].value), !v[7] ? null : new Handle$5(!v[7] ? null : v[7].value), !v[8] ? null : ((_a = v[8]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[9] ? null : new Handle$5(!v[9] ? null : v[9].value), v[10]); + }, + 488727124: (v) => { + var _a; + return new IFC4$1.IfcConstructionProductResource(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4$1.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4$1.IfcText(!v[6] ? null : v[6].value), !v[7] ? null : new Handle$5(!v[7] ? null : v[7].value), !v[8] ? null : ((_a = v[8]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[9] ? null : new Handle$5(!v[9] ? null : v[9].value), v[10]); + }, + 335055490: (v) => { + var _a, _b; + return new IFC4$1.IfcCooledBeamType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 2954562838: (v) => { + var _a, _b; + return new IFC4$1.IfcCoolingTowerType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1973544240: (v) => new IFC4$1.IfcCovering(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 3495092785: (v) => new IFC4$1.IfcCurtainWall(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 3961806047: (v) => { + var _a, _b; + return new IFC4$1.IfcDamperType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1335981549: (v) => new IFC4$1.IfcDiscreteAccessory(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 2635815018: (v) => { + var _a, _b; + return new IFC4$1.IfcDiscreteAccessoryType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1599208980: (v) => { + var _a, _b; + return new IFC4$1.IfcDistributionChamberElementType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 2063403501: (v) => { + var _a, _b; + return new IFC4$1.IfcDistributionControlElementType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value)); + }, + 1945004755: (v) => new IFC4$1.IfcDistributionElement(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 3040386961: (v) => new IFC4$1.IfcDistributionFlowElement(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 3041715199: (v) => new IFC4$1.IfcDistributionPort(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), v[7], v[8], v[9]), + 3205830791: (v) => new IFC4$1.IfcDistributionSystem(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4$1.IfcLabel(!v[5] ? null : v[5].value), v[6]), + 395920057: (v) => new IFC4$1.IfcDoor(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4$1.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value), v[10], v[11], !v[12] ? null : new IFC4$1.IfcLabel(!v[12] ? null : v[12].value)), + 3242481149: (v) => new IFC4$1.IfcDoorStandardCase(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4$1.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value), v[10], v[11], !v[12] ? null : new IFC4$1.IfcLabel(!v[12] ? null : v[12].value)), + 869906466: (v) => { + var _a, _b; + return new IFC4$1.IfcDuctFittingType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 3760055223: (v) => { + var _a, _b; + return new IFC4$1.IfcDuctSegmentType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 2030761528: (v) => { + var _a, _b; + return new IFC4$1.IfcDuctSilencerType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 663422040: (v) => { + var _a, _b; + return new IFC4$1.IfcElectricApplianceType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 2417008758: (v) => { + var _a, _b; + return new IFC4$1.IfcElectricDistributionBoardType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 3277789161: (v) => { + var _a, _b; + return new IFC4$1.IfcElectricFlowStorageDeviceType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1534661035: (v) => { + var _a, _b; + return new IFC4$1.IfcElectricGeneratorType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1217240411: (v) => { + var _a, _b; + return new IFC4$1.IfcElectricMotorType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 712377611: (v) => { + var _a, _b; + return new IFC4$1.IfcElectricTimeControlType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1658829314: (v) => new IFC4$1.IfcEnergyConversionDevice(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 2814081492: (v) => new IFC4$1.IfcEngine(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 3747195512: (v) => new IFC4$1.IfcEvaporativeCooler(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 484807127: (v) => new IFC4$1.IfcEvaporator(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 1209101575: (v) => new IFC4$1.IfcExternalSpatialElement(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), v[8]), + 346874300: (v) => { + var _a, _b; + return new IFC4$1.IfcFanType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1810631287: (v) => { + var _a, _b; + return new IFC4$1.IfcFilterType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 4222183408: (v) => { + var _a, _b; + return new IFC4$1.IfcFireSuppressionTerminalType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 2058353004: (v) => new IFC4$1.IfcFlowController(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 4278956645: (v) => new IFC4$1.IfcFlowFitting(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 4037862832: (v) => { + var _a, _b; + return new IFC4$1.IfcFlowInstrumentType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 2188021234: (v) => new IFC4$1.IfcFlowMeter(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 3132237377: (v) => new IFC4$1.IfcFlowMovingDevice(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 987401354: (v) => new IFC4$1.IfcFlowSegment(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 707683696: (v) => new IFC4$1.IfcFlowStorageDevice(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 2223149337: (v) => new IFC4$1.IfcFlowTerminal(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 3508470533: (v) => new IFC4$1.IfcFlowTreatmentDevice(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 900683007: (v) => new IFC4$1.IfcFooting(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 3319311131: (v) => new IFC4$1.IfcHeatExchanger(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 2068733104: (v) => new IFC4$1.IfcHumidifier(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 4175244083: (v) => new IFC4$1.IfcInterceptor(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 2176052936: (v) => new IFC4$1.IfcJunctionBox(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 76236018: (v) => new IFC4$1.IfcLamp(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 629592764: (v) => new IFC4$1.IfcLightFixture(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 1437502449: (v) => new IFC4$1.IfcMedicalDevice(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 1073191201: (v) => new IFC4$1.IfcMember(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 1911478936: (v) => new IFC4$1.IfcMemberStandardCase(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 2474470126: (v) => new IFC4$1.IfcMotorConnection(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 144952367: (v) => { + var _a; + return new IFC4$1.IfcOuterBoundaryCurve(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new IFC4$1.IfcLogical(!v[1] ? null : v[1].value)); + }, + 3694346114: (v) => new IFC4$1.IfcOutlet(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 1687234759: (v) => new IFC4$1.IfcPile(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8], v[9]), + 310824031: (v) => new IFC4$1.IfcPipeFitting(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 3612865200: (v) => new IFC4$1.IfcPipeSegment(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 3171933400: (v) => new IFC4$1.IfcPlate(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 1156407060: (v) => new IFC4$1.IfcPlateStandardCase(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 738039164: (v) => new IFC4$1.IfcProtectiveDevice(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 655969474: (v) => { + var _a, _b; + return new IFC4$1.IfcProtectiveDeviceTrippingUnitType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 90941305: (v) => new IFC4$1.IfcPump(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 2262370178: (v) => new IFC4$1.IfcRailing(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 3024970846: (v) => new IFC4$1.IfcRamp(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 3283111854: (v) => new IFC4$1.IfcRampFlight(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 1232101972: (v) => { + var _a, _b, _c, _d; + return new IFC4$1.IfcRationalBSplineCurveWithKnots(new IFC4$1.IfcInteger(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], v[2], new IFC4$1.IfcLogical(!v[3] ? null : v[3].value), new IFC4$1.IfcLogical(!v[4] ? null : v[4].value), ((_b = v[5]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4$1.IfcInteger(p.value) : null)) || [], ((_c = v[6]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? new IFC4$1.IfcParameterValue(p.value) : null)) || [], v[7], ((_d = v[8]) == null ? void 0 : _d.map((p) => (p == null ? void 0 : p.value) ? new IFC4$1.IfcReal(p.value) : null)) || []); + }, + 979691226: (v) => new IFC4$1.IfcReinforcingBar(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4$1.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4$1.IfcAreaMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4$1.IfcPositiveLengthMeasure(!v[11] ? null : v[11].value), v[12], v[13]), + 2572171363: (v) => { + var _a, _b, _c; + return new IFC4$1.IfcReinforcingBarType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9], !v[10] ? null : new IFC4$1.IfcPositiveLengthMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4$1.IfcAreaMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4$1.IfcPositiveLengthMeasure(!v[12] ? null : v[12].value), v[13], !v[14] ? null : new IFC4$1.IfcLabel(!v[14] ? null : v[14].value), !v[15] ? null : ((_c = v[15]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(2, p) : null)) || []); + }, + 2016517767: (v) => new IFC4$1.IfcRoof(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 3053780830: (v) => new IFC4$1.IfcSanitaryTerminal(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 1783015770: (v) => { + var _a, _b; + return new IFC4$1.IfcSensorType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1329646415: (v) => new IFC4$1.IfcShadingDevice(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 1529196076: (v) => new IFC4$1.IfcSlab(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 3127900445: (v) => new IFC4$1.IfcSlabElementedCase(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 3027962421: (v) => new IFC4$1.IfcSlabStandardCase(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 3420628829: (v) => new IFC4$1.IfcSolarDevice(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 1999602285: (v) => new IFC4$1.IfcSpaceHeater(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 1404847402: (v) => new IFC4$1.IfcStackTerminal(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 331165859: (v) => new IFC4$1.IfcStair(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 4252922144: (v) => new IFC4$1.IfcStairFlight(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcInteger(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4$1.IfcInteger(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4$1.IfcPositiveLengthMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4$1.IfcPositiveLengthMeasure(!v[11] ? null : v[11].value), v[12]), + 2515109513: (v) => { + var _a, _b; + return new IFC4$1.IfcStructuralAnalysisModel(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), v[5], !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[8] ? null : ((_b = v[8]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[9] ? null : new Handle$5(!v[9] ? null : v[9].value)); + }, + 385403989: (v) => { + var _a; + return new IFC4$1.IfcStructuralLoadCase(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), v[5], v[6], v[7], !v[8] ? null : new IFC4$1.IfcRatioMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4$1.IfcLabel(!v[9] ? null : v[9].value), !v[10] ? null : ((_a = v[10]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4$1.IfcRatioMeasure(p.value) : null)) || []); + }, + 1621171031: (v) => new IFC4$1.IfcStructuralPlanarAction(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), new Handle$5(!v[7] ? null : v[7].value), v[8], !v[9] ? null : new IFC4$1.IfcBoolean(!v[9] ? null : v[9].value), v[10], v[11]), + 1162798199: (v) => new IFC4$1.IfcSwitchingDevice(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 812556717: (v) => new IFC4$1.IfcTank(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 3825984169: (v) => new IFC4$1.IfcTransformer(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 3026737570: (v) => new IFC4$1.IfcTubeBundle(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 3179687236: (v) => { + var _a, _b; + return new IFC4$1.IfcUnitaryControlElementType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 4292641817: (v) => new IFC4$1.IfcUnitaryEquipment(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 4207607924: (v) => new IFC4$1.IfcValve(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 2391406946: (v) => new IFC4$1.IfcWall(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 4156078855: (v) => new IFC4$1.IfcWallElementedCase(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 3512223829: (v) => new IFC4$1.IfcWallStandardCase(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 4237592921: (v) => new IFC4$1.IfcWasteTerminal(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 3304561284: (v) => new IFC4$1.IfcWindow(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4$1.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value), v[10], v[11], !v[12] ? null : new IFC4$1.IfcLabel(!v[12] ? null : v[12].value)), + 486154966: (v) => new IFC4$1.IfcWindowStandardCase(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4$1.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value), v[10], v[11], !v[12] ? null : new IFC4$1.IfcLabel(!v[12] ? null : v[12].value)), + 2874132201: (v) => { + var _a, _b; + return new IFC4$1.IfcActuatorType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1634111441: (v) => new IFC4$1.IfcAirTerminal(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 177149247: (v) => new IFC4$1.IfcAirTerminalBox(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 2056796094: (v) => new IFC4$1.IfcAirToAirHeatRecovery(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 3001207471: (v) => { + var _a, _b; + return new IFC4$1.IfcAlarmType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 277319702: (v) => new IFC4$1.IfcAudioVisualAppliance(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 753842376: (v) => new IFC4$1.IfcBeam(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 2906023776: (v) => new IFC4$1.IfcBeamStandardCase(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 32344328: (v) => new IFC4$1.IfcBoiler(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 2938176219: (v) => new IFC4$1.IfcBurner(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 635142910: (v) => new IFC4$1.IfcCableCarrierFitting(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 3758799889: (v) => new IFC4$1.IfcCableCarrierSegment(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 1051757585: (v) => new IFC4$1.IfcCableFitting(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 4217484030: (v) => new IFC4$1.IfcCableSegment(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 3902619387: (v) => new IFC4$1.IfcChiller(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 639361253: (v) => new IFC4$1.IfcCoil(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 3221913625: (v) => new IFC4$1.IfcCommunicationsAppliance(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 3571504051: (v) => new IFC4$1.IfcCompressor(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 2272882330: (v) => new IFC4$1.IfcCondenser(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 578613899: (v) => { + var _a, _b; + return new IFC4$1.IfcControllerType(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 4136498852: (v) => new IFC4$1.IfcCooledBeam(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 3640358203: (v) => new IFC4$1.IfcCoolingTower(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 4074379575: (v) => new IFC4$1.IfcDamper(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 1052013943: (v) => new IFC4$1.IfcDistributionChamberElement(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 562808652: (v) => new IFC4$1.IfcDistributionCircuit(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4$1.IfcLabel(!v[5] ? null : v[5].value), v[6]), + 1062813311: (v) => new IFC4$1.IfcDistributionControlElement(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 342316401: (v) => new IFC4$1.IfcDuctFitting(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 3518393246: (v) => new IFC4$1.IfcDuctSegment(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 1360408905: (v) => new IFC4$1.IfcDuctSilencer(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 1904799276: (v) => new IFC4$1.IfcElectricAppliance(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 862014818: (v) => new IFC4$1.IfcElectricDistributionBoard(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 3310460725: (v) => new IFC4$1.IfcElectricFlowStorageDevice(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 264262732: (v) => new IFC4$1.IfcElectricGenerator(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 402227799: (v) => new IFC4$1.IfcElectricMotor(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 1003880860: (v) => new IFC4$1.IfcElectricTimeControl(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 3415622556: (v) => new IFC4$1.IfcFan(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 819412036: (v) => new IFC4$1.IfcFilter(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 1426591983: (v) => new IFC4$1.IfcFireSuppressionTerminal(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 182646315: (v) => new IFC4$1.IfcFlowInstrument(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 2295281155: (v) => new IFC4$1.IfcProtectiveDeviceTrippingUnit(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 4086658281: (v) => new IFC4$1.IfcSensor(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 630975310: (v) => new IFC4$1.IfcUnitaryControlElement(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 4288193352: (v) => new IFC4$1.IfcActuator(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 3087945054: (v) => new IFC4$1.IfcAlarm(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 25142252: (v) => new IFC4$1.IfcController(new IFC4$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]) +}; +InheritanceDef[2] = { + 618182010: [IFCTELECOMADDRESS, IFCPOSTALADDRESS], + 411424972: [IFCCOSTVALUE], + 4037036970: [IFCBOUNDARYNODECONDITIONWARPING, IFCBOUNDARYNODECONDITION, IFCBOUNDARYFACECONDITION, IFCBOUNDARYEDGECONDITION], + 1387855156: [IFCBOUNDARYNODECONDITIONWARPING], + 2859738748: [IFCCONNECTIONCURVEGEOMETRY, IFCCONNECTIONVOLUMEGEOMETRY, IFCCONNECTIONSURFACEGEOMETRY, IFCCONNECTIONPOINTECCENTRICITY, IFCCONNECTIONPOINTGEOMETRY], + 2614616156: [IFCCONNECTIONPOINTECCENTRICITY], + 1959218052: [IFCOBJECTIVE, IFCMETRIC], + 1785450214: [IFCMAPCONVERSION], + 1466758467: [IFCPROJECTEDCRS], + 4294318154: [IFCDOCUMENTINFORMATION, IFCCLASSIFICATION, IFCLIBRARYINFORMATION], + 3200245327: [IFCDOCUMENTREFERENCE, IFCCLASSIFICATIONREFERENCE, IFCLIBRARYREFERENCE, IFCEXTERNALLYDEFINEDTEXTFONT, IFCEXTERNALLYDEFINEDSURFACESTYLE, IFCEXTERNALLYDEFINEDHATCHSTYLE], + 760658860: [IFCMATERIALCONSTITUENTSET, IFCMATERIALCONSTITUENT, IFCMATERIAL, IFCMATERIALPROFILESET, IFCMATERIALPROFILEWITHOFFSETS, IFCMATERIALPROFILE, IFCMATERIALLAYERSET, IFCMATERIALLAYERWITHOFFSETS, IFCMATERIALLAYER], + 248100487: [IFCMATERIALLAYERWITHOFFSETS], + 2235152071: [IFCMATERIALPROFILEWITHOFFSETS], + 1507914824: [IFCMATERIALPROFILESETUSAGETAPERING, IFCMATERIALPROFILESETUSAGE, IFCMATERIALLAYERSETUSAGE], + 1918398963: [IFCCONVERSIONBASEDUNITWITHOFFSET, IFCCONVERSIONBASEDUNIT, IFCCONTEXTDEPENDENTUNIT, IFCSIUNIT], + 3701648758: [IFCLOCALPLACEMENT, IFCGRIDPLACEMENT], + 2483315170: [IFCPHYSICALCOMPLEXQUANTITY, IFCQUANTITYWEIGHT, IFCQUANTITYVOLUME, IFCQUANTITYTIME, IFCQUANTITYLENGTH, IFCQUANTITYCOUNT, IFCQUANTITYAREA, IFCPHYSICALSIMPLEQUANTITY], + 2226359599: [IFCQUANTITYWEIGHT, IFCQUANTITYVOLUME, IFCQUANTITYTIME, IFCQUANTITYLENGTH, IFCQUANTITYCOUNT, IFCQUANTITYAREA], + 677532197: [IFCDRAUGHTINGPREDEFINEDCURVEFONT, IFCPREDEFINEDCURVEFONT, IFCDRAUGHTINGPREDEFINEDCOLOUR, IFCPREDEFINEDCOLOUR, IFCTEXTSTYLEFONTMODEL, IFCPREDEFINEDTEXTFONT, IFCPREDEFINEDITEM, IFCINDEXEDCOLOURMAP, IFCCURVESTYLEFONTPATTERN, IFCCURVESTYLEFONTANDSCALING, IFCCURVESTYLEFONT, IFCCOLOURRGB, IFCCOLOURSPECIFICATION, IFCCOLOURRGBLIST, IFCTEXTUREVERTEXLIST, IFCTEXTUREVERTEX, IFCINDEXEDTRIANGLETEXTUREMAP, IFCINDEXEDTEXTUREMAP, IFCTEXTUREMAP, IFCTEXTURECOORDINATEGENERATOR, IFCTEXTURECOORDINATE, IFCTEXTSTYLETEXTMODEL, IFCTEXTSTYLEFORDEFINEDFONT, IFCPIXELTEXTURE, IFCIMAGETEXTURE, IFCBLOBTEXTURE, IFCSURFACETEXTURE, IFCSURFACESTYLEWITHTEXTURES, IFCSURFACESTYLERENDERING, IFCSURFACESTYLESHADING, IFCSURFACESTYLEREFRACTION, IFCSURFACESTYLELIGHTING], + 2022622350: [IFCPRESENTATIONLAYERWITHSTYLE], + 3119450353: [IFCFILLAREASTYLE, IFCCURVESTYLE, IFCTEXTSTYLE, IFCSURFACESTYLE], + 2095639259: [IFCPRODUCTDEFINITIONSHAPE, IFCMATERIALDEFINITIONREPRESENTATION], + 3958567839: [IFCLSHAPEPROFILEDEF, IFCISHAPEPROFILEDEF, IFCELLIPSEPROFILEDEF, IFCCIRCLEHOLLOWPROFILEDEF, IFCCIRCLEPROFILEDEF, IFCCSHAPEPROFILEDEF, IFCASYMMETRICISHAPEPROFILEDEF, IFCZSHAPEPROFILEDEF, IFCUSHAPEPROFILEDEF, IFCTRAPEZIUMPROFILEDEF, IFCTSHAPEPROFILEDEF, IFCRECTANGLEHOLLOWPROFILEDEF, IFCROUNDEDRECTANGLEPROFILEDEF, IFCRECTANGLEPROFILEDEF, IFCPARAMETERIZEDPROFILEDEF, IFCMIRROREDPROFILEDEF, IFCDERIVEDPROFILEDEF, IFCCOMPOSITEPROFILEDEF, IFCCENTERLINEPROFILEDEF, IFCARBITRARYOPENPROFILEDEF, IFCARBITRARYPROFILEDEFWITHVOIDS, IFCARBITRARYCLOSEDPROFILEDEF], + 986844984: [IFCCOMPLEXPROPERTY, IFCPROPERTYTABLEVALUE, IFCPROPERTYSINGLEVALUE, IFCPROPERTYREFERENCEVALUE, IFCPROPERTYLISTVALUE, IFCPROPERTYENUMERATEDVALUE, IFCPROPERTYBOUNDEDVALUE, IFCSIMPLEPROPERTY, IFCPROPERTY, IFCSECTIONREINFORCEMENTPROPERTIES, IFCSECTIONPROPERTIES, IFCREINFORCEMENTBARPROPERTIES, IFCPREDEFINEDPROPERTIES, IFCPROFILEPROPERTIES, IFCMATERIALPROPERTIES, IFCEXTENDEDPROPERTIES, IFCPROPERTYENUMERATION], + 1076942058: [IFCSTYLEDREPRESENTATION, IFCSTYLEMODEL, IFCTOPOLOGYREPRESENTATION, IFCSHAPEREPRESENTATION, IFCSHAPEMODEL], + 3377609919: [IFCGEOMETRICREPRESENTATIONSUBCONTEXT, IFCGEOMETRICREPRESENTATIONCONTEXT], + 3008791417: [IFCMAPPEDITEM, IFCFILLAREASTYLETILES, IFCFILLAREASTYLEHATCHING, IFCFACEBASEDSURFACEMODEL, IFCDIRECTION, IFCCIRCLE, IFCELLIPSE, IFCCONIC, IFCRATIONALBSPLINECURVEWITHKNOTS, IFCBSPLINECURVEWITHKNOTS, IFCBSPLINECURVE, IFCTRIMMEDCURVE, IFCPOLYLINE, IFCINDEXEDPOLYCURVE, IFCOUTERBOUNDARYCURVE, IFCBOUNDARYCURVE, IFCCOMPOSITECURVEONSURFACE, IFCCOMPOSITECURVE, IFCBOUNDEDCURVE, IFCSEAMCURVE, IFCINTERSECTIONCURVE, IFCSURFACECURVE, IFCPCURVE, IFCOFFSETCURVE3D, IFCOFFSETCURVE2D, IFCLINE, IFCCURVE, IFCBLOCK, IFCSPHERE, IFCRIGHTCIRCULARCYLINDER, IFCRIGHTCIRCULARCONE, IFCRECTANGULARPYRAMID, IFCCSGPRIMITIVE3D, IFCREPARAMETRISEDCOMPOSITECURVESEGMENT, IFCCOMPOSITECURVESEGMENT, IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR3D, IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR2D, IFCCARTESIANTRANSFORMATIONOPERATOR, IFCCARTESIANPOINTLIST3D, IFCCARTESIANPOINTLIST2D, IFCCARTESIANPOINTLIST, IFCBOUNDINGBOX, IFCBOOLEANCLIPPINGRESULT, IFCBOOLEANRESULT, IFCANNOTATIONFILLAREA, IFCVECTOR, IFCTEXTLITERALWITHEXTENT, IFCTEXTLITERAL, IFCPOLYGONALFACESET, IFCTRIANGULATEDFACESET, IFCTESSELLATEDFACESET, IFCINDEXEDPOLYGONALFACEWITHVOIDS, IFCINDEXEDPOLYGONALFACE, IFCTESSELLATEDITEM, IFCCYLINDRICALSURFACE, IFCTOROIDALSURFACE, IFCSPHERICALSURFACE, IFCPLANE, IFCELEMENTARYSURFACE, IFCRATIONALBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACE, IFCRECTANGULARTRIMMEDSURFACE, IFCCURVEBOUNDEDSURFACE, IFCCURVEBOUNDEDPLANE, IFCBOUNDEDSURFACE, IFCSURFACEOFREVOLUTION, IFCSURFACEOFLINEAREXTRUSION, IFCSWEPTSURFACE, IFCSURFACE, IFCFACETEDBREPWITHVOIDS, IFCFACETEDBREP, IFCADVANCEDBREPWITHVOIDS, IFCADVANCEDBREP, IFCMANIFOLDSOLIDBREP, IFCCSGSOLID, IFCSWEPTDISKSOLIDPOLYGONAL, IFCSWEPTDISKSOLID, IFCSURFACECURVESWEPTAREASOLID, IFCREVOLVEDAREASOLIDTAPERED, IFCREVOLVEDAREASOLID, IFCFIXEDREFERENCESWEPTAREASOLID, IFCEXTRUDEDAREASOLIDTAPERED, IFCEXTRUDEDAREASOLID, IFCSWEPTAREASOLID, IFCSOLIDMODEL, IFCSHELLBASEDSURFACEMODEL, IFCSECTIONEDSPINE, IFCCARTESIANPOINT, IFCPOINTONSURFACE, IFCPOINTONCURVE, IFCPOINT, IFCPLANARBOX, IFCPLANAREXTENT, IFCAXIS2PLACEMENT3D, IFCAXIS2PLACEMENT2D, IFCAXIS1PLACEMENT, IFCPLACEMENT, IFCLIGHTSOURCESPOT, IFCLIGHTSOURCEPOSITIONAL, IFCLIGHTSOURCEGONIOMETRIC, IFCLIGHTSOURCEDIRECTIONAL, IFCLIGHTSOURCEAMBIENT, IFCLIGHTSOURCE, IFCBOXEDHALFSPACE, IFCPOLYGONALBOUNDEDHALFSPACE, IFCHALFSPACESOLID, IFCGEOMETRICCURVESET, IFCGEOMETRICSET, IFCGEOMETRICREPRESENTATIONITEM, IFCPATH, IFCEDGELOOP, IFCVERTEXLOOP, IFCPOLYLOOP, IFCLOOP, IFCFACEOUTERBOUND, IFCFACEBOUND, IFCADVANCEDFACE, IFCFACESURFACE, IFCFACE, IFCSUBEDGE, IFCORIENTEDEDGE, IFCEDGECURVE, IFCEDGE, IFCCLOSEDSHELL, IFCOPENSHELL, IFCCONNECTEDFACESET, IFCVERTEXPOINT, IFCVERTEX, IFCTOPOLOGICALREPRESENTATIONITEM, IFCSTYLEDITEM], + 2439245199: [IFCRESOURCECONSTRAINTRELATIONSHIP, IFCRESOURCEAPPROVALRELATIONSHIP, IFCPROPERTYDEPENDENCYRELATIONSHIP, IFCORGANIZATIONRELATIONSHIP, IFCMATERIALRELATIONSHIP, IFCEXTERNALREFERENCERELATIONSHIP, IFCDOCUMENTINFORMATIONRELATIONSHIP, IFCCURRENCYRELATIONSHIP, IFCAPPROVALRELATIONSHIP], + 2341007311: [IFCRELDEFINESBYTYPE, IFCRELDEFINESBYTEMPLATE, IFCRELDEFINESBYPROPERTIES, IFCRELDEFINESBYOBJECT, IFCRELDEFINES, IFCRELAGGREGATES, IFCRELVOIDSELEMENT, IFCRELPROJECTSELEMENT, IFCRELNESTS, IFCRELDECOMPOSES, IFCRELDECLARES, IFCRELSPACEBOUNDARY2NDLEVEL, IFCRELSPACEBOUNDARY1STLEVEL, IFCRELSPACEBOUNDARY, IFCRELSERVICESBUILDINGS, IFCRELSEQUENCE, IFCRELREFERENCEDINSPATIALSTRUCTURE, IFCRELINTERFERESELEMENTS, IFCRELFLOWCONTROLELEMENTS, IFCRELFILLSELEMENT, IFCRELCOVERSSPACES, IFCRELCOVERSBLDGELEMENTS, IFCRELCONTAINEDINSPATIALSTRUCTURE, IFCRELCONNECTSWITHECCENTRICITY, IFCRELCONNECTSSTRUCTURALMEMBER, IFCRELCONNECTSSTRUCTURALACTIVITY, IFCRELCONNECTSPORTS, IFCRELCONNECTSPORTTOELEMENT, IFCRELCONNECTSWITHREALIZINGELEMENTS, IFCRELCONNECTSPATHELEMENTS, IFCRELCONNECTSELEMENTS, IFCRELCONNECTS, IFCRELASSOCIATESMATERIAL, IFCRELASSOCIATESLIBRARY, IFCRELASSOCIATESDOCUMENT, IFCRELASSOCIATESCONSTRAINT, IFCRELASSOCIATESCLASSIFICATION, IFCRELASSOCIATESAPPROVAL, IFCRELASSOCIATES, IFCRELASSIGNSTORESOURCE, IFCRELASSIGNSTOPRODUCT, IFCRELASSIGNSTOPROCESS, IFCRELASSIGNSTOGROUPBYFACTOR, IFCRELASSIGNSTOGROUP, IFCRELASSIGNSTOCONTROL, IFCRELASSIGNSTOACTOR, IFCRELASSIGNS, IFCRELATIONSHIP, IFCCOMPLEXPROPERTYTEMPLATE, IFCSIMPLEPROPERTYTEMPLATE, IFCPROPERTYTEMPLATE, IFCPROPERTYSETTEMPLATE, IFCPROPERTYTEMPLATEDEFINITION, IFCPROPERTYSET, IFCPERMEABLECOVERINGPROPERTIES, IFCDOORPANELPROPERTIES, IFCDOORLININGPROPERTIES, IFCWINDOWPANELPROPERTIES, IFCWINDOWLININGPROPERTIES, IFCREINFORCEMENTDEFINITIONPROPERTIES, IFCPREDEFINEDPROPERTYSET, IFCELEMENTQUANTITY, IFCQUANTITYSET, IFCPROPERTYSETDEFINITION, IFCPROPERTYDEFINITION, IFCASSET, IFCSTRUCTURALANALYSISMODEL, IFCDISTRIBUTIONCIRCUIT, IFCDISTRIBUTIONSYSTEM, IFCBUILDINGSYSTEM, IFCZONE, IFCSYSTEM, IFCSTRUCTURALRESULTGROUP, IFCSTRUCTURALLOADCASE, IFCSTRUCTURALLOADGROUP, IFCINVENTORY, IFCGROUP, IFCACTIONREQUEST, IFCWORKSCHEDULE, IFCWORKPLAN, IFCWORKCONTROL, IFCWORKCALENDAR, IFCPROJECTORDER, IFCPERMIT, IFCPERFORMANCEHISTORY, IFCCOSTSCHEDULE, IFCCOSTITEM, IFCCONTROL, IFCOCCUPANT, IFCACTOR, IFCCONSTRUCTIONPRODUCTRESOURCE, IFCCONSTRUCTIONMATERIALRESOURCE, IFCCONSTRUCTIONEQUIPMENTRESOURCE, IFCSUBCONTRACTRESOURCE, IFCLABORRESOURCE, IFCCREWRESOURCE, IFCCONSTRUCTIONRESOURCE, IFCRESOURCE, IFCDISTRIBUTIONPORT, IFCPORT, IFCGRID, IFCCONTROLLER, IFCALARM, IFCACTUATOR, IFCUNITARYCONTROLELEMENT, IFCSENSOR, IFCPROTECTIVEDEVICETRIPPINGUNIT, IFCFLOWINSTRUMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFILTER, IFCDUCTSILENCER, IFCINTERCEPTOR, IFCFLOWTREATMENTDEVICE, IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSANITARYTERMINAL, IFCOUTLET, IFCMEDICALDEVICE, IFCLIGHTFIXTURE, IFCLAMP, IFCFLOWTERMINAL, IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK, IFCFLOWSTORAGEDEVICE, IFCDUCTSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT, IFCFLOWSEGMENT, IFCFAN, IFCCOMPRESSOR, IFCPUMP, IFCFLOWMOVINGDEVICE, IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX, IFCFLOWFITTING, IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER, IFCFLOWCONTROLLER, IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT, IFCDISTRIBUTIONELEMENT, IFCCIVILELEMENT, IFCBEAMSTANDARDCASE, IFCBEAM, IFCWINDOWSTANDARDCASE, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALLELEMENTEDCASE, IFCWALL, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLABSTANDARDCASE, IFCSLABELEMENTEDCASE, IFCSLAB, IFCSHADINGDEVICE, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCPLATESTANDARDCASE, IFCPLATE, IFCPILE, IFCMEMBERSTANDARDCASE, IFCMEMBER, IFCFOOTING, IFCDOORSTANDARDCASE, IFCDOOR, IFCCURTAINWALL, IFCCOVERING, IFCCOLUMNSTANDARDCASE, IFCCOLUMN, IFCCHIMNEY, IFCBUILDINGELEMENTPROXY, IFCBUILDINGELEMENT, IFCVIRTUALELEMENT, IFCTRANSPORTELEMENT, IFCGEOGRAPHICELEMENT, IFCSYSTEMFURNITUREELEMENT, IFCFURNITURE, IFCFURNISHINGELEMENT, IFCSURFACEFEATURE, IFCVOIDINGFEATURE, IFCOPENINGSTANDARDCASE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION, IFCFEATUREELEMENT, IFCDISCRETEACCESSORY, IFCBUILDINGELEMENTPART, IFCVIBRATIONISOLATOR, IFCREINFORCINGBAR, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCMECHANICALFASTENER, IFCFASTENER, IFCELEMENTCOMPONENT, IFCELEMENTASSEMBLY, IFCELEMENT, IFCANNOTATION, IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION, IFCSTRUCTURALCONNECTION, IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER, IFCSTRUCTURALMEMBER, IFCSTRUCTURALITEM, IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALSURFACEACTION, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALCURVEACTION, IFCSTRUCTURALACTION, IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALCURVEREACTION, IFCSTRUCTURALSURFACEREACTION, IFCSTRUCTURALREACTION, IFCSTRUCTURALACTIVITY, IFCEXTERNALSPATIALELEMENT, IFCEXTERNALSPATIALSTRUCTUREELEMENT, IFCSPATIALZONE, IFCSPACE, IFCSITE, IFCBUILDINGSTOREY, IFCBUILDING, IFCSPATIALSTRUCTUREELEMENT, IFCSPATIALELEMENT, IFCPROXY, IFCPRODUCT, IFCPROCEDURE, IFCEVENT, IFCTASK, IFCPROCESS, IFCOBJECT, IFCPROJECTLIBRARY, IFCPROJECT, IFCCONTEXT, IFCCONSTRUCTIONPRODUCTRESOURCETYPE, IFCCONSTRUCTIONMATERIALRESOURCETYPE, IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE, IFCSUBCONTRACTRESOURCETYPE, IFCLABORRESOURCETYPE, IFCCREWRESOURCETYPE, IFCCONSTRUCTIONRESOURCETYPE, IFCTYPERESOURCE, IFCSPATIALZONETYPE, IFCSPACETYPE, IFCSPATIALSTRUCTUREELEMENTTYPE, IFCSPATIALELEMENTTYPE, IFCDISCRETEACCESSORYTYPE, IFCBUILDINGELEMENTPARTTYPE, IFCVIBRATIONISOLATORTYPE, IFCREINFORCINGBARTYPE, IFCTENDONTYPE, IFCTENDONANCHORTYPE, IFCREINFORCINGMESHTYPE, IFCREINFORCINGELEMENTTYPE, IFCMECHANICALFASTENERTYPE, IFCFASTENERTYPE, IFCELEMENTCOMPONENTTYPE, IFCELEMENTASSEMBLYTYPE, IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCUNITARYCONTROLELEMENTTYPE, IFCSENSORTYPE, IFCPROTECTIVEDEVICETRIPPINGUNITTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMEDICALDEVICETYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE, IFCDISTRIBUTIONELEMENTTYPE, IFCCIVILELEMENTTYPE, IFCBUILDINGELEMENTPROXYTYPE, IFCBEAMTYPE, IFCWINDOWTYPE, IFCWALLTYPE, IFCSTAIRTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCSHADINGDEVICETYPE, IFCROOFTYPE, IFCRAMPTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCPLATETYPE, IFCPILETYPE, IFCMEMBERTYPE, IFCFOOTINGTYPE, IFCDOORTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOLUMNTYPE, IFCCHIMNEYTYPE, IFCBUILDINGELEMENTTYPE, IFCTRANSPORTELEMENTTYPE, IFCGEOGRAPHICELEMENTTYPE, IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE, IFCFURNISHINGELEMENTTYPE, IFCELEMENTTYPE, IFCDOORSTYLE, IFCWINDOWSTYLE, IFCTYPEPRODUCT, IFCTASKTYPE, IFCPROCEDURETYPE, IFCEVENTTYPE, IFCTYPEPROCESS, IFCTYPEOBJECT, IFCOBJECTDEFINITION], + 1054537805: [IFCRESOURCETIME, IFCLAGTIME, IFCEVENTTIME, IFCWORKTIME, IFCTASKTIMERECURRING, IFCTASKTIME], + 3982875396: [IFCTOPOLOGYREPRESENTATION, IFCSHAPEREPRESENTATION], + 2273995522: [IFCSLIPPAGECONNECTIONCONDITION, IFCFAILURECONNECTIONCONDITION], + 2162789131: [IFCSURFACEREINFORCEMENTAREA, IFCSTRUCTURALLOADSINGLEFORCEWARPING, IFCSTRUCTURALLOADSINGLEFORCE, IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION, IFCSTRUCTURALLOADSINGLEDISPLACEMENT, IFCSTRUCTURALLOADPLANARFORCE, IFCSTRUCTURALLOADLINEARFORCE, IFCSTRUCTURALLOADTEMPERATURE, IFCSTRUCTURALLOADSTATIC, IFCSTRUCTURALLOADORRESULT, IFCSTRUCTURALLOADCONFIGURATION], + 609421318: [IFCSURFACEREINFORCEMENTAREA, IFCSTRUCTURALLOADSINGLEFORCEWARPING, IFCSTRUCTURALLOADSINGLEFORCE, IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION, IFCSTRUCTURALLOADSINGLEDISPLACEMENT, IFCSTRUCTURALLOADPLANARFORCE, IFCSTRUCTURALLOADLINEARFORCE, IFCSTRUCTURALLOADTEMPERATURE, IFCSTRUCTURALLOADSTATIC], + 2525727697: [IFCSTRUCTURALLOADSINGLEFORCEWARPING, IFCSTRUCTURALLOADSINGLEFORCE, IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION, IFCSTRUCTURALLOADSINGLEDISPLACEMENT, IFCSTRUCTURALLOADPLANARFORCE, IFCSTRUCTURALLOADLINEARFORCE, IFCSTRUCTURALLOADTEMPERATURE], + 2830218821: [IFCSTYLEDREPRESENTATION], + 846575682: [IFCSURFACESTYLERENDERING], + 626085974: [IFCPIXELTEXTURE, IFCIMAGETEXTURE, IFCBLOBTEXTURE], + 1549132990: [IFCTASKTIMERECURRING], + 280115917: [IFCINDEXEDTRIANGLETEXTUREMAP, IFCINDEXEDTEXTUREMAP, IFCTEXTUREMAP, IFCTEXTURECOORDINATEGENERATOR], + 3101149627: [IFCREGULARTIMESERIES, IFCIRREGULARTIMESERIES], + 1377556343: [IFCPATH, IFCEDGELOOP, IFCVERTEXLOOP, IFCPOLYLOOP, IFCLOOP, IFCFACEOUTERBOUND, IFCFACEBOUND, IFCADVANCEDFACE, IFCFACESURFACE, IFCFACE, IFCSUBEDGE, IFCORIENTEDEDGE, IFCEDGECURVE, IFCEDGE, IFCCLOSEDSHELL, IFCOPENSHELL, IFCCONNECTEDFACESET, IFCVERTEXPOINT, IFCVERTEX], + 2799835756: [IFCVERTEXPOINT], + 3798115385: [IFCARBITRARYPROFILEDEFWITHVOIDS], + 1310608509: [IFCCENTERLINEPROFILEDEF], + 3264961684: [IFCCOLOURRGB], + 370225590: [IFCCLOSEDSHELL, IFCOPENSHELL], + 2889183280: [IFCCONVERSIONBASEDUNITWITHOFFSET], + 3632507154: [IFCMIRROREDPROFILEDEF], + 3900360178: [IFCSUBEDGE, IFCORIENTEDEDGE, IFCEDGECURVE], + 297599258: [IFCPROFILEPROPERTIES, IFCMATERIALPROPERTIES], + 2556980723: [IFCADVANCEDFACE, IFCFACESURFACE], + 1809719519: [IFCFACEOUTERBOUND], + 3008276851: [IFCADVANCEDFACE], + 3448662350: [IFCGEOMETRICREPRESENTATIONSUBCONTEXT], + 2453401579: [IFCFILLAREASTYLETILES, IFCFILLAREASTYLEHATCHING, IFCFACEBASEDSURFACEMODEL, IFCDIRECTION, IFCCIRCLE, IFCELLIPSE, IFCCONIC, IFCRATIONALBSPLINECURVEWITHKNOTS, IFCBSPLINECURVEWITHKNOTS, IFCBSPLINECURVE, IFCTRIMMEDCURVE, IFCPOLYLINE, IFCINDEXEDPOLYCURVE, IFCOUTERBOUNDARYCURVE, IFCBOUNDARYCURVE, IFCCOMPOSITECURVEONSURFACE, IFCCOMPOSITECURVE, IFCBOUNDEDCURVE, IFCSEAMCURVE, IFCINTERSECTIONCURVE, IFCSURFACECURVE, IFCPCURVE, IFCOFFSETCURVE3D, IFCOFFSETCURVE2D, IFCLINE, IFCCURVE, IFCBLOCK, IFCSPHERE, IFCRIGHTCIRCULARCYLINDER, IFCRIGHTCIRCULARCONE, IFCRECTANGULARPYRAMID, IFCCSGPRIMITIVE3D, IFCREPARAMETRISEDCOMPOSITECURVESEGMENT, IFCCOMPOSITECURVESEGMENT, IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR3D, IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR2D, IFCCARTESIANTRANSFORMATIONOPERATOR, IFCCARTESIANPOINTLIST3D, IFCCARTESIANPOINTLIST2D, IFCCARTESIANPOINTLIST, IFCBOUNDINGBOX, IFCBOOLEANCLIPPINGRESULT, IFCBOOLEANRESULT, IFCANNOTATIONFILLAREA, IFCVECTOR, IFCTEXTLITERALWITHEXTENT, IFCTEXTLITERAL, IFCPOLYGONALFACESET, IFCTRIANGULATEDFACESET, IFCTESSELLATEDFACESET, IFCINDEXEDPOLYGONALFACEWITHVOIDS, IFCINDEXEDPOLYGONALFACE, IFCTESSELLATEDITEM, IFCCYLINDRICALSURFACE, IFCTOROIDALSURFACE, IFCSPHERICALSURFACE, IFCPLANE, IFCELEMENTARYSURFACE, IFCRATIONALBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACE, IFCRECTANGULARTRIMMEDSURFACE, IFCCURVEBOUNDEDSURFACE, IFCCURVEBOUNDEDPLANE, IFCBOUNDEDSURFACE, IFCSURFACEOFREVOLUTION, IFCSURFACEOFLINEAREXTRUSION, IFCSWEPTSURFACE, IFCSURFACE, IFCFACETEDBREPWITHVOIDS, IFCFACETEDBREP, IFCADVANCEDBREPWITHVOIDS, IFCADVANCEDBREP, IFCMANIFOLDSOLIDBREP, IFCCSGSOLID, IFCSWEPTDISKSOLIDPOLYGONAL, IFCSWEPTDISKSOLID, IFCSURFACECURVESWEPTAREASOLID, IFCREVOLVEDAREASOLIDTAPERED, IFCREVOLVEDAREASOLID, IFCFIXEDREFERENCESWEPTAREASOLID, IFCEXTRUDEDAREASOLIDTAPERED, IFCEXTRUDEDAREASOLID, IFCSWEPTAREASOLID, IFCSOLIDMODEL, IFCSHELLBASEDSURFACEMODEL, IFCSECTIONEDSPINE, IFCCARTESIANPOINT, IFCPOINTONSURFACE, IFCPOINTONCURVE, IFCPOINT, IFCPLANARBOX, IFCPLANAREXTENT, IFCAXIS2PLACEMENT3D, IFCAXIS2PLACEMENT2D, IFCAXIS1PLACEMENT, IFCPLACEMENT, IFCLIGHTSOURCESPOT, IFCLIGHTSOURCEPOSITIONAL, IFCLIGHTSOURCEGONIOMETRIC, IFCLIGHTSOURCEDIRECTIONAL, IFCLIGHTSOURCEAMBIENT, IFCLIGHTSOURCE, IFCBOXEDHALFSPACE, IFCPOLYGONALBOUNDEDHALFSPACE, IFCHALFSPACESOLID, IFCGEOMETRICCURVESET, IFCGEOMETRICSET], + 3590301190: [IFCGEOMETRICCURVESET], + 812098782: [IFCBOXEDHALFSPACE, IFCPOLYGONALBOUNDEDHALFSPACE], + 1437953363: [IFCINDEXEDTRIANGLETEXTUREMAP], + 1402838566: [IFCLIGHTSOURCESPOT, IFCLIGHTSOURCEPOSITIONAL, IFCLIGHTSOURCEGONIOMETRIC, IFCLIGHTSOURCEDIRECTIONAL, IFCLIGHTSOURCEAMBIENT], + 1520743889: [IFCLIGHTSOURCESPOT], + 1008929658: [IFCEDGELOOP, IFCVERTEXLOOP, IFCPOLYLOOP], + 3079605661: [IFCMATERIALPROFILESETUSAGETAPERING], + 219451334: [IFCASSET, IFCSTRUCTURALANALYSISMODEL, IFCDISTRIBUTIONCIRCUIT, IFCDISTRIBUTIONSYSTEM, IFCBUILDINGSYSTEM, IFCZONE, IFCSYSTEM, IFCSTRUCTURALRESULTGROUP, IFCSTRUCTURALLOADCASE, IFCSTRUCTURALLOADGROUP, IFCINVENTORY, IFCGROUP, IFCACTIONREQUEST, IFCWORKSCHEDULE, IFCWORKPLAN, IFCWORKCONTROL, IFCWORKCALENDAR, IFCPROJECTORDER, IFCPERMIT, IFCPERFORMANCEHISTORY, IFCCOSTSCHEDULE, IFCCOSTITEM, IFCCONTROL, IFCOCCUPANT, IFCACTOR, IFCCONSTRUCTIONPRODUCTRESOURCE, IFCCONSTRUCTIONMATERIALRESOURCE, IFCCONSTRUCTIONEQUIPMENTRESOURCE, IFCSUBCONTRACTRESOURCE, IFCLABORRESOURCE, IFCCREWRESOURCE, IFCCONSTRUCTIONRESOURCE, IFCRESOURCE, IFCDISTRIBUTIONPORT, IFCPORT, IFCGRID, IFCCONTROLLER, IFCALARM, IFCACTUATOR, IFCUNITARYCONTROLELEMENT, IFCSENSOR, IFCPROTECTIVEDEVICETRIPPINGUNIT, IFCFLOWINSTRUMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFILTER, IFCDUCTSILENCER, IFCINTERCEPTOR, IFCFLOWTREATMENTDEVICE, IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSANITARYTERMINAL, IFCOUTLET, IFCMEDICALDEVICE, IFCLIGHTFIXTURE, IFCLAMP, IFCFLOWTERMINAL, IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK, IFCFLOWSTORAGEDEVICE, IFCDUCTSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT, IFCFLOWSEGMENT, IFCFAN, IFCCOMPRESSOR, IFCPUMP, IFCFLOWMOVINGDEVICE, IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX, IFCFLOWFITTING, IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER, IFCFLOWCONTROLLER, IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT, IFCDISTRIBUTIONELEMENT, IFCCIVILELEMENT, IFCBEAMSTANDARDCASE, IFCBEAM, IFCWINDOWSTANDARDCASE, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALLELEMENTEDCASE, IFCWALL, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLABSTANDARDCASE, IFCSLABELEMENTEDCASE, IFCSLAB, IFCSHADINGDEVICE, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCPLATESTANDARDCASE, IFCPLATE, IFCPILE, IFCMEMBERSTANDARDCASE, IFCMEMBER, IFCFOOTING, IFCDOORSTANDARDCASE, IFCDOOR, IFCCURTAINWALL, IFCCOVERING, IFCCOLUMNSTANDARDCASE, IFCCOLUMN, IFCCHIMNEY, IFCBUILDINGELEMENTPROXY, IFCBUILDINGELEMENT, IFCVIRTUALELEMENT, IFCTRANSPORTELEMENT, IFCGEOGRAPHICELEMENT, IFCSYSTEMFURNITUREELEMENT, IFCFURNITURE, IFCFURNISHINGELEMENT, IFCSURFACEFEATURE, IFCVOIDINGFEATURE, IFCOPENINGSTANDARDCASE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION, IFCFEATUREELEMENT, IFCDISCRETEACCESSORY, IFCBUILDINGELEMENTPART, IFCVIBRATIONISOLATOR, IFCREINFORCINGBAR, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCMECHANICALFASTENER, IFCFASTENER, IFCELEMENTCOMPONENT, IFCELEMENTASSEMBLY, IFCELEMENT, IFCANNOTATION, IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION, IFCSTRUCTURALCONNECTION, IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER, IFCSTRUCTURALMEMBER, IFCSTRUCTURALITEM, IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALSURFACEACTION, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALCURVEACTION, IFCSTRUCTURALACTION, IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALCURVEREACTION, IFCSTRUCTURALSURFACEREACTION, IFCSTRUCTURALREACTION, IFCSTRUCTURALACTIVITY, IFCEXTERNALSPATIALELEMENT, IFCEXTERNALSPATIALSTRUCTUREELEMENT, IFCSPATIALZONE, IFCSPACE, IFCSITE, IFCBUILDINGSTOREY, IFCBUILDING, IFCSPATIALSTRUCTUREELEMENT, IFCSPATIALELEMENT, IFCPROXY, IFCPRODUCT, IFCPROCEDURE, IFCEVENT, IFCTASK, IFCPROCESS, IFCOBJECT, IFCPROJECTLIBRARY, IFCPROJECT, IFCCONTEXT, IFCCONSTRUCTIONPRODUCTRESOURCETYPE, IFCCONSTRUCTIONMATERIALRESOURCETYPE, IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE, IFCSUBCONTRACTRESOURCETYPE, IFCLABORRESOURCETYPE, IFCCREWRESOURCETYPE, IFCCONSTRUCTIONRESOURCETYPE, IFCTYPERESOURCE, IFCSPATIALZONETYPE, IFCSPACETYPE, IFCSPATIALSTRUCTUREELEMENTTYPE, IFCSPATIALELEMENTTYPE, IFCDISCRETEACCESSORYTYPE, IFCBUILDINGELEMENTPARTTYPE, IFCVIBRATIONISOLATORTYPE, IFCREINFORCINGBARTYPE, IFCTENDONTYPE, IFCTENDONANCHORTYPE, IFCREINFORCINGMESHTYPE, IFCREINFORCINGELEMENTTYPE, IFCMECHANICALFASTENERTYPE, IFCFASTENERTYPE, IFCELEMENTCOMPONENTTYPE, IFCELEMENTASSEMBLYTYPE, IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCUNITARYCONTROLELEMENTTYPE, IFCSENSORTYPE, IFCPROTECTIVEDEVICETRIPPINGUNITTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMEDICALDEVICETYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE, IFCDISTRIBUTIONELEMENTTYPE, IFCCIVILELEMENTTYPE, IFCBUILDINGELEMENTPROXYTYPE, IFCBEAMTYPE, IFCWINDOWTYPE, IFCWALLTYPE, IFCSTAIRTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCSHADINGDEVICETYPE, IFCROOFTYPE, IFCRAMPTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCPLATETYPE, IFCPILETYPE, IFCMEMBERTYPE, IFCFOOTINGTYPE, IFCDOORTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOLUMNTYPE, IFCCHIMNEYTYPE, IFCBUILDINGELEMENTTYPE, IFCTRANSPORTELEMENTTYPE, IFCGEOGRAPHICELEMENTTYPE, IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE, IFCFURNISHINGELEMENTTYPE, IFCELEMENTTYPE, IFCDOORSTYLE, IFCWINDOWSTYLE, IFCTYPEPRODUCT, IFCTASKTYPE, IFCPROCEDURETYPE, IFCEVENTTYPE, IFCTYPEPROCESS, IFCTYPEOBJECT], + 2529465313: [IFCLSHAPEPROFILEDEF, IFCISHAPEPROFILEDEF, IFCELLIPSEPROFILEDEF, IFCCIRCLEHOLLOWPROFILEDEF, IFCCIRCLEPROFILEDEF, IFCCSHAPEPROFILEDEF, IFCASYMMETRICISHAPEPROFILEDEF, IFCZSHAPEPROFILEDEF, IFCUSHAPEPROFILEDEF, IFCTRAPEZIUMPROFILEDEF, IFCTSHAPEPROFILEDEF, IFCRECTANGLEHOLLOWPROFILEDEF, IFCROUNDEDRECTANGLEPROFILEDEF, IFCRECTANGLEPROFILEDEF], + 2004835150: [IFCAXIS2PLACEMENT3D, IFCAXIS2PLACEMENT2D, IFCAXIS1PLACEMENT], + 1663979128: [IFCPLANARBOX], + 2067069095: [IFCCARTESIANPOINT, IFCPOINTONSURFACE, IFCPOINTONCURVE], + 3727388367: [IFCDRAUGHTINGPREDEFINEDCURVEFONT, IFCPREDEFINEDCURVEFONT, IFCDRAUGHTINGPREDEFINEDCOLOUR, IFCPREDEFINEDCOLOUR, IFCTEXTSTYLEFONTMODEL, IFCPREDEFINEDTEXTFONT], + 3778827333: [IFCSECTIONREINFORCEMENTPROPERTIES, IFCSECTIONPROPERTIES, IFCREINFORCEMENTBARPROPERTIES], + 1775413392: [IFCTEXTSTYLEFONTMODEL], + 2598011224: [IFCCOMPLEXPROPERTY, IFCPROPERTYTABLEVALUE, IFCPROPERTYSINGLEVALUE, IFCPROPERTYREFERENCEVALUE, IFCPROPERTYLISTVALUE, IFCPROPERTYENUMERATEDVALUE, IFCPROPERTYBOUNDEDVALUE, IFCSIMPLEPROPERTY], + 1680319473: [IFCCOMPLEXPROPERTYTEMPLATE, IFCSIMPLEPROPERTYTEMPLATE, IFCPROPERTYTEMPLATE, IFCPROPERTYSETTEMPLATE, IFCPROPERTYTEMPLATEDEFINITION, IFCPROPERTYSET, IFCPERMEABLECOVERINGPROPERTIES, IFCDOORPANELPROPERTIES, IFCDOORLININGPROPERTIES, IFCWINDOWPANELPROPERTIES, IFCWINDOWLININGPROPERTIES, IFCREINFORCEMENTDEFINITIONPROPERTIES, IFCPREDEFINEDPROPERTYSET, IFCELEMENTQUANTITY, IFCQUANTITYSET, IFCPROPERTYSETDEFINITION], + 3357820518: [IFCPROPERTYSET, IFCPERMEABLECOVERINGPROPERTIES, IFCDOORPANELPROPERTIES, IFCDOORLININGPROPERTIES, IFCWINDOWPANELPROPERTIES, IFCWINDOWLININGPROPERTIES, IFCREINFORCEMENTDEFINITIONPROPERTIES, IFCPREDEFINEDPROPERTYSET, IFCELEMENTQUANTITY, IFCQUANTITYSET], + 1482703590: [IFCCOMPLEXPROPERTYTEMPLATE, IFCSIMPLEPROPERTYTEMPLATE, IFCPROPERTYTEMPLATE, IFCPROPERTYSETTEMPLATE], + 2090586900: [IFCELEMENTQUANTITY], + 3615266464: [IFCRECTANGLEHOLLOWPROFILEDEF, IFCROUNDEDRECTANGLEPROFILEDEF], + 478536968: [IFCRELDEFINESBYTYPE, IFCRELDEFINESBYTEMPLATE, IFCRELDEFINESBYPROPERTIES, IFCRELDEFINESBYOBJECT, IFCRELDEFINES, IFCRELAGGREGATES, IFCRELVOIDSELEMENT, IFCRELPROJECTSELEMENT, IFCRELNESTS, IFCRELDECOMPOSES, IFCRELDECLARES, IFCRELSPACEBOUNDARY2NDLEVEL, IFCRELSPACEBOUNDARY1STLEVEL, IFCRELSPACEBOUNDARY, IFCRELSERVICESBUILDINGS, IFCRELSEQUENCE, IFCRELREFERENCEDINSPATIALSTRUCTURE, IFCRELINTERFERESELEMENTS, IFCRELFLOWCONTROLELEMENTS, IFCRELFILLSELEMENT, IFCRELCOVERSSPACES, IFCRELCOVERSBLDGELEMENTS, IFCRELCONTAINEDINSPATIALSTRUCTURE, IFCRELCONNECTSWITHECCENTRICITY, IFCRELCONNECTSSTRUCTURALMEMBER, IFCRELCONNECTSSTRUCTURALACTIVITY, IFCRELCONNECTSPORTS, IFCRELCONNECTSPORTTOELEMENT, IFCRELCONNECTSWITHREALIZINGELEMENTS, IFCRELCONNECTSPATHELEMENTS, IFCRELCONNECTSELEMENTS, IFCRELCONNECTS, IFCRELASSOCIATESMATERIAL, IFCRELASSOCIATESLIBRARY, IFCRELASSOCIATESDOCUMENT, IFCRELASSOCIATESCONSTRAINT, IFCRELASSOCIATESCLASSIFICATION, IFCRELASSOCIATESAPPROVAL, IFCRELASSOCIATES, IFCRELASSIGNSTORESOURCE, IFCRELASSIGNSTOPRODUCT, IFCRELASSIGNSTOPROCESS, IFCRELASSIGNSTOGROUPBYFACTOR, IFCRELASSIGNSTOGROUP, IFCRELASSIGNSTOCONTROL, IFCRELASSIGNSTOACTOR, IFCRELASSIGNS], + 3692461612: [IFCPROPERTYTABLEVALUE, IFCPROPERTYSINGLEVALUE, IFCPROPERTYREFERENCEVALUE, IFCPROPERTYLISTVALUE, IFCPROPERTYENUMERATEDVALUE, IFCPROPERTYBOUNDEDVALUE], + 723233188: [IFCFACETEDBREPWITHVOIDS, IFCFACETEDBREP, IFCADVANCEDBREPWITHVOIDS, IFCADVANCEDBREP, IFCMANIFOLDSOLIDBREP, IFCCSGSOLID, IFCSWEPTDISKSOLIDPOLYGONAL, IFCSWEPTDISKSOLID, IFCSURFACECURVESWEPTAREASOLID, IFCREVOLVEDAREASOLIDTAPERED, IFCREVOLVEDAREASOLID, IFCFIXEDREFERENCESWEPTAREASOLID, IFCEXTRUDEDAREASOLIDTAPERED, IFCEXTRUDEDAREASOLID, IFCSWEPTAREASOLID], + 2473145415: [IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION], + 1597423693: [IFCSTRUCTURALLOADSINGLEFORCEWARPING], + 2513912981: [IFCCYLINDRICALSURFACE, IFCTOROIDALSURFACE, IFCSPHERICALSURFACE, IFCPLANE, IFCELEMENTARYSURFACE, IFCRATIONALBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACE, IFCRECTANGULARTRIMMEDSURFACE, IFCCURVEBOUNDEDSURFACE, IFCCURVEBOUNDEDPLANE, IFCBOUNDEDSURFACE, IFCSURFACEOFREVOLUTION, IFCSURFACEOFLINEAREXTRUSION, IFCSWEPTSURFACE], + 2247615214: [IFCSURFACECURVESWEPTAREASOLID, IFCREVOLVEDAREASOLIDTAPERED, IFCREVOLVEDAREASOLID, IFCFIXEDREFERENCESWEPTAREASOLID, IFCEXTRUDEDAREASOLIDTAPERED, IFCEXTRUDEDAREASOLID], + 1260650574: [IFCSWEPTDISKSOLIDPOLYGONAL], + 230924584: [IFCSURFACEOFREVOLUTION, IFCSURFACEOFLINEAREXTRUSION], + 901063453: [IFCPOLYGONALFACESET, IFCTRIANGULATEDFACESET, IFCTESSELLATEDFACESET, IFCINDEXEDPOLYGONALFACEWITHVOIDS, IFCINDEXEDPOLYGONALFACE], + 4282788508: [IFCTEXTLITERALWITHEXTENT], + 1628702193: [IFCCONSTRUCTIONPRODUCTRESOURCETYPE, IFCCONSTRUCTIONMATERIALRESOURCETYPE, IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE, IFCSUBCONTRACTRESOURCETYPE, IFCLABORRESOURCETYPE, IFCCREWRESOURCETYPE, IFCCONSTRUCTIONRESOURCETYPE, IFCTYPERESOURCE, IFCSPATIALZONETYPE, IFCSPACETYPE, IFCSPATIALSTRUCTUREELEMENTTYPE, IFCSPATIALELEMENTTYPE, IFCDISCRETEACCESSORYTYPE, IFCBUILDINGELEMENTPARTTYPE, IFCVIBRATIONISOLATORTYPE, IFCREINFORCINGBARTYPE, IFCTENDONTYPE, IFCTENDONANCHORTYPE, IFCREINFORCINGMESHTYPE, IFCREINFORCINGELEMENTTYPE, IFCMECHANICALFASTENERTYPE, IFCFASTENERTYPE, IFCELEMENTCOMPONENTTYPE, IFCELEMENTASSEMBLYTYPE, IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCUNITARYCONTROLELEMENTTYPE, IFCSENSORTYPE, IFCPROTECTIVEDEVICETRIPPINGUNITTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMEDICALDEVICETYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE, IFCDISTRIBUTIONELEMENTTYPE, IFCCIVILELEMENTTYPE, IFCBUILDINGELEMENTPROXYTYPE, IFCBEAMTYPE, IFCWINDOWTYPE, IFCWALLTYPE, IFCSTAIRTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCSHADINGDEVICETYPE, IFCROOFTYPE, IFCRAMPTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCPLATETYPE, IFCPILETYPE, IFCMEMBERTYPE, IFCFOOTINGTYPE, IFCDOORTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOLUMNTYPE, IFCCHIMNEYTYPE, IFCBUILDINGELEMENTTYPE, IFCTRANSPORTELEMENTTYPE, IFCGEOGRAPHICELEMENTTYPE, IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE, IFCFURNISHINGELEMENTTYPE, IFCELEMENTTYPE, IFCDOORSTYLE, IFCWINDOWSTYLE, IFCTYPEPRODUCT, IFCTASKTYPE, IFCPROCEDURETYPE, IFCEVENTTYPE, IFCTYPEPROCESS], + 3736923433: [IFCTASKTYPE, IFCPROCEDURETYPE, IFCEVENTTYPE], + 2347495698: [IFCSPATIALZONETYPE, IFCSPACETYPE, IFCSPATIALSTRUCTUREELEMENTTYPE, IFCSPATIALELEMENTTYPE, IFCDISCRETEACCESSORYTYPE, IFCBUILDINGELEMENTPARTTYPE, IFCVIBRATIONISOLATORTYPE, IFCREINFORCINGBARTYPE, IFCTENDONTYPE, IFCTENDONANCHORTYPE, IFCREINFORCINGMESHTYPE, IFCREINFORCINGELEMENTTYPE, IFCMECHANICALFASTENERTYPE, IFCFASTENERTYPE, IFCELEMENTCOMPONENTTYPE, IFCELEMENTASSEMBLYTYPE, IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCUNITARYCONTROLELEMENTTYPE, IFCSENSORTYPE, IFCPROTECTIVEDEVICETRIPPINGUNITTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMEDICALDEVICETYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE, IFCDISTRIBUTIONELEMENTTYPE, IFCCIVILELEMENTTYPE, IFCBUILDINGELEMENTPROXYTYPE, IFCBEAMTYPE, IFCWINDOWTYPE, IFCWALLTYPE, IFCSTAIRTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCSHADINGDEVICETYPE, IFCROOFTYPE, IFCRAMPTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCPLATETYPE, IFCPILETYPE, IFCMEMBERTYPE, IFCFOOTINGTYPE, IFCDOORTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOLUMNTYPE, IFCCHIMNEYTYPE, IFCBUILDINGELEMENTTYPE, IFCTRANSPORTELEMENTTYPE, IFCGEOGRAPHICELEMENTTYPE, IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE, IFCFURNISHINGELEMENTTYPE, IFCELEMENTTYPE, IFCDOORSTYLE, IFCWINDOWSTYLE], + 3698973494: [IFCCONSTRUCTIONPRODUCTRESOURCETYPE, IFCCONSTRUCTIONMATERIALRESOURCETYPE, IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE, IFCSUBCONTRACTRESOURCETYPE, IFCLABORRESOURCETYPE, IFCCREWRESOURCETYPE, IFCCONSTRUCTIONRESOURCETYPE], + 2736907675: [IFCBOOLEANCLIPPINGRESULT], + 4182860854: [IFCRATIONALBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACE, IFCRECTANGULARTRIMMEDSURFACE, IFCCURVEBOUNDEDSURFACE, IFCCURVEBOUNDEDPLANE], + 574549367: [IFCCARTESIANPOINTLIST3D, IFCCARTESIANPOINTLIST2D], + 59481748: [IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR3D, IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR2D], + 3749851601: [IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM], + 3331915920: [IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM], + 1383045692: [IFCCIRCLEHOLLOWPROFILEDEF], + 2485617015: [IFCREPARAMETRISEDCOMPOSITECURVESEGMENT], + 2574617495: [IFCCONSTRUCTIONPRODUCTRESOURCETYPE, IFCCONSTRUCTIONMATERIALRESOURCETYPE, IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE, IFCSUBCONTRACTRESOURCETYPE, IFCLABORRESOURCETYPE, IFCCREWRESOURCETYPE], + 3419103109: [IFCPROJECTLIBRARY, IFCPROJECT], + 2506170314: [IFCBLOCK, IFCSPHERE, IFCRIGHTCIRCULARCYLINDER, IFCRIGHTCIRCULARCONE, IFCRECTANGULARPYRAMID], + 2601014836: [IFCCIRCLE, IFCELLIPSE, IFCCONIC, IFCRATIONALBSPLINECURVEWITHKNOTS, IFCBSPLINECURVEWITHKNOTS, IFCBSPLINECURVE, IFCTRIMMEDCURVE, IFCPOLYLINE, IFCINDEXEDPOLYCURVE, IFCOUTERBOUNDARYCURVE, IFCBOUNDARYCURVE, IFCCOMPOSITECURVEONSURFACE, IFCCOMPOSITECURVE, IFCBOUNDEDCURVE, IFCSEAMCURVE, IFCINTERSECTIONCURVE, IFCSURFACECURVE, IFCPCURVE, IFCOFFSETCURVE3D, IFCOFFSETCURVE2D, IFCLINE], + 339256511: [IFCDISCRETEACCESSORYTYPE, IFCBUILDINGELEMENTPARTTYPE, IFCVIBRATIONISOLATORTYPE, IFCREINFORCINGBARTYPE, IFCTENDONTYPE, IFCTENDONANCHORTYPE, IFCREINFORCINGMESHTYPE, IFCREINFORCINGELEMENTTYPE, IFCMECHANICALFASTENERTYPE, IFCFASTENERTYPE, IFCELEMENTCOMPONENTTYPE, IFCELEMENTASSEMBLYTYPE, IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCUNITARYCONTROLELEMENTTYPE, IFCSENSORTYPE, IFCPROTECTIVEDEVICETRIPPINGUNITTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMEDICALDEVICETYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE, IFCDISTRIBUTIONELEMENTTYPE, IFCCIVILELEMENTTYPE, IFCBUILDINGELEMENTPROXYTYPE, IFCBEAMTYPE, IFCWINDOWTYPE, IFCWALLTYPE, IFCSTAIRTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCSHADINGDEVICETYPE, IFCROOFTYPE, IFCRAMPTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCPLATETYPE, IFCPILETYPE, IFCMEMBERTYPE, IFCFOOTINGTYPE, IFCDOORTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOLUMNTYPE, IFCCHIMNEYTYPE, IFCBUILDINGELEMENTTYPE, IFCTRANSPORTELEMENTTYPE, IFCGEOGRAPHICELEMENTTYPE, IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE, IFCFURNISHINGELEMENTTYPE], + 2777663545: [IFCCYLINDRICALSURFACE, IFCTOROIDALSURFACE, IFCSPHERICALSURFACE, IFCPLANE], + 477187591: [IFCEXTRUDEDAREASOLIDTAPERED], + 4238390223: [IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE], + 178912537: [IFCINDEXEDPOLYGONALFACEWITHVOIDS], + 1425443689: [IFCFACETEDBREPWITHVOIDS, IFCFACETEDBREP, IFCADVANCEDBREPWITHVOIDS, IFCADVANCEDBREP], + 3888040117: [IFCASSET, IFCSTRUCTURALANALYSISMODEL, IFCDISTRIBUTIONCIRCUIT, IFCDISTRIBUTIONSYSTEM, IFCBUILDINGSYSTEM, IFCZONE, IFCSYSTEM, IFCSTRUCTURALRESULTGROUP, IFCSTRUCTURALLOADCASE, IFCSTRUCTURALLOADGROUP, IFCINVENTORY, IFCGROUP, IFCACTIONREQUEST, IFCWORKSCHEDULE, IFCWORKPLAN, IFCWORKCONTROL, IFCWORKCALENDAR, IFCPROJECTORDER, IFCPERMIT, IFCPERFORMANCEHISTORY, IFCCOSTSCHEDULE, IFCCOSTITEM, IFCCONTROL, IFCOCCUPANT, IFCACTOR, IFCCONSTRUCTIONPRODUCTRESOURCE, IFCCONSTRUCTIONMATERIALRESOURCE, IFCCONSTRUCTIONEQUIPMENTRESOURCE, IFCSUBCONTRACTRESOURCE, IFCLABORRESOURCE, IFCCREWRESOURCE, IFCCONSTRUCTIONRESOURCE, IFCRESOURCE, IFCDISTRIBUTIONPORT, IFCPORT, IFCGRID, IFCCONTROLLER, IFCALARM, IFCACTUATOR, IFCUNITARYCONTROLELEMENT, IFCSENSOR, IFCPROTECTIVEDEVICETRIPPINGUNIT, IFCFLOWINSTRUMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFILTER, IFCDUCTSILENCER, IFCINTERCEPTOR, IFCFLOWTREATMENTDEVICE, IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSANITARYTERMINAL, IFCOUTLET, IFCMEDICALDEVICE, IFCLIGHTFIXTURE, IFCLAMP, IFCFLOWTERMINAL, IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK, IFCFLOWSTORAGEDEVICE, IFCDUCTSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT, IFCFLOWSEGMENT, IFCFAN, IFCCOMPRESSOR, IFCPUMP, IFCFLOWMOVINGDEVICE, IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX, IFCFLOWFITTING, IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER, IFCFLOWCONTROLLER, IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT, IFCDISTRIBUTIONELEMENT, IFCCIVILELEMENT, IFCBEAMSTANDARDCASE, IFCBEAM, IFCWINDOWSTANDARDCASE, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALLELEMENTEDCASE, IFCWALL, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLABSTANDARDCASE, IFCSLABELEMENTEDCASE, IFCSLAB, IFCSHADINGDEVICE, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCPLATESTANDARDCASE, IFCPLATE, IFCPILE, IFCMEMBERSTANDARDCASE, IFCMEMBER, IFCFOOTING, IFCDOORSTANDARDCASE, IFCDOOR, IFCCURTAINWALL, IFCCOVERING, IFCCOLUMNSTANDARDCASE, IFCCOLUMN, IFCCHIMNEY, IFCBUILDINGELEMENTPROXY, IFCBUILDINGELEMENT, IFCVIRTUALELEMENT, IFCTRANSPORTELEMENT, IFCGEOGRAPHICELEMENT, IFCSYSTEMFURNITUREELEMENT, IFCFURNITURE, IFCFURNISHINGELEMENT, IFCSURFACEFEATURE, IFCVOIDINGFEATURE, IFCOPENINGSTANDARDCASE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION, IFCFEATUREELEMENT, IFCDISCRETEACCESSORY, IFCBUILDINGELEMENTPART, IFCVIBRATIONISOLATOR, IFCREINFORCINGBAR, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCMECHANICALFASTENER, IFCFASTENER, IFCELEMENTCOMPONENT, IFCELEMENTASSEMBLY, IFCELEMENT, IFCANNOTATION, IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION, IFCSTRUCTURALCONNECTION, IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER, IFCSTRUCTURALMEMBER, IFCSTRUCTURALITEM, IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALSURFACEACTION, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALCURVEACTION, IFCSTRUCTURALACTION, IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALCURVEREACTION, IFCSTRUCTURALSURFACEREACTION, IFCSTRUCTURALREACTION, IFCSTRUCTURALACTIVITY, IFCEXTERNALSPATIALELEMENT, IFCEXTERNALSPATIALSTRUCTUREELEMENT, IFCSPATIALZONE, IFCSPACE, IFCSITE, IFCBUILDINGSTOREY, IFCBUILDING, IFCSPATIALSTRUCTUREELEMENT, IFCSPATIALELEMENT, IFCPROXY, IFCPRODUCT, IFCPROCEDURE, IFCEVENT, IFCTASK, IFCPROCESS], + 759155922: [IFCDRAUGHTINGPREDEFINEDCOLOUR], + 2559016684: [IFCDRAUGHTINGPREDEFINEDCURVEFONT], + 3967405729: [IFCPERMEABLECOVERINGPROPERTIES, IFCDOORPANELPROPERTIES, IFCDOORLININGPROPERTIES, IFCWINDOWPANELPROPERTIES, IFCWINDOWLININGPROPERTIES, IFCREINFORCEMENTDEFINITIONPROPERTIES], + 2945172077: [IFCPROCEDURE, IFCEVENT, IFCTASK], + 4208778838: [IFCDISTRIBUTIONPORT, IFCPORT, IFCGRID, IFCCONTROLLER, IFCALARM, IFCACTUATOR, IFCUNITARYCONTROLELEMENT, IFCSENSOR, IFCPROTECTIVEDEVICETRIPPINGUNIT, IFCFLOWINSTRUMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFILTER, IFCDUCTSILENCER, IFCINTERCEPTOR, IFCFLOWTREATMENTDEVICE, IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSANITARYTERMINAL, IFCOUTLET, IFCMEDICALDEVICE, IFCLIGHTFIXTURE, IFCLAMP, IFCFLOWTERMINAL, IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK, IFCFLOWSTORAGEDEVICE, IFCDUCTSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT, IFCFLOWSEGMENT, IFCFAN, IFCCOMPRESSOR, IFCPUMP, IFCFLOWMOVINGDEVICE, IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX, IFCFLOWFITTING, IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER, IFCFLOWCONTROLLER, IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT, IFCDISTRIBUTIONELEMENT, IFCCIVILELEMENT, IFCBEAMSTANDARDCASE, IFCBEAM, IFCWINDOWSTANDARDCASE, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALLELEMENTEDCASE, IFCWALL, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLABSTANDARDCASE, IFCSLABELEMENTEDCASE, IFCSLAB, IFCSHADINGDEVICE, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCPLATESTANDARDCASE, IFCPLATE, IFCPILE, IFCMEMBERSTANDARDCASE, IFCMEMBER, IFCFOOTING, IFCDOORSTANDARDCASE, IFCDOOR, IFCCURTAINWALL, IFCCOVERING, IFCCOLUMNSTANDARDCASE, IFCCOLUMN, IFCCHIMNEY, IFCBUILDINGELEMENTPROXY, IFCBUILDINGELEMENT, IFCVIRTUALELEMENT, IFCTRANSPORTELEMENT, IFCGEOGRAPHICELEMENT, IFCSYSTEMFURNITUREELEMENT, IFCFURNITURE, IFCFURNISHINGELEMENT, IFCSURFACEFEATURE, IFCVOIDINGFEATURE, IFCOPENINGSTANDARDCASE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION, IFCFEATUREELEMENT, IFCDISCRETEACCESSORY, IFCBUILDINGELEMENTPART, IFCVIBRATIONISOLATOR, IFCREINFORCINGBAR, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCMECHANICALFASTENER, IFCFASTENER, IFCELEMENTCOMPONENT, IFCELEMENTASSEMBLY, IFCELEMENT, IFCANNOTATION, IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION, IFCSTRUCTURALCONNECTION, IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER, IFCSTRUCTURALMEMBER, IFCSTRUCTURALITEM, IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALSURFACEACTION, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALCURVEACTION, IFCSTRUCTURALACTION, IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALCURVEREACTION, IFCSTRUCTURALSURFACEREACTION, IFCSTRUCTURALREACTION, IFCSTRUCTURALACTIVITY, IFCEXTERNALSPATIALELEMENT, IFCEXTERNALSPATIALSTRUCTUREELEMENT, IFCSPATIALZONE, IFCSPACE, IFCSITE, IFCBUILDINGSTOREY, IFCBUILDING, IFCSPATIALSTRUCTUREELEMENT, IFCSPATIALELEMENT, IFCPROXY], + 3521284610: [IFCCOMPLEXPROPERTYTEMPLATE, IFCSIMPLEPROPERTYTEMPLATE], + 3939117080: [IFCRELASSIGNSTORESOURCE, IFCRELASSIGNSTOPRODUCT, IFCRELASSIGNSTOPROCESS, IFCRELASSIGNSTOGROUPBYFACTOR, IFCRELASSIGNSTOGROUP, IFCRELASSIGNSTOCONTROL, IFCRELASSIGNSTOACTOR], + 1307041759: [IFCRELASSIGNSTOGROUPBYFACTOR], + 1865459582: [IFCRELASSOCIATESMATERIAL, IFCRELASSOCIATESLIBRARY, IFCRELASSOCIATESDOCUMENT, IFCRELASSOCIATESCONSTRAINT, IFCRELASSOCIATESCLASSIFICATION, IFCRELASSOCIATESAPPROVAL], + 826625072: [IFCRELSPACEBOUNDARY2NDLEVEL, IFCRELSPACEBOUNDARY1STLEVEL, IFCRELSPACEBOUNDARY, IFCRELSERVICESBUILDINGS, IFCRELSEQUENCE, IFCRELREFERENCEDINSPATIALSTRUCTURE, IFCRELINTERFERESELEMENTS, IFCRELFLOWCONTROLELEMENTS, IFCRELFILLSELEMENT, IFCRELCOVERSSPACES, IFCRELCOVERSBLDGELEMENTS, IFCRELCONTAINEDINSPATIALSTRUCTURE, IFCRELCONNECTSWITHECCENTRICITY, IFCRELCONNECTSSTRUCTURALMEMBER, IFCRELCONNECTSSTRUCTURALACTIVITY, IFCRELCONNECTSPORTS, IFCRELCONNECTSPORTTOELEMENT, IFCRELCONNECTSWITHREALIZINGELEMENTS, IFCRELCONNECTSPATHELEMENTS, IFCRELCONNECTSELEMENTS], + 1204542856: [IFCRELCONNECTSWITHREALIZINGELEMENTS, IFCRELCONNECTSPATHELEMENTS], + 1638771189: [IFCRELCONNECTSWITHECCENTRICITY], + 2551354335: [IFCRELAGGREGATES, IFCRELVOIDSELEMENT, IFCRELPROJECTSELEMENT, IFCRELNESTS], + 693640335: [IFCRELDEFINESBYTYPE, IFCRELDEFINESBYTEMPLATE, IFCRELDEFINESBYPROPERTIES, IFCRELDEFINESBYOBJECT], + 3451746338: [IFCRELSPACEBOUNDARY2NDLEVEL, IFCRELSPACEBOUNDARY1STLEVEL], + 3523091289: [IFCRELSPACEBOUNDARY2NDLEVEL], + 2914609552: [IFCCONSTRUCTIONPRODUCTRESOURCE, IFCCONSTRUCTIONMATERIALRESOURCE, IFCCONSTRUCTIONEQUIPMENTRESOURCE, IFCSUBCONTRACTRESOURCE, IFCLABORRESOURCE, IFCCREWRESOURCE, IFCCONSTRUCTIONRESOURCE], + 1856042241: [IFCREVOLVEDAREASOLIDTAPERED], + 1412071761: [IFCEXTERNALSPATIALELEMENT, IFCEXTERNALSPATIALSTRUCTUREELEMENT, IFCSPATIALZONE, IFCSPACE, IFCSITE, IFCBUILDINGSTOREY, IFCBUILDING, IFCSPATIALSTRUCTUREELEMENT], + 710998568: [IFCSPATIALZONETYPE, IFCSPACETYPE, IFCSPATIALSTRUCTUREELEMENTTYPE], + 2706606064: [IFCSPACE, IFCSITE, IFCBUILDINGSTOREY, IFCBUILDING], + 3893378262: [IFCSPACETYPE], + 3544373492: [IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALSURFACEACTION, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALCURVEACTION, IFCSTRUCTURALACTION, IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALCURVEREACTION, IFCSTRUCTURALSURFACEREACTION, IFCSTRUCTURALREACTION], + 3136571912: [IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION, IFCSTRUCTURALCONNECTION, IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER, IFCSTRUCTURALMEMBER], + 530289379: [IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER], + 3689010777: [IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALCURVEREACTION, IFCSTRUCTURALSURFACEREACTION], + 3979015343: [IFCSTRUCTURALSURFACEMEMBERVARYING], + 699246055: [IFCSEAMCURVE, IFCINTERSECTIONCURVE], + 2387106220: [IFCPOLYGONALFACESET, IFCTRIANGULATEDFACESET], + 2296667514: [IFCOCCUPANT], + 1635779807: [IFCADVANCEDBREPWITHVOIDS], + 2887950389: [IFCRATIONALBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACEWITHKNOTS], + 167062518: [IFCRATIONALBSPLINESURFACEWITHKNOTS], + 1260505505: [IFCRATIONALBSPLINECURVEWITHKNOTS, IFCBSPLINECURVEWITHKNOTS, IFCBSPLINECURVE, IFCTRIMMEDCURVE, IFCPOLYLINE, IFCINDEXEDPOLYCURVE, IFCOUTERBOUNDARYCURVE, IFCBOUNDARYCURVE, IFCCOMPOSITECURVEONSURFACE, IFCCOMPOSITECURVE], + 1950629157: [IFCBUILDINGELEMENTPROXYTYPE, IFCBEAMTYPE, IFCWINDOWTYPE, IFCWALLTYPE, IFCSTAIRTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCSHADINGDEVICETYPE, IFCROOFTYPE, IFCRAMPTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCPLATETYPE, IFCPILETYPE, IFCMEMBERTYPE, IFCFOOTINGTYPE, IFCDOORTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOLUMNTYPE, IFCCHIMNEYTYPE], + 3732776249: [IFCOUTERBOUNDARYCURVE, IFCBOUNDARYCURVE, IFCCOMPOSITECURVEONSURFACE], + 15328376: [IFCOUTERBOUNDARYCURVE, IFCBOUNDARYCURVE], + 2510884976: [IFCCIRCLE, IFCELLIPSE], + 2559216714: [IFCCONSTRUCTIONPRODUCTRESOURCE, IFCCONSTRUCTIONMATERIALRESOURCE, IFCCONSTRUCTIONEQUIPMENTRESOURCE, IFCSUBCONTRACTRESOURCE, IFCLABORRESOURCE, IFCCREWRESOURCE], + 3293443760: [IFCACTIONREQUEST, IFCWORKSCHEDULE, IFCWORKPLAN, IFCWORKCONTROL, IFCWORKCALENDAR, IFCPROJECTORDER, IFCPERMIT, IFCPERFORMANCEHISTORY, IFCCOSTSCHEDULE, IFCCOSTITEM], + 3256556792: [IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCUNITARYCONTROLELEMENTTYPE, IFCSENSORTYPE, IFCPROTECTIVEDEVICETRIPPINGUNITTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMEDICALDEVICETYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE], + 3849074793: [IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMEDICALDEVICETYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE, IFCENERGYCONVERSIONDEVICETYPE], + 1758889154: [IFCCONTROLLER, IFCALARM, IFCACTUATOR, IFCUNITARYCONTROLELEMENT, IFCSENSOR, IFCPROTECTIVEDEVICETRIPPINGUNIT, IFCFLOWINSTRUMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFILTER, IFCDUCTSILENCER, IFCINTERCEPTOR, IFCFLOWTREATMENTDEVICE, IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSANITARYTERMINAL, IFCOUTLET, IFCMEDICALDEVICE, IFCLIGHTFIXTURE, IFCLAMP, IFCFLOWTERMINAL, IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK, IFCFLOWSTORAGEDEVICE, IFCDUCTSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT, IFCFLOWSEGMENT, IFCFAN, IFCCOMPRESSOR, IFCPUMP, IFCFLOWMOVINGDEVICE, IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX, IFCFLOWFITTING, IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER, IFCFLOWCONTROLLER, IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT, IFCDISTRIBUTIONELEMENT, IFCCIVILELEMENT, IFCBEAMSTANDARDCASE, IFCBEAM, IFCWINDOWSTANDARDCASE, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALLELEMENTEDCASE, IFCWALL, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLABSTANDARDCASE, IFCSLABELEMENTEDCASE, IFCSLAB, IFCSHADINGDEVICE, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCPLATESTANDARDCASE, IFCPLATE, IFCPILE, IFCMEMBERSTANDARDCASE, IFCMEMBER, IFCFOOTING, IFCDOORSTANDARDCASE, IFCDOOR, IFCCURTAINWALL, IFCCOVERING, IFCCOLUMNSTANDARDCASE, IFCCOLUMN, IFCCHIMNEY, IFCBUILDINGELEMENTPROXY, IFCBUILDINGELEMENT, IFCVIRTUALELEMENT, IFCTRANSPORTELEMENT, IFCGEOGRAPHICELEMENT, IFCSYSTEMFURNITUREELEMENT, IFCFURNITURE, IFCFURNISHINGELEMENT, IFCSURFACEFEATURE, IFCVOIDINGFEATURE, IFCOPENINGSTANDARDCASE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION, IFCFEATUREELEMENT, IFCDISCRETEACCESSORY, IFCBUILDINGELEMENTPART, IFCVIBRATIONISOLATOR, IFCREINFORCINGBAR, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCMECHANICALFASTENER, IFCFASTENER, IFCELEMENTCOMPONENT, IFCELEMENTASSEMBLY], + 1623761950: [IFCDISCRETEACCESSORY, IFCBUILDINGELEMENTPART, IFCVIBRATIONISOLATOR, IFCREINFORCINGBAR, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCMECHANICALFASTENER, IFCFASTENER], + 2590856083: [IFCDISCRETEACCESSORYTYPE, IFCBUILDINGELEMENTPARTTYPE, IFCVIBRATIONISOLATORTYPE, IFCREINFORCINGBARTYPE, IFCTENDONTYPE, IFCTENDONANCHORTYPE, IFCREINFORCINGMESHTYPE, IFCREINFORCINGELEMENTTYPE, IFCMECHANICALFASTENERTYPE, IFCFASTENERTYPE], + 2107101300: [IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE], + 2853485674: [IFCEXTERNALSPATIALELEMENT], + 807026263: [IFCFACETEDBREPWITHVOIDS], + 2827207264: [IFCSURFACEFEATURE, IFCVOIDINGFEATURE, IFCOPENINGSTANDARDCASE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION], + 2143335405: [IFCPROJECTIONELEMENT], + 1287392070: [IFCVOIDINGFEATURE, IFCOPENINGSTANDARDCASE, IFCOPENINGELEMENT], + 3907093117: [IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE], + 3198132628: [IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE], + 1482959167: [IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE], + 1834744321: [IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE], + 1339347760: [IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE], + 2297155007: [IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMEDICALDEVICETYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE], + 3009222698: [IFCFILTERTYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE], + 263784265: [IFCSYSTEMFURNITUREELEMENT, IFCFURNITURE], + 2706460486: [IFCASSET, IFCSTRUCTURALANALYSISMODEL, IFCDISTRIBUTIONCIRCUIT, IFCDISTRIBUTIONSYSTEM, IFCBUILDINGSYSTEM, IFCZONE, IFCSYSTEM, IFCSTRUCTURALRESULTGROUP, IFCSTRUCTURALLOADCASE, IFCSTRUCTURALLOADGROUP, IFCINVENTORY], + 3588315303: [IFCOPENINGSTANDARDCASE], + 3740093272: [IFCDISTRIBUTIONPORT], + 3027567501: [IFCREINFORCINGBAR, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH], + 964333572: [IFCREINFORCINGBARTYPE, IFCTENDONTYPE, IFCTENDONANCHORTYPE, IFCREINFORCINGMESHTYPE], + 682877961: [IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALSURFACEACTION, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALCURVEACTION], + 1179482911: [IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION], + 1004757350: [IFCSTRUCTURALLINEARACTION], + 214636428: [IFCSTRUCTURALCURVEMEMBERVARYING], + 1252848954: [IFCSTRUCTURALLOADCASE], + 3657597509: [IFCSTRUCTURALPLANARACTION], + 2254336722: [IFCSTRUCTURALANALYSISMODEL, IFCDISTRIBUTIONCIRCUIT, IFCDISTRIBUTIONSYSTEM, IFCBUILDINGSYSTEM, IFCZONE], + 1028945134: [IFCWORKSCHEDULE, IFCWORKPLAN], + 1967976161: [IFCRATIONALBSPLINECURVEWITHKNOTS, IFCBSPLINECURVEWITHKNOTS], + 2461110595: [IFCRATIONALBSPLINECURVEWITHKNOTS], + 1136057603: [IFCOUTERBOUNDARYCURVE], + 3299480353: [IFCBEAMSTANDARDCASE, IFCBEAM, IFCWINDOWSTANDARDCASE, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALLELEMENTEDCASE, IFCWALL, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLABSTANDARDCASE, IFCSLABELEMENTEDCASE, IFCSLAB, IFCSHADINGDEVICE, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCPLATESTANDARDCASE, IFCPLATE, IFCPILE, IFCMEMBERSTANDARDCASE, IFCMEMBER, IFCFOOTING, IFCDOORSTANDARDCASE, IFCDOOR, IFCCURTAINWALL, IFCCOVERING, IFCCOLUMNSTANDARDCASE, IFCCOLUMN, IFCCHIMNEY, IFCBUILDINGELEMENTPROXY], + 843113511: [IFCCOLUMNSTANDARDCASE], + 2063403501: [IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCUNITARYCONTROLELEMENTTYPE, IFCSENSORTYPE, IFCPROTECTIVEDEVICETRIPPINGUNITTYPE, IFCFLOWINSTRUMENTTYPE], + 1945004755: [IFCCONTROLLER, IFCALARM, IFCACTUATOR, IFCUNITARYCONTROLELEMENT, IFCSENSOR, IFCPROTECTIVEDEVICETRIPPINGUNIT, IFCFLOWINSTRUMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFILTER, IFCDUCTSILENCER, IFCINTERCEPTOR, IFCFLOWTREATMENTDEVICE, IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSANITARYTERMINAL, IFCOUTLET, IFCMEDICALDEVICE, IFCLIGHTFIXTURE, IFCLAMP, IFCFLOWTERMINAL, IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK, IFCFLOWSTORAGEDEVICE, IFCDUCTSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT, IFCFLOWSEGMENT, IFCFAN, IFCCOMPRESSOR, IFCPUMP, IFCFLOWMOVINGDEVICE, IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX, IFCFLOWFITTING, IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER, IFCFLOWCONTROLLER, IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT], + 3040386961: [IFCDISTRIBUTIONCHAMBERELEMENT, IFCFILTER, IFCDUCTSILENCER, IFCINTERCEPTOR, IFCFLOWTREATMENTDEVICE, IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSANITARYTERMINAL, IFCOUTLET, IFCMEDICALDEVICE, IFCLIGHTFIXTURE, IFCLAMP, IFCFLOWTERMINAL, IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK, IFCFLOWSTORAGEDEVICE, IFCDUCTSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT, IFCFLOWSEGMENT, IFCFAN, IFCCOMPRESSOR, IFCPUMP, IFCFLOWMOVINGDEVICE, IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX, IFCFLOWFITTING, IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER, IFCFLOWCONTROLLER, IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE, IFCENERGYCONVERSIONDEVICE], + 3205830791: [IFCDISTRIBUTIONCIRCUIT], + 395920057: [IFCDOORSTANDARDCASE], + 1658829314: [IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE], + 2058353004: [IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER], + 4278956645: [IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX], + 3132237377: [IFCFAN, IFCCOMPRESSOR, IFCPUMP], + 987401354: [IFCDUCTSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT], + 707683696: [IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK], + 2223149337: [IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSANITARYTERMINAL, IFCOUTLET, IFCMEDICALDEVICE, IFCLIGHTFIXTURE, IFCLAMP], + 3508470533: [IFCFILTER, IFCDUCTSILENCER, IFCINTERCEPTOR], + 1073191201: [IFCMEMBERSTANDARDCASE], + 3171933400: [IFCPLATESTANDARDCASE], + 1529196076: [IFCSLABSTANDARDCASE, IFCSLABELEMENTEDCASE], + 2391406946: [IFCWALLSTANDARDCASE, IFCWALLELEMENTEDCASE], + 3304561284: [IFCWINDOWSTANDARDCASE], + 753842376: [IFCBEAMSTANDARDCASE], + 1062813311: [IFCCONTROLLER, IFCALARM, IFCACTUATOR, IFCUNITARYCONTROLELEMENT, IFCSENSOR, IFCPROTECTIVEDEVICETRIPPINGUNIT, IFCFLOWINSTRUMENT] +}; +InversePropertyDef[2] = { + 3630933823: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]], + 618182010: [["OfPerson", IFCPERSON, 7, true], ["OfOrganization", IFCORGANIZATION, 4, true]], + 411424972: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]], + 130549933: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["ApprovedObjects", IFCRELASSOCIATESAPPROVAL, 5, true], ["ApprovedResources", IFCRESOURCEAPPROVALRELATIONSHIP, 3, true], ["IsRelatedWith", IFCAPPROVALRELATIONSHIP, 3, true], ["Relates", IFCAPPROVALRELATIONSHIP, 2, true]], + 1959218052: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PropertiesForConstraint", IFCRESOURCECONSTRAINTRELATIONSHIP, 2, true]], + 1466758467: [["HasCoordinateOperation", IFCCOORDINATEOPERATION, 0, true]], + 602808272: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]], + 3200245327: [["ExternalReferenceForResources", IFCEXTERNALREFERENCERELATIONSHIP, 2, true]], + 2242383968: [["ExternalReferenceForResources", IFCEXTERNALREFERENCERELATIONSHIP, 2, true]], + 1040185647: [["ExternalReferenceForResources", IFCEXTERNALREFERENCERELATIONSHIP, 2, true]], + 3548104201: [["ExternalReferenceForResources", IFCEXTERNALREFERENCERELATIONSHIP, 2, true]], + 852622518: [["PartOfW", IFCGRID, 9, true], ["PartOfV", IFCGRID, 8, true], ["PartOfU", IFCGRID, 7, true], ["HasIntersections", IFCVIRTUALGRIDINTERSECTION, 0, true]], + 2655187982: [["LibraryInfoForObjects", IFCRELASSOCIATESLIBRARY, 5, true], ["HasLibraryReferences", IFCLIBRARYREFERENCE, 5, true]], + 3452421091: [["ExternalReferenceForResources", IFCEXTERNALREFERENCERELATIONSHIP, 2, true], ["LibraryRefForObjects", IFCRELASSOCIATESLIBRARY, 5, true]], + 760658860: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true], ["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCMATERIALPROPERTIES, 3, true]], + 248100487: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true], ["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCMATERIALPROPERTIES, 3, true], ["ToMaterialLayerSet", IFCMATERIALLAYERSET, 0, false]], + 3303938423: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true], ["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCMATERIALPROPERTIES, 3, true]], + 1847252529: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true], ["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCMATERIALPROPERTIES, 3, true], ["ToMaterialLayerSet", IFCMATERIALLAYERSET, 0, false]], + 2235152071: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true], ["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCMATERIALPROPERTIES, 3, true], ["ToMaterialProfileSet", IFCMATERIALPROFILESET, 2, false]], + 164193824: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true], ["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCMATERIALPROPERTIES, 3, true]], + 552965576: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true], ["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCMATERIALPROPERTIES, 3, true], ["ToMaterialProfileSet", IFCMATERIALPROFILESET, 2, false]], + 1507914824: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true]], + 3368373690: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PropertiesForConstraint", IFCRESOURCECONSTRAINTRELATIONSHIP, 2, true]], + 3701648758: [["PlacesObject", IFCPRODUCT, 5, true], ["ReferencedByPlacements", IFCLOCALPLACEMENT, 0, true]], + 2251480897: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PropertiesForConstraint", IFCRESOURCECONSTRAINTRELATIONSHIP, 2, true]], + 4251960020: [["IsRelatedBy", IFCORGANIZATIONRELATIONSHIP, 3, true], ["Relates", IFCORGANIZATIONRELATIONSHIP, 2, true], ["Engages", IFCPERSONANDORGANIZATION, 1, true]], + 2077209135: [["EngagedIn", IFCPERSONANDORGANIZATION, 0, true]], + 2483315170: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]], + 2226359599: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]], + 3355820592: [["OfPerson", IFCPERSON, 7, true], ["OfOrganization", IFCORGANIZATION, 4, true]], + 3958567839: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], + 3843373140: [["HasCoordinateOperation", IFCCOORDINATEOPERATION, 0, true]], + 986844984: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]], + 3710013099: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]], + 2044713172: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]], + 2093928680: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]], + 931644368: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]], + 3252649465: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]], + 2405470396: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]], + 825690147: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]], + 1076942058: [["RepresentationMap", IFCREPRESENTATIONMAP, 1, true], ["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["OfProductRepresentation", IFCPRODUCTREPRESENTATION, 2, true]], + 3377609919: [["RepresentationsInContext", IFCREPRESENTATION, 0, true]], + 3008791417: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 1660063152: [["HasShapeAspects", IFCSHAPEASPECT, 4, true], ["MapUsage", IFCMAPPEDITEM, 0, true]], + 3982875396: [["RepresentationMap", IFCREPRESENTATIONMAP, 1, true], ["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["OfProductRepresentation", IFCPRODUCTREPRESENTATION, 2, true], ["OfShapeAspect", IFCSHAPEASPECT, 0, true]], + 4240577450: [["RepresentationMap", IFCREPRESENTATIONMAP, 1, true], ["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["OfProductRepresentation", IFCPRODUCTREPRESENTATION, 2, true], ["OfShapeAspect", IFCSHAPEASPECT, 0, true]], + 2830218821: [["RepresentationMap", IFCREPRESENTATIONMAP, 1, true], ["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["OfProductRepresentation", IFCPRODUCTREPRESENTATION, 2, true]], + 3958052878: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3049322572: [["RepresentationMap", IFCREPRESENTATIONMAP, 1, true], ["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["OfProductRepresentation", IFCPRODUCTREPRESENTATION, 2, true]], + 626085974: [["IsMappedBy", IFCTEXTURECOORDINATE, 0, true], ["UsedInStyles", IFCSURFACESTYLEWITHTEXTURES, 0, true]], + 912023232: [["OfPerson", IFCPERSON, 7, true], ["OfOrganization", IFCORGANIZATION, 4, true]], + 3101149627: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]], + 1377556343: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 1735638870: [["RepresentationMap", IFCREPRESENTATIONMAP, 1, true], ["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["OfProductRepresentation", IFCPRODUCTREPRESENTATION, 2, true], ["OfShapeAspect", IFCSHAPEASPECT, 0, true]], + 2799835756: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 1907098498: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3798115385: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], + 1310608509: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], + 2705031697: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], + 616511568: [["IsMappedBy", IFCTEXTURECOORDINATE, 0, true], ["UsedInStyles", IFCSURFACESTYLEWITHTEXTURES, 0, true]], + 3150382593: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], + 747523909: [["ClassificationForObjects", IFCRELASSOCIATESCLASSIFICATION, 5, true], ["HasReferences", IFCCLASSIFICATIONREFERENCE, 3, true]], + 647927063: [["ExternalReferenceForResources", IFCEXTERNALREFERENCERELATIONSHIP, 2, true], ["ClassificationRefForObjects", IFCRELASSOCIATESCLASSIFICATION, 5, true], ["HasReferences", IFCCLASSIFICATIONREFERENCE, 3, true]], + 1485152156: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], + 370225590: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3050246964: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]], + 2889183280: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]], + 2713554722: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]], + 3632507154: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], + 1154170062: [["DocumentInfoForObjects", IFCRELASSOCIATESDOCUMENT, 5, true], ["HasDocumentReferences", IFCDOCUMENTREFERENCE, 4, true], ["IsPointedTo", IFCDOCUMENTINFORMATIONRELATIONSHIP, 3, true], ["IsPointer", IFCDOCUMENTINFORMATIONRELATIONSHIP, 2, true]], + 3732053477: [["ExternalReferenceForResources", IFCEXTERNALREFERENCERELATIONSHIP, 2, true], ["DocumentRefForObjects", IFCRELASSOCIATESDOCUMENT, 5, true]], + 3900360178: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 476780140: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 297599258: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]], + 2556980723: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["HasTextureMaps", IFCTEXTUREMAP, 2, true]], + 1809719519: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 803316827: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3008276851: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["HasTextureMaps", IFCTEXTUREMAP, 2, true]], + 3448662350: [["RepresentationsInContext", IFCREPRESENTATION, 0, true], ["HasSubContexts", IFCGEOMETRICREPRESENTATIONSUBCONTEXT, 6, true], ["HasCoordinateOperation", IFCCOORDINATEOPERATION, 0, true]], + 2453401579: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 4142052618: [["RepresentationsInContext", IFCREPRESENTATION, 0, true], ["HasSubContexts", IFCGEOMETRICREPRESENTATIONSUBCONTEXT, 6, true], ["HasCoordinateOperation", IFCCOORDINATEOPERATION, 0, true]], + 3590301190: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 178086475: [["PlacesObject", IFCPRODUCT, 5, true], ["ReferencedByPlacements", IFCLOCALPLACEMENT, 0, true]], + 812098782: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3905492369: [["IsMappedBy", IFCTEXTURECOORDINATE, 0, true], ["UsedInStyles", IFCSURFACESTYLEWITHTEXTURES, 0, true]], + 3741457305: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]], + 1402838566: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 125510826: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2604431987: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 4266656042: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 1520743889: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3422422726: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2624227202: [["PlacesObject", IFCPRODUCT, 5, true], ["ReferencedByPlacements", IFCLOCALPLACEMENT, 0, true]], + 1008929658: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2347385850: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 1838606355: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true], ["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCMATERIALPROPERTIES, 3, true], ["HasRepresentation", IFCMATERIALDEFINITIONREPRESENTATION, 3, true], ["IsRelatedWith", IFCMATERIALRELATIONSHIP, 3, true], ["RelatesTo", IFCMATERIALRELATIONSHIP, 2, true]], + 3708119e3: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true], ["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCMATERIALPROPERTIES, 3, true], ["ToMaterialConstituentSet", IFCMATERIALCONSTITUENTSET, 2, false]], + 2852063980: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true], ["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCMATERIALPROPERTIES, 3, true]], + 1303795690: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true]], + 3079605661: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true]], + 3404854881: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true]], + 3265635763: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]], + 2998442950: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], + 219451334: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true]], + 2665983363: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 1029017970: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2529465313: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], + 2519244187: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3021840470: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]], + 597895409: [["IsMappedBy", IFCTEXTURECOORDINATE, 0, true], ["UsedInStyles", IFCSURFACESTYLEWITHTEXTURES, 0, true]], + 2004835150: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 1663979128: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2067069095: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 4022376103: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 1423911732: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2924175390: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2775532180: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3778827333: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]], + 673634403: [["ShapeOfProduct", IFCPRODUCT, 6, true], ["HasShapeAspects", IFCSHAPEASPECT, 4, true]], + 2802850158: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]], + 2598011224: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfPset", IFCPROPERTYSET, 4, true], ["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true], ["HasConstraints", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], ["HasApprovals", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]], + 1680319473: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true]], + 3357820518: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["DefinesType", IFCTYPEOBJECT, 5, true], ["IsDefinedBy", IFCRELDEFINESBYTEMPLATE, 4, true], ["DefinesOccurrence", IFCRELDEFINESBYPROPERTIES, 5, true]], + 1482703590: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true]], + 2090586900: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["DefinesType", IFCTYPEOBJECT, 5, true], ["IsDefinedBy", IFCRELDEFINESBYTEMPLATE, 4, true], ["DefinesOccurrence", IFCRELDEFINESBYPROPERTIES, 5, true]], + 3615266464: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], + 3413951693: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]], + 1580146022: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]], + 2778083089: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], + 2042790032: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]], + 4165799628: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]], + 1509187699: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 4124623270: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3692461612: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfPset", IFCPROPERTYSET, 4, true], ["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true], ["HasConstraints", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], ["HasApprovals", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]], + 723233188: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2233826070: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2513912981: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2247615214: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 1260650574: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 1096409881: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 230924584: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3071757647: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], + 901063453: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 4282788508: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3124975700: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2715220739: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], + 1628702193: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true]], + 3736923433: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["OperatesOn", IFCRELASSIGNSTOPROCESS, 6, true]], + 2347495698: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 3698973494: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], + 427810014: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], + 1417489154: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2759199220: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 1299126871: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 2543172580: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], + 3406155212: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["HasTextureMaps", IFCTEXTUREMAP, 2, true]], + 669184980: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3207858831: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], + 4261334040: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3125803723: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2740243338: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2736907675: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 4182860854: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2581212453: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2713105998: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2898889636: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], + 1123145078: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 574549367: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 1675464909: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2059837836: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 59481748: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3749851601: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3486308946: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3331915920: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 1416205885: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 1383045692: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], + 2205249479: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2542286263: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfPset", IFCPROPERTYSET, 4, true], ["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true], ["HasConstraints", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], ["HasApprovals", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]], + 2485617015: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["UsingCurves", IFCCOMPOSITECURVE, 0, true]], + 2574617495: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], + 3419103109: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Declares", IFCRELDECLARES, 4, true]], + 1815067380: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], + 2506170314: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2147822146: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2601014836: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2827736869: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2629017746: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 32440307: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 526551008: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1472233963: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 1883228015: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["DefinesType", IFCTYPEOBJECT, 5, true], ["IsDefinedBy", IFCRELDEFINESBYTEMPLATE, 4, true], ["DefinesOccurrence", IFCRELDEFINESBYPROPERTIES, 5, true]], + 339256511: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 2777663545: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2835456948: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], + 4024345920: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["OperatesOn", IFCRELASSIGNSTOPROCESS, 6, true]], + 477187591: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2804161546: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2047409740: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 374418227: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 315944413: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2652556860: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 4238390223: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1268542332: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 4095422895: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 987898635: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 1484403080: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], + 178912537: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["ToFaceSet", IFCPOLYGONALFACESET, 2, true]], + 2294589976: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["ToFaceSet", IFCPOLYGONALFACESET, 2, true]], + 572779678: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], + 428585644: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], + 1281925730: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 1425443689: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3888040117: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true]], + 3388369263: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3505215534: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 1682466193: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 603570806: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 220341763: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3967405729: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["DefinesType", IFCTYPEOBJECT, 5, true], ["IsDefinedBy", IFCRELDEFINESBYTEMPLATE, 4, true], ["DefinesOccurrence", IFCRELDEFINESBYPROPERTIES, 5, true]], + 569719735: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["OperatesOn", IFCRELASSIGNSTOPROCESS, 6, true]], + 2945172077: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsPredecessorTo", IFCRELSEQUENCE, 4, true], ["IsSuccessorFrom", IFCRELSEQUENCE, 5, true], ["OperatesOn", IFCRELASSIGNSTOPROCESS, 6, true]], + 4208778838: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 103090709: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Declares", IFCRELDECLARES, 4, true]], + 653396225: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Declares", IFCRELDECLARES, 4, true]], + 871118103: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfPset", IFCPROPERTYSET, 4, true], ["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true], ["HasConstraints", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], ["HasApprovals", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]], + 4166981789: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfPset", IFCPROPERTYSET, 4, true], ["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true], ["HasConstraints", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], ["HasApprovals", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]], + 2752243245: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfPset", IFCPROPERTYSET, 4, true], ["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true], ["HasConstraints", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], ["HasApprovals", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]], + 941946838: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfPset", IFCPROPERTYSET, 4, true], ["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true], ["HasConstraints", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], ["HasApprovals", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]], + 1451395588: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["DefinesType", IFCTYPEOBJECT, 5, true], ["IsDefinedBy", IFCRELDEFINESBYTEMPLATE, 4, true], ["DefinesOccurrence", IFCRELDEFINESBYPROPERTIES, 5, true]], + 492091185: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Defines", IFCRELDEFINESBYTEMPLATE, 5, true]], + 3650150729: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfPset", IFCPROPERTYSET, 4, true], ["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true], ["HasConstraints", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], ["HasApprovals", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]], + 110355661: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfPset", IFCPROPERTYSET, 4, true], ["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true], ["HasConstraints", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], ["HasApprovals", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]], + 3521284610: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["PartOfComplexTemplate", IFCCOMPLEXPROPERTYTEMPLATE, 6, true], ["PartOfPsetTemplate", IFCPROPERTYSETTEMPLATE, 6, true]], + 3219374653: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 2770003689: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], + 2798486643: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3454111270: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3765753017: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["DefinesType", IFCTYPEOBJECT, 5, true], ["IsDefinedBy", IFCRELDEFINESBYTEMPLATE, 4, true], ["DefinesOccurrence", IFCRELDEFINESBYPROPERTIES, 5, true]], + 3523091289: [["InnerBoundaries", IFCRELSPACEBOUNDARY1STLEVEL, 9, true]], + 1521410863: [["InnerBoundaries", IFCRELSPACEBOUNDARY1STLEVEL, 9, true], ["Corresponds", IFCRELSPACEBOUNDARY2NDLEVEL, 10, true]], + 816062949: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["UsingCurves", IFCCOMPOSITECURVE, 0, true]], + 2914609552: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], + 1856042241: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3243963512: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 4158566097: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3626867408: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3663146110: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["PartOfComplexTemplate", IFCCOMPLEXPROPERTYTEMPLATE, 6, true], ["PartOfPsetTemplate", IFCPROPERTYSETTEMPLATE, 6, true]], + 1412071761: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true]], + 710998568: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 2706606064: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true]], + 3893378262: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 463610769: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true]], + 2481509218: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 451544542: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 4015995234: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3544373492: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]], + 3136571912: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true]], + 530289379: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ConnectedBy", IFCRELCONNECTSSTRUCTURALMEMBER, 4, true]], + 3689010777: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]], + 3979015343: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ConnectedBy", IFCRELCONNECTSSTRUCTURALMEMBER, 4, true]], + 2218152070: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ConnectedBy", IFCRELCONNECTSSTRUCTURALMEMBER, 4, true]], + 603775116: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]], + 4095615324: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], + 699246055: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2028607225: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2809605785: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 4124788165: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 1580310250: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 3473067441: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsPredecessorTo", IFCRELSEQUENCE, 4, true], ["IsSuccessorFrom", IFCRELSEQUENCE, 5, true], ["OperatesOn", IFCRELASSIGNSTOPROCESS, 6, true]], + 3206491090: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["OperatesOn", IFCRELASSIGNSTOPROCESS, 6, true]], + 2387106220: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["HasColours", IFCINDEXEDCOLOURMAP, 0, true], ["HasTextures", IFCINDEXEDTEXTUREMAP, 1, true]], + 1935646853: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2097647324: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 2916149573: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["HasColours", IFCINDEXEDCOLOURMAP, 0, true], ["HasTextures", IFCINDEXEDTEXTUREMAP, 1, true]], + 336235671: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["DefinesType", IFCTYPEOBJECT, 5, true], ["IsDefinedBy", IFCRELDEFINESBYTEMPLATE, 4, true], ["DefinesOccurrence", IFCRELDEFINESBYPROPERTIES, 5, true]], + 512836454: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["DefinesType", IFCTYPEOBJECT, 5, true], ["IsDefinedBy", IFCRELDEFINESBYTEMPLATE, 4, true], ["DefinesOccurrence", IFCRELDEFINESBYPROPERTIES, 5, true]], + 2296667514: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsActingUpon", IFCRELASSIGNSTOACTOR, 6, true]], + 1635779807: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2603310189: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 1674181508: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], + 2887950389: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 167062518: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 1334484129: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3649129432: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 1260505505: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 4031249490: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true]], + 1950629157: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 3124254112: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true]], + 2197970202: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 2937912522: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], + 3893394355: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 300633059: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 3875453745: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["PartOfComplexTemplate", IFCCOMPLEXPROPERTYTEMPLATE, 6, true], ["PartOfPsetTemplate", IFCPROPERTYSETTEMPLATE, 6, true]], + 3732776249: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 15328376: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2510884976: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2185764099: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], + 4105962743: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], + 1525564444: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], + 2559216714: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], + 3293443760: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], + 3895139033: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], + 1419761937: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], + 1916426348: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 3295246426: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], + 1457835157: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1213902940: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3256556792: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 3849074793: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 2963535650: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["DefinesType", IFCTYPEOBJECT, 5, true], ["IsDefinedBy", IFCRELDEFINESBYTEMPLATE, 4, true], ["DefinesOccurrence", IFCRELDEFINESBYPROPERTIES, 5, true]], + 1714330368: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["DefinesType", IFCTYPEOBJECT, 5, true], ["IsDefinedBy", IFCRELDEFINESBYTEMPLATE, 4, true], ["DefinesOccurrence", IFCRELDEFINESBYPROPERTIES, 5, true]], + 2323601079: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1758889154: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], + 4123344466: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], + 2397081782: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1623761950: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], + 2590856083: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1704287377: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2107101300: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 132023988: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 3174744832: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 3390157468: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 4148101412: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsPredecessorTo", IFCRELSEQUENCE, 4, true], ["IsSuccessorFrom", IFCRELSEQUENCE, 5, true], ["OperatesOn", IFCRELASSIGNSTOPROCESS, 6, true]], + 2853485674: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true]], + 807026263: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3737207727: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 647756555: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], + 2489546625: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 2827207264: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], + 2143335405: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["ProjectsElements", IFCRELPROJECTSELEMENT, 5, false]], + 1287392070: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["VoidsElements", IFCRELVOIDSELEMENT, 5, false]], + 3907093117: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 3198132628: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 3815607619: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1482959167: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1834744321: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1339347760: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 2297155007: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 3009222698: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1893162501: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 263784265: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], + 1509553395: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], + 3493046030: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], + 3009204131: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], + 2706460486: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, true]], + 1251058090: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1806887404: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 2571569899: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3946677679: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 3113134337: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2391368822: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, true]], + 4288270099: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 3827777499: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], + 1051575348: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1161773419: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 377706215: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], + 2108223431: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1114901282: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 3181161470: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 977012517: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 4143007308: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsActingUpon", IFCRELASSIGNSTOACTOR, 6, true]], + 3588315303: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["VoidsElements", IFCRELVOIDSELEMENT, 5, false], ["HasFillings", IFCRELFILLSELEMENT, 4, true]], + 3079942009: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["VoidsElements", IFCRELVOIDSELEMENT, 5, false], ["HasFillings", IFCRELFILLSELEMENT, 4, true]], + 2837617999: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 2382730787: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], + 3566463478: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["DefinesType", IFCTYPEOBJECT, 5, true], ["IsDefinedBy", IFCRELDEFINESBYTEMPLATE, 4, true], ["DefinesOccurrence", IFCRELDEFINESBYPROPERTIES, 5, true]], + 3327091369: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], + 1158309216: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 804291784: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 4231323485: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 4017108033: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 2839578677: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["HasColours", IFCINDEXEDCOLOURMAP, 0, true], ["HasTextures", IFCINDEXEDTEXTUREMAP, 1, true]], + 3724593414: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3740093272: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["ContainedIn", IFCRELCONNECTSPORTTOELEMENT, 4, true], ["ConnectedFrom", IFCRELCONNECTSPORTS, 5, true], ["ConnectedTo", IFCRELCONNECTSPORTS, 4, true]], + 2744685151: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsPredecessorTo", IFCRELSEQUENCE, 4, true], ["IsSuccessorFrom", IFCRELSEQUENCE, 5, true], ["OperatesOn", IFCRELASSIGNSTOPROCESS, 6, true]], + 2904328755: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], + 3651124850: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["ProjectsElements", IFCRELPROJECTSELEMENT, 5, false]], + 1842657554: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 2250791053: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 2893384427: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 2324767716: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1469900589: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 683857671: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3027567501: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], + 964333572: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 2320036040: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], + 2310774935: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 2781568857: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1768891740: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 2157484638: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 4074543187: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 4097777520: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true]], + 2533589738: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1072016465: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 3856911033: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["HasCoverings", IFCRELCOVERSSPACES, 4, true], ["BoundedBy", IFCRELSPACEBOUNDARY, 4, true]], + 1305183839: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 3812236995: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 3112655638: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1039846685: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 338393293: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 682877961: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]], + 1179482911: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ConnectsStructuralMembers", IFCRELCONNECTSSTRUCTURALMEMBER, 5, true]], + 1004757350: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]], + 4243806635: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ConnectsStructuralMembers", IFCRELCONNECTSSTRUCTURALMEMBER, 5, true]], + 214636428: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ConnectedBy", IFCRELCONNECTSSTRUCTURALMEMBER, 4, true]], + 2445595289: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ConnectedBy", IFCRELCONNECTSSTRUCTURALMEMBER, 4, true]], + 2757150158: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]], + 1807405624: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]], + 1252848954: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, true], ["SourceOfResultGroup", IFCSTRUCTURALRESULTGROUP, 6, true], ["LoadGroupFor", IFCSTRUCTURALANALYSISMODEL, 7, true]], + 2082059205: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]], + 734778138: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ConnectsStructuralMembers", IFCRELCONNECTSSTRUCTURALMEMBER, 5, true]], + 1235345126: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]], + 2986769608: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, true], ["ResultGroupFor", IFCSTRUCTURALANALYSISMODEL, 8, true]], + 3657597509: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]], + 1975003073: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ConnectsStructuralMembers", IFCRELCONNECTSSTRUCTURALMEMBER, 5, true]], + 148013059: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], + 3101698114: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], + 2315554128: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 2254336722: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, true], ["ServicesBuildings", IFCRELSERVICESBUILDINGS, 4, true]], + 413509423: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], + 5716631: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 3824725483: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], + 2347447852: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], + 3081323446: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 2415094496: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1692211062: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1620046519: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], + 3593883385: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 1600972822: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1911125066: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 728799441: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 2391383451: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], + 3313531582: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 2769231204: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], + 926996030: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["VoidsElements", IFCRELVOIDSELEMENT, 5, false]], + 1898987631: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1133259667: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 4009809668: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 4088093105: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], + 1028945134: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], + 4218914973: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], + 3342526732: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], + 1033361043: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, true], ["ServicesBuildings", IFCRELSERVICESBUILDINGS, 4, true]], + 3821786052: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], + 1411407467: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 3352864051: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1871374353: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 3460190687: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, true]], + 1532957894: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1967976161: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2461110595: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 819618141: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 231477066: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1136057603: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3299480353: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], + 2979338954: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], + 39481116: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1095909175: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], + 1909888760: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1177604601: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, true], ["ServicesBuildings", IFCRELSERVICESBUILDINGS, 4, true]], + 2188180465: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 395041908: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 3293546465: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 2674252688: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1285652485: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 2951183804: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 3296154744: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], + 2611217952: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 1677625105: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], + 2301859152: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 843113511: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], + 905975707: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], + 400855858: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 3850581409: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 2816379211: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 3898045240: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], + 1060000209: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], + 488727124: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], + 335055490: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 2954562838: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1973544240: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["CoversSpaces", IFCRELCOVERSSPACES, 5, true], ["CoversElements", IFCRELCOVERSBLDGELEMENTS, 5, true]], + 3495092785: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], + 3961806047: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1335981549: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], + 2635815018: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1599208980: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 2063403501: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1945004755: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true]], + 3040386961: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 3041715199: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["ContainedIn", IFCRELCONNECTSPORTTOELEMENT, 4, true], ["ConnectedFrom", IFCRELCONNECTSPORTS, 5, true], ["ConnectedTo", IFCRELCONNECTSPORTS, 4, true]], + 3205830791: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, true], ["ServicesBuildings", IFCRELSERVICESBUILDINGS, 4, true]], + 395920057: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], + 3242481149: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], + 869906466: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 3760055223: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 2030761528: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 663422040: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 2417008758: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 3277789161: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1534661035: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1217240411: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 712377611: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1658829314: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 2814081492: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 3747195512: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 484807127: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 1209101575: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["BoundedBy", IFCRELSPACEBOUNDARY, 4, true]], + 346874300: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1810631287: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 4222183408: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 2058353004: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 4278956645: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 4037862832: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 2188021234: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 3132237377: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 987401354: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 707683696: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 2223149337: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 3508470533: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 900683007: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], + 3319311131: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 2068733104: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 4175244083: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 2176052936: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 76236018: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 629592764: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 1437502449: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 1073191201: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], + 1911478936: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], + 2474470126: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 144952367: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3694346114: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 1687234759: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], + 310824031: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 3612865200: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 3171933400: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], + 1156407060: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], + 738039164: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 655969474: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 90941305: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 2262370178: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], + 3024970846: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], + 3283111854: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], + 1232101972: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 979691226: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], + 2572171363: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 2016517767: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], + 3053780830: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 1783015770: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1329646415: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], + 1529196076: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], + 3127900445: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], + 3027962421: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], + 3420628829: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 1999602285: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 1404847402: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 331165859: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], + 4252922144: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], + 2515109513: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, true], ["ServicesBuildings", IFCRELSERVICESBUILDINGS, 4, true]], + 385403989: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, true], ["SourceOfResultGroup", IFCSTRUCTURALRESULTGROUP, 6, true], ["LoadGroupFor", IFCSTRUCTURALANALYSISMODEL, 7, true]], + 1621171031: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]], + 1162798199: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 812556717: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 3825984169: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 3026737570: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 3179687236: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 4292641817: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 4207607924: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 2391406946: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], + 4156078855: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], + 3512223829: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], + 4237592921: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 3304561284: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], + 486154966: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], + 2874132201: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1634111441: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 177149247: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 2056796094: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 3001207471: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 277319702: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 753842376: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], + 2906023776: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], + 32344328: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 2938176219: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 635142910: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 3758799889: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 1051757585: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 4217484030: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 3902619387: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 639361253: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 3221913625: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 3571504051: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 2272882330: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 578613899: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 4136498852: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 3640358203: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 4074379575: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 1052013943: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 562808652: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, true], ["ServicesBuildings", IFCRELSERVICESBUILDINGS, 4, true]], + 1062813311: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["AssignedToFlowElement", IFCRELFLOWCONTROLELEMENTS, 4, true]], + 342316401: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 3518393246: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 1360408905: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 1904799276: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 862014818: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 3310460725: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 264262732: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 402227799: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 1003880860: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 3415622556: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 819412036: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 1426591983: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 182646315: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["AssignedToFlowElement", IFCRELFLOWCONTROLELEMENTS, 4, true]], + 2295281155: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["AssignedToFlowElement", IFCRELFLOWCONTROLELEMENTS, 4, true]], + 4086658281: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["AssignedToFlowElement", IFCRELFLOWCONTROLELEMENTS, 4, true]], + 630975310: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["AssignedToFlowElement", IFCRELFLOWCONTROLELEMENTS, 4, true]], + 4288193352: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["AssignedToFlowElement", IFCRELFLOWCONTROLELEMENTS, 4, true]], + 3087945054: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["AssignedToFlowElement", IFCRELFLOWCONTROLELEMENTS, 4, true]], + 25142252: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["AssignedToFlowElement", IFCRELFLOWCONTROLELEMENTS, 4, true]] +}; +Constructors[2] = { + 3630933823: (a) => new IFC4$1.IfcActorRole(a[0], a[1], a[2]), + 618182010: (a) => new IFC4$1.IfcAddress(a[0], a[1], a[2]), + 639542469: (a) => new IFC4$1.IfcApplication(a[0], a[1], a[2], a[3]), + 411424972: (a) => new IFC4$1.IfcAppliedValue(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 130549933: (a) => new IFC4$1.IfcApproval(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 4037036970: (a) => new IFC4$1.IfcBoundaryCondition(a[0]), + 1560379544: (a) => new IFC4$1.IfcBoundaryEdgeCondition(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 3367102660: (a) => new IFC4$1.IfcBoundaryFaceCondition(a[0], a[1], a[2], a[3]), + 1387855156: (a) => new IFC4$1.IfcBoundaryNodeCondition(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 2069777674: (a) => new IFC4$1.IfcBoundaryNodeConditionWarping(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 2859738748: (_) => new IFC4$1.IfcConnectionGeometry(), + 2614616156: (a) => new IFC4$1.IfcConnectionPointGeometry(a[0], a[1]), + 2732653382: (a) => new IFC4$1.IfcConnectionSurfaceGeometry(a[0], a[1]), + 775493141: (a) => new IFC4$1.IfcConnectionVolumeGeometry(a[0], a[1]), + 1959218052: (a) => new IFC4$1.IfcConstraint(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 1785450214: (a) => new IFC4$1.IfcCoordinateOperation(a[0], a[1]), + 1466758467: (a) => new IFC4$1.IfcCoordinateReferenceSystem(a[0], a[1], a[2], a[3]), + 602808272: (a) => new IFC4$1.IfcCostValue(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1765591967: (a) => new IFC4$1.IfcDerivedUnit(a[0], a[1], a[2]), + 1045800335: (a) => new IFC4$1.IfcDerivedUnitElement(a[0], a[1]), + 2949456006: (a) => new IFC4$1.IfcDimensionalExponents(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 4294318154: (_) => new IFC4$1.IfcExternalInformation(), + 3200245327: (a) => new IFC4$1.IfcExternalReference(a[0], a[1], a[2]), + 2242383968: (a) => new IFC4$1.IfcExternallyDefinedHatchStyle(a[0], a[1], a[2]), + 1040185647: (a) => new IFC4$1.IfcExternallyDefinedSurfaceStyle(a[0], a[1], a[2]), + 3548104201: (a) => new IFC4$1.IfcExternallyDefinedTextFont(a[0], a[1], a[2]), + 852622518: (a) => new IFC4$1.IfcGridAxis(a[0], a[1], a[2]), + 3020489413: (a) => new IFC4$1.IfcIrregularTimeSeriesValue(a[0], a[1]), + 2655187982: (a) => new IFC4$1.IfcLibraryInformation(a[0], a[1], a[2], a[3], a[4], a[5]), + 3452421091: (a) => new IFC4$1.IfcLibraryReference(a[0], a[1], a[2], a[3], a[4], a[5]), + 4162380809: (a) => new IFC4$1.IfcLightDistributionData(a[0], a[1], a[2]), + 1566485204: (a) => new IFC4$1.IfcLightIntensityDistribution(a[0], a[1]), + 3057273783: (a) => new IFC4$1.IfcMapConversion(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 1847130766: (a) => new IFC4$1.IfcMaterialClassificationRelationship(a[0], a[1]), + 760658860: (_) => new IFC4$1.IfcMaterialDefinition(), + 248100487: (a) => new IFC4$1.IfcMaterialLayer(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 3303938423: (a) => new IFC4$1.IfcMaterialLayerSet(a[0], a[1], a[2]), + 1847252529: (a) => new IFC4$1.IfcMaterialLayerWithOffsets(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2199411900: (a) => new IFC4$1.IfcMaterialList(a[0]), + 2235152071: (a) => new IFC4$1.IfcMaterialProfile(a[0], a[1], a[2], a[3], a[4], a[5]), + 164193824: (a) => new IFC4$1.IfcMaterialProfileSet(a[0], a[1], a[2], a[3]), + 552965576: (a) => new IFC4$1.IfcMaterialProfileWithOffsets(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 1507914824: (_) => new IFC4$1.IfcMaterialUsageDefinition(), + 2597039031: (a) => new IFC4$1.IfcMeasureWithUnit(a[0], a[1]), + 3368373690: (a) => new IFC4$1.IfcMetric(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), + 2706619895: (a) => new IFC4$1.IfcMonetaryUnit(a[0]), + 1918398963: (a) => new IFC4$1.IfcNamedUnit(a[0], a[1]), + 3701648758: (_) => new IFC4$1.IfcObjectPlacement(), + 2251480897: (a) => new IFC4$1.IfcObjective(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), + 4251960020: (a) => new IFC4$1.IfcOrganization(a[0], a[1], a[2], a[3], a[4]), + 1207048766: (a) => new IFC4$1.IfcOwnerHistory(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 2077209135: (a) => new IFC4$1.IfcPerson(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 101040310: (a) => new IFC4$1.IfcPersonAndOrganization(a[0], a[1], a[2]), + 2483315170: (a) => new IFC4$1.IfcPhysicalQuantity(a[0], a[1]), + 2226359599: (a) => new IFC4$1.IfcPhysicalSimpleQuantity(a[0], a[1], a[2]), + 3355820592: (a) => new IFC4$1.IfcPostalAddress(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 677532197: (_) => new IFC4$1.IfcPresentationItem(), + 2022622350: (a) => new IFC4$1.IfcPresentationLayerAssignment(a[0], a[1], a[2], a[3]), + 1304840413: (a) => new IFC4$1.IfcPresentationLayerWithStyle(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 3119450353: (a) => new IFC4$1.IfcPresentationStyle(a[0]), + 2417041796: (a) => new IFC4$1.IfcPresentationStyleAssignment(a[0]), + 2095639259: (a) => new IFC4$1.IfcProductRepresentation(a[0], a[1], a[2]), + 3958567839: (a) => new IFC4$1.IfcProfileDef(a[0], a[1]), + 3843373140: (a) => new IFC4$1.IfcProjectedCRS(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 986844984: (_) => new IFC4$1.IfcPropertyAbstraction(), + 3710013099: (a) => new IFC4$1.IfcPropertyEnumeration(a[0], a[1], a[2]), + 2044713172: (a) => new IFC4$1.IfcQuantityArea(a[0], a[1], a[2], a[3], a[4]), + 2093928680: (a) => new IFC4$1.IfcQuantityCount(a[0], a[1], a[2], a[3], a[4]), + 931644368: (a) => new IFC4$1.IfcQuantityLength(a[0], a[1], a[2], a[3], a[4]), + 3252649465: (a) => new IFC4$1.IfcQuantityTime(a[0], a[1], a[2], a[3], a[4]), + 2405470396: (a) => new IFC4$1.IfcQuantityVolume(a[0], a[1], a[2], a[3], a[4]), + 825690147: (a) => new IFC4$1.IfcQuantityWeight(a[0], a[1], a[2], a[3], a[4]), + 3915482550: (a) => new IFC4$1.IfcRecurrencePattern(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 2433181523: (a) => new IFC4$1.IfcReference(a[0], a[1], a[2], a[3], a[4]), + 1076942058: (a) => new IFC4$1.IfcRepresentation(a[0], a[1], a[2], a[3]), + 3377609919: (a) => new IFC4$1.IfcRepresentationContext(a[0], a[1]), + 3008791417: (_) => new IFC4$1.IfcRepresentationItem(), + 1660063152: (a) => new IFC4$1.IfcRepresentationMap(a[0], a[1]), + 2439245199: (a) => new IFC4$1.IfcResourceLevelRelationship(a[0], a[1]), + 2341007311: (a) => new IFC4$1.IfcRoot(a[0], a[1], a[2], a[3]), + 448429030: (a) => new IFC4$1.IfcSIUnit(a[0], a[1], a[2]), + 1054537805: (a) => new IFC4$1.IfcSchedulingTime(a[0], a[1], a[2]), + 867548509: (a) => new IFC4$1.IfcShapeAspect(a[0], a[1], a[2], a[3], a[4]), + 3982875396: (a) => new IFC4$1.IfcShapeModel(a[0], a[1], a[2], a[3]), + 4240577450: (a) => new IFC4$1.IfcShapeRepresentation(a[0], a[1], a[2], a[3]), + 2273995522: (a) => new IFC4$1.IfcStructuralConnectionCondition(a[0]), + 2162789131: (a) => new IFC4$1.IfcStructuralLoad(a[0]), + 3478079324: (a) => new IFC4$1.IfcStructuralLoadConfiguration(a[0], a[1], a[2]), + 609421318: (a) => new IFC4$1.IfcStructuralLoadOrResult(a[0]), + 2525727697: (a) => new IFC4$1.IfcStructuralLoadStatic(a[0]), + 3408363356: (a) => new IFC4$1.IfcStructuralLoadTemperature(a[0], a[1], a[2], a[3]), + 2830218821: (a) => new IFC4$1.IfcStyleModel(a[0], a[1], a[2], a[3]), + 3958052878: (a) => new IFC4$1.IfcStyledItem(a[0], a[1], a[2]), + 3049322572: (a) => new IFC4$1.IfcStyledRepresentation(a[0], a[1], a[2], a[3]), + 2934153892: (a) => new IFC4$1.IfcSurfaceReinforcementArea(a[0], a[1], a[2], a[3]), + 1300840506: (a) => new IFC4$1.IfcSurfaceStyle(a[0], a[1], a[2]), + 3303107099: (a) => new IFC4$1.IfcSurfaceStyleLighting(a[0], a[1], a[2], a[3]), + 1607154358: (a) => new IFC4$1.IfcSurfaceStyleRefraction(a[0], a[1]), + 846575682: (a) => new IFC4$1.IfcSurfaceStyleShading(a[0], a[1]), + 1351298697: (a) => new IFC4$1.IfcSurfaceStyleWithTextures(a[0]), + 626085974: (a) => new IFC4$1.IfcSurfaceTexture(a[0], a[1], a[2], a[3], a[4]), + 985171141: (a) => new IFC4$1.IfcTable(a[0], a[1], a[2]), + 2043862942: (a) => new IFC4$1.IfcTableColumn(a[0], a[1], a[2], a[3], a[4]), + 531007025: (a) => new IFC4$1.IfcTableRow(a[0], a[1]), + 1549132990: (a) => new IFC4$1.IfcTaskTime(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17], a[18], a[19]), + 2771591690: (a) => new IFC4$1.IfcTaskTimeRecurring(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17], a[18], a[19], a[20]), + 912023232: (a) => new IFC4$1.IfcTelecomAddress(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1447204868: (a) => new IFC4$1.IfcTextStyle(a[0], a[1], a[2], a[3], a[4]), + 2636378356: (a) => new IFC4$1.IfcTextStyleForDefinedFont(a[0], a[1]), + 1640371178: (a) => new IFC4$1.IfcTextStyleTextModel(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 280115917: (a) => new IFC4$1.IfcTextureCoordinate(a[0]), + 1742049831: (a) => new IFC4$1.IfcTextureCoordinateGenerator(a[0], a[1], a[2]), + 2552916305: (a) => new IFC4$1.IfcTextureMap(a[0], a[1], a[2]), + 1210645708: (a) => new IFC4$1.IfcTextureVertex(a[0]), + 3611470254: (a) => new IFC4$1.IfcTextureVertexList(a[0]), + 1199560280: (a) => new IFC4$1.IfcTimePeriod(a[0], a[1]), + 3101149627: (a) => new IFC4$1.IfcTimeSeries(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 581633288: (a) => new IFC4$1.IfcTimeSeriesValue(a[0]), + 1377556343: (_) => new IFC4$1.IfcTopologicalRepresentationItem(), + 1735638870: (a) => new IFC4$1.IfcTopologyRepresentation(a[0], a[1], a[2], a[3]), + 180925521: (a) => new IFC4$1.IfcUnitAssignment(a[0]), + 2799835756: (_) => new IFC4$1.IfcVertex(), + 1907098498: (a) => new IFC4$1.IfcVertexPoint(a[0]), + 891718957: (a) => new IFC4$1.IfcVirtualGridIntersection(a[0], a[1]), + 1236880293: (a) => new IFC4$1.IfcWorkTime(a[0], a[1], a[2], a[3], a[4], a[5]), + 3869604511: (a) => new IFC4$1.IfcApprovalRelationship(a[0], a[1], a[2], a[3]), + 3798115385: (a) => new IFC4$1.IfcArbitraryClosedProfileDef(a[0], a[1], a[2]), + 1310608509: (a) => new IFC4$1.IfcArbitraryOpenProfileDef(a[0], a[1], a[2]), + 2705031697: (a) => new IFC4$1.IfcArbitraryProfileDefWithVoids(a[0], a[1], a[2], a[3]), + 616511568: (a) => new IFC4$1.IfcBlobTexture(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 3150382593: (a) => new IFC4$1.IfcCenterLineProfileDef(a[0], a[1], a[2], a[3]), + 747523909: (a) => new IFC4$1.IfcClassification(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 647927063: (a) => new IFC4$1.IfcClassificationReference(a[0], a[1], a[2], a[3], a[4], a[5]), + 3285139300: (a) => new IFC4$1.IfcColourRgbList(a[0]), + 3264961684: (a) => new IFC4$1.IfcColourSpecification(a[0]), + 1485152156: (a) => new IFC4$1.IfcCompositeProfileDef(a[0], a[1], a[2], a[3]), + 370225590: (a) => new IFC4$1.IfcConnectedFaceSet(a[0]), + 1981873012: (a) => new IFC4$1.IfcConnectionCurveGeometry(a[0], a[1]), + 45288368: (a) => new IFC4$1.IfcConnectionPointEccentricity(a[0], a[1], a[2], a[3], a[4]), + 3050246964: (a) => new IFC4$1.IfcContextDependentUnit(a[0], a[1], a[2]), + 2889183280: (a) => new IFC4$1.IfcConversionBasedUnit(a[0], a[1], a[2], a[3]), + 2713554722: (a) => new IFC4$1.IfcConversionBasedUnitWithOffset(a[0], a[1], a[2], a[3], a[4]), + 539742890: (a) => new IFC4$1.IfcCurrencyRelationship(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 3800577675: (a) => new IFC4$1.IfcCurveStyle(a[0], a[1], a[2], a[3], a[4]), + 1105321065: (a) => new IFC4$1.IfcCurveStyleFont(a[0], a[1]), + 2367409068: (a) => new IFC4$1.IfcCurveStyleFontAndScaling(a[0], a[1], a[2]), + 3510044353: (a) => new IFC4$1.IfcCurveStyleFontPattern(a[0], a[1]), + 3632507154: (a) => new IFC4$1.IfcDerivedProfileDef(a[0], a[1], a[2], a[3], a[4]), + 1154170062: (a) => new IFC4$1.IfcDocumentInformation(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16]), + 770865208: (a) => new IFC4$1.IfcDocumentInformationRelationship(a[0], a[1], a[2], a[3], a[4]), + 3732053477: (a) => new IFC4$1.IfcDocumentReference(a[0], a[1], a[2], a[3], a[4]), + 3900360178: (a) => new IFC4$1.IfcEdge(a[0], a[1]), + 476780140: (a) => new IFC4$1.IfcEdgeCurve(a[0], a[1], a[2], a[3]), + 211053100: (a) => new IFC4$1.IfcEventTime(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 297599258: (a) => new IFC4$1.IfcExtendedProperties(a[0], a[1], a[2]), + 1437805879: (a) => new IFC4$1.IfcExternalReferenceRelationship(a[0], a[1], a[2], a[3]), + 2556980723: (a) => new IFC4$1.IfcFace(a[0]), + 1809719519: (a) => new IFC4$1.IfcFaceBound(a[0], a[1]), + 803316827: (a) => new IFC4$1.IfcFaceOuterBound(a[0], a[1]), + 3008276851: (a) => new IFC4$1.IfcFaceSurface(a[0], a[1], a[2]), + 4219587988: (a) => new IFC4$1.IfcFailureConnectionCondition(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 738692330: (a) => new IFC4$1.IfcFillAreaStyle(a[0], a[1], a[2]), + 3448662350: (a) => new IFC4$1.IfcGeometricRepresentationContext(a[0], a[1], a[2], a[3], a[4], a[5]), + 2453401579: (_) => new IFC4$1.IfcGeometricRepresentationItem(), + 4142052618: (a) => new IFC4$1.IfcGeometricRepresentationSubContext(a[0], a[1], a[2], a[3], a[4], a[5]), + 3590301190: (a) => new IFC4$1.IfcGeometricSet(a[0]), + 178086475: (a) => new IFC4$1.IfcGridPlacement(a[0], a[1]), + 812098782: (a) => new IFC4$1.IfcHalfSpaceSolid(a[0], a[1]), + 3905492369: (a) => new IFC4$1.IfcImageTexture(a[0], a[1], a[2], a[3], a[4], a[5]), + 3570813810: (a) => new IFC4$1.IfcIndexedColourMap(a[0], a[1], a[2], a[3]), + 1437953363: (a) => new IFC4$1.IfcIndexedTextureMap(a[0], a[1], a[2]), + 2133299955: (a) => new IFC4$1.IfcIndexedTriangleTextureMap(a[0], a[1], a[2], a[3]), + 3741457305: (a) => new IFC4$1.IfcIrregularTimeSeries(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1585845231: (a) => new IFC4$1.IfcLagTime(a[0], a[1], a[2], a[3], a[4]), + 1402838566: (a) => new IFC4$1.IfcLightSource(a[0], a[1], a[2], a[3]), + 125510826: (a) => new IFC4$1.IfcLightSourceAmbient(a[0], a[1], a[2], a[3]), + 2604431987: (a) => new IFC4$1.IfcLightSourceDirectional(a[0], a[1], a[2], a[3], a[4]), + 4266656042: (a) => new IFC4$1.IfcLightSourceGoniometric(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1520743889: (a) => new IFC4$1.IfcLightSourcePositional(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3422422726: (a) => new IFC4$1.IfcLightSourceSpot(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]), + 2624227202: (a) => new IFC4$1.IfcLocalPlacement(a[0], a[1]), + 1008929658: (_) => new IFC4$1.IfcLoop(), + 2347385850: (a) => new IFC4$1.IfcMappedItem(a[0], a[1]), + 1838606355: (a) => new IFC4$1.IfcMaterial(a[0], a[1], a[2]), + 3708119e3: (a) => new IFC4$1.IfcMaterialConstituent(a[0], a[1], a[2], a[3], a[4]), + 2852063980: (a) => new IFC4$1.IfcMaterialConstituentSet(a[0], a[1], a[2]), + 2022407955: (a) => new IFC4$1.IfcMaterialDefinitionRepresentation(a[0], a[1], a[2], a[3]), + 1303795690: (a) => new IFC4$1.IfcMaterialLayerSetUsage(a[0], a[1], a[2], a[3], a[4]), + 3079605661: (a) => new IFC4$1.IfcMaterialProfileSetUsage(a[0], a[1], a[2]), + 3404854881: (a) => new IFC4$1.IfcMaterialProfileSetUsageTapering(a[0], a[1], a[2], a[3], a[4]), + 3265635763: (a) => new IFC4$1.IfcMaterialProperties(a[0], a[1], a[2], a[3]), + 853536259: (a) => new IFC4$1.IfcMaterialRelationship(a[0], a[1], a[2], a[3], a[4]), + 2998442950: (a) => new IFC4$1.IfcMirroredProfileDef(a[0], a[1], a[2], a[3]), + 219451334: (a) => new IFC4$1.IfcObjectDefinition(a[0], a[1], a[2], a[3]), + 2665983363: (a) => new IFC4$1.IfcOpenShell(a[0]), + 1411181986: (a) => new IFC4$1.IfcOrganizationRelationship(a[0], a[1], a[2], a[3]), + 1029017970: (a) => new IFC4$1.IfcOrientedEdge(a[0], a[1]), + 2529465313: (a) => new IFC4$1.IfcParameterizedProfileDef(a[0], a[1], a[2]), + 2519244187: (a) => new IFC4$1.IfcPath(a[0]), + 3021840470: (a) => new IFC4$1.IfcPhysicalComplexQuantity(a[0], a[1], a[2], a[3], a[4], a[5]), + 597895409: (a) => new IFC4$1.IfcPixelTexture(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2004835150: (a) => new IFC4$1.IfcPlacement(a[0]), + 1663979128: (a) => new IFC4$1.IfcPlanarExtent(a[0], a[1]), + 2067069095: (_) => new IFC4$1.IfcPoint(), + 4022376103: (a) => new IFC4$1.IfcPointOnCurve(a[0], a[1]), + 1423911732: (a) => new IFC4$1.IfcPointOnSurface(a[0], a[1], a[2]), + 2924175390: (a) => new IFC4$1.IfcPolyLoop(a[0]), + 2775532180: (a) => new IFC4$1.IfcPolygonalBoundedHalfSpace(a[0], a[1], a[2], a[3]), + 3727388367: (a) => new IFC4$1.IfcPreDefinedItem(a[0]), + 3778827333: (_) => new IFC4$1.IfcPreDefinedProperties(), + 1775413392: (a) => new IFC4$1.IfcPreDefinedTextFont(a[0]), + 673634403: (a) => new IFC4$1.IfcProductDefinitionShape(a[0], a[1], a[2]), + 2802850158: (a) => new IFC4$1.IfcProfileProperties(a[0], a[1], a[2], a[3]), + 2598011224: (a) => new IFC4$1.IfcProperty(a[0], a[1]), + 1680319473: (a) => new IFC4$1.IfcPropertyDefinition(a[0], a[1], a[2], a[3]), + 148025276: (a) => new IFC4$1.IfcPropertyDependencyRelationship(a[0], a[1], a[2], a[3], a[4]), + 3357820518: (a) => new IFC4$1.IfcPropertySetDefinition(a[0], a[1], a[2], a[3]), + 1482703590: (a) => new IFC4$1.IfcPropertyTemplateDefinition(a[0], a[1], a[2], a[3]), + 2090586900: (a) => new IFC4$1.IfcQuantitySet(a[0], a[1], a[2], a[3]), + 3615266464: (a) => new IFC4$1.IfcRectangleProfileDef(a[0], a[1], a[2], a[3], a[4]), + 3413951693: (a) => new IFC4$1.IfcRegularTimeSeries(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1580146022: (a) => new IFC4$1.IfcReinforcementBarProperties(a[0], a[1], a[2], a[3], a[4], a[5]), + 478536968: (a) => new IFC4$1.IfcRelationship(a[0], a[1], a[2], a[3]), + 2943643501: (a) => new IFC4$1.IfcResourceApprovalRelationship(a[0], a[1], a[2], a[3]), + 1608871552: (a) => new IFC4$1.IfcResourceConstraintRelationship(a[0], a[1], a[2], a[3]), + 1042787934: (a) => new IFC4$1.IfcResourceTime(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17]), + 2778083089: (a) => new IFC4$1.IfcRoundedRectangleProfileDef(a[0], a[1], a[2], a[3], a[4], a[5]), + 2042790032: (a) => new IFC4$1.IfcSectionProperties(a[0], a[1], a[2]), + 4165799628: (a) => new IFC4$1.IfcSectionReinforcementProperties(a[0], a[1], a[2], a[3], a[4], a[5]), + 1509187699: (a) => new IFC4$1.IfcSectionedSpine(a[0], a[1], a[2]), + 4124623270: (a) => new IFC4$1.IfcShellBasedSurfaceModel(a[0]), + 3692461612: (a) => new IFC4$1.IfcSimpleProperty(a[0], a[1]), + 2609359061: (a) => new IFC4$1.IfcSlippageConnectionCondition(a[0], a[1], a[2], a[3]), + 723233188: (_) => new IFC4$1.IfcSolidModel(), + 1595516126: (a) => new IFC4$1.IfcStructuralLoadLinearForce(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 2668620305: (a) => new IFC4$1.IfcStructuralLoadPlanarForce(a[0], a[1], a[2], a[3]), + 2473145415: (a) => new IFC4$1.IfcStructuralLoadSingleDisplacement(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 1973038258: (a) => new IFC4$1.IfcStructuralLoadSingleDisplacementDistortion(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 1597423693: (a) => new IFC4$1.IfcStructuralLoadSingleForce(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 1190533807: (a) => new IFC4$1.IfcStructuralLoadSingleForceWarping(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 2233826070: (a) => new IFC4$1.IfcSubedge(a[0], a[1], a[2]), + 2513912981: (_) => new IFC4$1.IfcSurface(), + 1878645084: (a) => new IFC4$1.IfcSurfaceStyleRendering(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2247615214: (a) => new IFC4$1.IfcSweptAreaSolid(a[0], a[1]), + 1260650574: (a) => new IFC4$1.IfcSweptDiskSolid(a[0], a[1], a[2], a[3], a[4]), + 1096409881: (a) => new IFC4$1.IfcSweptDiskSolidPolygonal(a[0], a[1], a[2], a[3], a[4], a[5]), + 230924584: (a) => new IFC4$1.IfcSweptSurface(a[0], a[1]), + 3071757647: (a) => new IFC4$1.IfcTShapeProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), + 901063453: (_) => new IFC4$1.IfcTessellatedItem(), + 4282788508: (a) => new IFC4$1.IfcTextLiteral(a[0], a[1], a[2]), + 3124975700: (a) => new IFC4$1.IfcTextLiteralWithExtent(a[0], a[1], a[2], a[3], a[4]), + 1983826977: (a) => new IFC4$1.IfcTextStyleFontModel(a[0], a[1], a[2], a[3], a[4], a[5]), + 2715220739: (a) => new IFC4$1.IfcTrapeziumProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 1628702193: (a) => new IFC4$1.IfcTypeObject(a[0], a[1], a[2], a[3], a[4], a[5]), + 3736923433: (a) => new IFC4$1.IfcTypeProcess(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2347495698: (a) => new IFC4$1.IfcTypeProduct(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 3698973494: (a) => new IFC4$1.IfcTypeResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 427810014: (a) => new IFC4$1.IfcUShapeProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1417489154: (a) => new IFC4$1.IfcVector(a[0], a[1]), + 2759199220: (a) => new IFC4$1.IfcVertexLoop(a[0]), + 1299126871: (a) => new IFC4$1.IfcWindowStyle(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), + 2543172580: (a) => new IFC4$1.IfcZShapeProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3406155212: (a) => new IFC4$1.IfcAdvancedFace(a[0], a[1], a[2]), + 669184980: (a) => new IFC4$1.IfcAnnotationFillArea(a[0], a[1]), + 3207858831: (a) => new IFC4$1.IfcAsymmetricIShapeProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14]), + 4261334040: (a) => new IFC4$1.IfcAxis1Placement(a[0], a[1]), + 3125803723: (a) => new IFC4$1.IfcAxis2Placement2D(a[0], a[1]), + 2740243338: (a) => new IFC4$1.IfcAxis2Placement3D(a[0], a[1], a[2]), + 2736907675: (a) => new IFC4$1.IfcBooleanResult(a[0], a[1], a[2]), + 4182860854: (_) => new IFC4$1.IfcBoundedSurface(), + 2581212453: (a) => new IFC4$1.IfcBoundingBox(a[0], a[1], a[2], a[3]), + 2713105998: (a) => new IFC4$1.IfcBoxedHalfSpace(a[0], a[1], a[2]), + 2898889636: (a) => new IFC4$1.IfcCShapeProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 1123145078: (a) => new IFC4$1.IfcCartesianPoint(a[0]), + 574549367: (_) => new IFC4$1.IfcCartesianPointList(), + 1675464909: (a) => new IFC4$1.IfcCartesianPointList2D(a[0]), + 2059837836: (a) => new IFC4$1.IfcCartesianPointList3D(a[0]), + 59481748: (a) => new IFC4$1.IfcCartesianTransformationOperator(a[0], a[1], a[2], a[3]), + 3749851601: (a) => new IFC4$1.IfcCartesianTransformationOperator2D(a[0], a[1], a[2], a[3]), + 3486308946: (a) => new IFC4$1.IfcCartesianTransformationOperator2DnonUniform(a[0], a[1], a[2], a[3], a[4]), + 3331915920: (a) => new IFC4$1.IfcCartesianTransformationOperator3D(a[0], a[1], a[2], a[3], a[4]), + 1416205885: (a) => new IFC4$1.IfcCartesianTransformationOperator3DnonUniform(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 1383045692: (a) => new IFC4$1.IfcCircleProfileDef(a[0], a[1], a[2], a[3]), + 2205249479: (a) => new IFC4$1.IfcClosedShell(a[0]), + 776857604: (a) => new IFC4$1.IfcColourRgb(a[0], a[1], a[2], a[3]), + 2542286263: (a) => new IFC4$1.IfcComplexProperty(a[0], a[1], a[2], a[3]), + 2485617015: (a) => new IFC4$1.IfcCompositeCurveSegment(a[0], a[1], a[2]), + 2574617495: (a) => new IFC4$1.IfcConstructionResourceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), + 3419103109: (a) => new IFC4$1.IfcContext(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1815067380: (a) => new IFC4$1.IfcCrewResourceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), + 2506170314: (a) => new IFC4$1.IfcCsgPrimitive3D(a[0]), + 2147822146: (a) => new IFC4$1.IfcCsgSolid(a[0]), + 2601014836: (_) => new IFC4$1.IfcCurve(), + 2827736869: (a) => new IFC4$1.IfcCurveBoundedPlane(a[0], a[1], a[2]), + 2629017746: (a) => new IFC4$1.IfcCurveBoundedSurface(a[0], a[1], a[2]), + 32440307: (a) => new IFC4$1.IfcDirection(a[0]), + 526551008: (a) => new IFC4$1.IfcDoorStyle(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), + 1472233963: (a) => new IFC4$1.IfcEdgeLoop(a[0]), + 1883228015: (a) => new IFC4$1.IfcElementQuantity(a[0], a[1], a[2], a[3], a[4], a[5]), + 339256511: (a) => new IFC4$1.IfcElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2777663545: (a) => new IFC4$1.IfcElementarySurface(a[0]), + 2835456948: (a) => new IFC4$1.IfcEllipseProfileDef(a[0], a[1], a[2], a[3], a[4]), + 4024345920: (a) => new IFC4$1.IfcEventType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), + 477187591: (a) => new IFC4$1.IfcExtrudedAreaSolid(a[0], a[1], a[2], a[3]), + 2804161546: (a) => new IFC4$1.IfcExtrudedAreaSolidTapered(a[0], a[1], a[2], a[3], a[4]), + 2047409740: (a) => new IFC4$1.IfcFaceBasedSurfaceModel(a[0]), + 374418227: (a) => new IFC4$1.IfcFillAreaStyleHatching(a[0], a[1], a[2], a[3], a[4]), + 315944413: (a) => new IFC4$1.IfcFillAreaStyleTiles(a[0], a[1], a[2]), + 2652556860: (a) => new IFC4$1.IfcFixedReferenceSweptAreaSolid(a[0], a[1], a[2], a[3], a[4], a[5]), + 4238390223: (a) => new IFC4$1.IfcFurnishingElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1268542332: (a) => new IFC4$1.IfcFurnitureType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), + 4095422895: (a) => new IFC4$1.IfcGeographicElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 987898635: (a) => new IFC4$1.IfcGeometricCurveSet(a[0]), + 1484403080: (a) => new IFC4$1.IfcIShapeProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 178912537: (a) => new IFC4$1.IfcIndexedPolygonalFace(a[0]), + 2294589976: (a) => new IFC4$1.IfcIndexedPolygonalFaceWithVoids(a[0], a[1]), + 572779678: (a) => new IFC4$1.IfcLShapeProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 428585644: (a) => new IFC4$1.IfcLaborResourceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), + 1281925730: (a) => new IFC4$1.IfcLine(a[0], a[1]), + 1425443689: (a) => new IFC4$1.IfcManifoldSolidBrep(a[0]), + 3888040117: (a) => new IFC4$1.IfcObject(a[0], a[1], a[2], a[3], a[4]), + 3388369263: (a) => new IFC4$1.IfcOffsetCurve2D(a[0], a[1], a[2]), + 3505215534: (a) => new IFC4$1.IfcOffsetCurve3D(a[0], a[1], a[2], a[3]), + 1682466193: (a) => new IFC4$1.IfcPcurve(a[0], a[1]), + 603570806: (a) => new IFC4$1.IfcPlanarBox(a[0], a[1], a[2]), + 220341763: (a) => new IFC4$1.IfcPlane(a[0]), + 759155922: (a) => new IFC4$1.IfcPreDefinedColour(a[0]), + 2559016684: (a) => new IFC4$1.IfcPreDefinedCurveFont(a[0]), + 3967405729: (a) => new IFC4$1.IfcPreDefinedPropertySet(a[0], a[1], a[2], a[3]), + 569719735: (a) => new IFC4$1.IfcProcedureType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2945172077: (a) => new IFC4$1.IfcProcess(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 4208778838: (a) => new IFC4$1.IfcProduct(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 103090709: (a) => new IFC4$1.IfcProject(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 653396225: (a) => new IFC4$1.IfcProjectLibrary(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 871118103: (a) => new IFC4$1.IfcPropertyBoundedValue(a[0], a[1], a[2], a[3], a[4], a[5]), + 4166981789: (a) => new IFC4$1.IfcPropertyEnumeratedValue(a[0], a[1], a[2], a[3]), + 2752243245: (a) => new IFC4$1.IfcPropertyListValue(a[0], a[1], a[2], a[3]), + 941946838: (a) => new IFC4$1.IfcPropertyReferenceValue(a[0], a[1], a[2], a[3]), + 1451395588: (a) => new IFC4$1.IfcPropertySet(a[0], a[1], a[2], a[3], a[4]), + 492091185: (a) => new IFC4$1.IfcPropertySetTemplate(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 3650150729: (a) => new IFC4$1.IfcPropertySingleValue(a[0], a[1], a[2], a[3]), + 110355661: (a) => new IFC4$1.IfcPropertyTableValue(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 3521284610: (a) => new IFC4$1.IfcPropertyTemplate(a[0], a[1], a[2], a[3]), + 3219374653: (a) => new IFC4$1.IfcProxy(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2770003689: (a) => new IFC4$1.IfcRectangleHollowProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 2798486643: (a) => new IFC4$1.IfcRectangularPyramid(a[0], a[1], a[2], a[3]), + 3454111270: (a) => new IFC4$1.IfcRectangularTrimmedSurface(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 3765753017: (a) => new IFC4$1.IfcReinforcementDefinitionProperties(a[0], a[1], a[2], a[3], a[4], a[5]), + 3939117080: (a) => new IFC4$1.IfcRelAssigns(a[0], a[1], a[2], a[3], a[4], a[5]), + 1683148259: (a) => new IFC4$1.IfcRelAssignsToActor(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 2495723537: (a) => new IFC4$1.IfcRelAssignsToControl(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 1307041759: (a) => new IFC4$1.IfcRelAssignsToGroup(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 1027710054: (a) => new IFC4$1.IfcRelAssignsToGroupByFactor(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 4278684876: (a) => new IFC4$1.IfcRelAssignsToProcess(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 2857406711: (a) => new IFC4$1.IfcRelAssignsToProduct(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 205026976: (a) => new IFC4$1.IfcRelAssignsToResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 1865459582: (a) => new IFC4$1.IfcRelAssociates(a[0], a[1], a[2], a[3], a[4]), + 4095574036: (a) => new IFC4$1.IfcRelAssociatesApproval(a[0], a[1], a[2], a[3], a[4], a[5]), + 919958153: (a) => new IFC4$1.IfcRelAssociatesClassification(a[0], a[1], a[2], a[3], a[4], a[5]), + 2728634034: (a) => new IFC4$1.IfcRelAssociatesConstraint(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 982818633: (a) => new IFC4$1.IfcRelAssociatesDocument(a[0], a[1], a[2], a[3], a[4], a[5]), + 3840914261: (a) => new IFC4$1.IfcRelAssociatesLibrary(a[0], a[1], a[2], a[3], a[4], a[5]), + 2655215786: (a) => new IFC4$1.IfcRelAssociatesMaterial(a[0], a[1], a[2], a[3], a[4], a[5]), + 826625072: (a) => new IFC4$1.IfcRelConnects(a[0], a[1], a[2], a[3]), + 1204542856: (a) => new IFC4$1.IfcRelConnectsElements(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 3945020480: (a) => new IFC4$1.IfcRelConnectsPathElements(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), + 4201705270: (a) => new IFC4$1.IfcRelConnectsPortToElement(a[0], a[1], a[2], a[3], a[4], a[5]), + 3190031847: (a) => new IFC4$1.IfcRelConnectsPorts(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 2127690289: (a) => new IFC4$1.IfcRelConnectsStructuralActivity(a[0], a[1], a[2], a[3], a[4], a[5]), + 1638771189: (a) => new IFC4$1.IfcRelConnectsStructuralMember(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 504942748: (a) => new IFC4$1.IfcRelConnectsWithEccentricity(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), + 3678494232: (a) => new IFC4$1.IfcRelConnectsWithRealizingElements(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3242617779: (a) => new IFC4$1.IfcRelContainedInSpatialStructure(a[0], a[1], a[2], a[3], a[4], a[5]), + 886880790: (a) => new IFC4$1.IfcRelCoversBldgElements(a[0], a[1], a[2], a[3], a[4], a[5]), + 2802773753: (a) => new IFC4$1.IfcRelCoversSpaces(a[0], a[1], a[2], a[3], a[4], a[5]), + 2565941209: (a) => new IFC4$1.IfcRelDeclares(a[0], a[1], a[2], a[3], a[4], a[5]), + 2551354335: (a) => new IFC4$1.IfcRelDecomposes(a[0], a[1], a[2], a[3]), + 693640335: (a) => new IFC4$1.IfcRelDefines(a[0], a[1], a[2], a[3]), + 1462361463: (a) => new IFC4$1.IfcRelDefinesByObject(a[0], a[1], a[2], a[3], a[4], a[5]), + 4186316022: (a) => new IFC4$1.IfcRelDefinesByProperties(a[0], a[1], a[2], a[3], a[4], a[5]), + 307848117: (a) => new IFC4$1.IfcRelDefinesByTemplate(a[0], a[1], a[2], a[3], a[4], a[5]), + 781010003: (a) => new IFC4$1.IfcRelDefinesByType(a[0], a[1], a[2], a[3], a[4], a[5]), + 3940055652: (a) => new IFC4$1.IfcRelFillsElement(a[0], a[1], a[2], a[3], a[4], a[5]), + 279856033: (a) => new IFC4$1.IfcRelFlowControlElements(a[0], a[1], a[2], a[3], a[4], a[5]), + 427948657: (a) => new IFC4$1.IfcRelInterferesElements(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3268803585: (a) => new IFC4$1.IfcRelNests(a[0], a[1], a[2], a[3], a[4], a[5]), + 750771296: (a) => new IFC4$1.IfcRelProjectsElement(a[0], a[1], a[2], a[3], a[4], a[5]), + 1245217292: (a) => new IFC4$1.IfcRelReferencedInSpatialStructure(a[0], a[1], a[2], a[3], a[4], a[5]), + 4122056220: (a) => new IFC4$1.IfcRelSequence(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 366585022: (a) => new IFC4$1.IfcRelServicesBuildings(a[0], a[1], a[2], a[3], a[4], a[5]), + 3451746338: (a) => new IFC4$1.IfcRelSpaceBoundary(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3523091289: (a) => new IFC4$1.IfcRelSpaceBoundary1stLevel(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1521410863: (a) => new IFC4$1.IfcRelSpaceBoundary2ndLevel(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), + 1401173127: (a) => new IFC4$1.IfcRelVoidsElement(a[0], a[1], a[2], a[3], a[4], a[5]), + 816062949: (a) => new IFC4$1.IfcReparametrisedCompositeCurveSegment(a[0], a[1], a[2], a[3]), + 2914609552: (a) => new IFC4$1.IfcResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 1856042241: (a) => new IFC4$1.IfcRevolvedAreaSolid(a[0], a[1], a[2], a[3]), + 3243963512: (a) => new IFC4$1.IfcRevolvedAreaSolidTapered(a[0], a[1], a[2], a[3], a[4]), + 4158566097: (a) => new IFC4$1.IfcRightCircularCone(a[0], a[1], a[2]), + 3626867408: (a) => new IFC4$1.IfcRightCircularCylinder(a[0], a[1], a[2]), + 3663146110: (a) => new IFC4$1.IfcSimplePropertyTemplate(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), + 1412071761: (a) => new IFC4$1.IfcSpatialElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 710998568: (a) => new IFC4$1.IfcSpatialElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2706606064: (a) => new IFC4$1.IfcSpatialStructureElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3893378262: (a) => new IFC4$1.IfcSpatialStructureElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 463610769: (a) => new IFC4$1.IfcSpatialZone(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2481509218: (a) => new IFC4$1.IfcSpatialZoneType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), + 451544542: (a) => new IFC4$1.IfcSphere(a[0], a[1]), + 4015995234: (a) => new IFC4$1.IfcSphericalSurface(a[0], a[1]), + 3544373492: (a) => new IFC4$1.IfcStructuralActivity(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3136571912: (a) => new IFC4$1.IfcStructuralItem(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 530289379: (a) => new IFC4$1.IfcStructuralMember(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 3689010777: (a) => new IFC4$1.IfcStructuralReaction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3979015343: (a) => new IFC4$1.IfcStructuralSurfaceMember(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2218152070: (a) => new IFC4$1.IfcStructuralSurfaceMemberVarying(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 603775116: (a) => new IFC4$1.IfcStructuralSurfaceReaction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 4095615324: (a) => new IFC4$1.IfcSubContractResourceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), + 699246055: (a) => new IFC4$1.IfcSurfaceCurve(a[0], a[1], a[2]), + 2028607225: (a) => new IFC4$1.IfcSurfaceCurveSweptAreaSolid(a[0], a[1], a[2], a[3], a[4], a[5]), + 2809605785: (a) => new IFC4$1.IfcSurfaceOfLinearExtrusion(a[0], a[1], a[2], a[3]), + 4124788165: (a) => new IFC4$1.IfcSurfaceOfRevolution(a[0], a[1], a[2]), + 1580310250: (a) => new IFC4$1.IfcSystemFurnitureElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 3473067441: (a) => new IFC4$1.IfcTask(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]), + 3206491090: (a) => new IFC4$1.IfcTaskType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), + 2387106220: (a) => new IFC4$1.IfcTessellatedFaceSet(a[0]), + 1935646853: (a) => new IFC4$1.IfcToroidalSurface(a[0], a[1], a[2]), + 2097647324: (a) => new IFC4$1.IfcTransportElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2916149573: (a) => new IFC4$1.IfcTriangulatedFaceSet(a[0], a[1], a[2], a[3], a[4]), + 336235671: (a) => new IFC4$1.IfcWindowLiningProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15]), + 512836454: (a) => new IFC4$1.IfcWindowPanelProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2296667514: (a) => new IFC4$1.IfcActor(a[0], a[1], a[2], a[3], a[4], a[5]), + 1635779807: (a) => new IFC4$1.IfcAdvancedBrep(a[0]), + 2603310189: (a) => new IFC4$1.IfcAdvancedBrepWithVoids(a[0], a[1]), + 1674181508: (a) => new IFC4$1.IfcAnnotation(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 2887950389: (a) => new IFC4$1.IfcBSplineSurface(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 167062518: (a) => new IFC4$1.IfcBSplineSurfaceWithKnots(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), + 1334484129: (a) => new IFC4$1.IfcBlock(a[0], a[1], a[2], a[3]), + 3649129432: (a) => new IFC4$1.IfcBooleanClippingResult(a[0], a[1], a[2]), + 1260505505: (_) => new IFC4$1.IfcBoundedCurve(), + 4031249490: (a) => new IFC4$1.IfcBuilding(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), + 1950629157: (a) => new IFC4$1.IfcBuildingElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3124254112: (a) => new IFC4$1.IfcBuildingStorey(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2197970202: (a) => new IFC4$1.IfcChimneyType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2937912522: (a) => new IFC4$1.IfcCircleHollowProfileDef(a[0], a[1], a[2], a[3], a[4]), + 3893394355: (a) => new IFC4$1.IfcCivilElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 300633059: (a) => new IFC4$1.IfcColumnType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 3875453745: (a) => new IFC4$1.IfcComplexPropertyTemplate(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 3732776249: (a) => new IFC4$1.IfcCompositeCurve(a[0], a[1]), + 15328376: (a) => new IFC4$1.IfcCompositeCurveOnSurface(a[0], a[1]), + 2510884976: (a) => new IFC4$1.IfcConic(a[0]), + 2185764099: (a) => new IFC4$1.IfcConstructionEquipmentResourceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), + 4105962743: (a) => new IFC4$1.IfcConstructionMaterialResourceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), + 1525564444: (a) => new IFC4$1.IfcConstructionProductResourceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), + 2559216714: (a) => new IFC4$1.IfcConstructionResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 3293443760: (a) => new IFC4$1.IfcControl(a[0], a[1], a[2], a[3], a[4], a[5]), + 3895139033: (a) => new IFC4$1.IfcCostItem(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1419761937: (a) => new IFC4$1.IfcCostSchedule(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1916426348: (a) => new IFC4$1.IfcCoveringType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 3295246426: (a) => new IFC4$1.IfcCrewResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), + 1457835157: (a) => new IFC4$1.IfcCurtainWallType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1213902940: (a) => new IFC4$1.IfcCylindricalSurface(a[0], a[1]), + 3256556792: (a) => new IFC4$1.IfcDistributionElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3849074793: (a) => new IFC4$1.IfcDistributionFlowElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2963535650: (a) => new IFC4$1.IfcDoorLiningProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16]), + 1714330368: (a) => new IFC4$1.IfcDoorPanelProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2323601079: (a) => new IFC4$1.IfcDoorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]), + 445594917: (a) => new IFC4$1.IfcDraughtingPreDefinedColour(a[0]), + 4006246654: (a) => new IFC4$1.IfcDraughtingPreDefinedCurveFont(a[0]), + 1758889154: (a) => new IFC4$1.IfcElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 4123344466: (a) => new IFC4$1.IfcElementAssembly(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2397081782: (a) => new IFC4$1.IfcElementAssemblyType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1623761950: (a) => new IFC4$1.IfcElementComponent(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 2590856083: (a) => new IFC4$1.IfcElementComponentType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1704287377: (a) => new IFC4$1.IfcEllipse(a[0], a[1], a[2]), + 2107101300: (a) => new IFC4$1.IfcEnergyConversionDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 132023988: (a) => new IFC4$1.IfcEngineType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 3174744832: (a) => new IFC4$1.IfcEvaporativeCoolerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 3390157468: (a) => new IFC4$1.IfcEvaporatorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 4148101412: (a) => new IFC4$1.IfcEvent(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), + 2853485674: (a) => new IFC4$1.IfcExternalSpatialStructureElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 807026263: (a) => new IFC4$1.IfcFacetedBrep(a[0]), + 3737207727: (a) => new IFC4$1.IfcFacetedBrepWithVoids(a[0], a[1]), + 647756555: (a) => new IFC4$1.IfcFastener(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2489546625: (a) => new IFC4$1.IfcFastenerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2827207264: (a) => new IFC4$1.IfcFeatureElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 2143335405: (a) => new IFC4$1.IfcFeatureElementAddition(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 1287392070: (a) => new IFC4$1.IfcFeatureElementSubtraction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 3907093117: (a) => new IFC4$1.IfcFlowControllerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3198132628: (a) => new IFC4$1.IfcFlowFittingType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3815607619: (a) => new IFC4$1.IfcFlowMeterType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1482959167: (a) => new IFC4$1.IfcFlowMovingDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1834744321: (a) => new IFC4$1.IfcFlowSegmentType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1339347760: (a) => new IFC4$1.IfcFlowStorageDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2297155007: (a) => new IFC4$1.IfcFlowTerminalType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3009222698: (a) => new IFC4$1.IfcFlowTreatmentDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1893162501: (a) => new IFC4$1.IfcFootingType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 263784265: (a) => new IFC4$1.IfcFurnishingElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 1509553395: (a) => new IFC4$1.IfcFurniture(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3493046030: (a) => new IFC4$1.IfcGeographicElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3009204131: (a) => new IFC4$1.IfcGrid(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), + 2706460486: (a) => new IFC4$1.IfcGroup(a[0], a[1], a[2], a[3], a[4]), + 1251058090: (a) => new IFC4$1.IfcHeatExchangerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1806887404: (a) => new IFC4$1.IfcHumidifierType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2571569899: (a) => new IFC4$1.IfcIndexedPolyCurve(a[0], a[1], a[2]), + 3946677679: (a) => new IFC4$1.IfcInterceptorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 3113134337: (a) => new IFC4$1.IfcIntersectionCurve(a[0], a[1], a[2]), + 2391368822: (a) => new IFC4$1.IfcInventory(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), + 4288270099: (a) => new IFC4$1.IfcJunctionBoxType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 3827777499: (a) => new IFC4$1.IfcLaborResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), + 1051575348: (a) => new IFC4$1.IfcLampType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1161773419: (a) => new IFC4$1.IfcLightFixtureType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 377706215: (a) => new IFC4$1.IfcMechanicalFastener(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), + 2108223431: (a) => new IFC4$1.IfcMechanicalFastenerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), + 1114901282: (a) => new IFC4$1.IfcMedicalDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 3181161470: (a) => new IFC4$1.IfcMemberType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 977012517: (a) => new IFC4$1.IfcMotorConnectionType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 4143007308: (a) => new IFC4$1.IfcOccupant(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 3588315303: (a) => new IFC4$1.IfcOpeningElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3079942009: (a) => new IFC4$1.IfcOpeningStandardCase(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2837617999: (a) => new IFC4$1.IfcOutletType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2382730787: (a) => new IFC4$1.IfcPerformanceHistory(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 3566463478: (a) => new IFC4$1.IfcPermeableCoveringProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3327091369: (a) => new IFC4$1.IfcPermit(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1158309216: (a) => new IFC4$1.IfcPileType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 804291784: (a) => new IFC4$1.IfcPipeFittingType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 4231323485: (a) => new IFC4$1.IfcPipeSegmentType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 4017108033: (a) => new IFC4$1.IfcPlateType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2839578677: (a) => new IFC4$1.IfcPolygonalFaceSet(a[0], a[1], a[2], a[3]), + 3724593414: (a) => new IFC4$1.IfcPolyline(a[0]), + 3740093272: (a) => new IFC4$1.IfcPort(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 2744685151: (a) => new IFC4$1.IfcProcedure(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 2904328755: (a) => new IFC4$1.IfcProjectOrder(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3651124850: (a) => new IFC4$1.IfcProjectionElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1842657554: (a) => new IFC4$1.IfcProtectiveDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2250791053: (a) => new IFC4$1.IfcPumpType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2893384427: (a) => new IFC4$1.IfcRailingType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2324767716: (a) => new IFC4$1.IfcRampFlightType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1469900589: (a) => new IFC4$1.IfcRampType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 683857671: (a) => new IFC4$1.IfcRationalBSplineSurfaceWithKnots(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]), + 3027567501: (a) => new IFC4$1.IfcReinforcingElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 964333572: (a) => new IFC4$1.IfcReinforcingElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2320036040: (a) => new IFC4$1.IfcReinforcingMesh(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17]), + 2310774935: (a) => new IFC4$1.IfcReinforcingMeshType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17], a[18], a[19]), + 160246688: (a) => new IFC4$1.IfcRelAggregates(a[0], a[1], a[2], a[3], a[4], a[5]), + 2781568857: (a) => new IFC4$1.IfcRoofType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1768891740: (a) => new IFC4$1.IfcSanitaryTerminalType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2157484638: (a) => new IFC4$1.IfcSeamCurve(a[0], a[1], a[2]), + 4074543187: (a) => new IFC4$1.IfcShadingDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 4097777520: (a) => new IFC4$1.IfcSite(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]), + 2533589738: (a) => new IFC4$1.IfcSlabType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1072016465: (a) => new IFC4$1.IfcSolarDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 3856911033: (a) => new IFC4$1.IfcSpace(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), + 1305183839: (a) => new IFC4$1.IfcSpaceHeaterType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 3812236995: (a) => new IFC4$1.IfcSpaceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), + 3112655638: (a) => new IFC4$1.IfcStackTerminalType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1039846685: (a) => new IFC4$1.IfcStairFlightType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 338393293: (a) => new IFC4$1.IfcStairType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 682877961: (a) => new IFC4$1.IfcStructuralAction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1179482911: (a) => new IFC4$1.IfcStructuralConnection(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 1004757350: (a) => new IFC4$1.IfcStructuralCurveAction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), + 4243806635: (a) => new IFC4$1.IfcStructuralCurveConnection(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 214636428: (a) => new IFC4$1.IfcStructuralCurveMember(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2445595289: (a) => new IFC4$1.IfcStructuralCurveMemberVarying(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2757150158: (a) => new IFC4$1.IfcStructuralCurveReaction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1807405624: (a) => new IFC4$1.IfcStructuralLinearAction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), + 1252848954: (a) => new IFC4$1.IfcStructuralLoadGroup(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2082059205: (a) => new IFC4$1.IfcStructuralPointAction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 734778138: (a) => new IFC4$1.IfcStructuralPointConnection(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1235345126: (a) => new IFC4$1.IfcStructuralPointReaction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2986769608: (a) => new IFC4$1.IfcStructuralResultGroup(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 3657597509: (a) => new IFC4$1.IfcStructuralSurfaceAction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), + 1975003073: (a) => new IFC4$1.IfcStructuralSurfaceConnection(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 148013059: (a) => new IFC4$1.IfcSubContractResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), + 3101698114: (a) => new IFC4$1.IfcSurfaceFeature(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2315554128: (a) => new IFC4$1.IfcSwitchingDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2254336722: (a) => new IFC4$1.IfcSystem(a[0], a[1], a[2], a[3], a[4]), + 413509423: (a) => new IFC4$1.IfcSystemFurnitureElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 5716631: (a) => new IFC4$1.IfcTankType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 3824725483: (a) => new IFC4$1.IfcTendon(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16]), + 2347447852: (a) => new IFC4$1.IfcTendonAnchor(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 3081323446: (a) => new IFC4$1.IfcTendonAnchorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2415094496: (a) => new IFC4$1.IfcTendonType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]), + 1692211062: (a) => new IFC4$1.IfcTransformerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1620046519: (a) => new IFC4$1.IfcTransportElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3593883385: (a) => new IFC4$1.IfcTrimmedCurve(a[0], a[1], a[2], a[3], a[4]), + 1600972822: (a) => new IFC4$1.IfcTubeBundleType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1911125066: (a) => new IFC4$1.IfcUnitaryEquipmentType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 728799441: (a) => new IFC4$1.IfcValveType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2391383451: (a) => new IFC4$1.IfcVibrationIsolator(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3313531582: (a) => new IFC4$1.IfcVibrationIsolatorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2769231204: (a) => new IFC4$1.IfcVirtualElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 926996030: (a) => new IFC4$1.IfcVoidingFeature(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1898987631: (a) => new IFC4$1.IfcWallType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1133259667: (a) => new IFC4$1.IfcWasteTerminalType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 4009809668: (a) => new IFC4$1.IfcWindowType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]), + 4088093105: (a) => new IFC4$1.IfcWorkCalendar(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1028945134: (a) => new IFC4$1.IfcWorkControl(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]), + 4218914973: (a) => new IFC4$1.IfcWorkPlan(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]), + 3342526732: (a) => new IFC4$1.IfcWorkSchedule(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]), + 1033361043: (a) => new IFC4$1.IfcZone(a[0], a[1], a[2], a[3], a[4], a[5]), + 3821786052: (a) => new IFC4$1.IfcActionRequest(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1411407467: (a) => new IFC4$1.IfcAirTerminalBoxType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 3352864051: (a) => new IFC4$1.IfcAirTerminalType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1871374353: (a) => new IFC4$1.IfcAirToAirHeatRecoveryType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 3460190687: (a) => new IFC4$1.IfcAsset(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]), + 1532957894: (a) => new IFC4$1.IfcAudioVisualApplianceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1967976161: (a) => new IFC4$1.IfcBSplineCurve(a[0], a[1], a[2], a[3], a[4]), + 2461110595: (a) => new IFC4$1.IfcBSplineCurveWithKnots(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 819618141: (a) => new IFC4$1.IfcBeamType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 231477066: (a) => new IFC4$1.IfcBoilerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1136057603: (a) => new IFC4$1.IfcBoundaryCurve(a[0], a[1]), + 3299480353: (a) => new IFC4$1.IfcBuildingElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 2979338954: (a) => new IFC4$1.IfcBuildingElementPart(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 39481116: (a) => new IFC4$1.IfcBuildingElementPartType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1095909175: (a) => new IFC4$1.IfcBuildingElementProxy(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1909888760: (a) => new IFC4$1.IfcBuildingElementProxyType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1177604601: (a) => new IFC4$1.IfcBuildingSystem(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 2188180465: (a) => new IFC4$1.IfcBurnerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 395041908: (a) => new IFC4$1.IfcCableCarrierFittingType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 3293546465: (a) => new IFC4$1.IfcCableCarrierSegmentType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2674252688: (a) => new IFC4$1.IfcCableFittingType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1285652485: (a) => new IFC4$1.IfcCableSegmentType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2951183804: (a) => new IFC4$1.IfcChillerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 3296154744: (a) => new IFC4$1.IfcChimney(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2611217952: (a) => new IFC4$1.IfcCircle(a[0], a[1]), + 1677625105: (a) => new IFC4$1.IfcCivilElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 2301859152: (a) => new IFC4$1.IfcCoilType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 843113511: (a) => new IFC4$1.IfcColumn(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 905975707: (a) => new IFC4$1.IfcColumnStandardCase(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 400855858: (a) => new IFC4$1.IfcCommunicationsApplianceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 3850581409: (a) => new IFC4$1.IfcCompressorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2816379211: (a) => new IFC4$1.IfcCondenserType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 3898045240: (a) => new IFC4$1.IfcConstructionEquipmentResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), + 1060000209: (a) => new IFC4$1.IfcConstructionMaterialResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), + 488727124: (a) => new IFC4$1.IfcConstructionProductResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), + 335055490: (a) => new IFC4$1.IfcCooledBeamType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2954562838: (a) => new IFC4$1.IfcCoolingTowerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1973544240: (a) => new IFC4$1.IfcCovering(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3495092785: (a) => new IFC4$1.IfcCurtainWall(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3961806047: (a) => new IFC4$1.IfcDamperType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1335981549: (a) => new IFC4$1.IfcDiscreteAccessory(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2635815018: (a) => new IFC4$1.IfcDiscreteAccessoryType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1599208980: (a) => new IFC4$1.IfcDistributionChamberElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2063403501: (a) => new IFC4$1.IfcDistributionControlElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1945004755: (a) => new IFC4$1.IfcDistributionElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 3040386961: (a) => new IFC4$1.IfcDistributionFlowElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 3041715199: (a) => new IFC4$1.IfcDistributionPort(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 3205830791: (a) => new IFC4$1.IfcDistributionSystem(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 395920057: (a) => new IFC4$1.IfcDoor(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]), + 3242481149: (a) => new IFC4$1.IfcDoorStandardCase(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]), + 869906466: (a) => new IFC4$1.IfcDuctFittingType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 3760055223: (a) => new IFC4$1.IfcDuctSegmentType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2030761528: (a) => new IFC4$1.IfcDuctSilencerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 663422040: (a) => new IFC4$1.IfcElectricApplianceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2417008758: (a) => new IFC4$1.IfcElectricDistributionBoardType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 3277789161: (a) => new IFC4$1.IfcElectricFlowStorageDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1534661035: (a) => new IFC4$1.IfcElectricGeneratorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1217240411: (a) => new IFC4$1.IfcElectricMotorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 712377611: (a) => new IFC4$1.IfcElectricTimeControlType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1658829314: (a) => new IFC4$1.IfcEnergyConversionDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 2814081492: (a) => new IFC4$1.IfcEngine(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3747195512: (a) => new IFC4$1.IfcEvaporativeCooler(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 484807127: (a) => new IFC4$1.IfcEvaporator(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1209101575: (a) => new IFC4$1.IfcExternalSpatialElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 346874300: (a) => new IFC4$1.IfcFanType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1810631287: (a) => new IFC4$1.IfcFilterType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 4222183408: (a) => new IFC4$1.IfcFireSuppressionTerminalType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2058353004: (a) => new IFC4$1.IfcFlowController(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 4278956645: (a) => new IFC4$1.IfcFlowFitting(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 4037862832: (a) => new IFC4$1.IfcFlowInstrumentType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2188021234: (a) => new IFC4$1.IfcFlowMeter(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3132237377: (a) => new IFC4$1.IfcFlowMovingDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 987401354: (a) => new IFC4$1.IfcFlowSegment(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 707683696: (a) => new IFC4$1.IfcFlowStorageDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 2223149337: (a) => new IFC4$1.IfcFlowTerminal(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 3508470533: (a) => new IFC4$1.IfcFlowTreatmentDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 900683007: (a) => new IFC4$1.IfcFooting(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3319311131: (a) => new IFC4$1.IfcHeatExchanger(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2068733104: (a) => new IFC4$1.IfcHumidifier(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 4175244083: (a) => new IFC4$1.IfcInterceptor(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2176052936: (a) => new IFC4$1.IfcJunctionBox(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 76236018: (a) => new IFC4$1.IfcLamp(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 629592764: (a) => new IFC4$1.IfcLightFixture(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1437502449: (a) => new IFC4$1.IfcMedicalDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1073191201: (a) => new IFC4$1.IfcMember(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1911478936: (a) => new IFC4$1.IfcMemberStandardCase(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2474470126: (a) => new IFC4$1.IfcMotorConnection(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 144952367: (a) => new IFC4$1.IfcOuterBoundaryCurve(a[0], a[1]), + 3694346114: (a) => new IFC4$1.IfcOutlet(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1687234759: (a) => new IFC4$1.IfcPile(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 310824031: (a) => new IFC4$1.IfcPipeFitting(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3612865200: (a) => new IFC4$1.IfcPipeSegment(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3171933400: (a) => new IFC4$1.IfcPlate(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1156407060: (a) => new IFC4$1.IfcPlateStandardCase(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 738039164: (a) => new IFC4$1.IfcProtectiveDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 655969474: (a) => new IFC4$1.IfcProtectiveDeviceTrippingUnitType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 90941305: (a) => new IFC4$1.IfcPump(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2262370178: (a) => new IFC4$1.IfcRailing(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3024970846: (a) => new IFC4$1.IfcRamp(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3283111854: (a) => new IFC4$1.IfcRampFlight(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1232101972: (a) => new IFC4$1.IfcRationalBSplineCurveWithKnots(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 979691226: (a) => new IFC4$1.IfcReinforcingBar(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]), + 2572171363: (a) => new IFC4$1.IfcReinforcingBarType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15]), + 2016517767: (a) => new IFC4$1.IfcRoof(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3053780830: (a) => new IFC4$1.IfcSanitaryTerminal(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1783015770: (a) => new IFC4$1.IfcSensorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1329646415: (a) => new IFC4$1.IfcShadingDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1529196076: (a) => new IFC4$1.IfcSlab(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3127900445: (a) => new IFC4$1.IfcSlabElementedCase(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3027962421: (a) => new IFC4$1.IfcSlabStandardCase(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3420628829: (a) => new IFC4$1.IfcSolarDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1999602285: (a) => new IFC4$1.IfcSpaceHeater(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1404847402: (a) => new IFC4$1.IfcStackTerminal(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 331165859: (a) => new IFC4$1.IfcStair(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 4252922144: (a) => new IFC4$1.IfcStairFlight(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]), + 2515109513: (a) => new IFC4$1.IfcStructuralAnalysisModel(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 385403989: (a) => new IFC4$1.IfcStructuralLoadCase(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), + 1621171031: (a) => new IFC4$1.IfcStructuralPlanarAction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), + 1162798199: (a) => new IFC4$1.IfcSwitchingDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 812556717: (a) => new IFC4$1.IfcTank(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3825984169: (a) => new IFC4$1.IfcTransformer(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3026737570: (a) => new IFC4$1.IfcTubeBundle(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3179687236: (a) => new IFC4$1.IfcUnitaryControlElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 4292641817: (a) => new IFC4$1.IfcUnitaryEquipment(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 4207607924: (a) => new IFC4$1.IfcValve(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2391406946: (a) => new IFC4$1.IfcWall(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 4156078855: (a) => new IFC4$1.IfcWallElementedCase(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3512223829: (a) => new IFC4$1.IfcWallStandardCase(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 4237592921: (a) => new IFC4$1.IfcWasteTerminal(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3304561284: (a) => new IFC4$1.IfcWindow(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]), + 486154966: (a) => new IFC4$1.IfcWindowStandardCase(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]), + 2874132201: (a) => new IFC4$1.IfcActuatorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1634111441: (a) => new IFC4$1.IfcAirTerminal(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 177149247: (a) => new IFC4$1.IfcAirTerminalBox(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2056796094: (a) => new IFC4$1.IfcAirToAirHeatRecovery(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3001207471: (a) => new IFC4$1.IfcAlarmType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 277319702: (a) => new IFC4$1.IfcAudioVisualAppliance(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 753842376: (a) => new IFC4$1.IfcBeam(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2906023776: (a) => new IFC4$1.IfcBeamStandardCase(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 32344328: (a) => new IFC4$1.IfcBoiler(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2938176219: (a) => new IFC4$1.IfcBurner(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 635142910: (a) => new IFC4$1.IfcCableCarrierFitting(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3758799889: (a) => new IFC4$1.IfcCableCarrierSegment(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1051757585: (a) => new IFC4$1.IfcCableFitting(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 4217484030: (a) => new IFC4$1.IfcCableSegment(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3902619387: (a) => new IFC4$1.IfcChiller(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 639361253: (a) => new IFC4$1.IfcCoil(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3221913625: (a) => new IFC4$1.IfcCommunicationsAppliance(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3571504051: (a) => new IFC4$1.IfcCompressor(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2272882330: (a) => new IFC4$1.IfcCondenser(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 578613899: (a) => new IFC4$1.IfcControllerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 4136498852: (a) => new IFC4$1.IfcCooledBeam(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3640358203: (a) => new IFC4$1.IfcCoolingTower(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 4074379575: (a) => new IFC4$1.IfcDamper(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1052013943: (a) => new IFC4$1.IfcDistributionChamberElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 562808652: (a) => new IFC4$1.IfcDistributionCircuit(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 1062813311: (a) => new IFC4$1.IfcDistributionControlElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 342316401: (a) => new IFC4$1.IfcDuctFitting(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3518393246: (a) => new IFC4$1.IfcDuctSegment(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1360408905: (a) => new IFC4$1.IfcDuctSilencer(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1904799276: (a) => new IFC4$1.IfcElectricAppliance(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 862014818: (a) => new IFC4$1.IfcElectricDistributionBoard(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3310460725: (a) => new IFC4$1.IfcElectricFlowStorageDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 264262732: (a) => new IFC4$1.IfcElectricGenerator(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 402227799: (a) => new IFC4$1.IfcElectricMotor(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1003880860: (a) => new IFC4$1.IfcElectricTimeControl(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3415622556: (a) => new IFC4$1.IfcFan(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 819412036: (a) => new IFC4$1.IfcFilter(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1426591983: (a) => new IFC4$1.IfcFireSuppressionTerminal(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 182646315: (a) => new IFC4$1.IfcFlowInstrument(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2295281155: (a) => new IFC4$1.IfcProtectiveDeviceTrippingUnit(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 4086658281: (a) => new IFC4$1.IfcSensor(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 630975310: (a) => new IFC4$1.IfcUnitaryControlElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 4288193352: (a) => new IFC4$1.IfcActuator(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3087945054: (a) => new IFC4$1.IfcAlarm(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 25142252: (a) => new IFC4$1.IfcController(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]) +}; +ToRawLineData[2] = { + 3630933823: (i) => [i.Role, i.UserDefinedRole, i.Description], + 618182010: (i) => [i.Purpose, i.Description, i.UserDefinedPurpose], + 639542469: (i) => [i.ApplicationDeveloper, i.Version, i.ApplicationFullName, i.ApplicationIdentifier], + 411424972: (i) => [i.Name, i.Description, i.AppliedValue, i.UnitBasis, i.ApplicableDate, i.FixedUntilDate, i.Category, i.Condition, i.ArithmeticOperator, i.Components], + 130549933: (i) => [i.Identifier, i.Name, i.Description, i.TimeOfApproval, i.Status, i.Level, i.Qualifier, i.RequestingApproval, i.GivingApproval], + 4037036970: (i) => [i.Name], + 1560379544: (i) => [i.Name, !i.TranslationalStiffnessByLengthX ? null : Labelise(i.TranslationalStiffnessByLengthX), !i.TranslationalStiffnessByLengthY ? null : Labelise(i.TranslationalStiffnessByLengthY), !i.TranslationalStiffnessByLengthZ ? null : Labelise(i.TranslationalStiffnessByLengthZ), !i.RotationalStiffnessByLengthX ? null : Labelise(i.RotationalStiffnessByLengthX), !i.RotationalStiffnessByLengthY ? null : Labelise(i.RotationalStiffnessByLengthY), !i.RotationalStiffnessByLengthZ ? null : Labelise(i.RotationalStiffnessByLengthZ)], + 3367102660: (i) => [i.Name, !i.TranslationalStiffnessByAreaX ? null : Labelise(i.TranslationalStiffnessByAreaX), !i.TranslationalStiffnessByAreaY ? null : Labelise(i.TranslationalStiffnessByAreaY), !i.TranslationalStiffnessByAreaZ ? null : Labelise(i.TranslationalStiffnessByAreaZ)], + 1387855156: (i) => [i.Name, !i.TranslationalStiffnessX ? null : Labelise(i.TranslationalStiffnessX), !i.TranslationalStiffnessY ? null : Labelise(i.TranslationalStiffnessY), !i.TranslationalStiffnessZ ? null : Labelise(i.TranslationalStiffnessZ), !i.RotationalStiffnessX ? null : Labelise(i.RotationalStiffnessX), !i.RotationalStiffnessY ? null : Labelise(i.RotationalStiffnessY), !i.RotationalStiffnessZ ? null : Labelise(i.RotationalStiffnessZ)], + 2069777674: (i) => [i.Name, !i.TranslationalStiffnessX ? null : Labelise(i.TranslationalStiffnessX), !i.TranslationalStiffnessY ? null : Labelise(i.TranslationalStiffnessY), !i.TranslationalStiffnessZ ? null : Labelise(i.TranslationalStiffnessZ), !i.RotationalStiffnessX ? null : Labelise(i.RotationalStiffnessX), !i.RotationalStiffnessY ? null : Labelise(i.RotationalStiffnessY), !i.RotationalStiffnessZ ? null : Labelise(i.RotationalStiffnessZ), !i.WarpingStiffness ? null : Labelise(i.WarpingStiffness)], + 2859738748: (_) => [], + 2614616156: (i) => [i.PointOnRelatingElement, i.PointOnRelatedElement], + 2732653382: (i) => [i.SurfaceOnRelatingElement, i.SurfaceOnRelatedElement], + 775493141: (i) => [i.VolumeOnRelatingElement, i.VolumeOnRelatedElement], + 1959218052: (i) => [i.Name, i.Description, i.ConstraintGrade, i.ConstraintSource, i.CreatingActor, i.CreationTime, i.UserDefinedGrade], + 1785450214: (i) => [i.SourceCRS, i.TargetCRS], + 1466758467: (i) => [i.Name, i.Description, i.GeodeticDatum, i.VerticalDatum], + 602808272: (i) => [i.Name, i.Description, i.AppliedValue, i.UnitBasis, i.ApplicableDate, i.FixedUntilDate, i.Category, i.Condition, i.ArithmeticOperator, i.Components], + 1765591967: (i) => [i.Elements, i.UnitType, i.UserDefinedType], + 1045800335: (i) => [i.Unit, i.Exponent], + 2949456006: (i) => [i.LengthExponent, i.MassExponent, i.TimeExponent, i.ElectricCurrentExponent, i.ThermodynamicTemperatureExponent, i.AmountOfSubstanceExponent, i.LuminousIntensityExponent], + 4294318154: (_) => [], + 3200245327: (i) => [i.Location, i.Identification, i.Name], + 2242383968: (i) => [i.Location, i.Identification, i.Name], + 1040185647: (i) => [i.Location, i.Identification, i.Name], + 3548104201: (i) => [i.Location, i.Identification, i.Name], + 852622518: (i) => { + var _a; + return [i.AxisTag, i.AxisCurve, (_a = i.SameSense) == null ? void 0 : _a.toString()]; + }, + 3020489413: (i) => [i.TimeStamp, i.ListValues.map((p) => Labelise(p))], + 2655187982: (i) => [i.Name, i.Version, i.Publisher, i.VersionDate, i.Location, i.Description], + 3452421091: (i) => [i.Location, i.Identification, i.Name, i.Description, i.Language, i.ReferencedLibrary], + 4162380809: (i) => [i.MainPlaneAngle, i.SecondaryPlaneAngle, i.LuminousIntensity], + 1566485204: (i) => [i.LightDistributionCurve, i.DistributionData], + 3057273783: (i) => [i.SourceCRS, i.TargetCRS, i.Eastings, i.Northings, i.OrthogonalHeight, i.XAxisAbscissa, i.XAxisOrdinate, i.Scale], + 1847130766: (i) => [i.MaterialClassifications, i.ClassifiedMaterial], + 760658860: (_) => [], + 248100487: (i) => { + var _a; + return [i.Material, i.LayerThickness, (_a = i.IsVentilated) == null ? void 0 : _a.toString(), i.Name, i.Description, i.Category, i.Priority]; + }, + 3303938423: (i) => [i.MaterialLayers, i.LayerSetName, i.Description], + 1847252529: (i) => { + var _a; + return [i.Material, i.LayerThickness, (_a = i.IsVentilated) == null ? void 0 : _a.toString(), i.Name, i.Description, i.Category, i.Priority, i.OffsetDirection, i.OffsetValues]; + }, + 2199411900: (i) => [i.Materials], + 2235152071: (i) => [i.Name, i.Description, i.Material, i.Profile, i.Priority, i.Category], + 164193824: (i) => [i.Name, i.Description, i.MaterialProfiles, i.CompositeProfile], + 552965576: (i) => [i.Name, i.Description, i.Material, i.Profile, i.Priority, i.Category, i.OffsetValues], + 1507914824: (_) => [], + 2597039031: (i) => [Labelise(i.ValueComponent), i.UnitComponent], + 3368373690: (i) => [i.Name, i.Description, i.ConstraintGrade, i.ConstraintSource, i.CreatingActor, i.CreationTime, i.UserDefinedGrade, i.Benchmark, i.ValueSource, i.DataValue, i.ReferencePath], + 2706619895: (i) => [i.Currency], + 1918398963: (i) => [i.Dimensions, i.UnitType], + 3701648758: (_) => [], + 2251480897: (i) => [i.Name, i.Description, i.ConstraintGrade, i.ConstraintSource, i.CreatingActor, i.CreationTime, i.UserDefinedGrade, i.BenchmarkValues, i.LogicalAggregator, i.ObjectiveQualifier, i.UserDefinedQualifier], + 4251960020: (i) => [i.Identification, i.Name, i.Description, i.Roles, i.Addresses], + 1207048766: (i) => [i.OwningUser, i.OwningApplication, i.State, i.ChangeAction, i.LastModifiedDate, i.LastModifyingUser, i.LastModifyingApplication, i.CreationDate], + 2077209135: (i) => [i.Identification, i.FamilyName, i.GivenName, i.MiddleNames, i.PrefixTitles, i.SuffixTitles, i.Roles, i.Addresses], + 101040310: (i) => [i.ThePerson, i.TheOrganization, i.Roles], + 2483315170: (i) => [i.Name, i.Description], + 2226359599: (i) => [i.Name, i.Description, i.Unit], + 3355820592: (i) => [i.Purpose, i.Description, i.UserDefinedPurpose, i.InternalLocation, i.AddressLines, i.PostalBox, i.Town, i.Region, i.PostalCode, i.Country], + 677532197: (_) => [], + 2022622350: (i) => [i.Name, i.Description, i.AssignedItems, i.Identifier], + 1304840413: (i) => { + var _a, _b, _c; + return [i.Name, i.Description, i.AssignedItems, i.Identifier, (_a = i.LayerOn) == null ? void 0 : _a.toString(), (_b = i.LayerFrozen) == null ? void 0 : _b.toString(), (_c = i.LayerBlocked) == null ? void 0 : _c.toString(), i.LayerStyles]; + }, + 3119450353: (i) => [i.Name], + 2417041796: (i) => [i.Styles], + 2095639259: (i) => [i.Name, i.Description, i.Representations], + 3958567839: (i) => [i.ProfileType, i.ProfileName], + 3843373140: (i) => [i.Name, i.Description, i.GeodeticDatum, i.VerticalDatum, i.MapProjection, i.MapZone, i.MapUnit], + 986844984: (_) => [], + 3710013099: (i) => [i.Name, i.EnumerationValues.map((p) => Labelise(p)), i.Unit], + 2044713172: (i) => [i.Name, i.Description, i.Unit, i.AreaValue, i.Formula], + 2093928680: (i) => [i.Name, i.Description, i.Unit, i.CountValue, i.Formula], + 931644368: (i) => [i.Name, i.Description, i.Unit, i.LengthValue, i.Formula], + 3252649465: (i) => [i.Name, i.Description, i.Unit, i.TimeValue, i.Formula], + 2405470396: (i) => [i.Name, i.Description, i.Unit, i.VolumeValue, i.Formula], + 825690147: (i) => [i.Name, i.Description, i.Unit, i.WeightValue, i.Formula], + 3915482550: (i) => [i.RecurrenceType, i.DayComponent, i.WeekdayComponent, i.MonthComponent, i.Position, i.Interval, i.Occurrences, i.TimePeriods], + 2433181523: (i) => [i.TypeIdentifier, i.AttributeIdentifier, i.InstanceName, i.ListPositions, i.InnerReference], + 1076942058: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items], + 3377609919: (i) => [i.ContextIdentifier, i.ContextType], + 3008791417: (_) => [], + 1660063152: (i) => [i.MappingOrigin, i.MappedRepresentation], + 2439245199: (i) => [i.Name, i.Description], + 2341007311: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description], + 448429030: (i) => [i.Dimensions, i.UnitType, i.Prefix, i.Name], + 1054537805: (i) => [i.Name, i.DataOrigin, i.UserDefinedDataOrigin], + 867548509: (i) => { + var _a; + return [i.ShapeRepresentations, i.Name, i.Description, (_a = i.ProductDefinitional) == null ? void 0 : _a.toString(), i.PartOfProductDefinitionShape]; + }, + 3982875396: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items], + 4240577450: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items], + 2273995522: (i) => [i.Name], + 2162789131: (i) => [i.Name], + 3478079324: (i) => [i.Name, i.Values, i.Locations], + 609421318: (i) => [i.Name], + 2525727697: (i) => [i.Name], + 3408363356: (i) => [i.Name, i.DeltaTConstant, i.DeltaTY, i.DeltaTZ], + 2830218821: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items], + 3958052878: (i) => [i.Item, i.Styles, i.Name], + 3049322572: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items], + 2934153892: (i) => [i.Name, i.SurfaceReinforcement1, i.SurfaceReinforcement2, i.ShearReinforcement], + 1300840506: (i) => [i.Name, i.Side, i.Styles], + 3303107099: (i) => [i.DiffuseTransmissionColour, i.DiffuseReflectionColour, i.TransmissionColour, i.ReflectanceColour], + 1607154358: (i) => [i.RefractionIndex, i.DispersionFactor], + 846575682: (i) => [i.SurfaceColour, i.Transparency], + 1351298697: (i) => [i.Textures], + 626085974: (i) => { + var _a, _b; + return [(_a = i.RepeatS) == null ? void 0 : _a.toString(), (_b = i.RepeatT) == null ? void 0 : _b.toString(), i.Mode, i.TextureTransform, i.Parameter]; + }, + 985171141: (i) => [i.Name, i.Rows, i.Columns], + 2043862942: (i) => [i.Identifier, i.Name, i.Description, i.Unit, i.ReferencePath], + 531007025: (i) => { + var _a; + return [!i.RowCells ? null : i.RowCells.map((p) => Labelise(p)), (_a = i.IsHeading) == null ? void 0 : _a.toString()]; + }, + 1549132990: (i) => { + var _a; + return [i.Name, i.DataOrigin, i.UserDefinedDataOrigin, i.DurationType, i.ScheduleDuration, i.ScheduleStart, i.ScheduleFinish, i.EarlyStart, i.EarlyFinish, i.LateStart, i.LateFinish, i.FreeFloat, i.TotalFloat, (_a = i.IsCritical) == null ? void 0 : _a.toString(), i.StatusTime, i.ActualDuration, i.ActualStart, i.ActualFinish, i.RemainingTime, i.Completion]; + }, + 2771591690: (i) => { + var _a; + return [i.Name, i.DataOrigin, i.UserDefinedDataOrigin, i.DurationType, i.ScheduleDuration, i.ScheduleStart, i.ScheduleFinish, i.EarlyStart, i.EarlyFinish, i.LateStart, i.LateFinish, i.FreeFloat, i.TotalFloat, (_a = i.IsCritical) == null ? void 0 : _a.toString(), i.StatusTime, i.ActualDuration, i.ActualStart, i.ActualFinish, i.RemainingTime, i.Completion, i.Recurrence]; + }, + 912023232: (i) => [i.Purpose, i.Description, i.UserDefinedPurpose, i.TelephoneNumbers, i.FacsimileNumbers, i.PagerNumber, i.ElectronicMailAddresses, i.WWWHomePageURL, i.MessagingIDs], + 1447204868: (i) => { + var _a; + return [i.Name, i.TextCharacterAppearance, i.TextStyle, i.TextFontStyle, (_a = i.ModelOrDraughting) == null ? void 0 : _a.toString()]; + }, + 2636378356: (i) => [i.Colour, i.BackgroundColour], + 1640371178: (i) => [!i.TextIndent ? null : Labelise(i.TextIndent), i.TextAlign, i.TextDecoration, !i.LetterSpacing ? null : Labelise(i.LetterSpacing), !i.WordSpacing ? null : Labelise(i.WordSpacing), i.TextTransform, !i.LineHeight ? null : Labelise(i.LineHeight)], + 280115917: (i) => [i.Maps], + 1742049831: (i) => [i.Maps, i.Mode, i.Parameter], + 2552916305: (i) => [i.Maps, i.Vertices, i.MappedTo], + 1210645708: (i) => [i.Coordinates], + 3611470254: (i) => [i.TexCoordsList], + 1199560280: (i) => [i.StartTime, i.EndTime], + 3101149627: (i) => [i.Name, i.Description, i.StartTime, i.EndTime, i.TimeSeriesDataType, i.DataOrigin, i.UserDefinedDataOrigin, i.Unit], + 581633288: (i) => [i.ListValues.map((p) => Labelise(p))], + 1377556343: (_) => [], + 1735638870: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items], + 180925521: (i) => [i.Units], + 2799835756: (_) => [], + 1907098498: (i) => [i.VertexGeometry], + 891718957: (i) => [i.IntersectingAxes, i.OffsetDistances], + 1236880293: (i) => [i.Name, i.DataOrigin, i.UserDefinedDataOrigin, i.RecurrencePattern, i.Start, i.Finish], + 3869604511: (i) => [i.Name, i.Description, i.RelatingApproval, i.RelatedApprovals], + 3798115385: (i) => [i.ProfileType, i.ProfileName, i.OuterCurve], + 1310608509: (i) => [i.ProfileType, i.ProfileName, i.Curve], + 2705031697: (i) => [i.ProfileType, i.ProfileName, i.OuterCurve, i.InnerCurves], + 616511568: (i) => { + var _a, _b; + return [(_a = i.RepeatS) == null ? void 0 : _a.toString(), (_b = i.RepeatT) == null ? void 0 : _b.toString(), i.Mode, i.TextureTransform, i.Parameter, i.RasterFormat, i.RasterCode]; + }, + 3150382593: (i) => [i.ProfileType, i.ProfileName, i.Curve, i.Thickness], + 747523909: (i) => [i.Source, i.Edition, i.EditionDate, i.Name, i.Description, i.Location, i.ReferenceTokens], + 647927063: (i) => [i.Location, i.Identification, i.Name, i.ReferencedSource, i.Description, i.Sort], + 3285139300: (i) => [i.ColourList], + 3264961684: (i) => [i.Name], + 1485152156: (i) => [i.ProfileType, i.ProfileName, i.Profiles, i.Label], + 370225590: (i) => [i.CfsFaces], + 1981873012: (i) => [i.CurveOnRelatingElement, i.CurveOnRelatedElement], + 45288368: (i) => [i.PointOnRelatingElement, i.PointOnRelatedElement, i.EccentricityInX, i.EccentricityInY, i.EccentricityInZ], + 3050246964: (i) => [i.Dimensions, i.UnitType, i.Name], + 2889183280: (i) => [i.Dimensions, i.UnitType, i.Name, i.ConversionFactor], + 2713554722: (i) => [i.Dimensions, i.UnitType, i.Name, i.ConversionFactor, i.ConversionOffset], + 539742890: (i) => [i.Name, i.Description, i.RelatingMonetaryUnit, i.RelatedMonetaryUnit, i.ExchangeRate, i.RateDateTime, i.RateSource], + 3800577675: (i) => { + var _a; + return [i.Name, i.CurveFont, !i.CurveWidth ? null : Labelise(i.CurveWidth), i.CurveColour, (_a = i.ModelOrDraughting) == null ? void 0 : _a.toString()]; + }, + 1105321065: (i) => [i.Name, i.PatternList], + 2367409068: (i) => [i.Name, i.CurveFont, i.CurveFontScaling], + 3510044353: (i) => [i.VisibleSegmentLength, i.InvisibleSegmentLength], + 3632507154: (i) => [i.ProfileType, i.ProfileName, i.ParentProfile, i.Operator, i.Label], + 1154170062: (i) => [i.Identification, i.Name, i.Description, i.Location, i.Purpose, i.IntendedUse, i.Scope, i.Revision, i.DocumentOwner, i.Editors, i.CreationTime, i.LastRevisionTime, i.ElectronicFormat, i.ValidFrom, i.ValidUntil, i.Confidentiality, i.Status], + 770865208: (i) => [i.Name, i.Description, i.RelatingDocument, i.RelatedDocuments, i.RelationshipType], + 3732053477: (i) => [i.Location, i.Identification, i.Name, i.Description, i.ReferencedDocument], + 3900360178: (i) => [i.EdgeStart, i.EdgeEnd], + 476780140: (i) => { + var _a; + return [i.EdgeStart, i.EdgeEnd, i.EdgeGeometry, (_a = i.SameSense) == null ? void 0 : _a.toString()]; + }, + 211053100: (i) => [i.Name, i.DataOrigin, i.UserDefinedDataOrigin, i.ActualDate, i.EarlyDate, i.LateDate, i.ScheduleDate], + 297599258: (i) => [i.Name, i.Description, i.Properties], + 1437805879: (i) => [i.Name, i.Description, i.RelatingReference, i.RelatedResourceObjects], + 2556980723: (i) => [i.Bounds], + 1809719519: (i) => { + var _a; + return [i.Bound, (_a = i.Orientation) == null ? void 0 : _a.toString()]; + }, + 803316827: (i) => { + var _a; + return [i.Bound, (_a = i.Orientation) == null ? void 0 : _a.toString()]; + }, + 3008276851: (i) => { + var _a; + return [i.Bounds, i.FaceSurface, (_a = i.SameSense) == null ? void 0 : _a.toString()]; + }, + 4219587988: (i) => [i.Name, i.TensionFailureX, i.TensionFailureY, i.TensionFailureZ, i.CompressionFailureX, i.CompressionFailureY, i.CompressionFailureZ], + 738692330: (i) => { + var _a; + return [i.Name, i.FillStyles, (_a = i.ModelorDraughting) == null ? void 0 : _a.toString()]; + }, + 3448662350: (i) => [i.ContextIdentifier, i.ContextType, i.CoordinateSpaceDimension, i.Precision, i.WorldCoordinateSystem, i.TrueNorth], + 2453401579: (_) => [], + 4142052618: (i) => [i.ContextIdentifier, i.ContextType, i.CoordinateSpaceDimension, i.Precision, i.WorldCoordinateSystem, i.TrueNorth, i.ParentContext, i.TargetScale, i.TargetView, i.UserDefinedTargetView], + 3590301190: (i) => [i.Elements], + 178086475: (i) => [i.PlacementLocation, i.PlacementRefDirection], + 812098782: (i) => { + var _a; + return [i.BaseSurface, (_a = i.AgreementFlag) == null ? void 0 : _a.toString()]; + }, + 3905492369: (i) => { + var _a, _b; + return [(_a = i.RepeatS) == null ? void 0 : _a.toString(), (_b = i.RepeatT) == null ? void 0 : _b.toString(), i.Mode, i.TextureTransform, i.Parameter, i.URLReference]; + }, + 3570813810: (i) => [i.MappedTo, i.Opacity, i.Colours, i.ColourIndex], + 1437953363: (i) => [i.Maps, i.MappedTo, i.TexCoords], + 2133299955: (i) => [i.Maps, i.MappedTo, i.TexCoords, i.TexCoordIndex], + 3741457305: (i) => [i.Name, i.Description, i.StartTime, i.EndTime, i.TimeSeriesDataType, i.DataOrigin, i.UserDefinedDataOrigin, i.Unit, i.Values], + 1585845231: (i) => [i.Name, i.DataOrigin, i.UserDefinedDataOrigin, Labelise(i.LagValue), i.DurationType], + 1402838566: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity], + 125510826: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity], + 2604431987: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity, i.Orientation], + 4266656042: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity, i.Position, i.ColourAppearance, i.ColourTemperature, i.LuminousFlux, i.LightEmissionSource, i.LightDistributionDataSource], + 1520743889: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity, i.Position, i.Radius, i.ConstantAttenuation, i.DistanceAttenuation, i.QuadricAttenuation], + 3422422726: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity, i.Position, i.Radius, i.ConstantAttenuation, i.DistanceAttenuation, i.QuadricAttenuation, i.Orientation, i.ConcentrationExponent, i.SpreadAngle, i.BeamWidthAngle], + 2624227202: (i) => [i.PlacementRelTo, i.RelativePlacement], + 1008929658: (_) => [], + 2347385850: (i) => [i.MappingSource, i.MappingTarget], + 1838606355: (i) => [i.Name, i.Description, i.Category], + 3708119e3: (i) => [i.Name, i.Description, i.Material, i.Fraction, i.Category], + 2852063980: (i) => [i.Name, i.Description, i.MaterialConstituents], + 2022407955: (i) => [i.Name, i.Description, i.Representations, i.RepresentedMaterial], + 1303795690: (i) => [i.ForLayerSet, i.LayerSetDirection, i.DirectionSense, i.OffsetFromReferenceLine, i.ReferenceExtent], + 3079605661: (i) => [i.ForProfileSet, i.CardinalPoint, i.ReferenceExtent], + 3404854881: (i) => [i.ForProfileSet, i.CardinalPoint, i.ReferenceExtent, i.ForProfileEndSet, i.CardinalEndPoint], + 3265635763: (i) => [i.Name, i.Description, i.Properties, i.Material], + 853536259: (i) => [i.Name, i.Description, i.RelatingMaterial, i.RelatedMaterials, i.Expression], + 2998442950: (i) => [i.ProfileType, i.ProfileName, i.ParentProfile, i.Operator, i.Label], + 219451334: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description], + 2665983363: (i) => [i.CfsFaces], + 1411181986: (i) => [i.Name, i.Description, i.RelatingOrganization, i.RelatedOrganizations], + 1029017970: (i) => { + var _a; + return [i.EdgeStart, i.EdgeEnd, i.EdgeElement, (_a = i.Orientation) == null ? void 0 : _a.toString()]; + }, + 2529465313: (i) => [i.ProfileType, i.ProfileName, i.Position], + 2519244187: (i) => [i.EdgeList], + 3021840470: (i) => [i.Name, i.Description, i.HasQuantities, i.Discrimination, i.Quality, i.Usage], + 597895409: (i) => { + var _a, _b; + return [(_a = i.RepeatS) == null ? void 0 : _a.toString(), (_b = i.RepeatT) == null ? void 0 : _b.toString(), i.Mode, i.TextureTransform, i.Parameter, i.Width, i.Height, i.ColourComponents, i.Pixel]; + }, + 2004835150: (i) => [i.Location], + 1663979128: (i) => [i.SizeInX, i.SizeInY], + 2067069095: (_) => [], + 4022376103: (i) => [i.BasisCurve, i.PointParameter], + 1423911732: (i) => [i.BasisSurface, i.PointParameterU, i.PointParameterV], + 2924175390: (i) => [i.Polygon], + 2775532180: (i) => { + var _a; + return [i.BaseSurface, (_a = i.AgreementFlag) == null ? void 0 : _a.toString(), i.Position, i.PolygonalBoundary]; + }, + 3727388367: (i) => [i.Name], + 3778827333: (_) => [], + 1775413392: (i) => [i.Name], + 673634403: (i) => [i.Name, i.Description, i.Representations], + 2802850158: (i) => [i.Name, i.Description, i.Properties, i.ProfileDefinition], + 2598011224: (i) => [i.Name, i.Description], + 1680319473: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description], + 148025276: (i) => [i.Name, i.Description, i.DependingProperty, i.DependantProperty, i.Expression], + 3357820518: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description], + 1482703590: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description], + 2090586900: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description], + 3615266464: (i) => [i.ProfileType, i.ProfileName, i.Position, i.XDim, i.YDim], + 3413951693: (i) => [i.Name, i.Description, i.StartTime, i.EndTime, i.TimeSeriesDataType, i.DataOrigin, i.UserDefinedDataOrigin, i.Unit, i.TimeStep, i.Values], + 1580146022: (i) => [i.TotalCrossSectionArea, i.SteelGrade, i.BarSurface, i.EffectiveDepth, i.NominalBarDiameter, i.BarCount], + 478536968: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description], + 2943643501: (i) => [i.Name, i.Description, i.RelatedResourceObjects, i.RelatingApproval], + 1608871552: (i) => [i.Name, i.Description, i.RelatingConstraint, i.RelatedResourceObjects], + 1042787934: (i) => { + var _a; + return [i.Name, i.DataOrigin, i.UserDefinedDataOrigin, i.ScheduleWork, i.ScheduleUsage, i.ScheduleStart, i.ScheduleFinish, i.ScheduleContour, i.LevelingDelay, (_a = i.IsOverAllocated) == null ? void 0 : _a.toString(), i.StatusTime, i.ActualWork, i.ActualUsage, i.ActualStart, i.ActualFinish, i.RemainingWork, i.RemainingUsage, i.Completion]; + }, + 2778083089: (i) => [i.ProfileType, i.ProfileName, i.Position, i.XDim, i.YDim, i.RoundingRadius], + 2042790032: (i) => [i.SectionType, i.StartProfile, i.EndProfile], + 4165799628: (i) => [i.LongitudinalStartPosition, i.LongitudinalEndPosition, i.TransversePosition, i.ReinforcementRole, i.SectionDefinition, i.CrossSectionReinforcementDefinitions], + 1509187699: (i) => [i.SpineCurve, i.CrossSections, i.CrossSectionPositions], + 4124623270: (i) => [i.SbsmBoundary], + 3692461612: (i) => [i.Name, i.Description], + 2609359061: (i) => [i.Name, i.SlippageX, i.SlippageY, i.SlippageZ], + 723233188: (_) => [], + 1595516126: (i) => [i.Name, i.LinearForceX, i.LinearForceY, i.LinearForceZ, i.LinearMomentX, i.LinearMomentY, i.LinearMomentZ], + 2668620305: (i) => [i.Name, i.PlanarForceX, i.PlanarForceY, i.PlanarForceZ], + 2473145415: (i) => [i.Name, i.DisplacementX, i.DisplacementY, i.DisplacementZ, i.RotationalDisplacementRX, i.RotationalDisplacementRY, i.RotationalDisplacementRZ], + 1973038258: (i) => [i.Name, i.DisplacementX, i.DisplacementY, i.DisplacementZ, i.RotationalDisplacementRX, i.RotationalDisplacementRY, i.RotationalDisplacementRZ, i.Distortion], + 1597423693: (i) => [i.Name, i.ForceX, i.ForceY, i.ForceZ, i.MomentX, i.MomentY, i.MomentZ], + 1190533807: (i) => [i.Name, i.ForceX, i.ForceY, i.ForceZ, i.MomentX, i.MomentY, i.MomentZ, i.WarpingMoment], + 2233826070: (i) => [i.EdgeStart, i.EdgeEnd, i.ParentEdge], + 2513912981: (_) => [], + 1878645084: (i) => [i.SurfaceColour, i.Transparency, i.DiffuseColour, i.TransmissionColour, i.DiffuseTransmissionColour, i.ReflectionColour, i.SpecularColour, !i.SpecularHighlight ? null : Labelise(i.SpecularHighlight), i.ReflectanceMethod], + 2247615214: (i) => [i.SweptArea, i.Position], + 1260650574: (i) => [i.Directrix, i.Radius, i.InnerRadius, i.StartParam, i.EndParam], + 1096409881: (i) => [i.Directrix, i.Radius, i.InnerRadius, i.StartParam, i.EndParam, i.FilletRadius], + 230924584: (i) => [i.SweptCurve, i.Position], + 3071757647: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Depth, i.FlangeWidth, i.WebThickness, i.FlangeThickness, i.FilletRadius, i.FlangeEdgeRadius, i.WebEdgeRadius, i.WebSlope, i.FlangeSlope], + 901063453: (_) => [], + 4282788508: (i) => [i.Literal, i.Placement, i.Path], + 3124975700: (i) => [i.Literal, i.Placement, i.Path, i.Extent, i.BoxAlignment], + 1983826977: (i) => [i.Name, i.FontFamily, i.FontStyle, i.FontVariant, i.FontWeight, Labelise(i.FontSize)], + 2715220739: (i) => [i.ProfileType, i.ProfileName, i.Position, i.BottomXDim, i.TopXDim, i.YDim, i.TopXOffset], + 1628702193: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets], + 3736923433: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ProcessType], + 2347495698: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag], + 3698973494: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType], + 427810014: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Depth, i.FlangeWidth, i.WebThickness, i.FlangeThickness, i.FilletRadius, i.EdgeRadius, i.FlangeSlope], + 1417489154: (i) => [i.Orientation, i.Magnitude], + 2759199220: (i) => [i.LoopVertex], + 1299126871: (i) => { + var _a, _b; + return [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ConstructionType, i.OperationType, (_a = i.ParameterTakesPrecedence) == null ? void 0 : _a.toString(), (_b = i.Sizeable) == null ? void 0 : _b.toString()]; + }, + 2543172580: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Depth, i.FlangeWidth, i.WebThickness, i.FlangeThickness, i.FilletRadius, i.EdgeRadius], + 3406155212: (i) => { + var _a; + return [i.Bounds, i.FaceSurface, (_a = i.SameSense) == null ? void 0 : _a.toString()]; + }, + 669184980: (i) => [i.OuterBoundary, i.InnerBoundaries], + 3207858831: (i) => [i.ProfileType, i.ProfileName, i.Position, i.BottomFlangeWidth, i.OverallDepth, i.WebThickness, i.BottomFlangeThickness, i.BottomFlangeFilletRadius, i.TopFlangeWidth, i.TopFlangeThickness, i.TopFlangeFilletRadius, i.BottomFlangeEdgeRadius, i.BottomFlangeSlope, i.TopFlangeEdgeRadius, i.TopFlangeSlope], + 4261334040: (i) => [i.Location, i.Axis], + 3125803723: (i) => [i.Location, i.RefDirection], + 2740243338: (i) => [i.Location, i.Axis, i.RefDirection], + 2736907675: (i) => [i.Operator, i.FirstOperand, i.SecondOperand], + 4182860854: (_) => [], + 2581212453: (i) => [i.Corner, i.XDim, i.YDim, i.ZDim], + 2713105998: (i) => { + var _a; + return [i.BaseSurface, (_a = i.AgreementFlag) == null ? void 0 : _a.toString(), i.Enclosure]; + }, + 2898889636: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Depth, i.Width, i.WallThickness, i.Girth, i.InternalFilletRadius], + 1123145078: (i) => [i.Coordinates], + 574549367: (_) => [], + 1675464909: (i) => [i.CoordList], + 2059837836: (i) => [i.CoordList], + 59481748: (i) => [i.Axis1, i.Axis2, i.LocalOrigin, i.Scale], + 3749851601: (i) => [i.Axis1, i.Axis2, i.LocalOrigin, i.Scale], + 3486308946: (i) => [i.Axis1, i.Axis2, i.LocalOrigin, i.Scale, i.Scale2], + 3331915920: (i) => [i.Axis1, i.Axis2, i.LocalOrigin, i.Scale, i.Axis3], + 1416205885: (i) => [i.Axis1, i.Axis2, i.LocalOrigin, i.Scale, i.Axis3, i.Scale2, i.Scale3], + 1383045692: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Radius], + 2205249479: (i) => [i.CfsFaces], + 776857604: (i) => [i.Name, i.Red, i.Green, i.Blue], + 2542286263: (i) => [i.Name, i.Description, i.UsageName, i.HasProperties], + 2485617015: (i) => { + var _a; + return [i.Transition, (_a = i.SameSense) == null ? void 0 : _a.toString(), i.ParentCurve]; + }, + 2574617495: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType, i.BaseCosts, i.BaseQuantity], + 3419103109: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.LongName, i.Phase, i.RepresentationContexts, i.UnitsInContext], + 1815067380: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType, i.BaseCosts, i.BaseQuantity, i.PredefinedType], + 2506170314: (i) => [i.Position], + 2147822146: (i) => [i.TreeRootExpression], + 2601014836: (_) => [], + 2827736869: (i) => [i.BasisSurface, i.OuterBoundary, i.InnerBoundaries], + 2629017746: (i) => { + var _a; + return [i.BasisSurface, i.Boundaries, (_a = i.ImplicitOuter) == null ? void 0 : _a.toString()]; + }, + 32440307: (i) => [i.DirectionRatios], + 526551008: (i) => { + var _a, _b; + return [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.OperationType, i.ConstructionType, (_a = i.ParameterTakesPrecedence) == null ? void 0 : _a.toString(), (_b = i.Sizeable) == null ? void 0 : _b.toString()]; + }, + 1472233963: (i) => [i.EdgeList], + 1883228015: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.MethodOfMeasurement, i.Quantities], + 339256511: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], + 2777663545: (i) => [i.Position], + 2835456948: (i) => [i.ProfileType, i.ProfileName, i.Position, i.SemiAxis1, i.SemiAxis2], + 4024345920: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ProcessType, i.PredefinedType, i.EventTriggerType, i.UserDefinedEventTriggerType], + 477187591: (i) => [i.SweptArea, i.Position, i.ExtrudedDirection, i.Depth], + 2804161546: (i) => [i.SweptArea, i.Position, i.ExtrudedDirection, i.Depth, i.EndSweptArea], + 2047409740: (i) => [i.FbsmFaces], + 374418227: (i) => [i.HatchLineAppearance, i.StartOfNextHatchLine, i.PointOfReferenceHatchLine, i.PatternStart, i.HatchLineAngle], + 315944413: (i) => [i.TilingPattern, i.Tiles, i.TilingScale], + 2652556860: (i) => [i.SweptArea, i.Position, i.Directrix, i.StartParam, i.EndParam, i.FixedReference], + 4238390223: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], + 1268542332: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.AssemblyPlace, i.PredefinedType], + 4095422895: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 987898635: (i) => [i.Elements], + 1484403080: (i) => [i.ProfileType, i.ProfileName, i.Position, i.OverallWidth, i.OverallDepth, i.WebThickness, i.FlangeThickness, i.FilletRadius, i.FlangeEdgeRadius, i.FlangeSlope], + 178912537: (i) => [i.CoordIndex], + 2294589976: (i) => [i.CoordIndex, i.InnerCoordIndices], + 572779678: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Depth, i.Width, i.Thickness, i.FilletRadius, i.EdgeRadius, i.LegSlope], + 428585644: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType, i.BaseCosts, i.BaseQuantity, i.PredefinedType], + 1281925730: (i) => [i.Pnt, i.Dir], + 1425443689: (i) => [i.Outer], + 3888040117: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType], + 3388369263: (i) => { + var _a; + return [i.BasisCurve, i.Distance, (_a = i.SelfIntersect) == null ? void 0 : _a.toString()]; + }, + 3505215534: (i) => { + var _a; + return [i.BasisCurve, i.Distance, (_a = i.SelfIntersect) == null ? void 0 : _a.toString(), i.RefDirection]; + }, + 1682466193: (i) => [i.BasisSurface, i.ReferenceCurve], + 603570806: (i) => [i.SizeInX, i.SizeInY, i.Placement], + 220341763: (i) => [i.Position], + 759155922: (i) => [i.Name], + 2559016684: (i) => [i.Name], + 3967405729: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description], + 569719735: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ProcessType, i.PredefinedType], + 2945172077: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription], + 4208778838: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation], + 103090709: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.LongName, i.Phase, i.RepresentationContexts, i.UnitsInContext], + 653396225: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.LongName, i.Phase, i.RepresentationContexts, i.UnitsInContext], + 871118103: (i) => [i.Name, i.Description, !i.UpperBoundValue ? null : Labelise(i.UpperBoundValue), !i.LowerBoundValue ? null : Labelise(i.LowerBoundValue), i.Unit, !i.SetPointValue ? null : Labelise(i.SetPointValue)], + 4166981789: (i) => [i.Name, i.Description, !i.EnumerationValues ? null : i.EnumerationValues.map((p) => Labelise(p)), i.EnumerationReference], + 2752243245: (i) => [i.Name, i.Description, !i.ListValues ? null : i.ListValues.map((p) => Labelise(p)), i.Unit], + 941946838: (i) => [i.Name, i.Description, i.UsageName, i.PropertyReference], + 1451395588: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.HasProperties], + 492091185: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.TemplateType, i.ApplicableEntity, i.HasPropertyTemplates], + 3650150729: (i) => [i.Name, i.Description, !i.NominalValue ? null : Labelise(i.NominalValue), i.Unit], + 110355661: (i) => [i.Name, i.Description, !i.DefiningValues ? null : i.DefiningValues.map((p) => Labelise(p)), !i.DefinedValues ? null : i.DefinedValues.map((p) => Labelise(p)), i.Expression, i.DefiningUnit, i.DefinedUnit, i.CurveInterpolation], + 3521284610: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description], + 3219374653: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.ProxyType, i.Tag], + 2770003689: (i) => [i.ProfileType, i.ProfileName, i.Position, i.XDim, i.YDim, i.WallThickness, i.InnerFilletRadius, i.OuterFilletRadius], + 2798486643: (i) => [i.Position, i.XLength, i.YLength, i.Height], + 3454111270: (i) => { + var _a, _b; + return [i.BasisSurface, i.U1, i.V1, i.U2, i.V2, (_a = i.Usense) == null ? void 0 : _a.toString(), (_b = i.Vsense) == null ? void 0 : _b.toString()]; + }, + 3765753017: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.DefinitionType, i.ReinforcementSectionDefinitions], + 3939117080: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType], + 1683148259: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingActor, i.ActingRole], + 2495723537: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingControl], + 1307041759: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingGroup], + 1027710054: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingGroup, i.Factor], + 4278684876: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingProcess, i.QuantityInProcess], + 2857406711: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingProduct], + 205026976: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingResource], + 1865459582: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects], + 4095574036: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingApproval], + 919958153: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingClassification], + 2728634034: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.Intent, i.RelatingConstraint], + 982818633: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingDocument], + 3840914261: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingLibrary], + 2655215786: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingMaterial], + 826625072: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description], + 1204542856: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ConnectionGeometry, i.RelatingElement, i.RelatedElement], + 3945020480: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ConnectionGeometry, i.RelatingElement, i.RelatedElement, i.RelatingPriorities, i.RelatedPriorities, i.RelatedConnectionType, i.RelatingConnectionType], + 4201705270: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingPort, i.RelatedElement], + 3190031847: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingPort, i.RelatedPort, i.RealizingElement], + 2127690289: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingElement, i.RelatedStructuralActivity], + 1638771189: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingStructuralMember, i.RelatedStructuralConnection, i.AppliedCondition, i.AdditionalConditions, i.SupportedLength, i.ConditionCoordinateSystem], + 504942748: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingStructuralMember, i.RelatedStructuralConnection, i.AppliedCondition, i.AdditionalConditions, i.SupportedLength, i.ConditionCoordinateSystem, i.ConnectionConstraint], + 3678494232: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ConnectionGeometry, i.RelatingElement, i.RelatedElement, i.RealizingElements, i.ConnectionType], + 3242617779: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedElements, i.RelatingStructure], + 886880790: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingBuildingElement, i.RelatedCoverings], + 2802773753: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingSpace, i.RelatedCoverings], + 2565941209: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingContext, i.RelatedDefinitions], + 2551354335: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description], + 693640335: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description], + 1462361463: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingObject], + 4186316022: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingPropertyDefinition], + 307848117: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedPropertySets, i.RelatingTemplate], + 781010003: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingType], + 3940055652: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingOpeningElement, i.RelatedBuildingElement], + 279856033: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedControlElements, i.RelatingFlowElement], + 427948657: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingElement, i.RelatedElement, i.InterferenceGeometry, i.InterferenceType, i.ImpliedOrder], + 3268803585: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingObject, i.RelatedObjects], + 750771296: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingElement, i.RelatedFeatureElement], + 1245217292: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedElements, i.RelatingStructure], + 4122056220: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingProcess, i.RelatedProcess, i.TimeLag, i.SequenceType, i.UserDefinedSequenceType], + 366585022: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingSystem, i.RelatedBuildings], + 3451746338: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingSpace, i.RelatedBuildingElement, i.ConnectionGeometry, i.PhysicalOrVirtualBoundary, i.InternalOrExternalBoundary], + 3523091289: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingSpace, i.RelatedBuildingElement, i.ConnectionGeometry, i.PhysicalOrVirtualBoundary, i.InternalOrExternalBoundary, i.ParentBoundary], + 1521410863: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingSpace, i.RelatedBuildingElement, i.ConnectionGeometry, i.PhysicalOrVirtualBoundary, i.InternalOrExternalBoundary, i.ParentBoundary, i.CorrespondingBoundary], + 1401173127: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingBuildingElement, i.RelatedOpeningElement], + 816062949: (i) => { + var _a; + return [i.Transition, (_a = i.SameSense) == null ? void 0 : _a.toString(), i.ParentCurve, i.ParamLength]; + }, + 2914609552: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription], + 1856042241: (i) => [i.SweptArea, i.Position, i.Axis, i.Angle], + 3243963512: (i) => [i.SweptArea, i.Position, i.Axis, i.Angle, i.EndSweptArea], + 4158566097: (i) => [i.Position, i.Height, i.BottomRadius], + 3626867408: (i) => [i.Position, i.Height, i.Radius], + 3663146110: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.TemplateType, i.PrimaryMeasureType, i.SecondaryMeasureType, i.Enumerators, i.PrimaryUnit, i.SecondaryUnit, i.Expression, i.AccessState], + 1412071761: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName], + 710998568: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], + 2706606064: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType], + 3893378262: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], + 463610769: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.PredefinedType], + 2481509218: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.LongName], + 451544542: (i) => [i.Position, i.Radius], + 4015995234: (i) => [i.Position, i.Radius], + 3544373492: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal], + 3136571912: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation], + 530289379: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation], + 3689010777: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal], + 3979015343: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.PredefinedType, i.Thickness], + 2218152070: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.PredefinedType, i.Thickness], + 603775116: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.PredefinedType], + 4095615324: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType, i.BaseCosts, i.BaseQuantity, i.PredefinedType], + 699246055: (i) => [i.Curve3D, i.AssociatedGeometry, i.MasterRepresentation], + 2028607225: (i) => [i.SweptArea, i.Position, i.Directrix, i.StartParam, i.EndParam, i.ReferenceSurface], + 2809605785: (i) => [i.SweptCurve, i.Position, i.ExtrudedDirection, i.Depth], + 4124788165: (i) => [i.SweptCurve, i.Position, i.AxisPosition], + 1580310250: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 3473067441: (i) => { + var _a; + return [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Status, i.WorkMethod, (_a = i.IsMilestone) == null ? void 0 : _a.toString(), i.Priority, i.TaskTime, i.PredefinedType]; + }, + 3206491090: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ProcessType, i.PredefinedType, i.WorkMethod], + 2387106220: (i) => [i.Coordinates], + 1935646853: (i) => [i.Position, i.MajorRadius, i.MinorRadius], + 2097647324: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 2916149573: (i) => { + var _a; + return [i.Coordinates, i.Normals, (_a = i.Closed) == null ? void 0 : _a.toString(), i.CoordIndex, i.PnIndex]; + }, + 336235671: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.LiningDepth, i.LiningThickness, i.TransomThickness, i.MullionThickness, i.FirstTransomOffset, i.SecondTransomOffset, i.FirstMullionOffset, i.SecondMullionOffset, i.ShapeAspectStyle, i.LiningOffset, i.LiningToPanelOffsetX, i.LiningToPanelOffsetY], + 512836454: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.OperationType, i.PanelPosition, i.FrameDepth, i.FrameThickness, i.ShapeAspectStyle], + 2296667514: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.TheActor], + 1635779807: (i) => [i.Outer], + 2603310189: (i) => [i.Outer, i.Voids], + 1674181508: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation], + 2887950389: (i) => { + var _a, _b, _c; + return [i.UDegree, i.VDegree, i.ControlPointsList, i.SurfaceForm, (_a = i.UClosed) == null ? void 0 : _a.toString(), (_b = i.VClosed) == null ? void 0 : _b.toString(), (_c = i.SelfIntersect) == null ? void 0 : _c.toString()]; + }, + 167062518: (i) => { + var _a, _b, _c; + return [i.UDegree, i.VDegree, i.ControlPointsList, i.SurfaceForm, (_a = i.UClosed) == null ? void 0 : _a.toString(), (_b = i.VClosed) == null ? void 0 : _b.toString(), (_c = i.SelfIntersect) == null ? void 0 : _c.toString(), i.UMultiplicities, i.VMultiplicities, i.UKnots, i.VKnots, i.KnotSpec]; + }, + 1334484129: (i) => [i.Position, i.XLength, i.YLength, i.ZLength], + 3649129432: (i) => [i.Operator, i.FirstOperand, i.SecondOperand], + 1260505505: (_) => [], + 4031249490: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.ElevationOfRefHeight, i.ElevationOfTerrain, i.BuildingAddress], + 1950629157: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], + 3124254112: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.Elevation], + 2197970202: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 2937912522: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Radius, i.WallThickness], + 3893394355: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], + 300633059: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 3875453745: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.UsageName, i.TemplateType, i.HasPropertyTemplates], + 3732776249: (i) => { + var _a; + return [i.Segments, (_a = i.SelfIntersect) == null ? void 0 : _a.toString()]; + }, + 15328376: (i) => { + var _a; + return [i.Segments, (_a = i.SelfIntersect) == null ? void 0 : _a.toString()]; + }, + 2510884976: (i) => [i.Position], + 2185764099: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType, i.BaseCosts, i.BaseQuantity, i.PredefinedType], + 4105962743: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType, i.BaseCosts, i.BaseQuantity, i.PredefinedType], + 1525564444: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType, i.BaseCosts, i.BaseQuantity, i.PredefinedType], + 2559216714: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Usage, i.BaseCosts, i.BaseQuantity], + 3293443760: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification], + 3895139033: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.PredefinedType, i.CostValues, i.CostQuantities], + 1419761937: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.PredefinedType, i.Status, i.SubmittedOn, i.UpdateDate], + 1916426348: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 3295246426: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Usage, i.BaseCosts, i.BaseQuantity, i.PredefinedType], + 1457835157: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1213902940: (i) => [i.Position, i.Radius], + 3256556792: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], + 3849074793: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], + 2963535650: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.LiningDepth, i.LiningThickness, i.ThresholdDepth, i.ThresholdThickness, i.TransomThickness, i.TransomOffset, i.LiningOffset, i.ThresholdOffset, i.CasingThickness, i.CasingDepth, i.ShapeAspectStyle, i.LiningToPanelOffsetX, i.LiningToPanelOffsetY], + 1714330368: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.PanelDepth, i.PanelOperation, i.PanelWidth, i.PanelPosition, i.ShapeAspectStyle], + 2323601079: (i) => { + var _a; + return [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.OperationType, (_a = i.ParameterTakesPrecedence) == null ? void 0 : _a.toString(), i.UserDefinedOperationType]; + }, + 445594917: (i) => [i.Name], + 4006246654: (i) => [i.Name], + 1758889154: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 4123344466: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.AssemblyPlace, i.PredefinedType], + 2397081782: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1623761950: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 2590856083: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], + 1704287377: (i) => [i.Position, i.SemiAxis1, i.SemiAxis2], + 2107101300: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], + 132023988: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 3174744832: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 3390157468: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 4148101412: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.PredefinedType, i.EventTriggerType, i.UserDefinedEventTriggerType, i.EventOccurenceTime], + 2853485674: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName], + 807026263: (i) => [i.Outer], + 3737207727: (i) => [i.Outer, i.Voids], + 647756555: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 2489546625: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 2827207264: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 2143335405: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 1287392070: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 3907093117: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], + 3198132628: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], + 3815607619: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1482959167: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], + 1834744321: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], + 1339347760: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], + 2297155007: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], + 3009222698: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], + 1893162501: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 263784265: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 1509553395: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 3493046030: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 3009204131: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.UAxes, i.VAxes, i.WAxes, i.PredefinedType], + 2706460486: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType], + 1251058090: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1806887404: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 2571569899: (i) => { + var _a; + return [i.Points, !i.Segments ? null : i.Segments.map((p) => Labelise(p)), (_a = i.SelfIntersect) == null ? void 0 : _a.toString()]; + }, + 3946677679: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 3113134337: (i) => [i.Curve3D, i.AssociatedGeometry, i.MasterRepresentation], + 2391368822: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.PredefinedType, i.Jurisdiction, i.ResponsiblePersons, i.LastUpdateDate, i.CurrentValue, i.OriginalValue], + 4288270099: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 3827777499: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Usage, i.BaseCosts, i.BaseQuantity, i.PredefinedType], + 1051575348: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1161773419: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 377706215: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.NominalDiameter, i.NominalLength, i.PredefinedType], + 2108223431: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.NominalDiameter, i.NominalLength], + 1114901282: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 3181161470: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 977012517: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 4143007308: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.TheActor, i.PredefinedType], + 3588315303: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 3079942009: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 2837617999: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 2382730787: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LifeCyclePhase, i.PredefinedType], + 3566463478: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.OperationType, i.PanelPosition, i.FrameDepth, i.FrameThickness, i.ShapeAspectStyle], + 3327091369: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.PredefinedType, i.Status, i.LongDescription], + 1158309216: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 804291784: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 4231323485: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 4017108033: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 2839578677: (i) => { + var _a; + return [i.Coordinates, (_a = i.Closed) == null ? void 0 : _a.toString(), i.Faces, i.PnIndex]; + }, + 3724593414: (i) => [i.Points], + 3740093272: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation], + 2744685151: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.PredefinedType], + 2904328755: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.PredefinedType, i.Status, i.LongDescription], + 3651124850: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 1842657554: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 2250791053: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 2893384427: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 2324767716: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1469900589: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 683857671: (i) => { + var _a, _b, _c; + return [i.UDegree, i.VDegree, i.ControlPointsList, i.SurfaceForm, (_a = i.UClosed) == null ? void 0 : _a.toString(), (_b = i.VClosed) == null ? void 0 : _b.toString(), (_c = i.SelfIntersect) == null ? void 0 : _c.toString(), i.UMultiplicities, i.VMultiplicities, i.UKnots, i.VKnots, i.KnotSpec, i.WeightsData]; + }, + 3027567501: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade], + 964333572: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], + 2320036040: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade, i.MeshLength, i.MeshWidth, i.LongitudinalBarNominalDiameter, i.TransverseBarNominalDiameter, i.LongitudinalBarCrossSectionArea, i.TransverseBarCrossSectionArea, i.LongitudinalBarSpacing, i.TransverseBarSpacing, i.PredefinedType], + 2310774935: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.MeshLength, i.MeshWidth, i.LongitudinalBarNominalDiameter, i.TransverseBarNominalDiameter, i.LongitudinalBarCrossSectionArea, i.TransverseBarCrossSectionArea, i.LongitudinalBarSpacing, i.TransverseBarSpacing, i.BendingShapeCode, !i.BendingParameters ? null : i.BendingParameters.map((p) => Labelise(p))], + 160246688: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingObject, i.RelatedObjects], + 2781568857: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1768891740: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 2157484638: (i) => [i.Curve3D, i.AssociatedGeometry, i.MasterRepresentation], + 4074543187: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 4097777520: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.RefLatitude, i.RefLongitude, i.RefElevation, i.LandTitleNumber, i.SiteAddress], + 2533589738: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1072016465: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 3856911033: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.PredefinedType, i.ElevationWithFlooring], + 1305183839: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 3812236995: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.LongName], + 3112655638: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1039846685: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 338393293: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 682877961: (i) => { + var _a; + return [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, (_a = i.DestabilizingLoad) == null ? void 0 : _a.toString()]; + }, + 1179482911: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedCondition], + 1004757350: (i) => { + var _a; + return [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, (_a = i.DestabilizingLoad) == null ? void 0 : _a.toString(), i.ProjectedOrTrue, i.PredefinedType]; + }, + 4243806635: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedCondition, i.Axis], + 214636428: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.PredefinedType, i.Axis], + 2445595289: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.PredefinedType, i.Axis], + 2757150158: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.PredefinedType], + 1807405624: (i) => { + var _a; + return [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, (_a = i.DestabilizingLoad) == null ? void 0 : _a.toString(), i.ProjectedOrTrue, i.PredefinedType]; + }, + 1252848954: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.PredefinedType, i.ActionType, i.ActionSource, i.Coefficient, i.Purpose], + 2082059205: (i) => { + var _a; + return [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, (_a = i.DestabilizingLoad) == null ? void 0 : _a.toString()]; + }, + 734778138: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedCondition, i.ConditionCoordinateSystem], + 1235345126: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal], + 2986769608: (i) => { + var _a; + return [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.TheoryType, i.ResultForLoadGroup, (_a = i.IsLinear) == null ? void 0 : _a.toString()]; + }, + 3657597509: (i) => { + var _a; + return [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, (_a = i.DestabilizingLoad) == null ? void 0 : _a.toString(), i.ProjectedOrTrue, i.PredefinedType]; + }, + 1975003073: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedCondition], + 148013059: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Usage, i.BaseCosts, i.BaseQuantity, i.PredefinedType], + 3101698114: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 2315554128: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 2254336722: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType], + 413509423: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 5716631: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 3824725483: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade, i.PredefinedType, i.NominalDiameter, i.CrossSectionArea, i.TensionForce, i.PreStress, i.FrictionCoefficient, i.AnchorageSlip, i.MinCurvatureRadius], + 2347447852: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade, i.PredefinedType], + 3081323446: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 2415094496: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.NominalDiameter, i.CrossSectionArea, i.SheathDiameter], + 1692211062: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1620046519: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 3593883385: (i) => { + var _a; + return [i.BasisCurve, i.Trim1, i.Trim2, (_a = i.SenseAgreement) == null ? void 0 : _a.toString(), i.MasterRepresentation]; + }, + 1600972822: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1911125066: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 728799441: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 2391383451: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 3313531582: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 2769231204: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 926996030: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 1898987631: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1133259667: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 4009809668: (i) => { + var _a; + return [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.PartitioningType, (_a = i.ParameterTakesPrecedence) == null ? void 0 : _a.toString(), i.UserDefinedPartitioningType]; + }, + 4088093105: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.WorkingTimes, i.ExceptionTimes, i.PredefinedType], + 1028945134: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.CreationDate, i.Creators, i.Purpose, i.Duration, i.TotalFloat, i.StartTime, i.FinishTime], + 4218914973: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.CreationDate, i.Creators, i.Purpose, i.Duration, i.TotalFloat, i.StartTime, i.FinishTime, i.PredefinedType], + 3342526732: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.CreationDate, i.Creators, i.Purpose, i.Duration, i.TotalFloat, i.StartTime, i.FinishTime, i.PredefinedType], + 1033361043: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.LongName], + 3821786052: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.PredefinedType, i.Status, i.LongDescription], + 1411407467: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 3352864051: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1871374353: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 3460190687: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.OriginalValue, i.CurrentValue, i.TotalReplacementCost, i.Owner, i.User, i.ResponsiblePerson, i.IncorporationDate, i.DepreciatedValue], + 1532957894: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1967976161: (i) => { + var _a, _b; + return [i.Degree, i.ControlPointsList, i.CurveForm, (_a = i.ClosedCurve) == null ? void 0 : _a.toString(), (_b = i.SelfIntersect) == null ? void 0 : _b.toString()]; + }, + 2461110595: (i) => { + var _a, _b; + return [i.Degree, i.ControlPointsList, i.CurveForm, (_a = i.ClosedCurve) == null ? void 0 : _a.toString(), (_b = i.SelfIntersect) == null ? void 0 : _b.toString(), i.KnotMultiplicities, i.Knots, i.KnotSpec]; + }, + 819618141: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 231477066: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1136057603: (i) => { + var _a; + return [i.Segments, (_a = i.SelfIntersect) == null ? void 0 : _a.toString()]; + }, + 3299480353: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 2979338954: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 39481116: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1095909175: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 1909888760: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1177604601: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.PredefinedType, i.LongName], + 2188180465: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 395041908: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 3293546465: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 2674252688: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1285652485: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 2951183804: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 3296154744: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 2611217952: (i) => [i.Position, i.Radius], + 1677625105: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 2301859152: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 843113511: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 905975707: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 400855858: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 3850581409: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 2816379211: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 3898045240: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Usage, i.BaseCosts, i.BaseQuantity, i.PredefinedType], + 1060000209: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Usage, i.BaseCosts, i.BaseQuantity, i.PredefinedType], + 488727124: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Usage, i.BaseCosts, i.BaseQuantity, i.PredefinedType], + 335055490: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 2954562838: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1973544240: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 3495092785: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 3961806047: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1335981549: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 2635815018: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1599208980: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 2063403501: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], + 1945004755: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 3040386961: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 3041715199: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.FlowDirection, i.PredefinedType, i.SystemType], + 3205830791: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.LongName, i.PredefinedType], + 395920057: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.OverallHeight, i.OverallWidth, i.PredefinedType, i.OperationType, i.UserDefinedOperationType], + 3242481149: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.OverallHeight, i.OverallWidth, i.PredefinedType, i.OperationType, i.UserDefinedOperationType], + 869906466: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 3760055223: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 2030761528: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 663422040: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 2417008758: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 3277789161: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1534661035: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1217240411: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 712377611: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1658829314: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 2814081492: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 3747195512: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 484807127: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 1209101575: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.PredefinedType], + 346874300: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1810631287: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 4222183408: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 2058353004: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 4278956645: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 4037862832: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 2188021234: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 3132237377: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 987401354: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 707683696: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 2223149337: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 3508470533: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 900683007: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 3319311131: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 2068733104: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 4175244083: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 2176052936: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 76236018: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 629592764: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 1437502449: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 1073191201: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 1911478936: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 2474470126: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 144952367: (i) => { + var _a; + return [i.Segments, (_a = i.SelfIntersect) == null ? void 0 : _a.toString()]; + }, + 3694346114: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 1687234759: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType, i.ConstructionType], + 310824031: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 3612865200: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 3171933400: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 1156407060: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 738039164: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 655969474: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 90941305: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 2262370178: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 3024970846: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 3283111854: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 1232101972: (i) => { + var _a, _b; + return [i.Degree, i.ControlPointsList, i.CurveForm, (_a = i.ClosedCurve) == null ? void 0 : _a.toString(), (_b = i.SelfIntersect) == null ? void 0 : _b.toString(), i.KnotMultiplicities, i.Knots, i.KnotSpec, i.WeightsData]; + }, + 979691226: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade, i.NominalDiameter, i.CrossSectionArea, i.BarLength, i.PredefinedType, i.BarSurface], + 2572171363: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.NominalDiameter, i.CrossSectionArea, i.BarLength, i.BarSurface, i.BendingShapeCode, !i.BendingParameters ? null : i.BendingParameters.map((p) => Labelise(p))], + 2016517767: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 3053780830: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 1783015770: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1329646415: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 1529196076: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 3127900445: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 3027962421: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 3420628829: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 1999602285: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 1404847402: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 331165859: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 4252922144: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.NumberOfRisers, i.NumberOfTreads, i.RiserHeight, i.TreadLength, i.PredefinedType], + 2515109513: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.PredefinedType, i.OrientationOf2DPlane, i.LoadedBy, i.HasResults, i.SharedPlacement], + 385403989: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.PredefinedType, i.ActionType, i.ActionSource, i.Coefficient, i.Purpose, i.SelfWeightCoefficients], + 1621171031: (i) => { + var _a; + return [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, (_a = i.DestabilizingLoad) == null ? void 0 : _a.toString(), i.ProjectedOrTrue, i.PredefinedType]; + }, + 1162798199: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 812556717: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 3825984169: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 3026737570: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 3179687236: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 4292641817: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 4207607924: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 2391406946: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 4156078855: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 3512223829: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 4237592921: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 3304561284: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.OverallHeight, i.OverallWidth, i.PredefinedType, i.PartitioningType, i.UserDefinedPartitioningType], + 486154966: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.OverallHeight, i.OverallWidth, i.PredefinedType, i.PartitioningType, i.UserDefinedPartitioningType], + 2874132201: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1634111441: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 177149247: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 2056796094: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 3001207471: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 277319702: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 753842376: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 2906023776: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 32344328: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 2938176219: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 635142910: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 3758799889: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 1051757585: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 4217484030: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 3902619387: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 639361253: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 3221913625: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 3571504051: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 2272882330: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 578613899: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 4136498852: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 3640358203: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 4074379575: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 1052013943: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 562808652: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.LongName, i.PredefinedType], + 1062813311: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 342316401: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 3518393246: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 1360408905: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 1904799276: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 862014818: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 3310460725: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 264262732: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 402227799: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 1003880860: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 3415622556: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 819412036: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 1426591983: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 182646315: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 2295281155: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 4086658281: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 630975310: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 4288193352: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 3087945054: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 25142252: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType] +}; +TypeInitialisers[2] = { + 3699917729: (v) => new IFC4$1.IfcAbsorbedDoseMeasure(v), + 4182062534: (v) => new IFC4$1.IfcAccelerationMeasure(v), + 360377573: (v) => new IFC4$1.IfcAmountOfSubstanceMeasure(v), + 632304761: (v) => new IFC4$1.IfcAngularVelocityMeasure(v), + 3683503648: (v) => new IFC4$1.IfcArcIndex(v.map((x) => x.value)), + 1500781891: (v) => new IFC4$1.IfcAreaDensityMeasure(v), + 2650437152: (v) => new IFC4$1.IfcAreaMeasure(v), + 2314439260: (v) => new IFC4$1.IfcBinary(v), + 2735952531: (v) => new IFC4$1.IfcBoolean(v), + 1867003952: (v) => new IFC4$1.IfcBoxAlignment(v), + 1683019596: (v) => new IFC4$1.IfcCardinalPointReference(v), + 2991860651: (v) => new IFC4$1.IfcComplexNumber(v.map((x) => x.value)), + 3812528620: (v) => new IFC4$1.IfcCompoundPlaneAngleMeasure(v.map((x) => x.value)), + 3238673880: (v) => new IFC4$1.IfcContextDependentMeasure(v), + 1778710042: (v) => new IFC4$1.IfcCountMeasure(v), + 94842927: (v) => new IFC4$1.IfcCurvatureMeasure(v), + 937566702: (v) => new IFC4$1.IfcDate(v), + 2195413836: (v) => new IFC4$1.IfcDateTime(v), + 86635668: (v) => new IFC4$1.IfcDayInMonthNumber(v), + 3701338814: (v) => new IFC4$1.IfcDayInWeekNumber(v), + 1514641115: (v) => new IFC4$1.IfcDescriptiveMeasure(v), + 4134073009: (v) => new IFC4$1.IfcDimensionCount(v), + 524656162: (v) => new IFC4$1.IfcDoseEquivalentMeasure(v), + 2541165894: (v) => new IFC4$1.IfcDuration(v), + 69416015: (v) => new IFC4$1.IfcDynamicViscosityMeasure(v), + 1827137117: (v) => new IFC4$1.IfcElectricCapacitanceMeasure(v), + 3818826038: (v) => new IFC4$1.IfcElectricChargeMeasure(v), + 2093906313: (v) => new IFC4$1.IfcElectricConductanceMeasure(v), + 3790457270: (v) => new IFC4$1.IfcElectricCurrentMeasure(v), + 2951915441: (v) => new IFC4$1.IfcElectricResistanceMeasure(v), + 2506197118: (v) => new IFC4$1.IfcElectricVoltageMeasure(v), + 2078135608: (v) => new IFC4$1.IfcEnergyMeasure(v), + 1102727119: (v) => new IFC4$1.IfcFontStyle(v), + 2715512545: (v) => new IFC4$1.IfcFontVariant(v), + 2590844177: (v) => new IFC4$1.IfcFontWeight(v), + 1361398929: (v) => new IFC4$1.IfcForceMeasure(v), + 3044325142: (v) => new IFC4$1.IfcFrequencyMeasure(v), + 3064340077: (v) => new IFC4$1.IfcGloballyUniqueId(v), + 3113092358: (v) => new IFC4$1.IfcHeatFluxDensityMeasure(v), + 1158859006: (v) => new IFC4$1.IfcHeatingValueMeasure(v), + 983778844: (v) => new IFC4$1.IfcIdentifier(v), + 3358199106: (v) => new IFC4$1.IfcIlluminanceMeasure(v), + 2679005408: (v) => new IFC4$1.IfcInductanceMeasure(v), + 1939436016: (v) => new IFC4$1.IfcInteger(v), + 3809634241: (v) => new IFC4$1.IfcIntegerCountRateMeasure(v), + 3686016028: (v) => new IFC4$1.IfcIonConcentrationMeasure(v), + 3192672207: (v) => new IFC4$1.IfcIsothermalMoistureCapacityMeasure(v), + 2054016361: (v) => new IFC4$1.IfcKinematicViscosityMeasure(v), + 3258342251: (v) => new IFC4$1.IfcLabel(v), + 1275358634: (v) => new IFC4$1.IfcLanguageId(v), + 1243674935: (v) => new IFC4$1.IfcLengthMeasure(v), + 1774176899: (v) => new IFC4$1.IfcLineIndex(v.map((x) => x.value)), + 191860431: (v) => new IFC4$1.IfcLinearForceMeasure(v), + 2128979029: (v) => new IFC4$1.IfcLinearMomentMeasure(v), + 1307019551: (v) => new IFC4$1.IfcLinearStiffnessMeasure(v), + 3086160713: (v) => new IFC4$1.IfcLinearVelocityMeasure(v), + 503418787: (v) => new IFC4$1.IfcLogical(v), + 2095003142: (v) => new IFC4$1.IfcLuminousFluxMeasure(v), + 2755797622: (v) => new IFC4$1.IfcLuminousIntensityDistributionMeasure(v), + 151039812: (v) => new IFC4$1.IfcLuminousIntensityMeasure(v), + 286949696: (v) => new IFC4$1.IfcMagneticFluxDensityMeasure(v), + 2486716878: (v) => new IFC4$1.IfcMagneticFluxMeasure(v), + 1477762836: (v) => new IFC4$1.IfcMassDensityMeasure(v), + 4017473158: (v) => new IFC4$1.IfcMassFlowRateMeasure(v), + 3124614049: (v) => new IFC4$1.IfcMassMeasure(v), + 3531705166: (v) => new IFC4$1.IfcMassPerLengthMeasure(v), + 3341486342: (v) => new IFC4$1.IfcModulusOfElasticityMeasure(v), + 2173214787: (v) => new IFC4$1.IfcModulusOfLinearSubgradeReactionMeasure(v), + 1052454078: (v) => new IFC4$1.IfcModulusOfRotationalSubgradeReactionMeasure(v), + 1753493141: (v) => new IFC4$1.IfcModulusOfSubgradeReactionMeasure(v), + 3177669450: (v) => new IFC4$1.IfcMoistureDiffusivityMeasure(v), + 1648970520: (v) => new IFC4$1.IfcMolecularWeightMeasure(v), + 3114022597: (v) => new IFC4$1.IfcMomentOfInertiaMeasure(v), + 2615040989: (v) => new IFC4$1.IfcMonetaryMeasure(v), + 765770214: (v) => new IFC4$1.IfcMonthInYearNumber(v), + 525895558: (v) => new IFC4$1.IfcNonNegativeLengthMeasure(v), + 2095195183: (v) => new IFC4$1.IfcNormalisedRatioMeasure(v), + 2395907400: (v) => new IFC4$1.IfcNumericMeasure(v), + 929793134: (v) => new IFC4$1.IfcPHMeasure(v), + 2260317790: (v) => new IFC4$1.IfcParameterValue(v), + 2642773653: (v) => new IFC4$1.IfcPlanarForceMeasure(v), + 4042175685: (v) => new IFC4$1.IfcPlaneAngleMeasure(v), + 1790229001: (v) => new IFC4$1.IfcPositiveInteger(v), + 2815919920: (v) => new IFC4$1.IfcPositiveLengthMeasure(v), + 3054510233: (v) => new IFC4$1.IfcPositivePlaneAngleMeasure(v), + 1245737093: (v) => new IFC4$1.IfcPositiveRatioMeasure(v), + 1364037233: (v) => new IFC4$1.IfcPowerMeasure(v), + 2169031380: (v) => new IFC4$1.IfcPresentableText(v), + 3665567075: (v) => new IFC4$1.IfcPressureMeasure(v), + 2798247006: (v) => new IFC4$1.IfcPropertySetDefinitionSet(v.map((x) => x.value)), + 3972513137: (v) => new IFC4$1.IfcRadioActivityMeasure(v), + 96294661: (v) => new IFC4$1.IfcRatioMeasure(v), + 200335297: (v) => new IFC4$1.IfcReal(v), + 2133746277: (v) => new IFC4$1.IfcRotationalFrequencyMeasure(v), + 1755127002: (v) => new IFC4$1.IfcRotationalMassMeasure(v), + 3211557302: (v) => new IFC4$1.IfcRotationalStiffnessMeasure(v), + 3467162246: (v) => new IFC4$1.IfcSectionModulusMeasure(v), + 2190458107: (v) => new IFC4$1.IfcSectionalAreaIntegralMeasure(v), + 408310005: (v) => new IFC4$1.IfcShearModulusMeasure(v), + 3471399674: (v) => new IFC4$1.IfcSolidAngleMeasure(v), + 4157543285: (v) => new IFC4$1.IfcSoundPowerLevelMeasure(v), + 846465480: (v) => new IFC4$1.IfcSoundPowerMeasure(v), + 3457685358: (v) => new IFC4$1.IfcSoundPressureLevelMeasure(v), + 993287707: (v) => new IFC4$1.IfcSoundPressureMeasure(v), + 3477203348: (v) => new IFC4$1.IfcSpecificHeatCapacityMeasure(v), + 2757832317: (v) => new IFC4$1.IfcSpecularExponent(v), + 361837227: (v) => new IFC4$1.IfcSpecularRoughness(v), + 58845555: (v) => new IFC4$1.IfcTemperatureGradientMeasure(v), + 1209108979: (v) => new IFC4$1.IfcTemperatureRateOfChangeMeasure(v), + 2801250643: (v) => new IFC4$1.IfcText(v), + 1460886941: (v) => new IFC4$1.IfcTextAlignment(v), + 3490877962: (v) => new IFC4$1.IfcTextDecoration(v), + 603696268: (v) => new IFC4$1.IfcTextFontName(v), + 296282323: (v) => new IFC4$1.IfcTextTransformation(v), + 232962298: (v) => new IFC4$1.IfcThermalAdmittanceMeasure(v), + 2645777649: (v) => new IFC4$1.IfcThermalConductivityMeasure(v), + 2281867870: (v) => new IFC4$1.IfcThermalExpansionCoefficientMeasure(v), + 857959152: (v) => new IFC4$1.IfcThermalResistanceMeasure(v), + 2016195849: (v) => new IFC4$1.IfcThermalTransmittanceMeasure(v), + 743184107: (v) => new IFC4$1.IfcThermodynamicTemperatureMeasure(v), + 4075327185: (v) => new IFC4$1.IfcTime(v), + 2726807636: (v) => new IFC4$1.IfcTimeMeasure(v), + 2591213694: (v) => new IFC4$1.IfcTimeStamp(v), + 1278329552: (v) => new IFC4$1.IfcTorqueMeasure(v), + 950732822: (v) => new IFC4$1.IfcURIReference(v), + 3345633955: (v) => new IFC4$1.IfcVaporPermeabilityMeasure(v), + 3458127941: (v) => new IFC4$1.IfcVolumeMeasure(v), + 2593997549: (v) => new IFC4$1.IfcVolumetricFlowRateMeasure(v), + 51269191: (v) => new IFC4$1.IfcWarpingConstantMeasure(v), + 1718600412: (v) => new IFC4$1.IfcWarpingMomentMeasure(v) +}; +var IFC4$1; +(function(IFC42) { + class IfcAbsorbedDoseMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcRoundedRectangleProfileDef = IfcRoundedRectangleProfileDef; - class IfcSectionedSpine extends IfcGeometricRepresentationItem { - constructor(expressID, SpineCurve, CrossSections, CrossSectionPositions) { - super(expressID); - this.SpineCurve = SpineCurve; - this.CrossSections = CrossSections; - this.CrossSectionPositions = CrossSectionPositions; - this.type = 1509187699; + IFC42.IfcAbsorbedDoseMeasure = IfcAbsorbedDoseMeasure; + class IfcAccelerationMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcSectionedSpine = IfcSectionedSpine; - class IfcServiceLifeFactor extends IfcPropertySetDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, PredefinedType, UpperValue, MostUsedValue, LowerValue) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.PredefinedType = PredefinedType; - this.UpperValue = UpperValue; - this.MostUsedValue = MostUsedValue; - this.LowerValue = LowerValue; - this.type = 2411513650; + IFC42.IfcAccelerationMeasure = IfcAccelerationMeasure; + class IfcAmountOfSubstanceMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC42.IfcAmountOfSubstanceMeasure = IfcAmountOfSubstanceMeasure; + class IfcAngularVelocityMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC42.IfcAngularVelocityMeasure = IfcAngularVelocityMeasure; + class IfcArcIndex { + constructor(value) { + this.value = value; + this.type = 5; + } + } + IFC42.IfcArcIndex = IfcArcIndex; + class IfcAreaDensityMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC42.IfcAreaDensityMeasure = IfcAreaDensityMeasure; + class IfcAreaMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC42.IfcAreaMeasure = IfcAreaMeasure; + class IfcBinary { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC42.IfcBinary = IfcBinary; + class IfcBoolean { + constructor(v) { + this.type = 3; + this.value = v === null ? v : v == "T" ? true : false; + } + } + IFC42.IfcBoolean = IfcBoolean; + class IfcBoxAlignment { + constructor(value) { + this.value = value; + this.type = 1; + } + } + IFC42.IfcBoxAlignment = IfcBoxAlignment; + class IfcCardinalPointReference { + constructor(v) { + this.type = 10; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcServiceLifeFactor = IfcServiceLifeFactor; - class IfcShellBasedSurfaceModel extends IfcGeometricRepresentationItem { - constructor(expressID, SbsmBoundary) { - super(expressID); - this.SbsmBoundary = SbsmBoundary; - this.type = 4124623270; + IFC42.IfcCardinalPointReference = IfcCardinalPointReference; + class IfcComplexNumber { + constructor(value) { + this.value = value; + this.type = 4; } } - IFC2X32.IfcShellBasedSurfaceModel = IfcShellBasedSurfaceModel; - class IfcSlippageConnectionCondition extends IfcStructuralConnectionCondition { - constructor(expressID, Name, SlippageX, SlippageY, SlippageZ) { - super(expressID, Name); - this.Name = Name; - this.SlippageX = SlippageX; - this.SlippageY = SlippageY; - this.SlippageZ = SlippageZ; - this.type = 2609359061; + IFC42.IfcComplexNumber = IfcComplexNumber; + class IfcCompoundPlaneAngleMeasure { + constructor(value) { + this.value = value; + this.type = 10; } } - IFC2X32.IfcSlippageConnectionCondition = IfcSlippageConnectionCondition; - class IfcSolidModel extends IfcGeometricRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 723233188; + IFC42.IfcCompoundPlaneAngleMeasure = IfcCompoundPlaneAngleMeasure; + class IfcContextDependentMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcSolidModel = IfcSolidModel; - class IfcSoundProperties extends IfcPropertySetDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, IsAttenuating, SoundScale, SoundValues) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.IsAttenuating = IsAttenuating; - this.SoundScale = SoundScale; - this.SoundValues = SoundValues; - this.type = 2485662743; + IFC42.IfcContextDependentMeasure = IfcContextDependentMeasure; + class IfcCountMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcSoundProperties = IfcSoundProperties; - class IfcSoundValue extends IfcPropertySetDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, SoundLevelTimeSeries, Frequency, SoundLevelSingleValue) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.SoundLevelTimeSeries = SoundLevelTimeSeries; - this.Frequency = Frequency; - this.SoundLevelSingleValue = SoundLevelSingleValue; - this.type = 1202362311; + IFC42.IfcCountMeasure = IfcCountMeasure; + class IfcCurvatureMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcSoundValue = IfcSoundValue; - class IfcSpaceThermalLoadProperties extends IfcPropertySetDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableValueRatio, ThermalLoadSource, PropertySource, SourceDescription, MaximumValue, MinimumValue, ThermalLoadTimeSeriesValues, UserDefinedThermalLoadSource, UserDefinedPropertySource, ThermalLoadType) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableValueRatio = ApplicableValueRatio; - this.ThermalLoadSource = ThermalLoadSource; - this.PropertySource = PropertySource; - this.SourceDescription = SourceDescription; - this.MaximumValue = MaximumValue; - this.MinimumValue = MinimumValue; - this.ThermalLoadTimeSeriesValues = ThermalLoadTimeSeriesValues; - this.UserDefinedThermalLoadSource = UserDefinedThermalLoadSource; - this.UserDefinedPropertySource = UserDefinedPropertySource; - this.ThermalLoadType = ThermalLoadType; - this.type = 390701378; + IFC42.IfcCurvatureMeasure = IfcCurvatureMeasure; + class IfcDate { + constructor(value) { + this.value = value; + this.type = 1; } } - IFC2X32.IfcSpaceThermalLoadProperties = IfcSpaceThermalLoadProperties; - class IfcStructuralLoadLinearForce extends IfcStructuralLoadStatic { - constructor(expressID, Name, LinearForceX, LinearForceY, LinearForceZ, LinearMomentX, LinearMomentY, LinearMomentZ) { - super(expressID, Name); - this.Name = Name; - this.LinearForceX = LinearForceX; - this.LinearForceY = LinearForceY; - this.LinearForceZ = LinearForceZ; - this.LinearMomentX = LinearMomentX; - this.LinearMomentY = LinearMomentY; - this.LinearMomentZ = LinearMomentZ; - this.type = 1595516126; + IFC42.IfcDate = IfcDate; + class IfcDateTime { + constructor(value) { + this.value = value; + this.type = 1; } } - IFC2X32.IfcStructuralLoadLinearForce = IfcStructuralLoadLinearForce; - class IfcStructuralLoadPlanarForce extends IfcStructuralLoadStatic { - constructor(expressID, Name, PlanarForceX, PlanarForceY, PlanarForceZ) { - super(expressID, Name); - this.Name = Name; - this.PlanarForceX = PlanarForceX; - this.PlanarForceY = PlanarForceY; - this.PlanarForceZ = PlanarForceZ; - this.type = 2668620305; + IFC42.IfcDateTime = IfcDateTime; + class IfcDayInMonthNumber { + constructor(v) { + this.type = 10; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcStructuralLoadPlanarForce = IfcStructuralLoadPlanarForce; - class IfcStructuralLoadSingleDisplacement extends IfcStructuralLoadStatic { - constructor(expressID, Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ) { - super(expressID, Name); - this.Name = Name; - this.DisplacementX = DisplacementX; - this.DisplacementY = DisplacementY; - this.DisplacementZ = DisplacementZ; - this.RotationalDisplacementRX = RotationalDisplacementRX; - this.RotationalDisplacementRY = RotationalDisplacementRY; - this.RotationalDisplacementRZ = RotationalDisplacementRZ; - this.type = 2473145415; + IFC42.IfcDayInMonthNumber = IfcDayInMonthNumber; + class IfcDayInWeekNumber { + constructor(v) { + this.type = 10; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcStructuralLoadSingleDisplacement = IfcStructuralLoadSingleDisplacement; - class IfcStructuralLoadSingleDisplacementDistortion extends IfcStructuralLoadSingleDisplacement { - constructor(expressID, Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ, Distortion) { - super(expressID, Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ); - this.Name = Name; - this.DisplacementX = DisplacementX; - this.DisplacementY = DisplacementY; - this.DisplacementZ = DisplacementZ; - this.RotationalDisplacementRX = RotationalDisplacementRX; - this.RotationalDisplacementRY = RotationalDisplacementRY; - this.RotationalDisplacementRZ = RotationalDisplacementRZ; - this.Distortion = Distortion; - this.type = 1973038258; + IFC42.IfcDayInWeekNumber = IfcDayInWeekNumber; + class IfcDescriptiveMeasure { + constructor(value) { + this.value = value; + this.type = 1; } } - IFC2X32.IfcStructuralLoadSingleDisplacementDistortion = IfcStructuralLoadSingleDisplacementDistortion; - class IfcStructuralLoadSingleForce extends IfcStructuralLoadStatic { - constructor(expressID, Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ) { - super(expressID, Name); - this.Name = Name; - this.ForceX = ForceX; - this.ForceY = ForceY; - this.ForceZ = ForceZ; - this.MomentX = MomentX; - this.MomentY = MomentY; - this.MomentZ = MomentZ; - this.type = 1597423693; + IFC42.IfcDescriptiveMeasure = IfcDescriptiveMeasure; + class IfcDimensionCount { + constructor(v) { + this.type = 10; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcStructuralLoadSingleForce = IfcStructuralLoadSingleForce; - class IfcStructuralLoadSingleForceWarping extends IfcStructuralLoadSingleForce { - constructor(expressID, Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ, WarpingMoment) { - super(expressID, Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ); - this.Name = Name; - this.ForceX = ForceX; - this.ForceY = ForceY; - this.ForceZ = ForceZ; - this.MomentX = MomentX; - this.MomentY = MomentY; - this.MomentZ = MomentZ; - this.WarpingMoment = WarpingMoment; - this.type = 1190533807; + IFC42.IfcDimensionCount = IfcDimensionCount; + class IfcDoseEquivalentMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcStructuralLoadSingleForceWarping = IfcStructuralLoadSingleForceWarping; - class IfcStructuralProfileProperties extends IfcGeneralProfileProperties { - constructor(expressID, ProfileName, ProfileDefinition, PhysicalWeight, Perimeter, MinimumPlateThickness, MaximumPlateThickness, CrossSectionArea, TorsionalConstantX, MomentOfInertiaYZ, MomentOfInertiaY, MomentOfInertiaZ, WarpingConstant, ShearCentreZ, ShearCentreY, ShearDeformationAreaZ, ShearDeformationAreaY, MaximumSectionModulusY, MinimumSectionModulusY, MaximumSectionModulusZ, MinimumSectionModulusZ, TorsionalSectionModulus, CentreOfGravityInX, CentreOfGravityInY) { - super(expressID, ProfileName, ProfileDefinition, PhysicalWeight, Perimeter, MinimumPlateThickness, MaximumPlateThickness, CrossSectionArea); - this.ProfileName = ProfileName; - this.ProfileDefinition = ProfileDefinition; - this.PhysicalWeight = PhysicalWeight; - this.Perimeter = Perimeter; - this.MinimumPlateThickness = MinimumPlateThickness; - this.MaximumPlateThickness = MaximumPlateThickness; - this.CrossSectionArea = CrossSectionArea; - this.TorsionalConstantX = TorsionalConstantX; - this.MomentOfInertiaYZ = MomentOfInertiaYZ; - this.MomentOfInertiaY = MomentOfInertiaY; - this.MomentOfInertiaZ = MomentOfInertiaZ; - this.WarpingConstant = WarpingConstant; - this.ShearCentreZ = ShearCentreZ; - this.ShearCentreY = ShearCentreY; - this.ShearDeformationAreaZ = ShearDeformationAreaZ; - this.ShearDeformationAreaY = ShearDeformationAreaY; - this.MaximumSectionModulusY = MaximumSectionModulusY; - this.MinimumSectionModulusY = MinimumSectionModulusY; - this.MaximumSectionModulusZ = MaximumSectionModulusZ; - this.MinimumSectionModulusZ = MinimumSectionModulusZ; - this.TorsionalSectionModulus = TorsionalSectionModulus; - this.CentreOfGravityInX = CentreOfGravityInX; - this.CentreOfGravityInY = CentreOfGravityInY; - this.type = 3843319758; + IFC42.IfcDoseEquivalentMeasure = IfcDoseEquivalentMeasure; + class IfcDuration { + constructor(value) { + this.value = value; + this.type = 1; } } - IFC2X32.IfcStructuralProfileProperties = IfcStructuralProfileProperties; - class IfcStructuralSteelProfileProperties extends IfcStructuralProfileProperties { - constructor(expressID, ProfileName, ProfileDefinition, PhysicalWeight, Perimeter, MinimumPlateThickness, MaximumPlateThickness, CrossSectionArea, TorsionalConstantX, MomentOfInertiaYZ, MomentOfInertiaY, MomentOfInertiaZ, WarpingConstant, ShearCentreZ, ShearCentreY, ShearDeformationAreaZ, ShearDeformationAreaY, MaximumSectionModulusY, MinimumSectionModulusY, MaximumSectionModulusZ, MinimumSectionModulusZ, TorsionalSectionModulus, CentreOfGravityInX, CentreOfGravityInY, ShearAreaZ, ShearAreaY, PlasticShapeFactorY, PlasticShapeFactorZ) { - super(expressID, ProfileName, ProfileDefinition, PhysicalWeight, Perimeter, MinimumPlateThickness, MaximumPlateThickness, CrossSectionArea, TorsionalConstantX, MomentOfInertiaYZ, MomentOfInertiaY, MomentOfInertiaZ, WarpingConstant, ShearCentreZ, ShearCentreY, ShearDeformationAreaZ, ShearDeformationAreaY, MaximumSectionModulusY, MinimumSectionModulusY, MaximumSectionModulusZ, MinimumSectionModulusZ, TorsionalSectionModulus, CentreOfGravityInX, CentreOfGravityInY); - this.ProfileName = ProfileName; - this.ProfileDefinition = ProfileDefinition; - this.PhysicalWeight = PhysicalWeight; - this.Perimeter = Perimeter; - this.MinimumPlateThickness = MinimumPlateThickness; - this.MaximumPlateThickness = MaximumPlateThickness; - this.CrossSectionArea = CrossSectionArea; - this.TorsionalConstantX = TorsionalConstantX; - this.MomentOfInertiaYZ = MomentOfInertiaYZ; - this.MomentOfInertiaY = MomentOfInertiaY; - this.MomentOfInertiaZ = MomentOfInertiaZ; - this.WarpingConstant = WarpingConstant; - this.ShearCentreZ = ShearCentreZ; - this.ShearCentreY = ShearCentreY; - this.ShearDeformationAreaZ = ShearDeformationAreaZ; - this.ShearDeformationAreaY = ShearDeformationAreaY; - this.MaximumSectionModulusY = MaximumSectionModulusY; - this.MinimumSectionModulusY = MinimumSectionModulusY; - this.MaximumSectionModulusZ = MaximumSectionModulusZ; - this.MinimumSectionModulusZ = MinimumSectionModulusZ; - this.TorsionalSectionModulus = TorsionalSectionModulus; - this.CentreOfGravityInX = CentreOfGravityInX; - this.CentreOfGravityInY = CentreOfGravityInY; - this.ShearAreaZ = ShearAreaZ; - this.ShearAreaY = ShearAreaY; - this.PlasticShapeFactorY = PlasticShapeFactorY; - this.PlasticShapeFactorZ = PlasticShapeFactorZ; - this.type = 3653947884; + IFC42.IfcDuration = IfcDuration; + class IfcDynamicViscosityMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcStructuralSteelProfileProperties = IfcStructuralSteelProfileProperties; - class IfcSubedge extends IfcEdge { - constructor(expressID, EdgeStart, EdgeEnd, ParentEdge) { - super(expressID, EdgeStart, EdgeEnd); - this.EdgeStart = EdgeStart; - this.EdgeEnd = EdgeEnd; - this.ParentEdge = ParentEdge; - this.type = 2233826070; + IFC42.IfcDynamicViscosityMeasure = IfcDynamicViscosityMeasure; + class IfcElectricCapacitanceMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcSubedge = IfcSubedge; - class IfcSurface extends IfcGeometricRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 2513912981; + IFC42.IfcElectricCapacitanceMeasure = IfcElectricCapacitanceMeasure; + class IfcElectricChargeMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcSurface = IfcSurface; - class IfcSurfaceStyleRendering extends IfcSurfaceStyleShading { - constructor(expressID, SurfaceColour, Transparency, DiffuseColour, TransmissionColour, DiffuseTransmissionColour, ReflectionColour, SpecularColour, SpecularHighlight, ReflectanceMethod) { - super(expressID, SurfaceColour); - this.SurfaceColour = SurfaceColour; - this.Transparency = Transparency; - this.DiffuseColour = DiffuseColour; - this.TransmissionColour = TransmissionColour; - this.DiffuseTransmissionColour = DiffuseTransmissionColour; - this.ReflectionColour = ReflectionColour; - this.SpecularColour = SpecularColour; - this.SpecularHighlight = SpecularHighlight; - this.ReflectanceMethod = ReflectanceMethod; - this.type = 1878645084; + IFC42.IfcElectricChargeMeasure = IfcElectricChargeMeasure; + class IfcElectricConductanceMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcSurfaceStyleRendering = IfcSurfaceStyleRendering; - class IfcSweptAreaSolid extends IfcSolidModel { - constructor(expressID, SweptArea, Position) { - super(expressID); - this.SweptArea = SweptArea; - this.Position = Position; - this.type = 2247615214; + IFC42.IfcElectricConductanceMeasure = IfcElectricConductanceMeasure; + class IfcElectricCurrentMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcSweptAreaSolid = IfcSweptAreaSolid; - class IfcSweptDiskSolid extends IfcSolidModel { - constructor(expressID, Directrix, Radius, InnerRadius, StartParam, EndParam) { - super(expressID); - this.Directrix = Directrix; - this.Radius = Radius; - this.InnerRadius = InnerRadius; - this.StartParam = StartParam; - this.EndParam = EndParam; - this.type = 1260650574; + IFC42.IfcElectricCurrentMeasure = IfcElectricCurrentMeasure; + class IfcElectricResistanceMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcSweptDiskSolid = IfcSweptDiskSolid; - class IfcSweptSurface extends IfcSurface { - constructor(expressID, SweptCurve, Position) { - super(expressID); - this.SweptCurve = SweptCurve; - this.Position = Position; - this.type = 230924584; + IFC42.IfcElectricResistanceMeasure = IfcElectricResistanceMeasure; + class IfcElectricVoltageMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcSweptSurface = IfcSweptSurface; - class IfcTShapeProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, FlangeEdgeRadius, WebEdgeRadius, WebSlope, FlangeSlope, CentreOfGravityInY) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.Depth = Depth; - this.FlangeWidth = FlangeWidth; - this.WebThickness = WebThickness; - this.FlangeThickness = FlangeThickness; - this.FilletRadius = FilletRadius; - this.FlangeEdgeRadius = FlangeEdgeRadius; - this.WebEdgeRadius = WebEdgeRadius; - this.WebSlope = WebSlope; - this.FlangeSlope = FlangeSlope; - this.CentreOfGravityInY = CentreOfGravityInY; - this.type = 3071757647; + IFC42.IfcElectricVoltageMeasure = IfcElectricVoltageMeasure; + class IfcEnergyMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcTShapeProfileDef = IfcTShapeProfileDef; - class IfcTerminatorSymbol extends IfcAnnotationSymbolOccurrence { - constructor(expressID, Item, Styles, Name, AnnotatedCurve) { - super(expressID, Item, Styles, Name); - this.Item = Item; - this.Styles = Styles; - this.Name = Name; - this.AnnotatedCurve = AnnotatedCurve; - this.type = 3028897424; + IFC42.IfcEnergyMeasure = IfcEnergyMeasure; + class IfcFontStyle { + constructor(value) { + this.value = value; + this.type = 1; } } - IFC2X32.IfcTerminatorSymbol = IfcTerminatorSymbol; - class IfcTextLiteral extends IfcGeometricRepresentationItem { - constructor(expressID, Literal, Placement, Path) { - super(expressID); - this.Literal = Literal; - this.Placement = Placement; - this.Path = Path; - this.type = 4282788508; + IFC42.IfcFontStyle = IfcFontStyle; + class IfcFontVariant { + constructor(value) { + this.value = value; + this.type = 1; } } - IFC2X32.IfcTextLiteral = IfcTextLiteral; - class IfcTextLiteralWithExtent extends IfcTextLiteral { - constructor(expressID, Literal, Placement, Path, Extent, BoxAlignment) { - super(expressID, Literal, Placement, Path); - this.Literal = Literal; - this.Placement = Placement; - this.Path = Path; - this.Extent = Extent; - this.BoxAlignment = BoxAlignment; - this.type = 3124975700; + IFC42.IfcFontVariant = IfcFontVariant; + class IfcFontWeight { + constructor(value) { + this.value = value; + this.type = 1; } } - IFC2X32.IfcTextLiteralWithExtent = IfcTextLiteralWithExtent; - class IfcTrapeziumProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, BottomXDim, TopXDim, YDim, TopXOffset) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.BottomXDim = BottomXDim; - this.TopXDim = TopXDim; - this.YDim = YDim; - this.TopXOffset = TopXOffset; - this.type = 2715220739; + IFC42.IfcFontWeight = IfcFontWeight; + class IfcForceMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcTrapeziumProfileDef = IfcTrapeziumProfileDef; - class IfcTwoDirectionRepeatFactor extends IfcOneDirectionRepeatFactor { - constructor(expressID, RepeatFactor, SecondRepeatFactor) { - super(expressID, RepeatFactor); - this.RepeatFactor = RepeatFactor; - this.SecondRepeatFactor = SecondRepeatFactor; - this.type = 1345879162; + IFC42.IfcForceMeasure = IfcForceMeasure; + class IfcFrequencyMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcTwoDirectionRepeatFactor = IfcTwoDirectionRepeatFactor; - class IfcTypeObject extends IfcObjectDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.type = 1628702193; + IFC42.IfcFrequencyMeasure = IfcFrequencyMeasure; + class IfcGloballyUniqueId { + constructor(value) { + this.value = value; + this.type = 1; } } - IFC2X32.IfcTypeObject = IfcTypeObject; - class IfcTypeProduct extends IfcTypeObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.type = 2347495698; + IFC42.IfcGloballyUniqueId = IfcGloballyUniqueId; + class IfcHeatFluxDensityMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcTypeProduct = IfcTypeProduct; - class IfcUShapeProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, EdgeRadius, FlangeSlope, CentreOfGravityInX) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.Depth = Depth; - this.FlangeWidth = FlangeWidth; - this.WebThickness = WebThickness; - this.FlangeThickness = FlangeThickness; - this.FilletRadius = FilletRadius; - this.EdgeRadius = EdgeRadius; - this.FlangeSlope = FlangeSlope; - this.CentreOfGravityInX = CentreOfGravityInX; - this.type = 427810014; + IFC42.IfcHeatFluxDensityMeasure = IfcHeatFluxDensityMeasure; + class IfcHeatingValueMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcUShapeProfileDef = IfcUShapeProfileDef; - class IfcVector extends IfcGeometricRepresentationItem { - constructor(expressID, Orientation, Magnitude) { - super(expressID); - this.Orientation = Orientation; - this.Magnitude = Magnitude; - this.type = 1417489154; + IFC42.IfcHeatingValueMeasure = IfcHeatingValueMeasure; + class IfcIdentifier { + constructor(value) { + this.value = value; + this.type = 1; } } - IFC2X32.IfcVector = IfcVector; - class IfcVertexLoop extends IfcLoop { - constructor(expressID, LoopVertex) { - super(expressID); - this.LoopVertex = LoopVertex; - this.type = 2759199220; + IFC42.IfcIdentifier = IfcIdentifier; + class IfcIlluminanceMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcVertexLoop = IfcVertexLoop; - class IfcWindowLiningProperties extends IfcPropertySetDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, LiningDepth, LiningThickness, TransomThickness, MullionThickness, FirstTransomOffset, SecondTransomOffset, FirstMullionOffset, SecondMullionOffset, ShapeAspectStyle) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.LiningDepth = LiningDepth; - this.LiningThickness = LiningThickness; - this.TransomThickness = TransomThickness; - this.MullionThickness = MullionThickness; - this.FirstTransomOffset = FirstTransomOffset; - this.SecondTransomOffset = SecondTransomOffset; - this.FirstMullionOffset = FirstMullionOffset; - this.SecondMullionOffset = SecondMullionOffset; - this.ShapeAspectStyle = ShapeAspectStyle; - this.type = 336235671; + IFC42.IfcIlluminanceMeasure = IfcIlluminanceMeasure; + class IfcInductanceMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcWindowLiningProperties = IfcWindowLiningProperties; - class IfcWindowPanelProperties extends IfcPropertySetDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, OperationType, PanelPosition, FrameDepth, FrameThickness, ShapeAspectStyle) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.OperationType = OperationType; - this.PanelPosition = PanelPosition; - this.FrameDepth = FrameDepth; - this.FrameThickness = FrameThickness; - this.ShapeAspectStyle = ShapeAspectStyle; - this.type = 512836454; + IFC42.IfcInductanceMeasure = IfcInductanceMeasure; + class IfcInteger { + constructor(v) { + this.type = 10; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcWindowPanelProperties = IfcWindowPanelProperties; - class IfcWindowStyle extends IfcTypeProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ConstructionType, OperationType, ParameterTakesPrecedence, Sizeable) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ConstructionType = ConstructionType; - this.OperationType = OperationType; - this.ParameterTakesPrecedence = ParameterTakesPrecedence; - this.Sizeable = Sizeable; - this.type = 1299126871; + IFC42.IfcInteger = IfcInteger; + class IfcIntegerCountRateMeasure { + constructor(v) { + this.type = 10; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcWindowStyle = IfcWindowStyle; - class IfcZShapeProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, EdgeRadius) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.Depth = Depth; - this.FlangeWidth = FlangeWidth; - this.WebThickness = WebThickness; - this.FlangeThickness = FlangeThickness; - this.FilletRadius = FilletRadius; - this.EdgeRadius = EdgeRadius; - this.type = 2543172580; + IFC42.IfcIntegerCountRateMeasure = IfcIntegerCountRateMeasure; + class IfcIonConcentrationMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcZShapeProfileDef = IfcZShapeProfileDef; - class IfcAnnotationCurveOccurrence extends IfcAnnotationOccurrence { - constructor(expressID, Item, Styles, Name) { - super(expressID, Item, Styles, Name); - this.Item = Item; - this.Styles = Styles; - this.Name = Name; - this.type = 3288037868; + IFC42.IfcIonConcentrationMeasure = IfcIonConcentrationMeasure; + class IfcIsothermalMoistureCapacityMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcAnnotationCurveOccurrence = IfcAnnotationCurveOccurrence; - class IfcAnnotationFillArea extends IfcGeometricRepresentationItem { - constructor(expressID, OuterBoundary, InnerBoundaries) { - super(expressID); - this.OuterBoundary = OuterBoundary; - this.InnerBoundaries = InnerBoundaries; - this.type = 669184980; + IFC42.IfcIsothermalMoistureCapacityMeasure = IfcIsothermalMoistureCapacityMeasure; + class IfcKinematicViscosityMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcAnnotationFillArea = IfcAnnotationFillArea; - class IfcAnnotationFillAreaOccurrence extends IfcAnnotationOccurrence { - constructor(expressID, Item, Styles, Name, FillStyleTarget, GlobalOrLocal) { - super(expressID, Item, Styles, Name); - this.Item = Item; - this.Styles = Styles; - this.Name = Name; - this.FillStyleTarget = FillStyleTarget; - this.GlobalOrLocal = GlobalOrLocal; - this.type = 2265737646; + IFC42.IfcKinematicViscosityMeasure = IfcKinematicViscosityMeasure; + class IfcLabel { + constructor(value) { + this.value = value; + this.type = 1; } } - IFC2X32.IfcAnnotationFillAreaOccurrence = IfcAnnotationFillAreaOccurrence; - class IfcAnnotationSurface extends IfcGeometricRepresentationItem { - constructor(expressID, Item, TextureCoordinates) { - super(expressID); - this.Item = Item; - this.TextureCoordinates = TextureCoordinates; - this.type = 1302238472; + IFC42.IfcLabel = IfcLabel; + class IfcLanguageId { + constructor(value) { + this.value = value; + this.type = 1; } } - IFC2X32.IfcAnnotationSurface = IfcAnnotationSurface; - class IfcAxis1Placement extends IfcPlacement { - constructor(expressID, Location, Axis) { - super(expressID, Location); - this.Location = Location; - this.Axis = Axis; - this.type = 4261334040; + IFC42.IfcLanguageId = IfcLanguageId; + class IfcLengthMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcAxis1Placement = IfcAxis1Placement; - class IfcAxis2Placement2D extends IfcPlacement { - constructor(expressID, Location, RefDirection) { - super(expressID, Location); - this.Location = Location; - this.RefDirection = RefDirection; - this.type = 3125803723; + IFC42.IfcLengthMeasure = IfcLengthMeasure; + class IfcLineIndex { + constructor(value) { + this.value = value; + this.type = 5; } } - IFC2X32.IfcAxis2Placement2D = IfcAxis2Placement2D; - class IfcAxis2Placement3D extends IfcPlacement { - constructor(expressID, Location, Axis, RefDirection) { - super(expressID, Location); - this.Location = Location; - this.Axis = Axis; - this.RefDirection = RefDirection; - this.type = 2740243338; + IFC42.IfcLineIndex = IfcLineIndex; + class IfcLinearForceMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcAxis2Placement3D = IfcAxis2Placement3D; - class IfcBooleanResult extends IfcGeometricRepresentationItem { - constructor(expressID, Operator, FirstOperand, SecondOperand) { - super(expressID); - this.Operator = Operator; - this.FirstOperand = FirstOperand; - this.SecondOperand = SecondOperand; - this.type = 2736907675; + IFC42.IfcLinearForceMeasure = IfcLinearForceMeasure; + class IfcLinearMomentMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcBooleanResult = IfcBooleanResult; - class IfcBoundedSurface extends IfcSurface { - constructor(expressID) { - super(expressID); - this.type = 4182860854; + IFC42.IfcLinearMomentMeasure = IfcLinearMomentMeasure; + class IfcLinearStiffnessMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcBoundedSurface = IfcBoundedSurface; - class IfcBoundingBox extends IfcGeometricRepresentationItem { - constructor(expressID, Corner, XDim, YDim, ZDim) { - super(expressID); - this.Corner = Corner; - this.XDim = XDim; - this.YDim = YDim; - this.ZDim = ZDim; - this.type = 2581212453; + IFC42.IfcLinearStiffnessMeasure = IfcLinearStiffnessMeasure; + class IfcLinearVelocityMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcBoundingBox = IfcBoundingBox; - class IfcBoxedHalfSpace extends IfcHalfSpaceSolid { - constructor(expressID, BaseSurface, AgreementFlag, Enclosure) { - super(expressID, BaseSurface, AgreementFlag); - this.BaseSurface = BaseSurface; - this.AgreementFlag = AgreementFlag; - this.Enclosure = Enclosure; - this.type = 2713105998; + IFC42.IfcLinearVelocityMeasure = IfcLinearVelocityMeasure; + class IfcLogical { + constructor(v) { + this.type = 3; + this.value = v === null ? v : v == "T" ? 1 : v == "F" ? 0 : 2; } } - IFC2X32.IfcBoxedHalfSpace = IfcBoxedHalfSpace; - class IfcCShapeProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, Depth, Width, WallThickness, Girth, InternalFilletRadius, CentreOfGravityInX) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.Depth = Depth; - this.Width = Width; - this.WallThickness = WallThickness; - this.Girth = Girth; - this.InternalFilletRadius = InternalFilletRadius; - this.CentreOfGravityInX = CentreOfGravityInX; - this.type = 2898889636; + IFC42.IfcLogical = IfcLogical; + class IfcLuminousFluxMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcCShapeProfileDef = IfcCShapeProfileDef; - class IfcCartesianPoint extends IfcPoint { - constructor(expressID, Coordinates) { - super(expressID); - this.Coordinates = Coordinates; - this.type = 1123145078; + IFC42.IfcLuminousFluxMeasure = IfcLuminousFluxMeasure; + class IfcLuminousIntensityDistributionMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcCartesianPoint = IfcCartesianPoint; - class IfcCartesianTransformationOperator extends IfcGeometricRepresentationItem { - constructor(expressID, Axis1, Axis2, LocalOrigin, Scale) { - super(expressID); - this.Axis1 = Axis1; - this.Axis2 = Axis2; - this.LocalOrigin = LocalOrigin; - this.Scale = Scale; - this.type = 59481748; + IFC42.IfcLuminousIntensityDistributionMeasure = IfcLuminousIntensityDistributionMeasure; + class IfcLuminousIntensityMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcCartesianTransformationOperator = IfcCartesianTransformationOperator; - class IfcCartesianTransformationOperator2D extends IfcCartesianTransformationOperator { - constructor(expressID, Axis1, Axis2, LocalOrigin, Scale) { - super(expressID, Axis1, Axis2, LocalOrigin, Scale); - this.Axis1 = Axis1; - this.Axis2 = Axis2; - this.LocalOrigin = LocalOrigin; - this.Scale = Scale; - this.type = 3749851601; + IFC42.IfcLuminousIntensityMeasure = IfcLuminousIntensityMeasure; + class IfcMagneticFluxDensityMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcCartesianTransformationOperator2D = IfcCartesianTransformationOperator2D; - class IfcCartesianTransformationOperator2DnonUniform extends IfcCartesianTransformationOperator2D { - constructor(expressID, Axis1, Axis2, LocalOrigin, Scale, Scale2) { - super(expressID, Axis1, Axis2, LocalOrigin, Scale); - this.Axis1 = Axis1; - this.Axis2 = Axis2; - this.LocalOrigin = LocalOrigin; - this.Scale = Scale; - this.Scale2 = Scale2; - this.type = 3486308946; + IFC42.IfcMagneticFluxDensityMeasure = IfcMagneticFluxDensityMeasure; + class IfcMagneticFluxMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcCartesianTransformationOperator2DnonUniform = IfcCartesianTransformationOperator2DnonUniform; - class IfcCartesianTransformationOperator3D extends IfcCartesianTransformationOperator { - constructor(expressID, Axis1, Axis2, LocalOrigin, Scale, Axis3) { - super(expressID, Axis1, Axis2, LocalOrigin, Scale); - this.Axis1 = Axis1; - this.Axis2 = Axis2; - this.LocalOrigin = LocalOrigin; - this.Scale = Scale; - this.Axis3 = Axis3; - this.type = 3331915920; + IFC42.IfcMagneticFluxMeasure = IfcMagneticFluxMeasure; + class IfcMassDensityMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcCartesianTransformationOperator3D = IfcCartesianTransformationOperator3D; - class IfcCartesianTransformationOperator3DnonUniform extends IfcCartesianTransformationOperator3D { - constructor(expressID, Axis1, Axis2, LocalOrigin, Scale, Axis3, Scale2, Scale3) { - super(expressID, Axis1, Axis2, LocalOrigin, Scale, Axis3); - this.Axis1 = Axis1; - this.Axis2 = Axis2; - this.LocalOrigin = LocalOrigin; - this.Scale = Scale; - this.Axis3 = Axis3; - this.Scale2 = Scale2; - this.Scale3 = Scale3; - this.type = 1416205885; + IFC42.IfcMassDensityMeasure = IfcMassDensityMeasure; + class IfcMassFlowRateMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcCartesianTransformationOperator3DnonUniform = IfcCartesianTransformationOperator3DnonUniform; - class IfcCircleProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, Radius) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.Radius = Radius; - this.type = 1383045692; + IFC42.IfcMassFlowRateMeasure = IfcMassFlowRateMeasure; + class IfcMassMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcCircleProfileDef = IfcCircleProfileDef; - class IfcClosedShell extends IfcConnectedFaceSet { - constructor(expressID, CfsFaces) { - super(expressID, CfsFaces); - this.CfsFaces = CfsFaces; - this.type = 2205249479; + IFC42.IfcMassMeasure = IfcMassMeasure; + class IfcMassPerLengthMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcClosedShell = IfcClosedShell; - class IfcCompositeCurveSegment extends IfcGeometricRepresentationItem { - constructor(expressID, Transition, SameSense, ParentCurve) { - super(expressID); - this.Transition = Transition; - this.SameSense = SameSense; - this.ParentCurve = ParentCurve; - this.type = 2485617015; + IFC42.IfcMassPerLengthMeasure = IfcMassPerLengthMeasure; + class IfcModulusOfElasticityMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcCompositeCurveSegment = IfcCompositeCurveSegment; - class IfcCraneRailAShapeProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, OverallHeight, BaseWidth2, Radius, HeadWidth, HeadDepth2, HeadDepth3, WebThickness, BaseWidth4, BaseDepth1, BaseDepth2, BaseDepth3, CentreOfGravityInY) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.OverallHeight = OverallHeight; - this.BaseWidth2 = BaseWidth2; - this.Radius = Radius; - this.HeadWidth = HeadWidth; - this.HeadDepth2 = HeadDepth2; - this.HeadDepth3 = HeadDepth3; - this.WebThickness = WebThickness; - this.BaseWidth4 = BaseWidth4; - this.BaseDepth1 = BaseDepth1; - this.BaseDepth2 = BaseDepth2; - this.BaseDepth3 = BaseDepth3; - this.CentreOfGravityInY = CentreOfGravityInY; - this.type = 4133800736; + IFC42.IfcModulusOfElasticityMeasure = IfcModulusOfElasticityMeasure; + class IfcModulusOfLinearSubgradeReactionMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcCraneRailAShapeProfileDef = IfcCraneRailAShapeProfileDef; - class IfcCraneRailFShapeProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, OverallHeight, HeadWidth, Radius, HeadDepth2, HeadDepth3, WebThickness, BaseDepth1, BaseDepth2, CentreOfGravityInY) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.OverallHeight = OverallHeight; - this.HeadWidth = HeadWidth; - this.Radius = Radius; - this.HeadDepth2 = HeadDepth2; - this.HeadDepth3 = HeadDepth3; - this.WebThickness = WebThickness; - this.BaseDepth1 = BaseDepth1; - this.BaseDepth2 = BaseDepth2; - this.CentreOfGravityInY = CentreOfGravityInY; - this.type = 194851669; + IFC42.IfcModulusOfLinearSubgradeReactionMeasure = IfcModulusOfLinearSubgradeReactionMeasure; + class IfcModulusOfRotationalSubgradeReactionMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcCraneRailFShapeProfileDef = IfcCraneRailFShapeProfileDef; - class IfcCsgPrimitive3D extends IfcGeometricRepresentationItem { - constructor(expressID, Position) { - super(expressID); - this.Position = Position; - this.type = 2506170314; + IFC42.IfcModulusOfRotationalSubgradeReactionMeasure = IfcModulusOfRotationalSubgradeReactionMeasure; + class IfcModulusOfSubgradeReactionMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcCsgPrimitive3D = IfcCsgPrimitive3D; - class IfcCsgSolid extends IfcSolidModel { - constructor(expressID, TreeRootExpression) { - super(expressID); - this.TreeRootExpression = TreeRootExpression; - this.type = 2147822146; + IFC42.IfcModulusOfSubgradeReactionMeasure = IfcModulusOfSubgradeReactionMeasure; + class IfcMoistureDiffusivityMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcCsgSolid = IfcCsgSolid; - class IfcCurve extends IfcGeometricRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 2601014836; + IFC42.IfcMoistureDiffusivityMeasure = IfcMoistureDiffusivityMeasure; + class IfcMolecularWeightMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcCurve = IfcCurve; - class IfcCurveBoundedPlane extends IfcBoundedSurface { - constructor(expressID, BasisSurface, OuterBoundary, InnerBoundaries) { - super(expressID); - this.BasisSurface = BasisSurface; - this.OuterBoundary = OuterBoundary; - this.InnerBoundaries = InnerBoundaries; - this.type = 2827736869; + IFC42.IfcMolecularWeightMeasure = IfcMolecularWeightMeasure; + class IfcMomentOfInertiaMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcCurveBoundedPlane = IfcCurveBoundedPlane; - class IfcDefinedSymbol extends IfcGeometricRepresentationItem { - constructor(expressID, Definition, Target) { - super(expressID); - this.Definition = Definition; - this.Target = Target; - this.type = 693772133; + IFC42.IfcMomentOfInertiaMeasure = IfcMomentOfInertiaMeasure; + class IfcMonetaryMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcDefinedSymbol = IfcDefinedSymbol; - class IfcDimensionCurve extends IfcAnnotationCurveOccurrence { - constructor(expressID, Item, Styles, Name) { - super(expressID, Item, Styles, Name); - this.Item = Item; - this.Styles = Styles; - this.Name = Name; - this.type = 606661476; + IFC42.IfcMonetaryMeasure = IfcMonetaryMeasure; + class IfcMonthInYearNumber { + constructor(v) { + this.type = 10; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcDimensionCurve = IfcDimensionCurve; - class IfcDimensionCurveTerminator extends IfcTerminatorSymbol { - constructor(expressID, Item, Styles, Name, AnnotatedCurve, Role) { - super(expressID, Item, Styles, Name, AnnotatedCurve); - this.Item = Item; - this.Styles = Styles; - this.Name = Name; - this.AnnotatedCurve = AnnotatedCurve; - this.Role = Role; - this.type = 4054601972; + IFC42.IfcMonthInYearNumber = IfcMonthInYearNumber; + class IfcNonNegativeLengthMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcDimensionCurveTerminator = IfcDimensionCurveTerminator; - class IfcDirection extends IfcGeometricRepresentationItem { - constructor(expressID, DirectionRatios) { - super(expressID); - this.DirectionRatios = DirectionRatios; - this.type = 32440307; + IFC42.IfcNonNegativeLengthMeasure = IfcNonNegativeLengthMeasure; + class IfcNormalisedRatioMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcDirection = IfcDirection; - class IfcDoorLiningProperties extends IfcPropertySetDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, LiningDepth, LiningThickness, ThresholdDepth, ThresholdThickness, TransomThickness, TransomOffset, LiningOffset, ThresholdOffset, CasingThickness, CasingDepth, ShapeAspectStyle) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.LiningDepth = LiningDepth; - this.LiningThickness = LiningThickness; - this.ThresholdDepth = ThresholdDepth; - this.ThresholdThickness = ThresholdThickness; - this.TransomThickness = TransomThickness; - this.TransomOffset = TransomOffset; - this.LiningOffset = LiningOffset; - this.ThresholdOffset = ThresholdOffset; - this.CasingThickness = CasingThickness; - this.CasingDepth = CasingDepth; - this.ShapeAspectStyle = ShapeAspectStyle; - this.type = 2963535650; + IFC42.IfcNormalisedRatioMeasure = IfcNormalisedRatioMeasure; + class IfcNumericMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcDoorLiningProperties = IfcDoorLiningProperties; - class IfcDoorPanelProperties extends IfcPropertySetDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, PanelDepth, PanelOperation, PanelWidth, PanelPosition, ShapeAspectStyle) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.PanelDepth = PanelDepth; - this.PanelOperation = PanelOperation; - this.PanelWidth = PanelWidth; - this.PanelPosition = PanelPosition; - this.ShapeAspectStyle = ShapeAspectStyle; - this.type = 1714330368; + IFC42.IfcNumericMeasure = IfcNumericMeasure; + class IfcPHMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcDoorPanelProperties = IfcDoorPanelProperties; - class IfcDoorStyle extends IfcTypeProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, OperationType, ConstructionType, ParameterTakesPrecedence, Sizeable) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.OperationType = OperationType; - this.ConstructionType = ConstructionType; - this.ParameterTakesPrecedence = ParameterTakesPrecedence; - this.Sizeable = Sizeable; - this.type = 526551008; + IFC42.IfcPHMeasure = IfcPHMeasure; + class IfcParameterValue { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcDoorStyle = IfcDoorStyle; - class IfcDraughtingCallout extends IfcGeometricRepresentationItem { - constructor(expressID, Contents) { - super(expressID); - this.Contents = Contents; - this.type = 3073041342; + IFC42.IfcParameterValue = IfcParameterValue; + class IfcPlanarForceMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcDraughtingCallout = IfcDraughtingCallout; - class IfcDraughtingPreDefinedColour extends IfcPreDefinedColour { - constructor(expressID, Name) { - super(expressID, Name); - this.Name = Name; - this.type = 445594917; + IFC42.IfcPlanarForceMeasure = IfcPlanarForceMeasure; + class IfcPlaneAngleMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcDraughtingPreDefinedColour = IfcDraughtingPreDefinedColour; - class IfcDraughtingPreDefinedCurveFont extends IfcPreDefinedCurveFont { - constructor(expressID, Name) { - super(expressID, Name); - this.Name = Name; - this.type = 4006246654; + IFC42.IfcPlaneAngleMeasure = IfcPlaneAngleMeasure; + class IfcPositiveInteger { + constructor(v) { + this.type = 10; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcDraughtingPreDefinedCurveFont = IfcDraughtingPreDefinedCurveFont; - class IfcEdgeLoop extends IfcLoop { - constructor(expressID, EdgeList) { - super(expressID); - this.EdgeList = EdgeList; - this.type = 1472233963; + IFC42.IfcPositiveInteger = IfcPositiveInteger; + class IfcPositiveLengthMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcEdgeLoop = IfcEdgeLoop; - class IfcElementQuantity extends IfcPropertySetDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, MethodOfMeasurement, Quantities) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.MethodOfMeasurement = MethodOfMeasurement; - this.Quantities = Quantities; - this.type = 1883228015; + IFC42.IfcPositiveLengthMeasure = IfcPositiveLengthMeasure; + class IfcPositivePlaneAngleMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcElementQuantity = IfcElementQuantity; - class IfcElementType extends IfcTypeProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 339256511; + IFC42.IfcPositivePlaneAngleMeasure = IfcPositivePlaneAngleMeasure; + class IfcPositiveRatioMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcElementType = IfcElementType; - class IfcElementarySurface extends IfcSurface { - constructor(expressID, Position) { - super(expressID); - this.Position = Position; - this.type = 2777663545; + IFC42.IfcPositiveRatioMeasure = IfcPositiveRatioMeasure; + class IfcPowerMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcElementarySurface = IfcElementarySurface; - class IfcEllipseProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, SemiAxis1, SemiAxis2) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.SemiAxis1 = SemiAxis1; - this.SemiAxis2 = SemiAxis2; - this.type = 2835456948; + IFC42.IfcPowerMeasure = IfcPowerMeasure; + class IfcPresentableText { + constructor(value) { + this.value = value; + this.type = 1; } } - IFC2X32.IfcEllipseProfileDef = IfcEllipseProfileDef; - class IfcEnergyProperties extends IfcPropertySetDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, EnergySequence, UserDefinedEnergySequence) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.EnergySequence = EnergySequence; - this.UserDefinedEnergySequence = UserDefinedEnergySequence; - this.type = 80994333; + IFC42.IfcPresentableText = IfcPresentableText; + class IfcPressureMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcEnergyProperties = IfcEnergyProperties; - class IfcExtrudedAreaSolid extends IfcSweptAreaSolid { - constructor(expressID, SweptArea, Position, ExtrudedDirection, Depth) { - super(expressID, SweptArea, Position); - this.SweptArea = SweptArea; - this.Position = Position; - this.ExtrudedDirection = ExtrudedDirection; - this.Depth = Depth; - this.type = 477187591; + IFC42.IfcPressureMeasure = IfcPressureMeasure; + class IfcPropertySetDefinitionSet { + constructor(value) { + this.value = value; + this.type = 5; } } - IFC2X32.IfcExtrudedAreaSolid = IfcExtrudedAreaSolid; - class IfcFaceBasedSurfaceModel extends IfcGeometricRepresentationItem { - constructor(expressID, FbsmFaces) { - super(expressID); - this.FbsmFaces = FbsmFaces; - this.type = 2047409740; + IFC42.IfcPropertySetDefinitionSet = IfcPropertySetDefinitionSet; + class IfcRadioActivityMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcFaceBasedSurfaceModel = IfcFaceBasedSurfaceModel; - class IfcFillAreaStyleHatching extends IfcGeometricRepresentationItem { - constructor(expressID, HatchLineAppearance, StartOfNextHatchLine, PointOfReferenceHatchLine, PatternStart, HatchLineAngle) { - super(expressID); - this.HatchLineAppearance = HatchLineAppearance; - this.StartOfNextHatchLine = StartOfNextHatchLine; - this.PointOfReferenceHatchLine = PointOfReferenceHatchLine; - this.PatternStart = PatternStart; - this.HatchLineAngle = HatchLineAngle; - this.type = 374418227; + IFC42.IfcRadioActivityMeasure = IfcRadioActivityMeasure; + class IfcRatioMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcFillAreaStyleHatching = IfcFillAreaStyleHatching; - class IfcFillAreaStyleTileSymbolWithStyle extends IfcGeometricRepresentationItem { - constructor(expressID, Symbol2) { - super(expressID); - this.Symbol = Symbol2; - this.type = 4203026998; + IFC42.IfcRatioMeasure = IfcRatioMeasure; + class IfcReal { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcFillAreaStyleTileSymbolWithStyle = IfcFillAreaStyleTileSymbolWithStyle; - class IfcFillAreaStyleTiles extends IfcGeometricRepresentationItem { - constructor(expressID, TilingPattern, Tiles, TilingScale) { - super(expressID); - this.TilingPattern = TilingPattern; - this.Tiles = Tiles; - this.TilingScale = TilingScale; - this.type = 315944413; + IFC42.IfcReal = IfcReal; + class IfcRotationalFrequencyMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcFillAreaStyleTiles = IfcFillAreaStyleTiles; - class IfcFluidFlowProperties extends IfcPropertySetDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, PropertySource, FlowConditionTimeSeries, VelocityTimeSeries, FlowrateTimeSeries, Fluid, PressureTimeSeries, UserDefinedPropertySource, TemperatureSingleValue, WetBulbTemperatureSingleValue, WetBulbTemperatureTimeSeries, TemperatureTimeSeries, FlowrateSingleValue, FlowConditionSingleValue, VelocitySingleValue, PressureSingleValue) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.PropertySource = PropertySource; - this.FlowConditionTimeSeries = FlowConditionTimeSeries; - this.VelocityTimeSeries = VelocityTimeSeries; - this.FlowrateTimeSeries = FlowrateTimeSeries; - this.Fluid = Fluid; - this.PressureTimeSeries = PressureTimeSeries; - this.UserDefinedPropertySource = UserDefinedPropertySource; - this.TemperatureSingleValue = TemperatureSingleValue; - this.WetBulbTemperatureSingleValue = WetBulbTemperatureSingleValue; - this.WetBulbTemperatureTimeSeries = WetBulbTemperatureTimeSeries; - this.TemperatureTimeSeries = TemperatureTimeSeries; - this.FlowrateSingleValue = FlowrateSingleValue; - this.FlowConditionSingleValue = FlowConditionSingleValue; - this.VelocitySingleValue = VelocitySingleValue; - this.PressureSingleValue = PressureSingleValue; - this.type = 3455213021; + IFC42.IfcRotationalFrequencyMeasure = IfcRotationalFrequencyMeasure; + class IfcRotationalMassMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcFluidFlowProperties = IfcFluidFlowProperties; - class IfcFurnishingElementType extends IfcElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 4238390223; + IFC42.IfcRotationalMassMeasure = IfcRotationalMassMeasure; + class IfcRotationalStiffnessMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcFurnishingElementType = IfcFurnishingElementType; - class IfcFurnitureType extends IfcFurnishingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, AssemblyPlace) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.AssemblyPlace = AssemblyPlace; - this.type = 1268542332; + IFC42.IfcRotationalStiffnessMeasure = IfcRotationalStiffnessMeasure; + class IfcSectionModulusMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcFurnitureType = IfcFurnitureType; - class IfcGeometricCurveSet extends IfcGeometricSet { - constructor(expressID, Elements) { - super(expressID, Elements); - this.Elements = Elements; - this.type = 987898635; + IFC42.IfcSectionModulusMeasure = IfcSectionModulusMeasure; + class IfcSectionalAreaIntegralMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcGeometricCurveSet = IfcGeometricCurveSet; - class IfcIShapeProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, OverallWidth, OverallDepth, WebThickness, FlangeThickness, FilletRadius) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.OverallWidth = OverallWidth; - this.OverallDepth = OverallDepth; - this.WebThickness = WebThickness; - this.FlangeThickness = FlangeThickness; - this.FilletRadius = FilletRadius; - this.type = 1484403080; + IFC42.IfcSectionalAreaIntegralMeasure = IfcSectionalAreaIntegralMeasure; + class IfcShearModulusMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcIShapeProfileDef = IfcIShapeProfileDef; - class IfcLShapeProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, Depth, Width, Thickness, FilletRadius, EdgeRadius, LegSlope, CentreOfGravityInX, CentreOfGravityInY) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.Depth = Depth; - this.Width = Width; - this.Thickness = Thickness; - this.FilletRadius = FilletRadius; - this.EdgeRadius = EdgeRadius; - this.LegSlope = LegSlope; - this.CentreOfGravityInX = CentreOfGravityInX; - this.CentreOfGravityInY = CentreOfGravityInY; - this.type = 572779678; + IFC42.IfcShearModulusMeasure = IfcShearModulusMeasure; + class IfcSolidAngleMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcLShapeProfileDef = IfcLShapeProfileDef; - class IfcLine extends IfcCurve { - constructor(expressID, Pnt, Dir) { - super(expressID); - this.Pnt = Pnt; - this.Dir = Dir; - this.type = 1281925730; + IFC42.IfcSolidAngleMeasure = IfcSolidAngleMeasure; + class IfcSoundPowerLevelMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcLine = IfcLine; - class IfcManifoldSolidBrep extends IfcSolidModel { - constructor(expressID, Outer) { - super(expressID); - this.Outer = Outer; - this.type = 1425443689; + IFC42.IfcSoundPowerLevelMeasure = IfcSoundPowerLevelMeasure; + class IfcSoundPowerMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcManifoldSolidBrep = IfcManifoldSolidBrep; - class IfcObject extends IfcObjectDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.type = 3888040117; + IFC42.IfcSoundPowerMeasure = IfcSoundPowerMeasure; + class IfcSoundPressureLevelMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcObject = IfcObject; - class IfcOffsetCurve2D extends IfcCurve { - constructor(expressID, BasisCurve, Distance, SelfIntersect) { - super(expressID); - this.BasisCurve = BasisCurve; - this.Distance = Distance; - this.SelfIntersect = SelfIntersect; - this.type = 3388369263; + IFC42.IfcSoundPressureLevelMeasure = IfcSoundPressureLevelMeasure; + class IfcSoundPressureMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcOffsetCurve2D = IfcOffsetCurve2D; - class IfcOffsetCurve3D extends IfcCurve { - constructor(expressID, BasisCurve, Distance, SelfIntersect, RefDirection) { - super(expressID); - this.BasisCurve = BasisCurve; - this.Distance = Distance; - this.SelfIntersect = SelfIntersect; - this.RefDirection = RefDirection; - this.type = 3505215534; + IFC42.IfcSoundPressureMeasure = IfcSoundPressureMeasure; + class IfcSpecificHeatCapacityMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcOffsetCurve3D = IfcOffsetCurve3D; - class IfcPermeableCoveringProperties extends IfcPropertySetDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, OperationType, PanelPosition, FrameDepth, FrameThickness, ShapeAspectStyle) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.OperationType = OperationType; - this.PanelPosition = PanelPosition; - this.FrameDepth = FrameDepth; - this.FrameThickness = FrameThickness; - this.ShapeAspectStyle = ShapeAspectStyle; - this.type = 3566463478; + IFC42.IfcSpecificHeatCapacityMeasure = IfcSpecificHeatCapacityMeasure; + class IfcSpecularExponent { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcPermeableCoveringProperties = IfcPermeableCoveringProperties; - class IfcPlanarBox extends IfcPlanarExtent { - constructor(expressID, SizeInX, SizeInY, Placement) { - super(expressID, SizeInX, SizeInY); - this.SizeInX = SizeInX; - this.SizeInY = SizeInY; - this.Placement = Placement; - this.type = 603570806; + IFC42.IfcSpecularExponent = IfcSpecularExponent; + class IfcSpecularRoughness { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcPlanarBox = IfcPlanarBox; - class IfcPlane extends IfcElementarySurface { - constructor(expressID, Position) { - super(expressID, Position); - this.Position = Position; - this.type = 220341763; + IFC42.IfcSpecularRoughness = IfcSpecularRoughness; + class IfcTemperatureGradientMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcPlane = IfcPlane; - class IfcProcess extends IfcObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.type = 2945172077; + IFC42.IfcTemperatureGradientMeasure = IfcTemperatureGradientMeasure; + class IfcTemperatureRateOfChangeMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcProcess = IfcProcess; - class IfcProduct extends IfcObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.type = 4208778838; + IFC42.IfcTemperatureRateOfChangeMeasure = IfcTemperatureRateOfChangeMeasure; + class IfcText { + constructor(value) { + this.value = value; + this.type = 1; } } - IFC2X32.IfcProduct = IfcProduct; - class IfcProject extends IfcObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.LongName = LongName; - this.Phase = Phase; - this.RepresentationContexts = RepresentationContexts; - this.UnitsInContext = UnitsInContext; - this.type = 103090709; + IFC42.IfcText = IfcText; + class IfcTextAlignment { + constructor(value) { + this.value = value; + this.type = 1; } } - IFC2X32.IfcProject = IfcProject; - class IfcProjectionCurve extends IfcAnnotationCurveOccurrence { - constructor(expressID, Item, Styles, Name) { - super(expressID, Item, Styles, Name); - this.Item = Item; - this.Styles = Styles; - this.Name = Name; - this.type = 4194566429; + IFC42.IfcTextAlignment = IfcTextAlignment; + class IfcTextDecoration { + constructor(value) { + this.value = value; + this.type = 1; } } - IFC2X32.IfcProjectionCurve = IfcProjectionCurve; - class IfcPropertySet extends IfcPropertySetDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, HasProperties) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.HasProperties = HasProperties; - this.type = 1451395588; + IFC42.IfcTextDecoration = IfcTextDecoration; + class IfcTextFontName { + constructor(value) { + this.value = value; + this.type = 1; } } - IFC2X32.IfcPropertySet = IfcPropertySet; - class IfcProxy extends IfcProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, ProxyType, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.ProxyType = ProxyType; - this.Tag = Tag; - this.type = 3219374653; + IFC42.IfcTextFontName = IfcTextFontName; + class IfcTextTransformation { + constructor(value) { + this.value = value; + this.type = 1; } } - IFC2X32.IfcProxy = IfcProxy; - class IfcRectangleHollowProfileDef extends IfcRectangleProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, XDim, YDim, WallThickness, InnerFilletRadius, OuterFilletRadius) { - super(expressID, ProfileType, ProfileName, Position, XDim, YDim); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.XDim = XDim; - this.YDim = YDim; - this.WallThickness = WallThickness; - this.InnerFilletRadius = InnerFilletRadius; - this.OuterFilletRadius = OuterFilletRadius; - this.type = 2770003689; + IFC42.IfcTextTransformation = IfcTextTransformation; + class IfcThermalAdmittanceMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcRectangleHollowProfileDef = IfcRectangleHollowProfileDef; - class IfcRectangularPyramid extends IfcCsgPrimitive3D { - constructor(expressID, Position, XLength, YLength, Height) { - super(expressID, Position); - this.Position = Position; - this.XLength = XLength; - this.YLength = YLength; - this.Height = Height; - this.type = 2798486643; + IFC42.IfcThermalAdmittanceMeasure = IfcThermalAdmittanceMeasure; + class IfcThermalConductivityMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcRectangularPyramid = IfcRectangularPyramid; - class IfcRectangularTrimmedSurface extends IfcBoundedSurface { - constructor(expressID, BasisSurface, U1, V1, U2, V2, Usense, Vsense) { - super(expressID); - this.BasisSurface = BasisSurface; - this.U1 = U1; - this.V1 = V1; - this.U2 = U2; - this.V2 = V2; - this.Usense = Usense; - this.Vsense = Vsense; - this.type = 3454111270; + IFC42.IfcThermalConductivityMeasure = IfcThermalConductivityMeasure; + class IfcThermalExpansionCoefficientMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcRectangularTrimmedSurface = IfcRectangularTrimmedSurface; - class IfcRelAssigns extends IfcRelationship { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.type = 3939117080; + IFC42.IfcThermalExpansionCoefficientMeasure = IfcThermalExpansionCoefficientMeasure; + class IfcThermalResistanceMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcRelAssigns = IfcRelAssigns; - class IfcRelAssignsToActor extends IfcRelAssigns { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingActor, ActingRole) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.RelatingActor = RelatingActor; - this.ActingRole = ActingRole; - this.type = 1683148259; + IFC42.IfcThermalResistanceMeasure = IfcThermalResistanceMeasure; + class IfcThermalTransmittanceMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcRelAssignsToActor = IfcRelAssignsToActor; - class IfcRelAssignsToControl extends IfcRelAssigns { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.RelatingControl = RelatingControl; - this.type = 2495723537; + IFC42.IfcThermalTransmittanceMeasure = IfcThermalTransmittanceMeasure; + class IfcThermodynamicTemperatureMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcRelAssignsToControl = IfcRelAssignsToControl; - class IfcRelAssignsToGroup extends IfcRelAssigns { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingGroup) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.RelatingGroup = RelatingGroup; - this.type = 1307041759; + IFC42.IfcThermodynamicTemperatureMeasure = IfcThermodynamicTemperatureMeasure; + class IfcTime { + constructor(value) { + this.value = value; + this.type = 1; } } - IFC2X32.IfcRelAssignsToGroup = IfcRelAssignsToGroup; - class IfcRelAssignsToProcess extends IfcRelAssigns { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingProcess, QuantityInProcess) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.RelatingProcess = RelatingProcess; - this.QuantityInProcess = QuantityInProcess; - this.type = 4278684876; + IFC42.IfcTime = IfcTime; + class IfcTimeMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcRelAssignsToProcess = IfcRelAssignsToProcess; - class IfcRelAssignsToProduct extends IfcRelAssigns { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingProduct) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.RelatingProduct = RelatingProduct; - this.type = 2857406711; + IFC42.IfcTimeMeasure = IfcTimeMeasure; + class IfcTimeStamp { + constructor(v) { + this.type = 10; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcRelAssignsToProduct = IfcRelAssignsToProduct; - class IfcRelAssignsToProjectOrder extends IfcRelAssignsToControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.RelatingControl = RelatingControl; - this.type = 3372526763; + IFC42.IfcTimeStamp = IfcTimeStamp; + class IfcTorqueMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcRelAssignsToProjectOrder = IfcRelAssignsToProjectOrder; - class IfcRelAssignsToResource extends IfcRelAssigns { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingResource) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.RelatingResource = RelatingResource; - this.type = 205026976; + IFC42.IfcTorqueMeasure = IfcTorqueMeasure; + class IfcURIReference { + constructor(value) { + this.value = value; + this.type = 1; } } - IFC2X32.IfcRelAssignsToResource = IfcRelAssignsToResource; - class IfcRelAssociates extends IfcRelationship { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.type = 1865459582; + IFC42.IfcURIReference = IfcURIReference; + class IfcVaporPermeabilityMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcRelAssociates = IfcRelAssociates; - class IfcRelAssociatesAppliedValue extends IfcRelAssociates { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingAppliedValue) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingAppliedValue = RelatingAppliedValue; - this.type = 1327628568; + IFC42.IfcVaporPermeabilityMeasure = IfcVaporPermeabilityMeasure; + class IfcVolumeMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcRelAssociatesAppliedValue = IfcRelAssociatesAppliedValue; - class IfcRelAssociatesApproval extends IfcRelAssociates { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingApproval) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingApproval = RelatingApproval; - this.type = 4095574036; + IFC42.IfcVolumeMeasure = IfcVolumeMeasure; + class IfcVolumetricFlowRateMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcRelAssociatesApproval = IfcRelAssociatesApproval; - class IfcRelAssociatesClassification extends IfcRelAssociates { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingClassification) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingClassification = RelatingClassification; - this.type = 919958153; + IFC42.IfcVolumetricFlowRateMeasure = IfcVolumetricFlowRateMeasure; + class IfcWarpingConstantMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcRelAssociatesClassification = IfcRelAssociatesClassification; - class IfcRelAssociatesConstraint extends IfcRelAssociates { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, Intent, RelatingConstraint) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.Intent = Intent; - this.RelatingConstraint = RelatingConstraint; - this.type = 2728634034; + IFC42.IfcWarpingConstantMeasure = IfcWarpingConstantMeasure; + class IfcWarpingMomentMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC2X32.IfcRelAssociatesConstraint = IfcRelAssociatesConstraint; - class IfcRelAssociatesDocument extends IfcRelAssociates { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingDocument) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingDocument = RelatingDocument; - this.type = 982818633; - } + IFC42.IfcWarpingMomentMeasure = IfcWarpingMomentMeasure; + class IfcActionRequestTypeEnum { + } + IfcActionRequestTypeEnum.EMAIL = { type: 3, value: "EMAIL" }; + IfcActionRequestTypeEnum.FAX = { type: 3, value: "FAX" }; + IfcActionRequestTypeEnum.PHONE = { type: 3, value: "PHONE" }; + IfcActionRequestTypeEnum.POST = { type: 3, value: "POST" }; + IfcActionRequestTypeEnum.VERBAL = { type: 3, value: "VERBAL" }; + IfcActionRequestTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcActionRequestTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcActionRequestTypeEnum = IfcActionRequestTypeEnum; + class IfcActionSourceTypeEnum { + } + IfcActionSourceTypeEnum.DEAD_LOAD_G = { type: 3, value: "DEAD_LOAD_G" }; + IfcActionSourceTypeEnum.COMPLETION_G1 = { type: 3, value: "COMPLETION_G1" }; + IfcActionSourceTypeEnum.LIVE_LOAD_Q = { type: 3, value: "LIVE_LOAD_Q" }; + IfcActionSourceTypeEnum.SNOW_S = { type: 3, value: "SNOW_S" }; + IfcActionSourceTypeEnum.WIND_W = { type: 3, value: "WIND_W" }; + IfcActionSourceTypeEnum.PRESTRESSING_P = { type: 3, value: "PRESTRESSING_P" }; + IfcActionSourceTypeEnum.SETTLEMENT_U = { type: 3, value: "SETTLEMENT_U" }; + IfcActionSourceTypeEnum.TEMPERATURE_T = { type: 3, value: "TEMPERATURE_T" }; + IfcActionSourceTypeEnum.EARTHQUAKE_E = { type: 3, value: "EARTHQUAKE_E" }; + IfcActionSourceTypeEnum.FIRE = { type: 3, value: "FIRE" }; + IfcActionSourceTypeEnum.IMPULSE = { type: 3, value: "IMPULSE" }; + IfcActionSourceTypeEnum.IMPACT = { type: 3, value: "IMPACT" }; + IfcActionSourceTypeEnum.TRANSPORT = { type: 3, value: "TRANSPORT" }; + IfcActionSourceTypeEnum.ERECTION = { type: 3, value: "ERECTION" }; + IfcActionSourceTypeEnum.PROPPING = { type: 3, value: "PROPPING" }; + IfcActionSourceTypeEnum.SYSTEM_IMPERFECTION = { type: 3, value: "SYSTEM_IMPERFECTION" }; + IfcActionSourceTypeEnum.SHRINKAGE = { type: 3, value: "SHRINKAGE" }; + IfcActionSourceTypeEnum.CREEP = { type: 3, value: "CREEP" }; + IfcActionSourceTypeEnum.LACK_OF_FIT = { type: 3, value: "LACK_OF_FIT" }; + IfcActionSourceTypeEnum.BUOYANCY = { type: 3, value: "BUOYANCY" }; + IfcActionSourceTypeEnum.ICE = { type: 3, value: "ICE" }; + IfcActionSourceTypeEnum.CURRENT = { type: 3, value: "CURRENT" }; + IfcActionSourceTypeEnum.WAVE = { type: 3, value: "WAVE" }; + IfcActionSourceTypeEnum.RAIN = { type: 3, value: "RAIN" }; + IfcActionSourceTypeEnum.BRAKES = { type: 3, value: "BRAKES" }; + IfcActionSourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcActionSourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcActionSourceTypeEnum = IfcActionSourceTypeEnum; + class IfcActionTypeEnum { + } + IfcActionTypeEnum.PERMANENT_G = { type: 3, value: "PERMANENT_G" }; + IfcActionTypeEnum.VARIABLE_Q = { type: 3, value: "VARIABLE_Q" }; + IfcActionTypeEnum.EXTRAORDINARY_A = { type: 3, value: "EXTRAORDINARY_A" }; + IfcActionTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcActionTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcActionTypeEnum = IfcActionTypeEnum; + class IfcActuatorTypeEnum { + } + IfcActuatorTypeEnum.ELECTRICACTUATOR = { type: 3, value: "ELECTRICACTUATOR" }; + IfcActuatorTypeEnum.HANDOPERATEDACTUATOR = { type: 3, value: "HANDOPERATEDACTUATOR" }; + IfcActuatorTypeEnum.HYDRAULICACTUATOR = { type: 3, value: "HYDRAULICACTUATOR" }; + IfcActuatorTypeEnum.PNEUMATICACTUATOR = { type: 3, value: "PNEUMATICACTUATOR" }; + IfcActuatorTypeEnum.THERMOSTATICACTUATOR = { type: 3, value: "THERMOSTATICACTUATOR" }; + IfcActuatorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcActuatorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcActuatorTypeEnum = IfcActuatorTypeEnum; + class IfcAddressTypeEnum { + } + IfcAddressTypeEnum.OFFICE = { type: 3, value: "OFFICE" }; + IfcAddressTypeEnum.SITE = { type: 3, value: "SITE" }; + IfcAddressTypeEnum.HOME = { type: 3, value: "HOME" }; + IfcAddressTypeEnum.DISTRIBUTIONPOINT = { type: 3, value: "DISTRIBUTIONPOINT" }; + IfcAddressTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IFC42.IfcAddressTypeEnum = IfcAddressTypeEnum; + class IfcAirTerminalBoxTypeEnum { + } + IfcAirTerminalBoxTypeEnum.CONSTANTFLOW = { type: 3, value: "CONSTANTFLOW" }; + IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREDEPENDANT = { type: 3, value: "VARIABLEFLOWPRESSUREDEPENDANT" }; + IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREINDEPENDANT = { type: 3, value: "VARIABLEFLOWPRESSUREINDEPENDANT" }; + IfcAirTerminalBoxTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcAirTerminalBoxTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcAirTerminalBoxTypeEnum = IfcAirTerminalBoxTypeEnum; + class IfcAirTerminalTypeEnum { + } + IfcAirTerminalTypeEnum.DIFFUSER = { type: 3, value: "DIFFUSER" }; + IfcAirTerminalTypeEnum.GRILLE = { type: 3, value: "GRILLE" }; + IfcAirTerminalTypeEnum.LOUVRE = { type: 3, value: "LOUVRE" }; + IfcAirTerminalTypeEnum.REGISTER = { type: 3, value: "REGISTER" }; + IfcAirTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcAirTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcAirTerminalTypeEnum = IfcAirTerminalTypeEnum; + class IfcAirToAirHeatRecoveryTypeEnum { + } + IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECOUNTERFLOWEXCHANGER = { type: 3, value: "FIXEDPLATECOUNTERFLOWEXCHANGER" }; + IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECROSSFLOWEXCHANGER = { type: 3, value: "FIXEDPLATECROSSFLOWEXCHANGER" }; + IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATEPARALLELFLOWEXCHANGER = { type: 3, value: "FIXEDPLATEPARALLELFLOWEXCHANGER" }; + IfcAirToAirHeatRecoveryTypeEnum.ROTARYWHEEL = { type: 3, value: "ROTARYWHEEL" }; + IfcAirToAirHeatRecoveryTypeEnum.RUNAROUNDCOILLOOP = { type: 3, value: "RUNAROUNDCOILLOOP" }; + IfcAirToAirHeatRecoveryTypeEnum.HEATPIPE = { type: 3, value: "HEATPIPE" }; + IfcAirToAirHeatRecoveryTypeEnum.TWINTOWERENTHALPYRECOVERYLOOPS = { type: 3, value: "TWINTOWERENTHALPYRECOVERYLOOPS" }; + IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONSEALEDTUBEHEATEXCHANGERS = { type: 3, value: "THERMOSIPHONSEALEDTUBEHEATEXCHANGERS" }; + IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONCOILTYPEHEATEXCHANGERS = { type: 3, value: "THERMOSIPHONCOILTYPEHEATEXCHANGERS" }; + IfcAirToAirHeatRecoveryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcAirToAirHeatRecoveryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcAirToAirHeatRecoveryTypeEnum = IfcAirToAirHeatRecoveryTypeEnum; + class IfcAlarmTypeEnum { + } + IfcAlarmTypeEnum.BELL = { type: 3, value: "BELL" }; + IfcAlarmTypeEnum.BREAKGLASSBUTTON = { type: 3, value: "BREAKGLASSBUTTON" }; + IfcAlarmTypeEnum.LIGHT = { type: 3, value: "LIGHT" }; + IfcAlarmTypeEnum.MANUALPULLBOX = { type: 3, value: "MANUALPULLBOX" }; + IfcAlarmTypeEnum.SIREN = { type: 3, value: "SIREN" }; + IfcAlarmTypeEnum.WHISTLE = { type: 3, value: "WHISTLE" }; + IfcAlarmTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcAlarmTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcAlarmTypeEnum = IfcAlarmTypeEnum; + class IfcAnalysisModelTypeEnum { + } + IfcAnalysisModelTypeEnum.IN_PLANE_LOADING_2D = { type: 3, value: "IN_PLANE_LOADING_2D" }; + IfcAnalysisModelTypeEnum.OUT_PLANE_LOADING_2D = { type: 3, value: "OUT_PLANE_LOADING_2D" }; + IfcAnalysisModelTypeEnum.LOADING_3D = { type: 3, value: "LOADING_3D" }; + IfcAnalysisModelTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcAnalysisModelTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcAnalysisModelTypeEnum = IfcAnalysisModelTypeEnum; + class IfcAnalysisTheoryTypeEnum { + } + IfcAnalysisTheoryTypeEnum.FIRST_ORDER_THEORY = { type: 3, value: "FIRST_ORDER_THEORY" }; + IfcAnalysisTheoryTypeEnum.SECOND_ORDER_THEORY = { type: 3, value: "SECOND_ORDER_THEORY" }; + IfcAnalysisTheoryTypeEnum.THIRD_ORDER_THEORY = { type: 3, value: "THIRD_ORDER_THEORY" }; + IfcAnalysisTheoryTypeEnum.FULL_NONLINEAR_THEORY = { type: 3, value: "FULL_NONLINEAR_THEORY" }; + IfcAnalysisTheoryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcAnalysisTheoryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcAnalysisTheoryTypeEnum = IfcAnalysisTheoryTypeEnum; + class IfcArithmeticOperatorEnum { + } + IfcArithmeticOperatorEnum.ADD = { type: 3, value: "ADD" }; + IfcArithmeticOperatorEnum.DIVIDE = { type: 3, value: "DIVIDE" }; + IfcArithmeticOperatorEnum.MULTIPLY = { type: 3, value: "MULTIPLY" }; + IfcArithmeticOperatorEnum.SUBTRACT = { type: 3, value: "SUBTRACT" }; + IFC42.IfcArithmeticOperatorEnum = IfcArithmeticOperatorEnum; + class IfcAssemblyPlaceEnum { + } + IfcAssemblyPlaceEnum.SITE = { type: 3, value: "SITE" }; + IfcAssemblyPlaceEnum.FACTORY = { type: 3, value: "FACTORY" }; + IfcAssemblyPlaceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcAssemblyPlaceEnum = IfcAssemblyPlaceEnum; + class IfcAudioVisualApplianceTypeEnum { + } + IfcAudioVisualApplianceTypeEnum.AMPLIFIER = { type: 3, value: "AMPLIFIER" }; + IfcAudioVisualApplianceTypeEnum.CAMERA = { type: 3, value: "CAMERA" }; + IfcAudioVisualApplianceTypeEnum.DISPLAY = { type: 3, value: "DISPLAY" }; + IfcAudioVisualApplianceTypeEnum.MICROPHONE = { type: 3, value: "MICROPHONE" }; + IfcAudioVisualApplianceTypeEnum.PLAYER = { type: 3, value: "PLAYER" }; + IfcAudioVisualApplianceTypeEnum.PROJECTOR = { type: 3, value: "PROJECTOR" }; + IfcAudioVisualApplianceTypeEnum.RECEIVER = { type: 3, value: "RECEIVER" }; + IfcAudioVisualApplianceTypeEnum.SPEAKER = { type: 3, value: "SPEAKER" }; + IfcAudioVisualApplianceTypeEnum.SWITCHER = { type: 3, value: "SWITCHER" }; + IfcAudioVisualApplianceTypeEnum.TELEPHONE = { type: 3, value: "TELEPHONE" }; + IfcAudioVisualApplianceTypeEnum.TUNER = { type: 3, value: "TUNER" }; + IfcAudioVisualApplianceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcAudioVisualApplianceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcAudioVisualApplianceTypeEnum = IfcAudioVisualApplianceTypeEnum; + class IfcBSplineCurveForm { + } + IfcBSplineCurveForm.POLYLINE_FORM = { type: 3, value: "POLYLINE_FORM" }; + IfcBSplineCurveForm.CIRCULAR_ARC = { type: 3, value: "CIRCULAR_ARC" }; + IfcBSplineCurveForm.ELLIPTIC_ARC = { type: 3, value: "ELLIPTIC_ARC" }; + IfcBSplineCurveForm.PARABOLIC_ARC = { type: 3, value: "PARABOLIC_ARC" }; + IfcBSplineCurveForm.HYPERBOLIC_ARC = { type: 3, value: "HYPERBOLIC_ARC" }; + IfcBSplineCurveForm.UNSPECIFIED = { type: 3, value: "UNSPECIFIED" }; + IFC42.IfcBSplineCurveForm = IfcBSplineCurveForm; + class IfcBSplineSurfaceForm { + } + IfcBSplineSurfaceForm.PLANE_SURF = { type: 3, value: "PLANE_SURF" }; + IfcBSplineSurfaceForm.CYLINDRICAL_SURF = { type: 3, value: "CYLINDRICAL_SURF" }; + IfcBSplineSurfaceForm.CONICAL_SURF = { type: 3, value: "CONICAL_SURF" }; + IfcBSplineSurfaceForm.SPHERICAL_SURF = { type: 3, value: "SPHERICAL_SURF" }; + IfcBSplineSurfaceForm.TOROIDAL_SURF = { type: 3, value: "TOROIDAL_SURF" }; + IfcBSplineSurfaceForm.SURF_OF_REVOLUTION = { type: 3, value: "SURF_OF_REVOLUTION" }; + IfcBSplineSurfaceForm.RULED_SURF = { type: 3, value: "RULED_SURF" }; + IfcBSplineSurfaceForm.GENERALISED_CONE = { type: 3, value: "GENERALISED_CONE" }; + IfcBSplineSurfaceForm.QUADRIC_SURF = { type: 3, value: "QUADRIC_SURF" }; + IfcBSplineSurfaceForm.SURF_OF_LINEAR_EXTRUSION = { type: 3, value: "SURF_OF_LINEAR_EXTRUSION" }; + IfcBSplineSurfaceForm.UNSPECIFIED = { type: 3, value: "UNSPECIFIED" }; + IFC42.IfcBSplineSurfaceForm = IfcBSplineSurfaceForm; + class IfcBeamTypeEnum { + } + IfcBeamTypeEnum.BEAM = { type: 3, value: "BEAM" }; + IfcBeamTypeEnum.JOIST = { type: 3, value: "JOIST" }; + IfcBeamTypeEnum.HOLLOWCORE = { type: 3, value: "HOLLOWCORE" }; + IfcBeamTypeEnum.LINTEL = { type: 3, value: "LINTEL" }; + IfcBeamTypeEnum.SPANDREL = { type: 3, value: "SPANDREL" }; + IfcBeamTypeEnum.T_BEAM = { type: 3, value: "T_BEAM" }; + IfcBeamTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcBeamTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcBeamTypeEnum = IfcBeamTypeEnum; + class IfcBenchmarkEnum { + } + IfcBenchmarkEnum.GREATERTHAN = { type: 3, value: "GREATERTHAN" }; + IfcBenchmarkEnum.GREATERTHANOREQUALTO = { type: 3, value: "GREATERTHANOREQUALTO" }; + IfcBenchmarkEnum.LESSTHAN = { type: 3, value: "LESSTHAN" }; + IfcBenchmarkEnum.LESSTHANOREQUALTO = { type: 3, value: "LESSTHANOREQUALTO" }; + IfcBenchmarkEnum.EQUALTO = { type: 3, value: "EQUALTO" }; + IfcBenchmarkEnum.NOTEQUALTO = { type: 3, value: "NOTEQUALTO" }; + IfcBenchmarkEnum.INCLUDES = { type: 3, value: "INCLUDES" }; + IfcBenchmarkEnum.NOTINCLUDES = { type: 3, value: "NOTINCLUDES" }; + IfcBenchmarkEnum.INCLUDEDIN = { type: 3, value: "INCLUDEDIN" }; + IfcBenchmarkEnum.NOTINCLUDEDIN = { type: 3, value: "NOTINCLUDEDIN" }; + IFC42.IfcBenchmarkEnum = IfcBenchmarkEnum; + class IfcBoilerTypeEnum { + } + IfcBoilerTypeEnum.WATER = { type: 3, value: "WATER" }; + IfcBoilerTypeEnum.STEAM = { type: 3, value: "STEAM" }; + IfcBoilerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcBoilerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcBoilerTypeEnum = IfcBoilerTypeEnum; + class IfcBooleanOperator { + } + IfcBooleanOperator.UNION = { type: 3, value: "UNION" }; + IfcBooleanOperator.INTERSECTION = { type: 3, value: "INTERSECTION" }; + IfcBooleanOperator.DIFFERENCE = { type: 3, value: "DIFFERENCE" }; + IFC42.IfcBooleanOperator = IfcBooleanOperator; + class IfcBuildingElementPartTypeEnum { + } + IfcBuildingElementPartTypeEnum.INSULATION = { type: 3, value: "INSULATION" }; + IfcBuildingElementPartTypeEnum.PRECASTPANEL = { type: 3, value: "PRECASTPANEL" }; + IfcBuildingElementPartTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcBuildingElementPartTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcBuildingElementPartTypeEnum = IfcBuildingElementPartTypeEnum; + class IfcBuildingElementProxyTypeEnum { + } + IfcBuildingElementProxyTypeEnum.COMPLEX = { type: 3, value: "COMPLEX" }; + IfcBuildingElementProxyTypeEnum.ELEMENT = { type: 3, value: "ELEMENT" }; + IfcBuildingElementProxyTypeEnum.PARTIAL = { type: 3, value: "PARTIAL" }; + IfcBuildingElementProxyTypeEnum.PROVISIONFORVOID = { type: 3, value: "PROVISIONFORVOID" }; + IfcBuildingElementProxyTypeEnum.PROVISIONFORSPACE = { type: 3, value: "PROVISIONFORSPACE" }; + IfcBuildingElementProxyTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcBuildingElementProxyTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcBuildingElementProxyTypeEnum = IfcBuildingElementProxyTypeEnum; + class IfcBuildingSystemTypeEnum { + } + IfcBuildingSystemTypeEnum.FENESTRATION = { type: 3, value: "FENESTRATION" }; + IfcBuildingSystemTypeEnum.FOUNDATION = { type: 3, value: "FOUNDATION" }; + IfcBuildingSystemTypeEnum.LOADBEARING = { type: 3, value: "LOADBEARING" }; + IfcBuildingSystemTypeEnum.OUTERSHELL = { type: 3, value: "OUTERSHELL" }; + IfcBuildingSystemTypeEnum.SHADING = { type: 3, value: "SHADING" }; + IfcBuildingSystemTypeEnum.TRANSPORT = { type: 3, value: "TRANSPORT" }; + IfcBuildingSystemTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcBuildingSystemTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcBuildingSystemTypeEnum = IfcBuildingSystemTypeEnum; + class IfcBurnerTypeEnum { + } + IfcBurnerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcBurnerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcBurnerTypeEnum = IfcBurnerTypeEnum; + class IfcCableCarrierFittingTypeEnum { + } + IfcCableCarrierFittingTypeEnum.BEND = { type: 3, value: "BEND" }; + IfcCableCarrierFittingTypeEnum.CROSS = { type: 3, value: "CROSS" }; + IfcCableCarrierFittingTypeEnum.REDUCER = { type: 3, value: "REDUCER" }; + IfcCableCarrierFittingTypeEnum.TEE = { type: 3, value: "TEE" }; + IfcCableCarrierFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCableCarrierFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcCableCarrierFittingTypeEnum = IfcCableCarrierFittingTypeEnum; + class IfcCableCarrierSegmentTypeEnum { + } + IfcCableCarrierSegmentTypeEnum.CABLELADDERSEGMENT = { type: 3, value: "CABLELADDERSEGMENT" }; + IfcCableCarrierSegmentTypeEnum.CABLETRAYSEGMENT = { type: 3, value: "CABLETRAYSEGMENT" }; + IfcCableCarrierSegmentTypeEnum.CABLETRUNKINGSEGMENT = { type: 3, value: "CABLETRUNKINGSEGMENT" }; + IfcCableCarrierSegmentTypeEnum.CONDUITSEGMENT = { type: 3, value: "CONDUITSEGMENT" }; + IfcCableCarrierSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCableCarrierSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcCableCarrierSegmentTypeEnum = IfcCableCarrierSegmentTypeEnum; + class IfcCableFittingTypeEnum { + } + IfcCableFittingTypeEnum.CONNECTOR = { type: 3, value: "CONNECTOR" }; + IfcCableFittingTypeEnum.ENTRY = { type: 3, value: "ENTRY" }; + IfcCableFittingTypeEnum.EXIT = { type: 3, value: "EXIT" }; + IfcCableFittingTypeEnum.JUNCTION = { type: 3, value: "JUNCTION" }; + IfcCableFittingTypeEnum.TRANSITION = { type: 3, value: "TRANSITION" }; + IfcCableFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCableFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcCableFittingTypeEnum = IfcCableFittingTypeEnum; + class IfcCableSegmentTypeEnum { + } + IfcCableSegmentTypeEnum.BUSBARSEGMENT = { type: 3, value: "BUSBARSEGMENT" }; + IfcCableSegmentTypeEnum.CABLESEGMENT = { type: 3, value: "CABLESEGMENT" }; + IfcCableSegmentTypeEnum.CONDUCTORSEGMENT = { type: 3, value: "CONDUCTORSEGMENT" }; + IfcCableSegmentTypeEnum.CORESEGMENT = { type: 3, value: "CORESEGMENT" }; + IfcCableSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCableSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcCableSegmentTypeEnum = IfcCableSegmentTypeEnum; + class IfcChangeActionEnum { + } + IfcChangeActionEnum.NOCHANGE = { type: 3, value: "NOCHANGE" }; + IfcChangeActionEnum.MODIFIED = { type: 3, value: "MODIFIED" }; + IfcChangeActionEnum.ADDED = { type: 3, value: "ADDED" }; + IfcChangeActionEnum.DELETED = { type: 3, value: "DELETED" }; + IfcChangeActionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcChangeActionEnum = IfcChangeActionEnum; + class IfcChillerTypeEnum { + } + IfcChillerTypeEnum.AIRCOOLED = { type: 3, value: "AIRCOOLED" }; + IfcChillerTypeEnum.WATERCOOLED = { type: 3, value: "WATERCOOLED" }; + IfcChillerTypeEnum.HEATRECOVERY = { type: 3, value: "HEATRECOVERY" }; + IfcChillerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcChillerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcChillerTypeEnum = IfcChillerTypeEnum; + class IfcChimneyTypeEnum { } - IFC2X32.IfcRelAssociatesDocument = IfcRelAssociatesDocument; - class IfcRelAssociatesLibrary extends IfcRelAssociates { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingLibrary) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingLibrary = RelatingLibrary; - this.type = 3840914261; - } + IfcChimneyTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcChimneyTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcChimneyTypeEnum = IfcChimneyTypeEnum; + class IfcCoilTypeEnum { } - IFC2X32.IfcRelAssociatesLibrary = IfcRelAssociatesLibrary; - class IfcRelAssociatesMaterial extends IfcRelAssociates { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingMaterial) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingMaterial = RelatingMaterial; - this.type = 2655215786; - } + IfcCoilTypeEnum.DXCOOLINGCOIL = { type: 3, value: "DXCOOLINGCOIL" }; + IfcCoilTypeEnum.ELECTRICHEATINGCOIL = { type: 3, value: "ELECTRICHEATINGCOIL" }; + IfcCoilTypeEnum.GASHEATINGCOIL = { type: 3, value: "GASHEATINGCOIL" }; + IfcCoilTypeEnum.HYDRONICCOIL = { type: 3, value: "HYDRONICCOIL" }; + IfcCoilTypeEnum.STEAMHEATINGCOIL = { type: 3, value: "STEAMHEATINGCOIL" }; + IfcCoilTypeEnum.WATERCOOLINGCOIL = { type: 3, value: "WATERCOOLINGCOIL" }; + IfcCoilTypeEnum.WATERHEATINGCOIL = { type: 3, value: "WATERHEATINGCOIL" }; + IfcCoilTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCoilTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcCoilTypeEnum = IfcCoilTypeEnum; + class IfcColumnTypeEnum { } - IFC2X32.IfcRelAssociatesMaterial = IfcRelAssociatesMaterial; - class IfcRelAssociatesProfileProperties extends IfcRelAssociates { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingProfileProperties, ProfileSectionLocation, ProfileOrientation) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingProfileProperties = RelatingProfileProperties; - this.ProfileSectionLocation = ProfileSectionLocation; - this.ProfileOrientation = ProfileOrientation; - this.type = 2851387026; - } + IfcColumnTypeEnum.COLUMN = { type: 3, value: "COLUMN" }; + IfcColumnTypeEnum.PILASTER = { type: 3, value: "PILASTER" }; + IfcColumnTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcColumnTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcColumnTypeEnum = IfcColumnTypeEnum; + class IfcCommunicationsApplianceTypeEnum { } - IFC2X32.IfcRelAssociatesProfileProperties = IfcRelAssociatesProfileProperties; - class IfcRelConnects extends IfcRelationship { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.type = 826625072; - } + IfcCommunicationsApplianceTypeEnum.ANTENNA = { type: 3, value: "ANTENNA" }; + IfcCommunicationsApplianceTypeEnum.COMPUTER = { type: 3, value: "COMPUTER" }; + IfcCommunicationsApplianceTypeEnum.FAX = { type: 3, value: "FAX" }; + IfcCommunicationsApplianceTypeEnum.GATEWAY = { type: 3, value: "GATEWAY" }; + IfcCommunicationsApplianceTypeEnum.MODEM = { type: 3, value: "MODEM" }; + IfcCommunicationsApplianceTypeEnum.NETWORKAPPLIANCE = { type: 3, value: "NETWORKAPPLIANCE" }; + IfcCommunicationsApplianceTypeEnum.NETWORKBRIDGE = { type: 3, value: "NETWORKBRIDGE" }; + IfcCommunicationsApplianceTypeEnum.NETWORKHUB = { type: 3, value: "NETWORKHUB" }; + IfcCommunicationsApplianceTypeEnum.PRINTER = { type: 3, value: "PRINTER" }; + IfcCommunicationsApplianceTypeEnum.REPEATER = { type: 3, value: "REPEATER" }; + IfcCommunicationsApplianceTypeEnum.ROUTER = { type: 3, value: "ROUTER" }; + IfcCommunicationsApplianceTypeEnum.SCANNER = { type: 3, value: "SCANNER" }; + IfcCommunicationsApplianceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCommunicationsApplianceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcCommunicationsApplianceTypeEnum = IfcCommunicationsApplianceTypeEnum; + class IfcComplexPropertyTemplateTypeEnum { } - IFC2X32.IfcRelConnects = IfcRelConnects; - class IfcRelConnectsElements extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ConnectionGeometry = ConnectionGeometry; - this.RelatingElement = RelatingElement; - this.RelatedElement = RelatedElement; - this.type = 1204542856; - } + IfcComplexPropertyTemplateTypeEnum.P_COMPLEX = { type: 3, value: "P_COMPLEX" }; + IfcComplexPropertyTemplateTypeEnum.Q_COMPLEX = { type: 3, value: "Q_COMPLEX" }; + IFC42.IfcComplexPropertyTemplateTypeEnum = IfcComplexPropertyTemplateTypeEnum; + class IfcCompressorTypeEnum { } - IFC2X32.IfcRelConnectsElements = IfcRelConnectsElements; - class IfcRelConnectsPathElements extends IfcRelConnectsElements { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement, RelatingPriorities, RelatedPriorities, RelatedConnectionType, RelatingConnectionType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ConnectionGeometry = ConnectionGeometry; - this.RelatingElement = RelatingElement; - this.RelatedElement = RelatedElement; - this.RelatingPriorities = RelatingPriorities; - this.RelatedPriorities = RelatedPriorities; - this.RelatedConnectionType = RelatedConnectionType; - this.RelatingConnectionType = RelatingConnectionType; - this.type = 3945020480; - } + IfcCompressorTypeEnum.DYNAMIC = { type: 3, value: "DYNAMIC" }; + IfcCompressorTypeEnum.RECIPROCATING = { type: 3, value: "RECIPROCATING" }; + IfcCompressorTypeEnum.ROTARY = { type: 3, value: "ROTARY" }; + IfcCompressorTypeEnum.SCROLL = { type: 3, value: "SCROLL" }; + IfcCompressorTypeEnum.TROCHOIDAL = { type: 3, value: "TROCHOIDAL" }; + IfcCompressorTypeEnum.SINGLESTAGE = { type: 3, value: "SINGLESTAGE" }; + IfcCompressorTypeEnum.BOOSTER = { type: 3, value: "BOOSTER" }; + IfcCompressorTypeEnum.OPENTYPE = { type: 3, value: "OPENTYPE" }; + IfcCompressorTypeEnum.HERMETIC = { type: 3, value: "HERMETIC" }; + IfcCompressorTypeEnum.SEMIHERMETIC = { type: 3, value: "SEMIHERMETIC" }; + IfcCompressorTypeEnum.WELDEDSHELLHERMETIC = { type: 3, value: "WELDEDSHELLHERMETIC" }; + IfcCompressorTypeEnum.ROLLINGPISTON = { type: 3, value: "ROLLINGPISTON" }; + IfcCompressorTypeEnum.ROTARYVANE = { type: 3, value: "ROTARYVANE" }; + IfcCompressorTypeEnum.SINGLESCREW = { type: 3, value: "SINGLESCREW" }; + IfcCompressorTypeEnum.TWINSCREW = { type: 3, value: "TWINSCREW" }; + IfcCompressorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCompressorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcCompressorTypeEnum = IfcCompressorTypeEnum; + class IfcCondenserTypeEnum { } - IFC2X32.IfcRelConnectsPathElements = IfcRelConnectsPathElements; - class IfcRelConnectsPortToElement extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingPort, RelatedElement) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingPort = RelatingPort; - this.RelatedElement = RelatedElement; - this.type = 4201705270; - } + IfcCondenserTypeEnum.AIRCOOLED = { type: 3, value: "AIRCOOLED" }; + IfcCondenserTypeEnum.EVAPORATIVECOOLED = { type: 3, value: "EVAPORATIVECOOLED" }; + IfcCondenserTypeEnum.WATERCOOLED = { type: 3, value: "WATERCOOLED" }; + IfcCondenserTypeEnum.WATERCOOLEDBRAZEDPLATE = { type: 3, value: "WATERCOOLEDBRAZEDPLATE" }; + IfcCondenserTypeEnum.WATERCOOLEDSHELLCOIL = { type: 3, value: "WATERCOOLEDSHELLCOIL" }; + IfcCondenserTypeEnum.WATERCOOLEDSHELLTUBE = { type: 3, value: "WATERCOOLEDSHELLTUBE" }; + IfcCondenserTypeEnum.WATERCOOLEDTUBEINTUBE = { type: 3, value: "WATERCOOLEDTUBEINTUBE" }; + IfcCondenserTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCondenserTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcCondenserTypeEnum = IfcCondenserTypeEnum; + class IfcConnectionTypeEnum { } - IFC2X32.IfcRelConnectsPortToElement = IfcRelConnectsPortToElement; - class IfcRelConnectsPorts extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingPort, RelatedPort, RealizingElement) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingPort = RelatingPort; - this.RelatedPort = RelatedPort; - this.RealizingElement = RealizingElement; - this.type = 3190031847; - } + IfcConnectionTypeEnum.ATPATH = { type: 3, value: "ATPATH" }; + IfcConnectionTypeEnum.ATSTART = { type: 3, value: "ATSTART" }; + IfcConnectionTypeEnum.ATEND = { type: 3, value: "ATEND" }; + IfcConnectionTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcConnectionTypeEnum = IfcConnectionTypeEnum; + class IfcConstraintEnum { } - IFC2X32.IfcRelConnectsPorts = IfcRelConnectsPorts; - class IfcRelConnectsStructuralActivity extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedStructuralActivity) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingElement = RelatingElement; - this.RelatedStructuralActivity = RelatedStructuralActivity; - this.type = 2127690289; - } + IfcConstraintEnum.HARD = { type: 3, value: "HARD" }; + IfcConstraintEnum.SOFT = { type: 3, value: "SOFT" }; + IfcConstraintEnum.ADVISORY = { type: 3, value: "ADVISORY" }; + IfcConstraintEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcConstraintEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcConstraintEnum = IfcConstraintEnum; + class IfcConstructionEquipmentResourceTypeEnum { } - IFC2X32.IfcRelConnectsStructuralActivity = IfcRelConnectsStructuralActivity; - class IfcRelConnectsStructuralElement extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedStructuralMember) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingElement = RelatingElement; - this.RelatedStructuralMember = RelatedStructuralMember; - this.type = 3912681535; - } + IfcConstructionEquipmentResourceTypeEnum.DEMOLISHING = { type: 3, value: "DEMOLISHING" }; + IfcConstructionEquipmentResourceTypeEnum.EARTHMOVING = { type: 3, value: "EARTHMOVING" }; + IfcConstructionEquipmentResourceTypeEnum.ERECTING = { type: 3, value: "ERECTING" }; + IfcConstructionEquipmentResourceTypeEnum.HEATING = { type: 3, value: "HEATING" }; + IfcConstructionEquipmentResourceTypeEnum.LIGHTING = { type: 3, value: "LIGHTING" }; + IfcConstructionEquipmentResourceTypeEnum.PAVING = { type: 3, value: "PAVING" }; + IfcConstructionEquipmentResourceTypeEnum.PUMPING = { type: 3, value: "PUMPING" }; + IfcConstructionEquipmentResourceTypeEnum.TRANSPORTING = { type: 3, value: "TRANSPORTING" }; + IfcConstructionEquipmentResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcConstructionEquipmentResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcConstructionEquipmentResourceTypeEnum = IfcConstructionEquipmentResourceTypeEnum; + class IfcConstructionMaterialResourceTypeEnum { } - IFC2X32.IfcRelConnectsStructuralElement = IfcRelConnectsStructuralElement; - class IfcRelConnectsStructuralMember extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingStructuralMember = RelatingStructuralMember; - this.RelatedStructuralConnection = RelatedStructuralConnection; - this.AppliedCondition = AppliedCondition; - this.AdditionalConditions = AdditionalConditions; - this.SupportedLength = SupportedLength; - this.ConditionCoordinateSystem = ConditionCoordinateSystem; - this.type = 1638771189; - } + IfcConstructionMaterialResourceTypeEnum.AGGREGATES = { type: 3, value: "AGGREGATES" }; + IfcConstructionMaterialResourceTypeEnum.CONCRETE = { type: 3, value: "CONCRETE" }; + IfcConstructionMaterialResourceTypeEnum.DRYWALL = { type: 3, value: "DRYWALL" }; + IfcConstructionMaterialResourceTypeEnum.FUEL = { type: 3, value: "FUEL" }; + IfcConstructionMaterialResourceTypeEnum.GYPSUM = { type: 3, value: "GYPSUM" }; + IfcConstructionMaterialResourceTypeEnum.MASONRY = { type: 3, value: "MASONRY" }; + IfcConstructionMaterialResourceTypeEnum.METAL = { type: 3, value: "METAL" }; + IfcConstructionMaterialResourceTypeEnum.PLASTIC = { type: 3, value: "PLASTIC" }; + IfcConstructionMaterialResourceTypeEnum.WOOD = { type: 3, value: "WOOD" }; + IfcConstructionMaterialResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IfcConstructionMaterialResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IFC42.IfcConstructionMaterialResourceTypeEnum = IfcConstructionMaterialResourceTypeEnum; + class IfcConstructionProductResourceTypeEnum { } - IFC2X32.IfcRelConnectsStructuralMember = IfcRelConnectsStructuralMember; - class IfcRelConnectsWithEccentricity extends IfcRelConnectsStructuralMember { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem, ConnectionConstraint) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingStructuralMember = RelatingStructuralMember; - this.RelatedStructuralConnection = RelatedStructuralConnection; - this.AppliedCondition = AppliedCondition; - this.AdditionalConditions = AdditionalConditions; - this.SupportedLength = SupportedLength; - this.ConditionCoordinateSystem = ConditionCoordinateSystem; - this.ConnectionConstraint = ConnectionConstraint; - this.type = 504942748; - } + IfcConstructionProductResourceTypeEnum.ASSEMBLY = { type: 3, value: "ASSEMBLY" }; + IfcConstructionProductResourceTypeEnum.FORMWORK = { type: 3, value: "FORMWORK" }; + IfcConstructionProductResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcConstructionProductResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcConstructionProductResourceTypeEnum = IfcConstructionProductResourceTypeEnum; + class IfcControllerTypeEnum { } - IFC2X32.IfcRelConnectsWithEccentricity = IfcRelConnectsWithEccentricity; - class IfcRelConnectsWithRealizingElements extends IfcRelConnectsElements { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement, RealizingElements, ConnectionType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ConnectionGeometry = ConnectionGeometry; - this.RelatingElement = RelatingElement; - this.RelatedElement = RelatedElement; - this.RealizingElements = RealizingElements; - this.ConnectionType = ConnectionType; - this.type = 3678494232; - } + IfcControllerTypeEnum.FLOATING = { type: 3, value: "FLOATING" }; + IfcControllerTypeEnum.PROGRAMMABLE = { type: 3, value: "PROGRAMMABLE" }; + IfcControllerTypeEnum.PROPORTIONAL = { type: 3, value: "PROPORTIONAL" }; + IfcControllerTypeEnum.MULTIPOSITION = { type: 3, value: "MULTIPOSITION" }; + IfcControllerTypeEnum.TWOPOSITION = { type: 3, value: "TWOPOSITION" }; + IfcControllerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcControllerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcControllerTypeEnum = IfcControllerTypeEnum; + class IfcCooledBeamTypeEnum { } - IFC2X32.IfcRelConnectsWithRealizingElements = IfcRelConnectsWithRealizingElements; - class IfcRelContainedInSpatialStructure extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedElements, RelatingStructure) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedElements = RelatedElements; - this.RelatingStructure = RelatingStructure; - this.type = 3242617779; - } + IfcCooledBeamTypeEnum.ACTIVE = { type: 3, value: "ACTIVE" }; + IfcCooledBeamTypeEnum.PASSIVE = { type: 3, value: "PASSIVE" }; + IfcCooledBeamTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCooledBeamTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcCooledBeamTypeEnum = IfcCooledBeamTypeEnum; + class IfcCoolingTowerTypeEnum { } - IFC2X32.IfcRelContainedInSpatialStructure = IfcRelContainedInSpatialStructure; - class IfcRelCoversBldgElements extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingBuildingElement, RelatedCoverings) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingBuildingElement = RelatingBuildingElement; - this.RelatedCoverings = RelatedCoverings; - this.type = 886880790; - } + IfcCoolingTowerTypeEnum.NATURALDRAFT = { type: 3, value: "NATURALDRAFT" }; + IfcCoolingTowerTypeEnum.MECHANICALINDUCEDDRAFT = { type: 3, value: "MECHANICALINDUCEDDRAFT" }; + IfcCoolingTowerTypeEnum.MECHANICALFORCEDDRAFT = { type: 3, value: "MECHANICALFORCEDDRAFT" }; + IfcCoolingTowerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCoolingTowerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcCoolingTowerTypeEnum = IfcCoolingTowerTypeEnum; + class IfcCostItemTypeEnum { } - IFC2X32.IfcRelCoversBldgElements = IfcRelCoversBldgElements; - class IfcRelCoversSpaces extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedSpace, RelatedCoverings) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedSpace = RelatedSpace; - this.RelatedCoverings = RelatedCoverings; - this.type = 2802773753; - } + IfcCostItemTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCostItemTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcCostItemTypeEnum = IfcCostItemTypeEnum; + class IfcCostScheduleTypeEnum { } - IFC2X32.IfcRelCoversSpaces = IfcRelCoversSpaces; - class IfcRelDecomposes extends IfcRelationship { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingObject = RelatingObject; - this.RelatedObjects = RelatedObjects; - this.type = 2551354335; - } + IfcCostScheduleTypeEnum.BUDGET = { type: 3, value: "BUDGET" }; + IfcCostScheduleTypeEnum.COSTPLAN = { type: 3, value: "COSTPLAN" }; + IfcCostScheduleTypeEnum.ESTIMATE = { type: 3, value: "ESTIMATE" }; + IfcCostScheduleTypeEnum.TENDER = { type: 3, value: "TENDER" }; + IfcCostScheduleTypeEnum.PRICEDBILLOFQUANTITIES = { type: 3, value: "PRICEDBILLOFQUANTITIES" }; + IfcCostScheduleTypeEnum.UNPRICEDBILLOFQUANTITIES = { type: 3, value: "UNPRICEDBILLOFQUANTITIES" }; + IfcCostScheduleTypeEnum.SCHEDULEOFRATES = { type: 3, value: "SCHEDULEOFRATES" }; + IfcCostScheduleTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCostScheduleTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcCostScheduleTypeEnum = IfcCostScheduleTypeEnum; + class IfcCoveringTypeEnum { } - IFC2X32.IfcRelDecomposes = IfcRelDecomposes; - class IfcRelDefines extends IfcRelationship { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.type = 693640335; - } + IfcCoveringTypeEnum.CEILING = { type: 3, value: "CEILING" }; + IfcCoveringTypeEnum.FLOORING = { type: 3, value: "FLOORING" }; + IfcCoveringTypeEnum.CLADDING = { type: 3, value: "CLADDING" }; + IfcCoveringTypeEnum.ROOFING = { type: 3, value: "ROOFING" }; + IfcCoveringTypeEnum.MOLDING = { type: 3, value: "MOLDING" }; + IfcCoveringTypeEnum.SKIRTINGBOARD = { type: 3, value: "SKIRTINGBOARD" }; + IfcCoveringTypeEnum.INSULATION = { type: 3, value: "INSULATION" }; + IfcCoveringTypeEnum.MEMBRANE = { type: 3, value: "MEMBRANE" }; + IfcCoveringTypeEnum.SLEEVING = { type: 3, value: "SLEEVING" }; + IfcCoveringTypeEnum.WRAPPING = { type: 3, value: "WRAPPING" }; + IfcCoveringTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCoveringTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcCoveringTypeEnum = IfcCoveringTypeEnum; + class IfcCrewResourceTypeEnum { } - IFC2X32.IfcRelDefines = IfcRelDefines; - class IfcRelDefinesByProperties extends IfcRelDefines { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingPropertyDefinition) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingPropertyDefinition = RelatingPropertyDefinition; - this.type = 4186316022; - } + IfcCrewResourceTypeEnum.OFFICE = { type: 3, value: "OFFICE" }; + IfcCrewResourceTypeEnum.SITE = { type: 3, value: "SITE" }; + IfcCrewResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCrewResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcCrewResourceTypeEnum = IfcCrewResourceTypeEnum; + class IfcCurtainWallTypeEnum { } - IFC2X32.IfcRelDefinesByProperties = IfcRelDefinesByProperties; - class IfcRelDefinesByType extends IfcRelDefines { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingType = RelatingType; - this.type = 781010003; - } + IfcCurtainWallTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCurtainWallTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcCurtainWallTypeEnum = IfcCurtainWallTypeEnum; + class IfcCurveInterpolationEnum { } - IFC2X32.IfcRelDefinesByType = IfcRelDefinesByType; - class IfcRelFillsElement extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingOpeningElement, RelatedBuildingElement) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingOpeningElement = RelatingOpeningElement; - this.RelatedBuildingElement = RelatedBuildingElement; - this.type = 3940055652; - } + IfcCurveInterpolationEnum.LINEAR = { type: 3, value: "LINEAR" }; + IfcCurveInterpolationEnum.LOG_LINEAR = { type: 3, value: "LOG_LINEAR" }; + IfcCurveInterpolationEnum.LOG_LOG = { type: 3, value: "LOG_LOG" }; + IfcCurveInterpolationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcCurveInterpolationEnum = IfcCurveInterpolationEnum; + class IfcDamperTypeEnum { } - IFC2X32.IfcRelFillsElement = IfcRelFillsElement; - class IfcRelFlowControlElements extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedControlElements, RelatingFlowElement) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedControlElements = RelatedControlElements; - this.RelatingFlowElement = RelatingFlowElement; - this.type = 279856033; - } + IfcDamperTypeEnum.BACKDRAFTDAMPER = { type: 3, value: "BACKDRAFTDAMPER" }; + IfcDamperTypeEnum.BALANCINGDAMPER = { type: 3, value: "BALANCINGDAMPER" }; + IfcDamperTypeEnum.BLASTDAMPER = { type: 3, value: "BLASTDAMPER" }; + IfcDamperTypeEnum.CONTROLDAMPER = { type: 3, value: "CONTROLDAMPER" }; + IfcDamperTypeEnum.FIREDAMPER = { type: 3, value: "FIREDAMPER" }; + IfcDamperTypeEnum.FIRESMOKEDAMPER = { type: 3, value: "FIRESMOKEDAMPER" }; + IfcDamperTypeEnum.FUMEHOODEXHAUST = { type: 3, value: "FUMEHOODEXHAUST" }; + IfcDamperTypeEnum.GRAVITYDAMPER = { type: 3, value: "GRAVITYDAMPER" }; + IfcDamperTypeEnum.GRAVITYRELIEFDAMPER = { type: 3, value: "GRAVITYRELIEFDAMPER" }; + IfcDamperTypeEnum.RELIEFDAMPER = { type: 3, value: "RELIEFDAMPER" }; + IfcDamperTypeEnum.SMOKEDAMPER = { type: 3, value: "SMOKEDAMPER" }; + IfcDamperTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDamperTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcDamperTypeEnum = IfcDamperTypeEnum; + class IfcDataOriginEnum { + } + IfcDataOriginEnum.MEASURED = { type: 3, value: "MEASURED" }; + IfcDataOriginEnum.PREDICTED = { type: 3, value: "PREDICTED" }; + IfcDataOriginEnum.SIMULATED = { type: 3, value: "SIMULATED" }; + IfcDataOriginEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDataOriginEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcDataOriginEnum = IfcDataOriginEnum; + class IfcDerivedUnitEnum { } - IFC2X32.IfcRelFlowControlElements = IfcRelFlowControlElements; - class IfcRelInteractionRequirements extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, DailyInteraction, ImportanceRating, LocationOfInteraction, RelatedSpaceProgram, RelatingSpaceProgram) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.DailyInteraction = DailyInteraction; - this.ImportanceRating = ImportanceRating; - this.LocationOfInteraction = LocationOfInteraction; - this.RelatedSpaceProgram = RelatedSpaceProgram; - this.RelatingSpaceProgram = RelatingSpaceProgram; - this.type = 4189434867; - } + IfcDerivedUnitEnum.ANGULARVELOCITYUNIT = { type: 3, value: "ANGULARVELOCITYUNIT" }; + IfcDerivedUnitEnum.AREADENSITYUNIT = { type: 3, value: "AREADENSITYUNIT" }; + IfcDerivedUnitEnum.COMPOUNDPLANEANGLEUNIT = { type: 3, value: "COMPOUNDPLANEANGLEUNIT" }; + IfcDerivedUnitEnum.DYNAMICVISCOSITYUNIT = { type: 3, value: "DYNAMICVISCOSITYUNIT" }; + IfcDerivedUnitEnum.HEATFLUXDENSITYUNIT = { type: 3, value: "HEATFLUXDENSITYUNIT" }; + IfcDerivedUnitEnum.INTEGERCOUNTRATEUNIT = { type: 3, value: "INTEGERCOUNTRATEUNIT" }; + IfcDerivedUnitEnum.ISOTHERMALMOISTURECAPACITYUNIT = { type: 3, value: "ISOTHERMALMOISTURECAPACITYUNIT" }; + IfcDerivedUnitEnum.KINEMATICVISCOSITYUNIT = { type: 3, value: "KINEMATICVISCOSITYUNIT" }; + IfcDerivedUnitEnum.LINEARVELOCITYUNIT = { type: 3, value: "LINEARVELOCITYUNIT" }; + IfcDerivedUnitEnum.MASSDENSITYUNIT = { type: 3, value: "MASSDENSITYUNIT" }; + IfcDerivedUnitEnum.MASSFLOWRATEUNIT = { type: 3, value: "MASSFLOWRATEUNIT" }; + IfcDerivedUnitEnum.MOISTUREDIFFUSIVITYUNIT = { type: 3, value: "MOISTUREDIFFUSIVITYUNIT" }; + IfcDerivedUnitEnum.MOLECULARWEIGHTUNIT = { type: 3, value: "MOLECULARWEIGHTUNIT" }; + IfcDerivedUnitEnum.SPECIFICHEATCAPACITYUNIT = { type: 3, value: "SPECIFICHEATCAPACITYUNIT" }; + IfcDerivedUnitEnum.THERMALADMITTANCEUNIT = { type: 3, value: "THERMALADMITTANCEUNIT" }; + IfcDerivedUnitEnum.THERMALCONDUCTANCEUNIT = { type: 3, value: "THERMALCONDUCTANCEUNIT" }; + IfcDerivedUnitEnum.THERMALRESISTANCEUNIT = { type: 3, value: "THERMALRESISTANCEUNIT" }; + IfcDerivedUnitEnum.THERMALTRANSMITTANCEUNIT = { type: 3, value: "THERMALTRANSMITTANCEUNIT" }; + IfcDerivedUnitEnum.VAPORPERMEABILITYUNIT = { type: 3, value: "VAPORPERMEABILITYUNIT" }; + IfcDerivedUnitEnum.VOLUMETRICFLOWRATEUNIT = { type: 3, value: "VOLUMETRICFLOWRATEUNIT" }; + IfcDerivedUnitEnum.ROTATIONALFREQUENCYUNIT = { type: 3, value: "ROTATIONALFREQUENCYUNIT" }; + IfcDerivedUnitEnum.TORQUEUNIT = { type: 3, value: "TORQUEUNIT" }; + IfcDerivedUnitEnum.MOMENTOFINERTIAUNIT = { type: 3, value: "MOMENTOFINERTIAUNIT" }; + IfcDerivedUnitEnum.LINEARMOMENTUNIT = { type: 3, value: "LINEARMOMENTUNIT" }; + IfcDerivedUnitEnum.LINEARFORCEUNIT = { type: 3, value: "LINEARFORCEUNIT" }; + IfcDerivedUnitEnum.PLANARFORCEUNIT = { type: 3, value: "PLANARFORCEUNIT" }; + IfcDerivedUnitEnum.MODULUSOFELASTICITYUNIT = { type: 3, value: "MODULUSOFELASTICITYUNIT" }; + IfcDerivedUnitEnum.SHEARMODULUSUNIT = { type: 3, value: "SHEARMODULUSUNIT" }; + IfcDerivedUnitEnum.LINEARSTIFFNESSUNIT = { type: 3, value: "LINEARSTIFFNESSUNIT" }; + IfcDerivedUnitEnum.ROTATIONALSTIFFNESSUNIT = { type: 3, value: "ROTATIONALSTIFFNESSUNIT" }; + IfcDerivedUnitEnum.MODULUSOFSUBGRADEREACTIONUNIT = { type: 3, value: "MODULUSOFSUBGRADEREACTIONUNIT" }; + IfcDerivedUnitEnum.ACCELERATIONUNIT = { type: 3, value: "ACCELERATIONUNIT" }; + IfcDerivedUnitEnum.CURVATUREUNIT = { type: 3, value: "CURVATUREUNIT" }; + IfcDerivedUnitEnum.HEATINGVALUEUNIT = { type: 3, value: "HEATINGVALUEUNIT" }; + IfcDerivedUnitEnum.IONCONCENTRATIONUNIT = { type: 3, value: "IONCONCENTRATIONUNIT" }; + IfcDerivedUnitEnum.LUMINOUSINTENSITYDISTRIBUTIONUNIT = { type: 3, value: "LUMINOUSINTENSITYDISTRIBUTIONUNIT" }; + IfcDerivedUnitEnum.MASSPERLENGTHUNIT = { type: 3, value: "MASSPERLENGTHUNIT" }; + IfcDerivedUnitEnum.MODULUSOFLINEARSUBGRADEREACTIONUNIT = { type: 3, value: "MODULUSOFLINEARSUBGRADEREACTIONUNIT" }; + IfcDerivedUnitEnum.MODULUSOFROTATIONALSUBGRADEREACTIONUNIT = { type: 3, value: "MODULUSOFROTATIONALSUBGRADEREACTIONUNIT" }; + IfcDerivedUnitEnum.PHUNIT = { type: 3, value: "PHUNIT" }; + IfcDerivedUnitEnum.ROTATIONALMASSUNIT = { type: 3, value: "ROTATIONALMASSUNIT" }; + IfcDerivedUnitEnum.SECTIONAREAINTEGRALUNIT = { type: 3, value: "SECTIONAREAINTEGRALUNIT" }; + IfcDerivedUnitEnum.SECTIONMODULUSUNIT = { type: 3, value: "SECTIONMODULUSUNIT" }; + IfcDerivedUnitEnum.SOUNDPOWERLEVELUNIT = { type: 3, value: "SOUNDPOWERLEVELUNIT" }; + IfcDerivedUnitEnum.SOUNDPOWERUNIT = { type: 3, value: "SOUNDPOWERUNIT" }; + IfcDerivedUnitEnum.SOUNDPRESSURELEVELUNIT = { type: 3, value: "SOUNDPRESSURELEVELUNIT" }; + IfcDerivedUnitEnum.SOUNDPRESSUREUNIT = { type: 3, value: "SOUNDPRESSUREUNIT" }; + IfcDerivedUnitEnum.TEMPERATUREGRADIENTUNIT = { type: 3, value: "TEMPERATUREGRADIENTUNIT" }; + IfcDerivedUnitEnum.TEMPERATURERATEOFCHANGEUNIT = { type: 3, value: "TEMPERATURERATEOFCHANGEUNIT" }; + IfcDerivedUnitEnum.THERMALEXPANSIONCOEFFICIENTUNIT = { type: 3, value: "THERMALEXPANSIONCOEFFICIENTUNIT" }; + IfcDerivedUnitEnum.WARPINGCONSTANTUNIT = { type: 3, value: "WARPINGCONSTANTUNIT" }; + IfcDerivedUnitEnum.WARPINGMOMENTUNIT = { type: 3, value: "WARPINGMOMENTUNIT" }; + IfcDerivedUnitEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IFC42.IfcDerivedUnitEnum = IfcDerivedUnitEnum; + class IfcDirectionSenseEnum { } - IFC2X32.IfcRelInteractionRequirements = IfcRelInteractionRequirements; - class IfcRelNests extends IfcRelDecomposes { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingObject = RelatingObject; - this.RelatedObjects = RelatedObjects; - this.type = 3268803585; - } + IfcDirectionSenseEnum.POSITIVE = { type: 3, value: "POSITIVE" }; + IfcDirectionSenseEnum.NEGATIVE = { type: 3, value: "NEGATIVE" }; + IFC42.IfcDirectionSenseEnum = IfcDirectionSenseEnum; + class IfcDiscreteAccessoryTypeEnum { } - IFC2X32.IfcRelNests = IfcRelNests; - class IfcRelOccupiesSpaces extends IfcRelAssignsToActor { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingActor, ActingRole) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingActor, ActingRole); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.RelatingActor = RelatingActor; - this.ActingRole = ActingRole; - this.type = 2051452291; - } + IfcDiscreteAccessoryTypeEnum.ANCHORPLATE = { type: 3, value: "ANCHORPLATE" }; + IfcDiscreteAccessoryTypeEnum.BRACKET = { type: 3, value: "BRACKET" }; + IfcDiscreteAccessoryTypeEnum.SHOE = { type: 3, value: "SHOE" }; + IfcDiscreteAccessoryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDiscreteAccessoryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcDiscreteAccessoryTypeEnum = IfcDiscreteAccessoryTypeEnum; + class IfcDistributionChamberElementTypeEnum { } - IFC2X32.IfcRelOccupiesSpaces = IfcRelOccupiesSpaces; - class IfcRelOverridesProperties extends IfcRelDefinesByProperties { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingPropertyDefinition, OverridingProperties) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingPropertyDefinition); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingPropertyDefinition = RelatingPropertyDefinition; - this.OverridingProperties = OverridingProperties; - this.type = 202636808; - } + IfcDistributionChamberElementTypeEnum.FORMEDDUCT = { type: 3, value: "FORMEDDUCT" }; + IfcDistributionChamberElementTypeEnum.INSPECTIONCHAMBER = { type: 3, value: "INSPECTIONCHAMBER" }; + IfcDistributionChamberElementTypeEnum.INSPECTIONPIT = { type: 3, value: "INSPECTIONPIT" }; + IfcDistributionChamberElementTypeEnum.MANHOLE = { type: 3, value: "MANHOLE" }; + IfcDistributionChamberElementTypeEnum.METERCHAMBER = { type: 3, value: "METERCHAMBER" }; + IfcDistributionChamberElementTypeEnum.SUMP = { type: 3, value: "SUMP" }; + IfcDistributionChamberElementTypeEnum.TRENCH = { type: 3, value: "TRENCH" }; + IfcDistributionChamberElementTypeEnum.VALVECHAMBER = { type: 3, value: "VALVECHAMBER" }; + IfcDistributionChamberElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDistributionChamberElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcDistributionChamberElementTypeEnum = IfcDistributionChamberElementTypeEnum; + class IfcDistributionPortTypeEnum { } - IFC2X32.IfcRelOverridesProperties = IfcRelOverridesProperties; - class IfcRelProjectsElement extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedFeatureElement) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingElement = RelatingElement; - this.RelatedFeatureElement = RelatedFeatureElement; - this.type = 750771296; - } + IfcDistributionPortTypeEnum.CABLE = { type: 3, value: "CABLE" }; + IfcDistributionPortTypeEnum.CABLECARRIER = { type: 3, value: "CABLECARRIER" }; + IfcDistributionPortTypeEnum.DUCT = { type: 3, value: "DUCT" }; + IfcDistributionPortTypeEnum.PIPE = { type: 3, value: "PIPE" }; + IfcDistributionPortTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDistributionPortTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcDistributionPortTypeEnum = IfcDistributionPortTypeEnum; + class IfcDistributionSystemEnum { } - IFC2X32.IfcRelProjectsElement = IfcRelProjectsElement; - class IfcRelReferencedInSpatialStructure extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedElements, RelatingStructure) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedElements = RelatedElements; - this.RelatingStructure = RelatingStructure; - this.type = 1245217292; - } + IfcDistributionSystemEnum.AIRCONDITIONING = { type: 3, value: "AIRCONDITIONING" }; + IfcDistributionSystemEnum.AUDIOVISUAL = { type: 3, value: "AUDIOVISUAL" }; + IfcDistributionSystemEnum.CHEMICAL = { type: 3, value: "CHEMICAL" }; + IfcDistributionSystemEnum.CHILLEDWATER = { type: 3, value: "CHILLEDWATER" }; + IfcDistributionSystemEnum.COMMUNICATION = { type: 3, value: "COMMUNICATION" }; + IfcDistributionSystemEnum.COMPRESSEDAIR = { type: 3, value: "COMPRESSEDAIR" }; + IfcDistributionSystemEnum.CONDENSERWATER = { type: 3, value: "CONDENSERWATER" }; + IfcDistributionSystemEnum.CONTROL = { type: 3, value: "CONTROL" }; + IfcDistributionSystemEnum.CONVEYING = { type: 3, value: "CONVEYING" }; + IfcDistributionSystemEnum.DATA = { type: 3, value: "DATA" }; + IfcDistributionSystemEnum.DISPOSAL = { type: 3, value: "DISPOSAL" }; + IfcDistributionSystemEnum.DOMESTICCOLDWATER = { type: 3, value: "DOMESTICCOLDWATER" }; + IfcDistributionSystemEnum.DOMESTICHOTWATER = { type: 3, value: "DOMESTICHOTWATER" }; + IfcDistributionSystemEnum.DRAINAGE = { type: 3, value: "DRAINAGE" }; + IfcDistributionSystemEnum.EARTHING = { type: 3, value: "EARTHING" }; + IfcDistributionSystemEnum.ELECTRICAL = { type: 3, value: "ELECTRICAL" }; + IfcDistributionSystemEnum.ELECTROACOUSTIC = { type: 3, value: "ELECTROACOUSTIC" }; + IfcDistributionSystemEnum.EXHAUST = { type: 3, value: "EXHAUST" }; + IfcDistributionSystemEnum.FIREPROTECTION = { type: 3, value: "FIREPROTECTION" }; + IfcDistributionSystemEnum.FUEL = { type: 3, value: "FUEL" }; + IfcDistributionSystemEnum.GAS = { type: 3, value: "GAS" }; + IfcDistributionSystemEnum.HAZARDOUS = { type: 3, value: "HAZARDOUS" }; + IfcDistributionSystemEnum.HEATING = { type: 3, value: "HEATING" }; + IfcDistributionSystemEnum.LIGHTING = { type: 3, value: "LIGHTING" }; + IfcDistributionSystemEnum.LIGHTNINGPROTECTION = { type: 3, value: "LIGHTNINGPROTECTION" }; + IfcDistributionSystemEnum.MUNICIPALSOLIDWASTE = { type: 3, value: "MUNICIPALSOLIDWASTE" }; + IfcDistributionSystemEnum.OIL = { type: 3, value: "OIL" }; + IfcDistributionSystemEnum.OPERATIONAL = { type: 3, value: "OPERATIONAL" }; + IfcDistributionSystemEnum.POWERGENERATION = { type: 3, value: "POWERGENERATION" }; + IfcDistributionSystemEnum.RAINWATER = { type: 3, value: "RAINWATER" }; + IfcDistributionSystemEnum.REFRIGERATION = { type: 3, value: "REFRIGERATION" }; + IfcDistributionSystemEnum.SECURITY = { type: 3, value: "SECURITY" }; + IfcDistributionSystemEnum.SEWAGE = { type: 3, value: "SEWAGE" }; + IfcDistributionSystemEnum.SIGNAL = { type: 3, value: "SIGNAL" }; + IfcDistributionSystemEnum.STORMWATER = { type: 3, value: "STORMWATER" }; + IfcDistributionSystemEnum.TELEPHONE = { type: 3, value: "TELEPHONE" }; + IfcDistributionSystemEnum.TV = { type: 3, value: "TV" }; + IfcDistributionSystemEnum.VACUUM = { type: 3, value: "VACUUM" }; + IfcDistributionSystemEnum.VENT = { type: 3, value: "VENT" }; + IfcDistributionSystemEnum.VENTILATION = { type: 3, value: "VENTILATION" }; + IfcDistributionSystemEnum.WASTEWATER = { type: 3, value: "WASTEWATER" }; + IfcDistributionSystemEnum.WATERSUPPLY = { type: 3, value: "WATERSUPPLY" }; + IfcDistributionSystemEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDistributionSystemEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcDistributionSystemEnum = IfcDistributionSystemEnum; + class IfcDocumentConfidentialityEnum { } - IFC2X32.IfcRelReferencedInSpatialStructure = IfcRelReferencedInSpatialStructure; - class IfcRelSchedulesCostItems extends IfcRelAssignsToControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.RelatingControl = RelatingControl; - this.type = 1058617721; - } + IfcDocumentConfidentialityEnum.PUBLIC = { type: 3, value: "PUBLIC" }; + IfcDocumentConfidentialityEnum.RESTRICTED = { type: 3, value: "RESTRICTED" }; + IfcDocumentConfidentialityEnum.CONFIDENTIAL = { type: 3, value: "CONFIDENTIAL" }; + IfcDocumentConfidentialityEnum.PERSONAL = { type: 3, value: "PERSONAL" }; + IfcDocumentConfidentialityEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDocumentConfidentialityEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcDocumentConfidentialityEnum = IfcDocumentConfidentialityEnum; + class IfcDocumentStatusEnum { } - IFC2X32.IfcRelSchedulesCostItems = IfcRelSchedulesCostItems; - class IfcRelSequence extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingProcess, RelatedProcess, TimeLag, SequenceType) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingProcess = RelatingProcess; - this.RelatedProcess = RelatedProcess; - this.TimeLag = TimeLag; - this.SequenceType = SequenceType; - this.type = 4122056220; - } + IfcDocumentStatusEnum.DRAFT = { type: 3, value: "DRAFT" }; + IfcDocumentStatusEnum.FINALDRAFT = { type: 3, value: "FINALDRAFT" }; + IfcDocumentStatusEnum.FINAL = { type: 3, value: "FINAL" }; + IfcDocumentStatusEnum.REVISION = { type: 3, value: "REVISION" }; + IfcDocumentStatusEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcDocumentStatusEnum = IfcDocumentStatusEnum; + class IfcDoorPanelOperationEnum { } - IFC2X32.IfcRelSequence = IfcRelSequence; - class IfcRelServicesBuildings extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSystem, RelatedBuildings) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingSystem = RelatingSystem; - this.RelatedBuildings = RelatedBuildings; - this.type = 366585022; - } + IfcDoorPanelOperationEnum.SWINGING = { type: 3, value: "SWINGING" }; + IfcDoorPanelOperationEnum.DOUBLE_ACTING = { type: 3, value: "DOUBLE_ACTING" }; + IfcDoorPanelOperationEnum.SLIDING = { type: 3, value: "SLIDING" }; + IfcDoorPanelOperationEnum.FOLDING = { type: 3, value: "FOLDING" }; + IfcDoorPanelOperationEnum.REVOLVING = { type: 3, value: "REVOLVING" }; + IfcDoorPanelOperationEnum.ROLLINGUP = { type: 3, value: "ROLLINGUP" }; + IfcDoorPanelOperationEnum.FIXEDPANEL = { type: 3, value: "FIXEDPANEL" }; + IfcDoorPanelOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDoorPanelOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcDoorPanelOperationEnum = IfcDoorPanelOperationEnum; + class IfcDoorPanelPositionEnum { } - IFC2X32.IfcRelServicesBuildings = IfcRelServicesBuildings; - class IfcRelSpaceBoundary extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingSpace = RelatingSpace; - this.RelatedBuildingElement = RelatedBuildingElement; - this.ConnectionGeometry = ConnectionGeometry; - this.PhysicalOrVirtualBoundary = PhysicalOrVirtualBoundary; - this.InternalOrExternalBoundary = InternalOrExternalBoundary; - this.type = 3451746338; - } + IfcDoorPanelPositionEnum.LEFT = { type: 3, value: "LEFT" }; + IfcDoorPanelPositionEnum.MIDDLE = { type: 3, value: "MIDDLE" }; + IfcDoorPanelPositionEnum.RIGHT = { type: 3, value: "RIGHT" }; + IfcDoorPanelPositionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcDoorPanelPositionEnum = IfcDoorPanelPositionEnum; + class IfcDoorStyleConstructionEnum { } - IFC2X32.IfcRelSpaceBoundary = IfcRelSpaceBoundary; - class IfcRelVoidsElement extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingBuildingElement, RelatedOpeningElement) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingBuildingElement = RelatingBuildingElement; - this.RelatedOpeningElement = RelatedOpeningElement; - this.type = 1401173127; - } + IfcDoorStyleConstructionEnum.ALUMINIUM = { type: 3, value: "ALUMINIUM" }; + IfcDoorStyleConstructionEnum.HIGH_GRADE_STEEL = { type: 3, value: "HIGH_GRADE_STEEL" }; + IfcDoorStyleConstructionEnum.STEEL = { type: 3, value: "STEEL" }; + IfcDoorStyleConstructionEnum.WOOD = { type: 3, value: "WOOD" }; + IfcDoorStyleConstructionEnum.ALUMINIUM_WOOD = { type: 3, value: "ALUMINIUM_WOOD" }; + IfcDoorStyleConstructionEnum.ALUMINIUM_PLASTIC = { type: 3, value: "ALUMINIUM_PLASTIC" }; + IfcDoorStyleConstructionEnum.PLASTIC = { type: 3, value: "PLASTIC" }; + IfcDoorStyleConstructionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDoorStyleConstructionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcDoorStyleConstructionEnum = IfcDoorStyleConstructionEnum; + class IfcDoorStyleOperationEnum { } - IFC2X32.IfcRelVoidsElement = IfcRelVoidsElement; - class IfcResource extends IfcObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.type = 2914609552; - } + IfcDoorStyleOperationEnum.SINGLE_SWING_LEFT = { type: 3, value: "SINGLE_SWING_LEFT" }; + IfcDoorStyleOperationEnum.SINGLE_SWING_RIGHT = { type: 3, value: "SINGLE_SWING_RIGHT" }; + IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING" }; + IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT" }; + IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT" }; + IfcDoorStyleOperationEnum.DOUBLE_SWING_LEFT = { type: 3, value: "DOUBLE_SWING_LEFT" }; + IfcDoorStyleOperationEnum.DOUBLE_SWING_RIGHT = { type: 3, value: "DOUBLE_SWING_RIGHT" }; + IfcDoorStyleOperationEnum.DOUBLE_DOOR_DOUBLE_SWING = { type: 3, value: "DOUBLE_DOOR_DOUBLE_SWING" }; + IfcDoorStyleOperationEnum.SLIDING_TO_LEFT = { type: 3, value: "SLIDING_TO_LEFT" }; + IfcDoorStyleOperationEnum.SLIDING_TO_RIGHT = { type: 3, value: "SLIDING_TO_RIGHT" }; + IfcDoorStyleOperationEnum.DOUBLE_DOOR_SLIDING = { type: 3, value: "DOUBLE_DOOR_SLIDING" }; + IfcDoorStyleOperationEnum.FOLDING_TO_LEFT = { type: 3, value: "FOLDING_TO_LEFT" }; + IfcDoorStyleOperationEnum.FOLDING_TO_RIGHT = { type: 3, value: "FOLDING_TO_RIGHT" }; + IfcDoorStyleOperationEnum.DOUBLE_DOOR_FOLDING = { type: 3, value: "DOUBLE_DOOR_FOLDING" }; + IfcDoorStyleOperationEnum.REVOLVING = { type: 3, value: "REVOLVING" }; + IfcDoorStyleOperationEnum.ROLLINGUP = { type: 3, value: "ROLLINGUP" }; + IfcDoorStyleOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDoorStyleOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcDoorStyleOperationEnum = IfcDoorStyleOperationEnum; + class IfcDoorTypeEnum { } - IFC2X32.IfcResource = IfcResource; - class IfcRevolvedAreaSolid extends IfcSweptAreaSolid { - constructor(expressID, SweptArea, Position, Axis, Angle) { - super(expressID, SweptArea, Position); - this.SweptArea = SweptArea; - this.Position = Position; - this.Axis = Axis; - this.Angle = Angle; - this.type = 1856042241; - } + IfcDoorTypeEnum.DOOR = { type: 3, value: "DOOR" }; + IfcDoorTypeEnum.GATE = { type: 3, value: "GATE" }; + IfcDoorTypeEnum.TRAPDOOR = { type: 3, value: "TRAPDOOR" }; + IfcDoorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDoorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcDoorTypeEnum = IfcDoorTypeEnum; + class IfcDoorTypeOperationEnum { } - IFC2X32.IfcRevolvedAreaSolid = IfcRevolvedAreaSolid; - class IfcRightCircularCone extends IfcCsgPrimitive3D { - constructor(expressID, Position, Height, BottomRadius) { - super(expressID, Position); - this.Position = Position; - this.Height = Height; - this.BottomRadius = BottomRadius; - this.type = 4158566097; - } + IfcDoorTypeOperationEnum.SINGLE_SWING_LEFT = { type: 3, value: "SINGLE_SWING_LEFT" }; + IfcDoorTypeOperationEnum.SINGLE_SWING_RIGHT = { type: 3, value: "SINGLE_SWING_RIGHT" }; + IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING" }; + IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT" }; + IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT" }; + IfcDoorTypeOperationEnum.DOUBLE_SWING_LEFT = { type: 3, value: "DOUBLE_SWING_LEFT" }; + IfcDoorTypeOperationEnum.DOUBLE_SWING_RIGHT = { type: 3, value: "DOUBLE_SWING_RIGHT" }; + IfcDoorTypeOperationEnum.DOUBLE_DOOR_DOUBLE_SWING = { type: 3, value: "DOUBLE_DOOR_DOUBLE_SWING" }; + IfcDoorTypeOperationEnum.SLIDING_TO_LEFT = { type: 3, value: "SLIDING_TO_LEFT" }; + IfcDoorTypeOperationEnum.SLIDING_TO_RIGHT = { type: 3, value: "SLIDING_TO_RIGHT" }; + IfcDoorTypeOperationEnum.DOUBLE_DOOR_SLIDING = { type: 3, value: "DOUBLE_DOOR_SLIDING" }; + IfcDoorTypeOperationEnum.FOLDING_TO_LEFT = { type: 3, value: "FOLDING_TO_LEFT" }; + IfcDoorTypeOperationEnum.FOLDING_TO_RIGHT = { type: 3, value: "FOLDING_TO_RIGHT" }; + IfcDoorTypeOperationEnum.DOUBLE_DOOR_FOLDING = { type: 3, value: "DOUBLE_DOOR_FOLDING" }; + IfcDoorTypeOperationEnum.REVOLVING = { type: 3, value: "REVOLVING" }; + IfcDoorTypeOperationEnum.ROLLINGUP = { type: 3, value: "ROLLINGUP" }; + IfcDoorTypeOperationEnum.SWING_FIXED_LEFT = { type: 3, value: "SWING_FIXED_LEFT" }; + IfcDoorTypeOperationEnum.SWING_FIXED_RIGHT = { type: 3, value: "SWING_FIXED_RIGHT" }; + IfcDoorTypeOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDoorTypeOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcDoorTypeOperationEnum = IfcDoorTypeOperationEnum; + class IfcDuctFittingTypeEnum { } - IFC2X32.IfcRightCircularCone = IfcRightCircularCone; - class IfcRightCircularCylinder extends IfcCsgPrimitive3D { - constructor(expressID, Position, Height, Radius) { - super(expressID, Position); - this.Position = Position; - this.Height = Height; - this.Radius = Radius; - this.type = 3626867408; - } + IfcDuctFittingTypeEnum.BEND = { type: 3, value: "BEND" }; + IfcDuctFittingTypeEnum.CONNECTOR = { type: 3, value: "CONNECTOR" }; + IfcDuctFittingTypeEnum.ENTRY = { type: 3, value: "ENTRY" }; + IfcDuctFittingTypeEnum.EXIT = { type: 3, value: "EXIT" }; + IfcDuctFittingTypeEnum.JUNCTION = { type: 3, value: "JUNCTION" }; + IfcDuctFittingTypeEnum.OBSTRUCTION = { type: 3, value: "OBSTRUCTION" }; + IfcDuctFittingTypeEnum.TRANSITION = { type: 3, value: "TRANSITION" }; + IfcDuctFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDuctFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcDuctFittingTypeEnum = IfcDuctFittingTypeEnum; + class IfcDuctSegmentTypeEnum { } - IFC2X32.IfcRightCircularCylinder = IfcRightCircularCylinder; - class IfcSpatialStructureElement extends IfcProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.type = 2706606064; - } + IfcDuctSegmentTypeEnum.RIGIDSEGMENT = { type: 3, value: "RIGIDSEGMENT" }; + IfcDuctSegmentTypeEnum.FLEXIBLESEGMENT = { type: 3, value: "FLEXIBLESEGMENT" }; + IfcDuctSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDuctSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcDuctSegmentTypeEnum = IfcDuctSegmentTypeEnum; + class IfcDuctSilencerTypeEnum { } - IFC2X32.IfcSpatialStructureElement = IfcSpatialStructureElement; - class IfcSpatialStructureElementType extends IfcElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 3893378262; - } + IfcDuctSilencerTypeEnum.FLATOVAL = { type: 3, value: "FLATOVAL" }; + IfcDuctSilencerTypeEnum.RECTANGULAR = { type: 3, value: "RECTANGULAR" }; + IfcDuctSilencerTypeEnum.ROUND = { type: 3, value: "ROUND" }; + IfcDuctSilencerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDuctSilencerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcDuctSilencerTypeEnum = IfcDuctSilencerTypeEnum; + class IfcElectricApplianceTypeEnum { } - IFC2X32.IfcSpatialStructureElementType = IfcSpatialStructureElementType; - class IfcSphere extends IfcCsgPrimitive3D { - constructor(expressID, Position, Radius) { - super(expressID, Position); - this.Position = Position; - this.Radius = Radius; - this.type = 451544542; - } + IfcElectricApplianceTypeEnum.DISHWASHER = { type: 3, value: "DISHWASHER" }; + IfcElectricApplianceTypeEnum.ELECTRICCOOKER = { type: 3, value: "ELECTRICCOOKER" }; + IfcElectricApplianceTypeEnum.FREESTANDINGELECTRICHEATER = { type: 3, value: "FREESTANDINGELECTRICHEATER" }; + IfcElectricApplianceTypeEnum.FREESTANDINGFAN = { type: 3, value: "FREESTANDINGFAN" }; + IfcElectricApplianceTypeEnum.FREESTANDINGWATERHEATER = { type: 3, value: "FREESTANDINGWATERHEATER" }; + IfcElectricApplianceTypeEnum.FREESTANDINGWATERCOOLER = { type: 3, value: "FREESTANDINGWATERCOOLER" }; + IfcElectricApplianceTypeEnum.FREEZER = { type: 3, value: "FREEZER" }; + IfcElectricApplianceTypeEnum.FRIDGE_FREEZER = { type: 3, value: "FRIDGE_FREEZER" }; + IfcElectricApplianceTypeEnum.HANDDRYER = { type: 3, value: "HANDDRYER" }; + IfcElectricApplianceTypeEnum.KITCHENMACHINE = { type: 3, value: "KITCHENMACHINE" }; + IfcElectricApplianceTypeEnum.MICROWAVE = { type: 3, value: "MICROWAVE" }; + IfcElectricApplianceTypeEnum.PHOTOCOPIER = { type: 3, value: "PHOTOCOPIER" }; + IfcElectricApplianceTypeEnum.REFRIGERATOR = { type: 3, value: "REFRIGERATOR" }; + IfcElectricApplianceTypeEnum.TUMBLEDRYER = { type: 3, value: "TUMBLEDRYER" }; + IfcElectricApplianceTypeEnum.VENDINGMACHINE = { type: 3, value: "VENDINGMACHINE" }; + IfcElectricApplianceTypeEnum.WASHINGMACHINE = { type: 3, value: "WASHINGMACHINE" }; + IfcElectricApplianceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcElectricApplianceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcElectricApplianceTypeEnum = IfcElectricApplianceTypeEnum; + class IfcElectricDistributionBoardTypeEnum { } - IFC2X32.IfcSphere = IfcSphere; - class IfcStructuralActivity extends IfcProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.type = 3544373492; - } + IfcElectricDistributionBoardTypeEnum.CONSUMERUNIT = { type: 3, value: "CONSUMERUNIT" }; + IfcElectricDistributionBoardTypeEnum.DISTRIBUTIONBOARD = { type: 3, value: "DISTRIBUTIONBOARD" }; + IfcElectricDistributionBoardTypeEnum.MOTORCONTROLCENTRE = { type: 3, value: "MOTORCONTROLCENTRE" }; + IfcElectricDistributionBoardTypeEnum.SWITCHBOARD = { type: 3, value: "SWITCHBOARD" }; + IfcElectricDistributionBoardTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcElectricDistributionBoardTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcElectricDistributionBoardTypeEnum = IfcElectricDistributionBoardTypeEnum; + class IfcElectricFlowStorageDeviceTypeEnum { } - IFC2X32.IfcStructuralActivity = IfcStructuralActivity; - class IfcStructuralItem extends IfcProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.type = 3136571912; - } + IfcElectricFlowStorageDeviceTypeEnum.BATTERY = { type: 3, value: "BATTERY" }; + IfcElectricFlowStorageDeviceTypeEnum.CAPACITORBANK = { type: 3, value: "CAPACITORBANK" }; + IfcElectricFlowStorageDeviceTypeEnum.HARMONICFILTER = { type: 3, value: "HARMONICFILTER" }; + IfcElectricFlowStorageDeviceTypeEnum.INDUCTORBANK = { type: 3, value: "INDUCTORBANK" }; + IfcElectricFlowStorageDeviceTypeEnum.UPS = { type: 3, value: "UPS" }; + IfcElectricFlowStorageDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcElectricFlowStorageDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcElectricFlowStorageDeviceTypeEnum = IfcElectricFlowStorageDeviceTypeEnum; + class IfcElectricGeneratorTypeEnum { } - IFC2X32.IfcStructuralItem = IfcStructuralItem; - class IfcStructuralMember extends IfcStructuralItem { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.type = 530289379; - } + IfcElectricGeneratorTypeEnum.CHP = { type: 3, value: "CHP" }; + IfcElectricGeneratorTypeEnum.ENGINEGENERATOR = { type: 3, value: "ENGINEGENERATOR" }; + IfcElectricGeneratorTypeEnum.STANDALONE = { type: 3, value: "STANDALONE" }; + IfcElectricGeneratorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcElectricGeneratorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcElectricGeneratorTypeEnum = IfcElectricGeneratorTypeEnum; + class IfcElectricMotorTypeEnum { } - IFC2X32.IfcStructuralMember = IfcStructuralMember; - class IfcStructuralReaction extends IfcStructuralActivity { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.type = 3689010777; - } + IfcElectricMotorTypeEnum.DC = { type: 3, value: "DC" }; + IfcElectricMotorTypeEnum.INDUCTION = { type: 3, value: "INDUCTION" }; + IfcElectricMotorTypeEnum.POLYPHASE = { type: 3, value: "POLYPHASE" }; + IfcElectricMotorTypeEnum.RELUCTANCESYNCHRONOUS = { type: 3, value: "RELUCTANCESYNCHRONOUS" }; + IfcElectricMotorTypeEnum.SYNCHRONOUS = { type: 3, value: "SYNCHRONOUS" }; + IfcElectricMotorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcElectricMotorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcElectricMotorTypeEnum = IfcElectricMotorTypeEnum; + class IfcElectricTimeControlTypeEnum { } - IFC2X32.IfcStructuralReaction = IfcStructuralReaction; - class IfcStructuralSurfaceMember extends IfcStructuralMember { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.PredefinedType = PredefinedType; - this.Thickness = Thickness; - this.type = 3979015343; - } + IfcElectricTimeControlTypeEnum.TIMECLOCK = { type: 3, value: "TIMECLOCK" }; + IfcElectricTimeControlTypeEnum.TIMEDELAY = { type: 3, value: "TIMEDELAY" }; + IfcElectricTimeControlTypeEnum.RELAY = { type: 3, value: "RELAY" }; + IfcElectricTimeControlTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcElectricTimeControlTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcElectricTimeControlTypeEnum = IfcElectricTimeControlTypeEnum; + class IfcElementAssemblyTypeEnum { } - IFC2X32.IfcStructuralSurfaceMember = IfcStructuralSurfaceMember; - class IfcStructuralSurfaceMemberVarying extends IfcStructuralSurfaceMember { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness, SubsequentThickness, VaryingThicknessLocation) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.PredefinedType = PredefinedType; - this.Thickness = Thickness; - this.SubsequentThickness = SubsequentThickness; - this.VaryingThicknessLocation = VaryingThicknessLocation; - this.type = 2218152070; - } + IfcElementAssemblyTypeEnum.ACCESSORY_ASSEMBLY = { type: 3, value: "ACCESSORY_ASSEMBLY" }; + IfcElementAssemblyTypeEnum.ARCH = { type: 3, value: "ARCH" }; + IfcElementAssemblyTypeEnum.BEAM_GRID = { type: 3, value: "BEAM_GRID" }; + IfcElementAssemblyTypeEnum.BRACED_FRAME = { type: 3, value: "BRACED_FRAME" }; + IfcElementAssemblyTypeEnum.GIRDER = { type: 3, value: "GIRDER" }; + IfcElementAssemblyTypeEnum.REINFORCEMENT_UNIT = { type: 3, value: "REINFORCEMENT_UNIT" }; + IfcElementAssemblyTypeEnum.RIGID_FRAME = { type: 3, value: "RIGID_FRAME" }; + IfcElementAssemblyTypeEnum.SLAB_FIELD = { type: 3, value: "SLAB_FIELD" }; + IfcElementAssemblyTypeEnum.TRUSS = { type: 3, value: "TRUSS" }; + IfcElementAssemblyTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcElementAssemblyTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcElementAssemblyTypeEnum = IfcElementAssemblyTypeEnum; + class IfcElementCompositionEnum { } - IFC2X32.IfcStructuralSurfaceMemberVarying = IfcStructuralSurfaceMemberVarying; - class IfcStructuredDimensionCallout extends IfcDraughtingCallout { - constructor(expressID, Contents) { - super(expressID, Contents); - this.Contents = Contents; - this.type = 4070609034; - } + IfcElementCompositionEnum.COMPLEX = { type: 3, value: "COMPLEX" }; + IfcElementCompositionEnum.ELEMENT = { type: 3, value: "ELEMENT" }; + IfcElementCompositionEnum.PARTIAL = { type: 3, value: "PARTIAL" }; + IFC42.IfcElementCompositionEnum = IfcElementCompositionEnum; + class IfcEngineTypeEnum { } - IFC2X32.IfcStructuredDimensionCallout = IfcStructuredDimensionCallout; - class IfcSurfaceCurveSweptAreaSolid extends IfcSweptAreaSolid { - constructor(expressID, SweptArea, Position, Directrix, StartParam, EndParam, ReferenceSurface) { - super(expressID, SweptArea, Position); - this.SweptArea = SweptArea; - this.Position = Position; - this.Directrix = Directrix; - this.StartParam = StartParam; - this.EndParam = EndParam; - this.ReferenceSurface = ReferenceSurface; - this.type = 2028607225; - } + IfcEngineTypeEnum.EXTERNALCOMBUSTION = { type: 3, value: "EXTERNALCOMBUSTION" }; + IfcEngineTypeEnum.INTERNALCOMBUSTION = { type: 3, value: "INTERNALCOMBUSTION" }; + IfcEngineTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcEngineTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcEngineTypeEnum = IfcEngineTypeEnum; + class IfcEvaporativeCoolerTypeEnum { } - IFC2X32.IfcSurfaceCurveSweptAreaSolid = IfcSurfaceCurveSweptAreaSolid; - class IfcSurfaceOfLinearExtrusion extends IfcSweptSurface { - constructor(expressID, SweptCurve, Position, ExtrudedDirection, Depth) { - super(expressID, SweptCurve, Position); - this.SweptCurve = SweptCurve; - this.Position = Position; - this.ExtrudedDirection = ExtrudedDirection; - this.Depth = Depth; - this.type = 2809605785; - } + IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER" }; + IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER" }; + IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER" }; + IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER" }; + IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEAIRWASHER = { type: 3, value: "DIRECTEVAPORATIVEAIRWASHER" }; + IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEPACKAGEAIRCOOLER = { type: 3, value: "INDIRECTEVAPORATIVEPACKAGEAIRCOOLER" }; + IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEWETCOIL = { type: 3, value: "INDIRECTEVAPORATIVEWETCOIL" }; + IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER = { type: 3, value: "INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER" }; + IfcEvaporativeCoolerTypeEnum.INDIRECTDIRECTCOMBINATION = { type: 3, value: "INDIRECTDIRECTCOMBINATION" }; + IfcEvaporativeCoolerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcEvaporativeCoolerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcEvaporativeCoolerTypeEnum = IfcEvaporativeCoolerTypeEnum; + class IfcEvaporatorTypeEnum { } - IFC2X32.IfcSurfaceOfLinearExtrusion = IfcSurfaceOfLinearExtrusion; - class IfcSurfaceOfRevolution extends IfcSweptSurface { - constructor(expressID, SweptCurve, Position, AxisPosition) { - super(expressID, SweptCurve, Position); - this.SweptCurve = SweptCurve; - this.Position = Position; - this.AxisPosition = AxisPosition; - this.type = 4124788165; - } + IfcEvaporatorTypeEnum.DIRECTEXPANSION = { type: 3, value: "DIRECTEXPANSION" }; + IfcEvaporatorTypeEnum.DIRECTEXPANSIONSHELLANDTUBE = { type: 3, value: "DIRECTEXPANSIONSHELLANDTUBE" }; + IfcEvaporatorTypeEnum.DIRECTEXPANSIONTUBEINTUBE = { type: 3, value: "DIRECTEXPANSIONTUBEINTUBE" }; + IfcEvaporatorTypeEnum.DIRECTEXPANSIONBRAZEDPLATE = { type: 3, value: "DIRECTEXPANSIONBRAZEDPLATE" }; + IfcEvaporatorTypeEnum.FLOODEDSHELLANDTUBE = { type: 3, value: "FLOODEDSHELLANDTUBE" }; + IfcEvaporatorTypeEnum.SHELLANDCOIL = { type: 3, value: "SHELLANDCOIL" }; + IfcEvaporatorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcEvaporatorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcEvaporatorTypeEnum = IfcEvaporatorTypeEnum; + class IfcEventTriggerTypeEnum { } - IFC2X32.IfcSurfaceOfRevolution = IfcSurfaceOfRevolution; - class IfcSystemFurnitureElementType extends IfcFurnishingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 1580310250; - } + IfcEventTriggerTypeEnum.EVENTRULE = { type: 3, value: "EVENTRULE" }; + IfcEventTriggerTypeEnum.EVENTMESSAGE = { type: 3, value: "EVENTMESSAGE" }; + IfcEventTriggerTypeEnum.EVENTTIME = { type: 3, value: "EVENTTIME" }; + IfcEventTriggerTypeEnum.EVENTCOMPLEX = { type: 3, value: "EVENTCOMPLEX" }; + IfcEventTriggerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcEventTriggerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcEventTriggerTypeEnum = IfcEventTriggerTypeEnum; + class IfcEventTypeEnum { } - IFC2X32.IfcSystemFurnitureElementType = IfcSystemFurnitureElementType; - class IfcTask extends IfcProcess { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TaskId, Status, WorkMethod, IsMilestone, Priority) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.TaskId = TaskId; - this.Status = Status; - this.WorkMethod = WorkMethod; - this.IsMilestone = IsMilestone; - this.Priority = Priority; - this.type = 3473067441; - } + IfcEventTypeEnum.STARTEVENT = { type: 3, value: "STARTEVENT" }; + IfcEventTypeEnum.ENDEVENT = { type: 3, value: "ENDEVENT" }; + IfcEventTypeEnum.INTERMEDIATEEVENT = { type: 3, value: "INTERMEDIATEEVENT" }; + IfcEventTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcEventTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcEventTypeEnum = IfcEventTypeEnum; + class IfcExternalSpatialElementTypeEnum { } - IFC2X32.IfcTask = IfcTask; - class IfcTransportElementType extends IfcElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2097647324; - } + IfcExternalSpatialElementTypeEnum.EXTERNAL = { type: 3, value: "EXTERNAL" }; + IfcExternalSpatialElementTypeEnum.EXTERNAL_EARTH = { type: 3, value: "EXTERNAL_EARTH" }; + IfcExternalSpatialElementTypeEnum.EXTERNAL_WATER = { type: 3, value: "EXTERNAL_WATER" }; + IfcExternalSpatialElementTypeEnum.EXTERNAL_FIRE = { type: 3, value: "EXTERNAL_FIRE" }; + IfcExternalSpatialElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcExternalSpatialElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcExternalSpatialElementTypeEnum = IfcExternalSpatialElementTypeEnum; + class IfcFanTypeEnum { } - IFC2X32.IfcTransportElementType = IfcTransportElementType; - class IfcActor extends IfcObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.TheActor = TheActor; - this.type = 2296667514; - } + IfcFanTypeEnum.CENTRIFUGALFORWARDCURVED = { type: 3, value: "CENTRIFUGALFORWARDCURVED" }; + IfcFanTypeEnum.CENTRIFUGALRADIAL = { type: 3, value: "CENTRIFUGALRADIAL" }; + IfcFanTypeEnum.CENTRIFUGALBACKWARDINCLINEDCURVED = { type: 3, value: "CENTRIFUGALBACKWARDINCLINEDCURVED" }; + IfcFanTypeEnum.CENTRIFUGALAIRFOIL = { type: 3, value: "CENTRIFUGALAIRFOIL" }; + IfcFanTypeEnum.TUBEAXIAL = { type: 3, value: "TUBEAXIAL" }; + IfcFanTypeEnum.VANEAXIAL = { type: 3, value: "VANEAXIAL" }; + IfcFanTypeEnum.PROPELLORAXIAL = { type: 3, value: "PROPELLORAXIAL" }; + IfcFanTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcFanTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcFanTypeEnum = IfcFanTypeEnum; + class IfcFastenerTypeEnum { } - IFC2X32.IfcActor = IfcActor; - class IfcAnnotation extends IfcProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.type = 1674181508; - } + IfcFastenerTypeEnum.GLUE = { type: 3, value: "GLUE" }; + IfcFastenerTypeEnum.MORTAR = { type: 3, value: "MORTAR" }; + IfcFastenerTypeEnum.WELD = { type: 3, value: "WELD" }; + IfcFastenerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcFastenerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcFastenerTypeEnum = IfcFastenerTypeEnum; + class IfcFilterTypeEnum { } - IFC2X32.IfcAnnotation = IfcAnnotation; - class IfcAsymmetricIShapeProfileDef extends IfcIShapeProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, OverallWidth, OverallDepth, WebThickness, FlangeThickness, FilletRadius, TopFlangeWidth, TopFlangeThickness, TopFlangeFilletRadius, CentreOfGravityInY) { - super(expressID, ProfileType, ProfileName, Position, OverallWidth, OverallDepth, WebThickness, FlangeThickness, FilletRadius); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.OverallWidth = OverallWidth; - this.OverallDepth = OverallDepth; - this.WebThickness = WebThickness; - this.FlangeThickness = FlangeThickness; - this.FilletRadius = FilletRadius; - this.TopFlangeWidth = TopFlangeWidth; - this.TopFlangeThickness = TopFlangeThickness; - this.TopFlangeFilletRadius = TopFlangeFilletRadius; - this.CentreOfGravityInY = CentreOfGravityInY; - this.type = 3207858831; - } + IfcFilterTypeEnum.AIRPARTICLEFILTER = { type: 3, value: "AIRPARTICLEFILTER" }; + IfcFilterTypeEnum.COMPRESSEDAIRFILTER = { type: 3, value: "COMPRESSEDAIRFILTER" }; + IfcFilterTypeEnum.ODORFILTER = { type: 3, value: "ODORFILTER" }; + IfcFilterTypeEnum.OILFILTER = { type: 3, value: "OILFILTER" }; + IfcFilterTypeEnum.STRAINER = { type: 3, value: "STRAINER" }; + IfcFilterTypeEnum.WATERFILTER = { type: 3, value: "WATERFILTER" }; + IfcFilterTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcFilterTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcFilterTypeEnum = IfcFilterTypeEnum; + class IfcFireSuppressionTerminalTypeEnum { } - IFC2X32.IfcAsymmetricIShapeProfileDef = IfcAsymmetricIShapeProfileDef; - class IfcBlock extends IfcCsgPrimitive3D { - constructor(expressID, Position, XLength, YLength, ZLength) { - super(expressID, Position); - this.Position = Position; - this.XLength = XLength; - this.YLength = YLength; - this.ZLength = ZLength; - this.type = 1334484129; - } + IfcFireSuppressionTerminalTypeEnum.BREECHINGINLET = { type: 3, value: "BREECHINGINLET" }; + IfcFireSuppressionTerminalTypeEnum.FIREHYDRANT = { type: 3, value: "FIREHYDRANT" }; + IfcFireSuppressionTerminalTypeEnum.HOSEREEL = { type: 3, value: "HOSEREEL" }; + IfcFireSuppressionTerminalTypeEnum.SPRINKLER = { type: 3, value: "SPRINKLER" }; + IfcFireSuppressionTerminalTypeEnum.SPRINKLERDEFLECTOR = { type: 3, value: "SPRINKLERDEFLECTOR" }; + IfcFireSuppressionTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcFireSuppressionTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcFireSuppressionTerminalTypeEnum = IfcFireSuppressionTerminalTypeEnum; + class IfcFlowDirectionEnum { } - IFC2X32.IfcBlock = IfcBlock; - class IfcBooleanClippingResult extends IfcBooleanResult { - constructor(expressID, Operator, FirstOperand, SecondOperand) { - super(expressID, Operator, FirstOperand, SecondOperand); - this.Operator = Operator; - this.FirstOperand = FirstOperand; - this.SecondOperand = SecondOperand; - this.type = 3649129432; - } + IfcFlowDirectionEnum.SOURCE = { type: 3, value: "SOURCE" }; + IfcFlowDirectionEnum.SINK = { type: 3, value: "SINK" }; + IfcFlowDirectionEnum.SOURCEANDSINK = { type: 3, value: "SOURCEANDSINK" }; + IfcFlowDirectionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcFlowDirectionEnum = IfcFlowDirectionEnum; + class IfcFlowInstrumentTypeEnum { } - IFC2X32.IfcBooleanClippingResult = IfcBooleanClippingResult; - class IfcBoundedCurve extends IfcCurve { - constructor(expressID) { - super(expressID); - this.type = 1260505505; - } + IfcFlowInstrumentTypeEnum.PRESSUREGAUGE = { type: 3, value: "PRESSUREGAUGE" }; + IfcFlowInstrumentTypeEnum.THERMOMETER = { type: 3, value: "THERMOMETER" }; + IfcFlowInstrumentTypeEnum.AMMETER = { type: 3, value: "AMMETER" }; + IfcFlowInstrumentTypeEnum.FREQUENCYMETER = { type: 3, value: "FREQUENCYMETER" }; + IfcFlowInstrumentTypeEnum.POWERFACTORMETER = { type: 3, value: "POWERFACTORMETER" }; + IfcFlowInstrumentTypeEnum.PHASEANGLEMETER = { type: 3, value: "PHASEANGLEMETER" }; + IfcFlowInstrumentTypeEnum.VOLTMETER_PEAK = { type: 3, value: "VOLTMETER_PEAK" }; + IfcFlowInstrumentTypeEnum.VOLTMETER_RMS = { type: 3, value: "VOLTMETER_RMS" }; + IfcFlowInstrumentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcFlowInstrumentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcFlowInstrumentTypeEnum = IfcFlowInstrumentTypeEnum; + class IfcFlowMeterTypeEnum { } - IFC2X32.IfcBoundedCurve = IfcBoundedCurve; - class IfcBuilding extends IfcSpatialStructureElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, ElevationOfRefHeight, ElevationOfTerrain, BuildingAddress) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.ElevationOfRefHeight = ElevationOfRefHeight; - this.ElevationOfTerrain = ElevationOfTerrain; - this.BuildingAddress = BuildingAddress; - this.type = 4031249490; - } + IfcFlowMeterTypeEnum.ENERGYMETER = { type: 3, value: "ENERGYMETER" }; + IfcFlowMeterTypeEnum.GASMETER = { type: 3, value: "GASMETER" }; + IfcFlowMeterTypeEnum.OILMETER = { type: 3, value: "OILMETER" }; + IfcFlowMeterTypeEnum.WATERMETER = { type: 3, value: "WATERMETER" }; + IfcFlowMeterTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcFlowMeterTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcFlowMeterTypeEnum = IfcFlowMeterTypeEnum; + class IfcFootingTypeEnum { } - IFC2X32.IfcBuilding = IfcBuilding; - class IfcBuildingElementType extends IfcElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 1950629157; - } + IfcFootingTypeEnum.CAISSON_FOUNDATION = { type: 3, value: "CAISSON_FOUNDATION" }; + IfcFootingTypeEnum.FOOTING_BEAM = { type: 3, value: "FOOTING_BEAM" }; + IfcFootingTypeEnum.PAD_FOOTING = { type: 3, value: "PAD_FOOTING" }; + IfcFootingTypeEnum.PILE_CAP = { type: 3, value: "PILE_CAP" }; + IfcFootingTypeEnum.STRIP_FOOTING = { type: 3, value: "STRIP_FOOTING" }; + IfcFootingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcFootingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcFootingTypeEnum = IfcFootingTypeEnum; + class IfcFurnitureTypeEnum { } - IFC2X32.IfcBuildingElementType = IfcBuildingElementType; - class IfcBuildingStorey extends IfcSpatialStructureElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, Elevation) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.Elevation = Elevation; - this.type = 3124254112; - } + IfcFurnitureTypeEnum.CHAIR = { type: 3, value: "CHAIR" }; + IfcFurnitureTypeEnum.TABLE = { type: 3, value: "TABLE" }; + IfcFurnitureTypeEnum.DESK = { type: 3, value: "DESK" }; + IfcFurnitureTypeEnum.BED = { type: 3, value: "BED" }; + IfcFurnitureTypeEnum.FILECABINET = { type: 3, value: "FILECABINET" }; + IfcFurnitureTypeEnum.SHELF = { type: 3, value: "SHELF" }; + IfcFurnitureTypeEnum.SOFA = { type: 3, value: "SOFA" }; + IfcFurnitureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcFurnitureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcFurnitureTypeEnum = IfcFurnitureTypeEnum; + class IfcGeographicElementTypeEnum { } - IFC2X32.IfcBuildingStorey = IfcBuildingStorey; - class IfcCircleHollowProfileDef extends IfcCircleProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, Radius, WallThickness) { - super(expressID, ProfileType, ProfileName, Position, Radius); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.Radius = Radius; - this.WallThickness = WallThickness; - this.type = 2937912522; - } + IfcGeographicElementTypeEnum.TERRAIN = { type: 3, value: "TERRAIN" }; + IfcGeographicElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcGeographicElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcGeographicElementTypeEnum = IfcGeographicElementTypeEnum; + class IfcGeometricProjectionEnum { } - IFC2X32.IfcCircleHollowProfileDef = IfcCircleHollowProfileDef; - class IfcColumnType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 300633059; - } + IfcGeometricProjectionEnum.GRAPH_VIEW = { type: 3, value: "GRAPH_VIEW" }; + IfcGeometricProjectionEnum.SKETCH_VIEW = { type: 3, value: "SKETCH_VIEW" }; + IfcGeometricProjectionEnum.MODEL_VIEW = { type: 3, value: "MODEL_VIEW" }; + IfcGeometricProjectionEnum.PLAN_VIEW = { type: 3, value: "PLAN_VIEW" }; + IfcGeometricProjectionEnum.REFLECTED_PLAN_VIEW = { type: 3, value: "REFLECTED_PLAN_VIEW" }; + IfcGeometricProjectionEnum.SECTION_VIEW = { type: 3, value: "SECTION_VIEW" }; + IfcGeometricProjectionEnum.ELEVATION_VIEW = { type: 3, value: "ELEVATION_VIEW" }; + IfcGeometricProjectionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcGeometricProjectionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcGeometricProjectionEnum = IfcGeometricProjectionEnum; + class IfcGlobalOrLocalEnum { } - IFC2X32.IfcColumnType = IfcColumnType; - class IfcCompositeCurve extends IfcBoundedCurve { - constructor(expressID, Segments, SelfIntersect) { - super(expressID); - this.Segments = Segments; - this.SelfIntersect = SelfIntersect; - this.type = 3732776249; - } + IfcGlobalOrLocalEnum.GLOBAL_COORDS = { type: 3, value: "GLOBAL_COORDS" }; + IfcGlobalOrLocalEnum.LOCAL_COORDS = { type: 3, value: "LOCAL_COORDS" }; + IFC42.IfcGlobalOrLocalEnum = IfcGlobalOrLocalEnum; + class IfcGridTypeEnum { } - IFC2X32.IfcCompositeCurve = IfcCompositeCurve; - class IfcConic extends IfcCurve { - constructor(expressID, Position) { - super(expressID); - this.Position = Position; - this.type = 2510884976; - } + IfcGridTypeEnum.RECTANGULAR = { type: 3, value: "RECTANGULAR" }; + IfcGridTypeEnum.RADIAL = { type: 3, value: "RADIAL" }; + IfcGridTypeEnum.TRIANGULAR = { type: 3, value: "TRIANGULAR" }; + IfcGridTypeEnum.IRREGULAR = { type: 3, value: "IRREGULAR" }; + IfcGridTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcGridTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcGridTypeEnum = IfcGridTypeEnum; + class IfcHeatExchangerTypeEnum { } - IFC2X32.IfcConic = IfcConic; - class IfcConstructionResource extends IfcResource { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ResourceIdentifier = ResourceIdentifier; - this.ResourceGroup = ResourceGroup; - this.ResourceConsumption = ResourceConsumption; - this.BaseQuantity = BaseQuantity; - this.type = 2559216714; - } + IfcHeatExchangerTypeEnum.PLATE = { type: 3, value: "PLATE" }; + IfcHeatExchangerTypeEnum.SHELLANDTUBE = { type: 3, value: "SHELLANDTUBE" }; + IfcHeatExchangerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcHeatExchangerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcHeatExchangerTypeEnum = IfcHeatExchangerTypeEnum; + class IfcHumidifierTypeEnum { } - IFC2X32.IfcConstructionResource = IfcConstructionResource; - class IfcControl extends IfcObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.type = 3293443760; - } + IfcHumidifierTypeEnum.STEAMINJECTION = { type: 3, value: "STEAMINJECTION" }; + IfcHumidifierTypeEnum.ADIABATICAIRWASHER = { type: 3, value: "ADIABATICAIRWASHER" }; + IfcHumidifierTypeEnum.ADIABATICPAN = { type: 3, value: "ADIABATICPAN" }; + IfcHumidifierTypeEnum.ADIABATICWETTEDELEMENT = { type: 3, value: "ADIABATICWETTEDELEMENT" }; + IfcHumidifierTypeEnum.ADIABATICATOMIZING = { type: 3, value: "ADIABATICATOMIZING" }; + IfcHumidifierTypeEnum.ADIABATICULTRASONIC = { type: 3, value: "ADIABATICULTRASONIC" }; + IfcHumidifierTypeEnum.ADIABATICRIGIDMEDIA = { type: 3, value: "ADIABATICRIGIDMEDIA" }; + IfcHumidifierTypeEnum.ADIABATICCOMPRESSEDAIRNOZZLE = { type: 3, value: "ADIABATICCOMPRESSEDAIRNOZZLE" }; + IfcHumidifierTypeEnum.ASSISTEDELECTRIC = { type: 3, value: "ASSISTEDELECTRIC" }; + IfcHumidifierTypeEnum.ASSISTEDNATURALGAS = { type: 3, value: "ASSISTEDNATURALGAS" }; + IfcHumidifierTypeEnum.ASSISTEDPROPANE = { type: 3, value: "ASSISTEDPROPANE" }; + IfcHumidifierTypeEnum.ASSISTEDBUTANE = { type: 3, value: "ASSISTEDBUTANE" }; + IfcHumidifierTypeEnum.ASSISTEDSTEAM = { type: 3, value: "ASSISTEDSTEAM" }; + IfcHumidifierTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcHumidifierTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcHumidifierTypeEnum = IfcHumidifierTypeEnum; + class IfcInterceptorTypeEnum { } - IFC2X32.IfcControl = IfcControl; - class IfcCostItem extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.type = 3895139033; - } + IfcInterceptorTypeEnum.CYCLONIC = { type: 3, value: "CYCLONIC" }; + IfcInterceptorTypeEnum.GREASE = { type: 3, value: "GREASE" }; + IfcInterceptorTypeEnum.OIL = { type: 3, value: "OIL" }; + IfcInterceptorTypeEnum.PETROL = { type: 3, value: "PETROL" }; + IfcInterceptorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcInterceptorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcInterceptorTypeEnum = IfcInterceptorTypeEnum; + class IfcInternalOrExternalEnum { } - IFC2X32.IfcCostItem = IfcCostItem; - class IfcCostSchedule extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, SubmittedBy, PreparedBy, SubmittedOn, Status, TargetUsers, UpdateDate, ID, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.SubmittedBy = SubmittedBy; - this.PreparedBy = PreparedBy; - this.SubmittedOn = SubmittedOn; - this.Status = Status; - this.TargetUsers = TargetUsers; - this.UpdateDate = UpdateDate; - this.ID = ID; - this.PredefinedType = PredefinedType; - this.type = 1419761937; - } + IfcInternalOrExternalEnum.INTERNAL = { type: 3, value: "INTERNAL" }; + IfcInternalOrExternalEnum.EXTERNAL = { type: 3, value: "EXTERNAL" }; + IfcInternalOrExternalEnum.EXTERNAL_EARTH = { type: 3, value: "EXTERNAL_EARTH" }; + IfcInternalOrExternalEnum.EXTERNAL_WATER = { type: 3, value: "EXTERNAL_WATER" }; + IfcInternalOrExternalEnum.EXTERNAL_FIRE = { type: 3, value: "EXTERNAL_FIRE" }; + IfcInternalOrExternalEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcInternalOrExternalEnum = IfcInternalOrExternalEnum; + class IfcInventoryTypeEnum { } - IFC2X32.IfcCostSchedule = IfcCostSchedule; - class IfcCoveringType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1916426348; - } + IfcInventoryTypeEnum.ASSETINVENTORY = { type: 3, value: "ASSETINVENTORY" }; + IfcInventoryTypeEnum.SPACEINVENTORY = { type: 3, value: "SPACEINVENTORY" }; + IfcInventoryTypeEnum.FURNITUREINVENTORY = { type: 3, value: "FURNITUREINVENTORY" }; + IfcInventoryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcInventoryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcInventoryTypeEnum = IfcInventoryTypeEnum; + class IfcJunctionBoxTypeEnum { } - IFC2X32.IfcCoveringType = IfcCoveringType; - class IfcCrewResource extends IfcConstructionResource { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ResourceIdentifier = ResourceIdentifier; - this.ResourceGroup = ResourceGroup; - this.ResourceConsumption = ResourceConsumption; - this.BaseQuantity = BaseQuantity; - this.type = 3295246426; - } + IfcJunctionBoxTypeEnum.DATA = { type: 3, value: "DATA" }; + IfcJunctionBoxTypeEnum.POWER = { type: 3, value: "POWER" }; + IfcJunctionBoxTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcJunctionBoxTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcJunctionBoxTypeEnum = IfcJunctionBoxTypeEnum; + class IfcKnotType { } - IFC2X32.IfcCrewResource = IfcCrewResource; - class IfcCurtainWallType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1457835157; - } + IfcKnotType.UNIFORM_KNOTS = { type: 3, value: "UNIFORM_KNOTS" }; + IfcKnotType.QUASI_UNIFORM_KNOTS = { type: 3, value: "QUASI_UNIFORM_KNOTS" }; + IfcKnotType.PIECEWISE_BEZIER_KNOTS = { type: 3, value: "PIECEWISE_BEZIER_KNOTS" }; + IfcKnotType.UNSPECIFIED = { type: 3, value: "UNSPECIFIED" }; + IFC42.IfcKnotType = IfcKnotType; + class IfcLaborResourceTypeEnum { } - IFC2X32.IfcCurtainWallType = IfcCurtainWallType; - class IfcDimensionCurveDirectedCallout extends IfcDraughtingCallout { - constructor(expressID, Contents) { - super(expressID, Contents); - this.Contents = Contents; - this.type = 681481545; - } + IfcLaborResourceTypeEnum.ADMINISTRATION = { type: 3, value: "ADMINISTRATION" }; + IfcLaborResourceTypeEnum.CARPENTRY = { type: 3, value: "CARPENTRY" }; + IfcLaborResourceTypeEnum.CLEANING = { type: 3, value: "CLEANING" }; + IfcLaborResourceTypeEnum.CONCRETE = { type: 3, value: "CONCRETE" }; + IfcLaborResourceTypeEnum.DRYWALL = { type: 3, value: "DRYWALL" }; + IfcLaborResourceTypeEnum.ELECTRIC = { type: 3, value: "ELECTRIC" }; + IfcLaborResourceTypeEnum.FINISHING = { type: 3, value: "FINISHING" }; + IfcLaborResourceTypeEnum.FLOORING = { type: 3, value: "FLOORING" }; + IfcLaborResourceTypeEnum.GENERAL = { type: 3, value: "GENERAL" }; + IfcLaborResourceTypeEnum.HVAC = { type: 3, value: "HVAC" }; + IfcLaborResourceTypeEnum.LANDSCAPING = { type: 3, value: "LANDSCAPING" }; + IfcLaborResourceTypeEnum.MASONRY = { type: 3, value: "MASONRY" }; + IfcLaborResourceTypeEnum.PAINTING = { type: 3, value: "PAINTING" }; + IfcLaborResourceTypeEnum.PAVING = { type: 3, value: "PAVING" }; + IfcLaborResourceTypeEnum.PLUMBING = { type: 3, value: "PLUMBING" }; + IfcLaborResourceTypeEnum.ROOFING = { type: 3, value: "ROOFING" }; + IfcLaborResourceTypeEnum.SITEGRADING = { type: 3, value: "SITEGRADING" }; + IfcLaborResourceTypeEnum.STEELWORK = { type: 3, value: "STEELWORK" }; + IfcLaborResourceTypeEnum.SURVEYING = { type: 3, value: "SURVEYING" }; + IfcLaborResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcLaborResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcLaborResourceTypeEnum = IfcLaborResourceTypeEnum; + class IfcLampTypeEnum { } - IFC2X32.IfcDimensionCurveDirectedCallout = IfcDimensionCurveDirectedCallout; - class IfcDistributionElementType extends IfcElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 3256556792; - } + IfcLampTypeEnum.COMPACTFLUORESCENT = { type: 3, value: "COMPACTFLUORESCENT" }; + IfcLampTypeEnum.FLUORESCENT = { type: 3, value: "FLUORESCENT" }; + IfcLampTypeEnum.HALOGEN = { type: 3, value: "HALOGEN" }; + IfcLampTypeEnum.HIGHPRESSUREMERCURY = { type: 3, value: "HIGHPRESSUREMERCURY" }; + IfcLampTypeEnum.HIGHPRESSURESODIUM = { type: 3, value: "HIGHPRESSURESODIUM" }; + IfcLampTypeEnum.LED = { type: 3, value: "LED" }; + IfcLampTypeEnum.METALHALIDE = { type: 3, value: "METALHALIDE" }; + IfcLampTypeEnum.OLED = { type: 3, value: "OLED" }; + IfcLampTypeEnum.TUNGSTENFILAMENT = { type: 3, value: "TUNGSTENFILAMENT" }; + IfcLampTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcLampTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcLampTypeEnum = IfcLampTypeEnum; + class IfcLayerSetDirectionEnum { } - IFC2X32.IfcDistributionElementType = IfcDistributionElementType; - class IfcDistributionFlowElementType extends IfcDistributionElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 3849074793; - } + IfcLayerSetDirectionEnum.AXIS1 = { type: 3, value: "AXIS1" }; + IfcLayerSetDirectionEnum.AXIS2 = { type: 3, value: "AXIS2" }; + IfcLayerSetDirectionEnum.AXIS3 = { type: 3, value: "AXIS3" }; + IFC42.IfcLayerSetDirectionEnum = IfcLayerSetDirectionEnum; + class IfcLightDistributionCurveEnum { } - IFC2X32.IfcDistributionFlowElementType = IfcDistributionFlowElementType; - class IfcElectricalBaseProperties extends IfcEnergyProperties { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, EnergySequence, UserDefinedEnergySequence, ElectricCurrentType, InputVoltage, InputFrequency, FullLoadCurrent, MinimumCircuitCurrent, MaximumPowerInput, RatedPowerInput, InputPhase) { - super(expressID, GlobalId, OwnerHistory, Name, Description, EnergySequence, UserDefinedEnergySequence); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.EnergySequence = EnergySequence; - this.UserDefinedEnergySequence = UserDefinedEnergySequence; - this.ElectricCurrentType = ElectricCurrentType; - this.InputVoltage = InputVoltage; - this.InputFrequency = InputFrequency; - this.FullLoadCurrent = FullLoadCurrent; - this.MinimumCircuitCurrent = MinimumCircuitCurrent; - this.MaximumPowerInput = MaximumPowerInput; - this.RatedPowerInput = RatedPowerInput; - this.InputPhase = InputPhase; - this.type = 360485395; - } + IfcLightDistributionCurveEnum.TYPE_A = { type: 3, value: "TYPE_A" }; + IfcLightDistributionCurveEnum.TYPE_B = { type: 3, value: "TYPE_B" }; + IfcLightDistributionCurveEnum.TYPE_C = { type: 3, value: "TYPE_C" }; + IfcLightDistributionCurveEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcLightDistributionCurveEnum = IfcLightDistributionCurveEnum; + class IfcLightEmissionSourceEnum { } - IFC2X32.IfcElectricalBaseProperties = IfcElectricalBaseProperties; - class IfcElement extends IfcProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1758889154; - } + IfcLightEmissionSourceEnum.COMPACTFLUORESCENT = { type: 3, value: "COMPACTFLUORESCENT" }; + IfcLightEmissionSourceEnum.FLUORESCENT = { type: 3, value: "FLUORESCENT" }; + IfcLightEmissionSourceEnum.HIGHPRESSUREMERCURY = { type: 3, value: "HIGHPRESSUREMERCURY" }; + IfcLightEmissionSourceEnum.HIGHPRESSURESODIUM = { type: 3, value: "HIGHPRESSURESODIUM" }; + IfcLightEmissionSourceEnum.LIGHTEMITTINGDIODE = { type: 3, value: "LIGHTEMITTINGDIODE" }; + IfcLightEmissionSourceEnum.LOWPRESSURESODIUM = { type: 3, value: "LOWPRESSURESODIUM" }; + IfcLightEmissionSourceEnum.LOWVOLTAGEHALOGEN = { type: 3, value: "LOWVOLTAGEHALOGEN" }; + IfcLightEmissionSourceEnum.MAINVOLTAGEHALOGEN = { type: 3, value: "MAINVOLTAGEHALOGEN" }; + IfcLightEmissionSourceEnum.METALHALIDE = { type: 3, value: "METALHALIDE" }; + IfcLightEmissionSourceEnum.TUNGSTENFILAMENT = { type: 3, value: "TUNGSTENFILAMENT" }; + IfcLightEmissionSourceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcLightEmissionSourceEnum = IfcLightEmissionSourceEnum; + class IfcLightFixtureTypeEnum { } - IFC2X32.IfcElement = IfcElement; - class IfcElementAssembly extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, AssemblyPlace, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.AssemblyPlace = AssemblyPlace; - this.PredefinedType = PredefinedType; - this.type = 4123344466; - } + IfcLightFixtureTypeEnum.POINTSOURCE = { type: 3, value: "POINTSOURCE" }; + IfcLightFixtureTypeEnum.DIRECTIONSOURCE = { type: 3, value: "DIRECTIONSOURCE" }; + IfcLightFixtureTypeEnum.SECURITYLIGHTING = { type: 3, value: "SECURITYLIGHTING" }; + IfcLightFixtureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcLightFixtureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcLightFixtureTypeEnum = IfcLightFixtureTypeEnum; + class IfcLoadGroupTypeEnum { } - IFC2X32.IfcElementAssembly = IfcElementAssembly; - class IfcElementComponent extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1623761950; - } + IfcLoadGroupTypeEnum.LOAD_GROUP = { type: 3, value: "LOAD_GROUP" }; + IfcLoadGroupTypeEnum.LOAD_CASE = { type: 3, value: "LOAD_CASE" }; + IfcLoadGroupTypeEnum.LOAD_COMBINATION = { type: 3, value: "LOAD_COMBINATION" }; + IfcLoadGroupTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcLoadGroupTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcLoadGroupTypeEnum = IfcLoadGroupTypeEnum; + class IfcLogicalOperatorEnum { } - IFC2X32.IfcElementComponent = IfcElementComponent; - class IfcElementComponentType extends IfcElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 2590856083; - } + IfcLogicalOperatorEnum.LOGICALAND = { type: 3, value: "LOGICALAND" }; + IfcLogicalOperatorEnum.LOGICALOR = { type: 3, value: "LOGICALOR" }; + IfcLogicalOperatorEnum.LOGICALXOR = { type: 3, value: "LOGICALXOR" }; + IfcLogicalOperatorEnum.LOGICALNOTAND = { type: 3, value: "LOGICALNOTAND" }; + IfcLogicalOperatorEnum.LOGICALNOTOR = { type: 3, value: "LOGICALNOTOR" }; + IFC42.IfcLogicalOperatorEnum = IfcLogicalOperatorEnum; + class IfcMechanicalFastenerTypeEnum { } - IFC2X32.IfcElementComponentType = IfcElementComponentType; - class IfcEllipse extends IfcConic { - constructor(expressID, Position, SemiAxis1, SemiAxis2) { - super(expressID, Position); - this.Position = Position; - this.SemiAxis1 = SemiAxis1; - this.SemiAxis2 = SemiAxis2; - this.type = 1704287377; - } + IfcMechanicalFastenerTypeEnum.ANCHORBOLT = { type: 3, value: "ANCHORBOLT" }; + IfcMechanicalFastenerTypeEnum.BOLT = { type: 3, value: "BOLT" }; + IfcMechanicalFastenerTypeEnum.DOWEL = { type: 3, value: "DOWEL" }; + IfcMechanicalFastenerTypeEnum.NAIL = { type: 3, value: "NAIL" }; + IfcMechanicalFastenerTypeEnum.NAILPLATE = { type: 3, value: "NAILPLATE" }; + IfcMechanicalFastenerTypeEnum.RIVET = { type: 3, value: "RIVET" }; + IfcMechanicalFastenerTypeEnum.SCREW = { type: 3, value: "SCREW" }; + IfcMechanicalFastenerTypeEnum.SHEARCONNECTOR = { type: 3, value: "SHEARCONNECTOR" }; + IfcMechanicalFastenerTypeEnum.STAPLE = { type: 3, value: "STAPLE" }; + IfcMechanicalFastenerTypeEnum.STUDSHEARCONNECTOR = { type: 3, value: "STUDSHEARCONNECTOR" }; + IfcMechanicalFastenerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcMechanicalFastenerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcMechanicalFastenerTypeEnum = IfcMechanicalFastenerTypeEnum; + class IfcMedicalDeviceTypeEnum { } - IFC2X32.IfcEllipse = IfcEllipse; - class IfcEnergyConversionDeviceType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 2107101300; - } + IfcMedicalDeviceTypeEnum.AIRSTATION = { type: 3, value: "AIRSTATION" }; + IfcMedicalDeviceTypeEnum.FEEDAIRUNIT = { type: 3, value: "FEEDAIRUNIT" }; + IfcMedicalDeviceTypeEnum.OXYGENGENERATOR = { type: 3, value: "OXYGENGENERATOR" }; + IfcMedicalDeviceTypeEnum.OXYGENPLANT = { type: 3, value: "OXYGENPLANT" }; + IfcMedicalDeviceTypeEnum.VACUUMSTATION = { type: 3, value: "VACUUMSTATION" }; + IfcMedicalDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcMedicalDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcMedicalDeviceTypeEnum = IfcMedicalDeviceTypeEnum; + class IfcMemberTypeEnum { } - IFC2X32.IfcEnergyConversionDeviceType = IfcEnergyConversionDeviceType; - class IfcEquipmentElement extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1962604670; - } + IfcMemberTypeEnum.BRACE = { type: 3, value: "BRACE" }; + IfcMemberTypeEnum.CHORD = { type: 3, value: "CHORD" }; + IfcMemberTypeEnum.COLLAR = { type: 3, value: "COLLAR" }; + IfcMemberTypeEnum.MEMBER = { type: 3, value: "MEMBER" }; + IfcMemberTypeEnum.MULLION = { type: 3, value: "MULLION" }; + IfcMemberTypeEnum.PLATE = { type: 3, value: "PLATE" }; + IfcMemberTypeEnum.POST = { type: 3, value: "POST" }; + IfcMemberTypeEnum.PURLIN = { type: 3, value: "PURLIN" }; + IfcMemberTypeEnum.RAFTER = { type: 3, value: "RAFTER" }; + IfcMemberTypeEnum.STRINGER = { type: 3, value: "STRINGER" }; + IfcMemberTypeEnum.STRUT = { type: 3, value: "STRUT" }; + IfcMemberTypeEnum.STUD = { type: 3, value: "STUD" }; + IfcMemberTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcMemberTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcMemberTypeEnum = IfcMemberTypeEnum; + class IfcMotorConnectionTypeEnum { } - IFC2X32.IfcEquipmentElement = IfcEquipmentElement; - class IfcEquipmentStandard extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.type = 3272907226; - } + IfcMotorConnectionTypeEnum.BELTDRIVE = { type: 3, value: "BELTDRIVE" }; + IfcMotorConnectionTypeEnum.COUPLING = { type: 3, value: "COUPLING" }; + IfcMotorConnectionTypeEnum.DIRECTDRIVE = { type: 3, value: "DIRECTDRIVE" }; + IfcMotorConnectionTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcMotorConnectionTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcMotorConnectionTypeEnum = IfcMotorConnectionTypeEnum; + class IfcNullStyle { } - IFC2X32.IfcEquipmentStandard = IfcEquipmentStandard; - class IfcEvaporativeCoolerType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3174744832; - } + IfcNullStyle.NULL = { type: 3, value: "NULL" }; + IFC42.IfcNullStyle = IfcNullStyle; + class IfcObjectTypeEnum { } - IFC2X32.IfcEvaporativeCoolerType = IfcEvaporativeCoolerType; - class IfcEvaporatorType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3390157468; - } + IfcObjectTypeEnum.PRODUCT = { type: 3, value: "PRODUCT" }; + IfcObjectTypeEnum.PROCESS = { type: 3, value: "PROCESS" }; + IfcObjectTypeEnum.CONTROL = { type: 3, value: "CONTROL" }; + IfcObjectTypeEnum.RESOURCE = { type: 3, value: "RESOURCE" }; + IfcObjectTypeEnum.ACTOR = { type: 3, value: "ACTOR" }; + IfcObjectTypeEnum.GROUP = { type: 3, value: "GROUP" }; + IfcObjectTypeEnum.PROJECT = { type: 3, value: "PROJECT" }; + IfcObjectTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcObjectTypeEnum = IfcObjectTypeEnum; + class IfcObjectiveEnum { } - IFC2X32.IfcEvaporatorType = IfcEvaporatorType; - class IfcFacetedBrep extends IfcManifoldSolidBrep { - constructor(expressID, Outer) { - super(expressID, Outer); - this.Outer = Outer; - this.type = 807026263; - } + IfcObjectiveEnum.CODECOMPLIANCE = { type: 3, value: "CODECOMPLIANCE" }; + IfcObjectiveEnum.CODEWAIVER = { type: 3, value: "CODEWAIVER" }; + IfcObjectiveEnum.DESIGNINTENT = { type: 3, value: "DESIGNINTENT" }; + IfcObjectiveEnum.EXTERNAL = { type: 3, value: "EXTERNAL" }; + IfcObjectiveEnum.HEALTHANDSAFETY = { type: 3, value: "HEALTHANDSAFETY" }; + IfcObjectiveEnum.MERGECONFLICT = { type: 3, value: "MERGECONFLICT" }; + IfcObjectiveEnum.MODELVIEW = { type: 3, value: "MODELVIEW" }; + IfcObjectiveEnum.PARAMETER = { type: 3, value: "PARAMETER" }; + IfcObjectiveEnum.REQUIREMENT = { type: 3, value: "REQUIREMENT" }; + IfcObjectiveEnum.SPECIFICATION = { type: 3, value: "SPECIFICATION" }; + IfcObjectiveEnum.TRIGGERCONDITION = { type: 3, value: "TRIGGERCONDITION" }; + IfcObjectiveEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcObjectiveEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcObjectiveEnum = IfcObjectiveEnum; + class IfcOccupantTypeEnum { } - IFC2X32.IfcFacetedBrep = IfcFacetedBrep; - class IfcFacetedBrepWithVoids extends IfcManifoldSolidBrep { - constructor(expressID, Outer, Voids) { - super(expressID, Outer); - this.Outer = Outer; - this.Voids = Voids; - this.type = 3737207727; - } + IfcOccupantTypeEnum.ASSIGNEE = { type: 3, value: "ASSIGNEE" }; + IfcOccupantTypeEnum.ASSIGNOR = { type: 3, value: "ASSIGNOR" }; + IfcOccupantTypeEnum.LESSEE = { type: 3, value: "LESSEE" }; + IfcOccupantTypeEnum.LESSOR = { type: 3, value: "LESSOR" }; + IfcOccupantTypeEnum.LETTINGAGENT = { type: 3, value: "LETTINGAGENT" }; + IfcOccupantTypeEnum.OWNER = { type: 3, value: "OWNER" }; + IfcOccupantTypeEnum.TENANT = { type: 3, value: "TENANT" }; + IfcOccupantTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcOccupantTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcOccupantTypeEnum = IfcOccupantTypeEnum; + class IfcOpeningElementTypeEnum { } - IFC2X32.IfcFacetedBrepWithVoids = IfcFacetedBrepWithVoids; - class IfcFastener extends IfcElementComponent { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 647756555; - } + IfcOpeningElementTypeEnum.OPENING = { type: 3, value: "OPENING" }; + IfcOpeningElementTypeEnum.RECESS = { type: 3, value: "RECESS" }; + IfcOpeningElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcOpeningElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcOpeningElementTypeEnum = IfcOpeningElementTypeEnum; + class IfcOutletTypeEnum { } - IFC2X32.IfcFastener = IfcFastener; - class IfcFastenerType extends IfcElementComponentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 2489546625; - } + IfcOutletTypeEnum.AUDIOVISUALOUTLET = { type: 3, value: "AUDIOVISUALOUTLET" }; + IfcOutletTypeEnum.COMMUNICATIONSOUTLET = { type: 3, value: "COMMUNICATIONSOUTLET" }; + IfcOutletTypeEnum.POWEROUTLET = { type: 3, value: "POWEROUTLET" }; + IfcOutletTypeEnum.DATAOUTLET = { type: 3, value: "DATAOUTLET" }; + IfcOutletTypeEnum.TELEPHONEOUTLET = { type: 3, value: "TELEPHONEOUTLET" }; + IfcOutletTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcOutletTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcOutletTypeEnum = IfcOutletTypeEnum; + class IfcPerformanceHistoryTypeEnum { } - IFC2X32.IfcFastenerType = IfcFastenerType; - class IfcFeatureElement extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 2827207264; - } + IfcPerformanceHistoryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcPerformanceHistoryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcPerformanceHistoryTypeEnum = IfcPerformanceHistoryTypeEnum; + class IfcPermeableCoveringOperationEnum { } - IFC2X32.IfcFeatureElement = IfcFeatureElement; - class IfcFeatureElementAddition extends IfcFeatureElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 2143335405; - } + IfcPermeableCoveringOperationEnum.GRILL = { type: 3, value: "GRILL" }; + IfcPermeableCoveringOperationEnum.LOUVER = { type: 3, value: "LOUVER" }; + IfcPermeableCoveringOperationEnum.SCREEN = { type: 3, value: "SCREEN" }; + IfcPermeableCoveringOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcPermeableCoveringOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcPermeableCoveringOperationEnum = IfcPermeableCoveringOperationEnum; + class IfcPermitTypeEnum { } - IFC2X32.IfcFeatureElementAddition = IfcFeatureElementAddition; - class IfcFeatureElementSubtraction extends IfcFeatureElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1287392070; - } + IfcPermitTypeEnum.ACCESS = { type: 3, value: "ACCESS" }; + IfcPermitTypeEnum.BUILDING = { type: 3, value: "BUILDING" }; + IfcPermitTypeEnum.WORK = { type: 3, value: "WORK" }; + IfcPermitTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcPermitTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcPermitTypeEnum = IfcPermitTypeEnum; + class IfcPhysicalOrVirtualEnum { } - IFC2X32.IfcFeatureElementSubtraction = IfcFeatureElementSubtraction; - class IfcFlowControllerType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 3907093117; - } + IfcPhysicalOrVirtualEnum.PHYSICAL = { type: 3, value: "PHYSICAL" }; + IfcPhysicalOrVirtualEnum.VIRTUAL = { type: 3, value: "VIRTUAL" }; + IfcPhysicalOrVirtualEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcPhysicalOrVirtualEnum = IfcPhysicalOrVirtualEnum; + class IfcPileConstructionEnum { } - IFC2X32.IfcFlowControllerType = IfcFlowControllerType; - class IfcFlowFittingType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 3198132628; - } + IfcPileConstructionEnum.CAST_IN_PLACE = { type: 3, value: "CAST_IN_PLACE" }; + IfcPileConstructionEnum.COMPOSITE = { type: 3, value: "COMPOSITE" }; + IfcPileConstructionEnum.PRECAST_CONCRETE = { type: 3, value: "PRECAST_CONCRETE" }; + IfcPileConstructionEnum.PREFAB_STEEL = { type: 3, value: "PREFAB_STEEL" }; + IfcPileConstructionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcPileConstructionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcPileConstructionEnum = IfcPileConstructionEnum; + class IfcPileTypeEnum { } - IFC2X32.IfcFlowFittingType = IfcFlowFittingType; - class IfcFlowMeterType extends IfcFlowControllerType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3815607619; - } + IfcPileTypeEnum.BORED = { type: 3, value: "BORED" }; + IfcPileTypeEnum.DRIVEN = { type: 3, value: "DRIVEN" }; + IfcPileTypeEnum.JETGROUTING = { type: 3, value: "JETGROUTING" }; + IfcPileTypeEnum.COHESION = { type: 3, value: "COHESION" }; + IfcPileTypeEnum.FRICTION = { type: 3, value: "FRICTION" }; + IfcPileTypeEnum.SUPPORT = { type: 3, value: "SUPPORT" }; + IfcPileTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcPileTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcPileTypeEnum = IfcPileTypeEnum; + class IfcPipeFittingTypeEnum { } - IFC2X32.IfcFlowMeterType = IfcFlowMeterType; - class IfcFlowMovingDeviceType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 1482959167; - } + IfcPipeFittingTypeEnum.BEND = { type: 3, value: "BEND" }; + IfcPipeFittingTypeEnum.CONNECTOR = { type: 3, value: "CONNECTOR" }; + IfcPipeFittingTypeEnum.ENTRY = { type: 3, value: "ENTRY" }; + IfcPipeFittingTypeEnum.EXIT = { type: 3, value: "EXIT" }; + IfcPipeFittingTypeEnum.JUNCTION = { type: 3, value: "JUNCTION" }; + IfcPipeFittingTypeEnum.OBSTRUCTION = { type: 3, value: "OBSTRUCTION" }; + IfcPipeFittingTypeEnum.TRANSITION = { type: 3, value: "TRANSITION" }; + IfcPipeFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcPipeFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcPipeFittingTypeEnum = IfcPipeFittingTypeEnum; + class IfcPipeSegmentTypeEnum { } - IFC2X32.IfcFlowMovingDeviceType = IfcFlowMovingDeviceType; - class IfcFlowSegmentType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 1834744321; - } + IfcPipeSegmentTypeEnum.CULVERT = { type: 3, value: "CULVERT" }; + IfcPipeSegmentTypeEnum.FLEXIBLESEGMENT = { type: 3, value: "FLEXIBLESEGMENT" }; + IfcPipeSegmentTypeEnum.RIGIDSEGMENT = { type: 3, value: "RIGIDSEGMENT" }; + IfcPipeSegmentTypeEnum.GUTTER = { type: 3, value: "GUTTER" }; + IfcPipeSegmentTypeEnum.SPOOL = { type: 3, value: "SPOOL" }; + IfcPipeSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcPipeSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcPipeSegmentTypeEnum = IfcPipeSegmentTypeEnum; + class IfcPlateTypeEnum { } - IFC2X32.IfcFlowSegmentType = IfcFlowSegmentType; - class IfcFlowStorageDeviceType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 1339347760; - } + IfcPlateTypeEnum.CURTAIN_PANEL = { type: 3, value: "CURTAIN_PANEL" }; + IfcPlateTypeEnum.SHEET = { type: 3, value: "SHEET" }; + IfcPlateTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcPlateTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcPlateTypeEnum = IfcPlateTypeEnum; + class IfcPreferredSurfaceCurveRepresentation { } - IFC2X32.IfcFlowStorageDeviceType = IfcFlowStorageDeviceType; - class IfcFlowTerminalType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 2297155007; - } + IfcPreferredSurfaceCurveRepresentation.CURVE3D = { type: 3, value: "CURVE3D" }; + IfcPreferredSurfaceCurveRepresentation.PCURVE_S1 = { type: 3, value: "PCURVE_S1" }; + IfcPreferredSurfaceCurveRepresentation.PCURVE_S2 = { type: 3, value: "PCURVE_S2" }; + IFC42.IfcPreferredSurfaceCurveRepresentation = IfcPreferredSurfaceCurveRepresentation; + class IfcProcedureTypeEnum { } - IFC2X32.IfcFlowTerminalType = IfcFlowTerminalType; - class IfcFlowTreatmentDeviceType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 3009222698; - } + IfcProcedureTypeEnum.ADVICE_CAUTION = { type: 3, value: "ADVICE_CAUTION" }; + IfcProcedureTypeEnum.ADVICE_NOTE = { type: 3, value: "ADVICE_NOTE" }; + IfcProcedureTypeEnum.ADVICE_WARNING = { type: 3, value: "ADVICE_WARNING" }; + IfcProcedureTypeEnum.CALIBRATION = { type: 3, value: "CALIBRATION" }; + IfcProcedureTypeEnum.DIAGNOSTIC = { type: 3, value: "DIAGNOSTIC" }; + IfcProcedureTypeEnum.SHUTDOWN = { type: 3, value: "SHUTDOWN" }; + IfcProcedureTypeEnum.STARTUP = { type: 3, value: "STARTUP" }; + IfcProcedureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcProcedureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcProcedureTypeEnum = IfcProcedureTypeEnum; + class IfcProfileTypeEnum { } - IFC2X32.IfcFlowTreatmentDeviceType = IfcFlowTreatmentDeviceType; - class IfcFurnishingElement extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 263784265; - } + IfcProfileTypeEnum.CURVE = { type: 3, value: "CURVE" }; + IfcProfileTypeEnum.AREA = { type: 3, value: "AREA" }; + IFC42.IfcProfileTypeEnum = IfcProfileTypeEnum; + class IfcProjectOrderTypeEnum { } - IFC2X32.IfcFurnishingElement = IfcFurnishingElement; - class IfcFurnitureStandard extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.type = 814719939; - } + IfcProjectOrderTypeEnum.CHANGEORDER = { type: 3, value: "CHANGEORDER" }; + IfcProjectOrderTypeEnum.MAINTENANCEWORKORDER = { type: 3, value: "MAINTENANCEWORKORDER" }; + IfcProjectOrderTypeEnum.MOVEORDER = { type: 3, value: "MOVEORDER" }; + IfcProjectOrderTypeEnum.PURCHASEORDER = { type: 3, value: "PURCHASEORDER" }; + IfcProjectOrderTypeEnum.WORKORDER = { type: 3, value: "WORKORDER" }; + IfcProjectOrderTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcProjectOrderTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcProjectOrderTypeEnum = IfcProjectOrderTypeEnum; + class IfcProjectedOrTrueLengthEnum { } - IFC2X32.IfcFurnitureStandard = IfcFurnitureStandard; - class IfcGasTerminalType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 200128114; - } + IfcProjectedOrTrueLengthEnum.PROJECTED_LENGTH = { type: 3, value: "PROJECTED_LENGTH" }; + IfcProjectedOrTrueLengthEnum.TRUE_LENGTH = { type: 3, value: "TRUE_LENGTH" }; + IFC42.IfcProjectedOrTrueLengthEnum = IfcProjectedOrTrueLengthEnum; + class IfcProjectionElementTypeEnum { } - IFC2X32.IfcGasTerminalType = IfcGasTerminalType; - class IfcGrid extends IfcProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, UAxes, VAxes, WAxes) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.UAxes = UAxes; - this.VAxes = VAxes; - this.WAxes = WAxes; - this.type = 3009204131; - } + IfcProjectionElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcProjectionElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcProjectionElementTypeEnum = IfcProjectionElementTypeEnum; + class IfcPropertySetTemplateTypeEnum { } - IFC2X32.IfcGrid = IfcGrid; - class IfcGroup extends IfcObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.type = 2706460486; - } + IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENONLY = { type: 3, value: "PSET_TYPEDRIVENONLY" }; + IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENOVERRIDE = { type: 3, value: "PSET_TYPEDRIVENOVERRIDE" }; + IfcPropertySetTemplateTypeEnum.PSET_OCCURRENCEDRIVEN = { type: 3, value: "PSET_OCCURRENCEDRIVEN" }; + IfcPropertySetTemplateTypeEnum.PSET_PERFORMANCEDRIVEN = { type: 3, value: "PSET_PERFORMANCEDRIVEN" }; + IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENONLY = { type: 3, value: "QTO_TYPEDRIVENONLY" }; + IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENOVERRIDE = { type: 3, value: "QTO_TYPEDRIVENOVERRIDE" }; + IfcPropertySetTemplateTypeEnum.QTO_OCCURRENCEDRIVEN = { type: 3, value: "QTO_OCCURRENCEDRIVEN" }; + IfcPropertySetTemplateTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcPropertySetTemplateTypeEnum = IfcPropertySetTemplateTypeEnum; + class IfcProtectiveDeviceTrippingUnitTypeEnum { } - IFC2X32.IfcGroup = IfcGroup; - class IfcHeatExchangerType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1251058090; - } + IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTRONIC = { type: 3, value: "ELECTRONIC" }; + IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTROMAGNETIC = { type: 3, value: "ELECTROMAGNETIC" }; + IfcProtectiveDeviceTrippingUnitTypeEnum.RESIDUALCURRENT = { type: 3, value: "RESIDUALCURRENT" }; + IfcProtectiveDeviceTrippingUnitTypeEnum.THERMAL = { type: 3, value: "THERMAL" }; + IfcProtectiveDeviceTrippingUnitTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcProtectiveDeviceTrippingUnitTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcProtectiveDeviceTrippingUnitTypeEnum = IfcProtectiveDeviceTrippingUnitTypeEnum; + class IfcProtectiveDeviceTypeEnum { } - IFC2X32.IfcHeatExchangerType = IfcHeatExchangerType; - class IfcHumidifierType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1806887404; - } + IfcProtectiveDeviceTypeEnum.CIRCUITBREAKER = { type: 3, value: "CIRCUITBREAKER" }; + IfcProtectiveDeviceTypeEnum.EARTHLEAKAGECIRCUITBREAKER = { type: 3, value: "EARTHLEAKAGECIRCUITBREAKER" }; + IfcProtectiveDeviceTypeEnum.EARTHINGSWITCH = { type: 3, value: "EARTHINGSWITCH" }; + IfcProtectiveDeviceTypeEnum.FUSEDISCONNECTOR = { type: 3, value: "FUSEDISCONNECTOR" }; + IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTCIRCUITBREAKER = { type: 3, value: "RESIDUALCURRENTCIRCUITBREAKER" }; + IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTSWITCH = { type: 3, value: "RESIDUALCURRENTSWITCH" }; + IfcProtectiveDeviceTypeEnum.VARISTOR = { type: 3, value: "VARISTOR" }; + IfcProtectiveDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcProtectiveDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcProtectiveDeviceTypeEnum = IfcProtectiveDeviceTypeEnum; + class IfcPumpTypeEnum { } - IFC2X32.IfcHumidifierType = IfcHumidifierType; - class IfcInventory extends IfcGroup { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, InventoryType, Jurisdiction, ResponsiblePersons, LastUpdateDate, CurrentValue, OriginalValue) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.InventoryType = InventoryType; - this.Jurisdiction = Jurisdiction; - this.ResponsiblePersons = ResponsiblePersons; - this.LastUpdateDate = LastUpdateDate; - this.CurrentValue = CurrentValue; - this.OriginalValue = OriginalValue; - this.type = 2391368822; - } + IfcPumpTypeEnum.CIRCULATOR = { type: 3, value: "CIRCULATOR" }; + IfcPumpTypeEnum.ENDSUCTION = { type: 3, value: "ENDSUCTION" }; + IfcPumpTypeEnum.SPLITCASE = { type: 3, value: "SPLITCASE" }; + IfcPumpTypeEnum.SUBMERSIBLEPUMP = { type: 3, value: "SUBMERSIBLEPUMP" }; + IfcPumpTypeEnum.SUMPPUMP = { type: 3, value: "SUMPPUMP" }; + IfcPumpTypeEnum.VERTICALINLINE = { type: 3, value: "VERTICALINLINE" }; + IfcPumpTypeEnum.VERTICALTURBINE = { type: 3, value: "VERTICALTURBINE" }; + IfcPumpTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcPumpTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcPumpTypeEnum = IfcPumpTypeEnum; + class IfcRailingTypeEnum { } - IFC2X32.IfcInventory = IfcInventory; - class IfcJunctionBoxType extends IfcFlowFittingType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 4288270099; - } + IfcRailingTypeEnum.HANDRAIL = { type: 3, value: "HANDRAIL" }; + IfcRailingTypeEnum.GUARDRAIL = { type: 3, value: "GUARDRAIL" }; + IfcRailingTypeEnum.BALUSTRADE = { type: 3, value: "BALUSTRADE" }; + IfcRailingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcRailingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcRailingTypeEnum = IfcRailingTypeEnum; + class IfcRampFlightTypeEnum { } - IFC2X32.IfcJunctionBoxType = IfcJunctionBoxType; - class IfcLaborResource extends IfcConstructionResource { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity, SkillSet) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ResourceIdentifier = ResourceIdentifier; - this.ResourceGroup = ResourceGroup; - this.ResourceConsumption = ResourceConsumption; - this.BaseQuantity = BaseQuantity; - this.SkillSet = SkillSet; - this.type = 3827777499; - } + IfcRampFlightTypeEnum.STRAIGHT = { type: 3, value: "STRAIGHT" }; + IfcRampFlightTypeEnum.SPIRAL = { type: 3, value: "SPIRAL" }; + IfcRampFlightTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcRampFlightTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcRampFlightTypeEnum = IfcRampFlightTypeEnum; + class IfcRampTypeEnum { } - IFC2X32.IfcLaborResource = IfcLaborResource; - class IfcLampType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1051575348; - } + IfcRampTypeEnum.STRAIGHT_RUN_RAMP = { type: 3, value: "STRAIGHT_RUN_RAMP" }; + IfcRampTypeEnum.TWO_STRAIGHT_RUN_RAMP = { type: 3, value: "TWO_STRAIGHT_RUN_RAMP" }; + IfcRampTypeEnum.QUARTER_TURN_RAMP = { type: 3, value: "QUARTER_TURN_RAMP" }; + IfcRampTypeEnum.TWO_QUARTER_TURN_RAMP = { type: 3, value: "TWO_QUARTER_TURN_RAMP" }; + IfcRampTypeEnum.HALF_TURN_RAMP = { type: 3, value: "HALF_TURN_RAMP" }; + IfcRampTypeEnum.SPIRAL_RAMP = { type: 3, value: "SPIRAL_RAMP" }; + IfcRampTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcRampTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcRampTypeEnum = IfcRampTypeEnum; + class IfcRecurrenceTypeEnum { } - IFC2X32.IfcLampType = IfcLampType; - class IfcLightFixtureType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1161773419; - } + IfcRecurrenceTypeEnum.DAILY = { type: 3, value: "DAILY" }; + IfcRecurrenceTypeEnum.WEEKLY = { type: 3, value: "WEEKLY" }; + IfcRecurrenceTypeEnum.MONTHLY_BY_DAY_OF_MONTH = { type: 3, value: "MONTHLY_BY_DAY_OF_MONTH" }; + IfcRecurrenceTypeEnum.MONTHLY_BY_POSITION = { type: 3, value: "MONTHLY_BY_POSITION" }; + IfcRecurrenceTypeEnum.BY_DAY_COUNT = { type: 3, value: "BY_DAY_COUNT" }; + IfcRecurrenceTypeEnum.BY_WEEKDAY_COUNT = { type: 3, value: "BY_WEEKDAY_COUNT" }; + IfcRecurrenceTypeEnum.YEARLY_BY_DAY_OF_MONTH = { type: 3, value: "YEARLY_BY_DAY_OF_MONTH" }; + IfcRecurrenceTypeEnum.YEARLY_BY_POSITION = { type: 3, value: "YEARLY_BY_POSITION" }; + IFC42.IfcRecurrenceTypeEnum = IfcRecurrenceTypeEnum; + class IfcReflectanceMethodEnum { } - IFC2X32.IfcLightFixtureType = IfcLightFixtureType; - class IfcLinearDimension extends IfcDimensionCurveDirectedCallout { - constructor(expressID, Contents) { - super(expressID, Contents); - this.Contents = Contents; - this.type = 2506943328; - } + IfcReflectanceMethodEnum.BLINN = { type: 3, value: "BLINN" }; + IfcReflectanceMethodEnum.FLAT = { type: 3, value: "FLAT" }; + IfcReflectanceMethodEnum.GLASS = { type: 3, value: "GLASS" }; + IfcReflectanceMethodEnum.MATT = { type: 3, value: "MATT" }; + IfcReflectanceMethodEnum.METAL = { type: 3, value: "METAL" }; + IfcReflectanceMethodEnum.MIRROR = { type: 3, value: "MIRROR" }; + IfcReflectanceMethodEnum.PHONG = { type: 3, value: "PHONG" }; + IfcReflectanceMethodEnum.PLASTIC = { type: 3, value: "PLASTIC" }; + IfcReflectanceMethodEnum.STRAUSS = { type: 3, value: "STRAUSS" }; + IfcReflectanceMethodEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcReflectanceMethodEnum = IfcReflectanceMethodEnum; + class IfcReinforcingBarRoleEnum { } - IFC2X32.IfcLinearDimension = IfcLinearDimension; - class IfcMechanicalFastener extends IfcFastener { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, NominalDiameter, NominalLength) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.NominalDiameter = NominalDiameter; - this.NominalLength = NominalLength; - this.type = 377706215; - } + IfcReinforcingBarRoleEnum.MAIN = { type: 3, value: "MAIN" }; + IfcReinforcingBarRoleEnum.SHEAR = { type: 3, value: "SHEAR" }; + IfcReinforcingBarRoleEnum.LIGATURE = { type: 3, value: "LIGATURE" }; + IfcReinforcingBarRoleEnum.STUD = { type: 3, value: "STUD" }; + IfcReinforcingBarRoleEnum.PUNCHING = { type: 3, value: "PUNCHING" }; + IfcReinforcingBarRoleEnum.EDGE = { type: 3, value: "EDGE" }; + IfcReinforcingBarRoleEnum.RING = { type: 3, value: "RING" }; + IfcReinforcingBarRoleEnum.ANCHORING = { type: 3, value: "ANCHORING" }; + IfcReinforcingBarRoleEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcReinforcingBarRoleEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcReinforcingBarRoleEnum = IfcReinforcingBarRoleEnum; + class IfcReinforcingBarSurfaceEnum { } - IFC2X32.IfcMechanicalFastener = IfcMechanicalFastener; - class IfcMechanicalFastenerType extends IfcFastenerType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 2108223431; - } + IfcReinforcingBarSurfaceEnum.PLAIN = { type: 3, value: "PLAIN" }; + IfcReinforcingBarSurfaceEnum.TEXTURED = { type: 3, value: "TEXTURED" }; + IFC42.IfcReinforcingBarSurfaceEnum = IfcReinforcingBarSurfaceEnum; + class IfcReinforcingBarTypeEnum { } - IFC2X32.IfcMechanicalFastenerType = IfcMechanicalFastenerType; - class IfcMemberType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3181161470; - } + IfcReinforcingBarTypeEnum.ANCHORING = { type: 3, value: "ANCHORING" }; + IfcReinforcingBarTypeEnum.EDGE = { type: 3, value: "EDGE" }; + IfcReinforcingBarTypeEnum.LIGATURE = { type: 3, value: "LIGATURE" }; + IfcReinforcingBarTypeEnum.MAIN = { type: 3, value: "MAIN" }; + IfcReinforcingBarTypeEnum.PUNCHING = { type: 3, value: "PUNCHING" }; + IfcReinforcingBarTypeEnum.RING = { type: 3, value: "RING" }; + IfcReinforcingBarTypeEnum.SHEAR = { type: 3, value: "SHEAR" }; + IfcReinforcingBarTypeEnum.STUD = { type: 3, value: "STUD" }; + IfcReinforcingBarTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcReinforcingBarTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcReinforcingBarTypeEnum = IfcReinforcingBarTypeEnum; + class IfcReinforcingMeshTypeEnum { } - IFC2X32.IfcMemberType = IfcMemberType; - class IfcMotorConnectionType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 977012517; - } + IfcReinforcingMeshTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcReinforcingMeshTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcReinforcingMeshTypeEnum = IfcReinforcingMeshTypeEnum; + class IfcRoleEnum { } - IFC2X32.IfcMotorConnectionType = IfcMotorConnectionType; - class IfcMove extends IfcTask { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TaskId, Status, WorkMethod, IsMilestone, Priority, MoveFrom, MoveTo, PunchList) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TaskId, Status, WorkMethod, IsMilestone, Priority); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.TaskId = TaskId; - this.Status = Status; - this.WorkMethod = WorkMethod; - this.IsMilestone = IsMilestone; - this.Priority = Priority; - this.MoveFrom = MoveFrom; - this.MoveTo = MoveTo; - this.PunchList = PunchList; - this.type = 1916936684; - } + IfcRoleEnum.SUPPLIER = { type: 3, value: "SUPPLIER" }; + IfcRoleEnum.MANUFACTURER = { type: 3, value: "MANUFACTURER" }; + IfcRoleEnum.CONTRACTOR = { type: 3, value: "CONTRACTOR" }; + IfcRoleEnum.SUBCONTRACTOR = { type: 3, value: "SUBCONTRACTOR" }; + IfcRoleEnum.ARCHITECT = { type: 3, value: "ARCHITECT" }; + IfcRoleEnum.STRUCTURALENGINEER = { type: 3, value: "STRUCTURALENGINEER" }; + IfcRoleEnum.COSTENGINEER = { type: 3, value: "COSTENGINEER" }; + IfcRoleEnum.CLIENT = { type: 3, value: "CLIENT" }; + IfcRoleEnum.BUILDINGOWNER = { type: 3, value: "BUILDINGOWNER" }; + IfcRoleEnum.BUILDINGOPERATOR = { type: 3, value: "BUILDINGOPERATOR" }; + IfcRoleEnum.MECHANICALENGINEER = { type: 3, value: "MECHANICALENGINEER" }; + IfcRoleEnum.ELECTRICALENGINEER = { type: 3, value: "ELECTRICALENGINEER" }; + IfcRoleEnum.PROJECTMANAGER = { type: 3, value: "PROJECTMANAGER" }; + IfcRoleEnum.FACILITIESMANAGER = { type: 3, value: "FACILITIESMANAGER" }; + IfcRoleEnum.CIVILENGINEER = { type: 3, value: "CIVILENGINEER" }; + IfcRoleEnum.COMMISSIONINGENGINEER = { type: 3, value: "COMMISSIONINGENGINEER" }; + IfcRoleEnum.ENGINEER = { type: 3, value: "ENGINEER" }; + IfcRoleEnum.OWNER = { type: 3, value: "OWNER" }; + IfcRoleEnum.CONSULTANT = { type: 3, value: "CONSULTANT" }; + IfcRoleEnum.CONSTRUCTIONMANAGER = { type: 3, value: "CONSTRUCTIONMANAGER" }; + IfcRoleEnum.FIELDCONSTRUCTIONMANAGER = { type: 3, value: "FIELDCONSTRUCTIONMANAGER" }; + IfcRoleEnum.RESELLER = { type: 3, value: "RESELLER" }; + IfcRoleEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IFC42.IfcRoleEnum = IfcRoleEnum; + class IfcRoofTypeEnum { } - IFC2X32.IfcMove = IfcMove; - class IfcOccupant extends IfcActor { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.TheActor = TheActor; - this.PredefinedType = PredefinedType; - this.type = 4143007308; - } + IfcRoofTypeEnum.FLAT_ROOF = { type: 3, value: "FLAT_ROOF" }; + IfcRoofTypeEnum.SHED_ROOF = { type: 3, value: "SHED_ROOF" }; + IfcRoofTypeEnum.GABLE_ROOF = { type: 3, value: "GABLE_ROOF" }; + IfcRoofTypeEnum.HIP_ROOF = { type: 3, value: "HIP_ROOF" }; + IfcRoofTypeEnum.HIPPED_GABLE_ROOF = { type: 3, value: "HIPPED_GABLE_ROOF" }; + IfcRoofTypeEnum.GAMBREL_ROOF = { type: 3, value: "GAMBREL_ROOF" }; + IfcRoofTypeEnum.MANSARD_ROOF = { type: 3, value: "MANSARD_ROOF" }; + IfcRoofTypeEnum.BARREL_ROOF = { type: 3, value: "BARREL_ROOF" }; + IfcRoofTypeEnum.RAINBOW_ROOF = { type: 3, value: "RAINBOW_ROOF" }; + IfcRoofTypeEnum.BUTTERFLY_ROOF = { type: 3, value: "BUTTERFLY_ROOF" }; + IfcRoofTypeEnum.PAVILION_ROOF = { type: 3, value: "PAVILION_ROOF" }; + IfcRoofTypeEnum.DOME_ROOF = { type: 3, value: "DOME_ROOF" }; + IfcRoofTypeEnum.FREEFORM = { type: 3, value: "FREEFORM" }; + IfcRoofTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcRoofTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcRoofTypeEnum = IfcRoofTypeEnum; + class IfcSIPrefix { } - IFC2X32.IfcOccupant = IfcOccupant; - class IfcOpeningElement extends IfcFeatureElementSubtraction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 3588315303; - } + IfcSIPrefix.EXA = { type: 3, value: "EXA" }; + IfcSIPrefix.PETA = { type: 3, value: "PETA" }; + IfcSIPrefix.TERA = { type: 3, value: "TERA" }; + IfcSIPrefix.GIGA = { type: 3, value: "GIGA" }; + IfcSIPrefix.MEGA = { type: 3, value: "MEGA" }; + IfcSIPrefix.KILO = { type: 3, value: "KILO" }; + IfcSIPrefix.HECTO = { type: 3, value: "HECTO" }; + IfcSIPrefix.DECA = { type: 3, value: "DECA" }; + IfcSIPrefix.DECI = { type: 3, value: "DECI" }; + IfcSIPrefix.CENTI = { type: 3, value: "CENTI" }; + IfcSIPrefix.MILLI = { type: 3, value: "MILLI" }; + IfcSIPrefix.MICRO = { type: 3, value: "MICRO" }; + IfcSIPrefix.NANO = { type: 3, value: "NANO" }; + IfcSIPrefix.PICO = { type: 3, value: "PICO" }; + IfcSIPrefix.FEMTO = { type: 3, value: "FEMTO" }; + IfcSIPrefix.ATTO = { type: 3, value: "ATTO" }; + IFC42.IfcSIPrefix = IfcSIPrefix; + class IfcSIUnitName { } - IFC2X32.IfcOpeningElement = IfcOpeningElement; - class IfcOrderAction extends IfcTask { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TaskId, Status, WorkMethod, IsMilestone, Priority, ActionID) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TaskId, Status, WorkMethod, IsMilestone, Priority); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.TaskId = TaskId; - this.Status = Status; - this.WorkMethod = WorkMethod; - this.IsMilestone = IsMilestone; - this.Priority = Priority; - this.ActionID = ActionID; - this.type = 3425660407; - } + IfcSIUnitName.AMPERE = { type: 3, value: "AMPERE" }; + IfcSIUnitName.BECQUEREL = { type: 3, value: "BECQUEREL" }; + IfcSIUnitName.CANDELA = { type: 3, value: "CANDELA" }; + IfcSIUnitName.COULOMB = { type: 3, value: "COULOMB" }; + IfcSIUnitName.CUBIC_METRE = { type: 3, value: "CUBIC_METRE" }; + IfcSIUnitName.DEGREE_CELSIUS = { type: 3, value: "DEGREE_CELSIUS" }; + IfcSIUnitName.FARAD = { type: 3, value: "FARAD" }; + IfcSIUnitName.GRAM = { type: 3, value: "GRAM" }; + IfcSIUnitName.GRAY = { type: 3, value: "GRAY" }; + IfcSIUnitName.HENRY = { type: 3, value: "HENRY" }; + IfcSIUnitName.HERTZ = { type: 3, value: "HERTZ" }; + IfcSIUnitName.JOULE = { type: 3, value: "JOULE" }; + IfcSIUnitName.KELVIN = { type: 3, value: "KELVIN" }; + IfcSIUnitName.LUMEN = { type: 3, value: "LUMEN" }; + IfcSIUnitName.LUX = { type: 3, value: "LUX" }; + IfcSIUnitName.METRE = { type: 3, value: "METRE" }; + IfcSIUnitName.MOLE = { type: 3, value: "MOLE" }; + IfcSIUnitName.NEWTON = { type: 3, value: "NEWTON" }; + IfcSIUnitName.OHM = { type: 3, value: "OHM" }; + IfcSIUnitName.PASCAL = { type: 3, value: "PASCAL" }; + IfcSIUnitName.RADIAN = { type: 3, value: "RADIAN" }; + IfcSIUnitName.SECOND = { type: 3, value: "SECOND" }; + IfcSIUnitName.SIEMENS = { type: 3, value: "SIEMENS" }; + IfcSIUnitName.SIEVERT = { type: 3, value: "SIEVERT" }; + IfcSIUnitName.SQUARE_METRE = { type: 3, value: "SQUARE_METRE" }; + IfcSIUnitName.STERADIAN = { type: 3, value: "STERADIAN" }; + IfcSIUnitName.TESLA = { type: 3, value: "TESLA" }; + IfcSIUnitName.VOLT = { type: 3, value: "VOLT" }; + IfcSIUnitName.WATT = { type: 3, value: "WATT" }; + IfcSIUnitName.WEBER = { type: 3, value: "WEBER" }; + IFC42.IfcSIUnitName = IfcSIUnitName; + class IfcSanitaryTerminalTypeEnum { } - IFC2X32.IfcOrderAction = IfcOrderAction; - class IfcOutletType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2837617999; - } + IfcSanitaryTerminalTypeEnum.BATH = { type: 3, value: "BATH" }; + IfcSanitaryTerminalTypeEnum.BIDET = { type: 3, value: "BIDET" }; + IfcSanitaryTerminalTypeEnum.CISTERN = { type: 3, value: "CISTERN" }; + IfcSanitaryTerminalTypeEnum.SHOWER = { type: 3, value: "SHOWER" }; + IfcSanitaryTerminalTypeEnum.SINK = { type: 3, value: "SINK" }; + IfcSanitaryTerminalTypeEnum.SANITARYFOUNTAIN = { type: 3, value: "SANITARYFOUNTAIN" }; + IfcSanitaryTerminalTypeEnum.TOILETPAN = { type: 3, value: "TOILETPAN" }; + IfcSanitaryTerminalTypeEnum.URINAL = { type: 3, value: "URINAL" }; + IfcSanitaryTerminalTypeEnum.WASHHANDBASIN = { type: 3, value: "WASHHANDBASIN" }; + IfcSanitaryTerminalTypeEnum.WCSEAT = { type: 3, value: "WCSEAT" }; + IfcSanitaryTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcSanitaryTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcSanitaryTerminalTypeEnum = IfcSanitaryTerminalTypeEnum; + class IfcSectionTypeEnum { } - IFC2X32.IfcOutletType = IfcOutletType; - class IfcPerformanceHistory extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LifeCyclePhase) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.LifeCyclePhase = LifeCyclePhase; - this.type = 2382730787; - } + IfcSectionTypeEnum.UNIFORM = { type: 3, value: "UNIFORM" }; + IfcSectionTypeEnum.TAPERED = { type: 3, value: "TAPERED" }; + IFC42.IfcSectionTypeEnum = IfcSectionTypeEnum; + class IfcSensorTypeEnum { } - IFC2X32.IfcPerformanceHistory = IfcPerformanceHistory; - class IfcPermit extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PermitID) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.PermitID = PermitID; - this.type = 3327091369; - } + IfcSensorTypeEnum.COSENSOR = { type: 3, value: "COSENSOR" }; + IfcSensorTypeEnum.CO2SENSOR = { type: 3, value: "CO2SENSOR" }; + IfcSensorTypeEnum.CONDUCTANCESENSOR = { type: 3, value: "CONDUCTANCESENSOR" }; + IfcSensorTypeEnum.CONTACTSENSOR = { type: 3, value: "CONTACTSENSOR" }; + IfcSensorTypeEnum.FIRESENSOR = { type: 3, value: "FIRESENSOR" }; + IfcSensorTypeEnum.FLOWSENSOR = { type: 3, value: "FLOWSENSOR" }; + IfcSensorTypeEnum.FROSTSENSOR = { type: 3, value: "FROSTSENSOR" }; + IfcSensorTypeEnum.GASSENSOR = { type: 3, value: "GASSENSOR" }; + IfcSensorTypeEnum.HEATSENSOR = { type: 3, value: "HEATSENSOR" }; + IfcSensorTypeEnum.HUMIDITYSENSOR = { type: 3, value: "HUMIDITYSENSOR" }; + IfcSensorTypeEnum.IDENTIFIERSENSOR = { type: 3, value: "IDENTIFIERSENSOR" }; + IfcSensorTypeEnum.IONCONCENTRATIONSENSOR = { type: 3, value: "IONCONCENTRATIONSENSOR" }; + IfcSensorTypeEnum.LEVELSENSOR = { type: 3, value: "LEVELSENSOR" }; + IfcSensorTypeEnum.LIGHTSENSOR = { type: 3, value: "LIGHTSENSOR" }; + IfcSensorTypeEnum.MOISTURESENSOR = { type: 3, value: "MOISTURESENSOR" }; + IfcSensorTypeEnum.MOVEMENTSENSOR = { type: 3, value: "MOVEMENTSENSOR" }; + IfcSensorTypeEnum.PHSENSOR = { type: 3, value: "PHSENSOR" }; + IfcSensorTypeEnum.PRESSURESENSOR = { type: 3, value: "PRESSURESENSOR" }; + IfcSensorTypeEnum.RADIATIONSENSOR = { type: 3, value: "RADIATIONSENSOR" }; + IfcSensorTypeEnum.RADIOACTIVITYSENSOR = { type: 3, value: "RADIOACTIVITYSENSOR" }; + IfcSensorTypeEnum.SMOKESENSOR = { type: 3, value: "SMOKESENSOR" }; + IfcSensorTypeEnum.SOUNDSENSOR = { type: 3, value: "SOUNDSENSOR" }; + IfcSensorTypeEnum.TEMPERATURESENSOR = { type: 3, value: "TEMPERATURESENSOR" }; + IfcSensorTypeEnum.WINDSENSOR = { type: 3, value: "WINDSENSOR" }; + IfcSensorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcSensorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcSensorTypeEnum = IfcSensorTypeEnum; + class IfcSequenceEnum { } - IFC2X32.IfcPermit = IfcPermit; - class IfcPipeFittingType extends IfcFlowFittingType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 804291784; - } + IfcSequenceEnum.START_START = { type: 3, value: "START_START" }; + IfcSequenceEnum.START_FINISH = { type: 3, value: "START_FINISH" }; + IfcSequenceEnum.FINISH_START = { type: 3, value: "FINISH_START" }; + IfcSequenceEnum.FINISH_FINISH = { type: 3, value: "FINISH_FINISH" }; + IfcSequenceEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcSequenceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcSequenceEnum = IfcSequenceEnum; + class IfcShadingDeviceTypeEnum { } - IFC2X32.IfcPipeFittingType = IfcPipeFittingType; - class IfcPipeSegmentType extends IfcFlowSegmentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 4231323485; - } + IfcShadingDeviceTypeEnum.JALOUSIE = { type: 3, value: "JALOUSIE" }; + IfcShadingDeviceTypeEnum.SHUTTER = { type: 3, value: "SHUTTER" }; + IfcShadingDeviceTypeEnum.AWNING = { type: 3, value: "AWNING" }; + IfcShadingDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcShadingDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcShadingDeviceTypeEnum = IfcShadingDeviceTypeEnum; + class IfcSimplePropertyTemplateTypeEnum { + } + IfcSimplePropertyTemplateTypeEnum.P_SINGLEVALUE = { type: 3, value: "P_SINGLEVALUE" }; + IfcSimplePropertyTemplateTypeEnum.P_ENUMERATEDVALUE = { type: 3, value: "P_ENUMERATEDVALUE" }; + IfcSimplePropertyTemplateTypeEnum.P_BOUNDEDVALUE = { type: 3, value: "P_BOUNDEDVALUE" }; + IfcSimplePropertyTemplateTypeEnum.P_LISTVALUE = { type: 3, value: "P_LISTVALUE" }; + IfcSimplePropertyTemplateTypeEnum.P_TABLEVALUE = { type: 3, value: "P_TABLEVALUE" }; + IfcSimplePropertyTemplateTypeEnum.P_REFERENCEVALUE = { type: 3, value: "P_REFERENCEVALUE" }; + IfcSimplePropertyTemplateTypeEnum.Q_LENGTH = { type: 3, value: "Q_LENGTH" }; + IfcSimplePropertyTemplateTypeEnum.Q_AREA = { type: 3, value: "Q_AREA" }; + IfcSimplePropertyTemplateTypeEnum.Q_VOLUME = { type: 3, value: "Q_VOLUME" }; + IfcSimplePropertyTemplateTypeEnum.Q_COUNT = { type: 3, value: "Q_COUNT" }; + IfcSimplePropertyTemplateTypeEnum.Q_WEIGHT = { type: 3, value: "Q_WEIGHT" }; + IfcSimplePropertyTemplateTypeEnum.Q_TIME = { type: 3, value: "Q_TIME" }; + IFC42.IfcSimplePropertyTemplateTypeEnum = IfcSimplePropertyTemplateTypeEnum; + class IfcSlabTypeEnum { } - IFC2X32.IfcPipeSegmentType = IfcPipeSegmentType; - class IfcPlateType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 4017108033; - } + IfcSlabTypeEnum.FLOOR = { type: 3, value: "FLOOR" }; + IfcSlabTypeEnum.ROOF = { type: 3, value: "ROOF" }; + IfcSlabTypeEnum.LANDING = { type: 3, value: "LANDING" }; + IfcSlabTypeEnum.BASESLAB = { type: 3, value: "BASESLAB" }; + IfcSlabTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcSlabTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcSlabTypeEnum = IfcSlabTypeEnum; + class IfcSolarDeviceTypeEnum { } - IFC2X32.IfcPlateType = IfcPlateType; - class IfcPolyline extends IfcBoundedCurve { - constructor(expressID, Points) { - super(expressID); - this.Points = Points; - this.type = 3724593414; - } + IfcSolarDeviceTypeEnum.SOLARCOLLECTOR = { type: 3, value: "SOLARCOLLECTOR" }; + IfcSolarDeviceTypeEnum.SOLARPANEL = { type: 3, value: "SOLARPANEL" }; + IfcSolarDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcSolarDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcSolarDeviceTypeEnum = IfcSolarDeviceTypeEnum; + class IfcSpaceHeaterTypeEnum { } - IFC2X32.IfcPolyline = IfcPolyline; - class IfcPort extends IfcProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.type = 3740093272; - } + IfcSpaceHeaterTypeEnum.CONVECTOR = { type: 3, value: "CONVECTOR" }; + IfcSpaceHeaterTypeEnum.RADIATOR = { type: 3, value: "RADIATOR" }; + IfcSpaceHeaterTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcSpaceHeaterTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcSpaceHeaterTypeEnum = IfcSpaceHeaterTypeEnum; + class IfcSpaceTypeEnum { } - IFC2X32.IfcPort = IfcPort; - class IfcProcedure extends IfcProcess { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ProcedureID, ProcedureType, UserDefinedProcedureType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ProcedureID = ProcedureID; - this.ProcedureType = ProcedureType; - this.UserDefinedProcedureType = UserDefinedProcedureType; - this.type = 2744685151; - } + IfcSpaceTypeEnum.SPACE = { type: 3, value: "SPACE" }; + IfcSpaceTypeEnum.PARKING = { type: 3, value: "PARKING" }; + IfcSpaceTypeEnum.GFA = { type: 3, value: "GFA" }; + IfcSpaceTypeEnum.INTERNAL = { type: 3, value: "INTERNAL" }; + IfcSpaceTypeEnum.EXTERNAL = { type: 3, value: "EXTERNAL" }; + IfcSpaceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcSpaceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcSpaceTypeEnum = IfcSpaceTypeEnum; + class IfcSpatialZoneTypeEnum { } - IFC2X32.IfcProcedure = IfcProcedure; - class IfcProjectOrder extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ID, PredefinedType, Status) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ID = ID; - this.PredefinedType = PredefinedType; - this.Status = Status; - this.type = 2904328755; - } + IfcSpatialZoneTypeEnum.CONSTRUCTION = { type: 3, value: "CONSTRUCTION" }; + IfcSpatialZoneTypeEnum.FIRESAFETY = { type: 3, value: "FIRESAFETY" }; + IfcSpatialZoneTypeEnum.LIGHTING = { type: 3, value: "LIGHTING" }; + IfcSpatialZoneTypeEnum.OCCUPANCY = { type: 3, value: "OCCUPANCY" }; + IfcSpatialZoneTypeEnum.SECURITY = { type: 3, value: "SECURITY" }; + IfcSpatialZoneTypeEnum.THERMAL = { type: 3, value: "THERMAL" }; + IfcSpatialZoneTypeEnum.TRANSPORT = { type: 3, value: "TRANSPORT" }; + IfcSpatialZoneTypeEnum.VENTILATION = { type: 3, value: "VENTILATION" }; + IfcSpatialZoneTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcSpatialZoneTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcSpatialZoneTypeEnum = IfcSpatialZoneTypeEnum; + class IfcStackTerminalTypeEnum { } - IFC2X32.IfcProjectOrder = IfcProjectOrder; - class IfcProjectOrderRecord extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Records, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Records = Records; - this.PredefinedType = PredefinedType; - this.type = 3642467123; - } + IfcStackTerminalTypeEnum.BIRDCAGE = { type: 3, value: "BIRDCAGE" }; + IfcStackTerminalTypeEnum.COWL = { type: 3, value: "COWL" }; + IfcStackTerminalTypeEnum.RAINWATERHOPPER = { type: 3, value: "RAINWATERHOPPER" }; + IfcStackTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcStackTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcStackTerminalTypeEnum = IfcStackTerminalTypeEnum; + class IfcStairFlightTypeEnum { } - IFC2X32.IfcProjectOrderRecord = IfcProjectOrderRecord; - class IfcProjectionElement extends IfcFeatureElementAddition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 3651124850; - } + IfcStairFlightTypeEnum.STRAIGHT = { type: 3, value: "STRAIGHT" }; + IfcStairFlightTypeEnum.WINDER = { type: 3, value: "WINDER" }; + IfcStairFlightTypeEnum.SPIRAL = { type: 3, value: "SPIRAL" }; + IfcStairFlightTypeEnum.CURVED = { type: 3, value: "CURVED" }; + IfcStairFlightTypeEnum.FREEFORM = { type: 3, value: "FREEFORM" }; + IfcStairFlightTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcStairFlightTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcStairFlightTypeEnum = IfcStairFlightTypeEnum; + class IfcStairTypeEnum { } - IFC2X32.IfcProjectionElement = IfcProjectionElement; - class IfcProtectiveDeviceType extends IfcFlowControllerType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1842657554; - } + IfcStairTypeEnum.STRAIGHT_RUN_STAIR = { type: 3, value: "STRAIGHT_RUN_STAIR" }; + IfcStairTypeEnum.TWO_STRAIGHT_RUN_STAIR = { type: 3, value: "TWO_STRAIGHT_RUN_STAIR" }; + IfcStairTypeEnum.QUARTER_WINDING_STAIR = { type: 3, value: "QUARTER_WINDING_STAIR" }; + IfcStairTypeEnum.QUARTER_TURN_STAIR = { type: 3, value: "QUARTER_TURN_STAIR" }; + IfcStairTypeEnum.HALF_WINDING_STAIR = { type: 3, value: "HALF_WINDING_STAIR" }; + IfcStairTypeEnum.HALF_TURN_STAIR = { type: 3, value: "HALF_TURN_STAIR" }; + IfcStairTypeEnum.TWO_QUARTER_WINDING_STAIR = { type: 3, value: "TWO_QUARTER_WINDING_STAIR" }; + IfcStairTypeEnum.TWO_QUARTER_TURN_STAIR = { type: 3, value: "TWO_QUARTER_TURN_STAIR" }; + IfcStairTypeEnum.THREE_QUARTER_WINDING_STAIR = { type: 3, value: "THREE_QUARTER_WINDING_STAIR" }; + IfcStairTypeEnum.THREE_QUARTER_TURN_STAIR = { type: 3, value: "THREE_QUARTER_TURN_STAIR" }; + IfcStairTypeEnum.SPIRAL_STAIR = { type: 3, value: "SPIRAL_STAIR" }; + IfcStairTypeEnum.DOUBLE_RETURN_STAIR = { type: 3, value: "DOUBLE_RETURN_STAIR" }; + IfcStairTypeEnum.CURVED_RUN_STAIR = { type: 3, value: "CURVED_RUN_STAIR" }; + IfcStairTypeEnum.TWO_CURVED_RUN_STAIR = { type: 3, value: "TWO_CURVED_RUN_STAIR" }; + IfcStairTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcStairTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcStairTypeEnum = IfcStairTypeEnum; + class IfcStateEnum { } - IFC2X32.IfcProtectiveDeviceType = IfcProtectiveDeviceType; - class IfcPumpType extends IfcFlowMovingDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2250791053; - } + IfcStateEnum.READWRITE = { type: 3, value: "READWRITE" }; + IfcStateEnum.READONLY = { type: 3, value: "READONLY" }; + IfcStateEnum.LOCKED = { type: 3, value: "LOCKED" }; + IfcStateEnum.READWRITELOCKED = { type: 3, value: "READWRITELOCKED" }; + IfcStateEnum.READONLYLOCKED = { type: 3, value: "READONLYLOCKED" }; + IFC42.IfcStateEnum = IfcStateEnum; + class IfcStructuralCurveActivityTypeEnum { } - IFC2X32.IfcPumpType = IfcPumpType; - class IfcRadiusDimension extends IfcDimensionCurveDirectedCallout { - constructor(expressID, Contents) { - super(expressID, Contents); - this.Contents = Contents; - this.type = 3248260540; - } + IfcStructuralCurveActivityTypeEnum.CONST = { type: 3, value: "CONST" }; + IfcStructuralCurveActivityTypeEnum.LINEAR = { type: 3, value: "LINEAR" }; + IfcStructuralCurveActivityTypeEnum.POLYGONAL = { type: 3, value: "POLYGONAL" }; + IfcStructuralCurveActivityTypeEnum.EQUIDISTANT = { type: 3, value: "EQUIDISTANT" }; + IfcStructuralCurveActivityTypeEnum.SINUS = { type: 3, value: "SINUS" }; + IfcStructuralCurveActivityTypeEnum.PARABOLA = { type: 3, value: "PARABOLA" }; + IfcStructuralCurveActivityTypeEnum.DISCRETE = { type: 3, value: "DISCRETE" }; + IfcStructuralCurveActivityTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcStructuralCurveActivityTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcStructuralCurveActivityTypeEnum = IfcStructuralCurveActivityTypeEnum; + class IfcStructuralCurveMemberTypeEnum { } - IFC2X32.IfcRadiusDimension = IfcRadiusDimension; - class IfcRailingType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2893384427; - } + IfcStructuralCurveMemberTypeEnum.RIGID_JOINED_MEMBER = { type: 3, value: "RIGID_JOINED_MEMBER" }; + IfcStructuralCurveMemberTypeEnum.PIN_JOINED_MEMBER = { type: 3, value: "PIN_JOINED_MEMBER" }; + IfcStructuralCurveMemberTypeEnum.CABLE = { type: 3, value: "CABLE" }; + IfcStructuralCurveMemberTypeEnum.TENSION_MEMBER = { type: 3, value: "TENSION_MEMBER" }; + IfcStructuralCurveMemberTypeEnum.COMPRESSION_MEMBER = { type: 3, value: "COMPRESSION_MEMBER" }; + IfcStructuralCurveMemberTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcStructuralCurveMemberTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcStructuralCurveMemberTypeEnum = IfcStructuralCurveMemberTypeEnum; + class IfcStructuralSurfaceActivityTypeEnum { } - IFC2X32.IfcRailingType = IfcRailingType; - class IfcRampFlightType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2324767716; - } + IfcStructuralSurfaceActivityTypeEnum.CONST = { type: 3, value: "CONST" }; + IfcStructuralSurfaceActivityTypeEnum.BILINEAR = { type: 3, value: "BILINEAR" }; + IfcStructuralSurfaceActivityTypeEnum.DISCRETE = { type: 3, value: "DISCRETE" }; + IfcStructuralSurfaceActivityTypeEnum.ISOCONTOUR = { type: 3, value: "ISOCONTOUR" }; + IfcStructuralSurfaceActivityTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcStructuralSurfaceActivityTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcStructuralSurfaceActivityTypeEnum = IfcStructuralSurfaceActivityTypeEnum; + class IfcStructuralSurfaceMemberTypeEnum { } - IFC2X32.IfcRampFlightType = IfcRampFlightType; - class IfcRelAggregates extends IfcRelDecomposes { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingObject = RelatingObject; - this.RelatedObjects = RelatedObjects; - this.type = 160246688; - } + IfcStructuralSurfaceMemberTypeEnum.BENDING_ELEMENT = { type: 3, value: "BENDING_ELEMENT" }; + IfcStructuralSurfaceMemberTypeEnum.MEMBRANE_ELEMENT = { type: 3, value: "MEMBRANE_ELEMENT" }; + IfcStructuralSurfaceMemberTypeEnum.SHELL = { type: 3, value: "SHELL" }; + IfcStructuralSurfaceMemberTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcStructuralSurfaceMemberTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcStructuralSurfaceMemberTypeEnum = IfcStructuralSurfaceMemberTypeEnum; + class IfcSubContractResourceTypeEnum { } - IFC2X32.IfcRelAggregates = IfcRelAggregates; - class IfcRelAssignsTasks extends IfcRelAssignsToControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl, TimeForTask) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.RelatingControl = RelatingControl; - this.TimeForTask = TimeForTask; - this.type = 2863920197; - } + IfcSubContractResourceTypeEnum.PURCHASE = { type: 3, value: "PURCHASE" }; + IfcSubContractResourceTypeEnum.WORK = { type: 3, value: "WORK" }; + IfcSubContractResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcSubContractResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcSubContractResourceTypeEnum = IfcSubContractResourceTypeEnum; + class IfcSurfaceFeatureTypeEnum { } - IFC2X32.IfcRelAssignsTasks = IfcRelAssignsTasks; - class IfcSanitaryTerminalType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1768891740; - } + IfcSurfaceFeatureTypeEnum.MARK = { type: 3, value: "MARK" }; + IfcSurfaceFeatureTypeEnum.TAG = { type: 3, value: "TAG" }; + IfcSurfaceFeatureTypeEnum.TREATMENT = { type: 3, value: "TREATMENT" }; + IfcSurfaceFeatureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcSurfaceFeatureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcSurfaceFeatureTypeEnum = IfcSurfaceFeatureTypeEnum; + class IfcSurfaceSide { } - IFC2X32.IfcSanitaryTerminalType = IfcSanitaryTerminalType; - class IfcScheduleTimeControl extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ActualStart, EarlyStart, LateStart, ScheduleStart, ActualFinish, EarlyFinish, LateFinish, ScheduleFinish, ScheduleDuration, ActualDuration, RemainingTime, FreeFloat, TotalFloat, IsCritical, StatusTime, StartFloat, FinishFloat, Completion) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ActualStart = ActualStart; - this.EarlyStart = EarlyStart; - this.LateStart = LateStart; - this.ScheduleStart = ScheduleStart; - this.ActualFinish = ActualFinish; - this.EarlyFinish = EarlyFinish; - this.LateFinish = LateFinish; - this.ScheduleFinish = ScheduleFinish; - this.ScheduleDuration = ScheduleDuration; - this.ActualDuration = ActualDuration; - this.RemainingTime = RemainingTime; - this.FreeFloat = FreeFloat; - this.TotalFloat = TotalFloat; - this.IsCritical = IsCritical; - this.StatusTime = StatusTime; - this.StartFloat = StartFloat; - this.FinishFloat = FinishFloat; - this.Completion = Completion; - this.type = 3517283431; - } + IfcSurfaceSide.POSITIVE = { type: 3, value: "POSITIVE" }; + IfcSurfaceSide.NEGATIVE = { type: 3, value: "NEGATIVE" }; + IfcSurfaceSide.BOTH = { type: 3, value: "BOTH" }; + IFC42.IfcSurfaceSide = IfcSurfaceSide; + class IfcSwitchingDeviceTypeEnum { } - IFC2X32.IfcScheduleTimeControl = IfcScheduleTimeControl; - class IfcServiceLife extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ServiceLifeType, ServiceLifeDuration) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ServiceLifeType = ServiceLifeType; - this.ServiceLifeDuration = ServiceLifeDuration; - this.type = 4105383287; - } + IfcSwitchingDeviceTypeEnum.CONTACTOR = { type: 3, value: "CONTACTOR" }; + IfcSwitchingDeviceTypeEnum.DIMMERSWITCH = { type: 3, value: "DIMMERSWITCH" }; + IfcSwitchingDeviceTypeEnum.EMERGENCYSTOP = { type: 3, value: "EMERGENCYSTOP" }; + IfcSwitchingDeviceTypeEnum.KEYPAD = { type: 3, value: "KEYPAD" }; + IfcSwitchingDeviceTypeEnum.MOMENTARYSWITCH = { type: 3, value: "MOMENTARYSWITCH" }; + IfcSwitchingDeviceTypeEnum.SELECTORSWITCH = { type: 3, value: "SELECTORSWITCH" }; + IfcSwitchingDeviceTypeEnum.STARTER = { type: 3, value: "STARTER" }; + IfcSwitchingDeviceTypeEnum.SWITCHDISCONNECTOR = { type: 3, value: "SWITCHDISCONNECTOR" }; + IfcSwitchingDeviceTypeEnum.TOGGLESWITCH = { type: 3, value: "TOGGLESWITCH" }; + IfcSwitchingDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcSwitchingDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcSwitchingDeviceTypeEnum = IfcSwitchingDeviceTypeEnum; + class IfcSystemFurnitureElementTypeEnum { } - IFC2X32.IfcServiceLife = IfcServiceLife; - class IfcSite extends IfcSpatialStructureElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, RefLatitude, RefLongitude, RefElevation, LandTitleNumber, SiteAddress) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.RefLatitude = RefLatitude; - this.RefLongitude = RefLongitude; - this.RefElevation = RefElevation; - this.LandTitleNumber = LandTitleNumber; - this.SiteAddress = SiteAddress; - this.type = 4097777520; - } + IfcSystemFurnitureElementTypeEnum.PANEL = { type: 3, value: "PANEL" }; + IfcSystemFurnitureElementTypeEnum.WORKSURFACE = { type: 3, value: "WORKSURFACE" }; + IfcSystemFurnitureElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcSystemFurnitureElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcSystemFurnitureElementTypeEnum = IfcSystemFurnitureElementTypeEnum; + class IfcTankTypeEnum { } - IFC2X32.IfcSite = IfcSite; - class IfcSlabType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2533589738; - } + IfcTankTypeEnum.BASIN = { type: 3, value: "BASIN" }; + IfcTankTypeEnum.BREAKPRESSURE = { type: 3, value: "BREAKPRESSURE" }; + IfcTankTypeEnum.EXPANSION = { type: 3, value: "EXPANSION" }; + IfcTankTypeEnum.FEEDANDEXPANSION = { type: 3, value: "FEEDANDEXPANSION" }; + IfcTankTypeEnum.PRESSUREVESSEL = { type: 3, value: "PRESSUREVESSEL" }; + IfcTankTypeEnum.STORAGE = { type: 3, value: "STORAGE" }; + IfcTankTypeEnum.VESSEL = { type: 3, value: "VESSEL" }; + IfcTankTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcTankTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcTankTypeEnum = IfcTankTypeEnum; + class IfcTaskDurationEnum { } - IFC2X32.IfcSlabType = IfcSlabType; - class IfcSpace extends IfcSpatialStructureElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, InteriorOrExteriorSpace, ElevationWithFlooring) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.InteriorOrExteriorSpace = InteriorOrExteriorSpace; - this.ElevationWithFlooring = ElevationWithFlooring; - this.type = 3856911033; - } + IfcTaskDurationEnum.ELAPSEDTIME = { type: 3, value: "ELAPSEDTIME" }; + IfcTaskDurationEnum.WORKTIME = { type: 3, value: "WORKTIME" }; + IfcTaskDurationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcTaskDurationEnum = IfcTaskDurationEnum; + class IfcTaskTypeEnum { } - IFC2X32.IfcSpace = IfcSpace; - class IfcSpaceHeaterType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1305183839; - } + IfcTaskTypeEnum.ATTENDANCE = { type: 3, value: "ATTENDANCE" }; + IfcTaskTypeEnum.CONSTRUCTION = { type: 3, value: "CONSTRUCTION" }; + IfcTaskTypeEnum.DEMOLITION = { type: 3, value: "DEMOLITION" }; + IfcTaskTypeEnum.DISMANTLE = { type: 3, value: "DISMANTLE" }; + IfcTaskTypeEnum.DISPOSAL = { type: 3, value: "DISPOSAL" }; + IfcTaskTypeEnum.INSTALLATION = { type: 3, value: "INSTALLATION" }; + IfcTaskTypeEnum.LOGISTIC = { type: 3, value: "LOGISTIC" }; + IfcTaskTypeEnum.MAINTENANCE = { type: 3, value: "MAINTENANCE" }; + IfcTaskTypeEnum.MOVE = { type: 3, value: "MOVE" }; + IfcTaskTypeEnum.OPERATION = { type: 3, value: "OPERATION" }; + IfcTaskTypeEnum.REMOVAL = { type: 3, value: "REMOVAL" }; + IfcTaskTypeEnum.RENOVATION = { type: 3, value: "RENOVATION" }; + IfcTaskTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcTaskTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcTaskTypeEnum = IfcTaskTypeEnum; + class IfcTendonAnchorTypeEnum { + } + IfcTendonAnchorTypeEnum.COUPLER = { type: 3, value: "COUPLER" }; + IfcTendonAnchorTypeEnum.FIXED_END = { type: 3, value: "FIXED_END" }; + IfcTendonAnchorTypeEnum.TENSIONING_END = { type: 3, value: "TENSIONING_END" }; + IfcTendonAnchorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcTendonAnchorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcTendonAnchorTypeEnum = IfcTendonAnchorTypeEnum; + class IfcTendonTypeEnum { } - IFC2X32.IfcSpaceHeaterType = IfcSpaceHeaterType; - class IfcSpaceProgram extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, SpaceProgramIdentifier, MaxRequiredArea, MinRequiredArea, RequestedLocation, StandardRequiredArea) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.SpaceProgramIdentifier = SpaceProgramIdentifier; - this.MaxRequiredArea = MaxRequiredArea; - this.MinRequiredArea = MinRequiredArea; - this.RequestedLocation = RequestedLocation; - this.StandardRequiredArea = StandardRequiredArea; - this.type = 652456506; - } + IfcTendonTypeEnum.BAR = { type: 3, value: "BAR" }; + IfcTendonTypeEnum.COATED = { type: 3, value: "COATED" }; + IfcTendonTypeEnum.STRAND = { type: 3, value: "STRAND" }; + IfcTendonTypeEnum.WIRE = { type: 3, value: "WIRE" }; + IfcTendonTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcTendonTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcTendonTypeEnum = IfcTendonTypeEnum; + class IfcTextPath { } - IFC2X32.IfcSpaceProgram = IfcSpaceProgram; - class IfcSpaceType extends IfcSpatialStructureElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3812236995; - } + IfcTextPath.LEFT = { type: 3, value: "LEFT" }; + IfcTextPath.RIGHT = { type: 3, value: "RIGHT" }; + IfcTextPath.UP = { type: 3, value: "UP" }; + IfcTextPath.DOWN = { type: 3, value: "DOWN" }; + IFC42.IfcTextPath = IfcTextPath; + class IfcTimeSeriesDataTypeEnum { } - IFC2X32.IfcSpaceType = IfcSpaceType; - class IfcStackTerminalType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3112655638; - } + IfcTimeSeriesDataTypeEnum.CONTINUOUS = { type: 3, value: "CONTINUOUS" }; + IfcTimeSeriesDataTypeEnum.DISCRETE = { type: 3, value: "DISCRETE" }; + IfcTimeSeriesDataTypeEnum.DISCRETEBINARY = { type: 3, value: "DISCRETEBINARY" }; + IfcTimeSeriesDataTypeEnum.PIECEWISEBINARY = { type: 3, value: "PIECEWISEBINARY" }; + IfcTimeSeriesDataTypeEnum.PIECEWISECONSTANT = { type: 3, value: "PIECEWISECONSTANT" }; + IfcTimeSeriesDataTypeEnum.PIECEWISECONTINUOUS = { type: 3, value: "PIECEWISECONTINUOUS" }; + IfcTimeSeriesDataTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcTimeSeriesDataTypeEnum = IfcTimeSeriesDataTypeEnum; + class IfcTransformerTypeEnum { } - IFC2X32.IfcStackTerminalType = IfcStackTerminalType; - class IfcStairFlightType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1039846685; - } + IfcTransformerTypeEnum.CURRENT = { type: 3, value: "CURRENT" }; + IfcTransformerTypeEnum.FREQUENCY = { type: 3, value: "FREQUENCY" }; + IfcTransformerTypeEnum.INVERTER = { type: 3, value: "INVERTER" }; + IfcTransformerTypeEnum.RECTIFIER = { type: 3, value: "RECTIFIER" }; + IfcTransformerTypeEnum.VOLTAGE = { type: 3, value: "VOLTAGE" }; + IfcTransformerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcTransformerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcTransformerTypeEnum = IfcTransformerTypeEnum; + class IfcTransitionCode { } - IFC2X32.IfcStairFlightType = IfcStairFlightType; - class IfcStructuralAction extends IfcStructuralActivity { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.DestabilizingLoad = DestabilizingLoad; - this.CausedBy = CausedBy; - this.type = 682877961; - } + IfcTransitionCode.DISCONTINUOUS = { type: 3, value: "DISCONTINUOUS" }; + IfcTransitionCode.CONTINUOUS = { type: 3, value: "CONTINUOUS" }; + IfcTransitionCode.CONTSAMEGRADIENT = { type: 3, value: "CONTSAMEGRADIENT" }; + IfcTransitionCode.CONTSAMEGRADIENTSAMECURVATURE = { type: 3, value: "CONTSAMEGRADIENTSAMECURVATURE" }; + IFC42.IfcTransitionCode = IfcTransitionCode; + class IfcTransportElementTypeEnum { } - IFC2X32.IfcStructuralAction = IfcStructuralAction; - class IfcStructuralConnection extends IfcStructuralItem { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedCondition = AppliedCondition; - this.type = 1179482911; - } + IfcTransportElementTypeEnum.ELEVATOR = { type: 3, value: "ELEVATOR" }; + IfcTransportElementTypeEnum.ESCALATOR = { type: 3, value: "ESCALATOR" }; + IfcTransportElementTypeEnum.MOVINGWALKWAY = { type: 3, value: "MOVINGWALKWAY" }; + IfcTransportElementTypeEnum.CRANEWAY = { type: 3, value: "CRANEWAY" }; + IfcTransportElementTypeEnum.LIFTINGGEAR = { type: 3, value: "LIFTINGGEAR" }; + IfcTransportElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcTransportElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcTransportElementTypeEnum = IfcTransportElementTypeEnum; + class IfcTrimmingPreference { } - IFC2X32.IfcStructuralConnection = IfcStructuralConnection; - class IfcStructuralCurveConnection extends IfcStructuralConnection { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedCondition = AppliedCondition; - this.type = 4243806635; - } + IfcTrimmingPreference.CARTESIAN = { type: 3, value: "CARTESIAN" }; + IfcTrimmingPreference.PARAMETER = { type: 3, value: "PARAMETER" }; + IfcTrimmingPreference.UNSPECIFIED = { type: 3, value: "UNSPECIFIED" }; + IFC42.IfcTrimmingPreference = IfcTrimmingPreference; + class IfcTubeBundleTypeEnum { } - IFC2X32.IfcStructuralCurveConnection = IfcStructuralCurveConnection; - class IfcStructuralCurveMember extends IfcStructuralMember { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.PredefinedType = PredefinedType; - this.type = 214636428; - } + IfcTubeBundleTypeEnum.FINNED = { type: 3, value: "FINNED" }; + IfcTubeBundleTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcTubeBundleTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcTubeBundleTypeEnum = IfcTubeBundleTypeEnum; + class IfcUnitEnum { } - IFC2X32.IfcStructuralCurveMember = IfcStructuralCurveMember; - class IfcStructuralCurveMemberVarying extends IfcStructuralCurveMember { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.PredefinedType = PredefinedType; - this.type = 2445595289; - } + IfcUnitEnum.ABSORBEDDOSEUNIT = { type: 3, value: "ABSORBEDDOSEUNIT" }; + IfcUnitEnum.AMOUNTOFSUBSTANCEUNIT = { type: 3, value: "AMOUNTOFSUBSTANCEUNIT" }; + IfcUnitEnum.AREAUNIT = { type: 3, value: "AREAUNIT" }; + IfcUnitEnum.DOSEEQUIVALENTUNIT = { type: 3, value: "DOSEEQUIVALENTUNIT" }; + IfcUnitEnum.ELECTRICCAPACITANCEUNIT = { type: 3, value: "ELECTRICCAPACITANCEUNIT" }; + IfcUnitEnum.ELECTRICCHARGEUNIT = { type: 3, value: "ELECTRICCHARGEUNIT" }; + IfcUnitEnum.ELECTRICCONDUCTANCEUNIT = { type: 3, value: "ELECTRICCONDUCTANCEUNIT" }; + IfcUnitEnum.ELECTRICCURRENTUNIT = { type: 3, value: "ELECTRICCURRENTUNIT" }; + IfcUnitEnum.ELECTRICRESISTANCEUNIT = { type: 3, value: "ELECTRICRESISTANCEUNIT" }; + IfcUnitEnum.ELECTRICVOLTAGEUNIT = { type: 3, value: "ELECTRICVOLTAGEUNIT" }; + IfcUnitEnum.ENERGYUNIT = { type: 3, value: "ENERGYUNIT" }; + IfcUnitEnum.FORCEUNIT = { type: 3, value: "FORCEUNIT" }; + IfcUnitEnum.FREQUENCYUNIT = { type: 3, value: "FREQUENCYUNIT" }; + IfcUnitEnum.ILLUMINANCEUNIT = { type: 3, value: "ILLUMINANCEUNIT" }; + IfcUnitEnum.INDUCTANCEUNIT = { type: 3, value: "INDUCTANCEUNIT" }; + IfcUnitEnum.LENGTHUNIT = { type: 3, value: "LENGTHUNIT" }; + IfcUnitEnum.LUMINOUSFLUXUNIT = { type: 3, value: "LUMINOUSFLUXUNIT" }; + IfcUnitEnum.LUMINOUSINTENSITYUNIT = { type: 3, value: "LUMINOUSINTENSITYUNIT" }; + IfcUnitEnum.MAGNETICFLUXDENSITYUNIT = { type: 3, value: "MAGNETICFLUXDENSITYUNIT" }; + IfcUnitEnum.MAGNETICFLUXUNIT = { type: 3, value: "MAGNETICFLUXUNIT" }; + IfcUnitEnum.MASSUNIT = { type: 3, value: "MASSUNIT" }; + IfcUnitEnum.PLANEANGLEUNIT = { type: 3, value: "PLANEANGLEUNIT" }; + IfcUnitEnum.POWERUNIT = { type: 3, value: "POWERUNIT" }; + IfcUnitEnum.PRESSUREUNIT = { type: 3, value: "PRESSUREUNIT" }; + IfcUnitEnum.RADIOACTIVITYUNIT = { type: 3, value: "RADIOACTIVITYUNIT" }; + IfcUnitEnum.SOLIDANGLEUNIT = { type: 3, value: "SOLIDANGLEUNIT" }; + IfcUnitEnum.THERMODYNAMICTEMPERATUREUNIT = { type: 3, value: "THERMODYNAMICTEMPERATUREUNIT" }; + IfcUnitEnum.TIMEUNIT = { type: 3, value: "TIMEUNIT" }; + IfcUnitEnum.VOLUMEUNIT = { type: 3, value: "VOLUMEUNIT" }; + IfcUnitEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IFC42.IfcUnitEnum = IfcUnitEnum; + class IfcUnitaryControlElementTypeEnum { } - IFC2X32.IfcStructuralCurveMemberVarying = IfcStructuralCurveMemberVarying; - class IfcStructuralLinearAction extends IfcStructuralAction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy, ProjectedOrTrue) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.DestabilizingLoad = DestabilizingLoad; - this.CausedBy = CausedBy; - this.ProjectedOrTrue = ProjectedOrTrue; - this.type = 1807405624; - } + IfcUnitaryControlElementTypeEnum.ALARMPANEL = { type: 3, value: "ALARMPANEL" }; + IfcUnitaryControlElementTypeEnum.CONTROLPANEL = { type: 3, value: "CONTROLPANEL" }; + IfcUnitaryControlElementTypeEnum.GASDETECTIONPANEL = { type: 3, value: "GASDETECTIONPANEL" }; + IfcUnitaryControlElementTypeEnum.INDICATORPANEL = { type: 3, value: "INDICATORPANEL" }; + IfcUnitaryControlElementTypeEnum.MIMICPANEL = { type: 3, value: "MIMICPANEL" }; + IfcUnitaryControlElementTypeEnum.HUMIDISTAT = { type: 3, value: "HUMIDISTAT" }; + IfcUnitaryControlElementTypeEnum.THERMOSTAT = { type: 3, value: "THERMOSTAT" }; + IfcUnitaryControlElementTypeEnum.WEATHERSTATION = { type: 3, value: "WEATHERSTATION" }; + IfcUnitaryControlElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcUnitaryControlElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcUnitaryControlElementTypeEnum = IfcUnitaryControlElementTypeEnum; + class IfcUnitaryEquipmentTypeEnum { } - IFC2X32.IfcStructuralLinearAction = IfcStructuralLinearAction; - class IfcStructuralLinearActionVarying extends IfcStructuralLinearAction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy, ProjectedOrTrue, VaryingAppliedLoadLocation, SubsequentAppliedLoads) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy, ProjectedOrTrue); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.DestabilizingLoad = DestabilizingLoad; - this.CausedBy = CausedBy; - this.ProjectedOrTrue = ProjectedOrTrue; - this.VaryingAppliedLoadLocation = VaryingAppliedLoadLocation; - this.SubsequentAppliedLoads = SubsequentAppliedLoads; - this.type = 1721250024; - } + IfcUnitaryEquipmentTypeEnum.AIRHANDLER = { type: 3, value: "AIRHANDLER" }; + IfcUnitaryEquipmentTypeEnum.AIRCONDITIONINGUNIT = { type: 3, value: "AIRCONDITIONINGUNIT" }; + IfcUnitaryEquipmentTypeEnum.DEHUMIDIFIER = { type: 3, value: "DEHUMIDIFIER" }; + IfcUnitaryEquipmentTypeEnum.SPLITSYSTEM = { type: 3, value: "SPLITSYSTEM" }; + IfcUnitaryEquipmentTypeEnum.ROOFTOPUNIT = { type: 3, value: "ROOFTOPUNIT" }; + IfcUnitaryEquipmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcUnitaryEquipmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcUnitaryEquipmentTypeEnum = IfcUnitaryEquipmentTypeEnum; + class IfcValveTypeEnum { } - IFC2X32.IfcStructuralLinearActionVarying = IfcStructuralLinearActionVarying; - class IfcStructuralLoadGroup extends IfcGroup { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, ActionType, ActionSource, Coefficient, Purpose) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.PredefinedType = PredefinedType; - this.ActionType = ActionType; - this.ActionSource = ActionSource; - this.Coefficient = Coefficient; - this.Purpose = Purpose; - this.type = 1252848954; - } + IfcValveTypeEnum.AIRRELEASE = { type: 3, value: "AIRRELEASE" }; + IfcValveTypeEnum.ANTIVACUUM = { type: 3, value: "ANTIVACUUM" }; + IfcValveTypeEnum.CHANGEOVER = { type: 3, value: "CHANGEOVER" }; + IfcValveTypeEnum.CHECK = { type: 3, value: "CHECK" }; + IfcValveTypeEnum.COMMISSIONING = { type: 3, value: "COMMISSIONING" }; + IfcValveTypeEnum.DIVERTING = { type: 3, value: "DIVERTING" }; + IfcValveTypeEnum.DRAWOFFCOCK = { type: 3, value: "DRAWOFFCOCK" }; + IfcValveTypeEnum.DOUBLECHECK = { type: 3, value: "DOUBLECHECK" }; + IfcValveTypeEnum.DOUBLEREGULATING = { type: 3, value: "DOUBLEREGULATING" }; + IfcValveTypeEnum.FAUCET = { type: 3, value: "FAUCET" }; + IfcValveTypeEnum.FLUSHING = { type: 3, value: "FLUSHING" }; + IfcValveTypeEnum.GASCOCK = { type: 3, value: "GASCOCK" }; + IfcValveTypeEnum.GASTAP = { type: 3, value: "GASTAP" }; + IfcValveTypeEnum.ISOLATING = { type: 3, value: "ISOLATING" }; + IfcValveTypeEnum.MIXING = { type: 3, value: "MIXING" }; + IfcValveTypeEnum.PRESSUREREDUCING = { type: 3, value: "PRESSUREREDUCING" }; + IfcValveTypeEnum.PRESSURERELIEF = { type: 3, value: "PRESSURERELIEF" }; + IfcValveTypeEnum.REGULATING = { type: 3, value: "REGULATING" }; + IfcValveTypeEnum.SAFETYCUTOFF = { type: 3, value: "SAFETYCUTOFF" }; + IfcValveTypeEnum.STEAMTRAP = { type: 3, value: "STEAMTRAP" }; + IfcValveTypeEnum.STOPCOCK = { type: 3, value: "STOPCOCK" }; + IfcValveTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcValveTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcValveTypeEnum = IfcValveTypeEnum; + class IfcVibrationIsolatorTypeEnum { } - IFC2X32.IfcStructuralLoadGroup = IfcStructuralLoadGroup; - class IfcStructuralPlanarAction extends IfcStructuralAction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy, ProjectedOrTrue) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.DestabilizingLoad = DestabilizingLoad; - this.CausedBy = CausedBy; - this.ProjectedOrTrue = ProjectedOrTrue; - this.type = 1621171031; - } + IfcVibrationIsolatorTypeEnum.COMPRESSION = { type: 3, value: "COMPRESSION" }; + IfcVibrationIsolatorTypeEnum.SPRING = { type: 3, value: "SPRING" }; + IfcVibrationIsolatorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcVibrationIsolatorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcVibrationIsolatorTypeEnum = IfcVibrationIsolatorTypeEnum; + class IfcVoidingFeatureTypeEnum { } - IFC2X32.IfcStructuralPlanarAction = IfcStructuralPlanarAction; - class IfcStructuralPlanarActionVarying extends IfcStructuralPlanarAction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy, ProjectedOrTrue, VaryingAppliedLoadLocation, SubsequentAppliedLoads) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy, ProjectedOrTrue); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.DestabilizingLoad = DestabilizingLoad; - this.CausedBy = CausedBy; - this.ProjectedOrTrue = ProjectedOrTrue; - this.VaryingAppliedLoadLocation = VaryingAppliedLoadLocation; - this.SubsequentAppliedLoads = SubsequentAppliedLoads; - this.type = 3987759626; - } + IfcVoidingFeatureTypeEnum.CUTOUT = { type: 3, value: "CUTOUT" }; + IfcVoidingFeatureTypeEnum.NOTCH = { type: 3, value: "NOTCH" }; + IfcVoidingFeatureTypeEnum.HOLE = { type: 3, value: "HOLE" }; + IfcVoidingFeatureTypeEnum.MITER = { type: 3, value: "MITER" }; + IfcVoidingFeatureTypeEnum.CHAMFER = { type: 3, value: "CHAMFER" }; + IfcVoidingFeatureTypeEnum.EDGE = { type: 3, value: "EDGE" }; + IfcVoidingFeatureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcVoidingFeatureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcVoidingFeatureTypeEnum = IfcVoidingFeatureTypeEnum; + class IfcWallTypeEnum { } - IFC2X32.IfcStructuralPlanarActionVarying = IfcStructuralPlanarActionVarying; - class IfcStructuralPointAction extends IfcStructuralAction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.DestabilizingLoad = DestabilizingLoad; - this.CausedBy = CausedBy; - this.type = 2082059205; - } + IfcWallTypeEnum.MOVABLE = { type: 3, value: "MOVABLE" }; + IfcWallTypeEnum.PARAPET = { type: 3, value: "PARAPET" }; + IfcWallTypeEnum.PARTITIONING = { type: 3, value: "PARTITIONING" }; + IfcWallTypeEnum.PLUMBINGWALL = { type: 3, value: "PLUMBINGWALL" }; + IfcWallTypeEnum.SHEAR = { type: 3, value: "SHEAR" }; + IfcWallTypeEnum.SOLIDWALL = { type: 3, value: "SOLIDWALL" }; + IfcWallTypeEnum.STANDARD = { type: 3, value: "STANDARD" }; + IfcWallTypeEnum.POLYGONAL = { type: 3, value: "POLYGONAL" }; + IfcWallTypeEnum.ELEMENTEDWALL = { type: 3, value: "ELEMENTEDWALL" }; + IfcWallTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcWallTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcWallTypeEnum = IfcWallTypeEnum; + class IfcWasteTerminalTypeEnum { } - IFC2X32.IfcStructuralPointAction = IfcStructuralPointAction; - class IfcStructuralPointConnection extends IfcStructuralConnection { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedCondition = AppliedCondition; - this.type = 734778138; - } + IfcWasteTerminalTypeEnum.FLOORTRAP = { type: 3, value: "FLOORTRAP" }; + IfcWasteTerminalTypeEnum.FLOORWASTE = { type: 3, value: "FLOORWASTE" }; + IfcWasteTerminalTypeEnum.GULLYSUMP = { type: 3, value: "GULLYSUMP" }; + IfcWasteTerminalTypeEnum.GULLYTRAP = { type: 3, value: "GULLYTRAP" }; + IfcWasteTerminalTypeEnum.ROOFDRAIN = { type: 3, value: "ROOFDRAIN" }; + IfcWasteTerminalTypeEnum.WASTEDISPOSALUNIT = { type: 3, value: "WASTEDISPOSALUNIT" }; + IfcWasteTerminalTypeEnum.WASTETRAP = { type: 3, value: "WASTETRAP" }; + IfcWasteTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcWasteTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcWasteTerminalTypeEnum = IfcWasteTerminalTypeEnum; + class IfcWindowPanelOperationEnum { } - IFC2X32.IfcStructuralPointConnection = IfcStructuralPointConnection; - class IfcStructuralPointReaction extends IfcStructuralReaction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.type = 1235345126; - } + IfcWindowPanelOperationEnum.SIDEHUNGRIGHTHAND = { type: 3, value: "SIDEHUNGRIGHTHAND" }; + IfcWindowPanelOperationEnum.SIDEHUNGLEFTHAND = { type: 3, value: "SIDEHUNGLEFTHAND" }; + IfcWindowPanelOperationEnum.TILTANDTURNRIGHTHAND = { type: 3, value: "TILTANDTURNRIGHTHAND" }; + IfcWindowPanelOperationEnum.TILTANDTURNLEFTHAND = { type: 3, value: "TILTANDTURNLEFTHAND" }; + IfcWindowPanelOperationEnum.TOPHUNG = { type: 3, value: "TOPHUNG" }; + IfcWindowPanelOperationEnum.BOTTOMHUNG = { type: 3, value: "BOTTOMHUNG" }; + IfcWindowPanelOperationEnum.PIVOTHORIZONTAL = { type: 3, value: "PIVOTHORIZONTAL" }; + IfcWindowPanelOperationEnum.PIVOTVERTICAL = { type: 3, value: "PIVOTVERTICAL" }; + IfcWindowPanelOperationEnum.SLIDINGHORIZONTAL = { type: 3, value: "SLIDINGHORIZONTAL" }; + IfcWindowPanelOperationEnum.SLIDINGVERTICAL = { type: 3, value: "SLIDINGVERTICAL" }; + IfcWindowPanelOperationEnum.REMOVABLECASEMENT = { type: 3, value: "REMOVABLECASEMENT" }; + IfcWindowPanelOperationEnum.FIXEDCASEMENT = { type: 3, value: "FIXEDCASEMENT" }; + IfcWindowPanelOperationEnum.OTHEROPERATION = { type: 3, value: "OTHEROPERATION" }; + IfcWindowPanelOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcWindowPanelOperationEnum = IfcWindowPanelOperationEnum; + class IfcWindowPanelPositionEnum { } - IFC2X32.IfcStructuralPointReaction = IfcStructuralPointReaction; - class IfcStructuralResultGroup extends IfcGroup { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TheoryType, ResultForLoadGroup, IsLinear) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.TheoryType = TheoryType; - this.ResultForLoadGroup = ResultForLoadGroup; - this.IsLinear = IsLinear; - this.type = 2986769608; - } + IfcWindowPanelPositionEnum.LEFT = { type: 3, value: "LEFT" }; + IfcWindowPanelPositionEnum.MIDDLE = { type: 3, value: "MIDDLE" }; + IfcWindowPanelPositionEnum.RIGHT = { type: 3, value: "RIGHT" }; + IfcWindowPanelPositionEnum.BOTTOM = { type: 3, value: "BOTTOM" }; + IfcWindowPanelPositionEnum.TOP = { type: 3, value: "TOP" }; + IfcWindowPanelPositionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcWindowPanelPositionEnum = IfcWindowPanelPositionEnum; + class IfcWindowStyleConstructionEnum { } - IFC2X32.IfcStructuralResultGroup = IfcStructuralResultGroup; - class IfcStructuralSurfaceConnection extends IfcStructuralConnection { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedCondition = AppliedCondition; - this.type = 1975003073; - } + IfcWindowStyleConstructionEnum.ALUMINIUM = { type: 3, value: "ALUMINIUM" }; + IfcWindowStyleConstructionEnum.HIGH_GRADE_STEEL = { type: 3, value: "HIGH_GRADE_STEEL" }; + IfcWindowStyleConstructionEnum.STEEL = { type: 3, value: "STEEL" }; + IfcWindowStyleConstructionEnum.WOOD = { type: 3, value: "WOOD" }; + IfcWindowStyleConstructionEnum.ALUMINIUM_WOOD = { type: 3, value: "ALUMINIUM_WOOD" }; + IfcWindowStyleConstructionEnum.PLASTIC = { type: 3, value: "PLASTIC" }; + IfcWindowStyleConstructionEnum.OTHER_CONSTRUCTION = { type: 3, value: "OTHER_CONSTRUCTION" }; + IfcWindowStyleConstructionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcWindowStyleConstructionEnum = IfcWindowStyleConstructionEnum; + class IfcWindowStyleOperationEnum { } - IFC2X32.IfcStructuralSurfaceConnection = IfcStructuralSurfaceConnection; - class IfcSubContractResource extends IfcConstructionResource { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity, SubContractor, JobDescription) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ResourceIdentifier = ResourceIdentifier; - this.ResourceGroup = ResourceGroup; - this.ResourceConsumption = ResourceConsumption; - this.BaseQuantity = BaseQuantity; - this.SubContractor = SubContractor; - this.JobDescription = JobDescription; - this.type = 148013059; - } + IfcWindowStyleOperationEnum.SINGLE_PANEL = { type: 3, value: "SINGLE_PANEL" }; + IfcWindowStyleOperationEnum.DOUBLE_PANEL_VERTICAL = { type: 3, value: "DOUBLE_PANEL_VERTICAL" }; + IfcWindowStyleOperationEnum.DOUBLE_PANEL_HORIZONTAL = { type: 3, value: "DOUBLE_PANEL_HORIZONTAL" }; + IfcWindowStyleOperationEnum.TRIPLE_PANEL_VERTICAL = { type: 3, value: "TRIPLE_PANEL_VERTICAL" }; + IfcWindowStyleOperationEnum.TRIPLE_PANEL_BOTTOM = { type: 3, value: "TRIPLE_PANEL_BOTTOM" }; + IfcWindowStyleOperationEnum.TRIPLE_PANEL_TOP = { type: 3, value: "TRIPLE_PANEL_TOP" }; + IfcWindowStyleOperationEnum.TRIPLE_PANEL_LEFT = { type: 3, value: "TRIPLE_PANEL_LEFT" }; + IfcWindowStyleOperationEnum.TRIPLE_PANEL_RIGHT = { type: 3, value: "TRIPLE_PANEL_RIGHT" }; + IfcWindowStyleOperationEnum.TRIPLE_PANEL_HORIZONTAL = { type: 3, value: "TRIPLE_PANEL_HORIZONTAL" }; + IfcWindowStyleOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcWindowStyleOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcWindowStyleOperationEnum = IfcWindowStyleOperationEnum; + class IfcWindowTypeEnum { } - IFC2X32.IfcSubContractResource = IfcSubContractResource; - class IfcSwitchingDeviceType extends IfcFlowControllerType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2315554128; - } + IfcWindowTypeEnum.WINDOW = { type: 3, value: "WINDOW" }; + IfcWindowTypeEnum.SKYLIGHT = { type: 3, value: "SKYLIGHT" }; + IfcWindowTypeEnum.LIGHTDOME = { type: 3, value: "LIGHTDOME" }; + IfcWindowTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcWindowTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcWindowTypeEnum = IfcWindowTypeEnum; + class IfcWindowTypePartitioningEnum { } - IFC2X32.IfcSwitchingDeviceType = IfcSwitchingDeviceType; - class IfcSystem extends IfcGroup { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.type = 2254336722; - } + IfcWindowTypePartitioningEnum.SINGLE_PANEL = { type: 3, value: "SINGLE_PANEL" }; + IfcWindowTypePartitioningEnum.DOUBLE_PANEL_VERTICAL = { type: 3, value: "DOUBLE_PANEL_VERTICAL" }; + IfcWindowTypePartitioningEnum.DOUBLE_PANEL_HORIZONTAL = { type: 3, value: "DOUBLE_PANEL_HORIZONTAL" }; + IfcWindowTypePartitioningEnum.TRIPLE_PANEL_VERTICAL = { type: 3, value: "TRIPLE_PANEL_VERTICAL" }; + IfcWindowTypePartitioningEnum.TRIPLE_PANEL_BOTTOM = { type: 3, value: "TRIPLE_PANEL_BOTTOM" }; + IfcWindowTypePartitioningEnum.TRIPLE_PANEL_TOP = { type: 3, value: "TRIPLE_PANEL_TOP" }; + IfcWindowTypePartitioningEnum.TRIPLE_PANEL_LEFT = { type: 3, value: "TRIPLE_PANEL_LEFT" }; + IfcWindowTypePartitioningEnum.TRIPLE_PANEL_RIGHT = { type: 3, value: "TRIPLE_PANEL_RIGHT" }; + IfcWindowTypePartitioningEnum.TRIPLE_PANEL_HORIZONTAL = { type: 3, value: "TRIPLE_PANEL_HORIZONTAL" }; + IfcWindowTypePartitioningEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcWindowTypePartitioningEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcWindowTypePartitioningEnum = IfcWindowTypePartitioningEnum; + class IfcWorkCalendarTypeEnum { } - IFC2X32.IfcSystem = IfcSystem; - class IfcTankType extends IfcFlowStorageDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 5716631; - } + IfcWorkCalendarTypeEnum.FIRSTSHIFT = { type: 3, value: "FIRSTSHIFT" }; + IfcWorkCalendarTypeEnum.SECONDSHIFT = { type: 3, value: "SECONDSHIFT" }; + IfcWorkCalendarTypeEnum.THIRDSHIFT = { type: 3, value: "THIRDSHIFT" }; + IfcWorkCalendarTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcWorkCalendarTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcWorkCalendarTypeEnum = IfcWorkCalendarTypeEnum; + class IfcWorkPlanTypeEnum { } - IFC2X32.IfcTankType = IfcTankType; - class IfcTimeSeriesSchedule extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ApplicableDates, TimeSeriesScheduleType, TimeSeries) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ApplicableDates = ApplicableDates; - this.TimeSeriesScheduleType = TimeSeriesScheduleType; - this.TimeSeries = TimeSeries; - this.type = 1637806684; - } + IfcWorkPlanTypeEnum.ACTUAL = { type: 3, value: "ACTUAL" }; + IfcWorkPlanTypeEnum.BASELINE = { type: 3, value: "BASELINE" }; + IfcWorkPlanTypeEnum.PLANNED = { type: 3, value: "PLANNED" }; + IfcWorkPlanTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcWorkPlanTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcWorkPlanTypeEnum = IfcWorkPlanTypeEnum; + class IfcWorkScheduleTypeEnum { } - IFC2X32.IfcTimeSeriesSchedule = IfcTimeSeriesSchedule; - class IfcTransformerType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; + IfcWorkScheduleTypeEnum.ACTUAL = { type: 3, value: "ACTUAL" }; + IfcWorkScheduleTypeEnum.BASELINE = { type: 3, value: "BASELINE" }; + IfcWorkScheduleTypeEnum.PLANNED = { type: 3, value: "PLANNED" }; + IfcWorkScheduleTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcWorkScheduleTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcWorkScheduleTypeEnum = IfcWorkScheduleTypeEnum; + class IfcActorRole extends IfcLineObject$1 { + constructor(Role, UserDefinedRole, Description) { + super(); + this.Role = Role; + this.UserDefinedRole = UserDefinedRole; this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1692211062; + this.type = 3630933823; } } - IFC2X32.IfcTransformerType = IfcTransformerType; - class IfcTransportElement extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OperationType, CapacityByWeight, CapacityByNumber) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; + IFC42.IfcActorRole = IfcActorRole; + class IfcAddress extends IfcLineObject$1 { + constructor(Purpose, Description, UserDefinedPurpose) { + super(); + this.Purpose = Purpose; this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.OperationType = OperationType; - this.CapacityByWeight = CapacityByWeight; - this.CapacityByNumber = CapacityByNumber; - this.type = 1620046519; + this.UserDefinedPurpose = UserDefinedPurpose; + this.type = 618182010; } } - IFC2X32.IfcTransportElement = IfcTransportElement; - class IfcTrimmedCurve extends IfcBoundedCurve { - constructor(expressID, BasisCurve, Trim1, Trim2, SenseAgreement, MasterRepresentation) { - super(expressID); - this.BasisCurve = BasisCurve; - this.Trim1 = Trim1; - this.Trim2 = Trim2; - this.SenseAgreement = SenseAgreement; - this.MasterRepresentation = MasterRepresentation; - this.type = 3593883385; + IFC42.IfcAddress = IfcAddress; + class IfcApplication extends IfcLineObject$1 { + constructor(ApplicationDeveloper, Version, ApplicationFullName, ApplicationIdentifier) { + super(); + this.ApplicationDeveloper = ApplicationDeveloper; + this.Version = Version; + this.ApplicationFullName = ApplicationFullName; + this.ApplicationIdentifier = ApplicationIdentifier; + this.type = 639542469; } } - IFC2X32.IfcTrimmedCurve = IfcTrimmedCurve; - class IfcTubeBundleType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC42.IfcApplication = IfcApplication; + class IfcAppliedValue extends IfcLineObject$1 { + constructor(Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, Category, Condition, ArithmeticOperator, Components) { + super(); this.Name = Name; this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1600972822; + this.AppliedValue = AppliedValue; + this.UnitBasis = UnitBasis; + this.ApplicableDate = ApplicableDate; + this.FixedUntilDate = FixedUntilDate; + this.Category = Category; + this.Condition = Condition; + this.ArithmeticOperator = ArithmeticOperator; + this.Components = Components; + this.type = 411424972; } } - IFC2X32.IfcTubeBundleType = IfcTubeBundleType; - class IfcUnitaryEquipmentType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC42.IfcAppliedValue = IfcAppliedValue; + class IfcApproval extends IfcLineObject$1 { + constructor(Identifier, Name, Description, TimeOfApproval, Status, Level, Qualifier, RequestingApproval, GivingApproval) { + super(); + this.Identifier = Identifier; this.Name = Name; this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1911125066; + this.TimeOfApproval = TimeOfApproval; + this.Status = Status; + this.Level = Level; + this.Qualifier = Qualifier; + this.RequestingApproval = RequestingApproval; + this.GivingApproval = GivingApproval; + this.type = 130549933; } } - IFC2X32.IfcUnitaryEquipmentType = IfcUnitaryEquipmentType; - class IfcValveType extends IfcFlowControllerType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC42.IfcApproval = IfcApproval; + class IfcBoundaryCondition extends IfcLineObject$1 { + constructor(Name) { + super(); this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 728799441; + this.type = 4037036970; } } - IFC2X32.IfcValveType = IfcValveType; - class IfcVirtualElement extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC42.IfcBoundaryCondition = IfcBoundaryCondition; + class IfcBoundaryEdgeCondition extends IfcBoundaryCondition { + constructor(Name, TranslationalStiffnessByLengthX, TranslationalStiffnessByLengthY, TranslationalStiffnessByLengthZ, RotationalStiffnessByLengthX, RotationalStiffnessByLengthY, RotationalStiffnessByLengthZ) { + super(Name); this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 2769231204; + this.TranslationalStiffnessByLengthX = TranslationalStiffnessByLengthX; + this.TranslationalStiffnessByLengthY = TranslationalStiffnessByLengthY; + this.TranslationalStiffnessByLengthZ = TranslationalStiffnessByLengthZ; + this.RotationalStiffnessByLengthX = RotationalStiffnessByLengthX; + this.RotationalStiffnessByLengthY = RotationalStiffnessByLengthY; + this.RotationalStiffnessByLengthZ = RotationalStiffnessByLengthZ; + this.type = 1560379544; } } - IFC2X32.IfcVirtualElement = IfcVirtualElement; - class IfcWallType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC42.IfcBoundaryEdgeCondition = IfcBoundaryEdgeCondition; + class IfcBoundaryFaceCondition extends IfcBoundaryCondition { + constructor(Name, TranslationalStiffnessByAreaX, TranslationalStiffnessByAreaY, TranslationalStiffnessByAreaZ) { + super(Name); this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1898987631; + this.TranslationalStiffnessByAreaX = TranslationalStiffnessByAreaX; + this.TranslationalStiffnessByAreaY = TranslationalStiffnessByAreaY; + this.TranslationalStiffnessByAreaZ = TranslationalStiffnessByAreaZ; + this.type = 3367102660; } } - IFC2X32.IfcWallType = IfcWallType; - class IfcWasteTerminalType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC42.IfcBoundaryFaceCondition = IfcBoundaryFaceCondition; + class IfcBoundaryNodeCondition extends IfcBoundaryCondition { + constructor(Name, TranslationalStiffnessX, TranslationalStiffnessY, TranslationalStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ) { + super(Name); this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1133259667; + this.TranslationalStiffnessX = TranslationalStiffnessX; + this.TranslationalStiffnessY = TranslationalStiffnessY; + this.TranslationalStiffnessZ = TranslationalStiffnessZ; + this.RotationalStiffnessX = RotationalStiffnessX; + this.RotationalStiffnessY = RotationalStiffnessY; + this.RotationalStiffnessZ = RotationalStiffnessZ; + this.type = 1387855156; } } - IFC2X32.IfcWasteTerminalType = IfcWasteTerminalType; - class IfcWorkControl extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identifier, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, WorkControlType, UserDefinedControlType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC42.IfcBoundaryNodeCondition = IfcBoundaryNodeCondition; + class IfcBoundaryNodeConditionWarping extends IfcBoundaryNodeCondition { + constructor(Name, TranslationalStiffnessX, TranslationalStiffnessY, TranslationalStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ, WarpingStiffness) { + super(Name, TranslationalStiffnessX, TranslationalStiffnessY, TranslationalStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ); this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identifier = Identifier; - this.CreationDate = CreationDate; - this.Creators = Creators; - this.Purpose = Purpose; - this.Duration = Duration; - this.TotalFloat = TotalFloat; - this.StartTime = StartTime; - this.FinishTime = FinishTime; - this.WorkControlType = WorkControlType; - this.UserDefinedControlType = UserDefinedControlType; - this.type = 1028945134; + this.TranslationalStiffnessX = TranslationalStiffnessX; + this.TranslationalStiffnessY = TranslationalStiffnessY; + this.TranslationalStiffnessZ = TranslationalStiffnessZ; + this.RotationalStiffnessX = RotationalStiffnessX; + this.RotationalStiffnessY = RotationalStiffnessY; + this.RotationalStiffnessZ = RotationalStiffnessZ; + this.WarpingStiffness = WarpingStiffness; + this.type = 2069777674; } } - IFC2X32.IfcWorkControl = IfcWorkControl; - class IfcWorkPlan extends IfcWorkControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identifier, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, WorkControlType, UserDefinedControlType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identifier, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, WorkControlType, UserDefinedControlType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identifier = Identifier; - this.CreationDate = CreationDate; - this.Creators = Creators; - this.Purpose = Purpose; - this.Duration = Duration; - this.TotalFloat = TotalFloat; - this.StartTime = StartTime; - this.FinishTime = FinishTime; - this.WorkControlType = WorkControlType; - this.UserDefinedControlType = UserDefinedControlType; - this.type = 4218914973; + IFC42.IfcBoundaryNodeConditionWarping = IfcBoundaryNodeConditionWarping; + class IfcConnectionGeometry extends IfcLineObject$1 { + constructor() { + super(); + this.type = 2859738748; } } - IFC2X32.IfcWorkPlan = IfcWorkPlan; - class IfcWorkSchedule extends IfcWorkControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identifier, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, WorkControlType, UserDefinedControlType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identifier, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, WorkControlType, UserDefinedControlType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identifier = Identifier; - this.CreationDate = CreationDate; - this.Creators = Creators; - this.Purpose = Purpose; - this.Duration = Duration; - this.TotalFloat = TotalFloat; - this.StartTime = StartTime; - this.FinishTime = FinishTime; - this.WorkControlType = WorkControlType; - this.UserDefinedControlType = UserDefinedControlType; - this.type = 3342526732; + IFC42.IfcConnectionGeometry = IfcConnectionGeometry; + class IfcConnectionPointGeometry extends IfcConnectionGeometry { + constructor(PointOnRelatingElement, PointOnRelatedElement) { + super(); + this.PointOnRelatingElement = PointOnRelatingElement; + this.PointOnRelatedElement = PointOnRelatedElement; + this.type = 2614616156; } } - IFC2X32.IfcWorkSchedule = IfcWorkSchedule; - class IfcZone extends IfcGroup { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.type = 1033361043; + IFC42.IfcConnectionPointGeometry = IfcConnectionPointGeometry; + class IfcConnectionSurfaceGeometry extends IfcConnectionGeometry { + constructor(SurfaceOnRelatingElement, SurfaceOnRelatedElement) { + super(); + this.SurfaceOnRelatingElement = SurfaceOnRelatingElement; + this.SurfaceOnRelatedElement = SurfaceOnRelatedElement; + this.type = 2732653382; } } - IFC2X32.IfcZone = IfcZone; - class Ifc2DCompositeCurve extends IfcCompositeCurve { - constructor(expressID, Segments, SelfIntersect) { - super(expressID, Segments, SelfIntersect); - this.Segments = Segments; - this.SelfIntersect = SelfIntersect; - this.type = 1213861670; + IFC42.IfcConnectionSurfaceGeometry = IfcConnectionSurfaceGeometry; + class IfcConnectionVolumeGeometry extends IfcConnectionGeometry { + constructor(VolumeOnRelatingElement, VolumeOnRelatedElement) { + super(); + this.VolumeOnRelatingElement = VolumeOnRelatingElement; + this.VolumeOnRelatedElement = VolumeOnRelatedElement; + this.type = 775493141; } } - IFC2X32.Ifc2DCompositeCurve = Ifc2DCompositeCurve; - class IfcActionRequest extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, RequestID) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC42.IfcConnectionVolumeGeometry = IfcConnectionVolumeGeometry; + class IfcConstraint extends IfcLineObject$1 { + constructor(Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade) { + super(); this.Name = Name; this.Description = Description; - this.ObjectType = ObjectType; - this.RequestID = RequestID; - this.type = 3821786052; + this.ConstraintGrade = ConstraintGrade; + this.ConstraintSource = ConstraintSource; + this.CreatingActor = CreatingActor; + this.CreationTime = CreationTime; + this.UserDefinedGrade = UserDefinedGrade; + this.type = 1959218052; } } - IFC2X32.IfcActionRequest = IfcActionRequest; - class IfcAirTerminalBoxType extends IfcFlowControllerType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1411407467; + IFC42.IfcConstraint = IfcConstraint; + class IfcCoordinateOperation extends IfcLineObject$1 { + constructor(SourceCRS, TargetCRS) { + super(); + this.SourceCRS = SourceCRS; + this.TargetCRS = TargetCRS; + this.type = 1785450214; } } - IFC2X32.IfcAirTerminalBoxType = IfcAirTerminalBoxType; - class IfcAirTerminalType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC42.IfcCoordinateOperation = IfcCoordinateOperation; + class IfcCoordinateReferenceSystem extends IfcLineObject$1 { + constructor(Name, Description, GeodeticDatum, VerticalDatum) { + super(); this.Name = Name; this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3352864051; + this.GeodeticDatum = GeodeticDatum; + this.VerticalDatum = VerticalDatum; + this.type = 1466758467; } } - IFC2X32.IfcAirTerminalType = IfcAirTerminalType; - class IfcAirToAirHeatRecoveryType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC42.IfcCoordinateReferenceSystem = IfcCoordinateReferenceSystem; + class IfcCostValue extends IfcAppliedValue { + constructor(Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, Category, Condition, ArithmeticOperator, Components) { + super(Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, Category, Condition, ArithmeticOperator, Components); this.Name = Name; this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1871374353; - } - } - IFC2X32.IfcAirToAirHeatRecoveryType = IfcAirToAirHeatRecoveryType; - class IfcAngularDimension extends IfcDimensionCurveDirectedCallout { - constructor(expressID, Contents) { - super(expressID, Contents); - this.Contents = Contents; - this.type = 2470393545; + this.AppliedValue = AppliedValue; + this.UnitBasis = UnitBasis; + this.ApplicableDate = ApplicableDate; + this.FixedUntilDate = FixedUntilDate; + this.Category = Category; + this.Condition = Condition; + this.ArithmeticOperator = ArithmeticOperator; + this.Components = Components; + this.type = 602808272; } } - IFC2X32.IfcAngularDimension = IfcAngularDimension; - class IfcAsset extends IfcGroup { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, AssetID, OriginalValue, CurrentValue, TotalReplacementCost, Owner, User, ResponsiblePerson, IncorporationDate, DepreciatedValue) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.AssetID = AssetID; - this.OriginalValue = OriginalValue; - this.CurrentValue = CurrentValue; - this.TotalReplacementCost = TotalReplacementCost; - this.Owner = Owner; - this.User = User; - this.ResponsiblePerson = ResponsiblePerson; - this.IncorporationDate = IncorporationDate; - this.DepreciatedValue = DepreciatedValue; - this.type = 3460190687; + IFC42.IfcCostValue = IfcCostValue; + class IfcDerivedUnit extends IfcLineObject$1 { + constructor(Elements, UnitType, UserDefinedType) { + super(); + this.Elements = Elements; + this.UnitType = UnitType; + this.UserDefinedType = UserDefinedType; + this.type = 1765591967; } } - IFC2X32.IfcAsset = IfcAsset; - class IfcBSplineCurve extends IfcBoundedCurve { - constructor(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect) { - super(expressID); - this.Degree = Degree; - this.ControlPointsList = ControlPointsList; - this.CurveForm = CurveForm; - this.ClosedCurve = ClosedCurve; - this.SelfIntersect = SelfIntersect; - this.type = 1967976161; + IFC42.IfcDerivedUnit = IfcDerivedUnit; + class IfcDerivedUnitElement extends IfcLineObject$1 { + constructor(Unit, Exponent) { + super(); + this.Unit = Unit; + this.Exponent = Exponent; + this.type = 1045800335; } } - IFC2X32.IfcBSplineCurve = IfcBSplineCurve; - class IfcBeamType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 819618141; + IFC42.IfcDerivedUnitElement = IfcDerivedUnitElement; + class IfcDimensionalExponents extends IfcLineObject$1 { + constructor(LengthExponent, MassExponent, TimeExponent, ElectricCurrentExponent, ThermodynamicTemperatureExponent, AmountOfSubstanceExponent, LuminousIntensityExponent) { + super(); + this.LengthExponent = LengthExponent; + this.MassExponent = MassExponent; + this.TimeExponent = TimeExponent; + this.ElectricCurrentExponent = ElectricCurrentExponent; + this.ThermodynamicTemperatureExponent = ThermodynamicTemperatureExponent; + this.AmountOfSubstanceExponent = AmountOfSubstanceExponent; + this.LuminousIntensityExponent = LuminousIntensityExponent; + this.type = 2949456006; } } - IFC2X32.IfcBeamType = IfcBeamType; - class IfcBezierCurve extends IfcBSplineCurve { - constructor(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect) { - super(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect); - this.Degree = Degree; - this.ControlPointsList = ControlPointsList; - this.CurveForm = CurveForm; - this.ClosedCurve = ClosedCurve; - this.SelfIntersect = SelfIntersect; - this.type = 1916977116; + IFC42.IfcDimensionalExponents = IfcDimensionalExponents; + class IfcExternalInformation extends IfcLineObject$1 { + constructor() { + super(); + this.type = 4294318154; } } - IFC2X32.IfcBezierCurve = IfcBezierCurve; - class IfcBoilerType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC42.IfcExternalInformation = IfcExternalInformation; + class IfcExternalReference extends IfcLineObject$1 { + constructor(Location, Identification, Name) { + super(); + this.Location = Location; + this.Identification = Identification; this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 231477066; + this.type = 3200245327; } } - IFC2X32.IfcBoilerType = IfcBoilerType; - class IfcBuildingElement extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC42.IfcExternalReference = IfcExternalReference; + class IfcExternallyDefinedHatchStyle extends IfcExternalReference { + constructor(Location, Identification, Name) { + super(Location, Identification, Name); + this.Location = Location; + this.Identification = Identification; this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 3299480353; + this.type = 2242383968; } } - IFC2X32.IfcBuildingElement = IfcBuildingElement; - class IfcBuildingElementComponent extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC42.IfcExternallyDefinedHatchStyle = IfcExternallyDefinedHatchStyle; + class IfcExternallyDefinedSurfaceStyle extends IfcExternalReference { + constructor(Location, Identification, Name) { + super(Location, Identification, Name); + this.Location = Location; + this.Identification = Identification; this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 52481810; + this.type = 1040185647; } } - IFC2X32.IfcBuildingElementComponent = IfcBuildingElementComponent; - class IfcBuildingElementPart extends IfcBuildingElementComponent { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC42.IfcExternallyDefinedSurfaceStyle = IfcExternallyDefinedSurfaceStyle; + class IfcExternallyDefinedTextFont extends IfcExternalReference { + constructor(Location, Identification, Name) { + super(Location, Identification, Name); + this.Location = Location; + this.Identification = Identification; this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 2979338954; + this.type = 3548104201; } } - IFC2X32.IfcBuildingElementPart = IfcBuildingElementPart; - class IfcBuildingElementProxy extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, CompositionType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.CompositionType = CompositionType; - this.type = 1095909175; + IFC42.IfcExternallyDefinedTextFont = IfcExternallyDefinedTextFont; + class IfcGridAxis extends IfcLineObject$1 { + constructor(AxisTag, AxisCurve, SameSense) { + super(); + this.AxisTag = AxisTag; + this.AxisCurve = AxisCurve; + this.SameSense = SameSense; + this.type = 852622518; } } - IFC2X32.IfcBuildingElementProxy = IfcBuildingElementProxy; - class IfcBuildingElementProxyType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1909888760; + IFC42.IfcGridAxis = IfcGridAxis; + class IfcIrregularTimeSeriesValue extends IfcLineObject$1 { + constructor(TimeStamp, ListValues) { + super(); + this.TimeStamp = TimeStamp; + this.ListValues = ListValues; + this.type = 3020489413; } } - IFC2X32.IfcBuildingElementProxyType = IfcBuildingElementProxyType; - class IfcCableCarrierFittingType extends IfcFlowFittingType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC42.IfcIrregularTimeSeriesValue = IfcIrregularTimeSeriesValue; + class IfcLibraryInformation extends IfcExternalInformation { + constructor(Name, Version, Publisher, VersionDate, Location, Description) { + super(); this.Name = Name; + this.Version = Version; + this.Publisher = Publisher; + this.VersionDate = VersionDate; + this.Location = Location; this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 395041908; + this.type = 2655187982; } } - IFC2X32.IfcCableCarrierFittingType = IfcCableCarrierFittingType; - class IfcCableCarrierSegmentType extends IfcFlowSegmentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC42.IfcLibraryInformation = IfcLibraryInformation; + class IfcLibraryReference extends IfcExternalReference { + constructor(Location, Identification, Name, Description, Language, ReferencedLibrary) { + super(Location, Identification, Name); + this.Location = Location; + this.Identification = Identification; this.Name = Name; this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3293546465; + this.Language = Language; + this.ReferencedLibrary = ReferencedLibrary; + this.type = 3452421091; } } - IFC2X32.IfcCableCarrierSegmentType = IfcCableCarrierSegmentType; - class IfcCableSegmentType extends IfcFlowSegmentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1285652485; + IFC42.IfcLibraryReference = IfcLibraryReference; + class IfcLightDistributionData extends IfcLineObject$1 { + constructor(MainPlaneAngle, SecondaryPlaneAngle, LuminousIntensity) { + super(); + this.MainPlaneAngle = MainPlaneAngle; + this.SecondaryPlaneAngle = SecondaryPlaneAngle; + this.LuminousIntensity = LuminousIntensity; + this.type = 4162380809; } } - IFC2X32.IfcCableSegmentType = IfcCableSegmentType; - class IfcChillerType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2951183804; + IFC42.IfcLightDistributionData = IfcLightDistributionData; + class IfcLightIntensityDistribution extends IfcLineObject$1 { + constructor(LightDistributionCurve, DistributionData) { + super(); + this.LightDistributionCurve = LightDistributionCurve; + this.DistributionData = DistributionData; + this.type = 1566485204; } } - IFC2X32.IfcChillerType = IfcChillerType; - class IfcCircle extends IfcConic { - constructor(expressID, Position, Radius) { - super(expressID, Position); - this.Position = Position; - this.Radius = Radius; - this.type = 2611217952; + IFC42.IfcLightIntensityDistribution = IfcLightIntensityDistribution; + class IfcMapConversion extends IfcCoordinateOperation { + constructor(SourceCRS, TargetCRS, Eastings, Northings, OrthogonalHeight, XAxisAbscissa, XAxisOrdinate, Scale) { + super(SourceCRS, TargetCRS); + this.SourceCRS = SourceCRS; + this.TargetCRS = TargetCRS; + this.Eastings = Eastings; + this.Northings = Northings; + this.OrthogonalHeight = OrthogonalHeight; + this.XAxisAbscissa = XAxisAbscissa; + this.XAxisOrdinate = XAxisOrdinate; + this.Scale = Scale; + this.type = 3057273783; } } - IFC2X32.IfcCircle = IfcCircle; - class IfcCoilType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2301859152; + IFC42.IfcMapConversion = IfcMapConversion; + class IfcMaterialClassificationRelationship extends IfcLineObject$1 { + constructor(MaterialClassifications, ClassifiedMaterial) { + super(); + this.MaterialClassifications = MaterialClassifications; + this.ClassifiedMaterial = ClassifiedMaterial; + this.type = 1847130766; } } - IFC2X32.IfcCoilType = IfcCoilType; - class IfcColumn extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 843113511; + IFC42.IfcMaterialClassificationRelationship = IfcMaterialClassificationRelationship; + class IfcMaterialDefinition extends IfcLineObject$1 { + constructor() { + super(); + this.type = 760658860; } } - IFC2X32.IfcColumn = IfcColumn; - class IfcCompressorType extends IfcFlowMovingDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC42.IfcMaterialDefinition = IfcMaterialDefinition; + class IfcMaterialLayer extends IfcMaterialDefinition { + constructor(Material, LayerThickness, IsVentilated, Name, Description, Category, Priority) { + super(); + this.Material = Material; + this.LayerThickness = LayerThickness; + this.IsVentilated = IsVentilated; this.Name = Name; this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3850581409; + this.Category = Category; + this.Priority = Priority; + this.type = 248100487; } } - IFC2X32.IfcCompressorType = IfcCompressorType; - class IfcCondenserType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; + IFC42.IfcMaterialLayer = IfcMaterialLayer; + class IfcMaterialLayerSet extends IfcMaterialDefinition { + constructor(MaterialLayers, LayerSetName, Description) { + super(); + this.MaterialLayers = MaterialLayers; + this.LayerSetName = LayerSetName; this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2816379211; + this.type = 3303938423; } } - IFC2X32.IfcCondenserType = IfcCondenserType; - class IfcCondition extends IfcGroup { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC42.IfcMaterialLayerSet = IfcMaterialLayerSet; + class IfcMaterialLayerWithOffsets extends IfcMaterialLayer { + constructor(Material, LayerThickness, IsVentilated, Name, Description, Category, Priority, OffsetDirection, OffsetValues) { + super(Material, LayerThickness, IsVentilated, Name, Description, Category, Priority); + this.Material = Material; + this.LayerThickness = LayerThickness; + this.IsVentilated = IsVentilated; this.Name = Name; this.Description = Description; - this.ObjectType = ObjectType; - this.type = 2188551683; + this.Category = Category; + this.Priority = Priority; + this.OffsetDirection = OffsetDirection; + this.OffsetValues = OffsetValues; + this.type = 1847252529; } } - IFC2X32.IfcCondition = IfcCondition; - class IfcConditionCriterion extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Criterion, CriterionDateTime) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Criterion = Criterion; - this.CriterionDateTime = CriterionDateTime; - this.type = 1163958913; + IFC42.IfcMaterialLayerWithOffsets = IfcMaterialLayerWithOffsets; + class IfcMaterialList extends IfcLineObject$1 { + constructor(Materials) { + super(); + this.Materials = Materials; + this.type = 2199411900; } } - IFC2X32.IfcConditionCriterion = IfcConditionCriterion; - class IfcConstructionEquipmentResource extends IfcConstructionResource { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC42.IfcMaterialList = IfcMaterialList; + class IfcMaterialProfile extends IfcMaterialDefinition { + constructor(Name, Description, Material, Profile, Priority, Category) { + super(); this.Name = Name; this.Description = Description; - this.ObjectType = ObjectType; - this.ResourceIdentifier = ResourceIdentifier; - this.ResourceGroup = ResourceGroup; - this.ResourceConsumption = ResourceConsumption; - this.BaseQuantity = BaseQuantity; - this.type = 3898045240; + this.Material = Material; + this.Profile = Profile; + this.Priority = Priority; + this.Category = Category; + this.type = 2235152071; } } - IFC2X32.IfcConstructionEquipmentResource = IfcConstructionEquipmentResource; - class IfcConstructionMaterialResource extends IfcConstructionResource { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity, Suppliers, UsageRatio) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC42.IfcMaterialProfile = IfcMaterialProfile; + class IfcMaterialProfileSet extends IfcMaterialDefinition { + constructor(Name, Description, MaterialProfiles, CompositeProfile) { + super(); this.Name = Name; this.Description = Description; - this.ObjectType = ObjectType; - this.ResourceIdentifier = ResourceIdentifier; - this.ResourceGroup = ResourceGroup; - this.ResourceConsumption = ResourceConsumption; - this.BaseQuantity = BaseQuantity; - this.Suppliers = Suppliers; - this.UsageRatio = UsageRatio; - this.type = 1060000209; + this.MaterialProfiles = MaterialProfiles; + this.CompositeProfile = CompositeProfile; + this.type = 164193824; } } - IFC2X32.IfcConstructionMaterialResource = IfcConstructionMaterialResource; - class IfcConstructionProductResource extends IfcConstructionResource { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC42.IfcMaterialProfileSet = IfcMaterialProfileSet; + class IfcMaterialProfileWithOffsets extends IfcMaterialProfile { + constructor(Name, Description, Material, Profile, Priority, Category, OffsetValues) { + super(Name, Description, Material, Profile, Priority, Category); this.Name = Name; this.Description = Description; - this.ObjectType = ObjectType; - this.ResourceIdentifier = ResourceIdentifier; - this.ResourceGroup = ResourceGroup; - this.ResourceConsumption = ResourceConsumption; - this.BaseQuantity = BaseQuantity; - this.type = 488727124; + this.Material = Material; + this.Profile = Profile; + this.Priority = Priority; + this.Category = Category; + this.OffsetValues = OffsetValues; + this.type = 552965576; } } - IFC2X32.IfcConstructionProductResource = IfcConstructionProductResource; - class IfcCooledBeamType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 335055490; + IFC42.IfcMaterialProfileWithOffsets = IfcMaterialProfileWithOffsets; + class IfcMaterialUsageDefinition extends IfcLineObject$1 { + constructor() { + super(); + this.type = 1507914824; } } - IFC2X32.IfcCooledBeamType = IfcCooledBeamType; - class IfcCoolingTowerType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC42.IfcMaterialUsageDefinition = IfcMaterialUsageDefinition; + class IfcMeasureWithUnit extends IfcLineObject$1 { + constructor(ValueComponent, UnitComponent) { + super(); + this.ValueComponent = ValueComponent; + this.UnitComponent = UnitComponent; + this.type = 2597039031; + } + } + IFC42.IfcMeasureWithUnit = IfcMeasureWithUnit; + class IfcMetric extends IfcConstraint { + constructor(Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade, Benchmark, ValueSource, DataValue, ReferencePath) { + super(Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade); this.Name = Name; this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2954562838; + this.ConstraintGrade = ConstraintGrade; + this.ConstraintSource = ConstraintSource; + this.CreatingActor = CreatingActor; + this.CreationTime = CreationTime; + this.UserDefinedGrade = UserDefinedGrade; + this.Benchmark = Benchmark; + this.ValueSource = ValueSource; + this.DataValue = DataValue; + this.ReferencePath = ReferencePath; + this.type = 3368373690; } } - IFC2X32.IfcCoolingTowerType = IfcCoolingTowerType; - class IfcCovering extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC42.IfcMetric = IfcMetric; + class IfcMonetaryUnit extends IfcLineObject$1 { + constructor(Currency) { + super(); + this.Currency = Currency; + this.type = 2706619895; + } + } + IFC42.IfcMonetaryUnit = IfcMonetaryUnit; + class IfcNamedUnit extends IfcLineObject$1 { + constructor(Dimensions, UnitType) { + super(); + this.Dimensions = Dimensions; + this.UnitType = UnitType; + this.type = 1918398963; + } + } + IFC42.IfcNamedUnit = IfcNamedUnit; + class IfcObjectPlacement extends IfcLineObject$1 { + constructor() { + super(); + this.type = 3701648758; + } + } + IFC42.IfcObjectPlacement = IfcObjectPlacement; + class IfcObjective extends IfcConstraint { + constructor(Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade, BenchmarkValues, LogicalAggregator, ObjectiveQualifier, UserDefinedQualifier) { + super(Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade); this.Name = Name; this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1973544240; + this.ConstraintGrade = ConstraintGrade; + this.ConstraintSource = ConstraintSource; + this.CreatingActor = CreatingActor; + this.CreationTime = CreationTime; + this.UserDefinedGrade = UserDefinedGrade; + this.BenchmarkValues = BenchmarkValues; + this.LogicalAggregator = LogicalAggregator; + this.ObjectiveQualifier = ObjectiveQualifier; + this.UserDefinedQualifier = UserDefinedQualifier; + this.type = 2251480897; } } - IFC2X32.IfcCovering = IfcCovering; - class IfcCurtainWall extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC42.IfcObjective = IfcObjective; + class IfcOrganization extends IfcLineObject$1 { + constructor(Identification, Name, Description, Roles, Addresses) { + super(); + this.Identification = Identification; this.Name = Name; this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 3495092785; + this.Roles = Roles; + this.Addresses = Addresses; + this.type = 4251960020; } } - IFC2X32.IfcCurtainWall = IfcCurtainWall; - class IfcDamperType extends IfcFlowControllerType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3961806047; + IFC42.IfcOrganization = IfcOrganization; + class IfcOwnerHistory extends IfcLineObject$1 { + constructor(OwningUser, OwningApplication, State, ChangeAction, LastModifiedDate, LastModifyingUser, LastModifyingApplication, CreationDate) { + super(); + this.OwningUser = OwningUser; + this.OwningApplication = OwningApplication; + this.State = State; + this.ChangeAction = ChangeAction; + this.LastModifiedDate = LastModifiedDate; + this.LastModifyingUser = LastModifyingUser; + this.LastModifyingApplication = LastModifyingApplication; + this.CreationDate = CreationDate; + this.type = 1207048766; } } - IFC2X32.IfcDamperType = IfcDamperType; - class IfcDiameterDimension extends IfcDimensionCurveDirectedCallout { - constructor(expressID, Contents) { - super(expressID, Contents); - this.Contents = Contents; - this.type = 4147604152; + IFC42.IfcOwnerHistory = IfcOwnerHistory; + class IfcPerson extends IfcLineObject$1 { + constructor(Identification, FamilyName, GivenName, MiddleNames, PrefixTitles, SuffixTitles, Roles, Addresses) { + super(); + this.Identification = Identification; + this.FamilyName = FamilyName; + this.GivenName = GivenName; + this.MiddleNames = MiddleNames; + this.PrefixTitles = PrefixTitles; + this.SuffixTitles = SuffixTitles; + this.Roles = Roles; + this.Addresses = Addresses; + this.type = 2077209135; } } - IFC2X32.IfcDiameterDimension = IfcDiameterDimension; - class IfcDiscreteAccessory extends IfcElementComponent { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1335981549; + IFC42.IfcPerson = IfcPerson; + class IfcPersonAndOrganization extends IfcLineObject$1 { + constructor(ThePerson, TheOrganization, Roles) { + super(); + this.ThePerson = ThePerson; + this.TheOrganization = TheOrganization; + this.Roles = Roles; + this.type = 101040310; } } - IFC2X32.IfcDiscreteAccessory = IfcDiscreteAccessory; - class IfcDiscreteAccessoryType extends IfcElementComponentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC42.IfcPersonAndOrganization = IfcPersonAndOrganization; + class IfcPhysicalQuantity extends IfcLineObject$1 { + constructor(Name, Description) { + super(); this.Name = Name; this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 2635815018; + this.type = 2483315170; } } - IFC2X32.IfcDiscreteAccessoryType = IfcDiscreteAccessoryType; - class IfcDistributionChamberElementType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC42.IfcPhysicalQuantity = IfcPhysicalQuantity; + class IfcPhysicalSimpleQuantity extends IfcPhysicalQuantity { + constructor(Name, Description, Unit) { + super(Name, Description); this.Name = Name; this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1599208980; + this.Unit = Unit; + this.type = 2226359599; } } - IFC2X32.IfcDistributionChamberElementType = IfcDistributionChamberElementType; - class IfcDistributionControlElementType extends IfcDistributionElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; + IFC42.IfcPhysicalSimpleQuantity = IfcPhysicalSimpleQuantity; + class IfcPostalAddress extends IfcAddress { + constructor(Purpose, Description, UserDefinedPurpose, InternalLocation, AddressLines, PostalBox, Town, Region, PostalCode, Country) { + super(Purpose, Description, UserDefinedPurpose); + this.Purpose = Purpose; this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 2063403501; + this.UserDefinedPurpose = UserDefinedPurpose; + this.InternalLocation = InternalLocation; + this.AddressLines = AddressLines; + this.PostalBox = PostalBox; + this.Town = Town; + this.Region = Region; + this.PostalCode = PostalCode; + this.Country = Country; + this.type = 3355820592; } } - IFC2X32.IfcDistributionControlElementType = IfcDistributionControlElementType; - class IfcDistributionElement extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1945004755; + IFC42.IfcPostalAddress = IfcPostalAddress; + class IfcPresentationItem extends IfcLineObject$1 { + constructor() { + super(); + this.type = 677532197; } } - IFC2X32.IfcDistributionElement = IfcDistributionElement; - class IfcDistributionFlowElement extends IfcDistributionElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC42.IfcPresentationItem = IfcPresentationItem; + class IfcPresentationLayerAssignment extends IfcLineObject$1 { + constructor(Name, Description, AssignedItems, Identifier) { + super(); this.Name = Name; this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 3040386961; + this.AssignedItems = AssignedItems; + this.Identifier = Identifier; + this.type = 2022622350; } } - IFC2X32.IfcDistributionFlowElement = IfcDistributionFlowElement; - class IfcDistributionPort extends IfcPort { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, FlowDirection) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC42.IfcPresentationLayerAssignment = IfcPresentationLayerAssignment; + class IfcPresentationLayerWithStyle extends IfcPresentationLayerAssignment { + constructor(Name, Description, AssignedItems, Identifier, LayerOn, LayerFrozen, LayerBlocked, LayerStyles) { + super(Name, Description, AssignedItems, Identifier); this.Name = Name; this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.FlowDirection = FlowDirection; - this.type = 3041715199; + this.AssignedItems = AssignedItems; + this.Identifier = Identifier; + this.LayerOn = LayerOn; + this.LayerFrozen = LayerFrozen; + this.LayerBlocked = LayerBlocked; + this.LayerStyles = LayerStyles; + this.type = 1304840413; } } - IFC2X32.IfcDistributionPort = IfcDistributionPort; - class IfcDoor extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC42.IfcPresentationLayerWithStyle = IfcPresentationLayerWithStyle; + class IfcPresentationStyle extends IfcLineObject$1 { + constructor(Name) { + super(); this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.OverallHeight = OverallHeight; - this.OverallWidth = OverallWidth; - this.type = 395920057; + this.type = 3119450353; } } - IFC2X32.IfcDoor = IfcDoor; - class IfcDuctFittingType extends IfcFlowFittingType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 869906466; + IFC42.IfcPresentationStyle = IfcPresentationStyle; + class IfcPresentationStyleAssignment extends IfcLineObject$1 { + constructor(Styles) { + super(); + this.Styles = Styles; + this.type = 2417041796; } } - IFC2X32.IfcDuctFittingType = IfcDuctFittingType; - class IfcDuctSegmentType extends IfcFlowSegmentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC42.IfcPresentationStyleAssignment = IfcPresentationStyleAssignment; + class IfcProductRepresentation extends IfcLineObject$1 { + constructor(Name, Description, Representations) { + super(); this.Name = Name; this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3760055223; + this.Representations = Representations; + this.type = 2095639259; } } - IFC2X32.IfcDuctSegmentType = IfcDuctSegmentType; - class IfcDuctSilencerType extends IfcFlowTreatmentDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2030761528; + IFC42.IfcProductRepresentation = IfcProductRepresentation; + class IfcProfileDef extends IfcLineObject$1 { + constructor(ProfileType, ProfileName) { + super(); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.type = 3958567839; } } - IFC2X32.IfcDuctSilencerType = IfcDuctSilencerType; - class IfcEdgeFeature extends IfcFeatureElementSubtraction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, FeatureLength) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC42.IfcProfileDef = IfcProfileDef; + class IfcProjectedCRS extends IfcCoordinateReferenceSystem { + constructor(Name, Description, GeodeticDatum, VerticalDatum, MapProjection, MapZone, MapUnit) { + super(Name, Description, GeodeticDatum, VerticalDatum); this.Name = Name; this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.FeatureLength = FeatureLength; - this.type = 855621170; + this.GeodeticDatum = GeodeticDatum; + this.VerticalDatum = VerticalDatum; + this.MapProjection = MapProjection; + this.MapZone = MapZone; + this.MapUnit = MapUnit; + this.type = 3843373140; } } - IFC2X32.IfcEdgeFeature = IfcEdgeFeature; - class IfcElectricApplianceType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 663422040; + IFC42.IfcProjectedCRS = IfcProjectedCRS; + class IfcPropertyAbstraction extends IfcLineObject$1 { + constructor() { + super(); + this.type = 986844984; } } - IFC2X32.IfcElectricApplianceType = IfcElectricApplianceType; - class IfcElectricFlowStorageDeviceType extends IfcFlowStorageDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC42.IfcPropertyAbstraction = IfcPropertyAbstraction; + class IfcPropertyEnumeration extends IfcPropertyAbstraction { + constructor(Name, EnumerationValues, Unit) { + super(); this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3277789161; + this.EnumerationValues = EnumerationValues; + this.Unit = Unit; + this.type = 3710013099; } } - IFC2X32.IfcElectricFlowStorageDeviceType = IfcElectricFlowStorageDeviceType; - class IfcElectricGeneratorType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC42.IfcPropertyEnumeration = IfcPropertyEnumeration; + class IfcQuantityArea extends IfcPhysicalSimpleQuantity { + constructor(Name, Description, Unit, AreaValue, Formula) { + super(Name, Description, Unit); this.Name = Name; this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1534661035; + this.Unit = Unit; + this.AreaValue = AreaValue; + this.Formula = Formula; + this.type = 2044713172; } } - IFC2X32.IfcElectricGeneratorType = IfcElectricGeneratorType; - class IfcElectricHeaterType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC42.IfcQuantityArea = IfcQuantityArea; + class IfcQuantityCount extends IfcPhysicalSimpleQuantity { + constructor(Name, Description, Unit, CountValue, Formula) { + super(Name, Description, Unit); this.Name = Name; this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1365060375; + this.Unit = Unit; + this.CountValue = CountValue; + this.Formula = Formula; + this.type = 2093928680; } } - IFC2X32.IfcElectricHeaterType = IfcElectricHeaterType; - class IfcElectricMotorType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC42.IfcQuantityCount = IfcQuantityCount; + class IfcQuantityLength extends IfcPhysicalSimpleQuantity { + constructor(Name, Description, Unit, LengthValue, Formula) { + super(Name, Description, Unit); this.Name = Name; this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1217240411; + this.Unit = Unit; + this.LengthValue = LengthValue; + this.Formula = Formula; + this.type = 931644368; } } - IFC2X32.IfcElectricMotorType = IfcElectricMotorType; - class IfcElectricTimeControlType extends IfcFlowControllerType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC42.IfcQuantityLength = IfcQuantityLength; + class IfcQuantityTime extends IfcPhysicalSimpleQuantity { + constructor(Name, Description, Unit, TimeValue, Formula) { + super(Name, Description, Unit); this.Name = Name; this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 712377611; + this.Unit = Unit; + this.TimeValue = TimeValue; + this.Formula = Formula; + this.type = 3252649465; } } - IFC2X32.IfcElectricTimeControlType = IfcElectricTimeControlType; - class IfcElectricalCircuit extends IfcSystem { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC42.IfcQuantityTime = IfcQuantityTime; + class IfcQuantityVolume extends IfcPhysicalSimpleQuantity { + constructor(Name, Description, Unit, VolumeValue, Formula) { + super(Name, Description, Unit); this.Name = Name; this.Description = Description; - this.ObjectType = ObjectType; - this.type = 1634875225; + this.Unit = Unit; + this.VolumeValue = VolumeValue; + this.Formula = Formula; + this.type = 2405470396; } } - IFC2X32.IfcElectricalCircuit = IfcElectricalCircuit; - class IfcElectricalElement extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC42.IfcQuantityVolume = IfcQuantityVolume; + class IfcQuantityWeight extends IfcPhysicalSimpleQuantity { + constructor(Name, Description, Unit, WeightValue, Formula) { + super(Name, Description, Unit); this.Name = Name; this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 857184966; + this.Unit = Unit; + this.WeightValue = WeightValue; + this.Formula = Formula; + this.type = 825690147; } } - IFC2X32.IfcElectricalElement = IfcElectricalElement; - class IfcEnergyConversionDevice extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1658829314; + IFC42.IfcQuantityWeight = IfcQuantityWeight; + class IfcRecurrencePattern extends IfcLineObject$1 { + constructor(RecurrenceType, DayComponent, WeekdayComponent, MonthComponent, Position, Interval, Occurrences, TimePeriods) { + super(); + this.RecurrenceType = RecurrenceType; + this.DayComponent = DayComponent; + this.WeekdayComponent = WeekdayComponent; + this.MonthComponent = MonthComponent; + this.Position = Position; + this.Interval = Interval; + this.Occurrences = Occurrences; + this.TimePeriods = TimePeriods; + this.type = 3915482550; } } - IFC2X32.IfcEnergyConversionDevice = IfcEnergyConversionDevice; - class IfcFanType extends IfcFlowMovingDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 346874300; + IFC42.IfcRecurrencePattern = IfcRecurrencePattern; + class IfcReference extends IfcLineObject$1 { + constructor(TypeIdentifier, AttributeIdentifier, InstanceName, ListPositions, InnerReference) { + super(); + this.TypeIdentifier = TypeIdentifier; + this.AttributeIdentifier = AttributeIdentifier; + this.InstanceName = InstanceName; + this.ListPositions = ListPositions; + this.InnerReference = InnerReference; + this.type = 2433181523; } } - IFC2X32.IfcFanType = IfcFanType; - class IfcFilterType extends IfcFlowTreatmentDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1810631287; + IFC42.IfcReference = IfcReference; + class IfcRepresentation extends IfcLineObject$1 { + constructor(ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { + super(); + this.ContextOfItems = ContextOfItems; + this.RepresentationIdentifier = RepresentationIdentifier; + this.RepresentationType = RepresentationType; + this.Items = Items; + this.type = 1076942058; } } - IFC2X32.IfcFilterType = IfcFilterType; - class IfcFireSuppressionTerminalType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 4222183408; + IFC42.IfcRepresentation = IfcRepresentation; + class IfcRepresentationContext extends IfcLineObject$1 { + constructor(ContextIdentifier, ContextType) { + super(); + this.ContextIdentifier = ContextIdentifier; + this.ContextType = ContextType; + this.type = 3377609919; + } + } + IFC42.IfcRepresentationContext = IfcRepresentationContext; + class IfcRepresentationItem extends IfcLineObject$1 { + constructor() { + super(); + this.type = 3008791417; + } + } + IFC42.IfcRepresentationItem = IfcRepresentationItem; + class IfcRepresentationMap extends IfcLineObject$1 { + constructor(MappingOrigin, MappedRepresentation) { + super(); + this.MappingOrigin = MappingOrigin; + this.MappedRepresentation = MappedRepresentation; + this.type = 1660063152; } } - IFC2X32.IfcFireSuppressionTerminalType = IfcFireSuppressionTerminalType; - class IfcFlowController extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC42.IfcRepresentationMap = IfcRepresentationMap; + class IfcResourceLevelRelationship extends IfcLineObject$1 { + constructor(Name, Description) { + super(); this.Name = Name; this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 2058353004; + this.type = 2439245199; } } - IFC2X32.IfcFlowController = IfcFlowController; - class IfcFlowFitting extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + IFC42.IfcResourceLevelRelationship = IfcResourceLevelRelationship; + class IfcRoot extends IfcLineObject$1 { + constructor(GlobalId, OwnerHistory, Name, Description) { + super(); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 4278956645; + this.type = 2341007311; } } - IFC2X32.IfcFlowFitting = IfcFlowFitting; - class IfcFlowInstrumentType extends IfcDistributionControlElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC42.IfcRoot = IfcRoot; + class IfcSIUnit extends IfcNamedUnit { + constructor(UnitType, Prefix, Name) { + super(new Handle$5(0), UnitType); + this.UnitType = UnitType; + this.Prefix = Prefix; this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 4037862832; + this.type = 448429030; } } - IFC2X32.IfcFlowInstrumentType = IfcFlowInstrumentType; - class IfcFlowMovingDevice extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC42.IfcSIUnit = IfcSIUnit; + class IfcSchedulingTime extends IfcLineObject$1 { + constructor(Name, DataOrigin, UserDefinedDataOrigin) { + super(); this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 3132237377; + this.DataOrigin = DataOrigin; + this.UserDefinedDataOrigin = UserDefinedDataOrigin; + this.type = 1054537805; } } - IFC2X32.IfcFlowMovingDevice = IfcFlowMovingDevice; - class IfcFlowSegment extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC42.IfcSchedulingTime = IfcSchedulingTime; + class IfcShapeAspect extends IfcLineObject$1 { + constructor(ShapeRepresentations, Name, Description, ProductDefinitional, PartOfProductDefinitionShape) { + super(); + this.ShapeRepresentations = ShapeRepresentations; this.Name = Name; this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 987401354; + this.ProductDefinitional = ProductDefinitional; + this.PartOfProductDefinitionShape = PartOfProductDefinitionShape; + this.type = 867548509; } } - IFC2X32.IfcFlowSegment = IfcFlowSegment; - class IfcFlowStorageDevice extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 707683696; + IFC42.IfcShapeAspect = IfcShapeAspect; + class IfcShapeModel extends IfcRepresentation { + constructor(ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { + super(ContextOfItems, RepresentationIdentifier, RepresentationType, Items); + this.ContextOfItems = ContextOfItems; + this.RepresentationIdentifier = RepresentationIdentifier; + this.RepresentationType = RepresentationType; + this.Items = Items; + this.type = 3982875396; } } - IFC2X32.IfcFlowStorageDevice = IfcFlowStorageDevice; - class IfcFlowTerminal extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 2223149337; + IFC42.IfcShapeModel = IfcShapeModel; + class IfcShapeRepresentation extends IfcShapeModel { + constructor(ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { + super(ContextOfItems, RepresentationIdentifier, RepresentationType, Items); + this.ContextOfItems = ContextOfItems; + this.RepresentationIdentifier = RepresentationIdentifier; + this.RepresentationType = RepresentationType; + this.Items = Items; + this.type = 4240577450; } } - IFC2X32.IfcFlowTerminal = IfcFlowTerminal; - class IfcFlowTreatmentDevice extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC42.IfcShapeRepresentation = IfcShapeRepresentation; + class IfcStructuralConnectionCondition extends IfcLineObject$1 { + constructor(Name) { + super(); this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 3508470533; + this.type = 2273995522; } } - IFC2X32.IfcFlowTreatmentDevice = IfcFlowTreatmentDevice; - class IfcFooting extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC42.IfcStructuralConnectionCondition = IfcStructuralConnectionCondition; + class IfcStructuralLoad extends IfcLineObject$1 { + constructor(Name) { + super(); this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 900683007; + this.type = 2162789131; } } - IFC2X32.IfcFooting = IfcFooting; - class IfcMember extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC42.IfcStructuralLoad = IfcStructuralLoad; + class IfcStructuralLoadConfiguration extends IfcStructuralLoad { + constructor(Name, Values, Locations) { + super(Name); this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1073191201; + this.Values = Values; + this.Locations = Locations; + this.type = 3478079324; } } - IFC2X32.IfcMember = IfcMember; - class IfcPile extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType, ConstructionType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC42.IfcStructuralLoadConfiguration = IfcStructuralLoadConfiguration; + class IfcStructuralLoadOrResult extends IfcStructuralLoad { + constructor(Name) { + super(Name); this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.ConstructionType = ConstructionType; - this.type = 1687234759; + this.type = 609421318; } } - IFC2X32.IfcPile = IfcPile; - class IfcPlate extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC42.IfcStructuralLoadOrResult = IfcStructuralLoadOrResult; + class IfcStructuralLoadStatic extends IfcStructuralLoadOrResult { + constructor(Name) { + super(Name); this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 3171933400; + this.type = 2525727697; } } - IFC2X32.IfcPlate = IfcPlate; - class IfcRailing extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC42.IfcStructuralLoadStatic = IfcStructuralLoadStatic; + class IfcStructuralLoadTemperature extends IfcStructuralLoadStatic { + constructor(Name, DeltaTConstant, DeltaTY, DeltaTZ) { + super(Name); this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2262370178; + this.DeltaTConstant = DeltaTConstant; + this.DeltaTY = DeltaTY; + this.DeltaTZ = DeltaTZ; + this.type = 3408363356; } } - IFC2X32.IfcRailing = IfcRailing; - class IfcRamp extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, ShapeType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.ShapeType = ShapeType; - this.type = 3024970846; + IFC42.IfcStructuralLoadTemperature = IfcStructuralLoadTemperature; + class IfcStyleModel extends IfcRepresentation { + constructor(ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { + super(ContextOfItems, RepresentationIdentifier, RepresentationType, Items); + this.ContextOfItems = ContextOfItems; + this.RepresentationIdentifier = RepresentationIdentifier; + this.RepresentationType = RepresentationType; + this.Items = Items; + this.type = 2830218821; } } - IFC2X32.IfcRamp = IfcRamp; - class IfcRampFlight extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC42.IfcStyleModel = IfcStyleModel; + class IfcStyledItem extends IfcRepresentationItem { + constructor(Item, Styles, Name) { + super(); + this.Item = Item; + this.Styles = Styles; this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 3283111854; + this.type = 3958052878; } } - IFC2X32.IfcRampFlight = IfcRampFlight; - class IfcRationalBezierCurve extends IfcBezierCurve { - constructor(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect, WeightsData) { - super(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect); - this.Degree = Degree; - this.ControlPointsList = ControlPointsList; - this.CurveForm = CurveForm; - this.ClosedCurve = ClosedCurve; - this.SelfIntersect = SelfIntersect; - this.WeightsData = WeightsData; - this.type = 3055160366; + IFC42.IfcStyledItem = IfcStyledItem; + class IfcStyledRepresentation extends IfcStyleModel { + constructor(ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { + super(ContextOfItems, RepresentationIdentifier, RepresentationType, Items); + this.ContextOfItems = ContextOfItems; + this.RepresentationIdentifier = RepresentationIdentifier; + this.RepresentationType = RepresentationType; + this.Items = Items; + this.type = 3049322572; } } - IFC2X32.IfcRationalBezierCurve = IfcRationalBezierCurve; - class IfcReinforcingElement extends IfcBuildingElementComponent { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC42.IfcStyledRepresentation = IfcStyledRepresentation; + class IfcSurfaceReinforcementArea extends IfcStructuralLoadOrResult { + constructor(Name, SurfaceReinforcement1, SurfaceReinforcement2, ShearReinforcement) { + super(Name); this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.SteelGrade = SteelGrade; - this.type = 3027567501; + this.SurfaceReinforcement1 = SurfaceReinforcement1; + this.SurfaceReinforcement2 = SurfaceReinforcement2; + this.ShearReinforcement = ShearReinforcement; + this.type = 2934153892; } } - IFC2X32.IfcReinforcingElement = IfcReinforcingElement; - class IfcReinforcingMesh extends IfcReinforcingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, MeshLength, MeshWidth, LongitudinalBarNominalDiameter, TransverseBarNominalDiameter, LongitudinalBarCrossSectionArea, TransverseBarCrossSectionArea, LongitudinalBarSpacing, TransverseBarSpacing) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC42.IfcSurfaceReinforcementArea = IfcSurfaceReinforcementArea; + class IfcSurfaceStyle extends IfcPresentationStyle { + constructor(Name, Side, Styles) { + super(Name); this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.SteelGrade = SteelGrade; - this.MeshLength = MeshLength; - this.MeshWidth = MeshWidth; - this.LongitudinalBarNominalDiameter = LongitudinalBarNominalDiameter; - this.TransverseBarNominalDiameter = TransverseBarNominalDiameter; - this.LongitudinalBarCrossSectionArea = LongitudinalBarCrossSectionArea; - this.TransverseBarCrossSectionArea = TransverseBarCrossSectionArea; - this.LongitudinalBarSpacing = LongitudinalBarSpacing; - this.TransverseBarSpacing = TransverseBarSpacing; - this.type = 2320036040; + this.Side = Side; + this.Styles = Styles; + this.type = 1300840506; } } - IFC2X32.IfcReinforcingMesh = IfcReinforcingMesh; - class IfcRoof extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, ShapeType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC42.IfcSurfaceStyle = IfcSurfaceStyle; + class IfcSurfaceStyleLighting extends IfcPresentationItem { + constructor(DiffuseTransmissionColour, DiffuseReflectionColour, TransmissionColour, ReflectanceColour) { + super(); + this.DiffuseTransmissionColour = DiffuseTransmissionColour; + this.DiffuseReflectionColour = DiffuseReflectionColour; + this.TransmissionColour = TransmissionColour; + this.ReflectanceColour = ReflectanceColour; + this.type = 3303107099; + } + } + IFC42.IfcSurfaceStyleLighting = IfcSurfaceStyleLighting; + class IfcSurfaceStyleRefraction extends IfcPresentationItem { + constructor(RefractionIndex, DispersionFactor) { + super(); + this.RefractionIndex = RefractionIndex; + this.DispersionFactor = DispersionFactor; + this.type = 1607154358; + } + } + IFC42.IfcSurfaceStyleRefraction = IfcSurfaceStyleRefraction; + class IfcSurfaceStyleShading extends IfcPresentationItem { + constructor(SurfaceColour, Transparency) { + super(); + this.SurfaceColour = SurfaceColour; + this.Transparency = Transparency; + this.type = 846575682; + } + } + IFC42.IfcSurfaceStyleShading = IfcSurfaceStyleShading; + class IfcSurfaceStyleWithTextures extends IfcPresentationItem { + constructor(Textures) { + super(); + this.Textures = Textures; + this.type = 1351298697; + } + } + IFC42.IfcSurfaceStyleWithTextures = IfcSurfaceStyleWithTextures; + class IfcSurfaceTexture extends IfcPresentationItem { + constructor(RepeatS, RepeatT, Mode, TextureTransform, Parameter) { + super(); + this.RepeatS = RepeatS; + this.RepeatT = RepeatT; + this.Mode = Mode; + this.TextureTransform = TextureTransform; + this.Parameter = Parameter; + this.type = 626085974; + } + } + IFC42.IfcSurfaceTexture = IfcSurfaceTexture; + class IfcTable extends IfcLineObject$1 { + constructor(Name, Rows, Columns) { + super(); this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.ShapeType = ShapeType; - this.type = 2016517767; + this.Rows = Rows; + this.Columns = Columns; + this.type = 985171141; } } - IFC2X32.IfcRoof = IfcRoof; - class IfcRoundedEdgeFeature extends IfcEdgeFeature { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, FeatureLength, Radius) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, FeatureLength); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC42.IfcTable = IfcTable; + class IfcTableColumn extends IfcLineObject$1 { + constructor(Identifier, Name, Description, Unit, ReferencePath) { + super(); + this.Identifier = Identifier; this.Name = Name; this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.FeatureLength = FeatureLength; - this.Radius = Radius; - this.type = 1376911519; + this.Unit = Unit; + this.ReferencePath = ReferencePath; + this.type = 2043862942; } } - IFC2X32.IfcRoundedEdgeFeature = IfcRoundedEdgeFeature; - class IfcSensorType extends IfcDistributionControlElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC42.IfcTableColumn = IfcTableColumn; + class IfcTableRow extends IfcLineObject$1 { + constructor(RowCells, IsHeading) { + super(); + this.RowCells = RowCells; + this.IsHeading = IsHeading; + this.type = 531007025; + } + } + IFC42.IfcTableRow = IfcTableRow; + class IfcTaskTime extends IfcSchedulingTime { + constructor(Name, DataOrigin, UserDefinedDataOrigin, DurationType, ScheduleDuration, ScheduleStart, ScheduleFinish, EarlyStart, EarlyFinish, LateStart, LateFinish, FreeFloat, TotalFloat, IsCritical, StatusTime, ActualDuration, ActualStart, ActualFinish, RemainingTime, Completion) { + super(Name, DataOrigin, UserDefinedDataOrigin); this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1783015770; + this.DataOrigin = DataOrigin; + this.UserDefinedDataOrigin = UserDefinedDataOrigin; + this.DurationType = DurationType; + this.ScheduleDuration = ScheduleDuration; + this.ScheduleStart = ScheduleStart; + this.ScheduleFinish = ScheduleFinish; + this.EarlyStart = EarlyStart; + this.EarlyFinish = EarlyFinish; + this.LateStart = LateStart; + this.LateFinish = LateFinish; + this.FreeFloat = FreeFloat; + this.TotalFloat = TotalFloat; + this.IsCritical = IsCritical; + this.StatusTime = StatusTime; + this.ActualDuration = ActualDuration; + this.ActualStart = ActualStart; + this.ActualFinish = ActualFinish; + this.RemainingTime = RemainingTime; + this.Completion = Completion; + this.type = 1549132990; } } - IFC2X32.IfcSensorType = IfcSensorType; - class IfcSlab extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC42.IfcTaskTime = IfcTaskTime; + class IfcTaskTimeRecurring extends IfcTaskTime { + constructor(Name, DataOrigin, UserDefinedDataOrigin, DurationType, ScheduleDuration, ScheduleStart, ScheduleFinish, EarlyStart, EarlyFinish, LateStart, LateFinish, FreeFloat, TotalFloat, IsCritical, StatusTime, ActualDuration, ActualStart, ActualFinish, RemainingTime, Completion, Recurrence) { + super(Name, DataOrigin, UserDefinedDataOrigin, DurationType, ScheduleDuration, ScheduleStart, ScheduleFinish, EarlyStart, EarlyFinish, LateStart, LateFinish, FreeFloat, TotalFloat, IsCritical, StatusTime, ActualDuration, ActualStart, ActualFinish, RemainingTime, Completion); this.Name = Name; + this.DataOrigin = DataOrigin; + this.UserDefinedDataOrigin = UserDefinedDataOrigin; + this.DurationType = DurationType; + this.ScheduleDuration = ScheduleDuration; + this.ScheduleStart = ScheduleStart; + this.ScheduleFinish = ScheduleFinish; + this.EarlyStart = EarlyStart; + this.EarlyFinish = EarlyFinish; + this.LateStart = LateStart; + this.LateFinish = LateFinish; + this.FreeFloat = FreeFloat; + this.TotalFloat = TotalFloat; + this.IsCritical = IsCritical; + this.StatusTime = StatusTime; + this.ActualDuration = ActualDuration; + this.ActualStart = ActualStart; + this.ActualFinish = ActualFinish; + this.RemainingTime = RemainingTime; + this.Completion = Completion; + this.Recurrence = Recurrence; + this.type = 2771591690; + } + } + IFC42.IfcTaskTimeRecurring = IfcTaskTimeRecurring; + class IfcTelecomAddress extends IfcAddress { + constructor(Purpose, Description, UserDefinedPurpose, TelephoneNumbers, FacsimileNumbers, PagerNumber, ElectronicMailAddresses, WWWHomePageURL, MessagingIDs) { + super(Purpose, Description, UserDefinedPurpose); + this.Purpose = Purpose; this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1529196076; + this.UserDefinedPurpose = UserDefinedPurpose; + this.TelephoneNumbers = TelephoneNumbers; + this.FacsimileNumbers = FacsimileNumbers; + this.PagerNumber = PagerNumber; + this.ElectronicMailAddresses = ElectronicMailAddresses; + this.WWWHomePageURL = WWWHomePageURL; + this.MessagingIDs = MessagingIDs; + this.type = 912023232; } } - IFC2X32.IfcSlab = IfcSlab; - class IfcStair extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, ShapeType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC42.IfcTelecomAddress = IfcTelecomAddress; + class IfcTextStyle extends IfcPresentationStyle { + constructor(Name, TextCharacterAppearance, TextStyle, TextFontStyle, ModelOrDraughting) { + super(Name); this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.ShapeType = ShapeType; - this.type = 331165859; + this.TextCharacterAppearance = TextCharacterAppearance; + this.TextStyle = TextStyle; + this.TextFontStyle = TextFontStyle; + this.ModelOrDraughting = ModelOrDraughting; + this.type = 1447204868; + } + } + IFC42.IfcTextStyle = IfcTextStyle; + class IfcTextStyleForDefinedFont extends IfcPresentationItem { + constructor(Colour, BackgroundColour) { + super(); + this.Colour = Colour; + this.BackgroundColour = BackgroundColour; + this.type = 2636378356; + } + } + IFC42.IfcTextStyleForDefinedFont = IfcTextStyleForDefinedFont; + class IfcTextStyleTextModel extends IfcPresentationItem { + constructor(TextIndent, TextAlign, TextDecoration, LetterSpacing, WordSpacing, TextTransform, LineHeight) { + super(); + this.TextIndent = TextIndent; + this.TextAlign = TextAlign; + this.TextDecoration = TextDecoration; + this.LetterSpacing = LetterSpacing; + this.WordSpacing = WordSpacing; + this.TextTransform = TextTransform; + this.LineHeight = LineHeight; + this.type = 1640371178; } } - IFC2X32.IfcStair = IfcStair; - class IfcStairFlight extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, NumberOfRiser, NumberOfTreads, RiserHeight, TreadLength) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.NumberOfRiser = NumberOfRiser; - this.NumberOfTreads = NumberOfTreads; - this.RiserHeight = RiserHeight; - this.TreadLength = TreadLength; - this.type = 4252922144; + IFC42.IfcTextStyleTextModel = IfcTextStyleTextModel; + class IfcTextureCoordinate extends IfcPresentationItem { + constructor(Maps) { + super(); + this.Maps = Maps; + this.type = 280115917; } } - IFC2X32.IfcStairFlight = IfcStairFlight; - class IfcStructuralAnalysisModel extends IfcSystem { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, OrientationOf2DPlane, LoadedBy, HasResults) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.PredefinedType = PredefinedType; - this.OrientationOf2DPlane = OrientationOf2DPlane; - this.LoadedBy = LoadedBy; - this.HasResults = HasResults; - this.type = 2515109513; + IFC42.IfcTextureCoordinate = IfcTextureCoordinate; + class IfcTextureCoordinateGenerator extends IfcTextureCoordinate { + constructor(Maps, Mode, Parameter) { + super(Maps); + this.Maps = Maps; + this.Mode = Mode; + this.Parameter = Parameter; + this.type = 1742049831; } } - IFC2X32.IfcStructuralAnalysisModel = IfcStructuralAnalysisModel; - class IfcTendon extends IfcReinforcingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, PredefinedType, NominalDiameter, CrossSectionArea, TensionForce, PreStress, FrictionCoefficient, AnchorageSlip, MinCurvatureRadius) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.SteelGrade = SteelGrade; - this.PredefinedType = PredefinedType; - this.NominalDiameter = NominalDiameter; - this.CrossSectionArea = CrossSectionArea; - this.TensionForce = TensionForce; - this.PreStress = PreStress; - this.FrictionCoefficient = FrictionCoefficient; - this.AnchorageSlip = AnchorageSlip; - this.MinCurvatureRadius = MinCurvatureRadius; - this.type = 3824725483; + IFC42.IfcTextureCoordinateGenerator = IfcTextureCoordinateGenerator; + class IfcTextureMap extends IfcTextureCoordinate { + constructor(Maps, Vertices, MappedTo) { + super(Maps); + this.Maps = Maps; + this.Vertices = Vertices; + this.MappedTo = MappedTo; + this.type = 2552916305; } } - IFC2X32.IfcTendon = IfcTendon; - class IfcTendonAnchor extends IfcReinforcingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.SteelGrade = SteelGrade; - this.type = 2347447852; + IFC42.IfcTextureMap = IfcTextureMap; + class IfcTextureVertex extends IfcPresentationItem { + constructor(Coordinates) { + super(); + this.Coordinates = Coordinates; + this.type = 1210645708; } } - IFC2X32.IfcTendonAnchor = IfcTendonAnchor; - class IfcVibrationIsolatorType extends IfcDiscreteAccessoryType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3313531582; + IFC42.IfcTextureVertex = IfcTextureVertex; + class IfcTextureVertexList extends IfcPresentationItem { + constructor(TexCoordsList) { + super(); + this.TexCoordsList = TexCoordsList; + this.type = 3611470254; } } - IFC2X32.IfcVibrationIsolatorType = IfcVibrationIsolatorType; - class IfcWall extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 2391406946; + IFC42.IfcTextureVertexList = IfcTextureVertexList; + class IfcTimePeriod extends IfcLineObject$1 { + constructor(StartTime, EndTime) { + super(); + this.StartTime = StartTime; + this.EndTime = EndTime; + this.type = 1199560280; } } - IFC2X32.IfcWall = IfcWall; - class IfcWallStandardCase extends IfcWall { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC42.IfcTimePeriod = IfcTimePeriod; + class IfcTimeSeries extends IfcLineObject$1 { + constructor(Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit) { + super(); this.Name = Name; this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 3512223829; + this.StartTime = StartTime; + this.EndTime = EndTime; + this.TimeSeriesDataType = TimeSeriesDataType; + this.DataOrigin = DataOrigin; + this.UserDefinedDataOrigin = UserDefinedDataOrigin; + this.Unit = Unit; + this.type = 3101149627; } } - IFC2X32.IfcWallStandardCase = IfcWallStandardCase; - class IfcWindow extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.OverallHeight = OverallHeight; - this.OverallWidth = OverallWidth; - this.type = 3304561284; + IFC42.IfcTimeSeries = IfcTimeSeries; + class IfcTimeSeriesValue extends IfcLineObject$1 { + constructor(ListValues) { + super(); + this.ListValues = ListValues; + this.type = 581633288; } } - IFC2X32.IfcWindow = IfcWindow; - class IfcActuatorType extends IfcDistributionControlElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2874132201; + IFC42.IfcTimeSeriesValue = IfcTimeSeriesValue; + class IfcTopologicalRepresentationItem extends IfcRepresentationItem { + constructor() { + super(); + this.type = 1377556343; } } - IFC2X32.IfcActuatorType = IfcActuatorType; - class IfcAlarmType extends IfcDistributionControlElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3001207471; + IFC42.IfcTopologicalRepresentationItem = IfcTopologicalRepresentationItem; + class IfcTopologyRepresentation extends IfcShapeModel { + constructor(ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { + super(ContextOfItems, RepresentationIdentifier, RepresentationType, Items); + this.ContextOfItems = ContextOfItems; + this.RepresentationIdentifier = RepresentationIdentifier; + this.RepresentationType = RepresentationType; + this.Items = Items; + this.type = 1735638870; } } - IFC2X32.IfcAlarmType = IfcAlarmType; - class IfcBeam extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 753842376; + IFC42.IfcTopologyRepresentation = IfcTopologyRepresentation; + class IfcUnitAssignment extends IfcLineObject$1 { + constructor(Units) { + super(); + this.Units = Units; + this.type = 180925521; } } - IFC2X32.IfcBeam = IfcBeam; - class IfcChamferEdgeFeature extends IfcEdgeFeature { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, FeatureLength, Width, Height) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, FeatureLength); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.FeatureLength = FeatureLength; - this.Width = Width; - this.Height = Height; - this.type = 2454782716; + IFC42.IfcUnitAssignment = IfcUnitAssignment; + class IfcVertex extends IfcTopologicalRepresentationItem { + constructor() { + super(); + this.type = 2799835756; } } - IFC2X32.IfcChamferEdgeFeature = IfcChamferEdgeFeature; - class IfcControllerType extends IfcDistributionControlElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 578613899; + IFC42.IfcVertex = IfcVertex; + class IfcVertexPoint extends IfcVertex { + constructor(VertexGeometry) { + super(); + this.VertexGeometry = VertexGeometry; + this.type = 1907098498; } } - IFC2X32.IfcControllerType = IfcControllerType; - class IfcDistributionChamberElement extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1052013943; + IFC42.IfcVertexPoint = IfcVertexPoint; + class IfcVirtualGridIntersection extends IfcLineObject$1 { + constructor(IntersectingAxes, OffsetDistances) { + super(); + this.IntersectingAxes = IntersectingAxes; + this.OffsetDistances = OffsetDistances; + this.type = 891718957; } } - IFC2X32.IfcDistributionChamberElement = IfcDistributionChamberElement; - class IfcDistributionControlElement extends IfcDistributionElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, ControlElementId) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC42.IfcVirtualGridIntersection = IfcVirtualGridIntersection; + class IfcWorkTime extends IfcSchedulingTime { + constructor(Name, DataOrigin, UserDefinedDataOrigin, RecurrencePattern, Start, Finish) { + super(Name, DataOrigin, UserDefinedDataOrigin); this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.ControlElementId = ControlElementId; - this.type = 1062813311; + this.DataOrigin = DataOrigin; + this.UserDefinedDataOrigin = UserDefinedDataOrigin; + this.RecurrencePattern = RecurrencePattern; + this.Start = Start; + this.Finish = Finish; + this.type = 1236880293; } } - IFC2X32.IfcDistributionControlElement = IfcDistributionControlElement; - class IfcElectricDistributionPoint extends IfcFlowController { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, DistributionPointFunction, UserDefinedFunction) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC42.IfcWorkTime = IfcWorkTime; + class IfcApprovalRelationship extends IfcResourceLevelRelationship { + constructor(Name, Description, RelatingApproval, RelatedApprovals) { + super(Name, Description); this.Name = Name; this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.DistributionPointFunction = DistributionPointFunction; - this.UserDefinedFunction = UserDefinedFunction; - this.type = 3700593921; + this.RelatingApproval = RelatingApproval; + this.RelatedApprovals = RelatedApprovals; + this.type = 3869604511; } } - IFC2X32.IfcElectricDistributionPoint = IfcElectricDistributionPoint; - class IfcReinforcingBar extends IfcReinforcingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, NominalDiameter, CrossSectionArea, BarLength, BarRole, BarSurface) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.SteelGrade = SteelGrade; - this.NominalDiameter = NominalDiameter; - this.CrossSectionArea = CrossSectionArea; - this.BarLength = BarLength; - this.BarRole = BarRole; - this.BarSurface = BarSurface; - this.type = 979691226; + IFC42.IfcApprovalRelationship = IfcApprovalRelationship; + class IfcArbitraryClosedProfileDef extends IfcProfileDef { + constructor(ProfileType, ProfileName, OuterCurve) { + super(ProfileType, ProfileName); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.OuterCurve = OuterCurve; + this.type = 3798115385; } } - IFC2X32.IfcReinforcingBar = IfcReinforcingBar; -})(IFC2X3 || (IFC2X3 = {})); -var IFC4; -(function(IFC42) { - class IfcAbsorbedDoseMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcArbitraryClosedProfileDef = IfcArbitraryClosedProfileDef; + class IfcArbitraryOpenProfileDef extends IfcProfileDef { + constructor(ProfileType, ProfileName, Curve) { + super(ProfileType, ProfileName); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Curve = Curve; + this.type = 1310608509; } } - IFC42.IfcAbsorbedDoseMeasure = IfcAbsorbedDoseMeasure; - class IfcAccelerationMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcArbitraryOpenProfileDef = IfcArbitraryOpenProfileDef; + class IfcArbitraryProfileDefWithVoids extends IfcArbitraryClosedProfileDef { + constructor(ProfileType, ProfileName, OuterCurve, InnerCurves) { + super(ProfileType, ProfileName, OuterCurve); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.OuterCurve = OuterCurve; + this.InnerCurves = InnerCurves; + this.type = 2705031697; } } - IFC42.IfcAccelerationMeasure = IfcAccelerationMeasure; - class IfcAmountOfSubstanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcArbitraryProfileDefWithVoids = IfcArbitraryProfileDefWithVoids; + class IfcBlobTexture extends IfcSurfaceTexture { + constructor(RepeatS, RepeatT, Mode, TextureTransform, Parameter, RasterFormat, RasterCode) { + super(RepeatS, RepeatT, Mode, TextureTransform, Parameter); + this.RepeatS = RepeatS; + this.RepeatT = RepeatT; + this.Mode = Mode; + this.TextureTransform = TextureTransform; + this.Parameter = Parameter; + this.RasterFormat = RasterFormat; + this.RasterCode = RasterCode; + this.type = 616511568; } } - IFC42.IfcAmountOfSubstanceMeasure = IfcAmountOfSubstanceMeasure; - class IfcAngularVelocityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcBlobTexture = IfcBlobTexture; + class IfcCenterLineProfileDef extends IfcArbitraryOpenProfileDef { + constructor(ProfileType, ProfileName, Curve, Thickness) { + super(ProfileType, ProfileName, Curve); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Curve = Curve; + this.Thickness = Thickness; + this.type = 3150382593; } } - IFC42.IfcAngularVelocityMeasure = IfcAngularVelocityMeasure; - class IfcArcIndex { - constructor(value) { - this.value = value; + IFC42.IfcCenterLineProfileDef = IfcCenterLineProfileDef; + class IfcClassification extends IfcExternalInformation { + constructor(Source, Edition, EditionDate, Name, Description, Location, ReferenceTokens) { + super(); + this.Source = Source; + this.Edition = Edition; + this.EditionDate = EditionDate; + this.Name = Name; + this.Description = Description; + this.Location = Location; + this.ReferenceTokens = ReferenceTokens; + this.type = 747523909; } } - IFC42.IfcArcIndex = IfcArcIndex; - class IfcAreaDensityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcClassification = IfcClassification; + class IfcClassificationReference extends IfcExternalReference { + constructor(Location, Identification, Name, ReferencedSource, Description, Sort) { + super(Location, Identification, Name); + this.Location = Location; + this.Identification = Identification; + this.Name = Name; + this.ReferencedSource = ReferencedSource; + this.Description = Description; + this.Sort = Sort; + this.type = 647927063; } } - IFC42.IfcAreaDensityMeasure = IfcAreaDensityMeasure; - class IfcAreaMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcClassificationReference = IfcClassificationReference; + class IfcColourRgbList extends IfcPresentationItem { + constructor(ColourList) { + super(); + this.ColourList = ColourList; + this.type = 3285139300; } } - IFC42.IfcAreaMeasure = IfcAreaMeasure; - class IfcBinary { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcColourRgbList = IfcColourRgbList; + class IfcColourSpecification extends IfcPresentationItem { + constructor(Name) { + super(); + this.Name = Name; + this.type = 3264961684; } } - IFC42.IfcBinary = IfcBinary; - class IfcBoolean { - constructor(v) { - this.type = 3; - this.value = v == "true" ? true : false; + IFC42.IfcColourSpecification = IfcColourSpecification; + class IfcCompositeProfileDef extends IfcProfileDef { + constructor(ProfileType, ProfileName, Profiles, Label) { + super(ProfileType, ProfileName); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Profiles = Profiles; + this.Label = Label; + this.type = 1485152156; } } - IFC42.IfcBoolean = IfcBoolean; - class IfcBoxAlignment { - constructor(value) { - this.value = value; - this.type = 1; + IFC42.IfcCompositeProfileDef = IfcCompositeProfileDef; + class IfcConnectedFaceSet extends IfcTopologicalRepresentationItem { + constructor(CfsFaces) { + super(); + this.CfsFaces = CfsFaces; + this.type = 370225590; } } - IFC42.IfcBoxAlignment = IfcBoxAlignment; - class IfcCardinalPointReference { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcConnectedFaceSet = IfcConnectedFaceSet; + class IfcConnectionCurveGeometry extends IfcConnectionGeometry { + constructor(CurveOnRelatingElement, CurveOnRelatedElement) { + super(); + this.CurveOnRelatingElement = CurveOnRelatingElement; + this.CurveOnRelatedElement = CurveOnRelatedElement; + this.type = 1981873012; } } - IFC42.IfcCardinalPointReference = IfcCardinalPointReference; - class IfcComplexNumber { - constructor(value) { - this.value = value; + IFC42.IfcConnectionCurveGeometry = IfcConnectionCurveGeometry; + class IfcConnectionPointEccentricity extends IfcConnectionPointGeometry { + constructor(PointOnRelatingElement, PointOnRelatedElement, EccentricityInX, EccentricityInY, EccentricityInZ) { + super(PointOnRelatingElement, PointOnRelatedElement); + this.PointOnRelatingElement = PointOnRelatingElement; + this.PointOnRelatedElement = PointOnRelatedElement; + this.EccentricityInX = EccentricityInX; + this.EccentricityInY = EccentricityInY; + this.EccentricityInZ = EccentricityInZ; + this.type = 45288368; } } - IFC42.IfcComplexNumber = IfcComplexNumber; - class IfcCompoundPlaneAngleMeasure { - constructor(value) { - this.value = value; + IFC42.IfcConnectionPointEccentricity = IfcConnectionPointEccentricity; + class IfcContextDependentUnit extends IfcNamedUnit { + constructor(Dimensions, UnitType, Name) { + super(Dimensions, UnitType); + this.Dimensions = Dimensions; + this.UnitType = UnitType; + this.Name = Name; + this.type = 3050246964; + } + } + IFC42.IfcContextDependentUnit = IfcContextDependentUnit; + class IfcConversionBasedUnit extends IfcNamedUnit { + constructor(Dimensions, UnitType, Name, ConversionFactor) { + super(Dimensions, UnitType); + this.Dimensions = Dimensions; + this.UnitType = UnitType; + this.Name = Name; + this.ConversionFactor = ConversionFactor; + this.type = 2889183280; + } + } + IFC42.IfcConversionBasedUnit = IfcConversionBasedUnit; + class IfcConversionBasedUnitWithOffset extends IfcConversionBasedUnit { + constructor(Dimensions, UnitType, Name, ConversionFactor, ConversionOffset) { + super(Dimensions, UnitType, Name, ConversionFactor); + this.Dimensions = Dimensions; + this.UnitType = UnitType; + this.Name = Name; + this.ConversionFactor = ConversionFactor; + this.ConversionOffset = ConversionOffset; + this.type = 2713554722; } } - IFC42.IfcCompoundPlaneAngleMeasure = IfcCompoundPlaneAngleMeasure; - class IfcContextDependentMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcConversionBasedUnitWithOffset = IfcConversionBasedUnitWithOffset; + class IfcCurrencyRelationship extends IfcResourceLevelRelationship { + constructor(Name, Description, RelatingMonetaryUnit, RelatedMonetaryUnit, ExchangeRate, RateDateTime, RateSource) { + super(Name, Description); + this.Name = Name; + this.Description = Description; + this.RelatingMonetaryUnit = RelatingMonetaryUnit; + this.RelatedMonetaryUnit = RelatedMonetaryUnit; + this.ExchangeRate = ExchangeRate; + this.RateDateTime = RateDateTime; + this.RateSource = RateSource; + this.type = 539742890; } } - IFC42.IfcContextDependentMeasure = IfcContextDependentMeasure; - class IfcCountMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcCurrencyRelationship = IfcCurrencyRelationship; + class IfcCurveStyle extends IfcPresentationStyle { + constructor(Name, CurveFont, CurveWidth, CurveColour, ModelOrDraughting) { + super(Name); + this.Name = Name; + this.CurveFont = CurveFont; + this.CurveWidth = CurveWidth; + this.CurveColour = CurveColour; + this.ModelOrDraughting = ModelOrDraughting; + this.type = 3800577675; } } - IFC42.IfcCountMeasure = IfcCountMeasure; - class IfcCurvatureMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcCurveStyle = IfcCurveStyle; + class IfcCurveStyleFont extends IfcPresentationItem { + constructor(Name, PatternList) { + super(); + this.Name = Name; + this.PatternList = PatternList; + this.type = 1105321065; } } - IFC42.IfcCurvatureMeasure = IfcCurvatureMeasure; - class IfcDate { - constructor(value) { - this.value = value; - this.type = 1; + IFC42.IfcCurveStyleFont = IfcCurveStyleFont; + class IfcCurveStyleFontAndScaling extends IfcPresentationItem { + constructor(Name, CurveFont, CurveFontScaling) { + super(); + this.Name = Name; + this.CurveFont = CurveFont; + this.CurveFontScaling = CurveFontScaling; + this.type = 2367409068; } } - IFC42.IfcDate = IfcDate; - class IfcDateTime { - constructor(value) { - this.value = value; - this.type = 1; + IFC42.IfcCurveStyleFontAndScaling = IfcCurveStyleFontAndScaling; + class IfcCurveStyleFontPattern extends IfcPresentationItem { + constructor(VisibleSegmentLength, InvisibleSegmentLength) { + super(); + this.VisibleSegmentLength = VisibleSegmentLength; + this.InvisibleSegmentLength = InvisibleSegmentLength; + this.type = 3510044353; } } - IFC42.IfcDateTime = IfcDateTime; - class IfcDayInMonthNumber { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcCurveStyleFontPattern = IfcCurveStyleFontPattern; + class IfcDerivedProfileDef extends IfcProfileDef { + constructor(ProfileType, ProfileName, ParentProfile, Operator, Label) { + super(ProfileType, ProfileName); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.ParentProfile = ParentProfile; + this.Operator = Operator; + this.Label = Label; + this.type = 3632507154; } } - IFC42.IfcDayInMonthNumber = IfcDayInMonthNumber; - class IfcDayInWeekNumber { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcDerivedProfileDef = IfcDerivedProfileDef; + class IfcDocumentInformation extends IfcExternalInformation { + constructor(Identification, Name, Description, Location, Purpose, IntendedUse, Scope, Revision, DocumentOwner, Editors, CreationTime, LastRevisionTime, ElectronicFormat, ValidFrom, ValidUntil, Confidentiality, Status) { + super(); + this.Identification = Identification; + this.Name = Name; + this.Description = Description; + this.Location = Location; + this.Purpose = Purpose; + this.IntendedUse = IntendedUse; + this.Scope = Scope; + this.Revision = Revision; + this.DocumentOwner = DocumentOwner; + this.Editors = Editors; + this.CreationTime = CreationTime; + this.LastRevisionTime = LastRevisionTime; + this.ElectronicFormat = ElectronicFormat; + this.ValidFrom = ValidFrom; + this.ValidUntil = ValidUntil; + this.Confidentiality = Confidentiality; + this.Status = Status; + this.type = 1154170062; } } - IFC42.IfcDayInWeekNumber = IfcDayInWeekNumber; - class IfcDescriptiveMeasure { - constructor(value) { - this.value = value; - this.type = 1; + IFC42.IfcDocumentInformation = IfcDocumentInformation; + class IfcDocumentInformationRelationship extends IfcResourceLevelRelationship { + constructor(Name, Description, RelatingDocument, RelatedDocuments, RelationshipType) { + super(Name, Description); + this.Name = Name; + this.Description = Description; + this.RelatingDocument = RelatingDocument; + this.RelatedDocuments = RelatedDocuments; + this.RelationshipType = RelationshipType; + this.type = 770865208; } } - IFC42.IfcDescriptiveMeasure = IfcDescriptiveMeasure; - class IfcDimensionCount { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcDocumentInformationRelationship = IfcDocumentInformationRelationship; + class IfcDocumentReference extends IfcExternalReference { + constructor(Location, Identification, Name, Description, ReferencedDocument) { + super(Location, Identification, Name); + this.Location = Location; + this.Identification = Identification; + this.Name = Name; + this.Description = Description; + this.ReferencedDocument = ReferencedDocument; + this.type = 3732053477; } } - IFC42.IfcDimensionCount = IfcDimensionCount; - class IfcDoseEquivalentMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcDocumentReference = IfcDocumentReference; + class IfcEdge extends IfcTopologicalRepresentationItem { + constructor(EdgeStart, EdgeEnd) { + super(); + this.EdgeStart = EdgeStart; + this.EdgeEnd = EdgeEnd; + this.type = 3900360178; } } - IFC42.IfcDoseEquivalentMeasure = IfcDoseEquivalentMeasure; - class IfcDuration { - constructor(value) { - this.value = value; - this.type = 1; + IFC42.IfcEdge = IfcEdge; + class IfcEdgeCurve extends IfcEdge { + constructor(EdgeStart, EdgeEnd, EdgeGeometry, SameSense) { + super(EdgeStart, EdgeEnd); + this.EdgeStart = EdgeStart; + this.EdgeEnd = EdgeEnd; + this.EdgeGeometry = EdgeGeometry; + this.SameSense = SameSense; + this.type = 476780140; } } - IFC42.IfcDuration = IfcDuration; - class IfcDynamicViscosityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcEdgeCurve = IfcEdgeCurve; + class IfcEventTime extends IfcSchedulingTime { + constructor(Name, DataOrigin, UserDefinedDataOrigin, ActualDate, EarlyDate, LateDate, ScheduleDate) { + super(Name, DataOrigin, UserDefinedDataOrigin); + this.Name = Name; + this.DataOrigin = DataOrigin; + this.UserDefinedDataOrigin = UserDefinedDataOrigin; + this.ActualDate = ActualDate; + this.EarlyDate = EarlyDate; + this.LateDate = LateDate; + this.ScheduleDate = ScheduleDate; + this.type = 211053100; } } - IFC42.IfcDynamicViscosityMeasure = IfcDynamicViscosityMeasure; - class IfcElectricCapacitanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcEventTime = IfcEventTime; + class IfcExtendedProperties extends IfcPropertyAbstraction { + constructor(Name, Description, Properties2) { + super(); + this.Name = Name; + this.Description = Description; + this.Properties = Properties2; + this.type = 297599258; } } - IFC42.IfcElectricCapacitanceMeasure = IfcElectricCapacitanceMeasure; - class IfcElectricChargeMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcExtendedProperties = IfcExtendedProperties; + class IfcExternalReferenceRelationship extends IfcResourceLevelRelationship { + constructor(Name, Description, RelatingReference, RelatedResourceObjects) { + super(Name, Description); + this.Name = Name; + this.Description = Description; + this.RelatingReference = RelatingReference; + this.RelatedResourceObjects = RelatedResourceObjects; + this.type = 1437805879; } } - IFC42.IfcElectricChargeMeasure = IfcElectricChargeMeasure; - class IfcElectricConductanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcExternalReferenceRelationship = IfcExternalReferenceRelationship; + class IfcFace extends IfcTopologicalRepresentationItem { + constructor(Bounds) { + super(); + this.Bounds = Bounds; + this.type = 2556980723; } } - IFC42.IfcElectricConductanceMeasure = IfcElectricConductanceMeasure; - class IfcElectricCurrentMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcFace = IfcFace; + class IfcFaceBound extends IfcTopologicalRepresentationItem { + constructor(Bound, Orientation) { + super(); + this.Bound = Bound; + this.Orientation = Orientation; + this.type = 1809719519; } } - IFC42.IfcElectricCurrentMeasure = IfcElectricCurrentMeasure; - class IfcElectricResistanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcFaceBound = IfcFaceBound; + class IfcFaceOuterBound extends IfcFaceBound { + constructor(Bound, Orientation) { + super(Bound, Orientation); + this.Bound = Bound; + this.Orientation = Orientation; + this.type = 803316827; } } - IFC42.IfcElectricResistanceMeasure = IfcElectricResistanceMeasure; - class IfcElectricVoltageMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcFaceOuterBound = IfcFaceOuterBound; + class IfcFaceSurface extends IfcFace { + constructor(Bounds, FaceSurface, SameSense) { + super(Bounds); + this.Bounds = Bounds; + this.FaceSurface = FaceSurface; + this.SameSense = SameSense; + this.type = 3008276851; } } - IFC42.IfcElectricVoltageMeasure = IfcElectricVoltageMeasure; - class IfcEnergyMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcFaceSurface = IfcFaceSurface; + class IfcFailureConnectionCondition extends IfcStructuralConnectionCondition { + constructor(Name, TensionFailureX, TensionFailureY, TensionFailureZ, CompressionFailureX, CompressionFailureY, CompressionFailureZ) { + super(Name); + this.Name = Name; + this.TensionFailureX = TensionFailureX; + this.TensionFailureY = TensionFailureY; + this.TensionFailureZ = TensionFailureZ; + this.CompressionFailureX = CompressionFailureX; + this.CompressionFailureY = CompressionFailureY; + this.CompressionFailureZ = CompressionFailureZ; + this.type = 4219587988; } } - IFC42.IfcEnergyMeasure = IfcEnergyMeasure; - class IfcFontStyle { - constructor(value) { - this.value = value; - this.type = 1; + IFC42.IfcFailureConnectionCondition = IfcFailureConnectionCondition; + class IfcFillAreaStyle extends IfcPresentationStyle { + constructor(Name, FillStyles, ModelorDraughting) { + super(Name); + this.Name = Name; + this.FillStyles = FillStyles; + this.ModelorDraughting = ModelorDraughting; + this.type = 738692330; } } - IFC42.IfcFontStyle = IfcFontStyle; - class IfcFontVariant { - constructor(value) { - this.value = value; - this.type = 1; + IFC42.IfcFillAreaStyle = IfcFillAreaStyle; + class IfcGeometricRepresentationContext extends IfcRepresentationContext { + constructor(ContextIdentifier, ContextType, CoordinateSpaceDimension, Precision, WorldCoordinateSystem, TrueNorth) { + super(ContextIdentifier, ContextType); + this.ContextIdentifier = ContextIdentifier; + this.ContextType = ContextType; + this.CoordinateSpaceDimension = CoordinateSpaceDimension; + this.Precision = Precision; + this.WorldCoordinateSystem = WorldCoordinateSystem; + this.TrueNorth = TrueNorth; + this.type = 3448662350; } } - IFC42.IfcFontVariant = IfcFontVariant; - class IfcFontWeight { - constructor(value) { - this.value = value; - this.type = 1; + IFC42.IfcGeometricRepresentationContext = IfcGeometricRepresentationContext; + class IfcGeometricRepresentationItem extends IfcRepresentationItem { + constructor() { + super(); + this.type = 2453401579; } } - IFC42.IfcFontWeight = IfcFontWeight; - class IfcForceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcGeometricRepresentationItem = IfcGeometricRepresentationItem; + class IfcGeometricRepresentationSubContext extends IfcGeometricRepresentationContext { + constructor(ContextIdentifier, ContextType, ParentContext, TargetScale, TargetView, UserDefinedTargetView) { + super(ContextIdentifier, ContextType, new IfcDimensionCount(0), null, new Handle$5(0), null); + this.ContextIdentifier = ContextIdentifier; + this.ContextType = ContextType; + this.ParentContext = ParentContext; + this.TargetScale = TargetScale; + this.TargetView = TargetView; + this.UserDefinedTargetView = UserDefinedTargetView; + this.type = 4142052618; } } - IFC42.IfcForceMeasure = IfcForceMeasure; - class IfcFrequencyMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcGeometricRepresentationSubContext = IfcGeometricRepresentationSubContext; + class IfcGeometricSet extends IfcGeometricRepresentationItem { + constructor(Elements) { + super(); + this.Elements = Elements; + this.type = 3590301190; } } - IFC42.IfcFrequencyMeasure = IfcFrequencyMeasure; - class IfcGloballyUniqueId { - constructor(value) { - this.value = value; - this.type = 1; + IFC42.IfcGeometricSet = IfcGeometricSet; + class IfcGridPlacement extends IfcObjectPlacement { + constructor(PlacementLocation, PlacementRefDirection) { + super(); + this.PlacementLocation = PlacementLocation; + this.PlacementRefDirection = PlacementRefDirection; + this.type = 178086475; } } - IFC42.IfcGloballyUniqueId = IfcGloballyUniqueId; - class IfcHeatFluxDensityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcGridPlacement = IfcGridPlacement; + class IfcHalfSpaceSolid extends IfcGeometricRepresentationItem { + constructor(BaseSurface, AgreementFlag) { + super(); + this.BaseSurface = BaseSurface; + this.AgreementFlag = AgreementFlag; + this.type = 812098782; } } - IFC42.IfcHeatFluxDensityMeasure = IfcHeatFluxDensityMeasure; - class IfcHeatingValueMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcHalfSpaceSolid = IfcHalfSpaceSolid; + class IfcImageTexture extends IfcSurfaceTexture { + constructor(RepeatS, RepeatT, Mode, TextureTransform, Parameter, URLReference) { + super(RepeatS, RepeatT, Mode, TextureTransform, Parameter); + this.RepeatS = RepeatS; + this.RepeatT = RepeatT; + this.Mode = Mode; + this.TextureTransform = TextureTransform; + this.Parameter = Parameter; + this.URLReference = URLReference; + this.type = 3905492369; } } - IFC42.IfcHeatingValueMeasure = IfcHeatingValueMeasure; - class IfcIdentifier { - constructor(value) { - this.value = value; - this.type = 1; + IFC42.IfcImageTexture = IfcImageTexture; + class IfcIndexedColourMap extends IfcPresentationItem { + constructor(MappedTo, Opacity, Colours, ColourIndex) { + super(); + this.MappedTo = MappedTo; + this.Opacity = Opacity; + this.Colours = Colours; + this.ColourIndex = ColourIndex; + this.type = 3570813810; } } - IFC42.IfcIdentifier = IfcIdentifier; - class IfcIlluminanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcIndexedColourMap = IfcIndexedColourMap; + class IfcIndexedTextureMap extends IfcTextureCoordinate { + constructor(Maps, MappedTo, TexCoords) { + super(Maps); + this.Maps = Maps; + this.MappedTo = MappedTo; + this.TexCoords = TexCoords; + this.type = 1437953363; } } - IFC42.IfcIlluminanceMeasure = IfcIlluminanceMeasure; - class IfcInductanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcIndexedTextureMap = IfcIndexedTextureMap; + class IfcIndexedTriangleTextureMap extends IfcIndexedTextureMap { + constructor(Maps, MappedTo, TexCoords, TexCoordIndex) { + super(Maps, MappedTo, TexCoords); + this.Maps = Maps; + this.MappedTo = MappedTo; + this.TexCoords = TexCoords; + this.TexCoordIndex = TexCoordIndex; + this.type = 2133299955; } } - IFC42.IfcInductanceMeasure = IfcInductanceMeasure; - class IfcInteger { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcIndexedTriangleTextureMap = IfcIndexedTriangleTextureMap; + class IfcIrregularTimeSeries extends IfcTimeSeries { + constructor(Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit, Values) { + super(Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit); + this.Name = Name; + this.Description = Description; + this.StartTime = StartTime; + this.EndTime = EndTime; + this.TimeSeriesDataType = TimeSeriesDataType; + this.DataOrigin = DataOrigin; + this.UserDefinedDataOrigin = UserDefinedDataOrigin; + this.Unit = Unit; + this.Values = Values; + this.type = 3741457305; } } - IFC42.IfcInteger = IfcInteger; - class IfcIntegerCountRateMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcIrregularTimeSeries = IfcIrregularTimeSeries; + class IfcLagTime extends IfcSchedulingTime { + constructor(Name, DataOrigin, UserDefinedDataOrigin, LagValue, DurationType) { + super(Name, DataOrigin, UserDefinedDataOrigin); + this.Name = Name; + this.DataOrigin = DataOrigin; + this.UserDefinedDataOrigin = UserDefinedDataOrigin; + this.LagValue = LagValue; + this.DurationType = DurationType; + this.type = 1585845231; } } - IFC42.IfcIntegerCountRateMeasure = IfcIntegerCountRateMeasure; - class IfcIonConcentrationMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcLagTime = IfcLagTime; + class IfcLightSource extends IfcGeometricRepresentationItem { + constructor(Name, LightColour, AmbientIntensity, Intensity) { + super(); + this.Name = Name; + this.LightColour = LightColour; + this.AmbientIntensity = AmbientIntensity; + this.Intensity = Intensity; + this.type = 1402838566; } } - IFC42.IfcIonConcentrationMeasure = IfcIonConcentrationMeasure; - class IfcIsothermalMoistureCapacityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcLightSource = IfcLightSource; + class IfcLightSourceAmbient extends IfcLightSource { + constructor(Name, LightColour, AmbientIntensity, Intensity) { + super(Name, LightColour, AmbientIntensity, Intensity); + this.Name = Name; + this.LightColour = LightColour; + this.AmbientIntensity = AmbientIntensity; + this.Intensity = Intensity; + this.type = 125510826; } } - IFC42.IfcIsothermalMoistureCapacityMeasure = IfcIsothermalMoistureCapacityMeasure; - class IfcKinematicViscosityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcLightSourceAmbient = IfcLightSourceAmbient; + class IfcLightSourceDirectional extends IfcLightSource { + constructor(Name, LightColour, AmbientIntensity, Intensity, Orientation) { + super(Name, LightColour, AmbientIntensity, Intensity); + this.Name = Name; + this.LightColour = LightColour; + this.AmbientIntensity = AmbientIntensity; + this.Intensity = Intensity; + this.Orientation = Orientation; + this.type = 2604431987; } } - IFC42.IfcKinematicViscosityMeasure = IfcKinematicViscosityMeasure; - class IfcLabel { - constructor(value) { - this.value = value; - this.type = 1; + IFC42.IfcLightSourceDirectional = IfcLightSourceDirectional; + class IfcLightSourceGoniometric extends IfcLightSource { + constructor(Name, LightColour, AmbientIntensity, Intensity, Position, ColourAppearance, ColourTemperature, LuminousFlux, LightEmissionSource, LightDistributionDataSource) { + super(Name, LightColour, AmbientIntensity, Intensity); + this.Name = Name; + this.LightColour = LightColour; + this.AmbientIntensity = AmbientIntensity; + this.Intensity = Intensity; + this.Position = Position; + this.ColourAppearance = ColourAppearance; + this.ColourTemperature = ColourTemperature; + this.LuminousFlux = LuminousFlux; + this.LightEmissionSource = LightEmissionSource; + this.LightDistributionDataSource = LightDistributionDataSource; + this.type = 4266656042; } } - IFC42.IfcLabel = IfcLabel; - class IfcLanguageId { - constructor(value) { - this.value = value; - this.type = 1; + IFC42.IfcLightSourceGoniometric = IfcLightSourceGoniometric; + class IfcLightSourcePositional extends IfcLightSource { + constructor(Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation) { + super(Name, LightColour, AmbientIntensity, Intensity); + this.Name = Name; + this.LightColour = LightColour; + this.AmbientIntensity = AmbientIntensity; + this.Intensity = Intensity; + this.Position = Position; + this.Radius = Radius; + this.ConstantAttenuation = ConstantAttenuation; + this.DistanceAttenuation = DistanceAttenuation; + this.QuadricAttenuation = QuadricAttenuation; + this.type = 1520743889; } } - IFC42.IfcLanguageId = IfcLanguageId; - class IfcLengthMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcLightSourcePositional = IfcLightSourcePositional; + class IfcLightSourceSpot extends IfcLightSourcePositional { + constructor(Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation, Orientation, ConcentrationExponent, SpreadAngle, BeamWidthAngle) { + super(Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation); + this.Name = Name; + this.LightColour = LightColour; + this.AmbientIntensity = AmbientIntensity; + this.Intensity = Intensity; + this.Position = Position; + this.Radius = Radius; + this.ConstantAttenuation = ConstantAttenuation; + this.DistanceAttenuation = DistanceAttenuation; + this.QuadricAttenuation = QuadricAttenuation; + this.Orientation = Orientation; + this.ConcentrationExponent = ConcentrationExponent; + this.SpreadAngle = SpreadAngle; + this.BeamWidthAngle = BeamWidthAngle; + this.type = 3422422726; } } - IFC42.IfcLengthMeasure = IfcLengthMeasure; - class IfcLineIndex { - constructor(value) { - this.value = value; + IFC42.IfcLightSourceSpot = IfcLightSourceSpot; + class IfcLocalPlacement extends IfcObjectPlacement { + constructor(PlacementRelTo, RelativePlacement) { + super(); + this.PlacementRelTo = PlacementRelTo; + this.RelativePlacement = RelativePlacement; + this.type = 2624227202; } } - IFC42.IfcLineIndex = IfcLineIndex; - class IfcLinearForceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcLocalPlacement = IfcLocalPlacement; + class IfcLoop extends IfcTopologicalRepresentationItem { + constructor() { + super(); + this.type = 1008929658; } } - IFC42.IfcLinearForceMeasure = IfcLinearForceMeasure; - class IfcLinearMomentMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcLoop = IfcLoop; + class IfcMappedItem extends IfcRepresentationItem { + constructor(MappingSource, MappingTarget) { + super(); + this.MappingSource = MappingSource; + this.MappingTarget = MappingTarget; + this.type = 2347385850; } } - IFC42.IfcLinearMomentMeasure = IfcLinearMomentMeasure; - class IfcLinearStiffnessMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcMappedItem = IfcMappedItem; + class IfcMaterial extends IfcMaterialDefinition { + constructor(Name, Description, Category) { + super(); + this.Name = Name; + this.Description = Description; + this.Category = Category; + this.type = 1838606355; } } - IFC42.IfcLinearStiffnessMeasure = IfcLinearStiffnessMeasure; - class IfcLinearVelocityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcMaterial = IfcMaterial; + class IfcMaterialConstituent extends IfcMaterialDefinition { + constructor(Name, Description, Material, Fraction, Category) { + super(); + this.Name = Name; + this.Description = Description; + this.Material = Material; + this.Fraction = Fraction; + this.Category = Category; + this.type = 3708119e3; } } - IFC42.IfcLinearVelocityMeasure = IfcLinearVelocityMeasure; - class IfcLogical { - constructor(v) { - this.type = 3; - this.value = v == "true" ? true : false; + IFC42.IfcMaterialConstituent = IfcMaterialConstituent; + class IfcMaterialConstituentSet extends IfcMaterialDefinition { + constructor(Name, Description, MaterialConstituents) { + super(); + this.Name = Name; + this.Description = Description; + this.MaterialConstituents = MaterialConstituents; + this.type = 2852063980; } } - IFC42.IfcLogical = IfcLogical; - class IfcLuminousFluxMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcMaterialConstituentSet = IfcMaterialConstituentSet; + class IfcMaterialDefinitionRepresentation extends IfcProductRepresentation { + constructor(Name, Description, Representations, RepresentedMaterial) { + super(Name, Description, Representations); + this.Name = Name; + this.Description = Description; + this.Representations = Representations; + this.RepresentedMaterial = RepresentedMaterial; + this.type = 2022407955; } } - IFC42.IfcLuminousFluxMeasure = IfcLuminousFluxMeasure; - class IfcLuminousIntensityDistributionMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcMaterialDefinitionRepresentation = IfcMaterialDefinitionRepresentation; + class IfcMaterialLayerSetUsage extends IfcMaterialUsageDefinition { + constructor(ForLayerSet, LayerSetDirection, DirectionSense, OffsetFromReferenceLine, ReferenceExtent) { + super(); + this.ForLayerSet = ForLayerSet; + this.LayerSetDirection = LayerSetDirection; + this.DirectionSense = DirectionSense; + this.OffsetFromReferenceLine = OffsetFromReferenceLine; + this.ReferenceExtent = ReferenceExtent; + this.type = 1303795690; } } - IFC42.IfcLuminousIntensityDistributionMeasure = IfcLuminousIntensityDistributionMeasure; - class IfcLuminousIntensityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcMaterialLayerSetUsage = IfcMaterialLayerSetUsage; + class IfcMaterialProfileSetUsage extends IfcMaterialUsageDefinition { + constructor(ForProfileSet, CardinalPoint, ReferenceExtent) { + super(); + this.ForProfileSet = ForProfileSet; + this.CardinalPoint = CardinalPoint; + this.ReferenceExtent = ReferenceExtent; + this.type = 3079605661; } } - IFC42.IfcLuminousIntensityMeasure = IfcLuminousIntensityMeasure; - class IfcMagneticFluxDensityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcMaterialProfileSetUsage = IfcMaterialProfileSetUsage; + class IfcMaterialProfileSetUsageTapering extends IfcMaterialProfileSetUsage { + constructor(ForProfileSet, CardinalPoint, ReferenceExtent, ForProfileEndSet, CardinalEndPoint) { + super(ForProfileSet, CardinalPoint, ReferenceExtent); + this.ForProfileSet = ForProfileSet; + this.CardinalPoint = CardinalPoint; + this.ReferenceExtent = ReferenceExtent; + this.ForProfileEndSet = ForProfileEndSet; + this.CardinalEndPoint = CardinalEndPoint; + this.type = 3404854881; } } - IFC42.IfcMagneticFluxDensityMeasure = IfcMagneticFluxDensityMeasure; - class IfcMagneticFluxMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcMaterialProfileSetUsageTapering = IfcMaterialProfileSetUsageTapering; + class IfcMaterialProperties extends IfcExtendedProperties { + constructor(Name, Description, Properties2, Material) { + super(Name, Description, Properties2); + this.Name = Name; + this.Description = Description; + this.Properties = Properties2; + this.Material = Material; + this.type = 3265635763; } } - IFC42.IfcMagneticFluxMeasure = IfcMagneticFluxMeasure; - class IfcMassDensityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcMaterialProperties = IfcMaterialProperties; + class IfcMaterialRelationship extends IfcResourceLevelRelationship { + constructor(Name, Description, RelatingMaterial, RelatedMaterials, Expression) { + super(Name, Description); + this.Name = Name; + this.Description = Description; + this.RelatingMaterial = RelatingMaterial; + this.RelatedMaterials = RelatedMaterials; + this.Expression = Expression; + this.type = 853536259; } } - IFC42.IfcMassDensityMeasure = IfcMassDensityMeasure; - class IfcMassFlowRateMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcMaterialRelationship = IfcMaterialRelationship; + class IfcMirroredProfileDef extends IfcDerivedProfileDef { + constructor(ProfileType, ProfileName, ParentProfile, Label) { + super(ProfileType, ProfileName, ParentProfile, new Handle$5(0), Label); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.ParentProfile = ParentProfile; + this.Label = Label; + this.type = 2998442950; } } - IFC42.IfcMassFlowRateMeasure = IfcMassFlowRateMeasure; - class IfcMassMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcMirroredProfileDef = IfcMirroredProfileDef; + class IfcObjectDefinition extends IfcRoot { + constructor(GlobalId, OwnerHistory, Name, Description) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.type = 219451334; } } - IFC42.IfcMassMeasure = IfcMassMeasure; - class IfcMassPerLengthMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcObjectDefinition = IfcObjectDefinition; + class IfcOpenShell extends IfcConnectedFaceSet { + constructor(CfsFaces) { + super(CfsFaces); + this.CfsFaces = CfsFaces; + this.type = 2665983363; } } - IFC42.IfcMassPerLengthMeasure = IfcMassPerLengthMeasure; - class IfcModulusOfElasticityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcOpenShell = IfcOpenShell; + class IfcOrganizationRelationship extends IfcResourceLevelRelationship { + constructor(Name, Description, RelatingOrganization, RelatedOrganizations) { + super(Name, Description); + this.Name = Name; + this.Description = Description; + this.RelatingOrganization = RelatingOrganization; + this.RelatedOrganizations = RelatedOrganizations; + this.type = 1411181986; } } - IFC42.IfcModulusOfElasticityMeasure = IfcModulusOfElasticityMeasure; - class IfcModulusOfLinearSubgradeReactionMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcOrganizationRelationship = IfcOrganizationRelationship; + class IfcOrientedEdge extends IfcEdge { + constructor(EdgeElement, Orientation) { + super(new Handle$5(0), new Handle$5(0)); + this.EdgeElement = EdgeElement; + this.Orientation = Orientation; + this.type = 1029017970; } } - IFC42.IfcModulusOfLinearSubgradeReactionMeasure = IfcModulusOfLinearSubgradeReactionMeasure; - class IfcModulusOfRotationalSubgradeReactionMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcOrientedEdge = IfcOrientedEdge; + class IfcParameterizedProfileDef extends IfcProfileDef { + constructor(ProfileType, ProfileName, Position) { + super(ProfileType, ProfileName); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.type = 2529465313; } } - IFC42.IfcModulusOfRotationalSubgradeReactionMeasure = IfcModulusOfRotationalSubgradeReactionMeasure; - class IfcModulusOfSubgradeReactionMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcParameterizedProfileDef = IfcParameterizedProfileDef; + class IfcPath extends IfcTopologicalRepresentationItem { + constructor(EdgeList) { + super(); + this.EdgeList = EdgeList; + this.type = 2519244187; } } - IFC42.IfcModulusOfSubgradeReactionMeasure = IfcModulusOfSubgradeReactionMeasure; - class IfcMoistureDiffusivityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcPath = IfcPath; + class IfcPhysicalComplexQuantity extends IfcPhysicalQuantity { + constructor(Name, Description, HasQuantities, Discrimination, Quality, Usage) { + super(Name, Description); + this.Name = Name; + this.Description = Description; + this.HasQuantities = HasQuantities; + this.Discrimination = Discrimination; + this.Quality = Quality; + this.Usage = Usage; + this.type = 3021840470; } } - IFC42.IfcMoistureDiffusivityMeasure = IfcMoistureDiffusivityMeasure; - class IfcMolecularWeightMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcPhysicalComplexQuantity = IfcPhysicalComplexQuantity; + class IfcPixelTexture extends IfcSurfaceTexture { + constructor(RepeatS, RepeatT, Mode, TextureTransform, Parameter, Width, Height, ColourComponents, Pixel) { + super(RepeatS, RepeatT, Mode, TextureTransform, Parameter); + this.RepeatS = RepeatS; + this.RepeatT = RepeatT; + this.Mode = Mode; + this.TextureTransform = TextureTransform; + this.Parameter = Parameter; + this.Width = Width; + this.Height = Height; + this.ColourComponents = ColourComponents; + this.Pixel = Pixel; + this.type = 597895409; } } - IFC42.IfcMolecularWeightMeasure = IfcMolecularWeightMeasure; - class IfcMomentOfInertiaMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcPixelTexture = IfcPixelTexture; + class IfcPlacement extends IfcGeometricRepresentationItem { + constructor(Location) { + super(); + this.Location = Location; + this.type = 2004835150; } } - IFC42.IfcMomentOfInertiaMeasure = IfcMomentOfInertiaMeasure; - class IfcMonetaryMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcPlacement = IfcPlacement; + class IfcPlanarExtent extends IfcGeometricRepresentationItem { + constructor(SizeInX, SizeInY) { + super(); + this.SizeInX = SizeInX; + this.SizeInY = SizeInY; + this.type = 1663979128; } } - IFC42.IfcMonetaryMeasure = IfcMonetaryMeasure; - class IfcMonthInYearNumber { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcPlanarExtent = IfcPlanarExtent; + class IfcPoint extends IfcGeometricRepresentationItem { + constructor() { + super(); + this.type = 2067069095; } } - IFC42.IfcMonthInYearNumber = IfcMonthInYearNumber; - class IfcNonNegativeLengthMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcPoint = IfcPoint; + class IfcPointOnCurve extends IfcPoint { + constructor(BasisCurve, PointParameter) { + super(); + this.BasisCurve = BasisCurve; + this.PointParameter = PointParameter; + this.type = 4022376103; } } - IFC42.IfcNonNegativeLengthMeasure = IfcNonNegativeLengthMeasure; - class IfcNormalisedRatioMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcPointOnCurve = IfcPointOnCurve; + class IfcPointOnSurface extends IfcPoint { + constructor(BasisSurface, PointParameterU, PointParameterV) { + super(); + this.BasisSurface = BasisSurface; + this.PointParameterU = PointParameterU; + this.PointParameterV = PointParameterV; + this.type = 1423911732; } } - IFC42.IfcNormalisedRatioMeasure = IfcNormalisedRatioMeasure; - class IfcNumericMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcPointOnSurface = IfcPointOnSurface; + class IfcPolyLoop extends IfcLoop { + constructor(Polygon) { + super(); + this.Polygon = Polygon; + this.type = 2924175390; } } - IFC42.IfcNumericMeasure = IfcNumericMeasure; - class IfcPHMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcPolyLoop = IfcPolyLoop; + class IfcPolygonalBoundedHalfSpace extends IfcHalfSpaceSolid { + constructor(BaseSurface, AgreementFlag, Position, PolygonalBoundary) { + super(BaseSurface, AgreementFlag); + this.BaseSurface = BaseSurface; + this.AgreementFlag = AgreementFlag; + this.Position = Position; + this.PolygonalBoundary = PolygonalBoundary; + this.type = 2775532180; } } - IFC42.IfcPHMeasure = IfcPHMeasure; - class IfcParameterValue { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcPolygonalBoundedHalfSpace = IfcPolygonalBoundedHalfSpace; + class IfcPreDefinedItem extends IfcPresentationItem { + constructor(Name) { + super(); + this.Name = Name; + this.type = 3727388367; } } - IFC42.IfcParameterValue = IfcParameterValue; - class IfcPlanarForceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcPreDefinedItem = IfcPreDefinedItem; + class IfcPreDefinedProperties extends IfcPropertyAbstraction { + constructor() { + super(); + this.type = 3778827333; } } - IFC42.IfcPlanarForceMeasure = IfcPlanarForceMeasure; - class IfcPlaneAngleMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcPreDefinedProperties = IfcPreDefinedProperties; + class IfcPreDefinedTextFont extends IfcPreDefinedItem { + constructor(Name) { + super(Name); + this.Name = Name; + this.type = 1775413392; } } - IFC42.IfcPlaneAngleMeasure = IfcPlaneAngleMeasure; - class IfcPositiveInteger { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcPreDefinedTextFont = IfcPreDefinedTextFont; + class IfcProductDefinitionShape extends IfcProductRepresentation { + constructor(Name, Description, Representations) { + super(Name, Description, Representations); + this.Name = Name; + this.Description = Description; + this.Representations = Representations; + this.type = 673634403; } } - IFC42.IfcPositiveInteger = IfcPositiveInteger; - class IfcPositiveLengthMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcProductDefinitionShape = IfcProductDefinitionShape; + class IfcProfileProperties extends IfcExtendedProperties { + constructor(Name, Description, Properties2, ProfileDefinition) { + super(Name, Description, Properties2); + this.Name = Name; + this.Description = Description; + this.Properties = Properties2; + this.ProfileDefinition = ProfileDefinition; + this.type = 2802850158; } } - IFC42.IfcPositiveLengthMeasure = IfcPositiveLengthMeasure; - class IfcPositivePlaneAngleMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcProfileProperties = IfcProfileProperties; + class IfcProperty extends IfcPropertyAbstraction { + constructor(Name, Description) { + super(); + this.Name = Name; + this.Description = Description; + this.type = 2598011224; } } - IFC42.IfcPositivePlaneAngleMeasure = IfcPositivePlaneAngleMeasure; - class IfcPositiveRatioMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcProperty = IfcProperty; + class IfcPropertyDefinition extends IfcRoot { + constructor(GlobalId, OwnerHistory, Name, Description) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.type = 1680319473; } } - IFC42.IfcPositiveRatioMeasure = IfcPositiveRatioMeasure; - class IfcPowerMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcPropertyDefinition = IfcPropertyDefinition; + class IfcPropertyDependencyRelationship extends IfcResourceLevelRelationship { + constructor(Name, Description, DependingProperty, DependantProperty, Expression) { + super(Name, Description); + this.Name = Name; + this.Description = Description; + this.DependingProperty = DependingProperty; + this.DependantProperty = DependantProperty; + this.Expression = Expression; + this.type = 148025276; } } - IFC42.IfcPowerMeasure = IfcPowerMeasure; - class IfcPresentableText { - constructor(value) { - this.value = value; - this.type = 1; + IFC42.IfcPropertyDependencyRelationship = IfcPropertyDependencyRelationship; + class IfcPropertySetDefinition extends IfcPropertyDefinition { + constructor(GlobalId, OwnerHistory, Name, Description) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.type = 3357820518; } } - IFC42.IfcPresentableText = IfcPresentableText; - class IfcPressureMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcPropertySetDefinition = IfcPropertySetDefinition; + class IfcPropertyTemplateDefinition extends IfcPropertyDefinition { + constructor(GlobalId, OwnerHistory, Name, Description) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.type = 1482703590; } } - IFC42.IfcPressureMeasure = IfcPressureMeasure; - class IfcPropertySetDefinitionSet { - constructor(value) { - this.value = value; + IFC42.IfcPropertyTemplateDefinition = IfcPropertyTemplateDefinition; + class IfcQuantitySet extends IfcPropertySetDefinition { + constructor(GlobalId, OwnerHistory, Name, Description) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.type = 2090586900; } } - IFC42.IfcPropertySetDefinitionSet = IfcPropertySetDefinitionSet; - class IfcRadioActivityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcQuantitySet = IfcQuantitySet; + class IfcRectangleProfileDef extends IfcParameterizedProfileDef { + constructor(ProfileType, ProfileName, Position, XDim, YDim) { + super(ProfileType, ProfileName, Position); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.XDim = XDim; + this.YDim = YDim; + this.type = 3615266464; } } - IFC42.IfcRadioActivityMeasure = IfcRadioActivityMeasure; - class IfcRatioMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcRectangleProfileDef = IfcRectangleProfileDef; + class IfcRegularTimeSeries extends IfcTimeSeries { + constructor(Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit, TimeStep, Values) { + super(Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit); + this.Name = Name; + this.Description = Description; + this.StartTime = StartTime; + this.EndTime = EndTime; + this.TimeSeriesDataType = TimeSeriesDataType; + this.DataOrigin = DataOrigin; + this.UserDefinedDataOrigin = UserDefinedDataOrigin; + this.Unit = Unit; + this.TimeStep = TimeStep; + this.Values = Values; + this.type = 3413951693; } } - IFC42.IfcRatioMeasure = IfcRatioMeasure; - class IfcReal { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcRegularTimeSeries = IfcRegularTimeSeries; + class IfcReinforcementBarProperties extends IfcPreDefinedProperties { + constructor(TotalCrossSectionArea, SteelGrade, BarSurface, EffectiveDepth, NominalBarDiameter, BarCount) { + super(); + this.TotalCrossSectionArea = TotalCrossSectionArea; + this.SteelGrade = SteelGrade; + this.BarSurface = BarSurface; + this.EffectiveDepth = EffectiveDepth; + this.NominalBarDiameter = NominalBarDiameter; + this.BarCount = BarCount; + this.type = 1580146022; } } - IFC42.IfcReal = IfcReal; - class IfcRotationalFrequencyMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcReinforcementBarProperties = IfcReinforcementBarProperties; + class IfcRelationship extends IfcRoot { + constructor(GlobalId, OwnerHistory, Name, Description) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.type = 478536968; } } - IFC42.IfcRotationalFrequencyMeasure = IfcRotationalFrequencyMeasure; - class IfcRotationalMassMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcRelationship = IfcRelationship; + class IfcResourceApprovalRelationship extends IfcResourceLevelRelationship { + constructor(Name, Description, RelatedResourceObjects, RelatingApproval) { + super(Name, Description); + this.Name = Name; + this.Description = Description; + this.RelatedResourceObjects = RelatedResourceObjects; + this.RelatingApproval = RelatingApproval; + this.type = 2943643501; } } - IFC42.IfcRotationalMassMeasure = IfcRotationalMassMeasure; - class IfcRotationalStiffnessMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcResourceApprovalRelationship = IfcResourceApprovalRelationship; + class IfcResourceConstraintRelationship extends IfcResourceLevelRelationship { + constructor(Name, Description, RelatingConstraint, RelatedResourceObjects) { + super(Name, Description); + this.Name = Name; + this.Description = Description; + this.RelatingConstraint = RelatingConstraint; + this.RelatedResourceObjects = RelatedResourceObjects; + this.type = 1608871552; } } - IFC42.IfcRotationalStiffnessMeasure = IfcRotationalStiffnessMeasure; - class IfcSectionModulusMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcResourceConstraintRelationship = IfcResourceConstraintRelationship; + class IfcResourceTime extends IfcSchedulingTime { + constructor(Name, DataOrigin, UserDefinedDataOrigin, ScheduleWork, ScheduleUsage, ScheduleStart, ScheduleFinish, ScheduleContour, LevelingDelay, IsOverAllocated, StatusTime, ActualWork, ActualUsage, ActualStart, ActualFinish, RemainingWork, RemainingUsage, Completion) { + super(Name, DataOrigin, UserDefinedDataOrigin); + this.Name = Name; + this.DataOrigin = DataOrigin; + this.UserDefinedDataOrigin = UserDefinedDataOrigin; + this.ScheduleWork = ScheduleWork; + this.ScheduleUsage = ScheduleUsage; + this.ScheduleStart = ScheduleStart; + this.ScheduleFinish = ScheduleFinish; + this.ScheduleContour = ScheduleContour; + this.LevelingDelay = LevelingDelay; + this.IsOverAllocated = IsOverAllocated; + this.StatusTime = StatusTime; + this.ActualWork = ActualWork; + this.ActualUsage = ActualUsage; + this.ActualStart = ActualStart; + this.ActualFinish = ActualFinish; + this.RemainingWork = RemainingWork; + this.RemainingUsage = RemainingUsage; + this.Completion = Completion; + this.type = 1042787934; } } - IFC42.IfcSectionModulusMeasure = IfcSectionModulusMeasure; - class IfcSectionalAreaIntegralMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcResourceTime = IfcResourceTime; + class IfcRoundedRectangleProfileDef extends IfcRectangleProfileDef { + constructor(ProfileType, ProfileName, Position, XDim, YDim, RoundingRadius) { + super(ProfileType, ProfileName, Position, XDim, YDim); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.XDim = XDim; + this.YDim = YDim; + this.RoundingRadius = RoundingRadius; + this.type = 2778083089; } } - IFC42.IfcSectionalAreaIntegralMeasure = IfcSectionalAreaIntegralMeasure; - class IfcShearModulusMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcRoundedRectangleProfileDef = IfcRoundedRectangleProfileDef; + class IfcSectionProperties extends IfcPreDefinedProperties { + constructor(SectionType, StartProfile, EndProfile) { + super(); + this.SectionType = SectionType; + this.StartProfile = StartProfile; + this.EndProfile = EndProfile; + this.type = 2042790032; } } - IFC42.IfcShearModulusMeasure = IfcShearModulusMeasure; - class IfcSolidAngleMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcSectionProperties = IfcSectionProperties; + class IfcSectionReinforcementProperties extends IfcPreDefinedProperties { + constructor(LongitudinalStartPosition, LongitudinalEndPosition, TransversePosition, ReinforcementRole, SectionDefinition, CrossSectionReinforcementDefinitions) { + super(); + this.LongitudinalStartPosition = LongitudinalStartPosition; + this.LongitudinalEndPosition = LongitudinalEndPosition; + this.TransversePosition = TransversePosition; + this.ReinforcementRole = ReinforcementRole; + this.SectionDefinition = SectionDefinition; + this.CrossSectionReinforcementDefinitions = CrossSectionReinforcementDefinitions; + this.type = 4165799628; } } - IFC42.IfcSolidAngleMeasure = IfcSolidAngleMeasure; - class IfcSoundPowerLevelMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcSectionReinforcementProperties = IfcSectionReinforcementProperties; + class IfcSectionedSpine extends IfcGeometricRepresentationItem { + constructor(SpineCurve, CrossSections, CrossSectionPositions) { + super(); + this.SpineCurve = SpineCurve; + this.CrossSections = CrossSections; + this.CrossSectionPositions = CrossSectionPositions; + this.type = 1509187699; } } - IFC42.IfcSoundPowerLevelMeasure = IfcSoundPowerLevelMeasure; - class IfcSoundPowerMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcSectionedSpine = IfcSectionedSpine; + class IfcShellBasedSurfaceModel extends IfcGeometricRepresentationItem { + constructor(SbsmBoundary) { + super(); + this.SbsmBoundary = SbsmBoundary; + this.type = 4124623270; } } - IFC42.IfcSoundPowerMeasure = IfcSoundPowerMeasure; - class IfcSoundPressureLevelMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcShellBasedSurfaceModel = IfcShellBasedSurfaceModel; + class IfcSimpleProperty extends IfcProperty { + constructor(Name, Description) { + super(Name, Description); + this.Name = Name; + this.Description = Description; + this.type = 3692461612; } } - IFC42.IfcSoundPressureLevelMeasure = IfcSoundPressureLevelMeasure; - class IfcSoundPressureMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcSimpleProperty = IfcSimpleProperty; + class IfcSlippageConnectionCondition extends IfcStructuralConnectionCondition { + constructor(Name, SlippageX, SlippageY, SlippageZ) { + super(Name); + this.Name = Name; + this.SlippageX = SlippageX; + this.SlippageY = SlippageY; + this.SlippageZ = SlippageZ; + this.type = 2609359061; } } - IFC42.IfcSoundPressureMeasure = IfcSoundPressureMeasure; - class IfcSpecificHeatCapacityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcSlippageConnectionCondition = IfcSlippageConnectionCondition; + class IfcSolidModel extends IfcGeometricRepresentationItem { + constructor() { + super(); + this.type = 723233188; } } - IFC42.IfcSpecificHeatCapacityMeasure = IfcSpecificHeatCapacityMeasure; - class IfcSpecularExponent { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcSolidModel = IfcSolidModel; + class IfcStructuralLoadLinearForce extends IfcStructuralLoadStatic { + constructor(Name, LinearForceX, LinearForceY, LinearForceZ, LinearMomentX, LinearMomentY, LinearMomentZ) { + super(Name); + this.Name = Name; + this.LinearForceX = LinearForceX; + this.LinearForceY = LinearForceY; + this.LinearForceZ = LinearForceZ; + this.LinearMomentX = LinearMomentX; + this.LinearMomentY = LinearMomentY; + this.LinearMomentZ = LinearMomentZ; + this.type = 1595516126; } } - IFC42.IfcSpecularExponent = IfcSpecularExponent; - class IfcSpecularRoughness { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcStructuralLoadLinearForce = IfcStructuralLoadLinearForce; + class IfcStructuralLoadPlanarForce extends IfcStructuralLoadStatic { + constructor(Name, PlanarForceX, PlanarForceY, PlanarForceZ) { + super(Name); + this.Name = Name; + this.PlanarForceX = PlanarForceX; + this.PlanarForceY = PlanarForceY; + this.PlanarForceZ = PlanarForceZ; + this.type = 2668620305; } } - IFC42.IfcSpecularRoughness = IfcSpecularRoughness; - class IfcTemperatureGradientMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcStructuralLoadPlanarForce = IfcStructuralLoadPlanarForce; + class IfcStructuralLoadSingleDisplacement extends IfcStructuralLoadStatic { + constructor(Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ) { + super(Name); + this.Name = Name; + this.DisplacementX = DisplacementX; + this.DisplacementY = DisplacementY; + this.DisplacementZ = DisplacementZ; + this.RotationalDisplacementRX = RotationalDisplacementRX; + this.RotationalDisplacementRY = RotationalDisplacementRY; + this.RotationalDisplacementRZ = RotationalDisplacementRZ; + this.type = 2473145415; } } - IFC42.IfcTemperatureGradientMeasure = IfcTemperatureGradientMeasure; - class IfcTemperatureRateOfChangeMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcStructuralLoadSingleDisplacement = IfcStructuralLoadSingleDisplacement; + class IfcStructuralLoadSingleDisplacementDistortion extends IfcStructuralLoadSingleDisplacement { + constructor(Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ, Distortion) { + super(Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ); + this.Name = Name; + this.DisplacementX = DisplacementX; + this.DisplacementY = DisplacementY; + this.DisplacementZ = DisplacementZ; + this.RotationalDisplacementRX = RotationalDisplacementRX; + this.RotationalDisplacementRY = RotationalDisplacementRY; + this.RotationalDisplacementRZ = RotationalDisplacementRZ; + this.Distortion = Distortion; + this.type = 1973038258; } } - IFC42.IfcTemperatureRateOfChangeMeasure = IfcTemperatureRateOfChangeMeasure; - class IfcText { - constructor(value) { - this.value = value; - this.type = 1; + IFC42.IfcStructuralLoadSingleDisplacementDistortion = IfcStructuralLoadSingleDisplacementDistortion; + class IfcStructuralLoadSingleForce extends IfcStructuralLoadStatic { + constructor(Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ) { + super(Name); + this.Name = Name; + this.ForceX = ForceX; + this.ForceY = ForceY; + this.ForceZ = ForceZ; + this.MomentX = MomentX; + this.MomentY = MomentY; + this.MomentZ = MomentZ; + this.type = 1597423693; } } - IFC42.IfcText = IfcText; - class IfcTextAlignment { - constructor(value) { - this.value = value; - this.type = 1; + IFC42.IfcStructuralLoadSingleForce = IfcStructuralLoadSingleForce; + class IfcStructuralLoadSingleForceWarping extends IfcStructuralLoadSingleForce { + constructor(Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ, WarpingMoment) { + super(Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ); + this.Name = Name; + this.ForceX = ForceX; + this.ForceY = ForceY; + this.ForceZ = ForceZ; + this.MomentX = MomentX; + this.MomentY = MomentY; + this.MomentZ = MomentZ; + this.WarpingMoment = WarpingMoment; + this.type = 1190533807; } } - IFC42.IfcTextAlignment = IfcTextAlignment; - class IfcTextDecoration { - constructor(value) { - this.value = value; - this.type = 1; + IFC42.IfcStructuralLoadSingleForceWarping = IfcStructuralLoadSingleForceWarping; + class IfcSubedge extends IfcEdge { + constructor(EdgeStart, EdgeEnd, ParentEdge) { + super(EdgeStart, EdgeEnd); + this.EdgeStart = EdgeStart; + this.EdgeEnd = EdgeEnd; + this.ParentEdge = ParentEdge; + this.type = 2233826070; } } - IFC42.IfcTextDecoration = IfcTextDecoration; - class IfcTextFontName { - constructor(value) { - this.value = value; - this.type = 1; + IFC42.IfcSubedge = IfcSubedge; + class IfcSurface extends IfcGeometricRepresentationItem { + constructor() { + super(); + this.type = 2513912981; } } - IFC42.IfcTextFontName = IfcTextFontName; - class IfcTextTransformation { - constructor(value) { - this.value = value; - this.type = 1; + IFC42.IfcSurface = IfcSurface; + class IfcSurfaceStyleRendering extends IfcSurfaceStyleShading { + constructor(SurfaceColour, Transparency, DiffuseColour, TransmissionColour, DiffuseTransmissionColour, ReflectionColour, SpecularColour, SpecularHighlight, ReflectanceMethod) { + super(SurfaceColour, Transparency); + this.SurfaceColour = SurfaceColour; + this.Transparency = Transparency; + this.DiffuseColour = DiffuseColour; + this.TransmissionColour = TransmissionColour; + this.DiffuseTransmissionColour = DiffuseTransmissionColour; + this.ReflectionColour = ReflectionColour; + this.SpecularColour = SpecularColour; + this.SpecularHighlight = SpecularHighlight; + this.ReflectanceMethod = ReflectanceMethod; + this.type = 1878645084; } } - IFC42.IfcTextTransformation = IfcTextTransformation; - class IfcThermalAdmittanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcSurfaceStyleRendering = IfcSurfaceStyleRendering; + class IfcSweptAreaSolid extends IfcSolidModel { + constructor(SweptArea, Position) { + super(); + this.SweptArea = SweptArea; + this.Position = Position; + this.type = 2247615214; } } - IFC42.IfcThermalAdmittanceMeasure = IfcThermalAdmittanceMeasure; - class IfcThermalConductivityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcSweptAreaSolid = IfcSweptAreaSolid; + class IfcSweptDiskSolid extends IfcSolidModel { + constructor(Directrix, Radius, InnerRadius, StartParam, EndParam) { + super(); + this.Directrix = Directrix; + this.Radius = Radius; + this.InnerRadius = InnerRadius; + this.StartParam = StartParam; + this.EndParam = EndParam; + this.type = 1260650574; } } - IFC42.IfcThermalConductivityMeasure = IfcThermalConductivityMeasure; - class IfcThermalExpansionCoefficientMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcSweptDiskSolid = IfcSweptDiskSolid; + class IfcSweptDiskSolidPolygonal extends IfcSweptDiskSolid { + constructor(Directrix, Radius, InnerRadius, StartParam, EndParam, FilletRadius) { + super(Directrix, Radius, InnerRadius, StartParam, EndParam); + this.Directrix = Directrix; + this.Radius = Radius; + this.InnerRadius = InnerRadius; + this.StartParam = StartParam; + this.EndParam = EndParam; + this.FilletRadius = FilletRadius; + this.type = 1096409881; } } - IFC42.IfcThermalExpansionCoefficientMeasure = IfcThermalExpansionCoefficientMeasure; - class IfcThermalResistanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcSweptDiskSolidPolygonal = IfcSweptDiskSolidPolygonal; + class IfcSweptSurface extends IfcSurface { + constructor(SweptCurve, Position) { + super(); + this.SweptCurve = SweptCurve; + this.Position = Position; + this.type = 230924584; } } - IFC42.IfcThermalResistanceMeasure = IfcThermalResistanceMeasure; - class IfcThermalTransmittanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcSweptSurface = IfcSweptSurface; + class IfcTShapeProfileDef extends IfcParameterizedProfileDef { + constructor(ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, FlangeEdgeRadius, WebEdgeRadius, WebSlope, FlangeSlope) { + super(ProfileType, ProfileName, Position); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.Depth = Depth; + this.FlangeWidth = FlangeWidth; + this.WebThickness = WebThickness; + this.FlangeThickness = FlangeThickness; + this.FilletRadius = FilletRadius; + this.FlangeEdgeRadius = FlangeEdgeRadius; + this.WebEdgeRadius = WebEdgeRadius; + this.WebSlope = WebSlope; + this.FlangeSlope = FlangeSlope; + this.type = 3071757647; } } - IFC42.IfcThermalTransmittanceMeasure = IfcThermalTransmittanceMeasure; - class IfcThermodynamicTemperatureMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcTShapeProfileDef = IfcTShapeProfileDef; + class IfcTessellatedItem extends IfcGeometricRepresentationItem { + constructor() { + super(); + this.type = 901063453; } } - IFC42.IfcThermodynamicTemperatureMeasure = IfcThermodynamicTemperatureMeasure; - class IfcTime { - constructor(value) { - this.value = value; - this.type = 1; + IFC42.IfcTessellatedItem = IfcTessellatedItem; + class IfcTextLiteral extends IfcGeometricRepresentationItem { + constructor(Literal, Placement, Path) { + super(); + this.Literal = Literal; + this.Placement = Placement; + this.Path = Path; + this.type = 4282788508; } } - IFC42.IfcTime = IfcTime; - class IfcTimeMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcTextLiteral = IfcTextLiteral; + class IfcTextLiteralWithExtent extends IfcTextLiteral { + constructor(Literal, Placement, Path, Extent, BoxAlignment) { + super(Literal, Placement, Path); + this.Literal = Literal; + this.Placement = Placement; + this.Path = Path; + this.Extent = Extent; + this.BoxAlignment = BoxAlignment; + this.type = 3124975700; } } - IFC42.IfcTimeMeasure = IfcTimeMeasure; - class IfcTimeStamp { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcTextLiteralWithExtent = IfcTextLiteralWithExtent; + class IfcTextStyleFontModel extends IfcPreDefinedTextFont { + constructor(Name, FontFamily, FontStyle, FontVariant, FontWeight, FontSize) { + super(Name); + this.Name = Name; + this.FontFamily = FontFamily; + this.FontStyle = FontStyle; + this.FontVariant = FontVariant; + this.FontWeight = FontWeight; + this.FontSize = FontSize; + this.type = 1983826977; } } - IFC42.IfcTimeStamp = IfcTimeStamp; - class IfcTorqueMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcTextStyleFontModel = IfcTextStyleFontModel; + class IfcTrapeziumProfileDef extends IfcParameterizedProfileDef { + constructor(ProfileType, ProfileName, Position, BottomXDim, TopXDim, YDim, TopXOffset) { + super(ProfileType, ProfileName, Position); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.BottomXDim = BottomXDim; + this.TopXDim = TopXDim; + this.YDim = YDim; + this.TopXOffset = TopXOffset; + this.type = 2715220739; } } - IFC42.IfcTorqueMeasure = IfcTorqueMeasure; - class IfcURIReference { - constructor(value) { - this.value = value; - this.type = 1; + IFC42.IfcTrapeziumProfileDef = IfcTrapeziumProfileDef; + class IfcTypeObject extends IfcObjectDefinition { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.type = 1628702193; } } - IFC42.IfcURIReference = IfcURIReference; - class IfcVaporPermeabilityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcTypeObject = IfcTypeObject; + class IfcTypeProcess extends IfcTypeObject { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.ProcessType = ProcessType; + this.type = 3736923433; } } - IFC42.IfcVaporPermeabilityMeasure = IfcVaporPermeabilityMeasure; - class IfcVolumeMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcTypeProcess = IfcTypeProcess; + class IfcTypeProduct extends IfcTypeObject { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.type = 2347495698; } } - IFC42.IfcVolumeMeasure = IfcVolumeMeasure; - class IfcVolumetricFlowRateMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcTypeProduct = IfcTypeProduct; + class IfcTypeResource extends IfcTypeObject { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.ResourceType = ResourceType; + this.type = 3698973494; } } - IFC42.IfcVolumetricFlowRateMeasure = IfcVolumetricFlowRateMeasure; - class IfcWarpingConstantMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcTypeResource = IfcTypeResource; + class IfcUShapeProfileDef extends IfcParameterizedProfileDef { + constructor(ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, EdgeRadius, FlangeSlope) { + super(ProfileType, ProfileName, Position); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.Depth = Depth; + this.FlangeWidth = FlangeWidth; + this.WebThickness = WebThickness; + this.FlangeThickness = FlangeThickness; + this.FilletRadius = FilletRadius; + this.EdgeRadius = EdgeRadius; + this.FlangeSlope = FlangeSlope; + this.type = 427810014; } } - IFC42.IfcWarpingConstantMeasure = IfcWarpingConstantMeasure; - class IfcWarpingMomentMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC42.IfcUShapeProfileDef = IfcUShapeProfileDef; + class IfcVector extends IfcGeometricRepresentationItem { + constructor(Orientation, Magnitude) { + super(); + this.Orientation = Orientation; + this.Magnitude = Magnitude; + this.type = 1417489154; } } - IFC42.IfcWarpingMomentMeasure = IfcWarpingMomentMeasure; - class IfcActionRequestTypeEnum { + IFC42.IfcVector = IfcVector; + class IfcVertexLoop extends IfcLoop { + constructor(LoopVertex) { + super(); + this.LoopVertex = LoopVertex; + this.type = 2759199220; + } } - IfcActionRequestTypeEnum.EMAIL = { type: 3, value: "EMAIL" }; - IfcActionRequestTypeEnum.FAX = { type: 3, value: "FAX" }; - IfcActionRequestTypeEnum.PHONE = { type: 3, value: "PHONE" }; - IfcActionRequestTypeEnum.POST = { type: 3, value: "POST" }; - IfcActionRequestTypeEnum.VERBAL = { type: 3, value: "VERBAL" }; - IfcActionRequestTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcActionRequestTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcActionRequestTypeEnum = IfcActionRequestTypeEnum; - class IfcActionSourceTypeEnum { + IFC42.IfcVertexLoop = IfcVertexLoop; + class IfcWindowStyle extends IfcTypeProduct { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ConstructionType, OperationType, ParameterTakesPrecedence, Sizeable) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ConstructionType = ConstructionType; + this.OperationType = OperationType; + this.ParameterTakesPrecedence = ParameterTakesPrecedence; + this.Sizeable = Sizeable; + this.type = 1299126871; + } } - IfcActionSourceTypeEnum.DEAD_LOAD_G = { type: 3, value: "DEAD_LOAD_G" }; - IfcActionSourceTypeEnum.COMPLETION_G1 = { type: 3, value: "COMPLETION_G1" }; - IfcActionSourceTypeEnum.LIVE_LOAD_Q = { type: 3, value: "LIVE_LOAD_Q" }; - IfcActionSourceTypeEnum.SNOW_S = { type: 3, value: "SNOW_S" }; - IfcActionSourceTypeEnum.WIND_W = { type: 3, value: "WIND_W" }; - IfcActionSourceTypeEnum.PRESTRESSING_P = { type: 3, value: "PRESTRESSING_P" }; - IfcActionSourceTypeEnum.SETTLEMENT_U = { type: 3, value: "SETTLEMENT_U" }; - IfcActionSourceTypeEnum.TEMPERATURE_T = { type: 3, value: "TEMPERATURE_T" }; - IfcActionSourceTypeEnum.EARTHQUAKE_E = { type: 3, value: "EARTHQUAKE_E" }; - IfcActionSourceTypeEnum.FIRE = { type: 3, value: "FIRE" }; - IfcActionSourceTypeEnum.IMPULSE = { type: 3, value: "IMPULSE" }; - IfcActionSourceTypeEnum.IMPACT = { type: 3, value: "IMPACT" }; - IfcActionSourceTypeEnum.TRANSPORT = { type: 3, value: "TRANSPORT" }; - IfcActionSourceTypeEnum.ERECTION = { type: 3, value: "ERECTION" }; - IfcActionSourceTypeEnum.PROPPING = { type: 3, value: "PROPPING" }; - IfcActionSourceTypeEnum.SYSTEM_IMPERFECTION = { type: 3, value: "SYSTEM_IMPERFECTION" }; - IfcActionSourceTypeEnum.SHRINKAGE = { type: 3, value: "SHRINKAGE" }; - IfcActionSourceTypeEnum.CREEP = { type: 3, value: "CREEP" }; - IfcActionSourceTypeEnum.LACK_OF_FIT = { type: 3, value: "LACK_OF_FIT" }; - IfcActionSourceTypeEnum.BUOYANCY = { type: 3, value: "BUOYANCY" }; - IfcActionSourceTypeEnum.ICE = { type: 3, value: "ICE" }; - IfcActionSourceTypeEnum.CURRENT = { type: 3, value: "CURRENT" }; - IfcActionSourceTypeEnum.WAVE = { type: 3, value: "WAVE" }; - IfcActionSourceTypeEnum.RAIN = { type: 3, value: "RAIN" }; - IfcActionSourceTypeEnum.BRAKES = { type: 3, value: "BRAKES" }; - IfcActionSourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcActionSourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcActionSourceTypeEnum = IfcActionSourceTypeEnum; - class IfcActionTypeEnum { + IFC42.IfcWindowStyle = IfcWindowStyle; + class IfcZShapeProfileDef extends IfcParameterizedProfileDef { + constructor(ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, EdgeRadius) { + super(ProfileType, ProfileName, Position); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.Depth = Depth; + this.FlangeWidth = FlangeWidth; + this.WebThickness = WebThickness; + this.FlangeThickness = FlangeThickness; + this.FilletRadius = FilletRadius; + this.EdgeRadius = EdgeRadius; + this.type = 2543172580; + } } - IfcActionTypeEnum.PERMANENT_G = { type: 3, value: "PERMANENT_G" }; - IfcActionTypeEnum.VARIABLE_Q = { type: 3, value: "VARIABLE_Q" }; - IfcActionTypeEnum.EXTRAORDINARY_A = { type: 3, value: "EXTRAORDINARY_A" }; - IfcActionTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcActionTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcActionTypeEnum = IfcActionTypeEnum; - class IfcActuatorTypeEnum { + IFC42.IfcZShapeProfileDef = IfcZShapeProfileDef; + class IfcAdvancedFace extends IfcFaceSurface { + constructor(Bounds, FaceSurface, SameSense) { + super(Bounds, FaceSurface, SameSense); + this.Bounds = Bounds; + this.FaceSurface = FaceSurface; + this.SameSense = SameSense; + this.type = 3406155212; + } } - IfcActuatorTypeEnum.ELECTRICACTUATOR = { type: 3, value: "ELECTRICACTUATOR" }; - IfcActuatorTypeEnum.HANDOPERATEDACTUATOR = { type: 3, value: "HANDOPERATEDACTUATOR" }; - IfcActuatorTypeEnum.HYDRAULICACTUATOR = { type: 3, value: "HYDRAULICACTUATOR" }; - IfcActuatorTypeEnum.PNEUMATICACTUATOR = { type: 3, value: "PNEUMATICACTUATOR" }; - IfcActuatorTypeEnum.THERMOSTATICACTUATOR = { type: 3, value: "THERMOSTATICACTUATOR" }; - IfcActuatorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcActuatorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcActuatorTypeEnum = IfcActuatorTypeEnum; - class IfcAddressTypeEnum { + IFC42.IfcAdvancedFace = IfcAdvancedFace; + class IfcAnnotationFillArea extends IfcGeometricRepresentationItem { + constructor(OuterBoundary, InnerBoundaries) { + super(); + this.OuterBoundary = OuterBoundary; + this.InnerBoundaries = InnerBoundaries; + this.type = 669184980; + } } - IfcAddressTypeEnum.OFFICE = { type: 3, value: "OFFICE" }; - IfcAddressTypeEnum.SITE = { type: 3, value: "SITE" }; - IfcAddressTypeEnum.HOME = { type: 3, value: "HOME" }; - IfcAddressTypeEnum.DISTRIBUTIONPOINT = { type: 3, value: "DISTRIBUTIONPOINT" }; - IfcAddressTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IFC42.IfcAddressTypeEnum = IfcAddressTypeEnum; - class IfcAirTerminalBoxTypeEnum { + IFC42.IfcAnnotationFillArea = IfcAnnotationFillArea; + class IfcAsymmetricIShapeProfileDef extends IfcParameterizedProfileDef { + constructor(ProfileType, ProfileName, Position, BottomFlangeWidth, OverallDepth, WebThickness, BottomFlangeThickness, BottomFlangeFilletRadius, TopFlangeWidth, TopFlangeThickness, TopFlangeFilletRadius, BottomFlangeEdgeRadius, BottomFlangeSlope, TopFlangeEdgeRadius, TopFlangeSlope) { + super(ProfileType, ProfileName, Position); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.BottomFlangeWidth = BottomFlangeWidth; + this.OverallDepth = OverallDepth; + this.WebThickness = WebThickness; + this.BottomFlangeThickness = BottomFlangeThickness; + this.BottomFlangeFilletRadius = BottomFlangeFilletRadius; + this.TopFlangeWidth = TopFlangeWidth; + this.TopFlangeThickness = TopFlangeThickness; + this.TopFlangeFilletRadius = TopFlangeFilletRadius; + this.BottomFlangeEdgeRadius = BottomFlangeEdgeRadius; + this.BottomFlangeSlope = BottomFlangeSlope; + this.TopFlangeEdgeRadius = TopFlangeEdgeRadius; + this.TopFlangeSlope = TopFlangeSlope; + this.type = 3207858831; + } } - IfcAirTerminalBoxTypeEnum.CONSTANTFLOW = { type: 3, value: "CONSTANTFLOW" }; - IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREDEPENDANT = { type: 3, value: "VARIABLEFLOWPRESSUREDEPENDANT" }; - IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREINDEPENDANT = { type: 3, value: "VARIABLEFLOWPRESSUREINDEPENDANT" }; - IfcAirTerminalBoxTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcAirTerminalBoxTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcAirTerminalBoxTypeEnum = IfcAirTerminalBoxTypeEnum; - class IfcAirTerminalTypeEnum { + IFC42.IfcAsymmetricIShapeProfileDef = IfcAsymmetricIShapeProfileDef; + class IfcAxis1Placement extends IfcPlacement { + constructor(Location, Axis) { + super(Location); + this.Location = Location; + this.Axis = Axis; + this.type = 4261334040; + } } - IfcAirTerminalTypeEnum.DIFFUSER = { type: 3, value: "DIFFUSER" }; - IfcAirTerminalTypeEnum.GRILLE = { type: 3, value: "GRILLE" }; - IfcAirTerminalTypeEnum.LOUVRE = { type: 3, value: "LOUVRE" }; - IfcAirTerminalTypeEnum.REGISTER = { type: 3, value: "REGISTER" }; - IfcAirTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcAirTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcAirTerminalTypeEnum = IfcAirTerminalTypeEnum; - class IfcAirToAirHeatRecoveryTypeEnum { + IFC42.IfcAxis1Placement = IfcAxis1Placement; + class IfcAxis2Placement2D extends IfcPlacement { + constructor(Location, RefDirection) { + super(Location); + this.Location = Location; + this.RefDirection = RefDirection; + this.type = 3125803723; + } } - IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECOUNTERFLOWEXCHANGER = { type: 3, value: "FIXEDPLATECOUNTERFLOWEXCHANGER" }; - IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECROSSFLOWEXCHANGER = { type: 3, value: "FIXEDPLATECROSSFLOWEXCHANGER" }; - IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATEPARALLELFLOWEXCHANGER = { type: 3, value: "FIXEDPLATEPARALLELFLOWEXCHANGER" }; - IfcAirToAirHeatRecoveryTypeEnum.ROTARYWHEEL = { type: 3, value: "ROTARYWHEEL" }; - IfcAirToAirHeatRecoveryTypeEnum.RUNAROUNDCOILLOOP = { type: 3, value: "RUNAROUNDCOILLOOP" }; - IfcAirToAirHeatRecoveryTypeEnum.HEATPIPE = { type: 3, value: "HEATPIPE" }; - IfcAirToAirHeatRecoveryTypeEnum.TWINTOWERENTHALPYRECOVERYLOOPS = { type: 3, value: "TWINTOWERENTHALPYRECOVERYLOOPS" }; - IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONSEALEDTUBEHEATEXCHANGERS = { type: 3, value: "THERMOSIPHONSEALEDTUBEHEATEXCHANGERS" }; - IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONCOILTYPEHEATEXCHANGERS = { type: 3, value: "THERMOSIPHONCOILTYPEHEATEXCHANGERS" }; - IfcAirToAirHeatRecoveryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcAirToAirHeatRecoveryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcAirToAirHeatRecoveryTypeEnum = IfcAirToAirHeatRecoveryTypeEnum; - class IfcAlarmTypeEnum { + IFC42.IfcAxis2Placement2D = IfcAxis2Placement2D; + class IfcAxis2Placement3D extends IfcPlacement { + constructor(Location, Axis, RefDirection) { + super(Location); + this.Location = Location; + this.Axis = Axis; + this.RefDirection = RefDirection; + this.type = 2740243338; + } } - IfcAlarmTypeEnum.BELL = { type: 3, value: "BELL" }; - IfcAlarmTypeEnum.BREAKGLASSBUTTON = { type: 3, value: "BREAKGLASSBUTTON" }; - IfcAlarmTypeEnum.LIGHT = { type: 3, value: "LIGHT" }; - IfcAlarmTypeEnum.MANUALPULLBOX = { type: 3, value: "MANUALPULLBOX" }; - IfcAlarmTypeEnum.SIREN = { type: 3, value: "SIREN" }; - IfcAlarmTypeEnum.WHISTLE = { type: 3, value: "WHISTLE" }; - IfcAlarmTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcAlarmTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcAlarmTypeEnum = IfcAlarmTypeEnum; - class IfcAnalysisModelTypeEnum { + IFC42.IfcAxis2Placement3D = IfcAxis2Placement3D; + class IfcBooleanResult extends IfcGeometricRepresentationItem { + constructor(Operator, FirstOperand, SecondOperand) { + super(); + this.Operator = Operator; + this.FirstOperand = FirstOperand; + this.SecondOperand = SecondOperand; + this.type = 2736907675; + } } - IfcAnalysisModelTypeEnum.IN_PLANE_LOADING_2D = { type: 3, value: "IN_PLANE_LOADING_2D" }; - IfcAnalysisModelTypeEnum.OUT_PLANE_LOADING_2D = { type: 3, value: "OUT_PLANE_LOADING_2D" }; - IfcAnalysisModelTypeEnum.LOADING_3D = { type: 3, value: "LOADING_3D" }; - IfcAnalysisModelTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcAnalysisModelTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcAnalysisModelTypeEnum = IfcAnalysisModelTypeEnum; - class IfcAnalysisTheoryTypeEnum { + IFC42.IfcBooleanResult = IfcBooleanResult; + class IfcBoundedSurface extends IfcSurface { + constructor() { + super(); + this.type = 4182860854; + } } - IfcAnalysisTheoryTypeEnum.FIRST_ORDER_THEORY = { type: 3, value: "FIRST_ORDER_THEORY" }; - IfcAnalysisTheoryTypeEnum.SECOND_ORDER_THEORY = { type: 3, value: "SECOND_ORDER_THEORY" }; - IfcAnalysisTheoryTypeEnum.THIRD_ORDER_THEORY = { type: 3, value: "THIRD_ORDER_THEORY" }; - IfcAnalysisTheoryTypeEnum.FULL_NONLINEAR_THEORY = { type: 3, value: "FULL_NONLINEAR_THEORY" }; - IfcAnalysisTheoryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcAnalysisTheoryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcAnalysisTheoryTypeEnum = IfcAnalysisTheoryTypeEnum; - class IfcArithmeticOperatorEnum { + IFC42.IfcBoundedSurface = IfcBoundedSurface; + class IfcBoundingBox extends IfcGeometricRepresentationItem { + constructor(Corner, XDim, YDim, ZDim) { + super(); + this.Corner = Corner; + this.XDim = XDim; + this.YDim = YDim; + this.ZDim = ZDim; + this.type = 2581212453; + } } - IfcArithmeticOperatorEnum.ADD = { type: 3, value: "ADD" }; - IfcArithmeticOperatorEnum.DIVIDE = { type: 3, value: "DIVIDE" }; - IfcArithmeticOperatorEnum.MULTIPLY = { type: 3, value: "MULTIPLY" }; - IfcArithmeticOperatorEnum.SUBTRACT = { type: 3, value: "SUBTRACT" }; - IFC42.IfcArithmeticOperatorEnum = IfcArithmeticOperatorEnum; - class IfcAssemblyPlaceEnum { + IFC42.IfcBoundingBox = IfcBoundingBox; + class IfcBoxedHalfSpace extends IfcHalfSpaceSolid { + constructor(BaseSurface, AgreementFlag, Enclosure) { + super(BaseSurface, AgreementFlag); + this.BaseSurface = BaseSurface; + this.AgreementFlag = AgreementFlag; + this.Enclosure = Enclosure; + this.type = 2713105998; + } } - IfcAssemblyPlaceEnum.SITE = { type: 3, value: "SITE" }; - IfcAssemblyPlaceEnum.FACTORY = { type: 3, value: "FACTORY" }; - IfcAssemblyPlaceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcAssemblyPlaceEnum = IfcAssemblyPlaceEnum; - class IfcAudioVisualApplianceTypeEnum { + IFC42.IfcBoxedHalfSpace = IfcBoxedHalfSpace; + class IfcCShapeProfileDef extends IfcParameterizedProfileDef { + constructor(ProfileType, ProfileName, Position, Depth, Width, WallThickness, Girth, InternalFilletRadius) { + super(ProfileType, ProfileName, Position); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.Depth = Depth; + this.Width = Width; + this.WallThickness = WallThickness; + this.Girth = Girth; + this.InternalFilletRadius = InternalFilletRadius; + this.type = 2898889636; + } } - IfcAudioVisualApplianceTypeEnum.AMPLIFIER = { type: 3, value: "AMPLIFIER" }; - IfcAudioVisualApplianceTypeEnum.CAMERA = { type: 3, value: "CAMERA" }; - IfcAudioVisualApplianceTypeEnum.DISPLAY = { type: 3, value: "DISPLAY" }; - IfcAudioVisualApplianceTypeEnum.MICROPHONE = { type: 3, value: "MICROPHONE" }; - IfcAudioVisualApplianceTypeEnum.PLAYER = { type: 3, value: "PLAYER" }; - IfcAudioVisualApplianceTypeEnum.PROJECTOR = { type: 3, value: "PROJECTOR" }; - IfcAudioVisualApplianceTypeEnum.RECEIVER = { type: 3, value: "RECEIVER" }; - IfcAudioVisualApplianceTypeEnum.SPEAKER = { type: 3, value: "SPEAKER" }; - IfcAudioVisualApplianceTypeEnum.SWITCHER = { type: 3, value: "SWITCHER" }; - IfcAudioVisualApplianceTypeEnum.TELEPHONE = { type: 3, value: "TELEPHONE" }; - IfcAudioVisualApplianceTypeEnum.TUNER = { type: 3, value: "TUNER" }; - IfcAudioVisualApplianceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcAudioVisualApplianceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcAudioVisualApplianceTypeEnum = IfcAudioVisualApplianceTypeEnum; - class IfcBSplineCurveForm { + IFC42.IfcCShapeProfileDef = IfcCShapeProfileDef; + class IfcCartesianPoint extends IfcPoint { + constructor(Coordinates) { + super(); + this.Coordinates = Coordinates; + this.type = 1123145078; + } } - IfcBSplineCurveForm.POLYLINE_FORM = { type: 3, value: "POLYLINE_FORM" }; - IfcBSplineCurveForm.CIRCULAR_ARC = { type: 3, value: "CIRCULAR_ARC" }; - IfcBSplineCurveForm.ELLIPTIC_ARC = { type: 3, value: "ELLIPTIC_ARC" }; - IfcBSplineCurveForm.PARABOLIC_ARC = { type: 3, value: "PARABOLIC_ARC" }; - IfcBSplineCurveForm.HYPERBOLIC_ARC = { type: 3, value: "HYPERBOLIC_ARC" }; - IfcBSplineCurveForm.UNSPECIFIED = { type: 3, value: "UNSPECIFIED" }; - IFC42.IfcBSplineCurveForm = IfcBSplineCurveForm; - class IfcBSplineSurfaceForm { + IFC42.IfcCartesianPoint = IfcCartesianPoint; + class IfcCartesianPointList extends IfcGeometricRepresentationItem { + constructor() { + super(); + this.type = 574549367; + } } - IfcBSplineSurfaceForm.PLANE_SURF = { type: 3, value: "PLANE_SURF" }; - IfcBSplineSurfaceForm.CYLINDRICAL_SURF = { type: 3, value: "CYLINDRICAL_SURF" }; - IfcBSplineSurfaceForm.CONICAL_SURF = { type: 3, value: "CONICAL_SURF" }; - IfcBSplineSurfaceForm.SPHERICAL_SURF = { type: 3, value: "SPHERICAL_SURF" }; - IfcBSplineSurfaceForm.TOROIDAL_SURF = { type: 3, value: "TOROIDAL_SURF" }; - IfcBSplineSurfaceForm.SURF_OF_REVOLUTION = { type: 3, value: "SURF_OF_REVOLUTION" }; - IfcBSplineSurfaceForm.RULED_SURF = { type: 3, value: "RULED_SURF" }; - IfcBSplineSurfaceForm.GENERALISED_CONE = { type: 3, value: "GENERALISED_CONE" }; - IfcBSplineSurfaceForm.QUADRIC_SURF = { type: 3, value: "QUADRIC_SURF" }; - IfcBSplineSurfaceForm.SURF_OF_LINEAR_EXTRUSION = { type: 3, value: "SURF_OF_LINEAR_EXTRUSION" }; - IfcBSplineSurfaceForm.UNSPECIFIED = { type: 3, value: "UNSPECIFIED" }; - IFC42.IfcBSplineSurfaceForm = IfcBSplineSurfaceForm; - class IfcBeamTypeEnum { + IFC42.IfcCartesianPointList = IfcCartesianPointList; + class IfcCartesianPointList2D extends IfcCartesianPointList { + constructor(CoordList) { + super(); + this.CoordList = CoordList; + this.type = 1675464909; + } } - IfcBeamTypeEnum.BEAM = { type: 3, value: "BEAM" }; - IfcBeamTypeEnum.JOIST = { type: 3, value: "JOIST" }; - IfcBeamTypeEnum.HOLLOWCORE = { type: 3, value: "HOLLOWCORE" }; - IfcBeamTypeEnum.LINTEL = { type: 3, value: "LINTEL" }; - IfcBeamTypeEnum.SPANDREL = { type: 3, value: "SPANDREL" }; - IfcBeamTypeEnum.T_BEAM = { type: 3, value: "T_BEAM" }; - IfcBeamTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcBeamTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcBeamTypeEnum = IfcBeamTypeEnum; - class IfcBenchmarkEnum { + IFC42.IfcCartesianPointList2D = IfcCartesianPointList2D; + class IfcCartesianPointList3D extends IfcCartesianPointList { + constructor(CoordList) { + super(); + this.CoordList = CoordList; + this.type = 2059837836; + } } - IfcBenchmarkEnum.GREATERTHAN = { type: 3, value: "GREATERTHAN" }; - IfcBenchmarkEnum.GREATERTHANOREQUALTO = { type: 3, value: "GREATERTHANOREQUALTO" }; - IfcBenchmarkEnum.LESSTHAN = { type: 3, value: "LESSTHAN" }; - IfcBenchmarkEnum.LESSTHANOREQUALTO = { type: 3, value: "LESSTHANOREQUALTO" }; - IfcBenchmarkEnum.EQUALTO = { type: 3, value: "EQUALTO" }; - IfcBenchmarkEnum.NOTEQUALTO = { type: 3, value: "NOTEQUALTO" }; - IfcBenchmarkEnum.INCLUDES = { type: 3, value: "INCLUDES" }; - IfcBenchmarkEnum.NOTINCLUDES = { type: 3, value: "NOTINCLUDES" }; - IfcBenchmarkEnum.INCLUDEDIN = { type: 3, value: "INCLUDEDIN" }; - IfcBenchmarkEnum.NOTINCLUDEDIN = { type: 3, value: "NOTINCLUDEDIN" }; - IFC42.IfcBenchmarkEnum = IfcBenchmarkEnum; - class IfcBoilerTypeEnum { + IFC42.IfcCartesianPointList3D = IfcCartesianPointList3D; + class IfcCartesianTransformationOperator extends IfcGeometricRepresentationItem { + constructor(Axis1, Axis2, LocalOrigin, Scale) { + super(); + this.Axis1 = Axis1; + this.Axis2 = Axis2; + this.LocalOrigin = LocalOrigin; + this.Scale = Scale; + this.type = 59481748; + } } - IfcBoilerTypeEnum.WATER = { type: 3, value: "WATER" }; - IfcBoilerTypeEnum.STEAM = { type: 3, value: "STEAM" }; - IfcBoilerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcBoilerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcBoilerTypeEnum = IfcBoilerTypeEnum; - class IfcBooleanOperator { + IFC42.IfcCartesianTransformationOperator = IfcCartesianTransformationOperator; + class IfcCartesianTransformationOperator2D extends IfcCartesianTransformationOperator { + constructor(Axis1, Axis2, LocalOrigin, Scale) { + super(Axis1, Axis2, LocalOrigin, Scale); + this.Axis1 = Axis1; + this.Axis2 = Axis2; + this.LocalOrigin = LocalOrigin; + this.Scale = Scale; + this.type = 3749851601; + } } - IfcBooleanOperator.UNION = { type: 3, value: "UNION" }; - IfcBooleanOperator.INTERSECTION = { type: 3, value: "INTERSECTION" }; - IfcBooleanOperator.DIFFERENCE = { type: 3, value: "DIFFERENCE" }; - IFC42.IfcBooleanOperator = IfcBooleanOperator; - class IfcBuildingElementPartTypeEnum { + IFC42.IfcCartesianTransformationOperator2D = IfcCartesianTransformationOperator2D; + class IfcCartesianTransformationOperator2DnonUniform extends IfcCartesianTransformationOperator2D { + constructor(Axis1, Axis2, LocalOrigin, Scale, Scale2) { + super(Axis1, Axis2, LocalOrigin, Scale); + this.Axis1 = Axis1; + this.Axis2 = Axis2; + this.LocalOrigin = LocalOrigin; + this.Scale = Scale; + this.Scale2 = Scale2; + this.type = 3486308946; + } } - IfcBuildingElementPartTypeEnum.INSULATION = { type: 3, value: "INSULATION" }; - IfcBuildingElementPartTypeEnum.PRECASTPANEL = { type: 3, value: "PRECASTPANEL" }; - IfcBuildingElementPartTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcBuildingElementPartTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcBuildingElementPartTypeEnum = IfcBuildingElementPartTypeEnum; - class IfcBuildingElementProxyTypeEnum { + IFC42.IfcCartesianTransformationOperator2DnonUniform = IfcCartesianTransformationOperator2DnonUniform; + class IfcCartesianTransformationOperator3D extends IfcCartesianTransformationOperator { + constructor(Axis1, Axis2, LocalOrigin, Scale, Axis3) { + super(Axis1, Axis2, LocalOrigin, Scale); + this.Axis1 = Axis1; + this.Axis2 = Axis2; + this.LocalOrigin = LocalOrigin; + this.Scale = Scale; + this.Axis3 = Axis3; + this.type = 3331915920; + } } - IfcBuildingElementProxyTypeEnum.COMPLEX = { type: 3, value: "COMPLEX" }; - IfcBuildingElementProxyTypeEnum.ELEMENT = { type: 3, value: "ELEMENT" }; - IfcBuildingElementProxyTypeEnum.PARTIAL = { type: 3, value: "PARTIAL" }; - IfcBuildingElementProxyTypeEnum.PROVISIONFORVOID = { type: 3, value: "PROVISIONFORVOID" }; - IfcBuildingElementProxyTypeEnum.PROVISIONFORSPACE = { type: 3, value: "PROVISIONFORSPACE" }; - IfcBuildingElementProxyTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcBuildingElementProxyTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcBuildingElementProxyTypeEnum = IfcBuildingElementProxyTypeEnum; - class IfcBuildingSystemTypeEnum { + IFC42.IfcCartesianTransformationOperator3D = IfcCartesianTransformationOperator3D; + class IfcCartesianTransformationOperator3DnonUniform extends IfcCartesianTransformationOperator3D { + constructor(Axis1, Axis2, LocalOrigin, Scale, Axis3, Scale2, Scale3) { + super(Axis1, Axis2, LocalOrigin, Scale, Axis3); + this.Axis1 = Axis1; + this.Axis2 = Axis2; + this.LocalOrigin = LocalOrigin; + this.Scale = Scale; + this.Axis3 = Axis3; + this.Scale2 = Scale2; + this.Scale3 = Scale3; + this.type = 1416205885; + } } - IfcBuildingSystemTypeEnum.FENESTRATION = { type: 3, value: "FENESTRATION" }; - IfcBuildingSystemTypeEnum.FOUNDATION = { type: 3, value: "FOUNDATION" }; - IfcBuildingSystemTypeEnum.LOADBEARING = { type: 3, value: "LOADBEARING" }; - IfcBuildingSystemTypeEnum.OUTERSHELL = { type: 3, value: "OUTERSHELL" }; - IfcBuildingSystemTypeEnum.SHADING = { type: 3, value: "SHADING" }; - IfcBuildingSystemTypeEnum.TRANSPORT = { type: 3, value: "TRANSPORT" }; - IfcBuildingSystemTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcBuildingSystemTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcBuildingSystemTypeEnum = IfcBuildingSystemTypeEnum; - class IfcBurnerTypeEnum { + IFC42.IfcCartesianTransformationOperator3DnonUniform = IfcCartesianTransformationOperator3DnonUniform; + class IfcCircleProfileDef extends IfcParameterizedProfileDef { + constructor(ProfileType, ProfileName, Position, Radius) { + super(ProfileType, ProfileName, Position); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.Radius = Radius; + this.type = 1383045692; + } } - IfcBurnerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcBurnerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcBurnerTypeEnum = IfcBurnerTypeEnum; - class IfcCableCarrierFittingTypeEnum { + IFC42.IfcCircleProfileDef = IfcCircleProfileDef; + class IfcClosedShell extends IfcConnectedFaceSet { + constructor(CfsFaces) { + super(CfsFaces); + this.CfsFaces = CfsFaces; + this.type = 2205249479; + } } - IfcCableCarrierFittingTypeEnum.BEND = { type: 3, value: "BEND" }; - IfcCableCarrierFittingTypeEnum.CROSS = { type: 3, value: "CROSS" }; - IfcCableCarrierFittingTypeEnum.REDUCER = { type: 3, value: "REDUCER" }; - IfcCableCarrierFittingTypeEnum.TEE = { type: 3, value: "TEE" }; - IfcCableCarrierFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCableCarrierFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcCableCarrierFittingTypeEnum = IfcCableCarrierFittingTypeEnum; - class IfcCableCarrierSegmentTypeEnum { + IFC42.IfcClosedShell = IfcClosedShell; + class IfcColourRgb extends IfcColourSpecification { + constructor(Name, Red, Green, Blue) { + super(Name); + this.Name = Name; + this.Red = Red; + this.Green = Green; + this.Blue = Blue; + this.type = 776857604; + } } - IfcCableCarrierSegmentTypeEnum.CABLELADDERSEGMENT = { type: 3, value: "CABLELADDERSEGMENT" }; - IfcCableCarrierSegmentTypeEnum.CABLETRAYSEGMENT = { type: 3, value: "CABLETRAYSEGMENT" }; - IfcCableCarrierSegmentTypeEnum.CABLETRUNKINGSEGMENT = { type: 3, value: "CABLETRUNKINGSEGMENT" }; - IfcCableCarrierSegmentTypeEnum.CONDUITSEGMENT = { type: 3, value: "CONDUITSEGMENT" }; - IfcCableCarrierSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCableCarrierSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcCableCarrierSegmentTypeEnum = IfcCableCarrierSegmentTypeEnum; - class IfcCableFittingTypeEnum { + IFC42.IfcColourRgb = IfcColourRgb; + class IfcComplexProperty extends IfcProperty { + constructor(Name, Description, UsageName, HasProperties) { + super(Name, Description); + this.Name = Name; + this.Description = Description; + this.UsageName = UsageName; + this.HasProperties = HasProperties; + this.type = 2542286263; + } } - IfcCableFittingTypeEnum.CONNECTOR = { type: 3, value: "CONNECTOR" }; - IfcCableFittingTypeEnum.ENTRY = { type: 3, value: "ENTRY" }; - IfcCableFittingTypeEnum.EXIT = { type: 3, value: "EXIT" }; - IfcCableFittingTypeEnum.JUNCTION = { type: 3, value: "JUNCTION" }; - IfcCableFittingTypeEnum.TRANSITION = { type: 3, value: "TRANSITION" }; - IfcCableFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCableFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcCableFittingTypeEnum = IfcCableFittingTypeEnum; - class IfcCableSegmentTypeEnum { + IFC42.IfcComplexProperty = IfcComplexProperty; + class IfcCompositeCurveSegment extends IfcGeometricRepresentationItem { + constructor(Transition, SameSense, ParentCurve) { + super(); + this.Transition = Transition; + this.SameSense = SameSense; + this.ParentCurve = ParentCurve; + this.type = 2485617015; + } } - IfcCableSegmentTypeEnum.BUSBARSEGMENT = { type: 3, value: "BUSBARSEGMENT" }; - IfcCableSegmentTypeEnum.CABLESEGMENT = { type: 3, value: "CABLESEGMENT" }; - IfcCableSegmentTypeEnum.CONDUCTORSEGMENT = { type: 3, value: "CONDUCTORSEGMENT" }; - IfcCableSegmentTypeEnum.CORESEGMENT = { type: 3, value: "CORESEGMENT" }; - IfcCableSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCableSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcCableSegmentTypeEnum = IfcCableSegmentTypeEnum; - class IfcChangeActionEnum { + IFC42.IfcCompositeCurveSegment = IfcCompositeCurveSegment; + class IfcConstructionResourceType extends IfcTypeResource { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.ResourceType = ResourceType; + this.BaseCosts = BaseCosts; + this.BaseQuantity = BaseQuantity; + this.type = 2574617495; + } } - IfcChangeActionEnum.NOCHANGE = { type: 3, value: "NOCHANGE" }; - IfcChangeActionEnum.MODIFIED = { type: 3, value: "MODIFIED" }; - IfcChangeActionEnum.ADDED = { type: 3, value: "ADDED" }; - IfcChangeActionEnum.DELETED = { type: 3, value: "DELETED" }; - IfcChangeActionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcChangeActionEnum = IfcChangeActionEnum; - class IfcChillerTypeEnum { + IFC42.IfcConstructionResourceType = IfcConstructionResourceType; + class IfcContext extends IfcObjectDefinition { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.LongName = LongName; + this.Phase = Phase; + this.RepresentationContexts = RepresentationContexts; + this.UnitsInContext = UnitsInContext; + this.type = 3419103109; + } } - IfcChillerTypeEnum.AIRCOOLED = { type: 3, value: "AIRCOOLED" }; - IfcChillerTypeEnum.WATERCOOLED = { type: 3, value: "WATERCOOLED" }; - IfcChillerTypeEnum.HEATRECOVERY = { type: 3, value: "HEATRECOVERY" }; - IfcChillerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcChillerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcChillerTypeEnum = IfcChillerTypeEnum; - class IfcChimneyTypeEnum { + IFC42.IfcContext = IfcContext; + class IfcCrewResourceType extends IfcConstructionResourceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.ResourceType = ResourceType; + this.BaseCosts = BaseCosts; + this.BaseQuantity = BaseQuantity; + this.PredefinedType = PredefinedType; + this.type = 1815067380; + } } - IfcChimneyTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcChimneyTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcChimneyTypeEnum = IfcChimneyTypeEnum; - class IfcCoilTypeEnum { + IFC42.IfcCrewResourceType = IfcCrewResourceType; + class IfcCsgPrimitive3D extends IfcGeometricRepresentationItem { + constructor(Position) { + super(); + this.Position = Position; + this.type = 2506170314; + } } - IfcCoilTypeEnum.DXCOOLINGCOIL = { type: 3, value: "DXCOOLINGCOIL" }; - IfcCoilTypeEnum.ELECTRICHEATINGCOIL = { type: 3, value: "ELECTRICHEATINGCOIL" }; - IfcCoilTypeEnum.GASHEATINGCOIL = { type: 3, value: "GASHEATINGCOIL" }; - IfcCoilTypeEnum.HYDRONICCOIL = { type: 3, value: "HYDRONICCOIL" }; - IfcCoilTypeEnum.STEAMHEATINGCOIL = { type: 3, value: "STEAMHEATINGCOIL" }; - IfcCoilTypeEnum.WATERCOOLINGCOIL = { type: 3, value: "WATERCOOLINGCOIL" }; - IfcCoilTypeEnum.WATERHEATINGCOIL = { type: 3, value: "WATERHEATINGCOIL" }; - IfcCoilTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCoilTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcCoilTypeEnum = IfcCoilTypeEnum; - class IfcColumnTypeEnum { + IFC42.IfcCsgPrimitive3D = IfcCsgPrimitive3D; + class IfcCsgSolid extends IfcSolidModel { + constructor(TreeRootExpression) { + super(); + this.TreeRootExpression = TreeRootExpression; + this.type = 2147822146; + } } - IfcColumnTypeEnum.COLUMN = { type: 3, value: "COLUMN" }; - IfcColumnTypeEnum.PILASTER = { type: 3, value: "PILASTER" }; - IfcColumnTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcColumnTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcColumnTypeEnum = IfcColumnTypeEnum; - class IfcCommunicationsApplianceTypeEnum { + IFC42.IfcCsgSolid = IfcCsgSolid; + class IfcCurve extends IfcGeometricRepresentationItem { + constructor() { + super(); + this.type = 2601014836; + } + } + IFC42.IfcCurve = IfcCurve; + class IfcCurveBoundedPlane extends IfcBoundedSurface { + constructor(BasisSurface, OuterBoundary, InnerBoundaries) { + super(); + this.BasisSurface = BasisSurface; + this.OuterBoundary = OuterBoundary; + this.InnerBoundaries = InnerBoundaries; + this.type = 2827736869; + } } - IfcCommunicationsApplianceTypeEnum.ANTENNA = { type: 3, value: "ANTENNA" }; - IfcCommunicationsApplianceTypeEnum.COMPUTER = { type: 3, value: "COMPUTER" }; - IfcCommunicationsApplianceTypeEnum.FAX = { type: 3, value: "FAX" }; - IfcCommunicationsApplianceTypeEnum.GATEWAY = { type: 3, value: "GATEWAY" }; - IfcCommunicationsApplianceTypeEnum.MODEM = { type: 3, value: "MODEM" }; - IfcCommunicationsApplianceTypeEnum.NETWORKAPPLIANCE = { type: 3, value: "NETWORKAPPLIANCE" }; - IfcCommunicationsApplianceTypeEnum.NETWORKBRIDGE = { type: 3, value: "NETWORKBRIDGE" }; - IfcCommunicationsApplianceTypeEnum.NETWORKHUB = { type: 3, value: "NETWORKHUB" }; - IfcCommunicationsApplianceTypeEnum.PRINTER = { type: 3, value: "PRINTER" }; - IfcCommunicationsApplianceTypeEnum.REPEATER = { type: 3, value: "REPEATER" }; - IfcCommunicationsApplianceTypeEnum.ROUTER = { type: 3, value: "ROUTER" }; - IfcCommunicationsApplianceTypeEnum.SCANNER = { type: 3, value: "SCANNER" }; - IfcCommunicationsApplianceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCommunicationsApplianceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcCommunicationsApplianceTypeEnum = IfcCommunicationsApplianceTypeEnum; - class IfcComplexPropertyTemplateTypeEnum { + IFC42.IfcCurveBoundedPlane = IfcCurveBoundedPlane; + class IfcCurveBoundedSurface extends IfcBoundedSurface { + constructor(BasisSurface, Boundaries, ImplicitOuter) { + super(); + this.BasisSurface = BasisSurface; + this.Boundaries = Boundaries; + this.ImplicitOuter = ImplicitOuter; + this.type = 2629017746; + } } - IfcComplexPropertyTemplateTypeEnum.P_COMPLEX = { type: 3, value: "P_COMPLEX" }; - IfcComplexPropertyTemplateTypeEnum.Q_COMPLEX = { type: 3, value: "Q_COMPLEX" }; - IFC42.IfcComplexPropertyTemplateTypeEnum = IfcComplexPropertyTemplateTypeEnum; - class IfcCompressorTypeEnum { + IFC42.IfcCurveBoundedSurface = IfcCurveBoundedSurface; + class IfcDirection extends IfcGeometricRepresentationItem { + constructor(DirectionRatios) { + super(); + this.DirectionRatios = DirectionRatios; + this.type = 32440307; + } } - IfcCompressorTypeEnum.DYNAMIC = { type: 3, value: "DYNAMIC" }; - IfcCompressorTypeEnum.RECIPROCATING = { type: 3, value: "RECIPROCATING" }; - IfcCompressorTypeEnum.ROTARY = { type: 3, value: "ROTARY" }; - IfcCompressorTypeEnum.SCROLL = { type: 3, value: "SCROLL" }; - IfcCompressorTypeEnum.TROCHOIDAL = { type: 3, value: "TROCHOIDAL" }; - IfcCompressorTypeEnum.SINGLESTAGE = { type: 3, value: "SINGLESTAGE" }; - IfcCompressorTypeEnum.BOOSTER = { type: 3, value: "BOOSTER" }; - IfcCompressorTypeEnum.OPENTYPE = { type: 3, value: "OPENTYPE" }; - IfcCompressorTypeEnum.HERMETIC = { type: 3, value: "HERMETIC" }; - IfcCompressorTypeEnum.SEMIHERMETIC = { type: 3, value: "SEMIHERMETIC" }; - IfcCompressorTypeEnum.WELDEDSHELLHERMETIC = { type: 3, value: "WELDEDSHELLHERMETIC" }; - IfcCompressorTypeEnum.ROLLINGPISTON = { type: 3, value: "ROLLINGPISTON" }; - IfcCompressorTypeEnum.ROTARYVANE = { type: 3, value: "ROTARYVANE" }; - IfcCompressorTypeEnum.SINGLESCREW = { type: 3, value: "SINGLESCREW" }; - IfcCompressorTypeEnum.TWINSCREW = { type: 3, value: "TWINSCREW" }; - IfcCompressorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCompressorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcCompressorTypeEnum = IfcCompressorTypeEnum; - class IfcCondenserTypeEnum { + IFC42.IfcDirection = IfcDirection; + class IfcDoorStyle extends IfcTypeProduct { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, OperationType, ConstructionType, ParameterTakesPrecedence, Sizeable) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.OperationType = OperationType; + this.ConstructionType = ConstructionType; + this.ParameterTakesPrecedence = ParameterTakesPrecedence; + this.Sizeable = Sizeable; + this.type = 526551008; + } } - IfcCondenserTypeEnum.AIRCOOLED = { type: 3, value: "AIRCOOLED" }; - IfcCondenserTypeEnum.EVAPORATIVECOOLED = { type: 3, value: "EVAPORATIVECOOLED" }; - IfcCondenserTypeEnum.WATERCOOLED = { type: 3, value: "WATERCOOLED" }; - IfcCondenserTypeEnum.WATERCOOLEDBRAZEDPLATE = { type: 3, value: "WATERCOOLEDBRAZEDPLATE" }; - IfcCondenserTypeEnum.WATERCOOLEDSHELLCOIL = { type: 3, value: "WATERCOOLEDSHELLCOIL" }; - IfcCondenserTypeEnum.WATERCOOLEDSHELLTUBE = { type: 3, value: "WATERCOOLEDSHELLTUBE" }; - IfcCondenserTypeEnum.WATERCOOLEDTUBEINTUBE = { type: 3, value: "WATERCOOLEDTUBEINTUBE" }; - IfcCondenserTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCondenserTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcCondenserTypeEnum = IfcCondenserTypeEnum; - class IfcConnectionTypeEnum { + IFC42.IfcDoorStyle = IfcDoorStyle; + class IfcEdgeLoop extends IfcLoop { + constructor(EdgeList) { + super(); + this.EdgeList = EdgeList; + this.type = 1472233963; + } } - IfcConnectionTypeEnum.ATPATH = { type: 3, value: "ATPATH" }; - IfcConnectionTypeEnum.ATSTART = { type: 3, value: "ATSTART" }; - IfcConnectionTypeEnum.ATEND = { type: 3, value: "ATEND" }; - IfcConnectionTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcConnectionTypeEnum = IfcConnectionTypeEnum; - class IfcConstraintEnum { + IFC42.IfcEdgeLoop = IfcEdgeLoop; + class IfcElementQuantity extends IfcQuantitySet { + constructor(GlobalId, OwnerHistory, Name, Description, MethodOfMeasurement, Quantities) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.MethodOfMeasurement = MethodOfMeasurement; + this.Quantities = Quantities; + this.type = 1883228015; + } } - IfcConstraintEnum.HARD = { type: 3, value: "HARD" }; - IfcConstraintEnum.SOFT = { type: 3, value: "SOFT" }; - IfcConstraintEnum.ADVISORY = { type: 3, value: "ADVISORY" }; - IfcConstraintEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcConstraintEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcConstraintEnum = IfcConstraintEnum; - class IfcConstructionEquipmentResourceTypeEnum { + IFC42.IfcElementQuantity = IfcElementQuantity; + class IfcElementType extends IfcTypeProduct { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 339256511; + } } - IfcConstructionEquipmentResourceTypeEnum.DEMOLISHING = { type: 3, value: "DEMOLISHING" }; - IfcConstructionEquipmentResourceTypeEnum.EARTHMOVING = { type: 3, value: "EARTHMOVING" }; - IfcConstructionEquipmentResourceTypeEnum.ERECTING = { type: 3, value: "ERECTING" }; - IfcConstructionEquipmentResourceTypeEnum.HEATING = { type: 3, value: "HEATING" }; - IfcConstructionEquipmentResourceTypeEnum.LIGHTING = { type: 3, value: "LIGHTING" }; - IfcConstructionEquipmentResourceTypeEnum.PAVING = { type: 3, value: "PAVING" }; - IfcConstructionEquipmentResourceTypeEnum.PUMPING = { type: 3, value: "PUMPING" }; - IfcConstructionEquipmentResourceTypeEnum.TRANSPORTING = { type: 3, value: "TRANSPORTING" }; - IfcConstructionEquipmentResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcConstructionEquipmentResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcConstructionEquipmentResourceTypeEnum = IfcConstructionEquipmentResourceTypeEnum; - class IfcConstructionMaterialResourceTypeEnum { + IFC42.IfcElementType = IfcElementType; + class IfcElementarySurface extends IfcSurface { + constructor(Position) { + super(); + this.Position = Position; + this.type = 2777663545; + } } - IfcConstructionMaterialResourceTypeEnum.AGGREGATES = { type: 3, value: "AGGREGATES" }; - IfcConstructionMaterialResourceTypeEnum.CONCRETE = { type: 3, value: "CONCRETE" }; - IfcConstructionMaterialResourceTypeEnum.DRYWALL = { type: 3, value: "DRYWALL" }; - IfcConstructionMaterialResourceTypeEnum.FUEL = { type: 3, value: "FUEL" }; - IfcConstructionMaterialResourceTypeEnum.GYPSUM = { type: 3, value: "GYPSUM" }; - IfcConstructionMaterialResourceTypeEnum.MASONRY = { type: 3, value: "MASONRY" }; - IfcConstructionMaterialResourceTypeEnum.METAL = { type: 3, value: "METAL" }; - IfcConstructionMaterialResourceTypeEnum.PLASTIC = { type: 3, value: "PLASTIC" }; - IfcConstructionMaterialResourceTypeEnum.WOOD = { type: 3, value: "WOOD" }; - IfcConstructionMaterialResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IfcConstructionMaterialResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IFC42.IfcConstructionMaterialResourceTypeEnum = IfcConstructionMaterialResourceTypeEnum; - class IfcConstructionProductResourceTypeEnum { + IFC42.IfcElementarySurface = IfcElementarySurface; + class IfcEllipseProfileDef extends IfcParameterizedProfileDef { + constructor(ProfileType, ProfileName, Position, SemiAxis1, SemiAxis2) { + super(ProfileType, ProfileName, Position); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.SemiAxis1 = SemiAxis1; + this.SemiAxis2 = SemiAxis2; + this.type = 2835456948; + } } - IfcConstructionProductResourceTypeEnum.ASSEMBLY = { type: 3, value: "ASSEMBLY" }; - IfcConstructionProductResourceTypeEnum.FORMWORK = { type: 3, value: "FORMWORK" }; - IfcConstructionProductResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcConstructionProductResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcConstructionProductResourceTypeEnum = IfcConstructionProductResourceTypeEnum; - class IfcControllerTypeEnum { + IFC42.IfcEllipseProfileDef = IfcEllipseProfileDef; + class IfcEventType extends IfcTypeProcess { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType, PredefinedType, EventTriggerType, UserDefinedEventTriggerType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.ProcessType = ProcessType; + this.PredefinedType = PredefinedType; + this.EventTriggerType = EventTriggerType; + this.UserDefinedEventTriggerType = UserDefinedEventTriggerType; + this.type = 4024345920; + } } - IfcControllerTypeEnum.FLOATING = { type: 3, value: "FLOATING" }; - IfcControllerTypeEnum.PROGRAMMABLE = { type: 3, value: "PROGRAMMABLE" }; - IfcControllerTypeEnum.PROPORTIONAL = { type: 3, value: "PROPORTIONAL" }; - IfcControllerTypeEnum.MULTIPOSITION = { type: 3, value: "MULTIPOSITION" }; - IfcControllerTypeEnum.TWOPOSITION = { type: 3, value: "TWOPOSITION" }; - IfcControllerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcControllerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcControllerTypeEnum = IfcControllerTypeEnum; - class IfcCooledBeamTypeEnum { + IFC42.IfcEventType = IfcEventType; + class IfcExtrudedAreaSolid extends IfcSweptAreaSolid { + constructor(SweptArea, Position, ExtrudedDirection, Depth) { + super(SweptArea, Position); + this.SweptArea = SweptArea; + this.Position = Position; + this.ExtrudedDirection = ExtrudedDirection; + this.Depth = Depth; + this.type = 477187591; + } } - IfcCooledBeamTypeEnum.ACTIVE = { type: 3, value: "ACTIVE" }; - IfcCooledBeamTypeEnum.PASSIVE = { type: 3, value: "PASSIVE" }; - IfcCooledBeamTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCooledBeamTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcCooledBeamTypeEnum = IfcCooledBeamTypeEnum; - class IfcCoolingTowerTypeEnum { + IFC42.IfcExtrudedAreaSolid = IfcExtrudedAreaSolid; + class IfcExtrudedAreaSolidTapered extends IfcExtrudedAreaSolid { + constructor(SweptArea, Position, ExtrudedDirection, Depth, EndSweptArea) { + super(SweptArea, Position, ExtrudedDirection, Depth); + this.SweptArea = SweptArea; + this.Position = Position; + this.ExtrudedDirection = ExtrudedDirection; + this.Depth = Depth; + this.EndSweptArea = EndSweptArea; + this.type = 2804161546; + } } - IfcCoolingTowerTypeEnum.NATURALDRAFT = { type: 3, value: "NATURALDRAFT" }; - IfcCoolingTowerTypeEnum.MECHANICALINDUCEDDRAFT = { type: 3, value: "MECHANICALINDUCEDDRAFT" }; - IfcCoolingTowerTypeEnum.MECHANICALFORCEDDRAFT = { type: 3, value: "MECHANICALFORCEDDRAFT" }; - IfcCoolingTowerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCoolingTowerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcCoolingTowerTypeEnum = IfcCoolingTowerTypeEnum; - class IfcCostItemTypeEnum { + IFC42.IfcExtrudedAreaSolidTapered = IfcExtrudedAreaSolidTapered; + class IfcFaceBasedSurfaceModel extends IfcGeometricRepresentationItem { + constructor(FbsmFaces) { + super(); + this.FbsmFaces = FbsmFaces; + this.type = 2047409740; + } } - IfcCostItemTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCostItemTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcCostItemTypeEnum = IfcCostItemTypeEnum; - class IfcCostScheduleTypeEnum { + IFC42.IfcFaceBasedSurfaceModel = IfcFaceBasedSurfaceModel; + class IfcFillAreaStyleHatching extends IfcGeometricRepresentationItem { + constructor(HatchLineAppearance, StartOfNextHatchLine, PointOfReferenceHatchLine, PatternStart, HatchLineAngle) { + super(); + this.HatchLineAppearance = HatchLineAppearance; + this.StartOfNextHatchLine = StartOfNextHatchLine; + this.PointOfReferenceHatchLine = PointOfReferenceHatchLine; + this.PatternStart = PatternStart; + this.HatchLineAngle = HatchLineAngle; + this.type = 374418227; + } } - IfcCostScheduleTypeEnum.BUDGET = { type: 3, value: "BUDGET" }; - IfcCostScheduleTypeEnum.COSTPLAN = { type: 3, value: "COSTPLAN" }; - IfcCostScheduleTypeEnum.ESTIMATE = { type: 3, value: "ESTIMATE" }; - IfcCostScheduleTypeEnum.TENDER = { type: 3, value: "TENDER" }; - IfcCostScheduleTypeEnum.PRICEDBILLOFQUANTITIES = { type: 3, value: "PRICEDBILLOFQUANTITIES" }; - IfcCostScheduleTypeEnum.UNPRICEDBILLOFQUANTITIES = { type: 3, value: "UNPRICEDBILLOFQUANTITIES" }; - IfcCostScheduleTypeEnum.SCHEDULEOFRATES = { type: 3, value: "SCHEDULEOFRATES" }; - IfcCostScheduleTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCostScheduleTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcCostScheduleTypeEnum = IfcCostScheduleTypeEnum; - class IfcCoveringTypeEnum { + IFC42.IfcFillAreaStyleHatching = IfcFillAreaStyleHatching; + class IfcFillAreaStyleTiles extends IfcGeometricRepresentationItem { + constructor(TilingPattern, Tiles, TilingScale) { + super(); + this.TilingPattern = TilingPattern; + this.Tiles = Tiles; + this.TilingScale = TilingScale; + this.type = 315944413; + } } - IfcCoveringTypeEnum.CEILING = { type: 3, value: "CEILING" }; - IfcCoveringTypeEnum.FLOORING = { type: 3, value: "FLOORING" }; - IfcCoveringTypeEnum.CLADDING = { type: 3, value: "CLADDING" }; - IfcCoveringTypeEnum.ROOFING = { type: 3, value: "ROOFING" }; - IfcCoveringTypeEnum.MOLDING = { type: 3, value: "MOLDING" }; - IfcCoveringTypeEnum.SKIRTINGBOARD = { type: 3, value: "SKIRTINGBOARD" }; - IfcCoveringTypeEnum.INSULATION = { type: 3, value: "INSULATION" }; - IfcCoveringTypeEnum.MEMBRANE = { type: 3, value: "MEMBRANE" }; - IfcCoveringTypeEnum.SLEEVING = { type: 3, value: "SLEEVING" }; - IfcCoveringTypeEnum.WRAPPING = { type: 3, value: "WRAPPING" }; - IfcCoveringTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCoveringTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcCoveringTypeEnum = IfcCoveringTypeEnum; - class IfcCrewResourceTypeEnum { + IFC42.IfcFillAreaStyleTiles = IfcFillAreaStyleTiles; + class IfcFixedReferenceSweptAreaSolid extends IfcSweptAreaSolid { + constructor(SweptArea, Position, Directrix, StartParam, EndParam, FixedReference) { + super(SweptArea, Position); + this.SweptArea = SweptArea; + this.Position = Position; + this.Directrix = Directrix; + this.StartParam = StartParam; + this.EndParam = EndParam; + this.FixedReference = FixedReference; + this.type = 2652556860; + } } - IfcCrewResourceTypeEnum.OFFICE = { type: 3, value: "OFFICE" }; - IfcCrewResourceTypeEnum.SITE = { type: 3, value: "SITE" }; - IfcCrewResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCrewResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcCrewResourceTypeEnum = IfcCrewResourceTypeEnum; - class IfcCurtainWallTypeEnum { + IFC42.IfcFixedReferenceSweptAreaSolid = IfcFixedReferenceSweptAreaSolid; + class IfcFurnishingElementType extends IfcElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 4238390223; + } } - IfcCurtainWallTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCurtainWallTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcCurtainWallTypeEnum = IfcCurtainWallTypeEnum; - class IfcCurveInterpolationEnum { + IFC42.IfcFurnishingElementType = IfcFurnishingElementType; + class IfcFurnitureType extends IfcFurnishingElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, AssemblyPlace, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.AssemblyPlace = AssemblyPlace; + this.PredefinedType = PredefinedType; + this.type = 1268542332; + } } - IfcCurveInterpolationEnum.LINEAR = { type: 3, value: "LINEAR" }; - IfcCurveInterpolationEnum.LOG_LINEAR = { type: 3, value: "LOG_LINEAR" }; - IfcCurveInterpolationEnum.LOG_LOG = { type: 3, value: "LOG_LOG" }; - IfcCurveInterpolationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcCurveInterpolationEnum = IfcCurveInterpolationEnum; - class IfcDamperTypeEnum { + IFC42.IfcFurnitureType = IfcFurnitureType; + class IfcGeographicElementType extends IfcElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 4095422895; + } } - IfcDamperTypeEnum.BACKDRAFTDAMPER = { type: 3, value: "BACKDRAFTDAMPER" }; - IfcDamperTypeEnum.BALANCINGDAMPER = { type: 3, value: "BALANCINGDAMPER" }; - IfcDamperTypeEnum.BLASTDAMPER = { type: 3, value: "BLASTDAMPER" }; - IfcDamperTypeEnum.CONTROLDAMPER = { type: 3, value: "CONTROLDAMPER" }; - IfcDamperTypeEnum.FIREDAMPER = { type: 3, value: "FIREDAMPER" }; - IfcDamperTypeEnum.FIRESMOKEDAMPER = { type: 3, value: "FIRESMOKEDAMPER" }; - IfcDamperTypeEnum.FUMEHOODEXHAUST = { type: 3, value: "FUMEHOODEXHAUST" }; - IfcDamperTypeEnum.GRAVITYDAMPER = { type: 3, value: "GRAVITYDAMPER" }; - IfcDamperTypeEnum.GRAVITYRELIEFDAMPER = { type: 3, value: "GRAVITYRELIEFDAMPER" }; - IfcDamperTypeEnum.RELIEFDAMPER = { type: 3, value: "RELIEFDAMPER" }; - IfcDamperTypeEnum.SMOKEDAMPER = { type: 3, value: "SMOKEDAMPER" }; - IfcDamperTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDamperTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcDamperTypeEnum = IfcDamperTypeEnum; - class IfcDataOriginEnum { + IFC42.IfcGeographicElementType = IfcGeographicElementType; + class IfcGeometricCurveSet extends IfcGeometricSet { + constructor(Elements) { + super(Elements); + this.Elements = Elements; + this.type = 987898635; + } } - IfcDataOriginEnum.MEASURED = { type: 3, value: "MEASURED" }; - IfcDataOriginEnum.PREDICTED = { type: 3, value: "PREDICTED" }; - IfcDataOriginEnum.SIMULATED = { type: 3, value: "SIMULATED" }; - IfcDataOriginEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDataOriginEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcDataOriginEnum = IfcDataOriginEnum; - class IfcDerivedUnitEnum { + IFC42.IfcGeometricCurveSet = IfcGeometricCurveSet; + class IfcIShapeProfileDef extends IfcParameterizedProfileDef { + constructor(ProfileType, ProfileName, Position, OverallWidth, OverallDepth, WebThickness, FlangeThickness, FilletRadius, FlangeEdgeRadius, FlangeSlope) { + super(ProfileType, ProfileName, Position); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.OverallWidth = OverallWidth; + this.OverallDepth = OverallDepth; + this.WebThickness = WebThickness; + this.FlangeThickness = FlangeThickness; + this.FilletRadius = FilletRadius; + this.FlangeEdgeRadius = FlangeEdgeRadius; + this.FlangeSlope = FlangeSlope; + this.type = 1484403080; + } } - IfcDerivedUnitEnum.ANGULARVELOCITYUNIT = { type: 3, value: "ANGULARVELOCITYUNIT" }; - IfcDerivedUnitEnum.AREADENSITYUNIT = { type: 3, value: "AREADENSITYUNIT" }; - IfcDerivedUnitEnum.COMPOUNDPLANEANGLEUNIT = { type: 3, value: "COMPOUNDPLANEANGLEUNIT" }; - IfcDerivedUnitEnum.DYNAMICVISCOSITYUNIT = { type: 3, value: "DYNAMICVISCOSITYUNIT" }; - IfcDerivedUnitEnum.HEATFLUXDENSITYUNIT = { type: 3, value: "HEATFLUXDENSITYUNIT" }; - IfcDerivedUnitEnum.INTEGERCOUNTRATEUNIT = { type: 3, value: "INTEGERCOUNTRATEUNIT" }; - IfcDerivedUnitEnum.ISOTHERMALMOISTURECAPACITYUNIT = { type: 3, value: "ISOTHERMALMOISTURECAPACITYUNIT" }; - IfcDerivedUnitEnum.KINEMATICVISCOSITYUNIT = { type: 3, value: "KINEMATICVISCOSITYUNIT" }; - IfcDerivedUnitEnum.LINEARVELOCITYUNIT = { type: 3, value: "LINEARVELOCITYUNIT" }; - IfcDerivedUnitEnum.MASSDENSITYUNIT = { type: 3, value: "MASSDENSITYUNIT" }; - IfcDerivedUnitEnum.MASSFLOWRATEUNIT = { type: 3, value: "MASSFLOWRATEUNIT" }; - IfcDerivedUnitEnum.MOISTUREDIFFUSIVITYUNIT = { type: 3, value: "MOISTUREDIFFUSIVITYUNIT" }; - IfcDerivedUnitEnum.MOLECULARWEIGHTUNIT = { type: 3, value: "MOLECULARWEIGHTUNIT" }; - IfcDerivedUnitEnum.SPECIFICHEATCAPACITYUNIT = { type: 3, value: "SPECIFICHEATCAPACITYUNIT" }; - IfcDerivedUnitEnum.THERMALADMITTANCEUNIT = { type: 3, value: "THERMALADMITTANCEUNIT" }; - IfcDerivedUnitEnum.THERMALCONDUCTANCEUNIT = { type: 3, value: "THERMALCONDUCTANCEUNIT" }; - IfcDerivedUnitEnum.THERMALRESISTANCEUNIT = { type: 3, value: "THERMALRESISTANCEUNIT" }; - IfcDerivedUnitEnum.THERMALTRANSMITTANCEUNIT = { type: 3, value: "THERMALTRANSMITTANCEUNIT" }; - IfcDerivedUnitEnum.VAPORPERMEABILITYUNIT = { type: 3, value: "VAPORPERMEABILITYUNIT" }; - IfcDerivedUnitEnum.VOLUMETRICFLOWRATEUNIT = { type: 3, value: "VOLUMETRICFLOWRATEUNIT" }; - IfcDerivedUnitEnum.ROTATIONALFREQUENCYUNIT = { type: 3, value: "ROTATIONALFREQUENCYUNIT" }; - IfcDerivedUnitEnum.TORQUEUNIT = { type: 3, value: "TORQUEUNIT" }; - IfcDerivedUnitEnum.MOMENTOFINERTIAUNIT = { type: 3, value: "MOMENTOFINERTIAUNIT" }; - IfcDerivedUnitEnum.LINEARMOMENTUNIT = { type: 3, value: "LINEARMOMENTUNIT" }; - IfcDerivedUnitEnum.LINEARFORCEUNIT = { type: 3, value: "LINEARFORCEUNIT" }; - IfcDerivedUnitEnum.PLANARFORCEUNIT = { type: 3, value: "PLANARFORCEUNIT" }; - IfcDerivedUnitEnum.MODULUSOFELASTICITYUNIT = { type: 3, value: "MODULUSOFELASTICITYUNIT" }; - IfcDerivedUnitEnum.SHEARMODULUSUNIT = { type: 3, value: "SHEARMODULUSUNIT" }; - IfcDerivedUnitEnum.LINEARSTIFFNESSUNIT = { type: 3, value: "LINEARSTIFFNESSUNIT" }; - IfcDerivedUnitEnum.ROTATIONALSTIFFNESSUNIT = { type: 3, value: "ROTATIONALSTIFFNESSUNIT" }; - IfcDerivedUnitEnum.MODULUSOFSUBGRADEREACTIONUNIT = { type: 3, value: "MODULUSOFSUBGRADEREACTIONUNIT" }; - IfcDerivedUnitEnum.ACCELERATIONUNIT = { type: 3, value: "ACCELERATIONUNIT" }; - IfcDerivedUnitEnum.CURVATUREUNIT = { type: 3, value: "CURVATUREUNIT" }; - IfcDerivedUnitEnum.HEATINGVALUEUNIT = { type: 3, value: "HEATINGVALUEUNIT" }; - IfcDerivedUnitEnum.IONCONCENTRATIONUNIT = { type: 3, value: "IONCONCENTRATIONUNIT" }; - IfcDerivedUnitEnum.LUMINOUSINTENSITYDISTRIBUTIONUNIT = { type: 3, value: "LUMINOUSINTENSITYDISTRIBUTIONUNIT" }; - IfcDerivedUnitEnum.MASSPERLENGTHUNIT = { type: 3, value: "MASSPERLENGTHUNIT" }; - IfcDerivedUnitEnum.MODULUSOFLINEARSUBGRADEREACTIONUNIT = { type: 3, value: "MODULUSOFLINEARSUBGRADEREACTIONUNIT" }; - IfcDerivedUnitEnum.MODULUSOFROTATIONALSUBGRADEREACTIONUNIT = { type: 3, value: "MODULUSOFROTATIONALSUBGRADEREACTIONUNIT" }; - IfcDerivedUnitEnum.PHUNIT = { type: 3, value: "PHUNIT" }; - IfcDerivedUnitEnum.ROTATIONALMASSUNIT = { type: 3, value: "ROTATIONALMASSUNIT" }; - IfcDerivedUnitEnum.SECTIONAREAINTEGRALUNIT = { type: 3, value: "SECTIONAREAINTEGRALUNIT" }; - IfcDerivedUnitEnum.SECTIONMODULUSUNIT = { type: 3, value: "SECTIONMODULUSUNIT" }; - IfcDerivedUnitEnum.SOUNDPOWERLEVELUNIT = { type: 3, value: "SOUNDPOWERLEVELUNIT" }; - IfcDerivedUnitEnum.SOUNDPOWERUNIT = { type: 3, value: "SOUNDPOWERUNIT" }; - IfcDerivedUnitEnum.SOUNDPRESSURELEVELUNIT = { type: 3, value: "SOUNDPRESSURELEVELUNIT" }; - IfcDerivedUnitEnum.SOUNDPRESSUREUNIT = { type: 3, value: "SOUNDPRESSUREUNIT" }; - IfcDerivedUnitEnum.TEMPERATUREGRADIENTUNIT = { type: 3, value: "TEMPERATUREGRADIENTUNIT" }; - IfcDerivedUnitEnum.TEMPERATURERATEOFCHANGEUNIT = { type: 3, value: "TEMPERATURERATEOFCHANGEUNIT" }; - IfcDerivedUnitEnum.THERMALEXPANSIONCOEFFICIENTUNIT = { type: 3, value: "THERMALEXPANSIONCOEFFICIENTUNIT" }; - IfcDerivedUnitEnum.WARPINGCONSTANTUNIT = { type: 3, value: "WARPINGCONSTANTUNIT" }; - IfcDerivedUnitEnum.WARPINGMOMENTUNIT = { type: 3, value: "WARPINGMOMENTUNIT" }; - IfcDerivedUnitEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IFC42.IfcDerivedUnitEnum = IfcDerivedUnitEnum; - class IfcDirectionSenseEnum { + IFC42.IfcIShapeProfileDef = IfcIShapeProfileDef; + class IfcIndexedPolygonalFace extends IfcTessellatedItem { + constructor(CoordIndex) { + super(); + this.CoordIndex = CoordIndex; + this.type = 178912537; + } } - IfcDirectionSenseEnum.POSITIVE = { type: 3, value: "POSITIVE" }; - IfcDirectionSenseEnum.NEGATIVE = { type: 3, value: "NEGATIVE" }; - IFC42.IfcDirectionSenseEnum = IfcDirectionSenseEnum; - class IfcDiscreteAccessoryTypeEnum { + IFC42.IfcIndexedPolygonalFace = IfcIndexedPolygonalFace; + class IfcIndexedPolygonalFaceWithVoids extends IfcIndexedPolygonalFace { + constructor(CoordIndex, InnerCoordIndices) { + super(CoordIndex); + this.CoordIndex = CoordIndex; + this.InnerCoordIndices = InnerCoordIndices; + this.type = 2294589976; + } } - IfcDiscreteAccessoryTypeEnum.ANCHORPLATE = { type: 3, value: "ANCHORPLATE" }; - IfcDiscreteAccessoryTypeEnum.BRACKET = { type: 3, value: "BRACKET" }; - IfcDiscreteAccessoryTypeEnum.SHOE = { type: 3, value: "SHOE" }; - IfcDiscreteAccessoryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDiscreteAccessoryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcDiscreteAccessoryTypeEnum = IfcDiscreteAccessoryTypeEnum; - class IfcDistributionChamberElementTypeEnum { + IFC42.IfcIndexedPolygonalFaceWithVoids = IfcIndexedPolygonalFaceWithVoids; + class IfcLShapeProfileDef extends IfcParameterizedProfileDef { + constructor(ProfileType, ProfileName, Position, Depth, Width, Thickness, FilletRadius, EdgeRadius, LegSlope) { + super(ProfileType, ProfileName, Position); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.Depth = Depth; + this.Width = Width; + this.Thickness = Thickness; + this.FilletRadius = FilletRadius; + this.EdgeRadius = EdgeRadius; + this.LegSlope = LegSlope; + this.type = 572779678; + } } - IfcDistributionChamberElementTypeEnum.FORMEDDUCT = { type: 3, value: "FORMEDDUCT" }; - IfcDistributionChamberElementTypeEnum.INSPECTIONCHAMBER = { type: 3, value: "INSPECTIONCHAMBER" }; - IfcDistributionChamberElementTypeEnum.INSPECTIONPIT = { type: 3, value: "INSPECTIONPIT" }; - IfcDistributionChamberElementTypeEnum.MANHOLE = { type: 3, value: "MANHOLE" }; - IfcDistributionChamberElementTypeEnum.METERCHAMBER = { type: 3, value: "METERCHAMBER" }; - IfcDistributionChamberElementTypeEnum.SUMP = { type: 3, value: "SUMP" }; - IfcDistributionChamberElementTypeEnum.TRENCH = { type: 3, value: "TRENCH" }; - IfcDistributionChamberElementTypeEnum.VALVECHAMBER = { type: 3, value: "VALVECHAMBER" }; - IfcDistributionChamberElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDistributionChamberElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcDistributionChamberElementTypeEnum = IfcDistributionChamberElementTypeEnum; - class IfcDistributionPortTypeEnum { + IFC42.IfcLShapeProfileDef = IfcLShapeProfileDef; + class IfcLaborResourceType extends IfcConstructionResourceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.ResourceType = ResourceType; + this.BaseCosts = BaseCosts; + this.BaseQuantity = BaseQuantity; + this.PredefinedType = PredefinedType; + this.type = 428585644; + } } - IfcDistributionPortTypeEnum.CABLE = { type: 3, value: "CABLE" }; - IfcDistributionPortTypeEnum.CABLECARRIER = { type: 3, value: "CABLECARRIER" }; - IfcDistributionPortTypeEnum.DUCT = { type: 3, value: "DUCT" }; - IfcDistributionPortTypeEnum.PIPE = { type: 3, value: "PIPE" }; - IfcDistributionPortTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDistributionPortTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcDistributionPortTypeEnum = IfcDistributionPortTypeEnum; - class IfcDistributionSystemEnum { + IFC42.IfcLaborResourceType = IfcLaborResourceType; + class IfcLine extends IfcCurve { + constructor(Pnt, Dir) { + super(); + this.Pnt = Pnt; + this.Dir = Dir; + this.type = 1281925730; + } } - IfcDistributionSystemEnum.AIRCONDITIONING = { type: 3, value: "AIRCONDITIONING" }; - IfcDistributionSystemEnum.AUDIOVISUAL = { type: 3, value: "AUDIOVISUAL" }; - IfcDistributionSystemEnum.CHEMICAL = { type: 3, value: "CHEMICAL" }; - IfcDistributionSystemEnum.CHILLEDWATER = { type: 3, value: "CHILLEDWATER" }; - IfcDistributionSystemEnum.COMMUNICATION = { type: 3, value: "COMMUNICATION" }; - IfcDistributionSystemEnum.COMPRESSEDAIR = { type: 3, value: "COMPRESSEDAIR" }; - IfcDistributionSystemEnum.CONDENSERWATER = { type: 3, value: "CONDENSERWATER" }; - IfcDistributionSystemEnum.CONTROL = { type: 3, value: "CONTROL" }; - IfcDistributionSystemEnum.CONVEYING = { type: 3, value: "CONVEYING" }; - IfcDistributionSystemEnum.DATA = { type: 3, value: "DATA" }; - IfcDistributionSystemEnum.DISPOSAL = { type: 3, value: "DISPOSAL" }; - IfcDistributionSystemEnum.DOMESTICCOLDWATER = { type: 3, value: "DOMESTICCOLDWATER" }; - IfcDistributionSystemEnum.DOMESTICHOTWATER = { type: 3, value: "DOMESTICHOTWATER" }; - IfcDistributionSystemEnum.DRAINAGE = { type: 3, value: "DRAINAGE" }; - IfcDistributionSystemEnum.EARTHING = { type: 3, value: "EARTHING" }; - IfcDistributionSystemEnum.ELECTRICAL = { type: 3, value: "ELECTRICAL" }; - IfcDistributionSystemEnum.ELECTROACOUSTIC = { type: 3, value: "ELECTROACOUSTIC" }; - IfcDistributionSystemEnum.EXHAUST = { type: 3, value: "EXHAUST" }; - IfcDistributionSystemEnum.FIREPROTECTION = { type: 3, value: "FIREPROTECTION" }; - IfcDistributionSystemEnum.FUEL = { type: 3, value: "FUEL" }; - IfcDistributionSystemEnum.GAS = { type: 3, value: "GAS" }; - IfcDistributionSystemEnum.HAZARDOUS = { type: 3, value: "HAZARDOUS" }; - IfcDistributionSystemEnum.HEATING = { type: 3, value: "HEATING" }; - IfcDistributionSystemEnum.LIGHTING = { type: 3, value: "LIGHTING" }; - IfcDistributionSystemEnum.LIGHTNINGPROTECTION = { type: 3, value: "LIGHTNINGPROTECTION" }; - IfcDistributionSystemEnum.MUNICIPALSOLIDWASTE = { type: 3, value: "MUNICIPALSOLIDWASTE" }; - IfcDistributionSystemEnum.OIL = { type: 3, value: "OIL" }; - IfcDistributionSystemEnum.OPERATIONAL = { type: 3, value: "OPERATIONAL" }; - IfcDistributionSystemEnum.POWERGENERATION = { type: 3, value: "POWERGENERATION" }; - IfcDistributionSystemEnum.RAINWATER = { type: 3, value: "RAINWATER" }; - IfcDistributionSystemEnum.REFRIGERATION = { type: 3, value: "REFRIGERATION" }; - IfcDistributionSystemEnum.SECURITY = { type: 3, value: "SECURITY" }; - IfcDistributionSystemEnum.SEWAGE = { type: 3, value: "SEWAGE" }; - IfcDistributionSystemEnum.SIGNAL = { type: 3, value: "SIGNAL" }; - IfcDistributionSystemEnum.STORMWATER = { type: 3, value: "STORMWATER" }; - IfcDistributionSystemEnum.TELEPHONE = { type: 3, value: "TELEPHONE" }; - IfcDistributionSystemEnum.TV = { type: 3, value: "TV" }; - IfcDistributionSystemEnum.VACUUM = { type: 3, value: "VACUUM" }; - IfcDistributionSystemEnum.VENT = { type: 3, value: "VENT" }; - IfcDistributionSystemEnum.VENTILATION = { type: 3, value: "VENTILATION" }; - IfcDistributionSystemEnum.WASTEWATER = { type: 3, value: "WASTEWATER" }; - IfcDistributionSystemEnum.WATERSUPPLY = { type: 3, value: "WATERSUPPLY" }; - IfcDistributionSystemEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDistributionSystemEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcDistributionSystemEnum = IfcDistributionSystemEnum; - class IfcDocumentConfidentialityEnum { + IFC42.IfcLine = IfcLine; + class IfcManifoldSolidBrep extends IfcSolidModel { + constructor(Outer) { + super(); + this.Outer = Outer; + this.type = 1425443689; + } } - IfcDocumentConfidentialityEnum.PUBLIC = { type: 3, value: "PUBLIC" }; - IfcDocumentConfidentialityEnum.RESTRICTED = { type: 3, value: "RESTRICTED" }; - IfcDocumentConfidentialityEnum.CONFIDENTIAL = { type: 3, value: "CONFIDENTIAL" }; - IfcDocumentConfidentialityEnum.PERSONAL = { type: 3, value: "PERSONAL" }; - IfcDocumentConfidentialityEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDocumentConfidentialityEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcDocumentConfidentialityEnum = IfcDocumentConfidentialityEnum; - class IfcDocumentStatusEnum { + IFC42.IfcManifoldSolidBrep = IfcManifoldSolidBrep; + class IfcObject extends IfcObjectDefinition { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.type = 3888040117; + } } - IfcDocumentStatusEnum.DRAFT = { type: 3, value: "DRAFT" }; - IfcDocumentStatusEnum.FINALDRAFT = { type: 3, value: "FINALDRAFT" }; - IfcDocumentStatusEnum.FINAL = { type: 3, value: "FINAL" }; - IfcDocumentStatusEnum.REVISION = { type: 3, value: "REVISION" }; - IfcDocumentStatusEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcDocumentStatusEnum = IfcDocumentStatusEnum; - class IfcDoorPanelOperationEnum { + IFC42.IfcObject = IfcObject; + class IfcOffsetCurve2D extends IfcCurve { + constructor(BasisCurve, Distance, SelfIntersect) { + super(); + this.BasisCurve = BasisCurve; + this.Distance = Distance; + this.SelfIntersect = SelfIntersect; + this.type = 3388369263; + } } - IfcDoorPanelOperationEnum.SWINGING = { type: 3, value: "SWINGING" }; - IfcDoorPanelOperationEnum.DOUBLE_ACTING = { type: 3, value: "DOUBLE_ACTING" }; - IfcDoorPanelOperationEnum.SLIDING = { type: 3, value: "SLIDING" }; - IfcDoorPanelOperationEnum.FOLDING = { type: 3, value: "FOLDING" }; - IfcDoorPanelOperationEnum.REVOLVING = { type: 3, value: "REVOLVING" }; - IfcDoorPanelOperationEnum.ROLLINGUP = { type: 3, value: "ROLLINGUP" }; - IfcDoorPanelOperationEnum.FIXEDPANEL = { type: 3, value: "FIXEDPANEL" }; - IfcDoorPanelOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDoorPanelOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcDoorPanelOperationEnum = IfcDoorPanelOperationEnum; - class IfcDoorPanelPositionEnum { + IFC42.IfcOffsetCurve2D = IfcOffsetCurve2D; + class IfcOffsetCurve3D extends IfcCurve { + constructor(BasisCurve, Distance, SelfIntersect, RefDirection) { + super(); + this.BasisCurve = BasisCurve; + this.Distance = Distance; + this.SelfIntersect = SelfIntersect; + this.RefDirection = RefDirection; + this.type = 3505215534; + } } - IfcDoorPanelPositionEnum.LEFT = { type: 3, value: "LEFT" }; - IfcDoorPanelPositionEnum.MIDDLE = { type: 3, value: "MIDDLE" }; - IfcDoorPanelPositionEnum.RIGHT = { type: 3, value: "RIGHT" }; - IfcDoorPanelPositionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcDoorPanelPositionEnum = IfcDoorPanelPositionEnum; - class IfcDoorStyleConstructionEnum { + IFC42.IfcOffsetCurve3D = IfcOffsetCurve3D; + class IfcPcurve extends IfcCurve { + constructor(BasisSurface, ReferenceCurve) { + super(); + this.BasisSurface = BasisSurface; + this.ReferenceCurve = ReferenceCurve; + this.type = 1682466193; + } } - IfcDoorStyleConstructionEnum.ALUMINIUM = { type: 3, value: "ALUMINIUM" }; - IfcDoorStyleConstructionEnum.HIGH_GRADE_STEEL = { type: 3, value: "HIGH_GRADE_STEEL" }; - IfcDoorStyleConstructionEnum.STEEL = { type: 3, value: "STEEL" }; - IfcDoorStyleConstructionEnum.WOOD = { type: 3, value: "WOOD" }; - IfcDoorStyleConstructionEnum.ALUMINIUM_WOOD = { type: 3, value: "ALUMINIUM_WOOD" }; - IfcDoorStyleConstructionEnum.ALUMINIUM_PLASTIC = { type: 3, value: "ALUMINIUM_PLASTIC" }; - IfcDoorStyleConstructionEnum.PLASTIC = { type: 3, value: "PLASTIC" }; - IfcDoorStyleConstructionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDoorStyleConstructionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcDoorStyleConstructionEnum = IfcDoorStyleConstructionEnum; - class IfcDoorStyleOperationEnum { + IFC42.IfcPcurve = IfcPcurve; + class IfcPlanarBox extends IfcPlanarExtent { + constructor(SizeInX, SizeInY, Placement) { + super(SizeInX, SizeInY); + this.SizeInX = SizeInX; + this.SizeInY = SizeInY; + this.Placement = Placement; + this.type = 603570806; + } } - IfcDoorStyleOperationEnum.SINGLE_SWING_LEFT = { type: 3, value: "SINGLE_SWING_LEFT" }; - IfcDoorStyleOperationEnum.SINGLE_SWING_RIGHT = { type: 3, value: "SINGLE_SWING_RIGHT" }; - IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING" }; - IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT" }; - IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT" }; - IfcDoorStyleOperationEnum.DOUBLE_SWING_LEFT = { type: 3, value: "DOUBLE_SWING_LEFT" }; - IfcDoorStyleOperationEnum.DOUBLE_SWING_RIGHT = { type: 3, value: "DOUBLE_SWING_RIGHT" }; - IfcDoorStyleOperationEnum.DOUBLE_DOOR_DOUBLE_SWING = { type: 3, value: "DOUBLE_DOOR_DOUBLE_SWING" }; - IfcDoorStyleOperationEnum.SLIDING_TO_LEFT = { type: 3, value: "SLIDING_TO_LEFT" }; - IfcDoorStyleOperationEnum.SLIDING_TO_RIGHT = { type: 3, value: "SLIDING_TO_RIGHT" }; - IfcDoorStyleOperationEnum.DOUBLE_DOOR_SLIDING = { type: 3, value: "DOUBLE_DOOR_SLIDING" }; - IfcDoorStyleOperationEnum.FOLDING_TO_LEFT = { type: 3, value: "FOLDING_TO_LEFT" }; - IfcDoorStyleOperationEnum.FOLDING_TO_RIGHT = { type: 3, value: "FOLDING_TO_RIGHT" }; - IfcDoorStyleOperationEnum.DOUBLE_DOOR_FOLDING = { type: 3, value: "DOUBLE_DOOR_FOLDING" }; - IfcDoorStyleOperationEnum.REVOLVING = { type: 3, value: "REVOLVING" }; - IfcDoorStyleOperationEnum.ROLLINGUP = { type: 3, value: "ROLLINGUP" }; - IfcDoorStyleOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDoorStyleOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcDoorStyleOperationEnum = IfcDoorStyleOperationEnum; - class IfcDoorTypeEnum { + IFC42.IfcPlanarBox = IfcPlanarBox; + class IfcPlane extends IfcElementarySurface { + constructor(Position) { + super(Position); + this.Position = Position; + this.type = 220341763; + } } - IfcDoorTypeEnum.DOOR = { type: 3, value: "DOOR" }; - IfcDoorTypeEnum.GATE = { type: 3, value: "GATE" }; - IfcDoorTypeEnum.TRAPDOOR = { type: 3, value: "TRAPDOOR" }; - IfcDoorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDoorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcDoorTypeEnum = IfcDoorTypeEnum; - class IfcDoorTypeOperationEnum { + IFC42.IfcPlane = IfcPlane; + class IfcPreDefinedColour extends IfcPreDefinedItem { + constructor(Name) { + super(Name); + this.Name = Name; + this.type = 759155922; + } } - IfcDoorTypeOperationEnum.SINGLE_SWING_LEFT = { type: 3, value: "SINGLE_SWING_LEFT" }; - IfcDoorTypeOperationEnum.SINGLE_SWING_RIGHT = { type: 3, value: "SINGLE_SWING_RIGHT" }; - IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING" }; - IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT" }; - IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT" }; - IfcDoorTypeOperationEnum.DOUBLE_SWING_LEFT = { type: 3, value: "DOUBLE_SWING_LEFT" }; - IfcDoorTypeOperationEnum.DOUBLE_SWING_RIGHT = { type: 3, value: "DOUBLE_SWING_RIGHT" }; - IfcDoorTypeOperationEnum.DOUBLE_DOOR_DOUBLE_SWING = { type: 3, value: "DOUBLE_DOOR_DOUBLE_SWING" }; - IfcDoorTypeOperationEnum.SLIDING_TO_LEFT = { type: 3, value: "SLIDING_TO_LEFT" }; - IfcDoorTypeOperationEnum.SLIDING_TO_RIGHT = { type: 3, value: "SLIDING_TO_RIGHT" }; - IfcDoorTypeOperationEnum.DOUBLE_DOOR_SLIDING = { type: 3, value: "DOUBLE_DOOR_SLIDING" }; - IfcDoorTypeOperationEnum.FOLDING_TO_LEFT = { type: 3, value: "FOLDING_TO_LEFT" }; - IfcDoorTypeOperationEnum.FOLDING_TO_RIGHT = { type: 3, value: "FOLDING_TO_RIGHT" }; - IfcDoorTypeOperationEnum.DOUBLE_DOOR_FOLDING = { type: 3, value: "DOUBLE_DOOR_FOLDING" }; - IfcDoorTypeOperationEnum.REVOLVING = { type: 3, value: "REVOLVING" }; - IfcDoorTypeOperationEnum.ROLLINGUP = { type: 3, value: "ROLLINGUP" }; - IfcDoorTypeOperationEnum.SWING_FIXED_LEFT = { type: 3, value: "SWING_FIXED_LEFT" }; - IfcDoorTypeOperationEnum.SWING_FIXED_RIGHT = { type: 3, value: "SWING_FIXED_RIGHT" }; - IfcDoorTypeOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDoorTypeOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcDoorTypeOperationEnum = IfcDoorTypeOperationEnum; - class IfcDuctFittingTypeEnum { + IFC42.IfcPreDefinedColour = IfcPreDefinedColour; + class IfcPreDefinedCurveFont extends IfcPreDefinedItem { + constructor(Name) { + super(Name); + this.Name = Name; + this.type = 2559016684; + } } - IfcDuctFittingTypeEnum.BEND = { type: 3, value: "BEND" }; - IfcDuctFittingTypeEnum.CONNECTOR = { type: 3, value: "CONNECTOR" }; - IfcDuctFittingTypeEnum.ENTRY = { type: 3, value: "ENTRY" }; - IfcDuctFittingTypeEnum.EXIT = { type: 3, value: "EXIT" }; - IfcDuctFittingTypeEnum.JUNCTION = { type: 3, value: "JUNCTION" }; - IfcDuctFittingTypeEnum.OBSTRUCTION = { type: 3, value: "OBSTRUCTION" }; - IfcDuctFittingTypeEnum.TRANSITION = { type: 3, value: "TRANSITION" }; - IfcDuctFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDuctFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcDuctFittingTypeEnum = IfcDuctFittingTypeEnum; - class IfcDuctSegmentTypeEnum { + IFC42.IfcPreDefinedCurveFont = IfcPreDefinedCurveFont; + class IfcPreDefinedPropertySet extends IfcPropertySetDefinition { + constructor(GlobalId, OwnerHistory, Name, Description) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.type = 3967405729; + } } - IfcDuctSegmentTypeEnum.RIGIDSEGMENT = { type: 3, value: "RIGIDSEGMENT" }; - IfcDuctSegmentTypeEnum.FLEXIBLESEGMENT = { type: 3, value: "FLEXIBLESEGMENT" }; - IfcDuctSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDuctSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcDuctSegmentTypeEnum = IfcDuctSegmentTypeEnum; - class IfcDuctSilencerTypeEnum { + IFC42.IfcPreDefinedPropertySet = IfcPreDefinedPropertySet; + class IfcProcedureType extends IfcTypeProcess { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.ProcessType = ProcessType; + this.PredefinedType = PredefinedType; + this.type = 569719735; + } } - IfcDuctSilencerTypeEnum.FLATOVAL = { type: 3, value: "FLATOVAL" }; - IfcDuctSilencerTypeEnum.RECTANGULAR = { type: 3, value: "RECTANGULAR" }; - IfcDuctSilencerTypeEnum.ROUND = { type: 3, value: "ROUND" }; - IfcDuctSilencerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDuctSilencerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcDuctSilencerTypeEnum = IfcDuctSilencerTypeEnum; - class IfcElectricApplianceTypeEnum { + IFC42.IfcProcedureType = IfcProcedureType; + class IfcProcess extends IfcObject { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.type = 2945172077; + } } - IfcElectricApplianceTypeEnum.DISHWASHER = { type: 3, value: "DISHWASHER" }; - IfcElectricApplianceTypeEnum.ELECTRICCOOKER = { type: 3, value: "ELECTRICCOOKER" }; - IfcElectricApplianceTypeEnum.FREESTANDINGELECTRICHEATER = { type: 3, value: "FREESTANDINGELECTRICHEATER" }; - IfcElectricApplianceTypeEnum.FREESTANDINGFAN = { type: 3, value: "FREESTANDINGFAN" }; - IfcElectricApplianceTypeEnum.FREESTANDINGWATERHEATER = { type: 3, value: "FREESTANDINGWATERHEATER" }; - IfcElectricApplianceTypeEnum.FREESTANDINGWATERCOOLER = { type: 3, value: "FREESTANDINGWATERCOOLER" }; - IfcElectricApplianceTypeEnum.FREEZER = { type: 3, value: "FREEZER" }; - IfcElectricApplianceTypeEnum.FRIDGE_FREEZER = { type: 3, value: "FRIDGE_FREEZER" }; - IfcElectricApplianceTypeEnum.HANDDRYER = { type: 3, value: "HANDDRYER" }; - IfcElectricApplianceTypeEnum.KITCHENMACHINE = { type: 3, value: "KITCHENMACHINE" }; - IfcElectricApplianceTypeEnum.MICROWAVE = { type: 3, value: "MICROWAVE" }; - IfcElectricApplianceTypeEnum.PHOTOCOPIER = { type: 3, value: "PHOTOCOPIER" }; - IfcElectricApplianceTypeEnum.REFRIGERATOR = { type: 3, value: "REFRIGERATOR" }; - IfcElectricApplianceTypeEnum.TUMBLEDRYER = { type: 3, value: "TUMBLEDRYER" }; - IfcElectricApplianceTypeEnum.VENDINGMACHINE = { type: 3, value: "VENDINGMACHINE" }; - IfcElectricApplianceTypeEnum.WASHINGMACHINE = { type: 3, value: "WASHINGMACHINE" }; - IfcElectricApplianceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcElectricApplianceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcElectricApplianceTypeEnum = IfcElectricApplianceTypeEnum; - class IfcElectricDistributionBoardTypeEnum { + IFC42.IfcProcess = IfcProcess; + class IfcProduct extends IfcObject { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.type = 4208778838; + } } - IfcElectricDistributionBoardTypeEnum.CONSUMERUNIT = { type: 3, value: "CONSUMERUNIT" }; - IfcElectricDistributionBoardTypeEnum.DISTRIBUTIONBOARD = { type: 3, value: "DISTRIBUTIONBOARD" }; - IfcElectricDistributionBoardTypeEnum.MOTORCONTROLCENTRE = { type: 3, value: "MOTORCONTROLCENTRE" }; - IfcElectricDistributionBoardTypeEnum.SWITCHBOARD = { type: 3, value: "SWITCHBOARD" }; - IfcElectricDistributionBoardTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcElectricDistributionBoardTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcElectricDistributionBoardTypeEnum = IfcElectricDistributionBoardTypeEnum; - class IfcElectricFlowStorageDeviceTypeEnum { + IFC42.IfcProduct = IfcProduct; + class IfcProject extends IfcContext { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.LongName = LongName; + this.Phase = Phase; + this.RepresentationContexts = RepresentationContexts; + this.UnitsInContext = UnitsInContext; + this.type = 103090709; + } } - IfcElectricFlowStorageDeviceTypeEnum.BATTERY = { type: 3, value: "BATTERY" }; - IfcElectricFlowStorageDeviceTypeEnum.CAPACITORBANK = { type: 3, value: "CAPACITORBANK" }; - IfcElectricFlowStorageDeviceTypeEnum.HARMONICFILTER = { type: 3, value: "HARMONICFILTER" }; - IfcElectricFlowStorageDeviceTypeEnum.INDUCTORBANK = { type: 3, value: "INDUCTORBANK" }; - IfcElectricFlowStorageDeviceTypeEnum.UPS = { type: 3, value: "UPS" }; - IfcElectricFlowStorageDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcElectricFlowStorageDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcElectricFlowStorageDeviceTypeEnum = IfcElectricFlowStorageDeviceTypeEnum; - class IfcElectricGeneratorTypeEnum { + IFC42.IfcProject = IfcProject; + class IfcProjectLibrary extends IfcContext { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.LongName = LongName; + this.Phase = Phase; + this.RepresentationContexts = RepresentationContexts; + this.UnitsInContext = UnitsInContext; + this.type = 653396225; + } } - IfcElectricGeneratorTypeEnum.CHP = { type: 3, value: "CHP" }; - IfcElectricGeneratorTypeEnum.ENGINEGENERATOR = { type: 3, value: "ENGINEGENERATOR" }; - IfcElectricGeneratorTypeEnum.STANDALONE = { type: 3, value: "STANDALONE" }; - IfcElectricGeneratorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcElectricGeneratorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcElectricGeneratorTypeEnum = IfcElectricGeneratorTypeEnum; - class IfcElectricMotorTypeEnum { + IFC42.IfcProjectLibrary = IfcProjectLibrary; + class IfcPropertyBoundedValue extends IfcSimpleProperty { + constructor(Name, Description, UpperBoundValue, LowerBoundValue, Unit, SetPointValue) { + super(Name, Description); + this.Name = Name; + this.Description = Description; + this.UpperBoundValue = UpperBoundValue; + this.LowerBoundValue = LowerBoundValue; + this.Unit = Unit; + this.SetPointValue = SetPointValue; + this.type = 871118103; + } } - IfcElectricMotorTypeEnum.DC = { type: 3, value: "DC" }; - IfcElectricMotorTypeEnum.INDUCTION = { type: 3, value: "INDUCTION" }; - IfcElectricMotorTypeEnum.POLYPHASE = { type: 3, value: "POLYPHASE" }; - IfcElectricMotorTypeEnum.RELUCTANCESYNCHRONOUS = { type: 3, value: "RELUCTANCESYNCHRONOUS" }; - IfcElectricMotorTypeEnum.SYNCHRONOUS = { type: 3, value: "SYNCHRONOUS" }; - IfcElectricMotorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcElectricMotorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcElectricMotorTypeEnum = IfcElectricMotorTypeEnum; - class IfcElectricTimeControlTypeEnum { + IFC42.IfcPropertyBoundedValue = IfcPropertyBoundedValue; + class IfcPropertyEnumeratedValue extends IfcSimpleProperty { + constructor(Name, Description, EnumerationValues, EnumerationReference) { + super(Name, Description); + this.Name = Name; + this.Description = Description; + this.EnumerationValues = EnumerationValues; + this.EnumerationReference = EnumerationReference; + this.type = 4166981789; + } } - IfcElectricTimeControlTypeEnum.TIMECLOCK = { type: 3, value: "TIMECLOCK" }; - IfcElectricTimeControlTypeEnum.TIMEDELAY = { type: 3, value: "TIMEDELAY" }; - IfcElectricTimeControlTypeEnum.RELAY = { type: 3, value: "RELAY" }; - IfcElectricTimeControlTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcElectricTimeControlTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcElectricTimeControlTypeEnum = IfcElectricTimeControlTypeEnum; - class IfcElementAssemblyTypeEnum { + IFC42.IfcPropertyEnumeratedValue = IfcPropertyEnumeratedValue; + class IfcPropertyListValue extends IfcSimpleProperty { + constructor(Name, Description, ListValues, Unit) { + super(Name, Description); + this.Name = Name; + this.Description = Description; + this.ListValues = ListValues; + this.Unit = Unit; + this.type = 2752243245; + } } - IfcElementAssemblyTypeEnum.ACCESSORY_ASSEMBLY = { type: 3, value: "ACCESSORY_ASSEMBLY" }; - IfcElementAssemblyTypeEnum.ARCH = { type: 3, value: "ARCH" }; - IfcElementAssemblyTypeEnum.BEAM_GRID = { type: 3, value: "BEAM_GRID" }; - IfcElementAssemblyTypeEnum.BRACED_FRAME = { type: 3, value: "BRACED_FRAME" }; - IfcElementAssemblyTypeEnum.GIRDER = { type: 3, value: "GIRDER" }; - IfcElementAssemblyTypeEnum.REINFORCEMENT_UNIT = { type: 3, value: "REINFORCEMENT_UNIT" }; - IfcElementAssemblyTypeEnum.RIGID_FRAME = { type: 3, value: "RIGID_FRAME" }; - IfcElementAssemblyTypeEnum.SLAB_FIELD = { type: 3, value: "SLAB_FIELD" }; - IfcElementAssemblyTypeEnum.TRUSS = { type: 3, value: "TRUSS" }; - IfcElementAssemblyTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcElementAssemblyTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcElementAssemblyTypeEnum = IfcElementAssemblyTypeEnum; - class IfcElementCompositionEnum { + IFC42.IfcPropertyListValue = IfcPropertyListValue; + class IfcPropertyReferenceValue extends IfcSimpleProperty { + constructor(Name, Description, UsageName, PropertyReference) { + super(Name, Description); + this.Name = Name; + this.Description = Description; + this.UsageName = UsageName; + this.PropertyReference = PropertyReference; + this.type = 941946838; + } } - IfcElementCompositionEnum.COMPLEX = { type: 3, value: "COMPLEX" }; - IfcElementCompositionEnum.ELEMENT = { type: 3, value: "ELEMENT" }; - IfcElementCompositionEnum.PARTIAL = { type: 3, value: "PARTIAL" }; - IFC42.IfcElementCompositionEnum = IfcElementCompositionEnum; - class IfcEngineTypeEnum { + IFC42.IfcPropertyReferenceValue = IfcPropertyReferenceValue; + class IfcPropertySet extends IfcPropertySetDefinition { + constructor(GlobalId, OwnerHistory, Name, Description, HasProperties) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.HasProperties = HasProperties; + this.type = 1451395588; + } } - IfcEngineTypeEnum.EXTERNALCOMBUSTION = { type: 3, value: "EXTERNALCOMBUSTION" }; - IfcEngineTypeEnum.INTERNALCOMBUSTION = { type: 3, value: "INTERNALCOMBUSTION" }; - IfcEngineTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcEngineTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcEngineTypeEnum = IfcEngineTypeEnum; - class IfcEvaporativeCoolerTypeEnum { + IFC42.IfcPropertySet = IfcPropertySet; + class IfcPropertySetTemplate extends IfcPropertyTemplateDefinition { + constructor(GlobalId, OwnerHistory, Name, Description, TemplateType, ApplicableEntity, HasPropertyTemplates) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.TemplateType = TemplateType; + this.ApplicableEntity = ApplicableEntity; + this.HasPropertyTemplates = HasPropertyTemplates; + this.type = 492091185; + } } - IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER" }; - IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER" }; - IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER" }; - IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER" }; - IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEAIRWASHER = { type: 3, value: "DIRECTEVAPORATIVEAIRWASHER" }; - IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEPACKAGEAIRCOOLER = { type: 3, value: "INDIRECTEVAPORATIVEPACKAGEAIRCOOLER" }; - IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEWETCOIL = { type: 3, value: "INDIRECTEVAPORATIVEWETCOIL" }; - IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER = { type: 3, value: "INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER" }; - IfcEvaporativeCoolerTypeEnum.INDIRECTDIRECTCOMBINATION = { type: 3, value: "INDIRECTDIRECTCOMBINATION" }; - IfcEvaporativeCoolerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcEvaporativeCoolerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcEvaporativeCoolerTypeEnum = IfcEvaporativeCoolerTypeEnum; - class IfcEvaporatorTypeEnum { + IFC42.IfcPropertySetTemplate = IfcPropertySetTemplate; + class IfcPropertySingleValue extends IfcSimpleProperty { + constructor(Name, Description, NominalValue, Unit) { + super(Name, Description); + this.Name = Name; + this.Description = Description; + this.NominalValue = NominalValue; + this.Unit = Unit; + this.type = 3650150729; + } } - IfcEvaporatorTypeEnum.DIRECTEXPANSION = { type: 3, value: "DIRECTEXPANSION" }; - IfcEvaporatorTypeEnum.DIRECTEXPANSIONSHELLANDTUBE = { type: 3, value: "DIRECTEXPANSIONSHELLANDTUBE" }; - IfcEvaporatorTypeEnum.DIRECTEXPANSIONTUBEINTUBE = { type: 3, value: "DIRECTEXPANSIONTUBEINTUBE" }; - IfcEvaporatorTypeEnum.DIRECTEXPANSIONBRAZEDPLATE = { type: 3, value: "DIRECTEXPANSIONBRAZEDPLATE" }; - IfcEvaporatorTypeEnum.FLOODEDSHELLANDTUBE = { type: 3, value: "FLOODEDSHELLANDTUBE" }; - IfcEvaporatorTypeEnum.SHELLANDCOIL = { type: 3, value: "SHELLANDCOIL" }; - IfcEvaporatorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcEvaporatorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcEvaporatorTypeEnum = IfcEvaporatorTypeEnum; - class IfcEventTriggerTypeEnum { + IFC42.IfcPropertySingleValue = IfcPropertySingleValue; + class IfcPropertyTableValue extends IfcSimpleProperty { + constructor(Name, Description, DefiningValues, DefinedValues, Expression, DefiningUnit, DefinedUnit, CurveInterpolation) { + super(Name, Description); + this.Name = Name; + this.Description = Description; + this.DefiningValues = DefiningValues; + this.DefinedValues = DefinedValues; + this.Expression = Expression; + this.DefiningUnit = DefiningUnit; + this.DefinedUnit = DefinedUnit; + this.CurveInterpolation = CurveInterpolation; + this.type = 110355661; + } } - IfcEventTriggerTypeEnum.EVENTRULE = { type: 3, value: "EVENTRULE" }; - IfcEventTriggerTypeEnum.EVENTMESSAGE = { type: 3, value: "EVENTMESSAGE" }; - IfcEventTriggerTypeEnum.EVENTTIME = { type: 3, value: "EVENTTIME" }; - IfcEventTriggerTypeEnum.EVENTCOMPLEX = { type: 3, value: "EVENTCOMPLEX" }; - IfcEventTriggerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcEventTriggerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcEventTriggerTypeEnum = IfcEventTriggerTypeEnum; - class IfcEventTypeEnum { + IFC42.IfcPropertyTableValue = IfcPropertyTableValue; + class IfcPropertyTemplate extends IfcPropertyTemplateDefinition { + constructor(GlobalId, OwnerHistory, Name, Description) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.type = 3521284610; + } + } + IFC42.IfcPropertyTemplate = IfcPropertyTemplate; + class IfcProxy extends IfcProduct { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, ProxyType, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.ProxyType = ProxyType; + this.Tag = Tag; + this.type = 3219374653; + } + } + IFC42.IfcProxy = IfcProxy; + class IfcRectangleHollowProfileDef extends IfcRectangleProfileDef { + constructor(ProfileType, ProfileName, Position, XDim, YDim, WallThickness, InnerFilletRadius, OuterFilletRadius) { + super(ProfileType, ProfileName, Position, XDim, YDim); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.XDim = XDim; + this.YDim = YDim; + this.WallThickness = WallThickness; + this.InnerFilletRadius = InnerFilletRadius; + this.OuterFilletRadius = OuterFilletRadius; + this.type = 2770003689; + } } - IfcEventTypeEnum.STARTEVENT = { type: 3, value: "STARTEVENT" }; - IfcEventTypeEnum.ENDEVENT = { type: 3, value: "ENDEVENT" }; - IfcEventTypeEnum.INTERMEDIATEEVENT = { type: 3, value: "INTERMEDIATEEVENT" }; - IfcEventTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcEventTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcEventTypeEnum = IfcEventTypeEnum; - class IfcExternalSpatialElementTypeEnum { + IFC42.IfcRectangleHollowProfileDef = IfcRectangleHollowProfileDef; + class IfcRectangularPyramid extends IfcCsgPrimitive3D { + constructor(Position, XLength, YLength, Height) { + super(Position); + this.Position = Position; + this.XLength = XLength; + this.YLength = YLength; + this.Height = Height; + this.type = 2798486643; + } } - IfcExternalSpatialElementTypeEnum.EXTERNAL = { type: 3, value: "EXTERNAL" }; - IfcExternalSpatialElementTypeEnum.EXTERNAL_EARTH = { type: 3, value: "EXTERNAL_EARTH" }; - IfcExternalSpatialElementTypeEnum.EXTERNAL_WATER = { type: 3, value: "EXTERNAL_WATER" }; - IfcExternalSpatialElementTypeEnum.EXTERNAL_FIRE = { type: 3, value: "EXTERNAL_FIRE" }; - IfcExternalSpatialElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcExternalSpatialElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcExternalSpatialElementTypeEnum = IfcExternalSpatialElementTypeEnum; - class IfcFanTypeEnum { + IFC42.IfcRectangularPyramid = IfcRectangularPyramid; + class IfcRectangularTrimmedSurface extends IfcBoundedSurface { + constructor(BasisSurface, U1, V1, U2, V2, Usense, Vsense) { + super(); + this.BasisSurface = BasisSurface; + this.U1 = U1; + this.V1 = V1; + this.U2 = U2; + this.V2 = V2; + this.Usense = Usense; + this.Vsense = Vsense; + this.type = 3454111270; + } } - IfcFanTypeEnum.CENTRIFUGALFORWARDCURVED = { type: 3, value: "CENTRIFUGALFORWARDCURVED" }; - IfcFanTypeEnum.CENTRIFUGALRADIAL = { type: 3, value: "CENTRIFUGALRADIAL" }; - IfcFanTypeEnum.CENTRIFUGALBACKWARDINCLINEDCURVED = { type: 3, value: "CENTRIFUGALBACKWARDINCLINEDCURVED" }; - IfcFanTypeEnum.CENTRIFUGALAIRFOIL = { type: 3, value: "CENTRIFUGALAIRFOIL" }; - IfcFanTypeEnum.TUBEAXIAL = { type: 3, value: "TUBEAXIAL" }; - IfcFanTypeEnum.VANEAXIAL = { type: 3, value: "VANEAXIAL" }; - IfcFanTypeEnum.PROPELLORAXIAL = { type: 3, value: "PROPELLORAXIAL" }; - IfcFanTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcFanTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcFanTypeEnum = IfcFanTypeEnum; - class IfcFastenerTypeEnum { + IFC42.IfcRectangularTrimmedSurface = IfcRectangularTrimmedSurface; + class IfcReinforcementDefinitionProperties extends IfcPreDefinedPropertySet { + constructor(GlobalId, OwnerHistory, Name, Description, DefinitionType, ReinforcementSectionDefinitions) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.DefinitionType = DefinitionType; + this.ReinforcementSectionDefinitions = ReinforcementSectionDefinitions; + this.type = 3765753017; + } } - IfcFastenerTypeEnum.GLUE = { type: 3, value: "GLUE" }; - IfcFastenerTypeEnum.MORTAR = { type: 3, value: "MORTAR" }; - IfcFastenerTypeEnum.WELD = { type: 3, value: "WELD" }; - IfcFastenerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcFastenerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcFastenerTypeEnum = IfcFastenerTypeEnum; - class IfcFilterTypeEnum { + IFC42.IfcReinforcementDefinitionProperties = IfcReinforcementDefinitionProperties; + class IfcRelAssigns extends IfcRelationship { + constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatedObjectsType = RelatedObjectsType; + this.type = 3939117080; + } } - IfcFilterTypeEnum.AIRPARTICLEFILTER = { type: 3, value: "AIRPARTICLEFILTER" }; - IfcFilterTypeEnum.COMPRESSEDAIRFILTER = { type: 3, value: "COMPRESSEDAIRFILTER" }; - IfcFilterTypeEnum.ODORFILTER = { type: 3, value: "ODORFILTER" }; - IfcFilterTypeEnum.OILFILTER = { type: 3, value: "OILFILTER" }; - IfcFilterTypeEnum.STRAINER = { type: 3, value: "STRAINER" }; - IfcFilterTypeEnum.WATERFILTER = { type: 3, value: "WATERFILTER" }; - IfcFilterTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcFilterTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcFilterTypeEnum = IfcFilterTypeEnum; - class IfcFireSuppressionTerminalTypeEnum { + IFC42.IfcRelAssigns = IfcRelAssigns; + class IfcRelAssignsToActor extends IfcRelAssigns { + constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingActor, ActingRole) { + super(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatedObjectsType = RelatedObjectsType; + this.RelatingActor = RelatingActor; + this.ActingRole = ActingRole; + this.type = 1683148259; + } } - IfcFireSuppressionTerminalTypeEnum.BREECHINGINLET = { type: 3, value: "BREECHINGINLET" }; - IfcFireSuppressionTerminalTypeEnum.FIREHYDRANT = { type: 3, value: "FIREHYDRANT" }; - IfcFireSuppressionTerminalTypeEnum.HOSEREEL = { type: 3, value: "HOSEREEL" }; - IfcFireSuppressionTerminalTypeEnum.SPRINKLER = { type: 3, value: "SPRINKLER" }; - IfcFireSuppressionTerminalTypeEnum.SPRINKLERDEFLECTOR = { type: 3, value: "SPRINKLERDEFLECTOR" }; - IfcFireSuppressionTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcFireSuppressionTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcFireSuppressionTerminalTypeEnum = IfcFireSuppressionTerminalTypeEnum; - class IfcFlowDirectionEnum { + IFC42.IfcRelAssignsToActor = IfcRelAssignsToActor; + class IfcRelAssignsToControl extends IfcRelAssigns { + constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl) { + super(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatedObjectsType = RelatedObjectsType; + this.RelatingControl = RelatingControl; + this.type = 2495723537; + } } - IfcFlowDirectionEnum.SOURCE = { type: 3, value: "SOURCE" }; - IfcFlowDirectionEnum.SINK = { type: 3, value: "SINK" }; - IfcFlowDirectionEnum.SOURCEANDSINK = { type: 3, value: "SOURCEANDSINK" }; - IfcFlowDirectionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcFlowDirectionEnum = IfcFlowDirectionEnum; - class IfcFlowInstrumentTypeEnum { + IFC42.IfcRelAssignsToControl = IfcRelAssignsToControl; + class IfcRelAssignsToGroup extends IfcRelAssigns { + constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingGroup) { + super(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatedObjectsType = RelatedObjectsType; + this.RelatingGroup = RelatingGroup; + this.type = 1307041759; + } } - IfcFlowInstrumentTypeEnum.PRESSUREGAUGE = { type: 3, value: "PRESSUREGAUGE" }; - IfcFlowInstrumentTypeEnum.THERMOMETER = { type: 3, value: "THERMOMETER" }; - IfcFlowInstrumentTypeEnum.AMMETER = { type: 3, value: "AMMETER" }; - IfcFlowInstrumentTypeEnum.FREQUENCYMETER = { type: 3, value: "FREQUENCYMETER" }; - IfcFlowInstrumentTypeEnum.POWERFACTORMETER = { type: 3, value: "POWERFACTORMETER" }; - IfcFlowInstrumentTypeEnum.PHASEANGLEMETER = { type: 3, value: "PHASEANGLEMETER" }; - IfcFlowInstrumentTypeEnum.VOLTMETER_PEAK = { type: 3, value: "VOLTMETER_PEAK" }; - IfcFlowInstrumentTypeEnum.VOLTMETER_RMS = { type: 3, value: "VOLTMETER_RMS" }; - IfcFlowInstrumentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcFlowInstrumentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcFlowInstrumentTypeEnum = IfcFlowInstrumentTypeEnum; - class IfcFlowMeterTypeEnum { + IFC42.IfcRelAssignsToGroup = IfcRelAssignsToGroup; + class IfcRelAssignsToGroupByFactor extends IfcRelAssignsToGroup { + constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingGroup, Factor) { + super(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingGroup); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatedObjectsType = RelatedObjectsType; + this.RelatingGroup = RelatingGroup; + this.Factor = Factor; + this.type = 1027710054; + } } - IfcFlowMeterTypeEnum.ENERGYMETER = { type: 3, value: "ENERGYMETER" }; - IfcFlowMeterTypeEnum.GASMETER = { type: 3, value: "GASMETER" }; - IfcFlowMeterTypeEnum.OILMETER = { type: 3, value: "OILMETER" }; - IfcFlowMeterTypeEnum.WATERMETER = { type: 3, value: "WATERMETER" }; - IfcFlowMeterTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcFlowMeterTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcFlowMeterTypeEnum = IfcFlowMeterTypeEnum; - class IfcFootingTypeEnum { + IFC42.IfcRelAssignsToGroupByFactor = IfcRelAssignsToGroupByFactor; + class IfcRelAssignsToProcess extends IfcRelAssigns { + constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingProcess, QuantityInProcess) { + super(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatedObjectsType = RelatedObjectsType; + this.RelatingProcess = RelatingProcess; + this.QuantityInProcess = QuantityInProcess; + this.type = 4278684876; + } } - IfcFootingTypeEnum.CAISSON_FOUNDATION = { type: 3, value: "CAISSON_FOUNDATION" }; - IfcFootingTypeEnum.FOOTING_BEAM = { type: 3, value: "FOOTING_BEAM" }; - IfcFootingTypeEnum.PAD_FOOTING = { type: 3, value: "PAD_FOOTING" }; - IfcFootingTypeEnum.PILE_CAP = { type: 3, value: "PILE_CAP" }; - IfcFootingTypeEnum.STRIP_FOOTING = { type: 3, value: "STRIP_FOOTING" }; - IfcFootingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcFootingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcFootingTypeEnum = IfcFootingTypeEnum; - class IfcFurnitureTypeEnum { + IFC42.IfcRelAssignsToProcess = IfcRelAssignsToProcess; + class IfcRelAssignsToProduct extends IfcRelAssigns { + constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingProduct) { + super(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatedObjectsType = RelatedObjectsType; + this.RelatingProduct = RelatingProduct; + this.type = 2857406711; + } } - IfcFurnitureTypeEnum.CHAIR = { type: 3, value: "CHAIR" }; - IfcFurnitureTypeEnum.TABLE = { type: 3, value: "TABLE" }; - IfcFurnitureTypeEnum.DESK = { type: 3, value: "DESK" }; - IfcFurnitureTypeEnum.BED = { type: 3, value: "BED" }; - IfcFurnitureTypeEnum.FILECABINET = { type: 3, value: "FILECABINET" }; - IfcFurnitureTypeEnum.SHELF = { type: 3, value: "SHELF" }; - IfcFurnitureTypeEnum.SOFA = { type: 3, value: "SOFA" }; - IfcFurnitureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcFurnitureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcFurnitureTypeEnum = IfcFurnitureTypeEnum; - class IfcGeographicElementTypeEnum { + IFC42.IfcRelAssignsToProduct = IfcRelAssignsToProduct; + class IfcRelAssignsToResource extends IfcRelAssigns { + constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingResource) { + super(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatedObjectsType = RelatedObjectsType; + this.RelatingResource = RelatingResource; + this.type = 205026976; + } } - IfcGeographicElementTypeEnum.TERRAIN = { type: 3, value: "TERRAIN" }; - IfcGeographicElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcGeographicElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcGeographicElementTypeEnum = IfcGeographicElementTypeEnum; - class IfcGeometricProjectionEnum { + IFC42.IfcRelAssignsToResource = IfcRelAssignsToResource; + class IfcRelAssociates extends IfcRelationship { + constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.type = 1865459582; + } } - IfcGeometricProjectionEnum.GRAPH_VIEW = { type: 3, value: "GRAPH_VIEW" }; - IfcGeometricProjectionEnum.SKETCH_VIEW = { type: 3, value: "SKETCH_VIEW" }; - IfcGeometricProjectionEnum.MODEL_VIEW = { type: 3, value: "MODEL_VIEW" }; - IfcGeometricProjectionEnum.PLAN_VIEW = { type: 3, value: "PLAN_VIEW" }; - IfcGeometricProjectionEnum.REFLECTED_PLAN_VIEW = { type: 3, value: "REFLECTED_PLAN_VIEW" }; - IfcGeometricProjectionEnum.SECTION_VIEW = { type: 3, value: "SECTION_VIEW" }; - IfcGeometricProjectionEnum.ELEVATION_VIEW = { type: 3, value: "ELEVATION_VIEW" }; - IfcGeometricProjectionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcGeometricProjectionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcGeometricProjectionEnum = IfcGeometricProjectionEnum; - class IfcGlobalOrLocalEnum { + IFC42.IfcRelAssociates = IfcRelAssociates; + class IfcRelAssociatesApproval extends IfcRelAssociates { + constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingApproval) { + super(GlobalId, OwnerHistory, Name, Description, RelatedObjects); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatingApproval = RelatingApproval; + this.type = 4095574036; + } } - IfcGlobalOrLocalEnum.GLOBAL_COORDS = { type: 3, value: "GLOBAL_COORDS" }; - IfcGlobalOrLocalEnum.LOCAL_COORDS = { type: 3, value: "LOCAL_COORDS" }; - IFC42.IfcGlobalOrLocalEnum = IfcGlobalOrLocalEnum; - class IfcGridTypeEnum { + IFC42.IfcRelAssociatesApproval = IfcRelAssociatesApproval; + class IfcRelAssociatesClassification extends IfcRelAssociates { + constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingClassification) { + super(GlobalId, OwnerHistory, Name, Description, RelatedObjects); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatingClassification = RelatingClassification; + this.type = 919958153; + } } - IfcGridTypeEnum.RECTANGULAR = { type: 3, value: "RECTANGULAR" }; - IfcGridTypeEnum.RADIAL = { type: 3, value: "RADIAL" }; - IfcGridTypeEnum.TRIANGULAR = { type: 3, value: "TRIANGULAR" }; - IfcGridTypeEnum.IRREGULAR = { type: 3, value: "IRREGULAR" }; - IfcGridTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcGridTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcGridTypeEnum = IfcGridTypeEnum; - class IfcHeatExchangerTypeEnum { + IFC42.IfcRelAssociatesClassification = IfcRelAssociatesClassification; + class IfcRelAssociatesConstraint extends IfcRelAssociates { + constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, Intent, RelatingConstraint) { + super(GlobalId, OwnerHistory, Name, Description, RelatedObjects); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.Intent = Intent; + this.RelatingConstraint = RelatingConstraint; + this.type = 2728634034; + } } - IfcHeatExchangerTypeEnum.PLATE = { type: 3, value: "PLATE" }; - IfcHeatExchangerTypeEnum.SHELLANDTUBE = { type: 3, value: "SHELLANDTUBE" }; - IfcHeatExchangerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcHeatExchangerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcHeatExchangerTypeEnum = IfcHeatExchangerTypeEnum; - class IfcHumidifierTypeEnum { + IFC42.IfcRelAssociatesConstraint = IfcRelAssociatesConstraint; + class IfcRelAssociatesDocument extends IfcRelAssociates { + constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingDocument) { + super(GlobalId, OwnerHistory, Name, Description, RelatedObjects); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatingDocument = RelatingDocument; + this.type = 982818633; + } } - IfcHumidifierTypeEnum.STEAMINJECTION = { type: 3, value: "STEAMINJECTION" }; - IfcHumidifierTypeEnum.ADIABATICAIRWASHER = { type: 3, value: "ADIABATICAIRWASHER" }; - IfcHumidifierTypeEnum.ADIABATICPAN = { type: 3, value: "ADIABATICPAN" }; - IfcHumidifierTypeEnum.ADIABATICWETTEDELEMENT = { type: 3, value: "ADIABATICWETTEDELEMENT" }; - IfcHumidifierTypeEnum.ADIABATICATOMIZING = { type: 3, value: "ADIABATICATOMIZING" }; - IfcHumidifierTypeEnum.ADIABATICULTRASONIC = { type: 3, value: "ADIABATICULTRASONIC" }; - IfcHumidifierTypeEnum.ADIABATICRIGIDMEDIA = { type: 3, value: "ADIABATICRIGIDMEDIA" }; - IfcHumidifierTypeEnum.ADIABATICCOMPRESSEDAIRNOZZLE = { type: 3, value: "ADIABATICCOMPRESSEDAIRNOZZLE" }; - IfcHumidifierTypeEnum.ASSISTEDELECTRIC = { type: 3, value: "ASSISTEDELECTRIC" }; - IfcHumidifierTypeEnum.ASSISTEDNATURALGAS = { type: 3, value: "ASSISTEDNATURALGAS" }; - IfcHumidifierTypeEnum.ASSISTEDPROPANE = { type: 3, value: "ASSISTEDPROPANE" }; - IfcHumidifierTypeEnum.ASSISTEDBUTANE = { type: 3, value: "ASSISTEDBUTANE" }; - IfcHumidifierTypeEnum.ASSISTEDSTEAM = { type: 3, value: "ASSISTEDSTEAM" }; - IfcHumidifierTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcHumidifierTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcHumidifierTypeEnum = IfcHumidifierTypeEnum; - class IfcInterceptorTypeEnum { + IFC42.IfcRelAssociatesDocument = IfcRelAssociatesDocument; + class IfcRelAssociatesLibrary extends IfcRelAssociates { + constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingLibrary) { + super(GlobalId, OwnerHistory, Name, Description, RelatedObjects); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatingLibrary = RelatingLibrary; + this.type = 3840914261; + } } - IfcInterceptorTypeEnum.CYCLONIC = { type: 3, value: "CYCLONIC" }; - IfcInterceptorTypeEnum.GREASE = { type: 3, value: "GREASE" }; - IfcInterceptorTypeEnum.OIL = { type: 3, value: "OIL" }; - IfcInterceptorTypeEnum.PETROL = { type: 3, value: "PETROL" }; - IfcInterceptorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcInterceptorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcInterceptorTypeEnum = IfcInterceptorTypeEnum; - class IfcInternalOrExternalEnum { + IFC42.IfcRelAssociatesLibrary = IfcRelAssociatesLibrary; + class IfcRelAssociatesMaterial extends IfcRelAssociates { + constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingMaterial) { + super(GlobalId, OwnerHistory, Name, Description, RelatedObjects); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatingMaterial = RelatingMaterial; + this.type = 2655215786; + } } - IfcInternalOrExternalEnum.INTERNAL = { type: 3, value: "INTERNAL" }; - IfcInternalOrExternalEnum.EXTERNAL = { type: 3, value: "EXTERNAL" }; - IfcInternalOrExternalEnum.EXTERNAL_EARTH = { type: 3, value: "EXTERNAL_EARTH" }; - IfcInternalOrExternalEnum.EXTERNAL_WATER = { type: 3, value: "EXTERNAL_WATER" }; - IfcInternalOrExternalEnum.EXTERNAL_FIRE = { type: 3, value: "EXTERNAL_FIRE" }; - IfcInternalOrExternalEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcInternalOrExternalEnum = IfcInternalOrExternalEnum; - class IfcInventoryTypeEnum { + IFC42.IfcRelAssociatesMaterial = IfcRelAssociatesMaterial; + class IfcRelConnects extends IfcRelationship { + constructor(GlobalId, OwnerHistory, Name, Description) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.type = 826625072; + } } - IfcInventoryTypeEnum.ASSETINVENTORY = { type: 3, value: "ASSETINVENTORY" }; - IfcInventoryTypeEnum.SPACEINVENTORY = { type: 3, value: "SPACEINVENTORY" }; - IfcInventoryTypeEnum.FURNITUREINVENTORY = { type: 3, value: "FURNITUREINVENTORY" }; - IfcInventoryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcInventoryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcInventoryTypeEnum = IfcInventoryTypeEnum; - class IfcJunctionBoxTypeEnum { + IFC42.IfcRelConnects = IfcRelConnects; + class IfcRelConnectsElements extends IfcRelConnects { + constructor(GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ConnectionGeometry = ConnectionGeometry; + this.RelatingElement = RelatingElement; + this.RelatedElement = RelatedElement; + this.type = 1204542856; + } } - IfcJunctionBoxTypeEnum.DATA = { type: 3, value: "DATA" }; - IfcJunctionBoxTypeEnum.POWER = { type: 3, value: "POWER" }; - IfcJunctionBoxTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcJunctionBoxTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcJunctionBoxTypeEnum = IfcJunctionBoxTypeEnum; - class IfcKnotType { + IFC42.IfcRelConnectsElements = IfcRelConnectsElements; + class IfcRelConnectsPathElements extends IfcRelConnectsElements { + constructor(GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement, RelatingPriorities, RelatedPriorities, RelatedConnectionType, RelatingConnectionType) { + super(GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ConnectionGeometry = ConnectionGeometry; + this.RelatingElement = RelatingElement; + this.RelatedElement = RelatedElement; + this.RelatingPriorities = RelatingPriorities; + this.RelatedPriorities = RelatedPriorities; + this.RelatedConnectionType = RelatedConnectionType; + this.RelatingConnectionType = RelatingConnectionType; + this.type = 3945020480; + } } - IfcKnotType.UNIFORM_KNOTS = { type: 3, value: "UNIFORM_KNOTS" }; - IfcKnotType.QUASI_UNIFORM_KNOTS = { type: 3, value: "QUASI_UNIFORM_KNOTS" }; - IfcKnotType.PIECEWISE_BEZIER_KNOTS = { type: 3, value: "PIECEWISE_BEZIER_KNOTS" }; - IfcKnotType.UNSPECIFIED = { type: 3, value: "UNSPECIFIED" }; - IFC42.IfcKnotType = IfcKnotType; - class IfcLaborResourceTypeEnum { + IFC42.IfcRelConnectsPathElements = IfcRelConnectsPathElements; + class IfcRelConnectsPortToElement extends IfcRelConnects { + constructor(GlobalId, OwnerHistory, Name, Description, RelatingPort, RelatedElement) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingPort = RelatingPort; + this.RelatedElement = RelatedElement; + this.type = 4201705270; + } } - IfcLaborResourceTypeEnum.ADMINISTRATION = { type: 3, value: "ADMINISTRATION" }; - IfcLaborResourceTypeEnum.CARPENTRY = { type: 3, value: "CARPENTRY" }; - IfcLaborResourceTypeEnum.CLEANING = { type: 3, value: "CLEANING" }; - IfcLaborResourceTypeEnum.CONCRETE = { type: 3, value: "CONCRETE" }; - IfcLaborResourceTypeEnum.DRYWALL = { type: 3, value: "DRYWALL" }; - IfcLaborResourceTypeEnum.ELECTRIC = { type: 3, value: "ELECTRIC" }; - IfcLaborResourceTypeEnum.FINISHING = { type: 3, value: "FINISHING" }; - IfcLaborResourceTypeEnum.FLOORING = { type: 3, value: "FLOORING" }; - IfcLaborResourceTypeEnum.GENERAL = { type: 3, value: "GENERAL" }; - IfcLaborResourceTypeEnum.HVAC = { type: 3, value: "HVAC" }; - IfcLaborResourceTypeEnum.LANDSCAPING = { type: 3, value: "LANDSCAPING" }; - IfcLaborResourceTypeEnum.MASONRY = { type: 3, value: "MASONRY" }; - IfcLaborResourceTypeEnum.PAINTING = { type: 3, value: "PAINTING" }; - IfcLaborResourceTypeEnum.PAVING = { type: 3, value: "PAVING" }; - IfcLaborResourceTypeEnum.PLUMBING = { type: 3, value: "PLUMBING" }; - IfcLaborResourceTypeEnum.ROOFING = { type: 3, value: "ROOFING" }; - IfcLaborResourceTypeEnum.SITEGRADING = { type: 3, value: "SITEGRADING" }; - IfcLaborResourceTypeEnum.STEELWORK = { type: 3, value: "STEELWORK" }; - IfcLaborResourceTypeEnum.SURVEYING = { type: 3, value: "SURVEYING" }; - IfcLaborResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcLaborResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcLaborResourceTypeEnum = IfcLaborResourceTypeEnum; - class IfcLampTypeEnum { + IFC42.IfcRelConnectsPortToElement = IfcRelConnectsPortToElement; + class IfcRelConnectsPorts extends IfcRelConnects { + constructor(GlobalId, OwnerHistory, Name, Description, RelatingPort, RelatedPort, RealizingElement) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingPort = RelatingPort; + this.RelatedPort = RelatedPort; + this.RealizingElement = RealizingElement; + this.type = 3190031847; + } } - IfcLampTypeEnum.COMPACTFLUORESCENT = { type: 3, value: "COMPACTFLUORESCENT" }; - IfcLampTypeEnum.FLUORESCENT = { type: 3, value: "FLUORESCENT" }; - IfcLampTypeEnum.HALOGEN = { type: 3, value: "HALOGEN" }; - IfcLampTypeEnum.HIGHPRESSUREMERCURY = { type: 3, value: "HIGHPRESSUREMERCURY" }; - IfcLampTypeEnum.HIGHPRESSURESODIUM = { type: 3, value: "HIGHPRESSURESODIUM" }; - IfcLampTypeEnum.LED = { type: 3, value: "LED" }; - IfcLampTypeEnum.METALHALIDE = { type: 3, value: "METALHALIDE" }; - IfcLampTypeEnum.OLED = { type: 3, value: "OLED" }; - IfcLampTypeEnum.TUNGSTENFILAMENT = { type: 3, value: "TUNGSTENFILAMENT" }; - IfcLampTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcLampTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcLampTypeEnum = IfcLampTypeEnum; - class IfcLayerSetDirectionEnum { + IFC42.IfcRelConnectsPorts = IfcRelConnectsPorts; + class IfcRelConnectsStructuralActivity extends IfcRelConnects { + constructor(GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedStructuralActivity) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingElement = RelatingElement; + this.RelatedStructuralActivity = RelatedStructuralActivity; + this.type = 2127690289; + } } - IfcLayerSetDirectionEnum.AXIS1 = { type: 3, value: "AXIS1" }; - IfcLayerSetDirectionEnum.AXIS2 = { type: 3, value: "AXIS2" }; - IfcLayerSetDirectionEnum.AXIS3 = { type: 3, value: "AXIS3" }; - IFC42.IfcLayerSetDirectionEnum = IfcLayerSetDirectionEnum; - class IfcLightDistributionCurveEnum { + IFC42.IfcRelConnectsStructuralActivity = IfcRelConnectsStructuralActivity; + class IfcRelConnectsStructuralMember extends IfcRelConnects { + constructor(GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingStructuralMember = RelatingStructuralMember; + this.RelatedStructuralConnection = RelatedStructuralConnection; + this.AppliedCondition = AppliedCondition; + this.AdditionalConditions = AdditionalConditions; + this.SupportedLength = SupportedLength; + this.ConditionCoordinateSystem = ConditionCoordinateSystem; + this.type = 1638771189; + } } - IfcLightDistributionCurveEnum.TYPE_A = { type: 3, value: "TYPE_A" }; - IfcLightDistributionCurveEnum.TYPE_B = { type: 3, value: "TYPE_B" }; - IfcLightDistributionCurveEnum.TYPE_C = { type: 3, value: "TYPE_C" }; - IfcLightDistributionCurveEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcLightDistributionCurveEnum = IfcLightDistributionCurveEnum; - class IfcLightEmissionSourceEnum { + IFC42.IfcRelConnectsStructuralMember = IfcRelConnectsStructuralMember; + class IfcRelConnectsWithEccentricity extends IfcRelConnectsStructuralMember { + constructor(GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem, ConnectionConstraint) { + super(GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingStructuralMember = RelatingStructuralMember; + this.RelatedStructuralConnection = RelatedStructuralConnection; + this.AppliedCondition = AppliedCondition; + this.AdditionalConditions = AdditionalConditions; + this.SupportedLength = SupportedLength; + this.ConditionCoordinateSystem = ConditionCoordinateSystem; + this.ConnectionConstraint = ConnectionConstraint; + this.type = 504942748; + } } - IfcLightEmissionSourceEnum.COMPACTFLUORESCENT = { type: 3, value: "COMPACTFLUORESCENT" }; - IfcLightEmissionSourceEnum.FLUORESCENT = { type: 3, value: "FLUORESCENT" }; - IfcLightEmissionSourceEnum.HIGHPRESSUREMERCURY = { type: 3, value: "HIGHPRESSUREMERCURY" }; - IfcLightEmissionSourceEnum.HIGHPRESSURESODIUM = { type: 3, value: "HIGHPRESSURESODIUM" }; - IfcLightEmissionSourceEnum.LIGHTEMITTINGDIODE = { type: 3, value: "LIGHTEMITTINGDIODE" }; - IfcLightEmissionSourceEnum.LOWPRESSURESODIUM = { type: 3, value: "LOWPRESSURESODIUM" }; - IfcLightEmissionSourceEnum.LOWVOLTAGEHALOGEN = { type: 3, value: "LOWVOLTAGEHALOGEN" }; - IfcLightEmissionSourceEnum.MAINVOLTAGEHALOGEN = { type: 3, value: "MAINVOLTAGEHALOGEN" }; - IfcLightEmissionSourceEnum.METALHALIDE = { type: 3, value: "METALHALIDE" }; - IfcLightEmissionSourceEnum.TUNGSTENFILAMENT = { type: 3, value: "TUNGSTENFILAMENT" }; - IfcLightEmissionSourceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcLightEmissionSourceEnum = IfcLightEmissionSourceEnum; - class IfcLightFixtureTypeEnum { + IFC42.IfcRelConnectsWithEccentricity = IfcRelConnectsWithEccentricity; + class IfcRelConnectsWithRealizingElements extends IfcRelConnectsElements { + constructor(GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement, RealizingElements, ConnectionType) { + super(GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ConnectionGeometry = ConnectionGeometry; + this.RelatingElement = RelatingElement; + this.RelatedElement = RelatedElement; + this.RealizingElements = RealizingElements; + this.ConnectionType = ConnectionType; + this.type = 3678494232; + } } - IfcLightFixtureTypeEnum.POINTSOURCE = { type: 3, value: "POINTSOURCE" }; - IfcLightFixtureTypeEnum.DIRECTIONSOURCE = { type: 3, value: "DIRECTIONSOURCE" }; - IfcLightFixtureTypeEnum.SECURITYLIGHTING = { type: 3, value: "SECURITYLIGHTING" }; - IfcLightFixtureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcLightFixtureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcLightFixtureTypeEnum = IfcLightFixtureTypeEnum; - class IfcLoadGroupTypeEnum { + IFC42.IfcRelConnectsWithRealizingElements = IfcRelConnectsWithRealizingElements; + class IfcRelContainedInSpatialStructure extends IfcRelConnects { + constructor(GlobalId, OwnerHistory, Name, Description, RelatedElements, RelatingStructure) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedElements = RelatedElements; + this.RelatingStructure = RelatingStructure; + this.type = 3242617779; + } } - IfcLoadGroupTypeEnum.LOAD_GROUP = { type: 3, value: "LOAD_GROUP" }; - IfcLoadGroupTypeEnum.LOAD_CASE = { type: 3, value: "LOAD_CASE" }; - IfcLoadGroupTypeEnum.LOAD_COMBINATION = { type: 3, value: "LOAD_COMBINATION" }; - IfcLoadGroupTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcLoadGroupTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcLoadGroupTypeEnum = IfcLoadGroupTypeEnum; - class IfcLogicalOperatorEnum { + IFC42.IfcRelContainedInSpatialStructure = IfcRelContainedInSpatialStructure; + class IfcRelCoversBldgElements extends IfcRelConnects { + constructor(GlobalId, OwnerHistory, Name, Description, RelatingBuildingElement, RelatedCoverings) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingBuildingElement = RelatingBuildingElement; + this.RelatedCoverings = RelatedCoverings; + this.type = 886880790; + } } - IfcLogicalOperatorEnum.LOGICALAND = { type: 3, value: "LOGICALAND" }; - IfcLogicalOperatorEnum.LOGICALOR = { type: 3, value: "LOGICALOR" }; - IfcLogicalOperatorEnum.LOGICALXOR = { type: 3, value: "LOGICALXOR" }; - IfcLogicalOperatorEnum.LOGICALNOTAND = { type: 3, value: "LOGICALNOTAND" }; - IfcLogicalOperatorEnum.LOGICALNOTOR = { type: 3, value: "LOGICALNOTOR" }; - IFC42.IfcLogicalOperatorEnum = IfcLogicalOperatorEnum; - class IfcMechanicalFastenerTypeEnum { + IFC42.IfcRelCoversBldgElements = IfcRelCoversBldgElements; + class IfcRelCoversSpaces extends IfcRelConnects { + constructor(GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedCoverings) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingSpace = RelatingSpace; + this.RelatedCoverings = RelatedCoverings; + this.type = 2802773753; + } } - IfcMechanicalFastenerTypeEnum.ANCHORBOLT = { type: 3, value: "ANCHORBOLT" }; - IfcMechanicalFastenerTypeEnum.BOLT = { type: 3, value: "BOLT" }; - IfcMechanicalFastenerTypeEnum.DOWEL = { type: 3, value: "DOWEL" }; - IfcMechanicalFastenerTypeEnum.NAIL = { type: 3, value: "NAIL" }; - IfcMechanicalFastenerTypeEnum.NAILPLATE = { type: 3, value: "NAILPLATE" }; - IfcMechanicalFastenerTypeEnum.RIVET = { type: 3, value: "RIVET" }; - IfcMechanicalFastenerTypeEnum.SCREW = { type: 3, value: "SCREW" }; - IfcMechanicalFastenerTypeEnum.SHEARCONNECTOR = { type: 3, value: "SHEARCONNECTOR" }; - IfcMechanicalFastenerTypeEnum.STAPLE = { type: 3, value: "STAPLE" }; - IfcMechanicalFastenerTypeEnum.STUDSHEARCONNECTOR = { type: 3, value: "STUDSHEARCONNECTOR" }; - IfcMechanicalFastenerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcMechanicalFastenerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcMechanicalFastenerTypeEnum = IfcMechanicalFastenerTypeEnum; - class IfcMedicalDeviceTypeEnum { + IFC42.IfcRelCoversSpaces = IfcRelCoversSpaces; + class IfcRelDeclares extends IfcRelationship { + constructor(GlobalId, OwnerHistory, Name, Description, RelatingContext, RelatedDefinitions) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingContext = RelatingContext; + this.RelatedDefinitions = RelatedDefinitions; + this.type = 2565941209; + } } - IfcMedicalDeviceTypeEnum.AIRSTATION = { type: 3, value: "AIRSTATION" }; - IfcMedicalDeviceTypeEnum.FEEDAIRUNIT = { type: 3, value: "FEEDAIRUNIT" }; - IfcMedicalDeviceTypeEnum.OXYGENGENERATOR = { type: 3, value: "OXYGENGENERATOR" }; - IfcMedicalDeviceTypeEnum.OXYGENPLANT = { type: 3, value: "OXYGENPLANT" }; - IfcMedicalDeviceTypeEnum.VACUUMSTATION = { type: 3, value: "VACUUMSTATION" }; - IfcMedicalDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcMedicalDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcMedicalDeviceTypeEnum = IfcMedicalDeviceTypeEnum; - class IfcMemberTypeEnum { + IFC42.IfcRelDeclares = IfcRelDeclares; + class IfcRelDecomposes extends IfcRelationship { + constructor(GlobalId, OwnerHistory, Name, Description) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.type = 2551354335; + } } - IfcMemberTypeEnum.BRACE = { type: 3, value: "BRACE" }; - IfcMemberTypeEnum.CHORD = { type: 3, value: "CHORD" }; - IfcMemberTypeEnum.COLLAR = { type: 3, value: "COLLAR" }; - IfcMemberTypeEnum.MEMBER = { type: 3, value: "MEMBER" }; - IfcMemberTypeEnum.MULLION = { type: 3, value: "MULLION" }; - IfcMemberTypeEnum.PLATE = { type: 3, value: "PLATE" }; - IfcMemberTypeEnum.POST = { type: 3, value: "POST" }; - IfcMemberTypeEnum.PURLIN = { type: 3, value: "PURLIN" }; - IfcMemberTypeEnum.RAFTER = { type: 3, value: "RAFTER" }; - IfcMemberTypeEnum.STRINGER = { type: 3, value: "STRINGER" }; - IfcMemberTypeEnum.STRUT = { type: 3, value: "STRUT" }; - IfcMemberTypeEnum.STUD = { type: 3, value: "STUD" }; - IfcMemberTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcMemberTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcMemberTypeEnum = IfcMemberTypeEnum; - class IfcMotorConnectionTypeEnum { + IFC42.IfcRelDecomposes = IfcRelDecomposes; + class IfcRelDefines extends IfcRelationship { + constructor(GlobalId, OwnerHistory, Name, Description) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.type = 693640335; + } } - IfcMotorConnectionTypeEnum.BELTDRIVE = { type: 3, value: "BELTDRIVE" }; - IfcMotorConnectionTypeEnum.COUPLING = { type: 3, value: "COUPLING" }; - IfcMotorConnectionTypeEnum.DIRECTDRIVE = { type: 3, value: "DIRECTDRIVE" }; - IfcMotorConnectionTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcMotorConnectionTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcMotorConnectionTypeEnum = IfcMotorConnectionTypeEnum; - class IfcNullStyle { + IFC42.IfcRelDefines = IfcRelDefines; + class IfcRelDefinesByObject extends IfcRelDefines { + constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingObject) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatingObject = RelatingObject; + this.type = 1462361463; + } } - IfcNullStyle.NULL = { type: 3, value: "NULL" }; - IFC42.IfcNullStyle = IfcNullStyle; - class IfcObjectTypeEnum { + IFC42.IfcRelDefinesByObject = IfcRelDefinesByObject; + class IfcRelDefinesByProperties extends IfcRelDefines { + constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingPropertyDefinition) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatingPropertyDefinition = RelatingPropertyDefinition; + this.type = 4186316022; + } } - IfcObjectTypeEnum.PRODUCT = { type: 3, value: "PRODUCT" }; - IfcObjectTypeEnum.PROCESS = { type: 3, value: "PROCESS" }; - IfcObjectTypeEnum.CONTROL = { type: 3, value: "CONTROL" }; - IfcObjectTypeEnum.RESOURCE = { type: 3, value: "RESOURCE" }; - IfcObjectTypeEnum.ACTOR = { type: 3, value: "ACTOR" }; - IfcObjectTypeEnum.GROUP = { type: 3, value: "GROUP" }; - IfcObjectTypeEnum.PROJECT = { type: 3, value: "PROJECT" }; - IfcObjectTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcObjectTypeEnum = IfcObjectTypeEnum; - class IfcObjectiveEnum { + IFC42.IfcRelDefinesByProperties = IfcRelDefinesByProperties; + class IfcRelDefinesByTemplate extends IfcRelDefines { + constructor(GlobalId, OwnerHistory, Name, Description, RelatedPropertySets, RelatingTemplate) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedPropertySets = RelatedPropertySets; + this.RelatingTemplate = RelatingTemplate; + this.type = 307848117; + } } - IfcObjectiveEnum.CODECOMPLIANCE = { type: 3, value: "CODECOMPLIANCE" }; - IfcObjectiveEnum.CODEWAIVER = { type: 3, value: "CODEWAIVER" }; - IfcObjectiveEnum.DESIGNINTENT = { type: 3, value: "DESIGNINTENT" }; - IfcObjectiveEnum.EXTERNAL = { type: 3, value: "EXTERNAL" }; - IfcObjectiveEnum.HEALTHANDSAFETY = { type: 3, value: "HEALTHANDSAFETY" }; - IfcObjectiveEnum.MERGECONFLICT = { type: 3, value: "MERGECONFLICT" }; - IfcObjectiveEnum.MODELVIEW = { type: 3, value: "MODELVIEW" }; - IfcObjectiveEnum.PARAMETER = { type: 3, value: "PARAMETER" }; - IfcObjectiveEnum.REQUIREMENT = { type: 3, value: "REQUIREMENT" }; - IfcObjectiveEnum.SPECIFICATION = { type: 3, value: "SPECIFICATION" }; - IfcObjectiveEnum.TRIGGERCONDITION = { type: 3, value: "TRIGGERCONDITION" }; - IfcObjectiveEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcObjectiveEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcObjectiveEnum = IfcObjectiveEnum; - class IfcOccupantTypeEnum { + IFC42.IfcRelDefinesByTemplate = IfcRelDefinesByTemplate; + class IfcRelDefinesByType extends IfcRelDefines { + constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingType) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatingType = RelatingType; + this.type = 781010003; + } } - IfcOccupantTypeEnum.ASSIGNEE = { type: 3, value: "ASSIGNEE" }; - IfcOccupantTypeEnum.ASSIGNOR = { type: 3, value: "ASSIGNOR" }; - IfcOccupantTypeEnum.LESSEE = { type: 3, value: "LESSEE" }; - IfcOccupantTypeEnum.LESSOR = { type: 3, value: "LESSOR" }; - IfcOccupantTypeEnum.LETTINGAGENT = { type: 3, value: "LETTINGAGENT" }; - IfcOccupantTypeEnum.OWNER = { type: 3, value: "OWNER" }; - IfcOccupantTypeEnum.TENANT = { type: 3, value: "TENANT" }; - IfcOccupantTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcOccupantTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcOccupantTypeEnum = IfcOccupantTypeEnum; - class IfcOpeningElementTypeEnum { + IFC42.IfcRelDefinesByType = IfcRelDefinesByType; + class IfcRelFillsElement extends IfcRelConnects { + constructor(GlobalId, OwnerHistory, Name, Description, RelatingOpeningElement, RelatedBuildingElement) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingOpeningElement = RelatingOpeningElement; + this.RelatedBuildingElement = RelatedBuildingElement; + this.type = 3940055652; + } } - IfcOpeningElementTypeEnum.OPENING = { type: 3, value: "OPENING" }; - IfcOpeningElementTypeEnum.RECESS = { type: 3, value: "RECESS" }; - IfcOpeningElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcOpeningElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcOpeningElementTypeEnum = IfcOpeningElementTypeEnum; - class IfcOutletTypeEnum { + IFC42.IfcRelFillsElement = IfcRelFillsElement; + class IfcRelFlowControlElements extends IfcRelConnects { + constructor(GlobalId, OwnerHistory, Name, Description, RelatedControlElements, RelatingFlowElement) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedControlElements = RelatedControlElements; + this.RelatingFlowElement = RelatingFlowElement; + this.type = 279856033; + } } - IfcOutletTypeEnum.AUDIOVISUALOUTLET = { type: 3, value: "AUDIOVISUALOUTLET" }; - IfcOutletTypeEnum.COMMUNICATIONSOUTLET = { type: 3, value: "COMMUNICATIONSOUTLET" }; - IfcOutletTypeEnum.POWEROUTLET = { type: 3, value: "POWEROUTLET" }; - IfcOutletTypeEnum.DATAOUTLET = { type: 3, value: "DATAOUTLET" }; - IfcOutletTypeEnum.TELEPHONEOUTLET = { type: 3, value: "TELEPHONEOUTLET" }; - IfcOutletTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcOutletTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcOutletTypeEnum = IfcOutletTypeEnum; - class IfcPerformanceHistoryTypeEnum { + IFC42.IfcRelFlowControlElements = IfcRelFlowControlElements; + class IfcRelInterferesElements extends IfcRelConnects { + constructor(GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedElement, InterferenceGeometry, InterferenceType, ImpliedOrder) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingElement = RelatingElement; + this.RelatedElement = RelatedElement; + this.InterferenceGeometry = InterferenceGeometry; + this.InterferenceType = InterferenceType; + this.ImpliedOrder = ImpliedOrder; + this.type = 427948657; + } } - IfcPerformanceHistoryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPerformanceHistoryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcPerformanceHistoryTypeEnum = IfcPerformanceHistoryTypeEnum; - class IfcPermeableCoveringOperationEnum { + IFC42.IfcRelInterferesElements = IfcRelInterferesElements; + class IfcRelNests extends IfcRelDecomposes { + constructor(GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingObject = RelatingObject; + this.RelatedObjects = RelatedObjects; + this.type = 3268803585; + } } - IfcPermeableCoveringOperationEnum.GRILL = { type: 3, value: "GRILL" }; - IfcPermeableCoveringOperationEnum.LOUVER = { type: 3, value: "LOUVER" }; - IfcPermeableCoveringOperationEnum.SCREEN = { type: 3, value: "SCREEN" }; - IfcPermeableCoveringOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPermeableCoveringOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcPermeableCoveringOperationEnum = IfcPermeableCoveringOperationEnum; - class IfcPermitTypeEnum { + IFC42.IfcRelNests = IfcRelNests; + class IfcRelProjectsElement extends IfcRelDecomposes { + constructor(GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedFeatureElement) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingElement = RelatingElement; + this.RelatedFeatureElement = RelatedFeatureElement; + this.type = 750771296; + } } - IfcPermitTypeEnum.ACCESS = { type: 3, value: "ACCESS" }; - IfcPermitTypeEnum.BUILDING = { type: 3, value: "BUILDING" }; - IfcPermitTypeEnum.WORK = { type: 3, value: "WORK" }; - IfcPermitTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPermitTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcPermitTypeEnum = IfcPermitTypeEnum; - class IfcPhysicalOrVirtualEnum { + IFC42.IfcRelProjectsElement = IfcRelProjectsElement; + class IfcRelReferencedInSpatialStructure extends IfcRelConnects { + constructor(GlobalId, OwnerHistory, Name, Description, RelatedElements, RelatingStructure) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedElements = RelatedElements; + this.RelatingStructure = RelatingStructure; + this.type = 1245217292; + } } - IfcPhysicalOrVirtualEnum.PHYSICAL = { type: 3, value: "PHYSICAL" }; - IfcPhysicalOrVirtualEnum.VIRTUAL = { type: 3, value: "VIRTUAL" }; - IfcPhysicalOrVirtualEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcPhysicalOrVirtualEnum = IfcPhysicalOrVirtualEnum; - class IfcPileConstructionEnum { + IFC42.IfcRelReferencedInSpatialStructure = IfcRelReferencedInSpatialStructure; + class IfcRelSequence extends IfcRelConnects { + constructor(GlobalId, OwnerHistory, Name, Description, RelatingProcess, RelatedProcess, TimeLag, SequenceType, UserDefinedSequenceType) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingProcess = RelatingProcess; + this.RelatedProcess = RelatedProcess; + this.TimeLag = TimeLag; + this.SequenceType = SequenceType; + this.UserDefinedSequenceType = UserDefinedSequenceType; + this.type = 4122056220; + } } - IfcPileConstructionEnum.CAST_IN_PLACE = { type: 3, value: "CAST_IN_PLACE" }; - IfcPileConstructionEnum.COMPOSITE = { type: 3, value: "COMPOSITE" }; - IfcPileConstructionEnum.PRECAST_CONCRETE = { type: 3, value: "PRECAST_CONCRETE" }; - IfcPileConstructionEnum.PREFAB_STEEL = { type: 3, value: "PREFAB_STEEL" }; - IfcPileConstructionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPileConstructionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcPileConstructionEnum = IfcPileConstructionEnum; - class IfcPileTypeEnum { + IFC42.IfcRelSequence = IfcRelSequence; + class IfcRelServicesBuildings extends IfcRelConnects { + constructor(GlobalId, OwnerHistory, Name, Description, RelatingSystem, RelatedBuildings) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingSystem = RelatingSystem; + this.RelatedBuildings = RelatedBuildings; + this.type = 366585022; + } } - IfcPileTypeEnum.BORED = { type: 3, value: "BORED" }; - IfcPileTypeEnum.DRIVEN = { type: 3, value: "DRIVEN" }; - IfcPileTypeEnum.JETGROUTING = { type: 3, value: "JETGROUTING" }; - IfcPileTypeEnum.COHESION = { type: 3, value: "COHESION" }; - IfcPileTypeEnum.FRICTION = { type: 3, value: "FRICTION" }; - IfcPileTypeEnum.SUPPORT = { type: 3, value: "SUPPORT" }; - IfcPileTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPileTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcPileTypeEnum = IfcPileTypeEnum; - class IfcPipeFittingTypeEnum { + IFC42.IfcRelServicesBuildings = IfcRelServicesBuildings; + class IfcRelSpaceBoundary extends IfcRelConnects { + constructor(GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingSpace = RelatingSpace; + this.RelatedBuildingElement = RelatedBuildingElement; + this.ConnectionGeometry = ConnectionGeometry; + this.PhysicalOrVirtualBoundary = PhysicalOrVirtualBoundary; + this.InternalOrExternalBoundary = InternalOrExternalBoundary; + this.type = 3451746338; + } } - IfcPipeFittingTypeEnum.BEND = { type: 3, value: "BEND" }; - IfcPipeFittingTypeEnum.CONNECTOR = { type: 3, value: "CONNECTOR" }; - IfcPipeFittingTypeEnum.ENTRY = { type: 3, value: "ENTRY" }; - IfcPipeFittingTypeEnum.EXIT = { type: 3, value: "EXIT" }; - IfcPipeFittingTypeEnum.JUNCTION = { type: 3, value: "JUNCTION" }; - IfcPipeFittingTypeEnum.OBSTRUCTION = { type: 3, value: "OBSTRUCTION" }; - IfcPipeFittingTypeEnum.TRANSITION = { type: 3, value: "TRANSITION" }; - IfcPipeFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPipeFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcPipeFittingTypeEnum = IfcPipeFittingTypeEnum; - class IfcPipeSegmentTypeEnum { + IFC42.IfcRelSpaceBoundary = IfcRelSpaceBoundary; + class IfcRelSpaceBoundary1stLevel extends IfcRelSpaceBoundary { + constructor(GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary, ParentBoundary) { + super(GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingSpace = RelatingSpace; + this.RelatedBuildingElement = RelatedBuildingElement; + this.ConnectionGeometry = ConnectionGeometry; + this.PhysicalOrVirtualBoundary = PhysicalOrVirtualBoundary; + this.InternalOrExternalBoundary = InternalOrExternalBoundary; + this.ParentBoundary = ParentBoundary; + this.type = 3523091289; + } } - IfcPipeSegmentTypeEnum.CULVERT = { type: 3, value: "CULVERT" }; - IfcPipeSegmentTypeEnum.FLEXIBLESEGMENT = { type: 3, value: "FLEXIBLESEGMENT" }; - IfcPipeSegmentTypeEnum.RIGIDSEGMENT = { type: 3, value: "RIGIDSEGMENT" }; - IfcPipeSegmentTypeEnum.GUTTER = { type: 3, value: "GUTTER" }; - IfcPipeSegmentTypeEnum.SPOOL = { type: 3, value: "SPOOL" }; - IfcPipeSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPipeSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcPipeSegmentTypeEnum = IfcPipeSegmentTypeEnum; - class IfcPlateTypeEnum { + IFC42.IfcRelSpaceBoundary1stLevel = IfcRelSpaceBoundary1stLevel; + class IfcRelSpaceBoundary2ndLevel extends IfcRelSpaceBoundary1stLevel { + constructor(GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary, ParentBoundary, CorrespondingBoundary) { + super(GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary, ParentBoundary); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingSpace = RelatingSpace; + this.RelatedBuildingElement = RelatedBuildingElement; + this.ConnectionGeometry = ConnectionGeometry; + this.PhysicalOrVirtualBoundary = PhysicalOrVirtualBoundary; + this.InternalOrExternalBoundary = InternalOrExternalBoundary; + this.ParentBoundary = ParentBoundary; + this.CorrespondingBoundary = CorrespondingBoundary; + this.type = 1521410863; + } } - IfcPlateTypeEnum.CURTAIN_PANEL = { type: 3, value: "CURTAIN_PANEL" }; - IfcPlateTypeEnum.SHEET = { type: 3, value: "SHEET" }; - IfcPlateTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPlateTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcPlateTypeEnum = IfcPlateTypeEnum; - class IfcPreferredSurfaceCurveRepresentation { + IFC42.IfcRelSpaceBoundary2ndLevel = IfcRelSpaceBoundary2ndLevel; + class IfcRelVoidsElement extends IfcRelDecomposes { + constructor(GlobalId, OwnerHistory, Name, Description, RelatingBuildingElement, RelatedOpeningElement) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingBuildingElement = RelatingBuildingElement; + this.RelatedOpeningElement = RelatedOpeningElement; + this.type = 1401173127; + } } - IfcPreferredSurfaceCurveRepresentation.CURVE3D = { type: 3, value: "CURVE3D" }; - IfcPreferredSurfaceCurveRepresentation.PCURVE_S1 = { type: 3, value: "PCURVE_S1" }; - IfcPreferredSurfaceCurveRepresentation.PCURVE_S2 = { type: 3, value: "PCURVE_S2" }; - IFC42.IfcPreferredSurfaceCurveRepresentation = IfcPreferredSurfaceCurveRepresentation; - class IfcProcedureTypeEnum { + IFC42.IfcRelVoidsElement = IfcRelVoidsElement; + class IfcReparametrisedCompositeCurveSegment extends IfcCompositeCurveSegment { + constructor(Transition, SameSense, ParentCurve, ParamLength) { + super(Transition, SameSense, ParentCurve); + this.Transition = Transition; + this.SameSense = SameSense; + this.ParentCurve = ParentCurve; + this.ParamLength = ParamLength; + this.type = 816062949; + } } - IfcProcedureTypeEnum.ADVICE_CAUTION = { type: 3, value: "ADVICE_CAUTION" }; - IfcProcedureTypeEnum.ADVICE_NOTE = { type: 3, value: "ADVICE_NOTE" }; - IfcProcedureTypeEnum.ADVICE_WARNING = { type: 3, value: "ADVICE_WARNING" }; - IfcProcedureTypeEnum.CALIBRATION = { type: 3, value: "CALIBRATION" }; - IfcProcedureTypeEnum.DIAGNOSTIC = { type: 3, value: "DIAGNOSTIC" }; - IfcProcedureTypeEnum.SHUTDOWN = { type: 3, value: "SHUTDOWN" }; - IfcProcedureTypeEnum.STARTUP = { type: 3, value: "STARTUP" }; - IfcProcedureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcProcedureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcProcedureTypeEnum = IfcProcedureTypeEnum; - class IfcProfileTypeEnum { + IFC42.IfcReparametrisedCompositeCurveSegment = IfcReparametrisedCompositeCurveSegment; + class IfcResource extends IfcObject { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.type = 2914609552; + } } - IfcProfileTypeEnum.CURVE = { type: 3, value: "CURVE" }; - IfcProfileTypeEnum.AREA = { type: 3, value: "AREA" }; - IFC42.IfcProfileTypeEnum = IfcProfileTypeEnum; - class IfcProjectOrderTypeEnum { + IFC42.IfcResource = IfcResource; + class IfcRevolvedAreaSolid extends IfcSweptAreaSolid { + constructor(SweptArea, Position, Axis, Angle) { + super(SweptArea, Position); + this.SweptArea = SweptArea; + this.Position = Position; + this.Axis = Axis; + this.Angle = Angle; + this.type = 1856042241; + } } - IfcProjectOrderTypeEnum.CHANGEORDER = { type: 3, value: "CHANGEORDER" }; - IfcProjectOrderTypeEnum.MAINTENANCEWORKORDER = { type: 3, value: "MAINTENANCEWORKORDER" }; - IfcProjectOrderTypeEnum.MOVEORDER = { type: 3, value: "MOVEORDER" }; - IfcProjectOrderTypeEnum.PURCHASEORDER = { type: 3, value: "PURCHASEORDER" }; - IfcProjectOrderTypeEnum.WORKORDER = { type: 3, value: "WORKORDER" }; - IfcProjectOrderTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcProjectOrderTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcProjectOrderTypeEnum = IfcProjectOrderTypeEnum; - class IfcProjectedOrTrueLengthEnum { + IFC42.IfcRevolvedAreaSolid = IfcRevolvedAreaSolid; + class IfcRevolvedAreaSolidTapered extends IfcRevolvedAreaSolid { + constructor(SweptArea, Position, Axis, Angle, EndSweptArea) { + super(SweptArea, Position, Axis, Angle); + this.SweptArea = SweptArea; + this.Position = Position; + this.Axis = Axis; + this.Angle = Angle; + this.EndSweptArea = EndSweptArea; + this.type = 3243963512; + } } - IfcProjectedOrTrueLengthEnum.PROJECTED_LENGTH = { type: 3, value: "PROJECTED_LENGTH" }; - IfcProjectedOrTrueLengthEnum.TRUE_LENGTH = { type: 3, value: "TRUE_LENGTH" }; - IFC42.IfcProjectedOrTrueLengthEnum = IfcProjectedOrTrueLengthEnum; - class IfcProjectionElementTypeEnum { + IFC42.IfcRevolvedAreaSolidTapered = IfcRevolvedAreaSolidTapered; + class IfcRightCircularCone extends IfcCsgPrimitive3D { + constructor(Position, Height, BottomRadius) { + super(Position); + this.Position = Position; + this.Height = Height; + this.BottomRadius = BottomRadius; + this.type = 4158566097; + } } - IfcProjectionElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcProjectionElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcProjectionElementTypeEnum = IfcProjectionElementTypeEnum; - class IfcPropertySetTemplateTypeEnum { + IFC42.IfcRightCircularCone = IfcRightCircularCone; + class IfcRightCircularCylinder extends IfcCsgPrimitive3D { + constructor(Position, Height, Radius) { + super(Position); + this.Position = Position; + this.Height = Height; + this.Radius = Radius; + this.type = 3626867408; + } } - IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENONLY = { type: 3, value: "PSET_TYPEDRIVENONLY" }; - IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENOVERRIDE = { type: 3, value: "PSET_TYPEDRIVENOVERRIDE" }; - IfcPropertySetTemplateTypeEnum.PSET_OCCURRENCEDRIVEN = { type: 3, value: "PSET_OCCURRENCEDRIVEN" }; - IfcPropertySetTemplateTypeEnum.PSET_PERFORMANCEDRIVEN = { type: 3, value: "PSET_PERFORMANCEDRIVEN" }; - IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENONLY = { type: 3, value: "QTO_TYPEDRIVENONLY" }; - IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENOVERRIDE = { type: 3, value: "QTO_TYPEDRIVENOVERRIDE" }; - IfcPropertySetTemplateTypeEnum.QTO_OCCURRENCEDRIVEN = { type: 3, value: "QTO_OCCURRENCEDRIVEN" }; - IfcPropertySetTemplateTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcPropertySetTemplateTypeEnum = IfcPropertySetTemplateTypeEnum; - class IfcProtectiveDeviceTrippingUnitTypeEnum { + IFC42.IfcRightCircularCylinder = IfcRightCircularCylinder; + class IfcSimplePropertyTemplate extends IfcPropertyTemplate { + constructor(GlobalId, OwnerHistory, Name, Description, TemplateType, PrimaryMeasureType, SecondaryMeasureType, Enumerators, PrimaryUnit, SecondaryUnit, Expression, AccessState) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.TemplateType = TemplateType; + this.PrimaryMeasureType = PrimaryMeasureType; + this.SecondaryMeasureType = SecondaryMeasureType; + this.Enumerators = Enumerators; + this.PrimaryUnit = PrimaryUnit; + this.SecondaryUnit = SecondaryUnit; + this.Expression = Expression; + this.AccessState = AccessState; + this.type = 3663146110; + } } - IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTRONIC = { type: 3, value: "ELECTRONIC" }; - IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTROMAGNETIC = { type: 3, value: "ELECTROMAGNETIC" }; - IfcProtectiveDeviceTrippingUnitTypeEnum.RESIDUALCURRENT = { type: 3, value: "RESIDUALCURRENT" }; - IfcProtectiveDeviceTrippingUnitTypeEnum.THERMAL = { type: 3, value: "THERMAL" }; - IfcProtectiveDeviceTrippingUnitTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcProtectiveDeviceTrippingUnitTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcProtectiveDeviceTrippingUnitTypeEnum = IfcProtectiveDeviceTrippingUnitTypeEnum; - class IfcProtectiveDeviceTypeEnum { + IFC42.IfcSimplePropertyTemplate = IfcSimplePropertyTemplate; + class IfcSpatialElement extends IfcProduct { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.LongName = LongName; + this.type = 1412071761; + } } - IfcProtectiveDeviceTypeEnum.CIRCUITBREAKER = { type: 3, value: "CIRCUITBREAKER" }; - IfcProtectiveDeviceTypeEnum.EARTHLEAKAGECIRCUITBREAKER = { type: 3, value: "EARTHLEAKAGECIRCUITBREAKER" }; - IfcProtectiveDeviceTypeEnum.EARTHINGSWITCH = { type: 3, value: "EARTHINGSWITCH" }; - IfcProtectiveDeviceTypeEnum.FUSEDISCONNECTOR = { type: 3, value: "FUSEDISCONNECTOR" }; - IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTCIRCUITBREAKER = { type: 3, value: "RESIDUALCURRENTCIRCUITBREAKER" }; - IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTSWITCH = { type: 3, value: "RESIDUALCURRENTSWITCH" }; - IfcProtectiveDeviceTypeEnum.VARISTOR = { type: 3, value: "VARISTOR" }; - IfcProtectiveDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcProtectiveDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcProtectiveDeviceTypeEnum = IfcProtectiveDeviceTypeEnum; - class IfcPumpTypeEnum { + IFC42.IfcSpatialElement = IfcSpatialElement; + class IfcSpatialElementType extends IfcTypeProduct { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 710998568; + } } - IfcPumpTypeEnum.CIRCULATOR = { type: 3, value: "CIRCULATOR" }; - IfcPumpTypeEnum.ENDSUCTION = { type: 3, value: "ENDSUCTION" }; - IfcPumpTypeEnum.SPLITCASE = { type: 3, value: "SPLITCASE" }; - IfcPumpTypeEnum.SUBMERSIBLEPUMP = { type: 3, value: "SUBMERSIBLEPUMP" }; - IfcPumpTypeEnum.SUMPPUMP = { type: 3, value: "SUMPPUMP" }; - IfcPumpTypeEnum.VERTICALINLINE = { type: 3, value: "VERTICALINLINE" }; - IfcPumpTypeEnum.VERTICALTURBINE = { type: 3, value: "VERTICALTURBINE" }; - IfcPumpTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPumpTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcPumpTypeEnum = IfcPumpTypeEnum; - class IfcRailingTypeEnum { + IFC42.IfcSpatialElementType = IfcSpatialElementType; + class IfcSpatialStructureElement extends IfcSpatialElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.LongName = LongName; + this.CompositionType = CompositionType; + this.type = 2706606064; + } } - IfcRailingTypeEnum.HANDRAIL = { type: 3, value: "HANDRAIL" }; - IfcRailingTypeEnum.GUARDRAIL = { type: 3, value: "GUARDRAIL" }; - IfcRailingTypeEnum.BALUSTRADE = { type: 3, value: "BALUSTRADE" }; - IfcRailingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcRailingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcRailingTypeEnum = IfcRailingTypeEnum; - class IfcRampFlightTypeEnum { + IFC42.IfcSpatialStructureElement = IfcSpatialStructureElement; + class IfcSpatialStructureElementType extends IfcSpatialElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 3893378262; + } } - IfcRampFlightTypeEnum.STRAIGHT = { type: 3, value: "STRAIGHT" }; - IfcRampFlightTypeEnum.SPIRAL = { type: 3, value: "SPIRAL" }; - IfcRampFlightTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcRampFlightTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcRampFlightTypeEnum = IfcRampFlightTypeEnum; - class IfcRampTypeEnum { + IFC42.IfcSpatialStructureElementType = IfcSpatialStructureElementType; + class IfcSpatialZone extends IfcSpatialElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.LongName = LongName; + this.PredefinedType = PredefinedType; + this.type = 463610769; + } } - IfcRampTypeEnum.STRAIGHT_RUN_RAMP = { type: 3, value: "STRAIGHT_RUN_RAMP" }; - IfcRampTypeEnum.TWO_STRAIGHT_RUN_RAMP = { type: 3, value: "TWO_STRAIGHT_RUN_RAMP" }; - IfcRampTypeEnum.QUARTER_TURN_RAMP = { type: 3, value: "QUARTER_TURN_RAMP" }; - IfcRampTypeEnum.TWO_QUARTER_TURN_RAMP = { type: 3, value: "TWO_QUARTER_TURN_RAMP" }; - IfcRampTypeEnum.HALF_TURN_RAMP = { type: 3, value: "HALF_TURN_RAMP" }; - IfcRampTypeEnum.SPIRAL_RAMP = { type: 3, value: "SPIRAL_RAMP" }; - IfcRampTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcRampTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcRampTypeEnum = IfcRampTypeEnum; - class IfcRecurrenceTypeEnum { + IFC42.IfcSpatialZone = IfcSpatialZone; + class IfcSpatialZoneType extends IfcSpatialElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, LongName) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.LongName = LongName; + this.type = 2481509218; + } } - IfcRecurrenceTypeEnum.DAILY = { type: 3, value: "DAILY" }; - IfcRecurrenceTypeEnum.WEEKLY = { type: 3, value: "WEEKLY" }; - IfcRecurrenceTypeEnum.MONTHLY_BY_DAY_OF_MONTH = { type: 3, value: "MONTHLY_BY_DAY_OF_MONTH" }; - IfcRecurrenceTypeEnum.MONTHLY_BY_POSITION = { type: 3, value: "MONTHLY_BY_POSITION" }; - IfcRecurrenceTypeEnum.BY_DAY_COUNT = { type: 3, value: "BY_DAY_COUNT" }; - IfcRecurrenceTypeEnum.BY_WEEKDAY_COUNT = { type: 3, value: "BY_WEEKDAY_COUNT" }; - IfcRecurrenceTypeEnum.YEARLY_BY_DAY_OF_MONTH = { type: 3, value: "YEARLY_BY_DAY_OF_MONTH" }; - IfcRecurrenceTypeEnum.YEARLY_BY_POSITION = { type: 3, value: "YEARLY_BY_POSITION" }; - IFC42.IfcRecurrenceTypeEnum = IfcRecurrenceTypeEnum; - class IfcReflectanceMethodEnum { + IFC42.IfcSpatialZoneType = IfcSpatialZoneType; + class IfcSphere extends IfcCsgPrimitive3D { + constructor(Position, Radius) { + super(Position); + this.Position = Position; + this.Radius = Radius; + this.type = 451544542; + } } - IfcReflectanceMethodEnum.BLINN = { type: 3, value: "BLINN" }; - IfcReflectanceMethodEnum.FLAT = { type: 3, value: "FLAT" }; - IfcReflectanceMethodEnum.GLASS = { type: 3, value: "GLASS" }; - IfcReflectanceMethodEnum.MATT = { type: 3, value: "MATT" }; - IfcReflectanceMethodEnum.METAL = { type: 3, value: "METAL" }; - IfcReflectanceMethodEnum.MIRROR = { type: 3, value: "MIRROR" }; - IfcReflectanceMethodEnum.PHONG = { type: 3, value: "PHONG" }; - IfcReflectanceMethodEnum.PLASTIC = { type: 3, value: "PLASTIC" }; - IfcReflectanceMethodEnum.STRAUSS = { type: 3, value: "STRAUSS" }; - IfcReflectanceMethodEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcReflectanceMethodEnum = IfcReflectanceMethodEnum; - class IfcReinforcingBarRoleEnum { + IFC42.IfcSphere = IfcSphere; + class IfcSphericalSurface extends IfcElementarySurface { + constructor(Position, Radius) { + super(Position); + this.Position = Position; + this.Radius = Radius; + this.type = 4015995234; + } } - IfcReinforcingBarRoleEnum.MAIN = { type: 3, value: "MAIN" }; - IfcReinforcingBarRoleEnum.SHEAR = { type: 3, value: "SHEAR" }; - IfcReinforcingBarRoleEnum.LIGATURE = { type: 3, value: "LIGATURE" }; - IfcReinforcingBarRoleEnum.STUD = { type: 3, value: "STUD" }; - IfcReinforcingBarRoleEnum.PUNCHING = { type: 3, value: "PUNCHING" }; - IfcReinforcingBarRoleEnum.EDGE = { type: 3, value: "EDGE" }; - IfcReinforcingBarRoleEnum.RING = { type: 3, value: "RING" }; - IfcReinforcingBarRoleEnum.ANCHORING = { type: 3, value: "ANCHORING" }; - IfcReinforcingBarRoleEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcReinforcingBarRoleEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcReinforcingBarRoleEnum = IfcReinforcingBarRoleEnum; - class IfcReinforcingBarSurfaceEnum { + IFC42.IfcSphericalSurface = IfcSphericalSurface; + class IfcStructuralActivity extends IfcProduct { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedLoad = AppliedLoad; + this.GlobalOrLocal = GlobalOrLocal; + this.type = 3544373492; + } } - IfcReinforcingBarSurfaceEnum.PLAIN = { type: 3, value: "PLAIN" }; - IfcReinforcingBarSurfaceEnum.TEXTURED = { type: 3, value: "TEXTURED" }; - IFC42.IfcReinforcingBarSurfaceEnum = IfcReinforcingBarSurfaceEnum; - class IfcReinforcingBarTypeEnum { + IFC42.IfcStructuralActivity = IfcStructuralActivity; + class IfcStructuralItem extends IfcProduct { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.type = 3136571912; + } } - IfcReinforcingBarTypeEnum.ANCHORING = { type: 3, value: "ANCHORING" }; - IfcReinforcingBarTypeEnum.EDGE = { type: 3, value: "EDGE" }; - IfcReinforcingBarTypeEnum.LIGATURE = { type: 3, value: "LIGATURE" }; - IfcReinforcingBarTypeEnum.MAIN = { type: 3, value: "MAIN" }; - IfcReinforcingBarTypeEnum.PUNCHING = { type: 3, value: "PUNCHING" }; - IfcReinforcingBarTypeEnum.RING = { type: 3, value: "RING" }; - IfcReinforcingBarTypeEnum.SHEAR = { type: 3, value: "SHEAR" }; - IfcReinforcingBarTypeEnum.STUD = { type: 3, value: "STUD" }; - IfcReinforcingBarTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcReinforcingBarTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcReinforcingBarTypeEnum = IfcReinforcingBarTypeEnum; - class IfcReinforcingMeshTypeEnum { + IFC42.IfcStructuralItem = IfcStructuralItem; + class IfcStructuralMember extends IfcStructuralItem { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.type = 530289379; + } } - IfcReinforcingMeshTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcReinforcingMeshTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcReinforcingMeshTypeEnum = IfcReinforcingMeshTypeEnum; - class IfcRoleEnum { + IFC42.IfcStructuralMember = IfcStructuralMember; + class IfcStructuralReaction extends IfcStructuralActivity { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedLoad = AppliedLoad; + this.GlobalOrLocal = GlobalOrLocal; + this.type = 3689010777; + } } - IfcRoleEnum.SUPPLIER = { type: 3, value: "SUPPLIER" }; - IfcRoleEnum.MANUFACTURER = { type: 3, value: "MANUFACTURER" }; - IfcRoleEnum.CONTRACTOR = { type: 3, value: "CONTRACTOR" }; - IfcRoleEnum.SUBCONTRACTOR = { type: 3, value: "SUBCONTRACTOR" }; - IfcRoleEnum.ARCHITECT = { type: 3, value: "ARCHITECT" }; - IfcRoleEnum.STRUCTURALENGINEER = { type: 3, value: "STRUCTURALENGINEER" }; - IfcRoleEnum.COSTENGINEER = { type: 3, value: "COSTENGINEER" }; - IfcRoleEnum.CLIENT = { type: 3, value: "CLIENT" }; - IfcRoleEnum.BUILDINGOWNER = { type: 3, value: "BUILDINGOWNER" }; - IfcRoleEnum.BUILDINGOPERATOR = { type: 3, value: "BUILDINGOPERATOR" }; - IfcRoleEnum.MECHANICALENGINEER = { type: 3, value: "MECHANICALENGINEER" }; - IfcRoleEnum.ELECTRICALENGINEER = { type: 3, value: "ELECTRICALENGINEER" }; - IfcRoleEnum.PROJECTMANAGER = { type: 3, value: "PROJECTMANAGER" }; - IfcRoleEnum.FACILITIESMANAGER = { type: 3, value: "FACILITIESMANAGER" }; - IfcRoleEnum.CIVILENGINEER = { type: 3, value: "CIVILENGINEER" }; - IfcRoleEnum.COMMISSIONINGENGINEER = { type: 3, value: "COMMISSIONINGENGINEER" }; - IfcRoleEnum.ENGINEER = { type: 3, value: "ENGINEER" }; - IfcRoleEnum.OWNER = { type: 3, value: "OWNER" }; - IfcRoleEnum.CONSULTANT = { type: 3, value: "CONSULTANT" }; - IfcRoleEnum.CONSTRUCTIONMANAGER = { type: 3, value: "CONSTRUCTIONMANAGER" }; - IfcRoleEnum.FIELDCONSTRUCTIONMANAGER = { type: 3, value: "FIELDCONSTRUCTIONMANAGER" }; - IfcRoleEnum.RESELLER = { type: 3, value: "RESELLER" }; - IfcRoleEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IFC42.IfcRoleEnum = IfcRoleEnum; - class IfcRoofTypeEnum { + IFC42.IfcStructuralReaction = IfcStructuralReaction; + class IfcStructuralSurfaceMember extends IfcStructuralMember { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.PredefinedType = PredefinedType; + this.Thickness = Thickness; + this.type = 3979015343; + } } - IfcRoofTypeEnum.FLAT_ROOF = { type: 3, value: "FLAT_ROOF" }; - IfcRoofTypeEnum.SHED_ROOF = { type: 3, value: "SHED_ROOF" }; - IfcRoofTypeEnum.GABLE_ROOF = { type: 3, value: "GABLE_ROOF" }; - IfcRoofTypeEnum.HIP_ROOF = { type: 3, value: "HIP_ROOF" }; - IfcRoofTypeEnum.HIPPED_GABLE_ROOF = { type: 3, value: "HIPPED_GABLE_ROOF" }; - IfcRoofTypeEnum.GAMBREL_ROOF = { type: 3, value: "GAMBREL_ROOF" }; - IfcRoofTypeEnum.MANSARD_ROOF = { type: 3, value: "MANSARD_ROOF" }; - IfcRoofTypeEnum.BARREL_ROOF = { type: 3, value: "BARREL_ROOF" }; - IfcRoofTypeEnum.RAINBOW_ROOF = { type: 3, value: "RAINBOW_ROOF" }; - IfcRoofTypeEnum.BUTTERFLY_ROOF = { type: 3, value: "BUTTERFLY_ROOF" }; - IfcRoofTypeEnum.PAVILION_ROOF = { type: 3, value: "PAVILION_ROOF" }; - IfcRoofTypeEnum.DOME_ROOF = { type: 3, value: "DOME_ROOF" }; - IfcRoofTypeEnum.FREEFORM = { type: 3, value: "FREEFORM" }; - IfcRoofTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcRoofTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcRoofTypeEnum = IfcRoofTypeEnum; - class IfcSIPrefix { + IFC42.IfcStructuralSurfaceMember = IfcStructuralSurfaceMember; + class IfcStructuralSurfaceMemberVarying extends IfcStructuralSurfaceMember { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.PredefinedType = PredefinedType; + this.Thickness = Thickness; + this.type = 2218152070; + } } - IfcSIPrefix.EXA = { type: 3, value: "EXA" }; - IfcSIPrefix.PETA = { type: 3, value: "PETA" }; - IfcSIPrefix.TERA = { type: 3, value: "TERA" }; - IfcSIPrefix.GIGA = { type: 3, value: "GIGA" }; - IfcSIPrefix.MEGA = { type: 3, value: "MEGA" }; - IfcSIPrefix.KILO = { type: 3, value: "KILO" }; - IfcSIPrefix.HECTO = { type: 3, value: "HECTO" }; - IfcSIPrefix.DECA = { type: 3, value: "DECA" }; - IfcSIPrefix.DECI = { type: 3, value: "DECI" }; - IfcSIPrefix.CENTI = { type: 3, value: "CENTI" }; - IfcSIPrefix.MILLI = { type: 3, value: "MILLI" }; - IfcSIPrefix.MICRO = { type: 3, value: "MICRO" }; - IfcSIPrefix.NANO = { type: 3, value: "NANO" }; - IfcSIPrefix.PICO = { type: 3, value: "PICO" }; - IfcSIPrefix.FEMTO = { type: 3, value: "FEMTO" }; - IfcSIPrefix.ATTO = { type: 3, value: "ATTO" }; - IFC42.IfcSIPrefix = IfcSIPrefix; - class IfcSIUnitName { + IFC42.IfcStructuralSurfaceMemberVarying = IfcStructuralSurfaceMemberVarying; + class IfcStructuralSurfaceReaction extends IfcStructuralReaction { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedLoad = AppliedLoad; + this.GlobalOrLocal = GlobalOrLocal; + this.PredefinedType = PredefinedType; + this.type = 603775116; + } } - IfcSIUnitName.AMPERE = { type: 3, value: "AMPERE" }; - IfcSIUnitName.BECQUEREL = { type: 3, value: "BECQUEREL" }; - IfcSIUnitName.CANDELA = { type: 3, value: "CANDELA" }; - IfcSIUnitName.COULOMB = { type: 3, value: "COULOMB" }; - IfcSIUnitName.CUBIC_METRE = { type: 3, value: "CUBIC_METRE" }; - IfcSIUnitName.DEGREE_CELSIUS = { type: 3, value: "DEGREE_CELSIUS" }; - IfcSIUnitName.FARAD = { type: 3, value: "FARAD" }; - IfcSIUnitName.GRAM = { type: 3, value: "GRAM" }; - IfcSIUnitName.GRAY = { type: 3, value: "GRAY" }; - IfcSIUnitName.HENRY = { type: 3, value: "HENRY" }; - IfcSIUnitName.HERTZ = { type: 3, value: "HERTZ" }; - IfcSIUnitName.JOULE = { type: 3, value: "JOULE" }; - IfcSIUnitName.KELVIN = { type: 3, value: "KELVIN" }; - IfcSIUnitName.LUMEN = { type: 3, value: "LUMEN" }; - IfcSIUnitName.LUX = { type: 3, value: "LUX" }; - IfcSIUnitName.METRE = { type: 3, value: "METRE" }; - IfcSIUnitName.MOLE = { type: 3, value: "MOLE" }; - IfcSIUnitName.NEWTON = { type: 3, value: "NEWTON" }; - IfcSIUnitName.OHM = { type: 3, value: "OHM" }; - IfcSIUnitName.PASCAL = { type: 3, value: "PASCAL" }; - IfcSIUnitName.RADIAN = { type: 3, value: "RADIAN" }; - IfcSIUnitName.SECOND = { type: 3, value: "SECOND" }; - IfcSIUnitName.SIEMENS = { type: 3, value: "SIEMENS" }; - IfcSIUnitName.SIEVERT = { type: 3, value: "SIEVERT" }; - IfcSIUnitName.SQUARE_METRE = { type: 3, value: "SQUARE_METRE" }; - IfcSIUnitName.STERADIAN = { type: 3, value: "STERADIAN" }; - IfcSIUnitName.TESLA = { type: 3, value: "TESLA" }; - IfcSIUnitName.VOLT = { type: 3, value: "VOLT" }; - IfcSIUnitName.WATT = { type: 3, value: "WATT" }; - IfcSIUnitName.WEBER = { type: 3, value: "WEBER" }; - IFC42.IfcSIUnitName = IfcSIUnitName; - class IfcSanitaryTerminalTypeEnum { + IFC42.IfcStructuralSurfaceReaction = IfcStructuralSurfaceReaction; + class IfcSubContractResourceType extends IfcConstructionResourceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.ResourceType = ResourceType; + this.BaseCosts = BaseCosts; + this.BaseQuantity = BaseQuantity; + this.PredefinedType = PredefinedType; + this.type = 4095615324; + } } - IfcSanitaryTerminalTypeEnum.BATH = { type: 3, value: "BATH" }; - IfcSanitaryTerminalTypeEnum.BIDET = { type: 3, value: "BIDET" }; - IfcSanitaryTerminalTypeEnum.CISTERN = { type: 3, value: "CISTERN" }; - IfcSanitaryTerminalTypeEnum.SHOWER = { type: 3, value: "SHOWER" }; - IfcSanitaryTerminalTypeEnum.SINK = { type: 3, value: "SINK" }; - IfcSanitaryTerminalTypeEnum.SANITARYFOUNTAIN = { type: 3, value: "SANITARYFOUNTAIN" }; - IfcSanitaryTerminalTypeEnum.TOILETPAN = { type: 3, value: "TOILETPAN" }; - IfcSanitaryTerminalTypeEnum.URINAL = { type: 3, value: "URINAL" }; - IfcSanitaryTerminalTypeEnum.WASHHANDBASIN = { type: 3, value: "WASHHANDBASIN" }; - IfcSanitaryTerminalTypeEnum.WCSEAT = { type: 3, value: "WCSEAT" }; - IfcSanitaryTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSanitaryTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcSanitaryTerminalTypeEnum = IfcSanitaryTerminalTypeEnum; - class IfcSectionTypeEnum { + IFC42.IfcSubContractResourceType = IfcSubContractResourceType; + class IfcSurfaceCurve extends IfcCurve { + constructor(Curve3D, AssociatedGeometry, MasterRepresentation) { + super(); + this.Curve3D = Curve3D; + this.AssociatedGeometry = AssociatedGeometry; + this.MasterRepresentation = MasterRepresentation; + this.type = 699246055; + } } - IfcSectionTypeEnum.UNIFORM = { type: 3, value: "UNIFORM" }; - IfcSectionTypeEnum.TAPERED = { type: 3, value: "TAPERED" }; - IFC42.IfcSectionTypeEnum = IfcSectionTypeEnum; - class IfcSensorTypeEnum { + IFC42.IfcSurfaceCurve = IfcSurfaceCurve; + class IfcSurfaceCurveSweptAreaSolid extends IfcSweptAreaSolid { + constructor(SweptArea, Position, Directrix, StartParam, EndParam, ReferenceSurface) { + super(SweptArea, Position); + this.SweptArea = SweptArea; + this.Position = Position; + this.Directrix = Directrix; + this.StartParam = StartParam; + this.EndParam = EndParam; + this.ReferenceSurface = ReferenceSurface; + this.type = 2028607225; + } } - IfcSensorTypeEnum.COSENSOR = { type: 3, value: "COSENSOR" }; - IfcSensorTypeEnum.CO2SENSOR = { type: 3, value: "CO2SENSOR" }; - IfcSensorTypeEnum.CONDUCTANCESENSOR = { type: 3, value: "CONDUCTANCESENSOR" }; - IfcSensorTypeEnum.CONTACTSENSOR = { type: 3, value: "CONTACTSENSOR" }; - IfcSensorTypeEnum.FIRESENSOR = { type: 3, value: "FIRESENSOR" }; - IfcSensorTypeEnum.FLOWSENSOR = { type: 3, value: "FLOWSENSOR" }; - IfcSensorTypeEnum.FROSTSENSOR = { type: 3, value: "FROSTSENSOR" }; - IfcSensorTypeEnum.GASSENSOR = { type: 3, value: "GASSENSOR" }; - IfcSensorTypeEnum.HEATSENSOR = { type: 3, value: "HEATSENSOR" }; - IfcSensorTypeEnum.HUMIDITYSENSOR = { type: 3, value: "HUMIDITYSENSOR" }; - IfcSensorTypeEnum.IDENTIFIERSENSOR = { type: 3, value: "IDENTIFIERSENSOR" }; - IfcSensorTypeEnum.IONCONCENTRATIONSENSOR = { type: 3, value: "IONCONCENTRATIONSENSOR" }; - IfcSensorTypeEnum.LEVELSENSOR = { type: 3, value: "LEVELSENSOR" }; - IfcSensorTypeEnum.LIGHTSENSOR = { type: 3, value: "LIGHTSENSOR" }; - IfcSensorTypeEnum.MOISTURESENSOR = { type: 3, value: "MOISTURESENSOR" }; - IfcSensorTypeEnum.MOVEMENTSENSOR = { type: 3, value: "MOVEMENTSENSOR" }; - IfcSensorTypeEnum.PHSENSOR = { type: 3, value: "PHSENSOR" }; - IfcSensorTypeEnum.PRESSURESENSOR = { type: 3, value: "PRESSURESENSOR" }; - IfcSensorTypeEnum.RADIATIONSENSOR = { type: 3, value: "RADIATIONSENSOR" }; - IfcSensorTypeEnum.RADIOACTIVITYSENSOR = { type: 3, value: "RADIOACTIVITYSENSOR" }; - IfcSensorTypeEnum.SMOKESENSOR = { type: 3, value: "SMOKESENSOR" }; - IfcSensorTypeEnum.SOUNDSENSOR = { type: 3, value: "SOUNDSENSOR" }; - IfcSensorTypeEnum.TEMPERATURESENSOR = { type: 3, value: "TEMPERATURESENSOR" }; - IfcSensorTypeEnum.WINDSENSOR = { type: 3, value: "WINDSENSOR" }; - IfcSensorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSensorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcSensorTypeEnum = IfcSensorTypeEnum; - class IfcSequenceEnum { + IFC42.IfcSurfaceCurveSweptAreaSolid = IfcSurfaceCurveSweptAreaSolid; + class IfcSurfaceOfLinearExtrusion extends IfcSweptSurface { + constructor(SweptCurve, Position, ExtrudedDirection, Depth) { + super(SweptCurve, Position); + this.SweptCurve = SweptCurve; + this.Position = Position; + this.ExtrudedDirection = ExtrudedDirection; + this.Depth = Depth; + this.type = 2809605785; + } } - IfcSequenceEnum.START_START = { type: 3, value: "START_START" }; - IfcSequenceEnum.START_FINISH = { type: 3, value: "START_FINISH" }; - IfcSequenceEnum.FINISH_START = { type: 3, value: "FINISH_START" }; - IfcSequenceEnum.FINISH_FINISH = { type: 3, value: "FINISH_FINISH" }; - IfcSequenceEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSequenceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcSequenceEnum = IfcSequenceEnum; - class IfcShadingDeviceTypeEnum { + IFC42.IfcSurfaceOfLinearExtrusion = IfcSurfaceOfLinearExtrusion; + class IfcSurfaceOfRevolution extends IfcSweptSurface { + constructor(SweptCurve, Position, AxisPosition) { + super(SweptCurve, Position); + this.SweptCurve = SweptCurve; + this.Position = Position; + this.AxisPosition = AxisPosition; + this.type = 4124788165; + } } - IfcShadingDeviceTypeEnum.JALOUSIE = { type: 3, value: "JALOUSIE" }; - IfcShadingDeviceTypeEnum.SHUTTER = { type: 3, value: "SHUTTER" }; - IfcShadingDeviceTypeEnum.AWNING = { type: 3, value: "AWNING" }; - IfcShadingDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcShadingDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcShadingDeviceTypeEnum = IfcShadingDeviceTypeEnum; - class IfcSimplePropertyTemplateTypeEnum { + IFC42.IfcSurfaceOfRevolution = IfcSurfaceOfRevolution; + class IfcSystemFurnitureElementType extends IfcFurnishingElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1580310250; + } } - IfcSimplePropertyTemplateTypeEnum.P_SINGLEVALUE = { type: 3, value: "P_SINGLEVALUE" }; - IfcSimplePropertyTemplateTypeEnum.P_ENUMERATEDVALUE = { type: 3, value: "P_ENUMERATEDVALUE" }; - IfcSimplePropertyTemplateTypeEnum.P_BOUNDEDVALUE = { type: 3, value: "P_BOUNDEDVALUE" }; - IfcSimplePropertyTemplateTypeEnum.P_LISTVALUE = { type: 3, value: "P_LISTVALUE" }; - IfcSimplePropertyTemplateTypeEnum.P_TABLEVALUE = { type: 3, value: "P_TABLEVALUE" }; - IfcSimplePropertyTemplateTypeEnum.P_REFERENCEVALUE = { type: 3, value: "P_REFERENCEVALUE" }; - IfcSimplePropertyTemplateTypeEnum.Q_LENGTH = { type: 3, value: "Q_LENGTH" }; - IfcSimplePropertyTemplateTypeEnum.Q_AREA = { type: 3, value: "Q_AREA" }; - IfcSimplePropertyTemplateTypeEnum.Q_VOLUME = { type: 3, value: "Q_VOLUME" }; - IfcSimplePropertyTemplateTypeEnum.Q_COUNT = { type: 3, value: "Q_COUNT" }; - IfcSimplePropertyTemplateTypeEnum.Q_WEIGHT = { type: 3, value: "Q_WEIGHT" }; - IfcSimplePropertyTemplateTypeEnum.Q_TIME = { type: 3, value: "Q_TIME" }; - IFC42.IfcSimplePropertyTemplateTypeEnum = IfcSimplePropertyTemplateTypeEnum; - class IfcSlabTypeEnum { + IFC42.IfcSystemFurnitureElementType = IfcSystemFurnitureElementType; + class IfcTask extends IfcProcess { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Status, WorkMethod, IsMilestone, Priority, TaskTime, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.Status = Status; + this.WorkMethod = WorkMethod; + this.IsMilestone = IsMilestone; + this.Priority = Priority; + this.TaskTime = TaskTime; + this.PredefinedType = PredefinedType; + this.type = 3473067441; + } } - IfcSlabTypeEnum.FLOOR = { type: 3, value: "FLOOR" }; - IfcSlabTypeEnum.ROOF = { type: 3, value: "ROOF" }; - IfcSlabTypeEnum.LANDING = { type: 3, value: "LANDING" }; - IfcSlabTypeEnum.BASESLAB = { type: 3, value: "BASESLAB" }; - IfcSlabTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSlabTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcSlabTypeEnum = IfcSlabTypeEnum; - class IfcSolarDeviceTypeEnum { + IFC42.IfcTask = IfcTask; + class IfcTaskType extends IfcTypeProcess { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType, PredefinedType, WorkMethod) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.ProcessType = ProcessType; + this.PredefinedType = PredefinedType; + this.WorkMethod = WorkMethod; + this.type = 3206491090; + } } - IfcSolarDeviceTypeEnum.SOLARCOLLECTOR = { type: 3, value: "SOLARCOLLECTOR" }; - IfcSolarDeviceTypeEnum.SOLARPANEL = { type: 3, value: "SOLARPANEL" }; - IfcSolarDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSolarDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcSolarDeviceTypeEnum = IfcSolarDeviceTypeEnum; - class IfcSpaceHeaterTypeEnum { + IFC42.IfcTaskType = IfcTaskType; + class IfcTessellatedFaceSet extends IfcTessellatedItem { + constructor(Coordinates) { + super(); + this.Coordinates = Coordinates; + this.type = 2387106220; + } } - IfcSpaceHeaterTypeEnum.CONVECTOR = { type: 3, value: "CONVECTOR" }; - IfcSpaceHeaterTypeEnum.RADIATOR = { type: 3, value: "RADIATOR" }; - IfcSpaceHeaterTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSpaceHeaterTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcSpaceHeaterTypeEnum = IfcSpaceHeaterTypeEnum; - class IfcSpaceTypeEnum { + IFC42.IfcTessellatedFaceSet = IfcTessellatedFaceSet; + class IfcToroidalSurface extends IfcElementarySurface { + constructor(Position, MajorRadius, MinorRadius) { + super(Position); + this.Position = Position; + this.MajorRadius = MajorRadius; + this.MinorRadius = MinorRadius; + this.type = 1935646853; + } } - IfcSpaceTypeEnum.SPACE = { type: 3, value: "SPACE" }; - IfcSpaceTypeEnum.PARKING = { type: 3, value: "PARKING" }; - IfcSpaceTypeEnum.GFA = { type: 3, value: "GFA" }; - IfcSpaceTypeEnum.INTERNAL = { type: 3, value: "INTERNAL" }; - IfcSpaceTypeEnum.EXTERNAL = { type: 3, value: "EXTERNAL" }; - IfcSpaceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSpaceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcSpaceTypeEnum = IfcSpaceTypeEnum; - class IfcSpatialZoneTypeEnum { + IFC42.IfcToroidalSurface = IfcToroidalSurface; + class IfcTransportElementType extends IfcElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2097647324; + } } - IfcSpatialZoneTypeEnum.CONSTRUCTION = { type: 3, value: "CONSTRUCTION" }; - IfcSpatialZoneTypeEnum.FIRESAFETY = { type: 3, value: "FIRESAFETY" }; - IfcSpatialZoneTypeEnum.LIGHTING = { type: 3, value: "LIGHTING" }; - IfcSpatialZoneTypeEnum.OCCUPANCY = { type: 3, value: "OCCUPANCY" }; - IfcSpatialZoneTypeEnum.SECURITY = { type: 3, value: "SECURITY" }; - IfcSpatialZoneTypeEnum.THERMAL = { type: 3, value: "THERMAL" }; - IfcSpatialZoneTypeEnum.TRANSPORT = { type: 3, value: "TRANSPORT" }; - IfcSpatialZoneTypeEnum.VENTILATION = { type: 3, value: "VENTILATION" }; - IfcSpatialZoneTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSpatialZoneTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcSpatialZoneTypeEnum = IfcSpatialZoneTypeEnum; - class IfcStackTerminalTypeEnum { + IFC42.IfcTransportElementType = IfcTransportElementType; + class IfcTriangulatedFaceSet extends IfcTessellatedFaceSet { + constructor(Coordinates, Normals, Closed, CoordIndex, PnIndex) { + super(Coordinates); + this.Coordinates = Coordinates; + this.Normals = Normals; + this.Closed = Closed; + this.CoordIndex = CoordIndex; + this.PnIndex = PnIndex; + this.type = 2916149573; + } } - IfcStackTerminalTypeEnum.BIRDCAGE = { type: 3, value: "BIRDCAGE" }; - IfcStackTerminalTypeEnum.COWL = { type: 3, value: "COWL" }; - IfcStackTerminalTypeEnum.RAINWATERHOPPER = { type: 3, value: "RAINWATERHOPPER" }; - IfcStackTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcStackTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcStackTerminalTypeEnum = IfcStackTerminalTypeEnum; - class IfcStairFlightTypeEnum { + IFC42.IfcTriangulatedFaceSet = IfcTriangulatedFaceSet; + class IfcWindowLiningProperties extends IfcPreDefinedPropertySet { + constructor(GlobalId, OwnerHistory, Name, Description, LiningDepth, LiningThickness, TransomThickness, MullionThickness, FirstTransomOffset, SecondTransomOffset, FirstMullionOffset, SecondMullionOffset, ShapeAspectStyle, LiningOffset, LiningToPanelOffsetX, LiningToPanelOffsetY) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.LiningDepth = LiningDepth; + this.LiningThickness = LiningThickness; + this.TransomThickness = TransomThickness; + this.MullionThickness = MullionThickness; + this.FirstTransomOffset = FirstTransomOffset; + this.SecondTransomOffset = SecondTransomOffset; + this.FirstMullionOffset = FirstMullionOffset; + this.SecondMullionOffset = SecondMullionOffset; + this.ShapeAspectStyle = ShapeAspectStyle; + this.LiningOffset = LiningOffset; + this.LiningToPanelOffsetX = LiningToPanelOffsetX; + this.LiningToPanelOffsetY = LiningToPanelOffsetY; + this.type = 336235671; + } } - IfcStairFlightTypeEnum.STRAIGHT = { type: 3, value: "STRAIGHT" }; - IfcStairFlightTypeEnum.WINDER = { type: 3, value: "WINDER" }; - IfcStairFlightTypeEnum.SPIRAL = { type: 3, value: "SPIRAL" }; - IfcStairFlightTypeEnum.CURVED = { type: 3, value: "CURVED" }; - IfcStairFlightTypeEnum.FREEFORM = { type: 3, value: "FREEFORM" }; - IfcStairFlightTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcStairFlightTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcStairFlightTypeEnum = IfcStairFlightTypeEnum; - class IfcStairTypeEnum { + IFC42.IfcWindowLiningProperties = IfcWindowLiningProperties; + class IfcWindowPanelProperties extends IfcPreDefinedPropertySet { + constructor(GlobalId, OwnerHistory, Name, Description, OperationType, PanelPosition, FrameDepth, FrameThickness, ShapeAspectStyle) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.OperationType = OperationType; + this.PanelPosition = PanelPosition; + this.FrameDepth = FrameDepth; + this.FrameThickness = FrameThickness; + this.ShapeAspectStyle = ShapeAspectStyle; + this.type = 512836454; + } } - IfcStairTypeEnum.STRAIGHT_RUN_STAIR = { type: 3, value: "STRAIGHT_RUN_STAIR" }; - IfcStairTypeEnum.TWO_STRAIGHT_RUN_STAIR = { type: 3, value: "TWO_STRAIGHT_RUN_STAIR" }; - IfcStairTypeEnum.QUARTER_WINDING_STAIR = { type: 3, value: "QUARTER_WINDING_STAIR" }; - IfcStairTypeEnum.QUARTER_TURN_STAIR = { type: 3, value: "QUARTER_TURN_STAIR" }; - IfcStairTypeEnum.HALF_WINDING_STAIR = { type: 3, value: "HALF_WINDING_STAIR" }; - IfcStairTypeEnum.HALF_TURN_STAIR = { type: 3, value: "HALF_TURN_STAIR" }; - IfcStairTypeEnum.TWO_QUARTER_WINDING_STAIR = { type: 3, value: "TWO_QUARTER_WINDING_STAIR" }; - IfcStairTypeEnum.TWO_QUARTER_TURN_STAIR = { type: 3, value: "TWO_QUARTER_TURN_STAIR" }; - IfcStairTypeEnum.THREE_QUARTER_WINDING_STAIR = { type: 3, value: "THREE_QUARTER_WINDING_STAIR" }; - IfcStairTypeEnum.THREE_QUARTER_TURN_STAIR = { type: 3, value: "THREE_QUARTER_TURN_STAIR" }; - IfcStairTypeEnum.SPIRAL_STAIR = { type: 3, value: "SPIRAL_STAIR" }; - IfcStairTypeEnum.DOUBLE_RETURN_STAIR = { type: 3, value: "DOUBLE_RETURN_STAIR" }; - IfcStairTypeEnum.CURVED_RUN_STAIR = { type: 3, value: "CURVED_RUN_STAIR" }; - IfcStairTypeEnum.TWO_CURVED_RUN_STAIR = { type: 3, value: "TWO_CURVED_RUN_STAIR" }; - IfcStairTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcStairTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcStairTypeEnum = IfcStairTypeEnum; - class IfcStateEnum { + IFC42.IfcWindowPanelProperties = IfcWindowPanelProperties; + class IfcActor extends IfcObject { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.TheActor = TheActor; + this.type = 2296667514; + } } - IfcStateEnum.READWRITE = { type: 3, value: "READWRITE" }; - IfcStateEnum.READONLY = { type: 3, value: "READONLY" }; - IfcStateEnum.LOCKED = { type: 3, value: "LOCKED" }; - IfcStateEnum.READWRITELOCKED = { type: 3, value: "READWRITELOCKED" }; - IfcStateEnum.READONLYLOCKED = { type: 3, value: "READONLYLOCKED" }; - IFC42.IfcStateEnum = IfcStateEnum; - class IfcStructuralCurveActivityTypeEnum { + IFC42.IfcActor = IfcActor; + class IfcAdvancedBrep extends IfcManifoldSolidBrep { + constructor(Outer) { + super(Outer); + this.Outer = Outer; + this.type = 1635779807; + } } - IfcStructuralCurveActivityTypeEnum.CONST = { type: 3, value: "CONST" }; - IfcStructuralCurveActivityTypeEnum.LINEAR = { type: 3, value: "LINEAR" }; - IfcStructuralCurveActivityTypeEnum.POLYGONAL = { type: 3, value: "POLYGONAL" }; - IfcStructuralCurveActivityTypeEnum.EQUIDISTANT = { type: 3, value: "EQUIDISTANT" }; - IfcStructuralCurveActivityTypeEnum.SINUS = { type: 3, value: "SINUS" }; - IfcStructuralCurveActivityTypeEnum.PARABOLA = { type: 3, value: "PARABOLA" }; - IfcStructuralCurveActivityTypeEnum.DISCRETE = { type: 3, value: "DISCRETE" }; - IfcStructuralCurveActivityTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcStructuralCurveActivityTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcStructuralCurveActivityTypeEnum = IfcStructuralCurveActivityTypeEnum; - class IfcStructuralCurveMemberTypeEnum { + IFC42.IfcAdvancedBrep = IfcAdvancedBrep; + class IfcAdvancedBrepWithVoids extends IfcAdvancedBrep { + constructor(Outer, Voids) { + super(Outer); + this.Outer = Outer; + this.Voids = Voids; + this.type = 2603310189; + } } - IfcStructuralCurveMemberTypeEnum.RIGID_JOINED_MEMBER = { type: 3, value: "RIGID_JOINED_MEMBER" }; - IfcStructuralCurveMemberTypeEnum.PIN_JOINED_MEMBER = { type: 3, value: "PIN_JOINED_MEMBER" }; - IfcStructuralCurveMemberTypeEnum.CABLE = { type: 3, value: "CABLE" }; - IfcStructuralCurveMemberTypeEnum.TENSION_MEMBER = { type: 3, value: "TENSION_MEMBER" }; - IfcStructuralCurveMemberTypeEnum.COMPRESSION_MEMBER = { type: 3, value: "COMPRESSION_MEMBER" }; - IfcStructuralCurveMemberTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcStructuralCurveMemberTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcStructuralCurveMemberTypeEnum = IfcStructuralCurveMemberTypeEnum; - class IfcStructuralSurfaceActivityTypeEnum { + IFC42.IfcAdvancedBrepWithVoids = IfcAdvancedBrepWithVoids; + class IfcAnnotation extends IfcProduct { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.type = 1674181508; + } } - IfcStructuralSurfaceActivityTypeEnum.CONST = { type: 3, value: "CONST" }; - IfcStructuralSurfaceActivityTypeEnum.BILINEAR = { type: 3, value: "BILINEAR" }; - IfcStructuralSurfaceActivityTypeEnum.DISCRETE = { type: 3, value: "DISCRETE" }; - IfcStructuralSurfaceActivityTypeEnum.ISOCONTOUR = { type: 3, value: "ISOCONTOUR" }; - IfcStructuralSurfaceActivityTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcStructuralSurfaceActivityTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcStructuralSurfaceActivityTypeEnum = IfcStructuralSurfaceActivityTypeEnum; - class IfcStructuralSurfaceMemberTypeEnum { + IFC42.IfcAnnotation = IfcAnnotation; + class IfcBSplineSurface extends IfcBoundedSurface { + constructor(UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect) { + super(); + this.UDegree = UDegree; + this.VDegree = VDegree; + this.ControlPointsList = ControlPointsList; + this.SurfaceForm = SurfaceForm; + this.UClosed = UClosed; + this.VClosed = VClosed; + this.SelfIntersect = SelfIntersect; + this.type = 2887950389; + } } - IfcStructuralSurfaceMemberTypeEnum.BENDING_ELEMENT = { type: 3, value: "BENDING_ELEMENT" }; - IfcStructuralSurfaceMemberTypeEnum.MEMBRANE_ELEMENT = { type: 3, value: "MEMBRANE_ELEMENT" }; - IfcStructuralSurfaceMemberTypeEnum.SHELL = { type: 3, value: "SHELL" }; - IfcStructuralSurfaceMemberTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcStructuralSurfaceMemberTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcStructuralSurfaceMemberTypeEnum = IfcStructuralSurfaceMemberTypeEnum; - class IfcSubContractResourceTypeEnum { + IFC42.IfcBSplineSurface = IfcBSplineSurface; + class IfcBSplineSurfaceWithKnots extends IfcBSplineSurface { + constructor(UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect, UMultiplicities, VMultiplicities, UKnots, VKnots, KnotSpec) { + super(UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect); + this.UDegree = UDegree; + this.VDegree = VDegree; + this.ControlPointsList = ControlPointsList; + this.SurfaceForm = SurfaceForm; + this.UClosed = UClosed; + this.VClosed = VClosed; + this.SelfIntersect = SelfIntersect; + this.UMultiplicities = UMultiplicities; + this.VMultiplicities = VMultiplicities; + this.UKnots = UKnots; + this.VKnots = VKnots; + this.KnotSpec = KnotSpec; + this.type = 167062518; + } } - IfcSubContractResourceTypeEnum.PURCHASE = { type: 3, value: "PURCHASE" }; - IfcSubContractResourceTypeEnum.WORK = { type: 3, value: "WORK" }; - IfcSubContractResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSubContractResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcSubContractResourceTypeEnum = IfcSubContractResourceTypeEnum; - class IfcSurfaceFeatureTypeEnum { + IFC42.IfcBSplineSurfaceWithKnots = IfcBSplineSurfaceWithKnots; + class IfcBlock extends IfcCsgPrimitive3D { + constructor(Position, XLength, YLength, ZLength) { + super(Position); + this.Position = Position; + this.XLength = XLength; + this.YLength = YLength; + this.ZLength = ZLength; + this.type = 1334484129; + } } - IfcSurfaceFeatureTypeEnum.MARK = { type: 3, value: "MARK" }; - IfcSurfaceFeatureTypeEnum.TAG = { type: 3, value: "TAG" }; - IfcSurfaceFeatureTypeEnum.TREATMENT = { type: 3, value: "TREATMENT" }; - IfcSurfaceFeatureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSurfaceFeatureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcSurfaceFeatureTypeEnum = IfcSurfaceFeatureTypeEnum; - class IfcSurfaceSide { + IFC42.IfcBlock = IfcBlock; + class IfcBooleanClippingResult extends IfcBooleanResult { + constructor(Operator, FirstOperand, SecondOperand) { + super(Operator, FirstOperand, SecondOperand); + this.Operator = Operator; + this.FirstOperand = FirstOperand; + this.SecondOperand = SecondOperand; + this.type = 3649129432; + } } - IfcSurfaceSide.POSITIVE = { type: 3, value: "POSITIVE" }; - IfcSurfaceSide.NEGATIVE = { type: 3, value: "NEGATIVE" }; - IfcSurfaceSide.BOTH = { type: 3, value: "BOTH" }; - IFC42.IfcSurfaceSide = IfcSurfaceSide; - class IfcSwitchingDeviceTypeEnum { + IFC42.IfcBooleanClippingResult = IfcBooleanClippingResult; + class IfcBoundedCurve extends IfcCurve { + constructor() { + super(); + this.type = 1260505505; + } } - IfcSwitchingDeviceTypeEnum.CONTACTOR = { type: 3, value: "CONTACTOR" }; - IfcSwitchingDeviceTypeEnum.DIMMERSWITCH = { type: 3, value: "DIMMERSWITCH" }; - IfcSwitchingDeviceTypeEnum.EMERGENCYSTOP = { type: 3, value: "EMERGENCYSTOP" }; - IfcSwitchingDeviceTypeEnum.KEYPAD = { type: 3, value: "KEYPAD" }; - IfcSwitchingDeviceTypeEnum.MOMENTARYSWITCH = { type: 3, value: "MOMENTARYSWITCH" }; - IfcSwitchingDeviceTypeEnum.SELECTORSWITCH = { type: 3, value: "SELECTORSWITCH" }; - IfcSwitchingDeviceTypeEnum.STARTER = { type: 3, value: "STARTER" }; - IfcSwitchingDeviceTypeEnum.SWITCHDISCONNECTOR = { type: 3, value: "SWITCHDISCONNECTOR" }; - IfcSwitchingDeviceTypeEnum.TOGGLESWITCH = { type: 3, value: "TOGGLESWITCH" }; - IfcSwitchingDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSwitchingDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcSwitchingDeviceTypeEnum = IfcSwitchingDeviceTypeEnum; - class IfcSystemFurnitureElementTypeEnum { + IFC42.IfcBoundedCurve = IfcBoundedCurve; + class IfcBuilding extends IfcSpatialStructureElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, ElevationOfRefHeight, ElevationOfTerrain, BuildingAddress) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.LongName = LongName; + this.CompositionType = CompositionType; + this.ElevationOfRefHeight = ElevationOfRefHeight; + this.ElevationOfTerrain = ElevationOfTerrain; + this.BuildingAddress = BuildingAddress; + this.type = 4031249490; + } } - IfcSystemFurnitureElementTypeEnum.PANEL = { type: 3, value: "PANEL" }; - IfcSystemFurnitureElementTypeEnum.WORKSURFACE = { type: 3, value: "WORKSURFACE" }; - IfcSystemFurnitureElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSystemFurnitureElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcSystemFurnitureElementTypeEnum = IfcSystemFurnitureElementTypeEnum; - class IfcTankTypeEnum { + IFC42.IfcBuilding = IfcBuilding; + class IfcBuildingElementType extends IfcElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 1950629157; + } } - IfcTankTypeEnum.BASIN = { type: 3, value: "BASIN" }; - IfcTankTypeEnum.BREAKPRESSURE = { type: 3, value: "BREAKPRESSURE" }; - IfcTankTypeEnum.EXPANSION = { type: 3, value: "EXPANSION" }; - IfcTankTypeEnum.FEEDANDEXPANSION = { type: 3, value: "FEEDANDEXPANSION" }; - IfcTankTypeEnum.PRESSUREVESSEL = { type: 3, value: "PRESSUREVESSEL" }; - IfcTankTypeEnum.STORAGE = { type: 3, value: "STORAGE" }; - IfcTankTypeEnum.VESSEL = { type: 3, value: "VESSEL" }; - IfcTankTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcTankTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcTankTypeEnum = IfcTankTypeEnum; - class IfcTaskDurationEnum { + IFC42.IfcBuildingElementType = IfcBuildingElementType; + class IfcBuildingStorey extends IfcSpatialStructureElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, Elevation) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.LongName = LongName; + this.CompositionType = CompositionType; + this.Elevation = Elevation; + this.type = 3124254112; + } } - IfcTaskDurationEnum.ELAPSEDTIME = { type: 3, value: "ELAPSEDTIME" }; - IfcTaskDurationEnum.WORKTIME = { type: 3, value: "WORKTIME" }; - IfcTaskDurationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcTaskDurationEnum = IfcTaskDurationEnum; - class IfcTaskTypeEnum { + IFC42.IfcBuildingStorey = IfcBuildingStorey; + class IfcChimneyType extends IfcBuildingElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2197970202; + } } - IfcTaskTypeEnum.ATTENDANCE = { type: 3, value: "ATTENDANCE" }; - IfcTaskTypeEnum.CONSTRUCTION = { type: 3, value: "CONSTRUCTION" }; - IfcTaskTypeEnum.DEMOLITION = { type: 3, value: "DEMOLITION" }; - IfcTaskTypeEnum.DISMANTLE = { type: 3, value: "DISMANTLE" }; - IfcTaskTypeEnum.DISPOSAL = { type: 3, value: "DISPOSAL" }; - IfcTaskTypeEnum.INSTALLATION = { type: 3, value: "INSTALLATION" }; - IfcTaskTypeEnum.LOGISTIC = { type: 3, value: "LOGISTIC" }; - IfcTaskTypeEnum.MAINTENANCE = { type: 3, value: "MAINTENANCE" }; - IfcTaskTypeEnum.MOVE = { type: 3, value: "MOVE" }; - IfcTaskTypeEnum.OPERATION = { type: 3, value: "OPERATION" }; - IfcTaskTypeEnum.REMOVAL = { type: 3, value: "REMOVAL" }; - IfcTaskTypeEnum.RENOVATION = { type: 3, value: "RENOVATION" }; - IfcTaskTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcTaskTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcTaskTypeEnum = IfcTaskTypeEnum; - class IfcTendonAnchorTypeEnum { + IFC42.IfcChimneyType = IfcChimneyType; + class IfcCircleHollowProfileDef extends IfcCircleProfileDef { + constructor(ProfileType, ProfileName, Position, Radius, WallThickness) { + super(ProfileType, ProfileName, Position, Radius); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.Radius = Radius; + this.WallThickness = WallThickness; + this.type = 2937912522; + } } - IfcTendonAnchorTypeEnum.COUPLER = { type: 3, value: "COUPLER" }; - IfcTendonAnchorTypeEnum.FIXED_END = { type: 3, value: "FIXED_END" }; - IfcTendonAnchorTypeEnum.TENSIONING_END = { type: 3, value: "TENSIONING_END" }; - IfcTendonAnchorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcTendonAnchorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcTendonAnchorTypeEnum = IfcTendonAnchorTypeEnum; - class IfcTendonTypeEnum { + IFC42.IfcCircleHollowProfileDef = IfcCircleHollowProfileDef; + class IfcCivilElementType extends IfcElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 3893394355; + } + } + IFC42.IfcCivilElementType = IfcCivilElementType; + class IfcColumnType extends IfcBuildingElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 300633059; + } } - IfcTendonTypeEnum.BAR = { type: 3, value: "BAR" }; - IfcTendonTypeEnum.COATED = { type: 3, value: "COATED" }; - IfcTendonTypeEnum.STRAND = { type: 3, value: "STRAND" }; - IfcTendonTypeEnum.WIRE = { type: 3, value: "WIRE" }; - IfcTendonTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcTendonTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcTendonTypeEnum = IfcTendonTypeEnum; - class IfcTextPath { + IFC42.IfcColumnType = IfcColumnType; + class IfcComplexPropertyTemplate extends IfcPropertyTemplate { + constructor(GlobalId, OwnerHistory, Name, Description, UsageName, TemplateType, HasPropertyTemplates) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.UsageName = UsageName; + this.TemplateType = TemplateType; + this.HasPropertyTemplates = HasPropertyTemplates; + this.type = 3875453745; + } } - IfcTextPath.LEFT = { type: 3, value: "LEFT" }; - IfcTextPath.RIGHT = { type: 3, value: "RIGHT" }; - IfcTextPath.UP = { type: 3, value: "UP" }; - IfcTextPath.DOWN = { type: 3, value: "DOWN" }; - IFC42.IfcTextPath = IfcTextPath; - class IfcTimeSeriesDataTypeEnum { + IFC42.IfcComplexPropertyTemplate = IfcComplexPropertyTemplate; + class IfcCompositeCurve extends IfcBoundedCurve { + constructor(Segments, SelfIntersect) { + super(); + this.Segments = Segments; + this.SelfIntersect = SelfIntersect; + this.type = 3732776249; + } } - IfcTimeSeriesDataTypeEnum.CONTINUOUS = { type: 3, value: "CONTINUOUS" }; - IfcTimeSeriesDataTypeEnum.DISCRETE = { type: 3, value: "DISCRETE" }; - IfcTimeSeriesDataTypeEnum.DISCRETEBINARY = { type: 3, value: "DISCRETEBINARY" }; - IfcTimeSeriesDataTypeEnum.PIECEWISEBINARY = { type: 3, value: "PIECEWISEBINARY" }; - IfcTimeSeriesDataTypeEnum.PIECEWISECONSTANT = { type: 3, value: "PIECEWISECONSTANT" }; - IfcTimeSeriesDataTypeEnum.PIECEWISECONTINUOUS = { type: 3, value: "PIECEWISECONTINUOUS" }; - IfcTimeSeriesDataTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcTimeSeriesDataTypeEnum = IfcTimeSeriesDataTypeEnum; - class IfcTransformerTypeEnum { + IFC42.IfcCompositeCurve = IfcCompositeCurve; + class IfcCompositeCurveOnSurface extends IfcCompositeCurve { + constructor(Segments, SelfIntersect) { + super(Segments, SelfIntersect); + this.Segments = Segments; + this.SelfIntersect = SelfIntersect; + this.type = 15328376; + } } - IfcTransformerTypeEnum.CURRENT = { type: 3, value: "CURRENT" }; - IfcTransformerTypeEnum.FREQUENCY = { type: 3, value: "FREQUENCY" }; - IfcTransformerTypeEnum.INVERTER = { type: 3, value: "INVERTER" }; - IfcTransformerTypeEnum.RECTIFIER = { type: 3, value: "RECTIFIER" }; - IfcTransformerTypeEnum.VOLTAGE = { type: 3, value: "VOLTAGE" }; - IfcTransformerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcTransformerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcTransformerTypeEnum = IfcTransformerTypeEnum; - class IfcTransitionCode { + IFC42.IfcCompositeCurveOnSurface = IfcCompositeCurveOnSurface; + class IfcConic extends IfcCurve { + constructor(Position) { + super(); + this.Position = Position; + this.type = 2510884976; + } } - IfcTransitionCode.DISCONTINUOUS = { type: 3, value: "DISCONTINUOUS" }; - IfcTransitionCode.CONTINUOUS = { type: 3, value: "CONTINUOUS" }; - IfcTransitionCode.CONTSAMEGRADIENT = { type: 3, value: "CONTSAMEGRADIENT" }; - IfcTransitionCode.CONTSAMEGRADIENTSAMECURVATURE = { type: 3, value: "CONTSAMEGRADIENTSAMECURVATURE" }; - IFC42.IfcTransitionCode = IfcTransitionCode; - class IfcTransportElementTypeEnum { + IFC42.IfcConic = IfcConic; + class IfcConstructionEquipmentResourceType extends IfcConstructionResourceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.ResourceType = ResourceType; + this.BaseCosts = BaseCosts; + this.BaseQuantity = BaseQuantity; + this.PredefinedType = PredefinedType; + this.type = 2185764099; + } } - IfcTransportElementTypeEnum.ELEVATOR = { type: 3, value: "ELEVATOR" }; - IfcTransportElementTypeEnum.ESCALATOR = { type: 3, value: "ESCALATOR" }; - IfcTransportElementTypeEnum.MOVINGWALKWAY = { type: 3, value: "MOVINGWALKWAY" }; - IfcTransportElementTypeEnum.CRANEWAY = { type: 3, value: "CRANEWAY" }; - IfcTransportElementTypeEnum.LIFTINGGEAR = { type: 3, value: "LIFTINGGEAR" }; - IfcTransportElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcTransportElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcTransportElementTypeEnum = IfcTransportElementTypeEnum; - class IfcTrimmingPreference { + IFC42.IfcConstructionEquipmentResourceType = IfcConstructionEquipmentResourceType; + class IfcConstructionMaterialResourceType extends IfcConstructionResourceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.ResourceType = ResourceType; + this.BaseCosts = BaseCosts; + this.BaseQuantity = BaseQuantity; + this.PredefinedType = PredefinedType; + this.type = 4105962743; + } } - IfcTrimmingPreference.CARTESIAN = { type: 3, value: "CARTESIAN" }; - IfcTrimmingPreference.PARAMETER = { type: 3, value: "PARAMETER" }; - IfcTrimmingPreference.UNSPECIFIED = { type: 3, value: "UNSPECIFIED" }; - IFC42.IfcTrimmingPreference = IfcTrimmingPreference; - class IfcTubeBundleTypeEnum { + IFC42.IfcConstructionMaterialResourceType = IfcConstructionMaterialResourceType; + class IfcConstructionProductResourceType extends IfcConstructionResourceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.ResourceType = ResourceType; + this.BaseCosts = BaseCosts; + this.BaseQuantity = BaseQuantity; + this.PredefinedType = PredefinedType; + this.type = 1525564444; + } } - IfcTubeBundleTypeEnum.FINNED = { type: 3, value: "FINNED" }; - IfcTubeBundleTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcTubeBundleTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcTubeBundleTypeEnum = IfcTubeBundleTypeEnum; - class IfcUnitEnum { + IFC42.IfcConstructionProductResourceType = IfcConstructionProductResourceType; + class IfcConstructionResource extends IfcResource { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.Usage = Usage; + this.BaseCosts = BaseCosts; + this.BaseQuantity = BaseQuantity; + this.type = 2559216714; + } } - IfcUnitEnum.ABSORBEDDOSEUNIT = { type: 3, value: "ABSORBEDDOSEUNIT" }; - IfcUnitEnum.AMOUNTOFSUBSTANCEUNIT = { type: 3, value: "AMOUNTOFSUBSTANCEUNIT" }; - IfcUnitEnum.AREAUNIT = { type: 3, value: "AREAUNIT" }; - IfcUnitEnum.DOSEEQUIVALENTUNIT = { type: 3, value: "DOSEEQUIVALENTUNIT" }; - IfcUnitEnum.ELECTRICCAPACITANCEUNIT = { type: 3, value: "ELECTRICCAPACITANCEUNIT" }; - IfcUnitEnum.ELECTRICCHARGEUNIT = { type: 3, value: "ELECTRICCHARGEUNIT" }; - IfcUnitEnum.ELECTRICCONDUCTANCEUNIT = { type: 3, value: "ELECTRICCONDUCTANCEUNIT" }; - IfcUnitEnum.ELECTRICCURRENTUNIT = { type: 3, value: "ELECTRICCURRENTUNIT" }; - IfcUnitEnum.ELECTRICRESISTANCEUNIT = { type: 3, value: "ELECTRICRESISTANCEUNIT" }; - IfcUnitEnum.ELECTRICVOLTAGEUNIT = { type: 3, value: "ELECTRICVOLTAGEUNIT" }; - IfcUnitEnum.ENERGYUNIT = { type: 3, value: "ENERGYUNIT" }; - IfcUnitEnum.FORCEUNIT = { type: 3, value: "FORCEUNIT" }; - IfcUnitEnum.FREQUENCYUNIT = { type: 3, value: "FREQUENCYUNIT" }; - IfcUnitEnum.ILLUMINANCEUNIT = { type: 3, value: "ILLUMINANCEUNIT" }; - IfcUnitEnum.INDUCTANCEUNIT = { type: 3, value: "INDUCTANCEUNIT" }; - IfcUnitEnum.LENGTHUNIT = { type: 3, value: "LENGTHUNIT" }; - IfcUnitEnum.LUMINOUSFLUXUNIT = { type: 3, value: "LUMINOUSFLUXUNIT" }; - IfcUnitEnum.LUMINOUSINTENSITYUNIT = { type: 3, value: "LUMINOUSINTENSITYUNIT" }; - IfcUnitEnum.MAGNETICFLUXDENSITYUNIT = { type: 3, value: "MAGNETICFLUXDENSITYUNIT" }; - IfcUnitEnum.MAGNETICFLUXUNIT = { type: 3, value: "MAGNETICFLUXUNIT" }; - IfcUnitEnum.MASSUNIT = { type: 3, value: "MASSUNIT" }; - IfcUnitEnum.PLANEANGLEUNIT = { type: 3, value: "PLANEANGLEUNIT" }; - IfcUnitEnum.POWERUNIT = { type: 3, value: "POWERUNIT" }; - IfcUnitEnum.PRESSUREUNIT = { type: 3, value: "PRESSUREUNIT" }; - IfcUnitEnum.RADIOACTIVITYUNIT = { type: 3, value: "RADIOACTIVITYUNIT" }; - IfcUnitEnum.SOLIDANGLEUNIT = { type: 3, value: "SOLIDANGLEUNIT" }; - IfcUnitEnum.THERMODYNAMICTEMPERATUREUNIT = { type: 3, value: "THERMODYNAMICTEMPERATUREUNIT" }; - IfcUnitEnum.TIMEUNIT = { type: 3, value: "TIMEUNIT" }; - IfcUnitEnum.VOLUMEUNIT = { type: 3, value: "VOLUMEUNIT" }; - IfcUnitEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IFC42.IfcUnitEnum = IfcUnitEnum; - class IfcUnitaryControlElementTypeEnum { + IFC42.IfcConstructionResource = IfcConstructionResource; + class IfcControl extends IfcObject { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.type = 3293443760; + } } - IfcUnitaryControlElementTypeEnum.ALARMPANEL = { type: 3, value: "ALARMPANEL" }; - IfcUnitaryControlElementTypeEnum.CONTROLPANEL = { type: 3, value: "CONTROLPANEL" }; - IfcUnitaryControlElementTypeEnum.GASDETECTIONPANEL = { type: 3, value: "GASDETECTIONPANEL" }; - IfcUnitaryControlElementTypeEnum.INDICATORPANEL = { type: 3, value: "INDICATORPANEL" }; - IfcUnitaryControlElementTypeEnum.MIMICPANEL = { type: 3, value: "MIMICPANEL" }; - IfcUnitaryControlElementTypeEnum.HUMIDISTAT = { type: 3, value: "HUMIDISTAT" }; - IfcUnitaryControlElementTypeEnum.THERMOSTAT = { type: 3, value: "THERMOSTAT" }; - IfcUnitaryControlElementTypeEnum.WEATHERSTATION = { type: 3, value: "WEATHERSTATION" }; - IfcUnitaryControlElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcUnitaryControlElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcUnitaryControlElementTypeEnum = IfcUnitaryControlElementTypeEnum; - class IfcUnitaryEquipmentTypeEnum { + IFC42.IfcControl = IfcControl; + class IfcCostItem extends IfcControl { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, CostValues, CostQuantities) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.PredefinedType = PredefinedType; + this.CostValues = CostValues; + this.CostQuantities = CostQuantities; + this.type = 3895139033; + } } - IfcUnitaryEquipmentTypeEnum.AIRHANDLER = { type: 3, value: "AIRHANDLER" }; - IfcUnitaryEquipmentTypeEnum.AIRCONDITIONINGUNIT = { type: 3, value: "AIRCONDITIONINGUNIT" }; - IfcUnitaryEquipmentTypeEnum.DEHUMIDIFIER = { type: 3, value: "DEHUMIDIFIER" }; - IfcUnitaryEquipmentTypeEnum.SPLITSYSTEM = { type: 3, value: "SPLITSYSTEM" }; - IfcUnitaryEquipmentTypeEnum.ROOFTOPUNIT = { type: 3, value: "ROOFTOPUNIT" }; - IfcUnitaryEquipmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcUnitaryEquipmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcUnitaryEquipmentTypeEnum = IfcUnitaryEquipmentTypeEnum; - class IfcValveTypeEnum { + IFC42.IfcCostItem = IfcCostItem; + class IfcCostSchedule extends IfcControl { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, SubmittedOn, UpdateDate) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.PredefinedType = PredefinedType; + this.Status = Status; + this.SubmittedOn = SubmittedOn; + this.UpdateDate = UpdateDate; + this.type = 1419761937; + } } - IfcValveTypeEnum.AIRRELEASE = { type: 3, value: "AIRRELEASE" }; - IfcValveTypeEnum.ANTIVACUUM = { type: 3, value: "ANTIVACUUM" }; - IfcValveTypeEnum.CHANGEOVER = { type: 3, value: "CHANGEOVER" }; - IfcValveTypeEnum.CHECK = { type: 3, value: "CHECK" }; - IfcValveTypeEnum.COMMISSIONING = { type: 3, value: "COMMISSIONING" }; - IfcValveTypeEnum.DIVERTING = { type: 3, value: "DIVERTING" }; - IfcValveTypeEnum.DRAWOFFCOCK = { type: 3, value: "DRAWOFFCOCK" }; - IfcValveTypeEnum.DOUBLECHECK = { type: 3, value: "DOUBLECHECK" }; - IfcValveTypeEnum.DOUBLEREGULATING = { type: 3, value: "DOUBLEREGULATING" }; - IfcValveTypeEnum.FAUCET = { type: 3, value: "FAUCET" }; - IfcValveTypeEnum.FLUSHING = { type: 3, value: "FLUSHING" }; - IfcValveTypeEnum.GASCOCK = { type: 3, value: "GASCOCK" }; - IfcValveTypeEnum.GASTAP = { type: 3, value: "GASTAP" }; - IfcValveTypeEnum.ISOLATING = { type: 3, value: "ISOLATING" }; - IfcValveTypeEnum.MIXING = { type: 3, value: "MIXING" }; - IfcValveTypeEnum.PRESSUREREDUCING = { type: 3, value: "PRESSUREREDUCING" }; - IfcValveTypeEnum.PRESSURERELIEF = { type: 3, value: "PRESSURERELIEF" }; - IfcValveTypeEnum.REGULATING = { type: 3, value: "REGULATING" }; - IfcValveTypeEnum.SAFETYCUTOFF = { type: 3, value: "SAFETYCUTOFF" }; - IfcValveTypeEnum.STEAMTRAP = { type: 3, value: "STEAMTRAP" }; - IfcValveTypeEnum.STOPCOCK = { type: 3, value: "STOPCOCK" }; - IfcValveTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcValveTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcValveTypeEnum = IfcValveTypeEnum; - class IfcVibrationIsolatorTypeEnum { + IFC42.IfcCostSchedule = IfcCostSchedule; + class IfcCoveringType extends IfcBuildingElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1916426348; + } } - IfcVibrationIsolatorTypeEnum.COMPRESSION = { type: 3, value: "COMPRESSION" }; - IfcVibrationIsolatorTypeEnum.SPRING = { type: 3, value: "SPRING" }; - IfcVibrationIsolatorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcVibrationIsolatorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcVibrationIsolatorTypeEnum = IfcVibrationIsolatorTypeEnum; - class IfcVoidingFeatureTypeEnum { + IFC42.IfcCoveringType = IfcCoveringType; + class IfcCrewResource extends IfcConstructionResource { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.Usage = Usage; + this.BaseCosts = BaseCosts; + this.BaseQuantity = BaseQuantity; + this.PredefinedType = PredefinedType; + this.type = 3295246426; + } } - IfcVoidingFeatureTypeEnum.CUTOUT = { type: 3, value: "CUTOUT" }; - IfcVoidingFeatureTypeEnum.NOTCH = { type: 3, value: "NOTCH" }; - IfcVoidingFeatureTypeEnum.HOLE = { type: 3, value: "HOLE" }; - IfcVoidingFeatureTypeEnum.MITER = { type: 3, value: "MITER" }; - IfcVoidingFeatureTypeEnum.CHAMFER = { type: 3, value: "CHAMFER" }; - IfcVoidingFeatureTypeEnum.EDGE = { type: 3, value: "EDGE" }; - IfcVoidingFeatureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcVoidingFeatureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcVoidingFeatureTypeEnum = IfcVoidingFeatureTypeEnum; - class IfcWallTypeEnum { + IFC42.IfcCrewResource = IfcCrewResource; + class IfcCurtainWallType extends IfcBuildingElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1457835157; + } } - IfcWallTypeEnum.MOVABLE = { type: 3, value: "MOVABLE" }; - IfcWallTypeEnum.PARAPET = { type: 3, value: "PARAPET" }; - IfcWallTypeEnum.PARTITIONING = { type: 3, value: "PARTITIONING" }; - IfcWallTypeEnum.PLUMBINGWALL = { type: 3, value: "PLUMBINGWALL" }; - IfcWallTypeEnum.SHEAR = { type: 3, value: "SHEAR" }; - IfcWallTypeEnum.SOLIDWALL = { type: 3, value: "SOLIDWALL" }; - IfcWallTypeEnum.STANDARD = { type: 3, value: "STANDARD" }; - IfcWallTypeEnum.POLYGONAL = { type: 3, value: "POLYGONAL" }; - IfcWallTypeEnum.ELEMENTEDWALL = { type: 3, value: "ELEMENTEDWALL" }; - IfcWallTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcWallTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcWallTypeEnum = IfcWallTypeEnum; - class IfcWasteTerminalTypeEnum { + IFC42.IfcCurtainWallType = IfcCurtainWallType; + class IfcCylindricalSurface extends IfcElementarySurface { + constructor(Position, Radius) { + super(Position); + this.Position = Position; + this.Radius = Radius; + this.type = 1213902940; + } } - IfcWasteTerminalTypeEnum.FLOORTRAP = { type: 3, value: "FLOORTRAP" }; - IfcWasteTerminalTypeEnum.FLOORWASTE = { type: 3, value: "FLOORWASTE" }; - IfcWasteTerminalTypeEnum.GULLYSUMP = { type: 3, value: "GULLYSUMP" }; - IfcWasteTerminalTypeEnum.GULLYTRAP = { type: 3, value: "GULLYTRAP" }; - IfcWasteTerminalTypeEnum.ROOFDRAIN = { type: 3, value: "ROOFDRAIN" }; - IfcWasteTerminalTypeEnum.WASTEDISPOSALUNIT = { type: 3, value: "WASTEDISPOSALUNIT" }; - IfcWasteTerminalTypeEnum.WASTETRAP = { type: 3, value: "WASTETRAP" }; - IfcWasteTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcWasteTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcWasteTerminalTypeEnum = IfcWasteTerminalTypeEnum; - class IfcWindowPanelOperationEnum { + IFC42.IfcCylindricalSurface = IfcCylindricalSurface; + class IfcDistributionElementType extends IfcElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 3256556792; + } } - IfcWindowPanelOperationEnum.SIDEHUNGRIGHTHAND = { type: 3, value: "SIDEHUNGRIGHTHAND" }; - IfcWindowPanelOperationEnum.SIDEHUNGLEFTHAND = { type: 3, value: "SIDEHUNGLEFTHAND" }; - IfcWindowPanelOperationEnum.TILTANDTURNRIGHTHAND = { type: 3, value: "TILTANDTURNRIGHTHAND" }; - IfcWindowPanelOperationEnum.TILTANDTURNLEFTHAND = { type: 3, value: "TILTANDTURNLEFTHAND" }; - IfcWindowPanelOperationEnum.TOPHUNG = { type: 3, value: "TOPHUNG" }; - IfcWindowPanelOperationEnum.BOTTOMHUNG = { type: 3, value: "BOTTOMHUNG" }; - IfcWindowPanelOperationEnum.PIVOTHORIZONTAL = { type: 3, value: "PIVOTHORIZONTAL" }; - IfcWindowPanelOperationEnum.PIVOTVERTICAL = { type: 3, value: "PIVOTVERTICAL" }; - IfcWindowPanelOperationEnum.SLIDINGHORIZONTAL = { type: 3, value: "SLIDINGHORIZONTAL" }; - IfcWindowPanelOperationEnum.SLIDINGVERTICAL = { type: 3, value: "SLIDINGVERTICAL" }; - IfcWindowPanelOperationEnum.REMOVABLECASEMENT = { type: 3, value: "REMOVABLECASEMENT" }; - IfcWindowPanelOperationEnum.FIXEDCASEMENT = { type: 3, value: "FIXEDCASEMENT" }; - IfcWindowPanelOperationEnum.OTHEROPERATION = { type: 3, value: "OTHEROPERATION" }; - IfcWindowPanelOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcWindowPanelOperationEnum = IfcWindowPanelOperationEnum; - class IfcWindowPanelPositionEnum { + IFC42.IfcDistributionElementType = IfcDistributionElementType; + class IfcDistributionFlowElementType extends IfcDistributionElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 3849074793; + } } - IfcWindowPanelPositionEnum.LEFT = { type: 3, value: "LEFT" }; - IfcWindowPanelPositionEnum.MIDDLE = { type: 3, value: "MIDDLE" }; - IfcWindowPanelPositionEnum.RIGHT = { type: 3, value: "RIGHT" }; - IfcWindowPanelPositionEnum.BOTTOM = { type: 3, value: "BOTTOM" }; - IfcWindowPanelPositionEnum.TOP = { type: 3, value: "TOP" }; - IfcWindowPanelPositionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcWindowPanelPositionEnum = IfcWindowPanelPositionEnum; - class IfcWindowStyleConstructionEnum { + IFC42.IfcDistributionFlowElementType = IfcDistributionFlowElementType; + class IfcDoorLiningProperties extends IfcPreDefinedPropertySet { + constructor(GlobalId, OwnerHistory, Name, Description, LiningDepth, LiningThickness, ThresholdDepth, ThresholdThickness, TransomThickness, TransomOffset, LiningOffset, ThresholdOffset, CasingThickness, CasingDepth, ShapeAspectStyle, LiningToPanelOffsetX, LiningToPanelOffsetY) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.LiningDepth = LiningDepth; + this.LiningThickness = LiningThickness; + this.ThresholdDepth = ThresholdDepth; + this.ThresholdThickness = ThresholdThickness; + this.TransomThickness = TransomThickness; + this.TransomOffset = TransomOffset; + this.LiningOffset = LiningOffset; + this.ThresholdOffset = ThresholdOffset; + this.CasingThickness = CasingThickness; + this.CasingDepth = CasingDepth; + this.ShapeAspectStyle = ShapeAspectStyle; + this.LiningToPanelOffsetX = LiningToPanelOffsetX; + this.LiningToPanelOffsetY = LiningToPanelOffsetY; + this.type = 2963535650; + } } - IfcWindowStyleConstructionEnum.ALUMINIUM = { type: 3, value: "ALUMINIUM" }; - IfcWindowStyleConstructionEnum.HIGH_GRADE_STEEL = { type: 3, value: "HIGH_GRADE_STEEL" }; - IfcWindowStyleConstructionEnum.STEEL = { type: 3, value: "STEEL" }; - IfcWindowStyleConstructionEnum.WOOD = { type: 3, value: "WOOD" }; - IfcWindowStyleConstructionEnum.ALUMINIUM_WOOD = { type: 3, value: "ALUMINIUM_WOOD" }; - IfcWindowStyleConstructionEnum.PLASTIC = { type: 3, value: "PLASTIC" }; - IfcWindowStyleConstructionEnum.OTHER_CONSTRUCTION = { type: 3, value: "OTHER_CONSTRUCTION" }; - IfcWindowStyleConstructionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcWindowStyleConstructionEnum = IfcWindowStyleConstructionEnum; - class IfcWindowStyleOperationEnum { + IFC42.IfcDoorLiningProperties = IfcDoorLiningProperties; + class IfcDoorPanelProperties extends IfcPreDefinedPropertySet { + constructor(GlobalId, OwnerHistory, Name, Description, PanelDepth, PanelOperation, PanelWidth, PanelPosition, ShapeAspectStyle) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.PanelDepth = PanelDepth; + this.PanelOperation = PanelOperation; + this.PanelWidth = PanelWidth; + this.PanelPosition = PanelPosition; + this.ShapeAspectStyle = ShapeAspectStyle; + this.type = 1714330368; + } } - IfcWindowStyleOperationEnum.SINGLE_PANEL = { type: 3, value: "SINGLE_PANEL" }; - IfcWindowStyleOperationEnum.DOUBLE_PANEL_VERTICAL = { type: 3, value: "DOUBLE_PANEL_VERTICAL" }; - IfcWindowStyleOperationEnum.DOUBLE_PANEL_HORIZONTAL = { type: 3, value: "DOUBLE_PANEL_HORIZONTAL" }; - IfcWindowStyleOperationEnum.TRIPLE_PANEL_VERTICAL = { type: 3, value: "TRIPLE_PANEL_VERTICAL" }; - IfcWindowStyleOperationEnum.TRIPLE_PANEL_BOTTOM = { type: 3, value: "TRIPLE_PANEL_BOTTOM" }; - IfcWindowStyleOperationEnum.TRIPLE_PANEL_TOP = { type: 3, value: "TRIPLE_PANEL_TOP" }; - IfcWindowStyleOperationEnum.TRIPLE_PANEL_LEFT = { type: 3, value: "TRIPLE_PANEL_LEFT" }; - IfcWindowStyleOperationEnum.TRIPLE_PANEL_RIGHT = { type: 3, value: "TRIPLE_PANEL_RIGHT" }; - IfcWindowStyleOperationEnum.TRIPLE_PANEL_HORIZONTAL = { type: 3, value: "TRIPLE_PANEL_HORIZONTAL" }; - IfcWindowStyleOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcWindowStyleOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcWindowStyleOperationEnum = IfcWindowStyleOperationEnum; - class IfcWindowTypeEnum { + IFC42.IfcDoorPanelProperties = IfcDoorPanelProperties; + class IfcDoorType extends IfcBuildingElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, OperationType, ParameterTakesPrecedence, UserDefinedOperationType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.OperationType = OperationType; + this.ParameterTakesPrecedence = ParameterTakesPrecedence; + this.UserDefinedOperationType = UserDefinedOperationType; + this.type = 2323601079; + } } - IfcWindowTypeEnum.WINDOW = { type: 3, value: "WINDOW" }; - IfcWindowTypeEnum.SKYLIGHT = { type: 3, value: "SKYLIGHT" }; - IfcWindowTypeEnum.LIGHTDOME = { type: 3, value: "LIGHTDOME" }; - IfcWindowTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcWindowTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcWindowTypeEnum = IfcWindowTypeEnum; - class IfcWindowTypePartitioningEnum { + IFC42.IfcDoorType = IfcDoorType; + class IfcDraughtingPreDefinedColour extends IfcPreDefinedColour { + constructor(Name) { + super(Name); + this.Name = Name; + this.type = 445594917; + } } - IfcWindowTypePartitioningEnum.SINGLE_PANEL = { type: 3, value: "SINGLE_PANEL" }; - IfcWindowTypePartitioningEnum.DOUBLE_PANEL_VERTICAL = { type: 3, value: "DOUBLE_PANEL_VERTICAL" }; - IfcWindowTypePartitioningEnum.DOUBLE_PANEL_HORIZONTAL = { type: 3, value: "DOUBLE_PANEL_HORIZONTAL" }; - IfcWindowTypePartitioningEnum.TRIPLE_PANEL_VERTICAL = { type: 3, value: "TRIPLE_PANEL_VERTICAL" }; - IfcWindowTypePartitioningEnum.TRIPLE_PANEL_BOTTOM = { type: 3, value: "TRIPLE_PANEL_BOTTOM" }; - IfcWindowTypePartitioningEnum.TRIPLE_PANEL_TOP = { type: 3, value: "TRIPLE_PANEL_TOP" }; - IfcWindowTypePartitioningEnum.TRIPLE_PANEL_LEFT = { type: 3, value: "TRIPLE_PANEL_LEFT" }; - IfcWindowTypePartitioningEnum.TRIPLE_PANEL_RIGHT = { type: 3, value: "TRIPLE_PANEL_RIGHT" }; - IfcWindowTypePartitioningEnum.TRIPLE_PANEL_HORIZONTAL = { type: 3, value: "TRIPLE_PANEL_HORIZONTAL" }; - IfcWindowTypePartitioningEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcWindowTypePartitioningEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcWindowTypePartitioningEnum = IfcWindowTypePartitioningEnum; - class IfcWorkCalendarTypeEnum { + IFC42.IfcDraughtingPreDefinedColour = IfcDraughtingPreDefinedColour; + class IfcDraughtingPreDefinedCurveFont extends IfcPreDefinedCurveFont { + constructor(Name) { + super(Name); + this.Name = Name; + this.type = 4006246654; + } } - IfcWorkCalendarTypeEnum.FIRSTSHIFT = { type: 3, value: "FIRSTSHIFT" }; - IfcWorkCalendarTypeEnum.SECONDSHIFT = { type: 3, value: "SECONDSHIFT" }; - IfcWorkCalendarTypeEnum.THIRDSHIFT = { type: 3, value: "THIRDSHIFT" }; - IfcWorkCalendarTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcWorkCalendarTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcWorkCalendarTypeEnum = IfcWorkCalendarTypeEnum; - class IfcWorkPlanTypeEnum { + IFC42.IfcDraughtingPreDefinedCurveFont = IfcDraughtingPreDefinedCurveFont; + class IfcElement extends IfcProduct { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 1758889154; + } } - IfcWorkPlanTypeEnum.ACTUAL = { type: 3, value: "ACTUAL" }; - IfcWorkPlanTypeEnum.BASELINE = { type: 3, value: "BASELINE" }; - IfcWorkPlanTypeEnum.PLANNED = { type: 3, value: "PLANNED" }; - IfcWorkPlanTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcWorkPlanTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcWorkPlanTypeEnum = IfcWorkPlanTypeEnum; - class IfcWorkScheduleTypeEnum { + IFC42.IfcElement = IfcElement; + class IfcElementAssembly extends IfcElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, AssemblyPlace, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.AssemblyPlace = AssemblyPlace; + this.PredefinedType = PredefinedType; + this.type = 4123344466; + } } - IfcWorkScheduleTypeEnum.ACTUAL = { type: 3, value: "ACTUAL" }; - IfcWorkScheduleTypeEnum.BASELINE = { type: 3, value: "BASELINE" }; - IfcWorkScheduleTypeEnum.PLANNED = { type: 3, value: "PLANNED" }; - IfcWorkScheduleTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcWorkScheduleTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcWorkScheduleTypeEnum = IfcWorkScheduleTypeEnum; - class IfcActorRole extends IfcLineObject { - constructor(expressID, Role, UserDefinedRole, Description) { - super(expressID); - this.Role = Role; - this.UserDefinedRole = UserDefinedRole; + IFC42.IfcElementAssembly = IfcElementAssembly; + class IfcElementAssemblyType extends IfcElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; this.Description = Description; - this.type = 3630933823; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2397081782; } } - IFC42.IfcActorRole = IfcActorRole; - class IfcAddress extends IfcLineObject { - constructor(expressID, Purpose, Description, UserDefinedPurpose) { - super(expressID); - this.Purpose = Purpose; + IFC42.IfcElementAssemblyType = IfcElementAssemblyType; + class IfcElementComponent extends IfcElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; this.Description = Description; - this.UserDefinedPurpose = UserDefinedPurpose; - this.type = 618182010; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 1623761950; } } - IFC42.IfcAddress = IfcAddress; - class IfcApplication extends IfcLineObject { - constructor(expressID, ApplicationDeveloper, Version, ApplicationFullName, ApplicationIdentifier) { - super(expressID); - this.ApplicationDeveloper = ApplicationDeveloper; - this.Version = Version; - this.ApplicationFullName = ApplicationFullName; - this.ApplicationIdentifier = ApplicationIdentifier; - this.type = 639542469; + IFC42.IfcElementComponent = IfcElementComponent; + class IfcElementComponentType extends IfcElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 2590856083; } } - IFC42.IfcApplication = IfcApplication; - class IfcAppliedValue extends IfcLineObject { - constructor(expressID, Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, Category, Condition, ArithmeticOperator, Components) { - super(expressID); + IFC42.IfcElementComponentType = IfcElementComponentType; + class IfcEllipse extends IfcConic { + constructor(Position, SemiAxis1, SemiAxis2) { + super(Position); + this.Position = Position; + this.SemiAxis1 = SemiAxis1; + this.SemiAxis2 = SemiAxis2; + this.type = 1704287377; + } + } + IFC42.IfcEllipse = IfcEllipse; + class IfcEnergyConversionDeviceType extends IfcDistributionFlowElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.AppliedValue = AppliedValue; - this.UnitBasis = UnitBasis; - this.ApplicableDate = ApplicableDate; - this.FixedUntilDate = FixedUntilDate; - this.Category = Category; - this.Condition = Condition; - this.ArithmeticOperator = ArithmeticOperator; - this.Components = Components; - this.type = 411424972; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 2107101300; } } - IFC42.IfcAppliedValue = IfcAppliedValue; - class IfcApproval extends IfcLineObject { - constructor(expressID, Identifier, Name, Description, TimeOfApproval, Status, Level, Qualifier, RequestingApproval, GivingApproval) { - super(expressID); - this.Identifier = Identifier; + IFC42.IfcEnergyConversionDeviceType = IfcEnergyConversionDeviceType; + class IfcEngineType extends IfcEnergyConversionDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.TimeOfApproval = TimeOfApproval; - this.Status = Status; - this.Level = Level; - this.Qualifier = Qualifier; - this.RequestingApproval = RequestingApproval; - this.GivingApproval = GivingApproval; - this.type = 130549933; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 132023988; } } - IFC42.IfcApproval = IfcApproval; - class IfcBoundaryCondition extends IfcLineObject { - constructor(expressID, Name) { - super(expressID); + IFC42.IfcEngineType = IfcEngineType; + class IfcEvaporativeCoolerType extends IfcEnergyConversionDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.type = 4037036970; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3174744832; } } - IFC42.IfcBoundaryCondition = IfcBoundaryCondition; - class IfcBoundaryEdgeCondition extends IfcBoundaryCondition { - constructor(expressID, Name, TranslationalStiffnessByLengthX, TranslationalStiffnessByLengthY, TranslationalStiffnessByLengthZ, RotationalStiffnessByLengthX, RotationalStiffnessByLengthY, RotationalStiffnessByLengthZ) { - super(expressID, Name); + IFC42.IfcEvaporativeCoolerType = IfcEvaporativeCoolerType; + class IfcEvaporatorType extends IfcEnergyConversionDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.TranslationalStiffnessByLengthX = TranslationalStiffnessByLengthX; - this.TranslationalStiffnessByLengthY = TranslationalStiffnessByLengthY; - this.TranslationalStiffnessByLengthZ = TranslationalStiffnessByLengthZ; - this.RotationalStiffnessByLengthX = RotationalStiffnessByLengthX; - this.RotationalStiffnessByLengthY = RotationalStiffnessByLengthY; - this.RotationalStiffnessByLengthZ = RotationalStiffnessByLengthZ; - this.type = 1560379544; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3390157468; } } - IFC42.IfcBoundaryEdgeCondition = IfcBoundaryEdgeCondition; - class IfcBoundaryFaceCondition extends IfcBoundaryCondition { - constructor(expressID, Name, TranslationalStiffnessByAreaX, TranslationalStiffnessByAreaY, TranslationalStiffnessByAreaZ) { - super(expressID, Name); + IFC42.IfcEvaporatorType = IfcEvaporatorType; + class IfcEvent extends IfcProcess { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, PredefinedType, EventTriggerType, UserDefinedEventTriggerType, EventOccurenceTime) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.TranslationalStiffnessByAreaX = TranslationalStiffnessByAreaX; - this.TranslationalStiffnessByAreaY = TranslationalStiffnessByAreaY; - this.TranslationalStiffnessByAreaZ = TranslationalStiffnessByAreaZ; - this.type = 3367102660; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.PredefinedType = PredefinedType; + this.EventTriggerType = EventTriggerType; + this.UserDefinedEventTriggerType = UserDefinedEventTriggerType; + this.EventOccurenceTime = EventOccurenceTime; + this.type = 4148101412; } } - IFC42.IfcBoundaryFaceCondition = IfcBoundaryFaceCondition; - class IfcBoundaryNodeCondition extends IfcBoundaryCondition { - constructor(expressID, Name, TranslationalStiffnessX, TranslationalStiffnessY, TranslationalStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ) { - super(expressID, Name); + IFC42.IfcEvent = IfcEvent; + class IfcExternalSpatialStructureElement extends IfcSpatialElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.TranslationalStiffnessX = TranslationalStiffnessX; - this.TranslationalStiffnessY = TranslationalStiffnessY; - this.TranslationalStiffnessZ = TranslationalStiffnessZ; - this.RotationalStiffnessX = RotationalStiffnessX; - this.RotationalStiffnessY = RotationalStiffnessY; - this.RotationalStiffnessZ = RotationalStiffnessZ; - this.type = 1387855156; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.LongName = LongName; + this.type = 2853485674; } } - IFC42.IfcBoundaryNodeCondition = IfcBoundaryNodeCondition; - class IfcBoundaryNodeConditionWarping extends IfcBoundaryNodeCondition { - constructor(expressID, Name, TranslationalStiffnessX, TranslationalStiffnessY, TranslationalStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ, WarpingStiffness) { - super(expressID, Name, TranslationalStiffnessX, TranslationalStiffnessY, TranslationalStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ); + IFC42.IfcExternalSpatialStructureElement = IfcExternalSpatialStructureElement; + class IfcFacetedBrep extends IfcManifoldSolidBrep { + constructor(Outer) { + super(Outer); + this.Outer = Outer; + this.type = 807026263; + } + } + IFC42.IfcFacetedBrep = IfcFacetedBrep; + class IfcFacetedBrepWithVoids extends IfcFacetedBrep { + constructor(Outer, Voids) { + super(Outer); + this.Outer = Outer; + this.Voids = Voids; + this.type = 3737207727; + } + } + IFC42.IfcFacetedBrepWithVoids = IfcFacetedBrepWithVoids; + class IfcFastener extends IfcElementComponent { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.TranslationalStiffnessX = TranslationalStiffnessX; - this.TranslationalStiffnessY = TranslationalStiffnessY; - this.TranslationalStiffnessZ = TranslationalStiffnessZ; - this.RotationalStiffnessX = RotationalStiffnessX; - this.RotationalStiffnessY = RotationalStiffnessY; - this.RotationalStiffnessZ = RotationalStiffnessZ; - this.WarpingStiffness = WarpingStiffness; - this.type = 2069777674; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 647756555; } } - IFC42.IfcBoundaryNodeConditionWarping = IfcBoundaryNodeConditionWarping; - class IfcConnectionGeometry extends IfcLineObject { - constructor(expressID) { - super(expressID); - this.type = 2859738748; + IFC42.IfcFastener = IfcFastener; + class IfcFastenerType extends IfcElementComponentType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2489546625; } } - IFC42.IfcConnectionGeometry = IfcConnectionGeometry; - class IfcConnectionPointGeometry extends IfcConnectionGeometry { - constructor(expressID, PointOnRelatingElement, PointOnRelatedElement) { - super(expressID); - this.PointOnRelatingElement = PointOnRelatingElement; - this.PointOnRelatedElement = PointOnRelatedElement; - this.type = 2614616156; + IFC42.IfcFastenerType = IfcFastenerType; + class IfcFeatureElement extends IfcElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 2827207264; } } - IFC42.IfcConnectionPointGeometry = IfcConnectionPointGeometry; - class IfcConnectionSurfaceGeometry extends IfcConnectionGeometry { - constructor(expressID, SurfaceOnRelatingElement, SurfaceOnRelatedElement) { - super(expressID); - this.SurfaceOnRelatingElement = SurfaceOnRelatingElement; - this.SurfaceOnRelatedElement = SurfaceOnRelatedElement; - this.type = 2732653382; + IFC42.IfcFeatureElement = IfcFeatureElement; + class IfcFeatureElementAddition extends IfcFeatureElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 2143335405; } } - IFC42.IfcConnectionSurfaceGeometry = IfcConnectionSurfaceGeometry; - class IfcConnectionVolumeGeometry extends IfcConnectionGeometry { - constructor(expressID, VolumeOnRelatingElement, VolumeOnRelatedElement) { - super(expressID); - this.VolumeOnRelatingElement = VolumeOnRelatingElement; - this.VolumeOnRelatedElement = VolumeOnRelatedElement; - this.type = 775493141; + IFC42.IfcFeatureElementAddition = IfcFeatureElementAddition; + class IfcFeatureElementSubtraction extends IfcFeatureElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 1287392070; } } - IFC42.IfcConnectionVolumeGeometry = IfcConnectionVolumeGeometry; - class IfcConstraint extends IfcLineObject { - constructor(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade) { - super(expressID); + IFC42.IfcFeatureElementSubtraction = IfcFeatureElementSubtraction; + class IfcFlowControllerType extends IfcDistributionFlowElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.ConstraintGrade = ConstraintGrade; - this.ConstraintSource = ConstraintSource; - this.CreatingActor = CreatingActor; - this.CreationTime = CreationTime; - this.UserDefinedGrade = UserDefinedGrade; - this.type = 1959218052; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 3907093117; } } - IFC42.IfcConstraint = IfcConstraint; - class IfcCoordinateOperation extends IfcLineObject { - constructor(expressID, SourceCRS, TargetCRS) { - super(expressID); - this.SourceCRS = SourceCRS; - this.TargetCRS = TargetCRS; - this.type = 1785450214; + IFC42.IfcFlowControllerType = IfcFlowControllerType; + class IfcFlowFittingType extends IfcDistributionFlowElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 3198132628; } } - IFC42.IfcCoordinateOperation = IfcCoordinateOperation; - class IfcCoordinateReferenceSystem extends IfcLineObject { - constructor(expressID, Name, Description, GeodeticDatum, VerticalDatum) { - super(expressID); + IFC42.IfcFlowFittingType = IfcFlowFittingType; + class IfcFlowMeterType extends IfcFlowControllerType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.GeodeticDatum = GeodeticDatum; - this.VerticalDatum = VerticalDatum; - this.type = 1466758467; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3815607619; } } - IFC42.IfcCoordinateReferenceSystem = IfcCoordinateReferenceSystem; - class IfcCostValue extends IfcAppliedValue { - constructor(expressID, Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, Category, Condition, ArithmeticOperator, Components) { - super(expressID, Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, Category, Condition, ArithmeticOperator, Components); + IFC42.IfcFlowMeterType = IfcFlowMeterType; + class IfcFlowMovingDeviceType extends IfcDistributionFlowElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.AppliedValue = AppliedValue; - this.UnitBasis = UnitBasis; - this.ApplicableDate = ApplicableDate; - this.FixedUntilDate = FixedUntilDate; - this.Category = Category; - this.Condition = Condition; - this.ArithmeticOperator = ArithmeticOperator; - this.Components = Components; - this.type = 602808272; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 1482959167; } } - IFC42.IfcCostValue = IfcCostValue; - class IfcDerivedUnit extends IfcLineObject { - constructor(expressID, Elements, UnitType, UserDefinedType) { - super(expressID); - this.Elements = Elements; - this.UnitType = UnitType; - this.UserDefinedType = UserDefinedType; - this.type = 1765591967; + IFC42.IfcFlowMovingDeviceType = IfcFlowMovingDeviceType; + class IfcFlowSegmentType extends IfcDistributionFlowElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 1834744321; } } - IFC42.IfcDerivedUnit = IfcDerivedUnit; - class IfcDerivedUnitElement extends IfcLineObject { - constructor(expressID, Unit, Exponent) { - super(expressID); - this.Unit = Unit; - this.Exponent = Exponent; - this.type = 1045800335; + IFC42.IfcFlowSegmentType = IfcFlowSegmentType; + class IfcFlowStorageDeviceType extends IfcDistributionFlowElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 1339347760; } } - IFC42.IfcDerivedUnitElement = IfcDerivedUnitElement; - class IfcDimensionalExponents extends IfcLineObject { - constructor(expressID, LengthExponent, MassExponent, TimeExponent, ElectricCurrentExponent, ThermodynamicTemperatureExponent, AmountOfSubstanceExponent, LuminousIntensityExponent) { - super(expressID); - this.LengthExponent = LengthExponent; - this.MassExponent = MassExponent; - this.TimeExponent = TimeExponent; - this.ElectricCurrentExponent = ElectricCurrentExponent; - this.ThermodynamicTemperatureExponent = ThermodynamicTemperatureExponent; - this.AmountOfSubstanceExponent = AmountOfSubstanceExponent; - this.LuminousIntensityExponent = LuminousIntensityExponent; - this.type = 2949456006; + IFC42.IfcFlowStorageDeviceType = IfcFlowStorageDeviceType; + class IfcFlowTerminalType extends IfcDistributionFlowElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 2297155007; } } - IFC42.IfcDimensionalExponents = IfcDimensionalExponents; - class IfcExternalInformation extends IfcLineObject { - constructor(expressID) { - super(expressID); - this.type = 4294318154; + IFC42.IfcFlowTerminalType = IfcFlowTerminalType; + class IfcFlowTreatmentDeviceType extends IfcDistributionFlowElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 3009222698; + } + } + IFC42.IfcFlowTreatmentDeviceType = IfcFlowTreatmentDeviceType; + class IfcFootingType extends IfcBuildingElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1893162501; } } - IFC42.IfcExternalInformation = IfcExternalInformation; - class IfcExternalReference extends IfcLineObject { - constructor(expressID, Location, Identification, Name) { - super(expressID); - this.Location = Location; - this.Identification = Identification; + IFC42.IfcFootingType = IfcFootingType; + class IfcFurnishingElement extends IfcElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.type = 3200245327; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 263784265; } } - IFC42.IfcExternalReference = IfcExternalReference; - class IfcExternallyDefinedHatchStyle extends IfcExternalReference { - constructor(expressID, Location, Identification, Name) { - super(expressID, Location, Identification, Name); - this.Location = Location; - this.Identification = Identification; + IFC42.IfcFurnishingElement = IfcFurnishingElement; + class IfcFurniture extends IfcFurnishingElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.type = 2242383968; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1509553395; } } - IFC42.IfcExternallyDefinedHatchStyle = IfcExternallyDefinedHatchStyle; - class IfcExternallyDefinedSurfaceStyle extends IfcExternalReference { - constructor(expressID, Location, Identification, Name) { - super(expressID, Location, Identification, Name); - this.Location = Location; - this.Identification = Identification; + IFC42.IfcFurniture = IfcFurniture; + class IfcGeographicElement extends IfcElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.type = 1040185647; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3493046030; } } - IFC42.IfcExternallyDefinedSurfaceStyle = IfcExternallyDefinedSurfaceStyle; - class IfcExternallyDefinedTextFont extends IfcExternalReference { - constructor(expressID, Location, Identification, Name) { - super(expressID, Location, Identification, Name); - this.Location = Location; - this.Identification = Identification; + IFC42.IfcGeographicElement = IfcGeographicElement; + class IfcGrid extends IfcProduct { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, UAxes, VAxes, WAxes, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.type = 3548104201; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.UAxes = UAxes; + this.VAxes = VAxes; + this.WAxes = WAxes; + this.PredefinedType = PredefinedType; + this.type = 3009204131; } } - IFC42.IfcExternallyDefinedTextFont = IfcExternallyDefinedTextFont; - class IfcGridAxis extends IfcLineObject { - constructor(expressID, AxisTag, AxisCurve, SameSense) { - super(expressID); - this.AxisTag = AxisTag; - this.AxisCurve = AxisCurve; - this.SameSense = SameSense; - this.type = 852622518; + IFC42.IfcGrid = IfcGrid; + class IfcGroup extends IfcObject { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.type = 2706460486; } } - IFC42.IfcGridAxis = IfcGridAxis; - class IfcIrregularTimeSeriesValue extends IfcLineObject { - constructor(expressID, TimeStamp, ListValues) { - super(expressID); - this.TimeStamp = TimeStamp; - this.ListValues = ListValues; - this.type = 3020489413; + IFC42.IfcGroup = IfcGroup; + class IfcHeatExchangerType extends IfcEnergyConversionDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1251058090; } } - IFC42.IfcIrregularTimeSeriesValue = IfcIrregularTimeSeriesValue; - class IfcLibraryInformation extends IfcExternalInformation { - constructor(expressID, Name, Version, Publisher, VersionDate, Location, Description) { - super(expressID); + IFC42.IfcHeatExchangerType = IfcHeatExchangerType; + class IfcHumidifierType extends IfcEnergyConversionDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.Version = Version; - this.Publisher = Publisher; - this.VersionDate = VersionDate; - this.Location = Location; this.Description = Description; - this.type = 2655187982; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1806887404; } } - IFC42.IfcLibraryInformation = IfcLibraryInformation; - class IfcLibraryReference extends IfcExternalReference { - constructor(expressID, Location, Identification, Name, Description, Language, ReferencedLibrary) { - super(expressID, Location, Identification, Name); - this.Location = Location; - this.Identification = Identification; + IFC42.IfcHumidifierType = IfcHumidifierType; + class IfcIndexedPolyCurve extends IfcBoundedCurve { + constructor(Points, Segments, SelfIntersect) { + super(); + this.Points = Points; + this.Segments = Segments; + this.SelfIntersect = SelfIntersect; + this.type = 2571569899; + } + } + IFC42.IfcIndexedPolyCurve = IfcIndexedPolyCurve; + class IfcInterceptorType extends IfcFlowTreatmentDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.Language = Language; - this.ReferencedLibrary = ReferencedLibrary; - this.type = 3452421091; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3946677679; } } - IFC42.IfcLibraryReference = IfcLibraryReference; - class IfcLightDistributionData extends IfcLineObject { - constructor(expressID, MainPlaneAngle, SecondaryPlaneAngle, LuminousIntensity) { - super(expressID); - this.MainPlaneAngle = MainPlaneAngle; - this.SecondaryPlaneAngle = SecondaryPlaneAngle; - this.LuminousIntensity = LuminousIntensity; - this.type = 4162380809; + IFC42.IfcInterceptorType = IfcInterceptorType; + class IfcIntersectionCurve extends IfcSurfaceCurve { + constructor(Curve3D, AssociatedGeometry, MasterRepresentation) { + super(Curve3D, AssociatedGeometry, MasterRepresentation); + this.Curve3D = Curve3D; + this.AssociatedGeometry = AssociatedGeometry; + this.MasterRepresentation = MasterRepresentation; + this.type = 3113134337; } } - IFC42.IfcLightDistributionData = IfcLightDistributionData; - class IfcLightIntensityDistribution extends IfcLineObject { - constructor(expressID, LightDistributionCurve, DistributionData) { - super(expressID); - this.LightDistributionCurve = LightDistributionCurve; - this.DistributionData = DistributionData; - this.type = 1566485204; + IFC42.IfcIntersectionCurve = IfcIntersectionCurve; + class IfcInventory extends IfcGroup { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, Jurisdiction, ResponsiblePersons, LastUpdateDate, CurrentValue, OriginalValue) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.PredefinedType = PredefinedType; + this.Jurisdiction = Jurisdiction; + this.ResponsiblePersons = ResponsiblePersons; + this.LastUpdateDate = LastUpdateDate; + this.CurrentValue = CurrentValue; + this.OriginalValue = OriginalValue; + this.type = 2391368822; } } - IFC42.IfcLightIntensityDistribution = IfcLightIntensityDistribution; - class IfcMapConversion extends IfcCoordinateOperation { - constructor(expressID, SourceCRS, TargetCRS, Eastings, Northings, OrthogonalHeight, XAxisAbscissa, XAxisOrdinate, Scale) { - super(expressID, SourceCRS, TargetCRS); - this.SourceCRS = SourceCRS; - this.TargetCRS = TargetCRS; - this.Eastings = Eastings; - this.Northings = Northings; - this.OrthogonalHeight = OrthogonalHeight; - this.XAxisAbscissa = XAxisAbscissa; - this.XAxisOrdinate = XAxisOrdinate; - this.Scale = Scale; - this.type = 3057273783; + IFC42.IfcInventory = IfcInventory; + class IfcJunctionBoxType extends IfcFlowFittingType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 4288270099; } } - IFC42.IfcMapConversion = IfcMapConversion; - class IfcMaterialClassificationRelationship extends IfcLineObject { - constructor(expressID, MaterialClassifications, ClassifiedMaterial) { - super(expressID); - this.MaterialClassifications = MaterialClassifications; - this.ClassifiedMaterial = ClassifiedMaterial; - this.type = 1847130766; + IFC42.IfcJunctionBoxType = IfcJunctionBoxType; + class IfcLaborResource extends IfcConstructionResource { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.Usage = Usage; + this.BaseCosts = BaseCosts; + this.BaseQuantity = BaseQuantity; + this.PredefinedType = PredefinedType; + this.type = 3827777499; } } - IFC42.IfcMaterialClassificationRelationship = IfcMaterialClassificationRelationship; - class IfcMaterialDefinition extends IfcLineObject { - constructor(expressID) { - super(expressID); - this.type = 760658860; + IFC42.IfcLaborResource = IfcLaborResource; + class IfcLampType extends IfcFlowTerminalType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1051575348; } } - IFC42.IfcMaterialDefinition = IfcMaterialDefinition; - class IfcMaterialLayer extends IfcMaterialDefinition { - constructor(expressID, Material, LayerThickness, IsVentilated, Name, Description, Category, Priority) { - super(expressID); - this.Material = Material; - this.LayerThickness = LayerThickness; - this.IsVentilated = IsVentilated; + IFC42.IfcLampType = IfcLampType; + class IfcLightFixtureType extends IfcFlowTerminalType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.Category = Category; - this.Priority = Priority; - this.type = 248100487; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1161773419; } } - IFC42.IfcMaterialLayer = IfcMaterialLayer; - class IfcMaterialLayerSet extends IfcMaterialDefinition { - constructor(expressID, MaterialLayers, LayerSetName, Description) { - super(expressID); - this.MaterialLayers = MaterialLayers; - this.LayerSetName = LayerSetName; + IFC42.IfcLightFixtureType = IfcLightFixtureType; + class IfcMechanicalFastener extends IfcElementComponent { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, NominalDiameter, NominalLength, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; this.Description = Description; - this.type = 3303938423; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.NominalDiameter = NominalDiameter; + this.NominalLength = NominalLength; + this.PredefinedType = PredefinedType; + this.type = 377706215; } } - IFC42.IfcMaterialLayerSet = IfcMaterialLayerSet; - class IfcMaterialLayerWithOffsets extends IfcMaterialLayer { - constructor(expressID, Material, LayerThickness, IsVentilated, Name, Description, Category, Priority, OffsetDirection, OffsetValues) { - super(expressID, Material, LayerThickness, IsVentilated, Name, Description, Category, Priority); - this.Material = Material; - this.LayerThickness = LayerThickness; - this.IsVentilated = IsVentilated; + IFC42.IfcMechanicalFastener = IfcMechanicalFastener; + class IfcMechanicalFastenerType extends IfcElementComponentType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, NominalDiameter, NominalLength) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.Category = Category; - this.Priority = Priority; - this.OffsetDirection = OffsetDirection; - this.OffsetValues = OffsetValues; - this.type = 1847252529; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.NominalDiameter = NominalDiameter; + this.NominalLength = NominalLength; + this.type = 2108223431; } } - IFC42.IfcMaterialLayerWithOffsets = IfcMaterialLayerWithOffsets; - class IfcMaterialList extends IfcLineObject { - constructor(expressID, Materials) { - super(expressID); - this.Materials = Materials; - this.type = 2199411900; + IFC42.IfcMechanicalFastenerType = IfcMechanicalFastenerType; + class IfcMedicalDeviceType extends IfcFlowTerminalType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1114901282; } } - IFC42.IfcMaterialList = IfcMaterialList; - class IfcMaterialProfile extends IfcMaterialDefinition { - constructor(expressID, Name, Description, Material, Profile, Priority, Category) { - super(expressID); + IFC42.IfcMedicalDeviceType = IfcMedicalDeviceType; + class IfcMemberType extends IfcBuildingElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.Material = Material; - this.Profile = Profile; - this.Priority = Priority; - this.Category = Category; - this.type = 2235152071; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3181161470; } } - IFC42.IfcMaterialProfile = IfcMaterialProfile; - class IfcMaterialProfileSet extends IfcMaterialDefinition { - constructor(expressID, Name, Description, MaterialProfiles, CompositeProfile) { - super(expressID); + IFC42.IfcMemberType = IfcMemberType; + class IfcMotorConnectionType extends IfcEnergyConversionDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.MaterialProfiles = MaterialProfiles; - this.CompositeProfile = CompositeProfile; - this.type = 164193824; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 977012517; } } - IFC42.IfcMaterialProfileSet = IfcMaterialProfileSet; - class IfcMaterialProfileWithOffsets extends IfcMaterialProfile { - constructor(expressID, Name, Description, Material, Profile, Priority, Category, OffsetValues) { - super(expressID, Name, Description, Material, Profile, Priority, Category); + IFC42.IfcMotorConnectionType = IfcMotorConnectionType; + class IfcOccupant extends IfcActor { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.Material = Material; - this.Profile = Profile; - this.Priority = Priority; - this.Category = Category; - this.OffsetValues = OffsetValues; - this.type = 552965576; + this.ObjectType = ObjectType; + this.TheActor = TheActor; + this.PredefinedType = PredefinedType; + this.type = 4143007308; } } - IFC42.IfcMaterialProfileWithOffsets = IfcMaterialProfileWithOffsets; - class IfcMaterialUsageDefinition extends IfcLineObject { - constructor(expressID) { - super(expressID); - this.type = 1507914824; + IFC42.IfcOccupant = IfcOccupant; + class IfcOpeningElement extends IfcFeatureElementSubtraction { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3588315303; } } - IFC42.IfcMaterialUsageDefinition = IfcMaterialUsageDefinition; - class IfcMeasureWithUnit extends IfcLineObject { - constructor(expressID, ValueComponent, UnitComponent) { - super(expressID); - this.ValueComponent = ValueComponent; - this.UnitComponent = UnitComponent; - this.type = 2597039031; + IFC42.IfcOpeningElement = IfcOpeningElement; + class IfcOpeningStandardCase extends IfcOpeningElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3079942009; } } - IFC42.IfcMeasureWithUnit = IfcMeasureWithUnit; - class IfcMetric extends IfcConstraint { - constructor(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade, Benchmark, ValueSource, DataValue, ReferencePath) { - super(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade); + IFC42.IfcOpeningStandardCase = IfcOpeningStandardCase; + class IfcOutletType extends IfcFlowTerminalType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.ConstraintGrade = ConstraintGrade; - this.ConstraintSource = ConstraintSource; - this.CreatingActor = CreatingActor; - this.CreationTime = CreationTime; - this.UserDefinedGrade = UserDefinedGrade; - this.Benchmark = Benchmark; - this.ValueSource = ValueSource; - this.DataValue = DataValue; - this.ReferencePath = ReferencePath; - this.type = 3368373690; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2837617999; } } - IFC42.IfcMetric = IfcMetric; - class IfcMonetaryUnit extends IfcLineObject { - constructor(expressID, Currency) { - super(expressID); - this.Currency = Currency; - this.type = 2706619895; + IFC42.IfcOutletType = IfcOutletType; + class IfcPerformanceHistory extends IfcControl { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LifeCyclePhase, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.LifeCyclePhase = LifeCyclePhase; + this.PredefinedType = PredefinedType; + this.type = 2382730787; } } - IFC42.IfcMonetaryUnit = IfcMonetaryUnit; - class IfcNamedUnit extends IfcLineObject { - constructor(expressID, Dimensions, UnitType) { - super(expressID); - this.Dimensions = Dimensions; - this.UnitType = UnitType; - this.type = 1918398963; + IFC42.IfcPerformanceHistory = IfcPerformanceHistory; + class IfcPermeableCoveringProperties extends IfcPreDefinedPropertySet { + constructor(GlobalId, OwnerHistory, Name, Description, OperationType, PanelPosition, FrameDepth, FrameThickness, ShapeAspectStyle) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.OperationType = OperationType; + this.PanelPosition = PanelPosition; + this.FrameDepth = FrameDepth; + this.FrameThickness = FrameThickness; + this.ShapeAspectStyle = ShapeAspectStyle; + this.type = 3566463478; + } + } + IFC42.IfcPermeableCoveringProperties = IfcPermeableCoveringProperties; + class IfcPermit extends IfcControl { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, LongDescription) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.PredefinedType = PredefinedType; + this.Status = Status; + this.LongDescription = LongDescription; + this.type = 3327091369; } } - IFC42.IfcNamedUnit = IfcNamedUnit; - class IfcObjectPlacement extends IfcLineObject { - constructor(expressID) { - super(expressID); - this.type = 3701648758; + IFC42.IfcPermit = IfcPermit; + class IfcPileType extends IfcBuildingElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1158309216; } } - IFC42.IfcObjectPlacement = IfcObjectPlacement; - class IfcObjective extends IfcConstraint { - constructor(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade, BenchmarkValues, LogicalAggregator, ObjectiveQualifier, UserDefinedQualifier) { - super(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade); + IFC42.IfcPileType = IfcPileType; + class IfcPipeFittingType extends IfcFlowFittingType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.ConstraintGrade = ConstraintGrade; - this.ConstraintSource = ConstraintSource; - this.CreatingActor = CreatingActor; - this.CreationTime = CreationTime; - this.UserDefinedGrade = UserDefinedGrade; - this.BenchmarkValues = BenchmarkValues; - this.LogicalAggregator = LogicalAggregator; - this.ObjectiveQualifier = ObjectiveQualifier; - this.UserDefinedQualifier = UserDefinedQualifier; - this.type = 2251480897; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 804291784; } } - IFC42.IfcObjective = IfcObjective; - class IfcOrganization extends IfcLineObject { - constructor(expressID, Identification, Name, Description, Roles, Addresses) { - super(expressID); - this.Identification = Identification; + IFC42.IfcPipeFittingType = IfcPipeFittingType; + class IfcPipeSegmentType extends IfcFlowSegmentType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.Roles = Roles; - this.Addresses = Addresses; - this.type = 4251960020; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 4231323485; } } - IFC42.IfcOrganization = IfcOrganization; - class IfcOwnerHistory extends IfcLineObject { - constructor(expressID, OwningUser, OwningApplication, State, ChangeAction, LastModifiedDate, LastModifyingUser, LastModifyingApplication, CreationDate) { - super(expressID); - this.OwningUser = OwningUser; - this.OwningApplication = OwningApplication; - this.State = State; - this.ChangeAction = ChangeAction; - this.LastModifiedDate = LastModifiedDate; - this.LastModifyingUser = LastModifyingUser; - this.LastModifyingApplication = LastModifyingApplication; - this.CreationDate = CreationDate; - this.type = 1207048766; + IFC42.IfcPipeSegmentType = IfcPipeSegmentType; + class IfcPlateType extends IfcBuildingElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 4017108033; } } - IFC42.IfcOwnerHistory = IfcOwnerHistory; - class IfcPerson extends IfcLineObject { - constructor(expressID, Identification, FamilyName, GivenName, MiddleNames, PrefixTitles, SuffixTitles, Roles, Addresses) { - super(expressID); - this.Identification = Identification; - this.FamilyName = FamilyName; - this.GivenName = GivenName; - this.MiddleNames = MiddleNames; - this.PrefixTitles = PrefixTitles; - this.SuffixTitles = SuffixTitles; - this.Roles = Roles; - this.Addresses = Addresses; - this.type = 2077209135; + IFC42.IfcPlateType = IfcPlateType; + class IfcPolygonalFaceSet extends IfcTessellatedFaceSet { + constructor(Coordinates, Closed, Faces, PnIndex) { + super(Coordinates); + this.Coordinates = Coordinates; + this.Closed = Closed; + this.Faces = Faces; + this.PnIndex = PnIndex; + this.type = 2839578677; } } - IFC42.IfcPerson = IfcPerson; - class IfcPersonAndOrganization extends IfcLineObject { - constructor(expressID, ThePerson, TheOrganization, Roles) { - super(expressID); - this.ThePerson = ThePerson; - this.TheOrganization = TheOrganization; - this.Roles = Roles; - this.type = 101040310; + IFC42.IfcPolygonalFaceSet = IfcPolygonalFaceSet; + class IfcPolyline extends IfcBoundedCurve { + constructor(Points) { + super(); + this.Points = Points; + this.type = 3724593414; } } - IFC42.IfcPersonAndOrganization = IfcPersonAndOrganization; - class IfcPhysicalQuantity extends IfcLineObject { - constructor(expressID, Name, Description) { - super(expressID); + IFC42.IfcPolyline = IfcPolyline; + class IfcPort extends IfcProduct { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.type = 2483315170; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.type = 3740093272; } } - IFC42.IfcPhysicalQuantity = IfcPhysicalQuantity; - class IfcPhysicalSimpleQuantity extends IfcPhysicalQuantity { - constructor(expressID, Name, Description, Unit) { - super(expressID, Name, Description); + IFC42.IfcPort = IfcPort; + class IfcProcedure extends IfcProcess { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.Unit = Unit; - this.type = 2226359599; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.PredefinedType = PredefinedType; + this.type = 2744685151; } } - IFC42.IfcPhysicalSimpleQuantity = IfcPhysicalSimpleQuantity; - class IfcPostalAddress extends IfcAddress { - constructor(expressID, Purpose, Description, UserDefinedPurpose, InternalLocation, AddressLines, PostalBox, Town, Region, PostalCode, Country) { - super(expressID, Purpose, Description, UserDefinedPurpose); - this.Purpose = Purpose; + IFC42.IfcProcedure = IfcProcedure; + class IfcProjectOrder extends IfcControl { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, LongDescription) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; this.Description = Description; - this.UserDefinedPurpose = UserDefinedPurpose; - this.InternalLocation = InternalLocation; - this.AddressLines = AddressLines; - this.PostalBox = PostalBox; - this.Town = Town; - this.Region = Region; - this.PostalCode = PostalCode; - this.Country = Country; - this.type = 3355820592; - } - } - IFC42.IfcPostalAddress = IfcPostalAddress; - class IfcPresentationItem extends IfcLineObject { - constructor(expressID) { - super(expressID); - this.type = 677532197; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.PredefinedType = PredefinedType; + this.Status = Status; + this.LongDescription = LongDescription; + this.type = 2904328755; } } - IFC42.IfcPresentationItem = IfcPresentationItem; - class IfcPresentationLayerAssignment extends IfcLineObject { - constructor(expressID, Name, Description, AssignedItems, Identifier) { - super(expressID); + IFC42.IfcProjectOrder = IfcProjectOrder; + class IfcProjectionElement extends IfcFeatureElementAddition { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.AssignedItems = AssignedItems; - this.Identifier = Identifier; - this.type = 2022622350; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3651124850; } } - IFC42.IfcPresentationLayerAssignment = IfcPresentationLayerAssignment; - class IfcPresentationLayerWithStyle extends IfcPresentationLayerAssignment { - constructor(expressID, Name, Description, AssignedItems, Identifier, LayerOn, LayerFrozen, LayerBlocked, LayerStyles) { - super(expressID, Name, Description, AssignedItems, Identifier); + IFC42.IfcProjectionElement = IfcProjectionElement; + class IfcProtectiveDeviceType extends IfcFlowControllerType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.AssignedItems = AssignedItems; - this.Identifier = Identifier; - this.LayerOn = LayerOn; - this.LayerFrozen = LayerFrozen; - this.LayerBlocked = LayerBlocked; - this.LayerStyles = LayerStyles; - this.type = 1304840413; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1842657554; } } - IFC42.IfcPresentationLayerWithStyle = IfcPresentationLayerWithStyle; - class IfcPresentationStyle extends IfcLineObject { - constructor(expressID, Name) { - super(expressID); + IFC42.IfcProtectiveDeviceType = IfcProtectiveDeviceType; + class IfcPumpType extends IfcFlowMovingDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.type = 3119450353; - } - } - IFC42.IfcPresentationStyle = IfcPresentationStyle; - class IfcPresentationStyleAssignment extends IfcLineObject { - constructor(expressID, Styles) { - super(expressID); - this.Styles = Styles; - this.type = 2417041796; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2250791053; } } - IFC42.IfcPresentationStyleAssignment = IfcPresentationStyleAssignment; - class IfcProductRepresentation extends IfcLineObject { - constructor(expressID, Name, Description, Representations) { - super(expressID); + IFC42.IfcPumpType = IfcPumpType; + class IfcRailingType extends IfcBuildingElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.Representations = Representations; - this.type = 2095639259; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2893384427; } } - IFC42.IfcProductRepresentation = IfcProductRepresentation; - class IfcProfileDef extends IfcLineObject { - constructor(expressID, ProfileType, ProfileName) { - super(expressID); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.type = 3958567839; + IFC42.IfcRailingType = IfcRailingType; + class IfcRampFlightType extends IfcBuildingElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2324767716; } } - IFC42.IfcProfileDef = IfcProfileDef; - class IfcProjectedCRS extends IfcCoordinateReferenceSystem { - constructor(expressID, Name, Description, GeodeticDatum, VerticalDatum, MapProjection, MapZone, MapUnit) { - super(expressID, Name, Description, GeodeticDatum, VerticalDatum); + IFC42.IfcRampFlightType = IfcRampFlightType; + class IfcRampType extends IfcBuildingElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.GeodeticDatum = GeodeticDatum; - this.VerticalDatum = VerticalDatum; - this.MapProjection = MapProjection; - this.MapZone = MapZone; - this.MapUnit = MapUnit; - this.type = 3843373140; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1469900589; } } - IFC42.IfcProjectedCRS = IfcProjectedCRS; - class IfcPropertyAbstraction extends IfcLineObject { - constructor(expressID) { - super(expressID); - this.type = 986844984; + IFC42.IfcRampType = IfcRampType; + class IfcRationalBSplineSurfaceWithKnots extends IfcBSplineSurfaceWithKnots { + constructor(UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect, UMultiplicities, VMultiplicities, UKnots, VKnots, KnotSpec, WeightsData) { + super(UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect, UMultiplicities, VMultiplicities, UKnots, VKnots, KnotSpec); + this.UDegree = UDegree; + this.VDegree = VDegree; + this.ControlPointsList = ControlPointsList; + this.SurfaceForm = SurfaceForm; + this.UClosed = UClosed; + this.VClosed = VClosed; + this.SelfIntersect = SelfIntersect; + this.UMultiplicities = UMultiplicities; + this.VMultiplicities = VMultiplicities; + this.UKnots = UKnots; + this.VKnots = VKnots; + this.KnotSpec = KnotSpec; + this.WeightsData = WeightsData; + this.type = 683857671; } } - IFC42.IfcPropertyAbstraction = IfcPropertyAbstraction; - class IfcPropertyEnumeration extends IfcPropertyAbstraction { - constructor(expressID, Name, EnumerationValues, Unit) { - super(expressID); + IFC42.IfcRationalBSplineSurfaceWithKnots = IfcRationalBSplineSurfaceWithKnots; + class IfcReinforcingElement extends IfcElementComponent { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.EnumerationValues = EnumerationValues; - this.Unit = Unit; - this.type = 3710013099; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.SteelGrade = SteelGrade; + this.type = 3027567501; } } - IFC42.IfcPropertyEnumeration = IfcPropertyEnumeration; - class IfcQuantityArea extends IfcPhysicalSimpleQuantity { - constructor(expressID, Name, Description, Unit, AreaValue, Formula) { - super(expressID, Name, Description, Unit); + IFC42.IfcReinforcingElement = IfcReinforcingElement; + class IfcReinforcingElementType extends IfcElementComponentType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.Unit = Unit; - this.AreaValue = AreaValue; - this.Formula = Formula; - this.type = 2044713172; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 964333572; } } - IFC42.IfcQuantityArea = IfcQuantityArea; - class IfcQuantityCount extends IfcPhysicalSimpleQuantity { - constructor(expressID, Name, Description, Unit, CountValue, Formula) { - super(expressID, Name, Description, Unit); + IFC42.IfcReinforcingElementType = IfcReinforcingElementType; + class IfcReinforcingMesh extends IfcReinforcingElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, MeshLength, MeshWidth, LongitudinalBarNominalDiameter, TransverseBarNominalDiameter, LongitudinalBarCrossSectionArea, TransverseBarCrossSectionArea, LongitudinalBarSpacing, TransverseBarSpacing, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.Unit = Unit; - this.CountValue = CountValue; - this.Formula = Formula; - this.type = 2093928680; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.SteelGrade = SteelGrade; + this.MeshLength = MeshLength; + this.MeshWidth = MeshWidth; + this.LongitudinalBarNominalDiameter = LongitudinalBarNominalDiameter; + this.TransverseBarNominalDiameter = TransverseBarNominalDiameter; + this.LongitudinalBarCrossSectionArea = LongitudinalBarCrossSectionArea; + this.TransverseBarCrossSectionArea = TransverseBarCrossSectionArea; + this.LongitudinalBarSpacing = LongitudinalBarSpacing; + this.TransverseBarSpacing = TransverseBarSpacing; + this.PredefinedType = PredefinedType; + this.type = 2320036040; } } - IFC42.IfcQuantityCount = IfcQuantityCount; - class IfcQuantityLength extends IfcPhysicalSimpleQuantity { - constructor(expressID, Name, Description, Unit, LengthValue, Formula) { - super(expressID, Name, Description, Unit); + IFC42.IfcReinforcingMesh = IfcReinforcingMesh; + class IfcReinforcingMeshType extends IfcReinforcingElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, MeshLength, MeshWidth, LongitudinalBarNominalDiameter, TransverseBarNominalDiameter, LongitudinalBarCrossSectionArea, TransverseBarCrossSectionArea, LongitudinalBarSpacing, TransverseBarSpacing, BendingShapeCode, BendingParameters) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.Unit = Unit; - this.LengthValue = LengthValue; - this.Formula = Formula; - this.type = 931644368; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.MeshLength = MeshLength; + this.MeshWidth = MeshWidth; + this.LongitudinalBarNominalDiameter = LongitudinalBarNominalDiameter; + this.TransverseBarNominalDiameter = TransverseBarNominalDiameter; + this.LongitudinalBarCrossSectionArea = LongitudinalBarCrossSectionArea; + this.TransverseBarCrossSectionArea = TransverseBarCrossSectionArea; + this.LongitudinalBarSpacing = LongitudinalBarSpacing; + this.TransverseBarSpacing = TransverseBarSpacing; + this.BendingShapeCode = BendingShapeCode; + this.BendingParameters = BendingParameters; + this.type = 2310774935; } } - IFC42.IfcQuantityLength = IfcQuantityLength; - class IfcQuantityTime extends IfcPhysicalSimpleQuantity { - constructor(expressID, Name, Description, Unit, TimeValue, Formula) { - super(expressID, Name, Description, Unit); + IFC42.IfcReinforcingMeshType = IfcReinforcingMeshType; + class IfcRelAggregates extends IfcRelDecomposes { + constructor(GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.Unit = Unit; - this.TimeValue = TimeValue; - this.Formula = Formula; - this.type = 3252649465; + this.RelatingObject = RelatingObject; + this.RelatedObjects = RelatedObjects; + this.type = 160246688; } } - IFC42.IfcQuantityTime = IfcQuantityTime; - class IfcQuantityVolume extends IfcPhysicalSimpleQuantity { - constructor(expressID, Name, Description, Unit, VolumeValue, Formula) { - super(expressID, Name, Description, Unit); + IFC42.IfcRelAggregates = IfcRelAggregates; + class IfcRoofType extends IfcBuildingElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.Unit = Unit; - this.VolumeValue = VolumeValue; - this.Formula = Formula; - this.type = 2405470396; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2781568857; } } - IFC42.IfcQuantityVolume = IfcQuantityVolume; - class IfcQuantityWeight extends IfcPhysicalSimpleQuantity { - constructor(expressID, Name, Description, Unit, WeightValue, Formula) { - super(expressID, Name, Description, Unit); + IFC42.IfcRoofType = IfcRoofType; + class IfcSanitaryTerminalType extends IfcFlowTerminalType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.Unit = Unit; - this.WeightValue = WeightValue; - this.Formula = Formula; - this.type = 825690147; - } - } - IFC42.IfcQuantityWeight = IfcQuantityWeight; - class IfcRecurrencePattern extends IfcLineObject { - constructor(expressID, RecurrenceType, DayComponent, WeekdayComponent, MonthComponent, Position, Interval, Occurrences, TimePeriods) { - super(expressID); - this.RecurrenceType = RecurrenceType; - this.DayComponent = DayComponent; - this.WeekdayComponent = WeekdayComponent; - this.MonthComponent = MonthComponent; - this.Position = Position; - this.Interval = Interval; - this.Occurrences = Occurrences; - this.TimePeriods = TimePeriods; - this.type = 3915482550; - } - } - IFC42.IfcRecurrencePattern = IfcRecurrencePattern; - class IfcReference extends IfcLineObject { - constructor(expressID, TypeIdentifier, AttributeIdentifier, InstanceName, ListPositions, InnerReference) { - super(expressID); - this.TypeIdentifier = TypeIdentifier; - this.AttributeIdentifier = AttributeIdentifier; - this.InstanceName = InstanceName; - this.ListPositions = ListPositions; - this.InnerReference = InnerReference; - this.type = 2433181523; - } - } - IFC42.IfcReference = IfcReference; - class IfcRepresentation extends IfcLineObject { - constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { - super(expressID); - this.ContextOfItems = ContextOfItems; - this.RepresentationIdentifier = RepresentationIdentifier; - this.RepresentationType = RepresentationType; - this.Items = Items; - this.type = 1076942058; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1768891740; } } - IFC42.IfcRepresentation = IfcRepresentation; - class IfcRepresentationContext extends IfcLineObject { - constructor(expressID, ContextIdentifier, ContextType) { - super(expressID); - this.ContextIdentifier = ContextIdentifier; - this.ContextType = ContextType; - this.type = 3377609919; + IFC42.IfcSanitaryTerminalType = IfcSanitaryTerminalType; + class IfcSeamCurve extends IfcSurfaceCurve { + constructor(Curve3D, AssociatedGeometry, MasterRepresentation) { + super(Curve3D, AssociatedGeometry, MasterRepresentation); + this.Curve3D = Curve3D; + this.AssociatedGeometry = AssociatedGeometry; + this.MasterRepresentation = MasterRepresentation; + this.type = 2157484638; } } - IFC42.IfcRepresentationContext = IfcRepresentationContext; - class IfcRepresentationItem extends IfcLineObject { - constructor(expressID) { - super(expressID); - this.type = 3008791417; + IFC42.IfcSeamCurve = IfcSeamCurve; + class IfcShadingDeviceType extends IfcBuildingElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 4074543187; } } - IFC42.IfcRepresentationItem = IfcRepresentationItem; - class IfcRepresentationMap extends IfcLineObject { - constructor(expressID, MappingOrigin, MappedRepresentation) { - super(expressID); - this.MappingOrigin = MappingOrigin; - this.MappedRepresentation = MappedRepresentation; - this.type = 1660063152; + IFC42.IfcShadingDeviceType = IfcShadingDeviceType; + class IfcSite extends IfcSpatialStructureElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, RefLatitude, RefLongitude, RefElevation, LandTitleNumber, SiteAddress) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.LongName = LongName; + this.CompositionType = CompositionType; + this.RefLatitude = RefLatitude; + this.RefLongitude = RefLongitude; + this.RefElevation = RefElevation; + this.LandTitleNumber = LandTitleNumber; + this.SiteAddress = SiteAddress; + this.type = 4097777520; } } - IFC42.IfcRepresentationMap = IfcRepresentationMap; - class IfcResourceLevelRelationship extends IfcLineObject { - constructor(expressID, Name, Description) { - super(expressID); + IFC42.IfcSite = IfcSite; + class IfcSlabType extends IfcBuildingElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.type = 2439245199; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2533589738; } } - IFC42.IfcResourceLevelRelationship = IfcResourceLevelRelationship; - class IfcRoot extends IfcLineObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID); + IFC42.IfcSlabType = IfcSlabType; + class IfcSolarDeviceType extends IfcEnergyConversionDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.type = 2341007311; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1072016465; } } - IFC42.IfcRoot = IfcRoot; - class IfcSIUnit extends IfcNamedUnit { - constructor(expressID, UnitType, Prefix, Name) { - super(expressID, new Handle$4(0), UnitType); - this.UnitType = UnitType; - this.Prefix = Prefix; + IFC42.IfcSolarDeviceType = IfcSolarDeviceType; + class IfcSpace extends IfcSpatialStructureElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, PredefinedType, ElevationWithFlooring) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.type = 448429030; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.LongName = LongName; + this.CompositionType = CompositionType; + this.PredefinedType = PredefinedType; + this.ElevationWithFlooring = ElevationWithFlooring; + this.type = 3856911033; } } - IFC42.IfcSIUnit = IfcSIUnit; - class IfcSchedulingTime extends IfcLineObject { - constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin) { - super(expressID); + IFC42.IfcSpace = IfcSpace; + class IfcSpaceHeaterType extends IfcFlowTerminalType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.DataOrigin = DataOrigin; - this.UserDefinedDataOrigin = UserDefinedDataOrigin; - this.type = 1054537805; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1305183839; } } - IFC42.IfcSchedulingTime = IfcSchedulingTime; - class IfcShapeAspect extends IfcLineObject { - constructor(expressID, ShapeRepresentations, Name, Description, ProductDefinitional, PartOfProductDefinitionShape) { - super(expressID); - this.ShapeRepresentations = ShapeRepresentations; + IFC42.IfcSpaceHeaterType = IfcSpaceHeaterType; + class IfcSpaceType extends IfcSpatialStructureElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, LongName) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.ProductDefinitional = ProductDefinitional; - this.PartOfProductDefinitionShape = PartOfProductDefinitionShape; - this.type = 867548509; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.LongName = LongName; + this.type = 3812236995; } } - IFC42.IfcShapeAspect = IfcShapeAspect; - class IfcShapeModel extends IfcRepresentation { - constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { - super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items); - this.ContextOfItems = ContextOfItems; - this.RepresentationIdentifier = RepresentationIdentifier; - this.RepresentationType = RepresentationType; - this.Items = Items; - this.type = 3982875396; + IFC42.IfcSpaceType = IfcSpaceType; + class IfcStackTerminalType extends IfcFlowTerminalType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3112655638; } } - IFC42.IfcShapeModel = IfcShapeModel; - class IfcShapeRepresentation extends IfcShapeModel { - constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { - super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items); - this.ContextOfItems = ContextOfItems; - this.RepresentationIdentifier = RepresentationIdentifier; - this.RepresentationType = RepresentationType; - this.Items = Items; - this.type = 4240577450; + IFC42.IfcStackTerminalType = IfcStackTerminalType; + class IfcStairFlightType extends IfcBuildingElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1039846685; } } - IFC42.IfcShapeRepresentation = IfcShapeRepresentation; - class IfcStructuralConnectionCondition extends IfcLineObject { - constructor(expressID, Name) { - super(expressID); + IFC42.IfcStairFlightType = IfcStairFlightType; + class IfcStairType extends IfcBuildingElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.type = 2273995522; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 338393293; } } - IFC42.IfcStructuralConnectionCondition = IfcStructuralConnectionCondition; - class IfcStructuralLoad extends IfcLineObject { - constructor(expressID, Name) { - super(expressID); + IFC42.IfcStairType = IfcStairType; + class IfcStructuralAction extends IfcStructuralActivity { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.type = 2162789131; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedLoad = AppliedLoad; + this.GlobalOrLocal = GlobalOrLocal; + this.DestabilizingLoad = DestabilizingLoad; + this.type = 682877961; } } - IFC42.IfcStructuralLoad = IfcStructuralLoad; - class IfcStructuralLoadConfiguration extends IfcStructuralLoad { - constructor(expressID, Name, Values, Locations) { - super(expressID, Name); + IFC42.IfcStructuralAction = IfcStructuralAction; + class IfcStructuralConnection extends IfcStructuralItem { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.Values = Values; - this.Locations = Locations; - this.type = 3478079324; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedCondition = AppliedCondition; + this.type = 1179482911; } } - IFC42.IfcStructuralLoadConfiguration = IfcStructuralLoadConfiguration; - class IfcStructuralLoadOrResult extends IfcStructuralLoad { - constructor(expressID, Name) { - super(expressID, Name); + IFC42.IfcStructuralConnection = IfcStructuralConnection; + class IfcStructuralCurveAction extends IfcStructuralAction { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.type = 609421318; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedLoad = AppliedLoad; + this.GlobalOrLocal = GlobalOrLocal; + this.DestabilizingLoad = DestabilizingLoad; + this.ProjectedOrTrue = ProjectedOrTrue; + this.PredefinedType = PredefinedType; + this.type = 1004757350; } } - IFC42.IfcStructuralLoadOrResult = IfcStructuralLoadOrResult; - class IfcStructuralLoadStatic extends IfcStructuralLoadOrResult { - constructor(expressID, Name) { - super(expressID, Name); + IFC42.IfcStructuralCurveAction = IfcStructuralCurveAction; + class IfcStructuralCurveConnection extends IfcStructuralConnection { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition, Axis) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.type = 2525727697; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedCondition = AppliedCondition; + this.Axis = Axis; + this.type = 4243806635; } } - IFC42.IfcStructuralLoadStatic = IfcStructuralLoadStatic; - class IfcStructuralLoadTemperature extends IfcStructuralLoadStatic { - constructor(expressID, Name, DeltaTConstant, DeltaTY, DeltaTZ) { - super(expressID, Name); + IFC42.IfcStructuralCurveConnection = IfcStructuralCurveConnection; + class IfcStructuralCurveMember extends IfcStructuralMember { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Axis) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.DeltaTConstant = DeltaTConstant; - this.DeltaTY = DeltaTY; - this.DeltaTZ = DeltaTZ; - this.type = 3408363356; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.PredefinedType = PredefinedType; + this.Axis = Axis; + this.type = 214636428; } } - IFC42.IfcStructuralLoadTemperature = IfcStructuralLoadTemperature; - class IfcStyleModel extends IfcRepresentation { - constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { - super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items); - this.ContextOfItems = ContextOfItems; - this.RepresentationIdentifier = RepresentationIdentifier; - this.RepresentationType = RepresentationType; - this.Items = Items; - this.type = 2830218821; + IFC42.IfcStructuralCurveMember = IfcStructuralCurveMember; + class IfcStructuralCurveMemberVarying extends IfcStructuralCurveMember { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Axis) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Axis); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.PredefinedType = PredefinedType; + this.Axis = Axis; + this.type = 2445595289; } } - IFC42.IfcStyleModel = IfcStyleModel; - class IfcStyledItem extends IfcRepresentationItem { - constructor(expressID, Item, Styles, Name) { - super(expressID); - this.Item = Item; - this.Styles = Styles; + IFC42.IfcStructuralCurveMemberVarying = IfcStructuralCurveMemberVarying; + class IfcStructuralCurveReaction extends IfcStructuralReaction { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.type = 3958052878; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedLoad = AppliedLoad; + this.GlobalOrLocal = GlobalOrLocal; + this.PredefinedType = PredefinedType; + this.type = 2757150158; } } - IFC42.IfcStyledItem = IfcStyledItem; - class IfcStyledRepresentation extends IfcStyleModel { - constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { - super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items); - this.ContextOfItems = ContextOfItems; - this.RepresentationIdentifier = RepresentationIdentifier; - this.RepresentationType = RepresentationType; - this.Items = Items; - this.type = 3049322572; + IFC42.IfcStructuralCurveReaction = IfcStructuralCurveReaction; + class IfcStructuralLinearAction extends IfcStructuralCurveAction { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedLoad = AppliedLoad; + this.GlobalOrLocal = GlobalOrLocal; + this.DestabilizingLoad = DestabilizingLoad; + this.ProjectedOrTrue = ProjectedOrTrue; + this.PredefinedType = PredefinedType; + this.type = 1807405624; } } - IFC42.IfcStyledRepresentation = IfcStyledRepresentation; - class IfcSurfaceReinforcementArea extends IfcStructuralLoadOrResult { - constructor(expressID, Name, SurfaceReinforcement1, SurfaceReinforcement2, ShearReinforcement) { - super(expressID, Name); + IFC42.IfcStructuralLinearAction = IfcStructuralLinearAction; + class IfcStructuralLoadGroup extends IfcGroup { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, ActionType, ActionSource, Coefficient, Purpose) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.SurfaceReinforcement1 = SurfaceReinforcement1; - this.SurfaceReinforcement2 = SurfaceReinforcement2; - this.ShearReinforcement = ShearReinforcement; - this.type = 2934153892; + this.Description = Description; + this.ObjectType = ObjectType; + this.PredefinedType = PredefinedType; + this.ActionType = ActionType; + this.ActionSource = ActionSource; + this.Coefficient = Coefficient; + this.Purpose = Purpose; + this.type = 1252848954; } } - IFC42.IfcSurfaceReinforcementArea = IfcSurfaceReinforcementArea; - class IfcSurfaceStyle extends IfcPresentationStyle { - constructor(expressID, Name, Side, Styles) { - super(expressID, Name); + IFC42.IfcStructuralLoadGroup = IfcStructuralLoadGroup; + class IfcStructuralPointAction extends IfcStructuralAction { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.Side = Side; - this.Styles = Styles; - this.type = 1300840506; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedLoad = AppliedLoad; + this.GlobalOrLocal = GlobalOrLocal; + this.DestabilizingLoad = DestabilizingLoad; + this.type = 2082059205; } } - IFC42.IfcSurfaceStyle = IfcSurfaceStyle; - class IfcSurfaceStyleLighting extends IfcPresentationItem { - constructor(expressID, DiffuseTransmissionColour, DiffuseReflectionColour, TransmissionColour, ReflectanceColour) { - super(expressID); - this.DiffuseTransmissionColour = DiffuseTransmissionColour; - this.DiffuseReflectionColour = DiffuseReflectionColour; - this.TransmissionColour = TransmissionColour; - this.ReflectanceColour = ReflectanceColour; - this.type = 3303107099; + IFC42.IfcStructuralPointAction = IfcStructuralPointAction; + class IfcStructuralPointConnection extends IfcStructuralConnection { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition, ConditionCoordinateSystem) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedCondition = AppliedCondition; + this.ConditionCoordinateSystem = ConditionCoordinateSystem; + this.type = 734778138; } } - IFC42.IfcSurfaceStyleLighting = IfcSurfaceStyleLighting; - class IfcSurfaceStyleRefraction extends IfcPresentationItem { - constructor(expressID, RefractionIndex, DispersionFactor) { - super(expressID); - this.RefractionIndex = RefractionIndex; - this.DispersionFactor = DispersionFactor; - this.type = 1607154358; + IFC42.IfcStructuralPointConnection = IfcStructuralPointConnection; + class IfcStructuralPointReaction extends IfcStructuralReaction { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedLoad = AppliedLoad; + this.GlobalOrLocal = GlobalOrLocal; + this.type = 1235345126; } } - IFC42.IfcSurfaceStyleRefraction = IfcSurfaceStyleRefraction; - class IfcSurfaceStyleShading extends IfcPresentationItem { - constructor(expressID, SurfaceColour, Transparency) { - super(expressID); - this.SurfaceColour = SurfaceColour; - this.Transparency = Transparency; - this.type = 846575682; + IFC42.IfcStructuralPointReaction = IfcStructuralPointReaction; + class IfcStructuralResultGroup extends IfcGroup { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, TheoryType, ResultForLoadGroup, IsLinear) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.TheoryType = TheoryType; + this.ResultForLoadGroup = ResultForLoadGroup; + this.IsLinear = IsLinear; + this.type = 2986769608; } } - IFC42.IfcSurfaceStyleShading = IfcSurfaceStyleShading; - class IfcSurfaceStyleWithTextures extends IfcPresentationItem { - constructor(expressID, Textures) { - super(expressID); - this.Textures = Textures; - this.type = 1351298697; + IFC42.IfcStructuralResultGroup = IfcStructuralResultGroup; + class IfcStructuralSurfaceAction extends IfcStructuralAction { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedLoad = AppliedLoad; + this.GlobalOrLocal = GlobalOrLocal; + this.DestabilizingLoad = DestabilizingLoad; + this.ProjectedOrTrue = ProjectedOrTrue; + this.PredefinedType = PredefinedType; + this.type = 3657597509; } } - IFC42.IfcSurfaceStyleWithTextures = IfcSurfaceStyleWithTextures; - class IfcSurfaceTexture extends IfcPresentationItem { - constructor(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter) { - super(expressID); - this.RepeatS = RepeatS; - this.RepeatT = RepeatT; - this.Mode = Mode; - this.TextureTransform = TextureTransform; - this.Parameter = Parameter; - this.type = 626085974; + IFC42.IfcStructuralSurfaceAction = IfcStructuralSurfaceAction; + class IfcStructuralSurfaceConnection extends IfcStructuralConnection { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedCondition = AppliedCondition; + this.type = 1975003073; + } + } + IFC42.IfcStructuralSurfaceConnection = IfcStructuralSurfaceConnection; + class IfcSubContractResource extends IfcConstructionResource { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.Usage = Usage; + this.BaseCosts = BaseCosts; + this.BaseQuantity = BaseQuantity; + this.PredefinedType = PredefinedType; + this.type = 148013059; } } - IFC42.IfcSurfaceTexture = IfcSurfaceTexture; - class IfcTable extends IfcLineObject { - constructor(expressID, Name, Rows, Columns) { - super(expressID); + IFC42.IfcSubContractResource = IfcSubContractResource; + class IfcSurfaceFeature extends IfcFeatureElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.Rows = Rows; - this.Columns = Columns; - this.type = 985171141; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3101698114; } } - IFC42.IfcTable = IfcTable; - class IfcTableColumn extends IfcLineObject { - constructor(expressID, Identifier, Name, Description, Unit, ReferencePath) { - super(expressID); - this.Identifier = Identifier; + IFC42.IfcSurfaceFeature = IfcSurfaceFeature; + class IfcSwitchingDeviceType extends IfcFlowControllerType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.Unit = Unit; - this.ReferencePath = ReferencePath; - this.type = 2043862942; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2315554128; } } - IFC42.IfcTableColumn = IfcTableColumn; - class IfcTableRow extends IfcLineObject { - constructor(expressID, RowCells, IsHeading) { - super(expressID); - this.RowCells = RowCells; - this.IsHeading = IsHeading; - this.type = 531007025; + IFC42.IfcSwitchingDeviceType = IfcSwitchingDeviceType; + class IfcSystem extends IfcGroup { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.type = 2254336722; } } - IFC42.IfcTableRow = IfcTableRow; - class IfcTaskTime extends IfcSchedulingTime { - constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin, DurationType, ScheduleDuration, ScheduleStart, ScheduleFinish, EarlyStart, EarlyFinish, LateStart, LateFinish, FreeFloat, TotalFloat, IsCritical, StatusTime, ActualDuration, ActualStart, ActualFinish, RemainingTime, Completion) { - super(expressID, Name, DataOrigin, UserDefinedDataOrigin); + IFC42.IfcSystem = IfcSystem; + class IfcSystemFurnitureElement extends IfcFurnishingElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.DataOrigin = DataOrigin; - this.UserDefinedDataOrigin = UserDefinedDataOrigin; - this.DurationType = DurationType; - this.ScheduleDuration = ScheduleDuration; - this.ScheduleStart = ScheduleStart; - this.ScheduleFinish = ScheduleFinish; - this.EarlyStart = EarlyStart; - this.EarlyFinish = EarlyFinish; - this.LateStart = LateStart; - this.LateFinish = LateFinish; - this.FreeFloat = FreeFloat; - this.TotalFloat = TotalFloat; - this.IsCritical = IsCritical; - this.StatusTime = StatusTime; - this.ActualDuration = ActualDuration; - this.ActualStart = ActualStart; - this.ActualFinish = ActualFinish; - this.RemainingTime = RemainingTime; - this.Completion = Completion; - this.type = 1549132990; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 413509423; } } - IFC42.IfcTaskTime = IfcTaskTime; - class IfcTaskTimeRecurring extends IfcTaskTime { - constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin, DurationType, ScheduleDuration, ScheduleStart, ScheduleFinish, EarlyStart, EarlyFinish, LateStart, LateFinish, FreeFloat, TotalFloat, IsCritical, StatusTime, ActualDuration, ActualStart, ActualFinish, RemainingTime, Completion, Recurrence) { - super(expressID, Name, DataOrigin, UserDefinedDataOrigin, DurationType, ScheduleDuration, ScheduleStart, ScheduleFinish, EarlyStart, EarlyFinish, LateStart, LateFinish, FreeFloat, TotalFloat, IsCritical, StatusTime, ActualDuration, ActualStart, ActualFinish, RemainingTime, Completion); + IFC42.IfcSystemFurnitureElement = IfcSystemFurnitureElement; + class IfcTankType extends IfcFlowStorageDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.DataOrigin = DataOrigin; - this.UserDefinedDataOrigin = UserDefinedDataOrigin; - this.DurationType = DurationType; - this.ScheduleDuration = ScheduleDuration; - this.ScheduleStart = ScheduleStart; - this.ScheduleFinish = ScheduleFinish; - this.EarlyStart = EarlyStart; - this.EarlyFinish = EarlyFinish; - this.LateStart = LateStart; - this.LateFinish = LateFinish; - this.FreeFloat = FreeFloat; - this.TotalFloat = TotalFloat; - this.IsCritical = IsCritical; - this.StatusTime = StatusTime; - this.ActualDuration = ActualDuration; - this.ActualStart = ActualStart; - this.ActualFinish = ActualFinish; - this.RemainingTime = RemainingTime; - this.Completion = Completion; - this.Recurrence = Recurrence; - this.type = 2771591690; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 5716631; } } - IFC42.IfcTaskTimeRecurring = IfcTaskTimeRecurring; - class IfcTelecomAddress extends IfcAddress { - constructor(expressID, Purpose, Description, UserDefinedPurpose, TelephoneNumbers, FacsimileNumbers, PagerNumber, ElectronicMailAddresses, WWWHomePageURL, MessagingIDs) { - super(expressID, Purpose, Description, UserDefinedPurpose); - this.Purpose = Purpose; + IFC42.IfcTankType = IfcTankType; + class IfcTendon extends IfcReinforcingElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, PredefinedType, NominalDiameter, CrossSectionArea, TensionForce, PreStress, FrictionCoefficient, AnchorageSlip, MinCurvatureRadius) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; this.Description = Description; - this.UserDefinedPurpose = UserDefinedPurpose; - this.TelephoneNumbers = TelephoneNumbers; - this.FacsimileNumbers = FacsimileNumbers; - this.PagerNumber = PagerNumber; - this.ElectronicMailAddresses = ElectronicMailAddresses; - this.WWWHomePageURL = WWWHomePageURL; - this.MessagingIDs = MessagingIDs; - this.type = 912023232; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.SteelGrade = SteelGrade; + this.PredefinedType = PredefinedType; + this.NominalDiameter = NominalDiameter; + this.CrossSectionArea = CrossSectionArea; + this.TensionForce = TensionForce; + this.PreStress = PreStress; + this.FrictionCoefficient = FrictionCoefficient; + this.AnchorageSlip = AnchorageSlip; + this.MinCurvatureRadius = MinCurvatureRadius; + this.type = 3824725483; } } - IFC42.IfcTelecomAddress = IfcTelecomAddress; - class IfcTextStyle extends IfcPresentationStyle { - constructor(expressID, Name, TextCharacterAppearance, TextStyle, TextFontStyle, ModelOrDraughting) { - super(expressID, Name); + IFC42.IfcTendon = IfcTendon; + class IfcTendonAnchor extends IfcReinforcingElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.TextCharacterAppearance = TextCharacterAppearance; - this.TextStyle = TextStyle; - this.TextFontStyle = TextFontStyle; - this.ModelOrDraughting = ModelOrDraughting; - this.type = 1447204868; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.SteelGrade = SteelGrade; + this.PredefinedType = PredefinedType; + this.type = 2347447852; } } - IFC42.IfcTextStyle = IfcTextStyle; - class IfcTextStyleForDefinedFont extends IfcPresentationItem { - constructor(expressID, Colour, BackgroundColour) { - super(expressID); - this.Colour = Colour; - this.BackgroundColour = BackgroundColour; - this.type = 2636378356; + IFC42.IfcTendonAnchor = IfcTendonAnchor; + class IfcTendonAnchorType extends IfcReinforcingElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3081323446; } } - IFC42.IfcTextStyleForDefinedFont = IfcTextStyleForDefinedFont; - class IfcTextStyleTextModel extends IfcPresentationItem { - constructor(expressID, TextIndent, TextAlign, TextDecoration, LetterSpacing, WordSpacing, TextTransform, LineHeight) { - super(expressID); - this.TextIndent = TextIndent; - this.TextAlign = TextAlign; - this.TextDecoration = TextDecoration; - this.LetterSpacing = LetterSpacing; - this.WordSpacing = WordSpacing; - this.TextTransform = TextTransform; - this.LineHeight = LineHeight; - this.type = 1640371178; + IFC42.IfcTendonAnchorType = IfcTendonAnchorType; + class IfcTendonType extends IfcReinforcingElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, NominalDiameter, CrossSectionArea, SheathDiameter) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.NominalDiameter = NominalDiameter; + this.CrossSectionArea = CrossSectionArea; + this.SheathDiameter = SheathDiameter; + this.type = 2415094496; } } - IFC42.IfcTextStyleTextModel = IfcTextStyleTextModel; - class IfcTextureCoordinate extends IfcPresentationItem { - constructor(expressID, Maps) { - super(expressID); - this.Maps = Maps; - this.type = 280115917; + IFC42.IfcTendonType = IfcTendonType; + class IfcTransformerType extends IfcEnergyConversionDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1692211062; } } - IFC42.IfcTextureCoordinate = IfcTextureCoordinate; - class IfcTextureCoordinateGenerator extends IfcTextureCoordinate { - constructor(expressID, Maps, Mode, Parameter) { - super(expressID, Maps); - this.Maps = Maps; - this.Mode = Mode; - this.Parameter = Parameter; - this.type = 1742049831; + IFC42.IfcTransformerType = IfcTransformerType; + class IfcTransportElement extends IfcElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1620046519; } } - IFC42.IfcTextureCoordinateGenerator = IfcTextureCoordinateGenerator; - class IfcTextureMap extends IfcTextureCoordinate { - constructor(expressID, Maps, Vertices, MappedTo) { - super(expressID, Maps); - this.Maps = Maps; - this.Vertices = Vertices; - this.MappedTo = MappedTo; - this.type = 2552916305; + IFC42.IfcTransportElement = IfcTransportElement; + class IfcTrimmedCurve extends IfcBoundedCurve { + constructor(BasisCurve, Trim1, Trim2, SenseAgreement, MasterRepresentation) { + super(); + this.BasisCurve = BasisCurve; + this.Trim1 = Trim1; + this.Trim2 = Trim2; + this.SenseAgreement = SenseAgreement; + this.MasterRepresentation = MasterRepresentation; + this.type = 3593883385; } } - IFC42.IfcTextureMap = IfcTextureMap; - class IfcTextureVertex extends IfcPresentationItem { - constructor(expressID, Coordinates) { - super(expressID); - this.Coordinates = Coordinates; - this.type = 1210645708; + IFC42.IfcTrimmedCurve = IfcTrimmedCurve; + class IfcTubeBundleType extends IfcEnergyConversionDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1600972822; } } - IFC42.IfcTextureVertex = IfcTextureVertex; - class IfcTextureVertexList extends IfcPresentationItem { - constructor(expressID, TexCoordsList) { - super(expressID); - this.TexCoordsList = TexCoordsList; - this.type = 3611470254; + IFC42.IfcTubeBundleType = IfcTubeBundleType; + class IfcUnitaryEquipmentType extends IfcEnergyConversionDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1911125066; } } - IFC42.IfcTextureVertexList = IfcTextureVertexList; - class IfcTimePeriod extends IfcLineObject { - constructor(expressID, StartTime, EndTime) { - super(expressID); - this.StartTime = StartTime; - this.EndTime = EndTime; - this.type = 1199560280; + IFC42.IfcUnitaryEquipmentType = IfcUnitaryEquipmentType; + class IfcValveType extends IfcFlowControllerType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 728799441; } } - IFC42.IfcTimePeriod = IfcTimePeriod; - class IfcTimeSeries extends IfcLineObject { - constructor(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit) { - super(expressID); + IFC42.IfcValveType = IfcValveType; + class IfcVibrationIsolator extends IfcElementComponent { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.StartTime = StartTime; - this.EndTime = EndTime; - this.TimeSeriesDataType = TimeSeriesDataType; - this.DataOrigin = DataOrigin; - this.UserDefinedDataOrigin = UserDefinedDataOrigin; - this.Unit = Unit; - this.type = 3101149627; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 2391383451; } } - IFC42.IfcTimeSeries = IfcTimeSeries; - class IfcTimeSeriesValue extends IfcLineObject { - constructor(expressID, ListValues) { - super(expressID); - this.ListValues = ListValues; - this.type = 581633288; + IFC42.IfcVibrationIsolator = IfcVibrationIsolator; + class IfcVibrationIsolatorType extends IfcElementComponentType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3313531582; } } - IFC42.IfcTimeSeriesValue = IfcTimeSeriesValue; - class IfcTopologicalRepresentationItem extends IfcRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 1377556343; + IFC42.IfcVibrationIsolatorType = IfcVibrationIsolatorType; + class IfcVirtualElement extends IfcElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 2769231204; } } - IFC42.IfcTopologicalRepresentationItem = IfcTopologicalRepresentationItem; - class IfcTopologyRepresentation extends IfcShapeModel { - constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { - super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items); - this.ContextOfItems = ContextOfItems; - this.RepresentationIdentifier = RepresentationIdentifier; - this.RepresentationType = RepresentationType; - this.Items = Items; - this.type = 1735638870; + IFC42.IfcVirtualElement = IfcVirtualElement; + class IfcVoidingFeature extends IfcFeatureElementSubtraction { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 926996030; } } - IFC42.IfcTopologyRepresentation = IfcTopologyRepresentation; - class IfcUnitAssignment extends IfcLineObject { - constructor(expressID, Units) { - super(expressID); - this.Units = Units; - this.type = 180925521; + IFC42.IfcVoidingFeature = IfcVoidingFeature; + class IfcWallType extends IfcBuildingElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1898987631; } } - IFC42.IfcUnitAssignment = IfcUnitAssignment; - class IfcVertex extends IfcTopologicalRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 2799835756; + IFC42.IfcWallType = IfcWallType; + class IfcWasteTerminalType extends IfcFlowTerminalType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1133259667; } } - IFC42.IfcVertex = IfcVertex; - class IfcVertexPoint extends IfcVertex { - constructor(expressID, VertexGeometry) { - super(expressID); - this.VertexGeometry = VertexGeometry; - this.type = 1907098498; + IFC42.IfcWasteTerminalType = IfcWasteTerminalType; + class IfcWindowType extends IfcBuildingElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, PartitioningType, ParameterTakesPrecedence, UserDefinedPartitioningType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.PartitioningType = PartitioningType; + this.ParameterTakesPrecedence = ParameterTakesPrecedence; + this.UserDefinedPartitioningType = UserDefinedPartitioningType; + this.type = 4009809668; } } - IFC42.IfcVertexPoint = IfcVertexPoint; - class IfcVirtualGridIntersection extends IfcLineObject { - constructor(expressID, IntersectingAxes, OffsetDistances) { - super(expressID); - this.IntersectingAxes = IntersectingAxes; - this.OffsetDistances = OffsetDistances; - this.type = 891718957; + IFC42.IfcWindowType = IfcWindowType; + class IfcWorkCalendar extends IfcControl { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, WorkingTimes, ExceptionTimes, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.WorkingTimes = WorkingTimes; + this.ExceptionTimes = ExceptionTimes; + this.PredefinedType = PredefinedType; + this.type = 4088093105; + } + } + IFC42.IfcWorkCalendar = IfcWorkCalendar; + class IfcWorkControl extends IfcControl { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.CreationDate = CreationDate; + this.Creators = Creators; + this.Purpose = Purpose; + this.Duration = Duration; + this.TotalFloat = TotalFloat; + this.StartTime = StartTime; + this.FinishTime = FinishTime; + this.type = 1028945134; } } - IFC42.IfcVirtualGridIntersection = IfcVirtualGridIntersection; - class IfcWorkTime extends IfcSchedulingTime { - constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin, RecurrencePattern, Start, Finish) { - super(expressID, Name, DataOrigin, UserDefinedDataOrigin); + IFC42.IfcWorkControl = IfcWorkControl; + class IfcWorkPlan extends IfcWorkControl { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.DataOrigin = DataOrigin; - this.UserDefinedDataOrigin = UserDefinedDataOrigin; - this.RecurrencePattern = RecurrencePattern; - this.Start = Start; - this.Finish = Finish; - this.type = 1236880293; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.CreationDate = CreationDate; + this.Creators = Creators; + this.Purpose = Purpose; + this.Duration = Duration; + this.TotalFloat = TotalFloat; + this.StartTime = StartTime; + this.FinishTime = FinishTime; + this.PredefinedType = PredefinedType; + this.type = 4218914973; } } - IFC42.IfcWorkTime = IfcWorkTime; - class IfcApprovalRelationship extends IfcResourceLevelRelationship { - constructor(expressID, Name, Description, RelatingApproval, RelatedApprovals) { - super(expressID, Name, Description); + IFC42.IfcWorkPlan = IfcWorkPlan; + class IfcWorkSchedule extends IfcWorkControl { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.RelatingApproval = RelatingApproval; - this.RelatedApprovals = RelatedApprovals; - this.type = 3869604511; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.CreationDate = CreationDate; + this.Creators = Creators; + this.Purpose = Purpose; + this.Duration = Duration; + this.TotalFloat = TotalFloat; + this.StartTime = StartTime; + this.FinishTime = FinishTime; + this.PredefinedType = PredefinedType; + this.type = 3342526732; } } - IFC42.IfcApprovalRelationship = IfcApprovalRelationship; - class IfcArbitraryClosedProfileDef extends IfcProfileDef { - constructor(expressID, ProfileType, ProfileName, OuterCurve) { - super(expressID, ProfileType, ProfileName); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.OuterCurve = OuterCurve; - this.type = 3798115385; + IFC42.IfcWorkSchedule = IfcWorkSchedule; + class IfcZone extends IfcSystem { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, LongName) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.LongName = LongName; + this.type = 1033361043; } } - IFC42.IfcArbitraryClosedProfileDef = IfcArbitraryClosedProfileDef; - class IfcArbitraryOpenProfileDef extends IfcProfileDef { - constructor(expressID, ProfileType, ProfileName, Curve) { - super(expressID, ProfileType, ProfileName); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Curve = Curve; - this.type = 1310608509; + IFC42.IfcZone = IfcZone; + class IfcActionRequest extends IfcControl { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, LongDescription) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.PredefinedType = PredefinedType; + this.Status = Status; + this.LongDescription = LongDescription; + this.type = 3821786052; } } - IFC42.IfcArbitraryOpenProfileDef = IfcArbitraryOpenProfileDef; - class IfcArbitraryProfileDefWithVoids extends IfcArbitraryClosedProfileDef { - constructor(expressID, ProfileType, ProfileName, OuterCurve, InnerCurves) { - super(expressID, ProfileType, ProfileName, OuterCurve); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.OuterCurve = OuterCurve; - this.InnerCurves = InnerCurves; - this.type = 2705031697; + IFC42.IfcActionRequest = IfcActionRequest; + class IfcAirTerminalBoxType extends IfcFlowControllerType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1411407467; } } - IFC42.IfcArbitraryProfileDefWithVoids = IfcArbitraryProfileDefWithVoids; - class IfcBlobTexture extends IfcSurfaceTexture { - constructor(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter, RasterFormat, RasterCode) { - super(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter); - this.RepeatS = RepeatS; - this.RepeatT = RepeatT; - this.Mode = Mode; - this.TextureTransform = TextureTransform; - this.Parameter = Parameter; - this.RasterFormat = RasterFormat; - this.RasterCode = RasterCode; - this.type = 616511568; + IFC42.IfcAirTerminalBoxType = IfcAirTerminalBoxType; + class IfcAirTerminalType extends IfcFlowTerminalType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3352864051; } } - IFC42.IfcBlobTexture = IfcBlobTexture; - class IfcCenterLineProfileDef extends IfcArbitraryOpenProfileDef { - constructor(expressID, ProfileType, ProfileName, Curve, Thickness) { - super(expressID, ProfileType, ProfileName, Curve); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Curve = Curve; - this.Thickness = Thickness; - this.type = 3150382593; + IFC42.IfcAirTerminalType = IfcAirTerminalType; + class IfcAirToAirHeatRecoveryType extends IfcEnergyConversionDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1871374353; } } - IFC42.IfcCenterLineProfileDef = IfcCenterLineProfileDef; - class IfcClassification extends IfcExternalInformation { - constructor(expressID, Source, Edition, EditionDate, Name, Description, Location, ReferenceTokens) { - super(expressID); - this.Source = Source; - this.Edition = Edition; - this.EditionDate = EditionDate; + IFC42.IfcAirToAirHeatRecoveryType = IfcAirToAirHeatRecoveryType; + class IfcAsset extends IfcGroup { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, OriginalValue, CurrentValue, TotalReplacementCost, Owner, User, ResponsiblePerson, IncorporationDate, DepreciatedValue) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.Location = Location; - this.ReferenceTokens = ReferenceTokens; - this.type = 747523909; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.OriginalValue = OriginalValue; + this.CurrentValue = CurrentValue; + this.TotalReplacementCost = TotalReplacementCost; + this.Owner = Owner; + this.User = User; + this.ResponsiblePerson = ResponsiblePerson; + this.IncorporationDate = IncorporationDate; + this.DepreciatedValue = DepreciatedValue; + this.type = 3460190687; } } - IFC42.IfcClassification = IfcClassification; - class IfcClassificationReference extends IfcExternalReference { - constructor(expressID, Location, Identification, Name, ReferencedSource, Description, Sort) { - super(expressID, Location, Identification, Name); - this.Location = Location; - this.Identification = Identification; + IFC42.IfcAsset = IfcAsset; + class IfcAudioVisualApplianceType extends IfcFlowTerminalType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.ReferencedSource = ReferencedSource; this.Description = Description; - this.Sort = Sort; - this.type = 647927063; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1532957894; } } - IFC42.IfcClassificationReference = IfcClassificationReference; - class IfcColourRgbList extends IfcPresentationItem { - constructor(expressID, ColourList) { - super(expressID); - this.ColourList = ColourList; - this.type = 3285139300; + IFC42.IfcAudioVisualApplianceType = IfcAudioVisualApplianceType; + class IfcBSplineCurve extends IfcBoundedCurve { + constructor(Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect) { + super(); + this.Degree = Degree; + this.ControlPointsList = ControlPointsList; + this.CurveForm = CurveForm; + this.ClosedCurve = ClosedCurve; + this.SelfIntersect = SelfIntersect; + this.type = 1967976161; } } - IFC42.IfcColourRgbList = IfcColourRgbList; - class IfcColourSpecification extends IfcPresentationItem { - constructor(expressID, Name) { - super(expressID); - this.Name = Name; - this.type = 3264961684; + IFC42.IfcBSplineCurve = IfcBSplineCurve; + class IfcBSplineCurveWithKnots extends IfcBSplineCurve { + constructor(Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect, KnotMultiplicities, Knots, KnotSpec) { + super(Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect); + this.Degree = Degree; + this.ControlPointsList = ControlPointsList; + this.CurveForm = CurveForm; + this.ClosedCurve = ClosedCurve; + this.SelfIntersect = SelfIntersect; + this.KnotMultiplicities = KnotMultiplicities; + this.Knots = Knots; + this.KnotSpec = KnotSpec; + this.type = 2461110595; } } - IFC42.IfcColourSpecification = IfcColourSpecification; - class IfcCompositeProfileDef extends IfcProfileDef { - constructor(expressID, ProfileType, ProfileName, Profiles, Label) { - super(expressID, ProfileType, ProfileName); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Profiles = Profiles; - this.Label = Label; - this.type = 1485152156; + IFC42.IfcBSplineCurveWithKnots = IfcBSplineCurveWithKnots; + class IfcBeamType extends IfcBuildingElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 819618141; } } - IFC42.IfcCompositeProfileDef = IfcCompositeProfileDef; - class IfcConnectedFaceSet extends IfcTopologicalRepresentationItem { - constructor(expressID, CfsFaces) { - super(expressID); - this.CfsFaces = CfsFaces; - this.type = 370225590; + IFC42.IfcBeamType = IfcBeamType; + class IfcBoilerType extends IfcEnergyConversionDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 231477066; } } - IFC42.IfcConnectedFaceSet = IfcConnectedFaceSet; - class IfcConnectionCurveGeometry extends IfcConnectionGeometry { - constructor(expressID, CurveOnRelatingElement, CurveOnRelatedElement) { - super(expressID); - this.CurveOnRelatingElement = CurveOnRelatingElement; - this.CurveOnRelatedElement = CurveOnRelatedElement; - this.type = 1981873012; + IFC42.IfcBoilerType = IfcBoilerType; + class IfcBoundaryCurve extends IfcCompositeCurveOnSurface { + constructor(Segments, SelfIntersect) { + super(Segments, SelfIntersect); + this.Segments = Segments; + this.SelfIntersect = SelfIntersect; + this.type = 1136057603; } } - IFC42.IfcConnectionCurveGeometry = IfcConnectionCurveGeometry; - class IfcConnectionPointEccentricity extends IfcConnectionPointGeometry { - constructor(expressID, PointOnRelatingElement, PointOnRelatedElement, EccentricityInX, EccentricityInY, EccentricityInZ) { - super(expressID, PointOnRelatingElement, PointOnRelatedElement); - this.PointOnRelatingElement = PointOnRelatingElement; - this.PointOnRelatedElement = PointOnRelatedElement; - this.EccentricityInX = EccentricityInX; - this.EccentricityInY = EccentricityInY; - this.EccentricityInZ = EccentricityInZ; - this.type = 45288368; + IFC42.IfcBoundaryCurve = IfcBoundaryCurve; + class IfcBuildingElement extends IfcElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 3299480353; } } - IFC42.IfcConnectionPointEccentricity = IfcConnectionPointEccentricity; - class IfcContextDependentUnit extends IfcNamedUnit { - constructor(expressID, Dimensions, UnitType, Name) { - super(expressID, Dimensions, UnitType); - this.Dimensions = Dimensions; - this.UnitType = UnitType; + IFC42.IfcBuildingElement = IfcBuildingElement; + class IfcBuildingElementPart extends IfcElementComponent { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.type = 3050246964; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 2979338954; } } - IFC42.IfcContextDependentUnit = IfcContextDependentUnit; - class IfcConversionBasedUnit extends IfcNamedUnit { - constructor(expressID, Dimensions, UnitType, Name, ConversionFactor) { - super(expressID, Dimensions, UnitType); - this.Dimensions = Dimensions; - this.UnitType = UnitType; + IFC42.IfcBuildingElementPart = IfcBuildingElementPart; + class IfcBuildingElementPartType extends IfcElementComponentType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.ConversionFactor = ConversionFactor; - this.type = 2889183280; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 39481116; } } - IFC42.IfcConversionBasedUnit = IfcConversionBasedUnit; - class IfcConversionBasedUnitWithOffset extends IfcConversionBasedUnit { - constructor(expressID, Dimensions, UnitType, Name, ConversionFactor, ConversionOffset) { - super(expressID, Dimensions, UnitType, Name, ConversionFactor); - this.Dimensions = Dimensions; - this.UnitType = UnitType; + IFC42.IfcBuildingElementPartType = IfcBuildingElementPartType; + class IfcBuildingElementProxy extends IfcBuildingElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.ConversionFactor = ConversionFactor; - this.ConversionOffset = ConversionOffset; - this.type = 2713554722; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1095909175; } } - IFC42.IfcConversionBasedUnitWithOffset = IfcConversionBasedUnitWithOffset; - class IfcCurrencyRelationship extends IfcResourceLevelRelationship { - constructor(expressID, Name, Description, RelatingMonetaryUnit, RelatedMonetaryUnit, ExchangeRate, RateDateTime, RateSource) { - super(expressID, Name, Description); + IFC42.IfcBuildingElementProxy = IfcBuildingElementProxy; + class IfcBuildingElementProxyType extends IfcBuildingElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.RelatingMonetaryUnit = RelatingMonetaryUnit; - this.RelatedMonetaryUnit = RelatedMonetaryUnit; - this.ExchangeRate = ExchangeRate; - this.RateDateTime = RateDateTime; - this.RateSource = RateSource; - this.type = 539742890; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1909888760; } } - IFC42.IfcCurrencyRelationship = IfcCurrencyRelationship; - class IfcCurveStyle extends IfcPresentationStyle { - constructor(expressID, Name, CurveFont, CurveWidth, CurveColour, ModelOrDraughting) { - super(expressID, Name); + IFC42.IfcBuildingElementProxyType = IfcBuildingElementProxyType; + class IfcBuildingSystem extends IfcSystem { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, LongName) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.CurveFont = CurveFont; - this.CurveWidth = CurveWidth; - this.CurveColour = CurveColour; - this.ModelOrDraughting = ModelOrDraughting; - this.type = 3800577675; + this.Description = Description; + this.ObjectType = ObjectType; + this.PredefinedType = PredefinedType; + this.LongName = LongName; + this.type = 1177604601; } } - IFC42.IfcCurveStyle = IfcCurveStyle; - class IfcCurveStyleFont extends IfcPresentationItem { - constructor(expressID, Name, PatternList) { - super(expressID); + IFC42.IfcBuildingSystem = IfcBuildingSystem; + class IfcBurnerType extends IfcEnergyConversionDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.PatternList = PatternList; - this.type = 1105321065; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2188180465; } } - IFC42.IfcCurveStyleFont = IfcCurveStyleFont; - class IfcCurveStyleFontAndScaling extends IfcPresentationItem { - constructor(expressID, Name, CurveFont, CurveFontScaling) { - super(expressID); + IFC42.IfcBurnerType = IfcBurnerType; + class IfcCableCarrierFittingType extends IfcFlowFittingType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.CurveFont = CurveFont; - this.CurveFontScaling = CurveFontScaling; - this.type = 2367409068; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 395041908; } } - IFC42.IfcCurveStyleFontAndScaling = IfcCurveStyleFontAndScaling; - class IfcCurveStyleFontPattern extends IfcPresentationItem { - constructor(expressID, VisibleSegmentLength, InvisibleSegmentLength) { - super(expressID); - this.VisibleSegmentLength = VisibleSegmentLength; - this.InvisibleSegmentLength = InvisibleSegmentLength; - this.type = 3510044353; + IFC42.IfcCableCarrierFittingType = IfcCableCarrierFittingType; + class IfcCableCarrierSegmentType extends IfcFlowSegmentType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3293546465; } } - IFC42.IfcCurveStyleFontPattern = IfcCurveStyleFontPattern; - class IfcDerivedProfileDef extends IfcProfileDef { - constructor(expressID, ProfileType, ProfileName, ParentProfile, Operator, Label) { - super(expressID, ProfileType, ProfileName); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.ParentProfile = ParentProfile; - this.Operator = Operator; - this.Label = Label; - this.type = 3632507154; + IFC42.IfcCableCarrierSegmentType = IfcCableCarrierSegmentType; + class IfcCableFittingType extends IfcFlowFittingType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2674252688; } } - IFC42.IfcDerivedProfileDef = IfcDerivedProfileDef; - class IfcDocumentInformation extends IfcExternalInformation { - constructor(expressID, Identification, Name, Description, Location, Purpose, IntendedUse, Scope, Revision, DocumentOwner, Editors, CreationTime, LastRevisionTime, ElectronicFormat, ValidFrom, ValidUntil, Confidentiality, Status) { - super(expressID); - this.Identification = Identification; + IFC42.IfcCableFittingType = IfcCableFittingType; + class IfcCableSegmentType extends IfcFlowSegmentType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.Location = Location; - this.Purpose = Purpose; - this.IntendedUse = IntendedUse; - this.Scope = Scope; - this.Revision = Revision; - this.DocumentOwner = DocumentOwner; - this.Editors = Editors; - this.CreationTime = CreationTime; - this.LastRevisionTime = LastRevisionTime; - this.ElectronicFormat = ElectronicFormat; - this.ValidFrom = ValidFrom; - this.ValidUntil = ValidUntil; - this.Confidentiality = Confidentiality; - this.Status = Status; - this.type = 1154170062; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1285652485; } } - IFC42.IfcDocumentInformation = IfcDocumentInformation; - class IfcDocumentInformationRelationship extends IfcResourceLevelRelationship { - constructor(expressID, Name, Description, RelatingDocument, RelatedDocuments, RelationshipType) { - super(expressID, Name, Description); + IFC42.IfcCableSegmentType = IfcCableSegmentType; + class IfcChillerType extends IfcEnergyConversionDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.RelatingDocument = RelatingDocument; - this.RelatedDocuments = RelatedDocuments; - this.RelationshipType = RelationshipType; - this.type = 770865208; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2951183804; } } - IFC42.IfcDocumentInformationRelationship = IfcDocumentInformationRelationship; - class IfcDocumentReference extends IfcExternalReference { - constructor(expressID, Location, Identification, Name, Description, ReferencedDocument) { - super(expressID, Location, Identification, Name); - this.Location = Location; - this.Identification = Identification; + IFC42.IfcChillerType = IfcChillerType; + class IfcChimney extends IfcBuildingElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.ReferencedDocument = ReferencedDocument; - this.type = 3732053477; - } - } - IFC42.IfcDocumentReference = IfcDocumentReference; - class IfcEdge extends IfcTopologicalRepresentationItem { - constructor(expressID, EdgeStart, EdgeEnd) { - super(expressID); - this.EdgeStart = EdgeStart; - this.EdgeEnd = EdgeEnd; - this.type = 3900360178; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3296154744; } } - IFC42.IfcEdge = IfcEdge; - class IfcEdgeCurve extends IfcEdge { - constructor(expressID, EdgeStart, EdgeEnd, EdgeGeometry, SameSense) { - super(expressID, EdgeStart, EdgeEnd); - this.EdgeStart = EdgeStart; - this.EdgeEnd = EdgeEnd; - this.EdgeGeometry = EdgeGeometry; - this.SameSense = SameSense; - this.type = 476780140; + IFC42.IfcChimney = IfcChimney; + class IfcCircle extends IfcConic { + constructor(Position, Radius) { + super(Position); + this.Position = Position; + this.Radius = Radius; + this.type = 2611217952; } } - IFC42.IfcEdgeCurve = IfcEdgeCurve; - class IfcEventTime extends IfcSchedulingTime { - constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin, ActualDate, EarlyDate, LateDate, ScheduleDate) { - super(expressID, Name, DataOrigin, UserDefinedDataOrigin); + IFC42.IfcCircle = IfcCircle; + class IfcCivilElement extends IfcElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.DataOrigin = DataOrigin; - this.UserDefinedDataOrigin = UserDefinedDataOrigin; - this.ActualDate = ActualDate; - this.EarlyDate = EarlyDate; - this.LateDate = LateDate; - this.ScheduleDate = ScheduleDate; - this.type = 211053100; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 1677625105; } } - IFC42.IfcEventTime = IfcEventTime; - class IfcExtendedProperties extends IfcPropertyAbstraction { - constructor(expressID, Name, Description, Properties2) { - super(expressID); + IFC42.IfcCivilElement = IfcCivilElement; + class IfcCoilType extends IfcEnergyConversionDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.Properties = Properties2; - this.type = 297599258; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2301859152; } } - IFC42.IfcExtendedProperties = IfcExtendedProperties; - class IfcExternalReferenceRelationship extends IfcResourceLevelRelationship { - constructor(expressID, Name, Description, RelatingReference, RelatedResourceObjects) { - super(expressID, Name, Description); + IFC42.IfcCoilType = IfcCoilType; + class IfcColumn extends IfcBuildingElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.RelatingReference = RelatingReference; - this.RelatedResourceObjects = RelatedResourceObjects; - this.type = 1437805879; - } - } - IFC42.IfcExternalReferenceRelationship = IfcExternalReferenceRelationship; - class IfcFace extends IfcTopologicalRepresentationItem { - constructor(expressID, Bounds) { - super(expressID); - this.Bounds = Bounds; - this.type = 2556980723; - } - } - IFC42.IfcFace = IfcFace; - class IfcFaceBound extends IfcTopologicalRepresentationItem { - constructor(expressID, Bound, Orientation) { - super(expressID); - this.Bound = Bound; - this.Orientation = Orientation; - this.type = 1809719519; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 843113511; } } - IFC42.IfcFaceBound = IfcFaceBound; - class IfcFaceOuterBound extends IfcFaceBound { - constructor(expressID, Bound, Orientation) { - super(expressID, Bound, Orientation); - this.Bound = Bound; - this.Orientation = Orientation; - this.type = 803316827; + IFC42.IfcColumn = IfcColumn; + class IfcColumnStandardCase extends IfcColumn { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 905975707; } } - IFC42.IfcFaceOuterBound = IfcFaceOuterBound; - class IfcFaceSurface extends IfcFace { - constructor(expressID, Bounds, FaceSurface, SameSense) { - super(expressID, Bounds); - this.Bounds = Bounds; - this.FaceSurface = FaceSurface; - this.SameSense = SameSense; - this.type = 3008276851; + IFC42.IfcColumnStandardCase = IfcColumnStandardCase; + class IfcCommunicationsApplianceType extends IfcFlowTerminalType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 400855858; } } - IFC42.IfcFaceSurface = IfcFaceSurface; - class IfcFailureConnectionCondition extends IfcStructuralConnectionCondition { - constructor(expressID, Name, TensionFailureX, TensionFailureY, TensionFailureZ, CompressionFailureX, CompressionFailureY, CompressionFailureZ) { - super(expressID, Name); + IFC42.IfcCommunicationsApplianceType = IfcCommunicationsApplianceType; + class IfcCompressorType extends IfcFlowMovingDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.TensionFailureX = TensionFailureX; - this.TensionFailureY = TensionFailureY; - this.TensionFailureZ = TensionFailureZ; - this.CompressionFailureX = CompressionFailureX; - this.CompressionFailureY = CompressionFailureY; - this.CompressionFailureZ = CompressionFailureZ; - this.type = 4219587988; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3850581409; } } - IFC42.IfcFailureConnectionCondition = IfcFailureConnectionCondition; - class IfcFillAreaStyle extends IfcPresentationStyle { - constructor(expressID, Name, FillStyles, ModelorDraughting) { - super(expressID, Name); + IFC42.IfcCompressorType = IfcCompressorType; + class IfcCondenserType extends IfcEnergyConversionDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.FillStyles = FillStyles; - this.ModelorDraughting = ModelorDraughting; - this.type = 738692330; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2816379211; } } - IFC42.IfcFillAreaStyle = IfcFillAreaStyle; - class IfcGeometricRepresentationContext extends IfcRepresentationContext { - constructor(expressID, ContextIdentifier, ContextType, CoordinateSpaceDimension, Precision, WorldCoordinateSystem, TrueNorth) { - super(expressID, ContextIdentifier, ContextType); - this.ContextIdentifier = ContextIdentifier; - this.ContextType = ContextType; - this.CoordinateSpaceDimension = CoordinateSpaceDimension; - this.Precision = Precision; - this.WorldCoordinateSystem = WorldCoordinateSystem; - this.TrueNorth = TrueNorth; - this.type = 3448662350; + IFC42.IfcCondenserType = IfcCondenserType; + class IfcConstructionEquipmentResource extends IfcConstructionResource { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.Usage = Usage; + this.BaseCosts = BaseCosts; + this.BaseQuantity = BaseQuantity; + this.PredefinedType = PredefinedType; + this.type = 3898045240; } } - IFC42.IfcGeometricRepresentationContext = IfcGeometricRepresentationContext; - class IfcGeometricRepresentationItem extends IfcRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 2453401579; + IFC42.IfcConstructionEquipmentResource = IfcConstructionEquipmentResource; + class IfcConstructionMaterialResource extends IfcConstructionResource { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.Usage = Usage; + this.BaseCosts = BaseCosts; + this.BaseQuantity = BaseQuantity; + this.PredefinedType = PredefinedType; + this.type = 1060000209; } } - IFC42.IfcGeometricRepresentationItem = IfcGeometricRepresentationItem; - class IfcGeometricRepresentationSubContext extends IfcGeometricRepresentationContext { - constructor(expressID, ContextIdentifier, ContextType, ParentContext, TargetScale, TargetView, UserDefinedTargetView) { - super(expressID, ContextIdentifier, ContextType, new IfcDimensionCount(0), null, new Handle$4(0), null); - this.ContextIdentifier = ContextIdentifier; - this.ContextType = ContextType; - this.ParentContext = ParentContext; - this.TargetScale = TargetScale; - this.TargetView = TargetView; - this.UserDefinedTargetView = UserDefinedTargetView; - this.type = 4142052618; + IFC42.IfcConstructionMaterialResource = IfcConstructionMaterialResource; + class IfcConstructionProductResource extends IfcConstructionResource { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.Usage = Usage; + this.BaseCosts = BaseCosts; + this.BaseQuantity = BaseQuantity; + this.PredefinedType = PredefinedType; + this.type = 488727124; } } - IFC42.IfcGeometricRepresentationSubContext = IfcGeometricRepresentationSubContext; - class IfcGeometricSet extends IfcGeometricRepresentationItem { - constructor(expressID, Elements) { - super(expressID); - this.Elements = Elements; - this.type = 3590301190; + IFC42.IfcConstructionProductResource = IfcConstructionProductResource; + class IfcCooledBeamType extends IfcEnergyConversionDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 335055490; } } - IFC42.IfcGeometricSet = IfcGeometricSet; - class IfcGridPlacement extends IfcObjectPlacement { - constructor(expressID, PlacementLocation, PlacementRefDirection) { - super(expressID); - this.PlacementLocation = PlacementLocation; - this.PlacementRefDirection = PlacementRefDirection; - this.type = 178086475; + IFC42.IfcCooledBeamType = IfcCooledBeamType; + class IfcCoolingTowerType extends IfcEnergyConversionDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2954562838; } } - IFC42.IfcGridPlacement = IfcGridPlacement; - class IfcHalfSpaceSolid extends IfcGeometricRepresentationItem { - constructor(expressID, BaseSurface, AgreementFlag) { - super(expressID); - this.BaseSurface = BaseSurface; - this.AgreementFlag = AgreementFlag; - this.type = 812098782; + IFC42.IfcCoolingTowerType = IfcCoolingTowerType; + class IfcCovering extends IfcBuildingElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1973544240; } } - IFC42.IfcHalfSpaceSolid = IfcHalfSpaceSolid; - class IfcImageTexture extends IfcSurfaceTexture { - constructor(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter, URLReference) { - super(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter); - this.RepeatS = RepeatS; - this.RepeatT = RepeatT; - this.Mode = Mode; - this.TextureTransform = TextureTransform; - this.Parameter = Parameter; - this.URLReference = URLReference; - this.type = 3905492369; + IFC42.IfcCovering = IfcCovering; + class IfcCurtainWall extends IfcBuildingElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3495092785; } } - IFC42.IfcImageTexture = IfcImageTexture; - class IfcIndexedColourMap extends IfcPresentationItem { - constructor(expressID, MappedTo, Opacity, Colours, ColourIndex) { - super(expressID); - this.MappedTo = MappedTo; - this.Opacity = Opacity; - this.Colours = Colours; - this.ColourIndex = ColourIndex; - this.type = 3570813810; + IFC42.IfcCurtainWall = IfcCurtainWall; + class IfcDamperType extends IfcFlowControllerType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3961806047; } } - IFC42.IfcIndexedColourMap = IfcIndexedColourMap; - class IfcIndexedTextureMap extends IfcTextureCoordinate { - constructor(expressID, Maps, MappedTo, TexCoords) { - super(expressID, Maps); - this.Maps = Maps; - this.MappedTo = MappedTo; - this.TexCoords = TexCoords; - this.type = 1437953363; + IFC42.IfcDamperType = IfcDamperType; + class IfcDiscreteAccessory extends IfcElementComponent { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1335981549; } } - IFC42.IfcIndexedTextureMap = IfcIndexedTextureMap; - class IfcIndexedTriangleTextureMap extends IfcIndexedTextureMap { - constructor(expressID, Maps, MappedTo, TexCoords, TexCoordIndex) { - super(expressID, Maps, MappedTo, TexCoords); - this.Maps = Maps; - this.MappedTo = MappedTo; - this.TexCoords = TexCoords; - this.TexCoordIndex = TexCoordIndex; - this.type = 2133299955; + IFC42.IfcDiscreteAccessory = IfcDiscreteAccessory; + class IfcDiscreteAccessoryType extends IfcElementComponentType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2635815018; } } - IFC42.IfcIndexedTriangleTextureMap = IfcIndexedTriangleTextureMap; - class IfcIrregularTimeSeries extends IfcTimeSeries { - constructor(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit, Values) { - super(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit); + IFC42.IfcDiscreteAccessoryType = IfcDiscreteAccessoryType; + class IfcDistributionChamberElementType extends IfcDistributionFlowElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.StartTime = StartTime; - this.EndTime = EndTime; - this.TimeSeriesDataType = TimeSeriesDataType; - this.DataOrigin = DataOrigin; - this.UserDefinedDataOrigin = UserDefinedDataOrigin; - this.Unit = Unit; - this.Values = Values; - this.type = 3741457305; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1599208980; } } - IFC42.IfcIrregularTimeSeries = IfcIrregularTimeSeries; - class IfcLagTime extends IfcSchedulingTime { - constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin, LagValue, DurationType) { - super(expressID, Name, DataOrigin, UserDefinedDataOrigin); + IFC42.IfcDistributionChamberElementType = IfcDistributionChamberElementType; + class IfcDistributionControlElementType extends IfcDistributionElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.DataOrigin = DataOrigin; - this.UserDefinedDataOrigin = UserDefinedDataOrigin; - this.LagValue = LagValue; - this.DurationType = DurationType; - this.type = 1585845231; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 2063403501; } } - IFC42.IfcLagTime = IfcLagTime; - class IfcLightSource extends IfcGeometricRepresentationItem { - constructor(expressID, Name, LightColour, AmbientIntensity, Intensity) { - super(expressID); + IFC42.IfcDistributionControlElementType = IfcDistributionControlElementType; + class IfcDistributionElement extends IfcElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.LightColour = LightColour; - this.AmbientIntensity = AmbientIntensity; - this.Intensity = Intensity; - this.type = 1402838566; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 1945004755; } } - IFC42.IfcLightSource = IfcLightSource; - class IfcLightSourceAmbient extends IfcLightSource { - constructor(expressID, Name, LightColour, AmbientIntensity, Intensity) { - super(expressID, Name, LightColour, AmbientIntensity, Intensity); + IFC42.IfcDistributionElement = IfcDistributionElement; + class IfcDistributionFlowElement extends IfcDistributionElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.LightColour = LightColour; - this.AmbientIntensity = AmbientIntensity; - this.Intensity = Intensity; - this.type = 125510826; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 3040386961; } } - IFC42.IfcLightSourceAmbient = IfcLightSourceAmbient; - class IfcLightSourceDirectional extends IfcLightSource { - constructor(expressID, Name, LightColour, AmbientIntensity, Intensity, Orientation) { - super(expressID, Name, LightColour, AmbientIntensity, Intensity); + IFC42.IfcDistributionFlowElement = IfcDistributionFlowElement; + class IfcDistributionPort extends IfcPort { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, FlowDirection, PredefinedType, SystemType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.LightColour = LightColour; - this.AmbientIntensity = AmbientIntensity; - this.Intensity = Intensity; - this.Orientation = Orientation; - this.type = 2604431987; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.FlowDirection = FlowDirection; + this.PredefinedType = PredefinedType; + this.SystemType = SystemType; + this.type = 3041715199; } } - IFC42.IfcLightSourceDirectional = IfcLightSourceDirectional; - class IfcLightSourceGoniometric extends IfcLightSource { - constructor(expressID, Name, LightColour, AmbientIntensity, Intensity, Position, ColourAppearance, ColourTemperature, LuminousFlux, LightEmissionSource, LightDistributionDataSource) { - super(expressID, Name, LightColour, AmbientIntensity, Intensity); + IFC42.IfcDistributionPort = IfcDistributionPort; + class IfcDistributionSystem extends IfcSystem { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.LightColour = LightColour; - this.AmbientIntensity = AmbientIntensity; - this.Intensity = Intensity; - this.Position = Position; - this.ColourAppearance = ColourAppearance; - this.ColourTemperature = ColourTemperature; - this.LuminousFlux = LuminousFlux; - this.LightEmissionSource = LightEmissionSource; - this.LightDistributionDataSource = LightDistributionDataSource; - this.type = 4266656042; + this.Description = Description; + this.ObjectType = ObjectType; + this.LongName = LongName; + this.PredefinedType = PredefinedType; + this.type = 3205830791; } } - IFC42.IfcLightSourceGoniometric = IfcLightSourceGoniometric; - class IfcLightSourcePositional extends IfcLightSource { - constructor(expressID, Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation) { - super(expressID, Name, LightColour, AmbientIntensity, Intensity); + IFC42.IfcDistributionSystem = IfcDistributionSystem; + class IfcDoor extends IfcBuildingElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, OperationType, UserDefinedOperationType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.LightColour = LightColour; - this.AmbientIntensity = AmbientIntensity; - this.Intensity = Intensity; - this.Position = Position; - this.Radius = Radius; - this.ConstantAttenuation = ConstantAttenuation; - this.DistanceAttenuation = DistanceAttenuation; - this.QuadricAttenuation = QuadricAttenuation; - this.type = 1520743889; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.OverallHeight = OverallHeight; + this.OverallWidth = OverallWidth; + this.PredefinedType = PredefinedType; + this.OperationType = OperationType; + this.UserDefinedOperationType = UserDefinedOperationType; + this.type = 395920057; } } - IFC42.IfcLightSourcePositional = IfcLightSourcePositional; - class IfcLightSourceSpot extends IfcLightSourcePositional { - constructor(expressID, Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation, Orientation, ConcentrationExponent, SpreadAngle, BeamWidthAngle) { - super(expressID, Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation); + IFC42.IfcDoor = IfcDoor; + class IfcDoorStandardCase extends IfcDoor { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, OperationType, UserDefinedOperationType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, OperationType, UserDefinedOperationType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.LightColour = LightColour; - this.AmbientIntensity = AmbientIntensity; - this.Intensity = Intensity; - this.Position = Position; - this.Radius = Radius; - this.ConstantAttenuation = ConstantAttenuation; - this.DistanceAttenuation = DistanceAttenuation; - this.QuadricAttenuation = QuadricAttenuation; - this.Orientation = Orientation; - this.ConcentrationExponent = ConcentrationExponent; - this.SpreadAngle = SpreadAngle; - this.BeamWidthAngle = BeamWidthAngle; - this.type = 3422422726; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.OverallHeight = OverallHeight; + this.OverallWidth = OverallWidth; + this.PredefinedType = PredefinedType; + this.OperationType = OperationType; + this.UserDefinedOperationType = UserDefinedOperationType; + this.type = 3242481149; } } - IFC42.IfcLightSourceSpot = IfcLightSourceSpot; - class IfcLocalPlacement extends IfcObjectPlacement { - constructor(expressID, PlacementRelTo, RelativePlacement) { - super(expressID); - this.PlacementRelTo = PlacementRelTo; - this.RelativePlacement = RelativePlacement; - this.type = 2624227202; + IFC42.IfcDoorStandardCase = IfcDoorStandardCase; + class IfcDuctFittingType extends IfcFlowFittingType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 869906466; } } - IFC42.IfcLocalPlacement = IfcLocalPlacement; - class IfcLoop extends IfcTopologicalRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 1008929658; + IFC42.IfcDuctFittingType = IfcDuctFittingType; + class IfcDuctSegmentType extends IfcFlowSegmentType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3760055223; } } - IFC42.IfcLoop = IfcLoop; - class IfcMappedItem extends IfcRepresentationItem { - constructor(expressID, MappingSource, MappingTarget) { - super(expressID); - this.MappingSource = MappingSource; - this.MappingTarget = MappingTarget; - this.type = 2347385850; + IFC42.IfcDuctSegmentType = IfcDuctSegmentType; + class IfcDuctSilencerType extends IfcFlowTreatmentDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2030761528; } } - IFC42.IfcMappedItem = IfcMappedItem; - class IfcMaterial extends IfcMaterialDefinition { - constructor(expressID, Name, Description, Category) { - super(expressID); + IFC42.IfcDuctSilencerType = IfcDuctSilencerType; + class IfcElectricApplianceType extends IfcFlowTerminalType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.Category = Category; - this.type = 1838606355; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 663422040; } } - IFC42.IfcMaterial = IfcMaterial; - class IfcMaterialConstituent extends IfcMaterialDefinition { - constructor(expressID, Name, Description, Material, Fraction, Category) { - super(expressID); + IFC42.IfcElectricApplianceType = IfcElectricApplianceType; + class IfcElectricDistributionBoardType extends IfcFlowControllerType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.Material = Material; - this.Fraction = Fraction; - this.Category = Category; - this.type = 3708119e3; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2417008758; } } - IFC42.IfcMaterialConstituent = IfcMaterialConstituent; - class IfcMaterialConstituentSet extends IfcMaterialDefinition { - constructor(expressID, Name, Description, MaterialConstituents) { - super(expressID); + IFC42.IfcElectricDistributionBoardType = IfcElectricDistributionBoardType; + class IfcElectricFlowStorageDeviceType extends IfcFlowStorageDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.MaterialConstituents = MaterialConstituents; - this.type = 2852063980; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3277789161; } } - IFC42.IfcMaterialConstituentSet = IfcMaterialConstituentSet; - class IfcMaterialDefinitionRepresentation extends IfcProductRepresentation { - constructor(expressID, Name, Description, Representations, RepresentedMaterial) { - super(expressID, Name, Description, Representations); + IFC42.IfcElectricFlowStorageDeviceType = IfcElectricFlowStorageDeviceType; + class IfcElectricGeneratorType extends IfcEnergyConversionDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.Representations = Representations; - this.RepresentedMaterial = RepresentedMaterial; - this.type = 2022407955; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1534661035; } } - IFC42.IfcMaterialDefinitionRepresentation = IfcMaterialDefinitionRepresentation; - class IfcMaterialLayerSetUsage extends IfcMaterialUsageDefinition { - constructor(expressID, ForLayerSet, LayerSetDirection, DirectionSense, OffsetFromReferenceLine, ReferenceExtent) { - super(expressID); - this.ForLayerSet = ForLayerSet; - this.LayerSetDirection = LayerSetDirection; - this.DirectionSense = DirectionSense; - this.OffsetFromReferenceLine = OffsetFromReferenceLine; - this.ReferenceExtent = ReferenceExtent; - this.type = 1303795690; + IFC42.IfcElectricGeneratorType = IfcElectricGeneratorType; + class IfcElectricMotorType extends IfcEnergyConversionDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1217240411; } } - IFC42.IfcMaterialLayerSetUsage = IfcMaterialLayerSetUsage; - class IfcMaterialProfileSetUsage extends IfcMaterialUsageDefinition { - constructor(expressID, ForProfileSet, CardinalPoint, ReferenceExtent) { - super(expressID); - this.ForProfileSet = ForProfileSet; - this.CardinalPoint = CardinalPoint; - this.ReferenceExtent = ReferenceExtent; - this.type = 3079605661; + IFC42.IfcElectricMotorType = IfcElectricMotorType; + class IfcElectricTimeControlType extends IfcFlowControllerType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 712377611; } } - IFC42.IfcMaterialProfileSetUsage = IfcMaterialProfileSetUsage; - class IfcMaterialProfileSetUsageTapering extends IfcMaterialProfileSetUsage { - constructor(expressID, ForProfileSet, CardinalPoint, ReferenceExtent, ForProfileEndSet, CardinalEndPoint) { - super(expressID, ForProfileSet, CardinalPoint, ReferenceExtent); - this.ForProfileSet = ForProfileSet; - this.CardinalPoint = CardinalPoint; - this.ReferenceExtent = ReferenceExtent; - this.ForProfileEndSet = ForProfileEndSet; - this.CardinalEndPoint = CardinalEndPoint; - this.type = 3404854881; + IFC42.IfcElectricTimeControlType = IfcElectricTimeControlType; + class IfcEnergyConversionDevice extends IfcDistributionFlowElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 1658829314; } } - IFC42.IfcMaterialProfileSetUsageTapering = IfcMaterialProfileSetUsageTapering; - class IfcMaterialProperties extends IfcExtendedProperties { - constructor(expressID, Name, Description, Properties2, Material) { - super(expressID, Name, Description, Properties2); + IFC42.IfcEnergyConversionDevice = IfcEnergyConversionDevice; + class IfcEngine extends IfcEnergyConversionDevice { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.Properties = Properties2; - this.Material = Material; - this.type = 3265635763; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 2814081492; } } - IFC42.IfcMaterialProperties = IfcMaterialProperties; - class IfcMaterialRelationship extends IfcResourceLevelRelationship { - constructor(expressID, Name, Description, RelatingMaterial, RelatedMaterials, Expression) { - super(expressID, Name, Description); + IFC42.IfcEngine = IfcEngine; + class IfcEvaporativeCooler extends IfcEnergyConversionDevice { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.RelatingMaterial = RelatingMaterial; - this.RelatedMaterials = RelatedMaterials; - this.Expression = Expression; - this.type = 853536259; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3747195512; } } - IFC42.IfcMaterialRelationship = IfcMaterialRelationship; - class IfcMirroredProfileDef extends IfcDerivedProfileDef { - constructor(expressID, ProfileType, ProfileName, ParentProfile, Label) { - super(expressID, ProfileType, ProfileName, ParentProfile, new Handle$4(0), Label); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.ParentProfile = ParentProfile; - this.Label = Label; - this.type = 2998442950; + IFC42.IfcEvaporativeCooler = IfcEvaporativeCooler; + class IfcEvaporator extends IfcEnergyConversionDevice { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 484807127; } } - IFC42.IfcMirroredProfileDef = IfcMirroredProfileDef; - class IfcObjectDefinition extends IfcRoot { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); + IFC42.IfcEvaporator = IfcEvaporator; + class IfcExternalSpatialElement extends IfcExternalSpatialStructureElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.type = 219451334; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.LongName = LongName; + this.PredefinedType = PredefinedType; + this.type = 1209101575; } } - IFC42.IfcObjectDefinition = IfcObjectDefinition; - class IfcOpenShell extends IfcConnectedFaceSet { - constructor(expressID, CfsFaces) { - super(expressID, CfsFaces); - this.CfsFaces = CfsFaces; - this.type = 2665983363; + IFC42.IfcExternalSpatialElement = IfcExternalSpatialElement; + class IfcFanType extends IfcFlowMovingDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 346874300; } } - IFC42.IfcOpenShell = IfcOpenShell; - class IfcOrganizationRelationship extends IfcResourceLevelRelationship { - constructor(expressID, Name, Description, RelatingOrganization, RelatedOrganizations) { - super(expressID, Name, Description); + IFC42.IfcFanType = IfcFanType; + class IfcFilterType extends IfcFlowTreatmentDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.RelatingOrganization = RelatingOrganization; - this.RelatedOrganizations = RelatedOrganizations; - this.type = 1411181986; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1810631287; } } - IFC42.IfcOrganizationRelationship = IfcOrganizationRelationship; - class IfcOrientedEdge extends IfcEdge { - constructor(expressID, EdgeElement, Orientation) { - super(expressID, new Handle$4(0), new Handle$4(0)); - this.EdgeElement = EdgeElement; - this.Orientation = Orientation; - this.type = 1029017970; + IFC42.IfcFilterType = IfcFilterType; + class IfcFireSuppressionTerminalType extends IfcFlowTerminalType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 4222183408; } } - IFC42.IfcOrientedEdge = IfcOrientedEdge; - class IfcParameterizedProfileDef extends IfcProfileDef { - constructor(expressID, ProfileType, ProfileName, Position) { - super(expressID, ProfileType, ProfileName); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.type = 2529465313; + IFC42.IfcFireSuppressionTerminalType = IfcFireSuppressionTerminalType; + class IfcFlowController extends IfcDistributionFlowElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 2058353004; } } - IFC42.IfcParameterizedProfileDef = IfcParameterizedProfileDef; - class IfcPath extends IfcTopologicalRepresentationItem { - constructor(expressID, EdgeList) { - super(expressID); - this.EdgeList = EdgeList; - this.type = 2519244187; + IFC42.IfcFlowController = IfcFlowController; + class IfcFlowFitting extends IfcDistributionFlowElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 4278956645; } } - IFC42.IfcPath = IfcPath; - class IfcPhysicalComplexQuantity extends IfcPhysicalQuantity { - constructor(expressID, Name, Description, HasQuantities, Discrimination, Quality, Usage) { - super(expressID, Name, Description); + IFC42.IfcFlowFitting = IfcFlowFitting; + class IfcFlowInstrumentType extends IfcDistributionControlElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.HasQuantities = HasQuantities; - this.Discrimination = Discrimination; - this.Quality = Quality; - this.Usage = Usage; - this.type = 3021840470; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 4037862832; } } - IFC42.IfcPhysicalComplexQuantity = IfcPhysicalComplexQuantity; - class IfcPixelTexture extends IfcSurfaceTexture { - constructor(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter, Width, Height, ColourComponents, Pixel) { - super(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter); - this.RepeatS = RepeatS; - this.RepeatT = RepeatT; - this.Mode = Mode; - this.TextureTransform = TextureTransform; - this.Parameter = Parameter; - this.Width = Width; - this.Height = Height; - this.ColourComponents = ColourComponents; - this.Pixel = Pixel; - this.type = 597895409; + IFC42.IfcFlowInstrumentType = IfcFlowInstrumentType; + class IfcFlowMeter extends IfcFlowController { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 2188021234; } } - IFC42.IfcPixelTexture = IfcPixelTexture; - class IfcPlacement extends IfcGeometricRepresentationItem { - constructor(expressID, Location) { - super(expressID); - this.Location = Location; - this.type = 2004835150; + IFC42.IfcFlowMeter = IfcFlowMeter; + class IfcFlowMovingDevice extends IfcDistributionFlowElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 3132237377; } } - IFC42.IfcPlacement = IfcPlacement; - class IfcPlanarExtent extends IfcGeometricRepresentationItem { - constructor(expressID, SizeInX, SizeInY) { - super(expressID); - this.SizeInX = SizeInX; - this.SizeInY = SizeInY; - this.type = 1663979128; + IFC42.IfcFlowMovingDevice = IfcFlowMovingDevice; + class IfcFlowSegment extends IfcDistributionFlowElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 987401354; } } - IFC42.IfcPlanarExtent = IfcPlanarExtent; - class IfcPoint extends IfcGeometricRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 2067069095; + IFC42.IfcFlowSegment = IfcFlowSegment; + class IfcFlowStorageDevice extends IfcDistributionFlowElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 707683696; } } - IFC42.IfcPoint = IfcPoint; - class IfcPointOnCurve extends IfcPoint { - constructor(expressID, BasisCurve, PointParameter) { - super(expressID); - this.BasisCurve = BasisCurve; - this.PointParameter = PointParameter; - this.type = 4022376103; + IFC42.IfcFlowStorageDevice = IfcFlowStorageDevice; + class IfcFlowTerminal extends IfcDistributionFlowElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 2223149337; } } - IFC42.IfcPointOnCurve = IfcPointOnCurve; - class IfcPointOnSurface extends IfcPoint { - constructor(expressID, BasisSurface, PointParameterU, PointParameterV) { - super(expressID); - this.BasisSurface = BasisSurface; - this.PointParameterU = PointParameterU; - this.PointParameterV = PointParameterV; - this.type = 1423911732; + IFC42.IfcFlowTerminal = IfcFlowTerminal; + class IfcFlowTreatmentDevice extends IfcDistributionFlowElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 3508470533; } } - IFC42.IfcPointOnSurface = IfcPointOnSurface; - class IfcPolyLoop extends IfcLoop { - constructor(expressID, Polygon) { - super(expressID); - this.Polygon = Polygon; - this.type = 2924175390; + IFC42.IfcFlowTreatmentDevice = IfcFlowTreatmentDevice; + class IfcFooting extends IfcBuildingElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 900683007; } } - IFC42.IfcPolyLoop = IfcPolyLoop; - class IfcPolygonalBoundedHalfSpace extends IfcHalfSpaceSolid { - constructor(expressID, BaseSurface, AgreementFlag, Position, PolygonalBoundary) { - super(expressID, BaseSurface, AgreementFlag); - this.BaseSurface = BaseSurface; - this.AgreementFlag = AgreementFlag; - this.Position = Position; - this.PolygonalBoundary = PolygonalBoundary; - this.type = 2775532180; + IFC42.IfcFooting = IfcFooting; + class IfcHeatExchanger extends IfcEnergyConversionDevice { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3319311131; } } - IFC42.IfcPolygonalBoundedHalfSpace = IfcPolygonalBoundedHalfSpace; - class IfcPreDefinedItem extends IfcPresentationItem { - constructor(expressID, Name) { - super(expressID); + IFC42.IfcHeatExchanger = IfcHeatExchanger; + class IfcHumidifier extends IfcEnergyConversionDevice { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.type = 3727388367; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 2068733104; } } - IFC42.IfcPreDefinedItem = IfcPreDefinedItem; - class IfcPreDefinedProperties extends IfcPropertyAbstraction { - constructor(expressID) { - super(expressID); - this.type = 3778827333; + IFC42.IfcHumidifier = IfcHumidifier; + class IfcInterceptor extends IfcFlowTreatmentDevice { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 4175244083; } } - IFC42.IfcPreDefinedProperties = IfcPreDefinedProperties; - class IfcPreDefinedTextFont extends IfcPreDefinedItem { - constructor(expressID, Name) { - super(expressID, Name); + IFC42.IfcInterceptor = IfcInterceptor; + class IfcJunctionBox extends IfcFlowFitting { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.type = 1775413392; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 2176052936; } } - IFC42.IfcPreDefinedTextFont = IfcPreDefinedTextFont; - class IfcProductDefinitionShape extends IfcProductRepresentation { - constructor(expressID, Name, Description, Representations) { - super(expressID, Name, Description, Representations); + IFC42.IfcJunctionBox = IfcJunctionBox; + class IfcLamp extends IfcFlowTerminal { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.Representations = Representations; - this.type = 673634403; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 76236018; } } - IFC42.IfcProductDefinitionShape = IfcProductDefinitionShape; - class IfcProfileProperties extends IfcExtendedProperties { - constructor(expressID, Name, Description, Properties2, ProfileDefinition) { - super(expressID, Name, Description, Properties2); + IFC42.IfcLamp = IfcLamp; + class IfcLightFixture extends IfcFlowTerminal { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.Properties = Properties2; - this.ProfileDefinition = ProfileDefinition; - this.type = 2802850158; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 629592764; } } - IFC42.IfcProfileProperties = IfcProfileProperties; - class IfcProperty extends IfcPropertyAbstraction { - constructor(expressID, Name, Description) { - super(expressID); + IFC42.IfcLightFixture = IfcLightFixture; + class IfcMedicalDevice extends IfcFlowTerminal { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.type = 2598011224; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1437502449; } } - IFC42.IfcProperty = IfcProperty; - class IfcPropertyDefinition extends IfcRoot { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); + IFC42.IfcMedicalDevice = IfcMedicalDevice; + class IfcMember extends IfcBuildingElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.type = 1680319473; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1073191201; } } - IFC42.IfcPropertyDefinition = IfcPropertyDefinition; - class IfcPropertyDependencyRelationship extends IfcResourceLevelRelationship { - constructor(expressID, Name, Description, DependingProperty, DependantProperty, Expression) { - super(expressID, Name, Description); + IFC42.IfcMember = IfcMember; + class IfcMemberStandardCase extends IfcMember { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.DependingProperty = DependingProperty; - this.DependantProperty = DependantProperty; - this.Expression = Expression; - this.type = 148025276; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1911478936; } } - IFC42.IfcPropertyDependencyRelationship = IfcPropertyDependencyRelationship; - class IfcPropertySetDefinition extends IfcPropertyDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); + IFC42.IfcMemberStandardCase = IfcMemberStandardCase; + class IfcMotorConnection extends IfcEnergyConversionDevice { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.type = 3357820518; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 2474470126; } } - IFC42.IfcPropertySetDefinition = IfcPropertySetDefinition; - class IfcPropertyTemplateDefinition extends IfcPropertyDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); + IFC42.IfcMotorConnection = IfcMotorConnection; + class IfcOuterBoundaryCurve extends IfcBoundaryCurve { + constructor(Segments, SelfIntersect) { + super(Segments, SelfIntersect); + this.Segments = Segments; + this.SelfIntersect = SelfIntersect; + this.type = 144952367; + } + } + IFC42.IfcOuterBoundaryCurve = IfcOuterBoundaryCurve; + class IfcOutlet extends IfcFlowTerminal { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.type = 1482703590; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3694346114; } } - IFC42.IfcPropertyTemplateDefinition = IfcPropertyTemplateDefinition; - class IfcQuantitySet extends IfcPropertySetDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); + IFC42.IfcOutlet = IfcOutlet; + class IfcPile extends IfcBuildingElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType, ConstructionType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.type = 2090586900; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.ConstructionType = ConstructionType; + this.type = 1687234759; } } - IFC42.IfcQuantitySet = IfcQuantitySet; - class IfcRectangleProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, XDim, YDim) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.XDim = XDim; - this.YDim = YDim; - this.type = 3615266464; + IFC42.IfcPile = IfcPile; + class IfcPipeFitting extends IfcFlowFitting { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 310824031; } } - IFC42.IfcRectangleProfileDef = IfcRectangleProfileDef; - class IfcRegularTimeSeries extends IfcTimeSeries { - constructor(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit, TimeStep, Values) { - super(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit); + IFC42.IfcPipeFitting = IfcPipeFitting; + class IfcPipeSegment extends IfcFlowSegment { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.StartTime = StartTime; - this.EndTime = EndTime; - this.TimeSeriesDataType = TimeSeriesDataType; - this.DataOrigin = DataOrigin; - this.UserDefinedDataOrigin = UserDefinedDataOrigin; - this.Unit = Unit; - this.TimeStep = TimeStep; - this.Values = Values; - this.type = 3413951693; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3612865200; } } - IFC42.IfcRegularTimeSeries = IfcRegularTimeSeries; - class IfcReinforcementBarProperties extends IfcPreDefinedProperties { - constructor(expressID, TotalCrossSectionArea, SteelGrade, BarSurface, EffectiveDepth, NominalBarDiameter, BarCount) { - super(expressID); - this.TotalCrossSectionArea = TotalCrossSectionArea; - this.SteelGrade = SteelGrade; - this.BarSurface = BarSurface; - this.EffectiveDepth = EffectiveDepth; - this.NominalBarDiameter = NominalBarDiameter; - this.BarCount = BarCount; - this.type = 1580146022; + IFC42.IfcPipeSegment = IfcPipeSegment; + class IfcPlate extends IfcBuildingElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3171933400; } } - IFC42.IfcReinforcementBarProperties = IfcReinforcementBarProperties; - class IfcRelationship extends IfcRoot { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); + IFC42.IfcPlate = IfcPlate; + class IfcPlateStandardCase extends IfcPlate { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.type = 478536968; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1156407060; } } - IFC42.IfcRelationship = IfcRelationship; - class IfcResourceApprovalRelationship extends IfcResourceLevelRelationship { - constructor(expressID, Name, Description, RelatedResourceObjects, RelatingApproval) { - super(expressID, Name, Description); + IFC42.IfcPlateStandardCase = IfcPlateStandardCase; + class IfcProtectiveDevice extends IfcFlowController { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.RelatedResourceObjects = RelatedResourceObjects; - this.RelatingApproval = RelatingApproval; - this.type = 2943643501; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 738039164; } } - IFC42.IfcResourceApprovalRelationship = IfcResourceApprovalRelationship; - class IfcResourceConstraintRelationship extends IfcResourceLevelRelationship { - constructor(expressID, Name, Description, RelatingConstraint, RelatedResourceObjects) { - super(expressID, Name, Description); + IFC42.IfcProtectiveDevice = IfcProtectiveDevice; + class IfcProtectiveDeviceTrippingUnitType extends IfcDistributionControlElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.RelatingConstraint = RelatingConstraint; - this.RelatedResourceObjects = RelatedResourceObjects; - this.type = 1608871552; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 655969474; } } - IFC42.IfcResourceConstraintRelationship = IfcResourceConstraintRelationship; - class IfcResourceTime extends IfcSchedulingTime { - constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin, ScheduleWork, ScheduleUsage, ScheduleStart, ScheduleFinish, ScheduleContour, LevelingDelay, IsOverAllocated, StatusTime, ActualWork, ActualUsage, ActualStart, ActualFinish, RemainingWork, RemainingUsage, Completion) { - super(expressID, Name, DataOrigin, UserDefinedDataOrigin); + IFC42.IfcProtectiveDeviceTrippingUnitType = IfcProtectiveDeviceTrippingUnitType; + class IfcPump extends IfcFlowMovingDevice { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.DataOrigin = DataOrigin; - this.UserDefinedDataOrigin = UserDefinedDataOrigin; - this.ScheduleWork = ScheduleWork; - this.ScheduleUsage = ScheduleUsage; - this.ScheduleStart = ScheduleStart; - this.ScheduleFinish = ScheduleFinish; - this.ScheduleContour = ScheduleContour; - this.LevelingDelay = LevelingDelay; - this.IsOverAllocated = IsOverAllocated; - this.StatusTime = StatusTime; - this.ActualWork = ActualWork; - this.ActualUsage = ActualUsage; - this.ActualStart = ActualStart; - this.ActualFinish = ActualFinish; - this.RemainingWork = RemainingWork; - this.RemainingUsage = RemainingUsage; - this.Completion = Completion; - this.type = 1042787934; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 90941305; } } - IFC42.IfcResourceTime = IfcResourceTime; - class IfcRoundedRectangleProfileDef extends IfcRectangleProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, XDim, YDim, RoundingRadius) { - super(expressID, ProfileType, ProfileName, Position, XDim, YDim); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.XDim = XDim; - this.YDim = YDim; - this.RoundingRadius = RoundingRadius; - this.type = 2778083089; + IFC42.IfcPump = IfcPump; + class IfcRailing extends IfcBuildingElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 2262370178; } } - IFC42.IfcRoundedRectangleProfileDef = IfcRoundedRectangleProfileDef; - class IfcSectionProperties extends IfcPreDefinedProperties { - constructor(expressID, SectionType, StartProfile, EndProfile) { - super(expressID); - this.SectionType = SectionType; - this.StartProfile = StartProfile; - this.EndProfile = EndProfile; - this.type = 2042790032; + IFC42.IfcRailing = IfcRailing; + class IfcRamp extends IfcBuildingElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3024970846; } } - IFC42.IfcSectionProperties = IfcSectionProperties; - class IfcSectionReinforcementProperties extends IfcPreDefinedProperties { - constructor(expressID, LongitudinalStartPosition, LongitudinalEndPosition, TransversePosition, ReinforcementRole, SectionDefinition, CrossSectionReinforcementDefinitions) { - super(expressID); - this.LongitudinalStartPosition = LongitudinalStartPosition; - this.LongitudinalEndPosition = LongitudinalEndPosition; - this.TransversePosition = TransversePosition; - this.ReinforcementRole = ReinforcementRole; - this.SectionDefinition = SectionDefinition; - this.CrossSectionReinforcementDefinitions = CrossSectionReinforcementDefinitions; - this.type = 4165799628; + IFC42.IfcRamp = IfcRamp; + class IfcRampFlight extends IfcBuildingElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3283111854; } - } - IFC42.IfcSectionReinforcementProperties = IfcSectionReinforcementProperties; - class IfcSectionedSpine extends IfcGeometricRepresentationItem { - constructor(expressID, SpineCurve, CrossSections, CrossSectionPositions) { - super(expressID); - this.SpineCurve = SpineCurve; - this.CrossSections = CrossSections; - this.CrossSectionPositions = CrossSectionPositions; - this.type = 1509187699; + } + IFC42.IfcRampFlight = IfcRampFlight; + class IfcRationalBSplineCurveWithKnots extends IfcBSplineCurveWithKnots { + constructor(Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect, KnotMultiplicities, Knots, KnotSpec, WeightsData) { + super(Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect, KnotMultiplicities, Knots, KnotSpec); + this.Degree = Degree; + this.ControlPointsList = ControlPointsList; + this.CurveForm = CurveForm; + this.ClosedCurve = ClosedCurve; + this.SelfIntersect = SelfIntersect; + this.KnotMultiplicities = KnotMultiplicities; + this.Knots = Knots; + this.KnotSpec = KnotSpec; + this.WeightsData = WeightsData; + this.type = 1232101972; } } - IFC42.IfcSectionedSpine = IfcSectionedSpine; - class IfcShellBasedSurfaceModel extends IfcGeometricRepresentationItem { - constructor(expressID, SbsmBoundary) { - super(expressID); - this.SbsmBoundary = SbsmBoundary; - this.type = 4124623270; + IFC42.IfcRationalBSplineCurveWithKnots = IfcRationalBSplineCurveWithKnots; + class IfcReinforcingBar extends IfcReinforcingElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, NominalDiameter, CrossSectionArea, BarLength, PredefinedType, BarSurface) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.SteelGrade = SteelGrade; + this.NominalDiameter = NominalDiameter; + this.CrossSectionArea = CrossSectionArea; + this.BarLength = BarLength; + this.PredefinedType = PredefinedType; + this.BarSurface = BarSurface; + this.type = 979691226; } } - IFC42.IfcShellBasedSurfaceModel = IfcShellBasedSurfaceModel; - class IfcSimpleProperty extends IfcProperty { - constructor(expressID, Name, Description) { - super(expressID, Name, Description); + IFC42.IfcReinforcingBar = IfcReinforcingBar; + class IfcReinforcingBarType extends IfcReinforcingElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, NominalDiameter, CrossSectionArea, BarLength, BarSurface, BendingShapeCode, BendingParameters) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.type = 3692461612; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.NominalDiameter = NominalDiameter; + this.CrossSectionArea = CrossSectionArea; + this.BarLength = BarLength; + this.BarSurface = BarSurface; + this.BendingShapeCode = BendingShapeCode; + this.BendingParameters = BendingParameters; + this.type = 2572171363; } } - IFC42.IfcSimpleProperty = IfcSimpleProperty; - class IfcSlippageConnectionCondition extends IfcStructuralConnectionCondition { - constructor(expressID, Name, SlippageX, SlippageY, SlippageZ) { - super(expressID, Name); + IFC42.IfcReinforcingBarType = IfcReinforcingBarType; + class IfcRoof extends IfcBuildingElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.SlippageX = SlippageX; - this.SlippageY = SlippageY; - this.SlippageZ = SlippageZ; - this.type = 2609359061; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 2016517767; } } - IFC42.IfcSlippageConnectionCondition = IfcSlippageConnectionCondition; - class IfcSolidModel extends IfcGeometricRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 723233188; + IFC42.IfcRoof = IfcRoof; + class IfcSanitaryTerminal extends IfcFlowTerminal { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3053780830; } } - IFC42.IfcSolidModel = IfcSolidModel; - class IfcStructuralLoadLinearForce extends IfcStructuralLoadStatic { - constructor(expressID, Name, LinearForceX, LinearForceY, LinearForceZ, LinearMomentX, LinearMomentY, LinearMomentZ) { - super(expressID, Name); + IFC42.IfcSanitaryTerminal = IfcSanitaryTerminal; + class IfcSensorType extends IfcDistributionControlElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.LinearForceX = LinearForceX; - this.LinearForceY = LinearForceY; - this.LinearForceZ = LinearForceZ; - this.LinearMomentX = LinearMomentX; - this.LinearMomentY = LinearMomentY; - this.LinearMomentZ = LinearMomentZ; - this.type = 1595516126; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1783015770; } } - IFC42.IfcStructuralLoadLinearForce = IfcStructuralLoadLinearForce; - class IfcStructuralLoadPlanarForce extends IfcStructuralLoadStatic { - constructor(expressID, Name, PlanarForceX, PlanarForceY, PlanarForceZ) { - super(expressID, Name); + IFC42.IfcSensorType = IfcSensorType; + class IfcShadingDevice extends IfcBuildingElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.PlanarForceX = PlanarForceX; - this.PlanarForceY = PlanarForceY; - this.PlanarForceZ = PlanarForceZ; - this.type = 2668620305; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1329646415; } } - IFC42.IfcStructuralLoadPlanarForce = IfcStructuralLoadPlanarForce; - class IfcStructuralLoadSingleDisplacement extends IfcStructuralLoadStatic { - constructor(expressID, Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ) { - super(expressID, Name); + IFC42.IfcShadingDevice = IfcShadingDevice; + class IfcSlab extends IfcBuildingElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.DisplacementX = DisplacementX; - this.DisplacementY = DisplacementY; - this.DisplacementZ = DisplacementZ; - this.RotationalDisplacementRX = RotationalDisplacementRX; - this.RotationalDisplacementRY = RotationalDisplacementRY; - this.RotationalDisplacementRZ = RotationalDisplacementRZ; - this.type = 2473145415; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1529196076; } } - IFC42.IfcStructuralLoadSingleDisplacement = IfcStructuralLoadSingleDisplacement; - class IfcStructuralLoadSingleDisplacementDistortion extends IfcStructuralLoadSingleDisplacement { - constructor(expressID, Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ, Distortion) { - super(expressID, Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ); + IFC42.IfcSlab = IfcSlab; + class IfcSlabElementedCase extends IfcSlab { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.DisplacementX = DisplacementX; - this.DisplacementY = DisplacementY; - this.DisplacementZ = DisplacementZ; - this.RotationalDisplacementRX = RotationalDisplacementRX; - this.RotationalDisplacementRY = RotationalDisplacementRY; - this.RotationalDisplacementRZ = RotationalDisplacementRZ; - this.Distortion = Distortion; - this.type = 1973038258; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3127900445; } } - IFC42.IfcStructuralLoadSingleDisplacementDistortion = IfcStructuralLoadSingleDisplacementDistortion; - class IfcStructuralLoadSingleForce extends IfcStructuralLoadStatic { - constructor(expressID, Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ) { - super(expressID, Name); + IFC42.IfcSlabElementedCase = IfcSlabElementedCase; + class IfcSlabStandardCase extends IfcSlab { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.ForceX = ForceX; - this.ForceY = ForceY; - this.ForceZ = ForceZ; - this.MomentX = MomentX; - this.MomentY = MomentY; - this.MomentZ = MomentZ; - this.type = 1597423693; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3027962421; } } - IFC42.IfcStructuralLoadSingleForce = IfcStructuralLoadSingleForce; - class IfcStructuralLoadSingleForceWarping extends IfcStructuralLoadSingleForce { - constructor(expressID, Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ, WarpingMoment) { - super(expressID, Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ); + IFC42.IfcSlabStandardCase = IfcSlabStandardCase; + class IfcSolarDevice extends IfcEnergyConversionDevice { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.ForceX = ForceX; - this.ForceY = ForceY; - this.ForceZ = ForceZ; - this.MomentX = MomentX; - this.MomentY = MomentY; - this.MomentZ = MomentZ; - this.WarpingMoment = WarpingMoment; - this.type = 1190533807; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3420628829; } } - IFC42.IfcStructuralLoadSingleForceWarping = IfcStructuralLoadSingleForceWarping; - class IfcSubedge extends IfcEdge { - constructor(expressID, EdgeStart, EdgeEnd, ParentEdge) { - super(expressID, EdgeStart, EdgeEnd); - this.EdgeStart = EdgeStart; - this.EdgeEnd = EdgeEnd; - this.ParentEdge = ParentEdge; - this.type = 2233826070; + IFC42.IfcSolarDevice = IfcSolarDevice; + class IfcSpaceHeater extends IfcFlowTerminal { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1999602285; } } - IFC42.IfcSubedge = IfcSubedge; - class IfcSurface extends IfcGeometricRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 2513912981; + IFC42.IfcSpaceHeater = IfcSpaceHeater; + class IfcStackTerminal extends IfcFlowTerminal { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1404847402; } } - IFC42.IfcSurface = IfcSurface; - class IfcSurfaceStyleRendering extends IfcSurfaceStyleShading { - constructor(expressID, SurfaceColour, Transparency, DiffuseColour, TransmissionColour, DiffuseTransmissionColour, ReflectionColour, SpecularColour, SpecularHighlight, ReflectanceMethod) { - super(expressID, SurfaceColour, Transparency); - this.SurfaceColour = SurfaceColour; - this.Transparency = Transparency; - this.DiffuseColour = DiffuseColour; - this.TransmissionColour = TransmissionColour; - this.DiffuseTransmissionColour = DiffuseTransmissionColour; - this.ReflectionColour = ReflectionColour; - this.SpecularColour = SpecularColour; - this.SpecularHighlight = SpecularHighlight; - this.ReflectanceMethod = ReflectanceMethod; - this.type = 1878645084; + IFC42.IfcStackTerminal = IfcStackTerminal; + class IfcStair extends IfcBuildingElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 331165859; } } - IFC42.IfcSurfaceStyleRendering = IfcSurfaceStyleRendering; - class IfcSweptAreaSolid extends IfcSolidModel { - constructor(expressID, SweptArea, Position) { - super(expressID); - this.SweptArea = SweptArea; - this.Position = Position; - this.type = 2247615214; + IFC42.IfcStair = IfcStair; + class IfcStairFlight extends IfcBuildingElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, NumberOfRisers, NumberOfTreads, RiserHeight, TreadLength, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.NumberOfRisers = NumberOfRisers; + this.NumberOfTreads = NumberOfTreads; + this.RiserHeight = RiserHeight; + this.TreadLength = TreadLength; + this.PredefinedType = PredefinedType; + this.type = 4252922144; } } - IFC42.IfcSweptAreaSolid = IfcSweptAreaSolid; - class IfcSweptDiskSolid extends IfcSolidModel { - constructor(expressID, Directrix, Radius, InnerRadius, StartParam, EndParam) { - super(expressID); - this.Directrix = Directrix; - this.Radius = Radius; - this.InnerRadius = InnerRadius; - this.StartParam = StartParam; - this.EndParam = EndParam; - this.type = 1260650574; + IFC42.IfcStairFlight = IfcStairFlight; + class IfcStructuralAnalysisModel extends IfcSystem { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, OrientationOf2DPlane, LoadedBy, HasResults, SharedPlacement) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.PredefinedType = PredefinedType; + this.OrientationOf2DPlane = OrientationOf2DPlane; + this.LoadedBy = LoadedBy; + this.HasResults = HasResults; + this.SharedPlacement = SharedPlacement; + this.type = 2515109513; } } - IFC42.IfcSweptDiskSolid = IfcSweptDiskSolid; - class IfcSweptDiskSolidPolygonal extends IfcSweptDiskSolid { - constructor(expressID, Directrix, Radius, InnerRadius, StartParam, EndParam, FilletRadius) { - super(expressID, Directrix, Radius, InnerRadius, StartParam, EndParam); - this.Directrix = Directrix; - this.Radius = Radius; - this.InnerRadius = InnerRadius; - this.StartParam = StartParam; - this.EndParam = EndParam; - this.FilletRadius = FilletRadius; - this.type = 1096409881; + IFC42.IfcStructuralAnalysisModel = IfcStructuralAnalysisModel; + class IfcStructuralLoadCase extends IfcStructuralLoadGroup { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, ActionType, ActionSource, Coefficient, Purpose, SelfWeightCoefficients) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, ActionType, ActionSource, Coefficient, Purpose); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.PredefinedType = PredefinedType; + this.ActionType = ActionType; + this.ActionSource = ActionSource; + this.Coefficient = Coefficient; + this.Purpose = Purpose; + this.SelfWeightCoefficients = SelfWeightCoefficients; + this.type = 385403989; } } - IFC42.IfcSweptDiskSolidPolygonal = IfcSweptDiskSolidPolygonal; - class IfcSweptSurface extends IfcSurface { - constructor(expressID, SweptCurve, Position) { - super(expressID); - this.SweptCurve = SweptCurve; - this.Position = Position; - this.type = 230924584; + IFC42.IfcStructuralLoadCase = IfcStructuralLoadCase; + class IfcStructuralPlanarAction extends IfcStructuralSurfaceAction { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedLoad = AppliedLoad; + this.GlobalOrLocal = GlobalOrLocal; + this.DestabilizingLoad = DestabilizingLoad; + this.ProjectedOrTrue = ProjectedOrTrue; + this.PredefinedType = PredefinedType; + this.type = 1621171031; } } - IFC42.IfcSweptSurface = IfcSweptSurface; - class IfcTShapeProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, FlangeEdgeRadius, WebEdgeRadius, WebSlope, FlangeSlope) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.Depth = Depth; - this.FlangeWidth = FlangeWidth; - this.WebThickness = WebThickness; - this.FlangeThickness = FlangeThickness; - this.FilletRadius = FilletRadius; - this.FlangeEdgeRadius = FlangeEdgeRadius; - this.WebEdgeRadius = WebEdgeRadius; - this.WebSlope = WebSlope; - this.FlangeSlope = FlangeSlope; - this.type = 3071757647; + IFC42.IfcStructuralPlanarAction = IfcStructuralPlanarAction; + class IfcSwitchingDevice extends IfcFlowController { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1162798199; } } - IFC42.IfcTShapeProfileDef = IfcTShapeProfileDef; - class IfcTessellatedItem extends IfcGeometricRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 901063453; + IFC42.IfcSwitchingDevice = IfcSwitchingDevice; + class IfcTank extends IfcFlowStorageDevice { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 812556717; } } - IFC42.IfcTessellatedItem = IfcTessellatedItem; - class IfcTextLiteral extends IfcGeometricRepresentationItem { - constructor(expressID, Literal, Placement, Path) { - super(expressID); - this.Literal = Literal; - this.Placement = Placement; - this.Path = Path; - this.type = 4282788508; + IFC42.IfcTank = IfcTank; + class IfcTransformer extends IfcEnergyConversionDevice { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3825984169; } } - IFC42.IfcTextLiteral = IfcTextLiteral; - class IfcTextLiteralWithExtent extends IfcTextLiteral { - constructor(expressID, Literal, Placement, Path, Extent, BoxAlignment) { - super(expressID, Literal, Placement, Path); - this.Literal = Literal; - this.Placement = Placement; - this.Path = Path; - this.Extent = Extent; - this.BoxAlignment = BoxAlignment; - this.type = 3124975700; + IFC42.IfcTransformer = IfcTransformer; + class IfcTubeBundle extends IfcEnergyConversionDevice { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3026737570; } } - IFC42.IfcTextLiteralWithExtent = IfcTextLiteralWithExtent; - class IfcTextStyleFontModel extends IfcPreDefinedTextFont { - constructor(expressID, Name, FontFamily, FontStyle, FontVariant, FontWeight, FontSize) { - super(expressID, Name); + IFC42.IfcTubeBundle = IfcTubeBundle; + class IfcUnitaryControlElementType extends IfcDistributionControlElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.FontFamily = FontFamily; - this.FontStyle = FontStyle; - this.FontVariant = FontVariant; - this.FontWeight = FontWeight; - this.FontSize = FontSize; - this.type = 1983826977; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3179687236; } } - IFC42.IfcTextStyleFontModel = IfcTextStyleFontModel; - class IfcTrapeziumProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, BottomXDim, TopXDim, YDim, TopXOffset) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.BottomXDim = BottomXDim; - this.TopXDim = TopXDim; - this.YDim = YDim; - this.TopXOffset = TopXOffset; - this.type = 2715220739; + IFC42.IfcUnitaryControlElementType = IfcUnitaryControlElementType; + class IfcUnitaryEquipment extends IfcEnergyConversionDevice { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 4292641817; } } - IFC42.IfcTrapeziumProfileDef = IfcTrapeziumProfileDef; - class IfcTypeObject extends IfcObjectDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets) { - super(expressID, GlobalId, OwnerHistory, Name, Description); + IFC42.IfcUnitaryEquipment = IfcUnitaryEquipment; + class IfcValve extends IfcFlowController { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.type = 1628702193; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 4207607924; } } - IFC42.IfcTypeObject = IfcTypeObject; - class IfcTypeProcess extends IfcTypeObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets); + IFC42.IfcValve = IfcValve; + class IfcWall extends IfcBuildingElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.ProcessType = ProcessType; - this.type = 3736923433; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 2391406946; } } - IFC42.IfcTypeProcess = IfcTypeProcess; - class IfcTypeProduct extends IfcTypeObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets); + IFC42.IfcWall = IfcWall; + class IfcWallElementedCase extends IfcWall { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; this.Tag = Tag; - this.type = 2347495698; + this.PredefinedType = PredefinedType; + this.type = 4156078855; } } - IFC42.IfcTypeProduct = IfcTypeProduct; - class IfcTypeResource extends IfcTypeObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets); + IFC42.IfcWallElementedCase = IfcWallElementedCase; + class IfcWallStandardCase extends IfcWall { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.ResourceType = ResourceType; - this.type = 3698973494; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3512223829; } } - IFC42.IfcTypeResource = IfcTypeResource; - class IfcUShapeProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, EdgeRadius, FlangeSlope) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.Depth = Depth; - this.FlangeWidth = FlangeWidth; - this.WebThickness = WebThickness; - this.FlangeThickness = FlangeThickness; - this.FilletRadius = FilletRadius; - this.EdgeRadius = EdgeRadius; - this.FlangeSlope = FlangeSlope; - this.type = 427810014; + IFC42.IfcWallStandardCase = IfcWallStandardCase; + class IfcWasteTerminal extends IfcFlowTerminal { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 4237592921; } } - IFC42.IfcUShapeProfileDef = IfcUShapeProfileDef; - class IfcVector extends IfcGeometricRepresentationItem { - constructor(expressID, Orientation, Magnitude) { - super(expressID); - this.Orientation = Orientation; - this.Magnitude = Magnitude; - this.type = 1417489154; + IFC42.IfcWasteTerminal = IfcWasteTerminal; + class IfcWindow extends IfcBuildingElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, PartitioningType, UserDefinedPartitioningType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.OverallHeight = OverallHeight; + this.OverallWidth = OverallWidth; + this.PredefinedType = PredefinedType; + this.PartitioningType = PartitioningType; + this.UserDefinedPartitioningType = UserDefinedPartitioningType; + this.type = 3304561284; } } - IFC42.IfcVector = IfcVector; - class IfcVertexLoop extends IfcLoop { - constructor(expressID, LoopVertex) { - super(expressID); - this.LoopVertex = LoopVertex; - this.type = 2759199220; + IFC42.IfcWindow = IfcWindow; + class IfcWindowStandardCase extends IfcWindow { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, PartitioningType, UserDefinedPartitioningType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, PartitioningType, UserDefinedPartitioningType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.OverallHeight = OverallHeight; + this.OverallWidth = OverallWidth; + this.PredefinedType = PredefinedType; + this.PartitioningType = PartitioningType; + this.UserDefinedPartitioningType = UserDefinedPartitioningType; + this.type = 486154966; } } - IFC42.IfcVertexLoop = IfcVertexLoop; - class IfcWindowStyle extends IfcTypeProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ConstructionType, OperationType, ParameterTakesPrecedence, Sizeable) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag); + IFC42.IfcWindowStandardCase = IfcWindowStandardCase; + class IfcActuatorType extends IfcDistributionControlElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; @@ -35084,15219 +72014,21069 @@ var IFC4; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; - this.ConstructionType = ConstructionType; - this.OperationType = OperationType; - this.ParameterTakesPrecedence = ParameterTakesPrecedence; - this.Sizeable = Sizeable; - this.type = 1299126871; - } - } - IFC42.IfcWindowStyle = IfcWindowStyle; - class IfcZShapeProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, EdgeRadius) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.Depth = Depth; - this.FlangeWidth = FlangeWidth; - this.WebThickness = WebThickness; - this.FlangeThickness = FlangeThickness; - this.FilletRadius = FilletRadius; - this.EdgeRadius = EdgeRadius; - this.type = 2543172580; - } - } - IFC42.IfcZShapeProfileDef = IfcZShapeProfileDef; - class IfcAdvancedFace extends IfcFaceSurface { - constructor(expressID, Bounds, FaceSurface, SameSense) { - super(expressID, Bounds, FaceSurface, SameSense); - this.Bounds = Bounds; - this.FaceSurface = FaceSurface; - this.SameSense = SameSense; - this.type = 3406155212; - } - } - IFC42.IfcAdvancedFace = IfcAdvancedFace; - class IfcAnnotationFillArea extends IfcGeometricRepresentationItem { - constructor(expressID, OuterBoundary, InnerBoundaries) { - super(expressID); - this.OuterBoundary = OuterBoundary; - this.InnerBoundaries = InnerBoundaries; - this.type = 669184980; - } - } - IFC42.IfcAnnotationFillArea = IfcAnnotationFillArea; - class IfcAsymmetricIShapeProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, BottomFlangeWidth, OverallDepth, WebThickness, BottomFlangeThickness, BottomFlangeFilletRadius, TopFlangeWidth, TopFlangeThickness, TopFlangeFilletRadius, BottomFlangeEdgeRadius, BottomFlangeSlope, TopFlangeEdgeRadius, TopFlangeSlope) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.BottomFlangeWidth = BottomFlangeWidth; - this.OverallDepth = OverallDepth; - this.WebThickness = WebThickness; - this.BottomFlangeThickness = BottomFlangeThickness; - this.BottomFlangeFilletRadius = BottomFlangeFilletRadius; - this.TopFlangeWidth = TopFlangeWidth; - this.TopFlangeThickness = TopFlangeThickness; - this.TopFlangeFilletRadius = TopFlangeFilletRadius; - this.BottomFlangeEdgeRadius = BottomFlangeEdgeRadius; - this.BottomFlangeSlope = BottomFlangeSlope; - this.TopFlangeEdgeRadius = TopFlangeEdgeRadius; - this.TopFlangeSlope = TopFlangeSlope; - this.type = 3207858831; - } - } - IFC42.IfcAsymmetricIShapeProfileDef = IfcAsymmetricIShapeProfileDef; - class IfcAxis1Placement extends IfcPlacement { - constructor(expressID, Location, Axis) { - super(expressID, Location); - this.Location = Location; - this.Axis = Axis; - this.type = 4261334040; - } - } - IFC42.IfcAxis1Placement = IfcAxis1Placement; - class IfcAxis2Placement2D extends IfcPlacement { - constructor(expressID, Location, RefDirection) { - super(expressID, Location); - this.Location = Location; - this.RefDirection = RefDirection; - this.type = 3125803723; - } - } - IFC42.IfcAxis2Placement2D = IfcAxis2Placement2D; - class IfcAxis2Placement3D extends IfcPlacement { - constructor(expressID, Location, Axis, RefDirection) { - super(expressID, Location); - this.Location = Location; - this.Axis = Axis; - this.RefDirection = RefDirection; - this.type = 2740243338; - } - } - IFC42.IfcAxis2Placement3D = IfcAxis2Placement3D; - class IfcBooleanResult extends IfcGeometricRepresentationItem { - constructor(expressID, Operator, FirstOperand, SecondOperand) { - super(expressID); - this.Operator = Operator; - this.FirstOperand = FirstOperand; - this.SecondOperand = SecondOperand; - this.type = 2736907675; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2874132201; } } - IFC42.IfcBooleanResult = IfcBooleanResult; - class IfcBoundedSurface extends IfcSurface { - constructor(expressID) { - super(expressID); - this.type = 4182860854; + IFC42.IfcActuatorType = IfcActuatorType; + class IfcAirTerminal extends IfcFlowTerminal { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1634111441; } } - IFC42.IfcBoundedSurface = IfcBoundedSurface; - class IfcBoundingBox extends IfcGeometricRepresentationItem { - constructor(expressID, Corner, XDim, YDim, ZDim) { - super(expressID); - this.Corner = Corner; - this.XDim = XDim; - this.YDim = YDim; - this.ZDim = ZDim; - this.type = 2581212453; + IFC42.IfcAirTerminal = IfcAirTerminal; + class IfcAirTerminalBox extends IfcFlowController { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 177149247; } } - IFC42.IfcBoundingBox = IfcBoundingBox; - class IfcBoxedHalfSpace extends IfcHalfSpaceSolid { - constructor(expressID, BaseSurface, AgreementFlag, Enclosure) { - super(expressID, BaseSurface, AgreementFlag); - this.BaseSurface = BaseSurface; - this.AgreementFlag = AgreementFlag; - this.Enclosure = Enclosure; - this.type = 2713105998; + IFC42.IfcAirTerminalBox = IfcAirTerminalBox; + class IfcAirToAirHeatRecovery extends IfcEnergyConversionDevice { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 2056796094; } } - IFC42.IfcBoxedHalfSpace = IfcBoxedHalfSpace; - class IfcCShapeProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, Depth, Width, WallThickness, Girth, InternalFilletRadius) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.Depth = Depth; - this.Width = Width; - this.WallThickness = WallThickness; - this.Girth = Girth; - this.InternalFilletRadius = InternalFilletRadius; - this.type = 2898889636; + IFC42.IfcAirToAirHeatRecovery = IfcAirToAirHeatRecovery; + class IfcAlarmType extends IfcDistributionControlElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3001207471; } } - IFC42.IfcCShapeProfileDef = IfcCShapeProfileDef; - class IfcCartesianPoint extends IfcPoint { - constructor(expressID, Coordinates) { - super(expressID); - this.Coordinates = Coordinates; - this.type = 1123145078; + IFC42.IfcAlarmType = IfcAlarmType; + class IfcAudioVisualAppliance extends IfcFlowTerminal { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 277319702; } } - IFC42.IfcCartesianPoint = IfcCartesianPoint; - class IfcCartesianPointList extends IfcGeometricRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 574549367; + IFC42.IfcAudioVisualAppliance = IfcAudioVisualAppliance; + class IfcBeam extends IfcBuildingElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 753842376; } } - IFC42.IfcCartesianPointList = IfcCartesianPointList; - class IfcCartesianPointList2D extends IfcCartesianPointList { - constructor(expressID, CoordList) { - super(expressID); - this.CoordList = CoordList; - this.type = 1675464909; + IFC42.IfcBeam = IfcBeam; + class IfcBeamStandardCase extends IfcBeam { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 2906023776; } } - IFC42.IfcCartesianPointList2D = IfcCartesianPointList2D; - class IfcCartesianPointList3D extends IfcCartesianPointList { - constructor(expressID, CoordList) { - super(expressID); - this.CoordList = CoordList; - this.type = 2059837836; + IFC42.IfcBeamStandardCase = IfcBeamStandardCase; + class IfcBoiler extends IfcEnergyConversionDevice { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 32344328; } } - IFC42.IfcCartesianPointList3D = IfcCartesianPointList3D; - class IfcCartesianTransformationOperator extends IfcGeometricRepresentationItem { - constructor(expressID, Axis1, Axis2, LocalOrigin, Scale) { - super(expressID); - this.Axis1 = Axis1; - this.Axis2 = Axis2; - this.LocalOrigin = LocalOrigin; - this.Scale = Scale; - this.type = 59481748; + IFC42.IfcBoiler = IfcBoiler; + class IfcBurner extends IfcEnergyConversionDevice { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 2938176219; } } - IFC42.IfcCartesianTransformationOperator = IfcCartesianTransformationOperator; - class IfcCartesianTransformationOperator2D extends IfcCartesianTransformationOperator { - constructor(expressID, Axis1, Axis2, LocalOrigin, Scale) { - super(expressID, Axis1, Axis2, LocalOrigin, Scale); - this.Axis1 = Axis1; - this.Axis2 = Axis2; - this.LocalOrigin = LocalOrigin; - this.Scale = Scale; - this.type = 3749851601; + IFC42.IfcBurner = IfcBurner; + class IfcCableCarrierFitting extends IfcFlowFitting { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 635142910; } } - IFC42.IfcCartesianTransformationOperator2D = IfcCartesianTransformationOperator2D; - class IfcCartesianTransformationOperator2DnonUniform extends IfcCartesianTransformationOperator2D { - constructor(expressID, Axis1, Axis2, LocalOrigin, Scale, Scale2) { - super(expressID, Axis1, Axis2, LocalOrigin, Scale); - this.Axis1 = Axis1; - this.Axis2 = Axis2; - this.LocalOrigin = LocalOrigin; - this.Scale = Scale; - this.Scale2 = Scale2; - this.type = 3486308946; + IFC42.IfcCableCarrierFitting = IfcCableCarrierFitting; + class IfcCableCarrierSegment extends IfcFlowSegment { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3758799889; } } - IFC42.IfcCartesianTransformationOperator2DnonUniform = IfcCartesianTransformationOperator2DnonUniform; - class IfcCartesianTransformationOperator3D extends IfcCartesianTransformationOperator { - constructor(expressID, Axis1, Axis2, LocalOrigin, Scale, Axis3) { - super(expressID, Axis1, Axis2, LocalOrigin, Scale); - this.Axis1 = Axis1; - this.Axis2 = Axis2; - this.LocalOrigin = LocalOrigin; - this.Scale = Scale; - this.Axis3 = Axis3; - this.type = 3331915920; + IFC42.IfcCableCarrierSegment = IfcCableCarrierSegment; + class IfcCableFitting extends IfcFlowFitting { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1051757585; } } - IFC42.IfcCartesianTransformationOperator3D = IfcCartesianTransformationOperator3D; - class IfcCartesianTransformationOperator3DnonUniform extends IfcCartesianTransformationOperator3D { - constructor(expressID, Axis1, Axis2, LocalOrigin, Scale, Axis3, Scale2, Scale3) { - super(expressID, Axis1, Axis2, LocalOrigin, Scale, Axis3); - this.Axis1 = Axis1; - this.Axis2 = Axis2; - this.LocalOrigin = LocalOrigin; - this.Scale = Scale; - this.Axis3 = Axis3; - this.Scale2 = Scale2; - this.Scale3 = Scale3; - this.type = 1416205885; + IFC42.IfcCableFitting = IfcCableFitting; + class IfcCableSegment extends IfcFlowSegment { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 4217484030; } } - IFC42.IfcCartesianTransformationOperator3DnonUniform = IfcCartesianTransformationOperator3DnonUniform; - class IfcCircleProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, Radius) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.Radius = Radius; - this.type = 1383045692; + IFC42.IfcCableSegment = IfcCableSegment; + class IfcChiller extends IfcEnergyConversionDevice { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3902619387; } } - IFC42.IfcCircleProfileDef = IfcCircleProfileDef; - class IfcClosedShell extends IfcConnectedFaceSet { - constructor(expressID, CfsFaces) { - super(expressID, CfsFaces); - this.CfsFaces = CfsFaces; - this.type = 2205249479; + IFC42.IfcChiller = IfcChiller; + class IfcCoil extends IfcEnergyConversionDevice { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 639361253; } } - IFC42.IfcClosedShell = IfcClosedShell; - class IfcColourRgb extends IfcColourSpecification { - constructor(expressID, Name, Red, Green, Blue) { - super(expressID, Name); + IFC42.IfcCoil = IfcCoil; + class IfcCommunicationsAppliance extends IfcFlowTerminal { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.Red = Red; - this.Green = Green; - this.Blue = Blue; - this.type = 776857604; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3221913625; } } - IFC42.IfcColourRgb = IfcColourRgb; - class IfcComplexProperty extends IfcProperty { - constructor(expressID, Name, Description, UsageName, HasProperties) { - super(expressID, Name, Description); + IFC42.IfcCommunicationsAppliance = IfcCommunicationsAppliance; + class IfcCompressor extends IfcFlowMovingDevice { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.UsageName = UsageName; - this.HasProperties = HasProperties; - this.type = 2542286263; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3571504051; } } - IFC42.IfcComplexProperty = IfcComplexProperty; - class IfcCompositeCurveSegment extends IfcGeometricRepresentationItem { - constructor(expressID, Transition, SameSense, ParentCurve) { - super(expressID); - this.Transition = Transition; - this.SameSense = SameSense; - this.ParentCurve = ParentCurve; - this.type = 2485617015; + IFC42.IfcCompressor = IfcCompressor; + class IfcCondenser extends IfcEnergyConversionDevice { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 2272882330; } } - IFC42.IfcCompositeCurveSegment = IfcCompositeCurveSegment; - class IfcConstructionResourceType extends IfcTypeResource { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType); + IFC42.IfcCondenser = IfcCondenser; + class IfcControllerType extends IfcDistributionControlElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.ResourceType = ResourceType; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.type = 2574617495; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 578613899; } } - IFC42.IfcConstructionResourceType = IfcConstructionResourceType; - class IfcContext extends IfcObjectDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext) { - super(expressID, GlobalId, OwnerHistory, Name, Description); + IFC42.IfcControllerType = IfcControllerType; + class IfcCooledBeam extends IfcEnergyConversionDevice { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; - this.LongName = LongName; - this.Phase = Phase; - this.RepresentationContexts = RepresentationContexts; - this.UnitsInContext = UnitsInContext; - this.type = 3419103109; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 4136498852; } } - IFC42.IfcContext = IfcContext; - class IfcCrewResourceType extends IfcConstructionResourceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity); + IFC42.IfcCooledBeam = IfcCooledBeam; + class IfcCoolingTower extends IfcEnergyConversionDevice { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.ResourceType = ResourceType; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; this.PredefinedType = PredefinedType; - this.type = 1815067380; + this.type = 3640358203; } } - IFC42.IfcCrewResourceType = IfcCrewResourceType; - class IfcCsgPrimitive3D extends IfcGeometricRepresentationItem { - constructor(expressID, Position) { - super(expressID); - this.Position = Position; - this.type = 2506170314; + IFC42.IfcCoolingTower = IfcCoolingTower; + class IfcDamper extends IfcFlowController { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 4074379575; } } - IFC42.IfcCsgPrimitive3D = IfcCsgPrimitive3D; - class IfcCsgSolid extends IfcSolidModel { - constructor(expressID, TreeRootExpression) { - super(expressID); - this.TreeRootExpression = TreeRootExpression; - this.type = 2147822146; + IFC42.IfcDamper = IfcDamper; + class IfcDistributionChamberElement extends IfcDistributionFlowElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1052013943; } } - IFC42.IfcCsgSolid = IfcCsgSolid; - class IfcCurve extends IfcGeometricRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 2601014836; + IFC42.IfcDistributionChamberElement = IfcDistributionChamberElement; + class IfcDistributionCircuit extends IfcDistributionSystem { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, PredefinedType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.LongName = LongName; + this.PredefinedType = PredefinedType; + this.type = 562808652; } } - IFC42.IfcCurve = IfcCurve; - class IfcCurveBoundedPlane extends IfcBoundedSurface { - constructor(expressID, BasisSurface, OuterBoundary, InnerBoundaries) { - super(expressID); - this.BasisSurface = BasisSurface; - this.OuterBoundary = OuterBoundary; - this.InnerBoundaries = InnerBoundaries; - this.type = 2827736869; + IFC42.IfcDistributionCircuit = IfcDistributionCircuit; + class IfcDistributionControlElement extends IfcDistributionElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 1062813311; } } - IFC42.IfcCurveBoundedPlane = IfcCurveBoundedPlane; - class IfcCurveBoundedSurface extends IfcBoundedSurface { - constructor(expressID, BasisSurface, Boundaries, ImplicitOuter) { - super(expressID); - this.BasisSurface = BasisSurface; - this.Boundaries = Boundaries; - this.ImplicitOuter = ImplicitOuter; - this.type = 2629017746; + IFC42.IfcDistributionControlElement = IfcDistributionControlElement; + class IfcDuctFitting extends IfcFlowFitting { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 342316401; } } - IFC42.IfcCurveBoundedSurface = IfcCurveBoundedSurface; - class IfcDirection extends IfcGeometricRepresentationItem { - constructor(expressID, DirectionRatios) { - super(expressID); - this.DirectionRatios = DirectionRatios; - this.type = 32440307; + IFC42.IfcDuctFitting = IfcDuctFitting; + class IfcDuctSegment extends IfcFlowSegment { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3518393246; } } - IFC42.IfcDirection = IfcDirection; - class IfcDoorStyle extends IfcTypeProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, OperationType, ConstructionType, ParameterTakesPrecedence, Sizeable) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag); + IFC42.IfcDuctSegment = IfcDuctSegment; + class IfcDuctSilencer extends IfcFlowTreatmentDevice { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; this.Tag = Tag; - this.OperationType = OperationType; - this.ConstructionType = ConstructionType; - this.ParameterTakesPrecedence = ParameterTakesPrecedence; - this.Sizeable = Sizeable; - this.type = 526551008; + this.PredefinedType = PredefinedType; + this.type = 1360408905; } } - IFC42.IfcDoorStyle = IfcDoorStyle; - class IfcEdgeLoop extends IfcLoop { - constructor(expressID, EdgeList) { - super(expressID); - this.EdgeList = EdgeList; - this.type = 1472233963; + IFC42.IfcDuctSilencer = IfcDuctSilencer; + class IfcElectricAppliance extends IfcFlowTerminal { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1904799276; } } - IFC42.IfcEdgeLoop = IfcEdgeLoop; - class IfcElementQuantity extends IfcQuantitySet { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, MethodOfMeasurement, Quantities) { - super(expressID, GlobalId, OwnerHistory, Name, Description); + IFC42.IfcElectricAppliance = IfcElectricAppliance; + class IfcElectricDistributionBoard extends IfcFlowController { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.MethodOfMeasurement = MethodOfMeasurement; - this.Quantities = Quantities; - this.type = 1883228015; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 862014818; } } - IFC42.IfcElementQuantity = IfcElementQuantity; - class IfcElementType extends IfcTypeProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag); + IFC42.IfcElectricDistributionBoard = IfcElectricDistributionBoard; + class IfcElectricFlowStorageDevice extends IfcFlowStorageDevice { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; this.Tag = Tag; - this.ElementType = ElementType; - this.type = 339256511; + this.PredefinedType = PredefinedType; + this.type = 3310460725; } } - IFC42.IfcElementType = IfcElementType; - class IfcElementarySurface extends IfcSurface { - constructor(expressID, Position) { - super(expressID); - this.Position = Position; - this.type = 2777663545; + IFC42.IfcElectricFlowStorageDevice = IfcElectricFlowStorageDevice; + class IfcElectricGenerator extends IfcEnergyConversionDevice { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 264262732; } } - IFC42.IfcElementarySurface = IfcElementarySurface; - class IfcEllipseProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, SemiAxis1, SemiAxis2) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.SemiAxis1 = SemiAxis1; - this.SemiAxis2 = SemiAxis2; - this.type = 2835456948; + IFC42.IfcElectricGenerator = IfcElectricGenerator; + class IfcElectricMotor extends IfcEnergyConversionDevice { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 402227799; } } - IFC42.IfcEllipseProfileDef = IfcEllipseProfileDef; - class IfcEventType extends IfcTypeProcess { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType, PredefinedType, EventTriggerType, UserDefinedEventTriggerType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType); + IFC42.IfcElectricMotor = IfcElectricMotor; + class IfcElectricTimeControl extends IfcFlowController { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.ProcessType = ProcessType; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; this.PredefinedType = PredefinedType; - this.EventTriggerType = EventTriggerType; - this.UserDefinedEventTriggerType = UserDefinedEventTriggerType; - this.type = 4024345920; + this.type = 1003880860; } } - IFC42.IfcEventType = IfcEventType; - class IfcExtrudedAreaSolid extends IfcSweptAreaSolid { - constructor(expressID, SweptArea, Position, ExtrudedDirection, Depth) { - super(expressID, SweptArea, Position); - this.SweptArea = SweptArea; - this.Position = Position; - this.ExtrudedDirection = ExtrudedDirection; - this.Depth = Depth; - this.type = 477187591; + IFC42.IfcElectricTimeControl = IfcElectricTimeControl; + class IfcFan extends IfcFlowMovingDevice { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3415622556; } } - IFC42.IfcExtrudedAreaSolid = IfcExtrudedAreaSolid; - class IfcExtrudedAreaSolidTapered extends IfcExtrudedAreaSolid { - constructor(expressID, SweptArea, Position, ExtrudedDirection, Depth, EndSweptArea) { - super(expressID, SweptArea, Position, ExtrudedDirection, Depth); - this.SweptArea = SweptArea; - this.Position = Position; - this.ExtrudedDirection = ExtrudedDirection; - this.Depth = Depth; - this.EndSweptArea = EndSweptArea; - this.type = 2804161546; + IFC42.IfcFan = IfcFan; + class IfcFilter extends IfcFlowTreatmentDevice { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 819412036; } } - IFC42.IfcExtrudedAreaSolidTapered = IfcExtrudedAreaSolidTapered; - class IfcFaceBasedSurfaceModel extends IfcGeometricRepresentationItem { - constructor(expressID, FbsmFaces) { - super(expressID); - this.FbsmFaces = FbsmFaces; - this.type = 2047409740; + IFC42.IfcFilter = IfcFilter; + class IfcFireSuppressionTerminal extends IfcFlowTerminal { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1426591983; } } - IFC42.IfcFaceBasedSurfaceModel = IfcFaceBasedSurfaceModel; - class IfcFillAreaStyleHatching extends IfcGeometricRepresentationItem { - constructor(expressID, HatchLineAppearance, StartOfNextHatchLine, PointOfReferenceHatchLine, PatternStart, HatchLineAngle) { - super(expressID); - this.HatchLineAppearance = HatchLineAppearance; - this.StartOfNextHatchLine = StartOfNextHatchLine; - this.PointOfReferenceHatchLine = PointOfReferenceHatchLine; - this.PatternStart = PatternStart; - this.HatchLineAngle = HatchLineAngle; - this.type = 374418227; + IFC42.IfcFireSuppressionTerminal = IfcFireSuppressionTerminal; + class IfcFlowInstrument extends IfcDistributionControlElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 182646315; } } - IFC42.IfcFillAreaStyleHatching = IfcFillAreaStyleHatching; - class IfcFillAreaStyleTiles extends IfcGeometricRepresentationItem { - constructor(expressID, TilingPattern, Tiles, TilingScale) { - super(expressID); - this.TilingPattern = TilingPattern; - this.Tiles = Tiles; - this.TilingScale = TilingScale; - this.type = 315944413; + IFC42.IfcFlowInstrument = IfcFlowInstrument; + class IfcProtectiveDeviceTrippingUnit extends IfcDistributionControlElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 2295281155; } } - IFC42.IfcFillAreaStyleTiles = IfcFillAreaStyleTiles; - class IfcFixedReferenceSweptAreaSolid extends IfcSweptAreaSolid { - constructor(expressID, SweptArea, Position, Directrix, StartParam, EndParam, FixedReference) { - super(expressID, SweptArea, Position); - this.SweptArea = SweptArea; - this.Position = Position; - this.Directrix = Directrix; - this.StartParam = StartParam; - this.EndParam = EndParam; - this.FixedReference = FixedReference; - this.type = 2652556860; + IFC42.IfcProtectiveDeviceTrippingUnit = IfcProtectiveDeviceTrippingUnit; + class IfcSensor extends IfcDistributionControlElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 4086658281; } } - IFC42.IfcFixedReferenceSweptAreaSolid = IfcFixedReferenceSweptAreaSolid; - class IfcFurnishingElementType extends IfcElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + IFC42.IfcSensor = IfcSensor; + class IfcUnitaryControlElement extends IfcDistributionControlElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; this.Tag = Tag; - this.ElementType = ElementType; - this.type = 4238390223; + this.PredefinedType = PredefinedType; + this.type = 630975310; } } - IFC42.IfcFurnishingElementType = IfcFurnishingElementType; - class IfcFurnitureType extends IfcFurnishingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, AssemblyPlace, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + IFC42.IfcUnitaryControlElement = IfcUnitaryControlElement; + class IfcActuator extends IfcDistributionControlElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; this.Tag = Tag; - this.ElementType = ElementType; - this.AssemblyPlace = AssemblyPlace; this.PredefinedType = PredefinedType; - this.type = 1268542332; + this.type = 4288193352; } } - IFC42.IfcFurnitureType = IfcFurnitureType; - class IfcGeographicElementType extends IfcElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + IFC42.IfcActuator = IfcActuator; + class IfcAlarm extends IfcDistributionControlElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; this.Tag = Tag; - this.ElementType = ElementType; this.PredefinedType = PredefinedType; - this.type = 4095422895; - } - } - IFC42.IfcGeographicElementType = IfcGeographicElementType; - class IfcGeometricCurveSet extends IfcGeometricSet { - constructor(expressID, Elements) { - super(expressID, Elements); - this.Elements = Elements; - this.type = 987898635; + this.type = 3087945054; } } - IFC42.IfcGeometricCurveSet = IfcGeometricCurveSet; - class IfcIShapeProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, OverallWidth, OverallDepth, WebThickness, FlangeThickness, FilletRadius, FlangeEdgeRadius, FlangeSlope) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.OverallWidth = OverallWidth; - this.OverallDepth = OverallDepth; - this.WebThickness = WebThickness; - this.FlangeThickness = FlangeThickness; - this.FilletRadius = FilletRadius; - this.FlangeEdgeRadius = FlangeEdgeRadius; - this.FlangeSlope = FlangeSlope; - this.type = 1484403080; + IFC42.IfcAlarm = IfcAlarm; + class IfcController extends IfcDistributionControlElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 25142252; } } - IFC42.IfcIShapeProfileDef = IfcIShapeProfileDef; - class IfcIndexedPolygonalFace extends IfcTessellatedItem { - constructor(expressID, CoordIndex) { - super(expressID); - this.CoordIndex = CoordIndex; - this.type = 178912537; + IFC42.IfcController = IfcController; +})(IFC4$1 || (IFC4$1 = {})); +SchemaNames[3] = ["IFC4X3", "IFC4X3_RC3", "IFC4X3_RC1", "IFC4X3_RC2"]; +FromRawLineData[3] = { + 3630933823: (v) => new IFC4X3$1.IfcActorRole(v[0], !v[1] ? null : new IFC4X3$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcText(!v[2] ? null : v[2].value)), + 618182010: (v) => new IFC4X3$1.IfcAddress(v[0], !v[1] ? null : new IFC4X3$1.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value)), + 2879124712: (v) => new IFC4X3$1.IfcAlignmentParameterSegment(!v[0] ? null : new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcLabel(!v[1] ? null : v[1].value)), + 3633395639: (v) => new IFC4X3$1.IfcAlignmentVerticalSegment(!v[0] ? null : new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcLabel(!v[1] ? null : v[1].value), new IFC4X3$1.IfcLengthMeasure(!v[2] ? null : v[2].value), new IFC4X3$1.IfcNonNegativeLengthMeasure(!v[3] ? null : v[3].value), new IFC4X3$1.IfcLengthMeasure(!v[4] ? null : v[4].value), new IFC4X3$1.IfcRatioMeasure(!v[5] ? null : v[5].value), new IFC4X3$1.IfcRatioMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcLengthMeasure(!v[7] ? null : v[7].value), v[8]), + 639542469: (v) => new IFC4X3$1.IfcApplication(new Handle$5(!v[0] ? null : v[0].value), new IFC4X3$1.IfcLabel(!v[1] ? null : v[1].value), new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), new IFC4X3$1.IfcIdentifier(!v[3] ? null : v[3].value)), + 411424972: (v) => { + var _a; + return new IFC4X3$1.IfcAppliedValue(!v[0] ? null : new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value), !v[3] ? null : new Handle$5(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcDate(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3$1.IfcDate(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3$1.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), v[8], !v[9] ? null : ((_a = v[9]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 130549933: (v) => new IFC4X3$1.IfcApproval(!v[0] ? null : new IFC4X3$1.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcText(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcDateTime(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3$1.IfcLabel(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3$1.IfcText(!v[6] ? null : v[6].value), !v[7] ? null : new Handle$5(!v[7] ? null : v[7].value), !v[8] ? null : new Handle$5(!v[8] ? null : v[8].value)), + 4037036970: (v) => new IFC4X3$1.IfcBoundaryCondition(!v[0] ? null : new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value)), + 1560379544: (v) => new IFC4X3$1.IfcBoundaryEdgeCondition(!v[0] ? null : new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : TypeInitialiser(3, v[1]), !v[2] ? null : TypeInitialiser(3, v[2]), !v[3] ? null : TypeInitialiser(3, v[3]), !v[4] ? null : TypeInitialiser(3, v[4]), !v[5] ? null : TypeInitialiser(3, v[5]), !v[6] ? null : TypeInitialiser(3, v[6])), + 3367102660: (v) => new IFC4X3$1.IfcBoundaryFaceCondition(!v[0] ? null : new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : TypeInitialiser(3, v[1]), !v[2] ? null : TypeInitialiser(3, v[2]), !v[3] ? null : TypeInitialiser(3, v[3])), + 1387855156: (v) => new IFC4X3$1.IfcBoundaryNodeCondition(!v[0] ? null : new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : TypeInitialiser(3, v[1]), !v[2] ? null : TypeInitialiser(3, v[2]), !v[3] ? null : TypeInitialiser(3, v[3]), !v[4] ? null : TypeInitialiser(3, v[4]), !v[5] ? null : TypeInitialiser(3, v[5]), !v[6] ? null : TypeInitialiser(3, v[6])), + 2069777674: (v) => new IFC4X3$1.IfcBoundaryNodeConditionWarping(!v[0] ? null : new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : TypeInitialiser(3, v[1]), !v[2] ? null : TypeInitialiser(3, v[2]), !v[3] ? null : TypeInitialiser(3, v[3]), !v[4] ? null : TypeInitialiser(3, v[4]), !v[5] ? null : TypeInitialiser(3, v[5]), !v[6] ? null : TypeInitialiser(3, v[6]), !v[7] ? null : TypeInitialiser(3, v[7])), + 2859738748: (_) => new IFC4X3$1.IfcConnectionGeometry(), + 2614616156: (v) => new IFC4X3$1.IfcConnectionPointGeometry(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value)), + 2732653382: (v) => new IFC4X3$1.IfcConnectionSurfaceGeometry(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value)), + 775493141: (v) => new IFC4X3$1.IfcConnectionVolumeGeometry(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value)), + 1959218052: (v) => new IFC4X3$1.IfcConstraint(new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcText(!v[1] ? null : v[1].value), v[2], !v[3] ? null : new IFC4X3$1.IfcLabel(!v[3] ? null : v[3].value), !v[4] ? null : new Handle$5(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3$1.IfcDateTime(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3$1.IfcLabel(!v[6] ? null : v[6].value)), + 1785450214: (v) => new IFC4X3$1.IfcCoordinateOperation(new Handle$5(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value)), + 1466758467: (v) => new IFC4X3$1.IfcCoordinateReferenceSystem(new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcIdentifier(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcIdentifier(!v[3] ? null : v[3].value)), + 602808272: (v) => { + var _a; + return new IFC4X3$1.IfcCostValue(!v[0] ? null : new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value), !v[3] ? null : new Handle$5(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcDate(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3$1.IfcDate(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3$1.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), v[8], !v[9] ? null : ((_a = v[9]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 1765591967: (v) => { + var _a; + return new IFC4X3$1.IfcDerivedUnit(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], v[1], !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcLabel(!v[3] ? null : v[3].value)); + }, + 1045800335: (v) => new IFC4X3$1.IfcDerivedUnitElement(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : v[1].value), + 2949456006: (v) => new IFC4X3$1.IfcDimensionalExponents(!v[0] ? null : v[0].value, !v[1] ? null : v[1].value, !v[2] ? null : v[2].value, !v[3] ? null : v[3].value, !v[4] ? null : v[4].value, !v[5] ? null : v[5].value, !v[6] ? null : v[6].value), + 4294318154: (_) => new IFC4X3$1.IfcExternalInformation(), + 3200245327: (v) => new IFC4X3$1.IfcExternalReference(!v[0] ? null : new IFC4X3$1.IfcURIReference(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcIdentifier(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value)), + 2242383968: (v) => new IFC4X3$1.IfcExternallyDefinedHatchStyle(!v[0] ? null : new IFC4X3$1.IfcURIReference(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcIdentifier(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value)), + 1040185647: (v) => new IFC4X3$1.IfcExternallyDefinedSurfaceStyle(!v[0] ? null : new IFC4X3$1.IfcURIReference(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcIdentifier(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value)), + 3548104201: (v) => new IFC4X3$1.IfcExternallyDefinedTextFont(!v[0] ? null : new IFC4X3$1.IfcURIReference(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcIdentifier(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value)), + 852622518: (v) => new IFC4X3$1.IfcGridAxis(!v[0] ? null : new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), new IFC4X3$1.IfcBoolean(!v[2] ? null : v[2].value)), + 3020489413: (v) => { + var _a; + return new IFC4X3$1.IfcIrregularTimeSeriesValue(new IFC4X3$1.IfcDateTime(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(3, p) : null)) || []); + }, + 2655187982: (v) => new IFC4X3$1.IfcLibraryInformation(new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcDateTime(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcURIReference(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3$1.IfcText(!v[5] ? null : v[5].value)), + 3452421091: (v) => new IFC4X3$1.IfcLibraryReference(!v[0] ? null : new IFC4X3$1.IfcURIReference(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcIdentifier(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLanguageId(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value)), + 4162380809: (v) => { + var _a, _b; + return new IFC4X3$1.IfcLightDistributionData(new IFC4X3$1.IfcPlaneAngleMeasure(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3$1.IfcPlaneAngleMeasure(p.value) : null)) || [], ((_b = v[2]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3$1.IfcLuminousIntensityDistributionMeasure(p.value) : null)) || []); + }, + 1566485204: (v) => { + var _a; + return new IFC4X3$1.IfcLightIntensityDistribution(v[0], ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 3057273783: (v) => new IFC4X3$1.IfcMapConversion(new Handle$5(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), new IFC4X3$1.IfcLengthMeasure(!v[2] ? null : v[2].value), new IFC4X3$1.IfcLengthMeasure(!v[3] ? null : v[3].value), new IFC4X3$1.IfcLengthMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3$1.IfcReal(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3$1.IfcReal(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcReal(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcReal(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4X3$1.IfcReal(!v[9] ? null : v[9].value)), + 1847130766: (v) => { + var _a; + return new IFC4X3$1.IfcMaterialClassificationRelationship(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new Handle$5(!v[1] ? null : v[1].value)); + }, + 760658860: (_) => new IFC4X3$1.IfcMaterialDefinition(), + 248100487: (v) => new IFC4X3$1.IfcMaterialLayer(!v[0] ? null : new Handle$5(!v[0] ? null : v[0].value), new IFC4X3$1.IfcNonNegativeLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLogical(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcLabel(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcText(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3$1.IfcLabel(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3$1.IfcInteger(!v[6] ? null : v[6].value)), + 3303938423: (v) => { + var _a; + return new IFC4X3$1.IfcMaterialLayerSet(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[1] ? null : new IFC4X3$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcText(!v[2] ? null : v[2].value)); + }, + 1847252529: (v) => new IFC4X3$1.IfcMaterialLayerWithOffsets(!v[0] ? null : new Handle$5(!v[0] ? null : v[0].value), new IFC4X3$1.IfcNonNegativeLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLogical(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcLabel(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcText(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3$1.IfcLabel(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3$1.IfcInteger(!v[6] ? null : v[6].value), v[7], new IFC4X3$1.IfcLengthMeasure(!v[8] ? null : v[8].value)), + 2199411900: (v) => { + var _a; + return new IFC4X3$1.IfcMaterialList(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 2235152071: (v) => new IFC4X3$1.IfcMaterialProfile(!v[0] ? null : new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value), new Handle$5(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcInteger(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3$1.IfcLabel(!v[5] ? null : v[5].value)), + 164193824: (v) => { + var _a; + return new IFC4X3$1.IfcMaterialProfileSet(!v[0] ? null : new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[3] ? null : new Handle$5(!v[3] ? null : v[3].value)); + }, + 552965576: (v) => new IFC4X3$1.IfcMaterialProfileWithOffsets(!v[0] ? null : new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value), new Handle$5(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcInteger(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3$1.IfcLabel(!v[5] ? null : v[5].value), new IFC4X3$1.IfcLengthMeasure(!v[6] ? null : v[6].value)), + 1507914824: (_) => new IFC4X3$1.IfcMaterialUsageDefinition(), + 2597039031: (v) => new IFC4X3$1.IfcMeasureWithUnit(TypeInitialiser(3, v[0]), new Handle$5(!v[1] ? null : v[1].value)), + 3368373690: (v) => new IFC4X3$1.IfcMetric(new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcText(!v[1] ? null : v[1].value), v[2], !v[3] ? null : new IFC4X3$1.IfcLabel(!v[3] ? null : v[3].value), !v[4] ? null : new Handle$5(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3$1.IfcDateTime(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3$1.IfcLabel(!v[6] ? null : v[6].value), v[7], !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : new Handle$5(!v[9] ? null : v[9].value), !v[10] ? null : new Handle$5(!v[10] ? null : v[10].value)), + 2706619895: (v) => new IFC4X3$1.IfcMonetaryUnit(new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value)), + 1918398963: (v) => new IFC4X3$1.IfcNamedUnit(new Handle$5(!v[0] ? null : v[0].value), v[1]), + 3701648758: (v) => new IFC4X3$1.IfcObjectPlacement(!v[0] ? null : new Handle$5(!v[0] ? null : v[0].value)), + 2251480897: (v) => { + var _a; + return new IFC4X3$1.IfcObjective(new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcText(!v[1] ? null : v[1].value), v[2], !v[3] ? null : new IFC4X3$1.IfcLabel(!v[3] ? null : v[3].value), !v[4] ? null : new Handle$5(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3$1.IfcDateTime(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3$1.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], v[8], v[9], !v[10] ? null : new IFC4X3$1.IfcLabel(!v[10] ? null : v[10].value)); + }, + 4251960020: (v) => { + var _a, _b; + return new IFC4X3$1.IfcOrganization(!v[0] ? null : new IFC4X3$1.IfcIdentifier(!v[0] ? null : v[0].value), new IFC4X3$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcText(!v[2] ? null : v[2].value), !v[3] ? null : ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[4] ? null : ((_b = v[4]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 1207048766: (v) => new IFC4X3$1.IfcOwnerHistory(new Handle$5(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), v[2], v[3], !v[4] ? null : new IFC4X3$1.IfcTimeStamp(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), new IFC4X3$1.IfcTimeStamp(!v[7] ? null : v[7].value)), + 2077209135: (v) => { + var _a, _b, _c, _d, _e; + return new IFC4X3$1.IfcPerson(!v[0] ? null : new IFC4X3$1.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3$1.IfcLabel(p.value) : null)) || [], !v[4] ? null : ((_b = v[4]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3$1.IfcLabel(p.value) : null)) || [], !v[5] ? null : ((_c = v[5]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3$1.IfcLabel(p.value) : null)) || [], !v[6] ? null : ((_d = v[6]) == null ? void 0 : _d.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : ((_e = v[7]) == null ? void 0 : _e.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 101040310: (v) => { + var _a; + return new IFC4X3$1.IfcPersonAndOrganization(new Handle$5(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 2483315170: (v) => new IFC4X3$1.IfcPhysicalQuantity(new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcText(!v[1] ? null : v[1].value)), + 2226359599: (v) => new IFC4X3$1.IfcPhysicalSimpleQuantity(new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value)), + 3355820592: (v) => { + var _a; + return new IFC4X3$1.IfcPostalAddress(v[0], !v[1] ? null : new IFC4X3$1.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcLabel(!v[3] ? null : v[3].value), !v[4] ? null : ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3$1.IfcLabel(p.value) : null)) || [], !v[5] ? null : new IFC4X3$1.IfcLabel(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3$1.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4X3$1.IfcLabel(!v[9] ? null : v[9].value)); + }, + 677532197: (_) => new IFC4X3$1.IfcPresentationItem(), + 2022622350: (v) => { + var _a; + return new IFC4X3$1.IfcPresentationLayerAssignment(new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[3] ? null : new IFC4X3$1.IfcIdentifier(!v[3] ? null : v[3].value)); + }, + 1304840413: (v) => { + var _a, _b; + return new IFC4X3$1.IfcPresentationLayerWithStyle(new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[3] ? null : new IFC4X3$1.IfcIdentifier(!v[3] ? null : v[3].value), new IFC4X3$1.IfcLogical(!v[4] ? null : v[4].value), new IFC4X3$1.IfcLogical(!v[5] ? null : v[5].value), new IFC4X3$1.IfcLogical(!v[6] ? null : v[6].value), !v[7] ? null : ((_b = v[7]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 3119450353: (v) => new IFC4X3$1.IfcPresentationStyle(!v[0] ? null : new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value)), + 2095639259: (v) => { + var _a; + return new IFC4X3$1.IfcProductRepresentation(!v[0] ? null : new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 3958567839: (v) => new IFC4X3$1.IfcProfileDef(v[0], !v[1] ? null : new IFC4X3$1.IfcLabel(!v[1] ? null : v[1].value)), + 3843373140: (v) => new IFC4X3$1.IfcProjectedCRS(new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcIdentifier(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcIdentifier(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3$1.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value)), + 986844984: (_) => new IFC4X3$1.IfcPropertyAbstraction(), + 3710013099: (v) => { + var _a; + return new IFC4X3$1.IfcPropertyEnumeration(new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(3, p) : null)) || [], !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value)); + }, + 2044713172: (v) => new IFC4X3$1.IfcQuantityArea(new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value), new IFC4X3$1.IfcAreaMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value)), + 2093928680: (v) => new IFC4X3$1.IfcQuantityCount(new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value), new IFC4X3$1.IfcCountMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value)), + 931644368: (v) => new IFC4X3$1.IfcQuantityLength(new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value), new IFC4X3$1.IfcLengthMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value)), + 2691318326: (v) => new IFC4X3$1.IfcQuantityNumber(new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value), new IFC4X3$1.IfcNumericMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value)), + 3252649465: (v) => new IFC4X3$1.IfcQuantityTime(new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value), new IFC4X3$1.IfcTimeMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value)), + 2405470396: (v) => new IFC4X3$1.IfcQuantityVolume(new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value), new IFC4X3$1.IfcVolumeMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value)), + 825690147: (v) => new IFC4X3$1.IfcQuantityWeight(new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value), new IFC4X3$1.IfcMassMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value)), + 3915482550: (v) => { + var _a, _b, _c, _d; + return new IFC4X3$1.IfcRecurrencePattern(v[0], !v[1] ? null : ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3$1.IfcDayInMonthNumber(p.value) : null)) || [], !v[2] ? null : ((_b = v[2]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3$1.IfcDayInWeekNumber(p.value) : null)) || [], !v[3] ? null : ((_c = v[3]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3$1.IfcMonthInYearNumber(p.value) : null)) || [], !v[4] ? null : new IFC4X3$1.IfcInteger(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3$1.IfcInteger(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3$1.IfcInteger(!v[6] ? null : v[6].value), !v[7] ? null : ((_d = v[7]) == null ? void 0 : _d.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 2433181523: (v) => { + var _a; + return new IFC4X3$1.IfcReference(!v[0] ? null : new IFC4X3$1.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcIdentifier(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3$1.IfcInteger(p.value) : null)) || [], !v[4] ? null : new Handle$5(!v[4] ? null : v[4].value)); + }, + 1076942058: (v) => { + var _a; + return new IFC4X3$1.IfcRepresentation(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 3377609919: (v) => new IFC4X3$1.IfcRepresentationContext(!v[0] ? null : new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcLabel(!v[1] ? null : v[1].value)), + 3008791417: (_) => new IFC4X3$1.IfcRepresentationItem(), + 1660063152: (v) => new IFC4X3$1.IfcRepresentationMap(new Handle$5(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value)), + 2439245199: (v) => new IFC4X3$1.IfcResourceLevelRelationship(!v[0] ? null : new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcText(!v[1] ? null : v[1].value)), + 2341007311: (v) => new IFC4X3$1.IfcRoot(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value)), + 448429030: (v) => new IFC4X3$1.IfcSIUnit(new Handle$5(!v[0] ? null : v[0].value), v[1], v[2], v[3]), + 1054537805: (v) => new IFC4X3$1.IfcSchedulingTime(!v[0] ? null : new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), v[1], !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value)), + 867548509: (v) => { + var _a; + return new IFC4X3$1.IfcShapeAspect(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[1] ? null : new IFC4X3$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcText(!v[2] ? null : v[2].value), new IFC4X3$1.IfcLogical(!v[3] ? null : v[3].value), !v[4] ? null : new Handle$5(!v[4] ? null : v[4].value)); + }, + 3982875396: (v) => { + var _a; + return new IFC4X3$1.IfcShapeModel(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 4240577450: (v) => { + var _a; + return new IFC4X3$1.IfcShapeRepresentation(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 2273995522: (v) => new IFC4X3$1.IfcStructuralConnectionCondition(!v[0] ? null : new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value)), + 2162789131: (v) => new IFC4X3$1.IfcStructuralLoad(!v[0] ? null : new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value)), + 3478079324: (v) => { + var _a, _b; + return new IFC4X3$1.IfcStructuralLoadConfiguration(!v[0] ? null : new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[2] ? null : (_b = v[2]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new IFC4X3$1.IfcLengthMeasure(p2.value) : null)) || [])); + }, + 609421318: (v) => new IFC4X3$1.IfcStructuralLoadOrResult(!v[0] ? null : new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value)), + 2525727697: (v) => new IFC4X3$1.IfcStructuralLoadStatic(!v[0] ? null : new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value)), + 3408363356: (v) => new IFC4X3$1.IfcStructuralLoadTemperature(!v[0] ? null : new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcThermodynamicTemperatureMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcThermodynamicTemperatureMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcThermodynamicTemperatureMeasure(!v[3] ? null : v[3].value)), + 2830218821: (v) => { + var _a; + return new IFC4X3$1.IfcStyleModel(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 3958052878: (v) => { + var _a; + return new IFC4X3$1.IfcStyledItem(!v[0] ? null : new Handle$5(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value)); + }, + 3049322572: (v) => { + var _a; + return new IFC4X3$1.IfcStyledRepresentation(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 2934153892: (v) => { + var _a, _b; + return new IFC4X3$1.IfcSurfaceReinforcementArea(!v[0] ? null : new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3$1.IfcLengthMeasure(p.value) : null)) || [], !v[2] ? null : ((_b = v[2]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3$1.IfcLengthMeasure(p.value) : null)) || [], !v[3] ? null : new IFC4X3$1.IfcRatioMeasure(!v[3] ? null : v[3].value)); + }, + 1300840506: (v) => { + var _a; + return new IFC4X3$1.IfcSurfaceStyle(!v[0] ? null : new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), v[1], ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 3303107099: (v) => new IFC4X3$1.IfcSurfaceStyleLighting(new Handle$5(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), new Handle$5(!v[3] ? null : v[3].value)), + 1607154358: (v) => new IFC4X3$1.IfcSurfaceStyleRefraction(!v[0] ? null : new IFC4X3$1.IfcReal(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcReal(!v[1] ? null : v[1].value)), + 846575682: (v) => new IFC4X3$1.IfcSurfaceStyleShading(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcNormalisedRatioMeasure(!v[1] ? null : v[1].value)), + 1351298697: (v) => { + var _a; + return new IFC4X3$1.IfcSurfaceStyleWithTextures(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 626085974: (v) => { + var _a; + return new IFC4X3$1.IfcSurfaceTexture(new IFC4X3$1.IfcBoolean(!v[0] ? null : v[0].value), new IFC4X3$1.IfcBoolean(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcIdentifier(!v[2] ? null : v[2].value), !v[3] ? null : new Handle$5(!v[3] ? null : v[3].value), !v[4] ? null : ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3$1.IfcIdentifier(p.value) : null)) || []); + }, + 985171141: (v) => { + var _a, _b; + return new IFC4X3$1.IfcTable(!v[0] ? null : new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[2] ? null : ((_b = v[2]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 2043862942: (v) => new IFC4X3$1.IfcTableColumn(!v[0] ? null : new IFC4X3$1.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcText(!v[2] ? null : v[2].value), !v[3] ? null : new Handle$5(!v[3] ? null : v[3].value), !v[4] ? null : new Handle$5(!v[4] ? null : v[4].value)), + 531007025: (v) => { + var _a; + return new IFC4X3$1.IfcTableRow(!v[0] ? null : ((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(3, p) : null)) || [], !v[1] ? null : new IFC4X3$1.IfcBoolean(!v[1] ? null : v[1].value)); + }, + 1549132990: (v) => new IFC4X3$1.IfcTaskTime(!v[0] ? null : new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), v[1], !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), v[3], !v[4] ? null : new IFC4X3$1.IfcDuration(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3$1.IfcDateTime(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3$1.IfcDateTime(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcDateTime(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcDateTime(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4X3$1.IfcDateTime(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4X3$1.IfcDateTime(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4X3$1.IfcDuration(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4X3$1.IfcDuration(!v[12] ? null : v[12].value), !v[13] ? null : new IFC4X3$1.IfcBoolean(!v[13] ? null : v[13].value), !v[14] ? null : new IFC4X3$1.IfcDateTime(!v[14] ? null : v[14].value), !v[15] ? null : new IFC4X3$1.IfcDuration(!v[15] ? null : v[15].value), !v[16] ? null : new IFC4X3$1.IfcDateTime(!v[16] ? null : v[16].value), !v[17] ? null : new IFC4X3$1.IfcDateTime(!v[17] ? null : v[17].value), !v[18] ? null : new IFC4X3$1.IfcDuration(!v[18] ? null : v[18].value), !v[19] ? null : new IFC4X3$1.IfcPositiveRatioMeasure(!v[19] ? null : v[19].value)), + 2771591690: (v) => new IFC4X3$1.IfcTaskTimeRecurring(!v[0] ? null : new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), v[1], !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), v[3], !v[4] ? null : new IFC4X3$1.IfcDuration(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3$1.IfcDateTime(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3$1.IfcDateTime(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcDateTime(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcDateTime(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4X3$1.IfcDateTime(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4X3$1.IfcDateTime(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4X3$1.IfcDuration(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4X3$1.IfcDuration(!v[12] ? null : v[12].value), !v[13] ? null : new IFC4X3$1.IfcBoolean(!v[13] ? null : v[13].value), !v[14] ? null : new IFC4X3$1.IfcDateTime(!v[14] ? null : v[14].value), !v[15] ? null : new IFC4X3$1.IfcDuration(!v[15] ? null : v[15].value), !v[16] ? null : new IFC4X3$1.IfcDateTime(!v[16] ? null : v[16].value), !v[17] ? null : new IFC4X3$1.IfcDateTime(!v[17] ? null : v[17].value), !v[18] ? null : new IFC4X3$1.IfcDuration(!v[18] ? null : v[18].value), !v[19] ? null : new IFC4X3$1.IfcPositiveRatioMeasure(!v[19] ? null : v[19].value), new Handle$5(!v[20] ? null : v[20].value)), + 912023232: (v) => { + var _a, _b, _c, _d; + return new IFC4X3$1.IfcTelecomAddress(v[0], !v[1] ? null : new IFC4X3$1.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3$1.IfcLabel(p.value) : null)) || [], !v[4] ? null : ((_b = v[4]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3$1.IfcLabel(p.value) : null)) || [], !v[5] ? null : new IFC4X3$1.IfcLabel(!v[5] ? null : v[5].value), !v[6] ? null : ((_c = v[6]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3$1.IfcLabel(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcURIReference(!v[7] ? null : v[7].value), !v[8] ? null : ((_d = v[8]) == null ? void 0 : _d.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3$1.IfcURIReference(p.value) : null)) || []); + }, + 1447204868: (v) => new IFC4X3$1.IfcTextStyle(!v[0] ? null : new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value), new Handle$5(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcBoolean(!v[4] ? null : v[4].value)), + 2636378356: (v) => new IFC4X3$1.IfcTextStyleForDefinedFont(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value)), + 1640371178: (v) => new IFC4X3$1.IfcTextStyleTextModel(!v[0] ? null : TypeInitialiser(3, v[0]), !v[1] ? null : new IFC4X3$1.IfcTextAlignment(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcTextDecoration(!v[2] ? null : v[2].value), !v[3] ? null : TypeInitialiser(3, v[3]), !v[4] ? null : TypeInitialiser(3, v[4]), !v[5] ? null : new IFC4X3$1.IfcTextTransformation(!v[5] ? null : v[5].value), !v[6] ? null : TypeInitialiser(3, v[6])), + 280115917: (v) => { + var _a; + return new IFC4X3$1.IfcTextureCoordinate(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 1742049831: (v) => { + var _a, _b; + return new IFC4X3$1.IfcTextureCoordinateGenerator(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new IFC4X3$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : ((_b = v[2]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3$1.IfcReal(p.value) : null)) || []); + }, + 222769930: (v) => { + var _a; + return new IFC4X3$1.IfcTextureCoordinateIndices(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3$1.IfcPositiveInteger(p.value) : null)) || [], new Handle$5(!v[1] ? null : v[1].value)); + }, + 1010789467: (v) => { + var _a, _b; + return new IFC4X3$1.IfcTextureCoordinateIndicesWithVoids(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3$1.IfcPositiveInteger(p.value) : null)) || [], new Handle$5(!v[1] ? null : v[1].value), (_b = v[2]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new IFC4X3$1.IfcPositiveInteger(p2.value) : null)) || [])); + }, + 2552916305: (v) => { + var _a, _b; + return new IFC4X3$1.IfcTextureMap(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], ((_b = v[1]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new Handle$5(!v[2] ? null : v[2].value)); + }, + 1210645708: (v) => { + var _a; + return new IFC4X3$1.IfcTextureVertex(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3$1.IfcParameterValue(p.value) : null)) || []); + }, + 3611470254: (v) => { + var _a; + return new IFC4X3$1.IfcTextureVertexList((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new IFC4X3$1.IfcParameterValue(p2.value) : null)) || [])); + }, + 1199560280: (v) => new IFC4X3$1.IfcTimePeriod(new IFC4X3$1.IfcTime(!v[0] ? null : v[0].value), new IFC4X3$1.IfcTime(!v[1] ? null : v[1].value)), + 3101149627: (v) => new IFC4X3$1.IfcTimeSeries(new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcText(!v[1] ? null : v[1].value), new IFC4X3$1.IfcDateTime(!v[2] ? null : v[2].value), new IFC4X3$1.IfcDateTime(!v[3] ? null : v[3].value), v[4], v[5], !v[6] ? null : new IFC4X3$1.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : new Handle$5(!v[7] ? null : v[7].value)), + 581633288: (v) => { + var _a; + return new IFC4X3$1.IfcTimeSeriesValue(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(3, p) : null)) || []); + }, + 1377556343: (_) => new IFC4X3$1.IfcTopologicalRepresentationItem(), + 1735638870: (v) => { + var _a; + return new IFC4X3$1.IfcTopologyRepresentation(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 180925521: (v) => { + var _a; + return new IFC4X3$1.IfcUnitAssignment(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 2799835756: (_) => new IFC4X3$1.IfcVertex(), + 1907098498: (v) => new IFC4X3$1.IfcVertexPoint(new Handle$5(!v[0] ? null : v[0].value)), + 891718957: (v) => { + var _a, _b; + return new IFC4X3$1.IfcVirtualGridIntersection(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], ((_b = v[1]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3$1.IfcLengthMeasure(p.value) : null)) || []); + }, + 1236880293: (v) => new IFC4X3$1.IfcWorkTime(!v[0] ? null : new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), v[1], !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new Handle$5(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcDate(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3$1.IfcDate(!v[5] ? null : v[5].value)), + 3752311538: (v) => new IFC4X3$1.IfcAlignmentCantSegment(!v[0] ? null : new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcLabel(!v[1] ? null : v[1].value), new IFC4X3$1.IfcLengthMeasure(!v[2] ? null : v[2].value), new IFC4X3$1.IfcNonNegativeLengthMeasure(!v[3] ? null : v[3].value), new IFC4X3$1.IfcLengthMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3$1.IfcLengthMeasure(!v[5] ? null : v[5].value), new IFC4X3$1.IfcLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcLengthMeasure(!v[7] ? null : v[7].value), v[8]), + 536804194: (v) => new IFC4X3$1.IfcAlignmentHorizontalSegment(!v[0] ? null : new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcLabel(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), new IFC4X3$1.IfcPlaneAngleMeasure(!v[3] ? null : v[3].value), new IFC4X3$1.IfcLengthMeasure(!v[4] ? null : v[4].value), new IFC4X3$1.IfcLengthMeasure(!v[5] ? null : v[5].value), new IFC4X3$1.IfcNonNegativeLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcPositiveLengthMeasure(!v[7] ? null : v[7].value), v[8]), + 3869604511: (v) => { + var _a; + return new IFC4X3$1.IfcApprovalRelationship(!v[0] ? null : new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcText(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 3798115385: (v) => new IFC4X3$1.IfcArbitraryClosedProfileDef(v[0], !v[1] ? null : new IFC4X3$1.IfcLabel(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value)), + 1310608509: (v) => new IFC4X3$1.IfcArbitraryOpenProfileDef(v[0], !v[1] ? null : new IFC4X3$1.IfcLabel(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value)), + 2705031697: (v) => { + var _a; + return new IFC4X3$1.IfcArbitraryProfileDefWithVoids(v[0], !v[1] ? null : new IFC4X3$1.IfcLabel(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 616511568: (v) => { + var _a; + return new IFC4X3$1.IfcBlobTexture(new IFC4X3$1.IfcBoolean(!v[0] ? null : v[0].value), new IFC4X3$1.IfcBoolean(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcIdentifier(!v[2] ? null : v[2].value), !v[3] ? null : new Handle$5(!v[3] ? null : v[3].value), !v[4] ? null : ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3$1.IfcIdentifier(p.value) : null)) || [], new IFC4X3$1.IfcIdentifier(!v[5] ? null : v[5].value), new IFC4X3$1.IfcBinary(!v[6] ? null : v[6].value)); + }, + 3150382593: (v) => new IFC4X3$1.IfcCenterLineProfileDef(v[0], !v[1] ? null : new IFC4X3$1.IfcLabel(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), new IFC4X3$1.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value)), + 747523909: (v) => { + var _a; + return new IFC4X3$1.IfcClassification(!v[0] ? null : new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcDate(!v[2] ? null : v[2].value), new IFC4X3$1.IfcLabel(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcText(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3$1.IfcURIReference(!v[5] ? null : v[5].value), !v[6] ? null : ((_a = v[6]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3$1.IfcIdentifier(p.value) : null)) || []); + }, + 647927063: (v) => new IFC4X3$1.IfcClassificationReference(!v[0] ? null : new IFC4X3$1.IfcURIReference(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcIdentifier(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new Handle$5(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcText(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3$1.IfcIdentifier(!v[5] ? null : v[5].value)), + 3285139300: (v) => { + var _a; + return new IFC4X3$1.IfcColourRgbList((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new IFC4X3$1.IfcNormalisedRatioMeasure(p2.value) : null)) || [])); + }, + 3264961684: (v) => new IFC4X3$1.IfcColourSpecification(!v[0] ? null : new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value)), + 1485152156: (v) => { + var _a; + return new IFC4X3$1.IfcCompositeProfileDef(v[0], !v[1] ? null : new IFC4X3$1.IfcLabel(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[3] ? null : new IFC4X3$1.IfcLabel(!v[3] ? null : v[3].value)); + }, + 370225590: (v) => { + var _a; + return new IFC4X3$1.IfcConnectedFaceSet(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 1981873012: (v) => new IFC4X3$1.IfcConnectionCurveGeometry(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value)), + 45288368: (v) => new IFC4X3$1.IfcConnectionPointEccentricity(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLengthMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcLengthMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLengthMeasure(!v[4] ? null : v[4].value)), + 3050246964: (v) => new IFC4X3$1.IfcContextDependentUnit(new Handle$5(!v[0] ? null : v[0].value), v[1], new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value)), + 2889183280: (v) => new IFC4X3$1.IfcConversionBasedUnit(new Handle$5(!v[0] ? null : v[0].value), v[1], new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), new Handle$5(!v[3] ? null : v[3].value)), + 2713554722: (v) => new IFC4X3$1.IfcConversionBasedUnitWithOffset(new Handle$5(!v[0] ? null : v[0].value), v[1], new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), new Handle$5(!v[3] ? null : v[3].value), new IFC4X3$1.IfcReal(!v[4] ? null : v[4].value)), + 539742890: (v) => new IFC4X3$1.IfcCurrencyRelationship(!v[0] ? null : new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcText(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), new Handle$5(!v[3] ? null : v[3].value), new IFC4X3$1.IfcPositiveRatioMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3$1.IfcDateTime(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value)), + 3800577675: (v) => new IFC4X3$1.IfcCurveStyle(!v[0] ? null : new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : TypeInitialiser(3, v[2]), !v[3] ? null : new Handle$5(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcBoolean(!v[4] ? null : v[4].value)), + 1105321065: (v) => { + var _a; + return new IFC4X3$1.IfcCurveStyleFont(!v[0] ? null : new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 2367409068: (v) => new IFC4X3$1.IfcCurveStyleFontAndScaling(!v[0] ? null : new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), new IFC4X3$1.IfcPositiveRatioMeasure(!v[2] ? null : v[2].value)), + 3510044353: (v) => new IFC4X3$1.IfcCurveStyleFontPattern(new IFC4X3$1.IfcLengthMeasure(!v[0] ? null : v[0].value), new IFC4X3$1.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value)), + 3632507154: (v) => new IFC4X3$1.IfcDerivedProfileDef(v[0], !v[1] ? null : new IFC4X3$1.IfcLabel(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), new Handle$5(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value)), + 1154170062: (v) => { + var _a; + return new IFC4X3$1.IfcDocumentInformation(new IFC4X3$1.IfcIdentifier(!v[0] ? null : v[0].value), new IFC4X3$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcText(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcURIReference(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcText(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3$1.IfcText(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3$1.IfcText(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new Handle$5(!v[8] ? null : v[8].value), !v[9] ? null : ((_a = v[9]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[10] ? null : new IFC4X3$1.IfcDateTime(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4X3$1.IfcDateTime(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4X3$1.IfcIdentifier(!v[12] ? null : v[12].value), !v[13] ? null : new IFC4X3$1.IfcDate(!v[13] ? null : v[13].value), !v[14] ? null : new IFC4X3$1.IfcDate(!v[14] ? null : v[14].value), v[15], v[16]); + }, + 770865208: (v) => { + var _a; + return new IFC4X3$1.IfcDocumentInformationRelationship(!v[0] ? null : new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcText(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value)); + }, + 3732053477: (v) => new IFC4X3$1.IfcDocumentReference(!v[0] ? null : new IFC4X3$1.IfcURIReference(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcIdentifier(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new Handle$5(!v[4] ? null : v[4].value)), + 3900360178: (v) => new IFC4X3$1.IfcEdge(new Handle$5(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value)), + 476780140: (v) => new IFC4X3$1.IfcEdgeCurve(new Handle$5(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), new IFC4X3$1.IfcBoolean(!v[3] ? null : v[3].value)), + 211053100: (v) => new IFC4X3$1.IfcEventTime(!v[0] ? null : new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), v[1], !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcDateTime(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcDateTime(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3$1.IfcDateTime(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3$1.IfcDateTime(!v[6] ? null : v[6].value)), + 297599258: (v) => { + var _a; + return new IFC4X3$1.IfcExtendedProperties(!v[0] ? null : new IFC4X3$1.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 1437805879: (v) => { + var _a; + return new IFC4X3$1.IfcExternalReferenceRelationship(!v[0] ? null : new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcText(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 2556980723: (v) => { + var _a; + return new IFC4X3$1.IfcFace(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 1809719519: (v) => new IFC4X3$1.IfcFaceBound(new Handle$5(!v[0] ? null : v[0].value), new IFC4X3$1.IfcBoolean(!v[1] ? null : v[1].value)), + 803316827: (v) => new IFC4X3$1.IfcFaceOuterBound(new Handle$5(!v[0] ? null : v[0].value), new IFC4X3$1.IfcBoolean(!v[1] ? null : v[1].value)), + 3008276851: (v) => { + var _a; + return new IFC4X3$1.IfcFaceSurface(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new Handle$5(!v[1] ? null : v[1].value), new IFC4X3$1.IfcBoolean(!v[2] ? null : v[2].value)); + }, + 4219587988: (v) => new IFC4X3$1.IfcFailureConnectionCondition(!v[0] ? null : new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcForceMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcForceMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcForceMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcForceMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3$1.IfcForceMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3$1.IfcForceMeasure(!v[6] ? null : v[6].value)), + 738692330: (v) => { + var _a; + return new IFC4X3$1.IfcFillAreaStyle(!v[0] ? null : new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[2] ? null : new IFC4X3$1.IfcBoolean(!v[2] ? null : v[2].value)); + }, + 3448662350: (v) => new IFC4X3$1.IfcGeometricRepresentationContext(!v[0] ? null : new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcLabel(!v[1] ? null : v[1].value), new IFC4X3$1.IfcDimensionCount(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcReal(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value)), + 2453401579: (_) => new IFC4X3$1.IfcGeometricRepresentationItem(), + 4142052618: (v) => new IFC4X3$1.IfcGeometricRepresentationSubContext(!v[0] ? null : new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcLabel(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), new Handle$5(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcPositiveRatioMeasure(!v[4] ? null : v[4].value), v[5], !v[6] ? null : new IFC4X3$1.IfcLabel(!v[6] ? null : v[6].value)), + 3590301190: (v) => { + var _a; + return new IFC4X3$1.IfcGeometricSet(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 178086475: (v) => new IFC4X3$1.IfcGridPlacement(!v[0] ? null : new Handle$5(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value)), + 812098782: (v) => new IFC4X3$1.IfcHalfSpaceSolid(new Handle$5(!v[0] ? null : v[0].value), new IFC4X3$1.IfcBoolean(!v[1] ? null : v[1].value)), + 3905492369: (v) => { + var _a; + return new IFC4X3$1.IfcImageTexture(new IFC4X3$1.IfcBoolean(!v[0] ? null : v[0].value), new IFC4X3$1.IfcBoolean(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcIdentifier(!v[2] ? null : v[2].value), !v[3] ? null : new Handle$5(!v[3] ? null : v[3].value), !v[4] ? null : ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3$1.IfcIdentifier(p.value) : null)) || [], new IFC4X3$1.IfcURIReference(!v[5] ? null : v[5].value)); + }, + 3570813810: (v) => { + var _a; + return new IFC4X3$1.IfcIndexedColourMap(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcNormalisedRatioMeasure(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3$1.IfcPositiveInteger(p.value) : null)) || []); + }, + 1437953363: (v) => { + var _a; + return new IFC4X3$1.IfcIndexedTextureMap(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new Handle$5(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value)); + }, + 2133299955: (v) => { + var _a, _b; + return new IFC4X3$1.IfcIndexedTriangleTextureMap(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new Handle$5(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), !v[3] ? null : (_b = v[3]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new IFC4X3$1.IfcPositiveInteger(p2.value) : null)) || [])); + }, + 3741457305: (v) => { + var _a; + return new IFC4X3$1.IfcIrregularTimeSeries(new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcText(!v[1] ? null : v[1].value), new IFC4X3$1.IfcDateTime(!v[2] ? null : v[2].value), new IFC4X3$1.IfcDateTime(!v[3] ? null : v[3].value), v[4], v[5], !v[6] ? null : new IFC4X3$1.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : new Handle$5(!v[7] ? null : v[7].value), ((_a = v[8]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 1585845231: (v) => new IFC4X3$1.IfcLagTime(!v[0] ? null : new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), v[1], !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), TypeInitialiser(3, v[3]), v[4]), + 1402838566: (v) => new IFC4X3$1.IfcLightSource(!v[0] ? null : new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcNormalisedRatioMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcNormalisedRatioMeasure(!v[3] ? null : v[3].value)), + 125510826: (v) => new IFC4X3$1.IfcLightSourceAmbient(!v[0] ? null : new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcNormalisedRatioMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcNormalisedRatioMeasure(!v[3] ? null : v[3].value)), + 2604431987: (v) => new IFC4X3$1.IfcLightSourceDirectional(!v[0] ? null : new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcNormalisedRatioMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcNormalisedRatioMeasure(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value)), + 4266656042: (v) => new IFC4X3$1.IfcLightSourceGoniometric(!v[0] ? null : new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcNormalisedRatioMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcNormalisedRatioMeasure(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), new IFC4X3$1.IfcThermodynamicTemperatureMeasure(!v[6] ? null : v[6].value), new IFC4X3$1.IfcLuminousFluxMeasure(!v[7] ? null : v[7].value), v[8], new Handle$5(!v[9] ? null : v[9].value)), + 1520743889: (v) => new IFC4X3$1.IfcLightSourcePositional(!v[0] ? null : new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcNormalisedRatioMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcNormalisedRatioMeasure(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value), new IFC4X3$1.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC4X3$1.IfcReal(!v[6] ? null : v[6].value), new IFC4X3$1.IfcReal(!v[7] ? null : v[7].value), new IFC4X3$1.IfcReal(!v[8] ? null : v[8].value)), + 3422422726: (v) => new IFC4X3$1.IfcLightSourceSpot(!v[0] ? null : new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcNormalisedRatioMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcNormalisedRatioMeasure(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value), new IFC4X3$1.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC4X3$1.IfcReal(!v[6] ? null : v[6].value), new IFC4X3$1.IfcReal(!v[7] ? null : v[7].value), new IFC4X3$1.IfcReal(!v[8] ? null : v[8].value), new Handle$5(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4X3$1.IfcReal(!v[10] ? null : v[10].value), new IFC4X3$1.IfcPositivePlaneAngleMeasure(!v[11] ? null : v[11].value), new IFC4X3$1.IfcPositivePlaneAngleMeasure(!v[12] ? null : v[12].value)), + 388784114: (v) => new IFC4X3$1.IfcLinearPlacement(!v[0] ? null : new Handle$5(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value)), + 2624227202: (v) => new IFC4X3$1.IfcLocalPlacement(!v[0] ? null : new Handle$5(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value)), + 1008929658: (_) => new IFC4X3$1.IfcLoop(), + 2347385850: (v) => new IFC4X3$1.IfcMappedItem(new Handle$5(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value)), + 1838606355: (v) => new IFC4X3$1.IfcMaterial(new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value)), + 3708119e3: (v) => new IFC4X3$1.IfcMaterialConstituent(!v[0] ? null : new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcText(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcNormalisedRatioMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value)), + 2852063980: (v) => { + var _a; + return new IFC4X3$1.IfcMaterialConstituentSet(!v[0] ? null : new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 2022407955: (v) => { + var _a; + return new IFC4X3$1.IfcMaterialDefinitionRepresentation(!v[0] ? null : new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new Handle$5(!v[3] ? null : v[3].value)); + }, + 1303795690: (v) => new IFC4X3$1.IfcMaterialLayerSetUsage(new Handle$5(!v[0] ? null : v[0].value), v[1], v[2], new IFC4X3$1.IfcLengthMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value)), + 3079605661: (v) => new IFC4X3$1.IfcMaterialProfileSetUsage(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcCardinalPointReference(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value)), + 3404854881: (v) => new IFC4X3$1.IfcMaterialProfileSetUsageTapering(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcCardinalPointReference(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value), new Handle$5(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcCardinalPointReference(!v[4] ? null : v[4].value)), + 3265635763: (v) => { + var _a; + return new IFC4X3$1.IfcMaterialProperties(!v[0] ? null : new IFC4X3$1.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new Handle$5(!v[3] ? null : v[3].value)); + }, + 853536259: (v) => { + var _a; + return new IFC4X3$1.IfcMaterialRelationship(!v[0] ? null : new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcText(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value)); + }, + 2998442950: (v) => new IFC4X3$1.IfcMirroredProfileDef(v[0], !v[1] ? null : new IFC4X3$1.IfcLabel(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), new Handle$5(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value)), + 219451334: (v) => new IFC4X3$1.IfcObjectDefinition(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value)), + 182550632: (v) => { + var _a, _b, _c; + return new IFC4X3$1.IfcOpenCrossProfileDef(v[0], !v[1] ? null : new IFC4X3$1.IfcLabel(!v[1] ? null : v[1].value), new IFC4X3$1.IfcBoolean(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3$1.IfcNonNegativeLengthMeasure(p.value) : null)) || [], ((_b = v[4]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3$1.IfcPlaneAngleMeasure(p.value) : null)) || [], !v[5] ? null : ((_c = v[5]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3$1.IfcLabel(p.value) : null)) || [], !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value)); + }, + 2665983363: (v) => { + var _a; + return new IFC4X3$1.IfcOpenShell(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 1411181986: (v) => { + var _a; + return new IFC4X3$1.IfcOrganizationRelationship(!v[0] ? null : new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcText(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 1029017970: (v) => new IFC4X3$1.IfcOrientedEdge(new Handle$5(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), new IFC4X3$1.IfcBoolean(!v[2] ? null : v[2].value)), + 2529465313: (v) => new IFC4X3$1.IfcParameterizedProfileDef(v[0], !v[1] ? null : new IFC4X3$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value)), + 2519244187: (v) => { + var _a; + return new IFC4X3$1.IfcPath(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 3021840470: (v) => { + var _a; + return new IFC4X3$1.IfcPhysicalComplexQuantity(new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new IFC4X3$1.IfcLabel(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3$1.IfcLabel(!v[5] ? null : v[5].value)); + }, + 597895409: (v) => { + var _a, _b; + return new IFC4X3$1.IfcPixelTexture(new IFC4X3$1.IfcBoolean(!v[0] ? null : v[0].value), new IFC4X3$1.IfcBoolean(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcIdentifier(!v[2] ? null : v[2].value), !v[3] ? null : new Handle$5(!v[3] ? null : v[3].value), !v[4] ? null : ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3$1.IfcIdentifier(p.value) : null)) || [], new IFC4X3$1.IfcInteger(!v[5] ? null : v[5].value), new IFC4X3$1.IfcInteger(!v[6] ? null : v[6].value), new IFC4X3$1.IfcInteger(!v[7] ? null : v[7].value), ((_b = v[8]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3$1.IfcBinary(p.value) : null)) || []); + }, + 2004835150: (v) => new IFC4X3$1.IfcPlacement(new Handle$5(!v[0] ? null : v[0].value)), + 1663979128: (v) => new IFC4X3$1.IfcPlanarExtent(new IFC4X3$1.IfcLengthMeasure(!v[0] ? null : v[0].value), new IFC4X3$1.IfcLengthMeasure(!v[1] ? null : v[1].value)), + 2067069095: (_) => new IFC4X3$1.IfcPoint(), + 2165702409: (v) => new IFC4X3$1.IfcPointByDistanceExpression(TypeInitialiser(3, v[0]), !v[1] ? null : new IFC4X3$1.IfcLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLengthMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcLengthMeasure(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value)), + 4022376103: (v) => new IFC4X3$1.IfcPointOnCurve(new Handle$5(!v[0] ? null : v[0].value), new IFC4X3$1.IfcParameterValue(!v[1] ? null : v[1].value)), + 1423911732: (v) => new IFC4X3$1.IfcPointOnSurface(new Handle$5(!v[0] ? null : v[0].value), new IFC4X3$1.IfcParameterValue(!v[1] ? null : v[1].value), new IFC4X3$1.IfcParameterValue(!v[2] ? null : v[2].value)), + 2924175390: (v) => { + var _a; + return new IFC4X3$1.IfcPolyLoop(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 2775532180: (v) => new IFC4X3$1.IfcPolygonalBoundedHalfSpace(new Handle$5(!v[0] ? null : v[0].value), new IFC4X3$1.IfcBoolean(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), new Handle$5(!v[3] ? null : v[3].value)), + 3727388367: (v) => new IFC4X3$1.IfcPreDefinedItem(new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value)), + 3778827333: (_) => new IFC4X3$1.IfcPreDefinedProperties(), + 1775413392: (v) => new IFC4X3$1.IfcPreDefinedTextFont(new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value)), + 673634403: (v) => { + var _a; + return new IFC4X3$1.IfcProductDefinitionShape(!v[0] ? null : new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 2802850158: (v) => { + var _a; + return new IFC4X3$1.IfcProfileProperties(!v[0] ? null : new IFC4X3$1.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new Handle$5(!v[3] ? null : v[3].value)); + }, + 2598011224: (v) => new IFC4X3$1.IfcProperty(new IFC4X3$1.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcText(!v[1] ? null : v[1].value)), + 1680319473: (v) => new IFC4X3$1.IfcPropertyDefinition(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value)), + 148025276: (v) => new IFC4X3$1.IfcPropertyDependencyRelationship(!v[0] ? null : new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcText(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), new Handle$5(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcText(!v[4] ? null : v[4].value)), + 3357820518: (v) => new IFC4X3$1.IfcPropertySetDefinition(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value)), + 1482703590: (v) => new IFC4X3$1.IfcPropertyTemplateDefinition(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value)), + 2090586900: (v) => new IFC4X3$1.IfcQuantitySet(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value)), + 3615266464: (v) => new IFC4X3$1.IfcRectangleProfileDef(v[0], !v[1] ? null : new IFC4X3$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value), new IFC4X3$1.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC4X3$1.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value)), + 3413951693: (v) => { + var _a; + return new IFC4X3$1.IfcRegularTimeSeries(new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcText(!v[1] ? null : v[1].value), new IFC4X3$1.IfcDateTime(!v[2] ? null : v[2].value), new IFC4X3$1.IfcDateTime(!v[3] ? null : v[3].value), v[4], v[5], !v[6] ? null : new IFC4X3$1.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : new Handle$5(!v[7] ? null : v[7].value), new IFC4X3$1.IfcTimeMeasure(!v[8] ? null : v[8].value), ((_a = v[9]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 1580146022: (v) => new IFC4X3$1.IfcReinforcementBarProperties(new IFC4X3$1.IfcAreaMeasure(!v[0] ? null : v[0].value), new IFC4X3$1.IfcLabel(!v[1] ? null : v[1].value), v[2], !v[3] ? null : new IFC4X3$1.IfcLengthMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3$1.IfcCountMeasure(!v[5] ? null : v[5].value)), + 478536968: (v) => new IFC4X3$1.IfcRelationship(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value)), + 2943643501: (v) => { + var _a; + return new IFC4X3$1.IfcResourceApprovalRelationship(!v[0] ? null : new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new Handle$5(!v[3] ? null : v[3].value)); + }, + 1608871552: (v) => { + var _a; + return new IFC4X3$1.IfcResourceConstraintRelationship(!v[0] ? null : new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcText(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 1042787934: (v) => new IFC4X3$1.IfcResourceTime(!v[0] ? null : new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), v[1], !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcDuration(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcPositiveRatioMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3$1.IfcDateTime(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3$1.IfcDateTime(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcDuration(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4X3$1.IfcBoolean(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4X3$1.IfcDateTime(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4X3$1.IfcDuration(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4X3$1.IfcPositiveRatioMeasure(!v[12] ? null : v[12].value), !v[13] ? null : new IFC4X3$1.IfcDateTime(!v[13] ? null : v[13].value), !v[14] ? null : new IFC4X3$1.IfcDateTime(!v[14] ? null : v[14].value), !v[15] ? null : new IFC4X3$1.IfcDuration(!v[15] ? null : v[15].value), !v[16] ? null : new IFC4X3$1.IfcPositiveRatioMeasure(!v[16] ? null : v[16].value), !v[17] ? null : new IFC4X3$1.IfcPositiveRatioMeasure(!v[17] ? null : v[17].value)), + 2778083089: (v) => new IFC4X3$1.IfcRoundedRectangleProfileDef(v[0], !v[1] ? null : new IFC4X3$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value), new IFC4X3$1.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC4X3$1.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC4X3$1.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value)), + 2042790032: (v) => new IFC4X3$1.IfcSectionProperties(v[0], new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value)), + 4165799628: (v) => { + var _a; + return new IFC4X3$1.IfcSectionReinforcementProperties(new IFC4X3$1.IfcLengthMeasure(!v[0] ? null : v[0].value), new IFC4X3$1.IfcLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLengthMeasure(!v[2] ? null : v[2].value), v[3], new Handle$5(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 1509187699: (v) => { + var _a, _b; + return new IFC4X3$1.IfcSectionedSpine(new Handle$5(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], ((_b = v[2]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 823603102: (v) => new IFC4X3$1.IfcSegment(v[0]), + 4124623270: (v) => { + var _a; + return new IFC4X3$1.IfcShellBasedSurfaceModel(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 3692461612: (v) => new IFC4X3$1.IfcSimpleProperty(new IFC4X3$1.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcText(!v[1] ? null : v[1].value)), + 2609359061: (v) => new IFC4X3$1.IfcSlippageConnectionCondition(!v[0] ? null : new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLengthMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcLengthMeasure(!v[3] ? null : v[3].value)), + 723233188: (_) => new IFC4X3$1.IfcSolidModel(), + 1595516126: (v) => new IFC4X3$1.IfcStructuralLoadLinearForce(!v[0] ? null : new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcLinearForceMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLinearForceMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcLinearForceMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLinearMomentMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3$1.IfcLinearMomentMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3$1.IfcLinearMomentMeasure(!v[6] ? null : v[6].value)), + 2668620305: (v) => new IFC4X3$1.IfcStructuralLoadPlanarForce(!v[0] ? null : new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcPlanarForceMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcPlanarForceMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcPlanarForceMeasure(!v[3] ? null : v[3].value)), + 2473145415: (v) => new IFC4X3$1.IfcStructuralLoadSingleDisplacement(!v[0] ? null : new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLengthMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcLengthMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcPlaneAngleMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3$1.IfcPlaneAngleMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3$1.IfcPlaneAngleMeasure(!v[6] ? null : v[6].value)), + 1973038258: (v) => new IFC4X3$1.IfcStructuralLoadSingleDisplacementDistortion(!v[0] ? null : new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLengthMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcLengthMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcPlaneAngleMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3$1.IfcPlaneAngleMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3$1.IfcPlaneAngleMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcCurvatureMeasure(!v[7] ? null : v[7].value)), + 1597423693: (v) => new IFC4X3$1.IfcStructuralLoadSingleForce(!v[0] ? null : new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcForceMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcForceMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcForceMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcTorqueMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3$1.IfcTorqueMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3$1.IfcTorqueMeasure(!v[6] ? null : v[6].value)), + 1190533807: (v) => new IFC4X3$1.IfcStructuralLoadSingleForceWarping(!v[0] ? null : new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcForceMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcForceMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcForceMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcTorqueMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3$1.IfcTorqueMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3$1.IfcTorqueMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcWarpingMomentMeasure(!v[7] ? null : v[7].value)), + 2233826070: (v) => new IFC4X3$1.IfcSubedge(new Handle$5(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value)), + 2513912981: (_) => new IFC4X3$1.IfcSurface(), + 1878645084: (v) => new IFC4X3$1.IfcSurfaceStyleRendering(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcNormalisedRatioMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value), !v[3] ? null : new Handle$5(!v[3] ? null : v[3].value), !v[4] ? null : new Handle$5(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : TypeInitialiser(3, v[7]), v[8]), + 2247615214: (v) => new IFC4X3$1.IfcSweptAreaSolid(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value)), + 1260650574: (v) => new IFC4X3$1.IfcSweptDiskSolid(new Handle$5(!v[0] ? null : v[0].value), new IFC4X3$1.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcParameterValue(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcParameterValue(!v[4] ? null : v[4].value)), + 1096409881: (v) => new IFC4X3$1.IfcSweptDiskSolidPolygonal(new Handle$5(!v[0] ? null : v[0].value), new IFC4X3$1.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcParameterValue(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcParameterValue(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3$1.IfcNonNegativeLengthMeasure(!v[5] ? null : v[5].value)), + 230924584: (v) => new IFC4X3$1.IfcSweptSurface(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value)), + 3071757647: (v) => new IFC4X3$1.IfcTShapeProfileDef(v[0], !v[1] ? null : new IFC4X3$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value), new IFC4X3$1.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC4X3$1.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC4X3$1.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC4X3$1.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcNonNegativeLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcNonNegativeLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4X3$1.IfcNonNegativeLengthMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4X3$1.IfcPlaneAngleMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4X3$1.IfcPlaneAngleMeasure(!v[11] ? null : v[11].value)), + 901063453: (_) => new IFC4X3$1.IfcTessellatedItem(), + 4282788508: (v) => new IFC4X3$1.IfcTextLiteral(new IFC4X3$1.IfcPresentableText(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), v[2]), + 3124975700: (v) => new IFC4X3$1.IfcTextLiteralWithExtent(new IFC4X3$1.IfcPresentableText(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), v[2], new Handle$5(!v[3] ? null : v[3].value), new IFC4X3$1.IfcBoxAlignment(!v[4] ? null : v[4].value)), + 1983826977: (v) => { + var _a; + return new IFC4X3$1.IfcTextStyleFontModel(new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3$1.IfcTextFontName(p.value) : null)) || [], !v[2] ? null : new IFC4X3$1.IfcFontStyle(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcFontVariant(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcFontWeight(!v[4] ? null : v[4].value), TypeInitialiser(3, v[5])); + }, + 2715220739: (v) => new IFC4X3$1.IfcTrapeziumProfileDef(v[0], !v[1] ? null : new IFC4X3$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value), new IFC4X3$1.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC4X3$1.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC4X3$1.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC4X3$1.IfcLengthMeasure(!v[6] ? null : v[6].value)), + 1628702193: (v) => { + var _a; + return new IFC4X3$1.IfcTypeObject(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 3736923433: (v) => { + var _a; + return new IFC4X3$1.IfcTypeProcess(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : new IFC4X3$1.IfcIdentifier(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcText(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value)); + }, + 2347495698: (v) => { + var _a, _b; + return new IFC4X3$1.IfcTypeProduct(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value)); + }, + 3698973494: (v) => { + var _a; + return new IFC4X3$1.IfcTypeResource(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : new IFC4X3$1.IfcIdentifier(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcText(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value)); + }, + 427810014: (v) => new IFC4X3$1.IfcUShapeProfileDef(v[0], !v[1] ? null : new IFC4X3$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value), new IFC4X3$1.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC4X3$1.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC4X3$1.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC4X3$1.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcNonNegativeLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcNonNegativeLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4X3$1.IfcPlaneAngleMeasure(!v[9] ? null : v[9].value)), + 1417489154: (v) => new IFC4X3$1.IfcVector(new Handle$5(!v[0] ? null : v[0].value), new IFC4X3$1.IfcLengthMeasure(!v[1] ? null : v[1].value)), + 2759199220: (v) => new IFC4X3$1.IfcVertexLoop(new Handle$5(!v[0] ? null : v[0].value)), + 2543172580: (v) => new IFC4X3$1.IfcZShapeProfileDef(v[0], !v[1] ? null : new IFC4X3$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value), new IFC4X3$1.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC4X3$1.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC4X3$1.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC4X3$1.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcNonNegativeLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcNonNegativeLengthMeasure(!v[8] ? null : v[8].value)), + 3406155212: (v) => { + var _a; + return new IFC4X3$1.IfcAdvancedFace(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new Handle$5(!v[1] ? null : v[1].value), new IFC4X3$1.IfcBoolean(!v[2] ? null : v[2].value)); + }, + 669184980: (v) => { + var _a; + return new IFC4X3$1.IfcAnnotationFillArea(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 3207858831: (v) => new IFC4X3$1.IfcAsymmetricIShapeProfileDef(v[0], !v[1] ? null : new IFC4X3$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value), new IFC4X3$1.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC4X3$1.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC4X3$1.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC4X3$1.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcNonNegativeLengthMeasure(!v[7] ? null : v[7].value), new IFC4X3$1.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4X3$1.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4X3$1.IfcNonNegativeLengthMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4X3$1.IfcNonNegativeLengthMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4X3$1.IfcPlaneAngleMeasure(!v[12] ? null : v[12].value), !v[13] ? null : new IFC4X3$1.IfcNonNegativeLengthMeasure(!v[13] ? null : v[13].value), !v[14] ? null : new IFC4X3$1.IfcPlaneAngleMeasure(!v[14] ? null : v[14].value)), + 4261334040: (v) => new IFC4X3$1.IfcAxis1Placement(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value)), + 3125803723: (v) => new IFC4X3$1.IfcAxis2Placement2D(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value)), + 2740243338: (v) => new IFC4X3$1.IfcAxis2Placement3D(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value)), + 3425423356: (v) => new IFC4X3$1.IfcAxis2PlacementLinear(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value)), + 2736907675: (v) => new IFC4X3$1.IfcBooleanResult(v[0], new Handle$5(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value)), + 4182860854: (_) => new IFC4X3$1.IfcBoundedSurface(), + 2581212453: (v) => new IFC4X3$1.IfcBoundingBox(new Handle$5(!v[0] ? null : v[0].value), new IFC4X3$1.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), new IFC4X3$1.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value), new IFC4X3$1.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value)), + 2713105998: (v) => new IFC4X3$1.IfcBoxedHalfSpace(new Handle$5(!v[0] ? null : v[0].value), new IFC4X3$1.IfcBoolean(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value)), + 2898889636: (v) => new IFC4X3$1.IfcCShapeProfileDef(v[0], !v[1] ? null : new IFC4X3$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value), new IFC4X3$1.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC4X3$1.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC4X3$1.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC4X3$1.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcNonNegativeLengthMeasure(!v[7] ? null : v[7].value)), + 1123145078: (v) => { + var _a; + return new IFC4X3$1.IfcCartesianPoint(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3$1.IfcLengthMeasure(p.value) : null)) || []); + }, + 574549367: (_) => new IFC4X3$1.IfcCartesianPointList(), + 1675464909: (v) => { + var _a, _b; + return new IFC4X3$1.IfcCartesianPointList2D((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new IFC4X3$1.IfcLengthMeasure(p2.value) : null)) || []), !v[1] ? null : ((_b = v[1]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3$1.IfcLabel(p.value) : null)) || []); + }, + 2059837836: (v) => { + var _a, _b; + return new IFC4X3$1.IfcCartesianPointList3D((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new IFC4X3$1.IfcLengthMeasure(p2.value) : null)) || []), !v[1] ? null : ((_b = v[1]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3$1.IfcLabel(p.value) : null)) || []); + }, + 59481748: (v) => new IFC4X3$1.IfcCartesianTransformationOperator(!v[0] ? null : new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcReal(!v[3] ? null : v[3].value)), + 3749851601: (v) => new IFC4X3$1.IfcCartesianTransformationOperator2D(!v[0] ? null : new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcReal(!v[3] ? null : v[3].value)), + 3486308946: (v) => new IFC4X3$1.IfcCartesianTransformationOperator2DnonUniform(!v[0] ? null : new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcReal(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcReal(!v[4] ? null : v[4].value)), + 3331915920: (v) => new IFC4X3$1.IfcCartesianTransformationOperator3D(!v[0] ? null : new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcReal(!v[3] ? null : v[3].value), !v[4] ? null : new Handle$5(!v[4] ? null : v[4].value)), + 1416205885: (v) => new IFC4X3$1.IfcCartesianTransformationOperator3DnonUniform(!v[0] ? null : new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcReal(!v[3] ? null : v[3].value), !v[4] ? null : new Handle$5(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3$1.IfcReal(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3$1.IfcReal(!v[6] ? null : v[6].value)), + 1383045692: (v) => new IFC4X3$1.IfcCircleProfileDef(v[0], !v[1] ? null : new IFC4X3$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value), new IFC4X3$1.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value)), + 2205249479: (v) => { + var _a; + return new IFC4X3$1.IfcClosedShell(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 776857604: (v) => new IFC4X3$1.IfcColourRgb(!v[0] ? null : new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value), new IFC4X3$1.IfcNormalisedRatioMeasure(!v[1] ? null : v[1].value), new IFC4X3$1.IfcNormalisedRatioMeasure(!v[2] ? null : v[2].value), new IFC4X3$1.IfcNormalisedRatioMeasure(!v[3] ? null : v[3].value)), + 2542286263: (v) => { + var _a; + return new IFC4X3$1.IfcComplexProperty(new IFC4X3$1.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcText(!v[1] ? null : v[1].value), new IFC4X3$1.IfcIdentifier(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 2485617015: (v) => new IFC4X3$1.IfcCompositeCurveSegment(v[0], new IFC4X3$1.IfcBoolean(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value)), + 2574617495: (v) => { + var _a, _b; + return new IFC4X3$1.IfcConstructionResourceType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : new IFC4X3$1.IfcIdentifier(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcText(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : ((_b = v[9]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[10] ? null : new Handle$5(!v[10] ? null : v[10].value)); + }, + 3419103109: (v) => { + var _a; + return new IFC4X3$1.IfcContext(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3$1.IfcLabel(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3$1.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[8] ? null : new Handle$5(!v[8] ? null : v[8].value)); + }, + 1815067380: (v) => { + var _a, _b; + return new IFC4X3$1.IfcCrewResourceType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : new IFC4X3$1.IfcIdentifier(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcText(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : ((_b = v[9]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[10] ? null : new Handle$5(!v[10] ? null : v[10].value), v[11]); + }, + 2506170314: (v) => new IFC4X3$1.IfcCsgPrimitive3D(new Handle$5(!v[0] ? null : v[0].value)), + 2147822146: (v) => new IFC4X3$1.IfcCsgSolid(new Handle$5(!v[0] ? null : v[0].value)), + 2601014836: (_) => new IFC4X3$1.IfcCurve(), + 2827736869: (v) => { + var _a; + return new IFC4X3$1.IfcCurveBoundedPlane(new Handle$5(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 2629017746: (v) => { + var _a; + return new IFC4X3$1.IfcCurveBoundedSurface(new Handle$5(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new IFC4X3$1.IfcBoolean(!v[2] ? null : v[2].value)); + }, + 4212018352: (v) => new IFC4X3$1.IfcCurveSegment(v[0], new Handle$5(!v[1] ? null : v[1].value), TypeInitialiser(3, v[2]), TypeInitialiser(3, v[3]), new Handle$5(!v[4] ? null : v[4].value)), + 32440307: (v) => { + var _a; + return new IFC4X3$1.IfcDirection(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3$1.IfcReal(p.value) : null)) || []); + }, + 593015953: (v) => new IFC4X3$1.IfcDirectrixCurveSweptAreaSolid(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), !v[3] ? null : TypeInitialiser(3, v[3]), !v[4] ? null : TypeInitialiser(3, v[4])), + 1472233963: (v) => { + var _a; + return new IFC4X3$1.IfcEdgeLoop(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 1883228015: (v) => { + var _a; + return new IFC4X3$1.IfcElementQuantity(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 339256511: (v) => { + var _a, _b; + return new IFC4X3$1.IfcElementType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value)); + }, + 2777663545: (v) => new IFC4X3$1.IfcElementarySurface(new Handle$5(!v[0] ? null : v[0].value)), + 2835456948: (v) => new IFC4X3$1.IfcEllipseProfileDef(v[0], !v[1] ? null : new IFC4X3$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value), new IFC4X3$1.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC4X3$1.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value)), + 4024345920: (v) => { + var _a; + return new IFC4X3$1.IfcEventType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : new IFC4X3$1.IfcIdentifier(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcText(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9], v[10], !v[11] ? null : new IFC4X3$1.IfcLabel(!v[11] ? null : v[11].value)); + }, + 477187591: (v) => new IFC4X3$1.IfcExtrudedAreaSolid(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), new IFC4X3$1.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value)), + 2804161546: (v) => new IFC4X3$1.IfcExtrudedAreaSolidTapered(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), new IFC4X3$1.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value)), + 2047409740: (v) => { + var _a; + return new IFC4X3$1.IfcFaceBasedSurfaceModel(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 374418227: (v) => new IFC4X3$1.IfcFillAreaStyleHatching(new Handle$5(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value), !v[3] ? null : new Handle$5(!v[3] ? null : v[3].value), new IFC4X3$1.IfcPlaneAngleMeasure(!v[4] ? null : v[4].value)), + 315944413: (v) => { + var _a, _b; + return new IFC4X3$1.IfcFillAreaStyleTiles(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], ((_b = v[1]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new IFC4X3$1.IfcPositiveRatioMeasure(!v[2] ? null : v[2].value)); + }, + 2652556860: (v) => new IFC4X3$1.IfcFixedReferenceSweptAreaSolid(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), !v[3] ? null : TypeInitialiser(3, v[3]), !v[4] ? null : TypeInitialiser(3, v[4]), new Handle$5(!v[5] ? null : v[5].value)), + 4238390223: (v) => { + var _a, _b; + return new IFC4X3$1.IfcFurnishingElementType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value)); + }, + 1268542332: (v) => { + var _a, _b; + return new IFC4X3$1.IfcFurnitureType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9], v[10]); + }, + 4095422895: (v) => { + var _a, _b; + return new IFC4X3$1.IfcGeographicElementType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 987898635: (v) => { + var _a; + return new IFC4X3$1.IfcGeometricCurveSet(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 1484403080: (v) => new IFC4X3$1.IfcIShapeProfileDef(v[0], !v[1] ? null : new IFC4X3$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value), new IFC4X3$1.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC4X3$1.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC4X3$1.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC4X3$1.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcNonNegativeLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcNonNegativeLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4X3$1.IfcPlaneAngleMeasure(!v[9] ? null : v[9].value)), + 178912537: (v) => { + var _a; + return new IFC4X3$1.IfcIndexedPolygonalFace(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3$1.IfcPositiveInteger(p.value) : null)) || []); + }, + 2294589976: (v) => { + var _a, _b; + return new IFC4X3$1.IfcIndexedPolygonalFaceWithVoids(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3$1.IfcPositiveInteger(p.value) : null)) || [], (_b = v[1]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new IFC4X3$1.IfcPositiveInteger(p2.value) : null)) || [])); + }, + 3465909080: (v) => { + var _a, _b; + return new IFC4X3$1.IfcIndexedPolygonalTextureMap(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new Handle$5(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), ((_b = v[3]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 572779678: (v) => new IFC4X3$1.IfcLShapeProfileDef(v[0], !v[1] ? null : new IFC4X3$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value), new IFC4X3$1.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC4X3$1.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3$1.IfcNonNegativeLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcNonNegativeLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcPlaneAngleMeasure(!v[8] ? null : v[8].value)), + 428585644: (v) => { + var _a, _b; + return new IFC4X3$1.IfcLaborResourceType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : new IFC4X3$1.IfcIdentifier(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcText(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : ((_b = v[9]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[10] ? null : new Handle$5(!v[10] ? null : v[10].value), v[11]); + }, + 1281925730: (v) => new IFC4X3$1.IfcLine(new Handle$5(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value)), + 1425443689: (v) => new IFC4X3$1.IfcManifoldSolidBrep(new Handle$5(!v[0] ? null : v[0].value)), + 3888040117: (v) => new IFC4X3$1.IfcObject(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value)), + 590820931: (v) => new IFC4X3$1.IfcOffsetCurve(new Handle$5(!v[0] ? null : v[0].value)), + 3388369263: (v) => new IFC4X3$1.IfcOffsetCurve2D(new Handle$5(!v[0] ? null : v[0].value), new IFC4X3$1.IfcLengthMeasure(!v[1] ? null : v[1].value), new IFC4X3$1.IfcLogical(!v[2] ? null : v[2].value)), + 3505215534: (v) => new IFC4X3$1.IfcOffsetCurve3D(new Handle$5(!v[0] ? null : v[0].value), new IFC4X3$1.IfcLengthMeasure(!v[1] ? null : v[1].value), new IFC4X3$1.IfcLogical(!v[2] ? null : v[2].value), new Handle$5(!v[3] ? null : v[3].value)), + 2485787929: (v) => { + var _a; + return new IFC4X3$1.IfcOffsetCurveByDistances(new Handle$5(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value)); + }, + 1682466193: (v) => new IFC4X3$1.IfcPcurve(new Handle$5(!v[0] ? null : v[0].value), new Handle$5(!v[1] ? null : v[1].value)), + 603570806: (v) => new IFC4X3$1.IfcPlanarBox(new IFC4X3$1.IfcLengthMeasure(!v[0] ? null : v[0].value), new IFC4X3$1.IfcLengthMeasure(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value)), + 220341763: (v) => new IFC4X3$1.IfcPlane(new Handle$5(!v[0] ? null : v[0].value)), + 3381221214: (v) => { + var _a, _b, _c; + return new IFC4X3$1.IfcPolynomialCurve(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3$1.IfcReal(p.value) : null)) || [], !v[2] ? null : ((_b = v[2]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3$1.IfcReal(p.value) : null)) || [], !v[3] ? null : ((_c = v[3]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3$1.IfcReal(p.value) : null)) || []); + }, + 759155922: (v) => new IFC4X3$1.IfcPreDefinedColour(new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value)), + 2559016684: (v) => new IFC4X3$1.IfcPreDefinedCurveFont(new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value)), + 3967405729: (v) => new IFC4X3$1.IfcPreDefinedPropertySet(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value)), + 569719735: (v) => { + var _a; + return new IFC4X3$1.IfcProcedureType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : new IFC4X3$1.IfcIdentifier(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcText(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 2945172077: (v) => new IFC4X3$1.IfcProcess(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3$1.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3$1.IfcText(!v[6] ? null : v[6].value)), + 4208778838: (v) => new IFC4X3$1.IfcProduct(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value)), + 103090709: (v) => { + var _a; + return new IFC4X3$1.IfcProject(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3$1.IfcLabel(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3$1.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[8] ? null : new Handle$5(!v[8] ? null : v[8].value)); + }, + 653396225: (v) => { + var _a; + return new IFC4X3$1.IfcProjectLibrary(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3$1.IfcLabel(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3$1.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[8] ? null : new Handle$5(!v[8] ? null : v[8].value)); + }, + 871118103: (v) => new IFC4X3$1.IfcPropertyBoundedValue(new IFC4X3$1.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : TypeInitialiser(3, v[2]), !v[3] ? null : TypeInitialiser(3, v[3]), !v[4] ? null : new Handle$5(!v[4] ? null : v[4].value), !v[5] ? null : TypeInitialiser(3, v[5])), + 4166981789: (v) => { + var _a; + return new IFC4X3$1.IfcPropertyEnumeratedValue(new IFC4X3$1.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(3, p) : null)) || [], !v[3] ? null : new Handle$5(!v[3] ? null : v[3].value)); + }, + 2752243245: (v) => { + var _a; + return new IFC4X3$1.IfcPropertyListValue(new IFC4X3$1.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(3, p) : null)) || [], !v[3] ? null : new Handle$5(!v[3] ? null : v[3].value)); + }, + 941946838: (v) => new IFC4X3$1.IfcPropertyReferenceValue(new IFC4X3$1.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcText(!v[2] ? null : v[2].value), !v[3] ? null : new Handle$5(!v[3] ? null : v[3].value)), + 1451395588: (v) => { + var _a; + return new IFC4X3$1.IfcPropertySet(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 492091185: (v) => { + var _a; + return new IFC4X3$1.IfcPropertySetTemplate(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), v[4], !v[5] ? null : new IFC4X3$1.IfcIdentifier(!v[5] ? null : v[5].value), ((_a = v[6]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 3650150729: (v) => new IFC4X3$1.IfcPropertySingleValue(new IFC4X3$1.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : TypeInitialiser(3, v[2]), !v[3] ? null : new Handle$5(!v[3] ? null : v[3].value)), + 110355661: (v) => { + var _a, _b; + return new IFC4X3$1.IfcPropertyTableValue(new IFC4X3$1.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(3, p) : null)) || [], !v[3] ? null : ((_b = v[3]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(3, p) : null)) || [], !v[4] ? null : new IFC4X3$1.IfcText(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), v[7]); + }, + 3521284610: (v) => new IFC4X3$1.IfcPropertyTemplate(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value)), + 2770003689: (v) => new IFC4X3$1.IfcRectangleHollowProfileDef(v[0], !v[1] ? null : new IFC4X3$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value), new IFC4X3$1.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC4X3$1.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC4X3$1.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3$1.IfcNonNegativeLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcNonNegativeLengthMeasure(!v[7] ? null : v[7].value)), + 2798486643: (v) => new IFC4X3$1.IfcRectangularPyramid(new Handle$5(!v[0] ? null : v[0].value), new IFC4X3$1.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), new IFC4X3$1.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value), new IFC4X3$1.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value)), + 3454111270: (v) => new IFC4X3$1.IfcRectangularTrimmedSurface(new Handle$5(!v[0] ? null : v[0].value), new IFC4X3$1.IfcParameterValue(!v[1] ? null : v[1].value), new IFC4X3$1.IfcParameterValue(!v[2] ? null : v[2].value), new IFC4X3$1.IfcParameterValue(!v[3] ? null : v[3].value), new IFC4X3$1.IfcParameterValue(!v[4] ? null : v[4].value), new IFC4X3$1.IfcBoolean(!v[5] ? null : v[5].value), new IFC4X3$1.IfcBoolean(!v[6] ? null : v[6].value)), + 3765753017: (v) => { + var _a; + return new IFC4X3$1.IfcReinforcementDefinitionProperties(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 3939117080: (v) => { + var _a; + return new IFC4X3$1.IfcRelAssigns(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], v[5]); + }, + 1683148259: (v) => { + var _a; + return new IFC4X3$1.IfcRelAssignsToActor(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], v[5], new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new Handle$5(!v[7] ? null : v[7].value)); + }, + 2495723537: (v) => { + var _a; + return new IFC4X3$1.IfcRelAssignsToControl(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], v[5], new Handle$5(!v[6] ? null : v[6].value)); + }, + 1307041759: (v) => { + var _a; + return new IFC4X3$1.IfcRelAssignsToGroup(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], v[5], new Handle$5(!v[6] ? null : v[6].value)); + }, + 1027710054: (v) => { + var _a; + return new IFC4X3$1.IfcRelAssignsToGroupByFactor(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], v[5], new Handle$5(!v[6] ? null : v[6].value), new IFC4X3$1.IfcRatioMeasure(!v[7] ? null : v[7].value)); + }, + 4278684876: (v) => { + var _a; + return new IFC4X3$1.IfcRelAssignsToProcess(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], v[5], new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new Handle$5(!v[7] ? null : v[7].value)); + }, + 2857406711: (v) => { + var _a; + return new IFC4X3$1.IfcRelAssignsToProduct(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], v[5], new Handle$5(!v[6] ? null : v[6].value)); + }, + 205026976: (v) => { + var _a; + return new IFC4X3$1.IfcRelAssignsToResource(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], v[5], new Handle$5(!v[6] ? null : v[6].value)); + }, + 1865459582: (v) => { + var _a; + return new IFC4X3$1.IfcRelAssociates(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 4095574036: (v) => { + var _a; + return new IFC4X3$1.IfcRelAssociatesApproval(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new Handle$5(!v[5] ? null : v[5].value)); + }, + 919958153: (v) => { + var _a; + return new IFC4X3$1.IfcRelAssociatesClassification(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new Handle$5(!v[5] ? null : v[5].value)); + }, + 2728634034: (v) => { + var _a; + return new IFC4X3$1.IfcRelAssociatesConstraint(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[5] ? null : new IFC4X3$1.IfcLabel(!v[5] ? null : v[5].value), new Handle$5(!v[6] ? null : v[6].value)); + }, + 982818633: (v) => { + var _a; + return new IFC4X3$1.IfcRelAssociatesDocument(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new Handle$5(!v[5] ? null : v[5].value)); + }, + 3840914261: (v) => { + var _a; + return new IFC4X3$1.IfcRelAssociatesLibrary(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new Handle$5(!v[5] ? null : v[5].value)); + }, + 2655215786: (v) => { + var _a; + return new IFC4X3$1.IfcRelAssociatesMaterial(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new Handle$5(!v[5] ? null : v[5].value)); + }, + 1033248425: (v) => { + var _a; + return new IFC4X3$1.IfcRelAssociatesProfileDef(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new Handle$5(!v[5] ? null : v[5].value)); + }, + 826625072: (v) => new IFC4X3$1.IfcRelConnects(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value)), + 1204542856: (v) => new IFC4X3$1.IfcRelConnectsElements(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new Handle$5(!v[4] ? null : v[4].value), new Handle$5(!v[5] ? null : v[5].value), new Handle$5(!v[6] ? null : v[6].value)), + 3945020480: (v) => { + var _a, _b; + return new IFC4X3$1.IfcRelConnectsPathElements(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new Handle$5(!v[4] ? null : v[4].value), new Handle$5(!v[5] ? null : v[5].value), new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3$1.IfcInteger(p.value) : null)) || [], !v[8] ? null : ((_b = v[8]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3$1.IfcInteger(p.value) : null)) || [], v[9], v[10]); + }, + 4201705270: (v) => new IFC4X3$1.IfcRelConnectsPortToElement(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value), new Handle$5(!v[5] ? null : v[5].value)), + 3190031847: (v) => new IFC4X3$1.IfcRelConnectsPorts(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value), new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value)), + 2127690289: (v) => new IFC4X3$1.IfcRelConnectsStructuralActivity(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value), new Handle$5(!v[5] ? null : v[5].value)), + 1638771189: (v) => new IFC4X3$1.IfcRelConnectsStructuralMember(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value), new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new Handle$5(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new Handle$5(!v[9] ? null : v[9].value)), + 504942748: (v) => new IFC4X3$1.IfcRelConnectsWithEccentricity(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value), new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new Handle$5(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new Handle$5(!v[9] ? null : v[9].value), new Handle$5(!v[10] ? null : v[10].value)), + 3678494232: (v) => { + var _a; + return new IFC4X3$1.IfcRelConnectsWithRealizingElements(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new Handle$5(!v[4] ? null : v[4].value), new Handle$5(!v[5] ? null : v[5].value), new Handle$5(!v[6] ? null : v[6].value), ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value)); + }, + 3242617779: (v) => { + var _a; + return new IFC4X3$1.IfcRelContainedInSpatialStructure(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new Handle$5(!v[5] ? null : v[5].value)); + }, + 886880790: (v) => { + var _a; + return new IFC4X3$1.IfcRelCoversBldgElements(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 2802773753: (v) => { + var _a; + return new IFC4X3$1.IfcRelCoversSpaces(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 2565941209: (v) => { + var _a; + return new IFC4X3$1.IfcRelDeclares(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 2551354335: (v) => new IFC4X3$1.IfcRelDecomposes(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value)), + 693640335: (v) => new IFC4X3$1.IfcRelDefines(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value)), + 1462361463: (v) => { + var _a; + return new IFC4X3$1.IfcRelDefinesByObject(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new Handle$5(!v[5] ? null : v[5].value)); + }, + 4186316022: (v) => { + var _a; + return new IFC4X3$1.IfcRelDefinesByProperties(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new Handle$5(!v[5] ? null : v[5].value)); + }, + 307848117: (v) => { + var _a; + return new IFC4X3$1.IfcRelDefinesByTemplate(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new Handle$5(!v[5] ? null : v[5].value)); + }, + 781010003: (v) => { + var _a; + return new IFC4X3$1.IfcRelDefinesByType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new Handle$5(!v[5] ? null : v[5].value)); + }, + 3940055652: (v) => new IFC4X3$1.IfcRelFillsElement(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value), new Handle$5(!v[5] ? null : v[5].value)), + 279856033: (v) => { + var _a; + return new IFC4X3$1.IfcRelFlowControlElements(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new Handle$5(!v[5] ? null : v[5].value)); + }, + 427948657: (v) => new IFC4X3$1.IfcRelInterferesElements(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value), new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new Handle$5(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcIdentifier(!v[8] ? null : v[8].value), new IFC4X3$1.IfcLogical(!v[9] ? null : v[9].value)), + 3268803585: (v) => { + var _a; + return new IFC4X3$1.IfcRelNests(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 1441486842: (v) => { + var _a; + return new IFC4X3$1.IfcRelPositions(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 750771296: (v) => new IFC4X3$1.IfcRelProjectsElement(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value), new Handle$5(!v[5] ? null : v[5].value)), + 1245217292: (v) => { + var _a; + return new IFC4X3$1.IfcRelReferencedInSpatialStructure(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new Handle$5(!v[5] ? null : v[5].value)); + }, + 4122056220: (v) => new IFC4X3$1.IfcRelSequence(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value), new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), v[7], !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value)), + 366585022: (v) => { + var _a; + return new IFC4X3$1.IfcRelServicesBuildings(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 3451746338: (v) => new IFC4X3$1.IfcRelSpaceBoundary(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value), new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), v[7], v[8]), + 3523091289: (v) => new IFC4X3$1.IfcRelSpaceBoundary1stLevel(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value), new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), v[7], v[8], !v[9] ? null : new Handle$5(!v[9] ? null : v[9].value)), + 1521410863: (v) => new IFC4X3$1.IfcRelSpaceBoundary2ndLevel(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value), new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), v[7], v[8], !v[9] ? null : new Handle$5(!v[9] ? null : v[9].value), !v[10] ? null : new Handle$5(!v[10] ? null : v[10].value)), + 1401173127: (v) => new IFC4X3$1.IfcRelVoidsElement(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value), new Handle$5(!v[5] ? null : v[5].value)), + 816062949: (v) => new IFC4X3$1.IfcReparametrisedCompositeCurveSegment(v[0], new IFC4X3$1.IfcBoolean(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), new IFC4X3$1.IfcParameterValue(!v[3] ? null : v[3].value)), + 2914609552: (v) => new IFC4X3$1.IfcResource(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3$1.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3$1.IfcText(!v[6] ? null : v[6].value)), + 1856042241: (v) => new IFC4X3$1.IfcRevolvedAreaSolid(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), new IFC4X3$1.IfcPlaneAngleMeasure(!v[3] ? null : v[3].value)), + 3243963512: (v) => new IFC4X3$1.IfcRevolvedAreaSolidTapered(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), new IFC4X3$1.IfcPlaneAngleMeasure(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value)), + 4158566097: (v) => new IFC4X3$1.IfcRightCircularCone(new Handle$5(!v[0] ? null : v[0].value), new IFC4X3$1.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), new IFC4X3$1.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value)), + 3626867408: (v) => new IFC4X3$1.IfcRightCircularCylinder(new Handle$5(!v[0] ? null : v[0].value), new IFC4X3$1.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), new IFC4X3$1.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value)), + 1862484736: (v) => { + var _a; + return new IFC4X3$1.IfcSectionedSolid(new Handle$5(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 1290935644: (v) => { + var _a, _b; + return new IFC4X3$1.IfcSectionedSolidHorizontal(new Handle$5(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], ((_b = v[2]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 1356537516: (v) => { + var _a, _b; + return new IFC4X3$1.IfcSectionedSurface(new Handle$5(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], ((_b = v[2]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 3663146110: (v) => new IFC4X3$1.IfcSimplePropertyTemplate(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), v[4], !v[5] ? null : new IFC4X3$1.IfcLabel(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3$1.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : new Handle$5(!v[7] ? null : v[7].value), !v[8] ? null : new Handle$5(!v[8] ? null : v[8].value), !v[9] ? null : new Handle$5(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4X3$1.IfcLabel(!v[10] ? null : v[10].value), v[11]), + 1412071761: (v) => new IFC4X3$1.IfcSpatialElement(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value)), + 710998568: (v) => { + var _a, _b; + return new IFC4X3$1.IfcSpatialElementType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value)); + }, + 2706606064: (v) => new IFC4X3$1.IfcSpatialStructureElement(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), v[8]), + 3893378262: (v) => { + var _a, _b; + return new IFC4X3$1.IfcSpatialStructureElementType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value)); + }, + 463610769: (v) => new IFC4X3$1.IfcSpatialZone(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), v[8]), + 2481509218: (v) => { + var _a, _b; + return new IFC4X3$1.IfcSpatialZoneType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9], !v[10] ? null : new IFC4X3$1.IfcLabel(!v[10] ? null : v[10].value)); + }, + 451544542: (v) => new IFC4X3$1.IfcSphere(new Handle$5(!v[0] ? null : v[0].value), new IFC4X3$1.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value)), + 4015995234: (v) => new IFC4X3$1.IfcSphericalSurface(new Handle$5(!v[0] ? null : v[0].value), new IFC4X3$1.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value)), + 2735484536: (v) => new IFC4X3$1.IfcSpiral(!v[0] ? null : new Handle$5(!v[0] ? null : v[0].value)), + 3544373492: (v) => new IFC4X3$1.IfcStructuralActivity(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), new Handle$5(!v[7] ? null : v[7].value), v[8]), + 3136571912: (v) => new IFC4X3$1.IfcStructuralItem(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value)), + 530289379: (v) => new IFC4X3$1.IfcStructuralMember(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value)), + 3689010777: (v) => new IFC4X3$1.IfcStructuralReaction(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), new Handle$5(!v[7] ? null : v[7].value), v[8]), + 3979015343: (v) => new IFC4X3$1.IfcStructuralSurfaceMember(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), v[7], !v[8] ? null : new IFC4X3$1.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value)), + 2218152070: (v) => new IFC4X3$1.IfcStructuralSurfaceMemberVarying(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), v[7], !v[8] ? null : new IFC4X3$1.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value)), + 603775116: (v) => new IFC4X3$1.IfcStructuralSurfaceReaction(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), new Handle$5(!v[7] ? null : v[7].value), v[8], v[9]), + 4095615324: (v) => { + var _a, _b; + return new IFC4X3$1.IfcSubContractResourceType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : new IFC4X3$1.IfcIdentifier(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcText(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : ((_b = v[9]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[10] ? null : new Handle$5(!v[10] ? null : v[10].value), v[11]); + }, + 699246055: (v) => { + var _a; + return new IFC4X3$1.IfcSurfaceCurve(new Handle$5(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], v[2]); + }, + 2028607225: (v) => new IFC4X3$1.IfcSurfaceCurveSweptAreaSolid(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), !v[3] ? null : TypeInitialiser(3, v[3]), !v[4] ? null : TypeInitialiser(3, v[4]), new Handle$5(!v[5] ? null : v[5].value)), + 2809605785: (v) => new IFC4X3$1.IfcSurfaceOfLinearExtrusion(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), new IFC4X3$1.IfcLengthMeasure(!v[3] ? null : v[3].value)), + 4124788165: (v) => new IFC4X3$1.IfcSurfaceOfRevolution(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value)), + 1580310250: (v) => { + var _a, _b; + return new IFC4X3$1.IfcSystemFurnitureElementType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 3473067441: (v) => new IFC4X3$1.IfcTask(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3$1.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3$1.IfcText(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), new IFC4X3$1.IfcBoolean(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4X3$1.IfcInteger(!v[10] ? null : v[10].value), !v[11] ? null : new Handle$5(!v[11] ? null : v[11].value), v[12]), + 3206491090: (v) => { + var _a; + return new IFC4X3$1.IfcTaskType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : new IFC4X3$1.IfcIdentifier(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcText(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9], !v[10] ? null : new IFC4X3$1.IfcLabel(!v[10] ? null : v[10].value)); + }, + 2387106220: (v) => new IFC4X3$1.IfcTessellatedFaceSet(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcBoolean(!v[1] ? null : v[1].value)), + 782932809: (v) => new IFC4X3$1.IfcThirdOrderPolynomialSpiral(!v[0] ? null : new Handle$5(!v[0] ? null : v[0].value), new IFC4X3$1.IfcLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLengthMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcLengthMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLengthMeasure(!v[4] ? null : v[4].value)), + 1935646853: (v) => new IFC4X3$1.IfcToroidalSurface(new Handle$5(!v[0] ? null : v[0].value), new IFC4X3$1.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), new IFC4X3$1.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value)), + 3665877780: (v) => { + var _a, _b; + return new IFC4X3$1.IfcTransportationDeviceType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value)); + }, + 2916149573: (v) => { + var _a, _b, _c; + return new IFC4X3$1.IfcTriangulatedFaceSet(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcBoolean(!v[1] ? null : v[1].value), !v[2] ? null : (_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new IFC4X3$1.IfcParameterValue(p2.value) : null)) || []), (_b = v[3]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new IFC4X3$1.IfcPositiveInteger(p2.value) : null)) || []), !v[4] ? null : ((_c = v[4]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3$1.IfcPositiveInteger(p.value) : null)) || []); + }, + 1229763772: (v) => { + var _a, _b, _c, _d; + return new IFC4X3$1.IfcTriangulatedIrregularNetwork(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcBoolean(!v[1] ? null : v[1].value), !v[2] ? null : (_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new IFC4X3$1.IfcParameterValue(p2.value) : null)) || []), (_b = v[3]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new IFC4X3$1.IfcPositiveInteger(p2.value) : null)) || []), !v[4] ? null : ((_c = v[4]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3$1.IfcPositiveInteger(p.value) : null)) || [], ((_d = v[5]) == null ? void 0 : _d.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3$1.IfcInteger(p.value) : null)) || []); + }, + 3651464721: (v) => { + var _a, _b; + return new IFC4X3$1.IfcVehicleType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 336235671: (v) => new IFC4X3$1.IfcWindowLiningProperties(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3$1.IfcNonNegativeLengthMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3$1.IfcNonNegativeLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcNonNegativeLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcNormalisedRatioMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4X3$1.IfcNormalisedRatioMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4X3$1.IfcNormalisedRatioMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4X3$1.IfcNormalisedRatioMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new Handle$5(!v[12] ? null : v[12].value), !v[13] ? null : new IFC4X3$1.IfcLengthMeasure(!v[13] ? null : v[13].value), !v[14] ? null : new IFC4X3$1.IfcLengthMeasure(!v[14] ? null : v[14].value), !v[15] ? null : new IFC4X3$1.IfcLengthMeasure(!v[15] ? null : v[15].value)), + 512836454: (v) => new IFC4X3$1.IfcWindowPanelProperties(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), v[4], v[5], !v[6] ? null : new IFC4X3$1.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcPositiveLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new Handle$5(!v[8] ? null : v[8].value)), + 2296667514: (v) => new IFC4X3$1.IfcActor(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), new Handle$5(!v[5] ? null : v[5].value)), + 1635779807: (v) => new IFC4X3$1.IfcAdvancedBrep(new Handle$5(!v[0] ? null : v[0].value)), + 2603310189: (v) => { + var _a; + return new IFC4X3$1.IfcAdvancedBrepWithVoids(new Handle$5(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 1674181508: (v) => new IFC4X3$1.IfcAnnotation(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), v[7]), + 2887950389: (v) => { + var _a; + return new IFC4X3$1.IfcBSplineSurface(new IFC4X3$1.IfcInteger(!v[0] ? null : v[0].value), new IFC4X3$1.IfcInteger(!v[1] ? null : v[1].value), (_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new Handle$5(p2.value) : null)) || []), v[3], new IFC4X3$1.IfcLogical(!v[4] ? null : v[4].value), new IFC4X3$1.IfcLogical(!v[5] ? null : v[5].value), new IFC4X3$1.IfcLogical(!v[6] ? null : v[6].value)); + }, + 167062518: (v) => { + var _a, _b, _c, _d, _e; + return new IFC4X3$1.IfcBSplineSurfaceWithKnots(new IFC4X3$1.IfcInteger(!v[0] ? null : v[0].value), new IFC4X3$1.IfcInteger(!v[1] ? null : v[1].value), (_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new Handle$5(p2.value) : null)) || []), v[3], new IFC4X3$1.IfcLogical(!v[4] ? null : v[4].value), new IFC4X3$1.IfcLogical(!v[5] ? null : v[5].value), new IFC4X3$1.IfcLogical(!v[6] ? null : v[6].value), ((_b = v[7]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3$1.IfcInteger(p.value) : null)) || [], ((_c = v[8]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3$1.IfcInteger(p.value) : null)) || [], ((_d = v[9]) == null ? void 0 : _d.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3$1.IfcParameterValue(p.value) : null)) || [], ((_e = v[10]) == null ? void 0 : _e.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3$1.IfcParameterValue(p.value) : null)) || [], v[11]); + }, + 1334484129: (v) => new IFC4X3$1.IfcBlock(new Handle$5(!v[0] ? null : v[0].value), new IFC4X3$1.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), new IFC4X3$1.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value), new IFC4X3$1.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value)), + 3649129432: (v) => new IFC4X3$1.IfcBooleanClippingResult(v[0], new Handle$5(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value)), + 1260505505: (_) => new IFC4X3$1.IfcBoundedCurve(), + 3124254112: (v) => new IFC4X3$1.IfcBuildingStorey(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), v[8], !v[9] ? null : new IFC4X3$1.IfcLengthMeasure(!v[9] ? null : v[9].value)), + 1626504194: (v) => { + var _a, _b; + return new IFC4X3$1.IfcBuiltElementType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value)); + }, + 2197970202: (v) => { + var _a, _b; + return new IFC4X3$1.IfcChimneyType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 2937912522: (v) => new IFC4X3$1.IfcCircleHollowProfileDef(v[0], !v[1] ? null : new IFC4X3$1.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle$5(!v[2] ? null : v[2].value), new IFC4X3$1.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC4X3$1.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value)), + 3893394355: (v) => { + var _a, _b; + return new IFC4X3$1.IfcCivilElementType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value)); + }, + 3497074424: (v) => new IFC4X3$1.IfcClothoid(!v[0] ? null : new Handle$5(!v[0] ? null : v[0].value), new IFC4X3$1.IfcLengthMeasure(!v[1] ? null : v[1].value)), + 300633059: (v) => { + var _a, _b; + return new IFC4X3$1.IfcColumnType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 3875453745: (v) => { + var _a; + return new IFC4X3$1.IfcComplexPropertyTemplate(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), v[5], !v[6] ? null : ((_a = v[6]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 3732776249: (v) => { + var _a; + return new IFC4X3$1.IfcCompositeCurve(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new IFC4X3$1.IfcLogical(!v[1] ? null : v[1].value)); + }, + 15328376: (v) => { + var _a; + return new IFC4X3$1.IfcCompositeCurveOnSurface(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new IFC4X3$1.IfcLogical(!v[1] ? null : v[1].value)); + }, + 2510884976: (v) => new IFC4X3$1.IfcConic(new Handle$5(!v[0] ? null : v[0].value)), + 2185764099: (v) => { + var _a, _b; + return new IFC4X3$1.IfcConstructionEquipmentResourceType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : new IFC4X3$1.IfcIdentifier(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcText(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : ((_b = v[9]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[10] ? null : new Handle$5(!v[10] ? null : v[10].value), v[11]); + }, + 4105962743: (v) => { + var _a, _b; + return new IFC4X3$1.IfcConstructionMaterialResourceType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : new IFC4X3$1.IfcIdentifier(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcText(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : ((_b = v[9]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[10] ? null : new Handle$5(!v[10] ? null : v[10].value), v[11]); + }, + 1525564444: (v) => { + var _a, _b; + return new IFC4X3$1.IfcConstructionProductResourceType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : new IFC4X3$1.IfcIdentifier(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcText(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : ((_b = v[9]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[10] ? null : new Handle$5(!v[10] ? null : v[10].value), v[11]); + }, + 2559216714: (v) => { + var _a; + return new IFC4X3$1.IfcConstructionResource(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3$1.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3$1.IfcText(!v[6] ? null : v[6].value), !v[7] ? null : new Handle$5(!v[7] ? null : v[7].value), !v[8] ? null : ((_a = v[8]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[9] ? null : new Handle$5(!v[9] ? null : v[9].value)); + }, + 3293443760: (v) => new IFC4X3$1.IfcControl(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3$1.IfcIdentifier(!v[5] ? null : v[5].value)), + 2000195564: (v) => new IFC4X3$1.IfcCosineSpiral(!v[0] ? null : new Handle$5(!v[0] ? null : v[0].value), new IFC4X3$1.IfcLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLengthMeasure(!v[2] ? null : v[2].value)), + 3895139033: (v) => { + var _a, _b; + return new IFC4X3$1.IfcCostItem(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3$1.IfcIdentifier(!v[5] ? null : v[5].value), v[6], !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[8] ? null : ((_b = v[8]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 1419761937: (v) => new IFC4X3$1.IfcCostSchedule(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3$1.IfcIdentifier(!v[5] ? null : v[5].value), v[6], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcDateTime(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4X3$1.IfcDateTime(!v[9] ? null : v[9].value)), + 4189326743: (v) => { + var _a, _b; + return new IFC4X3$1.IfcCourseType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1916426348: (v) => { + var _a, _b; + return new IFC4X3$1.IfcCoveringType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 3295246426: (v) => { + var _a; + return new IFC4X3$1.IfcCrewResource(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3$1.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3$1.IfcText(!v[6] ? null : v[6].value), !v[7] ? null : new Handle$5(!v[7] ? null : v[7].value), !v[8] ? null : ((_a = v[8]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[9] ? null : new Handle$5(!v[9] ? null : v[9].value), v[10]); + }, + 1457835157: (v) => { + var _a, _b; + return new IFC4X3$1.IfcCurtainWallType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1213902940: (v) => new IFC4X3$1.IfcCylindricalSurface(new Handle$5(!v[0] ? null : v[0].value), new IFC4X3$1.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value)), + 1306400036: (v) => { + var _a, _b; + return new IFC4X3$1.IfcDeepFoundationType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value)); + }, + 4234616927: (v) => new IFC4X3$1.IfcDirectrixDerivedReferenceSweptAreaSolid(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), !v[3] ? null : TypeInitialiser(3, v[3]), !v[4] ? null : TypeInitialiser(3, v[4]), new Handle$5(!v[5] ? null : v[5].value)), + 3256556792: (v) => { + var _a, _b; + return new IFC4X3$1.IfcDistributionElementType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value)); + }, + 3849074793: (v) => { + var _a, _b; + return new IFC4X3$1.IfcDistributionFlowElementType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value)); + }, + 2963535650: (v) => new IFC4X3$1.IfcDoorLiningProperties(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3$1.IfcNonNegativeLengthMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3$1.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcNonNegativeLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcNonNegativeLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4X3$1.IfcLengthMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4X3$1.IfcLengthMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4X3$1.IfcLengthMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4X3$1.IfcPositiveLengthMeasure(!v[12] ? null : v[12].value), !v[13] ? null : new IFC4X3$1.IfcPositiveLengthMeasure(!v[13] ? null : v[13].value), !v[14] ? null : new Handle$5(!v[14] ? null : v[14].value), !v[15] ? null : new IFC4X3$1.IfcLengthMeasure(!v[15] ? null : v[15].value), !v[16] ? null : new IFC4X3$1.IfcLengthMeasure(!v[16] ? null : v[16].value)), + 1714330368: (v) => new IFC4X3$1.IfcDoorPanelProperties(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), v[5], !v[6] ? null : new IFC4X3$1.IfcNormalisedRatioMeasure(!v[6] ? null : v[6].value), v[7], !v[8] ? null : new Handle$5(!v[8] ? null : v[8].value)), + 2323601079: (v) => { + var _a, _b; + return new IFC4X3$1.IfcDoorType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9], v[10], !v[11] ? null : new IFC4X3$1.IfcBoolean(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4X3$1.IfcLabel(!v[12] ? null : v[12].value)); + }, + 445594917: (v) => new IFC4X3$1.IfcDraughtingPreDefinedColour(new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value)), + 4006246654: (v) => new IFC4X3$1.IfcDraughtingPreDefinedCurveFont(new IFC4X3$1.IfcLabel(!v[0] ? null : v[0].value)), + 1758889154: (v) => new IFC4X3$1.IfcElement(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 4123344466: (v) => new IFC4X3$1.IfcElementAssembly(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8], v[9]), + 2397081782: (v) => { + var _a, _b; + return new IFC4X3$1.IfcElementAssemblyType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1623761950: (v) => new IFC4X3$1.IfcElementComponent(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 2590856083: (v) => { + var _a, _b; + return new IFC4X3$1.IfcElementComponentType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value)); + }, + 1704287377: (v) => new IFC4X3$1.IfcEllipse(new Handle$5(!v[0] ? null : v[0].value), new IFC4X3$1.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), new IFC4X3$1.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value)), + 2107101300: (v) => { + var _a, _b; + return new IFC4X3$1.IfcEnergyConversionDeviceType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value)); + }, + 132023988: (v) => { + var _a, _b; + return new IFC4X3$1.IfcEngineType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 3174744832: (v) => { + var _a, _b; + return new IFC4X3$1.IfcEvaporativeCoolerType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 3390157468: (v) => { + var _a, _b; + return new IFC4X3$1.IfcEvaporatorType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 4148101412: (v) => new IFC4X3$1.IfcEvent(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3$1.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3$1.IfcText(!v[6] ? null : v[6].value), v[7], v[8], !v[9] ? null : new IFC4X3$1.IfcLabel(!v[9] ? null : v[9].value), !v[10] ? null : new Handle$5(!v[10] ? null : v[10].value)), + 2853485674: (v) => new IFC4X3$1.IfcExternalSpatialStructureElement(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value)), + 807026263: (v) => new IFC4X3$1.IfcFacetedBrep(new Handle$5(!v[0] ? null : v[0].value)), + 3737207727: (v) => { + var _a; + return new IFC4X3$1.IfcFacetedBrepWithVoids(new Handle$5(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 24185140: (v) => new IFC4X3$1.IfcFacility(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), v[8]), + 1310830890: (v) => new IFC4X3$1.IfcFacilityPart(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), v[8], v[9]), + 4228831410: (v) => new IFC4X3$1.IfcFacilityPartCommon(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), v[8], v[9], v[10]), + 647756555: (v) => new IFC4X3$1.IfcFastener(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 2489546625: (v) => { + var _a, _b; + return new IFC4X3$1.IfcFastenerType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 2827207264: (v) => new IFC4X3$1.IfcFeatureElement(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 2143335405: (v) => new IFC4X3$1.IfcFeatureElementAddition(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 1287392070: (v) => new IFC4X3$1.IfcFeatureElementSubtraction(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 3907093117: (v) => { + var _a, _b; + return new IFC4X3$1.IfcFlowControllerType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value)); + }, + 3198132628: (v) => { + var _a, _b; + return new IFC4X3$1.IfcFlowFittingType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value)); + }, + 3815607619: (v) => { + var _a, _b; + return new IFC4X3$1.IfcFlowMeterType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1482959167: (v) => { + var _a, _b; + return new IFC4X3$1.IfcFlowMovingDeviceType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value)); + }, + 1834744321: (v) => { + var _a, _b; + return new IFC4X3$1.IfcFlowSegmentType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value)); + }, + 1339347760: (v) => { + var _a, _b; + return new IFC4X3$1.IfcFlowStorageDeviceType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value)); + }, + 2297155007: (v) => { + var _a, _b; + return new IFC4X3$1.IfcFlowTerminalType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value)); + }, + 3009222698: (v) => { + var _a, _b; + return new IFC4X3$1.IfcFlowTreatmentDeviceType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value)); + }, + 1893162501: (v) => { + var _a, _b; + return new IFC4X3$1.IfcFootingType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 263784265: (v) => new IFC4X3$1.IfcFurnishingElement(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 1509553395: (v) => new IFC4X3$1.IfcFurniture(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 3493046030: (v) => new IFC4X3$1.IfcGeographicElement(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 4230923436: (v) => new IFC4X3$1.IfcGeotechnicalElement(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 1594536857: (v) => new IFC4X3$1.IfcGeotechnicalStratum(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 2898700619: (v) => { + var _a; + return new IFC4X3$1.IfcGradientCurve(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new IFC4X3$1.IfcLogical(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), !v[3] ? null : new Handle$5(!v[3] ? null : v[3].value)); + }, + 2706460486: (v) => new IFC4X3$1.IfcGroup(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value)), + 1251058090: (v) => { + var _a, _b; + return new IFC4X3$1.IfcHeatExchangerType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1806887404: (v) => { + var _a, _b; + return new IFC4X3$1.IfcHumidifierType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 2568555532: (v) => new IFC4X3$1.IfcImpactProtectionDevice(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 3948183225: (v) => { + var _a, _b; + return new IFC4X3$1.IfcImpactProtectionDeviceType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 2571569899: (v) => { + var _a; + return new IFC4X3$1.IfcIndexedPolyCurve(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(3, p) : null)) || [], new IFC4X3$1.IfcLogical(!v[2] ? null : v[2].value)); + }, + 3946677679: (v) => { + var _a, _b; + return new IFC4X3$1.IfcInterceptorType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 3113134337: (v) => { + var _a; + return new IFC4X3$1.IfcIntersectionCurve(new Handle$5(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], v[2]); + }, + 2391368822: (v) => { + var _a; + return new IFC4X3$1.IfcInventory(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), v[5], !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[8] ? null : new IFC4X3$1.IfcDate(!v[8] ? null : v[8].value), !v[9] ? null : new Handle$5(!v[9] ? null : v[9].value), !v[10] ? null : new Handle$5(!v[10] ? null : v[10].value)); + }, + 4288270099: (v) => { + var _a, _b; + return new IFC4X3$1.IfcJunctionBoxType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 679976338: (v) => { + var _a, _b; + return new IFC4X3$1.IfcKerbType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), new IFC4X3$1.IfcBoolean(!v[9] ? null : v[9].value)); + }, + 3827777499: (v) => { + var _a; + return new IFC4X3$1.IfcLaborResource(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3$1.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3$1.IfcText(!v[6] ? null : v[6].value), !v[7] ? null : new Handle$5(!v[7] ? null : v[7].value), !v[8] ? null : ((_a = v[8]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[9] ? null : new Handle$5(!v[9] ? null : v[9].value), v[10]); + }, + 1051575348: (v) => { + var _a, _b; + return new IFC4X3$1.IfcLampType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1161773419: (v) => { + var _a, _b; + return new IFC4X3$1.IfcLightFixtureType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 2176059722: (v) => new IFC4X3$1.IfcLinearElement(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value)), + 1770583370: (v) => { + var _a, _b; + return new IFC4X3$1.IfcLiquidTerminalType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 525669439: (v) => new IFC4X3$1.IfcMarineFacility(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), v[8], v[9]), + 976884017: (v) => new IFC4X3$1.IfcMarinePart(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), v[8], v[9], v[10]), + 377706215: (v) => new IFC4X3$1.IfcMechanicalFastener(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4X3$1.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value), v[10]), + 2108223431: (v) => { + var _a, _b; + return new IFC4X3$1.IfcMechanicalFastenerType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9], !v[10] ? null : new IFC4X3$1.IfcPositiveLengthMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4X3$1.IfcPositiveLengthMeasure(!v[11] ? null : v[11].value)); + }, + 1114901282: (v) => { + var _a, _b; + return new IFC4X3$1.IfcMedicalDeviceType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 3181161470: (v) => { + var _a, _b; + return new IFC4X3$1.IfcMemberType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1950438474: (v) => { + var _a, _b; + return new IFC4X3$1.IfcMobileTelecommunicationsApplianceType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 710110818: (v) => { + var _a, _b; + return new IFC4X3$1.IfcMooringDeviceType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 977012517: (v) => { + var _a, _b; + return new IFC4X3$1.IfcMotorConnectionType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 506776471: (v) => { + var _a, _b; + return new IFC4X3$1.IfcNavigationElementType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 4143007308: (v) => new IFC4X3$1.IfcOccupant(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), new Handle$5(!v[5] ? null : v[5].value), v[6]), + 3588315303: (v) => new IFC4X3$1.IfcOpeningElement(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 2837617999: (v) => { + var _a, _b; + return new IFC4X3$1.IfcOutletType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 514975943: (v) => { + var _a, _b; + return new IFC4X3$1.IfcPavementType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 2382730787: (v) => new IFC4X3$1.IfcPerformanceHistory(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3$1.IfcIdentifier(!v[5] ? null : v[5].value), new IFC4X3$1.IfcLabel(!v[6] ? null : v[6].value), v[7]), + 3566463478: (v) => new IFC4X3$1.IfcPermeableCoveringProperties(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), v[4], v[5], !v[6] ? null : new IFC4X3$1.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcPositiveLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new Handle$5(!v[8] ? null : v[8].value)), + 3327091369: (v) => new IFC4X3$1.IfcPermit(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3$1.IfcIdentifier(!v[5] ? null : v[5].value), v[6], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcText(!v[8] ? null : v[8].value)), + 1158309216: (v) => { + var _a, _b; + return new IFC4X3$1.IfcPileType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 804291784: (v) => { + var _a, _b; + return new IFC4X3$1.IfcPipeFittingType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 4231323485: (v) => { + var _a, _b; + return new IFC4X3$1.IfcPipeSegmentType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 4017108033: (v) => { + var _a, _b; + return new IFC4X3$1.IfcPlateType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 2839578677: (v) => { + var _a, _b; + return new IFC4X3$1.IfcPolygonalFaceSet(new Handle$5(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3$1.IfcBoolean(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[3] ? null : ((_b = v[3]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3$1.IfcPositiveInteger(p.value) : null)) || []); + }, + 3724593414: (v) => { + var _a; + return new IFC4X3$1.IfcPolyline(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 3740093272: (v) => new IFC4X3$1.IfcPort(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value)), + 1946335990: (v) => new IFC4X3$1.IfcPositioningElement(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value)), + 2744685151: (v) => new IFC4X3$1.IfcProcedure(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3$1.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3$1.IfcText(!v[6] ? null : v[6].value), v[7]), + 2904328755: (v) => new IFC4X3$1.IfcProjectOrder(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3$1.IfcIdentifier(!v[5] ? null : v[5].value), v[6], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcText(!v[8] ? null : v[8].value)), + 3651124850: (v) => new IFC4X3$1.IfcProjectionElement(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 1842657554: (v) => { + var _a, _b; + return new IFC4X3$1.IfcProtectiveDeviceType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 2250791053: (v) => { + var _a, _b; + return new IFC4X3$1.IfcPumpType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1763565496: (v) => { + var _a, _b; + return new IFC4X3$1.IfcRailType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 2893384427: (v) => { + var _a, _b; + return new IFC4X3$1.IfcRailingType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 3992365140: (v) => new IFC4X3$1.IfcRailway(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), v[8], v[9]), + 1891881377: (v) => new IFC4X3$1.IfcRailwayPart(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), v[8], v[9], v[10]), + 2324767716: (v) => { + var _a, _b; + return new IFC4X3$1.IfcRampFlightType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1469900589: (v) => { + var _a, _b; + return new IFC4X3$1.IfcRampType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 683857671: (v) => { + var _a, _b, _c, _d, _e, _f; + return new IFC4X3$1.IfcRationalBSplineSurfaceWithKnots(new IFC4X3$1.IfcInteger(!v[0] ? null : v[0].value), new IFC4X3$1.IfcInteger(!v[1] ? null : v[1].value), (_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new Handle$5(p2.value) : null)) || []), v[3], new IFC4X3$1.IfcLogical(!v[4] ? null : v[4].value), new IFC4X3$1.IfcLogical(!v[5] ? null : v[5].value), new IFC4X3$1.IfcLogical(!v[6] ? null : v[6].value), ((_b = v[7]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3$1.IfcInteger(p.value) : null)) || [], ((_c = v[8]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3$1.IfcInteger(p.value) : null)) || [], ((_d = v[9]) == null ? void 0 : _d.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3$1.IfcParameterValue(p.value) : null)) || [], ((_e = v[10]) == null ? void 0 : _e.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3$1.IfcParameterValue(p.value) : null)) || [], v[11], (_f = v[12]) == null ? void 0 : _f.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new IFC4X3$1.IfcReal(p2.value) : null)) || [])); + }, + 4021432810: (v) => new IFC4X3$1.IfcReferent(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), v[7]), + 3027567501: (v) => new IFC4X3$1.IfcReinforcingElement(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value)), + 964333572: (v) => { + var _a, _b; + return new IFC4X3$1.IfcReinforcingElementType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value)); + }, + 2320036040: (v) => new IFC4X3$1.IfcReinforcingMesh(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4X3$1.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4X3$1.IfcPositiveLengthMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4X3$1.IfcPositiveLengthMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4X3$1.IfcPositiveLengthMeasure(!v[12] ? null : v[12].value), !v[13] ? null : new IFC4X3$1.IfcAreaMeasure(!v[13] ? null : v[13].value), !v[14] ? null : new IFC4X3$1.IfcAreaMeasure(!v[14] ? null : v[14].value), !v[15] ? null : new IFC4X3$1.IfcPositiveLengthMeasure(!v[15] ? null : v[15].value), !v[16] ? null : new IFC4X3$1.IfcPositiveLengthMeasure(!v[16] ? null : v[16].value), v[17]), + 2310774935: (v) => { + var _a, _b, _c; + return new IFC4X3$1.IfcReinforcingMeshType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9], !v[10] ? null : new IFC4X3$1.IfcPositiveLengthMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4X3$1.IfcPositiveLengthMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4X3$1.IfcPositiveLengthMeasure(!v[12] ? null : v[12].value), !v[13] ? null : new IFC4X3$1.IfcPositiveLengthMeasure(!v[13] ? null : v[13].value), !v[14] ? null : new IFC4X3$1.IfcAreaMeasure(!v[14] ? null : v[14].value), !v[15] ? null : new IFC4X3$1.IfcAreaMeasure(!v[15] ? null : v[15].value), !v[16] ? null : new IFC4X3$1.IfcPositiveLengthMeasure(!v[16] ? null : v[16].value), !v[17] ? null : new IFC4X3$1.IfcPositiveLengthMeasure(!v[17] ? null : v[17].value), !v[18] ? null : new IFC4X3$1.IfcLabel(!v[18] ? null : v[18].value), !v[19] ? null : ((_c = v[19]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(3, p) : null)) || []); + }, + 3818125796: (v) => { + var _a; + return new IFC4X3$1.IfcRelAdheresToElement(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 160246688: (v) => { + var _a; + return new IFC4X3$1.IfcRelAggregates(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), new Handle$5(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || []); + }, + 146592293: (v) => new IFC4X3$1.IfcRoad(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), v[8], v[9]), + 550521510: (v) => new IFC4X3$1.IfcRoadPart(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), v[8], v[9], v[10]), + 2781568857: (v) => { + var _a, _b; + return new IFC4X3$1.IfcRoofType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1768891740: (v) => { + var _a, _b; + return new IFC4X3$1.IfcSanitaryTerminalType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 2157484638: (v) => { + var _a; + return new IFC4X3$1.IfcSeamCurve(new Handle$5(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], v[2]); + }, + 3649235739: (v) => new IFC4X3$1.IfcSecondOrderPolynomialSpiral(!v[0] ? null : new Handle$5(!v[0] ? null : v[0].value), new IFC4X3$1.IfcLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLengthMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcLengthMeasure(!v[3] ? null : v[3].value)), + 544395925: (v) => { + var _a; + return new IFC4X3$1.IfcSegmentedReferenceCurve(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new IFC4X3$1.IfcLogical(!v[1] ? null : v[1].value), new Handle$5(!v[2] ? null : v[2].value), !v[3] ? null : new Handle$5(!v[3] ? null : v[3].value)); + }, + 1027922057: (v) => new IFC4X3$1.IfcSeventhOrderPolynomialSpiral(!v[0] ? null : new Handle$5(!v[0] ? null : v[0].value), new IFC4X3$1.IfcLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLengthMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcLengthMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLengthMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3$1.IfcLengthMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3$1.IfcLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLengthMeasure(!v[8] ? null : v[8].value)), + 4074543187: (v) => { + var _a, _b; + return new IFC4X3$1.IfcShadingDeviceType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 33720170: (v) => new IFC4X3$1.IfcSign(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 3599934289: (v) => { + var _a, _b; + return new IFC4X3$1.IfcSignType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1894708472: (v) => { + var _a, _b; + return new IFC4X3$1.IfcSignalType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 42703149: (v) => new IFC4X3$1.IfcSineSpiral(!v[0] ? null : new Handle$5(!v[0] ? null : v[0].value), new IFC4X3$1.IfcLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLengthMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcLengthMeasure(!v[3] ? null : v[3].value)), + 4097777520: (v) => new IFC4X3$1.IfcSite(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), v[8], !v[9] ? null : new IFC4X3$1.IfcCompoundPlaneAngleMeasure(v[9].map((x) => x.value)), !v[10] ? null : new IFC4X3$1.IfcCompoundPlaneAngleMeasure(v[10].map((x) => x.value)), !v[11] ? null : new IFC4X3$1.IfcLengthMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4X3$1.IfcLabel(!v[12] ? null : v[12].value), !v[13] ? null : new Handle$5(!v[13] ? null : v[13].value)), + 2533589738: (v) => { + var _a, _b; + return new IFC4X3$1.IfcSlabType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1072016465: (v) => { + var _a, _b; + return new IFC4X3$1.IfcSolarDeviceType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 3856911033: (v) => new IFC4X3$1.IfcSpace(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), v[8], v[9], !v[10] ? null : new IFC4X3$1.IfcLengthMeasure(!v[10] ? null : v[10].value)), + 1305183839: (v) => { + var _a, _b; + return new IFC4X3$1.IfcSpaceHeaterType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 3812236995: (v) => { + var _a, _b; + return new IFC4X3$1.IfcSpaceType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9], !v[10] ? null : new IFC4X3$1.IfcLabel(!v[10] ? null : v[10].value)); + }, + 3112655638: (v) => { + var _a, _b; + return new IFC4X3$1.IfcStackTerminalType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1039846685: (v) => { + var _a, _b; + return new IFC4X3$1.IfcStairFlightType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 338393293: (v) => { + var _a, _b; + return new IFC4X3$1.IfcStairType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 682877961: (v) => new IFC4X3$1.IfcStructuralAction(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), new Handle$5(!v[7] ? null : v[7].value), v[8], !v[9] ? null : new IFC4X3$1.IfcBoolean(!v[9] ? null : v[9].value)), + 1179482911: (v) => new IFC4X3$1.IfcStructuralConnection(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new Handle$5(!v[7] ? null : v[7].value)), + 1004757350: (v) => new IFC4X3$1.IfcStructuralCurveAction(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), new Handle$5(!v[7] ? null : v[7].value), v[8], !v[9] ? null : new IFC4X3$1.IfcBoolean(!v[9] ? null : v[9].value), v[10], v[11]), + 4243806635: (v) => new IFC4X3$1.IfcStructuralCurveConnection(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new Handle$5(!v[7] ? null : v[7].value), new Handle$5(!v[8] ? null : v[8].value)), + 214636428: (v) => new IFC4X3$1.IfcStructuralCurveMember(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), v[7], new Handle$5(!v[8] ? null : v[8].value)), + 2445595289: (v) => new IFC4X3$1.IfcStructuralCurveMemberVarying(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), v[7], new Handle$5(!v[8] ? null : v[8].value)), + 2757150158: (v) => new IFC4X3$1.IfcStructuralCurveReaction(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), new Handle$5(!v[7] ? null : v[7].value), v[8], v[9]), + 1807405624: (v) => new IFC4X3$1.IfcStructuralLinearAction(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), new Handle$5(!v[7] ? null : v[7].value), v[8], !v[9] ? null : new IFC4X3$1.IfcBoolean(!v[9] ? null : v[9].value), v[10], v[11]), + 1252848954: (v) => new IFC4X3$1.IfcStructuralLoadGroup(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), v[5], v[6], v[7], !v[8] ? null : new IFC4X3$1.IfcRatioMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4X3$1.IfcLabel(!v[9] ? null : v[9].value)), + 2082059205: (v) => new IFC4X3$1.IfcStructuralPointAction(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), new Handle$5(!v[7] ? null : v[7].value), v[8], !v[9] ? null : new IFC4X3$1.IfcBoolean(!v[9] ? null : v[9].value)), + 734778138: (v) => new IFC4X3$1.IfcStructuralPointConnection(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new Handle$5(!v[7] ? null : v[7].value), !v[8] ? null : new Handle$5(!v[8] ? null : v[8].value)), + 1235345126: (v) => new IFC4X3$1.IfcStructuralPointReaction(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), new Handle$5(!v[7] ? null : v[7].value), v[8]), + 2986769608: (v) => new IFC4X3$1.IfcStructuralResultGroup(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), v[5], !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), new IFC4X3$1.IfcBoolean(!v[7] ? null : v[7].value)), + 3657597509: (v) => new IFC4X3$1.IfcStructuralSurfaceAction(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), new Handle$5(!v[7] ? null : v[7].value), v[8], !v[9] ? null : new IFC4X3$1.IfcBoolean(!v[9] ? null : v[9].value), v[10], v[11]), + 1975003073: (v) => new IFC4X3$1.IfcStructuralSurfaceConnection(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new Handle$5(!v[7] ? null : v[7].value)), + 148013059: (v) => { + var _a; + return new IFC4X3$1.IfcSubContractResource(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3$1.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3$1.IfcText(!v[6] ? null : v[6].value), !v[7] ? null : new Handle$5(!v[7] ? null : v[7].value), !v[8] ? null : ((_a = v[8]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[9] ? null : new Handle$5(!v[9] ? null : v[9].value), v[10]); + }, + 3101698114: (v) => new IFC4X3$1.IfcSurfaceFeature(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 2315554128: (v) => { + var _a, _b; + return new IFC4X3$1.IfcSwitchingDeviceType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 2254336722: (v) => new IFC4X3$1.IfcSystem(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value)), + 413509423: (v) => new IFC4X3$1.IfcSystemFurnitureElement(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 5716631: (v) => { + var _a, _b; + return new IFC4X3$1.IfcTankType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 3824725483: (v) => new IFC4X3$1.IfcTendon(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9], !v[10] ? null : new IFC4X3$1.IfcPositiveLengthMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4X3$1.IfcAreaMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4X3$1.IfcForceMeasure(!v[12] ? null : v[12].value), !v[13] ? null : new IFC4X3$1.IfcPressureMeasure(!v[13] ? null : v[13].value), !v[14] ? null : new IFC4X3$1.IfcNormalisedRatioMeasure(!v[14] ? null : v[14].value), !v[15] ? null : new IFC4X3$1.IfcPositiveLengthMeasure(!v[15] ? null : v[15].value), !v[16] ? null : new IFC4X3$1.IfcPositiveLengthMeasure(!v[16] ? null : v[16].value)), + 2347447852: (v) => new IFC4X3$1.IfcTendonAnchor(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]), + 3081323446: (v) => { + var _a, _b; + return new IFC4X3$1.IfcTendonAnchorType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 3663046924: (v) => new IFC4X3$1.IfcTendonConduit(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]), + 2281632017: (v) => { + var _a, _b; + return new IFC4X3$1.IfcTendonConduitType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 2415094496: (v) => { + var _a, _b; + return new IFC4X3$1.IfcTendonType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9], !v[10] ? null : new IFC4X3$1.IfcPositiveLengthMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4X3$1.IfcAreaMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4X3$1.IfcPositiveLengthMeasure(!v[12] ? null : v[12].value)); + }, + 618700268: (v) => { + var _a, _b; + return new IFC4X3$1.IfcTrackElementType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1692211062: (v) => { + var _a, _b; + return new IFC4X3$1.IfcTransformerType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 2097647324: (v) => { + var _a, _b; + return new IFC4X3$1.IfcTransportElementType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1953115116: (v) => new IFC4X3$1.IfcTransportationDevice(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 3593883385: (v) => { + var _a, _b; + return new IFC4X3$1.IfcTrimmedCurve(new Handle$5(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], ((_b = v[2]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new IFC4X3$1.IfcBoolean(!v[3] ? null : v[3].value), v[4]); + }, + 1600972822: (v) => { + var _a, _b; + return new IFC4X3$1.IfcTubeBundleType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1911125066: (v) => { + var _a, _b; + return new IFC4X3$1.IfcUnitaryEquipmentType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 728799441: (v) => { + var _a, _b; + return new IFC4X3$1.IfcValveType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 840318589: (v) => new IFC4X3$1.IfcVehicle(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 1530820697: (v) => new IFC4X3$1.IfcVibrationDamper(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 3956297820: (v) => { + var _a, _b; + return new IFC4X3$1.IfcVibrationDamperType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 2391383451: (v) => new IFC4X3$1.IfcVibrationIsolator(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 3313531582: (v) => { + var _a, _b; + return new IFC4X3$1.IfcVibrationIsolatorType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 2769231204: (v) => new IFC4X3$1.IfcVirtualElement(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 926996030: (v) => new IFC4X3$1.IfcVoidingFeature(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 1898987631: (v) => { + var _a, _b; + return new IFC4X3$1.IfcWallType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1133259667: (v) => { + var _a, _b; + return new IFC4X3$1.IfcWasteTerminalType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 4009809668: (v) => { + var _a, _b; + return new IFC4X3$1.IfcWindowType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9], v[10], !v[11] ? null : new IFC4X3$1.IfcBoolean(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4X3$1.IfcLabel(!v[12] ? null : v[12].value)); + }, + 4088093105: (v) => { + var _a, _b; + return new IFC4X3$1.IfcWorkCalendar(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3$1.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : ((_a = v[6]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : ((_b = v[7]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], v[8]); + }, + 1028945134: (v) => { + var _a; + return new IFC4X3$1.IfcWorkControl(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3$1.IfcIdentifier(!v[5] ? null : v[5].value), new IFC4X3$1.IfcDateTime(!v[6] ? null : v[6].value), !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4X3$1.IfcDuration(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4X3$1.IfcDuration(!v[10] ? null : v[10].value), new IFC4X3$1.IfcDateTime(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4X3$1.IfcDateTime(!v[12] ? null : v[12].value)); + }, + 4218914973: (v) => { + var _a; + return new IFC4X3$1.IfcWorkPlan(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3$1.IfcIdentifier(!v[5] ? null : v[5].value), new IFC4X3$1.IfcDateTime(!v[6] ? null : v[6].value), !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4X3$1.IfcDuration(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4X3$1.IfcDuration(!v[10] ? null : v[10].value), new IFC4X3$1.IfcDateTime(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4X3$1.IfcDateTime(!v[12] ? null : v[12].value), v[13]); + }, + 3342526732: (v) => { + var _a; + return new IFC4X3$1.IfcWorkSchedule(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3$1.IfcIdentifier(!v[5] ? null : v[5].value), new IFC4X3$1.IfcDateTime(!v[6] ? null : v[6].value), !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4X3$1.IfcDuration(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4X3$1.IfcDuration(!v[10] ? null : v[10].value), new IFC4X3$1.IfcDateTime(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4X3$1.IfcDateTime(!v[12] ? null : v[12].value), v[13]); + }, + 1033361043: (v) => new IFC4X3$1.IfcZone(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3$1.IfcLabel(!v[5] ? null : v[5].value)), + 3821786052: (v) => new IFC4X3$1.IfcActionRequest(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3$1.IfcIdentifier(!v[5] ? null : v[5].value), v[6], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcText(!v[8] ? null : v[8].value)), + 1411407467: (v) => { + var _a, _b; + return new IFC4X3$1.IfcAirTerminalBoxType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 3352864051: (v) => { + var _a, _b; + return new IFC4X3$1.IfcAirTerminalType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1871374353: (v) => { + var _a, _b; + return new IFC4X3$1.IfcAirToAirHeatRecoveryType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 4266260250: (v) => new IFC4X3$1.IfcAlignmentCant(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), new IFC4X3$1.IfcPositiveLengthMeasure(!v[7] ? null : v[7].value)), + 1545765605: (v) => new IFC4X3$1.IfcAlignmentHorizontal(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value)), + 317615605: (v) => new IFC4X3$1.IfcAlignmentSegment(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), new Handle$5(!v[7] ? null : v[7].value)), + 1662888072: (v) => new IFC4X3$1.IfcAlignmentVertical(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value)), + 3460190687: (v) => new IFC4X3$1.IfcAsset(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3$1.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new Handle$5(!v[7] ? null : v[7].value), !v[8] ? null : new Handle$5(!v[8] ? null : v[8].value), !v[9] ? null : new Handle$5(!v[9] ? null : v[9].value), !v[10] ? null : new Handle$5(!v[10] ? null : v[10].value), !v[11] ? null : new Handle$5(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4X3$1.IfcDate(!v[12] ? null : v[12].value), !v[13] ? null : new Handle$5(!v[13] ? null : v[13].value)), + 1532957894: (v) => { + var _a, _b; + return new IFC4X3$1.IfcAudioVisualApplianceType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1967976161: (v) => { + var _a; + return new IFC4X3$1.IfcBSplineCurve(new IFC4X3$1.IfcInteger(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], v[2], new IFC4X3$1.IfcLogical(!v[3] ? null : v[3].value), new IFC4X3$1.IfcLogical(!v[4] ? null : v[4].value)); + }, + 2461110595: (v) => { + var _a, _b, _c; + return new IFC4X3$1.IfcBSplineCurveWithKnots(new IFC4X3$1.IfcInteger(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], v[2], new IFC4X3$1.IfcLogical(!v[3] ? null : v[3].value), new IFC4X3$1.IfcLogical(!v[4] ? null : v[4].value), ((_b = v[5]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3$1.IfcInteger(p.value) : null)) || [], ((_c = v[6]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3$1.IfcParameterValue(p.value) : null)) || [], v[7]); + }, + 819618141: (v) => { + var _a, _b; + return new IFC4X3$1.IfcBeamType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 3649138523: (v) => { + var _a, _b; + return new IFC4X3$1.IfcBearingType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 231477066: (v) => { + var _a, _b; + return new IFC4X3$1.IfcBoilerType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1136057603: (v) => { + var _a; + return new IFC4X3$1.IfcBoundaryCurve(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new IFC4X3$1.IfcLogical(!v[1] ? null : v[1].value)); + }, + 644574406: (v) => new IFC4X3$1.IfcBridge(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), v[8], v[9]), + 963979645: (v) => new IFC4X3$1.IfcBridgePart(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), v[8], v[9], v[10]), + 4031249490: (v) => new IFC4X3$1.IfcBuilding(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), v[8], !v[9] ? null : new IFC4X3$1.IfcLengthMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4X3$1.IfcLengthMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new Handle$5(!v[11] ? null : v[11].value)), + 2979338954: (v) => new IFC4X3$1.IfcBuildingElementPart(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 39481116: (v) => { + var _a, _b; + return new IFC4X3$1.IfcBuildingElementPartType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1909888760: (v) => { + var _a, _b; + return new IFC4X3$1.IfcBuildingElementProxyType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1177604601: (v) => new IFC4X3$1.IfcBuildingSystem(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), v[5], !v[6] ? null : new IFC4X3$1.IfcLabel(!v[6] ? null : v[6].value)), + 1876633798: (v) => new IFC4X3$1.IfcBuiltElement(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 3862327254: (v) => new IFC4X3$1.IfcBuiltSystem(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), v[5], !v[6] ? null : new IFC4X3$1.IfcLabel(!v[6] ? null : v[6].value)), + 2188180465: (v) => { + var _a, _b; + return new IFC4X3$1.IfcBurnerType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 395041908: (v) => { + var _a, _b; + return new IFC4X3$1.IfcCableCarrierFittingType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 3293546465: (v) => { + var _a, _b; + return new IFC4X3$1.IfcCableCarrierSegmentType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 2674252688: (v) => { + var _a, _b; + return new IFC4X3$1.IfcCableFittingType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1285652485: (v) => { + var _a, _b; + return new IFC4X3$1.IfcCableSegmentType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 3203706013: (v) => { + var _a, _b; + return new IFC4X3$1.IfcCaissonFoundationType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 2951183804: (v) => { + var _a, _b; + return new IFC4X3$1.IfcChillerType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 3296154744: (v) => new IFC4X3$1.IfcChimney(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 2611217952: (v) => new IFC4X3$1.IfcCircle(new Handle$5(!v[0] ? null : v[0].value), new IFC4X3$1.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value)), + 1677625105: (v) => new IFC4X3$1.IfcCivilElement(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 2301859152: (v) => { + var _a, _b; + return new IFC4X3$1.IfcCoilType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 843113511: (v) => new IFC4X3$1.IfcColumn(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 400855858: (v) => { + var _a, _b; + return new IFC4X3$1.IfcCommunicationsApplianceType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 3850581409: (v) => { + var _a, _b; + return new IFC4X3$1.IfcCompressorType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 2816379211: (v) => { + var _a, _b; + return new IFC4X3$1.IfcCondenserType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 3898045240: (v) => { + var _a; + return new IFC4X3$1.IfcConstructionEquipmentResource(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3$1.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3$1.IfcText(!v[6] ? null : v[6].value), !v[7] ? null : new Handle$5(!v[7] ? null : v[7].value), !v[8] ? null : ((_a = v[8]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[9] ? null : new Handle$5(!v[9] ? null : v[9].value), v[10]); + }, + 1060000209: (v) => { + var _a; + return new IFC4X3$1.IfcConstructionMaterialResource(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3$1.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3$1.IfcText(!v[6] ? null : v[6].value), !v[7] ? null : new Handle$5(!v[7] ? null : v[7].value), !v[8] ? null : ((_a = v[8]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[9] ? null : new Handle$5(!v[9] ? null : v[9].value), v[10]); + }, + 488727124: (v) => { + var _a; + return new IFC4X3$1.IfcConstructionProductResource(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3$1.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3$1.IfcText(!v[6] ? null : v[6].value), !v[7] ? null : new Handle$5(!v[7] ? null : v[7].value), !v[8] ? null : ((_a = v[8]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[9] ? null : new Handle$5(!v[9] ? null : v[9].value), v[10]); + }, + 2940368186: (v) => { + var _a, _b; + return new IFC4X3$1.IfcConveyorSegmentType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 335055490: (v) => { + var _a, _b; + return new IFC4X3$1.IfcCooledBeamType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 2954562838: (v) => { + var _a, _b; + return new IFC4X3$1.IfcCoolingTowerType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1502416096: (v) => new IFC4X3$1.IfcCourse(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 1973544240: (v) => new IFC4X3$1.IfcCovering(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 3495092785: (v) => new IFC4X3$1.IfcCurtainWall(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 3961806047: (v) => { + var _a, _b; + return new IFC4X3$1.IfcDamperType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 3426335179: (v) => new IFC4X3$1.IfcDeepFoundation(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 1335981549: (v) => new IFC4X3$1.IfcDiscreteAccessory(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 2635815018: (v) => { + var _a, _b; + return new IFC4X3$1.IfcDiscreteAccessoryType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 479945903: (v) => { + var _a, _b; + return new IFC4X3$1.IfcDistributionBoardType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1599208980: (v) => { + var _a, _b; + return new IFC4X3$1.IfcDistributionChamberElementType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 2063403501: (v) => { + var _a, _b; + return new IFC4X3$1.IfcDistributionControlElementType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value)); + }, + 1945004755: (v) => new IFC4X3$1.IfcDistributionElement(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 3040386961: (v) => new IFC4X3$1.IfcDistributionFlowElement(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 3041715199: (v) => new IFC4X3$1.IfcDistributionPort(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), v[7], v[8], v[9]), + 3205830791: (v) => new IFC4X3$1.IfcDistributionSystem(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3$1.IfcLabel(!v[5] ? null : v[5].value), v[6]), + 395920057: (v) => new IFC4X3$1.IfcDoor(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4X3$1.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value), v[10], v[11], !v[12] ? null : new IFC4X3$1.IfcLabel(!v[12] ? null : v[12].value)), + 869906466: (v) => { + var _a, _b; + return new IFC4X3$1.IfcDuctFittingType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 3760055223: (v) => { + var _a, _b; + return new IFC4X3$1.IfcDuctSegmentType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 2030761528: (v) => { + var _a, _b; + return new IFC4X3$1.IfcDuctSilencerType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 3071239417: (v) => new IFC4X3$1.IfcEarthworksCut(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 1077100507: (v) => new IFC4X3$1.IfcEarthworksElement(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 3376911765: (v) => new IFC4X3$1.IfcEarthworksFill(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 663422040: (v) => { + var _a, _b; + return new IFC4X3$1.IfcElectricApplianceType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 2417008758: (v) => { + var _a, _b; + return new IFC4X3$1.IfcElectricDistributionBoardType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 3277789161: (v) => { + var _a, _b; + return new IFC4X3$1.IfcElectricFlowStorageDeviceType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 2142170206: (v) => { + var _a, _b; + return new IFC4X3$1.IfcElectricFlowTreatmentDeviceType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1534661035: (v) => { + var _a, _b; + return new IFC4X3$1.IfcElectricGeneratorType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1217240411: (v) => { + var _a, _b; + return new IFC4X3$1.IfcElectricMotorType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 712377611: (v) => { + var _a, _b; + return new IFC4X3$1.IfcElectricTimeControlType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1658829314: (v) => new IFC4X3$1.IfcEnergyConversionDevice(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 2814081492: (v) => new IFC4X3$1.IfcEngine(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 3747195512: (v) => new IFC4X3$1.IfcEvaporativeCooler(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 484807127: (v) => new IFC4X3$1.IfcEvaporator(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 1209101575: (v) => new IFC4X3$1.IfcExternalSpatialElement(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), v[8]), + 346874300: (v) => { + var _a, _b; + return new IFC4X3$1.IfcFanType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1810631287: (v) => { + var _a, _b; + return new IFC4X3$1.IfcFilterType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 4222183408: (v) => { + var _a, _b; + return new IFC4X3$1.IfcFireSuppressionTerminalType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 2058353004: (v) => new IFC4X3$1.IfcFlowController(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 4278956645: (v) => new IFC4X3$1.IfcFlowFitting(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 4037862832: (v) => { + var _a, _b; + return new IFC4X3$1.IfcFlowInstrumentType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 2188021234: (v) => new IFC4X3$1.IfcFlowMeter(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 3132237377: (v) => new IFC4X3$1.IfcFlowMovingDevice(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 987401354: (v) => new IFC4X3$1.IfcFlowSegment(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 707683696: (v) => new IFC4X3$1.IfcFlowStorageDevice(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 2223149337: (v) => new IFC4X3$1.IfcFlowTerminal(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 3508470533: (v) => new IFC4X3$1.IfcFlowTreatmentDevice(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 900683007: (v) => new IFC4X3$1.IfcFooting(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 2713699986: (v) => new IFC4X3$1.IfcGeotechnicalAssembly(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 3009204131: (v) => { + var _a, _b, _c; + return new IFC4X3$1.IfcGrid(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], ((_b = v[8]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[9] ? null : ((_c = v[9]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], v[10]); + }, + 3319311131: (v) => new IFC4X3$1.IfcHeatExchanger(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 2068733104: (v) => new IFC4X3$1.IfcHumidifier(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 4175244083: (v) => new IFC4X3$1.IfcInterceptor(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 2176052936: (v) => new IFC4X3$1.IfcJunctionBox(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 2696325953: (v) => new IFC4X3$1.IfcKerb(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), new IFC4X3$1.IfcBoolean(!v[8] ? null : v[8].value)), + 76236018: (v) => new IFC4X3$1.IfcLamp(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 629592764: (v) => new IFC4X3$1.IfcLightFixture(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 1154579445: (v) => new IFC4X3$1.IfcLinearPositioningElement(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value)), + 1638804497: (v) => new IFC4X3$1.IfcLiquidTerminal(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 1437502449: (v) => new IFC4X3$1.IfcMedicalDevice(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 1073191201: (v) => new IFC4X3$1.IfcMember(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 2078563270: (v) => new IFC4X3$1.IfcMobileTelecommunicationsAppliance(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 234836483: (v) => new IFC4X3$1.IfcMooringDevice(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 2474470126: (v) => new IFC4X3$1.IfcMotorConnection(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 2182337498: (v) => new IFC4X3$1.IfcNavigationElement(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 144952367: (v) => { + var _a; + return new IFC4X3$1.IfcOuterBoundaryCurve(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], new IFC4X3$1.IfcLogical(!v[1] ? null : v[1].value)); + }, + 3694346114: (v) => new IFC4X3$1.IfcOutlet(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 1383356374: (v) => new IFC4X3$1.IfcPavement(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 1687234759: (v) => new IFC4X3$1.IfcPile(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8], v[9]), + 310824031: (v) => new IFC4X3$1.IfcPipeFitting(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 3612865200: (v) => new IFC4X3$1.IfcPipeSegment(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 3171933400: (v) => new IFC4X3$1.IfcPlate(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 738039164: (v) => new IFC4X3$1.IfcProtectiveDevice(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 655969474: (v) => { + var _a, _b; + return new IFC4X3$1.IfcProtectiveDeviceTrippingUnitType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 90941305: (v) => new IFC4X3$1.IfcPump(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 3290496277: (v) => new IFC4X3$1.IfcRail(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 2262370178: (v) => new IFC4X3$1.IfcRailing(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 3024970846: (v) => new IFC4X3$1.IfcRamp(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 3283111854: (v) => new IFC4X3$1.IfcRampFlight(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 1232101972: (v) => { + var _a, _b, _c, _d; + return new IFC4X3$1.IfcRationalBSplineCurveWithKnots(new IFC4X3$1.IfcInteger(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], v[2], new IFC4X3$1.IfcLogical(!v[3] ? null : v[3].value), new IFC4X3$1.IfcLogical(!v[4] ? null : v[4].value), ((_b = v[5]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3$1.IfcInteger(p.value) : null)) || [], ((_c = v[6]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3$1.IfcParameterValue(p.value) : null)) || [], v[7], ((_d = v[8]) == null ? void 0 : _d.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3$1.IfcReal(p.value) : null)) || []); + }, + 3798194928: (v) => new IFC4X3$1.IfcReinforcedSoil(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 979691226: (v) => new IFC4X3$1.IfcReinforcingBar(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4X3$1.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4X3$1.IfcAreaMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4X3$1.IfcPositiveLengthMeasure(!v[11] ? null : v[11].value), v[12], v[13]), + 2572171363: (v) => { + var _a, _b, _c; + return new IFC4X3$1.IfcReinforcingBarType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9], !v[10] ? null : new IFC4X3$1.IfcPositiveLengthMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4X3$1.IfcAreaMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4X3$1.IfcPositiveLengthMeasure(!v[12] ? null : v[12].value), v[13], !v[14] ? null : new IFC4X3$1.IfcLabel(!v[14] ? null : v[14].value), !v[15] ? null : ((_c = v[15]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(3, p) : null)) || []); + }, + 2016517767: (v) => new IFC4X3$1.IfcRoof(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 3053780830: (v) => new IFC4X3$1.IfcSanitaryTerminal(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 1783015770: (v) => { + var _a, _b; + return new IFC4X3$1.IfcSensorType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1329646415: (v) => new IFC4X3$1.IfcShadingDevice(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 991950508: (v) => new IFC4X3$1.IfcSignal(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 1529196076: (v) => new IFC4X3$1.IfcSlab(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 3420628829: (v) => new IFC4X3$1.IfcSolarDevice(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 1999602285: (v) => new IFC4X3$1.IfcSpaceHeater(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 1404847402: (v) => new IFC4X3$1.IfcStackTerminal(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 331165859: (v) => new IFC4X3$1.IfcStair(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 4252922144: (v) => new IFC4X3$1.IfcStairFlight(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcInteger(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4X3$1.IfcInteger(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4X3$1.IfcPositiveLengthMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4X3$1.IfcPositiveLengthMeasure(!v[11] ? null : v[11].value), v[12]), + 2515109513: (v) => { + var _a, _b; + return new IFC4X3$1.IfcStructuralAnalysisModel(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), v[5], !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[8] ? null : ((_b = v[8]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[9] ? null : new Handle$5(!v[9] ? null : v[9].value)); + }, + 385403989: (v) => { + var _a; + return new IFC4X3$1.IfcStructuralLoadCase(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), v[5], v[6], v[7], !v[8] ? null : new IFC4X3$1.IfcRatioMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4X3$1.IfcLabel(!v[9] ? null : v[9].value), !v[10] ? null : ((_a = v[10]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3$1.IfcRatioMeasure(p.value) : null)) || []); + }, + 1621171031: (v) => new IFC4X3$1.IfcStructuralPlanarAction(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), new Handle$5(!v[7] ? null : v[7].value), v[8], !v[9] ? null : new IFC4X3$1.IfcBoolean(!v[9] ? null : v[9].value), v[10], v[11]), + 1162798199: (v) => new IFC4X3$1.IfcSwitchingDevice(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 812556717: (v) => new IFC4X3$1.IfcTank(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 3425753595: (v) => new IFC4X3$1.IfcTrackElement(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 3825984169: (v) => new IFC4X3$1.IfcTransformer(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 1620046519: (v) => new IFC4X3$1.IfcTransportElement(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 3026737570: (v) => new IFC4X3$1.IfcTubeBundle(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 3179687236: (v) => { + var _a, _b; + return new IFC4X3$1.IfcUnitaryControlElementType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 4292641817: (v) => new IFC4X3$1.IfcUnitaryEquipment(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 4207607924: (v) => new IFC4X3$1.IfcValve(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 2391406946: (v) => new IFC4X3$1.IfcWall(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 3512223829: (v) => new IFC4X3$1.IfcWallStandardCase(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 4237592921: (v) => new IFC4X3$1.IfcWasteTerminal(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 3304561284: (v) => new IFC4X3$1.IfcWindow(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4X3$1.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value), v[10], v[11], !v[12] ? null : new IFC4X3$1.IfcLabel(!v[12] ? null : v[12].value)), + 2874132201: (v) => { + var _a, _b; + return new IFC4X3$1.IfcActuatorType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 1634111441: (v) => new IFC4X3$1.IfcAirTerminal(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 177149247: (v) => new IFC4X3$1.IfcAirTerminalBox(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 2056796094: (v) => new IFC4X3$1.IfcAirToAirHeatRecovery(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 3001207471: (v) => { + var _a, _b; + return new IFC4X3$1.IfcAlarmType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 325726236: (v) => new IFC4X3$1.IfcAlignment(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), v[7]), + 277319702: (v) => new IFC4X3$1.IfcAudioVisualAppliance(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 753842376: (v) => new IFC4X3$1.IfcBeam(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 4196446775: (v) => new IFC4X3$1.IfcBearing(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 32344328: (v) => new IFC4X3$1.IfcBoiler(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 3314249567: (v) => new IFC4X3$1.IfcBorehole(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 1095909175: (v) => new IFC4X3$1.IfcBuildingElementProxy(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 2938176219: (v) => new IFC4X3$1.IfcBurner(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 635142910: (v) => new IFC4X3$1.IfcCableCarrierFitting(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 3758799889: (v) => new IFC4X3$1.IfcCableCarrierSegment(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 1051757585: (v) => new IFC4X3$1.IfcCableFitting(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 4217484030: (v) => new IFC4X3$1.IfcCableSegment(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 3999819293: (v) => new IFC4X3$1.IfcCaissonFoundation(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 3902619387: (v) => new IFC4X3$1.IfcChiller(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 639361253: (v) => new IFC4X3$1.IfcCoil(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 3221913625: (v) => new IFC4X3$1.IfcCommunicationsAppliance(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 3571504051: (v) => new IFC4X3$1.IfcCompressor(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 2272882330: (v) => new IFC4X3$1.IfcCondenser(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 578613899: (v) => { + var _a, _b; + return new IFC4X3$1.IfcControllerType(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle$5(p.value) : null)) || [], !v[7] ? null : new IFC4X3$1.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3$1.IfcLabel(!v[8] ? null : v[8].value), v[9]); + }, + 3460952963: (v) => new IFC4X3$1.IfcConveyorSegment(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 4136498852: (v) => new IFC4X3$1.IfcCooledBeam(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 3640358203: (v) => new IFC4X3$1.IfcCoolingTower(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 4074379575: (v) => new IFC4X3$1.IfcDamper(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 3693000487: (v) => new IFC4X3$1.IfcDistributionBoard(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 1052013943: (v) => new IFC4X3$1.IfcDistributionChamberElement(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 562808652: (v) => new IFC4X3$1.IfcDistributionCircuit(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3$1.IfcLabel(!v[5] ? null : v[5].value), v[6]), + 1062813311: (v) => new IFC4X3$1.IfcDistributionControlElement(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 342316401: (v) => new IFC4X3$1.IfcDuctFitting(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 3518393246: (v) => new IFC4X3$1.IfcDuctSegment(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 1360408905: (v) => new IFC4X3$1.IfcDuctSilencer(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 1904799276: (v) => new IFC4X3$1.IfcElectricAppliance(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 862014818: (v) => new IFC4X3$1.IfcElectricDistributionBoard(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 3310460725: (v) => new IFC4X3$1.IfcElectricFlowStorageDevice(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 24726584: (v) => new IFC4X3$1.IfcElectricFlowTreatmentDevice(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 264262732: (v) => new IFC4X3$1.IfcElectricGenerator(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 402227799: (v) => new IFC4X3$1.IfcElectricMotor(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 1003880860: (v) => new IFC4X3$1.IfcElectricTimeControl(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 3415622556: (v) => new IFC4X3$1.IfcFan(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 819412036: (v) => new IFC4X3$1.IfcFilter(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 1426591983: (v) => new IFC4X3$1.IfcFireSuppressionTerminal(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 182646315: (v) => new IFC4X3$1.IfcFlowInstrument(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 2680139844: (v) => new IFC4X3$1.IfcGeomodel(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 1971632696: (v) => new IFC4X3$1.IfcGeoslice(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value)), + 2295281155: (v) => new IFC4X3$1.IfcProtectiveDeviceTrippingUnit(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 4086658281: (v) => new IFC4X3$1.IfcSensor(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 630975310: (v) => new IFC4X3$1.IfcUnitaryControlElement(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 4288193352: (v) => new IFC4X3$1.IfcActuator(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 3087945054: (v) => new IFC4X3$1.IfcAlarm(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]), + 25142252: (v) => new IFC4X3$1.IfcController(new IFC4X3$1.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle$5(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3$1.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3$1.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3$1.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle$5(!v[5] ? null : v[5].value), !v[6] ? null : new Handle$5(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3$1.IfcIdentifier(!v[7] ? null : v[7].value), v[8]) +}; +InheritanceDef[3] = { + 618182010: [IFCTELECOMADDRESS, IFCPOSTALADDRESS], + 2879124712: [IFCALIGNMENTHORIZONTALSEGMENT, IFCALIGNMENTCANTSEGMENT, IFCALIGNMENTVERTICALSEGMENT], + 411424972: [IFCCOSTVALUE], + 4037036970: [IFCBOUNDARYNODECONDITIONWARPING, IFCBOUNDARYNODECONDITION, IFCBOUNDARYFACECONDITION, IFCBOUNDARYEDGECONDITION], + 1387855156: [IFCBOUNDARYNODECONDITIONWARPING], + 2859738748: [IFCCONNECTIONCURVEGEOMETRY, IFCCONNECTIONVOLUMEGEOMETRY, IFCCONNECTIONSURFACEGEOMETRY, IFCCONNECTIONPOINTECCENTRICITY, IFCCONNECTIONPOINTGEOMETRY], + 2614616156: [IFCCONNECTIONPOINTECCENTRICITY], + 1959218052: [IFCOBJECTIVE, IFCMETRIC], + 1785450214: [IFCMAPCONVERSION], + 1466758467: [IFCPROJECTEDCRS], + 4294318154: [IFCDOCUMENTINFORMATION, IFCCLASSIFICATION, IFCLIBRARYINFORMATION], + 3200245327: [IFCDOCUMENTREFERENCE, IFCCLASSIFICATIONREFERENCE, IFCLIBRARYREFERENCE, IFCEXTERNALLYDEFINEDTEXTFONT, IFCEXTERNALLYDEFINEDSURFACESTYLE, IFCEXTERNALLYDEFINEDHATCHSTYLE], + 760658860: [IFCMATERIALCONSTITUENTSET, IFCMATERIALCONSTITUENT, IFCMATERIAL, IFCMATERIALPROFILESET, IFCMATERIALPROFILEWITHOFFSETS, IFCMATERIALPROFILE, IFCMATERIALLAYERSET, IFCMATERIALLAYERWITHOFFSETS, IFCMATERIALLAYER], + 248100487: [IFCMATERIALLAYERWITHOFFSETS], + 2235152071: [IFCMATERIALPROFILEWITHOFFSETS], + 1507914824: [IFCMATERIALPROFILESETUSAGETAPERING, IFCMATERIALPROFILESETUSAGE, IFCMATERIALLAYERSETUSAGE], + 1918398963: [IFCCONVERSIONBASEDUNITWITHOFFSET, IFCCONVERSIONBASEDUNIT, IFCCONTEXTDEPENDENTUNIT, IFCSIUNIT], + 3701648758: [IFCLOCALPLACEMENT, IFCLINEARPLACEMENT, IFCGRIDPLACEMENT], + 2483315170: [IFCPHYSICALCOMPLEXQUANTITY, IFCQUANTITYWEIGHT, IFCQUANTITYVOLUME, IFCQUANTITYTIME, IFCQUANTITYNUMBER, IFCQUANTITYLENGTH, IFCQUANTITYCOUNT, IFCQUANTITYAREA, IFCPHYSICALSIMPLEQUANTITY], + 2226359599: [IFCQUANTITYWEIGHT, IFCQUANTITYVOLUME, IFCQUANTITYTIME, IFCQUANTITYNUMBER, IFCQUANTITYLENGTH, IFCQUANTITYCOUNT, IFCQUANTITYAREA], + 677532197: [IFCDRAUGHTINGPREDEFINEDCURVEFONT, IFCPREDEFINEDCURVEFONT, IFCDRAUGHTINGPREDEFINEDCOLOUR, IFCPREDEFINEDCOLOUR, IFCTEXTSTYLEFONTMODEL, IFCPREDEFINEDTEXTFONT, IFCPREDEFINEDITEM, IFCINDEXEDCOLOURMAP, IFCCURVESTYLEFONTPATTERN, IFCCURVESTYLEFONTANDSCALING, IFCCURVESTYLEFONT, IFCCOLOURRGB, IFCCOLOURSPECIFICATION, IFCCOLOURRGBLIST, IFCTEXTUREVERTEXLIST, IFCTEXTUREVERTEX, IFCINDEXEDPOLYGONALTEXTUREMAP, IFCINDEXEDTRIANGLETEXTUREMAP, IFCINDEXEDTEXTUREMAP, IFCTEXTUREMAP, IFCTEXTURECOORDINATEGENERATOR, IFCTEXTURECOORDINATE, IFCTEXTSTYLETEXTMODEL, IFCTEXTSTYLEFORDEFINEDFONT, IFCPIXELTEXTURE, IFCIMAGETEXTURE, IFCBLOBTEXTURE, IFCSURFACETEXTURE, IFCSURFACESTYLEWITHTEXTURES, IFCSURFACESTYLERENDERING, IFCSURFACESTYLESHADING, IFCSURFACESTYLEREFRACTION, IFCSURFACESTYLELIGHTING], + 2022622350: [IFCPRESENTATIONLAYERWITHSTYLE], + 3119450353: [IFCFILLAREASTYLE, IFCCURVESTYLE, IFCTEXTSTYLE, IFCSURFACESTYLE], + 2095639259: [IFCPRODUCTDEFINITIONSHAPE, IFCMATERIALDEFINITIONREPRESENTATION], + 3958567839: [IFCLSHAPEPROFILEDEF, IFCISHAPEPROFILEDEF, IFCELLIPSEPROFILEDEF, IFCCIRCLEHOLLOWPROFILEDEF, IFCCIRCLEPROFILEDEF, IFCCSHAPEPROFILEDEF, IFCASYMMETRICISHAPEPROFILEDEF, IFCZSHAPEPROFILEDEF, IFCUSHAPEPROFILEDEF, IFCTRAPEZIUMPROFILEDEF, IFCTSHAPEPROFILEDEF, IFCRECTANGLEHOLLOWPROFILEDEF, IFCROUNDEDRECTANGLEPROFILEDEF, IFCRECTANGLEPROFILEDEF, IFCPARAMETERIZEDPROFILEDEF, IFCOPENCROSSPROFILEDEF, IFCMIRROREDPROFILEDEF, IFCDERIVEDPROFILEDEF, IFCCOMPOSITEPROFILEDEF, IFCCENTERLINEPROFILEDEF, IFCARBITRARYOPENPROFILEDEF, IFCARBITRARYPROFILEDEFWITHVOIDS, IFCARBITRARYCLOSEDPROFILEDEF], + 986844984: [IFCCOMPLEXPROPERTY, IFCPROPERTYTABLEVALUE, IFCPROPERTYSINGLEVALUE, IFCPROPERTYREFERENCEVALUE, IFCPROPERTYLISTVALUE, IFCPROPERTYENUMERATEDVALUE, IFCPROPERTYBOUNDEDVALUE, IFCSIMPLEPROPERTY, IFCPROPERTY, IFCSECTIONREINFORCEMENTPROPERTIES, IFCSECTIONPROPERTIES, IFCREINFORCEMENTBARPROPERTIES, IFCPREDEFINEDPROPERTIES, IFCPROFILEPROPERTIES, IFCMATERIALPROPERTIES, IFCEXTENDEDPROPERTIES, IFCPROPERTYENUMERATION], + 1076942058: [IFCSTYLEDREPRESENTATION, IFCSTYLEMODEL, IFCTOPOLOGYREPRESENTATION, IFCSHAPEREPRESENTATION, IFCSHAPEMODEL], + 3377609919: [IFCGEOMETRICREPRESENTATIONSUBCONTEXT, IFCGEOMETRICREPRESENTATIONCONTEXT], + 3008791417: [IFCMAPPEDITEM, IFCFILLAREASTYLETILES, IFCFILLAREASTYLEHATCHING, IFCFACEBASEDSURFACEMODEL, IFCDIRECTION, IFCCIRCLE, IFCELLIPSE, IFCCONIC, IFCRATIONALBSPLINECURVEWITHKNOTS, IFCBSPLINECURVEWITHKNOTS, IFCBSPLINECURVE, IFCTRIMMEDCURVE, IFCPOLYLINE, IFCINDEXEDPOLYCURVE, IFCSEGMENTEDREFERENCECURVE, IFCGRADIENTCURVE, IFCOUTERBOUNDARYCURVE, IFCBOUNDARYCURVE, IFCCOMPOSITECURVEONSURFACE, IFCCOMPOSITECURVE, IFCBOUNDEDCURVE, IFCSEAMCURVE, IFCINTERSECTIONCURVE, IFCSURFACECURVE, IFCSINESPIRAL, IFCSEVENTHORDERPOLYNOMIALSPIRAL, IFCSECONDORDERPOLYNOMIALSPIRAL, IFCCOSINESPIRAL, IFCCLOTHOID, IFCTHIRDORDERPOLYNOMIALSPIRAL, IFCSPIRAL, IFCPOLYNOMIALCURVE, IFCPCURVE, IFCOFFSETCURVEBYDISTANCES, IFCOFFSETCURVE3D, IFCOFFSETCURVE2D, IFCOFFSETCURVE, IFCLINE, IFCCURVE, IFCBLOCK, IFCSPHERE, IFCRIGHTCIRCULARCYLINDER, IFCRIGHTCIRCULARCONE, IFCRECTANGULARPYRAMID, IFCCSGPRIMITIVE3D, IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR3D, IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR2D, IFCCARTESIANTRANSFORMATIONOPERATOR, IFCCARTESIANPOINTLIST3D, IFCCARTESIANPOINTLIST2D, IFCCARTESIANPOINTLIST, IFCBOUNDINGBOX, IFCBOOLEANCLIPPINGRESULT, IFCBOOLEANRESULT, IFCANNOTATIONFILLAREA, IFCVECTOR, IFCTEXTLITERALWITHEXTENT, IFCTEXTLITERAL, IFCPOLYGONALFACESET, IFCTRIANGULATEDIRREGULARNETWORK, IFCTRIANGULATEDFACESET, IFCTESSELLATEDFACESET, IFCINDEXEDPOLYGONALFACEWITHVOIDS, IFCINDEXEDPOLYGONALFACE, IFCTESSELLATEDITEM, IFCSECTIONEDSURFACE, IFCCYLINDRICALSURFACE, IFCTOROIDALSURFACE, IFCSPHERICALSURFACE, IFCPLANE, IFCELEMENTARYSURFACE, IFCRATIONALBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACE, IFCRECTANGULARTRIMMEDSURFACE, IFCCURVEBOUNDEDSURFACE, IFCCURVEBOUNDEDPLANE, IFCBOUNDEDSURFACE, IFCSURFACEOFREVOLUTION, IFCSURFACEOFLINEAREXTRUSION, IFCSWEPTSURFACE, IFCSURFACE, IFCSECTIONEDSOLIDHORIZONTAL, IFCSECTIONEDSOLID, IFCFACETEDBREPWITHVOIDS, IFCFACETEDBREP, IFCADVANCEDBREPWITHVOIDS, IFCADVANCEDBREP, IFCMANIFOLDSOLIDBREP, IFCCSGSOLID, IFCSWEPTDISKSOLIDPOLYGONAL, IFCSWEPTDISKSOLID, IFCREVOLVEDAREASOLIDTAPERED, IFCREVOLVEDAREASOLID, IFCEXTRUDEDAREASOLIDTAPERED, IFCEXTRUDEDAREASOLID, IFCSURFACECURVESWEPTAREASOLID, IFCDIRECTRIXDERIVEDREFERENCESWEPTAREASOLID, IFCFIXEDREFERENCESWEPTAREASOLID, IFCDIRECTRIXCURVESWEPTAREASOLID, IFCSWEPTAREASOLID, IFCSOLIDMODEL, IFCSHELLBASEDSURFACEMODEL, IFCCURVESEGMENT, IFCREPARAMETRISEDCOMPOSITECURVESEGMENT, IFCCOMPOSITECURVESEGMENT, IFCSEGMENT, IFCSECTIONEDSPINE, IFCCARTESIANPOINT, IFCPOINTONSURFACE, IFCPOINTONCURVE, IFCPOINTBYDISTANCEEXPRESSION, IFCPOINT, IFCPLANARBOX, IFCPLANAREXTENT, IFCAXIS2PLACEMENTLINEAR, IFCAXIS2PLACEMENT3D, IFCAXIS2PLACEMENT2D, IFCAXIS1PLACEMENT, IFCPLACEMENT, IFCLIGHTSOURCESPOT, IFCLIGHTSOURCEPOSITIONAL, IFCLIGHTSOURCEGONIOMETRIC, IFCLIGHTSOURCEDIRECTIONAL, IFCLIGHTSOURCEAMBIENT, IFCLIGHTSOURCE, IFCBOXEDHALFSPACE, IFCPOLYGONALBOUNDEDHALFSPACE, IFCHALFSPACESOLID, IFCGEOMETRICCURVESET, IFCGEOMETRICSET, IFCGEOMETRICREPRESENTATIONITEM, IFCPATH, IFCEDGELOOP, IFCVERTEXLOOP, IFCPOLYLOOP, IFCLOOP, IFCFACEOUTERBOUND, IFCFACEBOUND, IFCADVANCEDFACE, IFCFACESURFACE, IFCFACE, IFCSUBEDGE, IFCORIENTEDEDGE, IFCEDGECURVE, IFCEDGE, IFCCLOSEDSHELL, IFCOPENSHELL, IFCCONNECTEDFACESET, IFCVERTEXPOINT, IFCVERTEX, IFCTOPOLOGICALREPRESENTATIONITEM, IFCSTYLEDITEM], + 2439245199: [IFCRESOURCECONSTRAINTRELATIONSHIP, IFCRESOURCEAPPROVALRELATIONSHIP, IFCPROPERTYDEPENDENCYRELATIONSHIP, IFCORGANIZATIONRELATIONSHIP, IFCMATERIALRELATIONSHIP, IFCEXTERNALREFERENCERELATIONSHIP, IFCDOCUMENTINFORMATIONRELATIONSHIP, IFCCURRENCYRELATIONSHIP, IFCAPPROVALRELATIONSHIP], + 2341007311: [IFCRELDEFINESBYTYPE, IFCRELDEFINESBYTEMPLATE, IFCRELDEFINESBYPROPERTIES, IFCRELDEFINESBYOBJECT, IFCRELDEFINES, IFCRELAGGREGATES, IFCRELADHERESTOELEMENT, IFCRELVOIDSELEMENT, IFCRELPROJECTSELEMENT, IFCRELNESTS, IFCRELDECOMPOSES, IFCRELDECLARES, IFCRELSPACEBOUNDARY2NDLEVEL, IFCRELSPACEBOUNDARY1STLEVEL, IFCRELSPACEBOUNDARY, IFCRELSERVICESBUILDINGS, IFCRELSEQUENCE, IFCRELREFERENCEDINSPATIALSTRUCTURE, IFCRELPOSITIONS, IFCRELINTERFERESELEMENTS, IFCRELFLOWCONTROLELEMENTS, IFCRELFILLSELEMENT, IFCRELCOVERSSPACES, IFCRELCOVERSBLDGELEMENTS, IFCRELCONTAINEDINSPATIALSTRUCTURE, IFCRELCONNECTSWITHECCENTRICITY, IFCRELCONNECTSSTRUCTURALMEMBER, IFCRELCONNECTSSTRUCTURALACTIVITY, IFCRELCONNECTSPORTS, IFCRELCONNECTSPORTTOELEMENT, IFCRELCONNECTSWITHREALIZINGELEMENTS, IFCRELCONNECTSPATHELEMENTS, IFCRELCONNECTSELEMENTS, IFCRELCONNECTS, IFCRELASSOCIATESPROFILEDEF, IFCRELASSOCIATESMATERIAL, IFCRELASSOCIATESLIBRARY, IFCRELASSOCIATESDOCUMENT, IFCRELASSOCIATESCONSTRAINT, IFCRELASSOCIATESCLASSIFICATION, IFCRELASSOCIATESAPPROVAL, IFCRELASSOCIATES, IFCRELASSIGNSTORESOURCE, IFCRELASSIGNSTOPRODUCT, IFCRELASSIGNSTOPROCESS, IFCRELASSIGNSTOGROUPBYFACTOR, IFCRELASSIGNSTOGROUP, IFCRELASSIGNSTOCONTROL, IFCRELASSIGNSTOACTOR, IFCRELASSIGNS, IFCRELATIONSHIP, IFCCOMPLEXPROPERTYTEMPLATE, IFCSIMPLEPROPERTYTEMPLATE, IFCPROPERTYTEMPLATE, IFCPROPERTYSETTEMPLATE, IFCPROPERTYTEMPLATEDEFINITION, IFCPROPERTYSET, IFCPERMEABLECOVERINGPROPERTIES, IFCDOORPANELPROPERTIES, IFCDOORLININGPROPERTIES, IFCWINDOWPANELPROPERTIES, IFCWINDOWLININGPROPERTIES, IFCREINFORCEMENTDEFINITIONPROPERTIES, IFCPREDEFINEDPROPERTYSET, IFCELEMENTQUANTITY, IFCQUANTITYSET, IFCPROPERTYSETDEFINITION, IFCPROPERTYDEFINITION, IFCASSET, IFCSTRUCTURALANALYSISMODEL, IFCDISTRIBUTIONCIRCUIT, IFCDISTRIBUTIONSYSTEM, IFCBUILTSYSTEM, IFCBUILDINGSYSTEM, IFCZONE, IFCSYSTEM, IFCSTRUCTURALRESULTGROUP, IFCSTRUCTURALLOADCASE, IFCSTRUCTURALLOADGROUP, IFCINVENTORY, IFCGROUP, IFCACTIONREQUEST, IFCWORKSCHEDULE, IFCWORKPLAN, IFCWORKCONTROL, IFCWORKCALENDAR, IFCPROJECTORDER, IFCPERMIT, IFCPERFORMANCEHISTORY, IFCCOSTSCHEDULE, IFCCOSTITEM, IFCCONTROL, IFCOCCUPANT, IFCACTOR, IFCCONSTRUCTIONPRODUCTRESOURCE, IFCCONSTRUCTIONMATERIALRESOURCE, IFCCONSTRUCTIONEQUIPMENTRESOURCE, IFCSUBCONTRACTRESOURCE, IFCLABORRESOURCE, IFCCREWRESOURCE, IFCCONSTRUCTIONRESOURCE, IFCRESOURCE, IFCALIGNMENT, IFCLINEARPOSITIONINGELEMENT, IFCGRID, IFCREFERENT, IFCPOSITIONINGELEMENT, IFCDISTRIBUTIONPORT, IFCPORT, IFCALIGNMENTVERTICAL, IFCALIGNMENTSEGMENT, IFCALIGNMENTHORIZONTAL, IFCALIGNMENTCANT, IFCLINEARELEMENT, IFCCONTROLLER, IFCALARM, IFCACTUATOR, IFCUNITARYCONTROLELEMENT, IFCSENSOR, IFCPROTECTIVEDEVICETRIPPINGUNIT, IFCFLOWINSTRUMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFILTER, IFCELECTRICFLOWTREATMENTDEVICE, IFCDUCTSILENCER, IFCINTERCEPTOR, IFCFLOWTREATMENTDEVICE, IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSIGNAL, IFCSANITARYTERMINAL, IFCOUTLET, IFCMOBILETELECOMMUNICATIONSAPPLIANCE, IFCMEDICALDEVICE, IFCLIQUIDTERMINAL, IFCLIGHTFIXTURE, IFCLAMP, IFCFLOWTERMINAL, IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK, IFCFLOWSTORAGEDEVICE, IFCDUCTSEGMENT, IFCCONVEYORSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT, IFCFLOWSEGMENT, IFCFAN, IFCCOMPRESSOR, IFCPUMP, IFCFLOWMOVINGDEVICE, IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX, IFCFLOWFITTING, IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER, IFCFLOWCONTROLLER, IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT, IFCDISTRIBUTIONELEMENT, IFCCIVILELEMENT, IFCBUILDINGELEMENTPROXY, IFCBEARING, IFCBEAM, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALL, IFCTRACKELEMENT, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLAB, IFCSHADINGDEVICE, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCRAIL, IFCPLATE, IFCPAVEMENT, IFCNAVIGATIONELEMENT, IFCMOORINGDEVICE, IFCMEMBER, IFCKERB, IFCFOOTING, IFCREINFORCEDSOIL, IFCEARTHWORKSFILL, IFCEARTHWORKSELEMENT, IFCDOOR, IFCCAISSONFOUNDATION, IFCPILE, IFCDEEPFOUNDATION, IFCCURTAINWALL, IFCCOVERING, IFCCOURSE, IFCCOLUMN, IFCCHIMNEY, IFCBUILTELEMENT, IFCVIRTUALELEMENT, IFCTRANSPORTELEMENT, IFCVEHICLE, IFCTRANSPORTATIONDEVICE, IFCGEOSLICE, IFCGEOMODEL, IFCBOREHOLE, IFCGEOTECHNICALASSEMBLY, IFCGEOTECHNICALSTRATUM, IFCGEOTECHNICALELEMENT, IFCGEOGRAPHICELEMENT, IFCSYSTEMFURNITUREELEMENT, IFCFURNITURE, IFCFURNISHINGELEMENT, IFCSURFACEFEATURE, IFCEARTHWORKSCUT, IFCVOIDINGFEATURE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION, IFCFEATUREELEMENT, IFCDISCRETEACCESSORY, IFCBUILDINGELEMENTPART, IFCVIBRATIONISOLATOR, IFCVIBRATIONDAMPER, IFCSIGN, IFCREINFORCINGBAR, IFCTENDONCONDUIT, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCMECHANICALFASTENER, IFCIMPACTPROTECTIONDEVICE, IFCFASTENER, IFCELEMENTCOMPONENT, IFCELEMENTASSEMBLY, IFCELEMENT, IFCANNOTATION, IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION, IFCSTRUCTURALCONNECTION, IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER, IFCSTRUCTURALMEMBER, IFCSTRUCTURALITEM, IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALSURFACEACTION, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALCURVEACTION, IFCSTRUCTURALACTION, IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALCURVEREACTION, IFCSTRUCTURALSURFACEREACTION, IFCSTRUCTURALREACTION, IFCSTRUCTURALACTIVITY, IFCEXTERNALSPATIALELEMENT, IFCEXTERNALSPATIALSTRUCTUREELEMENT, IFCSPATIALZONE, IFCSPACE, IFCSITE, IFCBRIDGEPART, IFCROADPART, IFCRAILWAYPART, IFCMARINEPART, IFCFACILITYPARTCOMMON, IFCFACILITYPART, IFCBUILDING, IFCBRIDGE, IFCROAD, IFCRAILWAY, IFCMARINEFACILITY, IFCFACILITY, IFCBUILDINGSTOREY, IFCSPATIALSTRUCTUREELEMENT, IFCSPATIALELEMENT, IFCPRODUCT, IFCPROCEDURE, IFCEVENT, IFCTASK, IFCPROCESS, IFCOBJECT, IFCPROJECTLIBRARY, IFCPROJECT, IFCCONTEXT, IFCCONSTRUCTIONPRODUCTRESOURCETYPE, IFCCONSTRUCTIONMATERIALRESOURCETYPE, IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE, IFCSUBCONTRACTRESOURCETYPE, IFCLABORRESOURCETYPE, IFCCREWRESOURCETYPE, IFCCONSTRUCTIONRESOURCETYPE, IFCTYPERESOURCE, IFCSPATIALZONETYPE, IFCSPACETYPE, IFCSPATIALSTRUCTUREELEMENTTYPE, IFCSPATIALELEMENTTYPE, IFCDISCRETEACCESSORYTYPE, IFCBUILDINGELEMENTPARTTYPE, IFCVIBRATIONISOLATORTYPE, IFCVIBRATIONDAMPERTYPE, IFCSIGNTYPE, IFCREINFORCINGBARTYPE, IFCTENDONTYPE, IFCTENDONCONDUITTYPE, IFCTENDONANCHORTYPE, IFCREINFORCINGMESHTYPE, IFCREINFORCINGELEMENTTYPE, IFCMECHANICALFASTENERTYPE, IFCIMPACTPROTECTIONDEVICETYPE, IFCFASTENERTYPE, IFCELEMENTCOMPONENTTYPE, IFCELEMENTASSEMBLYTYPE, IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCUNITARYCONTROLELEMENTTYPE, IFCSENSORTYPE, IFCPROTECTIVEDEVICETRIPPINGUNITTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCELECTRICFLOWTREATMENTDEVICETYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSIGNALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMOBILETELECOMMUNICATIONSAPPLIANCETYPE, IFCMEDICALDEVICETYPE, IFCLIQUIDTERMINALTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCONVEYORSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE, IFCDISTRIBUTIONELEMENTTYPE, IFCCIVILELEMENTTYPE, IFCBUILDINGELEMENTPROXYTYPE, IFCBEARINGTYPE, IFCBEAMTYPE, IFCWINDOWTYPE, IFCWALLTYPE, IFCTRACKELEMENTTYPE, IFCSTAIRTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCSHADINGDEVICETYPE, IFCROOFTYPE, IFCRAMPTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCRAILTYPE, IFCPLATETYPE, IFCPAVEMENTTYPE, IFCNAVIGATIONELEMENTTYPE, IFCMOORINGDEVICETYPE, IFCMEMBERTYPE, IFCKERBTYPE, IFCFOOTINGTYPE, IFCDOORTYPE, IFCCAISSONFOUNDATIONTYPE, IFCPILETYPE, IFCDEEPFOUNDATIONTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOURSETYPE, IFCCOLUMNTYPE, IFCCHIMNEYTYPE, IFCBUILTELEMENTTYPE, IFCTRANSPORTELEMENTTYPE, IFCVEHICLETYPE, IFCTRANSPORTATIONDEVICETYPE, IFCGEOGRAPHICELEMENTTYPE, IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE, IFCFURNISHINGELEMENTTYPE, IFCELEMENTTYPE, IFCTYPEPRODUCT, IFCTASKTYPE, IFCPROCEDURETYPE, IFCEVENTTYPE, IFCTYPEPROCESS, IFCTYPEOBJECT, IFCOBJECTDEFINITION], + 1054537805: [IFCRESOURCETIME, IFCLAGTIME, IFCEVENTTIME, IFCWORKTIME, IFCTASKTIMERECURRING, IFCTASKTIME], + 3982875396: [IFCTOPOLOGYREPRESENTATION, IFCSHAPEREPRESENTATION], + 2273995522: [IFCSLIPPAGECONNECTIONCONDITION, IFCFAILURECONNECTIONCONDITION], + 2162789131: [IFCSURFACEREINFORCEMENTAREA, IFCSTRUCTURALLOADSINGLEFORCEWARPING, IFCSTRUCTURALLOADSINGLEFORCE, IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION, IFCSTRUCTURALLOADSINGLEDISPLACEMENT, IFCSTRUCTURALLOADPLANARFORCE, IFCSTRUCTURALLOADLINEARFORCE, IFCSTRUCTURALLOADTEMPERATURE, IFCSTRUCTURALLOADSTATIC, IFCSTRUCTURALLOADORRESULT, IFCSTRUCTURALLOADCONFIGURATION], + 609421318: [IFCSURFACEREINFORCEMENTAREA, IFCSTRUCTURALLOADSINGLEFORCEWARPING, IFCSTRUCTURALLOADSINGLEFORCE, IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION, IFCSTRUCTURALLOADSINGLEDISPLACEMENT, IFCSTRUCTURALLOADPLANARFORCE, IFCSTRUCTURALLOADLINEARFORCE, IFCSTRUCTURALLOADTEMPERATURE, IFCSTRUCTURALLOADSTATIC], + 2525727697: [IFCSTRUCTURALLOADSINGLEFORCEWARPING, IFCSTRUCTURALLOADSINGLEFORCE, IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION, IFCSTRUCTURALLOADSINGLEDISPLACEMENT, IFCSTRUCTURALLOADPLANARFORCE, IFCSTRUCTURALLOADLINEARFORCE, IFCSTRUCTURALLOADTEMPERATURE], + 2830218821: [IFCSTYLEDREPRESENTATION], + 846575682: [IFCSURFACESTYLERENDERING], + 626085974: [IFCPIXELTEXTURE, IFCIMAGETEXTURE, IFCBLOBTEXTURE], + 1549132990: [IFCTASKTIMERECURRING], + 280115917: [IFCINDEXEDPOLYGONALTEXTUREMAP, IFCINDEXEDTRIANGLETEXTUREMAP, IFCINDEXEDTEXTUREMAP, IFCTEXTUREMAP, IFCTEXTURECOORDINATEGENERATOR], + 222769930: [IFCTEXTURECOORDINATEINDICESWITHVOIDS], + 3101149627: [IFCREGULARTIMESERIES, IFCIRREGULARTIMESERIES], + 1377556343: [IFCPATH, IFCEDGELOOP, IFCVERTEXLOOP, IFCPOLYLOOP, IFCLOOP, IFCFACEOUTERBOUND, IFCFACEBOUND, IFCADVANCEDFACE, IFCFACESURFACE, IFCFACE, IFCSUBEDGE, IFCORIENTEDEDGE, IFCEDGECURVE, IFCEDGE, IFCCLOSEDSHELL, IFCOPENSHELL, IFCCONNECTEDFACESET, IFCVERTEXPOINT, IFCVERTEX], + 2799835756: [IFCVERTEXPOINT], + 3798115385: [IFCARBITRARYPROFILEDEFWITHVOIDS], + 1310608509: [IFCCENTERLINEPROFILEDEF], + 3264961684: [IFCCOLOURRGB], + 370225590: [IFCCLOSEDSHELL, IFCOPENSHELL], + 2889183280: [IFCCONVERSIONBASEDUNITWITHOFFSET], + 3632507154: [IFCMIRROREDPROFILEDEF], + 3900360178: [IFCSUBEDGE, IFCORIENTEDEDGE, IFCEDGECURVE], + 297599258: [IFCPROFILEPROPERTIES, IFCMATERIALPROPERTIES], + 2556980723: [IFCADVANCEDFACE, IFCFACESURFACE], + 1809719519: [IFCFACEOUTERBOUND], + 3008276851: [IFCADVANCEDFACE], + 3448662350: [IFCGEOMETRICREPRESENTATIONSUBCONTEXT], + 2453401579: [IFCFILLAREASTYLETILES, IFCFILLAREASTYLEHATCHING, IFCFACEBASEDSURFACEMODEL, IFCDIRECTION, IFCCIRCLE, IFCELLIPSE, IFCCONIC, IFCRATIONALBSPLINECURVEWITHKNOTS, IFCBSPLINECURVEWITHKNOTS, IFCBSPLINECURVE, IFCTRIMMEDCURVE, IFCPOLYLINE, IFCINDEXEDPOLYCURVE, IFCSEGMENTEDREFERENCECURVE, IFCGRADIENTCURVE, IFCOUTERBOUNDARYCURVE, IFCBOUNDARYCURVE, IFCCOMPOSITECURVEONSURFACE, IFCCOMPOSITECURVE, IFCBOUNDEDCURVE, IFCSEAMCURVE, IFCINTERSECTIONCURVE, IFCSURFACECURVE, IFCSINESPIRAL, IFCSEVENTHORDERPOLYNOMIALSPIRAL, IFCSECONDORDERPOLYNOMIALSPIRAL, IFCCOSINESPIRAL, IFCCLOTHOID, IFCTHIRDORDERPOLYNOMIALSPIRAL, IFCSPIRAL, IFCPOLYNOMIALCURVE, IFCPCURVE, IFCOFFSETCURVEBYDISTANCES, IFCOFFSETCURVE3D, IFCOFFSETCURVE2D, IFCOFFSETCURVE, IFCLINE, IFCCURVE, IFCBLOCK, IFCSPHERE, IFCRIGHTCIRCULARCYLINDER, IFCRIGHTCIRCULARCONE, IFCRECTANGULARPYRAMID, IFCCSGPRIMITIVE3D, IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR3D, IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR2D, IFCCARTESIANTRANSFORMATIONOPERATOR, IFCCARTESIANPOINTLIST3D, IFCCARTESIANPOINTLIST2D, IFCCARTESIANPOINTLIST, IFCBOUNDINGBOX, IFCBOOLEANCLIPPINGRESULT, IFCBOOLEANRESULT, IFCANNOTATIONFILLAREA, IFCVECTOR, IFCTEXTLITERALWITHEXTENT, IFCTEXTLITERAL, IFCPOLYGONALFACESET, IFCTRIANGULATEDIRREGULARNETWORK, IFCTRIANGULATEDFACESET, IFCTESSELLATEDFACESET, IFCINDEXEDPOLYGONALFACEWITHVOIDS, IFCINDEXEDPOLYGONALFACE, IFCTESSELLATEDITEM, IFCSECTIONEDSURFACE, IFCCYLINDRICALSURFACE, IFCTOROIDALSURFACE, IFCSPHERICALSURFACE, IFCPLANE, IFCELEMENTARYSURFACE, IFCRATIONALBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACE, IFCRECTANGULARTRIMMEDSURFACE, IFCCURVEBOUNDEDSURFACE, IFCCURVEBOUNDEDPLANE, IFCBOUNDEDSURFACE, IFCSURFACEOFREVOLUTION, IFCSURFACEOFLINEAREXTRUSION, IFCSWEPTSURFACE, IFCSURFACE, IFCSECTIONEDSOLIDHORIZONTAL, IFCSECTIONEDSOLID, IFCFACETEDBREPWITHVOIDS, IFCFACETEDBREP, IFCADVANCEDBREPWITHVOIDS, IFCADVANCEDBREP, IFCMANIFOLDSOLIDBREP, IFCCSGSOLID, IFCSWEPTDISKSOLIDPOLYGONAL, IFCSWEPTDISKSOLID, IFCREVOLVEDAREASOLIDTAPERED, IFCREVOLVEDAREASOLID, IFCEXTRUDEDAREASOLIDTAPERED, IFCEXTRUDEDAREASOLID, IFCSURFACECURVESWEPTAREASOLID, IFCDIRECTRIXDERIVEDREFERENCESWEPTAREASOLID, IFCFIXEDREFERENCESWEPTAREASOLID, IFCDIRECTRIXCURVESWEPTAREASOLID, IFCSWEPTAREASOLID, IFCSOLIDMODEL, IFCSHELLBASEDSURFACEMODEL, IFCCURVESEGMENT, IFCREPARAMETRISEDCOMPOSITECURVESEGMENT, IFCCOMPOSITECURVESEGMENT, IFCSEGMENT, IFCSECTIONEDSPINE, IFCCARTESIANPOINT, IFCPOINTONSURFACE, IFCPOINTONCURVE, IFCPOINTBYDISTANCEEXPRESSION, IFCPOINT, IFCPLANARBOX, IFCPLANAREXTENT, IFCAXIS2PLACEMENTLINEAR, IFCAXIS2PLACEMENT3D, IFCAXIS2PLACEMENT2D, IFCAXIS1PLACEMENT, IFCPLACEMENT, IFCLIGHTSOURCESPOT, IFCLIGHTSOURCEPOSITIONAL, IFCLIGHTSOURCEGONIOMETRIC, IFCLIGHTSOURCEDIRECTIONAL, IFCLIGHTSOURCEAMBIENT, IFCLIGHTSOURCE, IFCBOXEDHALFSPACE, IFCPOLYGONALBOUNDEDHALFSPACE, IFCHALFSPACESOLID, IFCGEOMETRICCURVESET, IFCGEOMETRICSET], + 3590301190: [IFCGEOMETRICCURVESET], + 812098782: [IFCBOXEDHALFSPACE, IFCPOLYGONALBOUNDEDHALFSPACE], + 1437953363: [IFCINDEXEDPOLYGONALTEXTUREMAP, IFCINDEXEDTRIANGLETEXTUREMAP], + 1402838566: [IFCLIGHTSOURCESPOT, IFCLIGHTSOURCEPOSITIONAL, IFCLIGHTSOURCEGONIOMETRIC, IFCLIGHTSOURCEDIRECTIONAL, IFCLIGHTSOURCEAMBIENT], + 1520743889: [IFCLIGHTSOURCESPOT], + 1008929658: [IFCEDGELOOP, IFCVERTEXLOOP, IFCPOLYLOOP], + 3079605661: [IFCMATERIALPROFILESETUSAGETAPERING], + 219451334: [IFCASSET, IFCSTRUCTURALANALYSISMODEL, IFCDISTRIBUTIONCIRCUIT, IFCDISTRIBUTIONSYSTEM, IFCBUILTSYSTEM, IFCBUILDINGSYSTEM, IFCZONE, IFCSYSTEM, IFCSTRUCTURALRESULTGROUP, IFCSTRUCTURALLOADCASE, IFCSTRUCTURALLOADGROUP, IFCINVENTORY, IFCGROUP, IFCACTIONREQUEST, IFCWORKSCHEDULE, IFCWORKPLAN, IFCWORKCONTROL, IFCWORKCALENDAR, IFCPROJECTORDER, IFCPERMIT, IFCPERFORMANCEHISTORY, IFCCOSTSCHEDULE, IFCCOSTITEM, IFCCONTROL, IFCOCCUPANT, IFCACTOR, IFCCONSTRUCTIONPRODUCTRESOURCE, IFCCONSTRUCTIONMATERIALRESOURCE, IFCCONSTRUCTIONEQUIPMENTRESOURCE, IFCSUBCONTRACTRESOURCE, IFCLABORRESOURCE, IFCCREWRESOURCE, IFCCONSTRUCTIONRESOURCE, IFCRESOURCE, IFCALIGNMENT, IFCLINEARPOSITIONINGELEMENT, IFCGRID, IFCREFERENT, IFCPOSITIONINGELEMENT, IFCDISTRIBUTIONPORT, IFCPORT, IFCALIGNMENTVERTICAL, IFCALIGNMENTSEGMENT, IFCALIGNMENTHORIZONTAL, IFCALIGNMENTCANT, IFCLINEARELEMENT, IFCCONTROLLER, IFCALARM, IFCACTUATOR, IFCUNITARYCONTROLELEMENT, IFCSENSOR, IFCPROTECTIVEDEVICETRIPPINGUNIT, IFCFLOWINSTRUMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFILTER, IFCELECTRICFLOWTREATMENTDEVICE, IFCDUCTSILENCER, IFCINTERCEPTOR, IFCFLOWTREATMENTDEVICE, IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSIGNAL, IFCSANITARYTERMINAL, IFCOUTLET, IFCMOBILETELECOMMUNICATIONSAPPLIANCE, IFCMEDICALDEVICE, IFCLIQUIDTERMINAL, IFCLIGHTFIXTURE, IFCLAMP, IFCFLOWTERMINAL, IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK, IFCFLOWSTORAGEDEVICE, IFCDUCTSEGMENT, IFCCONVEYORSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT, IFCFLOWSEGMENT, IFCFAN, IFCCOMPRESSOR, IFCPUMP, IFCFLOWMOVINGDEVICE, IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX, IFCFLOWFITTING, IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER, IFCFLOWCONTROLLER, IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT, IFCDISTRIBUTIONELEMENT, IFCCIVILELEMENT, IFCBUILDINGELEMENTPROXY, IFCBEARING, IFCBEAM, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALL, IFCTRACKELEMENT, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLAB, IFCSHADINGDEVICE, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCRAIL, IFCPLATE, IFCPAVEMENT, IFCNAVIGATIONELEMENT, IFCMOORINGDEVICE, IFCMEMBER, IFCKERB, IFCFOOTING, IFCREINFORCEDSOIL, IFCEARTHWORKSFILL, IFCEARTHWORKSELEMENT, IFCDOOR, IFCCAISSONFOUNDATION, IFCPILE, IFCDEEPFOUNDATION, IFCCURTAINWALL, IFCCOVERING, IFCCOURSE, IFCCOLUMN, IFCCHIMNEY, IFCBUILTELEMENT, IFCVIRTUALELEMENT, IFCTRANSPORTELEMENT, IFCVEHICLE, IFCTRANSPORTATIONDEVICE, IFCGEOSLICE, IFCGEOMODEL, IFCBOREHOLE, IFCGEOTECHNICALASSEMBLY, IFCGEOTECHNICALSTRATUM, IFCGEOTECHNICALELEMENT, IFCGEOGRAPHICELEMENT, IFCSYSTEMFURNITUREELEMENT, IFCFURNITURE, IFCFURNISHINGELEMENT, IFCSURFACEFEATURE, IFCEARTHWORKSCUT, IFCVOIDINGFEATURE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION, IFCFEATUREELEMENT, IFCDISCRETEACCESSORY, IFCBUILDINGELEMENTPART, IFCVIBRATIONISOLATOR, IFCVIBRATIONDAMPER, IFCSIGN, IFCREINFORCINGBAR, IFCTENDONCONDUIT, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCMECHANICALFASTENER, IFCIMPACTPROTECTIONDEVICE, IFCFASTENER, IFCELEMENTCOMPONENT, IFCELEMENTASSEMBLY, IFCELEMENT, IFCANNOTATION, IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION, IFCSTRUCTURALCONNECTION, IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER, IFCSTRUCTURALMEMBER, IFCSTRUCTURALITEM, IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALSURFACEACTION, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALCURVEACTION, IFCSTRUCTURALACTION, IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALCURVEREACTION, IFCSTRUCTURALSURFACEREACTION, IFCSTRUCTURALREACTION, IFCSTRUCTURALACTIVITY, IFCEXTERNALSPATIALELEMENT, IFCEXTERNALSPATIALSTRUCTUREELEMENT, IFCSPATIALZONE, IFCSPACE, IFCSITE, IFCBRIDGEPART, IFCROADPART, IFCRAILWAYPART, IFCMARINEPART, IFCFACILITYPARTCOMMON, IFCFACILITYPART, IFCBUILDING, IFCBRIDGE, IFCROAD, IFCRAILWAY, IFCMARINEFACILITY, IFCFACILITY, IFCBUILDINGSTOREY, IFCSPATIALSTRUCTUREELEMENT, IFCSPATIALELEMENT, IFCPRODUCT, IFCPROCEDURE, IFCEVENT, IFCTASK, IFCPROCESS, IFCOBJECT, IFCPROJECTLIBRARY, IFCPROJECT, IFCCONTEXT, IFCCONSTRUCTIONPRODUCTRESOURCETYPE, IFCCONSTRUCTIONMATERIALRESOURCETYPE, IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE, IFCSUBCONTRACTRESOURCETYPE, IFCLABORRESOURCETYPE, IFCCREWRESOURCETYPE, IFCCONSTRUCTIONRESOURCETYPE, IFCTYPERESOURCE, IFCSPATIALZONETYPE, IFCSPACETYPE, IFCSPATIALSTRUCTUREELEMENTTYPE, IFCSPATIALELEMENTTYPE, IFCDISCRETEACCESSORYTYPE, IFCBUILDINGELEMENTPARTTYPE, IFCVIBRATIONISOLATORTYPE, IFCVIBRATIONDAMPERTYPE, IFCSIGNTYPE, IFCREINFORCINGBARTYPE, IFCTENDONTYPE, IFCTENDONCONDUITTYPE, IFCTENDONANCHORTYPE, IFCREINFORCINGMESHTYPE, IFCREINFORCINGELEMENTTYPE, IFCMECHANICALFASTENERTYPE, IFCIMPACTPROTECTIONDEVICETYPE, IFCFASTENERTYPE, IFCELEMENTCOMPONENTTYPE, IFCELEMENTASSEMBLYTYPE, IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCUNITARYCONTROLELEMENTTYPE, IFCSENSORTYPE, IFCPROTECTIVEDEVICETRIPPINGUNITTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCELECTRICFLOWTREATMENTDEVICETYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSIGNALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMOBILETELECOMMUNICATIONSAPPLIANCETYPE, IFCMEDICALDEVICETYPE, IFCLIQUIDTERMINALTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCONVEYORSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE, IFCDISTRIBUTIONELEMENTTYPE, IFCCIVILELEMENTTYPE, IFCBUILDINGELEMENTPROXYTYPE, IFCBEARINGTYPE, IFCBEAMTYPE, IFCWINDOWTYPE, IFCWALLTYPE, IFCTRACKELEMENTTYPE, IFCSTAIRTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCSHADINGDEVICETYPE, IFCROOFTYPE, IFCRAMPTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCRAILTYPE, IFCPLATETYPE, IFCPAVEMENTTYPE, IFCNAVIGATIONELEMENTTYPE, IFCMOORINGDEVICETYPE, IFCMEMBERTYPE, IFCKERBTYPE, IFCFOOTINGTYPE, IFCDOORTYPE, IFCCAISSONFOUNDATIONTYPE, IFCPILETYPE, IFCDEEPFOUNDATIONTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOURSETYPE, IFCCOLUMNTYPE, IFCCHIMNEYTYPE, IFCBUILTELEMENTTYPE, IFCTRANSPORTELEMENTTYPE, IFCVEHICLETYPE, IFCTRANSPORTATIONDEVICETYPE, IFCGEOGRAPHICELEMENTTYPE, IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE, IFCFURNISHINGELEMENTTYPE, IFCELEMENTTYPE, IFCTYPEPRODUCT, IFCTASKTYPE, IFCPROCEDURETYPE, IFCEVENTTYPE, IFCTYPEPROCESS, IFCTYPEOBJECT], + 2529465313: [IFCLSHAPEPROFILEDEF, IFCISHAPEPROFILEDEF, IFCELLIPSEPROFILEDEF, IFCCIRCLEHOLLOWPROFILEDEF, IFCCIRCLEPROFILEDEF, IFCCSHAPEPROFILEDEF, IFCASYMMETRICISHAPEPROFILEDEF, IFCZSHAPEPROFILEDEF, IFCUSHAPEPROFILEDEF, IFCTRAPEZIUMPROFILEDEF, IFCTSHAPEPROFILEDEF, IFCRECTANGLEHOLLOWPROFILEDEF, IFCROUNDEDRECTANGLEPROFILEDEF, IFCRECTANGLEPROFILEDEF], + 2004835150: [IFCAXIS2PLACEMENTLINEAR, IFCAXIS2PLACEMENT3D, IFCAXIS2PLACEMENT2D, IFCAXIS1PLACEMENT], + 1663979128: [IFCPLANARBOX], + 2067069095: [IFCCARTESIANPOINT, IFCPOINTONSURFACE, IFCPOINTONCURVE, IFCPOINTBYDISTANCEEXPRESSION], + 3727388367: [IFCDRAUGHTINGPREDEFINEDCURVEFONT, IFCPREDEFINEDCURVEFONT, IFCDRAUGHTINGPREDEFINEDCOLOUR, IFCPREDEFINEDCOLOUR, IFCTEXTSTYLEFONTMODEL, IFCPREDEFINEDTEXTFONT], + 3778827333: [IFCSECTIONREINFORCEMENTPROPERTIES, IFCSECTIONPROPERTIES, IFCREINFORCEMENTBARPROPERTIES], + 1775413392: [IFCTEXTSTYLEFONTMODEL], + 2598011224: [IFCCOMPLEXPROPERTY, IFCPROPERTYTABLEVALUE, IFCPROPERTYSINGLEVALUE, IFCPROPERTYREFERENCEVALUE, IFCPROPERTYLISTVALUE, IFCPROPERTYENUMERATEDVALUE, IFCPROPERTYBOUNDEDVALUE, IFCSIMPLEPROPERTY], + 1680319473: [IFCCOMPLEXPROPERTYTEMPLATE, IFCSIMPLEPROPERTYTEMPLATE, IFCPROPERTYTEMPLATE, IFCPROPERTYSETTEMPLATE, IFCPROPERTYTEMPLATEDEFINITION, IFCPROPERTYSET, IFCPERMEABLECOVERINGPROPERTIES, IFCDOORPANELPROPERTIES, IFCDOORLININGPROPERTIES, IFCWINDOWPANELPROPERTIES, IFCWINDOWLININGPROPERTIES, IFCREINFORCEMENTDEFINITIONPROPERTIES, IFCPREDEFINEDPROPERTYSET, IFCELEMENTQUANTITY, IFCQUANTITYSET, IFCPROPERTYSETDEFINITION], + 3357820518: [IFCPROPERTYSET, IFCPERMEABLECOVERINGPROPERTIES, IFCDOORPANELPROPERTIES, IFCDOORLININGPROPERTIES, IFCWINDOWPANELPROPERTIES, IFCWINDOWLININGPROPERTIES, IFCREINFORCEMENTDEFINITIONPROPERTIES, IFCPREDEFINEDPROPERTYSET, IFCELEMENTQUANTITY, IFCQUANTITYSET], + 1482703590: [IFCCOMPLEXPROPERTYTEMPLATE, IFCSIMPLEPROPERTYTEMPLATE, IFCPROPERTYTEMPLATE, IFCPROPERTYSETTEMPLATE], + 2090586900: [IFCELEMENTQUANTITY], + 3615266464: [IFCRECTANGLEHOLLOWPROFILEDEF, IFCROUNDEDRECTANGLEPROFILEDEF], + 478536968: [IFCRELDEFINESBYTYPE, IFCRELDEFINESBYTEMPLATE, IFCRELDEFINESBYPROPERTIES, IFCRELDEFINESBYOBJECT, IFCRELDEFINES, IFCRELAGGREGATES, IFCRELADHERESTOELEMENT, IFCRELVOIDSELEMENT, IFCRELPROJECTSELEMENT, IFCRELNESTS, IFCRELDECOMPOSES, IFCRELDECLARES, IFCRELSPACEBOUNDARY2NDLEVEL, IFCRELSPACEBOUNDARY1STLEVEL, IFCRELSPACEBOUNDARY, IFCRELSERVICESBUILDINGS, IFCRELSEQUENCE, IFCRELREFERENCEDINSPATIALSTRUCTURE, IFCRELPOSITIONS, IFCRELINTERFERESELEMENTS, IFCRELFLOWCONTROLELEMENTS, IFCRELFILLSELEMENT, IFCRELCOVERSSPACES, IFCRELCOVERSBLDGELEMENTS, IFCRELCONTAINEDINSPATIALSTRUCTURE, IFCRELCONNECTSWITHECCENTRICITY, IFCRELCONNECTSSTRUCTURALMEMBER, IFCRELCONNECTSSTRUCTURALACTIVITY, IFCRELCONNECTSPORTS, IFCRELCONNECTSPORTTOELEMENT, IFCRELCONNECTSWITHREALIZINGELEMENTS, IFCRELCONNECTSPATHELEMENTS, IFCRELCONNECTSELEMENTS, IFCRELCONNECTS, IFCRELASSOCIATESPROFILEDEF, IFCRELASSOCIATESMATERIAL, IFCRELASSOCIATESLIBRARY, IFCRELASSOCIATESDOCUMENT, IFCRELASSOCIATESCONSTRAINT, IFCRELASSOCIATESCLASSIFICATION, IFCRELASSOCIATESAPPROVAL, IFCRELASSOCIATES, IFCRELASSIGNSTORESOURCE, IFCRELASSIGNSTOPRODUCT, IFCRELASSIGNSTOPROCESS, IFCRELASSIGNSTOGROUPBYFACTOR, IFCRELASSIGNSTOGROUP, IFCRELASSIGNSTOCONTROL, IFCRELASSIGNSTOACTOR, IFCRELASSIGNS], + 823603102: [IFCCURVESEGMENT, IFCREPARAMETRISEDCOMPOSITECURVESEGMENT, IFCCOMPOSITECURVESEGMENT], + 3692461612: [IFCPROPERTYTABLEVALUE, IFCPROPERTYSINGLEVALUE, IFCPROPERTYREFERENCEVALUE, IFCPROPERTYLISTVALUE, IFCPROPERTYENUMERATEDVALUE, IFCPROPERTYBOUNDEDVALUE], + 723233188: [IFCSECTIONEDSOLIDHORIZONTAL, IFCSECTIONEDSOLID, IFCFACETEDBREPWITHVOIDS, IFCFACETEDBREP, IFCADVANCEDBREPWITHVOIDS, IFCADVANCEDBREP, IFCMANIFOLDSOLIDBREP, IFCCSGSOLID, IFCSWEPTDISKSOLIDPOLYGONAL, IFCSWEPTDISKSOLID, IFCREVOLVEDAREASOLIDTAPERED, IFCREVOLVEDAREASOLID, IFCEXTRUDEDAREASOLIDTAPERED, IFCEXTRUDEDAREASOLID, IFCSURFACECURVESWEPTAREASOLID, IFCDIRECTRIXDERIVEDREFERENCESWEPTAREASOLID, IFCFIXEDREFERENCESWEPTAREASOLID, IFCDIRECTRIXCURVESWEPTAREASOLID, IFCSWEPTAREASOLID], + 2473145415: [IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION], + 1597423693: [IFCSTRUCTURALLOADSINGLEFORCEWARPING], + 2513912981: [IFCSECTIONEDSURFACE, IFCCYLINDRICALSURFACE, IFCTOROIDALSURFACE, IFCSPHERICALSURFACE, IFCPLANE, IFCELEMENTARYSURFACE, IFCRATIONALBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACE, IFCRECTANGULARTRIMMEDSURFACE, IFCCURVEBOUNDEDSURFACE, IFCCURVEBOUNDEDPLANE, IFCBOUNDEDSURFACE, IFCSURFACEOFREVOLUTION, IFCSURFACEOFLINEAREXTRUSION, IFCSWEPTSURFACE], + 2247615214: [IFCREVOLVEDAREASOLIDTAPERED, IFCREVOLVEDAREASOLID, IFCEXTRUDEDAREASOLIDTAPERED, IFCEXTRUDEDAREASOLID, IFCSURFACECURVESWEPTAREASOLID, IFCDIRECTRIXDERIVEDREFERENCESWEPTAREASOLID, IFCFIXEDREFERENCESWEPTAREASOLID, IFCDIRECTRIXCURVESWEPTAREASOLID], + 1260650574: [IFCSWEPTDISKSOLIDPOLYGONAL], + 230924584: [IFCSURFACEOFREVOLUTION, IFCSURFACEOFLINEAREXTRUSION], + 901063453: [IFCPOLYGONALFACESET, IFCTRIANGULATEDIRREGULARNETWORK, IFCTRIANGULATEDFACESET, IFCTESSELLATEDFACESET, IFCINDEXEDPOLYGONALFACEWITHVOIDS, IFCINDEXEDPOLYGONALFACE], + 4282788508: [IFCTEXTLITERALWITHEXTENT], + 1628702193: [IFCCONSTRUCTIONPRODUCTRESOURCETYPE, IFCCONSTRUCTIONMATERIALRESOURCETYPE, IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE, IFCSUBCONTRACTRESOURCETYPE, IFCLABORRESOURCETYPE, IFCCREWRESOURCETYPE, IFCCONSTRUCTIONRESOURCETYPE, IFCTYPERESOURCE, IFCSPATIALZONETYPE, IFCSPACETYPE, IFCSPATIALSTRUCTUREELEMENTTYPE, IFCSPATIALELEMENTTYPE, IFCDISCRETEACCESSORYTYPE, IFCBUILDINGELEMENTPARTTYPE, IFCVIBRATIONISOLATORTYPE, IFCVIBRATIONDAMPERTYPE, IFCSIGNTYPE, IFCREINFORCINGBARTYPE, IFCTENDONTYPE, IFCTENDONCONDUITTYPE, IFCTENDONANCHORTYPE, IFCREINFORCINGMESHTYPE, IFCREINFORCINGELEMENTTYPE, IFCMECHANICALFASTENERTYPE, IFCIMPACTPROTECTIONDEVICETYPE, IFCFASTENERTYPE, IFCELEMENTCOMPONENTTYPE, IFCELEMENTASSEMBLYTYPE, IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCUNITARYCONTROLELEMENTTYPE, IFCSENSORTYPE, IFCPROTECTIVEDEVICETRIPPINGUNITTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCELECTRICFLOWTREATMENTDEVICETYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSIGNALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMOBILETELECOMMUNICATIONSAPPLIANCETYPE, IFCMEDICALDEVICETYPE, IFCLIQUIDTERMINALTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCONVEYORSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE, IFCDISTRIBUTIONELEMENTTYPE, IFCCIVILELEMENTTYPE, IFCBUILDINGELEMENTPROXYTYPE, IFCBEARINGTYPE, IFCBEAMTYPE, IFCWINDOWTYPE, IFCWALLTYPE, IFCTRACKELEMENTTYPE, IFCSTAIRTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCSHADINGDEVICETYPE, IFCROOFTYPE, IFCRAMPTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCRAILTYPE, IFCPLATETYPE, IFCPAVEMENTTYPE, IFCNAVIGATIONELEMENTTYPE, IFCMOORINGDEVICETYPE, IFCMEMBERTYPE, IFCKERBTYPE, IFCFOOTINGTYPE, IFCDOORTYPE, IFCCAISSONFOUNDATIONTYPE, IFCPILETYPE, IFCDEEPFOUNDATIONTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOURSETYPE, IFCCOLUMNTYPE, IFCCHIMNEYTYPE, IFCBUILTELEMENTTYPE, IFCTRANSPORTELEMENTTYPE, IFCVEHICLETYPE, IFCTRANSPORTATIONDEVICETYPE, IFCGEOGRAPHICELEMENTTYPE, IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE, IFCFURNISHINGELEMENTTYPE, IFCELEMENTTYPE, IFCTYPEPRODUCT, IFCTASKTYPE, IFCPROCEDURETYPE, IFCEVENTTYPE, IFCTYPEPROCESS], + 3736923433: [IFCTASKTYPE, IFCPROCEDURETYPE, IFCEVENTTYPE], + 2347495698: [IFCSPATIALZONETYPE, IFCSPACETYPE, IFCSPATIALSTRUCTUREELEMENTTYPE, IFCSPATIALELEMENTTYPE, IFCDISCRETEACCESSORYTYPE, IFCBUILDINGELEMENTPARTTYPE, IFCVIBRATIONISOLATORTYPE, IFCVIBRATIONDAMPERTYPE, IFCSIGNTYPE, IFCREINFORCINGBARTYPE, IFCTENDONTYPE, IFCTENDONCONDUITTYPE, IFCTENDONANCHORTYPE, IFCREINFORCINGMESHTYPE, IFCREINFORCINGELEMENTTYPE, IFCMECHANICALFASTENERTYPE, IFCIMPACTPROTECTIONDEVICETYPE, IFCFASTENERTYPE, IFCELEMENTCOMPONENTTYPE, IFCELEMENTASSEMBLYTYPE, IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCUNITARYCONTROLELEMENTTYPE, IFCSENSORTYPE, IFCPROTECTIVEDEVICETRIPPINGUNITTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCELECTRICFLOWTREATMENTDEVICETYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSIGNALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMOBILETELECOMMUNICATIONSAPPLIANCETYPE, IFCMEDICALDEVICETYPE, IFCLIQUIDTERMINALTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCONVEYORSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE, IFCDISTRIBUTIONELEMENTTYPE, IFCCIVILELEMENTTYPE, IFCBUILDINGELEMENTPROXYTYPE, IFCBEARINGTYPE, IFCBEAMTYPE, IFCWINDOWTYPE, IFCWALLTYPE, IFCTRACKELEMENTTYPE, IFCSTAIRTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCSHADINGDEVICETYPE, IFCROOFTYPE, IFCRAMPTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCRAILTYPE, IFCPLATETYPE, IFCPAVEMENTTYPE, IFCNAVIGATIONELEMENTTYPE, IFCMOORINGDEVICETYPE, IFCMEMBERTYPE, IFCKERBTYPE, IFCFOOTINGTYPE, IFCDOORTYPE, IFCCAISSONFOUNDATIONTYPE, IFCPILETYPE, IFCDEEPFOUNDATIONTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOURSETYPE, IFCCOLUMNTYPE, IFCCHIMNEYTYPE, IFCBUILTELEMENTTYPE, IFCTRANSPORTELEMENTTYPE, IFCVEHICLETYPE, IFCTRANSPORTATIONDEVICETYPE, IFCGEOGRAPHICELEMENTTYPE, IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE, IFCFURNISHINGELEMENTTYPE, IFCELEMENTTYPE], + 3698973494: [IFCCONSTRUCTIONPRODUCTRESOURCETYPE, IFCCONSTRUCTIONMATERIALRESOURCETYPE, IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE, IFCSUBCONTRACTRESOURCETYPE, IFCLABORRESOURCETYPE, IFCCREWRESOURCETYPE, IFCCONSTRUCTIONRESOURCETYPE], + 2736907675: [IFCBOOLEANCLIPPINGRESULT], + 4182860854: [IFCRATIONALBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACE, IFCRECTANGULARTRIMMEDSURFACE, IFCCURVEBOUNDEDSURFACE, IFCCURVEBOUNDEDPLANE], + 574549367: [IFCCARTESIANPOINTLIST3D, IFCCARTESIANPOINTLIST2D], + 59481748: [IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR3D, IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR2D], + 3749851601: [IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM], + 3331915920: [IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM], + 1383045692: [IFCCIRCLEHOLLOWPROFILEDEF], + 2485617015: [IFCREPARAMETRISEDCOMPOSITECURVESEGMENT], + 2574617495: [IFCCONSTRUCTIONPRODUCTRESOURCETYPE, IFCCONSTRUCTIONMATERIALRESOURCETYPE, IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE, IFCSUBCONTRACTRESOURCETYPE, IFCLABORRESOURCETYPE, IFCCREWRESOURCETYPE], + 3419103109: [IFCPROJECTLIBRARY, IFCPROJECT], + 2506170314: [IFCBLOCK, IFCSPHERE, IFCRIGHTCIRCULARCYLINDER, IFCRIGHTCIRCULARCONE, IFCRECTANGULARPYRAMID], + 2601014836: [IFCCIRCLE, IFCELLIPSE, IFCCONIC, IFCRATIONALBSPLINECURVEWITHKNOTS, IFCBSPLINECURVEWITHKNOTS, IFCBSPLINECURVE, IFCTRIMMEDCURVE, IFCPOLYLINE, IFCINDEXEDPOLYCURVE, IFCSEGMENTEDREFERENCECURVE, IFCGRADIENTCURVE, IFCOUTERBOUNDARYCURVE, IFCBOUNDARYCURVE, IFCCOMPOSITECURVEONSURFACE, IFCCOMPOSITECURVE, IFCBOUNDEDCURVE, IFCSEAMCURVE, IFCINTERSECTIONCURVE, IFCSURFACECURVE, IFCSINESPIRAL, IFCSEVENTHORDERPOLYNOMIALSPIRAL, IFCSECONDORDERPOLYNOMIALSPIRAL, IFCCOSINESPIRAL, IFCCLOTHOID, IFCTHIRDORDERPOLYNOMIALSPIRAL, IFCSPIRAL, IFCPOLYNOMIALCURVE, IFCPCURVE, IFCOFFSETCURVEBYDISTANCES, IFCOFFSETCURVE3D, IFCOFFSETCURVE2D, IFCOFFSETCURVE, IFCLINE], + 593015953: [IFCSURFACECURVESWEPTAREASOLID, IFCDIRECTRIXDERIVEDREFERENCESWEPTAREASOLID, IFCFIXEDREFERENCESWEPTAREASOLID], + 339256511: [IFCDISCRETEACCESSORYTYPE, IFCBUILDINGELEMENTPARTTYPE, IFCVIBRATIONISOLATORTYPE, IFCVIBRATIONDAMPERTYPE, IFCSIGNTYPE, IFCREINFORCINGBARTYPE, IFCTENDONTYPE, IFCTENDONCONDUITTYPE, IFCTENDONANCHORTYPE, IFCREINFORCINGMESHTYPE, IFCREINFORCINGELEMENTTYPE, IFCMECHANICALFASTENERTYPE, IFCIMPACTPROTECTIONDEVICETYPE, IFCFASTENERTYPE, IFCELEMENTCOMPONENTTYPE, IFCELEMENTASSEMBLYTYPE, IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCUNITARYCONTROLELEMENTTYPE, IFCSENSORTYPE, IFCPROTECTIVEDEVICETRIPPINGUNITTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCELECTRICFLOWTREATMENTDEVICETYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSIGNALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMOBILETELECOMMUNICATIONSAPPLIANCETYPE, IFCMEDICALDEVICETYPE, IFCLIQUIDTERMINALTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCONVEYORSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE, IFCDISTRIBUTIONELEMENTTYPE, IFCCIVILELEMENTTYPE, IFCBUILDINGELEMENTPROXYTYPE, IFCBEARINGTYPE, IFCBEAMTYPE, IFCWINDOWTYPE, IFCWALLTYPE, IFCTRACKELEMENTTYPE, IFCSTAIRTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCSHADINGDEVICETYPE, IFCROOFTYPE, IFCRAMPTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCRAILTYPE, IFCPLATETYPE, IFCPAVEMENTTYPE, IFCNAVIGATIONELEMENTTYPE, IFCMOORINGDEVICETYPE, IFCMEMBERTYPE, IFCKERBTYPE, IFCFOOTINGTYPE, IFCDOORTYPE, IFCCAISSONFOUNDATIONTYPE, IFCPILETYPE, IFCDEEPFOUNDATIONTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOURSETYPE, IFCCOLUMNTYPE, IFCCHIMNEYTYPE, IFCBUILTELEMENTTYPE, IFCTRANSPORTELEMENTTYPE, IFCVEHICLETYPE, IFCTRANSPORTATIONDEVICETYPE, IFCGEOGRAPHICELEMENTTYPE, IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE, IFCFURNISHINGELEMENTTYPE], + 2777663545: [IFCCYLINDRICALSURFACE, IFCTOROIDALSURFACE, IFCSPHERICALSURFACE, IFCPLANE], + 477187591: [IFCEXTRUDEDAREASOLIDTAPERED], + 2652556860: [IFCDIRECTRIXDERIVEDREFERENCESWEPTAREASOLID], + 4238390223: [IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE], + 178912537: [IFCINDEXEDPOLYGONALFACEWITHVOIDS], + 1425443689: [IFCFACETEDBREPWITHVOIDS, IFCFACETEDBREP, IFCADVANCEDBREPWITHVOIDS, IFCADVANCEDBREP], + 3888040117: [IFCASSET, IFCSTRUCTURALANALYSISMODEL, IFCDISTRIBUTIONCIRCUIT, IFCDISTRIBUTIONSYSTEM, IFCBUILTSYSTEM, IFCBUILDINGSYSTEM, IFCZONE, IFCSYSTEM, IFCSTRUCTURALRESULTGROUP, IFCSTRUCTURALLOADCASE, IFCSTRUCTURALLOADGROUP, IFCINVENTORY, IFCGROUP, IFCACTIONREQUEST, IFCWORKSCHEDULE, IFCWORKPLAN, IFCWORKCONTROL, IFCWORKCALENDAR, IFCPROJECTORDER, IFCPERMIT, IFCPERFORMANCEHISTORY, IFCCOSTSCHEDULE, IFCCOSTITEM, IFCCONTROL, IFCOCCUPANT, IFCACTOR, IFCCONSTRUCTIONPRODUCTRESOURCE, IFCCONSTRUCTIONMATERIALRESOURCE, IFCCONSTRUCTIONEQUIPMENTRESOURCE, IFCSUBCONTRACTRESOURCE, IFCLABORRESOURCE, IFCCREWRESOURCE, IFCCONSTRUCTIONRESOURCE, IFCRESOURCE, IFCALIGNMENT, IFCLINEARPOSITIONINGELEMENT, IFCGRID, IFCREFERENT, IFCPOSITIONINGELEMENT, IFCDISTRIBUTIONPORT, IFCPORT, IFCALIGNMENTVERTICAL, IFCALIGNMENTSEGMENT, IFCALIGNMENTHORIZONTAL, IFCALIGNMENTCANT, IFCLINEARELEMENT, IFCCONTROLLER, IFCALARM, IFCACTUATOR, IFCUNITARYCONTROLELEMENT, IFCSENSOR, IFCPROTECTIVEDEVICETRIPPINGUNIT, IFCFLOWINSTRUMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFILTER, IFCELECTRICFLOWTREATMENTDEVICE, IFCDUCTSILENCER, IFCINTERCEPTOR, IFCFLOWTREATMENTDEVICE, IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSIGNAL, IFCSANITARYTERMINAL, IFCOUTLET, IFCMOBILETELECOMMUNICATIONSAPPLIANCE, IFCMEDICALDEVICE, IFCLIQUIDTERMINAL, IFCLIGHTFIXTURE, IFCLAMP, IFCFLOWTERMINAL, IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK, IFCFLOWSTORAGEDEVICE, IFCDUCTSEGMENT, IFCCONVEYORSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT, IFCFLOWSEGMENT, IFCFAN, IFCCOMPRESSOR, IFCPUMP, IFCFLOWMOVINGDEVICE, IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX, IFCFLOWFITTING, IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER, IFCFLOWCONTROLLER, IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT, IFCDISTRIBUTIONELEMENT, IFCCIVILELEMENT, IFCBUILDINGELEMENTPROXY, IFCBEARING, IFCBEAM, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALL, IFCTRACKELEMENT, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLAB, IFCSHADINGDEVICE, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCRAIL, IFCPLATE, IFCPAVEMENT, IFCNAVIGATIONELEMENT, IFCMOORINGDEVICE, IFCMEMBER, IFCKERB, IFCFOOTING, IFCREINFORCEDSOIL, IFCEARTHWORKSFILL, IFCEARTHWORKSELEMENT, IFCDOOR, IFCCAISSONFOUNDATION, IFCPILE, IFCDEEPFOUNDATION, IFCCURTAINWALL, IFCCOVERING, IFCCOURSE, IFCCOLUMN, IFCCHIMNEY, IFCBUILTELEMENT, IFCVIRTUALELEMENT, IFCTRANSPORTELEMENT, IFCVEHICLE, IFCTRANSPORTATIONDEVICE, IFCGEOSLICE, IFCGEOMODEL, IFCBOREHOLE, IFCGEOTECHNICALASSEMBLY, IFCGEOTECHNICALSTRATUM, IFCGEOTECHNICALELEMENT, IFCGEOGRAPHICELEMENT, IFCSYSTEMFURNITUREELEMENT, IFCFURNITURE, IFCFURNISHINGELEMENT, IFCSURFACEFEATURE, IFCEARTHWORKSCUT, IFCVOIDINGFEATURE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION, IFCFEATUREELEMENT, IFCDISCRETEACCESSORY, IFCBUILDINGELEMENTPART, IFCVIBRATIONISOLATOR, IFCVIBRATIONDAMPER, IFCSIGN, IFCREINFORCINGBAR, IFCTENDONCONDUIT, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCMECHANICALFASTENER, IFCIMPACTPROTECTIONDEVICE, IFCFASTENER, IFCELEMENTCOMPONENT, IFCELEMENTASSEMBLY, IFCELEMENT, IFCANNOTATION, IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION, IFCSTRUCTURALCONNECTION, IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER, IFCSTRUCTURALMEMBER, IFCSTRUCTURALITEM, IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALSURFACEACTION, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALCURVEACTION, IFCSTRUCTURALACTION, IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALCURVEREACTION, IFCSTRUCTURALSURFACEREACTION, IFCSTRUCTURALREACTION, IFCSTRUCTURALACTIVITY, IFCEXTERNALSPATIALELEMENT, IFCEXTERNALSPATIALSTRUCTUREELEMENT, IFCSPATIALZONE, IFCSPACE, IFCSITE, IFCBRIDGEPART, IFCROADPART, IFCRAILWAYPART, IFCMARINEPART, IFCFACILITYPARTCOMMON, IFCFACILITYPART, IFCBUILDING, IFCBRIDGE, IFCROAD, IFCRAILWAY, IFCMARINEFACILITY, IFCFACILITY, IFCBUILDINGSTOREY, IFCSPATIALSTRUCTUREELEMENT, IFCSPATIALELEMENT, IFCPRODUCT, IFCPROCEDURE, IFCEVENT, IFCTASK, IFCPROCESS], + 590820931: [IFCOFFSETCURVEBYDISTANCES, IFCOFFSETCURVE3D, IFCOFFSETCURVE2D], + 759155922: [IFCDRAUGHTINGPREDEFINEDCOLOUR], + 2559016684: [IFCDRAUGHTINGPREDEFINEDCURVEFONT], + 3967405729: [IFCPERMEABLECOVERINGPROPERTIES, IFCDOORPANELPROPERTIES, IFCDOORLININGPROPERTIES, IFCWINDOWPANELPROPERTIES, IFCWINDOWLININGPROPERTIES, IFCREINFORCEMENTDEFINITIONPROPERTIES], + 2945172077: [IFCPROCEDURE, IFCEVENT, IFCTASK], + 4208778838: [IFCALIGNMENT, IFCLINEARPOSITIONINGELEMENT, IFCGRID, IFCREFERENT, IFCPOSITIONINGELEMENT, IFCDISTRIBUTIONPORT, IFCPORT, IFCALIGNMENTVERTICAL, IFCALIGNMENTSEGMENT, IFCALIGNMENTHORIZONTAL, IFCALIGNMENTCANT, IFCLINEARELEMENT, IFCCONTROLLER, IFCALARM, IFCACTUATOR, IFCUNITARYCONTROLELEMENT, IFCSENSOR, IFCPROTECTIVEDEVICETRIPPINGUNIT, IFCFLOWINSTRUMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFILTER, IFCELECTRICFLOWTREATMENTDEVICE, IFCDUCTSILENCER, IFCINTERCEPTOR, IFCFLOWTREATMENTDEVICE, IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSIGNAL, IFCSANITARYTERMINAL, IFCOUTLET, IFCMOBILETELECOMMUNICATIONSAPPLIANCE, IFCMEDICALDEVICE, IFCLIQUIDTERMINAL, IFCLIGHTFIXTURE, IFCLAMP, IFCFLOWTERMINAL, IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK, IFCFLOWSTORAGEDEVICE, IFCDUCTSEGMENT, IFCCONVEYORSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT, IFCFLOWSEGMENT, IFCFAN, IFCCOMPRESSOR, IFCPUMP, IFCFLOWMOVINGDEVICE, IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX, IFCFLOWFITTING, IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER, IFCFLOWCONTROLLER, IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT, IFCDISTRIBUTIONELEMENT, IFCCIVILELEMENT, IFCBUILDINGELEMENTPROXY, IFCBEARING, IFCBEAM, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALL, IFCTRACKELEMENT, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLAB, IFCSHADINGDEVICE, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCRAIL, IFCPLATE, IFCPAVEMENT, IFCNAVIGATIONELEMENT, IFCMOORINGDEVICE, IFCMEMBER, IFCKERB, IFCFOOTING, IFCREINFORCEDSOIL, IFCEARTHWORKSFILL, IFCEARTHWORKSELEMENT, IFCDOOR, IFCCAISSONFOUNDATION, IFCPILE, IFCDEEPFOUNDATION, IFCCURTAINWALL, IFCCOVERING, IFCCOURSE, IFCCOLUMN, IFCCHIMNEY, IFCBUILTELEMENT, IFCVIRTUALELEMENT, IFCTRANSPORTELEMENT, IFCVEHICLE, IFCTRANSPORTATIONDEVICE, IFCGEOSLICE, IFCGEOMODEL, IFCBOREHOLE, IFCGEOTECHNICALASSEMBLY, IFCGEOTECHNICALSTRATUM, IFCGEOTECHNICALELEMENT, IFCGEOGRAPHICELEMENT, IFCSYSTEMFURNITUREELEMENT, IFCFURNITURE, IFCFURNISHINGELEMENT, IFCSURFACEFEATURE, IFCEARTHWORKSCUT, IFCVOIDINGFEATURE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION, IFCFEATUREELEMENT, IFCDISCRETEACCESSORY, IFCBUILDINGELEMENTPART, IFCVIBRATIONISOLATOR, IFCVIBRATIONDAMPER, IFCSIGN, IFCREINFORCINGBAR, IFCTENDONCONDUIT, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCMECHANICALFASTENER, IFCIMPACTPROTECTIONDEVICE, IFCFASTENER, IFCELEMENTCOMPONENT, IFCELEMENTASSEMBLY, IFCELEMENT, IFCANNOTATION, IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION, IFCSTRUCTURALCONNECTION, IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER, IFCSTRUCTURALMEMBER, IFCSTRUCTURALITEM, IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALSURFACEACTION, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALCURVEACTION, IFCSTRUCTURALACTION, IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALCURVEREACTION, IFCSTRUCTURALSURFACEREACTION, IFCSTRUCTURALREACTION, IFCSTRUCTURALACTIVITY, IFCEXTERNALSPATIALELEMENT, IFCEXTERNALSPATIALSTRUCTUREELEMENT, IFCSPATIALZONE, IFCSPACE, IFCSITE, IFCBRIDGEPART, IFCROADPART, IFCRAILWAYPART, IFCMARINEPART, IFCFACILITYPARTCOMMON, IFCFACILITYPART, IFCBUILDING, IFCBRIDGE, IFCROAD, IFCRAILWAY, IFCMARINEFACILITY, IFCFACILITY, IFCBUILDINGSTOREY, IFCSPATIALSTRUCTUREELEMENT, IFCSPATIALELEMENT], + 3521284610: [IFCCOMPLEXPROPERTYTEMPLATE, IFCSIMPLEPROPERTYTEMPLATE], + 3939117080: [IFCRELASSIGNSTORESOURCE, IFCRELASSIGNSTOPRODUCT, IFCRELASSIGNSTOPROCESS, IFCRELASSIGNSTOGROUPBYFACTOR, IFCRELASSIGNSTOGROUP, IFCRELASSIGNSTOCONTROL, IFCRELASSIGNSTOACTOR], + 1307041759: [IFCRELASSIGNSTOGROUPBYFACTOR], + 1865459582: [IFCRELASSOCIATESPROFILEDEF, IFCRELASSOCIATESMATERIAL, IFCRELASSOCIATESLIBRARY, IFCRELASSOCIATESDOCUMENT, IFCRELASSOCIATESCONSTRAINT, IFCRELASSOCIATESCLASSIFICATION, IFCRELASSOCIATESAPPROVAL], + 826625072: [IFCRELSPACEBOUNDARY2NDLEVEL, IFCRELSPACEBOUNDARY1STLEVEL, IFCRELSPACEBOUNDARY, IFCRELSERVICESBUILDINGS, IFCRELSEQUENCE, IFCRELREFERENCEDINSPATIALSTRUCTURE, IFCRELPOSITIONS, IFCRELINTERFERESELEMENTS, IFCRELFLOWCONTROLELEMENTS, IFCRELFILLSELEMENT, IFCRELCOVERSSPACES, IFCRELCOVERSBLDGELEMENTS, IFCRELCONTAINEDINSPATIALSTRUCTURE, IFCRELCONNECTSWITHECCENTRICITY, IFCRELCONNECTSSTRUCTURALMEMBER, IFCRELCONNECTSSTRUCTURALACTIVITY, IFCRELCONNECTSPORTS, IFCRELCONNECTSPORTTOELEMENT, IFCRELCONNECTSWITHREALIZINGELEMENTS, IFCRELCONNECTSPATHELEMENTS, IFCRELCONNECTSELEMENTS], + 1204542856: [IFCRELCONNECTSWITHREALIZINGELEMENTS, IFCRELCONNECTSPATHELEMENTS], + 1638771189: [IFCRELCONNECTSWITHECCENTRICITY], + 2551354335: [IFCRELAGGREGATES, IFCRELADHERESTOELEMENT, IFCRELVOIDSELEMENT, IFCRELPROJECTSELEMENT, IFCRELNESTS], + 693640335: [IFCRELDEFINESBYTYPE, IFCRELDEFINESBYTEMPLATE, IFCRELDEFINESBYPROPERTIES, IFCRELDEFINESBYOBJECT], + 3451746338: [IFCRELSPACEBOUNDARY2NDLEVEL, IFCRELSPACEBOUNDARY1STLEVEL], + 3523091289: [IFCRELSPACEBOUNDARY2NDLEVEL], + 2914609552: [IFCCONSTRUCTIONPRODUCTRESOURCE, IFCCONSTRUCTIONMATERIALRESOURCE, IFCCONSTRUCTIONEQUIPMENTRESOURCE, IFCSUBCONTRACTRESOURCE, IFCLABORRESOURCE, IFCCREWRESOURCE, IFCCONSTRUCTIONRESOURCE], + 1856042241: [IFCREVOLVEDAREASOLIDTAPERED], + 1862484736: [IFCSECTIONEDSOLIDHORIZONTAL], + 1412071761: [IFCEXTERNALSPATIALELEMENT, IFCEXTERNALSPATIALSTRUCTUREELEMENT, IFCSPATIALZONE, IFCSPACE, IFCSITE, IFCBRIDGEPART, IFCROADPART, IFCRAILWAYPART, IFCMARINEPART, IFCFACILITYPARTCOMMON, IFCFACILITYPART, IFCBUILDING, IFCBRIDGE, IFCROAD, IFCRAILWAY, IFCMARINEFACILITY, IFCFACILITY, IFCBUILDINGSTOREY, IFCSPATIALSTRUCTUREELEMENT], + 710998568: [IFCSPATIALZONETYPE, IFCSPACETYPE, IFCSPATIALSTRUCTUREELEMENTTYPE], + 2706606064: [IFCSPACE, IFCSITE, IFCBRIDGEPART, IFCROADPART, IFCRAILWAYPART, IFCMARINEPART, IFCFACILITYPARTCOMMON, IFCFACILITYPART, IFCBUILDING, IFCBRIDGE, IFCROAD, IFCRAILWAY, IFCMARINEFACILITY, IFCFACILITY, IFCBUILDINGSTOREY], + 3893378262: [IFCSPACETYPE], + 2735484536: [IFCSINESPIRAL, IFCSEVENTHORDERPOLYNOMIALSPIRAL, IFCSECONDORDERPOLYNOMIALSPIRAL, IFCCOSINESPIRAL, IFCCLOTHOID, IFCTHIRDORDERPOLYNOMIALSPIRAL], + 3544373492: [IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALSURFACEACTION, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALCURVEACTION, IFCSTRUCTURALACTION, IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALCURVEREACTION, IFCSTRUCTURALSURFACEREACTION, IFCSTRUCTURALREACTION], + 3136571912: [IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION, IFCSTRUCTURALCONNECTION, IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER, IFCSTRUCTURALMEMBER], + 530289379: [IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER], + 3689010777: [IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALCURVEREACTION, IFCSTRUCTURALSURFACEREACTION], + 3979015343: [IFCSTRUCTURALSURFACEMEMBERVARYING], + 699246055: [IFCSEAMCURVE, IFCINTERSECTIONCURVE], + 2387106220: [IFCPOLYGONALFACESET, IFCTRIANGULATEDIRREGULARNETWORK, IFCTRIANGULATEDFACESET], + 3665877780: [IFCTRANSPORTELEMENTTYPE, IFCVEHICLETYPE], + 2916149573: [IFCTRIANGULATEDIRREGULARNETWORK], + 2296667514: [IFCOCCUPANT], + 1635779807: [IFCADVANCEDBREPWITHVOIDS], + 2887950389: [IFCRATIONALBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACEWITHKNOTS], + 167062518: [IFCRATIONALBSPLINESURFACEWITHKNOTS], + 1260505505: [IFCRATIONALBSPLINECURVEWITHKNOTS, IFCBSPLINECURVEWITHKNOTS, IFCBSPLINECURVE, IFCTRIMMEDCURVE, IFCPOLYLINE, IFCINDEXEDPOLYCURVE, IFCSEGMENTEDREFERENCECURVE, IFCGRADIENTCURVE, IFCOUTERBOUNDARYCURVE, IFCBOUNDARYCURVE, IFCCOMPOSITECURVEONSURFACE, IFCCOMPOSITECURVE], + 1626504194: [IFCBUILDINGELEMENTPROXYTYPE, IFCBEARINGTYPE, IFCBEAMTYPE, IFCWINDOWTYPE, IFCWALLTYPE, IFCTRACKELEMENTTYPE, IFCSTAIRTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCSHADINGDEVICETYPE, IFCROOFTYPE, IFCRAMPTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCRAILTYPE, IFCPLATETYPE, IFCPAVEMENTTYPE, IFCNAVIGATIONELEMENTTYPE, IFCMOORINGDEVICETYPE, IFCMEMBERTYPE, IFCKERBTYPE, IFCFOOTINGTYPE, IFCDOORTYPE, IFCCAISSONFOUNDATIONTYPE, IFCPILETYPE, IFCDEEPFOUNDATIONTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOURSETYPE, IFCCOLUMNTYPE, IFCCHIMNEYTYPE], + 3732776249: [IFCSEGMENTEDREFERENCECURVE, IFCGRADIENTCURVE, IFCOUTERBOUNDARYCURVE, IFCBOUNDARYCURVE, IFCCOMPOSITECURVEONSURFACE], + 15328376: [IFCOUTERBOUNDARYCURVE, IFCBOUNDARYCURVE], + 2510884976: [IFCCIRCLE, IFCELLIPSE], + 2559216714: [IFCCONSTRUCTIONPRODUCTRESOURCE, IFCCONSTRUCTIONMATERIALRESOURCE, IFCCONSTRUCTIONEQUIPMENTRESOURCE, IFCSUBCONTRACTRESOURCE, IFCLABORRESOURCE, IFCCREWRESOURCE], + 3293443760: [IFCACTIONREQUEST, IFCWORKSCHEDULE, IFCWORKPLAN, IFCWORKCONTROL, IFCWORKCALENDAR, IFCPROJECTORDER, IFCPERMIT, IFCPERFORMANCEHISTORY, IFCCOSTSCHEDULE, IFCCOSTITEM], + 1306400036: [IFCCAISSONFOUNDATIONTYPE, IFCPILETYPE], + 3256556792: [IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCUNITARYCONTROLELEMENTTYPE, IFCSENSORTYPE, IFCPROTECTIVEDEVICETRIPPINGUNITTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCELECTRICFLOWTREATMENTDEVICETYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSIGNALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMOBILETELECOMMUNICATIONSAPPLIANCETYPE, IFCMEDICALDEVICETYPE, IFCLIQUIDTERMINALTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCONVEYORSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE], + 3849074793: [IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCELECTRICFLOWTREATMENTDEVICETYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSIGNALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMOBILETELECOMMUNICATIONSAPPLIANCETYPE, IFCMEDICALDEVICETYPE, IFCLIQUIDTERMINALTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCONVEYORSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE, IFCENERGYCONVERSIONDEVICETYPE], + 1758889154: [IFCCONTROLLER, IFCALARM, IFCACTUATOR, IFCUNITARYCONTROLELEMENT, IFCSENSOR, IFCPROTECTIVEDEVICETRIPPINGUNIT, IFCFLOWINSTRUMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFILTER, IFCELECTRICFLOWTREATMENTDEVICE, IFCDUCTSILENCER, IFCINTERCEPTOR, IFCFLOWTREATMENTDEVICE, IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSIGNAL, IFCSANITARYTERMINAL, IFCOUTLET, IFCMOBILETELECOMMUNICATIONSAPPLIANCE, IFCMEDICALDEVICE, IFCLIQUIDTERMINAL, IFCLIGHTFIXTURE, IFCLAMP, IFCFLOWTERMINAL, IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK, IFCFLOWSTORAGEDEVICE, IFCDUCTSEGMENT, IFCCONVEYORSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT, IFCFLOWSEGMENT, IFCFAN, IFCCOMPRESSOR, IFCPUMP, IFCFLOWMOVINGDEVICE, IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX, IFCFLOWFITTING, IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER, IFCFLOWCONTROLLER, IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT, IFCDISTRIBUTIONELEMENT, IFCCIVILELEMENT, IFCBUILDINGELEMENTPROXY, IFCBEARING, IFCBEAM, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALL, IFCTRACKELEMENT, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLAB, IFCSHADINGDEVICE, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCRAIL, IFCPLATE, IFCPAVEMENT, IFCNAVIGATIONELEMENT, IFCMOORINGDEVICE, IFCMEMBER, IFCKERB, IFCFOOTING, IFCREINFORCEDSOIL, IFCEARTHWORKSFILL, IFCEARTHWORKSELEMENT, IFCDOOR, IFCCAISSONFOUNDATION, IFCPILE, IFCDEEPFOUNDATION, IFCCURTAINWALL, IFCCOVERING, IFCCOURSE, IFCCOLUMN, IFCCHIMNEY, IFCBUILTELEMENT, IFCVIRTUALELEMENT, IFCTRANSPORTELEMENT, IFCVEHICLE, IFCTRANSPORTATIONDEVICE, IFCGEOSLICE, IFCGEOMODEL, IFCBOREHOLE, IFCGEOTECHNICALASSEMBLY, IFCGEOTECHNICALSTRATUM, IFCGEOTECHNICALELEMENT, IFCGEOGRAPHICELEMENT, IFCSYSTEMFURNITUREELEMENT, IFCFURNITURE, IFCFURNISHINGELEMENT, IFCSURFACEFEATURE, IFCEARTHWORKSCUT, IFCVOIDINGFEATURE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION, IFCFEATUREELEMENT, IFCDISCRETEACCESSORY, IFCBUILDINGELEMENTPART, IFCVIBRATIONISOLATOR, IFCVIBRATIONDAMPER, IFCSIGN, IFCREINFORCINGBAR, IFCTENDONCONDUIT, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCMECHANICALFASTENER, IFCIMPACTPROTECTIONDEVICE, IFCFASTENER, IFCELEMENTCOMPONENT, IFCELEMENTASSEMBLY], + 1623761950: [IFCDISCRETEACCESSORY, IFCBUILDINGELEMENTPART, IFCVIBRATIONISOLATOR, IFCVIBRATIONDAMPER, IFCSIGN, IFCREINFORCINGBAR, IFCTENDONCONDUIT, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCMECHANICALFASTENER, IFCIMPACTPROTECTIONDEVICE, IFCFASTENER], + 2590856083: [IFCDISCRETEACCESSORYTYPE, IFCBUILDINGELEMENTPARTTYPE, IFCVIBRATIONISOLATORTYPE, IFCVIBRATIONDAMPERTYPE, IFCSIGNTYPE, IFCREINFORCINGBARTYPE, IFCTENDONTYPE, IFCTENDONCONDUITTYPE, IFCTENDONANCHORTYPE, IFCREINFORCINGMESHTYPE, IFCREINFORCINGELEMENTTYPE, IFCMECHANICALFASTENERTYPE, IFCIMPACTPROTECTIONDEVICETYPE, IFCFASTENERTYPE], + 2107101300: [IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE], + 2853485674: [IFCEXTERNALSPATIALELEMENT], + 807026263: [IFCFACETEDBREPWITHVOIDS], + 24185140: [IFCBUILDING, IFCBRIDGE, IFCROAD, IFCRAILWAY, IFCMARINEFACILITY], + 1310830890: [IFCBRIDGEPART, IFCROADPART, IFCRAILWAYPART, IFCMARINEPART, IFCFACILITYPARTCOMMON], + 2827207264: [IFCSURFACEFEATURE, IFCEARTHWORKSCUT, IFCVOIDINGFEATURE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION], + 2143335405: [IFCPROJECTIONELEMENT], + 1287392070: [IFCEARTHWORKSCUT, IFCVOIDINGFEATURE, IFCOPENINGELEMENT], + 3907093117: [IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE], + 3198132628: [IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE], + 1482959167: [IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE], + 1834744321: [IFCDUCTSEGMENTTYPE, IFCCONVEYORSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE], + 1339347760: [IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE], + 2297155007: [IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSIGNALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMOBILETELECOMMUNICATIONSAPPLIANCETYPE, IFCMEDICALDEVICETYPE, IFCLIQUIDTERMINALTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE], + 3009222698: [IFCFILTERTYPE, IFCELECTRICFLOWTREATMENTDEVICETYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE], + 263784265: [IFCSYSTEMFURNITUREELEMENT, IFCFURNITURE], + 4230923436: [IFCGEOSLICE, IFCGEOMODEL, IFCBOREHOLE, IFCGEOTECHNICALASSEMBLY, IFCGEOTECHNICALSTRATUM], + 2706460486: [IFCASSET, IFCSTRUCTURALANALYSISMODEL, IFCDISTRIBUTIONCIRCUIT, IFCDISTRIBUTIONSYSTEM, IFCBUILTSYSTEM, IFCBUILDINGSYSTEM, IFCZONE, IFCSYSTEM, IFCSTRUCTURALRESULTGROUP, IFCSTRUCTURALLOADCASE, IFCSTRUCTURALLOADGROUP, IFCINVENTORY], + 2176059722: [IFCALIGNMENTVERTICAL, IFCALIGNMENTSEGMENT, IFCALIGNMENTHORIZONTAL, IFCALIGNMENTCANT], + 3740093272: [IFCDISTRIBUTIONPORT], + 1946335990: [IFCALIGNMENT, IFCLINEARPOSITIONINGELEMENT, IFCGRID, IFCREFERENT], + 3027567501: [IFCREINFORCINGBAR, IFCTENDONCONDUIT, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH], + 964333572: [IFCREINFORCINGBARTYPE, IFCTENDONTYPE, IFCTENDONCONDUITTYPE, IFCTENDONANCHORTYPE, IFCREINFORCINGMESHTYPE], + 682877961: [IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALSURFACEACTION, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALCURVEACTION], + 1179482911: [IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION], + 1004757350: [IFCSTRUCTURALLINEARACTION], + 214636428: [IFCSTRUCTURALCURVEMEMBERVARYING], + 1252848954: [IFCSTRUCTURALLOADCASE], + 3657597509: [IFCSTRUCTURALPLANARACTION], + 2254336722: [IFCSTRUCTURALANALYSISMODEL, IFCDISTRIBUTIONCIRCUIT, IFCDISTRIBUTIONSYSTEM, IFCBUILTSYSTEM, IFCBUILDINGSYSTEM, IFCZONE], + 1953115116: [IFCTRANSPORTELEMENT, IFCVEHICLE], + 1028945134: [IFCWORKSCHEDULE, IFCWORKPLAN], + 1967976161: [IFCRATIONALBSPLINECURVEWITHKNOTS, IFCBSPLINECURVEWITHKNOTS], + 2461110595: [IFCRATIONALBSPLINECURVEWITHKNOTS], + 1136057603: [IFCOUTERBOUNDARYCURVE], + 1876633798: [IFCBUILDINGELEMENTPROXY, IFCBEARING, IFCBEAM, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALL, IFCTRACKELEMENT, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLAB, IFCSHADINGDEVICE, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCRAIL, IFCPLATE, IFCPAVEMENT, IFCNAVIGATIONELEMENT, IFCMOORINGDEVICE, IFCMEMBER, IFCKERB, IFCFOOTING, IFCREINFORCEDSOIL, IFCEARTHWORKSFILL, IFCEARTHWORKSELEMENT, IFCDOOR, IFCCAISSONFOUNDATION, IFCPILE, IFCDEEPFOUNDATION, IFCCURTAINWALL, IFCCOVERING, IFCCOURSE, IFCCOLUMN, IFCCHIMNEY], + 3426335179: [IFCCAISSONFOUNDATION, IFCPILE], + 2063403501: [IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCUNITARYCONTROLELEMENTTYPE, IFCSENSORTYPE, IFCPROTECTIVEDEVICETRIPPINGUNITTYPE, IFCFLOWINSTRUMENTTYPE], + 1945004755: [IFCCONTROLLER, IFCALARM, IFCACTUATOR, IFCUNITARYCONTROLELEMENT, IFCSENSOR, IFCPROTECTIVEDEVICETRIPPINGUNIT, IFCFLOWINSTRUMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFILTER, IFCELECTRICFLOWTREATMENTDEVICE, IFCDUCTSILENCER, IFCINTERCEPTOR, IFCFLOWTREATMENTDEVICE, IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSIGNAL, IFCSANITARYTERMINAL, IFCOUTLET, IFCMOBILETELECOMMUNICATIONSAPPLIANCE, IFCMEDICALDEVICE, IFCLIQUIDTERMINAL, IFCLIGHTFIXTURE, IFCLAMP, IFCFLOWTERMINAL, IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK, IFCFLOWSTORAGEDEVICE, IFCDUCTSEGMENT, IFCCONVEYORSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT, IFCFLOWSEGMENT, IFCFAN, IFCCOMPRESSOR, IFCPUMP, IFCFLOWMOVINGDEVICE, IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX, IFCFLOWFITTING, IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER, IFCFLOWCONTROLLER, IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT], + 3040386961: [IFCDISTRIBUTIONCHAMBERELEMENT, IFCFILTER, IFCELECTRICFLOWTREATMENTDEVICE, IFCDUCTSILENCER, IFCINTERCEPTOR, IFCFLOWTREATMENTDEVICE, IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSIGNAL, IFCSANITARYTERMINAL, IFCOUTLET, IFCMOBILETELECOMMUNICATIONSAPPLIANCE, IFCMEDICALDEVICE, IFCLIQUIDTERMINAL, IFCLIGHTFIXTURE, IFCLAMP, IFCFLOWTERMINAL, IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK, IFCFLOWSTORAGEDEVICE, IFCDUCTSEGMENT, IFCCONVEYORSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT, IFCFLOWSEGMENT, IFCFAN, IFCCOMPRESSOR, IFCPUMP, IFCFLOWMOVINGDEVICE, IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX, IFCFLOWFITTING, IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER, IFCFLOWCONTROLLER, IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE, IFCENERGYCONVERSIONDEVICE], + 3205830791: [IFCDISTRIBUTIONCIRCUIT], + 1077100507: [IFCREINFORCEDSOIL, IFCEARTHWORKSFILL], + 1658829314: [IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE], + 2058353004: [IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER], + 4278956645: [IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX], + 3132237377: [IFCFAN, IFCCOMPRESSOR, IFCPUMP], + 987401354: [IFCDUCTSEGMENT, IFCCONVEYORSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT], + 707683696: [IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK], + 2223149337: [IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSIGNAL, IFCSANITARYTERMINAL, IFCOUTLET, IFCMOBILETELECOMMUNICATIONSAPPLIANCE, IFCMEDICALDEVICE, IFCLIQUIDTERMINAL, IFCLIGHTFIXTURE, IFCLAMP], + 3508470533: [IFCFILTER, IFCELECTRICFLOWTREATMENTDEVICE, IFCDUCTSILENCER, IFCINTERCEPTOR], + 2713699986: [IFCGEOSLICE, IFCGEOMODEL, IFCBOREHOLE], + 1154579445: [IFCALIGNMENT], + 2391406946: [IFCWALLSTANDARDCASE], + 1062813311: [IFCCONTROLLER, IFCALARM, IFCACTUATOR, IFCUNITARYCONTROLELEMENT, IFCSENSOR, IFCPROTECTIVEDEVICETRIPPINGUNIT, IFCFLOWINSTRUMENT] +}; +InversePropertyDef[3] = { + 3630933823: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]], + 618182010: [["OfPerson", IFCPERSON, 7, true], ["OfOrganization", IFCORGANIZATION, 4, true]], + 411424972: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]], + 130549933: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["ApprovedObjects", IFCRELASSOCIATESAPPROVAL, 5, true], ["ApprovedResources", IFCRESOURCEAPPROVALRELATIONSHIP, 3, true], ["IsRelatedWith", IFCAPPROVALRELATIONSHIP, 3, true], ["Relates", IFCAPPROVALRELATIONSHIP, 2, true]], + 1959218052: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PropertiesForConstraint", IFCRESOURCECONSTRAINTRELATIONSHIP, 2, true]], + 1466758467: [["HasCoordinateOperation", IFCCOORDINATEOPERATION, 0, true]], + 602808272: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]], + 3200245327: [["ExternalReferenceForResources", IFCEXTERNALREFERENCERELATIONSHIP, 2, true]], + 2242383968: [["ExternalReferenceForResources", IFCEXTERNALREFERENCERELATIONSHIP, 2, true]], + 1040185647: [["ExternalReferenceForResources", IFCEXTERNALREFERENCERELATIONSHIP, 2, true]], + 3548104201: [["ExternalReferenceForResources", IFCEXTERNALREFERENCERELATIONSHIP, 2, true]], + 852622518: [["PartOfW", IFCGRID, 9, true], ["PartOfV", IFCGRID, 8, true], ["PartOfU", IFCGRID, 7, true], ["HasIntersections", IFCVIRTUALGRIDINTERSECTION, 0, true]], + 2655187982: [["LibraryInfoForObjects", IFCRELASSOCIATESLIBRARY, 5, true], ["HasLibraryReferences", IFCLIBRARYREFERENCE, 5, true]], + 3452421091: [["ExternalReferenceForResources", IFCEXTERNALREFERENCERELATIONSHIP, 2, true], ["LibraryRefForObjects", IFCRELASSOCIATESLIBRARY, 5, true]], + 760658860: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true], ["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCMATERIALPROPERTIES, 3, true]], + 248100487: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true], ["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCMATERIALPROPERTIES, 3, true], ["ToMaterialLayerSet", IFCMATERIALLAYERSET, 0, false]], + 3303938423: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true], ["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCMATERIALPROPERTIES, 3, true]], + 1847252529: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true], ["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCMATERIALPROPERTIES, 3, true], ["ToMaterialLayerSet", IFCMATERIALLAYERSET, 0, false]], + 2235152071: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true], ["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCMATERIALPROPERTIES, 3, true], ["ToMaterialProfileSet", IFCMATERIALPROFILESET, 2, false]], + 164193824: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true], ["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCMATERIALPROPERTIES, 3, true]], + 552965576: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true], ["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCMATERIALPROPERTIES, 3, true], ["ToMaterialProfileSet", IFCMATERIALPROFILESET, 2, false]], + 1507914824: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true]], + 3368373690: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PropertiesForConstraint", IFCRESOURCECONSTRAINTRELATIONSHIP, 2, true]], + 3701648758: [["PlacesObject", IFCPRODUCT, 5, true], ["ReferencedByPlacements", IFCOBJECTPLACEMENT, 0, true]], + 2251480897: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PropertiesForConstraint", IFCRESOURCECONSTRAINTRELATIONSHIP, 2, true]], + 4251960020: [["IsRelatedBy", IFCORGANIZATIONRELATIONSHIP, 3, true], ["Relates", IFCORGANIZATIONRELATIONSHIP, 2, true], ["Engages", IFCPERSONANDORGANIZATION, 1, true]], + 2077209135: [["EngagedIn", IFCPERSONANDORGANIZATION, 0, true]], + 2483315170: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]], + 2226359599: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]], + 3355820592: [["OfPerson", IFCPERSON, 7, true], ["OfOrganization", IFCORGANIZATION, 4, true]], + 3958567839: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], + 3843373140: [["HasCoordinateOperation", IFCCOORDINATEOPERATION, 0, true]], + 986844984: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]], + 3710013099: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]], + 2044713172: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]], + 2093928680: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]], + 931644368: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]], + 2691318326: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]], + 3252649465: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]], + 2405470396: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]], + 825690147: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]], + 1076942058: [["RepresentationMap", IFCREPRESENTATIONMAP, 1, true], ["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["OfProductRepresentation", IFCPRODUCTREPRESENTATION, 2, true]], + 3377609919: [["RepresentationsInContext", IFCREPRESENTATION, 0, true]], + 3008791417: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 1660063152: [["HasShapeAspects", IFCSHAPEASPECT, 4, true], ["MapUsage", IFCMAPPEDITEM, 0, true]], + 867548509: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]], + 3982875396: [["RepresentationMap", IFCREPRESENTATIONMAP, 1, true], ["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["OfProductRepresentation", IFCPRODUCTREPRESENTATION, 2, true], ["OfShapeAspect", IFCSHAPEASPECT, 0, true]], + 4240577450: [["RepresentationMap", IFCREPRESENTATIONMAP, 1, true], ["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["OfProductRepresentation", IFCPRODUCTREPRESENTATION, 2, true], ["OfShapeAspect", IFCSHAPEASPECT, 0, true]], + 2830218821: [["RepresentationMap", IFCREPRESENTATIONMAP, 1, true], ["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["OfProductRepresentation", IFCPRODUCTREPRESENTATION, 2, true]], + 3958052878: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3049322572: [["RepresentationMap", IFCREPRESENTATIONMAP, 1, true], ["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["OfProductRepresentation", IFCPRODUCTREPRESENTATION, 2, true]], + 626085974: [["IsMappedBy", IFCTEXTURECOORDINATE, 0, true], ["UsedInStyles", IFCSURFACESTYLEWITHTEXTURES, 0, true]], + 912023232: [["OfPerson", IFCPERSON, 7, true], ["OfOrganization", IFCORGANIZATION, 4, true]], + 222769930: [["ToTexMap", IFCINDEXEDPOLYGONALTEXTUREMAP, 3, false]], + 1010789467: [["ToTexMap", IFCINDEXEDPOLYGONALTEXTUREMAP, 3, false]], + 3101149627: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]], + 1377556343: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 1735638870: [["RepresentationMap", IFCREPRESENTATIONMAP, 1, true], ["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["OfProductRepresentation", IFCPRODUCTREPRESENTATION, 2, true], ["OfShapeAspect", IFCSHAPEASPECT, 0, true]], + 2799835756: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 1907098498: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3798115385: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], + 1310608509: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], + 2705031697: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], + 616511568: [["IsMappedBy", IFCTEXTURECOORDINATE, 0, true], ["UsedInStyles", IFCSURFACESTYLEWITHTEXTURES, 0, true]], + 3150382593: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], + 747523909: [["ClassificationForObjects", IFCRELASSOCIATESCLASSIFICATION, 5, true], ["HasReferences", IFCCLASSIFICATIONREFERENCE, 3, true]], + 647927063: [["ExternalReferenceForResources", IFCEXTERNALREFERENCERELATIONSHIP, 2, true], ["ClassificationRefForObjects", IFCRELASSOCIATESCLASSIFICATION, 5, true], ["HasReferences", IFCCLASSIFICATIONREFERENCE, 3, true]], + 1485152156: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], + 370225590: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3050246964: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]], + 2889183280: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]], + 2713554722: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]], + 3632507154: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], + 1154170062: [["DocumentInfoForObjects", IFCRELASSOCIATESDOCUMENT, 5, true], ["HasDocumentReferences", IFCDOCUMENTREFERENCE, 4, true], ["IsPointedTo", IFCDOCUMENTINFORMATIONRELATIONSHIP, 3, true], ["IsPointer", IFCDOCUMENTINFORMATIONRELATIONSHIP, 2, true]], + 3732053477: [["ExternalReferenceForResources", IFCEXTERNALREFERENCERELATIONSHIP, 2, true], ["DocumentRefForObjects", IFCRELASSOCIATESDOCUMENT, 5, true]], + 3900360178: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 476780140: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 297599258: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]], + 2556980723: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["HasTextureMaps", IFCTEXTUREMAP, 2, true]], + 1809719519: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 803316827: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3008276851: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["HasTextureMaps", IFCTEXTUREMAP, 2, true]], + 3448662350: [["RepresentationsInContext", IFCREPRESENTATION, 0, true], ["HasSubContexts", IFCGEOMETRICREPRESENTATIONSUBCONTEXT, 6, true], ["HasCoordinateOperation", IFCCOORDINATEOPERATION, 0, true]], + 2453401579: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 4142052618: [["RepresentationsInContext", IFCREPRESENTATION, 0, true], ["HasSubContexts", IFCGEOMETRICREPRESENTATIONSUBCONTEXT, 6, true], ["HasCoordinateOperation", IFCCOORDINATEOPERATION, 0, true]], + 3590301190: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 178086475: [["PlacesObject", IFCPRODUCT, 5, true], ["ReferencedByPlacements", IFCOBJECTPLACEMENT, 0, true]], + 812098782: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3905492369: [["IsMappedBy", IFCTEXTURECOORDINATE, 0, true], ["UsedInStyles", IFCSURFACESTYLEWITHTEXTURES, 0, true]], + 3741457305: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]], + 1402838566: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 125510826: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2604431987: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 4266656042: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 1520743889: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3422422726: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 388784114: [["PlacesObject", IFCPRODUCT, 5, true], ["ReferencedByPlacements", IFCOBJECTPLACEMENT, 0, true]], + 2624227202: [["PlacesObject", IFCPRODUCT, 5, true], ["ReferencedByPlacements", IFCOBJECTPLACEMENT, 0, true]], + 1008929658: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2347385850: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 1838606355: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true], ["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCMATERIALPROPERTIES, 3, true], ["HasRepresentation", IFCMATERIALDEFINITIONREPRESENTATION, 3, true], ["IsRelatedWith", IFCMATERIALRELATIONSHIP, 3, true], ["RelatesTo", IFCMATERIALRELATIONSHIP, 2, true]], + 3708119e3: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true], ["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCMATERIALPROPERTIES, 3, true], ["ToMaterialConstituentSet", IFCMATERIALCONSTITUENTSET, 2, false]], + 2852063980: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true], ["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCMATERIALPROPERTIES, 3, true]], + 1303795690: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true]], + 3079605661: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true]], + 3404854881: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true]], + 3265635763: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]], + 2998442950: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], + 219451334: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true]], + 182550632: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], + 2665983363: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 1029017970: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2529465313: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], + 2519244187: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3021840470: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]], + 597895409: [["IsMappedBy", IFCTEXTURECOORDINATE, 0, true], ["UsedInStyles", IFCSURFACESTYLEWITHTEXTURES, 0, true]], + 2004835150: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 1663979128: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2067069095: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2165702409: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 4022376103: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 1423911732: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2924175390: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2775532180: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3778827333: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]], + 673634403: [["ShapeOfProduct", IFCPRODUCT, 6, true], ["HasShapeAspects", IFCSHAPEASPECT, 4, true]], + 2802850158: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]], + 2598011224: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfPset", IFCPROPERTYSET, 4, true], ["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true], ["HasConstraints", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], ["HasApprovals", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]], + 1680319473: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true]], + 3357820518: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["DefinesType", IFCTYPEOBJECT, 5, true], ["IsDefinedBy", IFCRELDEFINESBYTEMPLATE, 4, true], ["DefinesOccurrence", IFCRELDEFINESBYPROPERTIES, 5, true]], + 1482703590: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true]], + 2090586900: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["DefinesType", IFCTYPEOBJECT, 5, true], ["IsDefinedBy", IFCRELDEFINESBYTEMPLATE, 4, true], ["DefinesOccurrence", IFCRELDEFINESBYPROPERTIES, 5, true]], + 3615266464: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], + 3413951693: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]], + 1580146022: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]], + 2778083089: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], + 2042790032: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]], + 4165799628: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]], + 1509187699: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 823603102: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["UsingCurves", IFCCOMPOSITECURVE, 0, true]], + 4124623270: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3692461612: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfPset", IFCPROPERTYSET, 4, true], ["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true], ["HasConstraints", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], ["HasApprovals", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]], + 723233188: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2233826070: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2513912981: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2247615214: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 1260650574: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 1096409881: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 230924584: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3071757647: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], + 901063453: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 4282788508: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3124975700: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2715220739: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], + 1628702193: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true]], + 3736923433: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["OperatesOn", IFCRELASSIGNSTOPROCESS, 6, true]], + 2347495698: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 3698973494: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], + 427810014: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], + 1417489154: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2759199220: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2543172580: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], + 3406155212: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["HasTextureMaps", IFCTEXTUREMAP, 2, true]], + 669184980: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3207858831: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], + 4261334040: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3125803723: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2740243338: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3425423356: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2736907675: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 4182860854: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2581212453: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2713105998: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2898889636: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], + 1123145078: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 574549367: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 1675464909: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2059837836: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 59481748: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3749851601: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3486308946: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3331915920: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 1416205885: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 1383045692: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], + 2205249479: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2542286263: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfPset", IFCPROPERTYSET, 4, true], ["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true], ["HasConstraints", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], ["HasApprovals", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]], + 2485617015: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["UsingCurves", IFCCOMPOSITECURVE, 0, true]], + 2574617495: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], + 3419103109: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Declares", IFCRELDECLARES, 4, true]], + 1815067380: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], + 2506170314: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2147822146: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2601014836: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2827736869: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2629017746: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 4212018352: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["UsingCurves", IFCCOMPOSITECURVE, 0, true]], + 32440307: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 593015953: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 1472233963: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 1883228015: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["DefinesType", IFCTYPEOBJECT, 5, true], ["IsDefinedBy", IFCRELDEFINESBYTEMPLATE, 4, true], ["DefinesOccurrence", IFCRELDEFINESBYPROPERTIES, 5, true]], + 339256511: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 2777663545: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2835456948: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], + 4024345920: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["OperatesOn", IFCRELASSIGNSTOPROCESS, 6, true]], + 477187591: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2804161546: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2047409740: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 374418227: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 315944413: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2652556860: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 4238390223: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1268542332: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 4095422895: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 987898635: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 1484403080: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], + 178912537: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["ToFaceSet", IFCPOLYGONALFACESET, 2, true], ["HasTexCoords", IFCTEXTURECOORDINATEINDICES, 1, true]], + 2294589976: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["ToFaceSet", IFCPOLYGONALFACESET, 2, true], ["HasTexCoords", IFCTEXTURECOORDINATEINDICES, 1, true]], + 572779678: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], + 428585644: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], + 1281925730: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 1425443689: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3888040117: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true]], + 590820931: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3388369263: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3505215534: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2485787929: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 1682466193: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 603570806: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 220341763: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3381221214: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3967405729: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["DefinesType", IFCTYPEOBJECT, 5, true], ["IsDefinedBy", IFCRELDEFINESBYTEMPLATE, 4, true], ["DefinesOccurrence", IFCRELDEFINESBYPROPERTIES, 5, true]], + 569719735: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["OperatesOn", IFCRELASSIGNSTOPROCESS, 6, true]], + 2945172077: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsPredecessorTo", IFCRELSEQUENCE, 4, true], ["IsSuccessorFrom", IFCRELSEQUENCE, 5, true], ["OperatesOn", IFCRELASSIGNSTOPROCESS, 6, true]], + 4208778838: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]], + 103090709: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Declares", IFCRELDECLARES, 4, true]], + 653396225: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Declares", IFCRELDECLARES, 4, true]], + 871118103: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfPset", IFCPROPERTYSET, 4, true], ["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true], ["HasConstraints", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], ["HasApprovals", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]], + 4166981789: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfPset", IFCPROPERTYSET, 4, true], ["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true], ["HasConstraints", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], ["HasApprovals", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]], + 2752243245: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfPset", IFCPROPERTYSET, 4, true], ["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true], ["HasConstraints", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], ["HasApprovals", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]], + 941946838: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfPset", IFCPROPERTYSET, 4, true], ["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true], ["HasConstraints", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], ["HasApprovals", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]], + 1451395588: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["DefinesType", IFCTYPEOBJECT, 5, true], ["IsDefinedBy", IFCRELDEFINESBYTEMPLATE, 4, true], ["DefinesOccurrence", IFCRELDEFINESBYPROPERTIES, 5, true]], + 492091185: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Defines", IFCRELDEFINESBYTEMPLATE, 5, true]], + 3650150729: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfPset", IFCPROPERTYSET, 4, true], ["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true], ["HasConstraints", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], ["HasApprovals", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]], + 110355661: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfPset", IFCPROPERTYSET, 4, true], ["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true], ["HasConstraints", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], ["HasApprovals", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]], + 3521284610: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["PartOfComplexTemplate", IFCCOMPLEXPROPERTYTEMPLATE, 6, true], ["PartOfPsetTemplate", IFCPROPERTYSETTEMPLATE, 6, true]], + 2770003689: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], + 2798486643: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3454111270: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3765753017: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["DefinesType", IFCTYPEOBJECT, 5, true], ["IsDefinedBy", IFCRELDEFINESBYTEMPLATE, 4, true], ["DefinesOccurrence", IFCRELDEFINESBYPROPERTIES, 5, true]], + 3523091289: [["InnerBoundaries", IFCRELSPACEBOUNDARY1STLEVEL, 9, true]], + 1521410863: [["InnerBoundaries", IFCRELSPACEBOUNDARY1STLEVEL, 9, true], ["Corresponds", IFCRELSPACEBOUNDARY2NDLEVEL, 10, true]], + 816062949: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["UsingCurves", IFCCOMPOSITECURVE, 0, true]], + 2914609552: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], + 1856042241: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3243963512: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 4158566097: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3626867408: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 1862484736: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 1290935644: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 1356537516: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3663146110: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["PartOfComplexTemplate", IFCCOMPLEXPROPERTYTEMPLATE, 6, true], ["PartOfPsetTemplate", IFCPROPERTYSETTEMPLATE, 6, true]], + 1412071761: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true]], + 710998568: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 2706606064: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true]], + 3893378262: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 463610769: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true]], + 2481509218: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 451544542: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 4015995234: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2735484536: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3544373492: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]], + 3136571912: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true]], + 530289379: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ConnectedBy", IFCRELCONNECTSSTRUCTURALMEMBER, 4, true]], + 3689010777: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]], + 3979015343: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ConnectedBy", IFCRELCONNECTSSTRUCTURALMEMBER, 4, true]], + 2218152070: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ConnectedBy", IFCRELCONNECTSSTRUCTURALMEMBER, 4, true]], + 603775116: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]], + 4095615324: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], + 699246055: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2028607225: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2809605785: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 4124788165: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 1580310250: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 3473067441: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsPredecessorTo", IFCRELSEQUENCE, 4, true], ["IsSuccessorFrom", IFCRELSEQUENCE, 5, true], ["OperatesOn", IFCRELASSIGNSTOPROCESS, 6, true]], + 3206491090: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["OperatesOn", IFCRELASSIGNSTOPROCESS, 6, true]], + 2387106220: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["HasColours", IFCINDEXEDCOLOURMAP, 0, true], ["HasTextures", IFCINDEXEDTEXTUREMAP, 1, true]], + 782932809: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 1935646853: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3665877780: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 2916149573: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["HasColours", IFCINDEXEDCOLOURMAP, 0, true], ["HasTextures", IFCINDEXEDTEXTUREMAP, 1, true]], + 1229763772: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["HasColours", IFCINDEXEDCOLOURMAP, 0, true], ["HasTextures", IFCINDEXEDTEXTUREMAP, 1, true]], + 3651464721: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 336235671: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["DefinesType", IFCTYPEOBJECT, 5, true], ["IsDefinedBy", IFCRELDEFINESBYTEMPLATE, 4, true], ["DefinesOccurrence", IFCRELDEFINESBYPROPERTIES, 5, true]], + 512836454: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["DefinesType", IFCTYPEOBJECT, 5, true], ["IsDefinedBy", IFCRELDEFINESBYTEMPLATE, 4, true], ["DefinesOccurrence", IFCRELDEFINESBYPROPERTIES, 5, true]], + 2296667514: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsActingUpon", IFCRELASSIGNSTOACTOR, 6, true]], + 1635779807: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2603310189: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 1674181508: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], + 2887950389: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 167062518: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 1334484129: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3649129432: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 1260505505: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3124254112: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true]], + 1626504194: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 2197970202: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 2937912522: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], + 3893394355: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 3497074424: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 300633059: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 3875453745: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["PartOfComplexTemplate", IFCCOMPLEXPROPERTYTEMPLATE, 6, true], ["PartOfPsetTemplate", IFCPROPERTYSETTEMPLATE, 6, true]], + 3732776249: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 15328376: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2510884976: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2185764099: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], + 4105962743: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], + 1525564444: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], + 2559216714: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], + 3293443760: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], + 2000195564: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3895139033: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], + 1419761937: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], + 4189326743: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1916426348: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 3295246426: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], + 1457835157: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1213902940: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 1306400036: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 4234616927: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3256556792: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 3849074793: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 2963535650: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["DefinesType", IFCTYPEOBJECT, 5, true], ["IsDefinedBy", IFCRELDEFINESBYTEMPLATE, 4, true], ["DefinesOccurrence", IFCRELDEFINESBYPROPERTIES, 5, true]], + 1714330368: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["DefinesType", IFCTYPEOBJECT, 5, true], ["IsDefinedBy", IFCRELDEFINESBYTEMPLATE, 4, true], ["DefinesOccurrence", IFCRELDEFINESBYPROPERTIES, 5, true]], + 2323601079: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1758889154: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], + 4123344466: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], + 2397081782: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1623761950: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], + 2590856083: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1704287377: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2107101300: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 132023988: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 3174744832: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 3390157468: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 4148101412: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsPredecessorTo", IFCRELSEQUENCE, 4, true], ["IsSuccessorFrom", IFCRELSEQUENCE, 5, true], ["OperatesOn", IFCRELASSIGNSTOPROCESS, 6, true]], + 2853485674: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true]], + 807026263: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3737207727: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 24185140: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true]], + 1310830890: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true]], + 4228831410: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true]], + 647756555: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], + 2489546625: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 2827207264: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], + 2143335405: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["ProjectsElements", IFCRELPROJECTSELEMENT, 5, false]], + 1287392070: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["VoidsElements", IFCRELVOIDSELEMENT, 5, false]], + 3907093117: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 3198132628: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 3815607619: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1482959167: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1834744321: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1339347760: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 2297155007: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 3009222698: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1893162501: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 263784265: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], + 1509553395: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], + 3493046030: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], + 4230923436: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], + 1594536857: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], + 2898700619: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2706460486: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]], + 1251058090: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1806887404: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 2568555532: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], + 3948183225: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 2571569899: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3946677679: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 3113134337: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2391368822: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]], + 4288270099: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 679976338: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 3827777499: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], + 1051575348: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1161773419: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 2176059722: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]], + 1770583370: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 525669439: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true]], + 976884017: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true]], + 377706215: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], + 2108223431: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1114901282: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 3181161470: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1950438474: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 710110818: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 977012517: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 506776471: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 4143007308: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsActingUpon", IFCRELASSIGNSTOACTOR, 6, true]], + 3588315303: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["VoidsElements", IFCRELVOIDSELEMENT, 5, false], ["HasFillings", IFCRELFILLSELEMENT, 4, true]], + 2837617999: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 514975943: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 2382730787: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], + 3566463478: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["DefinesType", IFCTYPEOBJECT, 5, true], ["IsDefinedBy", IFCRELDEFINESBYTEMPLATE, 4, true], ["DefinesOccurrence", IFCRELDEFINESBYPROPERTIES, 5, true]], + 3327091369: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], + 1158309216: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 804291784: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 4231323485: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 4017108033: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 2839578677: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["HasColours", IFCINDEXEDCOLOURMAP, 0, true], ["HasTextures", IFCINDEXEDTEXTUREMAP, 1, true]], + 3724593414: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3740093272: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainedIn", IFCRELCONNECTSPORTTOELEMENT, 4, true], ["ConnectedFrom", IFCRELCONNECTSPORTS, 5, true], ["ConnectedTo", IFCRELCONNECTSPORTS, 4, true]], + 1946335990: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["Positions", IFCRELPOSITIONS, 4, true]], + 2744685151: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsPredecessorTo", IFCRELSEQUENCE, 4, true], ["IsSuccessorFrom", IFCRELSEQUENCE, 5, true], ["OperatesOn", IFCRELASSIGNSTOPROCESS, 6, true]], + 2904328755: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], + 3651124850: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["ProjectsElements", IFCRELPROJECTSELEMENT, 5, false]], + 1842657554: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 2250791053: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1763565496: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 2893384427: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 3992365140: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true]], + 1891881377: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true]], + 2324767716: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1469900589: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 683857671: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 4021432810: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["Positions", IFCRELPOSITIONS, 4, true]], + 3027567501: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], + 964333572: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 2320036040: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], + 2310774935: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 146592293: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true]], + 550521510: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true]], + 2781568857: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1768891740: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 2157484638: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3649235739: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 544395925: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 1027922057: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 4074543187: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 33720170: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], + 3599934289: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1894708472: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 42703149: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 4097777520: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true]], + 2533589738: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1072016465: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 3856911033: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasCoverings", IFCRELCOVERSSPACES, 4, true], ["BoundedBy", IFCRELSPACEBOUNDARY, 4, true]], + 1305183839: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 3812236995: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 3112655638: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1039846685: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 338393293: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 682877961: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]], + 1179482911: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ConnectsStructuralMembers", IFCRELCONNECTSSTRUCTURALMEMBER, 5, true]], + 1004757350: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]], + 4243806635: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ConnectsStructuralMembers", IFCRELCONNECTSSTRUCTURALMEMBER, 5, true]], + 214636428: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ConnectedBy", IFCRELCONNECTSSTRUCTURALMEMBER, 4, true]], + 2445595289: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ConnectedBy", IFCRELCONNECTSSTRUCTURALMEMBER, 4, true]], + 2757150158: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]], + 1807405624: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]], + 1252848954: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["SourceOfResultGroup", IFCSTRUCTURALRESULTGROUP, 6, true], ["LoadGroupFor", IFCSTRUCTURALANALYSISMODEL, 7, true]], + 2082059205: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]], + 734778138: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ConnectsStructuralMembers", IFCRELCONNECTSSTRUCTURALMEMBER, 5, true]], + 1235345126: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]], + 2986769608: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ResultGroupFor", IFCSTRUCTURALANALYSISMODEL, 8, true]], + 3657597509: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]], + 1975003073: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ConnectsStructuralMembers", IFCRELCONNECTSSTRUCTURALMEMBER, 5, true]], + 148013059: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], + 3101698114: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["AdheresToElement", IFCRELADHERESTOELEMENT, 5, false]], + 2315554128: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 2254336722: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ServicesBuildings", IFCRELSERVICESBUILDINGS, 4, true], ["ServicesFacilities", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]], + 413509423: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], + 5716631: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 3824725483: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], + 2347447852: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], + 3081323446: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 3663046924: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], + 2281632017: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 2415094496: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 618700268: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1692211062: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 2097647324: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1953115116: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], + 3593883385: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 1600972822: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1911125066: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 728799441: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 840318589: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], + 1530820697: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], + 3956297820: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 2391383451: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], + 3313531582: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 2769231204: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], + 926996030: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["VoidsElements", IFCRELVOIDSELEMENT, 5, false]], + 1898987631: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1133259667: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 4009809668: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 4088093105: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], + 1028945134: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], + 4218914973: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], + 3342526732: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], + 1033361043: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ServicesBuildings", IFCRELSERVICESBUILDINGS, 4, true], ["ServicesFacilities", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]], + 3821786052: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], + 1411407467: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 3352864051: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1871374353: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 4266260250: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]], + 1545765605: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]], + 317615605: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]], + 1662888072: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]], + 3460190687: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]], + 1532957894: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1967976161: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 2461110595: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 819618141: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 3649138523: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 231477066: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1136057603: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 644574406: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true]], + 963979645: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true]], + 4031249490: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true]], + 2979338954: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], + 39481116: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1909888760: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1177604601: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ServicesBuildings", IFCRELSERVICESBUILDINGS, 4, true], ["ServicesFacilities", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]], + 1876633798: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], + 3862327254: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ServicesBuildings", IFCRELSERVICESBUILDINGS, 4, true], ["ServicesFacilities", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]], + 2188180465: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 395041908: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 3293546465: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 2674252688: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1285652485: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 3203706013: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 2951183804: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 3296154744: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], + 2611217952: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 1677625105: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], + 2301859152: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 843113511: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], + 400855858: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 3850581409: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 2816379211: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 3898045240: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], + 1060000209: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], + 488727124: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], + 2940368186: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 335055490: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 2954562838: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1502416096: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], + 1973544240: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["CoversSpaces", IFCRELCOVERSSPACES, 5, true], ["CoversElements", IFCRELCOVERSBLDGELEMENTS, 5, true]], + 3495092785: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], + 3961806047: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 3426335179: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], + 1335981549: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], + 2635815018: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 479945903: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1599208980: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 2063403501: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1945004755: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true]], + 3040386961: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 3041715199: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainedIn", IFCRELCONNECTSPORTTOELEMENT, 4, true], ["ConnectedFrom", IFCRELCONNECTSPORTS, 5, true], ["ConnectedTo", IFCRELCONNECTSPORTS, 4, true]], + 3205830791: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ServicesBuildings", IFCRELSERVICESBUILDINGS, 4, true], ["ServicesFacilities", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]], + 395920057: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], + 869906466: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 3760055223: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 2030761528: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 3071239417: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["VoidsElements", IFCRELVOIDSELEMENT, 5, false]], + 1077100507: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], + 3376911765: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], + 663422040: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 2417008758: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 3277789161: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 2142170206: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1534661035: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1217240411: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 712377611: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1658829314: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 2814081492: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 3747195512: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 484807127: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 1209101575: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["BoundedBy", IFCRELSPACEBOUNDARY, 4, true]], + 346874300: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1810631287: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 4222183408: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 2058353004: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 4278956645: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 4037862832: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 2188021234: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 3132237377: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 987401354: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 707683696: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 2223149337: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 3508470533: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 900683007: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], + 2713699986: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], + 3009204131: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["Positions", IFCRELPOSITIONS, 4, true]], + 3319311131: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 2068733104: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 4175244083: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 2176052936: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 2696325953: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], + 76236018: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 629592764: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 1154579445: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["Positions", IFCRELPOSITIONS, 4, true]], + 1638804497: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 1437502449: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 1073191201: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], + 2078563270: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 234836483: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], + 2474470126: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 2182337498: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], + 144952367: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3694346114: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 1383356374: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], + 1687234759: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], + 310824031: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 3612865200: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 3171933400: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], + 738039164: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 655969474: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 90941305: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 3290496277: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], + 2262370178: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], + 3024970846: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], + 3283111854: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], + 1232101972: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], + 3798194928: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], + 979691226: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], + 2572171363: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 2016517767: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], + 3053780830: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 1783015770: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1329646415: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], + 991950508: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 1529196076: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], + 3420628829: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 1999602285: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 1404847402: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 331165859: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], + 4252922144: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], + 2515109513: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ServicesBuildings", IFCRELSERVICESBUILDINGS, 4, true], ["ServicesFacilities", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]], + 385403989: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["SourceOfResultGroup", IFCSTRUCTURALRESULTGROUP, 6, true], ["LoadGroupFor", IFCSTRUCTURALANALYSISMODEL, 7, true]], + 1621171031: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]], + 1162798199: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 812556717: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 3425753595: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], + 3825984169: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 1620046519: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], + 3026737570: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 3179687236: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 4292641817: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 4207607924: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 2391406946: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], + 3512223829: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], + 4237592921: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 3304561284: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], + 2874132201: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 1634111441: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 177149247: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 2056796094: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 3001207471: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 325726236: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["Positions", IFCRELPOSITIONS, 4, true]], + 277319702: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 753842376: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], + 4196446775: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], + 32344328: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 3314249567: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], + 1095909175: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], + 2938176219: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 635142910: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 3758799889: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 1051757585: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 4217484030: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 3999819293: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], + 3902619387: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 639361253: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 3221913625: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 3571504051: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 2272882330: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 578613899: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], + 3460952963: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 4136498852: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 3640358203: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 4074379575: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 3693000487: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 1052013943: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 562808652: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ServicesBuildings", IFCRELSERVICESBUILDINGS, 4, true], ["ServicesFacilities", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]], + 1062813311: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["AssignedToFlowElement", IFCRELFLOWCONTROLELEMENTS, 4, true]], + 342316401: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 3518393246: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 1360408905: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 1904799276: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 862014818: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 3310460725: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 24726584: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 264262732: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 402227799: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 1003880860: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 3415622556: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 819412036: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 1426591983: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], + 182646315: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["AssignedToFlowElement", IFCRELFLOWCONTROLELEMENTS, 4, true]], + 2680139844: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], + 1971632696: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], + 2295281155: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["AssignedToFlowElement", IFCRELFLOWCONTROLELEMENTS, 4, true]], + 4086658281: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["AssignedToFlowElement", IFCRELFLOWCONTROLELEMENTS, 4, true]], + 630975310: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["AssignedToFlowElement", IFCRELFLOWCONTROLELEMENTS, 4, true]], + 4288193352: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["AssignedToFlowElement", IFCRELFLOWCONTROLELEMENTS, 4, true]], + 3087945054: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["AssignedToFlowElement", IFCRELFLOWCONTROLELEMENTS, 4, true]], + 25142252: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["AssignedToFlowElement", IFCRELFLOWCONTROLELEMENTS, 4, true]] +}; +Constructors[3] = { + 3630933823: (a) => new IFC4X3$1.IfcActorRole(a[0], a[1], a[2]), + 618182010: (a) => new IFC4X3$1.IfcAddress(a[0], a[1], a[2]), + 2879124712: (a) => new IFC4X3$1.IfcAlignmentParameterSegment(a[0], a[1]), + 3633395639: (a) => new IFC4X3$1.IfcAlignmentVerticalSegment(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 639542469: (a) => new IFC4X3$1.IfcApplication(a[0], a[1], a[2], a[3]), + 411424972: (a) => new IFC4X3$1.IfcAppliedValue(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 130549933: (a) => new IFC4X3$1.IfcApproval(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 4037036970: (a) => new IFC4X3$1.IfcBoundaryCondition(a[0]), + 1560379544: (a) => new IFC4X3$1.IfcBoundaryEdgeCondition(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 3367102660: (a) => new IFC4X3$1.IfcBoundaryFaceCondition(a[0], a[1], a[2], a[3]), + 1387855156: (a) => new IFC4X3$1.IfcBoundaryNodeCondition(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 2069777674: (a) => new IFC4X3$1.IfcBoundaryNodeConditionWarping(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 2859738748: (_) => new IFC4X3$1.IfcConnectionGeometry(), + 2614616156: (a) => new IFC4X3$1.IfcConnectionPointGeometry(a[0], a[1]), + 2732653382: (a) => new IFC4X3$1.IfcConnectionSurfaceGeometry(a[0], a[1]), + 775493141: (a) => new IFC4X3$1.IfcConnectionVolumeGeometry(a[0], a[1]), + 1959218052: (a) => new IFC4X3$1.IfcConstraint(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 1785450214: (a) => new IFC4X3$1.IfcCoordinateOperation(a[0], a[1]), + 1466758467: (a) => new IFC4X3$1.IfcCoordinateReferenceSystem(a[0], a[1], a[2], a[3]), + 602808272: (a) => new IFC4X3$1.IfcCostValue(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1765591967: (a) => new IFC4X3$1.IfcDerivedUnit(a[0], a[1], a[2], a[3]), + 1045800335: (a) => new IFC4X3$1.IfcDerivedUnitElement(a[0], a[1]), + 2949456006: (a) => new IFC4X3$1.IfcDimensionalExponents(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 4294318154: (_) => new IFC4X3$1.IfcExternalInformation(), + 3200245327: (a) => new IFC4X3$1.IfcExternalReference(a[0], a[1], a[2]), + 2242383968: (a) => new IFC4X3$1.IfcExternallyDefinedHatchStyle(a[0], a[1], a[2]), + 1040185647: (a) => new IFC4X3$1.IfcExternallyDefinedSurfaceStyle(a[0], a[1], a[2]), + 3548104201: (a) => new IFC4X3$1.IfcExternallyDefinedTextFont(a[0], a[1], a[2]), + 852622518: (a) => new IFC4X3$1.IfcGridAxis(a[0], a[1], a[2]), + 3020489413: (a) => new IFC4X3$1.IfcIrregularTimeSeriesValue(a[0], a[1]), + 2655187982: (a) => new IFC4X3$1.IfcLibraryInformation(a[0], a[1], a[2], a[3], a[4], a[5]), + 3452421091: (a) => new IFC4X3$1.IfcLibraryReference(a[0], a[1], a[2], a[3], a[4], a[5]), + 4162380809: (a) => new IFC4X3$1.IfcLightDistributionData(a[0], a[1], a[2]), + 1566485204: (a) => new IFC4X3$1.IfcLightIntensityDistribution(a[0], a[1]), + 3057273783: (a) => new IFC4X3$1.IfcMapConversion(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1847130766: (a) => new IFC4X3$1.IfcMaterialClassificationRelationship(a[0], a[1]), + 760658860: (_) => new IFC4X3$1.IfcMaterialDefinition(), + 248100487: (a) => new IFC4X3$1.IfcMaterialLayer(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 3303938423: (a) => new IFC4X3$1.IfcMaterialLayerSet(a[0], a[1], a[2]), + 1847252529: (a) => new IFC4X3$1.IfcMaterialLayerWithOffsets(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2199411900: (a) => new IFC4X3$1.IfcMaterialList(a[0]), + 2235152071: (a) => new IFC4X3$1.IfcMaterialProfile(a[0], a[1], a[2], a[3], a[4], a[5]), + 164193824: (a) => new IFC4X3$1.IfcMaterialProfileSet(a[0], a[1], a[2], a[3]), + 552965576: (a) => new IFC4X3$1.IfcMaterialProfileWithOffsets(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 1507914824: (_) => new IFC4X3$1.IfcMaterialUsageDefinition(), + 2597039031: (a) => new IFC4X3$1.IfcMeasureWithUnit(a[0], a[1]), + 3368373690: (a) => new IFC4X3$1.IfcMetric(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), + 2706619895: (a) => new IFC4X3$1.IfcMonetaryUnit(a[0]), + 1918398963: (a) => new IFC4X3$1.IfcNamedUnit(a[0], a[1]), + 3701648758: (a) => new IFC4X3$1.IfcObjectPlacement(a[0]), + 2251480897: (a) => new IFC4X3$1.IfcObjective(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), + 4251960020: (a) => new IFC4X3$1.IfcOrganization(a[0], a[1], a[2], a[3], a[4]), + 1207048766: (a) => new IFC4X3$1.IfcOwnerHistory(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 2077209135: (a) => new IFC4X3$1.IfcPerson(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 101040310: (a) => new IFC4X3$1.IfcPersonAndOrganization(a[0], a[1], a[2]), + 2483315170: (a) => new IFC4X3$1.IfcPhysicalQuantity(a[0], a[1]), + 2226359599: (a) => new IFC4X3$1.IfcPhysicalSimpleQuantity(a[0], a[1], a[2]), + 3355820592: (a) => new IFC4X3$1.IfcPostalAddress(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 677532197: (_) => new IFC4X3$1.IfcPresentationItem(), + 2022622350: (a) => new IFC4X3$1.IfcPresentationLayerAssignment(a[0], a[1], a[2], a[3]), + 1304840413: (a) => new IFC4X3$1.IfcPresentationLayerWithStyle(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 3119450353: (a) => new IFC4X3$1.IfcPresentationStyle(a[0]), + 2095639259: (a) => new IFC4X3$1.IfcProductRepresentation(a[0], a[1], a[2]), + 3958567839: (a) => new IFC4X3$1.IfcProfileDef(a[0], a[1]), + 3843373140: (a) => new IFC4X3$1.IfcProjectedCRS(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 986844984: (_) => new IFC4X3$1.IfcPropertyAbstraction(), + 3710013099: (a) => new IFC4X3$1.IfcPropertyEnumeration(a[0], a[1], a[2]), + 2044713172: (a) => new IFC4X3$1.IfcQuantityArea(a[0], a[1], a[2], a[3], a[4]), + 2093928680: (a) => new IFC4X3$1.IfcQuantityCount(a[0], a[1], a[2], a[3], a[4]), + 931644368: (a) => new IFC4X3$1.IfcQuantityLength(a[0], a[1], a[2], a[3], a[4]), + 2691318326: (a) => new IFC4X3$1.IfcQuantityNumber(a[0], a[1], a[2], a[3], a[4]), + 3252649465: (a) => new IFC4X3$1.IfcQuantityTime(a[0], a[1], a[2], a[3], a[4]), + 2405470396: (a) => new IFC4X3$1.IfcQuantityVolume(a[0], a[1], a[2], a[3], a[4]), + 825690147: (a) => new IFC4X3$1.IfcQuantityWeight(a[0], a[1], a[2], a[3], a[4]), + 3915482550: (a) => new IFC4X3$1.IfcRecurrencePattern(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 2433181523: (a) => new IFC4X3$1.IfcReference(a[0], a[1], a[2], a[3], a[4]), + 1076942058: (a) => new IFC4X3$1.IfcRepresentation(a[0], a[1], a[2], a[3]), + 3377609919: (a) => new IFC4X3$1.IfcRepresentationContext(a[0], a[1]), + 3008791417: (_) => new IFC4X3$1.IfcRepresentationItem(), + 1660063152: (a) => new IFC4X3$1.IfcRepresentationMap(a[0], a[1]), + 2439245199: (a) => new IFC4X3$1.IfcResourceLevelRelationship(a[0], a[1]), + 2341007311: (a) => new IFC4X3$1.IfcRoot(a[0], a[1], a[2], a[3]), + 448429030: (a) => new IFC4X3$1.IfcSIUnit(a[0], a[1], a[2], a[3]), + 1054537805: (a) => new IFC4X3$1.IfcSchedulingTime(a[0], a[1], a[2]), + 867548509: (a) => new IFC4X3$1.IfcShapeAspect(a[0], a[1], a[2], a[3], a[4]), + 3982875396: (a) => new IFC4X3$1.IfcShapeModel(a[0], a[1], a[2], a[3]), + 4240577450: (a) => new IFC4X3$1.IfcShapeRepresentation(a[0], a[1], a[2], a[3]), + 2273995522: (a) => new IFC4X3$1.IfcStructuralConnectionCondition(a[0]), + 2162789131: (a) => new IFC4X3$1.IfcStructuralLoad(a[0]), + 3478079324: (a) => new IFC4X3$1.IfcStructuralLoadConfiguration(a[0], a[1], a[2]), + 609421318: (a) => new IFC4X3$1.IfcStructuralLoadOrResult(a[0]), + 2525727697: (a) => new IFC4X3$1.IfcStructuralLoadStatic(a[0]), + 3408363356: (a) => new IFC4X3$1.IfcStructuralLoadTemperature(a[0], a[1], a[2], a[3]), + 2830218821: (a) => new IFC4X3$1.IfcStyleModel(a[0], a[1], a[2], a[3]), + 3958052878: (a) => new IFC4X3$1.IfcStyledItem(a[0], a[1], a[2]), + 3049322572: (a) => new IFC4X3$1.IfcStyledRepresentation(a[0], a[1], a[2], a[3]), + 2934153892: (a) => new IFC4X3$1.IfcSurfaceReinforcementArea(a[0], a[1], a[2], a[3]), + 1300840506: (a) => new IFC4X3$1.IfcSurfaceStyle(a[0], a[1], a[2]), + 3303107099: (a) => new IFC4X3$1.IfcSurfaceStyleLighting(a[0], a[1], a[2], a[3]), + 1607154358: (a) => new IFC4X3$1.IfcSurfaceStyleRefraction(a[0], a[1]), + 846575682: (a) => new IFC4X3$1.IfcSurfaceStyleShading(a[0], a[1]), + 1351298697: (a) => new IFC4X3$1.IfcSurfaceStyleWithTextures(a[0]), + 626085974: (a) => new IFC4X3$1.IfcSurfaceTexture(a[0], a[1], a[2], a[3], a[4]), + 985171141: (a) => new IFC4X3$1.IfcTable(a[0], a[1], a[2]), + 2043862942: (a) => new IFC4X3$1.IfcTableColumn(a[0], a[1], a[2], a[3], a[4]), + 531007025: (a) => new IFC4X3$1.IfcTableRow(a[0], a[1]), + 1549132990: (a) => new IFC4X3$1.IfcTaskTime(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17], a[18], a[19]), + 2771591690: (a) => new IFC4X3$1.IfcTaskTimeRecurring(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17], a[18], a[19], a[20]), + 912023232: (a) => new IFC4X3$1.IfcTelecomAddress(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1447204868: (a) => new IFC4X3$1.IfcTextStyle(a[0], a[1], a[2], a[3], a[4]), + 2636378356: (a) => new IFC4X3$1.IfcTextStyleForDefinedFont(a[0], a[1]), + 1640371178: (a) => new IFC4X3$1.IfcTextStyleTextModel(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 280115917: (a) => new IFC4X3$1.IfcTextureCoordinate(a[0]), + 1742049831: (a) => new IFC4X3$1.IfcTextureCoordinateGenerator(a[0], a[1], a[2]), + 222769930: (a) => new IFC4X3$1.IfcTextureCoordinateIndices(a[0], a[1]), + 1010789467: (a) => new IFC4X3$1.IfcTextureCoordinateIndicesWithVoids(a[0], a[1], a[2]), + 2552916305: (a) => new IFC4X3$1.IfcTextureMap(a[0], a[1], a[2]), + 1210645708: (a) => new IFC4X3$1.IfcTextureVertex(a[0]), + 3611470254: (a) => new IFC4X3$1.IfcTextureVertexList(a[0]), + 1199560280: (a) => new IFC4X3$1.IfcTimePeriod(a[0], a[1]), + 3101149627: (a) => new IFC4X3$1.IfcTimeSeries(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 581633288: (a) => new IFC4X3$1.IfcTimeSeriesValue(a[0]), + 1377556343: (_) => new IFC4X3$1.IfcTopologicalRepresentationItem(), + 1735638870: (a) => new IFC4X3$1.IfcTopologyRepresentation(a[0], a[1], a[2], a[3]), + 180925521: (a) => new IFC4X3$1.IfcUnitAssignment(a[0]), + 2799835756: (_) => new IFC4X3$1.IfcVertex(), + 1907098498: (a) => new IFC4X3$1.IfcVertexPoint(a[0]), + 891718957: (a) => new IFC4X3$1.IfcVirtualGridIntersection(a[0], a[1]), + 1236880293: (a) => new IFC4X3$1.IfcWorkTime(a[0], a[1], a[2], a[3], a[4], a[5]), + 3752311538: (a) => new IFC4X3$1.IfcAlignmentCantSegment(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 536804194: (a) => new IFC4X3$1.IfcAlignmentHorizontalSegment(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3869604511: (a) => new IFC4X3$1.IfcApprovalRelationship(a[0], a[1], a[2], a[3]), + 3798115385: (a) => new IFC4X3$1.IfcArbitraryClosedProfileDef(a[0], a[1], a[2]), + 1310608509: (a) => new IFC4X3$1.IfcArbitraryOpenProfileDef(a[0], a[1], a[2]), + 2705031697: (a) => new IFC4X3$1.IfcArbitraryProfileDefWithVoids(a[0], a[1], a[2], a[3]), + 616511568: (a) => new IFC4X3$1.IfcBlobTexture(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 3150382593: (a) => new IFC4X3$1.IfcCenterLineProfileDef(a[0], a[1], a[2], a[3]), + 747523909: (a) => new IFC4X3$1.IfcClassification(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 647927063: (a) => new IFC4X3$1.IfcClassificationReference(a[0], a[1], a[2], a[3], a[4], a[5]), + 3285139300: (a) => new IFC4X3$1.IfcColourRgbList(a[0]), + 3264961684: (a) => new IFC4X3$1.IfcColourSpecification(a[0]), + 1485152156: (a) => new IFC4X3$1.IfcCompositeProfileDef(a[0], a[1], a[2], a[3]), + 370225590: (a) => new IFC4X3$1.IfcConnectedFaceSet(a[0]), + 1981873012: (a) => new IFC4X3$1.IfcConnectionCurveGeometry(a[0], a[1]), + 45288368: (a) => new IFC4X3$1.IfcConnectionPointEccentricity(a[0], a[1], a[2], a[3], a[4]), + 3050246964: (a) => new IFC4X3$1.IfcContextDependentUnit(a[0], a[1], a[2]), + 2889183280: (a) => new IFC4X3$1.IfcConversionBasedUnit(a[0], a[1], a[2], a[3]), + 2713554722: (a) => new IFC4X3$1.IfcConversionBasedUnitWithOffset(a[0], a[1], a[2], a[3], a[4]), + 539742890: (a) => new IFC4X3$1.IfcCurrencyRelationship(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 3800577675: (a) => new IFC4X3$1.IfcCurveStyle(a[0], a[1], a[2], a[3], a[4]), + 1105321065: (a) => new IFC4X3$1.IfcCurveStyleFont(a[0], a[1]), + 2367409068: (a) => new IFC4X3$1.IfcCurveStyleFontAndScaling(a[0], a[1], a[2]), + 3510044353: (a) => new IFC4X3$1.IfcCurveStyleFontPattern(a[0], a[1]), + 3632507154: (a) => new IFC4X3$1.IfcDerivedProfileDef(a[0], a[1], a[2], a[3], a[4]), + 1154170062: (a) => new IFC4X3$1.IfcDocumentInformation(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16]), + 770865208: (a) => new IFC4X3$1.IfcDocumentInformationRelationship(a[0], a[1], a[2], a[3], a[4]), + 3732053477: (a) => new IFC4X3$1.IfcDocumentReference(a[0], a[1], a[2], a[3], a[4]), + 3900360178: (a) => new IFC4X3$1.IfcEdge(a[0], a[1]), + 476780140: (a) => new IFC4X3$1.IfcEdgeCurve(a[0], a[1], a[2], a[3]), + 211053100: (a) => new IFC4X3$1.IfcEventTime(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 297599258: (a) => new IFC4X3$1.IfcExtendedProperties(a[0], a[1], a[2]), + 1437805879: (a) => new IFC4X3$1.IfcExternalReferenceRelationship(a[0], a[1], a[2], a[3]), + 2556980723: (a) => new IFC4X3$1.IfcFace(a[0]), + 1809719519: (a) => new IFC4X3$1.IfcFaceBound(a[0], a[1]), + 803316827: (a) => new IFC4X3$1.IfcFaceOuterBound(a[0], a[1]), + 3008276851: (a) => new IFC4X3$1.IfcFaceSurface(a[0], a[1], a[2]), + 4219587988: (a) => new IFC4X3$1.IfcFailureConnectionCondition(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 738692330: (a) => new IFC4X3$1.IfcFillAreaStyle(a[0], a[1], a[2]), + 3448662350: (a) => new IFC4X3$1.IfcGeometricRepresentationContext(a[0], a[1], a[2], a[3], a[4], a[5]), + 2453401579: (_) => new IFC4X3$1.IfcGeometricRepresentationItem(), + 4142052618: (a) => new IFC4X3$1.IfcGeometricRepresentationSubContext(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 3590301190: (a) => new IFC4X3$1.IfcGeometricSet(a[0]), + 178086475: (a) => new IFC4X3$1.IfcGridPlacement(a[0], a[1], a[2]), + 812098782: (a) => new IFC4X3$1.IfcHalfSpaceSolid(a[0], a[1]), + 3905492369: (a) => new IFC4X3$1.IfcImageTexture(a[0], a[1], a[2], a[3], a[4], a[5]), + 3570813810: (a) => new IFC4X3$1.IfcIndexedColourMap(a[0], a[1], a[2], a[3]), + 1437953363: (a) => new IFC4X3$1.IfcIndexedTextureMap(a[0], a[1], a[2]), + 2133299955: (a) => new IFC4X3$1.IfcIndexedTriangleTextureMap(a[0], a[1], a[2], a[3]), + 3741457305: (a) => new IFC4X3$1.IfcIrregularTimeSeries(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1585845231: (a) => new IFC4X3$1.IfcLagTime(a[0], a[1], a[2], a[3], a[4]), + 1402838566: (a) => new IFC4X3$1.IfcLightSource(a[0], a[1], a[2], a[3]), + 125510826: (a) => new IFC4X3$1.IfcLightSourceAmbient(a[0], a[1], a[2], a[3]), + 2604431987: (a) => new IFC4X3$1.IfcLightSourceDirectional(a[0], a[1], a[2], a[3], a[4]), + 4266656042: (a) => new IFC4X3$1.IfcLightSourceGoniometric(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1520743889: (a) => new IFC4X3$1.IfcLightSourcePositional(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3422422726: (a) => new IFC4X3$1.IfcLightSourceSpot(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]), + 388784114: (a) => new IFC4X3$1.IfcLinearPlacement(a[0], a[1], a[2]), + 2624227202: (a) => new IFC4X3$1.IfcLocalPlacement(a[0], a[1]), + 1008929658: (_) => new IFC4X3$1.IfcLoop(), + 2347385850: (a) => new IFC4X3$1.IfcMappedItem(a[0], a[1]), + 1838606355: (a) => new IFC4X3$1.IfcMaterial(a[0], a[1], a[2]), + 3708119e3: (a) => new IFC4X3$1.IfcMaterialConstituent(a[0], a[1], a[2], a[3], a[4]), + 2852063980: (a) => new IFC4X3$1.IfcMaterialConstituentSet(a[0], a[1], a[2]), + 2022407955: (a) => new IFC4X3$1.IfcMaterialDefinitionRepresentation(a[0], a[1], a[2], a[3]), + 1303795690: (a) => new IFC4X3$1.IfcMaterialLayerSetUsage(a[0], a[1], a[2], a[3], a[4]), + 3079605661: (a) => new IFC4X3$1.IfcMaterialProfileSetUsage(a[0], a[1], a[2]), + 3404854881: (a) => new IFC4X3$1.IfcMaterialProfileSetUsageTapering(a[0], a[1], a[2], a[3], a[4]), + 3265635763: (a) => new IFC4X3$1.IfcMaterialProperties(a[0], a[1], a[2], a[3]), + 853536259: (a) => new IFC4X3$1.IfcMaterialRelationship(a[0], a[1], a[2], a[3], a[4]), + 2998442950: (a) => new IFC4X3$1.IfcMirroredProfileDef(a[0], a[1], a[2], a[3], a[4]), + 219451334: (a) => new IFC4X3$1.IfcObjectDefinition(a[0], a[1], a[2], a[3]), + 182550632: (a) => new IFC4X3$1.IfcOpenCrossProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 2665983363: (a) => new IFC4X3$1.IfcOpenShell(a[0]), + 1411181986: (a) => new IFC4X3$1.IfcOrganizationRelationship(a[0], a[1], a[2], a[3]), + 1029017970: (a) => new IFC4X3$1.IfcOrientedEdge(a[0], a[1], a[2]), + 2529465313: (a) => new IFC4X3$1.IfcParameterizedProfileDef(a[0], a[1], a[2]), + 2519244187: (a) => new IFC4X3$1.IfcPath(a[0]), + 3021840470: (a) => new IFC4X3$1.IfcPhysicalComplexQuantity(a[0], a[1], a[2], a[3], a[4], a[5]), + 597895409: (a) => new IFC4X3$1.IfcPixelTexture(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2004835150: (a) => new IFC4X3$1.IfcPlacement(a[0]), + 1663979128: (a) => new IFC4X3$1.IfcPlanarExtent(a[0], a[1]), + 2067069095: (_) => new IFC4X3$1.IfcPoint(), + 2165702409: (a) => new IFC4X3$1.IfcPointByDistanceExpression(a[0], a[1], a[2], a[3], a[4]), + 4022376103: (a) => new IFC4X3$1.IfcPointOnCurve(a[0], a[1]), + 1423911732: (a) => new IFC4X3$1.IfcPointOnSurface(a[0], a[1], a[2]), + 2924175390: (a) => new IFC4X3$1.IfcPolyLoop(a[0]), + 2775532180: (a) => new IFC4X3$1.IfcPolygonalBoundedHalfSpace(a[0], a[1], a[2], a[3]), + 3727388367: (a) => new IFC4X3$1.IfcPreDefinedItem(a[0]), + 3778827333: (_) => new IFC4X3$1.IfcPreDefinedProperties(), + 1775413392: (a) => new IFC4X3$1.IfcPreDefinedTextFont(a[0]), + 673634403: (a) => new IFC4X3$1.IfcProductDefinitionShape(a[0], a[1], a[2]), + 2802850158: (a) => new IFC4X3$1.IfcProfileProperties(a[0], a[1], a[2], a[3]), + 2598011224: (a) => new IFC4X3$1.IfcProperty(a[0], a[1]), + 1680319473: (a) => new IFC4X3$1.IfcPropertyDefinition(a[0], a[1], a[2], a[3]), + 148025276: (a) => new IFC4X3$1.IfcPropertyDependencyRelationship(a[0], a[1], a[2], a[3], a[4]), + 3357820518: (a) => new IFC4X3$1.IfcPropertySetDefinition(a[0], a[1], a[2], a[3]), + 1482703590: (a) => new IFC4X3$1.IfcPropertyTemplateDefinition(a[0], a[1], a[2], a[3]), + 2090586900: (a) => new IFC4X3$1.IfcQuantitySet(a[0], a[1], a[2], a[3]), + 3615266464: (a) => new IFC4X3$1.IfcRectangleProfileDef(a[0], a[1], a[2], a[3], a[4]), + 3413951693: (a) => new IFC4X3$1.IfcRegularTimeSeries(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1580146022: (a) => new IFC4X3$1.IfcReinforcementBarProperties(a[0], a[1], a[2], a[3], a[4], a[5]), + 478536968: (a) => new IFC4X3$1.IfcRelationship(a[0], a[1], a[2], a[3]), + 2943643501: (a) => new IFC4X3$1.IfcResourceApprovalRelationship(a[0], a[1], a[2], a[3]), + 1608871552: (a) => new IFC4X3$1.IfcResourceConstraintRelationship(a[0], a[1], a[2], a[3]), + 1042787934: (a) => new IFC4X3$1.IfcResourceTime(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17]), + 2778083089: (a) => new IFC4X3$1.IfcRoundedRectangleProfileDef(a[0], a[1], a[2], a[3], a[4], a[5]), + 2042790032: (a) => new IFC4X3$1.IfcSectionProperties(a[0], a[1], a[2]), + 4165799628: (a) => new IFC4X3$1.IfcSectionReinforcementProperties(a[0], a[1], a[2], a[3], a[4], a[5]), + 1509187699: (a) => new IFC4X3$1.IfcSectionedSpine(a[0], a[1], a[2]), + 823603102: (a) => new IFC4X3$1.IfcSegment(a[0]), + 4124623270: (a) => new IFC4X3$1.IfcShellBasedSurfaceModel(a[0]), + 3692461612: (a) => new IFC4X3$1.IfcSimpleProperty(a[0], a[1]), + 2609359061: (a) => new IFC4X3$1.IfcSlippageConnectionCondition(a[0], a[1], a[2], a[3]), + 723233188: (_) => new IFC4X3$1.IfcSolidModel(), + 1595516126: (a) => new IFC4X3$1.IfcStructuralLoadLinearForce(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 2668620305: (a) => new IFC4X3$1.IfcStructuralLoadPlanarForce(a[0], a[1], a[2], a[3]), + 2473145415: (a) => new IFC4X3$1.IfcStructuralLoadSingleDisplacement(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 1973038258: (a) => new IFC4X3$1.IfcStructuralLoadSingleDisplacementDistortion(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 1597423693: (a) => new IFC4X3$1.IfcStructuralLoadSingleForce(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 1190533807: (a) => new IFC4X3$1.IfcStructuralLoadSingleForceWarping(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 2233826070: (a) => new IFC4X3$1.IfcSubedge(a[0], a[1], a[2]), + 2513912981: (_) => new IFC4X3$1.IfcSurface(), + 1878645084: (a) => new IFC4X3$1.IfcSurfaceStyleRendering(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2247615214: (a) => new IFC4X3$1.IfcSweptAreaSolid(a[0], a[1]), + 1260650574: (a) => new IFC4X3$1.IfcSweptDiskSolid(a[0], a[1], a[2], a[3], a[4]), + 1096409881: (a) => new IFC4X3$1.IfcSweptDiskSolidPolygonal(a[0], a[1], a[2], a[3], a[4], a[5]), + 230924584: (a) => new IFC4X3$1.IfcSweptSurface(a[0], a[1]), + 3071757647: (a) => new IFC4X3$1.IfcTShapeProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), + 901063453: (_) => new IFC4X3$1.IfcTessellatedItem(), + 4282788508: (a) => new IFC4X3$1.IfcTextLiteral(a[0], a[1], a[2]), + 3124975700: (a) => new IFC4X3$1.IfcTextLiteralWithExtent(a[0], a[1], a[2], a[3], a[4]), + 1983826977: (a) => new IFC4X3$1.IfcTextStyleFontModel(a[0], a[1], a[2], a[3], a[4], a[5]), + 2715220739: (a) => new IFC4X3$1.IfcTrapeziumProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 1628702193: (a) => new IFC4X3$1.IfcTypeObject(a[0], a[1], a[2], a[3], a[4], a[5]), + 3736923433: (a) => new IFC4X3$1.IfcTypeProcess(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2347495698: (a) => new IFC4X3$1.IfcTypeProduct(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 3698973494: (a) => new IFC4X3$1.IfcTypeResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 427810014: (a) => new IFC4X3$1.IfcUShapeProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1417489154: (a) => new IFC4X3$1.IfcVector(a[0], a[1]), + 2759199220: (a) => new IFC4X3$1.IfcVertexLoop(a[0]), + 2543172580: (a) => new IFC4X3$1.IfcZShapeProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3406155212: (a) => new IFC4X3$1.IfcAdvancedFace(a[0], a[1], a[2]), + 669184980: (a) => new IFC4X3$1.IfcAnnotationFillArea(a[0], a[1]), + 3207858831: (a) => new IFC4X3$1.IfcAsymmetricIShapeProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14]), + 4261334040: (a) => new IFC4X3$1.IfcAxis1Placement(a[0], a[1]), + 3125803723: (a) => new IFC4X3$1.IfcAxis2Placement2D(a[0], a[1]), + 2740243338: (a) => new IFC4X3$1.IfcAxis2Placement3D(a[0], a[1], a[2]), + 3425423356: (a) => new IFC4X3$1.IfcAxis2PlacementLinear(a[0], a[1], a[2]), + 2736907675: (a) => new IFC4X3$1.IfcBooleanResult(a[0], a[1], a[2]), + 4182860854: (_) => new IFC4X3$1.IfcBoundedSurface(), + 2581212453: (a) => new IFC4X3$1.IfcBoundingBox(a[0], a[1], a[2], a[3]), + 2713105998: (a) => new IFC4X3$1.IfcBoxedHalfSpace(a[0], a[1], a[2]), + 2898889636: (a) => new IFC4X3$1.IfcCShapeProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 1123145078: (a) => new IFC4X3$1.IfcCartesianPoint(a[0]), + 574549367: (_) => new IFC4X3$1.IfcCartesianPointList(), + 1675464909: (a) => new IFC4X3$1.IfcCartesianPointList2D(a[0], a[1]), + 2059837836: (a) => new IFC4X3$1.IfcCartesianPointList3D(a[0], a[1]), + 59481748: (a) => new IFC4X3$1.IfcCartesianTransformationOperator(a[0], a[1], a[2], a[3]), + 3749851601: (a) => new IFC4X3$1.IfcCartesianTransformationOperator2D(a[0], a[1], a[2], a[3]), + 3486308946: (a) => new IFC4X3$1.IfcCartesianTransformationOperator2DnonUniform(a[0], a[1], a[2], a[3], a[4]), + 3331915920: (a) => new IFC4X3$1.IfcCartesianTransformationOperator3D(a[0], a[1], a[2], a[3], a[4]), + 1416205885: (a) => new IFC4X3$1.IfcCartesianTransformationOperator3DnonUniform(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 1383045692: (a) => new IFC4X3$1.IfcCircleProfileDef(a[0], a[1], a[2], a[3]), + 2205249479: (a) => new IFC4X3$1.IfcClosedShell(a[0]), + 776857604: (a) => new IFC4X3$1.IfcColourRgb(a[0], a[1], a[2], a[3]), + 2542286263: (a) => new IFC4X3$1.IfcComplexProperty(a[0], a[1], a[2], a[3]), + 2485617015: (a) => new IFC4X3$1.IfcCompositeCurveSegment(a[0], a[1], a[2]), + 2574617495: (a) => new IFC4X3$1.IfcConstructionResourceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), + 3419103109: (a) => new IFC4X3$1.IfcContext(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1815067380: (a) => new IFC4X3$1.IfcCrewResourceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), + 2506170314: (a) => new IFC4X3$1.IfcCsgPrimitive3D(a[0]), + 2147822146: (a) => new IFC4X3$1.IfcCsgSolid(a[0]), + 2601014836: (_) => new IFC4X3$1.IfcCurve(), + 2827736869: (a) => new IFC4X3$1.IfcCurveBoundedPlane(a[0], a[1], a[2]), + 2629017746: (a) => new IFC4X3$1.IfcCurveBoundedSurface(a[0], a[1], a[2]), + 4212018352: (a) => new IFC4X3$1.IfcCurveSegment(a[0], a[1], a[2], a[3], a[4]), + 32440307: (a) => new IFC4X3$1.IfcDirection(a[0]), + 593015953: (a) => new IFC4X3$1.IfcDirectrixCurveSweptAreaSolid(a[0], a[1], a[2], a[3], a[4]), + 1472233963: (a) => new IFC4X3$1.IfcEdgeLoop(a[0]), + 1883228015: (a) => new IFC4X3$1.IfcElementQuantity(a[0], a[1], a[2], a[3], a[4], a[5]), + 339256511: (a) => new IFC4X3$1.IfcElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2777663545: (a) => new IFC4X3$1.IfcElementarySurface(a[0]), + 2835456948: (a) => new IFC4X3$1.IfcEllipseProfileDef(a[0], a[1], a[2], a[3], a[4]), + 4024345920: (a) => new IFC4X3$1.IfcEventType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), + 477187591: (a) => new IFC4X3$1.IfcExtrudedAreaSolid(a[0], a[1], a[2], a[3]), + 2804161546: (a) => new IFC4X3$1.IfcExtrudedAreaSolidTapered(a[0], a[1], a[2], a[3], a[4]), + 2047409740: (a) => new IFC4X3$1.IfcFaceBasedSurfaceModel(a[0]), + 374418227: (a) => new IFC4X3$1.IfcFillAreaStyleHatching(a[0], a[1], a[2], a[3], a[4]), + 315944413: (a) => new IFC4X3$1.IfcFillAreaStyleTiles(a[0], a[1], a[2]), + 2652556860: (a) => new IFC4X3$1.IfcFixedReferenceSweptAreaSolid(a[0], a[1], a[2], a[3], a[4], a[5]), + 4238390223: (a) => new IFC4X3$1.IfcFurnishingElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1268542332: (a) => new IFC4X3$1.IfcFurnitureType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), + 4095422895: (a) => new IFC4X3$1.IfcGeographicElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 987898635: (a) => new IFC4X3$1.IfcGeometricCurveSet(a[0]), + 1484403080: (a) => new IFC4X3$1.IfcIShapeProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 178912537: (a) => new IFC4X3$1.IfcIndexedPolygonalFace(a[0]), + 2294589976: (a) => new IFC4X3$1.IfcIndexedPolygonalFaceWithVoids(a[0], a[1]), + 3465909080: (a) => new IFC4X3$1.IfcIndexedPolygonalTextureMap(a[0], a[1], a[2], a[3]), + 572779678: (a) => new IFC4X3$1.IfcLShapeProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 428585644: (a) => new IFC4X3$1.IfcLaborResourceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), + 1281925730: (a) => new IFC4X3$1.IfcLine(a[0], a[1]), + 1425443689: (a) => new IFC4X3$1.IfcManifoldSolidBrep(a[0]), + 3888040117: (a) => new IFC4X3$1.IfcObject(a[0], a[1], a[2], a[3], a[4]), + 590820931: (a) => new IFC4X3$1.IfcOffsetCurve(a[0]), + 3388369263: (a) => new IFC4X3$1.IfcOffsetCurve2D(a[0], a[1], a[2]), + 3505215534: (a) => new IFC4X3$1.IfcOffsetCurve3D(a[0], a[1], a[2], a[3]), + 2485787929: (a) => new IFC4X3$1.IfcOffsetCurveByDistances(a[0], a[1], a[2]), + 1682466193: (a) => new IFC4X3$1.IfcPcurve(a[0], a[1]), + 603570806: (a) => new IFC4X3$1.IfcPlanarBox(a[0], a[1], a[2]), + 220341763: (a) => new IFC4X3$1.IfcPlane(a[0]), + 3381221214: (a) => new IFC4X3$1.IfcPolynomialCurve(a[0], a[1], a[2], a[3]), + 759155922: (a) => new IFC4X3$1.IfcPreDefinedColour(a[0]), + 2559016684: (a) => new IFC4X3$1.IfcPreDefinedCurveFont(a[0]), + 3967405729: (a) => new IFC4X3$1.IfcPreDefinedPropertySet(a[0], a[1], a[2], a[3]), + 569719735: (a) => new IFC4X3$1.IfcProcedureType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2945172077: (a) => new IFC4X3$1.IfcProcess(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 4208778838: (a) => new IFC4X3$1.IfcProduct(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 103090709: (a) => new IFC4X3$1.IfcProject(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 653396225: (a) => new IFC4X3$1.IfcProjectLibrary(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 871118103: (a) => new IFC4X3$1.IfcPropertyBoundedValue(a[0], a[1], a[2], a[3], a[4], a[5]), + 4166981789: (a) => new IFC4X3$1.IfcPropertyEnumeratedValue(a[0], a[1], a[2], a[3]), + 2752243245: (a) => new IFC4X3$1.IfcPropertyListValue(a[0], a[1], a[2], a[3]), + 941946838: (a) => new IFC4X3$1.IfcPropertyReferenceValue(a[0], a[1], a[2], a[3]), + 1451395588: (a) => new IFC4X3$1.IfcPropertySet(a[0], a[1], a[2], a[3], a[4]), + 492091185: (a) => new IFC4X3$1.IfcPropertySetTemplate(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 3650150729: (a) => new IFC4X3$1.IfcPropertySingleValue(a[0], a[1], a[2], a[3]), + 110355661: (a) => new IFC4X3$1.IfcPropertyTableValue(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 3521284610: (a) => new IFC4X3$1.IfcPropertyTemplate(a[0], a[1], a[2], a[3]), + 2770003689: (a) => new IFC4X3$1.IfcRectangleHollowProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 2798486643: (a) => new IFC4X3$1.IfcRectangularPyramid(a[0], a[1], a[2], a[3]), + 3454111270: (a) => new IFC4X3$1.IfcRectangularTrimmedSurface(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 3765753017: (a) => new IFC4X3$1.IfcReinforcementDefinitionProperties(a[0], a[1], a[2], a[3], a[4], a[5]), + 3939117080: (a) => new IFC4X3$1.IfcRelAssigns(a[0], a[1], a[2], a[3], a[4], a[5]), + 1683148259: (a) => new IFC4X3$1.IfcRelAssignsToActor(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 2495723537: (a) => new IFC4X3$1.IfcRelAssignsToControl(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 1307041759: (a) => new IFC4X3$1.IfcRelAssignsToGroup(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 1027710054: (a) => new IFC4X3$1.IfcRelAssignsToGroupByFactor(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 4278684876: (a) => new IFC4X3$1.IfcRelAssignsToProcess(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 2857406711: (a) => new IFC4X3$1.IfcRelAssignsToProduct(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 205026976: (a) => new IFC4X3$1.IfcRelAssignsToResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 1865459582: (a) => new IFC4X3$1.IfcRelAssociates(a[0], a[1], a[2], a[3], a[4]), + 4095574036: (a) => new IFC4X3$1.IfcRelAssociatesApproval(a[0], a[1], a[2], a[3], a[4], a[5]), + 919958153: (a) => new IFC4X3$1.IfcRelAssociatesClassification(a[0], a[1], a[2], a[3], a[4], a[5]), + 2728634034: (a) => new IFC4X3$1.IfcRelAssociatesConstraint(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 982818633: (a) => new IFC4X3$1.IfcRelAssociatesDocument(a[0], a[1], a[2], a[3], a[4], a[5]), + 3840914261: (a) => new IFC4X3$1.IfcRelAssociatesLibrary(a[0], a[1], a[2], a[3], a[4], a[5]), + 2655215786: (a) => new IFC4X3$1.IfcRelAssociatesMaterial(a[0], a[1], a[2], a[3], a[4], a[5]), + 1033248425: (a) => new IFC4X3$1.IfcRelAssociatesProfileDef(a[0], a[1], a[2], a[3], a[4], a[5]), + 826625072: (a) => new IFC4X3$1.IfcRelConnects(a[0], a[1], a[2], a[3]), + 1204542856: (a) => new IFC4X3$1.IfcRelConnectsElements(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 3945020480: (a) => new IFC4X3$1.IfcRelConnectsPathElements(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), + 4201705270: (a) => new IFC4X3$1.IfcRelConnectsPortToElement(a[0], a[1], a[2], a[3], a[4], a[5]), + 3190031847: (a) => new IFC4X3$1.IfcRelConnectsPorts(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 2127690289: (a) => new IFC4X3$1.IfcRelConnectsStructuralActivity(a[0], a[1], a[2], a[3], a[4], a[5]), + 1638771189: (a) => new IFC4X3$1.IfcRelConnectsStructuralMember(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 504942748: (a) => new IFC4X3$1.IfcRelConnectsWithEccentricity(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), + 3678494232: (a) => new IFC4X3$1.IfcRelConnectsWithRealizingElements(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3242617779: (a) => new IFC4X3$1.IfcRelContainedInSpatialStructure(a[0], a[1], a[2], a[3], a[4], a[5]), + 886880790: (a) => new IFC4X3$1.IfcRelCoversBldgElements(a[0], a[1], a[2], a[3], a[4], a[5]), + 2802773753: (a) => new IFC4X3$1.IfcRelCoversSpaces(a[0], a[1], a[2], a[3], a[4], a[5]), + 2565941209: (a) => new IFC4X3$1.IfcRelDeclares(a[0], a[1], a[2], a[3], a[4], a[5]), + 2551354335: (a) => new IFC4X3$1.IfcRelDecomposes(a[0], a[1], a[2], a[3]), + 693640335: (a) => new IFC4X3$1.IfcRelDefines(a[0], a[1], a[2], a[3]), + 1462361463: (a) => new IFC4X3$1.IfcRelDefinesByObject(a[0], a[1], a[2], a[3], a[4], a[5]), + 4186316022: (a) => new IFC4X3$1.IfcRelDefinesByProperties(a[0], a[1], a[2], a[3], a[4], a[5]), + 307848117: (a) => new IFC4X3$1.IfcRelDefinesByTemplate(a[0], a[1], a[2], a[3], a[4], a[5]), + 781010003: (a) => new IFC4X3$1.IfcRelDefinesByType(a[0], a[1], a[2], a[3], a[4], a[5]), + 3940055652: (a) => new IFC4X3$1.IfcRelFillsElement(a[0], a[1], a[2], a[3], a[4], a[5]), + 279856033: (a) => new IFC4X3$1.IfcRelFlowControlElements(a[0], a[1], a[2], a[3], a[4], a[5]), + 427948657: (a) => new IFC4X3$1.IfcRelInterferesElements(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 3268803585: (a) => new IFC4X3$1.IfcRelNests(a[0], a[1], a[2], a[3], a[4], a[5]), + 1441486842: (a) => new IFC4X3$1.IfcRelPositions(a[0], a[1], a[2], a[3], a[4], a[5]), + 750771296: (a) => new IFC4X3$1.IfcRelProjectsElement(a[0], a[1], a[2], a[3], a[4], a[5]), + 1245217292: (a) => new IFC4X3$1.IfcRelReferencedInSpatialStructure(a[0], a[1], a[2], a[3], a[4], a[5]), + 4122056220: (a) => new IFC4X3$1.IfcRelSequence(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 366585022: (a) => new IFC4X3$1.IfcRelServicesBuildings(a[0], a[1], a[2], a[3], a[4], a[5]), + 3451746338: (a) => new IFC4X3$1.IfcRelSpaceBoundary(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3523091289: (a) => new IFC4X3$1.IfcRelSpaceBoundary1stLevel(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1521410863: (a) => new IFC4X3$1.IfcRelSpaceBoundary2ndLevel(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), + 1401173127: (a) => new IFC4X3$1.IfcRelVoidsElement(a[0], a[1], a[2], a[3], a[4], a[5]), + 816062949: (a) => new IFC4X3$1.IfcReparametrisedCompositeCurveSegment(a[0], a[1], a[2], a[3]), + 2914609552: (a) => new IFC4X3$1.IfcResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 1856042241: (a) => new IFC4X3$1.IfcRevolvedAreaSolid(a[0], a[1], a[2], a[3]), + 3243963512: (a) => new IFC4X3$1.IfcRevolvedAreaSolidTapered(a[0], a[1], a[2], a[3], a[4]), + 4158566097: (a) => new IFC4X3$1.IfcRightCircularCone(a[0], a[1], a[2]), + 3626867408: (a) => new IFC4X3$1.IfcRightCircularCylinder(a[0], a[1], a[2]), + 1862484736: (a) => new IFC4X3$1.IfcSectionedSolid(a[0], a[1]), + 1290935644: (a) => new IFC4X3$1.IfcSectionedSolidHorizontal(a[0], a[1], a[2]), + 1356537516: (a) => new IFC4X3$1.IfcSectionedSurface(a[0], a[1], a[2]), + 3663146110: (a) => new IFC4X3$1.IfcSimplePropertyTemplate(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), + 1412071761: (a) => new IFC4X3$1.IfcSpatialElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 710998568: (a) => new IFC4X3$1.IfcSpatialElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2706606064: (a) => new IFC4X3$1.IfcSpatialStructureElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3893378262: (a) => new IFC4X3$1.IfcSpatialStructureElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 463610769: (a) => new IFC4X3$1.IfcSpatialZone(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2481509218: (a) => new IFC4X3$1.IfcSpatialZoneType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), + 451544542: (a) => new IFC4X3$1.IfcSphere(a[0], a[1]), + 4015995234: (a) => new IFC4X3$1.IfcSphericalSurface(a[0], a[1]), + 2735484536: (a) => new IFC4X3$1.IfcSpiral(a[0]), + 3544373492: (a) => new IFC4X3$1.IfcStructuralActivity(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3136571912: (a) => new IFC4X3$1.IfcStructuralItem(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 530289379: (a) => new IFC4X3$1.IfcStructuralMember(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 3689010777: (a) => new IFC4X3$1.IfcStructuralReaction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3979015343: (a) => new IFC4X3$1.IfcStructuralSurfaceMember(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2218152070: (a) => new IFC4X3$1.IfcStructuralSurfaceMemberVarying(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 603775116: (a) => new IFC4X3$1.IfcStructuralSurfaceReaction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 4095615324: (a) => new IFC4X3$1.IfcSubContractResourceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), + 699246055: (a) => new IFC4X3$1.IfcSurfaceCurve(a[0], a[1], a[2]), + 2028607225: (a) => new IFC4X3$1.IfcSurfaceCurveSweptAreaSolid(a[0], a[1], a[2], a[3], a[4], a[5]), + 2809605785: (a) => new IFC4X3$1.IfcSurfaceOfLinearExtrusion(a[0], a[1], a[2], a[3]), + 4124788165: (a) => new IFC4X3$1.IfcSurfaceOfRevolution(a[0], a[1], a[2]), + 1580310250: (a) => new IFC4X3$1.IfcSystemFurnitureElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 3473067441: (a) => new IFC4X3$1.IfcTask(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]), + 3206491090: (a) => new IFC4X3$1.IfcTaskType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), + 2387106220: (a) => new IFC4X3$1.IfcTessellatedFaceSet(a[0], a[1]), + 782932809: (a) => new IFC4X3$1.IfcThirdOrderPolynomialSpiral(a[0], a[1], a[2], a[3], a[4]), + 1935646853: (a) => new IFC4X3$1.IfcToroidalSurface(a[0], a[1], a[2]), + 3665877780: (a) => new IFC4X3$1.IfcTransportationDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2916149573: (a) => new IFC4X3$1.IfcTriangulatedFaceSet(a[0], a[1], a[2], a[3], a[4]), + 1229763772: (a) => new IFC4X3$1.IfcTriangulatedIrregularNetwork(a[0], a[1], a[2], a[3], a[4], a[5]), + 3651464721: (a) => new IFC4X3$1.IfcVehicleType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 336235671: (a) => new IFC4X3$1.IfcWindowLiningProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15]), + 512836454: (a) => new IFC4X3$1.IfcWindowPanelProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2296667514: (a) => new IFC4X3$1.IfcActor(a[0], a[1], a[2], a[3], a[4], a[5]), + 1635779807: (a) => new IFC4X3$1.IfcAdvancedBrep(a[0]), + 2603310189: (a) => new IFC4X3$1.IfcAdvancedBrepWithVoids(a[0], a[1]), + 1674181508: (a) => new IFC4X3$1.IfcAnnotation(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 2887950389: (a) => new IFC4X3$1.IfcBSplineSurface(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 167062518: (a) => new IFC4X3$1.IfcBSplineSurfaceWithKnots(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), + 1334484129: (a) => new IFC4X3$1.IfcBlock(a[0], a[1], a[2], a[3]), + 3649129432: (a) => new IFC4X3$1.IfcBooleanClippingResult(a[0], a[1], a[2]), + 1260505505: (_) => new IFC4X3$1.IfcBoundedCurve(), + 3124254112: (a) => new IFC4X3$1.IfcBuildingStorey(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1626504194: (a) => new IFC4X3$1.IfcBuiltElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2197970202: (a) => new IFC4X3$1.IfcChimneyType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2937912522: (a) => new IFC4X3$1.IfcCircleHollowProfileDef(a[0], a[1], a[2], a[3], a[4]), + 3893394355: (a) => new IFC4X3$1.IfcCivilElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3497074424: (a) => new IFC4X3$1.IfcClothoid(a[0], a[1]), + 300633059: (a) => new IFC4X3$1.IfcColumnType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 3875453745: (a) => new IFC4X3$1.IfcComplexPropertyTemplate(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 3732776249: (a) => new IFC4X3$1.IfcCompositeCurve(a[0], a[1]), + 15328376: (a) => new IFC4X3$1.IfcCompositeCurveOnSurface(a[0], a[1]), + 2510884976: (a) => new IFC4X3$1.IfcConic(a[0]), + 2185764099: (a) => new IFC4X3$1.IfcConstructionEquipmentResourceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), + 4105962743: (a) => new IFC4X3$1.IfcConstructionMaterialResourceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), + 1525564444: (a) => new IFC4X3$1.IfcConstructionProductResourceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), + 2559216714: (a) => new IFC4X3$1.IfcConstructionResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 3293443760: (a) => new IFC4X3$1.IfcControl(a[0], a[1], a[2], a[3], a[4], a[5]), + 2000195564: (a) => new IFC4X3$1.IfcCosineSpiral(a[0], a[1], a[2]), + 3895139033: (a) => new IFC4X3$1.IfcCostItem(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1419761937: (a) => new IFC4X3$1.IfcCostSchedule(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 4189326743: (a) => new IFC4X3$1.IfcCourseType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1916426348: (a) => new IFC4X3$1.IfcCoveringType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 3295246426: (a) => new IFC4X3$1.IfcCrewResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), + 1457835157: (a) => new IFC4X3$1.IfcCurtainWallType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1213902940: (a) => new IFC4X3$1.IfcCylindricalSurface(a[0], a[1]), + 1306400036: (a) => new IFC4X3$1.IfcDeepFoundationType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 4234616927: (a) => new IFC4X3$1.IfcDirectrixDerivedReferenceSweptAreaSolid(a[0], a[1], a[2], a[3], a[4], a[5]), + 3256556792: (a) => new IFC4X3$1.IfcDistributionElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3849074793: (a) => new IFC4X3$1.IfcDistributionFlowElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2963535650: (a) => new IFC4X3$1.IfcDoorLiningProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16]), + 1714330368: (a) => new IFC4X3$1.IfcDoorPanelProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2323601079: (a) => new IFC4X3$1.IfcDoorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]), + 445594917: (a) => new IFC4X3$1.IfcDraughtingPreDefinedColour(a[0]), + 4006246654: (a) => new IFC4X3$1.IfcDraughtingPreDefinedCurveFont(a[0]), + 1758889154: (a) => new IFC4X3$1.IfcElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 4123344466: (a) => new IFC4X3$1.IfcElementAssembly(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2397081782: (a) => new IFC4X3$1.IfcElementAssemblyType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1623761950: (a) => new IFC4X3$1.IfcElementComponent(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 2590856083: (a) => new IFC4X3$1.IfcElementComponentType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1704287377: (a) => new IFC4X3$1.IfcEllipse(a[0], a[1], a[2]), + 2107101300: (a) => new IFC4X3$1.IfcEnergyConversionDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 132023988: (a) => new IFC4X3$1.IfcEngineType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 3174744832: (a) => new IFC4X3$1.IfcEvaporativeCoolerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 3390157468: (a) => new IFC4X3$1.IfcEvaporatorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 4148101412: (a) => new IFC4X3$1.IfcEvent(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), + 2853485674: (a) => new IFC4X3$1.IfcExternalSpatialStructureElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 807026263: (a) => new IFC4X3$1.IfcFacetedBrep(a[0]), + 3737207727: (a) => new IFC4X3$1.IfcFacetedBrepWithVoids(a[0], a[1]), + 24185140: (a) => new IFC4X3$1.IfcFacility(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1310830890: (a) => new IFC4X3$1.IfcFacilityPart(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 4228831410: (a) => new IFC4X3$1.IfcFacilityPartCommon(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), + 647756555: (a) => new IFC4X3$1.IfcFastener(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2489546625: (a) => new IFC4X3$1.IfcFastenerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2827207264: (a) => new IFC4X3$1.IfcFeatureElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 2143335405: (a) => new IFC4X3$1.IfcFeatureElementAddition(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 1287392070: (a) => new IFC4X3$1.IfcFeatureElementSubtraction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 3907093117: (a) => new IFC4X3$1.IfcFlowControllerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3198132628: (a) => new IFC4X3$1.IfcFlowFittingType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3815607619: (a) => new IFC4X3$1.IfcFlowMeterType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1482959167: (a) => new IFC4X3$1.IfcFlowMovingDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1834744321: (a) => new IFC4X3$1.IfcFlowSegmentType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1339347760: (a) => new IFC4X3$1.IfcFlowStorageDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2297155007: (a) => new IFC4X3$1.IfcFlowTerminalType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3009222698: (a) => new IFC4X3$1.IfcFlowTreatmentDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1893162501: (a) => new IFC4X3$1.IfcFootingType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 263784265: (a) => new IFC4X3$1.IfcFurnishingElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 1509553395: (a) => new IFC4X3$1.IfcFurniture(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3493046030: (a) => new IFC4X3$1.IfcGeographicElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 4230923436: (a) => new IFC4X3$1.IfcGeotechnicalElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 1594536857: (a) => new IFC4X3$1.IfcGeotechnicalStratum(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2898700619: (a) => new IFC4X3$1.IfcGradientCurve(a[0], a[1], a[2], a[3]), + 2706460486: (a) => new IFC4X3$1.IfcGroup(a[0], a[1], a[2], a[3], a[4]), + 1251058090: (a) => new IFC4X3$1.IfcHeatExchangerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1806887404: (a) => new IFC4X3$1.IfcHumidifierType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2568555532: (a) => new IFC4X3$1.IfcImpactProtectionDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3948183225: (a) => new IFC4X3$1.IfcImpactProtectionDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2571569899: (a) => new IFC4X3$1.IfcIndexedPolyCurve(a[0], a[1], a[2]), + 3946677679: (a) => new IFC4X3$1.IfcInterceptorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 3113134337: (a) => new IFC4X3$1.IfcIntersectionCurve(a[0], a[1], a[2]), + 2391368822: (a) => new IFC4X3$1.IfcInventory(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), + 4288270099: (a) => new IFC4X3$1.IfcJunctionBoxType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 679976338: (a) => new IFC4X3$1.IfcKerbType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 3827777499: (a) => new IFC4X3$1.IfcLaborResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), + 1051575348: (a) => new IFC4X3$1.IfcLampType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1161773419: (a) => new IFC4X3$1.IfcLightFixtureType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2176059722: (a) => new IFC4X3$1.IfcLinearElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 1770583370: (a) => new IFC4X3$1.IfcLiquidTerminalType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 525669439: (a) => new IFC4X3$1.IfcMarineFacility(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 976884017: (a) => new IFC4X3$1.IfcMarinePart(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), + 377706215: (a) => new IFC4X3$1.IfcMechanicalFastener(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), + 2108223431: (a) => new IFC4X3$1.IfcMechanicalFastenerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), + 1114901282: (a) => new IFC4X3$1.IfcMedicalDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 3181161470: (a) => new IFC4X3$1.IfcMemberType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1950438474: (a) => new IFC4X3$1.IfcMobileTelecommunicationsApplianceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 710110818: (a) => new IFC4X3$1.IfcMooringDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 977012517: (a) => new IFC4X3$1.IfcMotorConnectionType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 506776471: (a) => new IFC4X3$1.IfcNavigationElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 4143007308: (a) => new IFC4X3$1.IfcOccupant(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 3588315303: (a) => new IFC4X3$1.IfcOpeningElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2837617999: (a) => new IFC4X3$1.IfcOutletType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 514975943: (a) => new IFC4X3$1.IfcPavementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2382730787: (a) => new IFC4X3$1.IfcPerformanceHistory(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 3566463478: (a) => new IFC4X3$1.IfcPermeableCoveringProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3327091369: (a) => new IFC4X3$1.IfcPermit(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1158309216: (a) => new IFC4X3$1.IfcPileType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 804291784: (a) => new IFC4X3$1.IfcPipeFittingType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 4231323485: (a) => new IFC4X3$1.IfcPipeSegmentType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 4017108033: (a) => new IFC4X3$1.IfcPlateType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2839578677: (a) => new IFC4X3$1.IfcPolygonalFaceSet(a[0], a[1], a[2], a[3]), + 3724593414: (a) => new IFC4X3$1.IfcPolyline(a[0]), + 3740093272: (a) => new IFC4X3$1.IfcPort(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 1946335990: (a) => new IFC4X3$1.IfcPositioningElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 2744685151: (a) => new IFC4X3$1.IfcProcedure(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 2904328755: (a) => new IFC4X3$1.IfcProjectOrder(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3651124850: (a) => new IFC4X3$1.IfcProjectionElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1842657554: (a) => new IFC4X3$1.IfcProtectiveDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2250791053: (a) => new IFC4X3$1.IfcPumpType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1763565496: (a) => new IFC4X3$1.IfcRailType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2893384427: (a) => new IFC4X3$1.IfcRailingType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 3992365140: (a) => new IFC4X3$1.IfcRailway(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1891881377: (a) => new IFC4X3$1.IfcRailwayPart(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), + 2324767716: (a) => new IFC4X3$1.IfcRampFlightType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1469900589: (a) => new IFC4X3$1.IfcRampType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 683857671: (a) => new IFC4X3$1.IfcRationalBSplineSurfaceWithKnots(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]), + 4021432810: (a) => new IFC4X3$1.IfcReferent(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 3027567501: (a) => new IFC4X3$1.IfcReinforcingElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 964333572: (a) => new IFC4X3$1.IfcReinforcingElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2320036040: (a) => new IFC4X3$1.IfcReinforcingMesh(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17]), + 2310774935: (a) => new IFC4X3$1.IfcReinforcingMeshType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17], a[18], a[19]), + 3818125796: (a) => new IFC4X3$1.IfcRelAdheresToElement(a[0], a[1], a[2], a[3], a[4], a[5]), + 160246688: (a) => new IFC4X3$1.IfcRelAggregates(a[0], a[1], a[2], a[3], a[4], a[5]), + 146592293: (a) => new IFC4X3$1.IfcRoad(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 550521510: (a) => new IFC4X3$1.IfcRoadPart(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), + 2781568857: (a) => new IFC4X3$1.IfcRoofType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1768891740: (a) => new IFC4X3$1.IfcSanitaryTerminalType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2157484638: (a) => new IFC4X3$1.IfcSeamCurve(a[0], a[1], a[2]), + 3649235739: (a) => new IFC4X3$1.IfcSecondOrderPolynomialSpiral(a[0], a[1], a[2], a[3]), + 544395925: (a) => new IFC4X3$1.IfcSegmentedReferenceCurve(a[0], a[1], a[2], a[3]), + 1027922057: (a) => new IFC4X3$1.IfcSeventhOrderPolynomialSpiral(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 4074543187: (a) => new IFC4X3$1.IfcShadingDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 33720170: (a) => new IFC4X3$1.IfcSign(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3599934289: (a) => new IFC4X3$1.IfcSignType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1894708472: (a) => new IFC4X3$1.IfcSignalType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 42703149: (a) => new IFC4X3$1.IfcSineSpiral(a[0], a[1], a[2], a[3]), + 4097777520: (a) => new IFC4X3$1.IfcSite(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]), + 2533589738: (a) => new IFC4X3$1.IfcSlabType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1072016465: (a) => new IFC4X3$1.IfcSolarDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 3856911033: (a) => new IFC4X3$1.IfcSpace(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), + 1305183839: (a) => new IFC4X3$1.IfcSpaceHeaterType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 3812236995: (a) => new IFC4X3$1.IfcSpaceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), + 3112655638: (a) => new IFC4X3$1.IfcStackTerminalType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1039846685: (a) => new IFC4X3$1.IfcStairFlightType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 338393293: (a) => new IFC4X3$1.IfcStairType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 682877961: (a) => new IFC4X3$1.IfcStructuralAction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1179482911: (a) => new IFC4X3$1.IfcStructuralConnection(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 1004757350: (a) => new IFC4X3$1.IfcStructuralCurveAction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), + 4243806635: (a) => new IFC4X3$1.IfcStructuralCurveConnection(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 214636428: (a) => new IFC4X3$1.IfcStructuralCurveMember(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2445595289: (a) => new IFC4X3$1.IfcStructuralCurveMemberVarying(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2757150158: (a) => new IFC4X3$1.IfcStructuralCurveReaction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1807405624: (a) => new IFC4X3$1.IfcStructuralLinearAction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), + 1252848954: (a) => new IFC4X3$1.IfcStructuralLoadGroup(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2082059205: (a) => new IFC4X3$1.IfcStructuralPointAction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 734778138: (a) => new IFC4X3$1.IfcStructuralPointConnection(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1235345126: (a) => new IFC4X3$1.IfcStructuralPointReaction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2986769608: (a) => new IFC4X3$1.IfcStructuralResultGroup(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 3657597509: (a) => new IFC4X3$1.IfcStructuralSurfaceAction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), + 1975003073: (a) => new IFC4X3$1.IfcStructuralSurfaceConnection(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 148013059: (a) => new IFC4X3$1.IfcSubContractResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), + 3101698114: (a) => new IFC4X3$1.IfcSurfaceFeature(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2315554128: (a) => new IFC4X3$1.IfcSwitchingDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2254336722: (a) => new IFC4X3$1.IfcSystem(a[0], a[1], a[2], a[3], a[4]), + 413509423: (a) => new IFC4X3$1.IfcSystemFurnitureElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 5716631: (a) => new IFC4X3$1.IfcTankType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 3824725483: (a) => new IFC4X3$1.IfcTendon(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16]), + 2347447852: (a) => new IFC4X3$1.IfcTendonAnchor(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 3081323446: (a) => new IFC4X3$1.IfcTendonAnchorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 3663046924: (a) => new IFC4X3$1.IfcTendonConduit(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2281632017: (a) => new IFC4X3$1.IfcTendonConduitType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2415094496: (a) => new IFC4X3$1.IfcTendonType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]), + 618700268: (a) => new IFC4X3$1.IfcTrackElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1692211062: (a) => new IFC4X3$1.IfcTransformerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2097647324: (a) => new IFC4X3$1.IfcTransportElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1953115116: (a) => new IFC4X3$1.IfcTransportationDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 3593883385: (a) => new IFC4X3$1.IfcTrimmedCurve(a[0], a[1], a[2], a[3], a[4]), + 1600972822: (a) => new IFC4X3$1.IfcTubeBundleType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1911125066: (a) => new IFC4X3$1.IfcUnitaryEquipmentType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 728799441: (a) => new IFC4X3$1.IfcValveType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 840318589: (a) => new IFC4X3$1.IfcVehicle(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1530820697: (a) => new IFC4X3$1.IfcVibrationDamper(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3956297820: (a) => new IFC4X3$1.IfcVibrationDamperType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2391383451: (a) => new IFC4X3$1.IfcVibrationIsolator(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3313531582: (a) => new IFC4X3$1.IfcVibrationIsolatorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2769231204: (a) => new IFC4X3$1.IfcVirtualElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 926996030: (a) => new IFC4X3$1.IfcVoidingFeature(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1898987631: (a) => new IFC4X3$1.IfcWallType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1133259667: (a) => new IFC4X3$1.IfcWasteTerminalType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 4009809668: (a) => new IFC4X3$1.IfcWindowType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]), + 4088093105: (a) => new IFC4X3$1.IfcWorkCalendar(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1028945134: (a) => new IFC4X3$1.IfcWorkControl(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]), + 4218914973: (a) => new IFC4X3$1.IfcWorkPlan(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]), + 3342526732: (a) => new IFC4X3$1.IfcWorkSchedule(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]), + 1033361043: (a) => new IFC4X3$1.IfcZone(a[0], a[1], a[2], a[3], a[4], a[5]), + 3821786052: (a) => new IFC4X3$1.IfcActionRequest(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1411407467: (a) => new IFC4X3$1.IfcAirTerminalBoxType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 3352864051: (a) => new IFC4X3$1.IfcAirTerminalType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1871374353: (a) => new IFC4X3$1.IfcAirToAirHeatRecoveryType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 4266260250: (a) => new IFC4X3$1.IfcAlignmentCant(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 1545765605: (a) => new IFC4X3$1.IfcAlignmentHorizontal(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 317615605: (a) => new IFC4X3$1.IfcAlignmentSegment(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 1662888072: (a) => new IFC4X3$1.IfcAlignmentVertical(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 3460190687: (a) => new IFC4X3$1.IfcAsset(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]), + 1532957894: (a) => new IFC4X3$1.IfcAudioVisualApplianceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1967976161: (a) => new IFC4X3$1.IfcBSplineCurve(a[0], a[1], a[2], a[3], a[4]), + 2461110595: (a) => new IFC4X3$1.IfcBSplineCurveWithKnots(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 819618141: (a) => new IFC4X3$1.IfcBeamType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 3649138523: (a) => new IFC4X3$1.IfcBearingType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 231477066: (a) => new IFC4X3$1.IfcBoilerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1136057603: (a) => new IFC4X3$1.IfcBoundaryCurve(a[0], a[1]), + 644574406: (a) => new IFC4X3$1.IfcBridge(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 963979645: (a) => new IFC4X3$1.IfcBridgePart(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), + 4031249490: (a) => new IFC4X3$1.IfcBuilding(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), + 2979338954: (a) => new IFC4X3$1.IfcBuildingElementPart(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 39481116: (a) => new IFC4X3$1.IfcBuildingElementPartType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1909888760: (a) => new IFC4X3$1.IfcBuildingElementProxyType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1177604601: (a) => new IFC4X3$1.IfcBuildingSystem(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 1876633798: (a) => new IFC4X3$1.IfcBuiltElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 3862327254: (a) => new IFC4X3$1.IfcBuiltSystem(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 2188180465: (a) => new IFC4X3$1.IfcBurnerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 395041908: (a) => new IFC4X3$1.IfcCableCarrierFittingType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 3293546465: (a) => new IFC4X3$1.IfcCableCarrierSegmentType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2674252688: (a) => new IFC4X3$1.IfcCableFittingType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1285652485: (a) => new IFC4X3$1.IfcCableSegmentType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 3203706013: (a) => new IFC4X3$1.IfcCaissonFoundationType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2951183804: (a) => new IFC4X3$1.IfcChillerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 3296154744: (a) => new IFC4X3$1.IfcChimney(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2611217952: (a) => new IFC4X3$1.IfcCircle(a[0], a[1]), + 1677625105: (a) => new IFC4X3$1.IfcCivilElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 2301859152: (a) => new IFC4X3$1.IfcCoilType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 843113511: (a) => new IFC4X3$1.IfcColumn(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 400855858: (a) => new IFC4X3$1.IfcCommunicationsApplianceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 3850581409: (a) => new IFC4X3$1.IfcCompressorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2816379211: (a) => new IFC4X3$1.IfcCondenserType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 3898045240: (a) => new IFC4X3$1.IfcConstructionEquipmentResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), + 1060000209: (a) => new IFC4X3$1.IfcConstructionMaterialResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), + 488727124: (a) => new IFC4X3$1.IfcConstructionProductResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), + 2940368186: (a) => new IFC4X3$1.IfcConveyorSegmentType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 335055490: (a) => new IFC4X3$1.IfcCooledBeamType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2954562838: (a) => new IFC4X3$1.IfcCoolingTowerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1502416096: (a) => new IFC4X3$1.IfcCourse(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1973544240: (a) => new IFC4X3$1.IfcCovering(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3495092785: (a) => new IFC4X3$1.IfcCurtainWall(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3961806047: (a) => new IFC4X3$1.IfcDamperType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 3426335179: (a) => new IFC4X3$1.IfcDeepFoundation(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 1335981549: (a) => new IFC4X3$1.IfcDiscreteAccessory(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2635815018: (a) => new IFC4X3$1.IfcDiscreteAccessoryType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 479945903: (a) => new IFC4X3$1.IfcDistributionBoardType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1599208980: (a) => new IFC4X3$1.IfcDistributionChamberElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2063403501: (a) => new IFC4X3$1.IfcDistributionControlElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1945004755: (a) => new IFC4X3$1.IfcDistributionElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 3040386961: (a) => new IFC4X3$1.IfcDistributionFlowElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 3041715199: (a) => new IFC4X3$1.IfcDistributionPort(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 3205830791: (a) => new IFC4X3$1.IfcDistributionSystem(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 395920057: (a) => new IFC4X3$1.IfcDoor(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]), + 869906466: (a) => new IFC4X3$1.IfcDuctFittingType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 3760055223: (a) => new IFC4X3$1.IfcDuctSegmentType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2030761528: (a) => new IFC4X3$1.IfcDuctSilencerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 3071239417: (a) => new IFC4X3$1.IfcEarthworksCut(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1077100507: (a) => new IFC4X3$1.IfcEarthworksElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 3376911765: (a) => new IFC4X3$1.IfcEarthworksFill(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 663422040: (a) => new IFC4X3$1.IfcElectricApplianceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2417008758: (a) => new IFC4X3$1.IfcElectricDistributionBoardType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 3277789161: (a) => new IFC4X3$1.IfcElectricFlowStorageDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2142170206: (a) => new IFC4X3$1.IfcElectricFlowTreatmentDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1534661035: (a) => new IFC4X3$1.IfcElectricGeneratorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1217240411: (a) => new IFC4X3$1.IfcElectricMotorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 712377611: (a) => new IFC4X3$1.IfcElectricTimeControlType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1658829314: (a) => new IFC4X3$1.IfcEnergyConversionDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 2814081492: (a) => new IFC4X3$1.IfcEngine(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3747195512: (a) => new IFC4X3$1.IfcEvaporativeCooler(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 484807127: (a) => new IFC4X3$1.IfcEvaporator(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1209101575: (a) => new IFC4X3$1.IfcExternalSpatialElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 346874300: (a) => new IFC4X3$1.IfcFanType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1810631287: (a) => new IFC4X3$1.IfcFilterType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 4222183408: (a) => new IFC4X3$1.IfcFireSuppressionTerminalType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2058353004: (a) => new IFC4X3$1.IfcFlowController(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 4278956645: (a) => new IFC4X3$1.IfcFlowFitting(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 4037862832: (a) => new IFC4X3$1.IfcFlowInstrumentType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 2188021234: (a) => new IFC4X3$1.IfcFlowMeter(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3132237377: (a) => new IFC4X3$1.IfcFlowMovingDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 987401354: (a) => new IFC4X3$1.IfcFlowSegment(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 707683696: (a) => new IFC4X3$1.IfcFlowStorageDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 2223149337: (a) => new IFC4X3$1.IfcFlowTerminal(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 3508470533: (a) => new IFC4X3$1.IfcFlowTreatmentDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 900683007: (a) => new IFC4X3$1.IfcFooting(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2713699986: (a) => new IFC4X3$1.IfcGeotechnicalAssembly(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 3009204131: (a) => new IFC4X3$1.IfcGrid(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), + 3319311131: (a) => new IFC4X3$1.IfcHeatExchanger(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2068733104: (a) => new IFC4X3$1.IfcHumidifier(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 4175244083: (a) => new IFC4X3$1.IfcInterceptor(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2176052936: (a) => new IFC4X3$1.IfcJunctionBox(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2696325953: (a) => new IFC4X3$1.IfcKerb(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 76236018: (a) => new IFC4X3$1.IfcLamp(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 629592764: (a) => new IFC4X3$1.IfcLightFixture(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1154579445: (a) => new IFC4X3$1.IfcLinearPositioningElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 1638804497: (a) => new IFC4X3$1.IfcLiquidTerminal(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1437502449: (a) => new IFC4X3$1.IfcMedicalDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1073191201: (a) => new IFC4X3$1.IfcMember(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2078563270: (a) => new IFC4X3$1.IfcMobileTelecommunicationsAppliance(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 234836483: (a) => new IFC4X3$1.IfcMooringDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2474470126: (a) => new IFC4X3$1.IfcMotorConnection(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2182337498: (a) => new IFC4X3$1.IfcNavigationElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 144952367: (a) => new IFC4X3$1.IfcOuterBoundaryCurve(a[0], a[1]), + 3694346114: (a) => new IFC4X3$1.IfcOutlet(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1383356374: (a) => new IFC4X3$1.IfcPavement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1687234759: (a) => new IFC4X3$1.IfcPile(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 310824031: (a) => new IFC4X3$1.IfcPipeFitting(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3612865200: (a) => new IFC4X3$1.IfcPipeSegment(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3171933400: (a) => new IFC4X3$1.IfcPlate(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 738039164: (a) => new IFC4X3$1.IfcProtectiveDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 655969474: (a) => new IFC4X3$1.IfcProtectiveDeviceTrippingUnitType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 90941305: (a) => new IFC4X3$1.IfcPump(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3290496277: (a) => new IFC4X3$1.IfcRail(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2262370178: (a) => new IFC4X3$1.IfcRailing(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3024970846: (a) => new IFC4X3$1.IfcRamp(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3283111854: (a) => new IFC4X3$1.IfcRampFlight(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1232101972: (a) => new IFC4X3$1.IfcRationalBSplineCurveWithKnots(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3798194928: (a) => new IFC4X3$1.IfcReinforcedSoil(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 979691226: (a) => new IFC4X3$1.IfcReinforcingBar(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]), + 2572171363: (a) => new IFC4X3$1.IfcReinforcingBarType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15]), + 2016517767: (a) => new IFC4X3$1.IfcRoof(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3053780830: (a) => new IFC4X3$1.IfcSanitaryTerminal(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1783015770: (a) => new IFC4X3$1.IfcSensorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1329646415: (a) => new IFC4X3$1.IfcShadingDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 991950508: (a) => new IFC4X3$1.IfcSignal(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1529196076: (a) => new IFC4X3$1.IfcSlab(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3420628829: (a) => new IFC4X3$1.IfcSolarDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1999602285: (a) => new IFC4X3$1.IfcSpaceHeater(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1404847402: (a) => new IFC4X3$1.IfcStackTerminal(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 331165859: (a) => new IFC4X3$1.IfcStair(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 4252922144: (a) => new IFC4X3$1.IfcStairFlight(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]), + 2515109513: (a) => new IFC4X3$1.IfcStructuralAnalysisModel(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 385403989: (a) => new IFC4X3$1.IfcStructuralLoadCase(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), + 1621171031: (a) => new IFC4X3$1.IfcStructuralPlanarAction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), + 1162798199: (a) => new IFC4X3$1.IfcSwitchingDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 812556717: (a) => new IFC4X3$1.IfcTank(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3425753595: (a) => new IFC4X3$1.IfcTrackElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3825984169: (a) => new IFC4X3$1.IfcTransformer(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1620046519: (a) => new IFC4X3$1.IfcTransportElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3026737570: (a) => new IFC4X3$1.IfcTubeBundle(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3179687236: (a) => new IFC4X3$1.IfcUnitaryControlElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 4292641817: (a) => new IFC4X3$1.IfcUnitaryEquipment(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 4207607924: (a) => new IFC4X3$1.IfcValve(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2391406946: (a) => new IFC4X3$1.IfcWall(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3512223829: (a) => new IFC4X3$1.IfcWallStandardCase(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 4237592921: (a) => new IFC4X3$1.IfcWasteTerminal(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3304561284: (a) => new IFC4X3$1.IfcWindow(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]), + 2874132201: (a) => new IFC4X3$1.IfcActuatorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 1634111441: (a) => new IFC4X3$1.IfcAirTerminal(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 177149247: (a) => new IFC4X3$1.IfcAirTerminalBox(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2056796094: (a) => new IFC4X3$1.IfcAirToAirHeatRecovery(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3001207471: (a) => new IFC4X3$1.IfcAlarmType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 325726236: (a) => new IFC4X3$1.IfcAlignment(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 277319702: (a) => new IFC4X3$1.IfcAudioVisualAppliance(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 753842376: (a) => new IFC4X3$1.IfcBeam(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 4196446775: (a) => new IFC4X3$1.IfcBearing(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 32344328: (a) => new IFC4X3$1.IfcBoiler(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3314249567: (a) => new IFC4X3$1.IfcBorehole(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 1095909175: (a) => new IFC4X3$1.IfcBuildingElementProxy(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2938176219: (a) => new IFC4X3$1.IfcBurner(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 635142910: (a) => new IFC4X3$1.IfcCableCarrierFitting(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3758799889: (a) => new IFC4X3$1.IfcCableCarrierSegment(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1051757585: (a) => new IFC4X3$1.IfcCableFitting(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 4217484030: (a) => new IFC4X3$1.IfcCableSegment(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3999819293: (a) => new IFC4X3$1.IfcCaissonFoundation(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3902619387: (a) => new IFC4X3$1.IfcChiller(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 639361253: (a) => new IFC4X3$1.IfcCoil(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3221913625: (a) => new IFC4X3$1.IfcCommunicationsAppliance(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3571504051: (a) => new IFC4X3$1.IfcCompressor(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2272882330: (a) => new IFC4X3$1.IfcCondenser(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 578613899: (a) => new IFC4X3$1.IfcControllerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), + 3460952963: (a) => new IFC4X3$1.IfcConveyorSegment(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 4136498852: (a) => new IFC4X3$1.IfcCooledBeam(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3640358203: (a) => new IFC4X3$1.IfcCoolingTower(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 4074379575: (a) => new IFC4X3$1.IfcDamper(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3693000487: (a) => new IFC4X3$1.IfcDistributionBoard(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1052013943: (a) => new IFC4X3$1.IfcDistributionChamberElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 562808652: (a) => new IFC4X3$1.IfcDistributionCircuit(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), + 1062813311: (a) => new IFC4X3$1.IfcDistributionControlElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 342316401: (a) => new IFC4X3$1.IfcDuctFitting(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3518393246: (a) => new IFC4X3$1.IfcDuctSegment(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1360408905: (a) => new IFC4X3$1.IfcDuctSilencer(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1904799276: (a) => new IFC4X3$1.IfcElectricAppliance(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 862014818: (a) => new IFC4X3$1.IfcElectricDistributionBoard(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3310460725: (a) => new IFC4X3$1.IfcElectricFlowStorageDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 24726584: (a) => new IFC4X3$1.IfcElectricFlowTreatmentDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 264262732: (a) => new IFC4X3$1.IfcElectricGenerator(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 402227799: (a) => new IFC4X3$1.IfcElectricMotor(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1003880860: (a) => new IFC4X3$1.IfcElectricTimeControl(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3415622556: (a) => new IFC4X3$1.IfcFan(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 819412036: (a) => new IFC4X3$1.IfcFilter(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 1426591983: (a) => new IFC4X3$1.IfcFireSuppressionTerminal(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 182646315: (a) => new IFC4X3$1.IfcFlowInstrument(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 2680139844: (a) => new IFC4X3$1.IfcGeomodel(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 1971632696: (a) => new IFC4X3$1.IfcGeoslice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), + 2295281155: (a) => new IFC4X3$1.IfcProtectiveDeviceTrippingUnit(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 4086658281: (a) => new IFC4X3$1.IfcSensor(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 630975310: (a) => new IFC4X3$1.IfcUnitaryControlElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 4288193352: (a) => new IFC4X3$1.IfcActuator(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 3087945054: (a) => new IFC4X3$1.IfcAlarm(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), + 25142252: (a) => new IFC4X3$1.IfcController(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]) +}; +ToRawLineData[3] = { + 3630933823: (i) => [i.Role, i.UserDefinedRole, i.Description], + 618182010: (i) => [i.Purpose, i.Description, i.UserDefinedPurpose], + 2879124712: (i) => [i.StartTag, i.EndTag], + 3633395639: (i) => [i.StartTag, i.EndTag, i.StartDistAlong, i.HorizontalLength, i.StartHeight, i.StartGradient, i.EndGradient, i.RadiusOfCurvature, i.PredefinedType], + 639542469: (i) => [i.ApplicationDeveloper, i.Version, i.ApplicationFullName, i.ApplicationIdentifier], + 411424972: (i) => [i.Name, i.Description, i.AppliedValue, i.UnitBasis, i.ApplicableDate, i.FixedUntilDate, i.Category, i.Condition, i.ArithmeticOperator, i.Components], + 130549933: (i) => [i.Identifier, i.Name, i.Description, i.TimeOfApproval, i.Status, i.Level, i.Qualifier, i.RequestingApproval, i.GivingApproval], + 4037036970: (i) => [i.Name], + 1560379544: (i) => [i.Name, !i.TranslationalStiffnessByLengthX ? null : Labelise(i.TranslationalStiffnessByLengthX), !i.TranslationalStiffnessByLengthY ? null : Labelise(i.TranslationalStiffnessByLengthY), !i.TranslationalStiffnessByLengthZ ? null : Labelise(i.TranslationalStiffnessByLengthZ), !i.RotationalStiffnessByLengthX ? null : Labelise(i.RotationalStiffnessByLengthX), !i.RotationalStiffnessByLengthY ? null : Labelise(i.RotationalStiffnessByLengthY), !i.RotationalStiffnessByLengthZ ? null : Labelise(i.RotationalStiffnessByLengthZ)], + 3367102660: (i) => [i.Name, !i.TranslationalStiffnessByAreaX ? null : Labelise(i.TranslationalStiffnessByAreaX), !i.TranslationalStiffnessByAreaY ? null : Labelise(i.TranslationalStiffnessByAreaY), !i.TranslationalStiffnessByAreaZ ? null : Labelise(i.TranslationalStiffnessByAreaZ)], + 1387855156: (i) => [i.Name, !i.TranslationalStiffnessX ? null : Labelise(i.TranslationalStiffnessX), !i.TranslationalStiffnessY ? null : Labelise(i.TranslationalStiffnessY), !i.TranslationalStiffnessZ ? null : Labelise(i.TranslationalStiffnessZ), !i.RotationalStiffnessX ? null : Labelise(i.RotationalStiffnessX), !i.RotationalStiffnessY ? null : Labelise(i.RotationalStiffnessY), !i.RotationalStiffnessZ ? null : Labelise(i.RotationalStiffnessZ)], + 2069777674: (i) => [i.Name, !i.TranslationalStiffnessX ? null : Labelise(i.TranslationalStiffnessX), !i.TranslationalStiffnessY ? null : Labelise(i.TranslationalStiffnessY), !i.TranslationalStiffnessZ ? null : Labelise(i.TranslationalStiffnessZ), !i.RotationalStiffnessX ? null : Labelise(i.RotationalStiffnessX), !i.RotationalStiffnessY ? null : Labelise(i.RotationalStiffnessY), !i.RotationalStiffnessZ ? null : Labelise(i.RotationalStiffnessZ), !i.WarpingStiffness ? null : Labelise(i.WarpingStiffness)], + 2859738748: (_) => [], + 2614616156: (i) => [i.PointOnRelatingElement, i.PointOnRelatedElement], + 2732653382: (i) => [i.SurfaceOnRelatingElement, i.SurfaceOnRelatedElement], + 775493141: (i) => [i.VolumeOnRelatingElement, i.VolumeOnRelatedElement], + 1959218052: (i) => [i.Name, i.Description, i.ConstraintGrade, i.ConstraintSource, i.CreatingActor, i.CreationTime, i.UserDefinedGrade], + 1785450214: (i) => [i.SourceCRS, i.TargetCRS], + 1466758467: (i) => [i.Name, i.Description, i.GeodeticDatum, i.VerticalDatum], + 602808272: (i) => [i.Name, i.Description, i.AppliedValue, i.UnitBasis, i.ApplicableDate, i.FixedUntilDate, i.Category, i.Condition, i.ArithmeticOperator, i.Components], + 1765591967: (i) => [i.Elements, i.UnitType, i.UserDefinedType, i.Name], + 1045800335: (i) => [i.Unit, i.Exponent], + 2949456006: (i) => [i.LengthExponent, i.MassExponent, i.TimeExponent, i.ElectricCurrentExponent, i.ThermodynamicTemperatureExponent, i.AmountOfSubstanceExponent, i.LuminousIntensityExponent], + 4294318154: (_) => [], + 3200245327: (i) => [i.Location, i.Identification, i.Name], + 2242383968: (i) => [i.Location, i.Identification, i.Name], + 1040185647: (i) => [i.Location, i.Identification, i.Name], + 3548104201: (i) => [i.Location, i.Identification, i.Name], + 852622518: (i) => { + var _a; + return [i.AxisTag, i.AxisCurve, (_a = i.SameSense) == null ? void 0 : _a.toString()]; + }, + 3020489413: (i) => [i.TimeStamp, i.ListValues.map((p) => Labelise(p))], + 2655187982: (i) => [i.Name, i.Version, i.Publisher, i.VersionDate, i.Location, i.Description], + 3452421091: (i) => [i.Location, i.Identification, i.Name, i.Description, i.Language, i.ReferencedLibrary], + 4162380809: (i) => [i.MainPlaneAngle, i.SecondaryPlaneAngle, i.LuminousIntensity], + 1566485204: (i) => [i.LightDistributionCurve, i.DistributionData], + 3057273783: (i) => [i.SourceCRS, i.TargetCRS, i.Eastings, i.Northings, i.OrthogonalHeight, i.XAxisAbscissa, i.XAxisOrdinate, i.Scale, i.ScaleY, i.ScaleZ], + 1847130766: (i) => [i.MaterialClassifications, i.ClassifiedMaterial], + 760658860: (_) => [], + 248100487: (i) => { + var _a; + return [i.Material, i.LayerThickness, (_a = i.IsVentilated) == null ? void 0 : _a.toString(), i.Name, i.Description, i.Category, i.Priority]; + }, + 3303938423: (i) => [i.MaterialLayers, i.LayerSetName, i.Description], + 1847252529: (i) => { + var _a; + return [i.Material, i.LayerThickness, (_a = i.IsVentilated) == null ? void 0 : _a.toString(), i.Name, i.Description, i.Category, i.Priority, i.OffsetDirection, i.OffsetValues]; + }, + 2199411900: (i) => [i.Materials], + 2235152071: (i) => [i.Name, i.Description, i.Material, i.Profile, i.Priority, i.Category], + 164193824: (i) => [i.Name, i.Description, i.MaterialProfiles, i.CompositeProfile], + 552965576: (i) => [i.Name, i.Description, i.Material, i.Profile, i.Priority, i.Category, i.OffsetValues], + 1507914824: (_) => [], + 2597039031: (i) => [Labelise(i.ValueComponent), i.UnitComponent], + 3368373690: (i) => [i.Name, i.Description, i.ConstraintGrade, i.ConstraintSource, i.CreatingActor, i.CreationTime, i.UserDefinedGrade, i.Benchmark, i.ValueSource, i.DataValue, i.ReferencePath], + 2706619895: (i) => [i.Currency], + 1918398963: (i) => [i.Dimensions, i.UnitType], + 3701648758: (i) => [i.PlacementRelTo], + 2251480897: (i) => [i.Name, i.Description, i.ConstraintGrade, i.ConstraintSource, i.CreatingActor, i.CreationTime, i.UserDefinedGrade, i.BenchmarkValues, i.LogicalAggregator, i.ObjectiveQualifier, i.UserDefinedQualifier], + 4251960020: (i) => [i.Identification, i.Name, i.Description, i.Roles, i.Addresses], + 1207048766: (i) => [i.OwningUser, i.OwningApplication, i.State, i.ChangeAction, i.LastModifiedDate, i.LastModifyingUser, i.LastModifyingApplication, i.CreationDate], + 2077209135: (i) => [i.Identification, i.FamilyName, i.GivenName, i.MiddleNames, i.PrefixTitles, i.SuffixTitles, i.Roles, i.Addresses], + 101040310: (i) => [i.ThePerson, i.TheOrganization, i.Roles], + 2483315170: (i) => [i.Name, i.Description], + 2226359599: (i) => [i.Name, i.Description, i.Unit], + 3355820592: (i) => [i.Purpose, i.Description, i.UserDefinedPurpose, i.InternalLocation, i.AddressLines, i.PostalBox, i.Town, i.Region, i.PostalCode, i.Country], + 677532197: (_) => [], + 2022622350: (i) => [i.Name, i.Description, i.AssignedItems, i.Identifier], + 1304840413: (i) => { + var _a, _b, _c; + return [i.Name, i.Description, i.AssignedItems, i.Identifier, (_a = i.LayerOn) == null ? void 0 : _a.toString(), (_b = i.LayerFrozen) == null ? void 0 : _b.toString(), (_c = i.LayerBlocked) == null ? void 0 : _c.toString(), i.LayerStyles]; + }, + 3119450353: (i) => [i.Name], + 2095639259: (i) => [i.Name, i.Description, i.Representations], + 3958567839: (i) => [i.ProfileType, i.ProfileName], + 3843373140: (i) => [i.Name, i.Description, i.GeodeticDatum, i.VerticalDatum, i.MapProjection, i.MapZone, i.MapUnit], + 986844984: (_) => [], + 3710013099: (i) => [i.Name, i.EnumerationValues.map((p) => Labelise(p)), i.Unit], + 2044713172: (i) => [i.Name, i.Description, i.Unit, i.AreaValue, i.Formula], + 2093928680: (i) => [i.Name, i.Description, i.Unit, i.CountValue, i.Formula], + 931644368: (i) => [i.Name, i.Description, i.Unit, i.LengthValue, i.Formula], + 2691318326: (i) => [i.Name, i.Description, i.Unit, i.NumberValue, i.Formula], + 3252649465: (i) => [i.Name, i.Description, i.Unit, i.TimeValue, i.Formula], + 2405470396: (i) => [i.Name, i.Description, i.Unit, i.VolumeValue, i.Formula], + 825690147: (i) => [i.Name, i.Description, i.Unit, i.WeightValue, i.Formula], + 3915482550: (i) => [i.RecurrenceType, i.DayComponent, i.WeekdayComponent, i.MonthComponent, i.Position, i.Interval, i.Occurrences, i.TimePeriods], + 2433181523: (i) => [i.TypeIdentifier, i.AttributeIdentifier, i.InstanceName, i.ListPositions, i.InnerReference], + 1076942058: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items], + 3377609919: (i) => [i.ContextIdentifier, i.ContextType], + 3008791417: (_) => [], + 1660063152: (i) => [i.MappingOrigin, i.MappedRepresentation], + 2439245199: (i) => [i.Name, i.Description], + 2341007311: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description], + 448429030: (i) => [i.Dimensions, i.UnitType, i.Prefix, i.Name], + 1054537805: (i) => [i.Name, i.DataOrigin, i.UserDefinedDataOrigin], + 867548509: (i) => { + var _a; + return [i.ShapeRepresentations, i.Name, i.Description, (_a = i.ProductDefinitional) == null ? void 0 : _a.toString(), i.PartOfProductDefinitionShape]; + }, + 3982875396: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items], + 4240577450: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items], + 2273995522: (i) => [i.Name], + 2162789131: (i) => [i.Name], + 3478079324: (i) => [i.Name, i.Values, i.Locations], + 609421318: (i) => [i.Name], + 2525727697: (i) => [i.Name], + 3408363356: (i) => [i.Name, i.DeltaTConstant, i.DeltaTY, i.DeltaTZ], + 2830218821: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items], + 3958052878: (i) => [i.Item, i.Styles, i.Name], + 3049322572: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items], + 2934153892: (i) => [i.Name, i.SurfaceReinforcement1, i.SurfaceReinforcement2, i.ShearReinforcement], + 1300840506: (i) => [i.Name, i.Side, i.Styles], + 3303107099: (i) => [i.DiffuseTransmissionColour, i.DiffuseReflectionColour, i.TransmissionColour, i.ReflectanceColour], + 1607154358: (i) => [i.RefractionIndex, i.DispersionFactor], + 846575682: (i) => [i.SurfaceColour, i.Transparency], + 1351298697: (i) => [i.Textures], + 626085974: (i) => { + var _a, _b; + return [(_a = i.RepeatS) == null ? void 0 : _a.toString(), (_b = i.RepeatT) == null ? void 0 : _b.toString(), i.Mode, i.TextureTransform, i.Parameter]; + }, + 985171141: (i) => [i.Name, i.Rows, i.Columns], + 2043862942: (i) => [i.Identifier, i.Name, i.Description, i.Unit, i.ReferencePath], + 531007025: (i) => { + var _a; + return [!i.RowCells ? null : i.RowCells.map((p) => Labelise(p)), (_a = i.IsHeading) == null ? void 0 : _a.toString()]; + }, + 1549132990: (i) => { + var _a; + return [i.Name, i.DataOrigin, i.UserDefinedDataOrigin, i.DurationType, i.ScheduleDuration, i.ScheduleStart, i.ScheduleFinish, i.EarlyStart, i.EarlyFinish, i.LateStart, i.LateFinish, i.FreeFloat, i.TotalFloat, (_a = i.IsCritical) == null ? void 0 : _a.toString(), i.StatusTime, i.ActualDuration, i.ActualStart, i.ActualFinish, i.RemainingTime, i.Completion]; + }, + 2771591690: (i) => { + var _a; + return [i.Name, i.DataOrigin, i.UserDefinedDataOrigin, i.DurationType, i.ScheduleDuration, i.ScheduleStart, i.ScheduleFinish, i.EarlyStart, i.EarlyFinish, i.LateStart, i.LateFinish, i.FreeFloat, i.TotalFloat, (_a = i.IsCritical) == null ? void 0 : _a.toString(), i.StatusTime, i.ActualDuration, i.ActualStart, i.ActualFinish, i.RemainingTime, i.Completion, i.Recurrence]; + }, + 912023232: (i) => [i.Purpose, i.Description, i.UserDefinedPurpose, i.TelephoneNumbers, i.FacsimileNumbers, i.PagerNumber, i.ElectronicMailAddresses, i.WWWHomePageURL, i.MessagingIDs], + 1447204868: (i) => { + var _a; + return [i.Name, i.TextCharacterAppearance, i.TextStyle, i.TextFontStyle, (_a = i.ModelOrDraughting) == null ? void 0 : _a.toString()]; + }, + 2636378356: (i) => [i.Colour, i.BackgroundColour], + 1640371178: (i) => [!i.TextIndent ? null : Labelise(i.TextIndent), i.TextAlign, i.TextDecoration, !i.LetterSpacing ? null : Labelise(i.LetterSpacing), !i.WordSpacing ? null : Labelise(i.WordSpacing), i.TextTransform, !i.LineHeight ? null : Labelise(i.LineHeight)], + 280115917: (i) => [i.Maps], + 1742049831: (i) => [i.Maps, i.Mode, i.Parameter], + 222769930: (i) => [i.TexCoordIndex, i.TexCoordsOf], + 1010789467: (i) => [i.TexCoordIndex, i.TexCoordsOf, i.InnerTexCoordIndices], + 2552916305: (i) => [i.Maps, i.Vertices, i.MappedTo], + 1210645708: (i) => [i.Coordinates], + 3611470254: (i) => [i.TexCoordsList], + 1199560280: (i) => [i.StartTime, i.EndTime], + 3101149627: (i) => [i.Name, i.Description, i.StartTime, i.EndTime, i.TimeSeriesDataType, i.DataOrigin, i.UserDefinedDataOrigin, i.Unit], + 581633288: (i) => [i.ListValues.map((p) => Labelise(p))], + 1377556343: (_) => [], + 1735638870: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items], + 180925521: (i) => [i.Units], + 2799835756: (_) => [], + 1907098498: (i) => [i.VertexGeometry], + 891718957: (i) => [i.IntersectingAxes, i.OffsetDistances], + 1236880293: (i) => [i.Name, i.DataOrigin, i.UserDefinedDataOrigin, i.RecurrencePattern, i.StartDate, i.FinishDate], + 3752311538: (i) => [i.StartTag, i.EndTag, i.StartDistAlong, i.HorizontalLength, i.StartCantLeft, i.EndCantLeft, i.StartCantRight, i.EndCantRight, i.PredefinedType], + 536804194: (i) => [i.StartTag, i.EndTag, i.StartPoint, i.StartDirection, i.StartRadiusOfCurvature, i.EndRadiusOfCurvature, i.SegmentLength, i.GravityCenterLineHeight, i.PredefinedType], + 3869604511: (i) => [i.Name, i.Description, i.RelatingApproval, i.RelatedApprovals], + 3798115385: (i) => [i.ProfileType, i.ProfileName, i.OuterCurve], + 1310608509: (i) => [i.ProfileType, i.ProfileName, i.Curve], + 2705031697: (i) => [i.ProfileType, i.ProfileName, i.OuterCurve, i.InnerCurves], + 616511568: (i) => { + var _a, _b; + return [(_a = i.RepeatS) == null ? void 0 : _a.toString(), (_b = i.RepeatT) == null ? void 0 : _b.toString(), i.Mode, i.TextureTransform, i.Parameter, i.RasterFormat, i.RasterCode]; + }, + 3150382593: (i) => [i.ProfileType, i.ProfileName, i.Curve, i.Thickness], + 747523909: (i) => [i.Source, i.Edition, i.EditionDate, i.Name, i.Description, i.Specification, i.ReferenceTokens], + 647927063: (i) => [i.Location, i.Identification, i.Name, i.ReferencedSource, i.Description, i.Sort], + 3285139300: (i) => [i.ColourList], + 3264961684: (i) => [i.Name], + 1485152156: (i) => [i.ProfileType, i.ProfileName, i.Profiles, i.Label], + 370225590: (i) => [i.CfsFaces], + 1981873012: (i) => [i.CurveOnRelatingElement, i.CurveOnRelatedElement], + 45288368: (i) => [i.PointOnRelatingElement, i.PointOnRelatedElement, i.EccentricityInX, i.EccentricityInY, i.EccentricityInZ], + 3050246964: (i) => [i.Dimensions, i.UnitType, i.Name], + 2889183280: (i) => [i.Dimensions, i.UnitType, i.Name, i.ConversionFactor], + 2713554722: (i) => [i.Dimensions, i.UnitType, i.Name, i.ConversionFactor, i.ConversionOffset], + 539742890: (i) => [i.Name, i.Description, i.RelatingMonetaryUnit, i.RelatedMonetaryUnit, i.ExchangeRate, i.RateDateTime, i.RateSource], + 3800577675: (i) => { + var _a; + return [i.Name, i.CurveFont, !i.CurveWidth ? null : Labelise(i.CurveWidth), i.CurveColour, (_a = i.ModelOrDraughting) == null ? void 0 : _a.toString()]; + }, + 1105321065: (i) => [i.Name, i.PatternList], + 2367409068: (i) => [i.Name, i.CurveStyleFont, i.CurveFontScaling], + 3510044353: (i) => [i.VisibleSegmentLength, i.InvisibleSegmentLength], + 3632507154: (i) => [i.ProfileType, i.ProfileName, i.ParentProfile, i.Operator, i.Label], + 1154170062: (i) => [i.Identification, i.Name, i.Description, i.Location, i.Purpose, i.IntendedUse, i.Scope, i.Revision, i.DocumentOwner, i.Editors, i.CreationTime, i.LastRevisionTime, i.ElectronicFormat, i.ValidFrom, i.ValidUntil, i.Confidentiality, i.Status], + 770865208: (i) => [i.Name, i.Description, i.RelatingDocument, i.RelatedDocuments, i.RelationshipType], + 3732053477: (i) => [i.Location, i.Identification, i.Name, i.Description, i.ReferencedDocument], + 3900360178: (i) => [i.EdgeStart, i.EdgeEnd], + 476780140: (i) => { + var _a; + return [i.EdgeStart, i.EdgeEnd, i.EdgeGeometry, (_a = i.SameSense) == null ? void 0 : _a.toString()]; + }, + 211053100: (i) => [i.Name, i.DataOrigin, i.UserDefinedDataOrigin, i.ActualDate, i.EarlyDate, i.LateDate, i.ScheduleDate], + 297599258: (i) => [i.Name, i.Description, i.Properties], + 1437805879: (i) => [i.Name, i.Description, i.RelatingReference, i.RelatedResourceObjects], + 2556980723: (i) => [i.Bounds], + 1809719519: (i) => { + var _a; + return [i.Bound, (_a = i.Orientation) == null ? void 0 : _a.toString()]; + }, + 803316827: (i) => { + var _a; + return [i.Bound, (_a = i.Orientation) == null ? void 0 : _a.toString()]; + }, + 3008276851: (i) => { + var _a; + return [i.Bounds, i.FaceSurface, (_a = i.SameSense) == null ? void 0 : _a.toString()]; + }, + 4219587988: (i) => [i.Name, i.TensionFailureX, i.TensionFailureY, i.TensionFailureZ, i.CompressionFailureX, i.CompressionFailureY, i.CompressionFailureZ], + 738692330: (i) => { + var _a; + return [i.Name, i.FillStyles, (_a = i.ModelOrDraughting) == null ? void 0 : _a.toString()]; + }, + 3448662350: (i) => [i.ContextIdentifier, i.ContextType, i.CoordinateSpaceDimension, i.Precision, i.WorldCoordinateSystem, i.TrueNorth], + 2453401579: (_) => [], + 4142052618: (i) => [i.ContextIdentifier, i.ContextType, i.CoordinateSpaceDimension, i.Precision, i.WorldCoordinateSystem, i.TrueNorth, i.ParentContext, i.TargetScale, i.TargetView, i.UserDefinedTargetView], + 3590301190: (i) => [i.Elements], + 178086475: (i) => [i.PlacementRelTo, i.PlacementLocation, i.PlacementRefDirection], + 812098782: (i) => { + var _a; + return [i.BaseSurface, (_a = i.AgreementFlag) == null ? void 0 : _a.toString()]; + }, + 3905492369: (i) => { + var _a, _b; + return [(_a = i.RepeatS) == null ? void 0 : _a.toString(), (_b = i.RepeatT) == null ? void 0 : _b.toString(), i.Mode, i.TextureTransform, i.Parameter, i.URLReference]; + }, + 3570813810: (i) => [i.MappedTo, i.Opacity, i.Colours, i.ColourIndex], + 1437953363: (i) => [i.Maps, i.MappedTo, i.TexCoords], + 2133299955: (i) => [i.Maps, i.MappedTo, i.TexCoords, i.TexCoordIndex], + 3741457305: (i) => [i.Name, i.Description, i.StartTime, i.EndTime, i.TimeSeriesDataType, i.DataOrigin, i.UserDefinedDataOrigin, i.Unit, i.Values], + 1585845231: (i) => [i.Name, i.DataOrigin, i.UserDefinedDataOrigin, Labelise(i.LagValue), i.DurationType], + 1402838566: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity], + 125510826: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity], + 2604431987: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity, i.Orientation], + 4266656042: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity, i.Position, i.ColourAppearance, i.ColourTemperature, i.LuminousFlux, i.LightEmissionSource, i.LightDistributionDataSource], + 1520743889: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity, i.Position, i.Radius, i.ConstantAttenuation, i.DistanceAttenuation, i.QuadricAttenuation], + 3422422726: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity, i.Position, i.Radius, i.ConstantAttenuation, i.DistanceAttenuation, i.QuadricAttenuation, i.Orientation, i.ConcentrationExponent, i.SpreadAngle, i.BeamWidthAngle], + 388784114: (i) => [i.PlacementRelTo, i.RelativePlacement, i.CartesianPosition], + 2624227202: (i) => [i.PlacementRelTo, i.RelativePlacement], + 1008929658: (_) => [], + 2347385850: (i) => [i.MappingSource, i.MappingTarget], + 1838606355: (i) => [i.Name, i.Description, i.Category], + 3708119e3: (i) => [i.Name, i.Description, i.Material, i.Fraction, i.Category], + 2852063980: (i) => [i.Name, i.Description, i.MaterialConstituents], + 2022407955: (i) => [i.Name, i.Description, i.Representations, i.RepresentedMaterial], + 1303795690: (i) => [i.ForLayerSet, i.LayerSetDirection, i.DirectionSense, i.OffsetFromReferenceLine, i.ReferenceExtent], + 3079605661: (i) => [i.ForProfileSet, i.CardinalPoint, i.ReferenceExtent], + 3404854881: (i) => [i.ForProfileSet, i.CardinalPoint, i.ReferenceExtent, i.ForProfileEndSet, i.CardinalEndPoint], + 3265635763: (i) => [i.Name, i.Description, i.Properties, i.Material], + 853536259: (i) => [i.Name, i.Description, i.RelatingMaterial, i.RelatedMaterials, i.MaterialExpression], + 2998442950: (i) => [i.ProfileType, i.ProfileName, i.ParentProfile, i.Operator, i.Label], + 219451334: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description], + 182550632: (i) => { + var _a; + return [i.ProfileType, i.ProfileName, (_a = i.HorizontalWidths) == null ? void 0 : _a.toString(), i.Widths, i.Slopes, i.Tags, i.OffsetPoint]; + }, + 2665983363: (i) => [i.CfsFaces], + 1411181986: (i) => [i.Name, i.Description, i.RelatingOrganization, i.RelatedOrganizations], + 1029017970: (i) => { + var _a; + return [i.EdgeStart, i.EdgeEnd, i.EdgeElement, (_a = i.Orientation) == null ? void 0 : _a.toString()]; + }, + 2529465313: (i) => [i.ProfileType, i.ProfileName, i.Position], + 2519244187: (i) => [i.EdgeList], + 3021840470: (i) => [i.Name, i.Description, i.HasQuantities, i.Discrimination, i.Quality, i.Usage], + 597895409: (i) => { + var _a, _b; + return [(_a = i.RepeatS) == null ? void 0 : _a.toString(), (_b = i.RepeatT) == null ? void 0 : _b.toString(), i.Mode, i.TextureTransform, i.Parameter, i.Width, i.Height, i.ColourComponents, i.Pixel]; + }, + 2004835150: (i) => [i.Location], + 1663979128: (i) => [i.SizeInX, i.SizeInY], + 2067069095: (_) => [], + 2165702409: (i) => [Labelise(i.DistanceAlong), i.OffsetLateral, i.OffsetVertical, i.OffsetLongitudinal, i.BasisCurve], + 4022376103: (i) => [i.BasisCurve, i.PointParameter], + 1423911732: (i) => [i.BasisSurface, i.PointParameterU, i.PointParameterV], + 2924175390: (i) => [i.Polygon], + 2775532180: (i) => { + var _a; + return [i.BaseSurface, (_a = i.AgreementFlag) == null ? void 0 : _a.toString(), i.Position, i.PolygonalBoundary]; + }, + 3727388367: (i) => [i.Name], + 3778827333: (_) => [], + 1775413392: (i) => [i.Name], + 673634403: (i) => [i.Name, i.Description, i.Representations], + 2802850158: (i) => [i.Name, i.Description, i.Properties, i.ProfileDefinition], + 2598011224: (i) => [i.Name, i.Specification], + 1680319473: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description], + 148025276: (i) => [i.Name, i.Description, i.DependingProperty, i.DependantProperty, i.Expression], + 3357820518: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description], + 1482703590: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description], + 2090586900: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description], + 3615266464: (i) => [i.ProfileType, i.ProfileName, i.Position, i.XDim, i.YDim], + 3413951693: (i) => [i.Name, i.Description, i.StartTime, i.EndTime, i.TimeSeriesDataType, i.DataOrigin, i.UserDefinedDataOrigin, i.Unit, i.TimeStep, i.Values], + 1580146022: (i) => [i.TotalCrossSectionArea, i.SteelGrade, i.BarSurface, i.EffectiveDepth, i.NominalBarDiameter, i.BarCount], + 478536968: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description], + 2943643501: (i) => [i.Name, i.Description, i.RelatedResourceObjects, i.RelatingApproval], + 1608871552: (i) => [i.Name, i.Description, i.RelatingConstraint, i.RelatedResourceObjects], + 1042787934: (i) => { + var _a; + return [i.Name, i.DataOrigin, i.UserDefinedDataOrigin, i.ScheduleWork, i.ScheduleUsage, i.ScheduleStart, i.ScheduleFinish, i.ScheduleContour, i.LevelingDelay, (_a = i.IsOverAllocated) == null ? void 0 : _a.toString(), i.StatusTime, i.ActualWork, i.ActualUsage, i.ActualStart, i.ActualFinish, i.RemainingWork, i.RemainingUsage, i.Completion]; + }, + 2778083089: (i) => [i.ProfileType, i.ProfileName, i.Position, i.XDim, i.YDim, i.RoundingRadius], + 2042790032: (i) => [i.SectionType, i.StartProfile, i.EndProfile], + 4165799628: (i) => [i.LongitudinalStartPosition, i.LongitudinalEndPosition, i.TransversePosition, i.ReinforcementRole, i.SectionDefinition, i.CrossSectionReinforcementDefinitions], + 1509187699: (i) => [i.SpineCurve, i.CrossSections, i.CrossSectionPositions], + 823603102: (i) => [i.Transition], + 4124623270: (i) => [i.SbsmBoundary], + 3692461612: (i) => [i.Name, i.Specification], + 2609359061: (i) => [i.Name, i.SlippageX, i.SlippageY, i.SlippageZ], + 723233188: (_) => [], + 1595516126: (i) => [i.Name, i.LinearForceX, i.LinearForceY, i.LinearForceZ, i.LinearMomentX, i.LinearMomentY, i.LinearMomentZ], + 2668620305: (i) => [i.Name, i.PlanarForceX, i.PlanarForceY, i.PlanarForceZ], + 2473145415: (i) => [i.Name, i.DisplacementX, i.DisplacementY, i.DisplacementZ, i.RotationalDisplacementRX, i.RotationalDisplacementRY, i.RotationalDisplacementRZ], + 1973038258: (i) => [i.Name, i.DisplacementX, i.DisplacementY, i.DisplacementZ, i.RotationalDisplacementRX, i.RotationalDisplacementRY, i.RotationalDisplacementRZ, i.Distortion], + 1597423693: (i) => [i.Name, i.ForceX, i.ForceY, i.ForceZ, i.MomentX, i.MomentY, i.MomentZ], + 1190533807: (i) => [i.Name, i.ForceX, i.ForceY, i.ForceZ, i.MomentX, i.MomentY, i.MomentZ, i.WarpingMoment], + 2233826070: (i) => [i.EdgeStart, i.EdgeEnd, i.ParentEdge], + 2513912981: (_) => [], + 1878645084: (i) => [i.SurfaceColour, i.Transparency, i.DiffuseColour, i.TransmissionColour, i.DiffuseTransmissionColour, i.ReflectionColour, i.SpecularColour, !i.SpecularHighlight ? null : Labelise(i.SpecularHighlight), i.ReflectanceMethod], + 2247615214: (i) => [i.SweptArea, i.Position], + 1260650574: (i) => [i.Directrix, i.Radius, i.InnerRadius, i.StartParam, i.EndParam], + 1096409881: (i) => [i.Directrix, i.Radius, i.InnerRadius, i.StartParam, i.EndParam, i.FilletRadius], + 230924584: (i) => [i.SweptCurve, i.Position], + 3071757647: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Depth, i.FlangeWidth, i.WebThickness, i.FlangeThickness, i.FilletRadius, i.FlangeEdgeRadius, i.WebEdgeRadius, i.WebSlope, i.FlangeSlope], + 901063453: (_) => [], + 4282788508: (i) => [i.Literal, i.Placement, i.Path], + 3124975700: (i) => [i.Literal, i.Placement, i.Path, i.Extent, i.BoxAlignment], + 1983826977: (i) => [i.Name, i.FontFamily, i.FontStyle, i.FontVariant, i.FontWeight, Labelise(i.FontSize)], + 2715220739: (i) => [i.ProfileType, i.ProfileName, i.Position, i.BottomXDim, i.TopXDim, i.YDim, i.TopXOffset], + 1628702193: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets], + 3736923433: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ProcessType], + 2347495698: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag], + 3698973494: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType], + 427810014: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Depth, i.FlangeWidth, i.WebThickness, i.FlangeThickness, i.FilletRadius, i.EdgeRadius, i.FlangeSlope], + 1417489154: (i) => [i.Orientation, i.Magnitude], + 2759199220: (i) => [i.LoopVertex], + 2543172580: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Depth, i.FlangeWidth, i.WebThickness, i.FlangeThickness, i.FilletRadius, i.EdgeRadius], + 3406155212: (i) => { + var _a; + return [i.Bounds, i.FaceSurface, (_a = i.SameSense) == null ? void 0 : _a.toString()]; + }, + 669184980: (i) => [i.OuterBoundary, i.InnerBoundaries], + 3207858831: (i) => [i.ProfileType, i.ProfileName, i.Position, i.BottomFlangeWidth, i.OverallDepth, i.WebThickness, i.BottomFlangeThickness, i.BottomFlangeFilletRadius, i.TopFlangeWidth, i.TopFlangeThickness, i.TopFlangeFilletRadius, i.BottomFlangeEdgeRadius, i.BottomFlangeSlope, i.TopFlangeEdgeRadius, i.TopFlangeSlope], + 4261334040: (i) => [i.Location, i.Axis], + 3125803723: (i) => [i.Location, i.RefDirection], + 2740243338: (i) => [i.Location, i.Axis, i.RefDirection], + 3425423356: (i) => [i.Location, i.Axis, i.RefDirection], + 2736907675: (i) => [i.Operator, i.FirstOperand, i.SecondOperand], + 4182860854: (_) => [], + 2581212453: (i) => [i.Corner, i.XDim, i.YDim, i.ZDim], + 2713105998: (i) => { + var _a; + return [i.BaseSurface, (_a = i.AgreementFlag) == null ? void 0 : _a.toString(), i.Enclosure]; + }, + 2898889636: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Depth, i.Width, i.WallThickness, i.Girth, i.InternalFilletRadius], + 1123145078: (i) => [i.Coordinates], + 574549367: (_) => [], + 1675464909: (i) => [i.CoordList, i.TagList], + 2059837836: (i) => [i.CoordList, i.TagList], + 59481748: (i) => [i.Axis1, i.Axis2, i.LocalOrigin, i.Scale], + 3749851601: (i) => [i.Axis1, i.Axis2, i.LocalOrigin, i.Scale], + 3486308946: (i) => [i.Axis1, i.Axis2, i.LocalOrigin, i.Scale, i.Scale2], + 3331915920: (i) => [i.Axis1, i.Axis2, i.LocalOrigin, i.Scale, i.Axis3], + 1416205885: (i) => [i.Axis1, i.Axis2, i.LocalOrigin, i.Scale, i.Axis3, i.Scale2, i.Scale3], + 1383045692: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Radius], + 2205249479: (i) => [i.CfsFaces], + 776857604: (i) => [i.Name, i.Red, i.Green, i.Blue], + 2542286263: (i) => [i.Name, i.Specification, i.UsageName, i.HasProperties], + 2485617015: (i) => { + var _a; + return [i.Transition, (_a = i.SameSense) == null ? void 0 : _a.toString(), i.ParentCurve]; + }, + 2574617495: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType, i.BaseCosts, i.BaseQuantity], + 3419103109: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.LongName, i.Phase, i.RepresentationContexts, i.UnitsInContext], + 1815067380: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType, i.BaseCosts, i.BaseQuantity, i.PredefinedType], + 2506170314: (i) => [i.Position], + 2147822146: (i) => [i.TreeRootExpression], + 2601014836: (_) => [], + 2827736869: (i) => [i.BasisSurface, i.OuterBoundary, i.InnerBoundaries], + 2629017746: (i) => { + var _a; + return [i.BasisSurface, i.Boundaries, (_a = i.ImplicitOuter) == null ? void 0 : _a.toString()]; + }, + 4212018352: (i) => [i.Transition, i.Placement, Labelise(i.SegmentStart), Labelise(i.SegmentLength), i.ParentCurve], + 32440307: (i) => [i.DirectionRatios], + 593015953: (i) => [i.SweptArea, i.Position, i.Directrix, !i.StartParam ? null : Labelise(i.StartParam), !i.EndParam ? null : Labelise(i.EndParam)], + 1472233963: (i) => [i.EdgeList], + 1883228015: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.MethodOfMeasurement, i.Quantities], + 339256511: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], + 2777663545: (i) => [i.Position], + 2835456948: (i) => [i.ProfileType, i.ProfileName, i.Position, i.SemiAxis1, i.SemiAxis2], + 4024345920: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ProcessType, i.PredefinedType, i.EventTriggerType, i.UserDefinedEventTriggerType], + 477187591: (i) => [i.SweptArea, i.Position, i.ExtrudedDirection, i.Depth], + 2804161546: (i) => [i.SweptArea, i.Position, i.ExtrudedDirection, i.Depth, i.EndSweptArea], + 2047409740: (i) => [i.FbsmFaces], + 374418227: (i) => [i.HatchLineAppearance, i.StartOfNextHatchLine, i.PointOfReferenceHatchLine, i.PatternStart, i.HatchLineAngle], + 315944413: (i) => [i.TilingPattern, i.Tiles, i.TilingScale], + 2652556860: (i) => [i.SweptArea, i.Position, i.Directrix, !i.StartParam ? null : Labelise(i.StartParam), !i.EndParam ? null : Labelise(i.EndParam), i.FixedReference], + 4238390223: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], + 1268542332: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.AssemblyPlace, i.PredefinedType], + 4095422895: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 987898635: (i) => [i.Elements], + 1484403080: (i) => [i.ProfileType, i.ProfileName, i.Position, i.OverallWidth, i.OverallDepth, i.WebThickness, i.FlangeThickness, i.FilletRadius, i.FlangeEdgeRadius, i.FlangeSlope], + 178912537: (i) => [i.CoordIndex], + 2294589976: (i) => [i.CoordIndex, i.InnerCoordIndices], + 3465909080: (i) => [i.Maps, i.MappedTo, i.TexCoords, i.TexCoordIndices], + 572779678: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Depth, i.Width, i.Thickness, i.FilletRadius, i.EdgeRadius, i.LegSlope], + 428585644: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType, i.BaseCosts, i.BaseQuantity, i.PredefinedType], + 1281925730: (i) => [i.Pnt, i.Dir], + 1425443689: (i) => [i.Outer], + 3888040117: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType], + 590820931: (i) => [i.BasisCurve], + 3388369263: (i) => { + var _a; + return [i.BasisCurve, i.Distance, (_a = i.SelfIntersect) == null ? void 0 : _a.toString()]; + }, + 3505215534: (i) => { + var _a; + return [i.BasisCurve, i.Distance, (_a = i.SelfIntersect) == null ? void 0 : _a.toString(), i.RefDirection]; + }, + 2485787929: (i) => [i.BasisCurve, i.OffsetValues, i.Tag], + 1682466193: (i) => [i.BasisSurface, i.ReferenceCurve], + 603570806: (i) => [i.SizeInX, i.SizeInY, i.Placement], + 220341763: (i) => [i.Position], + 3381221214: (i) => [i.Position, i.CoefficientsX, i.CoefficientsY, i.CoefficientsZ], + 759155922: (i) => [i.Name], + 2559016684: (i) => [i.Name], + 3967405729: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description], + 569719735: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ProcessType, i.PredefinedType], + 2945172077: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription], + 4208778838: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation], + 103090709: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.LongName, i.Phase, i.RepresentationContexts, i.UnitsInContext], + 653396225: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.LongName, i.Phase, i.RepresentationContexts, i.UnitsInContext], + 871118103: (i) => [i.Name, i.Specification, !i.UpperBoundValue ? null : Labelise(i.UpperBoundValue), !i.LowerBoundValue ? null : Labelise(i.LowerBoundValue), i.Unit, !i.SetPointValue ? null : Labelise(i.SetPointValue)], + 4166981789: (i) => [i.Name, i.Specification, !i.EnumerationValues ? null : i.EnumerationValues.map((p) => Labelise(p)), i.EnumerationReference], + 2752243245: (i) => [i.Name, i.Specification, !i.ListValues ? null : i.ListValues.map((p) => Labelise(p)), i.Unit], + 941946838: (i) => [i.Name, i.Specification, i.UsageName, i.PropertyReference], + 1451395588: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.HasProperties], + 492091185: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.TemplateType, i.ApplicableEntity, i.HasPropertyTemplates], + 3650150729: (i) => [i.Name, i.Specification, !i.NominalValue ? null : Labelise(i.NominalValue), i.Unit], + 110355661: (i) => [i.Name, i.Specification, !i.DefiningValues ? null : i.DefiningValues.map((p) => Labelise(p)), !i.DefinedValues ? null : i.DefinedValues.map((p) => Labelise(p)), i.Expression, i.DefiningUnit, i.DefinedUnit, i.CurveInterpolation], + 3521284610: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description], + 2770003689: (i) => [i.ProfileType, i.ProfileName, i.Position, i.XDim, i.YDim, i.WallThickness, i.InnerFilletRadius, i.OuterFilletRadius], + 2798486643: (i) => [i.Position, i.XLength, i.YLength, i.Height], + 3454111270: (i) => { + var _a, _b; + return [i.BasisSurface, i.U1, i.V1, i.U2, i.V2, (_a = i.Usense) == null ? void 0 : _a.toString(), (_b = i.Vsense) == null ? void 0 : _b.toString()]; + }, + 3765753017: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.DefinitionType, i.ReinforcementSectionDefinitions], + 3939117080: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType], + 1683148259: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingActor, i.ActingRole], + 2495723537: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingControl], + 1307041759: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingGroup], + 1027710054: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingGroup, i.Factor], + 4278684876: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingProcess, i.QuantityInProcess], + 2857406711: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingProduct], + 205026976: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingResource], + 1865459582: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects], + 4095574036: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingApproval], + 919958153: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingClassification], + 2728634034: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.Intent, i.RelatingConstraint], + 982818633: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingDocument], + 3840914261: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingLibrary], + 2655215786: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingMaterial], + 1033248425: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingProfileDef], + 826625072: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description], + 1204542856: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ConnectionGeometry, i.RelatingElement, i.RelatedElement], + 3945020480: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ConnectionGeometry, i.RelatingElement, i.RelatedElement, i.RelatingPriorities, i.RelatedPriorities, i.RelatedConnectionType, i.RelatingConnectionType], + 4201705270: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingPort, i.RelatedElement], + 3190031847: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingPort, i.RelatedPort, i.RealizingElement], + 2127690289: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingElement, i.RelatedStructuralActivity], + 1638771189: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingStructuralMember, i.RelatedStructuralConnection, i.AppliedCondition, i.AdditionalConditions, i.SupportedLength, i.ConditionCoordinateSystem], + 504942748: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingStructuralMember, i.RelatedStructuralConnection, i.AppliedCondition, i.AdditionalConditions, i.SupportedLength, i.ConditionCoordinateSystem, i.ConnectionConstraint], + 3678494232: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ConnectionGeometry, i.RelatingElement, i.RelatedElement, i.RealizingElements, i.ConnectionType], + 3242617779: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedElements, i.RelatingStructure], + 886880790: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingBuildingElement, i.RelatedCoverings], + 2802773753: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingSpace, i.RelatedCoverings], + 2565941209: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingContext, i.RelatedDefinitions], + 2551354335: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description], + 693640335: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description], + 1462361463: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingObject], + 4186316022: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingPropertyDefinition], + 307848117: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedPropertySets, i.RelatingTemplate], + 781010003: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingType], + 3940055652: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingOpeningElement, i.RelatedBuildingElement], + 279856033: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedControlElements, i.RelatingFlowElement], + 427948657: (i) => { + var _a; + return [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingElement, i.RelatedElement, i.InterferenceGeometry, i.InterferenceSpace, i.InterferenceType, (_a = i.ImpliedOrder) == null ? void 0 : _a.toString()]; + }, + 3268803585: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingObject, i.RelatedObjects], + 1441486842: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingPositioningElement, i.RelatedProducts], + 750771296: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingElement, i.RelatedFeatureElement], + 1245217292: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedElements, i.RelatingStructure], + 4122056220: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingProcess, i.RelatedProcess, i.TimeLag, i.SequenceType, i.UserDefinedSequenceType], + 366585022: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingSystem, i.RelatedBuildings], + 3451746338: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingSpace, i.RelatedBuildingElement, i.ConnectionGeometry, i.PhysicalOrVirtualBoundary, i.InternalOrExternalBoundary], + 3523091289: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingSpace, i.RelatedBuildingElement, i.ConnectionGeometry, i.PhysicalOrVirtualBoundary, i.InternalOrExternalBoundary, i.ParentBoundary], + 1521410863: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingSpace, i.RelatedBuildingElement, i.ConnectionGeometry, i.PhysicalOrVirtualBoundary, i.InternalOrExternalBoundary, i.ParentBoundary, i.CorrespondingBoundary], + 1401173127: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingBuildingElement, i.RelatedOpeningElement], + 816062949: (i) => { + var _a; + return [i.Transition, (_a = i.SameSense) == null ? void 0 : _a.toString(), i.ParentCurve, i.ParamLength]; + }, + 2914609552: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription], + 1856042241: (i) => [i.SweptArea, i.Position, i.Axis, i.Angle], + 3243963512: (i) => [i.SweptArea, i.Position, i.Axis, i.Angle, i.EndSweptArea], + 4158566097: (i) => [i.Position, i.Height, i.BottomRadius], + 3626867408: (i) => [i.Position, i.Height, i.Radius], + 1862484736: (i) => [i.Directrix, i.CrossSections], + 1290935644: (i) => [i.Directrix, i.CrossSections, i.CrossSectionPositions], + 1356537516: (i) => [i.Directrix, i.CrossSectionPositions, i.CrossSections], + 3663146110: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.TemplateType, i.PrimaryMeasureType, i.SecondaryMeasureType, i.Enumerators, i.PrimaryUnit, i.SecondaryUnit, i.Expression, i.AccessState], + 1412071761: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName], + 710998568: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], + 2706606064: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType], + 3893378262: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], + 463610769: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.PredefinedType], + 2481509218: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.LongName], + 451544542: (i) => [i.Position, i.Radius], + 4015995234: (i) => [i.Position, i.Radius], + 2735484536: (i) => [i.Position], + 3544373492: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal], + 3136571912: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation], + 530289379: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation], + 3689010777: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal], + 3979015343: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.PredefinedType, i.Thickness], + 2218152070: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.PredefinedType, i.Thickness], + 603775116: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.PredefinedType], + 4095615324: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType, i.BaseCosts, i.BaseQuantity, i.PredefinedType], + 699246055: (i) => [i.Curve3D, i.AssociatedGeometry, i.MasterRepresentation], + 2028607225: (i) => [i.SweptArea, i.Position, i.Directrix, !i.StartParam ? null : Labelise(i.StartParam), !i.EndParam ? null : Labelise(i.EndParam), i.ReferenceSurface], + 2809605785: (i) => [i.SweptCurve, i.Position, i.ExtrudedDirection, i.Depth], + 4124788165: (i) => [i.SweptCurve, i.Position, i.AxisPosition], + 1580310250: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 3473067441: (i) => { + var _a; + return [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Status, i.WorkMethod, (_a = i.IsMilestone) == null ? void 0 : _a.toString(), i.Priority, i.TaskTime, i.PredefinedType]; + }, + 3206491090: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ProcessType, i.PredefinedType, i.WorkMethod], + 2387106220: (i) => { + var _a; + return [i.Coordinates, (_a = i.Closed) == null ? void 0 : _a.toString()]; + }, + 782932809: (i) => [i.Position, i.CubicTerm, i.QuadraticTerm, i.LinearTerm, i.ConstantTerm], + 1935646853: (i) => [i.Position, i.MajorRadius, i.MinorRadius], + 3665877780: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], + 2916149573: (i) => { + var _a; + return [i.Coordinates, (_a = i.Closed) == null ? void 0 : _a.toString(), i.Normals, i.CoordIndex, i.PnIndex]; + }, + 1229763772: (i) => { + var _a; + return [i.Coordinates, (_a = i.Closed) == null ? void 0 : _a.toString(), i.Normals, i.CoordIndex, i.PnIndex, i.Flags]; + }, + 3651464721: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 336235671: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.LiningDepth, i.LiningThickness, i.TransomThickness, i.MullionThickness, i.FirstTransomOffset, i.SecondTransomOffset, i.FirstMullionOffset, i.SecondMullionOffset, i.ShapeAspectStyle, i.LiningOffset, i.LiningToPanelOffsetX, i.LiningToPanelOffsetY], + 512836454: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.OperationType, i.PanelPosition, i.FrameDepth, i.FrameThickness, i.ShapeAspectStyle], + 2296667514: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.TheActor], + 1635779807: (i) => [i.Outer], + 2603310189: (i) => [i.Outer, i.Voids], + 1674181508: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.PredefinedType], + 2887950389: (i) => { + var _a, _b, _c; + return [i.UDegree, i.VDegree, i.ControlPointsList, i.SurfaceForm, (_a = i.UClosed) == null ? void 0 : _a.toString(), (_b = i.VClosed) == null ? void 0 : _b.toString(), (_c = i.SelfIntersect) == null ? void 0 : _c.toString()]; + }, + 167062518: (i) => { + var _a, _b, _c; + return [i.UDegree, i.VDegree, i.ControlPointsList, i.SurfaceForm, (_a = i.UClosed) == null ? void 0 : _a.toString(), (_b = i.VClosed) == null ? void 0 : _b.toString(), (_c = i.SelfIntersect) == null ? void 0 : _c.toString(), i.UMultiplicities, i.VMultiplicities, i.UKnots, i.VKnots, i.KnotSpec]; + }, + 1334484129: (i) => [i.Position, i.XLength, i.YLength, i.ZLength], + 3649129432: (i) => [i.Operator, i.FirstOperand, i.SecondOperand], + 1260505505: (_) => [], + 3124254112: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.Elevation], + 1626504194: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], + 2197970202: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 2937912522: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Radius, i.WallThickness], + 3893394355: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], + 3497074424: (i) => [i.Position, i.ClothoidConstant], + 300633059: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 3875453745: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.UsageName, i.TemplateType, i.HasPropertyTemplates], + 3732776249: (i) => { + var _a; + return [i.Segments, (_a = i.SelfIntersect) == null ? void 0 : _a.toString()]; + }, + 15328376: (i) => { + var _a; + return [i.Segments, (_a = i.SelfIntersect) == null ? void 0 : _a.toString()]; + }, + 2510884976: (i) => [i.Position], + 2185764099: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType, i.BaseCosts, i.BaseQuantity, i.PredefinedType], + 4105962743: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType, i.BaseCosts, i.BaseQuantity, i.PredefinedType], + 1525564444: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType, i.BaseCosts, i.BaseQuantity, i.PredefinedType], + 2559216714: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Usage, i.BaseCosts, i.BaseQuantity], + 3293443760: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification], + 2000195564: (i) => [i.Position, i.CosineTerm, i.ConstantTerm], + 3895139033: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.PredefinedType, i.CostValues, i.CostQuantities], + 1419761937: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.PredefinedType, i.Status, i.SubmittedOn, i.UpdateDate], + 4189326743: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1916426348: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 3295246426: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Usage, i.BaseCosts, i.BaseQuantity, i.PredefinedType], + 1457835157: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1213902940: (i) => [i.Position, i.Radius], + 1306400036: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], + 4234616927: (i) => [i.SweptArea, i.Position, i.Directrix, !i.StartParam ? null : Labelise(i.StartParam), !i.EndParam ? null : Labelise(i.EndParam), i.FixedReference], + 3256556792: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], + 3849074793: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], + 2963535650: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.LiningDepth, i.LiningThickness, i.ThresholdDepth, i.ThresholdThickness, i.TransomThickness, i.TransomOffset, i.LiningOffset, i.ThresholdOffset, i.CasingThickness, i.CasingDepth, i.ShapeAspectStyle, i.LiningToPanelOffsetX, i.LiningToPanelOffsetY], + 1714330368: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.PanelDepth, i.PanelOperation, i.PanelWidth, i.PanelPosition, i.ShapeAspectStyle], + 2323601079: (i) => { + var _a; + return [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.OperationType, (_a = i.ParameterTakesPrecedence) == null ? void 0 : _a.toString(), i.UserDefinedOperationType]; + }, + 445594917: (i) => [i.Name], + 4006246654: (i) => [i.Name], + 1758889154: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 4123344466: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.AssemblyPlace, i.PredefinedType], + 2397081782: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1623761950: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 2590856083: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], + 1704287377: (i) => [i.Position, i.SemiAxis1, i.SemiAxis2], + 2107101300: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], + 132023988: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 3174744832: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 3390157468: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 4148101412: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.PredefinedType, i.EventTriggerType, i.UserDefinedEventTriggerType, i.EventOccurenceTime], + 2853485674: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName], + 807026263: (i) => [i.Outer], + 3737207727: (i) => [i.Outer, i.Voids], + 24185140: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType], + 1310830890: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.UsageType], + 4228831410: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.UsageType, i.PredefinedType], + 647756555: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 2489546625: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 2827207264: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 2143335405: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 1287392070: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 3907093117: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], + 3198132628: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], + 3815607619: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1482959167: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], + 1834744321: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], + 1339347760: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], + 2297155007: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], + 3009222698: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], + 1893162501: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 263784265: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 1509553395: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 3493046030: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 4230923436: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 1594536857: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 2898700619: (i) => { + var _a; + return [i.Segments, (_a = i.SelfIntersect) == null ? void 0 : _a.toString(), i.BaseCurve, i.EndPoint]; + }, + 2706460486: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType], + 1251058090: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1806887404: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 2568555532: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 3948183225: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 2571569899: (i) => { + var _a; + return [i.Points, !i.Segments ? null : i.Segments.map((p) => Labelise(p)), (_a = i.SelfIntersect) == null ? void 0 : _a.toString()]; + }, + 3946677679: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 3113134337: (i) => [i.Curve3D, i.AssociatedGeometry, i.MasterRepresentation], + 2391368822: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.PredefinedType, i.Jurisdiction, i.ResponsiblePersons, i.LastUpdateDate, i.CurrentValue, i.OriginalValue], + 4288270099: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 679976338: (i) => { + var _a; + return [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, (_a = i.Mountable) == null ? void 0 : _a.toString()]; + }, + 3827777499: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Usage, i.BaseCosts, i.BaseQuantity, i.PredefinedType], + 1051575348: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1161773419: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 2176059722: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation], + 1770583370: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 525669439: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.PredefinedType], + 976884017: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.UsageType, i.PredefinedType], + 377706215: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.NominalDiameter, i.NominalLength, i.PredefinedType], + 2108223431: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.NominalDiameter, i.NominalLength], + 1114901282: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 3181161470: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1950438474: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 710110818: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 977012517: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 506776471: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 4143007308: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.TheActor, i.PredefinedType], + 3588315303: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 2837617999: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 514975943: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 2382730787: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LifeCyclePhase, i.PredefinedType], + 3566463478: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.OperationType, i.PanelPosition, i.FrameDepth, i.FrameThickness, i.ShapeAspectStyle], + 3327091369: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.PredefinedType, i.Status, i.LongDescription], + 1158309216: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 804291784: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 4231323485: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 4017108033: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 2839578677: (i) => { + var _a; + return [i.Coordinates, (_a = i.Closed) == null ? void 0 : _a.toString(), i.Faces, i.PnIndex]; + }, + 3724593414: (i) => [i.Points], + 3740093272: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation], + 1946335990: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation], + 2744685151: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.PredefinedType], + 2904328755: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.PredefinedType, i.Status, i.LongDescription], + 3651124850: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 1842657554: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 2250791053: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1763565496: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 2893384427: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 3992365140: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.PredefinedType], + 1891881377: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.UsageType, i.PredefinedType], + 2324767716: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1469900589: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 683857671: (i) => { + var _a, _b, _c; + return [i.UDegree, i.VDegree, i.ControlPointsList, i.SurfaceForm, (_a = i.UClosed) == null ? void 0 : _a.toString(), (_b = i.VClosed) == null ? void 0 : _b.toString(), (_c = i.SelfIntersect) == null ? void 0 : _c.toString(), i.UMultiplicities, i.VMultiplicities, i.UKnots, i.VKnots, i.KnotSpec, i.WeightsData]; + }, + 4021432810: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.PredefinedType], + 3027567501: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade], + 964333572: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], + 2320036040: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade, i.MeshLength, i.MeshWidth, i.LongitudinalBarNominalDiameter, i.TransverseBarNominalDiameter, i.LongitudinalBarCrossSectionArea, i.TransverseBarCrossSectionArea, i.LongitudinalBarSpacing, i.TransverseBarSpacing, i.PredefinedType], + 2310774935: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.MeshLength, i.MeshWidth, i.LongitudinalBarNominalDiameter, i.TransverseBarNominalDiameter, i.LongitudinalBarCrossSectionArea, i.TransverseBarCrossSectionArea, i.LongitudinalBarSpacing, i.TransverseBarSpacing, i.BendingShapeCode, !i.BendingParameters ? null : i.BendingParameters.map((p) => Labelise(p))], + 3818125796: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingElement, i.RelatedSurfaceFeatures], + 160246688: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingObject, i.RelatedObjects], + 146592293: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.PredefinedType], + 550521510: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.UsageType, i.PredefinedType], + 2781568857: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1768891740: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 2157484638: (i) => [i.Curve3D, i.AssociatedGeometry, i.MasterRepresentation], + 3649235739: (i) => [i.Position, i.QuadraticTerm, i.LinearTerm, i.ConstantTerm], + 544395925: (i) => { + var _a; + return [i.Segments, (_a = i.SelfIntersect) == null ? void 0 : _a.toString(), i.BaseCurve, i.EndPoint]; + }, + 1027922057: (i) => [i.Position, i.SepticTerm, i.SexticTerm, i.QuinticTerm, i.QuarticTerm, i.CubicTerm, i.QuadraticTerm, i.LinearTerm, i.ConstantTerm], + 4074543187: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 33720170: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 3599934289: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1894708472: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 42703149: (i) => [i.Position, i.SineTerm, i.LinearTerm, i.ConstantTerm], + 4097777520: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.RefLatitude, i.RefLongitude, i.RefElevation, i.LandTitleNumber, i.SiteAddress], + 2533589738: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1072016465: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 3856911033: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.PredefinedType, i.ElevationWithFlooring], + 1305183839: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 3812236995: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.LongName], + 3112655638: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1039846685: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 338393293: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 682877961: (i) => { + var _a; + return [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, (_a = i.DestabilizingLoad) == null ? void 0 : _a.toString()]; + }, + 1179482911: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedCondition], + 1004757350: (i) => { + var _a; + return [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, (_a = i.DestabilizingLoad) == null ? void 0 : _a.toString(), i.ProjectedOrTrue, i.PredefinedType]; + }, + 4243806635: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedCondition, i.AxisDirection], + 214636428: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.PredefinedType, i.Axis], + 2445595289: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.PredefinedType, i.Axis], + 2757150158: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.PredefinedType], + 1807405624: (i) => { + var _a; + return [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, (_a = i.DestabilizingLoad) == null ? void 0 : _a.toString(), i.ProjectedOrTrue, i.PredefinedType]; + }, + 1252848954: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.PredefinedType, i.ActionType, i.ActionSource, i.Coefficient, i.Purpose], + 2082059205: (i) => { + var _a; + return [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, (_a = i.DestabilizingLoad) == null ? void 0 : _a.toString()]; + }, + 734778138: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedCondition, i.ConditionCoordinateSystem], + 1235345126: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal], + 2986769608: (i) => { + var _a; + return [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.TheoryType, i.ResultForLoadGroup, (_a = i.IsLinear) == null ? void 0 : _a.toString()]; + }, + 3657597509: (i) => { + var _a; + return [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, (_a = i.DestabilizingLoad) == null ? void 0 : _a.toString(), i.ProjectedOrTrue, i.PredefinedType]; + }, + 1975003073: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedCondition], + 148013059: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Usage, i.BaseCosts, i.BaseQuantity, i.PredefinedType], + 3101698114: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 2315554128: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 2254336722: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType], + 413509423: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 5716631: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 3824725483: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade, i.PredefinedType, i.NominalDiameter, i.CrossSectionArea, i.TensionForce, i.PreStress, i.FrictionCoefficient, i.AnchorageSlip, i.MinCurvatureRadius], + 2347447852: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade, i.PredefinedType], + 3081323446: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 3663046924: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade, i.PredefinedType], + 2281632017: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 2415094496: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.NominalDiameter, i.CrossSectionArea, i.SheathDiameter], + 618700268: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1692211062: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 2097647324: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1953115116: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 3593883385: (i) => { + var _a; + return [i.BasisCurve, i.Trim1, i.Trim2, (_a = i.SenseAgreement) == null ? void 0 : _a.toString(), i.MasterRepresentation]; + }, + 1600972822: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1911125066: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 728799441: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 840318589: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 1530820697: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 3956297820: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 2391383451: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 3313531582: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 2769231204: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 926996030: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 1898987631: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1133259667: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 4009809668: (i) => { + var _a; + return [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.PartitioningType, (_a = i.ParameterTakesPrecedence) == null ? void 0 : _a.toString(), i.UserDefinedPartitioningType]; + }, + 4088093105: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.WorkingTimes, i.ExceptionTimes, i.PredefinedType], + 1028945134: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.CreationDate, i.Creators, i.Purpose, i.Duration, i.TotalFloat, i.StartTime, i.FinishTime], + 4218914973: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.CreationDate, i.Creators, i.Purpose, i.Duration, i.TotalFloat, i.StartTime, i.FinishTime, i.PredefinedType], + 3342526732: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.CreationDate, i.Creators, i.Purpose, i.Duration, i.TotalFloat, i.StartTime, i.FinishTime, i.PredefinedType], + 1033361043: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.LongName], + 3821786052: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.PredefinedType, i.Status, i.LongDescription], + 1411407467: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 3352864051: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1871374353: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 4266260250: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.RailHeadDistance], + 1545765605: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation], + 317615605: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.DesignParameters], + 1662888072: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation], + 3460190687: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.OriginalValue, i.CurrentValue, i.TotalReplacementCost, i.Owner, i.User, i.ResponsiblePerson, i.IncorporationDate, i.DepreciatedValue], + 1532957894: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1967976161: (i) => { + var _a, _b; + return [i.Degree, i.ControlPointsList, i.CurveForm, (_a = i.ClosedCurve) == null ? void 0 : _a.toString(), (_b = i.SelfIntersect) == null ? void 0 : _b.toString()]; + }, + 2461110595: (i) => { + var _a, _b; + return [i.Degree, i.ControlPointsList, i.CurveForm, (_a = i.ClosedCurve) == null ? void 0 : _a.toString(), (_b = i.SelfIntersect) == null ? void 0 : _b.toString(), i.KnotMultiplicities, i.Knots, i.KnotSpec]; + }, + 819618141: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 3649138523: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 231477066: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1136057603: (i) => { + var _a; + return [i.Segments, (_a = i.SelfIntersect) == null ? void 0 : _a.toString()]; + }, + 644574406: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.PredefinedType], + 963979645: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.UsageType, i.PredefinedType], + 4031249490: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.ElevationOfRefHeight, i.ElevationOfTerrain, i.BuildingAddress], + 2979338954: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 39481116: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1909888760: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1177604601: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.PredefinedType, i.LongName], + 1876633798: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 3862327254: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.PredefinedType, i.LongName], + 2188180465: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 395041908: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 3293546465: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 2674252688: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1285652485: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 3203706013: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 2951183804: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 3296154744: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 2611217952: (i) => [i.Position, i.Radius], + 1677625105: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 2301859152: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 843113511: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 400855858: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 3850581409: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 2816379211: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 3898045240: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Usage, i.BaseCosts, i.BaseQuantity, i.PredefinedType], + 1060000209: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Usage, i.BaseCosts, i.BaseQuantity, i.PredefinedType], + 488727124: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Usage, i.BaseCosts, i.BaseQuantity, i.PredefinedType], + 2940368186: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 335055490: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 2954562838: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1502416096: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 1973544240: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 3495092785: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 3961806047: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 3426335179: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 1335981549: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 2635815018: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 479945903: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1599208980: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 2063403501: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], + 1945004755: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 3040386961: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 3041715199: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.FlowDirection, i.PredefinedType, i.SystemType], + 3205830791: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.LongName, i.PredefinedType], + 395920057: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.OverallHeight, i.OverallWidth, i.PredefinedType, i.OperationType, i.UserDefinedOperationType], + 869906466: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 3760055223: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 2030761528: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 3071239417: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 1077100507: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 3376911765: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 663422040: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 2417008758: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 3277789161: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 2142170206: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1534661035: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1217240411: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 712377611: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1658829314: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 2814081492: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 3747195512: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 484807127: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 1209101575: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.PredefinedType], + 346874300: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1810631287: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 4222183408: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 2058353004: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 4278956645: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 4037862832: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 2188021234: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 3132237377: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 987401354: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 707683696: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 2223149337: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 3508470533: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 900683007: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 2713699986: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 3009204131: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.UAxes, i.VAxes, i.WAxes, i.PredefinedType], + 3319311131: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 2068733104: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 4175244083: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 2176052936: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 2696325953: (i) => { + var _a; + return [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, (_a = i.Mountable) == null ? void 0 : _a.toString()]; + }, + 76236018: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 629592764: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 1154579445: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation], + 1638804497: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 1437502449: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 1073191201: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 2078563270: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 234836483: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 2474470126: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 2182337498: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 144952367: (i) => { + var _a; + return [i.Segments, (_a = i.SelfIntersect) == null ? void 0 : _a.toString()]; + }, + 3694346114: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 1383356374: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 1687234759: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType, i.ConstructionType], + 310824031: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 3612865200: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 3171933400: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 738039164: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 655969474: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 90941305: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 3290496277: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 2262370178: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 3024970846: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 3283111854: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 1232101972: (i) => { + var _a, _b; + return [i.Degree, i.ControlPointsList, i.CurveForm, (_a = i.ClosedCurve) == null ? void 0 : _a.toString(), (_b = i.SelfIntersect) == null ? void 0 : _b.toString(), i.KnotMultiplicities, i.Knots, i.KnotSpec, i.WeightsData]; + }, + 3798194928: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 979691226: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade, i.NominalDiameter, i.CrossSectionArea, i.BarLength, i.PredefinedType, i.BarSurface], + 2572171363: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.NominalDiameter, i.CrossSectionArea, i.BarLength, i.BarSurface, i.BendingShapeCode, !i.BendingParameters ? null : i.BendingParameters.map((p) => Labelise(p))], + 2016517767: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 3053780830: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 1783015770: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1329646415: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 991950508: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 1529196076: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 3420628829: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 1999602285: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 1404847402: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 331165859: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 4252922144: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.NumberOfRisers, i.NumberOfTreads, i.RiserHeight, i.TreadLength, i.PredefinedType], + 2515109513: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.PredefinedType, i.OrientationOf2DPlane, i.LoadedBy, i.HasResults, i.SharedPlacement], + 385403989: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.PredefinedType, i.ActionType, i.ActionSource, i.Coefficient, i.Purpose, i.SelfWeightCoefficients], + 1621171031: (i) => { + var _a; + return [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, (_a = i.DestabilizingLoad) == null ? void 0 : _a.toString(), i.ProjectedOrTrue, i.PredefinedType]; + }, + 1162798199: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 812556717: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 3425753595: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 3825984169: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 1620046519: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 3026737570: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 3179687236: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 4292641817: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 4207607924: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 2391406946: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 3512223829: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 4237592921: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 3304561284: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.OverallHeight, i.OverallWidth, i.PredefinedType, i.PartitioningType, i.UserDefinedPartitioningType], + 2874132201: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 1634111441: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 177149247: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 2056796094: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 3001207471: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 325726236: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.PredefinedType], + 277319702: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 753842376: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 4196446775: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 32344328: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 3314249567: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 1095909175: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 2938176219: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 635142910: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 3758799889: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 1051757585: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 4217484030: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 3999819293: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 3902619387: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 639361253: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 3221913625: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 3571504051: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 2272882330: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 578613899: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], + 3460952963: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 4136498852: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 3640358203: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 4074379575: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 3693000487: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 1052013943: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 562808652: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.LongName, i.PredefinedType], + 1062813311: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 342316401: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 3518393246: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 1360408905: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 1904799276: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 862014818: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 3310460725: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 24726584: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 264262732: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 402227799: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 1003880860: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 3415622556: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 819412036: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 1426591983: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 182646315: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 2680139844: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 1971632696: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], + 2295281155: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 4086658281: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 630975310: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 4288193352: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 3087945054: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], + 25142252: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType] +}; +TypeInitialisers[3] = { + 3699917729: (v) => new IFC4X3$1.IfcAbsorbedDoseMeasure(v), + 4182062534: (v) => new IFC4X3$1.IfcAccelerationMeasure(v), + 360377573: (v) => new IFC4X3$1.IfcAmountOfSubstanceMeasure(v), + 632304761: (v) => new IFC4X3$1.IfcAngularVelocityMeasure(v), + 3683503648: (v) => new IFC4X3$1.IfcArcIndex(v.map((x) => x.value)), + 1500781891: (v) => new IFC4X3$1.IfcAreaDensityMeasure(v), + 2650437152: (v) => new IFC4X3$1.IfcAreaMeasure(v), + 2314439260: (v) => new IFC4X3$1.IfcBinary(v), + 2735952531: (v) => new IFC4X3$1.IfcBoolean(v), + 1867003952: (v) => new IFC4X3$1.IfcBoxAlignment(v), + 1683019596: (v) => new IFC4X3$1.IfcCardinalPointReference(v), + 2991860651: (v) => new IFC4X3$1.IfcComplexNumber(v.map((x) => x.value)), + 3812528620: (v) => new IFC4X3$1.IfcCompoundPlaneAngleMeasure(v.map((x) => x.value)), + 3238673880: (v) => new IFC4X3$1.IfcContextDependentMeasure(v), + 1778710042: (v) => new IFC4X3$1.IfcCountMeasure(v), + 94842927: (v) => new IFC4X3$1.IfcCurvatureMeasure(v), + 937566702: (v) => new IFC4X3$1.IfcDate(v), + 2195413836: (v) => new IFC4X3$1.IfcDateTime(v), + 86635668: (v) => new IFC4X3$1.IfcDayInMonthNumber(v), + 3701338814: (v) => new IFC4X3$1.IfcDayInWeekNumber(v), + 1514641115: (v) => new IFC4X3$1.IfcDescriptiveMeasure(v), + 4134073009: (v) => new IFC4X3$1.IfcDimensionCount(v), + 524656162: (v) => new IFC4X3$1.IfcDoseEquivalentMeasure(v), + 2541165894: (v) => new IFC4X3$1.IfcDuration(v), + 69416015: (v) => new IFC4X3$1.IfcDynamicViscosityMeasure(v), + 1827137117: (v) => new IFC4X3$1.IfcElectricCapacitanceMeasure(v), + 3818826038: (v) => new IFC4X3$1.IfcElectricChargeMeasure(v), + 2093906313: (v) => new IFC4X3$1.IfcElectricConductanceMeasure(v), + 3790457270: (v) => new IFC4X3$1.IfcElectricCurrentMeasure(v), + 2951915441: (v) => new IFC4X3$1.IfcElectricResistanceMeasure(v), + 2506197118: (v) => new IFC4X3$1.IfcElectricVoltageMeasure(v), + 2078135608: (v) => new IFC4X3$1.IfcEnergyMeasure(v), + 1102727119: (v) => new IFC4X3$1.IfcFontStyle(v), + 2715512545: (v) => new IFC4X3$1.IfcFontVariant(v), + 2590844177: (v) => new IFC4X3$1.IfcFontWeight(v), + 1361398929: (v) => new IFC4X3$1.IfcForceMeasure(v), + 3044325142: (v) => new IFC4X3$1.IfcFrequencyMeasure(v), + 3064340077: (v) => new IFC4X3$1.IfcGloballyUniqueId(v), + 3113092358: (v) => new IFC4X3$1.IfcHeatFluxDensityMeasure(v), + 1158859006: (v) => new IFC4X3$1.IfcHeatingValueMeasure(v), + 983778844: (v) => new IFC4X3$1.IfcIdentifier(v), + 3358199106: (v) => new IFC4X3$1.IfcIlluminanceMeasure(v), + 2679005408: (v) => new IFC4X3$1.IfcInductanceMeasure(v), + 1939436016: (v) => new IFC4X3$1.IfcInteger(v), + 3809634241: (v) => new IFC4X3$1.IfcIntegerCountRateMeasure(v), + 3686016028: (v) => new IFC4X3$1.IfcIonConcentrationMeasure(v), + 3192672207: (v) => new IFC4X3$1.IfcIsothermalMoistureCapacityMeasure(v), + 2054016361: (v) => new IFC4X3$1.IfcKinematicViscosityMeasure(v), + 3258342251: (v) => new IFC4X3$1.IfcLabel(v), + 1275358634: (v) => new IFC4X3$1.IfcLanguageId(v), + 1243674935: (v) => new IFC4X3$1.IfcLengthMeasure(v), + 1774176899: (v) => new IFC4X3$1.IfcLineIndex(v.map((x) => x.value)), + 191860431: (v) => new IFC4X3$1.IfcLinearForceMeasure(v), + 2128979029: (v) => new IFC4X3$1.IfcLinearMomentMeasure(v), + 1307019551: (v) => new IFC4X3$1.IfcLinearStiffnessMeasure(v), + 3086160713: (v) => new IFC4X3$1.IfcLinearVelocityMeasure(v), + 503418787: (v) => new IFC4X3$1.IfcLogical(v), + 2095003142: (v) => new IFC4X3$1.IfcLuminousFluxMeasure(v), + 2755797622: (v) => new IFC4X3$1.IfcLuminousIntensityDistributionMeasure(v), + 151039812: (v) => new IFC4X3$1.IfcLuminousIntensityMeasure(v), + 286949696: (v) => new IFC4X3$1.IfcMagneticFluxDensityMeasure(v), + 2486716878: (v) => new IFC4X3$1.IfcMagneticFluxMeasure(v), + 1477762836: (v) => new IFC4X3$1.IfcMassDensityMeasure(v), + 4017473158: (v) => new IFC4X3$1.IfcMassFlowRateMeasure(v), + 3124614049: (v) => new IFC4X3$1.IfcMassMeasure(v), + 3531705166: (v) => new IFC4X3$1.IfcMassPerLengthMeasure(v), + 3341486342: (v) => new IFC4X3$1.IfcModulusOfElasticityMeasure(v), + 2173214787: (v) => new IFC4X3$1.IfcModulusOfLinearSubgradeReactionMeasure(v), + 1052454078: (v) => new IFC4X3$1.IfcModulusOfRotationalSubgradeReactionMeasure(v), + 1753493141: (v) => new IFC4X3$1.IfcModulusOfSubgradeReactionMeasure(v), + 3177669450: (v) => new IFC4X3$1.IfcMoistureDiffusivityMeasure(v), + 1648970520: (v) => new IFC4X3$1.IfcMolecularWeightMeasure(v), + 3114022597: (v) => new IFC4X3$1.IfcMomentOfInertiaMeasure(v), + 2615040989: (v) => new IFC4X3$1.IfcMonetaryMeasure(v), + 765770214: (v) => new IFC4X3$1.IfcMonthInYearNumber(v), + 525895558: (v) => new IFC4X3$1.IfcNonNegativeLengthMeasure(v), + 2095195183: (v) => new IFC4X3$1.IfcNormalisedRatioMeasure(v), + 2395907400: (v) => new IFC4X3$1.IfcNumericMeasure(v), + 929793134: (v) => new IFC4X3$1.IfcPHMeasure(v), + 2260317790: (v) => new IFC4X3$1.IfcParameterValue(v), + 2642773653: (v) => new IFC4X3$1.IfcPlanarForceMeasure(v), + 4042175685: (v) => new IFC4X3$1.IfcPlaneAngleMeasure(v), + 1790229001: (v) => new IFC4X3$1.IfcPositiveInteger(v), + 2815919920: (v) => new IFC4X3$1.IfcPositiveLengthMeasure(v), + 3054510233: (v) => new IFC4X3$1.IfcPositivePlaneAngleMeasure(v), + 1245737093: (v) => new IFC4X3$1.IfcPositiveRatioMeasure(v), + 1364037233: (v) => new IFC4X3$1.IfcPowerMeasure(v), + 2169031380: (v) => new IFC4X3$1.IfcPresentableText(v), + 3665567075: (v) => new IFC4X3$1.IfcPressureMeasure(v), + 2798247006: (v) => new IFC4X3$1.IfcPropertySetDefinitionSet(v.map((x) => x.value)), + 3972513137: (v) => new IFC4X3$1.IfcRadioActivityMeasure(v), + 96294661: (v) => new IFC4X3$1.IfcRatioMeasure(v), + 200335297: (v) => new IFC4X3$1.IfcReal(v), + 2133746277: (v) => new IFC4X3$1.IfcRotationalFrequencyMeasure(v), + 1755127002: (v) => new IFC4X3$1.IfcRotationalMassMeasure(v), + 3211557302: (v) => new IFC4X3$1.IfcRotationalStiffnessMeasure(v), + 3467162246: (v) => new IFC4X3$1.IfcSectionModulusMeasure(v), + 2190458107: (v) => new IFC4X3$1.IfcSectionalAreaIntegralMeasure(v), + 408310005: (v) => new IFC4X3$1.IfcShearModulusMeasure(v), + 3471399674: (v) => new IFC4X3$1.IfcSolidAngleMeasure(v), + 4157543285: (v) => new IFC4X3$1.IfcSoundPowerLevelMeasure(v), + 846465480: (v) => new IFC4X3$1.IfcSoundPowerMeasure(v), + 3457685358: (v) => new IFC4X3$1.IfcSoundPressureLevelMeasure(v), + 993287707: (v) => new IFC4X3$1.IfcSoundPressureMeasure(v), + 3477203348: (v) => new IFC4X3$1.IfcSpecificHeatCapacityMeasure(v), + 2757832317: (v) => new IFC4X3$1.IfcSpecularExponent(v), + 361837227: (v) => new IFC4X3$1.IfcSpecularRoughness(v), + 58845555: (v) => new IFC4X3$1.IfcTemperatureGradientMeasure(v), + 1209108979: (v) => new IFC4X3$1.IfcTemperatureRateOfChangeMeasure(v), + 2801250643: (v) => new IFC4X3$1.IfcText(v), + 1460886941: (v) => new IFC4X3$1.IfcTextAlignment(v), + 3490877962: (v) => new IFC4X3$1.IfcTextDecoration(v), + 603696268: (v) => new IFC4X3$1.IfcTextFontName(v), + 296282323: (v) => new IFC4X3$1.IfcTextTransformation(v), + 232962298: (v) => new IFC4X3$1.IfcThermalAdmittanceMeasure(v), + 2645777649: (v) => new IFC4X3$1.IfcThermalConductivityMeasure(v), + 2281867870: (v) => new IFC4X3$1.IfcThermalExpansionCoefficientMeasure(v), + 857959152: (v) => new IFC4X3$1.IfcThermalResistanceMeasure(v), + 2016195849: (v) => new IFC4X3$1.IfcThermalTransmittanceMeasure(v), + 743184107: (v) => new IFC4X3$1.IfcThermodynamicTemperatureMeasure(v), + 4075327185: (v) => new IFC4X3$1.IfcTime(v), + 2726807636: (v) => new IFC4X3$1.IfcTimeMeasure(v), + 2591213694: (v) => new IFC4X3$1.IfcTimeStamp(v), + 1278329552: (v) => new IFC4X3$1.IfcTorqueMeasure(v), + 950732822: (v) => new IFC4X3$1.IfcURIReference(v), + 3345633955: (v) => new IFC4X3$1.IfcVaporPermeabilityMeasure(v), + 3458127941: (v) => new IFC4X3$1.IfcVolumeMeasure(v), + 2593997549: (v) => new IFC4X3$1.IfcVolumetricFlowRateMeasure(v), + 51269191: (v) => new IFC4X3$1.IfcWarpingConstantMeasure(v), + 1718600412: (v) => new IFC4X3$1.IfcWarpingMomentMeasure(v) +}; +var IFC4X3$1; +(function(IFC4X32) { + class IfcAbsorbedDoseMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcIndexedPolygonalFace = IfcIndexedPolygonalFace; - class IfcIndexedPolygonalFaceWithVoids extends IfcIndexedPolygonalFace { - constructor(expressID, CoordIndex, InnerCoordIndices) { - super(expressID, CoordIndex); - this.CoordIndex = CoordIndex; - this.InnerCoordIndices = InnerCoordIndices; - this.type = 2294589976; + IFC4X32.IfcAbsorbedDoseMeasure = IfcAbsorbedDoseMeasure; + class IfcAccelerationMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcIndexedPolygonalFaceWithVoids = IfcIndexedPolygonalFaceWithVoids; - class IfcLShapeProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, Depth, Width, Thickness, FilletRadius, EdgeRadius, LegSlope) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.Depth = Depth; - this.Width = Width; - this.Thickness = Thickness; - this.FilletRadius = FilletRadius; - this.EdgeRadius = EdgeRadius; - this.LegSlope = LegSlope; - this.type = 572779678; + IFC4X32.IfcAccelerationMeasure = IfcAccelerationMeasure; + class IfcAmountOfSubstanceMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcLShapeProfileDef = IfcLShapeProfileDef; - class IfcLaborResourceType extends IfcConstructionResourceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.ResourceType = ResourceType; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.PredefinedType = PredefinedType; - this.type = 428585644; + IFC4X32.IfcAmountOfSubstanceMeasure = IfcAmountOfSubstanceMeasure; + class IfcAngularVelocityMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcLaborResourceType = IfcLaborResourceType; - class IfcLine extends IfcCurve { - constructor(expressID, Pnt, Dir) { - super(expressID); - this.Pnt = Pnt; - this.Dir = Dir; - this.type = 1281925730; + IFC4X32.IfcAngularVelocityMeasure = IfcAngularVelocityMeasure; + class IfcArcIndex { + constructor(value) { + this.value = value; + this.type = 5; } } - IFC42.IfcLine = IfcLine; - class IfcManifoldSolidBrep extends IfcSolidModel { - constructor(expressID, Outer) { - super(expressID); - this.Outer = Outer; - this.type = 1425443689; + IFC4X32.IfcArcIndex = IfcArcIndex; + class IfcAreaDensityMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcManifoldSolidBrep = IfcManifoldSolidBrep; - class IfcObject extends IfcObjectDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.type = 3888040117; + IFC4X32.IfcAreaDensityMeasure = IfcAreaDensityMeasure; + class IfcAreaMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcObject = IfcObject; - class IfcOffsetCurve2D extends IfcCurve { - constructor(expressID, BasisCurve, Distance, SelfIntersect) { - super(expressID); - this.BasisCurve = BasisCurve; - this.Distance = Distance; - this.SelfIntersect = SelfIntersect; - this.type = 3388369263; + IFC4X32.IfcAreaMeasure = IfcAreaMeasure; + class IfcBinary { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcOffsetCurve2D = IfcOffsetCurve2D; - class IfcOffsetCurve3D extends IfcCurve { - constructor(expressID, BasisCurve, Distance, SelfIntersect, RefDirection) { - super(expressID); - this.BasisCurve = BasisCurve; - this.Distance = Distance; - this.SelfIntersect = SelfIntersect; - this.RefDirection = RefDirection; - this.type = 3505215534; + IFC4X32.IfcBinary = IfcBinary; + class IfcBoolean { + constructor(v) { + this.type = 3; + this.value = v === null ? v : v == "T" ? true : false; } } - IFC42.IfcOffsetCurve3D = IfcOffsetCurve3D; - class IfcPcurve extends IfcCurve { - constructor(expressID, BasisSurface, ReferenceCurve) { - super(expressID); - this.BasisSurface = BasisSurface; - this.ReferenceCurve = ReferenceCurve; - this.type = 1682466193; + IFC4X32.IfcBoolean = IfcBoolean; + class IfcBoxAlignment { + constructor(value) { + this.value = value; + this.type = 1; } } - IFC42.IfcPcurve = IfcPcurve; - class IfcPlanarBox extends IfcPlanarExtent { - constructor(expressID, SizeInX, SizeInY, Placement) { - super(expressID, SizeInX, SizeInY); - this.SizeInX = SizeInX; - this.SizeInY = SizeInY; - this.Placement = Placement; - this.type = 603570806; + IFC4X32.IfcBoxAlignment = IfcBoxAlignment; + class IfcCardinalPointReference { + constructor(v) { + this.type = 10; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcPlanarBox = IfcPlanarBox; - class IfcPlane extends IfcElementarySurface { - constructor(expressID, Position) { - super(expressID, Position); - this.Position = Position; - this.type = 220341763; + IFC4X32.IfcCardinalPointReference = IfcCardinalPointReference; + class IfcComplexNumber { + constructor(value) { + this.value = value; + this.type = 4; } } - IFC42.IfcPlane = IfcPlane; - class IfcPreDefinedColour extends IfcPreDefinedItem { - constructor(expressID, Name) { - super(expressID, Name); - this.Name = Name; - this.type = 759155922; + IFC4X32.IfcComplexNumber = IfcComplexNumber; + class IfcCompoundPlaneAngleMeasure { + constructor(value) { + this.value = value; + this.type = 10; } } - IFC42.IfcPreDefinedColour = IfcPreDefinedColour; - class IfcPreDefinedCurveFont extends IfcPreDefinedItem { - constructor(expressID, Name) { - super(expressID, Name); - this.Name = Name; - this.type = 2559016684; + IFC4X32.IfcCompoundPlaneAngleMeasure = IfcCompoundPlaneAngleMeasure; + class IfcContextDependentMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcPreDefinedCurveFont = IfcPreDefinedCurveFont; - class IfcPreDefinedPropertySet extends IfcPropertySetDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.type = 3967405729; + IFC4X32.IfcContextDependentMeasure = IfcContextDependentMeasure; + class IfcCountMeasure { + constructor(v) { + this.type = 10; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcPreDefinedPropertySet = IfcPreDefinedPropertySet; - class IfcProcedureType extends IfcTypeProcess { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.ProcessType = ProcessType; - this.PredefinedType = PredefinedType; - this.type = 569719735; + IFC4X32.IfcCountMeasure = IfcCountMeasure; + class IfcCurvatureMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcProcedureType = IfcProcedureType; - class IfcProcess extends IfcObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.type = 2945172077; + IFC4X32.IfcCurvatureMeasure = IfcCurvatureMeasure; + class IfcDate { + constructor(value) { + this.value = value; + this.type = 1; } } - IFC42.IfcProcess = IfcProcess; - class IfcProduct extends IfcObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.type = 4208778838; + IFC4X32.IfcDate = IfcDate; + class IfcDateTime { + constructor(value) { + this.value = value; + this.type = 1; } } - IFC42.IfcProduct = IfcProduct; - class IfcProject extends IfcContext { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.LongName = LongName; - this.Phase = Phase; - this.RepresentationContexts = RepresentationContexts; - this.UnitsInContext = UnitsInContext; - this.type = 103090709; + IFC4X32.IfcDateTime = IfcDateTime; + class IfcDayInMonthNumber { + constructor(v) { + this.type = 10; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcProject = IfcProject; - class IfcProjectLibrary extends IfcContext { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.LongName = LongName; - this.Phase = Phase; - this.RepresentationContexts = RepresentationContexts; - this.UnitsInContext = UnitsInContext; - this.type = 653396225; + IFC4X32.IfcDayInMonthNumber = IfcDayInMonthNumber; + class IfcDayInWeekNumber { + constructor(v) { + this.type = 10; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcProjectLibrary = IfcProjectLibrary; - class IfcPropertyBoundedValue extends IfcSimpleProperty { - constructor(expressID, Name, Description, UpperBoundValue, LowerBoundValue, Unit, SetPointValue) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.UpperBoundValue = UpperBoundValue; - this.LowerBoundValue = LowerBoundValue; - this.Unit = Unit; - this.SetPointValue = SetPointValue; - this.type = 871118103; + IFC4X32.IfcDayInWeekNumber = IfcDayInWeekNumber; + class IfcDescriptiveMeasure { + constructor(value) { + this.value = value; + this.type = 1; } } - IFC42.IfcPropertyBoundedValue = IfcPropertyBoundedValue; - class IfcPropertyEnumeratedValue extends IfcSimpleProperty { - constructor(expressID, Name, Description, EnumerationValues, EnumerationReference) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.EnumerationValues = EnumerationValues; - this.EnumerationReference = EnumerationReference; - this.type = 4166981789; + IFC4X32.IfcDescriptiveMeasure = IfcDescriptiveMeasure; + class IfcDimensionCount { + constructor(v) { + this.type = 10; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcPropertyEnumeratedValue = IfcPropertyEnumeratedValue; - class IfcPropertyListValue extends IfcSimpleProperty { - constructor(expressID, Name, Description, ListValues, Unit) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.ListValues = ListValues; - this.Unit = Unit; - this.type = 2752243245; + IFC4X32.IfcDimensionCount = IfcDimensionCount; + class IfcDoseEquivalentMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcPropertyListValue = IfcPropertyListValue; - class IfcPropertyReferenceValue extends IfcSimpleProperty { - constructor(expressID, Name, Description, UsageName, PropertyReference) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.UsageName = UsageName; - this.PropertyReference = PropertyReference; - this.type = 941946838; + IFC4X32.IfcDoseEquivalentMeasure = IfcDoseEquivalentMeasure; + class IfcDuration { + constructor(value) { + this.value = value; + this.type = 1; } } - IFC42.IfcPropertyReferenceValue = IfcPropertyReferenceValue; - class IfcPropertySet extends IfcPropertySetDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, HasProperties) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.HasProperties = HasProperties; - this.type = 1451395588; + IFC4X32.IfcDuration = IfcDuration; + class IfcDynamicViscosityMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcPropertySet = IfcPropertySet; - class IfcPropertySetTemplate extends IfcPropertyTemplateDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, TemplateType, ApplicableEntity, HasPropertyTemplates) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.TemplateType = TemplateType; - this.ApplicableEntity = ApplicableEntity; - this.HasPropertyTemplates = HasPropertyTemplates; - this.type = 492091185; + IFC4X32.IfcDynamicViscosityMeasure = IfcDynamicViscosityMeasure; + class IfcElectricCapacitanceMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcPropertySetTemplate = IfcPropertySetTemplate; - class IfcPropertySingleValue extends IfcSimpleProperty { - constructor(expressID, Name, Description, NominalValue, Unit) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.NominalValue = NominalValue; - this.Unit = Unit; - this.type = 3650150729; + IFC4X32.IfcElectricCapacitanceMeasure = IfcElectricCapacitanceMeasure; + class IfcElectricChargeMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcPropertySingleValue = IfcPropertySingleValue; - class IfcPropertyTableValue extends IfcSimpleProperty { - constructor(expressID, Name, Description, DefiningValues, DefinedValues, Expression, DefiningUnit, DefinedUnit, CurveInterpolation) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.DefiningValues = DefiningValues; - this.DefinedValues = DefinedValues; - this.Expression = Expression; - this.DefiningUnit = DefiningUnit; - this.DefinedUnit = DefinedUnit; - this.CurveInterpolation = CurveInterpolation; - this.type = 110355661; + IFC4X32.IfcElectricChargeMeasure = IfcElectricChargeMeasure; + class IfcElectricConductanceMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcPropertyTableValue = IfcPropertyTableValue; - class IfcPropertyTemplate extends IfcPropertyTemplateDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.type = 3521284610; + IFC4X32.IfcElectricConductanceMeasure = IfcElectricConductanceMeasure; + class IfcElectricCurrentMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcPropertyTemplate = IfcPropertyTemplate; - class IfcProxy extends IfcProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, ProxyType, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.ProxyType = ProxyType; - this.Tag = Tag; - this.type = 3219374653; + IFC4X32.IfcElectricCurrentMeasure = IfcElectricCurrentMeasure; + class IfcElectricResistanceMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcProxy = IfcProxy; - class IfcRectangleHollowProfileDef extends IfcRectangleProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, XDim, YDim, WallThickness, InnerFilletRadius, OuterFilletRadius) { - super(expressID, ProfileType, ProfileName, Position, XDim, YDim); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.XDim = XDim; - this.YDim = YDim; - this.WallThickness = WallThickness; - this.InnerFilletRadius = InnerFilletRadius; - this.OuterFilletRadius = OuterFilletRadius; - this.type = 2770003689; + IFC4X32.IfcElectricResistanceMeasure = IfcElectricResistanceMeasure; + class IfcElectricVoltageMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcRectangleHollowProfileDef = IfcRectangleHollowProfileDef; - class IfcRectangularPyramid extends IfcCsgPrimitive3D { - constructor(expressID, Position, XLength, YLength, Height) { - super(expressID, Position); - this.Position = Position; - this.XLength = XLength; - this.YLength = YLength; - this.Height = Height; - this.type = 2798486643; + IFC4X32.IfcElectricVoltageMeasure = IfcElectricVoltageMeasure; + class IfcEnergyMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcRectangularPyramid = IfcRectangularPyramid; - class IfcRectangularTrimmedSurface extends IfcBoundedSurface { - constructor(expressID, BasisSurface, U1, V1, U2, V2, Usense, Vsense) { - super(expressID); - this.BasisSurface = BasisSurface; - this.U1 = U1; - this.V1 = V1; - this.U2 = U2; - this.V2 = V2; - this.Usense = Usense; - this.Vsense = Vsense; - this.type = 3454111270; + IFC4X32.IfcEnergyMeasure = IfcEnergyMeasure; + class IfcFontStyle { + constructor(value) { + this.value = value; + this.type = 1; } } - IFC42.IfcRectangularTrimmedSurface = IfcRectangularTrimmedSurface; - class IfcReinforcementDefinitionProperties extends IfcPreDefinedPropertySet { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, DefinitionType, ReinforcementSectionDefinitions) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.DefinitionType = DefinitionType; - this.ReinforcementSectionDefinitions = ReinforcementSectionDefinitions; - this.type = 3765753017; + IFC4X32.IfcFontStyle = IfcFontStyle; + class IfcFontVariant { + constructor(value) { + this.value = value; + this.type = 1; } } - IFC42.IfcReinforcementDefinitionProperties = IfcReinforcementDefinitionProperties; - class IfcRelAssigns extends IfcRelationship { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.type = 3939117080; + IFC4X32.IfcFontVariant = IfcFontVariant; + class IfcFontWeight { + constructor(value) { + this.value = value; + this.type = 1; } } - IFC42.IfcRelAssigns = IfcRelAssigns; - class IfcRelAssignsToActor extends IfcRelAssigns { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingActor, ActingRole) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.RelatingActor = RelatingActor; - this.ActingRole = ActingRole; - this.type = 1683148259; + IFC4X32.IfcFontWeight = IfcFontWeight; + class IfcForceMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcRelAssignsToActor = IfcRelAssignsToActor; - class IfcRelAssignsToControl extends IfcRelAssigns { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.RelatingControl = RelatingControl; - this.type = 2495723537; + IFC4X32.IfcForceMeasure = IfcForceMeasure; + class IfcFrequencyMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcRelAssignsToControl = IfcRelAssignsToControl; - class IfcRelAssignsToGroup extends IfcRelAssigns { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingGroup) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.RelatingGroup = RelatingGroup; - this.type = 1307041759; + IFC4X32.IfcFrequencyMeasure = IfcFrequencyMeasure; + class IfcGloballyUniqueId { + constructor(value) { + this.value = value; + this.type = 1; } } - IFC42.IfcRelAssignsToGroup = IfcRelAssignsToGroup; - class IfcRelAssignsToGroupByFactor extends IfcRelAssignsToGroup { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingGroup, Factor) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingGroup); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.RelatingGroup = RelatingGroup; - this.Factor = Factor; - this.type = 1027710054; + IFC4X32.IfcGloballyUniqueId = IfcGloballyUniqueId; + class IfcHeatFluxDensityMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcRelAssignsToGroupByFactor = IfcRelAssignsToGroupByFactor; - class IfcRelAssignsToProcess extends IfcRelAssigns { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingProcess, QuantityInProcess) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.RelatingProcess = RelatingProcess; - this.QuantityInProcess = QuantityInProcess; - this.type = 4278684876; + IFC4X32.IfcHeatFluxDensityMeasure = IfcHeatFluxDensityMeasure; + class IfcHeatingValueMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcRelAssignsToProcess = IfcRelAssignsToProcess; - class IfcRelAssignsToProduct extends IfcRelAssigns { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingProduct) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.RelatingProduct = RelatingProduct; - this.type = 2857406711; + IFC4X32.IfcHeatingValueMeasure = IfcHeatingValueMeasure; + class IfcIdentifier { + constructor(value) { + this.value = value; + this.type = 1; } } - IFC42.IfcRelAssignsToProduct = IfcRelAssignsToProduct; - class IfcRelAssignsToResource extends IfcRelAssigns { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingResource) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.RelatingResource = RelatingResource; - this.type = 205026976; + IFC4X32.IfcIdentifier = IfcIdentifier; + class IfcIlluminanceMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcRelAssignsToResource = IfcRelAssignsToResource; - class IfcRelAssociates extends IfcRelationship { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.type = 1865459582; + IFC4X32.IfcIlluminanceMeasure = IfcIlluminanceMeasure; + class IfcInductanceMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcRelAssociates = IfcRelAssociates; - class IfcRelAssociatesApproval extends IfcRelAssociates { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingApproval) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingApproval = RelatingApproval; - this.type = 4095574036; + IFC4X32.IfcInductanceMeasure = IfcInductanceMeasure; + class IfcInteger { + constructor(v) { + this.type = 10; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcRelAssociatesApproval = IfcRelAssociatesApproval; - class IfcRelAssociatesClassification extends IfcRelAssociates { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingClassification) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingClassification = RelatingClassification; - this.type = 919958153; + IFC4X32.IfcInteger = IfcInteger; + class IfcIntegerCountRateMeasure { + constructor(v) { + this.type = 10; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcRelAssociatesClassification = IfcRelAssociatesClassification; - class IfcRelAssociatesConstraint extends IfcRelAssociates { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, Intent, RelatingConstraint) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.Intent = Intent; - this.RelatingConstraint = RelatingConstraint; - this.type = 2728634034; + IFC4X32.IfcIntegerCountRateMeasure = IfcIntegerCountRateMeasure; + class IfcIonConcentrationMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcRelAssociatesConstraint = IfcRelAssociatesConstraint; - class IfcRelAssociatesDocument extends IfcRelAssociates { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingDocument) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingDocument = RelatingDocument; - this.type = 982818633; + IFC4X32.IfcIonConcentrationMeasure = IfcIonConcentrationMeasure; + class IfcIsothermalMoistureCapacityMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcRelAssociatesDocument = IfcRelAssociatesDocument; - class IfcRelAssociatesLibrary extends IfcRelAssociates { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingLibrary) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingLibrary = RelatingLibrary; - this.type = 3840914261; + IFC4X32.IfcIsothermalMoistureCapacityMeasure = IfcIsothermalMoistureCapacityMeasure; + class IfcKinematicViscosityMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcRelAssociatesLibrary = IfcRelAssociatesLibrary; - class IfcRelAssociatesMaterial extends IfcRelAssociates { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingMaterial) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingMaterial = RelatingMaterial; - this.type = 2655215786; + IFC4X32.IfcKinematicViscosityMeasure = IfcKinematicViscosityMeasure; + class IfcLabel { + constructor(value) { + this.value = value; + this.type = 1; } } - IFC42.IfcRelAssociatesMaterial = IfcRelAssociatesMaterial; - class IfcRelConnects extends IfcRelationship { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.type = 826625072; + IFC4X32.IfcLabel = IfcLabel; + class IfcLanguageId { + constructor(value) { + this.value = value; + this.type = 1; } } - IFC42.IfcRelConnects = IfcRelConnects; - class IfcRelConnectsElements extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ConnectionGeometry = ConnectionGeometry; - this.RelatingElement = RelatingElement; - this.RelatedElement = RelatedElement; - this.type = 1204542856; + IFC4X32.IfcLanguageId = IfcLanguageId; + class IfcLengthMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC4X32.IfcLengthMeasure = IfcLengthMeasure; + class IfcLineIndex { + constructor(value) { + this.value = value; + this.type = 5; } } - IFC42.IfcRelConnectsElements = IfcRelConnectsElements; - class IfcRelConnectsPathElements extends IfcRelConnectsElements { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement, RelatingPriorities, RelatedPriorities, RelatedConnectionType, RelatingConnectionType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ConnectionGeometry = ConnectionGeometry; - this.RelatingElement = RelatingElement; - this.RelatedElement = RelatedElement; - this.RelatingPriorities = RelatingPriorities; - this.RelatedPriorities = RelatedPriorities; - this.RelatedConnectionType = RelatedConnectionType; - this.RelatingConnectionType = RelatingConnectionType; - this.type = 3945020480; + IFC4X32.IfcLineIndex = IfcLineIndex; + class IfcLinearForceMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcRelConnectsPathElements = IfcRelConnectsPathElements; - class IfcRelConnectsPortToElement extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingPort, RelatedElement) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingPort = RelatingPort; - this.RelatedElement = RelatedElement; - this.type = 4201705270; + IFC4X32.IfcLinearForceMeasure = IfcLinearForceMeasure; + class IfcLinearMomentMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcRelConnectsPortToElement = IfcRelConnectsPortToElement; - class IfcRelConnectsPorts extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingPort, RelatedPort, RealizingElement) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingPort = RelatingPort; - this.RelatedPort = RelatedPort; - this.RealizingElement = RealizingElement; - this.type = 3190031847; + IFC4X32.IfcLinearMomentMeasure = IfcLinearMomentMeasure; + class IfcLinearStiffnessMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcRelConnectsPorts = IfcRelConnectsPorts; - class IfcRelConnectsStructuralActivity extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedStructuralActivity) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingElement = RelatingElement; - this.RelatedStructuralActivity = RelatedStructuralActivity; - this.type = 2127690289; + IFC4X32.IfcLinearStiffnessMeasure = IfcLinearStiffnessMeasure; + class IfcLinearVelocityMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcRelConnectsStructuralActivity = IfcRelConnectsStructuralActivity; - class IfcRelConnectsStructuralMember extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingStructuralMember = RelatingStructuralMember; - this.RelatedStructuralConnection = RelatedStructuralConnection; - this.AppliedCondition = AppliedCondition; - this.AdditionalConditions = AdditionalConditions; - this.SupportedLength = SupportedLength; - this.ConditionCoordinateSystem = ConditionCoordinateSystem; - this.type = 1638771189; + IFC4X32.IfcLinearVelocityMeasure = IfcLinearVelocityMeasure; + class IfcLogical { + constructor(v) { + this.type = 3; + this.value = v === null ? v : v == "T" ? 1 : v == "F" ? 0 : 2; } } - IFC42.IfcRelConnectsStructuralMember = IfcRelConnectsStructuralMember; - class IfcRelConnectsWithEccentricity extends IfcRelConnectsStructuralMember { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem, ConnectionConstraint) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingStructuralMember = RelatingStructuralMember; - this.RelatedStructuralConnection = RelatedStructuralConnection; - this.AppliedCondition = AppliedCondition; - this.AdditionalConditions = AdditionalConditions; - this.SupportedLength = SupportedLength; - this.ConditionCoordinateSystem = ConditionCoordinateSystem; - this.ConnectionConstraint = ConnectionConstraint; - this.type = 504942748; + IFC4X32.IfcLogical = IfcLogical; + class IfcLuminousFluxMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcRelConnectsWithEccentricity = IfcRelConnectsWithEccentricity; - class IfcRelConnectsWithRealizingElements extends IfcRelConnectsElements { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement, RealizingElements, ConnectionType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ConnectionGeometry = ConnectionGeometry; - this.RelatingElement = RelatingElement; - this.RelatedElement = RelatedElement; - this.RealizingElements = RealizingElements; - this.ConnectionType = ConnectionType; - this.type = 3678494232; + IFC4X32.IfcLuminousFluxMeasure = IfcLuminousFluxMeasure; + class IfcLuminousIntensityDistributionMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcRelConnectsWithRealizingElements = IfcRelConnectsWithRealizingElements; - class IfcRelContainedInSpatialStructure extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedElements, RelatingStructure) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedElements = RelatedElements; - this.RelatingStructure = RelatingStructure; - this.type = 3242617779; + IFC4X32.IfcLuminousIntensityDistributionMeasure = IfcLuminousIntensityDistributionMeasure; + class IfcLuminousIntensityMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcRelContainedInSpatialStructure = IfcRelContainedInSpatialStructure; - class IfcRelCoversBldgElements extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingBuildingElement, RelatedCoverings) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingBuildingElement = RelatingBuildingElement; - this.RelatedCoverings = RelatedCoverings; - this.type = 886880790; + IFC4X32.IfcLuminousIntensityMeasure = IfcLuminousIntensityMeasure; + class IfcMagneticFluxDensityMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcRelCoversBldgElements = IfcRelCoversBldgElements; - class IfcRelCoversSpaces extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedCoverings) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingSpace = RelatingSpace; - this.RelatedCoverings = RelatedCoverings; - this.type = 2802773753; + IFC4X32.IfcMagneticFluxDensityMeasure = IfcMagneticFluxDensityMeasure; + class IfcMagneticFluxMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcRelCoversSpaces = IfcRelCoversSpaces; - class IfcRelDeclares extends IfcRelationship { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingContext, RelatedDefinitions) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingContext = RelatingContext; - this.RelatedDefinitions = RelatedDefinitions; - this.type = 2565941209; + IFC4X32.IfcMagneticFluxMeasure = IfcMagneticFluxMeasure; + class IfcMassDensityMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcRelDeclares = IfcRelDeclares; - class IfcRelDecomposes extends IfcRelationship { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.type = 2551354335; + IFC4X32.IfcMassDensityMeasure = IfcMassDensityMeasure; + class IfcMassFlowRateMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcRelDecomposes = IfcRelDecomposes; - class IfcRelDefines extends IfcRelationship { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.type = 693640335; + IFC4X32.IfcMassFlowRateMeasure = IfcMassFlowRateMeasure; + class IfcMassMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcRelDefines = IfcRelDefines; - class IfcRelDefinesByObject extends IfcRelDefines { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingObject) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingObject = RelatingObject; - this.type = 1462361463; + IFC4X32.IfcMassMeasure = IfcMassMeasure; + class IfcMassPerLengthMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcRelDefinesByObject = IfcRelDefinesByObject; - class IfcRelDefinesByProperties extends IfcRelDefines { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingPropertyDefinition) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingPropertyDefinition = RelatingPropertyDefinition; - this.type = 4186316022; + IFC4X32.IfcMassPerLengthMeasure = IfcMassPerLengthMeasure; + class IfcModulusOfElasticityMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcRelDefinesByProperties = IfcRelDefinesByProperties; - class IfcRelDefinesByTemplate extends IfcRelDefines { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedPropertySets, RelatingTemplate) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedPropertySets = RelatedPropertySets; - this.RelatingTemplate = RelatingTemplate; - this.type = 307848117; + IFC4X32.IfcModulusOfElasticityMeasure = IfcModulusOfElasticityMeasure; + class IfcModulusOfLinearSubgradeReactionMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcRelDefinesByTemplate = IfcRelDefinesByTemplate; - class IfcRelDefinesByType extends IfcRelDefines { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingType) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingType = RelatingType; - this.type = 781010003; + IFC4X32.IfcModulusOfLinearSubgradeReactionMeasure = IfcModulusOfLinearSubgradeReactionMeasure; + class IfcModulusOfRotationalSubgradeReactionMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcRelDefinesByType = IfcRelDefinesByType; - class IfcRelFillsElement extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingOpeningElement, RelatedBuildingElement) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingOpeningElement = RelatingOpeningElement; - this.RelatedBuildingElement = RelatedBuildingElement; - this.type = 3940055652; + IFC4X32.IfcModulusOfRotationalSubgradeReactionMeasure = IfcModulusOfRotationalSubgradeReactionMeasure; + class IfcModulusOfSubgradeReactionMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcRelFillsElement = IfcRelFillsElement; - class IfcRelFlowControlElements extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedControlElements, RelatingFlowElement) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedControlElements = RelatedControlElements; - this.RelatingFlowElement = RelatingFlowElement; - this.type = 279856033; + IFC4X32.IfcModulusOfSubgradeReactionMeasure = IfcModulusOfSubgradeReactionMeasure; + class IfcMoistureDiffusivityMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcRelFlowControlElements = IfcRelFlowControlElements; - class IfcRelInterferesElements extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedElement, InterferenceGeometry, InterferenceType, ImpliedOrder) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingElement = RelatingElement; - this.RelatedElement = RelatedElement; - this.InterferenceGeometry = InterferenceGeometry; - this.InterferenceType = InterferenceType; - this.ImpliedOrder = ImpliedOrder; - this.type = 427948657; + IFC4X32.IfcMoistureDiffusivityMeasure = IfcMoistureDiffusivityMeasure; + class IfcMolecularWeightMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcRelInterferesElements = IfcRelInterferesElements; - class IfcRelNests extends IfcRelDecomposes { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingObject = RelatingObject; - this.RelatedObjects = RelatedObjects; - this.type = 3268803585; + IFC4X32.IfcMolecularWeightMeasure = IfcMolecularWeightMeasure; + class IfcMomentOfInertiaMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcRelNests = IfcRelNests; - class IfcRelProjectsElement extends IfcRelDecomposes { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedFeatureElement) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingElement = RelatingElement; - this.RelatedFeatureElement = RelatedFeatureElement; - this.type = 750771296; + IFC4X32.IfcMomentOfInertiaMeasure = IfcMomentOfInertiaMeasure; + class IfcMonetaryMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcRelProjectsElement = IfcRelProjectsElement; - class IfcRelReferencedInSpatialStructure extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedElements, RelatingStructure) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedElements = RelatedElements; - this.RelatingStructure = RelatingStructure; - this.type = 1245217292; + IFC4X32.IfcMonetaryMeasure = IfcMonetaryMeasure; + class IfcMonthInYearNumber { + constructor(v) { + this.type = 10; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcRelReferencedInSpatialStructure = IfcRelReferencedInSpatialStructure; - class IfcRelSequence extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingProcess, RelatedProcess, TimeLag, SequenceType, UserDefinedSequenceType) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingProcess = RelatingProcess; - this.RelatedProcess = RelatedProcess; - this.TimeLag = TimeLag; - this.SequenceType = SequenceType; - this.UserDefinedSequenceType = UserDefinedSequenceType; - this.type = 4122056220; + IFC4X32.IfcMonthInYearNumber = IfcMonthInYearNumber; + class IfcNonNegativeLengthMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcRelSequence = IfcRelSequence; - class IfcRelServicesBuildings extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSystem, RelatedBuildings) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingSystem = RelatingSystem; - this.RelatedBuildings = RelatedBuildings; - this.type = 366585022; + IFC4X32.IfcNonNegativeLengthMeasure = IfcNonNegativeLengthMeasure; + class IfcNormalisedRatioMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcRelServicesBuildings = IfcRelServicesBuildings; - class IfcRelSpaceBoundary extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingSpace = RelatingSpace; - this.RelatedBuildingElement = RelatedBuildingElement; - this.ConnectionGeometry = ConnectionGeometry; - this.PhysicalOrVirtualBoundary = PhysicalOrVirtualBoundary; - this.InternalOrExternalBoundary = InternalOrExternalBoundary; - this.type = 3451746338; + IFC4X32.IfcNormalisedRatioMeasure = IfcNormalisedRatioMeasure; + class IfcNumericMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcRelSpaceBoundary = IfcRelSpaceBoundary; - class IfcRelSpaceBoundary1stLevel extends IfcRelSpaceBoundary { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary, ParentBoundary) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingSpace = RelatingSpace; - this.RelatedBuildingElement = RelatedBuildingElement; - this.ConnectionGeometry = ConnectionGeometry; - this.PhysicalOrVirtualBoundary = PhysicalOrVirtualBoundary; - this.InternalOrExternalBoundary = InternalOrExternalBoundary; - this.ParentBoundary = ParentBoundary; - this.type = 3523091289; + IFC4X32.IfcNumericMeasure = IfcNumericMeasure; + class IfcPHMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcRelSpaceBoundary1stLevel = IfcRelSpaceBoundary1stLevel; - class IfcRelSpaceBoundary2ndLevel extends IfcRelSpaceBoundary1stLevel { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary, ParentBoundary, CorrespondingBoundary) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary, ParentBoundary); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingSpace = RelatingSpace; - this.RelatedBuildingElement = RelatedBuildingElement; - this.ConnectionGeometry = ConnectionGeometry; - this.PhysicalOrVirtualBoundary = PhysicalOrVirtualBoundary; - this.InternalOrExternalBoundary = InternalOrExternalBoundary; - this.ParentBoundary = ParentBoundary; - this.CorrespondingBoundary = CorrespondingBoundary; - this.type = 1521410863; + IFC4X32.IfcPHMeasure = IfcPHMeasure; + class IfcParameterValue { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcRelSpaceBoundary2ndLevel = IfcRelSpaceBoundary2ndLevel; - class IfcRelVoidsElement extends IfcRelDecomposes { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingBuildingElement, RelatedOpeningElement) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingBuildingElement = RelatingBuildingElement; - this.RelatedOpeningElement = RelatedOpeningElement; - this.type = 1401173127; + IFC4X32.IfcParameterValue = IfcParameterValue; + class IfcPlanarForceMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcRelVoidsElement = IfcRelVoidsElement; - class IfcReparametrisedCompositeCurveSegment extends IfcCompositeCurveSegment { - constructor(expressID, Transition, SameSense, ParentCurve, ParamLength) { - super(expressID, Transition, SameSense, ParentCurve); - this.Transition = Transition; - this.SameSense = SameSense; - this.ParentCurve = ParentCurve; - this.ParamLength = ParamLength; - this.type = 816062949; + IFC4X32.IfcPlanarForceMeasure = IfcPlanarForceMeasure; + class IfcPlaneAngleMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcReparametrisedCompositeCurveSegment = IfcReparametrisedCompositeCurveSegment; - class IfcResource extends IfcObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.type = 2914609552; + IFC4X32.IfcPlaneAngleMeasure = IfcPlaneAngleMeasure; + class IfcPositiveInteger { + constructor(v) { + this.type = 10; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcResource = IfcResource; - class IfcRevolvedAreaSolid extends IfcSweptAreaSolid { - constructor(expressID, SweptArea, Position, Axis, Angle) { - super(expressID, SweptArea, Position); - this.SweptArea = SweptArea; - this.Position = Position; - this.Axis = Axis; - this.Angle = Angle; - this.type = 1856042241; + IFC4X32.IfcPositiveInteger = IfcPositiveInteger; + class IfcPositiveLengthMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcRevolvedAreaSolid = IfcRevolvedAreaSolid; - class IfcRevolvedAreaSolidTapered extends IfcRevolvedAreaSolid { - constructor(expressID, SweptArea, Position, Axis, Angle, EndSweptArea) { - super(expressID, SweptArea, Position, Axis, Angle); - this.SweptArea = SweptArea; - this.Position = Position; - this.Axis = Axis; - this.Angle = Angle; - this.EndSweptArea = EndSweptArea; - this.type = 3243963512; + IFC4X32.IfcPositiveLengthMeasure = IfcPositiveLengthMeasure; + class IfcPositivePlaneAngleMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcRevolvedAreaSolidTapered = IfcRevolvedAreaSolidTapered; - class IfcRightCircularCone extends IfcCsgPrimitive3D { - constructor(expressID, Position, Height, BottomRadius) { - super(expressID, Position); - this.Position = Position; - this.Height = Height; - this.BottomRadius = BottomRadius; - this.type = 4158566097; + IFC4X32.IfcPositivePlaneAngleMeasure = IfcPositivePlaneAngleMeasure; + class IfcPositiveRatioMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcRightCircularCone = IfcRightCircularCone; - class IfcRightCircularCylinder extends IfcCsgPrimitive3D { - constructor(expressID, Position, Height, Radius) { - super(expressID, Position); - this.Position = Position; - this.Height = Height; - this.Radius = Radius; - this.type = 3626867408; + IFC4X32.IfcPositiveRatioMeasure = IfcPositiveRatioMeasure; + class IfcPowerMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcRightCircularCylinder = IfcRightCircularCylinder; - class IfcSimplePropertyTemplate extends IfcPropertyTemplate { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, TemplateType, PrimaryMeasureType, SecondaryMeasureType, Enumerators, PrimaryUnit, SecondaryUnit, Expression, AccessState) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.TemplateType = TemplateType; - this.PrimaryMeasureType = PrimaryMeasureType; - this.SecondaryMeasureType = SecondaryMeasureType; - this.Enumerators = Enumerators; - this.PrimaryUnit = PrimaryUnit; - this.SecondaryUnit = SecondaryUnit; - this.Expression = Expression; - this.AccessState = AccessState; - this.type = 3663146110; + IFC4X32.IfcPowerMeasure = IfcPowerMeasure; + class IfcPresentableText { + constructor(value) { + this.value = value; + this.type = 1; } } - IFC42.IfcSimplePropertyTemplate = IfcSimplePropertyTemplate; - class IfcSpatialElement extends IfcProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.type = 1412071761; + IFC4X32.IfcPresentableText = IfcPresentableText; + class IfcPressureMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcSpatialElement = IfcSpatialElement; - class IfcSpatialElementType extends IfcTypeProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 710998568; + IFC4X32.IfcPressureMeasure = IfcPressureMeasure; + class IfcPropertySetDefinitionSet { + constructor(value) { + this.value = value; + this.type = 5; } } - IFC42.IfcSpatialElementType = IfcSpatialElementType; - class IfcSpatialStructureElement extends IfcSpatialElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.type = 2706606064; + IFC4X32.IfcPropertySetDefinitionSet = IfcPropertySetDefinitionSet; + class IfcRadioActivityMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcSpatialStructureElement = IfcSpatialStructureElement; - class IfcSpatialStructureElementType extends IfcSpatialElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 3893378262; + IFC4X32.IfcRadioActivityMeasure = IfcRadioActivityMeasure; + class IfcRatioMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcSpatialStructureElementType = IfcSpatialStructureElementType; - class IfcSpatialZone extends IfcSpatialElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.PredefinedType = PredefinedType; - this.type = 463610769; + IFC4X32.IfcRatioMeasure = IfcRatioMeasure; + class IfcReal { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcSpatialZone = IfcSpatialZone; - class IfcSpatialZoneType extends IfcSpatialElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, LongName) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.LongName = LongName; - this.type = 2481509218; + IFC4X32.IfcReal = IfcReal; + class IfcRotationalFrequencyMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcSpatialZoneType = IfcSpatialZoneType; - class IfcSphere extends IfcCsgPrimitive3D { - constructor(expressID, Position, Radius) { - super(expressID, Position); - this.Position = Position; - this.Radius = Radius; - this.type = 451544542; + IFC4X32.IfcRotationalFrequencyMeasure = IfcRotationalFrequencyMeasure; + class IfcRotationalMassMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcSphere = IfcSphere; - class IfcSphericalSurface extends IfcElementarySurface { - constructor(expressID, Position, Radius) { - super(expressID, Position); - this.Position = Position; - this.Radius = Radius; - this.type = 4015995234; + IFC4X32.IfcRotationalMassMeasure = IfcRotationalMassMeasure; + class IfcRotationalStiffnessMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcSphericalSurface = IfcSphericalSurface; - class IfcStructuralActivity extends IfcProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.type = 3544373492; + IFC4X32.IfcRotationalStiffnessMeasure = IfcRotationalStiffnessMeasure; + class IfcSectionModulusMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcStructuralActivity = IfcStructuralActivity; - class IfcStructuralItem extends IfcProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.type = 3136571912; + IFC4X32.IfcSectionModulusMeasure = IfcSectionModulusMeasure; + class IfcSectionalAreaIntegralMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcStructuralItem = IfcStructuralItem; - class IfcStructuralMember extends IfcStructuralItem { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.type = 530289379; + IFC4X32.IfcSectionalAreaIntegralMeasure = IfcSectionalAreaIntegralMeasure; + class IfcShearModulusMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcStructuralMember = IfcStructuralMember; - class IfcStructuralReaction extends IfcStructuralActivity { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.type = 3689010777; + IFC4X32.IfcShearModulusMeasure = IfcShearModulusMeasure; + class IfcSolidAngleMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcStructuralReaction = IfcStructuralReaction; - class IfcStructuralSurfaceMember extends IfcStructuralMember { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.PredefinedType = PredefinedType; - this.Thickness = Thickness; - this.type = 3979015343; + IFC4X32.IfcSolidAngleMeasure = IfcSolidAngleMeasure; + class IfcSoundPowerLevelMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcStructuralSurfaceMember = IfcStructuralSurfaceMember; - class IfcStructuralSurfaceMemberVarying extends IfcStructuralSurfaceMember { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.PredefinedType = PredefinedType; - this.Thickness = Thickness; - this.type = 2218152070; + IFC4X32.IfcSoundPowerLevelMeasure = IfcSoundPowerLevelMeasure; + class IfcSoundPowerMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcStructuralSurfaceMemberVarying = IfcStructuralSurfaceMemberVarying; - class IfcStructuralSurfaceReaction extends IfcStructuralReaction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.PredefinedType = PredefinedType; - this.type = 603775116; + IFC4X32.IfcSoundPowerMeasure = IfcSoundPowerMeasure; + class IfcSoundPressureLevelMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcStructuralSurfaceReaction = IfcStructuralSurfaceReaction; - class IfcSubContractResourceType extends IfcConstructionResourceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.ResourceType = ResourceType; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.PredefinedType = PredefinedType; - this.type = 4095615324; + IFC4X32.IfcSoundPressureLevelMeasure = IfcSoundPressureLevelMeasure; + class IfcSoundPressureMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcSubContractResourceType = IfcSubContractResourceType; - class IfcSurfaceCurve extends IfcCurve { - constructor(expressID, Curve3D, AssociatedGeometry, MasterRepresentation) { - super(expressID); - this.Curve3D = Curve3D; - this.AssociatedGeometry = AssociatedGeometry; - this.MasterRepresentation = MasterRepresentation; - this.type = 699246055; + IFC4X32.IfcSoundPressureMeasure = IfcSoundPressureMeasure; + class IfcSpecificHeatCapacityMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcSurfaceCurve = IfcSurfaceCurve; - class IfcSurfaceCurveSweptAreaSolid extends IfcSweptAreaSolid { - constructor(expressID, SweptArea, Position, Directrix, StartParam, EndParam, ReferenceSurface) { - super(expressID, SweptArea, Position); - this.SweptArea = SweptArea; - this.Position = Position; - this.Directrix = Directrix; - this.StartParam = StartParam; - this.EndParam = EndParam; - this.ReferenceSurface = ReferenceSurface; - this.type = 2028607225; + IFC4X32.IfcSpecificHeatCapacityMeasure = IfcSpecificHeatCapacityMeasure; + class IfcSpecularExponent { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcSurfaceCurveSweptAreaSolid = IfcSurfaceCurveSweptAreaSolid; - class IfcSurfaceOfLinearExtrusion extends IfcSweptSurface { - constructor(expressID, SweptCurve, Position, ExtrudedDirection, Depth) { - super(expressID, SweptCurve, Position); - this.SweptCurve = SweptCurve; - this.Position = Position; - this.ExtrudedDirection = ExtrudedDirection; - this.Depth = Depth; - this.type = 2809605785; + IFC4X32.IfcSpecularExponent = IfcSpecularExponent; + class IfcSpecularRoughness { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcSurfaceOfLinearExtrusion = IfcSurfaceOfLinearExtrusion; - class IfcSurfaceOfRevolution extends IfcSweptSurface { - constructor(expressID, SweptCurve, Position, AxisPosition) { - super(expressID, SweptCurve, Position); - this.SweptCurve = SweptCurve; - this.Position = Position; - this.AxisPosition = AxisPosition; - this.type = 4124788165; + IFC4X32.IfcSpecularRoughness = IfcSpecularRoughness; + class IfcTemperatureGradientMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcSurfaceOfRevolution = IfcSurfaceOfRevolution; - class IfcSystemFurnitureElementType extends IfcFurnishingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1580310250; + IFC4X32.IfcTemperatureGradientMeasure = IfcTemperatureGradientMeasure; + class IfcTemperatureRateOfChangeMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcSystemFurnitureElementType = IfcSystemFurnitureElementType; - class IfcTask extends IfcProcess { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Status, WorkMethod, IsMilestone, Priority, TaskTime, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.Status = Status; - this.WorkMethod = WorkMethod; - this.IsMilestone = IsMilestone; - this.Priority = Priority; - this.TaskTime = TaskTime; - this.PredefinedType = PredefinedType; - this.type = 3473067441; + IFC4X32.IfcTemperatureRateOfChangeMeasure = IfcTemperatureRateOfChangeMeasure; + class IfcText { + constructor(value) { + this.value = value; + this.type = 1; } } - IFC42.IfcTask = IfcTask; - class IfcTaskType extends IfcTypeProcess { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType, PredefinedType, WorkMethod) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.ProcessType = ProcessType; - this.PredefinedType = PredefinedType; - this.WorkMethod = WorkMethod; - this.type = 3206491090; + IFC4X32.IfcText = IfcText; + class IfcTextAlignment { + constructor(value) { + this.value = value; + this.type = 1; } } - IFC42.IfcTaskType = IfcTaskType; - class IfcTessellatedFaceSet extends IfcTessellatedItem { - constructor(expressID, Coordinates) { - super(expressID); - this.Coordinates = Coordinates; - this.type = 2387106220; + IFC4X32.IfcTextAlignment = IfcTextAlignment; + class IfcTextDecoration { + constructor(value) { + this.value = value; + this.type = 1; } } - IFC42.IfcTessellatedFaceSet = IfcTessellatedFaceSet; - class IfcToroidalSurface extends IfcElementarySurface { - constructor(expressID, Position, MajorRadius, MinorRadius) { - super(expressID, Position); - this.Position = Position; - this.MajorRadius = MajorRadius; - this.MinorRadius = MinorRadius; - this.type = 1935646853; + IFC4X32.IfcTextDecoration = IfcTextDecoration; + class IfcTextFontName { + constructor(value) { + this.value = value; + this.type = 1; } } - IFC42.IfcToroidalSurface = IfcToroidalSurface; - class IfcTransportElementType extends IfcElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2097647324; + IFC4X32.IfcTextFontName = IfcTextFontName; + class IfcTextTransformation { + constructor(value) { + this.value = value; + this.type = 1; } } - IFC42.IfcTransportElementType = IfcTransportElementType; - class IfcTriangulatedFaceSet extends IfcTessellatedFaceSet { - constructor(expressID, Coordinates, Normals, Closed, CoordIndex, PnIndex) { - super(expressID, Coordinates); - this.Coordinates = Coordinates; - this.Normals = Normals; - this.Closed = Closed; - this.CoordIndex = CoordIndex; - this.PnIndex = PnIndex; - this.type = 2916149573; + IFC4X32.IfcTextTransformation = IfcTextTransformation; + class IfcThermalAdmittanceMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC4X32.IfcThermalAdmittanceMeasure = IfcThermalAdmittanceMeasure; + class IfcThermalConductivityMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcTriangulatedFaceSet = IfcTriangulatedFaceSet; - class IfcWindowLiningProperties extends IfcPreDefinedPropertySet { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, LiningDepth, LiningThickness, TransomThickness, MullionThickness, FirstTransomOffset, SecondTransomOffset, FirstMullionOffset, SecondMullionOffset, ShapeAspectStyle, LiningOffset, LiningToPanelOffsetX, LiningToPanelOffsetY) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.LiningDepth = LiningDepth; - this.LiningThickness = LiningThickness; - this.TransomThickness = TransomThickness; - this.MullionThickness = MullionThickness; - this.FirstTransomOffset = FirstTransomOffset; - this.SecondTransomOffset = SecondTransomOffset; - this.FirstMullionOffset = FirstMullionOffset; - this.SecondMullionOffset = SecondMullionOffset; - this.ShapeAspectStyle = ShapeAspectStyle; - this.LiningOffset = LiningOffset; - this.LiningToPanelOffsetX = LiningToPanelOffsetX; - this.LiningToPanelOffsetY = LiningToPanelOffsetY; - this.type = 336235671; + IFC4X32.IfcThermalConductivityMeasure = IfcThermalConductivityMeasure; + class IfcThermalExpansionCoefficientMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcWindowLiningProperties = IfcWindowLiningProperties; - class IfcWindowPanelProperties extends IfcPreDefinedPropertySet { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, OperationType, PanelPosition, FrameDepth, FrameThickness, ShapeAspectStyle) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.OperationType = OperationType; - this.PanelPosition = PanelPosition; - this.FrameDepth = FrameDepth; - this.FrameThickness = FrameThickness; - this.ShapeAspectStyle = ShapeAspectStyle; - this.type = 512836454; + IFC4X32.IfcThermalExpansionCoefficientMeasure = IfcThermalExpansionCoefficientMeasure; + class IfcThermalResistanceMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcWindowPanelProperties = IfcWindowPanelProperties; - class IfcActor extends IfcObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.TheActor = TheActor; - this.type = 2296667514; + IFC4X32.IfcThermalResistanceMeasure = IfcThermalResistanceMeasure; + class IfcThermalTransmittanceMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcActor = IfcActor; - class IfcAdvancedBrep extends IfcManifoldSolidBrep { - constructor(expressID, Outer) { - super(expressID, Outer); - this.Outer = Outer; - this.type = 1635779807; + IFC4X32.IfcThermalTransmittanceMeasure = IfcThermalTransmittanceMeasure; + class IfcThermodynamicTemperatureMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcAdvancedBrep = IfcAdvancedBrep; - class IfcAdvancedBrepWithVoids extends IfcAdvancedBrep { - constructor(expressID, Outer, Voids) { - super(expressID, Outer); - this.Outer = Outer; - this.Voids = Voids; - this.type = 2603310189; + IFC4X32.IfcThermodynamicTemperatureMeasure = IfcThermodynamicTemperatureMeasure; + class IfcTime { + constructor(value) { + this.value = value; + this.type = 1; } } - IFC42.IfcAdvancedBrepWithVoids = IfcAdvancedBrepWithVoids; - class IfcAnnotation extends IfcProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.type = 1674181508; + IFC4X32.IfcTime = IfcTime; + class IfcTimeMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcAnnotation = IfcAnnotation; - class IfcBSplineSurface extends IfcBoundedSurface { - constructor(expressID, UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect) { - super(expressID); - this.UDegree = UDegree; - this.VDegree = VDegree; - this.ControlPointsList = ControlPointsList; - this.SurfaceForm = SurfaceForm; - this.UClosed = UClosed; - this.VClosed = VClosed; - this.SelfIntersect = SelfIntersect; - this.type = 2887950389; + IFC4X32.IfcTimeMeasure = IfcTimeMeasure; + class IfcTimeStamp { + constructor(v) { + this.type = 10; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcBSplineSurface = IfcBSplineSurface; - class IfcBSplineSurfaceWithKnots extends IfcBSplineSurface { - constructor(expressID, UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect, UMultiplicities, VMultiplicities, UKnots, VKnots, KnotSpec) { - super(expressID, UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect); - this.UDegree = UDegree; - this.VDegree = VDegree; - this.ControlPointsList = ControlPointsList; - this.SurfaceForm = SurfaceForm; - this.UClosed = UClosed; - this.VClosed = VClosed; - this.SelfIntersect = SelfIntersect; - this.UMultiplicities = UMultiplicities; - this.VMultiplicities = VMultiplicities; - this.UKnots = UKnots; - this.VKnots = VKnots; - this.KnotSpec = KnotSpec; - this.type = 167062518; + IFC4X32.IfcTimeStamp = IfcTimeStamp; + class IfcTorqueMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcBSplineSurfaceWithKnots = IfcBSplineSurfaceWithKnots; - class IfcBlock extends IfcCsgPrimitive3D { - constructor(expressID, Position, XLength, YLength, ZLength) { - super(expressID, Position); - this.Position = Position; - this.XLength = XLength; - this.YLength = YLength; - this.ZLength = ZLength; - this.type = 1334484129; + IFC4X32.IfcTorqueMeasure = IfcTorqueMeasure; + class IfcURIReference { + constructor(value) { + this.value = value; + this.type = 1; } } - IFC42.IfcBlock = IfcBlock; - class IfcBooleanClippingResult extends IfcBooleanResult { - constructor(expressID, Operator, FirstOperand, SecondOperand) { - super(expressID, Operator, FirstOperand, SecondOperand); - this.Operator = Operator; - this.FirstOperand = FirstOperand; - this.SecondOperand = SecondOperand; - this.type = 3649129432; + IFC4X32.IfcURIReference = IfcURIReference; + class IfcVaporPermeabilityMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcBooleanClippingResult = IfcBooleanClippingResult; - class IfcBoundedCurve extends IfcCurve { - constructor(expressID) { - super(expressID); - this.type = 1260505505; + IFC4X32.IfcVaporPermeabilityMeasure = IfcVaporPermeabilityMeasure; + class IfcVolumeMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcBoundedCurve = IfcBoundedCurve; - class IfcBuilding extends IfcSpatialStructureElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, ElevationOfRefHeight, ElevationOfTerrain, BuildingAddress) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.ElevationOfRefHeight = ElevationOfRefHeight; - this.ElevationOfTerrain = ElevationOfTerrain; - this.BuildingAddress = BuildingAddress; - this.type = 4031249490; + IFC4X32.IfcVolumeMeasure = IfcVolumeMeasure; + class IfcVolumetricFlowRateMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcBuilding = IfcBuilding; - class IfcBuildingElementType extends IfcElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 1950629157; + IFC4X32.IfcVolumetricFlowRateMeasure = IfcVolumetricFlowRateMeasure; + class IfcWarpingConstantMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); } } - IFC42.IfcBuildingElementType = IfcBuildingElementType; - class IfcBuildingStorey extends IfcSpatialStructureElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, Elevation) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.Elevation = Elevation; - this.type = 3124254112; - } + IFC4X32.IfcWarpingConstantMeasure = IfcWarpingConstantMeasure; + class IfcWarpingMomentMeasure { + constructor(v) { + this.type = 4; + this.value = v === null ? v : parseFloat(v); + } + } + IFC4X32.IfcWarpingMomentMeasure = IfcWarpingMomentMeasure; + class IfcActionRequestTypeEnum { + } + IfcActionRequestTypeEnum.EMAIL = { type: 3, value: "EMAIL" }; + IfcActionRequestTypeEnum.FAX = { type: 3, value: "FAX" }; + IfcActionRequestTypeEnum.PHONE = { type: 3, value: "PHONE" }; + IfcActionRequestTypeEnum.POST = { type: 3, value: "POST" }; + IfcActionRequestTypeEnum.VERBAL = { type: 3, value: "VERBAL" }; + IfcActionRequestTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcActionRequestTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcActionRequestTypeEnum = IfcActionRequestTypeEnum; + class IfcActionSourceTypeEnum { + } + IfcActionSourceTypeEnum.BRAKES = { type: 3, value: "BRAKES" }; + IfcActionSourceTypeEnum.BUOYANCY = { type: 3, value: "BUOYANCY" }; + IfcActionSourceTypeEnum.COMPLETION_G1 = { type: 3, value: "COMPLETION_G1" }; + IfcActionSourceTypeEnum.CREEP = { type: 3, value: "CREEP" }; + IfcActionSourceTypeEnum.CURRENT = { type: 3, value: "CURRENT" }; + IfcActionSourceTypeEnum.DEAD_LOAD_G = { type: 3, value: "DEAD_LOAD_G" }; + IfcActionSourceTypeEnum.EARTHQUAKE_E = { type: 3, value: "EARTHQUAKE_E" }; + IfcActionSourceTypeEnum.ERECTION = { type: 3, value: "ERECTION" }; + IfcActionSourceTypeEnum.FIRE = { type: 3, value: "FIRE" }; + IfcActionSourceTypeEnum.ICE = { type: 3, value: "ICE" }; + IfcActionSourceTypeEnum.IMPACT = { type: 3, value: "IMPACT" }; + IfcActionSourceTypeEnum.IMPULSE = { type: 3, value: "IMPULSE" }; + IfcActionSourceTypeEnum.LACK_OF_FIT = { type: 3, value: "LACK_OF_FIT" }; + IfcActionSourceTypeEnum.LIVE_LOAD_Q = { type: 3, value: "LIVE_LOAD_Q" }; + IfcActionSourceTypeEnum.PRESTRESSING_P = { type: 3, value: "PRESTRESSING_P" }; + IfcActionSourceTypeEnum.PROPPING = { type: 3, value: "PROPPING" }; + IfcActionSourceTypeEnum.RAIN = { type: 3, value: "RAIN" }; + IfcActionSourceTypeEnum.SETTLEMENT_U = { type: 3, value: "SETTLEMENT_U" }; + IfcActionSourceTypeEnum.SHRINKAGE = { type: 3, value: "SHRINKAGE" }; + IfcActionSourceTypeEnum.SNOW_S = { type: 3, value: "SNOW_S" }; + IfcActionSourceTypeEnum.SYSTEM_IMPERFECTION = { type: 3, value: "SYSTEM_IMPERFECTION" }; + IfcActionSourceTypeEnum.TEMPERATURE_T = { type: 3, value: "TEMPERATURE_T" }; + IfcActionSourceTypeEnum.TRANSPORT = { type: 3, value: "TRANSPORT" }; + IfcActionSourceTypeEnum.WAVE = { type: 3, value: "WAVE" }; + IfcActionSourceTypeEnum.WIND_W = { type: 3, value: "WIND_W" }; + IfcActionSourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcActionSourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcActionSourceTypeEnum = IfcActionSourceTypeEnum; + class IfcActionTypeEnum { + } + IfcActionTypeEnum.EXTRAORDINARY_A = { type: 3, value: "EXTRAORDINARY_A" }; + IfcActionTypeEnum.PERMANENT_G = { type: 3, value: "PERMANENT_G" }; + IfcActionTypeEnum.VARIABLE_Q = { type: 3, value: "VARIABLE_Q" }; + IfcActionTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcActionTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcActionTypeEnum = IfcActionTypeEnum; + class IfcActuatorTypeEnum { + } + IfcActuatorTypeEnum.ELECTRICACTUATOR = { type: 3, value: "ELECTRICACTUATOR" }; + IfcActuatorTypeEnum.HANDOPERATEDACTUATOR = { type: 3, value: "HANDOPERATEDACTUATOR" }; + IfcActuatorTypeEnum.HYDRAULICACTUATOR = { type: 3, value: "HYDRAULICACTUATOR" }; + IfcActuatorTypeEnum.PNEUMATICACTUATOR = { type: 3, value: "PNEUMATICACTUATOR" }; + IfcActuatorTypeEnum.THERMOSTATICACTUATOR = { type: 3, value: "THERMOSTATICACTUATOR" }; + IfcActuatorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcActuatorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcActuatorTypeEnum = IfcActuatorTypeEnum; + class IfcAddressTypeEnum { + } + IfcAddressTypeEnum.DISTRIBUTIONPOINT = { type: 3, value: "DISTRIBUTIONPOINT" }; + IfcAddressTypeEnum.HOME = { type: 3, value: "HOME" }; + IfcAddressTypeEnum.OFFICE = { type: 3, value: "OFFICE" }; + IfcAddressTypeEnum.SITE = { type: 3, value: "SITE" }; + IfcAddressTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IFC4X32.IfcAddressTypeEnum = IfcAddressTypeEnum; + class IfcAirTerminalBoxTypeEnum { + } + IfcAirTerminalBoxTypeEnum.CONSTANTFLOW = { type: 3, value: "CONSTANTFLOW" }; + IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREDEPENDANT = { type: 3, value: "VARIABLEFLOWPRESSUREDEPENDANT" }; + IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREINDEPENDANT = { type: 3, value: "VARIABLEFLOWPRESSUREINDEPENDANT" }; + IfcAirTerminalBoxTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcAirTerminalBoxTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcAirTerminalBoxTypeEnum = IfcAirTerminalBoxTypeEnum; + class IfcAirTerminalTypeEnum { + } + IfcAirTerminalTypeEnum.DIFFUSER = { type: 3, value: "DIFFUSER" }; + IfcAirTerminalTypeEnum.GRILLE = { type: 3, value: "GRILLE" }; + IfcAirTerminalTypeEnum.LOUVRE = { type: 3, value: "LOUVRE" }; + IfcAirTerminalTypeEnum.REGISTER = { type: 3, value: "REGISTER" }; + IfcAirTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcAirTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcAirTerminalTypeEnum = IfcAirTerminalTypeEnum; + class IfcAirToAirHeatRecoveryTypeEnum { + } + IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECOUNTERFLOWEXCHANGER = { type: 3, value: "FIXEDPLATECOUNTERFLOWEXCHANGER" }; + IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECROSSFLOWEXCHANGER = { type: 3, value: "FIXEDPLATECROSSFLOWEXCHANGER" }; + IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATEPARALLELFLOWEXCHANGER = { type: 3, value: "FIXEDPLATEPARALLELFLOWEXCHANGER" }; + IfcAirToAirHeatRecoveryTypeEnum.HEATPIPE = { type: 3, value: "HEATPIPE" }; + IfcAirToAirHeatRecoveryTypeEnum.ROTARYWHEEL = { type: 3, value: "ROTARYWHEEL" }; + IfcAirToAirHeatRecoveryTypeEnum.RUNAROUNDCOILLOOP = { type: 3, value: "RUNAROUNDCOILLOOP" }; + IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONCOILTYPEHEATEXCHANGERS = { type: 3, value: "THERMOSIPHONCOILTYPEHEATEXCHANGERS" }; + IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONSEALEDTUBEHEATEXCHANGERS = { type: 3, value: "THERMOSIPHONSEALEDTUBEHEATEXCHANGERS" }; + IfcAirToAirHeatRecoveryTypeEnum.TWINTOWERENTHALPYRECOVERYLOOPS = { type: 3, value: "TWINTOWERENTHALPYRECOVERYLOOPS" }; + IfcAirToAirHeatRecoveryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcAirToAirHeatRecoveryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcAirToAirHeatRecoveryTypeEnum = IfcAirToAirHeatRecoveryTypeEnum; + class IfcAlarmTypeEnum { + } + IfcAlarmTypeEnum.BELL = { type: 3, value: "BELL" }; + IfcAlarmTypeEnum.BREAKGLASSBUTTON = { type: 3, value: "BREAKGLASSBUTTON" }; + IfcAlarmTypeEnum.LIGHT = { type: 3, value: "LIGHT" }; + IfcAlarmTypeEnum.MANUALPULLBOX = { type: 3, value: "MANUALPULLBOX" }; + IfcAlarmTypeEnum.RAILWAYCROCODILE = { type: 3, value: "RAILWAYCROCODILE" }; + IfcAlarmTypeEnum.RAILWAYDETONATOR = { type: 3, value: "RAILWAYDETONATOR" }; + IfcAlarmTypeEnum.SIREN = { type: 3, value: "SIREN" }; + IfcAlarmTypeEnum.WHISTLE = { type: 3, value: "WHISTLE" }; + IfcAlarmTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcAlarmTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcAlarmTypeEnum = IfcAlarmTypeEnum; + class IfcAlignmentCantSegmentTypeEnum { + } + IfcAlignmentCantSegmentTypeEnum.BLOSSCURVE = { type: 3, value: "BLOSSCURVE" }; + IfcAlignmentCantSegmentTypeEnum.CONSTANTCANT = { type: 3, value: "CONSTANTCANT" }; + IfcAlignmentCantSegmentTypeEnum.COSINECURVE = { type: 3, value: "COSINECURVE" }; + IfcAlignmentCantSegmentTypeEnum.HELMERTCURVE = { type: 3, value: "HELMERTCURVE" }; + IfcAlignmentCantSegmentTypeEnum.LINEARTRANSITION = { type: 3, value: "LINEARTRANSITION" }; + IfcAlignmentCantSegmentTypeEnum.SINECURVE = { type: 3, value: "SINECURVE" }; + IfcAlignmentCantSegmentTypeEnum.VIENNESEBEND = { type: 3, value: "VIENNESEBEND" }; + IFC4X32.IfcAlignmentCantSegmentTypeEnum = IfcAlignmentCantSegmentTypeEnum; + class IfcAlignmentHorizontalSegmentTypeEnum { + } + IfcAlignmentHorizontalSegmentTypeEnum.BLOSSCURVE = { type: 3, value: "BLOSSCURVE" }; + IfcAlignmentHorizontalSegmentTypeEnum.CIRCULARARC = { type: 3, value: "CIRCULARARC" }; + IfcAlignmentHorizontalSegmentTypeEnum.CLOTHOID = { type: 3, value: "CLOTHOID" }; + IfcAlignmentHorizontalSegmentTypeEnum.COSINECURVE = { type: 3, value: "COSINECURVE" }; + IfcAlignmentHorizontalSegmentTypeEnum.CUBIC = { type: 3, value: "CUBIC" }; + IfcAlignmentHorizontalSegmentTypeEnum.HELMERTCURVE = { type: 3, value: "HELMERTCURVE" }; + IfcAlignmentHorizontalSegmentTypeEnum.LINE = { type: 3, value: "LINE" }; + IfcAlignmentHorizontalSegmentTypeEnum.SINECURVE = { type: 3, value: "SINECURVE" }; + IfcAlignmentHorizontalSegmentTypeEnum.VIENNESEBEND = { type: 3, value: "VIENNESEBEND" }; + IFC4X32.IfcAlignmentHorizontalSegmentTypeEnum = IfcAlignmentHorizontalSegmentTypeEnum; + class IfcAlignmentTypeEnum { + } + IfcAlignmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcAlignmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcAlignmentTypeEnum = IfcAlignmentTypeEnum; + class IfcAlignmentVerticalSegmentTypeEnum { + } + IfcAlignmentVerticalSegmentTypeEnum.CIRCULARARC = { type: 3, value: "CIRCULARARC" }; + IfcAlignmentVerticalSegmentTypeEnum.CLOTHOID = { type: 3, value: "CLOTHOID" }; + IfcAlignmentVerticalSegmentTypeEnum.CONSTANTGRADIENT = { type: 3, value: "CONSTANTGRADIENT" }; + IfcAlignmentVerticalSegmentTypeEnum.PARABOLICARC = { type: 3, value: "PARABOLICARC" }; + IFC4X32.IfcAlignmentVerticalSegmentTypeEnum = IfcAlignmentVerticalSegmentTypeEnum; + class IfcAnalysisModelTypeEnum { + } + IfcAnalysisModelTypeEnum.IN_PLANE_LOADING_2D = { type: 3, value: "IN_PLANE_LOADING_2D" }; + IfcAnalysisModelTypeEnum.LOADING_3D = { type: 3, value: "LOADING_3D" }; + IfcAnalysisModelTypeEnum.OUT_PLANE_LOADING_2D = { type: 3, value: "OUT_PLANE_LOADING_2D" }; + IfcAnalysisModelTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcAnalysisModelTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcAnalysisModelTypeEnum = IfcAnalysisModelTypeEnum; + class IfcAnalysisTheoryTypeEnum { + } + IfcAnalysisTheoryTypeEnum.FIRST_ORDER_THEORY = { type: 3, value: "FIRST_ORDER_THEORY" }; + IfcAnalysisTheoryTypeEnum.FULL_NONLINEAR_THEORY = { type: 3, value: "FULL_NONLINEAR_THEORY" }; + IfcAnalysisTheoryTypeEnum.SECOND_ORDER_THEORY = { type: 3, value: "SECOND_ORDER_THEORY" }; + IfcAnalysisTheoryTypeEnum.THIRD_ORDER_THEORY = { type: 3, value: "THIRD_ORDER_THEORY" }; + IfcAnalysisTheoryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcAnalysisTheoryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcAnalysisTheoryTypeEnum = IfcAnalysisTheoryTypeEnum; + class IfcAnnotationTypeEnum { + } + IfcAnnotationTypeEnum.ASBUILTAREA = { type: 3, value: "ASBUILTAREA" }; + IfcAnnotationTypeEnum.ASBUILTLINE = { type: 3, value: "ASBUILTLINE" }; + IfcAnnotationTypeEnum.ASBUILTPOINT = { type: 3, value: "ASBUILTPOINT" }; + IfcAnnotationTypeEnum.ASSUMEDAREA = { type: 3, value: "ASSUMEDAREA" }; + IfcAnnotationTypeEnum.ASSUMEDLINE = { type: 3, value: "ASSUMEDLINE" }; + IfcAnnotationTypeEnum.ASSUMEDPOINT = { type: 3, value: "ASSUMEDPOINT" }; + IfcAnnotationTypeEnum.NON_PHYSICAL_SIGNAL = { type: 3, value: "NON_PHYSICAL_SIGNAL" }; + IfcAnnotationTypeEnum.SUPERELEVATIONEVENT = { type: 3, value: "SUPERELEVATIONEVENT" }; + IfcAnnotationTypeEnum.WIDTHEVENT = { type: 3, value: "WIDTHEVENT" }; + IfcAnnotationTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcAnnotationTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcAnnotationTypeEnum = IfcAnnotationTypeEnum; + class IfcArithmeticOperatorEnum { + } + IfcArithmeticOperatorEnum.ADD = { type: 3, value: "ADD" }; + IfcArithmeticOperatorEnum.DIVIDE = { type: 3, value: "DIVIDE" }; + IfcArithmeticOperatorEnum.MULTIPLY = { type: 3, value: "MULTIPLY" }; + IfcArithmeticOperatorEnum.SUBTRACT = { type: 3, value: "SUBTRACT" }; + IFC4X32.IfcArithmeticOperatorEnum = IfcArithmeticOperatorEnum; + class IfcAssemblyPlaceEnum { + } + IfcAssemblyPlaceEnum.FACTORY = { type: 3, value: "FACTORY" }; + IfcAssemblyPlaceEnum.SITE = { type: 3, value: "SITE" }; + IfcAssemblyPlaceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcAssemblyPlaceEnum = IfcAssemblyPlaceEnum; + class IfcAudioVisualApplianceTypeEnum { + } + IfcAudioVisualApplianceTypeEnum.AMPLIFIER = { type: 3, value: "AMPLIFIER" }; + IfcAudioVisualApplianceTypeEnum.CAMERA = { type: 3, value: "CAMERA" }; + IfcAudioVisualApplianceTypeEnum.COMMUNICATIONTERMINAL = { type: 3, value: "COMMUNICATIONTERMINAL" }; + IfcAudioVisualApplianceTypeEnum.DISPLAY = { type: 3, value: "DISPLAY" }; + IfcAudioVisualApplianceTypeEnum.MICROPHONE = { type: 3, value: "MICROPHONE" }; + IfcAudioVisualApplianceTypeEnum.PLAYER = { type: 3, value: "PLAYER" }; + IfcAudioVisualApplianceTypeEnum.PROJECTOR = { type: 3, value: "PROJECTOR" }; + IfcAudioVisualApplianceTypeEnum.RECEIVER = { type: 3, value: "RECEIVER" }; + IfcAudioVisualApplianceTypeEnum.RECORDINGEQUIPMENT = { type: 3, value: "RECORDINGEQUIPMENT" }; + IfcAudioVisualApplianceTypeEnum.SPEAKER = { type: 3, value: "SPEAKER" }; + IfcAudioVisualApplianceTypeEnum.SWITCHER = { type: 3, value: "SWITCHER" }; + IfcAudioVisualApplianceTypeEnum.TELEPHONE = { type: 3, value: "TELEPHONE" }; + IfcAudioVisualApplianceTypeEnum.TUNER = { type: 3, value: "TUNER" }; + IfcAudioVisualApplianceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcAudioVisualApplianceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcAudioVisualApplianceTypeEnum = IfcAudioVisualApplianceTypeEnum; + class IfcBSplineCurveForm { + } + IfcBSplineCurveForm.CIRCULAR_ARC = { type: 3, value: "CIRCULAR_ARC" }; + IfcBSplineCurveForm.ELLIPTIC_ARC = { type: 3, value: "ELLIPTIC_ARC" }; + IfcBSplineCurveForm.HYPERBOLIC_ARC = { type: 3, value: "HYPERBOLIC_ARC" }; + IfcBSplineCurveForm.PARABOLIC_ARC = { type: 3, value: "PARABOLIC_ARC" }; + IfcBSplineCurveForm.POLYLINE_FORM = { type: 3, value: "POLYLINE_FORM" }; + IfcBSplineCurveForm.UNSPECIFIED = { type: 3, value: "UNSPECIFIED" }; + IFC4X32.IfcBSplineCurveForm = IfcBSplineCurveForm; + class IfcBSplineSurfaceForm { + } + IfcBSplineSurfaceForm.CONICAL_SURF = { type: 3, value: "CONICAL_SURF" }; + IfcBSplineSurfaceForm.CYLINDRICAL_SURF = { type: 3, value: "CYLINDRICAL_SURF" }; + IfcBSplineSurfaceForm.GENERALISED_CONE = { type: 3, value: "GENERALISED_CONE" }; + IfcBSplineSurfaceForm.PLANE_SURF = { type: 3, value: "PLANE_SURF" }; + IfcBSplineSurfaceForm.QUADRIC_SURF = { type: 3, value: "QUADRIC_SURF" }; + IfcBSplineSurfaceForm.RULED_SURF = { type: 3, value: "RULED_SURF" }; + IfcBSplineSurfaceForm.SPHERICAL_SURF = { type: 3, value: "SPHERICAL_SURF" }; + IfcBSplineSurfaceForm.SURF_OF_LINEAR_EXTRUSION = { type: 3, value: "SURF_OF_LINEAR_EXTRUSION" }; + IfcBSplineSurfaceForm.SURF_OF_REVOLUTION = { type: 3, value: "SURF_OF_REVOLUTION" }; + IfcBSplineSurfaceForm.TOROIDAL_SURF = { type: 3, value: "TOROIDAL_SURF" }; + IfcBSplineSurfaceForm.UNSPECIFIED = { type: 3, value: "UNSPECIFIED" }; + IFC4X32.IfcBSplineSurfaceForm = IfcBSplineSurfaceForm; + class IfcBeamTypeEnum { + } + IfcBeamTypeEnum.BEAM = { type: 3, value: "BEAM" }; + IfcBeamTypeEnum.CORNICE = { type: 3, value: "CORNICE" }; + IfcBeamTypeEnum.DIAPHRAGM = { type: 3, value: "DIAPHRAGM" }; + IfcBeamTypeEnum.EDGEBEAM = { type: 3, value: "EDGEBEAM" }; + IfcBeamTypeEnum.GIRDER_SEGMENT = { type: 3, value: "GIRDER_SEGMENT" }; + IfcBeamTypeEnum.HATSTONE = { type: 3, value: "HATSTONE" }; + IfcBeamTypeEnum.HOLLOWCORE = { type: 3, value: "HOLLOWCORE" }; + IfcBeamTypeEnum.JOIST = { type: 3, value: "JOIST" }; + IfcBeamTypeEnum.LINTEL = { type: 3, value: "LINTEL" }; + IfcBeamTypeEnum.PIERCAP = { type: 3, value: "PIERCAP" }; + IfcBeamTypeEnum.SPANDREL = { type: 3, value: "SPANDREL" }; + IfcBeamTypeEnum.T_BEAM = { type: 3, value: "T_BEAM" }; + IfcBeamTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcBeamTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcBeamTypeEnum = IfcBeamTypeEnum; + class IfcBearingTypeDisplacementEnum { + } + IfcBearingTypeDisplacementEnum.FIXED_MOVEMENT = { type: 3, value: "FIXED_MOVEMENT" }; + IfcBearingTypeDisplacementEnum.FREE_MOVEMENT = { type: 3, value: "FREE_MOVEMENT" }; + IfcBearingTypeDisplacementEnum.GUIDED_LONGITUDINAL = { type: 3, value: "GUIDED_LONGITUDINAL" }; + IfcBearingTypeDisplacementEnum.GUIDED_TRANSVERSAL = { type: 3, value: "GUIDED_TRANSVERSAL" }; + IfcBearingTypeDisplacementEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcBearingTypeDisplacementEnum = IfcBearingTypeDisplacementEnum; + class IfcBearingTypeEnum { + } + IfcBearingTypeEnum.CYLINDRICAL = { type: 3, value: "CYLINDRICAL" }; + IfcBearingTypeEnum.DISK = { type: 3, value: "DISK" }; + IfcBearingTypeEnum.ELASTOMERIC = { type: 3, value: "ELASTOMERIC" }; + IfcBearingTypeEnum.GUIDE = { type: 3, value: "GUIDE" }; + IfcBearingTypeEnum.POT = { type: 3, value: "POT" }; + IfcBearingTypeEnum.ROCKER = { type: 3, value: "ROCKER" }; + IfcBearingTypeEnum.ROLLER = { type: 3, value: "ROLLER" }; + IfcBearingTypeEnum.SPHERICAL = { type: 3, value: "SPHERICAL" }; + IfcBearingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcBearingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcBearingTypeEnum = IfcBearingTypeEnum; + class IfcBenchmarkEnum { + } + IfcBenchmarkEnum.EQUALTO = { type: 3, value: "EQUALTO" }; + IfcBenchmarkEnum.GREATERTHAN = { type: 3, value: "GREATERTHAN" }; + IfcBenchmarkEnum.GREATERTHANOREQUALTO = { type: 3, value: "GREATERTHANOREQUALTO" }; + IfcBenchmarkEnum.INCLUDEDIN = { type: 3, value: "INCLUDEDIN" }; + IfcBenchmarkEnum.INCLUDES = { type: 3, value: "INCLUDES" }; + IfcBenchmarkEnum.LESSTHAN = { type: 3, value: "LESSTHAN" }; + IfcBenchmarkEnum.LESSTHANOREQUALTO = { type: 3, value: "LESSTHANOREQUALTO" }; + IfcBenchmarkEnum.NOTEQUALTO = { type: 3, value: "NOTEQUALTO" }; + IfcBenchmarkEnum.NOTINCLUDEDIN = { type: 3, value: "NOTINCLUDEDIN" }; + IfcBenchmarkEnum.NOTINCLUDES = { type: 3, value: "NOTINCLUDES" }; + IFC4X32.IfcBenchmarkEnum = IfcBenchmarkEnum; + class IfcBoilerTypeEnum { + } + IfcBoilerTypeEnum.STEAM = { type: 3, value: "STEAM" }; + IfcBoilerTypeEnum.WATER = { type: 3, value: "WATER" }; + IfcBoilerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcBoilerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcBoilerTypeEnum = IfcBoilerTypeEnum; + class IfcBooleanOperator { + } + IfcBooleanOperator.DIFFERENCE = { type: 3, value: "DIFFERENCE" }; + IfcBooleanOperator.INTERSECTION = { type: 3, value: "INTERSECTION" }; + IfcBooleanOperator.UNION = { type: 3, value: "UNION" }; + IFC4X32.IfcBooleanOperator = IfcBooleanOperator; + class IfcBridgePartTypeEnum { + } + IfcBridgePartTypeEnum.ABUTMENT = { type: 3, value: "ABUTMENT" }; + IfcBridgePartTypeEnum.DECK = { type: 3, value: "DECK" }; + IfcBridgePartTypeEnum.DECK_SEGMENT = { type: 3, value: "DECK_SEGMENT" }; + IfcBridgePartTypeEnum.FOUNDATION = { type: 3, value: "FOUNDATION" }; + IfcBridgePartTypeEnum.PIER = { type: 3, value: "PIER" }; + IfcBridgePartTypeEnum.PIER_SEGMENT = { type: 3, value: "PIER_SEGMENT" }; + IfcBridgePartTypeEnum.PYLON = { type: 3, value: "PYLON" }; + IfcBridgePartTypeEnum.SUBSTRUCTURE = { type: 3, value: "SUBSTRUCTURE" }; + IfcBridgePartTypeEnum.SUPERSTRUCTURE = { type: 3, value: "SUPERSTRUCTURE" }; + IfcBridgePartTypeEnum.SURFACESTRUCTURE = { type: 3, value: "SURFACESTRUCTURE" }; + IfcBridgePartTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcBridgePartTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcBridgePartTypeEnum = IfcBridgePartTypeEnum; + class IfcBridgeTypeEnum { + } + IfcBridgeTypeEnum.ARCHED = { type: 3, value: "ARCHED" }; + IfcBridgeTypeEnum.CABLE_STAYED = { type: 3, value: "CABLE_STAYED" }; + IfcBridgeTypeEnum.CANTILEVER = { type: 3, value: "CANTILEVER" }; + IfcBridgeTypeEnum.CULVERT = { type: 3, value: "CULVERT" }; + IfcBridgeTypeEnum.FRAMEWORK = { type: 3, value: "FRAMEWORK" }; + IfcBridgeTypeEnum.GIRDER = { type: 3, value: "GIRDER" }; + IfcBridgeTypeEnum.SUSPENSION = { type: 3, value: "SUSPENSION" }; + IfcBridgeTypeEnum.TRUSS = { type: 3, value: "TRUSS" }; + IfcBridgeTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcBridgeTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcBridgeTypeEnum = IfcBridgeTypeEnum; + class IfcBuildingElementPartTypeEnum { } - IFC42.IfcBuildingStorey = IfcBuildingStorey; - class IfcChimneyType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2197970202; - } + IfcBuildingElementPartTypeEnum.APRON = { type: 3, value: "APRON" }; + IfcBuildingElementPartTypeEnum.ARMOURUNIT = { type: 3, value: "ARMOURUNIT" }; + IfcBuildingElementPartTypeEnum.INSULATION = { type: 3, value: "INSULATION" }; + IfcBuildingElementPartTypeEnum.PRECASTPANEL = { type: 3, value: "PRECASTPANEL" }; + IfcBuildingElementPartTypeEnum.SAFETYCAGE = { type: 3, value: "SAFETYCAGE" }; + IfcBuildingElementPartTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcBuildingElementPartTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcBuildingElementPartTypeEnum = IfcBuildingElementPartTypeEnum; + class IfcBuildingElementProxyTypeEnum { } - IFC42.IfcChimneyType = IfcChimneyType; - class IfcCircleHollowProfileDef extends IfcCircleProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, Radius, WallThickness) { - super(expressID, ProfileType, ProfileName, Position, Radius); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.Radius = Radius; - this.WallThickness = WallThickness; - this.type = 2937912522; - } + IfcBuildingElementProxyTypeEnum.COMPLEX = { type: 3, value: "COMPLEX" }; + IfcBuildingElementProxyTypeEnum.ELEMENT = { type: 3, value: "ELEMENT" }; + IfcBuildingElementProxyTypeEnum.PARTIAL = { type: 3, value: "PARTIAL" }; + IfcBuildingElementProxyTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcBuildingElementProxyTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcBuildingElementProxyTypeEnum = IfcBuildingElementProxyTypeEnum; + class IfcBuildingSystemTypeEnum { } - IFC42.IfcCircleHollowProfileDef = IfcCircleHollowProfileDef; - class IfcCivilElementType extends IfcElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 3893394355; - } + IfcBuildingSystemTypeEnum.EROSIONPREVENTION = { type: 3, value: "EROSIONPREVENTION" }; + IfcBuildingSystemTypeEnum.FENESTRATION = { type: 3, value: "FENESTRATION" }; + IfcBuildingSystemTypeEnum.FOUNDATION = { type: 3, value: "FOUNDATION" }; + IfcBuildingSystemTypeEnum.LOADBEARING = { type: 3, value: "LOADBEARING" }; + IfcBuildingSystemTypeEnum.OUTERSHELL = { type: 3, value: "OUTERSHELL" }; + IfcBuildingSystemTypeEnum.PRESTRESSING = { type: 3, value: "PRESTRESSING" }; + IfcBuildingSystemTypeEnum.REINFORCING = { type: 3, value: "REINFORCING" }; + IfcBuildingSystemTypeEnum.SHADING = { type: 3, value: "SHADING" }; + IfcBuildingSystemTypeEnum.TRANSPORT = { type: 3, value: "TRANSPORT" }; + IfcBuildingSystemTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcBuildingSystemTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcBuildingSystemTypeEnum = IfcBuildingSystemTypeEnum; + class IfcBuiltSystemTypeEnum { } - IFC42.IfcCivilElementType = IfcCivilElementType; - class IfcColumnType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 300633059; - } + IfcBuiltSystemTypeEnum.EROSIONPREVENTION = { type: 3, value: "EROSIONPREVENTION" }; + IfcBuiltSystemTypeEnum.FENESTRATION = { type: 3, value: "FENESTRATION" }; + IfcBuiltSystemTypeEnum.FOUNDATION = { type: 3, value: "FOUNDATION" }; + IfcBuiltSystemTypeEnum.LOADBEARING = { type: 3, value: "LOADBEARING" }; + IfcBuiltSystemTypeEnum.MOORING = { type: 3, value: "MOORING" }; + IfcBuiltSystemTypeEnum.OUTERSHELL = { type: 3, value: "OUTERSHELL" }; + IfcBuiltSystemTypeEnum.PRESTRESSING = { type: 3, value: "PRESTRESSING" }; + IfcBuiltSystemTypeEnum.RAILWAYLINE = { type: 3, value: "RAILWAYLINE" }; + IfcBuiltSystemTypeEnum.RAILWAYTRACK = { type: 3, value: "RAILWAYTRACK" }; + IfcBuiltSystemTypeEnum.REINFORCING = { type: 3, value: "REINFORCING" }; + IfcBuiltSystemTypeEnum.SHADING = { type: 3, value: "SHADING" }; + IfcBuiltSystemTypeEnum.TRACKCIRCUIT = { type: 3, value: "TRACKCIRCUIT" }; + IfcBuiltSystemTypeEnum.TRANSPORT = { type: 3, value: "TRANSPORT" }; + IfcBuiltSystemTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcBuiltSystemTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcBuiltSystemTypeEnum = IfcBuiltSystemTypeEnum; + class IfcBurnerTypeEnum { } - IFC42.IfcColumnType = IfcColumnType; - class IfcComplexPropertyTemplate extends IfcPropertyTemplate { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, UsageName, TemplateType, HasPropertyTemplates) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.UsageName = UsageName; - this.TemplateType = TemplateType; - this.HasPropertyTemplates = HasPropertyTemplates; - this.type = 3875453745; - } + IfcBurnerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcBurnerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcBurnerTypeEnum = IfcBurnerTypeEnum; + class IfcCableCarrierFittingTypeEnum { } - IFC42.IfcComplexPropertyTemplate = IfcComplexPropertyTemplate; - class IfcCompositeCurve extends IfcBoundedCurve { - constructor(expressID, Segments, SelfIntersect) { - super(expressID); - this.Segments = Segments; - this.SelfIntersect = SelfIntersect; - this.type = 3732776249; - } + IfcCableCarrierFittingTypeEnum.BEND = { type: 3, value: "BEND" }; + IfcCableCarrierFittingTypeEnum.CONNECTOR = { type: 3, value: "CONNECTOR" }; + IfcCableCarrierFittingTypeEnum.CROSS = { type: 3, value: "CROSS" }; + IfcCableCarrierFittingTypeEnum.JUNCTION = { type: 3, value: "JUNCTION" }; + IfcCableCarrierFittingTypeEnum.TEE = { type: 3, value: "TEE" }; + IfcCableCarrierFittingTypeEnum.TRANSITION = { type: 3, value: "TRANSITION" }; + IfcCableCarrierFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCableCarrierFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcCableCarrierFittingTypeEnum = IfcCableCarrierFittingTypeEnum; + class IfcCableCarrierSegmentTypeEnum { } - IFC42.IfcCompositeCurve = IfcCompositeCurve; - class IfcCompositeCurveOnSurface extends IfcCompositeCurve { - constructor(expressID, Segments, SelfIntersect) { - super(expressID, Segments, SelfIntersect); - this.Segments = Segments; - this.SelfIntersect = SelfIntersect; - this.type = 15328376; - } + IfcCableCarrierSegmentTypeEnum.CABLEBRACKET = { type: 3, value: "CABLEBRACKET" }; + IfcCableCarrierSegmentTypeEnum.CABLELADDERSEGMENT = { type: 3, value: "CABLELADDERSEGMENT" }; + IfcCableCarrierSegmentTypeEnum.CABLETRAYSEGMENT = { type: 3, value: "CABLETRAYSEGMENT" }; + IfcCableCarrierSegmentTypeEnum.CABLETRUNKINGSEGMENT = { type: 3, value: "CABLETRUNKINGSEGMENT" }; + IfcCableCarrierSegmentTypeEnum.CATENARYWIRE = { type: 3, value: "CATENARYWIRE" }; + IfcCableCarrierSegmentTypeEnum.CONDUITSEGMENT = { type: 3, value: "CONDUITSEGMENT" }; + IfcCableCarrierSegmentTypeEnum.DROPPER = { type: 3, value: "DROPPER" }; + IfcCableCarrierSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCableCarrierSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcCableCarrierSegmentTypeEnum = IfcCableCarrierSegmentTypeEnum; + class IfcCableFittingTypeEnum { } - IFC42.IfcCompositeCurveOnSurface = IfcCompositeCurveOnSurface; - class IfcConic extends IfcCurve { - constructor(expressID, Position) { - super(expressID); - this.Position = Position; - this.type = 2510884976; - } + IfcCableFittingTypeEnum.CONNECTOR = { type: 3, value: "CONNECTOR" }; + IfcCableFittingTypeEnum.ENTRY = { type: 3, value: "ENTRY" }; + IfcCableFittingTypeEnum.EXIT = { type: 3, value: "EXIT" }; + IfcCableFittingTypeEnum.FANOUT = { type: 3, value: "FANOUT" }; + IfcCableFittingTypeEnum.JUNCTION = { type: 3, value: "JUNCTION" }; + IfcCableFittingTypeEnum.TRANSITION = { type: 3, value: "TRANSITION" }; + IfcCableFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCableFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcCableFittingTypeEnum = IfcCableFittingTypeEnum; + class IfcCableSegmentTypeEnum { } - IFC42.IfcConic = IfcConic; - class IfcConstructionEquipmentResourceType extends IfcConstructionResourceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.ResourceType = ResourceType; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.PredefinedType = PredefinedType; - this.type = 2185764099; - } + IfcCableSegmentTypeEnum.BUSBARSEGMENT = { type: 3, value: "BUSBARSEGMENT" }; + IfcCableSegmentTypeEnum.CABLESEGMENT = { type: 3, value: "CABLESEGMENT" }; + IfcCableSegmentTypeEnum.CONDUCTORSEGMENT = { type: 3, value: "CONDUCTORSEGMENT" }; + IfcCableSegmentTypeEnum.CONTACTWIRESEGMENT = { type: 3, value: "CONTACTWIRESEGMENT" }; + IfcCableSegmentTypeEnum.CORESEGMENT = { type: 3, value: "CORESEGMENT" }; + IfcCableSegmentTypeEnum.FIBERSEGMENT = { type: 3, value: "FIBERSEGMENT" }; + IfcCableSegmentTypeEnum.FIBERTUBE = { type: 3, value: "FIBERTUBE" }; + IfcCableSegmentTypeEnum.OPTICALCABLESEGMENT = { type: 3, value: "OPTICALCABLESEGMENT" }; + IfcCableSegmentTypeEnum.STITCHWIRE = { type: 3, value: "STITCHWIRE" }; + IfcCableSegmentTypeEnum.WIREPAIRSEGMENT = { type: 3, value: "WIREPAIRSEGMENT" }; + IfcCableSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCableSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcCableSegmentTypeEnum = IfcCableSegmentTypeEnum; + class IfcCaissonFoundationTypeEnum { } - IFC42.IfcConstructionEquipmentResourceType = IfcConstructionEquipmentResourceType; - class IfcConstructionMaterialResourceType extends IfcConstructionResourceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.ResourceType = ResourceType; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.PredefinedType = PredefinedType; - this.type = 4105962743; - } + IfcCaissonFoundationTypeEnum.CAISSON = { type: 3, value: "CAISSON" }; + IfcCaissonFoundationTypeEnum.WELL = { type: 3, value: "WELL" }; + IfcCaissonFoundationTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCaissonFoundationTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcCaissonFoundationTypeEnum = IfcCaissonFoundationTypeEnum; + class IfcChangeActionEnum { } - IFC42.IfcConstructionMaterialResourceType = IfcConstructionMaterialResourceType; - class IfcConstructionProductResourceType extends IfcConstructionResourceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.ResourceType = ResourceType; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.PredefinedType = PredefinedType; - this.type = 1525564444; - } + IfcChangeActionEnum.ADDED = { type: 3, value: "ADDED" }; + IfcChangeActionEnum.DELETED = { type: 3, value: "DELETED" }; + IfcChangeActionEnum.MODIFIED = { type: 3, value: "MODIFIED" }; + IfcChangeActionEnum.NOCHANGE = { type: 3, value: "NOCHANGE" }; + IfcChangeActionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcChangeActionEnum = IfcChangeActionEnum; + class IfcChillerTypeEnum { } - IFC42.IfcConstructionProductResourceType = IfcConstructionProductResourceType; - class IfcConstructionResource extends IfcResource { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.Usage = Usage; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.type = 2559216714; - } + IfcChillerTypeEnum.AIRCOOLED = { type: 3, value: "AIRCOOLED" }; + IfcChillerTypeEnum.HEATRECOVERY = { type: 3, value: "HEATRECOVERY" }; + IfcChillerTypeEnum.WATERCOOLED = { type: 3, value: "WATERCOOLED" }; + IfcChillerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcChillerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcChillerTypeEnum = IfcChillerTypeEnum; + class IfcChimneyTypeEnum { } - IFC42.IfcConstructionResource = IfcConstructionResource; - class IfcControl extends IfcObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.type = 3293443760; - } + IfcChimneyTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcChimneyTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcChimneyTypeEnum = IfcChimneyTypeEnum; + class IfcCoilTypeEnum { } - IFC42.IfcControl = IfcControl; - class IfcCostItem extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, CostValues, CostQuantities) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.PredefinedType = PredefinedType; - this.CostValues = CostValues; - this.CostQuantities = CostQuantities; - this.type = 3895139033; - } + IfcCoilTypeEnum.DXCOOLINGCOIL = { type: 3, value: "DXCOOLINGCOIL" }; + IfcCoilTypeEnum.ELECTRICHEATINGCOIL = { type: 3, value: "ELECTRICHEATINGCOIL" }; + IfcCoilTypeEnum.GASHEATINGCOIL = { type: 3, value: "GASHEATINGCOIL" }; + IfcCoilTypeEnum.HYDRONICCOIL = { type: 3, value: "HYDRONICCOIL" }; + IfcCoilTypeEnum.STEAMHEATINGCOIL = { type: 3, value: "STEAMHEATINGCOIL" }; + IfcCoilTypeEnum.WATERCOOLINGCOIL = { type: 3, value: "WATERCOOLINGCOIL" }; + IfcCoilTypeEnum.WATERHEATINGCOIL = { type: 3, value: "WATERHEATINGCOIL" }; + IfcCoilTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCoilTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcCoilTypeEnum = IfcCoilTypeEnum; + class IfcColumnTypeEnum { } - IFC42.IfcCostItem = IfcCostItem; - class IfcCostSchedule extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, SubmittedOn, UpdateDate) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.PredefinedType = PredefinedType; - this.Status = Status; - this.SubmittedOn = SubmittedOn; - this.UpdateDate = UpdateDate; - this.type = 1419761937; - } + IfcColumnTypeEnum.COLUMN = { type: 3, value: "COLUMN" }; + IfcColumnTypeEnum.PIERSTEM = { type: 3, value: "PIERSTEM" }; + IfcColumnTypeEnum.PIERSTEM_SEGMENT = { type: 3, value: "PIERSTEM_SEGMENT" }; + IfcColumnTypeEnum.PILASTER = { type: 3, value: "PILASTER" }; + IfcColumnTypeEnum.STANDCOLUMN = { type: 3, value: "STANDCOLUMN" }; + IfcColumnTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcColumnTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcColumnTypeEnum = IfcColumnTypeEnum; + class IfcCommunicationsApplianceTypeEnum { } - IFC42.IfcCostSchedule = IfcCostSchedule; - class IfcCoveringType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1916426348; - } + IfcCommunicationsApplianceTypeEnum.ANTENNA = { type: 3, value: "ANTENNA" }; + IfcCommunicationsApplianceTypeEnum.AUTOMATON = { type: 3, value: "AUTOMATON" }; + IfcCommunicationsApplianceTypeEnum.COMPUTER = { type: 3, value: "COMPUTER" }; + IfcCommunicationsApplianceTypeEnum.FAX = { type: 3, value: "FAX" }; + IfcCommunicationsApplianceTypeEnum.GATEWAY = { type: 3, value: "GATEWAY" }; + IfcCommunicationsApplianceTypeEnum.INTELLIGENTPERIPHERAL = { type: 3, value: "INTELLIGENTPERIPHERAL" }; + IfcCommunicationsApplianceTypeEnum.IPNETWORKEQUIPMENT = { type: 3, value: "IPNETWORKEQUIPMENT" }; + IfcCommunicationsApplianceTypeEnum.LINESIDEELECTRONICUNIT = { type: 3, value: "LINESIDEELECTRONICUNIT" }; + IfcCommunicationsApplianceTypeEnum.MODEM = { type: 3, value: "MODEM" }; + IfcCommunicationsApplianceTypeEnum.NETWORKAPPLIANCE = { type: 3, value: "NETWORKAPPLIANCE" }; + IfcCommunicationsApplianceTypeEnum.NETWORKBRIDGE = { type: 3, value: "NETWORKBRIDGE" }; + IfcCommunicationsApplianceTypeEnum.NETWORKHUB = { type: 3, value: "NETWORKHUB" }; + IfcCommunicationsApplianceTypeEnum.OPTICALLINETERMINAL = { type: 3, value: "OPTICALLINETERMINAL" }; + IfcCommunicationsApplianceTypeEnum.OPTICALNETWORKUNIT = { type: 3, value: "OPTICALNETWORKUNIT" }; + IfcCommunicationsApplianceTypeEnum.PRINTER = { type: 3, value: "PRINTER" }; + IfcCommunicationsApplianceTypeEnum.RADIOBLOCKCENTER = { type: 3, value: "RADIOBLOCKCENTER" }; + IfcCommunicationsApplianceTypeEnum.REPEATER = { type: 3, value: "REPEATER" }; + IfcCommunicationsApplianceTypeEnum.ROUTER = { type: 3, value: "ROUTER" }; + IfcCommunicationsApplianceTypeEnum.SCANNER = { type: 3, value: "SCANNER" }; + IfcCommunicationsApplianceTypeEnum.TELECOMMAND = { type: 3, value: "TELECOMMAND" }; + IfcCommunicationsApplianceTypeEnum.TELEPHONYEXCHANGE = { type: 3, value: "TELEPHONYEXCHANGE" }; + IfcCommunicationsApplianceTypeEnum.TRANSITIONCOMPONENT = { type: 3, value: "TRANSITIONCOMPONENT" }; + IfcCommunicationsApplianceTypeEnum.TRANSPONDER = { type: 3, value: "TRANSPONDER" }; + IfcCommunicationsApplianceTypeEnum.TRANSPORTEQUIPMENT = { type: 3, value: "TRANSPORTEQUIPMENT" }; + IfcCommunicationsApplianceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCommunicationsApplianceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcCommunicationsApplianceTypeEnum = IfcCommunicationsApplianceTypeEnum; + class IfcComplexPropertyTemplateTypeEnum { } - IFC42.IfcCoveringType = IfcCoveringType; - class IfcCrewResource extends IfcConstructionResource { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.Usage = Usage; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.PredefinedType = PredefinedType; - this.type = 3295246426; - } + IfcComplexPropertyTemplateTypeEnum.P_COMPLEX = { type: 3, value: "P_COMPLEX" }; + IfcComplexPropertyTemplateTypeEnum.Q_COMPLEX = { type: 3, value: "Q_COMPLEX" }; + IFC4X32.IfcComplexPropertyTemplateTypeEnum = IfcComplexPropertyTemplateTypeEnum; + class IfcCompressorTypeEnum { } - IFC42.IfcCrewResource = IfcCrewResource; - class IfcCurtainWallType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1457835157; - } + IfcCompressorTypeEnum.BOOSTER = { type: 3, value: "BOOSTER" }; + IfcCompressorTypeEnum.DYNAMIC = { type: 3, value: "DYNAMIC" }; + IfcCompressorTypeEnum.HERMETIC = { type: 3, value: "HERMETIC" }; + IfcCompressorTypeEnum.OPENTYPE = { type: 3, value: "OPENTYPE" }; + IfcCompressorTypeEnum.RECIPROCATING = { type: 3, value: "RECIPROCATING" }; + IfcCompressorTypeEnum.ROLLINGPISTON = { type: 3, value: "ROLLINGPISTON" }; + IfcCompressorTypeEnum.ROTARY = { type: 3, value: "ROTARY" }; + IfcCompressorTypeEnum.ROTARYVANE = { type: 3, value: "ROTARYVANE" }; + IfcCompressorTypeEnum.SCROLL = { type: 3, value: "SCROLL" }; + IfcCompressorTypeEnum.SEMIHERMETIC = { type: 3, value: "SEMIHERMETIC" }; + IfcCompressorTypeEnum.SINGLESCREW = { type: 3, value: "SINGLESCREW" }; + IfcCompressorTypeEnum.SINGLESTAGE = { type: 3, value: "SINGLESTAGE" }; + IfcCompressorTypeEnum.TROCHOIDAL = { type: 3, value: "TROCHOIDAL" }; + IfcCompressorTypeEnum.TWINSCREW = { type: 3, value: "TWINSCREW" }; + IfcCompressorTypeEnum.WELDEDSHELLHERMETIC = { type: 3, value: "WELDEDSHELLHERMETIC" }; + IfcCompressorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCompressorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcCompressorTypeEnum = IfcCompressorTypeEnum; + class IfcCondenserTypeEnum { } - IFC42.IfcCurtainWallType = IfcCurtainWallType; - class IfcCylindricalSurface extends IfcElementarySurface { - constructor(expressID, Position, Radius) { - super(expressID, Position); - this.Position = Position; - this.Radius = Radius; - this.type = 1213902940; - } + IfcCondenserTypeEnum.AIRCOOLED = { type: 3, value: "AIRCOOLED" }; + IfcCondenserTypeEnum.EVAPORATIVECOOLED = { type: 3, value: "EVAPORATIVECOOLED" }; + IfcCondenserTypeEnum.WATERCOOLED = { type: 3, value: "WATERCOOLED" }; + IfcCondenserTypeEnum.WATERCOOLEDBRAZEDPLATE = { type: 3, value: "WATERCOOLEDBRAZEDPLATE" }; + IfcCondenserTypeEnum.WATERCOOLEDSHELLCOIL = { type: 3, value: "WATERCOOLEDSHELLCOIL" }; + IfcCondenserTypeEnum.WATERCOOLEDSHELLTUBE = { type: 3, value: "WATERCOOLEDSHELLTUBE" }; + IfcCondenserTypeEnum.WATERCOOLEDTUBEINTUBE = { type: 3, value: "WATERCOOLEDTUBEINTUBE" }; + IfcCondenserTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCondenserTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcCondenserTypeEnum = IfcCondenserTypeEnum; + class IfcConnectionTypeEnum { + } + IfcConnectionTypeEnum.ATEND = { type: 3, value: "ATEND" }; + IfcConnectionTypeEnum.ATPATH = { type: 3, value: "ATPATH" }; + IfcConnectionTypeEnum.ATSTART = { type: 3, value: "ATSTART" }; + IfcConnectionTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcConnectionTypeEnum = IfcConnectionTypeEnum; + class IfcConstraintEnum { } - IFC42.IfcCylindricalSurface = IfcCylindricalSurface; - class IfcDistributionElementType extends IfcElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 3256556792; - } + IfcConstraintEnum.ADVISORY = { type: 3, value: "ADVISORY" }; + IfcConstraintEnum.HARD = { type: 3, value: "HARD" }; + IfcConstraintEnum.SOFT = { type: 3, value: "SOFT" }; + IfcConstraintEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcConstraintEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcConstraintEnum = IfcConstraintEnum; + class IfcConstructionEquipmentResourceTypeEnum { } - IFC42.IfcDistributionElementType = IfcDistributionElementType; - class IfcDistributionFlowElementType extends IfcDistributionElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 3849074793; - } + IfcConstructionEquipmentResourceTypeEnum.DEMOLISHING = { type: 3, value: "DEMOLISHING" }; + IfcConstructionEquipmentResourceTypeEnum.EARTHMOVING = { type: 3, value: "EARTHMOVING" }; + IfcConstructionEquipmentResourceTypeEnum.ERECTING = { type: 3, value: "ERECTING" }; + IfcConstructionEquipmentResourceTypeEnum.HEATING = { type: 3, value: "HEATING" }; + IfcConstructionEquipmentResourceTypeEnum.LIGHTING = { type: 3, value: "LIGHTING" }; + IfcConstructionEquipmentResourceTypeEnum.PAVING = { type: 3, value: "PAVING" }; + IfcConstructionEquipmentResourceTypeEnum.PUMPING = { type: 3, value: "PUMPING" }; + IfcConstructionEquipmentResourceTypeEnum.TRANSPORTING = { type: 3, value: "TRANSPORTING" }; + IfcConstructionEquipmentResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcConstructionEquipmentResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcConstructionEquipmentResourceTypeEnum = IfcConstructionEquipmentResourceTypeEnum; + class IfcConstructionMaterialResourceTypeEnum { } - IFC42.IfcDistributionFlowElementType = IfcDistributionFlowElementType; - class IfcDoorLiningProperties extends IfcPreDefinedPropertySet { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, LiningDepth, LiningThickness, ThresholdDepth, ThresholdThickness, TransomThickness, TransomOffset, LiningOffset, ThresholdOffset, CasingThickness, CasingDepth, ShapeAspectStyle, LiningToPanelOffsetX, LiningToPanelOffsetY) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.LiningDepth = LiningDepth; - this.LiningThickness = LiningThickness; - this.ThresholdDepth = ThresholdDepth; - this.ThresholdThickness = ThresholdThickness; - this.TransomThickness = TransomThickness; - this.TransomOffset = TransomOffset; - this.LiningOffset = LiningOffset; - this.ThresholdOffset = ThresholdOffset; - this.CasingThickness = CasingThickness; - this.CasingDepth = CasingDepth; - this.ShapeAspectStyle = ShapeAspectStyle; - this.LiningToPanelOffsetX = LiningToPanelOffsetX; - this.LiningToPanelOffsetY = LiningToPanelOffsetY; - this.type = 2963535650; - } + IfcConstructionMaterialResourceTypeEnum.AGGREGATES = { type: 3, value: "AGGREGATES" }; + IfcConstructionMaterialResourceTypeEnum.CONCRETE = { type: 3, value: "CONCRETE" }; + IfcConstructionMaterialResourceTypeEnum.DRYWALL = { type: 3, value: "DRYWALL" }; + IfcConstructionMaterialResourceTypeEnum.FUEL = { type: 3, value: "FUEL" }; + IfcConstructionMaterialResourceTypeEnum.GYPSUM = { type: 3, value: "GYPSUM" }; + IfcConstructionMaterialResourceTypeEnum.MASONRY = { type: 3, value: "MASONRY" }; + IfcConstructionMaterialResourceTypeEnum.METAL = { type: 3, value: "METAL" }; + IfcConstructionMaterialResourceTypeEnum.PLASTIC = { type: 3, value: "PLASTIC" }; + IfcConstructionMaterialResourceTypeEnum.WOOD = { type: 3, value: "WOOD" }; + IfcConstructionMaterialResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcConstructionMaterialResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcConstructionMaterialResourceTypeEnum = IfcConstructionMaterialResourceTypeEnum; + class IfcConstructionProductResourceTypeEnum { } - IFC42.IfcDoorLiningProperties = IfcDoorLiningProperties; - class IfcDoorPanelProperties extends IfcPreDefinedPropertySet { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, PanelDepth, PanelOperation, PanelWidth, PanelPosition, ShapeAspectStyle) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.PanelDepth = PanelDepth; - this.PanelOperation = PanelOperation; - this.PanelWidth = PanelWidth; - this.PanelPosition = PanelPosition; - this.ShapeAspectStyle = ShapeAspectStyle; - this.type = 1714330368; - } + IfcConstructionProductResourceTypeEnum.ASSEMBLY = { type: 3, value: "ASSEMBLY" }; + IfcConstructionProductResourceTypeEnum.FORMWORK = { type: 3, value: "FORMWORK" }; + IfcConstructionProductResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcConstructionProductResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcConstructionProductResourceTypeEnum = IfcConstructionProductResourceTypeEnum; + class IfcControllerTypeEnum { } - IFC42.IfcDoorPanelProperties = IfcDoorPanelProperties; - class IfcDoorType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, OperationType, ParameterTakesPrecedence, UserDefinedOperationType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.OperationType = OperationType; - this.ParameterTakesPrecedence = ParameterTakesPrecedence; - this.UserDefinedOperationType = UserDefinedOperationType; - this.type = 2323601079; - } + IfcControllerTypeEnum.FLOATING = { type: 3, value: "FLOATING" }; + IfcControllerTypeEnum.MULTIPOSITION = { type: 3, value: "MULTIPOSITION" }; + IfcControllerTypeEnum.PROGRAMMABLE = { type: 3, value: "PROGRAMMABLE" }; + IfcControllerTypeEnum.PROPORTIONAL = { type: 3, value: "PROPORTIONAL" }; + IfcControllerTypeEnum.TWOPOSITION = { type: 3, value: "TWOPOSITION" }; + IfcControllerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcControllerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcControllerTypeEnum = IfcControllerTypeEnum; + class IfcConveyorSegmentTypeEnum { } - IFC42.IfcDoorType = IfcDoorType; - class IfcDraughtingPreDefinedColour extends IfcPreDefinedColour { - constructor(expressID, Name) { - super(expressID, Name); - this.Name = Name; - this.type = 445594917; - } + IfcConveyorSegmentTypeEnum.BELTCONVEYOR = { type: 3, value: "BELTCONVEYOR" }; + IfcConveyorSegmentTypeEnum.BUCKETCONVEYOR = { type: 3, value: "BUCKETCONVEYOR" }; + IfcConveyorSegmentTypeEnum.CHUTECONVEYOR = { type: 3, value: "CHUTECONVEYOR" }; + IfcConveyorSegmentTypeEnum.SCREWCONVEYOR = { type: 3, value: "SCREWCONVEYOR" }; + IfcConveyorSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcConveyorSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcConveyorSegmentTypeEnum = IfcConveyorSegmentTypeEnum; + class IfcCooledBeamTypeEnum { } - IFC42.IfcDraughtingPreDefinedColour = IfcDraughtingPreDefinedColour; - class IfcDraughtingPreDefinedCurveFont extends IfcPreDefinedCurveFont { - constructor(expressID, Name) { - super(expressID, Name); - this.Name = Name; - this.type = 4006246654; - } + IfcCooledBeamTypeEnum.ACTIVE = { type: 3, value: "ACTIVE" }; + IfcCooledBeamTypeEnum.PASSIVE = { type: 3, value: "PASSIVE" }; + IfcCooledBeamTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCooledBeamTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcCooledBeamTypeEnum = IfcCooledBeamTypeEnum; + class IfcCoolingTowerTypeEnum { } - IFC42.IfcDraughtingPreDefinedCurveFont = IfcDraughtingPreDefinedCurveFont; - class IfcElement extends IfcProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1758889154; - } + IfcCoolingTowerTypeEnum.MECHANICALFORCEDDRAFT = { type: 3, value: "MECHANICALFORCEDDRAFT" }; + IfcCoolingTowerTypeEnum.MECHANICALINDUCEDDRAFT = { type: 3, value: "MECHANICALINDUCEDDRAFT" }; + IfcCoolingTowerTypeEnum.NATURALDRAFT = { type: 3, value: "NATURALDRAFT" }; + IfcCoolingTowerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCoolingTowerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcCoolingTowerTypeEnum = IfcCoolingTowerTypeEnum; + class IfcCostItemTypeEnum { } - IFC42.IfcElement = IfcElement; - class IfcElementAssembly extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, AssemblyPlace, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.AssemblyPlace = AssemblyPlace; - this.PredefinedType = PredefinedType; - this.type = 4123344466; - } + IfcCostItemTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCostItemTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcCostItemTypeEnum = IfcCostItemTypeEnum; + class IfcCostScheduleTypeEnum { } - IFC42.IfcElementAssembly = IfcElementAssembly; - class IfcElementAssemblyType extends IfcElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2397081782; - } + IfcCostScheduleTypeEnum.BUDGET = { type: 3, value: "BUDGET" }; + IfcCostScheduleTypeEnum.COSTPLAN = { type: 3, value: "COSTPLAN" }; + IfcCostScheduleTypeEnum.ESTIMATE = { type: 3, value: "ESTIMATE" }; + IfcCostScheduleTypeEnum.PRICEDBILLOFQUANTITIES = { type: 3, value: "PRICEDBILLOFQUANTITIES" }; + IfcCostScheduleTypeEnum.SCHEDULEOFRATES = { type: 3, value: "SCHEDULEOFRATES" }; + IfcCostScheduleTypeEnum.TENDER = { type: 3, value: "TENDER" }; + IfcCostScheduleTypeEnum.UNPRICEDBILLOFQUANTITIES = { type: 3, value: "UNPRICEDBILLOFQUANTITIES" }; + IfcCostScheduleTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCostScheduleTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcCostScheduleTypeEnum = IfcCostScheduleTypeEnum; + class IfcCourseTypeEnum { } - IFC42.IfcElementAssemblyType = IfcElementAssemblyType; - class IfcElementComponent extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1623761950; - } + IfcCourseTypeEnum.ARMOUR = { type: 3, value: "ARMOUR" }; + IfcCourseTypeEnum.BALLASTBED = { type: 3, value: "BALLASTBED" }; + IfcCourseTypeEnum.CORE = { type: 3, value: "CORE" }; + IfcCourseTypeEnum.FILTER = { type: 3, value: "FILTER" }; + IfcCourseTypeEnum.PAVEMENT = { type: 3, value: "PAVEMENT" }; + IfcCourseTypeEnum.PROTECTION = { type: 3, value: "PROTECTION" }; + IfcCourseTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCourseTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcCourseTypeEnum = IfcCourseTypeEnum; + class IfcCoveringTypeEnum { } - IFC42.IfcElementComponent = IfcElementComponent; - class IfcElementComponentType extends IfcElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 2590856083; - } + IfcCoveringTypeEnum.CEILING = { type: 3, value: "CEILING" }; + IfcCoveringTypeEnum.CLADDING = { type: 3, value: "CLADDING" }; + IfcCoveringTypeEnum.COPING = { type: 3, value: "COPING" }; + IfcCoveringTypeEnum.FLOORING = { type: 3, value: "FLOORING" }; + IfcCoveringTypeEnum.INSULATION = { type: 3, value: "INSULATION" }; + IfcCoveringTypeEnum.MEMBRANE = { type: 3, value: "MEMBRANE" }; + IfcCoveringTypeEnum.MOLDING = { type: 3, value: "MOLDING" }; + IfcCoveringTypeEnum.ROOFING = { type: 3, value: "ROOFING" }; + IfcCoveringTypeEnum.SKIRTINGBOARD = { type: 3, value: "SKIRTINGBOARD" }; + IfcCoveringTypeEnum.SLEEVING = { type: 3, value: "SLEEVING" }; + IfcCoveringTypeEnum.TOPPING = { type: 3, value: "TOPPING" }; + IfcCoveringTypeEnum.WRAPPING = { type: 3, value: "WRAPPING" }; + IfcCoveringTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCoveringTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcCoveringTypeEnum = IfcCoveringTypeEnum; + class IfcCrewResourceTypeEnum { } - IFC42.IfcElementComponentType = IfcElementComponentType; - class IfcEllipse extends IfcConic { - constructor(expressID, Position, SemiAxis1, SemiAxis2) { - super(expressID, Position); - this.Position = Position; - this.SemiAxis1 = SemiAxis1; - this.SemiAxis2 = SemiAxis2; - this.type = 1704287377; - } + IfcCrewResourceTypeEnum.OFFICE = { type: 3, value: "OFFICE" }; + IfcCrewResourceTypeEnum.SITE = { type: 3, value: "SITE" }; + IfcCrewResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCrewResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcCrewResourceTypeEnum = IfcCrewResourceTypeEnum; + class IfcCurtainWallTypeEnum { } - IFC42.IfcEllipse = IfcEllipse; - class IfcEnergyConversionDeviceType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 2107101300; - } + IfcCurtainWallTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCurtainWallTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcCurtainWallTypeEnum = IfcCurtainWallTypeEnum; + class IfcCurveInterpolationEnum { } - IFC42.IfcEnergyConversionDeviceType = IfcEnergyConversionDeviceType; - class IfcEngineType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 132023988; - } + IfcCurveInterpolationEnum.LINEAR = { type: 3, value: "LINEAR" }; + IfcCurveInterpolationEnum.LOG_LINEAR = { type: 3, value: "LOG_LINEAR" }; + IfcCurveInterpolationEnum.LOG_LOG = { type: 3, value: "LOG_LOG" }; + IfcCurveInterpolationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcCurveInterpolationEnum = IfcCurveInterpolationEnum; + class IfcDamperTypeEnum { } - IFC42.IfcEngineType = IfcEngineType; - class IfcEvaporativeCoolerType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3174744832; - } + IfcDamperTypeEnum.BACKDRAFTDAMPER = { type: 3, value: "BACKDRAFTDAMPER" }; + IfcDamperTypeEnum.BALANCINGDAMPER = { type: 3, value: "BALANCINGDAMPER" }; + IfcDamperTypeEnum.BLASTDAMPER = { type: 3, value: "BLASTDAMPER" }; + IfcDamperTypeEnum.CONTROLDAMPER = { type: 3, value: "CONTROLDAMPER" }; + IfcDamperTypeEnum.FIREDAMPER = { type: 3, value: "FIREDAMPER" }; + IfcDamperTypeEnum.FIRESMOKEDAMPER = { type: 3, value: "FIRESMOKEDAMPER" }; + IfcDamperTypeEnum.FUMEHOODEXHAUST = { type: 3, value: "FUMEHOODEXHAUST" }; + IfcDamperTypeEnum.GRAVITYDAMPER = { type: 3, value: "GRAVITYDAMPER" }; + IfcDamperTypeEnum.GRAVITYRELIEFDAMPER = { type: 3, value: "GRAVITYRELIEFDAMPER" }; + IfcDamperTypeEnum.RELIEFDAMPER = { type: 3, value: "RELIEFDAMPER" }; + IfcDamperTypeEnum.SMOKEDAMPER = { type: 3, value: "SMOKEDAMPER" }; + IfcDamperTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDamperTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcDamperTypeEnum = IfcDamperTypeEnum; + class IfcDataOriginEnum { } - IFC42.IfcEvaporativeCoolerType = IfcEvaporativeCoolerType; - class IfcEvaporatorType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3390157468; - } + IfcDataOriginEnum.MEASURED = { type: 3, value: "MEASURED" }; + IfcDataOriginEnum.PREDICTED = { type: 3, value: "PREDICTED" }; + IfcDataOriginEnum.SIMULATED = { type: 3, value: "SIMULATED" }; + IfcDataOriginEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDataOriginEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcDataOriginEnum = IfcDataOriginEnum; + class IfcDerivedUnitEnum { } - IFC42.IfcEvaporatorType = IfcEvaporatorType; - class IfcEvent extends IfcProcess { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, PredefinedType, EventTriggerType, UserDefinedEventTriggerType, EventOccurenceTime) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.PredefinedType = PredefinedType; - this.EventTriggerType = EventTriggerType; - this.UserDefinedEventTriggerType = UserDefinedEventTriggerType; - this.EventOccurenceTime = EventOccurenceTime; - this.type = 4148101412; - } + IfcDerivedUnitEnum.ACCELERATIONUNIT = { type: 3, value: "ACCELERATIONUNIT" }; + IfcDerivedUnitEnum.ANGULARVELOCITYUNIT = { type: 3, value: "ANGULARVELOCITYUNIT" }; + IfcDerivedUnitEnum.AREADENSITYUNIT = { type: 3, value: "AREADENSITYUNIT" }; + IfcDerivedUnitEnum.COMPOUNDPLANEANGLEUNIT = { type: 3, value: "COMPOUNDPLANEANGLEUNIT" }; + IfcDerivedUnitEnum.CURVATUREUNIT = { type: 3, value: "CURVATUREUNIT" }; + IfcDerivedUnitEnum.DYNAMICVISCOSITYUNIT = { type: 3, value: "DYNAMICVISCOSITYUNIT" }; + IfcDerivedUnitEnum.HEATFLUXDENSITYUNIT = { type: 3, value: "HEATFLUXDENSITYUNIT" }; + IfcDerivedUnitEnum.HEATINGVALUEUNIT = { type: 3, value: "HEATINGVALUEUNIT" }; + IfcDerivedUnitEnum.INTEGERCOUNTRATEUNIT = { type: 3, value: "INTEGERCOUNTRATEUNIT" }; + IfcDerivedUnitEnum.IONCONCENTRATIONUNIT = { type: 3, value: "IONCONCENTRATIONUNIT" }; + IfcDerivedUnitEnum.ISOTHERMALMOISTURECAPACITYUNIT = { type: 3, value: "ISOTHERMALMOISTURECAPACITYUNIT" }; + IfcDerivedUnitEnum.KINEMATICVISCOSITYUNIT = { type: 3, value: "KINEMATICVISCOSITYUNIT" }; + IfcDerivedUnitEnum.LINEARFORCEUNIT = { type: 3, value: "LINEARFORCEUNIT" }; + IfcDerivedUnitEnum.LINEARMOMENTUNIT = { type: 3, value: "LINEARMOMENTUNIT" }; + IfcDerivedUnitEnum.LINEARSTIFFNESSUNIT = { type: 3, value: "LINEARSTIFFNESSUNIT" }; + IfcDerivedUnitEnum.LINEARVELOCITYUNIT = { type: 3, value: "LINEARVELOCITYUNIT" }; + IfcDerivedUnitEnum.LUMINOUSINTENSITYDISTRIBUTIONUNIT = { type: 3, value: "LUMINOUSINTENSITYDISTRIBUTIONUNIT" }; + IfcDerivedUnitEnum.MASSDENSITYUNIT = { type: 3, value: "MASSDENSITYUNIT" }; + IfcDerivedUnitEnum.MASSFLOWRATEUNIT = { type: 3, value: "MASSFLOWRATEUNIT" }; + IfcDerivedUnitEnum.MASSPERLENGTHUNIT = { type: 3, value: "MASSPERLENGTHUNIT" }; + IfcDerivedUnitEnum.MODULUSOFELASTICITYUNIT = { type: 3, value: "MODULUSOFELASTICITYUNIT" }; + IfcDerivedUnitEnum.MODULUSOFLINEARSUBGRADEREACTIONUNIT = { type: 3, value: "MODULUSOFLINEARSUBGRADEREACTIONUNIT" }; + IfcDerivedUnitEnum.MODULUSOFROTATIONALSUBGRADEREACTIONUNIT = { type: 3, value: "MODULUSOFROTATIONALSUBGRADEREACTIONUNIT" }; + IfcDerivedUnitEnum.MODULUSOFSUBGRADEREACTIONUNIT = { type: 3, value: "MODULUSOFSUBGRADEREACTIONUNIT" }; + IfcDerivedUnitEnum.MOISTUREDIFFUSIVITYUNIT = { type: 3, value: "MOISTUREDIFFUSIVITYUNIT" }; + IfcDerivedUnitEnum.MOLECULARWEIGHTUNIT = { type: 3, value: "MOLECULARWEIGHTUNIT" }; + IfcDerivedUnitEnum.MOMENTOFINERTIAUNIT = { type: 3, value: "MOMENTOFINERTIAUNIT" }; + IfcDerivedUnitEnum.PHUNIT = { type: 3, value: "PHUNIT" }; + IfcDerivedUnitEnum.PLANARFORCEUNIT = { type: 3, value: "PLANARFORCEUNIT" }; + IfcDerivedUnitEnum.ROTATIONALFREQUENCYUNIT = { type: 3, value: "ROTATIONALFREQUENCYUNIT" }; + IfcDerivedUnitEnum.ROTATIONALMASSUNIT = { type: 3, value: "ROTATIONALMASSUNIT" }; + IfcDerivedUnitEnum.ROTATIONALSTIFFNESSUNIT = { type: 3, value: "ROTATIONALSTIFFNESSUNIT" }; + IfcDerivedUnitEnum.SECTIONAREAINTEGRALUNIT = { type: 3, value: "SECTIONAREAINTEGRALUNIT" }; + IfcDerivedUnitEnum.SECTIONMODULUSUNIT = { type: 3, value: "SECTIONMODULUSUNIT" }; + IfcDerivedUnitEnum.SHEARMODULUSUNIT = { type: 3, value: "SHEARMODULUSUNIT" }; + IfcDerivedUnitEnum.SOUNDPOWERLEVELUNIT = { type: 3, value: "SOUNDPOWERLEVELUNIT" }; + IfcDerivedUnitEnum.SOUNDPOWERUNIT = { type: 3, value: "SOUNDPOWERUNIT" }; + IfcDerivedUnitEnum.SOUNDPRESSURELEVELUNIT = { type: 3, value: "SOUNDPRESSURELEVELUNIT" }; + IfcDerivedUnitEnum.SOUNDPRESSUREUNIT = { type: 3, value: "SOUNDPRESSUREUNIT" }; + IfcDerivedUnitEnum.SPECIFICHEATCAPACITYUNIT = { type: 3, value: "SPECIFICHEATCAPACITYUNIT" }; + IfcDerivedUnitEnum.TEMPERATUREGRADIENTUNIT = { type: 3, value: "TEMPERATUREGRADIENTUNIT" }; + IfcDerivedUnitEnum.TEMPERATURERATEOFCHANGEUNIT = { type: 3, value: "TEMPERATURERATEOFCHANGEUNIT" }; + IfcDerivedUnitEnum.THERMALADMITTANCEUNIT = { type: 3, value: "THERMALADMITTANCEUNIT" }; + IfcDerivedUnitEnum.THERMALCONDUCTANCEUNIT = { type: 3, value: "THERMALCONDUCTANCEUNIT" }; + IfcDerivedUnitEnum.THERMALEXPANSIONCOEFFICIENTUNIT = { type: 3, value: "THERMALEXPANSIONCOEFFICIENTUNIT" }; + IfcDerivedUnitEnum.THERMALRESISTANCEUNIT = { type: 3, value: "THERMALRESISTANCEUNIT" }; + IfcDerivedUnitEnum.THERMALTRANSMITTANCEUNIT = { type: 3, value: "THERMALTRANSMITTANCEUNIT" }; + IfcDerivedUnitEnum.TORQUEUNIT = { type: 3, value: "TORQUEUNIT" }; + IfcDerivedUnitEnum.VAPORPERMEABILITYUNIT = { type: 3, value: "VAPORPERMEABILITYUNIT" }; + IfcDerivedUnitEnum.VOLUMETRICFLOWRATEUNIT = { type: 3, value: "VOLUMETRICFLOWRATEUNIT" }; + IfcDerivedUnitEnum.WARPINGCONSTANTUNIT = { type: 3, value: "WARPINGCONSTANTUNIT" }; + IfcDerivedUnitEnum.WARPINGMOMENTUNIT = { type: 3, value: "WARPINGMOMENTUNIT" }; + IfcDerivedUnitEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IFC4X32.IfcDerivedUnitEnum = IfcDerivedUnitEnum; + class IfcDirectionSenseEnum { } - IFC42.IfcEvent = IfcEvent; - class IfcExternalSpatialStructureElement extends IfcSpatialElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.type = 2853485674; - } + IfcDirectionSenseEnum.NEGATIVE = { type: 3, value: "NEGATIVE" }; + IfcDirectionSenseEnum.POSITIVE = { type: 3, value: "POSITIVE" }; + IFC4X32.IfcDirectionSenseEnum = IfcDirectionSenseEnum; + class IfcDiscreteAccessoryTypeEnum { } - IFC42.IfcExternalSpatialStructureElement = IfcExternalSpatialStructureElement; - class IfcFacetedBrep extends IfcManifoldSolidBrep { - constructor(expressID, Outer) { - super(expressID, Outer); - this.Outer = Outer; - this.type = 807026263; - } + IfcDiscreteAccessoryTypeEnum.ANCHORPLATE = { type: 3, value: "ANCHORPLATE" }; + IfcDiscreteAccessoryTypeEnum.BIRDPROTECTION = { type: 3, value: "BIRDPROTECTION" }; + IfcDiscreteAccessoryTypeEnum.BRACKET = { type: 3, value: "BRACKET" }; + IfcDiscreteAccessoryTypeEnum.CABLEARRANGER = { type: 3, value: "CABLEARRANGER" }; + IfcDiscreteAccessoryTypeEnum.ELASTIC_CUSHION = { type: 3, value: "ELASTIC_CUSHION" }; + IfcDiscreteAccessoryTypeEnum.EXPANSION_JOINT_DEVICE = { type: 3, value: "EXPANSION_JOINT_DEVICE" }; + IfcDiscreteAccessoryTypeEnum.FILLER = { type: 3, value: "FILLER" }; + IfcDiscreteAccessoryTypeEnum.FLASHING = { type: 3, value: "FLASHING" }; + IfcDiscreteAccessoryTypeEnum.INSULATOR = { type: 3, value: "INSULATOR" }; + IfcDiscreteAccessoryTypeEnum.LOCK = { type: 3, value: "LOCK" }; + IfcDiscreteAccessoryTypeEnum.PANEL_STRENGTHENING = { type: 3, value: "PANEL_STRENGTHENING" }; + IfcDiscreteAccessoryTypeEnum.POINTMACHINEMOUNTINGDEVICE = { type: 3, value: "POINTMACHINEMOUNTINGDEVICE" }; + IfcDiscreteAccessoryTypeEnum.POINT_MACHINE_LOCKING_DEVICE = { type: 3, value: "POINT_MACHINE_LOCKING_DEVICE" }; + IfcDiscreteAccessoryTypeEnum.RAILBRACE = { type: 3, value: "RAILBRACE" }; + IfcDiscreteAccessoryTypeEnum.RAILPAD = { type: 3, value: "RAILPAD" }; + IfcDiscreteAccessoryTypeEnum.RAIL_LUBRICATION = { type: 3, value: "RAIL_LUBRICATION" }; + IfcDiscreteAccessoryTypeEnum.RAIL_MECHANICAL_EQUIPMENT = { type: 3, value: "RAIL_MECHANICAL_EQUIPMENT" }; + IfcDiscreteAccessoryTypeEnum.SHOE = { type: 3, value: "SHOE" }; + IfcDiscreteAccessoryTypeEnum.SLIDINGCHAIR = { type: 3, value: "SLIDINGCHAIR" }; + IfcDiscreteAccessoryTypeEnum.SOUNDABSORPTION = { type: 3, value: "SOUNDABSORPTION" }; + IfcDiscreteAccessoryTypeEnum.TENSIONINGEQUIPMENT = { type: 3, value: "TENSIONINGEQUIPMENT" }; + IfcDiscreteAccessoryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDiscreteAccessoryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcDiscreteAccessoryTypeEnum = IfcDiscreteAccessoryTypeEnum; + class IfcDistributionBoardTypeEnum { } - IFC42.IfcFacetedBrep = IfcFacetedBrep; - class IfcFacetedBrepWithVoids extends IfcFacetedBrep { - constructor(expressID, Outer, Voids) { - super(expressID, Outer); - this.Outer = Outer; - this.Voids = Voids; - this.type = 3737207727; - } + IfcDistributionBoardTypeEnum.CONSUMERUNIT = { type: 3, value: "CONSUMERUNIT" }; + IfcDistributionBoardTypeEnum.DISPATCHINGBOARD = { type: 3, value: "DISPATCHINGBOARD" }; + IfcDistributionBoardTypeEnum.DISTRIBUTIONBOARD = { type: 3, value: "DISTRIBUTIONBOARD" }; + IfcDistributionBoardTypeEnum.DISTRIBUTIONFRAME = { type: 3, value: "DISTRIBUTIONFRAME" }; + IfcDistributionBoardTypeEnum.MOTORCONTROLCENTRE = { type: 3, value: "MOTORCONTROLCENTRE" }; + IfcDistributionBoardTypeEnum.SWITCHBOARD = { type: 3, value: "SWITCHBOARD" }; + IfcDistributionBoardTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDistributionBoardTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcDistributionBoardTypeEnum = IfcDistributionBoardTypeEnum; + class IfcDistributionChamberElementTypeEnum { } - IFC42.IfcFacetedBrepWithVoids = IfcFacetedBrepWithVoids; - class IfcFastener extends IfcElementComponent { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 647756555; - } + IfcDistributionChamberElementTypeEnum.FORMEDDUCT = { type: 3, value: "FORMEDDUCT" }; + IfcDistributionChamberElementTypeEnum.INSPECTIONCHAMBER = { type: 3, value: "INSPECTIONCHAMBER" }; + IfcDistributionChamberElementTypeEnum.INSPECTIONPIT = { type: 3, value: "INSPECTIONPIT" }; + IfcDistributionChamberElementTypeEnum.MANHOLE = { type: 3, value: "MANHOLE" }; + IfcDistributionChamberElementTypeEnum.METERCHAMBER = { type: 3, value: "METERCHAMBER" }; + IfcDistributionChamberElementTypeEnum.SUMP = { type: 3, value: "SUMP" }; + IfcDistributionChamberElementTypeEnum.TRENCH = { type: 3, value: "TRENCH" }; + IfcDistributionChamberElementTypeEnum.VALVECHAMBER = { type: 3, value: "VALVECHAMBER" }; + IfcDistributionChamberElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDistributionChamberElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcDistributionChamberElementTypeEnum = IfcDistributionChamberElementTypeEnum; + class IfcDistributionPortTypeEnum { } - IFC42.IfcFastener = IfcFastener; - class IfcFastenerType extends IfcElementComponentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2489546625; - } + IfcDistributionPortTypeEnum.CABLE = { type: 3, value: "CABLE" }; + IfcDistributionPortTypeEnum.CABLECARRIER = { type: 3, value: "CABLECARRIER" }; + IfcDistributionPortTypeEnum.DUCT = { type: 3, value: "DUCT" }; + IfcDistributionPortTypeEnum.PIPE = { type: 3, value: "PIPE" }; + IfcDistributionPortTypeEnum.WIRELESS = { type: 3, value: "WIRELESS" }; + IfcDistributionPortTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDistributionPortTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcDistributionPortTypeEnum = IfcDistributionPortTypeEnum; + class IfcDistributionSystemEnum { } - IFC42.IfcFastenerType = IfcFastenerType; - class IfcFeatureElement extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 2827207264; - } + IfcDistributionSystemEnum.AIRCONDITIONING = { type: 3, value: "AIRCONDITIONING" }; + IfcDistributionSystemEnum.AUDIOVISUAL = { type: 3, value: "AUDIOVISUAL" }; + IfcDistributionSystemEnum.CATENARY_SYSTEM = { type: 3, value: "CATENARY_SYSTEM" }; + IfcDistributionSystemEnum.CHEMICAL = { type: 3, value: "CHEMICAL" }; + IfcDistributionSystemEnum.CHILLEDWATER = { type: 3, value: "CHILLEDWATER" }; + IfcDistributionSystemEnum.COMMUNICATION = { type: 3, value: "COMMUNICATION" }; + IfcDistributionSystemEnum.COMPRESSEDAIR = { type: 3, value: "COMPRESSEDAIR" }; + IfcDistributionSystemEnum.CONDENSERWATER = { type: 3, value: "CONDENSERWATER" }; + IfcDistributionSystemEnum.CONTROL = { type: 3, value: "CONTROL" }; + IfcDistributionSystemEnum.CONVEYING = { type: 3, value: "CONVEYING" }; + IfcDistributionSystemEnum.DATA = { type: 3, value: "DATA" }; + IfcDistributionSystemEnum.DISPOSAL = { type: 3, value: "DISPOSAL" }; + IfcDistributionSystemEnum.DOMESTICCOLDWATER = { type: 3, value: "DOMESTICCOLDWATER" }; + IfcDistributionSystemEnum.DOMESTICHOTWATER = { type: 3, value: "DOMESTICHOTWATER" }; + IfcDistributionSystemEnum.DRAINAGE = { type: 3, value: "DRAINAGE" }; + IfcDistributionSystemEnum.EARTHING = { type: 3, value: "EARTHING" }; + IfcDistributionSystemEnum.ELECTRICAL = { type: 3, value: "ELECTRICAL" }; + IfcDistributionSystemEnum.ELECTROACOUSTIC = { type: 3, value: "ELECTROACOUSTIC" }; + IfcDistributionSystemEnum.EXHAUST = { type: 3, value: "EXHAUST" }; + IfcDistributionSystemEnum.FIREPROTECTION = { type: 3, value: "FIREPROTECTION" }; + IfcDistributionSystemEnum.FIXEDTRANSMISSIONNETWORK = { type: 3, value: "FIXEDTRANSMISSIONNETWORK" }; + IfcDistributionSystemEnum.FUEL = { type: 3, value: "FUEL" }; + IfcDistributionSystemEnum.GAS = { type: 3, value: "GAS" }; + IfcDistributionSystemEnum.HAZARDOUS = { type: 3, value: "HAZARDOUS" }; + IfcDistributionSystemEnum.HEATING = { type: 3, value: "HEATING" }; + IfcDistributionSystemEnum.LIGHTING = { type: 3, value: "LIGHTING" }; + IfcDistributionSystemEnum.LIGHTNINGPROTECTION = { type: 3, value: "LIGHTNINGPROTECTION" }; + IfcDistributionSystemEnum.MOBILENETWORK = { type: 3, value: "MOBILENETWORK" }; + IfcDistributionSystemEnum.MONITORINGSYSTEM = { type: 3, value: "MONITORINGSYSTEM" }; + IfcDistributionSystemEnum.MUNICIPALSOLIDWASTE = { type: 3, value: "MUNICIPALSOLIDWASTE" }; + IfcDistributionSystemEnum.OIL = { type: 3, value: "OIL" }; + IfcDistributionSystemEnum.OPERATIONAL = { type: 3, value: "OPERATIONAL" }; + IfcDistributionSystemEnum.OPERATIONALTELEPHONYSYSTEM = { type: 3, value: "OPERATIONALTELEPHONYSYSTEM" }; + IfcDistributionSystemEnum.OVERHEAD_CONTACTLINE_SYSTEM = { type: 3, value: "OVERHEAD_CONTACTLINE_SYSTEM" }; + IfcDistributionSystemEnum.POWERGENERATION = { type: 3, value: "POWERGENERATION" }; + IfcDistributionSystemEnum.RAINWATER = { type: 3, value: "RAINWATER" }; + IfcDistributionSystemEnum.REFRIGERATION = { type: 3, value: "REFRIGERATION" }; + IfcDistributionSystemEnum.RETURN_CIRCUIT = { type: 3, value: "RETURN_CIRCUIT" }; + IfcDistributionSystemEnum.SECURITY = { type: 3, value: "SECURITY" }; + IfcDistributionSystemEnum.SEWAGE = { type: 3, value: "SEWAGE" }; + IfcDistributionSystemEnum.SIGNAL = { type: 3, value: "SIGNAL" }; + IfcDistributionSystemEnum.STORMWATER = { type: 3, value: "STORMWATER" }; + IfcDistributionSystemEnum.TELEPHONE = { type: 3, value: "TELEPHONE" }; + IfcDistributionSystemEnum.TV = { type: 3, value: "TV" }; + IfcDistributionSystemEnum.VACUUM = { type: 3, value: "VACUUM" }; + IfcDistributionSystemEnum.VENT = { type: 3, value: "VENT" }; + IfcDistributionSystemEnum.VENTILATION = { type: 3, value: "VENTILATION" }; + IfcDistributionSystemEnum.WASTEWATER = { type: 3, value: "WASTEWATER" }; + IfcDistributionSystemEnum.WATERSUPPLY = { type: 3, value: "WATERSUPPLY" }; + IfcDistributionSystemEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDistributionSystemEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcDistributionSystemEnum = IfcDistributionSystemEnum; + class IfcDocumentConfidentialityEnum { } - IFC42.IfcFeatureElement = IfcFeatureElement; - class IfcFeatureElementAddition extends IfcFeatureElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 2143335405; - } + IfcDocumentConfidentialityEnum.CONFIDENTIAL = { type: 3, value: "CONFIDENTIAL" }; + IfcDocumentConfidentialityEnum.PERSONAL = { type: 3, value: "PERSONAL" }; + IfcDocumentConfidentialityEnum.PUBLIC = { type: 3, value: "PUBLIC" }; + IfcDocumentConfidentialityEnum.RESTRICTED = { type: 3, value: "RESTRICTED" }; + IfcDocumentConfidentialityEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDocumentConfidentialityEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcDocumentConfidentialityEnum = IfcDocumentConfidentialityEnum; + class IfcDocumentStatusEnum { } - IFC42.IfcFeatureElementAddition = IfcFeatureElementAddition; - class IfcFeatureElementSubtraction extends IfcFeatureElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1287392070; - } + IfcDocumentStatusEnum.DRAFT = { type: 3, value: "DRAFT" }; + IfcDocumentStatusEnum.FINAL = { type: 3, value: "FINAL" }; + IfcDocumentStatusEnum.FINALDRAFT = { type: 3, value: "FINALDRAFT" }; + IfcDocumentStatusEnum.REVISION = { type: 3, value: "REVISION" }; + IfcDocumentStatusEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcDocumentStatusEnum = IfcDocumentStatusEnum; + class IfcDoorPanelOperationEnum { } - IFC42.IfcFeatureElementSubtraction = IfcFeatureElementSubtraction; - class IfcFlowControllerType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 3907093117; - } + IfcDoorPanelOperationEnum.DOUBLE_ACTING = { type: 3, value: "DOUBLE_ACTING" }; + IfcDoorPanelOperationEnum.FIXEDPANEL = { type: 3, value: "FIXEDPANEL" }; + IfcDoorPanelOperationEnum.FOLDING = { type: 3, value: "FOLDING" }; + IfcDoorPanelOperationEnum.REVOLVING = { type: 3, value: "REVOLVING" }; + IfcDoorPanelOperationEnum.ROLLINGUP = { type: 3, value: "ROLLINGUP" }; + IfcDoorPanelOperationEnum.SLIDING = { type: 3, value: "SLIDING" }; + IfcDoorPanelOperationEnum.SWINGING = { type: 3, value: "SWINGING" }; + IfcDoorPanelOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDoorPanelOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcDoorPanelOperationEnum = IfcDoorPanelOperationEnum; + class IfcDoorPanelPositionEnum { } - IFC42.IfcFlowControllerType = IfcFlowControllerType; - class IfcFlowFittingType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 3198132628; - } + IfcDoorPanelPositionEnum.LEFT = { type: 3, value: "LEFT" }; + IfcDoorPanelPositionEnum.MIDDLE = { type: 3, value: "MIDDLE" }; + IfcDoorPanelPositionEnum.RIGHT = { type: 3, value: "RIGHT" }; + IfcDoorPanelPositionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcDoorPanelPositionEnum = IfcDoorPanelPositionEnum; + class IfcDoorStyleConstructionEnum { } - IFC42.IfcFlowFittingType = IfcFlowFittingType; - class IfcFlowMeterType extends IfcFlowControllerType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3815607619; - } + IfcDoorStyleConstructionEnum.ALUMINIUM = { type: 3, value: "ALUMINIUM" }; + IfcDoorStyleConstructionEnum.ALUMINIUM_PLASTIC = { type: 3, value: "ALUMINIUM_PLASTIC" }; + IfcDoorStyleConstructionEnum.ALUMINIUM_WOOD = { type: 3, value: "ALUMINIUM_WOOD" }; + IfcDoorStyleConstructionEnum.HIGH_GRADE_STEEL = { type: 3, value: "HIGH_GRADE_STEEL" }; + IfcDoorStyleConstructionEnum.PLASTIC = { type: 3, value: "PLASTIC" }; + IfcDoorStyleConstructionEnum.STEEL = { type: 3, value: "STEEL" }; + IfcDoorStyleConstructionEnum.WOOD = { type: 3, value: "WOOD" }; + IfcDoorStyleConstructionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDoorStyleConstructionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcDoorStyleConstructionEnum = IfcDoorStyleConstructionEnum; + class IfcDoorStyleOperationEnum { } - IFC42.IfcFlowMeterType = IfcFlowMeterType; - class IfcFlowMovingDeviceType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 1482959167; - } + IfcDoorStyleOperationEnum.DOUBLE_DOOR_DOUBLE_SWING = { type: 3, value: "DOUBLE_DOOR_DOUBLE_SWING" }; + IfcDoorStyleOperationEnum.DOUBLE_DOOR_FOLDING = { type: 3, value: "DOUBLE_DOOR_FOLDING" }; + IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING" }; + IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT" }; + IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT" }; + IfcDoorStyleOperationEnum.DOUBLE_DOOR_SLIDING = { type: 3, value: "DOUBLE_DOOR_SLIDING" }; + IfcDoorStyleOperationEnum.DOUBLE_SWING_LEFT = { type: 3, value: "DOUBLE_SWING_LEFT" }; + IfcDoorStyleOperationEnum.DOUBLE_SWING_RIGHT = { type: 3, value: "DOUBLE_SWING_RIGHT" }; + IfcDoorStyleOperationEnum.FOLDING_TO_LEFT = { type: 3, value: "FOLDING_TO_LEFT" }; + IfcDoorStyleOperationEnum.FOLDING_TO_RIGHT = { type: 3, value: "FOLDING_TO_RIGHT" }; + IfcDoorStyleOperationEnum.REVOLVING = { type: 3, value: "REVOLVING" }; + IfcDoorStyleOperationEnum.ROLLINGUP = { type: 3, value: "ROLLINGUP" }; + IfcDoorStyleOperationEnum.SINGLE_SWING_LEFT = { type: 3, value: "SINGLE_SWING_LEFT" }; + IfcDoorStyleOperationEnum.SINGLE_SWING_RIGHT = { type: 3, value: "SINGLE_SWING_RIGHT" }; + IfcDoorStyleOperationEnum.SLIDING_TO_LEFT = { type: 3, value: "SLIDING_TO_LEFT" }; + IfcDoorStyleOperationEnum.SLIDING_TO_RIGHT = { type: 3, value: "SLIDING_TO_RIGHT" }; + IfcDoorStyleOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDoorStyleOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcDoorStyleOperationEnum = IfcDoorStyleOperationEnum; + class IfcDoorTypeEnum { } - IFC42.IfcFlowMovingDeviceType = IfcFlowMovingDeviceType; - class IfcFlowSegmentType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 1834744321; - } + IfcDoorTypeEnum.BOOM_BARRIER = { type: 3, value: "BOOM_BARRIER" }; + IfcDoorTypeEnum.DOOR = { type: 3, value: "DOOR" }; + IfcDoorTypeEnum.GATE = { type: 3, value: "GATE" }; + IfcDoorTypeEnum.TRAPDOOR = { type: 3, value: "TRAPDOOR" }; + IfcDoorTypeEnum.TURNSTILE = { type: 3, value: "TURNSTILE" }; + IfcDoorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDoorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcDoorTypeEnum = IfcDoorTypeEnum; + class IfcDoorTypeOperationEnum { } - IFC42.IfcFlowSegmentType = IfcFlowSegmentType; - class IfcFlowStorageDeviceType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 1339347760; - } + IfcDoorTypeOperationEnum.DOUBLE_PANEL_DOUBLE_SWING = { type: 3, value: "DOUBLE_PANEL_DOUBLE_SWING" }; + IfcDoorTypeOperationEnum.DOUBLE_PANEL_FOLDING = { type: 3, value: "DOUBLE_PANEL_FOLDING" }; + IfcDoorTypeOperationEnum.DOUBLE_PANEL_LIFTING_VERTICAL = { type: 3, value: "DOUBLE_PANEL_LIFTING_VERTICAL" }; + IfcDoorTypeOperationEnum.DOUBLE_PANEL_SINGLE_SWING = { type: 3, value: "DOUBLE_PANEL_SINGLE_SWING" }; + IfcDoorTypeOperationEnum.DOUBLE_PANEL_SINGLE_SWING_OPPOSITE_LEFT = { type: 3, value: "DOUBLE_PANEL_SINGLE_SWING_OPPOSITE_LEFT" }; + IfcDoorTypeOperationEnum.DOUBLE_PANEL_SINGLE_SWING_OPPOSITE_RIGHT = { type: 3, value: "DOUBLE_PANEL_SINGLE_SWING_OPPOSITE_RIGHT" }; + IfcDoorTypeOperationEnum.DOUBLE_PANEL_SLIDING = { type: 3, value: "DOUBLE_PANEL_SLIDING" }; + IfcDoorTypeOperationEnum.DOUBLE_SWING_LEFT = { type: 3, value: "DOUBLE_SWING_LEFT" }; + IfcDoorTypeOperationEnum.DOUBLE_SWING_RIGHT = { type: 3, value: "DOUBLE_SWING_RIGHT" }; + IfcDoorTypeOperationEnum.FOLDING_TO_LEFT = { type: 3, value: "FOLDING_TO_LEFT" }; + IfcDoorTypeOperationEnum.FOLDING_TO_RIGHT = { type: 3, value: "FOLDING_TO_RIGHT" }; + IfcDoorTypeOperationEnum.LIFTING_HORIZONTAL = { type: 3, value: "LIFTING_HORIZONTAL" }; + IfcDoorTypeOperationEnum.LIFTING_VERTICAL_LEFT = { type: 3, value: "LIFTING_VERTICAL_LEFT" }; + IfcDoorTypeOperationEnum.LIFTING_VERTICAL_RIGHT = { type: 3, value: "LIFTING_VERTICAL_RIGHT" }; + IfcDoorTypeOperationEnum.REVOLVING_HORIZONTAL = { type: 3, value: "REVOLVING_HORIZONTAL" }; + IfcDoorTypeOperationEnum.REVOLVING_VERTICAL = { type: 3, value: "REVOLVING_VERTICAL" }; + IfcDoorTypeOperationEnum.ROLLINGUP = { type: 3, value: "ROLLINGUP" }; + IfcDoorTypeOperationEnum.SINGLE_SWING_LEFT = { type: 3, value: "SINGLE_SWING_LEFT" }; + IfcDoorTypeOperationEnum.SINGLE_SWING_RIGHT = { type: 3, value: "SINGLE_SWING_RIGHT" }; + IfcDoorTypeOperationEnum.SLIDING_TO_LEFT = { type: 3, value: "SLIDING_TO_LEFT" }; + IfcDoorTypeOperationEnum.SLIDING_TO_RIGHT = { type: 3, value: "SLIDING_TO_RIGHT" }; + IfcDoorTypeOperationEnum.SWING_FIXED_LEFT = { type: 3, value: "SWING_FIXED_LEFT" }; + IfcDoorTypeOperationEnum.SWING_FIXED_RIGHT = { type: 3, value: "SWING_FIXED_RIGHT" }; + IfcDoorTypeOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDoorTypeOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcDoorTypeOperationEnum = IfcDoorTypeOperationEnum; + class IfcDuctFittingTypeEnum { } - IFC42.IfcFlowStorageDeviceType = IfcFlowStorageDeviceType; - class IfcFlowTerminalType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 2297155007; - } + IfcDuctFittingTypeEnum.BEND = { type: 3, value: "BEND" }; + IfcDuctFittingTypeEnum.CONNECTOR = { type: 3, value: "CONNECTOR" }; + IfcDuctFittingTypeEnum.ENTRY = { type: 3, value: "ENTRY" }; + IfcDuctFittingTypeEnum.EXIT = { type: 3, value: "EXIT" }; + IfcDuctFittingTypeEnum.JUNCTION = { type: 3, value: "JUNCTION" }; + IfcDuctFittingTypeEnum.OBSTRUCTION = { type: 3, value: "OBSTRUCTION" }; + IfcDuctFittingTypeEnum.TRANSITION = { type: 3, value: "TRANSITION" }; + IfcDuctFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDuctFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcDuctFittingTypeEnum = IfcDuctFittingTypeEnum; + class IfcDuctSegmentTypeEnum { } - IFC42.IfcFlowTerminalType = IfcFlowTerminalType; - class IfcFlowTreatmentDeviceType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 3009222698; - } + IfcDuctSegmentTypeEnum.FLEXIBLESEGMENT = { type: 3, value: "FLEXIBLESEGMENT" }; + IfcDuctSegmentTypeEnum.RIGIDSEGMENT = { type: 3, value: "RIGIDSEGMENT" }; + IfcDuctSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDuctSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcDuctSegmentTypeEnum = IfcDuctSegmentTypeEnum; + class IfcDuctSilencerTypeEnum { } - IFC42.IfcFlowTreatmentDeviceType = IfcFlowTreatmentDeviceType; - class IfcFootingType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1893162501; - } + IfcDuctSilencerTypeEnum.FLATOVAL = { type: 3, value: "FLATOVAL" }; + IfcDuctSilencerTypeEnum.RECTANGULAR = { type: 3, value: "RECTANGULAR" }; + IfcDuctSilencerTypeEnum.ROUND = { type: 3, value: "ROUND" }; + IfcDuctSilencerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDuctSilencerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcDuctSilencerTypeEnum = IfcDuctSilencerTypeEnum; + class IfcEarthworksCutTypeEnum { } - IFC42.IfcFootingType = IfcFootingType; - class IfcFurnishingElement extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 263784265; - } + IfcEarthworksCutTypeEnum.BASE_EXCAVATION = { type: 3, value: "BASE_EXCAVATION" }; + IfcEarthworksCutTypeEnum.CUT = { type: 3, value: "CUT" }; + IfcEarthworksCutTypeEnum.DREDGING = { type: 3, value: "DREDGING" }; + IfcEarthworksCutTypeEnum.EXCAVATION = { type: 3, value: "EXCAVATION" }; + IfcEarthworksCutTypeEnum.OVEREXCAVATION = { type: 3, value: "OVEREXCAVATION" }; + IfcEarthworksCutTypeEnum.PAVEMENTMILLING = { type: 3, value: "PAVEMENTMILLING" }; + IfcEarthworksCutTypeEnum.STEPEXCAVATION = { type: 3, value: "STEPEXCAVATION" }; + IfcEarthworksCutTypeEnum.TOPSOILREMOVAL = { type: 3, value: "TOPSOILREMOVAL" }; + IfcEarthworksCutTypeEnum.TRENCH = { type: 3, value: "TRENCH" }; + IfcEarthworksCutTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcEarthworksCutTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcEarthworksCutTypeEnum = IfcEarthworksCutTypeEnum; + class IfcEarthworksFillTypeEnum { } - IFC42.IfcFurnishingElement = IfcFurnishingElement; - class IfcFurniture extends IfcFurnishingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1509553395; - } + IfcEarthworksFillTypeEnum.BACKFILL = { type: 3, value: "BACKFILL" }; + IfcEarthworksFillTypeEnum.COUNTERWEIGHT = { type: 3, value: "COUNTERWEIGHT" }; + IfcEarthworksFillTypeEnum.EMBANKMENT = { type: 3, value: "EMBANKMENT" }; + IfcEarthworksFillTypeEnum.SLOPEFILL = { type: 3, value: "SLOPEFILL" }; + IfcEarthworksFillTypeEnum.SUBGRADE = { type: 3, value: "SUBGRADE" }; + IfcEarthworksFillTypeEnum.SUBGRADEBED = { type: 3, value: "SUBGRADEBED" }; + IfcEarthworksFillTypeEnum.TRANSITIONSECTION = { type: 3, value: "TRANSITIONSECTION" }; + IfcEarthworksFillTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcEarthworksFillTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcEarthworksFillTypeEnum = IfcEarthworksFillTypeEnum; + class IfcElectricApplianceTypeEnum { } - IFC42.IfcFurniture = IfcFurniture; - class IfcGeographicElement extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3493046030; - } + IfcElectricApplianceTypeEnum.DISHWASHER = { type: 3, value: "DISHWASHER" }; + IfcElectricApplianceTypeEnum.ELECTRICCOOKER = { type: 3, value: "ELECTRICCOOKER" }; + IfcElectricApplianceTypeEnum.FREESTANDINGELECTRICHEATER = { type: 3, value: "FREESTANDINGELECTRICHEATER" }; + IfcElectricApplianceTypeEnum.FREESTANDINGFAN = { type: 3, value: "FREESTANDINGFAN" }; + IfcElectricApplianceTypeEnum.FREESTANDINGWATERCOOLER = { type: 3, value: "FREESTANDINGWATERCOOLER" }; + IfcElectricApplianceTypeEnum.FREESTANDINGWATERHEATER = { type: 3, value: "FREESTANDINGWATERHEATER" }; + IfcElectricApplianceTypeEnum.FREEZER = { type: 3, value: "FREEZER" }; + IfcElectricApplianceTypeEnum.FRIDGE_FREEZER = { type: 3, value: "FRIDGE_FREEZER" }; + IfcElectricApplianceTypeEnum.HANDDRYER = { type: 3, value: "HANDDRYER" }; + IfcElectricApplianceTypeEnum.KITCHENMACHINE = { type: 3, value: "KITCHENMACHINE" }; + IfcElectricApplianceTypeEnum.MICROWAVE = { type: 3, value: "MICROWAVE" }; + IfcElectricApplianceTypeEnum.PHOTOCOPIER = { type: 3, value: "PHOTOCOPIER" }; + IfcElectricApplianceTypeEnum.REFRIGERATOR = { type: 3, value: "REFRIGERATOR" }; + IfcElectricApplianceTypeEnum.TUMBLEDRYER = { type: 3, value: "TUMBLEDRYER" }; + IfcElectricApplianceTypeEnum.VENDINGMACHINE = { type: 3, value: "VENDINGMACHINE" }; + IfcElectricApplianceTypeEnum.WASHINGMACHINE = { type: 3, value: "WASHINGMACHINE" }; + IfcElectricApplianceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcElectricApplianceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcElectricApplianceTypeEnum = IfcElectricApplianceTypeEnum; + class IfcElectricDistributionBoardTypeEnum { } - IFC42.IfcGeographicElement = IfcGeographicElement; - class IfcGrid extends IfcProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, UAxes, VAxes, WAxes, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.UAxes = UAxes; - this.VAxes = VAxes; - this.WAxes = WAxes; - this.PredefinedType = PredefinedType; - this.type = 3009204131; - } + IfcElectricDistributionBoardTypeEnum.CONSUMERUNIT = { type: 3, value: "CONSUMERUNIT" }; + IfcElectricDistributionBoardTypeEnum.DISTRIBUTIONBOARD = { type: 3, value: "DISTRIBUTIONBOARD" }; + IfcElectricDistributionBoardTypeEnum.MOTORCONTROLCENTRE = { type: 3, value: "MOTORCONTROLCENTRE" }; + IfcElectricDistributionBoardTypeEnum.SWITCHBOARD = { type: 3, value: "SWITCHBOARD" }; + IfcElectricDistributionBoardTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcElectricDistributionBoardTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcElectricDistributionBoardTypeEnum = IfcElectricDistributionBoardTypeEnum; + class IfcElectricFlowStorageDeviceTypeEnum { } - IFC42.IfcGrid = IfcGrid; - class IfcGroup extends IfcObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.type = 2706460486; - } + IfcElectricFlowStorageDeviceTypeEnum.BATTERY = { type: 3, value: "BATTERY" }; + IfcElectricFlowStorageDeviceTypeEnum.CAPACITOR = { type: 3, value: "CAPACITOR" }; + IfcElectricFlowStorageDeviceTypeEnum.CAPACITORBANK = { type: 3, value: "CAPACITORBANK" }; + IfcElectricFlowStorageDeviceTypeEnum.COMPENSATOR = { type: 3, value: "COMPENSATOR" }; + IfcElectricFlowStorageDeviceTypeEnum.HARMONICFILTER = { type: 3, value: "HARMONICFILTER" }; + IfcElectricFlowStorageDeviceTypeEnum.INDUCTOR = { type: 3, value: "INDUCTOR" }; + IfcElectricFlowStorageDeviceTypeEnum.INDUCTORBANK = { type: 3, value: "INDUCTORBANK" }; + IfcElectricFlowStorageDeviceTypeEnum.RECHARGER = { type: 3, value: "RECHARGER" }; + IfcElectricFlowStorageDeviceTypeEnum.UPS = { type: 3, value: "UPS" }; + IfcElectricFlowStorageDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcElectricFlowStorageDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcElectricFlowStorageDeviceTypeEnum = IfcElectricFlowStorageDeviceTypeEnum; + class IfcElectricFlowTreatmentDeviceTypeEnum { } - IFC42.IfcGroup = IfcGroup; - class IfcHeatExchangerType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1251058090; - } + IfcElectricFlowTreatmentDeviceTypeEnum.ELECTRONICFILTER = { type: 3, value: "ELECTRONICFILTER" }; + IfcElectricFlowTreatmentDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcElectricFlowTreatmentDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcElectricFlowTreatmentDeviceTypeEnum = IfcElectricFlowTreatmentDeviceTypeEnum; + class IfcElectricGeneratorTypeEnum { } - IFC42.IfcHeatExchangerType = IfcHeatExchangerType; - class IfcHumidifierType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1806887404; - } + IfcElectricGeneratorTypeEnum.CHP = { type: 3, value: "CHP" }; + IfcElectricGeneratorTypeEnum.ENGINEGENERATOR = { type: 3, value: "ENGINEGENERATOR" }; + IfcElectricGeneratorTypeEnum.STANDALONE = { type: 3, value: "STANDALONE" }; + IfcElectricGeneratorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcElectricGeneratorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcElectricGeneratorTypeEnum = IfcElectricGeneratorTypeEnum; + class IfcElectricMotorTypeEnum { } - IFC42.IfcHumidifierType = IfcHumidifierType; - class IfcIndexedPolyCurve extends IfcBoundedCurve { - constructor(expressID, Points, Segments, SelfIntersect) { - super(expressID); - this.Points = Points; - this.Segments = Segments; - this.SelfIntersect = SelfIntersect; - this.type = 2571569899; - } + IfcElectricMotorTypeEnum.DC = { type: 3, value: "DC" }; + IfcElectricMotorTypeEnum.INDUCTION = { type: 3, value: "INDUCTION" }; + IfcElectricMotorTypeEnum.POLYPHASE = { type: 3, value: "POLYPHASE" }; + IfcElectricMotorTypeEnum.RELUCTANCESYNCHRONOUS = { type: 3, value: "RELUCTANCESYNCHRONOUS" }; + IfcElectricMotorTypeEnum.SYNCHRONOUS = { type: 3, value: "SYNCHRONOUS" }; + IfcElectricMotorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcElectricMotorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcElectricMotorTypeEnum = IfcElectricMotorTypeEnum; + class IfcElectricTimeControlTypeEnum { } - IFC42.IfcIndexedPolyCurve = IfcIndexedPolyCurve; - class IfcInterceptorType extends IfcFlowTreatmentDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3946677679; - } + IfcElectricTimeControlTypeEnum.RELAY = { type: 3, value: "RELAY" }; + IfcElectricTimeControlTypeEnum.TIMECLOCK = { type: 3, value: "TIMECLOCK" }; + IfcElectricTimeControlTypeEnum.TIMEDELAY = { type: 3, value: "TIMEDELAY" }; + IfcElectricTimeControlTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcElectricTimeControlTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcElectricTimeControlTypeEnum = IfcElectricTimeControlTypeEnum; + class IfcElementAssemblyTypeEnum { } - IFC42.IfcInterceptorType = IfcInterceptorType; - class IfcIntersectionCurve extends IfcSurfaceCurve { - constructor(expressID, Curve3D, AssociatedGeometry, MasterRepresentation) { - super(expressID, Curve3D, AssociatedGeometry, MasterRepresentation); - this.Curve3D = Curve3D; - this.AssociatedGeometry = AssociatedGeometry; - this.MasterRepresentation = MasterRepresentation; - this.type = 3113134337; - } + IfcElementAssemblyTypeEnum.ABUTMENT = { type: 3, value: "ABUTMENT" }; + IfcElementAssemblyTypeEnum.ACCESSORY_ASSEMBLY = { type: 3, value: "ACCESSORY_ASSEMBLY" }; + IfcElementAssemblyTypeEnum.ARCH = { type: 3, value: "ARCH" }; + IfcElementAssemblyTypeEnum.BEAM_GRID = { type: 3, value: "BEAM_GRID" }; + IfcElementAssemblyTypeEnum.BRACED_FRAME = { type: 3, value: "BRACED_FRAME" }; + IfcElementAssemblyTypeEnum.CROSS_BRACING = { type: 3, value: "CROSS_BRACING" }; + IfcElementAssemblyTypeEnum.DECK = { type: 3, value: "DECK" }; + IfcElementAssemblyTypeEnum.DILATATIONPANEL = { type: 3, value: "DILATATIONPANEL" }; + IfcElementAssemblyTypeEnum.ENTRANCEWORKS = { type: 3, value: "ENTRANCEWORKS" }; + IfcElementAssemblyTypeEnum.GIRDER = { type: 3, value: "GIRDER" }; + IfcElementAssemblyTypeEnum.GRID = { type: 3, value: "GRID" }; + IfcElementAssemblyTypeEnum.MAST = { type: 3, value: "MAST" }; + IfcElementAssemblyTypeEnum.PIER = { type: 3, value: "PIER" }; + IfcElementAssemblyTypeEnum.PYLON = { type: 3, value: "PYLON" }; + IfcElementAssemblyTypeEnum.RAIL_MECHANICAL_EQUIPMENT_ASSEMBLY = { type: 3, value: "RAIL_MECHANICAL_EQUIPMENT_ASSEMBLY" }; + IfcElementAssemblyTypeEnum.REINFORCEMENT_UNIT = { type: 3, value: "REINFORCEMENT_UNIT" }; + IfcElementAssemblyTypeEnum.RIGID_FRAME = { type: 3, value: "RIGID_FRAME" }; + IfcElementAssemblyTypeEnum.SHELTER = { type: 3, value: "SHELTER" }; + IfcElementAssemblyTypeEnum.SIGNALASSEMBLY = { type: 3, value: "SIGNALASSEMBLY" }; + IfcElementAssemblyTypeEnum.SLAB_FIELD = { type: 3, value: "SLAB_FIELD" }; + IfcElementAssemblyTypeEnum.SUMPBUSTER = { type: 3, value: "SUMPBUSTER" }; + IfcElementAssemblyTypeEnum.SUPPORTINGASSEMBLY = { type: 3, value: "SUPPORTINGASSEMBLY" }; + IfcElementAssemblyTypeEnum.SUSPENSIONASSEMBLY = { type: 3, value: "SUSPENSIONASSEMBLY" }; + IfcElementAssemblyTypeEnum.TRACKPANEL = { type: 3, value: "TRACKPANEL" }; + IfcElementAssemblyTypeEnum.TRACTION_SWITCHING_ASSEMBLY = { type: 3, value: "TRACTION_SWITCHING_ASSEMBLY" }; + IfcElementAssemblyTypeEnum.TRAFFIC_CALMING_DEVICE = { type: 3, value: "TRAFFIC_CALMING_DEVICE" }; + IfcElementAssemblyTypeEnum.TRUSS = { type: 3, value: "TRUSS" }; + IfcElementAssemblyTypeEnum.TURNOUTPANEL = { type: 3, value: "TURNOUTPANEL" }; + IfcElementAssemblyTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcElementAssemblyTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcElementAssemblyTypeEnum = IfcElementAssemblyTypeEnum; + class IfcElementCompositionEnum { } - IFC42.IfcIntersectionCurve = IfcIntersectionCurve; - class IfcInventory extends IfcGroup { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, Jurisdiction, ResponsiblePersons, LastUpdateDate, CurrentValue, OriginalValue) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.PredefinedType = PredefinedType; - this.Jurisdiction = Jurisdiction; - this.ResponsiblePersons = ResponsiblePersons; - this.LastUpdateDate = LastUpdateDate; - this.CurrentValue = CurrentValue; - this.OriginalValue = OriginalValue; - this.type = 2391368822; - } + IfcElementCompositionEnum.COMPLEX = { type: 3, value: "COMPLEX" }; + IfcElementCompositionEnum.ELEMENT = { type: 3, value: "ELEMENT" }; + IfcElementCompositionEnum.PARTIAL = { type: 3, value: "PARTIAL" }; + IFC4X32.IfcElementCompositionEnum = IfcElementCompositionEnum; + class IfcEngineTypeEnum { } - IFC42.IfcInventory = IfcInventory; - class IfcJunctionBoxType extends IfcFlowFittingType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 4288270099; - } + IfcEngineTypeEnum.EXTERNALCOMBUSTION = { type: 3, value: "EXTERNALCOMBUSTION" }; + IfcEngineTypeEnum.INTERNALCOMBUSTION = { type: 3, value: "INTERNALCOMBUSTION" }; + IfcEngineTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcEngineTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcEngineTypeEnum = IfcEngineTypeEnum; + class IfcEvaporativeCoolerTypeEnum { } - IFC42.IfcJunctionBoxType = IfcJunctionBoxType; - class IfcLaborResource extends IfcConstructionResource { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.Usage = Usage; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.PredefinedType = PredefinedType; - this.type = 3827777499; - } + IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEAIRWASHER = { type: 3, value: "DIRECTEVAPORATIVEAIRWASHER" }; + IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER" }; + IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER" }; + IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER" }; + IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER" }; + IfcEvaporativeCoolerTypeEnum.INDIRECTDIRECTCOMBINATION = { type: 3, value: "INDIRECTDIRECTCOMBINATION" }; + IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER = { type: 3, value: "INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER" }; + IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEPACKAGEAIRCOOLER = { type: 3, value: "INDIRECTEVAPORATIVEPACKAGEAIRCOOLER" }; + IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEWETCOIL = { type: 3, value: "INDIRECTEVAPORATIVEWETCOIL" }; + IfcEvaporativeCoolerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcEvaporativeCoolerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcEvaporativeCoolerTypeEnum = IfcEvaporativeCoolerTypeEnum; + class IfcEvaporatorTypeEnum { } - IFC42.IfcLaborResource = IfcLaborResource; - class IfcLampType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1051575348; - } + IfcEvaporatorTypeEnum.DIRECTEXPANSION = { type: 3, value: "DIRECTEXPANSION" }; + IfcEvaporatorTypeEnum.DIRECTEXPANSIONBRAZEDPLATE = { type: 3, value: "DIRECTEXPANSIONBRAZEDPLATE" }; + IfcEvaporatorTypeEnum.DIRECTEXPANSIONSHELLANDTUBE = { type: 3, value: "DIRECTEXPANSIONSHELLANDTUBE" }; + IfcEvaporatorTypeEnum.DIRECTEXPANSIONTUBEINTUBE = { type: 3, value: "DIRECTEXPANSIONTUBEINTUBE" }; + IfcEvaporatorTypeEnum.FLOODEDSHELLANDTUBE = { type: 3, value: "FLOODEDSHELLANDTUBE" }; + IfcEvaporatorTypeEnum.SHELLANDCOIL = { type: 3, value: "SHELLANDCOIL" }; + IfcEvaporatorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcEvaporatorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcEvaporatorTypeEnum = IfcEvaporatorTypeEnum; + class IfcEventTriggerTypeEnum { } - IFC42.IfcLampType = IfcLampType; - class IfcLightFixtureType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1161773419; - } + IfcEventTriggerTypeEnum.EVENTCOMPLEX = { type: 3, value: "EVENTCOMPLEX" }; + IfcEventTriggerTypeEnum.EVENTMESSAGE = { type: 3, value: "EVENTMESSAGE" }; + IfcEventTriggerTypeEnum.EVENTRULE = { type: 3, value: "EVENTRULE" }; + IfcEventTriggerTypeEnum.EVENTTIME = { type: 3, value: "EVENTTIME" }; + IfcEventTriggerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcEventTriggerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcEventTriggerTypeEnum = IfcEventTriggerTypeEnum; + class IfcEventTypeEnum { } - IFC42.IfcLightFixtureType = IfcLightFixtureType; - class IfcMechanicalFastener extends IfcElementComponent { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, NominalDiameter, NominalLength, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.NominalDiameter = NominalDiameter; - this.NominalLength = NominalLength; - this.PredefinedType = PredefinedType; - this.type = 377706215; - } + IfcEventTypeEnum.ENDEVENT = { type: 3, value: "ENDEVENT" }; + IfcEventTypeEnum.INTERMEDIATEEVENT = { type: 3, value: "INTERMEDIATEEVENT" }; + IfcEventTypeEnum.STARTEVENT = { type: 3, value: "STARTEVENT" }; + IfcEventTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcEventTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcEventTypeEnum = IfcEventTypeEnum; + class IfcExternalSpatialElementTypeEnum { } - IFC42.IfcMechanicalFastener = IfcMechanicalFastener; - class IfcMechanicalFastenerType extends IfcElementComponentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, NominalDiameter, NominalLength) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.NominalDiameter = NominalDiameter; - this.NominalLength = NominalLength; - this.type = 2108223431; - } + IfcExternalSpatialElementTypeEnum.EXTERNAL = { type: 3, value: "EXTERNAL" }; + IfcExternalSpatialElementTypeEnum.EXTERNAL_EARTH = { type: 3, value: "EXTERNAL_EARTH" }; + IfcExternalSpatialElementTypeEnum.EXTERNAL_FIRE = { type: 3, value: "EXTERNAL_FIRE" }; + IfcExternalSpatialElementTypeEnum.EXTERNAL_WATER = { type: 3, value: "EXTERNAL_WATER" }; + IfcExternalSpatialElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcExternalSpatialElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcExternalSpatialElementTypeEnum = IfcExternalSpatialElementTypeEnum; + class IfcFacilityPartCommonTypeEnum { } - IFC42.IfcMechanicalFastenerType = IfcMechanicalFastenerType; - class IfcMedicalDeviceType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1114901282; - } + IfcFacilityPartCommonTypeEnum.ABOVEGROUND = { type: 3, value: "ABOVEGROUND" }; + IfcFacilityPartCommonTypeEnum.BELOWGROUND = { type: 3, value: "BELOWGROUND" }; + IfcFacilityPartCommonTypeEnum.JUNCTION = { type: 3, value: "JUNCTION" }; + IfcFacilityPartCommonTypeEnum.LEVELCROSSING = { type: 3, value: "LEVELCROSSING" }; + IfcFacilityPartCommonTypeEnum.SEGMENT = { type: 3, value: "SEGMENT" }; + IfcFacilityPartCommonTypeEnum.SUBSTRUCTURE = { type: 3, value: "SUBSTRUCTURE" }; + IfcFacilityPartCommonTypeEnum.SUPERSTRUCTURE = { type: 3, value: "SUPERSTRUCTURE" }; + IfcFacilityPartCommonTypeEnum.TERMINAL = { type: 3, value: "TERMINAL" }; + IfcFacilityPartCommonTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcFacilityPartCommonTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcFacilityPartCommonTypeEnum = IfcFacilityPartCommonTypeEnum; + class IfcFacilityUsageEnum { } - IFC42.IfcMedicalDeviceType = IfcMedicalDeviceType; - class IfcMemberType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3181161470; - } + IfcFacilityUsageEnum.LATERAL = { type: 3, value: "LATERAL" }; + IfcFacilityUsageEnum.LONGITUDINAL = { type: 3, value: "LONGITUDINAL" }; + IfcFacilityUsageEnum.REGION = { type: 3, value: "REGION" }; + IfcFacilityUsageEnum.VERTICAL = { type: 3, value: "VERTICAL" }; + IfcFacilityUsageEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcFacilityUsageEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcFacilityUsageEnum = IfcFacilityUsageEnum; + class IfcFanTypeEnum { } - IFC42.IfcMemberType = IfcMemberType; - class IfcMotorConnectionType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 977012517; - } + IfcFanTypeEnum.CENTRIFUGALAIRFOIL = { type: 3, value: "CENTRIFUGALAIRFOIL" }; + IfcFanTypeEnum.CENTRIFUGALBACKWARDINCLINEDCURVED = { type: 3, value: "CENTRIFUGALBACKWARDINCLINEDCURVED" }; + IfcFanTypeEnum.CENTRIFUGALFORWARDCURVED = { type: 3, value: "CENTRIFUGALFORWARDCURVED" }; + IfcFanTypeEnum.CENTRIFUGALRADIAL = { type: 3, value: "CENTRIFUGALRADIAL" }; + IfcFanTypeEnum.PROPELLORAXIAL = { type: 3, value: "PROPELLORAXIAL" }; + IfcFanTypeEnum.TUBEAXIAL = { type: 3, value: "TUBEAXIAL" }; + IfcFanTypeEnum.VANEAXIAL = { type: 3, value: "VANEAXIAL" }; + IfcFanTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcFanTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcFanTypeEnum = IfcFanTypeEnum; + class IfcFastenerTypeEnum { } - IFC42.IfcMotorConnectionType = IfcMotorConnectionType; - class IfcOccupant extends IfcActor { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.TheActor = TheActor; - this.PredefinedType = PredefinedType; - this.type = 4143007308; - } + IfcFastenerTypeEnum.GLUE = { type: 3, value: "GLUE" }; + IfcFastenerTypeEnum.MORTAR = { type: 3, value: "MORTAR" }; + IfcFastenerTypeEnum.WELD = { type: 3, value: "WELD" }; + IfcFastenerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcFastenerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcFastenerTypeEnum = IfcFastenerTypeEnum; + class IfcFilterTypeEnum { } - IFC42.IfcOccupant = IfcOccupant; - class IfcOpeningElement extends IfcFeatureElementSubtraction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3588315303; - } + IfcFilterTypeEnum.AIRPARTICLEFILTER = { type: 3, value: "AIRPARTICLEFILTER" }; + IfcFilterTypeEnum.COMPRESSEDAIRFILTER = { type: 3, value: "COMPRESSEDAIRFILTER" }; + IfcFilterTypeEnum.ODORFILTER = { type: 3, value: "ODORFILTER" }; + IfcFilterTypeEnum.OILFILTER = { type: 3, value: "OILFILTER" }; + IfcFilterTypeEnum.STRAINER = { type: 3, value: "STRAINER" }; + IfcFilterTypeEnum.WATERFILTER = { type: 3, value: "WATERFILTER" }; + IfcFilterTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcFilterTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcFilterTypeEnum = IfcFilterTypeEnum; + class IfcFireSuppressionTerminalTypeEnum { } - IFC42.IfcOpeningElement = IfcOpeningElement; - class IfcOpeningStandardCase extends IfcOpeningElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3079942009; - } + IfcFireSuppressionTerminalTypeEnum.BREECHINGINLET = { type: 3, value: "BREECHINGINLET" }; + IfcFireSuppressionTerminalTypeEnum.FIREHYDRANT = { type: 3, value: "FIREHYDRANT" }; + IfcFireSuppressionTerminalTypeEnum.FIREMONITOR = { type: 3, value: "FIREMONITOR" }; + IfcFireSuppressionTerminalTypeEnum.HOSEREEL = { type: 3, value: "HOSEREEL" }; + IfcFireSuppressionTerminalTypeEnum.SPRINKLER = { type: 3, value: "SPRINKLER" }; + IfcFireSuppressionTerminalTypeEnum.SPRINKLERDEFLECTOR = { type: 3, value: "SPRINKLERDEFLECTOR" }; + IfcFireSuppressionTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcFireSuppressionTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcFireSuppressionTerminalTypeEnum = IfcFireSuppressionTerminalTypeEnum; + class IfcFlowDirectionEnum { + } + IfcFlowDirectionEnum.SINK = { type: 3, value: "SINK" }; + IfcFlowDirectionEnum.SOURCE = { type: 3, value: "SOURCE" }; + IfcFlowDirectionEnum.SOURCEANDSINK = { type: 3, value: "SOURCEANDSINK" }; + IfcFlowDirectionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcFlowDirectionEnum = IfcFlowDirectionEnum; + class IfcFlowInstrumentTypeEnum { } - IFC42.IfcOpeningStandardCase = IfcOpeningStandardCase; - class IfcOutletType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2837617999; - } + IfcFlowInstrumentTypeEnum.AMMETER = { type: 3, value: "AMMETER" }; + IfcFlowInstrumentTypeEnum.COMBINED = { type: 3, value: "COMBINED" }; + IfcFlowInstrumentTypeEnum.FREQUENCYMETER = { type: 3, value: "FREQUENCYMETER" }; + IfcFlowInstrumentTypeEnum.PHASEANGLEMETER = { type: 3, value: "PHASEANGLEMETER" }; + IfcFlowInstrumentTypeEnum.POWERFACTORMETER = { type: 3, value: "POWERFACTORMETER" }; + IfcFlowInstrumentTypeEnum.PRESSUREGAUGE = { type: 3, value: "PRESSUREGAUGE" }; + IfcFlowInstrumentTypeEnum.THERMOMETER = { type: 3, value: "THERMOMETER" }; + IfcFlowInstrumentTypeEnum.VOLTMETER = { type: 3, value: "VOLTMETER" }; + IfcFlowInstrumentTypeEnum.VOLTMETER_PEAK = { type: 3, value: "VOLTMETER_PEAK" }; + IfcFlowInstrumentTypeEnum.VOLTMETER_RMS = { type: 3, value: "VOLTMETER_RMS" }; + IfcFlowInstrumentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcFlowInstrumentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcFlowInstrumentTypeEnum = IfcFlowInstrumentTypeEnum; + class IfcFlowMeterTypeEnum { } - IFC42.IfcOutletType = IfcOutletType; - class IfcPerformanceHistory extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LifeCyclePhase, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LifeCyclePhase = LifeCyclePhase; - this.PredefinedType = PredefinedType; - this.type = 2382730787; - } + IfcFlowMeterTypeEnum.ENERGYMETER = { type: 3, value: "ENERGYMETER" }; + IfcFlowMeterTypeEnum.GASMETER = { type: 3, value: "GASMETER" }; + IfcFlowMeterTypeEnum.OILMETER = { type: 3, value: "OILMETER" }; + IfcFlowMeterTypeEnum.WATERMETER = { type: 3, value: "WATERMETER" }; + IfcFlowMeterTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcFlowMeterTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcFlowMeterTypeEnum = IfcFlowMeterTypeEnum; + class IfcFootingTypeEnum { } - IFC42.IfcPerformanceHistory = IfcPerformanceHistory; - class IfcPermeableCoveringProperties extends IfcPreDefinedPropertySet { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, OperationType, PanelPosition, FrameDepth, FrameThickness, ShapeAspectStyle) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.OperationType = OperationType; - this.PanelPosition = PanelPosition; - this.FrameDepth = FrameDepth; - this.FrameThickness = FrameThickness; - this.ShapeAspectStyle = ShapeAspectStyle; - this.type = 3566463478; - } + IfcFootingTypeEnum.CAISSON_FOUNDATION = { type: 3, value: "CAISSON_FOUNDATION" }; + IfcFootingTypeEnum.FOOTING_BEAM = { type: 3, value: "FOOTING_BEAM" }; + IfcFootingTypeEnum.PAD_FOOTING = { type: 3, value: "PAD_FOOTING" }; + IfcFootingTypeEnum.PILE_CAP = { type: 3, value: "PILE_CAP" }; + IfcFootingTypeEnum.STRIP_FOOTING = { type: 3, value: "STRIP_FOOTING" }; + IfcFootingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcFootingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcFootingTypeEnum = IfcFootingTypeEnum; + class IfcFurnitureTypeEnum { } - IFC42.IfcPermeableCoveringProperties = IfcPermeableCoveringProperties; - class IfcPermit extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, LongDescription) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.PredefinedType = PredefinedType; - this.Status = Status; - this.LongDescription = LongDescription; - this.type = 3327091369; - } + IfcFurnitureTypeEnum.BED = { type: 3, value: "BED" }; + IfcFurnitureTypeEnum.CHAIR = { type: 3, value: "CHAIR" }; + IfcFurnitureTypeEnum.DESK = { type: 3, value: "DESK" }; + IfcFurnitureTypeEnum.FILECABINET = { type: 3, value: "FILECABINET" }; + IfcFurnitureTypeEnum.SHELF = { type: 3, value: "SHELF" }; + IfcFurnitureTypeEnum.SOFA = { type: 3, value: "SOFA" }; + IfcFurnitureTypeEnum.TABLE = { type: 3, value: "TABLE" }; + IfcFurnitureTypeEnum.TECHNICALCABINET = { type: 3, value: "TECHNICALCABINET" }; + IfcFurnitureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcFurnitureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcFurnitureTypeEnum = IfcFurnitureTypeEnum; + class IfcGeographicElementTypeEnum { } - IFC42.IfcPermit = IfcPermit; - class IfcPileType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1158309216; - } + IfcGeographicElementTypeEnum.SOIL_BORING_POINT = { type: 3, value: "SOIL_BORING_POINT" }; + IfcGeographicElementTypeEnum.TERRAIN = { type: 3, value: "TERRAIN" }; + IfcGeographicElementTypeEnum.VEGETATION = { type: 3, value: "VEGETATION" }; + IfcGeographicElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcGeographicElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcGeographicElementTypeEnum = IfcGeographicElementTypeEnum; + class IfcGeometricProjectionEnum { } - IFC42.IfcPileType = IfcPileType; - class IfcPipeFittingType extends IfcFlowFittingType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 804291784; - } + IfcGeometricProjectionEnum.ELEVATION_VIEW = { type: 3, value: "ELEVATION_VIEW" }; + IfcGeometricProjectionEnum.GRAPH_VIEW = { type: 3, value: "GRAPH_VIEW" }; + IfcGeometricProjectionEnum.MODEL_VIEW = { type: 3, value: "MODEL_VIEW" }; + IfcGeometricProjectionEnum.PLAN_VIEW = { type: 3, value: "PLAN_VIEW" }; + IfcGeometricProjectionEnum.REFLECTED_PLAN_VIEW = { type: 3, value: "REFLECTED_PLAN_VIEW" }; + IfcGeometricProjectionEnum.SECTION_VIEW = { type: 3, value: "SECTION_VIEW" }; + IfcGeometricProjectionEnum.SKETCH_VIEW = { type: 3, value: "SKETCH_VIEW" }; + IfcGeometricProjectionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcGeometricProjectionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcGeometricProjectionEnum = IfcGeometricProjectionEnum; + class IfcGeotechnicalStratumTypeEnum { } - IFC42.IfcPipeFittingType = IfcPipeFittingType; - class IfcPipeSegmentType extends IfcFlowSegmentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 4231323485; - } + IfcGeotechnicalStratumTypeEnum.SOLID = { type: 3, value: "SOLID" }; + IfcGeotechnicalStratumTypeEnum.VOID = { type: 3, value: "VOID" }; + IfcGeotechnicalStratumTypeEnum.WATER = { type: 3, value: "WATER" }; + IfcGeotechnicalStratumTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcGeotechnicalStratumTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcGeotechnicalStratumTypeEnum = IfcGeotechnicalStratumTypeEnum; + class IfcGlobalOrLocalEnum { } - IFC42.IfcPipeSegmentType = IfcPipeSegmentType; - class IfcPlateType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 4017108033; - } + IfcGlobalOrLocalEnum.GLOBAL_COORDS = { type: 3, value: "GLOBAL_COORDS" }; + IfcGlobalOrLocalEnum.LOCAL_COORDS = { type: 3, value: "LOCAL_COORDS" }; + IFC4X32.IfcGlobalOrLocalEnum = IfcGlobalOrLocalEnum; + class IfcGridTypeEnum { } - IFC42.IfcPlateType = IfcPlateType; - class IfcPolygonalFaceSet extends IfcTessellatedFaceSet { - constructor(expressID, Coordinates, Closed, Faces, PnIndex) { - super(expressID, Coordinates); - this.Coordinates = Coordinates; - this.Closed = Closed; - this.Faces = Faces; - this.PnIndex = PnIndex; - this.type = 2839578677; - } + IfcGridTypeEnum.IRREGULAR = { type: 3, value: "IRREGULAR" }; + IfcGridTypeEnum.RADIAL = { type: 3, value: "RADIAL" }; + IfcGridTypeEnum.RECTANGULAR = { type: 3, value: "RECTANGULAR" }; + IfcGridTypeEnum.TRIANGULAR = { type: 3, value: "TRIANGULAR" }; + IfcGridTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcGridTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcGridTypeEnum = IfcGridTypeEnum; + class IfcHeatExchangerTypeEnum { } - IFC42.IfcPolygonalFaceSet = IfcPolygonalFaceSet; - class IfcPolyline extends IfcBoundedCurve { - constructor(expressID, Points) { - super(expressID); - this.Points = Points; - this.type = 3724593414; - } + IfcHeatExchangerTypeEnum.PLATE = { type: 3, value: "PLATE" }; + IfcHeatExchangerTypeEnum.SHELLANDTUBE = { type: 3, value: "SHELLANDTUBE" }; + IfcHeatExchangerTypeEnum.TURNOUTHEATING = { type: 3, value: "TURNOUTHEATING" }; + IfcHeatExchangerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcHeatExchangerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcHeatExchangerTypeEnum = IfcHeatExchangerTypeEnum; + class IfcHumidifierTypeEnum { } - IFC42.IfcPolyline = IfcPolyline; - class IfcPort extends IfcProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.type = 3740093272; - } + IfcHumidifierTypeEnum.ADIABATICAIRWASHER = { type: 3, value: "ADIABATICAIRWASHER" }; + IfcHumidifierTypeEnum.ADIABATICATOMIZING = { type: 3, value: "ADIABATICATOMIZING" }; + IfcHumidifierTypeEnum.ADIABATICCOMPRESSEDAIRNOZZLE = { type: 3, value: "ADIABATICCOMPRESSEDAIRNOZZLE" }; + IfcHumidifierTypeEnum.ADIABATICPAN = { type: 3, value: "ADIABATICPAN" }; + IfcHumidifierTypeEnum.ADIABATICRIGIDMEDIA = { type: 3, value: "ADIABATICRIGIDMEDIA" }; + IfcHumidifierTypeEnum.ADIABATICULTRASONIC = { type: 3, value: "ADIABATICULTRASONIC" }; + IfcHumidifierTypeEnum.ADIABATICWETTEDELEMENT = { type: 3, value: "ADIABATICWETTEDELEMENT" }; + IfcHumidifierTypeEnum.ASSISTEDBUTANE = { type: 3, value: "ASSISTEDBUTANE" }; + IfcHumidifierTypeEnum.ASSISTEDELECTRIC = { type: 3, value: "ASSISTEDELECTRIC" }; + IfcHumidifierTypeEnum.ASSISTEDNATURALGAS = { type: 3, value: "ASSISTEDNATURALGAS" }; + IfcHumidifierTypeEnum.ASSISTEDPROPANE = { type: 3, value: "ASSISTEDPROPANE" }; + IfcHumidifierTypeEnum.ASSISTEDSTEAM = { type: 3, value: "ASSISTEDSTEAM" }; + IfcHumidifierTypeEnum.STEAMINJECTION = { type: 3, value: "STEAMINJECTION" }; + IfcHumidifierTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcHumidifierTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcHumidifierTypeEnum = IfcHumidifierTypeEnum; + class IfcImpactProtectionDeviceTypeEnum { } - IFC42.IfcPort = IfcPort; - class IfcProcedure extends IfcProcess { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.PredefinedType = PredefinedType; - this.type = 2744685151; - } + IfcImpactProtectionDeviceTypeEnum.BUMPER = { type: 3, value: "BUMPER" }; + IfcImpactProtectionDeviceTypeEnum.CRASHCUSHION = { type: 3, value: "CRASHCUSHION" }; + IfcImpactProtectionDeviceTypeEnum.DAMPINGSYSTEM = { type: 3, value: "DAMPINGSYSTEM" }; + IfcImpactProtectionDeviceTypeEnum.FENDER = { type: 3, value: "FENDER" }; + IfcImpactProtectionDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcImpactProtectionDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcImpactProtectionDeviceTypeEnum = IfcImpactProtectionDeviceTypeEnum; + class IfcInterceptorTypeEnum { } - IFC42.IfcProcedure = IfcProcedure; - class IfcProjectOrder extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, LongDescription) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.PredefinedType = PredefinedType; - this.Status = Status; - this.LongDescription = LongDescription; - this.type = 2904328755; - } + IfcInterceptorTypeEnum.CYCLONIC = { type: 3, value: "CYCLONIC" }; + IfcInterceptorTypeEnum.GREASE = { type: 3, value: "GREASE" }; + IfcInterceptorTypeEnum.OIL = { type: 3, value: "OIL" }; + IfcInterceptorTypeEnum.PETROL = { type: 3, value: "PETROL" }; + IfcInterceptorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcInterceptorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcInterceptorTypeEnum = IfcInterceptorTypeEnum; + class IfcInternalOrExternalEnum { } - IFC42.IfcProjectOrder = IfcProjectOrder; - class IfcProjectionElement extends IfcFeatureElementAddition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3651124850; - } + IfcInternalOrExternalEnum.EXTERNAL = { type: 3, value: "EXTERNAL" }; + IfcInternalOrExternalEnum.EXTERNAL_EARTH = { type: 3, value: "EXTERNAL_EARTH" }; + IfcInternalOrExternalEnum.EXTERNAL_FIRE = { type: 3, value: "EXTERNAL_FIRE" }; + IfcInternalOrExternalEnum.EXTERNAL_WATER = { type: 3, value: "EXTERNAL_WATER" }; + IfcInternalOrExternalEnum.INTERNAL = { type: 3, value: "INTERNAL" }; + IfcInternalOrExternalEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcInternalOrExternalEnum = IfcInternalOrExternalEnum; + class IfcInventoryTypeEnum { } - IFC42.IfcProjectionElement = IfcProjectionElement; - class IfcProtectiveDeviceType extends IfcFlowControllerType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1842657554; - } + IfcInventoryTypeEnum.ASSETINVENTORY = { type: 3, value: "ASSETINVENTORY" }; + IfcInventoryTypeEnum.FURNITUREINVENTORY = { type: 3, value: "FURNITUREINVENTORY" }; + IfcInventoryTypeEnum.SPACEINVENTORY = { type: 3, value: "SPACEINVENTORY" }; + IfcInventoryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcInventoryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcInventoryTypeEnum = IfcInventoryTypeEnum; + class IfcJunctionBoxTypeEnum { } - IFC42.IfcProtectiveDeviceType = IfcProtectiveDeviceType; - class IfcPumpType extends IfcFlowMovingDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2250791053; - } + IfcJunctionBoxTypeEnum.DATA = { type: 3, value: "DATA" }; + IfcJunctionBoxTypeEnum.POWER = { type: 3, value: "POWER" }; + IfcJunctionBoxTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcJunctionBoxTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcJunctionBoxTypeEnum = IfcJunctionBoxTypeEnum; + class IfcKnotType { } - IFC42.IfcPumpType = IfcPumpType; - class IfcRailingType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2893384427; - } + IfcKnotType.PIECEWISE_BEZIER_KNOTS = { type: 3, value: "PIECEWISE_BEZIER_KNOTS" }; + IfcKnotType.QUASI_UNIFORM_KNOTS = { type: 3, value: "QUASI_UNIFORM_KNOTS" }; + IfcKnotType.UNIFORM_KNOTS = { type: 3, value: "UNIFORM_KNOTS" }; + IfcKnotType.UNSPECIFIED = { type: 3, value: "UNSPECIFIED" }; + IFC4X32.IfcKnotType = IfcKnotType; + class IfcLaborResourceTypeEnum { } - IFC42.IfcRailingType = IfcRailingType; - class IfcRampFlightType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2324767716; - } + IfcLaborResourceTypeEnum.ADMINISTRATION = { type: 3, value: "ADMINISTRATION" }; + IfcLaborResourceTypeEnum.CARPENTRY = { type: 3, value: "CARPENTRY" }; + IfcLaborResourceTypeEnum.CLEANING = { type: 3, value: "CLEANING" }; + IfcLaborResourceTypeEnum.CONCRETE = { type: 3, value: "CONCRETE" }; + IfcLaborResourceTypeEnum.DRYWALL = { type: 3, value: "DRYWALL" }; + IfcLaborResourceTypeEnum.ELECTRIC = { type: 3, value: "ELECTRIC" }; + IfcLaborResourceTypeEnum.FINISHING = { type: 3, value: "FINISHING" }; + IfcLaborResourceTypeEnum.FLOORING = { type: 3, value: "FLOORING" }; + IfcLaborResourceTypeEnum.GENERAL = { type: 3, value: "GENERAL" }; + IfcLaborResourceTypeEnum.HVAC = { type: 3, value: "HVAC" }; + IfcLaborResourceTypeEnum.LANDSCAPING = { type: 3, value: "LANDSCAPING" }; + IfcLaborResourceTypeEnum.MASONRY = { type: 3, value: "MASONRY" }; + IfcLaborResourceTypeEnum.PAINTING = { type: 3, value: "PAINTING" }; + IfcLaborResourceTypeEnum.PAVING = { type: 3, value: "PAVING" }; + IfcLaborResourceTypeEnum.PLUMBING = { type: 3, value: "PLUMBING" }; + IfcLaborResourceTypeEnum.ROOFING = { type: 3, value: "ROOFING" }; + IfcLaborResourceTypeEnum.SITEGRADING = { type: 3, value: "SITEGRADING" }; + IfcLaborResourceTypeEnum.STEELWORK = { type: 3, value: "STEELWORK" }; + IfcLaborResourceTypeEnum.SURVEYING = { type: 3, value: "SURVEYING" }; + IfcLaborResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcLaborResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcLaborResourceTypeEnum = IfcLaborResourceTypeEnum; + class IfcLampTypeEnum { } - IFC42.IfcRampFlightType = IfcRampFlightType; - class IfcRampType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1469900589; - } + IfcLampTypeEnum.COMPACTFLUORESCENT = { type: 3, value: "COMPACTFLUORESCENT" }; + IfcLampTypeEnum.FLUORESCENT = { type: 3, value: "FLUORESCENT" }; + IfcLampTypeEnum.HALOGEN = { type: 3, value: "HALOGEN" }; + IfcLampTypeEnum.HIGHPRESSUREMERCURY = { type: 3, value: "HIGHPRESSUREMERCURY" }; + IfcLampTypeEnum.HIGHPRESSURESODIUM = { type: 3, value: "HIGHPRESSURESODIUM" }; + IfcLampTypeEnum.LED = { type: 3, value: "LED" }; + IfcLampTypeEnum.METALHALIDE = { type: 3, value: "METALHALIDE" }; + IfcLampTypeEnum.OLED = { type: 3, value: "OLED" }; + IfcLampTypeEnum.TUNGSTENFILAMENT = { type: 3, value: "TUNGSTENFILAMENT" }; + IfcLampTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcLampTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcLampTypeEnum = IfcLampTypeEnum; + class IfcLayerSetDirectionEnum { } - IFC42.IfcRampType = IfcRampType; - class IfcRationalBSplineSurfaceWithKnots extends IfcBSplineSurfaceWithKnots { - constructor(expressID, UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect, UMultiplicities, VMultiplicities, UKnots, VKnots, KnotSpec, WeightsData) { - super(expressID, UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect, UMultiplicities, VMultiplicities, UKnots, VKnots, KnotSpec); - this.UDegree = UDegree; - this.VDegree = VDegree; - this.ControlPointsList = ControlPointsList; - this.SurfaceForm = SurfaceForm; - this.UClosed = UClosed; - this.VClosed = VClosed; - this.SelfIntersect = SelfIntersect; - this.UMultiplicities = UMultiplicities; - this.VMultiplicities = VMultiplicities; - this.UKnots = UKnots; - this.VKnots = VKnots; - this.KnotSpec = KnotSpec; - this.WeightsData = WeightsData; - this.type = 683857671; - } + IfcLayerSetDirectionEnum.AXIS1 = { type: 3, value: "AXIS1" }; + IfcLayerSetDirectionEnum.AXIS2 = { type: 3, value: "AXIS2" }; + IfcLayerSetDirectionEnum.AXIS3 = { type: 3, value: "AXIS3" }; + IFC4X32.IfcLayerSetDirectionEnum = IfcLayerSetDirectionEnum; + class IfcLightDistributionCurveEnum { } - IFC42.IfcRationalBSplineSurfaceWithKnots = IfcRationalBSplineSurfaceWithKnots; - class IfcReinforcingElement extends IfcElementComponent { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.SteelGrade = SteelGrade; - this.type = 3027567501; - } + IfcLightDistributionCurveEnum.TYPE_A = { type: 3, value: "TYPE_A" }; + IfcLightDistributionCurveEnum.TYPE_B = { type: 3, value: "TYPE_B" }; + IfcLightDistributionCurveEnum.TYPE_C = { type: 3, value: "TYPE_C" }; + IfcLightDistributionCurveEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcLightDistributionCurveEnum = IfcLightDistributionCurveEnum; + class IfcLightEmissionSourceEnum { + } + IfcLightEmissionSourceEnum.COMPACTFLUORESCENT = { type: 3, value: "COMPACTFLUORESCENT" }; + IfcLightEmissionSourceEnum.FLUORESCENT = { type: 3, value: "FLUORESCENT" }; + IfcLightEmissionSourceEnum.HIGHPRESSUREMERCURY = { type: 3, value: "HIGHPRESSUREMERCURY" }; + IfcLightEmissionSourceEnum.HIGHPRESSURESODIUM = { type: 3, value: "HIGHPRESSURESODIUM" }; + IfcLightEmissionSourceEnum.LIGHTEMITTINGDIODE = { type: 3, value: "LIGHTEMITTINGDIODE" }; + IfcLightEmissionSourceEnum.LOWPRESSURESODIUM = { type: 3, value: "LOWPRESSURESODIUM" }; + IfcLightEmissionSourceEnum.LOWVOLTAGEHALOGEN = { type: 3, value: "LOWVOLTAGEHALOGEN" }; + IfcLightEmissionSourceEnum.MAINVOLTAGEHALOGEN = { type: 3, value: "MAINVOLTAGEHALOGEN" }; + IfcLightEmissionSourceEnum.METALHALIDE = { type: 3, value: "METALHALIDE" }; + IfcLightEmissionSourceEnum.TUNGSTENFILAMENT = { type: 3, value: "TUNGSTENFILAMENT" }; + IfcLightEmissionSourceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcLightEmissionSourceEnum = IfcLightEmissionSourceEnum; + class IfcLightFixtureTypeEnum { } - IFC42.IfcReinforcingElement = IfcReinforcingElement; - class IfcReinforcingElementType extends IfcElementComponentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 964333572; - } + IfcLightFixtureTypeEnum.DIRECTIONSOURCE = { type: 3, value: "DIRECTIONSOURCE" }; + IfcLightFixtureTypeEnum.POINTSOURCE = { type: 3, value: "POINTSOURCE" }; + IfcLightFixtureTypeEnum.SECURITYLIGHTING = { type: 3, value: "SECURITYLIGHTING" }; + IfcLightFixtureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcLightFixtureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcLightFixtureTypeEnum = IfcLightFixtureTypeEnum; + class IfcLiquidTerminalTypeEnum { } - IFC42.IfcReinforcingElementType = IfcReinforcingElementType; - class IfcReinforcingMesh extends IfcReinforcingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, MeshLength, MeshWidth, LongitudinalBarNominalDiameter, TransverseBarNominalDiameter, LongitudinalBarCrossSectionArea, TransverseBarCrossSectionArea, LongitudinalBarSpacing, TransverseBarSpacing, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.SteelGrade = SteelGrade; - this.MeshLength = MeshLength; - this.MeshWidth = MeshWidth; - this.LongitudinalBarNominalDiameter = LongitudinalBarNominalDiameter; - this.TransverseBarNominalDiameter = TransverseBarNominalDiameter; - this.LongitudinalBarCrossSectionArea = LongitudinalBarCrossSectionArea; - this.TransverseBarCrossSectionArea = TransverseBarCrossSectionArea; - this.LongitudinalBarSpacing = LongitudinalBarSpacing; - this.TransverseBarSpacing = TransverseBarSpacing; - this.PredefinedType = PredefinedType; - this.type = 2320036040; - } + IfcLiquidTerminalTypeEnum.HOSEREEL = { type: 3, value: "HOSEREEL" }; + IfcLiquidTerminalTypeEnum.LOADINGARM = { type: 3, value: "LOADINGARM" }; + IfcLiquidTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcLiquidTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcLiquidTerminalTypeEnum = IfcLiquidTerminalTypeEnum; + class IfcLoadGroupTypeEnum { } - IFC42.IfcReinforcingMesh = IfcReinforcingMesh; - class IfcReinforcingMeshType extends IfcReinforcingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, MeshLength, MeshWidth, LongitudinalBarNominalDiameter, TransverseBarNominalDiameter, LongitudinalBarCrossSectionArea, TransverseBarCrossSectionArea, LongitudinalBarSpacing, TransverseBarSpacing, BendingShapeCode, BendingParameters) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.MeshLength = MeshLength; - this.MeshWidth = MeshWidth; - this.LongitudinalBarNominalDiameter = LongitudinalBarNominalDiameter; - this.TransverseBarNominalDiameter = TransverseBarNominalDiameter; - this.LongitudinalBarCrossSectionArea = LongitudinalBarCrossSectionArea; - this.TransverseBarCrossSectionArea = TransverseBarCrossSectionArea; - this.LongitudinalBarSpacing = LongitudinalBarSpacing; - this.TransverseBarSpacing = TransverseBarSpacing; - this.BendingShapeCode = BendingShapeCode; - this.BendingParameters = BendingParameters; - this.type = 2310774935; - } + IfcLoadGroupTypeEnum.LOAD_CASE = { type: 3, value: "LOAD_CASE" }; + IfcLoadGroupTypeEnum.LOAD_COMBINATION = { type: 3, value: "LOAD_COMBINATION" }; + IfcLoadGroupTypeEnum.LOAD_GROUP = { type: 3, value: "LOAD_GROUP" }; + IfcLoadGroupTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcLoadGroupTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcLoadGroupTypeEnum = IfcLoadGroupTypeEnum; + class IfcLogicalOperatorEnum { } - IFC42.IfcReinforcingMeshType = IfcReinforcingMeshType; - class IfcRelAggregates extends IfcRelDecomposes { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingObject = RelatingObject; - this.RelatedObjects = RelatedObjects; - this.type = 160246688; - } + IfcLogicalOperatorEnum.LOGICALAND = { type: 3, value: "LOGICALAND" }; + IfcLogicalOperatorEnum.LOGICALNOTAND = { type: 3, value: "LOGICALNOTAND" }; + IfcLogicalOperatorEnum.LOGICALNOTOR = { type: 3, value: "LOGICALNOTOR" }; + IfcLogicalOperatorEnum.LOGICALOR = { type: 3, value: "LOGICALOR" }; + IfcLogicalOperatorEnum.LOGICALXOR = { type: 3, value: "LOGICALXOR" }; + IFC4X32.IfcLogicalOperatorEnum = IfcLogicalOperatorEnum; + class IfcMarineFacilityTypeEnum { } - IFC42.IfcRelAggregates = IfcRelAggregates; - class IfcRoofType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2781568857; - } + IfcMarineFacilityTypeEnum.BARRIERBEACH = { type: 3, value: "BARRIERBEACH" }; + IfcMarineFacilityTypeEnum.BREAKWATER = { type: 3, value: "BREAKWATER" }; + IfcMarineFacilityTypeEnum.CANAL = { type: 3, value: "CANAL" }; + IfcMarineFacilityTypeEnum.DRYDOCK = { type: 3, value: "DRYDOCK" }; + IfcMarineFacilityTypeEnum.FLOATINGDOCK = { type: 3, value: "FLOATINGDOCK" }; + IfcMarineFacilityTypeEnum.HYDROLIFT = { type: 3, value: "HYDROLIFT" }; + IfcMarineFacilityTypeEnum.JETTY = { type: 3, value: "JETTY" }; + IfcMarineFacilityTypeEnum.LAUNCHRECOVERY = { type: 3, value: "LAUNCHRECOVERY" }; + IfcMarineFacilityTypeEnum.MARINEDEFENCE = { type: 3, value: "MARINEDEFENCE" }; + IfcMarineFacilityTypeEnum.NAVIGATIONALCHANNEL = { type: 3, value: "NAVIGATIONALCHANNEL" }; + IfcMarineFacilityTypeEnum.PORT = { type: 3, value: "PORT" }; + IfcMarineFacilityTypeEnum.QUAY = { type: 3, value: "QUAY" }; + IfcMarineFacilityTypeEnum.REVETMENT = { type: 3, value: "REVETMENT" }; + IfcMarineFacilityTypeEnum.SHIPLIFT = { type: 3, value: "SHIPLIFT" }; + IfcMarineFacilityTypeEnum.SHIPLOCK = { type: 3, value: "SHIPLOCK" }; + IfcMarineFacilityTypeEnum.SHIPYARD = { type: 3, value: "SHIPYARD" }; + IfcMarineFacilityTypeEnum.SLIPWAY = { type: 3, value: "SLIPWAY" }; + IfcMarineFacilityTypeEnum.WATERWAY = { type: 3, value: "WATERWAY" }; + IfcMarineFacilityTypeEnum.WATERWAYSHIPLIFT = { type: 3, value: "WATERWAYSHIPLIFT" }; + IfcMarineFacilityTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcMarineFacilityTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcMarineFacilityTypeEnum = IfcMarineFacilityTypeEnum; + class IfcMarinePartTypeEnum { } - IFC42.IfcRoofType = IfcRoofType; - class IfcSanitaryTerminalType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1768891740; - } + IfcMarinePartTypeEnum.ABOVEWATERLINE = { type: 3, value: "ABOVEWATERLINE" }; + IfcMarinePartTypeEnum.ANCHORAGE = { type: 3, value: "ANCHORAGE" }; + IfcMarinePartTypeEnum.APPROACHCHANNEL = { type: 3, value: "APPROACHCHANNEL" }; + IfcMarinePartTypeEnum.BELOWWATERLINE = { type: 3, value: "BELOWWATERLINE" }; + IfcMarinePartTypeEnum.BERTHINGSTRUCTURE = { type: 3, value: "BERTHINGSTRUCTURE" }; + IfcMarinePartTypeEnum.CHAMBER = { type: 3, value: "CHAMBER" }; + IfcMarinePartTypeEnum.CILL_LEVEL = { type: 3, value: "CILL_LEVEL" }; + IfcMarinePartTypeEnum.COPELEVEL = { type: 3, value: "COPELEVEL" }; + IfcMarinePartTypeEnum.CORE = { type: 3, value: "CORE" }; + IfcMarinePartTypeEnum.CREST = { type: 3, value: "CREST" }; + IfcMarinePartTypeEnum.GATEHEAD = { type: 3, value: "GATEHEAD" }; + IfcMarinePartTypeEnum.GUDINGSTRUCTURE = { type: 3, value: "GUDINGSTRUCTURE" }; + IfcMarinePartTypeEnum.HIGHWATERLINE = { type: 3, value: "HIGHWATERLINE" }; + IfcMarinePartTypeEnum.LANDFIELD = { type: 3, value: "LANDFIELD" }; + IfcMarinePartTypeEnum.LEEWARDSIDE = { type: 3, value: "LEEWARDSIDE" }; + IfcMarinePartTypeEnum.LOWWATERLINE = { type: 3, value: "LOWWATERLINE" }; + IfcMarinePartTypeEnum.MANUFACTURING = { type: 3, value: "MANUFACTURING" }; + IfcMarinePartTypeEnum.NAVIGATIONALAREA = { type: 3, value: "NAVIGATIONALAREA" }; + IfcMarinePartTypeEnum.PROTECTION = { type: 3, value: "PROTECTION" }; + IfcMarinePartTypeEnum.SHIPTRANSFER = { type: 3, value: "SHIPTRANSFER" }; + IfcMarinePartTypeEnum.STORAGEAREA = { type: 3, value: "STORAGEAREA" }; + IfcMarinePartTypeEnum.VEHICLESERVICING = { type: 3, value: "VEHICLESERVICING" }; + IfcMarinePartTypeEnum.WATERFIELD = { type: 3, value: "WATERFIELD" }; + IfcMarinePartTypeEnum.WEATHERSIDE = { type: 3, value: "WEATHERSIDE" }; + IfcMarinePartTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcMarinePartTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcMarinePartTypeEnum = IfcMarinePartTypeEnum; + class IfcMechanicalFastenerTypeEnum { } - IFC42.IfcSanitaryTerminalType = IfcSanitaryTerminalType; - class IfcSeamCurve extends IfcSurfaceCurve { - constructor(expressID, Curve3D, AssociatedGeometry, MasterRepresentation) { - super(expressID, Curve3D, AssociatedGeometry, MasterRepresentation); - this.Curve3D = Curve3D; - this.AssociatedGeometry = AssociatedGeometry; - this.MasterRepresentation = MasterRepresentation; - this.type = 2157484638; - } + IfcMechanicalFastenerTypeEnum.ANCHORBOLT = { type: 3, value: "ANCHORBOLT" }; + IfcMechanicalFastenerTypeEnum.BOLT = { type: 3, value: "BOLT" }; + IfcMechanicalFastenerTypeEnum.CHAIN = { type: 3, value: "CHAIN" }; + IfcMechanicalFastenerTypeEnum.COUPLER = { type: 3, value: "COUPLER" }; + IfcMechanicalFastenerTypeEnum.DOWEL = { type: 3, value: "DOWEL" }; + IfcMechanicalFastenerTypeEnum.NAIL = { type: 3, value: "NAIL" }; + IfcMechanicalFastenerTypeEnum.NAILPLATE = { type: 3, value: "NAILPLATE" }; + IfcMechanicalFastenerTypeEnum.RAILFASTENING = { type: 3, value: "RAILFASTENING" }; + IfcMechanicalFastenerTypeEnum.RAILJOINT = { type: 3, value: "RAILJOINT" }; + IfcMechanicalFastenerTypeEnum.RIVET = { type: 3, value: "RIVET" }; + IfcMechanicalFastenerTypeEnum.ROPE = { type: 3, value: "ROPE" }; + IfcMechanicalFastenerTypeEnum.SCREW = { type: 3, value: "SCREW" }; + IfcMechanicalFastenerTypeEnum.SHEARCONNECTOR = { type: 3, value: "SHEARCONNECTOR" }; + IfcMechanicalFastenerTypeEnum.STAPLE = { type: 3, value: "STAPLE" }; + IfcMechanicalFastenerTypeEnum.STUDSHEARCONNECTOR = { type: 3, value: "STUDSHEARCONNECTOR" }; + IfcMechanicalFastenerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcMechanicalFastenerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcMechanicalFastenerTypeEnum = IfcMechanicalFastenerTypeEnum; + class IfcMedicalDeviceTypeEnum { } - IFC42.IfcSeamCurve = IfcSeamCurve; - class IfcShadingDeviceType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 4074543187; - } + IfcMedicalDeviceTypeEnum.AIRSTATION = { type: 3, value: "AIRSTATION" }; + IfcMedicalDeviceTypeEnum.FEEDAIRUNIT = { type: 3, value: "FEEDAIRUNIT" }; + IfcMedicalDeviceTypeEnum.OXYGENGENERATOR = { type: 3, value: "OXYGENGENERATOR" }; + IfcMedicalDeviceTypeEnum.OXYGENPLANT = { type: 3, value: "OXYGENPLANT" }; + IfcMedicalDeviceTypeEnum.VACUUMSTATION = { type: 3, value: "VACUUMSTATION" }; + IfcMedicalDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcMedicalDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcMedicalDeviceTypeEnum = IfcMedicalDeviceTypeEnum; + class IfcMemberTypeEnum { } - IFC42.IfcShadingDeviceType = IfcShadingDeviceType; - class IfcSite extends IfcSpatialStructureElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, RefLatitude, RefLongitude, RefElevation, LandTitleNumber, SiteAddress) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.RefLatitude = RefLatitude; - this.RefLongitude = RefLongitude; - this.RefElevation = RefElevation; - this.LandTitleNumber = LandTitleNumber; - this.SiteAddress = SiteAddress; - this.type = 4097777520; - } + IfcMemberTypeEnum.ARCH_SEGMENT = { type: 3, value: "ARCH_SEGMENT" }; + IfcMemberTypeEnum.BRACE = { type: 3, value: "BRACE" }; + IfcMemberTypeEnum.CHORD = { type: 3, value: "CHORD" }; + IfcMemberTypeEnum.COLLAR = { type: 3, value: "COLLAR" }; + IfcMemberTypeEnum.MEMBER = { type: 3, value: "MEMBER" }; + IfcMemberTypeEnum.MULLION = { type: 3, value: "MULLION" }; + IfcMemberTypeEnum.PLATE = { type: 3, value: "PLATE" }; + IfcMemberTypeEnum.POST = { type: 3, value: "POST" }; + IfcMemberTypeEnum.PURLIN = { type: 3, value: "PURLIN" }; + IfcMemberTypeEnum.RAFTER = { type: 3, value: "RAFTER" }; + IfcMemberTypeEnum.STAY_CABLE = { type: 3, value: "STAY_CABLE" }; + IfcMemberTypeEnum.STIFFENING_RIB = { type: 3, value: "STIFFENING_RIB" }; + IfcMemberTypeEnum.STRINGER = { type: 3, value: "STRINGER" }; + IfcMemberTypeEnum.STRUCTURALCABLE = { type: 3, value: "STRUCTURALCABLE" }; + IfcMemberTypeEnum.STRUT = { type: 3, value: "STRUT" }; + IfcMemberTypeEnum.STUD = { type: 3, value: "STUD" }; + IfcMemberTypeEnum.SUSPENDER = { type: 3, value: "SUSPENDER" }; + IfcMemberTypeEnum.SUSPENSION_CABLE = { type: 3, value: "SUSPENSION_CABLE" }; + IfcMemberTypeEnum.TIEBAR = { type: 3, value: "TIEBAR" }; + IfcMemberTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcMemberTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcMemberTypeEnum = IfcMemberTypeEnum; + class IfcMobileTelecommunicationsApplianceTypeEnum { } - IFC42.IfcSite = IfcSite; - class IfcSlabType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2533589738; - } + IfcMobileTelecommunicationsApplianceTypeEnum.ACCESSPOINT = { type: 3, value: "ACCESSPOINT" }; + IfcMobileTelecommunicationsApplianceTypeEnum.BASEBANDUNIT = { type: 3, value: "BASEBANDUNIT" }; + IfcMobileTelecommunicationsApplianceTypeEnum.BASETRANSCEIVERSTATION = { type: 3, value: "BASETRANSCEIVERSTATION" }; + IfcMobileTelecommunicationsApplianceTypeEnum.E_UTRAN_NODE_B = { type: 3, value: "E_UTRAN_NODE_B" }; + IfcMobileTelecommunicationsApplianceTypeEnum.GATEWAY_GPRS_SUPPORT_NODE = { type: 3, value: "GATEWAY_GPRS_SUPPORT_NODE" }; + IfcMobileTelecommunicationsApplianceTypeEnum.MASTERUNIT = { type: 3, value: "MASTERUNIT" }; + IfcMobileTelecommunicationsApplianceTypeEnum.MOBILESWITCHINGCENTER = { type: 3, value: "MOBILESWITCHINGCENTER" }; + IfcMobileTelecommunicationsApplianceTypeEnum.MSCSERVER = { type: 3, value: "MSCSERVER" }; + IfcMobileTelecommunicationsApplianceTypeEnum.PACKETCONTROLUNIT = { type: 3, value: "PACKETCONTROLUNIT" }; + IfcMobileTelecommunicationsApplianceTypeEnum.REMOTERADIOUNIT = { type: 3, value: "REMOTERADIOUNIT" }; + IfcMobileTelecommunicationsApplianceTypeEnum.REMOTEUNIT = { type: 3, value: "REMOTEUNIT" }; + IfcMobileTelecommunicationsApplianceTypeEnum.SERVICE_GPRS_SUPPORT_NODE = { type: 3, value: "SERVICE_GPRS_SUPPORT_NODE" }; + IfcMobileTelecommunicationsApplianceTypeEnum.SUBSCRIBERSERVER = { type: 3, value: "SUBSCRIBERSERVER" }; + IfcMobileTelecommunicationsApplianceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcMobileTelecommunicationsApplianceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcMobileTelecommunicationsApplianceTypeEnum = IfcMobileTelecommunicationsApplianceTypeEnum; + class IfcMooringDeviceTypeEnum { } - IFC42.IfcSlabType = IfcSlabType; - class IfcSolarDeviceType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1072016465; - } + IfcMooringDeviceTypeEnum.BOLLARD = { type: 3, value: "BOLLARD" }; + IfcMooringDeviceTypeEnum.LINETENSIONER = { type: 3, value: "LINETENSIONER" }; + IfcMooringDeviceTypeEnum.MAGNETICDEVICE = { type: 3, value: "MAGNETICDEVICE" }; + IfcMooringDeviceTypeEnum.MOORINGHOOKS = { type: 3, value: "MOORINGHOOKS" }; + IfcMooringDeviceTypeEnum.VACUUMDEVICE = { type: 3, value: "VACUUMDEVICE" }; + IfcMooringDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcMooringDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcMooringDeviceTypeEnum = IfcMooringDeviceTypeEnum; + class IfcMotorConnectionTypeEnum { } - IFC42.IfcSolarDeviceType = IfcSolarDeviceType; - class IfcSpace extends IfcSpatialStructureElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, PredefinedType, ElevationWithFlooring) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.PredefinedType = PredefinedType; - this.ElevationWithFlooring = ElevationWithFlooring; - this.type = 3856911033; - } + IfcMotorConnectionTypeEnum.BELTDRIVE = { type: 3, value: "BELTDRIVE" }; + IfcMotorConnectionTypeEnum.COUPLING = { type: 3, value: "COUPLING" }; + IfcMotorConnectionTypeEnum.DIRECTDRIVE = { type: 3, value: "DIRECTDRIVE" }; + IfcMotorConnectionTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcMotorConnectionTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcMotorConnectionTypeEnum = IfcMotorConnectionTypeEnum; + class IfcNavigationElementTypeEnum { } - IFC42.IfcSpace = IfcSpace; - class IfcSpaceHeaterType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1305183839; - } + IfcNavigationElementTypeEnum.BEACON = { type: 3, value: "BEACON" }; + IfcNavigationElementTypeEnum.BUOY = { type: 3, value: "BUOY" }; + IfcNavigationElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcNavigationElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcNavigationElementTypeEnum = IfcNavigationElementTypeEnum; + class IfcObjectTypeEnum { } - IFC42.IfcSpaceHeaterType = IfcSpaceHeaterType; - class IfcSpaceType extends IfcSpatialStructureElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, LongName) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.LongName = LongName; - this.type = 3812236995; - } + IfcObjectTypeEnum.ACTOR = { type: 3, value: "ACTOR" }; + IfcObjectTypeEnum.CONTROL = { type: 3, value: "CONTROL" }; + IfcObjectTypeEnum.GROUP = { type: 3, value: "GROUP" }; + IfcObjectTypeEnum.PROCESS = { type: 3, value: "PROCESS" }; + IfcObjectTypeEnum.PRODUCT = { type: 3, value: "PRODUCT" }; + IfcObjectTypeEnum.PROJECT = { type: 3, value: "PROJECT" }; + IfcObjectTypeEnum.RESOURCE = { type: 3, value: "RESOURCE" }; + IfcObjectTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcObjectTypeEnum = IfcObjectTypeEnum; + class IfcObjectiveEnum { } - IFC42.IfcSpaceType = IfcSpaceType; - class IfcStackTerminalType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3112655638; - } + IfcObjectiveEnum.CODECOMPLIANCE = { type: 3, value: "CODECOMPLIANCE" }; + IfcObjectiveEnum.CODEWAIVER = { type: 3, value: "CODEWAIVER" }; + IfcObjectiveEnum.DESIGNINTENT = { type: 3, value: "DESIGNINTENT" }; + IfcObjectiveEnum.EXTERNAL = { type: 3, value: "EXTERNAL" }; + IfcObjectiveEnum.HEALTHANDSAFETY = { type: 3, value: "HEALTHANDSAFETY" }; + IfcObjectiveEnum.MERGECONFLICT = { type: 3, value: "MERGECONFLICT" }; + IfcObjectiveEnum.MODELVIEW = { type: 3, value: "MODELVIEW" }; + IfcObjectiveEnum.PARAMETER = { type: 3, value: "PARAMETER" }; + IfcObjectiveEnum.REQUIREMENT = { type: 3, value: "REQUIREMENT" }; + IfcObjectiveEnum.SPECIFICATION = { type: 3, value: "SPECIFICATION" }; + IfcObjectiveEnum.TRIGGERCONDITION = { type: 3, value: "TRIGGERCONDITION" }; + IfcObjectiveEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcObjectiveEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcObjectiveEnum = IfcObjectiveEnum; + class IfcOccupantTypeEnum { } - IFC42.IfcStackTerminalType = IfcStackTerminalType; - class IfcStairFlightType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1039846685; - } + IfcOccupantTypeEnum.ASSIGNEE = { type: 3, value: "ASSIGNEE" }; + IfcOccupantTypeEnum.ASSIGNOR = { type: 3, value: "ASSIGNOR" }; + IfcOccupantTypeEnum.LESSEE = { type: 3, value: "LESSEE" }; + IfcOccupantTypeEnum.LESSOR = { type: 3, value: "LESSOR" }; + IfcOccupantTypeEnum.LETTINGAGENT = { type: 3, value: "LETTINGAGENT" }; + IfcOccupantTypeEnum.OWNER = { type: 3, value: "OWNER" }; + IfcOccupantTypeEnum.TENANT = { type: 3, value: "TENANT" }; + IfcOccupantTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcOccupantTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcOccupantTypeEnum = IfcOccupantTypeEnum; + class IfcOpeningElementTypeEnum { } - IFC42.IfcStairFlightType = IfcStairFlightType; - class IfcStairType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 338393293; - } + IfcOpeningElementTypeEnum.OPENING = { type: 3, value: "OPENING" }; + IfcOpeningElementTypeEnum.RECESS = { type: 3, value: "RECESS" }; + IfcOpeningElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcOpeningElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcOpeningElementTypeEnum = IfcOpeningElementTypeEnum; + class IfcOutletTypeEnum { + } + IfcOutletTypeEnum.AUDIOVISUALOUTLET = { type: 3, value: "AUDIOVISUALOUTLET" }; + IfcOutletTypeEnum.COMMUNICATIONSOUTLET = { type: 3, value: "COMMUNICATIONSOUTLET" }; + IfcOutletTypeEnum.DATAOUTLET = { type: 3, value: "DATAOUTLET" }; + IfcOutletTypeEnum.POWEROUTLET = { type: 3, value: "POWEROUTLET" }; + IfcOutletTypeEnum.TELEPHONEOUTLET = { type: 3, value: "TELEPHONEOUTLET" }; + IfcOutletTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcOutletTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcOutletTypeEnum = IfcOutletTypeEnum; + class IfcPavementTypeEnum { } - IFC42.IfcStairType = IfcStairType; - class IfcStructuralAction extends IfcStructuralActivity { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.DestabilizingLoad = DestabilizingLoad; - this.type = 682877961; - } + IfcPavementTypeEnum.FLEXIBLE = { type: 3, value: "FLEXIBLE" }; + IfcPavementTypeEnum.RIGID = { type: 3, value: "RIGID" }; + IfcPavementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcPavementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcPavementTypeEnum = IfcPavementTypeEnum; + class IfcPerformanceHistoryTypeEnum { } - IFC42.IfcStructuralAction = IfcStructuralAction; - class IfcStructuralConnection extends IfcStructuralItem { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedCondition = AppliedCondition; - this.type = 1179482911; - } + IfcPerformanceHistoryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcPerformanceHistoryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcPerformanceHistoryTypeEnum = IfcPerformanceHistoryTypeEnum; + class IfcPermeableCoveringOperationEnum { } - IFC42.IfcStructuralConnection = IfcStructuralConnection; - class IfcStructuralCurveAction extends IfcStructuralAction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.DestabilizingLoad = DestabilizingLoad; - this.ProjectedOrTrue = ProjectedOrTrue; - this.PredefinedType = PredefinedType; - this.type = 1004757350; - } + IfcPermeableCoveringOperationEnum.GRILL = { type: 3, value: "GRILL" }; + IfcPermeableCoveringOperationEnum.LOUVER = { type: 3, value: "LOUVER" }; + IfcPermeableCoveringOperationEnum.SCREEN = { type: 3, value: "SCREEN" }; + IfcPermeableCoveringOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcPermeableCoveringOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcPermeableCoveringOperationEnum = IfcPermeableCoveringOperationEnum; + class IfcPermitTypeEnum { } - IFC42.IfcStructuralCurveAction = IfcStructuralCurveAction; - class IfcStructuralCurveConnection extends IfcStructuralConnection { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition, Axis) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedCondition = AppliedCondition; - this.Axis = Axis; - this.type = 4243806635; - } + IfcPermitTypeEnum.ACCESS = { type: 3, value: "ACCESS" }; + IfcPermitTypeEnum.BUILDING = { type: 3, value: "BUILDING" }; + IfcPermitTypeEnum.WORK = { type: 3, value: "WORK" }; + IfcPermitTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcPermitTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcPermitTypeEnum = IfcPermitTypeEnum; + class IfcPhysicalOrVirtualEnum { } - IFC42.IfcStructuralCurveConnection = IfcStructuralCurveConnection; - class IfcStructuralCurveMember extends IfcStructuralMember { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Axis) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.PredefinedType = PredefinedType; - this.Axis = Axis; - this.type = 214636428; - } + IfcPhysicalOrVirtualEnum.PHYSICAL = { type: 3, value: "PHYSICAL" }; + IfcPhysicalOrVirtualEnum.VIRTUAL = { type: 3, value: "VIRTUAL" }; + IfcPhysicalOrVirtualEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcPhysicalOrVirtualEnum = IfcPhysicalOrVirtualEnum; + class IfcPileConstructionEnum { } - IFC42.IfcStructuralCurveMember = IfcStructuralCurveMember; - class IfcStructuralCurveMemberVarying extends IfcStructuralCurveMember { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Axis) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Axis); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.PredefinedType = PredefinedType; - this.Axis = Axis; - this.type = 2445595289; - } + IfcPileConstructionEnum.CAST_IN_PLACE = { type: 3, value: "CAST_IN_PLACE" }; + IfcPileConstructionEnum.COMPOSITE = { type: 3, value: "COMPOSITE" }; + IfcPileConstructionEnum.PRECAST_CONCRETE = { type: 3, value: "PRECAST_CONCRETE" }; + IfcPileConstructionEnum.PREFAB_STEEL = { type: 3, value: "PREFAB_STEEL" }; + IfcPileConstructionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcPileConstructionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcPileConstructionEnum = IfcPileConstructionEnum; + class IfcPileTypeEnum { } - IFC42.IfcStructuralCurveMemberVarying = IfcStructuralCurveMemberVarying; - class IfcStructuralCurveReaction extends IfcStructuralReaction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.PredefinedType = PredefinedType; - this.type = 2757150158; - } + IfcPileTypeEnum.BORED = { type: 3, value: "BORED" }; + IfcPileTypeEnum.COHESION = { type: 3, value: "COHESION" }; + IfcPileTypeEnum.DRIVEN = { type: 3, value: "DRIVEN" }; + IfcPileTypeEnum.FRICTION = { type: 3, value: "FRICTION" }; + IfcPileTypeEnum.JETGROUTING = { type: 3, value: "JETGROUTING" }; + IfcPileTypeEnum.SUPPORT = { type: 3, value: "SUPPORT" }; + IfcPileTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcPileTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcPileTypeEnum = IfcPileTypeEnum; + class IfcPipeFittingTypeEnum { } - IFC42.IfcStructuralCurveReaction = IfcStructuralCurveReaction; - class IfcStructuralLinearAction extends IfcStructuralCurveAction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.DestabilizingLoad = DestabilizingLoad; - this.ProjectedOrTrue = ProjectedOrTrue; - this.PredefinedType = PredefinedType; - this.type = 1807405624; - } + IfcPipeFittingTypeEnum.BEND = { type: 3, value: "BEND" }; + IfcPipeFittingTypeEnum.CONNECTOR = { type: 3, value: "CONNECTOR" }; + IfcPipeFittingTypeEnum.ENTRY = { type: 3, value: "ENTRY" }; + IfcPipeFittingTypeEnum.EXIT = { type: 3, value: "EXIT" }; + IfcPipeFittingTypeEnum.JUNCTION = { type: 3, value: "JUNCTION" }; + IfcPipeFittingTypeEnum.OBSTRUCTION = { type: 3, value: "OBSTRUCTION" }; + IfcPipeFittingTypeEnum.TRANSITION = { type: 3, value: "TRANSITION" }; + IfcPipeFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcPipeFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcPipeFittingTypeEnum = IfcPipeFittingTypeEnum; + class IfcPipeSegmentTypeEnum { } - IFC42.IfcStructuralLinearAction = IfcStructuralLinearAction; - class IfcStructuralLoadGroup extends IfcGroup { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, ActionType, ActionSource, Coefficient, Purpose) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.PredefinedType = PredefinedType; - this.ActionType = ActionType; - this.ActionSource = ActionSource; - this.Coefficient = Coefficient; - this.Purpose = Purpose; - this.type = 1252848954; - } + IfcPipeSegmentTypeEnum.CULVERT = { type: 3, value: "CULVERT" }; + IfcPipeSegmentTypeEnum.FLEXIBLESEGMENT = { type: 3, value: "FLEXIBLESEGMENT" }; + IfcPipeSegmentTypeEnum.GUTTER = { type: 3, value: "GUTTER" }; + IfcPipeSegmentTypeEnum.RIGIDSEGMENT = { type: 3, value: "RIGIDSEGMENT" }; + IfcPipeSegmentTypeEnum.SPOOL = { type: 3, value: "SPOOL" }; + IfcPipeSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcPipeSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcPipeSegmentTypeEnum = IfcPipeSegmentTypeEnum; + class IfcPlateTypeEnum { } - IFC42.IfcStructuralLoadGroup = IfcStructuralLoadGroup; - class IfcStructuralPointAction extends IfcStructuralAction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.DestabilizingLoad = DestabilizingLoad; - this.type = 2082059205; - } + IfcPlateTypeEnum.BASE_PLATE = { type: 3, value: "BASE_PLATE" }; + IfcPlateTypeEnum.COVER_PLATE = { type: 3, value: "COVER_PLATE" }; + IfcPlateTypeEnum.CURTAIN_PANEL = { type: 3, value: "CURTAIN_PANEL" }; + IfcPlateTypeEnum.FLANGE_PLATE = { type: 3, value: "FLANGE_PLATE" }; + IfcPlateTypeEnum.GUSSET_PLATE = { type: 3, value: "GUSSET_PLATE" }; + IfcPlateTypeEnum.SHEET = { type: 3, value: "SHEET" }; + IfcPlateTypeEnum.SPLICE_PLATE = { type: 3, value: "SPLICE_PLATE" }; + IfcPlateTypeEnum.STIFFENER_PLATE = { type: 3, value: "STIFFENER_PLATE" }; + IfcPlateTypeEnum.WEB_PLATE = { type: 3, value: "WEB_PLATE" }; + IfcPlateTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcPlateTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcPlateTypeEnum = IfcPlateTypeEnum; + class IfcPreferredSurfaceCurveRepresentation { } - IFC42.IfcStructuralPointAction = IfcStructuralPointAction; - class IfcStructuralPointConnection extends IfcStructuralConnection { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition, ConditionCoordinateSystem) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedCondition = AppliedCondition; - this.ConditionCoordinateSystem = ConditionCoordinateSystem; - this.type = 734778138; - } + IfcPreferredSurfaceCurveRepresentation.CURVE3D = { type: 3, value: "CURVE3D" }; + IfcPreferredSurfaceCurveRepresentation.PCURVE_S1 = { type: 3, value: "PCURVE_S1" }; + IfcPreferredSurfaceCurveRepresentation.PCURVE_S2 = { type: 3, value: "PCURVE_S2" }; + IFC4X32.IfcPreferredSurfaceCurveRepresentation = IfcPreferredSurfaceCurveRepresentation; + class IfcProcedureTypeEnum { } - IFC42.IfcStructuralPointConnection = IfcStructuralPointConnection; - class IfcStructuralPointReaction extends IfcStructuralReaction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.type = 1235345126; - } + IfcProcedureTypeEnum.ADVICE_CAUTION = { type: 3, value: "ADVICE_CAUTION" }; + IfcProcedureTypeEnum.ADVICE_NOTE = { type: 3, value: "ADVICE_NOTE" }; + IfcProcedureTypeEnum.ADVICE_WARNING = { type: 3, value: "ADVICE_WARNING" }; + IfcProcedureTypeEnum.CALIBRATION = { type: 3, value: "CALIBRATION" }; + IfcProcedureTypeEnum.DIAGNOSTIC = { type: 3, value: "DIAGNOSTIC" }; + IfcProcedureTypeEnum.SHUTDOWN = { type: 3, value: "SHUTDOWN" }; + IfcProcedureTypeEnum.STARTUP = { type: 3, value: "STARTUP" }; + IfcProcedureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcProcedureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcProcedureTypeEnum = IfcProcedureTypeEnum; + class IfcProfileTypeEnum { } - IFC42.IfcStructuralPointReaction = IfcStructuralPointReaction; - class IfcStructuralResultGroup extends IfcGroup { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TheoryType, ResultForLoadGroup, IsLinear) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.TheoryType = TheoryType; - this.ResultForLoadGroup = ResultForLoadGroup; - this.IsLinear = IsLinear; - this.type = 2986769608; - } + IfcProfileTypeEnum.AREA = { type: 3, value: "AREA" }; + IfcProfileTypeEnum.CURVE = { type: 3, value: "CURVE" }; + IFC4X32.IfcProfileTypeEnum = IfcProfileTypeEnum; + class IfcProjectOrderTypeEnum { } - IFC42.IfcStructuralResultGroup = IfcStructuralResultGroup; - class IfcStructuralSurfaceAction extends IfcStructuralAction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.DestabilizingLoad = DestabilizingLoad; - this.ProjectedOrTrue = ProjectedOrTrue; - this.PredefinedType = PredefinedType; - this.type = 3657597509; - } + IfcProjectOrderTypeEnum.CHANGEORDER = { type: 3, value: "CHANGEORDER" }; + IfcProjectOrderTypeEnum.MAINTENANCEWORKORDER = { type: 3, value: "MAINTENANCEWORKORDER" }; + IfcProjectOrderTypeEnum.MOVEORDER = { type: 3, value: "MOVEORDER" }; + IfcProjectOrderTypeEnum.PURCHASEORDER = { type: 3, value: "PURCHASEORDER" }; + IfcProjectOrderTypeEnum.WORKORDER = { type: 3, value: "WORKORDER" }; + IfcProjectOrderTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcProjectOrderTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcProjectOrderTypeEnum = IfcProjectOrderTypeEnum; + class IfcProjectedOrTrueLengthEnum { } - IFC42.IfcStructuralSurfaceAction = IfcStructuralSurfaceAction; - class IfcStructuralSurfaceConnection extends IfcStructuralConnection { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedCondition = AppliedCondition; - this.type = 1975003073; - } + IfcProjectedOrTrueLengthEnum.PROJECTED_LENGTH = { type: 3, value: "PROJECTED_LENGTH" }; + IfcProjectedOrTrueLengthEnum.TRUE_LENGTH = { type: 3, value: "TRUE_LENGTH" }; + IFC4X32.IfcProjectedOrTrueLengthEnum = IfcProjectedOrTrueLengthEnum; + class IfcProjectionElementTypeEnum { } - IFC42.IfcStructuralSurfaceConnection = IfcStructuralSurfaceConnection; - class IfcSubContractResource extends IfcConstructionResource { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.Usage = Usage; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.PredefinedType = PredefinedType; - this.type = 148013059; - } + IfcProjectionElementTypeEnum.BLISTER = { type: 3, value: "BLISTER" }; + IfcProjectionElementTypeEnum.DEVIATOR = { type: 3, value: "DEVIATOR" }; + IfcProjectionElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcProjectionElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcProjectionElementTypeEnum = IfcProjectionElementTypeEnum; + class IfcPropertySetTemplateTypeEnum { } - IFC42.IfcSubContractResource = IfcSubContractResource; - class IfcSurfaceFeature extends IfcFeatureElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3101698114; - } + IfcPropertySetTemplateTypeEnum.PSET_MATERIALDRIVEN = { type: 3, value: "PSET_MATERIALDRIVEN" }; + IfcPropertySetTemplateTypeEnum.PSET_OCCURRENCEDRIVEN = { type: 3, value: "PSET_OCCURRENCEDRIVEN" }; + IfcPropertySetTemplateTypeEnum.PSET_PERFORMANCEDRIVEN = { type: 3, value: "PSET_PERFORMANCEDRIVEN" }; + IfcPropertySetTemplateTypeEnum.PSET_PROFILEDRIVEN = { type: 3, value: "PSET_PROFILEDRIVEN" }; + IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENONLY = { type: 3, value: "PSET_TYPEDRIVENONLY" }; + IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENOVERRIDE = { type: 3, value: "PSET_TYPEDRIVENOVERRIDE" }; + IfcPropertySetTemplateTypeEnum.QTO_OCCURRENCEDRIVEN = { type: 3, value: "QTO_OCCURRENCEDRIVEN" }; + IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENONLY = { type: 3, value: "QTO_TYPEDRIVENONLY" }; + IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENOVERRIDE = { type: 3, value: "QTO_TYPEDRIVENOVERRIDE" }; + IfcPropertySetTemplateTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcPropertySetTemplateTypeEnum = IfcPropertySetTemplateTypeEnum; + class IfcProtectiveDeviceTrippingUnitTypeEnum { } - IFC42.IfcSurfaceFeature = IfcSurfaceFeature; - class IfcSwitchingDeviceType extends IfcFlowControllerType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2315554128; - } + IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTROMAGNETIC = { type: 3, value: "ELECTROMAGNETIC" }; + IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTRONIC = { type: 3, value: "ELECTRONIC" }; + IfcProtectiveDeviceTrippingUnitTypeEnum.RESIDUALCURRENT = { type: 3, value: "RESIDUALCURRENT" }; + IfcProtectiveDeviceTrippingUnitTypeEnum.THERMAL = { type: 3, value: "THERMAL" }; + IfcProtectiveDeviceTrippingUnitTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcProtectiveDeviceTrippingUnitTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcProtectiveDeviceTrippingUnitTypeEnum = IfcProtectiveDeviceTrippingUnitTypeEnum; + class IfcProtectiveDeviceTypeEnum { } - IFC42.IfcSwitchingDeviceType = IfcSwitchingDeviceType; - class IfcSystem extends IfcGroup { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.type = 2254336722; - } + IfcProtectiveDeviceTypeEnum.ANTI_ARCING_DEVICE = { type: 3, value: "ANTI_ARCING_DEVICE" }; + IfcProtectiveDeviceTypeEnum.CIRCUITBREAKER = { type: 3, value: "CIRCUITBREAKER" }; + IfcProtectiveDeviceTypeEnum.EARTHINGSWITCH = { type: 3, value: "EARTHINGSWITCH" }; + IfcProtectiveDeviceTypeEnum.EARTHLEAKAGECIRCUITBREAKER = { type: 3, value: "EARTHLEAKAGECIRCUITBREAKER" }; + IfcProtectiveDeviceTypeEnum.FUSEDISCONNECTOR = { type: 3, value: "FUSEDISCONNECTOR" }; + IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTCIRCUITBREAKER = { type: 3, value: "RESIDUALCURRENTCIRCUITBREAKER" }; + IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTSWITCH = { type: 3, value: "RESIDUALCURRENTSWITCH" }; + IfcProtectiveDeviceTypeEnum.SPARKGAP = { type: 3, value: "SPARKGAP" }; + IfcProtectiveDeviceTypeEnum.VARISTOR = { type: 3, value: "VARISTOR" }; + IfcProtectiveDeviceTypeEnum.VOLTAGELIMITER = { type: 3, value: "VOLTAGELIMITER" }; + IfcProtectiveDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcProtectiveDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcProtectiveDeviceTypeEnum = IfcProtectiveDeviceTypeEnum; + class IfcPumpTypeEnum { } - IFC42.IfcSystem = IfcSystem; - class IfcSystemFurnitureElement extends IfcFurnishingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 413509423; - } + IfcPumpTypeEnum.CIRCULATOR = { type: 3, value: "CIRCULATOR" }; + IfcPumpTypeEnum.ENDSUCTION = { type: 3, value: "ENDSUCTION" }; + IfcPumpTypeEnum.SPLITCASE = { type: 3, value: "SPLITCASE" }; + IfcPumpTypeEnum.SUBMERSIBLEPUMP = { type: 3, value: "SUBMERSIBLEPUMP" }; + IfcPumpTypeEnum.SUMPPUMP = { type: 3, value: "SUMPPUMP" }; + IfcPumpTypeEnum.VERTICALINLINE = { type: 3, value: "VERTICALINLINE" }; + IfcPumpTypeEnum.VERTICALTURBINE = { type: 3, value: "VERTICALTURBINE" }; + IfcPumpTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcPumpTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcPumpTypeEnum = IfcPumpTypeEnum; + class IfcRailTypeEnum { } - IFC42.IfcSystemFurnitureElement = IfcSystemFurnitureElement; - class IfcTankType extends IfcFlowStorageDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 5716631; - } + IfcRailTypeEnum.BLADE = { type: 3, value: "BLADE" }; + IfcRailTypeEnum.CHECKRAIL = { type: 3, value: "CHECKRAIL" }; + IfcRailTypeEnum.GUARDRAIL = { type: 3, value: "GUARDRAIL" }; + IfcRailTypeEnum.RACKRAIL = { type: 3, value: "RACKRAIL" }; + IfcRailTypeEnum.RAIL = { type: 3, value: "RAIL" }; + IfcRailTypeEnum.STOCKRAIL = { type: 3, value: "STOCKRAIL" }; + IfcRailTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcRailTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcRailTypeEnum = IfcRailTypeEnum; + class IfcRailingTypeEnum { + } + IfcRailingTypeEnum.BALUSTRADE = { type: 3, value: "BALUSTRADE" }; + IfcRailingTypeEnum.FENCE = { type: 3, value: "FENCE" }; + IfcRailingTypeEnum.GUARDRAIL = { type: 3, value: "GUARDRAIL" }; + IfcRailingTypeEnum.HANDRAIL = { type: 3, value: "HANDRAIL" }; + IfcRailingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcRailingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcRailingTypeEnum = IfcRailingTypeEnum; + class IfcRailwayPartTypeEnum { + } + IfcRailwayPartTypeEnum.DILATATIONSUPERSTRUCTURE = { type: 3, value: "DILATATIONSUPERSTRUCTURE" }; + IfcRailwayPartTypeEnum.LINESIDESTRUCTURE = { type: 3, value: "LINESIDESTRUCTURE" }; + IfcRailwayPartTypeEnum.LINESIDESTRUCTUREPART = { type: 3, value: "LINESIDESTRUCTUREPART" }; + IfcRailwayPartTypeEnum.PLAINTRACKSUPERSTRUCTURE = { type: 3, value: "PLAINTRACKSUPERSTRUCTURE" }; + IfcRailwayPartTypeEnum.SUPERSTRUCTURE = { type: 3, value: "SUPERSTRUCTURE" }; + IfcRailwayPartTypeEnum.TRACKSTRUCTURE = { type: 3, value: "TRACKSTRUCTURE" }; + IfcRailwayPartTypeEnum.TRACKSTRUCTUREPART = { type: 3, value: "TRACKSTRUCTUREPART" }; + IfcRailwayPartTypeEnum.TURNOUTSUPERSTRUCTURE = { type: 3, value: "TURNOUTSUPERSTRUCTURE" }; + IfcRailwayPartTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcRailwayPartTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcRailwayPartTypeEnum = IfcRailwayPartTypeEnum; + class IfcRailwayTypeEnum { } - IFC42.IfcTankType = IfcTankType; - class IfcTendon extends IfcReinforcingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, PredefinedType, NominalDiameter, CrossSectionArea, TensionForce, PreStress, FrictionCoefficient, AnchorageSlip, MinCurvatureRadius) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.SteelGrade = SteelGrade; - this.PredefinedType = PredefinedType; - this.NominalDiameter = NominalDiameter; - this.CrossSectionArea = CrossSectionArea; - this.TensionForce = TensionForce; - this.PreStress = PreStress; - this.FrictionCoefficient = FrictionCoefficient; - this.AnchorageSlip = AnchorageSlip; - this.MinCurvatureRadius = MinCurvatureRadius; - this.type = 3824725483; - } + IfcRailwayTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcRailwayTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcRailwayTypeEnum = IfcRailwayTypeEnum; + class IfcRampFlightTypeEnum { } - IFC42.IfcTendon = IfcTendon; - class IfcTendonAnchor extends IfcReinforcingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.SteelGrade = SteelGrade; - this.PredefinedType = PredefinedType; - this.type = 2347447852; - } + IfcRampFlightTypeEnum.SPIRAL = { type: 3, value: "SPIRAL" }; + IfcRampFlightTypeEnum.STRAIGHT = { type: 3, value: "STRAIGHT" }; + IfcRampFlightTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcRampFlightTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcRampFlightTypeEnum = IfcRampFlightTypeEnum; + class IfcRampTypeEnum { } - IFC42.IfcTendonAnchor = IfcTendonAnchor; - class IfcTendonAnchorType extends IfcReinforcingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3081323446; - } + IfcRampTypeEnum.HALF_TURN_RAMP = { type: 3, value: "HALF_TURN_RAMP" }; + IfcRampTypeEnum.QUARTER_TURN_RAMP = { type: 3, value: "QUARTER_TURN_RAMP" }; + IfcRampTypeEnum.SPIRAL_RAMP = { type: 3, value: "SPIRAL_RAMP" }; + IfcRampTypeEnum.STRAIGHT_RUN_RAMP = { type: 3, value: "STRAIGHT_RUN_RAMP" }; + IfcRampTypeEnum.TWO_QUARTER_TURN_RAMP = { type: 3, value: "TWO_QUARTER_TURN_RAMP" }; + IfcRampTypeEnum.TWO_STRAIGHT_RUN_RAMP = { type: 3, value: "TWO_STRAIGHT_RUN_RAMP" }; + IfcRampTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcRampTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcRampTypeEnum = IfcRampTypeEnum; + class IfcRecurrenceTypeEnum { } - IFC42.IfcTendonAnchorType = IfcTendonAnchorType; - class IfcTendonType extends IfcReinforcingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, NominalDiameter, CrossSectionArea, SheathDiameter) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.NominalDiameter = NominalDiameter; - this.CrossSectionArea = CrossSectionArea; - this.SheathDiameter = SheathDiameter; - this.type = 2415094496; - } + IfcRecurrenceTypeEnum.BY_DAY_COUNT = { type: 3, value: "BY_DAY_COUNT" }; + IfcRecurrenceTypeEnum.BY_WEEKDAY_COUNT = { type: 3, value: "BY_WEEKDAY_COUNT" }; + IfcRecurrenceTypeEnum.DAILY = { type: 3, value: "DAILY" }; + IfcRecurrenceTypeEnum.MONTHLY_BY_DAY_OF_MONTH = { type: 3, value: "MONTHLY_BY_DAY_OF_MONTH" }; + IfcRecurrenceTypeEnum.MONTHLY_BY_POSITION = { type: 3, value: "MONTHLY_BY_POSITION" }; + IfcRecurrenceTypeEnum.WEEKLY = { type: 3, value: "WEEKLY" }; + IfcRecurrenceTypeEnum.YEARLY_BY_DAY_OF_MONTH = { type: 3, value: "YEARLY_BY_DAY_OF_MONTH" }; + IfcRecurrenceTypeEnum.YEARLY_BY_POSITION = { type: 3, value: "YEARLY_BY_POSITION" }; + IFC4X32.IfcRecurrenceTypeEnum = IfcRecurrenceTypeEnum; + class IfcReferentTypeEnum { } - IFC42.IfcTendonType = IfcTendonType; - class IfcTransformerType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1692211062; - } + IfcReferentTypeEnum.BOUNDARY = { type: 3, value: "BOUNDARY" }; + IfcReferentTypeEnum.INTERSECTION = { type: 3, value: "INTERSECTION" }; + IfcReferentTypeEnum.KILOPOINT = { type: 3, value: "KILOPOINT" }; + IfcReferentTypeEnum.LANDMARK = { type: 3, value: "LANDMARK" }; + IfcReferentTypeEnum.MILEPOINT = { type: 3, value: "MILEPOINT" }; + IfcReferentTypeEnum.POSITION = { type: 3, value: "POSITION" }; + IfcReferentTypeEnum.REFERENCEMARKER = { type: 3, value: "REFERENCEMARKER" }; + IfcReferentTypeEnum.STATION = { type: 3, value: "STATION" }; + IfcReferentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcReferentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcReferentTypeEnum = IfcReferentTypeEnum; + class IfcReflectanceMethodEnum { } - IFC42.IfcTransformerType = IfcTransformerType; - class IfcTransportElement extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1620046519; - } + IfcReflectanceMethodEnum.BLINN = { type: 3, value: "BLINN" }; + IfcReflectanceMethodEnum.FLAT = { type: 3, value: "FLAT" }; + IfcReflectanceMethodEnum.GLASS = { type: 3, value: "GLASS" }; + IfcReflectanceMethodEnum.MATT = { type: 3, value: "MATT" }; + IfcReflectanceMethodEnum.METAL = { type: 3, value: "METAL" }; + IfcReflectanceMethodEnum.MIRROR = { type: 3, value: "MIRROR" }; + IfcReflectanceMethodEnum.PHONG = { type: 3, value: "PHONG" }; + IfcReflectanceMethodEnum.PHYSICAL = { type: 3, value: "PHYSICAL" }; + IfcReflectanceMethodEnum.PLASTIC = { type: 3, value: "PLASTIC" }; + IfcReflectanceMethodEnum.STRAUSS = { type: 3, value: "STRAUSS" }; + IfcReflectanceMethodEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcReflectanceMethodEnum = IfcReflectanceMethodEnum; + class IfcReinforcedSoilTypeEnum { } - IFC42.IfcTransportElement = IfcTransportElement; - class IfcTrimmedCurve extends IfcBoundedCurve { - constructor(expressID, BasisCurve, Trim1, Trim2, SenseAgreement, MasterRepresentation) { - super(expressID); - this.BasisCurve = BasisCurve; - this.Trim1 = Trim1; - this.Trim2 = Trim2; - this.SenseAgreement = SenseAgreement; - this.MasterRepresentation = MasterRepresentation; - this.type = 3593883385; - } + IfcReinforcedSoilTypeEnum.DYNAMICALLYCOMPACTED = { type: 3, value: "DYNAMICALLYCOMPACTED" }; + IfcReinforcedSoilTypeEnum.GROUTED = { type: 3, value: "GROUTED" }; + IfcReinforcedSoilTypeEnum.REPLACED = { type: 3, value: "REPLACED" }; + IfcReinforcedSoilTypeEnum.ROLLERCOMPACTED = { type: 3, value: "ROLLERCOMPACTED" }; + IfcReinforcedSoilTypeEnum.SURCHARGEPRELOADED = { type: 3, value: "SURCHARGEPRELOADED" }; + IfcReinforcedSoilTypeEnum.VERTICALLYDRAINED = { type: 3, value: "VERTICALLYDRAINED" }; + IfcReinforcedSoilTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcReinforcedSoilTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcReinforcedSoilTypeEnum = IfcReinforcedSoilTypeEnum; + class IfcReinforcingBarRoleEnum { } - IFC42.IfcTrimmedCurve = IfcTrimmedCurve; - class IfcTubeBundleType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1600972822; - } + IfcReinforcingBarRoleEnum.ANCHORING = { type: 3, value: "ANCHORING" }; + IfcReinforcingBarRoleEnum.EDGE = { type: 3, value: "EDGE" }; + IfcReinforcingBarRoleEnum.LIGATURE = { type: 3, value: "LIGATURE" }; + IfcReinforcingBarRoleEnum.MAIN = { type: 3, value: "MAIN" }; + IfcReinforcingBarRoleEnum.PUNCHING = { type: 3, value: "PUNCHING" }; + IfcReinforcingBarRoleEnum.RING = { type: 3, value: "RING" }; + IfcReinforcingBarRoleEnum.SHEAR = { type: 3, value: "SHEAR" }; + IfcReinforcingBarRoleEnum.STUD = { type: 3, value: "STUD" }; + IfcReinforcingBarRoleEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcReinforcingBarRoleEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcReinforcingBarRoleEnum = IfcReinforcingBarRoleEnum; + class IfcReinforcingBarSurfaceEnum { } - IFC42.IfcTubeBundleType = IfcTubeBundleType; - class IfcUnitaryEquipmentType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1911125066; - } + IfcReinforcingBarSurfaceEnum.PLAIN = { type: 3, value: "PLAIN" }; + IfcReinforcingBarSurfaceEnum.TEXTURED = { type: 3, value: "TEXTURED" }; + IFC4X32.IfcReinforcingBarSurfaceEnum = IfcReinforcingBarSurfaceEnum; + class IfcReinforcingBarTypeEnum { } - IFC42.IfcUnitaryEquipmentType = IfcUnitaryEquipmentType; - class IfcValveType extends IfcFlowControllerType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 728799441; - } + IfcReinforcingBarTypeEnum.ANCHORING = { type: 3, value: "ANCHORING" }; + IfcReinforcingBarTypeEnum.EDGE = { type: 3, value: "EDGE" }; + IfcReinforcingBarTypeEnum.LIGATURE = { type: 3, value: "LIGATURE" }; + IfcReinforcingBarTypeEnum.MAIN = { type: 3, value: "MAIN" }; + IfcReinforcingBarTypeEnum.PUNCHING = { type: 3, value: "PUNCHING" }; + IfcReinforcingBarTypeEnum.RING = { type: 3, value: "RING" }; + IfcReinforcingBarTypeEnum.SHEAR = { type: 3, value: "SHEAR" }; + IfcReinforcingBarTypeEnum.SPACEBAR = { type: 3, value: "SPACEBAR" }; + IfcReinforcingBarTypeEnum.STUD = { type: 3, value: "STUD" }; + IfcReinforcingBarTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcReinforcingBarTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcReinforcingBarTypeEnum = IfcReinforcingBarTypeEnum; + class IfcReinforcingMeshTypeEnum { } - IFC42.IfcValveType = IfcValveType; - class IfcVibrationIsolator extends IfcElementComponent { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2391383451; - } + IfcReinforcingMeshTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcReinforcingMeshTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcReinforcingMeshTypeEnum = IfcReinforcingMeshTypeEnum; + class IfcRoadPartTypeEnum { } - IFC42.IfcVibrationIsolator = IfcVibrationIsolator; - class IfcVibrationIsolatorType extends IfcElementComponentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3313531582; - } + IfcRoadPartTypeEnum.BICYCLECROSSING = { type: 3, value: "BICYCLECROSSING" }; + IfcRoadPartTypeEnum.BUS_STOP = { type: 3, value: "BUS_STOP" }; + IfcRoadPartTypeEnum.CARRIAGEWAY = { type: 3, value: "CARRIAGEWAY" }; + IfcRoadPartTypeEnum.CENTRALISLAND = { type: 3, value: "CENTRALISLAND" }; + IfcRoadPartTypeEnum.CENTRALRESERVE = { type: 3, value: "CENTRALRESERVE" }; + IfcRoadPartTypeEnum.HARDSHOULDER = { type: 3, value: "HARDSHOULDER" }; + IfcRoadPartTypeEnum.INTERSECTION = { type: 3, value: "INTERSECTION" }; + IfcRoadPartTypeEnum.LAYBY = { type: 3, value: "LAYBY" }; + IfcRoadPartTypeEnum.PARKINGBAY = { type: 3, value: "PARKINGBAY" }; + IfcRoadPartTypeEnum.PASSINGBAY = { type: 3, value: "PASSINGBAY" }; + IfcRoadPartTypeEnum.PEDESTRIAN_CROSSING = { type: 3, value: "PEDESTRIAN_CROSSING" }; + IfcRoadPartTypeEnum.RAILWAYCROSSING = { type: 3, value: "RAILWAYCROSSING" }; + IfcRoadPartTypeEnum.REFUGEISLAND = { type: 3, value: "REFUGEISLAND" }; + IfcRoadPartTypeEnum.ROADSEGMENT = { type: 3, value: "ROADSEGMENT" }; + IfcRoadPartTypeEnum.ROADSIDE = { type: 3, value: "ROADSIDE" }; + IfcRoadPartTypeEnum.ROADSIDEPART = { type: 3, value: "ROADSIDEPART" }; + IfcRoadPartTypeEnum.ROADWAYPLATEAU = { type: 3, value: "ROADWAYPLATEAU" }; + IfcRoadPartTypeEnum.ROUNDABOUT = { type: 3, value: "ROUNDABOUT" }; + IfcRoadPartTypeEnum.SHOULDER = { type: 3, value: "SHOULDER" }; + IfcRoadPartTypeEnum.SIDEWALK = { type: 3, value: "SIDEWALK" }; + IfcRoadPartTypeEnum.SOFTSHOULDER = { type: 3, value: "SOFTSHOULDER" }; + IfcRoadPartTypeEnum.TOLLPLAZA = { type: 3, value: "TOLLPLAZA" }; + IfcRoadPartTypeEnum.TRAFFICISLAND = { type: 3, value: "TRAFFICISLAND" }; + IfcRoadPartTypeEnum.TRAFFICLANE = { type: 3, value: "TRAFFICLANE" }; + IfcRoadPartTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcRoadPartTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcRoadPartTypeEnum = IfcRoadPartTypeEnum; + class IfcRoadTypeEnum { } - IFC42.IfcVibrationIsolatorType = IfcVibrationIsolatorType; - class IfcVirtualElement extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 2769231204; - } + IfcRoadTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcRoadTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcRoadTypeEnum = IfcRoadTypeEnum; + class IfcRoleEnum { } - IFC42.IfcVirtualElement = IfcVirtualElement; - class IfcVoidingFeature extends IfcFeatureElementSubtraction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 926996030; - } + IfcRoleEnum.ARCHITECT = { type: 3, value: "ARCHITECT" }; + IfcRoleEnum.BUILDINGOPERATOR = { type: 3, value: "BUILDINGOPERATOR" }; + IfcRoleEnum.BUILDINGOWNER = { type: 3, value: "BUILDINGOWNER" }; + IfcRoleEnum.CIVILENGINEER = { type: 3, value: "CIVILENGINEER" }; + IfcRoleEnum.CLIENT = { type: 3, value: "CLIENT" }; + IfcRoleEnum.COMMISSIONINGENGINEER = { type: 3, value: "COMMISSIONINGENGINEER" }; + IfcRoleEnum.CONSTRUCTIONMANAGER = { type: 3, value: "CONSTRUCTIONMANAGER" }; + IfcRoleEnum.CONSULTANT = { type: 3, value: "CONSULTANT" }; + IfcRoleEnum.CONTRACTOR = { type: 3, value: "CONTRACTOR" }; + IfcRoleEnum.COSTENGINEER = { type: 3, value: "COSTENGINEER" }; + IfcRoleEnum.ELECTRICALENGINEER = { type: 3, value: "ELECTRICALENGINEER" }; + IfcRoleEnum.ENGINEER = { type: 3, value: "ENGINEER" }; + IfcRoleEnum.FACILITIESMANAGER = { type: 3, value: "FACILITIESMANAGER" }; + IfcRoleEnum.FIELDCONSTRUCTIONMANAGER = { type: 3, value: "FIELDCONSTRUCTIONMANAGER" }; + IfcRoleEnum.MANUFACTURER = { type: 3, value: "MANUFACTURER" }; + IfcRoleEnum.MECHANICALENGINEER = { type: 3, value: "MECHANICALENGINEER" }; + IfcRoleEnum.OWNER = { type: 3, value: "OWNER" }; + IfcRoleEnum.PROJECTMANAGER = { type: 3, value: "PROJECTMANAGER" }; + IfcRoleEnum.RESELLER = { type: 3, value: "RESELLER" }; + IfcRoleEnum.STRUCTURALENGINEER = { type: 3, value: "STRUCTURALENGINEER" }; + IfcRoleEnum.SUBCONTRACTOR = { type: 3, value: "SUBCONTRACTOR" }; + IfcRoleEnum.SUPPLIER = { type: 3, value: "SUPPLIER" }; + IfcRoleEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IFC4X32.IfcRoleEnum = IfcRoleEnum; + class IfcRoofTypeEnum { } - IFC42.IfcVoidingFeature = IfcVoidingFeature; - class IfcWallType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1898987631; - } + IfcRoofTypeEnum.BARREL_ROOF = { type: 3, value: "BARREL_ROOF" }; + IfcRoofTypeEnum.BUTTERFLY_ROOF = { type: 3, value: "BUTTERFLY_ROOF" }; + IfcRoofTypeEnum.DOME_ROOF = { type: 3, value: "DOME_ROOF" }; + IfcRoofTypeEnum.FLAT_ROOF = { type: 3, value: "FLAT_ROOF" }; + IfcRoofTypeEnum.FREEFORM = { type: 3, value: "FREEFORM" }; + IfcRoofTypeEnum.GABLE_ROOF = { type: 3, value: "GABLE_ROOF" }; + IfcRoofTypeEnum.GAMBREL_ROOF = { type: 3, value: "GAMBREL_ROOF" }; + IfcRoofTypeEnum.HIPPED_GABLE_ROOF = { type: 3, value: "HIPPED_GABLE_ROOF" }; + IfcRoofTypeEnum.HIP_ROOF = { type: 3, value: "HIP_ROOF" }; + IfcRoofTypeEnum.MANSARD_ROOF = { type: 3, value: "MANSARD_ROOF" }; + IfcRoofTypeEnum.PAVILION_ROOF = { type: 3, value: "PAVILION_ROOF" }; + IfcRoofTypeEnum.RAINBOW_ROOF = { type: 3, value: "RAINBOW_ROOF" }; + IfcRoofTypeEnum.SHED_ROOF = { type: 3, value: "SHED_ROOF" }; + IfcRoofTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcRoofTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcRoofTypeEnum = IfcRoofTypeEnum; + class IfcSIPrefix { } - IFC42.IfcWallType = IfcWallType; - class IfcWasteTerminalType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1133259667; - } + IfcSIPrefix.ATTO = { type: 3, value: "ATTO" }; + IfcSIPrefix.CENTI = { type: 3, value: "CENTI" }; + IfcSIPrefix.DECA = { type: 3, value: "DECA" }; + IfcSIPrefix.DECI = { type: 3, value: "DECI" }; + IfcSIPrefix.EXA = { type: 3, value: "EXA" }; + IfcSIPrefix.FEMTO = { type: 3, value: "FEMTO" }; + IfcSIPrefix.GIGA = { type: 3, value: "GIGA" }; + IfcSIPrefix.HECTO = { type: 3, value: "HECTO" }; + IfcSIPrefix.KILO = { type: 3, value: "KILO" }; + IfcSIPrefix.MEGA = { type: 3, value: "MEGA" }; + IfcSIPrefix.MICRO = { type: 3, value: "MICRO" }; + IfcSIPrefix.MILLI = { type: 3, value: "MILLI" }; + IfcSIPrefix.NANO = { type: 3, value: "NANO" }; + IfcSIPrefix.PETA = { type: 3, value: "PETA" }; + IfcSIPrefix.PICO = { type: 3, value: "PICO" }; + IfcSIPrefix.TERA = { type: 3, value: "TERA" }; + IFC4X32.IfcSIPrefix = IfcSIPrefix; + class IfcSIUnitName { } - IFC42.IfcWasteTerminalType = IfcWasteTerminalType; - class IfcWindowType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, PartitioningType, ParameterTakesPrecedence, UserDefinedPartitioningType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.PartitioningType = PartitioningType; - this.ParameterTakesPrecedence = ParameterTakesPrecedence; - this.UserDefinedPartitioningType = UserDefinedPartitioningType; - this.type = 4009809668; - } + IfcSIUnitName.AMPERE = { type: 3, value: "AMPERE" }; + IfcSIUnitName.BECQUEREL = { type: 3, value: "BECQUEREL" }; + IfcSIUnitName.CANDELA = { type: 3, value: "CANDELA" }; + IfcSIUnitName.COULOMB = { type: 3, value: "COULOMB" }; + IfcSIUnitName.CUBIC_METRE = { type: 3, value: "CUBIC_METRE" }; + IfcSIUnitName.DEGREE_CELSIUS = { type: 3, value: "DEGREE_CELSIUS" }; + IfcSIUnitName.FARAD = { type: 3, value: "FARAD" }; + IfcSIUnitName.GRAM = { type: 3, value: "GRAM" }; + IfcSIUnitName.GRAY = { type: 3, value: "GRAY" }; + IfcSIUnitName.HENRY = { type: 3, value: "HENRY" }; + IfcSIUnitName.HERTZ = { type: 3, value: "HERTZ" }; + IfcSIUnitName.JOULE = { type: 3, value: "JOULE" }; + IfcSIUnitName.KELVIN = { type: 3, value: "KELVIN" }; + IfcSIUnitName.LUMEN = { type: 3, value: "LUMEN" }; + IfcSIUnitName.LUX = { type: 3, value: "LUX" }; + IfcSIUnitName.METRE = { type: 3, value: "METRE" }; + IfcSIUnitName.MOLE = { type: 3, value: "MOLE" }; + IfcSIUnitName.NEWTON = { type: 3, value: "NEWTON" }; + IfcSIUnitName.OHM = { type: 3, value: "OHM" }; + IfcSIUnitName.PASCAL = { type: 3, value: "PASCAL" }; + IfcSIUnitName.RADIAN = { type: 3, value: "RADIAN" }; + IfcSIUnitName.SECOND = { type: 3, value: "SECOND" }; + IfcSIUnitName.SIEMENS = { type: 3, value: "SIEMENS" }; + IfcSIUnitName.SIEVERT = { type: 3, value: "SIEVERT" }; + IfcSIUnitName.SQUARE_METRE = { type: 3, value: "SQUARE_METRE" }; + IfcSIUnitName.STERADIAN = { type: 3, value: "STERADIAN" }; + IfcSIUnitName.TESLA = { type: 3, value: "TESLA" }; + IfcSIUnitName.VOLT = { type: 3, value: "VOLT" }; + IfcSIUnitName.WATT = { type: 3, value: "WATT" }; + IfcSIUnitName.WEBER = { type: 3, value: "WEBER" }; + IFC4X32.IfcSIUnitName = IfcSIUnitName; + class IfcSanitaryTerminalTypeEnum { + } + IfcSanitaryTerminalTypeEnum.BATH = { type: 3, value: "BATH" }; + IfcSanitaryTerminalTypeEnum.BIDET = { type: 3, value: "BIDET" }; + IfcSanitaryTerminalTypeEnum.CISTERN = { type: 3, value: "CISTERN" }; + IfcSanitaryTerminalTypeEnum.SANITARYFOUNTAIN = { type: 3, value: "SANITARYFOUNTAIN" }; + IfcSanitaryTerminalTypeEnum.SHOWER = { type: 3, value: "SHOWER" }; + IfcSanitaryTerminalTypeEnum.SINK = { type: 3, value: "SINK" }; + IfcSanitaryTerminalTypeEnum.TOILETPAN = { type: 3, value: "TOILETPAN" }; + IfcSanitaryTerminalTypeEnum.URINAL = { type: 3, value: "URINAL" }; + IfcSanitaryTerminalTypeEnum.WASHHANDBASIN = { type: 3, value: "WASHHANDBASIN" }; + IfcSanitaryTerminalTypeEnum.WCSEAT = { type: 3, value: "WCSEAT" }; + IfcSanitaryTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcSanitaryTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcSanitaryTerminalTypeEnum = IfcSanitaryTerminalTypeEnum; + class IfcSectionTypeEnum { } - IFC42.IfcWindowType = IfcWindowType; - class IfcWorkCalendar extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, WorkingTimes, ExceptionTimes, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.WorkingTimes = WorkingTimes; - this.ExceptionTimes = ExceptionTimes; - this.PredefinedType = PredefinedType; - this.type = 4088093105; - } + IfcSectionTypeEnum.TAPERED = { type: 3, value: "TAPERED" }; + IfcSectionTypeEnum.UNIFORM = { type: 3, value: "UNIFORM" }; + IFC4X32.IfcSectionTypeEnum = IfcSectionTypeEnum; + class IfcSensorTypeEnum { } - IFC42.IfcWorkCalendar = IfcWorkCalendar; - class IfcWorkControl extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.CreationDate = CreationDate; - this.Creators = Creators; - this.Purpose = Purpose; - this.Duration = Duration; - this.TotalFloat = TotalFloat; - this.StartTime = StartTime; - this.FinishTime = FinishTime; - this.type = 1028945134; - } + IfcSensorTypeEnum.CO2SENSOR = { type: 3, value: "CO2SENSOR" }; + IfcSensorTypeEnum.CONDUCTANCESENSOR = { type: 3, value: "CONDUCTANCESENSOR" }; + IfcSensorTypeEnum.CONTACTSENSOR = { type: 3, value: "CONTACTSENSOR" }; + IfcSensorTypeEnum.COSENSOR = { type: 3, value: "COSENSOR" }; + IfcSensorTypeEnum.EARTHQUAKESENSOR = { type: 3, value: "EARTHQUAKESENSOR" }; + IfcSensorTypeEnum.FIRESENSOR = { type: 3, value: "FIRESENSOR" }; + IfcSensorTypeEnum.FLOWSENSOR = { type: 3, value: "FLOWSENSOR" }; + IfcSensorTypeEnum.FOREIGNOBJECTDETECTIONSENSOR = { type: 3, value: "FOREIGNOBJECTDETECTIONSENSOR" }; + IfcSensorTypeEnum.FROSTSENSOR = { type: 3, value: "FROSTSENSOR" }; + IfcSensorTypeEnum.GASSENSOR = { type: 3, value: "GASSENSOR" }; + IfcSensorTypeEnum.HEATSENSOR = { type: 3, value: "HEATSENSOR" }; + IfcSensorTypeEnum.HUMIDITYSENSOR = { type: 3, value: "HUMIDITYSENSOR" }; + IfcSensorTypeEnum.IDENTIFIERSENSOR = { type: 3, value: "IDENTIFIERSENSOR" }; + IfcSensorTypeEnum.IONCONCENTRATIONSENSOR = { type: 3, value: "IONCONCENTRATIONSENSOR" }; + IfcSensorTypeEnum.LEVELSENSOR = { type: 3, value: "LEVELSENSOR" }; + IfcSensorTypeEnum.LIGHTSENSOR = { type: 3, value: "LIGHTSENSOR" }; + IfcSensorTypeEnum.MOISTURESENSOR = { type: 3, value: "MOISTURESENSOR" }; + IfcSensorTypeEnum.MOVEMENTSENSOR = { type: 3, value: "MOVEMENTSENSOR" }; + IfcSensorTypeEnum.OBSTACLESENSOR = { type: 3, value: "OBSTACLESENSOR" }; + IfcSensorTypeEnum.PHSENSOR = { type: 3, value: "PHSENSOR" }; + IfcSensorTypeEnum.PRESSURESENSOR = { type: 3, value: "PRESSURESENSOR" }; + IfcSensorTypeEnum.RADIATIONSENSOR = { type: 3, value: "RADIATIONSENSOR" }; + IfcSensorTypeEnum.RADIOACTIVITYSENSOR = { type: 3, value: "RADIOACTIVITYSENSOR" }; + IfcSensorTypeEnum.RAINSENSOR = { type: 3, value: "RAINSENSOR" }; + IfcSensorTypeEnum.SMOKESENSOR = { type: 3, value: "SMOKESENSOR" }; + IfcSensorTypeEnum.SNOWDEPTHSENSOR = { type: 3, value: "SNOWDEPTHSENSOR" }; + IfcSensorTypeEnum.SOUNDSENSOR = { type: 3, value: "SOUNDSENSOR" }; + IfcSensorTypeEnum.TEMPERATURESENSOR = { type: 3, value: "TEMPERATURESENSOR" }; + IfcSensorTypeEnum.TRAINSENSOR = { type: 3, value: "TRAINSENSOR" }; + IfcSensorTypeEnum.TURNOUTCLOSURESENSOR = { type: 3, value: "TURNOUTCLOSURESENSOR" }; + IfcSensorTypeEnum.WHEELSENSOR = { type: 3, value: "WHEELSENSOR" }; + IfcSensorTypeEnum.WINDSENSOR = { type: 3, value: "WINDSENSOR" }; + IfcSensorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcSensorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcSensorTypeEnum = IfcSensorTypeEnum; + class IfcSequenceEnum { } - IFC42.IfcWorkControl = IfcWorkControl; - class IfcWorkPlan extends IfcWorkControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.CreationDate = CreationDate; - this.Creators = Creators; - this.Purpose = Purpose; - this.Duration = Duration; - this.TotalFloat = TotalFloat; - this.StartTime = StartTime; - this.FinishTime = FinishTime; - this.PredefinedType = PredefinedType; - this.type = 4218914973; - } + IfcSequenceEnum.FINISH_FINISH = { type: 3, value: "FINISH_FINISH" }; + IfcSequenceEnum.FINISH_START = { type: 3, value: "FINISH_START" }; + IfcSequenceEnum.START_FINISH = { type: 3, value: "START_FINISH" }; + IfcSequenceEnum.START_START = { type: 3, value: "START_START" }; + IfcSequenceEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcSequenceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcSequenceEnum = IfcSequenceEnum; + class IfcShadingDeviceTypeEnum { } - IFC42.IfcWorkPlan = IfcWorkPlan; - class IfcWorkSchedule extends IfcWorkControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.CreationDate = CreationDate; - this.Creators = Creators; - this.Purpose = Purpose; - this.Duration = Duration; - this.TotalFloat = TotalFloat; - this.StartTime = StartTime; - this.FinishTime = FinishTime; - this.PredefinedType = PredefinedType; - this.type = 3342526732; - } + IfcShadingDeviceTypeEnum.AWNING = { type: 3, value: "AWNING" }; + IfcShadingDeviceTypeEnum.JALOUSIE = { type: 3, value: "JALOUSIE" }; + IfcShadingDeviceTypeEnum.SHUTTER = { type: 3, value: "SHUTTER" }; + IfcShadingDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcShadingDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcShadingDeviceTypeEnum = IfcShadingDeviceTypeEnum; + class IfcSignTypeEnum { } - IFC42.IfcWorkSchedule = IfcWorkSchedule; - class IfcZone extends IfcSystem { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.LongName = LongName; - this.type = 1033361043; - } + IfcSignTypeEnum.MARKER = { type: 3, value: "MARKER" }; + IfcSignTypeEnum.MIRROR = { type: 3, value: "MIRROR" }; + IfcSignTypeEnum.PICTORAL = { type: 3, value: "PICTORAL" }; + IfcSignTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcSignTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcSignTypeEnum = IfcSignTypeEnum; + class IfcSignalTypeEnum { } - IFC42.IfcZone = IfcZone; - class IfcActionRequest extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, LongDescription) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.PredefinedType = PredefinedType; - this.Status = Status; - this.LongDescription = LongDescription; - this.type = 3821786052; - } + IfcSignalTypeEnum.AUDIO = { type: 3, value: "AUDIO" }; + IfcSignalTypeEnum.MIXED = { type: 3, value: "MIXED" }; + IfcSignalTypeEnum.VISUAL = { type: 3, value: "VISUAL" }; + IfcSignalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcSignalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcSignalTypeEnum = IfcSignalTypeEnum; + class IfcSimplePropertyTemplateTypeEnum { } - IFC42.IfcActionRequest = IfcActionRequest; - class IfcAirTerminalBoxType extends IfcFlowControllerType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1411407467; - } + IfcSimplePropertyTemplateTypeEnum.P_BOUNDEDVALUE = { type: 3, value: "P_BOUNDEDVALUE" }; + IfcSimplePropertyTemplateTypeEnum.P_ENUMERATEDVALUE = { type: 3, value: "P_ENUMERATEDVALUE" }; + IfcSimplePropertyTemplateTypeEnum.P_LISTVALUE = { type: 3, value: "P_LISTVALUE" }; + IfcSimplePropertyTemplateTypeEnum.P_REFERENCEVALUE = { type: 3, value: "P_REFERENCEVALUE" }; + IfcSimplePropertyTemplateTypeEnum.P_SINGLEVALUE = { type: 3, value: "P_SINGLEVALUE" }; + IfcSimplePropertyTemplateTypeEnum.P_TABLEVALUE = { type: 3, value: "P_TABLEVALUE" }; + IfcSimplePropertyTemplateTypeEnum.Q_AREA = { type: 3, value: "Q_AREA" }; + IfcSimplePropertyTemplateTypeEnum.Q_COUNT = { type: 3, value: "Q_COUNT" }; + IfcSimplePropertyTemplateTypeEnum.Q_LENGTH = { type: 3, value: "Q_LENGTH" }; + IfcSimplePropertyTemplateTypeEnum.Q_NUMBER = { type: 3, value: "Q_NUMBER" }; + IfcSimplePropertyTemplateTypeEnum.Q_TIME = { type: 3, value: "Q_TIME" }; + IfcSimplePropertyTemplateTypeEnum.Q_VOLUME = { type: 3, value: "Q_VOLUME" }; + IfcSimplePropertyTemplateTypeEnum.Q_WEIGHT = { type: 3, value: "Q_WEIGHT" }; + IFC4X32.IfcSimplePropertyTemplateTypeEnum = IfcSimplePropertyTemplateTypeEnum; + class IfcSlabTypeEnum { } - IFC42.IfcAirTerminalBoxType = IfcAirTerminalBoxType; - class IfcAirTerminalType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3352864051; - } + IfcSlabTypeEnum.APPROACH_SLAB = { type: 3, value: "APPROACH_SLAB" }; + IfcSlabTypeEnum.BASESLAB = { type: 3, value: "BASESLAB" }; + IfcSlabTypeEnum.FLOOR = { type: 3, value: "FLOOR" }; + IfcSlabTypeEnum.LANDING = { type: 3, value: "LANDING" }; + IfcSlabTypeEnum.PAVING = { type: 3, value: "PAVING" }; + IfcSlabTypeEnum.ROOF = { type: 3, value: "ROOF" }; + IfcSlabTypeEnum.SIDEWALK = { type: 3, value: "SIDEWALK" }; + IfcSlabTypeEnum.TRACKSLAB = { type: 3, value: "TRACKSLAB" }; + IfcSlabTypeEnum.WEARING = { type: 3, value: "WEARING" }; + IfcSlabTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcSlabTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcSlabTypeEnum = IfcSlabTypeEnum; + class IfcSolarDeviceTypeEnum { } - IFC42.IfcAirTerminalType = IfcAirTerminalType; - class IfcAirToAirHeatRecoveryType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1871374353; - } + IfcSolarDeviceTypeEnum.SOLARCOLLECTOR = { type: 3, value: "SOLARCOLLECTOR" }; + IfcSolarDeviceTypeEnum.SOLARPANEL = { type: 3, value: "SOLARPANEL" }; + IfcSolarDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcSolarDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcSolarDeviceTypeEnum = IfcSolarDeviceTypeEnum; + class IfcSpaceHeaterTypeEnum { } - IFC42.IfcAirToAirHeatRecoveryType = IfcAirToAirHeatRecoveryType; - class IfcAsset extends IfcGroup { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, OriginalValue, CurrentValue, TotalReplacementCost, Owner, User, ResponsiblePerson, IncorporationDate, DepreciatedValue) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.OriginalValue = OriginalValue; - this.CurrentValue = CurrentValue; - this.TotalReplacementCost = TotalReplacementCost; - this.Owner = Owner; - this.User = User; - this.ResponsiblePerson = ResponsiblePerson; - this.IncorporationDate = IncorporationDate; - this.DepreciatedValue = DepreciatedValue; - this.type = 3460190687; - } + IfcSpaceHeaterTypeEnum.CONVECTOR = { type: 3, value: "CONVECTOR" }; + IfcSpaceHeaterTypeEnum.RADIATOR = { type: 3, value: "RADIATOR" }; + IfcSpaceHeaterTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcSpaceHeaterTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcSpaceHeaterTypeEnum = IfcSpaceHeaterTypeEnum; + class IfcSpaceTypeEnum { } - IFC42.IfcAsset = IfcAsset; - class IfcAudioVisualApplianceType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1532957894; - } + IfcSpaceTypeEnum.BERTH = { type: 3, value: "BERTH" }; + IfcSpaceTypeEnum.EXTERNAL = { type: 3, value: "EXTERNAL" }; + IfcSpaceTypeEnum.GFA = { type: 3, value: "GFA" }; + IfcSpaceTypeEnum.INTERNAL = { type: 3, value: "INTERNAL" }; + IfcSpaceTypeEnum.PARKING = { type: 3, value: "PARKING" }; + IfcSpaceTypeEnum.SPACE = { type: 3, value: "SPACE" }; + IfcSpaceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcSpaceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcSpaceTypeEnum = IfcSpaceTypeEnum; + class IfcSpatialZoneTypeEnum { } - IFC42.IfcAudioVisualApplianceType = IfcAudioVisualApplianceType; - class IfcBSplineCurve extends IfcBoundedCurve { - constructor(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect) { - super(expressID); - this.Degree = Degree; - this.ControlPointsList = ControlPointsList; - this.CurveForm = CurveForm; - this.ClosedCurve = ClosedCurve; - this.SelfIntersect = SelfIntersect; - this.type = 1967976161; - } + IfcSpatialZoneTypeEnum.CONSTRUCTION = { type: 3, value: "CONSTRUCTION" }; + IfcSpatialZoneTypeEnum.FIRESAFETY = { type: 3, value: "FIRESAFETY" }; + IfcSpatialZoneTypeEnum.INTERFERENCE = { type: 3, value: "INTERFERENCE" }; + IfcSpatialZoneTypeEnum.LIGHTING = { type: 3, value: "LIGHTING" }; + IfcSpatialZoneTypeEnum.OCCUPANCY = { type: 3, value: "OCCUPANCY" }; + IfcSpatialZoneTypeEnum.RESERVATION = { type: 3, value: "RESERVATION" }; + IfcSpatialZoneTypeEnum.SECURITY = { type: 3, value: "SECURITY" }; + IfcSpatialZoneTypeEnum.THERMAL = { type: 3, value: "THERMAL" }; + IfcSpatialZoneTypeEnum.TRANSPORT = { type: 3, value: "TRANSPORT" }; + IfcSpatialZoneTypeEnum.VENTILATION = { type: 3, value: "VENTILATION" }; + IfcSpatialZoneTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcSpatialZoneTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcSpatialZoneTypeEnum = IfcSpatialZoneTypeEnum; + class IfcStackTerminalTypeEnum { } - IFC42.IfcBSplineCurve = IfcBSplineCurve; - class IfcBSplineCurveWithKnots extends IfcBSplineCurve { - constructor(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect, KnotMultiplicities, Knots, KnotSpec) { - super(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect); - this.Degree = Degree; - this.ControlPointsList = ControlPointsList; - this.CurveForm = CurveForm; - this.ClosedCurve = ClosedCurve; - this.SelfIntersect = SelfIntersect; - this.KnotMultiplicities = KnotMultiplicities; - this.Knots = Knots; - this.KnotSpec = KnotSpec; - this.type = 2461110595; - } + IfcStackTerminalTypeEnum.BIRDCAGE = { type: 3, value: "BIRDCAGE" }; + IfcStackTerminalTypeEnum.COWL = { type: 3, value: "COWL" }; + IfcStackTerminalTypeEnum.RAINWATERHOPPER = { type: 3, value: "RAINWATERHOPPER" }; + IfcStackTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcStackTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcStackTerminalTypeEnum = IfcStackTerminalTypeEnum; + class IfcStairFlightTypeEnum { } - IFC42.IfcBSplineCurveWithKnots = IfcBSplineCurveWithKnots; - class IfcBeamType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 819618141; - } + IfcStairFlightTypeEnum.CURVED = { type: 3, value: "CURVED" }; + IfcStairFlightTypeEnum.FREEFORM = { type: 3, value: "FREEFORM" }; + IfcStairFlightTypeEnum.SPIRAL = { type: 3, value: "SPIRAL" }; + IfcStairFlightTypeEnum.STRAIGHT = { type: 3, value: "STRAIGHT" }; + IfcStairFlightTypeEnum.WINDER = { type: 3, value: "WINDER" }; + IfcStairFlightTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcStairFlightTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcStairFlightTypeEnum = IfcStairFlightTypeEnum; + class IfcStairTypeEnum { } - IFC42.IfcBeamType = IfcBeamType; - class IfcBoilerType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 231477066; - } + IfcStairTypeEnum.CURVED_RUN_STAIR = { type: 3, value: "CURVED_RUN_STAIR" }; + IfcStairTypeEnum.DOUBLE_RETURN_STAIR = { type: 3, value: "DOUBLE_RETURN_STAIR" }; + IfcStairTypeEnum.HALF_TURN_STAIR = { type: 3, value: "HALF_TURN_STAIR" }; + IfcStairTypeEnum.HALF_WINDING_STAIR = { type: 3, value: "HALF_WINDING_STAIR" }; + IfcStairTypeEnum.LADDER = { type: 3, value: "LADDER" }; + IfcStairTypeEnum.QUARTER_TURN_STAIR = { type: 3, value: "QUARTER_TURN_STAIR" }; + IfcStairTypeEnum.QUARTER_WINDING_STAIR = { type: 3, value: "QUARTER_WINDING_STAIR" }; + IfcStairTypeEnum.SPIRAL_STAIR = { type: 3, value: "SPIRAL_STAIR" }; + IfcStairTypeEnum.STRAIGHT_RUN_STAIR = { type: 3, value: "STRAIGHT_RUN_STAIR" }; + IfcStairTypeEnum.THREE_QUARTER_TURN_STAIR = { type: 3, value: "THREE_QUARTER_TURN_STAIR" }; + IfcStairTypeEnum.THREE_QUARTER_WINDING_STAIR = { type: 3, value: "THREE_QUARTER_WINDING_STAIR" }; + IfcStairTypeEnum.TWO_CURVED_RUN_STAIR = { type: 3, value: "TWO_CURVED_RUN_STAIR" }; + IfcStairTypeEnum.TWO_QUARTER_TURN_STAIR = { type: 3, value: "TWO_QUARTER_TURN_STAIR" }; + IfcStairTypeEnum.TWO_QUARTER_WINDING_STAIR = { type: 3, value: "TWO_QUARTER_WINDING_STAIR" }; + IfcStairTypeEnum.TWO_STRAIGHT_RUN_STAIR = { type: 3, value: "TWO_STRAIGHT_RUN_STAIR" }; + IfcStairTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcStairTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcStairTypeEnum = IfcStairTypeEnum; + class IfcStateEnum { } - IFC42.IfcBoilerType = IfcBoilerType; - class IfcBoundaryCurve extends IfcCompositeCurveOnSurface { - constructor(expressID, Segments, SelfIntersect) { - super(expressID, Segments, SelfIntersect); - this.Segments = Segments; - this.SelfIntersect = SelfIntersect; - this.type = 1136057603; - } + IfcStateEnum.LOCKED = { type: 3, value: "LOCKED" }; + IfcStateEnum.READONLY = { type: 3, value: "READONLY" }; + IfcStateEnum.READONLYLOCKED = { type: 3, value: "READONLYLOCKED" }; + IfcStateEnum.READWRITE = { type: 3, value: "READWRITE" }; + IfcStateEnum.READWRITELOCKED = { type: 3, value: "READWRITELOCKED" }; + IFC4X32.IfcStateEnum = IfcStateEnum; + class IfcStructuralCurveActivityTypeEnum { } - IFC42.IfcBoundaryCurve = IfcBoundaryCurve; - class IfcBuildingElement extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 3299480353; - } + IfcStructuralCurveActivityTypeEnum.CONST = { type: 3, value: "CONST" }; + IfcStructuralCurveActivityTypeEnum.DISCRETE = { type: 3, value: "DISCRETE" }; + IfcStructuralCurveActivityTypeEnum.EQUIDISTANT = { type: 3, value: "EQUIDISTANT" }; + IfcStructuralCurveActivityTypeEnum.LINEAR = { type: 3, value: "LINEAR" }; + IfcStructuralCurveActivityTypeEnum.PARABOLA = { type: 3, value: "PARABOLA" }; + IfcStructuralCurveActivityTypeEnum.POLYGONAL = { type: 3, value: "POLYGONAL" }; + IfcStructuralCurveActivityTypeEnum.SINUS = { type: 3, value: "SINUS" }; + IfcStructuralCurveActivityTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcStructuralCurveActivityTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcStructuralCurveActivityTypeEnum = IfcStructuralCurveActivityTypeEnum; + class IfcStructuralCurveMemberTypeEnum { } - IFC42.IfcBuildingElement = IfcBuildingElement; - class IfcBuildingElementPart extends IfcElementComponent { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2979338954; - } + IfcStructuralCurveMemberTypeEnum.CABLE = { type: 3, value: "CABLE" }; + IfcStructuralCurveMemberTypeEnum.COMPRESSION_MEMBER = { type: 3, value: "COMPRESSION_MEMBER" }; + IfcStructuralCurveMemberTypeEnum.PIN_JOINED_MEMBER = { type: 3, value: "PIN_JOINED_MEMBER" }; + IfcStructuralCurveMemberTypeEnum.RIGID_JOINED_MEMBER = { type: 3, value: "RIGID_JOINED_MEMBER" }; + IfcStructuralCurveMemberTypeEnum.TENSION_MEMBER = { type: 3, value: "TENSION_MEMBER" }; + IfcStructuralCurveMemberTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcStructuralCurveMemberTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcStructuralCurveMemberTypeEnum = IfcStructuralCurveMemberTypeEnum; + class IfcStructuralSurfaceActivityTypeEnum { } - IFC42.IfcBuildingElementPart = IfcBuildingElementPart; - class IfcBuildingElementPartType extends IfcElementComponentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 39481116; - } + IfcStructuralSurfaceActivityTypeEnum.BILINEAR = { type: 3, value: "BILINEAR" }; + IfcStructuralSurfaceActivityTypeEnum.CONST = { type: 3, value: "CONST" }; + IfcStructuralSurfaceActivityTypeEnum.DISCRETE = { type: 3, value: "DISCRETE" }; + IfcStructuralSurfaceActivityTypeEnum.ISOCONTOUR = { type: 3, value: "ISOCONTOUR" }; + IfcStructuralSurfaceActivityTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcStructuralSurfaceActivityTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcStructuralSurfaceActivityTypeEnum = IfcStructuralSurfaceActivityTypeEnum; + class IfcStructuralSurfaceMemberTypeEnum { + } + IfcStructuralSurfaceMemberTypeEnum.BENDING_ELEMENT = { type: 3, value: "BENDING_ELEMENT" }; + IfcStructuralSurfaceMemberTypeEnum.MEMBRANE_ELEMENT = { type: 3, value: "MEMBRANE_ELEMENT" }; + IfcStructuralSurfaceMemberTypeEnum.SHELL = { type: 3, value: "SHELL" }; + IfcStructuralSurfaceMemberTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcStructuralSurfaceMemberTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcStructuralSurfaceMemberTypeEnum = IfcStructuralSurfaceMemberTypeEnum; + class IfcSubContractResourceTypeEnum { } - IFC42.IfcBuildingElementPartType = IfcBuildingElementPartType; - class IfcBuildingElementProxy extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1095909175; - } + IfcSubContractResourceTypeEnum.PURCHASE = { type: 3, value: "PURCHASE" }; + IfcSubContractResourceTypeEnum.WORK = { type: 3, value: "WORK" }; + IfcSubContractResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcSubContractResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcSubContractResourceTypeEnum = IfcSubContractResourceTypeEnum; + class IfcSurfaceFeatureTypeEnum { } - IFC42.IfcBuildingElementProxy = IfcBuildingElementProxy; - class IfcBuildingElementProxyType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1909888760; - } + IfcSurfaceFeatureTypeEnum.DEFECT = { type: 3, value: "DEFECT" }; + IfcSurfaceFeatureTypeEnum.HATCHMARKING = { type: 3, value: "HATCHMARKING" }; + IfcSurfaceFeatureTypeEnum.LINEMARKING = { type: 3, value: "LINEMARKING" }; + IfcSurfaceFeatureTypeEnum.MARK = { type: 3, value: "MARK" }; + IfcSurfaceFeatureTypeEnum.NONSKIDSURFACING = { type: 3, value: "NONSKIDSURFACING" }; + IfcSurfaceFeatureTypeEnum.PAVEMENTSURFACEMARKING = { type: 3, value: "PAVEMENTSURFACEMARKING" }; + IfcSurfaceFeatureTypeEnum.RUMBLESTRIP = { type: 3, value: "RUMBLESTRIP" }; + IfcSurfaceFeatureTypeEnum.SYMBOLMARKING = { type: 3, value: "SYMBOLMARKING" }; + IfcSurfaceFeatureTypeEnum.TAG = { type: 3, value: "TAG" }; + IfcSurfaceFeatureTypeEnum.TRANSVERSERUMBLESTRIP = { type: 3, value: "TRANSVERSERUMBLESTRIP" }; + IfcSurfaceFeatureTypeEnum.TREATMENT = { type: 3, value: "TREATMENT" }; + IfcSurfaceFeatureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcSurfaceFeatureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcSurfaceFeatureTypeEnum = IfcSurfaceFeatureTypeEnum; + class IfcSurfaceSide { } - IFC42.IfcBuildingElementProxyType = IfcBuildingElementProxyType; - class IfcBuildingSystem extends IfcSystem { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, LongName) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.PredefinedType = PredefinedType; - this.LongName = LongName; - this.type = 1177604601; - } + IfcSurfaceSide.BOTH = { type: 3, value: "BOTH" }; + IfcSurfaceSide.NEGATIVE = { type: 3, value: "NEGATIVE" }; + IfcSurfaceSide.POSITIVE = { type: 3, value: "POSITIVE" }; + IFC4X32.IfcSurfaceSide = IfcSurfaceSide; + class IfcSwitchingDeviceTypeEnum { } - IFC42.IfcBuildingSystem = IfcBuildingSystem; - class IfcBurnerType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2188180465; - } + IfcSwitchingDeviceTypeEnum.CONTACTOR = { type: 3, value: "CONTACTOR" }; + IfcSwitchingDeviceTypeEnum.DIMMERSWITCH = { type: 3, value: "DIMMERSWITCH" }; + IfcSwitchingDeviceTypeEnum.EMERGENCYSTOP = { type: 3, value: "EMERGENCYSTOP" }; + IfcSwitchingDeviceTypeEnum.KEYPAD = { type: 3, value: "KEYPAD" }; + IfcSwitchingDeviceTypeEnum.MOMENTARYSWITCH = { type: 3, value: "MOMENTARYSWITCH" }; + IfcSwitchingDeviceTypeEnum.RELAY = { type: 3, value: "RELAY" }; + IfcSwitchingDeviceTypeEnum.SELECTORSWITCH = { type: 3, value: "SELECTORSWITCH" }; + IfcSwitchingDeviceTypeEnum.STARTER = { type: 3, value: "STARTER" }; + IfcSwitchingDeviceTypeEnum.START_AND_STOP_EQUIPMENT = { type: 3, value: "START_AND_STOP_EQUIPMENT" }; + IfcSwitchingDeviceTypeEnum.SWITCHDISCONNECTOR = { type: 3, value: "SWITCHDISCONNECTOR" }; + IfcSwitchingDeviceTypeEnum.TOGGLESWITCH = { type: 3, value: "TOGGLESWITCH" }; + IfcSwitchingDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcSwitchingDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcSwitchingDeviceTypeEnum = IfcSwitchingDeviceTypeEnum; + class IfcSystemFurnitureElementTypeEnum { } - IFC42.IfcBurnerType = IfcBurnerType; - class IfcCableCarrierFittingType extends IfcFlowFittingType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 395041908; - } + IfcSystemFurnitureElementTypeEnum.PANEL = { type: 3, value: "PANEL" }; + IfcSystemFurnitureElementTypeEnum.SUBRACK = { type: 3, value: "SUBRACK" }; + IfcSystemFurnitureElementTypeEnum.WORKSURFACE = { type: 3, value: "WORKSURFACE" }; + IfcSystemFurnitureElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcSystemFurnitureElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcSystemFurnitureElementTypeEnum = IfcSystemFurnitureElementTypeEnum; + class IfcTankTypeEnum { } - IFC42.IfcCableCarrierFittingType = IfcCableCarrierFittingType; - class IfcCableCarrierSegmentType extends IfcFlowSegmentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3293546465; - } + IfcTankTypeEnum.BASIN = { type: 3, value: "BASIN" }; + IfcTankTypeEnum.BREAKPRESSURE = { type: 3, value: "BREAKPRESSURE" }; + IfcTankTypeEnum.EXPANSION = { type: 3, value: "EXPANSION" }; + IfcTankTypeEnum.FEEDANDEXPANSION = { type: 3, value: "FEEDANDEXPANSION" }; + IfcTankTypeEnum.OILRETENTIONTRAY = { type: 3, value: "OILRETENTIONTRAY" }; + IfcTankTypeEnum.PRESSUREVESSEL = { type: 3, value: "PRESSUREVESSEL" }; + IfcTankTypeEnum.STORAGE = { type: 3, value: "STORAGE" }; + IfcTankTypeEnum.VESSEL = { type: 3, value: "VESSEL" }; + IfcTankTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcTankTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcTankTypeEnum = IfcTankTypeEnum; + class IfcTaskDurationEnum { } - IFC42.IfcCableCarrierSegmentType = IfcCableCarrierSegmentType; - class IfcCableFittingType extends IfcFlowFittingType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2674252688; - } + IfcTaskDurationEnum.ELAPSEDTIME = { type: 3, value: "ELAPSEDTIME" }; + IfcTaskDurationEnum.WORKTIME = { type: 3, value: "WORKTIME" }; + IfcTaskDurationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcTaskDurationEnum = IfcTaskDurationEnum; + class IfcTaskTypeEnum { } - IFC42.IfcCableFittingType = IfcCableFittingType; - class IfcCableSegmentType extends IfcFlowSegmentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1285652485; - } + IfcTaskTypeEnum.ADJUSTMENT = { type: 3, value: "ADJUSTMENT" }; + IfcTaskTypeEnum.ATTENDANCE = { type: 3, value: "ATTENDANCE" }; + IfcTaskTypeEnum.CALIBRATION = { type: 3, value: "CALIBRATION" }; + IfcTaskTypeEnum.CONSTRUCTION = { type: 3, value: "CONSTRUCTION" }; + IfcTaskTypeEnum.DEMOLITION = { type: 3, value: "DEMOLITION" }; + IfcTaskTypeEnum.DISMANTLE = { type: 3, value: "DISMANTLE" }; + IfcTaskTypeEnum.DISPOSAL = { type: 3, value: "DISPOSAL" }; + IfcTaskTypeEnum.EMERGENCY = { type: 3, value: "EMERGENCY" }; + IfcTaskTypeEnum.INSPECTION = { type: 3, value: "INSPECTION" }; + IfcTaskTypeEnum.INSTALLATION = { type: 3, value: "INSTALLATION" }; + IfcTaskTypeEnum.LOGISTIC = { type: 3, value: "LOGISTIC" }; + IfcTaskTypeEnum.MAINTENANCE = { type: 3, value: "MAINTENANCE" }; + IfcTaskTypeEnum.MOVE = { type: 3, value: "MOVE" }; + IfcTaskTypeEnum.OPERATION = { type: 3, value: "OPERATION" }; + IfcTaskTypeEnum.REMOVAL = { type: 3, value: "REMOVAL" }; + IfcTaskTypeEnum.RENOVATION = { type: 3, value: "RENOVATION" }; + IfcTaskTypeEnum.SAFETY = { type: 3, value: "SAFETY" }; + IfcTaskTypeEnum.SHUTDOWN = { type: 3, value: "SHUTDOWN" }; + IfcTaskTypeEnum.STARTUP = { type: 3, value: "STARTUP" }; + IfcTaskTypeEnum.TESTING = { type: 3, value: "TESTING" }; + IfcTaskTypeEnum.TROUBLESHOOTING = { type: 3, value: "TROUBLESHOOTING" }; + IfcTaskTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcTaskTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcTaskTypeEnum = IfcTaskTypeEnum; + class IfcTendonAnchorTypeEnum { } - IFC42.IfcCableSegmentType = IfcCableSegmentType; - class IfcChillerType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2951183804; - } + IfcTendonAnchorTypeEnum.COUPLER = { type: 3, value: "COUPLER" }; + IfcTendonAnchorTypeEnum.FIXED_END = { type: 3, value: "FIXED_END" }; + IfcTendonAnchorTypeEnum.TENSIONING_END = { type: 3, value: "TENSIONING_END" }; + IfcTendonAnchorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcTendonAnchorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcTendonAnchorTypeEnum = IfcTendonAnchorTypeEnum; + class IfcTendonConduitTypeEnum { } - IFC42.IfcChillerType = IfcChillerType; - class IfcChimney extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3296154744; - } + IfcTendonConduitTypeEnum.COUPLER = { type: 3, value: "COUPLER" }; + IfcTendonConduitTypeEnum.DIABOLO = { type: 3, value: "DIABOLO" }; + IfcTendonConduitTypeEnum.DUCT = { type: 3, value: "DUCT" }; + IfcTendonConduitTypeEnum.GROUTING_DUCT = { type: 3, value: "GROUTING_DUCT" }; + IfcTendonConduitTypeEnum.TRUMPET = { type: 3, value: "TRUMPET" }; + IfcTendonConduitTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcTendonConduitTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcTendonConduitTypeEnum = IfcTendonConduitTypeEnum; + class IfcTendonTypeEnum { } - IFC42.IfcChimney = IfcChimney; - class IfcCircle extends IfcConic { - constructor(expressID, Position, Radius) { - super(expressID, Position); - this.Position = Position; - this.Radius = Radius; - this.type = 2611217952; - } + IfcTendonTypeEnum.BAR = { type: 3, value: "BAR" }; + IfcTendonTypeEnum.COATED = { type: 3, value: "COATED" }; + IfcTendonTypeEnum.STRAND = { type: 3, value: "STRAND" }; + IfcTendonTypeEnum.WIRE = { type: 3, value: "WIRE" }; + IfcTendonTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcTendonTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcTendonTypeEnum = IfcTendonTypeEnum; + class IfcTextPath { } - IFC42.IfcCircle = IfcCircle; - class IfcCivilElement extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1677625105; - } + IfcTextPath.DOWN = { type: 3, value: "DOWN" }; + IfcTextPath.LEFT = { type: 3, value: "LEFT" }; + IfcTextPath.RIGHT = { type: 3, value: "RIGHT" }; + IfcTextPath.UP = { type: 3, value: "UP" }; + IFC4X32.IfcTextPath = IfcTextPath; + class IfcTimeSeriesDataTypeEnum { } - IFC42.IfcCivilElement = IfcCivilElement; - class IfcCoilType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2301859152; - } + IfcTimeSeriesDataTypeEnum.CONTINUOUS = { type: 3, value: "CONTINUOUS" }; + IfcTimeSeriesDataTypeEnum.DISCRETE = { type: 3, value: "DISCRETE" }; + IfcTimeSeriesDataTypeEnum.DISCRETEBINARY = { type: 3, value: "DISCRETEBINARY" }; + IfcTimeSeriesDataTypeEnum.PIECEWISEBINARY = { type: 3, value: "PIECEWISEBINARY" }; + IfcTimeSeriesDataTypeEnum.PIECEWISECONSTANT = { type: 3, value: "PIECEWISECONSTANT" }; + IfcTimeSeriesDataTypeEnum.PIECEWISECONTINUOUS = { type: 3, value: "PIECEWISECONTINUOUS" }; + IfcTimeSeriesDataTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcTimeSeriesDataTypeEnum = IfcTimeSeriesDataTypeEnum; + class IfcTrackElementTypeEnum { } - IFC42.IfcCoilType = IfcCoilType; - class IfcColumn extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 843113511; - } + IfcTrackElementTypeEnum.BLOCKINGDEVICE = { type: 3, value: "BLOCKINGDEVICE" }; + IfcTrackElementTypeEnum.DERAILER = { type: 3, value: "DERAILER" }; + IfcTrackElementTypeEnum.FROG = { type: 3, value: "FROG" }; + IfcTrackElementTypeEnum.HALF_SET_OF_BLADES = { type: 3, value: "HALF_SET_OF_BLADES" }; + IfcTrackElementTypeEnum.SLEEPER = { type: 3, value: "SLEEPER" }; + IfcTrackElementTypeEnum.SPEEDREGULATOR = { type: 3, value: "SPEEDREGULATOR" }; + IfcTrackElementTypeEnum.TRACKENDOFALIGNMENT = { type: 3, value: "TRACKENDOFALIGNMENT" }; + IfcTrackElementTypeEnum.VEHICLESTOP = { type: 3, value: "VEHICLESTOP" }; + IfcTrackElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcTrackElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcTrackElementTypeEnum = IfcTrackElementTypeEnum; + class IfcTransformerTypeEnum { } - IFC42.IfcColumn = IfcColumn; - class IfcColumnStandardCase extends IfcColumn { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 905975707; - } + IfcTransformerTypeEnum.CHOPPER = { type: 3, value: "CHOPPER" }; + IfcTransformerTypeEnum.COMBINED = { type: 3, value: "COMBINED" }; + IfcTransformerTypeEnum.CURRENT = { type: 3, value: "CURRENT" }; + IfcTransformerTypeEnum.FREQUENCY = { type: 3, value: "FREQUENCY" }; + IfcTransformerTypeEnum.INVERTER = { type: 3, value: "INVERTER" }; + IfcTransformerTypeEnum.RECTIFIER = { type: 3, value: "RECTIFIER" }; + IfcTransformerTypeEnum.VOLTAGE = { type: 3, value: "VOLTAGE" }; + IfcTransformerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcTransformerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcTransformerTypeEnum = IfcTransformerTypeEnum; + class IfcTransitionCode { } - IFC42.IfcColumnStandardCase = IfcColumnStandardCase; - class IfcCommunicationsApplianceType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 400855858; - } + IfcTransitionCode.CONTINUOUS = { type: 3, value: "CONTINUOUS" }; + IfcTransitionCode.CONTSAMEGRADIENT = { type: 3, value: "CONTSAMEGRADIENT" }; + IfcTransitionCode.CONTSAMEGRADIENTSAMECURVATURE = { type: 3, value: "CONTSAMEGRADIENTSAMECURVATURE" }; + IfcTransitionCode.DISCONTINUOUS = { type: 3, value: "DISCONTINUOUS" }; + IFC4X32.IfcTransitionCode = IfcTransitionCode; + class IfcTransportElementTypeEnum { } - IFC42.IfcCommunicationsApplianceType = IfcCommunicationsApplianceType; - class IfcCompressorType extends IfcFlowMovingDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3850581409; - } + IfcTransportElementTypeEnum.CRANEWAY = { type: 3, value: "CRANEWAY" }; + IfcTransportElementTypeEnum.ELEVATOR = { type: 3, value: "ELEVATOR" }; + IfcTransportElementTypeEnum.ESCALATOR = { type: 3, value: "ESCALATOR" }; + IfcTransportElementTypeEnum.HAULINGGEAR = { type: 3, value: "HAULINGGEAR" }; + IfcTransportElementTypeEnum.LIFTINGGEAR = { type: 3, value: "LIFTINGGEAR" }; + IfcTransportElementTypeEnum.MOVINGWALKWAY = { type: 3, value: "MOVINGWALKWAY" }; + IfcTransportElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcTransportElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcTransportElementTypeEnum = IfcTransportElementTypeEnum; + class IfcTrimmingPreference { } - IFC42.IfcCompressorType = IfcCompressorType; - class IfcCondenserType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2816379211; - } + IfcTrimmingPreference.CARTESIAN = { type: 3, value: "CARTESIAN" }; + IfcTrimmingPreference.PARAMETER = { type: 3, value: "PARAMETER" }; + IfcTrimmingPreference.UNSPECIFIED = { type: 3, value: "UNSPECIFIED" }; + IFC4X32.IfcTrimmingPreference = IfcTrimmingPreference; + class IfcTubeBundleTypeEnum { } - IFC42.IfcCondenserType = IfcCondenserType; - class IfcConstructionEquipmentResource extends IfcConstructionResource { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.Usage = Usage; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.PredefinedType = PredefinedType; - this.type = 3898045240; - } + IfcTubeBundleTypeEnum.FINNED = { type: 3, value: "FINNED" }; + IfcTubeBundleTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcTubeBundleTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcTubeBundleTypeEnum = IfcTubeBundleTypeEnum; + class IfcUnitEnum { + } + IfcUnitEnum.ABSORBEDDOSEUNIT = { type: 3, value: "ABSORBEDDOSEUNIT" }; + IfcUnitEnum.AMOUNTOFSUBSTANCEUNIT = { type: 3, value: "AMOUNTOFSUBSTANCEUNIT" }; + IfcUnitEnum.AREAUNIT = { type: 3, value: "AREAUNIT" }; + IfcUnitEnum.DOSEEQUIVALENTUNIT = { type: 3, value: "DOSEEQUIVALENTUNIT" }; + IfcUnitEnum.ELECTRICCAPACITANCEUNIT = { type: 3, value: "ELECTRICCAPACITANCEUNIT" }; + IfcUnitEnum.ELECTRICCHARGEUNIT = { type: 3, value: "ELECTRICCHARGEUNIT" }; + IfcUnitEnum.ELECTRICCONDUCTANCEUNIT = { type: 3, value: "ELECTRICCONDUCTANCEUNIT" }; + IfcUnitEnum.ELECTRICCURRENTUNIT = { type: 3, value: "ELECTRICCURRENTUNIT" }; + IfcUnitEnum.ELECTRICRESISTANCEUNIT = { type: 3, value: "ELECTRICRESISTANCEUNIT" }; + IfcUnitEnum.ELECTRICVOLTAGEUNIT = { type: 3, value: "ELECTRICVOLTAGEUNIT" }; + IfcUnitEnum.ENERGYUNIT = { type: 3, value: "ENERGYUNIT" }; + IfcUnitEnum.FORCEUNIT = { type: 3, value: "FORCEUNIT" }; + IfcUnitEnum.FREQUENCYUNIT = { type: 3, value: "FREQUENCYUNIT" }; + IfcUnitEnum.ILLUMINANCEUNIT = { type: 3, value: "ILLUMINANCEUNIT" }; + IfcUnitEnum.INDUCTANCEUNIT = { type: 3, value: "INDUCTANCEUNIT" }; + IfcUnitEnum.LENGTHUNIT = { type: 3, value: "LENGTHUNIT" }; + IfcUnitEnum.LUMINOUSFLUXUNIT = { type: 3, value: "LUMINOUSFLUXUNIT" }; + IfcUnitEnum.LUMINOUSINTENSITYUNIT = { type: 3, value: "LUMINOUSINTENSITYUNIT" }; + IfcUnitEnum.MAGNETICFLUXDENSITYUNIT = { type: 3, value: "MAGNETICFLUXDENSITYUNIT" }; + IfcUnitEnum.MAGNETICFLUXUNIT = { type: 3, value: "MAGNETICFLUXUNIT" }; + IfcUnitEnum.MASSUNIT = { type: 3, value: "MASSUNIT" }; + IfcUnitEnum.PLANEANGLEUNIT = { type: 3, value: "PLANEANGLEUNIT" }; + IfcUnitEnum.POWERUNIT = { type: 3, value: "POWERUNIT" }; + IfcUnitEnum.PRESSUREUNIT = { type: 3, value: "PRESSUREUNIT" }; + IfcUnitEnum.RADIOACTIVITYUNIT = { type: 3, value: "RADIOACTIVITYUNIT" }; + IfcUnitEnum.SOLIDANGLEUNIT = { type: 3, value: "SOLIDANGLEUNIT" }; + IfcUnitEnum.THERMODYNAMICTEMPERATUREUNIT = { type: 3, value: "THERMODYNAMICTEMPERATUREUNIT" }; + IfcUnitEnum.TIMEUNIT = { type: 3, value: "TIMEUNIT" }; + IfcUnitEnum.VOLUMEUNIT = { type: 3, value: "VOLUMEUNIT" }; + IfcUnitEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IFC4X32.IfcUnitEnum = IfcUnitEnum; + class IfcUnitaryControlElementTypeEnum { + } + IfcUnitaryControlElementTypeEnum.ALARMPANEL = { type: 3, value: "ALARMPANEL" }; + IfcUnitaryControlElementTypeEnum.BASESTATIONCONTROLLER = { type: 3, value: "BASESTATIONCONTROLLER" }; + IfcUnitaryControlElementTypeEnum.COMBINED = { type: 3, value: "COMBINED" }; + IfcUnitaryControlElementTypeEnum.CONTROLPANEL = { type: 3, value: "CONTROLPANEL" }; + IfcUnitaryControlElementTypeEnum.GASDETECTIONPANEL = { type: 3, value: "GASDETECTIONPANEL" }; + IfcUnitaryControlElementTypeEnum.HUMIDISTAT = { type: 3, value: "HUMIDISTAT" }; + IfcUnitaryControlElementTypeEnum.INDICATORPANEL = { type: 3, value: "INDICATORPANEL" }; + IfcUnitaryControlElementTypeEnum.MIMICPANEL = { type: 3, value: "MIMICPANEL" }; + IfcUnitaryControlElementTypeEnum.THERMOSTAT = { type: 3, value: "THERMOSTAT" }; + IfcUnitaryControlElementTypeEnum.WEATHERSTATION = { type: 3, value: "WEATHERSTATION" }; + IfcUnitaryControlElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcUnitaryControlElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcUnitaryControlElementTypeEnum = IfcUnitaryControlElementTypeEnum; + class IfcUnitaryEquipmentTypeEnum { } - IFC42.IfcConstructionEquipmentResource = IfcConstructionEquipmentResource; - class IfcConstructionMaterialResource extends IfcConstructionResource { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.Usage = Usage; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.PredefinedType = PredefinedType; - this.type = 1060000209; - } + IfcUnitaryEquipmentTypeEnum.AIRCONDITIONINGUNIT = { type: 3, value: "AIRCONDITIONINGUNIT" }; + IfcUnitaryEquipmentTypeEnum.AIRHANDLER = { type: 3, value: "AIRHANDLER" }; + IfcUnitaryEquipmentTypeEnum.DEHUMIDIFIER = { type: 3, value: "DEHUMIDIFIER" }; + IfcUnitaryEquipmentTypeEnum.ROOFTOPUNIT = { type: 3, value: "ROOFTOPUNIT" }; + IfcUnitaryEquipmentTypeEnum.SPLITSYSTEM = { type: 3, value: "SPLITSYSTEM" }; + IfcUnitaryEquipmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcUnitaryEquipmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcUnitaryEquipmentTypeEnum = IfcUnitaryEquipmentTypeEnum; + class IfcValveTypeEnum { } - IFC42.IfcConstructionMaterialResource = IfcConstructionMaterialResource; - class IfcConstructionProductResource extends IfcConstructionResource { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.Usage = Usage; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.PredefinedType = PredefinedType; - this.type = 488727124; - } + IfcValveTypeEnum.AIRRELEASE = { type: 3, value: "AIRRELEASE" }; + IfcValveTypeEnum.ANTIVACUUM = { type: 3, value: "ANTIVACUUM" }; + IfcValveTypeEnum.CHANGEOVER = { type: 3, value: "CHANGEOVER" }; + IfcValveTypeEnum.CHECK = { type: 3, value: "CHECK" }; + IfcValveTypeEnum.COMMISSIONING = { type: 3, value: "COMMISSIONING" }; + IfcValveTypeEnum.DIVERTING = { type: 3, value: "DIVERTING" }; + IfcValveTypeEnum.DOUBLECHECK = { type: 3, value: "DOUBLECHECK" }; + IfcValveTypeEnum.DOUBLEREGULATING = { type: 3, value: "DOUBLEREGULATING" }; + IfcValveTypeEnum.DRAWOFFCOCK = { type: 3, value: "DRAWOFFCOCK" }; + IfcValveTypeEnum.FAUCET = { type: 3, value: "FAUCET" }; + IfcValveTypeEnum.FLUSHING = { type: 3, value: "FLUSHING" }; + IfcValveTypeEnum.GASCOCK = { type: 3, value: "GASCOCK" }; + IfcValveTypeEnum.GASTAP = { type: 3, value: "GASTAP" }; + IfcValveTypeEnum.ISOLATING = { type: 3, value: "ISOLATING" }; + IfcValveTypeEnum.MIXING = { type: 3, value: "MIXING" }; + IfcValveTypeEnum.PRESSUREREDUCING = { type: 3, value: "PRESSUREREDUCING" }; + IfcValveTypeEnum.PRESSURERELIEF = { type: 3, value: "PRESSURERELIEF" }; + IfcValveTypeEnum.REGULATING = { type: 3, value: "REGULATING" }; + IfcValveTypeEnum.SAFETYCUTOFF = { type: 3, value: "SAFETYCUTOFF" }; + IfcValveTypeEnum.STEAMTRAP = { type: 3, value: "STEAMTRAP" }; + IfcValveTypeEnum.STOPCOCK = { type: 3, value: "STOPCOCK" }; + IfcValveTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcValveTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcValveTypeEnum = IfcValveTypeEnum; + class IfcVehicleTypeEnum { } - IFC42.IfcConstructionProductResource = IfcConstructionProductResource; - class IfcCooledBeamType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 335055490; - } + IfcVehicleTypeEnum.CARGO = { type: 3, value: "CARGO" }; + IfcVehicleTypeEnum.ROLLINGSTOCK = { type: 3, value: "ROLLINGSTOCK" }; + IfcVehicleTypeEnum.VEHICLE = { type: 3, value: "VEHICLE" }; + IfcVehicleTypeEnum.VEHICLEAIR = { type: 3, value: "VEHICLEAIR" }; + IfcVehicleTypeEnum.VEHICLEMARINE = { type: 3, value: "VEHICLEMARINE" }; + IfcVehicleTypeEnum.VEHICLETRACKED = { type: 3, value: "VEHICLETRACKED" }; + IfcVehicleTypeEnum.VEHICLEWHEELED = { type: 3, value: "VEHICLEWHEELED" }; + IfcVehicleTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcVehicleTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcVehicleTypeEnum = IfcVehicleTypeEnum; + class IfcVibrationDamperTypeEnum { } - IFC42.IfcCooledBeamType = IfcCooledBeamType; - class IfcCoolingTowerType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2954562838; - } + IfcVibrationDamperTypeEnum.AXIAL_YIELD = { type: 3, value: "AXIAL_YIELD" }; + IfcVibrationDamperTypeEnum.BENDING_YIELD = { type: 3, value: "BENDING_YIELD" }; + IfcVibrationDamperTypeEnum.FRICTION = { type: 3, value: "FRICTION" }; + IfcVibrationDamperTypeEnum.RUBBER = { type: 3, value: "RUBBER" }; + IfcVibrationDamperTypeEnum.SHEAR_YIELD = { type: 3, value: "SHEAR_YIELD" }; + IfcVibrationDamperTypeEnum.VISCOUS = { type: 3, value: "VISCOUS" }; + IfcVibrationDamperTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcVibrationDamperTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcVibrationDamperTypeEnum = IfcVibrationDamperTypeEnum; + class IfcVibrationIsolatorTypeEnum { } - IFC42.IfcCoolingTowerType = IfcCoolingTowerType; - class IfcCovering extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1973544240; - } + IfcVibrationIsolatorTypeEnum.BASE = { type: 3, value: "BASE" }; + IfcVibrationIsolatorTypeEnum.COMPRESSION = { type: 3, value: "COMPRESSION" }; + IfcVibrationIsolatorTypeEnum.SPRING = { type: 3, value: "SPRING" }; + IfcVibrationIsolatorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcVibrationIsolatorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcVibrationIsolatorTypeEnum = IfcVibrationIsolatorTypeEnum; + class IfcVirtualElementTypeEnum { } - IFC42.IfcCovering = IfcCovering; - class IfcCurtainWall extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3495092785; - } + IfcVirtualElementTypeEnum.BOUNDARY = { type: 3, value: "BOUNDARY" }; + IfcVirtualElementTypeEnum.CLEARANCE = { type: 3, value: "CLEARANCE" }; + IfcVirtualElementTypeEnum.PROVISIONFORVOID = { type: 3, value: "PROVISIONFORVOID" }; + IfcVirtualElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcVirtualElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcVirtualElementTypeEnum = IfcVirtualElementTypeEnum; + class IfcVoidingFeatureTypeEnum { } - IFC42.IfcCurtainWall = IfcCurtainWall; - class IfcDamperType extends IfcFlowControllerType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3961806047; - } + IfcVoidingFeatureTypeEnum.CHAMFER = { type: 3, value: "CHAMFER" }; + IfcVoidingFeatureTypeEnum.CUTOUT = { type: 3, value: "CUTOUT" }; + IfcVoidingFeatureTypeEnum.EDGE = { type: 3, value: "EDGE" }; + IfcVoidingFeatureTypeEnum.HOLE = { type: 3, value: "HOLE" }; + IfcVoidingFeatureTypeEnum.MITER = { type: 3, value: "MITER" }; + IfcVoidingFeatureTypeEnum.NOTCH = { type: 3, value: "NOTCH" }; + IfcVoidingFeatureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcVoidingFeatureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcVoidingFeatureTypeEnum = IfcVoidingFeatureTypeEnum; + class IfcWallTypeEnum { } - IFC42.IfcDamperType = IfcDamperType; - class IfcDiscreteAccessory extends IfcElementComponent { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1335981549; - } + IfcWallTypeEnum.ELEMENTEDWALL = { type: 3, value: "ELEMENTEDWALL" }; + IfcWallTypeEnum.MOVABLE = { type: 3, value: "MOVABLE" }; + IfcWallTypeEnum.PARAPET = { type: 3, value: "PARAPET" }; + IfcWallTypeEnum.PARTITIONING = { type: 3, value: "PARTITIONING" }; + IfcWallTypeEnum.PLUMBINGWALL = { type: 3, value: "PLUMBINGWALL" }; + IfcWallTypeEnum.POLYGONAL = { type: 3, value: "POLYGONAL" }; + IfcWallTypeEnum.RETAININGWALL = { type: 3, value: "RETAININGWALL" }; + IfcWallTypeEnum.SHEAR = { type: 3, value: "SHEAR" }; + IfcWallTypeEnum.SOLIDWALL = { type: 3, value: "SOLIDWALL" }; + IfcWallTypeEnum.STANDARD = { type: 3, value: "STANDARD" }; + IfcWallTypeEnum.WAVEWALL = { type: 3, value: "WAVEWALL" }; + IfcWallTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcWallTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcWallTypeEnum = IfcWallTypeEnum; + class IfcWasteTerminalTypeEnum { } - IFC42.IfcDiscreteAccessory = IfcDiscreteAccessory; - class IfcDiscreteAccessoryType extends IfcElementComponentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2635815018; - } + IfcWasteTerminalTypeEnum.FLOORTRAP = { type: 3, value: "FLOORTRAP" }; + IfcWasteTerminalTypeEnum.FLOORWASTE = { type: 3, value: "FLOORWASTE" }; + IfcWasteTerminalTypeEnum.GULLYSUMP = { type: 3, value: "GULLYSUMP" }; + IfcWasteTerminalTypeEnum.GULLYTRAP = { type: 3, value: "GULLYTRAP" }; + IfcWasteTerminalTypeEnum.ROOFDRAIN = { type: 3, value: "ROOFDRAIN" }; + IfcWasteTerminalTypeEnum.WASTEDISPOSALUNIT = { type: 3, value: "WASTEDISPOSALUNIT" }; + IfcWasteTerminalTypeEnum.WASTETRAP = { type: 3, value: "WASTETRAP" }; + IfcWasteTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcWasteTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcWasteTerminalTypeEnum = IfcWasteTerminalTypeEnum; + class IfcWindowPanelOperationEnum { } - IFC42.IfcDiscreteAccessoryType = IfcDiscreteAccessoryType; - class IfcDistributionChamberElementType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1599208980; - } + IfcWindowPanelOperationEnum.BOTTOMHUNG = { type: 3, value: "BOTTOMHUNG" }; + IfcWindowPanelOperationEnum.FIXEDCASEMENT = { type: 3, value: "FIXEDCASEMENT" }; + IfcWindowPanelOperationEnum.OTHEROPERATION = { type: 3, value: "OTHEROPERATION" }; + IfcWindowPanelOperationEnum.PIVOTHORIZONTAL = { type: 3, value: "PIVOTHORIZONTAL" }; + IfcWindowPanelOperationEnum.PIVOTVERTICAL = { type: 3, value: "PIVOTVERTICAL" }; + IfcWindowPanelOperationEnum.REMOVABLECASEMENT = { type: 3, value: "REMOVABLECASEMENT" }; + IfcWindowPanelOperationEnum.SIDEHUNGLEFTHAND = { type: 3, value: "SIDEHUNGLEFTHAND" }; + IfcWindowPanelOperationEnum.SIDEHUNGRIGHTHAND = { type: 3, value: "SIDEHUNGRIGHTHAND" }; + IfcWindowPanelOperationEnum.SLIDINGHORIZONTAL = { type: 3, value: "SLIDINGHORIZONTAL" }; + IfcWindowPanelOperationEnum.SLIDINGVERTICAL = { type: 3, value: "SLIDINGVERTICAL" }; + IfcWindowPanelOperationEnum.TILTANDTURNLEFTHAND = { type: 3, value: "TILTANDTURNLEFTHAND" }; + IfcWindowPanelOperationEnum.TILTANDTURNRIGHTHAND = { type: 3, value: "TILTANDTURNRIGHTHAND" }; + IfcWindowPanelOperationEnum.TOPHUNG = { type: 3, value: "TOPHUNG" }; + IfcWindowPanelOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcWindowPanelOperationEnum = IfcWindowPanelOperationEnum; + class IfcWindowPanelPositionEnum { } - IFC42.IfcDistributionChamberElementType = IfcDistributionChamberElementType; - class IfcDistributionControlElementType extends IfcDistributionElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 2063403501; - } + IfcWindowPanelPositionEnum.BOTTOM = { type: 3, value: "BOTTOM" }; + IfcWindowPanelPositionEnum.LEFT = { type: 3, value: "LEFT" }; + IfcWindowPanelPositionEnum.MIDDLE = { type: 3, value: "MIDDLE" }; + IfcWindowPanelPositionEnum.RIGHT = { type: 3, value: "RIGHT" }; + IfcWindowPanelPositionEnum.TOP = { type: 3, value: "TOP" }; + IfcWindowPanelPositionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcWindowPanelPositionEnum = IfcWindowPanelPositionEnum; + class IfcWindowStyleConstructionEnum { } - IFC42.IfcDistributionControlElementType = IfcDistributionControlElementType; - class IfcDistributionElement extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1945004755; - } + IfcWindowStyleConstructionEnum.ALUMINIUM = { type: 3, value: "ALUMINIUM" }; + IfcWindowStyleConstructionEnum.ALUMINIUM_WOOD = { type: 3, value: "ALUMINIUM_WOOD" }; + IfcWindowStyleConstructionEnum.HIGH_GRADE_STEEL = { type: 3, value: "HIGH_GRADE_STEEL" }; + IfcWindowStyleConstructionEnum.OTHER_CONSTRUCTION = { type: 3, value: "OTHER_CONSTRUCTION" }; + IfcWindowStyleConstructionEnum.PLASTIC = { type: 3, value: "PLASTIC" }; + IfcWindowStyleConstructionEnum.STEEL = { type: 3, value: "STEEL" }; + IfcWindowStyleConstructionEnum.WOOD = { type: 3, value: "WOOD" }; + IfcWindowStyleConstructionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcWindowStyleConstructionEnum = IfcWindowStyleConstructionEnum; + class IfcWindowStyleOperationEnum { } - IFC42.IfcDistributionElement = IfcDistributionElement; - class IfcDistributionFlowElement extends IfcDistributionElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 3040386961; - } + IfcWindowStyleOperationEnum.DOUBLE_PANEL_HORIZONTAL = { type: 3, value: "DOUBLE_PANEL_HORIZONTAL" }; + IfcWindowStyleOperationEnum.DOUBLE_PANEL_VERTICAL = { type: 3, value: "DOUBLE_PANEL_VERTICAL" }; + IfcWindowStyleOperationEnum.SINGLE_PANEL = { type: 3, value: "SINGLE_PANEL" }; + IfcWindowStyleOperationEnum.TRIPLE_PANEL_BOTTOM = { type: 3, value: "TRIPLE_PANEL_BOTTOM" }; + IfcWindowStyleOperationEnum.TRIPLE_PANEL_HORIZONTAL = { type: 3, value: "TRIPLE_PANEL_HORIZONTAL" }; + IfcWindowStyleOperationEnum.TRIPLE_PANEL_LEFT = { type: 3, value: "TRIPLE_PANEL_LEFT" }; + IfcWindowStyleOperationEnum.TRIPLE_PANEL_RIGHT = { type: 3, value: "TRIPLE_PANEL_RIGHT" }; + IfcWindowStyleOperationEnum.TRIPLE_PANEL_TOP = { type: 3, value: "TRIPLE_PANEL_TOP" }; + IfcWindowStyleOperationEnum.TRIPLE_PANEL_VERTICAL = { type: 3, value: "TRIPLE_PANEL_VERTICAL" }; + IfcWindowStyleOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcWindowStyleOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcWindowStyleOperationEnum = IfcWindowStyleOperationEnum; + class IfcWindowTypeEnum { } - IFC42.IfcDistributionFlowElement = IfcDistributionFlowElement; - class IfcDistributionPort extends IfcPort { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, FlowDirection, PredefinedType, SystemType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.FlowDirection = FlowDirection; - this.PredefinedType = PredefinedType; - this.SystemType = SystemType; - this.type = 3041715199; - } + IfcWindowTypeEnum.LIGHTDOME = { type: 3, value: "LIGHTDOME" }; + IfcWindowTypeEnum.SKYLIGHT = { type: 3, value: "SKYLIGHT" }; + IfcWindowTypeEnum.WINDOW = { type: 3, value: "WINDOW" }; + IfcWindowTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcWindowTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcWindowTypeEnum = IfcWindowTypeEnum; + class IfcWindowTypePartitioningEnum { } - IFC42.IfcDistributionPort = IfcDistributionPort; - class IfcDistributionSystem extends IfcSystem { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.LongName = LongName; - this.PredefinedType = PredefinedType; - this.type = 3205830791; - } + IfcWindowTypePartitioningEnum.DOUBLE_PANEL_HORIZONTAL = { type: 3, value: "DOUBLE_PANEL_HORIZONTAL" }; + IfcWindowTypePartitioningEnum.DOUBLE_PANEL_VERTICAL = { type: 3, value: "DOUBLE_PANEL_VERTICAL" }; + IfcWindowTypePartitioningEnum.SINGLE_PANEL = { type: 3, value: "SINGLE_PANEL" }; + IfcWindowTypePartitioningEnum.TRIPLE_PANEL_BOTTOM = { type: 3, value: "TRIPLE_PANEL_BOTTOM" }; + IfcWindowTypePartitioningEnum.TRIPLE_PANEL_HORIZONTAL = { type: 3, value: "TRIPLE_PANEL_HORIZONTAL" }; + IfcWindowTypePartitioningEnum.TRIPLE_PANEL_LEFT = { type: 3, value: "TRIPLE_PANEL_LEFT" }; + IfcWindowTypePartitioningEnum.TRIPLE_PANEL_RIGHT = { type: 3, value: "TRIPLE_PANEL_RIGHT" }; + IfcWindowTypePartitioningEnum.TRIPLE_PANEL_TOP = { type: 3, value: "TRIPLE_PANEL_TOP" }; + IfcWindowTypePartitioningEnum.TRIPLE_PANEL_VERTICAL = { type: 3, value: "TRIPLE_PANEL_VERTICAL" }; + IfcWindowTypePartitioningEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcWindowTypePartitioningEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcWindowTypePartitioningEnum = IfcWindowTypePartitioningEnum; + class IfcWorkCalendarTypeEnum { } - IFC42.IfcDistributionSystem = IfcDistributionSystem; - class IfcDoor extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, OperationType, UserDefinedOperationType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; + IfcWorkCalendarTypeEnum.FIRSTSHIFT = { type: 3, value: "FIRSTSHIFT" }; + IfcWorkCalendarTypeEnum.SECONDSHIFT = { type: 3, value: "SECONDSHIFT" }; + IfcWorkCalendarTypeEnum.THIRDSHIFT = { type: 3, value: "THIRDSHIFT" }; + IfcWorkCalendarTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcWorkCalendarTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcWorkCalendarTypeEnum = IfcWorkCalendarTypeEnum; + class IfcWorkPlanTypeEnum { + } + IfcWorkPlanTypeEnum.ACTUAL = { type: 3, value: "ACTUAL" }; + IfcWorkPlanTypeEnum.BASELINE = { type: 3, value: "BASELINE" }; + IfcWorkPlanTypeEnum.PLANNED = { type: 3, value: "PLANNED" }; + IfcWorkPlanTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcWorkPlanTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcWorkPlanTypeEnum = IfcWorkPlanTypeEnum; + class IfcWorkScheduleTypeEnum { + } + IfcWorkScheduleTypeEnum.ACTUAL = { type: 3, value: "ACTUAL" }; + IfcWorkScheduleTypeEnum.BASELINE = { type: 3, value: "BASELINE" }; + IfcWorkScheduleTypeEnum.PLANNED = { type: 3, value: "PLANNED" }; + IfcWorkScheduleTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcWorkScheduleTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcWorkScheduleTypeEnum = IfcWorkScheduleTypeEnum; + class IfcActorRole extends IfcLineObject$1 { + constructor(Role, UserDefinedRole, Description) { + super(); + this.Role = Role; + this.UserDefinedRole = UserDefinedRole; this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.OverallHeight = OverallHeight; - this.OverallWidth = OverallWidth; - this.PredefinedType = PredefinedType; - this.OperationType = OperationType; - this.UserDefinedOperationType = UserDefinedOperationType; - this.type = 395920057; + this.type = 3630933823; } } - IFC42.IfcDoor = IfcDoor; - class IfcDoorStandardCase extends IfcDoor { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, OperationType, UserDefinedOperationType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, OperationType, UserDefinedOperationType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; + IFC4X32.IfcActorRole = IfcActorRole; + class IfcAddress extends IfcLineObject$1 { + constructor(Purpose, Description, UserDefinedPurpose) { + super(); + this.Purpose = Purpose; this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.OverallHeight = OverallHeight; - this.OverallWidth = OverallWidth; - this.PredefinedType = PredefinedType; - this.OperationType = OperationType; - this.UserDefinedOperationType = UserDefinedOperationType; - this.type = 3242481149; + this.UserDefinedPurpose = UserDefinedPurpose; + this.type = 618182010; } } - IFC42.IfcDoorStandardCase = IfcDoorStandardCase; - class IfcDuctFittingType extends IfcFlowFittingType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 869906466; + IFC4X32.IfcAddress = IfcAddress; + class IfcAlignmentParameterSegment extends IfcLineObject$1 { + constructor(StartTag, EndTag) { + super(); + this.StartTag = StartTag; + this.EndTag = EndTag; + this.type = 2879124712; } } - IFC42.IfcDuctFittingType = IfcDuctFittingType; - class IfcDuctSegmentType extends IfcFlowSegmentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; + IFC4X32.IfcAlignmentParameterSegment = IfcAlignmentParameterSegment; + class IfcAlignmentVerticalSegment extends IfcAlignmentParameterSegment { + constructor(StartTag, EndTag, StartDistAlong, HorizontalLength, StartHeight, StartGradient, EndGradient, RadiusOfCurvature, PredefinedType) { + super(StartTag, EndTag); + this.StartTag = StartTag; + this.EndTag = EndTag; + this.StartDistAlong = StartDistAlong; + this.HorizontalLength = HorizontalLength; + this.StartHeight = StartHeight; + this.StartGradient = StartGradient; + this.EndGradient = EndGradient; + this.RadiusOfCurvature = RadiusOfCurvature; this.PredefinedType = PredefinedType; - this.type = 3760055223; + this.type = 3633395639; } } - IFC42.IfcDuctSegmentType = IfcDuctSegmentType; - class IfcDuctSilencerType extends IfcFlowTreatmentDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2030761528; + IFC4X32.IfcAlignmentVerticalSegment = IfcAlignmentVerticalSegment; + class IfcApplication extends IfcLineObject$1 { + constructor(ApplicationDeveloper, Version, ApplicationFullName, ApplicationIdentifier) { + super(); + this.ApplicationDeveloper = ApplicationDeveloper; + this.Version = Version; + this.ApplicationFullName = ApplicationFullName; + this.ApplicationIdentifier = ApplicationIdentifier; + this.type = 639542469; } } - IFC42.IfcDuctSilencerType = IfcDuctSilencerType; - class IfcElectricApplianceType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcApplication = IfcApplication; + class IfcAppliedValue extends IfcLineObject$1 { + constructor(Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, Category, Condition, ArithmeticOperator, Components) { + super(); this.Name = Name; this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 663422040; + this.AppliedValue = AppliedValue; + this.UnitBasis = UnitBasis; + this.ApplicableDate = ApplicableDate; + this.FixedUntilDate = FixedUntilDate; + this.Category = Category; + this.Condition = Condition; + this.ArithmeticOperator = ArithmeticOperator; + this.Components = Components; + this.type = 411424972; } } - IFC42.IfcElectricApplianceType = IfcElectricApplianceType; - class IfcElectricDistributionBoardType extends IfcFlowControllerType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcAppliedValue = IfcAppliedValue; + class IfcApproval extends IfcLineObject$1 { + constructor(Identifier, Name, Description, TimeOfApproval, Status, Level, Qualifier, RequestingApproval, GivingApproval) { + super(); + this.Identifier = Identifier; this.Name = Name; this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2417008758; + this.TimeOfApproval = TimeOfApproval; + this.Status = Status; + this.Level = Level; + this.Qualifier = Qualifier; + this.RequestingApproval = RequestingApproval; + this.GivingApproval = GivingApproval; + this.type = 130549933; } } - IFC42.IfcElectricDistributionBoardType = IfcElectricDistributionBoardType; - class IfcElectricFlowStorageDeviceType extends IfcFlowStorageDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcApproval = IfcApproval; + class IfcBoundaryCondition extends IfcLineObject$1 { + constructor(Name) { + super(); this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3277789161; + this.type = 4037036970; } } - IFC42.IfcElectricFlowStorageDeviceType = IfcElectricFlowStorageDeviceType; - class IfcElectricGeneratorType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcBoundaryCondition = IfcBoundaryCondition; + class IfcBoundaryEdgeCondition extends IfcBoundaryCondition { + constructor(Name, TranslationalStiffnessByLengthX, TranslationalStiffnessByLengthY, TranslationalStiffnessByLengthZ, RotationalStiffnessByLengthX, RotationalStiffnessByLengthY, RotationalStiffnessByLengthZ) { + super(Name); this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1534661035; + this.TranslationalStiffnessByLengthX = TranslationalStiffnessByLengthX; + this.TranslationalStiffnessByLengthY = TranslationalStiffnessByLengthY; + this.TranslationalStiffnessByLengthZ = TranslationalStiffnessByLengthZ; + this.RotationalStiffnessByLengthX = RotationalStiffnessByLengthX; + this.RotationalStiffnessByLengthY = RotationalStiffnessByLengthY; + this.RotationalStiffnessByLengthZ = RotationalStiffnessByLengthZ; + this.type = 1560379544; } } - IFC42.IfcElectricGeneratorType = IfcElectricGeneratorType; - class IfcElectricMotorType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcBoundaryEdgeCondition = IfcBoundaryEdgeCondition; + class IfcBoundaryFaceCondition extends IfcBoundaryCondition { + constructor(Name, TranslationalStiffnessByAreaX, TranslationalStiffnessByAreaY, TranslationalStiffnessByAreaZ) { + super(Name); this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1217240411; + this.TranslationalStiffnessByAreaX = TranslationalStiffnessByAreaX; + this.TranslationalStiffnessByAreaY = TranslationalStiffnessByAreaY; + this.TranslationalStiffnessByAreaZ = TranslationalStiffnessByAreaZ; + this.type = 3367102660; } } - IFC42.IfcElectricMotorType = IfcElectricMotorType; - class IfcElectricTimeControlType extends IfcFlowControllerType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcBoundaryFaceCondition = IfcBoundaryFaceCondition; + class IfcBoundaryNodeCondition extends IfcBoundaryCondition { + constructor(Name, TranslationalStiffnessX, TranslationalStiffnessY, TranslationalStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ) { + super(Name); this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 712377611; + this.TranslationalStiffnessX = TranslationalStiffnessX; + this.TranslationalStiffnessY = TranslationalStiffnessY; + this.TranslationalStiffnessZ = TranslationalStiffnessZ; + this.RotationalStiffnessX = RotationalStiffnessX; + this.RotationalStiffnessY = RotationalStiffnessY; + this.RotationalStiffnessZ = RotationalStiffnessZ; + this.type = 1387855156; } } - IFC42.IfcElectricTimeControlType = IfcElectricTimeControlType; - class IfcEnergyConversionDevice extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcBoundaryNodeCondition = IfcBoundaryNodeCondition; + class IfcBoundaryNodeConditionWarping extends IfcBoundaryNodeCondition { + constructor(Name, TranslationalStiffnessX, TranslationalStiffnessY, TranslationalStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ, WarpingStiffness) { + super(Name, TranslationalStiffnessX, TranslationalStiffnessY, TranslationalStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ); this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1658829314; + this.TranslationalStiffnessX = TranslationalStiffnessX; + this.TranslationalStiffnessY = TranslationalStiffnessY; + this.TranslationalStiffnessZ = TranslationalStiffnessZ; + this.RotationalStiffnessX = RotationalStiffnessX; + this.RotationalStiffnessY = RotationalStiffnessY; + this.RotationalStiffnessZ = RotationalStiffnessZ; + this.WarpingStiffness = WarpingStiffness; + this.type = 2069777674; } } - IFC42.IfcEnergyConversionDevice = IfcEnergyConversionDevice; - class IfcEngine extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2814081492; + IFC4X32.IfcBoundaryNodeConditionWarping = IfcBoundaryNodeConditionWarping; + class IfcConnectionGeometry extends IfcLineObject$1 { + constructor() { + super(); + this.type = 2859738748; } } - IFC42.IfcEngine = IfcEngine; - class IfcEvaporativeCooler extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3747195512; + IFC4X32.IfcConnectionGeometry = IfcConnectionGeometry; + class IfcConnectionPointGeometry extends IfcConnectionGeometry { + constructor(PointOnRelatingElement, PointOnRelatedElement) { + super(); + this.PointOnRelatingElement = PointOnRelatingElement; + this.PointOnRelatedElement = PointOnRelatedElement; + this.type = 2614616156; } } - IFC42.IfcEvaporativeCooler = IfcEvaporativeCooler; - class IfcEvaporator extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 484807127; + IFC4X32.IfcConnectionPointGeometry = IfcConnectionPointGeometry; + class IfcConnectionSurfaceGeometry extends IfcConnectionGeometry { + constructor(SurfaceOnRelatingElement, SurfaceOnRelatedElement) { + super(); + this.SurfaceOnRelatingElement = SurfaceOnRelatingElement; + this.SurfaceOnRelatedElement = SurfaceOnRelatedElement; + this.type = 2732653382; } } - IFC42.IfcEvaporator = IfcEvaporator; - class IfcExternalSpatialElement extends IfcExternalSpatialStructureElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.PredefinedType = PredefinedType; - this.type = 1209101575; + IFC4X32.IfcConnectionSurfaceGeometry = IfcConnectionSurfaceGeometry; + class IfcConnectionVolumeGeometry extends IfcConnectionGeometry { + constructor(VolumeOnRelatingElement, VolumeOnRelatedElement) { + super(); + this.VolumeOnRelatingElement = VolumeOnRelatingElement; + this.VolumeOnRelatedElement = VolumeOnRelatedElement; + this.type = 775493141; } } - IFC42.IfcExternalSpatialElement = IfcExternalSpatialElement; - class IfcFanType extends IfcFlowMovingDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcConnectionVolumeGeometry = IfcConnectionVolumeGeometry; + class IfcConstraint extends IfcLineObject$1 { + constructor(Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade) { + super(); this.Name = Name; this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 346874300; + this.ConstraintGrade = ConstraintGrade; + this.ConstraintSource = ConstraintSource; + this.CreatingActor = CreatingActor; + this.CreationTime = CreationTime; + this.UserDefinedGrade = UserDefinedGrade; + this.type = 1959218052; } } - IFC42.IfcFanType = IfcFanType; - class IfcFilterType extends IfcFlowTreatmentDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1810631287; + IFC4X32.IfcConstraint = IfcConstraint; + class IfcCoordinateOperation extends IfcLineObject$1 { + constructor(SourceCRS, TargetCRS) { + super(); + this.SourceCRS = SourceCRS; + this.TargetCRS = TargetCRS; + this.type = 1785450214; } } - IFC42.IfcFilterType = IfcFilterType; - class IfcFireSuppressionTerminalType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcCoordinateOperation = IfcCoordinateOperation; + class IfcCoordinateReferenceSystem extends IfcLineObject$1 { + constructor(Name, Description, GeodeticDatum, VerticalDatum) { + super(); this.Name = Name; this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 4222183408; + this.GeodeticDatum = GeodeticDatum; + this.VerticalDatum = VerticalDatum; + this.type = 1466758467; } } - IFC42.IfcFireSuppressionTerminalType = IfcFireSuppressionTerminalType; - class IfcFlowController extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcCoordinateReferenceSystem = IfcCoordinateReferenceSystem; + class IfcCostValue extends IfcAppliedValue { + constructor(Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, Category, Condition, ArithmeticOperator, Components) { + super(Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, Category, Condition, ArithmeticOperator, Components); this.Name = Name; this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 2058353004; + this.AppliedValue = AppliedValue; + this.UnitBasis = UnitBasis; + this.ApplicableDate = ApplicableDate; + this.FixedUntilDate = FixedUntilDate; + this.Category = Category; + this.Condition = Condition; + this.ArithmeticOperator = ArithmeticOperator; + this.Components = Components; + this.type = 602808272; } } - IFC42.IfcFlowController = IfcFlowController; - class IfcFlowFitting extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcCostValue = IfcCostValue; + class IfcDerivedUnit extends IfcLineObject$1 { + constructor(Elements, UnitType, UserDefinedType, Name) { + super(); + this.Elements = Elements; + this.UnitType = UnitType; + this.UserDefinedType = UserDefinedType; this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 4278956645; + this.type = 1765591967; } } - IFC42.IfcFlowFitting = IfcFlowFitting; - class IfcFlowInstrumentType extends IfcDistributionControlElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcDerivedUnit = IfcDerivedUnit; + class IfcDerivedUnitElement extends IfcLineObject$1 { + constructor(Unit, Exponent) { + super(); + this.Unit = Unit; + this.Exponent = Exponent; + this.type = 1045800335; + } + } + IFC4X32.IfcDerivedUnitElement = IfcDerivedUnitElement; + class IfcDimensionalExponents extends IfcLineObject$1 { + constructor(LengthExponent, MassExponent, TimeExponent, ElectricCurrentExponent, ThermodynamicTemperatureExponent, AmountOfSubstanceExponent, LuminousIntensityExponent) { + super(); + this.LengthExponent = LengthExponent; + this.MassExponent = MassExponent; + this.TimeExponent = TimeExponent; + this.ElectricCurrentExponent = ElectricCurrentExponent; + this.ThermodynamicTemperatureExponent = ThermodynamicTemperatureExponent; + this.AmountOfSubstanceExponent = AmountOfSubstanceExponent; + this.LuminousIntensityExponent = LuminousIntensityExponent; + this.type = 2949456006; + } + } + IFC4X32.IfcDimensionalExponents = IfcDimensionalExponents; + class IfcExternalInformation extends IfcLineObject$1 { + constructor() { + super(); + this.type = 4294318154; + } + } + IFC4X32.IfcExternalInformation = IfcExternalInformation; + class IfcExternalReference extends IfcLineObject$1 { + constructor(Location, Identification, Name) { + super(); + this.Location = Location; + this.Identification = Identification; this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 4037862832; + this.type = 3200245327; } } - IFC42.IfcFlowInstrumentType = IfcFlowInstrumentType; - class IfcFlowMeter extends IfcFlowController { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcExternalReference = IfcExternalReference; + class IfcExternallyDefinedHatchStyle extends IfcExternalReference { + constructor(Location, Identification, Name) { + super(Location, Identification, Name); + this.Location = Location; + this.Identification = Identification; this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2188021234; + this.type = 2242383968; } } - IFC42.IfcFlowMeter = IfcFlowMeter; - class IfcFlowMovingDevice extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcExternallyDefinedHatchStyle = IfcExternallyDefinedHatchStyle; + class IfcExternallyDefinedSurfaceStyle extends IfcExternalReference { + constructor(Location, Identification, Name) { + super(Location, Identification, Name); + this.Location = Location; + this.Identification = Identification; this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 3132237377; + this.type = 1040185647; } } - IFC42.IfcFlowMovingDevice = IfcFlowMovingDevice; - class IfcFlowSegment extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcExternallyDefinedSurfaceStyle = IfcExternallyDefinedSurfaceStyle; + class IfcExternallyDefinedTextFont extends IfcExternalReference { + constructor(Location, Identification, Name) { + super(Location, Identification, Name); + this.Location = Location; + this.Identification = Identification; this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 987401354; + this.type = 3548104201; } } - IFC42.IfcFlowSegment = IfcFlowSegment; - class IfcFlowStorageDevice extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcExternallyDefinedTextFont = IfcExternallyDefinedTextFont; + class IfcGridAxis extends IfcLineObject$1 { + constructor(AxisTag, AxisCurve, SameSense) { + super(); + this.AxisTag = AxisTag; + this.AxisCurve = AxisCurve; + this.SameSense = SameSense; + this.type = 852622518; + } + } + IFC4X32.IfcGridAxis = IfcGridAxis; + class IfcIrregularTimeSeriesValue extends IfcLineObject$1 { + constructor(TimeStamp, ListValues) { + super(); + this.TimeStamp = TimeStamp; + this.ListValues = ListValues; + this.type = 3020489413; + } + } + IFC4X32.IfcIrregularTimeSeriesValue = IfcIrregularTimeSeriesValue; + class IfcLibraryInformation extends IfcExternalInformation { + constructor(Name, Version, Publisher, VersionDate, Location, Description) { + super(); this.Name = Name; + this.Version = Version; + this.Publisher = Publisher; + this.VersionDate = VersionDate; + this.Location = Location; this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 707683696; + this.type = 2655187982; } } - IFC42.IfcFlowStorageDevice = IfcFlowStorageDevice; - class IfcFlowTerminal extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcLibraryInformation = IfcLibraryInformation; + class IfcLibraryReference extends IfcExternalReference { + constructor(Location, Identification, Name, Description, Language, ReferencedLibrary) { + super(Location, Identification, Name); + this.Location = Location; + this.Identification = Identification; this.Name = Name; this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 2223149337; + this.Language = Language; + this.ReferencedLibrary = ReferencedLibrary; + this.type = 3452421091; + } + } + IFC4X32.IfcLibraryReference = IfcLibraryReference; + class IfcLightDistributionData extends IfcLineObject$1 { + constructor(MainPlaneAngle, SecondaryPlaneAngle, LuminousIntensity) { + super(); + this.MainPlaneAngle = MainPlaneAngle; + this.SecondaryPlaneAngle = SecondaryPlaneAngle; + this.LuminousIntensity = LuminousIntensity; + this.type = 4162380809; + } + } + IFC4X32.IfcLightDistributionData = IfcLightDistributionData; + class IfcLightIntensityDistribution extends IfcLineObject$1 { + constructor(LightDistributionCurve, DistributionData) { + super(); + this.LightDistributionCurve = LightDistributionCurve; + this.DistributionData = DistributionData; + this.type = 1566485204; + } + } + IFC4X32.IfcLightIntensityDistribution = IfcLightIntensityDistribution; + class IfcMapConversion extends IfcCoordinateOperation { + constructor(SourceCRS, TargetCRS, Eastings, Northings, OrthogonalHeight, XAxisAbscissa, XAxisOrdinate, Scale, ScaleY, ScaleZ) { + super(SourceCRS, TargetCRS); + this.SourceCRS = SourceCRS; + this.TargetCRS = TargetCRS; + this.Eastings = Eastings; + this.Northings = Northings; + this.OrthogonalHeight = OrthogonalHeight; + this.XAxisAbscissa = XAxisAbscissa; + this.XAxisOrdinate = XAxisOrdinate; + this.Scale = Scale; + this.ScaleY = ScaleY; + this.ScaleZ = ScaleZ; + this.type = 3057273783; + } + } + IFC4X32.IfcMapConversion = IfcMapConversion; + class IfcMaterialClassificationRelationship extends IfcLineObject$1 { + constructor(MaterialClassifications, ClassifiedMaterial) { + super(); + this.MaterialClassifications = MaterialClassifications; + this.ClassifiedMaterial = ClassifiedMaterial; + this.type = 1847130766; } } - IFC42.IfcFlowTerminal = IfcFlowTerminal; - class IfcFlowTreatmentDevice extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 3508470533; + IFC4X32.IfcMaterialClassificationRelationship = IfcMaterialClassificationRelationship; + class IfcMaterialDefinition extends IfcLineObject$1 { + constructor() { + super(); + this.type = 760658860; } } - IFC42.IfcFlowTreatmentDevice = IfcFlowTreatmentDevice; - class IfcFooting extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcMaterialDefinition = IfcMaterialDefinition; + class IfcMaterialLayer extends IfcMaterialDefinition { + constructor(Material, LayerThickness, IsVentilated, Name, Description, Category, Priority) { + super(); + this.Material = Material; + this.LayerThickness = LayerThickness; + this.IsVentilated = IsVentilated; this.Name = Name; this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 900683007; + this.Category = Category; + this.Priority = Priority; + this.type = 248100487; } } - IFC42.IfcFooting = IfcFooting; - class IfcHeatExchanger extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; + IFC4X32.IfcMaterialLayer = IfcMaterialLayer; + class IfcMaterialLayerSet extends IfcMaterialDefinition { + constructor(MaterialLayers, LayerSetName, Description) { + super(); + this.MaterialLayers = MaterialLayers; + this.LayerSetName = LayerSetName; this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3319311131; + this.type = 3303938423; } } - IFC42.IfcHeatExchanger = IfcHeatExchanger; - class IfcHumidifier extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcMaterialLayerSet = IfcMaterialLayerSet; + class IfcMaterialLayerWithOffsets extends IfcMaterialLayer { + constructor(Material, LayerThickness, IsVentilated, Name, Description, Category, Priority, OffsetDirection, OffsetValues) { + super(Material, LayerThickness, IsVentilated, Name, Description, Category, Priority); + this.Material = Material; + this.LayerThickness = LayerThickness; + this.IsVentilated = IsVentilated; this.Name = Name; this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2068733104; + this.Category = Category; + this.Priority = Priority; + this.OffsetDirection = OffsetDirection; + this.OffsetValues = OffsetValues; + this.type = 1847252529; } } - IFC42.IfcHumidifier = IfcHumidifier; - class IfcInterceptor extends IfcFlowTreatmentDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 4175244083; + IFC4X32.IfcMaterialLayerWithOffsets = IfcMaterialLayerWithOffsets; + class IfcMaterialList extends IfcLineObject$1 { + constructor(Materials) { + super(); + this.Materials = Materials; + this.type = 2199411900; } } - IFC42.IfcInterceptor = IfcInterceptor; - class IfcJunctionBox extends IfcFlowFitting { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcMaterialList = IfcMaterialList; + class IfcMaterialProfile extends IfcMaterialDefinition { + constructor(Name, Description, Material, Profile, Priority, Category) { + super(); this.Name = Name; this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2176052936; + this.Material = Material; + this.Profile = Profile; + this.Priority = Priority; + this.Category = Category; + this.type = 2235152071; } } - IFC42.IfcJunctionBox = IfcJunctionBox; - class IfcLamp extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcMaterialProfile = IfcMaterialProfile; + class IfcMaterialProfileSet extends IfcMaterialDefinition { + constructor(Name, Description, MaterialProfiles, CompositeProfile) { + super(); this.Name = Name; this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 76236018; + this.MaterialProfiles = MaterialProfiles; + this.CompositeProfile = CompositeProfile; + this.type = 164193824; } } - IFC42.IfcLamp = IfcLamp; - class IfcLightFixture extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcMaterialProfileSet = IfcMaterialProfileSet; + class IfcMaterialProfileWithOffsets extends IfcMaterialProfile { + constructor(Name, Description, Material, Profile, Priority, Category, OffsetValues) { + super(Name, Description, Material, Profile, Priority, Category); this.Name = Name; this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 629592764; + this.Material = Material; + this.Profile = Profile; + this.Priority = Priority; + this.Category = Category; + this.OffsetValues = OffsetValues; + this.type = 552965576; } } - IFC42.IfcLightFixture = IfcLightFixture; - class IfcMedicalDevice extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1437502449; + IFC4X32.IfcMaterialProfileWithOffsets = IfcMaterialProfileWithOffsets; + class IfcMaterialUsageDefinition extends IfcLineObject$1 { + constructor() { + super(); + this.type = 1507914824; } } - IFC42.IfcMedicalDevice = IfcMedicalDevice; - class IfcMember extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1073191201; + IFC4X32.IfcMaterialUsageDefinition = IfcMaterialUsageDefinition; + class IfcMeasureWithUnit extends IfcLineObject$1 { + constructor(ValueComponent, UnitComponent) { + super(); + this.ValueComponent = ValueComponent; + this.UnitComponent = UnitComponent; + this.type = 2597039031; } } - IFC42.IfcMember = IfcMember; - class IfcMemberStandardCase extends IfcMember { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcMeasureWithUnit = IfcMeasureWithUnit; + class IfcMetric extends IfcConstraint { + constructor(Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade, Benchmark, ValueSource, DataValue, ReferencePath) { + super(Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade); this.Name = Name; this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1911478936; + this.ConstraintGrade = ConstraintGrade; + this.ConstraintSource = ConstraintSource; + this.CreatingActor = CreatingActor; + this.CreationTime = CreationTime; + this.UserDefinedGrade = UserDefinedGrade; + this.Benchmark = Benchmark; + this.ValueSource = ValueSource; + this.DataValue = DataValue; + this.ReferencePath = ReferencePath; + this.type = 3368373690; } } - IFC42.IfcMemberStandardCase = IfcMemberStandardCase; - class IfcMotorConnection extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2474470126; + IFC4X32.IfcMetric = IfcMetric; + class IfcMonetaryUnit extends IfcLineObject$1 { + constructor(Currency) { + super(); + this.Currency = Currency; + this.type = 2706619895; } } - IFC42.IfcMotorConnection = IfcMotorConnection; - class IfcOuterBoundaryCurve extends IfcBoundaryCurve { - constructor(expressID, Segments, SelfIntersect) { - super(expressID, Segments, SelfIntersect); - this.Segments = Segments; - this.SelfIntersect = SelfIntersect; - this.type = 144952367; + IFC4X32.IfcMonetaryUnit = IfcMonetaryUnit; + class IfcNamedUnit extends IfcLineObject$1 { + constructor(Dimensions, UnitType) { + super(); + this.Dimensions = Dimensions; + this.UnitType = UnitType; + this.type = 1918398963; } } - IFC42.IfcOuterBoundaryCurve = IfcOuterBoundaryCurve; - class IfcOutlet extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3694346114; + IFC4X32.IfcNamedUnit = IfcNamedUnit; + class IfcObjectPlacement extends IfcLineObject$1 { + constructor(PlacementRelTo) { + super(); + this.PlacementRelTo = PlacementRelTo; + this.type = 3701648758; } } - IFC42.IfcOutlet = IfcOutlet; - class IfcPile extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType, ConstructionType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcObjectPlacement = IfcObjectPlacement; + class IfcObjective extends IfcConstraint { + constructor(Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade, BenchmarkValues, LogicalAggregator, ObjectiveQualifier, UserDefinedQualifier) { + super(Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade); this.Name = Name; this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.ConstructionType = ConstructionType; - this.type = 1687234759; + this.ConstraintGrade = ConstraintGrade; + this.ConstraintSource = ConstraintSource; + this.CreatingActor = CreatingActor; + this.CreationTime = CreationTime; + this.UserDefinedGrade = UserDefinedGrade; + this.BenchmarkValues = BenchmarkValues; + this.LogicalAggregator = LogicalAggregator; + this.ObjectiveQualifier = ObjectiveQualifier; + this.UserDefinedQualifier = UserDefinedQualifier; + this.type = 2251480897; } } - IFC42.IfcPile = IfcPile; - class IfcPipeFitting extends IfcFlowFitting { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcObjective = IfcObjective; + class IfcOrganization extends IfcLineObject$1 { + constructor(Identification, Name, Description, Roles, Addresses) { + super(); + this.Identification = Identification; this.Name = Name; this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 310824031; + this.Roles = Roles; + this.Addresses = Addresses; + this.type = 4251960020; } } - IFC42.IfcPipeFitting = IfcPipeFitting; - class IfcPipeSegment extends IfcFlowSegment { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3612865200; + IFC4X32.IfcOrganization = IfcOrganization; + class IfcOwnerHistory extends IfcLineObject$1 { + constructor(OwningUser, OwningApplication, State, ChangeAction, LastModifiedDate, LastModifyingUser, LastModifyingApplication, CreationDate) { + super(); + this.OwningUser = OwningUser; + this.OwningApplication = OwningApplication; + this.State = State; + this.ChangeAction = ChangeAction; + this.LastModifiedDate = LastModifiedDate; + this.LastModifyingUser = LastModifyingUser; + this.LastModifyingApplication = LastModifyingApplication; + this.CreationDate = CreationDate; + this.type = 1207048766; } } - IFC42.IfcPipeSegment = IfcPipeSegment; - class IfcPlate extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3171933400; + IFC4X32.IfcOwnerHistory = IfcOwnerHistory; + class IfcPerson extends IfcLineObject$1 { + constructor(Identification, FamilyName, GivenName, MiddleNames, PrefixTitles, SuffixTitles, Roles, Addresses) { + super(); + this.Identification = Identification; + this.FamilyName = FamilyName; + this.GivenName = GivenName; + this.MiddleNames = MiddleNames; + this.PrefixTitles = PrefixTitles; + this.SuffixTitles = SuffixTitles; + this.Roles = Roles; + this.Addresses = Addresses; + this.type = 2077209135; } } - IFC42.IfcPlate = IfcPlate; - class IfcPlateStandardCase extends IfcPlate { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcPerson = IfcPerson; + class IfcPersonAndOrganization extends IfcLineObject$1 { + constructor(ThePerson, TheOrganization, Roles) { + super(); + this.ThePerson = ThePerson; + this.TheOrganization = TheOrganization; + this.Roles = Roles; + this.type = 101040310; + } + } + IFC4X32.IfcPersonAndOrganization = IfcPersonAndOrganization; + class IfcPhysicalQuantity extends IfcLineObject$1 { + constructor(Name, Description) { + super(); this.Name = Name; this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1156407060; + this.type = 2483315170; } } - IFC42.IfcPlateStandardCase = IfcPlateStandardCase; - class IfcProtectiveDevice extends IfcFlowController { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcPhysicalQuantity = IfcPhysicalQuantity; + class IfcPhysicalSimpleQuantity extends IfcPhysicalQuantity { + constructor(Name, Description, Unit) { + super(Name, Description); this.Name = Name; this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 738039164; + this.Unit = Unit; + this.type = 2226359599; } } - IFC42.IfcProtectiveDevice = IfcProtectiveDevice; - class IfcProtectiveDeviceTrippingUnitType extends IfcDistributionControlElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; + IFC4X32.IfcPhysicalSimpleQuantity = IfcPhysicalSimpleQuantity; + class IfcPostalAddress extends IfcAddress { + constructor(Purpose, Description, UserDefinedPurpose, InternalLocation, AddressLines, PostalBox, Town, Region, PostalCode, Country) { + super(Purpose, Description, UserDefinedPurpose); + this.Purpose = Purpose; this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 655969474; + this.UserDefinedPurpose = UserDefinedPurpose; + this.InternalLocation = InternalLocation; + this.AddressLines = AddressLines; + this.PostalBox = PostalBox; + this.Town = Town; + this.Region = Region; + this.PostalCode = PostalCode; + this.Country = Country; + this.type = 3355820592; } } - IFC42.IfcProtectiveDeviceTrippingUnitType = IfcProtectiveDeviceTrippingUnitType; - class IfcPump extends IfcFlowMovingDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcPostalAddress = IfcPostalAddress; + class IfcPresentationItem extends IfcLineObject$1 { + constructor() { + super(); + this.type = 677532197; + } + } + IFC4X32.IfcPresentationItem = IfcPresentationItem; + class IfcPresentationLayerAssignment extends IfcLineObject$1 { + constructor(Name, Description, AssignedItems, Identifier) { + super(); this.Name = Name; this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 90941305; + this.AssignedItems = AssignedItems; + this.Identifier = Identifier; + this.type = 2022622350; } } - IFC42.IfcPump = IfcPump; - class IfcRailing extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcPresentationLayerAssignment = IfcPresentationLayerAssignment; + class IfcPresentationLayerWithStyle extends IfcPresentationLayerAssignment { + constructor(Name, Description, AssignedItems, Identifier, LayerOn, LayerFrozen, LayerBlocked, LayerStyles) { + super(Name, Description, AssignedItems, Identifier); this.Name = Name; this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2262370178; + this.AssignedItems = AssignedItems; + this.Identifier = Identifier; + this.LayerOn = LayerOn; + this.LayerFrozen = LayerFrozen; + this.LayerBlocked = LayerBlocked; + this.LayerStyles = LayerStyles; + this.type = 1304840413; } } - IFC42.IfcRailing = IfcRailing; - class IfcRamp extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcPresentationLayerWithStyle = IfcPresentationLayerWithStyle; + class IfcPresentationStyle extends IfcLineObject$1 { + constructor(Name) { + super(); this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3024970846; + this.type = 3119450353; } } - IFC42.IfcRamp = IfcRamp; - class IfcRampFlight extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcPresentationStyle = IfcPresentationStyle; + class IfcProductRepresentation extends IfcLineObject$1 { + constructor(Name, Description, Representations) { + super(); this.Name = Name; this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3283111854; + this.Representations = Representations; + this.type = 2095639259; } } - IFC42.IfcRampFlight = IfcRampFlight; - class IfcRationalBSplineCurveWithKnots extends IfcBSplineCurveWithKnots { - constructor(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect, KnotMultiplicities, Knots, KnotSpec, WeightsData) { - super(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect, KnotMultiplicities, Knots, KnotSpec); - this.Degree = Degree; - this.ControlPointsList = ControlPointsList; - this.CurveForm = CurveForm; - this.ClosedCurve = ClosedCurve; - this.SelfIntersect = SelfIntersect; - this.KnotMultiplicities = KnotMultiplicities; - this.Knots = Knots; - this.KnotSpec = KnotSpec; - this.WeightsData = WeightsData; - this.type = 1232101972; + IFC4X32.IfcProductRepresentation = IfcProductRepresentation; + class IfcProfileDef extends IfcLineObject$1 { + constructor(ProfileType, ProfileName) { + super(); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.type = 3958567839; + } + } + IFC4X32.IfcProfileDef = IfcProfileDef; + class IfcProjectedCRS extends IfcCoordinateReferenceSystem { + constructor(Name, Description, GeodeticDatum, VerticalDatum, MapProjection, MapZone, MapUnit) { + super(Name, Description, GeodeticDatum, VerticalDatum); + this.Name = Name; + this.Description = Description; + this.GeodeticDatum = GeodeticDatum; + this.VerticalDatum = VerticalDatum; + this.MapProjection = MapProjection; + this.MapZone = MapZone; + this.MapUnit = MapUnit; + this.type = 3843373140; } } - IFC42.IfcRationalBSplineCurveWithKnots = IfcRationalBSplineCurveWithKnots; - class IfcReinforcingBar extends IfcReinforcingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, NominalDiameter, CrossSectionArea, BarLength, PredefinedType, BarSurface) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcProjectedCRS = IfcProjectedCRS; + class IfcPropertyAbstraction extends IfcLineObject$1 { + constructor() { + super(); + this.type = 986844984; + } + } + IFC4X32.IfcPropertyAbstraction = IfcPropertyAbstraction; + class IfcPropertyEnumeration extends IfcPropertyAbstraction { + constructor(Name, EnumerationValues, Unit) { + super(); this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.SteelGrade = SteelGrade; - this.NominalDiameter = NominalDiameter; - this.CrossSectionArea = CrossSectionArea; - this.BarLength = BarLength; - this.PredefinedType = PredefinedType; - this.BarSurface = BarSurface; - this.type = 979691226; + this.EnumerationValues = EnumerationValues; + this.Unit = Unit; + this.type = 3710013099; } } - IFC42.IfcReinforcingBar = IfcReinforcingBar; - class IfcReinforcingBarType extends IfcReinforcingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, NominalDiameter, CrossSectionArea, BarLength, BarSurface, BendingShapeCode, BendingParameters) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcPropertyEnumeration = IfcPropertyEnumeration; + class IfcQuantityArea extends IfcPhysicalSimpleQuantity { + constructor(Name, Description, Unit, AreaValue, Formula) { + super(Name, Description, Unit); this.Name = Name; this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.NominalDiameter = NominalDiameter; - this.CrossSectionArea = CrossSectionArea; - this.BarLength = BarLength; - this.BarSurface = BarSurface; - this.BendingShapeCode = BendingShapeCode; - this.BendingParameters = BendingParameters; - this.type = 2572171363; + this.Unit = Unit; + this.AreaValue = AreaValue; + this.Formula = Formula; + this.type = 2044713172; } } - IFC42.IfcReinforcingBarType = IfcReinforcingBarType; - class IfcRoof extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcQuantityArea = IfcQuantityArea; + class IfcQuantityCount extends IfcPhysicalSimpleQuantity { + constructor(Name, Description, Unit, CountValue, Formula) { + super(Name, Description, Unit); this.Name = Name; this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2016517767; + this.Unit = Unit; + this.CountValue = CountValue; + this.Formula = Formula; + this.type = 2093928680; } } - IFC42.IfcRoof = IfcRoof; - class IfcSanitaryTerminal extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcQuantityCount = IfcQuantityCount; + class IfcQuantityLength extends IfcPhysicalSimpleQuantity { + constructor(Name, Description, Unit, LengthValue, Formula) { + super(Name, Description, Unit); this.Name = Name; this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3053780830; + this.Unit = Unit; + this.LengthValue = LengthValue; + this.Formula = Formula; + this.type = 931644368; } } - IFC42.IfcSanitaryTerminal = IfcSanitaryTerminal; - class IfcSensorType extends IfcDistributionControlElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcQuantityLength = IfcQuantityLength; + class IfcQuantityNumber extends IfcPhysicalSimpleQuantity { + constructor(Name, Description, Unit, NumberValue, Formula) { + super(Name, Description, Unit); this.Name = Name; this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1783015770; + this.Unit = Unit; + this.NumberValue = NumberValue; + this.Formula = Formula; + this.type = 2691318326; } } - IFC42.IfcSensorType = IfcSensorType; - class IfcShadingDevice extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcQuantityNumber = IfcQuantityNumber; + class IfcQuantityTime extends IfcPhysicalSimpleQuantity { + constructor(Name, Description, Unit, TimeValue, Formula) { + super(Name, Description, Unit); this.Name = Name; this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1329646415; + this.Unit = Unit; + this.TimeValue = TimeValue; + this.Formula = Formula; + this.type = 3252649465; } } - IFC42.IfcShadingDevice = IfcShadingDevice; - class IfcSlab extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcQuantityTime = IfcQuantityTime; + class IfcQuantityVolume extends IfcPhysicalSimpleQuantity { + constructor(Name, Description, Unit, VolumeValue, Formula) { + super(Name, Description, Unit); this.Name = Name; this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1529196076; + this.Unit = Unit; + this.VolumeValue = VolumeValue; + this.Formula = Formula; + this.type = 2405470396; } } - IFC42.IfcSlab = IfcSlab; - class IfcSlabElementedCase extends IfcSlab { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcQuantityVolume = IfcQuantityVolume; + class IfcQuantityWeight extends IfcPhysicalSimpleQuantity { + constructor(Name, Description, Unit, WeightValue, Formula) { + super(Name, Description, Unit); this.Name = Name; this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3127900445; + this.Unit = Unit; + this.WeightValue = WeightValue; + this.Formula = Formula; + this.type = 825690147; } } - IFC42.IfcSlabElementedCase = IfcSlabElementedCase; - class IfcSlabStandardCase extends IfcSlab { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcQuantityWeight = IfcQuantityWeight; + class IfcRecurrencePattern extends IfcLineObject$1 { + constructor(RecurrenceType, DayComponent, WeekdayComponent, MonthComponent, Position, Interval, Occurrences, TimePeriods) { + super(); + this.RecurrenceType = RecurrenceType; + this.DayComponent = DayComponent; + this.WeekdayComponent = WeekdayComponent; + this.MonthComponent = MonthComponent; + this.Position = Position; + this.Interval = Interval; + this.Occurrences = Occurrences; + this.TimePeriods = TimePeriods; + this.type = 3915482550; + } + } + IFC4X32.IfcRecurrencePattern = IfcRecurrencePattern; + class IfcReference extends IfcLineObject$1 { + constructor(TypeIdentifier, AttributeIdentifier, InstanceName, ListPositions, InnerReference) { + super(); + this.TypeIdentifier = TypeIdentifier; + this.AttributeIdentifier = AttributeIdentifier; + this.InstanceName = InstanceName; + this.ListPositions = ListPositions; + this.InnerReference = InnerReference; + this.type = 2433181523; + } + } + IFC4X32.IfcReference = IfcReference; + class IfcRepresentation extends IfcLineObject$1 { + constructor(ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { + super(); + this.ContextOfItems = ContextOfItems; + this.RepresentationIdentifier = RepresentationIdentifier; + this.RepresentationType = RepresentationType; + this.Items = Items; + this.type = 1076942058; + } + } + IFC4X32.IfcRepresentation = IfcRepresentation; + class IfcRepresentationContext extends IfcLineObject$1 { + constructor(ContextIdentifier, ContextType) { + super(); + this.ContextIdentifier = ContextIdentifier; + this.ContextType = ContextType; + this.type = 3377609919; + } + } + IFC4X32.IfcRepresentationContext = IfcRepresentationContext; + class IfcRepresentationItem extends IfcLineObject$1 { + constructor() { + super(); + this.type = 3008791417; + } + } + IFC4X32.IfcRepresentationItem = IfcRepresentationItem; + class IfcRepresentationMap extends IfcLineObject$1 { + constructor(MappingOrigin, MappedRepresentation) { + super(); + this.MappingOrigin = MappingOrigin; + this.MappedRepresentation = MappedRepresentation; + this.type = 1660063152; + } + } + IFC4X32.IfcRepresentationMap = IfcRepresentationMap; + class IfcResourceLevelRelationship extends IfcLineObject$1 { + constructor(Name, Description) { + super(); this.Name = Name; this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3027962421; + this.type = 2439245199; } } - IFC42.IfcSlabStandardCase = IfcSlabStandardCase; - class IfcSolarDevice extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + IFC4X32.IfcResourceLevelRelationship = IfcResourceLevelRelationship; + class IfcRoot extends IfcLineObject$1 { + constructor(GlobalId, OwnerHistory, Name, Description) { + super(); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3420628829; + this.type = 2341007311; } } - IFC42.IfcSolarDevice = IfcSolarDevice; - class IfcSpaceHeater extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcRoot = IfcRoot; + class IfcSIUnit extends IfcNamedUnit { + constructor(Dimensions, UnitType, Prefix, Name) { + super(Dimensions, UnitType); + this.Dimensions = Dimensions; + this.UnitType = UnitType; + this.Prefix = Prefix; this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1999602285; + this.type = 448429030; } } - IFC42.IfcSpaceHeater = IfcSpaceHeater; - class IfcStackTerminal extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcSIUnit = IfcSIUnit; + class IfcSchedulingTime extends IfcLineObject$1 { + constructor(Name, DataOrigin, UserDefinedDataOrigin) { + super(); this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1404847402; + this.DataOrigin = DataOrigin; + this.UserDefinedDataOrigin = UserDefinedDataOrigin; + this.type = 1054537805; } } - IFC42.IfcStackTerminal = IfcStackTerminal; - class IfcStair extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcSchedulingTime = IfcSchedulingTime; + class IfcShapeAspect extends IfcLineObject$1 { + constructor(ShapeRepresentations, Name, Description, ProductDefinitional, PartOfProductDefinitionShape) { + super(); + this.ShapeRepresentations = ShapeRepresentations; this.Name = Name; this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 331165859; + this.ProductDefinitional = ProductDefinitional; + this.PartOfProductDefinitionShape = PartOfProductDefinitionShape; + this.type = 867548509; } } - IFC42.IfcStair = IfcStair; - class IfcStairFlight extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, NumberOfRisers, NumberOfTreads, RiserHeight, TreadLength, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcShapeAspect = IfcShapeAspect; + class IfcShapeModel extends IfcRepresentation { + constructor(ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { + super(ContextOfItems, RepresentationIdentifier, RepresentationType, Items); + this.ContextOfItems = ContextOfItems; + this.RepresentationIdentifier = RepresentationIdentifier; + this.RepresentationType = RepresentationType; + this.Items = Items; + this.type = 3982875396; + } + } + IFC4X32.IfcShapeModel = IfcShapeModel; + class IfcShapeRepresentation extends IfcShapeModel { + constructor(ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { + super(ContextOfItems, RepresentationIdentifier, RepresentationType, Items); + this.ContextOfItems = ContextOfItems; + this.RepresentationIdentifier = RepresentationIdentifier; + this.RepresentationType = RepresentationType; + this.Items = Items; + this.type = 4240577450; + } + } + IFC4X32.IfcShapeRepresentation = IfcShapeRepresentation; + class IfcStructuralConnectionCondition extends IfcLineObject$1 { + constructor(Name) { + super(); this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.NumberOfRisers = NumberOfRisers; - this.NumberOfTreads = NumberOfTreads; - this.RiserHeight = RiserHeight; - this.TreadLength = TreadLength; - this.PredefinedType = PredefinedType; - this.type = 4252922144; + this.type = 2273995522; } } - IFC42.IfcStairFlight = IfcStairFlight; - class IfcStructuralAnalysisModel extends IfcSystem { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, OrientationOf2DPlane, LoadedBy, HasResults, SharedPlacement) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcStructuralConnectionCondition = IfcStructuralConnectionCondition; + class IfcStructuralLoad extends IfcLineObject$1 { + constructor(Name) { + super(); this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.PredefinedType = PredefinedType; - this.OrientationOf2DPlane = OrientationOf2DPlane; - this.LoadedBy = LoadedBy; - this.HasResults = HasResults; - this.SharedPlacement = SharedPlacement; - this.type = 2515109513; + this.type = 2162789131; } } - IFC42.IfcStructuralAnalysisModel = IfcStructuralAnalysisModel; - class IfcStructuralLoadCase extends IfcStructuralLoadGroup { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, ActionType, ActionSource, Coefficient, Purpose, SelfWeightCoefficients) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, ActionType, ActionSource, Coefficient, Purpose); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcStructuralLoad = IfcStructuralLoad; + class IfcStructuralLoadConfiguration extends IfcStructuralLoad { + constructor(Name, Values, Locations) { + super(Name); this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.PredefinedType = PredefinedType; - this.ActionType = ActionType; - this.ActionSource = ActionSource; - this.Coefficient = Coefficient; - this.Purpose = Purpose; - this.SelfWeightCoefficients = SelfWeightCoefficients; - this.type = 385403989; + this.Values = Values; + this.Locations = Locations; + this.type = 3478079324; } } - IFC42.IfcStructuralLoadCase = IfcStructuralLoadCase; - class IfcStructuralPlanarAction extends IfcStructuralSurfaceAction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcStructuralLoadConfiguration = IfcStructuralLoadConfiguration; + class IfcStructuralLoadOrResult extends IfcStructuralLoad { + constructor(Name) { + super(Name); this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.DestabilizingLoad = DestabilizingLoad; - this.ProjectedOrTrue = ProjectedOrTrue; - this.PredefinedType = PredefinedType; - this.type = 1621171031; + this.type = 609421318; } } - IFC42.IfcStructuralPlanarAction = IfcStructuralPlanarAction; - class IfcSwitchingDevice extends IfcFlowController { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcStructuralLoadOrResult = IfcStructuralLoadOrResult; + class IfcStructuralLoadStatic extends IfcStructuralLoadOrResult { + constructor(Name) { + super(Name); this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1162798199; + this.type = 2525727697; } } - IFC42.IfcSwitchingDevice = IfcSwitchingDevice; - class IfcTank extends IfcFlowStorageDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcStructuralLoadStatic = IfcStructuralLoadStatic; + class IfcStructuralLoadTemperature extends IfcStructuralLoadStatic { + constructor(Name, DeltaTConstant, DeltaTY, DeltaTZ) { + super(Name); this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 812556717; + this.DeltaTConstant = DeltaTConstant; + this.DeltaTY = DeltaTY; + this.DeltaTZ = DeltaTZ; + this.type = 3408363356; } } - IFC42.IfcTank = IfcTank; - class IfcTransformer extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcStructuralLoadTemperature = IfcStructuralLoadTemperature; + class IfcStyleModel extends IfcRepresentation { + constructor(ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { + super(ContextOfItems, RepresentationIdentifier, RepresentationType, Items); + this.ContextOfItems = ContextOfItems; + this.RepresentationIdentifier = RepresentationIdentifier; + this.RepresentationType = RepresentationType; + this.Items = Items; + this.type = 2830218821; + } + } + IFC4X32.IfcStyleModel = IfcStyleModel; + class IfcStyledItem extends IfcRepresentationItem { + constructor(Item, Styles, Name) { + super(); + this.Item = Item; + this.Styles = Styles; this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3825984169; + this.type = 3958052878; } } - IFC42.IfcTransformer = IfcTransformer; - class IfcTubeBundle extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcStyledItem = IfcStyledItem; + class IfcStyledRepresentation extends IfcStyleModel { + constructor(ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { + super(ContextOfItems, RepresentationIdentifier, RepresentationType, Items); + this.ContextOfItems = ContextOfItems; + this.RepresentationIdentifier = RepresentationIdentifier; + this.RepresentationType = RepresentationType; + this.Items = Items; + this.type = 3049322572; + } + } + IFC4X32.IfcStyledRepresentation = IfcStyledRepresentation; + class IfcSurfaceReinforcementArea extends IfcStructuralLoadOrResult { + constructor(Name, SurfaceReinforcement1, SurfaceReinforcement2, ShearReinforcement) { + super(Name); this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3026737570; + this.SurfaceReinforcement1 = SurfaceReinforcement1; + this.SurfaceReinforcement2 = SurfaceReinforcement2; + this.ShearReinforcement = ShearReinforcement; + this.type = 2934153892; + } + } + IFC4X32.IfcSurfaceReinforcementArea = IfcSurfaceReinforcementArea; + class IfcSurfaceStyle extends IfcPresentationStyle { + constructor(Name, Side, Styles) { + super(Name); + this.Name = Name; + this.Side = Side; + this.Styles = Styles; + this.type = 1300840506; + } + } + IFC4X32.IfcSurfaceStyle = IfcSurfaceStyle; + class IfcSurfaceStyleLighting extends IfcPresentationItem { + constructor(DiffuseTransmissionColour, DiffuseReflectionColour, TransmissionColour, ReflectanceColour) { + super(); + this.DiffuseTransmissionColour = DiffuseTransmissionColour; + this.DiffuseReflectionColour = DiffuseReflectionColour; + this.TransmissionColour = TransmissionColour; + this.ReflectanceColour = ReflectanceColour; + this.type = 3303107099; + } + } + IFC4X32.IfcSurfaceStyleLighting = IfcSurfaceStyleLighting; + class IfcSurfaceStyleRefraction extends IfcPresentationItem { + constructor(RefractionIndex, DispersionFactor) { + super(); + this.RefractionIndex = RefractionIndex; + this.DispersionFactor = DispersionFactor; + this.type = 1607154358; + } + } + IFC4X32.IfcSurfaceStyleRefraction = IfcSurfaceStyleRefraction; + class IfcSurfaceStyleShading extends IfcPresentationItem { + constructor(SurfaceColour, Transparency) { + super(); + this.SurfaceColour = SurfaceColour; + this.Transparency = Transparency; + this.type = 846575682; + } + } + IFC4X32.IfcSurfaceStyleShading = IfcSurfaceStyleShading; + class IfcSurfaceStyleWithTextures extends IfcPresentationItem { + constructor(Textures) { + super(); + this.Textures = Textures; + this.type = 1351298697; + } + } + IFC4X32.IfcSurfaceStyleWithTextures = IfcSurfaceStyleWithTextures; + class IfcSurfaceTexture extends IfcPresentationItem { + constructor(RepeatS, RepeatT, Mode, TextureTransform, Parameter) { + super(); + this.RepeatS = RepeatS; + this.RepeatT = RepeatT; + this.Mode = Mode; + this.TextureTransform = TextureTransform; + this.Parameter = Parameter; + this.type = 626085974; } } - IFC42.IfcTubeBundle = IfcTubeBundle; - class IfcUnitaryControlElementType extends IfcDistributionControlElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcSurfaceTexture = IfcSurfaceTexture; + class IfcTable extends IfcLineObject$1 { + constructor(Name, Rows, Columns) { + super(); this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3179687236; + this.Rows = Rows; + this.Columns = Columns; + this.type = 985171141; } } - IFC42.IfcUnitaryControlElementType = IfcUnitaryControlElementType; - class IfcUnitaryEquipment extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcTable = IfcTable; + class IfcTableColumn extends IfcLineObject$1 { + constructor(Identifier, Name, Description, Unit, ReferencePath) { + super(); + this.Identifier = Identifier; this.Name = Name; this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 4292641817; + this.Unit = Unit; + this.ReferencePath = ReferencePath; + this.type = 2043862942; } } - IFC42.IfcUnitaryEquipment = IfcUnitaryEquipment; - class IfcValve extends IfcFlowController { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 4207607924; + IFC4X32.IfcTableColumn = IfcTableColumn; + class IfcTableRow extends IfcLineObject$1 { + constructor(RowCells, IsHeading) { + super(); + this.RowCells = RowCells; + this.IsHeading = IsHeading; + this.type = 531007025; } } - IFC42.IfcValve = IfcValve; - class IfcWall extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcTableRow = IfcTableRow; + class IfcTaskTime extends IfcSchedulingTime { + constructor(Name, DataOrigin, UserDefinedDataOrigin, DurationType, ScheduleDuration, ScheduleStart, ScheduleFinish, EarlyStart, EarlyFinish, LateStart, LateFinish, FreeFloat, TotalFloat, IsCritical, StatusTime, ActualDuration, ActualStart, ActualFinish, RemainingTime, Completion) { + super(Name, DataOrigin, UserDefinedDataOrigin); this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2391406946; + this.DataOrigin = DataOrigin; + this.UserDefinedDataOrigin = UserDefinedDataOrigin; + this.DurationType = DurationType; + this.ScheduleDuration = ScheduleDuration; + this.ScheduleStart = ScheduleStart; + this.ScheduleFinish = ScheduleFinish; + this.EarlyStart = EarlyStart; + this.EarlyFinish = EarlyFinish; + this.LateStart = LateStart; + this.LateFinish = LateFinish; + this.FreeFloat = FreeFloat; + this.TotalFloat = TotalFloat; + this.IsCritical = IsCritical; + this.StatusTime = StatusTime; + this.ActualDuration = ActualDuration; + this.ActualStart = ActualStart; + this.ActualFinish = ActualFinish; + this.RemainingTime = RemainingTime; + this.Completion = Completion; + this.type = 1549132990; } } - IFC42.IfcWall = IfcWall; - class IfcWallElementedCase extends IfcWall { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcTaskTime = IfcTaskTime; + class IfcTaskTimeRecurring extends IfcTaskTime { + constructor(Name, DataOrigin, UserDefinedDataOrigin, DurationType, ScheduleDuration, ScheduleStart, ScheduleFinish, EarlyStart, EarlyFinish, LateStart, LateFinish, FreeFloat, TotalFloat, IsCritical, StatusTime, ActualDuration, ActualStart, ActualFinish, RemainingTime, Completion, Recurrence) { + super(Name, DataOrigin, UserDefinedDataOrigin, DurationType, ScheduleDuration, ScheduleStart, ScheduleFinish, EarlyStart, EarlyFinish, LateStart, LateFinish, FreeFloat, TotalFloat, IsCritical, StatusTime, ActualDuration, ActualStart, ActualFinish, RemainingTime, Completion); this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 4156078855; + this.DataOrigin = DataOrigin; + this.UserDefinedDataOrigin = UserDefinedDataOrigin; + this.DurationType = DurationType; + this.ScheduleDuration = ScheduleDuration; + this.ScheduleStart = ScheduleStart; + this.ScheduleFinish = ScheduleFinish; + this.EarlyStart = EarlyStart; + this.EarlyFinish = EarlyFinish; + this.LateStart = LateStart; + this.LateFinish = LateFinish; + this.FreeFloat = FreeFloat; + this.TotalFloat = TotalFloat; + this.IsCritical = IsCritical; + this.StatusTime = StatusTime; + this.ActualDuration = ActualDuration; + this.ActualStart = ActualStart; + this.ActualFinish = ActualFinish; + this.RemainingTime = RemainingTime; + this.Completion = Completion; + this.Recurrence = Recurrence; + this.type = 2771591690; } } - IFC42.IfcWallElementedCase = IfcWallElementedCase; - class IfcWallStandardCase extends IfcWall { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; + IFC4X32.IfcTaskTimeRecurring = IfcTaskTimeRecurring; + class IfcTelecomAddress extends IfcAddress { + constructor(Purpose, Description, UserDefinedPurpose, TelephoneNumbers, FacsimileNumbers, PagerNumber, ElectronicMailAddresses, WWWHomePageURL, MessagingIDs) { + super(Purpose, Description, UserDefinedPurpose); + this.Purpose = Purpose; this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3512223829; + this.UserDefinedPurpose = UserDefinedPurpose; + this.TelephoneNumbers = TelephoneNumbers; + this.FacsimileNumbers = FacsimileNumbers; + this.PagerNumber = PagerNumber; + this.ElectronicMailAddresses = ElectronicMailAddresses; + this.WWWHomePageURL = WWWHomePageURL; + this.MessagingIDs = MessagingIDs; + this.type = 912023232; } } - IFC42.IfcWallStandardCase = IfcWallStandardCase; - class IfcWasteTerminal extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcTelecomAddress = IfcTelecomAddress; + class IfcTextStyle extends IfcPresentationStyle { + constructor(Name, TextCharacterAppearance, TextStyle, TextFontStyle, ModelOrDraughting) { + super(Name); this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 4237592921; + this.TextCharacterAppearance = TextCharacterAppearance; + this.TextStyle = TextStyle; + this.TextFontStyle = TextFontStyle; + this.ModelOrDraughting = ModelOrDraughting; + this.type = 1447204868; } } - IFC42.IfcWasteTerminal = IfcWasteTerminal; - class IfcWindow extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, PartitioningType, UserDefinedPartitioningType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.OverallHeight = OverallHeight; - this.OverallWidth = OverallWidth; - this.PredefinedType = PredefinedType; - this.PartitioningType = PartitioningType; - this.UserDefinedPartitioningType = UserDefinedPartitioningType; - this.type = 3304561284; + IFC4X32.IfcTextStyle = IfcTextStyle; + class IfcTextStyleForDefinedFont extends IfcPresentationItem { + constructor(Colour, BackgroundColour) { + super(); + this.Colour = Colour; + this.BackgroundColour = BackgroundColour; + this.type = 2636378356; } } - IFC42.IfcWindow = IfcWindow; - class IfcWindowStandardCase extends IfcWindow { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, PartitioningType, UserDefinedPartitioningType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, PartitioningType, UserDefinedPartitioningType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.OverallHeight = OverallHeight; - this.OverallWidth = OverallWidth; - this.PredefinedType = PredefinedType; - this.PartitioningType = PartitioningType; - this.UserDefinedPartitioningType = UserDefinedPartitioningType; - this.type = 486154966; + IFC4X32.IfcTextStyleForDefinedFont = IfcTextStyleForDefinedFont; + class IfcTextStyleTextModel extends IfcPresentationItem { + constructor(TextIndent, TextAlign, TextDecoration, LetterSpacing, WordSpacing, TextTransform, LineHeight) { + super(); + this.TextIndent = TextIndent; + this.TextAlign = TextAlign; + this.TextDecoration = TextDecoration; + this.LetterSpacing = LetterSpacing; + this.WordSpacing = WordSpacing; + this.TextTransform = TextTransform; + this.LineHeight = LineHeight; + this.type = 1640371178; } } - IFC42.IfcWindowStandardCase = IfcWindowStandardCase; - class IfcActuatorType extends IfcDistributionControlElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2874132201; + IFC4X32.IfcTextStyleTextModel = IfcTextStyleTextModel; + class IfcTextureCoordinate extends IfcPresentationItem { + constructor(Maps) { + super(); + this.Maps = Maps; + this.type = 280115917; } } - IFC42.IfcActuatorType = IfcActuatorType; - class IfcAirTerminal extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1634111441; + IFC4X32.IfcTextureCoordinate = IfcTextureCoordinate; + class IfcTextureCoordinateGenerator extends IfcTextureCoordinate { + constructor(Maps, Mode, Parameter) { + super(Maps); + this.Maps = Maps; + this.Mode = Mode; + this.Parameter = Parameter; + this.type = 1742049831; } } - IFC42.IfcAirTerminal = IfcAirTerminal; - class IfcAirTerminalBox extends IfcFlowController { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 177149247; + IFC4X32.IfcTextureCoordinateGenerator = IfcTextureCoordinateGenerator; + class IfcTextureCoordinateIndices extends IfcLineObject$1 { + constructor(TexCoordIndex, TexCoordsOf) { + super(); + this.TexCoordIndex = TexCoordIndex; + this.TexCoordsOf = TexCoordsOf; + this.type = 222769930; } } - IFC42.IfcAirTerminalBox = IfcAirTerminalBox; - class IfcAirToAirHeatRecovery extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2056796094; + IFC4X32.IfcTextureCoordinateIndices = IfcTextureCoordinateIndices; + class IfcTextureCoordinateIndicesWithVoids extends IfcTextureCoordinateIndices { + constructor(TexCoordIndex, TexCoordsOf, InnerTexCoordIndices) { + super(TexCoordIndex, TexCoordsOf); + this.TexCoordIndex = TexCoordIndex; + this.TexCoordsOf = TexCoordsOf; + this.InnerTexCoordIndices = InnerTexCoordIndices; + this.type = 1010789467; } } - IFC42.IfcAirToAirHeatRecovery = IfcAirToAirHeatRecovery; - class IfcAlarmType extends IfcDistributionControlElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3001207471; + IFC4X32.IfcTextureCoordinateIndicesWithVoids = IfcTextureCoordinateIndicesWithVoids; + class IfcTextureMap extends IfcTextureCoordinate { + constructor(Maps, Vertices, MappedTo) { + super(Maps); + this.Maps = Maps; + this.Vertices = Vertices; + this.MappedTo = MappedTo; + this.type = 2552916305; } } - IFC42.IfcAlarmType = IfcAlarmType; - class IfcAudioVisualAppliance extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 277319702; + IFC4X32.IfcTextureMap = IfcTextureMap; + class IfcTextureVertex extends IfcPresentationItem { + constructor(Coordinates) { + super(); + this.Coordinates = Coordinates; + this.type = 1210645708; } } - IFC42.IfcAudioVisualAppliance = IfcAudioVisualAppliance; - class IfcBeam extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 753842376; + IFC4X32.IfcTextureVertex = IfcTextureVertex; + class IfcTextureVertexList extends IfcPresentationItem { + constructor(TexCoordsList) { + super(); + this.TexCoordsList = TexCoordsList; + this.type = 3611470254; } } - IFC42.IfcBeam = IfcBeam; - class IfcBeamStandardCase extends IfcBeam { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2906023776; + IFC4X32.IfcTextureVertexList = IfcTextureVertexList; + class IfcTimePeriod extends IfcLineObject$1 { + constructor(StartTime, EndTime) { + super(); + this.StartTime = StartTime; + this.EndTime = EndTime; + this.type = 1199560280; } } - IFC42.IfcBeamStandardCase = IfcBeamStandardCase; - class IfcBoiler extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcTimePeriod = IfcTimePeriod; + class IfcTimeSeries extends IfcLineObject$1 { + constructor(Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit) { + super(); this.Name = Name; this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 32344328; + this.StartTime = StartTime; + this.EndTime = EndTime; + this.TimeSeriesDataType = TimeSeriesDataType; + this.DataOrigin = DataOrigin; + this.UserDefinedDataOrigin = UserDefinedDataOrigin; + this.Unit = Unit; + this.type = 3101149627; } } - IFC42.IfcBoiler = IfcBoiler; - class IfcBurner extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2938176219; + IFC4X32.IfcTimeSeries = IfcTimeSeries; + class IfcTimeSeriesValue extends IfcLineObject$1 { + constructor(ListValues) { + super(); + this.ListValues = ListValues; + this.type = 581633288; } } - IFC42.IfcBurner = IfcBurner; - class IfcCableCarrierFitting extends IfcFlowFitting { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 635142910; + IFC4X32.IfcTimeSeriesValue = IfcTimeSeriesValue; + class IfcTopologicalRepresentationItem extends IfcRepresentationItem { + constructor() { + super(); + this.type = 1377556343; } } - IFC42.IfcCableCarrierFitting = IfcCableCarrierFitting; - class IfcCableCarrierSegment extends IfcFlowSegment { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcTopologicalRepresentationItem = IfcTopologicalRepresentationItem; + class IfcTopologyRepresentation extends IfcShapeModel { + constructor(ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { + super(ContextOfItems, RepresentationIdentifier, RepresentationType, Items); + this.ContextOfItems = ContextOfItems; + this.RepresentationIdentifier = RepresentationIdentifier; + this.RepresentationType = RepresentationType; + this.Items = Items; + this.type = 1735638870; + } + } + IFC4X32.IfcTopologyRepresentation = IfcTopologyRepresentation; + class IfcUnitAssignment extends IfcLineObject$1 { + constructor(Units) { + super(); + this.Units = Units; + this.type = 180925521; + } + } + IFC4X32.IfcUnitAssignment = IfcUnitAssignment; + class IfcVertex extends IfcTopologicalRepresentationItem { + constructor() { + super(); + this.type = 2799835756; + } + } + IFC4X32.IfcVertex = IfcVertex; + class IfcVertexPoint extends IfcVertex { + constructor(VertexGeometry) { + super(); + this.VertexGeometry = VertexGeometry; + this.type = 1907098498; + } + } + IFC4X32.IfcVertexPoint = IfcVertexPoint; + class IfcVirtualGridIntersection extends IfcLineObject$1 { + constructor(IntersectingAxes, OffsetDistances) { + super(); + this.IntersectingAxes = IntersectingAxes; + this.OffsetDistances = OffsetDistances; + this.type = 891718957; + } + } + IFC4X32.IfcVirtualGridIntersection = IfcVirtualGridIntersection; + class IfcWorkTime extends IfcSchedulingTime { + constructor(Name, DataOrigin, UserDefinedDataOrigin, RecurrencePattern, StartDate, FinishDate) { + super(Name, DataOrigin, UserDefinedDataOrigin); this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; + this.DataOrigin = DataOrigin; + this.UserDefinedDataOrigin = UserDefinedDataOrigin; + this.RecurrencePattern = RecurrencePattern; + this.StartDate = StartDate; + this.FinishDate = FinishDate; + this.type = 1236880293; + } + } + IFC4X32.IfcWorkTime = IfcWorkTime; + class IfcAlignmentCantSegment extends IfcAlignmentParameterSegment { + constructor(StartTag, EndTag, StartDistAlong, HorizontalLength, StartCantLeft, EndCantLeft, StartCantRight, EndCantRight, PredefinedType) { + super(StartTag, EndTag); + this.StartTag = StartTag; + this.EndTag = EndTag; + this.StartDistAlong = StartDistAlong; + this.HorizontalLength = HorizontalLength; + this.StartCantLeft = StartCantLeft; + this.EndCantLeft = EndCantLeft; + this.StartCantRight = StartCantRight; + this.EndCantRight = EndCantRight; this.PredefinedType = PredefinedType; - this.type = 3758799889; + this.type = 3752311538; } } - IFC42.IfcCableCarrierSegment = IfcCableCarrierSegment; - class IfcCableFitting extends IfcFlowFitting { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; + IFC4X32.IfcAlignmentCantSegment = IfcAlignmentCantSegment; + class IfcAlignmentHorizontalSegment extends IfcAlignmentParameterSegment { + constructor(StartTag, EndTag, StartPoint, StartDirection, StartRadiusOfCurvature, EndRadiusOfCurvature, SegmentLength, GravityCenterLineHeight, PredefinedType) { + super(StartTag, EndTag); + this.StartTag = StartTag; + this.EndTag = EndTag; + this.StartPoint = StartPoint; + this.StartDirection = StartDirection; + this.StartRadiusOfCurvature = StartRadiusOfCurvature; + this.EndRadiusOfCurvature = EndRadiusOfCurvature; + this.SegmentLength = SegmentLength; + this.GravityCenterLineHeight = GravityCenterLineHeight; this.PredefinedType = PredefinedType; - this.type = 1051757585; + this.type = 536804194; } } - IFC42.IfcCableFitting = IfcCableFitting; - class IfcCableSegment extends IfcFlowSegment { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcAlignmentHorizontalSegment = IfcAlignmentHorizontalSegment; + class IfcApprovalRelationship extends IfcResourceLevelRelationship { + constructor(Name, Description, RelatingApproval, RelatedApprovals) { + super(Name, Description); this.Name = Name; this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 4217484030; + this.RelatingApproval = RelatingApproval; + this.RelatedApprovals = RelatedApprovals; + this.type = 3869604511; } } - IFC42.IfcCableSegment = IfcCableSegment; - class IfcChiller extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3902619387; + IFC4X32.IfcApprovalRelationship = IfcApprovalRelationship; + class IfcArbitraryClosedProfileDef extends IfcProfileDef { + constructor(ProfileType, ProfileName, OuterCurve) { + super(ProfileType, ProfileName); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.OuterCurve = OuterCurve; + this.type = 3798115385; } } - IFC42.IfcChiller = IfcChiller; - class IfcCoil extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 639361253; + IFC4X32.IfcArbitraryClosedProfileDef = IfcArbitraryClosedProfileDef; + class IfcArbitraryOpenProfileDef extends IfcProfileDef { + constructor(ProfileType, ProfileName, Curve) { + super(ProfileType, ProfileName); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Curve = Curve; + this.type = 1310608509; } } - IFC42.IfcCoil = IfcCoil; - class IfcCommunicationsAppliance extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3221913625; + IFC4X32.IfcArbitraryOpenProfileDef = IfcArbitraryOpenProfileDef; + class IfcArbitraryProfileDefWithVoids extends IfcArbitraryClosedProfileDef { + constructor(ProfileType, ProfileName, OuterCurve, InnerCurves) { + super(ProfileType, ProfileName, OuterCurve); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.OuterCurve = OuterCurve; + this.InnerCurves = InnerCurves; + this.type = 2705031697; } } - IFC42.IfcCommunicationsAppliance = IfcCommunicationsAppliance; - class IfcCompressor extends IfcFlowMovingDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3571504051; + IFC4X32.IfcArbitraryProfileDefWithVoids = IfcArbitraryProfileDefWithVoids; + class IfcBlobTexture extends IfcSurfaceTexture { + constructor(RepeatS, RepeatT, Mode, TextureTransform, Parameter, RasterFormat, RasterCode) { + super(RepeatS, RepeatT, Mode, TextureTransform, Parameter); + this.RepeatS = RepeatS; + this.RepeatT = RepeatT; + this.Mode = Mode; + this.TextureTransform = TextureTransform; + this.Parameter = Parameter; + this.RasterFormat = RasterFormat; + this.RasterCode = RasterCode; + this.type = 616511568; } } - IFC42.IfcCompressor = IfcCompressor; - class IfcCondenser extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2272882330; + IFC4X32.IfcBlobTexture = IfcBlobTexture; + class IfcCenterLineProfileDef extends IfcArbitraryOpenProfileDef { + constructor(ProfileType, ProfileName, Curve, Thickness) { + super(ProfileType, ProfileName, Curve); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Curve = Curve; + this.Thickness = Thickness; + this.type = 3150382593; } } - IFC42.IfcCondenser = IfcCondenser; - class IfcControllerType extends IfcDistributionControlElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcCenterLineProfileDef = IfcCenterLineProfileDef; + class IfcClassification extends IfcExternalInformation { + constructor(Source, Edition, EditionDate, Name, Description, Specification, ReferenceTokens) { + super(); + this.Source = Source; + this.Edition = Edition; + this.EditionDate = EditionDate; this.Name = Name; this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 578613899; + this.Specification = Specification; + this.ReferenceTokens = ReferenceTokens; + this.type = 747523909; } } - IFC42.IfcControllerType = IfcControllerType; - class IfcCooledBeam extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcClassification = IfcClassification; + class IfcClassificationReference extends IfcExternalReference { + constructor(Location, Identification, Name, ReferencedSource, Description, Sort) { + super(Location, Identification, Name); + this.Location = Location; + this.Identification = Identification; this.Name = Name; + this.ReferencedSource = ReferencedSource; this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 4136498852; + this.Sort = Sort; + this.type = 647927063; } } - IFC42.IfcCooledBeam = IfcCooledBeam; - class IfcCoolingTower extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3640358203; + IFC4X32.IfcClassificationReference = IfcClassificationReference; + class IfcColourRgbList extends IfcPresentationItem { + constructor(ColourList) { + super(); + this.ColourList = ColourList; + this.type = 3285139300; } } - IFC42.IfcCoolingTower = IfcCoolingTower; - class IfcDamper extends IfcFlowController { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcColourRgbList = IfcColourRgbList; + class IfcColourSpecification extends IfcPresentationItem { + constructor(Name) { + super(); this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 4074379575; + this.type = 3264961684; } } - IFC42.IfcDamper = IfcDamper; - class IfcDistributionChamberElement extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1052013943; + IFC4X32.IfcColourSpecification = IfcColourSpecification; + class IfcCompositeProfileDef extends IfcProfileDef { + constructor(ProfileType, ProfileName, Profiles, Label) { + super(ProfileType, ProfileName); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Profiles = Profiles; + this.Label = Label; + this.type = 1485152156; } } - IFC42.IfcDistributionChamberElement = IfcDistributionChamberElement; - class IfcDistributionCircuit extends IfcDistributionSystem { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, PredefinedType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.LongName = LongName; - this.PredefinedType = PredefinedType; - this.type = 562808652; + IFC4X32.IfcCompositeProfileDef = IfcCompositeProfileDef; + class IfcConnectedFaceSet extends IfcTopologicalRepresentationItem { + constructor(CfsFaces) { + super(); + this.CfsFaces = CfsFaces; + this.type = 370225590; } } - IFC42.IfcDistributionCircuit = IfcDistributionCircuit; - class IfcDistributionControlElement extends IfcDistributionElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1062813311; + IFC4X32.IfcConnectedFaceSet = IfcConnectedFaceSet; + class IfcConnectionCurveGeometry extends IfcConnectionGeometry { + constructor(CurveOnRelatingElement, CurveOnRelatedElement) { + super(); + this.CurveOnRelatingElement = CurveOnRelatingElement; + this.CurveOnRelatedElement = CurveOnRelatedElement; + this.type = 1981873012; } } - IFC42.IfcDistributionControlElement = IfcDistributionControlElement; - class IfcDuctFitting extends IfcFlowFitting { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 342316401; + IFC4X32.IfcConnectionCurveGeometry = IfcConnectionCurveGeometry; + class IfcConnectionPointEccentricity extends IfcConnectionPointGeometry { + constructor(PointOnRelatingElement, PointOnRelatedElement, EccentricityInX, EccentricityInY, EccentricityInZ) { + super(PointOnRelatingElement, PointOnRelatedElement); + this.PointOnRelatingElement = PointOnRelatingElement; + this.PointOnRelatedElement = PointOnRelatedElement; + this.EccentricityInX = EccentricityInX; + this.EccentricityInY = EccentricityInY; + this.EccentricityInZ = EccentricityInZ; + this.type = 45288368; } } - IFC42.IfcDuctFitting = IfcDuctFitting; - class IfcDuctSegment extends IfcFlowSegment { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcConnectionPointEccentricity = IfcConnectionPointEccentricity; + class IfcContextDependentUnit extends IfcNamedUnit { + constructor(Dimensions, UnitType, Name) { + super(Dimensions, UnitType); + this.Dimensions = Dimensions; + this.UnitType = UnitType; this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3518393246; + this.type = 3050246964; } } - IFC42.IfcDuctSegment = IfcDuctSegment; - class IfcDuctSilencer extends IfcFlowTreatmentDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcContextDependentUnit = IfcContextDependentUnit; + class IfcConversionBasedUnit extends IfcNamedUnit { + constructor(Dimensions, UnitType, Name, ConversionFactor) { + super(Dimensions, UnitType); + this.Dimensions = Dimensions; + this.UnitType = UnitType; this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1360408905; + this.ConversionFactor = ConversionFactor; + this.type = 2889183280; } } - IFC42.IfcDuctSilencer = IfcDuctSilencer; - class IfcElectricAppliance extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcConversionBasedUnit = IfcConversionBasedUnit; + class IfcConversionBasedUnitWithOffset extends IfcConversionBasedUnit { + constructor(Dimensions, UnitType, Name, ConversionFactor, ConversionOffset) { + super(Dimensions, UnitType, Name, ConversionFactor); + this.Dimensions = Dimensions; + this.UnitType = UnitType; this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1904799276; + this.ConversionFactor = ConversionFactor; + this.ConversionOffset = ConversionOffset; + this.type = 2713554722; } } - IFC42.IfcElectricAppliance = IfcElectricAppliance; - class IfcElectricDistributionBoard extends IfcFlowController { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcConversionBasedUnitWithOffset = IfcConversionBasedUnitWithOffset; + class IfcCurrencyRelationship extends IfcResourceLevelRelationship { + constructor(Name, Description, RelatingMonetaryUnit, RelatedMonetaryUnit, ExchangeRate, RateDateTime, RateSource) { + super(Name, Description); this.Name = Name; this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 862014818; + this.RelatingMonetaryUnit = RelatingMonetaryUnit; + this.RelatedMonetaryUnit = RelatedMonetaryUnit; + this.ExchangeRate = ExchangeRate; + this.RateDateTime = RateDateTime; + this.RateSource = RateSource; + this.type = 539742890; } } - IFC42.IfcElectricDistributionBoard = IfcElectricDistributionBoard; - class IfcElectricFlowStorageDevice extends IfcFlowStorageDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcCurrencyRelationship = IfcCurrencyRelationship; + class IfcCurveStyle extends IfcPresentationStyle { + constructor(Name, CurveFont, CurveWidth, CurveColour, ModelOrDraughting) { + super(Name); this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3310460725; + this.CurveFont = CurveFont; + this.CurveWidth = CurveWidth; + this.CurveColour = CurveColour; + this.ModelOrDraughting = ModelOrDraughting; + this.type = 3800577675; } } - IFC42.IfcElectricFlowStorageDevice = IfcElectricFlowStorageDevice; - class IfcElectricGenerator extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcCurveStyle = IfcCurveStyle; + class IfcCurveStyleFont extends IfcPresentationItem { + constructor(Name, PatternList) { + super(); this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 264262732; + this.PatternList = PatternList; + this.type = 1105321065; } } - IFC42.IfcElectricGenerator = IfcElectricGenerator; - class IfcElectricMotor extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcCurveStyleFont = IfcCurveStyleFont; + class IfcCurveStyleFontAndScaling extends IfcPresentationItem { + constructor(Name, CurveStyleFont, CurveFontScaling) { + super(); this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 402227799; + this.CurveStyleFont = CurveStyleFont; + this.CurveFontScaling = CurveFontScaling; + this.type = 2367409068; } } - IFC42.IfcElectricMotor = IfcElectricMotor; - class IfcElectricTimeControl extends IfcFlowController { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcCurveStyleFontAndScaling = IfcCurveStyleFontAndScaling; + class IfcCurveStyleFontPattern extends IfcPresentationItem { + constructor(VisibleSegmentLength, InvisibleSegmentLength) { + super(); + this.VisibleSegmentLength = VisibleSegmentLength; + this.InvisibleSegmentLength = InvisibleSegmentLength; + this.type = 3510044353; + } + } + IFC4X32.IfcCurveStyleFontPattern = IfcCurveStyleFontPattern; + class IfcDerivedProfileDef extends IfcProfileDef { + constructor(ProfileType, ProfileName, ParentProfile, Operator, Label) { + super(ProfileType, ProfileName); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.ParentProfile = ParentProfile; + this.Operator = Operator; + this.Label = Label; + this.type = 3632507154; + } + } + IFC4X32.IfcDerivedProfileDef = IfcDerivedProfileDef; + class IfcDocumentInformation extends IfcExternalInformation { + constructor(Identification, Name, Description, Location, Purpose, IntendedUse, Scope, Revision, DocumentOwner, Editors, CreationTime, LastRevisionTime, ElectronicFormat, ValidFrom, ValidUntil, Confidentiality, Status) { + super(); + this.Identification = Identification; this.Name = Name; this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1003880860; + this.Location = Location; + this.Purpose = Purpose; + this.IntendedUse = IntendedUse; + this.Scope = Scope; + this.Revision = Revision; + this.DocumentOwner = DocumentOwner; + this.Editors = Editors; + this.CreationTime = CreationTime; + this.LastRevisionTime = LastRevisionTime; + this.ElectronicFormat = ElectronicFormat; + this.ValidFrom = ValidFrom; + this.ValidUntil = ValidUntil; + this.Confidentiality = Confidentiality; + this.Status = Status; + this.type = 1154170062; } } - IFC42.IfcElectricTimeControl = IfcElectricTimeControl; - class IfcFan extends IfcFlowMovingDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcDocumentInformation = IfcDocumentInformation; + class IfcDocumentInformationRelationship extends IfcResourceLevelRelationship { + constructor(Name, Description, RelatingDocument, RelatedDocuments, RelationshipType) { + super(Name, Description); this.Name = Name; this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3415622556; + this.RelatingDocument = RelatingDocument; + this.RelatedDocuments = RelatedDocuments; + this.RelationshipType = RelationshipType; + this.type = 770865208; } } - IFC42.IfcFan = IfcFan; - class IfcFilter extends IfcFlowTreatmentDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcDocumentInformationRelationship = IfcDocumentInformationRelationship; + class IfcDocumentReference extends IfcExternalReference { + constructor(Location, Identification, Name, Description, ReferencedDocument) { + super(Location, Identification, Name); + this.Location = Location; + this.Identification = Identification; this.Name = Name; this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 819412036; + this.ReferencedDocument = ReferencedDocument; + this.type = 3732053477; + } + } + IFC4X32.IfcDocumentReference = IfcDocumentReference; + class IfcEdge extends IfcTopologicalRepresentationItem { + constructor(EdgeStart, EdgeEnd) { + super(); + this.EdgeStart = EdgeStart; + this.EdgeEnd = EdgeEnd; + this.type = 3900360178; + } + } + IFC4X32.IfcEdge = IfcEdge; + class IfcEdgeCurve extends IfcEdge { + constructor(EdgeStart, EdgeEnd, EdgeGeometry, SameSense) { + super(EdgeStart, EdgeEnd); + this.EdgeStart = EdgeStart; + this.EdgeEnd = EdgeEnd; + this.EdgeGeometry = EdgeGeometry; + this.SameSense = SameSense; + this.type = 476780140; } } - IFC42.IfcFilter = IfcFilter; - class IfcFireSuppressionTerminal extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcEdgeCurve = IfcEdgeCurve; + class IfcEventTime extends IfcSchedulingTime { + constructor(Name, DataOrigin, UserDefinedDataOrigin, ActualDate, EarlyDate, LateDate, ScheduleDate) { + super(Name, DataOrigin, UserDefinedDataOrigin); this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1426591983; + this.DataOrigin = DataOrigin; + this.UserDefinedDataOrigin = UserDefinedDataOrigin; + this.ActualDate = ActualDate; + this.EarlyDate = EarlyDate; + this.LateDate = LateDate; + this.ScheduleDate = ScheduleDate; + this.type = 211053100; } } - IFC42.IfcFireSuppressionTerminal = IfcFireSuppressionTerminal; - class IfcFlowInstrument extends IfcDistributionControlElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcEventTime = IfcEventTime; + class IfcExtendedProperties extends IfcPropertyAbstraction { + constructor(Name, Description, Properties2) { + super(); this.Name = Name; this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 182646315; + this.Properties = Properties2; + this.type = 297599258; } } - IFC42.IfcFlowInstrument = IfcFlowInstrument; - class IfcProtectiveDeviceTrippingUnit extends IfcDistributionControlElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcExtendedProperties = IfcExtendedProperties; + class IfcExternalReferenceRelationship extends IfcResourceLevelRelationship { + constructor(Name, Description, RelatingReference, RelatedResourceObjects) { + super(Name, Description); this.Name = Name; this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2295281155; + this.RelatingReference = RelatingReference; + this.RelatedResourceObjects = RelatedResourceObjects; + this.type = 1437805879; } } - IFC42.IfcProtectiveDeviceTrippingUnit = IfcProtectiveDeviceTrippingUnit; - class IfcSensor extends IfcDistributionControlElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 4086658281; + IFC4X32.IfcExternalReferenceRelationship = IfcExternalReferenceRelationship; + class IfcFace extends IfcTopologicalRepresentationItem { + constructor(Bounds) { + super(); + this.Bounds = Bounds; + this.type = 2556980723; } } - IFC42.IfcSensor = IfcSensor; - class IfcUnitaryControlElement extends IfcDistributionControlElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 630975310; + IFC4X32.IfcFace = IfcFace; + class IfcFaceBound extends IfcTopologicalRepresentationItem { + constructor(Bound, Orientation) { + super(); + this.Bound = Bound; + this.Orientation = Orientation; + this.type = 1809719519; } } - IFC42.IfcUnitaryControlElement = IfcUnitaryControlElement; - class IfcActuator extends IfcDistributionControlElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 4288193352; + IFC4X32.IfcFaceBound = IfcFaceBound; + class IfcFaceOuterBound extends IfcFaceBound { + constructor(Bound, Orientation) { + super(Bound, Orientation); + this.Bound = Bound; + this.Orientation = Orientation; + this.type = 803316827; } } - IFC42.IfcActuator = IfcActuator; - class IfcAlarm extends IfcDistributionControlElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcFaceOuterBound = IfcFaceOuterBound; + class IfcFaceSurface extends IfcFace { + constructor(Bounds, FaceSurface, SameSense) { + super(Bounds); + this.Bounds = Bounds; + this.FaceSurface = FaceSurface; + this.SameSense = SameSense; + this.type = 3008276851; + } + } + IFC4X32.IfcFaceSurface = IfcFaceSurface; + class IfcFailureConnectionCondition extends IfcStructuralConnectionCondition { + constructor(Name, TensionFailureX, TensionFailureY, TensionFailureZ, CompressionFailureX, CompressionFailureY, CompressionFailureZ) { + super(Name); this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3087945054; + this.TensionFailureX = TensionFailureX; + this.TensionFailureY = TensionFailureY; + this.TensionFailureZ = TensionFailureZ; + this.CompressionFailureX = CompressionFailureX; + this.CompressionFailureY = CompressionFailureY; + this.CompressionFailureZ = CompressionFailureZ; + this.type = 4219587988; } } - IFC42.IfcAlarm = IfcAlarm; - class IfcController extends IfcDistributionControlElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; + IFC4X32.IfcFailureConnectionCondition = IfcFailureConnectionCondition; + class IfcFillAreaStyle extends IfcPresentationStyle { + constructor(Name, FillStyles, ModelOrDraughting) { + super(Name); this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 25142252; + this.FillStyles = FillStyles; + this.ModelOrDraughting = ModelOrDraughting; + this.type = 738692330; } } - IFC42.IfcController = IfcController; -})(IFC4 || (IFC4 = {})); -var IFC4X3; -(function(IFC4X32) { - class IfcAbsorbedDoseMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcFillAreaStyle = IfcFillAreaStyle; + class IfcGeometricRepresentationContext extends IfcRepresentationContext { + constructor(ContextIdentifier, ContextType, CoordinateSpaceDimension, Precision, WorldCoordinateSystem, TrueNorth) { + super(ContextIdentifier, ContextType); + this.ContextIdentifier = ContextIdentifier; + this.ContextType = ContextType; + this.CoordinateSpaceDimension = CoordinateSpaceDimension; + this.Precision = Precision; + this.WorldCoordinateSystem = WorldCoordinateSystem; + this.TrueNorth = TrueNorth; + this.type = 3448662350; } } - IFC4X32.IfcAbsorbedDoseMeasure = IfcAbsorbedDoseMeasure; - class IfcAccelerationMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcGeometricRepresentationContext = IfcGeometricRepresentationContext; + class IfcGeometricRepresentationItem extends IfcRepresentationItem { + constructor() { + super(); + this.type = 2453401579; } } - IFC4X32.IfcAccelerationMeasure = IfcAccelerationMeasure; - class IfcAmountOfSubstanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcGeometricRepresentationItem = IfcGeometricRepresentationItem; + class IfcGeometricRepresentationSubContext extends IfcGeometricRepresentationContext { + constructor(ContextIdentifier, ContextType, WorldCoordinateSystem, ParentContext, TargetScale, TargetView, UserDefinedTargetView) { + super(ContextIdentifier, ContextType, new IfcDimensionCount(0), null, WorldCoordinateSystem, null); + this.ContextIdentifier = ContextIdentifier; + this.ContextType = ContextType; + this.WorldCoordinateSystem = WorldCoordinateSystem; + this.ParentContext = ParentContext; + this.TargetScale = TargetScale; + this.TargetView = TargetView; + this.UserDefinedTargetView = UserDefinedTargetView; + this.type = 4142052618; } } - IFC4X32.IfcAmountOfSubstanceMeasure = IfcAmountOfSubstanceMeasure; - class IfcAngularVelocityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcGeometricRepresentationSubContext = IfcGeometricRepresentationSubContext; + class IfcGeometricSet extends IfcGeometricRepresentationItem { + constructor(Elements) { + super(); + this.Elements = Elements; + this.type = 3590301190; } } - IFC4X32.IfcAngularVelocityMeasure = IfcAngularVelocityMeasure; - class IfcArcIndex { - constructor(value) { - this.value = value; + IFC4X32.IfcGeometricSet = IfcGeometricSet; + class IfcGridPlacement extends IfcObjectPlacement { + constructor(PlacementRelTo, PlacementLocation, PlacementRefDirection) { + super(PlacementRelTo); + this.PlacementRelTo = PlacementRelTo; + this.PlacementLocation = PlacementLocation; + this.PlacementRefDirection = PlacementRefDirection; + this.type = 178086475; } } - IFC4X32.IfcArcIndex = IfcArcIndex; - class IfcAreaDensityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcGridPlacement = IfcGridPlacement; + class IfcHalfSpaceSolid extends IfcGeometricRepresentationItem { + constructor(BaseSurface, AgreementFlag) { + super(); + this.BaseSurface = BaseSurface; + this.AgreementFlag = AgreementFlag; + this.type = 812098782; } } - IFC4X32.IfcAreaDensityMeasure = IfcAreaDensityMeasure; - class IfcAreaMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcHalfSpaceSolid = IfcHalfSpaceSolid; + class IfcImageTexture extends IfcSurfaceTexture { + constructor(RepeatS, RepeatT, Mode, TextureTransform, Parameter, URLReference) { + super(RepeatS, RepeatT, Mode, TextureTransform, Parameter); + this.RepeatS = RepeatS; + this.RepeatT = RepeatT; + this.Mode = Mode; + this.TextureTransform = TextureTransform; + this.Parameter = Parameter; + this.URLReference = URLReference; + this.type = 3905492369; } } - IFC4X32.IfcAreaMeasure = IfcAreaMeasure; - class IfcBinary { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcImageTexture = IfcImageTexture; + class IfcIndexedColourMap extends IfcPresentationItem { + constructor(MappedTo, Opacity, Colours, ColourIndex) { + super(); + this.MappedTo = MappedTo; + this.Opacity = Opacity; + this.Colours = Colours; + this.ColourIndex = ColourIndex; + this.type = 3570813810; } } - IFC4X32.IfcBinary = IfcBinary; - class IfcBoolean { - constructor(v) { - this.type = 3; - this.value = v == "true" ? true : false; + IFC4X32.IfcIndexedColourMap = IfcIndexedColourMap; + class IfcIndexedTextureMap extends IfcTextureCoordinate { + constructor(Maps, MappedTo, TexCoords) { + super(Maps); + this.Maps = Maps; + this.MappedTo = MappedTo; + this.TexCoords = TexCoords; + this.type = 1437953363; } } - IFC4X32.IfcBoolean = IfcBoolean; - class IfcBoxAlignment { - constructor(value) { - this.value = value; - this.type = 1; + IFC4X32.IfcIndexedTextureMap = IfcIndexedTextureMap; + class IfcIndexedTriangleTextureMap extends IfcIndexedTextureMap { + constructor(Maps, MappedTo, TexCoords, TexCoordIndex) { + super(Maps, MappedTo, TexCoords); + this.Maps = Maps; + this.MappedTo = MappedTo; + this.TexCoords = TexCoords; + this.TexCoordIndex = TexCoordIndex; + this.type = 2133299955; } } - IFC4X32.IfcBoxAlignment = IfcBoxAlignment; - class IfcCardinalPointReference { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcIndexedTriangleTextureMap = IfcIndexedTriangleTextureMap; + class IfcIrregularTimeSeries extends IfcTimeSeries { + constructor(Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit, Values) { + super(Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit); + this.Name = Name; + this.Description = Description; + this.StartTime = StartTime; + this.EndTime = EndTime; + this.TimeSeriesDataType = TimeSeriesDataType; + this.DataOrigin = DataOrigin; + this.UserDefinedDataOrigin = UserDefinedDataOrigin; + this.Unit = Unit; + this.Values = Values; + this.type = 3741457305; } } - IFC4X32.IfcCardinalPointReference = IfcCardinalPointReference; - class IfcComplexNumber { - constructor(value) { - this.value = value; + IFC4X32.IfcIrregularTimeSeries = IfcIrregularTimeSeries; + class IfcLagTime extends IfcSchedulingTime { + constructor(Name, DataOrigin, UserDefinedDataOrigin, LagValue, DurationType) { + super(Name, DataOrigin, UserDefinedDataOrigin); + this.Name = Name; + this.DataOrigin = DataOrigin; + this.UserDefinedDataOrigin = UserDefinedDataOrigin; + this.LagValue = LagValue; + this.DurationType = DurationType; + this.type = 1585845231; } } - IFC4X32.IfcComplexNumber = IfcComplexNumber; - class IfcCompoundPlaneAngleMeasure { - constructor(value) { - this.value = value; + IFC4X32.IfcLagTime = IfcLagTime; + class IfcLightSource extends IfcGeometricRepresentationItem { + constructor(Name, LightColour, AmbientIntensity, Intensity) { + super(); + this.Name = Name; + this.LightColour = LightColour; + this.AmbientIntensity = AmbientIntensity; + this.Intensity = Intensity; + this.type = 1402838566; } } - IFC4X32.IfcCompoundPlaneAngleMeasure = IfcCompoundPlaneAngleMeasure; - class IfcContextDependentMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcLightSource = IfcLightSource; + class IfcLightSourceAmbient extends IfcLightSource { + constructor(Name, LightColour, AmbientIntensity, Intensity) { + super(Name, LightColour, AmbientIntensity, Intensity); + this.Name = Name; + this.LightColour = LightColour; + this.AmbientIntensity = AmbientIntensity; + this.Intensity = Intensity; + this.type = 125510826; } } - IFC4X32.IfcContextDependentMeasure = IfcContextDependentMeasure; - class IfcCountMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcLightSourceAmbient = IfcLightSourceAmbient; + class IfcLightSourceDirectional extends IfcLightSource { + constructor(Name, LightColour, AmbientIntensity, Intensity, Orientation) { + super(Name, LightColour, AmbientIntensity, Intensity); + this.Name = Name; + this.LightColour = LightColour; + this.AmbientIntensity = AmbientIntensity; + this.Intensity = Intensity; + this.Orientation = Orientation; + this.type = 2604431987; } } - IFC4X32.IfcCountMeasure = IfcCountMeasure; - class IfcCurvatureMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcLightSourceDirectional = IfcLightSourceDirectional; + class IfcLightSourceGoniometric extends IfcLightSource { + constructor(Name, LightColour, AmbientIntensity, Intensity, Position, ColourAppearance, ColourTemperature, LuminousFlux, LightEmissionSource, LightDistributionDataSource) { + super(Name, LightColour, AmbientIntensity, Intensity); + this.Name = Name; + this.LightColour = LightColour; + this.AmbientIntensity = AmbientIntensity; + this.Intensity = Intensity; + this.Position = Position; + this.ColourAppearance = ColourAppearance; + this.ColourTemperature = ColourTemperature; + this.LuminousFlux = LuminousFlux; + this.LightEmissionSource = LightEmissionSource; + this.LightDistributionDataSource = LightDistributionDataSource; + this.type = 4266656042; } } - IFC4X32.IfcCurvatureMeasure = IfcCurvatureMeasure; - class IfcDate { - constructor(value) { - this.value = value; - this.type = 1; + IFC4X32.IfcLightSourceGoniometric = IfcLightSourceGoniometric; + class IfcLightSourcePositional extends IfcLightSource { + constructor(Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation) { + super(Name, LightColour, AmbientIntensity, Intensity); + this.Name = Name; + this.LightColour = LightColour; + this.AmbientIntensity = AmbientIntensity; + this.Intensity = Intensity; + this.Position = Position; + this.Radius = Radius; + this.ConstantAttenuation = ConstantAttenuation; + this.DistanceAttenuation = DistanceAttenuation; + this.QuadricAttenuation = QuadricAttenuation; + this.type = 1520743889; } } - IFC4X32.IfcDate = IfcDate; - class IfcDateTime { - constructor(value) { - this.value = value; - this.type = 1; + IFC4X32.IfcLightSourcePositional = IfcLightSourcePositional; + class IfcLightSourceSpot extends IfcLightSourcePositional { + constructor(Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation, Orientation, ConcentrationExponent, SpreadAngle, BeamWidthAngle) { + super(Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation); + this.Name = Name; + this.LightColour = LightColour; + this.AmbientIntensity = AmbientIntensity; + this.Intensity = Intensity; + this.Position = Position; + this.Radius = Radius; + this.ConstantAttenuation = ConstantAttenuation; + this.DistanceAttenuation = DistanceAttenuation; + this.QuadricAttenuation = QuadricAttenuation; + this.Orientation = Orientation; + this.ConcentrationExponent = ConcentrationExponent; + this.SpreadAngle = SpreadAngle; + this.BeamWidthAngle = BeamWidthAngle; + this.type = 3422422726; } } - IFC4X32.IfcDateTime = IfcDateTime; - class IfcDayInMonthNumber { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcLightSourceSpot = IfcLightSourceSpot; + class IfcLinearPlacement extends IfcObjectPlacement { + constructor(PlacementRelTo, RelativePlacement, CartesianPosition) { + super(PlacementRelTo); + this.PlacementRelTo = PlacementRelTo; + this.RelativePlacement = RelativePlacement; + this.CartesianPosition = CartesianPosition; + this.type = 388784114; } } - IFC4X32.IfcDayInMonthNumber = IfcDayInMonthNumber; - class IfcDayInWeekNumber { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcLinearPlacement = IfcLinearPlacement; + class IfcLocalPlacement extends IfcObjectPlacement { + constructor(PlacementRelTo, RelativePlacement) { + super(PlacementRelTo); + this.PlacementRelTo = PlacementRelTo; + this.RelativePlacement = RelativePlacement; + this.type = 2624227202; } } - IFC4X32.IfcDayInWeekNumber = IfcDayInWeekNumber; - class IfcDescriptiveMeasure { - constructor(value) { - this.value = value; - this.type = 1; + IFC4X32.IfcLocalPlacement = IfcLocalPlacement; + class IfcLoop extends IfcTopologicalRepresentationItem { + constructor() { + super(); + this.type = 1008929658; } } - IFC4X32.IfcDescriptiveMeasure = IfcDescriptiveMeasure; - class IfcDimensionCount { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcLoop = IfcLoop; + class IfcMappedItem extends IfcRepresentationItem { + constructor(MappingSource, MappingTarget) { + super(); + this.MappingSource = MappingSource; + this.MappingTarget = MappingTarget; + this.type = 2347385850; } } - IFC4X32.IfcDimensionCount = IfcDimensionCount; - class IfcDoseEquivalentMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcMappedItem = IfcMappedItem; + class IfcMaterial extends IfcMaterialDefinition { + constructor(Name, Description, Category) { + super(); + this.Name = Name; + this.Description = Description; + this.Category = Category; + this.type = 1838606355; } } - IFC4X32.IfcDoseEquivalentMeasure = IfcDoseEquivalentMeasure; - class IfcDuration { - constructor(value) { - this.value = value; - this.type = 1; + IFC4X32.IfcMaterial = IfcMaterial; + class IfcMaterialConstituent extends IfcMaterialDefinition { + constructor(Name, Description, Material, Fraction, Category) { + super(); + this.Name = Name; + this.Description = Description; + this.Material = Material; + this.Fraction = Fraction; + this.Category = Category; + this.type = 3708119e3; } } - IFC4X32.IfcDuration = IfcDuration; - class IfcDynamicViscosityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcMaterialConstituent = IfcMaterialConstituent; + class IfcMaterialConstituentSet extends IfcMaterialDefinition { + constructor(Name, Description, MaterialConstituents) { + super(); + this.Name = Name; + this.Description = Description; + this.MaterialConstituents = MaterialConstituents; + this.type = 2852063980; } } - IFC4X32.IfcDynamicViscosityMeasure = IfcDynamicViscosityMeasure; - class IfcElectricCapacitanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcMaterialConstituentSet = IfcMaterialConstituentSet; + class IfcMaterialDefinitionRepresentation extends IfcProductRepresentation { + constructor(Name, Description, Representations, RepresentedMaterial) { + super(Name, Description, Representations); + this.Name = Name; + this.Description = Description; + this.Representations = Representations; + this.RepresentedMaterial = RepresentedMaterial; + this.type = 2022407955; } } - IFC4X32.IfcElectricCapacitanceMeasure = IfcElectricCapacitanceMeasure; - class IfcElectricChargeMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcMaterialDefinitionRepresentation = IfcMaterialDefinitionRepresentation; + class IfcMaterialLayerSetUsage extends IfcMaterialUsageDefinition { + constructor(ForLayerSet, LayerSetDirection, DirectionSense, OffsetFromReferenceLine, ReferenceExtent) { + super(); + this.ForLayerSet = ForLayerSet; + this.LayerSetDirection = LayerSetDirection; + this.DirectionSense = DirectionSense; + this.OffsetFromReferenceLine = OffsetFromReferenceLine; + this.ReferenceExtent = ReferenceExtent; + this.type = 1303795690; } } - IFC4X32.IfcElectricChargeMeasure = IfcElectricChargeMeasure; - class IfcElectricConductanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcMaterialLayerSetUsage = IfcMaterialLayerSetUsage; + class IfcMaterialProfileSetUsage extends IfcMaterialUsageDefinition { + constructor(ForProfileSet, CardinalPoint, ReferenceExtent) { + super(); + this.ForProfileSet = ForProfileSet; + this.CardinalPoint = CardinalPoint; + this.ReferenceExtent = ReferenceExtent; + this.type = 3079605661; + } + } + IFC4X32.IfcMaterialProfileSetUsage = IfcMaterialProfileSetUsage; + class IfcMaterialProfileSetUsageTapering extends IfcMaterialProfileSetUsage { + constructor(ForProfileSet, CardinalPoint, ReferenceExtent, ForProfileEndSet, CardinalEndPoint) { + super(ForProfileSet, CardinalPoint, ReferenceExtent); + this.ForProfileSet = ForProfileSet; + this.CardinalPoint = CardinalPoint; + this.ReferenceExtent = ReferenceExtent; + this.ForProfileEndSet = ForProfileEndSet; + this.CardinalEndPoint = CardinalEndPoint; + this.type = 3404854881; } } - IFC4X32.IfcElectricConductanceMeasure = IfcElectricConductanceMeasure; - class IfcElectricCurrentMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcMaterialProfileSetUsageTapering = IfcMaterialProfileSetUsageTapering; + class IfcMaterialProperties extends IfcExtendedProperties { + constructor(Name, Description, Properties2, Material) { + super(Name, Description, Properties2); + this.Name = Name; + this.Description = Description; + this.Properties = Properties2; + this.Material = Material; + this.type = 3265635763; } } - IFC4X32.IfcElectricCurrentMeasure = IfcElectricCurrentMeasure; - class IfcElectricResistanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcMaterialProperties = IfcMaterialProperties; + class IfcMaterialRelationship extends IfcResourceLevelRelationship { + constructor(Name, Description, RelatingMaterial, RelatedMaterials, MaterialExpression) { + super(Name, Description); + this.Name = Name; + this.Description = Description; + this.RelatingMaterial = RelatingMaterial; + this.RelatedMaterials = RelatedMaterials; + this.MaterialExpression = MaterialExpression; + this.type = 853536259; } } - IFC4X32.IfcElectricResistanceMeasure = IfcElectricResistanceMeasure; - class IfcElectricVoltageMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcMaterialRelationship = IfcMaterialRelationship; + class IfcMirroredProfileDef extends IfcDerivedProfileDef { + constructor(ProfileType, ProfileName, ParentProfile, Operator, Label) { + super(ProfileType, ProfileName, ParentProfile, Operator, Label); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.ParentProfile = ParentProfile; + this.Operator = Operator; + this.Label = Label; + this.type = 2998442950; } } - IFC4X32.IfcElectricVoltageMeasure = IfcElectricVoltageMeasure; - class IfcEnergyMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcMirroredProfileDef = IfcMirroredProfileDef; + class IfcObjectDefinition extends IfcRoot { + constructor(GlobalId, OwnerHistory, Name, Description) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.type = 219451334; } } - IFC4X32.IfcEnergyMeasure = IfcEnergyMeasure; - class IfcFontStyle { - constructor(value) { - this.value = value; - this.type = 1; + IFC4X32.IfcObjectDefinition = IfcObjectDefinition; + class IfcOpenCrossProfileDef extends IfcProfileDef { + constructor(ProfileType, ProfileName, HorizontalWidths, Widths, Slopes, Tags, OffsetPoint) { + super(ProfileType, ProfileName); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.HorizontalWidths = HorizontalWidths; + this.Widths = Widths; + this.Slopes = Slopes; + this.Tags = Tags; + this.OffsetPoint = OffsetPoint; + this.type = 182550632; } } - IFC4X32.IfcFontStyle = IfcFontStyle; - class IfcFontVariant { - constructor(value) { - this.value = value; - this.type = 1; + IFC4X32.IfcOpenCrossProfileDef = IfcOpenCrossProfileDef; + class IfcOpenShell extends IfcConnectedFaceSet { + constructor(CfsFaces) { + super(CfsFaces); + this.CfsFaces = CfsFaces; + this.type = 2665983363; } } - IFC4X32.IfcFontVariant = IfcFontVariant; - class IfcFontWeight { - constructor(value) { - this.value = value; - this.type = 1; + IFC4X32.IfcOpenShell = IfcOpenShell; + class IfcOrganizationRelationship extends IfcResourceLevelRelationship { + constructor(Name, Description, RelatingOrganization, RelatedOrganizations) { + super(Name, Description); + this.Name = Name; + this.Description = Description; + this.RelatingOrganization = RelatingOrganization; + this.RelatedOrganizations = RelatedOrganizations; + this.type = 1411181986; } } - IFC4X32.IfcFontWeight = IfcFontWeight; - class IfcForceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcOrganizationRelationship = IfcOrganizationRelationship; + class IfcOrientedEdge extends IfcEdge { + constructor(EdgeStart, EdgeElement, Orientation) { + super(EdgeStart, new Handle$5(0)); + this.EdgeStart = EdgeStart; + this.EdgeElement = EdgeElement; + this.Orientation = Orientation; + this.type = 1029017970; } } - IFC4X32.IfcForceMeasure = IfcForceMeasure; - class IfcFrequencyMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcOrientedEdge = IfcOrientedEdge; + class IfcParameterizedProfileDef extends IfcProfileDef { + constructor(ProfileType, ProfileName, Position) { + super(ProfileType, ProfileName); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.type = 2529465313; } } - IFC4X32.IfcFrequencyMeasure = IfcFrequencyMeasure; - class IfcGloballyUniqueId { - constructor(value) { - this.value = value; - this.type = 1; + IFC4X32.IfcParameterizedProfileDef = IfcParameterizedProfileDef; + class IfcPath extends IfcTopologicalRepresentationItem { + constructor(EdgeList) { + super(); + this.EdgeList = EdgeList; + this.type = 2519244187; } } - IFC4X32.IfcGloballyUniqueId = IfcGloballyUniqueId; - class IfcHeatFluxDensityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcPath = IfcPath; + class IfcPhysicalComplexQuantity extends IfcPhysicalQuantity { + constructor(Name, Description, HasQuantities, Discrimination, Quality, Usage) { + super(Name, Description); + this.Name = Name; + this.Description = Description; + this.HasQuantities = HasQuantities; + this.Discrimination = Discrimination; + this.Quality = Quality; + this.Usage = Usage; + this.type = 3021840470; } } - IFC4X32.IfcHeatFluxDensityMeasure = IfcHeatFluxDensityMeasure; - class IfcHeatingValueMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcPhysicalComplexQuantity = IfcPhysicalComplexQuantity; + class IfcPixelTexture extends IfcSurfaceTexture { + constructor(RepeatS, RepeatT, Mode, TextureTransform, Parameter, Width, Height, ColourComponents, Pixel) { + super(RepeatS, RepeatT, Mode, TextureTransform, Parameter); + this.RepeatS = RepeatS; + this.RepeatT = RepeatT; + this.Mode = Mode; + this.TextureTransform = TextureTransform; + this.Parameter = Parameter; + this.Width = Width; + this.Height = Height; + this.ColourComponents = ColourComponents; + this.Pixel = Pixel; + this.type = 597895409; } } - IFC4X32.IfcHeatingValueMeasure = IfcHeatingValueMeasure; - class IfcIdentifier { - constructor(value) { - this.value = value; - this.type = 1; + IFC4X32.IfcPixelTexture = IfcPixelTexture; + class IfcPlacement extends IfcGeometricRepresentationItem { + constructor(Location) { + super(); + this.Location = Location; + this.type = 2004835150; } } - IFC4X32.IfcIdentifier = IfcIdentifier; - class IfcIlluminanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcPlacement = IfcPlacement; + class IfcPlanarExtent extends IfcGeometricRepresentationItem { + constructor(SizeInX, SizeInY) { + super(); + this.SizeInX = SizeInX; + this.SizeInY = SizeInY; + this.type = 1663979128; } } - IFC4X32.IfcIlluminanceMeasure = IfcIlluminanceMeasure; - class IfcInductanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcPlanarExtent = IfcPlanarExtent; + class IfcPoint extends IfcGeometricRepresentationItem { + constructor() { + super(); + this.type = 2067069095; } } - IFC4X32.IfcInductanceMeasure = IfcInductanceMeasure; - class IfcInteger { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcPoint = IfcPoint; + class IfcPointByDistanceExpression extends IfcPoint { + constructor(DistanceAlong, OffsetLateral, OffsetVertical, OffsetLongitudinal, BasisCurve) { + super(); + this.DistanceAlong = DistanceAlong; + this.OffsetLateral = OffsetLateral; + this.OffsetVertical = OffsetVertical; + this.OffsetLongitudinal = OffsetLongitudinal; + this.BasisCurve = BasisCurve; + this.type = 2165702409; } } - IFC4X32.IfcInteger = IfcInteger; - class IfcIntegerCountRateMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcPointByDistanceExpression = IfcPointByDistanceExpression; + class IfcPointOnCurve extends IfcPoint { + constructor(BasisCurve, PointParameter) { + super(); + this.BasisCurve = BasisCurve; + this.PointParameter = PointParameter; + this.type = 4022376103; } } - IFC4X32.IfcIntegerCountRateMeasure = IfcIntegerCountRateMeasure; - class IfcIonConcentrationMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcPointOnCurve = IfcPointOnCurve; + class IfcPointOnSurface extends IfcPoint { + constructor(BasisSurface, PointParameterU, PointParameterV) { + super(); + this.BasisSurface = BasisSurface; + this.PointParameterU = PointParameterU; + this.PointParameterV = PointParameterV; + this.type = 1423911732; } } - IFC4X32.IfcIonConcentrationMeasure = IfcIonConcentrationMeasure; - class IfcIsothermalMoistureCapacityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcPointOnSurface = IfcPointOnSurface; + class IfcPolyLoop extends IfcLoop { + constructor(Polygon) { + super(); + this.Polygon = Polygon; + this.type = 2924175390; } } - IFC4X32.IfcIsothermalMoistureCapacityMeasure = IfcIsothermalMoistureCapacityMeasure; - class IfcKinematicViscosityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcPolyLoop = IfcPolyLoop; + class IfcPolygonalBoundedHalfSpace extends IfcHalfSpaceSolid { + constructor(BaseSurface, AgreementFlag, Position, PolygonalBoundary) { + super(BaseSurface, AgreementFlag); + this.BaseSurface = BaseSurface; + this.AgreementFlag = AgreementFlag; + this.Position = Position; + this.PolygonalBoundary = PolygonalBoundary; + this.type = 2775532180; } } - IFC4X32.IfcKinematicViscosityMeasure = IfcKinematicViscosityMeasure; - class IfcLabel { - constructor(value) { - this.value = value; - this.type = 1; + IFC4X32.IfcPolygonalBoundedHalfSpace = IfcPolygonalBoundedHalfSpace; + class IfcPreDefinedItem extends IfcPresentationItem { + constructor(Name) { + super(); + this.Name = Name; + this.type = 3727388367; } } - IFC4X32.IfcLabel = IfcLabel; - class IfcLanguageId { - constructor(value) { - this.value = value; - this.type = 1; + IFC4X32.IfcPreDefinedItem = IfcPreDefinedItem; + class IfcPreDefinedProperties extends IfcPropertyAbstraction { + constructor() { + super(); + this.type = 3778827333; } } - IFC4X32.IfcLanguageId = IfcLanguageId; - class IfcLengthMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcPreDefinedProperties = IfcPreDefinedProperties; + class IfcPreDefinedTextFont extends IfcPreDefinedItem { + constructor(Name) { + super(Name); + this.Name = Name; + this.type = 1775413392; } } - IFC4X32.IfcLengthMeasure = IfcLengthMeasure; - class IfcLineIndex { - constructor(value) { - this.value = value; + IFC4X32.IfcPreDefinedTextFont = IfcPreDefinedTextFont; + class IfcProductDefinitionShape extends IfcProductRepresentation { + constructor(Name, Description, Representations) { + super(Name, Description, Representations); + this.Name = Name; + this.Description = Description; + this.Representations = Representations; + this.type = 673634403; } } - IFC4X32.IfcLineIndex = IfcLineIndex; - class IfcLinearForceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcProductDefinitionShape = IfcProductDefinitionShape; + class IfcProfileProperties extends IfcExtendedProperties { + constructor(Name, Description, Properties2, ProfileDefinition) { + super(Name, Description, Properties2); + this.Name = Name; + this.Description = Description; + this.Properties = Properties2; + this.ProfileDefinition = ProfileDefinition; + this.type = 2802850158; } } - IFC4X32.IfcLinearForceMeasure = IfcLinearForceMeasure; - class IfcLinearMomentMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcProfileProperties = IfcProfileProperties; + class IfcProperty extends IfcPropertyAbstraction { + constructor(Name, Specification) { + super(); + this.Name = Name; + this.Specification = Specification; + this.type = 2598011224; } } - IFC4X32.IfcLinearMomentMeasure = IfcLinearMomentMeasure; - class IfcLinearStiffnessMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcProperty = IfcProperty; + class IfcPropertyDefinition extends IfcRoot { + constructor(GlobalId, OwnerHistory, Name, Description) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.type = 1680319473; } } - IFC4X32.IfcLinearStiffnessMeasure = IfcLinearStiffnessMeasure; - class IfcLinearVelocityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcPropertyDefinition = IfcPropertyDefinition; + class IfcPropertyDependencyRelationship extends IfcResourceLevelRelationship { + constructor(Name, Description, DependingProperty, DependantProperty, Expression) { + super(Name, Description); + this.Name = Name; + this.Description = Description; + this.DependingProperty = DependingProperty; + this.DependantProperty = DependantProperty; + this.Expression = Expression; + this.type = 148025276; } } - IFC4X32.IfcLinearVelocityMeasure = IfcLinearVelocityMeasure; - class IfcLogical { - constructor(v) { - this.type = 3; - this.value = v == "true" ? true : false; + IFC4X32.IfcPropertyDependencyRelationship = IfcPropertyDependencyRelationship; + class IfcPropertySetDefinition extends IfcPropertyDefinition { + constructor(GlobalId, OwnerHistory, Name, Description) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.type = 3357820518; } } - IFC4X32.IfcLogical = IfcLogical; - class IfcLuminousFluxMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcPropertySetDefinition = IfcPropertySetDefinition; + class IfcPropertyTemplateDefinition extends IfcPropertyDefinition { + constructor(GlobalId, OwnerHistory, Name, Description) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.type = 1482703590; } } - IFC4X32.IfcLuminousFluxMeasure = IfcLuminousFluxMeasure; - class IfcLuminousIntensityDistributionMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcPropertyTemplateDefinition = IfcPropertyTemplateDefinition; + class IfcQuantitySet extends IfcPropertySetDefinition { + constructor(GlobalId, OwnerHistory, Name, Description) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.type = 2090586900; } } - IFC4X32.IfcLuminousIntensityDistributionMeasure = IfcLuminousIntensityDistributionMeasure; - class IfcLuminousIntensityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcQuantitySet = IfcQuantitySet; + class IfcRectangleProfileDef extends IfcParameterizedProfileDef { + constructor(ProfileType, ProfileName, Position, XDim, YDim) { + super(ProfileType, ProfileName, Position); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.XDim = XDim; + this.YDim = YDim; + this.type = 3615266464; } } - IFC4X32.IfcLuminousIntensityMeasure = IfcLuminousIntensityMeasure; - class IfcMagneticFluxDensityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcRectangleProfileDef = IfcRectangleProfileDef; + class IfcRegularTimeSeries extends IfcTimeSeries { + constructor(Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit, TimeStep, Values) { + super(Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit); + this.Name = Name; + this.Description = Description; + this.StartTime = StartTime; + this.EndTime = EndTime; + this.TimeSeriesDataType = TimeSeriesDataType; + this.DataOrigin = DataOrigin; + this.UserDefinedDataOrigin = UserDefinedDataOrigin; + this.Unit = Unit; + this.TimeStep = TimeStep; + this.Values = Values; + this.type = 3413951693; } } - IFC4X32.IfcMagneticFluxDensityMeasure = IfcMagneticFluxDensityMeasure; - class IfcMagneticFluxMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcRegularTimeSeries = IfcRegularTimeSeries; + class IfcReinforcementBarProperties extends IfcPreDefinedProperties { + constructor(TotalCrossSectionArea, SteelGrade, BarSurface, EffectiveDepth, NominalBarDiameter, BarCount) { + super(); + this.TotalCrossSectionArea = TotalCrossSectionArea; + this.SteelGrade = SteelGrade; + this.BarSurface = BarSurface; + this.EffectiveDepth = EffectiveDepth; + this.NominalBarDiameter = NominalBarDiameter; + this.BarCount = BarCount; + this.type = 1580146022; } } - IFC4X32.IfcMagneticFluxMeasure = IfcMagneticFluxMeasure; - class IfcMassDensityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcReinforcementBarProperties = IfcReinforcementBarProperties; + class IfcRelationship extends IfcRoot { + constructor(GlobalId, OwnerHistory, Name, Description) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.type = 478536968; } } - IFC4X32.IfcMassDensityMeasure = IfcMassDensityMeasure; - class IfcMassFlowRateMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcRelationship = IfcRelationship; + class IfcResourceApprovalRelationship extends IfcResourceLevelRelationship { + constructor(Name, Description, RelatedResourceObjects, RelatingApproval) { + super(Name, Description); + this.Name = Name; + this.Description = Description; + this.RelatedResourceObjects = RelatedResourceObjects; + this.RelatingApproval = RelatingApproval; + this.type = 2943643501; } } - IFC4X32.IfcMassFlowRateMeasure = IfcMassFlowRateMeasure; - class IfcMassMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcResourceApprovalRelationship = IfcResourceApprovalRelationship; + class IfcResourceConstraintRelationship extends IfcResourceLevelRelationship { + constructor(Name, Description, RelatingConstraint, RelatedResourceObjects) { + super(Name, Description); + this.Name = Name; + this.Description = Description; + this.RelatingConstraint = RelatingConstraint; + this.RelatedResourceObjects = RelatedResourceObjects; + this.type = 1608871552; } } - IFC4X32.IfcMassMeasure = IfcMassMeasure; - class IfcMassPerLengthMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcResourceConstraintRelationship = IfcResourceConstraintRelationship; + class IfcResourceTime extends IfcSchedulingTime { + constructor(Name, DataOrigin, UserDefinedDataOrigin, ScheduleWork, ScheduleUsage, ScheduleStart, ScheduleFinish, ScheduleContour, LevelingDelay, IsOverAllocated, StatusTime, ActualWork, ActualUsage, ActualStart, ActualFinish, RemainingWork, RemainingUsage, Completion) { + super(Name, DataOrigin, UserDefinedDataOrigin); + this.Name = Name; + this.DataOrigin = DataOrigin; + this.UserDefinedDataOrigin = UserDefinedDataOrigin; + this.ScheduleWork = ScheduleWork; + this.ScheduleUsage = ScheduleUsage; + this.ScheduleStart = ScheduleStart; + this.ScheduleFinish = ScheduleFinish; + this.ScheduleContour = ScheduleContour; + this.LevelingDelay = LevelingDelay; + this.IsOverAllocated = IsOverAllocated; + this.StatusTime = StatusTime; + this.ActualWork = ActualWork; + this.ActualUsage = ActualUsage; + this.ActualStart = ActualStart; + this.ActualFinish = ActualFinish; + this.RemainingWork = RemainingWork; + this.RemainingUsage = RemainingUsage; + this.Completion = Completion; + this.type = 1042787934; } } - IFC4X32.IfcMassPerLengthMeasure = IfcMassPerLengthMeasure; - class IfcModulusOfElasticityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcResourceTime = IfcResourceTime; + class IfcRoundedRectangleProfileDef extends IfcRectangleProfileDef { + constructor(ProfileType, ProfileName, Position, XDim, YDim, RoundingRadius) { + super(ProfileType, ProfileName, Position, XDim, YDim); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.XDim = XDim; + this.YDim = YDim; + this.RoundingRadius = RoundingRadius; + this.type = 2778083089; } } - IFC4X32.IfcModulusOfElasticityMeasure = IfcModulusOfElasticityMeasure; - class IfcModulusOfLinearSubgradeReactionMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcRoundedRectangleProfileDef = IfcRoundedRectangleProfileDef; + class IfcSectionProperties extends IfcPreDefinedProperties { + constructor(SectionType, StartProfile, EndProfile) { + super(); + this.SectionType = SectionType; + this.StartProfile = StartProfile; + this.EndProfile = EndProfile; + this.type = 2042790032; } } - IFC4X32.IfcModulusOfLinearSubgradeReactionMeasure = IfcModulusOfLinearSubgradeReactionMeasure; - class IfcModulusOfRotationalSubgradeReactionMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcSectionProperties = IfcSectionProperties; + class IfcSectionReinforcementProperties extends IfcPreDefinedProperties { + constructor(LongitudinalStartPosition, LongitudinalEndPosition, TransversePosition, ReinforcementRole, SectionDefinition, CrossSectionReinforcementDefinitions) { + super(); + this.LongitudinalStartPosition = LongitudinalStartPosition; + this.LongitudinalEndPosition = LongitudinalEndPosition; + this.TransversePosition = TransversePosition; + this.ReinforcementRole = ReinforcementRole; + this.SectionDefinition = SectionDefinition; + this.CrossSectionReinforcementDefinitions = CrossSectionReinforcementDefinitions; + this.type = 4165799628; } } - IFC4X32.IfcModulusOfRotationalSubgradeReactionMeasure = IfcModulusOfRotationalSubgradeReactionMeasure; - class IfcModulusOfSubgradeReactionMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcSectionReinforcementProperties = IfcSectionReinforcementProperties; + class IfcSectionedSpine extends IfcGeometricRepresentationItem { + constructor(SpineCurve, CrossSections, CrossSectionPositions) { + super(); + this.SpineCurve = SpineCurve; + this.CrossSections = CrossSections; + this.CrossSectionPositions = CrossSectionPositions; + this.type = 1509187699; } } - IFC4X32.IfcModulusOfSubgradeReactionMeasure = IfcModulusOfSubgradeReactionMeasure; - class IfcMoistureDiffusivityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcSectionedSpine = IfcSectionedSpine; + class IfcSegment extends IfcGeometricRepresentationItem { + constructor(Transition) { + super(); + this.Transition = Transition; + this.type = 823603102; } } - IFC4X32.IfcMoistureDiffusivityMeasure = IfcMoistureDiffusivityMeasure; - class IfcMolecularWeightMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcSegment = IfcSegment; + class IfcShellBasedSurfaceModel extends IfcGeometricRepresentationItem { + constructor(SbsmBoundary) { + super(); + this.SbsmBoundary = SbsmBoundary; + this.type = 4124623270; } } - IFC4X32.IfcMolecularWeightMeasure = IfcMolecularWeightMeasure; - class IfcMomentOfInertiaMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcShellBasedSurfaceModel = IfcShellBasedSurfaceModel; + class IfcSimpleProperty extends IfcProperty { + constructor(Name, Specification) { + super(Name, Specification); + this.Name = Name; + this.Specification = Specification; + this.type = 3692461612; } } - IFC4X32.IfcMomentOfInertiaMeasure = IfcMomentOfInertiaMeasure; - class IfcMonetaryMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcSimpleProperty = IfcSimpleProperty; + class IfcSlippageConnectionCondition extends IfcStructuralConnectionCondition { + constructor(Name, SlippageX, SlippageY, SlippageZ) { + super(Name); + this.Name = Name; + this.SlippageX = SlippageX; + this.SlippageY = SlippageY; + this.SlippageZ = SlippageZ; + this.type = 2609359061; } } - IFC4X32.IfcMonetaryMeasure = IfcMonetaryMeasure; - class IfcMonthInYearNumber { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcSlippageConnectionCondition = IfcSlippageConnectionCondition; + class IfcSolidModel extends IfcGeometricRepresentationItem { + constructor() { + super(); + this.type = 723233188; } } - IFC4X32.IfcMonthInYearNumber = IfcMonthInYearNumber; - class IfcNonNegativeLengthMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcSolidModel = IfcSolidModel; + class IfcStructuralLoadLinearForce extends IfcStructuralLoadStatic { + constructor(Name, LinearForceX, LinearForceY, LinearForceZ, LinearMomentX, LinearMomentY, LinearMomentZ) { + super(Name); + this.Name = Name; + this.LinearForceX = LinearForceX; + this.LinearForceY = LinearForceY; + this.LinearForceZ = LinearForceZ; + this.LinearMomentX = LinearMomentX; + this.LinearMomentY = LinearMomentY; + this.LinearMomentZ = LinearMomentZ; + this.type = 1595516126; } } - IFC4X32.IfcNonNegativeLengthMeasure = IfcNonNegativeLengthMeasure; - class IfcNormalisedRatioMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcStructuralLoadLinearForce = IfcStructuralLoadLinearForce; + class IfcStructuralLoadPlanarForce extends IfcStructuralLoadStatic { + constructor(Name, PlanarForceX, PlanarForceY, PlanarForceZ) { + super(Name); + this.Name = Name; + this.PlanarForceX = PlanarForceX; + this.PlanarForceY = PlanarForceY; + this.PlanarForceZ = PlanarForceZ; + this.type = 2668620305; } } - IFC4X32.IfcNormalisedRatioMeasure = IfcNormalisedRatioMeasure; - class IfcNumericMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcStructuralLoadPlanarForce = IfcStructuralLoadPlanarForce; + class IfcStructuralLoadSingleDisplacement extends IfcStructuralLoadStatic { + constructor(Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ) { + super(Name); + this.Name = Name; + this.DisplacementX = DisplacementX; + this.DisplacementY = DisplacementY; + this.DisplacementZ = DisplacementZ; + this.RotationalDisplacementRX = RotationalDisplacementRX; + this.RotationalDisplacementRY = RotationalDisplacementRY; + this.RotationalDisplacementRZ = RotationalDisplacementRZ; + this.type = 2473145415; } } - IFC4X32.IfcNumericMeasure = IfcNumericMeasure; - class IfcPHMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcStructuralLoadSingleDisplacement = IfcStructuralLoadSingleDisplacement; + class IfcStructuralLoadSingleDisplacementDistortion extends IfcStructuralLoadSingleDisplacement { + constructor(Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ, Distortion) { + super(Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ); + this.Name = Name; + this.DisplacementX = DisplacementX; + this.DisplacementY = DisplacementY; + this.DisplacementZ = DisplacementZ; + this.RotationalDisplacementRX = RotationalDisplacementRX; + this.RotationalDisplacementRY = RotationalDisplacementRY; + this.RotationalDisplacementRZ = RotationalDisplacementRZ; + this.Distortion = Distortion; + this.type = 1973038258; } } - IFC4X32.IfcPHMeasure = IfcPHMeasure; - class IfcParameterValue { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcStructuralLoadSingleDisplacementDistortion = IfcStructuralLoadSingleDisplacementDistortion; + class IfcStructuralLoadSingleForce extends IfcStructuralLoadStatic { + constructor(Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ) { + super(Name); + this.Name = Name; + this.ForceX = ForceX; + this.ForceY = ForceY; + this.ForceZ = ForceZ; + this.MomentX = MomentX; + this.MomentY = MomentY; + this.MomentZ = MomentZ; + this.type = 1597423693; } } - IFC4X32.IfcParameterValue = IfcParameterValue; - class IfcPlanarForceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcStructuralLoadSingleForce = IfcStructuralLoadSingleForce; + class IfcStructuralLoadSingleForceWarping extends IfcStructuralLoadSingleForce { + constructor(Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ, WarpingMoment) { + super(Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ); + this.Name = Name; + this.ForceX = ForceX; + this.ForceY = ForceY; + this.ForceZ = ForceZ; + this.MomentX = MomentX; + this.MomentY = MomentY; + this.MomentZ = MomentZ; + this.WarpingMoment = WarpingMoment; + this.type = 1190533807; } } - IFC4X32.IfcPlanarForceMeasure = IfcPlanarForceMeasure; - class IfcPlaneAngleMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcStructuralLoadSingleForceWarping = IfcStructuralLoadSingleForceWarping; + class IfcSubedge extends IfcEdge { + constructor(EdgeStart, EdgeEnd, ParentEdge) { + super(EdgeStart, EdgeEnd); + this.EdgeStart = EdgeStart; + this.EdgeEnd = EdgeEnd; + this.ParentEdge = ParentEdge; + this.type = 2233826070; } } - IFC4X32.IfcPlaneAngleMeasure = IfcPlaneAngleMeasure; - class IfcPositiveInteger { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcSubedge = IfcSubedge; + class IfcSurface extends IfcGeometricRepresentationItem { + constructor() { + super(); + this.type = 2513912981; } } - IFC4X32.IfcPositiveInteger = IfcPositiveInteger; - class IfcPositiveLengthMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcSurface = IfcSurface; + class IfcSurfaceStyleRendering extends IfcSurfaceStyleShading { + constructor(SurfaceColour, Transparency, DiffuseColour, TransmissionColour, DiffuseTransmissionColour, ReflectionColour, SpecularColour, SpecularHighlight, ReflectanceMethod) { + super(SurfaceColour, Transparency); + this.SurfaceColour = SurfaceColour; + this.Transparency = Transparency; + this.DiffuseColour = DiffuseColour; + this.TransmissionColour = TransmissionColour; + this.DiffuseTransmissionColour = DiffuseTransmissionColour; + this.ReflectionColour = ReflectionColour; + this.SpecularColour = SpecularColour; + this.SpecularHighlight = SpecularHighlight; + this.ReflectanceMethod = ReflectanceMethod; + this.type = 1878645084; } } - IFC4X32.IfcPositiveLengthMeasure = IfcPositiveLengthMeasure; - class IfcPositivePlaneAngleMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcSurfaceStyleRendering = IfcSurfaceStyleRendering; + class IfcSweptAreaSolid extends IfcSolidModel { + constructor(SweptArea, Position) { + super(); + this.SweptArea = SweptArea; + this.Position = Position; + this.type = 2247615214; } } - IFC4X32.IfcPositivePlaneAngleMeasure = IfcPositivePlaneAngleMeasure; - class IfcPositiveRatioMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcSweptAreaSolid = IfcSweptAreaSolid; + class IfcSweptDiskSolid extends IfcSolidModel { + constructor(Directrix, Radius, InnerRadius, StartParam, EndParam) { + super(); + this.Directrix = Directrix; + this.Radius = Radius; + this.InnerRadius = InnerRadius; + this.StartParam = StartParam; + this.EndParam = EndParam; + this.type = 1260650574; } } - IFC4X32.IfcPositiveRatioMeasure = IfcPositiveRatioMeasure; - class IfcPowerMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcSweptDiskSolid = IfcSweptDiskSolid; + class IfcSweptDiskSolidPolygonal extends IfcSweptDiskSolid { + constructor(Directrix, Radius, InnerRadius, StartParam, EndParam, FilletRadius) { + super(Directrix, Radius, InnerRadius, StartParam, EndParam); + this.Directrix = Directrix; + this.Radius = Radius; + this.InnerRadius = InnerRadius; + this.StartParam = StartParam; + this.EndParam = EndParam; + this.FilletRadius = FilletRadius; + this.type = 1096409881; } } - IFC4X32.IfcPowerMeasure = IfcPowerMeasure; - class IfcPresentableText { - constructor(value) { - this.value = value; - this.type = 1; + IFC4X32.IfcSweptDiskSolidPolygonal = IfcSweptDiskSolidPolygonal; + class IfcSweptSurface extends IfcSurface { + constructor(SweptCurve, Position) { + super(); + this.SweptCurve = SweptCurve; + this.Position = Position; + this.type = 230924584; } } - IFC4X32.IfcPresentableText = IfcPresentableText; - class IfcPressureMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcSweptSurface = IfcSweptSurface; + class IfcTShapeProfileDef extends IfcParameterizedProfileDef { + constructor(ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, FlangeEdgeRadius, WebEdgeRadius, WebSlope, FlangeSlope) { + super(ProfileType, ProfileName, Position); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.Depth = Depth; + this.FlangeWidth = FlangeWidth; + this.WebThickness = WebThickness; + this.FlangeThickness = FlangeThickness; + this.FilletRadius = FilletRadius; + this.FlangeEdgeRadius = FlangeEdgeRadius; + this.WebEdgeRadius = WebEdgeRadius; + this.WebSlope = WebSlope; + this.FlangeSlope = FlangeSlope; + this.type = 3071757647; } } - IFC4X32.IfcPressureMeasure = IfcPressureMeasure; - class IfcPropertySetDefinitionSet { - constructor(value) { - this.value = value; + IFC4X32.IfcTShapeProfileDef = IfcTShapeProfileDef; + class IfcTessellatedItem extends IfcGeometricRepresentationItem { + constructor() { + super(); + this.type = 901063453; } } - IFC4X32.IfcPropertySetDefinitionSet = IfcPropertySetDefinitionSet; - class IfcRadioActivityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcTessellatedItem = IfcTessellatedItem; + class IfcTextLiteral extends IfcGeometricRepresentationItem { + constructor(Literal, Placement, Path) { + super(); + this.Literal = Literal; + this.Placement = Placement; + this.Path = Path; + this.type = 4282788508; } } - IFC4X32.IfcRadioActivityMeasure = IfcRadioActivityMeasure; - class IfcRatioMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcTextLiteral = IfcTextLiteral; + class IfcTextLiteralWithExtent extends IfcTextLiteral { + constructor(Literal, Placement, Path, Extent, BoxAlignment) { + super(Literal, Placement, Path); + this.Literal = Literal; + this.Placement = Placement; + this.Path = Path; + this.Extent = Extent; + this.BoxAlignment = BoxAlignment; + this.type = 3124975700; } } - IFC4X32.IfcRatioMeasure = IfcRatioMeasure; - class IfcReal { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcTextLiteralWithExtent = IfcTextLiteralWithExtent; + class IfcTextStyleFontModel extends IfcPreDefinedTextFont { + constructor(Name, FontFamily, FontStyle, FontVariant, FontWeight, FontSize) { + super(Name); + this.Name = Name; + this.FontFamily = FontFamily; + this.FontStyle = FontStyle; + this.FontVariant = FontVariant; + this.FontWeight = FontWeight; + this.FontSize = FontSize; + this.type = 1983826977; } } - IFC4X32.IfcReal = IfcReal; - class IfcRotationalFrequencyMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcTextStyleFontModel = IfcTextStyleFontModel; + class IfcTrapeziumProfileDef extends IfcParameterizedProfileDef { + constructor(ProfileType, ProfileName, Position, BottomXDim, TopXDim, YDim, TopXOffset) { + super(ProfileType, ProfileName, Position); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.BottomXDim = BottomXDim; + this.TopXDim = TopXDim; + this.YDim = YDim; + this.TopXOffset = TopXOffset; + this.type = 2715220739; } } - IFC4X32.IfcRotationalFrequencyMeasure = IfcRotationalFrequencyMeasure; - class IfcRotationalMassMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcTrapeziumProfileDef = IfcTrapeziumProfileDef; + class IfcTypeObject extends IfcObjectDefinition { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.type = 1628702193; } } - IFC4X32.IfcRotationalMassMeasure = IfcRotationalMassMeasure; - class IfcRotationalStiffnessMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcTypeObject = IfcTypeObject; + class IfcTypeProcess extends IfcTypeObject { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.ProcessType = ProcessType; + this.type = 3736923433; } } - IFC4X32.IfcRotationalStiffnessMeasure = IfcRotationalStiffnessMeasure; - class IfcSectionModulusMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcTypeProcess = IfcTypeProcess; + class IfcTypeProduct extends IfcTypeObject { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.type = 2347495698; } } - IFC4X32.IfcSectionModulusMeasure = IfcSectionModulusMeasure; - class IfcSectionalAreaIntegralMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcTypeProduct = IfcTypeProduct; + class IfcTypeResource extends IfcTypeObject { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.ResourceType = ResourceType; + this.type = 3698973494; } } - IFC4X32.IfcSectionalAreaIntegralMeasure = IfcSectionalAreaIntegralMeasure; - class IfcShearModulusMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcTypeResource = IfcTypeResource; + class IfcUShapeProfileDef extends IfcParameterizedProfileDef { + constructor(ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, EdgeRadius, FlangeSlope) { + super(ProfileType, ProfileName, Position); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.Depth = Depth; + this.FlangeWidth = FlangeWidth; + this.WebThickness = WebThickness; + this.FlangeThickness = FlangeThickness; + this.FilletRadius = FilletRadius; + this.EdgeRadius = EdgeRadius; + this.FlangeSlope = FlangeSlope; + this.type = 427810014; } } - IFC4X32.IfcShearModulusMeasure = IfcShearModulusMeasure; - class IfcSolidAngleMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcUShapeProfileDef = IfcUShapeProfileDef; + class IfcVector extends IfcGeometricRepresentationItem { + constructor(Orientation, Magnitude) { + super(); + this.Orientation = Orientation; + this.Magnitude = Magnitude; + this.type = 1417489154; } } - IFC4X32.IfcSolidAngleMeasure = IfcSolidAngleMeasure; - class IfcSoundPowerLevelMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcVector = IfcVector; + class IfcVertexLoop extends IfcLoop { + constructor(LoopVertex) { + super(); + this.LoopVertex = LoopVertex; + this.type = 2759199220; } } - IFC4X32.IfcSoundPowerLevelMeasure = IfcSoundPowerLevelMeasure; - class IfcSoundPowerMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcVertexLoop = IfcVertexLoop; + class IfcZShapeProfileDef extends IfcParameterizedProfileDef { + constructor(ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, EdgeRadius) { + super(ProfileType, ProfileName, Position); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.Depth = Depth; + this.FlangeWidth = FlangeWidth; + this.WebThickness = WebThickness; + this.FlangeThickness = FlangeThickness; + this.FilletRadius = FilletRadius; + this.EdgeRadius = EdgeRadius; + this.type = 2543172580; } } - IFC4X32.IfcSoundPowerMeasure = IfcSoundPowerMeasure; - class IfcSoundPressureLevelMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcZShapeProfileDef = IfcZShapeProfileDef; + class IfcAdvancedFace extends IfcFaceSurface { + constructor(Bounds, FaceSurface, SameSense) { + super(Bounds, FaceSurface, SameSense); + this.Bounds = Bounds; + this.FaceSurface = FaceSurface; + this.SameSense = SameSense; + this.type = 3406155212; } } - IFC4X32.IfcSoundPressureLevelMeasure = IfcSoundPressureLevelMeasure; - class IfcSoundPressureMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcAdvancedFace = IfcAdvancedFace; + class IfcAnnotationFillArea extends IfcGeometricRepresentationItem { + constructor(OuterBoundary, InnerBoundaries) { + super(); + this.OuterBoundary = OuterBoundary; + this.InnerBoundaries = InnerBoundaries; + this.type = 669184980; } } - IFC4X32.IfcSoundPressureMeasure = IfcSoundPressureMeasure; - class IfcSpecificHeatCapacityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcAnnotationFillArea = IfcAnnotationFillArea; + class IfcAsymmetricIShapeProfileDef extends IfcParameterizedProfileDef { + constructor(ProfileType, ProfileName, Position, BottomFlangeWidth, OverallDepth, WebThickness, BottomFlangeThickness, BottomFlangeFilletRadius, TopFlangeWidth, TopFlangeThickness, TopFlangeFilletRadius, BottomFlangeEdgeRadius, BottomFlangeSlope, TopFlangeEdgeRadius, TopFlangeSlope) { + super(ProfileType, ProfileName, Position); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.BottomFlangeWidth = BottomFlangeWidth; + this.OverallDepth = OverallDepth; + this.WebThickness = WebThickness; + this.BottomFlangeThickness = BottomFlangeThickness; + this.BottomFlangeFilletRadius = BottomFlangeFilletRadius; + this.TopFlangeWidth = TopFlangeWidth; + this.TopFlangeThickness = TopFlangeThickness; + this.TopFlangeFilletRadius = TopFlangeFilletRadius; + this.BottomFlangeEdgeRadius = BottomFlangeEdgeRadius; + this.BottomFlangeSlope = BottomFlangeSlope; + this.TopFlangeEdgeRadius = TopFlangeEdgeRadius; + this.TopFlangeSlope = TopFlangeSlope; + this.type = 3207858831; } } - IFC4X32.IfcSpecificHeatCapacityMeasure = IfcSpecificHeatCapacityMeasure; - class IfcSpecularExponent { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcAsymmetricIShapeProfileDef = IfcAsymmetricIShapeProfileDef; + class IfcAxis1Placement extends IfcPlacement { + constructor(Location, Axis) { + super(Location); + this.Location = Location; + this.Axis = Axis; + this.type = 4261334040; } } - IFC4X32.IfcSpecularExponent = IfcSpecularExponent; - class IfcSpecularRoughness { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcAxis1Placement = IfcAxis1Placement; + class IfcAxis2Placement2D extends IfcPlacement { + constructor(Location, RefDirection) { + super(Location); + this.Location = Location; + this.RefDirection = RefDirection; + this.type = 3125803723; } } - IFC4X32.IfcSpecularRoughness = IfcSpecularRoughness; - class IfcTemperatureGradientMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcAxis2Placement2D = IfcAxis2Placement2D; + class IfcAxis2Placement3D extends IfcPlacement { + constructor(Location, Axis, RefDirection) { + super(Location); + this.Location = Location; + this.Axis = Axis; + this.RefDirection = RefDirection; + this.type = 2740243338; } } - IFC4X32.IfcTemperatureGradientMeasure = IfcTemperatureGradientMeasure; - class IfcTemperatureRateOfChangeMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcAxis2Placement3D = IfcAxis2Placement3D; + class IfcAxis2PlacementLinear extends IfcPlacement { + constructor(Location, Axis, RefDirection) { + super(Location); + this.Location = Location; + this.Axis = Axis; + this.RefDirection = RefDirection; + this.type = 3425423356; } } - IFC4X32.IfcTemperatureRateOfChangeMeasure = IfcTemperatureRateOfChangeMeasure; - class IfcText { - constructor(value) { - this.value = value; - this.type = 1; + IFC4X32.IfcAxis2PlacementLinear = IfcAxis2PlacementLinear; + class IfcBooleanResult extends IfcGeometricRepresentationItem { + constructor(Operator, FirstOperand, SecondOperand) { + super(); + this.Operator = Operator; + this.FirstOperand = FirstOperand; + this.SecondOperand = SecondOperand; + this.type = 2736907675; } } - IFC4X32.IfcText = IfcText; - class IfcTextAlignment { - constructor(value) { - this.value = value; - this.type = 1; + IFC4X32.IfcBooleanResult = IfcBooleanResult; + class IfcBoundedSurface extends IfcSurface { + constructor() { + super(); + this.type = 4182860854; } } - IFC4X32.IfcTextAlignment = IfcTextAlignment; - class IfcTextDecoration { - constructor(value) { - this.value = value; - this.type = 1; + IFC4X32.IfcBoundedSurface = IfcBoundedSurface; + class IfcBoundingBox extends IfcGeometricRepresentationItem { + constructor(Corner, XDim, YDim, ZDim) { + super(); + this.Corner = Corner; + this.XDim = XDim; + this.YDim = YDim; + this.ZDim = ZDim; + this.type = 2581212453; } } - IFC4X32.IfcTextDecoration = IfcTextDecoration; - class IfcTextFontName { - constructor(value) { - this.value = value; - this.type = 1; + IFC4X32.IfcBoundingBox = IfcBoundingBox; + class IfcBoxedHalfSpace extends IfcHalfSpaceSolid { + constructor(BaseSurface, AgreementFlag, Enclosure) { + super(BaseSurface, AgreementFlag); + this.BaseSurface = BaseSurface; + this.AgreementFlag = AgreementFlag; + this.Enclosure = Enclosure; + this.type = 2713105998; } } - IFC4X32.IfcTextFontName = IfcTextFontName; - class IfcTextTransformation { - constructor(value) { - this.value = value; - this.type = 1; + IFC4X32.IfcBoxedHalfSpace = IfcBoxedHalfSpace; + class IfcCShapeProfileDef extends IfcParameterizedProfileDef { + constructor(ProfileType, ProfileName, Position, Depth, Width, WallThickness, Girth, InternalFilletRadius) { + super(ProfileType, ProfileName, Position); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.Depth = Depth; + this.Width = Width; + this.WallThickness = WallThickness; + this.Girth = Girth; + this.InternalFilletRadius = InternalFilletRadius; + this.type = 2898889636; } } - IFC4X32.IfcTextTransformation = IfcTextTransformation; - class IfcThermalAdmittanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcCShapeProfileDef = IfcCShapeProfileDef; + class IfcCartesianPoint extends IfcPoint { + constructor(Coordinates) { + super(); + this.Coordinates = Coordinates; + this.type = 1123145078; } } - IFC4X32.IfcThermalAdmittanceMeasure = IfcThermalAdmittanceMeasure; - class IfcThermalConductivityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcCartesianPoint = IfcCartesianPoint; + class IfcCartesianPointList extends IfcGeometricRepresentationItem { + constructor() { + super(); + this.type = 574549367; } } - IFC4X32.IfcThermalConductivityMeasure = IfcThermalConductivityMeasure; - class IfcThermalExpansionCoefficientMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcCartesianPointList = IfcCartesianPointList; + class IfcCartesianPointList2D extends IfcCartesianPointList { + constructor(CoordList, TagList) { + super(); + this.CoordList = CoordList; + this.TagList = TagList; + this.type = 1675464909; } } - IFC4X32.IfcThermalExpansionCoefficientMeasure = IfcThermalExpansionCoefficientMeasure; - class IfcThermalResistanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcCartesianPointList2D = IfcCartesianPointList2D; + class IfcCartesianPointList3D extends IfcCartesianPointList { + constructor(CoordList, TagList) { + super(); + this.CoordList = CoordList; + this.TagList = TagList; + this.type = 2059837836; } } - IFC4X32.IfcThermalResistanceMeasure = IfcThermalResistanceMeasure; - class IfcThermalTransmittanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcCartesianPointList3D = IfcCartesianPointList3D; + class IfcCartesianTransformationOperator extends IfcGeometricRepresentationItem { + constructor(Axis1, Axis2, LocalOrigin, Scale) { + super(); + this.Axis1 = Axis1; + this.Axis2 = Axis2; + this.LocalOrigin = LocalOrigin; + this.Scale = Scale; + this.type = 59481748; } } - IFC4X32.IfcThermalTransmittanceMeasure = IfcThermalTransmittanceMeasure; - class IfcThermodynamicTemperatureMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcCartesianTransformationOperator = IfcCartesianTransformationOperator; + class IfcCartesianTransformationOperator2D extends IfcCartesianTransformationOperator { + constructor(Axis1, Axis2, LocalOrigin, Scale) { + super(Axis1, Axis2, LocalOrigin, Scale); + this.Axis1 = Axis1; + this.Axis2 = Axis2; + this.LocalOrigin = LocalOrigin; + this.Scale = Scale; + this.type = 3749851601; } } - IFC4X32.IfcThermodynamicTemperatureMeasure = IfcThermodynamicTemperatureMeasure; - class IfcTime { - constructor(value) { - this.value = value; - this.type = 1; + IFC4X32.IfcCartesianTransformationOperator2D = IfcCartesianTransformationOperator2D; + class IfcCartesianTransformationOperator2DnonUniform extends IfcCartesianTransformationOperator2D { + constructor(Axis1, Axis2, LocalOrigin, Scale, Scale2) { + super(Axis1, Axis2, LocalOrigin, Scale); + this.Axis1 = Axis1; + this.Axis2 = Axis2; + this.LocalOrigin = LocalOrigin; + this.Scale = Scale; + this.Scale2 = Scale2; + this.type = 3486308946; } } - IFC4X32.IfcTime = IfcTime; - class IfcTimeMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcCartesianTransformationOperator2DnonUniform = IfcCartesianTransformationOperator2DnonUniform; + class IfcCartesianTransformationOperator3D extends IfcCartesianTransformationOperator { + constructor(Axis1, Axis2, LocalOrigin, Scale, Axis3) { + super(Axis1, Axis2, LocalOrigin, Scale); + this.Axis1 = Axis1; + this.Axis2 = Axis2; + this.LocalOrigin = LocalOrigin; + this.Scale = Scale; + this.Axis3 = Axis3; + this.type = 3331915920; } } - IFC4X32.IfcTimeMeasure = IfcTimeMeasure; - class IfcTimeStamp { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcCartesianTransformationOperator3D = IfcCartesianTransformationOperator3D; + class IfcCartesianTransformationOperator3DnonUniform extends IfcCartesianTransformationOperator3D { + constructor(Axis1, Axis2, LocalOrigin, Scale, Axis3, Scale2, Scale3) { + super(Axis1, Axis2, LocalOrigin, Scale, Axis3); + this.Axis1 = Axis1; + this.Axis2 = Axis2; + this.LocalOrigin = LocalOrigin; + this.Scale = Scale; + this.Axis3 = Axis3; + this.Scale2 = Scale2; + this.Scale3 = Scale3; + this.type = 1416205885; } } - IFC4X32.IfcTimeStamp = IfcTimeStamp; - class IfcTorqueMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcCartesianTransformationOperator3DnonUniform = IfcCartesianTransformationOperator3DnonUniform; + class IfcCircleProfileDef extends IfcParameterizedProfileDef { + constructor(ProfileType, ProfileName, Position, Radius) { + super(ProfileType, ProfileName, Position); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.Radius = Radius; + this.type = 1383045692; } } - IFC4X32.IfcTorqueMeasure = IfcTorqueMeasure; - class IfcURIReference { - constructor(value) { - this.value = value; - this.type = 1; + IFC4X32.IfcCircleProfileDef = IfcCircleProfileDef; + class IfcClosedShell extends IfcConnectedFaceSet { + constructor(CfsFaces) { + super(CfsFaces); + this.CfsFaces = CfsFaces; + this.type = 2205249479; } } - IFC4X32.IfcURIReference = IfcURIReference; - class IfcVaporPermeabilityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcClosedShell = IfcClosedShell; + class IfcColourRgb extends IfcColourSpecification { + constructor(Name, Red, Green, Blue) { + super(Name); + this.Name = Name; + this.Red = Red; + this.Green = Green; + this.Blue = Blue; + this.type = 776857604; } } - IFC4X32.IfcVaporPermeabilityMeasure = IfcVaporPermeabilityMeasure; - class IfcVolumeMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcColourRgb = IfcColourRgb; + class IfcComplexProperty extends IfcProperty { + constructor(Name, Specification, UsageName, HasProperties) { + super(Name, Specification); + this.Name = Name; + this.Specification = Specification; + this.UsageName = UsageName; + this.HasProperties = HasProperties; + this.type = 2542286263; } } - IFC4X32.IfcVolumeMeasure = IfcVolumeMeasure; - class IfcVolumetricFlowRateMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcComplexProperty = IfcComplexProperty; + class IfcCompositeCurveSegment extends IfcSegment { + constructor(Transition, SameSense, ParentCurve) { + super(Transition); + this.Transition = Transition; + this.SameSense = SameSense; + this.ParentCurve = ParentCurve; + this.type = 2485617015; } } - IFC4X32.IfcVolumetricFlowRateMeasure = IfcVolumetricFlowRateMeasure; - class IfcWarpingConstantMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcCompositeCurveSegment = IfcCompositeCurveSegment; + class IfcConstructionResourceType extends IfcTypeResource { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.ResourceType = ResourceType; + this.BaseCosts = BaseCosts; + this.BaseQuantity = BaseQuantity; + this.type = 2574617495; } } - IFC4X32.IfcWarpingConstantMeasure = IfcWarpingConstantMeasure; - class IfcWarpingMomentMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); + IFC4X32.IfcConstructionResourceType = IfcConstructionResourceType; + class IfcContext extends IfcObjectDefinition { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.LongName = LongName; + this.Phase = Phase; + this.RepresentationContexts = RepresentationContexts; + this.UnitsInContext = UnitsInContext; + this.type = 3419103109; } } - IFC4X32.IfcWarpingMomentMeasure = IfcWarpingMomentMeasure; - class IfcActionRequestTypeEnum { - } - IfcActionRequestTypeEnum.EMAIL = { type: 3, value: "EMAIL" }; - IfcActionRequestTypeEnum.FAX = { type: 3, value: "FAX" }; - IfcActionRequestTypeEnum.PHONE = { type: 3, value: "PHONE" }; - IfcActionRequestTypeEnum.POST = { type: 3, value: "POST" }; - IfcActionRequestTypeEnum.VERBAL = { type: 3, value: "VERBAL" }; - IfcActionRequestTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcActionRequestTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcActionRequestTypeEnum = IfcActionRequestTypeEnum; - class IfcActionSourceTypeEnum { - } - IfcActionSourceTypeEnum.BRAKES = { type: 3, value: "BRAKES" }; - IfcActionSourceTypeEnum.BUOYANCY = { type: 3, value: "BUOYANCY" }; - IfcActionSourceTypeEnum.COMPLETION_G1 = { type: 3, value: "COMPLETION_G1" }; - IfcActionSourceTypeEnum.CREEP = { type: 3, value: "CREEP" }; - IfcActionSourceTypeEnum.CURRENT = { type: 3, value: "CURRENT" }; - IfcActionSourceTypeEnum.DEAD_LOAD_G = { type: 3, value: "DEAD_LOAD_G" }; - IfcActionSourceTypeEnum.EARTHQUAKE_E = { type: 3, value: "EARTHQUAKE_E" }; - IfcActionSourceTypeEnum.ERECTION = { type: 3, value: "ERECTION" }; - IfcActionSourceTypeEnum.FIRE = { type: 3, value: "FIRE" }; - IfcActionSourceTypeEnum.ICE = { type: 3, value: "ICE" }; - IfcActionSourceTypeEnum.IMPACT = { type: 3, value: "IMPACT" }; - IfcActionSourceTypeEnum.IMPULSE = { type: 3, value: "IMPULSE" }; - IfcActionSourceTypeEnum.LACK_OF_FIT = { type: 3, value: "LACK_OF_FIT" }; - IfcActionSourceTypeEnum.LIVE_LOAD_Q = { type: 3, value: "LIVE_LOAD_Q" }; - IfcActionSourceTypeEnum.PRESTRESSING_P = { type: 3, value: "PRESTRESSING_P" }; - IfcActionSourceTypeEnum.PROPPING = { type: 3, value: "PROPPING" }; - IfcActionSourceTypeEnum.RAIN = { type: 3, value: "RAIN" }; - IfcActionSourceTypeEnum.SETTLEMENT_U = { type: 3, value: "SETTLEMENT_U" }; - IfcActionSourceTypeEnum.SHRINKAGE = { type: 3, value: "SHRINKAGE" }; - IfcActionSourceTypeEnum.SNOW_S = { type: 3, value: "SNOW_S" }; - IfcActionSourceTypeEnum.SYSTEM_IMPERFECTION = { type: 3, value: "SYSTEM_IMPERFECTION" }; - IfcActionSourceTypeEnum.TEMPERATURE_T = { type: 3, value: "TEMPERATURE_T" }; - IfcActionSourceTypeEnum.TRANSPORT = { type: 3, value: "TRANSPORT" }; - IfcActionSourceTypeEnum.WAVE = { type: 3, value: "WAVE" }; - IfcActionSourceTypeEnum.WIND_W = { type: 3, value: "WIND_W" }; - IfcActionSourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcActionSourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcActionSourceTypeEnum = IfcActionSourceTypeEnum; - class IfcActionTypeEnum { - } - IfcActionTypeEnum.EXTRAORDINARY_A = { type: 3, value: "EXTRAORDINARY_A" }; - IfcActionTypeEnum.PERMANENT_G = { type: 3, value: "PERMANENT_G" }; - IfcActionTypeEnum.VARIABLE_Q = { type: 3, value: "VARIABLE_Q" }; - IfcActionTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcActionTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcActionTypeEnum = IfcActionTypeEnum; - class IfcActuatorTypeEnum { - } - IfcActuatorTypeEnum.ELECTRICACTUATOR = { type: 3, value: "ELECTRICACTUATOR" }; - IfcActuatorTypeEnum.HANDOPERATEDACTUATOR = { type: 3, value: "HANDOPERATEDACTUATOR" }; - IfcActuatorTypeEnum.HYDRAULICACTUATOR = { type: 3, value: "HYDRAULICACTUATOR" }; - IfcActuatorTypeEnum.PNEUMATICACTUATOR = { type: 3, value: "PNEUMATICACTUATOR" }; - IfcActuatorTypeEnum.THERMOSTATICACTUATOR = { type: 3, value: "THERMOSTATICACTUATOR" }; - IfcActuatorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcActuatorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcActuatorTypeEnum = IfcActuatorTypeEnum; - class IfcAddressTypeEnum { - } - IfcAddressTypeEnum.DISTRIBUTIONPOINT = { type: 3, value: "DISTRIBUTIONPOINT" }; - IfcAddressTypeEnum.HOME = { type: 3, value: "HOME" }; - IfcAddressTypeEnum.OFFICE = { type: 3, value: "OFFICE" }; - IfcAddressTypeEnum.SITE = { type: 3, value: "SITE" }; - IfcAddressTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IFC4X32.IfcAddressTypeEnum = IfcAddressTypeEnum; - class IfcAirTerminalBoxTypeEnum { - } - IfcAirTerminalBoxTypeEnum.CONSTANTFLOW = { type: 3, value: "CONSTANTFLOW" }; - IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREDEPENDANT = { type: 3, value: "VARIABLEFLOWPRESSUREDEPENDANT" }; - IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREINDEPENDANT = { type: 3, value: "VARIABLEFLOWPRESSUREINDEPENDANT" }; - IfcAirTerminalBoxTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcAirTerminalBoxTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcAirTerminalBoxTypeEnum = IfcAirTerminalBoxTypeEnum; - class IfcAirTerminalTypeEnum { - } - IfcAirTerminalTypeEnum.DIFFUSER = { type: 3, value: "DIFFUSER" }; - IfcAirTerminalTypeEnum.GRILLE = { type: 3, value: "GRILLE" }; - IfcAirTerminalTypeEnum.LOUVRE = { type: 3, value: "LOUVRE" }; - IfcAirTerminalTypeEnum.REGISTER = { type: 3, value: "REGISTER" }; - IfcAirTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcAirTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcAirTerminalTypeEnum = IfcAirTerminalTypeEnum; - class IfcAirToAirHeatRecoveryTypeEnum { - } - IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECOUNTERFLOWEXCHANGER = { type: 3, value: "FIXEDPLATECOUNTERFLOWEXCHANGER" }; - IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECROSSFLOWEXCHANGER = { type: 3, value: "FIXEDPLATECROSSFLOWEXCHANGER" }; - IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATEPARALLELFLOWEXCHANGER = { type: 3, value: "FIXEDPLATEPARALLELFLOWEXCHANGER" }; - IfcAirToAirHeatRecoveryTypeEnum.HEATPIPE = { type: 3, value: "HEATPIPE" }; - IfcAirToAirHeatRecoveryTypeEnum.ROTARYWHEEL = { type: 3, value: "ROTARYWHEEL" }; - IfcAirToAirHeatRecoveryTypeEnum.RUNAROUNDCOILLOOP = { type: 3, value: "RUNAROUNDCOILLOOP" }; - IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONCOILTYPEHEATEXCHANGERS = { type: 3, value: "THERMOSIPHONCOILTYPEHEATEXCHANGERS" }; - IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONSEALEDTUBEHEATEXCHANGERS = { type: 3, value: "THERMOSIPHONSEALEDTUBEHEATEXCHANGERS" }; - IfcAirToAirHeatRecoveryTypeEnum.TWINTOWERENTHALPYRECOVERYLOOPS = { type: 3, value: "TWINTOWERENTHALPYRECOVERYLOOPS" }; - IfcAirToAirHeatRecoveryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcAirToAirHeatRecoveryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcAirToAirHeatRecoveryTypeEnum = IfcAirToAirHeatRecoveryTypeEnum; - class IfcAlarmTypeEnum { - } - IfcAlarmTypeEnum.BELL = { type: 3, value: "BELL" }; - IfcAlarmTypeEnum.BREAKGLASSBUTTON = { type: 3, value: "BREAKGLASSBUTTON" }; - IfcAlarmTypeEnum.LIGHT = { type: 3, value: "LIGHT" }; - IfcAlarmTypeEnum.MANUALPULLBOX = { type: 3, value: "MANUALPULLBOX" }; - IfcAlarmTypeEnum.RAILWAYCROCODILE = { type: 3, value: "RAILWAYCROCODILE" }; - IfcAlarmTypeEnum.RAILWAYDETONATOR = { type: 3, value: "RAILWAYDETONATOR" }; - IfcAlarmTypeEnum.SIREN = { type: 3, value: "SIREN" }; - IfcAlarmTypeEnum.WHISTLE = { type: 3, value: "WHISTLE" }; - IfcAlarmTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcAlarmTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcAlarmTypeEnum = IfcAlarmTypeEnum; - class IfcAlignmentCantSegmentTypeEnum { - } - IfcAlignmentCantSegmentTypeEnum.BLOSSCURVE = { type: 3, value: "BLOSSCURVE" }; - IfcAlignmentCantSegmentTypeEnum.CONSTANTCANT = { type: 3, value: "CONSTANTCANT" }; - IfcAlignmentCantSegmentTypeEnum.COSINECURVE = { type: 3, value: "COSINECURVE" }; - IfcAlignmentCantSegmentTypeEnum.HELMERTCURVE = { type: 3, value: "HELMERTCURVE" }; - IfcAlignmentCantSegmentTypeEnum.LINEARTRANSITION = { type: 3, value: "LINEARTRANSITION" }; - IfcAlignmentCantSegmentTypeEnum.SINECURVE = { type: 3, value: "SINECURVE" }; - IfcAlignmentCantSegmentTypeEnum.VIENNESEBEND = { type: 3, value: "VIENNESEBEND" }; - IFC4X32.IfcAlignmentCantSegmentTypeEnum = IfcAlignmentCantSegmentTypeEnum; - class IfcAlignmentHorizontalSegmentTypeEnum { - } - IfcAlignmentHorizontalSegmentTypeEnum.BLOSSCURVE = { type: 3, value: "BLOSSCURVE" }; - IfcAlignmentHorizontalSegmentTypeEnum.CIRCULARARC = { type: 3, value: "CIRCULARARC" }; - IfcAlignmentHorizontalSegmentTypeEnum.CLOTHOID = { type: 3, value: "CLOTHOID" }; - IfcAlignmentHorizontalSegmentTypeEnum.COSINECURVE = { type: 3, value: "COSINECURVE" }; - IfcAlignmentHorizontalSegmentTypeEnum.CUBIC = { type: 3, value: "CUBIC" }; - IfcAlignmentHorizontalSegmentTypeEnum.HELMERTCURVE = { type: 3, value: "HELMERTCURVE" }; - IfcAlignmentHorizontalSegmentTypeEnum.LINE = { type: 3, value: "LINE" }; - IfcAlignmentHorizontalSegmentTypeEnum.SINECURVE = { type: 3, value: "SINECURVE" }; - IfcAlignmentHorizontalSegmentTypeEnum.VIENNESEBEND = { type: 3, value: "VIENNESEBEND" }; - IFC4X32.IfcAlignmentHorizontalSegmentTypeEnum = IfcAlignmentHorizontalSegmentTypeEnum; - class IfcAlignmentTypeEnum { - } - IfcAlignmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcAlignmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcAlignmentTypeEnum = IfcAlignmentTypeEnum; - class IfcAlignmentVerticalSegmentTypeEnum { + IFC4X32.IfcContext = IfcContext; + class IfcCrewResourceType extends IfcConstructionResourceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.ResourceType = ResourceType; + this.BaseCosts = BaseCosts; + this.BaseQuantity = BaseQuantity; + this.PredefinedType = PredefinedType; + this.type = 1815067380; + } } - IfcAlignmentVerticalSegmentTypeEnum.CIRCULARARC = { type: 3, value: "CIRCULARARC" }; - IfcAlignmentVerticalSegmentTypeEnum.CLOTHOID = { type: 3, value: "CLOTHOID" }; - IfcAlignmentVerticalSegmentTypeEnum.CONSTANTGRADIENT = { type: 3, value: "CONSTANTGRADIENT" }; - IfcAlignmentVerticalSegmentTypeEnum.PARABOLICARC = { type: 3, value: "PARABOLICARC" }; - IFC4X32.IfcAlignmentVerticalSegmentTypeEnum = IfcAlignmentVerticalSegmentTypeEnum; - class IfcAnalysisModelTypeEnum { + IFC4X32.IfcCrewResourceType = IfcCrewResourceType; + class IfcCsgPrimitive3D extends IfcGeometricRepresentationItem { + constructor(Position) { + super(); + this.Position = Position; + this.type = 2506170314; + } } - IfcAnalysisModelTypeEnum.IN_PLANE_LOADING_2D = { type: 3, value: "IN_PLANE_LOADING_2D" }; - IfcAnalysisModelTypeEnum.LOADING_3D = { type: 3, value: "LOADING_3D" }; - IfcAnalysisModelTypeEnum.OUT_PLANE_LOADING_2D = { type: 3, value: "OUT_PLANE_LOADING_2D" }; - IfcAnalysisModelTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcAnalysisModelTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcAnalysisModelTypeEnum = IfcAnalysisModelTypeEnum; - class IfcAnalysisTheoryTypeEnum { + IFC4X32.IfcCsgPrimitive3D = IfcCsgPrimitive3D; + class IfcCsgSolid extends IfcSolidModel { + constructor(TreeRootExpression) { + super(); + this.TreeRootExpression = TreeRootExpression; + this.type = 2147822146; + } } - IfcAnalysisTheoryTypeEnum.FIRST_ORDER_THEORY = { type: 3, value: "FIRST_ORDER_THEORY" }; - IfcAnalysisTheoryTypeEnum.FULL_NONLINEAR_THEORY = { type: 3, value: "FULL_NONLINEAR_THEORY" }; - IfcAnalysisTheoryTypeEnum.SECOND_ORDER_THEORY = { type: 3, value: "SECOND_ORDER_THEORY" }; - IfcAnalysisTheoryTypeEnum.THIRD_ORDER_THEORY = { type: 3, value: "THIRD_ORDER_THEORY" }; - IfcAnalysisTheoryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcAnalysisTheoryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcAnalysisTheoryTypeEnum = IfcAnalysisTheoryTypeEnum; - class IfcAnnotationTypeEnum { + IFC4X32.IfcCsgSolid = IfcCsgSolid; + class IfcCurve extends IfcGeometricRepresentationItem { + constructor() { + super(); + this.type = 2601014836; + } } - IfcAnnotationTypeEnum.ASBUILTAREA = { type: 3, value: "ASBUILTAREA" }; - IfcAnnotationTypeEnum.ASBUILTLINE = { type: 3, value: "ASBUILTLINE" }; - IfcAnnotationTypeEnum.ASBUILTPOINT = { type: 3, value: "ASBUILTPOINT" }; - IfcAnnotationTypeEnum.ASSUMEDAREA = { type: 3, value: "ASSUMEDAREA" }; - IfcAnnotationTypeEnum.ASSUMEDLINE = { type: 3, value: "ASSUMEDLINE" }; - IfcAnnotationTypeEnum.ASSUMEDPOINT = { type: 3, value: "ASSUMEDPOINT" }; - IfcAnnotationTypeEnum.NON_PHYSICAL_SIGNAL = { type: 3, value: "NON_PHYSICAL_SIGNAL" }; - IfcAnnotationTypeEnum.SUPERELEVATIONEVENT = { type: 3, value: "SUPERELEVATIONEVENT" }; - IfcAnnotationTypeEnum.WIDTHEVENT = { type: 3, value: "WIDTHEVENT" }; - IfcAnnotationTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcAnnotationTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcAnnotationTypeEnum = IfcAnnotationTypeEnum; - class IfcArithmeticOperatorEnum { + IFC4X32.IfcCurve = IfcCurve; + class IfcCurveBoundedPlane extends IfcBoundedSurface { + constructor(BasisSurface, OuterBoundary, InnerBoundaries) { + super(); + this.BasisSurface = BasisSurface; + this.OuterBoundary = OuterBoundary; + this.InnerBoundaries = InnerBoundaries; + this.type = 2827736869; + } } - IfcArithmeticOperatorEnum.ADD = { type: 3, value: "ADD" }; - IfcArithmeticOperatorEnum.DIVIDE = { type: 3, value: "DIVIDE" }; - IfcArithmeticOperatorEnum.MULTIPLY = { type: 3, value: "MULTIPLY" }; - IfcArithmeticOperatorEnum.SUBTRACT = { type: 3, value: "SUBTRACT" }; - IFC4X32.IfcArithmeticOperatorEnum = IfcArithmeticOperatorEnum; - class IfcAssemblyPlaceEnum { + IFC4X32.IfcCurveBoundedPlane = IfcCurveBoundedPlane; + class IfcCurveBoundedSurface extends IfcBoundedSurface { + constructor(BasisSurface, Boundaries, ImplicitOuter) { + super(); + this.BasisSurface = BasisSurface; + this.Boundaries = Boundaries; + this.ImplicitOuter = ImplicitOuter; + this.type = 2629017746; + } } - IfcAssemblyPlaceEnum.FACTORY = { type: 3, value: "FACTORY" }; - IfcAssemblyPlaceEnum.SITE = { type: 3, value: "SITE" }; - IfcAssemblyPlaceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcAssemblyPlaceEnum = IfcAssemblyPlaceEnum; - class IfcAudioVisualApplianceTypeEnum { + IFC4X32.IfcCurveBoundedSurface = IfcCurveBoundedSurface; + class IfcCurveSegment extends IfcSegment { + constructor(Transition, Placement, SegmentStart, SegmentLength, ParentCurve) { + super(Transition); + this.Transition = Transition; + this.Placement = Placement; + this.SegmentStart = SegmentStart; + this.SegmentLength = SegmentLength; + this.ParentCurve = ParentCurve; + this.type = 4212018352; + } } - IfcAudioVisualApplianceTypeEnum.AMPLIFIER = { type: 3, value: "AMPLIFIER" }; - IfcAudioVisualApplianceTypeEnum.CAMERA = { type: 3, value: "CAMERA" }; - IfcAudioVisualApplianceTypeEnum.COMMUNICATIONTERMINAL = { type: 3, value: "COMMUNICATIONTERMINAL" }; - IfcAudioVisualApplianceTypeEnum.DISPLAY = { type: 3, value: "DISPLAY" }; - IfcAudioVisualApplianceTypeEnum.MICROPHONE = { type: 3, value: "MICROPHONE" }; - IfcAudioVisualApplianceTypeEnum.PLAYER = { type: 3, value: "PLAYER" }; - IfcAudioVisualApplianceTypeEnum.PROJECTOR = { type: 3, value: "PROJECTOR" }; - IfcAudioVisualApplianceTypeEnum.RECEIVER = { type: 3, value: "RECEIVER" }; - IfcAudioVisualApplianceTypeEnum.RECORDINGEQUIPMENT = { type: 3, value: "RECORDINGEQUIPMENT" }; - IfcAudioVisualApplianceTypeEnum.SPEAKER = { type: 3, value: "SPEAKER" }; - IfcAudioVisualApplianceTypeEnum.SWITCHER = { type: 3, value: "SWITCHER" }; - IfcAudioVisualApplianceTypeEnum.TELEPHONE = { type: 3, value: "TELEPHONE" }; - IfcAudioVisualApplianceTypeEnum.TUNER = { type: 3, value: "TUNER" }; - IfcAudioVisualApplianceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcAudioVisualApplianceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcAudioVisualApplianceTypeEnum = IfcAudioVisualApplianceTypeEnum; - class IfcBSplineCurveForm { + IFC4X32.IfcCurveSegment = IfcCurveSegment; + class IfcDirection extends IfcGeometricRepresentationItem { + constructor(DirectionRatios) { + super(); + this.DirectionRatios = DirectionRatios; + this.type = 32440307; + } } - IfcBSplineCurveForm.CIRCULAR_ARC = { type: 3, value: "CIRCULAR_ARC" }; - IfcBSplineCurveForm.ELLIPTIC_ARC = { type: 3, value: "ELLIPTIC_ARC" }; - IfcBSplineCurveForm.HYPERBOLIC_ARC = { type: 3, value: "HYPERBOLIC_ARC" }; - IfcBSplineCurveForm.PARABOLIC_ARC = { type: 3, value: "PARABOLIC_ARC" }; - IfcBSplineCurveForm.POLYLINE_FORM = { type: 3, value: "POLYLINE_FORM" }; - IfcBSplineCurveForm.UNSPECIFIED = { type: 3, value: "UNSPECIFIED" }; - IFC4X32.IfcBSplineCurveForm = IfcBSplineCurveForm; - class IfcBSplineSurfaceForm { + IFC4X32.IfcDirection = IfcDirection; + class IfcDirectrixCurveSweptAreaSolid extends IfcSweptAreaSolid { + constructor(SweptArea, Position, Directrix, StartParam, EndParam) { + super(SweptArea, Position); + this.SweptArea = SweptArea; + this.Position = Position; + this.Directrix = Directrix; + this.StartParam = StartParam; + this.EndParam = EndParam; + this.type = 593015953; + } } - IfcBSplineSurfaceForm.CONICAL_SURF = { type: 3, value: "CONICAL_SURF" }; - IfcBSplineSurfaceForm.CYLINDRICAL_SURF = { type: 3, value: "CYLINDRICAL_SURF" }; - IfcBSplineSurfaceForm.GENERALISED_CONE = { type: 3, value: "GENERALISED_CONE" }; - IfcBSplineSurfaceForm.PLANE_SURF = { type: 3, value: "PLANE_SURF" }; - IfcBSplineSurfaceForm.QUADRIC_SURF = { type: 3, value: "QUADRIC_SURF" }; - IfcBSplineSurfaceForm.RULED_SURF = { type: 3, value: "RULED_SURF" }; - IfcBSplineSurfaceForm.SPHERICAL_SURF = { type: 3, value: "SPHERICAL_SURF" }; - IfcBSplineSurfaceForm.SURF_OF_LINEAR_EXTRUSION = { type: 3, value: "SURF_OF_LINEAR_EXTRUSION" }; - IfcBSplineSurfaceForm.SURF_OF_REVOLUTION = { type: 3, value: "SURF_OF_REVOLUTION" }; - IfcBSplineSurfaceForm.TOROIDAL_SURF = { type: 3, value: "TOROIDAL_SURF" }; - IfcBSplineSurfaceForm.UNSPECIFIED = { type: 3, value: "UNSPECIFIED" }; - IFC4X32.IfcBSplineSurfaceForm = IfcBSplineSurfaceForm; - class IfcBeamTypeEnum { + IFC4X32.IfcDirectrixCurveSweptAreaSolid = IfcDirectrixCurveSweptAreaSolid; + class IfcEdgeLoop extends IfcLoop { + constructor(EdgeList) { + super(); + this.EdgeList = EdgeList; + this.type = 1472233963; + } } - IfcBeamTypeEnum.BEAM = { type: 3, value: "BEAM" }; - IfcBeamTypeEnum.CORNICE = { type: 3, value: "CORNICE" }; - IfcBeamTypeEnum.DIAPHRAGM = { type: 3, value: "DIAPHRAGM" }; - IfcBeamTypeEnum.EDGEBEAM = { type: 3, value: "EDGEBEAM" }; - IfcBeamTypeEnum.GIRDER_SEGMENT = { type: 3, value: "GIRDER_SEGMENT" }; - IfcBeamTypeEnum.HATSTONE = { type: 3, value: "HATSTONE" }; - IfcBeamTypeEnum.HOLLOWCORE = { type: 3, value: "HOLLOWCORE" }; - IfcBeamTypeEnum.JOIST = { type: 3, value: "JOIST" }; - IfcBeamTypeEnum.LINTEL = { type: 3, value: "LINTEL" }; - IfcBeamTypeEnum.PIERCAP = { type: 3, value: "PIERCAP" }; - IfcBeamTypeEnum.SPANDREL = { type: 3, value: "SPANDREL" }; - IfcBeamTypeEnum.T_BEAM = { type: 3, value: "T_BEAM" }; - IfcBeamTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcBeamTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcBeamTypeEnum = IfcBeamTypeEnum; - class IfcBearingTypeDisplacementEnum { + IFC4X32.IfcEdgeLoop = IfcEdgeLoop; + class IfcElementQuantity extends IfcQuantitySet { + constructor(GlobalId, OwnerHistory, Name, Description, MethodOfMeasurement, Quantities) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.MethodOfMeasurement = MethodOfMeasurement; + this.Quantities = Quantities; + this.type = 1883228015; + } } - IfcBearingTypeDisplacementEnum.FIXED_MOVEMENT = { type: 3, value: "FIXED_MOVEMENT" }; - IfcBearingTypeDisplacementEnum.FREE_MOVEMENT = { type: 3, value: "FREE_MOVEMENT" }; - IfcBearingTypeDisplacementEnum.GUIDED_LONGITUDINAL = { type: 3, value: "GUIDED_LONGITUDINAL" }; - IfcBearingTypeDisplacementEnum.GUIDED_TRANSVERSAL = { type: 3, value: "GUIDED_TRANSVERSAL" }; - IfcBearingTypeDisplacementEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcBearingTypeDisplacementEnum = IfcBearingTypeDisplacementEnum; - class IfcBearingTypeEnum { + IFC4X32.IfcElementQuantity = IfcElementQuantity; + class IfcElementType extends IfcTypeProduct { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 339256511; + } } - IfcBearingTypeEnum.CYLINDRICAL = { type: 3, value: "CYLINDRICAL" }; - IfcBearingTypeEnum.DISK = { type: 3, value: "DISK" }; - IfcBearingTypeEnum.ELASTOMERIC = { type: 3, value: "ELASTOMERIC" }; - IfcBearingTypeEnum.GUIDE = { type: 3, value: "GUIDE" }; - IfcBearingTypeEnum.POT = { type: 3, value: "POT" }; - IfcBearingTypeEnum.ROCKER = { type: 3, value: "ROCKER" }; - IfcBearingTypeEnum.ROLLER = { type: 3, value: "ROLLER" }; - IfcBearingTypeEnum.SPHERICAL = { type: 3, value: "SPHERICAL" }; - IfcBearingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcBearingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcBearingTypeEnum = IfcBearingTypeEnum; - class IfcBenchmarkEnum { + IFC4X32.IfcElementType = IfcElementType; + class IfcElementarySurface extends IfcSurface { + constructor(Position) { + super(); + this.Position = Position; + this.type = 2777663545; + } } - IfcBenchmarkEnum.EQUALTO = { type: 3, value: "EQUALTO" }; - IfcBenchmarkEnum.GREATERTHAN = { type: 3, value: "GREATERTHAN" }; - IfcBenchmarkEnum.GREATERTHANOREQUALTO = { type: 3, value: "GREATERTHANOREQUALTO" }; - IfcBenchmarkEnum.INCLUDEDIN = { type: 3, value: "INCLUDEDIN" }; - IfcBenchmarkEnum.INCLUDES = { type: 3, value: "INCLUDES" }; - IfcBenchmarkEnum.LESSTHAN = { type: 3, value: "LESSTHAN" }; - IfcBenchmarkEnum.LESSTHANOREQUALTO = { type: 3, value: "LESSTHANOREQUALTO" }; - IfcBenchmarkEnum.NOTEQUALTO = { type: 3, value: "NOTEQUALTO" }; - IfcBenchmarkEnum.NOTINCLUDEDIN = { type: 3, value: "NOTINCLUDEDIN" }; - IfcBenchmarkEnum.NOTINCLUDES = { type: 3, value: "NOTINCLUDES" }; - IFC4X32.IfcBenchmarkEnum = IfcBenchmarkEnum; - class IfcBoilerTypeEnum { + IFC4X32.IfcElementarySurface = IfcElementarySurface; + class IfcEllipseProfileDef extends IfcParameterizedProfileDef { + constructor(ProfileType, ProfileName, Position, SemiAxis1, SemiAxis2) { + super(ProfileType, ProfileName, Position); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.SemiAxis1 = SemiAxis1; + this.SemiAxis2 = SemiAxis2; + this.type = 2835456948; + } } - IfcBoilerTypeEnum.STEAM = { type: 3, value: "STEAM" }; - IfcBoilerTypeEnum.WATER = { type: 3, value: "WATER" }; - IfcBoilerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcBoilerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcBoilerTypeEnum = IfcBoilerTypeEnum; - class IfcBooleanOperator { + IFC4X32.IfcEllipseProfileDef = IfcEllipseProfileDef; + class IfcEventType extends IfcTypeProcess { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType, PredefinedType, EventTriggerType, UserDefinedEventTriggerType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.ProcessType = ProcessType; + this.PredefinedType = PredefinedType; + this.EventTriggerType = EventTriggerType; + this.UserDefinedEventTriggerType = UserDefinedEventTriggerType; + this.type = 4024345920; + } } - IfcBooleanOperator.DIFFERENCE = { type: 3, value: "DIFFERENCE" }; - IfcBooleanOperator.INTERSECTION = { type: 3, value: "INTERSECTION" }; - IfcBooleanOperator.UNION = { type: 3, value: "UNION" }; - IFC4X32.IfcBooleanOperator = IfcBooleanOperator; - class IfcBridgePartTypeEnum { + IFC4X32.IfcEventType = IfcEventType; + class IfcExtrudedAreaSolid extends IfcSweptAreaSolid { + constructor(SweptArea, Position, ExtrudedDirection, Depth) { + super(SweptArea, Position); + this.SweptArea = SweptArea; + this.Position = Position; + this.ExtrudedDirection = ExtrudedDirection; + this.Depth = Depth; + this.type = 477187591; + } } - IfcBridgePartTypeEnum.ABUTMENT = { type: 3, value: "ABUTMENT" }; - IfcBridgePartTypeEnum.DECK = { type: 3, value: "DECK" }; - IfcBridgePartTypeEnum.DECK_SEGMENT = { type: 3, value: "DECK_SEGMENT" }; - IfcBridgePartTypeEnum.FOUNDATION = { type: 3, value: "FOUNDATION" }; - IfcBridgePartTypeEnum.PIER = { type: 3, value: "PIER" }; - IfcBridgePartTypeEnum.PIER_SEGMENT = { type: 3, value: "PIER_SEGMENT" }; - IfcBridgePartTypeEnum.PYLON = { type: 3, value: "PYLON" }; - IfcBridgePartTypeEnum.SUBSTRUCTURE = { type: 3, value: "SUBSTRUCTURE" }; - IfcBridgePartTypeEnum.SUPERSTRUCTURE = { type: 3, value: "SUPERSTRUCTURE" }; - IfcBridgePartTypeEnum.SURFACESTRUCTURE = { type: 3, value: "SURFACESTRUCTURE" }; - IfcBridgePartTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcBridgePartTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcBridgePartTypeEnum = IfcBridgePartTypeEnum; - class IfcBridgeTypeEnum { + IFC4X32.IfcExtrudedAreaSolid = IfcExtrudedAreaSolid; + class IfcExtrudedAreaSolidTapered extends IfcExtrudedAreaSolid { + constructor(SweptArea, Position, ExtrudedDirection, Depth, EndSweptArea) { + super(SweptArea, Position, ExtrudedDirection, Depth); + this.SweptArea = SweptArea; + this.Position = Position; + this.ExtrudedDirection = ExtrudedDirection; + this.Depth = Depth; + this.EndSweptArea = EndSweptArea; + this.type = 2804161546; + } } - IfcBridgeTypeEnum.ARCHED = { type: 3, value: "ARCHED" }; - IfcBridgeTypeEnum.CABLE_STAYED = { type: 3, value: "CABLE_STAYED" }; - IfcBridgeTypeEnum.CANTILEVER = { type: 3, value: "CANTILEVER" }; - IfcBridgeTypeEnum.CULVERT = { type: 3, value: "CULVERT" }; - IfcBridgeTypeEnum.FRAMEWORK = { type: 3, value: "FRAMEWORK" }; - IfcBridgeTypeEnum.GIRDER = { type: 3, value: "GIRDER" }; - IfcBridgeTypeEnum.SUSPENSION = { type: 3, value: "SUSPENSION" }; - IfcBridgeTypeEnum.TRUSS = { type: 3, value: "TRUSS" }; - IfcBridgeTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcBridgeTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcBridgeTypeEnum = IfcBridgeTypeEnum; - class IfcBuildingElementPartTypeEnum { + IFC4X32.IfcExtrudedAreaSolidTapered = IfcExtrudedAreaSolidTapered; + class IfcFaceBasedSurfaceModel extends IfcGeometricRepresentationItem { + constructor(FbsmFaces) { + super(); + this.FbsmFaces = FbsmFaces; + this.type = 2047409740; + } } - IfcBuildingElementPartTypeEnum.APRON = { type: 3, value: "APRON" }; - IfcBuildingElementPartTypeEnum.ARMOURUNIT = { type: 3, value: "ARMOURUNIT" }; - IfcBuildingElementPartTypeEnum.INSULATION = { type: 3, value: "INSULATION" }; - IfcBuildingElementPartTypeEnum.PRECASTPANEL = { type: 3, value: "PRECASTPANEL" }; - IfcBuildingElementPartTypeEnum.SAFETYCAGE = { type: 3, value: "SAFETYCAGE" }; - IfcBuildingElementPartTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcBuildingElementPartTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcBuildingElementPartTypeEnum = IfcBuildingElementPartTypeEnum; - class IfcBuildingElementProxyTypeEnum { + IFC4X32.IfcFaceBasedSurfaceModel = IfcFaceBasedSurfaceModel; + class IfcFillAreaStyleHatching extends IfcGeometricRepresentationItem { + constructor(HatchLineAppearance, StartOfNextHatchLine, PointOfReferenceHatchLine, PatternStart, HatchLineAngle) { + super(); + this.HatchLineAppearance = HatchLineAppearance; + this.StartOfNextHatchLine = StartOfNextHatchLine; + this.PointOfReferenceHatchLine = PointOfReferenceHatchLine; + this.PatternStart = PatternStart; + this.HatchLineAngle = HatchLineAngle; + this.type = 374418227; + } } - IfcBuildingElementProxyTypeEnum.COMPLEX = { type: 3, value: "COMPLEX" }; - IfcBuildingElementProxyTypeEnum.ELEMENT = { type: 3, value: "ELEMENT" }; - IfcBuildingElementProxyTypeEnum.PARTIAL = { type: 3, value: "PARTIAL" }; - IfcBuildingElementProxyTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcBuildingElementProxyTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcBuildingElementProxyTypeEnum = IfcBuildingElementProxyTypeEnum; - class IfcBuildingSystemTypeEnum { + IFC4X32.IfcFillAreaStyleHatching = IfcFillAreaStyleHatching; + class IfcFillAreaStyleTiles extends IfcGeometricRepresentationItem { + constructor(TilingPattern, Tiles, TilingScale) { + super(); + this.TilingPattern = TilingPattern; + this.Tiles = Tiles; + this.TilingScale = TilingScale; + this.type = 315944413; + } } - IfcBuildingSystemTypeEnum.EROSIONPREVENTION = { type: 3, value: "EROSIONPREVENTION" }; - IfcBuildingSystemTypeEnum.FENESTRATION = { type: 3, value: "FENESTRATION" }; - IfcBuildingSystemTypeEnum.FOUNDATION = { type: 3, value: "FOUNDATION" }; - IfcBuildingSystemTypeEnum.LOADBEARING = { type: 3, value: "LOADBEARING" }; - IfcBuildingSystemTypeEnum.OUTERSHELL = { type: 3, value: "OUTERSHELL" }; - IfcBuildingSystemTypeEnum.PRESTRESSING = { type: 3, value: "PRESTRESSING" }; - IfcBuildingSystemTypeEnum.REINFORCING = { type: 3, value: "REINFORCING" }; - IfcBuildingSystemTypeEnum.SHADING = { type: 3, value: "SHADING" }; - IfcBuildingSystemTypeEnum.TRANSPORT = { type: 3, value: "TRANSPORT" }; - IfcBuildingSystemTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcBuildingSystemTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcBuildingSystemTypeEnum = IfcBuildingSystemTypeEnum; - class IfcBuiltSystemTypeEnum { + IFC4X32.IfcFillAreaStyleTiles = IfcFillAreaStyleTiles; + class IfcFixedReferenceSweptAreaSolid extends IfcDirectrixCurveSweptAreaSolid { + constructor(SweptArea, Position, Directrix, StartParam, EndParam, FixedReference) { + super(SweptArea, Position, Directrix, StartParam, EndParam); + this.SweptArea = SweptArea; + this.Position = Position; + this.Directrix = Directrix; + this.StartParam = StartParam; + this.EndParam = EndParam; + this.FixedReference = FixedReference; + this.type = 2652556860; + } } - IfcBuiltSystemTypeEnum.EROSIONPREVENTION = { type: 3, value: "EROSIONPREVENTION" }; - IfcBuiltSystemTypeEnum.FENESTRATION = { type: 3, value: "FENESTRATION" }; - IfcBuiltSystemTypeEnum.FOUNDATION = { type: 3, value: "FOUNDATION" }; - IfcBuiltSystemTypeEnum.LOADBEARING = { type: 3, value: "LOADBEARING" }; - IfcBuiltSystemTypeEnum.MOORING = { type: 3, value: "MOORING" }; - IfcBuiltSystemTypeEnum.OUTERSHELL = { type: 3, value: "OUTERSHELL" }; - IfcBuiltSystemTypeEnum.PRESTRESSING = { type: 3, value: "PRESTRESSING" }; - IfcBuiltSystemTypeEnum.RAILWAYLINE = { type: 3, value: "RAILWAYLINE" }; - IfcBuiltSystemTypeEnum.RAILWAYTRACK = { type: 3, value: "RAILWAYTRACK" }; - IfcBuiltSystemTypeEnum.REINFORCING = { type: 3, value: "REINFORCING" }; - IfcBuiltSystemTypeEnum.SHADING = { type: 3, value: "SHADING" }; - IfcBuiltSystemTypeEnum.TRACKCIRCUIT = { type: 3, value: "TRACKCIRCUIT" }; - IfcBuiltSystemTypeEnum.TRANSPORT = { type: 3, value: "TRANSPORT" }; - IfcBuiltSystemTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcBuiltSystemTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcBuiltSystemTypeEnum = IfcBuiltSystemTypeEnum; - class IfcBurnerTypeEnum { + IFC4X32.IfcFixedReferenceSweptAreaSolid = IfcFixedReferenceSweptAreaSolid; + class IfcFurnishingElementType extends IfcElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 4238390223; + } } - IfcBurnerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcBurnerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcBurnerTypeEnum = IfcBurnerTypeEnum; - class IfcCableCarrierFittingTypeEnum { + IFC4X32.IfcFurnishingElementType = IfcFurnishingElementType; + class IfcFurnitureType extends IfcFurnishingElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, AssemblyPlace, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.AssemblyPlace = AssemblyPlace; + this.PredefinedType = PredefinedType; + this.type = 1268542332; + } } - IfcCableCarrierFittingTypeEnum.BEND = { type: 3, value: "BEND" }; - IfcCableCarrierFittingTypeEnum.CONNECTOR = { type: 3, value: "CONNECTOR" }; - IfcCableCarrierFittingTypeEnum.CROSS = { type: 3, value: "CROSS" }; - IfcCableCarrierFittingTypeEnum.JUNCTION = { type: 3, value: "JUNCTION" }; - IfcCableCarrierFittingTypeEnum.TEE = { type: 3, value: "TEE" }; - IfcCableCarrierFittingTypeEnum.TRANSITION = { type: 3, value: "TRANSITION" }; - IfcCableCarrierFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCableCarrierFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcCableCarrierFittingTypeEnum = IfcCableCarrierFittingTypeEnum; - class IfcCableCarrierSegmentTypeEnum { + IFC4X32.IfcFurnitureType = IfcFurnitureType; + class IfcGeographicElementType extends IfcElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 4095422895; + } } - IfcCableCarrierSegmentTypeEnum.CABLEBRACKET = { type: 3, value: "CABLEBRACKET" }; - IfcCableCarrierSegmentTypeEnum.CABLELADDERSEGMENT = { type: 3, value: "CABLELADDERSEGMENT" }; - IfcCableCarrierSegmentTypeEnum.CABLETRAYSEGMENT = { type: 3, value: "CABLETRAYSEGMENT" }; - IfcCableCarrierSegmentTypeEnum.CABLETRUNKINGSEGMENT = { type: 3, value: "CABLETRUNKINGSEGMENT" }; - IfcCableCarrierSegmentTypeEnum.CATENARYWIRE = { type: 3, value: "CATENARYWIRE" }; - IfcCableCarrierSegmentTypeEnum.CONDUITSEGMENT = { type: 3, value: "CONDUITSEGMENT" }; - IfcCableCarrierSegmentTypeEnum.DROPPER = { type: 3, value: "DROPPER" }; - IfcCableCarrierSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCableCarrierSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcCableCarrierSegmentTypeEnum = IfcCableCarrierSegmentTypeEnum; - class IfcCableFittingTypeEnum { + IFC4X32.IfcGeographicElementType = IfcGeographicElementType; + class IfcGeometricCurveSet extends IfcGeometricSet { + constructor(Elements) { + super(Elements); + this.Elements = Elements; + this.type = 987898635; + } } - IfcCableFittingTypeEnum.CONNECTOR = { type: 3, value: "CONNECTOR" }; - IfcCableFittingTypeEnum.ENTRY = { type: 3, value: "ENTRY" }; - IfcCableFittingTypeEnum.EXIT = { type: 3, value: "EXIT" }; - IfcCableFittingTypeEnum.FANOUT = { type: 3, value: "FANOUT" }; - IfcCableFittingTypeEnum.JUNCTION = { type: 3, value: "JUNCTION" }; - IfcCableFittingTypeEnum.TRANSITION = { type: 3, value: "TRANSITION" }; - IfcCableFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCableFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcCableFittingTypeEnum = IfcCableFittingTypeEnum; - class IfcCableSegmentTypeEnum { + IFC4X32.IfcGeometricCurveSet = IfcGeometricCurveSet; + class IfcIShapeProfileDef extends IfcParameterizedProfileDef { + constructor(ProfileType, ProfileName, Position, OverallWidth, OverallDepth, WebThickness, FlangeThickness, FilletRadius, FlangeEdgeRadius, FlangeSlope) { + super(ProfileType, ProfileName, Position); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.OverallWidth = OverallWidth; + this.OverallDepth = OverallDepth; + this.WebThickness = WebThickness; + this.FlangeThickness = FlangeThickness; + this.FilletRadius = FilletRadius; + this.FlangeEdgeRadius = FlangeEdgeRadius; + this.FlangeSlope = FlangeSlope; + this.type = 1484403080; + } } - IfcCableSegmentTypeEnum.BUSBARSEGMENT = { type: 3, value: "BUSBARSEGMENT" }; - IfcCableSegmentTypeEnum.CABLESEGMENT = { type: 3, value: "CABLESEGMENT" }; - IfcCableSegmentTypeEnum.CONDUCTORSEGMENT = { type: 3, value: "CONDUCTORSEGMENT" }; - IfcCableSegmentTypeEnum.CONTACTWIRESEGMENT = { type: 3, value: "CONTACTWIRESEGMENT" }; - IfcCableSegmentTypeEnum.CORESEGMENT = { type: 3, value: "CORESEGMENT" }; - IfcCableSegmentTypeEnum.FIBERSEGMENT = { type: 3, value: "FIBERSEGMENT" }; - IfcCableSegmentTypeEnum.FIBERTUBE = { type: 3, value: "FIBERTUBE" }; - IfcCableSegmentTypeEnum.OPTICALCABLESEGMENT = { type: 3, value: "OPTICALCABLESEGMENT" }; - IfcCableSegmentTypeEnum.STITCHWIRE = { type: 3, value: "STITCHWIRE" }; - IfcCableSegmentTypeEnum.WIREPAIRSEGMENT = { type: 3, value: "WIREPAIRSEGMENT" }; - IfcCableSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCableSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcCableSegmentTypeEnum = IfcCableSegmentTypeEnum; - class IfcCaissonFoundationTypeEnum { + IFC4X32.IfcIShapeProfileDef = IfcIShapeProfileDef; + class IfcIndexedPolygonalFace extends IfcTessellatedItem { + constructor(CoordIndex) { + super(); + this.CoordIndex = CoordIndex; + this.type = 178912537; + } } - IfcCaissonFoundationTypeEnum.CAISSON = { type: 3, value: "CAISSON" }; - IfcCaissonFoundationTypeEnum.WELL = { type: 3, value: "WELL" }; - IfcCaissonFoundationTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCaissonFoundationTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcCaissonFoundationTypeEnum = IfcCaissonFoundationTypeEnum; - class IfcChangeActionEnum { + IFC4X32.IfcIndexedPolygonalFace = IfcIndexedPolygonalFace; + class IfcIndexedPolygonalFaceWithVoids extends IfcIndexedPolygonalFace { + constructor(CoordIndex, InnerCoordIndices) { + super(CoordIndex); + this.CoordIndex = CoordIndex; + this.InnerCoordIndices = InnerCoordIndices; + this.type = 2294589976; + } } - IfcChangeActionEnum.ADDED = { type: 3, value: "ADDED" }; - IfcChangeActionEnum.DELETED = { type: 3, value: "DELETED" }; - IfcChangeActionEnum.MODIFIED = { type: 3, value: "MODIFIED" }; - IfcChangeActionEnum.NOCHANGE = { type: 3, value: "NOCHANGE" }; - IfcChangeActionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcChangeActionEnum = IfcChangeActionEnum; - class IfcChillerTypeEnum { + IFC4X32.IfcIndexedPolygonalFaceWithVoids = IfcIndexedPolygonalFaceWithVoids; + class IfcIndexedPolygonalTextureMap extends IfcIndexedTextureMap { + constructor(Maps, MappedTo, TexCoords, TexCoordIndices) { + super(Maps, MappedTo, TexCoords); + this.Maps = Maps; + this.MappedTo = MappedTo; + this.TexCoords = TexCoords; + this.TexCoordIndices = TexCoordIndices; + this.type = 3465909080; + } } - IfcChillerTypeEnum.AIRCOOLED = { type: 3, value: "AIRCOOLED" }; - IfcChillerTypeEnum.HEATRECOVERY = { type: 3, value: "HEATRECOVERY" }; - IfcChillerTypeEnum.WATERCOOLED = { type: 3, value: "WATERCOOLED" }; - IfcChillerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcChillerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcChillerTypeEnum = IfcChillerTypeEnum; - class IfcChimneyTypeEnum { + IFC4X32.IfcIndexedPolygonalTextureMap = IfcIndexedPolygonalTextureMap; + class IfcLShapeProfileDef extends IfcParameterizedProfileDef { + constructor(ProfileType, ProfileName, Position, Depth, Width, Thickness, FilletRadius, EdgeRadius, LegSlope) { + super(ProfileType, ProfileName, Position); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.Depth = Depth; + this.Width = Width; + this.Thickness = Thickness; + this.FilletRadius = FilletRadius; + this.EdgeRadius = EdgeRadius; + this.LegSlope = LegSlope; + this.type = 572779678; + } } - IfcChimneyTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcChimneyTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcChimneyTypeEnum = IfcChimneyTypeEnum; - class IfcCoilTypeEnum { + IFC4X32.IfcLShapeProfileDef = IfcLShapeProfileDef; + class IfcLaborResourceType extends IfcConstructionResourceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.ResourceType = ResourceType; + this.BaseCosts = BaseCosts; + this.BaseQuantity = BaseQuantity; + this.PredefinedType = PredefinedType; + this.type = 428585644; + } } - IfcCoilTypeEnum.DXCOOLINGCOIL = { type: 3, value: "DXCOOLINGCOIL" }; - IfcCoilTypeEnum.ELECTRICHEATINGCOIL = { type: 3, value: "ELECTRICHEATINGCOIL" }; - IfcCoilTypeEnum.GASHEATINGCOIL = { type: 3, value: "GASHEATINGCOIL" }; - IfcCoilTypeEnum.HYDRONICCOIL = { type: 3, value: "HYDRONICCOIL" }; - IfcCoilTypeEnum.STEAMHEATINGCOIL = { type: 3, value: "STEAMHEATINGCOIL" }; - IfcCoilTypeEnum.WATERCOOLINGCOIL = { type: 3, value: "WATERCOOLINGCOIL" }; - IfcCoilTypeEnum.WATERHEATINGCOIL = { type: 3, value: "WATERHEATINGCOIL" }; - IfcCoilTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCoilTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcCoilTypeEnum = IfcCoilTypeEnum; - class IfcColumnTypeEnum { + IFC4X32.IfcLaborResourceType = IfcLaborResourceType; + class IfcLine extends IfcCurve { + constructor(Pnt, Dir) { + super(); + this.Pnt = Pnt; + this.Dir = Dir; + this.type = 1281925730; + } } - IfcColumnTypeEnum.COLUMN = { type: 3, value: "COLUMN" }; - IfcColumnTypeEnum.PIERSTEM = { type: 3, value: "PIERSTEM" }; - IfcColumnTypeEnum.PIERSTEM_SEGMENT = { type: 3, value: "PIERSTEM_SEGMENT" }; - IfcColumnTypeEnum.PILASTER = { type: 3, value: "PILASTER" }; - IfcColumnTypeEnum.STANDCOLUMN = { type: 3, value: "STANDCOLUMN" }; - IfcColumnTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcColumnTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcColumnTypeEnum = IfcColumnTypeEnum; - class IfcCommunicationsApplianceTypeEnum { + IFC4X32.IfcLine = IfcLine; + class IfcManifoldSolidBrep extends IfcSolidModel { + constructor(Outer) { + super(); + this.Outer = Outer; + this.type = 1425443689; + } } - IfcCommunicationsApplianceTypeEnum.ANTENNA = { type: 3, value: "ANTENNA" }; - IfcCommunicationsApplianceTypeEnum.AUTOMATON = { type: 3, value: "AUTOMATON" }; - IfcCommunicationsApplianceTypeEnum.COMPUTER = { type: 3, value: "COMPUTER" }; - IfcCommunicationsApplianceTypeEnum.FAX = { type: 3, value: "FAX" }; - IfcCommunicationsApplianceTypeEnum.GATEWAY = { type: 3, value: "GATEWAY" }; - IfcCommunicationsApplianceTypeEnum.INTELLIGENTPERIPHERAL = { type: 3, value: "INTELLIGENTPERIPHERAL" }; - IfcCommunicationsApplianceTypeEnum.IPNETWORKEQUIPMENT = { type: 3, value: "IPNETWORKEQUIPMENT" }; - IfcCommunicationsApplianceTypeEnum.LINESIDEELECTRONICUNIT = { type: 3, value: "LINESIDEELECTRONICUNIT" }; - IfcCommunicationsApplianceTypeEnum.MODEM = { type: 3, value: "MODEM" }; - IfcCommunicationsApplianceTypeEnum.NETWORKAPPLIANCE = { type: 3, value: "NETWORKAPPLIANCE" }; - IfcCommunicationsApplianceTypeEnum.NETWORKBRIDGE = { type: 3, value: "NETWORKBRIDGE" }; - IfcCommunicationsApplianceTypeEnum.NETWORKHUB = { type: 3, value: "NETWORKHUB" }; - IfcCommunicationsApplianceTypeEnum.OPTICALLINETERMINAL = { type: 3, value: "OPTICALLINETERMINAL" }; - IfcCommunicationsApplianceTypeEnum.OPTICALNETWORKUNIT = { type: 3, value: "OPTICALNETWORKUNIT" }; - IfcCommunicationsApplianceTypeEnum.PRINTER = { type: 3, value: "PRINTER" }; - IfcCommunicationsApplianceTypeEnum.RADIOBLOCKCENTER = { type: 3, value: "RADIOBLOCKCENTER" }; - IfcCommunicationsApplianceTypeEnum.REPEATER = { type: 3, value: "REPEATER" }; - IfcCommunicationsApplianceTypeEnum.ROUTER = { type: 3, value: "ROUTER" }; - IfcCommunicationsApplianceTypeEnum.SCANNER = { type: 3, value: "SCANNER" }; - IfcCommunicationsApplianceTypeEnum.TELECOMMAND = { type: 3, value: "TELECOMMAND" }; - IfcCommunicationsApplianceTypeEnum.TELEPHONYEXCHANGE = { type: 3, value: "TELEPHONYEXCHANGE" }; - IfcCommunicationsApplianceTypeEnum.TRANSITIONCOMPONENT = { type: 3, value: "TRANSITIONCOMPONENT" }; - IfcCommunicationsApplianceTypeEnum.TRANSPONDER = { type: 3, value: "TRANSPONDER" }; - IfcCommunicationsApplianceTypeEnum.TRANSPORTEQUIPMENT = { type: 3, value: "TRANSPORTEQUIPMENT" }; - IfcCommunicationsApplianceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCommunicationsApplianceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcCommunicationsApplianceTypeEnum = IfcCommunicationsApplianceTypeEnum; - class IfcComplexPropertyTemplateTypeEnum { + IFC4X32.IfcManifoldSolidBrep = IfcManifoldSolidBrep; + class IfcObject extends IfcObjectDefinition { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.type = 3888040117; + } } - IfcComplexPropertyTemplateTypeEnum.P_COMPLEX = { type: 3, value: "P_COMPLEX" }; - IfcComplexPropertyTemplateTypeEnum.Q_COMPLEX = { type: 3, value: "Q_COMPLEX" }; - IFC4X32.IfcComplexPropertyTemplateTypeEnum = IfcComplexPropertyTemplateTypeEnum; - class IfcCompressorTypeEnum { + IFC4X32.IfcObject = IfcObject; + class IfcOffsetCurve extends IfcCurve { + constructor(BasisCurve) { + super(); + this.BasisCurve = BasisCurve; + this.type = 590820931; + } } - IfcCompressorTypeEnum.BOOSTER = { type: 3, value: "BOOSTER" }; - IfcCompressorTypeEnum.DYNAMIC = { type: 3, value: "DYNAMIC" }; - IfcCompressorTypeEnum.HERMETIC = { type: 3, value: "HERMETIC" }; - IfcCompressorTypeEnum.OPENTYPE = { type: 3, value: "OPENTYPE" }; - IfcCompressorTypeEnum.RECIPROCATING = { type: 3, value: "RECIPROCATING" }; - IfcCompressorTypeEnum.ROLLINGPISTON = { type: 3, value: "ROLLINGPISTON" }; - IfcCompressorTypeEnum.ROTARY = { type: 3, value: "ROTARY" }; - IfcCompressorTypeEnum.ROTARYVANE = { type: 3, value: "ROTARYVANE" }; - IfcCompressorTypeEnum.SCROLL = { type: 3, value: "SCROLL" }; - IfcCompressorTypeEnum.SEMIHERMETIC = { type: 3, value: "SEMIHERMETIC" }; - IfcCompressorTypeEnum.SINGLESCREW = { type: 3, value: "SINGLESCREW" }; - IfcCompressorTypeEnum.SINGLESTAGE = { type: 3, value: "SINGLESTAGE" }; - IfcCompressorTypeEnum.TROCHOIDAL = { type: 3, value: "TROCHOIDAL" }; - IfcCompressorTypeEnum.TWINSCREW = { type: 3, value: "TWINSCREW" }; - IfcCompressorTypeEnum.WELDEDSHELLHERMETIC = { type: 3, value: "WELDEDSHELLHERMETIC" }; - IfcCompressorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCompressorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcCompressorTypeEnum = IfcCompressorTypeEnum; - class IfcCondenserTypeEnum { + IFC4X32.IfcOffsetCurve = IfcOffsetCurve; + class IfcOffsetCurve2D extends IfcOffsetCurve { + constructor(BasisCurve, Distance, SelfIntersect) { + super(BasisCurve); + this.BasisCurve = BasisCurve; + this.Distance = Distance; + this.SelfIntersect = SelfIntersect; + this.type = 3388369263; + } } - IfcCondenserTypeEnum.AIRCOOLED = { type: 3, value: "AIRCOOLED" }; - IfcCondenserTypeEnum.EVAPORATIVECOOLED = { type: 3, value: "EVAPORATIVECOOLED" }; - IfcCondenserTypeEnum.WATERCOOLED = { type: 3, value: "WATERCOOLED" }; - IfcCondenserTypeEnum.WATERCOOLEDBRAZEDPLATE = { type: 3, value: "WATERCOOLEDBRAZEDPLATE" }; - IfcCondenserTypeEnum.WATERCOOLEDSHELLCOIL = { type: 3, value: "WATERCOOLEDSHELLCOIL" }; - IfcCondenserTypeEnum.WATERCOOLEDSHELLTUBE = { type: 3, value: "WATERCOOLEDSHELLTUBE" }; - IfcCondenserTypeEnum.WATERCOOLEDTUBEINTUBE = { type: 3, value: "WATERCOOLEDTUBEINTUBE" }; - IfcCondenserTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCondenserTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcCondenserTypeEnum = IfcCondenserTypeEnum; - class IfcConnectionTypeEnum { + IFC4X32.IfcOffsetCurve2D = IfcOffsetCurve2D; + class IfcOffsetCurve3D extends IfcOffsetCurve { + constructor(BasisCurve, Distance, SelfIntersect, RefDirection) { + super(BasisCurve); + this.BasisCurve = BasisCurve; + this.Distance = Distance; + this.SelfIntersect = SelfIntersect; + this.RefDirection = RefDirection; + this.type = 3505215534; + } } - IfcConnectionTypeEnum.ATEND = { type: 3, value: "ATEND" }; - IfcConnectionTypeEnum.ATPATH = { type: 3, value: "ATPATH" }; - IfcConnectionTypeEnum.ATSTART = { type: 3, value: "ATSTART" }; - IfcConnectionTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcConnectionTypeEnum = IfcConnectionTypeEnum; - class IfcConstraintEnum { + IFC4X32.IfcOffsetCurve3D = IfcOffsetCurve3D; + class IfcOffsetCurveByDistances extends IfcOffsetCurve { + constructor(BasisCurve, OffsetValues, Tag) { + super(BasisCurve); + this.BasisCurve = BasisCurve; + this.OffsetValues = OffsetValues; + this.Tag = Tag; + this.type = 2485787929; + } } - IfcConstraintEnum.ADVISORY = { type: 3, value: "ADVISORY" }; - IfcConstraintEnum.HARD = { type: 3, value: "HARD" }; - IfcConstraintEnum.SOFT = { type: 3, value: "SOFT" }; - IfcConstraintEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcConstraintEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcConstraintEnum = IfcConstraintEnum; - class IfcConstructionEquipmentResourceTypeEnum { + IFC4X32.IfcOffsetCurveByDistances = IfcOffsetCurveByDistances; + class IfcPcurve extends IfcCurve { + constructor(BasisSurface, ReferenceCurve) { + super(); + this.BasisSurface = BasisSurface; + this.ReferenceCurve = ReferenceCurve; + this.type = 1682466193; + } } - IfcConstructionEquipmentResourceTypeEnum.DEMOLISHING = { type: 3, value: "DEMOLISHING" }; - IfcConstructionEquipmentResourceTypeEnum.EARTHMOVING = { type: 3, value: "EARTHMOVING" }; - IfcConstructionEquipmentResourceTypeEnum.ERECTING = { type: 3, value: "ERECTING" }; - IfcConstructionEquipmentResourceTypeEnum.HEATING = { type: 3, value: "HEATING" }; - IfcConstructionEquipmentResourceTypeEnum.LIGHTING = { type: 3, value: "LIGHTING" }; - IfcConstructionEquipmentResourceTypeEnum.PAVING = { type: 3, value: "PAVING" }; - IfcConstructionEquipmentResourceTypeEnum.PUMPING = { type: 3, value: "PUMPING" }; - IfcConstructionEquipmentResourceTypeEnum.TRANSPORTING = { type: 3, value: "TRANSPORTING" }; - IfcConstructionEquipmentResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcConstructionEquipmentResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcConstructionEquipmentResourceTypeEnum = IfcConstructionEquipmentResourceTypeEnum; - class IfcConstructionMaterialResourceTypeEnum { + IFC4X32.IfcPcurve = IfcPcurve; + class IfcPlanarBox extends IfcPlanarExtent { + constructor(SizeInX, SizeInY, Placement) { + super(SizeInX, SizeInY); + this.SizeInX = SizeInX; + this.SizeInY = SizeInY; + this.Placement = Placement; + this.type = 603570806; + } } - IfcConstructionMaterialResourceTypeEnum.AGGREGATES = { type: 3, value: "AGGREGATES" }; - IfcConstructionMaterialResourceTypeEnum.CONCRETE = { type: 3, value: "CONCRETE" }; - IfcConstructionMaterialResourceTypeEnum.DRYWALL = { type: 3, value: "DRYWALL" }; - IfcConstructionMaterialResourceTypeEnum.FUEL = { type: 3, value: "FUEL" }; - IfcConstructionMaterialResourceTypeEnum.GYPSUM = { type: 3, value: "GYPSUM" }; - IfcConstructionMaterialResourceTypeEnum.MASONRY = { type: 3, value: "MASONRY" }; - IfcConstructionMaterialResourceTypeEnum.METAL = { type: 3, value: "METAL" }; - IfcConstructionMaterialResourceTypeEnum.PLASTIC = { type: 3, value: "PLASTIC" }; - IfcConstructionMaterialResourceTypeEnum.WOOD = { type: 3, value: "WOOD" }; - IfcConstructionMaterialResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcConstructionMaterialResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcConstructionMaterialResourceTypeEnum = IfcConstructionMaterialResourceTypeEnum; - class IfcConstructionProductResourceTypeEnum { + IFC4X32.IfcPlanarBox = IfcPlanarBox; + class IfcPlane extends IfcElementarySurface { + constructor(Position) { + super(Position); + this.Position = Position; + this.type = 220341763; + } } - IfcConstructionProductResourceTypeEnum.ASSEMBLY = { type: 3, value: "ASSEMBLY" }; - IfcConstructionProductResourceTypeEnum.FORMWORK = { type: 3, value: "FORMWORK" }; - IfcConstructionProductResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcConstructionProductResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcConstructionProductResourceTypeEnum = IfcConstructionProductResourceTypeEnum; - class IfcControllerTypeEnum { + IFC4X32.IfcPlane = IfcPlane; + class IfcPolynomialCurve extends IfcCurve { + constructor(Position, CoefficientsX, CoefficientsY, CoefficientsZ) { + super(); + this.Position = Position; + this.CoefficientsX = CoefficientsX; + this.CoefficientsY = CoefficientsY; + this.CoefficientsZ = CoefficientsZ; + this.type = 3381221214; + } } - IfcControllerTypeEnum.FLOATING = { type: 3, value: "FLOATING" }; - IfcControllerTypeEnum.MULTIPOSITION = { type: 3, value: "MULTIPOSITION" }; - IfcControllerTypeEnum.PROGRAMMABLE = { type: 3, value: "PROGRAMMABLE" }; - IfcControllerTypeEnum.PROPORTIONAL = { type: 3, value: "PROPORTIONAL" }; - IfcControllerTypeEnum.TWOPOSITION = { type: 3, value: "TWOPOSITION" }; - IfcControllerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcControllerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcControllerTypeEnum = IfcControllerTypeEnum; - class IfcConveyorSegmentTypeEnum { + IFC4X32.IfcPolynomialCurve = IfcPolynomialCurve; + class IfcPreDefinedColour extends IfcPreDefinedItem { + constructor(Name) { + super(Name); + this.Name = Name; + this.type = 759155922; + } } - IfcConveyorSegmentTypeEnum.BELTCONVEYOR = { type: 3, value: "BELTCONVEYOR" }; - IfcConveyorSegmentTypeEnum.BUCKETCONVEYOR = { type: 3, value: "BUCKETCONVEYOR" }; - IfcConveyorSegmentTypeEnum.CHUTECONVEYOR = { type: 3, value: "CHUTECONVEYOR" }; - IfcConveyorSegmentTypeEnum.SCREWCONVEYOR = { type: 3, value: "SCREWCONVEYOR" }; - IfcConveyorSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcConveyorSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcConveyorSegmentTypeEnum = IfcConveyorSegmentTypeEnum; - class IfcCooledBeamTypeEnum { + IFC4X32.IfcPreDefinedColour = IfcPreDefinedColour; + class IfcPreDefinedCurveFont extends IfcPreDefinedItem { + constructor(Name) { + super(Name); + this.Name = Name; + this.type = 2559016684; + } } - IfcCooledBeamTypeEnum.ACTIVE = { type: 3, value: "ACTIVE" }; - IfcCooledBeamTypeEnum.PASSIVE = { type: 3, value: "PASSIVE" }; - IfcCooledBeamTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCooledBeamTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcCooledBeamTypeEnum = IfcCooledBeamTypeEnum; - class IfcCoolingTowerTypeEnum { + IFC4X32.IfcPreDefinedCurveFont = IfcPreDefinedCurveFont; + class IfcPreDefinedPropertySet extends IfcPropertySetDefinition { + constructor(GlobalId, OwnerHistory, Name, Description) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.type = 3967405729; + } } - IfcCoolingTowerTypeEnum.MECHANICALFORCEDDRAFT = { type: 3, value: "MECHANICALFORCEDDRAFT" }; - IfcCoolingTowerTypeEnum.MECHANICALINDUCEDDRAFT = { type: 3, value: "MECHANICALINDUCEDDRAFT" }; - IfcCoolingTowerTypeEnum.NATURALDRAFT = { type: 3, value: "NATURALDRAFT" }; - IfcCoolingTowerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCoolingTowerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcCoolingTowerTypeEnum = IfcCoolingTowerTypeEnum; - class IfcCostItemTypeEnum { + IFC4X32.IfcPreDefinedPropertySet = IfcPreDefinedPropertySet; + class IfcProcedureType extends IfcTypeProcess { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.ProcessType = ProcessType; + this.PredefinedType = PredefinedType; + this.type = 569719735; + } } - IfcCostItemTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCostItemTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcCostItemTypeEnum = IfcCostItemTypeEnum; - class IfcCostScheduleTypeEnum { + IFC4X32.IfcProcedureType = IfcProcedureType; + class IfcProcess extends IfcObject { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.type = 2945172077; + } } - IfcCostScheduleTypeEnum.BUDGET = { type: 3, value: "BUDGET" }; - IfcCostScheduleTypeEnum.COSTPLAN = { type: 3, value: "COSTPLAN" }; - IfcCostScheduleTypeEnum.ESTIMATE = { type: 3, value: "ESTIMATE" }; - IfcCostScheduleTypeEnum.PRICEDBILLOFQUANTITIES = { type: 3, value: "PRICEDBILLOFQUANTITIES" }; - IfcCostScheduleTypeEnum.SCHEDULEOFRATES = { type: 3, value: "SCHEDULEOFRATES" }; - IfcCostScheduleTypeEnum.TENDER = { type: 3, value: "TENDER" }; - IfcCostScheduleTypeEnum.UNPRICEDBILLOFQUANTITIES = { type: 3, value: "UNPRICEDBILLOFQUANTITIES" }; - IfcCostScheduleTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCostScheduleTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcCostScheduleTypeEnum = IfcCostScheduleTypeEnum; - class IfcCourseTypeEnum { + IFC4X32.IfcProcess = IfcProcess; + class IfcProduct extends IfcObject { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.type = 4208778838; + } } - IfcCourseTypeEnum.ARMOUR = { type: 3, value: "ARMOUR" }; - IfcCourseTypeEnum.BALLASTBED = { type: 3, value: "BALLASTBED" }; - IfcCourseTypeEnum.CORE = { type: 3, value: "CORE" }; - IfcCourseTypeEnum.FILTER = { type: 3, value: "FILTER" }; - IfcCourseTypeEnum.PAVEMENT = { type: 3, value: "PAVEMENT" }; - IfcCourseTypeEnum.PROTECTION = { type: 3, value: "PROTECTION" }; - IfcCourseTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCourseTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcCourseTypeEnum = IfcCourseTypeEnum; - class IfcCoveringTypeEnum { + IFC4X32.IfcProduct = IfcProduct; + class IfcProject extends IfcContext { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.LongName = LongName; + this.Phase = Phase; + this.RepresentationContexts = RepresentationContexts; + this.UnitsInContext = UnitsInContext; + this.type = 103090709; + } } - IfcCoveringTypeEnum.CEILING = { type: 3, value: "CEILING" }; - IfcCoveringTypeEnum.CLADDING = { type: 3, value: "CLADDING" }; - IfcCoveringTypeEnum.COPING = { type: 3, value: "COPING" }; - IfcCoveringTypeEnum.FLOORING = { type: 3, value: "FLOORING" }; - IfcCoveringTypeEnum.INSULATION = { type: 3, value: "INSULATION" }; - IfcCoveringTypeEnum.MEMBRANE = { type: 3, value: "MEMBRANE" }; - IfcCoveringTypeEnum.MOLDING = { type: 3, value: "MOLDING" }; - IfcCoveringTypeEnum.ROOFING = { type: 3, value: "ROOFING" }; - IfcCoveringTypeEnum.SKIRTINGBOARD = { type: 3, value: "SKIRTINGBOARD" }; - IfcCoveringTypeEnum.SLEEVING = { type: 3, value: "SLEEVING" }; - IfcCoveringTypeEnum.TOPPING = { type: 3, value: "TOPPING" }; - IfcCoveringTypeEnum.WRAPPING = { type: 3, value: "WRAPPING" }; - IfcCoveringTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCoveringTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcCoveringTypeEnum = IfcCoveringTypeEnum; - class IfcCrewResourceTypeEnum { + IFC4X32.IfcProject = IfcProject; + class IfcProjectLibrary extends IfcContext { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.LongName = LongName; + this.Phase = Phase; + this.RepresentationContexts = RepresentationContexts; + this.UnitsInContext = UnitsInContext; + this.type = 653396225; + } } - IfcCrewResourceTypeEnum.OFFICE = { type: 3, value: "OFFICE" }; - IfcCrewResourceTypeEnum.SITE = { type: 3, value: "SITE" }; - IfcCrewResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCrewResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcCrewResourceTypeEnum = IfcCrewResourceTypeEnum; - class IfcCurtainWallTypeEnum { + IFC4X32.IfcProjectLibrary = IfcProjectLibrary; + class IfcPropertyBoundedValue extends IfcSimpleProperty { + constructor(Name, Specification, UpperBoundValue, LowerBoundValue, Unit, SetPointValue) { + super(Name, Specification); + this.Name = Name; + this.Specification = Specification; + this.UpperBoundValue = UpperBoundValue; + this.LowerBoundValue = LowerBoundValue; + this.Unit = Unit; + this.SetPointValue = SetPointValue; + this.type = 871118103; + } } - IfcCurtainWallTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCurtainWallTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcCurtainWallTypeEnum = IfcCurtainWallTypeEnum; - class IfcCurveInterpolationEnum { + IFC4X32.IfcPropertyBoundedValue = IfcPropertyBoundedValue; + class IfcPropertyEnumeratedValue extends IfcSimpleProperty { + constructor(Name, Specification, EnumerationValues, EnumerationReference) { + super(Name, Specification); + this.Name = Name; + this.Specification = Specification; + this.EnumerationValues = EnumerationValues; + this.EnumerationReference = EnumerationReference; + this.type = 4166981789; + } } - IfcCurveInterpolationEnum.LINEAR = { type: 3, value: "LINEAR" }; - IfcCurveInterpolationEnum.LOG_LINEAR = { type: 3, value: "LOG_LINEAR" }; - IfcCurveInterpolationEnum.LOG_LOG = { type: 3, value: "LOG_LOG" }; - IfcCurveInterpolationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcCurveInterpolationEnum = IfcCurveInterpolationEnum; - class IfcDamperTypeEnum { + IFC4X32.IfcPropertyEnumeratedValue = IfcPropertyEnumeratedValue; + class IfcPropertyListValue extends IfcSimpleProperty { + constructor(Name, Specification, ListValues, Unit) { + super(Name, Specification); + this.Name = Name; + this.Specification = Specification; + this.ListValues = ListValues; + this.Unit = Unit; + this.type = 2752243245; + } } - IfcDamperTypeEnum.BACKDRAFTDAMPER = { type: 3, value: "BACKDRAFTDAMPER" }; - IfcDamperTypeEnum.BALANCINGDAMPER = { type: 3, value: "BALANCINGDAMPER" }; - IfcDamperTypeEnum.BLASTDAMPER = { type: 3, value: "BLASTDAMPER" }; - IfcDamperTypeEnum.CONTROLDAMPER = { type: 3, value: "CONTROLDAMPER" }; - IfcDamperTypeEnum.FIREDAMPER = { type: 3, value: "FIREDAMPER" }; - IfcDamperTypeEnum.FIRESMOKEDAMPER = { type: 3, value: "FIRESMOKEDAMPER" }; - IfcDamperTypeEnum.FUMEHOODEXHAUST = { type: 3, value: "FUMEHOODEXHAUST" }; - IfcDamperTypeEnum.GRAVITYDAMPER = { type: 3, value: "GRAVITYDAMPER" }; - IfcDamperTypeEnum.GRAVITYRELIEFDAMPER = { type: 3, value: "GRAVITYRELIEFDAMPER" }; - IfcDamperTypeEnum.RELIEFDAMPER = { type: 3, value: "RELIEFDAMPER" }; - IfcDamperTypeEnum.SMOKEDAMPER = { type: 3, value: "SMOKEDAMPER" }; - IfcDamperTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDamperTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcDamperTypeEnum = IfcDamperTypeEnum; - class IfcDataOriginEnum { + IFC4X32.IfcPropertyListValue = IfcPropertyListValue; + class IfcPropertyReferenceValue extends IfcSimpleProperty { + constructor(Name, Specification, UsageName, PropertyReference) { + super(Name, Specification); + this.Name = Name; + this.Specification = Specification; + this.UsageName = UsageName; + this.PropertyReference = PropertyReference; + this.type = 941946838; + } } - IfcDataOriginEnum.MEASURED = { type: 3, value: "MEASURED" }; - IfcDataOriginEnum.PREDICTED = { type: 3, value: "PREDICTED" }; - IfcDataOriginEnum.SIMULATED = { type: 3, value: "SIMULATED" }; - IfcDataOriginEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDataOriginEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcDataOriginEnum = IfcDataOriginEnum; - class IfcDerivedUnitEnum { + IFC4X32.IfcPropertyReferenceValue = IfcPropertyReferenceValue; + class IfcPropertySet extends IfcPropertySetDefinition { + constructor(GlobalId, OwnerHistory, Name, Description, HasProperties) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.HasProperties = HasProperties; + this.type = 1451395588; + } } - IfcDerivedUnitEnum.ACCELERATIONUNIT = { type: 3, value: "ACCELERATIONUNIT" }; - IfcDerivedUnitEnum.ANGULARVELOCITYUNIT = { type: 3, value: "ANGULARVELOCITYUNIT" }; - IfcDerivedUnitEnum.AREADENSITYUNIT = { type: 3, value: "AREADENSITYUNIT" }; - IfcDerivedUnitEnum.COMPOUNDPLANEANGLEUNIT = { type: 3, value: "COMPOUNDPLANEANGLEUNIT" }; - IfcDerivedUnitEnum.CURVATUREUNIT = { type: 3, value: "CURVATUREUNIT" }; - IfcDerivedUnitEnum.DYNAMICVISCOSITYUNIT = { type: 3, value: "DYNAMICVISCOSITYUNIT" }; - IfcDerivedUnitEnum.HEATFLUXDENSITYUNIT = { type: 3, value: "HEATFLUXDENSITYUNIT" }; - IfcDerivedUnitEnum.HEATINGVALUEUNIT = { type: 3, value: "HEATINGVALUEUNIT" }; - IfcDerivedUnitEnum.INTEGERCOUNTRATEUNIT = { type: 3, value: "INTEGERCOUNTRATEUNIT" }; - IfcDerivedUnitEnum.IONCONCENTRATIONUNIT = { type: 3, value: "IONCONCENTRATIONUNIT" }; - IfcDerivedUnitEnum.ISOTHERMALMOISTURECAPACITYUNIT = { type: 3, value: "ISOTHERMALMOISTURECAPACITYUNIT" }; - IfcDerivedUnitEnum.KINEMATICVISCOSITYUNIT = { type: 3, value: "KINEMATICVISCOSITYUNIT" }; - IfcDerivedUnitEnum.LINEARFORCEUNIT = { type: 3, value: "LINEARFORCEUNIT" }; - IfcDerivedUnitEnum.LINEARMOMENTUNIT = { type: 3, value: "LINEARMOMENTUNIT" }; - IfcDerivedUnitEnum.LINEARSTIFFNESSUNIT = { type: 3, value: "LINEARSTIFFNESSUNIT" }; - IfcDerivedUnitEnum.LINEARVELOCITYUNIT = { type: 3, value: "LINEARVELOCITYUNIT" }; - IfcDerivedUnitEnum.LUMINOUSINTENSITYDISTRIBUTIONUNIT = { type: 3, value: "LUMINOUSINTENSITYDISTRIBUTIONUNIT" }; - IfcDerivedUnitEnum.MASSDENSITYUNIT = { type: 3, value: "MASSDENSITYUNIT" }; - IfcDerivedUnitEnum.MASSFLOWRATEUNIT = { type: 3, value: "MASSFLOWRATEUNIT" }; - IfcDerivedUnitEnum.MASSPERLENGTHUNIT = { type: 3, value: "MASSPERLENGTHUNIT" }; - IfcDerivedUnitEnum.MODULUSOFELASTICITYUNIT = { type: 3, value: "MODULUSOFELASTICITYUNIT" }; - IfcDerivedUnitEnum.MODULUSOFLINEARSUBGRADEREACTIONUNIT = { type: 3, value: "MODULUSOFLINEARSUBGRADEREACTIONUNIT" }; - IfcDerivedUnitEnum.MODULUSOFROTATIONALSUBGRADEREACTIONUNIT = { type: 3, value: "MODULUSOFROTATIONALSUBGRADEREACTIONUNIT" }; - IfcDerivedUnitEnum.MODULUSOFSUBGRADEREACTIONUNIT = { type: 3, value: "MODULUSOFSUBGRADEREACTIONUNIT" }; - IfcDerivedUnitEnum.MOISTUREDIFFUSIVITYUNIT = { type: 3, value: "MOISTUREDIFFUSIVITYUNIT" }; - IfcDerivedUnitEnum.MOLECULARWEIGHTUNIT = { type: 3, value: "MOLECULARWEIGHTUNIT" }; - IfcDerivedUnitEnum.MOMENTOFINERTIAUNIT = { type: 3, value: "MOMENTOFINERTIAUNIT" }; - IfcDerivedUnitEnum.PHUNIT = { type: 3, value: "PHUNIT" }; - IfcDerivedUnitEnum.PLANARFORCEUNIT = { type: 3, value: "PLANARFORCEUNIT" }; - IfcDerivedUnitEnum.ROTATIONALFREQUENCYUNIT = { type: 3, value: "ROTATIONALFREQUENCYUNIT" }; - IfcDerivedUnitEnum.ROTATIONALMASSUNIT = { type: 3, value: "ROTATIONALMASSUNIT" }; - IfcDerivedUnitEnum.ROTATIONALSTIFFNESSUNIT = { type: 3, value: "ROTATIONALSTIFFNESSUNIT" }; - IfcDerivedUnitEnum.SECTIONAREAINTEGRALUNIT = { type: 3, value: "SECTIONAREAINTEGRALUNIT" }; - IfcDerivedUnitEnum.SECTIONMODULUSUNIT = { type: 3, value: "SECTIONMODULUSUNIT" }; - IfcDerivedUnitEnum.SHEARMODULUSUNIT = { type: 3, value: "SHEARMODULUSUNIT" }; - IfcDerivedUnitEnum.SOUNDPOWERLEVELUNIT = { type: 3, value: "SOUNDPOWERLEVELUNIT" }; - IfcDerivedUnitEnum.SOUNDPOWERUNIT = { type: 3, value: "SOUNDPOWERUNIT" }; - IfcDerivedUnitEnum.SOUNDPRESSURELEVELUNIT = { type: 3, value: "SOUNDPRESSURELEVELUNIT" }; - IfcDerivedUnitEnum.SOUNDPRESSUREUNIT = { type: 3, value: "SOUNDPRESSUREUNIT" }; - IfcDerivedUnitEnum.SPECIFICHEATCAPACITYUNIT = { type: 3, value: "SPECIFICHEATCAPACITYUNIT" }; - IfcDerivedUnitEnum.TEMPERATUREGRADIENTUNIT = { type: 3, value: "TEMPERATUREGRADIENTUNIT" }; - IfcDerivedUnitEnum.TEMPERATURERATEOFCHANGEUNIT = { type: 3, value: "TEMPERATURERATEOFCHANGEUNIT" }; - IfcDerivedUnitEnum.THERMALADMITTANCEUNIT = { type: 3, value: "THERMALADMITTANCEUNIT" }; - IfcDerivedUnitEnum.THERMALCONDUCTANCEUNIT = { type: 3, value: "THERMALCONDUCTANCEUNIT" }; - IfcDerivedUnitEnum.THERMALEXPANSIONCOEFFICIENTUNIT = { type: 3, value: "THERMALEXPANSIONCOEFFICIENTUNIT" }; - IfcDerivedUnitEnum.THERMALRESISTANCEUNIT = { type: 3, value: "THERMALRESISTANCEUNIT" }; - IfcDerivedUnitEnum.THERMALTRANSMITTANCEUNIT = { type: 3, value: "THERMALTRANSMITTANCEUNIT" }; - IfcDerivedUnitEnum.TORQUEUNIT = { type: 3, value: "TORQUEUNIT" }; - IfcDerivedUnitEnum.VAPORPERMEABILITYUNIT = { type: 3, value: "VAPORPERMEABILITYUNIT" }; - IfcDerivedUnitEnum.VOLUMETRICFLOWRATEUNIT = { type: 3, value: "VOLUMETRICFLOWRATEUNIT" }; - IfcDerivedUnitEnum.WARPINGCONSTANTUNIT = { type: 3, value: "WARPINGCONSTANTUNIT" }; - IfcDerivedUnitEnum.WARPINGMOMENTUNIT = { type: 3, value: "WARPINGMOMENTUNIT" }; - IfcDerivedUnitEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IFC4X32.IfcDerivedUnitEnum = IfcDerivedUnitEnum; - class IfcDirectionSenseEnum { + IFC4X32.IfcPropertySet = IfcPropertySet; + class IfcPropertySetTemplate extends IfcPropertyTemplateDefinition { + constructor(GlobalId, OwnerHistory, Name, Description, TemplateType, ApplicableEntity, HasPropertyTemplates) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.TemplateType = TemplateType; + this.ApplicableEntity = ApplicableEntity; + this.HasPropertyTemplates = HasPropertyTemplates; + this.type = 492091185; + } } - IfcDirectionSenseEnum.NEGATIVE = { type: 3, value: "NEGATIVE" }; - IfcDirectionSenseEnum.POSITIVE = { type: 3, value: "POSITIVE" }; - IFC4X32.IfcDirectionSenseEnum = IfcDirectionSenseEnum; - class IfcDiscreteAccessoryTypeEnum { + IFC4X32.IfcPropertySetTemplate = IfcPropertySetTemplate; + class IfcPropertySingleValue extends IfcSimpleProperty { + constructor(Name, Specification, NominalValue, Unit) { + super(Name, Specification); + this.Name = Name; + this.Specification = Specification; + this.NominalValue = NominalValue; + this.Unit = Unit; + this.type = 3650150729; + } } - IfcDiscreteAccessoryTypeEnum.ANCHORPLATE = { type: 3, value: "ANCHORPLATE" }; - IfcDiscreteAccessoryTypeEnum.BIRDPROTECTION = { type: 3, value: "BIRDPROTECTION" }; - IfcDiscreteAccessoryTypeEnum.BRACKET = { type: 3, value: "BRACKET" }; - IfcDiscreteAccessoryTypeEnum.CABLEARRANGER = { type: 3, value: "CABLEARRANGER" }; - IfcDiscreteAccessoryTypeEnum.ELASTIC_CUSHION = { type: 3, value: "ELASTIC_CUSHION" }; - IfcDiscreteAccessoryTypeEnum.EXPANSION_JOINT_DEVICE = { type: 3, value: "EXPANSION_JOINT_DEVICE" }; - IfcDiscreteAccessoryTypeEnum.FILLER = { type: 3, value: "FILLER" }; - IfcDiscreteAccessoryTypeEnum.FLASHING = { type: 3, value: "FLASHING" }; - IfcDiscreteAccessoryTypeEnum.INSULATOR = { type: 3, value: "INSULATOR" }; - IfcDiscreteAccessoryTypeEnum.LOCK = { type: 3, value: "LOCK" }; - IfcDiscreteAccessoryTypeEnum.PANEL_STRENGTHENING = { type: 3, value: "PANEL_STRENGTHENING" }; - IfcDiscreteAccessoryTypeEnum.POINTMACHINEMOUNTINGDEVICE = { type: 3, value: "POINTMACHINEMOUNTINGDEVICE" }; - IfcDiscreteAccessoryTypeEnum.POINT_MACHINE_LOCKING_DEVICE = { type: 3, value: "POINT_MACHINE_LOCKING_DEVICE" }; - IfcDiscreteAccessoryTypeEnum.RAILBRACE = { type: 3, value: "RAILBRACE" }; - IfcDiscreteAccessoryTypeEnum.RAILPAD = { type: 3, value: "RAILPAD" }; - IfcDiscreteAccessoryTypeEnum.RAIL_LUBRICATION = { type: 3, value: "RAIL_LUBRICATION" }; - IfcDiscreteAccessoryTypeEnum.RAIL_MECHANICAL_EQUIPMENT = { type: 3, value: "RAIL_MECHANICAL_EQUIPMENT" }; - IfcDiscreteAccessoryTypeEnum.SHOE = { type: 3, value: "SHOE" }; - IfcDiscreteAccessoryTypeEnum.SLIDINGCHAIR = { type: 3, value: "SLIDINGCHAIR" }; - IfcDiscreteAccessoryTypeEnum.SOUNDABSORPTION = { type: 3, value: "SOUNDABSORPTION" }; - IfcDiscreteAccessoryTypeEnum.TENSIONINGEQUIPMENT = { type: 3, value: "TENSIONINGEQUIPMENT" }; - IfcDiscreteAccessoryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDiscreteAccessoryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcDiscreteAccessoryTypeEnum = IfcDiscreteAccessoryTypeEnum; - class IfcDistributionBoardTypeEnum { + IFC4X32.IfcPropertySingleValue = IfcPropertySingleValue; + class IfcPropertyTableValue extends IfcSimpleProperty { + constructor(Name, Specification, DefiningValues, DefinedValues, Expression, DefiningUnit, DefinedUnit, CurveInterpolation) { + super(Name, Specification); + this.Name = Name; + this.Specification = Specification; + this.DefiningValues = DefiningValues; + this.DefinedValues = DefinedValues; + this.Expression = Expression; + this.DefiningUnit = DefiningUnit; + this.DefinedUnit = DefinedUnit; + this.CurveInterpolation = CurveInterpolation; + this.type = 110355661; + } + } + IFC4X32.IfcPropertyTableValue = IfcPropertyTableValue; + class IfcPropertyTemplate extends IfcPropertyTemplateDefinition { + constructor(GlobalId, OwnerHistory, Name, Description) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.type = 3521284610; + } + } + IFC4X32.IfcPropertyTemplate = IfcPropertyTemplate; + class IfcRectangleHollowProfileDef extends IfcRectangleProfileDef { + constructor(ProfileType, ProfileName, Position, XDim, YDim, WallThickness, InnerFilletRadius, OuterFilletRadius) { + super(ProfileType, ProfileName, Position, XDim, YDim); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.XDim = XDim; + this.YDim = YDim; + this.WallThickness = WallThickness; + this.InnerFilletRadius = InnerFilletRadius; + this.OuterFilletRadius = OuterFilletRadius; + this.type = 2770003689; + } + } + IFC4X32.IfcRectangleHollowProfileDef = IfcRectangleHollowProfileDef; + class IfcRectangularPyramid extends IfcCsgPrimitive3D { + constructor(Position, XLength, YLength, Height) { + super(Position); + this.Position = Position; + this.XLength = XLength; + this.YLength = YLength; + this.Height = Height; + this.type = 2798486643; + } } - IfcDistributionBoardTypeEnum.CONSUMERUNIT = { type: 3, value: "CONSUMERUNIT" }; - IfcDistributionBoardTypeEnum.DISPATCHINGBOARD = { type: 3, value: "DISPATCHINGBOARD" }; - IfcDistributionBoardTypeEnum.DISTRIBUTIONBOARD = { type: 3, value: "DISTRIBUTIONBOARD" }; - IfcDistributionBoardTypeEnum.DISTRIBUTIONFRAME = { type: 3, value: "DISTRIBUTIONFRAME" }; - IfcDistributionBoardTypeEnum.MOTORCONTROLCENTRE = { type: 3, value: "MOTORCONTROLCENTRE" }; - IfcDistributionBoardTypeEnum.SWITCHBOARD = { type: 3, value: "SWITCHBOARD" }; - IfcDistributionBoardTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDistributionBoardTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcDistributionBoardTypeEnum = IfcDistributionBoardTypeEnum; - class IfcDistributionChamberElementTypeEnum { + IFC4X32.IfcRectangularPyramid = IfcRectangularPyramid; + class IfcRectangularTrimmedSurface extends IfcBoundedSurface { + constructor(BasisSurface, U1, V1, U2, V2, Usense, Vsense) { + super(); + this.BasisSurface = BasisSurface; + this.U1 = U1; + this.V1 = V1; + this.U2 = U2; + this.V2 = V2; + this.Usense = Usense; + this.Vsense = Vsense; + this.type = 3454111270; + } } - IfcDistributionChamberElementTypeEnum.FORMEDDUCT = { type: 3, value: "FORMEDDUCT" }; - IfcDistributionChamberElementTypeEnum.INSPECTIONCHAMBER = { type: 3, value: "INSPECTIONCHAMBER" }; - IfcDistributionChamberElementTypeEnum.INSPECTIONPIT = { type: 3, value: "INSPECTIONPIT" }; - IfcDistributionChamberElementTypeEnum.MANHOLE = { type: 3, value: "MANHOLE" }; - IfcDistributionChamberElementTypeEnum.METERCHAMBER = { type: 3, value: "METERCHAMBER" }; - IfcDistributionChamberElementTypeEnum.SUMP = { type: 3, value: "SUMP" }; - IfcDistributionChamberElementTypeEnum.TRENCH = { type: 3, value: "TRENCH" }; - IfcDistributionChamberElementTypeEnum.VALVECHAMBER = { type: 3, value: "VALVECHAMBER" }; - IfcDistributionChamberElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDistributionChamberElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcDistributionChamberElementTypeEnum = IfcDistributionChamberElementTypeEnum; - class IfcDistributionPortTypeEnum { + IFC4X32.IfcRectangularTrimmedSurface = IfcRectangularTrimmedSurface; + class IfcReinforcementDefinitionProperties extends IfcPreDefinedPropertySet { + constructor(GlobalId, OwnerHistory, Name, Description, DefinitionType, ReinforcementSectionDefinitions) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.DefinitionType = DefinitionType; + this.ReinforcementSectionDefinitions = ReinforcementSectionDefinitions; + this.type = 3765753017; + } } - IfcDistributionPortTypeEnum.CABLE = { type: 3, value: "CABLE" }; - IfcDistributionPortTypeEnum.CABLECARRIER = { type: 3, value: "CABLECARRIER" }; - IfcDistributionPortTypeEnum.DUCT = { type: 3, value: "DUCT" }; - IfcDistributionPortTypeEnum.PIPE = { type: 3, value: "PIPE" }; - IfcDistributionPortTypeEnum.WIRELESS = { type: 3, value: "WIRELESS" }; - IfcDistributionPortTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDistributionPortTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcDistributionPortTypeEnum = IfcDistributionPortTypeEnum; - class IfcDistributionSystemEnum { + IFC4X32.IfcReinforcementDefinitionProperties = IfcReinforcementDefinitionProperties; + class IfcRelAssigns extends IfcRelationship { + constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatedObjectsType = RelatedObjectsType; + this.type = 3939117080; + } } - IfcDistributionSystemEnum.AIRCONDITIONING = { type: 3, value: "AIRCONDITIONING" }; - IfcDistributionSystemEnum.AUDIOVISUAL = { type: 3, value: "AUDIOVISUAL" }; - IfcDistributionSystemEnum.CATENARY_SYSTEM = { type: 3, value: "CATENARY_SYSTEM" }; - IfcDistributionSystemEnum.CHEMICAL = { type: 3, value: "CHEMICAL" }; - IfcDistributionSystemEnum.CHILLEDWATER = { type: 3, value: "CHILLEDWATER" }; - IfcDistributionSystemEnum.COMMUNICATION = { type: 3, value: "COMMUNICATION" }; - IfcDistributionSystemEnum.COMPRESSEDAIR = { type: 3, value: "COMPRESSEDAIR" }; - IfcDistributionSystemEnum.CONDENSERWATER = { type: 3, value: "CONDENSERWATER" }; - IfcDistributionSystemEnum.CONTROL = { type: 3, value: "CONTROL" }; - IfcDistributionSystemEnum.CONVEYING = { type: 3, value: "CONVEYING" }; - IfcDistributionSystemEnum.DATA = { type: 3, value: "DATA" }; - IfcDistributionSystemEnum.DISPOSAL = { type: 3, value: "DISPOSAL" }; - IfcDistributionSystemEnum.DOMESTICCOLDWATER = { type: 3, value: "DOMESTICCOLDWATER" }; - IfcDistributionSystemEnum.DOMESTICHOTWATER = { type: 3, value: "DOMESTICHOTWATER" }; - IfcDistributionSystemEnum.DRAINAGE = { type: 3, value: "DRAINAGE" }; - IfcDistributionSystemEnum.EARTHING = { type: 3, value: "EARTHING" }; - IfcDistributionSystemEnum.ELECTRICAL = { type: 3, value: "ELECTRICAL" }; - IfcDistributionSystemEnum.ELECTROACOUSTIC = { type: 3, value: "ELECTROACOUSTIC" }; - IfcDistributionSystemEnum.EXHAUST = { type: 3, value: "EXHAUST" }; - IfcDistributionSystemEnum.FIREPROTECTION = { type: 3, value: "FIREPROTECTION" }; - IfcDistributionSystemEnum.FIXEDTRANSMISSIONNETWORK = { type: 3, value: "FIXEDTRANSMISSIONNETWORK" }; - IfcDistributionSystemEnum.FUEL = { type: 3, value: "FUEL" }; - IfcDistributionSystemEnum.GAS = { type: 3, value: "GAS" }; - IfcDistributionSystemEnum.HAZARDOUS = { type: 3, value: "HAZARDOUS" }; - IfcDistributionSystemEnum.HEATING = { type: 3, value: "HEATING" }; - IfcDistributionSystemEnum.LIGHTING = { type: 3, value: "LIGHTING" }; - IfcDistributionSystemEnum.LIGHTNINGPROTECTION = { type: 3, value: "LIGHTNINGPROTECTION" }; - IfcDistributionSystemEnum.MOBILENETWORK = { type: 3, value: "MOBILENETWORK" }; - IfcDistributionSystemEnum.MONITORINGSYSTEM = { type: 3, value: "MONITORINGSYSTEM" }; - IfcDistributionSystemEnum.MUNICIPALSOLIDWASTE = { type: 3, value: "MUNICIPALSOLIDWASTE" }; - IfcDistributionSystemEnum.OIL = { type: 3, value: "OIL" }; - IfcDistributionSystemEnum.OPERATIONAL = { type: 3, value: "OPERATIONAL" }; - IfcDistributionSystemEnum.OPERATIONALTELEPHONYSYSTEM = { type: 3, value: "OPERATIONALTELEPHONYSYSTEM" }; - IfcDistributionSystemEnum.OVERHEAD_CONTACTLINE_SYSTEM = { type: 3, value: "OVERHEAD_CONTACTLINE_SYSTEM" }; - IfcDistributionSystemEnum.POWERGENERATION = { type: 3, value: "POWERGENERATION" }; - IfcDistributionSystemEnum.RAINWATER = { type: 3, value: "RAINWATER" }; - IfcDistributionSystemEnum.REFRIGERATION = { type: 3, value: "REFRIGERATION" }; - IfcDistributionSystemEnum.RETURN_CIRCUIT = { type: 3, value: "RETURN_CIRCUIT" }; - IfcDistributionSystemEnum.SECURITY = { type: 3, value: "SECURITY" }; - IfcDistributionSystemEnum.SEWAGE = { type: 3, value: "SEWAGE" }; - IfcDistributionSystemEnum.SIGNAL = { type: 3, value: "SIGNAL" }; - IfcDistributionSystemEnum.STORMWATER = { type: 3, value: "STORMWATER" }; - IfcDistributionSystemEnum.TELEPHONE = { type: 3, value: "TELEPHONE" }; - IfcDistributionSystemEnum.TV = { type: 3, value: "TV" }; - IfcDistributionSystemEnum.VACUUM = { type: 3, value: "VACUUM" }; - IfcDistributionSystemEnum.VENT = { type: 3, value: "VENT" }; - IfcDistributionSystemEnum.VENTILATION = { type: 3, value: "VENTILATION" }; - IfcDistributionSystemEnum.WASTEWATER = { type: 3, value: "WASTEWATER" }; - IfcDistributionSystemEnum.WATERSUPPLY = { type: 3, value: "WATERSUPPLY" }; - IfcDistributionSystemEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDistributionSystemEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcDistributionSystemEnum = IfcDistributionSystemEnum; - class IfcDocumentConfidentialityEnum { + IFC4X32.IfcRelAssigns = IfcRelAssigns; + class IfcRelAssignsToActor extends IfcRelAssigns { + constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingActor, ActingRole) { + super(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatedObjectsType = RelatedObjectsType; + this.RelatingActor = RelatingActor; + this.ActingRole = ActingRole; + this.type = 1683148259; + } } - IfcDocumentConfidentialityEnum.CONFIDENTIAL = { type: 3, value: "CONFIDENTIAL" }; - IfcDocumentConfidentialityEnum.PERSONAL = { type: 3, value: "PERSONAL" }; - IfcDocumentConfidentialityEnum.PUBLIC = { type: 3, value: "PUBLIC" }; - IfcDocumentConfidentialityEnum.RESTRICTED = { type: 3, value: "RESTRICTED" }; - IfcDocumentConfidentialityEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDocumentConfidentialityEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcDocumentConfidentialityEnum = IfcDocumentConfidentialityEnum; - class IfcDocumentStatusEnum { + IFC4X32.IfcRelAssignsToActor = IfcRelAssignsToActor; + class IfcRelAssignsToControl extends IfcRelAssigns { + constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl) { + super(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatedObjectsType = RelatedObjectsType; + this.RelatingControl = RelatingControl; + this.type = 2495723537; + } } - IfcDocumentStatusEnum.DRAFT = { type: 3, value: "DRAFT" }; - IfcDocumentStatusEnum.FINAL = { type: 3, value: "FINAL" }; - IfcDocumentStatusEnum.FINALDRAFT = { type: 3, value: "FINALDRAFT" }; - IfcDocumentStatusEnum.REVISION = { type: 3, value: "REVISION" }; - IfcDocumentStatusEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcDocumentStatusEnum = IfcDocumentStatusEnum; - class IfcDoorPanelOperationEnum { + IFC4X32.IfcRelAssignsToControl = IfcRelAssignsToControl; + class IfcRelAssignsToGroup extends IfcRelAssigns { + constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingGroup) { + super(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatedObjectsType = RelatedObjectsType; + this.RelatingGroup = RelatingGroup; + this.type = 1307041759; + } } - IfcDoorPanelOperationEnum.DOUBLE_ACTING = { type: 3, value: "DOUBLE_ACTING" }; - IfcDoorPanelOperationEnum.FIXEDPANEL = { type: 3, value: "FIXEDPANEL" }; - IfcDoorPanelOperationEnum.FOLDING = { type: 3, value: "FOLDING" }; - IfcDoorPanelOperationEnum.REVOLVING = { type: 3, value: "REVOLVING" }; - IfcDoorPanelOperationEnum.ROLLINGUP = { type: 3, value: "ROLLINGUP" }; - IfcDoorPanelOperationEnum.SLIDING = { type: 3, value: "SLIDING" }; - IfcDoorPanelOperationEnum.SWINGING = { type: 3, value: "SWINGING" }; - IfcDoorPanelOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDoorPanelOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcDoorPanelOperationEnum = IfcDoorPanelOperationEnum; - class IfcDoorPanelPositionEnum { + IFC4X32.IfcRelAssignsToGroup = IfcRelAssignsToGroup; + class IfcRelAssignsToGroupByFactor extends IfcRelAssignsToGroup { + constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingGroup, Factor) { + super(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingGroup); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatedObjectsType = RelatedObjectsType; + this.RelatingGroup = RelatingGroup; + this.Factor = Factor; + this.type = 1027710054; + } } - IfcDoorPanelPositionEnum.LEFT = { type: 3, value: "LEFT" }; - IfcDoorPanelPositionEnum.MIDDLE = { type: 3, value: "MIDDLE" }; - IfcDoorPanelPositionEnum.RIGHT = { type: 3, value: "RIGHT" }; - IfcDoorPanelPositionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcDoorPanelPositionEnum = IfcDoorPanelPositionEnum; - class IfcDoorStyleConstructionEnum { + IFC4X32.IfcRelAssignsToGroupByFactor = IfcRelAssignsToGroupByFactor; + class IfcRelAssignsToProcess extends IfcRelAssigns { + constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingProcess, QuantityInProcess) { + super(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatedObjectsType = RelatedObjectsType; + this.RelatingProcess = RelatingProcess; + this.QuantityInProcess = QuantityInProcess; + this.type = 4278684876; + } } - IfcDoorStyleConstructionEnum.ALUMINIUM = { type: 3, value: "ALUMINIUM" }; - IfcDoorStyleConstructionEnum.ALUMINIUM_PLASTIC = { type: 3, value: "ALUMINIUM_PLASTIC" }; - IfcDoorStyleConstructionEnum.ALUMINIUM_WOOD = { type: 3, value: "ALUMINIUM_WOOD" }; - IfcDoorStyleConstructionEnum.HIGH_GRADE_STEEL = { type: 3, value: "HIGH_GRADE_STEEL" }; - IfcDoorStyleConstructionEnum.PLASTIC = { type: 3, value: "PLASTIC" }; - IfcDoorStyleConstructionEnum.STEEL = { type: 3, value: "STEEL" }; - IfcDoorStyleConstructionEnum.WOOD = { type: 3, value: "WOOD" }; - IfcDoorStyleConstructionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDoorStyleConstructionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcDoorStyleConstructionEnum = IfcDoorStyleConstructionEnum; - class IfcDoorStyleOperationEnum { + IFC4X32.IfcRelAssignsToProcess = IfcRelAssignsToProcess; + class IfcRelAssignsToProduct extends IfcRelAssigns { + constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingProduct) { + super(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatedObjectsType = RelatedObjectsType; + this.RelatingProduct = RelatingProduct; + this.type = 2857406711; + } } - IfcDoorStyleOperationEnum.DOUBLE_DOOR_DOUBLE_SWING = { type: 3, value: "DOUBLE_DOOR_DOUBLE_SWING" }; - IfcDoorStyleOperationEnum.DOUBLE_DOOR_FOLDING = { type: 3, value: "DOUBLE_DOOR_FOLDING" }; - IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING" }; - IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT" }; - IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT" }; - IfcDoorStyleOperationEnum.DOUBLE_DOOR_SLIDING = { type: 3, value: "DOUBLE_DOOR_SLIDING" }; - IfcDoorStyleOperationEnum.DOUBLE_SWING_LEFT = { type: 3, value: "DOUBLE_SWING_LEFT" }; - IfcDoorStyleOperationEnum.DOUBLE_SWING_RIGHT = { type: 3, value: "DOUBLE_SWING_RIGHT" }; - IfcDoorStyleOperationEnum.FOLDING_TO_LEFT = { type: 3, value: "FOLDING_TO_LEFT" }; - IfcDoorStyleOperationEnum.FOLDING_TO_RIGHT = { type: 3, value: "FOLDING_TO_RIGHT" }; - IfcDoorStyleOperationEnum.REVOLVING = { type: 3, value: "REVOLVING" }; - IfcDoorStyleOperationEnum.ROLLINGUP = { type: 3, value: "ROLLINGUP" }; - IfcDoorStyleOperationEnum.SINGLE_SWING_LEFT = { type: 3, value: "SINGLE_SWING_LEFT" }; - IfcDoorStyleOperationEnum.SINGLE_SWING_RIGHT = { type: 3, value: "SINGLE_SWING_RIGHT" }; - IfcDoorStyleOperationEnum.SLIDING_TO_LEFT = { type: 3, value: "SLIDING_TO_LEFT" }; - IfcDoorStyleOperationEnum.SLIDING_TO_RIGHT = { type: 3, value: "SLIDING_TO_RIGHT" }; - IfcDoorStyleOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDoorStyleOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcDoorStyleOperationEnum = IfcDoorStyleOperationEnum; - class IfcDoorTypeEnum { + IFC4X32.IfcRelAssignsToProduct = IfcRelAssignsToProduct; + class IfcRelAssignsToResource extends IfcRelAssigns { + constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingResource) { + super(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatedObjectsType = RelatedObjectsType; + this.RelatingResource = RelatingResource; + this.type = 205026976; + } } - IfcDoorTypeEnum.BOOM_BARRIER = { type: 3, value: "BOOM_BARRIER" }; - IfcDoorTypeEnum.DOOR = { type: 3, value: "DOOR" }; - IfcDoorTypeEnum.GATE = { type: 3, value: "GATE" }; - IfcDoorTypeEnum.TRAPDOOR = { type: 3, value: "TRAPDOOR" }; - IfcDoorTypeEnum.TURNSTILE = { type: 3, value: "TURNSTILE" }; - IfcDoorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDoorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcDoorTypeEnum = IfcDoorTypeEnum; - class IfcDoorTypeOperationEnum { + IFC4X32.IfcRelAssignsToResource = IfcRelAssignsToResource; + class IfcRelAssociates extends IfcRelationship { + constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.type = 1865459582; + } } - IfcDoorTypeOperationEnum.DOUBLE_PANEL_DOUBLE_SWING = { type: 3, value: "DOUBLE_PANEL_DOUBLE_SWING" }; - IfcDoorTypeOperationEnum.DOUBLE_PANEL_FOLDING = { type: 3, value: "DOUBLE_PANEL_FOLDING" }; - IfcDoorTypeOperationEnum.DOUBLE_PANEL_LIFTING_VERTICAL = { type: 3, value: "DOUBLE_PANEL_LIFTING_VERTICAL" }; - IfcDoorTypeOperationEnum.DOUBLE_PANEL_SINGLE_SWING = { type: 3, value: "DOUBLE_PANEL_SINGLE_SWING" }; - IfcDoorTypeOperationEnum.DOUBLE_PANEL_SINGLE_SWING_OPPOSITE_LEFT = { type: 3, value: "DOUBLE_PANEL_SINGLE_SWING_OPPOSITE_LEFT" }; - IfcDoorTypeOperationEnum.DOUBLE_PANEL_SINGLE_SWING_OPPOSITE_RIGHT = { type: 3, value: "DOUBLE_PANEL_SINGLE_SWING_OPPOSITE_RIGHT" }; - IfcDoorTypeOperationEnum.DOUBLE_PANEL_SLIDING = { type: 3, value: "DOUBLE_PANEL_SLIDING" }; - IfcDoorTypeOperationEnum.DOUBLE_SWING_LEFT = { type: 3, value: "DOUBLE_SWING_LEFT" }; - IfcDoorTypeOperationEnum.DOUBLE_SWING_RIGHT = { type: 3, value: "DOUBLE_SWING_RIGHT" }; - IfcDoorTypeOperationEnum.FOLDING_TO_LEFT = { type: 3, value: "FOLDING_TO_LEFT" }; - IfcDoorTypeOperationEnum.FOLDING_TO_RIGHT = { type: 3, value: "FOLDING_TO_RIGHT" }; - IfcDoorTypeOperationEnum.LIFTING_HORIZONTAL = { type: 3, value: "LIFTING_HORIZONTAL" }; - IfcDoorTypeOperationEnum.LIFTING_VERTICAL_LEFT = { type: 3, value: "LIFTING_VERTICAL_LEFT" }; - IfcDoorTypeOperationEnum.LIFTING_VERTICAL_RIGHT = { type: 3, value: "LIFTING_VERTICAL_RIGHT" }; - IfcDoorTypeOperationEnum.REVOLVING_HORIZONTAL = { type: 3, value: "REVOLVING_HORIZONTAL" }; - IfcDoorTypeOperationEnum.REVOLVING_VERTICAL = { type: 3, value: "REVOLVING_VERTICAL" }; - IfcDoorTypeOperationEnum.ROLLINGUP = { type: 3, value: "ROLLINGUP" }; - IfcDoorTypeOperationEnum.SINGLE_SWING_LEFT = { type: 3, value: "SINGLE_SWING_LEFT" }; - IfcDoorTypeOperationEnum.SINGLE_SWING_RIGHT = { type: 3, value: "SINGLE_SWING_RIGHT" }; - IfcDoorTypeOperationEnum.SLIDING_TO_LEFT = { type: 3, value: "SLIDING_TO_LEFT" }; - IfcDoorTypeOperationEnum.SLIDING_TO_RIGHT = { type: 3, value: "SLIDING_TO_RIGHT" }; - IfcDoorTypeOperationEnum.SWING_FIXED_LEFT = { type: 3, value: "SWING_FIXED_LEFT" }; - IfcDoorTypeOperationEnum.SWING_FIXED_RIGHT = { type: 3, value: "SWING_FIXED_RIGHT" }; - IfcDoorTypeOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDoorTypeOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcDoorTypeOperationEnum = IfcDoorTypeOperationEnum; - class IfcDuctFittingTypeEnum { + IFC4X32.IfcRelAssociates = IfcRelAssociates; + class IfcRelAssociatesApproval extends IfcRelAssociates { + constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingApproval) { + super(GlobalId, OwnerHistory, Name, Description, RelatedObjects); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatingApproval = RelatingApproval; + this.type = 4095574036; + } } - IfcDuctFittingTypeEnum.BEND = { type: 3, value: "BEND" }; - IfcDuctFittingTypeEnum.CONNECTOR = { type: 3, value: "CONNECTOR" }; - IfcDuctFittingTypeEnum.ENTRY = { type: 3, value: "ENTRY" }; - IfcDuctFittingTypeEnum.EXIT = { type: 3, value: "EXIT" }; - IfcDuctFittingTypeEnum.JUNCTION = { type: 3, value: "JUNCTION" }; - IfcDuctFittingTypeEnum.OBSTRUCTION = { type: 3, value: "OBSTRUCTION" }; - IfcDuctFittingTypeEnum.TRANSITION = { type: 3, value: "TRANSITION" }; - IfcDuctFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDuctFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcDuctFittingTypeEnum = IfcDuctFittingTypeEnum; - class IfcDuctSegmentTypeEnum { + IFC4X32.IfcRelAssociatesApproval = IfcRelAssociatesApproval; + class IfcRelAssociatesClassification extends IfcRelAssociates { + constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingClassification) { + super(GlobalId, OwnerHistory, Name, Description, RelatedObjects); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatingClassification = RelatingClassification; + this.type = 919958153; + } } - IfcDuctSegmentTypeEnum.FLEXIBLESEGMENT = { type: 3, value: "FLEXIBLESEGMENT" }; - IfcDuctSegmentTypeEnum.RIGIDSEGMENT = { type: 3, value: "RIGIDSEGMENT" }; - IfcDuctSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDuctSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcDuctSegmentTypeEnum = IfcDuctSegmentTypeEnum; - class IfcDuctSilencerTypeEnum { + IFC4X32.IfcRelAssociatesClassification = IfcRelAssociatesClassification; + class IfcRelAssociatesConstraint extends IfcRelAssociates { + constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, Intent, RelatingConstraint) { + super(GlobalId, OwnerHistory, Name, Description, RelatedObjects); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.Intent = Intent; + this.RelatingConstraint = RelatingConstraint; + this.type = 2728634034; + } } - IfcDuctSilencerTypeEnum.FLATOVAL = { type: 3, value: "FLATOVAL" }; - IfcDuctSilencerTypeEnum.RECTANGULAR = { type: 3, value: "RECTANGULAR" }; - IfcDuctSilencerTypeEnum.ROUND = { type: 3, value: "ROUND" }; - IfcDuctSilencerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDuctSilencerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcDuctSilencerTypeEnum = IfcDuctSilencerTypeEnum; - class IfcEarthworksCutTypeEnum { + IFC4X32.IfcRelAssociatesConstraint = IfcRelAssociatesConstraint; + class IfcRelAssociatesDocument extends IfcRelAssociates { + constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingDocument) { + super(GlobalId, OwnerHistory, Name, Description, RelatedObjects); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatingDocument = RelatingDocument; + this.type = 982818633; + } } - IfcEarthworksCutTypeEnum.BASE_EXCAVATION = { type: 3, value: "BASE_EXCAVATION" }; - IfcEarthworksCutTypeEnum.CUT = { type: 3, value: "CUT" }; - IfcEarthworksCutTypeEnum.DREDGING = { type: 3, value: "DREDGING" }; - IfcEarthworksCutTypeEnum.EXCAVATION = { type: 3, value: "EXCAVATION" }; - IfcEarthworksCutTypeEnum.OVEREXCAVATION = { type: 3, value: "OVEREXCAVATION" }; - IfcEarthworksCutTypeEnum.PAVEMENTMILLING = { type: 3, value: "PAVEMENTMILLING" }; - IfcEarthworksCutTypeEnum.STEPEXCAVATION = { type: 3, value: "STEPEXCAVATION" }; - IfcEarthworksCutTypeEnum.TOPSOILREMOVAL = { type: 3, value: "TOPSOILREMOVAL" }; - IfcEarthworksCutTypeEnum.TRENCH = { type: 3, value: "TRENCH" }; - IfcEarthworksCutTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcEarthworksCutTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcEarthworksCutTypeEnum = IfcEarthworksCutTypeEnum; - class IfcEarthworksFillTypeEnum { + IFC4X32.IfcRelAssociatesDocument = IfcRelAssociatesDocument; + class IfcRelAssociatesLibrary extends IfcRelAssociates { + constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingLibrary) { + super(GlobalId, OwnerHistory, Name, Description, RelatedObjects); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatingLibrary = RelatingLibrary; + this.type = 3840914261; + } } - IfcEarthworksFillTypeEnum.BACKFILL = { type: 3, value: "BACKFILL" }; - IfcEarthworksFillTypeEnum.COUNTERWEIGHT = { type: 3, value: "COUNTERWEIGHT" }; - IfcEarthworksFillTypeEnum.EMBANKMENT = { type: 3, value: "EMBANKMENT" }; - IfcEarthworksFillTypeEnum.SLOPEFILL = { type: 3, value: "SLOPEFILL" }; - IfcEarthworksFillTypeEnum.SUBGRADE = { type: 3, value: "SUBGRADE" }; - IfcEarthworksFillTypeEnum.SUBGRADEBED = { type: 3, value: "SUBGRADEBED" }; - IfcEarthworksFillTypeEnum.TRANSITIONSECTION = { type: 3, value: "TRANSITIONSECTION" }; - IfcEarthworksFillTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcEarthworksFillTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcEarthworksFillTypeEnum = IfcEarthworksFillTypeEnum; - class IfcElectricApplianceTypeEnum { + IFC4X32.IfcRelAssociatesLibrary = IfcRelAssociatesLibrary; + class IfcRelAssociatesMaterial extends IfcRelAssociates { + constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingMaterial) { + super(GlobalId, OwnerHistory, Name, Description, RelatedObjects); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatingMaterial = RelatingMaterial; + this.type = 2655215786; + } } - IfcElectricApplianceTypeEnum.DISHWASHER = { type: 3, value: "DISHWASHER" }; - IfcElectricApplianceTypeEnum.ELECTRICCOOKER = { type: 3, value: "ELECTRICCOOKER" }; - IfcElectricApplianceTypeEnum.FREESTANDINGELECTRICHEATER = { type: 3, value: "FREESTANDINGELECTRICHEATER" }; - IfcElectricApplianceTypeEnum.FREESTANDINGFAN = { type: 3, value: "FREESTANDINGFAN" }; - IfcElectricApplianceTypeEnum.FREESTANDINGWATERCOOLER = { type: 3, value: "FREESTANDINGWATERCOOLER" }; - IfcElectricApplianceTypeEnum.FREESTANDINGWATERHEATER = { type: 3, value: "FREESTANDINGWATERHEATER" }; - IfcElectricApplianceTypeEnum.FREEZER = { type: 3, value: "FREEZER" }; - IfcElectricApplianceTypeEnum.FRIDGE_FREEZER = { type: 3, value: "FRIDGE_FREEZER" }; - IfcElectricApplianceTypeEnum.HANDDRYER = { type: 3, value: "HANDDRYER" }; - IfcElectricApplianceTypeEnum.KITCHENMACHINE = { type: 3, value: "KITCHENMACHINE" }; - IfcElectricApplianceTypeEnum.MICROWAVE = { type: 3, value: "MICROWAVE" }; - IfcElectricApplianceTypeEnum.PHOTOCOPIER = { type: 3, value: "PHOTOCOPIER" }; - IfcElectricApplianceTypeEnum.REFRIGERATOR = { type: 3, value: "REFRIGERATOR" }; - IfcElectricApplianceTypeEnum.TUMBLEDRYER = { type: 3, value: "TUMBLEDRYER" }; - IfcElectricApplianceTypeEnum.VENDINGMACHINE = { type: 3, value: "VENDINGMACHINE" }; - IfcElectricApplianceTypeEnum.WASHINGMACHINE = { type: 3, value: "WASHINGMACHINE" }; - IfcElectricApplianceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcElectricApplianceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcElectricApplianceTypeEnum = IfcElectricApplianceTypeEnum; - class IfcElectricDistributionBoardTypeEnum { + IFC4X32.IfcRelAssociatesMaterial = IfcRelAssociatesMaterial; + class IfcRelAssociatesProfileDef extends IfcRelAssociates { + constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingProfileDef) { + super(GlobalId, OwnerHistory, Name, Description, RelatedObjects); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatingProfileDef = RelatingProfileDef; + this.type = 1033248425; + } } - IfcElectricDistributionBoardTypeEnum.CONSUMERUNIT = { type: 3, value: "CONSUMERUNIT" }; - IfcElectricDistributionBoardTypeEnum.DISTRIBUTIONBOARD = { type: 3, value: "DISTRIBUTIONBOARD" }; - IfcElectricDistributionBoardTypeEnum.MOTORCONTROLCENTRE = { type: 3, value: "MOTORCONTROLCENTRE" }; - IfcElectricDistributionBoardTypeEnum.SWITCHBOARD = { type: 3, value: "SWITCHBOARD" }; - IfcElectricDistributionBoardTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcElectricDistributionBoardTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcElectricDistributionBoardTypeEnum = IfcElectricDistributionBoardTypeEnum; - class IfcElectricFlowStorageDeviceTypeEnum { + IFC4X32.IfcRelAssociatesProfileDef = IfcRelAssociatesProfileDef; + class IfcRelConnects extends IfcRelationship { + constructor(GlobalId, OwnerHistory, Name, Description) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.type = 826625072; + } } - IfcElectricFlowStorageDeviceTypeEnum.BATTERY = { type: 3, value: "BATTERY" }; - IfcElectricFlowStorageDeviceTypeEnum.CAPACITOR = { type: 3, value: "CAPACITOR" }; - IfcElectricFlowStorageDeviceTypeEnum.CAPACITORBANK = { type: 3, value: "CAPACITORBANK" }; - IfcElectricFlowStorageDeviceTypeEnum.COMPENSATOR = { type: 3, value: "COMPENSATOR" }; - IfcElectricFlowStorageDeviceTypeEnum.HARMONICFILTER = { type: 3, value: "HARMONICFILTER" }; - IfcElectricFlowStorageDeviceTypeEnum.INDUCTOR = { type: 3, value: "INDUCTOR" }; - IfcElectricFlowStorageDeviceTypeEnum.INDUCTORBANK = { type: 3, value: "INDUCTORBANK" }; - IfcElectricFlowStorageDeviceTypeEnum.RECHARGER = { type: 3, value: "RECHARGER" }; - IfcElectricFlowStorageDeviceTypeEnum.UPS = { type: 3, value: "UPS" }; - IfcElectricFlowStorageDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcElectricFlowStorageDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcElectricFlowStorageDeviceTypeEnum = IfcElectricFlowStorageDeviceTypeEnum; - class IfcElectricFlowTreatmentDeviceTypeEnum { + IFC4X32.IfcRelConnects = IfcRelConnects; + class IfcRelConnectsElements extends IfcRelConnects { + constructor(GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ConnectionGeometry = ConnectionGeometry; + this.RelatingElement = RelatingElement; + this.RelatedElement = RelatedElement; + this.type = 1204542856; + } } - IfcElectricFlowTreatmentDeviceTypeEnum.ELECTRONICFILTER = { type: 3, value: "ELECTRONICFILTER" }; - IfcElectricFlowTreatmentDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcElectricFlowTreatmentDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcElectricFlowTreatmentDeviceTypeEnum = IfcElectricFlowTreatmentDeviceTypeEnum; - class IfcElectricGeneratorTypeEnum { + IFC4X32.IfcRelConnectsElements = IfcRelConnectsElements; + class IfcRelConnectsPathElements extends IfcRelConnectsElements { + constructor(GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement, RelatingPriorities, RelatedPriorities, RelatedConnectionType, RelatingConnectionType) { + super(GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ConnectionGeometry = ConnectionGeometry; + this.RelatingElement = RelatingElement; + this.RelatedElement = RelatedElement; + this.RelatingPriorities = RelatingPriorities; + this.RelatedPriorities = RelatedPriorities; + this.RelatedConnectionType = RelatedConnectionType; + this.RelatingConnectionType = RelatingConnectionType; + this.type = 3945020480; + } + } + IFC4X32.IfcRelConnectsPathElements = IfcRelConnectsPathElements; + class IfcRelConnectsPortToElement extends IfcRelConnects { + constructor(GlobalId, OwnerHistory, Name, Description, RelatingPort, RelatedElement) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingPort = RelatingPort; + this.RelatedElement = RelatedElement; + this.type = 4201705270; + } } - IfcElectricGeneratorTypeEnum.CHP = { type: 3, value: "CHP" }; - IfcElectricGeneratorTypeEnum.ENGINEGENERATOR = { type: 3, value: "ENGINEGENERATOR" }; - IfcElectricGeneratorTypeEnum.STANDALONE = { type: 3, value: "STANDALONE" }; - IfcElectricGeneratorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcElectricGeneratorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcElectricGeneratorTypeEnum = IfcElectricGeneratorTypeEnum; - class IfcElectricMotorTypeEnum { + IFC4X32.IfcRelConnectsPortToElement = IfcRelConnectsPortToElement; + class IfcRelConnectsPorts extends IfcRelConnects { + constructor(GlobalId, OwnerHistory, Name, Description, RelatingPort, RelatedPort, RealizingElement) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingPort = RelatingPort; + this.RelatedPort = RelatedPort; + this.RealizingElement = RealizingElement; + this.type = 3190031847; + } } - IfcElectricMotorTypeEnum.DC = { type: 3, value: "DC" }; - IfcElectricMotorTypeEnum.INDUCTION = { type: 3, value: "INDUCTION" }; - IfcElectricMotorTypeEnum.POLYPHASE = { type: 3, value: "POLYPHASE" }; - IfcElectricMotorTypeEnum.RELUCTANCESYNCHRONOUS = { type: 3, value: "RELUCTANCESYNCHRONOUS" }; - IfcElectricMotorTypeEnum.SYNCHRONOUS = { type: 3, value: "SYNCHRONOUS" }; - IfcElectricMotorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcElectricMotorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcElectricMotorTypeEnum = IfcElectricMotorTypeEnum; - class IfcElectricTimeControlTypeEnum { + IFC4X32.IfcRelConnectsPorts = IfcRelConnectsPorts; + class IfcRelConnectsStructuralActivity extends IfcRelConnects { + constructor(GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedStructuralActivity) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingElement = RelatingElement; + this.RelatedStructuralActivity = RelatedStructuralActivity; + this.type = 2127690289; + } } - IfcElectricTimeControlTypeEnum.RELAY = { type: 3, value: "RELAY" }; - IfcElectricTimeControlTypeEnum.TIMECLOCK = { type: 3, value: "TIMECLOCK" }; - IfcElectricTimeControlTypeEnum.TIMEDELAY = { type: 3, value: "TIMEDELAY" }; - IfcElectricTimeControlTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcElectricTimeControlTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcElectricTimeControlTypeEnum = IfcElectricTimeControlTypeEnum; - class IfcElementAssemblyTypeEnum { + IFC4X32.IfcRelConnectsStructuralActivity = IfcRelConnectsStructuralActivity; + class IfcRelConnectsStructuralMember extends IfcRelConnects { + constructor(GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingStructuralMember = RelatingStructuralMember; + this.RelatedStructuralConnection = RelatedStructuralConnection; + this.AppliedCondition = AppliedCondition; + this.AdditionalConditions = AdditionalConditions; + this.SupportedLength = SupportedLength; + this.ConditionCoordinateSystem = ConditionCoordinateSystem; + this.type = 1638771189; + } } - IfcElementAssemblyTypeEnum.ABUTMENT = { type: 3, value: "ABUTMENT" }; - IfcElementAssemblyTypeEnum.ACCESSORY_ASSEMBLY = { type: 3, value: "ACCESSORY_ASSEMBLY" }; - IfcElementAssemblyTypeEnum.ARCH = { type: 3, value: "ARCH" }; - IfcElementAssemblyTypeEnum.BEAM_GRID = { type: 3, value: "BEAM_GRID" }; - IfcElementAssemblyTypeEnum.BRACED_FRAME = { type: 3, value: "BRACED_FRAME" }; - IfcElementAssemblyTypeEnum.CROSS_BRACING = { type: 3, value: "CROSS_BRACING" }; - IfcElementAssemblyTypeEnum.DECK = { type: 3, value: "DECK" }; - IfcElementAssemblyTypeEnum.DILATATIONPANEL = { type: 3, value: "DILATATIONPANEL" }; - IfcElementAssemblyTypeEnum.ENTRANCEWORKS = { type: 3, value: "ENTRANCEWORKS" }; - IfcElementAssemblyTypeEnum.GIRDER = { type: 3, value: "GIRDER" }; - IfcElementAssemblyTypeEnum.GRID = { type: 3, value: "GRID" }; - IfcElementAssemblyTypeEnum.MAST = { type: 3, value: "MAST" }; - IfcElementAssemblyTypeEnum.PIER = { type: 3, value: "PIER" }; - IfcElementAssemblyTypeEnum.PYLON = { type: 3, value: "PYLON" }; - IfcElementAssemblyTypeEnum.RAIL_MECHANICAL_EQUIPMENT_ASSEMBLY = { type: 3, value: "RAIL_MECHANICAL_EQUIPMENT_ASSEMBLY" }; - IfcElementAssemblyTypeEnum.REINFORCEMENT_UNIT = { type: 3, value: "REINFORCEMENT_UNIT" }; - IfcElementAssemblyTypeEnum.RIGID_FRAME = { type: 3, value: "RIGID_FRAME" }; - IfcElementAssemblyTypeEnum.SHELTER = { type: 3, value: "SHELTER" }; - IfcElementAssemblyTypeEnum.SIGNALASSEMBLY = { type: 3, value: "SIGNALASSEMBLY" }; - IfcElementAssemblyTypeEnum.SLAB_FIELD = { type: 3, value: "SLAB_FIELD" }; - IfcElementAssemblyTypeEnum.SUMPBUSTER = { type: 3, value: "SUMPBUSTER" }; - IfcElementAssemblyTypeEnum.SUPPORTINGASSEMBLY = { type: 3, value: "SUPPORTINGASSEMBLY" }; - IfcElementAssemblyTypeEnum.SUSPENSIONASSEMBLY = { type: 3, value: "SUSPENSIONASSEMBLY" }; - IfcElementAssemblyTypeEnum.TRACKPANEL = { type: 3, value: "TRACKPANEL" }; - IfcElementAssemblyTypeEnum.TRACTION_SWITCHING_ASSEMBLY = { type: 3, value: "TRACTION_SWITCHING_ASSEMBLY" }; - IfcElementAssemblyTypeEnum.TRAFFIC_CALMING_DEVICE = { type: 3, value: "TRAFFIC_CALMING_DEVICE" }; - IfcElementAssemblyTypeEnum.TRUSS = { type: 3, value: "TRUSS" }; - IfcElementAssemblyTypeEnum.TURNOUTPANEL = { type: 3, value: "TURNOUTPANEL" }; - IfcElementAssemblyTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcElementAssemblyTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcElementAssemblyTypeEnum = IfcElementAssemblyTypeEnum; - class IfcElementCompositionEnum { + IFC4X32.IfcRelConnectsStructuralMember = IfcRelConnectsStructuralMember; + class IfcRelConnectsWithEccentricity extends IfcRelConnectsStructuralMember { + constructor(GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem, ConnectionConstraint) { + super(GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingStructuralMember = RelatingStructuralMember; + this.RelatedStructuralConnection = RelatedStructuralConnection; + this.AppliedCondition = AppliedCondition; + this.AdditionalConditions = AdditionalConditions; + this.SupportedLength = SupportedLength; + this.ConditionCoordinateSystem = ConditionCoordinateSystem; + this.ConnectionConstraint = ConnectionConstraint; + this.type = 504942748; + } } - IfcElementCompositionEnum.COMPLEX = { type: 3, value: "COMPLEX" }; - IfcElementCompositionEnum.ELEMENT = { type: 3, value: "ELEMENT" }; - IfcElementCompositionEnum.PARTIAL = { type: 3, value: "PARTIAL" }; - IFC4X32.IfcElementCompositionEnum = IfcElementCompositionEnum; - class IfcEngineTypeEnum { + IFC4X32.IfcRelConnectsWithEccentricity = IfcRelConnectsWithEccentricity; + class IfcRelConnectsWithRealizingElements extends IfcRelConnectsElements { + constructor(GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement, RealizingElements, ConnectionType) { + super(GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ConnectionGeometry = ConnectionGeometry; + this.RelatingElement = RelatingElement; + this.RelatedElement = RelatedElement; + this.RealizingElements = RealizingElements; + this.ConnectionType = ConnectionType; + this.type = 3678494232; + } } - IfcEngineTypeEnum.EXTERNALCOMBUSTION = { type: 3, value: "EXTERNALCOMBUSTION" }; - IfcEngineTypeEnum.INTERNALCOMBUSTION = { type: 3, value: "INTERNALCOMBUSTION" }; - IfcEngineTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcEngineTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcEngineTypeEnum = IfcEngineTypeEnum; - class IfcEvaporativeCoolerTypeEnum { + IFC4X32.IfcRelConnectsWithRealizingElements = IfcRelConnectsWithRealizingElements; + class IfcRelContainedInSpatialStructure extends IfcRelConnects { + constructor(GlobalId, OwnerHistory, Name, Description, RelatedElements, RelatingStructure) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedElements = RelatedElements; + this.RelatingStructure = RelatingStructure; + this.type = 3242617779; + } } - IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEAIRWASHER = { type: 3, value: "DIRECTEVAPORATIVEAIRWASHER" }; - IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER" }; - IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER" }; - IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER" }; - IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER" }; - IfcEvaporativeCoolerTypeEnum.INDIRECTDIRECTCOMBINATION = { type: 3, value: "INDIRECTDIRECTCOMBINATION" }; - IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER = { type: 3, value: "INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER" }; - IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEPACKAGEAIRCOOLER = { type: 3, value: "INDIRECTEVAPORATIVEPACKAGEAIRCOOLER" }; - IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEWETCOIL = { type: 3, value: "INDIRECTEVAPORATIVEWETCOIL" }; - IfcEvaporativeCoolerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcEvaporativeCoolerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcEvaporativeCoolerTypeEnum = IfcEvaporativeCoolerTypeEnum; - class IfcEvaporatorTypeEnum { + IFC4X32.IfcRelContainedInSpatialStructure = IfcRelContainedInSpatialStructure; + class IfcRelCoversBldgElements extends IfcRelConnects { + constructor(GlobalId, OwnerHistory, Name, Description, RelatingBuildingElement, RelatedCoverings) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingBuildingElement = RelatingBuildingElement; + this.RelatedCoverings = RelatedCoverings; + this.type = 886880790; + } } - IfcEvaporatorTypeEnum.DIRECTEXPANSION = { type: 3, value: "DIRECTEXPANSION" }; - IfcEvaporatorTypeEnum.DIRECTEXPANSIONBRAZEDPLATE = { type: 3, value: "DIRECTEXPANSIONBRAZEDPLATE" }; - IfcEvaporatorTypeEnum.DIRECTEXPANSIONSHELLANDTUBE = { type: 3, value: "DIRECTEXPANSIONSHELLANDTUBE" }; - IfcEvaporatorTypeEnum.DIRECTEXPANSIONTUBEINTUBE = { type: 3, value: "DIRECTEXPANSIONTUBEINTUBE" }; - IfcEvaporatorTypeEnum.FLOODEDSHELLANDTUBE = { type: 3, value: "FLOODEDSHELLANDTUBE" }; - IfcEvaporatorTypeEnum.SHELLANDCOIL = { type: 3, value: "SHELLANDCOIL" }; - IfcEvaporatorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcEvaporatorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcEvaporatorTypeEnum = IfcEvaporatorTypeEnum; - class IfcEventTriggerTypeEnum { + IFC4X32.IfcRelCoversBldgElements = IfcRelCoversBldgElements; + class IfcRelCoversSpaces extends IfcRelConnects { + constructor(GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedCoverings) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingSpace = RelatingSpace; + this.RelatedCoverings = RelatedCoverings; + this.type = 2802773753; + } } - IfcEventTriggerTypeEnum.EVENTCOMPLEX = { type: 3, value: "EVENTCOMPLEX" }; - IfcEventTriggerTypeEnum.EVENTMESSAGE = { type: 3, value: "EVENTMESSAGE" }; - IfcEventTriggerTypeEnum.EVENTRULE = { type: 3, value: "EVENTRULE" }; - IfcEventTriggerTypeEnum.EVENTTIME = { type: 3, value: "EVENTTIME" }; - IfcEventTriggerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcEventTriggerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcEventTriggerTypeEnum = IfcEventTriggerTypeEnum; - class IfcEventTypeEnum { + IFC4X32.IfcRelCoversSpaces = IfcRelCoversSpaces; + class IfcRelDeclares extends IfcRelationship { + constructor(GlobalId, OwnerHistory, Name, Description, RelatingContext, RelatedDefinitions) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingContext = RelatingContext; + this.RelatedDefinitions = RelatedDefinitions; + this.type = 2565941209; + } } - IfcEventTypeEnum.ENDEVENT = { type: 3, value: "ENDEVENT" }; - IfcEventTypeEnum.INTERMEDIATEEVENT = { type: 3, value: "INTERMEDIATEEVENT" }; - IfcEventTypeEnum.STARTEVENT = { type: 3, value: "STARTEVENT" }; - IfcEventTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcEventTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcEventTypeEnum = IfcEventTypeEnum; - class IfcExternalSpatialElementTypeEnum { + IFC4X32.IfcRelDeclares = IfcRelDeclares; + class IfcRelDecomposes extends IfcRelationship { + constructor(GlobalId, OwnerHistory, Name, Description) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.type = 2551354335; + } } - IfcExternalSpatialElementTypeEnum.EXTERNAL = { type: 3, value: "EXTERNAL" }; - IfcExternalSpatialElementTypeEnum.EXTERNAL_EARTH = { type: 3, value: "EXTERNAL_EARTH" }; - IfcExternalSpatialElementTypeEnum.EXTERNAL_FIRE = { type: 3, value: "EXTERNAL_FIRE" }; - IfcExternalSpatialElementTypeEnum.EXTERNAL_WATER = { type: 3, value: "EXTERNAL_WATER" }; - IfcExternalSpatialElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcExternalSpatialElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcExternalSpatialElementTypeEnum = IfcExternalSpatialElementTypeEnum; - class IfcFacilityPartCommonTypeEnum { + IFC4X32.IfcRelDecomposes = IfcRelDecomposes; + class IfcRelDefines extends IfcRelationship { + constructor(GlobalId, OwnerHistory, Name, Description) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.type = 693640335; + } } - IfcFacilityPartCommonTypeEnum.ABOVEGROUND = { type: 3, value: "ABOVEGROUND" }; - IfcFacilityPartCommonTypeEnum.BELOWGROUND = { type: 3, value: "BELOWGROUND" }; - IfcFacilityPartCommonTypeEnum.JUNCTION = { type: 3, value: "JUNCTION" }; - IfcFacilityPartCommonTypeEnum.LEVELCROSSING = { type: 3, value: "LEVELCROSSING" }; - IfcFacilityPartCommonTypeEnum.SEGMENT = { type: 3, value: "SEGMENT" }; - IfcFacilityPartCommonTypeEnum.SUBSTRUCTURE = { type: 3, value: "SUBSTRUCTURE" }; - IfcFacilityPartCommonTypeEnum.SUPERSTRUCTURE = { type: 3, value: "SUPERSTRUCTURE" }; - IfcFacilityPartCommonTypeEnum.TERMINAL = { type: 3, value: "TERMINAL" }; - IfcFacilityPartCommonTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcFacilityPartCommonTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcFacilityPartCommonTypeEnum = IfcFacilityPartCommonTypeEnum; - class IfcFacilityUsageEnum { + IFC4X32.IfcRelDefines = IfcRelDefines; + class IfcRelDefinesByObject extends IfcRelDefines { + constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingObject) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatingObject = RelatingObject; + this.type = 1462361463; + } } - IfcFacilityUsageEnum.LATERAL = { type: 3, value: "LATERAL" }; - IfcFacilityUsageEnum.LONGITUDINAL = { type: 3, value: "LONGITUDINAL" }; - IfcFacilityUsageEnum.REGION = { type: 3, value: "REGION" }; - IfcFacilityUsageEnum.VERTICAL = { type: 3, value: "VERTICAL" }; - IfcFacilityUsageEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcFacilityUsageEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcFacilityUsageEnum = IfcFacilityUsageEnum; - class IfcFanTypeEnum { + IFC4X32.IfcRelDefinesByObject = IfcRelDefinesByObject; + class IfcRelDefinesByProperties extends IfcRelDefines { + constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingPropertyDefinition) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatingPropertyDefinition = RelatingPropertyDefinition; + this.type = 4186316022; + } } - IfcFanTypeEnum.CENTRIFUGALAIRFOIL = { type: 3, value: "CENTRIFUGALAIRFOIL" }; - IfcFanTypeEnum.CENTRIFUGALBACKWARDINCLINEDCURVED = { type: 3, value: "CENTRIFUGALBACKWARDINCLINEDCURVED" }; - IfcFanTypeEnum.CENTRIFUGALFORWARDCURVED = { type: 3, value: "CENTRIFUGALFORWARDCURVED" }; - IfcFanTypeEnum.CENTRIFUGALRADIAL = { type: 3, value: "CENTRIFUGALRADIAL" }; - IfcFanTypeEnum.PROPELLORAXIAL = { type: 3, value: "PROPELLORAXIAL" }; - IfcFanTypeEnum.TUBEAXIAL = { type: 3, value: "TUBEAXIAL" }; - IfcFanTypeEnum.VANEAXIAL = { type: 3, value: "VANEAXIAL" }; - IfcFanTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcFanTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcFanTypeEnum = IfcFanTypeEnum; - class IfcFastenerTypeEnum { + IFC4X32.IfcRelDefinesByProperties = IfcRelDefinesByProperties; + class IfcRelDefinesByTemplate extends IfcRelDefines { + constructor(GlobalId, OwnerHistory, Name, Description, RelatedPropertySets, RelatingTemplate) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedPropertySets = RelatedPropertySets; + this.RelatingTemplate = RelatingTemplate; + this.type = 307848117; + } } - IfcFastenerTypeEnum.GLUE = { type: 3, value: "GLUE" }; - IfcFastenerTypeEnum.MORTAR = { type: 3, value: "MORTAR" }; - IfcFastenerTypeEnum.WELD = { type: 3, value: "WELD" }; - IfcFastenerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcFastenerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcFastenerTypeEnum = IfcFastenerTypeEnum; - class IfcFilterTypeEnum { + IFC4X32.IfcRelDefinesByTemplate = IfcRelDefinesByTemplate; + class IfcRelDefinesByType extends IfcRelDefines { + constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingType) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatingType = RelatingType; + this.type = 781010003; + } } - IfcFilterTypeEnum.AIRPARTICLEFILTER = { type: 3, value: "AIRPARTICLEFILTER" }; - IfcFilterTypeEnum.COMPRESSEDAIRFILTER = { type: 3, value: "COMPRESSEDAIRFILTER" }; - IfcFilterTypeEnum.ODORFILTER = { type: 3, value: "ODORFILTER" }; - IfcFilterTypeEnum.OILFILTER = { type: 3, value: "OILFILTER" }; - IfcFilterTypeEnum.STRAINER = { type: 3, value: "STRAINER" }; - IfcFilterTypeEnum.WATERFILTER = { type: 3, value: "WATERFILTER" }; - IfcFilterTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcFilterTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcFilterTypeEnum = IfcFilterTypeEnum; - class IfcFireSuppressionTerminalTypeEnum { + IFC4X32.IfcRelDefinesByType = IfcRelDefinesByType; + class IfcRelFillsElement extends IfcRelConnects { + constructor(GlobalId, OwnerHistory, Name, Description, RelatingOpeningElement, RelatedBuildingElement) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingOpeningElement = RelatingOpeningElement; + this.RelatedBuildingElement = RelatedBuildingElement; + this.type = 3940055652; + } } - IfcFireSuppressionTerminalTypeEnum.BREECHINGINLET = { type: 3, value: "BREECHINGINLET" }; - IfcFireSuppressionTerminalTypeEnum.FIREHYDRANT = { type: 3, value: "FIREHYDRANT" }; - IfcFireSuppressionTerminalTypeEnum.FIREMONITOR = { type: 3, value: "FIREMONITOR" }; - IfcFireSuppressionTerminalTypeEnum.HOSEREEL = { type: 3, value: "HOSEREEL" }; - IfcFireSuppressionTerminalTypeEnum.SPRINKLER = { type: 3, value: "SPRINKLER" }; - IfcFireSuppressionTerminalTypeEnum.SPRINKLERDEFLECTOR = { type: 3, value: "SPRINKLERDEFLECTOR" }; - IfcFireSuppressionTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcFireSuppressionTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcFireSuppressionTerminalTypeEnum = IfcFireSuppressionTerminalTypeEnum; - class IfcFlowDirectionEnum { + IFC4X32.IfcRelFillsElement = IfcRelFillsElement; + class IfcRelFlowControlElements extends IfcRelConnects { + constructor(GlobalId, OwnerHistory, Name, Description, RelatedControlElements, RelatingFlowElement) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedControlElements = RelatedControlElements; + this.RelatingFlowElement = RelatingFlowElement; + this.type = 279856033; + } } - IfcFlowDirectionEnum.SINK = { type: 3, value: "SINK" }; - IfcFlowDirectionEnum.SOURCE = { type: 3, value: "SOURCE" }; - IfcFlowDirectionEnum.SOURCEANDSINK = { type: 3, value: "SOURCEANDSINK" }; - IfcFlowDirectionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcFlowDirectionEnum = IfcFlowDirectionEnum; - class IfcFlowInstrumentTypeEnum { + IFC4X32.IfcRelFlowControlElements = IfcRelFlowControlElements; + class IfcRelInterferesElements extends IfcRelConnects { + constructor(GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedElement, InterferenceGeometry, InterferenceSpace, InterferenceType, ImpliedOrder) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingElement = RelatingElement; + this.RelatedElement = RelatedElement; + this.InterferenceGeometry = InterferenceGeometry; + this.InterferenceSpace = InterferenceSpace; + this.InterferenceType = InterferenceType; + this.ImpliedOrder = ImpliedOrder; + this.type = 427948657; + } } - IfcFlowInstrumentTypeEnum.AMMETER = { type: 3, value: "AMMETER" }; - IfcFlowInstrumentTypeEnum.COMBINED = { type: 3, value: "COMBINED" }; - IfcFlowInstrumentTypeEnum.FREQUENCYMETER = { type: 3, value: "FREQUENCYMETER" }; - IfcFlowInstrumentTypeEnum.PHASEANGLEMETER = { type: 3, value: "PHASEANGLEMETER" }; - IfcFlowInstrumentTypeEnum.POWERFACTORMETER = { type: 3, value: "POWERFACTORMETER" }; - IfcFlowInstrumentTypeEnum.PRESSUREGAUGE = { type: 3, value: "PRESSUREGAUGE" }; - IfcFlowInstrumentTypeEnum.THERMOMETER = { type: 3, value: "THERMOMETER" }; - IfcFlowInstrumentTypeEnum.VOLTMETER = { type: 3, value: "VOLTMETER" }; - IfcFlowInstrumentTypeEnum.VOLTMETER_PEAK = { type: 3, value: "VOLTMETER_PEAK" }; - IfcFlowInstrumentTypeEnum.VOLTMETER_RMS = { type: 3, value: "VOLTMETER_RMS" }; - IfcFlowInstrumentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcFlowInstrumentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcFlowInstrumentTypeEnum = IfcFlowInstrumentTypeEnum; - class IfcFlowMeterTypeEnum { + IFC4X32.IfcRelInterferesElements = IfcRelInterferesElements; + class IfcRelNests extends IfcRelDecomposes { + constructor(GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingObject = RelatingObject; + this.RelatedObjects = RelatedObjects; + this.type = 3268803585; + } } - IfcFlowMeterTypeEnum.ENERGYMETER = { type: 3, value: "ENERGYMETER" }; - IfcFlowMeterTypeEnum.GASMETER = { type: 3, value: "GASMETER" }; - IfcFlowMeterTypeEnum.OILMETER = { type: 3, value: "OILMETER" }; - IfcFlowMeterTypeEnum.WATERMETER = { type: 3, value: "WATERMETER" }; - IfcFlowMeterTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcFlowMeterTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcFlowMeterTypeEnum = IfcFlowMeterTypeEnum; - class IfcFootingTypeEnum { + IFC4X32.IfcRelNests = IfcRelNests; + class IfcRelPositions extends IfcRelConnects { + constructor(GlobalId, OwnerHistory, Name, Description, RelatingPositioningElement, RelatedProducts) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingPositioningElement = RelatingPositioningElement; + this.RelatedProducts = RelatedProducts; + this.type = 1441486842; + } } - IfcFootingTypeEnum.CAISSON_FOUNDATION = { type: 3, value: "CAISSON_FOUNDATION" }; - IfcFootingTypeEnum.FOOTING_BEAM = { type: 3, value: "FOOTING_BEAM" }; - IfcFootingTypeEnum.PAD_FOOTING = { type: 3, value: "PAD_FOOTING" }; - IfcFootingTypeEnum.PILE_CAP = { type: 3, value: "PILE_CAP" }; - IfcFootingTypeEnum.STRIP_FOOTING = { type: 3, value: "STRIP_FOOTING" }; - IfcFootingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcFootingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcFootingTypeEnum = IfcFootingTypeEnum; - class IfcFurnitureTypeEnum { + IFC4X32.IfcRelPositions = IfcRelPositions; + class IfcRelProjectsElement extends IfcRelDecomposes { + constructor(GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedFeatureElement) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingElement = RelatingElement; + this.RelatedFeatureElement = RelatedFeatureElement; + this.type = 750771296; + } } - IfcFurnitureTypeEnum.BED = { type: 3, value: "BED" }; - IfcFurnitureTypeEnum.CHAIR = { type: 3, value: "CHAIR" }; - IfcFurnitureTypeEnum.DESK = { type: 3, value: "DESK" }; - IfcFurnitureTypeEnum.FILECABINET = { type: 3, value: "FILECABINET" }; - IfcFurnitureTypeEnum.SHELF = { type: 3, value: "SHELF" }; - IfcFurnitureTypeEnum.SOFA = { type: 3, value: "SOFA" }; - IfcFurnitureTypeEnum.TABLE = { type: 3, value: "TABLE" }; - IfcFurnitureTypeEnum.TECHNICALCABINET = { type: 3, value: "TECHNICALCABINET" }; - IfcFurnitureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcFurnitureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcFurnitureTypeEnum = IfcFurnitureTypeEnum; - class IfcGeographicElementTypeEnum { + IFC4X32.IfcRelProjectsElement = IfcRelProjectsElement; + class IfcRelReferencedInSpatialStructure extends IfcRelConnects { + constructor(GlobalId, OwnerHistory, Name, Description, RelatedElements, RelatingStructure) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedElements = RelatedElements; + this.RelatingStructure = RelatingStructure; + this.type = 1245217292; + } } - IfcGeographicElementTypeEnum.SOIL_BORING_POINT = { type: 3, value: "SOIL_BORING_POINT" }; - IfcGeographicElementTypeEnum.TERRAIN = { type: 3, value: "TERRAIN" }; - IfcGeographicElementTypeEnum.VEGETATION = { type: 3, value: "VEGETATION" }; - IfcGeographicElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcGeographicElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcGeographicElementTypeEnum = IfcGeographicElementTypeEnum; - class IfcGeometricProjectionEnum { + IFC4X32.IfcRelReferencedInSpatialStructure = IfcRelReferencedInSpatialStructure; + class IfcRelSequence extends IfcRelConnects { + constructor(GlobalId, OwnerHistory, Name, Description, RelatingProcess, RelatedProcess, TimeLag, SequenceType, UserDefinedSequenceType) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingProcess = RelatingProcess; + this.RelatedProcess = RelatedProcess; + this.TimeLag = TimeLag; + this.SequenceType = SequenceType; + this.UserDefinedSequenceType = UserDefinedSequenceType; + this.type = 4122056220; + } } - IfcGeometricProjectionEnum.ELEVATION_VIEW = { type: 3, value: "ELEVATION_VIEW" }; - IfcGeometricProjectionEnum.GRAPH_VIEW = { type: 3, value: "GRAPH_VIEW" }; - IfcGeometricProjectionEnum.MODEL_VIEW = { type: 3, value: "MODEL_VIEW" }; - IfcGeometricProjectionEnum.PLAN_VIEW = { type: 3, value: "PLAN_VIEW" }; - IfcGeometricProjectionEnum.REFLECTED_PLAN_VIEW = { type: 3, value: "REFLECTED_PLAN_VIEW" }; - IfcGeometricProjectionEnum.SECTION_VIEW = { type: 3, value: "SECTION_VIEW" }; - IfcGeometricProjectionEnum.SKETCH_VIEW = { type: 3, value: "SKETCH_VIEW" }; - IfcGeometricProjectionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcGeometricProjectionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcGeometricProjectionEnum = IfcGeometricProjectionEnum; - class IfcGeotechnicalStratumTypeEnum { + IFC4X32.IfcRelSequence = IfcRelSequence; + class IfcRelServicesBuildings extends IfcRelConnects { + constructor(GlobalId, OwnerHistory, Name, Description, RelatingSystem, RelatedBuildings) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingSystem = RelatingSystem; + this.RelatedBuildings = RelatedBuildings; + this.type = 366585022; + } } - IfcGeotechnicalStratumTypeEnum.SOLID = { type: 3, value: "SOLID" }; - IfcGeotechnicalStratumTypeEnum.VOID = { type: 3, value: "VOID" }; - IfcGeotechnicalStratumTypeEnum.WATER = { type: 3, value: "WATER" }; - IfcGeotechnicalStratumTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcGeotechnicalStratumTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcGeotechnicalStratumTypeEnum = IfcGeotechnicalStratumTypeEnum; - class IfcGlobalOrLocalEnum { + IFC4X32.IfcRelServicesBuildings = IfcRelServicesBuildings; + class IfcRelSpaceBoundary extends IfcRelConnects { + constructor(GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingSpace = RelatingSpace; + this.RelatedBuildingElement = RelatedBuildingElement; + this.ConnectionGeometry = ConnectionGeometry; + this.PhysicalOrVirtualBoundary = PhysicalOrVirtualBoundary; + this.InternalOrExternalBoundary = InternalOrExternalBoundary; + this.type = 3451746338; + } } - IfcGlobalOrLocalEnum.GLOBAL_COORDS = { type: 3, value: "GLOBAL_COORDS" }; - IfcGlobalOrLocalEnum.LOCAL_COORDS = { type: 3, value: "LOCAL_COORDS" }; - IFC4X32.IfcGlobalOrLocalEnum = IfcGlobalOrLocalEnum; - class IfcGridTypeEnum { + IFC4X32.IfcRelSpaceBoundary = IfcRelSpaceBoundary; + class IfcRelSpaceBoundary1stLevel extends IfcRelSpaceBoundary { + constructor(GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary, ParentBoundary) { + super(GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingSpace = RelatingSpace; + this.RelatedBuildingElement = RelatedBuildingElement; + this.ConnectionGeometry = ConnectionGeometry; + this.PhysicalOrVirtualBoundary = PhysicalOrVirtualBoundary; + this.InternalOrExternalBoundary = InternalOrExternalBoundary; + this.ParentBoundary = ParentBoundary; + this.type = 3523091289; + } } - IfcGridTypeEnum.IRREGULAR = { type: 3, value: "IRREGULAR" }; - IfcGridTypeEnum.RADIAL = { type: 3, value: "RADIAL" }; - IfcGridTypeEnum.RECTANGULAR = { type: 3, value: "RECTANGULAR" }; - IfcGridTypeEnum.TRIANGULAR = { type: 3, value: "TRIANGULAR" }; - IfcGridTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcGridTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcGridTypeEnum = IfcGridTypeEnum; - class IfcHeatExchangerTypeEnum { + IFC4X32.IfcRelSpaceBoundary1stLevel = IfcRelSpaceBoundary1stLevel; + class IfcRelSpaceBoundary2ndLevel extends IfcRelSpaceBoundary1stLevel { + constructor(GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary, ParentBoundary, CorrespondingBoundary) { + super(GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary, ParentBoundary); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingSpace = RelatingSpace; + this.RelatedBuildingElement = RelatedBuildingElement; + this.ConnectionGeometry = ConnectionGeometry; + this.PhysicalOrVirtualBoundary = PhysicalOrVirtualBoundary; + this.InternalOrExternalBoundary = InternalOrExternalBoundary; + this.ParentBoundary = ParentBoundary; + this.CorrespondingBoundary = CorrespondingBoundary; + this.type = 1521410863; + } } - IfcHeatExchangerTypeEnum.PLATE = { type: 3, value: "PLATE" }; - IfcHeatExchangerTypeEnum.SHELLANDTUBE = { type: 3, value: "SHELLANDTUBE" }; - IfcHeatExchangerTypeEnum.TURNOUTHEATING = { type: 3, value: "TURNOUTHEATING" }; - IfcHeatExchangerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcHeatExchangerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcHeatExchangerTypeEnum = IfcHeatExchangerTypeEnum; - class IfcHumidifierTypeEnum { + IFC4X32.IfcRelSpaceBoundary2ndLevel = IfcRelSpaceBoundary2ndLevel; + class IfcRelVoidsElement extends IfcRelDecomposes { + constructor(GlobalId, OwnerHistory, Name, Description, RelatingBuildingElement, RelatedOpeningElement) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingBuildingElement = RelatingBuildingElement; + this.RelatedOpeningElement = RelatedOpeningElement; + this.type = 1401173127; + } } - IfcHumidifierTypeEnum.ADIABATICAIRWASHER = { type: 3, value: "ADIABATICAIRWASHER" }; - IfcHumidifierTypeEnum.ADIABATICATOMIZING = { type: 3, value: "ADIABATICATOMIZING" }; - IfcHumidifierTypeEnum.ADIABATICCOMPRESSEDAIRNOZZLE = { type: 3, value: "ADIABATICCOMPRESSEDAIRNOZZLE" }; - IfcHumidifierTypeEnum.ADIABATICPAN = { type: 3, value: "ADIABATICPAN" }; - IfcHumidifierTypeEnum.ADIABATICRIGIDMEDIA = { type: 3, value: "ADIABATICRIGIDMEDIA" }; - IfcHumidifierTypeEnum.ADIABATICULTRASONIC = { type: 3, value: "ADIABATICULTRASONIC" }; - IfcHumidifierTypeEnum.ADIABATICWETTEDELEMENT = { type: 3, value: "ADIABATICWETTEDELEMENT" }; - IfcHumidifierTypeEnum.ASSISTEDBUTANE = { type: 3, value: "ASSISTEDBUTANE" }; - IfcHumidifierTypeEnum.ASSISTEDELECTRIC = { type: 3, value: "ASSISTEDELECTRIC" }; - IfcHumidifierTypeEnum.ASSISTEDNATURALGAS = { type: 3, value: "ASSISTEDNATURALGAS" }; - IfcHumidifierTypeEnum.ASSISTEDPROPANE = { type: 3, value: "ASSISTEDPROPANE" }; - IfcHumidifierTypeEnum.ASSISTEDSTEAM = { type: 3, value: "ASSISTEDSTEAM" }; - IfcHumidifierTypeEnum.STEAMINJECTION = { type: 3, value: "STEAMINJECTION" }; - IfcHumidifierTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcHumidifierTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcHumidifierTypeEnum = IfcHumidifierTypeEnum; - class IfcImpactProtectionDeviceTypeEnum { + IFC4X32.IfcRelVoidsElement = IfcRelVoidsElement; + class IfcReparametrisedCompositeCurveSegment extends IfcCompositeCurveSegment { + constructor(Transition, SameSense, ParentCurve, ParamLength) { + super(Transition, SameSense, ParentCurve); + this.Transition = Transition; + this.SameSense = SameSense; + this.ParentCurve = ParentCurve; + this.ParamLength = ParamLength; + this.type = 816062949; + } } - IfcImpactProtectionDeviceTypeEnum.BUMPER = { type: 3, value: "BUMPER" }; - IfcImpactProtectionDeviceTypeEnum.CRASHCUSHION = { type: 3, value: "CRASHCUSHION" }; - IfcImpactProtectionDeviceTypeEnum.DAMPINGSYSTEM = { type: 3, value: "DAMPINGSYSTEM" }; - IfcImpactProtectionDeviceTypeEnum.FENDER = { type: 3, value: "FENDER" }; - IfcImpactProtectionDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcImpactProtectionDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcImpactProtectionDeviceTypeEnum = IfcImpactProtectionDeviceTypeEnum; - class IfcInterceptorTypeEnum { + IFC4X32.IfcReparametrisedCompositeCurveSegment = IfcReparametrisedCompositeCurveSegment; + class IfcResource extends IfcObject { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.type = 2914609552; + } } - IfcInterceptorTypeEnum.CYCLONIC = { type: 3, value: "CYCLONIC" }; - IfcInterceptorTypeEnum.GREASE = { type: 3, value: "GREASE" }; - IfcInterceptorTypeEnum.OIL = { type: 3, value: "OIL" }; - IfcInterceptorTypeEnum.PETROL = { type: 3, value: "PETROL" }; - IfcInterceptorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcInterceptorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcInterceptorTypeEnum = IfcInterceptorTypeEnum; - class IfcInternalOrExternalEnum { + IFC4X32.IfcResource = IfcResource; + class IfcRevolvedAreaSolid extends IfcSweptAreaSolid { + constructor(SweptArea, Position, Axis, Angle) { + super(SweptArea, Position); + this.SweptArea = SweptArea; + this.Position = Position; + this.Axis = Axis; + this.Angle = Angle; + this.type = 1856042241; + } } - IfcInternalOrExternalEnum.EXTERNAL = { type: 3, value: "EXTERNAL" }; - IfcInternalOrExternalEnum.EXTERNAL_EARTH = { type: 3, value: "EXTERNAL_EARTH" }; - IfcInternalOrExternalEnum.EXTERNAL_FIRE = { type: 3, value: "EXTERNAL_FIRE" }; - IfcInternalOrExternalEnum.EXTERNAL_WATER = { type: 3, value: "EXTERNAL_WATER" }; - IfcInternalOrExternalEnum.INTERNAL = { type: 3, value: "INTERNAL" }; - IfcInternalOrExternalEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcInternalOrExternalEnum = IfcInternalOrExternalEnum; - class IfcInventoryTypeEnum { + IFC4X32.IfcRevolvedAreaSolid = IfcRevolvedAreaSolid; + class IfcRevolvedAreaSolidTapered extends IfcRevolvedAreaSolid { + constructor(SweptArea, Position, Axis, Angle, EndSweptArea) { + super(SweptArea, Position, Axis, Angle); + this.SweptArea = SweptArea; + this.Position = Position; + this.Axis = Axis; + this.Angle = Angle; + this.EndSweptArea = EndSweptArea; + this.type = 3243963512; + } } - IfcInventoryTypeEnum.ASSETINVENTORY = { type: 3, value: "ASSETINVENTORY" }; - IfcInventoryTypeEnum.FURNITUREINVENTORY = { type: 3, value: "FURNITUREINVENTORY" }; - IfcInventoryTypeEnum.SPACEINVENTORY = { type: 3, value: "SPACEINVENTORY" }; - IfcInventoryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcInventoryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcInventoryTypeEnum = IfcInventoryTypeEnum; - class IfcJunctionBoxTypeEnum { + IFC4X32.IfcRevolvedAreaSolidTapered = IfcRevolvedAreaSolidTapered; + class IfcRightCircularCone extends IfcCsgPrimitive3D { + constructor(Position, Height, BottomRadius) { + super(Position); + this.Position = Position; + this.Height = Height; + this.BottomRadius = BottomRadius; + this.type = 4158566097; + } } - IfcJunctionBoxTypeEnum.DATA = { type: 3, value: "DATA" }; - IfcJunctionBoxTypeEnum.POWER = { type: 3, value: "POWER" }; - IfcJunctionBoxTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcJunctionBoxTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcJunctionBoxTypeEnum = IfcJunctionBoxTypeEnum; - class IfcKnotType { + IFC4X32.IfcRightCircularCone = IfcRightCircularCone; + class IfcRightCircularCylinder extends IfcCsgPrimitive3D { + constructor(Position, Height, Radius) { + super(Position); + this.Position = Position; + this.Height = Height; + this.Radius = Radius; + this.type = 3626867408; + } } - IfcKnotType.PIECEWISE_BEZIER_KNOTS = { type: 3, value: "PIECEWISE_BEZIER_KNOTS" }; - IfcKnotType.QUASI_UNIFORM_KNOTS = { type: 3, value: "QUASI_UNIFORM_KNOTS" }; - IfcKnotType.UNIFORM_KNOTS = { type: 3, value: "UNIFORM_KNOTS" }; - IfcKnotType.UNSPECIFIED = { type: 3, value: "UNSPECIFIED" }; - IFC4X32.IfcKnotType = IfcKnotType; - class IfcLaborResourceTypeEnum { + IFC4X32.IfcRightCircularCylinder = IfcRightCircularCylinder; + class IfcSectionedSolid extends IfcSolidModel { + constructor(Directrix, CrossSections) { + super(); + this.Directrix = Directrix; + this.CrossSections = CrossSections; + this.type = 1862484736; + } } - IfcLaborResourceTypeEnum.ADMINISTRATION = { type: 3, value: "ADMINISTRATION" }; - IfcLaborResourceTypeEnum.CARPENTRY = { type: 3, value: "CARPENTRY" }; - IfcLaborResourceTypeEnum.CLEANING = { type: 3, value: "CLEANING" }; - IfcLaborResourceTypeEnum.CONCRETE = { type: 3, value: "CONCRETE" }; - IfcLaborResourceTypeEnum.DRYWALL = { type: 3, value: "DRYWALL" }; - IfcLaborResourceTypeEnum.ELECTRIC = { type: 3, value: "ELECTRIC" }; - IfcLaborResourceTypeEnum.FINISHING = { type: 3, value: "FINISHING" }; - IfcLaborResourceTypeEnum.FLOORING = { type: 3, value: "FLOORING" }; - IfcLaborResourceTypeEnum.GENERAL = { type: 3, value: "GENERAL" }; - IfcLaborResourceTypeEnum.HVAC = { type: 3, value: "HVAC" }; - IfcLaborResourceTypeEnum.LANDSCAPING = { type: 3, value: "LANDSCAPING" }; - IfcLaborResourceTypeEnum.MASONRY = { type: 3, value: "MASONRY" }; - IfcLaborResourceTypeEnum.PAINTING = { type: 3, value: "PAINTING" }; - IfcLaborResourceTypeEnum.PAVING = { type: 3, value: "PAVING" }; - IfcLaborResourceTypeEnum.PLUMBING = { type: 3, value: "PLUMBING" }; - IfcLaborResourceTypeEnum.ROOFING = { type: 3, value: "ROOFING" }; - IfcLaborResourceTypeEnum.SITEGRADING = { type: 3, value: "SITEGRADING" }; - IfcLaborResourceTypeEnum.STEELWORK = { type: 3, value: "STEELWORK" }; - IfcLaborResourceTypeEnum.SURVEYING = { type: 3, value: "SURVEYING" }; - IfcLaborResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcLaborResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcLaborResourceTypeEnum = IfcLaborResourceTypeEnum; - class IfcLampTypeEnum { + IFC4X32.IfcSectionedSolid = IfcSectionedSolid; + class IfcSectionedSolidHorizontal extends IfcSectionedSolid { + constructor(Directrix, CrossSections, CrossSectionPositions) { + super(Directrix, CrossSections); + this.Directrix = Directrix; + this.CrossSections = CrossSections; + this.CrossSectionPositions = CrossSectionPositions; + this.type = 1290935644; + } } - IfcLampTypeEnum.COMPACTFLUORESCENT = { type: 3, value: "COMPACTFLUORESCENT" }; - IfcLampTypeEnum.FLUORESCENT = { type: 3, value: "FLUORESCENT" }; - IfcLampTypeEnum.HALOGEN = { type: 3, value: "HALOGEN" }; - IfcLampTypeEnum.HIGHPRESSUREMERCURY = { type: 3, value: "HIGHPRESSUREMERCURY" }; - IfcLampTypeEnum.HIGHPRESSURESODIUM = { type: 3, value: "HIGHPRESSURESODIUM" }; - IfcLampTypeEnum.LED = { type: 3, value: "LED" }; - IfcLampTypeEnum.METALHALIDE = { type: 3, value: "METALHALIDE" }; - IfcLampTypeEnum.OLED = { type: 3, value: "OLED" }; - IfcLampTypeEnum.TUNGSTENFILAMENT = { type: 3, value: "TUNGSTENFILAMENT" }; - IfcLampTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcLampTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcLampTypeEnum = IfcLampTypeEnum; - class IfcLayerSetDirectionEnum { + IFC4X32.IfcSectionedSolidHorizontal = IfcSectionedSolidHorizontal; + class IfcSectionedSurface extends IfcSurface { + constructor(Directrix, CrossSectionPositions, CrossSections) { + super(); + this.Directrix = Directrix; + this.CrossSectionPositions = CrossSectionPositions; + this.CrossSections = CrossSections; + this.type = 1356537516; + } } - IfcLayerSetDirectionEnum.AXIS1 = { type: 3, value: "AXIS1" }; - IfcLayerSetDirectionEnum.AXIS2 = { type: 3, value: "AXIS2" }; - IfcLayerSetDirectionEnum.AXIS3 = { type: 3, value: "AXIS3" }; - IFC4X32.IfcLayerSetDirectionEnum = IfcLayerSetDirectionEnum; - class IfcLightDistributionCurveEnum { + IFC4X32.IfcSectionedSurface = IfcSectionedSurface; + class IfcSimplePropertyTemplate extends IfcPropertyTemplate { + constructor(GlobalId, OwnerHistory, Name, Description, TemplateType, PrimaryMeasureType, SecondaryMeasureType, Enumerators, PrimaryUnit, SecondaryUnit, Expression, AccessState) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.TemplateType = TemplateType; + this.PrimaryMeasureType = PrimaryMeasureType; + this.SecondaryMeasureType = SecondaryMeasureType; + this.Enumerators = Enumerators; + this.PrimaryUnit = PrimaryUnit; + this.SecondaryUnit = SecondaryUnit; + this.Expression = Expression; + this.AccessState = AccessState; + this.type = 3663146110; + } } - IfcLightDistributionCurveEnum.TYPE_A = { type: 3, value: "TYPE_A" }; - IfcLightDistributionCurveEnum.TYPE_B = { type: 3, value: "TYPE_B" }; - IfcLightDistributionCurveEnum.TYPE_C = { type: 3, value: "TYPE_C" }; - IfcLightDistributionCurveEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcLightDistributionCurveEnum = IfcLightDistributionCurveEnum; - class IfcLightEmissionSourceEnum { + IFC4X32.IfcSimplePropertyTemplate = IfcSimplePropertyTemplate; + class IfcSpatialElement extends IfcProduct { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.LongName = LongName; + this.type = 1412071761; + } } - IfcLightEmissionSourceEnum.COMPACTFLUORESCENT = { type: 3, value: "COMPACTFLUORESCENT" }; - IfcLightEmissionSourceEnum.FLUORESCENT = { type: 3, value: "FLUORESCENT" }; - IfcLightEmissionSourceEnum.HIGHPRESSUREMERCURY = { type: 3, value: "HIGHPRESSUREMERCURY" }; - IfcLightEmissionSourceEnum.HIGHPRESSURESODIUM = { type: 3, value: "HIGHPRESSURESODIUM" }; - IfcLightEmissionSourceEnum.LIGHTEMITTINGDIODE = { type: 3, value: "LIGHTEMITTINGDIODE" }; - IfcLightEmissionSourceEnum.LOWPRESSURESODIUM = { type: 3, value: "LOWPRESSURESODIUM" }; - IfcLightEmissionSourceEnum.LOWVOLTAGEHALOGEN = { type: 3, value: "LOWVOLTAGEHALOGEN" }; - IfcLightEmissionSourceEnum.MAINVOLTAGEHALOGEN = { type: 3, value: "MAINVOLTAGEHALOGEN" }; - IfcLightEmissionSourceEnum.METALHALIDE = { type: 3, value: "METALHALIDE" }; - IfcLightEmissionSourceEnum.TUNGSTENFILAMENT = { type: 3, value: "TUNGSTENFILAMENT" }; - IfcLightEmissionSourceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcLightEmissionSourceEnum = IfcLightEmissionSourceEnum; - class IfcLightFixtureTypeEnum { + IFC4X32.IfcSpatialElement = IfcSpatialElement; + class IfcSpatialElementType extends IfcTypeProduct { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 710998568; + } } - IfcLightFixtureTypeEnum.DIRECTIONSOURCE = { type: 3, value: "DIRECTIONSOURCE" }; - IfcLightFixtureTypeEnum.POINTSOURCE = { type: 3, value: "POINTSOURCE" }; - IfcLightFixtureTypeEnum.SECURITYLIGHTING = { type: 3, value: "SECURITYLIGHTING" }; - IfcLightFixtureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcLightFixtureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcLightFixtureTypeEnum = IfcLightFixtureTypeEnum; - class IfcLiquidTerminalTypeEnum { + IFC4X32.IfcSpatialElementType = IfcSpatialElementType; + class IfcSpatialStructureElement extends IfcSpatialElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.LongName = LongName; + this.CompositionType = CompositionType; + this.type = 2706606064; + } } - IfcLiquidTerminalTypeEnum.HOSEREEL = { type: 3, value: "HOSEREEL" }; - IfcLiquidTerminalTypeEnum.LOADINGARM = { type: 3, value: "LOADINGARM" }; - IfcLiquidTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcLiquidTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcLiquidTerminalTypeEnum = IfcLiquidTerminalTypeEnum; - class IfcLoadGroupTypeEnum { + IFC4X32.IfcSpatialStructureElement = IfcSpatialStructureElement; + class IfcSpatialStructureElementType extends IfcSpatialElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 3893378262; + } } - IfcLoadGroupTypeEnum.LOAD_CASE = { type: 3, value: "LOAD_CASE" }; - IfcLoadGroupTypeEnum.LOAD_COMBINATION = { type: 3, value: "LOAD_COMBINATION" }; - IfcLoadGroupTypeEnum.LOAD_GROUP = { type: 3, value: "LOAD_GROUP" }; - IfcLoadGroupTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcLoadGroupTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcLoadGroupTypeEnum = IfcLoadGroupTypeEnum; - class IfcLogicalOperatorEnum { + IFC4X32.IfcSpatialStructureElementType = IfcSpatialStructureElementType; + class IfcSpatialZone extends IfcSpatialElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.LongName = LongName; + this.PredefinedType = PredefinedType; + this.type = 463610769; + } } - IfcLogicalOperatorEnum.LOGICALAND = { type: 3, value: "LOGICALAND" }; - IfcLogicalOperatorEnum.LOGICALNOTAND = { type: 3, value: "LOGICALNOTAND" }; - IfcLogicalOperatorEnum.LOGICALNOTOR = { type: 3, value: "LOGICALNOTOR" }; - IfcLogicalOperatorEnum.LOGICALOR = { type: 3, value: "LOGICALOR" }; - IfcLogicalOperatorEnum.LOGICALXOR = { type: 3, value: "LOGICALXOR" }; - IFC4X32.IfcLogicalOperatorEnum = IfcLogicalOperatorEnum; - class IfcMarineFacilityTypeEnum { + IFC4X32.IfcSpatialZone = IfcSpatialZone; + class IfcSpatialZoneType extends IfcSpatialElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, LongName) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.LongName = LongName; + this.type = 2481509218; + } } - IfcMarineFacilityTypeEnum.BARRIERBEACH = { type: 3, value: "BARRIERBEACH" }; - IfcMarineFacilityTypeEnum.BREAKWATER = { type: 3, value: "BREAKWATER" }; - IfcMarineFacilityTypeEnum.CANAL = { type: 3, value: "CANAL" }; - IfcMarineFacilityTypeEnum.DRYDOCK = { type: 3, value: "DRYDOCK" }; - IfcMarineFacilityTypeEnum.FLOATINGDOCK = { type: 3, value: "FLOATINGDOCK" }; - IfcMarineFacilityTypeEnum.HYDROLIFT = { type: 3, value: "HYDROLIFT" }; - IfcMarineFacilityTypeEnum.JETTY = { type: 3, value: "JETTY" }; - IfcMarineFacilityTypeEnum.LAUNCHRECOVERY = { type: 3, value: "LAUNCHRECOVERY" }; - IfcMarineFacilityTypeEnum.MARINEDEFENCE = { type: 3, value: "MARINEDEFENCE" }; - IfcMarineFacilityTypeEnum.NAVIGATIONALCHANNEL = { type: 3, value: "NAVIGATIONALCHANNEL" }; - IfcMarineFacilityTypeEnum.PORT = { type: 3, value: "PORT" }; - IfcMarineFacilityTypeEnum.QUAY = { type: 3, value: "QUAY" }; - IfcMarineFacilityTypeEnum.REVETMENT = { type: 3, value: "REVETMENT" }; - IfcMarineFacilityTypeEnum.SHIPLIFT = { type: 3, value: "SHIPLIFT" }; - IfcMarineFacilityTypeEnum.SHIPLOCK = { type: 3, value: "SHIPLOCK" }; - IfcMarineFacilityTypeEnum.SHIPYARD = { type: 3, value: "SHIPYARD" }; - IfcMarineFacilityTypeEnum.SLIPWAY = { type: 3, value: "SLIPWAY" }; - IfcMarineFacilityTypeEnum.WATERWAY = { type: 3, value: "WATERWAY" }; - IfcMarineFacilityTypeEnum.WATERWAYSHIPLIFT = { type: 3, value: "WATERWAYSHIPLIFT" }; - IfcMarineFacilityTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcMarineFacilityTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcMarineFacilityTypeEnum = IfcMarineFacilityTypeEnum; - class IfcMarinePartTypeEnum { + IFC4X32.IfcSpatialZoneType = IfcSpatialZoneType; + class IfcSphere extends IfcCsgPrimitive3D { + constructor(Position, Radius) { + super(Position); + this.Position = Position; + this.Radius = Radius; + this.type = 451544542; + } } - IfcMarinePartTypeEnum.ABOVEWATERLINE = { type: 3, value: "ABOVEWATERLINE" }; - IfcMarinePartTypeEnum.ANCHORAGE = { type: 3, value: "ANCHORAGE" }; - IfcMarinePartTypeEnum.APPROACHCHANNEL = { type: 3, value: "APPROACHCHANNEL" }; - IfcMarinePartTypeEnum.BELOWWATERLINE = { type: 3, value: "BELOWWATERLINE" }; - IfcMarinePartTypeEnum.BERTHINGSTRUCTURE = { type: 3, value: "BERTHINGSTRUCTURE" }; - IfcMarinePartTypeEnum.CHAMBER = { type: 3, value: "CHAMBER" }; - IfcMarinePartTypeEnum.CILL_LEVEL = { type: 3, value: "CILL_LEVEL" }; - IfcMarinePartTypeEnum.COPELEVEL = { type: 3, value: "COPELEVEL" }; - IfcMarinePartTypeEnum.CORE = { type: 3, value: "CORE" }; - IfcMarinePartTypeEnum.CREST = { type: 3, value: "CREST" }; - IfcMarinePartTypeEnum.GATEHEAD = { type: 3, value: "GATEHEAD" }; - IfcMarinePartTypeEnum.GUDINGSTRUCTURE = { type: 3, value: "GUDINGSTRUCTURE" }; - IfcMarinePartTypeEnum.HIGHWATERLINE = { type: 3, value: "HIGHWATERLINE" }; - IfcMarinePartTypeEnum.LANDFIELD = { type: 3, value: "LANDFIELD" }; - IfcMarinePartTypeEnum.LEEWARDSIDE = { type: 3, value: "LEEWARDSIDE" }; - IfcMarinePartTypeEnum.LOWWATERLINE = { type: 3, value: "LOWWATERLINE" }; - IfcMarinePartTypeEnum.MANUFACTURING = { type: 3, value: "MANUFACTURING" }; - IfcMarinePartTypeEnum.NAVIGATIONALAREA = { type: 3, value: "NAVIGATIONALAREA" }; - IfcMarinePartTypeEnum.PROTECTION = { type: 3, value: "PROTECTION" }; - IfcMarinePartTypeEnum.SHIPTRANSFER = { type: 3, value: "SHIPTRANSFER" }; - IfcMarinePartTypeEnum.STORAGEAREA = { type: 3, value: "STORAGEAREA" }; - IfcMarinePartTypeEnum.VEHICLESERVICING = { type: 3, value: "VEHICLESERVICING" }; - IfcMarinePartTypeEnum.WATERFIELD = { type: 3, value: "WATERFIELD" }; - IfcMarinePartTypeEnum.WEATHERSIDE = { type: 3, value: "WEATHERSIDE" }; - IfcMarinePartTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcMarinePartTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcMarinePartTypeEnum = IfcMarinePartTypeEnum; - class IfcMechanicalFastenerTypeEnum { + IFC4X32.IfcSphere = IfcSphere; + class IfcSphericalSurface extends IfcElementarySurface { + constructor(Position, Radius) { + super(Position); + this.Position = Position; + this.Radius = Radius; + this.type = 4015995234; + } } - IfcMechanicalFastenerTypeEnum.ANCHORBOLT = { type: 3, value: "ANCHORBOLT" }; - IfcMechanicalFastenerTypeEnum.BOLT = { type: 3, value: "BOLT" }; - IfcMechanicalFastenerTypeEnum.CHAIN = { type: 3, value: "CHAIN" }; - IfcMechanicalFastenerTypeEnum.COUPLER = { type: 3, value: "COUPLER" }; - IfcMechanicalFastenerTypeEnum.DOWEL = { type: 3, value: "DOWEL" }; - IfcMechanicalFastenerTypeEnum.NAIL = { type: 3, value: "NAIL" }; - IfcMechanicalFastenerTypeEnum.NAILPLATE = { type: 3, value: "NAILPLATE" }; - IfcMechanicalFastenerTypeEnum.RAILFASTENING = { type: 3, value: "RAILFASTENING" }; - IfcMechanicalFastenerTypeEnum.RAILJOINT = { type: 3, value: "RAILJOINT" }; - IfcMechanicalFastenerTypeEnum.RIVET = { type: 3, value: "RIVET" }; - IfcMechanicalFastenerTypeEnum.ROPE = { type: 3, value: "ROPE" }; - IfcMechanicalFastenerTypeEnum.SCREW = { type: 3, value: "SCREW" }; - IfcMechanicalFastenerTypeEnum.SHEARCONNECTOR = { type: 3, value: "SHEARCONNECTOR" }; - IfcMechanicalFastenerTypeEnum.STAPLE = { type: 3, value: "STAPLE" }; - IfcMechanicalFastenerTypeEnum.STUDSHEARCONNECTOR = { type: 3, value: "STUDSHEARCONNECTOR" }; - IfcMechanicalFastenerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcMechanicalFastenerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcMechanicalFastenerTypeEnum = IfcMechanicalFastenerTypeEnum; - class IfcMedicalDeviceTypeEnum { + IFC4X32.IfcSphericalSurface = IfcSphericalSurface; + class IfcSpiral extends IfcCurve { + constructor(Position) { + super(); + this.Position = Position; + this.type = 2735484536; + } } - IfcMedicalDeviceTypeEnum.AIRSTATION = { type: 3, value: "AIRSTATION" }; - IfcMedicalDeviceTypeEnum.FEEDAIRUNIT = { type: 3, value: "FEEDAIRUNIT" }; - IfcMedicalDeviceTypeEnum.OXYGENGENERATOR = { type: 3, value: "OXYGENGENERATOR" }; - IfcMedicalDeviceTypeEnum.OXYGENPLANT = { type: 3, value: "OXYGENPLANT" }; - IfcMedicalDeviceTypeEnum.VACUUMSTATION = { type: 3, value: "VACUUMSTATION" }; - IfcMedicalDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcMedicalDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcMedicalDeviceTypeEnum = IfcMedicalDeviceTypeEnum; - class IfcMemberTypeEnum { + IFC4X32.IfcSpiral = IfcSpiral; + class IfcStructuralActivity extends IfcProduct { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedLoad = AppliedLoad; + this.GlobalOrLocal = GlobalOrLocal; + this.type = 3544373492; + } } - IfcMemberTypeEnum.ARCH_SEGMENT = { type: 3, value: "ARCH_SEGMENT" }; - IfcMemberTypeEnum.BRACE = { type: 3, value: "BRACE" }; - IfcMemberTypeEnum.CHORD = { type: 3, value: "CHORD" }; - IfcMemberTypeEnum.COLLAR = { type: 3, value: "COLLAR" }; - IfcMemberTypeEnum.MEMBER = { type: 3, value: "MEMBER" }; - IfcMemberTypeEnum.MULLION = { type: 3, value: "MULLION" }; - IfcMemberTypeEnum.PLATE = { type: 3, value: "PLATE" }; - IfcMemberTypeEnum.POST = { type: 3, value: "POST" }; - IfcMemberTypeEnum.PURLIN = { type: 3, value: "PURLIN" }; - IfcMemberTypeEnum.RAFTER = { type: 3, value: "RAFTER" }; - IfcMemberTypeEnum.STAY_CABLE = { type: 3, value: "STAY_CABLE" }; - IfcMemberTypeEnum.STIFFENING_RIB = { type: 3, value: "STIFFENING_RIB" }; - IfcMemberTypeEnum.STRINGER = { type: 3, value: "STRINGER" }; - IfcMemberTypeEnum.STRUCTURALCABLE = { type: 3, value: "STRUCTURALCABLE" }; - IfcMemberTypeEnum.STRUT = { type: 3, value: "STRUT" }; - IfcMemberTypeEnum.STUD = { type: 3, value: "STUD" }; - IfcMemberTypeEnum.SUSPENDER = { type: 3, value: "SUSPENDER" }; - IfcMemberTypeEnum.SUSPENSION_CABLE = { type: 3, value: "SUSPENSION_CABLE" }; - IfcMemberTypeEnum.TIEBAR = { type: 3, value: "TIEBAR" }; - IfcMemberTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcMemberTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcMemberTypeEnum = IfcMemberTypeEnum; - class IfcMobileTelecommunicationsApplianceTypeEnum { + IFC4X32.IfcStructuralActivity = IfcStructuralActivity; + class IfcStructuralItem extends IfcProduct { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.type = 3136571912; + } } - IfcMobileTelecommunicationsApplianceTypeEnum.ACCESSPOINT = { type: 3, value: "ACCESSPOINT" }; - IfcMobileTelecommunicationsApplianceTypeEnum.BASEBANDUNIT = { type: 3, value: "BASEBANDUNIT" }; - IfcMobileTelecommunicationsApplianceTypeEnum.BASETRANSCEIVERSTATION = { type: 3, value: "BASETRANSCEIVERSTATION" }; - IfcMobileTelecommunicationsApplianceTypeEnum.E_UTRAN_NODE_B = { type: 3, value: "E_UTRAN_NODE_B" }; - IfcMobileTelecommunicationsApplianceTypeEnum.GATEWAY_GPRS_SUPPORT_NODE = { type: 3, value: "GATEWAY_GPRS_SUPPORT_NODE" }; - IfcMobileTelecommunicationsApplianceTypeEnum.MASTERUNIT = { type: 3, value: "MASTERUNIT" }; - IfcMobileTelecommunicationsApplianceTypeEnum.MOBILESWITCHINGCENTER = { type: 3, value: "MOBILESWITCHINGCENTER" }; - IfcMobileTelecommunicationsApplianceTypeEnum.MSCSERVER = { type: 3, value: "MSCSERVER" }; - IfcMobileTelecommunicationsApplianceTypeEnum.PACKETCONTROLUNIT = { type: 3, value: "PACKETCONTROLUNIT" }; - IfcMobileTelecommunicationsApplianceTypeEnum.REMOTERADIOUNIT = { type: 3, value: "REMOTERADIOUNIT" }; - IfcMobileTelecommunicationsApplianceTypeEnum.REMOTEUNIT = { type: 3, value: "REMOTEUNIT" }; - IfcMobileTelecommunicationsApplianceTypeEnum.SERVICE_GPRS_SUPPORT_NODE = { type: 3, value: "SERVICE_GPRS_SUPPORT_NODE" }; - IfcMobileTelecommunicationsApplianceTypeEnum.SUBSCRIBERSERVER = { type: 3, value: "SUBSCRIBERSERVER" }; - IfcMobileTelecommunicationsApplianceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcMobileTelecommunicationsApplianceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcMobileTelecommunicationsApplianceTypeEnum = IfcMobileTelecommunicationsApplianceTypeEnum; - class IfcMooringDeviceTypeEnum { + IFC4X32.IfcStructuralItem = IfcStructuralItem; + class IfcStructuralMember extends IfcStructuralItem { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.type = 530289379; + } } - IfcMooringDeviceTypeEnum.BOLLARD = { type: 3, value: "BOLLARD" }; - IfcMooringDeviceTypeEnum.LINETENSIONER = { type: 3, value: "LINETENSIONER" }; - IfcMooringDeviceTypeEnum.MAGNETICDEVICE = { type: 3, value: "MAGNETICDEVICE" }; - IfcMooringDeviceTypeEnum.MOORINGHOOKS = { type: 3, value: "MOORINGHOOKS" }; - IfcMooringDeviceTypeEnum.VACUUMDEVICE = { type: 3, value: "VACUUMDEVICE" }; - IfcMooringDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcMooringDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcMooringDeviceTypeEnum = IfcMooringDeviceTypeEnum; - class IfcMotorConnectionTypeEnum { + IFC4X32.IfcStructuralMember = IfcStructuralMember; + class IfcStructuralReaction extends IfcStructuralActivity { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedLoad = AppliedLoad; + this.GlobalOrLocal = GlobalOrLocal; + this.type = 3689010777; + } } - IfcMotorConnectionTypeEnum.BELTDRIVE = { type: 3, value: "BELTDRIVE" }; - IfcMotorConnectionTypeEnum.COUPLING = { type: 3, value: "COUPLING" }; - IfcMotorConnectionTypeEnum.DIRECTDRIVE = { type: 3, value: "DIRECTDRIVE" }; - IfcMotorConnectionTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcMotorConnectionTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcMotorConnectionTypeEnum = IfcMotorConnectionTypeEnum; - class IfcNavigationElementTypeEnum { + IFC4X32.IfcStructuralReaction = IfcStructuralReaction; + class IfcStructuralSurfaceMember extends IfcStructuralMember { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.PredefinedType = PredefinedType; + this.Thickness = Thickness; + this.type = 3979015343; + } } - IfcNavigationElementTypeEnum.BEACON = { type: 3, value: "BEACON" }; - IfcNavigationElementTypeEnum.BUOY = { type: 3, value: "BUOY" }; - IfcNavigationElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcNavigationElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcNavigationElementTypeEnum = IfcNavigationElementTypeEnum; - class IfcObjectTypeEnum { + IFC4X32.IfcStructuralSurfaceMember = IfcStructuralSurfaceMember; + class IfcStructuralSurfaceMemberVarying extends IfcStructuralSurfaceMember { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.PredefinedType = PredefinedType; + this.Thickness = Thickness; + this.type = 2218152070; + } } - IfcObjectTypeEnum.ACTOR = { type: 3, value: "ACTOR" }; - IfcObjectTypeEnum.CONTROL = { type: 3, value: "CONTROL" }; - IfcObjectTypeEnum.GROUP = { type: 3, value: "GROUP" }; - IfcObjectTypeEnum.PROCESS = { type: 3, value: "PROCESS" }; - IfcObjectTypeEnum.PRODUCT = { type: 3, value: "PRODUCT" }; - IfcObjectTypeEnum.PROJECT = { type: 3, value: "PROJECT" }; - IfcObjectTypeEnum.RESOURCE = { type: 3, value: "RESOURCE" }; - IfcObjectTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcObjectTypeEnum = IfcObjectTypeEnum; - class IfcObjectiveEnum { + IFC4X32.IfcStructuralSurfaceMemberVarying = IfcStructuralSurfaceMemberVarying; + class IfcStructuralSurfaceReaction extends IfcStructuralReaction { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedLoad = AppliedLoad; + this.GlobalOrLocal = GlobalOrLocal; + this.PredefinedType = PredefinedType; + this.type = 603775116; + } } - IfcObjectiveEnum.CODECOMPLIANCE = { type: 3, value: "CODECOMPLIANCE" }; - IfcObjectiveEnum.CODEWAIVER = { type: 3, value: "CODEWAIVER" }; - IfcObjectiveEnum.DESIGNINTENT = { type: 3, value: "DESIGNINTENT" }; - IfcObjectiveEnum.EXTERNAL = { type: 3, value: "EXTERNAL" }; - IfcObjectiveEnum.HEALTHANDSAFETY = { type: 3, value: "HEALTHANDSAFETY" }; - IfcObjectiveEnum.MERGECONFLICT = { type: 3, value: "MERGECONFLICT" }; - IfcObjectiveEnum.MODELVIEW = { type: 3, value: "MODELVIEW" }; - IfcObjectiveEnum.PARAMETER = { type: 3, value: "PARAMETER" }; - IfcObjectiveEnum.REQUIREMENT = { type: 3, value: "REQUIREMENT" }; - IfcObjectiveEnum.SPECIFICATION = { type: 3, value: "SPECIFICATION" }; - IfcObjectiveEnum.TRIGGERCONDITION = { type: 3, value: "TRIGGERCONDITION" }; - IfcObjectiveEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcObjectiveEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcObjectiveEnum = IfcObjectiveEnum; - class IfcOccupantTypeEnum { + IFC4X32.IfcStructuralSurfaceReaction = IfcStructuralSurfaceReaction; + class IfcSubContractResourceType extends IfcConstructionResourceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.ResourceType = ResourceType; + this.BaseCosts = BaseCosts; + this.BaseQuantity = BaseQuantity; + this.PredefinedType = PredefinedType; + this.type = 4095615324; + } } - IfcOccupantTypeEnum.ASSIGNEE = { type: 3, value: "ASSIGNEE" }; - IfcOccupantTypeEnum.ASSIGNOR = { type: 3, value: "ASSIGNOR" }; - IfcOccupantTypeEnum.LESSEE = { type: 3, value: "LESSEE" }; - IfcOccupantTypeEnum.LESSOR = { type: 3, value: "LESSOR" }; - IfcOccupantTypeEnum.LETTINGAGENT = { type: 3, value: "LETTINGAGENT" }; - IfcOccupantTypeEnum.OWNER = { type: 3, value: "OWNER" }; - IfcOccupantTypeEnum.TENANT = { type: 3, value: "TENANT" }; - IfcOccupantTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcOccupantTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcOccupantTypeEnum = IfcOccupantTypeEnum; - class IfcOpeningElementTypeEnum { + IFC4X32.IfcSubContractResourceType = IfcSubContractResourceType; + class IfcSurfaceCurve extends IfcCurve { + constructor(Curve3D, AssociatedGeometry, MasterRepresentation) { + super(); + this.Curve3D = Curve3D; + this.AssociatedGeometry = AssociatedGeometry; + this.MasterRepresentation = MasterRepresentation; + this.type = 699246055; + } } - IfcOpeningElementTypeEnum.OPENING = { type: 3, value: "OPENING" }; - IfcOpeningElementTypeEnum.RECESS = { type: 3, value: "RECESS" }; - IfcOpeningElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcOpeningElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcOpeningElementTypeEnum = IfcOpeningElementTypeEnum; - class IfcOutletTypeEnum { + IFC4X32.IfcSurfaceCurve = IfcSurfaceCurve; + class IfcSurfaceCurveSweptAreaSolid extends IfcDirectrixCurveSweptAreaSolid { + constructor(SweptArea, Position, Directrix, StartParam, EndParam, ReferenceSurface) { + super(SweptArea, Position, Directrix, StartParam, EndParam); + this.SweptArea = SweptArea; + this.Position = Position; + this.Directrix = Directrix; + this.StartParam = StartParam; + this.EndParam = EndParam; + this.ReferenceSurface = ReferenceSurface; + this.type = 2028607225; + } } - IfcOutletTypeEnum.AUDIOVISUALOUTLET = { type: 3, value: "AUDIOVISUALOUTLET" }; - IfcOutletTypeEnum.COMMUNICATIONSOUTLET = { type: 3, value: "COMMUNICATIONSOUTLET" }; - IfcOutletTypeEnum.DATAOUTLET = { type: 3, value: "DATAOUTLET" }; - IfcOutletTypeEnum.POWEROUTLET = { type: 3, value: "POWEROUTLET" }; - IfcOutletTypeEnum.TELEPHONEOUTLET = { type: 3, value: "TELEPHONEOUTLET" }; - IfcOutletTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcOutletTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcOutletTypeEnum = IfcOutletTypeEnum; - class IfcPavementTypeEnum { + IFC4X32.IfcSurfaceCurveSweptAreaSolid = IfcSurfaceCurveSweptAreaSolid; + class IfcSurfaceOfLinearExtrusion extends IfcSweptSurface { + constructor(SweptCurve, Position, ExtrudedDirection, Depth) { + super(SweptCurve, Position); + this.SweptCurve = SweptCurve; + this.Position = Position; + this.ExtrudedDirection = ExtrudedDirection; + this.Depth = Depth; + this.type = 2809605785; + } } - IfcPavementTypeEnum.FLEXIBLE = { type: 3, value: "FLEXIBLE" }; - IfcPavementTypeEnum.RIGID = { type: 3, value: "RIGID" }; - IfcPavementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPavementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcPavementTypeEnum = IfcPavementTypeEnum; - class IfcPerformanceHistoryTypeEnum { + IFC4X32.IfcSurfaceOfLinearExtrusion = IfcSurfaceOfLinearExtrusion; + class IfcSurfaceOfRevolution extends IfcSweptSurface { + constructor(SweptCurve, Position, AxisPosition) { + super(SweptCurve, Position); + this.SweptCurve = SweptCurve; + this.Position = Position; + this.AxisPosition = AxisPosition; + this.type = 4124788165; + } } - IfcPerformanceHistoryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPerformanceHistoryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcPerformanceHistoryTypeEnum = IfcPerformanceHistoryTypeEnum; - class IfcPermeableCoveringOperationEnum { + IFC4X32.IfcSurfaceOfRevolution = IfcSurfaceOfRevolution; + class IfcSystemFurnitureElementType extends IfcFurnishingElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1580310250; + } } - IfcPermeableCoveringOperationEnum.GRILL = { type: 3, value: "GRILL" }; - IfcPermeableCoveringOperationEnum.LOUVER = { type: 3, value: "LOUVER" }; - IfcPermeableCoveringOperationEnum.SCREEN = { type: 3, value: "SCREEN" }; - IfcPermeableCoveringOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPermeableCoveringOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcPermeableCoveringOperationEnum = IfcPermeableCoveringOperationEnum; - class IfcPermitTypeEnum { + IFC4X32.IfcSystemFurnitureElementType = IfcSystemFurnitureElementType; + class IfcTask extends IfcProcess { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Status, WorkMethod, IsMilestone, Priority, TaskTime, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.Status = Status; + this.WorkMethod = WorkMethod; + this.IsMilestone = IsMilestone; + this.Priority = Priority; + this.TaskTime = TaskTime; + this.PredefinedType = PredefinedType; + this.type = 3473067441; + } } - IfcPermitTypeEnum.ACCESS = { type: 3, value: "ACCESS" }; - IfcPermitTypeEnum.BUILDING = { type: 3, value: "BUILDING" }; - IfcPermitTypeEnum.WORK = { type: 3, value: "WORK" }; - IfcPermitTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPermitTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcPermitTypeEnum = IfcPermitTypeEnum; - class IfcPhysicalOrVirtualEnum { + IFC4X32.IfcTask = IfcTask; + class IfcTaskType extends IfcTypeProcess { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType, PredefinedType, WorkMethod) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.ProcessType = ProcessType; + this.PredefinedType = PredefinedType; + this.WorkMethod = WorkMethod; + this.type = 3206491090; + } } - IfcPhysicalOrVirtualEnum.PHYSICAL = { type: 3, value: "PHYSICAL" }; - IfcPhysicalOrVirtualEnum.VIRTUAL = { type: 3, value: "VIRTUAL" }; - IfcPhysicalOrVirtualEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcPhysicalOrVirtualEnum = IfcPhysicalOrVirtualEnum; - class IfcPileConstructionEnum { + IFC4X32.IfcTaskType = IfcTaskType; + class IfcTessellatedFaceSet extends IfcTessellatedItem { + constructor(Coordinates, Closed) { + super(); + this.Coordinates = Coordinates; + this.Closed = Closed; + this.type = 2387106220; + } } - IfcPileConstructionEnum.CAST_IN_PLACE = { type: 3, value: "CAST_IN_PLACE" }; - IfcPileConstructionEnum.COMPOSITE = { type: 3, value: "COMPOSITE" }; - IfcPileConstructionEnum.PRECAST_CONCRETE = { type: 3, value: "PRECAST_CONCRETE" }; - IfcPileConstructionEnum.PREFAB_STEEL = { type: 3, value: "PREFAB_STEEL" }; - IfcPileConstructionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPileConstructionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcPileConstructionEnum = IfcPileConstructionEnum; - class IfcPileTypeEnum { + IFC4X32.IfcTessellatedFaceSet = IfcTessellatedFaceSet; + class IfcThirdOrderPolynomialSpiral extends IfcSpiral { + constructor(Position, CubicTerm, QuadraticTerm, LinearTerm, ConstantTerm) { + super(Position); + this.Position = Position; + this.CubicTerm = CubicTerm; + this.QuadraticTerm = QuadraticTerm; + this.LinearTerm = LinearTerm; + this.ConstantTerm = ConstantTerm; + this.type = 782932809; + } } - IfcPileTypeEnum.BORED = { type: 3, value: "BORED" }; - IfcPileTypeEnum.COHESION = { type: 3, value: "COHESION" }; - IfcPileTypeEnum.DRIVEN = { type: 3, value: "DRIVEN" }; - IfcPileTypeEnum.FRICTION = { type: 3, value: "FRICTION" }; - IfcPileTypeEnum.JETGROUTING = { type: 3, value: "JETGROUTING" }; - IfcPileTypeEnum.SUPPORT = { type: 3, value: "SUPPORT" }; - IfcPileTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPileTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcPileTypeEnum = IfcPileTypeEnum; - class IfcPipeFittingTypeEnum { + IFC4X32.IfcThirdOrderPolynomialSpiral = IfcThirdOrderPolynomialSpiral; + class IfcToroidalSurface extends IfcElementarySurface { + constructor(Position, MajorRadius, MinorRadius) { + super(Position); + this.Position = Position; + this.MajorRadius = MajorRadius; + this.MinorRadius = MinorRadius; + this.type = 1935646853; + } } - IfcPipeFittingTypeEnum.BEND = { type: 3, value: "BEND" }; - IfcPipeFittingTypeEnum.CONNECTOR = { type: 3, value: "CONNECTOR" }; - IfcPipeFittingTypeEnum.ENTRY = { type: 3, value: "ENTRY" }; - IfcPipeFittingTypeEnum.EXIT = { type: 3, value: "EXIT" }; - IfcPipeFittingTypeEnum.JUNCTION = { type: 3, value: "JUNCTION" }; - IfcPipeFittingTypeEnum.OBSTRUCTION = { type: 3, value: "OBSTRUCTION" }; - IfcPipeFittingTypeEnum.TRANSITION = { type: 3, value: "TRANSITION" }; - IfcPipeFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPipeFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcPipeFittingTypeEnum = IfcPipeFittingTypeEnum; - class IfcPipeSegmentTypeEnum { + IFC4X32.IfcToroidalSurface = IfcToroidalSurface; + class IfcTransportationDeviceType extends IfcElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 3665877780; + } } - IfcPipeSegmentTypeEnum.CULVERT = { type: 3, value: "CULVERT" }; - IfcPipeSegmentTypeEnum.FLEXIBLESEGMENT = { type: 3, value: "FLEXIBLESEGMENT" }; - IfcPipeSegmentTypeEnum.GUTTER = { type: 3, value: "GUTTER" }; - IfcPipeSegmentTypeEnum.RIGIDSEGMENT = { type: 3, value: "RIGIDSEGMENT" }; - IfcPipeSegmentTypeEnum.SPOOL = { type: 3, value: "SPOOL" }; - IfcPipeSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPipeSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcPipeSegmentTypeEnum = IfcPipeSegmentTypeEnum; - class IfcPlateTypeEnum { + IFC4X32.IfcTransportationDeviceType = IfcTransportationDeviceType; + class IfcTriangulatedFaceSet extends IfcTessellatedFaceSet { + constructor(Coordinates, Closed, Normals, CoordIndex, PnIndex) { + super(Coordinates, Closed); + this.Coordinates = Coordinates; + this.Closed = Closed; + this.Normals = Normals; + this.CoordIndex = CoordIndex; + this.PnIndex = PnIndex; + this.type = 2916149573; + } } - IfcPlateTypeEnum.BASE_PLATE = { type: 3, value: "BASE_PLATE" }; - IfcPlateTypeEnum.COVER_PLATE = { type: 3, value: "COVER_PLATE" }; - IfcPlateTypeEnum.CURTAIN_PANEL = { type: 3, value: "CURTAIN_PANEL" }; - IfcPlateTypeEnum.FLANGE_PLATE = { type: 3, value: "FLANGE_PLATE" }; - IfcPlateTypeEnum.GUSSET_PLATE = { type: 3, value: "GUSSET_PLATE" }; - IfcPlateTypeEnum.SHEET = { type: 3, value: "SHEET" }; - IfcPlateTypeEnum.SPLICE_PLATE = { type: 3, value: "SPLICE_PLATE" }; - IfcPlateTypeEnum.STIFFENER_PLATE = { type: 3, value: "STIFFENER_PLATE" }; - IfcPlateTypeEnum.WEB_PLATE = { type: 3, value: "WEB_PLATE" }; - IfcPlateTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPlateTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcPlateTypeEnum = IfcPlateTypeEnum; - class IfcPreferredSurfaceCurveRepresentation { + IFC4X32.IfcTriangulatedFaceSet = IfcTriangulatedFaceSet; + class IfcTriangulatedIrregularNetwork extends IfcTriangulatedFaceSet { + constructor(Coordinates, Closed, Normals, CoordIndex, PnIndex, Flags) { + super(Coordinates, Closed, Normals, CoordIndex, PnIndex); + this.Coordinates = Coordinates; + this.Closed = Closed; + this.Normals = Normals; + this.CoordIndex = CoordIndex; + this.PnIndex = PnIndex; + this.Flags = Flags; + this.type = 1229763772; + } } - IfcPreferredSurfaceCurveRepresentation.CURVE3D = { type: 3, value: "CURVE3D" }; - IfcPreferredSurfaceCurveRepresentation.PCURVE_S1 = { type: 3, value: "PCURVE_S1" }; - IfcPreferredSurfaceCurveRepresentation.PCURVE_S2 = { type: 3, value: "PCURVE_S2" }; - IFC4X32.IfcPreferredSurfaceCurveRepresentation = IfcPreferredSurfaceCurveRepresentation; - class IfcProcedureTypeEnum { + IFC4X32.IfcTriangulatedIrregularNetwork = IfcTriangulatedIrregularNetwork; + class IfcVehicleType extends IfcTransportationDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3651464721; + } } - IfcProcedureTypeEnum.ADVICE_CAUTION = { type: 3, value: "ADVICE_CAUTION" }; - IfcProcedureTypeEnum.ADVICE_NOTE = { type: 3, value: "ADVICE_NOTE" }; - IfcProcedureTypeEnum.ADVICE_WARNING = { type: 3, value: "ADVICE_WARNING" }; - IfcProcedureTypeEnum.CALIBRATION = { type: 3, value: "CALIBRATION" }; - IfcProcedureTypeEnum.DIAGNOSTIC = { type: 3, value: "DIAGNOSTIC" }; - IfcProcedureTypeEnum.SHUTDOWN = { type: 3, value: "SHUTDOWN" }; - IfcProcedureTypeEnum.STARTUP = { type: 3, value: "STARTUP" }; - IfcProcedureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcProcedureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcProcedureTypeEnum = IfcProcedureTypeEnum; - class IfcProfileTypeEnum { + IFC4X32.IfcVehicleType = IfcVehicleType; + class IfcWindowLiningProperties extends IfcPreDefinedPropertySet { + constructor(GlobalId, OwnerHistory, Name, Description, LiningDepth, LiningThickness, TransomThickness, MullionThickness, FirstTransomOffset, SecondTransomOffset, FirstMullionOffset, SecondMullionOffset, ShapeAspectStyle, LiningOffset, LiningToPanelOffsetX, LiningToPanelOffsetY) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.LiningDepth = LiningDepth; + this.LiningThickness = LiningThickness; + this.TransomThickness = TransomThickness; + this.MullionThickness = MullionThickness; + this.FirstTransomOffset = FirstTransomOffset; + this.SecondTransomOffset = SecondTransomOffset; + this.FirstMullionOffset = FirstMullionOffset; + this.SecondMullionOffset = SecondMullionOffset; + this.ShapeAspectStyle = ShapeAspectStyle; + this.LiningOffset = LiningOffset; + this.LiningToPanelOffsetX = LiningToPanelOffsetX; + this.LiningToPanelOffsetY = LiningToPanelOffsetY; + this.type = 336235671; + } } - IfcProfileTypeEnum.AREA = { type: 3, value: "AREA" }; - IfcProfileTypeEnum.CURVE = { type: 3, value: "CURVE" }; - IFC4X32.IfcProfileTypeEnum = IfcProfileTypeEnum; - class IfcProjectOrderTypeEnum { + IFC4X32.IfcWindowLiningProperties = IfcWindowLiningProperties; + class IfcWindowPanelProperties extends IfcPreDefinedPropertySet { + constructor(GlobalId, OwnerHistory, Name, Description, OperationType, PanelPosition, FrameDepth, FrameThickness, ShapeAspectStyle) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.OperationType = OperationType; + this.PanelPosition = PanelPosition; + this.FrameDepth = FrameDepth; + this.FrameThickness = FrameThickness; + this.ShapeAspectStyle = ShapeAspectStyle; + this.type = 512836454; + } } - IfcProjectOrderTypeEnum.CHANGEORDER = { type: 3, value: "CHANGEORDER" }; - IfcProjectOrderTypeEnum.MAINTENANCEWORKORDER = { type: 3, value: "MAINTENANCEWORKORDER" }; - IfcProjectOrderTypeEnum.MOVEORDER = { type: 3, value: "MOVEORDER" }; - IfcProjectOrderTypeEnum.PURCHASEORDER = { type: 3, value: "PURCHASEORDER" }; - IfcProjectOrderTypeEnum.WORKORDER = { type: 3, value: "WORKORDER" }; - IfcProjectOrderTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcProjectOrderTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcProjectOrderTypeEnum = IfcProjectOrderTypeEnum; - class IfcProjectedOrTrueLengthEnum { + IFC4X32.IfcWindowPanelProperties = IfcWindowPanelProperties; + class IfcActor extends IfcObject { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.TheActor = TheActor; + this.type = 2296667514; + } } - IfcProjectedOrTrueLengthEnum.PROJECTED_LENGTH = { type: 3, value: "PROJECTED_LENGTH" }; - IfcProjectedOrTrueLengthEnum.TRUE_LENGTH = { type: 3, value: "TRUE_LENGTH" }; - IFC4X32.IfcProjectedOrTrueLengthEnum = IfcProjectedOrTrueLengthEnum; - class IfcProjectionElementTypeEnum { + IFC4X32.IfcActor = IfcActor; + class IfcAdvancedBrep extends IfcManifoldSolidBrep { + constructor(Outer) { + super(Outer); + this.Outer = Outer; + this.type = 1635779807; + } } - IfcProjectionElementTypeEnum.BLISTER = { type: 3, value: "BLISTER" }; - IfcProjectionElementTypeEnum.DEVIATOR = { type: 3, value: "DEVIATOR" }; - IfcProjectionElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcProjectionElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcProjectionElementTypeEnum = IfcProjectionElementTypeEnum; - class IfcPropertySetTemplateTypeEnum { + IFC4X32.IfcAdvancedBrep = IfcAdvancedBrep; + class IfcAdvancedBrepWithVoids extends IfcAdvancedBrep { + constructor(Outer, Voids) { + super(Outer); + this.Outer = Outer; + this.Voids = Voids; + this.type = 2603310189; + } + } + IFC4X32.IfcAdvancedBrepWithVoids = IfcAdvancedBrepWithVoids; + class IfcAnnotation extends IfcProduct { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.PredefinedType = PredefinedType; + this.type = 1674181508; + } + } + IFC4X32.IfcAnnotation = IfcAnnotation; + class IfcBSplineSurface extends IfcBoundedSurface { + constructor(UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect) { + super(); + this.UDegree = UDegree; + this.VDegree = VDegree; + this.ControlPointsList = ControlPointsList; + this.SurfaceForm = SurfaceForm; + this.UClosed = UClosed; + this.VClosed = VClosed; + this.SelfIntersect = SelfIntersect; + this.type = 2887950389; + } } - IfcPropertySetTemplateTypeEnum.PSET_MATERIALDRIVEN = { type: 3, value: "PSET_MATERIALDRIVEN" }; - IfcPropertySetTemplateTypeEnum.PSET_OCCURRENCEDRIVEN = { type: 3, value: "PSET_OCCURRENCEDRIVEN" }; - IfcPropertySetTemplateTypeEnum.PSET_PERFORMANCEDRIVEN = { type: 3, value: "PSET_PERFORMANCEDRIVEN" }; - IfcPropertySetTemplateTypeEnum.PSET_PROFILEDRIVEN = { type: 3, value: "PSET_PROFILEDRIVEN" }; - IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENONLY = { type: 3, value: "PSET_TYPEDRIVENONLY" }; - IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENOVERRIDE = { type: 3, value: "PSET_TYPEDRIVENOVERRIDE" }; - IfcPropertySetTemplateTypeEnum.QTO_OCCURRENCEDRIVEN = { type: 3, value: "QTO_OCCURRENCEDRIVEN" }; - IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENONLY = { type: 3, value: "QTO_TYPEDRIVENONLY" }; - IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENOVERRIDE = { type: 3, value: "QTO_TYPEDRIVENOVERRIDE" }; - IfcPropertySetTemplateTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcPropertySetTemplateTypeEnum = IfcPropertySetTemplateTypeEnum; - class IfcProtectiveDeviceTrippingUnitTypeEnum { + IFC4X32.IfcBSplineSurface = IfcBSplineSurface; + class IfcBSplineSurfaceWithKnots extends IfcBSplineSurface { + constructor(UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect, UMultiplicities, VMultiplicities, UKnots, VKnots, KnotSpec) { + super(UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect); + this.UDegree = UDegree; + this.VDegree = VDegree; + this.ControlPointsList = ControlPointsList; + this.SurfaceForm = SurfaceForm; + this.UClosed = UClosed; + this.VClosed = VClosed; + this.SelfIntersect = SelfIntersect; + this.UMultiplicities = UMultiplicities; + this.VMultiplicities = VMultiplicities; + this.UKnots = UKnots; + this.VKnots = VKnots; + this.KnotSpec = KnotSpec; + this.type = 167062518; + } } - IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTROMAGNETIC = { type: 3, value: "ELECTROMAGNETIC" }; - IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTRONIC = { type: 3, value: "ELECTRONIC" }; - IfcProtectiveDeviceTrippingUnitTypeEnum.RESIDUALCURRENT = { type: 3, value: "RESIDUALCURRENT" }; - IfcProtectiveDeviceTrippingUnitTypeEnum.THERMAL = { type: 3, value: "THERMAL" }; - IfcProtectiveDeviceTrippingUnitTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcProtectiveDeviceTrippingUnitTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcProtectiveDeviceTrippingUnitTypeEnum = IfcProtectiveDeviceTrippingUnitTypeEnum; - class IfcProtectiveDeviceTypeEnum { + IFC4X32.IfcBSplineSurfaceWithKnots = IfcBSplineSurfaceWithKnots; + class IfcBlock extends IfcCsgPrimitive3D { + constructor(Position, XLength, YLength, ZLength) { + super(Position); + this.Position = Position; + this.XLength = XLength; + this.YLength = YLength; + this.ZLength = ZLength; + this.type = 1334484129; + } } - IfcProtectiveDeviceTypeEnum.ANTI_ARCING_DEVICE = { type: 3, value: "ANTI_ARCING_DEVICE" }; - IfcProtectiveDeviceTypeEnum.CIRCUITBREAKER = { type: 3, value: "CIRCUITBREAKER" }; - IfcProtectiveDeviceTypeEnum.EARTHINGSWITCH = { type: 3, value: "EARTHINGSWITCH" }; - IfcProtectiveDeviceTypeEnum.EARTHLEAKAGECIRCUITBREAKER = { type: 3, value: "EARTHLEAKAGECIRCUITBREAKER" }; - IfcProtectiveDeviceTypeEnum.FUSEDISCONNECTOR = { type: 3, value: "FUSEDISCONNECTOR" }; - IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTCIRCUITBREAKER = { type: 3, value: "RESIDUALCURRENTCIRCUITBREAKER" }; - IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTSWITCH = { type: 3, value: "RESIDUALCURRENTSWITCH" }; - IfcProtectiveDeviceTypeEnum.SPARKGAP = { type: 3, value: "SPARKGAP" }; - IfcProtectiveDeviceTypeEnum.VARISTOR = { type: 3, value: "VARISTOR" }; - IfcProtectiveDeviceTypeEnum.VOLTAGELIMITER = { type: 3, value: "VOLTAGELIMITER" }; - IfcProtectiveDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcProtectiveDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcProtectiveDeviceTypeEnum = IfcProtectiveDeviceTypeEnum; - class IfcPumpTypeEnum { + IFC4X32.IfcBlock = IfcBlock; + class IfcBooleanClippingResult extends IfcBooleanResult { + constructor(Operator, FirstOperand, SecondOperand) { + super(Operator, FirstOperand, SecondOperand); + this.Operator = Operator; + this.FirstOperand = FirstOperand; + this.SecondOperand = SecondOperand; + this.type = 3649129432; + } } - IfcPumpTypeEnum.CIRCULATOR = { type: 3, value: "CIRCULATOR" }; - IfcPumpTypeEnum.ENDSUCTION = { type: 3, value: "ENDSUCTION" }; - IfcPumpTypeEnum.SPLITCASE = { type: 3, value: "SPLITCASE" }; - IfcPumpTypeEnum.SUBMERSIBLEPUMP = { type: 3, value: "SUBMERSIBLEPUMP" }; - IfcPumpTypeEnum.SUMPPUMP = { type: 3, value: "SUMPPUMP" }; - IfcPumpTypeEnum.VERTICALINLINE = { type: 3, value: "VERTICALINLINE" }; - IfcPumpTypeEnum.VERTICALTURBINE = { type: 3, value: "VERTICALTURBINE" }; - IfcPumpTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPumpTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcPumpTypeEnum = IfcPumpTypeEnum; - class IfcRailTypeEnum { + IFC4X32.IfcBooleanClippingResult = IfcBooleanClippingResult; + class IfcBoundedCurve extends IfcCurve { + constructor() { + super(); + this.type = 1260505505; + } } - IfcRailTypeEnum.BLADE = { type: 3, value: "BLADE" }; - IfcRailTypeEnum.CHECKRAIL = { type: 3, value: "CHECKRAIL" }; - IfcRailTypeEnum.GUARDRAIL = { type: 3, value: "GUARDRAIL" }; - IfcRailTypeEnum.RACKRAIL = { type: 3, value: "RACKRAIL" }; - IfcRailTypeEnum.RAIL = { type: 3, value: "RAIL" }; - IfcRailTypeEnum.STOCKRAIL = { type: 3, value: "STOCKRAIL" }; - IfcRailTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcRailTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcRailTypeEnum = IfcRailTypeEnum; - class IfcRailingTypeEnum { + IFC4X32.IfcBoundedCurve = IfcBoundedCurve; + class IfcBuildingStorey extends IfcSpatialStructureElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, Elevation) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.LongName = LongName; + this.CompositionType = CompositionType; + this.Elevation = Elevation; + this.type = 3124254112; + } } - IfcRailingTypeEnum.BALUSTRADE = { type: 3, value: "BALUSTRADE" }; - IfcRailingTypeEnum.FENCE = { type: 3, value: "FENCE" }; - IfcRailingTypeEnum.GUARDRAIL = { type: 3, value: "GUARDRAIL" }; - IfcRailingTypeEnum.HANDRAIL = { type: 3, value: "HANDRAIL" }; - IfcRailingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcRailingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcRailingTypeEnum = IfcRailingTypeEnum; - class IfcRailwayPartTypeEnum { + IFC4X32.IfcBuildingStorey = IfcBuildingStorey; + class IfcBuiltElementType extends IfcElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 1626504194; + } } - IfcRailwayPartTypeEnum.DILATATIONSUPERSTRUCTURE = { type: 3, value: "DILATATIONSUPERSTRUCTURE" }; - IfcRailwayPartTypeEnum.LINESIDESTRUCTURE = { type: 3, value: "LINESIDESTRUCTURE" }; - IfcRailwayPartTypeEnum.LINESIDESTRUCTUREPART = { type: 3, value: "LINESIDESTRUCTUREPART" }; - IfcRailwayPartTypeEnum.PLAINTRACKSUPERSTRUCTURE = { type: 3, value: "PLAINTRACKSUPERSTRUCTURE" }; - IfcRailwayPartTypeEnum.SUPERSTRUCTURE = { type: 3, value: "SUPERSTRUCTURE" }; - IfcRailwayPartTypeEnum.TRACKSTRUCTURE = { type: 3, value: "TRACKSTRUCTURE" }; - IfcRailwayPartTypeEnum.TRACKSTRUCTUREPART = { type: 3, value: "TRACKSTRUCTUREPART" }; - IfcRailwayPartTypeEnum.TURNOUTSUPERSTRUCTURE = { type: 3, value: "TURNOUTSUPERSTRUCTURE" }; - IfcRailwayPartTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcRailwayPartTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcRailwayPartTypeEnum = IfcRailwayPartTypeEnum; - class IfcRailwayTypeEnum { + IFC4X32.IfcBuiltElementType = IfcBuiltElementType; + class IfcChimneyType extends IfcBuiltElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2197970202; + } } - IfcRailwayTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcRailwayTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcRailwayTypeEnum = IfcRailwayTypeEnum; - class IfcRampFlightTypeEnum { + IFC4X32.IfcChimneyType = IfcChimneyType; + class IfcCircleHollowProfileDef extends IfcCircleProfileDef { + constructor(ProfileType, ProfileName, Position, Radius, WallThickness) { + super(ProfileType, ProfileName, Position, Radius); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.Radius = Radius; + this.WallThickness = WallThickness; + this.type = 2937912522; + } } - IfcRampFlightTypeEnum.SPIRAL = { type: 3, value: "SPIRAL" }; - IfcRampFlightTypeEnum.STRAIGHT = { type: 3, value: "STRAIGHT" }; - IfcRampFlightTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcRampFlightTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcRampFlightTypeEnum = IfcRampFlightTypeEnum; - class IfcRampTypeEnum { + IFC4X32.IfcCircleHollowProfileDef = IfcCircleHollowProfileDef; + class IfcCivilElementType extends IfcElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 3893394355; + } } - IfcRampTypeEnum.HALF_TURN_RAMP = { type: 3, value: "HALF_TURN_RAMP" }; - IfcRampTypeEnum.QUARTER_TURN_RAMP = { type: 3, value: "QUARTER_TURN_RAMP" }; - IfcRampTypeEnum.SPIRAL_RAMP = { type: 3, value: "SPIRAL_RAMP" }; - IfcRampTypeEnum.STRAIGHT_RUN_RAMP = { type: 3, value: "STRAIGHT_RUN_RAMP" }; - IfcRampTypeEnum.TWO_QUARTER_TURN_RAMP = { type: 3, value: "TWO_QUARTER_TURN_RAMP" }; - IfcRampTypeEnum.TWO_STRAIGHT_RUN_RAMP = { type: 3, value: "TWO_STRAIGHT_RUN_RAMP" }; - IfcRampTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcRampTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcRampTypeEnum = IfcRampTypeEnum; - class IfcRecurrenceTypeEnum { + IFC4X32.IfcCivilElementType = IfcCivilElementType; + class IfcClothoid extends IfcSpiral { + constructor(Position, ClothoidConstant) { + super(Position); + this.Position = Position; + this.ClothoidConstant = ClothoidConstant; + this.type = 3497074424; + } } - IfcRecurrenceTypeEnum.BY_DAY_COUNT = { type: 3, value: "BY_DAY_COUNT" }; - IfcRecurrenceTypeEnum.BY_WEEKDAY_COUNT = { type: 3, value: "BY_WEEKDAY_COUNT" }; - IfcRecurrenceTypeEnum.DAILY = { type: 3, value: "DAILY" }; - IfcRecurrenceTypeEnum.MONTHLY_BY_DAY_OF_MONTH = { type: 3, value: "MONTHLY_BY_DAY_OF_MONTH" }; - IfcRecurrenceTypeEnum.MONTHLY_BY_POSITION = { type: 3, value: "MONTHLY_BY_POSITION" }; - IfcRecurrenceTypeEnum.WEEKLY = { type: 3, value: "WEEKLY" }; - IfcRecurrenceTypeEnum.YEARLY_BY_DAY_OF_MONTH = { type: 3, value: "YEARLY_BY_DAY_OF_MONTH" }; - IfcRecurrenceTypeEnum.YEARLY_BY_POSITION = { type: 3, value: "YEARLY_BY_POSITION" }; - IFC4X32.IfcRecurrenceTypeEnum = IfcRecurrenceTypeEnum; - class IfcReferentTypeEnum { + IFC4X32.IfcClothoid = IfcClothoid; + class IfcColumnType extends IfcBuiltElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 300633059; + } } - IfcReferentTypeEnum.BOUNDARY = { type: 3, value: "BOUNDARY" }; - IfcReferentTypeEnum.INTERSECTION = { type: 3, value: "INTERSECTION" }; - IfcReferentTypeEnum.KILOPOINT = { type: 3, value: "KILOPOINT" }; - IfcReferentTypeEnum.LANDMARK = { type: 3, value: "LANDMARK" }; - IfcReferentTypeEnum.MILEPOINT = { type: 3, value: "MILEPOINT" }; - IfcReferentTypeEnum.POSITION = { type: 3, value: "POSITION" }; - IfcReferentTypeEnum.REFERENCEMARKER = { type: 3, value: "REFERENCEMARKER" }; - IfcReferentTypeEnum.STATION = { type: 3, value: "STATION" }; - IfcReferentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcReferentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcReferentTypeEnum = IfcReferentTypeEnum; - class IfcReflectanceMethodEnum { + IFC4X32.IfcColumnType = IfcColumnType; + class IfcComplexPropertyTemplate extends IfcPropertyTemplate { + constructor(GlobalId, OwnerHistory, Name, Description, UsageName, TemplateType, HasPropertyTemplates) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.UsageName = UsageName; + this.TemplateType = TemplateType; + this.HasPropertyTemplates = HasPropertyTemplates; + this.type = 3875453745; + } } - IfcReflectanceMethodEnum.BLINN = { type: 3, value: "BLINN" }; - IfcReflectanceMethodEnum.FLAT = { type: 3, value: "FLAT" }; - IfcReflectanceMethodEnum.GLASS = { type: 3, value: "GLASS" }; - IfcReflectanceMethodEnum.MATT = { type: 3, value: "MATT" }; - IfcReflectanceMethodEnum.METAL = { type: 3, value: "METAL" }; - IfcReflectanceMethodEnum.MIRROR = { type: 3, value: "MIRROR" }; - IfcReflectanceMethodEnum.PHONG = { type: 3, value: "PHONG" }; - IfcReflectanceMethodEnum.PHYSICAL = { type: 3, value: "PHYSICAL" }; - IfcReflectanceMethodEnum.PLASTIC = { type: 3, value: "PLASTIC" }; - IfcReflectanceMethodEnum.STRAUSS = { type: 3, value: "STRAUSS" }; - IfcReflectanceMethodEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcReflectanceMethodEnum = IfcReflectanceMethodEnum; - class IfcReinforcedSoilTypeEnum { + IFC4X32.IfcComplexPropertyTemplate = IfcComplexPropertyTemplate; + class IfcCompositeCurve extends IfcBoundedCurve { + constructor(Segments, SelfIntersect) { + super(); + this.Segments = Segments; + this.SelfIntersect = SelfIntersect; + this.type = 3732776249; + } } - IfcReinforcedSoilTypeEnum.DYNAMICALLYCOMPACTED = { type: 3, value: "DYNAMICALLYCOMPACTED" }; - IfcReinforcedSoilTypeEnum.GROUTED = { type: 3, value: "GROUTED" }; - IfcReinforcedSoilTypeEnum.REPLACED = { type: 3, value: "REPLACED" }; - IfcReinforcedSoilTypeEnum.ROLLERCOMPACTED = { type: 3, value: "ROLLERCOMPACTED" }; - IfcReinforcedSoilTypeEnum.SURCHARGEPRELOADED = { type: 3, value: "SURCHARGEPRELOADED" }; - IfcReinforcedSoilTypeEnum.VERTICALLYDRAINED = { type: 3, value: "VERTICALLYDRAINED" }; - IfcReinforcedSoilTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcReinforcedSoilTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcReinforcedSoilTypeEnum = IfcReinforcedSoilTypeEnum; - class IfcReinforcingBarRoleEnum { + IFC4X32.IfcCompositeCurve = IfcCompositeCurve; + class IfcCompositeCurveOnSurface extends IfcCompositeCurve { + constructor(Segments, SelfIntersect) { + super(Segments, SelfIntersect); + this.Segments = Segments; + this.SelfIntersect = SelfIntersect; + this.type = 15328376; + } } - IfcReinforcingBarRoleEnum.ANCHORING = { type: 3, value: "ANCHORING" }; - IfcReinforcingBarRoleEnum.EDGE = { type: 3, value: "EDGE" }; - IfcReinforcingBarRoleEnum.LIGATURE = { type: 3, value: "LIGATURE" }; - IfcReinforcingBarRoleEnum.MAIN = { type: 3, value: "MAIN" }; - IfcReinforcingBarRoleEnum.PUNCHING = { type: 3, value: "PUNCHING" }; - IfcReinforcingBarRoleEnum.RING = { type: 3, value: "RING" }; - IfcReinforcingBarRoleEnum.SHEAR = { type: 3, value: "SHEAR" }; - IfcReinforcingBarRoleEnum.STUD = { type: 3, value: "STUD" }; - IfcReinforcingBarRoleEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcReinforcingBarRoleEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcReinforcingBarRoleEnum = IfcReinforcingBarRoleEnum; - class IfcReinforcingBarSurfaceEnum { + IFC4X32.IfcCompositeCurveOnSurface = IfcCompositeCurveOnSurface; + class IfcConic extends IfcCurve { + constructor(Position) { + super(); + this.Position = Position; + this.type = 2510884976; + } } - IfcReinforcingBarSurfaceEnum.PLAIN = { type: 3, value: "PLAIN" }; - IfcReinforcingBarSurfaceEnum.TEXTURED = { type: 3, value: "TEXTURED" }; - IFC4X32.IfcReinforcingBarSurfaceEnum = IfcReinforcingBarSurfaceEnum; - class IfcReinforcingBarTypeEnum { + IFC4X32.IfcConic = IfcConic; + class IfcConstructionEquipmentResourceType extends IfcConstructionResourceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.ResourceType = ResourceType; + this.BaseCosts = BaseCosts; + this.BaseQuantity = BaseQuantity; + this.PredefinedType = PredefinedType; + this.type = 2185764099; + } } - IfcReinforcingBarTypeEnum.ANCHORING = { type: 3, value: "ANCHORING" }; - IfcReinforcingBarTypeEnum.EDGE = { type: 3, value: "EDGE" }; - IfcReinforcingBarTypeEnum.LIGATURE = { type: 3, value: "LIGATURE" }; - IfcReinforcingBarTypeEnum.MAIN = { type: 3, value: "MAIN" }; - IfcReinforcingBarTypeEnum.PUNCHING = { type: 3, value: "PUNCHING" }; - IfcReinforcingBarTypeEnum.RING = { type: 3, value: "RING" }; - IfcReinforcingBarTypeEnum.SHEAR = { type: 3, value: "SHEAR" }; - IfcReinforcingBarTypeEnum.SPACEBAR = { type: 3, value: "SPACEBAR" }; - IfcReinforcingBarTypeEnum.STUD = { type: 3, value: "STUD" }; - IfcReinforcingBarTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcReinforcingBarTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcReinforcingBarTypeEnum = IfcReinforcingBarTypeEnum; - class IfcReinforcingMeshTypeEnum { + IFC4X32.IfcConstructionEquipmentResourceType = IfcConstructionEquipmentResourceType; + class IfcConstructionMaterialResourceType extends IfcConstructionResourceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.ResourceType = ResourceType; + this.BaseCosts = BaseCosts; + this.BaseQuantity = BaseQuantity; + this.PredefinedType = PredefinedType; + this.type = 4105962743; + } } - IfcReinforcingMeshTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcReinforcingMeshTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcReinforcingMeshTypeEnum = IfcReinforcingMeshTypeEnum; - class IfcRoadPartTypeEnum { + IFC4X32.IfcConstructionMaterialResourceType = IfcConstructionMaterialResourceType; + class IfcConstructionProductResourceType extends IfcConstructionResourceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.ResourceType = ResourceType; + this.BaseCosts = BaseCosts; + this.BaseQuantity = BaseQuantity; + this.PredefinedType = PredefinedType; + this.type = 1525564444; + } } - IfcRoadPartTypeEnum.BICYCLECROSSING = { type: 3, value: "BICYCLECROSSING" }; - IfcRoadPartTypeEnum.BUS_STOP = { type: 3, value: "BUS_STOP" }; - IfcRoadPartTypeEnum.CARRIAGEWAY = { type: 3, value: "CARRIAGEWAY" }; - IfcRoadPartTypeEnum.CENTRALISLAND = { type: 3, value: "CENTRALISLAND" }; - IfcRoadPartTypeEnum.CENTRALRESERVE = { type: 3, value: "CENTRALRESERVE" }; - IfcRoadPartTypeEnum.HARDSHOULDER = { type: 3, value: "HARDSHOULDER" }; - IfcRoadPartTypeEnum.INTERSECTION = { type: 3, value: "INTERSECTION" }; - IfcRoadPartTypeEnum.LAYBY = { type: 3, value: "LAYBY" }; - IfcRoadPartTypeEnum.PARKINGBAY = { type: 3, value: "PARKINGBAY" }; - IfcRoadPartTypeEnum.PASSINGBAY = { type: 3, value: "PASSINGBAY" }; - IfcRoadPartTypeEnum.PEDESTRIAN_CROSSING = { type: 3, value: "PEDESTRIAN_CROSSING" }; - IfcRoadPartTypeEnum.RAILWAYCROSSING = { type: 3, value: "RAILWAYCROSSING" }; - IfcRoadPartTypeEnum.REFUGEISLAND = { type: 3, value: "REFUGEISLAND" }; - IfcRoadPartTypeEnum.ROADSEGMENT = { type: 3, value: "ROADSEGMENT" }; - IfcRoadPartTypeEnum.ROADSIDE = { type: 3, value: "ROADSIDE" }; - IfcRoadPartTypeEnum.ROADSIDEPART = { type: 3, value: "ROADSIDEPART" }; - IfcRoadPartTypeEnum.ROADWAYPLATEAU = { type: 3, value: "ROADWAYPLATEAU" }; - IfcRoadPartTypeEnum.ROUNDABOUT = { type: 3, value: "ROUNDABOUT" }; - IfcRoadPartTypeEnum.SHOULDER = { type: 3, value: "SHOULDER" }; - IfcRoadPartTypeEnum.SIDEWALK = { type: 3, value: "SIDEWALK" }; - IfcRoadPartTypeEnum.SOFTSHOULDER = { type: 3, value: "SOFTSHOULDER" }; - IfcRoadPartTypeEnum.TOLLPLAZA = { type: 3, value: "TOLLPLAZA" }; - IfcRoadPartTypeEnum.TRAFFICISLAND = { type: 3, value: "TRAFFICISLAND" }; - IfcRoadPartTypeEnum.TRAFFICLANE = { type: 3, value: "TRAFFICLANE" }; - IfcRoadPartTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcRoadPartTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcRoadPartTypeEnum = IfcRoadPartTypeEnum; - class IfcRoadTypeEnum { + IFC4X32.IfcConstructionProductResourceType = IfcConstructionProductResourceType; + class IfcConstructionResource extends IfcResource { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.Usage = Usage; + this.BaseCosts = BaseCosts; + this.BaseQuantity = BaseQuantity; + this.type = 2559216714; + } } - IfcRoadTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcRoadTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcRoadTypeEnum = IfcRoadTypeEnum; - class IfcRoleEnum { + IFC4X32.IfcConstructionResource = IfcConstructionResource; + class IfcControl extends IfcObject { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.type = 3293443760; + } } - IfcRoleEnum.ARCHITECT = { type: 3, value: "ARCHITECT" }; - IfcRoleEnum.BUILDINGOPERATOR = { type: 3, value: "BUILDINGOPERATOR" }; - IfcRoleEnum.BUILDINGOWNER = { type: 3, value: "BUILDINGOWNER" }; - IfcRoleEnum.CIVILENGINEER = { type: 3, value: "CIVILENGINEER" }; - IfcRoleEnum.CLIENT = { type: 3, value: "CLIENT" }; - IfcRoleEnum.COMMISSIONINGENGINEER = { type: 3, value: "COMMISSIONINGENGINEER" }; - IfcRoleEnum.CONSTRUCTIONMANAGER = { type: 3, value: "CONSTRUCTIONMANAGER" }; - IfcRoleEnum.CONSULTANT = { type: 3, value: "CONSULTANT" }; - IfcRoleEnum.CONTRACTOR = { type: 3, value: "CONTRACTOR" }; - IfcRoleEnum.COSTENGINEER = { type: 3, value: "COSTENGINEER" }; - IfcRoleEnum.ELECTRICALENGINEER = { type: 3, value: "ELECTRICALENGINEER" }; - IfcRoleEnum.ENGINEER = { type: 3, value: "ENGINEER" }; - IfcRoleEnum.FACILITIESMANAGER = { type: 3, value: "FACILITIESMANAGER" }; - IfcRoleEnum.FIELDCONSTRUCTIONMANAGER = { type: 3, value: "FIELDCONSTRUCTIONMANAGER" }; - IfcRoleEnum.MANUFACTURER = { type: 3, value: "MANUFACTURER" }; - IfcRoleEnum.MECHANICALENGINEER = { type: 3, value: "MECHANICALENGINEER" }; - IfcRoleEnum.OWNER = { type: 3, value: "OWNER" }; - IfcRoleEnum.PROJECTMANAGER = { type: 3, value: "PROJECTMANAGER" }; - IfcRoleEnum.RESELLER = { type: 3, value: "RESELLER" }; - IfcRoleEnum.STRUCTURALENGINEER = { type: 3, value: "STRUCTURALENGINEER" }; - IfcRoleEnum.SUBCONTRACTOR = { type: 3, value: "SUBCONTRACTOR" }; - IfcRoleEnum.SUPPLIER = { type: 3, value: "SUPPLIER" }; - IfcRoleEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IFC4X32.IfcRoleEnum = IfcRoleEnum; - class IfcRoofTypeEnum { + IFC4X32.IfcControl = IfcControl; + class IfcCosineSpiral extends IfcSpiral { + constructor(Position, CosineTerm, ConstantTerm) { + super(Position); + this.Position = Position; + this.CosineTerm = CosineTerm; + this.ConstantTerm = ConstantTerm; + this.type = 2000195564; + } } - IfcRoofTypeEnum.BARREL_ROOF = { type: 3, value: "BARREL_ROOF" }; - IfcRoofTypeEnum.BUTTERFLY_ROOF = { type: 3, value: "BUTTERFLY_ROOF" }; - IfcRoofTypeEnum.DOME_ROOF = { type: 3, value: "DOME_ROOF" }; - IfcRoofTypeEnum.FLAT_ROOF = { type: 3, value: "FLAT_ROOF" }; - IfcRoofTypeEnum.FREEFORM = { type: 3, value: "FREEFORM" }; - IfcRoofTypeEnum.GABLE_ROOF = { type: 3, value: "GABLE_ROOF" }; - IfcRoofTypeEnum.GAMBREL_ROOF = { type: 3, value: "GAMBREL_ROOF" }; - IfcRoofTypeEnum.HIPPED_GABLE_ROOF = { type: 3, value: "HIPPED_GABLE_ROOF" }; - IfcRoofTypeEnum.HIP_ROOF = { type: 3, value: "HIP_ROOF" }; - IfcRoofTypeEnum.MANSARD_ROOF = { type: 3, value: "MANSARD_ROOF" }; - IfcRoofTypeEnum.PAVILION_ROOF = { type: 3, value: "PAVILION_ROOF" }; - IfcRoofTypeEnum.RAINBOW_ROOF = { type: 3, value: "RAINBOW_ROOF" }; - IfcRoofTypeEnum.SHED_ROOF = { type: 3, value: "SHED_ROOF" }; - IfcRoofTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcRoofTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcRoofTypeEnum = IfcRoofTypeEnum; - class IfcSIPrefix { + IFC4X32.IfcCosineSpiral = IfcCosineSpiral; + class IfcCostItem extends IfcControl { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, CostValues, CostQuantities) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.PredefinedType = PredefinedType; + this.CostValues = CostValues; + this.CostQuantities = CostQuantities; + this.type = 3895139033; + } } - IfcSIPrefix.ATTO = { type: 3, value: "ATTO" }; - IfcSIPrefix.CENTI = { type: 3, value: "CENTI" }; - IfcSIPrefix.DECA = { type: 3, value: "DECA" }; - IfcSIPrefix.DECI = { type: 3, value: "DECI" }; - IfcSIPrefix.EXA = { type: 3, value: "EXA" }; - IfcSIPrefix.FEMTO = { type: 3, value: "FEMTO" }; - IfcSIPrefix.GIGA = { type: 3, value: "GIGA" }; - IfcSIPrefix.HECTO = { type: 3, value: "HECTO" }; - IfcSIPrefix.KILO = { type: 3, value: "KILO" }; - IfcSIPrefix.MEGA = { type: 3, value: "MEGA" }; - IfcSIPrefix.MICRO = { type: 3, value: "MICRO" }; - IfcSIPrefix.MILLI = { type: 3, value: "MILLI" }; - IfcSIPrefix.NANO = { type: 3, value: "NANO" }; - IfcSIPrefix.PETA = { type: 3, value: "PETA" }; - IfcSIPrefix.PICO = { type: 3, value: "PICO" }; - IfcSIPrefix.TERA = { type: 3, value: "TERA" }; - IFC4X32.IfcSIPrefix = IfcSIPrefix; - class IfcSIUnitName { + IFC4X32.IfcCostItem = IfcCostItem; + class IfcCostSchedule extends IfcControl { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, SubmittedOn, UpdateDate) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.PredefinedType = PredefinedType; + this.Status = Status; + this.SubmittedOn = SubmittedOn; + this.UpdateDate = UpdateDate; + this.type = 1419761937; + } } - IfcSIUnitName.AMPERE = { type: 3, value: "AMPERE" }; - IfcSIUnitName.BECQUEREL = { type: 3, value: "BECQUEREL" }; - IfcSIUnitName.CANDELA = { type: 3, value: "CANDELA" }; - IfcSIUnitName.COULOMB = { type: 3, value: "COULOMB" }; - IfcSIUnitName.CUBIC_METRE = { type: 3, value: "CUBIC_METRE" }; - IfcSIUnitName.DEGREE_CELSIUS = { type: 3, value: "DEGREE_CELSIUS" }; - IfcSIUnitName.FARAD = { type: 3, value: "FARAD" }; - IfcSIUnitName.GRAM = { type: 3, value: "GRAM" }; - IfcSIUnitName.GRAY = { type: 3, value: "GRAY" }; - IfcSIUnitName.HENRY = { type: 3, value: "HENRY" }; - IfcSIUnitName.HERTZ = { type: 3, value: "HERTZ" }; - IfcSIUnitName.JOULE = { type: 3, value: "JOULE" }; - IfcSIUnitName.KELVIN = { type: 3, value: "KELVIN" }; - IfcSIUnitName.LUMEN = { type: 3, value: "LUMEN" }; - IfcSIUnitName.LUX = { type: 3, value: "LUX" }; - IfcSIUnitName.METRE = { type: 3, value: "METRE" }; - IfcSIUnitName.MOLE = { type: 3, value: "MOLE" }; - IfcSIUnitName.NEWTON = { type: 3, value: "NEWTON" }; - IfcSIUnitName.OHM = { type: 3, value: "OHM" }; - IfcSIUnitName.PASCAL = { type: 3, value: "PASCAL" }; - IfcSIUnitName.RADIAN = { type: 3, value: "RADIAN" }; - IfcSIUnitName.SECOND = { type: 3, value: "SECOND" }; - IfcSIUnitName.SIEMENS = { type: 3, value: "SIEMENS" }; - IfcSIUnitName.SIEVERT = { type: 3, value: "SIEVERT" }; - IfcSIUnitName.SQUARE_METRE = { type: 3, value: "SQUARE_METRE" }; - IfcSIUnitName.STERADIAN = { type: 3, value: "STERADIAN" }; - IfcSIUnitName.TESLA = { type: 3, value: "TESLA" }; - IfcSIUnitName.VOLT = { type: 3, value: "VOLT" }; - IfcSIUnitName.WATT = { type: 3, value: "WATT" }; - IfcSIUnitName.WEBER = { type: 3, value: "WEBER" }; - IFC4X32.IfcSIUnitName = IfcSIUnitName; - class IfcSanitaryTerminalTypeEnum { + IFC4X32.IfcCostSchedule = IfcCostSchedule; + class IfcCourseType extends IfcBuiltElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 4189326743; + } } - IfcSanitaryTerminalTypeEnum.BATH = { type: 3, value: "BATH" }; - IfcSanitaryTerminalTypeEnum.BIDET = { type: 3, value: "BIDET" }; - IfcSanitaryTerminalTypeEnum.CISTERN = { type: 3, value: "CISTERN" }; - IfcSanitaryTerminalTypeEnum.SANITARYFOUNTAIN = { type: 3, value: "SANITARYFOUNTAIN" }; - IfcSanitaryTerminalTypeEnum.SHOWER = { type: 3, value: "SHOWER" }; - IfcSanitaryTerminalTypeEnum.SINK = { type: 3, value: "SINK" }; - IfcSanitaryTerminalTypeEnum.TOILETPAN = { type: 3, value: "TOILETPAN" }; - IfcSanitaryTerminalTypeEnum.URINAL = { type: 3, value: "URINAL" }; - IfcSanitaryTerminalTypeEnum.WASHHANDBASIN = { type: 3, value: "WASHHANDBASIN" }; - IfcSanitaryTerminalTypeEnum.WCSEAT = { type: 3, value: "WCSEAT" }; - IfcSanitaryTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSanitaryTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcSanitaryTerminalTypeEnum = IfcSanitaryTerminalTypeEnum; - class IfcSectionTypeEnum { + IFC4X32.IfcCourseType = IfcCourseType; + class IfcCoveringType extends IfcBuiltElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1916426348; + } } - IfcSectionTypeEnum.TAPERED = { type: 3, value: "TAPERED" }; - IfcSectionTypeEnum.UNIFORM = { type: 3, value: "UNIFORM" }; - IFC4X32.IfcSectionTypeEnum = IfcSectionTypeEnum; - class IfcSensorTypeEnum { + IFC4X32.IfcCoveringType = IfcCoveringType; + class IfcCrewResource extends IfcConstructionResource { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.Usage = Usage; + this.BaseCosts = BaseCosts; + this.BaseQuantity = BaseQuantity; + this.PredefinedType = PredefinedType; + this.type = 3295246426; + } } - IfcSensorTypeEnum.CO2SENSOR = { type: 3, value: "CO2SENSOR" }; - IfcSensorTypeEnum.CONDUCTANCESENSOR = { type: 3, value: "CONDUCTANCESENSOR" }; - IfcSensorTypeEnum.CONTACTSENSOR = { type: 3, value: "CONTACTSENSOR" }; - IfcSensorTypeEnum.COSENSOR = { type: 3, value: "COSENSOR" }; - IfcSensorTypeEnum.EARTHQUAKESENSOR = { type: 3, value: "EARTHQUAKESENSOR" }; - IfcSensorTypeEnum.FIRESENSOR = { type: 3, value: "FIRESENSOR" }; - IfcSensorTypeEnum.FLOWSENSOR = { type: 3, value: "FLOWSENSOR" }; - IfcSensorTypeEnum.FOREIGNOBJECTDETECTIONSENSOR = { type: 3, value: "FOREIGNOBJECTDETECTIONSENSOR" }; - IfcSensorTypeEnum.FROSTSENSOR = { type: 3, value: "FROSTSENSOR" }; - IfcSensorTypeEnum.GASSENSOR = { type: 3, value: "GASSENSOR" }; - IfcSensorTypeEnum.HEATSENSOR = { type: 3, value: "HEATSENSOR" }; - IfcSensorTypeEnum.HUMIDITYSENSOR = { type: 3, value: "HUMIDITYSENSOR" }; - IfcSensorTypeEnum.IDENTIFIERSENSOR = { type: 3, value: "IDENTIFIERSENSOR" }; - IfcSensorTypeEnum.IONCONCENTRATIONSENSOR = { type: 3, value: "IONCONCENTRATIONSENSOR" }; - IfcSensorTypeEnum.LEVELSENSOR = { type: 3, value: "LEVELSENSOR" }; - IfcSensorTypeEnum.LIGHTSENSOR = { type: 3, value: "LIGHTSENSOR" }; - IfcSensorTypeEnum.MOISTURESENSOR = { type: 3, value: "MOISTURESENSOR" }; - IfcSensorTypeEnum.MOVEMENTSENSOR = { type: 3, value: "MOVEMENTSENSOR" }; - IfcSensorTypeEnum.OBSTACLESENSOR = { type: 3, value: "OBSTACLESENSOR" }; - IfcSensorTypeEnum.PHSENSOR = { type: 3, value: "PHSENSOR" }; - IfcSensorTypeEnum.PRESSURESENSOR = { type: 3, value: "PRESSURESENSOR" }; - IfcSensorTypeEnum.RADIATIONSENSOR = { type: 3, value: "RADIATIONSENSOR" }; - IfcSensorTypeEnum.RADIOACTIVITYSENSOR = { type: 3, value: "RADIOACTIVITYSENSOR" }; - IfcSensorTypeEnum.RAINSENSOR = { type: 3, value: "RAINSENSOR" }; - IfcSensorTypeEnum.SMOKESENSOR = { type: 3, value: "SMOKESENSOR" }; - IfcSensorTypeEnum.SNOWDEPTHSENSOR = { type: 3, value: "SNOWDEPTHSENSOR" }; - IfcSensorTypeEnum.SOUNDSENSOR = { type: 3, value: "SOUNDSENSOR" }; - IfcSensorTypeEnum.TEMPERATURESENSOR = { type: 3, value: "TEMPERATURESENSOR" }; - IfcSensorTypeEnum.TRAINSENSOR = { type: 3, value: "TRAINSENSOR" }; - IfcSensorTypeEnum.TURNOUTCLOSURESENSOR = { type: 3, value: "TURNOUTCLOSURESENSOR" }; - IfcSensorTypeEnum.WHEELSENSOR = { type: 3, value: "WHEELSENSOR" }; - IfcSensorTypeEnum.WINDSENSOR = { type: 3, value: "WINDSENSOR" }; - IfcSensorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSensorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcSensorTypeEnum = IfcSensorTypeEnum; - class IfcSequenceEnum { + IFC4X32.IfcCrewResource = IfcCrewResource; + class IfcCurtainWallType extends IfcBuiltElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1457835157; + } } - IfcSequenceEnum.FINISH_FINISH = { type: 3, value: "FINISH_FINISH" }; - IfcSequenceEnum.FINISH_START = { type: 3, value: "FINISH_START" }; - IfcSequenceEnum.START_FINISH = { type: 3, value: "START_FINISH" }; - IfcSequenceEnum.START_START = { type: 3, value: "START_START" }; - IfcSequenceEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSequenceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcSequenceEnum = IfcSequenceEnum; - class IfcShadingDeviceTypeEnum { + IFC4X32.IfcCurtainWallType = IfcCurtainWallType; + class IfcCylindricalSurface extends IfcElementarySurface { + constructor(Position, Radius) { + super(Position); + this.Position = Position; + this.Radius = Radius; + this.type = 1213902940; + } } - IfcShadingDeviceTypeEnum.AWNING = { type: 3, value: "AWNING" }; - IfcShadingDeviceTypeEnum.JALOUSIE = { type: 3, value: "JALOUSIE" }; - IfcShadingDeviceTypeEnum.SHUTTER = { type: 3, value: "SHUTTER" }; - IfcShadingDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcShadingDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcShadingDeviceTypeEnum = IfcShadingDeviceTypeEnum; - class IfcSignTypeEnum { + IFC4X32.IfcCylindricalSurface = IfcCylindricalSurface; + class IfcDeepFoundationType extends IfcBuiltElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 1306400036; + } } - IfcSignTypeEnum.MARKER = { type: 3, value: "MARKER" }; - IfcSignTypeEnum.MIRROR = { type: 3, value: "MIRROR" }; - IfcSignTypeEnum.PICTORAL = { type: 3, value: "PICTORAL" }; - IfcSignTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSignTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcSignTypeEnum = IfcSignTypeEnum; - class IfcSignalTypeEnum { + IFC4X32.IfcDeepFoundationType = IfcDeepFoundationType; + class IfcDirectrixDerivedReferenceSweptAreaSolid extends IfcFixedReferenceSweptAreaSolid { + constructor(SweptArea, Position, Directrix, StartParam, EndParam, FixedReference) { + super(SweptArea, Position, Directrix, StartParam, EndParam, FixedReference); + this.SweptArea = SweptArea; + this.Position = Position; + this.Directrix = Directrix; + this.StartParam = StartParam; + this.EndParam = EndParam; + this.FixedReference = FixedReference; + this.type = 4234616927; + } } - IfcSignalTypeEnum.AUDIO = { type: 3, value: "AUDIO" }; - IfcSignalTypeEnum.MIXED = { type: 3, value: "MIXED" }; - IfcSignalTypeEnum.VISUAL = { type: 3, value: "VISUAL" }; - IfcSignalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSignalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcSignalTypeEnum = IfcSignalTypeEnum; - class IfcSimplePropertyTemplateTypeEnum { + IFC4X32.IfcDirectrixDerivedReferenceSweptAreaSolid = IfcDirectrixDerivedReferenceSweptAreaSolid; + class IfcDistributionElementType extends IfcElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 3256556792; + } } - IfcSimplePropertyTemplateTypeEnum.P_BOUNDEDVALUE = { type: 3, value: "P_BOUNDEDVALUE" }; - IfcSimplePropertyTemplateTypeEnum.P_ENUMERATEDVALUE = { type: 3, value: "P_ENUMERATEDVALUE" }; - IfcSimplePropertyTemplateTypeEnum.P_LISTVALUE = { type: 3, value: "P_LISTVALUE" }; - IfcSimplePropertyTemplateTypeEnum.P_REFERENCEVALUE = { type: 3, value: "P_REFERENCEVALUE" }; - IfcSimplePropertyTemplateTypeEnum.P_SINGLEVALUE = { type: 3, value: "P_SINGLEVALUE" }; - IfcSimplePropertyTemplateTypeEnum.P_TABLEVALUE = { type: 3, value: "P_TABLEVALUE" }; - IfcSimplePropertyTemplateTypeEnum.Q_AREA = { type: 3, value: "Q_AREA" }; - IfcSimplePropertyTemplateTypeEnum.Q_COUNT = { type: 3, value: "Q_COUNT" }; - IfcSimplePropertyTemplateTypeEnum.Q_LENGTH = { type: 3, value: "Q_LENGTH" }; - IfcSimplePropertyTemplateTypeEnum.Q_NUMBER = { type: 3, value: "Q_NUMBER" }; - IfcSimplePropertyTemplateTypeEnum.Q_TIME = { type: 3, value: "Q_TIME" }; - IfcSimplePropertyTemplateTypeEnum.Q_VOLUME = { type: 3, value: "Q_VOLUME" }; - IfcSimplePropertyTemplateTypeEnum.Q_WEIGHT = { type: 3, value: "Q_WEIGHT" }; - IFC4X32.IfcSimplePropertyTemplateTypeEnum = IfcSimplePropertyTemplateTypeEnum; - class IfcSlabTypeEnum { + IFC4X32.IfcDistributionElementType = IfcDistributionElementType; + class IfcDistributionFlowElementType extends IfcDistributionElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 3849074793; + } } - IfcSlabTypeEnum.APPROACH_SLAB = { type: 3, value: "APPROACH_SLAB" }; - IfcSlabTypeEnum.BASESLAB = { type: 3, value: "BASESLAB" }; - IfcSlabTypeEnum.FLOOR = { type: 3, value: "FLOOR" }; - IfcSlabTypeEnum.LANDING = { type: 3, value: "LANDING" }; - IfcSlabTypeEnum.PAVING = { type: 3, value: "PAVING" }; - IfcSlabTypeEnum.ROOF = { type: 3, value: "ROOF" }; - IfcSlabTypeEnum.SIDEWALK = { type: 3, value: "SIDEWALK" }; - IfcSlabTypeEnum.TRACKSLAB = { type: 3, value: "TRACKSLAB" }; - IfcSlabTypeEnum.WEARING = { type: 3, value: "WEARING" }; - IfcSlabTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSlabTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcSlabTypeEnum = IfcSlabTypeEnum; - class IfcSolarDeviceTypeEnum { + IFC4X32.IfcDistributionFlowElementType = IfcDistributionFlowElementType; + class IfcDoorLiningProperties extends IfcPreDefinedPropertySet { + constructor(GlobalId, OwnerHistory, Name, Description, LiningDepth, LiningThickness, ThresholdDepth, ThresholdThickness, TransomThickness, TransomOffset, LiningOffset, ThresholdOffset, CasingThickness, CasingDepth, ShapeAspectStyle, LiningToPanelOffsetX, LiningToPanelOffsetY) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.LiningDepth = LiningDepth; + this.LiningThickness = LiningThickness; + this.ThresholdDepth = ThresholdDepth; + this.ThresholdThickness = ThresholdThickness; + this.TransomThickness = TransomThickness; + this.TransomOffset = TransomOffset; + this.LiningOffset = LiningOffset; + this.ThresholdOffset = ThresholdOffset; + this.CasingThickness = CasingThickness; + this.CasingDepth = CasingDepth; + this.ShapeAspectStyle = ShapeAspectStyle; + this.LiningToPanelOffsetX = LiningToPanelOffsetX; + this.LiningToPanelOffsetY = LiningToPanelOffsetY; + this.type = 2963535650; + } } - IfcSolarDeviceTypeEnum.SOLARCOLLECTOR = { type: 3, value: "SOLARCOLLECTOR" }; - IfcSolarDeviceTypeEnum.SOLARPANEL = { type: 3, value: "SOLARPANEL" }; - IfcSolarDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSolarDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcSolarDeviceTypeEnum = IfcSolarDeviceTypeEnum; - class IfcSpaceHeaterTypeEnum { + IFC4X32.IfcDoorLiningProperties = IfcDoorLiningProperties; + class IfcDoorPanelProperties extends IfcPreDefinedPropertySet { + constructor(GlobalId, OwnerHistory, Name, Description, PanelDepth, PanelOperation, PanelWidth, PanelPosition, ShapeAspectStyle) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.PanelDepth = PanelDepth; + this.PanelOperation = PanelOperation; + this.PanelWidth = PanelWidth; + this.PanelPosition = PanelPosition; + this.ShapeAspectStyle = ShapeAspectStyle; + this.type = 1714330368; + } } - IfcSpaceHeaterTypeEnum.CONVECTOR = { type: 3, value: "CONVECTOR" }; - IfcSpaceHeaterTypeEnum.RADIATOR = { type: 3, value: "RADIATOR" }; - IfcSpaceHeaterTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSpaceHeaterTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcSpaceHeaterTypeEnum = IfcSpaceHeaterTypeEnum; - class IfcSpaceTypeEnum { + IFC4X32.IfcDoorPanelProperties = IfcDoorPanelProperties; + class IfcDoorType extends IfcBuiltElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, OperationType, ParameterTakesPrecedence, UserDefinedOperationType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.OperationType = OperationType; + this.ParameterTakesPrecedence = ParameterTakesPrecedence; + this.UserDefinedOperationType = UserDefinedOperationType; + this.type = 2323601079; + } } - IfcSpaceTypeEnum.BERTH = { type: 3, value: "BERTH" }; - IfcSpaceTypeEnum.EXTERNAL = { type: 3, value: "EXTERNAL" }; - IfcSpaceTypeEnum.GFA = { type: 3, value: "GFA" }; - IfcSpaceTypeEnum.INTERNAL = { type: 3, value: "INTERNAL" }; - IfcSpaceTypeEnum.PARKING = { type: 3, value: "PARKING" }; - IfcSpaceTypeEnum.SPACE = { type: 3, value: "SPACE" }; - IfcSpaceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSpaceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcSpaceTypeEnum = IfcSpaceTypeEnum; - class IfcSpatialZoneTypeEnum { + IFC4X32.IfcDoorType = IfcDoorType; + class IfcDraughtingPreDefinedColour extends IfcPreDefinedColour { + constructor(Name) { + super(Name); + this.Name = Name; + this.type = 445594917; + } } - IfcSpatialZoneTypeEnum.CONSTRUCTION = { type: 3, value: "CONSTRUCTION" }; - IfcSpatialZoneTypeEnum.FIRESAFETY = { type: 3, value: "FIRESAFETY" }; - IfcSpatialZoneTypeEnum.INTERFERENCE = { type: 3, value: "INTERFERENCE" }; - IfcSpatialZoneTypeEnum.LIGHTING = { type: 3, value: "LIGHTING" }; - IfcSpatialZoneTypeEnum.OCCUPANCY = { type: 3, value: "OCCUPANCY" }; - IfcSpatialZoneTypeEnum.RESERVATION = { type: 3, value: "RESERVATION" }; - IfcSpatialZoneTypeEnum.SECURITY = { type: 3, value: "SECURITY" }; - IfcSpatialZoneTypeEnum.THERMAL = { type: 3, value: "THERMAL" }; - IfcSpatialZoneTypeEnum.TRANSPORT = { type: 3, value: "TRANSPORT" }; - IfcSpatialZoneTypeEnum.VENTILATION = { type: 3, value: "VENTILATION" }; - IfcSpatialZoneTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSpatialZoneTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcSpatialZoneTypeEnum = IfcSpatialZoneTypeEnum; - class IfcStackTerminalTypeEnum { + IFC4X32.IfcDraughtingPreDefinedColour = IfcDraughtingPreDefinedColour; + class IfcDraughtingPreDefinedCurveFont extends IfcPreDefinedCurveFont { + constructor(Name) { + super(Name); + this.Name = Name; + this.type = 4006246654; + } } - IfcStackTerminalTypeEnum.BIRDCAGE = { type: 3, value: "BIRDCAGE" }; - IfcStackTerminalTypeEnum.COWL = { type: 3, value: "COWL" }; - IfcStackTerminalTypeEnum.RAINWATERHOPPER = { type: 3, value: "RAINWATERHOPPER" }; - IfcStackTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcStackTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcStackTerminalTypeEnum = IfcStackTerminalTypeEnum; - class IfcStairFlightTypeEnum { + IFC4X32.IfcDraughtingPreDefinedCurveFont = IfcDraughtingPreDefinedCurveFont; + class IfcElement extends IfcProduct { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 1758889154; + } } - IfcStairFlightTypeEnum.CURVED = { type: 3, value: "CURVED" }; - IfcStairFlightTypeEnum.FREEFORM = { type: 3, value: "FREEFORM" }; - IfcStairFlightTypeEnum.SPIRAL = { type: 3, value: "SPIRAL" }; - IfcStairFlightTypeEnum.STRAIGHT = { type: 3, value: "STRAIGHT" }; - IfcStairFlightTypeEnum.WINDER = { type: 3, value: "WINDER" }; - IfcStairFlightTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcStairFlightTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcStairFlightTypeEnum = IfcStairFlightTypeEnum; - class IfcStairTypeEnum { + IFC4X32.IfcElement = IfcElement; + class IfcElementAssembly extends IfcElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, AssemblyPlace, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.AssemblyPlace = AssemblyPlace; + this.PredefinedType = PredefinedType; + this.type = 4123344466; + } } - IfcStairTypeEnum.CURVED_RUN_STAIR = { type: 3, value: "CURVED_RUN_STAIR" }; - IfcStairTypeEnum.DOUBLE_RETURN_STAIR = { type: 3, value: "DOUBLE_RETURN_STAIR" }; - IfcStairTypeEnum.HALF_TURN_STAIR = { type: 3, value: "HALF_TURN_STAIR" }; - IfcStairTypeEnum.HALF_WINDING_STAIR = { type: 3, value: "HALF_WINDING_STAIR" }; - IfcStairTypeEnum.LADDER = { type: 3, value: "LADDER" }; - IfcStairTypeEnum.QUARTER_TURN_STAIR = { type: 3, value: "QUARTER_TURN_STAIR" }; - IfcStairTypeEnum.QUARTER_WINDING_STAIR = { type: 3, value: "QUARTER_WINDING_STAIR" }; - IfcStairTypeEnum.SPIRAL_STAIR = { type: 3, value: "SPIRAL_STAIR" }; - IfcStairTypeEnum.STRAIGHT_RUN_STAIR = { type: 3, value: "STRAIGHT_RUN_STAIR" }; - IfcStairTypeEnum.THREE_QUARTER_TURN_STAIR = { type: 3, value: "THREE_QUARTER_TURN_STAIR" }; - IfcStairTypeEnum.THREE_QUARTER_WINDING_STAIR = { type: 3, value: "THREE_QUARTER_WINDING_STAIR" }; - IfcStairTypeEnum.TWO_CURVED_RUN_STAIR = { type: 3, value: "TWO_CURVED_RUN_STAIR" }; - IfcStairTypeEnum.TWO_QUARTER_TURN_STAIR = { type: 3, value: "TWO_QUARTER_TURN_STAIR" }; - IfcStairTypeEnum.TWO_QUARTER_WINDING_STAIR = { type: 3, value: "TWO_QUARTER_WINDING_STAIR" }; - IfcStairTypeEnum.TWO_STRAIGHT_RUN_STAIR = { type: 3, value: "TWO_STRAIGHT_RUN_STAIR" }; - IfcStairTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcStairTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcStairTypeEnum = IfcStairTypeEnum; - class IfcStateEnum { + IFC4X32.IfcElementAssembly = IfcElementAssembly; + class IfcElementAssemblyType extends IfcElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2397081782; + } } - IfcStateEnum.LOCKED = { type: 3, value: "LOCKED" }; - IfcStateEnum.READONLY = { type: 3, value: "READONLY" }; - IfcStateEnum.READONLYLOCKED = { type: 3, value: "READONLYLOCKED" }; - IfcStateEnum.READWRITE = { type: 3, value: "READWRITE" }; - IfcStateEnum.READWRITELOCKED = { type: 3, value: "READWRITELOCKED" }; - IFC4X32.IfcStateEnum = IfcStateEnum; - class IfcStructuralCurveActivityTypeEnum { + IFC4X32.IfcElementAssemblyType = IfcElementAssemblyType; + class IfcElementComponent extends IfcElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 1623761950; + } } - IfcStructuralCurveActivityTypeEnum.CONST = { type: 3, value: "CONST" }; - IfcStructuralCurveActivityTypeEnum.DISCRETE = { type: 3, value: "DISCRETE" }; - IfcStructuralCurveActivityTypeEnum.EQUIDISTANT = { type: 3, value: "EQUIDISTANT" }; - IfcStructuralCurveActivityTypeEnum.LINEAR = { type: 3, value: "LINEAR" }; - IfcStructuralCurveActivityTypeEnum.PARABOLA = { type: 3, value: "PARABOLA" }; - IfcStructuralCurveActivityTypeEnum.POLYGONAL = { type: 3, value: "POLYGONAL" }; - IfcStructuralCurveActivityTypeEnum.SINUS = { type: 3, value: "SINUS" }; - IfcStructuralCurveActivityTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcStructuralCurveActivityTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcStructuralCurveActivityTypeEnum = IfcStructuralCurveActivityTypeEnum; - class IfcStructuralCurveMemberTypeEnum { + IFC4X32.IfcElementComponent = IfcElementComponent; + class IfcElementComponentType extends IfcElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 2590856083; + } } - IfcStructuralCurveMemberTypeEnum.CABLE = { type: 3, value: "CABLE" }; - IfcStructuralCurveMemberTypeEnum.COMPRESSION_MEMBER = { type: 3, value: "COMPRESSION_MEMBER" }; - IfcStructuralCurveMemberTypeEnum.PIN_JOINED_MEMBER = { type: 3, value: "PIN_JOINED_MEMBER" }; - IfcStructuralCurveMemberTypeEnum.RIGID_JOINED_MEMBER = { type: 3, value: "RIGID_JOINED_MEMBER" }; - IfcStructuralCurveMemberTypeEnum.TENSION_MEMBER = { type: 3, value: "TENSION_MEMBER" }; - IfcStructuralCurveMemberTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcStructuralCurveMemberTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcStructuralCurveMemberTypeEnum = IfcStructuralCurveMemberTypeEnum; - class IfcStructuralSurfaceActivityTypeEnum { + IFC4X32.IfcElementComponentType = IfcElementComponentType; + class IfcEllipse extends IfcConic { + constructor(Position, SemiAxis1, SemiAxis2) { + super(Position); + this.Position = Position; + this.SemiAxis1 = SemiAxis1; + this.SemiAxis2 = SemiAxis2; + this.type = 1704287377; + } } - IfcStructuralSurfaceActivityTypeEnum.BILINEAR = { type: 3, value: "BILINEAR" }; - IfcStructuralSurfaceActivityTypeEnum.CONST = { type: 3, value: "CONST" }; - IfcStructuralSurfaceActivityTypeEnum.DISCRETE = { type: 3, value: "DISCRETE" }; - IfcStructuralSurfaceActivityTypeEnum.ISOCONTOUR = { type: 3, value: "ISOCONTOUR" }; - IfcStructuralSurfaceActivityTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcStructuralSurfaceActivityTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcStructuralSurfaceActivityTypeEnum = IfcStructuralSurfaceActivityTypeEnum; - class IfcStructuralSurfaceMemberTypeEnum { + IFC4X32.IfcEllipse = IfcEllipse; + class IfcEnergyConversionDeviceType extends IfcDistributionFlowElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 2107101300; + } } - IfcStructuralSurfaceMemberTypeEnum.BENDING_ELEMENT = { type: 3, value: "BENDING_ELEMENT" }; - IfcStructuralSurfaceMemberTypeEnum.MEMBRANE_ELEMENT = { type: 3, value: "MEMBRANE_ELEMENT" }; - IfcStructuralSurfaceMemberTypeEnum.SHELL = { type: 3, value: "SHELL" }; - IfcStructuralSurfaceMemberTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcStructuralSurfaceMemberTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcStructuralSurfaceMemberTypeEnum = IfcStructuralSurfaceMemberTypeEnum; - class IfcSubContractResourceTypeEnum { + IFC4X32.IfcEnergyConversionDeviceType = IfcEnergyConversionDeviceType; + class IfcEngineType extends IfcEnergyConversionDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 132023988; + } } - IfcSubContractResourceTypeEnum.PURCHASE = { type: 3, value: "PURCHASE" }; - IfcSubContractResourceTypeEnum.WORK = { type: 3, value: "WORK" }; - IfcSubContractResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSubContractResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcSubContractResourceTypeEnum = IfcSubContractResourceTypeEnum; - class IfcSurfaceFeatureTypeEnum { + IFC4X32.IfcEngineType = IfcEngineType; + class IfcEvaporativeCoolerType extends IfcEnergyConversionDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3174744832; + } } - IfcSurfaceFeatureTypeEnum.DEFECT = { type: 3, value: "DEFECT" }; - IfcSurfaceFeatureTypeEnum.HATCHMARKING = { type: 3, value: "HATCHMARKING" }; - IfcSurfaceFeatureTypeEnum.LINEMARKING = { type: 3, value: "LINEMARKING" }; - IfcSurfaceFeatureTypeEnum.MARK = { type: 3, value: "MARK" }; - IfcSurfaceFeatureTypeEnum.NONSKIDSURFACING = { type: 3, value: "NONSKIDSURFACING" }; - IfcSurfaceFeatureTypeEnum.PAVEMENTSURFACEMARKING = { type: 3, value: "PAVEMENTSURFACEMARKING" }; - IfcSurfaceFeatureTypeEnum.RUMBLESTRIP = { type: 3, value: "RUMBLESTRIP" }; - IfcSurfaceFeatureTypeEnum.SYMBOLMARKING = { type: 3, value: "SYMBOLMARKING" }; - IfcSurfaceFeatureTypeEnum.TAG = { type: 3, value: "TAG" }; - IfcSurfaceFeatureTypeEnum.TRANSVERSERUMBLESTRIP = { type: 3, value: "TRANSVERSERUMBLESTRIP" }; - IfcSurfaceFeatureTypeEnum.TREATMENT = { type: 3, value: "TREATMENT" }; - IfcSurfaceFeatureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSurfaceFeatureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcSurfaceFeatureTypeEnum = IfcSurfaceFeatureTypeEnum; - class IfcSurfaceSide { + IFC4X32.IfcEvaporativeCoolerType = IfcEvaporativeCoolerType; + class IfcEvaporatorType extends IfcEnergyConversionDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3390157468; + } } - IfcSurfaceSide.BOTH = { type: 3, value: "BOTH" }; - IfcSurfaceSide.NEGATIVE = { type: 3, value: "NEGATIVE" }; - IfcSurfaceSide.POSITIVE = { type: 3, value: "POSITIVE" }; - IFC4X32.IfcSurfaceSide = IfcSurfaceSide; - class IfcSwitchingDeviceTypeEnum { + IFC4X32.IfcEvaporatorType = IfcEvaporatorType; + class IfcEvent extends IfcProcess { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, PredefinedType, EventTriggerType, UserDefinedEventTriggerType, EventOccurenceTime) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.PredefinedType = PredefinedType; + this.EventTriggerType = EventTriggerType; + this.UserDefinedEventTriggerType = UserDefinedEventTriggerType; + this.EventOccurenceTime = EventOccurenceTime; + this.type = 4148101412; + } } - IfcSwitchingDeviceTypeEnum.CONTACTOR = { type: 3, value: "CONTACTOR" }; - IfcSwitchingDeviceTypeEnum.DIMMERSWITCH = { type: 3, value: "DIMMERSWITCH" }; - IfcSwitchingDeviceTypeEnum.EMERGENCYSTOP = { type: 3, value: "EMERGENCYSTOP" }; - IfcSwitchingDeviceTypeEnum.KEYPAD = { type: 3, value: "KEYPAD" }; - IfcSwitchingDeviceTypeEnum.MOMENTARYSWITCH = { type: 3, value: "MOMENTARYSWITCH" }; - IfcSwitchingDeviceTypeEnum.RELAY = { type: 3, value: "RELAY" }; - IfcSwitchingDeviceTypeEnum.SELECTORSWITCH = { type: 3, value: "SELECTORSWITCH" }; - IfcSwitchingDeviceTypeEnum.STARTER = { type: 3, value: "STARTER" }; - IfcSwitchingDeviceTypeEnum.START_AND_STOP_EQUIPMENT = { type: 3, value: "START_AND_STOP_EQUIPMENT" }; - IfcSwitchingDeviceTypeEnum.SWITCHDISCONNECTOR = { type: 3, value: "SWITCHDISCONNECTOR" }; - IfcSwitchingDeviceTypeEnum.TOGGLESWITCH = { type: 3, value: "TOGGLESWITCH" }; - IfcSwitchingDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSwitchingDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcSwitchingDeviceTypeEnum = IfcSwitchingDeviceTypeEnum; - class IfcSystemFurnitureElementTypeEnum { + IFC4X32.IfcEvent = IfcEvent; + class IfcExternalSpatialStructureElement extends IfcSpatialElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.LongName = LongName; + this.type = 2853485674; + } } - IfcSystemFurnitureElementTypeEnum.PANEL = { type: 3, value: "PANEL" }; - IfcSystemFurnitureElementTypeEnum.SUBRACK = { type: 3, value: "SUBRACK" }; - IfcSystemFurnitureElementTypeEnum.WORKSURFACE = { type: 3, value: "WORKSURFACE" }; - IfcSystemFurnitureElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSystemFurnitureElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcSystemFurnitureElementTypeEnum = IfcSystemFurnitureElementTypeEnum; - class IfcTankTypeEnum { + IFC4X32.IfcExternalSpatialStructureElement = IfcExternalSpatialStructureElement; + class IfcFacetedBrep extends IfcManifoldSolidBrep { + constructor(Outer) { + super(Outer); + this.Outer = Outer; + this.type = 807026263; + } } - IfcTankTypeEnum.BASIN = { type: 3, value: "BASIN" }; - IfcTankTypeEnum.BREAKPRESSURE = { type: 3, value: "BREAKPRESSURE" }; - IfcTankTypeEnum.EXPANSION = { type: 3, value: "EXPANSION" }; - IfcTankTypeEnum.FEEDANDEXPANSION = { type: 3, value: "FEEDANDEXPANSION" }; - IfcTankTypeEnum.OILRETENTIONTRAY = { type: 3, value: "OILRETENTIONTRAY" }; - IfcTankTypeEnum.PRESSUREVESSEL = { type: 3, value: "PRESSUREVESSEL" }; - IfcTankTypeEnum.STORAGE = { type: 3, value: "STORAGE" }; - IfcTankTypeEnum.VESSEL = { type: 3, value: "VESSEL" }; - IfcTankTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcTankTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcTankTypeEnum = IfcTankTypeEnum; - class IfcTaskDurationEnum { + IFC4X32.IfcFacetedBrep = IfcFacetedBrep; + class IfcFacetedBrepWithVoids extends IfcFacetedBrep { + constructor(Outer, Voids) { + super(Outer); + this.Outer = Outer; + this.Voids = Voids; + this.type = 3737207727; + } } - IfcTaskDurationEnum.ELAPSEDTIME = { type: 3, value: "ELAPSEDTIME" }; - IfcTaskDurationEnum.WORKTIME = { type: 3, value: "WORKTIME" }; - IfcTaskDurationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcTaskDurationEnum = IfcTaskDurationEnum; - class IfcTaskTypeEnum { + IFC4X32.IfcFacetedBrepWithVoids = IfcFacetedBrepWithVoids; + class IfcFacility extends IfcSpatialStructureElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.LongName = LongName; + this.CompositionType = CompositionType; + this.type = 24185140; + } } - IfcTaskTypeEnum.ADJUSTMENT = { type: 3, value: "ADJUSTMENT" }; - IfcTaskTypeEnum.ATTENDANCE = { type: 3, value: "ATTENDANCE" }; - IfcTaskTypeEnum.CALIBRATION = { type: 3, value: "CALIBRATION" }; - IfcTaskTypeEnum.CONSTRUCTION = { type: 3, value: "CONSTRUCTION" }; - IfcTaskTypeEnum.DEMOLITION = { type: 3, value: "DEMOLITION" }; - IfcTaskTypeEnum.DISMANTLE = { type: 3, value: "DISMANTLE" }; - IfcTaskTypeEnum.DISPOSAL = { type: 3, value: "DISPOSAL" }; - IfcTaskTypeEnum.EMERGENCY = { type: 3, value: "EMERGENCY" }; - IfcTaskTypeEnum.INSPECTION = { type: 3, value: "INSPECTION" }; - IfcTaskTypeEnum.INSTALLATION = { type: 3, value: "INSTALLATION" }; - IfcTaskTypeEnum.LOGISTIC = { type: 3, value: "LOGISTIC" }; - IfcTaskTypeEnum.MAINTENANCE = { type: 3, value: "MAINTENANCE" }; - IfcTaskTypeEnum.MOVE = { type: 3, value: "MOVE" }; - IfcTaskTypeEnum.OPERATION = { type: 3, value: "OPERATION" }; - IfcTaskTypeEnum.REMOVAL = { type: 3, value: "REMOVAL" }; - IfcTaskTypeEnum.RENOVATION = { type: 3, value: "RENOVATION" }; - IfcTaskTypeEnum.SAFETY = { type: 3, value: "SAFETY" }; - IfcTaskTypeEnum.SHUTDOWN = { type: 3, value: "SHUTDOWN" }; - IfcTaskTypeEnum.STARTUP = { type: 3, value: "STARTUP" }; - IfcTaskTypeEnum.TESTING = { type: 3, value: "TESTING" }; - IfcTaskTypeEnum.TROUBLESHOOTING = { type: 3, value: "TROUBLESHOOTING" }; - IfcTaskTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcTaskTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcTaskTypeEnum = IfcTaskTypeEnum; - class IfcTendonAnchorTypeEnum { + IFC4X32.IfcFacility = IfcFacility; + class IfcFacilityPart extends IfcSpatialStructureElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.LongName = LongName; + this.CompositionType = CompositionType; + this.UsageType = UsageType; + this.type = 1310830890; + } } - IfcTendonAnchorTypeEnum.COUPLER = { type: 3, value: "COUPLER" }; - IfcTendonAnchorTypeEnum.FIXED_END = { type: 3, value: "FIXED_END" }; - IfcTendonAnchorTypeEnum.TENSIONING_END = { type: 3, value: "TENSIONING_END" }; - IfcTendonAnchorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcTendonAnchorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcTendonAnchorTypeEnum = IfcTendonAnchorTypeEnum; - class IfcTendonConduitTypeEnum { + IFC4X32.IfcFacilityPart = IfcFacilityPart; + class IfcFacilityPartCommon extends IfcFacilityPart { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.LongName = LongName; + this.CompositionType = CompositionType; + this.UsageType = UsageType; + this.PredefinedType = PredefinedType; + this.type = 4228831410; + } } - IfcTendonConduitTypeEnum.COUPLER = { type: 3, value: "COUPLER" }; - IfcTendonConduitTypeEnum.DIABOLO = { type: 3, value: "DIABOLO" }; - IfcTendonConduitTypeEnum.DUCT = { type: 3, value: "DUCT" }; - IfcTendonConduitTypeEnum.GROUTING_DUCT = { type: 3, value: "GROUTING_DUCT" }; - IfcTendonConduitTypeEnum.TRUMPET = { type: 3, value: "TRUMPET" }; - IfcTendonConduitTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcTendonConduitTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcTendonConduitTypeEnum = IfcTendonConduitTypeEnum; - class IfcTendonTypeEnum { + IFC4X32.IfcFacilityPartCommon = IfcFacilityPartCommon; + class IfcFastener extends IfcElementComponent { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 647756555; + } } - IfcTendonTypeEnum.BAR = { type: 3, value: "BAR" }; - IfcTendonTypeEnum.COATED = { type: 3, value: "COATED" }; - IfcTendonTypeEnum.STRAND = { type: 3, value: "STRAND" }; - IfcTendonTypeEnum.WIRE = { type: 3, value: "WIRE" }; - IfcTendonTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcTendonTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcTendonTypeEnum = IfcTendonTypeEnum; - class IfcTextPath { + IFC4X32.IfcFastener = IfcFastener; + class IfcFastenerType extends IfcElementComponentType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2489546625; + } } - IfcTextPath.DOWN = { type: 3, value: "DOWN" }; - IfcTextPath.LEFT = { type: 3, value: "LEFT" }; - IfcTextPath.RIGHT = { type: 3, value: "RIGHT" }; - IfcTextPath.UP = { type: 3, value: "UP" }; - IFC4X32.IfcTextPath = IfcTextPath; - class IfcTimeSeriesDataTypeEnum { + IFC4X32.IfcFastenerType = IfcFastenerType; + class IfcFeatureElement extends IfcElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 2827207264; + } } - IfcTimeSeriesDataTypeEnum.CONTINUOUS = { type: 3, value: "CONTINUOUS" }; - IfcTimeSeriesDataTypeEnum.DISCRETE = { type: 3, value: "DISCRETE" }; - IfcTimeSeriesDataTypeEnum.DISCRETEBINARY = { type: 3, value: "DISCRETEBINARY" }; - IfcTimeSeriesDataTypeEnum.PIECEWISEBINARY = { type: 3, value: "PIECEWISEBINARY" }; - IfcTimeSeriesDataTypeEnum.PIECEWISECONSTANT = { type: 3, value: "PIECEWISECONSTANT" }; - IfcTimeSeriesDataTypeEnum.PIECEWISECONTINUOUS = { type: 3, value: "PIECEWISECONTINUOUS" }; - IfcTimeSeriesDataTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcTimeSeriesDataTypeEnum = IfcTimeSeriesDataTypeEnum; - class IfcTrackElementTypeEnum { + IFC4X32.IfcFeatureElement = IfcFeatureElement; + class IfcFeatureElementAddition extends IfcFeatureElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 2143335405; + } } - IfcTrackElementTypeEnum.BLOCKINGDEVICE = { type: 3, value: "BLOCKINGDEVICE" }; - IfcTrackElementTypeEnum.DERAILER = { type: 3, value: "DERAILER" }; - IfcTrackElementTypeEnum.FROG = { type: 3, value: "FROG" }; - IfcTrackElementTypeEnum.HALF_SET_OF_BLADES = { type: 3, value: "HALF_SET_OF_BLADES" }; - IfcTrackElementTypeEnum.SLEEPER = { type: 3, value: "SLEEPER" }; - IfcTrackElementTypeEnum.SPEEDREGULATOR = { type: 3, value: "SPEEDREGULATOR" }; - IfcTrackElementTypeEnum.TRACKENDOFALIGNMENT = { type: 3, value: "TRACKENDOFALIGNMENT" }; - IfcTrackElementTypeEnum.VEHICLESTOP = { type: 3, value: "VEHICLESTOP" }; - IfcTrackElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcTrackElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcTrackElementTypeEnum = IfcTrackElementTypeEnum; - class IfcTransformerTypeEnum { + IFC4X32.IfcFeatureElementAddition = IfcFeatureElementAddition; + class IfcFeatureElementSubtraction extends IfcFeatureElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 1287392070; + } } - IfcTransformerTypeEnum.CHOPPER = { type: 3, value: "CHOPPER" }; - IfcTransformerTypeEnum.COMBINED = { type: 3, value: "COMBINED" }; - IfcTransformerTypeEnum.CURRENT = { type: 3, value: "CURRENT" }; - IfcTransformerTypeEnum.FREQUENCY = { type: 3, value: "FREQUENCY" }; - IfcTransformerTypeEnum.INVERTER = { type: 3, value: "INVERTER" }; - IfcTransformerTypeEnum.RECTIFIER = { type: 3, value: "RECTIFIER" }; - IfcTransformerTypeEnum.VOLTAGE = { type: 3, value: "VOLTAGE" }; - IfcTransformerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcTransformerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcTransformerTypeEnum = IfcTransformerTypeEnum; - class IfcTransitionCode { + IFC4X32.IfcFeatureElementSubtraction = IfcFeatureElementSubtraction; + class IfcFlowControllerType extends IfcDistributionFlowElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 3907093117; + } } - IfcTransitionCode.CONTINUOUS = { type: 3, value: "CONTINUOUS" }; - IfcTransitionCode.CONTSAMEGRADIENT = { type: 3, value: "CONTSAMEGRADIENT" }; - IfcTransitionCode.CONTSAMEGRADIENTSAMECURVATURE = { type: 3, value: "CONTSAMEGRADIENTSAMECURVATURE" }; - IfcTransitionCode.DISCONTINUOUS = { type: 3, value: "DISCONTINUOUS" }; - IFC4X32.IfcTransitionCode = IfcTransitionCode; - class IfcTransportElementTypeEnum { + IFC4X32.IfcFlowControllerType = IfcFlowControllerType; + class IfcFlowFittingType extends IfcDistributionFlowElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 3198132628; + } } - IfcTransportElementTypeEnum.CRANEWAY = { type: 3, value: "CRANEWAY" }; - IfcTransportElementTypeEnum.ELEVATOR = { type: 3, value: "ELEVATOR" }; - IfcTransportElementTypeEnum.ESCALATOR = { type: 3, value: "ESCALATOR" }; - IfcTransportElementTypeEnum.HAULINGGEAR = { type: 3, value: "HAULINGGEAR" }; - IfcTransportElementTypeEnum.LIFTINGGEAR = { type: 3, value: "LIFTINGGEAR" }; - IfcTransportElementTypeEnum.MOVINGWALKWAY = { type: 3, value: "MOVINGWALKWAY" }; - IfcTransportElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcTransportElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcTransportElementTypeEnum = IfcTransportElementTypeEnum; - class IfcTrimmingPreference { + IFC4X32.IfcFlowFittingType = IfcFlowFittingType; + class IfcFlowMeterType extends IfcFlowControllerType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3815607619; + } } - IfcTrimmingPreference.CARTESIAN = { type: 3, value: "CARTESIAN" }; - IfcTrimmingPreference.PARAMETER = { type: 3, value: "PARAMETER" }; - IfcTrimmingPreference.UNSPECIFIED = { type: 3, value: "UNSPECIFIED" }; - IFC4X32.IfcTrimmingPreference = IfcTrimmingPreference; - class IfcTubeBundleTypeEnum { + IFC4X32.IfcFlowMeterType = IfcFlowMeterType; + class IfcFlowMovingDeviceType extends IfcDistributionFlowElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 1482959167; + } } - IfcTubeBundleTypeEnum.FINNED = { type: 3, value: "FINNED" }; - IfcTubeBundleTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcTubeBundleTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcTubeBundleTypeEnum = IfcTubeBundleTypeEnum; - class IfcUnitEnum { + IFC4X32.IfcFlowMovingDeviceType = IfcFlowMovingDeviceType; + class IfcFlowSegmentType extends IfcDistributionFlowElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 1834744321; + } } - IfcUnitEnum.ABSORBEDDOSEUNIT = { type: 3, value: "ABSORBEDDOSEUNIT" }; - IfcUnitEnum.AMOUNTOFSUBSTANCEUNIT = { type: 3, value: "AMOUNTOFSUBSTANCEUNIT" }; - IfcUnitEnum.AREAUNIT = { type: 3, value: "AREAUNIT" }; - IfcUnitEnum.DOSEEQUIVALENTUNIT = { type: 3, value: "DOSEEQUIVALENTUNIT" }; - IfcUnitEnum.ELECTRICCAPACITANCEUNIT = { type: 3, value: "ELECTRICCAPACITANCEUNIT" }; - IfcUnitEnum.ELECTRICCHARGEUNIT = { type: 3, value: "ELECTRICCHARGEUNIT" }; - IfcUnitEnum.ELECTRICCONDUCTANCEUNIT = { type: 3, value: "ELECTRICCONDUCTANCEUNIT" }; - IfcUnitEnum.ELECTRICCURRENTUNIT = { type: 3, value: "ELECTRICCURRENTUNIT" }; - IfcUnitEnum.ELECTRICRESISTANCEUNIT = { type: 3, value: "ELECTRICRESISTANCEUNIT" }; - IfcUnitEnum.ELECTRICVOLTAGEUNIT = { type: 3, value: "ELECTRICVOLTAGEUNIT" }; - IfcUnitEnum.ENERGYUNIT = { type: 3, value: "ENERGYUNIT" }; - IfcUnitEnum.FORCEUNIT = { type: 3, value: "FORCEUNIT" }; - IfcUnitEnum.FREQUENCYUNIT = { type: 3, value: "FREQUENCYUNIT" }; - IfcUnitEnum.ILLUMINANCEUNIT = { type: 3, value: "ILLUMINANCEUNIT" }; - IfcUnitEnum.INDUCTANCEUNIT = { type: 3, value: "INDUCTANCEUNIT" }; - IfcUnitEnum.LENGTHUNIT = { type: 3, value: "LENGTHUNIT" }; - IfcUnitEnum.LUMINOUSFLUXUNIT = { type: 3, value: "LUMINOUSFLUXUNIT" }; - IfcUnitEnum.LUMINOUSINTENSITYUNIT = { type: 3, value: "LUMINOUSINTENSITYUNIT" }; - IfcUnitEnum.MAGNETICFLUXDENSITYUNIT = { type: 3, value: "MAGNETICFLUXDENSITYUNIT" }; - IfcUnitEnum.MAGNETICFLUXUNIT = { type: 3, value: "MAGNETICFLUXUNIT" }; - IfcUnitEnum.MASSUNIT = { type: 3, value: "MASSUNIT" }; - IfcUnitEnum.PLANEANGLEUNIT = { type: 3, value: "PLANEANGLEUNIT" }; - IfcUnitEnum.POWERUNIT = { type: 3, value: "POWERUNIT" }; - IfcUnitEnum.PRESSUREUNIT = { type: 3, value: "PRESSUREUNIT" }; - IfcUnitEnum.RADIOACTIVITYUNIT = { type: 3, value: "RADIOACTIVITYUNIT" }; - IfcUnitEnum.SOLIDANGLEUNIT = { type: 3, value: "SOLIDANGLEUNIT" }; - IfcUnitEnum.THERMODYNAMICTEMPERATUREUNIT = { type: 3, value: "THERMODYNAMICTEMPERATUREUNIT" }; - IfcUnitEnum.TIMEUNIT = { type: 3, value: "TIMEUNIT" }; - IfcUnitEnum.VOLUMEUNIT = { type: 3, value: "VOLUMEUNIT" }; - IfcUnitEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IFC4X32.IfcUnitEnum = IfcUnitEnum; - class IfcUnitaryControlElementTypeEnum { + IFC4X32.IfcFlowSegmentType = IfcFlowSegmentType; + class IfcFlowStorageDeviceType extends IfcDistributionFlowElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 1339347760; + } } - IfcUnitaryControlElementTypeEnum.ALARMPANEL = { type: 3, value: "ALARMPANEL" }; - IfcUnitaryControlElementTypeEnum.BASESTATIONCONTROLLER = { type: 3, value: "BASESTATIONCONTROLLER" }; - IfcUnitaryControlElementTypeEnum.COMBINED = { type: 3, value: "COMBINED" }; - IfcUnitaryControlElementTypeEnum.CONTROLPANEL = { type: 3, value: "CONTROLPANEL" }; - IfcUnitaryControlElementTypeEnum.GASDETECTIONPANEL = { type: 3, value: "GASDETECTIONPANEL" }; - IfcUnitaryControlElementTypeEnum.HUMIDISTAT = { type: 3, value: "HUMIDISTAT" }; - IfcUnitaryControlElementTypeEnum.INDICATORPANEL = { type: 3, value: "INDICATORPANEL" }; - IfcUnitaryControlElementTypeEnum.MIMICPANEL = { type: 3, value: "MIMICPANEL" }; - IfcUnitaryControlElementTypeEnum.THERMOSTAT = { type: 3, value: "THERMOSTAT" }; - IfcUnitaryControlElementTypeEnum.WEATHERSTATION = { type: 3, value: "WEATHERSTATION" }; - IfcUnitaryControlElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcUnitaryControlElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcUnitaryControlElementTypeEnum = IfcUnitaryControlElementTypeEnum; - class IfcUnitaryEquipmentTypeEnum { + IFC4X32.IfcFlowStorageDeviceType = IfcFlowStorageDeviceType; + class IfcFlowTerminalType extends IfcDistributionFlowElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 2297155007; + } } - IfcUnitaryEquipmentTypeEnum.AIRCONDITIONINGUNIT = { type: 3, value: "AIRCONDITIONINGUNIT" }; - IfcUnitaryEquipmentTypeEnum.AIRHANDLER = { type: 3, value: "AIRHANDLER" }; - IfcUnitaryEquipmentTypeEnum.DEHUMIDIFIER = { type: 3, value: "DEHUMIDIFIER" }; - IfcUnitaryEquipmentTypeEnum.ROOFTOPUNIT = { type: 3, value: "ROOFTOPUNIT" }; - IfcUnitaryEquipmentTypeEnum.SPLITSYSTEM = { type: 3, value: "SPLITSYSTEM" }; - IfcUnitaryEquipmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcUnitaryEquipmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcUnitaryEquipmentTypeEnum = IfcUnitaryEquipmentTypeEnum; - class IfcValveTypeEnum { + IFC4X32.IfcFlowTerminalType = IfcFlowTerminalType; + class IfcFlowTreatmentDeviceType extends IfcDistributionFlowElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 3009222698; + } } - IfcValveTypeEnum.AIRRELEASE = { type: 3, value: "AIRRELEASE" }; - IfcValveTypeEnum.ANTIVACUUM = { type: 3, value: "ANTIVACUUM" }; - IfcValveTypeEnum.CHANGEOVER = { type: 3, value: "CHANGEOVER" }; - IfcValveTypeEnum.CHECK = { type: 3, value: "CHECK" }; - IfcValveTypeEnum.COMMISSIONING = { type: 3, value: "COMMISSIONING" }; - IfcValveTypeEnum.DIVERTING = { type: 3, value: "DIVERTING" }; - IfcValveTypeEnum.DOUBLECHECK = { type: 3, value: "DOUBLECHECK" }; - IfcValveTypeEnum.DOUBLEREGULATING = { type: 3, value: "DOUBLEREGULATING" }; - IfcValveTypeEnum.DRAWOFFCOCK = { type: 3, value: "DRAWOFFCOCK" }; - IfcValveTypeEnum.FAUCET = { type: 3, value: "FAUCET" }; - IfcValveTypeEnum.FLUSHING = { type: 3, value: "FLUSHING" }; - IfcValveTypeEnum.GASCOCK = { type: 3, value: "GASCOCK" }; - IfcValveTypeEnum.GASTAP = { type: 3, value: "GASTAP" }; - IfcValveTypeEnum.ISOLATING = { type: 3, value: "ISOLATING" }; - IfcValveTypeEnum.MIXING = { type: 3, value: "MIXING" }; - IfcValveTypeEnum.PRESSUREREDUCING = { type: 3, value: "PRESSUREREDUCING" }; - IfcValveTypeEnum.PRESSURERELIEF = { type: 3, value: "PRESSURERELIEF" }; - IfcValveTypeEnum.REGULATING = { type: 3, value: "REGULATING" }; - IfcValveTypeEnum.SAFETYCUTOFF = { type: 3, value: "SAFETYCUTOFF" }; - IfcValveTypeEnum.STEAMTRAP = { type: 3, value: "STEAMTRAP" }; - IfcValveTypeEnum.STOPCOCK = { type: 3, value: "STOPCOCK" }; - IfcValveTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcValveTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcValveTypeEnum = IfcValveTypeEnum; - class IfcVehicleTypeEnum { + IFC4X32.IfcFlowTreatmentDeviceType = IfcFlowTreatmentDeviceType; + class IfcFootingType extends IfcBuiltElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1893162501; + } } - IfcVehicleTypeEnum.CARGO = { type: 3, value: "CARGO" }; - IfcVehicleTypeEnum.ROLLINGSTOCK = { type: 3, value: "ROLLINGSTOCK" }; - IfcVehicleTypeEnum.VEHICLE = { type: 3, value: "VEHICLE" }; - IfcVehicleTypeEnum.VEHICLEAIR = { type: 3, value: "VEHICLEAIR" }; - IfcVehicleTypeEnum.VEHICLEMARINE = { type: 3, value: "VEHICLEMARINE" }; - IfcVehicleTypeEnum.VEHICLETRACKED = { type: 3, value: "VEHICLETRACKED" }; - IfcVehicleTypeEnum.VEHICLEWHEELED = { type: 3, value: "VEHICLEWHEELED" }; - IfcVehicleTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcVehicleTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcVehicleTypeEnum = IfcVehicleTypeEnum; - class IfcVibrationDamperTypeEnum { + IFC4X32.IfcFootingType = IfcFootingType; + class IfcFurnishingElement extends IfcElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 263784265; + } } - IfcVibrationDamperTypeEnum.AXIAL_YIELD = { type: 3, value: "AXIAL_YIELD" }; - IfcVibrationDamperTypeEnum.BENDING_YIELD = { type: 3, value: "BENDING_YIELD" }; - IfcVibrationDamperTypeEnum.FRICTION = { type: 3, value: "FRICTION" }; - IfcVibrationDamperTypeEnum.RUBBER = { type: 3, value: "RUBBER" }; - IfcVibrationDamperTypeEnum.SHEAR_YIELD = { type: 3, value: "SHEAR_YIELD" }; - IfcVibrationDamperTypeEnum.VISCOUS = { type: 3, value: "VISCOUS" }; - IfcVibrationDamperTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcVibrationDamperTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcVibrationDamperTypeEnum = IfcVibrationDamperTypeEnum; - class IfcVibrationIsolatorTypeEnum { + IFC4X32.IfcFurnishingElement = IfcFurnishingElement; + class IfcFurniture extends IfcFurnishingElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1509553395; + } } - IfcVibrationIsolatorTypeEnum.BASE = { type: 3, value: "BASE" }; - IfcVibrationIsolatorTypeEnum.COMPRESSION = { type: 3, value: "COMPRESSION" }; - IfcVibrationIsolatorTypeEnum.SPRING = { type: 3, value: "SPRING" }; - IfcVibrationIsolatorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcVibrationIsolatorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcVibrationIsolatorTypeEnum = IfcVibrationIsolatorTypeEnum; - class IfcVirtualElementTypeEnum { + IFC4X32.IfcFurniture = IfcFurniture; + class IfcGeographicElement extends IfcElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3493046030; + } } - IfcVirtualElementTypeEnum.BOUNDARY = { type: 3, value: "BOUNDARY" }; - IfcVirtualElementTypeEnum.CLEARANCE = { type: 3, value: "CLEARANCE" }; - IfcVirtualElementTypeEnum.PROVISIONFORVOID = { type: 3, value: "PROVISIONFORVOID" }; - IfcVirtualElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcVirtualElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcVirtualElementTypeEnum = IfcVirtualElementTypeEnum; - class IfcVoidingFeatureTypeEnum { + IFC4X32.IfcGeographicElement = IfcGeographicElement; + class IfcGeotechnicalElement extends IfcElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 4230923436; + } } - IfcVoidingFeatureTypeEnum.CHAMFER = { type: 3, value: "CHAMFER" }; - IfcVoidingFeatureTypeEnum.CUTOUT = { type: 3, value: "CUTOUT" }; - IfcVoidingFeatureTypeEnum.EDGE = { type: 3, value: "EDGE" }; - IfcVoidingFeatureTypeEnum.HOLE = { type: 3, value: "HOLE" }; - IfcVoidingFeatureTypeEnum.MITER = { type: 3, value: "MITER" }; - IfcVoidingFeatureTypeEnum.NOTCH = { type: 3, value: "NOTCH" }; - IfcVoidingFeatureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcVoidingFeatureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcVoidingFeatureTypeEnum = IfcVoidingFeatureTypeEnum; - class IfcWallTypeEnum { + IFC4X32.IfcGeotechnicalElement = IfcGeotechnicalElement; + class IfcGeotechnicalStratum extends IfcGeotechnicalElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1594536857; + } } - IfcWallTypeEnum.ELEMENTEDWALL = { type: 3, value: "ELEMENTEDWALL" }; - IfcWallTypeEnum.MOVABLE = { type: 3, value: "MOVABLE" }; - IfcWallTypeEnum.PARAPET = { type: 3, value: "PARAPET" }; - IfcWallTypeEnum.PARTITIONING = { type: 3, value: "PARTITIONING" }; - IfcWallTypeEnum.PLUMBINGWALL = { type: 3, value: "PLUMBINGWALL" }; - IfcWallTypeEnum.POLYGONAL = { type: 3, value: "POLYGONAL" }; - IfcWallTypeEnum.RETAININGWALL = { type: 3, value: "RETAININGWALL" }; - IfcWallTypeEnum.SHEAR = { type: 3, value: "SHEAR" }; - IfcWallTypeEnum.SOLIDWALL = { type: 3, value: "SOLIDWALL" }; - IfcWallTypeEnum.STANDARD = { type: 3, value: "STANDARD" }; - IfcWallTypeEnum.WAVEWALL = { type: 3, value: "WAVEWALL" }; - IfcWallTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcWallTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcWallTypeEnum = IfcWallTypeEnum; - class IfcWasteTerminalTypeEnum { + IFC4X32.IfcGeotechnicalStratum = IfcGeotechnicalStratum; + class IfcGradientCurve extends IfcCompositeCurve { + constructor(Segments, SelfIntersect, BaseCurve, EndPoint) { + super(Segments, SelfIntersect); + this.Segments = Segments; + this.SelfIntersect = SelfIntersect; + this.BaseCurve = BaseCurve; + this.EndPoint = EndPoint; + this.type = 2898700619; + } } - IfcWasteTerminalTypeEnum.FLOORTRAP = { type: 3, value: "FLOORTRAP" }; - IfcWasteTerminalTypeEnum.FLOORWASTE = { type: 3, value: "FLOORWASTE" }; - IfcWasteTerminalTypeEnum.GULLYSUMP = { type: 3, value: "GULLYSUMP" }; - IfcWasteTerminalTypeEnum.GULLYTRAP = { type: 3, value: "GULLYTRAP" }; - IfcWasteTerminalTypeEnum.ROOFDRAIN = { type: 3, value: "ROOFDRAIN" }; - IfcWasteTerminalTypeEnum.WASTEDISPOSALUNIT = { type: 3, value: "WASTEDISPOSALUNIT" }; - IfcWasteTerminalTypeEnum.WASTETRAP = { type: 3, value: "WASTETRAP" }; - IfcWasteTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcWasteTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcWasteTerminalTypeEnum = IfcWasteTerminalTypeEnum; - class IfcWindowPanelOperationEnum { + IFC4X32.IfcGradientCurve = IfcGradientCurve; + class IfcGroup extends IfcObject { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.type = 2706460486; + } } - IfcWindowPanelOperationEnum.BOTTOMHUNG = { type: 3, value: "BOTTOMHUNG" }; - IfcWindowPanelOperationEnum.FIXEDCASEMENT = { type: 3, value: "FIXEDCASEMENT" }; - IfcWindowPanelOperationEnum.OTHEROPERATION = { type: 3, value: "OTHEROPERATION" }; - IfcWindowPanelOperationEnum.PIVOTHORIZONTAL = { type: 3, value: "PIVOTHORIZONTAL" }; - IfcWindowPanelOperationEnum.PIVOTVERTICAL = { type: 3, value: "PIVOTVERTICAL" }; - IfcWindowPanelOperationEnum.REMOVABLECASEMENT = { type: 3, value: "REMOVABLECASEMENT" }; - IfcWindowPanelOperationEnum.SIDEHUNGLEFTHAND = { type: 3, value: "SIDEHUNGLEFTHAND" }; - IfcWindowPanelOperationEnum.SIDEHUNGRIGHTHAND = { type: 3, value: "SIDEHUNGRIGHTHAND" }; - IfcWindowPanelOperationEnum.SLIDINGHORIZONTAL = { type: 3, value: "SLIDINGHORIZONTAL" }; - IfcWindowPanelOperationEnum.SLIDINGVERTICAL = { type: 3, value: "SLIDINGVERTICAL" }; - IfcWindowPanelOperationEnum.TILTANDTURNLEFTHAND = { type: 3, value: "TILTANDTURNLEFTHAND" }; - IfcWindowPanelOperationEnum.TILTANDTURNRIGHTHAND = { type: 3, value: "TILTANDTURNRIGHTHAND" }; - IfcWindowPanelOperationEnum.TOPHUNG = { type: 3, value: "TOPHUNG" }; - IfcWindowPanelOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcWindowPanelOperationEnum = IfcWindowPanelOperationEnum; - class IfcWindowPanelPositionEnum { + IFC4X32.IfcGroup = IfcGroup; + class IfcHeatExchangerType extends IfcEnergyConversionDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1251058090; + } } - IfcWindowPanelPositionEnum.BOTTOM = { type: 3, value: "BOTTOM" }; - IfcWindowPanelPositionEnum.LEFT = { type: 3, value: "LEFT" }; - IfcWindowPanelPositionEnum.MIDDLE = { type: 3, value: "MIDDLE" }; - IfcWindowPanelPositionEnum.RIGHT = { type: 3, value: "RIGHT" }; - IfcWindowPanelPositionEnum.TOP = { type: 3, value: "TOP" }; - IfcWindowPanelPositionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcWindowPanelPositionEnum = IfcWindowPanelPositionEnum; - class IfcWindowStyleConstructionEnum { + IFC4X32.IfcHeatExchangerType = IfcHeatExchangerType; + class IfcHumidifierType extends IfcEnergyConversionDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1806887404; + } } - IfcWindowStyleConstructionEnum.ALUMINIUM = { type: 3, value: "ALUMINIUM" }; - IfcWindowStyleConstructionEnum.ALUMINIUM_WOOD = { type: 3, value: "ALUMINIUM_WOOD" }; - IfcWindowStyleConstructionEnum.HIGH_GRADE_STEEL = { type: 3, value: "HIGH_GRADE_STEEL" }; - IfcWindowStyleConstructionEnum.OTHER_CONSTRUCTION = { type: 3, value: "OTHER_CONSTRUCTION" }; - IfcWindowStyleConstructionEnum.PLASTIC = { type: 3, value: "PLASTIC" }; - IfcWindowStyleConstructionEnum.STEEL = { type: 3, value: "STEEL" }; - IfcWindowStyleConstructionEnum.WOOD = { type: 3, value: "WOOD" }; - IfcWindowStyleConstructionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcWindowStyleConstructionEnum = IfcWindowStyleConstructionEnum; - class IfcWindowStyleOperationEnum { + IFC4X32.IfcHumidifierType = IfcHumidifierType; + class IfcImpactProtectionDevice extends IfcElementComponent { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 2568555532; + } } - IfcWindowStyleOperationEnum.DOUBLE_PANEL_HORIZONTAL = { type: 3, value: "DOUBLE_PANEL_HORIZONTAL" }; - IfcWindowStyleOperationEnum.DOUBLE_PANEL_VERTICAL = { type: 3, value: "DOUBLE_PANEL_VERTICAL" }; - IfcWindowStyleOperationEnum.SINGLE_PANEL = { type: 3, value: "SINGLE_PANEL" }; - IfcWindowStyleOperationEnum.TRIPLE_PANEL_BOTTOM = { type: 3, value: "TRIPLE_PANEL_BOTTOM" }; - IfcWindowStyleOperationEnum.TRIPLE_PANEL_HORIZONTAL = { type: 3, value: "TRIPLE_PANEL_HORIZONTAL" }; - IfcWindowStyleOperationEnum.TRIPLE_PANEL_LEFT = { type: 3, value: "TRIPLE_PANEL_LEFT" }; - IfcWindowStyleOperationEnum.TRIPLE_PANEL_RIGHT = { type: 3, value: "TRIPLE_PANEL_RIGHT" }; - IfcWindowStyleOperationEnum.TRIPLE_PANEL_TOP = { type: 3, value: "TRIPLE_PANEL_TOP" }; - IfcWindowStyleOperationEnum.TRIPLE_PANEL_VERTICAL = { type: 3, value: "TRIPLE_PANEL_VERTICAL" }; - IfcWindowStyleOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcWindowStyleOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcWindowStyleOperationEnum = IfcWindowStyleOperationEnum; - class IfcWindowTypeEnum { + IFC4X32.IfcImpactProtectionDevice = IfcImpactProtectionDevice; + class IfcImpactProtectionDeviceType extends IfcElementComponentType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3948183225; + } } - IfcWindowTypeEnum.LIGHTDOME = { type: 3, value: "LIGHTDOME" }; - IfcWindowTypeEnum.SKYLIGHT = { type: 3, value: "SKYLIGHT" }; - IfcWindowTypeEnum.WINDOW = { type: 3, value: "WINDOW" }; - IfcWindowTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcWindowTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcWindowTypeEnum = IfcWindowTypeEnum; - class IfcWindowTypePartitioningEnum { + IFC4X32.IfcImpactProtectionDeviceType = IfcImpactProtectionDeviceType; + class IfcIndexedPolyCurve extends IfcBoundedCurve { + constructor(Points, Segments, SelfIntersect) { + super(); + this.Points = Points; + this.Segments = Segments; + this.SelfIntersect = SelfIntersect; + this.type = 2571569899; + } } - IfcWindowTypePartitioningEnum.DOUBLE_PANEL_HORIZONTAL = { type: 3, value: "DOUBLE_PANEL_HORIZONTAL" }; - IfcWindowTypePartitioningEnum.DOUBLE_PANEL_VERTICAL = { type: 3, value: "DOUBLE_PANEL_VERTICAL" }; - IfcWindowTypePartitioningEnum.SINGLE_PANEL = { type: 3, value: "SINGLE_PANEL" }; - IfcWindowTypePartitioningEnum.TRIPLE_PANEL_BOTTOM = { type: 3, value: "TRIPLE_PANEL_BOTTOM" }; - IfcWindowTypePartitioningEnum.TRIPLE_PANEL_HORIZONTAL = { type: 3, value: "TRIPLE_PANEL_HORIZONTAL" }; - IfcWindowTypePartitioningEnum.TRIPLE_PANEL_LEFT = { type: 3, value: "TRIPLE_PANEL_LEFT" }; - IfcWindowTypePartitioningEnum.TRIPLE_PANEL_RIGHT = { type: 3, value: "TRIPLE_PANEL_RIGHT" }; - IfcWindowTypePartitioningEnum.TRIPLE_PANEL_TOP = { type: 3, value: "TRIPLE_PANEL_TOP" }; - IfcWindowTypePartitioningEnum.TRIPLE_PANEL_VERTICAL = { type: 3, value: "TRIPLE_PANEL_VERTICAL" }; - IfcWindowTypePartitioningEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcWindowTypePartitioningEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcWindowTypePartitioningEnum = IfcWindowTypePartitioningEnum; - class IfcWorkCalendarTypeEnum { + IFC4X32.IfcIndexedPolyCurve = IfcIndexedPolyCurve; + class IfcInterceptorType extends IfcFlowTreatmentDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3946677679; + } } - IfcWorkCalendarTypeEnum.FIRSTSHIFT = { type: 3, value: "FIRSTSHIFT" }; - IfcWorkCalendarTypeEnum.SECONDSHIFT = { type: 3, value: "SECONDSHIFT" }; - IfcWorkCalendarTypeEnum.THIRDSHIFT = { type: 3, value: "THIRDSHIFT" }; - IfcWorkCalendarTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcWorkCalendarTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcWorkCalendarTypeEnum = IfcWorkCalendarTypeEnum; - class IfcWorkPlanTypeEnum { + IFC4X32.IfcInterceptorType = IfcInterceptorType; + class IfcIntersectionCurve extends IfcSurfaceCurve { + constructor(Curve3D, AssociatedGeometry, MasterRepresentation) { + super(Curve3D, AssociatedGeometry, MasterRepresentation); + this.Curve3D = Curve3D; + this.AssociatedGeometry = AssociatedGeometry; + this.MasterRepresentation = MasterRepresentation; + this.type = 3113134337; + } } - IfcWorkPlanTypeEnum.ACTUAL = { type: 3, value: "ACTUAL" }; - IfcWorkPlanTypeEnum.BASELINE = { type: 3, value: "BASELINE" }; - IfcWorkPlanTypeEnum.PLANNED = { type: 3, value: "PLANNED" }; - IfcWorkPlanTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcWorkPlanTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcWorkPlanTypeEnum = IfcWorkPlanTypeEnum; - class IfcWorkScheduleTypeEnum { + IFC4X32.IfcIntersectionCurve = IfcIntersectionCurve; + class IfcInventory extends IfcGroup { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, Jurisdiction, ResponsiblePersons, LastUpdateDate, CurrentValue, OriginalValue) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.PredefinedType = PredefinedType; + this.Jurisdiction = Jurisdiction; + this.ResponsiblePersons = ResponsiblePersons; + this.LastUpdateDate = LastUpdateDate; + this.CurrentValue = CurrentValue; + this.OriginalValue = OriginalValue; + this.type = 2391368822; + } } - IfcWorkScheduleTypeEnum.ACTUAL = { type: 3, value: "ACTUAL" }; - IfcWorkScheduleTypeEnum.BASELINE = { type: 3, value: "BASELINE" }; - IfcWorkScheduleTypeEnum.PLANNED = { type: 3, value: "PLANNED" }; - IfcWorkScheduleTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcWorkScheduleTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcWorkScheduleTypeEnum = IfcWorkScheduleTypeEnum; - class IfcActorRole extends IfcLineObject { - constructor(expressID, Role, UserDefinedRole, Description) { - super(expressID); - this.Role = Role; - this.UserDefinedRole = UserDefinedRole; + IFC4X32.IfcInventory = IfcInventory; + class IfcJunctionBoxType extends IfcFlowFittingType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; this.Description = Description; - this.type = 3630933823; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 4288270099; } } - IFC4X32.IfcActorRole = IfcActorRole; - class IfcAddress extends IfcLineObject { - constructor(expressID, Purpose, Description, UserDefinedPurpose) { - super(expressID); - this.Purpose = Purpose; + IFC4X32.IfcJunctionBoxType = IfcJunctionBoxType; + class IfcKerbType extends IfcBuiltElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, Mountable) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; this.Description = Description; - this.UserDefinedPurpose = UserDefinedPurpose; - this.type = 618182010; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.Mountable = Mountable; + this.type = 679976338; } } - IFC4X32.IfcAddress = IfcAddress; - class IfcAlignmentParameterSegment extends IfcLineObject { - constructor(expressID, StartTag, EndTag) { - super(expressID); - this.StartTag = StartTag; - this.EndTag = EndTag; - this.type = 2879124712; + IFC4X32.IfcKerbType = IfcKerbType; + class IfcLaborResource extends IfcConstructionResource { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.Usage = Usage; + this.BaseCosts = BaseCosts; + this.BaseQuantity = BaseQuantity; + this.PredefinedType = PredefinedType; + this.type = 3827777499; } } - IFC4X32.IfcAlignmentParameterSegment = IfcAlignmentParameterSegment; - class IfcAlignmentVerticalSegment extends IfcAlignmentParameterSegment { - constructor(expressID, StartTag, EndTag, StartDistAlong, HorizontalLength, StartHeight, StartGradient, EndGradient, RadiusOfCurvature, PredefinedType) { - super(expressID, StartTag, EndTag); - this.StartTag = StartTag; - this.EndTag = EndTag; - this.StartDistAlong = StartDistAlong; - this.HorizontalLength = HorizontalLength; - this.StartHeight = StartHeight; - this.StartGradient = StartGradient; - this.EndGradient = EndGradient; - this.RadiusOfCurvature = RadiusOfCurvature; + IFC4X32.IfcLaborResource = IfcLaborResource; + class IfcLampType extends IfcFlowTerminalType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; this.PredefinedType = PredefinedType; - this.type = 3633395639; + this.type = 1051575348; + } + } + IFC4X32.IfcLampType = IfcLampType; + class IfcLightFixtureType extends IfcFlowTerminalType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1161773419; + } + } + IFC4X32.IfcLightFixtureType = IfcLightFixtureType; + class IfcLinearElement extends IfcProduct { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.type = 2176059722; } } - IFC4X32.IfcAlignmentVerticalSegment = IfcAlignmentVerticalSegment; - class IfcApplication extends IfcLineObject { - constructor(expressID, ApplicationDeveloper, Version, ApplicationFullName, ApplicationIdentifier) { - super(expressID); - this.ApplicationDeveloper = ApplicationDeveloper; - this.Version = Version; - this.ApplicationFullName = ApplicationFullName; - this.ApplicationIdentifier = ApplicationIdentifier; - this.type = 639542469; + IFC4X32.IfcLinearElement = IfcLinearElement; + class IfcLiquidTerminalType extends IfcFlowTerminalType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1770583370; } } - IFC4X32.IfcApplication = IfcApplication; - class IfcAppliedValue extends IfcLineObject { - constructor(expressID, Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, Category, Condition, ArithmeticOperator, Components) { - super(expressID); + IFC4X32.IfcLiquidTerminalType = IfcLiquidTerminalType; + class IfcMarineFacility extends IfcFacility { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.AppliedValue = AppliedValue; - this.UnitBasis = UnitBasis; - this.ApplicableDate = ApplicableDate; - this.FixedUntilDate = FixedUntilDate; - this.Category = Category; - this.Condition = Condition; - this.ArithmeticOperator = ArithmeticOperator; - this.Components = Components; - this.type = 411424972; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.LongName = LongName; + this.CompositionType = CompositionType; + this.PredefinedType = PredefinedType; + this.type = 525669439; } } - IFC4X32.IfcAppliedValue = IfcAppliedValue; - class IfcApproval extends IfcLineObject { - constructor(expressID, Identifier, Name, Description, TimeOfApproval, Status, Level, Qualifier, RequestingApproval, GivingApproval) { - super(expressID); - this.Identifier = Identifier; + IFC4X32.IfcMarineFacility = IfcMarineFacility; + class IfcMarinePart extends IfcFacilityPart { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.TimeOfApproval = TimeOfApproval; - this.Status = Status; - this.Level = Level; - this.Qualifier = Qualifier; - this.RequestingApproval = RequestingApproval; - this.GivingApproval = GivingApproval; - this.type = 130549933; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.LongName = LongName; + this.CompositionType = CompositionType; + this.UsageType = UsageType; + this.PredefinedType = PredefinedType; + this.type = 976884017; } } - IFC4X32.IfcApproval = IfcApproval; - class IfcBoundaryCondition extends IfcLineObject { - constructor(expressID, Name) { - super(expressID); + IFC4X32.IfcMarinePart = IfcMarinePart; + class IfcMechanicalFastener extends IfcElementComponent { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, NominalDiameter, NominalLength, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.type = 4037036970; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.NominalDiameter = NominalDiameter; + this.NominalLength = NominalLength; + this.PredefinedType = PredefinedType; + this.type = 377706215; } } - IFC4X32.IfcBoundaryCondition = IfcBoundaryCondition; - class IfcBoundaryEdgeCondition extends IfcBoundaryCondition { - constructor(expressID, Name, TranslationalStiffnessByLengthX, TranslationalStiffnessByLengthY, TranslationalStiffnessByLengthZ, RotationalStiffnessByLengthX, RotationalStiffnessByLengthY, RotationalStiffnessByLengthZ) { - super(expressID, Name); + IFC4X32.IfcMechanicalFastener = IfcMechanicalFastener; + class IfcMechanicalFastenerType extends IfcElementComponentType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, NominalDiameter, NominalLength) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.TranslationalStiffnessByLengthX = TranslationalStiffnessByLengthX; - this.TranslationalStiffnessByLengthY = TranslationalStiffnessByLengthY; - this.TranslationalStiffnessByLengthZ = TranslationalStiffnessByLengthZ; - this.RotationalStiffnessByLengthX = RotationalStiffnessByLengthX; - this.RotationalStiffnessByLengthY = RotationalStiffnessByLengthY; - this.RotationalStiffnessByLengthZ = RotationalStiffnessByLengthZ; - this.type = 1560379544; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.NominalDiameter = NominalDiameter; + this.NominalLength = NominalLength; + this.type = 2108223431; } } - IFC4X32.IfcBoundaryEdgeCondition = IfcBoundaryEdgeCondition; - class IfcBoundaryFaceCondition extends IfcBoundaryCondition { - constructor(expressID, Name, TranslationalStiffnessByAreaX, TranslationalStiffnessByAreaY, TranslationalStiffnessByAreaZ) { - super(expressID, Name); + IFC4X32.IfcMechanicalFastenerType = IfcMechanicalFastenerType; + class IfcMedicalDeviceType extends IfcFlowTerminalType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.TranslationalStiffnessByAreaX = TranslationalStiffnessByAreaX; - this.TranslationalStiffnessByAreaY = TranslationalStiffnessByAreaY; - this.TranslationalStiffnessByAreaZ = TranslationalStiffnessByAreaZ; - this.type = 3367102660; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1114901282; } } - IFC4X32.IfcBoundaryFaceCondition = IfcBoundaryFaceCondition; - class IfcBoundaryNodeCondition extends IfcBoundaryCondition { - constructor(expressID, Name, TranslationalStiffnessX, TranslationalStiffnessY, TranslationalStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ) { - super(expressID, Name); + IFC4X32.IfcMedicalDeviceType = IfcMedicalDeviceType; + class IfcMemberType extends IfcBuiltElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.TranslationalStiffnessX = TranslationalStiffnessX; - this.TranslationalStiffnessY = TranslationalStiffnessY; - this.TranslationalStiffnessZ = TranslationalStiffnessZ; - this.RotationalStiffnessX = RotationalStiffnessX; - this.RotationalStiffnessY = RotationalStiffnessY; - this.RotationalStiffnessZ = RotationalStiffnessZ; - this.type = 1387855156; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3181161470; } } - IFC4X32.IfcBoundaryNodeCondition = IfcBoundaryNodeCondition; - class IfcBoundaryNodeConditionWarping extends IfcBoundaryNodeCondition { - constructor(expressID, Name, TranslationalStiffnessX, TranslationalStiffnessY, TranslationalStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ, WarpingStiffness) { - super(expressID, Name, TranslationalStiffnessX, TranslationalStiffnessY, TranslationalStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ); + IFC4X32.IfcMemberType = IfcMemberType; + class IfcMobileTelecommunicationsApplianceType extends IfcFlowTerminalType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.TranslationalStiffnessX = TranslationalStiffnessX; - this.TranslationalStiffnessY = TranslationalStiffnessY; - this.TranslationalStiffnessZ = TranslationalStiffnessZ; - this.RotationalStiffnessX = RotationalStiffnessX; - this.RotationalStiffnessY = RotationalStiffnessY; - this.RotationalStiffnessZ = RotationalStiffnessZ; - this.WarpingStiffness = WarpingStiffness; - this.type = 2069777674; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1950438474; } } - IFC4X32.IfcBoundaryNodeConditionWarping = IfcBoundaryNodeConditionWarping; - class IfcConnectionGeometry extends IfcLineObject { - constructor(expressID) { - super(expressID); - this.type = 2859738748; + IFC4X32.IfcMobileTelecommunicationsApplianceType = IfcMobileTelecommunicationsApplianceType; + class IfcMooringDeviceType extends IfcBuiltElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 710110818; } } - IFC4X32.IfcConnectionGeometry = IfcConnectionGeometry; - class IfcConnectionPointGeometry extends IfcConnectionGeometry { - constructor(expressID, PointOnRelatingElement, PointOnRelatedElement) { - super(expressID); - this.PointOnRelatingElement = PointOnRelatingElement; - this.PointOnRelatedElement = PointOnRelatedElement; - this.type = 2614616156; + IFC4X32.IfcMooringDeviceType = IfcMooringDeviceType; + class IfcMotorConnectionType extends IfcEnergyConversionDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 977012517; } } - IFC4X32.IfcConnectionPointGeometry = IfcConnectionPointGeometry; - class IfcConnectionSurfaceGeometry extends IfcConnectionGeometry { - constructor(expressID, SurfaceOnRelatingElement, SurfaceOnRelatedElement) { - super(expressID); - this.SurfaceOnRelatingElement = SurfaceOnRelatingElement; - this.SurfaceOnRelatedElement = SurfaceOnRelatedElement; - this.type = 2732653382; + IFC4X32.IfcMotorConnectionType = IfcMotorConnectionType; + class IfcNavigationElementType extends IfcBuiltElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 506776471; } } - IFC4X32.IfcConnectionSurfaceGeometry = IfcConnectionSurfaceGeometry; - class IfcConnectionVolumeGeometry extends IfcConnectionGeometry { - constructor(expressID, VolumeOnRelatingElement, VolumeOnRelatedElement) { - super(expressID); - this.VolumeOnRelatingElement = VolumeOnRelatingElement; - this.VolumeOnRelatedElement = VolumeOnRelatedElement; - this.type = 775493141; + IFC4X32.IfcNavigationElementType = IfcNavigationElementType; + class IfcOccupant extends IfcActor { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.TheActor = TheActor; + this.PredefinedType = PredefinedType; + this.type = 4143007308; } } - IFC4X32.IfcConnectionVolumeGeometry = IfcConnectionVolumeGeometry; - class IfcConstraint extends IfcLineObject { - constructor(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade) { - super(expressID); + IFC4X32.IfcOccupant = IfcOccupant; + class IfcOpeningElement extends IfcFeatureElementSubtraction { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.ConstraintGrade = ConstraintGrade; - this.ConstraintSource = ConstraintSource; - this.CreatingActor = CreatingActor; - this.CreationTime = CreationTime; - this.UserDefinedGrade = UserDefinedGrade; - this.type = 1959218052; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3588315303; } } - IFC4X32.IfcConstraint = IfcConstraint; - class IfcCoordinateOperation extends IfcLineObject { - constructor(expressID, SourceCRS, TargetCRS) { - super(expressID); - this.SourceCRS = SourceCRS; - this.TargetCRS = TargetCRS; - this.type = 1785450214; + IFC4X32.IfcOpeningElement = IfcOpeningElement; + class IfcOutletType extends IfcFlowTerminalType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2837617999; } } - IFC4X32.IfcCoordinateOperation = IfcCoordinateOperation; - class IfcCoordinateReferenceSystem extends IfcLineObject { - constructor(expressID, Name, Description, GeodeticDatum, VerticalDatum) { - super(expressID); + IFC4X32.IfcOutletType = IfcOutletType; + class IfcPavementType extends IfcBuiltElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.GeodeticDatum = GeodeticDatum; - this.VerticalDatum = VerticalDatum; - this.type = 1466758467; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 514975943; } } - IFC4X32.IfcCoordinateReferenceSystem = IfcCoordinateReferenceSystem; - class IfcCostValue extends IfcAppliedValue { - constructor(expressID, Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, Category, Condition, ArithmeticOperator, Components) { - super(expressID, Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, Category, Condition, ArithmeticOperator, Components); + IFC4X32.IfcPavementType = IfcPavementType; + class IfcPerformanceHistory extends IfcControl { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LifeCyclePhase, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.AppliedValue = AppliedValue; - this.UnitBasis = UnitBasis; - this.ApplicableDate = ApplicableDate; - this.FixedUntilDate = FixedUntilDate; - this.Category = Category; - this.Condition = Condition; - this.ArithmeticOperator = ArithmeticOperator; - this.Components = Components; - this.type = 602808272; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.LifeCyclePhase = LifeCyclePhase; + this.PredefinedType = PredefinedType; + this.type = 2382730787; } } - IFC4X32.IfcCostValue = IfcCostValue; - class IfcDerivedUnit extends IfcLineObject { - constructor(expressID, Elements, UnitType, UserDefinedType, Name) { - super(expressID); - this.Elements = Elements; - this.UnitType = UnitType; - this.UserDefinedType = UserDefinedType; + IFC4X32.IfcPerformanceHistory = IfcPerformanceHistory; + class IfcPermeableCoveringProperties extends IfcPreDefinedPropertySet { + constructor(GlobalId, OwnerHistory, Name, Description, OperationType, PanelPosition, FrameDepth, FrameThickness, ShapeAspectStyle) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.type = 1765591967; + this.Description = Description; + this.OperationType = OperationType; + this.PanelPosition = PanelPosition; + this.FrameDepth = FrameDepth; + this.FrameThickness = FrameThickness; + this.ShapeAspectStyle = ShapeAspectStyle; + this.type = 3566463478; } } - IFC4X32.IfcDerivedUnit = IfcDerivedUnit; - class IfcDerivedUnitElement extends IfcLineObject { - constructor(expressID, Unit, Exponent) { - super(expressID); - this.Unit = Unit; - this.Exponent = Exponent; - this.type = 1045800335; + IFC4X32.IfcPermeableCoveringProperties = IfcPermeableCoveringProperties; + class IfcPermit extends IfcControl { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, LongDescription) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.PredefinedType = PredefinedType; + this.Status = Status; + this.LongDescription = LongDescription; + this.type = 3327091369; } } - IFC4X32.IfcDerivedUnitElement = IfcDerivedUnitElement; - class IfcDimensionalExponents extends IfcLineObject { - constructor(expressID, LengthExponent, MassExponent, TimeExponent, ElectricCurrentExponent, ThermodynamicTemperatureExponent, AmountOfSubstanceExponent, LuminousIntensityExponent) { - super(expressID); - this.LengthExponent = LengthExponent; - this.MassExponent = MassExponent; - this.TimeExponent = TimeExponent; - this.ElectricCurrentExponent = ElectricCurrentExponent; - this.ThermodynamicTemperatureExponent = ThermodynamicTemperatureExponent; - this.AmountOfSubstanceExponent = AmountOfSubstanceExponent; - this.LuminousIntensityExponent = LuminousIntensityExponent; - this.type = 2949456006; + IFC4X32.IfcPermit = IfcPermit; + class IfcPileType extends IfcDeepFoundationType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1158309216; } } - IFC4X32.IfcDimensionalExponents = IfcDimensionalExponents; - class IfcExternalInformation extends IfcLineObject { - constructor(expressID) { - super(expressID); - this.type = 4294318154; + IFC4X32.IfcPileType = IfcPileType; + class IfcPipeFittingType extends IfcFlowFittingType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 804291784; } } - IFC4X32.IfcExternalInformation = IfcExternalInformation; - class IfcExternalReference extends IfcLineObject { - constructor(expressID, Location, Identification, Name) { - super(expressID); - this.Location = Location; - this.Identification = Identification; + IFC4X32.IfcPipeFittingType = IfcPipeFittingType; + class IfcPipeSegmentType extends IfcFlowSegmentType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.type = 3200245327; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 4231323485; } } - IFC4X32.IfcExternalReference = IfcExternalReference; - class IfcExternallyDefinedHatchStyle extends IfcExternalReference { - constructor(expressID, Location, Identification, Name) { - super(expressID, Location, Identification, Name); - this.Location = Location; - this.Identification = Identification; + IFC4X32.IfcPipeSegmentType = IfcPipeSegmentType; + class IfcPlateType extends IfcBuiltElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.type = 2242383968; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 4017108033; } } - IFC4X32.IfcExternallyDefinedHatchStyle = IfcExternallyDefinedHatchStyle; - class IfcExternallyDefinedSurfaceStyle extends IfcExternalReference { - constructor(expressID, Location, Identification, Name) { - super(expressID, Location, Identification, Name); - this.Location = Location; - this.Identification = Identification; - this.Name = Name; - this.type = 1040185647; + IFC4X32.IfcPlateType = IfcPlateType; + class IfcPolygonalFaceSet extends IfcTessellatedFaceSet { + constructor(Coordinates, Closed, Faces, PnIndex) { + super(Coordinates, Closed); + this.Coordinates = Coordinates; + this.Closed = Closed; + this.Faces = Faces; + this.PnIndex = PnIndex; + this.type = 2839578677; } } - IFC4X32.IfcExternallyDefinedSurfaceStyle = IfcExternallyDefinedSurfaceStyle; - class IfcExternallyDefinedTextFont extends IfcExternalReference { - constructor(expressID, Location, Identification, Name) { - super(expressID, Location, Identification, Name); - this.Location = Location; - this.Identification = Identification; - this.Name = Name; - this.type = 3548104201; + IFC4X32.IfcPolygonalFaceSet = IfcPolygonalFaceSet; + class IfcPolyline extends IfcBoundedCurve { + constructor(Points) { + super(); + this.Points = Points; + this.type = 3724593414; } } - IFC4X32.IfcExternallyDefinedTextFont = IfcExternallyDefinedTextFont; - class IfcGridAxis extends IfcLineObject { - constructor(expressID, AxisTag, AxisCurve, SameSense) { - super(expressID); - this.AxisTag = AxisTag; - this.AxisCurve = AxisCurve; - this.SameSense = SameSense; - this.type = 852622518; + IFC4X32.IfcPolyline = IfcPolyline; + class IfcPort extends IfcProduct { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.type = 3740093272; } } - IFC4X32.IfcGridAxis = IfcGridAxis; - class IfcIrregularTimeSeriesValue extends IfcLineObject { - constructor(expressID, TimeStamp, ListValues) { - super(expressID); - this.TimeStamp = TimeStamp; - this.ListValues = ListValues; - this.type = 3020489413; + IFC4X32.IfcPort = IfcPort; + class IfcPositioningElement extends IfcProduct { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.type = 1946335990; } } - IFC4X32.IfcIrregularTimeSeriesValue = IfcIrregularTimeSeriesValue; - class IfcLibraryInformation extends IfcExternalInformation { - constructor(expressID, Name, Version, Publisher, VersionDate, Location, Description) { - super(expressID); + IFC4X32.IfcPositioningElement = IfcPositioningElement; + class IfcProcedure extends IfcProcess { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.Version = Version; - this.Publisher = Publisher; - this.VersionDate = VersionDate; - this.Location = Location; this.Description = Description; - this.type = 2655187982; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.PredefinedType = PredefinedType; + this.type = 2744685151; } } - IFC4X32.IfcLibraryInformation = IfcLibraryInformation; - class IfcLibraryReference extends IfcExternalReference { - constructor(expressID, Location, Identification, Name, Description, Language, ReferencedLibrary) { - super(expressID, Location, Identification, Name); - this.Location = Location; + IFC4X32.IfcProcedure = IfcProcedure; + class IfcProjectOrder extends IfcControl { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, LongDescription) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; this.Identification = Identification; + this.PredefinedType = PredefinedType; + this.Status = Status; + this.LongDescription = LongDescription; + this.type = 2904328755; + } + } + IFC4X32.IfcProjectOrder = IfcProjectOrder; + class IfcProjectionElement extends IfcFeatureElementAddition { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.Language = Language; - this.ReferencedLibrary = ReferencedLibrary; - this.type = 3452421091; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3651124850; } } - IFC4X32.IfcLibraryReference = IfcLibraryReference; - class IfcLightDistributionData extends IfcLineObject { - constructor(expressID, MainPlaneAngle, SecondaryPlaneAngle, LuminousIntensity) { - super(expressID); - this.MainPlaneAngle = MainPlaneAngle; - this.SecondaryPlaneAngle = SecondaryPlaneAngle; - this.LuminousIntensity = LuminousIntensity; - this.type = 4162380809; + IFC4X32.IfcProjectionElement = IfcProjectionElement; + class IfcProtectiveDeviceType extends IfcFlowControllerType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1842657554; } } - IFC4X32.IfcLightDistributionData = IfcLightDistributionData; - class IfcLightIntensityDistribution extends IfcLineObject { - constructor(expressID, LightDistributionCurve, DistributionData) { - super(expressID); - this.LightDistributionCurve = LightDistributionCurve; - this.DistributionData = DistributionData; - this.type = 1566485204; + IFC4X32.IfcProtectiveDeviceType = IfcProtectiveDeviceType; + class IfcPumpType extends IfcFlowMovingDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2250791053; } } - IFC4X32.IfcLightIntensityDistribution = IfcLightIntensityDistribution; - class IfcMapConversion extends IfcCoordinateOperation { - constructor(expressID, SourceCRS, TargetCRS, Eastings, Northings, OrthogonalHeight, XAxisAbscissa, XAxisOrdinate, Scale, ScaleY, ScaleZ) { - super(expressID, SourceCRS, TargetCRS); - this.SourceCRS = SourceCRS; - this.TargetCRS = TargetCRS; - this.Eastings = Eastings; - this.Northings = Northings; - this.OrthogonalHeight = OrthogonalHeight; - this.XAxisAbscissa = XAxisAbscissa; - this.XAxisOrdinate = XAxisOrdinate; - this.Scale = Scale; - this.ScaleY = ScaleY; - this.ScaleZ = ScaleZ; - this.type = 3057273783; + IFC4X32.IfcPumpType = IfcPumpType; + class IfcRailType extends IfcBuiltElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1763565496; } } - IFC4X32.IfcMapConversion = IfcMapConversion; - class IfcMaterialClassificationRelationship extends IfcLineObject { - constructor(expressID, MaterialClassifications, ClassifiedMaterial) { - super(expressID); - this.MaterialClassifications = MaterialClassifications; - this.ClassifiedMaterial = ClassifiedMaterial; - this.type = 1847130766; + IFC4X32.IfcRailType = IfcRailType; + class IfcRailingType extends IfcBuiltElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2893384427; } } - IFC4X32.IfcMaterialClassificationRelationship = IfcMaterialClassificationRelationship; - class IfcMaterialDefinition extends IfcLineObject { - constructor(expressID) { - super(expressID); - this.type = 760658860; + IFC4X32.IfcRailingType = IfcRailingType; + class IfcRailway extends IfcFacility { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.LongName = LongName; + this.CompositionType = CompositionType; + this.PredefinedType = PredefinedType; + this.type = 3992365140; } } - IFC4X32.IfcMaterialDefinition = IfcMaterialDefinition; - class IfcMaterialLayer extends IfcMaterialDefinition { - constructor(expressID, Material, LayerThickness, IsVentilated, Name, Description, Category, Priority) { - super(expressID); - this.Material = Material; - this.LayerThickness = LayerThickness; - this.IsVentilated = IsVentilated; + IFC4X32.IfcRailway = IfcRailway; + class IfcRailwayPart extends IfcFacilityPart { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.Category = Category; - this.Priority = Priority; - this.type = 248100487; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.LongName = LongName; + this.CompositionType = CompositionType; + this.UsageType = UsageType; + this.PredefinedType = PredefinedType; + this.type = 1891881377; } } - IFC4X32.IfcMaterialLayer = IfcMaterialLayer; - class IfcMaterialLayerSet extends IfcMaterialDefinition { - constructor(expressID, MaterialLayers, LayerSetName, Description) { - super(expressID); - this.MaterialLayers = MaterialLayers; - this.LayerSetName = LayerSetName; + IFC4X32.IfcRailwayPart = IfcRailwayPart; + class IfcRampFlightType extends IfcBuiltElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; this.Description = Description; - this.type = 3303938423; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2324767716; } } - IFC4X32.IfcMaterialLayerSet = IfcMaterialLayerSet; - class IfcMaterialLayerWithOffsets extends IfcMaterialLayer { - constructor(expressID, Material, LayerThickness, IsVentilated, Name, Description, Category, Priority, OffsetDirection, OffsetValues) { - super(expressID, Material, LayerThickness, IsVentilated, Name, Description, Category, Priority); - this.Material = Material; - this.LayerThickness = LayerThickness; - this.IsVentilated = IsVentilated; + IFC4X32.IfcRampFlightType = IfcRampFlightType; + class IfcRampType extends IfcBuiltElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.Category = Category; - this.Priority = Priority; - this.OffsetDirection = OffsetDirection; - this.OffsetValues = OffsetValues; - this.type = 1847252529; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1469900589; } } - IFC4X32.IfcMaterialLayerWithOffsets = IfcMaterialLayerWithOffsets; - class IfcMaterialList extends IfcLineObject { - constructor(expressID, Materials) { - super(expressID); - this.Materials = Materials; - this.type = 2199411900; + IFC4X32.IfcRampType = IfcRampType; + class IfcRationalBSplineSurfaceWithKnots extends IfcBSplineSurfaceWithKnots { + constructor(UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect, UMultiplicities, VMultiplicities, UKnots, VKnots, KnotSpec, WeightsData) { + super(UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect, UMultiplicities, VMultiplicities, UKnots, VKnots, KnotSpec); + this.UDegree = UDegree; + this.VDegree = VDegree; + this.ControlPointsList = ControlPointsList; + this.SurfaceForm = SurfaceForm; + this.UClosed = UClosed; + this.VClosed = VClosed; + this.SelfIntersect = SelfIntersect; + this.UMultiplicities = UMultiplicities; + this.VMultiplicities = VMultiplicities; + this.UKnots = UKnots; + this.VKnots = VKnots; + this.KnotSpec = KnotSpec; + this.WeightsData = WeightsData; + this.type = 683857671; } } - IFC4X32.IfcMaterialList = IfcMaterialList; - class IfcMaterialProfile extends IfcMaterialDefinition { - constructor(expressID, Name, Description, Material, Profile, Priority, Category) { - super(expressID); + IFC4X32.IfcRationalBSplineSurfaceWithKnots = IfcRationalBSplineSurfaceWithKnots; + class IfcReferent extends IfcPositioningElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.Material = Material; - this.Profile = Profile; - this.Priority = Priority; - this.Category = Category; - this.type = 2235152071; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.PredefinedType = PredefinedType; + this.type = 4021432810; } } - IFC4X32.IfcMaterialProfile = IfcMaterialProfile; - class IfcMaterialProfileSet extends IfcMaterialDefinition { - constructor(expressID, Name, Description, MaterialProfiles, CompositeProfile) { - super(expressID); + IFC4X32.IfcReferent = IfcReferent; + class IfcReinforcingElement extends IfcElementComponent { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.MaterialProfiles = MaterialProfiles; - this.CompositeProfile = CompositeProfile; - this.type = 164193824; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.SteelGrade = SteelGrade; + this.type = 3027567501; } } - IFC4X32.IfcMaterialProfileSet = IfcMaterialProfileSet; - class IfcMaterialProfileWithOffsets extends IfcMaterialProfile { - constructor(expressID, Name, Description, Material, Profile, Priority, Category, OffsetValues) { - super(expressID, Name, Description, Material, Profile, Priority, Category); + IFC4X32.IfcReinforcingElement = IfcReinforcingElement; + class IfcReinforcingElementType extends IfcElementComponentType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.Material = Material; - this.Profile = Profile; - this.Priority = Priority; - this.Category = Category; - this.OffsetValues = OffsetValues; - this.type = 552965576; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 964333572; } } - IFC4X32.IfcMaterialProfileWithOffsets = IfcMaterialProfileWithOffsets; - class IfcMaterialUsageDefinition extends IfcLineObject { - constructor(expressID) { - super(expressID); - this.type = 1507914824; + IFC4X32.IfcReinforcingElementType = IfcReinforcingElementType; + class IfcReinforcingMesh extends IfcReinforcingElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, MeshLength, MeshWidth, LongitudinalBarNominalDiameter, TransverseBarNominalDiameter, LongitudinalBarCrossSectionArea, TransverseBarCrossSectionArea, LongitudinalBarSpacing, TransverseBarSpacing, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.SteelGrade = SteelGrade; + this.MeshLength = MeshLength; + this.MeshWidth = MeshWidth; + this.LongitudinalBarNominalDiameter = LongitudinalBarNominalDiameter; + this.TransverseBarNominalDiameter = TransverseBarNominalDiameter; + this.LongitudinalBarCrossSectionArea = LongitudinalBarCrossSectionArea; + this.TransverseBarCrossSectionArea = TransverseBarCrossSectionArea; + this.LongitudinalBarSpacing = LongitudinalBarSpacing; + this.TransverseBarSpacing = TransverseBarSpacing; + this.PredefinedType = PredefinedType; + this.type = 2320036040; } } - IFC4X32.IfcMaterialUsageDefinition = IfcMaterialUsageDefinition; - class IfcMeasureWithUnit extends IfcLineObject { - constructor(expressID, ValueComponent, UnitComponent) { - super(expressID); - this.ValueComponent = ValueComponent; - this.UnitComponent = UnitComponent; - this.type = 2597039031; + IFC4X32.IfcReinforcingMesh = IfcReinforcingMesh; + class IfcReinforcingMeshType extends IfcReinforcingElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, MeshLength, MeshWidth, LongitudinalBarNominalDiameter, TransverseBarNominalDiameter, LongitudinalBarCrossSectionArea, TransverseBarCrossSectionArea, LongitudinalBarSpacing, TransverseBarSpacing, BendingShapeCode, BendingParameters) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.MeshLength = MeshLength; + this.MeshWidth = MeshWidth; + this.LongitudinalBarNominalDiameter = LongitudinalBarNominalDiameter; + this.TransverseBarNominalDiameter = TransverseBarNominalDiameter; + this.LongitudinalBarCrossSectionArea = LongitudinalBarCrossSectionArea; + this.TransverseBarCrossSectionArea = TransverseBarCrossSectionArea; + this.LongitudinalBarSpacing = LongitudinalBarSpacing; + this.TransverseBarSpacing = TransverseBarSpacing; + this.BendingShapeCode = BendingShapeCode; + this.BendingParameters = BendingParameters; + this.type = 2310774935; } } - IFC4X32.IfcMeasureWithUnit = IfcMeasureWithUnit; - class IfcMetric extends IfcConstraint { - constructor(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade, Benchmark, ValueSource, DataValue, ReferencePath) { - super(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade); + IFC4X32.IfcReinforcingMeshType = IfcReinforcingMeshType; + class IfcRelAdheresToElement extends IfcRelDecomposes { + constructor(GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedSurfaceFeatures) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.ConstraintGrade = ConstraintGrade; - this.ConstraintSource = ConstraintSource; - this.CreatingActor = CreatingActor; - this.CreationTime = CreationTime; - this.UserDefinedGrade = UserDefinedGrade; - this.Benchmark = Benchmark; - this.ValueSource = ValueSource; - this.DataValue = DataValue; - this.ReferencePath = ReferencePath; - this.type = 3368373690; + this.RelatingElement = RelatingElement; + this.RelatedSurfaceFeatures = RelatedSurfaceFeatures; + this.type = 3818125796; } } - IFC4X32.IfcMetric = IfcMetric; - class IfcMonetaryUnit extends IfcLineObject { - constructor(expressID, Currency) { - super(expressID); - this.Currency = Currency; - this.type = 2706619895; + IFC4X32.IfcRelAdheresToElement = IfcRelAdheresToElement; + class IfcRelAggregates extends IfcRelDecomposes { + constructor(GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects) { + super(GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingObject = RelatingObject; + this.RelatedObjects = RelatedObjects; + this.type = 160246688; } } - IFC4X32.IfcMonetaryUnit = IfcMonetaryUnit; - class IfcNamedUnit extends IfcLineObject { - constructor(expressID, Dimensions, UnitType) { - super(expressID); - this.Dimensions = Dimensions; - this.UnitType = UnitType; - this.type = 1918398963; + IFC4X32.IfcRelAggregates = IfcRelAggregates; + class IfcRoad extends IfcFacility { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.LongName = LongName; + this.CompositionType = CompositionType; + this.PredefinedType = PredefinedType; + this.type = 146592293; } } - IFC4X32.IfcNamedUnit = IfcNamedUnit; - class IfcObjectPlacement extends IfcLineObject { - constructor(expressID, PlacementRelTo) { - super(expressID); - this.PlacementRelTo = PlacementRelTo; - this.type = 3701648758; + IFC4X32.IfcRoad = IfcRoad; + class IfcRoadPart extends IfcFacilityPart { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.LongName = LongName; + this.CompositionType = CompositionType; + this.UsageType = UsageType; + this.PredefinedType = PredefinedType; + this.type = 550521510; } } - IFC4X32.IfcObjectPlacement = IfcObjectPlacement; - class IfcObjective extends IfcConstraint { - constructor(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade, BenchmarkValues, LogicalAggregator, ObjectiveQualifier, UserDefinedQualifier) { - super(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade); + IFC4X32.IfcRoadPart = IfcRoadPart; + class IfcRoofType extends IfcBuiltElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.ConstraintGrade = ConstraintGrade; - this.ConstraintSource = ConstraintSource; - this.CreatingActor = CreatingActor; - this.CreationTime = CreationTime; - this.UserDefinedGrade = UserDefinedGrade; - this.BenchmarkValues = BenchmarkValues; - this.LogicalAggregator = LogicalAggregator; - this.ObjectiveQualifier = ObjectiveQualifier; - this.UserDefinedQualifier = UserDefinedQualifier; - this.type = 2251480897; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2781568857; } } - IFC4X32.IfcObjective = IfcObjective; - class IfcOrganization extends IfcLineObject { - constructor(expressID, Identification, Name, Description, Roles, Addresses) { - super(expressID); - this.Identification = Identification; + IFC4X32.IfcRoofType = IfcRoofType; + class IfcSanitaryTerminalType extends IfcFlowTerminalType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.Roles = Roles; - this.Addresses = Addresses; - this.type = 4251960020; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1768891740; } } - IFC4X32.IfcOrganization = IfcOrganization; - class IfcOwnerHistory extends IfcLineObject { - constructor(expressID, OwningUser, OwningApplication, State, ChangeAction, LastModifiedDate, LastModifyingUser, LastModifyingApplication, CreationDate) { - super(expressID); - this.OwningUser = OwningUser; - this.OwningApplication = OwningApplication; - this.State = State; - this.ChangeAction = ChangeAction; - this.LastModifiedDate = LastModifiedDate; - this.LastModifyingUser = LastModifyingUser; - this.LastModifyingApplication = LastModifyingApplication; - this.CreationDate = CreationDate; - this.type = 1207048766; + IFC4X32.IfcSanitaryTerminalType = IfcSanitaryTerminalType; + class IfcSeamCurve extends IfcSurfaceCurve { + constructor(Curve3D, AssociatedGeometry, MasterRepresentation) { + super(Curve3D, AssociatedGeometry, MasterRepresentation); + this.Curve3D = Curve3D; + this.AssociatedGeometry = AssociatedGeometry; + this.MasterRepresentation = MasterRepresentation; + this.type = 2157484638; + } + } + IFC4X32.IfcSeamCurve = IfcSeamCurve; + class IfcSecondOrderPolynomialSpiral extends IfcSpiral { + constructor(Position, QuadraticTerm, LinearTerm, ConstantTerm) { + super(Position); + this.Position = Position; + this.QuadraticTerm = QuadraticTerm; + this.LinearTerm = LinearTerm; + this.ConstantTerm = ConstantTerm; + this.type = 3649235739; + } + } + IFC4X32.IfcSecondOrderPolynomialSpiral = IfcSecondOrderPolynomialSpiral; + class IfcSegmentedReferenceCurve extends IfcCompositeCurve { + constructor(Segments, SelfIntersect, BaseCurve, EndPoint) { + super(Segments, SelfIntersect); + this.Segments = Segments; + this.SelfIntersect = SelfIntersect; + this.BaseCurve = BaseCurve; + this.EndPoint = EndPoint; + this.type = 544395925; } } - IFC4X32.IfcOwnerHistory = IfcOwnerHistory; - class IfcPerson extends IfcLineObject { - constructor(expressID, Identification, FamilyName, GivenName, MiddleNames, PrefixTitles, SuffixTitles, Roles, Addresses) { - super(expressID); - this.Identification = Identification; - this.FamilyName = FamilyName; - this.GivenName = GivenName; - this.MiddleNames = MiddleNames; - this.PrefixTitles = PrefixTitles; - this.SuffixTitles = SuffixTitles; - this.Roles = Roles; - this.Addresses = Addresses; - this.type = 2077209135; + IFC4X32.IfcSegmentedReferenceCurve = IfcSegmentedReferenceCurve; + class IfcSeventhOrderPolynomialSpiral extends IfcSpiral { + constructor(Position, SepticTerm, SexticTerm, QuinticTerm, QuarticTerm, CubicTerm, QuadraticTerm, LinearTerm, ConstantTerm) { + super(Position); + this.Position = Position; + this.SepticTerm = SepticTerm; + this.SexticTerm = SexticTerm; + this.QuinticTerm = QuinticTerm; + this.QuarticTerm = QuarticTerm; + this.CubicTerm = CubicTerm; + this.QuadraticTerm = QuadraticTerm; + this.LinearTerm = LinearTerm; + this.ConstantTerm = ConstantTerm; + this.type = 1027922057; } } - IFC4X32.IfcPerson = IfcPerson; - class IfcPersonAndOrganization extends IfcLineObject { - constructor(expressID, ThePerson, TheOrganization, Roles) { - super(expressID); - this.ThePerson = ThePerson; - this.TheOrganization = TheOrganization; - this.Roles = Roles; - this.type = 101040310; + IFC4X32.IfcSeventhOrderPolynomialSpiral = IfcSeventhOrderPolynomialSpiral; + class IfcShadingDeviceType extends IfcBuiltElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 4074543187; } } - IFC4X32.IfcPersonAndOrganization = IfcPersonAndOrganization; - class IfcPhysicalQuantity extends IfcLineObject { - constructor(expressID, Name, Description) { - super(expressID); + IFC4X32.IfcShadingDeviceType = IfcShadingDeviceType; + class IfcSign extends IfcElementComponent { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.type = 2483315170; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 33720170; } } - IFC4X32.IfcPhysicalQuantity = IfcPhysicalQuantity; - class IfcPhysicalSimpleQuantity extends IfcPhysicalQuantity { - constructor(expressID, Name, Description, Unit) { - super(expressID, Name, Description); + IFC4X32.IfcSign = IfcSign; + class IfcSignType extends IfcElementComponentType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.Unit = Unit; - this.type = 2226359599; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3599934289; } } - IFC4X32.IfcPhysicalSimpleQuantity = IfcPhysicalSimpleQuantity; - class IfcPostalAddress extends IfcAddress { - constructor(expressID, Purpose, Description, UserDefinedPurpose, InternalLocation, AddressLines, PostalBox, Town, Region, PostalCode, Country) { - super(expressID, Purpose, Description, UserDefinedPurpose); - this.Purpose = Purpose; + IFC4X32.IfcSignType = IfcSignType; + class IfcSignalType extends IfcFlowTerminalType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; this.Description = Description; - this.UserDefinedPurpose = UserDefinedPurpose; - this.InternalLocation = InternalLocation; - this.AddressLines = AddressLines; - this.PostalBox = PostalBox; - this.Town = Town; - this.Region = Region; - this.PostalCode = PostalCode; - this.Country = Country; - this.type = 3355820592; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1894708472; } } - IFC4X32.IfcPostalAddress = IfcPostalAddress; - class IfcPresentationItem extends IfcLineObject { - constructor(expressID) { - super(expressID); - this.type = 677532197; + IFC4X32.IfcSignalType = IfcSignalType; + class IfcSineSpiral extends IfcSpiral { + constructor(Position, SineTerm, LinearTerm, ConstantTerm) { + super(Position); + this.Position = Position; + this.SineTerm = SineTerm; + this.LinearTerm = LinearTerm; + this.ConstantTerm = ConstantTerm; + this.type = 42703149; } } - IFC4X32.IfcPresentationItem = IfcPresentationItem; - class IfcPresentationLayerAssignment extends IfcLineObject { - constructor(expressID, Name, Description, AssignedItems, Identifier) { - super(expressID); + IFC4X32.IfcSineSpiral = IfcSineSpiral; + class IfcSite extends IfcSpatialStructureElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, RefLatitude, RefLongitude, RefElevation, LandTitleNumber, SiteAddress) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.AssignedItems = AssignedItems; - this.Identifier = Identifier; - this.type = 2022622350; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.LongName = LongName; + this.CompositionType = CompositionType; + this.RefLatitude = RefLatitude; + this.RefLongitude = RefLongitude; + this.RefElevation = RefElevation; + this.LandTitleNumber = LandTitleNumber; + this.SiteAddress = SiteAddress; + this.type = 4097777520; } } - IFC4X32.IfcPresentationLayerAssignment = IfcPresentationLayerAssignment; - class IfcPresentationLayerWithStyle extends IfcPresentationLayerAssignment { - constructor(expressID, Name, Description, AssignedItems, Identifier, LayerOn, LayerFrozen, LayerBlocked, LayerStyles) { - super(expressID, Name, Description, AssignedItems, Identifier); + IFC4X32.IfcSite = IfcSite; + class IfcSlabType extends IfcBuiltElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.AssignedItems = AssignedItems; - this.Identifier = Identifier; - this.LayerOn = LayerOn; - this.LayerFrozen = LayerFrozen; - this.LayerBlocked = LayerBlocked; - this.LayerStyles = LayerStyles; - this.type = 1304840413; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2533589738; } } - IFC4X32.IfcPresentationLayerWithStyle = IfcPresentationLayerWithStyle; - class IfcPresentationStyle extends IfcLineObject { - constructor(expressID, Name) { - super(expressID); + IFC4X32.IfcSlabType = IfcSlabType; + class IfcSolarDeviceType extends IfcEnergyConversionDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.type = 3119450353; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1072016465; } } - IFC4X32.IfcPresentationStyle = IfcPresentationStyle; - class IfcProductRepresentation extends IfcLineObject { - constructor(expressID, Name, Description, Representations) { - super(expressID); + IFC4X32.IfcSolarDeviceType = IfcSolarDeviceType; + class IfcSpace extends IfcSpatialStructureElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, PredefinedType, ElevationWithFlooring) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.Representations = Representations; - this.type = 2095639259; - } - } - IFC4X32.IfcProductRepresentation = IfcProductRepresentation; - class IfcProfileDef extends IfcLineObject { - constructor(expressID, ProfileType, ProfileName) { - super(expressID); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.type = 3958567839; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.LongName = LongName; + this.CompositionType = CompositionType; + this.PredefinedType = PredefinedType; + this.ElevationWithFlooring = ElevationWithFlooring; + this.type = 3856911033; } } - IFC4X32.IfcProfileDef = IfcProfileDef; - class IfcProjectedCRS extends IfcCoordinateReferenceSystem { - constructor(expressID, Name, Description, GeodeticDatum, VerticalDatum, MapProjection, MapZone, MapUnit) { - super(expressID, Name, Description, GeodeticDatum, VerticalDatum); + IFC4X32.IfcSpace = IfcSpace; + class IfcSpaceHeaterType extends IfcFlowTerminalType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.GeodeticDatum = GeodeticDatum; - this.VerticalDatum = VerticalDatum; - this.MapProjection = MapProjection; - this.MapZone = MapZone; - this.MapUnit = MapUnit; - this.type = 3843373140; - } - } - IFC4X32.IfcProjectedCRS = IfcProjectedCRS; - class IfcPropertyAbstraction extends IfcLineObject { - constructor(expressID) { - super(expressID); - this.type = 986844984; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1305183839; } } - IFC4X32.IfcPropertyAbstraction = IfcPropertyAbstraction; - class IfcPropertyEnumeration extends IfcPropertyAbstraction { - constructor(expressID, Name, EnumerationValues, Unit) { - super(expressID); + IFC4X32.IfcSpaceHeaterType = IfcSpaceHeaterType; + class IfcSpaceType extends IfcSpatialStructureElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, LongName) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.EnumerationValues = EnumerationValues; - this.Unit = Unit; - this.type = 3710013099; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.LongName = LongName; + this.type = 3812236995; } } - IFC4X32.IfcPropertyEnumeration = IfcPropertyEnumeration; - class IfcQuantityArea extends IfcPhysicalSimpleQuantity { - constructor(expressID, Name, Description, Unit, AreaValue, Formula) { - super(expressID, Name, Description, Unit); + IFC4X32.IfcSpaceType = IfcSpaceType; + class IfcStackTerminalType extends IfcFlowTerminalType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.Unit = Unit; - this.AreaValue = AreaValue; - this.Formula = Formula; - this.type = 2044713172; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3112655638; } } - IFC4X32.IfcQuantityArea = IfcQuantityArea; - class IfcQuantityCount extends IfcPhysicalSimpleQuantity { - constructor(expressID, Name, Description, Unit, CountValue, Formula) { - super(expressID, Name, Description, Unit); + IFC4X32.IfcStackTerminalType = IfcStackTerminalType; + class IfcStairFlightType extends IfcBuiltElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.Unit = Unit; - this.CountValue = CountValue; - this.Formula = Formula; - this.type = 2093928680; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1039846685; } } - IFC4X32.IfcQuantityCount = IfcQuantityCount; - class IfcQuantityLength extends IfcPhysicalSimpleQuantity { - constructor(expressID, Name, Description, Unit, LengthValue, Formula) { - super(expressID, Name, Description, Unit); + IFC4X32.IfcStairFlightType = IfcStairFlightType; + class IfcStairType extends IfcBuiltElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.Unit = Unit; - this.LengthValue = LengthValue; - this.Formula = Formula; - this.type = 931644368; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 338393293; } } - IFC4X32.IfcQuantityLength = IfcQuantityLength; - class IfcQuantityNumber extends IfcPhysicalSimpleQuantity { - constructor(expressID, Name, Description, Unit, NumberValue, Formula) { - super(expressID, Name, Description, Unit); + IFC4X32.IfcStairType = IfcStairType; + class IfcStructuralAction extends IfcStructuralActivity { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.Unit = Unit; - this.NumberValue = NumberValue; - this.Formula = Formula; - this.type = 2691318326; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedLoad = AppliedLoad; + this.GlobalOrLocal = GlobalOrLocal; + this.DestabilizingLoad = DestabilizingLoad; + this.type = 682877961; } } - IFC4X32.IfcQuantityNumber = IfcQuantityNumber; - class IfcQuantityTime extends IfcPhysicalSimpleQuantity { - constructor(expressID, Name, Description, Unit, TimeValue, Formula) { - super(expressID, Name, Description, Unit); + IFC4X32.IfcStructuralAction = IfcStructuralAction; + class IfcStructuralConnection extends IfcStructuralItem { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.Unit = Unit; - this.TimeValue = TimeValue; - this.Formula = Formula; - this.type = 3252649465; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedCondition = AppliedCondition; + this.type = 1179482911; } } - IFC4X32.IfcQuantityTime = IfcQuantityTime; - class IfcQuantityVolume extends IfcPhysicalSimpleQuantity { - constructor(expressID, Name, Description, Unit, VolumeValue, Formula) { - super(expressID, Name, Description, Unit); + IFC4X32.IfcStructuralConnection = IfcStructuralConnection; + class IfcStructuralCurveAction extends IfcStructuralAction { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.Unit = Unit; - this.VolumeValue = VolumeValue; - this.Formula = Formula; - this.type = 2405470396; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedLoad = AppliedLoad; + this.GlobalOrLocal = GlobalOrLocal; + this.DestabilizingLoad = DestabilizingLoad; + this.ProjectedOrTrue = ProjectedOrTrue; + this.PredefinedType = PredefinedType; + this.type = 1004757350; } } - IFC4X32.IfcQuantityVolume = IfcQuantityVolume; - class IfcQuantityWeight extends IfcPhysicalSimpleQuantity { - constructor(expressID, Name, Description, Unit, WeightValue, Formula) { - super(expressID, Name, Description, Unit); + IFC4X32.IfcStructuralCurveAction = IfcStructuralCurveAction; + class IfcStructuralCurveConnection extends IfcStructuralConnection { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition, AxisDirection) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.Unit = Unit; - this.WeightValue = WeightValue; - this.Formula = Formula; - this.type = 825690147; - } - } - IFC4X32.IfcQuantityWeight = IfcQuantityWeight; - class IfcRecurrencePattern extends IfcLineObject { - constructor(expressID, RecurrenceType, DayComponent, WeekdayComponent, MonthComponent, Position, Interval, Occurrences, TimePeriods) { - super(expressID); - this.RecurrenceType = RecurrenceType; - this.DayComponent = DayComponent; - this.WeekdayComponent = WeekdayComponent; - this.MonthComponent = MonthComponent; - this.Position = Position; - this.Interval = Interval; - this.Occurrences = Occurrences; - this.TimePeriods = TimePeriods; - this.type = 3915482550; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedCondition = AppliedCondition; + this.AxisDirection = AxisDirection; + this.type = 4243806635; } } - IFC4X32.IfcRecurrencePattern = IfcRecurrencePattern; - class IfcReference extends IfcLineObject { - constructor(expressID, TypeIdentifier, AttributeIdentifier, InstanceName, ListPositions, InnerReference) { - super(expressID); - this.TypeIdentifier = TypeIdentifier; - this.AttributeIdentifier = AttributeIdentifier; - this.InstanceName = InstanceName; - this.ListPositions = ListPositions; - this.InnerReference = InnerReference; - this.type = 2433181523; + IFC4X32.IfcStructuralCurveConnection = IfcStructuralCurveConnection; + class IfcStructuralCurveMember extends IfcStructuralMember { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Axis) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.PredefinedType = PredefinedType; + this.Axis = Axis; + this.type = 214636428; } } - IFC4X32.IfcReference = IfcReference; - class IfcRepresentation extends IfcLineObject { - constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { - super(expressID); - this.ContextOfItems = ContextOfItems; - this.RepresentationIdentifier = RepresentationIdentifier; - this.RepresentationType = RepresentationType; - this.Items = Items; - this.type = 1076942058; + IFC4X32.IfcStructuralCurveMember = IfcStructuralCurveMember; + class IfcStructuralCurveMemberVarying extends IfcStructuralCurveMember { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Axis) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Axis); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.PredefinedType = PredefinedType; + this.Axis = Axis; + this.type = 2445595289; } } - IFC4X32.IfcRepresentation = IfcRepresentation; - class IfcRepresentationContext extends IfcLineObject { - constructor(expressID, ContextIdentifier, ContextType) { - super(expressID); - this.ContextIdentifier = ContextIdentifier; - this.ContextType = ContextType; - this.type = 3377609919; + IFC4X32.IfcStructuralCurveMemberVarying = IfcStructuralCurveMemberVarying; + class IfcStructuralCurveReaction extends IfcStructuralReaction { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedLoad = AppliedLoad; + this.GlobalOrLocal = GlobalOrLocal; + this.PredefinedType = PredefinedType; + this.type = 2757150158; } } - IFC4X32.IfcRepresentationContext = IfcRepresentationContext; - class IfcRepresentationItem extends IfcLineObject { - constructor(expressID) { - super(expressID); - this.type = 3008791417; + IFC4X32.IfcStructuralCurveReaction = IfcStructuralCurveReaction; + class IfcStructuralLinearAction extends IfcStructuralCurveAction { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedLoad = AppliedLoad; + this.GlobalOrLocal = GlobalOrLocal; + this.DestabilizingLoad = DestabilizingLoad; + this.ProjectedOrTrue = ProjectedOrTrue; + this.PredefinedType = PredefinedType; + this.type = 1807405624; } } - IFC4X32.IfcRepresentationItem = IfcRepresentationItem; - class IfcRepresentationMap extends IfcLineObject { - constructor(expressID, MappingOrigin, MappedRepresentation) { - super(expressID); - this.MappingOrigin = MappingOrigin; - this.MappedRepresentation = MappedRepresentation; - this.type = 1660063152; + IFC4X32.IfcStructuralLinearAction = IfcStructuralLinearAction; + class IfcStructuralLoadGroup extends IfcGroup { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, ActionType, ActionSource, Coefficient, Purpose) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.PredefinedType = PredefinedType; + this.ActionType = ActionType; + this.ActionSource = ActionSource; + this.Coefficient = Coefficient; + this.Purpose = Purpose; + this.type = 1252848954; } } - IFC4X32.IfcRepresentationMap = IfcRepresentationMap; - class IfcResourceLevelRelationship extends IfcLineObject { - constructor(expressID, Name, Description) { - super(expressID); + IFC4X32.IfcStructuralLoadGroup = IfcStructuralLoadGroup; + class IfcStructuralPointAction extends IfcStructuralAction { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.type = 2439245199; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedLoad = AppliedLoad; + this.GlobalOrLocal = GlobalOrLocal; + this.DestabilizingLoad = DestabilizingLoad; + this.type = 2082059205; } } - IFC4X32.IfcResourceLevelRelationship = IfcResourceLevelRelationship; - class IfcRoot extends IfcLineObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID); + IFC4X32.IfcStructuralPointAction = IfcStructuralPointAction; + class IfcStructuralPointConnection extends IfcStructuralConnection { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition, ConditionCoordinateSystem) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.type = 2341007311; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedCondition = AppliedCondition; + this.ConditionCoordinateSystem = ConditionCoordinateSystem; + this.type = 734778138; } } - IFC4X32.IfcRoot = IfcRoot; - class IfcSIUnit extends IfcNamedUnit { - constructor(expressID, Dimensions, UnitType, Prefix, Name) { - super(expressID, Dimensions, UnitType); - this.Dimensions = Dimensions; - this.UnitType = UnitType; - this.Prefix = Prefix; + IFC4X32.IfcStructuralPointConnection = IfcStructuralPointConnection; + class IfcStructuralPointReaction extends IfcStructuralReaction { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.type = 448429030; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedLoad = AppliedLoad; + this.GlobalOrLocal = GlobalOrLocal; + this.type = 1235345126; } } - IFC4X32.IfcSIUnit = IfcSIUnit; - class IfcSchedulingTime extends IfcLineObject { - constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin) { - super(expressID); + IFC4X32.IfcStructuralPointReaction = IfcStructuralPointReaction; + class IfcStructuralResultGroup extends IfcGroup { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, TheoryType, ResultForLoadGroup, IsLinear) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.DataOrigin = DataOrigin; - this.UserDefinedDataOrigin = UserDefinedDataOrigin; - this.type = 1054537805; + this.Description = Description; + this.ObjectType = ObjectType; + this.TheoryType = TheoryType; + this.ResultForLoadGroup = ResultForLoadGroup; + this.IsLinear = IsLinear; + this.type = 2986769608; } } - IFC4X32.IfcSchedulingTime = IfcSchedulingTime; - class IfcShapeAspect extends IfcLineObject { - constructor(expressID, ShapeRepresentations, Name, Description, ProductDefinitional, PartOfProductDefinitionShape) { - super(expressID); - this.ShapeRepresentations = ShapeRepresentations; + IFC4X32.IfcStructuralResultGroup = IfcStructuralResultGroup; + class IfcStructuralSurfaceAction extends IfcStructuralAction { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.ProductDefinitional = ProductDefinitional; - this.PartOfProductDefinitionShape = PartOfProductDefinitionShape; - this.type = 867548509; - } - } - IFC4X32.IfcShapeAspect = IfcShapeAspect; - class IfcShapeModel extends IfcRepresentation { - constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { - super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items); - this.ContextOfItems = ContextOfItems; - this.RepresentationIdentifier = RepresentationIdentifier; - this.RepresentationType = RepresentationType; - this.Items = Items; - this.type = 3982875396; - } - } - IFC4X32.IfcShapeModel = IfcShapeModel; - class IfcShapeRepresentation extends IfcShapeModel { - constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { - super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items); - this.ContextOfItems = ContextOfItems; - this.RepresentationIdentifier = RepresentationIdentifier; - this.RepresentationType = RepresentationType; - this.Items = Items; - this.type = 4240577450; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedLoad = AppliedLoad; + this.GlobalOrLocal = GlobalOrLocal; + this.DestabilizingLoad = DestabilizingLoad; + this.ProjectedOrTrue = ProjectedOrTrue; + this.PredefinedType = PredefinedType; + this.type = 3657597509; } } - IFC4X32.IfcShapeRepresentation = IfcShapeRepresentation; - class IfcStructuralConnectionCondition extends IfcLineObject { - constructor(expressID, Name) { - super(expressID); + IFC4X32.IfcStructuralSurfaceAction = IfcStructuralSurfaceAction; + class IfcStructuralSurfaceConnection extends IfcStructuralConnection { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.type = 2273995522; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedCondition = AppliedCondition; + this.type = 1975003073; } } - IFC4X32.IfcStructuralConnectionCondition = IfcStructuralConnectionCondition; - class IfcStructuralLoad extends IfcLineObject { - constructor(expressID, Name) { - super(expressID); + IFC4X32.IfcStructuralSurfaceConnection = IfcStructuralSurfaceConnection; + class IfcSubContractResource extends IfcConstructionResource { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.type = 2162789131; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.Usage = Usage; + this.BaseCosts = BaseCosts; + this.BaseQuantity = BaseQuantity; + this.PredefinedType = PredefinedType; + this.type = 148013059; } } - IFC4X32.IfcStructuralLoad = IfcStructuralLoad; - class IfcStructuralLoadConfiguration extends IfcStructuralLoad { - constructor(expressID, Name, Values, Locations) { - super(expressID, Name); + IFC4X32.IfcSubContractResource = IfcSubContractResource; + class IfcSurfaceFeature extends IfcFeatureElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.Values = Values; - this.Locations = Locations; - this.type = 3478079324; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3101698114; } } - IFC4X32.IfcStructuralLoadConfiguration = IfcStructuralLoadConfiguration; - class IfcStructuralLoadOrResult extends IfcStructuralLoad { - constructor(expressID, Name) { - super(expressID, Name); + IFC4X32.IfcSurfaceFeature = IfcSurfaceFeature; + class IfcSwitchingDeviceType extends IfcFlowControllerType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.type = 609421318; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2315554128; } } - IFC4X32.IfcStructuralLoadOrResult = IfcStructuralLoadOrResult; - class IfcStructuralLoadStatic extends IfcStructuralLoadOrResult { - constructor(expressID, Name) { - super(expressID, Name); + IFC4X32.IfcSwitchingDeviceType = IfcSwitchingDeviceType; + class IfcSystem extends IfcGroup { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.type = 2525727697; + this.Description = Description; + this.ObjectType = ObjectType; + this.type = 2254336722; } } - IFC4X32.IfcStructuralLoadStatic = IfcStructuralLoadStatic; - class IfcStructuralLoadTemperature extends IfcStructuralLoadStatic { - constructor(expressID, Name, DeltaTConstant, DeltaTY, DeltaTZ) { - super(expressID, Name); + IFC4X32.IfcSystem = IfcSystem; + class IfcSystemFurnitureElement extends IfcFurnishingElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.DeltaTConstant = DeltaTConstant; - this.DeltaTY = DeltaTY; - this.DeltaTZ = DeltaTZ; - this.type = 3408363356; - } - } - IFC4X32.IfcStructuralLoadTemperature = IfcStructuralLoadTemperature; - class IfcStyleModel extends IfcRepresentation { - constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { - super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items); - this.ContextOfItems = ContextOfItems; - this.RepresentationIdentifier = RepresentationIdentifier; - this.RepresentationType = RepresentationType; - this.Items = Items; - this.type = 2830218821; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 413509423; } } - IFC4X32.IfcStyleModel = IfcStyleModel; - class IfcStyledItem extends IfcRepresentationItem { - constructor(expressID, Item, Styles, Name) { - super(expressID); - this.Item = Item; - this.Styles = Styles; + IFC4X32.IfcSystemFurnitureElement = IfcSystemFurnitureElement; + class IfcTankType extends IfcFlowStorageDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.type = 3958052878; - } - } - IFC4X32.IfcStyledItem = IfcStyledItem; - class IfcStyledRepresentation extends IfcStyleModel { - constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { - super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items); - this.ContextOfItems = ContextOfItems; - this.RepresentationIdentifier = RepresentationIdentifier; - this.RepresentationType = RepresentationType; - this.Items = Items; - this.type = 3049322572; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 5716631; } } - IFC4X32.IfcStyledRepresentation = IfcStyledRepresentation; - class IfcSurfaceReinforcementArea extends IfcStructuralLoadOrResult { - constructor(expressID, Name, SurfaceReinforcement1, SurfaceReinforcement2, ShearReinforcement) { - super(expressID, Name); + IFC4X32.IfcTankType = IfcTankType; + class IfcTendon extends IfcReinforcingElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, PredefinedType, NominalDiameter, CrossSectionArea, TensionForce, PreStress, FrictionCoefficient, AnchorageSlip, MinCurvatureRadius) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.SurfaceReinforcement1 = SurfaceReinforcement1; - this.SurfaceReinforcement2 = SurfaceReinforcement2; - this.ShearReinforcement = ShearReinforcement; - this.type = 2934153892; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.SteelGrade = SteelGrade; + this.PredefinedType = PredefinedType; + this.NominalDiameter = NominalDiameter; + this.CrossSectionArea = CrossSectionArea; + this.TensionForce = TensionForce; + this.PreStress = PreStress; + this.FrictionCoefficient = FrictionCoefficient; + this.AnchorageSlip = AnchorageSlip; + this.MinCurvatureRadius = MinCurvatureRadius; + this.type = 3824725483; } } - IFC4X32.IfcSurfaceReinforcementArea = IfcSurfaceReinforcementArea; - class IfcSurfaceStyle extends IfcPresentationStyle { - constructor(expressID, Name, Side, Styles) { - super(expressID, Name); + IFC4X32.IfcTendon = IfcTendon; + class IfcTendonAnchor extends IfcReinforcingElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.Side = Side; - this.Styles = Styles; - this.type = 1300840506; - } - } - IFC4X32.IfcSurfaceStyle = IfcSurfaceStyle; - class IfcSurfaceStyleLighting extends IfcPresentationItem { - constructor(expressID, DiffuseTransmissionColour, DiffuseReflectionColour, TransmissionColour, ReflectanceColour) { - super(expressID); - this.DiffuseTransmissionColour = DiffuseTransmissionColour; - this.DiffuseReflectionColour = DiffuseReflectionColour; - this.TransmissionColour = TransmissionColour; - this.ReflectanceColour = ReflectanceColour; - this.type = 3303107099; - } - } - IFC4X32.IfcSurfaceStyleLighting = IfcSurfaceStyleLighting; - class IfcSurfaceStyleRefraction extends IfcPresentationItem { - constructor(expressID, RefractionIndex, DispersionFactor) { - super(expressID); - this.RefractionIndex = RefractionIndex; - this.DispersionFactor = DispersionFactor; - this.type = 1607154358; - } - } - IFC4X32.IfcSurfaceStyleRefraction = IfcSurfaceStyleRefraction; - class IfcSurfaceStyleShading extends IfcPresentationItem { - constructor(expressID, SurfaceColour, Transparency) { - super(expressID); - this.SurfaceColour = SurfaceColour; - this.Transparency = Transparency; - this.type = 846575682; - } - } - IFC4X32.IfcSurfaceStyleShading = IfcSurfaceStyleShading; - class IfcSurfaceStyleWithTextures extends IfcPresentationItem { - constructor(expressID, Textures) { - super(expressID); - this.Textures = Textures; - this.type = 1351298697; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.SteelGrade = SteelGrade; + this.PredefinedType = PredefinedType; + this.type = 2347447852; } } - IFC4X32.IfcSurfaceStyleWithTextures = IfcSurfaceStyleWithTextures; - class IfcSurfaceTexture extends IfcPresentationItem { - constructor(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter) { - super(expressID); - this.RepeatS = RepeatS; - this.RepeatT = RepeatT; - this.Mode = Mode; - this.TextureTransform = TextureTransform; - this.Parameter = Parameter; - this.type = 626085974; + IFC4X32.IfcTendonAnchor = IfcTendonAnchor; + class IfcTendonAnchorType extends IfcReinforcingElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3081323446; } } - IFC4X32.IfcSurfaceTexture = IfcSurfaceTexture; - class IfcTable extends IfcLineObject { - constructor(expressID, Name, Rows, Columns) { - super(expressID); + IFC4X32.IfcTendonAnchorType = IfcTendonAnchorType; + class IfcTendonConduit extends IfcReinforcingElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.Rows = Rows; - this.Columns = Columns; - this.type = 985171141; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.SteelGrade = SteelGrade; + this.PredefinedType = PredefinedType; + this.type = 3663046924; } } - IFC4X32.IfcTable = IfcTable; - class IfcTableColumn extends IfcLineObject { - constructor(expressID, Identifier, Name, Description, Unit, ReferencePath) { - super(expressID); - this.Identifier = Identifier; + IFC4X32.IfcTendonConduit = IfcTendonConduit; + class IfcTendonConduitType extends IfcReinforcingElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.Unit = Unit; - this.ReferencePath = ReferencePath; - this.type = 2043862942; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2281632017; } } - IFC4X32.IfcTableColumn = IfcTableColumn; - class IfcTableRow extends IfcLineObject { - constructor(expressID, RowCells, IsHeading) { - super(expressID); - this.RowCells = RowCells; - this.IsHeading = IsHeading; - this.type = 531007025; + IFC4X32.IfcTendonConduitType = IfcTendonConduitType; + class IfcTendonType extends IfcReinforcingElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, NominalDiameter, CrossSectionArea, SheathDiameter) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.NominalDiameter = NominalDiameter; + this.CrossSectionArea = CrossSectionArea; + this.SheathDiameter = SheathDiameter; + this.type = 2415094496; } } - IFC4X32.IfcTableRow = IfcTableRow; - class IfcTaskTime extends IfcSchedulingTime { - constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin, DurationType, ScheduleDuration, ScheduleStart, ScheduleFinish, EarlyStart, EarlyFinish, LateStart, LateFinish, FreeFloat, TotalFloat, IsCritical, StatusTime, ActualDuration, ActualStart, ActualFinish, RemainingTime, Completion) { - super(expressID, Name, DataOrigin, UserDefinedDataOrigin); + IFC4X32.IfcTendonType = IfcTendonType; + class IfcTrackElementType extends IfcBuiltElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.DataOrigin = DataOrigin; - this.UserDefinedDataOrigin = UserDefinedDataOrigin; - this.DurationType = DurationType; - this.ScheduleDuration = ScheduleDuration; - this.ScheduleStart = ScheduleStart; - this.ScheduleFinish = ScheduleFinish; - this.EarlyStart = EarlyStart; - this.EarlyFinish = EarlyFinish; - this.LateStart = LateStart; - this.LateFinish = LateFinish; - this.FreeFloat = FreeFloat; - this.TotalFloat = TotalFloat; - this.IsCritical = IsCritical; - this.StatusTime = StatusTime; - this.ActualDuration = ActualDuration; - this.ActualStart = ActualStart; - this.ActualFinish = ActualFinish; - this.RemainingTime = RemainingTime; - this.Completion = Completion; - this.type = 1549132990; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 618700268; } } - IFC4X32.IfcTaskTime = IfcTaskTime; - class IfcTaskTimeRecurring extends IfcTaskTime { - constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin, DurationType, ScheduleDuration, ScheduleStart, ScheduleFinish, EarlyStart, EarlyFinish, LateStart, LateFinish, FreeFloat, TotalFloat, IsCritical, StatusTime, ActualDuration, ActualStart, ActualFinish, RemainingTime, Completion, Recurrence) { - super(expressID, Name, DataOrigin, UserDefinedDataOrigin, DurationType, ScheduleDuration, ScheduleStart, ScheduleFinish, EarlyStart, EarlyFinish, LateStart, LateFinish, FreeFloat, TotalFloat, IsCritical, StatusTime, ActualDuration, ActualStart, ActualFinish, RemainingTime, Completion); + IFC4X32.IfcTrackElementType = IfcTrackElementType; + class IfcTransformerType extends IfcEnergyConversionDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.DataOrigin = DataOrigin; - this.UserDefinedDataOrigin = UserDefinedDataOrigin; - this.DurationType = DurationType; - this.ScheduleDuration = ScheduleDuration; - this.ScheduleStart = ScheduleStart; - this.ScheduleFinish = ScheduleFinish; - this.EarlyStart = EarlyStart; - this.EarlyFinish = EarlyFinish; - this.LateStart = LateStart; - this.LateFinish = LateFinish; - this.FreeFloat = FreeFloat; - this.TotalFloat = TotalFloat; - this.IsCritical = IsCritical; - this.StatusTime = StatusTime; - this.ActualDuration = ActualDuration; - this.ActualStart = ActualStart; - this.ActualFinish = ActualFinish; - this.RemainingTime = RemainingTime; - this.Completion = Completion; - this.Recurrence = Recurrence; - this.type = 2771591690; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1692211062; } } - IFC4X32.IfcTaskTimeRecurring = IfcTaskTimeRecurring; - class IfcTelecomAddress extends IfcAddress { - constructor(expressID, Purpose, Description, UserDefinedPurpose, TelephoneNumbers, FacsimileNumbers, PagerNumber, ElectronicMailAddresses, WWWHomePageURL, MessagingIDs) { - super(expressID, Purpose, Description, UserDefinedPurpose); - this.Purpose = Purpose; + IFC4X32.IfcTransformerType = IfcTransformerType; + class IfcTransportElementType extends IfcTransportationDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; this.Description = Description; - this.UserDefinedPurpose = UserDefinedPurpose; - this.TelephoneNumbers = TelephoneNumbers; - this.FacsimileNumbers = FacsimileNumbers; - this.PagerNumber = PagerNumber; - this.ElectronicMailAddresses = ElectronicMailAddresses; - this.WWWHomePageURL = WWWHomePageURL; - this.MessagingIDs = MessagingIDs; - this.type = 912023232; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2097647324; } } - IFC4X32.IfcTelecomAddress = IfcTelecomAddress; - class IfcTextStyle extends IfcPresentationStyle { - constructor(expressID, Name, TextCharacterAppearance, TextStyle, TextFontStyle, ModelOrDraughting) { - super(expressID, Name); + IFC4X32.IfcTransportElementType = IfcTransportElementType; + class IfcTransportationDevice extends IfcElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.TextCharacterAppearance = TextCharacterAppearance; - this.TextStyle = TextStyle; - this.TextFontStyle = TextFontStyle; - this.ModelOrDraughting = ModelOrDraughting; - this.type = 1447204868; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 1953115116; } } - IFC4X32.IfcTextStyle = IfcTextStyle; - class IfcTextStyleForDefinedFont extends IfcPresentationItem { - constructor(expressID, Colour, BackgroundColour) { - super(expressID); - this.Colour = Colour; - this.BackgroundColour = BackgroundColour; - this.type = 2636378356; + IFC4X32.IfcTransportationDevice = IfcTransportationDevice; + class IfcTrimmedCurve extends IfcBoundedCurve { + constructor(BasisCurve, Trim1, Trim2, SenseAgreement, MasterRepresentation) { + super(); + this.BasisCurve = BasisCurve; + this.Trim1 = Trim1; + this.Trim2 = Trim2; + this.SenseAgreement = SenseAgreement; + this.MasterRepresentation = MasterRepresentation; + this.type = 3593883385; } } - IFC4X32.IfcTextStyleForDefinedFont = IfcTextStyleForDefinedFont; - class IfcTextStyleTextModel extends IfcPresentationItem { - constructor(expressID, TextIndent, TextAlign, TextDecoration, LetterSpacing, WordSpacing, TextTransform, LineHeight) { - super(expressID); - this.TextIndent = TextIndent; - this.TextAlign = TextAlign; - this.TextDecoration = TextDecoration; - this.LetterSpacing = LetterSpacing; - this.WordSpacing = WordSpacing; - this.TextTransform = TextTransform; - this.LineHeight = LineHeight; - this.type = 1640371178; + IFC4X32.IfcTrimmedCurve = IfcTrimmedCurve; + class IfcTubeBundleType extends IfcEnergyConversionDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1600972822; } } - IFC4X32.IfcTextStyleTextModel = IfcTextStyleTextModel; - class IfcTextureCoordinate extends IfcPresentationItem { - constructor(expressID, Maps) { - super(expressID); - this.Maps = Maps; - this.type = 280115917; + IFC4X32.IfcTubeBundleType = IfcTubeBundleType; + class IfcUnitaryEquipmentType extends IfcEnergyConversionDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1911125066; } } - IFC4X32.IfcTextureCoordinate = IfcTextureCoordinate; - class IfcTextureCoordinateGenerator extends IfcTextureCoordinate { - constructor(expressID, Maps, Mode, Parameter) { - super(expressID, Maps); - this.Maps = Maps; - this.Mode = Mode; - this.Parameter = Parameter; - this.type = 1742049831; + IFC4X32.IfcUnitaryEquipmentType = IfcUnitaryEquipmentType; + class IfcValveType extends IfcFlowControllerType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 728799441; } } - IFC4X32.IfcTextureCoordinateGenerator = IfcTextureCoordinateGenerator; - class IfcTextureCoordinateIndices extends IfcLineObject { - constructor(expressID, TexCoordIndex, TexCoordsOf) { - super(expressID); - this.TexCoordIndex = TexCoordIndex; - this.TexCoordsOf = TexCoordsOf; - this.type = 222769930; + IFC4X32.IfcValveType = IfcValveType; + class IfcVehicle extends IfcTransportationDevice { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 840318589; } } - IFC4X32.IfcTextureCoordinateIndices = IfcTextureCoordinateIndices; - class IfcTextureCoordinateIndicesWithVoids extends IfcTextureCoordinateIndices { - constructor(expressID, TexCoordIndex, TexCoordsOf, InnerTexCoordIndices) { - super(expressID, TexCoordIndex, TexCoordsOf); - this.TexCoordIndex = TexCoordIndex; - this.TexCoordsOf = TexCoordsOf; - this.InnerTexCoordIndices = InnerTexCoordIndices; - this.type = 1010789467; + IFC4X32.IfcVehicle = IfcVehicle; + class IfcVibrationDamper extends IfcElementComponent { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1530820697; } } - IFC4X32.IfcTextureCoordinateIndicesWithVoids = IfcTextureCoordinateIndicesWithVoids; - class IfcTextureMap extends IfcTextureCoordinate { - constructor(expressID, Maps, Vertices, MappedTo) { - super(expressID, Maps); - this.Maps = Maps; - this.Vertices = Vertices; - this.MappedTo = MappedTo; - this.type = 2552916305; + IFC4X32.IfcVibrationDamper = IfcVibrationDamper; + class IfcVibrationDamperType extends IfcElementComponentType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3956297820; } } - IFC4X32.IfcTextureMap = IfcTextureMap; - class IfcTextureVertex extends IfcPresentationItem { - constructor(expressID, Coordinates) { - super(expressID); - this.Coordinates = Coordinates; - this.type = 1210645708; + IFC4X32.IfcVibrationDamperType = IfcVibrationDamperType; + class IfcVibrationIsolator extends IfcElementComponent { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 2391383451; } } - IFC4X32.IfcTextureVertex = IfcTextureVertex; - class IfcTextureVertexList extends IfcPresentationItem { - constructor(expressID, TexCoordsList) { - super(expressID); - this.TexCoordsList = TexCoordsList; - this.type = 3611470254; + IFC4X32.IfcVibrationIsolator = IfcVibrationIsolator; + class IfcVibrationIsolatorType extends IfcElementComponentType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3313531582; } } - IFC4X32.IfcTextureVertexList = IfcTextureVertexList; - class IfcTimePeriod extends IfcLineObject { - constructor(expressID, StartTime, EndTime) { - super(expressID); - this.StartTime = StartTime; - this.EndTime = EndTime; - this.type = 1199560280; + IFC4X32.IfcVibrationIsolatorType = IfcVibrationIsolatorType; + class IfcVirtualElement extends IfcElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 2769231204; } } - IFC4X32.IfcTimePeriod = IfcTimePeriod; - class IfcTimeSeries extends IfcLineObject { - constructor(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit) { - super(expressID); + IFC4X32.IfcVirtualElement = IfcVirtualElement; + class IfcVoidingFeature extends IfcFeatureElementSubtraction { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.StartTime = StartTime; - this.EndTime = EndTime; - this.TimeSeriesDataType = TimeSeriesDataType; - this.DataOrigin = DataOrigin; - this.UserDefinedDataOrigin = UserDefinedDataOrigin; - this.Unit = Unit; - this.type = 3101149627; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 926996030; } } - IFC4X32.IfcTimeSeries = IfcTimeSeries; - class IfcTimeSeriesValue extends IfcLineObject { - constructor(expressID, ListValues) { - super(expressID); - this.ListValues = ListValues; - this.type = 581633288; + IFC4X32.IfcVoidingFeature = IfcVoidingFeature; + class IfcWallType extends IfcBuiltElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1898987631; } } - IFC4X32.IfcTimeSeriesValue = IfcTimeSeriesValue; - class IfcTopologicalRepresentationItem extends IfcRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 1377556343; + IFC4X32.IfcWallType = IfcWallType; + class IfcWasteTerminalType extends IfcFlowTerminalType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1133259667; } } - IFC4X32.IfcTopologicalRepresentationItem = IfcTopologicalRepresentationItem; - class IfcTopologyRepresentation extends IfcShapeModel { - constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { - super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items); - this.ContextOfItems = ContextOfItems; - this.RepresentationIdentifier = RepresentationIdentifier; - this.RepresentationType = RepresentationType; - this.Items = Items; - this.type = 1735638870; + IFC4X32.IfcWasteTerminalType = IfcWasteTerminalType; + class IfcWindowType extends IfcBuiltElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, PartitioningType, ParameterTakesPrecedence, UserDefinedPartitioningType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.PartitioningType = PartitioningType; + this.ParameterTakesPrecedence = ParameterTakesPrecedence; + this.UserDefinedPartitioningType = UserDefinedPartitioningType; + this.type = 4009809668; } } - IFC4X32.IfcTopologyRepresentation = IfcTopologyRepresentation; - class IfcUnitAssignment extends IfcLineObject { - constructor(expressID, Units) { - super(expressID); - this.Units = Units; - this.type = 180925521; + IFC4X32.IfcWindowType = IfcWindowType; + class IfcWorkCalendar extends IfcControl { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, WorkingTimes, ExceptionTimes, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.WorkingTimes = WorkingTimes; + this.ExceptionTimes = ExceptionTimes; + this.PredefinedType = PredefinedType; + this.type = 4088093105; } } - IFC4X32.IfcUnitAssignment = IfcUnitAssignment; - class IfcVertex extends IfcTopologicalRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 2799835756; + IFC4X32.IfcWorkCalendar = IfcWorkCalendar; + class IfcWorkControl extends IfcControl { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.CreationDate = CreationDate; + this.Creators = Creators; + this.Purpose = Purpose; + this.Duration = Duration; + this.TotalFloat = TotalFloat; + this.StartTime = StartTime; + this.FinishTime = FinishTime; + this.type = 1028945134; } } - IFC4X32.IfcVertex = IfcVertex; - class IfcVertexPoint extends IfcVertex { - constructor(expressID, VertexGeometry) { - super(expressID); - this.VertexGeometry = VertexGeometry; - this.type = 1907098498; + IFC4X32.IfcWorkControl = IfcWorkControl; + class IfcWorkPlan extends IfcWorkControl { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.CreationDate = CreationDate; + this.Creators = Creators; + this.Purpose = Purpose; + this.Duration = Duration; + this.TotalFloat = TotalFloat; + this.StartTime = StartTime; + this.FinishTime = FinishTime; + this.PredefinedType = PredefinedType; + this.type = 4218914973; } } - IFC4X32.IfcVertexPoint = IfcVertexPoint; - class IfcVirtualGridIntersection extends IfcLineObject { - constructor(expressID, IntersectingAxes, OffsetDistances) { - super(expressID); - this.IntersectingAxes = IntersectingAxes; - this.OffsetDistances = OffsetDistances; - this.type = 891718957; + IFC4X32.IfcWorkPlan = IfcWorkPlan; + class IfcWorkSchedule extends IfcWorkControl { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.CreationDate = CreationDate; + this.Creators = Creators; + this.Purpose = Purpose; + this.Duration = Duration; + this.TotalFloat = TotalFloat; + this.StartTime = StartTime; + this.FinishTime = FinishTime; + this.PredefinedType = PredefinedType; + this.type = 3342526732; } } - IFC4X32.IfcVirtualGridIntersection = IfcVirtualGridIntersection; - class IfcWorkTime extends IfcSchedulingTime { - constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin, RecurrencePattern, StartDate, FinishDate) { - super(expressID, Name, DataOrigin, UserDefinedDataOrigin); + IFC4X32.IfcWorkSchedule = IfcWorkSchedule; + class IfcZone extends IfcSystem { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, LongName) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.DataOrigin = DataOrigin; - this.UserDefinedDataOrigin = UserDefinedDataOrigin; - this.RecurrencePattern = RecurrencePattern; - this.StartDate = StartDate; - this.FinishDate = FinishDate; - this.type = 1236880293; + this.Description = Description; + this.ObjectType = ObjectType; + this.LongName = LongName; + this.type = 1033361043; } } - IFC4X32.IfcWorkTime = IfcWorkTime; - class IfcAlignmentCantSegment extends IfcAlignmentParameterSegment { - constructor(expressID, StartTag, EndTag, StartDistAlong, HorizontalLength, StartCantLeft, EndCantLeft, StartCantRight, EndCantRight, PredefinedType) { - super(expressID, StartTag, EndTag); - this.StartTag = StartTag; - this.EndTag = EndTag; - this.StartDistAlong = StartDistAlong; - this.HorizontalLength = HorizontalLength; - this.StartCantLeft = StartCantLeft; - this.EndCantLeft = EndCantLeft; - this.StartCantRight = StartCantRight; - this.EndCantRight = EndCantRight; + IFC4X32.IfcZone = IfcZone; + class IfcActionRequest extends IfcControl { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, LongDescription) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; this.PredefinedType = PredefinedType; - this.type = 3752311538; + this.Status = Status; + this.LongDescription = LongDescription; + this.type = 3821786052; } } - IFC4X32.IfcAlignmentCantSegment = IfcAlignmentCantSegment; - class IfcAlignmentHorizontalSegment extends IfcAlignmentParameterSegment { - constructor(expressID, StartTag, EndTag, StartPoint, StartDirection, StartRadiusOfCurvature, EndRadiusOfCurvature, SegmentLength, GravityCenterLineHeight, PredefinedType) { - super(expressID, StartTag, EndTag); - this.StartTag = StartTag; - this.EndTag = EndTag; - this.StartPoint = StartPoint; - this.StartDirection = StartDirection; - this.StartRadiusOfCurvature = StartRadiusOfCurvature; - this.EndRadiusOfCurvature = EndRadiusOfCurvature; - this.SegmentLength = SegmentLength; - this.GravityCenterLineHeight = GravityCenterLineHeight; + IFC4X32.IfcActionRequest = IfcActionRequest; + class IfcAirTerminalBoxType extends IfcFlowControllerType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; this.PredefinedType = PredefinedType; - this.type = 536804194; + this.type = 1411407467; } } - IFC4X32.IfcAlignmentHorizontalSegment = IfcAlignmentHorizontalSegment; - class IfcApprovalRelationship extends IfcResourceLevelRelationship { - constructor(expressID, Name, Description, RelatingApproval, RelatedApprovals) { - super(expressID, Name, Description); + IFC4X32.IfcAirTerminalBoxType = IfcAirTerminalBoxType; + class IfcAirTerminalType extends IfcFlowTerminalType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.RelatingApproval = RelatingApproval; - this.RelatedApprovals = RelatedApprovals; - this.type = 3869604511; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3352864051; } } - IFC4X32.IfcApprovalRelationship = IfcApprovalRelationship; - class IfcArbitraryClosedProfileDef extends IfcProfileDef { - constructor(expressID, ProfileType, ProfileName, OuterCurve) { - super(expressID, ProfileType, ProfileName); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.OuterCurve = OuterCurve; - this.type = 3798115385; + IFC4X32.IfcAirTerminalType = IfcAirTerminalType; + class IfcAirToAirHeatRecoveryType extends IfcEnergyConversionDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1871374353; } } - IFC4X32.IfcArbitraryClosedProfileDef = IfcArbitraryClosedProfileDef; - class IfcArbitraryOpenProfileDef extends IfcProfileDef { - constructor(expressID, ProfileType, ProfileName, Curve) { - super(expressID, ProfileType, ProfileName); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Curve = Curve; - this.type = 1310608509; + IFC4X32.IfcAirToAirHeatRecoveryType = IfcAirToAirHeatRecoveryType; + class IfcAlignmentCant extends IfcLinearElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, RailHeadDistance) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.RailHeadDistance = RailHeadDistance; + this.type = 4266260250; } } - IFC4X32.IfcArbitraryOpenProfileDef = IfcArbitraryOpenProfileDef; - class IfcArbitraryProfileDefWithVoids extends IfcArbitraryClosedProfileDef { - constructor(expressID, ProfileType, ProfileName, OuterCurve, InnerCurves) { - super(expressID, ProfileType, ProfileName, OuterCurve); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.OuterCurve = OuterCurve; - this.InnerCurves = InnerCurves; - this.type = 2705031697; + IFC4X32.IfcAlignmentCant = IfcAlignmentCant; + class IfcAlignmentHorizontal extends IfcLinearElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.type = 1545765605; } } - IFC4X32.IfcArbitraryProfileDefWithVoids = IfcArbitraryProfileDefWithVoids; - class IfcBlobTexture extends IfcSurfaceTexture { - constructor(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter, RasterFormat, RasterCode) { - super(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter); - this.RepeatS = RepeatS; - this.RepeatT = RepeatT; - this.Mode = Mode; - this.TextureTransform = TextureTransform; - this.Parameter = Parameter; - this.RasterFormat = RasterFormat; - this.RasterCode = RasterCode; - this.type = 616511568; + IFC4X32.IfcAlignmentHorizontal = IfcAlignmentHorizontal; + class IfcAlignmentSegment extends IfcLinearElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, DesignParameters) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.DesignParameters = DesignParameters; + this.type = 317615605; } } - IFC4X32.IfcBlobTexture = IfcBlobTexture; - class IfcCenterLineProfileDef extends IfcArbitraryOpenProfileDef { - constructor(expressID, ProfileType, ProfileName, Curve, Thickness) { - super(expressID, ProfileType, ProfileName, Curve); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Curve = Curve; - this.Thickness = Thickness; - this.type = 3150382593; + IFC4X32.IfcAlignmentSegment = IfcAlignmentSegment; + class IfcAlignmentVertical extends IfcLinearElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.type = 1662888072; } } - IFC4X32.IfcCenterLineProfileDef = IfcCenterLineProfileDef; - class IfcClassification extends IfcExternalInformation { - constructor(expressID, Source, Edition, EditionDate, Name, Description, Specification, ReferenceTokens) { - super(expressID); - this.Source = Source; - this.Edition = Edition; - this.EditionDate = EditionDate; + IFC4X32.IfcAlignmentVertical = IfcAlignmentVertical; + class IfcAsset extends IfcGroup { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, OriginalValue, CurrentValue, TotalReplacementCost, Owner, User, ResponsiblePerson, IncorporationDate, DepreciatedValue) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.Specification = Specification; - this.ReferenceTokens = ReferenceTokens; - this.type = 747523909; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.OriginalValue = OriginalValue; + this.CurrentValue = CurrentValue; + this.TotalReplacementCost = TotalReplacementCost; + this.Owner = Owner; + this.User = User; + this.ResponsiblePerson = ResponsiblePerson; + this.IncorporationDate = IncorporationDate; + this.DepreciatedValue = DepreciatedValue; + this.type = 3460190687; } } - IFC4X32.IfcClassification = IfcClassification; - class IfcClassificationReference extends IfcExternalReference { - constructor(expressID, Location, Identification, Name, ReferencedSource, Description, Sort) { - super(expressID, Location, Identification, Name); - this.Location = Location; - this.Identification = Identification; + IFC4X32.IfcAsset = IfcAsset; + class IfcAudioVisualApplianceType extends IfcFlowTerminalType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.ReferencedSource = ReferencedSource; this.Description = Description; - this.Sort = Sort; - this.type = 647927063; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1532957894; } } - IFC4X32.IfcClassificationReference = IfcClassificationReference; - class IfcColourRgbList extends IfcPresentationItem { - constructor(expressID, ColourList) { - super(expressID); - this.ColourList = ColourList; - this.type = 3285139300; + IFC4X32.IfcAudioVisualApplianceType = IfcAudioVisualApplianceType; + class IfcBSplineCurve extends IfcBoundedCurve { + constructor(Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect) { + super(); + this.Degree = Degree; + this.ControlPointsList = ControlPointsList; + this.CurveForm = CurveForm; + this.ClosedCurve = ClosedCurve; + this.SelfIntersect = SelfIntersect; + this.type = 1967976161; } } - IFC4X32.IfcColourRgbList = IfcColourRgbList; - class IfcColourSpecification extends IfcPresentationItem { - constructor(expressID, Name) { - super(expressID); - this.Name = Name; - this.type = 3264961684; + IFC4X32.IfcBSplineCurve = IfcBSplineCurve; + class IfcBSplineCurveWithKnots extends IfcBSplineCurve { + constructor(Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect, KnotMultiplicities, Knots, KnotSpec) { + super(Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect); + this.Degree = Degree; + this.ControlPointsList = ControlPointsList; + this.CurveForm = CurveForm; + this.ClosedCurve = ClosedCurve; + this.SelfIntersect = SelfIntersect; + this.KnotMultiplicities = KnotMultiplicities; + this.Knots = Knots; + this.KnotSpec = KnotSpec; + this.type = 2461110595; } } - IFC4X32.IfcColourSpecification = IfcColourSpecification; - class IfcCompositeProfileDef extends IfcProfileDef { - constructor(expressID, ProfileType, ProfileName, Profiles, Label) { - super(expressID, ProfileType, ProfileName); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Profiles = Profiles; - this.Label = Label; - this.type = 1485152156; + IFC4X32.IfcBSplineCurveWithKnots = IfcBSplineCurveWithKnots; + class IfcBeamType extends IfcBuiltElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 819618141; } } - IFC4X32.IfcCompositeProfileDef = IfcCompositeProfileDef; - class IfcConnectedFaceSet extends IfcTopologicalRepresentationItem { - constructor(expressID, CfsFaces) { - super(expressID); - this.CfsFaces = CfsFaces; - this.type = 370225590; + IFC4X32.IfcBeamType = IfcBeamType; + class IfcBearingType extends IfcBuiltElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3649138523; } } - IFC4X32.IfcConnectedFaceSet = IfcConnectedFaceSet; - class IfcConnectionCurveGeometry extends IfcConnectionGeometry { - constructor(expressID, CurveOnRelatingElement, CurveOnRelatedElement) { - super(expressID); - this.CurveOnRelatingElement = CurveOnRelatingElement; - this.CurveOnRelatedElement = CurveOnRelatedElement; - this.type = 1981873012; + IFC4X32.IfcBearingType = IfcBearingType; + class IfcBoilerType extends IfcEnergyConversionDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 231477066; } } - IFC4X32.IfcConnectionCurveGeometry = IfcConnectionCurveGeometry; - class IfcConnectionPointEccentricity extends IfcConnectionPointGeometry { - constructor(expressID, PointOnRelatingElement, PointOnRelatedElement, EccentricityInX, EccentricityInY, EccentricityInZ) { - super(expressID, PointOnRelatingElement, PointOnRelatedElement); - this.PointOnRelatingElement = PointOnRelatingElement; - this.PointOnRelatedElement = PointOnRelatedElement; - this.EccentricityInX = EccentricityInX; - this.EccentricityInY = EccentricityInY; - this.EccentricityInZ = EccentricityInZ; - this.type = 45288368; + IFC4X32.IfcBoilerType = IfcBoilerType; + class IfcBoundaryCurve extends IfcCompositeCurveOnSurface { + constructor(Segments, SelfIntersect) { + super(Segments, SelfIntersect); + this.Segments = Segments; + this.SelfIntersect = SelfIntersect; + this.type = 1136057603; } } - IFC4X32.IfcConnectionPointEccentricity = IfcConnectionPointEccentricity; - class IfcContextDependentUnit extends IfcNamedUnit { - constructor(expressID, Dimensions, UnitType, Name) { - super(expressID, Dimensions, UnitType); - this.Dimensions = Dimensions; - this.UnitType = UnitType; + IFC4X32.IfcBoundaryCurve = IfcBoundaryCurve; + class IfcBridge extends IfcFacility { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.type = 3050246964; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.LongName = LongName; + this.CompositionType = CompositionType; + this.PredefinedType = PredefinedType; + this.type = 644574406; } } - IFC4X32.IfcContextDependentUnit = IfcContextDependentUnit; - class IfcConversionBasedUnit extends IfcNamedUnit { - constructor(expressID, Dimensions, UnitType, Name, ConversionFactor) { - super(expressID, Dimensions, UnitType); - this.Dimensions = Dimensions; - this.UnitType = UnitType; + IFC4X32.IfcBridge = IfcBridge; + class IfcBridgePart extends IfcFacilityPart { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.ConversionFactor = ConversionFactor; - this.type = 2889183280; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.LongName = LongName; + this.CompositionType = CompositionType; + this.UsageType = UsageType; + this.PredefinedType = PredefinedType; + this.type = 963979645; } } - IFC4X32.IfcConversionBasedUnit = IfcConversionBasedUnit; - class IfcConversionBasedUnitWithOffset extends IfcConversionBasedUnit { - constructor(expressID, Dimensions, UnitType, Name, ConversionFactor, ConversionOffset) { - super(expressID, Dimensions, UnitType, Name, ConversionFactor); - this.Dimensions = Dimensions; - this.UnitType = UnitType; + IFC4X32.IfcBridgePart = IfcBridgePart; + class IfcBuilding extends IfcFacility { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, ElevationOfRefHeight, ElevationOfTerrain, BuildingAddress) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.ConversionFactor = ConversionFactor; - this.ConversionOffset = ConversionOffset; - this.type = 2713554722; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.LongName = LongName; + this.CompositionType = CompositionType; + this.ElevationOfRefHeight = ElevationOfRefHeight; + this.ElevationOfTerrain = ElevationOfTerrain; + this.BuildingAddress = BuildingAddress; + this.type = 4031249490; } } - IFC4X32.IfcConversionBasedUnitWithOffset = IfcConversionBasedUnitWithOffset; - class IfcCurrencyRelationship extends IfcResourceLevelRelationship { - constructor(expressID, Name, Description, RelatingMonetaryUnit, RelatedMonetaryUnit, ExchangeRate, RateDateTime, RateSource) { - super(expressID, Name, Description); + IFC4X32.IfcBuilding = IfcBuilding; + class IfcBuildingElementPart extends IfcElementComponent { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.RelatingMonetaryUnit = RelatingMonetaryUnit; - this.RelatedMonetaryUnit = RelatedMonetaryUnit; - this.ExchangeRate = ExchangeRate; - this.RateDateTime = RateDateTime; - this.RateSource = RateSource; - this.type = 539742890; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 2979338954; } } - IFC4X32.IfcCurrencyRelationship = IfcCurrencyRelationship; - class IfcCurveStyle extends IfcPresentationStyle { - constructor(expressID, Name, CurveFont, CurveWidth, CurveColour, ModelOrDraughting) { - super(expressID, Name); + IFC4X32.IfcBuildingElementPart = IfcBuildingElementPart; + class IfcBuildingElementPartType extends IfcElementComponentType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.CurveFont = CurveFont; - this.CurveWidth = CurveWidth; - this.CurveColour = CurveColour; - this.ModelOrDraughting = ModelOrDraughting; - this.type = 3800577675; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 39481116; } } - IFC4X32.IfcCurveStyle = IfcCurveStyle; - class IfcCurveStyleFont extends IfcPresentationItem { - constructor(expressID, Name, PatternList) { - super(expressID); + IFC4X32.IfcBuildingElementPartType = IfcBuildingElementPartType; + class IfcBuildingElementProxyType extends IfcBuiltElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.PatternList = PatternList; - this.type = 1105321065; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1909888760; } } - IFC4X32.IfcCurveStyleFont = IfcCurveStyleFont; - class IfcCurveStyleFontAndScaling extends IfcPresentationItem { - constructor(expressID, Name, CurveStyleFont, CurveFontScaling) { - super(expressID); + IFC4X32.IfcBuildingElementProxyType = IfcBuildingElementProxyType; + class IfcBuildingSystem extends IfcSystem { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, LongName) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.CurveStyleFont = CurveStyleFont; - this.CurveFontScaling = CurveFontScaling; - this.type = 2367409068; + this.Description = Description; + this.ObjectType = ObjectType; + this.PredefinedType = PredefinedType; + this.LongName = LongName; + this.type = 1177604601; } } - IFC4X32.IfcCurveStyleFontAndScaling = IfcCurveStyleFontAndScaling; - class IfcCurveStyleFontPattern extends IfcPresentationItem { - constructor(expressID, VisibleSegmentLength, InvisibleSegmentLength) { - super(expressID); - this.VisibleSegmentLength = VisibleSegmentLength; - this.InvisibleSegmentLength = InvisibleSegmentLength; - this.type = 3510044353; + IFC4X32.IfcBuildingSystem = IfcBuildingSystem; + class IfcBuiltElement extends IfcElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 1876633798; } } - IFC4X32.IfcCurveStyleFontPattern = IfcCurveStyleFontPattern; - class IfcDerivedProfileDef extends IfcProfileDef { - constructor(expressID, ProfileType, ProfileName, ParentProfile, Operator, Label) { - super(expressID, ProfileType, ProfileName); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.ParentProfile = ParentProfile; - this.Operator = Operator; - this.Label = Label; - this.type = 3632507154; + IFC4X32.IfcBuiltElement = IfcBuiltElement; + class IfcBuiltSystem extends IfcSystem { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, LongName) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.PredefinedType = PredefinedType; + this.LongName = LongName; + this.type = 3862327254; } } - IFC4X32.IfcDerivedProfileDef = IfcDerivedProfileDef; - class IfcDocumentInformation extends IfcExternalInformation { - constructor(expressID, Identification, Name, Description, Location, Purpose, IntendedUse, Scope, Revision, DocumentOwner, Editors, CreationTime, LastRevisionTime, ElectronicFormat, ValidFrom, ValidUntil, Confidentiality, Status) { - super(expressID); - this.Identification = Identification; + IFC4X32.IfcBuiltSystem = IfcBuiltSystem; + class IfcBurnerType extends IfcEnergyConversionDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.Location = Location; - this.Purpose = Purpose; - this.IntendedUse = IntendedUse; - this.Scope = Scope; - this.Revision = Revision; - this.DocumentOwner = DocumentOwner; - this.Editors = Editors; - this.CreationTime = CreationTime; - this.LastRevisionTime = LastRevisionTime; - this.ElectronicFormat = ElectronicFormat; - this.ValidFrom = ValidFrom; - this.ValidUntil = ValidUntil; - this.Confidentiality = Confidentiality; - this.Status = Status; - this.type = 1154170062; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2188180465; } } - IFC4X32.IfcDocumentInformation = IfcDocumentInformation; - class IfcDocumentInformationRelationship extends IfcResourceLevelRelationship { - constructor(expressID, Name, Description, RelatingDocument, RelatedDocuments, RelationshipType) { - super(expressID, Name, Description); + IFC4X32.IfcBurnerType = IfcBurnerType; + class IfcCableCarrierFittingType extends IfcFlowFittingType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.RelatingDocument = RelatingDocument; - this.RelatedDocuments = RelatedDocuments; - this.RelationshipType = RelationshipType; - this.type = 770865208; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 395041908; } } - IFC4X32.IfcDocumentInformationRelationship = IfcDocumentInformationRelationship; - class IfcDocumentReference extends IfcExternalReference { - constructor(expressID, Location, Identification, Name, Description, ReferencedDocument) { - super(expressID, Location, Identification, Name); - this.Location = Location; - this.Identification = Identification; + IFC4X32.IfcCableCarrierFittingType = IfcCableCarrierFittingType; + class IfcCableCarrierSegmentType extends IfcFlowSegmentType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.ReferencedDocument = ReferencedDocument; - this.type = 3732053477; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3293546465; } } - IFC4X32.IfcDocumentReference = IfcDocumentReference; - class IfcEdge extends IfcTopologicalRepresentationItem { - constructor(expressID, EdgeStart, EdgeEnd) { - super(expressID); - this.EdgeStart = EdgeStart; - this.EdgeEnd = EdgeEnd; - this.type = 3900360178; + IFC4X32.IfcCableCarrierSegmentType = IfcCableCarrierSegmentType; + class IfcCableFittingType extends IfcFlowFittingType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2674252688; } } - IFC4X32.IfcEdge = IfcEdge; - class IfcEdgeCurve extends IfcEdge { - constructor(expressID, EdgeStart, EdgeEnd, EdgeGeometry, SameSense) { - super(expressID, EdgeStart, EdgeEnd); - this.EdgeStart = EdgeStart; - this.EdgeEnd = EdgeEnd; - this.EdgeGeometry = EdgeGeometry; - this.SameSense = SameSense; - this.type = 476780140; + IFC4X32.IfcCableFittingType = IfcCableFittingType; + class IfcCableSegmentType extends IfcFlowSegmentType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1285652485; } } - IFC4X32.IfcEdgeCurve = IfcEdgeCurve; - class IfcEventTime extends IfcSchedulingTime { - constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin, ActualDate, EarlyDate, LateDate, ScheduleDate) { - super(expressID, Name, DataOrigin, UserDefinedDataOrigin); + IFC4X32.IfcCableSegmentType = IfcCableSegmentType; + class IfcCaissonFoundationType extends IfcDeepFoundationType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.DataOrigin = DataOrigin; - this.UserDefinedDataOrigin = UserDefinedDataOrigin; - this.ActualDate = ActualDate; - this.EarlyDate = EarlyDate; - this.LateDate = LateDate; - this.ScheduleDate = ScheduleDate; - this.type = 211053100; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3203706013; } } - IFC4X32.IfcEventTime = IfcEventTime; - class IfcExtendedProperties extends IfcPropertyAbstraction { - constructor(expressID, Name, Description, Properties2) { - super(expressID); + IFC4X32.IfcCaissonFoundationType = IfcCaissonFoundationType; + class IfcChillerType extends IfcEnergyConversionDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.Properties = Properties2; - this.type = 297599258; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2951183804; } } - IFC4X32.IfcExtendedProperties = IfcExtendedProperties; - class IfcExternalReferenceRelationship extends IfcResourceLevelRelationship { - constructor(expressID, Name, Description, RelatingReference, RelatedResourceObjects) { - super(expressID, Name, Description); + IFC4X32.IfcChillerType = IfcChillerType; + class IfcChimney extends IfcBuiltElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.RelatingReference = RelatingReference; - this.RelatedResourceObjects = RelatedResourceObjects; - this.type = 1437805879; - } - } - IFC4X32.IfcExternalReferenceRelationship = IfcExternalReferenceRelationship; - class IfcFace extends IfcTopologicalRepresentationItem { - constructor(expressID, Bounds) { - super(expressID); - this.Bounds = Bounds; - this.type = 2556980723; - } - } - IFC4X32.IfcFace = IfcFace; - class IfcFaceBound extends IfcTopologicalRepresentationItem { - constructor(expressID, Bound, Orientation) { - super(expressID); - this.Bound = Bound; - this.Orientation = Orientation; - this.type = 1809719519; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3296154744; } } - IFC4X32.IfcFaceBound = IfcFaceBound; - class IfcFaceOuterBound extends IfcFaceBound { - constructor(expressID, Bound, Orientation) { - super(expressID, Bound, Orientation); - this.Bound = Bound; - this.Orientation = Orientation; - this.type = 803316827; + IFC4X32.IfcChimney = IfcChimney; + class IfcCircle extends IfcConic { + constructor(Position, Radius) { + super(Position); + this.Position = Position; + this.Radius = Radius; + this.type = 2611217952; } } - IFC4X32.IfcFaceOuterBound = IfcFaceOuterBound; - class IfcFaceSurface extends IfcFace { - constructor(expressID, Bounds, FaceSurface, SameSense) { - super(expressID, Bounds); - this.Bounds = Bounds; - this.FaceSurface = FaceSurface; - this.SameSense = SameSense; - this.type = 3008276851; + IFC4X32.IfcCircle = IfcCircle; + class IfcCivilElement extends IfcElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 1677625105; } } - IFC4X32.IfcFaceSurface = IfcFaceSurface; - class IfcFailureConnectionCondition extends IfcStructuralConnectionCondition { - constructor(expressID, Name, TensionFailureX, TensionFailureY, TensionFailureZ, CompressionFailureX, CompressionFailureY, CompressionFailureZ) { - super(expressID, Name); + IFC4X32.IfcCivilElement = IfcCivilElement; + class IfcCoilType extends IfcEnergyConversionDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.TensionFailureX = TensionFailureX; - this.TensionFailureY = TensionFailureY; - this.TensionFailureZ = TensionFailureZ; - this.CompressionFailureX = CompressionFailureX; - this.CompressionFailureY = CompressionFailureY; - this.CompressionFailureZ = CompressionFailureZ; - this.type = 4219587988; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2301859152; } } - IFC4X32.IfcFailureConnectionCondition = IfcFailureConnectionCondition; - class IfcFillAreaStyle extends IfcPresentationStyle { - constructor(expressID, Name, FillStyles, ModelOrDraughting) { - super(expressID, Name); + IFC4X32.IfcCoilType = IfcCoilType; + class IfcColumn extends IfcBuiltElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.FillStyles = FillStyles; - this.ModelOrDraughting = ModelOrDraughting; - this.type = 738692330; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 843113511; } } - IFC4X32.IfcFillAreaStyle = IfcFillAreaStyle; - class IfcGeometricRepresentationContext extends IfcRepresentationContext { - constructor(expressID, ContextIdentifier, ContextType, CoordinateSpaceDimension, Precision, WorldCoordinateSystem, TrueNorth) { - super(expressID, ContextIdentifier, ContextType); - this.ContextIdentifier = ContextIdentifier; - this.ContextType = ContextType; - this.CoordinateSpaceDimension = CoordinateSpaceDimension; - this.Precision = Precision; - this.WorldCoordinateSystem = WorldCoordinateSystem; - this.TrueNorth = TrueNorth; - this.type = 3448662350; + IFC4X32.IfcColumn = IfcColumn; + class IfcCommunicationsApplianceType extends IfcFlowTerminalType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 400855858; } } - IFC4X32.IfcGeometricRepresentationContext = IfcGeometricRepresentationContext; - class IfcGeometricRepresentationItem extends IfcRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 2453401579; + IFC4X32.IfcCommunicationsApplianceType = IfcCommunicationsApplianceType; + class IfcCompressorType extends IfcFlowMovingDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3850581409; } } - IFC4X32.IfcGeometricRepresentationItem = IfcGeometricRepresentationItem; - class IfcGeometricRepresentationSubContext extends IfcGeometricRepresentationContext { - constructor(expressID, ContextIdentifier, ContextType, WorldCoordinateSystem, ParentContext, TargetScale, TargetView, UserDefinedTargetView) { - super(expressID, ContextIdentifier, ContextType, new IfcDimensionCount(0), null, WorldCoordinateSystem, null); - this.ContextIdentifier = ContextIdentifier; - this.ContextType = ContextType; - this.WorldCoordinateSystem = WorldCoordinateSystem; - this.ParentContext = ParentContext; - this.TargetScale = TargetScale; - this.TargetView = TargetView; - this.UserDefinedTargetView = UserDefinedTargetView; - this.type = 4142052618; + IFC4X32.IfcCompressorType = IfcCompressorType; + class IfcCondenserType extends IfcEnergyConversionDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2816379211; } } - IFC4X32.IfcGeometricRepresentationSubContext = IfcGeometricRepresentationSubContext; - class IfcGeometricSet extends IfcGeometricRepresentationItem { - constructor(expressID, Elements) { - super(expressID); - this.Elements = Elements; - this.type = 3590301190; + IFC4X32.IfcCondenserType = IfcCondenserType; + class IfcConstructionEquipmentResource extends IfcConstructionResource { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.Usage = Usage; + this.BaseCosts = BaseCosts; + this.BaseQuantity = BaseQuantity; + this.PredefinedType = PredefinedType; + this.type = 3898045240; } } - IFC4X32.IfcGeometricSet = IfcGeometricSet; - class IfcGridPlacement extends IfcObjectPlacement { - constructor(expressID, PlacementRelTo, PlacementLocation, PlacementRefDirection) { - super(expressID, PlacementRelTo); - this.PlacementRelTo = PlacementRelTo; - this.PlacementLocation = PlacementLocation; - this.PlacementRefDirection = PlacementRefDirection; - this.type = 178086475; + IFC4X32.IfcConstructionEquipmentResource = IfcConstructionEquipmentResource; + class IfcConstructionMaterialResource extends IfcConstructionResource { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.Usage = Usage; + this.BaseCosts = BaseCosts; + this.BaseQuantity = BaseQuantity; + this.PredefinedType = PredefinedType; + this.type = 1060000209; } } - IFC4X32.IfcGridPlacement = IfcGridPlacement; - class IfcHalfSpaceSolid extends IfcGeometricRepresentationItem { - constructor(expressID, BaseSurface, AgreementFlag) { - super(expressID); - this.BaseSurface = BaseSurface; - this.AgreementFlag = AgreementFlag; - this.type = 812098782; + IFC4X32.IfcConstructionMaterialResource = IfcConstructionMaterialResource; + class IfcConstructionProductResource extends IfcConstructionResource { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.Usage = Usage; + this.BaseCosts = BaseCosts; + this.BaseQuantity = BaseQuantity; + this.PredefinedType = PredefinedType; + this.type = 488727124; } } - IFC4X32.IfcHalfSpaceSolid = IfcHalfSpaceSolid; - class IfcImageTexture extends IfcSurfaceTexture { - constructor(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter, URLReference) { - super(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter); - this.RepeatS = RepeatS; - this.RepeatT = RepeatT; - this.Mode = Mode; - this.TextureTransform = TextureTransform; - this.Parameter = Parameter; - this.URLReference = URLReference; - this.type = 3905492369; + IFC4X32.IfcConstructionProductResource = IfcConstructionProductResource; + class IfcConveyorSegmentType extends IfcFlowSegmentType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2940368186; } } - IFC4X32.IfcImageTexture = IfcImageTexture; - class IfcIndexedColourMap extends IfcPresentationItem { - constructor(expressID, MappedTo, Opacity, Colours, ColourIndex) { - super(expressID); - this.MappedTo = MappedTo; - this.Opacity = Opacity; - this.Colours = Colours; - this.ColourIndex = ColourIndex; - this.type = 3570813810; + IFC4X32.IfcConveyorSegmentType = IfcConveyorSegmentType; + class IfcCooledBeamType extends IfcEnergyConversionDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 335055490; } } - IFC4X32.IfcIndexedColourMap = IfcIndexedColourMap; - class IfcIndexedTextureMap extends IfcTextureCoordinate { - constructor(expressID, Maps, MappedTo, TexCoords) { - super(expressID, Maps); - this.Maps = Maps; - this.MappedTo = MappedTo; - this.TexCoords = TexCoords; - this.type = 1437953363; + IFC4X32.IfcCooledBeamType = IfcCooledBeamType; + class IfcCoolingTowerType extends IfcEnergyConversionDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2954562838; } } - IFC4X32.IfcIndexedTextureMap = IfcIndexedTextureMap; - class IfcIndexedTriangleTextureMap extends IfcIndexedTextureMap { - constructor(expressID, Maps, MappedTo, TexCoords, TexCoordIndex) { - super(expressID, Maps, MappedTo, TexCoords); - this.Maps = Maps; - this.MappedTo = MappedTo; - this.TexCoords = TexCoords; - this.TexCoordIndex = TexCoordIndex; - this.type = 2133299955; + IFC4X32.IfcCoolingTowerType = IfcCoolingTowerType; + class IfcCourse extends IfcBuiltElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1502416096; } } - IFC4X32.IfcIndexedTriangleTextureMap = IfcIndexedTriangleTextureMap; - class IfcIrregularTimeSeries extends IfcTimeSeries { - constructor(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit, Values) { - super(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit); + IFC4X32.IfcCourse = IfcCourse; + class IfcCovering extends IfcBuiltElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.StartTime = StartTime; - this.EndTime = EndTime; - this.TimeSeriesDataType = TimeSeriesDataType; - this.DataOrigin = DataOrigin; - this.UserDefinedDataOrigin = UserDefinedDataOrigin; - this.Unit = Unit; - this.Values = Values; - this.type = 3741457305; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1973544240; } } - IFC4X32.IfcIrregularTimeSeries = IfcIrregularTimeSeries; - class IfcLagTime extends IfcSchedulingTime { - constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin, LagValue, DurationType) { - super(expressID, Name, DataOrigin, UserDefinedDataOrigin); + IFC4X32.IfcCovering = IfcCovering; + class IfcCurtainWall extends IfcBuiltElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.DataOrigin = DataOrigin; - this.UserDefinedDataOrigin = UserDefinedDataOrigin; - this.LagValue = LagValue; - this.DurationType = DurationType; - this.type = 1585845231; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3495092785; } } - IFC4X32.IfcLagTime = IfcLagTime; - class IfcLightSource extends IfcGeometricRepresentationItem { - constructor(expressID, Name, LightColour, AmbientIntensity, Intensity) { - super(expressID); + IFC4X32.IfcCurtainWall = IfcCurtainWall; + class IfcDamperType extends IfcFlowControllerType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.LightColour = LightColour; - this.AmbientIntensity = AmbientIntensity; - this.Intensity = Intensity; - this.type = 1402838566; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3961806047; } } - IFC4X32.IfcLightSource = IfcLightSource; - class IfcLightSourceAmbient extends IfcLightSource { - constructor(expressID, Name, LightColour, AmbientIntensity, Intensity) { - super(expressID, Name, LightColour, AmbientIntensity, Intensity); + IFC4X32.IfcDamperType = IfcDamperType; + class IfcDeepFoundation extends IfcBuiltElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.LightColour = LightColour; - this.AmbientIntensity = AmbientIntensity; - this.Intensity = Intensity; - this.type = 125510826; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 3426335179; } } - IFC4X32.IfcLightSourceAmbient = IfcLightSourceAmbient; - class IfcLightSourceDirectional extends IfcLightSource { - constructor(expressID, Name, LightColour, AmbientIntensity, Intensity, Orientation) { - super(expressID, Name, LightColour, AmbientIntensity, Intensity); + IFC4X32.IfcDeepFoundation = IfcDeepFoundation; + class IfcDiscreteAccessory extends IfcElementComponent { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.LightColour = LightColour; - this.AmbientIntensity = AmbientIntensity; - this.Intensity = Intensity; - this.Orientation = Orientation; - this.type = 2604431987; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1335981549; } } - IFC4X32.IfcLightSourceDirectional = IfcLightSourceDirectional; - class IfcLightSourceGoniometric extends IfcLightSource { - constructor(expressID, Name, LightColour, AmbientIntensity, Intensity, Position, ColourAppearance, ColourTemperature, LuminousFlux, LightEmissionSource, LightDistributionDataSource) { - super(expressID, Name, LightColour, AmbientIntensity, Intensity); + IFC4X32.IfcDiscreteAccessory = IfcDiscreteAccessory; + class IfcDiscreteAccessoryType extends IfcElementComponentType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.LightColour = LightColour; - this.AmbientIntensity = AmbientIntensity; - this.Intensity = Intensity; - this.Position = Position; - this.ColourAppearance = ColourAppearance; - this.ColourTemperature = ColourTemperature; - this.LuminousFlux = LuminousFlux; - this.LightEmissionSource = LightEmissionSource; - this.LightDistributionDataSource = LightDistributionDataSource; - this.type = 4266656042; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2635815018; } } - IFC4X32.IfcLightSourceGoniometric = IfcLightSourceGoniometric; - class IfcLightSourcePositional extends IfcLightSource { - constructor(expressID, Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation) { - super(expressID, Name, LightColour, AmbientIntensity, Intensity); + IFC4X32.IfcDiscreteAccessoryType = IfcDiscreteAccessoryType; + class IfcDistributionBoardType extends IfcFlowControllerType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.LightColour = LightColour; - this.AmbientIntensity = AmbientIntensity; - this.Intensity = Intensity; - this.Position = Position; - this.Radius = Radius; - this.ConstantAttenuation = ConstantAttenuation; - this.DistanceAttenuation = DistanceAttenuation; - this.QuadricAttenuation = QuadricAttenuation; - this.type = 1520743889; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 479945903; } } - IFC4X32.IfcLightSourcePositional = IfcLightSourcePositional; - class IfcLightSourceSpot extends IfcLightSourcePositional { - constructor(expressID, Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation, Orientation, ConcentrationExponent, SpreadAngle, BeamWidthAngle) { - super(expressID, Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation); - this.Name = Name; - this.LightColour = LightColour; - this.AmbientIntensity = AmbientIntensity; - this.Intensity = Intensity; - this.Position = Position; - this.Radius = Radius; - this.ConstantAttenuation = ConstantAttenuation; - this.DistanceAttenuation = DistanceAttenuation; - this.QuadricAttenuation = QuadricAttenuation; - this.Orientation = Orientation; - this.ConcentrationExponent = ConcentrationExponent; - this.SpreadAngle = SpreadAngle; - this.BeamWidthAngle = BeamWidthAngle; - this.type = 3422422726; + IFC4X32.IfcDistributionBoardType = IfcDistributionBoardType; + class IfcDistributionChamberElementType extends IfcDistributionFlowElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1599208980; } } - IFC4X32.IfcLightSourceSpot = IfcLightSourceSpot; - class IfcLinearPlacement extends IfcObjectPlacement { - constructor(expressID, PlacementRelTo, RelativePlacement, CartesianPosition) { - super(expressID, PlacementRelTo); - this.PlacementRelTo = PlacementRelTo; - this.RelativePlacement = RelativePlacement; - this.CartesianPosition = CartesianPosition; - this.type = 388784114; + IFC4X32.IfcDistributionChamberElementType = IfcDistributionChamberElementType; + class IfcDistributionControlElementType extends IfcDistributionElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 2063403501; } } - IFC4X32.IfcLinearPlacement = IfcLinearPlacement; - class IfcLocalPlacement extends IfcObjectPlacement { - constructor(expressID, PlacementRelTo, RelativePlacement) { - super(expressID, PlacementRelTo); - this.PlacementRelTo = PlacementRelTo; - this.RelativePlacement = RelativePlacement; - this.type = 2624227202; + IFC4X32.IfcDistributionControlElementType = IfcDistributionControlElementType; + class IfcDistributionElement extends IfcElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 1945004755; } } - IFC4X32.IfcLocalPlacement = IfcLocalPlacement; - class IfcLoop extends IfcTopologicalRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 1008929658; + IFC4X32.IfcDistributionElement = IfcDistributionElement; + class IfcDistributionFlowElement extends IfcDistributionElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 3040386961; } } - IFC4X32.IfcLoop = IfcLoop; - class IfcMappedItem extends IfcRepresentationItem { - constructor(expressID, MappingSource, MappingTarget) { - super(expressID); - this.MappingSource = MappingSource; - this.MappingTarget = MappingTarget; - this.type = 2347385850; + IFC4X32.IfcDistributionFlowElement = IfcDistributionFlowElement; + class IfcDistributionPort extends IfcPort { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, FlowDirection, PredefinedType, SystemType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.FlowDirection = FlowDirection; + this.PredefinedType = PredefinedType; + this.SystemType = SystemType; + this.type = 3041715199; } } - IFC4X32.IfcMappedItem = IfcMappedItem; - class IfcMaterial extends IfcMaterialDefinition { - constructor(expressID, Name, Description, Category) { - super(expressID); + IFC4X32.IfcDistributionPort = IfcDistributionPort; + class IfcDistributionSystem extends IfcSystem { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.Category = Category; - this.type = 1838606355; + this.ObjectType = ObjectType; + this.LongName = LongName; + this.PredefinedType = PredefinedType; + this.type = 3205830791; } } - IFC4X32.IfcMaterial = IfcMaterial; - class IfcMaterialConstituent extends IfcMaterialDefinition { - constructor(expressID, Name, Description, Material, Fraction, Category) { - super(expressID); + IFC4X32.IfcDistributionSystem = IfcDistributionSystem; + class IfcDoor extends IfcBuiltElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, OperationType, UserDefinedOperationType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.Material = Material; - this.Fraction = Fraction; - this.Category = Category; - this.type = 3708119e3; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.OverallHeight = OverallHeight; + this.OverallWidth = OverallWidth; + this.PredefinedType = PredefinedType; + this.OperationType = OperationType; + this.UserDefinedOperationType = UserDefinedOperationType; + this.type = 395920057; } } - IFC4X32.IfcMaterialConstituent = IfcMaterialConstituent; - class IfcMaterialConstituentSet extends IfcMaterialDefinition { - constructor(expressID, Name, Description, MaterialConstituents) { - super(expressID); + IFC4X32.IfcDoor = IfcDoor; + class IfcDuctFittingType extends IfcFlowFittingType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.MaterialConstituents = MaterialConstituents; - this.type = 2852063980; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 869906466; } } - IFC4X32.IfcMaterialConstituentSet = IfcMaterialConstituentSet; - class IfcMaterialDefinitionRepresentation extends IfcProductRepresentation { - constructor(expressID, Name, Description, Representations, RepresentedMaterial) { - super(expressID, Name, Description, Representations); + IFC4X32.IfcDuctFittingType = IfcDuctFittingType; + class IfcDuctSegmentType extends IfcFlowSegmentType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.Representations = Representations; - this.RepresentedMaterial = RepresentedMaterial; - this.type = 2022407955; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3760055223; } } - IFC4X32.IfcMaterialDefinitionRepresentation = IfcMaterialDefinitionRepresentation; - class IfcMaterialLayerSetUsage extends IfcMaterialUsageDefinition { - constructor(expressID, ForLayerSet, LayerSetDirection, DirectionSense, OffsetFromReferenceLine, ReferenceExtent) { - super(expressID); - this.ForLayerSet = ForLayerSet; - this.LayerSetDirection = LayerSetDirection; - this.DirectionSense = DirectionSense; - this.OffsetFromReferenceLine = OffsetFromReferenceLine; - this.ReferenceExtent = ReferenceExtent; - this.type = 1303795690; + IFC4X32.IfcDuctSegmentType = IfcDuctSegmentType; + class IfcDuctSilencerType extends IfcFlowTreatmentDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2030761528; } } - IFC4X32.IfcMaterialLayerSetUsage = IfcMaterialLayerSetUsage; - class IfcMaterialProfileSetUsage extends IfcMaterialUsageDefinition { - constructor(expressID, ForProfileSet, CardinalPoint, ReferenceExtent) { - super(expressID); - this.ForProfileSet = ForProfileSet; - this.CardinalPoint = CardinalPoint; - this.ReferenceExtent = ReferenceExtent; - this.type = 3079605661; + IFC4X32.IfcDuctSilencerType = IfcDuctSilencerType; + class IfcEarthworksCut extends IfcFeatureElementSubtraction { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3071239417; } } - IFC4X32.IfcMaterialProfileSetUsage = IfcMaterialProfileSetUsage; - class IfcMaterialProfileSetUsageTapering extends IfcMaterialProfileSetUsage { - constructor(expressID, ForProfileSet, CardinalPoint, ReferenceExtent, ForProfileEndSet, CardinalEndPoint) { - super(expressID, ForProfileSet, CardinalPoint, ReferenceExtent); - this.ForProfileSet = ForProfileSet; - this.CardinalPoint = CardinalPoint; - this.ReferenceExtent = ReferenceExtent; - this.ForProfileEndSet = ForProfileEndSet; - this.CardinalEndPoint = CardinalEndPoint; - this.type = 3404854881; + IFC4X32.IfcEarthworksCut = IfcEarthworksCut; + class IfcEarthworksElement extends IfcBuiltElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 1077100507; } } - IFC4X32.IfcMaterialProfileSetUsageTapering = IfcMaterialProfileSetUsageTapering; - class IfcMaterialProperties extends IfcExtendedProperties { - constructor(expressID, Name, Description, Properties2, Material) { - super(expressID, Name, Description, Properties2); + IFC4X32.IfcEarthworksElement = IfcEarthworksElement; + class IfcEarthworksFill extends IfcEarthworksElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.Properties = Properties2; - this.Material = Material; - this.type = 3265635763; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3376911765; } } - IFC4X32.IfcMaterialProperties = IfcMaterialProperties; - class IfcMaterialRelationship extends IfcResourceLevelRelationship { - constructor(expressID, Name, Description, RelatingMaterial, RelatedMaterials, MaterialExpression) { - super(expressID, Name, Description); + IFC4X32.IfcEarthworksFill = IfcEarthworksFill; + class IfcElectricApplianceType extends IfcFlowTerminalType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.RelatingMaterial = RelatingMaterial; - this.RelatedMaterials = RelatedMaterials; - this.MaterialExpression = MaterialExpression; - this.type = 853536259; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 663422040; } } - IFC4X32.IfcMaterialRelationship = IfcMaterialRelationship; - class IfcMirroredProfileDef extends IfcDerivedProfileDef { - constructor(expressID, ProfileType, ProfileName, ParentProfile, Operator, Label) { - super(expressID, ProfileType, ProfileName, ParentProfile, Operator, Label); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.ParentProfile = ParentProfile; - this.Operator = Operator; - this.Label = Label; - this.type = 2998442950; + IFC4X32.IfcElectricApplianceType = IfcElectricApplianceType; + class IfcElectricDistributionBoardType extends IfcFlowControllerType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2417008758; } } - IFC4X32.IfcMirroredProfileDef = IfcMirroredProfileDef; - class IfcObjectDefinition extends IfcRoot { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); + IFC4X32.IfcElectricDistributionBoardType = IfcElectricDistributionBoardType; + class IfcElectricFlowStorageDeviceType extends IfcFlowStorageDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.type = 219451334; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3277789161; } } - IFC4X32.IfcObjectDefinition = IfcObjectDefinition; - class IfcOpenCrossProfileDef extends IfcProfileDef { - constructor(expressID, ProfileType, ProfileName, HorizontalWidths, Widths, Slopes, Tags, OffsetPoint) { - super(expressID, ProfileType, ProfileName); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.HorizontalWidths = HorizontalWidths; - this.Widths = Widths; - this.Slopes = Slopes; - this.Tags = Tags; - this.OffsetPoint = OffsetPoint; - this.type = 182550632; + IFC4X32.IfcElectricFlowStorageDeviceType = IfcElectricFlowStorageDeviceType; + class IfcElectricFlowTreatmentDeviceType extends IfcFlowTreatmentDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2142170206; } } - IFC4X32.IfcOpenCrossProfileDef = IfcOpenCrossProfileDef; - class IfcOpenShell extends IfcConnectedFaceSet { - constructor(expressID, CfsFaces) { - super(expressID, CfsFaces); - this.CfsFaces = CfsFaces; - this.type = 2665983363; + IFC4X32.IfcElectricFlowTreatmentDeviceType = IfcElectricFlowTreatmentDeviceType; + class IfcElectricGeneratorType extends IfcEnergyConversionDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1534661035; } } - IFC4X32.IfcOpenShell = IfcOpenShell; - class IfcOrganizationRelationship extends IfcResourceLevelRelationship { - constructor(expressID, Name, Description, RelatingOrganization, RelatedOrganizations) { - super(expressID, Name, Description); + IFC4X32.IfcElectricGeneratorType = IfcElectricGeneratorType; + class IfcElectricMotorType extends IfcEnergyConversionDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.RelatingOrganization = RelatingOrganization; - this.RelatedOrganizations = RelatedOrganizations; - this.type = 1411181986; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1217240411; } } - IFC4X32.IfcOrganizationRelationship = IfcOrganizationRelationship; - class IfcOrientedEdge extends IfcEdge { - constructor(expressID, EdgeStart, EdgeElement, Orientation) { - super(expressID, EdgeStart, new Handle$4(0)); - this.EdgeStart = EdgeStart; - this.EdgeElement = EdgeElement; - this.Orientation = Orientation; - this.type = 1029017970; + IFC4X32.IfcElectricMotorType = IfcElectricMotorType; + class IfcElectricTimeControlType extends IfcFlowControllerType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 712377611; } } - IFC4X32.IfcOrientedEdge = IfcOrientedEdge; - class IfcParameterizedProfileDef extends IfcProfileDef { - constructor(expressID, ProfileType, ProfileName, Position) { - super(expressID, ProfileType, ProfileName); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.type = 2529465313; + IFC4X32.IfcElectricTimeControlType = IfcElectricTimeControlType; + class IfcEnergyConversionDevice extends IfcDistributionFlowElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 1658829314; } } - IFC4X32.IfcParameterizedProfileDef = IfcParameterizedProfileDef; - class IfcPath extends IfcTopologicalRepresentationItem { - constructor(expressID, EdgeList) { - super(expressID); - this.EdgeList = EdgeList; - this.type = 2519244187; + IFC4X32.IfcEnergyConversionDevice = IfcEnergyConversionDevice; + class IfcEngine extends IfcEnergyConversionDevice { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 2814081492; } } - IFC4X32.IfcPath = IfcPath; - class IfcPhysicalComplexQuantity extends IfcPhysicalQuantity { - constructor(expressID, Name, Description, HasQuantities, Discrimination, Quality, Usage) { - super(expressID, Name, Description); + IFC4X32.IfcEngine = IfcEngine; + class IfcEvaporativeCooler extends IfcEnergyConversionDevice { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.HasQuantities = HasQuantities; - this.Discrimination = Discrimination; - this.Quality = Quality; - this.Usage = Usage; - this.type = 3021840470; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3747195512; } } - IFC4X32.IfcPhysicalComplexQuantity = IfcPhysicalComplexQuantity; - class IfcPixelTexture extends IfcSurfaceTexture { - constructor(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter, Width, Height, ColourComponents, Pixel) { - super(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter); - this.RepeatS = RepeatS; - this.RepeatT = RepeatT; - this.Mode = Mode; - this.TextureTransform = TextureTransform; - this.Parameter = Parameter; - this.Width = Width; - this.Height = Height; - this.ColourComponents = ColourComponents; - this.Pixel = Pixel; - this.type = 597895409; + IFC4X32.IfcEvaporativeCooler = IfcEvaporativeCooler; + class IfcEvaporator extends IfcEnergyConversionDevice { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 484807127; } } - IFC4X32.IfcPixelTexture = IfcPixelTexture; - class IfcPlacement extends IfcGeometricRepresentationItem { - constructor(expressID, Location) { - super(expressID); - this.Location = Location; - this.type = 2004835150; + IFC4X32.IfcEvaporator = IfcEvaporator; + class IfcExternalSpatialElement extends IfcExternalSpatialStructureElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.LongName = LongName; + this.PredefinedType = PredefinedType; + this.type = 1209101575; } } - IFC4X32.IfcPlacement = IfcPlacement; - class IfcPlanarExtent extends IfcGeometricRepresentationItem { - constructor(expressID, SizeInX, SizeInY) { - super(expressID); - this.SizeInX = SizeInX; - this.SizeInY = SizeInY; - this.type = 1663979128; + IFC4X32.IfcExternalSpatialElement = IfcExternalSpatialElement; + class IfcFanType extends IfcFlowMovingDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 346874300; } } - IFC4X32.IfcPlanarExtent = IfcPlanarExtent; - class IfcPoint extends IfcGeometricRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 2067069095; + IFC4X32.IfcFanType = IfcFanType; + class IfcFilterType extends IfcFlowTreatmentDeviceType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1810631287; } } - IFC4X32.IfcPoint = IfcPoint; - class IfcPointByDistanceExpression extends IfcPoint { - constructor(expressID, DistanceAlong, OffsetLateral, OffsetVertical, OffsetLongitudinal, BasisCurve) { - super(expressID); - this.DistanceAlong = DistanceAlong; - this.OffsetLateral = OffsetLateral; - this.OffsetVertical = OffsetVertical; - this.OffsetLongitudinal = OffsetLongitudinal; - this.BasisCurve = BasisCurve; - this.type = 2165702409; + IFC4X32.IfcFilterType = IfcFilterType; + class IfcFireSuppressionTerminalType extends IfcFlowTerminalType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 4222183408; } } - IFC4X32.IfcPointByDistanceExpression = IfcPointByDistanceExpression; - class IfcPointOnCurve extends IfcPoint { - constructor(expressID, BasisCurve, PointParameter) { - super(expressID); - this.BasisCurve = BasisCurve; - this.PointParameter = PointParameter; - this.type = 4022376103; + IFC4X32.IfcFireSuppressionTerminalType = IfcFireSuppressionTerminalType; + class IfcFlowController extends IfcDistributionFlowElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 2058353004; } } - IFC4X32.IfcPointOnCurve = IfcPointOnCurve; - class IfcPointOnSurface extends IfcPoint { - constructor(expressID, BasisSurface, PointParameterU, PointParameterV) { - super(expressID); - this.BasisSurface = BasisSurface; - this.PointParameterU = PointParameterU; - this.PointParameterV = PointParameterV; - this.type = 1423911732; + IFC4X32.IfcFlowController = IfcFlowController; + class IfcFlowFitting extends IfcDistributionFlowElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 4278956645; } } - IFC4X32.IfcPointOnSurface = IfcPointOnSurface; - class IfcPolyLoop extends IfcLoop { - constructor(expressID, Polygon) { - super(expressID); - this.Polygon = Polygon; - this.type = 2924175390; + IFC4X32.IfcFlowFitting = IfcFlowFitting; + class IfcFlowInstrumentType extends IfcDistributionControlElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 4037862832; } } - IFC4X32.IfcPolyLoop = IfcPolyLoop; - class IfcPolygonalBoundedHalfSpace extends IfcHalfSpaceSolid { - constructor(expressID, BaseSurface, AgreementFlag, Position, PolygonalBoundary) { - super(expressID, BaseSurface, AgreementFlag); - this.BaseSurface = BaseSurface; - this.AgreementFlag = AgreementFlag; - this.Position = Position; - this.PolygonalBoundary = PolygonalBoundary; - this.type = 2775532180; + IFC4X32.IfcFlowInstrumentType = IfcFlowInstrumentType; + class IfcFlowMeter extends IfcFlowController { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 2188021234; } } - IFC4X32.IfcPolygonalBoundedHalfSpace = IfcPolygonalBoundedHalfSpace; - class IfcPreDefinedItem extends IfcPresentationItem { - constructor(expressID, Name) { - super(expressID); + IFC4X32.IfcFlowMeter = IfcFlowMeter; + class IfcFlowMovingDevice extends IfcDistributionFlowElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.type = 3727388367; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 3132237377; } } - IFC4X32.IfcPreDefinedItem = IfcPreDefinedItem; - class IfcPreDefinedProperties extends IfcPropertyAbstraction { - constructor(expressID) { - super(expressID); - this.type = 3778827333; + IFC4X32.IfcFlowMovingDevice = IfcFlowMovingDevice; + class IfcFlowSegment extends IfcDistributionFlowElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 987401354; } } - IFC4X32.IfcPreDefinedProperties = IfcPreDefinedProperties; - class IfcPreDefinedTextFont extends IfcPreDefinedItem { - constructor(expressID, Name) { - super(expressID, Name); + IFC4X32.IfcFlowSegment = IfcFlowSegment; + class IfcFlowStorageDevice extends IfcDistributionFlowElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.type = 1775413392; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 707683696; } } - IFC4X32.IfcPreDefinedTextFont = IfcPreDefinedTextFont; - class IfcProductDefinitionShape extends IfcProductRepresentation { - constructor(expressID, Name, Description, Representations) { - super(expressID, Name, Description, Representations); + IFC4X32.IfcFlowStorageDevice = IfcFlowStorageDevice; + class IfcFlowTerminal extends IfcDistributionFlowElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.Representations = Representations; - this.type = 673634403; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 2223149337; } } - IFC4X32.IfcProductDefinitionShape = IfcProductDefinitionShape; - class IfcProfileProperties extends IfcExtendedProperties { - constructor(expressID, Name, Description, Properties2, ProfileDefinition) { - super(expressID, Name, Description, Properties2); + IFC4X32.IfcFlowTerminal = IfcFlowTerminal; + class IfcFlowTreatmentDevice extends IfcDistributionFlowElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.Properties = Properties2; - this.ProfileDefinition = ProfileDefinition; - this.type = 2802850158; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 3508470533; } } - IFC4X32.IfcProfileProperties = IfcProfileProperties; - class IfcProperty extends IfcPropertyAbstraction { - constructor(expressID, Name, Specification) { - super(expressID); + IFC4X32.IfcFlowTreatmentDevice = IfcFlowTreatmentDevice; + class IfcFooting extends IfcBuiltElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.Specification = Specification; - this.type = 2598011224; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 900683007; } } - IFC4X32.IfcProperty = IfcProperty; - class IfcPropertyDefinition extends IfcRoot { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); + IFC4X32.IfcFooting = IfcFooting; + class IfcGeotechnicalAssembly extends IfcGeotechnicalElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.type = 1680319473; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 2713699986; } } - IFC4X32.IfcPropertyDefinition = IfcPropertyDefinition; - class IfcPropertyDependencyRelationship extends IfcResourceLevelRelationship { - constructor(expressID, Name, Description, DependingProperty, DependantProperty, Expression) { - super(expressID, Name, Description); + IFC4X32.IfcGeotechnicalAssembly = IfcGeotechnicalAssembly; + class IfcGrid extends IfcPositioningElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, UAxes, VAxes, WAxes, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.DependingProperty = DependingProperty; - this.DependantProperty = DependantProperty; - this.Expression = Expression; - this.type = 148025276; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.UAxes = UAxes; + this.VAxes = VAxes; + this.WAxes = WAxes; + this.PredefinedType = PredefinedType; + this.type = 3009204131; } } - IFC4X32.IfcPropertyDependencyRelationship = IfcPropertyDependencyRelationship; - class IfcPropertySetDefinition extends IfcPropertyDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); + IFC4X32.IfcGrid = IfcGrid; + class IfcHeatExchanger extends IfcEnergyConversionDevice { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.type = 3357820518; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3319311131; } } - IFC4X32.IfcPropertySetDefinition = IfcPropertySetDefinition; - class IfcPropertyTemplateDefinition extends IfcPropertyDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); + IFC4X32.IfcHeatExchanger = IfcHeatExchanger; + class IfcHumidifier extends IfcEnergyConversionDevice { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.type = 1482703590; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 2068733104; } } - IFC4X32.IfcPropertyTemplateDefinition = IfcPropertyTemplateDefinition; - class IfcQuantitySet extends IfcPropertySetDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); + IFC4X32.IfcHumidifier = IfcHumidifier; + class IfcInterceptor extends IfcFlowTreatmentDevice { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.type = 2090586900; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 4175244083; } } - IFC4X32.IfcQuantitySet = IfcQuantitySet; - class IfcRectangleProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, XDim, YDim) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.XDim = XDim; - this.YDim = YDim; - this.type = 3615266464; + IFC4X32.IfcInterceptor = IfcInterceptor; + class IfcJunctionBox extends IfcFlowFitting { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 2176052936; } } - IFC4X32.IfcRectangleProfileDef = IfcRectangleProfileDef; - class IfcRegularTimeSeries extends IfcTimeSeries { - constructor(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit, TimeStep, Values) { - super(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit); + IFC4X32.IfcJunctionBox = IfcJunctionBox; + class IfcKerb extends IfcBuiltElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, Mountable) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.StartTime = StartTime; - this.EndTime = EndTime; - this.TimeSeriesDataType = TimeSeriesDataType; - this.DataOrigin = DataOrigin; - this.UserDefinedDataOrigin = UserDefinedDataOrigin; - this.Unit = Unit; - this.TimeStep = TimeStep; - this.Values = Values; - this.type = 3413951693; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.Mountable = Mountable; + this.type = 2696325953; } } - IFC4X32.IfcRegularTimeSeries = IfcRegularTimeSeries; - class IfcReinforcementBarProperties extends IfcPreDefinedProperties { - constructor(expressID, TotalCrossSectionArea, SteelGrade, BarSurface, EffectiveDepth, NominalBarDiameter, BarCount) { - super(expressID); - this.TotalCrossSectionArea = TotalCrossSectionArea; - this.SteelGrade = SteelGrade; - this.BarSurface = BarSurface; - this.EffectiveDepth = EffectiveDepth; - this.NominalBarDiameter = NominalBarDiameter; - this.BarCount = BarCount; - this.type = 1580146022; + IFC4X32.IfcKerb = IfcKerb; + class IfcLamp extends IfcFlowTerminal { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 76236018; } } - IFC4X32.IfcReinforcementBarProperties = IfcReinforcementBarProperties; - class IfcRelationship extends IfcRoot { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); + IFC4X32.IfcLamp = IfcLamp; + class IfcLightFixture extends IfcFlowTerminal { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.type = 478536968; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 629592764; } } - IFC4X32.IfcRelationship = IfcRelationship; - class IfcResourceApprovalRelationship extends IfcResourceLevelRelationship { - constructor(expressID, Name, Description, RelatedResourceObjects, RelatingApproval) { - super(expressID, Name, Description); + IFC4X32.IfcLightFixture = IfcLightFixture; + class IfcLinearPositioningElement extends IfcPositioningElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.RelatedResourceObjects = RelatedResourceObjects; - this.RelatingApproval = RelatingApproval; - this.type = 2943643501; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.type = 1154579445; } } - IFC4X32.IfcResourceApprovalRelationship = IfcResourceApprovalRelationship; - class IfcResourceConstraintRelationship extends IfcResourceLevelRelationship { - constructor(expressID, Name, Description, RelatingConstraint, RelatedResourceObjects) { - super(expressID, Name, Description); + IFC4X32.IfcLinearPositioningElement = IfcLinearPositioningElement; + class IfcLiquidTerminal extends IfcFlowTerminal { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.RelatingConstraint = RelatingConstraint; - this.RelatedResourceObjects = RelatedResourceObjects; - this.type = 1608871552; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1638804497; } } - IFC4X32.IfcResourceConstraintRelationship = IfcResourceConstraintRelationship; - class IfcResourceTime extends IfcSchedulingTime { - constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin, ScheduleWork, ScheduleUsage, ScheduleStart, ScheduleFinish, ScheduleContour, LevelingDelay, IsOverAllocated, StatusTime, ActualWork, ActualUsage, ActualStart, ActualFinish, RemainingWork, RemainingUsage, Completion) { - super(expressID, Name, DataOrigin, UserDefinedDataOrigin); + IFC4X32.IfcLiquidTerminal = IfcLiquidTerminal; + class IfcMedicalDevice extends IfcFlowTerminal { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.DataOrigin = DataOrigin; - this.UserDefinedDataOrigin = UserDefinedDataOrigin; - this.ScheduleWork = ScheduleWork; - this.ScheduleUsage = ScheduleUsage; - this.ScheduleStart = ScheduleStart; - this.ScheduleFinish = ScheduleFinish; - this.ScheduleContour = ScheduleContour; - this.LevelingDelay = LevelingDelay; - this.IsOverAllocated = IsOverAllocated; - this.StatusTime = StatusTime; - this.ActualWork = ActualWork; - this.ActualUsage = ActualUsage; - this.ActualStart = ActualStart; - this.ActualFinish = ActualFinish; - this.RemainingWork = RemainingWork; - this.RemainingUsage = RemainingUsage; - this.Completion = Completion; - this.type = 1042787934; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1437502449; } } - IFC4X32.IfcResourceTime = IfcResourceTime; - class IfcRoundedRectangleProfileDef extends IfcRectangleProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, XDim, YDim, RoundingRadius) { - super(expressID, ProfileType, ProfileName, Position, XDim, YDim); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.XDim = XDim; - this.YDim = YDim; - this.RoundingRadius = RoundingRadius; - this.type = 2778083089; + IFC4X32.IfcMedicalDevice = IfcMedicalDevice; + class IfcMember extends IfcBuiltElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1073191201; } } - IFC4X32.IfcRoundedRectangleProfileDef = IfcRoundedRectangleProfileDef; - class IfcSectionProperties extends IfcPreDefinedProperties { - constructor(expressID, SectionType, StartProfile, EndProfile) { - super(expressID); - this.SectionType = SectionType; - this.StartProfile = StartProfile; - this.EndProfile = EndProfile; - this.type = 2042790032; + IFC4X32.IfcMember = IfcMember; + class IfcMobileTelecommunicationsAppliance extends IfcFlowTerminal { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 2078563270; } } - IFC4X32.IfcSectionProperties = IfcSectionProperties; - class IfcSectionReinforcementProperties extends IfcPreDefinedProperties { - constructor(expressID, LongitudinalStartPosition, LongitudinalEndPosition, TransversePosition, ReinforcementRole, SectionDefinition, CrossSectionReinforcementDefinitions) { - super(expressID); - this.LongitudinalStartPosition = LongitudinalStartPosition; - this.LongitudinalEndPosition = LongitudinalEndPosition; - this.TransversePosition = TransversePosition; - this.ReinforcementRole = ReinforcementRole; - this.SectionDefinition = SectionDefinition; - this.CrossSectionReinforcementDefinitions = CrossSectionReinforcementDefinitions; - this.type = 4165799628; + IFC4X32.IfcMobileTelecommunicationsAppliance = IfcMobileTelecommunicationsAppliance; + class IfcMooringDevice extends IfcBuiltElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 234836483; } } - IFC4X32.IfcSectionReinforcementProperties = IfcSectionReinforcementProperties; - class IfcSectionedSpine extends IfcGeometricRepresentationItem { - constructor(expressID, SpineCurve, CrossSections, CrossSectionPositions) { - super(expressID); - this.SpineCurve = SpineCurve; - this.CrossSections = CrossSections; - this.CrossSectionPositions = CrossSectionPositions; - this.type = 1509187699; + IFC4X32.IfcMooringDevice = IfcMooringDevice; + class IfcMotorConnection extends IfcEnergyConversionDevice { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 2474470126; + } + } + IFC4X32.IfcMotorConnection = IfcMotorConnection; + class IfcNavigationElement extends IfcBuiltElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 2182337498; } } - IFC4X32.IfcSectionedSpine = IfcSectionedSpine; - class IfcSegment extends IfcGeometricRepresentationItem { - constructor(expressID, Transition) { - super(expressID); - this.Transition = Transition; - this.type = 823603102; + IFC4X32.IfcNavigationElement = IfcNavigationElement; + class IfcOuterBoundaryCurve extends IfcBoundaryCurve { + constructor(Segments, SelfIntersect) { + super(Segments, SelfIntersect); + this.Segments = Segments; + this.SelfIntersect = SelfIntersect; + this.type = 144952367; } } - IFC4X32.IfcSegment = IfcSegment; - class IfcShellBasedSurfaceModel extends IfcGeometricRepresentationItem { - constructor(expressID, SbsmBoundary) { - super(expressID); - this.SbsmBoundary = SbsmBoundary; - this.type = 4124623270; + IFC4X32.IfcOuterBoundaryCurve = IfcOuterBoundaryCurve; + class IfcOutlet extends IfcFlowTerminal { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3694346114; } } - IFC4X32.IfcShellBasedSurfaceModel = IfcShellBasedSurfaceModel; - class IfcSimpleProperty extends IfcProperty { - constructor(expressID, Name, Specification) { - super(expressID, Name, Specification); + IFC4X32.IfcOutlet = IfcOutlet; + class IfcPavement extends IfcBuiltElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.Specification = Specification; - this.type = 3692461612; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1383356374; } } - IFC4X32.IfcSimpleProperty = IfcSimpleProperty; - class IfcSlippageConnectionCondition extends IfcStructuralConnectionCondition { - constructor(expressID, Name, SlippageX, SlippageY, SlippageZ) { - super(expressID, Name); + IFC4X32.IfcPavement = IfcPavement; + class IfcPile extends IfcDeepFoundation { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType, ConstructionType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.SlippageX = SlippageX; - this.SlippageY = SlippageY; - this.SlippageZ = SlippageZ; - this.type = 2609359061; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.ConstructionType = ConstructionType; + this.type = 1687234759; } } - IFC4X32.IfcSlippageConnectionCondition = IfcSlippageConnectionCondition; - class IfcSolidModel extends IfcGeometricRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 723233188; + IFC4X32.IfcPile = IfcPile; + class IfcPipeFitting extends IfcFlowFitting { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 310824031; } } - IFC4X32.IfcSolidModel = IfcSolidModel; - class IfcStructuralLoadLinearForce extends IfcStructuralLoadStatic { - constructor(expressID, Name, LinearForceX, LinearForceY, LinearForceZ, LinearMomentX, LinearMomentY, LinearMomentZ) { - super(expressID, Name); + IFC4X32.IfcPipeFitting = IfcPipeFitting; + class IfcPipeSegment extends IfcFlowSegment { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.LinearForceX = LinearForceX; - this.LinearForceY = LinearForceY; - this.LinearForceZ = LinearForceZ; - this.LinearMomentX = LinearMomentX; - this.LinearMomentY = LinearMomentY; - this.LinearMomentZ = LinearMomentZ; - this.type = 1595516126; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3612865200; } } - IFC4X32.IfcStructuralLoadLinearForce = IfcStructuralLoadLinearForce; - class IfcStructuralLoadPlanarForce extends IfcStructuralLoadStatic { - constructor(expressID, Name, PlanarForceX, PlanarForceY, PlanarForceZ) { - super(expressID, Name); + IFC4X32.IfcPipeSegment = IfcPipeSegment; + class IfcPlate extends IfcBuiltElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.PlanarForceX = PlanarForceX; - this.PlanarForceY = PlanarForceY; - this.PlanarForceZ = PlanarForceZ; - this.type = 2668620305; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3171933400; } } - IFC4X32.IfcStructuralLoadPlanarForce = IfcStructuralLoadPlanarForce; - class IfcStructuralLoadSingleDisplacement extends IfcStructuralLoadStatic { - constructor(expressID, Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ) { - super(expressID, Name); + IFC4X32.IfcPlate = IfcPlate; + class IfcProtectiveDevice extends IfcFlowController { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.DisplacementX = DisplacementX; - this.DisplacementY = DisplacementY; - this.DisplacementZ = DisplacementZ; - this.RotationalDisplacementRX = RotationalDisplacementRX; - this.RotationalDisplacementRY = RotationalDisplacementRY; - this.RotationalDisplacementRZ = RotationalDisplacementRZ; - this.type = 2473145415; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 738039164; } } - IFC4X32.IfcStructuralLoadSingleDisplacement = IfcStructuralLoadSingleDisplacement; - class IfcStructuralLoadSingleDisplacementDistortion extends IfcStructuralLoadSingleDisplacement { - constructor(expressID, Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ, Distortion) { - super(expressID, Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ); + IFC4X32.IfcProtectiveDevice = IfcProtectiveDevice; + class IfcProtectiveDeviceTrippingUnitType extends IfcDistributionControlElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.DisplacementX = DisplacementX; - this.DisplacementY = DisplacementY; - this.DisplacementZ = DisplacementZ; - this.RotationalDisplacementRX = RotationalDisplacementRX; - this.RotationalDisplacementRY = RotationalDisplacementRY; - this.RotationalDisplacementRZ = RotationalDisplacementRZ; - this.Distortion = Distortion; - this.type = 1973038258; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 655969474; } } - IFC4X32.IfcStructuralLoadSingleDisplacementDistortion = IfcStructuralLoadSingleDisplacementDistortion; - class IfcStructuralLoadSingleForce extends IfcStructuralLoadStatic { - constructor(expressID, Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ) { - super(expressID, Name); + IFC4X32.IfcProtectiveDeviceTrippingUnitType = IfcProtectiveDeviceTrippingUnitType; + class IfcPump extends IfcFlowMovingDevice { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.ForceX = ForceX; - this.ForceY = ForceY; - this.ForceZ = ForceZ; - this.MomentX = MomentX; - this.MomentY = MomentY; - this.MomentZ = MomentZ; - this.type = 1597423693; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 90941305; } } - IFC4X32.IfcStructuralLoadSingleForce = IfcStructuralLoadSingleForce; - class IfcStructuralLoadSingleForceWarping extends IfcStructuralLoadSingleForce { - constructor(expressID, Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ, WarpingMoment) { - super(expressID, Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ); + IFC4X32.IfcPump = IfcPump; + class IfcRail extends IfcBuiltElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.ForceX = ForceX; - this.ForceY = ForceY; - this.ForceZ = ForceZ; - this.MomentX = MomentX; - this.MomentY = MomentY; - this.MomentZ = MomentZ; - this.WarpingMoment = WarpingMoment; - this.type = 1190533807; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3290496277; } } - IFC4X32.IfcStructuralLoadSingleForceWarping = IfcStructuralLoadSingleForceWarping; - class IfcSubedge extends IfcEdge { - constructor(expressID, EdgeStart, EdgeEnd, ParentEdge) { - super(expressID, EdgeStart, EdgeEnd); - this.EdgeStart = EdgeStart; - this.EdgeEnd = EdgeEnd; - this.ParentEdge = ParentEdge; - this.type = 2233826070; + IFC4X32.IfcRail = IfcRail; + class IfcRailing extends IfcBuiltElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 2262370178; } } - IFC4X32.IfcSubedge = IfcSubedge; - class IfcSurface extends IfcGeometricRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 2513912981; + IFC4X32.IfcRailing = IfcRailing; + class IfcRamp extends IfcBuiltElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3024970846; } } - IFC4X32.IfcSurface = IfcSurface; - class IfcSurfaceStyleRendering extends IfcSurfaceStyleShading { - constructor(expressID, SurfaceColour, Transparency, DiffuseColour, TransmissionColour, DiffuseTransmissionColour, ReflectionColour, SpecularColour, SpecularHighlight, ReflectanceMethod) { - super(expressID, SurfaceColour, Transparency); - this.SurfaceColour = SurfaceColour; - this.Transparency = Transparency; - this.DiffuseColour = DiffuseColour; - this.TransmissionColour = TransmissionColour; - this.DiffuseTransmissionColour = DiffuseTransmissionColour; - this.ReflectionColour = ReflectionColour; - this.SpecularColour = SpecularColour; - this.SpecularHighlight = SpecularHighlight; - this.ReflectanceMethod = ReflectanceMethod; - this.type = 1878645084; + IFC4X32.IfcRamp = IfcRamp; + class IfcRampFlight extends IfcBuiltElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3283111854; } } - IFC4X32.IfcSurfaceStyleRendering = IfcSurfaceStyleRendering; - class IfcSweptAreaSolid extends IfcSolidModel { - constructor(expressID, SweptArea, Position) { - super(expressID); - this.SweptArea = SweptArea; - this.Position = Position; - this.type = 2247615214; + IFC4X32.IfcRampFlight = IfcRampFlight; + class IfcRationalBSplineCurveWithKnots extends IfcBSplineCurveWithKnots { + constructor(Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect, KnotMultiplicities, Knots, KnotSpec, WeightsData) { + super(Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect, KnotMultiplicities, Knots, KnotSpec); + this.Degree = Degree; + this.ControlPointsList = ControlPointsList; + this.CurveForm = CurveForm; + this.ClosedCurve = ClosedCurve; + this.SelfIntersect = SelfIntersect; + this.KnotMultiplicities = KnotMultiplicities; + this.Knots = Knots; + this.KnotSpec = KnotSpec; + this.WeightsData = WeightsData; + this.type = 1232101972; } } - IFC4X32.IfcSweptAreaSolid = IfcSweptAreaSolid; - class IfcSweptDiskSolid extends IfcSolidModel { - constructor(expressID, Directrix, Radius, InnerRadius, StartParam, EndParam) { - super(expressID); - this.Directrix = Directrix; - this.Radius = Radius; - this.InnerRadius = InnerRadius; - this.StartParam = StartParam; - this.EndParam = EndParam; - this.type = 1260650574; + IFC4X32.IfcRationalBSplineCurveWithKnots = IfcRationalBSplineCurveWithKnots; + class IfcReinforcedSoil extends IfcEarthworksElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3798194928; } } - IFC4X32.IfcSweptDiskSolid = IfcSweptDiskSolid; - class IfcSweptDiskSolidPolygonal extends IfcSweptDiskSolid { - constructor(expressID, Directrix, Radius, InnerRadius, StartParam, EndParam, FilletRadius) { - super(expressID, Directrix, Radius, InnerRadius, StartParam, EndParam); - this.Directrix = Directrix; - this.Radius = Radius; - this.InnerRadius = InnerRadius; - this.StartParam = StartParam; - this.EndParam = EndParam; - this.FilletRadius = FilletRadius; - this.type = 1096409881; + IFC4X32.IfcReinforcedSoil = IfcReinforcedSoil; + class IfcReinforcingBar extends IfcReinforcingElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, NominalDiameter, CrossSectionArea, BarLength, PredefinedType, BarSurface) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.SteelGrade = SteelGrade; + this.NominalDiameter = NominalDiameter; + this.CrossSectionArea = CrossSectionArea; + this.BarLength = BarLength; + this.PredefinedType = PredefinedType; + this.BarSurface = BarSurface; + this.type = 979691226; } } - IFC4X32.IfcSweptDiskSolidPolygonal = IfcSweptDiskSolidPolygonal; - class IfcSweptSurface extends IfcSurface { - constructor(expressID, SweptCurve, Position) { - super(expressID); - this.SweptCurve = SweptCurve; - this.Position = Position; - this.type = 230924584; + IFC4X32.IfcReinforcingBar = IfcReinforcingBar; + class IfcReinforcingBarType extends IfcReinforcingElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, NominalDiameter, CrossSectionArea, BarLength, BarSurface, BendingShapeCode, BendingParameters) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.NominalDiameter = NominalDiameter; + this.CrossSectionArea = CrossSectionArea; + this.BarLength = BarLength; + this.BarSurface = BarSurface; + this.BendingShapeCode = BendingShapeCode; + this.BendingParameters = BendingParameters; + this.type = 2572171363; } } - IFC4X32.IfcSweptSurface = IfcSweptSurface; - class IfcTShapeProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, FlangeEdgeRadius, WebEdgeRadius, WebSlope, FlangeSlope) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.Depth = Depth; - this.FlangeWidth = FlangeWidth; - this.WebThickness = WebThickness; - this.FlangeThickness = FlangeThickness; - this.FilletRadius = FilletRadius; - this.FlangeEdgeRadius = FlangeEdgeRadius; - this.WebEdgeRadius = WebEdgeRadius; - this.WebSlope = WebSlope; - this.FlangeSlope = FlangeSlope; - this.type = 3071757647; + IFC4X32.IfcReinforcingBarType = IfcReinforcingBarType; + class IfcRoof extends IfcBuiltElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 2016517767; } } - IFC4X32.IfcTShapeProfileDef = IfcTShapeProfileDef; - class IfcTessellatedItem extends IfcGeometricRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 901063453; + IFC4X32.IfcRoof = IfcRoof; + class IfcSanitaryTerminal extends IfcFlowTerminal { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3053780830; } } - IFC4X32.IfcTessellatedItem = IfcTessellatedItem; - class IfcTextLiteral extends IfcGeometricRepresentationItem { - constructor(expressID, Literal, Placement, Path) { - super(expressID); - this.Literal = Literal; - this.Placement = Placement; - this.Path = Path; - this.type = 4282788508; + IFC4X32.IfcSanitaryTerminal = IfcSanitaryTerminal; + class IfcSensorType extends IfcDistributionControlElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1783015770; } } - IFC4X32.IfcTextLiteral = IfcTextLiteral; - class IfcTextLiteralWithExtent extends IfcTextLiteral { - constructor(expressID, Literal, Placement, Path, Extent, BoxAlignment) { - super(expressID, Literal, Placement, Path); - this.Literal = Literal; - this.Placement = Placement; - this.Path = Path; - this.Extent = Extent; - this.BoxAlignment = BoxAlignment; - this.type = 3124975700; + IFC4X32.IfcSensorType = IfcSensorType; + class IfcShadingDevice extends IfcBuiltElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1329646415; } } - IFC4X32.IfcTextLiteralWithExtent = IfcTextLiteralWithExtent; - class IfcTextStyleFontModel extends IfcPreDefinedTextFont { - constructor(expressID, Name, FontFamily, FontStyle, FontVariant, FontWeight, FontSize) { - super(expressID, Name); + IFC4X32.IfcShadingDevice = IfcShadingDevice; + class IfcSignal extends IfcFlowTerminal { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.FontFamily = FontFamily; - this.FontStyle = FontStyle; - this.FontVariant = FontVariant; - this.FontWeight = FontWeight; - this.FontSize = FontSize; - this.type = 1983826977; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 991950508; } } - IFC4X32.IfcTextStyleFontModel = IfcTextStyleFontModel; - class IfcTrapeziumProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, BottomXDim, TopXDim, YDim, TopXOffset) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.BottomXDim = BottomXDim; - this.TopXDim = TopXDim; - this.YDim = YDim; - this.TopXOffset = TopXOffset; - this.type = 2715220739; + IFC4X32.IfcSignal = IfcSignal; + class IfcSlab extends IfcBuiltElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1529196076; } } - IFC4X32.IfcTrapeziumProfileDef = IfcTrapeziumProfileDef; - class IfcTypeObject extends IfcObjectDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets) { - super(expressID, GlobalId, OwnerHistory, Name, Description); + IFC4X32.IfcSlab = IfcSlab; + class IfcSolarDevice extends IfcEnergyConversionDevice { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.type = 1628702193; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3420628829; } } - IFC4X32.IfcTypeObject = IfcTypeObject; - class IfcTypeProcess extends IfcTypeObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets); + IFC4X32.IfcSolarDevice = IfcSolarDevice; + class IfcSpaceHeater extends IfcFlowTerminal { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.ProcessType = ProcessType; - this.type = 3736923433; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1999602285; } } - IFC4X32.IfcTypeProcess = IfcTypeProcess; - class IfcTypeProduct extends IfcTypeObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets); + IFC4X32.IfcSpaceHeater = IfcSpaceHeater; + class IfcStackTerminal extends IfcFlowTerminal { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; this.Tag = Tag; - this.type = 2347495698; + this.PredefinedType = PredefinedType; + this.type = 1404847402; } } - IFC4X32.IfcTypeProduct = IfcTypeProduct; - class IfcTypeResource extends IfcTypeObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets); + IFC4X32.IfcStackTerminal = IfcStackTerminal; + class IfcStair extends IfcBuiltElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.ResourceType = ResourceType; - this.type = 3698973494; - } - } - IFC4X32.IfcTypeResource = IfcTypeResource; - class IfcUShapeProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, EdgeRadius, FlangeSlope) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.Depth = Depth; - this.FlangeWidth = FlangeWidth; - this.WebThickness = WebThickness; - this.FlangeThickness = FlangeThickness; - this.FilletRadius = FilletRadius; - this.EdgeRadius = EdgeRadius; - this.FlangeSlope = FlangeSlope; - this.type = 427810014; - } - } - IFC4X32.IfcUShapeProfileDef = IfcUShapeProfileDef; - class IfcVector extends IfcGeometricRepresentationItem { - constructor(expressID, Orientation, Magnitude) { - super(expressID); - this.Orientation = Orientation; - this.Magnitude = Magnitude; - this.type = 1417489154; - } - } - IFC4X32.IfcVector = IfcVector; - class IfcVertexLoop extends IfcLoop { - constructor(expressID, LoopVertex) { - super(expressID); - this.LoopVertex = LoopVertex; - this.type = 2759199220; - } - } - IFC4X32.IfcVertexLoop = IfcVertexLoop; - class IfcZShapeProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, EdgeRadius) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.Depth = Depth; - this.FlangeWidth = FlangeWidth; - this.WebThickness = WebThickness; - this.FlangeThickness = FlangeThickness; - this.FilletRadius = FilletRadius; - this.EdgeRadius = EdgeRadius; - this.type = 2543172580; - } - } - IFC4X32.IfcZShapeProfileDef = IfcZShapeProfileDef; - class IfcAdvancedFace extends IfcFaceSurface { - constructor(expressID, Bounds, FaceSurface, SameSense) { - super(expressID, Bounds, FaceSurface, SameSense); - this.Bounds = Bounds; - this.FaceSurface = FaceSurface; - this.SameSense = SameSense; - this.type = 3406155212; - } - } - IFC4X32.IfcAdvancedFace = IfcAdvancedFace; - class IfcAnnotationFillArea extends IfcGeometricRepresentationItem { - constructor(expressID, OuterBoundary, InnerBoundaries) { - super(expressID); - this.OuterBoundary = OuterBoundary; - this.InnerBoundaries = InnerBoundaries; - this.type = 669184980; - } - } - IFC4X32.IfcAnnotationFillArea = IfcAnnotationFillArea; - class IfcAsymmetricIShapeProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, BottomFlangeWidth, OverallDepth, WebThickness, BottomFlangeThickness, BottomFlangeFilletRadius, TopFlangeWidth, TopFlangeThickness, TopFlangeFilletRadius, BottomFlangeEdgeRadius, BottomFlangeSlope, TopFlangeEdgeRadius, TopFlangeSlope) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.BottomFlangeWidth = BottomFlangeWidth; - this.OverallDepth = OverallDepth; - this.WebThickness = WebThickness; - this.BottomFlangeThickness = BottomFlangeThickness; - this.BottomFlangeFilletRadius = BottomFlangeFilletRadius; - this.TopFlangeWidth = TopFlangeWidth; - this.TopFlangeThickness = TopFlangeThickness; - this.TopFlangeFilletRadius = TopFlangeFilletRadius; - this.BottomFlangeEdgeRadius = BottomFlangeEdgeRadius; - this.BottomFlangeSlope = BottomFlangeSlope; - this.TopFlangeEdgeRadius = TopFlangeEdgeRadius; - this.TopFlangeSlope = TopFlangeSlope; - this.type = 3207858831; - } - } - IFC4X32.IfcAsymmetricIShapeProfileDef = IfcAsymmetricIShapeProfileDef; - class IfcAxis1Placement extends IfcPlacement { - constructor(expressID, Location, Axis) { - super(expressID, Location); - this.Location = Location; - this.Axis = Axis; - this.type = 4261334040; - } - } - IFC4X32.IfcAxis1Placement = IfcAxis1Placement; - class IfcAxis2Placement2D extends IfcPlacement { - constructor(expressID, Location, RefDirection) { - super(expressID, Location); - this.Location = Location; - this.RefDirection = RefDirection; - this.type = 3125803723; - } - } - IFC4X32.IfcAxis2Placement2D = IfcAxis2Placement2D; - class IfcAxis2Placement3D extends IfcPlacement { - constructor(expressID, Location, Axis, RefDirection) { - super(expressID, Location); - this.Location = Location; - this.Axis = Axis; - this.RefDirection = RefDirection; - this.type = 2740243338; - } - } - IFC4X32.IfcAxis2Placement3D = IfcAxis2Placement3D; - class IfcAxis2PlacementLinear extends IfcPlacement { - constructor(expressID, Location, Axis, RefDirection) { - super(expressID, Location); - this.Location = Location; - this.Axis = Axis; - this.RefDirection = RefDirection; - this.type = 3425423356; - } - } - IFC4X32.IfcAxis2PlacementLinear = IfcAxis2PlacementLinear; - class IfcBooleanResult extends IfcGeometricRepresentationItem { - constructor(expressID, Operator, FirstOperand, SecondOperand) { - super(expressID); - this.Operator = Operator; - this.FirstOperand = FirstOperand; - this.SecondOperand = SecondOperand; - this.type = 2736907675; - } - } - IFC4X32.IfcBooleanResult = IfcBooleanResult; - class IfcBoundedSurface extends IfcSurface { - constructor(expressID) { - super(expressID); - this.type = 4182860854; - } - } - IFC4X32.IfcBoundedSurface = IfcBoundedSurface; - class IfcBoundingBox extends IfcGeometricRepresentationItem { - constructor(expressID, Corner, XDim, YDim, ZDim) { - super(expressID); - this.Corner = Corner; - this.XDim = XDim; - this.YDim = YDim; - this.ZDim = ZDim; - this.type = 2581212453; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 331165859; } } - IFC4X32.IfcBoundingBox = IfcBoundingBox; - class IfcBoxedHalfSpace extends IfcHalfSpaceSolid { - constructor(expressID, BaseSurface, AgreementFlag, Enclosure) { - super(expressID, BaseSurface, AgreementFlag); - this.BaseSurface = BaseSurface; - this.AgreementFlag = AgreementFlag; - this.Enclosure = Enclosure; - this.type = 2713105998; + IFC4X32.IfcStair = IfcStair; + class IfcStairFlight extends IfcBuiltElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, NumberOfRisers, NumberOfTreads, RiserHeight, TreadLength, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.NumberOfRisers = NumberOfRisers; + this.NumberOfTreads = NumberOfTreads; + this.RiserHeight = RiserHeight; + this.TreadLength = TreadLength; + this.PredefinedType = PredefinedType; + this.type = 4252922144; } } - IFC4X32.IfcBoxedHalfSpace = IfcBoxedHalfSpace; - class IfcCShapeProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, Depth, Width, WallThickness, Girth, InternalFilletRadius) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.Depth = Depth; - this.Width = Width; - this.WallThickness = WallThickness; - this.Girth = Girth; - this.InternalFilletRadius = InternalFilletRadius; - this.type = 2898889636; + IFC4X32.IfcStairFlight = IfcStairFlight; + class IfcStructuralAnalysisModel extends IfcSystem { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, OrientationOf2DPlane, LoadedBy, HasResults, SharedPlacement) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.PredefinedType = PredefinedType; + this.OrientationOf2DPlane = OrientationOf2DPlane; + this.LoadedBy = LoadedBy; + this.HasResults = HasResults; + this.SharedPlacement = SharedPlacement; + this.type = 2515109513; } } - IFC4X32.IfcCShapeProfileDef = IfcCShapeProfileDef; - class IfcCartesianPoint extends IfcPoint { - constructor(expressID, Coordinates) { - super(expressID); - this.Coordinates = Coordinates; - this.type = 1123145078; + IFC4X32.IfcStructuralAnalysisModel = IfcStructuralAnalysisModel; + class IfcStructuralLoadCase extends IfcStructuralLoadGroup { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, ActionType, ActionSource, Coefficient, Purpose, SelfWeightCoefficients) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, ActionType, ActionSource, Coefficient, Purpose); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.PredefinedType = PredefinedType; + this.ActionType = ActionType; + this.ActionSource = ActionSource; + this.Coefficient = Coefficient; + this.Purpose = Purpose; + this.SelfWeightCoefficients = SelfWeightCoefficients; + this.type = 385403989; } } - IFC4X32.IfcCartesianPoint = IfcCartesianPoint; - class IfcCartesianPointList extends IfcGeometricRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 574549367; + IFC4X32.IfcStructuralLoadCase = IfcStructuralLoadCase; + class IfcStructuralPlanarAction extends IfcStructuralSurfaceAction { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedLoad = AppliedLoad; + this.GlobalOrLocal = GlobalOrLocal; + this.DestabilizingLoad = DestabilizingLoad; + this.ProjectedOrTrue = ProjectedOrTrue; + this.PredefinedType = PredefinedType; + this.type = 1621171031; } } - IFC4X32.IfcCartesianPointList = IfcCartesianPointList; - class IfcCartesianPointList2D extends IfcCartesianPointList { - constructor(expressID, CoordList, TagList) { - super(expressID); - this.CoordList = CoordList; - this.TagList = TagList; - this.type = 1675464909; + IFC4X32.IfcStructuralPlanarAction = IfcStructuralPlanarAction; + class IfcSwitchingDevice extends IfcFlowController { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1162798199; } } - IFC4X32.IfcCartesianPointList2D = IfcCartesianPointList2D; - class IfcCartesianPointList3D extends IfcCartesianPointList { - constructor(expressID, CoordList, TagList) { - super(expressID); - this.CoordList = CoordList; - this.TagList = TagList; - this.type = 2059837836; + IFC4X32.IfcSwitchingDevice = IfcSwitchingDevice; + class IfcTank extends IfcFlowStorageDevice { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 812556717; } } - IFC4X32.IfcCartesianPointList3D = IfcCartesianPointList3D; - class IfcCartesianTransformationOperator extends IfcGeometricRepresentationItem { - constructor(expressID, Axis1, Axis2, LocalOrigin, Scale) { - super(expressID); - this.Axis1 = Axis1; - this.Axis2 = Axis2; - this.LocalOrigin = LocalOrigin; - this.Scale = Scale; - this.type = 59481748; + IFC4X32.IfcTank = IfcTank; + class IfcTrackElement extends IfcBuiltElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3425753595; } } - IFC4X32.IfcCartesianTransformationOperator = IfcCartesianTransformationOperator; - class IfcCartesianTransformationOperator2D extends IfcCartesianTransformationOperator { - constructor(expressID, Axis1, Axis2, LocalOrigin, Scale) { - super(expressID, Axis1, Axis2, LocalOrigin, Scale); - this.Axis1 = Axis1; - this.Axis2 = Axis2; - this.LocalOrigin = LocalOrigin; - this.Scale = Scale; - this.type = 3749851601; + IFC4X32.IfcTrackElement = IfcTrackElement; + class IfcTransformer extends IfcEnergyConversionDevice { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3825984169; } } - IFC4X32.IfcCartesianTransformationOperator2D = IfcCartesianTransformationOperator2D; - class IfcCartesianTransformationOperator2DnonUniform extends IfcCartesianTransformationOperator2D { - constructor(expressID, Axis1, Axis2, LocalOrigin, Scale, Scale2) { - super(expressID, Axis1, Axis2, LocalOrigin, Scale); - this.Axis1 = Axis1; - this.Axis2 = Axis2; - this.LocalOrigin = LocalOrigin; - this.Scale = Scale; - this.Scale2 = Scale2; - this.type = 3486308946; + IFC4X32.IfcTransformer = IfcTransformer; + class IfcTransportElement extends IfcTransportationDevice { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1620046519; } } - IFC4X32.IfcCartesianTransformationOperator2DnonUniform = IfcCartesianTransformationOperator2DnonUniform; - class IfcCartesianTransformationOperator3D extends IfcCartesianTransformationOperator { - constructor(expressID, Axis1, Axis2, LocalOrigin, Scale, Axis3) { - super(expressID, Axis1, Axis2, LocalOrigin, Scale); - this.Axis1 = Axis1; - this.Axis2 = Axis2; - this.LocalOrigin = LocalOrigin; - this.Scale = Scale; - this.Axis3 = Axis3; - this.type = 3331915920; + IFC4X32.IfcTransportElement = IfcTransportElement; + class IfcTubeBundle extends IfcEnergyConversionDevice { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3026737570; } } - IFC4X32.IfcCartesianTransformationOperator3D = IfcCartesianTransformationOperator3D; - class IfcCartesianTransformationOperator3DnonUniform extends IfcCartesianTransformationOperator3D { - constructor(expressID, Axis1, Axis2, LocalOrigin, Scale, Axis3, Scale2, Scale3) { - super(expressID, Axis1, Axis2, LocalOrigin, Scale, Axis3); - this.Axis1 = Axis1; - this.Axis2 = Axis2; - this.LocalOrigin = LocalOrigin; - this.Scale = Scale; - this.Axis3 = Axis3; - this.Scale2 = Scale2; - this.Scale3 = Scale3; - this.type = 1416205885; + IFC4X32.IfcTubeBundle = IfcTubeBundle; + class IfcUnitaryControlElementType extends IfcDistributionControlElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3179687236; } } - IFC4X32.IfcCartesianTransformationOperator3DnonUniform = IfcCartesianTransformationOperator3DnonUniform; - class IfcCircleProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, Radius) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.Radius = Radius; - this.type = 1383045692; + IFC4X32.IfcUnitaryControlElementType = IfcUnitaryControlElementType; + class IfcUnitaryEquipment extends IfcEnergyConversionDevice { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 4292641817; } } - IFC4X32.IfcCircleProfileDef = IfcCircleProfileDef; - class IfcClosedShell extends IfcConnectedFaceSet { - constructor(expressID, CfsFaces) { - super(expressID, CfsFaces); - this.CfsFaces = CfsFaces; - this.type = 2205249479; + IFC4X32.IfcUnitaryEquipment = IfcUnitaryEquipment; + class IfcValve extends IfcFlowController { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 4207607924; } } - IFC4X32.IfcClosedShell = IfcClosedShell; - class IfcColourRgb extends IfcColourSpecification { - constructor(expressID, Name, Red, Green, Blue) { - super(expressID, Name); + IFC4X32.IfcValve = IfcValve; + class IfcWall extends IfcBuiltElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 2391406946; + } + } + IFC4X32.IfcWall = IfcWall; + class IfcWallStandardCase extends IfcWall { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.Red = Red; - this.Green = Green; - this.Blue = Blue; - this.type = 776857604; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3512223829; } } - IFC4X32.IfcColourRgb = IfcColourRgb; - class IfcComplexProperty extends IfcProperty { - constructor(expressID, Name, Specification, UsageName, HasProperties) { - super(expressID, Name, Specification); + IFC4X32.IfcWallStandardCase = IfcWallStandardCase; + class IfcWasteTerminal extends IfcFlowTerminal { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.Specification = Specification; - this.UsageName = UsageName; - this.HasProperties = HasProperties; - this.type = 2542286263; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 4237592921; } } - IFC4X32.IfcComplexProperty = IfcComplexProperty; - class IfcCompositeCurveSegment extends IfcSegment { - constructor(expressID, Transition, SameSense, ParentCurve) { - super(expressID, Transition); - this.Transition = Transition; - this.SameSense = SameSense; - this.ParentCurve = ParentCurve; - this.type = 2485617015; + IFC4X32.IfcWasteTerminal = IfcWasteTerminal; + class IfcWindow extends IfcBuiltElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, PartitioningType, UserDefinedPartitioningType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.OverallHeight = OverallHeight; + this.OverallWidth = OverallWidth; + this.PredefinedType = PredefinedType; + this.PartitioningType = PartitioningType; + this.UserDefinedPartitioningType = UserDefinedPartitioningType; + this.type = 3304561284; } } - IFC4X32.IfcCompositeCurveSegment = IfcCompositeCurveSegment; - class IfcConstructionResourceType extends IfcTypeResource { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType); + IFC4X32.IfcWindow = IfcWindow; + class IfcActuatorType extends IfcDistributionControlElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.ResourceType = ResourceType; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.type = 2574617495; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2874132201; } } - IFC4X32.IfcConstructionResourceType = IfcConstructionResourceType; - class IfcContext extends IfcObjectDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext) { - super(expressID, GlobalId, OwnerHistory, Name, Description); + IFC4X32.IfcActuatorType = IfcActuatorType; + class IfcAirTerminal extends IfcFlowTerminal { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; - this.LongName = LongName; - this.Phase = Phase; - this.RepresentationContexts = RepresentationContexts; - this.UnitsInContext = UnitsInContext; - this.type = 3419103109; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1634111441; } } - IFC4X32.IfcContext = IfcContext; - class IfcCrewResourceType extends IfcConstructionResourceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity); + IFC4X32.IfcAirTerminal = IfcAirTerminal; + class IfcAirTerminalBox extends IfcFlowController { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.ResourceType = ResourceType; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; this.PredefinedType = PredefinedType; - this.type = 1815067380; - } - } - IFC4X32.IfcCrewResourceType = IfcCrewResourceType; - class IfcCsgPrimitive3D extends IfcGeometricRepresentationItem { - constructor(expressID, Position) { - super(expressID); - this.Position = Position; - this.type = 2506170314; + this.type = 177149247; } } - IFC4X32.IfcCsgPrimitive3D = IfcCsgPrimitive3D; - class IfcCsgSolid extends IfcSolidModel { - constructor(expressID, TreeRootExpression) { - super(expressID); - this.TreeRootExpression = TreeRootExpression; - this.type = 2147822146; + IFC4X32.IfcAirTerminalBox = IfcAirTerminalBox; + class IfcAirToAirHeatRecovery extends IfcEnergyConversionDevice { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 2056796094; } } - IFC4X32.IfcCsgSolid = IfcCsgSolid; - class IfcCurve extends IfcGeometricRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 2601014836; + IFC4X32.IfcAirToAirHeatRecovery = IfcAirToAirHeatRecovery; + class IfcAlarmType extends IfcDistributionControlElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3001207471; } } - IFC4X32.IfcCurve = IfcCurve; - class IfcCurveBoundedPlane extends IfcBoundedSurface { - constructor(expressID, BasisSurface, OuterBoundary, InnerBoundaries) { - super(expressID); - this.BasisSurface = BasisSurface; - this.OuterBoundary = OuterBoundary; - this.InnerBoundaries = InnerBoundaries; - this.type = 2827736869; + IFC4X32.IfcAlarmType = IfcAlarmType; + class IfcAlignment extends IfcLinearPositioningElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.PredefinedType = PredefinedType; + this.type = 325726236; } } - IFC4X32.IfcCurveBoundedPlane = IfcCurveBoundedPlane; - class IfcCurveBoundedSurface extends IfcBoundedSurface { - constructor(expressID, BasisSurface, Boundaries, ImplicitOuter) { - super(expressID); - this.BasisSurface = BasisSurface; - this.Boundaries = Boundaries; - this.ImplicitOuter = ImplicitOuter; - this.type = 2629017746; + IFC4X32.IfcAlignment = IfcAlignment; + class IfcAudioVisualAppliance extends IfcFlowTerminal { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 277319702; } } - IFC4X32.IfcCurveBoundedSurface = IfcCurveBoundedSurface; - class IfcCurveSegment extends IfcSegment { - constructor(expressID, Transition, Placement, SegmentStart, SegmentLength, ParentCurve) { - super(expressID, Transition); - this.Transition = Transition; - this.Placement = Placement; - this.SegmentStart = SegmentStart; - this.SegmentLength = SegmentLength; - this.ParentCurve = ParentCurve; - this.type = 4212018352; + IFC4X32.IfcAudioVisualAppliance = IfcAudioVisualAppliance; + class IfcBeam extends IfcBuiltElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 753842376; } } - IFC4X32.IfcCurveSegment = IfcCurveSegment; - class IfcDirection extends IfcGeometricRepresentationItem { - constructor(expressID, DirectionRatios) { - super(expressID); - this.DirectionRatios = DirectionRatios; - this.type = 32440307; + IFC4X32.IfcBeam = IfcBeam; + class IfcBearing extends IfcBuiltElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 4196446775; } } - IFC4X32.IfcDirection = IfcDirection; - class IfcDirectrixCurveSweptAreaSolid extends IfcSweptAreaSolid { - constructor(expressID, SweptArea, Position, Directrix, StartParam, EndParam) { - super(expressID, SweptArea, Position); - this.SweptArea = SweptArea; - this.Position = Position; - this.Directrix = Directrix; - this.StartParam = StartParam; - this.EndParam = EndParam; - this.type = 593015953; + IFC4X32.IfcBearing = IfcBearing; + class IfcBoiler extends IfcEnergyConversionDevice { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 32344328; } } - IFC4X32.IfcDirectrixCurveSweptAreaSolid = IfcDirectrixCurveSweptAreaSolid; - class IfcEdgeLoop extends IfcLoop { - constructor(expressID, EdgeList) { - super(expressID); - this.EdgeList = EdgeList; - this.type = 1472233963; + IFC4X32.IfcBoiler = IfcBoiler; + class IfcBorehole extends IfcGeotechnicalAssembly { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 3314249567; } } - IFC4X32.IfcEdgeLoop = IfcEdgeLoop; - class IfcElementQuantity extends IfcQuantitySet { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, MethodOfMeasurement, Quantities) { - super(expressID, GlobalId, OwnerHistory, Name, Description); + IFC4X32.IfcBorehole = IfcBorehole; + class IfcBuildingElementProxy extends IfcBuiltElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.MethodOfMeasurement = MethodOfMeasurement; - this.Quantities = Quantities; - this.type = 1883228015; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1095909175; } } - IFC4X32.IfcElementQuantity = IfcElementQuantity; - class IfcElementType extends IfcTypeProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag); + IFC4X32.IfcBuildingElementProxy = IfcBuildingElementProxy; + class IfcBurner extends IfcEnergyConversionDevice { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; this.Tag = Tag; - this.ElementType = ElementType; - this.type = 339256511; + this.PredefinedType = PredefinedType; + this.type = 2938176219; } } - IFC4X32.IfcElementType = IfcElementType; - class IfcElementarySurface extends IfcSurface { - constructor(expressID, Position) { - super(expressID); - this.Position = Position; - this.type = 2777663545; + IFC4X32.IfcBurner = IfcBurner; + class IfcCableCarrierFitting extends IfcFlowFitting { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 635142910; } } - IFC4X32.IfcElementarySurface = IfcElementarySurface; - class IfcEllipseProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, SemiAxis1, SemiAxis2) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.SemiAxis1 = SemiAxis1; - this.SemiAxis2 = SemiAxis2; - this.type = 2835456948; + IFC4X32.IfcCableCarrierFitting = IfcCableCarrierFitting; + class IfcCableCarrierSegment extends IfcFlowSegment { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3758799889; } } - IFC4X32.IfcEllipseProfileDef = IfcEllipseProfileDef; - class IfcEventType extends IfcTypeProcess { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType, PredefinedType, EventTriggerType, UserDefinedEventTriggerType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType); + IFC4X32.IfcCableCarrierSegment = IfcCableCarrierSegment; + class IfcCableFitting extends IfcFlowFitting { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.ProcessType = ProcessType; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; this.PredefinedType = PredefinedType; - this.EventTriggerType = EventTriggerType; - this.UserDefinedEventTriggerType = UserDefinedEventTriggerType; - this.type = 4024345920; + this.type = 1051757585; } } - IFC4X32.IfcEventType = IfcEventType; - class IfcExtrudedAreaSolid extends IfcSweptAreaSolid { - constructor(expressID, SweptArea, Position, ExtrudedDirection, Depth) { - super(expressID, SweptArea, Position); - this.SweptArea = SweptArea; - this.Position = Position; - this.ExtrudedDirection = ExtrudedDirection; - this.Depth = Depth; - this.type = 477187591; + IFC4X32.IfcCableFitting = IfcCableFitting; + class IfcCableSegment extends IfcFlowSegment { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 4217484030; } } - IFC4X32.IfcExtrudedAreaSolid = IfcExtrudedAreaSolid; - class IfcExtrudedAreaSolidTapered extends IfcExtrudedAreaSolid { - constructor(expressID, SweptArea, Position, ExtrudedDirection, Depth, EndSweptArea) { - super(expressID, SweptArea, Position, ExtrudedDirection, Depth); - this.SweptArea = SweptArea; - this.Position = Position; - this.ExtrudedDirection = ExtrudedDirection; - this.Depth = Depth; - this.EndSweptArea = EndSweptArea; - this.type = 2804161546; + IFC4X32.IfcCableSegment = IfcCableSegment; + class IfcCaissonFoundation extends IfcDeepFoundation { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3999819293; } } - IFC4X32.IfcExtrudedAreaSolidTapered = IfcExtrudedAreaSolidTapered; - class IfcFaceBasedSurfaceModel extends IfcGeometricRepresentationItem { - constructor(expressID, FbsmFaces) { - super(expressID); - this.FbsmFaces = FbsmFaces; - this.type = 2047409740; + IFC4X32.IfcCaissonFoundation = IfcCaissonFoundation; + class IfcChiller extends IfcEnergyConversionDevice { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3902619387; } } - IFC4X32.IfcFaceBasedSurfaceModel = IfcFaceBasedSurfaceModel; - class IfcFillAreaStyleHatching extends IfcGeometricRepresentationItem { - constructor(expressID, HatchLineAppearance, StartOfNextHatchLine, PointOfReferenceHatchLine, PatternStart, HatchLineAngle) { - super(expressID); - this.HatchLineAppearance = HatchLineAppearance; - this.StartOfNextHatchLine = StartOfNextHatchLine; - this.PointOfReferenceHatchLine = PointOfReferenceHatchLine; - this.PatternStart = PatternStart; - this.HatchLineAngle = HatchLineAngle; - this.type = 374418227; + IFC4X32.IfcChiller = IfcChiller; + class IfcCoil extends IfcEnergyConversionDevice { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 639361253; } } - IFC4X32.IfcFillAreaStyleHatching = IfcFillAreaStyleHatching; - class IfcFillAreaStyleTiles extends IfcGeometricRepresentationItem { - constructor(expressID, TilingPattern, Tiles, TilingScale) { - super(expressID); - this.TilingPattern = TilingPattern; - this.Tiles = Tiles; - this.TilingScale = TilingScale; - this.type = 315944413; + IFC4X32.IfcCoil = IfcCoil; + class IfcCommunicationsAppliance extends IfcFlowTerminal { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3221913625; } } - IFC4X32.IfcFillAreaStyleTiles = IfcFillAreaStyleTiles; - class IfcFixedReferenceSweptAreaSolid extends IfcDirectrixCurveSweptAreaSolid { - constructor(expressID, SweptArea, Position, Directrix, StartParam, EndParam, FixedReference) { - super(expressID, SweptArea, Position, Directrix, StartParam, EndParam); - this.SweptArea = SweptArea; - this.Position = Position; - this.Directrix = Directrix; - this.StartParam = StartParam; - this.EndParam = EndParam; - this.FixedReference = FixedReference; - this.type = 2652556860; + IFC4X32.IfcCommunicationsAppliance = IfcCommunicationsAppliance; + class IfcCompressor extends IfcFlowMovingDevice { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3571504051; } } - IFC4X32.IfcFixedReferenceSweptAreaSolid = IfcFixedReferenceSweptAreaSolid; - class IfcFurnishingElementType extends IfcElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + IFC4X32.IfcCompressor = IfcCompressor; + class IfcCondenser extends IfcEnergyConversionDevice { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; this.Tag = Tag; - this.ElementType = ElementType; - this.type = 4238390223; + this.PredefinedType = PredefinedType; + this.type = 2272882330; } } - IFC4X32.IfcFurnishingElementType = IfcFurnishingElementType; - class IfcFurnitureType extends IfcFurnishingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, AssemblyPlace, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + IFC4X32.IfcCondenser = IfcCondenser; + class IfcControllerType extends IfcDistributionControlElementType { + constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; @@ -50306,284 +93086,171 @@ var IFC4X3; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; - this.AssemblyPlace = AssemblyPlace; this.PredefinedType = PredefinedType; - this.type = 1268542332; + this.type = 578613899; } } - IFC4X32.IfcFurnitureType = IfcFurnitureType; - class IfcGeographicElementType extends IfcElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + IFC4X32.IfcControllerType = IfcControllerType; + class IfcConveyorSegment extends IfcFlowSegment { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; this.Tag = Tag; - this.ElementType = ElementType; this.PredefinedType = PredefinedType; - this.type = 4095422895; - } - } - IFC4X32.IfcGeographicElementType = IfcGeographicElementType; - class IfcGeometricCurveSet extends IfcGeometricSet { - constructor(expressID, Elements) { - super(expressID, Elements); - this.Elements = Elements; - this.type = 987898635; - } - } - IFC4X32.IfcGeometricCurveSet = IfcGeometricCurveSet; - class IfcIShapeProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, OverallWidth, OverallDepth, WebThickness, FlangeThickness, FilletRadius, FlangeEdgeRadius, FlangeSlope) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.OverallWidth = OverallWidth; - this.OverallDepth = OverallDepth; - this.WebThickness = WebThickness; - this.FlangeThickness = FlangeThickness; - this.FilletRadius = FilletRadius; - this.FlangeEdgeRadius = FlangeEdgeRadius; - this.FlangeSlope = FlangeSlope; - this.type = 1484403080; - } - } - IFC4X32.IfcIShapeProfileDef = IfcIShapeProfileDef; - class IfcIndexedPolygonalFace extends IfcTessellatedItem { - constructor(expressID, CoordIndex) { - super(expressID); - this.CoordIndex = CoordIndex; - this.type = 178912537; - } - } - IFC4X32.IfcIndexedPolygonalFace = IfcIndexedPolygonalFace; - class IfcIndexedPolygonalFaceWithVoids extends IfcIndexedPolygonalFace { - constructor(expressID, CoordIndex, InnerCoordIndices) { - super(expressID, CoordIndex); - this.CoordIndex = CoordIndex; - this.InnerCoordIndices = InnerCoordIndices; - this.type = 2294589976; - } - } - IFC4X32.IfcIndexedPolygonalFaceWithVoids = IfcIndexedPolygonalFaceWithVoids; - class IfcIndexedPolygonalTextureMap extends IfcIndexedTextureMap { - constructor(expressID, Maps, MappedTo, TexCoords, TexCoordIndices) { - super(expressID, Maps, MappedTo, TexCoords); - this.Maps = Maps; - this.MappedTo = MappedTo; - this.TexCoords = TexCoords; - this.TexCoordIndices = TexCoordIndices; - this.type = 3465909080; - } - } - IFC4X32.IfcIndexedPolygonalTextureMap = IfcIndexedPolygonalTextureMap; - class IfcLShapeProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, Depth, Width, Thickness, FilletRadius, EdgeRadius, LegSlope) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.Depth = Depth; - this.Width = Width; - this.Thickness = Thickness; - this.FilletRadius = FilletRadius; - this.EdgeRadius = EdgeRadius; - this.LegSlope = LegSlope; - this.type = 572779678; + this.type = 3460952963; } } - IFC4X32.IfcLShapeProfileDef = IfcLShapeProfileDef; - class IfcLaborResourceType extends IfcConstructionResourceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity); + IFC4X32.IfcConveyorSegment = IfcConveyorSegment; + class IfcCooledBeam extends IfcEnergyConversionDevice { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.ResourceType = ResourceType; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; this.PredefinedType = PredefinedType; - this.type = 428585644; - } - } - IFC4X32.IfcLaborResourceType = IfcLaborResourceType; - class IfcLine extends IfcCurve { - constructor(expressID, Pnt, Dir) { - super(expressID); - this.Pnt = Pnt; - this.Dir = Dir; - this.type = 1281925730; - } - } - IFC4X32.IfcLine = IfcLine; - class IfcManifoldSolidBrep extends IfcSolidModel { - constructor(expressID, Outer) { - super(expressID); - this.Outer = Outer; - this.type = 1425443689; + this.type = 4136498852; } } - IFC4X32.IfcManifoldSolidBrep = IfcManifoldSolidBrep; - class IfcObject extends IfcObjectDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { - super(expressID, GlobalId, OwnerHistory, Name, Description); + IFC4X32.IfcCooledBeam = IfcCooledBeam; + class IfcCoolingTower extends IfcEnergyConversionDevice { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; - this.type = 3888040117; - } - } - IFC4X32.IfcObject = IfcObject; - class IfcOffsetCurve extends IfcCurve { - constructor(expressID, BasisCurve) { - super(expressID); - this.BasisCurve = BasisCurve; - this.type = 590820931; - } - } - IFC4X32.IfcOffsetCurve = IfcOffsetCurve; - class IfcOffsetCurve2D extends IfcOffsetCurve { - constructor(expressID, BasisCurve, Distance, SelfIntersect) { - super(expressID, BasisCurve); - this.BasisCurve = BasisCurve; - this.Distance = Distance; - this.SelfIntersect = SelfIntersect; - this.type = 3388369263; - } - } - IFC4X32.IfcOffsetCurve2D = IfcOffsetCurve2D; - class IfcOffsetCurve3D extends IfcOffsetCurve { - constructor(expressID, BasisCurve, Distance, SelfIntersect, RefDirection) { - super(expressID, BasisCurve); - this.BasisCurve = BasisCurve; - this.Distance = Distance; - this.SelfIntersect = SelfIntersect; - this.RefDirection = RefDirection; - this.type = 3505215534; - } - } - IFC4X32.IfcOffsetCurve3D = IfcOffsetCurve3D; - class IfcOffsetCurveByDistances extends IfcOffsetCurve { - constructor(expressID, BasisCurve, OffsetValues, Tag) { - super(expressID, BasisCurve); - this.BasisCurve = BasisCurve; - this.OffsetValues = OffsetValues; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; this.Tag = Tag; - this.type = 2485787929; - } - } - IFC4X32.IfcOffsetCurveByDistances = IfcOffsetCurveByDistances; - class IfcPcurve extends IfcCurve { - constructor(expressID, BasisSurface, ReferenceCurve) { - super(expressID); - this.BasisSurface = BasisSurface; - this.ReferenceCurve = ReferenceCurve; - this.type = 1682466193; - } - } - IFC4X32.IfcPcurve = IfcPcurve; - class IfcPlanarBox extends IfcPlanarExtent { - constructor(expressID, SizeInX, SizeInY, Placement) { - super(expressID, SizeInX, SizeInY); - this.SizeInX = SizeInX; - this.SizeInY = SizeInY; - this.Placement = Placement; - this.type = 603570806; + this.PredefinedType = PredefinedType; + this.type = 3640358203; } } - IFC4X32.IfcPlanarBox = IfcPlanarBox; - class IfcPlane extends IfcElementarySurface { - constructor(expressID, Position) { - super(expressID, Position); - this.Position = Position; - this.type = 220341763; + IFC4X32.IfcCoolingTower = IfcCoolingTower; + class IfcDamper extends IfcFlowController { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 4074379575; } } - IFC4X32.IfcPlane = IfcPlane; - class IfcPolynomialCurve extends IfcCurve { - constructor(expressID, Position, CoefficientsX, CoefficientsY, CoefficientsZ) { - super(expressID); - this.Position = Position; - this.CoefficientsX = CoefficientsX; - this.CoefficientsY = CoefficientsY; - this.CoefficientsZ = CoefficientsZ; - this.type = 3381221214; + IFC4X32.IfcDamper = IfcDamper; + class IfcDistributionBoard extends IfcFlowController { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3693000487; } } - IFC4X32.IfcPolynomialCurve = IfcPolynomialCurve; - class IfcPreDefinedColour extends IfcPreDefinedItem { - constructor(expressID, Name) { - super(expressID, Name); + IFC4X32.IfcDistributionBoard = IfcDistributionBoard; + class IfcDistributionChamberElement extends IfcDistributionFlowElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.type = 759155922; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1052013943; } } - IFC4X32.IfcPreDefinedColour = IfcPreDefinedColour; - class IfcPreDefinedCurveFont extends IfcPreDefinedItem { - constructor(expressID, Name) { - super(expressID, Name); + IFC4X32.IfcDistributionChamberElement = IfcDistributionChamberElement; + class IfcDistributionCircuit extends IfcDistributionSystem { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, PredefinedType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.type = 2559016684; + this.Description = Description; + this.ObjectType = ObjectType; + this.LongName = LongName; + this.PredefinedType = PredefinedType; + this.type = 562808652; } } - IFC4X32.IfcPreDefinedCurveFont = IfcPreDefinedCurveFont; - class IfcPreDefinedPropertySet extends IfcPropertySetDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); + IFC4X32.IfcDistributionCircuit = IfcDistributionCircuit; + class IfcDistributionControlElement extends IfcDistributionElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.type = 3967405729; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 1062813311; } } - IFC4X32.IfcPreDefinedPropertySet = IfcPreDefinedPropertySet; - class IfcProcedureType extends IfcTypeProcess { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType); + IFC4X32.IfcDistributionControlElement = IfcDistributionControlElement; + class IfcDuctFitting extends IfcFlowFitting { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.ProcessType = ProcessType; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; this.PredefinedType = PredefinedType; - this.type = 569719735; + this.type = 342316401; } } - IFC4X32.IfcProcedureType = IfcProcedureType; - class IfcProcess extends IfcObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); + IFC4X32.IfcDuctFitting = IfcDuctFitting; + class IfcDuctSegment extends IfcFlowSegment { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.type = 2945172077; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3518393246; } } - IFC4X32.IfcProcess = IfcProcess; - class IfcProduct extends IfcObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); + IFC4X32.IfcDuctSegment = IfcDuctSegment; + class IfcDuctSilencer extends IfcFlowTreatmentDevice { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; @@ -50591,11946 +93258,70232 @@ var IFC4X3; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; - this.type = 4208778838; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1360408905; } } - IFC4X32.IfcProduct = IfcProduct; - class IfcProject extends IfcContext { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext); + IFC4X32.IfcDuctSilencer = IfcDuctSilencer; + class IfcElectricAppliance extends IfcFlowTerminal { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; - this.LongName = LongName; - this.Phase = Phase; - this.RepresentationContexts = RepresentationContexts; - this.UnitsInContext = UnitsInContext; - this.type = 103090709; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1904799276; } } - IFC4X32.IfcProject = IfcProject; - class IfcProjectLibrary extends IfcContext { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext); + IFC4X32.IfcElectricAppliance = IfcElectricAppliance; + class IfcElectricDistributionBoard extends IfcFlowController { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; - this.LongName = LongName; - this.Phase = Phase; - this.RepresentationContexts = RepresentationContexts; - this.UnitsInContext = UnitsInContext; - this.type = 653396225; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 862014818; } } - IFC4X32.IfcProjectLibrary = IfcProjectLibrary; - class IfcPropertyBoundedValue extends IfcSimpleProperty { - constructor(expressID, Name, Specification, UpperBoundValue, LowerBoundValue, Unit, SetPointValue) { - super(expressID, Name, Specification); + IFC4X32.IfcElectricDistributionBoard = IfcElectricDistributionBoard; + class IfcElectricFlowStorageDevice extends IfcFlowStorageDevice { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.Specification = Specification; - this.UpperBoundValue = UpperBoundValue; - this.LowerBoundValue = LowerBoundValue; - this.Unit = Unit; - this.SetPointValue = SetPointValue; - this.type = 871118103; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3310460725; } } - IFC4X32.IfcPropertyBoundedValue = IfcPropertyBoundedValue; - class IfcPropertyEnumeratedValue extends IfcSimpleProperty { - constructor(expressID, Name, Specification, EnumerationValues, EnumerationReference) { - super(expressID, Name, Specification); + IFC4X32.IfcElectricFlowStorageDevice = IfcElectricFlowStorageDevice; + class IfcElectricFlowTreatmentDevice extends IfcFlowTreatmentDevice { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.Specification = Specification; - this.EnumerationValues = EnumerationValues; - this.EnumerationReference = EnumerationReference; - this.type = 4166981789; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 24726584; } } - IFC4X32.IfcPropertyEnumeratedValue = IfcPropertyEnumeratedValue; - class IfcPropertyListValue extends IfcSimpleProperty { - constructor(expressID, Name, Specification, ListValues, Unit) { - super(expressID, Name, Specification); + IFC4X32.IfcElectricFlowTreatmentDevice = IfcElectricFlowTreatmentDevice; + class IfcElectricGenerator extends IfcEnergyConversionDevice { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.Specification = Specification; - this.ListValues = ListValues; - this.Unit = Unit; - this.type = 2752243245; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 264262732; } } - IFC4X32.IfcPropertyListValue = IfcPropertyListValue; - class IfcPropertyReferenceValue extends IfcSimpleProperty { - constructor(expressID, Name, Specification, UsageName, PropertyReference) { - super(expressID, Name, Specification); + IFC4X32.IfcElectricGenerator = IfcElectricGenerator; + class IfcElectricMotor extends IfcEnergyConversionDevice { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.Specification = Specification; - this.UsageName = UsageName; - this.PropertyReference = PropertyReference; - this.type = 941946838; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 402227799; } } - IFC4X32.IfcPropertyReferenceValue = IfcPropertyReferenceValue; - class IfcPropertySet extends IfcPropertySetDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, HasProperties) { - super(expressID, GlobalId, OwnerHistory, Name, Description); + IFC4X32.IfcElectricMotor = IfcElectricMotor; + class IfcElectricTimeControl extends IfcFlowController { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.HasProperties = HasProperties; - this.type = 1451395588; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1003880860; } } - IFC4X32.IfcPropertySet = IfcPropertySet; - class IfcPropertySetTemplate extends IfcPropertyTemplateDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, TemplateType, ApplicableEntity, HasPropertyTemplates) { - super(expressID, GlobalId, OwnerHistory, Name, Description); + IFC4X32.IfcElectricTimeControl = IfcElectricTimeControl; + class IfcFan extends IfcFlowMovingDevice { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.TemplateType = TemplateType; - this.ApplicableEntity = ApplicableEntity; - this.HasPropertyTemplates = HasPropertyTemplates; - this.type = 492091185; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3415622556; } } - IFC4X32.IfcPropertySetTemplate = IfcPropertySetTemplate; - class IfcPropertySingleValue extends IfcSimpleProperty { - constructor(expressID, Name, Specification, NominalValue, Unit) { - super(expressID, Name, Specification); + IFC4X32.IfcFan = IfcFan; + class IfcFilter extends IfcFlowTreatmentDevice { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.Specification = Specification; - this.NominalValue = NominalValue; - this.Unit = Unit; - this.type = 3650150729; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 819412036; } } - IFC4X32.IfcPropertySingleValue = IfcPropertySingleValue; - class IfcPropertyTableValue extends IfcSimpleProperty { - constructor(expressID, Name, Specification, DefiningValues, DefinedValues, Expression, DefiningUnit, DefinedUnit, CurveInterpolation) { - super(expressID, Name, Specification); + IFC4X32.IfcFilter = IfcFilter; + class IfcFireSuppressionTerminal extends IfcFlowTerminal { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; this.Name = Name; - this.Specification = Specification; - this.DefiningValues = DefiningValues; - this.DefinedValues = DefinedValues; - this.Expression = Expression; - this.DefiningUnit = DefiningUnit; - this.DefinedUnit = DefinedUnit; - this.CurveInterpolation = CurveInterpolation; - this.type = 110355661; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1426591983; } } - IFC4X32.IfcPropertyTableValue = IfcPropertyTableValue; - class IfcPropertyTemplate extends IfcPropertyTemplateDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); + IFC4X32.IfcFireSuppressionTerminal = IfcFireSuppressionTerminal; + class IfcFlowInstrument extends IfcDistributionControlElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 182646315; + } + } + IFC4X32.IfcFlowInstrument = IfcFlowInstrument; + class IfcGeomodel extends IfcGeotechnicalAssembly { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.type = 3521284610; - } - } - IFC4X32.IfcPropertyTemplate = IfcPropertyTemplate; - class IfcRectangleHollowProfileDef extends IfcRectangleProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, XDim, YDim, WallThickness, InnerFilletRadius, OuterFilletRadius) { - super(expressID, ProfileType, ProfileName, Position, XDim, YDim); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.XDim = XDim; - this.YDim = YDim; - this.WallThickness = WallThickness; - this.InnerFilletRadius = InnerFilletRadius; - this.OuterFilletRadius = OuterFilletRadius; - this.type = 2770003689; - } - } - IFC4X32.IfcRectangleHollowProfileDef = IfcRectangleHollowProfileDef; - class IfcRectangularPyramid extends IfcCsgPrimitive3D { - constructor(expressID, Position, XLength, YLength, Height) { - super(expressID, Position); - this.Position = Position; - this.XLength = XLength; - this.YLength = YLength; - this.Height = Height; - this.type = 2798486643; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 2680139844; } } - IFC4X32.IfcRectangularPyramid = IfcRectangularPyramid; - class IfcRectangularTrimmedSurface extends IfcBoundedSurface { - constructor(expressID, BasisSurface, U1, V1, U2, V2, Usense, Vsense) { - super(expressID); - this.BasisSurface = BasisSurface; - this.U1 = U1; - this.V1 = V1; - this.U2 = U2; - this.V2 = V2; - this.Usense = Usense; - this.Vsense = Vsense; - this.type = 3454111270; + IFC4X32.IfcGeomodel = IfcGeomodel; + class IfcGeoslice extends IfcGeotechnicalAssembly { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 1971632696; } } - IFC4X32.IfcRectangularTrimmedSurface = IfcRectangularTrimmedSurface; - class IfcReinforcementDefinitionProperties extends IfcPreDefinedPropertySet { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, DefinitionType, ReinforcementSectionDefinitions) { - super(expressID, GlobalId, OwnerHistory, Name, Description); + IFC4X32.IfcGeoslice = IfcGeoslice; + class IfcProtectiveDeviceTrippingUnit extends IfcDistributionControlElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.DefinitionType = DefinitionType; - this.ReinforcementSectionDefinitions = ReinforcementSectionDefinitions; - this.type = 3765753017; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 2295281155; } } - IFC4X32.IfcReinforcementDefinitionProperties = IfcReinforcementDefinitionProperties; - class IfcRelAssigns extends IfcRelationship { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType) { - super(expressID, GlobalId, OwnerHistory, Name, Description); + IFC4X32.IfcProtectiveDeviceTrippingUnit = IfcProtectiveDeviceTrippingUnit; + class IfcSensor extends IfcDistributionControlElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.type = 3939117080; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 4086658281; } } - IFC4X32.IfcRelAssigns = IfcRelAssigns; - class IfcRelAssignsToActor extends IfcRelAssigns { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingActor, ActingRole) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); + IFC4X32.IfcSensor = IfcSensor; + class IfcUnitaryControlElement extends IfcDistributionControlElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.RelatingActor = RelatingActor; - this.ActingRole = ActingRole; - this.type = 1683148259; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 630975310; } } - IFC4X32.IfcRelAssignsToActor = IfcRelAssignsToActor; - class IfcRelAssignsToControl extends IfcRelAssigns { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); + IFC4X32.IfcUnitaryControlElement = IfcUnitaryControlElement; + class IfcActuator extends IfcDistributionControlElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.RelatingControl = RelatingControl; - this.type = 2495723537; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 4288193352; } } - IFC4X32.IfcRelAssignsToControl = IfcRelAssignsToControl; - class IfcRelAssignsToGroup extends IfcRelAssigns { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingGroup) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); + IFC4X32.IfcActuator = IfcActuator; + class IfcAlarm extends IfcDistributionControlElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.RelatingGroup = RelatingGroup; - this.type = 1307041759; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3087945054; } } - IFC4X32.IfcRelAssignsToGroup = IfcRelAssignsToGroup; - class IfcRelAssignsToGroupByFactor extends IfcRelAssignsToGroup { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingGroup, Factor) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingGroup); + IFC4X32.IfcAlarm = IfcAlarm; + class IfcController extends IfcDistributionControlElement { + constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.RelatingGroup = RelatingGroup; - this.Factor = Factor; - this.type = 1027710054; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 25142252; + } + } + IFC4X32.IfcController = IfcController; +})(IFC4X3$1 || (IFC4X3$1 = {})); + +// dist/helpers/properties.ts +var PropsNames = { + aggregates: { + name: IFCRELAGGREGATES, + relating: "RelatingObject", + related: "RelatedObjects", + key: "children" + }, + spatial: { + name: IFCRELCONTAINEDINSPATIALSTRUCTURE, + relating: "RelatingStructure", + related: "RelatedElements", + key: "children" + }, + psets: { + name: IFCRELDEFINESBYPROPERTIES, + relating: "RelatingPropertyDefinition", + related: "RelatedObjects", + key: "IsDefinedBy" + }, + materials: { + name: IFCRELASSOCIATESMATERIAL, + relating: "RelatingMaterial", + related: "RelatedObjects", + key: "HasAssociations" + }, + type: { + name: IFCRELDEFINESBYTYPE, + relating: "RelatingType", + related: "RelatedObjects", + key: "IsDefinedBy" + } +}; +var Properties = class { + constructor(api) { + this.api = api; + } + getItemProperties(modelID, id, recursive = false, inverse = false) { + return __async(this, null, function* () { + return this.api.GetLine(modelID, id, recursive, inverse); + }); + } + getPropertySets(modelID, elementID = 0, recursive = false, includeTypeProperties = false) { + return __async(this, null, function* () { + if (includeTypeProperties) { + let types = yield this.getTypeProperties(modelID, elementID, false); + let results = []; + for (let t of types) + results.push(...yield this.getPropertySets(modelID, t.expressID, recursive)); + return results; + } else + return yield this.getRelatedProperties(modelID, elementID, PropsNames.psets, recursive); + }); + } + setPropertySets(modelID, elementID, psetID) { + return __async(this, null, function* () { + return this.setItemProperties(modelID, elementID, psetID, PropsNames.psets); + }); + } + getTypeProperties(modelID, elementID = 0, recursive = false) { + return __async(this, null, function* () { + if (this.api.GetModelSchema(modelID) == "IFC2X3") { + return yield this.getRelatedProperties(modelID, elementID, PropsNames.type, recursive); + } else { + return yield this.getRelatedProperties(modelID, elementID, __spreadProps(__spreadValues({}, PropsNames.type), { key: "IsTypedBy" }), recursive); + } + }); + } + getMaterialsProperties(modelID, elementID = 0, recursive = false, includeTypeMaterials = false) { + return __async(this, null, function* () { + if (includeTypeMaterials) { + let types = yield this.getTypeProperties(modelID, elementID, false); + let results = []; + for (let t of types) + results.push(...yield this.getMaterialsProperties(modelID, t.expressID, recursive)); + return results; + } else + return yield this.getRelatedProperties(modelID, elementID, PropsNames.materials, recursive); + }); + } + setMaterialsProperties(modelID, elementID, materialID) { + return __async(this, null, function* () { + return this.setItemProperties(modelID, elementID, materialID, PropsNames.materials); + }); + } + getSpatialStructure(modelID, includeProperties = false) { + return __async(this, null, function* () { + const chunks = yield this.getSpatialTreeChunks(modelID); + const allLines = yield this.api.GetLineIDsWithType(modelID, IFCPROJECT); + const projectID = allLines.get(0); + const project = Properties.newIfcProject(projectID); + yield this.getSpatialNode(modelID, project, chunks, includeProperties); + return project; + }); + } + getRelatedProperties(modelID, elementID, propsName, recursive = false) { + return __async(this, null, function* () { + const result = []; + let rels = null; + if (elementID !== 0) + rels = yield this.api.GetLine(modelID, elementID, false, true, propsName.key)[propsName.key]; + else { + let vec = this.api.GetLineIDsWithType(modelID, propsName.name); + rels = []; + for (let i = 0; i < vec.size(); ++i) + rels.push({ value: vec.get(i) }); + } + if (rels == null) + return result; + if (!Array.isArray(rels)) + rels = [rels]; + for (let i = 0; i < rels.length; i++) { + let propSetIds = yield this.api.GetLine(modelID, rels[i].value, false, false)[propsName.relating]; + if (propSetIds == null) + continue; + if (!Array.isArray(propSetIds)) + propSetIds = [propSetIds]; + for (let x = 0; x < propSetIds.length; x++) { + result.push(yield this.api.GetLine(modelID, propSetIds[x].value, recursive)); + } + } + return result; + }); + } + getChunks(modelID, chunks, propNames) { + return __async(this, null, function* () { + const relation = yield this.api.GetLineIDsWithType(modelID, propNames.name, true); + for (let i = 0; i < relation.size(); i++) { + const rel = yield this.api.GetLine(modelID, relation.get(i), false); + this.saveChunk(chunks, propNames, rel); + } + }); + } + static newIfcProject(id) { + return { + expressID: id, + type: "IFCPROJECT", + children: [] + }; + } + getSpatialNode(modelID, node, treeChunks, includeProperties) { + return __async(this, null, function* () { + yield this.getChildren(modelID, node, treeChunks, PropsNames.aggregates, includeProperties); + yield this.getChildren(modelID, node, treeChunks, PropsNames.spatial, includeProperties); + }); + } + getChildren(modelID, node, treeChunks, propNames, includeProperties) { + return __async(this, null, function* () { + const children = treeChunks[node.expressID]; + if (children == void 0) + return; + const prop = propNames.key; + const nodes = []; + for (let i = 0; i < children.length; i++) { + const child = children[i]; + let node2 = this.newNode(child, this.api.GetLineType(modelID, child)); + if (includeProperties) { + const properties = yield this.getItemProperties(modelID, node2.expressID); + node2 = __spreadValues(__spreadValues({}, properties), node2); + } + yield this.getSpatialNode(modelID, node2, treeChunks, includeProperties); + nodes.push(node2); + } + node[prop] = nodes; + }); + } + newNode(id, type) { + return { + expressID: id, + type: this.api.GetNameFromTypeCode(type), + children: [] + }; + } + getSpatialTreeChunks(modelID) { + return __async(this, null, function* () { + const treeChunks = {}; + yield this.getChunks(modelID, treeChunks, PropsNames.aggregates); + yield this.getChunks(modelID, treeChunks, PropsNames.spatial); + return treeChunks; + }); + } + saveChunk(chunks, propNames, rel) { + const relating = rel[propNames.relating].value; + const related = rel[propNames.related].map((r) => r.value); + if (chunks[relating] == void 0) { + chunks[relating] = related; + } else { + chunks[relating] = chunks[relating].concat(related); + } + } + setItemProperties(modelID, elementID, propID, propsName) { + return __async(this, null, function* () { + if (!Array.isArray(elementID)) + elementID = [elementID]; + if (!Array.isArray(propID)) + propID = [propID]; + let foundRel = 0; + const rels = []; + const elements = []; + for (const elID of elementID) { + const element = yield this.api.GetLine(modelID, elID, false, true); + if (!element[propsName.key]) + continue; + elements.push(element); + } + if (elements.length < 1) + return false; + const relations = this.api.GetLineIDsWithType(modelID, propsName.name); + for (let i = 0; i < relations.size(); ++i) { + const rel = yield this.api.GetLine(modelID, relations.get(i)); + if (propID.includes(Number(rel[propsName.relating].value))) { + rels.push(rel); + foundRel++; + } + if (foundRel == propID.length) + break; + } + for (const element of elements) { + for (const rel of rels) { + if (!element[propsName.key].some((e) => e.value === rel.expressID)) + element[propsName.key].push({ type: 5, value: rel.expressID }); + if (!rel[propsName.related].some((e) => e.value === element.expressID)) { + rel[propsName.related].push({ type: 5, value: element.expressID }); + this.api.WriteLine(modelID, rel); + } + } + this.api.WriteLine(modelID, element); + } + return true; + }); + } +}; + +// dist/helpers/log.ts +var LogLevel$1; +(function(LogLevel2) { + LogLevel2[LogLevel2["LOG_LEVEL_DEBUG"] = 0] = "LOG_LEVEL_DEBUG"; + LogLevel2[LogLevel2["LOG_LEVEL_INFO"] = 1] = "LOG_LEVEL_INFO"; + LogLevel2[LogLevel2["LOG_LEVEL_WARN"] = 2] = "LOG_LEVEL_WARN"; + LogLevel2[LogLevel2["LOG_LEVEL_ERROR"] = 3] = "LOG_LEVEL_ERROR"; + LogLevel2[LogLevel2["LOG_LEVEL_OFF"] = 4] = "LOG_LEVEL_OFF"; +})(LogLevel$1 || (LogLevel$1 = {})); +var Log = class { + static setLogLevel(level) { + this.logLevel = level; + } + static log(msg, ...args) { + if (this.logLevel <= 3) { + console.log(msg, ...args); + } + } + static debug(msg, ...args) { + if (this.logLevel <= 0) { + console.trace("DEBUG: ", msg, ...args); + } + } + static info(msg, ...args) { + if (this.logLevel <= 1) { + console.info("INFO: ", msg, ...args); + } + } + static warn(msg, ...args) { + if (this.logLevel <= 2) { + console.warn("WARN: ", msg, ...args); + } + } + static error(msg, ...args) { + if (this.logLevel <= 3) { + console.error("ERROR: ", msg, ...args); + } + } +}; +Log.logLevel = 1; +var WebIFCWasm$1; +if (typeof self !== "undefined" && self.crossOriginIsolated) { + try { + WebIFCWasm$1 = require_web_ifc_mt$1(); + } catch (ex) { + WebIFCWasm$1 = require_web_ifc$1(); + } +} else + WebIFCWasm$1 = require_web_ifc$1(); +var UNKNOWN = 0; +var STRING = 1; +var LABEL = 2; +var ENUM = 3; +var REAL = 4; +var REF = 5; +var EMPTY = 6; +var SET_BEGIN = 7; +var SET_END = 8; +var LINE_END = 9; +var INTEGER = 10; +function ms() { + return new Date().getTime(); +} +var IfcAPI2 = class { + constructor() { + this.wasmModule = void 0; + this.wasmPath = ""; + this.isWasmPathAbsolute = false; + this.modelSchemaList = []; + this.modelSchemaNameList = []; + this.ifcGuidMap = new Map(); + this.deletedLines = new Map(); + this.properties = new Properties(this); + } + Init(customLocateFileHandler) { + return __async(this, null, function* () { + if (WebIFCWasm$1) { + let locateFileHandler = (path, prefix) => { + if (path.endsWith(".wasm")) { + if (this.isWasmPathAbsolute) { + return this.wasmPath + path; + } + return prefix + this.wasmPath + path; + } + return prefix + path; + }; + this.wasmModule = yield WebIFCWasm$1({ noInitialRun: true, locateFile: customLocateFileHandler || locateFileHandler }); + } else { + Log.error(`Could not find wasm module at './web-ifc' from web-ifc-api.ts`); + } + }); + } + OpenModels(dataSets, settings) { + let s = __spreadValues({ + MEMORY_LIMIT: 2147483648 + }, settings); + s.MEMORY_LIMIT = s.MEMORY_LIMIT / dataSets.length; + let modelIDs = []; + for (let dataSet of dataSets) + modelIDs.push(this.OpenModel(dataSet, s)); + return modelIDs; + } + CreateSettings(settings) { + let s = __spreadValues({ + OPTIMIZE_PROFILES: false, + COORDINATE_TO_ORIGIN: false, + CIRCLE_SEGMENTS: 12, + TAPE_SIZE: 67108864, + MEMORY_LIMIT: 2147483648 + }, settings); + let deprecated = ["USE_FAST_BOOLS", "CIRCLE_SEGMENTS_LOW", "CIRCLE_SEGMENTS_MEDIUM", "CIRCLE_SEGMENTS_HIGH"]; + for (let d in deprecated) { + if (d in s) { + Log.info("Use of deprecated settings " + d + " detected"); + } + } + return s; + } + LookupSchemaId(schemaName) { + for (var i = 0; i < SchemaNames.length; i++) { + if (typeof SchemaNames[i] !== "undefined") { + for (var j = 0; j < SchemaNames[i].length; j++) { + if (SchemaNames[i][j] == schemaName) + return i; + } + } + } + return -1; + } + OpenModel(data, settings) { + let s = this.CreateSettings(settings); + let result = this.wasmModule.OpenModel(s, (destPtr, offsetInSrc, destSize) => { + let srcSize = Math.min(data.byteLength - offsetInSrc, destSize); + let dest = this.wasmModule.HEAPU8.subarray(destPtr, destPtr + srcSize); + let src = data.subarray(offsetInSrc, offsetInSrc + srcSize); + dest.set(src); + return srcSize; + }); + this.deletedLines.set(result, new Set()); + var schemaName = this.GetHeaderLine(result, FILE_SCHEMA).arguments[0][0].value; + this.modelSchemaList[result] = this.LookupSchemaId(schemaName); + this.modelSchemaNameList[result] = schemaName; + if (this.modelSchemaList[result] == -1) { + Log.error("Unsupported Schema:" + schemaName); + this.CloseModel(result); + return -1; + } + Log.info("Parsing Model using " + schemaName + " Schema"); + return result; + } + OpenModelFromCallback(callback, settings) { + let s = this.CreateSettings(settings); + let result = this.wasmModule.OpenModel(s, (destPtr, offsetInSrc, destSize) => { + let data = callback(offsetInSrc, destSize); + let srcSize = Math.min(data.byteLength, destSize); + let dest = this.wasmModule.HEAPU8.subarray(destPtr, destPtr + srcSize); + dest.set(data); + return srcSize; + }); + this.deletedLines.set(result, new Set()); + var schemaName = this.GetHeaderLine(result, FILE_SCHEMA).arguments[0][0].value; + this.modelSchemaList[result] = this.LookupSchemaId(schemaName); + this.modelSchemaNameList[result] = schemaName; + if (this.modelSchemaList[result] == -1) { + Log.error("Unsupported Schema:" + schemaName); + this.CloseModel(result); + return -1; + } + Log.info("Parsing Model using " + schemaName + " Schema"); + return result; + } + GetModelSchema(modelID) { + return this.modelSchemaNameList[modelID]; + } + CreateModel(model, settings) { + var _a, _b, _c; + let s = this.CreateSettings(settings); + let result = this.wasmModule.CreateModel(s); + this.modelSchemaList[result] = this.LookupSchemaId(model.schema); + this.modelSchemaNameList[result] = model.schema; + if (this.modelSchemaList[result] == -1) { + Log.error("Unsupported Schema:" + model.schema); + this.CloseModel(result); + return -1; + } + this.deletedLines.set(result, new Set()); + const modelName = model.name || "web-ifc-model-" + result + ".ifc"; + const timestamp = new Date().toISOString().slice(0, 19); + const description = ((_a = model.description) == null ? void 0 : _a.map((d) => ({ type: STRING, value: d }))) || [{ type: STRING, value: "ViewDefinition [CoordinationView]" }]; + const authors = ((_b = model.authors) == null ? void 0 : _b.map((a) => ({ type: STRING, value: a }))) || [null]; + const orgs = ((_c = model.organizations) == null ? void 0 : _c.map((o) => ({ type: STRING, value: o }))) || [null]; + const auth = model.authorization ? { type: STRING, value: model.authorization } : null; + this.wasmModule.WriteHeaderLine(result, FILE_DESCRIPTION, [ + description, + { type: STRING, value: "2;1" } + ]); + this.wasmModule.WriteHeaderLine(result, FILE_NAME, [ + { type: STRING, value: modelName }, + { type: STRING, value: timestamp }, + authors, + orgs, + { type: STRING, value: "ifcjs/web-ifc-api" }, + { type: STRING, value: "ifcjs/web-ifc-api" }, + auth + ]); + this.wasmModule.WriteHeaderLine(result, FILE_SCHEMA, [[{ type: STRING, value: model.schema }]]); + return result; + } + SaveModel(modelID) { + let dataBuffer = new Uint8Array(0); + this.wasmModule.SaveModel(modelID, (srcPtr, srcSize) => { + let src = this.wasmModule.HEAPU8.subarray(srcPtr, srcPtr + srcSize); + dataBuffer = new Uint8Array(srcSize); + dataBuffer.set(src, 0); + }); + return dataBuffer; + } + ExportFileAsIFC(modelID) { + Log.warn("ExportFileAsIFC is deprecated, use SaveModel instead"); + return this.SaveModel(modelID); + } + GetGeometry(modelID, geometryExpressID) { + return this.wasmModule.GetGeometry(modelID, geometryExpressID); + } + GetHeaderLine(modelID, headerType) { + return this.wasmModule.GetHeaderLine(modelID, headerType); + } + GetAllTypesOfModel(modelID) { + let typesNames = []; + const elements = Object.keys(FromRawLineData[this.modelSchemaList[modelID]]).map((e) => parseInt(e)); + for (let i = 0; i < elements.length; i++) { + const lines = this.GetLineIDsWithType(modelID, elements[i]); + if (lines.size() > 0) + typesNames.push({ typeID: elements[i], typeName: this.wasmModule.GetNameFromTypeCode(elements[i]) }); + } + return typesNames; + } + GetLine(modelID, expressID, flatten = false, inverse = false, inversePropKey = null) { + let expressCheck = this.wasmModule.ValidateExpressID(modelID, expressID); + if (!expressCheck) { + return; + } + let rawLineData = this.GetRawLineData(modelID, expressID); + let lineData; + try { + lineData = FromRawLineData[this.modelSchemaList[modelID]][rawLineData.type](rawLineData.arguments); + lineData.expressID = rawLineData.ID; + } catch (e) { + Log.error("Invalid IFC Line:" + expressID); + if (rawLineData.ID) { + throw e; + } else { + return; + } + } + if (flatten) { + this.FlattenLine(modelID, lineData); + } + let inverseData = InversePropertyDef[this.modelSchemaList[modelID]][rawLineData.type]; + if (inverse && inverseData != null) { + for (let inverseProp of inverseData) { + if (inversePropKey && inverseProp[0] !== inversePropKey) + continue; + if (!inverseProp[3]) + lineData[inverseProp[0]] = null; + else + lineData[inverseProp[0]] = []; + let targetTypes = [inverseProp[1]]; + if (typeof InheritanceDef[this.modelSchemaList[modelID]][inverseProp[1]] != "undefined") { + targetTypes = targetTypes.concat(InheritanceDef[this.modelSchemaList[modelID]][inverseProp[1]]); + } + let inverseIDs = this.wasmModule.GetInversePropertyForItem(modelID, expressID, targetTypes, inverseProp[2], inverseProp[3]); + if (!inverseProp[3] && inverseIDs.size() > 0) { + if (!flatten) + lineData[inverseProp[0]] = { type: 5, value: inverseIDs.get(0) }; + else + lineData[inverseProp[0]] = this.GetLine(modelID, inverseIDs.get(0)); + } else { + for (let x = 0; x < inverseIDs.size(); x++) { + if (!flatten) + lineData[inverseProp[0]].push({ type: 5, value: inverseIDs.get(x) }); + else + lineData[inverseProp[0]].push(this.GetLine(modelID, inverseIDs.get(x))); + } + } + } + } + return lineData; + } + GetNextExpressID(modelID, expressID) { + return this.wasmModule.GetNextExpressID(modelID, expressID); + } + GetAndClearErrors(modelID) { + return this.wasmModule.GetAndClearErrors(modelID); + } + CreateIfcEntity(modelID, type, ...args) { + return Constructors[this.modelSchemaList[modelID]][type](args); + } + CreateIfcType(modelID, type, value) { + return TypeInitialisers[this.modelSchemaList[modelID]][type](value); + } + GetNameFromTypeCode(type) { + return this.wasmModule.GetNameFromTypeCode(type); + } + GetTypeCodeFromName(typeName) { + return this.wasmModule.GetTypeCodeFromName(typeName); + } + IsIfcElement(type) { + return this.wasmModule.IsIfcElement(type); + } + GetIfcEntityList(modelID) { + return Object.keys(FromRawLineData[this.modelSchemaList[modelID]]).map((x) => parseInt(x)); + } + DeleteLine(modelID, expressID) { + this.wasmModule.RemoveLine(modelID, expressID); + this.deletedLines.get(modelID).add(expressID); + } + WriteLines(modelID, lineObjects) { + this.wasmModule.ExtendLineStorage(modelID, lineObjects.length); + for (let lineObject of lineObjects) + this.WriteLine(modelID, lineObject); + } + WriteLine(modelID, lineObject) { + if (lineObject.expressID != -1 && this.deletedLines.get(modelID).has(lineObject.expressID)) { + Log.error(`Cannot re-use deleted express ID`); + return; + } + if (lineObject.expressID != -1 && this.GetLineType(modelID, lineObject.expressID) != lineObject.type && this.GetLineType(modelID, lineObject.expressID) != 0) { + Log.error(`Cannot change type of existing IFC Line`); + return; + } + let property; + for (property in lineObject) { + const lineProperty = lineObject[property]; + if (lineProperty && lineProperty.expressID !== void 0) { + this.WriteLine(modelID, lineProperty); + lineObject[property] = new Handle$5(lineProperty.expressID); + } else if (Array.isArray(lineProperty) && lineProperty.length > 0) { + for (let i = 0; i < lineProperty.length; i++) { + if (lineProperty[i].expressID !== void 0) { + this.WriteLine(modelID, lineProperty[i]); + lineObject[property][i] = new Handle$5(lineProperty[i].expressID); + } + } + } + } + if (lineObject.expressID === void 0 || lineObject.expressID < 0) { + lineObject.expressID = this.GetMaxExpressID(modelID) + 1; + } + let rawLineData = { + ID: lineObject.expressID, + type: lineObject.type, + arguments: ToRawLineData[this.modelSchemaList[modelID]][lineObject.type](lineObject) + }; + this.WriteRawLineData(modelID, rawLineData); + } + FlattenLine(modelID, line) { + Object.keys(line).forEach((propertyName) => { + let property = line[propertyName]; + if (property && property.type === 5) { + if (property.value) + line[propertyName] = this.GetLine(modelID, property.value, true); + } else if (Array.isArray(property) && property.length > 0 && property[0].type === 5) { + for (let i = 0; i < property.length; i++) { + if (property[i].value) + line[propertyName][i] = this.GetLine(modelID, property[i].value, true); + } + } + }); + } + GetRawLineData(modelID, expressID) { + return this.wasmModule.GetLine(modelID, expressID); + } + WriteRawLineData(modelID, data) { + this.wasmModule.WriteLine(modelID, data.ID, data.type, data.arguments); + } + GetLineIDsWithType(modelID, type, includeInherited = false) { + let types = []; + types.push(type); + if (includeInherited && typeof InheritanceDef[this.modelSchemaList[modelID]][type] != "undefined") { + types = types.concat(InheritanceDef[this.modelSchemaList[modelID]][type]); + } + return this.wasmModule.GetLineIDsWithType(modelID, types); + } + GetAllLines(modelID) { + return this.wasmModule.GetAllLines(modelID); + } + GetAllCrossSections2D(modelID) { + const crossSections = this.wasmModule.GetAllCrossSections2D(modelID); + const crossSectionList = []; + for (let i = 0; i < crossSections.size(); i++) { + const alignment = crossSections.get(i); + const curveList = []; + const expressList = []; + for (let j = 0; j < alignment.curves.size(); j++) { + const curve = alignment.curves.get(j); + const ptList = []; + for (let p = 0; p < curve.points.size(); p++) { + const pt = curve.points.get(p); + const newPoint = { x: pt.x, y: pt.y, z: pt.z }; + ptList.push(newPoint); + } + const newCurve = { points: ptList }; + curveList.push(newCurve); + expressList.push(alignment.expressID.get(j)); + } + const align = { origin, curves: curveList, expressID: expressList }; + crossSectionList.push(align); + } + return crossSectionList; + } + GetAllCrossSections3D(modelID) { + const crossSections = this.wasmModule.GetAllCrossSections3D(modelID); + const crossSectionList = []; + for (let i = 0; i < crossSections.size(); i++) { + const alignment = crossSections.get(i); + const curveList = []; + const expressList = []; + for (let j = 0; j < alignment.curves.size(); j++) { + const curve = alignment.curves.get(j); + const ptList = []; + for (let p = 0; p < curve.points.size(); p++) { + const pt = curve.points.get(p); + const newPoint = { x: pt.x, y: pt.y, z: pt.z }; + ptList.push(newPoint); + } + const newCurve = { points: ptList }; + curveList.push(newCurve); + expressList.push(alignment.expressID.get(j)); + } + const align = { origin, curves: curveList, expressID: expressList }; + crossSectionList.push(align); + } + return crossSectionList; + } + GetAllAlignments(modelID) { + const alignments = this.wasmModule.GetAllAlignments(modelID); + const alignmentList = []; + for (let i = 0; i < alignments.size(); i++) { + const alignment = alignments.get(i); + const horList = []; + for (let j = 0; j < alignment.Horizontal.curves.size(); j++) { + const curve = alignment.Horizontal.curves.get(j); + const ptList = []; + for (let p = 0; p < curve.points.size(); p++) { + const pt = curve.points.get(p); + const newPoint = { x: pt.x, y: pt.y }; + ptList.push(newPoint); + } + const newCurve = { points: ptList }; + horList.push(newCurve); + } + const verList = []; + for (let j = 0; j < alignment.Vertical.curves.size(); j++) { + const curve = alignment.Vertical.curves.get(j); + const ptList = []; + for (let p = 0; p < curve.points.size(); p++) { + const pt = curve.points.get(p); + const newPoint = { x: pt.x, y: pt.y }; + ptList.push(newPoint); + } + const newCurve = { points: ptList }; + verList.push(newCurve); + } + const align = { origin, horizontal: horList, vertical: verList }; + alignmentList.push(align); + } + return alignmentList; + } + SetGeometryTransformation(modelID, transformationMatrix) { + if (transformationMatrix.length != 16) { + throw new Error(`invalid matrix size: ${transformationMatrix.length}`); + } + this.wasmModule.SetGeometryTransformation(modelID, transformationMatrix); + } + GetCoordinationMatrix(modelID) { + return this.wasmModule.GetCoordinationMatrix(modelID); + } + GetVertexArray(ptr, size) { + return this.getSubArray(this.wasmModule.HEAPF32, ptr, size); + } + GetIndexArray(ptr, size) { + return this.getSubArray(this.wasmModule.HEAPU32, ptr, size); + } + getSubArray(heap, startPtr, sizeBytes) { + return heap.subarray(startPtr / 4, startPtr / 4 + sizeBytes).slice(0); + } + CloseModel(modelID) { + this.ifcGuidMap.delete(modelID); + this.wasmModule.CloseModel(modelID); + } + StreamMeshes(modelID, expressIDs, meshCallback) { + this.wasmModule.StreamMeshes(modelID, expressIDs, meshCallback); + } + StreamAllMeshes(modelID, meshCallback) { + this.wasmModule.StreamAllMeshes(modelID, meshCallback); + } + StreamAllMeshesWithTypes(modelID, types, meshCallback) { + this.wasmModule.StreamAllMeshesWithTypes(modelID, types, meshCallback); + } + IsModelOpen(modelID) { + return this.wasmModule.IsModelOpen(modelID); + } + LoadAllGeometry(modelID) { + return this.wasmModule.LoadAllGeometry(modelID); + } + GetFlatMesh(modelID, expressID) { + return this.wasmModule.GetFlatMesh(modelID, expressID); + } + GetMaxExpressID(modelID) { + return this.wasmModule.GetMaxExpressID(modelID); + } + IncrementMaxExpressID(modelID, incrementSize) { + Log.warn("IncrementMaxExpressID is deprecated, use GetNextExpressID or GetMaxExpressID instead"); + return this.wasmModule.GetMaxExpressID(modelID) + incrementSize; + } + GetLineType(modelID, expressID) { + return this.wasmModule.GetLineType(modelID, expressID); + } + GetVersion() { + return this.wasmModule.GetVersion(); + } + GetExpressIdFromGuid(modelID, guid) { + var _a; + if (!this.ifcGuidMap.has(modelID)) + this.CreateIfcGuidToExpressIdMapping(modelID); + return (_a = this.ifcGuidMap.get(modelID)) == null ? void 0 : _a.get(guid); + } + GetGuidFromExpressId(modelID, expressID) { + var _a; + if (!this.ifcGuidMap.has(modelID)) + this.CreateIfcGuidToExpressIdMapping(modelID); + return (_a = this.ifcGuidMap.get(modelID)) == null ? void 0 : _a.get(expressID); + } + CreateIfcGuidToExpressIdMapping(modelID) { + const map = new Map(); + let entities = this.GetIfcEntityList(modelID); + for (const typeId of entities) { + if (!this.IsIfcElement(typeId)) + continue; + const lines = this.GetLineIDsWithType(modelID, typeId); + const size = lines.size(); + for (let y = 0; y < size; y++) { + const expressID = lines.get(y); + const info = this.GetLine(modelID, expressID); + try { + if ("GlobalId" in info) { + const globalID = info.GlobalId.value; + map.set(expressID, globalID); + map.set(globalID, expressID); + } + } catch (e) { + continue; + } + } + } + this.ifcGuidMap.set(modelID, map); + } + SetWasmPath(path, absolute = false) { + this.wasmPath = path; + this.isWasmPathAbsolute = absolute; + } + SetLogLevel(level) { + Log.setLogLevel(level); + this.wasmModule.SetLogLevel(level); + } +}; + +var WEBIFC = /*#__PURE__*/Object.freeze({ + __proto__: null, + Constructors: Constructors, + EMPTY: EMPTY, + ENUM: ENUM, + FILE_DESCRIPTION: FILE_DESCRIPTION, + FILE_NAME: FILE_NAME, + FILE_SCHEMA: FILE_SCHEMA, + FromRawLineData: FromRawLineData, + Handle: Handle$5, + IFC2DCOMPOSITECURVE: IFC2DCOMPOSITECURVE, + get IFC2X3 () { return IFC2X3$1; }, + get IFC4 () { return IFC4$1; }, + get IFC4X3 () { return IFC4X3$1; }, + IFCABSORBEDDOSEMEASURE: IFCABSORBEDDOSEMEASURE, + IFCACCELERATIONMEASURE: IFCACCELERATIONMEASURE, + IFCACTIONREQUEST: IFCACTIONREQUEST, + IFCACTOR: IFCACTOR, + IFCACTORROLE: IFCACTORROLE, + IFCACTUATOR: IFCACTUATOR, + IFCACTUATORTYPE: IFCACTUATORTYPE, + IFCADDRESS: IFCADDRESS, + IFCADVANCEDBREP: IFCADVANCEDBREP, + IFCADVANCEDBREPWITHVOIDS: IFCADVANCEDBREPWITHVOIDS, + IFCADVANCEDFACE: IFCADVANCEDFACE, + IFCAIRTERMINAL: IFCAIRTERMINAL, + IFCAIRTERMINALBOX: IFCAIRTERMINALBOX, + IFCAIRTERMINALBOXTYPE: IFCAIRTERMINALBOXTYPE, + IFCAIRTERMINALTYPE: IFCAIRTERMINALTYPE, + IFCAIRTOAIRHEATRECOVERY: IFCAIRTOAIRHEATRECOVERY, + IFCAIRTOAIRHEATRECOVERYTYPE: IFCAIRTOAIRHEATRECOVERYTYPE, + IFCALARM: IFCALARM, + IFCALARMTYPE: IFCALARMTYPE, + IFCALIGNMENT: IFCALIGNMENT, + IFCALIGNMENTCANT: IFCALIGNMENTCANT, + IFCALIGNMENTCANTSEGMENT: IFCALIGNMENTCANTSEGMENT, + IFCALIGNMENTHORIZONTAL: IFCALIGNMENTHORIZONTAL, + IFCALIGNMENTHORIZONTALSEGMENT: IFCALIGNMENTHORIZONTALSEGMENT, + IFCALIGNMENTPARAMETERSEGMENT: IFCALIGNMENTPARAMETERSEGMENT, + IFCALIGNMENTSEGMENT: IFCALIGNMENTSEGMENT, + IFCALIGNMENTVERTICAL: IFCALIGNMENTVERTICAL, + IFCALIGNMENTVERTICALSEGMENT: IFCALIGNMENTVERTICALSEGMENT, + IFCAMOUNTOFSUBSTANCEMEASURE: IFCAMOUNTOFSUBSTANCEMEASURE, + IFCANGULARDIMENSION: IFCANGULARDIMENSION, + IFCANGULARVELOCITYMEASURE: IFCANGULARVELOCITYMEASURE, + IFCANNOTATION: IFCANNOTATION, + IFCANNOTATIONCURVEOCCURRENCE: IFCANNOTATIONCURVEOCCURRENCE, + IFCANNOTATIONFILLAREA: IFCANNOTATIONFILLAREA, + IFCANNOTATIONFILLAREAOCCURRENCE: IFCANNOTATIONFILLAREAOCCURRENCE, + IFCANNOTATIONOCCURRENCE: IFCANNOTATIONOCCURRENCE, + IFCANNOTATIONSURFACE: IFCANNOTATIONSURFACE, + IFCANNOTATIONSURFACEOCCURRENCE: IFCANNOTATIONSURFACEOCCURRENCE, + IFCANNOTATIONSYMBOLOCCURRENCE: IFCANNOTATIONSYMBOLOCCURRENCE, + IFCANNOTATIONTEXTOCCURRENCE: IFCANNOTATIONTEXTOCCURRENCE, + IFCAPPLICATION: IFCAPPLICATION, + IFCAPPLIEDVALUE: IFCAPPLIEDVALUE, + IFCAPPLIEDVALUERELATIONSHIP: IFCAPPLIEDVALUERELATIONSHIP, + IFCAPPROVAL: IFCAPPROVAL, + IFCAPPROVALACTORRELATIONSHIP: IFCAPPROVALACTORRELATIONSHIP, + IFCAPPROVALPROPERTYRELATIONSHIP: IFCAPPROVALPROPERTYRELATIONSHIP, + IFCAPPROVALRELATIONSHIP: IFCAPPROVALRELATIONSHIP, + IFCARBITRARYCLOSEDPROFILEDEF: IFCARBITRARYCLOSEDPROFILEDEF, + IFCARBITRARYOPENPROFILEDEF: IFCARBITRARYOPENPROFILEDEF, + IFCARBITRARYPROFILEDEFWITHVOIDS: IFCARBITRARYPROFILEDEFWITHVOIDS, + IFCARCINDEX: IFCARCINDEX, + IFCAREADENSITYMEASURE: IFCAREADENSITYMEASURE, + IFCAREAMEASURE: IFCAREAMEASURE, + IFCASSET: IFCASSET, + IFCASYMMETRICISHAPEPROFILEDEF: IFCASYMMETRICISHAPEPROFILEDEF, + IFCAUDIOVISUALAPPLIANCE: IFCAUDIOVISUALAPPLIANCE, + IFCAUDIOVISUALAPPLIANCETYPE: IFCAUDIOVISUALAPPLIANCETYPE, + IFCAXIS1PLACEMENT: IFCAXIS1PLACEMENT, + IFCAXIS2PLACEMENT2D: IFCAXIS2PLACEMENT2D, + IFCAXIS2PLACEMENT3D: IFCAXIS2PLACEMENT3D, + IFCAXIS2PLACEMENTLINEAR: IFCAXIS2PLACEMENTLINEAR, + IFCBEAM: IFCBEAM, + IFCBEAMSTANDARDCASE: IFCBEAMSTANDARDCASE, + IFCBEAMTYPE: IFCBEAMTYPE, + IFCBEARING: IFCBEARING, + IFCBEARINGTYPE: IFCBEARINGTYPE, + IFCBEZIERCURVE: IFCBEZIERCURVE, + IFCBINARY: IFCBINARY, + IFCBLOBTEXTURE: IFCBLOBTEXTURE, + IFCBLOCK: IFCBLOCK, + IFCBOILER: IFCBOILER, + IFCBOILERTYPE: IFCBOILERTYPE, + IFCBOOLEAN: IFCBOOLEAN, + IFCBOOLEANCLIPPINGRESULT: IFCBOOLEANCLIPPINGRESULT, + IFCBOOLEANRESULT: IFCBOOLEANRESULT, + IFCBOREHOLE: IFCBOREHOLE, + IFCBOUNDARYCONDITION: IFCBOUNDARYCONDITION, + IFCBOUNDARYCURVE: IFCBOUNDARYCURVE, + IFCBOUNDARYEDGECONDITION: IFCBOUNDARYEDGECONDITION, + IFCBOUNDARYFACECONDITION: IFCBOUNDARYFACECONDITION, + IFCBOUNDARYNODECONDITION: IFCBOUNDARYNODECONDITION, + IFCBOUNDARYNODECONDITIONWARPING: IFCBOUNDARYNODECONDITIONWARPING, + IFCBOUNDEDCURVE: IFCBOUNDEDCURVE, + IFCBOUNDEDSURFACE: IFCBOUNDEDSURFACE, + IFCBOUNDINGBOX: IFCBOUNDINGBOX, + IFCBOXALIGNMENT: IFCBOXALIGNMENT, + IFCBOXEDHALFSPACE: IFCBOXEDHALFSPACE, + IFCBRIDGE: IFCBRIDGE, + IFCBRIDGEPART: IFCBRIDGEPART, + IFCBSPLINECURVE: IFCBSPLINECURVE, + IFCBSPLINECURVEWITHKNOTS: IFCBSPLINECURVEWITHKNOTS, + IFCBSPLINESURFACE: IFCBSPLINESURFACE, + IFCBSPLINESURFACEWITHKNOTS: IFCBSPLINESURFACEWITHKNOTS, + IFCBUILDING: IFCBUILDING, + IFCBUILDINGELEMENT: IFCBUILDINGELEMENT, + IFCBUILDINGELEMENTCOMPONENT: IFCBUILDINGELEMENTCOMPONENT, + IFCBUILDINGELEMENTPART: IFCBUILDINGELEMENTPART, + IFCBUILDINGELEMENTPARTTYPE: IFCBUILDINGELEMENTPARTTYPE, + IFCBUILDINGELEMENTPROXY: IFCBUILDINGELEMENTPROXY, + IFCBUILDINGELEMENTPROXYTYPE: IFCBUILDINGELEMENTPROXYTYPE, + IFCBUILDINGELEMENTTYPE: IFCBUILDINGELEMENTTYPE, + IFCBUILDINGSTOREY: IFCBUILDINGSTOREY, + IFCBUILDINGSYSTEM: IFCBUILDINGSYSTEM, + IFCBUILTELEMENT: IFCBUILTELEMENT, + IFCBUILTELEMENTTYPE: IFCBUILTELEMENTTYPE, + IFCBUILTSYSTEM: IFCBUILTSYSTEM, + IFCBURNER: IFCBURNER, + IFCBURNERTYPE: IFCBURNERTYPE, + IFCCABLECARRIERFITTING: IFCCABLECARRIERFITTING, + IFCCABLECARRIERFITTINGTYPE: IFCCABLECARRIERFITTINGTYPE, + IFCCABLECARRIERSEGMENT: IFCCABLECARRIERSEGMENT, + IFCCABLECARRIERSEGMENTTYPE: IFCCABLECARRIERSEGMENTTYPE, + IFCCABLEFITTING: IFCCABLEFITTING, + IFCCABLEFITTINGTYPE: IFCCABLEFITTINGTYPE, + IFCCABLESEGMENT: IFCCABLESEGMENT, + IFCCABLESEGMENTTYPE: IFCCABLESEGMENTTYPE, + IFCCAISSONFOUNDATION: IFCCAISSONFOUNDATION, + IFCCAISSONFOUNDATIONTYPE: IFCCAISSONFOUNDATIONTYPE, + IFCCALENDARDATE: IFCCALENDARDATE, + IFCCARDINALPOINTREFERENCE: IFCCARDINALPOINTREFERENCE, + IFCCARTESIANPOINT: IFCCARTESIANPOINT, + IFCCARTESIANPOINTLIST: IFCCARTESIANPOINTLIST, + IFCCARTESIANPOINTLIST2D: IFCCARTESIANPOINTLIST2D, + IFCCARTESIANPOINTLIST3D: IFCCARTESIANPOINTLIST3D, + IFCCARTESIANTRANSFORMATIONOPERATOR: IFCCARTESIANTRANSFORMATIONOPERATOR, + IFCCARTESIANTRANSFORMATIONOPERATOR2D: IFCCARTESIANTRANSFORMATIONOPERATOR2D, + IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM: IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM, + IFCCARTESIANTRANSFORMATIONOPERATOR3D: IFCCARTESIANTRANSFORMATIONOPERATOR3D, + IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM: IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM, + IFCCENTERLINEPROFILEDEF: IFCCENTERLINEPROFILEDEF, + IFCCHAMFEREDGEFEATURE: IFCCHAMFEREDGEFEATURE, + IFCCHILLER: IFCCHILLER, + IFCCHILLERTYPE: IFCCHILLERTYPE, + IFCCHIMNEY: IFCCHIMNEY, + IFCCHIMNEYTYPE: IFCCHIMNEYTYPE, + IFCCIRCLE: IFCCIRCLE, + IFCCIRCLEHOLLOWPROFILEDEF: IFCCIRCLEHOLLOWPROFILEDEF, + IFCCIRCLEPROFILEDEF: IFCCIRCLEPROFILEDEF, + IFCCIVILELEMENT: IFCCIVILELEMENT, + IFCCIVILELEMENTTYPE: IFCCIVILELEMENTTYPE, + IFCCLASSIFICATION: IFCCLASSIFICATION, + IFCCLASSIFICATIONITEM: IFCCLASSIFICATIONITEM, + IFCCLASSIFICATIONITEMRELATIONSHIP: IFCCLASSIFICATIONITEMRELATIONSHIP, + IFCCLASSIFICATIONNOTATION: IFCCLASSIFICATIONNOTATION, + IFCCLASSIFICATIONNOTATIONFACET: IFCCLASSIFICATIONNOTATIONFACET, + IFCCLASSIFICATIONREFERENCE: IFCCLASSIFICATIONREFERENCE, + IFCCLOSEDSHELL: IFCCLOSEDSHELL, + IFCCLOTHOID: IFCCLOTHOID, + IFCCOIL: IFCCOIL, + IFCCOILTYPE: IFCCOILTYPE, + IFCCOLOURRGB: IFCCOLOURRGB, + IFCCOLOURRGBLIST: IFCCOLOURRGBLIST, + IFCCOLOURSPECIFICATION: IFCCOLOURSPECIFICATION, + IFCCOLUMN: IFCCOLUMN, + IFCCOLUMNSTANDARDCASE: IFCCOLUMNSTANDARDCASE, + IFCCOLUMNTYPE: IFCCOLUMNTYPE, + IFCCOMMUNICATIONSAPPLIANCE: IFCCOMMUNICATIONSAPPLIANCE, + IFCCOMMUNICATIONSAPPLIANCETYPE: IFCCOMMUNICATIONSAPPLIANCETYPE, + IFCCOMPLEXNUMBER: IFCCOMPLEXNUMBER, + IFCCOMPLEXPROPERTY: IFCCOMPLEXPROPERTY, + IFCCOMPLEXPROPERTYTEMPLATE: IFCCOMPLEXPROPERTYTEMPLATE, + IFCCOMPOSITECURVE: IFCCOMPOSITECURVE, + IFCCOMPOSITECURVEONSURFACE: IFCCOMPOSITECURVEONSURFACE, + IFCCOMPOSITECURVESEGMENT: IFCCOMPOSITECURVESEGMENT, + IFCCOMPOSITEPROFILEDEF: IFCCOMPOSITEPROFILEDEF, + IFCCOMPOUNDPLANEANGLEMEASURE: IFCCOMPOUNDPLANEANGLEMEASURE, + IFCCOMPRESSOR: IFCCOMPRESSOR, + IFCCOMPRESSORTYPE: IFCCOMPRESSORTYPE, + IFCCONDENSER: IFCCONDENSER, + IFCCONDENSERTYPE: IFCCONDENSERTYPE, + IFCCONDITION: IFCCONDITION, + IFCCONDITIONCRITERION: IFCCONDITIONCRITERION, + IFCCONIC: IFCCONIC, + IFCCONNECTEDFACESET: IFCCONNECTEDFACESET, + IFCCONNECTIONCURVEGEOMETRY: IFCCONNECTIONCURVEGEOMETRY, + IFCCONNECTIONGEOMETRY: IFCCONNECTIONGEOMETRY, + IFCCONNECTIONPOINTECCENTRICITY: IFCCONNECTIONPOINTECCENTRICITY, + IFCCONNECTIONPOINTGEOMETRY: IFCCONNECTIONPOINTGEOMETRY, + IFCCONNECTIONPORTGEOMETRY: IFCCONNECTIONPORTGEOMETRY, + IFCCONNECTIONSURFACEGEOMETRY: IFCCONNECTIONSURFACEGEOMETRY, + IFCCONNECTIONVOLUMEGEOMETRY: IFCCONNECTIONVOLUMEGEOMETRY, + IFCCONSTRAINT: IFCCONSTRAINT, + IFCCONSTRAINTAGGREGATIONRELATIONSHIP: IFCCONSTRAINTAGGREGATIONRELATIONSHIP, + IFCCONSTRAINTCLASSIFICATIONRELATIONSHIP: IFCCONSTRAINTCLASSIFICATIONRELATIONSHIP, + IFCCONSTRAINTRELATIONSHIP: IFCCONSTRAINTRELATIONSHIP, + IFCCONSTRUCTIONEQUIPMENTRESOURCE: IFCCONSTRUCTIONEQUIPMENTRESOURCE, + IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE: IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE, + IFCCONSTRUCTIONMATERIALRESOURCE: IFCCONSTRUCTIONMATERIALRESOURCE, + IFCCONSTRUCTIONMATERIALRESOURCETYPE: IFCCONSTRUCTIONMATERIALRESOURCETYPE, + IFCCONSTRUCTIONPRODUCTRESOURCE: IFCCONSTRUCTIONPRODUCTRESOURCE, + IFCCONSTRUCTIONPRODUCTRESOURCETYPE: IFCCONSTRUCTIONPRODUCTRESOURCETYPE, + IFCCONSTRUCTIONRESOURCE: IFCCONSTRUCTIONRESOURCE, + IFCCONSTRUCTIONRESOURCETYPE: IFCCONSTRUCTIONRESOURCETYPE, + IFCCONTEXT: IFCCONTEXT, + IFCCONTEXTDEPENDENTMEASURE: IFCCONTEXTDEPENDENTMEASURE, + IFCCONTEXTDEPENDENTUNIT: IFCCONTEXTDEPENDENTUNIT, + IFCCONTROL: IFCCONTROL, + IFCCONTROLLER: IFCCONTROLLER, + IFCCONTROLLERTYPE: IFCCONTROLLERTYPE, + IFCCONVERSIONBASEDUNIT: IFCCONVERSIONBASEDUNIT, + IFCCONVERSIONBASEDUNITWITHOFFSET: IFCCONVERSIONBASEDUNITWITHOFFSET, + IFCCONVEYORSEGMENT: IFCCONVEYORSEGMENT, + IFCCONVEYORSEGMENTTYPE: IFCCONVEYORSEGMENTTYPE, + IFCCOOLEDBEAM: IFCCOOLEDBEAM, + IFCCOOLEDBEAMTYPE: IFCCOOLEDBEAMTYPE, + IFCCOOLINGTOWER: IFCCOOLINGTOWER, + IFCCOOLINGTOWERTYPE: IFCCOOLINGTOWERTYPE, + IFCCOORDINATEDUNIVERSALTIMEOFFSET: IFCCOORDINATEDUNIVERSALTIMEOFFSET, + IFCCOORDINATEOPERATION: IFCCOORDINATEOPERATION, + IFCCOORDINATEREFERENCESYSTEM: IFCCOORDINATEREFERENCESYSTEM, + IFCCOSINESPIRAL: IFCCOSINESPIRAL, + IFCCOSTITEM: IFCCOSTITEM, + IFCCOSTSCHEDULE: IFCCOSTSCHEDULE, + IFCCOSTVALUE: IFCCOSTVALUE, + IFCCOUNTMEASURE: IFCCOUNTMEASURE, + IFCCOURSE: IFCCOURSE, + IFCCOURSETYPE: IFCCOURSETYPE, + IFCCOVERING: IFCCOVERING, + IFCCOVERINGTYPE: IFCCOVERINGTYPE, + IFCCRANERAILASHAPEPROFILEDEF: IFCCRANERAILASHAPEPROFILEDEF, + IFCCRANERAILFSHAPEPROFILEDEF: IFCCRANERAILFSHAPEPROFILEDEF, + IFCCREWRESOURCE: IFCCREWRESOURCE, + IFCCREWRESOURCETYPE: IFCCREWRESOURCETYPE, + IFCCSGPRIMITIVE3D: IFCCSGPRIMITIVE3D, + IFCCSGSOLID: IFCCSGSOLID, + IFCCSHAPEPROFILEDEF: IFCCSHAPEPROFILEDEF, + IFCCURRENCYRELATIONSHIP: IFCCURRENCYRELATIONSHIP, + IFCCURTAINWALL: IFCCURTAINWALL, + IFCCURTAINWALLTYPE: IFCCURTAINWALLTYPE, + IFCCURVATUREMEASURE: IFCCURVATUREMEASURE, + IFCCURVE: IFCCURVE, + IFCCURVEBOUNDEDPLANE: IFCCURVEBOUNDEDPLANE, + IFCCURVEBOUNDEDSURFACE: IFCCURVEBOUNDEDSURFACE, + IFCCURVESEGMENT: IFCCURVESEGMENT, + IFCCURVESTYLE: IFCCURVESTYLE, + IFCCURVESTYLEFONT: IFCCURVESTYLEFONT, + IFCCURVESTYLEFONTANDSCALING: IFCCURVESTYLEFONTANDSCALING, + IFCCURVESTYLEFONTPATTERN: IFCCURVESTYLEFONTPATTERN, + IFCCYLINDRICALSURFACE: IFCCYLINDRICALSURFACE, + IFCDAMPER: IFCDAMPER, + IFCDAMPERTYPE: IFCDAMPERTYPE, + IFCDATE: IFCDATE, + IFCDATEANDTIME: IFCDATEANDTIME, + IFCDATETIME: IFCDATETIME, + IFCDAYINMONTHNUMBER: IFCDAYINMONTHNUMBER, + IFCDAYINWEEKNUMBER: IFCDAYINWEEKNUMBER, + IFCDAYLIGHTSAVINGHOUR: IFCDAYLIGHTSAVINGHOUR, + IFCDEEPFOUNDATION: IFCDEEPFOUNDATION, + IFCDEEPFOUNDATIONTYPE: IFCDEEPFOUNDATIONTYPE, + IFCDEFINEDSYMBOL: IFCDEFINEDSYMBOL, + IFCDERIVEDPROFILEDEF: IFCDERIVEDPROFILEDEF, + IFCDERIVEDUNIT: IFCDERIVEDUNIT, + IFCDERIVEDUNITELEMENT: IFCDERIVEDUNITELEMENT, + IFCDESCRIPTIVEMEASURE: IFCDESCRIPTIVEMEASURE, + IFCDIAMETERDIMENSION: IFCDIAMETERDIMENSION, + IFCDIMENSIONALEXPONENTS: IFCDIMENSIONALEXPONENTS, + IFCDIMENSIONCALLOUTRELATIONSHIP: IFCDIMENSIONCALLOUTRELATIONSHIP, + IFCDIMENSIONCOUNT: IFCDIMENSIONCOUNT, + IFCDIMENSIONCURVE: IFCDIMENSIONCURVE, + IFCDIMENSIONCURVEDIRECTEDCALLOUT: IFCDIMENSIONCURVEDIRECTEDCALLOUT, + IFCDIMENSIONCURVETERMINATOR: IFCDIMENSIONCURVETERMINATOR, + IFCDIMENSIONPAIR: IFCDIMENSIONPAIR, + IFCDIRECTION: IFCDIRECTION, + IFCDIRECTRIXCURVESWEPTAREASOLID: IFCDIRECTRIXCURVESWEPTAREASOLID, + IFCDIRECTRIXDERIVEDREFERENCESWEPTAREASOLID: IFCDIRECTRIXDERIVEDREFERENCESWEPTAREASOLID, + IFCDISCRETEACCESSORY: IFCDISCRETEACCESSORY, + IFCDISCRETEACCESSORYTYPE: IFCDISCRETEACCESSORYTYPE, + IFCDISTRIBUTIONBOARD: IFCDISTRIBUTIONBOARD, + IFCDISTRIBUTIONBOARDTYPE: IFCDISTRIBUTIONBOARDTYPE, + IFCDISTRIBUTIONCHAMBERELEMENT: IFCDISTRIBUTIONCHAMBERELEMENT, + IFCDISTRIBUTIONCHAMBERELEMENTTYPE: IFCDISTRIBUTIONCHAMBERELEMENTTYPE, + IFCDISTRIBUTIONCIRCUIT: IFCDISTRIBUTIONCIRCUIT, + IFCDISTRIBUTIONCONTROLELEMENT: IFCDISTRIBUTIONCONTROLELEMENT, + IFCDISTRIBUTIONCONTROLELEMENTTYPE: IFCDISTRIBUTIONCONTROLELEMENTTYPE, + IFCDISTRIBUTIONELEMENT: IFCDISTRIBUTIONELEMENT, + IFCDISTRIBUTIONELEMENTTYPE: IFCDISTRIBUTIONELEMENTTYPE, + IFCDISTRIBUTIONFLOWELEMENT: IFCDISTRIBUTIONFLOWELEMENT, + IFCDISTRIBUTIONFLOWELEMENTTYPE: IFCDISTRIBUTIONFLOWELEMENTTYPE, + IFCDISTRIBUTIONPORT: IFCDISTRIBUTIONPORT, + IFCDISTRIBUTIONSYSTEM: IFCDISTRIBUTIONSYSTEM, + IFCDOCUMENTELECTRONICFORMAT: IFCDOCUMENTELECTRONICFORMAT, + IFCDOCUMENTINFORMATION: IFCDOCUMENTINFORMATION, + IFCDOCUMENTINFORMATIONRELATIONSHIP: IFCDOCUMENTINFORMATIONRELATIONSHIP, + IFCDOCUMENTREFERENCE: IFCDOCUMENTREFERENCE, + IFCDOOR: IFCDOOR, + IFCDOORLININGPROPERTIES: IFCDOORLININGPROPERTIES, + IFCDOORPANELPROPERTIES: IFCDOORPANELPROPERTIES, + IFCDOORSTANDARDCASE: IFCDOORSTANDARDCASE, + IFCDOORSTYLE: IFCDOORSTYLE, + IFCDOORTYPE: IFCDOORTYPE, + IFCDOSEEQUIVALENTMEASURE: IFCDOSEEQUIVALENTMEASURE, + IFCDRAUGHTINGCALLOUT: IFCDRAUGHTINGCALLOUT, + IFCDRAUGHTINGCALLOUTRELATIONSHIP: IFCDRAUGHTINGCALLOUTRELATIONSHIP, + IFCDRAUGHTINGPREDEFINEDCOLOUR: IFCDRAUGHTINGPREDEFINEDCOLOUR, + IFCDRAUGHTINGPREDEFINEDCURVEFONT: IFCDRAUGHTINGPREDEFINEDCURVEFONT, + IFCDRAUGHTINGPREDEFINEDTEXTFONT: IFCDRAUGHTINGPREDEFINEDTEXTFONT, + IFCDUCTFITTING: IFCDUCTFITTING, + IFCDUCTFITTINGTYPE: IFCDUCTFITTINGTYPE, + IFCDUCTSEGMENT: IFCDUCTSEGMENT, + IFCDUCTSEGMENTTYPE: IFCDUCTSEGMENTTYPE, + IFCDUCTSILENCER: IFCDUCTSILENCER, + IFCDUCTSILENCERTYPE: IFCDUCTSILENCERTYPE, + IFCDURATION: IFCDURATION, + IFCDYNAMICVISCOSITYMEASURE: IFCDYNAMICVISCOSITYMEASURE, + IFCEARTHWORKSCUT: IFCEARTHWORKSCUT, + IFCEARTHWORKSELEMENT: IFCEARTHWORKSELEMENT, + IFCEARTHWORKSFILL: IFCEARTHWORKSFILL, + IFCEDGE: IFCEDGE, + IFCEDGECURVE: IFCEDGECURVE, + IFCEDGEFEATURE: IFCEDGEFEATURE, + IFCEDGELOOP: IFCEDGELOOP, + IFCELECTRICALBASEPROPERTIES: IFCELECTRICALBASEPROPERTIES, + IFCELECTRICALCIRCUIT: IFCELECTRICALCIRCUIT, + IFCELECTRICALELEMENT: IFCELECTRICALELEMENT, + IFCELECTRICAPPLIANCE: IFCELECTRICAPPLIANCE, + IFCELECTRICAPPLIANCETYPE: IFCELECTRICAPPLIANCETYPE, + IFCELECTRICCAPACITANCEMEASURE: IFCELECTRICCAPACITANCEMEASURE, + IFCELECTRICCHARGEMEASURE: IFCELECTRICCHARGEMEASURE, + IFCELECTRICCONDUCTANCEMEASURE: IFCELECTRICCONDUCTANCEMEASURE, + IFCELECTRICCURRENTMEASURE: IFCELECTRICCURRENTMEASURE, + IFCELECTRICDISTRIBUTIONBOARD: IFCELECTRICDISTRIBUTIONBOARD, + IFCELECTRICDISTRIBUTIONBOARDTYPE: IFCELECTRICDISTRIBUTIONBOARDTYPE, + IFCELECTRICDISTRIBUTIONPOINT: IFCELECTRICDISTRIBUTIONPOINT, + IFCELECTRICFLOWSTORAGEDEVICE: IFCELECTRICFLOWSTORAGEDEVICE, + IFCELECTRICFLOWSTORAGEDEVICETYPE: IFCELECTRICFLOWSTORAGEDEVICETYPE, + IFCELECTRICFLOWTREATMENTDEVICE: IFCELECTRICFLOWTREATMENTDEVICE, + IFCELECTRICFLOWTREATMENTDEVICETYPE: IFCELECTRICFLOWTREATMENTDEVICETYPE, + IFCELECTRICGENERATOR: IFCELECTRICGENERATOR, + IFCELECTRICGENERATORTYPE: IFCELECTRICGENERATORTYPE, + IFCELECTRICHEATERTYPE: IFCELECTRICHEATERTYPE, + IFCELECTRICMOTOR: IFCELECTRICMOTOR, + IFCELECTRICMOTORTYPE: IFCELECTRICMOTORTYPE, + IFCELECTRICRESISTANCEMEASURE: IFCELECTRICRESISTANCEMEASURE, + IFCELECTRICTIMECONTROL: IFCELECTRICTIMECONTROL, + IFCELECTRICTIMECONTROLTYPE: IFCELECTRICTIMECONTROLTYPE, + IFCELECTRICVOLTAGEMEASURE: IFCELECTRICVOLTAGEMEASURE, + IFCELEMENT: IFCELEMENT, + IFCELEMENTARYSURFACE: IFCELEMENTARYSURFACE, + IFCELEMENTASSEMBLY: IFCELEMENTASSEMBLY, + IFCELEMENTASSEMBLYTYPE: IFCELEMENTASSEMBLYTYPE, + IFCELEMENTCOMPONENT: IFCELEMENTCOMPONENT, + IFCELEMENTCOMPONENTTYPE: IFCELEMENTCOMPONENTTYPE, + IFCELEMENTQUANTITY: IFCELEMENTQUANTITY, + IFCELEMENTTYPE: IFCELEMENTTYPE, + IFCELLIPSE: IFCELLIPSE, + IFCELLIPSEPROFILEDEF: IFCELLIPSEPROFILEDEF, + IFCENERGYCONVERSIONDEVICE: IFCENERGYCONVERSIONDEVICE, + IFCENERGYCONVERSIONDEVICETYPE: IFCENERGYCONVERSIONDEVICETYPE, + IFCENERGYMEASURE: IFCENERGYMEASURE, + IFCENERGYPROPERTIES: IFCENERGYPROPERTIES, + IFCENGINE: IFCENGINE, + IFCENGINETYPE: IFCENGINETYPE, + IFCENVIRONMENTALIMPACTVALUE: IFCENVIRONMENTALIMPACTVALUE, + IFCEQUIPMENTELEMENT: IFCEQUIPMENTELEMENT, + IFCEQUIPMENTSTANDARD: IFCEQUIPMENTSTANDARD, + IFCEVAPORATIVECOOLER: IFCEVAPORATIVECOOLER, + IFCEVAPORATIVECOOLERTYPE: IFCEVAPORATIVECOOLERTYPE, + IFCEVAPORATOR: IFCEVAPORATOR, + IFCEVAPORATORTYPE: IFCEVAPORATORTYPE, + IFCEVENT: IFCEVENT, + IFCEVENTTIME: IFCEVENTTIME, + IFCEVENTTYPE: IFCEVENTTYPE, + IFCEXTENDEDMATERIALPROPERTIES: IFCEXTENDEDMATERIALPROPERTIES, + IFCEXTENDEDPROPERTIES: IFCEXTENDEDPROPERTIES, + IFCEXTERNALINFORMATION: IFCEXTERNALINFORMATION, + IFCEXTERNALLYDEFINEDHATCHSTYLE: IFCEXTERNALLYDEFINEDHATCHSTYLE, + IFCEXTERNALLYDEFINEDSURFACESTYLE: IFCEXTERNALLYDEFINEDSURFACESTYLE, + IFCEXTERNALLYDEFINEDSYMBOL: IFCEXTERNALLYDEFINEDSYMBOL, + IFCEXTERNALLYDEFINEDTEXTFONT: IFCEXTERNALLYDEFINEDTEXTFONT, + IFCEXTERNALREFERENCE: IFCEXTERNALREFERENCE, + IFCEXTERNALREFERENCERELATIONSHIP: IFCEXTERNALREFERENCERELATIONSHIP, + IFCEXTERNALSPATIALELEMENT: IFCEXTERNALSPATIALELEMENT, + IFCEXTERNALSPATIALSTRUCTUREELEMENT: IFCEXTERNALSPATIALSTRUCTUREELEMENT, + IFCEXTRUDEDAREASOLID: IFCEXTRUDEDAREASOLID, + IFCEXTRUDEDAREASOLIDTAPERED: IFCEXTRUDEDAREASOLIDTAPERED, + IFCFACE: IFCFACE, + IFCFACEBASEDSURFACEMODEL: IFCFACEBASEDSURFACEMODEL, + IFCFACEBOUND: IFCFACEBOUND, + IFCFACEOUTERBOUND: IFCFACEOUTERBOUND, + IFCFACESURFACE: IFCFACESURFACE, + IFCFACETEDBREP: IFCFACETEDBREP, + IFCFACETEDBREPWITHVOIDS: IFCFACETEDBREPWITHVOIDS, + IFCFACILITY: IFCFACILITY, + IFCFACILITYPART: IFCFACILITYPART, + IFCFACILITYPARTCOMMON: IFCFACILITYPARTCOMMON, + IFCFAILURECONNECTIONCONDITION: IFCFAILURECONNECTIONCONDITION, + IFCFAN: IFCFAN, + IFCFANTYPE: IFCFANTYPE, + IFCFASTENER: IFCFASTENER, + IFCFASTENERTYPE: IFCFASTENERTYPE, + IFCFEATUREELEMENT: IFCFEATUREELEMENT, + IFCFEATUREELEMENTADDITION: IFCFEATUREELEMENTADDITION, + IFCFEATUREELEMENTSUBTRACTION: IFCFEATUREELEMENTSUBTRACTION, + IFCFILLAREASTYLE: IFCFILLAREASTYLE, + IFCFILLAREASTYLEHATCHING: IFCFILLAREASTYLEHATCHING, + IFCFILLAREASTYLETILES: IFCFILLAREASTYLETILES, + IFCFILLAREASTYLETILESYMBOLWITHSTYLE: IFCFILLAREASTYLETILESYMBOLWITHSTYLE, + IFCFILTER: IFCFILTER, + IFCFILTERTYPE: IFCFILTERTYPE, + IFCFIRESUPPRESSIONTERMINAL: IFCFIRESUPPRESSIONTERMINAL, + IFCFIRESUPPRESSIONTERMINALTYPE: IFCFIRESUPPRESSIONTERMINALTYPE, + IFCFIXEDREFERENCESWEPTAREASOLID: IFCFIXEDREFERENCESWEPTAREASOLID, + IFCFLOWCONTROLLER: IFCFLOWCONTROLLER, + IFCFLOWCONTROLLERTYPE: IFCFLOWCONTROLLERTYPE, + IFCFLOWFITTING: IFCFLOWFITTING, + IFCFLOWFITTINGTYPE: IFCFLOWFITTINGTYPE, + IFCFLOWINSTRUMENT: IFCFLOWINSTRUMENT, + IFCFLOWINSTRUMENTTYPE: IFCFLOWINSTRUMENTTYPE, + IFCFLOWMETER: IFCFLOWMETER, + IFCFLOWMETERTYPE: IFCFLOWMETERTYPE, + IFCFLOWMOVINGDEVICE: IFCFLOWMOVINGDEVICE, + IFCFLOWMOVINGDEVICETYPE: IFCFLOWMOVINGDEVICETYPE, + IFCFLOWSEGMENT: IFCFLOWSEGMENT, + IFCFLOWSEGMENTTYPE: IFCFLOWSEGMENTTYPE, + IFCFLOWSTORAGEDEVICE: IFCFLOWSTORAGEDEVICE, + IFCFLOWSTORAGEDEVICETYPE: IFCFLOWSTORAGEDEVICETYPE, + IFCFLOWTERMINAL: IFCFLOWTERMINAL, + IFCFLOWTERMINALTYPE: IFCFLOWTERMINALTYPE, + IFCFLOWTREATMENTDEVICE: IFCFLOWTREATMENTDEVICE, + IFCFLOWTREATMENTDEVICETYPE: IFCFLOWTREATMENTDEVICETYPE, + IFCFLUIDFLOWPROPERTIES: IFCFLUIDFLOWPROPERTIES, + IFCFONTSTYLE: IFCFONTSTYLE, + IFCFONTVARIANT: IFCFONTVARIANT, + IFCFONTWEIGHT: IFCFONTWEIGHT, + IFCFOOTING: IFCFOOTING, + IFCFOOTINGTYPE: IFCFOOTINGTYPE, + IFCFORCEMEASURE: IFCFORCEMEASURE, + IFCFREQUENCYMEASURE: IFCFREQUENCYMEASURE, + IFCFUELPROPERTIES: IFCFUELPROPERTIES, + IFCFURNISHINGELEMENT: IFCFURNISHINGELEMENT, + IFCFURNISHINGELEMENTTYPE: IFCFURNISHINGELEMENTTYPE, + IFCFURNITURE: IFCFURNITURE, + IFCFURNITURESTANDARD: IFCFURNITURESTANDARD, + IFCFURNITURETYPE: IFCFURNITURETYPE, + IFCGASTERMINALTYPE: IFCGASTERMINALTYPE, + IFCGENERALMATERIALPROPERTIES: IFCGENERALMATERIALPROPERTIES, + IFCGENERALPROFILEPROPERTIES: IFCGENERALPROFILEPROPERTIES, + IFCGEOGRAPHICELEMENT: IFCGEOGRAPHICELEMENT, + IFCGEOGRAPHICELEMENTTYPE: IFCGEOGRAPHICELEMENTTYPE, + IFCGEOMETRICCURVESET: IFCGEOMETRICCURVESET, + IFCGEOMETRICREPRESENTATIONCONTEXT: IFCGEOMETRICREPRESENTATIONCONTEXT, + IFCGEOMETRICREPRESENTATIONITEM: IFCGEOMETRICREPRESENTATIONITEM, + IFCGEOMETRICREPRESENTATIONSUBCONTEXT: IFCGEOMETRICREPRESENTATIONSUBCONTEXT, + IFCGEOMETRICSET: IFCGEOMETRICSET, + IFCGEOMODEL: IFCGEOMODEL, + IFCGEOSLICE: IFCGEOSLICE, + IFCGEOTECHNICALASSEMBLY: IFCGEOTECHNICALASSEMBLY, + IFCGEOTECHNICALELEMENT: IFCGEOTECHNICALELEMENT, + IFCGEOTECHNICALSTRATUM: IFCGEOTECHNICALSTRATUM, + IFCGLOBALLYUNIQUEID: IFCGLOBALLYUNIQUEID, + IFCGRADIENTCURVE: IFCGRADIENTCURVE, + IFCGRID: IFCGRID, + IFCGRIDAXIS: IFCGRIDAXIS, + IFCGRIDPLACEMENT: IFCGRIDPLACEMENT, + IFCGROUP: IFCGROUP, + IFCHALFSPACESOLID: IFCHALFSPACESOLID, + IFCHEATEXCHANGER: IFCHEATEXCHANGER, + IFCHEATEXCHANGERTYPE: IFCHEATEXCHANGERTYPE, + IFCHEATFLUXDENSITYMEASURE: IFCHEATFLUXDENSITYMEASURE, + IFCHEATINGVALUEMEASURE: IFCHEATINGVALUEMEASURE, + IFCHOURINDAY: IFCHOURINDAY, + IFCHUMIDIFIER: IFCHUMIDIFIER, + IFCHUMIDIFIERTYPE: IFCHUMIDIFIERTYPE, + IFCHYGROSCOPICMATERIALPROPERTIES: IFCHYGROSCOPICMATERIALPROPERTIES, + IFCIDENTIFIER: IFCIDENTIFIER, + IFCILLUMINANCEMEASURE: IFCILLUMINANCEMEASURE, + IFCIMAGETEXTURE: IFCIMAGETEXTURE, + IFCIMPACTPROTECTIONDEVICE: IFCIMPACTPROTECTIONDEVICE, + IFCIMPACTPROTECTIONDEVICETYPE: IFCIMPACTPROTECTIONDEVICETYPE, + IFCINDEXEDCOLOURMAP: IFCINDEXEDCOLOURMAP, + IFCINDEXEDPOLYCURVE: IFCINDEXEDPOLYCURVE, + IFCINDEXEDPOLYGONALFACE: IFCINDEXEDPOLYGONALFACE, + IFCINDEXEDPOLYGONALFACEWITHVOIDS: IFCINDEXEDPOLYGONALFACEWITHVOIDS, + IFCINDEXEDPOLYGONALTEXTUREMAP: IFCINDEXEDPOLYGONALTEXTUREMAP, + IFCINDEXEDTEXTUREMAP: IFCINDEXEDTEXTUREMAP, + IFCINDEXEDTRIANGLETEXTUREMAP: IFCINDEXEDTRIANGLETEXTUREMAP, + IFCINDUCTANCEMEASURE: IFCINDUCTANCEMEASURE, + IFCINTEGER: IFCINTEGER, + IFCINTEGERCOUNTRATEMEASURE: IFCINTEGERCOUNTRATEMEASURE, + IFCINTERCEPTOR: IFCINTERCEPTOR, + IFCINTERCEPTORTYPE: IFCINTERCEPTORTYPE, + IFCINTERSECTIONCURVE: IFCINTERSECTIONCURVE, + IFCINVENTORY: IFCINVENTORY, + IFCIONCONCENTRATIONMEASURE: IFCIONCONCENTRATIONMEASURE, + IFCIRREGULARTIMESERIES: IFCIRREGULARTIMESERIES, + IFCIRREGULARTIMESERIESVALUE: IFCIRREGULARTIMESERIESVALUE, + IFCISHAPEPROFILEDEF: IFCISHAPEPROFILEDEF, + IFCISOTHERMALMOISTURECAPACITYMEASURE: IFCISOTHERMALMOISTURECAPACITYMEASURE, + IFCJUNCTIONBOX: IFCJUNCTIONBOX, + IFCJUNCTIONBOXTYPE: IFCJUNCTIONBOXTYPE, + IFCKERB: IFCKERB, + IFCKERBTYPE: IFCKERBTYPE, + IFCKINEMATICVISCOSITYMEASURE: IFCKINEMATICVISCOSITYMEASURE, + IFCLABEL: IFCLABEL, + IFCLABORRESOURCE: IFCLABORRESOURCE, + IFCLABORRESOURCETYPE: IFCLABORRESOURCETYPE, + IFCLAGTIME: IFCLAGTIME, + IFCLAMP: IFCLAMP, + IFCLAMPTYPE: IFCLAMPTYPE, + IFCLANGUAGEID: IFCLANGUAGEID, + IFCLENGTHMEASURE: IFCLENGTHMEASURE, + IFCLIBRARYINFORMATION: IFCLIBRARYINFORMATION, + IFCLIBRARYREFERENCE: IFCLIBRARYREFERENCE, + IFCLIGHTDISTRIBUTIONDATA: IFCLIGHTDISTRIBUTIONDATA, + IFCLIGHTFIXTURE: IFCLIGHTFIXTURE, + IFCLIGHTFIXTURETYPE: IFCLIGHTFIXTURETYPE, + IFCLIGHTINTENSITYDISTRIBUTION: IFCLIGHTINTENSITYDISTRIBUTION, + IFCLIGHTSOURCE: IFCLIGHTSOURCE, + IFCLIGHTSOURCEAMBIENT: IFCLIGHTSOURCEAMBIENT, + IFCLIGHTSOURCEDIRECTIONAL: IFCLIGHTSOURCEDIRECTIONAL, + IFCLIGHTSOURCEGONIOMETRIC: IFCLIGHTSOURCEGONIOMETRIC, + IFCLIGHTSOURCEPOSITIONAL: IFCLIGHTSOURCEPOSITIONAL, + IFCLIGHTSOURCESPOT: IFCLIGHTSOURCESPOT, + IFCLINE: IFCLINE, + IFCLINEARDIMENSION: IFCLINEARDIMENSION, + IFCLINEARELEMENT: IFCLINEARELEMENT, + IFCLINEARFORCEMEASURE: IFCLINEARFORCEMEASURE, + IFCLINEARMOMENTMEASURE: IFCLINEARMOMENTMEASURE, + IFCLINEARPLACEMENT: IFCLINEARPLACEMENT, + IFCLINEARPOSITIONINGELEMENT: IFCLINEARPOSITIONINGELEMENT, + IFCLINEARSTIFFNESSMEASURE: IFCLINEARSTIFFNESSMEASURE, + IFCLINEARVELOCITYMEASURE: IFCLINEARVELOCITYMEASURE, + IFCLINEINDEX: IFCLINEINDEX, + IFCLIQUIDTERMINAL: IFCLIQUIDTERMINAL, + IFCLIQUIDTERMINALTYPE: IFCLIQUIDTERMINALTYPE, + IFCLOCALPLACEMENT: IFCLOCALPLACEMENT, + IFCLOCALTIME: IFCLOCALTIME, + IFCLOGICAL: IFCLOGICAL, + IFCLOOP: IFCLOOP, + IFCLSHAPEPROFILEDEF: IFCLSHAPEPROFILEDEF, + IFCLUMINOUSFLUXMEASURE: IFCLUMINOUSFLUXMEASURE, + IFCLUMINOUSINTENSITYDISTRIBUTIONMEASURE: IFCLUMINOUSINTENSITYDISTRIBUTIONMEASURE, + IFCLUMINOUSINTENSITYMEASURE: IFCLUMINOUSINTENSITYMEASURE, + IFCMAGNETICFLUXDENSITYMEASURE: IFCMAGNETICFLUXDENSITYMEASURE, + IFCMAGNETICFLUXMEASURE: IFCMAGNETICFLUXMEASURE, + IFCMANIFOLDSOLIDBREP: IFCMANIFOLDSOLIDBREP, + IFCMAPCONVERSION: IFCMAPCONVERSION, + IFCMAPPEDITEM: IFCMAPPEDITEM, + IFCMARINEFACILITY: IFCMARINEFACILITY, + IFCMARINEPART: IFCMARINEPART, + IFCMASSDENSITYMEASURE: IFCMASSDENSITYMEASURE, + IFCMASSFLOWRATEMEASURE: IFCMASSFLOWRATEMEASURE, + IFCMASSMEASURE: IFCMASSMEASURE, + IFCMASSPERLENGTHMEASURE: IFCMASSPERLENGTHMEASURE, + IFCMATERIAL: IFCMATERIAL, + IFCMATERIALCLASSIFICATIONRELATIONSHIP: IFCMATERIALCLASSIFICATIONRELATIONSHIP, + IFCMATERIALCONSTITUENT: IFCMATERIALCONSTITUENT, + IFCMATERIALCONSTITUENTSET: IFCMATERIALCONSTITUENTSET, + IFCMATERIALDEFINITION: IFCMATERIALDEFINITION, + IFCMATERIALDEFINITIONREPRESENTATION: IFCMATERIALDEFINITIONREPRESENTATION, + IFCMATERIALLAYER: IFCMATERIALLAYER, + IFCMATERIALLAYERSET: IFCMATERIALLAYERSET, + IFCMATERIALLAYERSETUSAGE: IFCMATERIALLAYERSETUSAGE, + IFCMATERIALLAYERWITHOFFSETS: IFCMATERIALLAYERWITHOFFSETS, + IFCMATERIALLIST: IFCMATERIALLIST, + IFCMATERIALPROFILE: IFCMATERIALPROFILE, + IFCMATERIALPROFILESET: IFCMATERIALPROFILESET, + IFCMATERIALPROFILESETUSAGE: IFCMATERIALPROFILESETUSAGE, + IFCMATERIALPROFILESETUSAGETAPERING: IFCMATERIALPROFILESETUSAGETAPERING, + IFCMATERIALPROFILEWITHOFFSETS: IFCMATERIALPROFILEWITHOFFSETS, + IFCMATERIALPROPERTIES: IFCMATERIALPROPERTIES, + IFCMATERIALRELATIONSHIP: IFCMATERIALRELATIONSHIP, + IFCMATERIALUSAGEDEFINITION: IFCMATERIALUSAGEDEFINITION, + IFCMEASUREWITHUNIT: IFCMEASUREWITHUNIT, + IFCMECHANICALCONCRETEMATERIALPROPERTIES: IFCMECHANICALCONCRETEMATERIALPROPERTIES, + IFCMECHANICALFASTENER: IFCMECHANICALFASTENER, + IFCMECHANICALFASTENERTYPE: IFCMECHANICALFASTENERTYPE, + IFCMECHANICALMATERIALPROPERTIES: IFCMECHANICALMATERIALPROPERTIES, + IFCMECHANICALSTEELMATERIALPROPERTIES: IFCMECHANICALSTEELMATERIALPROPERTIES, + IFCMEDICALDEVICE: IFCMEDICALDEVICE, + IFCMEDICALDEVICETYPE: IFCMEDICALDEVICETYPE, + IFCMEMBER: IFCMEMBER, + IFCMEMBERSTANDARDCASE: IFCMEMBERSTANDARDCASE, + IFCMEMBERTYPE: IFCMEMBERTYPE, + IFCMETRIC: IFCMETRIC, + IFCMINUTEINHOUR: IFCMINUTEINHOUR, + IFCMIRROREDPROFILEDEF: IFCMIRROREDPROFILEDEF, + IFCMOBILETELECOMMUNICATIONSAPPLIANCE: IFCMOBILETELECOMMUNICATIONSAPPLIANCE, + IFCMOBILETELECOMMUNICATIONSAPPLIANCETYPE: IFCMOBILETELECOMMUNICATIONSAPPLIANCETYPE, + IFCMODULUSOFELASTICITYMEASURE: IFCMODULUSOFELASTICITYMEASURE, + IFCMODULUSOFLINEARSUBGRADEREACTIONMEASURE: IFCMODULUSOFLINEARSUBGRADEREACTIONMEASURE, + IFCMODULUSOFROTATIONALSUBGRADEREACTIONMEASURE: IFCMODULUSOFROTATIONALSUBGRADEREACTIONMEASURE, + IFCMODULUSOFSUBGRADEREACTIONMEASURE: IFCMODULUSOFSUBGRADEREACTIONMEASURE, + IFCMOISTUREDIFFUSIVITYMEASURE: IFCMOISTUREDIFFUSIVITYMEASURE, + IFCMOLECULARWEIGHTMEASURE: IFCMOLECULARWEIGHTMEASURE, + IFCMOMENTOFINERTIAMEASURE: IFCMOMENTOFINERTIAMEASURE, + IFCMONETARYMEASURE: IFCMONETARYMEASURE, + IFCMONETARYUNIT: IFCMONETARYUNIT, + IFCMONTHINYEARNUMBER: IFCMONTHINYEARNUMBER, + IFCMOORINGDEVICE: IFCMOORINGDEVICE, + IFCMOORINGDEVICETYPE: IFCMOORINGDEVICETYPE, + IFCMOTORCONNECTION: IFCMOTORCONNECTION, + IFCMOTORCONNECTIONTYPE: IFCMOTORCONNECTIONTYPE, + IFCMOVE: IFCMOVE, + IFCNAMEDUNIT: IFCNAMEDUNIT, + IFCNAVIGATIONELEMENT: IFCNAVIGATIONELEMENT, + IFCNAVIGATIONELEMENTTYPE: IFCNAVIGATIONELEMENTTYPE, + IFCNONNEGATIVELENGTHMEASURE: IFCNONNEGATIVELENGTHMEASURE, + IFCNORMALISEDRATIOMEASURE: IFCNORMALISEDRATIOMEASURE, + IFCNUMERICMEASURE: IFCNUMERICMEASURE, + IFCOBJECT: IFCOBJECT, + IFCOBJECTDEFINITION: IFCOBJECTDEFINITION, + IFCOBJECTIVE: IFCOBJECTIVE, + IFCOBJECTPLACEMENT: IFCOBJECTPLACEMENT, + IFCOCCUPANT: IFCOCCUPANT, + IFCOFFSETCURVE: IFCOFFSETCURVE, + IFCOFFSETCURVE2D: IFCOFFSETCURVE2D, + IFCOFFSETCURVE3D: IFCOFFSETCURVE3D, + IFCOFFSETCURVEBYDISTANCES: IFCOFFSETCURVEBYDISTANCES, + IFCONEDIRECTIONREPEATFACTOR: IFCONEDIRECTIONREPEATFACTOR, + IFCOPENCROSSPROFILEDEF: IFCOPENCROSSPROFILEDEF, + IFCOPENINGELEMENT: IFCOPENINGELEMENT, + IFCOPENINGSTANDARDCASE: IFCOPENINGSTANDARDCASE, + IFCOPENSHELL: IFCOPENSHELL, + IFCOPTICALMATERIALPROPERTIES: IFCOPTICALMATERIALPROPERTIES, + IFCORDERACTION: IFCORDERACTION, + IFCORGANIZATION: IFCORGANIZATION, + IFCORGANIZATIONRELATIONSHIP: IFCORGANIZATIONRELATIONSHIP, + IFCORIENTEDEDGE: IFCORIENTEDEDGE, + IFCOUTERBOUNDARYCURVE: IFCOUTERBOUNDARYCURVE, + IFCOUTLET: IFCOUTLET, + IFCOUTLETTYPE: IFCOUTLETTYPE, + IFCOWNERHISTORY: IFCOWNERHISTORY, + IFCPARAMETERIZEDPROFILEDEF: IFCPARAMETERIZEDPROFILEDEF, + IFCPARAMETERVALUE: IFCPARAMETERVALUE, + IFCPATH: IFCPATH, + IFCPAVEMENT: IFCPAVEMENT, + IFCPAVEMENTTYPE: IFCPAVEMENTTYPE, + IFCPCURVE: IFCPCURVE, + IFCPERFORMANCEHISTORY: IFCPERFORMANCEHISTORY, + IFCPERMEABLECOVERINGPROPERTIES: IFCPERMEABLECOVERINGPROPERTIES, + IFCPERMIT: IFCPERMIT, + IFCPERSON: IFCPERSON, + IFCPERSONANDORGANIZATION: IFCPERSONANDORGANIZATION, + IFCPHMEASURE: IFCPHMEASURE, + IFCPHYSICALCOMPLEXQUANTITY: IFCPHYSICALCOMPLEXQUANTITY, + IFCPHYSICALQUANTITY: IFCPHYSICALQUANTITY, + IFCPHYSICALSIMPLEQUANTITY: IFCPHYSICALSIMPLEQUANTITY, + IFCPILE: IFCPILE, + IFCPILETYPE: IFCPILETYPE, + IFCPIPEFITTING: IFCPIPEFITTING, + IFCPIPEFITTINGTYPE: IFCPIPEFITTINGTYPE, + IFCPIPESEGMENT: IFCPIPESEGMENT, + IFCPIPESEGMENTTYPE: IFCPIPESEGMENTTYPE, + IFCPIXELTEXTURE: IFCPIXELTEXTURE, + IFCPLACEMENT: IFCPLACEMENT, + IFCPLANARBOX: IFCPLANARBOX, + IFCPLANAREXTENT: IFCPLANAREXTENT, + IFCPLANARFORCEMEASURE: IFCPLANARFORCEMEASURE, + IFCPLANE: IFCPLANE, + IFCPLANEANGLEMEASURE: IFCPLANEANGLEMEASURE, + IFCPLATE: IFCPLATE, + IFCPLATESTANDARDCASE: IFCPLATESTANDARDCASE, + IFCPLATETYPE: IFCPLATETYPE, + IFCPOINT: IFCPOINT, + IFCPOINTBYDISTANCEEXPRESSION: IFCPOINTBYDISTANCEEXPRESSION, + IFCPOINTONCURVE: IFCPOINTONCURVE, + IFCPOINTONSURFACE: IFCPOINTONSURFACE, + IFCPOLYGONALBOUNDEDHALFSPACE: IFCPOLYGONALBOUNDEDHALFSPACE, + IFCPOLYGONALFACESET: IFCPOLYGONALFACESET, + IFCPOLYLINE: IFCPOLYLINE, + IFCPOLYLOOP: IFCPOLYLOOP, + IFCPOLYNOMIALCURVE: IFCPOLYNOMIALCURVE, + IFCPORT: IFCPORT, + IFCPOSITIONINGELEMENT: IFCPOSITIONINGELEMENT, + IFCPOSITIVEINTEGER: IFCPOSITIVEINTEGER, + IFCPOSITIVELENGTHMEASURE: IFCPOSITIVELENGTHMEASURE, + IFCPOSITIVEPLANEANGLEMEASURE: IFCPOSITIVEPLANEANGLEMEASURE, + IFCPOSITIVERATIOMEASURE: IFCPOSITIVERATIOMEASURE, + IFCPOSTALADDRESS: IFCPOSTALADDRESS, + IFCPOWERMEASURE: IFCPOWERMEASURE, + IFCPREDEFINEDCOLOUR: IFCPREDEFINEDCOLOUR, + IFCPREDEFINEDCURVEFONT: IFCPREDEFINEDCURVEFONT, + IFCPREDEFINEDDIMENSIONSYMBOL: IFCPREDEFINEDDIMENSIONSYMBOL, + IFCPREDEFINEDITEM: IFCPREDEFINEDITEM, + IFCPREDEFINEDPOINTMARKERSYMBOL: IFCPREDEFINEDPOINTMARKERSYMBOL, + IFCPREDEFINEDPROPERTIES: IFCPREDEFINEDPROPERTIES, + IFCPREDEFINEDPROPERTYSET: IFCPREDEFINEDPROPERTYSET, + IFCPREDEFINEDSYMBOL: IFCPREDEFINEDSYMBOL, + IFCPREDEFINEDTERMINATORSYMBOL: IFCPREDEFINEDTERMINATORSYMBOL, + IFCPREDEFINEDTEXTFONT: IFCPREDEFINEDTEXTFONT, + IFCPRESENTABLETEXT: IFCPRESENTABLETEXT, + IFCPRESENTATIONITEM: IFCPRESENTATIONITEM, + IFCPRESENTATIONLAYERASSIGNMENT: IFCPRESENTATIONLAYERASSIGNMENT, + IFCPRESENTATIONLAYERWITHSTYLE: IFCPRESENTATIONLAYERWITHSTYLE, + IFCPRESENTATIONSTYLE: IFCPRESENTATIONSTYLE, + IFCPRESENTATIONSTYLEASSIGNMENT: IFCPRESENTATIONSTYLEASSIGNMENT, + IFCPRESSUREMEASURE: IFCPRESSUREMEASURE, + IFCPROCEDURE: IFCPROCEDURE, + IFCPROCEDURETYPE: IFCPROCEDURETYPE, + IFCPROCESS: IFCPROCESS, + IFCPRODUCT: IFCPRODUCT, + IFCPRODUCTDEFINITIONSHAPE: IFCPRODUCTDEFINITIONSHAPE, + IFCPRODUCTREPRESENTATION: IFCPRODUCTREPRESENTATION, + IFCPRODUCTSOFCOMBUSTIONPROPERTIES: IFCPRODUCTSOFCOMBUSTIONPROPERTIES, + IFCPROFILEDEF: IFCPROFILEDEF, + IFCPROFILEPROPERTIES: IFCPROFILEPROPERTIES, + IFCPROJECT: IFCPROJECT, + IFCPROJECTEDCRS: IFCPROJECTEDCRS, + IFCPROJECTIONCURVE: IFCPROJECTIONCURVE, + IFCPROJECTIONELEMENT: IFCPROJECTIONELEMENT, + IFCPROJECTLIBRARY: IFCPROJECTLIBRARY, + IFCPROJECTORDER: IFCPROJECTORDER, + IFCPROJECTORDERRECORD: IFCPROJECTORDERRECORD, + IFCPROPERTY: IFCPROPERTY, + IFCPROPERTYABSTRACTION: IFCPROPERTYABSTRACTION, + IFCPROPERTYBOUNDEDVALUE: IFCPROPERTYBOUNDEDVALUE, + IFCPROPERTYCONSTRAINTRELATIONSHIP: IFCPROPERTYCONSTRAINTRELATIONSHIP, + IFCPROPERTYDEFINITION: IFCPROPERTYDEFINITION, + IFCPROPERTYDEPENDENCYRELATIONSHIP: IFCPROPERTYDEPENDENCYRELATIONSHIP, + IFCPROPERTYENUMERATEDVALUE: IFCPROPERTYENUMERATEDVALUE, + IFCPROPERTYENUMERATION: IFCPROPERTYENUMERATION, + IFCPROPERTYLISTVALUE: IFCPROPERTYLISTVALUE, + IFCPROPERTYREFERENCEVALUE: IFCPROPERTYREFERENCEVALUE, + IFCPROPERTYSET: IFCPROPERTYSET, + IFCPROPERTYSETDEFINITION: IFCPROPERTYSETDEFINITION, + IFCPROPERTYSETDEFINITIONSET: IFCPROPERTYSETDEFINITIONSET, + IFCPROPERTYSETTEMPLATE: IFCPROPERTYSETTEMPLATE, + IFCPROPERTYSINGLEVALUE: IFCPROPERTYSINGLEVALUE, + IFCPROPERTYTABLEVALUE: IFCPROPERTYTABLEVALUE, + IFCPROPERTYTEMPLATE: IFCPROPERTYTEMPLATE, + IFCPROPERTYTEMPLATEDEFINITION: IFCPROPERTYTEMPLATEDEFINITION, + IFCPROTECTIVEDEVICE: IFCPROTECTIVEDEVICE, + IFCPROTECTIVEDEVICETRIPPINGUNIT: IFCPROTECTIVEDEVICETRIPPINGUNIT, + IFCPROTECTIVEDEVICETRIPPINGUNITTYPE: IFCPROTECTIVEDEVICETRIPPINGUNITTYPE, + IFCPROTECTIVEDEVICETYPE: IFCPROTECTIVEDEVICETYPE, + IFCPROXY: IFCPROXY, + IFCPUMP: IFCPUMP, + IFCPUMPTYPE: IFCPUMPTYPE, + IFCQUANTITYAREA: IFCQUANTITYAREA, + IFCQUANTITYCOUNT: IFCQUANTITYCOUNT, + IFCQUANTITYLENGTH: IFCQUANTITYLENGTH, + IFCQUANTITYNUMBER: IFCQUANTITYNUMBER, + IFCQUANTITYSET: IFCQUANTITYSET, + IFCQUANTITYTIME: IFCQUANTITYTIME, + IFCQUANTITYVOLUME: IFCQUANTITYVOLUME, + IFCQUANTITYWEIGHT: IFCQUANTITYWEIGHT, + IFCRADIOACTIVITYMEASURE: IFCRADIOACTIVITYMEASURE, + IFCRADIUSDIMENSION: IFCRADIUSDIMENSION, + IFCRAIL: IFCRAIL, + IFCRAILING: IFCRAILING, + IFCRAILINGTYPE: IFCRAILINGTYPE, + IFCRAILTYPE: IFCRAILTYPE, + IFCRAILWAY: IFCRAILWAY, + IFCRAILWAYPART: IFCRAILWAYPART, + IFCRAMP: IFCRAMP, + IFCRAMPFLIGHT: IFCRAMPFLIGHT, + IFCRAMPFLIGHTTYPE: IFCRAMPFLIGHTTYPE, + IFCRAMPTYPE: IFCRAMPTYPE, + IFCRATIOMEASURE: IFCRATIOMEASURE, + IFCRATIONALBEZIERCURVE: IFCRATIONALBEZIERCURVE, + IFCRATIONALBSPLINECURVEWITHKNOTS: IFCRATIONALBSPLINECURVEWITHKNOTS, + IFCRATIONALBSPLINESURFACEWITHKNOTS: IFCRATIONALBSPLINESURFACEWITHKNOTS, + IFCREAL: IFCREAL, + IFCRECTANGLEHOLLOWPROFILEDEF: IFCRECTANGLEHOLLOWPROFILEDEF, + IFCRECTANGLEPROFILEDEF: IFCRECTANGLEPROFILEDEF, + IFCRECTANGULARPYRAMID: IFCRECTANGULARPYRAMID, + IFCRECTANGULARTRIMMEDSURFACE: IFCRECTANGULARTRIMMEDSURFACE, + IFCRECURRENCEPATTERN: IFCRECURRENCEPATTERN, + IFCREFERENCE: IFCREFERENCE, + IFCREFERENCESVALUEDOCUMENT: IFCREFERENCESVALUEDOCUMENT, + IFCREFERENT: IFCREFERENT, + IFCREGULARTIMESERIES: IFCREGULARTIMESERIES, + IFCREINFORCEDSOIL: IFCREINFORCEDSOIL, + IFCREINFORCEMENTBARPROPERTIES: IFCREINFORCEMENTBARPROPERTIES, + IFCREINFORCEMENTDEFINITIONPROPERTIES: IFCREINFORCEMENTDEFINITIONPROPERTIES, + IFCREINFORCINGBAR: IFCREINFORCINGBAR, + IFCREINFORCINGBARTYPE: IFCREINFORCINGBARTYPE, + IFCREINFORCINGELEMENT: IFCREINFORCINGELEMENT, + IFCREINFORCINGELEMENTTYPE: IFCREINFORCINGELEMENTTYPE, + IFCREINFORCINGMESH: IFCREINFORCINGMESH, + IFCREINFORCINGMESHTYPE: IFCREINFORCINGMESHTYPE, + IFCRELADHERESTOELEMENT: IFCRELADHERESTOELEMENT, + IFCRELAGGREGATES: IFCRELAGGREGATES, + IFCRELASSIGNS: IFCRELASSIGNS, + IFCRELASSIGNSTASKS: IFCRELASSIGNSTASKS, + IFCRELASSIGNSTOACTOR: IFCRELASSIGNSTOACTOR, + IFCRELASSIGNSTOCONTROL: IFCRELASSIGNSTOCONTROL, + IFCRELASSIGNSTOGROUP: IFCRELASSIGNSTOGROUP, + IFCRELASSIGNSTOGROUPBYFACTOR: IFCRELASSIGNSTOGROUPBYFACTOR, + IFCRELASSIGNSTOPROCESS: IFCRELASSIGNSTOPROCESS, + IFCRELASSIGNSTOPRODUCT: IFCRELASSIGNSTOPRODUCT, + IFCRELASSIGNSTOPROJECTORDER: IFCRELASSIGNSTOPROJECTORDER, + IFCRELASSIGNSTORESOURCE: IFCRELASSIGNSTORESOURCE, + IFCRELASSOCIATES: IFCRELASSOCIATES, + IFCRELASSOCIATESAPPLIEDVALUE: IFCRELASSOCIATESAPPLIEDVALUE, + IFCRELASSOCIATESAPPROVAL: IFCRELASSOCIATESAPPROVAL, + IFCRELASSOCIATESCLASSIFICATION: IFCRELASSOCIATESCLASSIFICATION, + IFCRELASSOCIATESCONSTRAINT: IFCRELASSOCIATESCONSTRAINT, + IFCRELASSOCIATESDOCUMENT: IFCRELASSOCIATESDOCUMENT, + IFCRELASSOCIATESLIBRARY: IFCRELASSOCIATESLIBRARY, + IFCRELASSOCIATESMATERIAL: IFCRELASSOCIATESMATERIAL, + IFCRELASSOCIATESPROFILEDEF: IFCRELASSOCIATESPROFILEDEF, + IFCRELASSOCIATESPROFILEPROPERTIES: IFCRELASSOCIATESPROFILEPROPERTIES, + IFCRELATIONSHIP: IFCRELATIONSHIP, + IFCRELAXATION: IFCRELAXATION, + IFCRELCONNECTS: IFCRELCONNECTS, + IFCRELCONNECTSELEMENTS: IFCRELCONNECTSELEMENTS, + IFCRELCONNECTSPATHELEMENTS: IFCRELCONNECTSPATHELEMENTS, + IFCRELCONNECTSPORTS: IFCRELCONNECTSPORTS, + IFCRELCONNECTSPORTTOELEMENT: IFCRELCONNECTSPORTTOELEMENT, + IFCRELCONNECTSSTRUCTURALACTIVITY: IFCRELCONNECTSSTRUCTURALACTIVITY, + IFCRELCONNECTSSTRUCTURALELEMENT: IFCRELCONNECTSSTRUCTURALELEMENT, + IFCRELCONNECTSSTRUCTURALMEMBER: IFCRELCONNECTSSTRUCTURALMEMBER, + IFCRELCONNECTSWITHECCENTRICITY: IFCRELCONNECTSWITHECCENTRICITY, + IFCRELCONNECTSWITHREALIZINGELEMENTS: IFCRELCONNECTSWITHREALIZINGELEMENTS, + IFCRELCONTAINEDINSPATIALSTRUCTURE: IFCRELCONTAINEDINSPATIALSTRUCTURE, + IFCRELCOVERSBLDGELEMENTS: IFCRELCOVERSBLDGELEMENTS, + IFCRELCOVERSSPACES: IFCRELCOVERSSPACES, + IFCRELDECLARES: IFCRELDECLARES, + IFCRELDECOMPOSES: IFCRELDECOMPOSES, + IFCRELDEFINES: IFCRELDEFINES, + IFCRELDEFINESBYOBJECT: IFCRELDEFINESBYOBJECT, + IFCRELDEFINESBYPROPERTIES: IFCRELDEFINESBYPROPERTIES, + IFCRELDEFINESBYTEMPLATE: IFCRELDEFINESBYTEMPLATE, + IFCRELDEFINESBYTYPE: IFCRELDEFINESBYTYPE, + IFCRELFILLSELEMENT: IFCRELFILLSELEMENT, + IFCRELFLOWCONTROLELEMENTS: IFCRELFLOWCONTROLELEMENTS, + IFCRELINTERACTIONREQUIREMENTS: IFCRELINTERACTIONREQUIREMENTS, + IFCRELINTERFERESELEMENTS: IFCRELINTERFERESELEMENTS, + IFCRELNESTS: IFCRELNESTS, + IFCRELOCCUPIESSPACES: IFCRELOCCUPIESSPACES, + IFCRELOVERRIDESPROPERTIES: IFCRELOVERRIDESPROPERTIES, + IFCRELPOSITIONS: IFCRELPOSITIONS, + IFCRELPROJECTSELEMENT: IFCRELPROJECTSELEMENT, + IFCRELREFERENCEDINSPATIALSTRUCTURE: IFCRELREFERENCEDINSPATIALSTRUCTURE, + IFCRELSCHEDULESCOSTITEMS: IFCRELSCHEDULESCOSTITEMS, + IFCRELSEQUENCE: IFCRELSEQUENCE, + IFCRELSERVICESBUILDINGS: IFCRELSERVICESBUILDINGS, + IFCRELSPACEBOUNDARY: IFCRELSPACEBOUNDARY, + IFCRELSPACEBOUNDARY1STLEVEL: IFCRELSPACEBOUNDARY1STLEVEL, + IFCRELSPACEBOUNDARY2NDLEVEL: IFCRELSPACEBOUNDARY2NDLEVEL, + IFCRELVOIDSELEMENT: IFCRELVOIDSELEMENT, + IFCREPARAMETRISEDCOMPOSITECURVESEGMENT: IFCREPARAMETRISEDCOMPOSITECURVESEGMENT, + IFCREPRESENTATION: IFCREPRESENTATION, + IFCREPRESENTATIONCONTEXT: IFCREPRESENTATIONCONTEXT, + IFCREPRESENTATIONITEM: IFCREPRESENTATIONITEM, + IFCREPRESENTATIONMAP: IFCREPRESENTATIONMAP, + IFCRESOURCE: IFCRESOURCE, + IFCRESOURCEAPPROVALRELATIONSHIP: IFCRESOURCEAPPROVALRELATIONSHIP, + IFCRESOURCECONSTRAINTRELATIONSHIP: IFCRESOURCECONSTRAINTRELATIONSHIP, + IFCRESOURCELEVELRELATIONSHIP: IFCRESOURCELEVELRELATIONSHIP, + IFCRESOURCETIME: IFCRESOURCETIME, + IFCREVOLVEDAREASOLID: IFCREVOLVEDAREASOLID, + IFCREVOLVEDAREASOLIDTAPERED: IFCREVOLVEDAREASOLIDTAPERED, + IFCRIBPLATEPROFILEPROPERTIES: IFCRIBPLATEPROFILEPROPERTIES, + IFCRIGHTCIRCULARCONE: IFCRIGHTCIRCULARCONE, + IFCRIGHTCIRCULARCYLINDER: IFCRIGHTCIRCULARCYLINDER, + IFCROAD: IFCROAD, + IFCROADPART: IFCROADPART, + IFCROOF: IFCROOF, + IFCROOFTYPE: IFCROOFTYPE, + IFCROOT: IFCROOT, + IFCROTATIONALFREQUENCYMEASURE: IFCROTATIONALFREQUENCYMEASURE, + IFCROTATIONALMASSMEASURE: IFCROTATIONALMASSMEASURE, + IFCROTATIONALSTIFFNESSMEASURE: IFCROTATIONALSTIFFNESSMEASURE, + IFCROUNDEDEDGEFEATURE: IFCROUNDEDEDGEFEATURE, + IFCROUNDEDRECTANGLEPROFILEDEF: IFCROUNDEDRECTANGLEPROFILEDEF, + IFCSANITARYTERMINAL: IFCSANITARYTERMINAL, + IFCSANITARYTERMINALTYPE: IFCSANITARYTERMINALTYPE, + IFCSCHEDULETIMECONTROL: IFCSCHEDULETIMECONTROL, + IFCSCHEDULINGTIME: IFCSCHEDULINGTIME, + IFCSEAMCURVE: IFCSEAMCURVE, + IFCSECONDINMINUTE: IFCSECONDINMINUTE, + IFCSECONDORDERPOLYNOMIALSPIRAL: IFCSECONDORDERPOLYNOMIALSPIRAL, + IFCSECTIONALAREAINTEGRALMEASURE: IFCSECTIONALAREAINTEGRALMEASURE, + IFCSECTIONEDSOLID: IFCSECTIONEDSOLID, + IFCSECTIONEDSOLIDHORIZONTAL: IFCSECTIONEDSOLIDHORIZONTAL, + IFCSECTIONEDSPINE: IFCSECTIONEDSPINE, + IFCSECTIONEDSURFACE: IFCSECTIONEDSURFACE, + IFCSECTIONMODULUSMEASURE: IFCSECTIONMODULUSMEASURE, + IFCSECTIONPROPERTIES: IFCSECTIONPROPERTIES, + IFCSECTIONREINFORCEMENTPROPERTIES: IFCSECTIONREINFORCEMENTPROPERTIES, + IFCSEGMENT: IFCSEGMENT, + IFCSEGMENTEDREFERENCECURVE: IFCSEGMENTEDREFERENCECURVE, + IFCSENSOR: IFCSENSOR, + IFCSENSORTYPE: IFCSENSORTYPE, + IFCSERVICELIFE: IFCSERVICELIFE, + IFCSERVICELIFEFACTOR: IFCSERVICELIFEFACTOR, + IFCSEVENTHORDERPOLYNOMIALSPIRAL: IFCSEVENTHORDERPOLYNOMIALSPIRAL, + IFCSHADINGDEVICE: IFCSHADINGDEVICE, + IFCSHADINGDEVICETYPE: IFCSHADINGDEVICETYPE, + IFCSHAPEASPECT: IFCSHAPEASPECT, + IFCSHAPEMODEL: IFCSHAPEMODEL, + IFCSHAPEREPRESENTATION: IFCSHAPEREPRESENTATION, + IFCSHEARMODULUSMEASURE: IFCSHEARMODULUSMEASURE, + IFCSHELLBASEDSURFACEMODEL: IFCSHELLBASEDSURFACEMODEL, + IFCSIGN: IFCSIGN, + IFCSIGNAL: IFCSIGNAL, + IFCSIGNALTYPE: IFCSIGNALTYPE, + IFCSIGNTYPE: IFCSIGNTYPE, + IFCSIMPLEPROPERTY: IFCSIMPLEPROPERTY, + IFCSIMPLEPROPERTYTEMPLATE: IFCSIMPLEPROPERTYTEMPLATE, + IFCSINESPIRAL: IFCSINESPIRAL, + IFCSITE: IFCSITE, + IFCSIUNIT: IFCSIUNIT, + IFCSLAB: IFCSLAB, + IFCSLABELEMENTEDCASE: IFCSLABELEMENTEDCASE, + IFCSLABSTANDARDCASE: IFCSLABSTANDARDCASE, + IFCSLABTYPE: IFCSLABTYPE, + IFCSLIPPAGECONNECTIONCONDITION: IFCSLIPPAGECONNECTIONCONDITION, + IFCSOLARDEVICE: IFCSOLARDEVICE, + IFCSOLARDEVICETYPE: IFCSOLARDEVICETYPE, + IFCSOLIDANGLEMEASURE: IFCSOLIDANGLEMEASURE, + IFCSOLIDMODEL: IFCSOLIDMODEL, + IFCSOUNDPOWERLEVELMEASURE: IFCSOUNDPOWERLEVELMEASURE, + IFCSOUNDPOWERMEASURE: IFCSOUNDPOWERMEASURE, + IFCSOUNDPRESSURELEVELMEASURE: IFCSOUNDPRESSURELEVELMEASURE, + IFCSOUNDPRESSUREMEASURE: IFCSOUNDPRESSUREMEASURE, + IFCSOUNDPROPERTIES: IFCSOUNDPROPERTIES, + IFCSOUNDVALUE: IFCSOUNDVALUE, + IFCSPACE: IFCSPACE, + IFCSPACEHEATER: IFCSPACEHEATER, + IFCSPACEHEATERTYPE: IFCSPACEHEATERTYPE, + IFCSPACEPROGRAM: IFCSPACEPROGRAM, + IFCSPACETHERMALLOADPROPERTIES: IFCSPACETHERMALLOADPROPERTIES, + IFCSPACETYPE: IFCSPACETYPE, + IFCSPATIALELEMENT: IFCSPATIALELEMENT, + IFCSPATIALELEMENTTYPE: IFCSPATIALELEMENTTYPE, + IFCSPATIALSTRUCTUREELEMENT: IFCSPATIALSTRUCTUREELEMENT, + IFCSPATIALSTRUCTUREELEMENTTYPE: IFCSPATIALSTRUCTUREELEMENTTYPE, + IFCSPATIALZONE: IFCSPATIALZONE, + IFCSPATIALZONETYPE: IFCSPATIALZONETYPE, + IFCSPECIFICHEATCAPACITYMEASURE: IFCSPECIFICHEATCAPACITYMEASURE, + IFCSPECULAREXPONENT: IFCSPECULAREXPONENT, + IFCSPECULARROUGHNESS: IFCSPECULARROUGHNESS, + IFCSPHERE: IFCSPHERE, + IFCSPHERICALSURFACE: IFCSPHERICALSURFACE, + IFCSPIRAL: IFCSPIRAL, + IFCSTACKTERMINAL: IFCSTACKTERMINAL, + IFCSTACKTERMINALTYPE: IFCSTACKTERMINALTYPE, + IFCSTAIR: IFCSTAIR, + IFCSTAIRFLIGHT: IFCSTAIRFLIGHT, + IFCSTAIRFLIGHTTYPE: IFCSTAIRFLIGHTTYPE, + IFCSTAIRTYPE: IFCSTAIRTYPE, + IFCSTRUCTURALACTION: IFCSTRUCTURALACTION, + IFCSTRUCTURALACTIVITY: IFCSTRUCTURALACTIVITY, + IFCSTRUCTURALANALYSISMODEL: IFCSTRUCTURALANALYSISMODEL, + IFCSTRUCTURALCONNECTION: IFCSTRUCTURALCONNECTION, + IFCSTRUCTURALCONNECTIONCONDITION: IFCSTRUCTURALCONNECTIONCONDITION, + IFCSTRUCTURALCURVEACTION: IFCSTRUCTURALCURVEACTION, + IFCSTRUCTURALCURVECONNECTION: IFCSTRUCTURALCURVECONNECTION, + IFCSTRUCTURALCURVEMEMBER: IFCSTRUCTURALCURVEMEMBER, + IFCSTRUCTURALCURVEMEMBERVARYING: IFCSTRUCTURALCURVEMEMBERVARYING, + IFCSTRUCTURALCURVEREACTION: IFCSTRUCTURALCURVEREACTION, + IFCSTRUCTURALITEM: IFCSTRUCTURALITEM, + IFCSTRUCTURALLINEARACTION: IFCSTRUCTURALLINEARACTION, + IFCSTRUCTURALLINEARACTIONVARYING: IFCSTRUCTURALLINEARACTIONVARYING, + IFCSTRUCTURALLOAD: IFCSTRUCTURALLOAD, + IFCSTRUCTURALLOADCASE: IFCSTRUCTURALLOADCASE, + IFCSTRUCTURALLOADCONFIGURATION: IFCSTRUCTURALLOADCONFIGURATION, + IFCSTRUCTURALLOADGROUP: IFCSTRUCTURALLOADGROUP, + IFCSTRUCTURALLOADLINEARFORCE: IFCSTRUCTURALLOADLINEARFORCE, + IFCSTRUCTURALLOADORRESULT: IFCSTRUCTURALLOADORRESULT, + IFCSTRUCTURALLOADPLANARFORCE: IFCSTRUCTURALLOADPLANARFORCE, + IFCSTRUCTURALLOADSINGLEDISPLACEMENT: IFCSTRUCTURALLOADSINGLEDISPLACEMENT, + IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION: IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION, + IFCSTRUCTURALLOADSINGLEFORCE: IFCSTRUCTURALLOADSINGLEFORCE, + IFCSTRUCTURALLOADSINGLEFORCEWARPING: IFCSTRUCTURALLOADSINGLEFORCEWARPING, + IFCSTRUCTURALLOADSTATIC: IFCSTRUCTURALLOADSTATIC, + IFCSTRUCTURALLOADTEMPERATURE: IFCSTRUCTURALLOADTEMPERATURE, + IFCSTRUCTURALMEMBER: IFCSTRUCTURALMEMBER, + IFCSTRUCTURALPLANARACTION: IFCSTRUCTURALPLANARACTION, + IFCSTRUCTURALPLANARACTIONVARYING: IFCSTRUCTURALPLANARACTIONVARYING, + IFCSTRUCTURALPOINTACTION: IFCSTRUCTURALPOINTACTION, + IFCSTRUCTURALPOINTCONNECTION: IFCSTRUCTURALPOINTCONNECTION, + IFCSTRUCTURALPOINTREACTION: IFCSTRUCTURALPOINTREACTION, + IFCSTRUCTURALPROFILEPROPERTIES: IFCSTRUCTURALPROFILEPROPERTIES, + IFCSTRUCTURALREACTION: IFCSTRUCTURALREACTION, + IFCSTRUCTURALRESULTGROUP: IFCSTRUCTURALRESULTGROUP, + IFCSTRUCTURALSTEELPROFILEPROPERTIES: IFCSTRUCTURALSTEELPROFILEPROPERTIES, + IFCSTRUCTURALSURFACEACTION: IFCSTRUCTURALSURFACEACTION, + IFCSTRUCTURALSURFACECONNECTION: IFCSTRUCTURALSURFACECONNECTION, + IFCSTRUCTURALSURFACEMEMBER: IFCSTRUCTURALSURFACEMEMBER, + IFCSTRUCTURALSURFACEMEMBERVARYING: IFCSTRUCTURALSURFACEMEMBERVARYING, + IFCSTRUCTURALSURFACEREACTION: IFCSTRUCTURALSURFACEREACTION, + IFCSTRUCTUREDDIMENSIONCALLOUT: IFCSTRUCTUREDDIMENSIONCALLOUT, + IFCSTYLEDITEM: IFCSTYLEDITEM, + IFCSTYLEDREPRESENTATION: IFCSTYLEDREPRESENTATION, + IFCSTYLEMODEL: IFCSTYLEMODEL, + IFCSUBCONTRACTRESOURCE: IFCSUBCONTRACTRESOURCE, + IFCSUBCONTRACTRESOURCETYPE: IFCSUBCONTRACTRESOURCETYPE, + IFCSUBEDGE: IFCSUBEDGE, + IFCSURFACE: IFCSURFACE, + IFCSURFACECURVE: IFCSURFACECURVE, + IFCSURFACECURVESWEPTAREASOLID: IFCSURFACECURVESWEPTAREASOLID, + IFCSURFACEFEATURE: IFCSURFACEFEATURE, + IFCSURFACEOFLINEAREXTRUSION: IFCSURFACEOFLINEAREXTRUSION, + IFCSURFACEOFREVOLUTION: IFCSURFACEOFREVOLUTION, + IFCSURFACEREINFORCEMENTAREA: IFCSURFACEREINFORCEMENTAREA, + IFCSURFACESTYLE: IFCSURFACESTYLE, + IFCSURFACESTYLELIGHTING: IFCSURFACESTYLELIGHTING, + IFCSURFACESTYLEREFRACTION: IFCSURFACESTYLEREFRACTION, + IFCSURFACESTYLERENDERING: IFCSURFACESTYLERENDERING, + IFCSURFACESTYLESHADING: IFCSURFACESTYLESHADING, + IFCSURFACESTYLEWITHTEXTURES: IFCSURFACESTYLEWITHTEXTURES, + IFCSURFACETEXTURE: IFCSURFACETEXTURE, + IFCSWEPTAREASOLID: IFCSWEPTAREASOLID, + IFCSWEPTDISKSOLID: IFCSWEPTDISKSOLID, + IFCSWEPTDISKSOLIDPOLYGONAL: IFCSWEPTDISKSOLIDPOLYGONAL, + IFCSWEPTSURFACE: IFCSWEPTSURFACE, + IFCSWITCHINGDEVICE: IFCSWITCHINGDEVICE, + IFCSWITCHINGDEVICETYPE: IFCSWITCHINGDEVICETYPE, + IFCSYMBOLSTYLE: IFCSYMBOLSTYLE, + IFCSYSTEM: IFCSYSTEM, + IFCSYSTEMFURNITUREELEMENT: IFCSYSTEMFURNITUREELEMENT, + IFCSYSTEMFURNITUREELEMENTTYPE: IFCSYSTEMFURNITUREELEMENTTYPE, + IFCTABLE: IFCTABLE, + IFCTABLECOLUMN: IFCTABLECOLUMN, + IFCTABLEROW: IFCTABLEROW, + IFCTANK: IFCTANK, + IFCTANKTYPE: IFCTANKTYPE, + IFCTASK: IFCTASK, + IFCTASKTIME: IFCTASKTIME, + IFCTASKTIMERECURRING: IFCTASKTIMERECURRING, + IFCTASKTYPE: IFCTASKTYPE, + IFCTELECOMADDRESS: IFCTELECOMADDRESS, + IFCTEMPERATUREGRADIENTMEASURE: IFCTEMPERATUREGRADIENTMEASURE, + IFCTEMPERATURERATEOFCHANGEMEASURE: IFCTEMPERATURERATEOFCHANGEMEASURE, + IFCTENDON: IFCTENDON, + IFCTENDONANCHOR: IFCTENDONANCHOR, + IFCTENDONANCHORTYPE: IFCTENDONANCHORTYPE, + IFCTENDONCONDUIT: IFCTENDONCONDUIT, + IFCTENDONCONDUITTYPE: IFCTENDONCONDUITTYPE, + IFCTENDONTYPE: IFCTENDONTYPE, + IFCTERMINATORSYMBOL: IFCTERMINATORSYMBOL, + IFCTESSELLATEDFACESET: IFCTESSELLATEDFACESET, + IFCTESSELLATEDITEM: IFCTESSELLATEDITEM, + IFCTEXT: IFCTEXT, + IFCTEXTALIGNMENT: IFCTEXTALIGNMENT, + IFCTEXTDECORATION: IFCTEXTDECORATION, + IFCTEXTFONTNAME: IFCTEXTFONTNAME, + IFCTEXTLITERAL: IFCTEXTLITERAL, + IFCTEXTLITERALWITHEXTENT: IFCTEXTLITERALWITHEXTENT, + IFCTEXTSTYLE: IFCTEXTSTYLE, + IFCTEXTSTYLEFONTMODEL: IFCTEXTSTYLEFONTMODEL, + IFCTEXTSTYLEFORDEFINEDFONT: IFCTEXTSTYLEFORDEFINEDFONT, + IFCTEXTSTYLETEXTMODEL: IFCTEXTSTYLETEXTMODEL, + IFCTEXTSTYLEWITHBOXCHARACTERISTICS: IFCTEXTSTYLEWITHBOXCHARACTERISTICS, + IFCTEXTTRANSFORMATION: IFCTEXTTRANSFORMATION, + IFCTEXTURECOORDINATE: IFCTEXTURECOORDINATE, + IFCTEXTURECOORDINATEGENERATOR: IFCTEXTURECOORDINATEGENERATOR, + IFCTEXTURECOORDINATEINDICES: IFCTEXTURECOORDINATEINDICES, + IFCTEXTURECOORDINATEINDICESWITHVOIDS: IFCTEXTURECOORDINATEINDICESWITHVOIDS, + IFCTEXTUREMAP: IFCTEXTUREMAP, + IFCTEXTUREVERTEX: IFCTEXTUREVERTEX, + IFCTEXTUREVERTEXLIST: IFCTEXTUREVERTEXLIST, + IFCTHERMALADMITTANCEMEASURE: IFCTHERMALADMITTANCEMEASURE, + IFCTHERMALCONDUCTIVITYMEASURE: IFCTHERMALCONDUCTIVITYMEASURE, + IFCTHERMALEXPANSIONCOEFFICIENTMEASURE: IFCTHERMALEXPANSIONCOEFFICIENTMEASURE, + IFCTHERMALMATERIALPROPERTIES: IFCTHERMALMATERIALPROPERTIES, + IFCTHERMALRESISTANCEMEASURE: IFCTHERMALRESISTANCEMEASURE, + IFCTHERMALTRANSMITTANCEMEASURE: IFCTHERMALTRANSMITTANCEMEASURE, + IFCTHERMODYNAMICTEMPERATUREMEASURE: IFCTHERMODYNAMICTEMPERATUREMEASURE, + IFCTHIRDORDERPOLYNOMIALSPIRAL: IFCTHIRDORDERPOLYNOMIALSPIRAL, + IFCTIME: IFCTIME, + IFCTIMEMEASURE: IFCTIMEMEASURE, + IFCTIMEPERIOD: IFCTIMEPERIOD, + IFCTIMESERIES: IFCTIMESERIES, + IFCTIMESERIESREFERENCERELATIONSHIP: IFCTIMESERIESREFERENCERELATIONSHIP, + IFCTIMESERIESSCHEDULE: IFCTIMESERIESSCHEDULE, + IFCTIMESERIESVALUE: IFCTIMESERIESVALUE, + IFCTIMESTAMP: IFCTIMESTAMP, + IFCTOPOLOGICALREPRESENTATIONITEM: IFCTOPOLOGICALREPRESENTATIONITEM, + IFCTOPOLOGYREPRESENTATION: IFCTOPOLOGYREPRESENTATION, + IFCTOROIDALSURFACE: IFCTOROIDALSURFACE, + IFCTORQUEMEASURE: IFCTORQUEMEASURE, + IFCTRACKELEMENT: IFCTRACKELEMENT, + IFCTRACKELEMENTTYPE: IFCTRACKELEMENTTYPE, + IFCTRANSFORMER: IFCTRANSFORMER, + IFCTRANSFORMERTYPE: IFCTRANSFORMERTYPE, + IFCTRANSPORTATIONDEVICE: IFCTRANSPORTATIONDEVICE, + IFCTRANSPORTATIONDEVICETYPE: IFCTRANSPORTATIONDEVICETYPE, + IFCTRANSPORTELEMENT: IFCTRANSPORTELEMENT, + IFCTRANSPORTELEMENTTYPE: IFCTRANSPORTELEMENTTYPE, + IFCTRAPEZIUMPROFILEDEF: IFCTRAPEZIUMPROFILEDEF, + IFCTRIANGULATEDFACESET: IFCTRIANGULATEDFACESET, + IFCTRIANGULATEDIRREGULARNETWORK: IFCTRIANGULATEDIRREGULARNETWORK, + IFCTRIMMEDCURVE: IFCTRIMMEDCURVE, + IFCTSHAPEPROFILEDEF: IFCTSHAPEPROFILEDEF, + IFCTUBEBUNDLE: IFCTUBEBUNDLE, + IFCTUBEBUNDLETYPE: IFCTUBEBUNDLETYPE, + IFCTWODIRECTIONREPEATFACTOR: IFCTWODIRECTIONREPEATFACTOR, + IFCTYPEOBJECT: IFCTYPEOBJECT, + IFCTYPEPROCESS: IFCTYPEPROCESS, + IFCTYPEPRODUCT: IFCTYPEPRODUCT, + IFCTYPERESOURCE: IFCTYPERESOURCE, + IFCUNITARYCONTROLELEMENT: IFCUNITARYCONTROLELEMENT, + IFCUNITARYCONTROLELEMENTTYPE: IFCUNITARYCONTROLELEMENTTYPE, + IFCUNITARYEQUIPMENT: IFCUNITARYEQUIPMENT, + IFCUNITARYEQUIPMENTTYPE: IFCUNITARYEQUIPMENTTYPE, + IFCUNITASSIGNMENT: IFCUNITASSIGNMENT, + IFCURIREFERENCE: IFCURIREFERENCE, + IFCUSHAPEPROFILEDEF: IFCUSHAPEPROFILEDEF, + IFCVALVE: IFCVALVE, + IFCVALVETYPE: IFCVALVETYPE, + IFCVAPORPERMEABILITYMEASURE: IFCVAPORPERMEABILITYMEASURE, + IFCVECTOR: IFCVECTOR, + IFCVEHICLE: IFCVEHICLE, + IFCVEHICLETYPE: IFCVEHICLETYPE, + IFCVERTEX: IFCVERTEX, + IFCVERTEXBASEDTEXTUREMAP: IFCVERTEXBASEDTEXTUREMAP, + IFCVERTEXLOOP: IFCVERTEXLOOP, + IFCVERTEXPOINT: IFCVERTEXPOINT, + IFCVIBRATIONDAMPER: IFCVIBRATIONDAMPER, + IFCVIBRATIONDAMPERTYPE: IFCVIBRATIONDAMPERTYPE, + IFCVIBRATIONISOLATOR: IFCVIBRATIONISOLATOR, + IFCVIBRATIONISOLATORTYPE: IFCVIBRATIONISOLATORTYPE, + IFCVIRTUALELEMENT: IFCVIRTUALELEMENT, + IFCVIRTUALGRIDINTERSECTION: IFCVIRTUALGRIDINTERSECTION, + IFCVOIDINGFEATURE: IFCVOIDINGFEATURE, + IFCVOLUMEMEASURE: IFCVOLUMEMEASURE, + IFCVOLUMETRICFLOWRATEMEASURE: IFCVOLUMETRICFLOWRATEMEASURE, + IFCWALL: IFCWALL, + IFCWALLELEMENTEDCASE: IFCWALLELEMENTEDCASE, + IFCWALLSTANDARDCASE: IFCWALLSTANDARDCASE, + IFCWALLTYPE: IFCWALLTYPE, + IFCWARPINGCONSTANTMEASURE: IFCWARPINGCONSTANTMEASURE, + IFCWARPINGMOMENTMEASURE: IFCWARPINGMOMENTMEASURE, + IFCWASTETERMINAL: IFCWASTETERMINAL, + IFCWASTETERMINALTYPE: IFCWASTETERMINALTYPE, + IFCWATERPROPERTIES: IFCWATERPROPERTIES, + IFCWINDOW: IFCWINDOW, + IFCWINDOWLININGPROPERTIES: IFCWINDOWLININGPROPERTIES, + IFCWINDOWPANELPROPERTIES: IFCWINDOWPANELPROPERTIES, + IFCWINDOWSTANDARDCASE: IFCWINDOWSTANDARDCASE, + IFCWINDOWSTYLE: IFCWINDOWSTYLE, + IFCWINDOWTYPE: IFCWINDOWTYPE, + IFCWORKCALENDAR: IFCWORKCALENDAR, + IFCWORKCONTROL: IFCWORKCONTROL, + IFCWORKPLAN: IFCWORKPLAN, + IFCWORKSCHEDULE: IFCWORKSCHEDULE, + IFCWORKTIME: IFCWORKTIME, + IFCYEARNUMBER: IFCYEARNUMBER, + IFCZONE: IFCZONE, + IFCZSHAPEPROFILEDEF: IFCZSHAPEPROFILEDEF, + INTEGER: INTEGER, + IfcAPI: IfcAPI2, + IfcLineObject: IfcLineObject$1, + InheritanceDef: InheritanceDef, + InversePropertyDef: InversePropertyDef, + LABEL: LABEL, + LINE_END: LINE_END, + get LogLevel () { return LogLevel$1; }, + Properties: Properties, + REAL: REAL, + REF: REF, + SET_BEGIN: SET_BEGIN, + SET_END: SET_END, + STRING: STRING, + SchemaNames: SchemaNames, + get Schemas () { return Schemas$1; }, + ToRawLineData: ToRawLineData, + TypeInitialisers: TypeInitialisers, + UNKNOWN: UNKNOWN, + get logical () { return logical; }, + ms: ms +}); + +const IfcElements = { + 103090709: "IFCPROJECT", + 4097777520: "IFCSITE", + 4031249490: "IFCBUILDING", + 3124254112: "IFCBUILDINGSTOREY", + 3856911033: "IFCSPACE", + 1674181508: "IFCANNOTATION", + 25142252: "IFCCONTROLLER", + 32344328: "IFCBOILER", + 76236018: "IFCLAMP", + 90941305: "IFCPUMP", + 177149247: "IFCAIRTERMINALBOX", + 182646315: "IFCFLOWINSTRUMENT", + 263784265: "IFCFURNISHINGELEMENT", + 264262732: "IFCELECTRICGENERATOR", + 277319702: "IFCAUDIOVISUALAPPLIANCE", + 310824031: "IFCPIPEFITTING", + 331165859: "IFCSTAIR", + 342316401: "IFCDUCTFITTING", + 377706215: "IFCMECHANICALFASTENER", + 395920057: "IFCDOOR", + 402227799: "IFCELECTRICMOTOR", + 413509423: "IFCSYSTEMFURNITUREELEMENT", + 484807127: "IFCEVAPORATOR", + 486154966: "IFCWINDOWSTANDARDCASE", + 629592764: "IFCLIGHTFIXTURE", + 630975310: "IFCUNITARYCONTROLELEMENT", + 635142910: "IFCCABLECARRIERFITTING", + 639361253: "IFCCOIL", + 647756555: "IFCFASTENER", + 707683696: "IFCFLOWSTORAGEDEVICE", + 738039164: "IFCPROTECTIVEDEVICE", + 753842376: "IFCBEAM", + 812556717: "IFCTANK", + 819412036: "IFCFILTER", + 843113511: "IFCCOLUMN", + 862014818: "IFCELECTRICDISTRIBUTIONBOARD", + 900683007: "IFCFOOTING", + 905975707: "IFCCOLUMNSTANDARDCASE", + 926996030: "IFCVOIDINGFEATURE", + 979691226: "IFCREINFORCINGBAR", + 987401354: "IFCFLOWSEGMENT", + 1003880860: "IFCELECTRICTIMECONTROL", + 1051757585: "IFCCABLEFITTING", + 1052013943: "IFCDISTRIBUTIONCHAMBERELEMENT", + 1062813311: "IFCDISTRIBUTIONCONTROLELEMENT", + 1073191201: "IFCMEMBER", + 1095909175: "IFCBUILDINGELEMENTPROXY", + 1156407060: "IFCPLATESTANDARDCASE", + 1162798199: "IFCSWITCHINGDEVICE", + 1329646415: "IFCSHADINGDEVICE", + 1335981549: "IFCDISCRETEACCESSORY", + 1360408905: "IFCDUCTSILENCER", + 1404847402: "IFCSTACKTERMINAL", + 1426591983: "IFCFIRESUPPRESSIONTERMINAL", + 1437502449: "IFCMEDICALDEVICE", + 1509553395: "IFCFURNITURE", + 1529196076: "IFCSLAB", + 1620046519: "IFCTRANSPORTELEMENT", + 1634111441: "IFCAIRTERMINAL", + 1658829314: "IFCENERGYCONVERSIONDEVICE", + 1677625105: "IFCCIVILELEMENT", + 1687234759: "IFCPILE", + 1904799276: "IFCELECTRICAPPLIANCE", + 1911478936: "IFCMEMBERSTANDARDCASE", + 1945004755: "IFCDISTRIBUTIONELEMENT", + 1973544240: "IFCCOVERING", + 1999602285: "IFCSPACEHEATER", + 2016517767: "IFCROOF", + 2056796094: "IFCAIRTOAIRHEATRECOVERY", + 2058353004: "IFCFLOWCONTROLLER", + 2068733104: "IFCHUMIDIFIER", + 2176052936: "IFCJUNCTIONBOX", + 2188021234: "IFCFLOWMETER", + 2223149337: "IFCFLOWTERMINAL", + 2262370178: "IFCRAILING", + 2272882330: "IFCCONDENSER", + 2295281155: "IFCPROTECTIVEDEVICETRIPPINGUNIT", + 2320036040: "IFCREINFORCINGMESH", + 2347447852: "IFCTENDONANCHOR", + 2391383451: "IFCVIBRATIONISOLATOR", + 2391406946: "IFCWALL", + 2474470126: "IFCMOTORCONNECTION", + 2769231204: "IFCVIRTUALELEMENT", + 2814081492: "IFCENGINE", + 2906023776: "IFCBEAMSTANDARDCASE", + 2938176219: "IFCBURNER", + 2979338954: "IFCBUILDINGELEMENTPART", + 3024970846: "IFCRAMP", + 3026737570: "IFCTUBEBUNDLE", + 3027962421: "IFCSLABSTANDARDCASE", + 3040386961: "IFCDISTRIBUTIONFLOWELEMENT", + 3053780830: "IFCSANITARYTERMINAL", + 3079942009: "IFCOPENINGSTANDARDCASE", + 3087945054: "IFCALARM", + 3101698114: "IFCSURFACEFEATURE", + 3127900445: "IFCSLABELEMENTEDCASE", + 3132237377: "IFCFLOWMOVINGDEVICE", + 3171933400: "IFCPLATE", + 3221913625: "IFCCOMMUNICATIONSAPPLIANCE", + 3242481149: "IFCDOORSTANDARDCASE", + 3283111854: "IFCRAMPFLIGHT", + 3296154744: "IFCCHIMNEY", + 3304561284: "IFCWINDOW", + 3310460725: "IFCELECTRICFLOWSTORAGEDEVICE", + 3319311131: "IFCHEATEXCHANGER", + 3415622556: "IFCFAN", + 3420628829: "IFCSOLARDEVICE", + 3493046030: "IFCGEOGRAPHICELEMENT", + 3495092785: "IFCCURTAINWALL", + 3508470533: "IFCFLOWTREATMENTDEVICE", + 3512223829: "IFCWALLSTANDARDCASE", + 3518393246: "IFCDUCTSEGMENT", + 3571504051: "IFCCOMPRESSOR", + 3588315303: "IFCOPENINGELEMENT", + 3612865200: "IFCPIPESEGMENT", + 3640358203: "IFCCOOLINGTOWER", + 3651124850: "IFCPROJECTIONELEMENT", + 3694346114: "IFCOUTLET", + 3747195512: "IFCEVAPORATIVECOOLER", + 3758799889: "IFCCABLECARRIERSEGMENT", + 3824725483: "IFCTENDON", + 3825984169: "IFCTRANSFORMER", + 3902619387: "IFCCHILLER", + 4074379575: "IFCDAMPER", + 4086658281: "IFCSENSOR", + 4123344466: "IFCELEMENTASSEMBLY", + 4136498852: "IFCCOOLEDBEAM", + 4156078855: "IFCWALLELEMENTEDCASE", + 4175244083: "IFCINTERCEPTOR", + 4207607924: "IFCVALVE", + 4217484030: "IFCCABLESEGMENT", + 4237592921: "IFCWASTETERMINAL", + 4252922144: "IFCSTAIRFLIGHT", + 4278956645: "IFCFLOWFITTING", + 4288193352: "IFCACTUATOR", + 4292641817: "IFCUNITARYEQUIPMENT", + 3009204131: "IFCGRID", +}; + +class IfcCategories { + getAll(webIfc, modelID) { + const elementsCategories = {}; + const categoriesIDs = Object.keys(IfcElements).map((e) => parseInt(e, 10)); + for (let i = 0; i < categoriesIDs.length; i++) { + const element = categoriesIDs[i]; + const lines = webIfc.GetLineIDsWithType(modelID, element); + const size = lines.size(); + for (let i = 0; i < size; i++) { + elementsCategories[lines.get(i)] = element; + } + } + return elementsCategories; + } +} + +const IfcCategoryMap = { + 3821786052: "IFCACTIONREQUEST", + 2296667514: "IFCACTOR", + 3630933823: "IFCACTORROLE", + 4288193352: "IFCACTUATOR", + 2874132201: "IFCACTUATORTYPE", + 618182010: "IFCADDRESS", + 1635779807: "IFCADVANCEDBREP", + 2603310189: "IFCADVANCEDBREPWITHVOIDS", + 3406155212: "IFCADVANCEDFACE", + 1634111441: "IFCAIRTERMINAL", + 177149247: "IFCAIRTERMINALBOX", + 1411407467: "IFCAIRTERMINALBOXTYPE", + 3352864051: "IFCAIRTERMINALTYPE", + 2056796094: "IFCAIRTOAIRHEATRECOVERY", + 1871374353: "IFCAIRTOAIRHEATRECOVERYTYPE", + 3087945054: "IFCALARM", + 3001207471: "IFCALARMTYPE", + 325726236: "IFCALIGNMENT", + 749761778: "IFCALIGNMENT2DHORIZONTAL", + 3199563722: "IFCALIGNMENT2DHORIZONTALSEGMENT", + 2483840362: "IFCALIGNMENT2DSEGMENT", + 3379348081: "IFCALIGNMENT2DVERSEGCIRCULARARC", + 3239324667: "IFCALIGNMENT2DVERSEGLINE", + 4263986512: "IFCALIGNMENT2DVERSEGPARABOLICARC", + 53199957: "IFCALIGNMENT2DVERTICAL", + 2029264950: "IFCALIGNMENT2DVERTICALSEGMENT", + 3512275521: "IFCALIGNMENTCURVE", + 1674181508: "IFCANNOTATION", + 669184980: "IFCANNOTATIONFILLAREA", + 639542469: "IFCAPPLICATION", + 411424972: "IFCAPPLIEDVALUE", + 130549933: "IFCAPPROVAL", + 3869604511: "IFCAPPROVALRELATIONSHIP", + 3798115385: "IFCARBITRARYCLOSEDPROFILEDEF", + 1310608509: "IFCARBITRARYOPENPROFILEDEF", + 2705031697: "IFCARBITRARYPROFILEDEFWITHVOIDS", + 3460190687: "IFCASSET", + 3207858831: "IFCASYMMETRICISHAPEPROFILEDEF", + 277319702: "IFCAUDIOVISUALAPPLIANCE", + 1532957894: "IFCAUDIOVISUALAPPLIANCETYPE", + 4261334040: "IFCAXIS1PLACEMENT", + 3125803723: "IFCAXIS2PLACEMENT2D", + 2740243338: "IFCAXIS2PLACEMENT3D", + 1967976161: "IFCBSPLINECURVE", + 2461110595: "IFCBSPLINECURVEWITHKNOTS", + 2887950389: "IFCBSPLINESURFACE", + 167062518: "IFCBSPLINESURFACEWITHKNOTS", + 753842376: "IFCBEAM", + 2906023776: "IFCBEAMSTANDARDCASE", + 819618141: "IFCBEAMTYPE", + 4196446775: "IFCBEARING", + 3649138523: "IFCBEARINGTYPE", + 616511568: "IFCBLOBTEXTURE", + 1334484129: "IFCBLOCK", + 32344328: "IFCBOILER", + 231477066: "IFCBOILERTYPE", + 3649129432: "IFCBOOLEANCLIPPINGRESULT", + 2736907675: "IFCBOOLEANRESULT", + 4037036970: "IFCBOUNDARYCONDITION", + 1136057603: "IFCBOUNDARYCURVE", + 1560379544: "IFCBOUNDARYEDGECONDITION", + 3367102660: "IFCBOUNDARYFACECONDITION", + 1387855156: "IFCBOUNDARYNODECONDITION", + 2069777674: "IFCBOUNDARYNODECONDITIONWARPING", + 1260505505: "IFCBOUNDEDCURVE", + 4182860854: "IFCBOUNDEDSURFACE", + 2581212453: "IFCBOUNDINGBOX", + 2713105998: "IFCBOXEDHALFSPACE", + 644574406: "IFCBRIDGE", + 963979645: "IFCBRIDGEPART", + 4031249490: "IFCBUILDING", + 3299480353: "IFCBUILDINGELEMENT", + 2979338954: "IFCBUILDINGELEMENTPART", + 39481116: "IFCBUILDINGELEMENTPARTTYPE", + 1095909175: "IFCBUILDINGELEMENTPROXY", + 1909888760: "IFCBUILDINGELEMENTPROXYTYPE", + 1950629157: "IFCBUILDINGELEMENTTYPE", + 3124254112: "IFCBUILDINGSTOREY", + 1177604601: "IFCBUILDINGSYSTEM", + 2938176219: "IFCBURNER", + 2188180465: "IFCBURNERTYPE", + 2898889636: "IFCCSHAPEPROFILEDEF", + 635142910: "IFCCABLECARRIERFITTING", + 395041908: "IFCCABLECARRIERFITTINGTYPE", + 3758799889: "IFCCABLECARRIERSEGMENT", + 3293546465: "IFCCABLECARRIERSEGMENTTYPE", + 1051757585: "IFCCABLEFITTING", + 2674252688: "IFCCABLEFITTINGTYPE", + 4217484030: "IFCCABLESEGMENT", + 1285652485: "IFCCABLESEGMENTTYPE", + 3999819293: "IFCCAISSONFOUNDATION", + 3203706013: "IFCCAISSONFOUNDATIONTYPE", + 1123145078: "IFCCARTESIANPOINT", + 574549367: "IFCCARTESIANPOINTLIST", + 1675464909: "IFCCARTESIANPOINTLIST2D", + 2059837836: "IFCCARTESIANPOINTLIST3D", + 59481748: "IFCCARTESIANTRANSFORMATIONOPERATOR", + 3749851601: "IFCCARTESIANTRANSFORMATIONOPERATOR2D", + 3486308946: "IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM", + 3331915920: "IFCCARTESIANTRANSFORMATIONOPERATOR3D", + 1416205885: "IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM", + 3150382593: "IFCCENTERLINEPROFILEDEF", + 3902619387: "IFCCHILLER", + 2951183804: "IFCCHILLERTYPE", + 3296154744: "IFCCHIMNEY", + 2197970202: "IFCCHIMNEYTYPE", + 2611217952: "IFCCIRCLE", + 2937912522: "IFCCIRCLEHOLLOWPROFILEDEF", + 1383045692: "IFCCIRCLEPROFILEDEF", + 1062206242: "IFCCIRCULARARCSEGMENT2D", + 1677625105: "IFCCIVILELEMENT", + 3893394355: "IFCCIVILELEMENTTYPE", + 747523909: "IFCCLASSIFICATION", + 647927063: "IFCCLASSIFICATIONREFERENCE", + 2205249479: "IFCCLOSEDSHELL", + 639361253: "IFCCOIL", + 2301859152: "IFCCOILTYPE", + 776857604: "IFCCOLOURRGB", + 3285139300: "IFCCOLOURRGBLIST", + 3264961684: "IFCCOLOURSPECIFICATION", + 843113511: "IFCCOLUMN", + 905975707: "IFCCOLUMNSTANDARDCASE", + 300633059: "IFCCOLUMNTYPE", + 3221913625: "IFCCOMMUNICATIONSAPPLIANCE", + 400855858: "IFCCOMMUNICATIONSAPPLIANCETYPE", + 2542286263: "IFCCOMPLEXPROPERTY", + 3875453745: "IFCCOMPLEXPROPERTYTEMPLATE", + 3732776249: "IFCCOMPOSITECURVE", + 15328376: "IFCCOMPOSITECURVEONSURFACE", + 2485617015: "IFCCOMPOSITECURVESEGMENT", + 1485152156: "IFCCOMPOSITEPROFILEDEF", + 3571504051: "IFCCOMPRESSOR", + 3850581409: "IFCCOMPRESSORTYPE", + 2272882330: "IFCCONDENSER", + 2816379211: "IFCCONDENSERTYPE", + 2510884976: "IFCCONIC", + 370225590: "IFCCONNECTEDFACESET", + 1981873012: "IFCCONNECTIONCURVEGEOMETRY", + 2859738748: "IFCCONNECTIONGEOMETRY", + 45288368: "IFCCONNECTIONPOINTECCENTRICITY", + 2614616156: "IFCCONNECTIONPOINTGEOMETRY", + 2732653382: "IFCCONNECTIONSURFACEGEOMETRY", + 775493141: "IFCCONNECTIONVOLUMEGEOMETRY", + 1959218052: "IFCCONSTRAINT", + 3898045240: "IFCCONSTRUCTIONEQUIPMENTRESOURCE", + 2185764099: "IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE", + 1060000209: "IFCCONSTRUCTIONMATERIALRESOURCE", + 4105962743: "IFCCONSTRUCTIONMATERIALRESOURCETYPE", + 488727124: "IFCCONSTRUCTIONPRODUCTRESOURCE", + 1525564444: "IFCCONSTRUCTIONPRODUCTRESOURCETYPE", + 2559216714: "IFCCONSTRUCTIONRESOURCE", + 2574617495: "IFCCONSTRUCTIONRESOURCETYPE", + 3419103109: "IFCCONTEXT", + 3050246964: "IFCCONTEXTDEPENDENTUNIT", + 3293443760: "IFCCONTROL", + 25142252: "IFCCONTROLLER", + 578613899: "IFCCONTROLLERTYPE", + 2889183280: "IFCCONVERSIONBASEDUNIT", + 2713554722: "IFCCONVERSIONBASEDUNITWITHOFFSET", + 4136498852: "IFCCOOLEDBEAM", + 335055490: "IFCCOOLEDBEAMTYPE", + 3640358203: "IFCCOOLINGTOWER", + 2954562838: "IFCCOOLINGTOWERTYPE", + 1785450214: "IFCCOORDINATEOPERATION", + 1466758467: "IFCCOORDINATEREFERENCESYSTEM", + 3895139033: "IFCCOSTITEM", + 1419761937: "IFCCOSTSCHEDULE", + 602808272: "IFCCOSTVALUE", + 1973544240: "IFCCOVERING", + 1916426348: "IFCCOVERINGTYPE", + 3295246426: "IFCCREWRESOURCE", + 1815067380: "IFCCREWRESOURCETYPE", + 2506170314: "IFCCSGPRIMITIVE3D", + 2147822146: "IFCCSGSOLID", + 539742890: "IFCCURRENCYRELATIONSHIP", + 3495092785: "IFCCURTAINWALL", + 1457835157: "IFCCURTAINWALLTYPE", + 2601014836: "IFCCURVE", + 2827736869: "IFCCURVEBOUNDEDPLANE", + 2629017746: "IFCCURVEBOUNDEDSURFACE", + 1186437898: "IFCCURVESEGMENT2D", + 3800577675: "IFCCURVESTYLE", + 1105321065: "IFCCURVESTYLEFONT", + 2367409068: "IFCCURVESTYLEFONTANDSCALING", + 3510044353: "IFCCURVESTYLEFONTPATTERN", + 1213902940: "IFCCYLINDRICALSURFACE", + 4074379575: "IFCDAMPER", + 3961806047: "IFCDAMPERTYPE", + 3426335179: "IFCDEEPFOUNDATION", + 1306400036: "IFCDEEPFOUNDATIONTYPE", + 3632507154: "IFCDERIVEDPROFILEDEF", + 1765591967: "IFCDERIVEDUNIT", + 1045800335: "IFCDERIVEDUNITELEMENT", + 2949456006: "IFCDIMENSIONALEXPONENTS", + 32440307: "IFCDIRECTION", + 1335981549: "IFCDISCRETEACCESSORY", + 2635815018: "IFCDISCRETEACCESSORYTYPE", + 1945343521: "IFCDISTANCEEXPRESSION", + 1052013943: "IFCDISTRIBUTIONCHAMBERELEMENT", + 1599208980: "IFCDISTRIBUTIONCHAMBERELEMENTTYPE", + 562808652: "IFCDISTRIBUTIONCIRCUIT", + 1062813311: "IFCDISTRIBUTIONCONTROLELEMENT", + 2063403501: "IFCDISTRIBUTIONCONTROLELEMENTTYPE", + 1945004755: "IFCDISTRIBUTIONELEMENT", + 3256556792: "IFCDISTRIBUTIONELEMENTTYPE", + 3040386961: "IFCDISTRIBUTIONFLOWELEMENT", + 3849074793: "IFCDISTRIBUTIONFLOWELEMENTTYPE", + 3041715199: "IFCDISTRIBUTIONPORT", + 3205830791: "IFCDISTRIBUTIONSYSTEM", + 1154170062: "IFCDOCUMENTINFORMATION", + 770865208: "IFCDOCUMENTINFORMATIONRELATIONSHIP", + 3732053477: "IFCDOCUMENTREFERENCE", + 395920057: "IFCDOOR", + 2963535650: "IFCDOORLININGPROPERTIES", + 1714330368: "IFCDOORPANELPROPERTIES", + 3242481149: "IFCDOORSTANDARDCASE", + 526551008: "IFCDOORSTYLE", + 2323601079: "IFCDOORTYPE", + 445594917: "IFCDRAUGHTINGPREDEFINEDCOLOUR", + 4006246654: "IFCDRAUGHTINGPREDEFINEDCURVEFONT", + 342316401: "IFCDUCTFITTING", + 869906466: "IFCDUCTFITTINGTYPE", + 3518393246: "IFCDUCTSEGMENT", + 3760055223: "IFCDUCTSEGMENTTYPE", + 1360408905: "IFCDUCTSILENCER", + 2030761528: "IFCDUCTSILENCERTYPE", + 3900360178: "IFCEDGE", + 476780140: "IFCEDGECURVE", + 1472233963: "IFCEDGELOOP", + 1904799276: "IFCELECTRICAPPLIANCE", + 663422040: "IFCELECTRICAPPLIANCETYPE", + 862014818: "IFCELECTRICDISTRIBUTIONBOARD", + 2417008758: "IFCELECTRICDISTRIBUTIONBOARDTYPE", + 3310460725: "IFCELECTRICFLOWSTORAGEDEVICE", + 3277789161: "IFCELECTRICFLOWSTORAGEDEVICETYPE", + 264262732: "IFCELECTRICGENERATOR", + 1534661035: "IFCELECTRICGENERATORTYPE", + 402227799: "IFCELECTRICMOTOR", + 1217240411: "IFCELECTRICMOTORTYPE", + 1003880860: "IFCELECTRICTIMECONTROL", + 712377611: "IFCELECTRICTIMECONTROLTYPE", + 1758889154: "IFCELEMENT", + 4123344466: "IFCELEMENTASSEMBLY", + 2397081782: "IFCELEMENTASSEMBLYTYPE", + 1623761950: "IFCELEMENTCOMPONENT", + 2590856083: "IFCELEMENTCOMPONENTTYPE", + 1883228015: "IFCELEMENTQUANTITY", + 339256511: "IFCELEMENTTYPE", + 2777663545: "IFCELEMENTARYSURFACE", + 1704287377: "IFCELLIPSE", + 2835456948: "IFCELLIPSEPROFILEDEF", + 1658829314: "IFCENERGYCONVERSIONDEVICE", + 2107101300: "IFCENERGYCONVERSIONDEVICETYPE", + 2814081492: "IFCENGINE", + 132023988: "IFCENGINETYPE", + 3747195512: "IFCEVAPORATIVECOOLER", + 3174744832: "IFCEVAPORATIVECOOLERTYPE", + 484807127: "IFCEVAPORATOR", + 3390157468: "IFCEVAPORATORTYPE", + 4148101412: "IFCEVENT", + 211053100: "IFCEVENTTIME", + 4024345920: "IFCEVENTTYPE", + 297599258: "IFCEXTENDEDPROPERTIES", + 4294318154: "IFCEXTERNALINFORMATION", + 3200245327: "IFCEXTERNALREFERENCE", + 1437805879: "IFCEXTERNALREFERENCERELATIONSHIP", + 1209101575: "IFCEXTERNALSPATIALELEMENT", + 2853485674: "IFCEXTERNALSPATIALSTRUCTUREELEMENT", + 2242383968: "IFCEXTERNALLYDEFINEDHATCHSTYLE", + 1040185647: "IFCEXTERNALLYDEFINEDSURFACESTYLE", + 3548104201: "IFCEXTERNALLYDEFINEDTEXTFONT", + 477187591: "IFCEXTRUDEDAREASOLID", + 2804161546: "IFCEXTRUDEDAREASOLIDTAPERED", + 2556980723: "IFCFACE", + 2047409740: "IFCFACEBASEDSURFACEMODEL", + 1809719519: "IFCFACEBOUND", + 803316827: "IFCFACEOUTERBOUND", + 3008276851: "IFCFACESURFACE", + 807026263: "IFCFACETEDBREP", + 3737207727: "IFCFACETEDBREPWITHVOIDS", + 24185140: "IFCFACILITY", + 1310830890: "IFCFACILITYPART", + 4219587988: "IFCFAILURECONNECTIONCONDITION", + 3415622556: "IFCFAN", + 346874300: "IFCFANTYPE", + 647756555: "IFCFASTENER", + 2489546625: "IFCFASTENERTYPE", + 2827207264: "IFCFEATUREELEMENT", + 2143335405: "IFCFEATUREELEMENTADDITION", + 1287392070: "IFCFEATUREELEMENTSUBTRACTION", + 738692330: "IFCFILLAREASTYLE", + 374418227: "IFCFILLAREASTYLEHATCHING", + 315944413: "IFCFILLAREASTYLETILES", + 819412036: "IFCFILTER", + 1810631287: "IFCFILTERTYPE", + 1426591983: "IFCFIRESUPPRESSIONTERMINAL", + 4222183408: "IFCFIRESUPPRESSIONTERMINALTYPE", + 2652556860: "IFCFIXEDREFERENCESWEPTAREASOLID", + 2058353004: "IFCFLOWCONTROLLER", + 3907093117: "IFCFLOWCONTROLLERTYPE", + 4278956645: "IFCFLOWFITTING", + 3198132628: "IFCFLOWFITTINGTYPE", + 182646315: "IFCFLOWINSTRUMENT", + 4037862832: "IFCFLOWINSTRUMENTTYPE", + 2188021234: "IFCFLOWMETER", + 3815607619: "IFCFLOWMETERTYPE", + 3132237377: "IFCFLOWMOVINGDEVICE", + 1482959167: "IFCFLOWMOVINGDEVICETYPE", + 987401354: "IFCFLOWSEGMENT", + 1834744321: "IFCFLOWSEGMENTTYPE", + 707683696: "IFCFLOWSTORAGEDEVICE", + 1339347760: "IFCFLOWSTORAGEDEVICETYPE", + 2223149337: "IFCFLOWTERMINAL", + 2297155007: "IFCFLOWTERMINALTYPE", + 3508470533: "IFCFLOWTREATMENTDEVICE", + 3009222698: "IFCFLOWTREATMENTDEVICETYPE", + 900683007: "IFCFOOTING", + 1893162501: "IFCFOOTINGTYPE", + 263784265: "IFCFURNISHINGELEMENT", + 4238390223: "IFCFURNISHINGELEMENTTYPE", + 1509553395: "IFCFURNITURE", + 1268542332: "IFCFURNITURETYPE", + 3493046030: "IFCGEOGRAPHICELEMENT", + 4095422895: "IFCGEOGRAPHICELEMENTTYPE", + 987898635: "IFCGEOMETRICCURVESET", + 3448662350: "IFCGEOMETRICREPRESENTATIONCONTEXT", + 2453401579: "IFCGEOMETRICREPRESENTATIONITEM", + 4142052618: "IFCGEOMETRICREPRESENTATIONSUBCONTEXT", + 3590301190: "IFCGEOMETRICSET", + 3009204131: "IFCGRID", + 852622518: "IFCGRIDAXIS", + 178086475: "IFCGRIDPLACEMENT", + 2706460486: "IFCGROUP", + 812098782: "IFCHALFSPACESOLID", + 3319311131: "IFCHEATEXCHANGER", + 1251058090: "IFCHEATEXCHANGERTYPE", + 2068733104: "IFCHUMIDIFIER", + 1806887404: "IFCHUMIDIFIERTYPE", + 1484403080: "IFCISHAPEPROFILEDEF", + 3905492369: "IFCIMAGETEXTURE", + 3570813810: "IFCINDEXEDCOLOURMAP", + 2571569899: "IFCINDEXEDPOLYCURVE", + 178912537: "IFCINDEXEDPOLYGONALFACE", + 2294589976: "IFCINDEXEDPOLYGONALFACEWITHVOIDS", + 1437953363: "IFCINDEXEDTEXTUREMAP", + 2133299955: "IFCINDEXEDTRIANGLETEXTUREMAP", + 4175244083: "IFCINTERCEPTOR", + 3946677679: "IFCINTERCEPTORTYPE", + 3113134337: "IFCINTERSECTIONCURVE", + 2391368822: "IFCINVENTORY", + 3741457305: "IFCIRREGULARTIMESERIES", + 3020489413: "IFCIRREGULARTIMESERIESVALUE", + 2176052936: "IFCJUNCTIONBOX", + 4288270099: "IFCJUNCTIONBOXTYPE", + 572779678: "IFCLSHAPEPROFILEDEF", + 3827777499: "IFCLABORRESOURCE", + 428585644: "IFCLABORRESOURCETYPE", + 1585845231: "IFCLAGTIME", + 76236018: "IFCLAMP", + 1051575348: "IFCLAMPTYPE", + 2655187982: "IFCLIBRARYINFORMATION", + 3452421091: "IFCLIBRARYREFERENCE", + 4162380809: "IFCLIGHTDISTRIBUTIONDATA", + 629592764: "IFCLIGHTFIXTURE", + 1161773419: "IFCLIGHTFIXTURETYPE", + 1566485204: "IFCLIGHTINTENSITYDISTRIBUTION", + 1402838566: "IFCLIGHTSOURCE", + 125510826: "IFCLIGHTSOURCEAMBIENT", + 2604431987: "IFCLIGHTSOURCEDIRECTIONAL", + 4266656042: "IFCLIGHTSOURCEGONIOMETRIC", + 1520743889: "IFCLIGHTSOURCEPOSITIONAL", + 3422422726: "IFCLIGHTSOURCESPOT", + 1281925730: "IFCLINE", + 3092502836: "IFCLINESEGMENT2D", + 388784114: "IFCLINEARPLACEMENT", + 1154579445: "IFCLINEARPOSITIONINGELEMENT", + 2624227202: "IFCLOCALPLACEMENT", + 1008929658: "IFCLOOP", + 1425443689: "IFCMANIFOLDSOLIDBREP", + 3057273783: "IFCMAPCONVERSION", + 2347385850: "IFCMAPPEDITEM", + 1838606355: "IFCMATERIAL", + 1847130766: "IFCMATERIALCLASSIFICATIONRELATIONSHIP", + 3708119000: "IFCMATERIALCONSTITUENT", + 2852063980: "IFCMATERIALCONSTITUENTSET", + 760658860: "IFCMATERIALDEFINITION", + 2022407955: "IFCMATERIALDEFINITIONREPRESENTATION", + 248100487: "IFCMATERIALLAYER", + 3303938423: "IFCMATERIALLAYERSET", + 1303795690: "IFCMATERIALLAYERSETUSAGE", + 1847252529: "IFCMATERIALLAYERWITHOFFSETS", + 2199411900: "IFCMATERIALLIST", + 2235152071: "IFCMATERIALPROFILE", + 164193824: "IFCMATERIALPROFILESET", + 3079605661: "IFCMATERIALPROFILESETUSAGE", + 3404854881: "IFCMATERIALPROFILESETUSAGETAPERING", + 552965576: "IFCMATERIALPROFILEWITHOFFSETS", + 3265635763: "IFCMATERIALPROPERTIES", + 853536259: "IFCMATERIALRELATIONSHIP", + 1507914824: "IFCMATERIALUSAGEDEFINITION", + 2597039031: "IFCMEASUREWITHUNIT", + 377706215: "IFCMECHANICALFASTENER", + 2108223431: "IFCMECHANICALFASTENERTYPE", + 1437502449: "IFCMEDICALDEVICE", + 1114901282: "IFCMEDICALDEVICETYPE", + 1073191201: "IFCMEMBER", + 1911478936: "IFCMEMBERSTANDARDCASE", + 3181161470: "IFCMEMBERTYPE", + 3368373690: "IFCMETRIC", + 2998442950: "IFCMIRROREDPROFILEDEF", + 2706619895: "IFCMONETARYUNIT", + 2474470126: "IFCMOTORCONNECTION", + 977012517: "IFCMOTORCONNECTIONTYPE", + 1918398963: "IFCNAMEDUNIT", + 3888040117: "IFCOBJECT", + 219451334: "IFCOBJECTDEFINITION", + 3701648758: "IFCOBJECTPLACEMENT", + 2251480897: "IFCOBJECTIVE", + 4143007308: "IFCOCCUPANT", + 590820931: "IFCOFFSETCURVE", + 3388369263: "IFCOFFSETCURVE2D", + 3505215534: "IFCOFFSETCURVE3D", + 2485787929: "IFCOFFSETCURVEBYDISTANCES", + 2665983363: "IFCOPENSHELL", + 3588315303: "IFCOPENINGELEMENT", + 3079942009: "IFCOPENINGSTANDARDCASE", + 4251960020: "IFCORGANIZATION", + 1411181986: "IFCORGANIZATIONRELATIONSHIP", + 643959842: "IFCORIENTATIONEXPRESSION", + 1029017970: "IFCORIENTEDEDGE", + 144952367: "IFCOUTERBOUNDARYCURVE", + 3694346114: "IFCOUTLET", + 2837617999: "IFCOUTLETTYPE", + 1207048766: "IFCOWNERHISTORY", + 2529465313: "IFCPARAMETERIZEDPROFILEDEF", + 2519244187: "IFCPATH", + 1682466193: "IFCPCURVE", + 2382730787: "IFCPERFORMANCEHISTORY", + 3566463478: "IFCPERMEABLECOVERINGPROPERTIES", + 3327091369: "IFCPERMIT", + 2077209135: "IFCPERSON", + 101040310: "IFCPERSONANDORGANIZATION", + 3021840470: "IFCPHYSICALCOMPLEXQUANTITY", + 2483315170: "IFCPHYSICALQUANTITY", + 2226359599: "IFCPHYSICALSIMPLEQUANTITY", + 1687234759: "IFCPILE", + 1158309216: "IFCPILETYPE", + 310824031: "IFCPIPEFITTING", + 804291784: "IFCPIPEFITTINGTYPE", + 3612865200: "IFCPIPESEGMENT", + 4231323485: "IFCPIPESEGMENTTYPE", + 597895409: "IFCPIXELTEXTURE", + 2004835150: "IFCPLACEMENT", + 603570806: "IFCPLANARBOX", + 1663979128: "IFCPLANAREXTENT", + 220341763: "IFCPLANE", + 3171933400: "IFCPLATE", + 1156407060: "IFCPLATESTANDARDCASE", + 4017108033: "IFCPLATETYPE", + 2067069095: "IFCPOINT", + 4022376103: "IFCPOINTONCURVE", + 1423911732: "IFCPOINTONSURFACE", + 2924175390: "IFCPOLYLOOP", + 2775532180: "IFCPOLYGONALBOUNDEDHALFSPACE", + 2839578677: "IFCPOLYGONALFACESET", + 3724593414: "IFCPOLYLINE", + 3740093272: "IFCPORT", + 1946335990: "IFCPOSITIONINGELEMENT", + 3355820592: "IFCPOSTALADDRESS", + 759155922: "IFCPREDEFINEDCOLOUR", + 2559016684: "IFCPREDEFINEDCURVEFONT", + 3727388367: "IFCPREDEFINEDITEM", + 3778827333: "IFCPREDEFINEDPROPERTIES", + 3967405729: "IFCPREDEFINEDPROPERTYSET", + 1775413392: "IFCPREDEFINEDTEXTFONT", + 677532197: "IFCPRESENTATIONITEM", + 2022622350: "IFCPRESENTATIONLAYERASSIGNMENT", + 1304840413: "IFCPRESENTATIONLAYERWITHSTYLE", + 3119450353: "IFCPRESENTATIONSTYLE", + 2417041796: "IFCPRESENTATIONSTYLEASSIGNMENT", + 2744685151: "IFCPROCEDURE", + 569719735: "IFCPROCEDURETYPE", + 2945172077: "IFCPROCESS", + 4208778838: "IFCPRODUCT", + 673634403: "IFCPRODUCTDEFINITIONSHAPE", + 2095639259: "IFCPRODUCTREPRESENTATION", + 3958567839: "IFCPROFILEDEF", + 2802850158: "IFCPROFILEPROPERTIES", + 103090709: "IFCPROJECT", + 653396225: "IFCPROJECTLIBRARY", + 2904328755: "IFCPROJECTORDER", + 3843373140: "IFCPROJECTEDCRS", + 3651124850: "IFCPROJECTIONELEMENT", + 2598011224: "IFCPROPERTY", + 986844984: "IFCPROPERTYABSTRACTION", + 871118103: "IFCPROPERTYBOUNDEDVALUE", + 1680319473: "IFCPROPERTYDEFINITION", + 148025276: "IFCPROPERTYDEPENDENCYRELATIONSHIP", + 4166981789: "IFCPROPERTYENUMERATEDVALUE", + 3710013099: "IFCPROPERTYENUMERATION", + 2752243245: "IFCPROPERTYLISTVALUE", + 941946838: "IFCPROPERTYREFERENCEVALUE", + 1451395588: "IFCPROPERTYSET", + 3357820518: "IFCPROPERTYSETDEFINITION", + 492091185: "IFCPROPERTYSETTEMPLATE", + 3650150729: "IFCPROPERTYSINGLEVALUE", + 110355661: "IFCPROPERTYTABLEVALUE", + 3521284610: "IFCPROPERTYTEMPLATE", + 1482703590: "IFCPROPERTYTEMPLATEDEFINITION", + 738039164: "IFCPROTECTIVEDEVICE", + 2295281155: "IFCPROTECTIVEDEVICETRIPPINGUNIT", + 655969474: "IFCPROTECTIVEDEVICETRIPPINGUNITTYPE", + 1842657554: "IFCPROTECTIVEDEVICETYPE", + 3219374653: "IFCPROXY", + 90941305: "IFCPUMP", + 2250791053: "IFCPUMPTYPE", + 2044713172: "IFCQUANTITYAREA", + 2093928680: "IFCQUANTITYCOUNT", + 931644368: "IFCQUANTITYLENGTH", + 2090586900: "IFCQUANTITYSET", + 3252649465: "IFCQUANTITYTIME", + 2405470396: "IFCQUANTITYVOLUME", + 825690147: "IFCQUANTITYWEIGHT", + 2262370178: "IFCRAILING", + 2893384427: "IFCRAILINGTYPE", + 3024970846: "IFCRAMP", + 3283111854: "IFCRAMPFLIGHT", + 2324767716: "IFCRAMPFLIGHTTYPE", + 1469900589: "IFCRAMPTYPE", + 1232101972: "IFCRATIONALBSPLINECURVEWITHKNOTS", + 683857671: "IFCRATIONALBSPLINESURFACEWITHKNOTS", + 2770003689: "IFCRECTANGLEHOLLOWPROFILEDEF", + 3615266464: "IFCRECTANGLEPROFILEDEF", + 2798486643: "IFCRECTANGULARPYRAMID", + 3454111270: "IFCRECTANGULARTRIMMEDSURFACE", + 3915482550: "IFCRECURRENCEPATTERN", + 2433181523: "IFCREFERENCE", + 4021432810: "IFCREFERENT", + 3413951693: "IFCREGULARTIMESERIES", + 1580146022: "IFCREINFORCEMENTBARPROPERTIES", + 3765753017: "IFCREINFORCEMENTDEFINITIONPROPERTIES", + 979691226: "IFCREINFORCINGBAR", + 2572171363: "IFCREINFORCINGBARTYPE", + 3027567501: "IFCREINFORCINGELEMENT", + 964333572: "IFCREINFORCINGELEMENTTYPE", + 2320036040: "IFCREINFORCINGMESH", + 2310774935: "IFCREINFORCINGMESHTYPE", + 160246688: "IFCRELAGGREGATES", + 3939117080: "IFCRELASSIGNS", + 1683148259: "IFCRELASSIGNSTOACTOR", + 2495723537: "IFCRELASSIGNSTOCONTROL", + 1307041759: "IFCRELASSIGNSTOGROUP", + 1027710054: "IFCRELASSIGNSTOGROUPBYFACTOR", + 4278684876: "IFCRELASSIGNSTOPROCESS", + 2857406711: "IFCRELASSIGNSTOPRODUCT", + 205026976: "IFCRELASSIGNSTORESOURCE", + 1865459582: "IFCRELASSOCIATES", + 4095574036: "IFCRELASSOCIATESAPPROVAL", + 919958153: "IFCRELASSOCIATESCLASSIFICATION", + 2728634034: "IFCRELASSOCIATESCONSTRAINT", + 982818633: "IFCRELASSOCIATESDOCUMENT", + 3840914261: "IFCRELASSOCIATESLIBRARY", + 2655215786: "IFCRELASSOCIATESMATERIAL", + 826625072: "IFCRELCONNECTS", + 1204542856: "IFCRELCONNECTSELEMENTS", + 3945020480: "IFCRELCONNECTSPATHELEMENTS", + 4201705270: "IFCRELCONNECTSPORTTOELEMENT", + 3190031847: "IFCRELCONNECTSPORTS", + 2127690289: "IFCRELCONNECTSSTRUCTURALACTIVITY", + 1638771189: "IFCRELCONNECTSSTRUCTURALMEMBER", + 504942748: "IFCRELCONNECTSWITHECCENTRICITY", + 3678494232: "IFCRELCONNECTSWITHREALIZINGELEMENTS", + 3242617779: "IFCRELCONTAINEDINSPATIALSTRUCTURE", + 886880790: "IFCRELCOVERSBLDGELEMENTS", + 2802773753: "IFCRELCOVERSSPACES", + 2565941209: "IFCRELDECLARES", + 2551354335: "IFCRELDECOMPOSES", + 693640335: "IFCRELDEFINES", + 1462361463: "IFCRELDEFINESBYOBJECT", + 4186316022: "IFCRELDEFINESBYPROPERTIES", + 307848117: "IFCRELDEFINESBYTEMPLATE", + 781010003: "IFCRELDEFINESBYTYPE", + 3940055652: "IFCRELFILLSELEMENT", + 279856033: "IFCRELFLOWCONTROLELEMENTS", + 427948657: "IFCRELINTERFERESELEMENTS", + 3268803585: "IFCRELNESTS", + 1441486842: "IFCRELPOSITIONS", + 750771296: "IFCRELPROJECTSELEMENT", + 1245217292: "IFCRELREFERENCEDINSPATIALSTRUCTURE", + 4122056220: "IFCRELSEQUENCE", + 366585022: "IFCRELSERVICESBUILDINGS", + 3451746338: "IFCRELSPACEBOUNDARY", + 3523091289: "IFCRELSPACEBOUNDARY1STLEVEL", + 1521410863: "IFCRELSPACEBOUNDARY2NDLEVEL", + 1401173127: "IFCRELVOIDSELEMENT", + 478536968: "IFCRELATIONSHIP", + 816062949: "IFCREPARAMETRISEDCOMPOSITECURVESEGMENT", + 1076942058: "IFCREPRESENTATION", + 3377609919: "IFCREPRESENTATIONCONTEXT", + 3008791417: "IFCREPRESENTATIONITEM", + 1660063152: "IFCREPRESENTATIONMAP", + 2914609552: "IFCRESOURCE", + 2943643501: "IFCRESOURCEAPPROVALRELATIONSHIP", + 1608871552: "IFCRESOURCECONSTRAINTRELATIONSHIP", + 2439245199: "IFCRESOURCELEVELRELATIONSHIP", + 1042787934: "IFCRESOURCETIME", + 1856042241: "IFCREVOLVEDAREASOLID", + 3243963512: "IFCREVOLVEDAREASOLIDTAPERED", + 4158566097: "IFCRIGHTCIRCULARCONE", + 3626867408: "IFCRIGHTCIRCULARCYLINDER", + 2016517767: "IFCROOF", + 2781568857: "IFCROOFTYPE", + 2341007311: "IFCROOT", + 2778083089: "IFCROUNDEDRECTANGLEPROFILEDEF", + 448429030: "IFCSIUNIT", + 3053780830: "IFCSANITARYTERMINAL", + 1768891740: "IFCSANITARYTERMINALTYPE", + 1054537805: "IFCSCHEDULINGTIME", + 2157484638: "IFCSEAMCURVE", + 2042790032: "IFCSECTIONPROPERTIES", + 4165799628: "IFCSECTIONREINFORCEMENTPROPERTIES", + 1862484736: "IFCSECTIONEDSOLID", + 1290935644: "IFCSECTIONEDSOLIDHORIZONTAL", + 1509187699: "IFCSECTIONEDSPINE", + 4086658281: "IFCSENSOR", + 1783015770: "IFCSENSORTYPE", + 1329646415: "IFCSHADINGDEVICE", + 4074543187: "IFCSHADINGDEVICETYPE", + 867548509: "IFCSHAPEASPECT", + 3982875396: "IFCSHAPEMODEL", + 4240577450: "IFCSHAPEREPRESENTATION", + 4124623270: "IFCSHELLBASEDSURFACEMODEL", + 3692461612: "IFCSIMPLEPROPERTY", + 3663146110: "IFCSIMPLEPROPERTYTEMPLATE", + 4097777520: "IFCSITE", + 1529196076: "IFCSLAB", + 3127900445: "IFCSLABELEMENTEDCASE", + 3027962421: "IFCSLABSTANDARDCASE", + 2533589738: "IFCSLABTYPE", + 2609359061: "IFCSLIPPAGECONNECTIONCONDITION", + 3420628829: "IFCSOLARDEVICE", + 1072016465: "IFCSOLARDEVICETYPE", + 723233188: "IFCSOLIDMODEL", + 3856911033: "IFCSPACE", + 1999602285: "IFCSPACEHEATER", + 1305183839: "IFCSPACEHEATERTYPE", + 3812236995: "IFCSPACETYPE", + 1412071761: "IFCSPATIALELEMENT", + 710998568: "IFCSPATIALELEMENTTYPE", + 2706606064: "IFCSPATIALSTRUCTUREELEMENT", + 3893378262: "IFCSPATIALSTRUCTUREELEMENTTYPE", + 463610769: "IFCSPATIALZONE", + 2481509218: "IFCSPATIALZONETYPE", + 451544542: "IFCSPHERE", + 4015995234: "IFCSPHERICALSURFACE", + 1404847402: "IFCSTACKTERMINAL", + 3112655638: "IFCSTACKTERMINALTYPE", + 331165859: "IFCSTAIR", + 4252922144: "IFCSTAIRFLIGHT", + 1039846685: "IFCSTAIRFLIGHTTYPE", + 338393293: "IFCSTAIRTYPE", + 682877961: "IFCSTRUCTURALACTION", + 3544373492: "IFCSTRUCTURALACTIVITY", + 2515109513: "IFCSTRUCTURALANALYSISMODEL", + 1179482911: "IFCSTRUCTURALCONNECTION", + 2273995522: "IFCSTRUCTURALCONNECTIONCONDITION", + 1004757350: "IFCSTRUCTURALCURVEACTION", + 4243806635: "IFCSTRUCTURALCURVECONNECTION", + 214636428: "IFCSTRUCTURALCURVEMEMBER", + 2445595289: "IFCSTRUCTURALCURVEMEMBERVARYING", + 2757150158: "IFCSTRUCTURALCURVEREACTION", + 3136571912: "IFCSTRUCTURALITEM", + 1807405624: "IFCSTRUCTURALLINEARACTION", + 2162789131: "IFCSTRUCTURALLOAD", + 385403989: "IFCSTRUCTURALLOADCASE", + 3478079324: "IFCSTRUCTURALLOADCONFIGURATION", + 1252848954: "IFCSTRUCTURALLOADGROUP", + 1595516126: "IFCSTRUCTURALLOADLINEARFORCE", + 609421318: "IFCSTRUCTURALLOADORRESULT", + 2668620305: "IFCSTRUCTURALLOADPLANARFORCE", + 2473145415: "IFCSTRUCTURALLOADSINGLEDISPLACEMENT", + 1973038258: "IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION", + 1597423693: "IFCSTRUCTURALLOADSINGLEFORCE", + 1190533807: "IFCSTRUCTURALLOADSINGLEFORCEWARPING", + 2525727697: "IFCSTRUCTURALLOADSTATIC", + 3408363356: "IFCSTRUCTURALLOADTEMPERATURE", + 530289379: "IFCSTRUCTURALMEMBER", + 1621171031: "IFCSTRUCTURALPLANARACTION", + 2082059205: "IFCSTRUCTURALPOINTACTION", + 734778138: "IFCSTRUCTURALPOINTCONNECTION", + 1235345126: "IFCSTRUCTURALPOINTREACTION", + 3689010777: "IFCSTRUCTURALREACTION", + 2986769608: "IFCSTRUCTURALRESULTGROUP", + 3657597509: "IFCSTRUCTURALSURFACEACTION", + 1975003073: "IFCSTRUCTURALSURFACECONNECTION", + 3979015343: "IFCSTRUCTURALSURFACEMEMBER", + 2218152070: "IFCSTRUCTURALSURFACEMEMBERVARYING", + 603775116: "IFCSTRUCTURALSURFACEREACTION", + 2830218821: "IFCSTYLEMODEL", + 3958052878: "IFCSTYLEDITEM", + 3049322572: "IFCSTYLEDREPRESENTATION", + 148013059: "IFCSUBCONTRACTRESOURCE", + 4095615324: "IFCSUBCONTRACTRESOURCETYPE", + 2233826070: "IFCSUBEDGE", + 2513912981: "IFCSURFACE", + 699246055: "IFCSURFACECURVE", + 2028607225: "IFCSURFACECURVESWEPTAREASOLID", + 3101698114: "IFCSURFACEFEATURE", + 2809605785: "IFCSURFACEOFLINEAREXTRUSION", + 4124788165: "IFCSURFACEOFREVOLUTION", + 2934153892: "IFCSURFACEREINFORCEMENTAREA", + 1300840506: "IFCSURFACESTYLE", + 3303107099: "IFCSURFACESTYLELIGHTING", + 1607154358: "IFCSURFACESTYLEREFRACTION", + 1878645084: "IFCSURFACESTYLERENDERING", + 846575682: "IFCSURFACESTYLESHADING", + 1351298697: "IFCSURFACESTYLEWITHTEXTURES", + 626085974: "IFCSURFACETEXTURE", + 2247615214: "IFCSWEPTAREASOLID", + 1260650574: "IFCSWEPTDISKSOLID", + 1096409881: "IFCSWEPTDISKSOLIDPOLYGONAL", + 230924584: "IFCSWEPTSURFACE", + 1162798199: "IFCSWITCHINGDEVICE", + 2315554128: "IFCSWITCHINGDEVICETYPE", + 2254336722: "IFCSYSTEM", + 413509423: "IFCSYSTEMFURNITUREELEMENT", + 1580310250: "IFCSYSTEMFURNITUREELEMENTTYPE", + 3071757647: "IFCTSHAPEPROFILEDEF", + 985171141: "IFCTABLE", + 2043862942: "IFCTABLECOLUMN", + 531007025: "IFCTABLEROW", + 812556717: "IFCTANK", + 5716631: "IFCTANKTYPE", + 3473067441: "IFCTASK", + 1549132990: "IFCTASKTIME", + 2771591690: "IFCTASKTIMERECURRING", + 3206491090: "IFCTASKTYPE", + 912023232: "IFCTELECOMADDRESS", + 3824725483: "IFCTENDON", + 2347447852: "IFCTENDONANCHOR", + 3081323446: "IFCTENDONANCHORTYPE", + 3663046924: "IFCTENDONCONDUIT", + 2281632017: "IFCTENDONCONDUITTYPE", + 2415094496: "IFCTENDONTYPE", + 2387106220: "IFCTESSELLATEDFACESET", + 901063453: "IFCTESSELLATEDITEM", + 4282788508: "IFCTEXTLITERAL", + 3124975700: "IFCTEXTLITERALWITHEXTENT", + 1447204868: "IFCTEXTSTYLE", + 1983826977: "IFCTEXTSTYLEFONTMODEL", + 2636378356: "IFCTEXTSTYLEFORDEFINEDFONT", + 1640371178: "IFCTEXTSTYLETEXTMODEL", + 280115917: "IFCTEXTURECOORDINATE", + 1742049831: "IFCTEXTURECOORDINATEGENERATOR", + 2552916305: "IFCTEXTUREMAP", + 1210645708: "IFCTEXTUREVERTEX", + 3611470254: "IFCTEXTUREVERTEXLIST", + 1199560280: "IFCTIMEPERIOD", + 3101149627: "IFCTIMESERIES", + 581633288: "IFCTIMESERIESVALUE", + 1377556343: "IFCTOPOLOGICALREPRESENTATIONITEM", + 1735638870: "IFCTOPOLOGYREPRESENTATION", + 1935646853: "IFCTOROIDALSURFACE", + 3825984169: "IFCTRANSFORMER", + 1692211062: "IFCTRANSFORMERTYPE", + 2595432518: "IFCTRANSITIONCURVESEGMENT2D", + 1620046519: "IFCTRANSPORTELEMENT", + 2097647324: "IFCTRANSPORTELEMENTTYPE", + 2715220739: "IFCTRAPEZIUMPROFILEDEF", + 2916149573: "IFCTRIANGULATEDFACESET", + 1229763772: "IFCTRIANGULATEDIRREGULARNETWORK", + 3593883385: "IFCTRIMMEDCURVE", + 3026737570: "IFCTUBEBUNDLE", + 1600972822: "IFCTUBEBUNDLETYPE", + 1628702193: "IFCTYPEOBJECT", + 3736923433: "IFCTYPEPROCESS", + 2347495698: "IFCTYPEPRODUCT", + 3698973494: "IFCTYPERESOURCE", + 427810014: "IFCUSHAPEPROFILEDEF", + 180925521: "IFCUNITASSIGNMENT", + 630975310: "IFCUNITARYCONTROLELEMENT", + 3179687236: "IFCUNITARYCONTROLELEMENTTYPE", + 4292641817: "IFCUNITARYEQUIPMENT", + 1911125066: "IFCUNITARYEQUIPMENTTYPE", + 4207607924: "IFCVALVE", + 728799441: "IFCVALVETYPE", + 1417489154: "IFCVECTOR", + 2799835756: "IFCVERTEX", + 2759199220: "IFCVERTEXLOOP", + 1907098498: "IFCVERTEXPOINT", + 1530820697: "IFCVIBRATIONDAMPER", + 3956297820: "IFCVIBRATIONDAMPERTYPE", + 2391383451: "IFCVIBRATIONISOLATOR", + 3313531582: "IFCVIBRATIONISOLATORTYPE", + 2769231204: "IFCVIRTUALELEMENT", + 891718957: "IFCVIRTUALGRIDINTERSECTION", + 926996030: "IFCVOIDINGFEATURE", + 2391406946: "IFCWALL", + 4156078855: "IFCWALLELEMENTEDCASE", + 3512223829: "IFCWALLSTANDARDCASE", + 1898987631: "IFCWALLTYPE", + 4237592921: "IFCWASTETERMINAL", + 1133259667: "IFCWASTETERMINALTYPE", + 3304561284: "IFCWINDOW", + 336235671: "IFCWINDOWLININGPROPERTIES", + 512836454: "IFCWINDOWPANELPROPERTIES", + 486154966: "IFCWINDOWSTANDARDCASE", + 1299126871: "IFCWINDOWSTYLE", + 4009809668: "IFCWINDOWTYPE", + 4088093105: "IFCWORKCALENDAR", + 1028945134: "IFCWORKCONTROL", + 4218914973: "IFCWORKPLAN", + 3342526732: "IFCWORKSCHEDULE", + 1236880293: "IFCWORKTIME", + 2543172580: "IFCZSHAPEPROFILEDEF", + 1033361043: "IFCZONE", +}; + +const GeometryTypes = new Set([ + 1123145078, 574549367, 1675464909, 2059837836, 3798115385, 32440307, + 3125803723, 3207858831, 2740243338, 2624227202, 4240577450, 3615266464, + 3724593414, 220341763, 477187591, 1878645084, 1300840506, 3303107099, + 1607154358, 1878645084, 846575682, 1351298697, 2417041796, 3049322572, + 3331915920, 1416205885, 776857604, 3285139300, 3958052878, 2827736869, + 2732653382, 673634403, 3448662350, 4142052618, 2924175390, 803316827, + 2556980723, 1809719519, 2205249479, 807026263, 3737207727, 1660063152, + 2347385850, 3940055652, 2705031697, 3732776249, 2485617015, 2611217952, + 1704287377, 2937912522, 2770003689, 1281925730, 1484403080, 3448662350, + 4142052618, 3800577675, 4006246654, 3590301190, 1383045692, 2775532180, + 2047409740, 370225590, 3593883385, 2665983363, 4124623270, 812098782, + 3649129432, 987898635, 1105321065, 3510044353, 1635779807, 2603310189, + 3406155212, 1310608509, 4261334040, 2736907675, 3649129432, 1136057603, + 1260505505, 4182860854, 2713105998, 2898889636, 59481748, 3749851601, + 3486308946, 3150382593, 1062206242, 3264961684, 15328376, 1485152156, + 370225590, 1981873012, 2859738748, 45288368, 2614616156, 2732653382, + 775493141, 2147822146, 2601014836, 2629017746, 1186437898, 2367409068, + 1213902940, 3632507154, 3900360178, 476780140, 1472233963, 2804161546, + 3008276851, 738692330, 374418227, 315944413, 3905492369, 3570813810, + 2571569899, 178912537, 2294589976, 1437953363, 2133299955, 572779678, + 3092502836, 388784114, 2624227202, 1425443689, 3057273783, 2347385850, + 1682466193, 2519244187, 2839578677, 3958567839, 2513912981, 2830218821, + 427810014, +]); + +/** + * Object to export all the properties from an IFC to a JS object. + */ +class IfcJsonExporter { + constructor() { + this.onLoadProgress = new Event(); + this.onPropertiesSerialized = new Event(); + this._progress = 0; + } + /** + * Exports all the properties of an IFC into an array of JS objects. + * @webIfc The instance of [web-ifc]{@link https://github.com/ifcjs/web-ifc} to use. + * @modelID ID of the IFC model whose properties to extract. + */ + async export(webIfc, modelID) { + const geometriesIDs = await this.getAllGeometriesIDs(modelID, webIfc); + let properties = {}; + properties.coordinationMatrix = webIfc.GetCoordinationMatrix(modelID); + const allLinesIDs = await webIfc.GetAllLines(modelID); + const linesCount = allLinesIDs.size(); + this._progress = 0.1; + let counter = 0; + for (let i = 0; i < linesCount; i++) { + const id = allLinesIDs.get(i); + if (!geometriesIDs.has(id)) { + try { + properties[id] = await webIfc.GetLine(modelID, id); + } + catch (e) { + console.log(`Properties of the element ${id} could not be processed`); + } + counter++; + } + if (this.size !== undefined && counter > this.size) { + await this.onPropertiesSerialized.trigger(properties); + properties = null; + properties = {}; + counter = 0; + } + if (i / linesCount > this._progress) { + await this.onLoadProgress.trigger({ + progress: i, + total: linesCount, + }); + this._progress += 0.1; + } + } + await this.onPropertiesSerialized.trigger(properties); + properties = null; + } + async getAllGeometriesIDs(modelID, webIfc) { + // Exclude location info of spatial structure + const placementIDs = new Set(); + const structures = new Set(); + this.getStructure(IFCPROJECT, structures, webIfc); + this.getStructure(IFCSITE, structures, webIfc); + this.getStructure(IFCBUILDING, structures, webIfc); + this.getStructure(IFCBUILDINGSTOREY, structures, webIfc); + this.getStructure(IFCSPACE, structures, webIfc); + for (const id of structures) { + const properties = webIfc.GetLine(0, id); + const placementRef = properties.ObjectPlacement; + if (!placementRef || placementRef.value === null) { + continue; + } + const placementID = placementRef.value; + placementIDs.add(placementID); + const placementProps = webIfc.GetLine(0, placementID); + const relPlacementID = placementProps.RelativePlacement; + if (!relPlacementID || relPlacementID.value === null) { + continue; + } + placementIDs.add(relPlacementID.value); + const relPlacement = webIfc.GetLine(0, relPlacementID.value); + const location = relPlacement.Location; + if (location && location.value !== null) { + placementIDs.add(location.value); + } + } + const geometriesIDs = new Set(); + const geomTypesArray = Array.from(GeometryTypes); + for (let i = 0; i < geomTypesArray.length; i++) { + const category = geomTypesArray[i]; + // eslint-disable-next-line no-await-in-loop + const ids = await webIfc.GetLineIDsWithType(modelID, category); + const idsSize = ids.size(); + for (let j = 0; j < idsSize; j++) { + const id = ids.get(j); + if (placementIDs.has(id)) { + continue; + } + geometriesIDs.add(id); + } + } + return geometriesIDs; + } + getStructure(type, result, webIfc) { + const found = webIfc.GetLineIDsWithType(0, type); + const size = found.size(); + for (let i = 0; i < size; i++) { + const id = found.get(i); + result.add(id); + } + } +} + +class IfcPropertiesUtils { + static getUnits(properties) { + var _a; + const { IFCUNITASSIGNMENT } = WEBIFC; + const allUnits = this.findItemOfType(properties, IFCUNITASSIGNMENT); + if (!allUnits) + return 1; + for (const unitRef of allUnits.Units) { + if (unitRef.value === undefined || unitRef.value === null) + continue; + const unit = properties[unitRef.value]; + if (!unit.UnitType || !unit.UnitType.value) + continue; + const value = unit.UnitType.value; + if (value !== "LENGTHUNIT") + continue; + let factor = 1; + let unitValue = 1; + if (unit.Name.value === "METRE") + unitValue = 1; + if (unit.Name.value === "FOOT") + unitValue = 0.3048; + if (((_a = unit.Prefix) === null || _a === void 0 ? void 0 : _a.value) === "MILLI") + factor = 0.001; + return unitValue * factor; + } + return 1; + } + static findItemByGuid(properties, guid) { + var _a; + for (const id in properties) { + const property = properties[id]; + if (((_a = property.GlobalId) === null || _a === void 0 ? void 0 : _a.value) === guid) { + return property; + } + } + return null; + } + static findItemOfType(properties, type) { + for (const id in properties) { + const property = properties[id]; + if (property.type === type) { + return property; + } + } + return null; + } + static getAllItemsOfType(properties, type) { + const found = []; + for (const id in properties) { + const property = properties[id]; + if (!property) + continue; + if (property.type === type) { + found.push(property); + } + } + return found; + } + static getRelationMap(properties, relationType, onElementsFound) { + var _a; + const defaultCallback = () => { }; + const _onElementsFound = onElementsFound !== null && onElementsFound !== void 0 ? onElementsFound : defaultCallback; + const result = {}; + for (const expressID in properties) { + const prop = properties[expressID]; + if (prop === undefined) { + continue; + } + const isRelation = prop.type === relationType; + const relatingKey = Object.keys(prop).find((key) => key.startsWith("Relating")); + const relatedKey = Object.keys(prop).find((key) => key.startsWith("Related")); + if (!(isRelation && relatingKey && relatedKey)) + continue; + const relating = properties[(_a = prop[relatingKey]) === null || _a === void 0 ? void 0 : _a.value]; + const related = prop[relatedKey]; + if (relating === undefined || related === undefined) { + continue; + } + if (!(related && Array.isArray(related))) + continue; + const elements = related.map((el) => { + return el.value; + }); + _onElementsFound(relating.expressID, elements); + result[relating.expressID] = elements; + } + return result; + } + static getQsetQuantities(properties, expressID, onQuantityFound) { + var _a; + const defaultCallback = () => { }; + const _onQuantityFound = onQuantityFound !== null && onQuantityFound !== void 0 ? onQuantityFound : defaultCallback; + const pset = properties[expressID]; + if ((pset === null || pset === void 0 ? void 0 : pset.type) !== IFCELEMENTQUANTITY) + return null; + const quantities = (_a = pset.Quantities) !== null && _a !== void 0 ? _a : [{}]; + const qtos = quantities.map((prop) => { + if (prop.value) + _onQuantityFound(prop.value); + return prop.value; + }); + return qtos.filter((prop) => prop !== null); + } + static getPsetProps(properties, expressID, onPropFound) { + var _a; + const defaultCallback = () => { }; + const _onPropFound = onPropFound !== null && onPropFound !== void 0 ? onPropFound : defaultCallback; + const pset = properties[expressID]; + if ((pset === null || pset === void 0 ? void 0 : pset.type) !== IFCPROPERTYSET) + return null; + const hasProperties = (_a = pset.HasProperties) !== null && _a !== void 0 ? _a : [{}]; + const props = hasProperties.map((prop) => { + if (prop.value) + _onPropFound(prop.value); + return prop.value; + }); + return props.filter((prop) => prop !== null); + } + static getPsetRel(properties, psetID) { + const arrayProperties = Object.values(properties); + if (!properties[psetID]) + return null; + const rel = arrayProperties.find((data) => { + var _a; + const isRelation = data.type === IFCRELDEFINESBYPROPERTIES; + const relatesToPset = ((_a = data.RelatingPropertyDefinition) === null || _a === void 0 ? void 0 : _a.value) === psetID; + return isRelation && relatesToPset; + }); + return rel ? rel.expressID : null; + } + static getQsetRel(properties, qsetID) { + return IfcPropertiesUtils.getPsetRel(properties, qsetID); + } + static getEntityName(properties, entityID) { + var _a; + const entity = properties[entityID]; + const key = (_a = Object.keys(entity).find((key) => key.endsWith("Name"))) !== null && _a !== void 0 ? _a : null; + const name = key ? entity[key].value : null; + return { key, name }; + } + static getQuantityValue(properties, quantityID) { + var _a; + const quantity = properties[quantityID]; + const key = (_a = Object.keys(quantity).find((key) => key.endsWith("Value"))) !== null && _a !== void 0 ? _a : null; + let value; + if (key === null) { + value = null; + } + else if (quantity[key] === undefined || quantity[key] === null) { + value = null; + } + else { + value = quantity[key].value; + } + return { key, value }; + } + static isRel(expressID) { + const entityName = IfcCategoryMap[expressID]; + return entityName.startsWith("IFCREL"); + } + static attributeExists(properties, expressID, attribute) { + const entity = properties[expressID]; + if (!entity) + return false; + return Object.keys(properties[expressID]).includes(attribute); + } + static groupEntitiesByType(properties, expressIDs) { + var _a; + const categoriesMap = new Map(); + for (const expressID of expressIDs) { + const entity = properties[expressID]; + if (!entity) + continue; + const key = entity.type; + const set = categoriesMap.get(key); + if (!set) + categoriesMap.set(key, new Set()); + (_a = categoriesMap.get(key)) === null || _a === void 0 ? void 0 : _a.add(expressID); + } + return categoriesMap; + } +} + +class EntityActionsUI extends SimpleUIComponent { + constructor(components) { + super(components, `
`); + this.onNewPset = new Event(); + this.data = {}; + this.addPsetBtn = new Button(this._components, { + materialIconName: "add", + }); + this.addPsetBtn.onClick.add(async () => { + this._nameInput.value = ""; + this._descriptionInput.value = ""; + this.modal.visible = true; + }); + this.addChild(this.addPsetBtn); + this.modal = new Modal(components, "New Property Set"); + this._components.ui.add(this.modal); + this.modal.visible = false; + this.modal.onHidden.add(() => this.removeFromParent()); + const addPsetUI = new SimpleUIComponent(this._components, `
`); + this.modal.setSlot("content", addPsetUI); + this._nameInput = new TextInput(this._components); + this._nameInput.label = "Name"; + this._descriptionInput = new TextInput(this._components); + this._descriptionInput.label = "Description"; + this.modal.onAccept.add(() => { + const name = this._nameInput.value; + const description = this._descriptionInput.value; + this.modal.visible = false; + const { model, elementIDs } = this.data; + if (!model || name === "") + return; + this.onNewPset.trigger({ model, elementIDs, name, description }); + }); + this.modal.onCancel.add(() => (this.modal.visible = false)); + addPsetUI.addChild(this._nameInput, this._descriptionInput); + } + async dispose(onlyChildren = false) { + await super.dispose(onlyChildren); + this.data = {}; + this.onNewPset.reset(); + await this.addPsetBtn.dispose(); + await this.modal.dispose(); + await this._nameInput.dispose(); + await this._descriptionInput.dispose(); + } +} + +class PsetActionsUI extends SimpleUIComponent { + constructor(components) { + super(components, `
`); + this.modalVisible = false; + this.onEditPset = new Event(); + this.onRemovePset = new Event(); + this.onNewProp = new Event(); + this.data = {}; + this.editPsetBtn = new Button(this._components); + this.editPsetBtn.materialIcon = "edit"; + this.setEditUI(); + this.removePsetBtn = new Button(this._components); + this.removePsetBtn.materialIcon = "delete"; + this.setRemoveUI(); + this.addPropBtn = new Button(this._components); + this.addPropBtn.materialIcon = "add"; + this.setAddPropUI(); + this.addChild(this.addPropBtn, this.editPsetBtn, this.removePsetBtn); + this._modal = new SimpleUIComponent(components, ``); + this._components.ui.add(this._modal); + this._modal.get().addEventListener("close", () => { + this.removeFromParent(); + this.modalVisible = false; + this._modalWindow.visible = false; + }); + this._modalWindow = new FloatingWindow(this._components); + this._modalWindow.get().className = + "overflow-auto text-white bg-ifcjs-100 rounded-md w-[350px]"; + this._modalWindow.onHidden.add(() => this._modal.get().close()); + this._modal.addChild(this._modalWindow); + } + async dispose(onlyChildren = false) { + await super.dispose(onlyChildren); + await this.editPsetBtn.dispose(); + await this.removePsetBtn.dispose(); + await this.addPropBtn.dispose(); + await this._modal.dispose(); + await this._modalWindow.dispose(); + this.onEditPset.reset(); + this.onRemovePset.reset(); + this.onNewProp.reset(); + this.data = {}; + } + setEditUI() { + const editUI = new SimpleUIComponent(this._components, `
`); + const nameInput = new TextInput(this._components); + nameInput.label = "Name"; + const descriptionInput = new TextInput(this._components); + descriptionInput.label = "Description"; + const acceptBtn = new Button(this._components); + acceptBtn.materialIcon = "check"; + acceptBtn.label = "Accept"; + acceptBtn.get().classList.remove("hover:bg-ifcjs-200"); + acceptBtn.get().classList.add("hover:bg-success"); + acceptBtn.onClick.add(async () => { + this._modal.get().close(); + const { model, psetID } = this.data; + if (!model || !psetID) + return; + await this.onEditPset.trigger({ + model, + psetID, + name: nameInput.value, + description: descriptionInput.value, + }); + }); + const cancelBtn = new Button(this._components); + cancelBtn.materialIcon = "close"; + cancelBtn.label = "Cancel"; + cancelBtn.get().classList.remove("hover:bg-ifcjs-200"); + cancelBtn.get().classList.add("hover:bg-error"); + cancelBtn.onClick.add(() => this._modal.get().close()); + const actionBtns = new SimpleUIComponent(this._components, `
`); + actionBtns.addChild(cancelBtn, acceptBtn); + editUI.addChild(nameInput, descriptionInput, actionBtns); + this.editPsetBtn.onClick.add(async () => { + var _a, _b, _c, _d; + const { model, psetID } = this.data; + const properties = model === null || model === void 0 ? void 0 : model.properties; + if (!model || !psetID || !properties) + return; + const entity = properties[psetID]; + nameInput.value = (_b = (_a = entity.Name) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : ""; + descriptionInput.value = (_d = (_c = entity.Description) === null || _c === void 0 ? void 0 : _c.value) !== null && _d !== void 0 ? _d : ""; + this._modalWindow.title = "Edit Property Set"; + this._modalWindow.setSlot("content", editUI); + this.showModal(); + }); + } + setRemoveUI() { + const removeUI = new SimpleUIComponent(this._components, `
`); + const warningText = document.createElement("div"); + warningText.className = "text-base text-center"; + warningText.textContent = + "Are you sure to delete this property set? This action can't be undone."; + removeUI.get().append(warningText); + const acceptBtn = new Button(this._components); + acceptBtn.materialIcon = "check"; + acceptBtn.label = "Accept"; + acceptBtn.get().classList.remove("hover:bg-ifcjs-200"); + acceptBtn.get().classList.add("hover:bg-success"); + acceptBtn.onClick.add(async () => { + this._modal.get().close(); + const { model, psetID } = this.data; + if (!model || !psetID) + return; + this.removeFromParent(); // As the psetUI is going to be disposed, then we need to first remove the action buttons so they do not become disposed as well. + await this.onRemovePset.trigger({ model, psetID }); + }); + const cancelBtn = new Button(this._components); + cancelBtn.materialIcon = "close"; + cancelBtn.label = "Cancel"; + cancelBtn.get().classList.remove("hover:bg-ifcjs-200"); + cancelBtn.get().classList.add("hover:bg-error"); + cancelBtn.onClick.add(() => this._modal.get().close()); + const actionBtns = new SimpleUIComponent(this._components, `
`); + actionBtns.addChild(cancelBtn, acceptBtn); + removeUI.addChild(actionBtns); + this.removePsetBtn.onClick.add(async () => { + const { model, psetID } = this.data; + if (!model || !psetID) + return; + this._modalWindow.title = "Remove Property Set"; + this._modalWindow.setSlot("content", removeUI); + this.showModal(); + }); + } + setAddPropUI() { + const addPropUI = new SimpleUIComponent(this._components, `
`); + const nameInput = new TextInput(this._components); + nameInput.label = "Name"; + const typeInput = new Dropdown(this._components); + typeInput.label = "Type"; + typeInput.addOption("IfcText", "IfcLabel", "IfcIdentifier"); + typeInput.value = "IfcText"; + const valueInput = new TextInput(this._components); + valueInput.label = "Value"; + const acceptBtn = new Button(this._components); + acceptBtn.materialIcon = "check"; + acceptBtn.label = "Accept"; + acceptBtn.get().classList.remove("hover:bg-ifcjs-200"); + acceptBtn.get().classList.add("hover:bg-success"); + acceptBtn.onClick.add(async () => { + this._modal.get().close(); + const { model, psetID } = this.data; + if (!model || !psetID) + return; + const name = nameInput.value; + const type = typeInput.value; + if (name === "" || !type) + return; + await this.onNewProp.trigger({ + model, + psetID, + name, + type, + value: valueInput.value, + }); + }); + const cancelBtn = new Button(this._components); + cancelBtn.materialIcon = "close"; + cancelBtn.label = "Cancel"; + cancelBtn.get().classList.remove("hover:bg-ifcjs-200"); + cancelBtn.get().classList.add("hover:bg-error"); + cancelBtn.onClick.add(() => this._modal.get().close()); + const actionBtns = new SimpleUIComponent(this._components, `
`); + actionBtns.addChild(cancelBtn, acceptBtn); + addPropUI.addChild(nameInput, typeInput, valueInput, actionBtns); + this.addPropBtn.onClick.add(async () => { + const { model, psetID } = this.data; + if (!model || !psetID) + return; + this._modalWindow.title = "New Property"; + this._modalWindow.setSlot("content", addPropUI); + this.showModal(); + }); + } + showModal() { + this.modalVisible = true; + this._modalWindow.visible = true; + this._modal.get().showModal(); + } +} + +class PropActionsUI extends SimpleUIComponent { + constructor(components) { + const div = document.createElement("div"); + div.className = "flex"; + super(components, `
`); + this.modalVisible = false; + this.onEditProp = new Event(); + this.onRemoveProp = new Event(); + this.data = {}; + this.editPropBtn = new Button(this._components); + this.editPropBtn.materialIcon = "edit"; + this.setEditUI(); + this.removePropBtn = new Button(this._components); + this.removePropBtn.materialIcon = "delete"; + this.setRemoveUI(); + this.addChild(this.editPropBtn, this.removePropBtn); + this._modal = new SimpleUIComponent(components, ``); + this._components.ui.add(this._modal); + this._modal.get().addEventListener("close", () => { + this.removeFromParent(); + this.modalVisible = false; + this._modalWindow.visible = false; + }); + this._modalWindow = new FloatingWindow(this._components); + this._modalWindow.get().className = + "overflow-auto text-white bg-ifcjs-100 rounded-md w-[350px]"; + this._modalWindow.onHidden.add(() => this._modal.get().close()); + this._modal.addChild(this._modalWindow); + } + async dispose(onlyChildren = false) { + await super.dispose(onlyChildren); + this.onRemoveProp.reset(); + await this.editPropBtn.dispose(); + await this.removePropBtn.dispose(); + await this._modal.dispose(); + await this._modalWindow.dispose(); + this.data = {}; + } + setEditUI() { + const editUI = new SimpleUIComponent(this._components, `
`); + const nameInput = new TextInput(this._components); + nameInput.label = "Name"; + const valueInput = new TextInput(this._components); + valueInput.label = "Value"; + const acceptBtn = new Button(this._components); + acceptBtn.materialIcon = "check"; + acceptBtn.label = "Accept"; + acceptBtn.get().classList.remove("hover:bg-ifcjs-200"); + acceptBtn.get().classList.add("hover:bg-success"); + acceptBtn.onClick.add(async () => { + this._modal.get().close(); + const { model, expressID } = this.data; + if (!model || !expressID) + return; + await this.onEditProp.trigger({ + model, + expressID, + name: nameInput.value, + value: valueInput.value, + }); + }); + const cancelBtn = new Button(this._components); + cancelBtn.materialIcon = "close"; + cancelBtn.label = "Cancel"; + cancelBtn.get().classList.remove("hover:bg-ifcjs-200"); + cancelBtn.get().classList.add("hover:bg-error"); + cancelBtn.onClick.add(() => this._modal.get().close()); + const actionBtns = new SimpleUIComponent(this._components, `
`); + actionBtns.addChild(cancelBtn, acceptBtn); + editUI.addChild(nameInput, valueInput, actionBtns); + this.editPropBtn.onClick.add(async () => { + var _a, _b, _c, _d, _e, _f, _g, _h; + const { model, expressID } = this.data; + const properties = model === null || model === void 0 ? void 0 : model.properties; + if (!model || !expressID || !properties) + return; + const prop = properties[expressID]; + const { key: nameKey } = IfcPropertiesUtils.getEntityName(properties, expressID); + if (nameKey) { + nameInput.value = (_b = (_a = prop[nameKey]) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : ""; + } + else { + nameInput.value = (_d = (_c = prop.Name) === null || _c === void 0 ? void 0 : _c.value) !== null && _d !== void 0 ? _d : ""; + } + const { key: valueKey } = IfcPropertiesUtils.getQuantityValue(properties, expressID); + if (valueKey) { + valueInput.value = (_f = (_e = prop[valueKey]) === null || _e === void 0 ? void 0 : _e.value) !== null && _f !== void 0 ? _f : ""; + } + else { + valueInput.value = (_h = (_g = prop.NominalValue) === null || _g === void 0 ? void 0 : _g.value) !== null && _h !== void 0 ? _h : ""; + } + this._modalWindow.title = "Edit Property"; + this._modalWindow.setSlot("content", editUI); + this.showModal(); + }); + } + setRemoveUI() { + const removeUI = new SimpleUIComponent(this._components, `
`); + const warningText = document.createElement("div"); + warningText.className = "text-base text-center"; + warningText.textContent = + "Are you sure to delete this property? This action can't be undone."; + removeUI.get().append(warningText); + const acceptBtn = new Button(this._components); + acceptBtn.materialIcon = "check"; + acceptBtn.label = "Accept"; + acceptBtn.get().classList.remove("hover:bg-ifcjs-200"); + acceptBtn.get().classList.add("hover:bg-success"); + acceptBtn.onClick.add(async () => { + this._modal.get().close(); + const { model, expressID, setID } = this.data; + if (!model || !expressID || !setID) + return; + this.removeFromParent(); // As the psetUI is going to be disposed, then we need to first remove the action buttons so they do not become disposed as well. + await this.onRemoveProp.trigger({ model, expressID, setID }); + }); + const cancelBtn = new Button(this._components); + cancelBtn.materialIcon = "close"; + cancelBtn.label = "Cancel"; + cancelBtn.get().classList.remove("hover:bg-ifcjs-200"); + cancelBtn.get().classList.add("hover:bg-error"); + cancelBtn.onClick.add(() => this._modal.get().close()); + const actionBtns = new SimpleUIComponent(this._components, `
`); + actionBtns.addChild(cancelBtn, acceptBtn); + removeUI.addChild(actionBtns); + this.removePropBtn.onClick.add(async () => { + const { model, expressID, setID } = this.data; + if (!model || !expressID || !setID) + return; + this._modalWindow.title = "Remove Property"; + this._modalWindow.setSlot("content", removeUI); + this.showModal(); + }); + } + showModal() { + this.modalVisible = true; + this._modalWindow.visible = true; + this._modal.get().showModal(); + } +} + +class IfcPropertiesManager extends Component { + constructor(components) { + super(components); + this.onRequestFile = new Event(); + this.ifcToExport = null; + this.onElementToPset = new Event(); + this.onPropToPset = new Event(); + this.onPsetRemoved = new Event(); + this.onDataChanged = new Event(); + this.wasm = { + path: "/", + absolute: false, + }; + this.enabled = true; + this.attributeListeners = {}; + this.uiElement = new UIElement(); + this._changeMap = {}; + this.components.tools.add(IfcPropertiesManager.uuid, this); + this._ifcApi = new IfcAPI2(); + // TODO: Save original IFC file so that opening it again is not necessary + if (components.ui.enabled) { + this.setUI(components); + this.setUIEvents(); + } + } + get() { + return this._changeMap; + } + async init() { + const { path, absolute } = this.wasm; + this._ifcApi.SetWasmPath(path, absolute); + await this._ifcApi.Init(); + } + async dispose() { + this._ifcApi = null; + this.selectedModel = undefined; + this.attributeListeners = {}; + this._changeMap = {}; + this.onElementToPset.reset(); + this.onPropToPset.reset(); + this.onPsetRemoved.reset(); + this.onDataChanged.reset(); + await this.uiElement.dispose(); + } + setUI(components) { + const exportButton = new Button(components); + exportButton.tooltip = "Export IFC"; + exportButton.materialIcon = "exit_to_app"; + exportButton.onClick.add(async () => { + await this.onRequestFile.trigger(); + if (!this.ifcToExport || !this.selectedModel) + return; + const fileData = new Uint8Array(this.ifcToExport); + const name = this.selectedModel.name; + const resultBuffer = await this.saveToIfc(this.selectedModel, fileData); + const resultFile = new File([new Blob([resultBuffer])], name); + const link = document.createElement("a"); + link.download = name; + link.href = URL.createObjectURL(resultFile); + link.click(); + link.remove(); + }); + this.uiElement.set({ + exportButton, + entityActions: new EntityActionsUI(components), + psetActions: new PsetActionsUI(components), + propActions: new PropActionsUI(components), + }); + } + setUIEvents() { + const entityActions = this.uiElement.get("entityActions"); + const propActions = this.uiElement.get("propActions"); + const psetActions = this.uiElement.get("psetActions"); + entityActions.onNewPset.add(async ({ model, elementIDs, name, description }) => { + const { pset } = await this.newPset(model, name, description === "" ? undefined : description); + for (const expressID of elementIDs !== null && elementIDs !== void 0 ? elementIDs : []) { + await this.addElementToPset(model, pset.expressID, expressID); + } + entityActions.cleanData(); + }); + propActions.onEditProp.add(async ({ model, expressID, name, value }) => { + var _a, _b; + const { properties } = IfcPropertiesManager.getIFCInfo(model); + const prop = properties[expressID]; + const { key: valueKey } = IfcPropertiesUtils.getQuantityValue(properties, expressID); + const { key: nameKey } = IfcPropertiesUtils.getEntityName(properties, expressID); + if (name !== "" && nameKey) { + if ((_a = prop[nameKey]) === null || _a === void 0 ? void 0 : _a.value) { + prop[nameKey].value = name; + } + else { + prop.Name = { type: 1, value: name }; + } + } + if (value !== "" && valueKey) { + if ((_b = prop[valueKey]) === null || _b === void 0 ? void 0 : _b.value) { + prop[valueKey].value = value; + } + else { + prop.NominalValue = { type: 1, value }; // Need to change type based on property 1:STRING, 2: LABEL, 3: ENUM, 4: REAL + } + } + await this.registerChange(model, expressID); + propActions.cleanData(); + }); + propActions.onRemoveProp.add(async ({ model, expressID, setID }) => { + await this.removePsetProp(model, setID, expressID); + propActions.cleanData(); + }); + psetActions.onEditPset.add(async ({ model, psetID, name, description }) => { + var _a, _b; + const { properties } = IfcPropertiesManager.getIFCInfo(model); + const pset = properties[psetID]; + if (name !== "") { + if ((_a = pset.Name) === null || _a === void 0 ? void 0 : _a.value) { + pset.Name.value = name; + } + else { + pset.Name = { type: 1, value: name }; + } + } + if (description !== "") { + if ((_b = pset.Description) === null || _b === void 0 ? void 0 : _b.value) { + pset.Description.value = description; + } + else { + pset.Description = { type: 1, value: description }; + } + } + await this.registerChange(model, psetID); + }); + psetActions.onRemovePset.add(async ({ model, psetID }) => { + await this.removePset(model, psetID); + }); + psetActions.onNewProp.add(async ({ model, psetID, name, type, value }) => { + const prop = await this.newSingleStringProperty(model, type, name, value); + await this.addPropToPset(model, psetID, prop.expressID); + }); + } + increaseMaxID(model) { + model.ifcMetadata.maxExpressID++; + } + static getIFCInfo(model) { + const properties = model.properties; + if (!properties) + throw new Error("FragmentsGroup properties not found"); + const schema = model.ifcMetadata.schema; + if (!schema) + throw new Error("IFC Schema not found"); + return { properties, schema }; + } + newGUID(model) { + const { schema } = IfcPropertiesManager.getIFCInfo(model); + return new WEBIFC[schema].IfcGloballyUniqueId(generateIfcGUID()); + } + getOwnerHistory(model) { + const { properties } = IfcPropertiesManager.getIFCInfo(model); + const ownerHistory = IfcPropertiesUtils.findItemOfType(properties, IFCOWNERHISTORY); + if (!ownerHistory) + throw new Error("No OwnerHistory was found."); + const ownerHistoryHandle = new Handle$5(ownerHistory.expressID); + return { ownerHistory, ownerHistoryHandle }; + } + async registerChange(model, ...expressID) { + if (!this._changeMap[model.uuid]) { + this._changeMap[model.uuid] = new Set(); + } + for (const id of expressID) { + this._changeMap[model.uuid].add(id); + await this.onDataChanged.trigger({ model, expressID: id }); + } + } + async setData(model, ...dataToSave) { + const { properties } = IfcPropertiesManager.getIFCInfo(model); + for (const data of dataToSave) { + const expressID = data.expressID; + if (!expressID) + continue; + properties[expressID] = data; + await this.registerChange(model, expressID); + } + } + async newPset(model, name, description) { + const { schema } = IfcPropertiesManager.getIFCInfo(model); + const { ownerHistoryHandle } = this.getOwnerHistory(model); + // Create the Pset + this.increaseMaxID(model); + const psetGlobalId = this.newGUID(model); + const psetName = new WEBIFC[schema].IfcLabel(name); + const psetDescription = description + ? new WEBIFC[schema].IfcText(description) + : null; + const pset = new WEBIFC[schema].IfcPropertySet(psetGlobalId, ownerHistoryHandle, psetName, psetDescription, []); + // Create the Pset relation + this.increaseMaxID(model); + const relGlobalId = this.newGUID(model); + const rel = new WEBIFC[schema].IfcRelDefinesByProperties(relGlobalId, ownerHistoryHandle, null, null, [], new Handle$5(pset.expressID)); + await this.setData(model, pset, rel); + return { pset, rel }; + } + async removePset(model, ...psetID) { + const { properties } = IfcPropertiesManager.getIFCInfo(model); + for (const expressID of psetID) { + const pset = properties[expressID]; + if ((pset === null || pset === void 0 ? void 0 : pset.type) !== IFCPROPERTYSET) + continue; + const relID = IfcPropertiesUtils.getPsetRel(properties, expressID); + if (relID) { + delete properties[relID]; + await this.registerChange(model, relID); + } + if (pset) { + for (const propHandle of pset.HasProperties) + delete properties[propHandle.value]; + delete properties[expressID]; + await this.onPsetRemoved.trigger({ model, psetID: expressID }); + await this.registerChange(model, expressID); + } + } } - } - IFC4X32.IfcRelAssignsToGroupByFactor = IfcRelAssignsToGroupByFactor; - class IfcRelAssignsToProcess extends IfcRelAssigns { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingProcess, QuantityInProcess) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.RelatingProcess = RelatingProcess; - this.QuantityInProcess = QuantityInProcess; - this.type = 4278684876; + async newSingleProperty(model, type, name, value) { + const { schema } = IfcPropertiesManager.getIFCInfo(model); + this.increaseMaxID(model); + const propName = new WEBIFC[schema].IfcIdentifier(name); + // @ts-ignore + const propValue = new WEBIFC[schema][type](value); + const prop = new WEBIFC[schema].IfcPropertySingleValue(propName, null, propValue, null); + await this.setData(model, prop); + return prop; } - } - IFC4X32.IfcRelAssignsToProcess = IfcRelAssignsToProcess; - class IfcRelAssignsToProduct extends IfcRelAssigns { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingProduct) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.RelatingProduct = RelatingProduct; - this.type = 2857406711; + newSingleStringProperty(model, type, name, value) { + return this.newSingleProperty(model, type, name, value); } - } - IFC4X32.IfcRelAssignsToProduct = IfcRelAssignsToProduct; - class IfcRelAssignsToResource extends IfcRelAssigns { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingResource) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.RelatingResource = RelatingResource; - this.type = 205026976; + newSingleNumericProperty(model, type, name, value) { + return this.newSingleProperty(model, type, name, value); } - } - IFC4X32.IfcRelAssignsToResource = IfcRelAssignsToResource; - class IfcRelAssociates extends IfcRelationship { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.type = 1865459582; + newSingleBooleanProperty(model, type, name, value) { + return this.newSingleProperty(model, type, name, value); } - } - IFC4X32.IfcRelAssociates = IfcRelAssociates; - class IfcRelAssociatesApproval extends IfcRelAssociates { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingApproval) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingApproval = RelatingApproval; - this.type = 4095574036; + async removePsetProp(model, psetID, propID) { + const { properties } = IfcPropertiesManager.getIFCInfo(model); + const pset = properties[psetID]; + const prop = properties[propID]; + if (!(pset.type === IFCPROPERTYSET && prop)) + return; + pset.HasProperties = pset.HasProperties.filter((handle) => { + return handle.value !== propID; + }); + delete properties[propID]; + await this.registerChange(model, psetID, propID); } - } - IFC4X32.IfcRelAssociatesApproval = IfcRelAssociatesApproval; - class IfcRelAssociatesClassification extends IfcRelAssociates { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingClassification) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingClassification = RelatingClassification; - this.type = 919958153; + async addElementToPset(model, psetID, ...elementID) { + const { properties } = IfcPropertiesManager.getIFCInfo(model); + const relID = IfcPropertiesUtils.getPsetRel(properties, psetID); + if (!relID) + return; + const rel = properties[relID]; + for (const expressID of elementID) { + const elementHandle = new Handle$5(expressID); + rel.RelatedObjects.push(elementHandle); + await this.onElementToPset.trigger({ + model, + psetID, + elementID: expressID, + }); + } + await this.registerChange(model, psetID); } - } - IFC4X32.IfcRelAssociatesClassification = IfcRelAssociatesClassification; - class IfcRelAssociatesConstraint extends IfcRelAssociates { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, Intent, RelatingConstraint) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.Intent = Intent; - this.RelatingConstraint = RelatingConstraint; - this.type = 2728634034; + async addPropToPset(model, psetID, ...propID) { + const { properties } = IfcPropertiesManager.getIFCInfo(model); + const pset = properties[psetID]; + if (!pset) + return; + for (const expressID of propID) { + const elementHandle = new Handle$5(expressID); + pset.HasProperties.push(elementHandle); + await this.onPropToPset.trigger({ model, psetID, propID: expressID }); + } + await this.registerChange(model, psetID); + } + async saveToIfc(model, ifcToSaveOn) { + var _a; + const { properties } = IfcPropertiesManager.getIFCInfo(model); + const modelID = this._ifcApi.OpenModel(ifcToSaveOn); + const changes = (_a = this._changeMap[model.uuid]) !== null && _a !== void 0 ? _a : []; + for (const expressID of changes) { + const data = properties[expressID]; + if (!data) { + this._ifcApi.DeleteLine(modelID, expressID); + } + else { + this._ifcApi.WriteLine(modelID, data); + } + } + const modifiedIFC = this._ifcApi.SaveModel(modelID); + this._ifcApi.CloseModel(modelID); + this._ifcApi = null; + this._ifcApi = new IfcAPI2(); + const { path, absolute } = this.wasm; + this._ifcApi.SetWasmPath(path, absolute); + await this._ifcApi.Init(); + return modifiedIFC; + } + setAttributeListener(model, expressID, attributeName) { + if (!this.attributeListeners[model.uuid]) + this.attributeListeners[model.uuid] = {}; + const existingListener = this.attributeListeners[model.uuid][expressID] + ? this.attributeListeners[model.uuid][expressID][attributeName] + : null; + if (existingListener) + return existingListener; + const { properties } = IfcPropertiesManager.getIFCInfo(model); + const entity = properties[expressID]; + if (!entity) { + throw new Error(`Entity with expressID ${expressID} doesn't exists.`); + } + const attribute = entity[attributeName]; + if (Array.isArray(attribute) || !attribute) { + throw new Error(`Attribute ${attributeName} is array or null, and it can't have a listener.`); + } + const value = attribute.value; + if (value === undefined || value == null) { + throw new Error(`Attribute ${attributeName} has a badly defined handle.`); + } + // TODO: Is it good to set all the above as errors? Or better return null? + // TODO: Do we need an async-await in the following set function? + const event = new Event(); + Object.defineProperty(entity[attributeName], "value", { + get() { + return this._value; + }, + async set(value) { + this._value = value; + await event.trigger(value); + }, + }); + entity[attributeName].value = value; + if (!this.attributeListeners[model.uuid][expressID]) + this.attributeListeners[model.uuid][expressID] = {}; + this.attributeListeners[model.uuid][expressID][attributeName] = event; + return event; } - } - IFC4X32.IfcRelAssociatesConstraint = IfcRelAssociatesConstraint; - class IfcRelAssociatesDocument extends IfcRelAssociates { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingDocument) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingDocument = RelatingDocument; - this.type = 982818633; +} +IfcPropertiesManager.uuid = "58c2d9f0-183c-48d6-a402-dfcf5b9a34df"; +ToolComponent.libraryUUIDs.add(IfcPropertiesManager.uuid); + +class PropertyTag extends SimpleUIComponent { + get label() { + return this.innerElements.label.textContent; + } + set label(value) { + this.innerElements.label.textContent = value; + } + get value() { + return this.innerElements.value.textContent; + } + set value(value) { + this.innerElements.value.textContent = String(value); + } + constructor(components, propertiesProcessor, model, expressID) { + const template = ` +
+
+

+

+
+
+ `; + super(components, template); + this.name = "PropertyTag"; + this.expressID = 0; + this.innerElements = { + label: this.getInnerElement("label"), + value: this.getInnerElement("value"), + }; + this.model = model; + this.expressID = expressID; + this._propertiesProcessor = propertiesProcessor; + this.setInitialValues(); + this.setListeners(); + } + async dispose(onlyChildren = false) { + await super.dispose(onlyChildren); + this.model = null; + this._propertiesProcessor = null; + if (Object.keys(this.innerElements).length) { + this.innerElements.value.remove(); + this.innerElements.label.remove(); + } + } + setListeners() { + const propertiesManager = this._propertiesProcessor.propertiesManager; + if (!propertiesManager) + return; + const { properties } = IfcPropertiesManager.getIFCInfo(this.model); + const { key: nameKey } = IfcPropertiesUtils.getEntityName(properties, this.expressID); + const { key: valueKey } = IfcPropertiesUtils.getQuantityValue(properties, this.expressID); + if (nameKey) { + const event = propertiesManager.setAttributeListener(this.model, this.expressID, nameKey); + event.add((v) => (this.label = v.toString())); + } + if (valueKey) { + const event = propertiesManager.setAttributeListener(this.model, this.expressID, valueKey); + event.add((v) => (this.value = v)); + } } - } - IFC4X32.IfcRelAssociatesDocument = IfcRelAssociatesDocument; - class IfcRelAssociatesLibrary extends IfcRelAssociates { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingLibrary) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingLibrary = RelatingLibrary; - this.type = 3840914261; + setInitialValues() { + const { properties } = IfcPropertiesManager.getIFCInfo(this.model); + const entity = properties[this.expressID]; + if (!entity) { + this.label = "NULL"; + this.value = `ExpressID ${this.expressID} not found`; + } + else { + const { name } = IfcPropertiesUtils.getEntityName(properties, this.expressID); + const { value } = IfcPropertiesUtils.getQuantityValue(properties, this.expressID); + this.label = name; + this.value = value; + } } - } - IFC4X32.IfcRelAssociatesLibrary = IfcRelAssociatesLibrary; - class IfcRelAssociatesMaterial extends IfcRelAssociates { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingMaterial) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingMaterial = RelatingMaterial; - this.type = 2655215786; +} + +class AttributeTag extends PropertyTag { + constructor(components, propertiesProcessor, model, expressID, attributeName = "Name") { + super(components, propertiesProcessor, model, expressID); + this.name = "AttributeTag"; + this.expressID = 0; + this.model = model; + this.expressID = expressID; + this.attributeName = attributeName; + this._propertiesProcessor = propertiesProcessor; + this.setInitialValues(); + this.setListeners(); + } + async dispose(onlyChildren = false) { + await super.dispose(onlyChildren); + this.model = null; + } + setListeners() { + const propertiesManager = this._propertiesProcessor.propertiesManager; + if (!propertiesManager) + return; + try { + const event = propertiesManager.setAttributeListener(this.model, this.expressID, this.attributeName); + event.add((v) => (this.value = v)); + } + catch (err) { + // console.log(err); + } } - } - IFC4X32.IfcRelAssociatesMaterial = IfcRelAssociatesMaterial; - class IfcRelAssociatesProfileDef extends IfcRelAssociates { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingProfileDef) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingProfileDef = RelatingProfileDef; - this.type = 1033248425; + setInitialValues() { + const properties = this.model.properties; + if (!properties) { + this.label = `Model ${this.model.ifcMetadata.name} has no properties`; + this.value = "NULL"; + return; + } + const entity = properties[this.expressID]; + if (!entity) { + this.label = `ExpressID ${this.expressID} not found`; + this.value = "NULL"; + return; + } + const attributes = Object.keys(entity); + if (!attributes.includes(this.attributeName)) { + this.label = `Attribute ${this.attributeName} not found`; + this.value = "NULL"; + return; + } + if (!entity[this.attributeName]) + return; + this.label = this.attributeName; + this.value = entity[this.attributeName].value; } - } - IFC4X32.IfcRelAssociatesProfileDef = IfcRelAssociatesProfileDef; - class IfcRelConnects extends IfcRelationship { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.type = 826625072; +} + +class AttributeSet extends TreeView { + set expressID(value) { + this._expressID = value; + this._attributes = []; + this.slots.content.dispose(true); + } + get expressID() { + return this._expressID; + } + constructor(components, propertiesProcessor, model, expressID) { + super(components, "ATTRIBUTES"); + this.name = "AttributeSet"; + this.attributesToIgnore = []; + this._expressID = 0; + this._attributes = []; + this._generated = false; + this.model = model; + this.expressID = expressID; + this._propertiesProcessor = propertiesProcessor; + this.onExpand.add(() => this.generate()); + } + async dispose(onlyChildren = false) { + await super.dispose(onlyChildren); + this.model = null; + this.attributesToIgnore = []; + this._attributes = []; + this._propertiesProcessor = null; + } + generate() { + const properties = this.model.properties; + if (this._generated || !properties) + return; + this.update(); + this._generated = true; } - } - IFC4X32.IfcRelConnects = IfcRelConnects; - class IfcRelConnectsElements extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ConnectionGeometry = ConnectionGeometry; - this.RelatingElement = RelatingElement; - this.RelatedElement = RelatedElement; - this.type = 1204542856; + update() { + const properties = this.model.properties; + if (!properties) + return; + const entity = properties[this.expressID]; + if (!entity) + return; + for (const attributeName in entity) { + const ignore = this.attributesToIgnore.includes(attributeName); + if (ignore) + continue; + const included = this._attributes.includes(attributeName); + if (included) ; + else { + const attribute = entity[attributeName]; + if (!(attribute === null || attribute === void 0 ? void 0 : attribute.value)) + continue; // in case there is an attribute without handle + this._attributes.push(attributeName); + const tag = new AttributeTag(this._components, this._propertiesProcessor, this.model, this.expressID, attributeName); + this.addChild(tag); + } + } } - } - IFC4X32.IfcRelConnectsElements = IfcRelConnectsElements; - class IfcRelConnectsPathElements extends IfcRelConnectsElements { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement, RelatingPriorities, RelatedPriorities, RelatedConnectionType, RelatingConnectionType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ConnectionGeometry = ConnectionGeometry; - this.RelatingElement = RelatingElement; - this.RelatedElement = RelatedElement; - this.RelatingPriorities = RelatingPriorities; - this.RelatedPriorities = RelatedPriorities; - this.RelatedConnectionType = RelatedConnectionType; - this.RelatingConnectionType = RelatingConnectionType; - this.type = 3945020480; +} + +class IfcPropertiesProcessor extends Component { + // private _entityUIPool: UIPool; + set propertiesManager(manager) { + if (this._propertiesManager) + return; + this._propertiesManager = manager; + if (manager) { + manager.onElementToPset.add(({ model, psetID, elementID }) => { + const modelIndexMap = this._indexMap[model.uuid]; + if (!modelIndexMap) + return; + this.setEntityIndex(model, elementID).add(psetID); + if (this._currentUI[elementID]) { + const ui = this.newPsetUI(model, psetID); + this._currentUI[elementID].addChild(...ui); + } + }); + manager.onPsetRemoved.add(async ({ psetID }) => { + const psetUI = this._currentUI[psetID]; + if (psetUI) { + await psetUI.dispose(); + } + }); + manager.onPropToPset.add(({ model, psetID, propID }) => { + const psetUI = this._currentUI[psetID]; + if (!psetUI) + return; + const tag = this.newPropertyTag(model, psetID, propID, "NominalValue"); + if (tag) + psetUI.addChild(tag); + }); + this.onPropertiesManagerSet.trigger(manager); + } } - } - IFC4X32.IfcRelConnectsPathElements = IfcRelConnectsPathElements; - class IfcRelConnectsPortToElement extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingPort, RelatedElement) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingPort = RelatingPort; - this.RelatedElement = RelatedElement; - this.type = 4201705270; + get propertiesManager() { + return this._propertiesManager; } - } - IFC4X32.IfcRelConnectsPortToElement = IfcRelConnectsPortToElement; - class IfcRelConnectsPorts extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingPort, RelatedPort, RealizingElement) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingPort = RelatingPort; - this.RelatedPort = RelatedPort; - this.RealizingElement = RealizingElement; - this.type = 3190031847; + constructor(components) { + super(components); + this.enabled = true; + this.uiElement = new UIElement(); + this.relationsToProcess = [ + IFCRELDEFINESBYPROPERTIES, + IFCRELDEFINESBYTYPE, + IFCRELASSOCIATESMATERIAL, + IFCRELCONTAINEDINSPATIALSTRUCTURE, + IFCRELASSOCIATESCLASSIFICATION, + IFCRELASSIGNSTOGROUP, + ]; + this.entitiesToIgnore = [IFCOWNERHISTORY, IFCMATERIALLAYERSETUSAGE]; + this.attributesToIgnore = [ + "CompositionType", + "Representation", + "ObjectPlacement", + "OwnerHistory", + ]; + this._indexMap = {}; + this._renderFunctions = {}; + this._propertiesManager = null; + this._currentUI = {}; + this.onPropertiesManagerSet = new Event(); + this.components.tools.add(IfcPropertiesProcessor.uuid, this); + // this._entityUIPool = new UIPool(this._components, TreeView); + this._renderFunctions = this.getRenderFunctions(); + if (components.ui.enabled) { + this.setUI(); + } + } + getRenderFunctions() { + return { + 0: (model, expressID) => this.newEntityUI(model, expressID), + [IFCPROPERTYSET]: (model, expressID) => this.newPsetUI(model, expressID), + [IFCELEMENTQUANTITY]: (model, expressID) => this.newQsetUI(model, expressID), + }; } - } - IFC4X32.IfcRelConnectsPorts = IfcRelConnectsPorts; - class IfcRelConnectsStructuralActivity extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedStructuralActivity) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingElement = RelatingElement; - this.RelatedStructuralActivity = RelatedStructuralActivity; - this.type = 2127690289; + async dispose() { + this.uiElement.dispose(); + this._indexMap = {}; + this.propertiesManager = null; + for (const id in this._currentUI) { + await this._currentUI[id].dispose(); + } + this._currentUI = {}; + this.onPropertiesManagerSet.reset(); } - } - IFC4X32.IfcRelConnectsStructuralActivity = IfcRelConnectsStructuralActivity; - class IfcRelConnectsStructuralMember extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingStructuralMember = RelatingStructuralMember; - this.RelatedStructuralConnection = RelatedStructuralConnection; - this.AppliedCondition = AppliedCondition; - this.AdditionalConditions = AdditionalConditions; - this.SupportedLength = SupportedLength; - this.ConditionCoordinateSystem = ConditionCoordinateSystem; - this.type = 1638771189; + getProperties(model, id) { + if (!model.properties) + return null; + const map = this._indexMap[model.uuid]; + if (!map) + return null; + const indices = map[id]; + const idNumber = parseInt(id, 10); + const nativeProperties = this.cloneProperty(model.properties[idNumber]); + const properties = [nativeProperties]; + if (indices) { + for (const index of indices) { + const pset = this.cloneProperty(model.properties[index]); + if (!pset) + continue; + this.getPsetProperties(pset, model.properties); + this.getNestedPsets(pset, model.properties); + properties.push(pset); + } + } + return properties; } - } - IFC4X32.IfcRelConnectsStructuralMember = IfcRelConnectsStructuralMember; - class IfcRelConnectsWithEccentricity extends IfcRelConnectsStructuralMember { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem, ConnectionConstraint) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingStructuralMember = RelatingStructuralMember; - this.RelatedStructuralConnection = RelatedStructuralConnection; - this.AppliedCondition = AppliedCondition; - this.AdditionalConditions = AdditionalConditions; - this.SupportedLength = SupportedLength; - this.ConditionCoordinateSystem = ConditionCoordinateSystem; - this.ConnectionConstraint = ConnectionConstraint; - this.type = 504942748; + getNestedPsets(pset, props) { + if (pset.HasPropertySets) { + for (const subPSet of pset.HasPropertySets) { + const psetID = subPSet.value; + subPSet.value = this.cloneProperty(props[psetID]); + this.getPsetProperties(subPSet.value, props); + } + } } - } - IFC4X32.IfcRelConnectsWithEccentricity = IfcRelConnectsWithEccentricity; - class IfcRelConnectsWithRealizingElements extends IfcRelConnectsElements { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement, RealizingElements, ConnectionType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ConnectionGeometry = ConnectionGeometry; - this.RelatingElement = RelatingElement; - this.RelatedElement = RelatedElement; - this.RealizingElements = RealizingElements; - this.ConnectionType = ConnectionType; - this.type = 3678494232; + getPsetProperties(pset, props) { + if (pset.HasProperties) { + for (const property of pset.HasProperties) { + const psetID = property.value; + const result = this.cloneProperty(props[psetID]); + property.value = { ...result }; + } + } } - } - IFC4X32.IfcRelConnectsWithRealizingElements = IfcRelConnectsWithRealizingElements; - class IfcRelContainedInSpatialStructure extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedElements, RelatingStructure) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedElements = RelatedElements; - this.RelatingStructure = RelatingStructure; - this.type = 3242617779; + setUI() { + const topToolbar = new SimpleUIComponent(this.components); + const propsList = new SimpleUIComponent(this.components, `
`); + const main = new Button(this.components, { + materialIconName: "list", + }); + const propertiesWindow = new FloatingWindow(this.components); + this.components.ui.add(propertiesWindow); + propertiesWindow.title = "Element Properties"; + propertiesWindow.addChild(topToolbar, propsList); + main.tooltip = "Properties"; + main.onClick.add(() => { + propertiesWindow.visible = !propertiesWindow.visible; + }); + propertiesWindow.onHidden.add(() => (main.active = false)); + propertiesWindow.onVisible.add(() => (main.active = true)); + propertiesWindow.visible = false; + this.uiElement.set({ + main, + propertiesWindow, + propsList, + topToolbar, + }); } - } - IFC4X32.IfcRelContainedInSpatialStructure = IfcRelContainedInSpatialStructure; - class IfcRelCoversBldgElements extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingBuildingElement, RelatedCoverings) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingBuildingElement = RelatingBuildingElement; - this.RelatedCoverings = RelatedCoverings; - this.type = 886880790; + async cleanPropertiesList() { + if (this._propertiesManager) { + const button = this._propertiesManager.uiElement.get("exportButton"); + button.removeFromParent(); + } + const propsList = this.uiElement.get("propsList"); + await propsList.dispose(true); + // for (const child of this._propsList.children) { + // if (child instanceof TreeView) { + // this._entityUIPool.return(child); + // continue; + // } + // child.dispose(); + // } + const propsWindow = this.uiElement.get("propertiesWindow"); + propsWindow.description = null; + propsList.children = []; + this._currentUI = {}; + } + get() { + return this._indexMap; + } + process(model) { + const properties = model.properties; + if (!properties) + throw new Error("FragmentsGroup properties not found"); + this._indexMap[model.uuid] = {}; + // const relations: number[] = []; + // for (const typeID in IfcCategoryMap) { + // const name = IfcCategoryMap[typeID]; + // if (name.startsWith("IFCREL")) relations.push(Number(typeID)); + // } + const setEntities = [IFCPROPERTYSET, IFCELEMENTQUANTITY]; + for (const relation of this.relationsToProcess) { + IfcPropertiesUtils.getRelationMap(properties, relation, (relationID, relatedIDs) => { + const relationEntity = properties[relationID]; + if (!setEntities.includes(relationEntity.type)) + this.setEntityIndex(model, relationID); + for (const expressID of relatedIDs) { + this.setEntityIndex(model, expressID).add(relationID); + } + }); + } } - } - IFC4X32.IfcRelCoversBldgElements = IfcRelCoversBldgElements; - class IfcRelCoversSpaces extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedCoverings) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingSpace = RelatingSpace; - this.RelatedCoverings = RelatedCoverings; - this.type = 2802773753; + async renderProperties(model, expressID) { + await this.cleanPropertiesList(); + const topToolbar = this.uiElement.get("topToolbar"); + const propsList = this.uiElement.get("propsList"); + const propsWindow = this.uiElement.get("propertiesWindow"); + const ui = this.newEntityUI(model, expressID); + if (!ui) + return; + if (this._propertiesManager) { + this._propertiesManager.selectedModel = model; + const exporter = this._propertiesManager.uiElement.get("exportButton"); + topToolbar.addChild(exporter); + } + const { properties } = IfcPropertiesManager.getIFCInfo(model); + const { name } = IfcPropertiesUtils.getEntityName(properties, expressID); + propsWindow.description = name; + propsList.addChild(...[ui].flat()); + } + newEntityUI(model, expressID) { + const properties = model.properties; + if (!properties) + throw new Error("FragmentsGroup properties not found."); + const modelElementsIndexation = this._indexMap[model.uuid]; + if (!modelElementsIndexation) + return null; + const entity = properties[expressID]; + const ignorable = this.entitiesToIgnore.includes(entity === null || entity === void 0 ? void 0 : entity.type); + if (!entity || ignorable) + return null; + if (entity.type === IFCPROPERTYSET) + return this.newPsetUI(model, expressID); + const mainGroup = this.newEntityTree(model, expressID); + if (!mainGroup) + return null; + this.addEntityActions(model, expressID, mainGroup); + mainGroup.onExpand.add(() => { + var _a, _b; + const { uiProcessed } = mainGroup.data; + if (uiProcessed) + return; + mainGroup.addChild(...this.newAttributesUI(model, expressID)); + const elementPropsIndexation = (_a = modelElementsIndexation[expressID]) !== null && _a !== void 0 ? _a : []; + for (const id of elementPropsIndexation) { + const entity = properties[id]; + if (!entity) + continue; + const renderFunction = (_b = this._renderFunctions[entity.type]) !== null && _b !== void 0 ? _b : this._renderFunctions[0]; + const ui = modelElementsIndexation[id] + ? this.newEntityUI(model, id) + : renderFunction(model, id); + if (!ui) + continue; + mainGroup.addChild(...[ui].flat()); + } + mainGroup.data.uiProcessed = true; + }); + return mainGroup; } - } - IFC4X32.IfcRelCoversSpaces = IfcRelCoversSpaces; - class IfcRelDeclares extends IfcRelationship { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingContext, RelatedDefinitions) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingContext = RelatingContext; - this.RelatedDefinitions = RelatedDefinitions; - this.type = 2565941209; + setEntityIndex(model, expressID) { + if (!this._indexMap[model.uuid][expressID]) + this._indexMap[model.uuid][expressID] = new Set(); + return this._indexMap[model.uuid][expressID]; } - } - IFC4X32.IfcRelDeclares = IfcRelDeclares; - class IfcRelDecomposes extends IfcRelationship { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.type = 2551354335; + newAttributesUI(model, expressID) { + const { properties } = IfcPropertiesManager.getIFCInfo(model); + if (!properties) + return []; + const attributesGroup = new AttributeSet(this.components, this, model, expressID); + attributesGroup.attributesToIgnore = this.attributesToIgnore; + return [attributesGroup]; + } + newPsetUI(model, psetID) { + const { properties } = IfcPropertiesManager.getIFCInfo(model); + const uiGroups = []; + const pset = properties[psetID]; + if (pset.type !== IFCPROPERTYSET) + return uiGroups; + const uiGroup = this.newEntityTree(model, psetID); + if (!uiGroup) + return uiGroups; + this.addPsetActions(model, psetID, uiGroup); + uiGroup.onExpand.add(() => { + const { uiProcessed } = uiGroup.data; + if (uiProcessed) + return; + const psetPropsID = IfcPropertiesUtils.getPsetProps(properties, psetID, (propID) => { + const prop = properties[propID]; + if (!prop) + return; + const tag = this.newPropertyTag(model, psetID, propID, "NominalValue"); + if (tag) + uiGroup.addChild(tag); + }); + if (!psetPropsID || psetPropsID.length === 0) { + const template = ` +

+ This pset has no properties. +

+ `; + const notFoundText = new SimpleUIComponent(this.components, template); + uiGroup.addChild(notFoundText); + } + uiGroup.data.uiProcessed = true; + }); + uiGroups.push(uiGroup); + return uiGroups; + } + newQsetUI(model, qsetID) { + const { properties } = IfcPropertiesManager.getIFCInfo(model); + const uiGroups = []; + const qset = properties[qsetID]; + if (qset.type !== IFCELEMENTQUANTITY) + return uiGroups; + const uiGroup = this.newEntityTree(model, qsetID); + if (!uiGroup) + return uiGroups; + this.addPsetActions(model, qsetID, uiGroup); + IfcPropertiesUtils.getQsetQuantities(properties, qsetID, (quantityID) => { + const { key } = IfcPropertiesUtils.getQuantityValue(properties, quantityID); + if (!key) + return; + const tag = this.newPropertyTag(model, qsetID, quantityID, key); + if (tag) + uiGroup.addChild(tag); + }); + uiGroups.push(uiGroup); + return uiGroups; } - } - IFC4X32.IfcRelDecomposes = IfcRelDecomposes; - class IfcRelDefines extends IfcRelationship { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.type = 693640335; + addPsetActions(model, psetID, uiGroup) { + if (!this.propertiesManager) + return; + const propsUI = this.propertiesManager.uiElement; + const psetActions = propsUI.get("psetActions"); + const event = this.propertiesManager.setAttributeListener(model, psetID, "Name"); + event.add((v) => (uiGroup.description = v.toString())); + uiGroup.innerElements.titleContainer.onmouseenter = () => { + psetActions.data = { model, psetID }; + uiGroup.slots.titleRight.addChild(psetActions); + }; + uiGroup.innerElements.titleContainer.onmouseleave = () => { + if (psetActions.modalVisible) + return; + psetActions.removeFromParent(); + psetActions.cleanData(); + }; } - } - IFC4X32.IfcRelDefines = IfcRelDefines; - class IfcRelDefinesByObject extends IfcRelDefines { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingObject) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingObject = RelatingObject; - this.type = 1462361463; + addEntityActions(model, expressID, uiGroup) { + if (!this.propertiesManager) + return; + const propsUI = this.propertiesManager.uiElement; + const entityActions = propsUI.get("entityActions"); + uiGroup.innerElements.titleContainer.onmouseenter = () => { + entityActions.data = { model, elementIDs: [expressID] }; + uiGroup.slots.titleRight.addChild(entityActions); + }; + uiGroup.innerElements.titleContainer.onmouseleave = () => { + if (entityActions.modal.visible) + return; + entityActions.removeFromParent(); + entityActions.cleanData(); + }; } - } - IFC4X32.IfcRelDefinesByObject = IfcRelDefinesByObject; - class IfcRelDefinesByProperties extends IfcRelDefines { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingPropertyDefinition) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingPropertyDefinition = RelatingPropertyDefinition; - this.type = 4186316022; + newEntityTree(model, expressID) { + const { properties } = IfcPropertiesManager.getIFCInfo(model); + const entity = properties[expressID]; + if (!entity) + return null; + const currentUI = this._currentUI[expressID]; + if (currentUI) + return currentUI; + const entityTree = new TreeView(this.components); + this._currentUI[expressID] = entityTree; + // const entityTree = this._entityUIPool.get(); + entityTree.title = `${IfcCategoryMap[entity.type]}`; + const { name } = IfcPropertiesUtils.getEntityName(properties, expressID); + entityTree.description = name; + return entityTree; + } + newPropertyTag(model, setID, expressID, valueKey) { + const { properties } = IfcPropertiesManager.getIFCInfo(model); + const entity = properties[expressID]; + if (!entity) + return null; + const tag = new PropertyTag(this.components, this, model, expressID); + // @ts-ignore + this._currentUI[expressID] = tag; + if (!this.propertiesManager) + return tag; + // #region ManagementUI + const propsUI = this.propertiesManager.uiElement; + const propActions = propsUI.get("propActions"); + tag.get().onmouseenter = () => { + propActions.data = { model, setID, expressID, valueKey }; + tag.addChild(propActions); + }; + tag.get().onmouseleave = () => { + if (propActions.modalVisible) + return; + propActions.removeFromParent(); + propActions.cleanData(); + }; + // #endregion ManagementUI + return tag; } - } - IFC4X32.IfcRelDefinesByProperties = IfcRelDefinesByProperties; - class IfcRelDefinesByTemplate extends IfcRelDefines { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedPropertySets, RelatingTemplate) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedPropertySets = RelatedPropertySets; - this.RelatingTemplate = RelatingTemplate; - this.type = 307848117; + cloneProperty(item, result = {}) { + if (!item) { + return result; + } + for (const key in item) { + const value = item[key]; + const isArray = Array.isArray(value); + const isObject = typeof value === "object" && !isArray && value !== null; + if (isArray) { + result[key] = []; + const subResult = result[key]; + this.clonePropertyArray(value, subResult); + } + else if (isObject) { + result[key] = {}; + const subResult = result[key]; + this.cloneProperty(value, subResult); + } + else { + result[key] = value; + } + } + return result; } - } - IFC4X32.IfcRelDefinesByTemplate = IfcRelDefinesByTemplate; - class IfcRelDefinesByType extends IfcRelDefines { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingType) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingType = RelatingType; - this.type = 781010003; + clonePropertyArray(item, result) { + for (const value of item) { + const isArray = Array.isArray(value); + const isObject = typeof value === "object" && !isArray && value !== null; + if (isArray) { + const subResult = []; + result.push(subResult); + this.clonePropertyArray(value, subResult); + } + else if (isObject) { + const subResult = {}; + result.push(subResult); + this.cloneProperty(value, subResult); + } + else { + result.push(value); + } + } } - } - IFC4X32.IfcRelDefinesByType = IfcRelDefinesByType; - class IfcRelFillsElement extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingOpeningElement, RelatedBuildingElement) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingOpeningElement = RelatingOpeningElement; - this.RelatedBuildingElement = RelatedBuildingElement; - this.type = 3940055652; +} +IfcPropertiesProcessor.uuid = "23a889ab-83b3-44a4-8bee-ead83438370b"; +ToolComponent.libraryUUIDs.add(IfcPropertiesProcessor.uuid); + +class AttributeQueryUI extends SimpleUIComponent { + // Is ok to use Type Assertion in this case? + get query() { + const attribute = this.attribute.value; + const condition = this.condition.value; + const operator = this.operator.value || null; + const value = attribute === "type" + ? this.getTypeConstant(this.ifcTypes.value) + : this.value.value; + const negateResult = this.negate.value === "NOT A"; + const query = { + attribute, + condition, + value, + negateResult, + operator, + }; + if (this.operator.visible) + query.operator = this.operator.value; + return query; + } + set query(value) { + if (value.operator) { + this.operator.value = value.operator; + this.operator.visible = true; + } + this.attribute.value = value.attribute; + this.condition.value = value.condition; + this.negate.value = value.negateResult ? "NOT A" : "A"; + if (value.attribute === "type") { + if (typeof value.value !== "number") { + throw new Error("Corrupted IfcPropertiesFinder cached data!"); + } + this.value.value = ""; + this.ifcTypes.value = IfcCategoryMap[value.value]; + } + else { + this.ifcTypes.value = null; + this.value.value = String(value.value); + } } - } - IFC4X32.IfcRelFillsElement = IfcRelFillsElement; - class IfcRelFlowControlElements extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedControlElements, RelatingFlowElement) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedControlElements = RelatedControlElements; - this.RelatingFlowElement = RelatingFlowElement; - this.type = 279856033; + getTypeConstant(value) { + for (const [key, val] of Object.entries(IfcCategoryMap)) { + if (val === value) + return Number(key); + } + return null; } - } - IFC4X32.IfcRelFlowControlElements = IfcRelFlowControlElements; - class IfcRelInterferesElements extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedElement, InterferenceGeometry, InterferenceSpace, InterferenceType, ImpliedOrder) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingElement = RelatingElement; - this.RelatedElement = RelatedElement; - this.InterferenceGeometry = InterferenceGeometry; - this.InterferenceSpace = InterferenceSpace; - this.InterferenceType = InterferenceType; - this.ImpliedOrder = ImpliedOrder; - this.type = 427948657; + constructor(components) { + super(components, `
`); + this.negate = new Dropdown(components); + const negateClass = this.negate.domElement.classList; + negateClass.remove("w-full"); + negateClass.add("min-w-[4.5rem]"); + this.negate.label = "Sign"; + this.negate.addOption("A", "NOT A"); + this.negate.value = "A"; + this.operator = new Dropdown(components); + this.operator.visible = false; + this.operator.label = "Operator"; + this.operator.get().style.width = "300px"; + this.operator.addOption("AND", "OR"); + this.attribute = new Dropdown(components); + this.attribute.label = "Attribute"; + this.attribute.addOption("type", "Name", "PredefinedType", "NominalValue", "Description"); + this.attribute.onChange.add((selection) => { + const attributeIsType = selection === "type"; + this.value.visible = !attributeIsType; + this.ifcTypes.visible = attributeIsType; + }); + this.condition = new Dropdown(components); + this.condition.label = "Condition"; + this.condition.addOption("is", "includes", "startsWith", "endsWith", "matches"); + this.condition.value = this.condition.options[0]; + this.value = new TextInput(components); + this.value.label = "Value"; + this.ifcTypes = new Dropdown(components); + this.ifcTypes.allowSearch = true; + this.ifcTypes.visible = false; + this.ifcTypes.label = "Value"; + for (const type of Object.values(IfcCategoryMap)) { + this.ifcTypes.addOption(type); + } + this.ifcTypes.value = "IFCWALL"; + this.removeBtn = new Button(components, { materialIconName: "remove" }); + this.removeBtn.visible = false; + this.removeBtn.get().classList.remove("mt-auto", "hover:bg-ifcjs-200"); + this.removeBtn.get().classList.add("mt-auto", "mb-2", "hover:bg-error"); + this.removeBtn.onClick.add(async () => { + if (this.parent instanceof SimpleUIComponent) + this.parent.removeChild(this); + await this.dispose(); + }); + this.addChild(this.operator, this.attribute, this.condition, this.negate, this.value, this.ifcTypes, this.removeBtn); + this.attribute.value = "Name"; + } + async dispose(onlyChildren = false) { + await super.dispose(onlyChildren); + await this.operator.dispose(); + await this.attribute.dispose(); + await this.condition.dispose(); + await this.value.dispose(); + await this.ifcTypes.dispose(); + await this.removeBtn.dispose(); + await this.negate.dispose(); } - } - IFC4X32.IfcRelInterferesElements = IfcRelInterferesElements; - class IfcRelNests extends IfcRelDecomposes { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingObject = RelatingObject; - this.RelatedObjects = RelatedObjects; - this.type = 3268803585; +} + +class QueryGroupUI extends SimpleUIComponent { + get query() { + const queriesMap = this.children.map((child) => { + if (!(child instanceof AttributeQueryUI)) + return null; + return child.query; + }); + const queries = queriesMap.filter((query) => query !== null); + const query = { queries }; + if (this.operator.visible) + query.operator = this.operator.value; + return query; + } + set query(value) { + if (value.operator) + this.operator.value = value.operator; + for (const child of this.children) { + if (!(child instanceof AttributeQueryUI)) + continue; + this.removeChild(child); + child.dispose(); + } + let first = true; + for (const [index, query] of value.queries.entries()) { + // @ts-ignore + if (!query.condition) + continue; + const attributeQuery = query; + if (index === 0 && attributeQuery.operator) { + delete attributeQuery.operator; + } + const attributeQueryUI = new AttributeQueryUI(this._components); + attributeQueryUI.query = attributeQuery; + this.addChild(attributeQueryUI); + if (first) { + first = false; + } + else { + attributeQueryUI.removeBtn.visible = true; + } + } } - } - IFC4X32.IfcRelNests = IfcRelNests; - class IfcRelPositions extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingPositioningElement, RelatedProducts) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingPositioningElement = RelatingPositioningElement; - this.RelatedProducts = RelatedProducts; - this.type = 1441486842; + constructor(components) { + super(components, `
`); + this.operator = new Dropdown(components); + this.operator.visible = false; + this.operator.label = null; + this.operator.addOption("AND", "OR"); + const topContainer = new SimpleUIComponent(components, `
`); + const newRuleBtn = new Button(components, { materialIconName: "add" }); + newRuleBtn.get().classList.add("w-fit"); + newRuleBtn.label = "Add Rule"; + newRuleBtn.onClick.add(() => { + const propertyQuery = new AttributeQueryUI(components); + propertyQuery.operator.visible = true; + propertyQuery.operator.value = propertyQuery.operator.options[0]; + propertyQuery.removeBtn.visible = true; + this.addChild(propertyQuery); + }); + const newGroupBtn = new Button(components, { materialIconName: "add" }); + newGroupBtn.get().classList.add("w-fit"); + newGroupBtn.label = "Add Group"; + this.removeBtn = new Button(components, { materialIconName: "delete" }); + this.removeBtn.label = "Delete Group"; + this.removeBtn.visible = false; + this.removeBtn.onClick.add(async () => { + if (this.parent instanceof SimpleUIComponent) + this.parent.removeChild(this); + await this.dispose(); + }); + topContainer.addChild(newRuleBtn, this.removeBtn); + const propertyQuery = new AttributeQueryUI(components); + this.addChild(topContainer, this.operator, propertyQuery); } - } - IFC4X32.IfcRelPositions = IfcRelPositions; - class IfcRelProjectsElement extends IfcRelDecomposes { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedFeatureElement) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingElement = RelatingElement; - this.RelatedFeatureElement = RelatedFeatureElement; - this.type = 750771296; + async dispose(onlyChildren = false) { + await super.dispose(onlyChildren); + await this.operator.dispose(); + await this.removeBtn.dispose(); } - } - IFC4X32.IfcRelProjectsElement = IfcRelProjectsElement; - class IfcRelReferencedInSpatialStructure extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedElements, RelatingStructure) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedElements = RelatedElements; - this.RelatingStructure = RelatingStructure; - this.type = 1245217292; +} + +class QueryBuilder extends SimpleUIComponent { + get query() { + const queriesMap = this.children.map((child) => { + if (!(child instanceof QueryGroupUI)) + return null; + return child.query; + }); + return queriesMap.filter((query) => query !== null); } - } - IFC4X32.IfcRelReferencedInSpatialStructure = IfcRelReferencedInSpatialStructure; - class IfcRelSequence extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingProcess, RelatedProcess, TimeLag, SequenceType, UserDefinedSequenceType) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingProcess = RelatingProcess; - this.RelatedProcess = RelatedProcess; - this.TimeLag = TimeLag; - this.SequenceType = SequenceType; - this.UserDefinedSequenceType = UserDefinedSequenceType; - this.type = 4122056220; + set query(value) { + for (const child of this.children) { + if (child instanceof QueryGroupUI) { + this.removeChild(child); + child.dispose(); + } + } + let first = true; + for (const [index, group] of value.entries()) { + if (index === 0 && group.operator) { + delete group.operator; + } + const attributeQueryUI = new QueryGroupUI(this._components); + attributeQueryUI.removeBtn.visible = true; + attributeQueryUI.query = group; + this.addChild(attributeQueryUI); + if (first) { + first = false; + attributeQueryUI.removeBtn.visible = false; + } + } + this.get().append(this.findButton.get()); + this.onQuerySet.trigger(value); } - } - IFC4X32.IfcRelSequence = IfcRelSequence; - class IfcRelServicesBuildings extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSystem, RelatedBuildings) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingSystem = RelatingSystem; - this.RelatedBuildings = RelatedBuildings; - this.type = 366585022; + constructor(components) { + super(components, `
`); + this.onQuerySet = new Event(); + this.findButton = new Button(this._components, { + materialIconName: "search", + }); + this.findButton.label = "Find"; + this.findButton.alignment = "center"; + this.findButton + .get() + .classList.add("border", "border-solid", "border-ifcjs-120", "hover:border-ifcjs-200"); + const topContainer = new SimpleUIComponent(this._components, `
`); + const newGroupBtn = new Button(this._components, { + materialIconName: "add", + }); + newGroupBtn.get().classList.add("w-fit"); + newGroupBtn.label = "Add Group"; + newGroupBtn.onClick.add(() => { + const queryGroup = new QueryGroupUI(this._components); + queryGroup.operator.visible = true; + queryGroup.operator.value = queryGroup.operator.options[0]; + queryGroup.removeBtn.visible = true; + this.addChild(queryGroup); + this.get().append(this.findButton.get()); + }); + const resetBtn = new Button(this._components, { + materialIconName: "refresh", + }); + resetBtn.label = "Reset"; + topContainer.addChild(newGroupBtn); + const queryEditor = new QueryGroupUI(this._components); + this.addChild(topContainer, queryEditor, this.findButton); + // this.query = [ + // { + // queries: [ + // { attribute: "Name", condition: "includes", value: "Acabado" }, + // { + // operator: "AND", + // attribute: "PredefinedType", + // condition: "is", + // value: "FLOOR", + // }, + // ], + // }, + // ]; + } + async dispose(onlyChildren = false) { + await super.dispose(onlyChildren); + await this.findButton.dispose(); + this.onQuerySet.reset(); } - } - IFC4X32.IfcRelServicesBuildings = IfcRelServicesBuildings; - class IfcRelSpaceBoundary extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingSpace = RelatingSpace; - this.RelatedBuildingElement = RelatedBuildingElement; - this.ConnectionGeometry = ConnectionGeometry; - this.PhysicalOrVirtualBoundary = PhysicalOrVirtualBoundary; - this.InternalOrExternalBoundary = InternalOrExternalBoundary; - this.type = 3451746338; +} + +class IfcPropertiesFinder extends Component { + constructor(components) { + super(components); + this.onFound = new Event(); + this.enabled = true; + this.uiElement = new UIElement(); + this._localStorageID = "IfcPropertiesFinder"; + this._indexedModels = {}; + this._noHandleAttributes = ["type"]; + this._conditionFunctions = this.getConditionFunctions(); + } + async init() { + if (this.components.ui.enabled) { + await this.setUI(); + } + } + get() { + return this._indexedModels; + } + async dispose() { + this._indexedModels = {}; + this.onFound.reset(); + this.uiElement.dispose(); + } + loadCached(id) { + if (id) { + this._localStorageID = `IfcPropertiesFinder-${id}`; + } + const serialized = localStorage.getItem(this._localStorageID); + if (!serialized) + return; + const groups = JSON.parse(serialized); + const queryBuilder = this.uiElement.get("query"); + queryBuilder.query = groups; } - } - IFC4X32.IfcRelSpaceBoundary = IfcRelSpaceBoundary; - class IfcRelSpaceBoundary1stLevel extends IfcRelSpaceBoundary { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary, ParentBoundary) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingSpace = RelatingSpace; - this.RelatedBuildingElement = RelatedBuildingElement; - this.ConnectionGeometry = ConnectionGeometry; - this.PhysicalOrVirtualBoundary = PhysicalOrVirtualBoundary; - this.InternalOrExternalBoundary = InternalOrExternalBoundary; - this.ParentBoundary = ParentBoundary; - this.type = 3523091289; + deleteCache() { + localStorage.removeItem(this._localStorageID); } - } - IFC4X32.IfcRelSpaceBoundary1stLevel = IfcRelSpaceBoundary1stLevel; - class IfcRelSpaceBoundary2ndLevel extends IfcRelSpaceBoundary1stLevel { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary, ParentBoundary, CorrespondingBoundary) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary, ParentBoundary); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingSpace = RelatingSpace; - this.RelatedBuildingElement = RelatedBuildingElement; - this.ConnectionGeometry = ConnectionGeometry; - this.PhysicalOrVirtualBoundary = PhysicalOrVirtualBoundary; - this.InternalOrExternalBoundary = InternalOrExternalBoundary; - this.ParentBoundary = ParentBoundary; - this.CorrespondingBoundary = CorrespondingBoundary; - this.type = 1521410863; + async setUI() { + const main = new Button(this.components, { + materialIconName: "manage_search", + }); + const queryWindow = new FloatingWindow(this.components); + this.components.ui.add(queryWindow); + const fragments = await this.components.tools.get(FragmentManager); + queryWindow.get().classList.add("overflow-visible"); + queryWindow.get().style.width = "700px"; + queryWindow.get().style.height = "420px"; + queryWindow.visible = false; + queryWindow.resizeable = false; + queryWindow.title = "Model Queries"; + main.onClick.add(() => { + queryWindow.visible = !queryWindow.visible; + }); + queryWindow.onVisible.add(() => (main.active = true)); + queryWindow.onHidden.add(() => (main.active = false)); + const query = new QueryBuilder(this.components); + query.findButton.onClick.add(async () => { + const model = fragments.groups[0]; + if (!model) + return; + await this.find(); + }); + queryWindow.addChild(query); + this.uiElement.set({ + main, + queryWindow, + query, + }); } - } - IFC4X32.IfcRelSpaceBoundary2ndLevel = IfcRelSpaceBoundary2ndLevel; - class IfcRelVoidsElement extends IfcRelDecomposes { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingBuildingElement, RelatedOpeningElement) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingBuildingElement = RelatingBuildingElement; - this.RelatedOpeningElement = RelatedOpeningElement; - this.type = 1401173127; + indexEntityRelations(model) { + const map = {}; + const { properties } = IfcPropertiesManager.getIFCInfo(model); + IfcPropertiesUtils.getRelationMap(properties, IFCRELDEFINESBYPROPERTIES, (relatingID, relatedIDs) => { + if (!map[relatingID]) + map[relatingID] = new Set(); + const props = []; + IfcPropertiesUtils.getPsetProps(properties, relatingID, (propID) => { + props.push(propID); + map[relatingID].add(propID); + if (!map[propID]) + map[propID] = new Set(); + map[propID].add(relatingID); + }); + for (const relatedID of relatedIDs) { + map[relatingID].add(relatedID); + for (const propID of props) + map[propID].add(relatedID); + if (!map[relatedID]) + map[relatedID] = new Set(); + map[relatedID].add(relatedID); + } + }); + const ifcRelations = [ + IFCRELCONTAINEDINSPATIALSTRUCTURE, + IFCRELDEFINESBYTYPE, + IFCRELASSIGNSTOGROUP, + ]; + for (const relation of ifcRelations) { + IfcPropertiesUtils.getRelationMap(properties, relation, (relatingID, relatedIDs) => { + if (!map[relatingID]) + map[relatingID] = new Set(); + for (const relatedID of relatedIDs) { + map[relatingID].add(relatedID); + if (!map[relatedID]) + map[relatedID] = new Set(); + map[relatedID].add(relatedID); + } + }); + } + this._indexedModels[model.uuid] = map; + return map; + } + async find(queryGroups, queryModels) { + const fragments = await this.components.tools.get(FragmentManager); + const queries = this.uiElement.get("query"); + const models = queryModels || fragments.groups; + const groups = queryGroups || queries.query; + const result = {}; + this.cache(); + for (const model of models) { + let map = this._indexedModels[model.uuid]; + if (!map) + map = this.indexEntityRelations(model); + let relations = []; + for (const [index, group] of groups.entries()) { + const excludedItems = new Set(); + const groupResult = this.simpleQuery(model, group, excludedItems); + const groupRelations = []; + for (const expressID of groupResult) { + const relations = map[expressID]; + if (!relations) + continue; + groupRelations.push(expressID); + for (const id of relations) { + if (!excludedItems.has(id)) { + groupRelations.push(id); + } + } + } + relations = + group.operator === "AND" && index > 0 + ? this.getCommonElements(relations, groupRelations) + : [...relations, ...groupRelations]; + } + const modelEntities = new Set(); + for (const expressID in model.data) { + const included = relations.includes(Number(expressID)); + if (!included) + continue; + modelEntities.add(Number(expressID)); + } + const otherEntities = new Set(); + for (const expressID of relations) { + const included = modelEntities.has(expressID); + if (included) + continue; + otherEntities.add(expressID); + } + result[model.uuid] = { modelEntities, otherEntities }; + } + const foundFragments = await this.toFragmentMap(result); + await this.onFound.trigger(foundFragments); + return foundFragments; + } + async toFragmentMap(data) { + const fragments = await this.components.tools.get(FragmentManager); + const fragmentMap = {}; + for (const modelID in data) { + const model = fragments.groups.find((m) => m.uuid === modelID); + if (!model) + continue; + const matchingEntities = data[modelID].modelEntities; + for (const expressID of matchingEntities) { + const data = model.data[expressID]; + if (!data) + continue; + for (const key of data[0]) { + const fragmentID = model.keyFragments[key]; + if (!fragmentMap[fragmentID]) { + fragmentMap[fragmentID] = new Set(); + } + fragmentMap[fragmentID].add(String(expressID)); + } + } + } + return fragmentMap; + } + simpleQuery(model, queryGroup, excludedItems) { + var _a; + const properties = model.properties; + if (!properties) + throw new Error("Model has no properties"); + let filteredProps = {}; + let iterations = 0; + let matchingEntities = []; + for (const query of queryGroup.queries) { + let queryResult = []; + const workingProps = query.operator === "AND" ? filteredProps : properties; + const isAttributeQuery = query.condition; // Is there a better way? + if (isAttributeQuery) { + const matchingResult = this.getMatchingEntities(workingProps, query, excludedItems); + queryResult = matchingResult.expressIDs; + filteredProps = { ...filteredProps, ...matchingResult.entities }; + } + else { + queryResult = [ + ...this.simpleQuery(model, query, excludedItems), + ]; + } + matchingEntities = + iterations === 0 + ? queryResult + : this.combineArrays(matchingEntities, queryResult, (_a = query.operator) !== null && _a !== void 0 ? _a : "AND" // Defaults to AND if iterations > 0 and query.operator is not defined + ); + iterations++; + } + return new Set(matchingEntities); + } + getMatchingEntities(entities, query, excludedItems) { + const { attribute: attributeName, condition } = query; + let { value } = query; + const handleAttribute = !this._noHandleAttributes.includes(attributeName); + const expressIDs = []; + const matchingEntities = []; + for (const expressID in entities) { + const entity = entities[expressID]; + if (entity === undefined) { + continue; + } + const attribute = entity[attributeName]; + let attributeValue = handleAttribute ? attribute === null || attribute === void 0 ? void 0 : attribute.value : attribute; + if (attributeValue === undefined || attributeValue === null) + continue; + // TODO: Maybe the user can specify the value type in the finder menu, so we don't need this + const type1 = typeof value; + const type2 = typeof attributeValue; + if (type1 === "number" && type2 === "string") { + value = value.toString(); + } + else if (type1 === "string" && type2 === "number") { + attributeValue = attributeValue.toString(); + } + let conditionMatches = this._conditionFunctions[condition](attributeValue, value); + if (query.negateResult) { + conditionMatches = !conditionMatches; + } + if (!conditionMatches) { + if (query.negateResult) { + excludedItems.add(entity.expressID); + } + continue; + } + expressIDs.push(entity.expressID); + matchingEntities.push(entity); + } + return { expressIDs, entities: matchingEntities, excludedItems }; } - } - IFC4X32.IfcRelVoidsElement = IfcRelVoidsElement; - class IfcReparametrisedCompositeCurveSegment extends IfcCompositeCurveSegment { - constructor(expressID, Transition, SameSense, ParentCurve, ParamLength) { - super(expressID, Transition, SameSense, ParentCurve); - this.Transition = Transition; - this.SameSense = SameSense; - this.ParentCurve = ParentCurve; - this.ParamLength = ParamLength; - this.type = 816062949; + combineArrays(arrA, arrB, operator) { + if (!operator) + return arrB; + return operator === "AND" + ? this.arrayIntersection(arrA, arrB) + : this.arrayUnion(arrA, arrB); } - } - IFC4X32.IfcReparametrisedCompositeCurveSegment = IfcReparametrisedCompositeCurveSegment; - class IfcResource extends IfcObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.type = 2914609552; + getCommonElements(...lists) { + const result = []; + const elementsCount = new Map(); + for (const list of lists) { + const uniqueElements = new Set(list); + for (const element of uniqueElements) { + if (elementsCount.has(element)) { + elementsCount.set(element, elementsCount.get(element) + 1); + } + else { + elementsCount.set(element, 1); + } + } + } + for (const [element, count] of elementsCount) { + if (count === lists.length) { + result.push(element); + } + } + return result; } - } - IFC4X32.IfcResource = IfcResource; - class IfcRevolvedAreaSolid extends IfcSweptAreaSolid { - constructor(expressID, SweptArea, Position, Axis, Angle) { - super(expressID, SweptArea, Position); - this.SweptArea = SweptArea; - this.Position = Position; - this.Axis = Axis; - this.Angle = Angle; - this.type = 1856042241; + arrayIntersection(arrA, arrB) { + return arrA.filter((x) => arrB.includes(x)); } - } - IFC4X32.IfcRevolvedAreaSolid = IfcRevolvedAreaSolid; - class IfcRevolvedAreaSolidTapered extends IfcRevolvedAreaSolid { - constructor(expressID, SweptArea, Position, Axis, Angle, EndSweptArea) { - super(expressID, SweptArea, Position, Axis, Angle); - this.SweptArea = SweptArea; - this.Position = Position; - this.Axis = Axis; - this.Angle = Angle; - this.EndSweptArea = EndSweptArea; - this.type = 3243963512; + arrayUnion(arrA, arrB) { + return [...arrA, ...arrB]; } - } - IFC4X32.IfcRevolvedAreaSolidTapered = IfcRevolvedAreaSolidTapered; - class IfcRightCircularCone extends IfcCsgPrimitive3D { - constructor(expressID, Position, Height, BottomRadius) { - super(expressID, Position); - this.Position = Position; - this.Height = Height; - this.BottomRadius = BottomRadius; - this.type = 4158566097; + cache() { + const queryBuilder = this.uiElement.get("query"); + const query = queryBuilder.query; + const serialized = JSON.stringify(query); + localStorage.setItem(this._localStorageID, serialized); } - } - IFC4X32.IfcRightCircularCone = IfcRightCircularCone; - class IfcRightCircularCylinder extends IfcCsgPrimitive3D { - constructor(expressID, Position, Height, Radius) { - super(expressID, Position); - this.Position = Position; - this.Height = Height; - this.Radius = Radius; - this.type = 3626867408; + getConditionFunctions() { + return { + is: (leftValue, rightValue) => { + return leftValue === rightValue; + }, + includes: (leftValue, rightValue) => { + return leftValue.toString().includes(rightValue.toString()); + }, + startsWith: (leftValue, rightValue) => { + return leftValue.toString().startsWith(rightValue.toString()); + }, + endsWith: (leftValue, rightValue) => { + return leftValue.toString().endsWith(rightValue.toString()); + }, + matches: (leftValue, rightValue) => { + const regex = new RegExp(rightValue.toString()); + return regex.test(leftValue.toString()); + }, + }; } - } - IFC4X32.IfcRightCircularCylinder = IfcRightCircularCylinder; - class IfcSectionedSolid extends IfcSolidModel { - constructor(expressID, Directrix, CrossSections) { - super(expressID); - this.Directrix = Directrix; - this.CrossSections = CrossSections; - this.type = 1862484736; +} + +class Units { + constructor() { + this.factor = 1; + this.complement = 1; + } + apply(matrix) { + const scale = this.getScaleMatrix(); + const result = scale.multiply(matrix); + matrix.copy(result); + } + setUp(webIfc) { + var _a; + this.factor = 1; + const length = this.getLengthUnits(webIfc); + if (!length) { + return; + } + const isLengthNull = length === undefined || length === null; + const isValueNull = length.Name === undefined || length.Name === null; + if (isLengthNull || isValueNull) { + return; + } + if (length.Name.value === "FOOT") { + this.factor = 0.3048; + } + else if (((_a = length.Prefix) === null || _a === void 0 ? void 0 : _a.value) === "MILLI") { + this.complement = 0.001; + } } - } - IFC4X32.IfcSectionedSolid = IfcSectionedSolid; - class IfcSectionedSolidHorizontal extends IfcSectionedSolid { - constructor(expressID, Directrix, CrossSections, CrossSectionPositions) { - super(expressID, Directrix, CrossSections); - this.Directrix = Directrix; - this.CrossSections = CrossSections; - this.CrossSectionPositions = CrossSectionPositions; - this.type = 1290935644; + getLengthUnits(webIfc) { + try { + const allUnitsAssigns = webIfc.GetLineIDsWithType(0, IFCUNITASSIGNMENT); + const unitsAssign = allUnitsAssigns.get(0); + const unitsAssignProps = webIfc.GetLine(0, unitsAssign); + for (const units of unitsAssignProps.Units) { + if (!units || units.value === null || units.value === undefined) { + continue; + } + const unitsProps = webIfc.GetLine(0, units.value); + if (unitsProps.UnitType && unitsProps.UnitType.value === "LENGTHUNIT") { + return unitsProps; + } + } + return null; + } + catch (e) { + console.log("Could not get units"); + return null; + } } - } - IFC4X32.IfcSectionedSolidHorizontal = IfcSectionedSolidHorizontal; - class IfcSectionedSurface extends IfcSurface { - constructor(expressID, Directrix, CrossSectionPositions, CrossSections) { - super(expressID); - this.Directrix = Directrix; - this.CrossSectionPositions = CrossSectionPositions; - this.CrossSections = CrossSections; - this.type = 1356537516; + getScaleMatrix() { + const f = this.factor; + // prettier-ignore + return new THREE$1.Matrix4().fromArray([ + f, 0, 0, 0, + 0, f, 0, 0, + 0, 0, f, 0, + 0, 0, 0, 1, + ]); } - } - IFC4X32.IfcSectionedSurface = IfcSectionedSurface; - class IfcSimplePropertyTemplate extends IfcPropertyTemplate { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, TemplateType, PrimaryMeasureType, SecondaryMeasureType, Enumerators, PrimaryUnit, SecondaryUnit, Expression, AccessState) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.TemplateType = TemplateType; - this.PrimaryMeasureType = PrimaryMeasureType; - this.SecondaryMeasureType = SecondaryMeasureType; - this.Enumerators = Enumerators; - this.PrimaryUnit = PrimaryUnit; - this.SecondaryUnit = SecondaryUnit; - this.Expression = Expression; - this.AccessState = AccessState; - this.type = 3663146110; +} + +class SpatialStructure { + constructor() { + this.itemsByFloor = {}; + this._units = new Units(); } - } - IFC4X32.IfcSimplePropertyTemplate = IfcSimplePropertyTemplate; - class IfcSpatialElement extends IfcProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.type = 1412071761; + // TODO: Maybe make this more flexible so that it also support more exotic spatial structures? + async setUp(webIfc) { + this._units.setUp(webIfc); + this.cleanUp(); + try { + const spatialRels = webIfc.GetLineIDsWithType(0, IFCRELCONTAINEDINSPATIALSTRUCTURE); + const allRooms = new Set(); + const rooms = webIfc.GetLineIDsWithType(0, IFCSPACE); + for (let i = 0; i < rooms.size(); i++) { + allRooms.add(rooms.get(i)); + } + // First add rooms (if any) to floors + const aggregates = webIfc.GetLineIDsWithType(0, IFCRELAGGREGATES); + const aggregatesSize = aggregates.size(); + for (let i = 0; i < aggregatesSize; i++) { + const id = aggregates.get(i); + const properties = webIfc.GetLine(0, id); + if (!properties || + !properties.RelatingObject || + !properties.RelatedObjects) { + continue; + } + const parentID = properties.RelatingObject.value; + const childsIDs = properties.RelatedObjects; + for (const child of childsIDs) { + const childID = child.value; + if (allRooms.has(childID)) { + this.itemsByFloor[childID] = parentID; + } + } + } + // Now add items contained in floors and rooms + // If items contained in room, look for the floor where that room is and assign it to it + const itemsContainedInRooms = {}; + const spatialRelsSize = spatialRels.size(); + for (let i = 0; i < spatialRelsSize; i++) { + const id = spatialRels.get(i); + const properties = webIfc.GetLine(0, id); + if (!properties || + !properties.RelatingStructure || + !properties.RelatedElements) { + continue; + } + const structureID = properties.RelatingStructure.value; + const relatedItems = properties.RelatedElements; + if (allRooms.has(structureID)) { + for (const related of relatedItems) { + if (!itemsContainedInRooms[structureID]) { + itemsContainedInRooms[structureID] = []; + } + const id = related.value; + itemsContainedInRooms[structureID].push(id); + } + } + else { + for (const related of relatedItems) { + const id = related.value; + this.itemsByFloor[id] = structureID; + } + } + } + for (const roomID in itemsContainedInRooms) { + const roomFloor = this.itemsByFloor[roomID]; + if (roomFloor !== undefined) { + const items = itemsContainedInRooms[roomID]; + for (const item of items) { + this.itemsByFloor[item] = roomFloor; + } + } + } + // Finally, add nested items (e.g. elements of curtain walls) + for (let i = 0; i < aggregatesSize; i++) { + const id = aggregates.get(i); + const properties = webIfc.GetLine(0, id); + if (!properties || + !properties.RelatingObject || + !properties.RelatedObjects) { + continue; + } + const parentID = properties.RelatingObject.value; + const childsIDs = properties.RelatedObjects; + for (const child of childsIDs) { + const childID = child.value; + const parentStructure = this.itemsByFloor[parentID]; + if (parentStructure !== undefined) { + this.itemsByFloor[childID] = parentStructure; + } + } + } + } + catch (e) { + console.log("Could not get floors."); + } } - } - IFC4X32.IfcSpatialElement = IfcSpatialElement; - class IfcSpatialElementType extends IfcTypeProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 710998568; + cleanUp() { + this.itemsByFloor = {}; } - } - IFC4X32.IfcSpatialElementType = IfcSpatialElementType; - class IfcSpatialStructureElement extends IfcSpatialElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.type = 2706606064; +} + +/** Configuration of the IFC-fragment conversion. */ +class IfcFragmentSettings { + constructor() { + /** Whether to extract the IFC properties into a JSON. */ + this.includeProperties = true; + /** + * Generate the geometry for categories that are not included by default, + * like IFCSPACE. + */ + this.optionalCategories = [IFCSPACE]; + /** Whether to use the coordination data coming from the IFC files. */ + this.coordinate = true; + /** Path of the WASM for [web-ifc](https://github.com/ifcjs/web-ifc). */ + this.wasm = { + path: "", + absolute: false, + }; + /** List of categories that won't be converted to fragments. */ + this.excludedCategories = new Set(); + /** Whether to save the absolute location of all IFC items. */ + this.saveLocations = false; + /** Loader settings for [web-ifc](https://github.com/ifcjs/web-ifc). */ + this.webIfc = { + COORDINATE_TO_ORIGIN: true, + USE_FAST_BOOLS: true, + OPTIMIZE_PROFILES: true, + }; } - } - IFC4X32.IfcSpatialStructureElement = IfcSpatialStructureElement; - class IfcSpatialStructureElementType extends IfcSpatialElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 3893378262; +} + +/** + * A simple implementation of bounding box that works for fragments. The resulting bbox is not 100% precise, but + * it's fast, and should suffice for general use cases such as camera zooming or general boundary determination. + */ +class FragmentBoundingBox extends Component { + constructor(components) { + super(components); + /** {@link Component.enabled} */ + this.enabled = true; + this._meshes = []; + this.components.tools.add(FragmentBoundingBox.uuid, this); + this._absoluteMin = FragmentBoundingBox.newBound(true); + this._absoluteMax = FragmentBoundingBox.newBound(false); + } + static getDimensions(bbox) { + const { min, max } = bbox; + const width = Math.abs(max.x - min.x); + const height = Math.abs(max.y - min.y); + const depth = Math.abs(max.z - min.z); + const center = new THREE$1.Vector3(); + center.subVectors(max, min).divideScalar(2).add(min); + return { width, height, depth, center }; + } + static newBound(positive) { + const factor = positive ? 1 : -1; + return new THREE$1.Vector3(factor * Number.MAX_VALUE, factor * Number.MAX_VALUE, factor * Number.MAX_VALUE); + } + static getBounds(points, min, max) { + const maxPoint = max || this.newBound(false); + const minPoint = min || this.newBound(true); + for (const point of points) { + if (point.x < minPoint.x) + minPoint.x = point.x; + if (point.y < minPoint.y) + minPoint.y = point.y; + if (point.z < minPoint.z) + minPoint.z = point.z; + if (point.x > maxPoint.x) + maxPoint.x = point.x; + if (point.y > maxPoint.y) + maxPoint.y = point.y; + if (point.z > maxPoint.z) + maxPoint.z = point.z; + } + return new THREE$1.Box3(min, max); + } + /** {@link Disposable.dispose} */ + async dispose() { + const disposer = await this.components.tools.get(Disposer); + for (const mesh of this._meshes) { + disposer.destroy(mesh); + } + this._meshes = []; + } + get() { + const min = this._absoluteMin.clone(); + const max = this._absoluteMax.clone(); + return new THREE$1.Box3(min, max); + } + getSphere() { + const min = this._absoluteMin.clone(); + const max = this._absoluteMax.clone(); + const dx = Math.abs((max.x - min.x) / 2); + const dy = Math.abs((max.y - min.y) / 2); + const dz = Math.abs((max.z - min.z) / 2); + const center = new THREE$1.Vector3(min.x + dx, min.y + dy, min.z + dz); + const radius = center.distanceTo(min); + return new THREE$1.Sphere(center, radius); + } + getMesh() { + const bbox = new THREE$1.Box3(this._absoluteMin, this._absoluteMax); + const dimensions = FragmentBoundingBox.getDimensions(bbox); + const { width, height, depth, center } = dimensions; + const box = new THREE$1.BoxGeometry(width, height, depth); + const mesh = new THREE$1.Mesh(box); + this._meshes.push(mesh); + mesh.position.copy(center); + return mesh; } - } - IFC4X32.IfcSpatialStructureElementType = IfcSpatialStructureElementType; - class IfcSpatialZone extends IfcSpatialElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.PredefinedType = PredefinedType; - this.type = 463610769; + reset() { + this._absoluteMin = FragmentBoundingBox.newBound(true); + this._absoluteMax = FragmentBoundingBox.newBound(false); + } + add(group) { + for (const frag of group.items) { + this.addMesh(frag.mesh); + } + } + addMesh(mesh) { + if (!mesh.geometry.index) { + return; + } + const bbox = FragmentBoundingBox.getFragmentBounds(mesh); + mesh.updateMatrix(); + const meshTransform = mesh.matrix; + const instanceTransform = new THREE$1.Matrix4(); + for (let i = 0; i < mesh.count; i++) { + mesh.getMatrixAt(i, instanceTransform); + const min = bbox.min.clone(); + const max = bbox.max.clone(); + min.applyMatrix4(instanceTransform); + min.applyMatrix4(meshTransform); + max.applyMatrix4(instanceTransform); + max.applyMatrix4(meshTransform); + if (min.x < this._absoluteMin.x) + this._absoluteMin.x = min.x; + if (min.y < this._absoluteMin.y) + this._absoluteMin.y = min.y; + if (min.z < this._absoluteMin.z) + this._absoluteMin.z = min.z; + if (min.x > this._absoluteMax.x) + this._absoluteMax.x = min.x; + if (min.y > this._absoluteMax.y) + this._absoluteMax.y = min.y; + if (min.z > this._absoluteMax.z) + this._absoluteMax.z = min.z; + if (max.x > this._absoluteMax.x) + this._absoluteMax.x = max.x; + if (max.y > this._absoluteMax.y) + this._absoluteMax.y = max.y; + if (max.z > this._absoluteMax.z) + this._absoluteMax.z = max.z; + if (max.x < this._absoluteMin.x) + this._absoluteMin.x = max.x; + if (max.y < this._absoluteMin.y) + this._absoluteMin.y = max.y; + if (max.z < this._absoluteMin.z) + this._absoluteMin.z = max.z; + } + } + static getFragmentBounds(mesh) { + const position = mesh.geometry.attributes.position; + const maxNum = Number.MAX_VALUE; + const minNum = -maxNum; + const min = new THREE$1.Vector3(maxNum, maxNum, maxNum); + const max = new THREE$1.Vector3(minNum, minNum, minNum); + if (!mesh.geometry.index) { + throw new Error("Geometry must be indexed!"); + } + const indices = Array.from(mesh.geometry.index.array); + for (const index of indices) { + const x = position.getX(index); + const y = position.getY(index); + const z = position.getZ(index); + if (x < min.x) + min.x = x; + if (y < min.y) + min.y = y; + if (z < min.z) + min.z = z; + if (x > max.x) + max.x = x; + if (y > max.y) + max.y = y; + if (z > max.z) + max.z = z; + } + return new THREE$1.Box3(min, max); } - } - IFC4X32.IfcSpatialZone = IfcSpatialZone; - class IfcSpatialZoneType extends IfcSpatialElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, LongName) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.LongName = LongName; - this.type = 2481509218; +} +FragmentBoundingBox.uuid = "d1444724-dba6-4cdd-a0c7-68ee1450d166"; +ToolComponent.libraryUUIDs.add(FragmentBoundingBox.uuid); + +class DataConverter { + constructor(components) { + this.settings = new IfcFragmentSettings(); + this.categories = {}; + this._model = new FragmentsGroup(); + this._ifcCategories = new IfcCategories(); + this._fragmentKey = 0; + this._keyFragmentMap = {}; + this._itemKeyMap = {}; + this._propertyExporter = new IfcJsonExporter(); + this._spatialTree = new SpatialStructure(); + this.components = components; + } + cleanUp() { + this._fragmentKey = 0; + this._spatialTree.cleanUp(); + this.categories = {}; + this._model = new FragmentsGroup(); + this._ifcCategories = new IfcCategories(); + this._propertyExporter = new IfcJsonExporter(); + this._keyFragmentMap = {}; + this._itemKeyMap = {}; + } + saveIfcCategories(webIfc) { + this.categories = this._ifcCategories.getAll(webIfc, 0); + } + async generate(webIfc, geometries) { + await this._spatialTree.setUp(webIfc); + this.createAllFragments(geometries); + await this.saveModelData(webIfc); + return this._model; + } + async saveModelData(webIfc) { + const itemsData = this.getFragmentsGroupData(); + this._model.keyFragments = this._keyFragmentMap; + this._model.data = itemsData; + this._model.coordinationMatrix = this.getCoordinationMatrix(webIfc); + this._model.properties = await this.getModelProperties(webIfc); + this._model.uuid = this.getProjectID(webIfc) || this._model.uuid; + this._model.ifcMetadata = this.getIfcMetadata(webIfc); + this._model.boundingBox = await this.getBoundingBox(); + } + async getBoundingBox() { + const bbox = await this.components.tools.get(FragmentBoundingBox); + bbox.reset(); + bbox.add(this._model); + return bbox.get(); + } + getIfcMetadata(webIfc) { + const { FILE_NAME, FILE_DESCRIPTION } = WEBIFC; + const name = this.getMetadataEntry(webIfc, FILE_NAME); + const description = this.getMetadataEntry(webIfc, FILE_DESCRIPTION); + const schema = webIfc.GetModelSchema(0) || "IFC2X3"; + const maxExpressID = webIfc.GetMaxExpressID(0); + return { name, description, schema, maxExpressID }; + } + getMetadataEntry(webIfc, type) { + let description = ""; + const descriptionData = webIfc.GetHeaderLine(0, type) || ""; + if (!descriptionData) + return description; + for (const arg of descriptionData.arguments) { + if (arg === null || arg === undefined) { + continue; + } + if (Array.isArray(arg)) { + for (const subArg of arg) { + description += `${subArg.value}|`; + } + } + else { + description += `${arg.value}|`; + } + } + return description; } - } - IFC4X32.IfcSpatialZoneType = IfcSpatialZoneType; - class IfcSphere extends IfcCsgPrimitive3D { - constructor(expressID, Position, Radius) { - super(expressID, Position); - this.Position = Position; - this.Radius = Radius; - this.type = 451544542; + getProjectID(webIfc) { + const projectsIDs = webIfc.GetLineIDsWithType(0, IFCPROJECT); + const projectID = projectsIDs.get(0); + const project = webIfc.GetLine(0, projectID); + return project.GlobalId.value; } - } - IFC4X32.IfcSphere = IfcSphere; - class IfcSphericalSurface extends IfcElementarySurface { - constructor(expressID, Position, Radius) { - super(expressID, Position); - this.Position = Position; - this.Radius = Radius; - this.type = 4015995234; + getCoordinationMatrix(webIfc) { + const coordArray = webIfc.GetCoordinationMatrix(0); + return new THREE$1.Matrix4().fromArray(coordArray); } - } - IFC4X32.IfcSphericalSurface = IfcSphericalSurface; - class IfcSpiral extends IfcCurve { - constructor(expressID, Position) { - super(expressID); - this.Position = Position; - this.type = 2735484536; + async getModelProperties(webIfc) { + if (!this.settings.includeProperties) { + return {}; + } + return new Promise((resolve) => { + this._propertyExporter.onPropertiesSerialized.add((properties) => { + resolve(properties); + }); + this._propertyExporter.export(webIfc, 0); + }); } - } - IFC4X32.IfcSpiral = IfcSpiral; - class IfcStructuralActivity extends IfcProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.type = 3544373492; + createAllFragments(geometries) { + const uniqueItems = {}; + const matrix = new THREE$1.Matrix4(); + const color = new THREE$1.Color(); + for (const id in geometries) { + const { buffer, instances } = geometries[id]; + const transparent = instances[0].color.w !== 1; + const opacity = transparent ? 0.4 : 1; + const material = new THREE$1.MeshLambertMaterial({ transparent, opacity }); + // This prevents z-fighting for ifc spaces + if (opacity !== 1) { + material.depthWrite = false; + material.polygonOffset = true; + material.polygonOffsetFactor = 5; + material.polygonOffsetUnits = 1; + } + if (instances.length === 1) { + const instance = instances[0]; + const { x, y, z, w } = instance.color; + const matID = `${x}-${y}-${z}-${w}`; + if (!uniqueItems[matID]) { + material.color = new THREE$1.Color().setRGB(x, y, z, "srgb"); + uniqueItems[matID] = { material, geometries: [], expressIDs: [] }; + } + matrix.fromArray(instance.matrix); + buffer.applyMatrix4(matrix); + uniqueItems[matID].geometries.push(buffer); + uniqueItems[matID].expressIDs.push(instance.expressID.toString()); + continue; + } + const fragment = new Fragment$1(buffer, material, instances.length); + this._keyFragmentMap[this._fragmentKey] = fragment.id; + const previousIDs = new Set(); + for (let i = 0; i < instances.length; i++) { + const instance = instances[i]; + matrix.fromArray(instance.matrix); + const { expressID } = instance; + let instanceID = expressID.toString(); + let isComposite = false; + if (!previousIDs.has(expressID)) { + previousIDs.add(expressID); + } + else { + if (!fragment.composites[expressID]) { + fragment.composites[expressID] = 1; + } + const count = fragment.composites[expressID]; + instanceID = toCompositeID(expressID, count); + isComposite = true; + fragment.composites[expressID]++; + } + fragment.setInstance(i, { + ids: [instanceID], + transform: matrix, + }); + const { x, y, z } = instance.color; + color.setRGB(x, y, z, "srgb"); + fragment.mesh.setColorAt(i, color); + if (!isComposite) { + this.saveExpressID(expressID.toString()); + } + } + fragment.mesh.updateMatrix(); + this._model.items.push(fragment); + this._model.add(fragment.mesh); + this._fragmentKey++; + } + const transform = new THREE$1.Matrix4(); + for (const matID in uniqueItems) { + const { material, geometries, expressIDs } = uniqueItems[matID]; + const geometriesByItem = {}; + for (let i = 0; i < expressIDs.length; i++) { + const id = expressIDs[i]; + if (!geometriesByItem[id]) { + geometriesByItem[id] = []; + } + geometriesByItem[id].push(geometries[i]); + } + const sortedGeometries = []; + const sortedIDs = []; + for (const id in geometriesByItem) { + sortedIDs.push(id); + const geometries = geometriesByItem[id]; + if (geometries.length) { + const merged = mergeGeometries(geometries); + sortedGeometries.push(merged); + } + else { + sortedGeometries.push(geometries[0]); + } + for (const geometry of geometries) { + geometry.dispose(); + } + } + const geometry = GeometryUtils.merge([sortedGeometries], true); + const fragment = new Fragment$1(geometry, material, 1); + this._keyFragmentMap[this._fragmentKey] = fragment.id; + for (const id of sortedIDs) { + this.saveExpressID(id); + } + this._fragmentKey++; + fragment.setInstance(0, { ids: sortedIDs, transform }); + this._model.items.push(fragment); + this._model.add(fragment.mesh); + } + } + saveExpressID(expressID) { + if (!this._itemKeyMap[expressID]) { + this._itemKeyMap[expressID] = []; + } + this._itemKeyMap[expressID].push(this._fragmentKey); + } + getFragmentsGroupData() { + const itemsData = {}; + for (const id in this._itemKeyMap) { + const keys = []; + const rels = []; + const idNum = parseInt(id, 10); + const level = this._spatialTree.itemsByFloor[idNum] || 0; + const category = this.categories[idNum] || 0; + rels.push(level, category); + for (const key of this._itemKeyMap[id]) { + keys.push(key); + } + itemsData[idNum] = [keys, rels]; + } + return itemsData; } - } - IFC4X32.IfcStructuralActivity = IfcStructuralActivity; - class IfcStructuralItem extends IfcProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.type = 3136571912; +} + +class GeometryReader { + constructor() { + this.saveLocations = false; + this.items = {}; + this.locations = {}; + } + get webIfc() { + if (!this._webIfc) { + throw new Error("web-ifc not found!"); + } + return this._webIfc; + } + cleanUp() { + this.items = {}; + this.locations = {}; + this._webIfc = null; + } + streamMesh(webifc, mesh, forceTransparent = false) { + this._webIfc = webifc; + const size = mesh.geometries.size(); + const totalTransform = new THREE$1.Vector3(); + const tempMatrix = new THREE$1.Matrix4(); + const tempVector = new THREE$1.Vector3(); + for (let i = 0; i < size; i++) { + const geometry = mesh.geometries.get(i); + const geometryID = geometry.geometryExpressID; + if (this.saveLocations) { + tempVector.set(0, 0, 0); + tempMatrix.fromArray(geometry.flatTransformation); + tempVector.applyMatrix4(tempMatrix); + totalTransform.add(tempVector); + } + // Transparent geometries need to be separated + const isColorTransparent = geometry.color.w !== 1; + const isTransparent = isColorTransparent || forceTransparent; + const prefix = isTransparent ? "-" : "+"; + const idWithTransparency = prefix + geometryID; + if (forceTransparent) + geometry.color.w = 0.1; + if (!this.items[idWithTransparency]) { + const buffer = this.newBufferGeometry(geometryID); + if (!buffer) + continue; + this.items[idWithTransparency] = { buffer, instances: [] }; + } + this.items[idWithTransparency].instances.push({ + color: { ...geometry.color }, + matrix: geometry.flatTransformation, + expressID: mesh.expressID, + }); + } + if (this.saveLocations) { + const { x, y, z } = totalTransform.divideScalar(size); + this.locations[mesh.expressID] = [x, y, z]; + } } - } - IFC4X32.IfcStructuralItem = IfcStructuralItem; - class IfcStructuralMember extends IfcStructuralItem { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.type = 530289379; + newBufferGeometry(geometryID) { + const geometry = this.webIfc.GetGeometry(0, geometryID); + const verts = this.getVertices(geometry); + if (!verts.length) + return null; + const indices = this.getIndices(geometry); + if (!indices.length) + return null; + const buffer = this.constructBuffer(verts, indices); + // @ts-ignore + geometry.delete(); + return buffer; + } + getIndices(geometryData) { + const indices = this.webIfc.GetIndexArray(geometryData.GetIndexData(), geometryData.GetIndexDataSize()); + return indices; + } + getVertices(geometryData) { + const verts = this.webIfc.GetVertexArray(geometryData.GetVertexData(), geometryData.GetVertexDataSize()); + return verts; + } + constructBuffer(vertexData, indexData) { + const geometry = new THREE$1.BufferGeometry(); + const posFloats = new Float32Array(vertexData.length / 2); + const normFloats = new Float32Array(vertexData.length / 2); + for (let i = 0; i < vertexData.length; i += 6) { + posFloats[i / 2] = vertexData[i]; + posFloats[i / 2 + 1] = vertexData[i + 1]; + posFloats[i / 2 + 2] = vertexData[i + 2]; + normFloats[i / 2] = vertexData[i + 3]; + normFloats[i / 2 + 1] = vertexData[i + 4]; + normFloats[i / 2 + 2] = vertexData[i + 5]; + } + geometry.setAttribute("position", new THREE$1.BufferAttribute(posFloats, 3)); + geometry.setAttribute("normal", new THREE$1.BufferAttribute(normFloats, 3)); + geometry.setIndex(new THREE$1.BufferAttribute(indexData, 1)); + return geometry; } - } - IFC4X32.IfcStructuralMember = IfcStructuralMember; - class IfcStructuralReaction extends IfcStructuralActivity { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.type = 3689010777; +} + +/** + * Reads all the geometry of the IFC file and generates a set of + * [fragments](https://github.com/ifcjs/fragment). It can also return the + * properties as a JSON file, as well as other sets of information within + * the IFC file. + */ +class FragmentIfcLoader extends Component { + constructor(components) { + super(components); + this.enabled = true; + this.uiElement = new UIElement(); + this.onIfcLoaded = new Event(); + // For debugging purposes + // isolatedItems = new Set(); + this.onLocationsSaved = new Event(); + this._webIfc = new IfcAPI2(); + this._geometry = new GeometryReader(); + this._converter = new DataConverter(components); + this.components.tools.add(FragmentIfcLoader.uuid, this); + if (components.ui.enabled) { + this.setupUI(); + } + } + get() { + return this._webIfc; + } + get settings() { + return this._converter.settings; + } + /** {@link Disposable.dispose} */ + async dispose() { + this._geometry.cleanUp(); + this._converter.cleanUp(); + this.onIfcLoaded.reset(); + this.onLocationsSaved.reset(); + this.uiElement.dispose(); + this._webIfc = null; + this._geometry = null; + this._converter = null; + } + /** Loads the IFC file and converts it to a set of fragments. */ + async load(data, name) { + if (this.settings.saveLocations) { + this._geometry.saveLocations = true; + } + const before = performance.now(); + await this.readIfcFile(data); + await this.readAllGeometries(); + const items = this._geometry.items; + const model = await this._converter.generate(this._webIfc, items); + model.name = name; + if (this.settings.saveLocations) { + await this.onLocationsSaved.trigger(this._geometry.locations); + } + const fragments = await this.components.tools.get(FragmentManager); + if (this.settings.coordinate) { + const isFirstModel = fragments.groups.length === 0; + if (isFirstModel) { + fragments.baseCoordinationModel = model.uuid; + } + else { + fragments.coordinate([model]); + } + } + this.cleanUp(); + fragments.groups.push(model); + for (const fragment of model.items) { + fragment.group = model; + fragments.list[fragment.id] = fragment; + this.components.meshes.push(fragment.mesh); + } + await this.onIfcLoaded.trigger(model); + console.log(`Loading the IFC took ${performance.now() - before} ms!`); + return model; + } + setupUI() { + const main = new Button(this.components); + main.materialIcon = "upload_file"; + main.tooltip = "Load IFC"; + const toast = new ToastNotification(this.components, { + message: "IFC model successfully loaded!", + }); + main.onClick.add(() => { + const fileOpener = document.createElement("input"); + fileOpener.type = "file"; + fileOpener.accept = ".ifc"; + fileOpener.style.display = "none"; + fileOpener.onchange = async () => { + const fragments = await this.components.tools.get(FragmentManager); + if (fileOpener.files === null || fileOpener.files.length === 0) + return; + const file = fileOpener.files[0]; + const buffer = await file.arrayBuffer(); + const data = new Uint8Array(buffer); + const model = await this.load(data, file.name); + const scene = this.components.scene.get(); + scene.add(model); + toast.visible = true; + await fragments.updateWindow(); + fileOpener.remove(); + }; + fileOpener.click(); + }); + this.components.ui.add(toast); + toast.visible = false; + this.uiElement.set({ main, toast }); + } + async readIfcFile(data) { + const { path, absolute } = this.settings.wasm; + this._webIfc.SetWasmPath(path, absolute); + await this._webIfc.Init(); + this._webIfc.OpenModel(data, this.settings.webIfc); + } + async readAllGeometries() { + this._converter.saveIfcCategories(this._webIfc); + // Some categories (like IfcSpace) need to be created explicitly + const optionals = this.settings.optionalCategories; + // Force IFC space to be transparent + if (optionals.includes(IFCSPACE)) { + const index = optionals.indexOf(IFCSPACE); + optionals.splice(index, 1); + this._webIfc.StreamAllMeshesWithTypes(0, [IFCSPACE], (mesh) => { + if (this.isExcluded(mesh.expressID)) { + return; + } + this._geometry.streamMesh(this._webIfc, mesh, true); + }); + } + // Load rest of optional categories (if any) + if (optionals.length) { + this._webIfc.StreamAllMeshesWithTypes(0, optionals, (mesh) => { + if (this.isExcluded(mesh.expressID)) { + return; + } + this._geometry.streamMesh(this._webIfc, mesh); + }); + } + // Load common categories + this._webIfc.StreamAllMeshes(0, (mesh) => { + if (this.isExcluded(mesh.expressID)) { + return; + } + this._geometry.streamMesh(this._webIfc, mesh); + }); } - } - IFC4X32.IfcStructuralReaction = IfcStructuralReaction; - class IfcStructuralSurfaceMember extends IfcStructuralMember { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.PredefinedType = PredefinedType; - this.Thickness = Thickness; - this.type = 3979015343; + cleanUp() { + this._webIfc = null; + this._webIfc = new IfcAPI2(); + this._geometry.cleanUp(); + this._converter.cleanUp(); } - } - IFC4X32.IfcStructuralSurfaceMember = IfcStructuralSurfaceMember; - class IfcStructuralSurfaceMemberVarying extends IfcStructuralSurfaceMember { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.PredefinedType = PredefinedType; - this.Thickness = Thickness; - this.type = 2218152070; + isExcluded(id) { + const category = this._converter.categories[id]; + return this.settings.excludedCategories.has(category); } - } - IFC4X32.IfcStructuralSurfaceMemberVarying = IfcStructuralSurfaceMemberVarying; - class IfcStructuralSurfaceReaction extends IfcStructuralReaction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.PredefinedType = PredefinedType; - this.type = 603775116; +} +FragmentIfcLoader.uuid = "a659add7-1418-4771-a0d6-7d4d438e4624"; +ToolComponent.libraryUUIDs.add(FragmentIfcLoader.uuid); + +/** + * Object to control the {@link CameraProjection} of the {@link OrthoPerspectiveCamera}. + */ +class ProjectionManager { + get projection() { + return this._currentProjection; + } + constructor(components, camera) { + this.components = components; + this._previousDistance = -1; + this._camera = camera; + const perspective = "Perspective"; + this._currentCamera = camera.get(perspective); + this._currentProjection = perspective; } - } - IFC4X32.IfcStructuralSurfaceReaction = IfcStructuralSurfaceReaction; - class IfcSubContractResourceType extends IfcConstructionResourceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.ResourceType = ResourceType; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.PredefinedType = PredefinedType; - this.type = 4095615324; + /** + * Sets the {@link CameraProjection} of the {@link OrthoPerspectiveCamera}. + * + * @param projection - the new projection to set. If it is the current projection, + * it will have no effect. + */ + async setProjection(projection) { + if (this.projection === projection) + return; + if (projection === "Orthographic") { + this.setOrthoCamera(); + } + else { + await this.setPerspectiveCamera(); + } + await this.updateActiveCamera(); } - } - IFC4X32.IfcSubContractResourceType = IfcSubContractResourceType; - class IfcSurfaceCurve extends IfcCurve { - constructor(expressID, Curve3D, AssociatedGeometry, MasterRepresentation) { - super(expressID); - this.Curve3D = Curve3D; - this.AssociatedGeometry = AssociatedGeometry; - this.MasterRepresentation = MasterRepresentation; - this.type = 699246055; + setOrthoCamera() { + // Matching orthographic camera to perspective camera + // Resource: https://stackoverflow.com/questions/48758959/what-is-required-to-convert-threejs-perspective-camera-to-orthographic + if (this._camera.currentMode.id === "FirstPerson") { + return; + } + this._previousDistance = this._camera.controls.distance; + this._camera.controls.distance = 200; + const { width, height } = this.getDims(); + this.setupOrthoCamera(height, width); + this._currentCamera = this._camera.get("Orthographic"); + this._currentProjection = "Orthographic"; + } + // This small delay is needed to hide weirdness during the transition + async updateActiveCamera() { + await new Promise((resolve) => { + setTimeout(() => { + this._camera.activeCamera = this._currentCamera; + resolve(); + }, 50); + }); } - } - IFC4X32.IfcSurfaceCurve = IfcSurfaceCurve; - class IfcSurfaceCurveSweptAreaSolid extends IfcDirectrixCurveSweptAreaSolid { - constructor(expressID, SweptArea, Position, Directrix, StartParam, EndParam, ReferenceSurface) { - super(expressID, SweptArea, Position, Directrix, StartParam, EndParam); - this.SweptArea = SweptArea; - this.Position = Position; - this.Directrix = Directrix; - this.StartParam = StartParam; - this.EndParam = EndParam; - this.ReferenceSurface = ReferenceSurface; - this.type = 2028607225; + getDims() { + const lineOfSight = new THREE$1.Vector3(); + this._camera.get("Perspective").getWorldDirection(lineOfSight); + const target = new THREE$1.Vector3(); + this._camera.controls.getTarget(target); + const distance = target + .clone() + .sub(this._camera.get("Perspective").position); + const depth = distance.dot(lineOfSight); + const dims = this.components.renderer.getSize(); + const aspect = dims.x / dims.y; + const camera = this._camera.get("Perspective"); + const height = depth * 2 * Math.atan((camera.fov * (Math.PI / 180)) / 2); + const width = height * aspect; + return { width, height }; + } + setupOrthoCamera(height, width) { + this._camera.controls.mouseButtons.wheel = CameraControls.ACTION.ZOOM; + this._camera.controls.mouseButtons.middle = CameraControls.ACTION.ZOOM; + const pCamera = this._camera.get("Perspective"); + const oCamera = this._camera.get("Orthographic"); + oCamera.zoom = 1; + oCamera.left = width / -2; + oCamera.right = width / 2; + oCamera.top = height / 2; + oCamera.bottom = height / -2; + oCamera.updateProjectionMatrix(); + oCamera.position.copy(pCamera.position); + oCamera.quaternion.copy(pCamera.quaternion); + this._camera.controls.camera = oCamera; + } + async setPerspectiveCamera() { + this._camera.controls.mouseButtons.wheel = CameraControls.ACTION.DOLLY; + this._camera.controls.mouseButtons.middle = CameraControls.ACTION.DOLLY; + const pCamera = this._camera.get("Perspective"); + const oCamera = this._camera.get("Orthographic"); + pCamera.position.copy(oCamera.position); + pCamera.quaternion.copy(oCamera.quaternion); + this._camera.controls.mouseButtons.wheel = CameraControls.ACTION.DOLLY; + this._camera.controls.distance = this._previousDistance; + await this._camera.controls.zoomTo(1); + pCamera.updateProjectionMatrix(); + this._camera.controls.camera = pCamera; + this._currentCamera = pCamera; + this._currentProjection = "Perspective"; } - } - IFC4X32.IfcSurfaceCurveSweptAreaSolid = IfcSurfaceCurveSweptAreaSolid; - class IfcSurfaceOfLinearExtrusion extends IfcSweptSurface { - constructor(expressID, SweptCurve, Position, ExtrudedDirection, Depth) { - super(expressID, SweptCurve, Position); - this.SweptCurve = SweptCurve; - this.Position = Position; - this.ExtrudedDirection = ExtrudedDirection; - this.Depth = Depth; - this.type = 2809605785; +} + +/** + * A {@link NavigationMode} that allows 3D navigation and panning + * like in many 3D and CAD softwares. + */ +class OrbitMode { + constructor(camera) { + this.camera = camera; + /** {@link NavigationMode.enabled} */ + this.enabled = true; + /** {@link NavigationMode.id} */ + this.id = "Orbit"; + /** {@link NavigationMode.projectionChanged} */ + this.projectionChanged = new Event(); + this.activateOrbitControls(); + } + /** {@link NavigationMode.toggle} */ + toggle(active) { + this.enabled = active; + if (active) { + this.activateOrbitControls(); + } } - } - IFC4X32.IfcSurfaceOfLinearExtrusion = IfcSurfaceOfLinearExtrusion; - class IfcSurfaceOfRevolution extends IfcSweptSurface { - constructor(expressID, SweptCurve, Position, AxisPosition) { - super(expressID, SweptCurve, Position); - this.SweptCurve = SweptCurve; - this.Position = Position; - this.AxisPosition = AxisPosition; - this.type = 4124788165; + activateOrbitControls() { + const controls = this.camera.controls; + controls.minDistance = 1; + controls.maxDistance = 300; + controls.truckSpeed = 2; } - } - IFC4X32.IfcSurfaceOfRevolution = IfcSurfaceOfRevolution; - class IfcSystemFurnitureElementType extends IfcFurnishingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1580310250; +} + +/** + * A {@link NavigationMode} that allows first person navigation, + * simulating FPS video games. + */ +class FirstPersonMode { + constructor(camera) { + this.camera = camera; + /** {@link NavigationMode.enabled} */ + this.enabled = false; + /** {@link NavigationMode.id} */ + this.id = "FirstPerson"; + /** {@link NavigationMode.projectionChanged} */ + this.projectionChanged = new Event(); + } + /** {@link NavigationMode.toggle} */ + toggle(active) { + this.enabled = active; + if (active) { + const projection = this.camera.getProjection(); + if (projection !== "Perspective") { + this.camera.setNavigationMode("Orbit"); + return; + } + this.setupFirstPersonCamera(); + } + } + setupFirstPersonCamera() { + const controls = this.camera.controls; + const cameraPosition = new THREE$1.Vector3(); + controls.camera.getWorldPosition(cameraPosition); + const newTargetPosition = new THREE$1.Vector3(); + controls.distance--; + controls.camera.getWorldPosition(newTargetPosition); + controls.minDistance = 1; + controls.maxDistance = 1; + controls.distance = 1; + controls.moveTo(newTargetPosition.x, newTargetPosition.y, newTargetPosition.z); + controls.truckSpeed = 50; + controls.mouseButtons.wheel = CameraControls.ACTION.DOLLY; + controls.touches.two = CameraControls.ACTION.TOUCH_ZOOM_TRUCK; } - } - IFC4X32.IfcSystemFurnitureElementType = IfcSystemFurnitureElementType; - class IfcTask extends IfcProcess { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Status, WorkMethod, IsMilestone, Priority, TaskTime, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.Status = Status; - this.WorkMethod = WorkMethod; - this.IsMilestone = IsMilestone; - this.Priority = Priority; - this.TaskTime = TaskTime; - this.PredefinedType = PredefinedType; - this.type = 3473067441; +} + +/** + * A {@link NavigationMode} that allows to navigate floorplans in 2D, + * like many BIM tools. + */ +class PlanMode { + constructor(camera) { + this.camera = camera; + /** {@link NavigationMode.enabled} */ + this.enabled = false; + /** {@link NavigationMode.id} */ + this.id = "Plan"; + /** {@link NavigationMode.projectionChanged} */ + this.projectionChanged = new Event(); + this.mouseInitialized = false; + this.defaultAzimuthSpeed = camera.controls.azimuthRotateSpeed; + this.defaultPolarSpeed = camera.controls.polarRotateSpeed; + } + /** {@link NavigationMode.toggle} */ + toggle(active) { + this.enabled = active; + const controls = this.camera.controls; + controls.azimuthRotateSpeed = active ? 0 : this.defaultAzimuthSpeed; + controls.polarRotateSpeed = active ? 0 : this.defaultPolarSpeed; + if (!this.mouseInitialized) { + this.mouseAction1 = controls.touches.one; + this.mouseAction2 = controls.touches.two; + this.mouseInitialized = true; + } + if (active) { + controls.mouseButtons.left = CameraControls.ACTION.TRUCK; + controls.touches.one = CameraControls.ACTION.TOUCH_TRUCK; + controls.touches.two = CameraControls.ACTION.TOUCH_ZOOM; + } + else { + controls.mouseButtons.left = CameraControls.ACTION.ROTATE; + controls.touches.one = this.mouseAction1; + controls.touches.two = this.mouseAction2; + } } - } - IFC4X32.IfcTask = IfcTask; - class IfcTaskType extends IfcTypeProcess { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType, PredefinedType, WorkMethod) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.ProcessType = ProcessType; - this.PredefinedType = PredefinedType; - this.WorkMethod = WorkMethod; - this.type = 3206491090; +} + +/** + * A flexible camera that uses + * [yomotsu's cameracontrols](https://github.com/yomotsu/camera-controls) to + * easily control the camera in 2D and 3D. It supports multiple navigation + * modes, such as 2D floor plan navigation, first person and 3D orbit. + */ +class OrthoPerspectiveCamera extends SimpleCamera { + constructor(components) { + super(components); + /** + * Event that fires when the {@link CameraProjection} changes. + */ + this.projectionChanged = new Event(); + this._userInputButtons = {}; + this._frustumSize = 50; + this._navigationModes = new Map(); + this.uiElement = new UIElement(); + this._orthoCamera = this.newOrthoCamera(); + this._navigationModes.set("Orbit", new OrbitMode(this)); + this._navigationModes.set("FirstPerson", new FirstPersonMode(this)); + this._navigationModes.set("Plan", new PlanMode(this)); + this.currentMode = this._navigationModes.get("Orbit"); + this.currentMode.toggle(true, { preventTargetAdjustment: true }); + this.toggleEvents(true); + this._projectionManager = new ProjectionManager(components, this); + if (components.ui.enabled) { + this.setUI(); + } + this.onAspectUpdated.add(() => this.setOrthoCameraAspect()); + } + setUI() { + const mainButton = new Button(this.components); + mainButton.materialIcon = "video_camera_back"; + mainButton.tooltip = "Camera"; + const projection = new Button(this.components, { + materialIconName: "camera", + name: "Projection", + }); + const perspective = new Button(this.components, { name: "Perspective" }); + perspective.active = true; + perspective.onClick.add(() => this.setProjection("Perspective")); + const orthographic = new Button(this.components, { name: "Orthographic" }); + orthographic.onClick.add(() => this.setProjection("Orthographic")); + projection.addChild(perspective, orthographic); + const navigation = new Button(this.components, { + materialIconName: "open_with", + name: "Navigation", + }); + const orbit = new Button(this.components, { name: "Orbit Around" }); + orbit.onClick.add(() => this.setNavigationMode("Orbit")); + const plan = new Button(this.components, { name: "Plan View" }); + plan.onClick.add(() => this.setNavigationMode("Plan")); + const firstPerson = new Button(this.components, { name: "First person" }); + firstPerson.onClick.add(() => this.setNavigationMode("FirstPerson")); + navigation.addChild(orbit, plan, firstPerson); + mainButton.addChild(navigation, projection); + this.projectionChanged.add((camera) => { + if (camera instanceof THREE$1.PerspectiveCamera) { + perspective.active = true; + orthographic.active = false; + } + else { + perspective.active = false; + orthographic.active = true; + } + }); + this.uiElement.set({ main: mainButton }); } - } - IFC4X32.IfcTaskType = IfcTaskType; - class IfcTessellatedFaceSet extends IfcTessellatedItem { - constructor(expressID, Coordinates, Closed) { - super(expressID); - this.Coordinates = Coordinates; - this.Closed = Closed; - this.type = 2387106220; + /** {@link Disposable.dispose} */ + async dispose() { + await super.dispose(); + this.toggleEvents(false); + this._orthoCamera.removeFromParent(); } - } - IFC4X32.IfcTessellatedFaceSet = IfcTessellatedFaceSet; - class IfcThirdOrderPolynomialSpiral extends IfcSpiral { - constructor(expressID, Position, CubicTerm, QuadraticTerm, LinearTerm, ConstantTerm) { - super(expressID, Position); - this.Position = Position; - this.CubicTerm = CubicTerm; - this.QuadraticTerm = QuadraticTerm; - this.LinearTerm = LinearTerm; - this.ConstantTerm = ConstantTerm; - this.type = 782932809; + /** + * Similar to {@link Component.get}, but with an optional argument + * to specify which camera to get. + * + * @param projection - The camera corresponding to the + * {@link CameraProjection} specified. If no projection is specified, + * the active camera will be returned. + */ + get(projection) { + if (!projection) { + return this.activeCamera; + } + return projection === "Orthographic" + ? this._orthoCamera + : this._perspectiveCamera; } - } - IFC4X32.IfcThirdOrderPolynomialSpiral = IfcThirdOrderPolynomialSpiral; - class IfcToroidalSurface extends IfcElementarySurface { - constructor(expressID, Position, MajorRadius, MinorRadius) { - super(expressID, Position); - this.Position = Position; - this.MajorRadius = MajorRadius; - this.MinorRadius = MinorRadius; - this.type = 1935646853; + /** Returns the current {@link CameraProjection}. */ + getProjection() { + return this._projectionManager.projection; } - } - IFC4X32.IfcToroidalSurface = IfcToroidalSurface; - class IfcTransportationDeviceType extends IfcElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 3665877780; + /** + * Changes the current {@link CameraProjection} from Ortographic to Perspective + * and Viceversa. + */ + async toggleProjection() { + const projection = this.getProjection(); + const newProjection = projection === "Perspective" ? "Orthographic" : "Perspective"; + await this.setProjection(newProjection); } - } - IFC4X32.IfcTransportationDeviceType = IfcTransportationDeviceType; - class IfcTriangulatedFaceSet extends IfcTessellatedFaceSet { - constructor(expressID, Coordinates, Closed, Normals, CoordIndex, PnIndex) { - super(expressID, Coordinates, Closed); - this.Coordinates = Coordinates; - this.Closed = Closed; - this.Normals = Normals; - this.CoordIndex = CoordIndex; - this.PnIndex = PnIndex; - this.type = 2916149573; + /** + * Sets the current {@link CameraProjection}. This triggers the event + * {@link projectionChanged}. + * + * @param projection - The new {@link CameraProjection} to set. + */ + async setProjection(projection) { + await this._projectionManager.setProjection(projection); + await this.projectionChanged.trigger(this.activeCamera); } - } - IFC4X32.IfcTriangulatedFaceSet = IfcTriangulatedFaceSet; - class IfcTriangulatedIrregularNetwork extends IfcTriangulatedFaceSet { - constructor(expressID, Coordinates, Closed, Normals, CoordIndex, PnIndex, Flags) { - super(expressID, Coordinates, Closed, Normals, CoordIndex, PnIndex); - this.Coordinates = Coordinates; - this.Closed = Closed; - this.Normals = Normals; - this.CoordIndex = CoordIndex; - this.PnIndex = PnIndex; - this.Flags = Flags; - this.type = 1229763772; + /** + * Allows or prevents all user input. + * + * @param active - whether to enable or disable user inputs. + */ + toggleUserInput(active) { + if (active) { + this.enableUserInput(); + } + else { + this.disableUserInput(); + } } - } - IFC4X32.IfcTriangulatedIrregularNetwork = IfcTriangulatedIrregularNetwork; - class IfcVehicleType extends IfcTransportationDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3651464721; + /** + * Sets a new {@link NavigationMode} and disables the previous one. + * + * @param mode - The {@link NavigationMode} to set. + */ + setNavigationMode(mode) { + if (this.currentMode.id === mode) + return; + this.currentMode.toggle(false); + if (!this._navigationModes.has(mode)) { + throw new Error("The specified mode does not exist!"); + } + this.currentMode = this._navigationModes.get(mode); + this.currentMode.toggle(true); + } + /** + * Make the camera view fit all the specified meshes. + * + * @param meshes the meshes to fit. If it is not defined, it will + * evaluate {@link Components.meshes}. + * @param offset the distance to the fit object + */ + async fit(meshes = this.components.meshes, offset = 1.5) { + if (!this.enabled) + return; + const maxNum = Number.MAX_VALUE; + const minNum = Number.MIN_VALUE; + const min = new THREE$1.Vector3(maxNum, maxNum, maxNum); + const max = new THREE$1.Vector3(minNum, minNum, minNum); + for (const mesh of meshes) { + const box = new THREE$1.Box3().setFromObject(mesh); + if (box.min.x < min.x) + min.x = box.min.x; + if (box.min.y < min.y) + min.y = box.min.y; + if (box.min.z < min.z) + min.z = box.min.z; + if (box.max.x > max.x) + max.x = box.max.x; + if (box.max.y > max.y) + max.y = box.max.y; + if (box.max.z > max.z) + max.z = box.max.z; + } + const box = new THREE$1.Box3(min, max); + const sceneSize = new THREE$1.Vector3(); + box.getSize(sceneSize); + const sceneCenter = new THREE$1.Vector3(); + box.getCenter(sceneCenter); + const radius = Math.max(sceneSize.x, sceneSize.y, sceneSize.z) * offset; + const sphere = new THREE$1.Sphere(sceneCenter, radius); + await this.controls.fitToSphere(sphere, true); + } + disableUserInput() { + this._userInputButtons.left = this.controls.mouseButtons.left; + this._userInputButtons.right = this.controls.mouseButtons.right; + this._userInputButtons.middle = this.controls.mouseButtons.middle; + this._userInputButtons.wheel = this.controls.mouseButtons.wheel; + this.controls.mouseButtons.left = 0; + this.controls.mouseButtons.right = 0; + this.controls.mouseButtons.middle = 0; + this.controls.mouseButtons.wheel = 0; + } + enableUserInput() { + if (Object.keys(this._userInputButtons).length === 0) + return; + this.controls.mouseButtons.left = this._userInputButtons.left; + this.controls.mouseButtons.right = this._userInputButtons.right; + this.controls.mouseButtons.middle = this._userInputButtons.middle; + this.controls.mouseButtons.wheel = this._userInputButtons.wheel; + } + newOrthoCamera() { + const dims = this.components.renderer.getSize(); + const aspect = dims.x / dims.y; + return new THREE$1.OrthographicCamera((this._frustumSize * aspect) / -2, (this._frustumSize * aspect) / 2, this._frustumSize / 2, this._frustumSize / -2, 0.1, 1000); + } + setOrthoCameraAspect() { + const size = this.components.renderer.getSize(); + const aspect = size.x / size.y; + this._orthoCamera.left = (-this._frustumSize * aspect) / 2; + this._orthoCamera.right = (this._frustumSize * aspect) / 2; + this._orthoCamera.top = this._frustumSize / 2; + this._orthoCamera.bottom = -this._frustumSize / 2; + this._orthoCamera.updateProjectionMatrix(); + } + toggleEvents(active) { + const modes = Object.values(this._navigationModes); + for (const mode of modes) { + if (active) { + mode.projectionChanged.on(this.projectionChanged.trigger); + } + else { + mode.projectionChanged.reset(); + } + } + } +} + +var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; + +function getDefaultExportFromCjs (x) { + return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x; +} + +var earcut$2 = {exports: {}}; + +earcut$2.exports = earcut; +earcut$2.exports.default = earcut; + +function earcut(data, holeIndices, dim) { + + dim = dim || 2; + + var hasHoles = holeIndices && holeIndices.length, + outerLen = hasHoles ? holeIndices[0] * dim : data.length, + outerNode = linkedList(data, 0, outerLen, dim, true), + triangles = []; + + if (!outerNode || outerNode.next === outerNode.prev) return triangles; + + var minX, minY, maxX, maxY, x, y, invSize; + + if (hasHoles) outerNode = eliminateHoles(data, holeIndices, outerNode, dim); + + // if the shape is not too simple, we'll use z-order curve hash later; calculate polygon bbox + if (data.length > 80 * dim) { + minX = maxX = data[0]; + minY = maxY = data[1]; + + for (var i = dim; i < outerLen; i += dim) { + x = data[i]; + y = data[i + 1]; + if (x < minX) minX = x; + if (y < minY) minY = y; + if (x > maxX) maxX = x; + if (y > maxY) maxY = y; + } + + // minX, minY and invSize are later used to transform coords into integers for z-order calculation + invSize = Math.max(maxX - minX, maxY - minY); + invSize = invSize !== 0 ? 32767 / invSize : 0; } - } - IFC4X32.IfcVehicleType = IfcVehicleType; - class IfcWindowLiningProperties extends IfcPreDefinedPropertySet { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, LiningDepth, LiningThickness, TransomThickness, MullionThickness, FirstTransomOffset, SecondTransomOffset, FirstMullionOffset, SecondMullionOffset, ShapeAspectStyle, LiningOffset, LiningToPanelOffsetX, LiningToPanelOffsetY) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.LiningDepth = LiningDepth; - this.LiningThickness = LiningThickness; - this.TransomThickness = TransomThickness; - this.MullionThickness = MullionThickness; - this.FirstTransomOffset = FirstTransomOffset; - this.SecondTransomOffset = SecondTransomOffset; - this.FirstMullionOffset = FirstMullionOffset; - this.SecondMullionOffset = SecondMullionOffset; - this.ShapeAspectStyle = ShapeAspectStyle; - this.LiningOffset = LiningOffset; - this.LiningToPanelOffsetX = LiningToPanelOffsetX; - this.LiningToPanelOffsetY = LiningToPanelOffsetY; - this.type = 336235671; + + earcutLinked(outerNode, triangles, dim, minX, minY, invSize, 0); + + return triangles; +} + +// create a circular doubly linked list from polygon points in the specified winding order +function linkedList(data, start, end, dim, clockwise) { + var i, last; + + if (clockwise === (signedArea(data, start, end, dim) > 0)) { + for (i = start; i < end; i += dim) last = insertNode(i, data[i], data[i + 1], last); + } else { + for (i = end - dim; i >= start; i -= dim) last = insertNode(i, data[i], data[i + 1], last); } - } - IFC4X32.IfcWindowLiningProperties = IfcWindowLiningProperties; - class IfcWindowPanelProperties extends IfcPreDefinedPropertySet { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, OperationType, PanelPosition, FrameDepth, FrameThickness, ShapeAspectStyle) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.OperationType = OperationType; - this.PanelPosition = PanelPosition; - this.FrameDepth = FrameDepth; - this.FrameThickness = FrameThickness; - this.ShapeAspectStyle = ShapeAspectStyle; - this.type = 512836454; + + if (last && equals(last, last.next)) { + removeNode(last); + last = last.next; } - } - IFC4X32.IfcWindowPanelProperties = IfcWindowPanelProperties; - class IfcActor extends IfcObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.TheActor = TheActor; - this.type = 2296667514; + + return last; +} + +// eliminate colinear or duplicate points +function filterPoints(start, end) { + if (!start) return start; + if (!end) end = start; + + var p = start, + again; + do { + again = false; + + if (!p.steiner && (equals(p, p.next) || area(p.prev, p, p.next) === 0)) { + removeNode(p); + p = end = p.prev; + if (p === p.next) break; + again = true; + + } else { + p = p.next; + } + } while (again || p !== end); + + return end; +} + +// main ear slicing loop which triangulates a polygon (given as a linked list) +function earcutLinked(ear, triangles, dim, minX, minY, invSize, pass) { + if (!ear) return; + + // interlink polygon nodes in z-order + if (!pass && invSize) indexCurve(ear, minX, minY, invSize); + + var stop = ear, + prev, next; + + // iterate through ears, slicing them one by one + while (ear.prev !== ear.next) { + prev = ear.prev; + next = ear.next; + + if (invSize ? isEarHashed(ear, minX, minY, invSize) : isEar(ear)) { + // cut off the triangle + triangles.push(prev.i / dim | 0); + triangles.push(ear.i / dim | 0); + triangles.push(next.i / dim | 0); + + removeNode(ear); + + // skipping the next vertex leads to less sliver triangles + ear = next.next; + stop = next.next; + + continue; + } + + ear = next; + + // if we looped through the whole remaining polygon and can't find any more ears + if (ear === stop) { + // try filtering points and slicing again + if (!pass) { + earcutLinked(filterPoints(ear), triangles, dim, minX, minY, invSize, 1); + + // if this didn't work, try curing all small self-intersections locally + } else if (pass === 1) { + ear = cureLocalIntersections(filterPoints(ear), triangles, dim); + earcutLinked(ear, triangles, dim, minX, minY, invSize, 2); + + // as a last resort, try splitting the remaining polygon into two + } else if (pass === 2) { + splitEarcut(ear, triangles, dim, minX, minY, invSize); + } + + break; + } } - } - IFC4X32.IfcActor = IfcActor; - class IfcAdvancedBrep extends IfcManifoldSolidBrep { - constructor(expressID, Outer) { - super(expressID, Outer); - this.Outer = Outer; - this.type = 1635779807; +} + +// check whether a polygon node forms a valid ear with adjacent nodes +function isEar(ear) { + var a = ear.prev, + b = ear, + c = ear.next; + + if (area(a, b, c) >= 0) return false; // reflex, can't be an ear + + // now make sure we don't have other points inside the potential ear + var ax = a.x, bx = b.x, cx = c.x, ay = a.y, by = b.y, cy = c.y; + + // triangle bbox; min & max are calculated like this for speed + var x0 = ax < bx ? (ax < cx ? ax : cx) : (bx < cx ? bx : cx), + y0 = ay < by ? (ay < cy ? ay : cy) : (by < cy ? by : cy), + x1 = ax > bx ? (ax > cx ? ax : cx) : (bx > cx ? bx : cx), + y1 = ay > by ? (ay > cy ? ay : cy) : (by > cy ? by : cy); + + var p = c.next; + while (p !== a) { + if (p.x >= x0 && p.x <= x1 && p.y >= y0 && p.y <= y1 && + pointInTriangle(ax, ay, bx, by, cx, cy, p.x, p.y) && + area(p.prev, p, p.next) >= 0) return false; + p = p.next; } - } - IFC4X32.IfcAdvancedBrep = IfcAdvancedBrep; - class IfcAdvancedBrepWithVoids extends IfcAdvancedBrep { - constructor(expressID, Outer, Voids) { - super(expressID, Outer); - this.Outer = Outer; - this.Voids = Voids; - this.type = 2603310189; + + return true; +} + +function isEarHashed(ear, minX, minY, invSize) { + var a = ear.prev, + b = ear, + c = ear.next; + + if (area(a, b, c) >= 0) return false; // reflex, can't be an ear + + var ax = a.x, bx = b.x, cx = c.x, ay = a.y, by = b.y, cy = c.y; + + // triangle bbox; min & max are calculated like this for speed + var x0 = ax < bx ? (ax < cx ? ax : cx) : (bx < cx ? bx : cx), + y0 = ay < by ? (ay < cy ? ay : cy) : (by < cy ? by : cy), + x1 = ax > bx ? (ax > cx ? ax : cx) : (bx > cx ? bx : cx), + y1 = ay > by ? (ay > cy ? ay : cy) : (by > cy ? by : cy); + + // z-order range for the current triangle bbox; + var minZ = zOrder(x0, y0, minX, minY, invSize), + maxZ = zOrder(x1, y1, minX, minY, invSize); + + var p = ear.prevZ, + n = ear.nextZ; + + // look for points inside the triangle in both directions + while (p && p.z >= minZ && n && n.z <= maxZ) { + if (p.x >= x0 && p.x <= x1 && p.y >= y0 && p.y <= y1 && p !== a && p !== c && + pointInTriangle(ax, ay, bx, by, cx, cy, p.x, p.y) && area(p.prev, p, p.next) >= 0) return false; + p = p.prevZ; + + if (n.x >= x0 && n.x <= x1 && n.y >= y0 && n.y <= y1 && n !== a && n !== c && + pointInTriangle(ax, ay, bx, by, cx, cy, n.x, n.y) && area(n.prev, n, n.next) >= 0) return false; + n = n.nextZ; } - } - IFC4X32.IfcAdvancedBrepWithVoids = IfcAdvancedBrepWithVoids; - class IfcAnnotation extends IfcProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.PredefinedType = PredefinedType; - this.type = 1674181508; + + // look for remaining points in decreasing z-order + while (p && p.z >= minZ) { + if (p.x >= x0 && p.x <= x1 && p.y >= y0 && p.y <= y1 && p !== a && p !== c && + pointInTriangle(ax, ay, bx, by, cx, cy, p.x, p.y) && area(p.prev, p, p.next) >= 0) return false; + p = p.prevZ; } - } - IFC4X32.IfcAnnotation = IfcAnnotation; - class IfcBSplineSurface extends IfcBoundedSurface { - constructor(expressID, UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect) { - super(expressID); - this.UDegree = UDegree; - this.VDegree = VDegree; - this.ControlPointsList = ControlPointsList; - this.SurfaceForm = SurfaceForm; - this.UClosed = UClosed; - this.VClosed = VClosed; - this.SelfIntersect = SelfIntersect; - this.type = 2887950389; + + // look for remaining points in increasing z-order + while (n && n.z <= maxZ) { + if (n.x >= x0 && n.x <= x1 && n.y >= y0 && n.y <= y1 && n !== a && n !== c && + pointInTriangle(ax, ay, bx, by, cx, cy, n.x, n.y) && area(n.prev, n, n.next) >= 0) return false; + n = n.nextZ; } - } - IFC4X32.IfcBSplineSurface = IfcBSplineSurface; - class IfcBSplineSurfaceWithKnots extends IfcBSplineSurface { - constructor(expressID, UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect, UMultiplicities, VMultiplicities, UKnots, VKnots, KnotSpec) { - super(expressID, UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect); - this.UDegree = UDegree; - this.VDegree = VDegree; - this.ControlPointsList = ControlPointsList; - this.SurfaceForm = SurfaceForm; - this.UClosed = UClosed; - this.VClosed = VClosed; - this.SelfIntersect = SelfIntersect; - this.UMultiplicities = UMultiplicities; - this.VMultiplicities = VMultiplicities; - this.UKnots = UKnots; - this.VKnots = VKnots; - this.KnotSpec = KnotSpec; - this.type = 167062518; + + return true; +} + +// go through all polygon nodes and cure small local self-intersections +function cureLocalIntersections(start, triangles, dim) { + var p = start; + do { + var a = p.prev, + b = p.next.next; + + if (!equals(a, b) && intersects(a, p, p.next, b) && locallyInside(a, b) && locallyInside(b, a)) { + + triangles.push(a.i / dim | 0); + triangles.push(p.i / dim | 0); + triangles.push(b.i / dim | 0); + + // remove two nodes involved + removeNode(p); + removeNode(p.next); + + p = start = b; + } + p = p.next; + } while (p !== start); + + return filterPoints(p); +} + +// try splitting polygon into two and triangulate them independently +function splitEarcut(start, triangles, dim, minX, minY, invSize) { + // look for a valid diagonal that divides the polygon into two + var a = start; + do { + var b = a.next.next; + while (b !== a.prev) { + if (a.i !== b.i && isValidDiagonal(a, b)) { + // split the polygon in two by the diagonal + var c = splitPolygon(a, b); + + // filter colinear points around the cuts + a = filterPoints(a, a.next); + c = filterPoints(c, c.next); + + // run earcut on each half + earcutLinked(a, triangles, dim, minX, minY, invSize, 0); + earcutLinked(c, triangles, dim, minX, minY, invSize, 0); + return; + } + b = b.next; + } + a = a.next; + } while (a !== start); +} + +// link every hole into the outer loop, producing a single-ring polygon without holes +function eliminateHoles(data, holeIndices, outerNode, dim) { + var queue = [], + i, len, start, end, list; + + for (i = 0, len = holeIndices.length; i < len; i++) { + start = holeIndices[i] * dim; + end = i < len - 1 ? holeIndices[i + 1] * dim : data.length; + list = linkedList(data, start, end, dim, false); + if (list === list.next) list.steiner = true; + queue.push(getLeftmost(list)); } - } - IFC4X32.IfcBSplineSurfaceWithKnots = IfcBSplineSurfaceWithKnots; - class IfcBlock extends IfcCsgPrimitive3D { - constructor(expressID, Position, XLength, YLength, ZLength) { - super(expressID, Position); - this.Position = Position; - this.XLength = XLength; - this.YLength = YLength; - this.ZLength = ZLength; - this.type = 1334484129; + + queue.sort(compareX); + + // process holes from left to right + for (i = 0; i < queue.length; i++) { + outerNode = eliminateHole(queue[i], outerNode); } - } - IFC4X32.IfcBlock = IfcBlock; - class IfcBooleanClippingResult extends IfcBooleanResult { - constructor(expressID, Operator, FirstOperand, SecondOperand) { - super(expressID, Operator, FirstOperand, SecondOperand); - this.Operator = Operator; - this.FirstOperand = FirstOperand; - this.SecondOperand = SecondOperand; - this.type = 3649129432; + + return outerNode; +} + +function compareX(a, b) { + return a.x - b.x; +} + +// find a bridge between vertices that connects hole with an outer ring and and link it +function eliminateHole(hole, outerNode) { + var bridge = findHoleBridge(hole, outerNode); + if (!bridge) { + return outerNode; } - } - IFC4X32.IfcBooleanClippingResult = IfcBooleanClippingResult; - class IfcBoundedCurve extends IfcCurve { - constructor(expressID) { - super(expressID); - this.type = 1260505505; + + var bridgeReverse = splitPolygon(bridge, hole); + + // filter collinear points around the cuts + filterPoints(bridgeReverse, bridgeReverse.next); + return filterPoints(bridge, bridge.next); +} + +// David Eberly's algorithm for finding a bridge between hole and outer polygon +function findHoleBridge(hole, outerNode) { + var p = outerNode, + hx = hole.x, + hy = hole.y, + qx = -Infinity, + m; + + // find a segment intersected by a ray from the hole's leftmost point to the left; + // segment's endpoint with lesser x will be potential connection point + do { + if (hy <= p.y && hy >= p.next.y && p.next.y !== p.y) { + var x = p.x + (hy - p.y) * (p.next.x - p.x) / (p.next.y - p.y); + if (x <= hx && x > qx) { + qx = x; + m = p.x < p.next.x ? p : p.next; + if (x === hx) return m; // hole touches outer segment; pick leftmost endpoint + } + } + p = p.next; + } while (p !== outerNode); + + if (!m) return null; + + // look for points inside the triangle of hole point, segment intersection and endpoint; + // if there are no points found, we have a valid connection; + // otherwise choose the point of the minimum angle with the ray as connection point + + var stop = m, + mx = m.x, + my = m.y, + tanMin = Infinity, + tan; + + p = m; + + do { + if (hx >= p.x && p.x >= mx && hx !== p.x && + pointInTriangle(hy < my ? hx : qx, hy, mx, my, hy < my ? qx : hx, hy, p.x, p.y)) { + + tan = Math.abs(hy - p.y) / (hx - p.x); // tangential + + if (locallyInside(p, hole) && + (tan < tanMin || (tan === tanMin && (p.x > m.x || (p.x === m.x && sectorContainsSector(m, p)))))) { + m = p; + tanMin = tan; + } + } + + p = p.next; + } while (p !== stop); + + return m; +} + +// whether sector in vertex m contains sector in vertex p in the same coordinates +function sectorContainsSector(m, p) { + return area(m.prev, m, p.prev) < 0 && area(p.next, m, m.next) < 0; +} + +// interlink polygon nodes in z-order +function indexCurve(start, minX, minY, invSize) { + var p = start; + do { + if (p.z === 0) p.z = zOrder(p.x, p.y, minX, minY, invSize); + p.prevZ = p.prev; + p.nextZ = p.next; + p = p.next; + } while (p !== start); + + p.prevZ.nextZ = null; + p.prevZ = null; + + sortLinked(p); +} + +// Simon Tatham's linked list merge sort algorithm +// http://www.chiark.greenend.org.uk/~sgtatham/algorithms/listsort.html +function sortLinked(list) { + var i, p, q, e, tail, numMerges, pSize, qSize, + inSize = 1; + + do { + p = list; + list = null; + tail = null; + numMerges = 0; + + while (p) { + numMerges++; + q = p; + pSize = 0; + for (i = 0; i < inSize; i++) { + pSize++; + q = q.nextZ; + if (!q) break; + } + qSize = inSize; + + while (pSize > 0 || (qSize > 0 && q)) { + + if (pSize !== 0 && (qSize === 0 || !q || p.z <= q.z)) { + e = p; + p = p.nextZ; + pSize--; + } else { + e = q; + q = q.nextZ; + qSize--; + } + + if (tail) tail.nextZ = e; + else list = e; + + e.prevZ = tail; + tail = e; + } + + p = q; + } + + tail.nextZ = null; + inSize *= 2; + + } while (numMerges > 1); + + return list; +} + +// z-order of a point given coords and inverse of the longer side of data bbox +function zOrder(x, y, minX, minY, invSize) { + // coords are transformed into non-negative 15-bit integer range + x = (x - minX) * invSize | 0; + y = (y - minY) * invSize | 0; + + x = (x | (x << 8)) & 0x00FF00FF; + x = (x | (x << 4)) & 0x0F0F0F0F; + x = (x | (x << 2)) & 0x33333333; + x = (x | (x << 1)) & 0x55555555; + + y = (y | (y << 8)) & 0x00FF00FF; + y = (y | (y << 4)) & 0x0F0F0F0F; + y = (y | (y << 2)) & 0x33333333; + y = (y | (y << 1)) & 0x55555555; + + return x | (y << 1); +} + +// find the leftmost node of a polygon ring +function getLeftmost(start) { + var p = start, + leftmost = start; + do { + if (p.x < leftmost.x || (p.x === leftmost.x && p.y < leftmost.y)) leftmost = p; + p = p.next; + } while (p !== start); + + return leftmost; +} + +// check if a point lies within a convex triangle +function pointInTriangle(ax, ay, bx, by, cx, cy, px, py) { + return (cx - px) * (ay - py) >= (ax - px) * (cy - py) && + (ax - px) * (by - py) >= (bx - px) * (ay - py) && + (bx - px) * (cy - py) >= (cx - px) * (by - py); +} + +// check if a diagonal between two polygon nodes is valid (lies in polygon interior) +function isValidDiagonal(a, b) { + return a.next.i !== b.i && a.prev.i !== b.i && !intersectsPolygon(a, b) && // dones't intersect other edges + (locallyInside(a, b) && locallyInside(b, a) && middleInside(a, b) && // locally visible + (area(a.prev, a, b.prev) || area(a, b.prev, b)) || // does not create opposite-facing sectors + equals(a, b) && area(a.prev, a, a.next) > 0 && area(b.prev, b, b.next) > 0); // special zero-length case +} + +// signed area of a triangle +function area(p, q, r) { + return (q.y - p.y) * (r.x - q.x) - (q.x - p.x) * (r.y - q.y); +} + +// check if two points are equal +function equals(p1, p2) { + return p1.x === p2.x && p1.y === p2.y; +} + +// check if two segments intersect +function intersects(p1, q1, p2, q2) { + var o1 = sign(area(p1, q1, p2)); + var o2 = sign(area(p1, q1, q2)); + var o3 = sign(area(p2, q2, p1)); + var o4 = sign(area(p2, q2, q1)); + + if (o1 !== o2 && o3 !== o4) return true; // general case + + if (o1 === 0 && onSegment(p1, p2, q1)) return true; // p1, q1 and p2 are collinear and p2 lies on p1q1 + if (o2 === 0 && onSegment(p1, q2, q1)) return true; // p1, q1 and q2 are collinear and q2 lies on p1q1 + if (o3 === 0 && onSegment(p2, p1, q2)) return true; // p2, q2 and p1 are collinear and p1 lies on p2q2 + if (o4 === 0 && onSegment(p2, q1, q2)) return true; // p2, q2 and q1 are collinear and q1 lies on p2q2 + + return false; +} + +// for collinear points p, q, r, check if point q lies on segment pr +function onSegment(p, q, r) { + return q.x <= Math.max(p.x, r.x) && q.x >= Math.min(p.x, r.x) && q.y <= Math.max(p.y, r.y) && q.y >= Math.min(p.y, r.y); +} + +function sign(num) { + return num > 0 ? 1 : num < 0 ? -1 : 0; +} + +// check if a polygon diagonal intersects any polygon segments +function intersectsPolygon(a, b) { + var p = a; + do { + if (p.i !== a.i && p.next.i !== a.i && p.i !== b.i && p.next.i !== b.i && + intersects(p, p.next, a, b)) return true; + p = p.next; + } while (p !== a); + + return false; +} + +// check if a polygon diagonal is locally inside the polygon +function locallyInside(a, b) { + return area(a.prev, a, a.next) < 0 ? + area(a, b, a.next) >= 0 && area(a, a.prev, b) >= 0 : + area(a, b, a.prev) < 0 || area(a, a.next, b) < 0; +} + +// check if the middle point of a polygon diagonal is inside the polygon +function middleInside(a, b) { + var p = a, + inside = false, + px = (a.x + b.x) / 2, + py = (a.y + b.y) / 2; + do { + if (((p.y > py) !== (p.next.y > py)) && p.next.y !== p.y && + (px < (p.next.x - p.x) * (py - p.y) / (p.next.y - p.y) + p.x)) + inside = !inside; + p = p.next; + } while (p !== a); + + return inside; +} + +// link two polygon vertices with a bridge; if the vertices belong to the same ring, it splits polygon into two; +// if one belongs to the outer ring and another to a hole, it merges it into a single ring +function splitPolygon(a, b) { + var a2 = new Node(a.i, a.x, a.y), + b2 = new Node(b.i, b.x, b.y), + an = a.next, + bp = b.prev; + + a.next = b; + b.prev = a; + + a2.next = an; + an.prev = a2; + + b2.next = a2; + a2.prev = b2; + + bp.next = b2; + b2.prev = bp; + + return b2; +} + +// create a node and optionally link it with previous one (in a circular doubly linked list) +function insertNode(i, x, y, last) { + var p = new Node(i, x, y); + + if (!last) { + p.prev = p; + p.next = p; + + } else { + p.next = last.next; + p.prev = last; + last.next.prev = p; + last.next = p; } - } - IFC4X32.IfcBoundedCurve = IfcBoundedCurve; - class IfcBuildingStorey extends IfcSpatialStructureElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, Elevation) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.Elevation = Elevation; - this.type = 3124254112; + return p; +} + +function removeNode(p) { + p.next.prev = p.prev; + p.prev.next = p.next; + + if (p.prevZ) p.prevZ.nextZ = p.nextZ; + if (p.nextZ) p.nextZ.prevZ = p.prevZ; +} + +function Node(i, x, y) { + // vertex index in coordinates array + this.i = i; + + // vertex coordinates + this.x = x; + this.y = y; + + // previous and next vertex nodes in a polygon ring + this.prev = null; + this.next = null; + + // z-order curve value + this.z = 0; + + // previous and next nodes in z-order + this.prevZ = null; + this.nextZ = null; + + // indicates whether this is a steiner point + this.steiner = false; +} + +// return a percentage difference between the polygon area and its triangulation area; +// used to verify correctness of triangulation +earcut.deviation = function (data, holeIndices, dim, triangles) { + var hasHoles = holeIndices && holeIndices.length; + var outerLen = hasHoles ? holeIndices[0] * dim : data.length; + + var polygonArea = Math.abs(signedArea(data, 0, outerLen, dim)); + if (hasHoles) { + for (var i = 0, len = holeIndices.length; i < len; i++) { + var start = holeIndices[i] * dim; + var end = i < len - 1 ? holeIndices[i + 1] * dim : data.length; + polygonArea -= Math.abs(signedArea(data, start, end, dim)); + } } - } - IFC4X32.IfcBuildingStorey = IfcBuildingStorey; - class IfcBuiltElementType extends IfcElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 1626504194; + + var trianglesArea = 0; + for (i = 0; i < triangles.length; i += 3) { + var a = triangles[i] * dim; + var b = triangles[i + 1] * dim; + var c = triangles[i + 2] * dim; + trianglesArea += Math.abs( + (data[a] - data[c]) * (data[b + 1] - data[a + 1]) - + (data[a] - data[b]) * (data[c + 1] - data[a + 1])); } - } - IFC4X32.IfcBuiltElementType = IfcBuiltElementType; - class IfcChimneyType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2197970202; + + return polygonArea === 0 && trianglesArea === 0 ? 0 : + Math.abs((trianglesArea - polygonArea) / polygonArea); +}; + +function signedArea(data, start, end, dim) { + var sum = 0; + for (var i = start, j = end - dim; i < end; i += dim) { + sum += (data[j] - data[i]) * (data[i + 1] + data[j + 1]); + j = i; } - } - IFC4X32.IfcChimneyType = IfcChimneyType; - class IfcCircleHollowProfileDef extends IfcCircleProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, Radius, WallThickness) { - super(expressID, ProfileType, ProfileName, Position, Radius); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.Radius = Radius; - this.WallThickness = WallThickness; - this.type = 2937912522; + return sum; +} + +// turn a polygon in a multi-dimensional array form (e.g. as in GeoJSON) into a form Earcut accepts +earcut.flatten = function (data) { + var dim = data[0][0].length, + result = {vertices: [], holes: [], dimensions: dim}, + holeIndex = 0; + + for (var i = 0; i < data.length; i++) { + for (var j = 0; j < data[i].length; j++) { + for (var d = 0; d < dim; d++) result.vertices.push(data[i][j][d]); + } + if (i > 0) { + holeIndex += data[i - 1].length; + result.holes.push(holeIndex); + } } - } - IFC4X32.IfcCircleHollowProfileDef = IfcCircleHollowProfileDef; - class IfcCivilElementType extends IfcElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 3893394355; + return result; +}; + +var earcutExports = earcut$2.exports; +var earcut$1 = /*@__PURE__*/getDefaultExportFromCjs(earcutExports); + +/** + * Full-screen textured quad shader + */ + +const CopyShader = { + + uniforms: { + + 'tDiffuse': { value: null }, + 'opacity': { value: 1.0 } + + }, + + vertexShader: /* glsl */` + + varying vec2 vUv; + + void main() { + + vUv = uv; + gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); + + }`, + + fragmentShader: /* glsl */` + + uniform float opacity; + + uniform sampler2D tDiffuse; + + varying vec2 vUv; + + void main() { + + gl_FragColor = texture2D( tDiffuse, vUv ); + gl_FragColor.a *= opacity; + + + }` + +}; + +class Pass { + + constructor() { + + this.isPass = true; + + // if set to true, the pass is processed by the composer + this.enabled = true; + + // if set to true, the pass indicates to swap read and write buffer after rendering + this.needsSwap = true; + + // if set to true, the pass clears its buffer before rendering + this.clear = false; + + // if set to true, the result of the pass is rendered to screen. This is set automatically by EffectComposer. + this.renderToScreen = false; + + } + + setSize( /* width, height */ ) {} + + render( /* renderer, writeBuffer, readBuffer, deltaTime, maskActive */ ) { + + console.error( 'THREE.Pass: .render() must be implemented in derived pass.' ); + + } + + dispose() {} + +} + +// Helper for passes that need to fill the viewport with a single quad. + +const _camera = new OrthographicCamera( - 1, 1, 1, - 1, 0, 1 ); + +// https://github.com/mrdoob/three.js/pull/21358 + +const _geometry = new BufferGeometry(); +_geometry.setAttribute( 'position', new Float32BufferAttribute( [ - 1, 3, 0, - 1, - 1, 0, 3, - 1, 0 ], 3 ) ); +_geometry.setAttribute( 'uv', new Float32BufferAttribute( [ 0, 2, 0, 0, 2, 0 ], 2 ) ); + +class FullScreenQuad { + + constructor( material ) { + + this._mesh = new Mesh( _geometry, material ); + + } + + dispose() { + + this._mesh.geometry.dispose(); + + } + + render( renderer ) { + + renderer.render( this._mesh, _camera ); + + } + + get material() { + + return this._mesh.material; + + } + + set material( value ) { + + this._mesh.material = value; + + } + +} + +class ShaderPass extends Pass { + + constructor( shader, textureID ) { + + super(); + + this.textureID = ( textureID !== undefined ) ? textureID : 'tDiffuse'; + + if ( shader instanceof ShaderMaterial ) { + + this.uniforms = shader.uniforms; + + this.material = shader; + + } else if ( shader ) { + + this.uniforms = UniformsUtils.clone( shader.uniforms ); + + this.material = new ShaderMaterial( { + + defines: Object.assign( {}, shader.defines ), + uniforms: this.uniforms, + vertexShader: shader.vertexShader, + fragmentShader: shader.fragmentShader + + } ); + + } + + this.fsQuad = new FullScreenQuad( this.material ); + + } + + render( renderer, writeBuffer, readBuffer /*, deltaTime, maskActive */ ) { + + if ( this.uniforms[ this.textureID ] ) { + + this.uniforms[ this.textureID ].value = readBuffer.texture; + + } + + this.fsQuad.material = this.material; + + if ( this.renderToScreen ) { + + renderer.setRenderTarget( null ); + this.fsQuad.render( renderer ); + + } else { + + renderer.setRenderTarget( writeBuffer ); + // TODO: Avoid using autoClear properties, see https://github.com/mrdoob/three.js/pull/15571#issuecomment-465669600 + if ( this.clear ) renderer.clear( renderer.autoClearColor, renderer.autoClearDepth, renderer.autoClearStencil ); + this.fsQuad.render( renderer ); + + } + + } + + dispose() { + + this.material.dispose(); + + this.fsQuad.dispose(); + + } + +} + +class MaskPass extends Pass { + + constructor( scene, camera ) { + + super(); + + this.scene = scene; + this.camera = camera; + + this.clear = true; + this.needsSwap = false; + + this.inverse = false; + + } + + render( renderer, writeBuffer, readBuffer /*, deltaTime, maskActive */ ) { + + const context = renderer.getContext(); + const state = renderer.state; + + // don't update color or depth + + state.buffers.color.setMask( false ); + state.buffers.depth.setMask( false ); + + // lock buffers + + state.buffers.color.setLocked( true ); + state.buffers.depth.setLocked( true ); + + // set up stencil + + let writeValue, clearValue; + + if ( this.inverse ) { + + writeValue = 0; + clearValue = 1; + + } else { + + writeValue = 1; + clearValue = 0; + + } + + state.buffers.stencil.setTest( true ); + state.buffers.stencil.setOp( context.REPLACE, context.REPLACE, context.REPLACE ); + state.buffers.stencil.setFunc( context.ALWAYS, writeValue, 0xffffffff ); + state.buffers.stencil.setClear( clearValue ); + state.buffers.stencil.setLocked( true ); + + // draw into the stencil buffer + + renderer.setRenderTarget( readBuffer ); + if ( this.clear ) renderer.clear(); + renderer.render( this.scene, this.camera ); + + renderer.setRenderTarget( writeBuffer ); + if ( this.clear ) renderer.clear(); + renderer.render( this.scene, this.camera ); + + // unlock color and depth buffer for subsequent rendering + + state.buffers.color.setLocked( false ); + state.buffers.depth.setLocked( false ); + + // only render where stencil is set to 1 + + state.buffers.stencil.setLocked( false ); + state.buffers.stencil.setFunc( context.EQUAL, 1, 0xffffffff ); // draw if == 1 + state.buffers.stencil.setOp( context.KEEP, context.KEEP, context.KEEP ); + state.buffers.stencil.setLocked( true ); + + } + +} + +class ClearMaskPass extends Pass { + + constructor() { + + super(); + + this.needsSwap = false; + + } + + render( renderer /*, writeBuffer, readBuffer, deltaTime, maskActive */ ) { + + renderer.state.buffers.stencil.setLocked( false ); + renderer.state.buffers.stencil.setTest( false ); + + } + +} + +class EffectComposer { + + constructor( renderer, renderTarget ) { + + this.renderer = renderer; + + this._pixelRatio = renderer.getPixelRatio(); + + if ( renderTarget === undefined ) { + + const size = renderer.getSize( new Vector2$1() ); + this._width = size.width; + this._height = size.height; + + renderTarget = new WebGLRenderTarget( this._width * this._pixelRatio, this._height * this._pixelRatio ); + renderTarget.texture.name = 'EffectComposer.rt1'; + + } else { + + this._width = renderTarget.width; + this._height = renderTarget.height; + + } + + this.renderTarget1 = renderTarget; + this.renderTarget2 = renderTarget.clone(); + this.renderTarget2.texture.name = 'EffectComposer.rt2'; + + this.writeBuffer = this.renderTarget1; + this.readBuffer = this.renderTarget2; + + this.renderToScreen = true; + + this.passes = []; + + this.copyPass = new ShaderPass( CopyShader ); + + this.clock = new Clock(); + + } + + swapBuffers() { + + const tmp = this.readBuffer; + this.readBuffer = this.writeBuffer; + this.writeBuffer = tmp; + + } + + addPass( pass ) { + + this.passes.push( pass ); + pass.setSize( this._width * this._pixelRatio, this._height * this._pixelRatio ); + + } + + insertPass( pass, index ) { + + this.passes.splice( index, 0, pass ); + pass.setSize( this._width * this._pixelRatio, this._height * this._pixelRatio ); + + } + + removePass( pass ) { + + const index = this.passes.indexOf( pass ); + + if ( index !== - 1 ) { + + this.passes.splice( index, 1 ); + + } + + } + + isLastEnabledPass( passIndex ) { + + for ( let i = passIndex + 1; i < this.passes.length; i ++ ) { + + if ( this.passes[ i ].enabled ) { + + return false; + + } + + } + + return true; + + } + + render( deltaTime ) { + + // deltaTime value is in seconds + + if ( deltaTime === undefined ) { + + deltaTime = this.clock.getDelta(); + + } + + const currentRenderTarget = this.renderer.getRenderTarget(); + + let maskActive = false; + + for ( let i = 0, il = this.passes.length; i < il; i ++ ) { + + const pass = this.passes[ i ]; + + if ( pass.enabled === false ) continue; + + pass.renderToScreen = ( this.renderToScreen && this.isLastEnabledPass( i ) ); + pass.render( this.renderer, this.writeBuffer, this.readBuffer, deltaTime, maskActive ); + + if ( pass.needsSwap ) { + + if ( maskActive ) { + + const context = this.renderer.getContext(); + const stencil = this.renderer.state.buffers.stencil; + + //context.stencilFunc( context.NOTEQUAL, 1, 0xffffffff ); + stencil.setFunc( context.NOTEQUAL, 1, 0xffffffff ); + + this.copyPass.render( this.renderer, this.writeBuffer, this.readBuffer, deltaTime ); + + //context.stencilFunc( context.EQUAL, 1, 0xffffffff ); + stencil.setFunc( context.EQUAL, 1, 0xffffffff ); + + } + + this.swapBuffers(); + + } + + if ( MaskPass !== undefined ) { + + if ( pass instanceof MaskPass ) { + + maskActive = true; + + } else if ( pass instanceof ClearMaskPass ) { + + maskActive = false; + + } + + } + + } + + this.renderer.setRenderTarget( currentRenderTarget ); + + } + + reset( renderTarget ) { + + if ( renderTarget === undefined ) { + + const size = this.renderer.getSize( new Vector2$1() ); + this._pixelRatio = this.renderer.getPixelRatio(); + this._width = size.width; + this._height = size.height; + + renderTarget = this.renderTarget1.clone(); + renderTarget.setSize( this._width * this._pixelRatio, this._height * this._pixelRatio ); + + } + + this.renderTarget1.dispose(); + this.renderTarget2.dispose(); + this.renderTarget1 = renderTarget; + this.renderTarget2 = renderTarget.clone(); + + this.writeBuffer = this.renderTarget1; + this.readBuffer = this.renderTarget2; + + } + + setSize( width, height ) { + + this._width = width; + this._height = height; + + const effectiveWidth = this._width * this._pixelRatio; + const effectiveHeight = this._height * this._pixelRatio; + + this.renderTarget1.setSize( effectiveWidth, effectiveHeight ); + this.renderTarget2.setSize( effectiveWidth, effectiveHeight ); + + for ( let i = 0; i < this.passes.length; i ++ ) { + + this.passes[ i ].setSize( effectiveWidth, effectiveHeight ); + + } + + } + + setPixelRatio( pixelRatio ) { + + this._pixelRatio = pixelRatio; + + this.setSize( this._width, this._height ); + + } + + dispose() { + + this.renderTarget1.dispose(); + this.renderTarget2.dispose(); + + this.copyPass.dispose(); + + } + +} + +class RenderPass extends Pass { + + constructor( scene, camera, overrideMaterial, clearColor, clearAlpha ) { + + super(); + + this.scene = scene; + this.camera = camera; + + this.overrideMaterial = overrideMaterial; + + this.clearColor = clearColor; + this.clearAlpha = ( clearAlpha !== undefined ) ? clearAlpha : 0; + + this.clear = true; + this.clearDepth = false; + this.needsSwap = false; + this._oldClearColor = new Color(); + + } + + render( renderer, writeBuffer, readBuffer /*, deltaTime, maskActive */ ) { + + const oldAutoClear = renderer.autoClear; + renderer.autoClear = false; + + let oldClearAlpha, oldOverrideMaterial; + + if ( this.overrideMaterial !== undefined ) { + + oldOverrideMaterial = this.scene.overrideMaterial; + + this.scene.overrideMaterial = this.overrideMaterial; + + } + + if ( this.clearColor ) { + + renderer.getClearColor( this._oldClearColor ); + oldClearAlpha = renderer.getClearAlpha(); + + renderer.setClearColor( this.clearColor, this.clearAlpha ); + + } + + if ( this.clearDepth ) { + + renderer.clearDepth(); + + } + + renderer.setRenderTarget( this.renderToScreen ? null : readBuffer ); + + // TODO: Avoid using autoClear properties, see https://github.com/mrdoob/three.js/pull/15571#issuecomment-465669600 + if ( this.clear ) renderer.clear( renderer.autoClearColor, renderer.autoClearDepth, renderer.autoClearStencil ); + renderer.render( this.scene, this.camera ); + + if ( this.clearColor ) { + + renderer.setClearColor( this._oldClearColor, oldClearAlpha ); + + } + + if ( this.overrideMaterial !== undefined ) { + + this.scene.overrideMaterial = oldOverrideMaterial; + + } + + renderer.autoClear = oldAutoClear; + + } + +} + +/** + * postprocessing v6.33.2 build Mon Oct 02 2023 + * https://github.com/pmndrs/postprocessing + * Copyright 2015-2023 Raoul van Rüschen + * @license Zlib + */ + +// src/utils/BackCompat.js +Number(REVISION.replace(/\D+/g, "")); + +const $e4ca8dcb0218f846$var$_geometry = new BufferGeometry(); +$e4ca8dcb0218f846$var$_geometry.setAttribute("position", new BufferAttribute$1(new Float32Array([ + -1, + -1, + 3, + -1, + -1, + 3 +]), 2)); +$e4ca8dcb0218f846$var$_geometry.setAttribute("uv", new BufferAttribute$1(new Float32Array([ + 0, + 0, + 2, + 0, + 0, + 2 +]), 2)); +// Recent three.js versions break setDrawRange or itemSize <3 position +$e4ca8dcb0218f846$var$_geometry.boundingSphere = new Sphere(); +$e4ca8dcb0218f846$var$_geometry.computeBoundingSphere = function() {}; +const $e4ca8dcb0218f846$var$_camera = new OrthographicCamera(); +class $e4ca8dcb0218f846$export$dcd670d73db751f5 { + constructor(material){ + this._mesh = new Mesh($e4ca8dcb0218f846$var$_geometry, material); + this._mesh.frustumCulled = false; } - } - IFC4X32.IfcCivilElementType = IfcCivilElementType; - class IfcClothoid extends IfcSpiral { - constructor(expressID, Position, ClothoidConstant) { - super(expressID, Position); - this.Position = Position; - this.ClothoidConstant = ClothoidConstant; - this.type = 3497074424; + render(renderer) { + renderer.render(this._mesh, $e4ca8dcb0218f846$var$_camera); } - } - IFC4X32.IfcClothoid = IfcClothoid; - class IfcColumnType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 300633059; + get material() { + return this._mesh.material; } - } - IFC4X32.IfcColumnType = IfcColumnType; - class IfcComplexPropertyTemplate extends IfcPropertyTemplate { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, UsageName, TemplateType, HasPropertyTemplates) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.UsageName = UsageName; - this.TemplateType = TemplateType; - this.HasPropertyTemplates = HasPropertyTemplates; - this.type = 3875453745; + set material(value) { + this._mesh.material = value; } - } - IFC4X32.IfcComplexPropertyTemplate = IfcComplexPropertyTemplate; - class IfcCompositeCurve extends IfcBoundedCurve { - constructor(expressID, Segments, SelfIntersect) { - super(expressID); - this.Segments = Segments; - this.SelfIntersect = SelfIntersect; - this.type = 3732776249; + dispose() { + this._mesh.material.dispose(); + this._mesh.geometry.dispose(); } - } - IFC4X32.IfcCompositeCurve = IfcCompositeCurve; - class IfcCompositeCurveOnSurface extends IfcCompositeCurve { - constructor(expressID, Segments, SelfIntersect) { - super(expressID, Segments, SelfIntersect); - this.Segments = Segments; - this.SelfIntersect = SelfIntersect; - this.type = 15328376; +} + + + +const $1ed45968c1160c3c$export$c9b263b9a17dffd7 = { + uniforms: { + "sceneDiffuse": { + value: null + }, + "sceneDepth": { + value: null + }, + "sceneNormal": { + value: null + }, + "projMat": { + value: new Matrix4() + }, + "viewMat": { + value: new Matrix4() + }, + "projViewMat": { + value: new Matrix4() + }, + "projectionMatrixInv": { + value: new Matrix4() + }, + "viewMatrixInv": { + value: new Matrix4() + }, + "cameraPos": { + value: new Vector3$1() + }, + "resolution": { + value: new Vector2$1() + }, + "time": { + value: 0.0 + }, + "samples": { + value: [] + }, + "samplesR": { + value: [] + }, + "bluenoise": { + value: null + }, + "distanceFalloff": { + value: 1.0 + }, + "radius": { + value: 5.0 + }, + "near": { + value: 0.1 + }, + "far": { + value: 1000.0 + }, + "logDepth": { + value: false + }, + "ortho": { + value: false + }, + "screenSpaceRadius": { + value: false + } + }, + depthWrite: false, + depthTest: false, + vertexShader: /* glsl */ ` +varying vec2 vUv; +void main() { + vUv = uv; + gl_Position = vec4(position, 1); +}`, + fragmentShader: /* glsl */ ` + #define SAMPLES 16 + #define FSAMPLES 16.0 +uniform sampler2D sceneDiffuse; +uniform highp sampler2D sceneNormal; +uniform highp sampler2D sceneDepth; +uniform mat4 projectionMatrixInv; +uniform mat4 viewMatrixInv; +uniform mat4 projMat; +uniform mat4 viewMat; +uniform mat4 projViewMat; +uniform vec3 cameraPos; +uniform vec2 resolution; +uniform float time; +uniform vec3[SAMPLES] samples; +uniform float[SAMPLES] samplesR; +uniform float radius; +uniform float distanceFalloff; +uniform float near; +uniform float far; +uniform bool logDepth; +uniform bool ortho; +uniform bool screenSpaceRadius; +uniform sampler2D bluenoise; + varying vec2 vUv; + highp float linearize_depth(highp float d, highp float zNear,highp float zFar) + { + return (zFar * zNear) / (zFar - d * (zFar - zNear)); } - } - IFC4X32.IfcCompositeCurveOnSurface = IfcCompositeCurveOnSurface; - class IfcConic extends IfcCurve { - constructor(expressID, Position) { - super(expressID); - this.Position = Position; - this.type = 2510884976; + highp float linearize_depth_ortho(highp float d, highp float nearZ, highp float farZ) { + return nearZ + (farZ - nearZ) * d; } - } - IFC4X32.IfcConic = IfcConic; - class IfcConstructionEquipmentResourceType extends IfcConstructionResourceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.ResourceType = ResourceType; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.PredefinedType = PredefinedType; - this.type = 2185764099; + highp float linearize_depth_log(highp float d, highp float nearZ,highp float farZ) { + float depth = pow(2.0, d * log2(farZ + 1.0)) - 1.0; + float a = farZ / (farZ - nearZ); + float b = farZ * nearZ / (nearZ - farZ); + float linDepth = a + b / depth; + return ortho ? linearize_depth_ortho( + linDepth, + nearZ, + farZ + ) :linearize_depth(linDepth, nearZ, farZ); } - } - IFC4X32.IfcConstructionEquipmentResourceType = IfcConstructionEquipmentResourceType; - class IfcConstructionMaterialResourceType extends IfcConstructionResourceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.ResourceType = ResourceType; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.PredefinedType = PredefinedType; - this.type = 4105962743; + + vec3 getWorldPosLog(vec3 posS) { + vec2 uv = posS.xy; + float z = posS.z; + float nearZ =near; + float farZ = far; + float depth = pow(2.0, z * log2(farZ + 1.0)) - 1.0; + float a = farZ / (farZ - nearZ); + float b = farZ * nearZ / (nearZ - farZ); + float linDepth = a + b / depth; + vec4 clipVec = vec4(uv, linDepth, 1.0) * 2.0 - 1.0; + vec4 wpos = projectionMatrixInv * clipVec; + return wpos.xyz / wpos.w; } + vec3 getWorldPos(float depth, vec2 coord) { + #ifdef LOGDEPTH + return getWorldPosLog(vec3(coord, depth)); + #endif + float z = depth * 2.0 - 1.0; + vec4 clipSpacePosition = vec4(coord * 2.0 - 1.0, z, 1.0); + vec4 viewSpacePosition = projectionMatrixInv * clipSpacePosition; + // Perspective division + vec4 worldSpacePosition = viewSpacePosition; + worldSpacePosition.xyz /= worldSpacePosition.w; + return worldSpacePosition.xyz; } - IFC4X32.IfcConstructionMaterialResourceType = IfcConstructionMaterialResourceType; - class IfcConstructionProductResourceType extends IfcConstructionResourceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.ResourceType = ResourceType; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.PredefinedType = PredefinedType; - this.type = 1525564444; + + vec3 computeNormal(vec3 worldPos, vec2 vUv) { + ivec2 p = ivec2(vUv * resolution); + float c0 = texelFetch(sceneDepth, p, 0).x; + float l2 = texelFetch(sceneDepth, p - ivec2(2, 0), 0).x; + float l1 = texelFetch(sceneDepth, p - ivec2(1, 0), 0).x; + float r1 = texelFetch(sceneDepth, p + ivec2(1, 0), 0).x; + float r2 = texelFetch(sceneDepth, p + ivec2(2, 0), 0).x; + float b2 = texelFetch(sceneDepth, p - ivec2(0, 2), 0).x; + float b1 = texelFetch(sceneDepth, p - ivec2(0, 1), 0).x; + float t1 = texelFetch(sceneDepth, p + ivec2(0, 1), 0).x; + float t2 = texelFetch(sceneDepth, p + ivec2(0, 2), 0).x; + + float dl = abs((2.0 * l1 - l2) - c0); + float dr = abs((2.0 * r1 - r2) - c0); + float db = abs((2.0 * b1 - b2) - c0); + float dt = abs((2.0 * t1 - t2) - c0); + + vec3 ce = getWorldPos(c0, vUv).xyz; + + vec3 dpdx = (dl < dr) ? ce - getWorldPos(l1, (vUv - vec2(1.0 / resolution.x, 0.0))).xyz + : -ce + getWorldPos(r1, (vUv + vec2(1.0 / resolution.x, 0.0))).xyz; + vec3 dpdy = (db < dt) ? ce - getWorldPos(b1, (vUv - vec2(0.0, 1.0 / resolution.y))).xyz + : -ce + getWorldPos(t1, (vUv + vec2(0.0, 1.0 / resolution.y))).xyz; + + return normalize(cross(dpdx, dpdy)); +} + +void main() { + vec4 diffuse = texture2D(sceneDiffuse, vUv); + float depth = texture2D(sceneDepth, vUv).x; + if (depth == 1.0) { + gl_FragColor = vec4(vec3(1.0), 1.0); + return; + } + vec3 worldPos = getWorldPos(depth, vUv); + // vec3 normal = texture2D(sceneNormal, vUv).rgb;//computeNormal(worldPos, vUv); + #ifdef HALFRES + vec3 normal = texture2D(sceneNormal, vUv).rgb; + #else + vec3 normal = computeNormal(worldPos, vUv); + #endif + vec4 noise = texture2D(bluenoise, gl_FragCoord.xy / 128.0); + vec3 randomVec = normalize(noise.rgb * 2.0 - 1.0); + vec3 tangent = normalize(randomVec - normal * dot(randomVec, normal)); + vec3 bitangent = cross(normal, tangent); + mat3 tbn = mat3(tangent, bitangent, normal); + float occluded = 0.0; + float totalWeight = 0.0; + /* float radiusScreen = distance( + worldPos, + getWorldPos(depth, vUv + + vec2(48.0, 0.0) / resolution) + );/*vUv.x < 0.5 ? radius : min(distance( + worldPos, + getWorldPos(depth, vUv + + vec2(100.0, 0.0) / resolution) + ), radius); + float distanceFalloffScreen = radiusScreen * 0.2;*/ + float radiusToUse = screenSpaceRadius ? distance( + worldPos, + getWorldPos(depth, vUv + + vec2(radius, 0.0) / resolution) + ) : radius; + float distanceFalloffToUse =screenSpaceRadius ? + radiusToUse * distanceFalloff + : distanceFalloff; + float bias = (0.1 / near) * fwidth(distance(worldPos, cameraPos)) / radiusToUse; + for(float i = 0.0; i < FSAMPLES; i++) { + vec3 sampleDirection = + tbn * + samples[int(i)]; + ; + float moveAmt = samplesR[int(mod(i + noise.a * FSAMPLES, FSAMPLES))]; + vec3 samplePos = worldPos + radiusToUse * moveAmt * sampleDirection; + vec4 offset = projMat * vec4(samplePos, 1.0); + offset.xyz /= offset.w; + offset.xyz = offset.xyz * 0.5 + 0.5; + float sampleDepth = textureLod(sceneDepth, offset.xy, 0.0).x; + /*float distSample = logDepth ? linearize_depth_log(sampleDepth, near, far) + (ortho ? linearize_depth_ortho(sampleDepth, near, far) : linearize_depth(sampleDepth, near, far));*/ + #ifdef LOGDEPTH + float distSample = linearize_depth_log(sampleDepth, near, far); + #else + float distSample = ortho ? linearize_depth_ortho(sampleDepth, near, far) : linearize_depth(sampleDepth, near, far); + #endif + float distWorld = ortho ? linearize_depth_ortho(offset.z, near, far) : linearize_depth(offset.z, near, far); + float rangeCheck = smoothstep(0.0, 1.0, distanceFalloffToUse / (abs(distSample - distWorld))); + vec2 diff = gl_FragCoord.xy - ( offset.xy * resolution); + float weight = dot(sampleDirection, normal); + occluded += rangeCheck * weight * + (distSample + bias + < distWorld ? 1.0 : 0.0) * ( + (dot( + diff, + diff + + ) < 1.0 || (sampleDepth == depth) || ( + offset.x < 0.0 || offset.x > 1.0 || offset.y < 0.0 || offset.y > 1.0 + ) ? 0.0 : 1.0) + ); + totalWeight += weight; + } + float occ = clamp(1.0 - occluded / totalWeight, 0.0, 1.0); + gl_FragColor = vec4(0.5 + 0.5 * normal, occ); +}` +}; + + + +const $12b21d24d1192a04$export$a815acccbd2c9a49 = { + uniforms: { + "sceneDiffuse": { + value: null + }, + "sceneDepth": { + value: null + }, + "tDiffuse": { + value: null + }, + "projMat": { + value: new Matrix4() + }, + "viewMat": { + value: new Matrix4() + }, + "projectionMatrixInv": { + value: new Matrix4() + }, + "viewMatrixInv": { + value: new Matrix4() + }, + "cameraPos": { + value: new Vector3$1() + }, + "resolution": { + value: new Vector2$1() + }, + "color": { + value: new Vector3$1(0, 0, 0) + }, + "blueNoise": { + value: null + }, + "downsampledDepth": { + value: null + }, + "time": { + value: 0.0 + }, + "intensity": { + value: 10.0 + }, + "renderMode": { + value: 0.0 + }, + "gammaCorrection": { + value: false + }, + "logDepth": { + value: false + }, + "ortho": { + value: false + }, + "near": { + value: 0.1 + }, + "far": { + value: 1000.0 + }, + "screenSpaceRadius": { + value: false + }, + "radius": { + value: 0.0 + }, + "distanceFalloff": { + value: 1.0 + }, + "fog": { + value: false + }, + "fogExp": { + value: false + }, + "fogDensity": { + value: 0.0 + }, + "fogNear": { + value: Infinity + }, + "fogFar": { + value: Infinity + }, + "colorMultiply": { + value: true + } + }, + depthWrite: false, + depthTest: false, + vertexShader: /* glsl */ ` + varying vec2 vUv; + void main() { + vUv = uv; + gl_Position = vec4(position, 1); + }`, + fragmentShader: /* glsl */ ` + uniform sampler2D sceneDiffuse; + uniform highp sampler2D sceneDepth; + uniform highp sampler2D downsampledDepth; + uniform sampler2D tDiffuse; + uniform sampler2D blueNoise; + uniform vec2 resolution; + uniform vec3 color; + uniform mat4 projectionMatrixInv; + uniform mat4 viewMatrixInv; + uniform float intensity; + uniform float renderMode; + uniform float near; + uniform float far; + uniform bool gammaCorrection; + uniform bool logDepth; + uniform bool ortho; + uniform bool screenSpaceRadius; + uniform bool fog; + uniform bool fogExp; + uniform bool colorMultiply; + uniform float fogDensity; + uniform float fogNear; + uniform float fogFar; + uniform float radius; + uniform float distanceFalloff; + uniform vec3 cameraPos; + varying vec2 vUv; + highp float linearize_depth(highp float d, highp float zNear,highp float zFar) + { + return (zFar * zNear) / (zFar - d * (zFar - zNear)); } - } - IFC4X32.IfcConstructionProductResourceType = IfcConstructionProductResourceType; - class IfcConstructionResource extends IfcResource { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.Usage = Usage; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.type = 2559216714; + highp float linearize_depth_ortho(highp float d, highp float nearZ, highp float farZ) { + return nearZ + (farZ - nearZ) * d; } - } - IFC4X32.IfcConstructionResource = IfcConstructionResource; - class IfcControl extends IfcObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.type = 3293443760; + highp float linearize_depth_log(highp float d, highp float nearZ,highp float farZ) { + float depth = pow(2.0, d * log2(farZ + 1.0)) - 1.0; + float a = farZ / (farZ - nearZ); + float b = farZ * nearZ / (nearZ - farZ); + float linDepth = a + b / depth; + return ortho ? linearize_depth_ortho( + linDepth, + nearZ, + farZ + ) :linearize_depth(linDepth, nearZ, farZ); } - } - IFC4X32.IfcControl = IfcControl; - class IfcCosineSpiral extends IfcSpiral { - constructor(expressID, Position, CosineTerm, ConstantTerm) { - super(expressID, Position); - this.Position = Position; - this.CosineTerm = CosineTerm; - this.ConstantTerm = ConstantTerm; - this.type = 2000195564; + vec3 getWorldPosLog(vec3 posS) { + vec2 uv = posS.xy; + float z = posS.z; + float nearZ =near; + float farZ = far; + float depth = pow(2.0, z * log2(farZ + 1.0)) - 1.0; + float a = farZ / (farZ - nearZ); + float b = farZ * nearZ / (nearZ - farZ); + float linDepth = a + b / depth; + vec4 clipVec = vec4(uv, linDepth, 1.0) * 2.0 - 1.0; + vec4 wpos = projectionMatrixInv * clipVec; + return wpos.xyz / wpos.w; + } + vec3 getWorldPos(float depth, vec2 coord) { + // if (logDepth) { + #ifdef LOGDEPTH + return getWorldPosLog(vec3(coord, depth)); + #endif + // } + float z = depth * 2.0 - 1.0; + vec4 clipSpacePosition = vec4(coord * 2.0 - 1.0, z, 1.0); + vec4 viewSpacePosition = projectionMatrixInv * clipSpacePosition; + // Perspective division + vec4 worldSpacePosition = viewSpacePosition; + worldSpacePosition.xyz /= worldSpacePosition.w; + return worldSpacePosition.xyz; } + + vec3 computeNormal(vec3 worldPos, vec2 vUv) { + ivec2 p = ivec2(vUv * resolution); + float c0 = texelFetch(sceneDepth, p, 0).x; + float l2 = texelFetch(sceneDepth, p - ivec2(2, 0), 0).x; + float l1 = texelFetch(sceneDepth, p - ivec2(1, 0), 0).x; + float r1 = texelFetch(sceneDepth, p + ivec2(1, 0), 0).x; + float r2 = texelFetch(sceneDepth, p + ivec2(2, 0), 0).x; + float b2 = texelFetch(sceneDepth, p - ivec2(0, 2), 0).x; + float b1 = texelFetch(sceneDepth, p - ivec2(0, 1), 0).x; + float t1 = texelFetch(sceneDepth, p + ivec2(0, 1), 0).x; + float t2 = texelFetch(sceneDepth, p + ivec2(0, 2), 0).x; + + float dl = abs((2.0 * l1 - l2) - c0); + float dr = abs((2.0 * r1 - r2) - c0); + float db = abs((2.0 * b1 - b2) - c0); + float dt = abs((2.0 * t1 - t2) - c0); + + vec3 ce = getWorldPos(c0, vUv).xyz; + + vec3 dpdx = (dl < dr) ? ce - getWorldPos(l1, (vUv - vec2(1.0 / resolution.x, 0.0))).xyz + : -ce + getWorldPos(r1, (vUv + vec2(1.0 / resolution.x, 0.0))).xyz; + vec3 dpdy = (db < dt) ? ce - getWorldPos(b1, (vUv - vec2(0.0, 1.0 / resolution.y))).xyz + : -ce + getWorldPos(t1, (vUv + vec2(0.0, 1.0 / resolution.y))).xyz; + + return normalize(cross(dpdx, dpdy)); } - IFC4X32.IfcCosineSpiral = IfcCosineSpiral; - class IfcCostItem extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, CostValues, CostQuantities) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.PredefinedType = PredefinedType; - this.CostValues = CostValues; - this.CostQuantities = CostQuantities; - this.type = 3895139033; + + #include + #include + void main() { + //vec4 texel = texture2D(tDiffuse, vUv);//vec3(0.0); + vec4 sceneTexel = texture2D(sceneDiffuse, vUv); + float depth = texture2D( + sceneDepth, + vUv + ).x; + #ifdef HALFRES + vec4 texel; + if (depth == 1.0) { + texel = vec4(0.0, 0.0, 0.0, 1.0); + } else { + vec3 worldPos = getWorldPos(depth, vUv); + vec3 normal = computeNormal(getWorldPos(depth, vUv), vUv); + // vec4 texel = texture2D(tDiffuse, vUv); + // Find closest depth; + float totalWeight = 0.0; + float radiusToUse = screenSpaceRadius ? distance( + worldPos, + getWorldPos(depth, vUv + + vec2(radius, 0.0) / resolution) + ) : radius; + float distanceFalloffToUse =screenSpaceRadius ? + radiusToUse * distanceFalloff + : distanceFalloff; + for(float x = -1.0; x <= 1.0; x++) { + for(float y = -1.0; y <= 1.0; y++) { + vec2 offset = vec2(x, y); + ivec2 p = ivec2( + (vUv * resolution * 0.5) + offset + ); + vec2 pUv = vec2(p) / (resolution * 0.5); + float sampleDepth = texelFetch(downsampledDepth,p, 0).x; + vec4 sampleInfo = texelFetch(tDiffuse, p, 0); + vec3 normalSample = sampleInfo.xyz * 2.0 - 1.0; + vec3 worldPosSample = getWorldPos(sampleDepth, pUv); + float tangentPlaneDist = abs(dot(worldPos - worldPosSample, normal)); + float rangeCheck = exp(-1.0 * tangentPlaneDist * (1.0 / distanceFalloffToUse)) * max(dot(normal, normalSample), 0.0); + float weight = rangeCheck; + totalWeight += weight; + texel += sampleInfo * weight; + } + } + if (totalWeight == 0.0) { + texel = texture2D(tDiffuse, vUv); + } else { + texel /= totalWeight; + } } - } - IFC4X32.IfcCostItem = IfcCostItem; - class IfcCostSchedule extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, SubmittedOn, UpdateDate) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.PredefinedType = PredefinedType; - this.Status = Status; - this.SubmittedOn = SubmittedOn; - this.UpdateDate = UpdateDate; - this.type = 1419761937; + #else + vec4 texel = texture2D(tDiffuse, vUv); + #endif + + #ifdef LOGDEPTH + texel.a = clamp(texel.a, 0.0, 1.0); + if (texel.a == 0.0) { + texel.a = 1.0; + } + #endif + + float finalAo = pow(texel.a, intensity); + float fogFactor; + float fogDepth = distance( + cameraPos, + getWorldPos(depth, vUv) + ); + if (fog) { + if (fogExp) { + fogFactor = 1.0 - exp( - fogDensity * fogDensity * fogDepth * fogDepth ); + } else { + fogFactor = smoothstep( fogNear, fogFar, fogDepth ); + } + } + finalAo = mix(finalAo, 1.0, fogFactor); + vec3 aoApplied = color * mix(vec3(1.0), sceneTexel.rgb, float(colorMultiply)); + if (renderMode == 0.0) { + gl_FragColor = vec4( mix(sceneTexel.rgb, aoApplied, 1.0 - finalAo), sceneTexel.a); + } else if (renderMode == 1.0) { + gl_FragColor = vec4( mix(vec3(1.0), aoApplied, 1.0 - finalAo), sceneTexel.a); + } else if (renderMode == 2.0) { + gl_FragColor = vec4( sceneTexel.rgb, sceneTexel.a); + } else if (renderMode == 3.0) { + if (vUv.x < 0.5) { + gl_FragColor = vec4( sceneTexel.rgb, sceneTexel.a); + } else if (abs(vUv.x - 0.5) < 1.0 / resolution.x) { + gl_FragColor = vec4(1.0); + } else { + gl_FragColor = vec4( mix(sceneTexel.rgb, aoApplied, 1.0 - finalAo), sceneTexel.a); + } + } else if (renderMode == 4.0) { + if (vUv.x < 0.5) { + gl_FragColor = vec4( sceneTexel.rgb, sceneTexel.a); + } else if (abs(vUv.x - 0.5) < 1.0 / resolution.x) { + gl_FragColor = vec4(1.0); + } else { + gl_FragColor = vec4( mix(vec3(1.0), aoApplied, 1.0 - finalAo), sceneTexel.a); + } + } + #include + if (gammaCorrection) { + gl_FragColor = LinearTosRGB(gl_FragColor); + } } - } - IFC4X32.IfcCostSchedule = IfcCostSchedule; - class IfcCourseType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 4189326743; + ` +}; + + + +const $e52378cd0f5a973d$export$57856b59f317262e = { + uniforms: { + "sceneDiffuse": { + value: null + }, + "sceneDepth": { + value: null + }, + "tDiffuse": { + value: null + }, + "projMat": { + value: new Matrix4() + }, + "viewMat": { + value: new Matrix4() + }, + "projectionMatrixInv": { + value: new Matrix4() + }, + "viewMatrixInv": { + value: new Matrix4() + }, + "cameraPos": { + value: new Vector3$1() + }, + "resolution": { + value: new Vector2$1() + }, + "time": { + value: 0.0 + }, + "r": { + value: 5.0 + }, + "blueNoise": { + value: null + }, + "radius": { + value: 12.0 + }, + "worldRadius": { + value: 5.0 + }, + "index": { + value: 0.0 + }, + "poissonDisk": { + value: [] + }, + "distanceFalloff": { + value: 1.0 + }, + "near": { + value: 0.1 + }, + "far": { + value: 1000.0 + }, + "logDepth": { + value: false + }, + "screenSpaceRadius": { + value: false + } + }, + depthWrite: false, + depthTest: false, + vertexShader: /* glsl */ ` + varying vec2 vUv; + void main() { + vUv = uv; + gl_Position = vec4(position, 1.0); + }`, + fragmentShader: /* glsl */ ` + uniform sampler2D sceneDiffuse; + uniform highp sampler2D sceneDepth; + uniform sampler2D tDiffuse; + uniform sampler2D blueNoise; + uniform mat4 projectionMatrixInv; + uniform mat4 viewMatrixInv; + uniform vec2 resolution; + uniform float r; + uniform float radius; + uniform float worldRadius; + uniform float index; + uniform float near; + uniform float far; + uniform float distanceFalloff; + uniform bool logDepth; + uniform bool screenSpaceRadius; + varying vec2 vUv; + + highp float linearize_depth(highp float d, highp float zNear,highp float zFar) + { + highp float z_n = 2.0 * d - 1.0; + return 2.0 * zNear * zFar / (zFar + zNear - z_n * (zFar - zNear)); } - } - IFC4X32.IfcCourseType = IfcCourseType; - class IfcCoveringType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1916426348; + highp float linearize_depth_log(highp float d, highp float nearZ,highp float farZ) { + float depth = pow(2.0, d * log2(farZ + 1.0)) - 1.0; + float a = farZ / (farZ - nearZ); + float b = farZ * nearZ / (nearZ - farZ); + float linDepth = a + b / depth; + return linearize_depth(linDepth, nearZ, farZ); + } + highp float linearize_depth_ortho(highp float d, highp float nearZ, highp float farZ) { + return nearZ + (farZ - nearZ) * d; + } + vec3 getWorldPosLog(vec3 posS) { + vec2 uv = posS.xy; + float z = posS.z; + float nearZ =near; + float farZ = far; + float depth = pow(2.0, z * log2(farZ + 1.0)) - 1.0; + float a = farZ / (farZ - nearZ); + float b = farZ * nearZ / (nearZ - farZ); + float linDepth = a + b / depth; + vec4 clipVec = vec4(uv, linDepth, 1.0) * 2.0 - 1.0; + vec4 wpos = projectionMatrixInv * clipVec; + return wpos.xyz / wpos.w; + } + vec3 getWorldPos(float depth, vec2 coord) { + #ifdef LOGDEPTH + return getWorldPosLog(vec3(coord, depth)); + #endif + + float z = depth * 2.0 - 1.0; + vec4 clipSpacePosition = vec4(coord * 2.0 - 1.0, z, 1.0); + vec4 viewSpacePosition = projectionMatrixInv * clipSpacePosition; + // Perspective division + vec4 worldSpacePosition = viewSpacePosition; + worldSpacePosition.xyz /= worldSpacePosition.w; + return worldSpacePosition.xyz; } - } - IFC4X32.IfcCoveringType = IfcCoveringType; - class IfcCrewResource extends IfcConstructionResource { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.Usage = Usage; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.PredefinedType = PredefinedType; - this.type = 3295246426; + #include + #define NUM_SAMPLES 16 + uniform vec2 poissonDisk[NUM_SAMPLES]; + void main() { + const float pi = 3.14159; + vec2 texelSize = vec2(1.0 / resolution.x, 1.0 / resolution.y); + vec2 uv = vUv; + vec4 data = texture2D(tDiffuse, vUv); + float occlusion = data.a; + float baseOcc = data.a; + vec3 normal = data.rgb * 2.0 - 1.0; + float count = 1.0; + float d = texture2D(sceneDepth, vUv).x; + if (d == 1.0) { + gl_FragColor = data; + return; + } + vec3 worldPos = getWorldPos(d, vUv); + float size = radius; + float angle; + if (index == 0.0) { + angle = texture2D(blueNoise, gl_FragCoord.xy / 128.0).x * PI2; + } else if (index == 1.0) { + angle = texture2D(blueNoise, gl_FragCoord.xy / 128.0).y * PI2; + } else if (index == 2.0) { + angle = texture2D(blueNoise, gl_FragCoord.xy / 128.0).z * PI2; + } else { + angle = texture2D(blueNoise, gl_FragCoord.xy / 128.0).w * PI2; + } + + mat2 rotationMatrix = mat2(cos(angle), -sin(angle), sin(angle), cos(angle)); + float radiusToUse = screenSpaceRadius ? distance( + worldPos, + getWorldPos(d, vUv + + vec2(worldRadius, 0.0) / resolution) + ) : worldRadius; + float distanceFalloffToUse =screenSpaceRadius ? + radiusToUse * distanceFalloff + : distanceFalloff; + + + for(int i = 0; i < NUM_SAMPLES; i++) { + vec2 offset = (rotationMatrix * poissonDisk[i]) * texelSize * size; + vec4 dataSample = texture2D(tDiffuse, uv + offset); + float occSample = dataSample.a; + vec3 normalSample = dataSample.rgb * 2.0 - 1.0; + float dSample = texture2D(sceneDepth, uv + offset).x; + vec3 worldPosSample = getWorldPos(dSample, uv + offset); + float tangentPlaneDist = abs(dot(worldPos - worldPosSample, normal)); + float rangeCheck = dSample == 1.0 ? 0.0 :exp(-1.0 * tangentPlaneDist * (1.0 / distanceFalloffToUse)) * max(dot(normal, normalSample), 0.0) * (1.0 - abs(occSample - baseOcc)); + occlusion += occSample * rangeCheck; + count += rangeCheck; + } + if (count > 0.0) { + occlusion /= count; + } + #ifdef LOGDEPTH + occlusion = clamp(occlusion, 0.0, 1.0); + if (occlusion == 0.0) { + occlusion = 1.0; + } + #endif + gl_FragColor = vec4(0.5 + 0.5 * normal, occlusion); } - } - IFC4X32.IfcCrewResource = IfcCrewResource; - class IfcCurtainWallType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1457835157; + ` +}; + + + +const $26aca173e0984d99$export$1efdf491687cd442 = { + uniforms: { + "sceneDepth": { + value: null + }, + "resolution": { + value: new Vector2$1() + }, + "near": { + value: 0.1 + }, + "far": { + value: 1000.0 + }, + "viewMatrixInv": { + value: new Matrix4() + }, + "projectionMatrixInv": { + value: new Matrix4() + }, + "logDepth": { + value: false + } + }, + depthWrite: false, + depthTest: false, + vertexShader: /* glsl */ ` + varying vec2 vUv; + void main() { + vUv = uv; + gl_Position = vec4(position, 1); + }`, + fragmentShader: /* glsl */ ` + uniform highp sampler2D sceneDepth; + uniform vec2 resolution; + uniform float near; + uniform float far; + uniform bool logDepth; + uniform mat4 viewMatrixInv; + uniform mat4 projectionMatrixInv; + varying vec2 vUv; + layout(location = 1) out vec4 gNormal; + vec3 getWorldPosLog(vec3 posS) { + vec2 uv = posS.xy; + float z = posS.z; + float nearZ =near; + float farZ = far; + float depth = pow(2.0, z * log2(farZ + 1.0)) - 1.0; + float a = farZ / (farZ - nearZ); + float b = farZ * nearZ / (nearZ - farZ); + float linDepth = a + b / depth; + vec4 clipVec = vec4(uv, linDepth, 1.0) * 2.0 - 1.0; + vec4 wpos = projectionMatrixInv * clipVec; + return wpos.xyz / wpos.w; + } + vec3 getWorldPos(float depth, vec2 coord) { + if (logDepth) { + return getWorldPosLog(vec3(coord, depth)); + } + float z = depth * 2.0 - 1.0; + vec4 clipSpacePosition = vec4(coord * 2.0 - 1.0, z, 1.0); + vec4 viewSpacePosition = projectionMatrixInv * clipSpacePosition; + // Perspective division + vec4 worldSpacePosition = viewSpacePosition; + worldSpacePosition.xyz /= worldSpacePosition.w; + return worldSpacePosition.xyz; } + + vec3 computeNormal(vec3 worldPos, vec2 vUv) { + ivec2 p = ivec2(vUv * resolution); + float c0 = texelFetch(sceneDepth, p, 0).x; + float l2 = texelFetch(sceneDepth, p - ivec2(2, 0), 0).x; + float l1 = texelFetch(sceneDepth, p - ivec2(1, 0), 0).x; + float r1 = texelFetch(sceneDepth, p + ivec2(1, 0), 0).x; + float r2 = texelFetch(sceneDepth, p + ivec2(2, 0), 0).x; + float b2 = texelFetch(sceneDepth, p - ivec2(0, 2), 0).x; + float b1 = texelFetch(sceneDepth, p - ivec2(0, 1), 0).x; + float t1 = texelFetch(sceneDepth, p + ivec2(0, 1), 0).x; + float t2 = texelFetch(sceneDepth, p + ivec2(0, 2), 0).x; + + float dl = abs((2.0 * l1 - l2) - c0); + float dr = abs((2.0 * r1 - r2) - c0); + float db = abs((2.0 * b1 - b2) - c0); + float dt = abs((2.0 * t1 - t2) - c0); + + vec3 ce = getWorldPos(c0, vUv).xyz; + + vec3 dpdx = (dl < dr) ? ce - getWorldPos(l1, (vUv - vec2(1.0 / resolution.x, 0.0))).xyz + : -ce + getWorldPos(r1, (vUv + vec2(1.0 / resolution.x, 0.0))).xyz; + vec3 dpdy = (db < dt) ? ce - getWorldPos(b1, (vUv - vec2(0.0, 1.0 / resolution.y))).xyz + : -ce + getWorldPos(t1, (vUv + vec2(0.0, 1.0 / resolution.y))).xyz; + + return normalize(cross(dpdx, dpdy)); } - IFC4X32.IfcCurtainWallType = IfcCurtainWallType; - class IfcCylindricalSurface extends IfcElementarySurface { - constructor(expressID, Position, Radius) { - super(expressID, Position); - this.Position = Position; - this.Radius = Radius; - this.type = 1213902940; + void main() { + vec2 uv = vUv - vec2(0.5) / resolution; + vec2 pixelSize = vec2(1.0) / resolution; + vec2[] uvSamples = vec2[4]( + uv, + uv + vec2(pixelSize.x, 0.0), + uv + vec2(0.0, pixelSize.y), + uv + pixelSize + ); + float depth00 = texture2D(sceneDepth, uvSamples[0]).r; + float depth10 = texture2D(sceneDepth, uvSamples[1]).r; + float depth01 = texture2D(sceneDepth, uvSamples[2]).r; + float depth11 = texture2D(sceneDepth, uvSamples[3]).r; + float minDepth = min(min(depth00, depth10), min(depth01, depth11)); + float maxDepth = max(max(depth00, depth10), max(depth01, depth11)); + float targetDepth = minDepth; + // Checkerboard pattern to avoid artifacts + if (mod(gl_FragCoord.x + gl_FragCoord.y, 2.0) > 0.5) { + targetDepth = maxDepth; + } + int chosenIndex = 0; + float[] samples = float[4](depth00, depth10, depth01, depth11); + for(int i = 0; i < 4; ++i) { + if (samples[i] == targetDepth) { + chosenIndex = i; + break; + } + } + gl_FragColor = vec4(samples[chosenIndex], 0.0, 0.0, 1.0); + gNormal = vec4(computeNormal( + getWorldPos(samples[chosenIndex], uvSamples[chosenIndex]), uvSamples[chosenIndex] + ), 0.0); + /* float[] samples = float[4](depth00, depth10, depth01, depth11); + float c = 0.25 * (depth00 + depth10 + depth01 + depth11); + float[] distances = float[4](depth00, depth10, depth01, depth11); + float maxDistance = max(max(distances[0], distances[1]), max(distances[2], distances[3])); + + int remaining[3]; + int rejected[3]; + int i, j, k; + + for(i = 0, j = 0, k = 0; i < 4; ++i) { + if (distances[i] < maxDistance) { + remaining[j++] = i; + } else { + rejected[k++] = i; + } + } + for(;j < 3;++j) { + remaining[j] = rejected[--k]; + } + vec3 s = vec3( + samples[remaining[0]], + samples[remaining[1]], + samples[remaining[2]] + ); + c = (s.x + s.y + s.z) / 3.0; + + distances[0] = abs(c - s.x); + distances[1] = abs(c - s.y); + distances[2] = abs(c - s.z); + + float minDistance = min(min(distances[0], distances[1]), distances[2]); + + for(i = 0; i < 3; ++i) { + if (distances[i] == minDistance) { + break; + } + }*/ + /* gl_FragColor = vec4(samples[remaining[i]], 0.0, 0.0, 0.0); + gNormal = vec4(computeNormal( + getWorldPos(samples[remaining[i]], uvSamples[remaining[i]]), uvSamples[remaining[i]] + ), 0.0);*/ + }` +}; + + + + + + + + + +var $06269ad78f3c5fdf$export$2e2bcd8739ae039 = `5L7pP4UXrOIr/VZ1G3f6p89FIWU7lqc7J3DPxKjJUXODJoHQzf/aNVM+ABlvhXeBGN7iC0WkmTjEaAqOItBfBdaK5KSGV1ET5SOKl3x9JOX5w2sAl6+6KjDhVUHgbqq7DZ5EeYzbdSNxtrQLW/KkPJoOTG4u5CBUZkCKHniY9l7DUgjuz708zG1HIC8qfohi1vPjPH9Lq47ksjRrjwXD4MlVCjdAqYFGodQ8tRmHkOfq4wVRIAHvoavPHvN1lpk3X4Y1yzAPGe8S9KBs3crc4GwlU1dEOXiWol/mgQqxkNqB1xd04+0Bmpwj0GcCc4NUi+c731FUxjvaexCkCJ0qhrJJ++htWqetNC4NewClu8aFRSwrqiJEGe+qtTg4CYCHaF1wJI0sy/ZBQAI0qAMyBvVjWZlv2pdkCaro9eWDLK5I4mbb8E4d7hZr9dDJiTJm6Bmb5S+2F7yal/JPdeLUfwq7jmVLaQfhv4tWMJAt7V4sG9LuAv2oPJgSj1nnlBvPibfHM2TrlWHwGCLGxW/5Jm2TotaDL+pHDM5pn1r0UuTZ24N8S5k68bLHW9tfD+2k4zGev23ExJb4YTRKWrj82N5LjJ26lj1BkGZ0CsXLGGELoPaYQomjTqPxYqhfwOwDliNGVqux9ffuybqOKgsbB51B1GbZfG8vHDBE2JQGib1mnCmWOWAMJcHN0cKeDHYTflbDTVXajtr68mwfRje6WueQ/6yWqmZMLWNH7P27zGFhMFqaqfg11Q88g/9UA/FROe9yfq0yOO0pnNAxvepFy2BpEbcgG+mCyjCC01JWlOZlIPdf1TtlyOt7L94ToYGCukoFt4OqwOrofamjECpSgKLLmrRM+sNRAw12eaqk8KtdFk7pn2IcDQiPXCh16t1a+psi+w9towHTKPyQM0StKr61b2BnN1HU+aezFNBLfHTiXwhGTbdxLLmrsAGIVSiNAeCGE8GlB0iOv2v78kP0CTmAPUEqnHYRSDlP+L6m/rYjEK6Q85GRDJi2W20/7NLPpSOaMR++IFvpkcwRuc59j8hh9tYlc1xjdt2jmp9KJczB7U9P43inuxLOv11P5/HYH5d6gLB0CsbGC8APjh+EcCP0zFWqlaACZweLhVfv3yiyd8R3bdVg8sRKsxPvhDaPpiFp9+MN+0Ua0bsPr+lhxfZhMhlevkLbR4ZvcSRP6ApQLy3+eMh9ehCB3z5DVAaN3P6J8pi5Qa88ZQsOuCTWyH6q8yMfBw8y8nm6jaOxJhPH6Hf0I4jmALUBsWKH4gWBnyijHh7z3/1HhQzFLRDRrIQwUtu11yk7U0gDw/FatOIZOJaBx3UqbUxSZ6dboFPm5pAyyXC2wYdSWlpZx/D2C6hDO2sJM4HT9IKWWmDkZIO2si/6BKHruXIEDpfAtz3xDlIdKnnlqnkfCyy6vNOPyuoWsSWBeiN0mcfIrnOtp2j7bxjOkr25skfS/lwOC692cEp7TKSlymbsyzoWg/0AN66SvQYo6BqpNwPpTaUu25zMWlwVUdfu1EEdc0O06TI0JmHk4f6GZQbfOs//OdgtGPO6uLoadJycR8Z80rkd88QoNmimZd8vcpQKScCFkxH1RMTkPlN3K7CL/NSMOiXEvxrn9VyUPFee63uRflgaPMSsafvqMgzTt3T1RaHNLLFatQbD0Vha4YXZ/6Ake7onM65nC9cyLkteYkDfHoJtef7wCrWXTK0+vH38VUBcFJP0+uUXpkiK0gDXNA39HL/qdVcaOA16kd2gzq8aHpNSaKtgMLJC6fdLLS/I/4lUWV2+djY9Rc3QuJOUrlHFQERtXN4xJaAHZERCUQZ9ND2pEtZg8dsnilcnqmqYn3c1sRyK0ziKpHNytEyi2gmzxEFchvT1uBWxZUikkAlWuyqvvhteSG9kFhTLNM97s3X1iS2UbE6cvApgbmeJ/KqtP0NNT3bZiG9TURInCZtVsNZzYus6On0wcdMlVfqo8XLhT5ojaOk4DtCyeoQkBt1mf5luFNaLFjI/1cnPefyCQwcq5ia/4pN4NB+xE/3SEPsliJypS964SI6o5fDVa0IERR8DoeQ+1iyRLU1qGYexB61ph4pkG1rf3c2YD6By1pFCmww9B0r2VjFeaubkIdgWx4RKLQRPLENdGo8ezI5mkNtdCws19aP1uHhenD+HKa8GDeLulb2fiMRhU2xJzzz9e4yOMPvEnGEfbCiQ17nUDpcFDWthr68mhZ4WiHUkRpaVWJNExuULcGkuyVLsQj59pf6OHFR7tofhy9FMrWPCEvX1d5sCVJt8yBFiB6NoOuwMy4wlso9I2G4E5/5B2c6vIZUUY9fFujT3hpkdTuVhbhBwLCtnlIjBpN4cq+waZ0wXSrmebcl+dcrb7sPh9jKxFINkScDTBgjSUfLkC3huJJs/M4M8AOFxbbSIVpBUarYFmLpGsv+V6TJnWNTwI41tubwo7QSI1VOdRKT/Pp8U3oK2ciDbeuWnAGAANvQjGfcewdAdo6H83XzqlK/4yudtFHJSv9Y+qJskwnVToH1I0+tJ3vsLBXtlvMzLIxUj/8LcqZnrNHfVRgabFNXW0qpUvDgxnP3f54KooR3NI+2Q/VHAYFigMkQE5dLH6C6fGs/TKeE6E2jOhZQcP9/rrJjJKcLYdn5cw6XLCUe9F7quk5Yhac+nYL5HOXvp6Q/5qbiQHkuebanX77YSNx34YaWYpcEHuY1u/lEVTCQ7taPaw3oNcn/qJhMzGPZUs3XAq48wj/hCIO2d5aFdfXnS0yg57/jxzDJBwkdOgeVnyyh19Iz1UqiysT4J1eeKwUuWEYln23ydtP7g3R1BnvnxqFPAnOMgOIop2dkXPfUh/9ZKV3ZQbZNactPD4ql5Qg9CxSBnIwzlj/tseQKWRstwNbf17neGwDFFWdm/8f+nDWt/WlKV3MUiAm3ci6xXMDSL5ubPXBg/gKEE7TsZVGUcrIbdXILcMngvGs7unvlPJh6oadeBDqiAviIZ/iyiUMdQZAuf/YBAY0VP1hcgInuWoKbx31AOjyTN2OOHrlthB3ny9JKHOAc8BMvqopikPldcwIQoFxTccKKIeI815GcwaKDLsMbCsxegrzXl8E0bpic/xffU9y1DCgeKZoF2PIY77RIn6kSRdBiGd8NtNwT74dyeFBMkYraPkudN26x9NPuBt4iCOAnBFaNSKVgKiZQruw22kM1fgBKG7cPYAxdHJ8M4V/jzBn2jEJg+jk/jjV4oMmMNOpKB5oVpVh7tK529Z+5vKZ0NSY2A4YdcT0x4BdkoNEDrpsTmekSTjvx9ZBiTHrm9M/n/hGmgpjz4WEjttRfAEy5DYH5vCK/9GuVPa4hoApFaNlrFD/n2PpKOw24iKujKhVIz41p1E0HwsCd/c17OA0H0RjZi1V/rjJLexUzpmXTMIMuzaOBbU4dxvQMgyvxJvR6DyF3BaHkaqT4P3FRYlm+zh8EEGgmkNqD1WRUubDW62VqLoH8UEelIpL7C8CguWWGGCAIDPma9bnh+7IJSt0Cn6ACER2mYk8dLsrN70RUVLiE0ig+08yPY9IOtuqHf/KYsT84BwhMcVq7t8q1WVjpJGNyXdtIPIjhAzabtrX03Itn29QO3TCixE9WpkHIOdAoGvqCrw1D3x9g9Px8u0yZZuulZuGy0veSY34KDSlhsO1zx2ZMrpDBzCHPB4niwApk6NevIvmBxU3+4yaewDvgEQDJ6Of5iRxjAIpp9UO8EzNY4blj4qh8SCSZTqbe/lShE6tNU9Y5IoWHeJxPcHF9KwYQD7lFcIpcscHrcfkHJfL2lL1zczKywEF7BwkjXEirgBcvNWayatqdTVT5oLbzTmED3EOYBSXFyb2VIYk3t0dOZWJdG1nP+W7Qfyeb8MSIyUGKEA57ptPxrPHKYGZPHsuBqQuVSrn0i8KJX+rlzAqo8AawchsJ26FckxTf5+joTcw+2y8c8bushpRYEbgrdr64ltEYPV2AbVgKXV3XACoD1gbs01CExbJALkuItjfYN3+6I8kbiTYmdzBLaNC+xu9z/eXcRQV1Lo8cJoSsKyWJPuTncu5vcmfMUAWmuwhjymK1rhYR8pQMXNQg9X+5ha5fEnap+LhUL1d5SURZz9rGdOWLhrMcMKSaU3LhOQ/6a6qSCwgzQxCW2gFs53fpvfWxhH+xDHdKRV6w29nQ6rNqd9by+zm1OpzYyJwvFyOkrVXQUwt4HaapnweCa7Tj2Mp/tT4YcY3Q/tk1czgkzlV5mpDrdp1spOYB8ionAwxujjdhj5y9qEHu0uc36PAKAYsKLaEoiwPnob0pdluPWdv4sNSlG8GWViI+x/Z4DkW/kSs2iE3ADFjg4TCvgCbX3v0Hz0KZkerrpzEIukAusidDs2g/w0zgmLnZXvVr5kkpwQTLZ0L6uaTHl0LVikIuNIVPmL3fOQJqIdfzymUN0zucIrDintBn6ICl/inj5zteISv5hEMGMqtHc2ghcFJvmH3ZhIZi34vqqTFCb9pltTYz582Y3dwYaHb9khdfve1YryzEwEKbI8qm62qv+NyllC+WxLLAJjz0ZaEF2aTn35qeFmkbP6LDYcbwqWxA0WKsteB7vy8bRHE4r8LhubWDc0pbe90XckSDDAkRej0TQlmWsWwaz18Tx2phykVvwuIRzf4kt9srT8N7gsMjMs0NLAAldabFf2tiMoaaxHcZSX51WPc1BrwApMxih227qTZkcgtkdK1h314XvZKUKh/XysWYnk1ST4kiBI1B9OlfTjB3WHzTAReFLofsGtikwpIXzQBc/gOjz2Thlj36WN0sxyf4RmAFtrYt64fwm+ThjbhlmUTZzebLl4yAkAqzJSfjPBZS2H/IvkkTUdVh0qdB6EuiHEjEil5lk9BTPzxmoW4Jx543hiyy4ASdYA2DNoprsR9iwGFwFG3F2vIROy4L5CZrl230+k733JwboSNBKngsaFPtqo+q3mFFSjC1k0kIAFmKihaYSwaSF7konmYHZWmchuaq15TpneA2ADSRvA07I7US0lTOOfKrgxhzRl0uJihcEZhhYWxObjvNTJ/5sR4Aa5wOQhGClGLb746cJhQ2E6Jie1hbGgWxUH7YSKETptrTeR/xfcMNk2WM12S0XElC9klR8O7jLYekEOZdscP0ypSdoCVZAoK+2ju2PHE869Q9rxCs9DVQco4BriiPbCjN/8tBjsah4IuboR5QbmbyDpcdXVxGMxvWKIjocBuKbjb+B4HvkunbG0wX0IFCjQKoNMFIKcJSJXtkP3EO+J16uh4img0LQlBAOYwBLupu5r1NALMo0g3xkd9b4f7KoCBWHeyk24FmYUCy/PGLv0xErOTyORp8TJ5nnc2k1dOVBTJok7iHye9dwxwRVP3c7eAS8pMmJYHGpzIHz6ii2WJm8HMTPAZdA4q+ugj3PNCL/N45kyglqvQV4f/+ryDDG5RPy5HVoV9FVuJcq2dxF9Y0heVoipV6q1LyfAeuMzbsUV+rsSBmCSV+1CdKlxy0T0Y6Om0X6701URm2Ml6DIQgJ/3KO6kwcMYRrmKsY7TfxWhSXZll+1PfyRXe9HS0t1IKTQMZL7ZqQ8D/o+en57Y9XAQ9C+kZYykNr0xOMxEwu2+Cppm69mQyTm3H7QX6kHvXF201r+KVAf354qypJC5OHSeBU47bM1bTaVmdVEWQ+9CcvvHdu8Ue5UndHM+EeukmR82voQpetZ7WJjyXs+tPS60nk09gymuORoHNtbm0VuvyigiEvOsyHiRBW7V6FyTCppLPEHvesan91SlEh1/QEunq+qgREFXByDwNKcAH5s8/RFg8hP4wcPmFqX0xXGSKY087bqRLsBZe52jThx0XLkhKQUWPvI18WQQS3g2Ra1pzQ1oNFKdfJJjyaH5tJH6w0/upJobwB8KZ5cIs9LnVGxfBaHXBfvLkNpab7dpU6TdcbBIc+A4bqXE/Xt8/xsGQOdoXra4Us5nDAM6v2BNBQaGMmgMfQQV+ikTteSHvyl8wUxULiYRIEKaiDxpBJnyf9OoqQdZVJ8ahqOvuwqq5mnDUAUzUr/Lvs1wLu2F+r4eZMfJPL4gV5mKLkITmozRnTvA7VABaxZmFRtkhvU5iH9RQ1z26ku7aABokvptx7RKZBVL6dveLKOzg0NC7HAxcg5kE1wuyJiEQLOpO0ma3AtWD2Q2Wmn2oPZeDYAwVyEpxuwDy7ivmdUDSL95ol3h2JByTMovOCgxZ1q4E5nwwa7+4WtDAse6bDdr27XgAi5Px3IWbyZ/vRiECKwOMeJSuIl8A4Ds0emI3SgKVVWVO5uyiEUET+ucEq0casA+DQyhzRc8j+Plo0pxKynB/t0uXod1FVV4fX1sC4kDfwFaUDGQ4p9HYgaMqIWX3OF/S8+vcR0JS0bDapWKJwAIIQiRUzvh5YwtzkjccbbrT9Ky/qt5X7MAGA0lzh43mDF9EB6lCGuO/aFCMhdOqNryvd73KdJNy3mxtT8AqgmG4xq7eE1jKu6rV0g8UGyMatzyIMjiOCf4lIJFzAfwDbIfC72TJ/TK+cGsLR8blpjlEILjD8Mxr7IffhbFhgo12CzXRQ2O8JqBJ70+t12385tSmFC8Or+U8svOaoGoojT1/EmjRMT7x2iTUZ7Ny02VGeMZTtGy029tGN1/9k7x3mFu63lYnaWjfJT1m1zpWO3HSXpGkFqVd/m3kDMv4X9rmLOpwEeu8r6TI6C2zUG+MT6v90OU3y5hKqLhpyFLGtkZhDmUg/W1JGSmA8N1TapR4Kny+P6+DuMadZ9+xBbv06nfOjMwkoTsjG0zFmNbvlxEjw+Pl5QYK+V8Qyb+nknZ0Nb/Ofi9+V0eoNtTrtD1/0wzUGGG5u2D/J1ouO/PjXFJVx6LurVnPOyFVbZx7s3ZSjSq+7YN3wzTbFbUvP8GBh7cKieJt56SIowQ2I577+UEXrxUKMFO+XaLLCALuiJWB2vUdpsT+kQ+adoeTfwOulXhd/KZ7ygjj6PhvGT1xzfT7hTwd6dzSB4xV70CesHC0dsg2VyujlMGBKjg5snbrHHX/LNj3SsoLGSX+bZNTDDCNTXh+dCVPlj4K8+hJ/kVddrbtZw26Hx5qYiv3oNNg5blHRSPtmojhZmBQAz8sLC9nAuWNSz1dIofFtlryEKklbdkhBCcx5dhj7pinXDNlCeatCeTCEjYCpZ3HRf5QzUcRR1Tdb3gwtYtpPdgMxmWfJGoZSu1EsCJbIhS16Ed97+8br4Ar1mB1GcnZVx/HPtJl4CgbHXrrDPwlE4od8deRQYLt9IlsvCqgesMmLAVxB+igH7WGTcY/e3lLHJ4rkBgh2p1QpUBRb/cSQsJCbosFDkalbJigimldVK7TIHKSq2w8mezku9hgw8fXJxGdXoL1ggma52kXzjP78l0d0zMwtTVlt0FqnRyGLPGEjmICzgSp7XPFlUr7AeMclQ4opqwBFInziM5F8oJJ8qeuckGOnAcZZOLl1+ZhGF17pfIuujipwFJL7ChIIB2vlo0IQZGTJPNa2YjNcGUw+a/gWYLkCp+bOGIYhWr08UIE709ZEHlUoEbumzgpJv1D0+hWYNEpj+laoZIK5weO2DFwLL6UBYNrXTm9YvvxeN9U9oKsB3zKBwzFFwDgid5ESMhy68xBnVa55sCZd+l5AnzT8etYjIwF/BGwEx1jjzFv32bk6EeJulESARh8RZ48o7rKw67UZpudPa15SDnL8AL8xMV2SC0D1P53p190zhCFkMmEiir2olwxcJppl/kLm6/0QSUQLNaxi1AC3Pg1CTosX2YQr73PjEIxIlg4mJ62vP7ZyoHE55B0SX9YrrrCPtNsrJEwtn6KOSt7nLT3n3DLJTPbLulcqQ1kETP6Huts29oP+JLEqRGWgnrqMD+mhCl1XCZifjgQ39AeudE8pyu2DqnYU3PyPbJhStq1HbP+VxgseWL+hQ+4w1okADlA9WqoaRuoS7IY77Cm40cJiE6FLomUMltT+xO3Upcv5dzSh9F57hodSBnMHukcH1kd9tqlpprBQ/Ij9E+wMQXrZG5PlzwYJ6jmRdnQtRj64wC/7vsDaaMFteBOUDR4ebRrNZJHhwlNEK9Bz3k7jqOV5KJpL74p2sQnd7vLE374Jz+G7H3RUbX17SobYOe9wKkL/Ja/zeiKExOBmPo0X29bURQMxJkN4ddbrHnOkn6+M1zTZHo0efsB23WSSsByfmye2ZuTEZ12J3Y8ffT6Fcv8XVfA/k+p+xJGreKHJRVUIBqfEIlRt987/QXkssXuvLkECSpVEBs+gE1meB6Xn1RWISG6sV3+KOVjiE9wGdRHS8rmTERRnk0mDNU/+kOQYN/6jdeq0IHeh9c6xlSNICo9OcX1MmAiEuvGay43xCZgxHeZqD7etZMigoJI5V2q7xDcXcPort7AEjLwWlEf4ouzy2iPa3lxpcJWdIcHjhLZf1zg/Kv3/yN1voOmCLrI1Fe0MuFbB0TFSUt+t4Wqe2Mj1o2KS0TFQPGRlFm26IvVP9OXKIQkjfueRtMPoqLfVgDhplKvWWJA673+52FgEEgm+HwEgzOjaTuBz639XtCTwaQL/DrCeRdXun0VU3HDmNmTkc6YrNR6tTVWnbqHwykSBswchFLnvouR0KRhDhZiTYYYNWdvXzY+61Jz5IBcTJavGXr9BcHdk/3tqaLbwCbfpwjxCFSUs1xfFcRzRfMAl+QYuCpsYGz9H01poc1LyzhXwmODmUSg/xFq/RosgYikz4Om/ni9QCcr28ZPISaKrY7O+CspM/s+sHtnA9o9WgFWhcBX2LDN2/AL5uB6UxL/RaBp7EI+JHGz6MeLfvSNJnBgI9THFdUwmg1AXb9pvd7ccLqRdmcHLRT1I2VuEAghBduBm7pHNrZIjb2UVrijpZPlGL68hr+SDlC31mdis0BjP4aZFEOcw+uB17y5u7WOnho60Vcy7gRr7BZ9z5zY1uIwo+tW1YKpuQpdR0Vi7AxKmaIa4jXTjUh7MRlNM0W/Ut/CSD7atFd4soMsX7QbcrUZZaWuN0KOVCL9E09UcJlX+esWK56mre/s6UO9ks0owQ+foaVopkuKG+HZYbE1L1e0VwY2J53aCpwC77HqtpyNtoIlBVzOPtFvzBpDV9TjiP3CcTTGqLKh+m7urHvtHSB/+cGuRk4SsTma9sPCVJ19UPvaAv5WB8u57lNeUewwKpXmmKm5XZV91+FqCCT6nVrrrOgXfYmGFlVjqsSn3/yufkGIdtmdD0yVBcYFR3hDx43e3E4iuiEtP3Me9gcsBqveQdKojKR//qD2nEDY0IktMgFvH+SqVWi9mAorym92NEGbY8MeDjp553MiTXCRSASPt+Ga5q7pB9vwFQCTpaoevx0yEfrq9rMs3eU6wclBMJ9Ve8m6QuLYZ58J41YG3jW/khW92h6M/vbFIUPuopZ6VVtpciesU74Ef7ic8iSymDohGeUn4ubT0vRsXmbsjaJaYhL8f+8I5EiD5l680MJbxX/4GYrOg4iPQqpKp0qddSu/HKtznHeVyxgTwhfEORMCwnaqetVSzvidaWN9P+fXtGXfEP9cTdwx2gKVfDdICq7hecgRhIs0qlCt6+5pGlCc6kWoplHa/KjP+FJdXBU/IDoKMxRjFhSYkggIkhvRKiN/b2ud8URPF+lB87AGAwyMjr/Wju2Uj5IrppXZWjI3d14BdKE2fhALyQPmHqqA+AXd2LwvRHcBq4mhOQ4oNRWH7wpzc6Pggfcbv9kqhLxrJKEaJqA6Rxi+TDNOJstd5DoRVCDjmVspCVyHJsFEWPg9+NA8l1e4X2PDvOd5MPZAGw6LRhWqeZoSQcPf9/dGJYAyzCmttlRnx0BfrKQ/G9i5DVJft9fuJwMi3OD/0Dv1bRoxcXAyZ0wMJ6rwk9RjRTF4ZK8JviCCNuVt/BqQYiphOzWCpnbwOZt6qXuiAabQWrS4mNXQ7cEErXR/yJcbdFp5nWE1bPBjD0fmG3ovMxmOq5blpcOs0DtNQpci1t+9DKERWAO53IVV/S4yhMklvIp0j0FIQgwjdUptqmoMYGVWSI5YkTKLHZdXRDv9zs+HdFZt1QVcdlGOgATro3fg6ticCrDQKUJC7bYX50wdvetilEwVenHhlr85HMLRLTD6nDXWId4ORLwwe5IXiOhpuZTVTv+xdkTxJofqeCRM/jcZqQlU0gFVTlYlfwMi6HKR2YG4fQ8TOtgR+yV+BMZb6L5OwDc/28/xdfD7GXFaVA2ZSObiIxBwT2Zev637EuvpM6rxcogdM4FJFa0ZhF7nrqtNsqWg5M7hZMORpjd4szf/wS+Ahs1shY54Ct5J1dOBO4sdEtSnRc0P9PhgyOCt6aQW98R22DpAcNTDe72AHK40vutKTPfpokghRPuGvz0dulBPKfC3O4KVDCyWrJGO7Ikdu06A0keKlVfi0tGcpO0NhzXEh75NHyMysAMV19fq7//sPC0For1k2uFEvq8lwrMAfmP7afR69U2RqaILHe7glpc8HmVf87Qb2ohsw+Di9U+ePdHLecS66MhB/0OwdcXR5WBcWTZLGq/kiAaT+bzkjR8GIpWdv6pfIgQ+Q0xdiKvo+gNB7/Nf9knNJGxnh7LeZEFtMn517tNc74PPS0M4K3I6HHZqNPA+VZcBc/g5a2ARyqKrJ4Z3krsuA+VOJJz2KJpBMgCCWFln3u7k6/q3DETAubKG/pt3ObaNT0NI0Qug90L2ip5dHnZJUjPTvK5E96aX/4mRU2u8n8kh6MKbY7ANBro3huF06U+JvfyELQP25oIaj+n0ITQ4KT9rXZD4EtBIOj95fYNldDN3io/VMIvWNj9P/b95WEMq8UAVfG2XG0N6fSYdnBEC7sUEbatbDICH9qA8TTuW9kEt9DlFOZFP7bdfYLa/khSY8W5K/AkIIAPXtMvyVKyESjKx9nfragssxC0jFMVY94d8lOAwRocdS/l/P43cBGa3IqDa0ihGPcmwS8O8Vj16Uy55rOrnN0shhRJZdW8I7F0Q0KeHc35GFo4aJOFc25gNafBu1V/VO0qS4Qkb6wjRrnlepUWjtYyaDABZceValuOMtoDdeIITWKOJiwGPpB12lQgwkmXh9M86podb0D117mNQ8ElluFvbaS8RTKQ6lyj88dUwoJU/ofOeubhoXWBF8eNumkVJu+As3ED/AvLlrV91UowIWI2m8HBG+a3k247ZKAGYsOcWe7fTWqL8eqwM5ZFuoXbeugPKuMOAtOsN+4dSwkhrSAlfGNTzFwEmCNWtzpa9CgPbYNcmoHtO8pj8qMvlGET6nrkJoQ2lp5MEUV1E2A4ZH70JUlCLXvqTIpZlzyxdr5p/GZiD1/BuFOGbyfFzhuxaC/l3lC2jjt6GNRBa06AqqPlYtdA7kiidYa5Qi0/XpXiMDyMXNOj3kmJEaXufW0GO8+DF8OoMULX1vvjCePKNis4AmxQKLCF+cjf/wyilCJvuiyLVPSdsuRTPZ0AhpdDF/1uFmDwG7iP3qYwNsKzqd3sYdnMolCOuQOIHWy1eQpWhuV+jmSeAC5zCc0/KsOIXkZPdiw8vtB33jEBpezpGDBP4JLY2wH1J7Fzp8y8RICqVd25mDT2tDb/L1mh4fv9TOfDH5dTeATqu+diOZi+/sIt18hiTovPsVQVaqXLPRx/4R/uH/86tBMcF+WBkThKLfblcVCIECc8DgNRVX97KdrsCeIK+CvJZMfwrftcDZDZyp7G8HeKl7bPYnTKX88dXAwAyz66O2chkPDHy/2K2XcT/61XnlAKgPwtI8yP9Vu45yh55KHhJu93mL4nfo8szp/IyDjmFHtSMqqoWsj8WaVhbjXgzZxcqZcyOe7pUK6aXF/Y32LnBOt0WN28UmHRiOpL525C63I2JQPX8vvOU0fz2ij74OeJ1Apgu3JRObfdo9xGDpp7cv3TdULEfNS6Gu3EJu7drBsBsogUqUc6wAUW3ux0/1hLVI/JEKJrAGm8g72C2aJSsGAsKFW4CBvBXVlNIKa5r7HvT1BeGYBfxTR1vhNlFFNN8WQYwr39yT/13XzRGiF2IsfE8HcN0+lN1zN/OnzekVBKkFY11GgrK5CLxrE/2HCEMwQb9yOuP2rTXiZzTEETp/ismFGcTWmbM9G1Sn2D/x3G74uWYZY4rgKB2Zo2bTKS6QnM5x1Yee66Y1L7K44AyiY5K2MH5wrTwxMFh+S8LzNQ25z6sunWZyiRwFIIvSnioltUXNiOr+XMZ6O9h9HcHxZJkfF0tUm6QkU7iJ2ozXARitiL86aqVsMOpmvdIBROhUoanPtCjgft8up3hAaKpw9Qs9MzYtBA2ijHXotzarkV3zKEK0dFFQUwT74NgCmGGuSCEDmFCezXPC9BhyGhmzNa6rQeQQz+r9CmGUZjIQEPsHwe86oCOQhWaHERsv5ia9rZvJ//7UXO7B329YUkLLAiqpLRsVV5XpcfdawlJqi/BVcCqO6dr9YJTFFRMVGhfUbB9YWNvYPY6RyaydAFYq1YIBQxuNAGfYWLMAHtt2XRHoOKCLz+qf5HCVBDOPOktQ3SdJBfxUkaiD585bmTzMwU3oeXUHZ55EC99Kz9kk4ZXMIENwVVpqW2JmGIcUiutIMj2KkpjE2QD+dIZUCxcX57kH7hiuUPnKCTdaw4KN95XPeFRvMcvo5L8LexWqvaJPECzwXCs/4XPAlSMpWUzBBjK3pEnkbueMkMJQrYcnXf7PjbAoJra1VLX4YuscQLpaeYWbT+h24hCFrfcHjxxx6WTSe4AGY/KHRZCQKqTuFWt0D8RmGWmvXSdg1ptIefYPshuIVZT7CV4Ny67fvjJugy0TNYHqoCO45CB88kxrvIsih19DqjD0UqiJsTFPcGW3P/ULOG3nb8CjpgVTIoa5nO9ZYEX4uEHu8hLXrJPjV1lTQ5xTdZVagg+Wj8V0EE4yPsTc345KM6lVXqLiHtm+G6edC4GVEiPgd98g+twSYm18gCsPnjqlLcFm9e72CLJbYD+ocIZOxuVjrX6IKh9fh7WqdIZ66x9PWkDGOVVGkx7jM76Ywe16DX9ng205kg5eq+R2q2MguTJxYv/wWHliD9mOYpzZKNXYC3Wr4iBGkm54hBwkPzFhiX/VBHdVH/KJ1ZIMOHxIN6arKdxrm6EBsgwDt0mPe0MX1HRUMq8ctcmysU6xX0bzM1J07kAvq33jw1q0Pq2cyMWme8F7aVkfhzZEFdyi8fVBQav0YZqvAjZ83WKH726rBx5Bn7GHFthR6H4lFsltu+jWmsAibJ3kpWMG/QbncU7n9skIBL0MuXXtj9sJg+4Dl0XhKJ1LcrMydaIgyrgZgScP4k8YQvcsBmD26X1iYXKLzMYfZn2IfRjznsrJ1e5cnl/3a5xiNoI6n1x1U36FWckJbyx+hiSZg0QqAqeeSvzFYMlZ2REnO/a6yoQhu7PdHMYEPFIvfyGeyCU8e7rpju4DrlOhszj9rOIpNsvCkuD+TLyf5J7D/wsPkBpscFVI1q7oUSU9bN30vH5AqnO7bsf+9rGhtVjOJQ32H9hHSAzR2ape4L0Cz4WxaySm4jvuGXwkFp5NMMLrgZ8LdA+5uLuyxO5SMOmJNDBcbbLefv7z6LyxBwltnfQLd7qqpG1MmNcoLUcx73BkNF/xpdS0cKd6G646ntChXSeTZJJTFYGw39T7fqXDPKoG2cF7/ZcTvME42gXLVjTqzAER1Rt5m7GYsh0X0+XgOeW9MJqE5j/rpGzY6vUu6ACcCTzDMdZHiWELpDnvgE1hmztLcSYz0MtNyUBLqvylUJJnJu79Sku9NMHCTkgqozTnhMFfduV2NLCSYvAI5HUvQp1h/M02vKFD6eosIkGTg6mujUo1W8hy5Knf/erkBQC9LzNqPAYCgR+hczgevta88NNqSlBZryq9QNeUK7RpbvHjoNhUKAAeNYH55LeTW36KyFaXdAkBvyNP9xmRuBokPi2OhqDby6IZ61mwfzG+GmACkS+G80A4WGON5izgJWeeDK91jzusfOi0RmEsVJXwbVUr8u/J2LCQaMnHhi+wJTEPN9tS2b6W4GRGCNmtjAMgPsP357nOeD3H2tcDAPu5xQBKMHf/j4ZhXlkvvy3YmBJsjsd4pSOlfPZCnw5JvzxEXM5JIc+E2mU4CgB0mdJnH4NEsCHYNeVRDXFNuyZUE4nuvaJf1h+11AWLdAZ72D9XNRcxfb2+XHZN/SN48U7yl+sNZhg5gn/PD8wkBtnRj1zBUPIWnoMP6yGUEEzuT+VaX3x2jEIZAZsr3rs9wCfY1Ss0EdIFFzBbyruUup4EPanbSYew5tf16/ZWVup5iykttuqL4xoC/jdZWsAZeSfDSd3fP9kbyAFYXkf0Q2lmxaTkKRZrCo9XCoiUG4yP1URJ5G7+HSOhhJp0Anz0N07QZtyFUye6rcgiOFbtyoO1lkuV0iQ602MTyFK9xLqNHtNy4cJaTO6hjtiwNynVc34ZA6H7k8ai6S6eF6jIG0xJx+JfP97lzuCZr8vU5SIzImaNpiQhyvDbz23//PJcOk7hD4iIvJzfIgOGIR6ZPEJpWHZQoacbF+omeHw8aWHaNOfaIyGeG4lEryMfhtNmWh4RAIpn8dLs7ZE2eTVDwK++xDoSUgh47WDmKlZ/k6OosEUoQjk7Q+Kp7OxwgMFShAv6z4pTW8loVj2+qXLQ0T3hmIue8qHy1o/HXjm089m71t6mrrUyDftqMYtmfvQXKDlZ+K1HR/FkqPSqcjGlcPPIwbMw3wIFKBdVMJ4pFLt+oOIkWZMw8pkoYZ3byw4LmAF+7BdicGXFcb5PWtDw5XNNVc6eB9dv0rAEpgr5J+bLr010bpfGw+IkRoxDbkDFmQdEQUSElP5bViLo1ur/23KN0jEwl+rGC6AUMKxHcv+T9F1Ktpn8jSSrKxJnVkK8UD/tH5DN6nXB8mjUdFU539e9ywLtLYCwmHYVEVqnFmdubduaSd1ivIo4pTsX+mJcOAkrR1D60RIoocCBIdwJhCBM1rOE2XSlPo0U+khALvw+zfxYzwzd4roWlLJkZheFRR8QB8v4USwmAcDswUZ2P/7v7Xa51Fs7orYebYyww4YW5869Y/c6Kq2eTR9HLSjYuChTkXaDygoo8nz/yJ0KzfX8oowaNAwz8HvQdlLU9V9hjqYMURyYvPzZ60G0itmUdZwB+sY6rUkMAZZtWStbDFmnk/dQorhwr3121XQWffrK3as0g29ASwxbsZ3dZAq/96b7/XWckbjmo8+jwdE680DzoEUUivnBgowMuBQxHXoGyp+w/cSGY88rWtmwoyNNIvChs/QsZRnbdV7y8x7t2RkliJV/j8e6qfctrTsMV22zoqgQuTSNFh7U7p/Q49L0kygXNnEYXCBDgi5BeNWxu7VjULcUHI+lGj+OTCEATzWrDmaynq3wT9IAejtvh3esCu6sEu9JOsXxMDpqxm4Tzl+pt2Wa5Bq3TM5TKH4N7KLir8FGIPA569+uJ1VEL3fW8Jyigz/nEUjAVYrdCWq2MnS4hQVgcvXq9aF7Xke/k++rAtIQqckPNwjKrV2t7HCOrA1ps88Y5Rw1Zp+9itnB71j8tNiQc7mV1kUCQXkoi5fOsq1uC6hUPUL7Z69NAM6lg0c/aeiifHoi35v+pVBh7CDM1XfvYpiK5JIbIQFHafmnhHfRTnMagKcjdE7zzgtxkTPKVrObTySTT51g9bB5ro/dzn/sB24fNM2LGJuRQsmC49PLi1jTRfZaLpo8Txxxczij5Pl2vur+S1wQW3W5qyVcIUySZHtFDQHv+EYDoZG1T1J7D91vEIV8dHzUBzW1UyuxRbP+M/CM/vsas6RzmS5traXnQ0Jzv9hYXxKHcs15TQCP744XsLjzFjILYURXFnhM+nnV0iO6nwls9TR4tlz1J9/NvE8FGg5mgpZA4htS05AK0NnU2gxuqf2vjCyWlm3ypKvaX4vxh8Um1MHGB2NTeAFhbDyGm+5w2zqJAWxVlj6dVePb5yR+aMhuz05YubCQJ0BOtoYQ6PoDoW5fCwCtXj5SHvCgL/3B5z2mcXWaRTf8/GsFAfX/ntdWZWFc2xg8MJeenwZ4dZUToce43If4zVb1ex3BMAWGhgkPwR5EgktZhW3Yi+nsnZTUr9FYI160YhAraB0zMV+ouHz6hYm25/ETDM0MTmcypoGgZISSkfwYAQaHGY45yZ91K4A4Mm4fnbMk8GTc4orypT3NLBqAxYdcY/qCH82PpIkmVOEHi1NoYaUymuImLLcib5pmd2MHTB3JR+4rLdRc3gtQ9zeFdciciRiWviu3HkqaLSxJeI2rgc7OKQslItumACQow89elXmi4P3gTZeCauvMH5nF4VrBcLjjwGD+KlKqe/RWIEgT2wGqAgSuL6b+RTTPnQZzxZ5y5HQJkEEKJp5NfoB8hJBM8qn6xbOFtyzBjVBrwSS1zCJR3lEc9ODQ5Wu/xct9/2Q6qLHnmNx6XwZus/i8rEd6UsVxGtoDrm+Br0L5oUojlwdcqyVV4PIMsR60JhZwJtgX7izQWj+GOeF9DA8Wexdmv6DWjgR8LEBp9YuPAM8tJDu3uCumNqHnF2ATYX/tuVO55OgQuiUhmDmJbF9jJyifBRtxOVI9DCNLUY71IXZYTuiYcnILQ/XHuVJ8aHDStL0N+3eYNvXwHi2vEiTPnBqzsC4TsPnFVnYY042j5i7C11AVdBZ1pGSa52jM9dIL119rry0mgGxFzI8xPs+7bmMfYKh37A4HtA081olG1m9S4Zch2hoNCGVvVhd6UL7C2d5hKIBHoB+Uxarq/4aQXhh7IWjSj+ca7Vhqb4+ZwY3nHXh2S9JH4XZxQojbe/eINxYlozTYtT2rpU/xbj+W2hXjFQ+z+dQ8wh9751MP0UpjutQdxz3/FJYAEG5BF400JXWCBs7KrCRf/l+F+d9EuwVk6thOPDB+HNS9iWlLmDgXvY6K0vgiyoeA3An+jWufdAG1suUMBuJT+/w0FNJZbObUT8c5q5WtQxASQF6E+/u8UwVBs1eo8jTamCrcdhZJlADJbqn3crcDHQlBQNGq7btcGKiJXW6q0cn3F0xzf+k1JJS2testB3rx15ZPTDXm8QV5XE2qxBOdM2n6t5YbxyNOmEdsHx+hMp+y9pWkcgw1NikeXuafJvzcjaNwE1Ad6gG79S68aO7jWpKgBETYLmV4ONHhBk7Be8tjf2WVvWMDQvQdOnk448yeMv1tQKU1xev0L171e/qxkMZbmkfKnd29XRCK2hgNNJhwt1qiYWZGKz7Di6K3fGDT7DO2YQ7WU33svE/WKGbWQEvzUV2w+VNYDocI4yxQ6i3i4zU2TjmjCwu5Pk+Ja9HSwLpEoUswq3tFJ1jimthgMXd7KjSl6Qd0K+vxWT8G4/+xITHsWDGSfQTSdFQth5uVVfa8wrkDZHTGVgpJys2ik+3I0dSf6TNo6A/sVptyY/kx1hdAWKPI6t/xj6s+fPMU3hg1vkEB0RRHq/tCy3KUUhzU/d0JKxTyjvUms5iy1GbOFco0NA4t83SK9sBmtLWm4kOLLflyxqgQYP08iyXwYXzKnlQ6VTipuaspSJ9g5H5Lu3eLMnPKbhcwuEg0VZ80ppJWjUnhS3rL35erzysp+fJhxsUs86m28/UwW+IgrS5Y0zWaxlFJ8xML5wk8sg1ragF+eNajyI0Y4mwStxt1RZH2BjaAhvu+SnNNIK88thEgZEsoHv+ii+OMmXJL7dnAiINVDz3tCnqDgpQX9OguNGgZj3axcjq1UgxDw785yNIpqNiLgv57399jVmJ0/RStNswaFIs6FtnkilFZldxj6m562jL4p5g3Y9XCiXRJX6nq2PGJFifFR7EyPG4jDMnBM4t+O8ZpEp3th7TCxEw+ZG4afHl4sNFaqxyLh6+979tt0Aq9BrqI+CS2U7HJoKiGmyVU1lFa3/0O5mNC1bzRgNMy+GXyifLwJP7FwUSUmxmVRpn+gnXWoIuswPutsiciurvN6lsMG7yqEc2Y5ZI3jrPgPq0xEKPZpF7teJa0TQn8BQL4Th+hjv2ByfwKookyXEmj0d1KMcsmfKaeKK3cZZubiYqmSCrnGpYTwgPk5itKucVtjViuswQsDR6TuyGSIHYvlz7wkLg1Rr0K9kV1o8RgABlhbLrN74cVWJW6TnfXN0q12JFMpUbEa8t1+j440FA+17o8qa8PQ9igkctVROVIfB3jU5vtGm5pYYHYSDvU2TEc15pIz19ka1q6c/7WXfF8+POkApdOw7nn7Kqz6V4tru7NXgnA/u0g6+fPRT3hp/QrDQwMsjwNCZxdWrR6pgCBDJNc7/KAlwC0UZ4yWQs0KsuwbbOgcTxQPK54wiXr7s+221hzZ8RVxfoRUKM3e4lpxHC83JllxlrV760tl06f7/65qhE1jhMfivAUXIXfRMe3uY/G2TpWYzDrw5Cm5cS062Bx9lhHq9gtJp8xZwAtSdSuW/Kd7+orEAiswA76N8ezmVGYgNaYlQ/xk930LAWAtKVBC4U6R08L45IohB1kFia7XJs0TcaT2zBZoLFuOGu4iJaoAnfjL3uS6gnRH7G7A+aT6ETlmkYUfgrBuaSLLDJfhPJe01PfN0oqBTeQURasl3N8BZiQSgdr0aDv3hPTiog4NSyfAUyy98WP7dnTDWQTY+Qwzgk1uxwRqHl5MpC/84Cuw1TXfRlgJrwPop10kCHjmffnFdxCe2J3R3J5j+3H/sZn3IUu3Suy+I+dAOMWvzwExNR3RRPVelZAhtarKlXPWNjPRIVP4JsAFSRXs3o/fSYAPaV/zP8q6DltH47/rYhCLdy/LrpOsbaLf09eACcClJosNefetNElkSFSuCgeY7oTAAl+8Y2zOXJb/bgEDpoDXfQqc6lnlBr/WsmVznkBS1M7ufiqpxvKXjwvR4WxLbh5NbMNy8LsnX4UiuAi8XonbSUcVZKQOWBYUecSOMj6jMG8gHu7WNreBHY90lV7FocDprSrSbexkAtMW9KlXcnrOyLnZdodGYdxz8aw71HztIqLhRdCOB6NyzHPoS2hDy6wLk0I5Jr2t+U0A+A7EsgSn/Ih03A5CspHnVF4MOic+Lck3m61Um+GHDEe4DrHBhmgtDlRQl1XJ/V/VumCHtUDDcZCkgjVMBOmVOGYW0Rcdi1ahdjhBcFlfjA+5cRjBop1aNDvdrf7CxkLVgxiCxhRctW8wczM8+kVmIrGtkaHGlr8y2D098HXE23r7fnJFUU68zyeyM265igNOGPzFG0dIgUDWN6S3ZcfMERJdWVvpGhVEHXNLeWqHiTcF3wOt0FbJY4XHEpmkoG9MQPJJ4ueQ01+MB+SR0rCSGzlE8zod19q75LlLWgzogpnJoD4gPxUYcX+Gpc5Ly4nk+Zm8LDXcNR7SNVxLh6NAcx8ekjb/AC7ADlRnfuHaHJaBodZr7RBX9FLTvocY6kY8bavdAkQicE9bbwGLkZu6whTCJ56lOvM39ijehpTOFqR3V53nQx4hfOvwRPU2y2w7UU8yiRbcyaX6jGJ9CRvl9ybV1tebTp5MMuMnwLcx/lven0w9T0atJuiUE2WtYGiVMaP3EchABl5AsyaCpu/BKAWDFvU2vaCL2/fJBKCKLjxG6xzT4Mh4wHhH3/EqsGSoQAHu2wbHmXHj2LvoW19GXDa2oyeKRwGG1PU+S7mE/S+UmjHiDF1oqJ0R5QsdjAZYN1MzpNX5YDqWYfhfdjAXyFQaVyGKkp1oEGTR8MK6jaGfRDFd41u2Ex8ac8jKPYu3pXsk8gu+m9tr1RVzTTuDsACW4S1h32yFHX7qpXSmA0QVEcR8W9j2Juu0pcYqTmdis88VgT3gq7iYue5Hx/3K6hFQa9rZrNSDcjaSQlNn4LSqs20bypnKqpzvnnxjMdz5StbzvoAJKgVZa4DLCVoJW765/KyTF4s4YztmAT1c0pTmKJHTpa106FegDo8p2zD6uOnwpYi0vJlRMDe9wPT6964UfAf6lq3qWypUOx9q6BbKEYt7K3gWMXDNN6wAm1fNnSOnZ4JkbPq7jLQrl0wL1V7QwO/sXneKGfTgUL28I5iPVG9dA2gS7Ki005JUR7Vmw4gX4TJvy1WS74cIXD08LCF5obqcZwamuoZ+FPMJEck0TLHjyH1baPr55/Cy0ptDfRJ7d89pbP48tLMHG5dO11Z8xSSpPGQSgXDWmpsNsmm+MvxJjMCi7OFDHxxpmTtjgnOCq+c7Fi1DybfhAntviKccz+sj+OPKPYOKeYYPLvq6MpUx/chSvBccg9dfbeqetQNCs3eiCFZTU1mrDido/mib64STMgsa+IKLk9PyxGGbVSQB9GsHto6f5prAFIbRDSItDedz3t5+Nn69FFS0nEfmkF7hKBmNVce5xv65USKGBoHYxJyutSGnRIq7vMDsAMvirOEJOzNi5Kt7fypuSU2c2Npo6UH5jMOkePH0TwgpammO3Fb2FX6f11309z/mqRmQ949HHRj/wMzKNx95M9pwKf+UQkMEwisL3YVotvHhCv4y00Ui0Ql8dR7tGqFcSdYtmoAOuAodkBNs4PZSjAAF7S/szwLddFMdCyB/dWPgFUiUE+WmUUCjYrKfJLQfNNpQ4NKaF57w7Kp/isZVwQPUJyjJavN3fQNKU+F74jVBJYQEcEdw0Niinyea0l9PJ1/AcTm/LI91RZjDvLI81pnat7RKU2P4/TnIAa3hIEfeg4iGQ+wTDlURK6YjNpN5s5VkQW9w7sDYKU4XmjyZsCQLxztqd4SDQvLyuPDhURAJXKfR1c7tq3mRu4usFHPqz7HgS0X7kNxiWWR3fb3uVwbgKpmgLYkwKrXKt09COw4MjhxeZlDXKy7nNLHXAIKPtferWQnZLboonQXK81x+BB3oUidBehK1swSXxVbscj/LsfONu/xYEXYPM3aMqIYd+2hAnFvDHbdrJLhGEd3sG5PyxqhzejhQJo9wauFK3xmPYqxB99J8zYU9/yzrEZNzzbvPoR9vUlE3Ha4zspVDzHHffPZMJ1VLZkKqGCf8ZqupqMt6T+NRPfmPm2xeDgvzMrRJEL4/zzlu7Z35smvzbgeC25VP2CUrZkRxEi15A0769ojdO1d7C9OG+swj1ROMM3NgKdeBADoRMeJkRZcZ1FbQu6C0BS9NNSaoxtFzYT4lX7+PQ7BKa84yrN+ujVVef+SgnEie1G0N+eOtbZF/UU+wkeerWjloYqFiqo0vBnmxh+TwNMo9I/8lfU2XTCT0K4OoWE08ipyNHjxHvfhY6qa3x4HzdQ8+jkiO5+j91YkihS5memfpFREHP/2veN5XcRue2zCVuAub8V6vDlOvyP+PBm+owyRhMmng5wwGGIXsOkQekXrXpE/6dFjkHwwoFoj5bIFiqp+4wHpSWRbv2xGrRpd2c87FzMP6Hfj/3LWIBqFiNOAxBw+AAP1XqUBszdZhzOSQrQS4Ein4fyV7MaGsB0VsMF4bPb4lx/foTGQRJv45LpoxDd84xCawHaX7jpXUrOdkFxx2oUvY2xqpgIvcVufwd+zAnaaVTnEyDXD7S/o/xrrk4mgTjXhcjj5Rzrbr23NmuZQvpdNzny5MCR9bwvIRIqzOZZLsstZSCDYa56JTvzxgBs20dYTtTUbe21uljlWqGfSh2bYAzOpf6UguK30ZxNXgLHs6Y6urtxFA5iLYvlue5mDONW0MOtQjhqr8fRbCkYneiDkvzHkQVT4F9v9vxh2SIGPBH8bZb8ugo/BSgXojeSdNXbBAIDsB6DUNSXnwlu/bFLaCqSbvu4+YLplwO1JbtrMf9ZUfsxerAZjB7E/zl3qwgK27FswemUmSM4i37YAVhQSocuV8AcDI/CSeCDNPavESshDQ8A/lVIrAJAMdP/rHXouiNU8RL/TIvfQiuZEb6dkIKMGGOW5kT8vO8pivWnT4v7qmwuJo52AS1r/RyQ2g/7c9ZJgmMIzf0GvJJRfMNu1utRNuLWHOm9JIMcJK3qiDtVpGCDP45W1oTTMUnMC91kYhP0GHjhCW8V38xhjHgFFBfuWMsmSQ9MvNqKXiqtUhDAkIy0PW7YSKaKUv6zctAiIk+Jt17kG6LpNVOeMvJnlVBaJSkKe0HTJJUMvf8R2zna35/yh2wNlWLzIP3BJR5aRNxkV94ICOlycI1/JYRZtzvWMNoIpQrdNvyBuBydhSwhRwPo079Xk/XQZpbhzN/KK4NbdJQV0JIMP+Y5UBIM3TTYlFGYVjcvA5yVozkimco91Fx/eo+ydgAx1gMezTh+bYxCtXPYkMoPdtaElRusxlmdSV9zgF4Np+iylun3LVxCycAFxGCFsmARf6y4I6zXY0tx81aQyalr3/ih+ZjxGNWdhItgNLdEZ/BOIJpPoAveh2bKbEFxU/M0+4xqDo3Ox8MnNn8Lmv15NJigSvJV+y2W/ZogEXNiv0/nuFzZGr0pKujOShzcdkEVlMw8mNZXZCbtM9V+mfawtLxCTvo+enFWhJcFv8LVTFycDjPGBXRQKNN+z68HJtYdpH++g5WdhQpCO+DE7Qdu6TmZgtetrpU2ZlgpslOx+4hb3aXaqbdc92LCh51er8vm1GQ9uWD9+fAPRV50ixhgc5zi2Jsg1xQVxzlaELRWJ5biyF+eCwNV0oFnTbBHr3Glm9qlGVOpoOsQC8hlNG88fxeAekkCGnHFn6i5WzyO7ShDYbZ2KM4eqndyy01v+6TFhmkxgc0dndt7EzRCcEfBxSaWZwcev6MDZcuvSZQ9CNSd4Tx25TY6UAbrhikuP1vNFfPdZhCG1pe6vx4D6Ez3zIb0zDa42FPpxWvIpEeXb7YTcfZOahSpSYaWLH/vq0F3U1KO7ZxliZpoMBBYJs91IE0bOkrPNQ/USYY0qKCO3CU+AFbOYxzKWBkIglrX34377BZ18MKQCv1KWfIHEeguSpvrNH5RQOD4LeiH2gdx1MOAKphlL41F4RpxaU4dy8xERFgqoyICQq9XmQ8WJSokwqvhQM0fLtsvyCO2PAkJ3BZg5IqoR5q/GdTLgOWPFR53Nqw9Ma5vBzZcQ4+iZgetmKg5ZIn+/7Jbi+VlViXuD9CaAUtdEmnwWTS7wZWuskVvc/SDaaKV+Jz6HrZTHo3UrAu0IZDBkXWmL+mTTjdTb1A+MdhKkY/hvFNwXj1FzUngsN58u/kTdJ3Xi0hy7efR6faAOi4SKGaiOty8lxDFkiD9wq2GW1EZEsoWGw/WzxXhWDzYY8CC7WuLFHc+x19jhH+FiLXwDIARRtnkJPF2BUPZ9+grZ3tjqAWhhN3h74w5pooRQUNATy05A9HDLnILGSCtfESoSilqtqAIQ/TV2t3KhOc+teDf5t+DqZDdB8Ob9YXyklrSO73pR0QAxPvQj57c6FIR5dOciqeHZ2LRABMROo8Jk8V6JFewCL8TCd/A5MSbXLky1cW7mXobqgeEXdFDoEydKo5oCuyn+2JYI/7pIGFAzErlHZ5hOaiT17HC3zp2HpJwsIAb4/oIoZ8x8ak43Yp83Ermq55Dg8HxKGHXbXs47sh0PzQELTGFsf5eO3lYAuJjMneoYWk8W/3tW2WLntEKBZEW4hOFgo8K58Rj0vk5KLyezu1d8SO/JcuxpOJqFUM2sxBmbQ/9qqwb90R0WulpR/Ju84bQ5/fTh7po/pbBb7AQaYNdK3fatD3K4TLHAaa66MQzp/+ZGyCjzo5OXRzJ8UHyg/YpNHvvlOpwQIOjakpLHwGV4WsLDPjEIqG23ily3LL0dlkYQxj3Xx0ApCo35zYGoGOtIclYS83MnI5TwVdQ+Hg453WFQN694DaqhGaL/dm0KncXYqXLi5polgT4DOrzD4oSVhrkh8GW2PaXjOFDCLPcn4RQj8dRGIJuV81LxMPZ0UL6zpkaebhbFBxcRJe38UiTbUPDjFWk2jBqzrBvXcKmgdDcmRyJhIpuq+3DQY464AlY42z2EM0yIK0I6b+VgpanMfpdWo7OxKY8RM5tSJv340/qD8SxrYsybMuUkF8fHj7HcvxEPC5YYrH4LW1YKg6QaeFZLvPbrHZHvi4OXLKkN8cGQO8019OKqcv6QnBlj01e7qS5evoGm53rv+VmDxxCXDiOrDg+IaPeMPrn8TJ1oReXYI3yb+4HQbikxP5TQXHk4YXPUv95+KmkxGsRgTwP71YiMpqNXp0loHZeXRp9i3euKrVtxMM0e6XAoACwNtcc6sOuhZVb1htBLudzahrDFt5GkdlwHjZl5y0LbvSHwII+qYeDwRKTTzyXaInHIM+8rc5TrjUlPRVwB5LKFpQnV8e7vLv7T7V/iJTW9h9TnRtNCSGcofBWYm5P7wZcAq3AFamEW/GMbo27ldz0plt5HI53ddWkn9IuCZY+Iy0MATUh3YenRTbVgdLYtu893SuN6EL4e9V4NhlzUjI8nOS6B99ecyC1Ot8sDahQpWHbmt2YvWGyL3S9tEVLKYs+LnghBmmSl2uPWfqPobPwBHNLW21LUjfZb7jfLMTsMp3icGO1npK/rCsUgdBVKVg0Ys+/WKuTmVJoC8Oe5h3PK1TQhbpZ2ytP9nlutQPtLAEt+CVT90DfVkn7lHLOX8AfS6HLzfHeAhu1alnl19RHKV1LI0G7RPzYgVaSpX7th9f06uo2WpxjL86i/2uzK2qj/ClHbGDyQr3F9/axmq4kJ7zZFVXVVwfiFr5bhUGVZeQJHKFAcsnqPKsb8vHyB9SpFpT9U1U7D4aS9vYgqajxhC+hOkolJV2dKAxysCkWBo3SPiPUrSQYZxOWwWCoQzbV0oeaDEcgUtqI3nq9TSmpQ688/+wb26P2CHLY1H7q5lypXSrnwnnztq/jN1o9lyvLmLyGguV0VJnDCREkiUNrZqGG06MsyA+Phd9CuFoM5M1Pyk7S6TJaHdTw0ni3n5ysAup0kyxr65lFc81NcH8xSmpp+iOEtQZrH/y01k1rGMRJAGFhi+nDecpUlnrh+qBOCMZCcSCovOPJrxjZnZJDMLdpMVu+tBSVS1nKxsYjY9Dtq1/++riVfLUVhzofIcIgQQPOqHioELxU3EpCcZMoL9laa5YlOZAMEp5apx7CphrkL+fyKbBAf8ctwVd93FTo7F5Oc/alNsCgK6lHruPROtN2RybiLqx8P5LTUZXU+Aoyz08zYHasR3U8hPDKj+6arWXR9yWdJoMn45prCSURKKy3+JHgvs2Ot6v6GbEtdCumgCttv2VNoU3KOqUwqNIWHqYm4eMijTM9VWB7umEyp7UPOI8fduHJY0W9xSCZdvc2xMjo3Zdu2o/WZKDMOSh9UmLvo45IBppD2dG++HJu8kbfFdlwuIxk2KHhgHQeNKcHhFkYGRzL2VJVMOAb0Co64wvds5CaYl9ZmBm4zuGDeaO2eI1XM4+rD/HmZyRF62SabgAe8TF43VuMutigJJMfbW2UK0azGLFbOfujnHD+GGBYmSmOQbUCOY99HYvswBQA6r9hrc2jtsUUxLVjxnZ4JnIrTwIVdWCTPtpJpvlA7m01/4tbUMyz9mv1jdN1jkiHQCJXXKg8bJ+aqW6rbwbn5yDSHBTcFXIegrhHGAjJOZI1pyP83Z3vMYTAJoo8V9IwyS+U6OVg78+IhSYHDYjRs8FrF8smHQ9h4qAYxp49rRP2d5uxLAuP72GvZaYvfeLOkMrcg0PkPuq7NsXhMFmiZa6PKBH1l+oKHI5DBLdZCvCwTPdXqmnz8gLzVRb/ixLTSdit2nrzt0x+5rDeZT+ac31NKNskQs6noKlQccyD3UxzfVZFmcbpmrfPsZD0Ve34xpKWk/E9Khn4A5yVPVq+dwnv0EyYecPqXGU7R8suTW0A6NJWweLI3iSGDlQXzMYsSWkSMhFTfyA2vTDt/3wXk+mVU6bRNkZvNnyVHYiA4tmnNwdh/RVsk/EgSerfTIf5VBmuAc2IKSeL5Nbrg3acgFj80mI8SWsc3dNAGCBLLMP89gH5UnLTKq78d9SxQH/g7DVnBh/qnBdw5CDrw/uMzcdXSxWqGIFcnQZt/1aOHxUg88MN2w+FPx/V75gy2wzEVe6G51PQIR2tZsxbv62HhgjwtlzrVREw/yzlaAiuXC26cnpvQzWXp2mOgihyPCWqq38nEadX2T7f1Y5zGxEGBaT//IcL/BsquAJX5EDbX8X1p8nLWR2yyjFRvqC/jssoCJBCDJOsZvoBfXqQSEKhNARH1YfueeKBslAwLi24/wAO1BHptlf1kQFNsOPlDvlYednrEp3a4SAz/G7LIVEsZBu0EKWZu/euB/XKdkGonP6t6lgEcCOw8mceuzvEVzyoPnMyzrqoNQXJb9C8ZCXSiedKiCgNwfNkpVlHbUgE2Rb9WFScOeEad+T+jT8XlSc8rcvkIuhAv/gxRu2eb2GonLTyokjcGF1EBpCJbhy2H3lhL0rdZIw1okA5pBg2oRfQceXTPzhuNKorTEF7t1UIgDqIo7/loxyTgbtKu29o9K9KujvCqUGyPY7upcfiZLNBVKh5uXAAZjQjhlhBp0ukmO4Avxu4xAVhCtnsOIA/tAm94U3HEuSr3wq+ZLo8pyoC9EB/q3pOzQRyCTkozmJwo1Ln/2xEbtNnS2S0NUIS3yz3/mBIdxONHxqP9FW+uoGI1F415lI1nZwK0SoPA0+flaokBGEoXgZnO4GOExU7VOjdPns59ekmDxqNhEHeAF5i5N/3W2NC1XGFjTpqLrnCECiwVkOTrLtp2ehUIaejOG6+1336YQSKMSsL4zhUjw6SQKryVRz5Ldn3R5/r8AOi02RJkQXPdvPsl/FMg96E/cJmIFLmEDzr1Gkh9G3zisG4pqM/MV6XIz+CtDUh6hmJB97VzN8jaPSS90vgDjvnaNlKky2/zIhE9ObugwrftI+Oi2a4VVaB/Mwn3VmaWjsU9NOf2usbcN/GLQMjvfeU/YvyEERPKw1leXZWWk1HXzY3P9MUq6MZq1hkEgFzds51mv8mnp1i4pQprPwY0TId1szXwe5TG+R5mMD76nGPQr7/EhQWksjsgGs7Zy5QYvMcGV5tcXJR+6hlHFIAc/M6XjkKYtwm673Bi+K1tNO9i1YBePTur4I+gMsOK7f7980mcJXhgdWdhNzUN2JvFsvXq3zZRG2V30sJtJYxj0aUv1u4/ppVHi1iHnTY3gDHsrQS8YwMX5XwZ2gcFYYe2wd7ZO9swr0gb8zf/fXx8QWKPXcK1UdJk3760B/TMlpWLCbhkqVoSTsOqzgkmFmFteCCTGhNyvFhw1RrTIWzRxq8Tj5FirvKvtkp2GAVhnZ7vnr71pyI0rKwQbVxKZuqM7GAvn2mRBj5p8djlHUsh/r/eBECptpbbjP5nFyuN4mvQLZCaxeTkDUzd/kNGLIzBFv1CElQO+xmf7Dzt1f7GM1Bh+wLDCJZlhcVDXbtPuGssdEie3lZNiWcXMTjZtWAT5MCmpq6JCRuFSHZYGKcSFZ9kOYJfEqLIcWdzpTA+Hmu+ktgSUwXVSwkaa/aHdZXh7IOyrudCBalCZpgXGRNbhN2XpEY60DXXO1Ci5ayZSoxtG0WRCC50+XtgWz7qgX5MRA5S+jzXCYy7O7Nn0ljVxiBxQNCZKZMTqi6mPfy2LZx76uyRUXHjnpJJEimflHDUxyX7fFg7iJvSrsZMH6Uv2xbfQNx5eCbx3oKycUrBY22KPmgfg/w07CDVsw6tb5VxPg5/X38cQtXI47U7MAGGjO28II12T+PjaXHlstPtkUQNn0DKkCYis+kVAkA1wyAJgYKLGnKD3nlVCarYqCkNIZbiVwO2Ydjl7N6iOtvvbAfuq7VKZLo0jEdw1YdsRaHcuJQulgb51JyELzYBkP1hd03IDcZfPg5XmNvYQSOINsCSn3BuLtkCPZRalK7+S97zxvJHiJCZJM9XP785NZ8B8fqDe/Ot0BS3PH1ptErwxBtpgfOj4d/41nrSjJQf9bV1kfdBHJxYbHILxOsWkZvoP/Z4Sl0Yx3bDjTF96xf96+6uIoQ351Ce6DeTwTnkPr20YwATlnhskWIddUohklNITCq/07zkiEc3B58uiBG6d9YAc4h/7s44FN2RG1UuZWeojrOZIhElvDP4KqHcOYbqqS95o7ilQH5ONJfy+aYiB+sPpn35HfHG3duLpNvBjXc+Klf4IKrFHjeVty02xPTNnbdL4gtkqPqMLhSgR/fDXzxJbSScqewiF1wdVoJ/fGL/nGWZfVlDHOQKD+/i/mqwXqvNqxtZeRHwoe/bodk66B9soOnZp36gdzVMRRQsQiBFf+HXjRcrRf9FsGghw3+qoN0JeeMvDJrkSBPsESDai/uVOzn2Ohge+UVdi050fdWpsjP0D/QuTdYs6QyI9xnhU8WT2+KBKzoZ7Bq8fOdKPeLulUhJjT34/EOnUloqus8+pzqNh/UdUOhgTlrbkuTfsaIYDm87u/GNIl3N53uaU8bgaBjpz0jdu1f59K4KFDtwUUeEUoeYx6DEkWKHdi7dtHhQF44lbysk7PqERrsuAQu2D5tDMl7kFoGdI8r/s8rMytJzYBU40wqeFvTl0ZVLdOB6Ya9E/f8VPbGx5MdpYqYMLMyB0QxVdnoJ+tgAQVWfH+jtOHD3PsjuT8dOTSrupuvHWRHQoGI1Qj1Hc6k+Mg84FAZ/gzl3SEzuGWZKFwuo2D3EiG95D2Z1szTqAuFRmT1nEh20tkC4ysmXx6JtN0taK1iRR62s2uNW5rSAvMEJ8yotr3UhJe22brlQn8Gvcq1I0aODaHJucQKVe6SXyfcDWODMw8xf+2C7Zx5a4Qlh7pJs550DictL4OxcDXKvVmLgVWRwb3moxv4kcxzm89EERJXCl7X/BziBkGQWOHPGF+6K5NFJYOFVv4+NyFq+OPMaSWZKoydplufY+CYyL63T8MCMmwqLTmAE8h0prhi174wnx7DHZWYuRJSYZ63uz97AGOzyI3aebclnud77znbZetbWUripe+AadLQeZPtWsF+FNiaXCy/98km137lWewyc7Gamai1Hd3Ls+KMMVh0R3NKTQ08TIClDfMKwUGKy/7YZlJHU3uW60X0r74Afh02v5MJgVOYkjmors6GAaDU7yKHydfkXYd6nEjYc76xws1LDLWCNNKBtUHNyLseOyNDgmHiJ41lXvq638RzDGis8WIniOb/pbTs+HsQVGPi6mxG+CU+oflMR6/qx3pVP+GPgqa0U0lo8MVmI1cBgSnPGgrh+J+m9TVg8nivua0EQP7xai44ruC5gsAVOp9bLsDXfHQujo6IpBmpfbbU8PDavZpTuJtmflVQuOImnRQ5kKoQz2NBFjdiHH3cF9QLgDP5vz/W5trCy22Uk+TCjXjdbCCHB3rJhKYTwiyQUf8xu6yTKtIwrbw4tzFgXDODmWYEnnpDupk3b4AP3qz4AZ2En5wi6aZV287AgCF4vH8TlWLni1E5Hd93vLxSYLBWSuj3eXGFtWyWpBkIeKu+YsBh19VeakA8OePM0ILu6dYYl9DNIK3kU1ybH+A5xYhFI/EqSX3vtNs6V5eQgxYLvu0hYFjiG+n8JzqLQVROiVa8XNQDYJtDAetPFSuEtGI3B8rnbbrNo9TJn/z3lRYq0ecBIe7a03vLESwhKOm1bGTk2kPMv/Sh9wyCOmIore7JhSFT9HIjonBfi+gcdDLfFt7dpShJmW1gkcXmitWwm1cC480CraHm/or2MHphB9Q1bmt/SBXFqXJdcv5GTt3IS2fRgqThhInCjRkh7Dk1iS2vMBLSGtRPppb4FEu762JehUMQxxLQre365CKoJGvJwVde91XQ+bDp5ZsMu/QHmLgITmwGXSpQFQlQBajqquxlwIOe2cyfezaSHIoRNLcwjW+epnmAtmmWA9KU29v/cA2iuWbj9ZV7HR4anhHkjbxnzKPHnIZ7Mm5wAf2o/3xUhnfH++quS20TdhalHgNhusidPKWyKWV8ZjFLgb1fX2r7ifLyUtxuKHHIfCWXQJ/DKeU61vxmPT34MTi2Q9r7/sK1CYuHVqMBsgtfenn31bUzCoyPN89KiO5wHveqnk3uyHnJSUBVTQQ3NyRPmeRKTQvWEBZ4QWcSgMyZF0RQgvUXRcp6KflF056fwahSioP622TdcTVYi4cAwSZLWDvfjoKFLMowPQpzn6ogXHc93fFA5NZmnwslSuesOyNI1EE3RM8kzat6thkmpOiGmm69Yn8yNuxz1YuuPWekoybkee106T9WTPXo44ea9E5QH2Ig6FZn716DBa2FyXHG1B+YfnmhbEpANlOi61BoGO4+G3WMJDokJXj9GhNsFqdaLjA1pkhLP+/mGCZoYsxNI+A+sMvWyoj+PMWeR8koRz+r9pNVEWT70WhiAkNTrojdr0sBLwxIM7D4zT+cVy96ZE+ABi9CqkM9VK7iOfkJVp7AqCqQ9EZ9emn8rB8zfoQZUBrVd6YS2AqiTFt0nJ8HfPGmnBWf3Xi5CgyWoLAmHJp/AfTdHB0+Ns5DlhL6UJ+O/6xys+CWVKtL9S8fVHkpwZZMJn6jVtiUTtXjywmiVXw9a6f/G7Qd4tZtcoS3aytxXYA9aGGmEeBobjiammhUaMDicH3nlOkDvvz19NqWOvHC2SMv7OQHtDIykYerPuoLz6SQNOBtw6oX2Sj3ZLITBDcWNx9CuZYYVaE+vleXnATrwn+PnuQ34jL52tp85aIOk684SUlQ8uyO2t+eIOHndZ3oxD+BcMAba/JVxRYUAUZoEw3D80WWOz0/ul+fYbhFnffx3PgOy2LLiu82D5FMSpi+Pd4EkIFTgfv7p/0vnX1wp0VpNzyXs/5S/4z0RFS21vIF67k1ERTfFuhLM/8fdbKognohMqTNF/+oqvXXLuJB7IHeDdn1X2eParLBEpz8y9CAN2g5VdE7EimekAOhkw+tTzqeEsgyQL4iVDnWrP/RcBd6CDm16/5t+I1SAxCn9wo8knzmpg8DYP8V/vHw8Stu7cliAt+G/VR4XPNZXWF2rZBeQO75os2jFJrbtkfhN9BzHT4HGgXTjyTy8NGsiQdeOw12GjYKCyxP+34kRHZqYsn0pFvVubB0+/emKRgiGXNRWQwMSvAB1xvTprD0Zyt08BjP/4W9HGNfNBcA0Qb9qF5hdQ4dDqpKAFLoIW2gFEVKOganw3M9/4WP9ckP0/g6kaJDRurtxNgT+PjvWYEWlFa80wKYCkd/0ZChV94njjGyg0t98Pz3AL2AFAhvRRiJwdfRcQqqhWkv/o6X45d5w1YLJOye3v7rgta7Ya0jAl/an42ng5Wz4S5we7n2+1W94JnpoGyV8WW2HYjKLkKmp4hBKlNtb5y4W1MrsG/wfq2N5Xrz2kqhdPQL/YoxgCQd6Y2KNkADVu7TxugQRWVuNL0BUj3JRFyWNeCmB74Wsz54OPnbq0GFFxzSkoiJ3Rtq8yEJMKvOMMalFKH7YFHKjb2nwrKVfuUUuRtTfJDiBuaEHHoX+MUrM2bBaAsSdnY5PjqcMBn/wwojQxzt2MoOCC3OEArr09ghhsj2M0mue5ntQcmcC1R/sK3zfShGJuazS+mJUeKxk5u36CYj8+SJCq8ZEv7bNf1+BywGeDQoTDGq6Yh1xW3Suwo2O/ykazTPK/TdVOICyiwK8MuQpK+FX3mqSPzxfLwFJ/iYDjs0WgW2kqXYgm+gkNToB5+jYH83Xlt0cbtEmkkBaVGlHz61rVuWzrK1yjn5nYHKvKCrBPPRth3AKDQQB83fdrbgIeIfB3iHya5NPpEyxbzmtN5Dnk7GqrQ4uu4h3QSoHU+74zs31cWqIx4SZ2bwWLvIxUtR6gufZhNZoMcmSB5z1O9TKvHMORD+VmuiqzsyJKA1OaApB+b9x6u9FTvUkalgl0r7raV+wRqimc2D7B1z/OiSagdd5UME2igLGUcgPlMSX1VsKQp/9yDiYei87KTBA2NPCUmgaLwVdvQFFFxWp2vGCY/KCUvxt3FOu6xIgwS4Vybvbj6feUCkrQPpO/wPHJPhAobSj/aa5YrUvjHMcQkDZwfc9mvghrk/PIPvcJa5InhVBfjh3Xr9vIvA4ac+m+pywS/EqkSX55xgiyj0TB1EE0NT3W2CPFdVD88P72SpdFzHS/6XsmbGtM8JE/m8eojzd4PM1bNADliZ+XG/9hbcKg6PftVKyKKt/8Bz4lGsHyT0VKj2vDGp/qDGBajSHrqzmpEjW5LXsb5kTV6HgbMcnPW2dzQju9N1sI/gPVlgGmk0bHKOX2Ws1q4aPizhcM/XiJ5EZNUK6bZNUeFaUJVTvGxglRUY7vdnoVOe0Raho3huh1XDeTlHpk/2gBjjhUQXe8FN5A4zcRqkNtKpSVq0xyw9j3yQlQxq/Lnqklpz8lXmzHkz8sX9HJjHwyn8UAjblvN0ZFIk4liejx0lVACoKvpsT9+pQoLY4weMHRzcuVC60DUFkaqLfclS4UJti5WK4FE3dYcc0OilX50uscLJomlR6pXriD6ELNNBWOSMt50CJjPkyt3Zn/xj1dlPVP1t6XExK+b3jMoULLPOrEGvjELfAMM1qcuBb0AijkIuFca8f8xapUlkvLjmmJW7RK94r8HaPzvmHHSqX9MXdivNI4A+JHy0VCe79UZZJvzMGzpnsj+Q6k3EItDBiA12fTMlSbEOMAWCdQq9TtyUiAaAqJozMzryEg0k+yVHqCc/DyJcCE2V4WXIhEnsOc5c8f4ChWfUaONhPPWogpDs/lyVCvp3m0NSfrAJKNiVy5aNC9gZ6c9BqwYgj/cDO3kdam6gCjhR+akALFYmt4ixHkWxKhDTGs5K+CwRiKJnvxP9dbxRPCBHbiVa8gsd2GuiNHZD98MNwXMdMC0MubVodd7dnyk3UQFfCIIL1osPxY0ZJ6DvZXwtZ2I0th6aqlTMULVo+lhSIU/5qO63lTSa3MgPRJEOi0AJ8/UlZuvgqLw9dyEDQoHTKWOsq+6fzoAyvIpv14fLaY+braPd6NkSaq0RClMenK1QLH87NZriUaeuCo6SZ7/CfUt2K6VOt0AjIK2jR0vorf6R8+TVzxZb+QdLimH9pU5tQc73xW93QRPMGy/gCK+R+YzmV4fHK52GWBEBL05EEoTY6OYG1WWji66dWnVTg0uPNw839p/yjLxkCfdTaH+v6hVUCd6HlROj6W8Mil6AYGC7NI2+qkZvJh/dAw/iQspXQNwwWHr6slLIp0hBHYTDh/J7Ba7ZR6cp3iU4bSXdmzhTahYDev4yKiIHyN64EANhI5OHYv1G4KXfIOvQizYWchPhzQg5eVGNMxsqrvWVxjtIbkKuHzE+IcA2NZ83GKz0D8z5zmgRnoJGKigseP9TmMS7BgAqtqyixA/SLc1KEUWrhXOQ6kA5ZQRazp3wwSa404cppBnfsS8EsEpbr/gXyW36cZ9pt1RhzyxGxDUmnZeBz/Uf1AP+gyLIg9x04u1fThm2w/H1ZXGvVqsO1VqutV5gUhFkdkwoCjzz3F3FUr1v0njGYT2mSZYvoF/fSd1W11c5VIhkEO06US5wYRmHVPYXmZnbK5YHQ8pkIDJ0yqssqFK34CuHE8RWb+Dr4omk779QOOcYomAMYQ9ILt2KUk2uNlahW/IjGtenuGLxb/t3aFoVz4oNwMZ7iyp4td8mdzgJAfnCcYtklubGAUB9k6bGC5DSkf5VFarnGEBWz600VGR8QywZ+jIYFZbtKT2QdDOYP6k7D8qVgEZByGmRedZRWaQDTggLyNgDD6pQwEeSs82+hTxWypqwU3zuAWqfwil+mytzVnKztyvMFJyJwPFaPr4Z3mTjyxCR2Jv674JVGGMUSWb0l+GtcYtd+NBGChwr8mB2hlyccget9liJhQEb0XgXfgVRlHlbO+jlZ9CcAew0Nw+tRcWgNnz/GL9Kur7RohRhaYZBBmQA6JhvzkazHRcdZDn0zDkfBmYP1PfQjP3d6qqx6gE7vrb3lBKEfK3Y/nCe4COdpr23oZCoIpssGXmqE8CGpO2bEwkSN6uqeqR4UtWR+xsgOzNeR49PTLJpFEAkXha5YaecJ8t/KR+eG7/HKV23zPZAMvHDC1rdxQ0l+6wlIgZbUybjBe6yusL7isRuuYYwg4+8+4lia2ox8RCdvmXlt00ZshBnAIfLkSwIqUzCcsD/d1ZG6Az728L4FCIqBKpbA6bzkJ87lYQpbaHpwPpqu3S0UqNDCwgg3q9MEn02X16E4xibz/rLx7NMDtHcwMOt9r1dVU6Hws9TvJVH7THrnSFESgN5eBy53Nq2Fdb8mySTxz5CitvVE+ZjHaYS3hq9Bax+uS7TxMIT4qJE7HGdsHM1/9uPNBylhP04Lck39JMe8v2dPOSJzyQoy8m/8Fc6h+X+5/mBVA9jAsG4vmx/KdUW+NXxgRt//SS2Ib7aGILsjOz+ZZQu/NMeuAsP1pFRTN90rqIVULbJ20ZJlrjoZD1VxHEoDFFGVWCVOT3jGK+vFD06gc3yDUSnZ7ZHjGmw4ZiAglY2nm78aUpXxI4BfUHqL6YQKFDCazUIryLi53RczlaTh0ry7WN4WpWK9sPJ0J49fu6RGUMYZd3+NrRvEdOrS5n+EJOTkr4lNzo8vawcYnR/n1Dq0rCHu5o2BGBEHABJbsFLi/mlWFO1MjpvUu6UPJjXlXse6MtBROT/mQfyegWGmFRQ7Q/O+rJp471+tQF10+bvkExfBoTQrewd5UwhAUODpyeW+aK6vx2AroUo2bGBZ/ZjcsJFfMYEMsm47LdQSq7T7peI2Ex+4/9oIAJGfhidbXA9UYPNhxigFTg83CETNYfYVkoambj3vv4MZNtE/wrIfTguBNqkQk9ebLPTmY2U4UCzbYqPKO5vjaZXeVksobDAJzhVjoU7p9TdFmNMyLyCQJryBSOcm0hFk/pcwcV15KZ/+IIqeQGPkTbiY1haWSnuQYBeyW5uSPHGtYw28cQS/v3rToNAUGVBSQ6zpBt4CHvaOfEJhuDJYZCcxvPeOStdCzaoSQn9nDe8wDc1MXrJ0+9N9TAKcS6u8ANLCLY4UfHLGf884/LFIn4OLOlRcNl7FS1IJgu1/vLm4INkgHt5ISp2vC3MFJHz1zJnopnKS1AgJtCmhJRZDaW6wis8CJ0KAJW0Yy0+kWI3lJ9N8yqJht68FMNVgkgaAGi5LuKmkZWm+ztKvf9gT8hJrXZkM/QdHI6wy9BqVeWa7g7ZM1YLbUv37YSnLmGsCrl/UVi/tG+fZbzY4bGye0zH08VQpGmyd/v++fS9EtasmbkQEIYnmLZLxO+tNHp3myIGwYBZVXjlWvrCiQcsP/Fu9l0HWmLBu3gvuJ4phtJsXXllJdM8iZIQR8Z6zEMs+cqVL7+TYhxDd0c0l4sbyIEw6N+V0v3ZbUlidyekdcz/aIomGdZtmdI+1QUrrHw7eDXT+G3zbTZMXxpEgJc4zY5bH5az8eHzwoo8QUleUKpVRrsErGmSF6GPJ2OltKYL6/C4zx4rHdcfsrQTcWBmrBWMMiFiU4NGtpYeACqYafRyu8j8x7ltp3nxVbsPO0MSoaR8tv61/q+YCqHX3h4vy4HzjCYEl+4ZDtj2+mawuj4J0rBpcDw+spzuCQ2khFbks09lPGxK8HYJl0Y/lNLUxGLZ+2h6+EFSaD22bYzF7dk/EhCWh6u/v1HUVKC/r/Wl6JHtd1V68J9zdOTgbvJuQug4r4vUV3JJolQQ5tecHKqcNoYjOIs6BZTlfB+yHGfGdxTKsGxbU/4taKuH8Qpd/M7fIG5zebrpiDHV97T4jiUNt7K64/u1e/+erXV34aOjfddcKNO76EzIf1pfD+KivBsRlzlsjj17aDPq/lnKHQCLsD+3TK021HNzhZyuwpLRKS3KE0XH/0TqUOr3VqLMcsSZM6349QJDznPG+sUqeS6wwMWp28TAoDKdmjzW6f+2au71HsOzLIeWencRa5JapKkVTYpvwMIC8u2L+/hYGJmk0588rq6Nnqe041NMzU6lj1K5KmSj0ZRiVpzu2FSTl4PBYHAuhe5dtwnRQwvvNqIELVxKMFWedxxB7UO4zpYRe2x0zH4X6pI2m4g6YdCs08vR9B7omy/goQUYbUZA+wJamq7/c0FhkNm74Mp05NSCK1Dcy1+9qp82p8XVkUB4+SsVRJ/Tqtn8v2esmemr7zjCfjLicMb05JqNoL6zzz0KaYkXeStBrF9+T7EbZTo2Fa/wS5NhJvRoZc8QUfS46HX8HIZ8A6LK8zKtROnakAnEEFoonVlvYR71xYuBAXbjtxfu/bteN8WkArB3//qp+3btpi2SIMyK6rX03iCLnzOd2OrPnD6xqgVT35e6NUMpN7EJSz0DRRzyze1J+Dx3cfx0M577W84qifD51mZG8VNbBf+5PxmGGrGOmkO+Q41YnCkx51D+X3CXsNAjaz/XfcPJUXJ00vaQyfYDtmFq4kU1ZHdnep48T4IskzPsYT9or3rd/ubiYLqeBqjnGbuNWb9ZdPDxkeBmJwYTjsTU+VugQmtz5+C3QBX0piVh3d7BK+Hk4mO3q8qJVQXeIqs4hKuRvBfIwwUyKg9W1x8dv+EwESuk2Bgs1+Zc3wzx4eGasynWs3V360wH3fKXZFTckeHZdgtzTqcQPC2hCHhSXyFMyljvrneLE+c+b/YQ0XcDBam1oAPzvKmmcgER6AqnyC32Ic4HMP4FQN2rh4Y2ntrawByV+9oq/Z8hdwQEPYRYiELBCnuGGXDQbl3ZLuUo0vfKU/AuMwYfNXmNM2vkn/GRrpc5WDP+MEL80tbJDZfDNBRfpfcvVpf75u0LrkIIjnU4adaolZWzB2yjIVwNrF7zF//n4N5xHeaGc7Vh1EYRdc0h2l23qFvLBNQ5kHbmX8Yta2Vj4DU6eBN3XyJBvJf9iL4x+hw1hx/7Ej5U8EZr/Qhgoni5r9PxBfU3fdvXICGW9DzST7GV141bvyMDXblFG5PizNjJUVAWNSxIAStz6+eDAbkYeAKTj6DIR6ysFvZAloBLCgSdMFd3ol/WXDQh3BbBtLqO9hp08BfumZjLpTJGRAIHzDizXZfhbgqejNSS27BIXQLV0muwzgXGqYt9McSvtLWo1Fos3k6Nu2qGyFftqQyDz0/bmgvtZyiFce/SLYnjt2Q9BnlmUVBWOtbDPvUgOSizvJDhdiSkbLLP96MJ7dKO3eUK2nZnpb4s4b2XGF4T6gC4qo9TDv9z2SY4Rffb/RjPs76P0YiWADpPB/nQjC2tDRlxt4sdNCIjmMsLgU+cr8cpyaMSYI9maP4HHww2jTPkGKvF6H6+DFAF+jAZKT9oi23gpZ2zavE0xXPkF7a2FTNJ3bwxvsJV+o0fXZAkmouYq6B2+6ccHhnUIeL10QtZaPoZPJB7/Xry/2Nv+JJFmQ/p2NSiO5bYGA8ej1vh5QlWhaX3JMs5gMBnyyIfXIMf4im0WEUnCPAJzq9q04Tmxzy7nGKKEf31kAp6IFk95aj0AogL7iljLVJlOXNvV7BwZn4dKfuZweSEZBqy+Mvual0TVDHiwHuIuXbvaw+OkU7aeAfck0Hc6H0jgt9g6Rxb6dAuaiKEN1cUYtD88y0b9Arq1q6ML9B20/FunTnZNF+IHgsg641FfllDFpQ+dqrIPKQ8IkLx/2ppx0ivQSrehNaf5dwtBjnPHroRGzG/RWOdiW0COPzepxIqcsWjhfmBXSUD7YCvPm/qTGcSnhcriFKew6a5s0AgK03I1gEifX6y90cJBY9REbQ7yW/XB+zAXN1XZQVEs7r+0ajtx8KvVBKJksKj5YFGdhEennMbwgCJJIMdt/pJD6FIcNVegt2LiQS70DAJeiNNG86dQVNYNZmYEfo8oa002xKLh1+rHlBX40iY8Wlv7FqswQFktpyLn5oSdo1jBRz8V3aRIOmhSnrs2wxGwGBEVEXvRm8RZVvSQ0xlKMVWs9Y7nnmJ9jEVuDL08D2ES3plzvCNP3FpKQeSknFeVBXv5T1Yk0/X5vdj1J1LYa6Ffxxrv90ObLHARkCI+tz6+0i5cZTinvgIYLMVnV/OL+m4RCsTy/+9VQPsYv6X2qSSlVdQ3KM1SOntMNUBpb4C0MsDh10xHQ0cbJK0gsR6X93ru63BDYbRZmPISt1casVwVVE7+u3l55XJGJ0Ev6S+2zpNqOAH66RuzpVskXE6X8x6wHOfp5PAI/7YG3Zozh1U27IXGEEKIm13Rt/nTE3pKWA7i1NFdVQKQ0CNdqEsBkjiuM41dd5rIbR4DMnoDva07v1esxYBGU4JWJUJQyejYbI9p7pqjrpHZUNlz2exX1lTAks+WxY6CExoPlSlNNv6AIsE0VdPmHOj4m0a8bigDelTpIL1WoePLhblmhRlkPDKiZvkzz6eG8vLeJjCGJL1+VFa4QREBVyuhcpZm1ygJm9kuQ+8v4yEMw0VO+TKee6sMFRVc/kS4IirJupnw48LoR2aRk+GuDBZ25xnKFxdSYqZqvWlEcemsbzl7wvQg5z2xKxEUsquyGziyzd/X+XFl/ct9KRLzyyb6ComIL8Wam9x6LPNZXvhO0QQZmQ8T2MFjmRJ42WyRzfyLGkJKft94uO0Yy6Fflo3AoIEon3XBygpi3Je932ToU5EKoikvqkeLFACpsBN5dseemiMdHxOJKrVJDdTS0qCcTzPCyz506oyENFdelskwdghmUnWyXK2WeJX2CBXudNUBON/i8kMdtJm52REvmGqVmxe5aricuTCGLbgZtYvigT++E7xltEh/ZgUoMP+d8vaPU/HdhZaUjsgQ8OoqZeezvNR2JFm2on+IliVyYQ/58LmZ2stgKoBbs4SllwiTpNRw7ecL2WR8bbg05aTN00C8aGWtReWSsYsirJ0K0I97flI2gJRRN717wESryWahXUAFZAdyD08j9SIZQm+wq5GkoUkK5cQ3wk1x01x4fKLPgPIj6D6lZiylqvWGtl6KxCfoSQXlNZIHeDsrIRqhINxdrCinM0iMMkveNxhqrEzhnBn8F6nXVY5zUDLzOXpp338I2HycFa2pueObEof3HQgFEMnHS3/CDKwJAyYl3HyA4X5vXUE8MMa79gYELseTf0IEUJRsfSa873vl6n29lFq+GCqF1I+mB5PSyLFvgHv6hG5Hd14PAHTKhY+xzCgOwwRZxygPwNET0UiO9ynH0p3j7GAFEs+VSjl4ArhHJbySohRLfm6B7FxxYJLJxJlQr5UdD+5Vs0nM6CehSZZNYw4FzcpYoL6nS+wGGSNKLVLXgbgvzAbT4B1J4GMS16IKMlo5S/dzM/NM4NI+a1Fuk4qwaewoHqGp78vgp+SkuhLyAVhI2Or50Id4LlHwRon9o7JT3D2pibchFvFi2VTEx6cLX/qorW2YGSSmnu9+M8teW9DIRH1TfabuDIuLk16NFz3kNr5QLPGAd0JzN2IYFA140yqfi9LfBcZI3aUK/Gt2bfMMk8eqttN8c92OmUYKUaHbB9C9cpEwaOYs49MztuGtI0VMqDDHN8HiRP55BpRIJtIWbSyi0/LOC94XhzqGVyuzaVaBfg0f++sV8wy7ytxlQYA9w1ejE0XaCkpM9zbOrymf4OrEaIyQX84Z9e6wQ1czIvOihnSaq/fcFdkxJcMzE2kWcARwWT1U80dW6B+v6HdclWMyMWLYr49iKWrhm7o1yumJKxVGiv1Rx3Tw61jrh+vuNjikpFRxa0F9G7ZWs57nuhaIeT8ZRjYzuyq4WZBEXs4CyfvmZxGcS4/G2aWon2O/UkjqrfdbBUF0yavSPdNJacaaZxFQNejGDPK7SCF82XxiahbNpwFs/t07gbCJkDUvvKjqaYv1SNJBa21RKsOuGJNKO/F6HTjc1Q5t8lqLL4e83gWTT4aubYGtE+D4e9zdPPo2R3dvG7bDrCQosp62YhTaV3B/kEQGqtzvu59fbgA6lFyGe7urhYr3TWCBFYBmrEpB78fWnXUEd1z0LSzMcWL6vuh4CJYR0tg1jX4H0wkw9mkbM07MXopLJ2Rt7/aL3Hl3MjO8h/1lqNlK74QTbgkurmgd23XflEcMhjO52Y/Wsz+CqwkBCDN8SUcd0hvJ6srikURdDKw75ZZMyms8NdzvzfsXreeCzpVaPKbkgWo0BlD+qWqaXziVa7YTSezNkCD1UBphMwE3IFwG3+Oja0AILbwR+VMjirrIkRPt+DMtp+OKLpkiE15AVv3jn19brZGZkhhAsuT2sTiWSjLvxJkMICAGdQY6CcJ1bmQsycrXCCxoxrME8B5k7aYQkl31h4kmnvmUA1Uo5bGEJkzebQNuMeVIRwKr7shM3Y3iowzuO8Jm833ALhjeDbR9i+ajGdiv5nuQcBDW0PZ0CB/GHvnmE702e3iEmWKin/StmkbfvsVh9mXnjLzZCRfht3g5Fu6OpDSsq1DSVUie4hNThGTSTWkOhTKbARv54Bxp1m/BqW0CfvfUJMQYci+HzQBrAw7lHJI8klNzq1wbwtxf0zzTFIpYQcsU3ddDWDMuciKmN+BHJ47B6FkgX4uR5QSWzLqgN2wQK1aLp2hgMJGqMII4rLK56VcDk89QQhw6cy8PCM19olNpuDwdrQFvP+77wiyyKx8Z4MVJNxV5vJWOwvF+aDouZMW5HNno5d960qcPPO89qYm6Zh6UO7MyFx272aWYtu/0+UZ6eThOP3s/uMGRarrYNGVN2bkl0VbM7ZArP2AnCQLuPoIbkry4nTS/RsIdFmPg98zeYI4R0RY41FQsBym1OXnJcHtmKPjfEXuujVQGfCPrCZsaT+vFbMFWIvUy7OxquIvdi2DVp3+q3E3NGG06d/cz77wgHGWrfcy5LJIzCMZHkk6m2QnZCXYVXwMsVhJI9nJcgG/CrU5lgDb/DlVEsXG06BHIuqVfnTyLdAQZYmJlEEk43pdgF69V12XC+sB9W5Tfm3jPwiHn/VmGszkYx+Er49CLbyk3hDBSKuzDj+nzCo77ZO40EIP4ZROdSwWlf5S8wfYcAzjNdj/aZ8uknw3tur126RfCzMA+cUo5mPaZL9cVp33X0mRTUIS2vgtwDRgsSSX5xcJUWR8gZbdeqyqQEEAeDu3+BMlrgYP2SH/le2u1yfVFn5JX9VQ04X9mmABR/KOd3rAYqR+OQwLWao9MXVS1y+0OKo0FlXuirKuPaY1BQbY3Vo05Gf/+N+u4rDcFBQqiCrYhgRAEjvVW9eNCaOsukcJWEaDuo/pWCYGJLadm4ssTCPvVVEJNBfVXAcTIxH4EFtWFMJUy5of50QNXNZBl+oRuFIkdbt04DeU6j2A3vzzP+IkMahLD6zBVJv+xRBIc5fODvnJMmJRMI8kcyMFqxpeWZAHxC68tGFNyl6yyGN95SwNYXwDSIQCPlL9bzjZaWNWvs5puiP2lbEBlDw5vCHtVmb/sD8QBgOhRassChwM5o5g4lhlD4u86wmdmVmhmEXnCyLeQJ0rRtqYIWRhg72ieDnqmPvOkDTWtKR38TeJwrK/7IRYfbNspygrU6yV9YtJyw3I3uEkDgbPrpcNUpISYvzv3beFg3ZN+swedqf3IVKkcdiAezu/KpHGHPyvX9oT6qzTS342/DenW9ctM197UfFl4rk21KxSma1KnLIWlGGasMF4+G3dxTnqBscul4CqNda6Qy8ita7HCzKlYa86yljm+HQA2B5ArJoZy4LNxeT9izFuQhEoEhUTNJQj2pCc/O44h8GpQX6XgpaAvAQJLVNq0yXGFbzb3O54XQ6sm557+lT3A+VWPyCJn1MLbsssHIdFhJcMtBFQYi0bS+exQ4Rq74xNE2CIRSzi3nj5TNy2AoO0gdyBC0/2iH67UB581jmM92OHqgD4EzAzyxDauPnlIdZu0nWwB4dtxWN+meq/faIuQpK2hoRP/ULwIJ9r3xyxtXxfFwJ3YquXldSEnxoPiYD85u0OAHvKOG6+3eBraUiOgvdfp1EjiroeSLLFutuPPV9XqhAReYPaRy87OAkV5tzSqvyfufCvOMTtkpxApWsJ9n+cNM2uBWu4lj1oDjGasCfCt6cfgCzh6UbZanbL/qCgf/iHjKYaavIiRLJrU2BuzdsP97XHkXLYbbfsHVTlXSohKOXOJ+3LiR6ix9UFLo9qieejYk+P4e5wC64jGQLSxJzYt3cErx1Rtc2+xlJaEBynLN4hLl/qOrgBM7a+yswC0Mh2OieA4SR6MfM9WK/FOWbVyoUBIUAKOhhIZp2LOgukk0/DInn7sF7dRP6Nw77MaAcYg6k0gdjQN9/1wtGVSBm+6LwkI+xfcK9l+JiWepXul+/EEdV7XXp/9lUsW4RQmIkda9H38FJj3EYJTrG4hEU9YWtNd2lKI1683cXFVzSMkh+2nuu9K0JUBoAnrYkKVZpAKF9G7y5n/KMZrP2xPuUFSOaruqriffSEX9Euj/k5dgewEyQCFTif83LhkIjt5qJ1LyI4ynIznWl1SoAdecEp+I5WmKBB2fr5yw33NX94q6HIP0jW3Np2E0r1f7fUjqdxV+iCRULU+yAwPXFvTL7HqfFLj+wCfIbOg+nsW03rGTf1haLvAZA/nC52pSDnC4f0qOiA6WtK20BldZUaA6GO3m5ZOCGyemGK4a12hM3BXnbladA/yTRV+pH7IiT/9WOijGGNXzV+K4wmdmRjU3It+QwUCRat2mGkEHhOcQY06pWeQqBGjHkWcceX8/drkk+tYysHMXVk8hLhLGjUVgivK1Ra4K+RtUcZO5fkVkWQ4W8fyo2tafhGEDSsflUH7yj8wsATBE9YpskR+r7Ac8xqdxtEAfRioGXSprjbLI2DAZZz9HAYR7rUHzvh/UPpFvrLbd/hFf7sF3RimWNpiGsQRZ11RqfZkck9IJu/FPU2DYr/HWUdskJHuLufXCvDbKn0F9sM31Hn3zIuAMTUc+tQsO9ll6jnNnW9Ulo7d32jEQMqJIrWQL5+Se0a8lKRp+XhYp4IfyUaTRC58vFEjKupeFEpU4EOp1AjeALc7vZV0ovza8QSl3ru6xFpY0/ckElMOChkhLWSDHLCKaFK/qC/SIfT50GJZnkCr5SgXZRddXq8Gc6XNjIzSdCF+9YlUFKMiri/sn1Gp/dEMhARah97GidLqitLNBlF+H8XoQmdrM3GXBSCN6izNn2ON0OzpCxOuM917OZCw2ZC0DSvNuTOFCGGYf1TYgUbgK2KKc4zm/25dz3GhVpFqs6x4yhZBbiy/6FD1vXW/aIcDiSUoIhwrUtxuGGZijb47Jz8JfUTblzx4eNPbXeYpygkQo1xXonjeouTuJvAH/zH+FK50zOLAtbN9AO6xjfX09CsjKitMVlHWmmQybLoBHBPkC5IbAZxvs3cH1VAcy2X90WL6y/0SXNsGeLBdr1OWVuYg+/wUNiR7QnP2ec7jNrZZOosT6Olwn02Dh6zSwKoDnMFLfk7lBO0p9mWjex7gEFXNfxFO19qmaoISUZEgdTuy7sHgrD/36o3XeFdzLFoFnOJa4yaENBXdTSmVZacz+5IGdVkEgjQt/TxuhNGHGtQuzNDfM4iNZ28Ly9S9WkUGMNAfDRLr4ipZkJxUA6HnlOi4Yb04/Ze8rB+HEXpDGC5Jpr4fN62LQh8o6kxknE1P5/rNmz43jehFlRUvCyNi3Y5St7lC7a2ogCt3Za6M7AshQdbVV2+R2DuuiLEJz0MLhnn/1/F2Z2U3h560PrnhR0Gc/5GW5DwO/DGrR/4PvL046BKjUp1lfrtKfE4osRTS9/oB0GrNW3cYgvhU8ld61sHhKOf4P94t4n7h9zdRXDaFv4ORPHokkY+NA9QA49RmsGMfJLu1/RXuluq0J4fsUUBoa9dL9T0yDJXvGtuoln8aYrNzoapa7E8cR73/wX6KwBPpwCUUlxsBtOj0rnca7zu5FqJC5W0U8Yt529SAI0S6nmWnS8zguQLRzf/gRLaqSQ6E9T6Q84u1cs56dzBMv2eBG+zAKw2V0x1NJX1gC8M2MYZpScdXEKPG1442UFWTEUlkM9OjbR4FurtJNV4IqEu1htlgltESO0SeZMHZ1JM7bNtYegevwPSCmW+S8uEGj7FTSSV0HbDg1rOnt4Ws8DxqN2T/HOXNd5NGboZ8VTSD6g6rLWcoWOwsyeG08GPG6KHPiLRunEdTPNmY74ObRGT1VCHP7nmBYmjnH+kqK6rDyrEoNjdqc8uG8yZrHWBXU9weqD5rpQ6S/annq7P/GiYepA2ZDdJA/GbdxpHYatPgkXt5sop564gVHZamW6cq/cdADaLCXWt1WgK7y11WaQR90YOen8BECQ56pmJbLvzzfWBhUUJP+dAEEK4o4wZv2+IBAFEdNkNF3mKntsLE5PDLA/IEiV0rziyORzLJsoxRMCQV/HlpCkXsaizcHT/vxU9iadf2hOkKehGum3973fFs7uRlqxz/oDerFL0617PqG+VYIxjeRb2IRLZJGH8vp8ITzF7U7HUg8Crs3WpVY5r8wxn8tzGvUUwY5csVu15Vmm1xcs0UL/lUCkrOXdLtlaa4pHLeQgpd/vu1ZzjMOcgzfQaIwiZK+fMZjRLAHUf83TSCOkovb3xPkD0jElmb4TBqFrwn8G4KWr+RM58qhCnlVimQ390m8YLz+fNHbBRDs7GJgHSK+v5Z9cwZq4glnR2eTjnqTy8Wo7BEg24CL/RT1AKzOIE7muo8oegzn8R6qab08LzTcbb0ippsScfjQoJhsr4jKG2pMVczpCYqptZcGD5rxTHFbL3+NDnEUptRMyARhF2FMiM7pgaB/IpAna1AHa5EPt7oBdzMGg7kOdSOpxrPXbdP3l/+QCfCLMpCsxFd3VAxA/IPVvK8JaenCYCadhyZ6rJeGxTUh11+OOAjrXIJxb/EbIy8rv6h7hywPp9ZhPCcgt9BN808JhGIaKwtL85jO5nipQyAF690xJ9A2DMuCx55TSG88fN6rqBMYDI+I+DtFmoAqJB27B/xxN9xMLnQwLcLCHOx4GIFCq3/6i7gwJePjoG/HKNb0XjhuEQmYFzTgtt/uIo1bBX4C+y1jrb+R0mRj+RyaDkRus8W4WW73qbcjpjIh2tGUY6KJyhEaKiK+LHG5euQeYZO4zXoKbZOWiJTvJNNVrWugpXkIIIE4zK/g4JKATQjtaC1qbJ6khaJHxOTS2goU5zGyjmaPKvVPrBh27E7E2iZ/6omwpBARV/9EKeU1m4Msz8Q7y3MzEF0C8VIIqAxB+Fk8qG970lhV/ZIX6CsxiHqybemqil3Qv/cWKm96fPoMJWSA1dcF03dSwSyNMdvKKBCYVYLuqr2pISKPaNRJJw2R43RNE6avh/TNA1tGJ/ilW/e4LbOvIh7cS2OsbjyXcD6WS0DYaDa+og0lSxehZQiDSt2fVdtF+DO7/cEUAM3uju47Fl17rUPkRPaheA+6/jpSYK5Nh6rSwO8Pbi1y4/L0L5SStva0NcscpH0pw/3Y9+Eqw1SDVvRn2r2d8vRC6YhQywdhKWraKGBMILqjiU2l5d3jb1tnQIwi95QiTJW7MAjJD4Plr9FGRGlM4NQyAiG8wSAKUbRCpmxE+zk9YhXjiC/Rbt983pV0VzovJW+90dH65IOb2VS+Wk+MpsRgZ86uEuxeGPyB++07HlAwqFjq0sm5Lvom/rcHSaLduJrDdabujYJRWbbY2QZptvGwTHAiaqsAafE9NQa2oq6hV8+E2YRbdEcrirxyx9JVWpti7CsFfA/egMevH0MR40/X1jQzMYbw6mr01MI833RiE3EuU79cpspC8tuN6QxFB7ExHF8yrFQ4vRniEkTgKc8kT2tC2HgNJJ+l/FwYXky6qbHj1cMtBGVOw3SFMHn5l5odYVrLqhL6R4DujKq/CEsEj742QjUogvrSb9DOh1Mm5Z7n6MI+YHii3bWp2abi25FJIiX3GM/137MQVr4wwQ5IQETnYx0CoXX1nLeqLjQ2VlOulhy58iVxN5d0Q2TEV6MPr+wA6lluGEC5890db42elDUvTbbMcjHGrT7WA4eEhNLqVT35NhLruSPkwg1UCAUz94Dj23i6dqS1MPh40Oyi0W+wfoWYXIw+siweU3qKdQM/IWLUwDjgMQuiK+CTyRgR/Cg+XmfazCLiF1JChK7C2x+ROCl4t2WjYngGRxBWRQqqrNqx1EesLx8Z8GOimBJK3Ip3O0TWp1z6fhibUBvCtBpCBH7Wz0MrsYEtW/6gd/rLbB2IcMxOrxgW5u+/ZBOjd+9Zg9SRf7ln5tqXgM7wZE2rj4u7BOezWvuyca2TpJkQOR8U/bR+LRjmN6RAS7MCfYSPtJWSbZYnQL8vGmJb39SyiYiER2Via1nlShjJEe3JgCwTOTiIQJ5h+NQeEs7qWkpIDJiQHb7VwcR7T1gLGhKAqUT5DPO5zvGPny/DOh+Lo+Xhxf5wTkF5p5yY0vM1gw2UZQ2nhCedQ+PBxACaAeuBYTyBs9aNWvYATPBLUtXJ3H/+rMIUQ3Xz5MJKdV6OhLEEK73rb9hfjPlA0gKO4j120U6VHh4AJvL3WqjaY/KCbwpCzUCADZmnJdpD4p4U5ry6/YuhcWXcVV4dFm5J8qADBWw9jPITjUtkf0lhIJkzhXLTcXQBZaaunvCCxyWh6ifYzNTTCGJcUD6DyfGam2zj4qdBy7DwBaL2S2IxicF7F2ubPDvx0+DEQVydAIF4Utn+/niyxDQpGlaaG5eRQcfYEHaZeHBOfZ8x6KnSsZnB8YZbLVBcEF3Mv/87cj4r/BYDYAaUWrrm/rWPImSVpvPlB3xQvVG305B+bCj4kIW4ZWzFnX7/nApDibPZxncAV04laDsD872g54z55DZylkUKHXF7Y5iFwsc0HDovYpJ1P+XIAb4pKZnw/e2BrTZn6jCeAAvAt6Z8EdXqS/KoRwK37xhZL7w17n2PYpqnoCtRAvnU/CocUq+el+PFEwM2GkhLBAJXvVbqxBMfPWlA8XMNY1+dfsV9Uy0C+WgSzcXw/ylN23DlELK9DPZ1nzFCvyDWygh1ABv0LXhuVuDEraYOrX0J/NpbYoxjl/mfncXN1DorfumMjOo/dWEk/OvdZ8w/66CtISpGM2htGRpT929qEz+kRM+2XpAqcSS9GOrLWVVUVIm3Ez/yIqAWm019Td/ytbE6eeYJaY+mJpelcp0h+4Y1hmcF9J6cZQEJi7foY8n1psVTCzE0QYMX+ScYxKxb/bU9eproUaSNTxHeNhomtba4y/CfLAZYXndn5ndeIjFIsRWRpwX3HwrIsKxRgd52tRs/iun5uy44w8u2wZgayiPbOTWGXUn/BDqak5EZebXbdQHyE0yEhUO5HcDnE6xlAuZFDSKLDTTZz9bWcfe1wy8KhSOwh15cBRibt+faUQgl7/5na6Nl5d1o7iUWTjOhjQa4z2Pha1PNGSn0hZFeICMKGtHJ6EGQbB+HF6+M2e8YSQjJ2cnG2SVpdzXlnkzxYqwXv0s0WM8nggSh7Viq5joXNiF3RJ0A9637p1HFJd2I7GrQ4ZTOWRi8jcZaL/25Pox9feMT7VDPV6TT++0Ri3a1aLS8IABZh2dWfxnBmXDWPdvrxmBiF3eePVqd2ZM5bI9YAN23/3qVLElDeD61xvgRdjkXkl2tqif3zsX1gGp9mzEm6suh1kWL75XC2kXlrCreiNi2pfI+iWVFJDXPd3MBNp7VSAZRp1jpt3ug1pQEM470lZXwotpDljklvGxuNeKwTuKNJw0EK74nc0d851QXL9P4pxZdM7pkmbA7IU2S2Xa/AJRP2VOz3Kyp9oW6FgoQi4noNkoHeNnprbQod8n+dQSSbMzNRZIuL/riHaxoOHkaGYwROCZwqcbK1tUnU2Qt1J+3UTvklj6wOD/d8lrZG7ucjZiCyHxK5XVtzq9lDJ4N1FvARCTUfnLeOLc5bmrtGvb8mmsr0lDDyR5607k41wzglZH1fExfmsXrEjiNLSzSKGb7FVusl07/BgeCclDsQkds2G654GVeUpX7UHaqQBEmJsIyvfxvz85+WyRaoYuQfSH9WpJLeUoXpUt7+Crnl1Jqz+eARyCmzL59OUUBwBuoQAl5VddIrfG6xvDA/RZBOV5AfwjOrJ2xRo4N42rCSFCcnOY7xfewl6tVLetiM2tGLqRLc9k/owyHriX1A9BnluzfDc5xdEUKyuwzWPG+tZGNDV0WLl1JyHPflzcBpj92G0AR0lGaMSZuKui5/LUMn69X9wPKc6FVkNEHEjHjQKPQjuFCokjN+N/6DlMscpE48IhHIa0Ghrc36GwGEiPRymXWKD/di92yfjZjDM3fdHBdwSxJRSBVKHSwh6Ey1/zWZRZ4kk+KMS8HuroIw1UPa+PDVpsSIKvmqZnZisbfHFWNW/dl9n5+wM4VIzhmrETz3k9WU3s+z84SHh2f7dGT/G5WvoisBYAgwm+pqFS0A8xyhy4PiKfgS+6TgnQD5hDEerpzgFSaMcw3yvDZ0+xfL0yznf0uY8N6APiqHdoJZOWqTPnTIbeBLc5dvFdh+mvD+sDtl8BAWzYR7QkSgnx30Ru7TH5a/g4byacurCNvG0lTgpkj9w42uqBp1zMsKr2riOCQwfCRKkuSX9CGADOYGqCHh1JUsk6RwvI9OvM9fCJoL7Sap8NUQ7mAvdB2ougA01NdqxVo8NeGta0R9C7QybiN4uAtDxw2zLTG9+0we68JkqZrj9tJilUV/f4wOLc83GfstXOVF2bAJ6zf56YworQQEDj6QnC+lqyMkGAr0QuAikm0jqS7fy9bYSBz5hekPILc94b8aUau3Kt69QI1kFEmcb19aFQA4bSegA9/hFi61RDIVQ7iOBqViYdGaK8d3zH5qWIjed0hR9e6o4zELdXWhOVOcPCmZIYYXvgUsAyGUoCszsCiTdwOaPEL2kRnYh0mNSZGb6/kr8XfbyUdbEZ7mDBYy0yTDxhkrpIoJmVutN6FHk/E4cTEolaGnv7x+QxQIKZus8IEygpdtBDxj+lC5M6HaJ313pLDYbjpCA+oYl11ISRJ/fB2oIdDBHFLefQmF1uHk7vtSmIyI7Q9HG0qxu8QRWecP8ipKR1o4bGrAhR2KcGEDE6k8r2F7N9lNUZCswXi/EXaOlPb9fdsaw1Sspku1xrmyADIImEs//XiPqI3Jl8BlrsHf1mAVCBmlqE7usMbDEpilt45ia5CXzVqlIZ95Fesu48LEATS3dyXVEjwQAqVbFBttbLfXvX4LhaGKv6P3XBsKWvqEFfq1rPYdohHtQH03ehlVMpZ/BRCBFV6dffGCrIa7OngRAbORd6wsIcR/gQSxhfrfHFmb9Ws3Pk/SikwIvAIYljNbXbvIpKTROSiPcmBDp4hxLkrjR+MfBFZLV5I4usLY6WYmjhT2kzW9XAxxLYCELLIf6lg6p/GFgpoRTm+yQ6PYtmKVvdTHyBxv28y3vTiy+reYBZqmC7x0TDasiMCcA+TxdKgDY4s61MpZyI1+RUzeMfx1qh9MBXg1tI/HSKpcUj7+qTrwp35J3ezefo6UZiEWMPBtx0/tJyaej7NUmUHVRBJfB1q0bsw4yHfui2ZOPNh/6R2/I0j09t9QGeRxpuJzB6DNbaPTOmER6WTXYEGXq7DhzkvCP247uSz6r7MfaasDs419fVF4RAt4XoxkFRmk3sjrhpNSeuDoG5RpjE4pI3rH/ESPaF6RIIJBiAbVU/ct/nKrDmBQPBYlNob0WmW07GhOvvz0m/BXTsPB8qA8Iesm6PsDuOLEEm5+jbniDFyXfndwIXHgWBB1GCyGV52MU+5iXguncQS8T+WyxaPDqCCXMjwPJxGObdF8mBkG2+SpqaBQkeN+1IL8Cbb72d3ySQUR/uO+N9v36KAiKVEPx8EERU0vfKi53JWN50+LSYqgHmF0UrnnHCNpcwfX8ezokGL4sK/rgFZlXnIqg6a8EJh7DfMOwMgTwRjjZ+TrXsj7SA6EaMRroFgxXRIOGDPYZgkadllrCosfuVZqNQwAY1cDJzuD4ocR7PgZYXbCA3g9Jd1PRx7PyRTNad56qFMVIv/9AYYd32opL/KQOuEa2LIoyMUHWsHVeJEgDnTAizkdfigKSmZVUDrztoGXA+B+9B+MYT2q5BETXJUKRLiEw3upTpXnlh7hkEk8/0D3rV1lUxxSlnDzLfFArxdnXRhBNu085RxiTwTISjItGPuj0MQknBfLTi9AeLTT9QUKRG7bxHm7P2Kei6fVAeNBP31q/OVsTuBJZfKaxLodsCxObxFdyJNLV2tAt+2SCAO5/VWcDOd7Or0wzbVGwbXJr73+/PYn3VfNQ4CSxdqgXNPWDqh9ZFVRQbSeb+bFmOpdkO7C70y6dTSHVuHlIY33/KV1QHDJ226atG4ltS4fk0ZNDrmPZ2Lps6qyMYO+Wkmsyw/ECuxfXcZ0zM7vmLjkk/LsX/XG0vaL3KZb2C51I5TVf8fBJmMxHHzKvaXDwSTGiya0f8ZZ3olqbqcd2cjXM0jicXlX0cJsaB81POyuItwEiYZwsHn4gymrnlD0mfAro2YoSC7KxDdL1DQVO+0a7fN1fLkv8ElaXx46Z8EGJ/W6akIr6uEuiFIQB9fHujgNzIzAgaDEYVITJJO5XQkyimdgaTBvra1hUbw4jb8imqVpd7G9dSoQVNPatqBlbm7NLsdI/einfpw6HdFlo9bpLb/wBxf2BGK/YWhn6LhzEvBuRuBZJTDv7HV9WfnA2SyT3HV/F6f+23aOYC8rxO7QQ1FI4/0m/OAHdCwYedzx6F6TIlSh668B+Id3ZxNP3V+Z82Tt/AHYSzDsxyYC8mxyk+Za4Q6u8y70AKpUm1NPP2WMeSHfqCc5mUcG67RR+sJWZg7P5iG4FPnFmWKv1nwwk+fM0IIA5p7xmHnj1zbj89sN0hc81tzI6enBjIyPd6P5GXzsmp9IRHKS506SAEK7IxfjQLxkNK1x+M8YAYLrD1qWXqo03kTvXgYllmtbguZX1FQGpXYjbZzgqSLxcXTKqQ/GhYqBJzZtvPaYGODBTozt0Rw6/vP+hTUJGOAYcEWWr5Mqy4792lLWmElkf2k2HiF5268DSkEL2oQl+VXl2NXgbfa8xxQoI7lpuNkURcA/pNz/go3LD+w41q4eQy20ecjCwekr0XfODump0XPUm2vvNfk4P/tAVA2PLhl21zoFOrSKjd6D1AiMtz/f41uWlBWCDDY4tDRMhyGsls4GW7P8b0/dGx6VTgC6oCCWxMyJyOgl5RPaFDE/EzGGGL9XUm5X9L3crn0DvEELm/Vx6HwlGWtnfZK7dA8/zJkr9b7PBgLeFlmXyfUBxZHF8kxgW5tcxvkEz0roS70jNLvk3QNCTUIwCHnqk5NRDEaewDCzjTR5lKzNzx1RHHJNiZZJ0lXrAsSM03iKPyYNdJfMwUAvRlKP49yIx7XS9cvseBWVvGNAc2I0PmR6Xc9KjqauqjgG/Q8i16OIPtQ2Ll3qDkunTNq2O65AEFG5qycHaB2/159N4n67iMEpyNowNdkq/ZlDxsX4dRKNvBUJaYqhID70qa2Rgq8+AzqTaJhuYrqrDDO1n/0rWggrBcFsYwo7ujJZblKGamFf+3B5MTAXNUOKn5PW91Gx56gtqTqz1dYMML1dFR/KZUZom7Wky7v9EfKnYbBseAvDuBFBFFCuXnhvWc/JS4ipUIe59Ls/kL+W5lteo1xt5bkJYfug17vGw6cqrOjTG4nQXZ+RbEDCMTf5JZ4DBcuVv+tGPyucc3B6R9NMF/lc4ubulrqcBPhRUjGBILbQ+4uBJ9eUHMAj2ijfMskRMLcV5FdgqIWhiEvxNVlZSRrzTzySfBUjZHCJQtbgDZ8nRWLwk6rQKWD5aSHuJh0vBgvlNTP+a4P7p59l0FYBPtoNpiFl/dOo05KHesQCueTxj7IB6io9sqTWxTu2PK2C3ACiXWNyxs52441hxg3eco87pSRV1NUvQeac35o3tgUpXtmtl2yHh3QO1mQ55wSqIri3PtVxJ57l0nOuyav/0ixzLEq3QlLZmLb8Y2JVlrdQMjhpcC1j0DS+VHrYIB4JgyXacVu9PCRoC5Y2+p8qfeJA3OFreaabxWxz5omyn/l55+ufQkO5e9iODCdLWl2crwLrUpaMCi8EUcVXGb3Z8oBCUdwuuohn1sivwQp1O+DaRFYXIbHQibdPfq4dU8WeiYJ4WKMlNEuQr/BRIGwOrAIM3Ppjmzvh27Lyx6xK14sUHgNy2ggNG57CBbXznFP/0NVrUQef5mMdso3AJ33SJxInqYebzcZ2pEVYHYczXE/+mcptBHb4ANtGohwQabL1xmFHav/wFH/al8TKjzGnYiFLEifJHL7OJD0x/rtzWuCrDToEWPBNtRKXFZqz/kBH6gsxzy/TUzP6R+C/A456FbGm8soK/uYyafgNmX0re6fgXeehUvtDCXdAUJElJt7AMv+VMdIrrOK7TAaHo6E8Khx1rq48yOqMqtC08so9cQh/AV760CiEtSm6PBL7JKCZBV4m7t8Gbbc4TQRawpuwTFyS/vt1JBnAQUBDPdEddlJlVAfbGy+OKkohOw9BB/JY9rDZQK1o/kpfl82umHijUnj0gVqhJCsrzUxYl+ygkRPDEPZqUIo/+AtsGplmBSxL8bUE1iBc8lCtShF2iqMC1DdHIH1DcucbSNtxOF9LY4IMng4T9eTYzDr+gnOPVxWBYMambJUexTzxyvFOneFg3r4FBEHqG3QZRgnKISYUQKv9B23A8vhFRe8uNZpBtiMtXqOQlVEbO/HzkRbqVaGj4s2XRVlhO+ewkvEaTp4pNLXG1OVF6ncxf3Fq94KmGuG29LLsFI1fuX35J0TsRNGo+TCioyTrXLVEjPztNVQL1/q5tGSrMPhfJEaQxHcrnqhVVqN1gfF+JK9Pgcud/lGa+Ig7eKQpJuUN+PYhBYQ/b6ahi4nLNe5+d8rQlfK/gl3OQ3WDGWuUMOt1YlBKoX+99JWlZr6tTAVgDF0NSHs5fqbU0euO7cXKnvVB3taBFHP6/KKZCBfGqzNo6DgZgiAELh1EYOni64dmOWUuwAQCKu+L8tnTFLlL6uKkaNtO8YGlOBVU9mQFYx4aGPgGEI/HTycxYXBClfKbmSErtcsuhalOh73FnzRz/thPjvRJcRwPtZmCHs1nYjivLMWWGprl4fRUOlrCDiwNU+9TZuaVsuCxj/4DzKfcla139igH7Z+0uskWkEq/c0mrsRLlVpl8ln0G77hwK9rLKc+RLeI6KLKy3Um5C6Of3qiKNoY/7ad3EFvdP4VICsuTMTii/bee9efmKAiym0A+l3hS7SofuEJ46In7BEO+Kf597wnd6s5mL1d5zNRBdOEmfNKyPdUuCW3u/SfFQes7nYlfV/B1DOE9p/pmgK+bx+eZdZUMu44uBGlaPvej5wxU9aumiyt/uCCZ4PyO0OYfFAMMqTaYcI8GxYeHO/3tDJsJisLleLpS/gvPLbEksIm3R4OCJ21S4P//uyzQ4EJZyYmWZjtknKJbz0vFEi0zDWnZHl4kvpMSPlVI8cEAG5r0JoNN59joEsMhUcPZ1YtIDYX9cnR711x6SQEnBGgTz6d3b1iebIdotlgqE03w87xlD0+qEykcVizaOB3Z+ocaMGWybZTIdpR4niV9mDm65EzKK8VQq59iMlABk54A7zAlMdkYNmaRuWJN+bLJ7RqEZf8vrpM0+3cwD0NctuwJJA13JIJVFlPStNIXzAW4pp1OnTx3rMZQfF+o4p92WDkF2tx1MUdC14Er9l1RlYsEYnOubj2IotL4tkgKwnE219ZsjXb8PJFkzakaWhRBJAkgbR6myiYFsJgC/lellsN9g1ML0j4HX4rwIzHbq20FDkBdfqN9SUnIbJf0QQr+QxHx4f0kRekXaqKZYUXYMbRKa6OObLPOaKGft7xFAgT2pHuSw7kdfloER91zsJPWQJbkAzyDFkkgUg80kW7n7n+WBN3CMXA3lU6QR23Ipx/98577h2OGkpcp5YiTX/TikBkcza+iwBGNBi/j+GwW8tGbKxpiSNEQqUDdqfscbVMQ+OSYGoeQKSLwREfUGDjR/emc+ZAJsy3sraTZkpHFZAI69dwO1dvsOw/Q+O/2lgghmEsk6NKzmfI+OYuOG2UoagP9Le/y9UABk4VHk54+6fW891qe1yVDT2KUc5hNeePBaQwVb5BQYPt/+2xEpqsHC4GY37hXyRSGvfwYa7DGUDbMKd8vud28h67mpOl7fe4uFRe/HOKf3TFs+9RX+QpL0+C2b4R/8VfkUQOABt4tcaDV34nU/UFXBUDvPYMYe0F24AZPIWphY9bLwt+tWvmuWwhvAgPN1rxvo3hpXvQNSPsVKgFUKENrmSCjWPYCUoQfJFpepI6oqpsVwJt6IlBFGO4soABNOS2KtnF9P7E9sSLK1WWOdGvYNhxKO5/D5ACMSM3oLy6XvjzPe57hP26DKKsIbhLZqcz8tJOcm1zlVKV87cVqDh5iOgGkNIKp7JU8eBp4VRPvv6peu3DR+ROhro3GOnpo6Cdltkq395hUi+pDXzwcONA2YjC4BKvX3JGZi77wJboSzwwPelRCe5297Gau3hHdjkNfDMaoCdfo4BX1IthlFNEHUm2nTsuiPe/rOux7FSlxIwT09NqnvyBmWQYcleqlPEreuoCZRFvXL07v84AxlxNdJM/atDmCjpmzumIoYOf4uVqV/8ZnSwV78WW0S0R7AwI0EDq4B6IaI6AUBwPrNLY0eeSw24zQ6qVAgBGW5aK79Mg+Skj4XxdPl8axMl4x6nwmnAfEBIju1ssp4yr/gdi9kl+ScGW3r5NVqJ1fXRkW9O0A6JBottvWGypQioSH2C46bepNpt5dXRK28XY0hseEnW9fDBaUMHziavWy8Q7jttulrsjOd5WunqGz20rPiwX/3fdKuQgv0g4CDqGBMamo9htCyKqN0qTOxWP5MmZG0lur+eIMwtcrfYqJujT19J3dps8mrCySt1MRdmlNIykG8cIMszw/nMlRV1DmpxNn2zf3gflXm1sXSH00EqrICj29dnyNSbIteQOqjPLqBf2QDDVVCAgcCz7vER9m5X4XkTIeB4ppqaFa2UHE05QSkAhs7FkyPf40UFGlKG8GnrdKq0ZLUk9m5jleTBwhdDsYP8HCDKRE6LS48qLHD4pvSl3XFvmH8KBEmyeyNwwJzAJQd8MqhmKsdandB6Ec1bHOw8agmVGP/vvY2C60X8AnR2r2HhdkUbclW9+ozjmxmipA1AJIZnqxg4aa1Le0RHfU2vkpf68y/rFMYgCXue7eNqxoS0NkOw9a9/WcDFJOh0Grb8zYjPgaSDENIFMCM0H5OlIqq2r2FKGkaQSMzVm87r9L7fysa4xxVMD0h7CIExLBVbCe1/r/WavK3yPhHVe3XBjyVTDOqI4/90N/Cm5KnqxFrVYOHbwMIXa3GwNwVME+38OpXvNwD6l+jN8BDCRDEjGDFC+WObTdm+5/tfm0QeEfVUYFtA7gTobiCnl8rywroMyBHNClofz+W7OhssrGuos+fRhh8kBA+Ni0fYdhKK+qCZaY0LUDpn17UUKCX6dOZccCYzSsD2iSQP74pFnhlkOzACsapdT20zbjF6ZqLgELUPT8IglaX38zP6zfdyBF+NjNf247XNtmIz4QCO5iRy/GcS8jjaWMfTxI3EbUvzrprtgRQDOz/eMnyVQVbbFiTMZfhfQLeu+j6iY0Qs/QYGFdHefwzAYuVpPhVZK/tXsy6DAioLlmNDzAu1eQ5ihCnobO+MOZtSD0+uTpiOAvPwGWf52xDUHj4zbdFtZULPV4c1TmWflDGMkg/Ia6kPHprHErwFTGoBg+1D6oX8lSPdz5srAF0RbktUTmq44+USAYYowZQOVbM3BWMc603Oy9SQD3buNTgzJ7yaMBbo/pjkzVrpW5xYH0Ra11ykiz32vo4nBg9Zvm92KHWhJm7uQJV5DMPA1JHBWBMcjz/uZupwXqjoTffeHZ17N3waXUaR7cZDs94ewlhsbQrmI7/A4zJDUZj0qKiVQhn3f3AneEhDwl6GUdCBdKY14q9n6ay58twW2PRXXPJ6UE6TUs6oqH/0xgDpP3bx/mfcCUy5oo91agCPtpTfowGZ0tyw5mIOsUqvdURDhjuWLX/WIqaPlYx3zmJ3ahTcxtC5xQgKWrQskF57LaOvwYN0lzIwz/joNYkiZwLyB7Joi0CsWWRC6SapEN5TClIisNQtNPmfwKaKYb+Hguo76RtcQMXdRZWjEJNHq8KZKeg/uWWDOW6aygLP9JDrNNW7JfWDyHPR8GL+29zBAD5FY1WZXsmYfdKU1VTLLzAHERJJGTpwKZH5k0uZrDYM8zG9WX+RVDM8bsmN8cI2wKz0Td8GEq9T4DvY6FuhMsqPGHC1tkLdxuwBYP0Lu2RvjXaxodrZhKfkkIwGcfm+lFS4WMFPCz3FwWwuvNLNqv7c85xnk3aXWl49yCW0YTzTqwyKuKWSIFJum5G8BBjvxx2yDOZMh18M2WhRGX5VA0p3eAilBsGa54P+iEat2c0lLnTrXg7fzDLJrjO/213hRmT/92zHwHShntUiR+9KUWKWRcx9OrMWfefEo/p2FR7dbNWoP/P/se7JJUfBzJixcPvTzMvSTQrccDAmpwoLnh6pnsAF37U9Cakvwb0EZzywhYhfUyAZ4oAu4R1X55yrbJifKRbLIC6NaYqZxbpzV9ec4/SFSjJKEvmVGa9tHfUJayAvrPPbVHNaxlbdJOOn7f43GTTdGGufXu/daAhuYtol2y5rFVUxlDpyKCfYRz3fOyJZEjhxizetlF5kpK8kUuEpKNWnSG9VEdmcn7Tu0/U9Pho+IZiTincXepD9zQXGusmr6j19TKRCe4dmbGmRl1cDDNABYeOKT51fHc6+d1Q9T2n1UMmkd+aiSUgNIrogqtnInezaEs7HmtmpjKttWg7ulLhPvEEnGE5TqPY3iCItPzYojGET4V755b+cNmqdG6OBTlbYjDs4AAp+ho1Iq8R/eWa0/FOyB4K5JLQ/WqwpaNPuaoufHcJMEld4peiw/7uIRZ9U4otV2lACBY2PfSUUu7vJ/iZUtvPoJmd8K/BmbnNo2iumTtQxEeARnjsHdzf1JrE1L6NGFsI7t81c5GCgmWILKM5pWDA5HO53I6aju6916JkUl1YcYyk9Hwwf/waKzGbNaeXD2d1jBd+rriDyPgR5p32kxAb41vjMM5QjUrVztISMmbVDBnx2qArnLJ6ECRGZcfK4U6LCAMxRtE+Y32MobWIYqbeJLCsaF4pCXyZjPABVmN36NRAavX8RXO80JuF2m/Snmg2NL0dSW67EVH9I4fcFSjpL73r6ohLh/V+uK3786Tpz4u9p1byZEEFVjn4eK4wBNeQ7DGhdbFbRTt6/9b55EBMfJGakrqZ4U+Fgnh2uIpidUcG+iBjHE5HMRX2ZKkKLyYQElkw/Kbj2w8OvDaxd8rzWoSUnwkiP9DB4L1FBdrrf9anTqNfPehHTBlyG9cgcQLrR8tQEZN9zuxs8BV1Zf+cIk9kSStcCODphQCbZP7NYhgTuqPh967gyo6DhJVEeM/gq2arEo3NkVtX7D7mzM4zzsjwEazeZbygY6xwP5F5NLqPJ0Hxncni2XMn/GdHQmTbQF1zee4LOhZaDlBzMZLsKXcJ3sJsBmPODcSW/FKYiVgzz7wLdz0C3bFpTwedWpIZzG+H0kpS6hOFF5yNj/xUGHEQK75qxYUFuXq2vFITPVf7aaAWUF+eBV5VbBqFcUccHNaTmGaDdRTdXTurKJ8ATxX0DHWz2qNhGP4nrYJRCKI12hvvahdfR6RlR+zca42mjybVuHEEGrU2KvnHy9+mmlQDH4jYHZKC6knkne5Q28ldgrISAF0p2u8YVTy2bGLZqUkIV6zWDXi0DuZMiQhOJwUgZQNnrjzpboxif7CaCAFdxHukA5fPTubF6aLOTWCnS/EP8ZSOIyNGpkn86BVLEgxNoCo5XDdJHdnSB0Zy+5O4NQSsoKdZzikwg0eSvXAE6j6WW27irlXjNHHxiuOY/LaFsSgXv62JfK2/O09r1DMjpxv32Y457Wd8wFBf9V6i6CdLP2Z9qNFsxcP88S7N6b5FAkZAkO78T3f4mpUVnXed/QQC1AAudBr+gg118i202+jHf4m1tBvD2iwt/8PqoAWQSajReU2kDJ91lZ9cqfgKVbzge5mUlKDSh7aeClFOoVz9UEdTQyNyjj+u7JaX9DWyqtt6955fcvBJF1aKEjjPQjYV4+FQr9Fnd8NqWavBRL91OUcILzXVselzvLQtPmmvtdhkUNi8G+O+b/qcVyHvls9lJjRGbe0YWtuq9zXA02yIjtBjoQd1vY0EmEFvb3u3xiPt9Wix6NZ7ljWQVbw229SAPrh/hsIECHTLmxKxWD3/K6TUieQeqJIfpcIoOQcgmvHDyyRUevzKImeikRzg+ly1+qSicz7hh/DCm/39Fyk6M86XNkhcEgJKANNt1matUHBPuMmqkqR0Irsee0uIofjg8efSzC4Ml6OzAV1PuydANODV+SaVqKrg8qTvT2ROpiQHqoOAq3EdFRo1QW+1ak/AYmGEVA4cF99A82GRm5mLHhLHqOSqBVNF5d+tjFko2morW+bAtWqE3Mhi2uYPJEeL+puWOoJaLV9uHtQIj2GvjqEnPiF3gSNk2kq1rb+v31DDwcalu1nsmfE1n7J39uQgliDyyoBoudkZrUtnIUrDsC6iGs/DA1YU+EpC8VYQ4iw91D0O8kJIRK0Zo3YzUzYnm6vxq+9EDAP5SWf+Eyupwlhcyq7rgfu0UcsS/cyy18bZBvpooyg1q0GNkTJ+MwtXBtDoaChHEqMdF/a7GjUgboSb8jHDJrfqRhQ/bbI62r8nHoOa6UgOaJLxxg1EhXpXmkd3Rch7uNxgpPzxP/mBdrGsygnoth1z7Q/YLYJb7LwpuGREdhP+ef4imi3CBmJrq9pWR8/s43S4uxqNYHUv9ha9RBACBhuz+S4xTQTZaCKSoDHnxC8CxGhiHczvJUTlt4rrWQpu9+AvsrR2wMvwqpTTd2ETTsO/P3JJiLBUvcs0TXCPCRY2h9Nx8ZqMz8XSEqa9ByDLoNM8PxxK/62v/Wkztb9dlxfHsl4u4UjIZo5lD7knNDevOZvFRYHhwFE22lXrX+Sffrt3y9R1DKaG/GlAPLQQX/Hetzpmce0TT69U3cFZSUWj1hcJa25OoCXx3O5jXSizjPu68eF6JRu4ly0GPmihJAcdY54LAu+PeTtHdGWaRfb6RVp9zxwP+2PoTSQm+qFhD5LkhsYuT1IwWLIAUjU9P0z7IOUj2QP4sYABt2vX5hJCVUnjOBPVGQTmwyR8LSRc2WvhlmD4DMitovW8AmruHvsuxxMnY/ybXB0f6jgvY+7tMu0sJN5r4DBEBXa37SH5PepbiAlY5L6+09qF9dbg57qZdXr+Lkj+9ODwIdoY9Ogs9QXAMPBK9sNLNDM1mFaODMVpqeBBx3+/X8BkyPofOmxl+kYJsG1PP50FDBXj0A4uVUwSXOnyDvjHd5pupMiy5DyOMVDjPDi22YVTeKKPxtGz5/wLm/x/DzHO4PBKlriUyR2fdazZ8MZwZO2yzm40RwLqezNhsNT7aqhOqWBMfTbYcyVtVzrROKLQ/cw8h9MBYgLQZ5m7RtajLhjAmwWRubbOysVY9+MbTxulvSqQymjxTj0/yGmowXOk8LorLHbyciHZbi5Wipq5e028xOnXPq0SO1Ei/BmXFCr+iw4toQwld1d5KXZJaq1eDPduqLEuVRpKA9CzB7KJsTTpdrYpMaOsIFM7Wgr9Oh/caoRAohQN6A6HSrmbUuxffYlS4ymc4W40QYfauuqpQ/JTXe2l3gW1vBU3Q0CQWi+YnGMAlM7QCe806vIrrgQmejgYb3z21bFn0KNZj8qMbtk0fubcrDYYwmBhjZezZtAK7N3MQKKCODWwtmN/WYEGctudKJzRB3xrBGIXPbh2oyOsQ4psvw2packPl36ulG2AlW5rvS3xsDrZG0jPgcLNOBZVquBKudvtx5EyYnivmLREWPn30cbkfL4RsfTwuJVSFZZJFh6UkofGq/bkz/WqbPwyDk8xppCVNz7JQstijvxEWrb40THMQJebLnzyY2q2jx2SLecaR7/0b676f5ddR3aDQqQxzS6YlPvFcYbw+8vic5SAk75H9CSsEorQCVlJSk7DU5HBRkzDnV2QtTJe9fsfqy1sQNBXqUXzv+3HDVDSjlHNPKEmNGm5+zlEP/Pa0mLR8hxOG5PeuHfsO4YAaC+btxGwKVWC9Se7tv8fBJBx1n+Kox6GyPB1SVukkNQkjh9dl8s6dR8uwRo6Ep3zrpyoDHwNvpGU0zV5/27gpveUjCyrt2ZF4TOPsS/WygLkfE2dbNXsNDXjU0kggbh+REnbrOGVNbeYAoc4ZX0aRdyTYOFzlRKaGo4MoHLkMH9FMwYlY+jItBYVbIzsByLIUmu7xM7N3q4VtOAzdBtYpwYx/5yTIIJ9yh2VZWg/uPZimDRgASUeaIeF/TU+n3NBLOkQvsf4CKuJi9s4FqpE2p0HLaw6yIcFU8mcl8Jx6XPWv+eL9Uv+Eyr1QVYQfaJcVwJ6kjFn9GSZ3uvbIxaZMwi7x+nNLp60sgdzogotqc5oVT+LDsygUDk+S361me7L2BWYFkcDER/Rx+J0tgDZ6wwKRu7kFtxCpqtt19WgsF6LzpqmDlLORvOsY68JnuZgBdo7ozFmFR6uGXxbySNeCvPKl92vkVsYEYjZ70nSsNQz9WiIy0pcd4Cjnd16gHVj3X+IIr+ZH/gTnYy0JQvVtpoQKA3yqTH8ZK5WAWFLSXjNeHCwtYmaan6uJoOWW3ktmR0n9j0uxSEniCHfobcaa4adhh6U65iKCHer9DsvpoFJxkj5jhGLhPSjJ+hLddzatV/1Ocn1CE5uZoZAMtgkhUYN5zk9+VUjJxOTjDsX8kQFan+fCSw0rK8IhXNp3dynfHXSYCNq076Pn60lpsgbLC41pl75UNjAtdkXJ0OFBP9SOFxYd/qxoACmCf2c4BNjgll3P8P77ikGQPLbKe6Bprf5RR7SLTcoLj+WEriYD+XvlnCQ6gwN09MIkc6PH+xS8JfJD7iyBoSsLx/L/1AzaxG7e0eIP2dxroERhpC6jg8arrg7XQBksDHIJZIPRhy16WjWaucMUOLtxrgBU9rezETjoCtMnBYdaOAagkVHdueRkp+p0+SRoZ4ejQaCwhOiYRYYJC7NsV73oO8dwYLioC3qILoo9B/eMud5uERJdTB+L3gaZcXObntZ43fegezhpmSwHyw4dM10xfsXF1MY5XAR1XmGR9Qz8Yrc2BSBiUUf1wSye1tGQLKtmsheBI0zWEKzJu8/tdWQ84lcWgnXo9INPwDU5XiJi0OyBQbwRH1ahR14L10g9kAYWlDK/0N3VzcgYYursjTtw/2wSHmfTGJsx5NOXmMmVliBLLHGu6G0jFBLZtUkH7EzFzorhlKhKRrLqXXlXpO8crQ3CHEcZLu9XzwCc9SvkPe94gxwonijdizLHtGfLLKLF1cdtXMFa7Mf4P/JQHiBZIRXBzCKoqPaIuvh7X4/SQdEJnxbsIECUF90ZnrLUpBjTXiX4XAc3Mse7eTXKyZp8Q3Sf1S3esZyDQl+BBER4PmbGOeQ+K1112FbEeyqQZg56WiQ0jRCUmP+Kew9A1ZxSjutLVOfkpuBwoSkP4RGNoe7WrmyTXKI6nk1Tnz0oe2Vm3PjBDf8Gwhe+fwAYSAjlPra1TtCj1uu1GcdIAm6ViQn9Srqf1ym9fPIxInLxt48mCIl6DSTi4ZJ+XkJrz2dXWQqhpSF4nNWapdIjJH+p1Opedufkw0xHlr4vORb9BCJ3W8vAPdZSqI7VxbNaaOfqhI/8w7L9horVKv7MLnEr2l2XgUM6+i5Ix58xgRlYVxa+ltEdaupD5yktPEOlldMIatEHTM9j7h7hxVvQPEbtQP6BmDdVaPz2u/o7+Aiy4lsXGE+Km2ss6828uqY4y28croxcwQBaemP2+4hEA88WmmXnQTmIMFje/i5qVzP/dynhApy5GEB55hU7+jPdveexxyrULupZB1hjyqISvKscuKXOXZUnp8dPLlTkOIlOhMu9t4Vx5PLPIDK0SdUiZ95AlS0+/1macnq6hXYYejgXigt9NePxN2PY9CC0HftH0q8httvBeLZ48ootbmSIZgK7/Wm1zqq/lUDZBL6CYC5KDyLg/WfRKIQMNyN2X432uLr/f/9AoV132hvDNWvIbdgJKmzFwnqjd8+MjwrCINW480Y/0ve7EpvtXHg4WzJv5MuILg89gjdMk86QRO9Q/YKdmb+HV6eMqRTq/oudO/E6zvH3NzGgHNz/zI4Clc1kXUMDTrnDpBI2KbWe//7iI6d1A8nhX4F+4tGki7hfsA4VOK83fdLmcdAGqQRjtItVXa3J7vhE+x0h3K+fVJpM2FZDdY7gVF9ME1rtQmyQOE+F7b6vQAUregqMnIegpxtIKRhyTvfx+DFWZLf+VUZHUO+CicH8sE+9LpldACFUpG+WMfE56X+8xIB5l+Eu4ij2kBUNYythq4o1kyIEuD1kt9XQ97gS9+waaIHokWae6jm/Y8Govgmk31Z2M0SBZAIeudbA/y6RkBys3zsWVHoPxD73jIs92cougppJ3Uxf/pQcoOw/qt20epdVJgHhT5/Rg5mNf+bvQ4LJnwSxs7VE9Qc/myZF4IFBUAom49bMTIghVW6RJ2gfXkP6ovc0THTEpxZWx4zTkARVTfH75vftaIkZptS+h3ERciwL+zFBfxojqrdRqqdkYWAVmXpf+ueckOfXPrN5b9eEwl8OJWgoXwyPM73RDn5ix09+qYTUbhIRquBAIHnO03H3q5TFdSXzP+sPDF+FV61ALiJwLttts7/NF2qhFJI57p4sixeZfoEtm0Dg5wGwPCH6tc6aqO8oe5R+IkDR8TuyFEN2w2kBdTxxvejaSoap3bQlCW4svakUIjVrpe7zCbbcGL0xSe/T3hysCfb20Xj0oFitmmY1Q+1QAbHJj3MfeeZfxuvYYoF7mLnb9sF2SPQEFrRwt08qapY0ODw4ReEM3TamVg4j3BvgKWWLIeWrMXPSM+I3hBzjUn6TbqMNWIPDWj5FBYrWBwXYB71BOpmX+5iYomjHoQ7LUcQ867QRS3qZXYnBbLy/FO2tEGfzE/rGyNxED2nvMySIIs4Fx3fZIsIZn/tCkocG9krZ5TWha4eDI3zmyCQeBMYsXlRDNsMfjEEBFh6/Qhq12c9IUp606kEY5bwbG/QnU+IAyJhlftn2f8iRL5A7v4R9oAJGU2GYjNHqZUGg2z6az4YMtQyXcV9X9WBRlaYnfVIRsmuVGDhDBIoG6C8AkCK6LdXd0NgeShgVCNpx7iacd6L5r4rVi1Gco6rCBwBfwyIJs4Fhnq8IZrURn9zhkJ2FenUPijnbIom4cDNJT3zqMfvySGt4ko2KqwoGDH25QLfuWMbcuRhuQwYKgCX9VgClxETR6DM5DNjTv7F3ysG0kI8NKZ5AZDzjJnJD4VVPwVR/fNKHpzgM8QQGSapVEbQCuiSw0xjHphp0eDxZeames1Mp9WwQ2puhmhj5ql1Lv0eYJEpN8RFa01yfNY0KZkTpYzcO/Ckhbb36k9esVXSMPl1G/K7/sR9Mcqvz7tEmdFwGaO02c6azfLxlRg6byx5y5aqHXBgH+N8X+0pGSjHsaENs0tEcJU4XtLrRLBJGIFVEe3TvIYkvc3siaU1d3xi9t7TPq1L/+hMRqojqmp8jBLyo7KEuYZeOKHFM3mUkV+XkyhiFhmwxtLgSsGMbh8fE6hCR2rTOIinlmsF74yj7IpViQkLbyCbrvDt5/yX6I7Y1abrFs7QBI3D9QnlxlwbgZHvFTKeaFKcI3NvUQFQURMimQ5M+eF6vwSlYff+7/cWpYmvPrIh9BVONzVYOe2tQdAWWT5fJSYL5Upt0L6Dl/pZObBEdo+FPC4b2+iU09eJ6vb/kc2/uq9CvCUV9KB+C/CPAJdOu7vq8wf/Yxy8081PEnm7VGsIzzoFYnDvfYTUyPhdXV2yICWljxWqkyEe4e1n+SZCRACDyiLTdzj5Dq5ThMdA+CNJhV09iM2iW1Pgf2XiLDkIpNo8ugDtNdVTMEBsO+uHzrqEI+EwMOFr2gevD8TkmyjvrYH9Bw6rkARUFwc7DRpOCIaACn2Edjv7bmiS3MFeVgdj1y0Rv+v1DYqY6EwHst3CNlpq6XBW7Q/fu+F1R20aHUR5Z1LIZ7wvY0E/w99bKzAyUjG7671ZUYF6F5+Ynv4Cm0twLZ+GTrBp8VL/LMeq8XYgzYldrklMglyWJS7iWBhdA5GraO3m3rO2AorN4N62bHcpIhG8kbvIkybnRVTEWt5a5f7iIYJN61OO1gLp+lMKa9CuaUR/y9eoF3/jHgqh6iPSadglFYQ/GTsLkzIXMTFtBelXwJHtvmQtoXItuOsLGvL2IK/M295YD8SaNfSND8zTfgUXGYQRyrzsPYC1cxWOto+YkW9R3EinZBFUy/5HWXF6WeqLcPADGeJH3U642mjV9hMqA/GY+7DcN2bpls25VizlGv+FyH0qhDmmd0gUS8y90rDX+Xk6y6McJ6S7gM/DYcoTHv/2NeKg4rjMw8TqrlL9LBcLKWQxtuJxVX7ObKDCs6fNlfUj6iRrGPFdJD+ziFknCJKgixZ5RJQEQZi2MefRmUYi5crYu3Oh50a5Jf+upvNzFAo7KhxO8WRvoqnLO0wvvdcPsaVUOIcvfZoUierdTyFyoxwnJI91KCBroEodybtBGshuLseewOL8RJP+H2Oqsca/SYdeeRtivXY+FFQeTQ33eeX3DdtS0+wgHXVCCQk/CkG/az4aY+ExO9eyJRmpeKAXose57USPZEoRKo6m3uIY0rsGhjw0xAS7X1DuBTFVuo29v3dChgu70cPjpl5/xQmrPdA36PXNZRWOszr9FtTYYxG7dHUooremnYo1QnUGWsN/xygLq9TDGLLhVH/pc4pD+15uGiALFzU4PINmfD25G8LAsJea1dQlpC1s7rkYJUQqIwFNDY4Eh0dawLn8fCol/rhUCEbEHM1dJlCBpXxKfm7zt/ZpsbXgy68nEkEoLjs9rk0E9GFFZoYLZv/4qZR7nl7qBbeALu0FWvdWoNb4hCvlkME+i5nbMafn9uVxxXlpXBlOxHA7IKvKJLMXQanWkuK9A+2VI1JSDoY06+R0/g5TPJIHfO3roljfhM9ncx6Qrk66xY1H0+2UgF+oQgm28A27u9+T4rGo0sT6suA8Jdwthg1T9gojZro33dFb5pubkZ5ZHchLzsKkibaR3DHxf769V4iImNuKKrpgMMK8vcvF4YgFx9Asca63MVyNPtp5+zXPASns3bwdmsxnn1S54GTdkB4DwX4L7JXMnQGqIaS+mPgWxbIZbFcDNIrMilEIEGFczfvcACtmReTyzqnpITyfsh5QK4RKX9ZWtvUy4bWXjsLYbNV7MrrZsT82c9cmf4f8I0sSYqVIlcUYgI782imxBuEKs3OWcogWDmwlr9TGLtVSSTlyzHUW4PU9f7Wv06gLioBSoAf5esTj3FD9kKtTKQZfTKEIOcCYWcfIk4IkcfoFGKSLqsHhBpBOTfEJ6dxkBJXCSlknDrb8XJYO4/96XFd4ThAg4/Heg3u5p1kP3QG2yMuUrty2cFQaT3cWMABIB2diEu/1KfFFSKbfjTp8aUhb99C/ZA5m7h8JWsGwT5Ml9Uhw6CmNHyRA15TyVwIsOH0I1tFeVqQaoqT7wGjyqrJ9bI+WtpjMv5CAGQfj+k2aPOJZ/zLvxAtkd/Bzh9BZPEwVE0I0DI82uWK72P5+mHKig5zbXYrQE5bSNA9/gHvSND2qLV3hLPnoJp5q/NeZX7mhb2aWf7qkF8iM4HEHQ6YiYA+E+kPmfMGabHq62QBi8sSJ3yb68iTcA4YT6f+gJb6G3adGkY9eeu7XQZiQEi2fXRSKUOj/zLkyh4R3hOAX6xhT1yCvCHT2Jb9tAzSMxe0RFbM3g6b/VHgP8nyZkt45j1ZYBTwOpQIaFU7nU5focNbiclNOds9b6I+FOnBXwyAf1ViJPMKBBofmR8wg+77g5o3CiYUzQ+KdNxUo14XQc58/GKrIq3XSIefM9azql5sX7KlTsU8DGT1HlHIYnd10cJYsAEHoN0mLKcHTySHsjTFesKWsmK+siZFXhlavE6F44mweXOrX6FBoELRrvIrsst4OH+O47VaML4CK/cNrjlTodfRr3u2XZsHCcw9kXLGX/15sm10DYmP3G3387x7LDyVoplrs0pzIvfcy41eb2Ob/wM6tQNLxQKnfSbL0eyYL+RWR09qeHT/lWpCFvcISYlmdF/jMaIWDyxE/LA1tguYOSiQtSqHfgqHr1n/k5nFhnUBnU1J1eys/8qySmWwIplgfD3uNcFHlg6trf2B11Om/f7E9onO53sWHhas4nNuhBJsUn2OjOnOAFZi2dcAvexHytVxIdybjHcEdXUcp0jkab19hwZ0RddTUGjtyulBmpbfGD+4d+oynTEjmMlYS/pfoCyhEk9XbgbBf7wtFs5qleFrCmB0NrUYZLxmw+2wFqYEUy2hYP3ZxY8uhRZeFXZfhOD58zGBx7lo4yMjiBc0zvOGqVQm8d4tk1CRpyGJOGJWVU4EpHPxqgMP6hV7f0IxJugziIEJHavrZauRXe0/THYEOKpl/a4jm/fah+oAzHRBqwetjJBSjNp5LaZ3ZUNQElZJBDOF1e4muumSHF6da394Cvppq45QN1B2wYBfbx4Y9fnq5b+heTNTCmP9XhMQGniDhmdhGzfPUY5YPvTUhEcaaA2ucNDUO/xvaUVhXDIodrM/05R31bnFkjUjn34N7Aiuagl9VB9SjYsu83Ws9eoevaZVwZMC4uiZko2GtNzZCyMHRq6GKhvEGBiM1gLyvMZk3eR2dGcn19YX72JnDBY6RWncG7lGAg0YZR9lyoCyQ13gtnyBi05gPlO9yOeIYGqQrhgRpR+pAvx4czdaBMpVI7SgZMAhMSsdPUEQ9stTtwSabBmrln0uHsOMhDvi0bNRUWUmqnu3eiLgzk2XKGyTaHCe59vZZcmDkk8aOO6pTw5H+DWALBPMcCOmfIz4cF9E5zesXbQkQNDFk7vlnAcetbpid+Ce9MnTb3Clhv0lL7lyusJYCpLpalVXmQ67YNR+IIDh9vW7XeWnU3FFfdnO0yqCON1josSLVMTTaH/T3Q7Y+gOUofDwwXaGyGRB+4GRC2kk7zANlgd7PmE5kXda4IpmTbP2OqUJ/O9EXW4aslQR5PtYy3tNMamtk4Lwzb6WIFll7MVBneG5vPfEGslblvK4unzLLIvceI6WxhiZNc/nr10k9nn8ikKPz5jmA9oC+lWIE8QR4XYTcO6WZ7VMORykmWLBbTE1NQc8/TBpYSaYjlsyOK50EEwZC6/hyMiltFDU/OcVfSs/4s0Rk68qJkU5mIFxzQcySQSzLKmqQzkbb2ZlC8MLMP8Tt/ui2UK3r3IoyOWjDNfAV+2/iYAbaU/gcEuC9PqZbBCpHpobrsMSJpIpAbdk+lZArMaQfdQP2kY9Krk6TsjNb/ad7Ghc/HTlJyxRISEoijGyuLhUJB5Ch35PrR1oibmRE3vvhC5cWj/AFFMlliT5ELHoj9ieMLEG0BOkVRUXKuv2bfaF8AdXORnzTtMfXYqB8UVY5TvybX4Mkg9YXaiDDrp7KV8wVHpmx3MIlmRkznG4Q7DbYNTZBEi2yxQfQW37NrAOyCP8AXP/EHi/BLLFg/ip1tleZLojlnpdzKgSmJyi4IRDWNifCtFxTRjzh2z9DNa3KUZLZnixrksQWHwp2gRkmuu7HYPHYIQrdjih0WnNb7CL7hFDLjbfGaVLQh5Fu7SHtZTqDYzgY4QnM/x2PC8v6+qmCAMbOvWxZOIxjgpUF1ud2/e41K1bJAXPTZ0ctJLsigJDqNH6fNsXGGXNx7cwJPgP6INK3Qxc3ylfv0L1e9m37k+CqkJJTN6MvvQuae8WjO1l0JvBh6yHIrZgf/Bt/DNS1QULgHfUCLdwH6GVXxn8JChzrTEJL4dTZGD6nCwPWD+eeU/jxNc/wph/HYngIZcSTOnA7ZoHemc7pUYXx0Nr45Sbce9CyAvFnCzoIYbXxoDXYVwt/7sf509VEfvoLzjbFrRKr4vntb5dgeDiwRX6neO0yQZsOSoVjVvOOSAuP4PT+ezKgOTL5CMeBFh5fTyCTneXHNexLrs1pBpLHH3kmt/Gi6938ByjJyGR1wM7/rvRQQoS1drQjQ0vefqIJKlavxUAyi0PuILAyGGfaeCzz00DKjY1cowpRuwwf7rYPEZOByjttnqj6EUZ84F5gZp+4HJmTpMjNq0q/lyKFhwHKG0wkVp5h+gESx82VKGR+mbao8YOh23JnEy+eNJ45yos7d1gFc6GC67dt+OzE5TpAYicEpe2YtuuIHNt0hQpdLBdS8eqx9D9RSrya3h16jYIp9Ogfv58USTrQa6bOJgC6Fuw3VSohoUOQpQ/XY+PVKw2eV8Q1N6yxzymT6QIiLizm3kcA+jtFVJVj/IlTTGr7Tj6P8fQmh0ag3AJfRbLs8nmEQ1QHGUtaUv9djTgKNG5hVLyiujHLL77tNlHcYLwqquU6Z2V+WMoDwfBiMDqK39/tNhs7dXQhQTHYkold5VgNmV+WJr8ETyoKTHTS8g1RZL+KCbZw1LZoGTgR6eNleq+XGRggG9pbw1+WcW0jzJpvQle+pDWTA3yPaJogeuohg7EijR/48Se6kjwNpGStelAHWNOtzrfgmNxtH9r1eSRWLz79nRNF5th43Vy+rZ9FcwK7PlfJojQmk6yDIgDVpS2IJtFflHkl2pdrA/ZK4Grks9dfURGUNk54HimplKaYEZX5dE2M9W/60vxTLBE6XeIZ01h4YiHBHGMX+eAHZAHpSk2dFZUbQL/ylbq8VdzyOCnwzB532xAsz2XqmJFNJCZ6YuvEpyZtLa07GuhPki8MeZUI63KN4jC30SSX7/bWpsMyfpqrzmMI+cCYlmRUB0Mu4kG/untuIlFzWG2JnuSThOvNB87WuxDF4K9MPLtApA2nPV+2yMqZtQu/5eBgMzg8/6FBhddJz3kV0onK4Jbo71w6dhI4czF3ksh7/wVe0vAH8B/pVGb1v7xscPIhg6KL+hvTtq6g1+kCPpBURUhkj6yrfPgZ3/Xtc22MaQJp0ouI8smF0IW7P8ZfkCNRlxyoz5rOlXJ2YoBYf+hZJACLpIW6Ecg7s2fptIWtvuAgGvGV7dSNLkYv17ghjkJQx6tLucnApd6V56PAKNj/7Yyi6MOC9uwvXC4HnQSolMT49c6/5ZRIfWauOyw+arQBxET3gqjgZPldHDuhPDdYxffuJ1ityuwa75OUwVzCfQ3DhhKAfuieBFYqqN1i5usxjNFwKad4V39gjt2wLjcS1yX59qz0LCyVW9KbSYU9A28hy5DC7hdtdQxRU9PX4vfg8R4KZzpT7OhJe4Rwnuob88KsYJT3Xdb5uQj/iI2b9k+IAL2RazReg2nxwi3ia771jH8mWcStAs1NJu+cMgx6oarFqLe8b1HSRxQ7za0WtQhVKdhOSo+l5MyUbO7l4rtMf8vOidRDYSBoESyiDirZR/lirb7mNwOHR9B00U3KDHjR+/6/p0FjHCVpWNOzJcWfIRQkZ6XmbdXoGNbYi+/6K31kVQSpEiFHlf0XTAzQKDh03BJv6aoldSXInQfAEINY34mN7TGvaILI1iq1F8qQD9LdUyM1y1GkmIcoViAyaqPmTF6srtanuyTM4L1D0wyuj0tEVAfuycGdwEON4fnsCqlt5T6S1obgnUutprS4s5WpzQgzd4U9TRXJErli2+o2bS7A/uISBZhgh/679K/zLda6gWtuZwAvTGNdCbAN9uwZti3Hk9kKWrIq/zDHz00+fSYLcc5sgjgY5sWd/F9nGirgGojICMTxUzGmVVyjsC+0iZ7i++UKuLA2KCekIgylXj+DAZVKUFgBgXYW5+1bwyASMUltB5MhCcaMuivyyhZw3MJ7OjjmJyH+sH7zwWOwFaztw+KQpl6ETunGZ4wgXDkkep9RDpXHKdERy5R1KfOfi61l4kXklOVi+UvIPbGuKxTqSuKxjgg5aUU0X3V/EKdOugbYyeYKlYTyfe6Py6u2Z+A0k4k2giHiUVqkoC8MKxTXxmChSs68WryAMhUxyo84ORdwTONcLdmrVJbnyH+ugmyyx9iKEPADsMijuo2U3uJDa7Wnfr9gcycQq006VxIwrhk0FV/BDjqzquNOsEJXdrimGw0G+JVU4/5BNk+lE5kSCYz9cOOfNBtbtPUoVHnu1jfPwwGlaTc7GUxPcDFnEgwaHh5znVnSwPAAdXz5o6vI34Epz0NKfx11wmUjfW8nTAn60/CwPV4XjHM2yzXbq/EA9hUimpPyH+gMWQc8fiEpaTtk7l1iADxvDO8EMdlaQ0nXdXnhCuCrsoC+Uvlb9IaXpTbhDyzTzYYUPRsJ1khYU6+UMPk1YHn7mE5V3/F28Yia/wrwDdF+R6TmVzsqudzix7NyUGk46wXs0WaHIURcZDicGiV7SEhoVNTU0zgBoaSd49LNnCcmSgWRMUa0JKdpcVnfovdDcIyEcqOXD4VeP1baW1O5XKi8DuZzNuEL/drafxlkHz2RIla0Jp8ILNn7S3fdeg9UhAx9q0+SKtkZq2KsJrdjjyAjr3GfTjVIDAz98414NxYOtS7EWs2ZaFK7+4WBYoC5Hkeq4b/TVXen2W5sxGUXGVbea0PfIOieEzqtacY9iZH8JBwrLvaO9mQx8S8Xs1qoQA5mRuhLUFIcDGMj1wJK/K+vclB5Bl071Plrpq5+L4WJ77f/haemR3QBDVN+DYo/NMMFkqokI7b1nRwuzDmI5dEx4XMlGANd6UtZZVQ12+CHjwiLfAM9yPWaei6wRjGbxBRZUWxyt/lA3BanlqVbrdSdMBG5p3j4Pa9sSfYjUr77zB9h2qpnC6V8u1+XFmGBTP3y97KCCHykGfB6mbCNng2OYcDfFxSp12MaqtqOwry+xB9gUkHlnfW9DENAGqcYOxFOWwZHAJEeIuPuyLr3pc8euQGkJA6K1rmHJDoeAl370hmHY+Wk02WBNr6bOj8owlbEPXZobBQ/xU4JVN9l2GH0nnIedokXyCvBiq+jOf90wECFhhyXgaKiOos+J5t5i72+cySCooSeyr88ULT2mwUuMCLDw9Pty72PByiEtatpiqNeZF8Kladg4jD+8iY+w8ru/PveAVmrABMft/YevFyzmyB1LNidUz8yrnolKmitwK2bPJrQzSfyMg7RCZtnj801QmxB2Hh1RdODJ04NYCR84mkyeVmLrySQsPfWBiZawIPusj3W803YTrCIFZh55a7RhYSAh5uolGsv0TMC+pfZ8CJFMfhrjIkPX4iPlpoVij0m+1EDPaObMhssohxiQLjAb8un88eH/6Z8SnJxoDDY9JjIkM28xe9G9BMqE8CdRizNqXF+yzFoq+i0JXmGCunk6mGwVz7dw0Aht2yZLXL1jgrrUpP84ikBVljLiJmABWcOUt5aq4e2FLPP4IYwNw6/6kBGhUw92jqGvzzSz2IXFoSGkFThCZ6Hdi95k3hbTR+UyOtNXxKf3qOHtoG1+tO5u2H6XvCe4OZ0IsSdV2C22f4X0XRjnoLI9dkAJcmaPzyLbgrWgj/dizWHsrNz5PzGCCZ7zywhZMyk6RrEJ5ucZ5k4Fosm8+U94ZyJFHYaHthMhJSLgoHd9plpggxNFeaBMx2BdSg8d0qM1P9s3xHTr7n+uvFsfU5qJafAkyfAi/gC+OLxCw0uMl/XJ+id3bpdG4VxQwyKvZaxCWrPaRHIy9KcdR43jv9jfykGUTzB9KjyF1G0SkyMHMeY5wgAmcEp9B8ffD92GR4FQExXAD/Rm70xyf9mrg0HowJ+Y5o1trz3gJx6Em+pGPt0PvCVSXsmyA7BLMqIiL8iKyvmFzR0O7FJPoUD5dZJ1eKn4tDUJJ4Umb72XTHqR1qs8KsHPpu1Bas2jM6FoTMyoX5aScTz2RVJH0xso6SkxxuMBg3uUblz4fj83SnK1GADX8ZJtrY6l5lrbF1/ZuSi1BShVAdFnfBB3Sh1SW4KQz2mL+Y4svWwspzeGp4W6pTFKdMDjOxHzkJHkAfLjLjqf+T1Axa9og+Cl7gRTi70bSWjsQM9F19HqH1IdJOoerLMQTLpuVpFU//G6/hsxG6sFsnzMJ7n73SbIizBrcriqJQot6sKe+uP1gONUVuBIPlDJA49atkvafSdkS4NR+zciAFrwoHjdIsVSJKqDxAVrM15uFJb4cUI1Z5j3Wgo4gLqLZDMdNtYKJ1P7oBTGSBKZGTqguAYXj9FtcQ4sSbuwAvEKj0iSHfGzNYpAzMhIVEl+O5tVLe4s/3uEd9Gsrl6bogS5HKQwX3XK8Vnj7lf+5qIQiTSzRnfkEpdxxgU0LAZG7OSxjiHkVD2gFaZ1GjKhIedce7dFUwac8qA8Ut250wwH7O4rKHFECWEhhPfyyNNFFWeFrcIjCB9QkpXuz0U80DXFirexggv6bCvxlzrpYL2A02HykHogeIIum14ATyzZnKSfKNZqYUHkFr6qN2/mPO1WK01C9CpwXcl3fLEficn+qMiFNH5a/JFJBAF2ZZWJ5EP8mGzPCF9CDlr0z0YHruP+6bAUG47CNw5yDdR0WDTjq/DqDE8W+/fc6iTB4r9945YbHjR76ZqoOFAkp3KnRniRLdWK5iKvLCCH/Jf9vzHnX4LfdHlAiEucOADd6aaTJnMDTB0DnLoW9pvA/TvJPoH2GYOwUyBgDkGv7VLqRPzjz9nIWylnnWqIlm7L9YRAuucHIleKaTQCeUrXP0Wnyp2nmBxzeDiVOPsap6l6MYLHO4xg8HBAK3J1dgvBpIjcYDKZexJV5mf8c0hpw5ODKTwdkKCeeTezcPXh/9nI/FlRcIYy8sH3nKCQ0EEucVi+uinLNXGTmZXSuB5jYC2k1R6X8FYDLSs7G3qg+Wa30/SZZVsN+vbIWPDRqs9HMz/V2eXRrxClGwzMRZTnpwuqrD1GTjLUluOf9uPygJGxe+/EB6Ak5UCCsCWe2GLD5iZX8ywqGyaP9CGKOOsQ504tSVjAMPPpKo7Ex8LT3xYdh4QReijfasLvMKd8/bu689y+WY+S8IO9LXV7KYzmOOycnb7imsjeiBPCZgNd2Hd2fLIQOaLorPkKjFZcGRaNO6lp+pBPTMvw9QIbYuQZBlhu48VmV3i/3Y0m71BChUWR3cdNSS4D96YC5J0Y7ZFqMHBW6G9p9pf1EMvsoq2dzX2wSvNYXqdP47zyePLrk+nreb97cBNao7U34lHDXeFQ+HqT8XvcE26g42SyQZmHFRlH2UZ0kohpcgm7Li2wAo0IHMre/0XfRV0HtarB6og11KC3Z7/RUcqKzEPA7ZEJQgZNgBZE02MFT702HN67p516Nvqkm0Gjx83wQdQMeqxlml8LDK0V5SdTdnatEK7C+bhiQ3CLRBupVuTeGYhJY/BbrqiE1SY1vdXZ2SFuvNbcrI6ErGJV8/qH1acDEtu58Cm9IYXlR4R//8FS+sjKjiIPcuzVQ+9bV25MODrRYTzxFJYbLhp2Um/HKOncgLdKHj7tOrMZfxR6CrV1qRAGh+vD5dMMDkqvh3RtFI8M/B+95gOm4879zLjARkfVycAOqjJdoBfgWjWNsJnafTkmc7B3nIQv/Doeol9zaGW/DlpeEHHLSCVAFpPcoRFbXqIB0NIfCnsKcK8GmaNVe1S1WmDjR9kV2WjYdDpu3d+gX3edjZ363f9jQEbUhFXtuRXOQv+gmYCubqBrqUoagUdP7xj0HIFEZg93/KZ2CrZfN9t0A6WcpUJBI5WLyoLnqf11jJxzi7XP7icTGifXh8HPdPwOvmb7A1BFcfY2H1yrgpQ9LL1WPc8f4dqfuE91BNq8DtcEql3/06rGk4gsNyWI77GnH9IKwUsAFlrpUmA3zzUPojorig8/2Cbd3TjsCKM9wxliCLyKPngKsM1KFkqM6bMFtyxYYrU2eewcxYM6RkLIzuCbt2tjjkrWkSVoIS5lGaeH9ACsgsCD8uBJTg2FG+jOXwTTSCvGIWOiSPmrIKKcqEISVvUcMWhHEeUKjXTMdtBmPl8s4WipwTYa2j7rmaa0RNf7IXAOT77NGep/q0h0KdWRo5UPERTufgAqHgtum1dZEPq6OH8ILA+nokd8MXPhCko+zgkNqNlrLQew5ugiVBI+TSaF0+Nh/0lIpsCoBQWlDacVD+Vx3x3aSXTbkp6URafBo7r4W0YMJYL0MnwFM5mzSBvH459mHAZ0yzT09dEXgjVW9/ggg2LxRO6yGo5FTpGQS5EwMSjG3crtd3U4X4CO+KX5W46TC5B/X/DpEipFhWLaE6rpYO0r44KwsS9Ge9H2dfFY3QNvXA1sWHN6WR25HgQ091u/FmxcmTXpvXerH0b5xRi1MwmGmrK4ZAT1TapoD8+smzXuW4xfFWkVDOL7zk9xNtB53A3+dJrIzc5OTB601UXSFtQkX3hWaSnhB0fIWaxp9w7vGQDYtDAeTTDigrLMhVNfLUpJcIxhrMjO0Amicb+Ubauev6gApJbByzVQRTWq047GGRSYgxukHnlk5+xWTYTi31cQQCJ9ILZRJ3tV05M1AIgNeeDW2H8IBJqkzSl9nnKSajGYOD7eMyjHHWbG4SEV8CvAH8Iew6SodPSlX4spOyb4O8XdYQ2bne98jMMolgBIbc8j1VfPhmdPcqVcmf5qMjZcC2VzGSMF9s4863hYPVGq86Huy5cmg6zBz+qDU3yje9vmEr3yJ6kZhF5z8UdlkJdjq/581O9VuCR2B3lyEAfQoUZot9HdVILawreyRxAy11JlpE3UoO/fi5/5omkUs0A7Gvb5+bsteFVIW+9l+qR2dINow47smAidv0bLLEr/yqKcUanjvixyzAQCM5CVzq0r7rDR9M7wjLxBq9eBWRVmyK9TfSJqXHjL8T3l8phqzWGZrkRC5oiPO6C5Wf59fFDP+ituUaiEqytebX0Feyu7U5Leql5gBMTdDPsmK7KUOyA5TuWxjGc7dN7kJKEYpro0VWRhjMArMIGbutu6vN2OSHb6nvd508S4Q34uCRKu96bSAD7YHASNVhzXv8N8jroYf5Y7E9s4wTpkvo3BZkkWqpF0M1vka3jjUC/JuZvw9V8avX+D9bciICl12vr/bQJxDe+TN9MQwDJwOe5HRWZKtCtH/1/2brHVDE381FF3JIILjZf20UTFL4MLwmZtFv3M88Bv1x6hEyoaAlZ5p5QEWzlw8bJBt8orARhiododtduYtJBSF7octT9JzbeKdozaif0LBWL/u9RjbeVNLZ8UV44Ye6Sz56Vn8QlwftWL01WoPryii3ZZ930Zx6Ins/HGvGQmHAD+2qvuKQAs8Y6ublb+Dvhp3Y2NNMjsuzOvb6m4YtkPzbhlctKadex8tBQuo0zhmSxfDIZm5VnEDdG2vZ6kcykYFxgAz3wrkVyXQnwxyQIeYMIHQYT+257jBWD0yJIiC3PqmohMzTC/65XVgSsowG2kgnlR7pYY18nBQ8aVfJ64D79rH2pymM4xMU1Zk/OS14XiDcldhO0c0RhQxiPSY72XYxpiaKVYmzOcEvI1PzQa7+LVZ6pBIwn8ffWvhqa38b3IskTs4RBkYs9i+i9/AqdAQg2IOeWv2fuo5tEcFyefI9nATJXQchbBEQO2Cj3kaBe2X+81o97B22kYSwjOkgZybf53qZFQ6p/N0dL/VnuL1cYTGi8k6rMpkKGx4j+Mc/fcHUVNXTKhyO10FkvHiN+qSbJGepJ/aLXoLZ8RET0Bshv/4hAQgzeS7yl0n74cedqdnmAeHmQ2CyXvMM0MWpEvA2ezZIKU+WvUSaGpTt1kvMloerqnqxHLfT01Yh2n3iD29EWnrQsyjedi1I5SUgvQKBM9G+oAai15cO1con2QFz3UK7w7ZgzM+vPmbk2QqR87fzlbdTSAhrLXzqVfLnWBA/4+5aC+0BRMZ6iX9lH3QXtKU9D01K3HprdilL456y5lsl38VQaMbz9hk0LgquziMY01Znz2WE4ClHG9cF/e7stVmn89oNFUE9NZ1RAc97KzDEWHLoKwlCG6L20/2Gj7/M6PDhsvhY+FMzYRg+v/0jo2gPT0UTCfaLBDRVvKQgUSYPMG1dr6ox7ohepBUS0msHq/V7A6Y9WfKDgSLatqTzwhOXnuXAoFc1LsdlV/Nv7XHqg5TAohZGa1mOn44SyY1fyPMCxL1QmxvhBC7mxDyj9DUnBpbjdAzrBW0mUzZ51brDVW3f0A8oKL6FYBf0mwK6YxDMJogq94OPgpZyKHKBYvJXMfs6u0pYnEn/jPeTVQMK6uY9Egww5setjqwdQmwi1ea0/uoNw7QKPorCWZohFt4VB+HUy/ObjCDdxryIg/y0wXGMwFyftSyf0v/ESOVaUNOHg1aA0SQ0KOwx/oqBneMvSoxZc7SqvQaHcx3ZLg7I0FQgQ9799KuVGTfGNgWvzIMnHqMNnCyCLJMNoNQK9XA4Wkq+6tVuCUREehKj+szE6KlaSwgAPfb6JeGqIyBrjJK/wNw2yPaYB9wHia3A56M5r4OplAvdVjO1vrsc4I8LAy1zqqpo0yM1hfixHeLNDG6ufXaX/4mWxYpqL3hBHpPbnox49P3jj/wGgdZFaJe1JTer036xd0Xak5qCI6SV86xqAdAChv6sj7ESw0SU7w0leCi/08lfYfucRQHdzjO3JkA7lvHw0ouMCSCweP+ms5HlStT1HLlgQ/pkLQ0HiDkuoPtTY6fDW0UPlH3ebKJKJsiIlEwAnWQ1ExfQhfs1IRdbEO6sgyC7u2YqSye9WFoH3s0+d4P2X78UPcUsRitbiSflMds3+5ixk47wEAbwHOouv3l0AUb9zZIP32hh+8n3fJx3LXT4wqErJXRmufydvyJuKW5IkA+rD7B5y3hJGUFrf+je8x2WEZ93MMZZjKF3R4hY4E82J7y0z9znWEXqtnGce0dejOBkrf6CbP1VCh4ixhRvmOXO9yA0A2XQqeWYNfk1eUkRWlybRDBiE5SOOtjudxOpqC6Hv0XRqdL58/dsrEItVoppvb13l9MrZRKzOe/vtw9JP9aAkOa7ra6MbT/3YE4LlEJ5ticKWKe+rOGibg+N20Vx6Vg7J3byZG9+hIpULnZWH4Tq3LmlMA+oUfgAbbzPl3twbDuQozSElI95KSsXaBWevUxIWPQdY+4eolMlTtLwn+51SP6BWFEiioYy+r2Rza4OqKJPMbx7t0CZCtpMKxYQ5JCowbAH7J4Y3Eh3C04j1H/2a7qH3cVo01mg0KjVVR59qENmLLCnQ4LNMS3i2XshEK7QAIvi4D+egZPpMUywog3s+tqRiaGXIEMFp3rd3TuvLXVT9tpJGxjgQLGMKXmGL1MVjoN97by2NaOn0JoIbOQqeBIHTVbBYNON5DD3XP+rStPIfVbuHd+90TJpGh8BlfV0dLneK2wDMnndVGVvQLhvaQxu6sL3XsvtxmQzeFWUSHLeAlmTc9yNQKkXtOJWS9faewS8yotiXdJQ6EI1vpVOHgh46gljSllVDRx9qlH7i2QFU/dKpaQEbpAFUBI/eSUGbpgT2ORGcUGXXDWjQJQo+nCkQVnIMRUCP367os5Iw4Rb3LDvOi+/mwcBozzUa4WkjVcSIURKO3RTFCiY9j3O6C5MBS6Y0WbBooC0nOzhKxL8xMIIaM/tnyEzIdlABrz3f9XlCiQ0hh+C7/bNp14eUvnjcHWjBOSw8E7BjzeXkRQkpIuZSOriwZ8PiOLZxCkXFOQ4hbXa4Tu69lccJ9Hd0F1lxkg5QnAhhfx5WdcTkBH3SibBUMCLPb/cYypz6s4GGDMV5smYibldp//j9gbCEhqanpxLsoexOMik4SOt879z21iz+8V3wgG8CicQsmxcsqCc5QUqOZhnpO4qAFgzHF+noxN835P4xf5EsOcPvYWwtzK3WEYVGy5tuvxE5WZB246SGIDgeC4sMge0B4p70Tse4b6NjlPHW+90GmqnySqY83r0ilaew46qmwi4RzmOcPehbn4YPCoISjQ44RURV++dfU53vcKhkSj6cWuh75tdSSUNMysFwoP+lN2gGTwxOfrha9wWxDPpimhEBVrt6dcBIvdoUbCLTDQDZuUOVVhZP4sATqq8z7Ai0STnGxzKmAHG+3I+/tvrDN/OOTHwR6W5aWSRj+M5wmS5hfdvimlus2z4pE6RV+l6scSEX3XjFUVgbSuuufln4qZfmgBxNvIZmkPtMh4WHAtuqRVdgDOLksqdhjqc9jrNVpRsYL4L5fXaKhNXYNJfTorxbaoSpoqj6ZEp05xsc4y4Qryx7BRs3iYvuHRbCUsiCPmmGdUPXDn6H7woEjiz1YeriH6NPF5au5aVrtcw0DvEgLLKMuVq6QvzE1mu+x9AFhhIEE3jVvzGWs7x+IBGJ2hfG8Kb57q5sDsPmddrc0s2doavGt3j59SpKkbETAVxcSwwHbpAEsYTNPM1KhVl7EPpQp+gNotyPx7hI11xG47CrYE7+4xlCFpaDwvf9FWescjE9qNrcgCXvSeme0GAOo6QjsttWQcRguwWZb6OG1VPN2xZcfyUeEGLHhPkrziDDf4SHNaCcXXJ9CtFdyRMVueZNWqaoSKhpFI91MMLSXju3pGbSzJlM8FPf/oxZbRADvlZZCyb8fbb4mQVBZZ3GWV4hj4PCrLA1qQvEqs9XLsRnoal9WaSQhWRzLJmCurnGGRc6wxyAAejp0pAR70k0M8R+ziXphTbSz5jU2xp2cFe1EhegrqPqjFAtYWbYwsm9X969oYf76RSVpD5DfI8iDfFILBkfvnZaZtHikQ2tfNY1T0QOYafZ+dfiQjWZxqrDxXDWbc/jYZSbOzpgJ0HvC9wodOgTk5d5d9dmNrnM0LH8bvtI4zgktUZdf/DkYM10EF8yMhbFqvpMTi+TaLBUNd9aLSzSGAqu41xsKxsEYHFPhxozYZMPCafc4U5t8Ja7k34czb9pTsN2JFnwl8AmZSpI39KzBoEcD8fz0CAcio2KlaDIhPF8V0HkEbwc2c0mkpBazhOMI1d4cxnKG15nlJ+haP4D9g/H1z7jIEHS7enL9st+r19iJpqLFuJiKD2NT7LXyBzaAcFxIJ/fo4roeZSvHUyfgqUjSVcPiszEAuk4Fgqjxih+ln6TZW8b5sbDIvrB1Ul++c1B63XbFgHdVJTaRPzIXeh5f5u+QYvfa7pHyQV0ZUIv4SnfFMvTC0g0/fdaaBd9rcpxu/CBpbobKZgCIyVRDZGdPlZs8UGyu7+Hxb64E/k0YIIyG0d7ZSIcU1dOwyAQt25Ow5B4W/oUhgU+Gf+qB/Eqf+V11+GylEkiyGag2sSabnAwgaqTr549u7USX8FH6EnKLv1g9jl2zIU7C6GM3aeDn8kP+9aBM0Agrl165RV4/UHaXPnrBjs3YOHlrMK9jziNkwwt6+rC5FPPvSm2uVuOQouD4+Rk/8X2VoT+8bijB9PNpfsOsNhiSOVgntu7dzfzJItraFExs2ylPt0vanTgZJP3SIxPvZsgaDSBNmxIh0KPLS+EZkJ1Xy0gY8WVOZDbYF9v0GJta6+GUy7ek8lisYumJ1nyw90NF5n7L6H1aFMYqA/WI2COJA7pWaf9Ugf5pniETIJNyNXtonwZOLeCG380p2a2m5Fs4WDJIbVCtkJ77ah+h3HMvJJ0fzW8OXfnZDuzbWB935lP5zr2+vOc7CL44LjNt8p2deJJKd+d8n1mwKwxWxUjkxJRVlpIqwq1a+Sfeu1oNGDaOXyS/LVoiWAi4/RFFK77j8sVBWyTeqc13DCYWKdEbHTgEcIdtBewm3fvU99V8J4gYLJijdis2O/D+3FBz8kG/SwAXwjzKgO1TmXuA3syLPxxfnEUxttkUPpzQJgAzcN6o79tpHr3QWX3TVy4USKZJPX/G7/sFv7TB2RKaM9LvG8518UTl/oNK6/mqMpSOqsv0xRVzNjumgamqz/e3LG3e1lkrW5SquqlrDJIrN90AProjO2hsva2vAv1ZNPbHVfvH6K8KnMmDbXcZImS+YAXafdXLVILS/Q0MSKuRaLPQABT6AsH1SpBlkiSLXyhT/gT5IbfD6Z1Jx0n7l33o2uGW4lgd8BRn8WUeEHBHEn2SCXVQwlREQtvN7iSC2y8qSngF4ytc3vgOucrGccauebyUn9sdKmkhMom+XHRGLg4yr7NW/ZAq8UDCTjimw0unj204NYoihtZTNdXwgmCpqzA6Y4a3S/braI7FEXELgpjVSnB+dqkyFq3Tny2G8lAz1OtN0TZdE3wgbqL8XtsE5Ut1NayTqmPNmEhJVC0f6ZfMop0HP5VawTxA+lq1XoeRAoIGH0ojuV+9O13sh2V2zoxj5jVyNGuZDtqZVlEeSIRI05PVi7nZfKw+EuT5YTkdX/qnx/AmQXABJR8mEbt5A8Oab2RqMdG+P0zvDI0gODnGDSO2w4ZOrD1zi5LnYaIljibbOMhpDWcwsd6Ry5eUmiLQ24OpaErO6a3/sYLybm9xOJLqfn7DNg/5SKBxEfKNyyUYP4KtkSMQI5Xo7dHcIhqH4l3CRK/gB7WtFU6bj0mReNJIitL8grYbUyZpqDuMDT5s5WQsWjOEmRSbMiH7HIkEIPvRu0WxMnRCJKjGFWdlKGqK96T7jlsEHCjsPjk/9VEQ4W5qB2tRAFGJ5YGgbmyYxqxGxduvkNdd3IZKcIbvtEtH4X7aHeyV4Dcn4wkEzUNRRhISM51Av5I1mwi2lj3DP8d6K9iFzNVDCSb+eb9pBu+SEqYrvFC8WKSi8OcZDj50KV871120hgz6n6OZy1KOh8OzKNuCKFt9mVlUfJKzD9gcuL53q+oTHGGIKFz4+4/zLC13N3l3y4Fn9dzM02uGyBGoJXmF3jrwW9OguOsh1FVykE1suM6kC/e005VRngkgcn29tixbfGSx7k8JzTId+5wTXE1HgKXCtGlwA7L6FxS+RUGGP2az1Em91D7THACjjqlVdoDOltQ7Yb4S8n4kG/m/CvtFfQB0e/e/JMgICLGKds6v5THENB7WYOdJ0P5s3GQzdbeXjUAG5Y2WCUBs5LZ6xDZzv1L7jfUHqBbmnHW7U4g+UTYB/tW7B0Ya0JAbpzWFSoVQH6CbY6q9fM8ccelwWdxeWdjZm+TcmBAHpje+emw8T5mUgl7Omvks7D2xk04/HjynzVyBN2dI3dBgxTkB1keL9tMN0WgyjY0ddKI8pigHP9lOa8hb7F2bZIa/FqS6JJPPHnlyPbVl+weIG7j4ocmWH/OkvaT4qtcbnafk2ocwOkjSqUob66ehit1UDMwKXreD2R92MZugTHNe/PWAZesANg9eBbm2p+4kqK52j8MW3AhqaffDN+kK195DUM4FLVYm8BQhOF+OWoM5tTD8LImCNRenutbU6qRxpaMDXCBU37/K3Y7eobcg/IaZaBuw44FteI67Hdgufk5VqCDjlK7jDBUtVq07hpPI9ymWW/m3nNLQlusNGDSBNYXOUBDRWNnHira/1eo9GEwVgpXn2tG1PUUxT15p/fbfGXCvpsj0QlzwErC0ge/Oqlsh7E0QhpqDAcvlBJOiXDD/bv01SkM269rmghWHJPUbmpq4trj7H6cCMXMIwWgOLaTXR0w3tamzJpReC8FXDNwkxSCbmg/ag17JdPyptz7mR3k6KvXor6tFCfEv85TW7CDWLEap1AC12Ym+LK9/CxdKPnXz9Qz4xNXGn3sG1wAfthifQfjDyiCnLo2uhuMzI9yKxH4PUTt52mReMLmnHFrrLpDYcPC+cU7ge55guYhGv/ANB92YzoXrI+Hs6gdXnnfE8GGhfydGwvKBKCtpDecGnu41Mz28j9/LTVtSV9WZEoxANMgPGo4BDbY2p69ixYGQWATdyg9TRDAK7f/Lrlubat60yuVZ9wcwqZ7NBP71mX6NEgdvfK1EgMnkZzsDQl/wWDHdAoOYCo4pKwY5I/V26cKTO4aMYcV/YDdgglOtas2KtIXBJAcgotsV4YfF+CDN4T5WdX808VdXh3/UXLrAdcMDF3QIXj1HyUHIOkXBH7DXICbJt9eNiowRXiuB0d1J/FqjPFe2IlNdXnwFwpRusB5PLSv0Lk/AdI1gQmao8wwLmnoh/L9riMbMMsWAOI+5B71d+lGTKlxx4hQn4ixRfedyZUUsRcpGrgAS1XqCKzggl0/LFuyQpe9BsgvZGkEHQ4ELkl6bcLtiHZ+7uFxmRjnV7v8PP1Whug1igIT3OTMnmb/dGJPuGKY5fRdvWoatxfNU3ABi+fY7eHiPqC0gQDpAC19twVfWBtBur+ST+y7fzmSE5Q0C3mcp8/31XIdqm7sEZJHtFnXBgaTyG+fWRGAY70K10IBvKH2TE6IMzm1k92/Cn2payTupKTtojgP3uaWIgFVgV0lD0WGR0PanqiKtrBFwqznvb/rz2PgpSjWd2BESLQpxY+6tmKXZnjvY9xfR12CQ8o/aKz1t+XxCSzy0uE5f/kaFUCrwxjL8gT7SEUJshp//5/yvPFJHgJlgsvXp+gRQCSzz+vS6rl3BhMsbj/HzwJYz8GsWppOQDGVswlOHEaFE/qhImhDrt2DUfNxtt21GW7KwJRn9/mtYIjlnnwgESPEpwoLyTru3SsVGzRxnZG6x+BiseUs57lTdb3H8KG7UPeH1SSjy9wZHELnar9x5cOtOR7lOvyjWm4Ab18Q+qoMxxLCFit0V8SmOu7AU8XGY3eSXb6Ly+kaQmDkRlOstgmcj+rD34KNz7LTvLL0O1Z9J/nCjp+1flOFgtbd7Yg0t5eNrPuppxYxJfSpnJRNL4S3YTffnV+x+zVsuioseET/On2wNi/TnL2rAQIKswi7Er3Sv48D/+PLsa2WJOSk6DqcCLmusILDiz0FwKEhMewrxtNyM2IAE0/6hiopIQoUgC6U8CLirhWbfVibSnCGZlF5uywIcaUlcEaYP/evokbi1NSquO62XNnWR4+fB3M1N7LaI5pwdHYOKEjg9OaSiTtEDypKGOVxZhdQS0jEvZ46foNS4SBpwZfPn60p6pQldNUmimhWeU5LUnEpZYjPJU6hmAsh4AKaLFfJANrZ9ou428yoEIFuiY9UgOYkqtSUocWxyijxK+NTtuDdbh7NJcyLIl6CUBWQjZiL34Bk0Qe3vmT9tpIKus3r5CvEdEu5Va2Wxm8CQJT9bESzuFBeH0QIRybKFAUVqNa9tCXukd1jwLXYKWsuMuFda8R1UjVG2cvAZ+R3lBV+nLksL4Ti6lubX3hKFcSyFsG5rK9pJt5nlSGIkBLP/HFqLL/KX0S96NdOo4CS+GYPBk+lBZxz6Yie12vvUj8l4t1ik/5PmvbLOTPCcaoPeZ7APUQIKIcxcNUDin3R1okbeAUGwt7Ja3G0ntQokBhlajisyXeqbfPLrTTKpTauclKp+DGdyBsbzFHEYtIqZnlLe5wjluF/UID6EgwWPGj0FVKM59Jom3+0Y1QTb+IKqHZv/0FIEEuVItlJHSixdza2w0UN80Hyc/eUGv6SBybC/EEs9cOcLBR1eeQXXe7p7hfIhtxxBrGhk9n7jom/4LXF125WzPmMCUiNyE8iO7sVSmRf/iSNFBveZWGPeCirfJ8a43fk5jCfA3NPEJyMAamu3Q5im0DKo8aonWXtye9iE8vraixlVTAGSXFMjP3+XiOE9jrnXTDzARnt7+9gvHctQpaAI0za6N7bq9R1lb55jILwmx4Ih4OA0K1/Xx7B9jytPFBRhEO8xqXLhxotsIRjnGRvnkMK/KJ1YhE9T2mNmclLYgMSn+7dzik8BzoHt+EcXstV8yNpTspqsnS96ATq3A66NbF449w9JqViBt4gWi7yVzt3kR4XSJ8iEB5anMqG+EsSyrMQVv0sMeEysGx+yYs6G2xPJw3zqTq4RzDQXPhYra/VMlt7E8zzl4D7L3HS3kkWf4ZkmFmnjcENPQdkmohl6p/gqkOg+8McyzNxxb5Fl19DsSr3MTuSMqhSKDn95ibzYCEdrZXJiKaqu7BFBuju+jSObOPchog2IsE/u/3U/UK2mntvSnD0qNkPYoRTskBnLJ3NJamL0V4sEbryX8NMr7MKMJ0+h2+xMKY4KERpvUrd0c6ABXWHqLdY1QTugC/5dhdoLy3+KwgG5FnL0MZw6qvOvHkKQRoQrcKLuwUld15s05QxurH67A9eAr02a/vUWNBIgP6vOa69ZZuZKElWttIerRDGIAkZ54fw7HBctSZtfspPxaliwbOEH/Laxot3ZQonzvXknSVodzZHA1Jw7BcNRsYvl+KJ0Y6pMRPpIbaN/QSuHtnjUoej+vlVhq5021xMUPKxCK/D8rSRbOmduHG85/JrIimgo5wXWP83lLvRaxwCxeTGVt44fTUqsfUARmQcS3f5DbHR9SZ4nJYIEvcCjIqLezJ3I6S7xBop57j3ZyMQX0Xxr5mc6IUmrlOXM9fJG5iDZQQ9rWsGZ0Y26GzTAEsD6pjPuDa1XAT1MRpxyZ8zN53sl1YEV0E0EHvZqcnBnqMTXRh6zC9PwDXEk3OHs2zLLIjBhY5+7lDxp1X0qcm8XtWorat33mUx+kEDDgaDUdpclQq/ZM6mMYoF433nKbCKDxCozugSPVaRjNPosMDy8FujvIJSb763XuBGBIYLS9x+HZhYiUa9xod0xKV9aRt7yczWWlLgfK8qn4fULHMBSP48m/wTWfDBdTH8uDAKt5WM033+2bCpxDhmZtE+d7XP65yBTOf9/EWaCG+Gs9/5kVbWS0JlfoDH6Si2tVCzCRGfV0XZAUWfXOMJ5F9dkMagbwaeqVqqbVONDQGg8zID5MUV7IkazdAz4JLOXsn1RuZnoZNIGV2Na15+dRKYUAmXFmkWBJpPMBwT8N4bd8VZwBnhm3WzH9S0sbpoP0sgf2OmPvQ6smMyfkVK+OLjXYubmtioAhdwDb5/pLRg3PGwfHEz6v9OOe4AK8iw2cma49tV44In8Rc9jGcqSQlFXPdlC8366ke4U/ITFy0/SQBl1vWvGk40KycwWGaLf8cCtEi/4X2W8961i6lYnpfNQhGcQyC8s2oIOW+Pw545Thq3ZBEyNC8YDr/pzCEmBI8U3A4IiQJoHiD9kUMNd8wfzysC2Kqc4OGeWYsJxmDev4Jn4HV+vqpgN6xxSEMABhRMdTteHiJAgnQEX9BR2V1sNqh5EcMvQNYYa5+bblQn7Rli1UFCtQkP6ECmGkxmPNkg2CGS2mmf0/WEuTZSyPMtbbrnftPgleOmJ3jSm0m1EU9fQHQo1NZti+KczpJ8mSYIVtXzXh4rNJcL3Fm7Bbftpjmj5UnuDpPk8HvqKOj2DGJyk4R0Md1x7umiH0DTOXaLwO0EI94k7n6R8nfqiwekgUQZ1rRek0HViM5YN0JLWp4f4NRE8ErcGNSHZd58+9Kx8lmkc9ogfQmX0rX1kB8QQzNbH+eVDee0jOQNUgQcew3y+0QbifXrtLHXDIxsqsej41Kz7vfcQRE1zUnY2phYNILK8a657zyHNMzPiRhxs28s1JX2kiCMEloubOXnc8BzU+n7LM9wztf63eFWN/eWHXVivSdCWg5DfWsk2CF8aFJrOP277QEPdkWlOlewCVEkLjyd5wUn9ZzaKOJKnDQDLfliiRLTKlU8TOeQj8jOU8FfpM9tayJTDpxw6sVlZuJRAILfxn+QAGIB/W1FGDjuuVu62hFDBdvzVSfge95Ebf9pclp0GrpV3S+gwBWn5J7aGiim/fRyIN7YVVXJsnAnVeq90vDdAV0XearTqjT2Ck/AMkBW6T/ls/6VUVnFWs01wxkahKR0tRwyLRKgHefm3RWie/pTVQpUMZw+/7ozQSW+7vuZd8lsvT1iX5rwlpiaFnOnDbHsr1As6vLETd5HVbcBCGbJHcS7ax9Byd50jdYyagUtjAaHYX8ryyuR/bDkw1o4j8+hXMfbzy+CVmgrfRDyl4dn+5LxrqRAXLoDKpQREAHqdLSsVSJh1s8KnZ/SsUVq27cq+O6LMSBmhT4X3E750rmWwCsoCre6bT//oFWYALjp2SbcxnULBaTvnYDHtfEbO1m/3c9nJk8ZO5KHQTV88ivTWN/S2EXwmisTPdcupMrvI8e48QZdkZu9WHyKron7MKhGFJw6Z0KZ3tleVrvvJo89siUwByPY+Hs4gkKPBQbLQOaedcv/xeM+Ih8rl1eHEC/C65xWVciToVqSGp9HfbhVzFSrO6kBnv7mJwnRLvMEwqiNankVdJJMw4icU3lKyw/ecNSWIUddqlbThYMiq8nHjRRufs+28cq0OI9zhpvxFvFgSZE/eAYvm0x+9lZO+EH9NkBngaqU1NMYhdombNuy3awUN9p0mJQ//e9L65YbShgoc+ZUlNy+c6F6gDEHXV0JrzevPIZFAe2RyRa2dNqzLvihAAMCszYueqszzXRkSyobx5+LTLK2V3lfg3wbS9DzP3QW7VHdHbjZcttQRvtjrGveJnNn2DE2ZDIbvkCrT0H8RzbGDdmIq4P1ey+hoY/W6NuZKOz4dv4HUNznxdKV1Wf3MvqUv35r2jTKvpPWBUWNm5fytX/QJwp6qkIOsSx7Y67BSCbCDVLM8/VcMG+T0j+INrgL9sfT1ICtACH8BI0G6ViUZPVzzCmQHW2oVIwZjAoFl6+meO/pD8teO1E+1y03mCpYfW9S8qhtH2GhlFlebPf4NbezVv9xbXKWz0xezRNQWqUqtYRTUbuzK7KTvjG4rQHfzBpVmK4wDLnSIwdSzTSk1fPNeY0WOpPZTLlvQ59xwgfFrb326vT2hS1JAZ9E6sujFtKTiJ7bxI6o4cBhDaX+adXREThhR+MwA4TqD7rga/o9iY7d6TVRe14CS2S3iSQsD0R6ApnhG/2Wa0A0AY2NtWTjmabdKU+KgIRDP9RQYVjXiF1qC+xyNVG03I9vpmEpY/G/zC4nLOKgXAZ/uTikHI9Afbkhfgfgo9arWbix5eH7WUo9RQygDzwCnVSjbXc7MihEufVj6WGbK963pw8VjY3RS8IH1cy2yZbIcKLO5CgAUcXJfF2+McnDLKtXxyZaf7SPA6KJq+zF2NHyfoeTOwHhGqNcnHVr1hT73pcoyXyfvCYBnG1Bp/aR9t8hoI7CXM3UZOisWGA1SHZ2jf7k9GlRnp3mF/c1AV+JjvUsnZrsybEOQJg/dn/9eJkyykQHjbF56zgcPX6DdMG03WKUMlYz+uOZ+5DZy9E9MZOZ9GMoLFdrIPPQQLjv+GlCMpoyHPXkzIODjHAID2PrnaRpqWVHh0rnieDILKq+Emrd5RnjgE9pDUXWTmHaKuqqYlcgEz4zbi46dbWrAAFBjsQq1rLHIiPJEcwFLCOY4JNlXRXQJqCUKXk2d1RSBGzDP6HDSpo863BhVRFFF6uIpjQV7j5ebFe3UkkO/+coIo2BTAcgBqOtQ134s9a4QJvofuqBYMGOBMsWZ+sn/2AOxDx6SfAnDFGw==`; + + +Uint8Array.from(atob(($06269ad78f3c5fdf$export$2e2bcd8739ae039)), (c)=>c.charCodeAt(0)); + + + +const $05f6997e4b65da14$var$bluenoiseBits = Uint8Array.from(atob(($06269ad78f3c5fdf$export$2e2bcd8739ae039)), (c)=>c.charCodeAt(0)); +/** + * + * @param {*} timerQuery + * @param {THREE.WebGLRenderer} gl + * @param {N8AOPass} pass + */ function $05f6997e4b65da14$var$checkTimerQuery(timerQuery, gl, pass) { + const available = gl.getQueryParameter(timerQuery, gl.QUERY_RESULT_AVAILABLE); + if (available) { + const elapsedTimeInNs = gl.getQueryParameter(timerQuery, gl.QUERY_RESULT); + const elapsedTimeInMs = elapsedTimeInNs / 1000000; + pass.lastTime = elapsedTimeInMs; + } else // If the result is not available yet, check again after a delay + setTimeout(()=>{ + $05f6997e4b65da14$var$checkTimerQuery(timerQuery, gl, pass); + }, 1); +} +class $05f6997e4b65da14$export$2d57db20b5eb5e0a extends (Pass) { + /** + * + * @param {THREE.Scene} scene + * @param {THREE.Camera} camera + * @param {number} width + * @param {number} height + * + * @property {THREE.Scene} scene + * @property {THREE.Camera} camera + * @property {number} width + * @property {number} height + */ constructor(scene, camera, width = 512, height = 512){ + super(); + this.width = width; + this.height = height; + this.clear = true; + this.camera = camera; + this.scene = scene; + /** + * @type {Proxy & { + * aoSamples: number, + * aoRadius: number, + * denoiseSamples: number, + * denoiseRadius: number, + * distanceFalloff: number, + * intensity: number, + * denoiseIterations: number, + * renderMode: 0 | 1 | 2 | 3 | 4, + * color: THREE.Color, + * gammaCorrection: boolean, + * logarithmicDepthBuffer: boolean + * screenSpaceRadius: boolean, + * halfRes: boolean, + * depthAwareUpsampling: boolean, + * autoRenderBeauty: boolean + * colorMultiply: boolean + * } + */ this.configuration = new Proxy({ + aoSamples: 16, + aoRadius: 5.0, + denoiseSamples: 8, + denoiseRadius: 12, + distanceFalloff: 1.0, + intensity: 5, + denoiseIterations: 2.0, + renderMode: 0, + color: new Color(0, 0, 0), + gammaCorrection: true, + logarithmicDepthBuffer: false, + screenSpaceRadius: false, + halfRes: false, + depthAwareUpsampling: true, + autoRenderBeauty: true, + colorMultiply: true + }, { + set: (target, propName, value)=>{ + const oldProp = target[propName]; + target[propName] = value; + if (propName === "aoSamples" && oldProp !== value) this.configureAOPass(this.configuration.logarithmicDepthBuffer); + if (propName === "denoiseSamples" && oldProp !== value) this.configureDenoisePass(this.configuration.logarithmicDepthBuffer); + if (propName === "halfRes" && oldProp !== value) { + this.configureAOPass(this.configuration.logarithmicDepthBuffer); + this.configureHalfResTargets(); + this.configureEffectCompositer(this.configuration.logarithmicDepthBuffer); + this.setSize(this.width, this.height); + } + if (propName === "depthAwareUpsampling" && oldProp !== value) this.configureEffectCompositer(this.configuration.logarithmicDepthBuffer); + return true; + } + }); + /** @type {THREE.Vector3[]} */ this.samples = []; + /** @type {number[]} */ this.samplesR = []; + /** @type {THREE.Vector2[]} */ this.samplesDenoise = []; + this.configureEffectCompositer(this.configuration.logarithmicDepthBuffer); + this.configureSampleDependentPasses(); + this.configureHalfResTargets(); + this.beautyRenderTarget = new WebGLRenderTarget(this.width, this.height, { + minFilter: LinearFilter, + magFilter: NearestFilter + }); + this.beautyRenderTarget.depthTexture = new DepthTexture(this.width, this.height, UnsignedIntType); + this.beautyRenderTarget.depthTexture.format = DepthFormat; + this.writeTargetInternal = new WebGLRenderTarget(this.width, this.height, { + minFilter: LinearFilter, + magFilter: LinearFilter, + depthBuffer: false + }); + this.readTargetInternal = new WebGLRenderTarget(this.width, this.height, { + minFilter: LinearFilter, + magFilter: LinearFilter, + depthBuffer: false + }); + /** @type {THREE.DataTexture} */ this.bluenoise = new DataTexture($05f6997e4b65da14$var$bluenoiseBits, 128, 128); + this.bluenoise.colorSpace = NoColorSpace; + this.bluenoise.wrapS = RepeatWrapping; + this.bluenoise.wrapT = RepeatWrapping; + this.bluenoise.minFilter = NearestFilter; + this.bluenoise.magFilter = NearestFilter; + this.bluenoise.needsUpdate = true; + this.lastTime = 0; + this._r = new Vector2$1(); + this._c = new Color(); + } + configureHalfResTargets() { + if (this.configuration.halfRes) { + this.depthDownsampleTarget = /*new THREE.WebGLRenderTarget(this.width / 2, this.height / 2, { + minFilter: THREE.NearestFilter, + magFilter: THREE.NearestFilter, + depthBuffer: false, + format: THREE.RedFormat, + type: THREE.FloatType + });*/ new WebGLMultipleRenderTargets(this.width / 2, this.height / 2, 2); + this.depthDownsampleTarget.texture[0].format = RedFormat; + this.depthDownsampleTarget.texture[0].type = FloatType; + this.depthDownsampleTarget.texture[0].minFilter = NearestFilter; + this.depthDownsampleTarget.texture[0].magFilter = NearestFilter; + this.depthDownsampleTarget.texture[0].depthBuffer = false; + this.depthDownsampleTarget.texture[1].format = RGBAFormat; + this.depthDownsampleTarget.texture[1].type = HalfFloatType; + this.depthDownsampleTarget.texture[1].minFilter = NearestFilter; + this.depthDownsampleTarget.texture[1].magFilter = NearestFilter; + this.depthDownsampleTarget.texture[1].depthBuffer = false; + this.depthDownsampleQuad = new ($e4ca8dcb0218f846$export$dcd670d73db751f5)(new ShaderMaterial(($26aca173e0984d99$export$1efdf491687cd442))); + } else { + if (this.depthDownsampleTarget) { + this.depthDownsampleTarget.dispose(); + this.depthDownsampleTarget = null; + } + if (this.depthDownsampleQuad) { + this.depthDownsampleQuad.dispose(); + this.depthDownsampleQuad = null; + } + } } - } - IFC4X32.IfcCylindricalSurface = IfcCylindricalSurface; - class IfcDeepFoundationType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 1306400036; + configureSampleDependentPasses() { + this.configureAOPass(this.configuration.logarithmicDepthBuffer); + this.configureDenoisePass(this.configuration.logarithmicDepthBuffer); } - } - IFC4X32.IfcDeepFoundationType = IfcDeepFoundationType; - class IfcDirectrixDerivedReferenceSweptAreaSolid extends IfcFixedReferenceSweptAreaSolid { - constructor(expressID, SweptArea, Position, Directrix, StartParam, EndParam, FixedReference) { - super(expressID, SweptArea, Position, Directrix, StartParam, EndParam, FixedReference); - this.SweptArea = SweptArea; - this.Position = Position; - this.Directrix = Directrix; - this.StartParam = StartParam; - this.EndParam = EndParam; - this.FixedReference = FixedReference; - this.type = 4234616927; + configureAOPass(logarithmicDepthBuffer = false) { + this.samples = this.generateHemisphereSamples(this.configuration.aoSamples); + this.samplesR = this.generateHemisphereSamplesR(this.configuration.aoSamples); + const e = { + ...($1ed45968c1160c3c$export$c9b263b9a17dffd7) + }; + e.fragmentShader = e.fragmentShader.replace("16", this.configuration.aoSamples).replace("16.0", this.configuration.aoSamples + ".0"); + if (logarithmicDepthBuffer) e.fragmentShader = "#define LOGDEPTH\n" + e.fragmentShader; + if (this.configuration.halfRes) e.fragmentShader = "#define HALFRES\n" + e.fragmentShader; + if (this.effectShaderQuad) { + this.effectShaderQuad.material.dispose(); + this.effectShaderQuad.material = new ShaderMaterial(e); + } else this.effectShaderQuad = new ($e4ca8dcb0218f846$export$dcd670d73db751f5)(new ShaderMaterial(e)); + } + configureDenoisePass(logarithmicDepthBuffer = false) { + this.samplesDenoise = this.generateDenoiseSamples(this.configuration.denoiseSamples, 11); + const p = { + ...($e52378cd0f5a973d$export$57856b59f317262e) + }; + p.fragmentShader = p.fragmentShader.replace("16", this.configuration.denoiseSamples); + if (logarithmicDepthBuffer) p.fragmentShader = "#define LOGDEPTH\n" + p.fragmentShader; + if (this.poissonBlurQuad) { + this.poissonBlurQuad.material.dispose(); + this.poissonBlurQuad.material = new ShaderMaterial(p); + } else this.poissonBlurQuad = new ($e4ca8dcb0218f846$export$dcd670d73db751f5)(new ShaderMaterial(p)); + } + configureEffectCompositer(logarithmicDepthBuffer = false) { + const e = { + ...($12b21d24d1192a04$export$a815acccbd2c9a49) + }; + if (logarithmicDepthBuffer) e.fragmentShader = "#define LOGDEPTH\n" + e.fragmentShader; + if (this.configuration.halfRes && this.configuration.depthAwareUpsampling) e.fragmentShader = "#define HALFRES\n" + e.fragmentShader; + if (this.effectCompositerQuad) { + this.effectCompositerQuad.material.dispose(); + this.effectCompositerQuad.material = new ShaderMaterial(e); + } else this.effectCompositerQuad = new ($e4ca8dcb0218f846$export$dcd670d73db751f5)(new ShaderMaterial(e)); } - } - IFC4X32.IfcDirectrixDerivedReferenceSweptAreaSolid = IfcDirectrixDerivedReferenceSweptAreaSolid; - class IfcDistributionElementType extends IfcElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 3256556792; + /** + * + * @param {Number} n + * @returns {THREE.Vector3[]} + */ generateHemisphereSamples(n) { + const points = []; + for(let k = 0; k < n; k++){ + const theta = 2.399963 * k; + const r = Math.sqrt(k + 0.5) / Math.sqrt(n); + const x = r * Math.cos(theta); + const y = r * Math.sin(theta); + // Project to hemisphere + const z = Math.sqrt(1 - (x * x + y * y)); + points.push(new Vector3$1(x, y, z)); + } + return points; } - } - IFC4X32.IfcDistributionElementType = IfcDistributionElementType; - class IfcDistributionFlowElementType extends IfcDistributionElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 3849074793; + /** + * + * @param {number} n + * @returns {number[]} + */ generateHemisphereSamplesR(n) { + let samplesR = []; + for(let i = 0; i < n; i++)samplesR.push((i + 1) / n); + return samplesR; } - } - IFC4X32.IfcDistributionFlowElementType = IfcDistributionFlowElementType; - class IfcDoorLiningProperties extends IfcPreDefinedPropertySet { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, LiningDepth, LiningThickness, ThresholdDepth, ThresholdThickness, TransomThickness, TransomOffset, LiningOffset, ThresholdOffset, CasingThickness, CasingDepth, ShapeAspectStyle, LiningToPanelOffsetX, LiningToPanelOffsetY) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.LiningDepth = LiningDepth; - this.LiningThickness = LiningThickness; - this.ThresholdDepth = ThresholdDepth; - this.ThresholdThickness = ThresholdThickness; - this.TransomThickness = TransomThickness; - this.TransomOffset = TransomOffset; - this.LiningOffset = LiningOffset; - this.ThresholdOffset = ThresholdOffset; - this.CasingThickness = CasingThickness; - this.CasingDepth = CasingDepth; - this.ShapeAspectStyle = ShapeAspectStyle; - this.LiningToPanelOffsetX = LiningToPanelOffsetX; - this.LiningToPanelOffsetY = LiningToPanelOffsetY; - this.type = 2963535650; + /** + * + * @param {number} numSamples + * @param {number} numRings + * @returns {THREE.Vector2[]} + */ generateDenoiseSamples(numSamples, numRings) { + const angleStep = 2 * Math.PI * numRings / numSamples; + const invNumSamples = 1.0 / numSamples; + const radiusStep = invNumSamples; + const samples = []; + let radius = invNumSamples; + let angle = 0; + for(let i = 0; i < numSamples; i++){ + samples.push(new Vector2$1(Math.cos(angle), Math.sin(angle)).multiplyScalar(Math.pow(radius, 0.75))); + radius += radiusStep; + angle += angleStep; + } + return samples; + } + setSize(width, height) { + this.width = width; + this.height = height; + const c = this.configuration.halfRes ? 0.5 : 1; + this.beautyRenderTarget.setSize(width, height); + this.writeTargetInternal.setSize(width * c, height * c); + this.readTargetInternal.setSize(width * c, height * c); + if (this.configuration.halfRes) this.depthDownsampleTarget.setSize(width * c, height * c); + } + render(renderer, writeBuffer, readBuffer, deltaTime, maskActive) { + if (renderer.capabilities.logarithmicDepthBuffer !== this.configuration.logarithmicDepthBuffer) { + this.configuration.logarithmicDepthBuffer = renderer.capabilities.logarithmicDepthBuffer; + this.configureAOPass(this.configuration.logarithmicDepthBuffer); + this.configureDenoisePass(this.configuration.logarithmicDepthBuffer); + this.configureEffectCompositer(this.configuration.logarithmicDepthBuffer); + } + let gl; + let ext; + let timerQuery; + if (this.debugMode) { + gl = renderer.getContext(); + ext = gl.getExtension("EXT_disjoint_timer_query_webgl2"); + if (ext === null) { + console.error("EXT_disjoint_timer_query_webgl2 not available, disabling debug mode."); + this.debugMode = false; + } + } + if (this.configuration.autoRenderBeauty) { + renderer.setRenderTarget(this.beautyRenderTarget); + renderer.render(this.scene, this.camera); + } + if (this.debugMode) { + timerQuery = gl.createQuery(); + gl.beginQuery(ext.TIME_ELAPSED_EXT, timerQuery); + } + const xrEnabled = renderer.xr.enabled; + renderer.xr.enabled = false; + this.camera.updateMatrixWorld(); + this._r.set(this.width, this.height); + let trueRadius = this.configuration.aoRadius; + if (this.configuration.halfRes && this.configuration.screenSpaceRadius) trueRadius *= 0.5; + if (this.configuration.halfRes) { + renderer.setRenderTarget(this.depthDownsampleTarget); + this.depthDownsampleQuad.material.uniforms.sceneDepth.value = this.beautyRenderTarget.depthTexture; + this.depthDownsampleQuad.material.uniforms.resolution.value = this._r; + this.depthDownsampleQuad.material.uniforms["near"].value = this.camera.near; + this.depthDownsampleQuad.material.uniforms["far"].value = this.camera.far; + this.depthDownsampleQuad.material.uniforms["projectionMatrixInv"].value = this.camera.projectionMatrixInverse; + this.depthDownsampleQuad.material.uniforms["viewMatrixInv"].value = this.camera.matrixWorld; + this.depthDownsampleQuad.material.uniforms["logDepth"].value = this.configuration.logarithmicDepthBuffer; + this.depthDownsampleQuad.render(renderer); + } + this.effectShaderQuad.material.uniforms["sceneDiffuse"].value = this.beautyRenderTarget.texture; + this.effectShaderQuad.material.uniforms["sceneDepth"].value = this.configuration.halfRes ? this.depthDownsampleTarget.texture[0] : this.beautyRenderTarget.depthTexture; + this.effectShaderQuad.material.uniforms["sceneNormal"].value = this.configuration.halfRes ? this.depthDownsampleTarget.texture[1] : null; + this.effectShaderQuad.material.uniforms["projMat"].value = this.camera.projectionMatrix; + this.effectShaderQuad.material.uniforms["viewMat"].value = this.camera.matrixWorldInverse; + this.effectShaderQuad.material.uniforms["projViewMat"].value = this.camera.projectionMatrix.clone().multiply(this.camera.matrixWorldInverse.clone()); + this.effectShaderQuad.material.uniforms["projectionMatrixInv"].value = this.camera.projectionMatrixInverse; + this.effectShaderQuad.material.uniforms["viewMatrixInv"].value = this.camera.matrixWorld; + this.effectShaderQuad.material.uniforms["cameraPos"].value = this.camera.getWorldPosition(new Vector3$1()); + this.effectShaderQuad.material.uniforms["resolution"].value = this.configuration.halfRes ? this._r.clone().multiplyScalar(0.5).floor() : this._r; + this.effectShaderQuad.material.uniforms["time"].value = performance.now() / 1000; + this.effectShaderQuad.material.uniforms["samples"].value = this.samples; + this.effectShaderQuad.material.uniforms["samplesR"].value = this.samplesR; + this.effectShaderQuad.material.uniforms["bluenoise"].value = this.bluenoise; + this.effectShaderQuad.material.uniforms["radius"].value = trueRadius; + this.effectShaderQuad.material.uniforms["distanceFalloff"].value = this.configuration.distanceFalloff; + this.effectShaderQuad.material.uniforms["near"].value = this.camera.near; + this.effectShaderQuad.material.uniforms["far"].value = this.camera.far; + this.effectShaderQuad.material.uniforms["logDepth"].value = renderer.capabilities.logarithmicDepthBuffer; + this.effectShaderQuad.material.uniforms["ortho"].value = this.camera.isOrthographicCamera; + this.effectShaderQuad.material.uniforms["screenSpaceRadius"].value = this.configuration.screenSpaceRadius; + // Start the AO + renderer.setRenderTarget(this.writeTargetInternal); + this.effectShaderQuad.render(renderer); + // End the AO + // Start the blur + for(let i = 0; i < this.configuration.denoiseIterations; i++){ + [this.writeTargetInternal, this.readTargetInternal] = [ + this.readTargetInternal, + this.writeTargetInternal + ]; + this.poissonBlurQuad.material.uniforms["tDiffuse"].value = this.readTargetInternal.texture; + this.poissonBlurQuad.material.uniforms["sceneDepth"].value = this.configuration.halfRes ? this.depthDownsampleTarget.texture[0] : this.beautyRenderTarget.depthTexture; + this.poissonBlurQuad.material.uniforms["projMat"].value = this.camera.projectionMatrix; + this.poissonBlurQuad.material.uniforms["viewMat"].value = this.camera.matrixWorldInverse; + this.poissonBlurQuad.material.uniforms["projectionMatrixInv"].value = this.camera.projectionMatrixInverse; + this.poissonBlurQuad.material.uniforms["viewMatrixInv"].value = this.camera.matrixWorld; + this.poissonBlurQuad.material.uniforms["cameraPos"].value = this.camera.getWorldPosition(new Vector3$1()); + this.poissonBlurQuad.material.uniforms["resolution"].value = this.configuration.halfRes ? this._r.clone().multiplyScalar(0.5).floor() : this._r; + this.poissonBlurQuad.material.uniforms["time"].value = performance.now() / 1000; + this.poissonBlurQuad.material.uniforms["blueNoise"].value = this.bluenoise; + this.poissonBlurQuad.material.uniforms["radius"].value = this.configuration.denoiseRadius * (this.configuration.halfRes ? 0.5 : 1); + this.poissonBlurQuad.material.uniforms["worldRadius"].value = trueRadius; + this.poissonBlurQuad.material.uniforms["distanceFalloff"].value = this.configuration.distanceFalloff; + this.poissonBlurQuad.material.uniforms["index"].value = i; + this.poissonBlurQuad.material.uniforms["poissonDisk"].value = this.samplesDenoise; + this.poissonBlurQuad.material.uniforms["near"].value = this.camera.near; + this.poissonBlurQuad.material.uniforms["far"].value = this.camera.far; + this.poissonBlurQuad.material.uniforms["logDepth"].value = renderer.capabilities.logarithmicDepthBuffer; + this.poissonBlurQuad.material.uniforms["screenSpaceRadius"].value = this.configuration.screenSpaceRadius; + renderer.setRenderTarget(this.writeTargetInternal); + this.poissonBlurQuad.render(renderer); + } + // Now, we have the blurred AO in writeTargetInternal + // End the blur + // Start the composition + this.effectCompositerQuad.material.uniforms["sceneDiffuse"].value = this.beautyRenderTarget.texture; + this.effectCompositerQuad.material.uniforms["sceneDepth"].value = this.beautyRenderTarget.depthTexture; + this.effectCompositerQuad.material.uniforms["near"].value = this.camera.near; + this.effectCompositerQuad.material.uniforms["far"].value = this.camera.far; + this.effectCompositerQuad.material.uniforms["projectionMatrixInv"].value = this.camera.projectionMatrixInverse; + this.effectCompositerQuad.material.uniforms["viewMatrixInv"].value = this.camera.matrixWorld; + this.effectCompositerQuad.material.uniforms["logDepth"].value = renderer.capabilities.logarithmicDepthBuffer; + this.effectCompositerQuad.material.uniforms["ortho"].value = this.camera.isOrthographicCamera; + this.effectCompositerQuad.material.uniforms["downsampledDepth"].value = this.configuration.halfRes ? this.depthDownsampleTarget.texture[0] : this.beautyRenderTarget.depthTexture; + this.effectCompositerQuad.material.uniforms["resolution"].value = this._r; + this.effectCompositerQuad.material.uniforms["blueNoise"].value = this.bluenoise; + this.effectCompositerQuad.material.uniforms["intensity"].value = this.configuration.intensity; + this.effectCompositerQuad.material.uniforms["renderMode"].value = this.configuration.renderMode; + this.effectCompositerQuad.material.uniforms["screenSpaceRadius"].value = this.configuration.screenSpaceRadius; + this.effectCompositerQuad.material.uniforms["radius"].value = trueRadius; + this.effectCompositerQuad.material.uniforms["distanceFalloff"].value = this.configuration.distanceFalloff; + this.effectCompositerQuad.material.uniforms["gammaCorrection"].value = this.configuration.gammaCorrection; + this.effectCompositerQuad.material.uniforms["tDiffuse"].value = this.writeTargetInternal.texture; + this.effectCompositerQuad.material.uniforms["color"].value = this._c.copy(this.configuration.color).convertSRGBToLinear(); + this.effectCompositerQuad.material.uniforms["colorMultiply"].value = this.configuration.colorMultiply; + this.effectCompositerQuad.material.uniforms["cameraPos"].value = this.camera.getWorldPosition(new Vector3$1()); + this.effectCompositerQuad.material.uniforms["fog"].value = !!this.scene.fog; + if (this.scene.fog) { + if (this.scene.fog.isFog) { + this.effectCompositerQuad.material.uniforms["fogExp"].value = false; + this.effectCompositerQuad.material.uniforms["fogNear"].value = this.scene.fog.near; + this.effectCompositerQuad.material.uniforms["fogFar"].value = this.scene.fog.far; + } else if (this.scene.fog.isFogExp2) { + this.effectCompositerQuad.material.uniforms["fogExp"].value = true; + this.effectCompositerQuad.material.uniforms["fogDensity"].value = this.scene.fog.density; + } else console.error(`Unsupported fog type ${this.scene.fog.constructor.name} in SSAOPass.`); + } + renderer.setRenderTarget(this.renderToScreen ? null : writeBuffer); + this.effectCompositerQuad.render(renderer); + if (this.debugMode) { + gl.endQuery(ext.TIME_ELAPSED_EXT); + $05f6997e4b65da14$var$checkTimerQuery(timerQuery, gl, this); + } + renderer.xr.enabled = xrEnabled; } - } - IFC4X32.IfcDoorLiningProperties = IfcDoorLiningProperties; - class IfcDoorPanelProperties extends IfcPreDefinedPropertySet { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, PanelDepth, PanelOperation, PanelWidth, PanelPosition, ShapeAspectStyle) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.PanelDepth = PanelDepth; - this.PanelOperation = PanelOperation; - this.PanelWidth = PanelWidth; - this.PanelPosition = PanelPosition; - this.ShapeAspectStyle = ShapeAspectStyle; - this.type = 1714330368; + /** + * Enables the debug mode of the AO, meaning the lastTime value will be updated. + */ enableDebugMode() { + this.debugMode = true; } - } - IFC4X32.IfcDoorPanelProperties = IfcDoorPanelProperties; - class IfcDoorType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, OperationType, ParameterTakesPrecedence, UserDefinedOperationType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.OperationType = OperationType; - this.ParameterTakesPrecedence = ParameterTakesPrecedence; - this.UserDefinedOperationType = UserDefinedOperationType; - this.type = 2323601079; + /** + * Disables the debug mode of the AO, meaning the lastTime value will not be updated. + */ disableDebugMode() { + this.debugMode = false; } - } - IFC4X32.IfcDoorType = IfcDoorType; - class IfcDraughtingPreDefinedColour extends IfcPreDefinedColour { - constructor(expressID, Name) { - super(expressID, Name); - this.Name = Name; - this.type = 445594917; + /** + * Sets the display mode of the AO + * @param {"Combined" | "AO" | "No AO" | "Split" | "Split AO"} mode - The display mode. + */ setDisplayMode(mode) { + this.configuration.renderMode = [ + "Combined", + "AO", + "No AO", + "Split", + "Split AO" + ].indexOf(mode); } - } - IFC4X32.IfcDraughtingPreDefinedColour = IfcDraughtingPreDefinedColour; - class IfcDraughtingPreDefinedCurveFont extends IfcPreDefinedCurveFont { - constructor(expressID, Name) { - super(expressID, Name); - this.Name = Name; - this.type = 4006246654; + /** + * + * @param {"Performance" | "Low" | "Medium" | "High" | "Ultra"} mode + */ setQualityMode(mode) { + if (mode === "Performance") { + this.configuration.aoSamples = 8; + this.configuration.denoiseSamples = 4; + this.configuration.denoiseRadius = 12; + } else if (mode === "Low") { + this.configuration.aoSamples = 16; + this.configuration.denoiseSamples = 4; + this.configuration.denoiseRadius = 12; + } else if (mode === "Medium") { + this.configuration.aoSamples = 16; + this.configuration.denoiseSamples = 8; + this.configuration.denoiseRadius = 12; + } else if (mode === "High") { + this.configuration.aoSamples = 64; + this.configuration.denoiseSamples = 8; + this.configuration.denoiseRadius = 6; + } else if (mode === "Ultra") { + this.configuration.aoSamples = 64; + this.configuration.denoiseSamples = 16; + this.configuration.denoiseRadius = 6; + } } - } - IFC4X32.IfcDraughtingPreDefinedCurveFont = IfcDraughtingPreDefinedCurveFont; - class IfcElement extends IfcProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1758889154; +} + +/** + * Gamma Correction Shader + * http://en.wikipedia.org/wiki/gamma_correction + */ + +const GammaCorrectionShader = { + + uniforms: { + + 'tDiffuse': { value: null } + + }, + + vertexShader: /* glsl */` + + varying vec2 vUv; + + void main() { + + vUv = uv; + gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); + + }`, + + fragmentShader: /* glsl */` + + uniform sampler2D tDiffuse; + + varying vec2 vUv; + + void main() { + + vec4 tex = texture2D( tDiffuse, vUv ); + + gl_FragColor = LinearTosRGB( tex ); + + }` + +}; + +// Gets the plane information (ax + by + cz = d) of each face, where: +// - (a, b, c) is the normal vector of the plane +// - d is the signed distance to the origin +function getPlaneDistanceMaterial() { + return new THREE$1.ShaderMaterial({ + side: 2, + clipping: true, + uniforms: {}, + vertexShader: ` + varying vec4 vColor; + + #include + + void main() { + #include + + vec4 absPosition = vec4(position, 1.0); + vec3 trueNormal = normal; + + #ifdef USE_INSTANCING + absPosition = instanceMatrix * absPosition; + trueNormal = (instanceMatrix * vec4(normal, 0.)).xyz; + #endif + + absPosition = modelMatrix * absPosition; + trueNormal = (normalize(modelMatrix * vec4(trueNormal, 0.))).xyz; + + vec3 planePosition = absPosition.xyz / 40.; + float d = abs(dot(trueNormal, planePosition)); + vColor = vec4(abs(trueNormal), d); + gl_Position = projectionMatrix * viewMatrix * absPosition; + + #include + #include + } + `, + fragmentShader: ` + varying vec4 vColor; + + #include + + void main() { + #include + gl_FragColor = vColor; } - } - IFC4X32.IfcElement = IfcElement; - class IfcElementAssembly extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, AssemblyPlace, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.AssemblyPlace = AssemblyPlace; - this.PredefinedType = PredefinedType; - this.type = 4123344466; + `, + }); +} + +// Gets the plane information (ax + by + cz = d) of each face, where: +// - (a, b, c) is the normal vector of the plane +// - d is the signed distance to the origin +function getProjectedNormalMaterial() { + return new THREE$1.ShaderMaterial({ + side: 2, + clipping: true, + uniforms: {}, + vertexShader: ` + varying vec3 vCameraPosition; + varying vec3 vPosition; + varying vec3 vNormal; + + #include + + void main() { + #include + + vec4 absPosition = vec4(position, 1.0); + vNormal = normal; + + #ifdef USE_INSTANCING + absPosition = instanceMatrix * absPosition; + vNormal = (instanceMatrix * vec4(normal, 0.)).xyz; + #endif + + absPosition = modelMatrix * absPosition; + vNormal = (normalize(modelMatrix * vec4(vNormal, 0.))).xyz; + + gl_Position = projectionMatrix * viewMatrix * absPosition; + + vCameraPosition = cameraPosition; + vPosition = absPosition.xyz; + + #include + #include + } + `, + fragmentShader: ` + varying vec3 vCameraPosition; + varying vec3 vPosition; + varying vec3 vNormal; + + #include + + void main() { + #include + vec3 cameraPixelVec = normalize(vCameraPosition - vPosition); + float difference = abs(dot(vNormal, cameraPixelVec)); + + // This achieves a double gloss effect: when the surface is perpendicular and when it's parallel + difference = abs((difference * 2.) - 1.); + + gl_FragColor = vec4(difference, difference, difference, 1.); + } + `, + }); +} + +// Follows the structure of +// https://github.com/mrdoob/three.js/blob/master/examples/jsm/postprocessing/OutlinePass.js +class CustomEffectsPass extends Pass { + get lineColor() { + return this._lineColor; } - } - IFC4X32.IfcElementAssembly = IfcElementAssembly; - class IfcElementAssemblyType extends IfcElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2397081782; + set lineColor(lineColor) { + this._lineColor = lineColor; + const material = this.fsQuad.material; + material.uniforms.lineColor.value.set(lineColor); } - } - IFC4X32.IfcElementAssemblyType = IfcElementAssemblyType; - class IfcElementComponent extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1623761950; + get tolerance() { + return this._tolerance; } - } - IFC4X32.IfcElementComponent = IfcElementComponent; - class IfcElementComponentType extends IfcElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 2590856083; + set tolerance(value) { + this._tolerance = value; + const material = this.fsQuad.material; + material.uniforms.tolerance.value = value; } - } - IFC4X32.IfcElementComponentType = IfcElementComponentType; - class IfcEllipse extends IfcConic { - constructor(expressID, Position, SemiAxis1, SemiAxis2) { - super(expressID, Position); - this.Position = Position; - this.SemiAxis1 = SemiAxis1; - this.SemiAxis2 = SemiAxis2; - this.type = 1704287377; + get opacity() { + return this._opacity; } - } - IFC4X32.IfcEllipse = IfcEllipse; - class IfcEnergyConversionDeviceType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 2107101300; + set opacity(value) { + this._opacity = value; + const material = this.fsQuad.material; + material.uniforms.opacity.value = value; } - } - IFC4X32.IfcEnergyConversionDeviceType = IfcEnergyConversionDeviceType; - class IfcEngineType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 132023988; + get glossEnabled() { + return this._glossEnabled; } - } - IFC4X32.IfcEngineType = IfcEngineType; - class IfcEvaporativeCoolerType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3174744832; + set glossEnabled(active) { + if (active === this._glossEnabled) + return; + this._glossEnabled = active; + const material = this.fsQuad.material; + material.uniforms.glossEnabled.value = active ? 1 : 0; } - } - IFC4X32.IfcEvaporativeCoolerType = IfcEvaporativeCoolerType; - class IfcEvaporatorType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3390157468; + get glossExponent() { + return this._glossExponent; } - } - IFC4X32.IfcEvaporatorType = IfcEvaporatorType; - class IfcEvent extends IfcProcess { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, PredefinedType, EventTriggerType, UserDefinedEventTriggerType, EventOccurenceTime) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.PredefinedType = PredefinedType; - this.EventTriggerType = EventTriggerType; - this.UserDefinedEventTriggerType = UserDefinedEventTriggerType; - this.EventOccurenceTime = EventOccurenceTime; - this.type = 4148101412; + set glossExponent(value) { + this._glossExponent = value; + const material = this.fsQuad.material; + material.uniforms.glossExponent.value = value; } - } - IFC4X32.IfcEvent = IfcEvent; - class IfcExternalSpatialStructureElement extends IfcSpatialElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.type = 2853485674; + get minGloss() { + return this._minGloss; } - } - IFC4X32.IfcExternalSpatialStructureElement = IfcExternalSpatialStructureElement; - class IfcFacetedBrep extends IfcManifoldSolidBrep { - constructor(expressID, Outer) { - super(expressID, Outer); - this.Outer = Outer; - this.type = 807026263; + set minGloss(value) { + this._minGloss = value; + const material = this.fsQuad.material; + material.uniforms.minGloss.value = value; } - } - IFC4X32.IfcFacetedBrep = IfcFacetedBrep; - class IfcFacetedBrepWithVoids extends IfcFacetedBrep { - constructor(expressID, Outer, Voids) { - super(expressID, Outer); - this.Outer = Outer; - this.Voids = Voids; - this.type = 3737207727; + get maxGloss() { + new THREE$1.MeshBasicMaterial().color.convertLinearToSRGB(); + return this._maxGloss; } - } - IFC4X32.IfcFacetedBrepWithVoids = IfcFacetedBrepWithVoids; - class IfcFacility extends IfcSpatialStructureElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.type = 24185140; + set maxGloss(value) { + this._maxGloss = value; + const material = this.fsQuad.material; + material.uniforms.maxGloss.value = value; } - } - IFC4X32.IfcFacility = IfcFacility; - class IfcFacilityPart extends IfcSpatialStructureElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.UsageType = UsageType; - this.type = 1310830890; + get outlineEnabled() { + return this._outlineEnabled; } - } - IFC4X32.IfcFacilityPart = IfcFacilityPart; - class IfcFacilityPartCommon extends IfcFacilityPart { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.UsageType = UsageType; - this.PredefinedType = PredefinedType; - this.type = 4228831410; + set outlineEnabled(active) { + if (active === this._outlineEnabled) + return; + this._outlineEnabled = active; + const material = this.fsQuad.material; + material.uniforms.outlineEnabled.value = active ? 1 : 0; } - } - IFC4X32.IfcFacilityPartCommon = IfcFacilityPartCommon; - class IfcFastener extends IfcElementComponent { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 647756555; + constructor(resolution, components) { + super(); + this.excludedMeshes = []; + this.outlinedMeshes = {}; + this._outlineScene = new THREE$1.Scene(); + this._outlineEnabled = false; + this._lineColor = 0x999999; + this._opacity = 0.4; + this._tolerance = 3; + this._glossEnabled = true; + this._glossExponent = 1.9; + this._minGloss = -0.1; + this._maxGloss = 0.1; + this._outlinesNeedsUpdate = false; + this.components = components; + this.renderScene = components.scene.get(); + this.renderCamera = components.camera.get(); + this.resolution = new THREE$1.Vector2(resolution.x, resolution.y); + this.fsQuad = new FullScreenQuad(); + this.fsQuad.material = this.createOutlinePostProcessMaterial(); + this.planeBuffer = this.newRenderTarget(); + this.glossBuffer = this.newRenderTarget(); + this.outlineBuffer = this.newRenderTarget(); + const normalMaterial = getPlaneDistanceMaterial(); + normalMaterial.clippingPlanes = components.renderer.clippingPlanes; + this.normalOverrideMaterial = normalMaterial; + const glossMaterial = getProjectedNormalMaterial(); + glossMaterial.clippingPlanes = components.renderer.clippingPlanes; + this.glossOverrideMaterial = glossMaterial; + } + async dispose() { + this.planeBuffer.dispose(); + this.glossBuffer.dispose(); + this.outlineBuffer.dispose(); + this.normalOverrideMaterial.dispose(); + this.glossOverrideMaterial.dispose(); + this.fsQuad.dispose(); + this.excludedMeshes = []; + this._outlineScene.children = []; + const disposer = await this.components.tools.get(Disposer); + for (const name in this.outlinedMeshes) { + const style = this.outlinedMeshes[name]; + for (const mesh of style.meshes) { + disposer.destroy(mesh, true, true); + } + style.material.dispose(); + } + } + setSize(width, height) { + this.planeBuffer.setSize(width, height); + this.glossBuffer.setSize(width, height); + this.outlineBuffer.setSize(width, height); + this.resolution.set(width, height); + const material = this.fsQuad.material; + material.uniforms.screenSize.value.set(this.resolution.x, this.resolution.y, 1 / this.resolution.x, 1 / this.resolution.y); + } + render(renderer, writeBuffer, readBuffer) { + // Turn off writing to the depth buffer + // because we need to read from it in the subsequent passes. + const depthBufferValue = writeBuffer.depthBuffer; + writeBuffer.depthBuffer = false; + // 1. Re-render the scene to capture all normals in a texture. + const previousOverrideMaterial = this.renderScene.overrideMaterial; + const previousBackground = this.renderScene.background; + this.renderScene.background = null; + for (const mesh of this.excludedMeshes) { + mesh.visible = false; + } + // Render normal pass + renderer.setRenderTarget(this.planeBuffer); + this.renderScene.overrideMaterial = this.normalOverrideMaterial; + renderer.render(this.renderScene, this.renderCamera); + // Render gloss pass + if (this._glossEnabled) { + renderer.setRenderTarget(this.glossBuffer); + this.renderScene.overrideMaterial = this.glossOverrideMaterial; + renderer.render(this.renderScene, this.renderCamera); + } + this.renderScene.overrideMaterial = previousOverrideMaterial; + // Render outline pass + if (this._outlineEnabled) { + let outlinedMeshesFound = false; + for (const name in this.outlinedMeshes) { + const style = this.outlinedMeshes[name]; + for (const mesh of style.meshes) { + outlinedMeshesFound = true; + mesh.userData.materialPreOutline = mesh.material; + mesh.material = style.material; + mesh.userData.groupsPreOutline = mesh.geometry.groups; + mesh.geometry.groups = []; + if (mesh instanceof THREE$1.InstancedMesh) { + mesh.userData.colorPreOutline = mesh.instanceColor; + mesh.instanceColor = null; + } + mesh.userData.parentPreOutline = mesh.parent; + this._outlineScene.add(mesh); + } + } + // This way, when there are no outlines meshes, it clears the outlines buffer only once + // and then skips this render + if (outlinedMeshesFound || this._outlinesNeedsUpdate) { + renderer.setRenderTarget(this.outlineBuffer); + renderer.render(this._outlineScene, this.renderCamera); + this._outlinesNeedsUpdate = outlinedMeshesFound; + } + for (const name in this.outlinedMeshes) { + const style = this.outlinedMeshes[name]; + for (const mesh of style.meshes) { + mesh.material = mesh.userData.materialPreOutline; + mesh.geometry.groups = mesh.userData.groupsPreOutline; + if (mesh instanceof THREE$1.InstancedMesh) { + mesh.instanceColor = mesh.userData.colorPreOutline; + } + if (mesh.userData.parentPreOutline) { + mesh.userData.parentPreOutline.add(mesh); + } + mesh.userData.materialPreOutline = undefined; + mesh.userData.groupsPreOutline = undefined; + mesh.userData.colorPreOutline = undefined; + mesh.userData.parentPreOutline = undefined; + } + } + } + for (const mesh of this.excludedMeshes) { + mesh.visible = true; + } + this.renderScene.background = previousBackground; + const material = this.fsQuad.material; + material.uniforms.planeBuffer.value = this.planeBuffer.texture; + material.uniforms.glossBuffer.value = this.glossBuffer.texture; + material.uniforms.outlineBuffer.value = this.outlineBuffer.texture; + material.uniforms.sceneColorBuffer.value = readBuffer.texture; + if (this.renderToScreen) { + // If this is the last effect, then renderToScreen is true. + // So we should render to the screen by setting target null + // Otherwise, just render into the writeBuffer that the next effect will use as its read buffer. + renderer.setRenderTarget(null); + this.fsQuad.render(renderer); + } + else { + renderer.setRenderTarget(writeBuffer); + this.fsQuad.render(renderer); + } + // Reset the depthBuffer value so we continue writing to it in the next render. + writeBuffer.depthBuffer = depthBufferValue; + } + get vertexShader() { + return ` + varying vec2 vUv; + void main() { + vUv = uv; + gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0); + } + `; + } + get fragmentShader() { + return ` + uniform sampler2D sceneColorBuffer; + uniform sampler2D planeBuffer; + uniform sampler2D glossBuffer; + uniform sampler2D outlineBuffer; + uniform vec4 screenSize; + uniform vec3 lineColor; + + uniform float outlineEnabled; + + uniform int width; + uniform float opacity; + uniform float tolerance; + uniform float glossExponent; + uniform float minGloss; + uniform float maxGloss; + uniform float glossEnabled; + + varying vec2 vUv; + + vec4 getValue(sampler2D buffer, int x, int y) { + return texture2D(buffer, vUv + screenSize.zw * vec2(x, y)); + } + + float normalDiff(vec3 normal1, vec3 normal2) { + return ((dot(normal1, normal2) - 1.) * -1.) / 2.; + } + + // Returns 0 if it's background, 1 if it's not + float getIsBackground(vec3 normal) { + float background = 1.0; + background *= step(normal.x, 0.); + background *= step(normal.y, 0.); + background *= step(normal.z, 0.); + background = (background - 1.) * -1.; + return background; + } + + void main() { + + vec4 sceneColor = getValue(sceneColorBuffer, 0, 0); + vec3 normSceneColor = normalize(sceneColor.rgb); + + vec4 plane = getValue(planeBuffer, 0, 0); + vec3 normal = plane.xyz; + float distance = plane.w; + + vec3 normalTop = getValue(planeBuffer, 0, width).rgb; + vec3 normalBottom = getValue(planeBuffer, 0, -width).rgb; + vec3 normalRight = getValue(planeBuffer, width, 0).rgb; + vec3 normalLeft = getValue(planeBuffer, -width, 0).rgb; + vec3 normalTopRight = getValue(planeBuffer, width, width).rgb; + vec3 normalTopLeft = getValue(planeBuffer, -width, width).rgb; + vec3 normalBottomRight = getValue(planeBuffer, width, -width).rgb; + vec3 normalBottomLeft = getValue(planeBuffer, -width, -width).rgb; + + float distanceTop = getValue(planeBuffer, 0, width).a; + float distanceBottom = getValue(planeBuffer, 0, -width).a; + float distanceRight = getValue(planeBuffer, width, 0).a; + float distanceLeft = getValue(planeBuffer, -width, 0).a; + float distanceTopRight = getValue(planeBuffer, width, width).a; + float distanceTopLeft = getValue(planeBuffer, -width, width).a; + float distanceBottomRight = getValue(planeBuffer, width, -width).a; + float distanceBottomLeft = getValue(planeBuffer, -width, -width).a; + + vec3 sceneColorTop = normalize(getValue(sceneColorBuffer, 1, 0).rgb); + vec3 sceneColorBottom = normalize(getValue(sceneColorBuffer, -1, 0).rgb); + vec3 sceneColorLeft = normalize(getValue(sceneColorBuffer, 0, -1).rgb); + vec3 sceneColorRight = normalize(getValue(sceneColorBuffer, 0, 1).rgb); + vec3 sceneColorTopRight = normalize(getValue(sceneColorBuffer, 1, 1).rgb); + vec3 sceneColorBottomRight = normalize(getValue(sceneColorBuffer, -1, 1).rgb); + vec3 sceneColorTopLeft = normalize(getValue(sceneColorBuffer, 1, 1).rgb); + vec3 sceneColorBottomLeft = normalize(getValue(sceneColorBuffer, -1, 1).rgb); + + // Checks if the planes of this texel and the neighbour texels are different + + float planeDiff = 0.0; + + planeDiff += step(0.001, normalDiff(normal, normalTop)); + planeDiff += step(0.001, normalDiff(normal, normalBottom)); + planeDiff += step(0.001, normalDiff(normal, normalLeft)); + planeDiff += step(0.001, normalDiff(normal, normalRight)); + planeDiff += step(0.001, normalDiff(normal, normalTopRight)); + planeDiff += step(0.001, normalDiff(normal, normalTopLeft)); + planeDiff += step(0.001, normalDiff(normal, normalBottomRight)); + planeDiff += step(0.001, normalDiff(normal, normalBottomLeft)); + + planeDiff += step(0.001, normalDiff(normSceneColor, sceneColorTop)); + planeDiff += step(0.001, normalDiff(normSceneColor, sceneColorBottom)); + planeDiff += step(0.001, normalDiff(normSceneColor, sceneColorLeft)); + planeDiff += step(0.001, normalDiff(normSceneColor, sceneColorRight)); + planeDiff += step(0.001, normalDiff(normSceneColor, sceneColorTopRight)); + planeDiff += step(0.001, normalDiff(normSceneColor, sceneColorTopLeft)); + planeDiff += step(0.001, normalDiff(normSceneColor, sceneColorBottomRight)); + planeDiff += step(0.001, normalDiff(normSceneColor, sceneColorBottomLeft)); + + planeDiff += step(0.001, abs(distance - distanceTop)); + planeDiff += step(0.001, abs(distance - distanceBottom)); + planeDiff += step(0.001, abs(distance - distanceLeft)); + planeDiff += step(0.001, abs(distance - distanceRight)); + planeDiff += step(0.001, abs(distance - distanceTopRight)); + planeDiff += step(0.001, abs(distance - distanceTopLeft)); + planeDiff += step(0.001, abs(distance - distanceBottomRight)); + planeDiff += step(0.001, abs(distance - distanceBottomLeft)); + + // Add extra background outline + + int width2 = width + 1; + vec3 normalTop2 = getValue(planeBuffer, 0, width2).rgb; + vec3 normalBottom2 = getValue(planeBuffer, 0, -width2).rgb; + vec3 normalRight2 = getValue(planeBuffer, width2, 0).rgb; + vec3 normalLeft2 = getValue(planeBuffer, -width2, 0).rgb; + vec3 normalTopRight2 = getValue(planeBuffer, width2, width2).rgb; + vec3 normalTopLeft2 = getValue(planeBuffer, -width2, width2).rgb; + vec3 normalBottomRight2 = getValue(planeBuffer, width2, -width2).rgb; + vec3 normalBottomLeft2 = getValue(planeBuffer, -width2, -width2).rgb; + + planeDiff += -(getIsBackground(normalTop2) - 1.); + planeDiff += -(getIsBackground(normalBottom2) - 1.); + planeDiff += -(getIsBackground(normalRight2) - 1.); + planeDiff += -(getIsBackground(normalLeft2) - 1.); + planeDiff += -(getIsBackground(normalTopRight2) - 1.); + planeDiff += -(getIsBackground(normalBottomRight2) - 1.); + planeDiff += -(getIsBackground(normalBottomRight2) - 1.); + planeDiff += -(getIsBackground(normalBottomLeft2) - 1.); + + // Tolerance sets the minimum amount of differences to consider + // this texel an edge + + float line = step(tolerance, planeDiff); + + // Exclude background and apply opacity + + float background = getIsBackground(normal); + line *= background; + line *= opacity; + + // Add gloss + + vec3 gloss = getValue(glossBuffer, 0, 0).xyz; + float diffGloss = abs(maxGloss - minGloss); + vec3 glossExpVector = vec3(glossExponent,glossExponent,glossExponent); + gloss = min(pow(gloss, glossExpVector), vec3(1.,1.,1.)); + gloss *= diffGloss; + gloss += minGloss; + vec4 glossedColor = sceneColor + vec4(gloss, 1.) * glossEnabled; + + vec4 corrected = mix(sceneColor, glossedColor, background); + + // Draw lines + + corrected = mix(corrected, vec4(lineColor, 1.), line); + + // Add outline + + vec4 outlinePreview =getValue(outlineBuffer, 0, 0); + float outlineColorCorrection = 1. / max(0.2, outlinePreview.a); + vec3 outlineColor = outlinePreview.rgb * outlineColorCorrection; + + // thickness between 10 and 2, opacity between 1 and 0.2 + int outlineThickness = int(outlinePreview.a * 10.); + + float outlineDiff = 0.; + + outlineDiff += step(0.1, getValue(outlineBuffer, 0, 0).a); + outlineDiff += step(0.1, getValue(outlineBuffer, 1, 0).a); + outlineDiff += step(0.1, getValue(outlineBuffer, -1, 0).a); + outlineDiff += step(0.1, getValue(outlineBuffer, 0, -1).a); + outlineDiff += step(0.1, getValue(outlineBuffer, 0, 1).a); + outlineDiff += step(0.1, getValue(outlineBuffer, outlineThickness, 0).a); + outlineDiff += step(0.1, getValue(outlineBuffer, -outlineThickness, 0).a); + outlineDiff += step(0.1, getValue(outlineBuffer, 0, -outlineThickness).a); + outlineDiff += step(0.1, getValue(outlineBuffer, 0, outlineThickness).a); + outlineDiff += step(0.1, getValue(outlineBuffer, outlineThickness, outlineThickness).a); + outlineDiff += step(0.1, getValue(outlineBuffer, -outlineThickness, outlineThickness).a); + outlineDiff += step(0.1, getValue(outlineBuffer, -outlineThickness, -outlineThickness).a); + outlineDiff += step(0.1, getValue(outlineBuffer, outlineThickness, -outlineThickness).a); + + float outLine = step(4., outlineDiff) * step(outlineDiff, 12.) * outlineEnabled; + corrected = mix(corrected, vec4(outlineColor, 1.), outLine); + + gl_FragColor = corrected; + } + `; + } + createOutlinePostProcessMaterial() { + return new THREE$1.ShaderMaterial({ + uniforms: { + opacity: { value: this._opacity }, + debugVisualize: { value: 0 }, + sceneColorBuffer: { value: null }, + tolerance: { value: this._tolerance }, + planeBuffer: { value: null }, + glossBuffer: { value: null }, + outlineBuffer: { value: null }, + glossEnabled: { value: 1 }, + minGloss: { value: this._minGloss }, + maxGloss: { value: this._maxGloss }, + outlineEnabled: { value: 0 }, + glossExponent: { value: this._glossExponent }, + width: { value: 1 }, + lineColor: { value: new THREE$1.Color(this._lineColor) }, + screenSize: { + value: new THREE$1.Vector4(this.resolution.x, this.resolution.y, 1 / this.resolution.x, 1 / this.resolution.y), + }, + }, + vertexShader: this.vertexShader, + fragmentShader: this.fragmentShader, + }); } - } - IFC4X32.IfcFastener = IfcFastener; - class IfcFastenerType extends IfcElementComponentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2489546625; + newRenderTarget() { + const planeBuffer = new THREE$1.WebGLRenderTarget(this.resolution.x, this.resolution.y); + planeBuffer.texture.colorSpace = "srgb-linear"; + planeBuffer.texture.format = THREE$1.RGBAFormat; + planeBuffer.texture.type = THREE$1.HalfFloatType; + planeBuffer.texture.minFilter = THREE$1.NearestFilter; + planeBuffer.texture.magFilter = THREE$1.NearestFilter; + planeBuffer.texture.generateMipmaps = false; + planeBuffer.stencilBuffer = false; + return planeBuffer; } - } - IFC4X32.IfcFastenerType = IfcFastenerType; - class IfcFeatureElement extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 2827207264; +} + +// source: https://discourse.threejs.org/t/how-to-render-full-outlines-as-a-post-process-tutorial/22674 +class Postproduction { + get basePass() { + if (!this._basePass) { + throw new Error("Custom effects not initialized!"); + } + return this._basePass; } - } - IFC4X32.IfcFeatureElement = IfcFeatureElement; - class IfcFeatureElementAddition extends IfcFeatureElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 2143335405; + get gammaPass() { + if (!this._gammaPass) { + throw new Error("Custom effects not initialized!"); + } + return this._gammaPass; } - } - IFC4X32.IfcFeatureElementAddition = IfcFeatureElementAddition; - class IfcFeatureElementSubtraction extends IfcFeatureElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1287392070; + get customEffects() { + if (!this._customEffects) { + throw new Error("Custom effects not initialized!"); + } + return this._customEffects; } - } - IFC4X32.IfcFeatureElementSubtraction = IfcFeatureElementSubtraction; - class IfcFlowControllerType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 3907093117; + get n8ao() { + if (!this._n8ao) { + throw new Error("Custom effects not initialized!"); + } + return this._n8ao; } - } - IFC4X32.IfcFlowControllerType = IfcFlowControllerType; - class IfcFlowFittingType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 3198132628; + get enabled() { + return this._enabled; } - } - IFC4X32.IfcFlowFittingType = IfcFlowFittingType; - class IfcFlowMeterType extends IfcFlowControllerType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3815607619; + set enabled(active) { + if (!this._initialized) { + this.initialize(); + } + this._enabled = active; } - } - IFC4X32.IfcFlowMeterType = IfcFlowMeterType; - class IfcFlowMovingDeviceType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 1482959167; + get settings() { + return { ...this._settings }; } - } - IFC4X32.IfcFlowMovingDeviceType = IfcFlowMovingDeviceType; - class IfcFlowSegmentType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 1834744321; + constructor(components, renderer) { + this.components = components; + this.renderer = renderer; + this.excludedItems = new Set(); + this._enabled = false; + this._initialized = false; + this._settings = { + gamma: true, + custom: true, + ao: false, + }; + this._renderTarget = new THREE$1.WebGLRenderTarget(window.innerWidth, window.innerHeight); + this._renderTarget.texture.colorSpace = "srgb-linear"; + this.composer = new EffectComposer(this.renderer, this._renderTarget); + this.composer.setSize(window.innerWidth, window.innerHeight); + } + async dispose() { + var _a, _b, _c, _d; + this._renderTarget.dispose(); + (_a = this._depthTexture) === null || _a === void 0 ? void 0 : _a.dispose(); + await ((_b = this._customEffects) === null || _b === void 0 ? void 0 : _b.dispose()); + (_c = this._gammaPass) === null || _c === void 0 ? void 0 : _c.dispose(); + (_d = this._n8ao) === null || _d === void 0 ? void 0 : _d.dispose(); + this.excludedItems.clear(); + } + setPasses(settings) { + // This check can prevent some bugs + let settingsChanged = false; + for (const name in settings) { + const key = name; + if (this.settings[key] !== settings[key]) { + settingsChanged = true; + break; + } + } + if (!settingsChanged) { + return; + } + for (const name in settings) { + const key = name; + if (this._settings[key] !== undefined) { + this._settings[key] = settings[key]; + } + } + this.updatePasses(); } - } - IFC4X32.IfcFlowSegmentType = IfcFlowSegmentType; - class IfcFlowStorageDeviceType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 1339347760; + setSize(width, height) { + if (this._initialized) { + this.composer.setSize(width, height); + this.basePass.setSize(width, height); + this.n8ao.setSize(width, height); + this.customEffects.setSize(width, height); + this.gammaPass.setSize(width, height); + } + } + update() { + if (!this._enabled) + return; + this.composer.render(); } - } - IFC4X32.IfcFlowStorageDeviceType = IfcFlowStorageDeviceType; - class IfcFlowTerminalType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 2297155007; + updateCamera() { + const camera = this.components.camera.get(); + if (this._n8ao) { + this._n8ao.camera = camera; + } + if (this._customEffects) { + this._customEffects.renderCamera = camera; + } + if (this._basePass) { + this._basePass.camera = camera; + } } - } - IFC4X32.IfcFlowTerminalType = IfcFlowTerminalType; - class IfcFlowTreatmentDeviceType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 3009222698; + initialize() { + const scene = this.components.scene.get(); + const camera = this.components.camera.get(); + if (!scene || !camera) + return; + if (this.components.camera instanceof OrthoPerspectiveCamera) { + this.components.camera.projectionChanged.add(() => { + this.updateCamera(); + }); + } + const renderer = this.components.renderer; + this.renderer.clippingPlanes = renderer.clippingPlanes; + this.renderer.outputColorSpace = "srgb"; + this.renderer.toneMapping = THREE$1.NoToneMapping; + this.newBasePass(scene, camera); + this.newSaoPass(scene, camera); + this.newGammaPass(); + this.newCustomPass(); + this._initialized = true; + this.updatePasses(); + } + updateProjection(camera) { + this.composer.passes.forEach((pass) => { + // @ts-ignore + pass.camera = camera; + }); + this.update(); } - } - IFC4X32.IfcFlowTreatmentDeviceType = IfcFlowTreatmentDeviceType; - class IfcFootingType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1893162501; + updatePasses() { + for (const pass of this.composer.passes) { + this.composer.removePass(pass); + } + if (this._basePass) { + this.composer.addPass(this.basePass); + } + if (this._settings.gamma) { + this.composer.addPass(this.gammaPass); + } + if (this._settings.ao) { + this.composer.addPass(this.n8ao); + } + if (this._settings.custom) { + this.composer.addPass(this.customEffects); + } } - } - IFC4X32.IfcFootingType = IfcFootingType; - class IfcFurnishingElement extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 263784265; + newCustomPass() { + this._customEffects = new CustomEffectsPass(new THREE$1.Vector2(window.innerWidth, window.innerHeight), this.components); } - } - IFC4X32.IfcFurnishingElement = IfcFurnishingElement; - class IfcFurniture extends IfcFurnishingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1509553395; + newGammaPass() { + this._gammaPass = new ShaderPass(GammaCorrectionShader); } - } - IFC4X32.IfcFurniture = IfcFurniture; - class IfcGeographicElement extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3493046030; + newSaoPass(scene, camera) { + const { width, height } = this.components.renderer.getSize(); + this._n8ao = new $05f6997e4b65da14$export$2d57db20b5eb5e0a(scene, camera, width, height); + // this.composer.addPass(this.n8ao); + const { configuration } = this._n8ao; + configuration.aoSamples = 16; + configuration.denoiseSamples = 1; + configuration.denoiseRadius = 13; + configuration.aoRadius = 1; + configuration.distanceFalloff = 4; + configuration.aoRadius = 1; + configuration.intensity = 4; + configuration.halfRes = true; + configuration.color = new THREE$1.Color().setHex(0xcccccc, "srgb-linear"); } - } - IFC4X32.IfcGeographicElement = IfcGeographicElement; - class IfcGeotechnicalElement extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 4230923436; + newBasePass(scene, camera) { + this._basePass = new RenderPass(scene, camera); } - } - IFC4X32.IfcGeotechnicalElement = IfcGeotechnicalElement; - class IfcGeotechnicalStratum extends IfcGeotechnicalElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1594536857; +} + +/** + * Renderer that uses efficient postproduction effects (e.g. Ambient Occlusion). + */ +class PostproductionRenderer extends SimpleRenderer { + constructor(components, container) { + super(components, container); + this.postproduction = new Postproduction(components, this._renderer); + this.setPostproductionSize(); + this.onResize.add(() => this.resizePostproduction()); + } + /** {@link Updateable.update} */ + async update(_delta) { + var _a, _b; + if (!this.enabled) + return; + await this.onBeforeUpdate.trigger(); + const scene = (_a = this.components.scene) === null || _a === void 0 ? void 0 : _a.get(); + const camera = (_b = this.components.camera) === null || _b === void 0 ? void 0 : _b.get(); + if (!scene || !camera) + return; + if (this.postproduction.enabled) { + this.postproduction.composer.render(); + } + else { + this._renderer.render(scene, camera); + } + this._renderer2D.render(scene, camera); + await this.onAfterUpdate.trigger(); } - } - IFC4X32.IfcGeotechnicalStratum = IfcGeotechnicalStratum; - class IfcGradientCurve extends IfcCompositeCurve { - constructor(expressID, Segments, SelfIntersect, BaseCurve, EndPoint) { - super(expressID, Segments, SelfIntersect); - this.Segments = Segments; - this.SelfIntersect = SelfIntersect; - this.BaseCurve = BaseCurve; - this.EndPoint = EndPoint; - this.type = 2898700619; + /** {@link Disposable.dispose}. */ + async dispose() { + await super.dispose(); + await this.postproduction.dispose(); } - } - IFC4X32.IfcGradientCurve = IfcGradientCurve; - class IfcGroup extends IfcObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.type = 2706460486; + /** {@link Resizeable.resize}. */ + resizePostproduction() { + if (this.postproduction) { + this.setPostproductionSize(); + } } - } - IFC4X32.IfcGroup = IfcGroup; - class IfcHeatExchangerType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1251058090; + setPostproductionSize() { + const { clientWidth, clientHeight } = this.container; + this.postproduction.setSize(clientWidth, clientHeight); } - } - IFC4X32.IfcHeatExchangerType = IfcHeatExchangerType; - class IfcHumidifierType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1806887404; +} + +class ClippingFills { + get visible() { + return this.mesh.parent !== null; } - } - IFC4X32.IfcHumidifierType = IfcHumidifierType; - class IfcImpactProtectionDevice extends IfcElementComponent { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2568555532; + set visible(value) { + const style = this.getStyle(); + if (value) { + const scene = this._components.scene.get(); + scene.add(this.mesh); + if (style) { + style.meshes.add(this.mesh); + } + } + else { + this.mesh.removeFromParent(); + if (style) { + style.meshes.delete(this.mesh); + } + } } - } - IFC4X32.IfcImpactProtectionDevice = IfcImpactProtectionDevice; - class IfcImpactProtectionDeviceType extends IfcElementComponentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3948183225; + set geometry(geometry) { + this._geometry = geometry; + this.mesh.geometry.attributes.position = geometry.attributes.position; } - } - IFC4X32.IfcImpactProtectionDeviceType = IfcImpactProtectionDeviceType; - class IfcIndexedPolyCurve extends IfcBoundedCurve { - constructor(expressID, Points, Segments, SelfIntersect) { - super(expressID); - this.Points = Points; - this.Segments = Segments; - this.SelfIntersect = SelfIntersect; - this.type = 2571569899; + constructor(components, plane, geometry, material) { + // readonly worker: Worker; + this.mesh = new THREE$1.Mesh(new THREE$1.BufferGeometry()); + this._precission = 10000; + this._tempVector = new THREE$1.Vector3(); + // Used to work in the 2D coordinate system of the plane + this._plane2DCoordinateSystem = new THREE$1.Matrix4(); + this._components = components; + this.mesh.material = material; + this.mesh.frustumCulled = false; + this._plane = plane; + const { x, y, z } = plane.normal; + if (Math.abs(x) === 1) { + this._planeAxis = "x"; + } + else if (Math.abs(y) === 1) { + this._planeAxis = "y"; + } + else if (Math.abs(z) === 1) { + this._planeAxis = "z"; + } + this._geometry = geometry; + this.mesh.geometry.attributes.position = geometry.attributes.position; + // To prevent clipping plane overlapping the filling mesh + const offset = plane.normal.clone().multiplyScalar(0.01); + this.mesh.position.copy(offset); + this.visible = true; } - } - IFC4X32.IfcIndexedPolyCurve = IfcIndexedPolyCurve; - class IfcInterceptorType extends IfcFlowTreatmentDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3946677679; + dispose() { + const style = this.getStyle(); + if (style) { + style.meshes.delete(this.mesh); + } + this.mesh.geometry.dispose(); + this.mesh.removeFromParent(); + this.mesh.geometry = null; + this.mesh = null; + this._plane = null; + this._geometry = null; + } + update(elements, blockByIndex) { + const buffer = this._geometry.attributes.position.array; + if (!buffer) + return; + this.updatePlane2DCoordinateSystem(); + const allIndices = []; + let start = 0; + for (let i = 0; i < elements.length; i++) { + const end = elements[i]; + const verticesByBlock = {}; + for (let j = start; j < end; j += 2) { + let block = blockByIndex[j]; + if (block === undefined) { + block = -1; + } + if (!verticesByBlock[block]) { + verticesByBlock[block] = []; + } + verticesByBlock[block].push(j * 3); + } + for (const block in verticesByBlock) { + const vertices = verticesByBlock[block]; + if (!vertices.length) { + continue; + } + const indices = this.computeFill(vertices, buffer); + for (const index of indices) { + allIndices.push(index); + } + } + start = end; + } + this.mesh.geometry.setIndex(allIndices); } - } - IFC4X32.IfcInterceptorType = IfcInterceptorType; - class IfcIntersectionCurve extends IfcSurfaceCurve { - constructor(expressID, Curve3D, AssociatedGeometry, MasterRepresentation) { - super(expressID, Curve3D, AssociatedGeometry, MasterRepresentation); - this.Curve3D = Curve3D; - this.AssociatedGeometry = AssociatedGeometry; - this.MasterRepresentation = MasterRepresentation; - this.type = 3113134337; + computeFill(vertices, buffer) { + const indices = new Map(); + const all2DVertices = {}; + const shapes = new Map(); + let nextShapeID = 0; + const shapesEnds = new Map(); + const shapesStarts = new Map(); + const openShapes = new Set(); + const p = this._precission; + for (let i = 0; i < vertices.length; i++) { + // Convert vertices to indices + const startVertexIndex = vertices[i]; + let x1 = 0; + let y1 = 0; + let x2 = 0; + let y2 = 0; + const globalX1 = buffer[startVertexIndex]; + const globalY1 = buffer[startVertexIndex + 1]; + const globalZ1 = buffer[startVertexIndex + 2]; + const globalX2 = buffer[startVertexIndex + 3]; + const globalY2 = buffer[startVertexIndex + 4]; + const globalZ2 = buffer[startVertexIndex + 5]; + this._tempVector.set(globalX1, globalY1, globalZ1); + this._tempVector.applyMatrix4(this._plane2DCoordinateSystem); + x1 = Math.trunc(this._tempVector.x * p) / p; + y1 = Math.trunc(this._tempVector.y * p) / p; + this._tempVector.set(globalX2, globalY2, globalZ2); + this._tempVector.applyMatrix4(this._plane2DCoordinateSystem); + x2 = Math.trunc(this._tempVector.x * p) / p; + y2 = Math.trunc(this._tempVector.y * p) / p; + if (x1 === x2 && y1 === y2) { + continue; + } + const startCode = `${x1}|${y1}`; + const endCode = `${x2}|${y2}`; + if (!indices.has(startCode)) { + indices.set(startCode, startVertexIndex / 3); + } + if (!indices.has(endCode)) { + indices.set(endCode, startVertexIndex / 3 + 1); + } + const start = indices.get(startCode); + const end = indices.get(endCode); + all2DVertices[start] = [x1, y1]; + all2DVertices[end] = [x2, y2]; + const startMatchesStart = shapesStarts.has(start); + const startMatchesEnd = shapesEnds.has(start); + const endMatchesStart = shapesStarts.has(end); + const endMatchesEnd = shapesEnds.has(end); + const noMatches = !startMatchesStart && + !startMatchesEnd && + !endMatchesStart && + !endMatchesEnd; + if (noMatches) { + // New shape + shapesStarts.set(start, nextShapeID); + shapesEnds.set(end, nextShapeID); + openShapes.add(nextShapeID); + shapes.set(nextShapeID, [start, end]); + nextShapeID++; + } + else if (startMatchesStart && endMatchesEnd) { + // Close shape or merge 2 shapes + const startIndex = shapesStarts.get(start); + const endIndex = shapesEnds.get(end); + const isShapeMerge = startIndex !== endIndex; + if (isShapeMerge) { + // merge start to end + const endShape = shapes.get(endIndex); + const startShape = shapes.get(startIndex); + if (!endShape || !startShape) { + continue; + } + shapes.delete(startIndex); + openShapes.delete(startIndex); + shapesEnds.set(startShape[startShape.length - 1], endIndex); + shapesEnds.delete(endShape[endShape.length - 1]); + for (const index of startShape) { + endShape.push(index); + } + } + else { + openShapes.delete(endIndex); + } + shapesStarts.delete(start); + shapesEnds.delete(end); + } + else if (startMatchesEnd && endMatchesStart) { + // Close shape or merge 2 shapes + const startIndex = shapesStarts.get(end); + const endIndex = shapesEnds.get(start); + const isShapeMerge = startIndex !== endIndex; + if (isShapeMerge) { + // merge start to end + const endShape = shapes.get(endIndex); + const startShape = shapes.get(startIndex); + if (!endShape || !startShape) { + continue; + } + shapes.delete(startIndex); + openShapes.delete(startIndex); + shapesEnds.set(startShape[startShape.length - 1], endIndex); + shapesEnds.delete(endShape[endShape.length - 1]); + for (const index of startShape) { + endShape.push(index); + } + } + else { + openShapes.delete(endIndex); + } + shapesStarts.delete(end); + shapesEnds.delete(start); + } + else if (startMatchesStart && endMatchesStart) { + // Merge 2 shapes, mirroring one of them + const startIndex1 = shapesStarts.get(end); + const startIndex2 = shapesStarts.get(start); + // merge start to end + const startShape2 = shapes.get(startIndex2); + const startShape1 = shapes.get(startIndex1); + if (!startShape2 || !startShape1) { + continue; + } + shapes.delete(startIndex1); + openShapes.delete(startIndex1); + shapesStarts.delete(startShape2[0]); + shapesStarts.delete(startShape1[0]); + shapesEnds.delete(startShape1[startShape1.length - 1]); + shapesStarts.set(startShape1[startShape1.length - 1], startIndex2); + startShape1.reverse(); + startShape2.splice(0, 0, ...startShape1); + } + else if (startMatchesEnd && endMatchesEnd) { + // Merge 2 shapes, mirroring one of them + const endIndex1 = shapesEnds.get(end); + const endIndex2 = shapesEnds.get(start); + // merge start to end + const endShape2 = shapes.get(endIndex2); + const endShape1 = shapes.get(endIndex1); + if (!endShape2 || !endShape1) { + continue; + } + shapes.delete(endIndex1); + openShapes.delete(endIndex1); + shapesEnds.delete(endShape2[endShape2.length - 1]); + shapesEnds.delete(endShape1[endShape1.length - 1]); + shapesStarts.delete(endShape1[0]); + shapesEnds.set(endShape1[0], endIndex2); + endShape1.reverse(); + endShape2.push(...endShape1); + } + else if (startMatchesStart) { + // existing contour on start - start + const shapeIndex = shapesStarts.get(start); + const shape = shapes.get(shapeIndex); + if (!shape) { + continue; + } + shape.unshift(end); + shapesStarts.delete(start); + shapesStarts.set(end, shapeIndex); + } + else if (startMatchesEnd) { + // existing contour on start - end + const shapeIndex = shapesEnds.get(start); + const shape = shapes.get(shapeIndex); + if (!shape) { + continue; + } + shape.push(end); + shapesEnds.delete(start); + shapesEnds.set(end, shapeIndex); + } + else if (endMatchesStart) { + // existing contour on end - start + const shapeIndex = shapesStarts.get(end); + const shape = shapes.get(shapeIndex); + if (!shape) { + continue; + } + shape.unshift(start); + shapesStarts.delete(end); + shapesStarts.set(start, shapeIndex); + } + else if (endMatchesEnd) { + // existing contour on end - end + const shapeIndex = shapesEnds.get(end); + const shape = shapes.get(shapeIndex); + if (!shape) { + continue; + } + shape.push(start); + shapesEnds.delete(end); + shapesEnds.set(start, shapeIndex); + } + } + const trueIndices = []; + for (const [id, shape] of shapes) { + if (openShapes.has(id)) { + continue; + } + const vertices = []; + const indexMap = new Map(); + let counter = 0; + for (const index of shape) { + const vertex = all2DVertices[index]; + vertices.push(vertex[0], vertex[1]); + indexMap.set(counter++, index); + } + const result = earcut$1(vertices); + for (const index of result) { + const trueIndex = indexMap.get(index); + if (trueIndex === undefined) { + throw new Error("Map error!"); + } + trueIndices.push(trueIndex); + } + } + return trueIndices; } - } - IFC4X32.IfcIntersectionCurve = IfcIntersectionCurve; - class IfcInventory extends IfcGroup { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, Jurisdiction, ResponsiblePersons, LastUpdateDate, CurrentValue, OriginalValue) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.PredefinedType = PredefinedType; - this.Jurisdiction = Jurisdiction; - this.ResponsiblePersons = ResponsiblePersons; - this.LastUpdateDate = LastUpdateDate; - this.CurrentValue = CurrentValue; - this.OriginalValue = OriginalValue; - this.type = 2391368822; + updatePlane2DCoordinateSystem() { + // Assuming the normal of the plane is called Z + this._plane2DCoordinateSystem = new THREE$1.Matrix4(); + const xAxis = new THREE$1.Vector3(1, 0, 0); + const yAxis = new THREE$1.Vector3(0, 1, 0); + const zAxis = this._plane.normal; + const pos = new THREE$1.Vector3(); + this._plane.coplanarPoint(pos); + if (this._planeAxis === "x") { + xAxis.crossVectors(yAxis, zAxis); + } + else if (this._planeAxis === "y") { + yAxis.crossVectors(zAxis, xAxis); + } + else if (this._planeAxis === "z") ; + else { + // Non-orthogonal to cardinal axis + xAxis.crossVectors(yAxis, zAxis).normalize(); + yAxis.crossVectors(zAxis, xAxis); + } + // prettier-ignore + this._plane2DCoordinateSystem.fromArray([ + xAxis.x, xAxis.y, xAxis.z, 0, + yAxis.x, yAxis.y, yAxis.z, 0, + zAxis.x, zAxis.y, zAxis.z, 0, + pos.x, pos.y, pos.z, 1, + ]); + this._plane2DCoordinateSystem.invert(); } - } - IFC4X32.IfcInventory = IfcInventory; - class IfcJunctionBoxType extends IfcFlowFittingType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 4288270099; + getStyle() { + const renderer = this._components.renderer; + if (this.styleName && renderer instanceof PostproductionRenderer) { + const effects = renderer.postproduction.customEffects; + return effects.outlinedMeshes[this.styleName]; + } + return null; } - } - IFC4X32.IfcJunctionBoxType = IfcJunctionBoxType; - class IfcKerbType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, Mountable) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.Mountable = Mountable; - this.type = 679976338; +} + +/** + * The edges that are drawn when the {@link EdgesPlane} sections a mesh. + */ +class ClippingEdges extends Component { + /** {@link Hideable.visible} */ + get visible() { + return this._visible; + } + set fillVisible(visible) { + for (const name in this._edges) { + const edges = this._edges[name]; + if (edges.fill) { + edges.fill.visible = visible; + } + } } - } - IFC4X32.IfcKerbType = IfcKerbType; - class IfcLaborResource extends IfcConstructionResource { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.Usage = Usage; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.PredefinedType = PredefinedType; - this.type = 3827777499; + constructor(components, plane, styles) { + super(components); + /** {@link Updateable.onAfterUpdate} */ + this.onAfterUpdate = new Event(); + /** {@link Updateable.onBeforeUpdate} */ + this.onBeforeUpdate = new Event(); + /** {@link Component.name} */ + this.name = "ClippingEdges"; + /** {@link Component.enabled}. */ + this.enabled = true; + this.fillNeedsUpdate = false; + this.blockByIndex = {}; + this._edges = {}; + this._visible = true; + this._inverseMatrix = new THREE$1.Matrix4(); + this._localPlane = new THREE$1.Plane(); + this._tempLine = new THREE$1.Line3(); + this._tempVector = new THREE$1.Vector3(); + this._plane = plane; + this._styles = styles; + } + async setVisible(visible) { + this._visible = visible; + const names = Object.keys(this._edges); + for (const edgeName of names) { + this.updateEdgesVisibility(edgeName, visible); + } + if (visible) { + await this.update(); + } + } + /** {@link Updateable.update} */ + async update() { + const styles = this._styles.get(); + await this.updateDeletedEdges(styles); + for (const name in styles) { + this.drawEdges(name); + } + this.fillNeedsUpdate = false; + } + /** {@link Component.get} */ + get() { + return this._edges; + } + /** {@link Disposable.dispose} */ + async dispose() { + const names = Object.keys(this._edges); + for (const name of names) { + await this.disposeEdge(name); + } + } + newEdgesMesh(styleName) { + const styles = this._styles.get(); + const material = styles[styleName].lineMaterial; + const edgesGeometry = new THREE$1.BufferGeometry(); + const buffer = new Float32Array(300000); + const linePosAttr = new THREE$1.BufferAttribute(buffer, 3, false); + linePosAttr.setUsage(THREE$1.DynamicDrawUsage); + edgesGeometry.setAttribute("position", linePosAttr); + const lines = new THREE$1.LineSegments(edgesGeometry, material); + lines.frustumCulled = false; + return lines; + } + newFillMesh(name, geometry) { + const styles = this._styles.get(); + const style = styles[name]; + const fillMaterial = style.fillMaterial; + if (fillMaterial) { + const fills = new ClippingFills(this.components, this._plane, geometry, fillMaterial); + this.newFillOutline(name, fills, style); + return fills; + } + return undefined; + } + newFillOutline(name, fills, style) { + if (!style.outlineMaterial) + return; + const renderer = this.components.renderer; + if (renderer instanceof PostproductionRenderer) { + const pRenderer = renderer; + const outlines = pRenderer.postproduction.customEffects.outlinedMeshes; + if (!outlines[name]) { + outlines[name] = { + meshes: new Set(), + material: style.outlineMaterial, + }; + } + fills.styleName = name; + } } - } - IFC4X32.IfcLaborResource = IfcLaborResource; - class IfcLampType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1051575348; + // Source: https://gkjohnson.github.io/three-mesh-bvh/example/bundle/clippedEdges.html + drawEdges(styleName) { + this.blockByIndex = {}; + const style = this._styles.get()[styleName]; + if (!this._edges[styleName]) { + this.initializeStyle(styleName); + } + const edges = this._edges[styleName]; + let index = 0; + const posAttr = edges.mesh.geometry.attributes.position; + // @ts-ignore + posAttr.array.fill(0); + const indexes = []; + let lastIndex = 0; + for (const mesh of style.meshes) { + if (!mesh.geometry) { + continue; + } + if (!mesh.geometry.boundsTree) { + throw new Error("Boundstree not found for clipping edges subset."); + } + const instanced = mesh; + if (instanced.count === 0) { + continue; + } + if (instanced.count > 1) { + for (let i = 0; i < instanced.count; i++) { + // Exclude fragment instances that don't belong to this style + const isFragment = instanced instanceof FragmentMesh; + const fMesh = instanced; + const ids = style.fragments[fMesh.fragment.id]; + if (isFragment && ids) { + const itemID = fMesh.fragment.items[i]; + if (!ids.has(itemID)) { + continue; + } + } + const tempMesh = new THREE$1.Mesh(mesh.geometry); + tempMesh.matrix.copy(mesh.matrix); + const tempMatrix = new THREE$1.Matrix4(); + instanced.getMatrixAt(i, tempMatrix); + tempMesh.applyMatrix4(tempMatrix); + tempMesh.applyMatrix4(mesh.matrix); + tempMesh.updateMatrix(); + tempMesh.updateMatrixWorld(); + this._inverseMatrix.copy(tempMesh.matrixWorld).invert(); + this._localPlane.copy(this._plane).applyMatrix4(this._inverseMatrix); + index = this.shapecast(tempMesh, posAttr, index, style); + if (index !== lastIndex) { + indexes.push(index); + lastIndex = index; + } + } + } + else { + this._inverseMatrix.copy(mesh.matrixWorld).invert(); + this._localPlane.copy(this._plane).applyMatrix4(this._inverseMatrix); + const isFragment = mesh instanceof FragmentMesh; + index = this.shapecast(mesh, posAttr, index, style, isFragment); + if (index !== lastIndex) { + indexes.push(index); + lastIndex = index; + } + } + } + // set the draw range to only the new segments and offset the lines so they don't intersect with the geometry + edges.mesh.geometry.setDrawRange(0, index); + edges.mesh.position.copy(this._plane.normal).multiplyScalar(0.0001); + posAttr.needsUpdate = true; + // Update the edges geometry only if there is no NaN in the output (which means there's been an error) + const attributes = edges.mesh.geometry.attributes; + const position = attributes.position; + if (!Number.isNaN(position.array[0])) { + const scene = this.components.scene.get(); + scene.add(edges.mesh); + if (this.fillNeedsUpdate && edges.fill) { + edges.fill.geometry = edges.mesh.geometry; + edges.fill.update(indexes, this.blockByIndex); + } + } } - } - IFC4X32.IfcLampType = IfcLampType; - class IfcLightFixtureType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1161773419; + initializeStyle(name) { + const mesh = this.newEdgesMesh(name); + const geometry = mesh.geometry; + const fill = this.newFillMesh(name, geometry); + this._edges[name] = { mesh, name, fill }; } - } - IFC4X32.IfcLightFixtureType = IfcLightFixtureType; - class IfcLinearElement extends IfcProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.type = 2176059722; + shapecast(mesh, posAttr, index, style, isMultiblockFragment = false) { + // @ts-ignore + mesh.geometry.boundsTree.shapecast({ + intersectsBounds: (box) => { + return this._localPlane.intersectsBox(box); + }, + // @ts-ignore + intersectsTriangle: (tri, triangleIndex) => { + // Exclude triangles of fragment items that don't belong to this style + if (isMultiblockFragment && style.fragments) { + const fMesh = mesh; + const ids = style.fragments[fMesh.fragment.id]; + if (ids !== undefined) { + const index = fMesh.geometry.index.array[triangleIndex * 3]; + const blockID = fMesh.geometry.attributes.blockID.array[index]; + const id = fMesh.fragment.getItemID(0, blockID); + if (!ids.has(id)) { + return; + } + } + } + // check each triangle edge to see if it intersects with the plane. If so then + // add it to the list of segments. + let count = 0; + this._tempLine.start.copy(tri.a); + this._tempLine.end.copy(tri.b); + if (this._localPlane.intersectLine(this._tempLine, this._tempVector)) { + const result = this._tempVector.applyMatrix4(mesh.matrixWorld); + posAttr.setXYZ(index, result.x, result.y, result.z); + count++; + index++; + } + this._tempLine.start.copy(tri.b); + this._tempLine.end.copy(tri.c); + if (this._localPlane.intersectLine(this._tempLine, this._tempVector)) { + const result = this._tempVector.applyMatrix4(mesh.matrixWorld); + posAttr.setXYZ(index, result.x, result.y, result.z); + count++; + index++; + } + this._tempLine.start.copy(tri.c); + this._tempLine.end.copy(tri.a); + if (this._localPlane.intersectLine(this._tempLine, this._tempVector)) { + const result = this._tempVector.applyMatrix4(mesh.matrixWorld); + posAttr.setXYZ(index, result.x, result.y, result.z); + count++; + index++; + } + // If we only intersected with one or three sides then just remove it. This could be handled + // more gracefully. + if (count !== 2) { + index -= count; + } + if (count === 2 && isMultiblockFragment) { + const fMesh = mesh; + const vertexIndex = fMesh.geometry.index.array[triangleIndex * 3]; + const block = fMesh.geometry.attributes.blockID.array[vertexIndex]; + this.blockByIndex[index - 2] = block; + } + }, + }); + return index; } - } - IFC4X32.IfcLinearElement = IfcLinearElement; - class IfcLiquidTerminalType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1770583370; + updateEdgesVisibility(edgeName, visible) { + const edges = this._edges[edgeName]; + if (edges.fill) { + edges.fill.visible = visible; + } + edges.mesh.visible = visible; + if (visible) { + const scene = this.components.scene.get(); + scene.add(edges.mesh); + } + else { + edges.mesh.removeFromParent(); + } + } + async updateDeletedEdges(styles) { + const names = Object.keys(this._edges); + for (const name of names) { + if (styles[name] === undefined) { + await this.disposeEdge(name); + this.disposeOutline(name); + } + } + } + disposeOutline(name) { + const renderer = this.components.renderer; + if (renderer instanceof PostproductionRenderer) { + const outlines = renderer.postproduction.customEffects.outlinedMeshes; + delete outlines[name]; + } } - } - IFC4X32.IfcLiquidTerminalType = IfcLiquidTerminalType; - class IfcMarineFacility extends IfcFacility { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.PredefinedType = PredefinedType; - this.type = 525669439; + async disposeEdge(name) { + const disposer = await this.components.tools.get(Disposer); + const edge = this._edges[name]; + if (edge.fill) { + edge.fill.dispose(); + } + disposer.destroy(edge.mesh, false); + delete this._edges[name]; } - } - IFC4X32.IfcMarineFacility = IfcMarineFacility; - class IfcMarinePart extends IfcFacilityPart { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.UsageType = UsageType; - this.PredefinedType = PredefinedType; - this.type = 976884017; +} + +/** + * A more advanced version of {@link SimpleClipper} that also includes + * {@link ClippingEdges} with customizable lines. + */ +class EdgesPlane extends SimplePlane { + constructor(components, origin, normal, material, styles) { + super(components, origin, normal, material, 5, false); + /** + * The max rate in milliseconds at which edges can be regenerated. + * To disable this behaviour set this to 0. + */ + this.edgesMaxUpdateRate = 50; + this.lastUpdate = -1; + this.updateTimeout = -1; + this.updateFill = async () => { + this.edges.fillNeedsUpdate = true; + await this.edges.update(); + if (this._visible) { + this.edges.fillVisible = true; + } + }; + /** {@link Updateable.update} */ + this.update = async () => { + if (!this.enabled) + return; + this._plane.setFromNormalAndCoplanarPoint(this._normal, this._helper.position); + // Rate limited edges update + const now = Date.now(); + if (this.lastUpdate + this.edgesMaxUpdateRate < now) { + this.lastUpdate = now; + await this.edges.update(); + } + else if (this.updateTimeout === -1) { + this.updateTimeout = window.setTimeout(() => { + this.update(); + this.updateTimeout = -1; + }, this.edgesMaxUpdateRate); + } + }; + this.hideFills = () => { + this.edges.fillVisible = false; + }; + this.edges = new ClippingEdges(components, this._plane, styles); + this.toggleControls(true); + this.edges.setVisible(true); + this.onDraggingEnded.add(this.updateFill); + this.onDraggingStarted.add(this.hideFills); } - } - IFC4X32.IfcMarinePart = IfcMarinePart; - class IfcMechanicalFastener extends IfcElementComponent { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, NominalDiameter, NominalLength, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.NominalDiameter = NominalDiameter; - this.NominalLength = NominalLength; - this.PredefinedType = PredefinedType; - this.type = 377706215; + /** {@link Component.enabled} */ + get enabled() { + return super.enabled; } - } - IFC4X32.IfcMechanicalFastener = IfcMechanicalFastener; - class IfcMechanicalFastenerType extends IfcElementComponentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, NominalDiameter, NominalLength) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.NominalDiameter = NominalDiameter; - this.NominalLength = NominalLength; - this.type = 2108223431; + /** {@link Disposable.dispose} */ + async dispose() { + await super.dispose(); + await this.edges.dispose(); } - } - IFC4X32.IfcMechanicalFastenerType = IfcMechanicalFastenerType; - class IfcMedicalDeviceType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1114901282; + /** {@link Component.enabled} */ + async setEnabled(state) { + super.enabled = state; + if (state) { + await this.update(); + } } - } - IFC4X32.IfcMedicalDeviceType = IfcMedicalDeviceType; - class IfcMemberType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3181161470; + async setVisible(state) { + super.visible = state; + this.toggleControls(state); + await this.edges.setVisible(true); } - } - IFC4X32.IfcMemberType = IfcMemberType; - class IfcMobileTelecommunicationsApplianceType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1950438474; +} + +class EdgesStyles extends Component { + constructor(components) { + super(components); + this.name = "EdgesStyles"; + this.enabled = true; + this._styles = {}; + this._defaultLineMaterial = new LineBasicMaterial({ + color: 0x000000, + linewidth: 0.001, + }); + this.onAfterUpdate = new Event(); + this.onBeforeUpdate = new Event(); + } + get() { + return this._styles; + } + async update(_delta) { + await this.onBeforeUpdate.trigger(this._styles); + await this.onAfterUpdate.trigger(this._styles); + } + // Creates a new style that applies to all clipping edges for generic models + create(name, meshes, lineMaterial = this._defaultLineMaterial, fillMaterial, outlineMaterial) { + for (const mesh of meshes) { + if (!mesh.geometry.boundsTree) + mesh.geometry.computeBoundsTree(); + } + const renderer = this.components.renderer; + lineMaterial.clippingPlanes = renderer.clippingPlanes; + const newStyle = { + name, + lineMaterial, + meshes, + fillMaterial, + outlineMaterial, + fragments: {}, + }; + this._styles[name] = newStyle; + return newStyle; + } + async dispose() { + const styles = Object.keys(this._styles); + for (const style of styles) { + this.deleteStyle(style); + } + this._styles = {}; + } + deleteStyle(id, disposeMaterials = true) { + var _a, _b; + const style = this._styles[id]; + if (style) { + style.meshes.clear(); + if (disposeMaterials) { + style.lineMaterial.dispose(); + (_a = style.fillMaterial) === null || _a === void 0 ? void 0 : _a.dispose(); + (_b = style.outlineMaterial) === null || _b === void 0 ? void 0 : _b.dispose(); + } + } + delete this._styles[id]; } - } - IFC4X32.IfcMobileTelecommunicationsApplianceType = IfcMobileTelecommunicationsApplianceType; - class IfcMooringDeviceType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 710110818; +} + +/** + * A more advanced version of {@link SimpleClipper} that also supports + * {@link ClippingEdges} with customizable lines. + */ +class EdgesClipper extends SimpleClipper { + constructor(components) { + super(components); + this.components.tools.list.set(EdgesClipper.uuid, this); + this.PlaneType = EdgesPlane; + this.styles = new EdgesStyles(components); } - } - IFC4X32.IfcMooringDeviceType = IfcMooringDeviceType; - class IfcMotorConnectionType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 977012517; + /** {@link Component.get} */ + async dispose() { + await super.dispose(); + await this.styles.dispose(); } - } - IFC4X32.IfcMotorConnectionType = IfcMotorConnectionType; - class IfcNavigationElementType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 506776471; + /** + * Updates all the lines of the {@link ClippingEdges}. + */ + async updateEdges(updateFills = false) { + if (!this.enabled) + return; + for (const plane of this._planes) { + if (updateFills) { + await plane.updateFill(); + } + else { + await plane.update(); + } + } } - } - IFC4X32.IfcNavigationElementType = IfcNavigationElementType; - class IfcOccupant extends IfcActor { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.TheActor = TheActor; - this.PredefinedType = PredefinedType; - this.type = 4143007308; + newPlaneInstance(point, normal) { + return new this.PlaneType(this.components, point, normal, this._material, this.styles); } - } - IFC4X32.IfcOccupant = IfcOccupant; - class IfcOpeningElement extends IfcFeatureElementSubtraction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3588315303; +} + +/** + * Two pass Gaussian blur filter (horizontal and vertical blur shaders) + * - see http://www.cake23.de/traveling-wavefronts-lit-up.html + * + * - 9 samples per pass + * - standard deviation 2.7 + * - "h" and "v" parameters should be set to "1 / width" and "1 / height" + */ + +const HorizontalBlurShader = { + + uniforms: { + + 'tDiffuse': { value: null }, + 'h': { value: 1.0 / 512.0 } + + }, + + vertexShader: /* glsl */` + + varying vec2 vUv; + + void main() { + + vUv = uv; + gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); + + }`, + + fragmentShader: /* glsl */` + + uniform sampler2D tDiffuse; + uniform float h; + + varying vec2 vUv; + + void main() { + + vec4 sum = vec4( 0.0 ); + + sum += texture2D( tDiffuse, vec2( vUv.x - 4.0 * h, vUv.y ) ) * 0.051; + sum += texture2D( tDiffuse, vec2( vUv.x - 3.0 * h, vUv.y ) ) * 0.0918; + sum += texture2D( tDiffuse, vec2( vUv.x - 2.0 * h, vUv.y ) ) * 0.12245; + sum += texture2D( tDiffuse, vec2( vUv.x - 1.0 * h, vUv.y ) ) * 0.1531; + sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y ) ) * 0.1633; + sum += texture2D( tDiffuse, vec2( vUv.x + 1.0 * h, vUv.y ) ) * 0.1531; + sum += texture2D( tDiffuse, vec2( vUv.x + 2.0 * h, vUv.y ) ) * 0.12245; + sum += texture2D( tDiffuse, vec2( vUv.x + 3.0 * h, vUv.y ) ) * 0.0918; + sum += texture2D( tDiffuse, vec2( vUv.x + 4.0 * h, vUv.y ) ) * 0.051; + + gl_FragColor = sum; + + }` + +}; + +/** + * Two pass Gaussian blur filter (horizontal and vertical blur shaders) + * - see http://www.cake23.de/traveling-wavefronts-lit-up.html + * + * - 9 samples per pass + * - standard deviation 2.7 + * - "h" and "v" parameters should be set to "1 / width" and "1 / height" + */ + +const VerticalBlurShader = { + + uniforms: { + + 'tDiffuse': { value: null }, + 'v': { value: 1.0 / 512.0 } + + }, + + vertexShader: /* glsl */` + + varying vec2 vUv; + + void main() { + + vUv = uv; + gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); + + }`, + + fragmentShader: /* glsl */` + + uniform sampler2D tDiffuse; + uniform float v; + + varying vec2 vUv; + + void main() { + + vec4 sum = vec4( 0.0 ); + + sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y - 4.0 * v ) ) * 0.051; + sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y - 3.0 * v ) ) * 0.0918; + sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y - 2.0 * v ) ) * 0.12245; + sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y - 1.0 * v ) ) * 0.1531; + sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y ) ) * 0.1633; + sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y + 1.0 * v ) ) * 0.1531; + sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y + 2.0 * v ) ) * 0.12245; + sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y + 3.0 * v ) ) * 0.0918; + sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y + 4.0 * v ) ) * 0.051; + + gl_FragColor = sum; + + }` + +}; + +class ShadowDropper extends Component { + constructor(components) { + super(components); + this.enabled = true; + // Controls how far away the shadow is computed + this.cameraHeight = 10; + this.darkness = 1.2; + this.opacity = 1; + this.resolution = 512; + this.amount = 3.5; + this.planeColor = 0xffffff; + this.shadowOffset = 0; + this.shadowExtraScaleFactor = 1.5; + this.shadows = {}; + this.tempMaterial = new THREE$1.MeshBasicMaterial({ visible: false }); + this.depthMaterial = new THREE$1.MeshDepthMaterial(); + this.components.tools.add(ShadowDropper.uuid, this); + this.initializeDepthMaterial(); + } + /** {@link Component.get} */ + get() { + return this.shadows; + } + /** {@link Disposable.dispose} */ + async dispose() { + for (const id in this.shadows) { + await this.deleteShadow(id); + } + this.tempMaterial.dispose(); + this.depthMaterial.dispose(); + this.components = null; } - } - IFC4X32.IfcOpeningElement = IfcOpeningElement; - class IfcOutletType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2837617999; + /** + * Creates a blurred dropped shadow of the given mesh. + * + * @param model - the mesh whose shadow to generate. + * @param id - the name of this shadow. + */ + renderShadow(model, id) { + if (this.shadows[id]) { + throw new Error(`There is already a shadow with ID ${id}`); + } + const { size, center, min } = this.getSizeCenterMin(model); + const shadow = this.createShadow(id, size); + this.initializeShadow(shadow, center, min); + this.createPlanes(shadow, size); + this.bakeShadow(model, shadow); + return shadow.root; } - } - IFC4X32.IfcOutletType = IfcOutletType; - class IfcPavementType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 514975943; + /** + * Deletes the specified shadow (if it exists). + * + * @param id - the name of this shadow. + */ + async deleteShadow(id) { + const disposer = await this.components.tools.get(Disposer); + const shadow = this.shadows[id]; + delete this.shadows[id]; + if (!shadow) + throw new Error(`No shadow with ID ${id} was found.`); + disposer.destroy(shadow.root); + disposer.destroy(shadow.blurPlane); + shadow.rt.dispose(); + shadow.rtBlur.dispose(); + } + createPlanes(currentShadow, size) { + const planeGeometry = new THREE$1.PlaneGeometry(size.x, size.z).rotateX(Math.PI / 2); + this.createBasePlane(currentShadow, planeGeometry); + ShadowDropper.createBlurPlane(currentShadow, planeGeometry); + // this.createGroundColorPlane(currentShadow, planeGeometry); + } + initializeShadow(shadow, center, min) { + this.initializeRoot(shadow, center, min); + ShadowDropper.initializeRenderTargets(shadow); + ShadowDropper.initializeCamera(shadow); + } + bakeShadow(meshes, shadow) { + const scene = this.components.scene.get(); + const areModelsInScene = meshes.map((mesh) => !!mesh.parent); + for (let i = 0; i < meshes.length; i++) { + if (!areModelsInScene[i]) { + scene.add(meshes[i]); + } + } + const children = scene.children.filter((obj) => !meshes.includes(obj) && obj !== shadow.root); + for (let i = children.length - 1; i >= 0; i--) { + scene.remove(children[i]); + } + // remove the background + const initialBackground = scene.background; + scene.background = null; + // force the depthMaterial to everything + scene.overrideMaterial = this.depthMaterial; + // Make meshes visible if they were invisible + const previousVisibleAttributes = []; + for (const mesh of meshes) { + previousVisibleAttributes.push(mesh.visible); + mesh.visible = true; + } + // render to the render target to get the depths + const renderer = this.components.renderer.get(); + renderer.setRenderTarget(shadow.rt); + renderer.render(scene, shadow.camera); + // and reset the override material + scene.overrideMaterial = null; + this.blurShadow(shadow, this.amount); + // a second pass to reduce the artifacts + // (0.4 is the minimum blur amount so that the artifacts are gone) + this.blurShadow(shadow, this.amount * 0.4); + // reset and render the normal scene + renderer.setRenderTarget(null); + scene.background = initialBackground; + // reset visibility + for (let i = 0; i < meshes.length; i++) { + meshes[i].visible = previousVisibleAttributes[i]; + } + for (let i = children.length - 1; i >= 0; i--) { + scene.add(children[i]); + } + for (let i = 0; i < meshes.length; i++) { + if (!areModelsInScene[i]) { + scene.remove(meshes[i]); + } + } } - } - IFC4X32.IfcPavementType = IfcPavementType; - class IfcPerformanceHistory extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LifeCyclePhase, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LifeCyclePhase = LifeCyclePhase; - this.PredefinedType = PredefinedType; - this.type = 2382730787; + static initializeCamera(shadow) { + shadow.camera.rotation.x = Math.PI / 2; // get the camera to look up + shadow.root.add(shadow.camera); + } + static initializeRenderTargets(shadow) { + shadow.rt.texture.generateMipmaps = false; + shadow.rtBlur.texture.generateMipmaps = false; + } + initializeRoot(shadow, center, min) { + const scene = this.components.scene.get(); + shadow.root.position.set(center.x, min.y - this.shadowOffset, center.z); + scene.add(shadow.root); + } + // Plane simulating the "ground". This is not needed for BIM models generally + // private createGroundColorPlane(_shadow: Shadow, planeGeometry: BufferGeometry) { + // const fillPlaneMaterial = new MeshBasicMaterial({ + // color: this.planeColor, + // opacity: this.opacity, + // transparent: true, + // depthWrite: false, + // clippingPlanes: this.context.getClippingPlanes() + // }); + // const fillPlane = new Mesh(planeGeometry, fillPlaneMaterial); + // fillPlane.rotateX(Math.PI); + // fillPlane.renderOrder = -1; + // shadow.root.add(fillPlane); + // } + createBasePlane(shadow, planeGeometry) { + const planeMaterial = this.createPlaneMaterial(shadow); + const plane = new THREE$1.Mesh(planeGeometry, planeMaterial); + // make sure it's rendered after the fillPlane + plane.renderOrder = 2; + shadow.root.add(plane); + // the y from the texture is flipped! + plane.scale.y = -1; + } + static createBlurPlane(shadow, planeGeometry) { + shadow.blurPlane.geometry = planeGeometry; + shadow.blurPlane.visible = false; + shadow.root.add(shadow.blurPlane); + } + createPlaneMaterial(shadow) { + const renderer = this.components.renderer; + return new THREE$1.MeshBasicMaterial({ + map: shadow.rt.texture, + opacity: this.opacity, + transparent: true, + depthWrite: false, + clippingPlanes: renderer.clippingPlanes, + }); } - } - IFC4X32.IfcPerformanceHistory = IfcPerformanceHistory; - class IfcPermeableCoveringProperties extends IfcPreDefinedPropertySet { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, OperationType, PanelPosition, FrameDepth, FrameThickness, ShapeAspectStyle) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.OperationType = OperationType; - this.PanelPosition = PanelPosition; - this.FrameDepth = FrameDepth; - this.FrameThickness = FrameThickness; - this.ShapeAspectStyle = ShapeAspectStyle; - this.type = 3566463478; + // like MeshDepthMaterial, but goes from black to transparent + initializeDepthMaterial() { + this.depthMaterial.depthTest = false; + this.depthMaterial.depthWrite = false; + const oldShader = "gl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );"; + const newShader = "gl_FragColor = vec4( vec3( 0.0 ), ( 1.0 - fragCoordZ ) * darkness );"; + this.depthMaterial.userData.darkness = { value: this.darkness }; + this.depthMaterial.onBeforeCompile = (shader) => { + shader.uniforms.darkness = this.depthMaterial.userData.darkness; + shader.fragmentShader = /* glsl */ ` + uniform float darkness; + ${shader.fragmentShader.replace(oldShader, newShader)} + `; + }; } - } - IFC4X32.IfcPermeableCoveringProperties = IfcPermeableCoveringProperties; - class IfcPermit extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, LongDescription) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.PredefinedType = PredefinedType; - this.Status = Status; - this.LongDescription = LongDescription; - this.type = 3327091369; + createShadow(id, size) { + this.shadows[id] = { + root: new THREE$1.Group(), + rt: new THREE$1.WebGLRenderTarget(this.resolution, this.resolution), + rtBlur: new THREE$1.WebGLRenderTarget(this.resolution, this.resolution), + blurPlane: new THREE$1.Mesh(), + camera: this.createCamera(size), + }; + return this.shadows[id]; + } + createCamera(size) { + return new THREE$1.OrthographicCamera(-size.x / 2, size.x / 2, size.z / 2, -size.z / 2, 0, this.cameraHeight); + } + getSizeCenterMin(meshes) { + const parent = meshes[0].parent; + const group = new THREE$1.Group(); + group.children = meshes; + const boundingBox = new THREE$1.Box3().setFromObject(group); + parent === null || parent === void 0 ? void 0 : parent.add(...meshes); + const size = new THREE$1.Vector3(); + boundingBox.getSize(size); + size.x *= this.shadowExtraScaleFactor; + size.z *= this.shadowExtraScaleFactor; + const center = new THREE$1.Vector3(); + boundingBox.getCenter(center); + const min = boundingBox.min; + return { size, center, min }; + } + blurShadow(shadow, amount) { + const horizontalBlurMaterial = new THREE$1.ShaderMaterial(HorizontalBlurShader); + horizontalBlurMaterial.depthTest = false; + const verticalBlurMaterial = new THREE$1.ShaderMaterial(VerticalBlurShader); + verticalBlurMaterial.depthTest = false; + shadow.blurPlane.visible = true; + // blur horizontally and draw in the renderTargetBlur + shadow.blurPlane.material = horizontalBlurMaterial; + // @ts-ignore + shadow.blurPlane.material.uniforms.tDiffuse.value = shadow.rt.texture; + horizontalBlurMaterial.uniforms.h.value = (amount * 1) / 256; + const renderer = this.components.renderer.get(); + renderer.setRenderTarget(shadow.rtBlur); + renderer.render(shadow.blurPlane, shadow.camera); + // blur vertically and draw in the main renderTarget + shadow.blurPlane.material = verticalBlurMaterial; + // @ts-ignore + shadow.blurPlane.material.uniforms.tDiffuse.value = shadow.rtBlur.texture; + verticalBlurMaterial.uniforms.v.value = (amount * 1) / 256; + renderer.setRenderTarget(shadow.rt); + renderer.render(shadow.blurPlane, shadow.camera); + shadow.blurPlane.visible = false; } - } - IFC4X32.IfcPermit = IfcPermit; - class IfcPileType extends IfcDeepFoundationType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1158309216; +} +ShadowDropper.uuid = "f833a09a-a3ab-4c58-b03e-da5298c7a1b6"; +ToolComponent.libraryUUIDs.add(ShadowDropper.uuid); + +/** The name of the CSS class that styles the dimension label. */ +const DimensionLabelClassName = "text-white text-sm bg-ifcjs-100 rounded-md px-3 py-1"; +/** The name of the CSS class that styles the dimension label. */ +const DimensionPreviewClassName = "bg-ifcjs-100 rounded-full w-[8px] h-[8px]"; + +// TODO: Document + clean up this: way less parameters, clearer logic +class SimpleDimensionLine { + set visible(value) { + this.label.visible = value; + this._endpoints[0].visible = value; + this._endpoints[1].visible = value; + if (value) { + this._components.scene.get().add(this._root); + } + else { + this._root.removeFromParent(); + } } - } - IFC4X32.IfcPileType = IfcPileType; - class IfcPipeFittingType extends IfcFlowFittingType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 804291784; + set endPoint(point) { + this.end = point; + const position = this._line.geometry.attributes + .position; + position.setXYZ(1, point.x, point.y, point.z); + position.needsUpdate = true; + this._endpoints[1].get().position.copy(point); + this.updateLabel(); + } + set startPoint(point) { + this.start = point; + const position = this._line.geometry.attributes + .position; + position.setXYZ(0, point.x, point.y, point.z); + position.needsUpdate = true; + this._endpoints[0].get().position.copy(point); + this.updateLabel(); + } + get _center() { + let dir = this.end.clone().sub(this.start); + const len = dir.length() * 0.5; + dir = dir.normalize().multiplyScalar(len); + return this.start.clone().add(dir); + } + constructor(components, data) { + this.boundingBox = new THREE$1.Mesh(); + this._root = new THREE$1.Group(); + this._endpoints = []; + this._components = components; + this.start = data.start; + this.end = data.end; + this._length = this.getLength(); + this._line = this.createLine(data); + this.newEndpointElement(data.endpointElement); + // @ts-ignore + this.newEndpointElement(data.endpointElement.cloneNode(true)); + this.label = this.newText(); + this._root.renderOrder = 2; + this._components.scene.get().add(this._root); + } + async dispose() { + const disposer = await this._components.tools.get(Disposer); + this.visible = false; + disposer.destroy(this._root); + disposer.destroy(this._line); + for (const marker of this._endpoints) { + await marker.dispose(); + } + this._endpoints.length = 0; + await this.label.dispose(); + if (this.boundingBox) { + disposer.destroy(this.boundingBox); + } + this._components = null; + } + createBoundingBox() { + this.boundingBox.geometry = new THREE$1.BoxGeometry(1, 1, this._length); + this.boundingBox.position.copy(this._center); + this.boundingBox.lookAt(this.end); + this.boundingBox.visible = false; + this._root.add(this.boundingBox); + } + toggleLabel() { + this.label.toggleVisibility(); + } + newEndpointElement(element) { + const isFirst = this._endpoints.length === 0; + const position = isFirst ? this.start : this.end; + const marker = new Simple2DMarker(this._components, element); + marker.get().position.copy(position); + this._endpoints.push(marker); + this._root.add(marker.get()); + } + updateLabel() { + this._length = this.getLength(); + this.label.get().element.textContent = this.getTextContent(); + this.label.get().position.copy(this._center); + this._line.computeLineDistances(); + } + createLine(data) { + const axisGeom = new THREE$1.BufferGeometry(); + axisGeom.setFromPoints([data.start, data.end]); + const line = new THREE$1.Line(axisGeom, data.lineMaterial); + this._root.add(line); + return line; + } + newText() { + const htmlText = document.createElement("div"); + htmlText.className = DimensionLabelClassName; + htmlText.textContent = this.getTextContent(); + const label = new Simple2DMarker(this._components, htmlText); + label.get().position.copy(this._center); + this._root.add(label.get()); + return label; + } + getTextContent() { + return `${this._length / SimpleDimensionLine.scale} ${SimpleDimensionLine.units}`; + } + getLength() { + return parseFloat(this.start.distanceTo(this.end).toFixed(2)); } - } - IFC4X32.IfcPipeFittingType = IfcPipeFittingType; - class IfcPipeSegmentType extends IfcFlowSegmentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 4231323485; +} +SimpleDimensionLine.scale = 1; +SimpleDimensionLine.units = "m"; + +/** + * A basic dimension tool to measure distances between 2 points in 3D and + * display a 3D symbol displaying the numeric value. + */ +class LengthMeasurement extends Component { + /** {@link Component.enabled} */ + get enabled() { + return this._enabled; } - } - IFC4X32.IfcPipeSegmentType = IfcPipeSegmentType; - class IfcPlateType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 4017108033; + /** {@link Component.enabled} */ + set enabled(value) { + if (!value) + this.cancelCreation(); + this._enabled = value; + this._vertexPicker.enabled = value; + if (this.components.ui.enabled) { + const main = this.uiElement.get("main"); + main.active = value; + } } - } - IFC4X32.IfcPlateType = IfcPlateType; - class IfcPolygonalFaceSet extends IfcTessellatedFaceSet { - constructor(expressID, Coordinates, Closed, Faces, PnIndex) { - super(expressID, Coordinates, Closed); - this.Coordinates = Coordinates; - this.Closed = Closed; - this.Faces = Faces; - this.PnIndex = PnIndex; - this.type = 2839578677; + /** {@link Hideable.visible} */ + get visible() { + return this._visible; } - } - IFC4X32.IfcPolygonalFaceSet = IfcPolygonalFaceSet; - class IfcPolyline extends IfcBoundedCurve { - constructor(expressID, Points) { - super(expressID); - this.Points = Points; - this.type = 3724593414; + /** {@link Hideable.visible} */ + set visible(value) { + this._visible = value; + if (!this._visible) { + this.enabled = false; + } + for (const dimension of this._measurements) { + dimension.visible = this._visible; + } } - } - IFC4X32.IfcPolyline = IfcPolyline; - class IfcPort extends IfcProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.type = 3740093272; + /** + * The [Color](https://threejs.org/docs/#api/en/math/Color) + * of the geometry of the dimensions. + */ + set color(color) { + this._lineMaterial.color = color; } - } - IFC4X32.IfcPort = IfcPort; - class IfcPositioningElement extends IfcProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.type = 1946335990; + constructor(components) { + super(components); + /** {@link Updateable.onBeforeUpdate} */ + this.onBeforeUpdate = new Event(); + /** {@link Updateable.onAfterUpdate} */ + this.onAfterUpdate = new Event(); + /** {@link Createable.onAfterCreate} */ + this.onAfterCreate = new Event(); + /** {@link Createable.onBeforeCreate} */ + this.onBeforeCreate = new Event(); + /** {@link Createable.onAfterDelete} */ + this.onAfterDelete = new Event(); + /** {@link Createable.onBeforeDelete} */ + this.onBeforeDelete = new Event(); + /** {@link Createable.onBeforeCancel} */ + this.onBeforeCancel = new Event(); + /** {@link Createable.onAfterCancel} */ + this.onAfterCancel = new Event(); + this.uiElement = new UIElement(); + /** The minimum distance to force the dimension cursor to a vertex. */ + this.snapDistance = 0.25; + this._lineMaterial = new THREE$1.LineBasicMaterial({ + color: "#DC2626", + linewidth: 2, + depthTest: false, + }); + this._measurements = []; + this._visible = true; + this._enabled = false; + /** Temporary variables for internal operations */ + this._temp = { + isDragging: false, + start: new THREE$1.Vector3(), + end: new THREE$1.Vector3(), + dimension: undefined, + }; + /** + * Starts or finishes drawing a new dimension line. + * + * @param data - forces the dimension to be drawn on a plane. Use this if you are drawing + * dimensions in floor plan navigation. + */ + this.create = async (data) => { + const plane = data instanceof THREE$1.Object3D ? data : undefined; + if (!this._enabled) + return; + await this.onBeforeCreate.trigger(this); + if (!this._temp.isDragging) { + this.drawStart(plane); + return; + } + await this.endCreation(); + }; + this.onKeyDown = (e) => { + if (!this.enabled) + return; + if (e.key === "Escape") { + if (this._temp.isDragging) { + this.cancelCreation(); + } + else { + this.enabled = false; + } + } + }; + this.components.tools.add(LengthMeasurement.uuid, this); + this._raycaster = new SimpleRaycaster(this.components); + this._vertexPicker = new VertexPicker(components, { + previewElement: this.newEndpoint(), + snapDistance: this.snapDistance, + }); + if (components.ui.enabled) { + this.setUI(); + } + } + setUI() { + const main = new Button(this.components); + this.uiElement.set({ main }); + main.materialIcon = "straighten"; + main.onClick.add(() => { + if (!this.enabled) { + this.setupEvents(true); + main.active = true; + this.enabled = true; + } + else { + this.enabled = false; + main.active = false; + this.setupEvents(false); + } + }); } - } - IFC4X32.IfcPositioningElement = IfcPositioningElement; - class IfcProcedure extends IfcProcess { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.PredefinedType = PredefinedType; - this.type = 2744685151; + /** {@link Component.get} */ + get() { + return this._measurements; + } + /** {@link Disposable.dispose} */ + async dispose() { + this.setupEvents(false); + this.enabled = false; + this.onBeforeUpdate.reset(); + this.onAfterUpdate.reset(); + this.onBeforeCreate.reset(); + this.onAfterCreate.reset(); + this.onBeforeDelete.reset(); + this.onAfterDelete.reset(); + this.onBeforeCancel.reset(); + this.onAfterCancel.reset(); + this.uiElement.dispose(); + if (this.previewElement) { + this.previewElement.remove(); + } + for (const measure of this._measurements) { + await measure.dispose(); + } + this._lineMaterial.dispose(); + this._measurements = []; + await this._vertexPicker.dispose(); + } + /** {@link Updateable.update} */ + async update(_delta) { + if (this._enabled) { + await this.onBeforeUpdate.trigger(this); + if (this._temp.isDragging) { + this.drawInProcess(); + } + await this.onAfterUpdate.trigger(this); + } } - } - IFC4X32.IfcProcedure = IfcProcedure; - class IfcProjectOrder extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, LongDescription) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.PredefinedType = PredefinedType; - this.Status = Status; - this.LongDescription = LongDescription; - this.type = 2904328755; + /** Deletes the dimension that the user is hovering over with the mouse or touch event. */ + async delete() { + if (!this._enabled || this._measurements.length === 0) + return; + const boundingBoxes = this.getBoundingBoxes(); + const intersect = this._raycaster.castRay(boundingBoxes); + if (!intersect) + return; + const dimension = this._measurements.find((dim) => dim.boundingBox === intersect.object); + if (dimension) { + const index = this._measurements.indexOf(dimension); + this._measurements.splice(index, 1); + await dimension.dispose(); + await this.onAfterDelete.trigger(this); + } + } + /** Deletes all the dimensions that have been previously created. */ + async deleteAll() { + for (const dim of this._measurements) { + await dim.dispose(); + await this.onAfterDelete.trigger(this); + } + this._measurements = []; + } + /** Cancels the drawing of the current dimension. */ + cancelCreation() { + var _a; + if (!this._temp.dimension) + return; + this._temp.isDragging = false; + (_a = this._temp.dimension) === null || _a === void 0 ? void 0 : _a.dispose(); + this._temp.dimension = undefined; + } + drawStart(plane) { + const items = plane ? [plane] : undefined; + const intersects = this._raycaster.castRay(items); + const point = this._vertexPicker.get(); + if (!(intersects && point)) + return; + this._temp.isDragging = true; + this._temp.start = plane ? intersects.point : point; } - } - IFC4X32.IfcProjectOrder = IfcProjectOrder; - class IfcProjectionElement extends IfcFeatureElementAddition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3651124850; + drawInProcess() { + const intersects = this._raycaster.castRay(); + if (!intersects) + return; + const found = this._vertexPicker.get(); + if (!found) + return; + this._temp.end = found; + if (!this._temp.dimension) { + this._temp.dimension = this.drawDimension(); + } + this._temp.dimension.endPoint = this._temp.end; } - } - IFC4X32.IfcProjectionElement = IfcProjectionElement; - class IfcProtectiveDeviceType extends IfcFlowControllerType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1842657554; + async endCreation() { + if (!this._temp.dimension) + return; + this._temp.dimension.createBoundingBox(); + this._measurements.push(this._temp.dimension); + await this.onAfterCreate.trigger(this._temp.dimension); + this._temp.dimension = undefined; + this._temp.isDragging = false; + } + drawDimension() { + return new SimpleDimensionLine(this.components, { + start: this._temp.start, + end: this._temp.end, + lineMaterial: this._lineMaterial, + endpointElement: this.newEndpoint(), + }); } - } - IFC4X32.IfcProtectiveDeviceType = IfcProtectiveDeviceType; - class IfcPumpType extends IfcFlowMovingDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2250791053; + newEndpoint() { + const element = document.createElement("div"); + element.className = "w-2 h-2 bg-red-600 rounded-full"; + return element; } - } - IFC4X32.IfcPumpType = IfcPumpType; - class IfcRailType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1763565496; + getBoundingBoxes() { + return this._measurements + .map((dim) => dim.boundingBox) + .filter((box) => box !== undefined); } - } - IFC4X32.IfcRailType = IfcRailType; - class IfcRailingType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2893384427; + setupEvents(active) { + const viewerContainer = this.components.ui.viewerContainer; + if (active) { + viewerContainer.addEventListener("click", this.create); + window.addEventListener("keydown", this.onKeyDown); + } + else { + viewerContainer.removeEventListener("click", this.create); + window.removeEventListener("keydown", this.onKeyDown); + } } - } - IFC4X32.IfcRailingType = IfcRailingType; - class IfcRailway extends IfcFacility { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.PredefinedType = PredefinedType; - this.type = 3992365140; +} +LengthMeasurement.uuid = "2f9bcacf-18a9-4be6-a293-e898eae64ea1"; +ToolComponent.libraryUUIDs.add(LengthMeasurement.uuid); + +class ViewpointsManager extends Component { + constructor(components) { + super(components); + this.name = "ViewpointsManager"; + this.uiElement = new UIElement(); + this.enabled = true; + this.list = []; + this.selectionHighlighter = ""; + this.onViewpointViewed = new Event(); + this.onViewpointAdded = new Event(); + this.components = components; + } + initialize(config) { + this.selectionHighlighter = config.selectionHighlighter; + // this._fragmentGrouper = config.fragmentGrouper; + // this._fragmentManager = config.fragmentManager; + this._drawManager = config.drawManager; + if (this.components.ui.enabled) { + this.setUI(); + } + } + setUI() { + const viewerContainer = this.components.renderer.get().domElement + .parentElement; + const window = new FloatingWindow(this.components); + window.title = "Viewpoints"; + viewerContainer.append(window.get()); + window.visible = false; + const main = new Button(this.components, { + materialIconName: "photo_camera", + }); + const newButton = new Button(this.components, { + materialIconName: "add", + name: "New viewpoint", + }); + const listButton = new Button(this.components, { + materialIconName: "format_list_bulleted", + name: "Viewpoints list", + }); + listButton.onClick.add(() => { + window.visible = !window.visible; + }); + main.addChild(listButton, newButton); + this.uiElement.set({ main, newButton, window }); } - } - IFC4X32.IfcRailway = IfcRailway; - class IfcRailwayPart extends IfcFacilityPart { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.UsageType = UsageType; - this.PredefinedType = PredefinedType; - this.type = 1891881377; + get() { + throw new Error("Method not implemented."); } - } - IFC4X32.IfcRailwayPart = IfcRailwayPart; - class IfcRampFlightType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2324767716; + async add(data) { + var _a; + const { title, description } = data; + if (!title) { + return undefined; + } + const guid = generateUUID().toLowerCase(); + // #region Store dimensions + const dimensions = []; + const dimensionsComp = await this.components.tools.get(LengthMeasurement); + const allDimensions = dimensionsComp.get(); + for (const dimension of allDimensions) { + dimensions.push({ start: dimension.start, end: dimension.end }); + } + // #endregion + // #redgion Store selection + const highlighter = await this.components.tools.get(FragmentHighlighter); + const selection = highlighter.selection[this.selectionHighlighter]; + // #endregion + // #region Store filter (WIP) + // const filter = {entities: "IFCBEAM", storeys: "N07"} + // #endregion + // #region Store camera position and target + const camera = this.components.camera; + const controls = camera.controls; + const target = new Vector3$1(); + const position = new Vector3$1(); + controls.getTarget(target); + controls.getPosition(position); + const projection = camera.getProjection(); + // #endregion + // #region Store annotations + const annotations = (_a = this._drawManager) === null || _a === void 0 ? void 0 : _a.saveDrawing(guid); + // #endregion + const viewpoint = { + guid, + title, + target, + position, + selection, + // filter, + description, + dimensions, + annotations, + projection, + }; + // #region UI representation + const card = new SimpleUICard(this.components, viewpoint.guid); + card.title = title; + card.description = description; + card.domElement.onclick = () => this.view(viewpoint.guid); + this.uiElement.get("window").addChild(card); + // #endregion + this.list.push(viewpoint); + await this.onViewpointAdded.trigger(guid); + return viewpoint; + } + retrieve(guid) { + return this.list.find((v) => v.guid === guid); + } + async view(guid) { + const viewpoint = this.retrieve(guid); + if (!viewpoint) { + return; + } + // #region Recover annotations + if (this._drawManager && viewpoint.annotations) { + this._drawManager.viewport.clear(); + this._drawManager.enabled = true; + this._drawManager.viewport.get().append(viewpoint.annotations); + } + // #endregion + // #region Recover dimensions + const dimensionsComponent = this.components.tools.get(LengthMeasurement); + viewpoint.dimensions.forEach((data) => { + const dimension = new SimpleDimensionLine(this.components, { + start: data.start, + end: data.end, + // @ts-ignore + lineMaterial: dimensionsComponent._lineMaterial, + // @ts-ignore + endpoint: dimensionsComponent._endpointMesh, + }); + dimension.createBoundingBox(); + // @ts-ignore + dimensionsComponent._dimensions.push(dimension); + }); + // #endregion + // #region Recover filtered elements + // if (viewpoint.filter) { + // const filterData = fragments.groups.get(viewpoint.filter) + // for (const fragmentID in fragments.list) { + // const fragment = fragments.list[fragmentID] + // fragment.setVisibility(fragment.items, false) + // } + // for (const fragmentID in filterData) { + // const ids = filterData[fragmentID] + // fragments.list[fragmentID]?.setVisibility(ids, true) + // } + // } + // #endregion + // Select elements in the viewpoint + const selection = {}; + for (const fragmentID in viewpoint.selection) { + selection[fragmentID] = viewpoint.selection[fragmentID]; + } + const highlighter = await this.components.tools.get(FragmentHighlighter); + await highlighter.highlightByID(this.selectionHighlighter, selection, true); + // #region Recover camera position & target + const camera = this.components.camera; + const controls = camera.controls; + controls.setLookAt(viewpoint.position.x, viewpoint.position.y, viewpoint.position.z, viewpoint.target.x, viewpoint.target.y, viewpoint.target.z, true); + await this.onViewpointViewed.trigger(guid); + // #endregion } - } - IFC4X32.IfcRampFlightType = IfcRampFlightType; - class IfcRampType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1469900589; +} + +/** + * A simple navigation cube to zoom the scene to its basic views (top, bottom, + * left, right, back and front). + */ +class CubeMap extends Component { + get visible() { + return this._visible; } - } - IFC4X32.IfcRampType = IfcRampType; - class IfcRationalBSplineSurfaceWithKnots extends IfcBSplineSurfaceWithKnots { - constructor(expressID, UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect, UMultiplicities, VMultiplicities, UKnots, VKnots, KnotSpec, WeightsData) { - super(expressID, UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect, UMultiplicities, VMultiplicities, UKnots, VKnots, KnotSpec); - this.UDegree = UDegree; - this.VDegree = VDegree; - this.ControlPointsList = ControlPointsList; - this.SurfaceForm = SurfaceForm; - this.UClosed = UClosed; - this.VClosed = VClosed; - this.SelfIntersect = SelfIntersect; - this.UMultiplicities = UMultiplicities; - this.VMultiplicities = VMultiplicities; - this.UKnots = UKnots; - this.VKnots = VKnots; - this.KnotSpec = KnotSpec; - this.WeightsData = WeightsData; - this.type = 683857671; + set visible(value) { + this._visible = value; + if (this._visible) { + this._cubeWrapper.classList.remove("hidden"); + } + else { + this._cubeWrapper.classList.add("hidden"); + } } - } - IFC4X32.IfcRationalBSplineSurfaceWithKnots = IfcRationalBSplineSurfaceWithKnots; - class IfcReferent extends IfcPositioningElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.PredefinedType = PredefinedType; - this.type = 4021432810; + constructor(components) { + var _a; + super(components); + /** {@link Component.enabled} */ + this.enabled = true; + /** {@link Updateable.onAfterUpdate} */ + this.onAfterUpdate = new Event(); + /** {@link Updateable.onBeforeUpdate} */ + this.onBeforeUpdate = new Event(); + /** The minimum zoom distance to the scene. */ + this.offset = 1; + this._cubeFaceClass = "flex justify-center font-bold hover:bg-ifcjs-200 hover:text-ifcjs-100 text-white select-none text-xl items-center cursor-pointer text-center text-ifcjs-100 absolute w-[60px] h-[60px] border-solid border-ifcjs-120"; + this._cyan = "bg-[#3CE6FEDD]"; + this._pink = "bg-[#BD4BF3DD]"; + this._blue = "bg-[#201491DD]"; + this._cube = document.createElement("div"); + this._cubeWrapper = document.createElement("div"); + this._matrix = new THREE$1.Matrix4(); + this._faceOrientations = { + front: new THREE$1.Vector3(0, 0, 1), + top: new THREE$1.Vector3(0, 1, 0), + bottom: new THREE$1.Vector3(0, -1, 0), + right: new THREE$1.Vector3(1, 0, 0), + left: new THREE$1.Vector3(-1, 0, 0), + back: new THREE$1.Vector3(0, 0, -1), + }; + this.update = () => { + this._matrix.extractRotation(this._camera.get().matrixWorldInverse); + this._cube.style.transform = `translateZ(-300px) ${this.getCameraCSSMatrix(this._matrix)}`; + }; + this.components.tools.add(CubeMap.uuid, this); + this._cubeWrapper.id = "tooeen-cube-map"; + this._cubeWrapper.className = "absolute z-10"; + this.setPosition("bottom-right"); + this._cube.className = "w-[60px] h-[60px] relative"; + this.setSize("400"); + this._cube.style.transformStyle = "preserve-3d"; + this._cube.style.transform = "translateZ(-300px)"; + this._cube.style.textTransform = "uppercase"; + this._cubeWrapper.append(this._cube); + if (components.camera.isUpdateable()) { + components.camera.onAfterUpdate.add(this.update); + } + // #region Cube faces + const frontFace = document.createElement("div"); + frontFace.id = "cube-map-front"; + frontFace.className = `${this._cubeFaceClass} ${this._cyan}`; + frontFace.style.transform = "rotateX(180deg) translateZ(-30px)"; + frontFace.style.transition = "all 0.2s"; + frontFace.onclick = () => this.orientToFace("front"); + const topFace = document.createElement("div"); + topFace.className = `${this._cubeFaceClass} ${this._pink}`; + topFace.style.transform = "rotateX(90deg) translateZ(-30px)"; + topFace.style.transition = "all 0.2s"; + topFace.onclick = () => this.orientToFace("top"); + const bottomFace = document.createElement("div"); + bottomFace.className = `${this._cubeFaceClass} ${this._pink}`; + bottomFace.style.transform = "rotateX(270deg) translateZ(-30px)"; + bottomFace.style.transition = "all 0.2s"; + bottomFace.onclick = () => this.orientToFace("bottom"); + const rightFace = document.createElement("div"); + rightFace.className = `${this._cubeFaceClass} ${this._blue}`; + rightFace.style.transform = + "rotateY(-270deg) rotateX(180deg) translateZ(-30px)"; + rightFace.style.transition = "all 0.2s"; + rightFace.onclick = () => this.orientToFace("right"); + const leftFace = document.createElement("div"); + leftFace.className = `${this._cubeFaceClass} ${this._blue}`; + leftFace.style.transform = + "rotateY(-90deg) rotateX(180deg) translateZ(-30px)"; + leftFace.style.transition = "all 0.2s"; + leftFace.onclick = () => this.orientToFace("left"); + const backFace = document.createElement("div"); + backFace.className = `${this._cubeFaceClass} ${this._cyan}`; + backFace.style.transform = "translateZ(-30px) rotateZ(180deg)"; + backFace.style.transition = "all 0.2s"; + backFace.onclick = () => this.orientToFace("back"); + // #endregion + this._cube.append(frontFace, topFace, bottomFace, rightFace, leftFace, backFace); + (_a = this._viewerContainer) === null || _a === void 0 ? void 0 : _a.append(this._cubeWrapper); + this.visible = true; + } + async dispose() { + this.onAfterUpdate.reset(); + this.onBeforeUpdate.reset(); + this._cube.remove(); + this._cubeWrapper.remove(); + this.components = null; + } + setSize(value = "350") { + this._cubeWrapper.style.perspective = `${value}px`; + } + setPosition(corner) { + this._cubeWrapper.classList.remove("top-8", "bottom-8", "left-8", "right-8"); + const wrapperPositions = { + "top-left": ["top-8", "left-8"], + "top-right": ["top-8", "right-8"], + "bottom-right": ["bottom-8", "right-8"], + "bottom-left": ["bottom-8", "left-8"], + }; + this._cubeWrapper.classList.add(...wrapperPositions[corner]); + } + orientToFace(orientation) { + const camera = this._camera.get(); + if (this._camera instanceof OrthoPerspectiveCamera) { + const controls = this._camera.controls; + const projection = this._camera.getProjection(); + const target = camera.position + .clone() + .add(this._faceOrientations[orientation].clone().multiplyScalar(-1)); + const { x, y, z } = camera.position; + if (projection === "Perspective") { + controls.setLookAt(x, y, z, target.x, target.y, target.z, true); + } + else { + const pos = new THREE$1.Vector3(); + if (orientation === "top") + pos.set(0, 200, 0); + if (orientation === "bottom") + pos.set(0, -200, 0); + if (orientation === "left") + pos.set(-200, 0, 0); + if (orientation === "right") + pos.set(200, 0, 0); + if (orientation === "front") + pos.set(0, 0, 200); + if (orientation === "back") + pos.set(0, 0, -200); + controls.setPosition(pos.x, pos.y, pos.z, true); + controls.setTarget(0, 0, 0, true); + } + this._camera.fit(undefined, this.offset); + } } - } - IFC4X32.IfcReferent = IfcReferent; - class IfcReinforcingElement extends IfcElementComponent { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.SteelGrade = SteelGrade; - this.type = 3027567501; + get _viewerContainer() { + return this.components.renderer.get().domElement.parentElement; } - } - IFC4X32.IfcReinforcingElement = IfcReinforcingElement; - class IfcReinforcingElementType extends IfcElementComponentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 964333572; + get _camera() { + return this.components.camera; } - } - IFC4X32.IfcReinforcingElementType = IfcReinforcingElementType; - class IfcReinforcingMesh extends IfcReinforcingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, MeshLength, MeshWidth, LongitudinalBarNominalDiameter, TransverseBarNominalDiameter, LongitudinalBarCrossSectionArea, TransverseBarCrossSectionArea, LongitudinalBarSpacing, TransverseBarSpacing, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.SteelGrade = SteelGrade; - this.MeshLength = MeshLength; - this.MeshWidth = MeshWidth; - this.LongitudinalBarNominalDiameter = LongitudinalBarNominalDiameter; - this.TransverseBarNominalDiameter = TransverseBarNominalDiameter; - this.LongitudinalBarCrossSectionArea = LongitudinalBarCrossSectionArea; - this.TransverseBarCrossSectionArea = TransverseBarCrossSectionArea; - this.LongitudinalBarSpacing = LongitudinalBarSpacing; - this.TransverseBarSpacing = TransverseBarSpacing; - this.PredefinedType = PredefinedType; - this.type = 2320036040; + getCameraCSSMatrix(matrix) { + const { elements } = matrix; + const epsilon = (value) => { + return Math.abs(value) < 1e-10 ? 0 : value; + }; + return `matrix3d( + ${epsilon(elements[0])}, + ${epsilon(-elements[1])}, + ${epsilon(elements[2])}, + ${epsilon(elements[3])}, + ${epsilon(elements[4])}, + ${epsilon(-elements[5])}, + ${epsilon(elements[6])}, + ${epsilon(elements[7])}, + ${epsilon(elements[8])}, + ${epsilon(-elements[9])}, + ${epsilon(elements[10])}, + ${epsilon(elements[11])}, + ${epsilon(elements[12])}, + ${epsilon(-elements[13])}, + ${epsilon(elements[14])}, + ${epsilon(elements[15])}) + `; + } + get() { + return this._cubeWrapper; } - } - IFC4X32.IfcReinforcingMesh = IfcReinforcingMesh; - class IfcReinforcingMeshType extends IfcReinforcingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, MeshLength, MeshWidth, LongitudinalBarNominalDiameter, TransverseBarNominalDiameter, LongitudinalBarCrossSectionArea, TransverseBarCrossSectionArea, LongitudinalBarSpacing, TransverseBarSpacing, BendingShapeCode, BendingParameters) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.MeshLength = MeshLength; - this.MeshWidth = MeshWidth; - this.LongitudinalBarNominalDiameter = LongitudinalBarNominalDiameter; - this.TransverseBarNominalDiameter = TransverseBarNominalDiameter; - this.LongitudinalBarCrossSectionArea = LongitudinalBarCrossSectionArea; - this.TransverseBarCrossSectionArea = TransverseBarCrossSectionArea; - this.LongitudinalBarSpacing = LongitudinalBarSpacing; - this.TransverseBarSpacing = TransverseBarSpacing; - this.BendingShapeCode = BendingShapeCode; - this.BendingParameters = BendingParameters; - this.type = 2310774935; +} +CubeMap.uuid = "53311ea3-323a-476f-ae4a-d681778e8f67"; +ToolComponent.libraryUUIDs.add(CubeMap.uuid); + +class MiniMap extends Component { + get lockRotation() { + return this._lockRotation; } - } - IFC4X32.IfcReinforcingMeshType = IfcReinforcingMeshType; - class IfcRelAdheresToElement extends IfcRelDecomposes { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedSurfaceFeatures) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingElement = RelatingElement; - this.RelatedSurfaceFeatures = RelatedSurfaceFeatures; - this.type = 3818125796; + set lockRotation(active) { + this._lockRotation = active; + if (active) { + this._camera.rotation.z = 0; + } } - } - IFC4X32.IfcRelAdheresToElement = IfcRelAdheresToElement; - class IfcRelAggregates extends IfcRelDecomposes { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingObject = RelatingObject; - this.RelatedObjects = RelatedObjects; - this.type = 160246688; + get zoom() { + return this._camera.zoom; } - } - IFC4X32.IfcRelAggregates = IfcRelAggregates; - class IfcRoad extends IfcFacility { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.PredefinedType = PredefinedType; - this.type = 146592293; + set zoom(value) { + this._camera.zoom = value; + this._camera.updateProjectionMatrix(); } - } - IFC4X32.IfcRoad = IfcRoad; - class IfcRoadPart extends IfcFacilityPart { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.UsageType = UsageType; - this.PredefinedType = PredefinedType; - this.type = 550521510; + get enabled() { + return this._enabled; } - } - IFC4X32.IfcRoadPart = IfcRoadPart; - class IfcRoofType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2781568857; + set enabled(active) { + this._enabled = active; + const canvas = this.uiElement.get("canvas"); + canvas.visible = active; } - } - IFC4X32.IfcRoofType = IfcRoofType; - class IfcSanitaryTerminalType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1768891740; + constructor(components) { + super(components); + this.uiElement = new UIElement(); + this.onAfterUpdate = new Event(); + this.onBeforeUpdate = new Event(); + this.onResize = new Event(); + // By pushing the map to the front, what the user sees on screen corresponds with what they see on the map + this.frontOffset = 0; + this.overrideMaterial = new THREE$1.MeshDepthMaterial(); + this.backgroundColor = new THREE$1.Color(0x06080a); + this._enabled = true; + this._lockRotation = true; + this._size = new THREE$1.Vector2(320, 160); + this._tempVector1 = new THREE$1.Vector3(); + this._tempVector2 = new THREE$1.Vector3(); + this._tempTarget = new THREE$1.Vector3(); + this.down = new THREE$1.Vector3(0, -1, 0); + this.updatePlanes = () => { + const planes = []; + const renderer = this._components.renderer.get(); + for (const plane of renderer.clippingPlanes) { + planes.push(plane); + } + planes.push(this._plane); + this._renderer.clippingPlanes = planes; + }; + this.components.tools.add(MiniMap.uuid, this); + const main = new Button(components); + const canvas = new Canvas(components); + this.uiElement.set({ main, canvas }); + main.materialIcon = "map"; + main.onClick.add(() => { + canvas.visible = !canvas.visible; + }); + const range = new RangeInput(components); + canvas.addChild(range); + this._components = components; + const htmlCanvas = canvas.get(); + this._renderer = new THREE$1.WebGLRenderer({ canvas: htmlCanvas }); + this._renderer.setSize(this._size.x, this._size.y); + const frustumSize = 1; + const aspect = this._size.x / this._size.y; + this._camera = new THREE$1.OrthographicCamera((frustumSize * aspect) / -2, (frustumSize * aspect) / 2, frustumSize / 2, frustumSize / -2); + this._components.renderer.onClippingPlanesUpdated.add(this.updatePlanes); + this._camera.position.set(0, 200, 0); + this._camera.zoom = 0.1; + this._camera.rotation.x = -Math.PI / 2; + this._plane = new THREE$1.Plane(this.down, 200); + this.updatePlanes(); + } + async dispose() { + this.enabled = false; + this.uiElement.dispose(); + this.onBeforeUpdate.reset(); + this.onAfterUpdate.reset(); + this.onResize.reset(); + this.overrideMaterial.dispose(); + this._renderer.dispose(); + } + get() { + return this._camera; + } + async update() { + if (!this.enabled) + return; + await this.onBeforeUpdate.trigger(); + const scene = this._components.scene.get(); + const cameraComponent = this._components.camera; + const controls = cameraComponent.controls; + controls.getPosition(this._tempVector1); + this._camera.position.x = this._tempVector1.x; + this._camera.position.z = this._tempVector1.z; + if (this.frontOffset !== 0) { + controls.getTarget(this._tempVector2); + this._tempVector2.sub(this._tempVector1); + this._tempVector2.normalize().multiplyScalar(this.frontOffset); + this._camera.position.x += this._tempVector2.x; + this._camera.position.z += this._tempVector2.z; + } + if (!this._lockRotation) { + controls.getTarget(this._tempTarget); + const angle = Math.atan2(this._tempTarget.x - this._tempVector1.x, this._tempTarget.z - this._tempVector1.z); + this._camera.rotation.z = angle + Math.PI; + } + this._plane.set(this.down, this._tempVector1.y); + const previousBackground = scene.background; + scene.background = this.backgroundColor; + this._renderer.render(scene, this._camera); + scene.background = previousBackground; + await this.onAfterUpdate.trigger(); + } + getSize() { + const canvas = this.uiElement.get("canvas"); + return canvas.getSize(); + } + async resize(size) { + const canvas = this.uiElement.get("canvas"); + if (size) { + this._size.copy(size); + canvas.resize(size); + this._renderer.setSize(size.x, size.y); + const aspect = size.x / size.y; + const frustumSize = 1; + this._camera.left = (frustumSize * aspect) / -2; + this._camera.right = (frustumSize * aspect) / 2; + this._camera.top = frustumSize / 2; + this._camera.bottom = -frustumSize / 2; + this._camera.updateProjectionMatrix(); + await this.onResize.trigger(size); + } } - } - IFC4X32.IfcSanitaryTerminalType = IfcSanitaryTerminalType; - class IfcSeamCurve extends IfcSurfaceCurve { - constructor(expressID, Curve3D, AssociatedGeometry, MasterRepresentation) { - super(expressID, Curve3D, AssociatedGeometry, MasterRepresentation); - this.Curve3D = Curve3D; - this.AssociatedGeometry = AssociatedGeometry; - this.MasterRepresentation = MasterRepresentation; - this.type = 2157484638; +} +MiniMap.uuid = "39ad6aad-84c8-4adf-a1e0-7f25313a9e7f"; +ToolComponent.libraryUUIDs.add(MiniMap.uuid); + +class FragmentHighlighter extends Component { + get outlineEnabled() { + return this._outlineEnabled; } - } - IFC4X32.IfcSeamCurve = IfcSeamCurve; - class IfcSecondOrderPolynomialSpiral extends IfcSpiral { - constructor(expressID, Position, QuadraticTerm, LinearTerm, ConstantTerm) { - super(expressID, Position); - this.Position = Position; - this.QuadraticTerm = QuadraticTerm; - this.LinearTerm = LinearTerm; - this.ConstantTerm = ConstantTerm; - this.type = 3649235739; + set outlineEnabled(value) { + this._outlineEnabled = value; + if (!value) { + delete this._postproduction.customEffects.outlinedMeshes.fragments; + } } - } - IFC4X32.IfcSecondOrderPolynomialSpiral = IfcSecondOrderPolynomialSpiral; - class IfcSegmentedReferenceCurve extends IfcCompositeCurve { - constructor(expressID, Segments, SelfIntersect, BaseCurve, EndPoint) { - super(expressID, Segments, SelfIntersect); - this.Segments = Segments; - this.SelfIntersect = SelfIntersect; - this.BaseCurve = BaseCurve; - this.EndPoint = EndPoint; - this.type = 544395925; + get _postproduction() { + if (!(this.components.renderer instanceof PostproductionRenderer)) { + throw new Error("Postproduction renderer is needed for outlines!"); + } + const renderer = this.components.renderer; + return renderer.postproduction; } - } - IFC4X32.IfcSegmentedReferenceCurve = IfcSegmentedReferenceCurve; - class IfcSeventhOrderPolynomialSpiral extends IfcSpiral { - constructor(expressID, Position, SepticTerm, SexticTerm, QuinticTerm, QuarticTerm, CubicTerm, QuadraticTerm, LinearTerm, ConstantTerm) { - super(expressID, Position); - this.Position = Position; - this.SepticTerm = SepticTerm; - this.SexticTerm = SexticTerm; - this.QuinticTerm = QuinticTerm; - this.QuarticTerm = QuarticTerm; - this.CubicTerm = CubicTerm; - this.QuadraticTerm = QuadraticTerm; - this.LinearTerm = LinearTerm; - this.ConstantTerm = ConstantTerm; - this.type = 1027922057; + constructor(components) { + super(components); + this.enabled = true; + this.highlightMats = {}; + this.events = {}; + this.multiple = "ctrlKey"; + this.zoomFactor = 1.5; + this.zoomToSelection = false; + this.selection = {}; + this.excludeOutline = new Set(); + this.fillEnabled = true; + this.outlineMaterial = new THREE$1.MeshBasicMaterial({ + color: "white", + transparent: true, + depthTest: false, + depthWrite: false, + opacity: 0.4, + }); + this._eventsActive = false; + this._outlineEnabled = true; + this._outlinedMeshes = {}; + this._invisibleMaterial = new THREE$1.MeshBasicMaterial({ visible: false }); + this._tempMatrix = new THREE$1.Matrix4(); + this._default = { + selectName: "select", + hoverName: "hover", + mouseDown: false, + mouseMoved: false, + selectionMaterial: new THREE$1.MeshBasicMaterial({ + color: "#BCF124", + transparent: true, + opacity: 0.85, + depthTest: true, + }), + highlightMaterial: new THREE$1.MeshBasicMaterial({ + color: "#6528D7", + transparent: true, + opacity: 0.2, + depthTest: true, + }), + }; + this.onMouseDown = () => { + if (!this.enabled) + return; + this._default.mouseDown = true; + }; + this.onMouseUp = async (event) => { + if (!this.enabled) + return; + if (event.target !== this.components.renderer.get().domElement) + return; + this._default.mouseDown = false; + if (this._default.mouseMoved || event.button !== 0) { + this._default.mouseMoved = false; + return; + } + this._default.mouseMoved = false; + const mult = this.multiple === "none" ? true : !event[this.multiple]; + await this.highlight(this._default.selectName, mult, this.zoomToSelection); + }; + this.onMouseMove = async () => { + if (!this.enabled) + return; + if (this._default.mouseMoved) { + await this.clearFills(this._default.hoverName); + return; + } + this._default.mouseMoved = this._default.mouseDown; + await this.highlight(this._default.hoverName, true, false); + }; + this.components.tools.add(FragmentHighlighter.uuid, this); + } + get() { + return this.highlightMats; + } + async dispose() { + this.setupEvents(false); + this._default.highlightMaterial.dispose(); + this._default.selectionMaterial.dispose(); + for (const matID in this.highlightMats) { + const mats = this.highlightMats[matID] || []; + for (const mat of mats) { + mat.dispose(); + } + } + for (const id in this._outlinedMeshes) { + const mesh = this._outlinedMeshes[id]; + mesh.geometry.dispose(); + } + this.outlineMaterial.dispose(); + this._invisibleMaterial.dispose(); + this.highlightMats = {}; + this.selection = {}; + for (const name in this.events) { + this.events[name].onClear.reset(); + this.events[name].onHighlight.reset(); + } + this.events = {}; + } + async add(name, material) { + if (this.highlightMats[name]) { + throw new Error("A highlight with this name already exists."); + } + this.highlightMats[name] = material; + this.selection[name] = {}; + this.events[name] = { + onHighlight: new Event(), + onClear: new Event(), + }; + await this.update(); } - } - IFC4X32.IfcSeventhOrderPolynomialSpiral = IfcSeventhOrderPolynomialSpiral; - class IfcShadingDeviceType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 4074543187; + async update() { + if (!this.fillEnabled) { + return; + } + const fragments = await this.components.tools.get(FragmentManager); + for (const fragmentID in fragments.list) { + const fragment = fragments.list[fragmentID]; + this.addHighlightToFragment(fragment); + const outlinedMesh = this._outlinedMeshes[fragmentID]; + if (outlinedMesh) { + fragment.mesh.updateMatrixWorld(true); + outlinedMesh.applyMatrix4(fragment.mesh.matrixWorld); + } + } } - } - IFC4X32.IfcShadingDeviceType = IfcShadingDeviceType; - class IfcSign extends IfcElementComponent { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 33720170; + async highlight(name, removePrevious = true, zoomToSelection = this.zoomToSelection) { + var _a; + if (!this.enabled) + return null; + this.checkSelection(name); + const fragments = await this.components.tools.get(FragmentManager); + const fragList = []; + const meshes = fragments.meshes; + const result = this.components.raycaster.castRay(meshes); + if (!result) { + await this.clear(name); + return null; + } + const mesh = result.object; + const geometry = mesh.geometry; + const index = (_a = result.face) === null || _a === void 0 ? void 0 : _a.a; + const instanceID = result.instanceId; + if (!geometry || index === undefined || instanceID === undefined) { + return null; + } + if (removePrevious) { + await this.clear(name); + } + if (!this.selection[name][mesh.uuid]) { + this.selection[name][mesh.uuid] = new Set(); + } + fragList.push(mesh.fragment); + const blockID = mesh.fragment.getVertexBlockID(geometry, index); + const itemID = mesh.fragment + .getItemID(instanceID, blockID) + .replace(/\..*/, ""); + const idNum = parseInt(itemID, 10); + this.selection[name][mesh.uuid].add(itemID); + this.addComposites(mesh, idNum, name); + await this.regenerate(name, mesh.uuid); + const group = mesh.fragment.group; + if (group) { + const keys = group.data[idNum][0]; + for (let i = 0; i < keys.length; i++) { + const fragKey = keys[i]; + const fragID = group.keyFragments[fragKey]; + const fragment = fragments.list[fragID]; + fragList.push(fragment); + if (!this.selection[name][fragID]) { + this.selection[name][fragID] = new Set(); + } + this.selection[name][fragID].add(itemID); + this.addComposites(fragment.mesh, idNum, name); + await this.regenerate(name, fragID); + } + } + await this.events[name].onHighlight.trigger(this.selection[name]); + if (zoomToSelection) { + await this.zoomSelection(name); + } + return { id: itemID, fragments: fragList }; } - } - IFC4X32.IfcSign = IfcSign; - class IfcSignType extends IfcElementComponentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3599934289; + async highlightByID(name, ids, removePrevious = true, zoomToSelection = this.zoomToSelection) { + if (!this.enabled) + return; + if (removePrevious) { + await this.clear(name); + } + const styles = this.selection[name]; + for (const fragID in ids) { + if (!styles[fragID]) { + styles[fragID] = new Set(); + } + const fragments = await this.components.tools.get(FragmentManager); + const fragment = fragments.list[fragID]; + const idsNum = new Set(); + for (const id of ids[fragID]) { + styles[fragID].add(id); + idsNum.add(parseInt(id, 10)); + } + for (const id of idsNum) { + this.addComposites(fragment.mesh, id, name); + } + await this.regenerate(name, fragID); + } + await this.events[name].onHighlight.trigger(this.selection[name]); + if (zoomToSelection) { + await this.zoomSelection(name); + } } - } - IFC4X32.IfcSignType = IfcSignType; - class IfcSignalType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1894708472; + /** + * Clears any selection previously made by calling {@link highlight}. + */ + async clear(name) { + await this.clearFills(name); + if (!name || !this.excludeOutline.has(name)) { + await this.clearOutlines(); + } } - } - IFC4X32.IfcSignalType = IfcSignalType; - class IfcSineSpiral extends IfcSpiral { - constructor(expressID, Position, SineTerm, LinearTerm, ConstantTerm) { - super(expressID, Position); - this.Position = Position; - this.SineTerm = SineTerm; - this.LinearTerm = LinearTerm; - this.ConstantTerm = ConstantTerm; - this.type = 42703149; + async setup() { + this.enabled = true; + this.outlineMaterial.color.set(0xf0ff7a); + this.excludeOutline.add(this._default.hoverName); + await this.add(this._default.selectName, [this._default.selectionMaterial]); + await this.add(this._default.hoverName, [this._default.highlightMaterial]); + this.setupEvents(true); } - } - IFC4X32.IfcSineSpiral = IfcSineSpiral; - class IfcSite extends IfcSpatialStructureElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, RefLatitude, RefLongitude, RefElevation, LandTitleNumber, SiteAddress) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.RefLatitude = RefLatitude; - this.RefLongitude = RefLongitude; - this.RefElevation = RefElevation; - this.LandTitleNumber = LandTitleNumber; - this.SiteAddress = SiteAddress; - this.type = 4097777520; + async regenerate(name, fragID) { + if (this.fillEnabled) { + await this.updateFragmentFill(name, fragID); + } + if (this._outlineEnabled) { + await this.updateFragmentOutline(name, fragID); + } } - } - IFC4X32.IfcSite = IfcSite; - class IfcSlabType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2533589738; + async zoomSelection(name) { + if (!this.fillEnabled && !this._outlineEnabled) { + return; + } + const bbox = await this.components.tools.get(FragmentBoundingBox); + const fragments = await this.components.tools.get(FragmentManager); + bbox.reset(); + const selected = this.selection[name]; + if (!Object.keys(selected).length) { + return; + } + for (const fragID in selected) { + const fragment = fragments.list[fragID]; + if (this.fillEnabled) { + const highlight = fragment.fragments[name]; + if (highlight) { + bbox.addMesh(highlight.mesh); + } + } + if (this._outlineEnabled && this._outlinedMeshes[fragID]) { + bbox.addMesh(this._outlinedMeshes[fragID]); + } + } + const sphere = bbox.getSphere(); + sphere.radius *= this.zoomFactor; + const camera = this.components.camera; + await camera.controls.fitToSphere(sphere, true); + } + addComposites(mesh, itemID, name) { + const composites = mesh.fragment.composites[itemID]; + if (composites) { + for (let i = 1; i < composites; i++) { + const compositeID = toCompositeID(itemID, i); + this.selection[name][mesh.uuid].add(compositeID); + } + } } - } - IFC4X32.IfcSlabType = IfcSlabType; - class IfcSolarDeviceType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1072016465; + async clearStyle(name) { + const fragments = await this.components.tools.get(FragmentManager); + for (const fragID in this.selection[name]) { + const fragment = fragments.list[fragID]; + if (!fragment) + continue; + const selection = fragment.fragments[name]; + if (selection) { + selection.mesh.removeFromParent(); + } + } + await this.events[name].onClear.trigger(null); + this.selection[name] = {}; } - } - IFC4X32.IfcSolarDeviceType = IfcSolarDeviceType; - class IfcSpace extends IfcSpatialStructureElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, PredefinedType, ElevationWithFlooring) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.PredefinedType = PredefinedType; - this.ElevationWithFlooring = ElevationWithFlooring; - this.type = 3856911033; + async updateFragmentFill(name, fragmentID) { + const fragments = await this.components.tools.get(FragmentManager); + const ids = this.selection[name][fragmentID]; + const fragment = fragments.list[fragmentID]; + if (!fragment) + return; + const selection = fragment.fragments[name]; + if (!selection) + return; + // #region Old child/parent code + // const scene = this._components.scene.get(); + // scene.add(selection.mesh); //If we add selection.mesh directly to the scene, it won't be coordinated unless we do so manually. + // #endregion + // #region New child/parent code + const fragmentParent = fragment.mesh.parent; + if (!fragmentParent) + return; + fragmentParent.add(selection.mesh); + // #endregion + const isBlockFragment = selection.blocks.count > 1; + if (isBlockFragment) { + fragment.getInstance(0, this._tempMatrix); + selection.setInstance(0, { + ids: Array.from(fragment.ids), + transform: this._tempMatrix, + }); + selection.blocks.setVisibility(true, ids, true); + } + else { + let i = 0; + for (const id of ids) { + selection.mesh.count = i + 1; + const { instanceID } = fragment.getInstanceAndBlockID(id); + fragment.getInstance(instanceID, this._tempMatrix); + selection.setInstance(i, { ids: [id], transform: this._tempMatrix }); + i++; + } + } } - } - IFC4X32.IfcSpace = IfcSpace; - class IfcSpaceHeaterType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1305183839; + checkSelection(name) { + if (!this.selection[name]) { + throw new Error(`Selection ${name} does not exist.`); + } } - } - IFC4X32.IfcSpaceHeaterType = IfcSpaceHeaterType; - class IfcSpaceType extends IfcSpatialStructureElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, LongName) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.LongName = LongName; - this.type = 3812236995; + addHighlightToFragment(fragment) { + for (const name in this.highlightMats) { + if (!fragment.fragments[name]) { + const material = this.highlightMats[name]; + const subFragment = fragment.addFragment(name, material); + if (fragment.blocks.count > 1) { + subFragment.setInstance(0, { + ids: Array.from(fragment.ids), + transform: this._tempMatrix, + }); + subFragment.blocks.setVisibility(false); + } + subFragment.mesh.renderOrder = 2; + subFragment.mesh.frustumCulled = false; + } + } } - } - IFC4X32.IfcSpaceType = IfcSpaceType; - class IfcStackTerminalType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3112655638; + async clearFills(name) { + const names = name ? [name] : Object.keys(this.selection); + for (const name of names) { + await this.clearStyle(name); + } } - } - IFC4X32.IfcStackTerminalType = IfcStackTerminalType; - class IfcStairFlightType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1039846685; + async clearOutlines() { + const fragments = await this.components.tools.get(FragmentManager); + const effects = this._postproduction.customEffects; + const fragmentsOutline = effects.outlinedMeshes.fragments; + if (fragmentsOutline) { + fragmentsOutline.meshes.clear(); + } + for (const fragID in this._outlinedMeshes) { + const fragment = fragments.list[fragID]; + const isBlockFragment = fragment.blocks.count > 1; + const mesh = this._outlinedMeshes[fragID]; + if (isBlockFragment) { + mesh.geometry.setIndex([]); + } + else { + mesh.count = 0; + } + } } - } - IFC4X32.IfcStairFlightType = IfcStairFlightType; - class IfcStairType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 338393293; + async updateFragmentOutline(name, fragmentID) { + const fragments = await this.components.tools.get(FragmentManager); + if (!this.selection[name][fragmentID]) { + return; + } + if (this.excludeOutline.has(name)) { + return; + } + const ids = this.selection[name][fragmentID]; + const fragment = fragments.list[fragmentID]; + if (!fragment) + return; + const geometry = fragment.mesh.geometry; + const customEffects = this._postproduction.customEffects; + if (!customEffects.outlinedMeshes.fragments) { + customEffects.outlinedMeshes.fragments = { + meshes: new Set(), + material: this.outlineMaterial, + }; + } + const outlineEffect = customEffects.outlinedMeshes.fragments; + // Create a copy of the original fragment mesh for outline + if (!this._outlinedMeshes[fragmentID]) { + const newGeometry = new THREE$1.BufferGeometry(); + newGeometry.attributes = geometry.attributes; + newGeometry.index = geometry.index; + const newMesh = new THREE$1.InstancedMesh(newGeometry, this._invisibleMaterial, fragment.capacity); + newMesh.frustumCulled = false; + newMesh.renderOrder = 999; + fragment.mesh.updateMatrixWorld(true); + newMesh.applyMatrix4(fragment.mesh.matrixWorld); + this._outlinedMeshes[fragmentID] = newMesh; + const scene = this.components.scene.get(); + scene.add(newMesh); + } + const outlineMesh = this._outlinedMeshes[fragmentID]; + outlineEffect.meshes.add(outlineMesh); + const isBlockFragment = fragment.blocks.count > 1; + if (isBlockFragment) { + const indices = fragment.mesh.geometry.index.array; + const newIndex = []; + const idsSet = new Set(ids); + for (let i = 0; i < indices.length - 2; i += 3) { + const index = indices[i]; + const blockID = fragment.mesh.geometry.attributes.blockID.array; + const block = blockID[index]; + const itemID = fragment.mesh.fragment.getItemID(0, block); + if (idsSet.has(itemID)) { + newIndex.push(indices[i], indices[i + 1], indices[i + 2]); + } + } + outlineMesh.geometry.setIndex(newIndex); + } + else { + let counter = 0; + for (const id of ids) { + const { instanceID } = fragment.getInstanceAndBlockID(id); + fragment.mesh.getMatrixAt(instanceID, this._tempMatrix); + outlineMesh.setMatrixAt(counter++, this._tempMatrix); + } + outlineMesh.count = counter; + outlineMesh.instanceMatrix.needsUpdate = true; + } } - } - IFC4X32.IfcStairType = IfcStairType; - class IfcStructuralAction extends IfcStructuralActivity { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.DestabilizingLoad = DestabilizingLoad; - this.type = 682877961; + setupEvents(active) { + const container = this.components.renderer.get().domElement; + if (active === this._eventsActive) { + return; + } + this._eventsActive = active; + if (active) { + container.addEventListener("mousedown", this.onMouseDown); + container.addEventListener("mouseup", this.onMouseUp); + container.addEventListener("mousemove", this.onMouseMove); + } + else { + container.removeEventListener("mousedown", this.onMouseDown); + container.removeEventListener("mouseup", this.onMouseUp); + container.removeEventListener("mousemove", this.onMouseMove); + } } - } - IFC4X32.IfcStructuralAction = IfcStructuralAction; - class IfcStructuralConnection extends IfcStructuralItem { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedCondition = AppliedCondition; - this.type = 1179482911; +} +FragmentHighlighter.uuid = "cb8a76f2-654a-4b50-80c6-66fd83cafd77"; +ToolComponent.libraryUUIDs.add(FragmentHighlighter.uuid); + +class FragmentTreeItem extends Component { + get children() { + return this._children; + } + set children(children) { + this._children = children; + children.forEach((child) => { + const subTree = child.uiElement.get("tree"); + this.uiElement.get("tree").addChild(subTree); + }); } - } - IFC4X32.IfcStructuralConnection = IfcStructuralConnection; - class IfcStructuralCurveAction extends IfcStructuralAction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.DestabilizingLoad = DestabilizingLoad; - this.ProjectedOrTrue = ProjectedOrTrue; - this.PredefinedType = PredefinedType; - this.type = 1004757350; + constructor(components, classifier, content) { + super(components); + this.name = "FragmentTreeItem"; + this.enabled = true; + this.filter = {}; + this.uiElement = new UIElement(); + this.onSelected = new Event(); + this.onHovered = new Event(); + this._children = []; + const main = new Button(components); + const tree = new TreeView(components, content); + this.uiElement.set({ main, tree }); + tree.onClick.add(async () => { + const found = await classifier.find(this.filter); + await this.onSelected.trigger(found); + }); + tree.get().onmouseenter = async () => { + const found = await classifier.find(this.filter); + await this.onHovered.trigger(found); + }; } - } - IFC4X32.IfcStructuralCurveAction = IfcStructuralCurveAction; - class IfcStructuralCurveConnection extends IfcStructuralConnection { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition, AxisDirection) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedCondition = AppliedCondition; - this.AxisDirection = AxisDirection; - this.type = 4243806635; + async dispose() { + this.uiElement.dispose(); + this.onSelected.reset(); + this.onHovered.reset(); + for (const child of this.children) { + await child.dispose(); + } } - } - IFC4X32.IfcStructuralCurveConnection = IfcStructuralCurveConnection; - class IfcStructuralCurveMember extends IfcStructuralMember { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Axis) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.PredefinedType = PredefinedType; - this.Axis = Axis; - this.type = 214636428; + get() { + return { name: this.name, filter: this.filter, children: this.children }; } - } - IFC4X32.IfcStructuralCurveMember = IfcStructuralCurveMember; - class IfcStructuralCurveMemberVarying extends IfcStructuralCurveMember { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Axis) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Axis); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.PredefinedType = PredefinedType; - this.Axis = Axis; - this.type = 2445595289; +} + +class FragmentClassifier extends Component { + constructor(components) { + super(components); + /** {@link Component.enabled} */ + this.enabled = true; + this._groupSystems = {}; + components.tools.add(FragmentClassifier.uuid, this); + } + /** {@link Component.get} */ + get() { + return this._groupSystems; + } + async dispose() { + this._groupSystems = {}; + } + remove(guid) { + for (const systemName in this._groupSystems) { + const system = this._groupSystems[systemName]; + for (const groupName in system) { + const group = system[groupName]; + delete group[guid]; + } + } } - } - IFC4X32.IfcStructuralCurveMemberVarying = IfcStructuralCurveMemberVarying; - class IfcStructuralCurveReaction extends IfcStructuralReaction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.PredefinedType = PredefinedType; - this.type = 2757150158; + async find(filter) { + const fragments = await this.components.tools.get(FragmentManager); + if (!filter) { + const result = {}; + const fragList = fragments.list; + for (const id in fragList) { + const fragment = fragList[id]; + const items = fragment.items; + const hidden = Object.keys(fragment.hiddenInstances); + result[id] = new Set(...items, ...hidden); + } + return result; + } + const size = Object.keys(filter).length; + const models = {}; + for (const name in filter) { + const values = filter[name]; + if (!this._groupSystems[name]) { + console.warn(`Classification ${name} does not exist.`); + continue; + } + for (const value of values) { + const found = this._groupSystems[name][value]; + if (found) { + for (const guid in found) { + if (!models[guid]) { + models[guid] = {}; + } + for (const id of found[guid]) { + if (!models[guid][id]) { + models[guid][id] = 1; + } + else { + models[guid][id]++; + } + } + } + } + } + } + const result = {}; + for (const guid in models) { + const model = models[guid]; + for (const id in model) { + const numberOfMatches = model[id]; + if (numberOfMatches === size) { + if (!result[guid]) { + result[guid] = new Set(); + } + result[guid].add(id); + const fragment = fragments.list[guid]; + const composites = fragment.composites[id]; + if (composites) { + const idNum = parseInt(id, 10); + for (let i = 1; i < composites; i++) { + const compositeID = toCompositeID(idNum, i); + result[guid].add(compositeID); + } + } + } + } + } + return result; } - } - IFC4X32.IfcStructuralCurveReaction = IfcStructuralCurveReaction; - class IfcStructuralLinearAction extends IfcStructuralCurveAction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.DestabilizingLoad = DestabilizingLoad; - this.ProjectedOrTrue = ProjectedOrTrue; - this.PredefinedType = PredefinedType; - this.type = 1807405624; + byModel(modelID, group) { + if (!this._groupSystems.model) { + this._groupSystems.model = {}; + } + const modelsClassification = this._groupSystems.model; + if (!modelsClassification[modelID]) { + modelsClassification[modelID] = {}; + } + const currentModel = modelsClassification[modelID]; + for (const expressID in group.data) { + const keys = group.data[expressID][0]; + for (const key of keys) { + const fragID = group.keyFragments[key]; + if (!currentModel[fragID]) { + currentModel[fragID] = new Set(); + } + currentModel[fragID].add(expressID); + } + } } - } - IFC4X32.IfcStructuralLinearAction = IfcStructuralLinearAction; - class IfcStructuralLoadGroup extends IfcGroup { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, ActionType, ActionSource, Coefficient, Purpose) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.PredefinedType = PredefinedType; - this.ActionType = ActionType; - this.ActionSource = ActionSource; - this.Coefficient = Coefficient; - this.Purpose = Purpose; - this.type = 1252848954; + byPredefinedType(group) { + var _a; + if (!group.properties) { + throw new Error("To group by predefined type, properties are needed"); + } + if (!this._groupSystems.predefinedTypes) { + this._groupSystems.predefinedTypes = {}; + } + const currentTypes = this._groupSystems.predefinedTypes; + for (const expressID in group.data) { + const entity = group.properties[expressID]; + if (!entity) + continue; + const predefinedType = String((_a = entity.PredefinedType) === null || _a === void 0 ? void 0 : _a.value).toUpperCase(); + if (!currentTypes[predefinedType]) { + currentTypes[predefinedType] = {}; + } + const currentType = currentTypes[predefinedType]; + for (const expressID in group.data) { + const keys = group.data[expressID][0]; + for (const key of keys) { + const fragmentID = group.keyFragments[key]; + if (!currentType[fragmentID]) { + currentType[fragmentID] = new Set(); + } + const currentFragment = currentType[fragmentID]; + currentFragment.add(entity.expressID); + } + } + } } - } - IFC4X32.IfcStructuralLoadGroup = IfcStructuralLoadGroup; - class IfcStructuralPointAction extends IfcStructuralAction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.DestabilizingLoad = DestabilizingLoad; - this.type = 2082059205; + byEntity(group) { + if (!this._groupSystems.entities) { + this._groupSystems.entities = {}; + } + for (const expressID in group.data) { + const rels = group.data[expressID][1]; + const type = rels[1]; + const entity = IfcCategoryMap[type]; + this.saveItem(group, "entities", entity, expressID); + } + } + byStorey(group) { + if (!group.properties) { + throw new Error("To group by storey, properties are needed"); + } + for (const expressID in group.data) { + const rels = group.data[expressID][1]; + const storeyID = rels[0]; + const storey = group.properties[storeyID]; + if (storey === undefined) + continue; + const storeyName = group.properties[storeyID].Name.value; + this.saveItem(group, "storeys", storeyName, expressID); + } } - } - IFC4X32.IfcStructuralPointAction = IfcStructuralPointAction; - class IfcStructuralPointConnection extends IfcStructuralConnection { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition, ConditionCoordinateSystem) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedCondition = AppliedCondition; - this.ConditionCoordinateSystem = ConditionCoordinateSystem; - this.type = 734778138; + byIfcRel(group, ifcRel, systemName) { + const properties = group.properties; + if (!properties) + throw new Error("To group by IFC Rel, properties are needed"); + if (!IfcPropertiesUtils.isRel(ifcRel)) + return; + IfcPropertiesUtils.getRelationMap(properties, ifcRel, (relatingID, relatedIDs) => { + const { name: relatingName } = IfcPropertiesUtils.getEntityName(properties, relatingID); + for (const expressID of relatedIDs) { + this.saveItem(group, systemName, relatingName !== null && relatingName !== void 0 ? relatingName : "NO REL NAME", String(expressID)); + } + }); } - } - IFC4X32.IfcStructuralPointConnection = IfcStructuralPointConnection; - class IfcStructuralPointReaction extends IfcStructuralReaction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.type = 1235345126; + saveItem(group, systemName, className, expressID) { + if (!this._groupSystems[systemName]) { + this._groupSystems[systemName] = {}; + } + const keys = group.data[expressID]; + if (!keys) + return; + for (const key of keys[0]) { + const fragmentID = group.keyFragments[key]; + if (fragmentID) { + const system = this._groupSystems[systemName]; + if (!system[className]) { + system[className] = {}; + } + if (!system[className][fragmentID]) { + system[className][fragmentID] = new Set(); + } + system[className][fragmentID].add(expressID); + } + } } - } - IFC4X32.IfcStructuralPointReaction = IfcStructuralPointReaction; - class IfcStructuralResultGroup extends IfcGroup { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TheoryType, ResultForLoadGroup, IsLinear) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.TheoryType = TheoryType; - this.ResultForLoadGroup = ResultForLoadGroup; - this.IsLinear = IsLinear; - this.type = 2986769608; +} +FragmentClassifier.uuid = "e25a7f3c-46c4-4a14-9d3d-5115f24ebeb7"; +ToolComponent.libraryUUIDs.add(FragmentClassifier.uuid); + +class FragmentTree extends Component { + constructor(components) { + super(components); + this.enabled = true; + this.onSelected = new Event(); + this.onHovered = new Event(); + this._title = "Model Tree"; + this.uiElement = new UIElement(); + this.components.tools.add(FragmentTree.uuid, this); + } + get() { + if (!this._tree) { + throw new Error("Fragment tree not initialized yet!"); + } + return this._tree; + } + async init() { + const classifier = await this.components.tools.get(FragmentClassifier); + const tree = new FragmentTreeItem(this.components, classifier, "Model Tree"); + this._tree = tree; + if (this.components.ui.enabled) { + this.setupUI(tree); + } + } + async dispose() { + this.onSelected.reset(); + this.onHovered.reset(); + this.uiElement.dispose(); + if (this._tree) { + await this._tree.dispose(); + } + } + async update(groupSystems) { + if (!this._tree) + return; + const classifier = await this.components.tools.get(FragmentClassifier); + if (this._tree.children.length) { + await this._tree.dispose(); + this._tree = new FragmentTreeItem(this.components, classifier, this._title); + } + this._tree.children = await this.regenerate(groupSystems); + } + setupUI(tree) { + const window = new FloatingWindow(this.components); + const subTree = tree.uiElement.get("tree"); + window.addChild(subTree); + window.title = "Model tree"; + this.components.ui.add(window); + window.visible = false; + const main = new Button(this.components); + main.materialIcon = "account_tree"; + main.tooltip = "Model tree"; + main.onClick.add(() => { + window.visible = !window.visible; + }); + this.uiElement.set({ main, window }); + } + async regenerate(groupSystemNames, result = {}) { + const classifier = await this.components.tools.get(FragmentClassifier); + const systems = classifier.get(); + const groups = []; + const currentSystemName = groupSystemNames[0]; // storeys + const systemGroups = systems[currentSystemName]; + if (!currentSystemName || !systemGroups) { + return groups; + } + for (const name in systemGroups) { + // name is N00, N01, N02... + // { storeys: "N00" }, { storeys: "N01" }... + const classifier = await this.components.tools.get(FragmentClassifier); + const filter = { ...result, [currentSystemName]: [name] }; + const found = await classifier.find(filter); + const hasElements = Object.keys(found).length > 0; + if (hasElements) { + const firstLetter = currentSystemName[0].toUpperCase(); + const treeItemName = firstLetter + currentSystemName.slice(1); // Storeys + const treeItem = new FragmentTreeItem(this.components, classifier, `${treeItemName}: ${name}`); + treeItem.onHovered.add((result) => this.onHovered.trigger(result)); + treeItem.onSelected.add((result) => this.onSelected.trigger(result)); + treeItem.filter = filter; + groups.push(treeItem); + treeItem.children = await this.regenerate(groupSystemNames.slice(1), filter); + } + } + return groups; } - } - IFC4X32.IfcStructuralResultGroup = IfcStructuralResultGroup; - class IfcStructuralSurfaceAction extends IfcStructuralAction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.DestabilizingLoad = DestabilizingLoad; - this.ProjectedOrTrue = ProjectedOrTrue; - this.PredefinedType = PredefinedType; - this.type = 3657597509; +} +FragmentTree.uuid = "5af6ebe1-26fc-4053-936a-801b6c7cb37e"; +ToolComponent.libraryUUIDs.add(FragmentTree.uuid); + +class FragmentHider extends Component { + constructor(components) { + super(components); + this.enabled = true; + this.uiElement = new UIElement(); + this._localStorageID = "FragmentHiderCache"; + this._updateVisibilityOnFound = true; + this._filterCards = {}; + this.components.tools.add(FragmentHider.uuid, this); + if (components.ui.enabled) { + this.setupUI(components); + } + } + setupUI(components) { + const mainWindow = new FloatingWindow(components); + mainWindow.title = "Filters"; + mainWindow.visible = false; + components.ui.add(mainWindow); + mainWindow.domElement.style.width = "530px"; + mainWindow.domElement.style.height = "400px"; + const mainButton = new Button(components, { + materialIconName: "filter_alt", + tooltip: "Visibility filters", + }); + mainButton.onClick.add(() => { + this.hideAllFinders(); + mainWindow.visible = !mainWindow.visible; + }); + const topButtonContainerHtml = `
`; + const topButtonContainer = new SimpleUIComponent(components, topButtonContainerHtml); + const createButton = new Button(components, { + materialIconName: "add", + }); + createButton.onClick.add(() => this.createStyleCard()); + topButtonContainer.addChild(createButton); + mainWindow.addChild(topButtonContainer); + this.uiElement.set({ window: mainWindow, main: mainButton }); + } + async dispose() { + this.uiElement.dispose(); + } + async set(visible, items) { + const fragments = await this.components.tools.get(FragmentManager); + if (!items) { + for (const id in fragments.list) { + const fragment = fragments.list[id]; + if (fragment) { + fragment.setVisibility(visible); + await this.updateCulledVisibility(fragment); + } + } + return; + } + for (const fragID in items) { + const ids = items[fragID]; + const fragment = fragments.list[fragID]; + fragment.setVisibility(visible, ids); + await this.updateCulledVisibility(fragment); + } } - } - IFC4X32.IfcStructuralSurfaceAction = IfcStructuralSurfaceAction; - class IfcStructuralSurfaceConnection extends IfcStructuralConnection { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedCondition = AppliedCondition; - this.type = 1975003073; + async isolate(items) { + await this.set(false); + await this.set(true, items); } - } - IFC4X32.IfcStructuralSurfaceConnection = IfcStructuralSurfaceConnection; - class IfcSubContractResource extends IfcConstructionResource { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.Usage = Usage; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.PredefinedType = PredefinedType; - this.type = 148013059; + get() { } + async update() { + this._updateVisibilityOnFound = false; + for (const id in this._filterCards) { + const { finder } = this._filterCards[id]; + await finder.find(); + } + this._updateVisibilityOnFound = true; + await this.updateQueries(); } - } - IFC4X32.IfcSubContractResource = IfcSubContractResource; - class IfcSurfaceFeature extends IfcFeatureElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3101698114; + async loadCached() { + const serialized = localStorage.getItem(this._localStorageID); + if (!serialized) + return; + const filters = JSON.parse(serialized); + for (const filter of filters) { + await this.createStyleCard(filter); + } + await this.update(); + } + async updateCulledVisibility(fragment) { + const culler = await this.components.tools.get(ScreenCuller); + const colorMeshes = culler.get(); + const culled = colorMeshes.get(fragment.id); + if (culled) { + culled.count = fragment.mesh.count; + } + } + async createStyleCard(config) { + const filterCard = new SimpleUIComponent(this.components); + if (config && config.id.length) { + filterCard.id = config.id; + } + const { id } = filterCard; + filterCard.domElement.className = `m-4 p-4 border-1 border-solid border-[#3A444E] rounded-md flex flex-col`; + filterCard.domElement.innerHTML = ` +
+
+
+
+ `; + const deleteButton = new Button(this.components, { + materialIconName: "close", + }); + deleteButton.domElement.classList.add("self-end"); + deleteButton.onClick.add(() => this.deleteStyleCard(id)); + const topContainer = filterCard.getInnerElement("top-container"); + if (topContainer) { + topContainer.appendChild(deleteButton.domElement); + } + const bottomContainer = filterCard.getInnerElement("bottom-container"); + if (!bottomContainer) { + throw new Error("Error creating UI elements!"); + } + const name = new TextInput(this.components); + name.label = "Name"; + name.domElement.addEventListener("focusout", () => { + this.cache(); + }); + if (config) { + name.value = config.name; + } + bottomContainer.append(name.domElement); + const visible = new CheckboxInput(this.components); + visible.value = config ? config.visible : true; + visible.label = "Visible"; + visible.onChange.add(() => this.updateQueries()); + const enabled = new CheckboxInput(this.components); + enabled.value = config ? config.enabled : true; + enabled.label = "Enabled"; + enabled.onChange.add(() => this.updateQueries()); + const checkBoxContainer = new SimpleUIComponent(this.components); + checkBoxContainer.domElement.classList.remove("w-full"); + checkBoxContainer.addChild(visible); + checkBoxContainer.addChild(enabled); + bottomContainer.append(checkBoxContainer.domElement); + const finder = new IfcPropertiesFinder(this.components); + await finder.init(); + finder.loadCached(id); + const queryBuilder = finder.uiElement.get("query"); + const mainButton = finder.uiElement.get("main"); + const finderWindow = finder.uiElement.get("queryWindow"); + queryBuilder.findButton.label = "Apply"; + bottomContainer.append(mainButton.domElement); + finderWindow.onVisible.add(() => { + this.hideAllFinders(finderWindow.id); + const rect = mainButton.domElement.getBoundingClientRect(); + finderWindow.domElement.style.left = `${rect.x + 90}px`; + finderWindow.domElement.style.top = `${rect.y - 120}px`; + }); + finder.onFound.add((data) => { + finderWindow.visible = false; + mainButton.active = false; + this._filterCards[id].fragments = data; + this.cache(); + if (this._updateVisibilityOnFound) { + this.updateQueries(); + } + }); + const fragments = {}; + this._filterCards[id] = { + styleCard: filterCard, + fragments, + name, + finder, + deleteButton, + visible, + enabled, + }; + const mainWindow = this.uiElement.get("window"); + mainWindow.addChild(filterCard); + } + async updateQueries() { + await this.set(true); + for (const id in this._filterCards) { + const { enabled, visible, fragments } = this._filterCards[id]; + if (enabled.value) { + await this.set(visible.value, fragments); + } + } + this.cache(); + } + async deleteStyleCard(id) { + const found = this._filterCards[id]; + if (found) { + await found.styleCard.dispose(); + await found.deleteButton.dispose(); + await found.name.dispose(); + found.finder.deleteCache(); + await found.finder.dispose(); + await found.visible.dispose(); + await found.enabled.dispose(); + } + delete this._filterCards[id]; + await this.updateQueries(); + } + hideAllFinders(excludeID) { + for (const id in this._filterCards) { + const { finder } = this._filterCards[id]; + const queryWindow = finder.uiElement.get("queryWindow"); + const mainButton = finder.uiElement.get("main"); + if (queryWindow.id === excludeID) { + continue; + } + if (queryWindow.visible) { + mainButton.domElement.click(); + } + } } - } - IFC4X32.IfcSurfaceFeature = IfcSurfaceFeature; - class IfcSwitchingDeviceType extends IfcFlowControllerType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2315554128; + cache() { + const filters = []; + for (const id in this._filterCards) { + const styleCard = this._filterCards[id]; + const { visible, enabled, name } = styleCard; + filters.push({ + visible: visible.value, + enabled: enabled.value, + name: name.value, + id, + }); + } + const serialized = JSON.stringify(filters); + localStorage.setItem(this._localStorageID, serialized); } - } - IFC4X32.IfcSwitchingDeviceType = IfcSwitchingDeviceType; - class IfcSystem extends IfcGroup { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.type = 2254336722; +} +FragmentHider.uuid = "dd9ccf2d-8a21-4821-b7f6-2949add16a29"; +ToolComponent.libraryUUIDs.add(FragmentHider.uuid); + +// TODO: Clean up +// TODO: Improve UI element +class FragmentCacher extends LocalCacher { + get fragmentsIDs() { + const allIDs = this.ids; + const fragIDs = allIDs.filter((id) => id.includes("-fragments")); + if (!fragIDs.length) + return fragIDs; + return fragIDs.map((id) => id.replace("-fragments", "")); } - } - IFC4X32.IfcSystem = IfcSystem; - class IfcSystemFurnitureElement extends IfcFurnishingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 413509423; + constructor(components) { + super(components); + this._mode = "none"; + components.tools.list.set(FragmentCacher.uuid, this); + if (components.ui.enabled) { + this.setupUI(); + } + } + setupUI() { + const saveButton = this.uiElement.get("saveButton"); + saveButton.onClick.add(() => this.onSaveButtonClicked()); + const loadButton = this.uiElement.get("loadButton"); + loadButton.onClick.add(() => this.onLoadButtonClicked()); + } + async getFragmentGroup(id) { + const { fragmentsCacheID, propertiesCacheID } = this.getIDs(id); + if (!fragmentsCacheID || !propertiesCacheID) { + return null; + } + const fragments = await this.components.tools.get(FragmentManager); + const fragmentFile = await this.get(fragmentsCacheID); + if (fragmentFile === null) { + throw new Error("Loading error"); + } + const fragmentsData = await fragmentFile.arrayBuffer(); + const buffer = new Uint8Array(fragmentsData); + const group = await fragments.load(buffer); + const propertiesFile = await this.get(propertiesCacheID); + if (propertiesFile !== null) { + const propertiesData = await propertiesFile.text(); + group.properties = JSON.parse(propertiesData); + } + const scene = this.components.scene.get(); + scene.add(group); + return group; + } + async saveFragmentGroup(group, id = group.uuid) { + const fragments = await this.components.tools.get(FragmentManager); + const { fragmentsCacheID, propertiesCacheID } = this.getIDs(id); + const exported = fragments.export(group); + const fragmentsFile = new File([new Blob([exported])], fragmentsCacheID); + const fragmentsUrl = URL.createObjectURL(fragmentsFile); + await this.save(fragmentsCacheID, fragmentsUrl); + if (group.properties) { + const json = JSON.stringify(group.properties); + const jsonFile = new File([new Blob([json])], propertiesCacheID); + const propertiesUrl = URL.createObjectURL(jsonFile); + await this.save(propertiesCacheID, propertiesUrl); + } + } + existsFragmentGroup(id) { + const { fragmentsCacheID } = this.getIDs(id); + return this.exists(fragmentsCacheID); + } + async onLoadButtonClicked() { + const floatingMenu = this.uiElement.get("floatingMenu"); + floatingMenu.title = "Load saved items"; + if (floatingMenu.visible && this._mode === "load") { + floatingMenu.visible = false; + return; + } + this._mode = "load"; + const allIDs = this.fragmentsIDs; + for (const card of this.cards) { + await card.dispose(); + } + this.cards = []; + for (const id of allIDs) { + const card = new SimpleUICard(this.components, id); + card.title = id; + this.cards.push(card); + const deleteCardButton = new Button(this.components, { + materialIconName: "delete", + }); + card.addChild(deleteCardButton); + deleteCardButton.onClick.add(async () => { + const ids = Object.values(this.getIDs(id)); + await this.delete(ids); + const index = this.cards.indexOf(card); + this.cards.splice(index, 1); + await card.dispose(); + }); + const loadFileButton = new Button(this.components, { + materialIconName: "download", + }); + card.addChild(loadFileButton); + loadFileButton.onClick.add(async () => { + await this.getFragmentGroup(id); + await this.onFileLoaded.trigger({ id }); + }); + floatingMenu.addChild(card); + } + floatingMenu.visible = true; } - } - IFC4X32.IfcSystemFurnitureElement = IfcSystemFurnitureElement; - class IfcTankType extends IfcFlowStorageDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 5716631; + async onSaveButtonClicked() { + const floatingMenu = this.uiElement.get("floatingMenu"); + const fragments = await this.components.tools.get(FragmentManager); + floatingMenu.title = "Save items"; + if (floatingMenu.visible && this._mode === "save") { + floatingMenu.visible = false; + return; + } + this._mode = "save"; + for (const card of this.cards) { + await card.dispose(); + } + this.cards = []; + const savedIDs = this.fragmentsIDs; + const ids = fragments.groups.map((group) => group.uuid); + for (const id of ids) { + if (savedIDs.includes(id)) + continue; + const card = new SimpleUICard(this.components, id); + card.title = id; + this.cards.push(card); + floatingMenu.addChild(card); + const saveCardButton = new Button(this.components, { + materialIconName: "save", + }); + card.addChild(saveCardButton); + saveCardButton.onClick.add(async () => { + const group = fragments.groups.find((group) => group.uuid === id); + if (group) { + await this.saveFragmentGroup(group); + const index = this.cards.indexOf(card); + this.cards.splice(index, 1); + await card.dispose(); + await this.onItemSaved.trigger({ id }); + } + }); + } + floatingMenu.visible = true; } - } - IFC4X32.IfcTankType = IfcTankType; - class IfcTendon extends IfcReinforcingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, PredefinedType, NominalDiameter, CrossSectionArea, TensionForce, PreStress, FrictionCoefficient, AnchorageSlip, MinCurvatureRadius) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.SteelGrade = SteelGrade; - this.PredefinedType = PredefinedType; - this.NominalDiameter = NominalDiameter; - this.CrossSectionArea = CrossSectionArea; - this.TensionForce = TensionForce; - this.PreStress = PreStress; - this.FrictionCoefficient = FrictionCoefficient; - this.AnchorageSlip = AnchorageSlip; - this.MinCurvatureRadius = MinCurvatureRadius; - this.type = 3824725483; + getIDs(id) { + return { + fragmentsCacheID: `${id}-fragments`, + propertiesCacheID: `${id}-properties`, + }; } - } - IFC4X32.IfcTendon = IfcTendon; - class IfcTendonAnchor extends IfcReinforcingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.SteelGrade = SteelGrade; - this.PredefinedType = PredefinedType; - this.type = 2347447852; +} + +// TODO: Clean up and document +class FragmentExploder extends Component { + get() { + return this._explodedFragments; } - } - IFC4X32.IfcTendonAnchor = IfcTendonAnchor; - class IfcTendonAnchorType extends IfcReinforcingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3081323446; + constructor(components) { + super(components); + this.enabled = false; + this.height = 10; + this.groupName = "storeys"; + this.uiElement = new UIElement(); + this._explodedFragments = new Set(); + components.tools.add(FragmentExploder.uuid, this); + if (components.ui.enabled) { + this.setupUI(components); + } + } + async dispose() { + this._explodedFragments.clear(); + this.uiElement.dispose(); + } + async explode() { + this.enabled = true; + await this.update(); + } + async reset() { + this.enabled = false; + await this.update(); + } + async update() { + const classifier = await this.components.tools.get(FragmentClassifier); + const fragments = await this.components.tools.get(FragmentManager); + const factor = this.enabled ? 1 : -1; + let i = 0; + const systems = classifier.get(); + const groups = systems[this.groupName]; + const mergedIDHeightMap = {}; + const yTransform = new THREE$1.Matrix4(); + for (const groupName in groups) { + yTransform.elements[13] = i * factor * this.height; + for (const fragID in groups[groupName]) { + const fragment = fragments.list[fragID]; + const customID = groupName + fragID; + if (!fragment) { + continue; + } + if (this.enabled && this._explodedFragments.has(customID)) { + continue; + } + if (!this.enabled && !this._explodedFragments.has(customID)) { + continue; + } + if (this.enabled) { + this._explodedFragments.add(customID); + } + else { + this._explodedFragments.delete(customID); + } + if (fragment.blocks.count === 1) { + // For instanced fragments + const ids = groups[groupName][fragID]; + for (const id of ids) { + const tempMatrix = new THREE$1.Matrix4(); + const { instanceID } = fragment.getInstanceAndBlockID(id); + fragment.getInstance(instanceID, tempMatrix); + tempMatrix.premultiply(yTransform); + fragment.mesh.setMatrixAt(instanceID, tempMatrix); + const composites = fragment.composites[id]; + if (composites) { + for (let i = 1; i < composites; i++) { + const idNum = parseInt(id, 10); + const compID = toCompositeID(idNum, i); + const { instanceID } = fragment.getInstanceAndBlockID(compID); + fragment.getInstance(instanceID, tempMatrix); + tempMatrix.premultiply(yTransform); + fragment.mesh.setMatrixAt(instanceID, tempMatrix); + } + } + } + fragment.mesh.instanceMatrix.needsUpdate = true; + } + else { + if (!mergedIDHeightMap[fragID]) { + mergedIDHeightMap[fragID] = {}; + } + const ids = groups[groupName][fragID]; + for (const id of ids) { + mergedIDHeightMap[fragID][id] = i * factor * this.height; + } + } + } + i++; + } + const v = new THREE$1.Vector3(); + // Update merged fragments + for (const fragID in mergedIDHeightMap) { + const heights = mergedIDHeightMap[fragID]; + const fragment = fragments.list[fragID]; + const geometry = fragment.mesh.geometry; + const position = geometry.attributes.position; + for (let i = 0; i < geometry.index.count; i++) { + const index = geometry.index.array[i]; + const blockID = geometry.attributes.blockID.array[index]; + const id = fragment.getItemID(0, blockID); + const height = heights[id]; + if (height === undefined) + continue; + yTransform.elements[13] = height; + const x = position.array[index * 3]; + const y = position.array[index * 3 + 1]; + const z = position.array[index * 3 + 2]; + v.set(x, y, z); + v.applyMatrix4(yTransform); + position.setXYZ(index, v.x, v.y, v.z); + } + position.needsUpdate = true; + } } - } - IFC4X32.IfcTendonAnchorType = IfcTendonAnchorType; - class IfcTendonConduit extends IfcReinforcingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.SteelGrade = SteelGrade; - this.PredefinedType = PredefinedType; - this.type = 3663046924; + setupUI(components) { + const main = new Button(components); + this.uiElement.set({ main }); + main.tooltip = "Explode"; + main.materialIcon = "splitscreen"; + main.onClick.add(async () => { + if (this.enabled) { + await this.reset(); + } + else { + await this.explode(); + } + }); } - } - IFC4X32.IfcTendonConduit = IfcTendonConduit; - class IfcTendonConduitType extends IfcReinforcingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2281632017; +} +FragmentExploder.uuid = "d260618b-ce88-4c7d-826c-6debb91de3e2"; +ToolComponent.libraryUUIDs.add(FragmentExploder.uuid); + +class PlanObjects { + get visible() { + return this._visible; + } + set visible(active) { + this._visible = active; + const scene = this.components.scene.get(); + for (const id in this._objects) { + const { root, marker } = this._objects[id]; + if (active) { + scene.add(root); + root.add(marker); + } + else { + root.removeFromParent(); + marker.removeFromParent(); + } + } } - } - IFC4X32.IfcTendonConduitType = IfcTendonConduitType; - class IfcTendonType extends IfcReinforcingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, NominalDiameter, CrossSectionArea, SheathDiameter) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.NominalDiameter = NominalDiameter; - this.CrossSectionArea = CrossSectionArea; - this.SheathDiameter = SheathDiameter; - this.type = 2415094496; + constructor(components) { + this.offsetFactor = 0.2; + this.uiElement = new UIElement(); + this.planClicked = new Event(); + this._scale = new THREE$1.Vector2(1, 1); + this._min = new THREE$1.Vector3(); + this._max = new THREE$1.Vector3(); + this._objects = {}; + this._visible = false; + this._planeGeometry = new THREE$1.PlaneGeometry(1, 1, 1); + this._linesGeometry = new THREE$1.BufferGeometry(); + this.lineMaterial = new THREE$1.LineDashedMaterial({ + color: 0xbcf124, + dashSize: 0.2, + gapSize: 0.2, + }); + this._material = new THREE$1.MeshBasicMaterial({ + transparent: true, + opacity: 0.3, + color: 0x1a2128, + depthTest: false, + }); + this.components = components; + this.resetBounds(); + this.createPlaneOutlineGeometry(); + if (components.ui.enabled) { + this.setUI(components); + } + } + async dispose() { + this.planClicked.reset(); + this.visible = false; + for (const id in this._objects) { + const { marker, button, outline, root, plane } = this._objects[id]; + await button.dispose(); + outline.removeFromParent(); + outline.geometry = null; + outline.material = []; + root.removeFromParent(); + root.children = []; + plane.removeFromParent(); + plane.material = []; + plane.geometry = null; + marker.element.remove(); + } + this._objects = {}; + this._planeGeometry.dispose(); + this._material.dispose(); + this.uiElement.dispose(); + this.lineMaterial.dispose(); + this._material.dispose(); + this.components = null; + } + add(config) { + const { id, point, name } = config; + const root = new THREE$1.Group(); + root.position.copy(point); + const plane = new THREE$1.Mesh(this._planeGeometry, this._material); + plane.rotation.x = -Math.PI / 2; + root.add(plane); + const outline = new THREE$1.LineSegments(this._linesGeometry, this.lineMaterial); + outline.computeLineDistances(); + outline.rotation.x = -Math.PI / 2; + root.add(outline); + const button = new Button(this.components, { + materialIconName: "location_on", + tooltip: name, + }); + button.onClick.add(async () => { + await this.planClicked.trigger({ id: config.id }); + }); + const { domElement } = button; + domElement.classList.remove("bg-transparent"); + domElement.className += " transition-none rounded-full"; + // element.className = this.pointClass; + const marker = new CSS2DObject(domElement); + root.add(marker); + this._objects[id] = { root, plane, outline, marker, button }; + } + setBounds(points, override = false) { + if (override) { + this.resetBounds(); + } + const bbox = FragmentBoundingBox.getBounds(points, this._min, this._max); + this._min = bbox.min; + this._max = bbox.max; + const dimensions = FragmentBoundingBox.getDimensions(bbox); + const { width, depth, center } = dimensions; + const offset = (width + depth / 2) * this.offsetFactor; + const newScale = new THREE$1.Vector2(width + offset, depth + offset); + const previousScaleMatrix = this.newScaleMatrix(this._scale); + const newScaleMatrix = this.newScaleMatrix(newScale); + previousScaleMatrix.invert(); + this._planeGeometry.applyMatrix4(previousScaleMatrix); + this._linesGeometry.applyMatrix4(previousScaleMatrix); + this._planeGeometry.applyMatrix4(newScaleMatrix); + this._linesGeometry.applyMatrix4(newScaleMatrix); + for (const id in this._objects) { + const { root, outline } = this._objects[id]; + outline.computeLineDistances(); + root.position.x = center.x; + root.position.z = center.z; + } + } + setUI(components) { + const button = new Button(components, { + materialIconName: "layers", + tooltip: "3D Plans", + }); + button.onClick.add(() => { + this.visible = !this.visible; + }); + this.uiElement.set({ main: button }); + } + resetBounds() { + this._min = FragmentBoundingBox.newBound(true); + this._max = FragmentBoundingBox.newBound(false); + } + newScaleMatrix(scale) { + const { x, y } = scale; + // prettier-ignore + return new THREE$1.Matrix4().fromArray([ + x, 0, 0, 0, + 0, y, 0, 0, + 0, 0, 1, 0, + 0, 0, 0, 1 + ]); } - } - IFC4X32.IfcTendonType = IfcTendonType; - class IfcTrackElementType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 618700268; + createPlaneOutlineGeometry() { + // prettier-ignore + const vertices = new Float32Array([ + -0.5, -0.5, 0, + -0.5, 0.5, 0, + -0.5, 0.5, 0, + 0.5, 0.5, 0, + 0.5, 0.5, 0, + 0.5, -0.5, 0, + 0.5, -0.5, 0, + -0.5, -0.5, 0, + ]); + const posAttr = new THREE$1.BufferAttribute(vertices, 3); + this._linesGeometry.setAttribute("position", posAttr); } - } - IFC4X32.IfcTrackElementType = IfcTrackElementType; - class IfcTransformerType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1692211062; +} + +/** + * Helper to control the camera and easily define and navigate 2D floor plans. + */ +class FragmentPlans extends Component { + get commands() { + return this.uiElement.get("commandsMenu").commands; } - } - IFC4X32.IfcTransformerType = IfcTransformerType; - class IfcTransportElementType extends IfcTransportationDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2097647324; + set commands(commands) { + this.uiElement.get("commandsMenu").commands = + commands; } - } - IFC4X32.IfcTransportElementType = IfcTransportElementType; - class IfcTransportationDevice extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1953115116; + constructor(components) { + super(components); + this.onNavigated = new Event(); + this.onExited = new Event(); + /** {@link Component.enabled} */ + this.enabled = false; + /** The floorplan that is currently selected. */ + this.currentPlan = null; + /** The offset from the clipping planes to their respective floor plan elevation. */ + this.defaultSectionOffset = 1.5; + /** The offset of the 2D camera to the floor plan elevation. */ + this.defaultCameraOffset = 30; + /** The created floor plans. */ + this.storeys = []; + /** {@link UI.uiElement} */ + this.uiElement = new UIElement(); + this._plans = []; + this._floorPlanViewCached = false; + this._previousCamera = new THREE$1.Vector3(); + this._previousTarget = new THREE$1.Vector3(); + this._previousProjection = "Perspective"; + this.components.tools.add(FragmentPlans.uuid, this); + this.objects = new PlanObjects(components); + if (components.ui.enabled) { + this.setUI(components); + } + } + /** {@link Component.get} */ + get() { + return this._plans; + } + /** {@link Disposable.dispose} */ + async dispose() { + this.onExited.reset(); + this.onNavigated.reset(); + this.storeys = []; + this._plans = []; + await this.objects.dispose(); + this.uiElement.dispose(); + } + // TODO: Compute georreference matrix when generating fragmentsgroup + // so that we can correctly add floors in georreferenced models + // where the IfcSite / IfcBuilding have location information + async computeAllPlanViews(model) { + if (!model.properties) { + throw new Error("Properties are needed to compute plan views!"); + } + const { properties } = model; + const floorsProps = IfcPropertiesUtils.getAllItemsOfType(properties, IFCBUILDINGSTOREY); + const coordHeight = model.coordinationMatrix.elements[13]; + const units = IfcPropertiesUtils.getUnits(properties); + for (const floor of floorsProps) { + const floorHeight = { value: 0 }; + this.getAbsoluteFloorHeight(floor.ObjectPlacement.value, model.properties, floorHeight); + const height = floorHeight.value * units + coordHeight; + await this.create({ + name: floor.Name.value, + id: floor.GlobalId.value, + normal: new THREE$1.Vector3(0, -1, 0), + point: new THREE$1.Vector3(0, height, 0), + ortho: true, + offset: this.defaultSectionOffset, + }); + } + const { min, max } = model.boundingBox; + this.objects.setBounds([min, max]); } - } - IFC4X32.IfcTransportationDevice = IfcTransportationDevice; - class IfcTrimmedCurve extends IfcBoundedCurve { - constructor(expressID, BasisCurve, Trim1, Trim2, SenseAgreement, MasterRepresentation) { - super(expressID); - this.BasisCurve = BasisCurve; - this.Trim1 = Trim1; - this.Trim2 = Trim2; - this.SenseAgreement = SenseAgreement; - this.MasterRepresentation = MasterRepresentation; - this.type = 3593883385; + /** + * Creates a new floor plan in the navigator. + * + * @param config - Necessary data to initialize the floor plan. + */ + async create(config) { + const previousPlan = this._plans.find((plan) => plan.id === config.id); + if (previousPlan) { + throw new Error(`There's already a plan with the id: ${config.id}`); + } + const plane = await this.createClippingPlane(config); + plane.visible = false; + const plan = { ...config, plane }; + this._plans.push(plan); + this.objects.add(config); } - } - IFC4X32.IfcTrimmedCurve = IfcTrimmedCurve; - class IfcTubeBundleType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1600972822; + /** + * Make the navigator go to the specified floor plan. + * + * @param id - Floor plan to go to. + * @param animate - Whether to animate the camera transition. + */ + async goTo(id, animate = false) { + var _a; + if (((_a = this.currentPlan) === null || _a === void 0 ? void 0 : _a.id) === id) { + return; + } + this.objects.visible = false; + await this.onNavigated.trigger({ id }); + this.storeCameraPosition(); + await this.hidePreviousClippingPlane(); + this.updateCurrentPlan(id); + await this.activateCurrentPlan(); + if (!this.enabled) { + await this.moveCameraTo2DPlanPosition(animate); + this.enabled = true; + } + if (this.components.ui.enabled) { + this.uiElement.get("exitButton").enabled = true; + } + } + /** + * Deactivate navigator and go back to the previous view. + * + * @param animate - Whether to animate the camera transition. + */ + async exitPlanView(animate = false) { + if (!this.enabled) + return; + this.enabled = false; + await this.onExited.trigger(); + this.cacheFloorplanView(); + const camera = this.components.camera; + camera.setNavigationMode("Orbit"); + await camera.setProjection(this._previousProjection); + if (this.currentPlan && this.currentPlan.plane) { + await this.currentPlan.plane.setEnabled(false); + await this.currentPlan.plane.edges.setVisible(false); + } + this.currentPlan = null; + await camera.controls.setLookAt(this._previousCamera.x, this._previousCamera.y, this._previousCamera.z, this._previousTarget.x, this._previousTarget.y, this._previousTarget.z, animate); + if (this.components.ui.enabled) { + this.uiElement.get("exitButton").enabled = false; + } + } + async updatePlansList() { + if (!this.components.ui.enabled) { + return; + } + const defaultText = this.uiElement.get("defaultText"); + const planList = this.uiElement.get("planList"); + const commandsMenu = this.uiElement.get("commandsMenu"); + await planList.dispose(true); + if (!this._plans.length) { + defaultText.visible = true; + return; + } + defaultText.visible = false; + commandsMenu.update(); + const commandsExist = commandsMenu.hasCommands; + for (const plan of this._plans) { + const height = Math.trunc(plan.point.y * 10) / 10; + const description = `Height: ${height}`; + const simpleCard = new SimpleUICard(this.components); + simpleCard.title = plan.name; + simpleCard.description = description; + const toolbar = new Toolbar(this.components); + this.components.ui.addToolbar(toolbar); + simpleCard.addChild(toolbar); + toolbar.domElement.classList.remove("shadow-md", "backdrop-blur-xl", "bg-ifcjs-100"); + const planButton = new Button(this.components, { + materialIconName: "arrow_outward", + }); + planButton.onClick.add(async () => { + await this.goTo(plan.id); + }); + toolbar.addChild(planButton); + const extraButton = new Button(this.components, { + materialIconName: "expand_more", + }); + extraButton.onClick.add((event) => { + if (event) { + commandsMenu.commandData = plan; + commandsMenu.popup(event.x, event.y); + } + }); + if (!commandsExist) { + extraButton.enabled = false; + } + toolbar.addChild(extraButton); + simpleCard.domElement.classList.remove("bg-ifcjs-120"); + simpleCard.domElement.classList.remove("border-transparent"); + simpleCard.domElement.className += ` min-w-[300px] my-2 border-1 border-solid border-[#3A444E] `; + planList.addChild(simpleCard); + } + } + setUI(components) { + this.setupPlanObjectUI(); + const topButtonContainer = new SimpleUIComponent(this.components, `
`); + const exitButton = new Button(components); + exitButton.materialIcon = "logout"; + topButtonContainer.addChild(exitButton); + exitButton.enabled = false; + exitButton.onClick.add(() => this.exitPlanView()); + const main = new Button(components, { + tooltip: "Plans list", + }); + main.materialIcon = "folder_copy"; + const floatingWindow = new FloatingWindow(components); + floatingWindow.title = "Floor Plans"; + components.ui.add(floatingWindow); + floatingWindow.visible = false; + floatingWindow.addChild(topButtonContainer); + const planList = new SimpleUIComponent(components, `
`); + floatingWindow.addChild(planList); + const defaultText = new SimpleUIComponent(components, `

No plans yet.

`); + floatingWindow.addChild(defaultText); + const commandsMenu = new CommandsMenu(components); + components.ui.add(commandsMenu); + commandsMenu.visible = false; + this.uiElement.set({ + main, + floatingWindow, + planList, + defaultText, + exitButton, + commandsMenu, + }); + main.onClick.add(() => { + floatingWindow.visible = !floatingWindow.visible; + }); } - } - IFC4X32.IfcTubeBundleType = IfcTubeBundleType; - class IfcUnitaryEquipmentType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1911125066; + storeCameraPosition() { + if (this.enabled) { + this.cacheFloorplanView(); + } + else { + this.store3dCameraPosition(); + } } - } - IFC4X32.IfcUnitaryEquipmentType = IfcUnitaryEquipmentType; - class IfcValveType extends IfcFlowControllerType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 728799441; + async createClippingPlane(config) { + const { normal, point } = config; + const clippingPoint = point.clone(); + if (config.offset) { + clippingPoint.y += config.offset; + } + const clipper = await this.components.tools.get(EdgesClipper); + const plane = clipper.createFromNormalAndCoplanarPoint(normal, clippingPoint); + await plane.setEnabled(false); + await plane.edges.update(); + await plane.edges.setVisible(false); + return plane; } - } - IFC4X32.IfcValveType = IfcValveType; - class IfcVehicle extends IfcTransportationDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 840318589; + cacheFloorplanView() { + this._floorPlanViewCached = true; + const camera = this.components.camera; + camera.controls.saveState(); } - } - IFC4X32.IfcVehicle = IfcVehicle; - class IfcVibrationDamper extends IfcElementComponent { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1530820697; + async moveCameraTo2DPlanPosition(animate) { + const camera = this.components.camera; + if (this._floorPlanViewCached) { + await camera.controls.reset(animate); + } + else { + await camera.controls.setLookAt(0, 100, 0, 0, 0, 0, animate); + } + } + async activateCurrentPlan() { + if (!this.currentPlan) + throw new Error("Current plan is not defined."); + const camera = this.components.camera; + if (this.currentPlan.plane) { + await this.currentPlan.plane.setEnabled(true); + this.currentPlan.plane.edges.fillNeedsUpdate = true; + await this.currentPlan.plane.edges.setVisible(true); + } + camera.setNavigationMode("Plan"); + const projection = this.currentPlan.ortho ? "Orthographic" : "Perspective"; + await camera.setProjection(projection); + } + store3dCameraPosition() { + const camera = this.components.camera; + const activeCamera = this.components.camera.get(); + activeCamera.getWorldPosition(this._previousCamera); + camera.controls.getTarget(this._previousTarget); + this._previousProjection = camera.getProjection(); + } + updateCurrentPlan(id) { + const foundPlan = this._plans.find((plan) => plan.id === id); + if (!foundPlan) { + throw new Error("The specified plan is undefined!"); + } + this.currentPlan = foundPlan; + } + async hidePreviousClippingPlane() { + if (this.currentPlan) { + const plane = this.currentPlan.plane; + if (plane) { + await plane.setEnabled(false); + } + if (this.currentPlan.plane instanceof EdgesPlane) { + await this.currentPlan.plane.edges.setVisible(false); + } + } } - } - IFC4X32.IfcVibrationDamper = IfcVibrationDamper; - class IfcVibrationDamperType extends IfcElementComponentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3956297820; + setupPlanObjectUI() { + this.objects.planClicked.add(async ({ id }) => { + const button = this.objects.uiElement.get("main"); + if (!this.enabled) { + if (button.innerElements.icon && button.innerElements.tooltip) { + button.materialIcon = "logout"; + button.tooltip = "Exit floorplans"; + } + button.onClick.add(() => { + this.exitPlanView(); + if (button.innerElements.icon && button.innerElements.tooltip) { + button.materialIcon = "layers"; + button.tooltip = "3D plans"; + } + button.onClick.add(() => (this.objects.visible = !this.objects.visible)); + }); + } + this.goTo(id); + }); } - } - IFC4X32.IfcVibrationDamperType = IfcVibrationDamperType; - class IfcVibrationIsolator extends IfcElementComponent { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2391383451; + getAbsoluteFloorHeight(placementID, properties, height) { + const placementRef = properties[placementID]; + if (!placementRef) + return; + const placement = properties[placementRef.RelativePlacement.value]; + const location = properties[placement.Location.value]; + const currentHeight = location.Coordinates[2].value; + height.value += currentHeight; + const parentRef = placementRef.PlacementRelTo; + if (parentRef && parentRef.value !== null) { + this.getAbsoluteFloorHeight(parentRef.value, properties, height); + } } - } - IFC4X32.IfcVibrationIsolator = IfcVibrationIsolator; - class IfcVibrationIsolatorType extends IfcElementComponentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3313531582; +} +FragmentPlans.uuid = "a80874aa-1c93-43a4-80f2-df346da086b1"; +ToolComponent.libraryUUIDs.add(FragmentPlans.uuid); + +class FragmentClipStyler extends Component { + constructor(components) { + super(components); + this.enabled = true; + this.localStorageID = "FragmentClipStyler"; + this.styleCards = {}; + this.uiElement = new UIElement(); + this._defaultStyles = ` + { + "B0ebxzZQvZ": { + "name": "thick", + "lineColor": "#36593e", + "lineThickness": 0.5, + "fillColor": "#ccdb9a", + "categories": "IFCWALLSTANDARDCASE, IFCWALL,IFCSLAB, IFCROOF" + }, + "kG9B1Ojv08": { + "name": "thin", + "lineColor": "#92a59b", + "lineThickness": 0.25, + "fillColor": "#e6ffdb", + "categories": "IFCWINDOW, IFCDOOR" + } } - } - IFC4X32.IfcVibrationIsolatorType = IfcVibrationIsolatorType; - class IfcVirtualElement extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2769231204; + `; + this.components.tools.add(FragmentClipStyler.uuid, this); + if (components.ui.enabled) { + this.setupUI(components); + } } - } - IFC4X32.IfcVirtualElement = IfcVirtualElement; - class IfcVoidingFeature extends IfcFeatureElementSubtraction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 926996030; + async setup(force = false) { + const noCards = Object.keys(this.styleCards).length === 0; + if (force || noCards) { + localStorage.setItem(this.localStorageID, this._defaultStyles); + await this.loadCachedStyles(); + } } - } - IFC4X32.IfcVoidingFeature = IfcVoidingFeature; - class IfcWallType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1898987631; + get() { + const saved = localStorage.getItem(this.localStorageID); + if (saved) { + const parsed = JSON.parse(saved); + return Object.values(parsed); + } + return []; } - } - IFC4X32.IfcWallType = IfcWallType; - class IfcWasteTerminalType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1133259667; + async dispose() { + for (const id in this.styleCards) { + await this.deleteStyleCard(id, false); + } + this.uiElement.dispose(); } - } - IFC4X32.IfcWasteTerminalType = IfcWasteTerminalType; - class IfcWindowType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, PartitioningType, ParameterTakesPrecedence, UserDefinedPartitioningType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.PartitioningType = PartitioningType; - this.ParameterTakesPrecedence = ParameterTakesPrecedence; - this.UserDefinedPartitioningType = UserDefinedPartitioningType; - this.type = 4009809668; + async update(ids = Object.keys(this.styleCards)) { + const clipper = await this.components.tools.get(EdgesClipper); + const fragments = await this.components.tools.get(FragmentManager); + const classifier = await this.components.tools.get(FragmentClassifier); + for (const id of ids) { + const card = this.styleCards[id]; + if (!card) + return; + const allStyles = clipper.styles.get(); + const style = allStyles[id]; + if (!style) + return; + style.meshes.clear(); + const categoryList = card.categories.value.split(","); + const entities = categoryList.map((item) => item.replace(" ", "")); + const found = await classifier.find({ entities }); + for (const fragID in found) { + const { mesh } = fragments.list[fragID]; + style.fragments[fragID] = new Set(found[fragID]); + style.meshes.add(mesh); + } + } + await clipper.updateEdges(true); + this.cacheStyles(); } - } - IFC4X32.IfcWindowType = IfcWindowType; - class IfcWorkCalendar extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, WorkingTimes, ExceptionTimes, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.WorkingTimes = WorkingTimes; - this.ExceptionTimes = ExceptionTimes; - this.PredefinedType = PredefinedType; - this.type = 4088093105; + async loadCachedStyles() { + const savedData = localStorage.getItem(this.localStorageID); + if (savedData) { + const savedStyles = JSON.parse(savedData); + for (const id in savedStyles) { + const savedStyle = savedStyles[id]; + await this.createStyleCard(savedStyle); + } + } } - } - IFC4X32.IfcWorkCalendar = IfcWorkCalendar; - class IfcWorkControl extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.CreationDate = CreationDate; - this.Creators = Creators; - this.Purpose = Purpose; - this.Duration = Duration; - this.TotalFloat = TotalFloat; - this.StartTime = StartTime; - this.FinishTime = FinishTime; - this.type = 1028945134; + setupUI(components) { + const mainWindow = new FloatingWindow(components); + mainWindow.title = "Clipping styles"; + mainWindow.visible = false; + components.ui.add(mainWindow); + mainWindow.domElement.style.width = "530px"; + mainWindow.domElement.style.height = "400px"; + const mainButton = new Button(components, { + materialIconName: "format_paint", + tooltip: "Clipping styles", + }); + mainButton.onClick.add(() => { + mainWindow.visible = !mainWindow.visible; + }); + const topButtonContainerHtml = `
`; + const topButtonContainer = new SimpleUIComponent(components, topButtonContainerHtml); + const createButton = new Button(components, { + materialIconName: "add", + }); + createButton.onClick.add(() => this.createStyleCard()); + topButtonContainer.addChild(createButton); + mainWindow.addChild(topButtonContainer); + this.uiElement.set({ mainWindow, mainButton }); + } + cacheStyles() { + const styles = {}; + for (const id in this.styleCards) { + const styleCard = this.styleCards[id]; + styles[id] = { + name: styleCard.name.value, + lineColor: styleCard.lineColor.value, + lineThickness: styleCard.lineThickness.value, + fillColor: styleCard.fillColor.value, + categories: styleCard.categories.value, + }; + } + const serialized = JSON.stringify(styles); + localStorage.setItem(this.localStorageID, serialized); + } + async deleteStyleCard(id, updateCache = true) { + const found = this.styleCards[id]; + const clipper = await this.components.tools.get(EdgesClipper); + clipper.styles.deleteStyle(id, true); + if (found) { + await found.styleCard.dispose(); + await found.deleteButton.dispose(); + await found.name.dispose(); + await found.categories.dispose(); + await found.lineThickness.dispose(); + await found.lineColor.dispose(); + await found.fillColor.dispose(); + } + delete this.styleCards[id]; + await clipper.updateEdges(true); + if (updateCache) { + this.cacheStyles(); + } + } + async createStyleCard(config) { + const styleCard = new SimpleUIComponent(this.components); + const { id } = styleCard; + const styleRowClass = `flex gap-4`; + styleCard.domElement.className = `m-4 p-4 border-1 border-solid border-[#3A444E] rounded-md flex flex-col gap-4`; + styleCard.domElement.innerHTML = ` +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ `; + const deleteButton = new Button(this.components, { + materialIconName: "close", + }); + deleteButton.onClick.add(() => this.deleteStyleCard(id)); + const firstRow = styleCard.getInnerElement("first-row"); + if (firstRow) { + firstRow.insertBefore(deleteButton.domElement, firstRow.firstChild); + } + const nameInput = new TextInput(this.components); + nameInput.label = "Name"; + if (config) { + nameInput.value = config.name; + } + const name = styleCard.getInnerElement(`name`); + if (name) { + name.append(nameInput.domElement); + } + nameInput.domElement.addEventListener("focusout", () => this.cacheStyles()); + const lineColor = new ColorInput(this.components); + lineColor.label = "Line color"; + const lineColorContainer = styleCard.getInnerElement("line-color"); + if (lineColorContainer) { + lineColorContainer.append(lineColor.domElement); + } + lineColor.value = config ? config.lineColor : "#808080"; + const fillColor = new ColorInput(this.components); + fillColor.label = "Fill color"; + if (config) { + fillColor.value = config.fillColor; + } + const fillColorContainer = styleCard.getInnerElement("fill-color"); + if (fillColorContainer) { + fillColorContainer.append(fillColor.domElement); + } + const lineThickness = new RangeInput(this.components); + lineThickness.label = "Line thickness"; + lineThickness.min = 0; + lineThickness.max = 1; + lineThickness.step = 0.05; + lineThickness.value = config ? config.lineThickness : 0.25; + const range = styleCard.getInnerElement("range"); + if (range) { + range.append(lineThickness.domElement); + } + const categories = new TextInput(this.components); + categories.label = "Categories"; + const categoriesContainer = styleCard.getInnerElement("categories"); + if (categoriesContainer) { + categoriesContainer.append(categories.domElement); + } + this.styleCards[id] = { + styleCard, + name: nameInput, + lineThickness, + categories, + deleteButton, + fillColor, + lineColor, + }; + this.uiElement.get("mainWindow").addChild(styleCard); + // this._clipper.styles.dispose(); + const fillMaterial = new THREE$1.MeshBasicMaterial({ + color: fillColor.value, + side: 2, + }); + let saveTimer; + const saveStyles = () => { + if (saveTimer) { + clearTimeout(saveTimer); + } + saveTimer = setTimeout(() => this.cacheStyles(), 2000); + }; + fillColor.onChange.add(() => { + fillMaterial.color.set(fillColor.value); + saveStyles(); + }); + const lineMaterial = new THREE$1.LineBasicMaterial({ + color: lineColor.value, + }); + const outlineMaterial = new THREE$1.MeshBasicMaterial({ + color: lineColor.value, + opacity: lineThickness.value, + side: 2, + transparent: true, + }); + lineThickness.onChange.add(() => { + outlineMaterial.opacity = lineThickness.value; + saveStyles(); + }); + lineColor.onChange.add(() => { + lineMaterial.color.set(lineColor.value); + outlineMaterial.color.set(lineColor.value); + saveStyles(); + }); + const clipper = await this.components.tools.get(EdgesClipper); + clipper.styles.create(id, new Set(), lineMaterial, fillMaterial, outlineMaterial); + categories.domElement.addEventListener("focusout", () => this.update([id])); + if (config) { + categories.value = config.categories; + } + this.cacheStyles(); } - } - IFC4X32.IfcWorkControl = IfcWorkControl; - class IfcWorkPlan extends IfcWorkControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.CreationDate = CreationDate; - this.Creators = Creators; - this.Purpose = Purpose; - this.Duration = Duration; - this.TotalFloat = TotalFloat; - this.StartTime = StartTime; - this.FinishTime = FinishTime; - this.PredefinedType = PredefinedType; - this.type = 4218914973; +} +FragmentClipStyler.uuid = "14de9fbd-2151-4c01-8e07-22a2667e1126"; +ToolComponent.libraryUUIDs.add(FragmentClipStyler.uuid); + +/** + * An object to easily use the services of That Open Platform. + */ +class CloudProcessor extends Component { + constructor(components, token) { + super(components); + this.tools = []; + /** {@link Component.name} */ + this.name = "CloudProcessor"; + /** {@link Component.enabled} */ + this.enabled = true; + this.modelProcessed = new Event(); + this.checkInterval = 5000; + this._models = []; + this._urls = { + base: "https://01wj0udft7.execute-api.eu-central-1.amazonaws.com/v1/models", + token: "?accessToken=", + }; + this._urls.token += token; } - } - IFC4X32.IfcWorkPlan = IfcWorkPlan; - class IfcWorkSchedule extends IfcWorkControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.CreationDate = CreationDate; - this.Creators = Creators; - this.Purpose = Purpose; - this.Duration = Duration; - this.TotalFloat = TotalFloat; - this.StartTime = StartTime; - this.FinishTime = FinishTime; - this.PredefinedType = PredefinedType; - this.type = 3342526732; + /** + * Retrieves a tool component by its name. + */ + get() { + return this._models; + } + async update() { + const { base, token } = this._urls; + const url = `${base}${token}`; + const result = await fetch(url); + const parsed = await result.json(); + this._models = parsed.models; + } + async upload(fileUrl) { + const response = await this.createModel(); + const uploadUrl = response.uploadUrl; + const read = await fetch(fileUrl); + const body = await read.arrayBuffer(); + await fetch(uploadUrl, { method: "PUT", body }); + this.setupModelProcessEvent(response.model._id); + } + async delete(modelID) { + const { base, token } = this._urls; + const url = `${base}/${modelID}${token}`; + const result = await fetch(url, { method: "DELETE" }); + return result.json(); + } + async getModel(modelID) { + const { base, token } = this._urls; + const modelUrl = `${base}/${modelID}${token}`; + const modelResponse = await fetch(modelUrl); + return modelResponse.json(); + } + setupModelProcessEvent(modelID) { + const interval = setInterval(async () => { + const response = await this.getModel(modelID); + if (response.model.status === "PROCESSED") { + await this.modelProcessed.trigger(response); + clearInterval(interval); + } + }, this.checkInterval); } - } - IFC4X32.IfcWorkSchedule = IfcWorkSchedule; - class IfcZone extends IfcSystem { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.LongName = LongName; - this.type = 1033361043; + async createModel() { + const { base, token } = this._urls; + const url = `${base}${token}`; + const result = await fetch(url, { method: "POST" }); + return result.json(); } - } - IFC4X32.IfcZone = IfcZone; - class IfcActionRequest extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, LongDescription) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.PredefinedType = PredefinedType; - this.Status = Status; - this.LongDescription = LongDescription; - this.type = 3821786052; +} + +class SVGArrow extends Component { + constructor(components, startPoint, endPoint) { + super(components); + this.name = "SVGRectangle"; + this.enabled = true; + this.id = tooeenRandomId(); + this._line = document.createElementNS("http://www.w3.org/2000/svg", "line"); + this._polygon = document.createElementNS("http://www.w3.org/2000/svg", "polygon"); + this._marker = document.createElementNS("http://www.w3.org/2000/svg", "marker"); + this._arrow = document.createElementNS("http://www.w3.org/2000/svg", "g"); + this._startPoint = new Vector2$1(); + this._endPoint = new Vector2$1(); + // Create marker for the arrow head + this._marker.setAttribute("id", `${this.id}-arrowhead`); + this._marker.setAttribute("markerWidth", "5"); + this._marker.setAttribute("markerHeight", "6"); + this._marker.setAttribute("refX", "4"); + this._marker.setAttribute("refY", "3"); + this._marker.setAttribute("orient", "auto"); + // Create polygon for the arrowhead shape + this._polygon.setAttribute("points", "0 0, 5 3, 0 6"); + this._marker.appendChild(this._polygon); + this._line.setAttribute("marker-end", `url(#${this.id}-arrowhead)`); + this._arrow.append(this._marker, this._line); + this.startPoint = startPoint !== null && startPoint !== void 0 ? startPoint : this.startPoint; + this.endPoint = endPoint !== null && endPoint !== void 0 ? endPoint : this.endPoint; + this._arrow.id = this.id; + this.setStyle(); + } + async dispose() { + this._arrow.remove(); + this._marker.remove(); + this._polygon.remove(); + this._line.remove(); + this.components = null; + } + setStyle(style) { + var _a, _b, _c, _d; + this._line.setAttribute("stroke", (_a = style === null || style === void 0 ? void 0 : style.strokeColor) !== null && _a !== void 0 ? _a : "red"); + this._line.setAttribute("stroke-width", (_c = (_b = style === null || style === void 0 ? void 0 : style.strokeWidth) === null || _b === void 0 ? void 0 : _b.toString()) !== null && _c !== void 0 ? _c : "4"); + this._polygon.setAttribute("fill", (_d = style === null || style === void 0 ? void 0 : style.strokeColor) !== null && _d !== void 0 ? _d : "red"); } - } - IFC4X32.IfcActionRequest = IfcActionRequest; - class IfcAirTerminalBoxType extends IfcFlowControllerType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1411407467; + reset() { + this.x1 = 0; + this.y1 = 0; + this.x2 = 0; + this.y2 = 0; } - } - IFC4X32.IfcAirTerminalBoxType = IfcAirTerminalBoxType; - class IfcAirTerminalType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3352864051; + clone() { + return new SVGArrow(this.components, this.startPoint, this.endPoint); } - } - IFC4X32.IfcAirTerminalType = IfcAirTerminalType; - class IfcAirToAirHeatRecoveryType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1871374353; + set x1(value) { + this._startPoint.x = value; + this._line.setAttribute("x1", value.toString()); } - } - IFC4X32.IfcAirToAirHeatRecoveryType = IfcAirToAirHeatRecoveryType; - class IfcAlignmentCant extends IfcLinearElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, RailHeadDistance) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.RailHeadDistance = RailHeadDistance; - this.type = 4266260250; + set y1(value) { + this._startPoint.y = value; + this._line.setAttribute("y1", value.toString()); } - } - IFC4X32.IfcAlignmentCant = IfcAlignmentCant; - class IfcAlignmentHorizontal extends IfcLinearElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.type = 1545765605; + set startPoint(point) { + this.x1 = point.x; + this.y1 = point.y; } - } - IFC4X32.IfcAlignmentHorizontal = IfcAlignmentHorizontal; - class IfcAlignmentSegment extends IfcLinearElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, DesignParameters) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.DesignParameters = DesignParameters; - this.type = 317615605; + get startPoint() { + return this._startPoint; } - } - IFC4X32.IfcAlignmentSegment = IfcAlignmentSegment; - class IfcAlignmentVertical extends IfcLinearElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.type = 1662888072; + set x2(value) { + this._endPoint.x = value; + this._line.setAttribute("x2", value.toString()); } - } - IFC4X32.IfcAlignmentVertical = IfcAlignmentVertical; - class IfcAsset extends IfcGroup { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, OriginalValue, CurrentValue, TotalReplacementCost, Owner, User, ResponsiblePerson, IncorporationDate, DepreciatedValue) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.OriginalValue = OriginalValue; - this.CurrentValue = CurrentValue; - this.TotalReplacementCost = TotalReplacementCost; - this.Owner = Owner; - this.User = User; - this.ResponsiblePerson = ResponsiblePerson; - this.IncorporationDate = IncorporationDate; - this.DepreciatedValue = DepreciatedValue; - this.type = 3460190687; + set y2(value) { + this._endPoint.y = value; + this._line.setAttribute("y2", value.toString()); } - } - IFC4X32.IfcAsset = IfcAsset; - class IfcAudioVisualApplianceType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1532957894; + set endPoint(point) { + this.x2 = point.x; + this.y2 = point.y; + } + get endPoint() { + return this._endPoint; + } + get() { + return this._arrow; + } +} + +class ArrowAnnotation extends BaseSVGAnnotation { + constructor(components, drawManager) { + super(components); + this.name = "ArrowAnnotation"; + this.canvas = null; + this.uiElement = new UIElement(); + this.cancel = () => { + if (!this._isDrawing) { + return; + } + this._isDrawing = false; + this._previewElement.reset(); + this._previewElement.get().remove(); + }; + this.start = (event) => { + var _a, _b, _c, _d; + if (!this.canDraw) { + return undefined; + } + if (!this._isDrawing) { + this._isDrawing = true; + this._previewElement.setStyle((_a = this.drawManager) === null || _a === void 0 ? void 0 : _a.viewport.config); + this._previewElement.x1 = event.clientX; + this._previewElement.y1 = event.clientY; + this._previewElement.x2 = event.clientX; + this._previewElement.y2 = event.clientY; + (_b = this.svgViewport) === null || _b === void 0 ? void 0 : _b.append(this._previewElement.get()); + } + else { + const arrow = this._previewElement.clone(); + arrow.setStyle((_c = this.drawManager) === null || _c === void 0 ? void 0 : _c.viewport.config); + (_d = this.svgViewport) === null || _d === void 0 ? void 0 : _d.append(arrow.get()); + this.cancel(); + return arrow; + } + return undefined; + }; + this.draw = (e) => { + if (!this.canDraw || !this._isDrawing) { + return; + } + this._previewElement.x1 = e.clientX; + this._previewElement.y1 = e.clientY; + }; + this._previewElement = new SVGArrow(components); + this.drawManager = drawManager; + const main = new Button(components); + this.uiElement.set({ main }); + main.label = "Arrow"; + main.materialIcon = "north_east"; + main.onClick.add(() => { + if (this.drawManager) { + this.drawManager.activateTool(this); + } + else { + this.enabled = !this.enabled; + } + }); } - } - IFC4X32.IfcAudioVisualApplianceType = IfcAudioVisualApplianceType; - class IfcBSplineCurve extends IfcBoundedCurve { - constructor(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect) { - super(expressID); - this.Degree = Degree; - this.ControlPointsList = ControlPointsList; - this.CurveForm = CurveForm; - this.ClosedCurve = ClosedCurve; - this.SelfIntersect = SelfIntersect; - this.type = 1967976161; + async dispose() { + await super.dispose(); + this._previewElement.dispose(); } - } - IFC4X32.IfcBSplineCurve = IfcBSplineCurve; - class IfcBSplineCurveWithKnots extends IfcBSplineCurve { - constructor(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect, KnotMultiplicities, Knots, KnotSpec) { - super(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect); - this.Degree = Degree; - this.ControlPointsList = ControlPointsList; - this.CurveForm = CurveForm; - this.ClosedCurve = ClosedCurve; - this.SelfIntersect = SelfIntersect; - this.KnotMultiplicities = KnotMultiplicities; - this.Knots = Knots; - this.KnotSpec = KnotSpec; - this.type = 2461110595; +} + +class SVGCircle extends Component { + constructor(components, centerPoint, radius) { + super(components); + this.id = tooeenRandomId(); + this.name = "SVGRectangle"; + this.enabled = true; + this._circle = document.createElementNS("http://www.w3.org/2000/svg", "circle"); + this._centerPoint = new Vector2$1(); + this._radius = 20; + this.centerPoint = centerPoint !== null && centerPoint !== void 0 ? centerPoint : this.centerPoint; + this.radius = radius !== null && radius !== void 0 ? radius : this.radius; + this._circle.id = this.id; + this.setStyle(); + } + async dispose() { + this._circle.remove(); + this.components = null; + } + setStyle(style) { + var _a, _b, _c, _d; + this._circle.setAttribute("stroke", (_a = style === null || style === void 0 ? void 0 : style.strokeColor) !== null && _a !== void 0 ? _a : "red"); + this._circle.setAttribute("stroke-width", (_c = (_b = style === null || style === void 0 ? void 0 : style.strokeWidth) === null || _b === void 0 ? void 0 : _b.toString()) !== null && _c !== void 0 ? _c : "4"); + this._circle.setAttribute("fill", (_d = style === null || style === void 0 ? void 0 : style.fillColor) !== null && _d !== void 0 ? _d : "transparent"); } - } - IFC4X32.IfcBSplineCurveWithKnots = IfcBSplineCurveWithKnots; - class IfcBeamType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 819618141; + reset() { + this.cx = 0; + this.cy = 0; + this.radius = 0; } - } - IFC4X32.IfcBeamType = IfcBeamType; - class IfcBearingType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3649138523; + clone() { + return new SVGCircle(this.components, this.centerPoint, this.radius); } - } - IFC4X32.IfcBearingType = IfcBearingType; - class IfcBoilerType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 231477066; + set radius(value) { + this._radius = value; + this._circle.setAttribute("r", value.toString()); } - } - IFC4X32.IfcBoilerType = IfcBoilerType; - class IfcBoundaryCurve extends IfcCompositeCurveOnSurface { - constructor(expressID, Segments, SelfIntersect) { - super(expressID, Segments, SelfIntersect); - this.Segments = Segments; - this.SelfIntersect = SelfIntersect; - this.type = 1136057603; + get radius() { + return this._radius; } - } - IFC4X32.IfcBoundaryCurve = IfcBoundaryCurve; - class IfcBridge extends IfcFacility { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.PredefinedType = PredefinedType; - this.type = 644574406; + set cx(value) { + this._centerPoint.x = value; + this._circle.setAttribute("cx", value.toString()); } - } - IFC4X32.IfcBridge = IfcBridge; - class IfcBridgePart extends IfcFacilityPart { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.UsageType = UsageType; - this.PredefinedType = PredefinedType; - this.type = 963979645; + set cy(value) { + this._centerPoint.y = value; + this._circle.setAttribute("cy", value.toString()); } - } - IFC4X32.IfcBridgePart = IfcBridgePart; - class IfcBuilding extends IfcFacility { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, ElevationOfRefHeight, ElevationOfTerrain, BuildingAddress) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.ElevationOfRefHeight = ElevationOfRefHeight; - this.ElevationOfTerrain = ElevationOfTerrain; - this.BuildingAddress = BuildingAddress; - this.type = 4031249490; + set centerPoint(point) { + this.cx = point.x; + this.cy = point.y; } - } - IFC4X32.IfcBuilding = IfcBuilding; - class IfcBuildingElementPart extends IfcElementComponent { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2979338954; + get centerPoint() { + return this._centerPoint; } - } - IFC4X32.IfcBuildingElementPart = IfcBuildingElementPart; - class IfcBuildingElementPartType extends IfcElementComponentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 39481116; + get() { + return this._circle; } - } - IFC4X32.IfcBuildingElementPartType = IfcBuildingElementPartType; - class IfcBuildingElementProxyType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1909888760; +} + +class CircleAnnotation extends BaseSVGAnnotation { + constructor(components, drawManager) { + super(components); + this.name = "CircleAnnotation"; + this.canvas = null; + this.uiElement = new UIElement(); + this._cursorPosition = new Vector2$1(); + this.start = (e) => { + var _a, _b, _c, _d; + if (!this.canDraw) { + return undefined; + } + if (!this._isDrawing) { + this._isDrawing = true; + this._previewElement.setStyle((_a = this.drawManager) === null || _a === void 0 ? void 0 : _a.viewport.config); + this._previewElement.cx = e.clientX; + this._previewElement.cy = e.clientY; + (_b = this.svgViewport) === null || _b === void 0 ? void 0 : _b.append(this._previewElement.get()); + } + else { + const circle = this._previewElement.clone(); + circle.setStyle((_c = this.drawManager) === null || _c === void 0 ? void 0 : _c.viewport.config); + (_d = this.svgViewport) === null || _d === void 0 ? void 0 : _d.append(circle.get()); + this.cancel(); + return circle; + } + return undefined; + }; + this.cancel = () => { + if (!this._isDrawing) { + return; + } + this._isDrawing = false; + this._previewElement.reset(); + this._previewElement.get().remove(); + }; + this.draw = (e) => { + if (!this.canDraw || !this._isDrawing) { + return; + } + this._cursorPosition.x = e.clientX; + this._cursorPosition.y = e.clientY; + this._previewElement.radius = this._cursorPosition.distanceTo(this._previewElement.centerPoint); + }; + this._previewElement = new SVGCircle(components); + this.drawManager = drawManager; + const main = new Button(components); + this.uiElement.set({ main }); + main.label = "Circle"; + main.materialIcon = "radio_button_unchecked"; + main.onClick.add(() => { + if (this.drawManager) { + this.drawManager.activateTool(this); + } + else { + this.enabled = !this.enabled; + } + }); } - } - IFC4X32.IfcBuildingElementProxyType = IfcBuildingElementProxyType; - class IfcBuildingSystem extends IfcSystem { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, LongName) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.PredefinedType = PredefinedType; - this.LongName = LongName; - this.type = 1177604601; + async dispose() { + await super.dispose(); + this._previewElement.dispose(); } - } - IFC4X32.IfcBuildingSystem = IfcBuildingSystem; - class IfcBuiltElement extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1876633798; +} + +class SVGText extends Component { + constructor(components, text, startPoint) { + super(components); + this.id = tooeenRandomId(); + this.name = "SVGRectangle"; + this.enabled = true; + this._startPoint = new Vector2$1(); + this._text = document.createElementNS("http://www.w3.org/2000/svg", "text"); + this._text.setAttribute("fill", "red"); + this._text.classList.add("text-2xl", "font-medium"); + this.text = text !== null && text !== void 0 ? text : ""; + this.startPoint = startPoint !== null && startPoint !== void 0 ? startPoint : this.startPoint; + this._text.id = this.id; + } + async dispose() { + this._text.remove(); + } + setStyle(style) { + var _a; + this._text.setAttribute("fill", (_a = style === null || style === void 0 ? void 0 : style.strokeColor) !== null && _a !== void 0 ? _a : "red"); + } + set text(value) { + this._text.textContent = value; + } + get text() { + var _a; + return (_a = this._text.textContent) !== null && _a !== void 0 ? _a : ""; } - } - IFC4X32.IfcBuiltElement = IfcBuiltElement; - class IfcBuiltSystem extends IfcSystem { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, LongName) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.PredefinedType = PredefinedType; - this.LongName = LongName; - this.type = 3862327254; + reset() { + this.x = 0; + this.y = 0; } - } - IFC4X32.IfcBuiltSystem = IfcBuiltSystem; - class IfcBurnerType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2188180465; + clone() { + return new SVGText(this.components, this.text, this.startPoint); } - } - IFC4X32.IfcBurnerType = IfcBurnerType; - class IfcCableCarrierFittingType extends IfcFlowFittingType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 395041908; + set x(value) { + this._startPoint.x = value; + this._text.setAttribute("x", value.toString()); } - } - IFC4X32.IfcCableCarrierFittingType = IfcCableCarrierFittingType; - class IfcCableCarrierSegmentType extends IfcFlowSegmentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3293546465; + set y(value) { + this._startPoint.y = value; + this._text.setAttribute("y", value.toString()); } - } - IFC4X32.IfcCableCarrierSegmentType = IfcCableCarrierSegmentType; - class IfcCableFittingType extends IfcFlowFittingType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2674252688; + set startPoint(point) { + this.x = point.x; + this.y = point.y; } - } - IFC4X32.IfcCableFittingType = IfcCableFittingType; - class IfcCableSegmentType extends IfcFlowSegmentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1285652485; + get startPoint() { + return this._startPoint; } - } - IFC4X32.IfcCableSegmentType = IfcCableSegmentType; - class IfcCaissonFoundationType extends IfcDeepFoundationType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3203706013; + get() { + return this._text; } - } - IFC4X32.IfcCaissonFoundationType = IfcCaissonFoundationType; - class IfcChillerType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2951183804; +} + +class TextAnnotation extends BaseSVGAnnotation { + constructor(components, drawManager) { + super(components); + this.name = "TextAnnotation"; + this.uiElement = new UIElement(); + this.canvas = null; + this.cancel = () => { + if (!this._isDrawing) { + return; + } + this._isDrawing = false; + this._previewElement.reset(); + this._previewElement.get().remove(); + }; + this.start = (e) => { + var _a, _b, _c, _d; + if (!this.canDraw) { + return undefined; + } + if (!this._isDrawing) { + this._isDrawing = true; + const text = prompt("Enter your text", this._previewElement.text); + if (!text) { + this.cancel(); + return undefined; + } + this._previewElement.setStyle((_a = this.drawManager) === null || _a === void 0 ? void 0 : _a.viewport.config); + this._previewElement.text = text; + this._previewElement.x = e.clientX; + this._previewElement.y = e.clientY; + (_b = this.svgViewport) === null || _b === void 0 ? void 0 : _b.append(this._previewElement.get()); + } + else { + const text = this._previewElement.clone(); + text.setStyle((_c = this.drawManager) === null || _c === void 0 ? void 0 : _c.viewport.config); + (_d = this.svgViewport) === null || _d === void 0 ? void 0 : _d.append(text.get()); + this.cancel(); + return text; + } + return undefined; + }; + this.draw = (e) => { + if (!this.canDraw || !this._isDrawing) { + return; + } + this._previewElement.x = e.clientX; + this._previewElement.y = e.clientY; + }; + this._previewElement = new SVGText(components); + this.drawManager = drawManager; + const main = new Button(components); + this.uiElement.set({ main }); + main.label = "Text"; + main.materialIcon = "title"; + main.onClick.add(() => { + if (this.drawManager) { + this.drawManager.activateTool(this); + } + else { + this.enabled = !this.enabled; + } + }); } - } - IFC4X32.IfcChillerType = IfcChillerType; - class IfcChimney extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3296154744; + async dispose() { + await super.dispose(); + await this._previewElement.dispose(); } - } - IFC4X32.IfcChimney = IfcChimney; - class IfcCircle extends IfcConic { - constructor(expressID, Position, Radius) { - super(expressID, Position); - this.Position = Position; - this.Radius = Radius; - this.type = 2611217952; +} + +class SVGRectangle extends Component { + constructor(components, startPoint, endPoint) { + super(components); + this.id = tooeenRandomId(); + this.name = "SVGRectangle"; + this.enabled = true; + this._startPoint = new Vector2$1(); + this._endPoint = new Vector2$1(); + this._dimensions = new Vector2$1(); + this._rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); + this.startPoint = startPoint !== null && startPoint !== void 0 ? startPoint : this.startPoint; + this.endPoint = endPoint !== null && endPoint !== void 0 ? endPoint : this.endPoint; + this._rect.setAttribute("rx", "5"); + this._rect.id = this.id; + this.setStyle(); + } + async dispose() { + this._rect.remove(); + this.components = null; + } + setStyle(style) { + var _a, _b, _c, _d; + this._rect.setAttribute("stroke", (_a = style === null || style === void 0 ? void 0 : style.strokeColor) !== null && _a !== void 0 ? _a : "red"); + this._rect.setAttribute("stroke-width", (_c = (_b = style === null || style === void 0 ? void 0 : style.strokeWidth) === null || _b === void 0 ? void 0 : _b.toString()) !== null && _c !== void 0 ? _c : "4"); + this._rect.setAttribute("fill", (_d = style === null || style === void 0 ? void 0 : style.fillColor) !== null && _d !== void 0 ? _d : "transparent"); } - } - IFC4X32.IfcCircle = IfcCircle; - class IfcCivilElement extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1677625105; + reset() { + this.x1 = 0; + this.y1 = 0; + this.x2 = 0; + this.y2 = 0; } - } - IFC4X32.IfcCivilElement = IfcCivilElement; - class IfcCoilType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2301859152; + clone() { + return new SVGRectangle(this.components, this.startPoint, this.endPoint); } - } - IFC4X32.IfcCoilType = IfcCoilType; - class IfcColumn extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 843113511; + set x1(value) { + this._startPoint.x = value; + this._rect.setAttribute("x", value.toString()); } - } - IFC4X32.IfcColumn = IfcColumn; - class IfcCommunicationsApplianceType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 400855858; + set y1(value) { + this._startPoint.y = value; + this._rect.setAttribute("y", value.toString()); } - } - IFC4X32.IfcCommunicationsApplianceType = IfcCommunicationsApplianceType; - class IfcCompressorType extends IfcFlowMovingDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3850581409; + set startPoint(point) { + this.x1 = point.x; + this.y1 = point.y; } - } - IFC4X32.IfcCompressorType = IfcCompressorType; - class IfcCondenserType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2816379211; + get startPoint() { + return this._startPoint; } - } - IFC4X32.IfcCondenserType = IfcCondenserType; - class IfcConstructionEquipmentResource extends IfcConstructionResource { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.Usage = Usage; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.PredefinedType = PredefinedType; - this.type = 3898045240; + set x2(value) { + const lessThanStart = value < this.startPoint.x; + this._endPoint.x = lessThanStart ? this.startPoint.x : value; + this.x1 = lessThanStart ? value : this.startPoint.x; + this._dimensions.x = this.endPoint.x - this.startPoint.x; + this._rect.setAttribute("width", this._dimensions.x.toString()); } - } - IFC4X32.IfcConstructionEquipmentResource = IfcConstructionEquipmentResource; - class IfcConstructionMaterialResource extends IfcConstructionResource { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.Usage = Usage; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.PredefinedType = PredefinedType; - this.type = 1060000209; + set y2(value) { + const lessThanStart = value < this.startPoint.y; + this._endPoint.y = lessThanStart ? this.startPoint.y : value; + this.y1 = lessThanStart ? value : this.startPoint.y; + this._dimensions.y = this.endPoint.y - this.startPoint.y; + this._rect.setAttribute("height", this._dimensions.y.toString()); } - } - IFC4X32.IfcConstructionMaterialResource = IfcConstructionMaterialResource; - class IfcConstructionProductResource extends IfcConstructionResource { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.Usage = Usage; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.PredefinedType = PredefinedType; - this.type = 488727124; + set endPoint(point) { + this.x2 = point.x; + this.y2 = point.y; } - } - IFC4X32.IfcConstructionProductResource = IfcConstructionProductResource; - class IfcConveyorSegmentType extends IfcFlowSegmentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2940368186; + get endPoint() { + return this._endPoint; } - } - IFC4X32.IfcConveyorSegmentType = IfcConveyorSegmentType; - class IfcCooledBeamType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 335055490; + set width(value) { + this.x2 = this.startPoint.x + value; } - } - IFC4X32.IfcCooledBeamType = IfcCooledBeamType; - class IfcCoolingTowerType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2954562838; + get width() { + return this._dimensions.x; } - } - IFC4X32.IfcCoolingTowerType = IfcCoolingTowerType; - class IfcCourse extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1502416096; + set height(value) { + this.y2 = this.startPoint.y + value; } - } - IFC4X32.IfcCourse = IfcCourse; - class IfcCovering extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1973544240; + get height() { + return this._dimensions.y; } - } - IFC4X32.IfcCovering = IfcCovering; - class IfcCurtainWall extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3495092785; + set dimensions(value) { + this.width = value.x; + this.height = value.y; } - } - IFC4X32.IfcCurtainWall = IfcCurtainWall; - class IfcDamperType extends IfcFlowControllerType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3961806047; + get dimensions() { + return this._dimensions; } - } - IFC4X32.IfcDamperType = IfcDamperType; - class IfcDeepFoundation extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 3426335179; + get() { + return this._rect; } - } - IFC4X32.IfcDeepFoundation = IfcDeepFoundation; - class IfcDiscreteAccessory extends IfcElementComponent { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1335981549; +} + +class RectangleAnnotation extends BaseSVGAnnotation { + constructor(components, drawManager) { + super(components); + this.name = "RectangleAnnotation"; + this.canvas = null; + this.uiElement = new UIElement(); + this._startPoint = new Vector2$1(); + this.start = (e) => { + var _a, _b, _c, _d; + if (!this.canDraw) { + return undefined; + } + if (!this._isDrawing) { + this._isDrawing = true; + this._previewElement.setStyle((_a = this.drawManager) === null || _a === void 0 ? void 0 : _a.viewport.config); + this._startPoint.set(e.clientX, e.clientY); + (_b = this.svgViewport) === null || _b === void 0 ? void 0 : _b.append(this._previewElement.get()); + } + else { + const rectangle = this._previewElement.clone(); + rectangle.setStyle((_c = this.drawManager) === null || _c === void 0 ? void 0 : _c.viewport.config); + (_d = this.svgViewport) === null || _d === void 0 ? void 0 : _d.append(rectangle.get()); + this.cancel(); + return rectangle; + } + return undefined; + }; + this.cancel = () => { + if (!this._isDrawing) { + return; + } + this._isDrawing = false; + this._startPoint.x = 0; + this._startPoint.y = 0; + this._previewElement.reset(); + this._previewElement.get().remove(); + }; + this.draw = (e) => { + if (!this.canDraw || !this._isDrawing) { + return; + } + this._previewElement.x1 = this._startPoint.x; + this._previewElement.y1 = this._startPoint.y; + this._previewElement.x2 = e.clientX; + this._previewElement.y2 = e.clientY; + }; + this._previewElement = new SVGRectangle(components); + this.drawManager = drawManager; + const main = new Button(components); + this.uiElement.set({ main }); + main.label = "Rectangle"; + main.materialIcon = "crop_square"; + main.onClick.add(() => { + if (this.drawManager) { + this.drawManager.activateTool(this); + } + else { + this.enabled = !this.enabled; + } + }); } - } - IFC4X32.IfcDiscreteAccessory = IfcDiscreteAccessory; - class IfcDiscreteAccessoryType extends IfcElementComponentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2635815018; + async dispose() { + await super.dispose(); + this._previewElement.dispose(); } - } - IFC4X32.IfcDiscreteAccessoryType = IfcDiscreteAccessoryType; - class IfcDistributionBoardType extends IfcFlowControllerType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 479945903; +} + +class DrawManager extends Component { + get isDrawing() { + return this._isDrawing; } - } - IFC4X32.IfcDistributionBoardType = IfcDistributionBoardType; - class IfcDistributionChamberElementType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1599208980; + set isDrawing(value) { + this._isDrawing = value; } - } - IFC4X32.IfcDistributionChamberElementType = IfcDistributionChamberElementType; - class IfcDistributionControlElementType extends IfcDistributionElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 2063403501; + get enabled() { + return this._enabled; } - } - IFC4X32.IfcDistributionControlElementType = IfcDistributionControlElementType; - class IfcDistributionElement extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1945004755; + set enabled(value) { + this._enabled = value; + this.uiElement.get("main").active = value; + this.uiElement.get("drawingTools").visible = value; + this.viewport.enabled = value; } - } - IFC4X32.IfcDistributionElement = IfcDistributionElement; - class IfcDistributionFlowElement extends IfcDistributionElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 3040386961; + constructor(components) { + super(components); + this.name = "DrawManager"; + this.uiElement = new UIElement(); + this.drawingTools = {}; + this.drawings = {}; + this._enabled = false; + this._isDrawing = false; + this.viewport = new SimpleSVGViewport(components); + this.setUI(); + this.enabled = false; + } + async dispose() { + this.uiElement.dispose(); + await this.viewport.dispose(); + for (const name in this.drawings) { + this.drawings[name].remove(); + } + this.drawings = {}; + this.components = null; + } + saveDrawing(name) { + const currentDrawing = this.drawings[name]; + currentDrawing === null || currentDrawing === void 0 ? void 0 : currentDrawing.childNodes.forEach((child) => currentDrawing.removeChild(child)); + const drawing = this.viewport.getDrawing(); + const group = currentDrawing !== null && currentDrawing !== void 0 ? currentDrawing : document.createElementNS("http://www.w3.org/2000/svg", "g"); + group.id = name; + group.append(...drawing); + this.viewport.get().append(group); + this.drawings[name] = group; + return group; + } + addDrawingTool(name, tool) { + const existingTool = this.drawingTools[name]; + if (!existingTool) { + const main = this.uiElement.get("main"); + this.uiElement.get("drawingTools").addChild(main); + this.drawingTools[name] = tool; + } + } + activateTool(tool) { + const drawingTools = Object.values(this.drawingTools); + drawingTools.forEach((tool) => (tool.enabled = false)); + tool.enabled = true; + } + get activeTool() { + const drawingTools = Object.values(this.drawingTools); + return drawingTools.find((tool) => tool.enabled === true); + } + setUI() { + const drawingTools = new Toolbar(this.components, { position: "top" }); + this.components.ui.addToolbar(drawingTools); + const main = new Button(this.components); + main.materialIcon = "gesture"; + main.onClick.add(() => (this.enabled = !this.enabled)); + this.uiElement.set({ drawingTools, main }); + } + get() { + throw new Error("Method not implemented."); } - } - IFC4X32.IfcDistributionFlowElement = IfcDistributionFlowElement; - class IfcDistributionPort extends IfcPort { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, FlowDirection, PredefinedType, SystemType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.FlowDirection = FlowDirection; - this.PredefinedType = PredefinedType; - this.SystemType = SystemType; - this.type = 3041715199; +} + +var mapboxGl = {exports: {}}; + +/* Mapbox GL JS is Copyright © 2020 Mapbox and subject to the Mapbox Terms of Service ((https://www.mapbox.com/legal/tos/). */ +mapboxGl.exports; + +(function (module, exports) { + (function (global, factory) { + module.exports = factory() ; + })(commonjsGlobal, (function () { + /* eslint-disable */ + + var shared, worker, mapboxgl; + // define gets called three times: one for each chunk. we rely on the order + // they're imported to know which is which + function define(_, chunk) { + if (!shared) { + shared = chunk; + } else if (!worker) { + worker = chunk; + } else { + var workerBundleString = "self.onerror = function() { console.error('An error occurred while parsing the WebWorker bundle. This is most likely due to improper transpilation by Babel; please see https://docs.mapbox.com/mapbox-gl-js/guides/install/#transpiling'); }; var sharedChunk = {}; (" + shared + ")(sharedChunk); (" + worker + ")(sharedChunk); self.onerror = null;"; + + var sharedChunk = {}; + shared(sharedChunk); + mapboxgl = chunk(sharedChunk); + if (typeof window !== 'undefined' && window && window.URL && window.URL.createObjectURL) { + mapboxgl.workerUrl = window.URL.createObjectURL(new Blob([workerBundleString], { type: 'text/javascript' })); + } + } + } + + + define(["exports"],(function(t){var e="undefined"!=typeof self?self:{},r="2.15.0";let n;const i={API_URL:"https://api.mapbox.com",get API_URL_REGEX(){if(null==n){const t=/^((https?:)?\/\/)?([^\/]+\.)?mapbox\.c(n|om)(\/|\?|$)/i;try{n=null!=process.env.API_URL_REGEX?new RegExp(process.env.API_URL_REGEX):t;}catch(e){n=t;}}return n},get API_TILEJSON_REGEX(){return /^((https?:)?\/\/)?([^\/]+\.)?mapbox\.c(n|om)(\/v[0-9]*\/.*\.json.*$)/i},get API_SPRITE_REGEX(){return /^((https?:)?\/\/)?([^\/]+\.)?mapbox\.c(n|om)(\/styles\/v[0-9]*\/)(.*\/sprite.*\..*$)/i},get API_FONTS_REGEX(){return /^((https?:)?\/\/)?([^\/]+\.)?mapbox\.c(n|om)(\/fonts\/v[0-9]*\/)(.*\.pbf.*$)/i},get API_STYLE_REGEX(){return /^((https?:)?\/\/)?([^\/]+\.)?mapbox\.c(n|om)(\/styles\/v[0-9]*\/)(.*$)/i},get API_CDN_URL_REGEX(){return /^((https?:)?\/\/)?api\.mapbox\.c(n|om)(\/mapbox-gl-js\/)(.*$)/i},get EVENTS_URL(){if(!i.API_URL)return null;try{const t=new URL(i.API_URL);return "api.mapbox.cn"===t.hostname?"https://events.mapbox.cn/events/v2":"api.mapbox.com"===t.hostname?"https://events.mapbox.com/events/v2":null}catch(t){return null}},SESSION_PATH:"/map-sessions/v1",FEEDBACK_URL:"https://apps.mapbox.com/feedback",TILE_URL_VERSION:"v4",RASTER_URL_PREFIX:"raster/v1",REQUIRE_ACCESS_TOKEN:!0,ACCESS_TOKEN:null,MAX_PARALLEL_IMAGE_REQUESTS:16},s={supported:!1,testSupport:function(t){!l&&o&&(u?c(t):a=t);}};let a,o,l=!1,u=!1;function c(t){const e=t.createTexture();t.bindTexture(t.TEXTURE_2D,e);try{if(t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,o),t.isContextLost())return;s.supported=!0;}catch(t){}t.deleteTexture(e),l=!0;}e.document&&(o=e.document.createElement("img"),o.onload=function(){a&&c(a),a=null,u=!0;},o.onerror=function(){l=!0,a=null;},o.src="data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAQAAAAfQ//73v/+BiOh/AAA=");const h="01";function p(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var d=f;function f(t,e,r,n){this.cx=3*t,this.bx=3*(r-t)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*e,this.by=3*(n-e)-this.cy,this.ay=1-this.cy-this.by,this.p1x=t,this.p1y=e,this.p2x=r,this.p2y=n;}f.prototype={sampleCurveX:function(t){return ((this.ax*t+this.bx)*t+this.cx)*t},sampleCurveY:function(t){return ((this.ay*t+this.by)*t+this.cy)*t},sampleCurveDerivativeX:function(t){return (3*this.ax*t+2*this.bx)*t+this.cx},solveCurveX:function(t,e){if(void 0===e&&(e=1e-6),t<0)return 0;if(t>1)return 1;for(var r=t,n=0;n<8;n++){var i=this.sampleCurveX(r)-t;if(Math.abs(i)i?a=r:o=r,r=.5*(o-a)+a;return r},solve:function(t,e){return this.sampleCurveY(this.solveCurveX(t,e))}};var y=p(d),m=g;function g(t,e){this.x=t,this.y=e;}g.prototype={clone:function(){return new g(this.x,this.y)},add:function(t){return this.clone()._add(t)},sub:function(t){return this.clone()._sub(t)},multByPoint:function(t){return this.clone()._multByPoint(t)},divByPoint:function(t){return this.clone()._divByPoint(t)},mult:function(t){return this.clone()._mult(t)},div:function(t){return this.clone()._div(t)},rotate:function(t){return this.clone()._rotate(t)},rotateAround:function(t,e){return this.clone()._rotateAround(t,e)},matMult:function(t){return this.clone()._matMult(t)},unit:function(){return this.clone()._unit()},perp:function(){return this.clone()._perp()},round:function(){return this.clone()._round()},mag:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},equals:function(t){return this.x===t.x&&this.y===t.y},dist:function(t){return Math.sqrt(this.distSqr(t))},distSqr:function(t){var e=t.x-this.x,r=t.y-this.y;return e*e+r*r},angle:function(){return Math.atan2(this.y,this.x)},angleTo:function(t){return Math.atan2(this.y-t.y,this.x-t.x)},angleWith:function(t){return this.angleWithSep(t.x,t.y)},angleWithSep:function(t,e){return Math.atan2(this.x*e-this.y*t,this.x*t+this.y*e)},_matMult:function(t){var e=t[2]*this.x+t[3]*this.y;return this.x=t[0]*this.x+t[1]*this.y,this.y=e,this},_add:function(t){return this.x+=t.x,this.y+=t.y,this},_sub:function(t){return this.x-=t.x,this.y-=t.y,this},_mult:function(t){return this.x*=t,this.y*=t,this},_div:function(t){return this.x/=t,this.y/=t,this},_multByPoint:function(t){return this.x*=t.x,this.y*=t.y,this},_divByPoint:function(t){return this.x/=t.x,this.y/=t.y,this},_unit:function(){return this._div(this.mag()),this},_perp:function(){var t=this.y;return this.y=this.x,this.x=-t,this},_rotate:function(t){var e=Math.cos(t),r=Math.sin(t),n=r*this.x+e*this.y;return this.x=e*this.x-r*this.y,this.y=n,this},_rotateAround:function(t,e){var r=Math.cos(t),n=Math.sin(t),i=e.y+n*(this.x-e.x)+r*(this.y-e.y);return this.x=e.x+r*(this.x-e.x)-n*(this.y-e.y),this.y=i,this},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}},g.convert=function(t){return t instanceof g?t:Array.isArray(t)?new g(t[0],t[1]):t};var x=p(m);const v=Math.PI/180,b=180/Math.PI;function w(t){return t*v}function _(t){return t*b}const A=[[0,0],[1,0],[1,1],[0,1]];function S(t){if(t<=0)return 0;if(t>=1)return 1;const e=t*t,r=e*t;return 4*(t<.5?r:3*(t-e)+r-.75)}function k(t,e,r,n){const i=new y(t,e,r,n);return function(t){return i.solve(t)}}const I=k(.25,.1,.25,1);function M(t,e,r){return Math.min(r,Math.max(e,t))}function T(t,e,r){return (r=M((r-t)/(e-t),0,1))*r*(3-2*r)}function z(t,e,r){const n=r-e,i=((t-e)%n+n)%n+e;return i===e?r:i}function B(t,e,r){if(!t.length)return r(null,[]);let n=t.length;const i=new Array(t.length);let s=null;t.forEach(((t,a)=>{e(t,((t,e)=>{t&&(s=t),i[a]=e,0==--n&&r(s,i);}));}));}function E(t){const e=[];for(const r in t)e.push(t[r]);return e}function C(t,...e){for(const r of e)for(const e in r)t[e]=r[e];return t}let P=1;function D(){return P++}function V(){return function t(e){return e?(e^Math.random()*(16>>e/4)).toString(16):([1e7]+-[1e3]+-4e3+-8e3+-1e11).replace(/[018]/g,t)}()}function L(t){return t<=1?1:Math.pow(2,Math.ceil(Math.log(t)/Math.LN2))}function F(t){return !!t&&/^[0-9a-f]{8}-[0-9a-f]{4}-[4][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(t)}function R(t,e){t.forEach((t=>{e[t]&&(e[t]=e[t].bind(e));}));}function U(t,e){return -1!==t.indexOf(e,t.length-e.length)}function $(t,e,r){const n={};for(const i in t)n[i]=e.call(r||this,t[i],i,t);return n}function j(t,e,r){const n={};for(const i in t)e.call(r||this,t[i],i,t)&&(n[i]=t[i]);return n}function O(t){return Array.isArray(t)?t.map(O):"object"==typeof t&&t?$(t,O):t}const q={};function N(t){q[t]||("undefined"!=typeof console&&console.warn(t),q[t]=!0);}function G(t,e,r){return (r.y-t.y)*(e.x-t.x)>(e.y-t.y)*(r.x-t.x)}function Z(t){let e=0;for(let r,n,i=0,s=t.length,a=s-1;i@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)(?:\=(?:([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)|(?:\"((?:[^"\\]|\\.)*)\")))?/g,((t,r,n,i)=>{const s=n||i;return e[r]=!s||s.toLowerCase(),""})),e["max-age"]){const t=parseInt(e["max-age"],10);isNaN(t)?delete e["max-age"]:e["max-age"]=t;}return e}let J=null;function H(t){if(null==J){const e=t.navigator?t.navigator.userAgent:null;J=!!t.safari||!(!e||!(/\b(iPad|iPhone|iPod)\b/.test(e)||e.match("Safari")&&!e.match("Chrome")));}return J}function Y(t){try{const r=e[t];return r.setItem("_mapbox_test_",1),r.removeItem("_mapbox_test_"),!0}catch(t){return !1}}function W(t,e){return [t[4*e],t[4*e+1],t[4*e+2],t[4*e+3]]}const Q="mapbox-tiles";let tt=500,et=50;let rt,nt;function it(){try{return e.caches}catch(t){}}function st(){it()&&!rt&&(rt=e.caches.open(Q));}function at(t){const e=t.indexOf("?");if(e<0)return t;const r=function(t){const e=t.indexOf("?");return e>0?t.slice(e+1).split("&"):[]}(t),n=r.filter((t=>{const e=t.split("=");return "language"===e[0]||"worldview"===e[0]}));return n.length?`${t.slice(0,e)}?${n.join("&")}`:t.slice(0,e)}let ot=1/0;const lt={Unknown:"Unknown",Style:"Style",Source:"Source",Tile:"Tile",Glyphs:"Glyphs",SpriteImage:"SpriteImage",SpriteJSON:"SpriteJSON",Image:"Image"};"function"==typeof Object.freeze&&Object.freeze(lt);class ut extends Error{constructor(t,e,r){401===e&&bt(r)&&(t+=": you may have provided an invalid Mapbox access token. See https://docs.mapbox.com/api/overview/#access-tokens-and-token-scopes"),super(t),this.status=e,this.url=r;}toString(){return `${this.name}: ${this.message} (${this.status}): ${this.url}`}}const ct=K()?()=>self.worker&&self.worker.referrer:()=>("blob:"===e.location.protocol?e.parent:e).location.href;const ht=function(t,r){if(!(/^file:/.test(n=t.url)||/^file:/.test(ct())&&!/^\w+:/.test(n))){if(e.fetch&&e.Request&&e.AbortController&&e.Request.prototype.hasOwnProperty("signal"))return function(t,r){const n=new e.AbortController,i=new e.Request(t.url,{method:t.method||"GET",body:t.body,credentials:t.credentials,headers:t.headers,referrer:ct(),referrerPolicy:t.referrerPolicy,signal:n.signal});let s=!1,a=!1;const o=(l=i.url).indexOf("sku=")>0&&bt(l);var l;"json"===t.type&&i.headers.set("Accept","application/json");const u=(n,s,l)=>{if(a)return;if(n&&"SecurityError"!==n.message&&N(n.toString()),s&&l)return c(s);const u=Date.now();e.fetch(i).then((e=>{if(e.ok){const t=o?e.clone():null;return c(e,t,u)}return r(new ut(e.statusText,e.status,t.url))})).catch((e=>{"AbortError"!==e.name&&r(new Error(`${e.message} ${t.url}`));}));},c=(n,o,l)=>{("arrayBuffer"===t.type?n.arrayBuffer():"json"===t.type?n.json():n.text()).then((t=>{a||(o&&l&&function(t,r,n){if(st(),!rt)return;const i={status:r.status,statusText:r.statusText,headers:new e.Headers};r.headers.forEach(((t,e)=>i.headers.set(e,t)));const s=X(r.headers.get("Cache-Control")||"");if(s["no-store"])return;s["max-age"]&&i.headers.set("Expires",new Date(n+1e3*s["max-age"]).toUTCString());const a=i.headers.get("Expires");a&&(new Date(a).getTime()-n<42e4||function(t,e){if(void 0===nt)try{new Response(new ReadableStream),nt=!0;}catch(t){nt=!1;}nt?e(t.body):t.blob().then(e);}(r,(r=>{const n=new e.Response(r,i);st(),rt&&rt.then((e=>e.put(at(t.url),n))).catch((t=>N(t.message)));})));}(i,o,l),s=!0,r(null,t,n.headers.get("Cache-Control"),n.headers.get("Expires")));})).catch((t=>{a||r(new Error(t.message));}));};return o?function(t,e){if(st(),!rt)return e(null);const r=at(t.url);rt.then((t=>{t.match(r).then((n=>{const i=function(t){if(!t)return !1;const e=new Date(t.headers.get("Expires")||0),r=X(t.headers.get("Cache-Control")||"");return e>Date.now()&&!r["no-cache"]}(n);t.delete(r),i&&t.put(r,n.clone()),e(null,n,i);})).catch(e);})).catch(e);}(i,u):u(null,null),{cancel:()=>{a=!0,s||n.abort();}}}(t,r);if(K()&&self.worker&&self.worker.actor)return self.worker.actor.send("getResource",t,r,void 0,!0)}var n;return function(t,r){const n=new e.XMLHttpRequest;n.open(t.method||"GET",t.url,!0),"arrayBuffer"===t.type&&(n.responseType="arraybuffer");for(const e in t.headers)n.setRequestHeader(e,t.headers[e]);return "json"===t.type&&(n.responseType="text",n.setRequestHeader("Accept","application/json")),n.withCredentials="include"===t.credentials,n.onerror=()=>{r(new Error(n.statusText));},n.onload=()=>{if((n.status>=200&&n.status<300||0===n.status)&&null!==n.response){let e=n.response;if("json"===t.type)try{e=JSON.parse(n.response);}catch(t){return r(t)}r(null,e,n.getResponseHeader("Cache-Control"),n.getResponseHeader("Expires"));}else r(new ut(n.statusText,n.status,t.url));},n.send(t.body),{cancel:()=>n.abort()}}(t,r)},pt=function(t,e){return ht(C(t,{type:"arrayBuffer"}),e)};function dt(t){const r=e.document.createElement("a");return r.href=t,r.protocol===e.document.location.protocol&&r.host===e.document.location.host}const ft="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQYV2NgAAIAAAUAAarVyFEAAAAASUVORK5CYII=";let yt,mt;yt=[],mt=0;const gt=function(t,r){if(s.supported&&(t.headers||(t.headers={}),t.headers.accept="image/webp,*/*"),mt>=i.MAX_PARALLEL_IMAGE_REQUESTS){const e={requestParameters:t,callback:r,cancelled:!1,cancel(){this.cancelled=!0;}};return yt.push(e),e}mt++;let n=!1;const a=()=>{if(!n)for(n=!0,mt--;yt.length&&mt{a(),t?r(t):n&&(e.createImageBitmap?function(t,r){const n=new e.Blob([new Uint8Array(t)],{type:"image/png"});e.createImageBitmap(n).then((t=>{r(null,t);})).catch((t=>{r(new Error(`Could not load image because of ${t.message}. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.`));}));}(n,((t,e)=>r(t,e,i,s))):function(t,r){const n=new e.Image,i=e.URL;n.onload=()=>{r(null,n),i.revokeObjectURL(n.src),n.onload=null,e.requestAnimationFrame((()=>{n.src=ft;}));},n.onerror=()=>r(new Error("Could not load image. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported."));const s=new e.Blob([new Uint8Array(t)],{type:"image/png"});n.src=t.byteLength?i.createObjectURL(s):ft;}(n,((t,e)=>r(t,e,i,s))));}));return {cancel:()=>{o.cancel(),a();}}},xt="NO_ACCESS_TOKEN";function vt(t){return 0===t.indexOf("mapbox:")}function bt(t){return i.API_URL_REGEX.test(t)}function wt(t){return i.API_CDN_URL_REGEX.test(t)}function _t(t){return i.API_STYLE_REGEX.test(t)&&!At(t)}function At(t){return i.API_SPRITE_REGEX.test(t)}const St=/^(\w+):\/\/([^/?]*)(\/[^?]+)?\??(.+)?/;function kt(t){const e=t.match(St);if(!e)throw new Error("Unable to parse URL object");return {protocol:e[1],authority:e[2],path:e[3]||"/",params:e[4]?e[4].split("&"):[]}}function It(t){const e=t.params.length?`?${t.params.join("&")}`:"";return `${t.protocol}://${t.authority}${t.path}${e}`}const Mt="mapbox.eventData";function Tt(t){if(!t)return null;const r=t.split(".");if(!r||3!==r.length)return null;try{return JSON.parse(decodeURIComponent(e.atob(r[1]).split("").map((t=>"%"+("00"+t.charCodeAt(0).toString(16)).slice(-2))).join("")))}catch(t){return null}}class zt{constructor(t){this.type=t,this.anonId=null,this.eventData={},this.queue=[],this.pendingRequest=null;}getStorageKey(t){const r=Tt(i.ACCESS_TOKEN);let n="";return n=r&&r.u?e.btoa(encodeURIComponent(r.u).replace(/%([0-9A-F]{2})/g,((t,e)=>String.fromCharCode(Number("0x"+e))))):i.ACCESS_TOKEN||"",t?`${Mt}.${t}:${n}`:`${Mt}:${n}`}fetchEventData(){const t=Y("localStorage"),r=this.getStorageKey(),n=this.getStorageKey("uuid");if(t)try{const t=e.localStorage.getItem(r);t&&(this.eventData=JSON.parse(t));const i=e.localStorage.getItem(n);i&&(this.anonId=i);}catch(t){N("Unable to read from LocalStorage");}}saveEventData(){const t=Y("localStorage"),r=this.getStorageKey(),n=this.getStorageKey("uuid");if(t)try{e.localStorage.setItem(n,this.anonId),Object.keys(this.eventData).length>=1&&e.localStorage.setItem(r,JSON.stringify(this.eventData));}catch(t){N("Unable to write to LocalStorage");}}processRequests(t){}postEvent(t,e,r,n){if(!i.EVENTS_URL)return;const s=kt(i.EVENTS_URL);s.params.push(`access_token=${n||i.ACCESS_TOKEN||""}`);const a={event:this.type,created:new Date(t).toISOString()},o=e?C(a,e):a,l={url:It(s),headers:{"Content-Type":"text/plain"},body:JSON.stringify([o])};this.pendingRequest=function(t,e){return ht(C(t,{method:"POST"}),e)}(l,(t=>{this.pendingRequest=null,r(t),this.saveEventData(),this.processRequests(n);}));}queueRequest(t,e){this.queue.push(t),this.processRequests(e);}}const Bt=new class extends zt{constructor(t){super("appUserTurnstile"),this._customAccessToken=t;}postTurnstileEvent(t,e){i.EVENTS_URL&&i.ACCESS_TOKEN&&Array.isArray(t)&&t.some((t=>vt(t)||bt(t)))&&this.queueRequest(Date.now(),e);}processRequests(t){if(this.pendingRequest||0===this.queue.length)return;this.anonId&&this.eventData.lastSuccess&&this.eventData.tokenU||this.fetchEventData();const e=Tt(i.ACCESS_TOKEN),n=e?e.u:i.ACCESS_TOKEN;let s=n!==this.eventData.tokenU;F(this.anonId)||(this.anonId=V(),s=!0);const a=this.queue.shift();if(this.eventData.lastSuccess){const t=new Date(this.eventData.lastSuccess),e=new Date(a),r=(a-this.eventData.lastSuccess)/864e5;s=s||r>=1||r<-1||t.getDate()!==e.getDate();}else s=!0;s?this.postEvent(a,{sdkIdentifier:"mapbox-gl-js",sdkVersion:r,skuId:h,"enabled.telemetry":!1,userId:this.anonId},(t=>{t||(this.eventData.lastSuccess=a,this.eventData.tokenU=n);}),t):this.processRequests();}},Et=Bt.postTurnstileEvent.bind(Bt),Ct=new class extends zt{constructor(){super("map.load"),this.success={},this.skuToken="";}postMapLoadEvent(t,e,r,n){this.skuToken=e,this.errorCb=n,i.EVENTS_URL&&(r||i.ACCESS_TOKEN?this.queueRequest({id:t,timestamp:Date.now()},r):this.errorCb(new Error(xt)));}processRequests(t){if(this.pendingRequest||0===this.queue.length)return;const{id:e,timestamp:n}=this.queue.shift();e&&this.success[e]||(this.anonId||this.fetchEventData(),F(this.anonId)||(this.anonId=V()),this.postEvent(n,{sdkIdentifier:"mapbox-gl-js",sdkVersion:r,skuId:h,skuToken:this.skuToken,userId:this.anonId},(t=>{t?this.errorCb(t):e&&(this.success[e]=!0);}),t));}},Pt=Ct.postMapLoadEvent.bind(Ct),Dt=new class extends zt{constructor(){super("gljs.performance");}postPerformanceEvent(t,e){i.EVENTS_URL&&(t||i.ACCESS_TOKEN)&&this.queueRequest({timestamp:Date.now(),performanceData:e},t);}processRequests(t){if(this.pendingRequest||0===this.queue.length)return;const{timestamp:n,performanceData:i}=this.queue.shift(),s=function(t){const n=e.performance.getEntriesByType("resource"),i=e.performance.getEntriesByType("mark"),s=function(t){const e={};if(t)for(const r in t)if("other"!==r)for(const n of t[r]){const t=`${r}ResolveRangeMin`,i=`${r}ResolveRangeMax`,s=`${r}RequestCount`,a=`${r}RequestCachedCount`;e[t]=Math.min(e[t]||1/0,n.startTime),e[i]=Math.max(e[i]||-1/0,n.responseEnd);const o=t=>{void 0===e[t]&&(e[t]=0),++e[t];};void 0!==n.transferSize&&0===n.transferSize&&o(a),o(s);}return e}(function(t,e){const r={};if(t)for(const n of t){const t=e(n);void 0===r[t]&&(r[t]=[]),r[t].push(n);}return r}(n,jt)),a=e.devicePixelRatio,o=e.navigator.connection||e.navigator.mozConnection||e.navigator.webkitConnection,l={counters:[],metadata:[],attributes:[]},u=(t,e,r)=>{null!=r&&t.push({name:e,value:r.toString()});};for(const t in s)u(l.counters,t,s[t]);if(t.interactionRange[0]!==1/0&&t.interactionRange[1]!==-1/0&&(u(l.counters,"interactionRangeMin",t.interactionRange[0]),u(l.counters,"interactionRangeMax",t.interactionRange[1])),i)for(const t of Object.keys(Ut)){const e=Ut[t],r=i.find((t=>t.name===e));r&&u(l.counters,e,r.startTime);}return u(l.counters,"visibilityHidden",t.visibilityHidden),u(l.attributes,"style",function(t){if(t)for(const e of t){const t=e.name.split("?")[0];if(_t(t)){const e=t.split("/").slice(-2);if(2===e.length)return `mapbox://styles/${e[0]}/${e[1]}`}}}(n)),u(l.attributes,"terrainEnabled",t.terrainEnabled?"true":"false"),u(l.attributes,"fogEnabled",t.fogEnabled?"true":"false"),u(l.attributes,"projection",t.projection),u(l.attributes,"zoom",t.zoom),u(l.metadata,"devicePixelRatio",a),u(l.metadata,"connectionEffectiveType",o?o.effectiveType:void 0),u(l.metadata,"navigatorUserAgent",e.navigator.userAgent),u(l.metadata,"screenWidth",e.screen.width),u(l.metadata,"screenHeight",e.screen.height),u(l.metadata,"windowWidth",e.innerWidth),u(l.metadata,"windowHeight",e.innerHeight),u(l.metadata,"mapWidth",t.width/a),u(l.metadata,"mapHeight",t.height/a),u(l.metadata,"webglRenderer",t.renderer),u(l.metadata,"webglVendor",t.vendor),u(l.metadata,"sdkVersion",r),u(l.metadata,"sdkIdentifier","mapbox-gl-js"),l}(i);for(const t of s.metadata);for(const t of s.counters);for(const t of s.attributes);this.postEvent(n,s,(()=>{}),t);}},Vt=Dt.postPerformanceEvent.bind(Dt),Lt=new class extends zt{constructor(){super("map.auth"),this.success={},this.skuToken="";}getSession(t,e,r,n){if(!i.API_URL||!i.SESSION_PATH)return;const s=kt(i.API_URL+i.SESSION_PATH);s.params.push(`sku=${e||""}`),s.params.push(`access_token=${n||i.ACCESS_TOKEN||""}`);const a={url:It(s),headers:{"Content-Type":"text/plain"}};this.pendingRequest=function(t,e){return ht(C(t,{method:"GET"}),e)}(a,(t=>{this.pendingRequest=null,r(t),this.saveEventData(),this.processRequests(n);}));}getSessionAPI(t,e,r,n){this.skuToken=e,this.errorCb=n,i.SESSION_PATH&&i.API_URL&&(r||i.ACCESS_TOKEN?this.queueRequest({id:t,timestamp:Date.now()},r):this.errorCb(new Error(xt)));}processRequests(t){if(this.pendingRequest||0===this.queue.length)return;const{id:e,timestamp:r}=this.queue.shift();e&&this.success[e]||this.getSession(r,this.skuToken,(t=>{t?this.errorCb(t):e&&(this.success[e]=!0);}),t);}},Ft=Lt.getSessionAPI.bind(Lt),Rt=new Set,Ut={create:"create",load:"load",fullLoad:"fullLoad"},$t={mark(t){e.performance.mark(t);},measure(t,r,n){e.performance.measure(t,r,n);}};function jt(t){const e=t.name.split("?")[0];return wt(e)&&e.includes("mapbox-gl.js")?"javascript":wt(e)&&e.includes("mapbox-gl.css")?"css":function(t){return i.API_FONTS_REGEX.test(t)}(e)?"fontRange":At(e)?"sprite":_t(e)?"style":function(t){return i.API_TILEJSON_REGEX.test(t)}(e)?"tilejson":"other"}const Ot=e.performance;function qt(t){const e=t?t.url.toString():void 0;return Ot.getEntriesByName(e)}let Nt,Gt,Zt,Kt;const Xt={now:()=>void 0!==Zt?Zt:e.performance.now(),setNow(t){Zt=t;},restoreNow(){Zt=void 0;},frame(t){const r=e.requestAnimationFrame(t);return {cancel:()=>e.cancelAnimationFrame(r)}},getImageData(t,r=0){const{width:n,height:i}=t;Kt||(Kt=e.document.createElement("canvas"));const s=Kt.getContext("2d",{willReadFrequently:!0});if(!s)throw new Error("failed to create canvas 2d context");return (n>Kt.width||i>Kt.height)&&(Kt.width=n,Kt.height=i),s.clearRect(-r,-r,n+2*r,i+2*r),s.drawImage(t,0,0,n,i),s.getImageData(-r,-r,n+2*r,i+2*r)},resolveURL:t=>(Nt||(Nt=e.document.createElement("a")),Nt.href=t,Nt.href),get devicePixelRatio(){return e.devicePixelRatio},get prefersReducedMotion(){return !!e.matchMedia&&(null==Gt&&(Gt=e.matchMedia("(prefers-reduced-motion: reduce)")),Gt.matches)}};function Jt(t,e,r){r[t]&&-1!==r[t].indexOf(e)||(r[t]=r[t]||[],r[t].push(e));}function Ht(t,e,r){if(r&&r[t]){const n=r[t].indexOf(e);-1!==n&&r[t].splice(n,1);}}class Yt{constructor(t,e={}){C(this,e),this.type=t;}}class Wt extends Yt{constructor(t,e={}){super("error",C({error:t},e));}}class Qt{on(t,e){return this._listeners=this._listeners||{},Jt(t,e,this._listeners),this}off(t,e){return Ht(t,e,this._listeners),Ht(t,e,this._oneTimeListeners),this}once(t,e){return e?(this._oneTimeListeners=this._oneTimeListeners||{},Jt(t,e,this._oneTimeListeners),this):new Promise((e=>this.once(t,e)))}fire(t,e){"string"==typeof t&&(t=new Yt(t,e||{}));const r=t.type;if(this.listens(r)){t.target=this;const e=this._listeners&&this._listeners[r]?this._listeners[r].slice():[];for(const r of e)r.call(this,t);const n=this._oneTimeListeners&&this._oneTimeListeners[r]?this._oneTimeListeners[r].slice():[];for(const e of n)Ht(r,e,this._oneTimeListeners),e.call(this,t);const i=this._eventedParent;i&&(C(t,"function"==typeof this._eventedParentData?this._eventedParentData():this._eventedParentData),i.fire(t));}else t instanceof Wt&&console.error(t.error);return this}listens(t){return !!(this._listeners&&this._listeners[t]&&this._listeners[t].length>0||this._oneTimeListeners&&this._oneTimeListeners[t]&&this._oneTimeListeners[t].length>0||this._eventedParent&&this._eventedParent.listens(t))}setEventedParent(t,e){return this._eventedParent=t,this._eventedParentData=e,this}}var te=JSON.parse('{"$version":8,"$root":{"version":{"required":true,"type":"enum","values":[8]},"name":{"type":"string"},"metadata":{"type":"*"},"center":{"type":"array","value":"number"},"zoom":{"type":"number"},"bearing":{"type":"number","default":0,"period":360,"units":"degrees"},"pitch":{"type":"number","default":0,"units":"degrees"},"light":{"type":"light"},"terrain":{"type":"terrain"},"fog":{"type":"fog"},"sources":{"required":true,"type":"sources"},"sprite":{"type":"string"},"glyphs":{"type":"string"},"transition":{"type":"transition"},"projection":{"type":"projection"},"layers":{"required":true,"type":"array","value":"layer"}},"sources":{"*":{"type":"source"}},"source":["source_vector","source_raster","source_raster_dem","source_geojson","source_video","source_image"],"source_vector":{"type":{"required":true,"type":"enum","values":{"vector":{}}},"url":{"type":"string"},"tiles":{"type":"array","value":"string"},"bounds":{"type":"array","value":"number","length":4,"default":[-180,-85.051129,180,85.051129]},"scheme":{"type":"enum","values":{"xyz":{},"tms":{}},"default":"xyz"},"minzoom":{"type":"number","default":0},"maxzoom":{"type":"number","default":22},"attribution":{"type":"string"},"promoteId":{"type":"promoteId"},"volatile":{"type":"boolean","default":false},"*":{"type":"*"}},"source_raster":{"type":{"required":true,"type":"enum","values":{"raster":{}}},"url":{"type":"string"},"tiles":{"type":"array","value":"string"},"bounds":{"type":"array","value":"number","length":4,"default":[-180,-85.051129,180,85.051129]},"minzoom":{"type":"number","default":0},"maxzoom":{"type":"number","default":22},"tileSize":{"type":"number","default":512,"units":"pixels"},"scheme":{"type":"enum","values":{"xyz":{},"tms":{}},"default":"xyz"},"attribution":{"type":"string"},"volatile":{"type":"boolean","default":false},"*":{"type":"*"}},"source_raster_dem":{"type":{"required":true,"type":"enum","values":{"raster-dem":{}}},"url":{"type":"string"},"tiles":{"type":"array","value":"string"},"bounds":{"type":"array","value":"number","length":4,"default":[-180,-85.051129,180,85.051129]},"minzoom":{"type":"number","default":0},"maxzoom":{"type":"number","default":22},"tileSize":{"type":"number","default":512,"units":"pixels"},"attribution":{"type":"string"},"encoding":{"type":"enum","values":{"terrarium":{},"mapbox":{}},"default":"mapbox"},"volatile":{"type":"boolean","default":false},"*":{"type":"*"}},"source_geojson":{"type":{"required":true,"type":"enum","values":{"geojson":{}}},"data":{"type":"*"},"maxzoom":{"type":"number","default":18},"attribution":{"type":"string"},"buffer":{"type":"number","default":128,"maximum":512,"minimum":0},"filter":{"type":"*"},"tolerance":{"type":"number","default":0.375},"cluster":{"type":"boolean","default":false},"clusterRadius":{"type":"number","default":50,"minimum":0},"clusterMaxZoom":{"type":"number"},"clusterMinPoints":{"type":"number"},"clusterProperties":{"type":"*"},"lineMetrics":{"type":"boolean","default":false},"generateId":{"type":"boolean","default":false},"promoteId":{"type":"promoteId"}},"source_video":{"type":{"required":true,"type":"enum","values":{"video":{}}},"urls":{"required":true,"type":"array","value":"string"},"coordinates":{"required":true,"type":"array","length":4,"value":{"type":"array","length":2,"value":"number"}}},"source_image":{"type":{"required":true,"type":"enum","values":{"image":{}}},"url":{"required":true,"type":"string"},"coordinates":{"required":true,"type":"array","length":4,"value":{"type":"array","length":2,"value":"number"}}},"layer":{"id":{"type":"string","required":true},"type":{"type":"enum","values":{"fill":{},"line":{},"symbol":{},"circle":{},"heatmap":{},"fill-extrusion":{},"raster":{},"hillshade":{},"background":{},"sky":{}},"required":true},"metadata":{"type":"*"},"source":{"type":"string"},"source-layer":{"type":"string"},"minzoom":{"type":"number","minimum":0,"maximum":24},"maxzoom":{"type":"number","minimum":0,"maximum":24},"filter":{"type":"filter"},"layout":{"type":"layout"},"paint":{"type":"paint"}},"layout":["layout_fill","layout_line","layout_circle","layout_heatmap","layout_fill-extrusion","layout_symbol","layout_raster","layout_hillshade","layout_background","layout_sky"],"layout_background":{"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"layout_sky":{"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"layout_fill":{"fill-sort-key":{"type":"number","expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"layout_circle":{"circle-sort-key":{"type":"number","expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"layout_heatmap":{"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"layout_fill-extrusion":{"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"},"fill-extrusion-edge-radius":{"type":"number","private":true,"default":0,"minimum":0,"maximum":1,"property-type":"constant"}},"layout_line":{"line-cap":{"type":"enum","values":{"butt":{},"round":{},"square":{}},"default":"butt","expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"line-join":{"type":"enum","values":{"bevel":{},"round":{},"miter":{}},"default":"miter","expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"line-miter-limit":{"type":"number","default":2,"requires":[{"line-join":"miter"}],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"line-round-limit":{"type":"number","default":1.05,"requires":[{"line-join":"round"}],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"line-sort-key":{"type":"number","expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"layout_symbol":{"symbol-placement":{"type":"enum","values":{"point":{},"line":{},"line-center":{}},"default":"point","expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"symbol-spacing":{"type":"number","default":250,"minimum":1,"units":"pixels","requires":[{"symbol-placement":"line"}],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"symbol-avoid-edges":{"type":"boolean","default":false,"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"symbol-sort-key":{"type":"number","expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"symbol-z-order":{"type":"enum","values":{"auto":{},"viewport-y":{},"source":{}},"default":"auto","expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-allow-overlap":{"type":"boolean","default":false,"requires":["icon-image"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-ignore-placement":{"type":"boolean","default":false,"requires":["icon-image"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-optional":{"type":"boolean","default":false,"requires":["icon-image","text-field"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-rotation-alignment":{"type":"enum","values":{"map":{},"viewport":{},"auto":{}},"default":"auto","requires":["icon-image"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-size":{"type":"number","default":1,"minimum":0,"units":"factor of the original icon size","requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-text-fit":{"type":"enum","values":{"none":{},"width":{},"height":{},"both":{}},"default":"none","requires":["icon-image","text-field"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-text-fit-padding":{"type":"array","value":"number","length":4,"default":[0,0,0,0],"units":"pixels","requires":["icon-image","text-field",{"icon-text-fit":["both","width","height"]}],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"icon-image":{"type":"resolvedImage","tokens":true,"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-rotate":{"type":"number","default":0,"period":360,"units":"degrees","requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-padding":{"type":"number","default":2,"minimum":0,"units":"pixels","requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"icon-keep-upright":{"type":"boolean","default":false,"requires":["icon-image",{"icon-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-offset":{"type":"array","value":"number","length":2,"default":[0,0],"requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-anchor":{"type":"enum","values":{"center":{},"left":{},"right":{},"top":{},"bottom":{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},"default":"center","requires":["icon-image"],"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-pitch-alignment":{"type":"enum","values":{"map":{},"viewport":{},"auto":{}},"default":"auto","requires":["icon-image"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-pitch-alignment":{"type":"enum","values":{"map":{},"viewport":{},"auto":{}},"default":"auto","requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-rotation-alignment":{"type":"enum","values":{"map":{},"viewport":{},"auto":{}},"default":"auto","requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-field":{"type":"formatted","default":"","tokens":true,"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-font":{"type":"array","value":"string","default":["Open Sans Regular","Arial Unicode MS Regular"],"requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-size":{"type":"number","default":16,"minimum":0,"units":"pixels","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-max-width":{"type":"number","default":10,"minimum":0,"units":"ems","requires":["text-field",{"symbol-placement":["point"]}],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-line-height":{"type":"number","default":1.2,"units":"ems","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-letter-spacing":{"type":"number","default":0,"units":"ems","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-justify":{"type":"enum","values":{"auto":{},"left":{},"center":{},"right":{}},"default":"center","requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-radial-offset":{"type":"number","units":"ems","default":0,"requires":["text-field"],"property-type":"data-driven","expression":{"interpolated":true,"parameters":["zoom","feature"]}},"text-variable-anchor":{"type":"array","value":"enum","values":{"center":{},"left":{},"right":{},"top":{},"bottom":{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},"requires":["text-field",{"symbol-placement":["point"]}],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-anchor":{"type":"enum","values":{"center":{},"left":{},"right":{},"top":{},"bottom":{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},"default":"center","requires":["text-field",{"!":"text-variable-anchor"}],"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-max-angle":{"type":"number","default":45,"units":"degrees","requires":["text-field",{"symbol-placement":["line","line-center"]}],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"text-writing-mode":{"type":"array","value":"enum","values":{"horizontal":{},"vertical":{}},"requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-rotate":{"type":"number","default":0,"period":360,"units":"degrees","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-padding":{"type":"number","default":2,"minimum":0,"units":"pixels","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"text-keep-upright":{"type":"boolean","default":true,"requires":["text-field",{"text-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-transform":{"type":"enum","values":{"none":{},"uppercase":{},"lowercase":{}},"default":"none","requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-offset":{"type":"array","value":"number","units":"ems","length":2,"default":[0,0],"requires":["text-field",{"!":"text-radial-offset"}],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-allow-overlap":{"type":"boolean","default":false,"requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-ignore-placement":{"type":"boolean","default":false,"requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-optional":{"type":"boolean","default":false,"requires":["text-field","icon-image"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"layout_raster":{"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"layout_hillshade":{"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"filter":{"type":"array","value":"*"},"filter_symbol":{"type":"boolean","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature","pitch","distance-from-center"]}},"filter_fill":{"type":"boolean","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_line":{"type":"boolean","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_circle":{"type":"boolean","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_fill-extrusion":{"type":"boolean","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_heatmap":{"type":"boolean","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_operator":{"type":"enum","values":{"==":{},"!=":{},">":{},">=":{},"<":{},"<=":{},"in":{},"!in":{},"all":{},"any":{},"none":{},"has":{},"!has":{},"within":{}}},"geometry_type":{"type":"enum","values":{"Point":{},"LineString":{},"Polygon":{}}},"function":{"expression":{"type":"expression"},"stops":{"type":"array","value":"function_stop"},"base":{"type":"number","default":1,"minimum":0},"property":{"type":"string","default":"$zoom"},"type":{"type":"enum","values":{"identity":{},"exponential":{},"interval":{},"categorical":{}},"default":"exponential"},"colorSpace":{"type":"enum","values":{"rgb":{},"lab":{},"hcl":{}},"default":"rgb"},"default":{"type":"*","required":false}},"function_stop":{"type":"array","minimum":0,"maximum":24,"value":["number","color"],"length":2},"expression":{"type":"array","value":"*","minimum":1},"fog":{"range":{"type":"array","default":[0.5,10],"minimum":-20,"maximum":20,"length":2,"value":"number","property-type":"data-constant","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]}},"color":{"type":"color","property-type":"data-constant","default":"#ffffff","expression":{"interpolated":true,"parameters":["zoom"]},"transition":true},"high-color":{"type":"color","property-type":"data-constant","default":"#245cdf","expression":{"interpolated":true,"parameters":["zoom"]},"transition":true},"space-color":{"type":"color","property-type":"data-constant","default":["interpolate",["linear"],["zoom"],4,"#010b19",7,"#367ab9"],"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true},"horizon-blend":{"type":"number","property-type":"data-constant","default":["interpolate",["linear"],["zoom"],4,0.2,7,0.1],"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true},"star-intensity":{"type":"number","property-type":"data-constant","default":["interpolate",["linear"],["zoom"],5,0.35,6,0],"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true}},"light":{"anchor":{"type":"enum","default":"viewport","values":{"map":{},"viewport":{}},"property-type":"data-constant","transition":false,"expression":{"interpolated":false,"parameters":["zoom"]}},"position":{"type":"array","default":[1.15,210,30],"length":3,"value":"number","property-type":"data-constant","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]}},"color":{"type":"color","property-type":"data-constant","default":"#ffffff","expression":{"interpolated":true,"parameters":["zoom"]},"transition":true},"intensity":{"type":"number","property-type":"data-constant","default":0.5,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true}},"projection":{"name":{"type":"enum","values":{"albers":{},"equalEarth":{},"equirectangular":{},"lambertConformalConic":{},"mercator":{},"naturalEarth":{},"winkelTripel":{},"globe":{}},"default":"mercator","required":true},"center":{"type":"array","length":2,"value":"number","property-type":"data-constant","minimum":[-180,-90],"maximum":[180,90],"transition":false,"requires":[{"name":["albers","lambertConformalConic"]}]},"parallels":{"type":"array","length":2,"value":"number","property-type":"data-constant","minimum":[-90,-90],"maximum":[90,90],"transition":false,"requires":[{"name":["albers","lambertConformalConic"]}]}},"terrain":{"source":{"type":"string","required":true},"exaggeration":{"type":"number","property-type":"data-constant","default":1,"minimum":0,"maximum":1000,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true,"requires":["source"]}},"paint":["paint_fill","paint_line","paint_circle","paint_heatmap","paint_fill-extrusion","paint_symbol","paint_raster","paint_hillshade","paint_background","paint_sky"],"paint_fill":{"fill-antialias":{"type":"boolean","default":true,"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"fill-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-color":{"type":"color","default":"#000000","transition":true,"requires":[{"!":"fill-pattern"}],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-outline-color":{"type":"color","transition":true,"requires":[{"!":"fill-pattern"},{"fill-antialias":true}],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"fill-translate-anchor":{"type":"enum","values":{"map":{},"viewport":{}},"default":"map","requires":["fill-translate"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"fill-pattern":{"type":"resolvedImage","transition":false,"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"}},"paint_fill-extrusion":{"fill-extrusion-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"fill-extrusion-color":{"type":"color","default":"#000000","transition":true,"requires":[{"!":"fill-extrusion-pattern"}],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"fill-extrusion-translate-anchor":{"type":"enum","values":{"map":{},"viewport":{}},"default":"map","requires":["fill-extrusion-translate"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"fill-extrusion-pattern":{"type":"resolvedImage","transition":false,"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"fill-extrusion-height":{"type":"number","default":0,"minimum":0,"units":"meters","transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-base":{"type":"number","default":0,"minimum":0,"units":"meters","transition":true,"requires":["fill-extrusion-height"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-vertical-gradient":{"type":"boolean","default":true,"transition":false,"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"fill-extrusion-ambient-occlusion-intensity":{"property-type":"data-constant","type":"number","private":true,"default":0,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true},"fill-extrusion-ambient-occlusion-radius":{"property-type":"data-constant","type":"number","private":true,"default":3,"minimum":0,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true,"requires":["fill-extrusion-edge-radius"]},"fill-extrusion-rounded-roof":{"type":"boolean","default":true,"requires":["fill-extrusion-edge-radius"],"transition":false,"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"}},"paint_line":{"line-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-color":{"type":"color","default":"#000000","transition":true,"requires":[{"!":"line-pattern"}],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"line-translate-anchor":{"type":"enum","values":{"map":{},"viewport":{}},"default":"map","requires":["line-translate"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"line-width":{"type":"number","default":1,"minimum":0,"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-gap-width":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-offset":{"type":"number","default":0,"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-blur":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-dasharray":{"type":"array","value":"number","minimum":0,"transition":false,"units":"line widths","requires":[{"!":"line-pattern"}],"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"line-pattern":{"type":"resolvedImage","transition":false,"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"line-gradient":{"type":"color","transition":false,"requires":[{"!":"line-pattern"},{"source":"geojson","has":{"lineMetrics":true}}],"expression":{"interpolated":true,"parameters":["line-progress"]},"property-type":"color-ramp"},"line-trim-offset":{"type":"array","value":"number","length":2,"default":[0,0],"minimum":[0,0],"maximum":[1,1],"transition":false,"requires":[{"source":"geojson","has":{"lineMetrics":true}}],"property-type":"constant"}},"paint_circle":{"circle-radius":{"type":"number","default":5,"minimum":0,"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-color":{"type":"color","default":"#000000","transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-blur":{"type":"number","default":0,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"circle-translate-anchor":{"type":"enum","values":{"map":{},"viewport":{}},"default":"map","requires":["circle-translate"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"circle-pitch-scale":{"type":"enum","values":{"map":{},"viewport":{}},"default":"map","expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"circle-pitch-alignment":{"type":"enum","values":{"map":{},"viewport":{}},"default":"viewport","expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"circle-stroke-width":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-color":{"type":"color","default":"#000000","transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"}},"paint_heatmap":{"heatmap-radius":{"type":"number","default":30,"minimum":1,"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-weight":{"type":"number","default":1,"minimum":0,"transition":false,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-intensity":{"type":"number","default":1,"minimum":0,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"heatmap-color":{"type":"color","default":["interpolate",["linear"],["heatmap-density"],0,"rgba(0, 0, 255, 0)",0.1,"royalblue",0.3,"cyan",0.5,"lime",0.7,"yellow",1,"red"],"transition":false,"expression":{"interpolated":true,"parameters":["heatmap-density"]},"property-type":"color-ramp"},"heatmap-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"}},"paint_symbol":{"icon-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-color":{"type":"color","default":"#000000","transition":true,"requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-color":{"type":"color","default":"rgba(0, 0, 0, 0)","transition":true,"requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-width":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-blur":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"units":"pixels","requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"icon-translate-anchor":{"type":"enum","values":{"map":{},"viewport":{}},"default":"map","requires":["icon-image","icon-translate"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-color":{"type":"color","default":"#000000","transition":true,"overridable":true,"requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-color":{"type":"color","default":"rgba(0, 0, 0, 0)","transition":true,"requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-width":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-blur":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"units":"pixels","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"text-translate-anchor":{"type":"enum","values":{"map":{},"viewport":{}},"default":"map","requires":["text-field","text-translate"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"}},"paint_raster":{"raster-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-hue-rotate":{"type":"number","default":0,"period":360,"transition":true,"units":"degrees","expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-brightness-min":{"type":"number","default":0,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-brightness-max":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-saturation":{"type":"number","default":0,"minimum":-1,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-contrast":{"type":"number","default":0,"minimum":-1,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-resampling":{"type":"enum","values":{"linear":{},"nearest":{}},"default":"linear","expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"raster-fade-duration":{"type":"number","default":300,"minimum":0,"transition":false,"units":"milliseconds","expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"}},"paint_hillshade":{"hillshade-illumination-direction":{"type":"number","default":335,"minimum":0,"maximum":359,"transition":false,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"hillshade-illumination-anchor":{"type":"enum","values":{"map":{},"viewport":{}},"default":"viewport","expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"hillshade-exaggeration":{"type":"number","default":0.5,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"hillshade-shadow-color":{"type":"color","default":"#000000","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"hillshade-highlight-color":{"type":"color","default":"#FFFFFF","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"hillshade-accent-color":{"type":"color","default":"#000000","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"}},"paint_background":{"background-color":{"type":"color","default":"#000000","transition":true,"requires":[{"!":"background-pattern"}],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"background-pattern":{"type":"resolvedImage","transition":false,"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"background-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"}},"paint_sky":{"sky-type":{"type":"enum","values":{"gradient":{},"atmosphere":{}},"default":"atmosphere","expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"sky-atmosphere-sun":{"type":"array","value":"number","length":2,"units":"degrees","minimum":[0,0],"maximum":[360,180],"transition":false,"requires":[{"sky-type":"atmosphere"}],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"sky-atmosphere-sun-intensity":{"type":"number","requires":[{"sky-type":"atmosphere"}],"default":10,"minimum":0,"maximum":100,"transition":false,"property-type":"data-constant"},"sky-gradient-center":{"type":"array","requires":[{"sky-type":"gradient"}],"value":"number","default":[0,0],"length":2,"units":"degrees","minimum":[0,0],"maximum":[360,180],"transition":false,"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"sky-gradient-radius":{"type":"number","requires":[{"sky-type":"gradient"}],"default":90,"minimum":0,"maximum":180,"transition":false,"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"sky-gradient":{"type":"color","default":["interpolate",["linear"],["sky-radial-progress"],0.8,"#87ceeb",1,"white"],"transition":false,"requires":[{"sky-type":"gradient"}],"expression":{"interpolated":true,"parameters":["sky-radial-progress"]},"property-type":"color-ramp"},"sky-atmosphere-halo-color":{"type":"color","default":"white","transition":false,"requires":[{"sky-type":"atmosphere"}],"property-type":"data-constant"},"sky-atmosphere-color":{"type":"color","default":"white","transition":false,"requires":[{"sky-type":"atmosphere"}],"property-type":"data-constant"},"sky-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"}},"transition":{"duration":{"type":"number","default":300,"minimum":0,"units":"milliseconds"},"delay":{"type":"number","default":0,"minimum":0,"units":"milliseconds"}},"property-type":{"data-driven":{"type":"property-type"},"color-ramp":{"type":"property-type"},"data-constant":{"type":"property-type"},"constant":{"type":"property-type"}},"promoteId":{"*":{"type":"string"}}}');function ee(t,...e){for(const r of e)for(const e in r)t[e]=r[e];return t}function re(t){return t instanceof Number||t instanceof String||t instanceof Boolean?t.valueOf():t}function ne(t){if(Array.isArray(t))return t.map(ne);if(t instanceof Object&&!(t instanceof Number||t instanceof String||t instanceof Boolean)){const e={};for(const r in t)e[r]=ne(t[r]);return e}return re(t)}class ie extends Error{constructor(t,e){super(e),this.message=e,this.key=t;}}var se=ie;class ae{constructor(t,e=[]){this.parent=t,this.bindings={};for(const[t,r]of e)this.bindings[t]=r;}concat(t){return new ae(this,t)}get(t){if(this.bindings[t])return this.bindings[t];if(this.parent)return this.parent.get(t);throw new Error(`${t} not found in scope.`)}has(t){return !!this.bindings[t]||!!this.parent&&this.parent.has(t)}}var oe=ae;const le={kind:"null"},ue={kind:"number"},ce={kind:"string"},he={kind:"boolean"},pe={kind:"color"},de={kind:"object"},fe={kind:"value"},ye={kind:"collator"},me={kind:"formatted"},ge={kind:"resolvedImage"};function xe(t,e){return {kind:"array",itemType:t,N:e}}function ve(t){if("array"===t.kind){const e=ve(t.itemType);return "number"==typeof t.N?`array<${e}, ${t.N}>`:"value"===t.itemType.kind?"array":`array<${e}>`}return t.kind}const be=[le,ue,ce,he,pe,me,de,xe(fe),ge];function we(t,e){if("error"===e.kind)return null;if("array"===t.kind){if("array"===e.kind&&(0===e.N&&"value"===e.itemType.kind||!we(t.itemType,e.itemType))&&("number"!=typeof t.N||t.N===e.N))return null}else {if(t.kind===e.kind)return null;if("value"===t.kind)for(const t of be)if(!we(t,e))return null}return `Expected ${ve(t)} but found ${ve(e)} instead.`}function _e(t,e){return e.some((e=>e.kind===t.kind))}function Ae(t,e){return e.some((e=>"null"===e?null===t:"array"===e?Array.isArray(t):"object"===e?t&&!Array.isArray(t)&&"object"==typeof t:e===typeof t))}var Se,ke={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],rebeccapurple:[102,51,153,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]};function Ie(t){return (t=Math.round(t))<0?0:t>255?255:t}function Me(t){return Ie("%"===t[t.length-1]?parseFloat(t)/100*255:parseInt(t))}function Te(t){return (e="%"===t[t.length-1]?parseFloat(t)/100:parseFloat(t))<0?0:e>1?1:e;var e;}function ze(t,e,r){return r<0?r+=1:r>1&&(r-=1),6*r<1?t+(e-t)*r*6:2*r<1?e:3*r<2?t+(e-t)*(2/3-r)*6:t}try{Se={}.parseCSSColor=function(t){var e,r=t.replace(/ /g,"").toLowerCase();if(r in ke)return ke[r].slice();if("#"===r[0])return 4===r.length?(e=parseInt(r.substr(1),16))>=0&&e<=4095?[(3840&e)>>4|(3840&e)>>8,240&e|(240&e)>>4,15&e|(15&e)<<4,1]:null:7===r.length&&(e=parseInt(r.substr(1),16))>=0&&e<=16777215?[(16711680&e)>>16,(65280&e)>>8,255&e,1]:null;var n=r.indexOf("("),i=r.indexOf(")");if(-1!==n&&i+1===r.length){var s=r.substr(0,n),a=r.substr(n+1,i-(n+1)).split(","),o=1;switch(s){case"rgba":if(4!==a.length)return null;o=Te(a.pop());case"rgb":return 3!==a.length?null:[Me(a[0]),Me(a[1]),Me(a[2]),o];case"hsla":if(4!==a.length)return null;o=Te(a.pop());case"hsl":if(3!==a.length)return null;var l=(parseFloat(a[0])%360+360)%360/360,u=Te(a[1]),c=Te(a[2]),h=c<=.5?c*(u+1):c+u-c*u,p=2*c-h;return [Ie(255*ze(p,h,l+1/3)),Ie(255*ze(p,h,l)),Ie(255*ze(p,h,l-1/3)),o];default:return null}}return null};}catch(t){}class Be{constructor(t,e,r,n=1){this.r=t,this.g=e,this.b=r,this.a=n;}static parse(t){if(!t)return;if(t instanceof Be)return t;if("string"!=typeof t)return;const e=Se(t);return e?new Be(e[0]/255*e[3],e[1]/255*e[3],e[2]/255*e[3],e[3]):void 0}toString(){const[t,e,r,n]=this.toArray();return `rgba(${Math.round(t)},${Math.round(e)},${Math.round(r)},${n})`}toArray(){const{r:t,g:e,b:r,a:n}=this;return 0===n?[0,0,0,0]:[255*t/n,255*e/n,255*r/n,n]}toArray01(){const{r:t,g:e,b:r,a:n}=this;return 0===n?[0,0,0,0]:[t/n,e/n,r/n,n]}toArray01PremultipliedAlpha(){const{r:t,g:e,b:r,a:n}=this;return [t,e,r,n]}}Be.black=new Be(0,0,0,1),Be.white=new Be(1,1,1,1),Be.transparent=new Be(0,0,0,0),Be.red=new Be(1,0,0,1),Be.blue=new Be(0,0,1,1);var Ee=Be;class Ce{constructor(t,e,r){this.sensitivity=t?e?"variant":"case":e?"accent":"base",this.locale=r,this.collator=new Intl.Collator(this.locale?this.locale:[],{sensitivity:this.sensitivity,usage:"search"});}compare(t,e){return this.collator.compare(t,e)}resolvedLocale(){return new Intl.Collator(this.locale?this.locale:[]).resolvedOptions().locale}}class Pe{constructor(t,e,r,n,i){this.text=t.normalize?t.normalize():t,this.image=e,this.scale=r,this.fontStack=n,this.textColor=i;}}class De{constructor(t){this.sections=t;}static fromString(t){return new De([new Pe(t,null,null,null,null)])}isEmpty(){return 0===this.sections.length||!this.sections.some((t=>0!==t.text.length||t.image&&0!==t.image.name.length))}static factory(t){return t instanceof De?t:De.fromString(t)}toString(){return 0===this.sections.length?"":this.sections.map((t=>t.text)).join("")}serialize(){const t=["format"];for(const e of this.sections){if(e.image){t.push(["image",e.image.name]);continue}t.push(e.text);const r={};e.fontStack&&(r["text-font"]=["literal",e.fontStack.split(",")]),e.scale&&(r["font-scale"]=e.scale),e.textColor&&(r["text-color"]=["rgba"].concat(e.textColor.toArray())),t.push(r);}return t}}class Ve{constructor(t){this.name=t.name,this.available=t.available;}toString(){return this.name}static fromString(t){return t?new Ve({name:t,available:!1}):null}serialize(){return ["image",this.name]}}function Le(t,e,r,n){return "number"==typeof t&&t>=0&&t<=255&&"number"==typeof e&&e>=0&&e<=255&&"number"==typeof r&&r>=0&&r<=255?void 0===n||"number"==typeof n&&n>=0&&n<=1?null:`Invalid rgba value [${[t,e,r,n].join(", ")}]: 'a' must be between 0 and 1.`:`Invalid rgba value [${("number"==typeof n?[t,e,r,n]:[t,e,r]).join(", ")}]: 'r', 'g', and 'b' must be between 0 and 255.`}function Fe(t){if(null===t)return !0;if("string"==typeof t)return !0;if("boolean"==typeof t)return !0;if("number"==typeof t)return !0;if(t instanceof Ee)return !0;if(t instanceof Ce)return !0;if(t instanceof De)return !0;if(t instanceof Ve)return !0;if(Array.isArray(t)){for(const e of t)if(!Fe(e))return !1;return !0}if("object"==typeof t){for(const e in t)if(!Fe(t[e]))return !1;return !0}return !1}function Re(t){if(null===t)return le;if("string"==typeof t)return ce;if("boolean"==typeof t)return he;if("number"==typeof t)return ue;if(t instanceof Ee)return pe;if(t instanceof Ce)return ye;if(t instanceof De)return me;if(t instanceof Ve)return ge;if(Array.isArray(t)){const e=t.length;let r;for(const e of t){const t=Re(e);if(r){if(r===t)continue;r=fe;break}r=t;}return xe(r||fe,e)}return de}function Ue(t){const e=typeof t;return null===t?"":"string"===e||"number"===e||"boolean"===e?String(t):t instanceof Ee||t instanceof De||t instanceof Ve?t.toString():JSON.stringify(t)}class $e{constructor(t,e){this.type=t,this.value=e;}static parse(t,e){if(2!==t.length)return e.error(`'literal' expression requires exactly one argument, but found ${t.length-1} instead.`);if(!Fe(t[1]))return e.error("invalid value");const r=t[1];let n=Re(r);const i=e.expectedType;return "array"!==n.kind||0!==n.N||!i||"array"!==i.kind||"number"==typeof i.N&&0!==i.N||(n=i),new $e(n,r)}evaluate(){return this.value}eachChild(){}outputDefined(){return !0}serialize(){return "array"===this.type.kind||"object"===this.type.kind?["literal",this.value]:this.value instanceof Ee?["rgba"].concat(this.value.toArray()):this.value instanceof De?this.value.serialize():this.value}}var je=$e,Oe=class{constructor(t){this.name="ExpressionEvaluationError",this.message=t;}toJSON(){return this.message}};const qe={string:ce,number:ue,boolean:he,object:de};class Ne{constructor(t,e){this.type=t,this.args=e;}static parse(t,e){if(t.length<2)return e.error("Expected at least one argument.");let r,n=1;const i=t[0];if("array"===i){let i,s;if(t.length>2){const r=t[1];if("string"!=typeof r||!(r in qe)||"object"===r)return e.error('The item type argument of "array" must be one of string, number, boolean',1);i=qe[r],n++;}else i=fe;if(t.length>3){if(null!==t[2]&&("number"!=typeof t[2]||t[2]<0||t[2]!==Math.floor(t[2])))return e.error('The length argument to "array" must be a positive integer literal',2);s=t[2],n++;}r=xe(i,s);}else r=qe[i];const s=[];for(;nt.outputDefined()))}serialize(){const t=this.type,e=[t.kind];if("array"===t.kind){const r=t.itemType;if("string"===r.kind||"number"===r.kind||"boolean"===r.kind){e.push(r.kind);const n=t.N;("number"==typeof n||this.args.length>1)&&e.push(n);}}return e.concat(this.args.map((t=>t.serialize())))}}var Ge=Ne;class Ze{constructor(t){this.type=me,this.sections=t;}static parse(t,e){if(t.length<2)return e.error("Expected at least one argument.");const r=t[1];if(!Array.isArray(r)&&"object"==typeof r)return e.error("First argument must be an image or text section.");const n=[];let i=!1;for(let r=1;r<=t.length-1;++r){const s=t[r];if(i&&"object"==typeof s&&!Array.isArray(s)){i=!1;let t=null;if(s["font-scale"]&&(t=e.parse(s["font-scale"],1,ue),!t))return null;let r=null;if(s["text-font"]&&(r=e.parse(s["text-font"],1,xe(ce)),!r))return null;let a=null;if(s["text-color"]&&(a=e.parse(s["text-color"],1,pe),!a))return null;const o=n[n.length-1];o.scale=t,o.font=r,o.textColor=a;}else {const s=e.parse(t[r],1,fe);if(!s)return null;const a=s.type.kind;if("string"!==a&&"value"!==a&&"null"!==a&&"resolvedImage"!==a)return e.error("Formatted text type must be 'string', 'value', 'image' or 'null'.");i=!0,n.push({content:s,scale:null,font:null,textColor:null});}}return new Ze(n)}evaluate(t){return new De(this.sections.map((e=>{const r=e.content.evaluate(t);return Re(r)===ge?new Pe("",r,null,null,null):new Pe(Ue(r),null,e.scale?e.scale.evaluate(t):null,e.font?e.font.evaluate(t).join(","):null,e.textColor?e.textColor.evaluate(t):null)})))}eachChild(t){for(const e of this.sections)t(e.content),e.scale&&t(e.scale),e.font&&t(e.font),e.textColor&&t(e.textColor);}outputDefined(){return !1}serialize(){const t=["format"];for(const e of this.sections){t.push(e.content.serialize());const r={};e.scale&&(r["font-scale"]=e.scale.serialize()),e.font&&(r["text-font"]=e.font.serialize()),e.textColor&&(r["text-color"]=e.textColor.serialize()),t.push(r);}return t}}class Ke{constructor(t){this.type=ge,this.input=t;}static parse(t,e){if(2!==t.length)return e.error("Expected two arguments.");const r=e.parse(t[1],1,ce);return r?new Ke(r):e.error("No image name provided.")}evaluate(t){const e=this.input.evaluate(t),r=Ve.fromString(e);return r&&t.availableImages&&(r.available=t.availableImages.indexOf(e)>-1),r}eachChild(t){t(this.input);}outputDefined(){return !1}serialize(){return ["image",this.input.serialize()]}}const Xe={"to-boolean":he,"to-color":pe,"to-number":ue,"to-string":ce};class Je{constructor(t,e){this.type=t,this.args=e;}static parse(t,e){if(t.length<2)return e.error("Expected at least one argument.");const r=t[0];if(("to-boolean"===r||"to-string"===r)&&2!==t.length)return e.error("Expected one argument.");const n=Xe[r],i=[];for(let r=1;r4?`Invalid rbga value ${JSON.stringify(e)}: expected an array containing either three or four numeric values.`:Le(e[0],e[1],e[2],e[3]),!r))return new Ee(e[0]/255,e[1]/255,e[2]/255,e[3])}throw new Oe(r||`Could not parse color from value '${"string"==typeof e?e:String(JSON.stringify(e))}'`)}if("number"===this.type.kind){let e=null;for(const r of this.args){if(e=r.evaluate(t),null===e)return 0;const n=Number(e);if(!isNaN(n))return n}throw new Oe(`Could not convert ${JSON.stringify(e)} to number.`)}return "formatted"===this.type.kind?De.fromString(Ue(this.args[0].evaluate(t))):"resolvedImage"===this.type.kind?Ve.fromString(Ue(this.args[0].evaluate(t))):Ue(this.args[0].evaluate(t))}eachChild(t){this.args.forEach(t);}outputDefined(){return this.args.every((t=>t.outputDefined()))}serialize(){if("formatted"===this.type.kind)return new Ze([{content:this.args[0],scale:null,font:null,textColor:null}]).serialize();if("resolvedImage"===this.type.kind)return new Ke(this.args[0]).serialize();const t=[`to-${this.type.kind}`];return this.eachChild((e=>{t.push(e.serialize());})),t}}var He=Je;const Ye=["Unknown","Point","LineString","Polygon"];var We=class{constructor(){this.globals=null,this.feature=null,this.featureState=null,this.formattedSection=null,this._parseColorCache={},this.availableImages=null,this.canonical=null,this.featureTileCoord=null,this.featureDistanceData=null;}id(){return this.feature&&void 0!==this.feature.id?this.feature.id:null}geometryType(){return this.feature?"number"==typeof this.feature.type?Ye[this.feature.type]:this.feature.type:null}geometry(){return this.feature&&"geometry"in this.feature?this.feature.geometry:null}canonicalID(){return this.canonical}properties(){return this.feature&&this.feature.properties||{}}distanceFromCenter(){if(this.featureTileCoord&&this.featureDistanceData){const t=this.featureDistanceData.center,e=this.featureDistanceData.scale,{x:r,y:n}=this.featureTileCoord;return this.featureDistanceData.bearing[0]*(r*e-t[0])+this.featureDistanceData.bearing[1]*(n*e-t[1])}return 0}parseColor(t){let e=this._parseColorCache[t];return e||(e=this._parseColorCache[t]=Ee.parse(t)),e}};class Qe{constructor(t,e,r,n){this.name=t,this.type=e,this._evaluate=r,this.args=n;}evaluate(t){return this._evaluate(t,this.args)}eachChild(t){this.args.forEach(t);}outputDefined(){return !1}serialize(){return [this.name].concat(this.args.map((t=>t.serialize())))}static parse(t,e){const r=t[0],n=Qe.definitions[r];if(!n)return e.error(`Unknown expression "${r}". If you wanted a literal array, use ["literal", [...]].`,0);const i=Array.isArray(n)?n[0]:n.type,s=Array.isArray(n)?[[n[1],n[2]]]:n.overloads,a=s.filter((([e])=>!Array.isArray(e)||e.length===t.length-1));let o=null;for(const[n,s]of a){o=new Ir(e.registry,e.path,null,e.scope);const a=[];let l=!1;for(let e=1;e{return e=t,Array.isArray(e)?`(${e.map(ve).join(", ")})`:`(${ve(e.type)}...)`;var e;})).join(" | "),n=[];for(let r=1;r=e[2]||t[1]<=e[1]||t[3]>=e[3])}function sr(t,e){const r=(180+t[0])/360,n=(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+t[1]*Math.PI/360)))/360,i=Math.pow(2,e.z);return [Math.round(r*i*rr),Math.round(n*i*rr)]}function ar(t,e,r){const n=t[0]-e[0],i=t[1]-e[1],s=t[0]-r[0],a=t[1]-r[1];return n*a-s*i==0&&n*s<=0&&i*a<=0}function or(t,e){let r=!1;for(let a=0,o=e.length;a(n=t)[1]!=(s=o[e+1])[1]>n[1]&&n[0]<(s[0]-i[0])*(n[1]-i[1])/(s[1]-i[1])+i[0]&&(r=!r);}}var n,i,s;return r}function lr(t,e){for(let r=0;r0&&o<0||a<0&&o>0}function cr(t,e,r){for(const u of r)for(let r=0;rr[2]){const e=.5*n;let i=t[0]-r[0]>e?-n:r[0]-t[0]>e?n:0;0===i&&(i=t[0]-r[2]>e?-n:r[2]-t[0]>e?n:0),t[0]+=i;}nr(e,t);}function mr(t,e,r,n){const i=Math.pow(2,n.z)*rr,s=[n.x*rr,n.y*rr],a=[];if(!t)return a;for(const n of t)for(const t of n){const n=[t.x+s[0],t.y+s[1]];yr(n,e,r,i),a.push(n);}return a}function gr(t,e,r,n){const i=Math.pow(2,n.z)*rr,s=[n.x*rr,n.y*rr],a=[];if(!t)return a;for(const r of t){const t=[];for(const n of r){const r=[n.x+s[0],n.y+s[1]];nr(e,r),t.push(r);}a.push(t);}if(e[2]-e[0]<=i/2){(o=e)[0]=o[1]=1/0,o[2]=o[3]=-1/0;for(const t of a)for(const n of t)yr(n,e,r,i);}var o;return a}class xr{constructor(t,e){this.type=he,this.geojson=t,this.geometries=e;}static parse(t,e){if(2!==t.length)return e.error(`'within' expression requires exactly one argument, but found ${t.length-1} instead.`);if(Fe(t[1])){const e=t[1];if("FeatureCollection"===e.type)for(let t=0;t{e&&!br(t)&&(e=!1);})),e}function wr(t){if(t instanceof tr&&"feature-state"===t.name)return !1;let e=!0;return t.eachChild((t=>{e&&!wr(t)&&(e=!1);})),e}function _r(t,e){if(t instanceof tr&&e.indexOf(t.name)>=0)return !1;let r=!0;return t.eachChild((t=>{r&&!_r(t,e)&&(r=!1);})),r}class Ar{constructor(t,e){this.type=e.type,this.name=t,this.boundExpression=e;}static parse(t,e){if(2!==t.length||"string"!=typeof t[1])return e.error("'var' expression requires exactly one string literal argument.");const r=t[1];return e.scope.has(r)?new Ar(r,e.scope.get(r)):e.error(`Unknown variable "${r}". Make sure "${r}" has been bound in an enclosing "let" expression before using it.`,1)}evaluate(t){return this.boundExpression.evaluate(t)}eachChild(){}outputDefined(){return !1}serialize(){return ["var",this.name]}}var Sr=Ar;class kr{constructor(t,e=[],r,n=new oe,i=[]){this.registry=t,this.path=e,this.key=e.map((t=>`[${t}]`)).join(""),this.scope=n,this.errors=i,this.expectedType=r;}parse(t,e,r,n,i={}){return e?this.concat(e,r,n)._parse(t,i):this._parse(t,i)}_parse(t,e){function r(t,e,r){return "assert"===r?new Ge(e,[t]):"coerce"===r?new He(e,[t]):t}if(null!==t&&"string"!=typeof t&&"boolean"!=typeof t&&"number"!=typeof t||(t=["literal",t]),Array.isArray(t)){if(0===t.length)return this.error('Expected an array with at least one element. If you wanted a literal array, use ["literal", []].');const n=t[0];if("string"!=typeof n)return this.error(`Expression name must be a string, but found ${typeof n} instead. If you wanted a literal array, use ["literal", [...]].`,0),null;const i=this.registry[n];if(i){let n=i.parse(t,this);if(!n)return null;if(this.expectedType){const t=this.expectedType,i=n.type;if("string"!==t.kind&&"number"!==t.kind&&"boolean"!==t.kind&&"object"!==t.kind&&"array"!==t.kind||"value"!==i.kind)if("color"!==t.kind&&"formatted"!==t.kind&&"resolvedImage"!==t.kind||"value"!==i.kind&&"string"!==i.kind){if(this.checkSubtype(t,i))return null}else n=r(n,t,e.typeAnnotation||"coerce");else n=r(n,t,e.typeAnnotation||"assert");}if(!(n instanceof je)&&"resolvedImage"!==n.type.kind&&Mr(n)){const t=new We;try{n=new je(n.type,n.evaluate(t));}catch(t){return this.error(t.message),null}}return n}return this.error(`Unknown expression "${n}". If you wanted a literal array, use ["literal", [...]].`,0)}return this.error(void 0===t?"'undefined' value invalid. Use null instead.":"object"==typeof t?'Bare objects invalid. Use ["literal", {...}] instead.':`Expected an array, but found ${typeof t} instead.`)}concat(t,e,r){const n="number"==typeof t?this.path.concat(t):this.path,i=r?this.scope.concat(r):this.scope;return new kr(this.registry,n,e||null,i,this.errors)}error(t,...e){const r=`${this.key}${e.map((t=>`[${t}]`)).join("")}`;this.errors.push(new se(r,t));}checkSubtype(t,e){const r=we(t,e);return r&&this.error(r),r}}var Ir=kr;function Mr(t){if(t instanceof Sr)return Mr(t.boundExpression);if(t instanceof tr&&"error"===t.name)return !1;if(t instanceof er)return !1;if(t instanceof vr)return !1;const e=t instanceof He||t instanceof Ge;let r=!0;return t.eachChild((t=>{r=e?r&&Mr(t):r&&t instanceof je;})),!!r&&br(t)&&_r(t,["zoom","heatmap-density","line-progress","sky-radial-progress","accumulated","is-supported-script","pitch","distance-from-center"])}function Tr(t,e){const r=t.length-1;let n,i,s=0,a=r,o=0;for(;s<=a;)if(o=Math.floor((s+a)/2),n=t[o],i=t[o+1],n<=e){if(o===r||ee))throw new Oe("Input is not a number.");a=o-1;}return 0}class zr{constructor(t,e,r){this.type=t,this.input=e,this.labels=[],this.outputs=[];for(const[t,e]of r)this.labels.push(t),this.outputs.push(e);}static parse(t,e){if(t.length-1<4)return e.error(`Expected at least 4 arguments, but found only ${t.length-1}.`);if((t.length-1)%2!=0)return e.error("Expected an even number of arguments.");const r=e.parse(t[1],1,ue);if(!r)return null;const n=[];let i=null;e.expectedType&&"value"!==e.expectedType.kind&&(i=e.expectedType);for(let r=1;r=s)return e.error('Input/output pairs for "step" expressions must be arranged with input values in strictly ascending order.',o);const u=e.parse(a,l,i);if(!u)return null;i=i||u.type,n.push([s,u]);}return new zr(i,r,n)}evaluate(t){const e=this.labels,r=this.outputs;if(1===e.length)return r[0].evaluate(t);const n=this.input.evaluate(t);if(n<=e[0])return r[0].evaluate(t);const i=e.length;return n>=e[i-1]?r[i-1].evaluate(t):r[Tr(e,n)].evaluate(t)}eachChild(t){t(this.input);for(const e of this.outputs)t(e);}outputDefined(){return this.outputs.every((t=>t.outputDefined()))}serialize(){const t=["step",this.input.serialize()];for(let e=0;e0&&t.push(this.labels[e]),t.push(this.outputs[e].serialize());return t}}var Br=zr;function Er(t,e,r){return t*(1-r)+e*r}var Cr=Object.freeze({__proto__:null,array:function(t,e,r){return t.map(((t,n)=>Er(t,e[n],r)))},color:function(t,e,r){return new Ee(Er(t.r,e.r,r),Er(t.g,e.g,r),Er(t.b,e.b,r),Er(t.a,e.a,r))},number:Er});const Pr=.95047,Dr=1.08883,Vr=4/29,Lr=6/29,Fr=3*Lr*Lr,Rr=Lr*Lr*Lr,Ur=Math.PI/180,$r=180/Math.PI;function jr(t){return t>Rr?Math.pow(t,1/3):t/Fr+Vr}function Or(t){return t>Lr?t*t*t:Fr*(t-Vr)}function qr(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function Nr(t){return (t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function Gr(t){const e=Nr(t.r),r=Nr(t.g),n=Nr(t.b),i=jr((.4124564*e+.3575761*r+.1804375*n)/Pr),s=jr((.2126729*e+.7151522*r+.072175*n)/1);return {l:116*s-16,a:500*(i-s),b:200*(s-jr((.0193339*e+.119192*r+.9503041*n)/Dr)),alpha:t.a}}function Zr(t){let e=(t.l+16)/116,r=isNaN(t.a)?e:e+t.a/500,n=isNaN(t.b)?e:e-t.b/200;return e=1*Or(e),r=Pr*Or(r),n=Dr*Or(n),new Ee(qr(3.2404542*r-1.5371385*e-.4985314*n),qr(-.969266*r+1.8760108*e+.041556*n),qr(.0556434*r-.2040259*e+1.0572252*n),t.alpha)}function Kr(t,e,r){const n=e-t;return t+r*(n>180||n<-180?n-360*Math.round(n/360):n)}const Xr={forward:Gr,reverse:Zr,interpolate:function(t,e,r){return {l:Er(t.l,e.l,r),a:Er(t.a,e.a,r),b:Er(t.b,e.b,r),alpha:Er(t.alpha,e.alpha,r)}}},Jr={forward:function(t){const{l:e,a:r,b:n}=Gr(t),i=Math.atan2(n,r)*$r;return {h:i<0?i+360:i,c:Math.sqrt(r*r+n*n),l:e,alpha:t.a}},reverse:function(t){const e=t.h*Ur,r=t.c;return Zr({l:t.l,a:Math.cos(e)*r,b:Math.sin(e)*r,alpha:t.alpha})},interpolate:function(t,e,r){return {h:Kr(t.h,e.h,r),c:Er(t.c,e.c,r),l:Er(t.l,e.l,r),alpha:Er(t.alpha,e.alpha,r)}}};var Hr=Object.freeze({__proto__:null,hcl:Jr,lab:Xr});class Yr{constructor(t,e,r,n,i){this.type=t,this.operator=e,this.interpolation=r,this.input=n,this.labels=[],this.outputs=[];for(const[t,e]of i)this.labels.push(t),this.outputs.push(e);}static interpolationFactor(t,e,r,n){let i=0;if("exponential"===t.name)i=Wr(e,t.base,r,n);else if("linear"===t.name)i=Wr(e,1,r,n);else if("cubic-bezier"===t.name){const s=t.controlPoints;i=new y(s[0],s[1],s[2],s[3]).solve(Wr(e,1,r,n));}return i}static parse(t,e){let[r,n,i,...s]=t;if(!Array.isArray(n)||0===n.length)return e.error("Expected an interpolation type expression.",1);if("linear"===n[0])n={name:"linear"};else if("exponential"===n[0]){const t=n[1];if("number"!=typeof t)return e.error("Exponential interpolation requires a numeric base.",1,1);n={name:"exponential",base:t};}else {if("cubic-bezier"!==n[0])return e.error(`Unknown interpolation type ${String(n[0])}`,1,0);{const t=n.slice(1);if(4!==t.length||t.some((t=>"number"!=typeof t||t<0||t>1)))return e.error("Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.",1);n={name:"cubic-bezier",controlPoints:t};}}if(t.length-1<4)return e.error(`Expected at least 4 arguments, but found only ${t.length-1}.`);if((t.length-1)%2!=0)return e.error("Expected an even number of arguments.");if(i=e.parse(i,2,ue),!i)return null;const a=[];let o=null;"interpolate-hcl"===r||"interpolate-lab"===r?o=pe:e.expectedType&&"value"!==e.expectedType.kind&&(o=e.expectedType);for(let t=0;t=r)return e.error('Input/output pairs for "interpolate" expressions must be arranged with input values in strictly ascending order.',i);const u=e.parse(n,l,o);if(!u)return null;o=o||u.type,a.push([r,u]);}return "number"===o.kind||"color"===o.kind||"array"===o.kind&&"number"===o.itemType.kind&&"number"==typeof o.N?new Yr(o,r,n,i,a):e.error(`Type ${ve(o)} is not interpolatable.`)}evaluate(t){const e=this.labels,r=this.outputs;if(1===e.length)return r[0].evaluate(t);const n=this.input.evaluate(t);if(n<=e[0])return r[0].evaluate(t);const i=e.length;if(n>=e[i-1])return r[i-1].evaluate(t);const s=Tr(e,n),a=Yr.interpolationFactor(this.interpolation,n,e[s],e[s+1]),o=r[s].evaluate(t),l=r[s+1].evaluate(t);return "interpolate"===this.operator?Cr[this.type.kind.toLowerCase()](o,l,a):"interpolate-hcl"===this.operator?Jr.reverse(Jr.interpolate(Jr.forward(o),Jr.forward(l),a)):Xr.reverse(Xr.interpolate(Xr.forward(o),Xr.forward(l),a))}eachChild(t){t(this.input);for(const e of this.outputs)t(e);}outputDefined(){return this.outputs.every((t=>t.outputDefined()))}serialize(){let t;t="linear"===this.interpolation.name?["linear"]:"exponential"===this.interpolation.name?1===this.interpolation.base?["linear"]:["exponential",this.interpolation.base]:["cubic-bezier"].concat(this.interpolation.controlPoints);const e=[this.operator,t,this.input.serialize()];for(let t=0;twe(n,t.type)));return new tn(s?fe:r,i)}evaluate(t){let e,r=null,n=0;for(const i of this.args){if(n++,r=i.evaluate(t),r&&r instanceof Ve&&!r.available&&(e||(e=r),r=null,n===this.args.length))return e;if(null!==r)break}return r}eachChild(t){this.args.forEach(t);}outputDefined(){return this.args.every((t=>t.outputDefined()))}serialize(){const t=["coalesce"];return this.eachChild((e=>{t.push(e.serialize());})),t}}var en=tn;class rn{constructor(t,e){this.type=e.type,this.bindings=[].concat(t),this.result=e;}evaluate(t){return this.result.evaluate(t)}eachChild(t){for(const e of this.bindings)t(e[1]);t(this.result);}static parse(t,e){if(t.length<4)return e.error(`Expected at least 3 arguments, but found ${t.length-1} instead.`);const r=[];for(let n=1;n=r.length)throw new Oe(`Array index out of bounds: ${e} > ${r.length-1}.`);if(e!==Math.floor(e))throw new Oe(`Array index must be an integer, but found ${e} instead.`);return r[e]}eachChild(t){t(this.index),t(this.input);}outputDefined(){return !1}serialize(){return ["at",this.index.serialize(),this.input.serialize()]}}var an=sn;class on{constructor(t,e){this.type=he,this.needle=t,this.haystack=e;}static parse(t,e){if(3!==t.length)return e.error(`Expected 2 arguments, but found ${t.length-1} instead.`);const r=e.parse(t[1],1,fe),n=e.parse(t[2],2,fe);return r&&n?_e(r.type,[he,ce,ue,le,fe])?new on(r,n):e.error(`Expected first argument to be of type boolean, string, number or null, but found ${ve(r.type)} instead`):null}evaluate(t){const e=this.needle.evaluate(t),r=this.haystack.evaluate(t);if(null==r)return !1;if(!Ae(e,["boolean","string","number","null"]))throw new Oe(`Expected first argument to be of type boolean, string, number or null, but found ${ve(Re(e))} instead.`);if(!Ae(r,["string","array"]))throw new Oe(`Expected second argument to be of type array or string, but found ${ve(Re(r))} instead.`);return r.indexOf(e)>=0}eachChild(t){t(this.needle),t(this.haystack);}outputDefined(){return !0}serialize(){return ["in",this.needle.serialize(),this.haystack.serialize()]}}var ln=on;class un{constructor(t,e,r){this.type=ue,this.needle=t,this.haystack=e,this.fromIndex=r;}static parse(t,e){if(t.length<=2||t.length>=5)return e.error(`Expected 3 or 4 arguments, but found ${t.length-1} instead.`);const r=e.parse(t[1],1,fe),n=e.parse(t[2],2,fe);if(!r||!n)return null;if(!_e(r.type,[he,ce,ue,le,fe]))return e.error(`Expected first argument to be of type boolean, string, number or null, but found ${ve(r.type)} instead`);if(4===t.length){const i=e.parse(t[3],3,ue);return i?new un(r,n,i):null}return new un(r,n)}evaluate(t){const e=this.needle.evaluate(t),r=this.haystack.evaluate(t);if(!Ae(e,["boolean","string","number","null"]))throw new Oe(`Expected first argument to be of type boolean, string, number or null, but found ${ve(Re(e))} instead.`);if(!Ae(r,["string","array"]))throw new Oe(`Expected second argument to be of type array or string, but found ${ve(Re(r))} instead.`);if(this.fromIndex){const n=this.fromIndex.evaluate(t);return r.indexOf(e,n)}return r.indexOf(e)}eachChild(t){t(this.needle),t(this.haystack),this.fromIndex&&t(this.fromIndex);}outputDefined(){return !1}serialize(){if(null!=this.fromIndex&&void 0!==this.fromIndex){const t=this.fromIndex.serialize();return ["index-of",this.needle.serialize(),this.haystack.serialize(),t]}return ["index-of",this.needle.serialize(),this.haystack.serialize()]}}var cn=un;class hn{constructor(t,e,r,n,i,s){this.inputType=t,this.type=e,this.input=r,this.cases=n,this.outputs=i,this.otherwise=s;}static parse(t,e){if(t.length<5)return e.error(`Expected at least 4 arguments, but found only ${t.length-1}.`);if(t.length%2!=1)return e.error("Expected an even number of arguments.");let r,n;e.expectedType&&"value"!==e.expectedType.kind&&(n=e.expectedType);const i={},s=[];for(let a=2;aNumber.MAX_SAFE_INTEGER)return u.error(`Branch labels must be integers no larger than ${Number.MAX_SAFE_INTEGER}.`);if("number"==typeof t&&Math.floor(t)!==t)return u.error("Numeric branch labels must be integer values.");if(r){if(u.checkSubtype(r,Re(t)))return null}else r=Re(t);if(void 0!==i[String(t)])return u.error("Branch labels must be unique.");i[String(t)]=s.length;}const c=e.parse(l,a,n);if(!c)return null;n=n||c.type,s.push(c);}const a=e.parse(t[1],1,fe);if(!a)return null;const o=e.parse(t[t.length-1],t.length-1,n);return o?"value"!==a.type.kind&&e.concat(1).checkSubtype(r,a.type)?null:new hn(r,n,a,i,s,o):null}evaluate(t){const e=this.input.evaluate(t);return (Re(e)===this.inputType&&this.outputs[this.cases[e]]||this.otherwise).evaluate(t)}eachChild(t){t(this.input),this.outputs.forEach(t),t(this.otherwise);}outputDefined(){return this.outputs.every((t=>t.outputDefined()))&&this.otherwise.outputDefined()}serialize(){const t=["match",this.input.serialize()],e=Object.keys(this.cases).sort(),r=[],n={};for(const t of e){const e=n[this.cases[t]];void 0===e?(n[this.cases[t]]=r.length,r.push([this.cases[t],[t]])):r[e][1].push(t);}const i=t=>"number"===this.inputType.kind?Number(t):t;for(const[e,n]of r)t.push(1===n.length?i(n[0]):n.map(i)),t.push(this.outputs[e].serialize());return t.push(this.otherwise.serialize()),t}}var pn=hn;class dn{constructor(t,e,r){this.type=t,this.branches=e,this.otherwise=r;}static parse(t,e){if(t.length<4)return e.error(`Expected at least 3 arguments, but found only ${t.length-1}.`);if(t.length%2!=0)return e.error("Expected an odd number of arguments.");let r;e.expectedType&&"value"!==e.expectedType.kind&&(r=e.expectedType);const n=[];for(let i=1;ie.outputDefined()))&&this.otherwise.outputDefined()}serialize(){const t=["case"];return this.eachChild((e=>{t.push(e.serialize());})),t}}var fn=dn;class yn{constructor(t,e,r,n){this.type=t,this.input=e,this.beginIndex=r,this.endIndex=n;}static parse(t,e){if(t.length<=2||t.length>=5)return e.error(`Expected 3 or 4 arguments, but found ${t.length-1} instead.`);const r=e.parse(t[1],1,fe),n=e.parse(t[2],2,ue);if(!r||!n)return null;if(!_e(r.type,[xe(fe),ce,fe]))return e.error(`Expected first argument to be of type array or string, but found ${ve(r.type)} instead`);if(4===t.length){const i=e.parse(t[3],3,ue);return i?new yn(r.type,r,n,i):null}return new yn(r.type,r,n)}evaluate(t){const e=this.input.evaluate(t),r=this.beginIndex.evaluate(t);if(!Ae(e,["string","array"]))throw new Oe(`Expected first argument to be of type array or string, but found ${ve(Re(e))} instead.`);if(this.endIndex){const n=this.endIndex.evaluate(t);return e.slice(r,n)}return e.slice(r)}eachChild(t){t(this.input),t(this.beginIndex),this.endIndex&&t(this.endIndex);}outputDefined(){return !1}serialize(){if(null!=this.endIndex&&void 0!==this.endIndex){const t=this.endIndex.serialize();return ["slice",this.input.serialize(),this.beginIndex.serialize(),t]}return ["slice",this.input.serialize(),this.beginIndex.serialize()]}}var mn=yn;function gn(t,e){return "=="===t||"!="===t?"boolean"===e.kind||"string"===e.kind||"number"===e.kind||"null"===e.kind||"value"===e.kind:"string"===e.kind||"number"===e.kind||"value"===e.kind}function xn(t,e,r,n){return 0===n.compare(e,r)}function vn(t,e,r){const n="=="!==t&&"!="!==t;return class i{constructor(t,e,r){this.type=he,this.lhs=t,this.rhs=e,this.collator=r,this.hasUntypedArgument="value"===t.type.kind||"value"===e.type.kind;}static parse(t,e){if(3!==t.length&&4!==t.length)return e.error("Expected two or three arguments.");const r=t[0];let s=e.parse(t[1],1,fe);if(!s)return null;if(!gn(r,s.type))return e.concat(1).error(`"${r}" comparisons are not supported for type '${ve(s.type)}'.`);let a=e.parse(t[2],2,fe);if(!a)return null;if(!gn(r,a.type))return e.concat(2).error(`"${r}" comparisons are not supported for type '${ve(a.type)}'.`);if(s.type.kind!==a.type.kind&&"value"!==s.type.kind&&"value"!==a.type.kind)return e.error(`Cannot compare types '${ve(s.type)}' and '${ve(a.type)}'.`);n&&("value"===s.type.kind&&"value"!==a.type.kind?s=new Ge(a.type,[s]):"value"!==s.type.kind&&"value"===a.type.kind&&(a=new Ge(s.type,[a])));let o=null;if(4===t.length){if("string"!==s.type.kind&&"string"!==a.type.kind&&"value"!==s.type.kind&&"value"!==a.type.kind)return e.error("Cannot use collator to compare non-string types.");if(o=e.parse(t[3],3,ye),!o)return null}return new i(s,a,o)}evaluate(i){const s=this.lhs.evaluate(i),a=this.rhs.evaluate(i);if(n&&this.hasUntypedArgument){const e=Re(s),r=Re(a);if(e.kind!==r.kind||"string"!==e.kind&&"number"!==e.kind)throw new Oe(`Expected arguments for "${t}" to be (string, string) or (number, number), but found (${e.kind}, ${r.kind}) instead.`)}if(this.collator&&!n&&this.hasUntypedArgument){const t=Re(s),r=Re(a);if("string"!==t.kind||"string"!==r.kind)return e(i,s,a)}return this.collator?r(i,s,a,this.collator.evaluate(i)):e(i,s,a)}eachChild(t){t(this.lhs),t(this.rhs),this.collator&&t(this.collator);}outputDefined(){return !0}serialize(){const e=[t];return this.eachChild((t=>{e.push(t.serialize());})),e}}}const bn=vn("==",(function(t,e,r){return e===r}),xn),wn=vn("!=",(function(t,e,r){return e!==r}),(function(t,e,r,n){return !xn(0,e,r,n)})),_n=vn("<",(function(t,e,r){return e",(function(t,e,r){return e>r}),(function(t,e,r,n){return n.compare(e,r)>0})),Sn=vn("<=",(function(t,e,r){return e<=r}),(function(t,e,r,n){return n.compare(e,r)<=0})),kn=vn(">=",(function(t,e,r){return e>=r}),(function(t,e,r,n){return n.compare(e,r)>=0}));class In{constructor(t,e,r,n,i,s){this.type=ce,this.number=t,this.locale=e,this.currency=r,this.unit=n,this.minFractionDigits=i,this.maxFractionDigits=s;}static parse(t,e){if(3!==t.length)return e.error("Expected two arguments.");const r=e.parse(t[1],1,ue);if(!r)return null;const n=t[2];if("object"!=typeof n||Array.isArray(n))return e.error("NumberFormat options argument must be an object.");let i=null;if(n.locale&&(i=e.parse(n.locale,1,ce),!i))return null;let s=null;if(n.currency&&(s=e.parse(n.currency,1,ce),!s))return null;let a=null;if(n.unit&&(a=e.parse(n.unit,1,ce),!a))return null;let o=null;if(n["min-fraction-digits"]&&(o=e.parse(n["min-fraction-digits"],1,ue),!o))return null;let l=null;return n["max-fraction-digits"]&&(l=e.parse(n["max-fraction-digits"],1,ue),!l)?null:new In(r,i,s,a,o,l)}evaluate(t){return new Intl.NumberFormat(this.locale?this.locale.evaluate(t):[],{style:(this.currency?"currency":this.unit&&"unit")||"decimal",currency:this.currency?this.currency.evaluate(t):void 0,unit:this.unit?this.unit.evaluate(t):void 0,minimumFractionDigits:this.minFractionDigits?this.minFractionDigits.evaluate(t):void 0,maximumFractionDigits:this.maxFractionDigits?this.maxFractionDigits.evaluate(t):void 0}).format(this.number.evaluate(t))}eachChild(t){t(this.number),this.locale&&t(this.locale),this.currency&&t(this.currency),this.unit&&t(this.unit),this.minFractionDigits&&t(this.minFractionDigits),this.maxFractionDigits&&t(this.maxFractionDigits);}outputDefined(){return !1}serialize(){const t={};return this.locale&&(t.locale=this.locale.serialize()),this.currency&&(t.currency=this.currency.serialize()),this.unit&&(t.unit=this.unit.serialize()),this.minFractionDigits&&(t["min-fraction-digits"]=this.minFractionDigits.serialize()),this.maxFractionDigits&&(t["max-fraction-digits"]=this.maxFractionDigits.serialize()),["number-format",this.number.serialize(),t]}}class Mn{constructor(t){this.type=ue,this.input=t;}static parse(t,e){if(2!==t.length)return e.error(`Expected 1 argument, but found ${t.length-1} instead.`);const r=e.parse(t[1],1);return r?"array"!==r.type.kind&&"string"!==r.type.kind&&"value"!==r.type.kind?e.error(`Expected argument of type string or array, but found ${ve(r.type)} instead.`):new Mn(r):null}evaluate(t){const e=this.input.evaluate(t);if("string"==typeof e)return e.length;if(Array.isArray(e))return e.length;throw new Oe(`Expected value to be of type string or array, but found ${ve(Re(e))} instead.`)}eachChild(t){t(this.input);}outputDefined(){return !1}serialize(){const t=["length"];return this.eachChild((e=>{t.push(e.serialize());})),t}}const Tn={"==":bn,"!=":wn,">":An,"<":_n,">=":kn,"<=":Sn,array:Ge,at:an,boolean:Ge,case:fn,coalesce:en,collator:er,format:Ze,image:Ke,in:ln,"index-of":cn,interpolate:Qr,"interpolate-hcl":Qr,"interpolate-lab":Qr,length:Mn,let:nn,literal:je,match:pn,number:Ge,"number-format":In,object:Ge,slice:mn,step:Br,string:Ge,"to-boolean":He,"to-color":He,"to-number":He,"to-string":He,var:Sr,within:vr};function zn(t,[e,r,n,i]){e=e.evaluate(t),r=r.evaluate(t),n=n.evaluate(t);const s=i?i.evaluate(t):1,a=Le(e,r,n,s);if(a)throw new Oe(a);return new Ee(e/255*s,r/255*s,n/255*s,s)}function Bn(t,e){return t in e}function En(t,e){const r=e[t];return void 0===r?null:r}function Cn(t){return {type:t}}tr.register(Tn,{error:[{kind:"error"},[ce],(t,[e])=>{throw new Oe(e.evaluate(t))}],typeof:[ce,[fe],(t,[e])=>ve(Re(e.evaluate(t)))],"to-rgba":[xe(ue,4),[pe],(t,[e])=>e.evaluate(t).toArray()],rgb:[pe,[ue,ue,ue],zn],rgba:[pe,[ue,ue,ue,ue],zn],has:{type:he,overloads:[[[ce],(t,[e])=>Bn(e.evaluate(t),t.properties())],[[ce,de],(t,[e,r])=>Bn(e.evaluate(t),r.evaluate(t))]]},get:{type:fe,overloads:[[[ce],(t,[e])=>En(e.evaluate(t),t.properties())],[[ce,de],(t,[e,r])=>En(e.evaluate(t),r.evaluate(t))]]},"feature-state":[fe,[ce],(t,[e])=>En(e.evaluate(t),t.featureState||{})],properties:[de,[],t=>t.properties()],"geometry-type":[ce,[],t=>t.geometryType()],id:[fe,[],t=>t.id()],zoom:[ue,[],t=>t.globals.zoom],pitch:[ue,[],t=>t.globals.pitch||0],"distance-from-center":[ue,[],t=>t.distanceFromCenter()],"heatmap-density":[ue,[],t=>t.globals.heatmapDensity||0],"line-progress":[ue,[],t=>t.globals.lineProgress||0],"sky-radial-progress":[ue,[],t=>t.globals.skyRadialProgress||0],accumulated:[fe,[],t=>void 0===t.globals.accumulated?null:t.globals.accumulated],"+":[ue,Cn(ue),(t,e)=>{let r=0;for(const n of e)r+=n.evaluate(t);return r}],"*":[ue,Cn(ue),(t,e)=>{let r=1;for(const n of e)r*=n.evaluate(t);return r}],"-":{type:ue,overloads:[[[ue,ue],(t,[e,r])=>e.evaluate(t)-r.evaluate(t)],[[ue],(t,[e])=>-e.evaluate(t)]]},"/":[ue,[ue,ue],(t,[e,r])=>e.evaluate(t)/r.evaluate(t)],"%":[ue,[ue,ue],(t,[e,r])=>e.evaluate(t)%r.evaluate(t)],ln2:[ue,[],()=>Math.LN2],pi:[ue,[],()=>Math.PI],e:[ue,[],()=>Math.E],"^":[ue,[ue,ue],(t,[e,r])=>Math.pow(e.evaluate(t),r.evaluate(t))],sqrt:[ue,[ue],(t,[e])=>Math.sqrt(e.evaluate(t))],log10:[ue,[ue],(t,[e])=>Math.log(e.evaluate(t))/Math.LN10],ln:[ue,[ue],(t,[e])=>Math.log(e.evaluate(t))],log2:[ue,[ue],(t,[e])=>Math.log(e.evaluate(t))/Math.LN2],sin:[ue,[ue],(t,[e])=>Math.sin(e.evaluate(t))],cos:[ue,[ue],(t,[e])=>Math.cos(e.evaluate(t))],tan:[ue,[ue],(t,[e])=>Math.tan(e.evaluate(t))],asin:[ue,[ue],(t,[e])=>Math.asin(e.evaluate(t))],acos:[ue,[ue],(t,[e])=>Math.acos(e.evaluate(t))],atan:[ue,[ue],(t,[e])=>Math.atan(e.evaluate(t))],min:[ue,Cn(ue),(t,e)=>Math.min(...e.map((e=>e.evaluate(t))))],max:[ue,Cn(ue),(t,e)=>Math.max(...e.map((e=>e.evaluate(t))))],abs:[ue,[ue],(t,[e])=>Math.abs(e.evaluate(t))],round:[ue,[ue],(t,[e])=>{const r=e.evaluate(t);return r<0?-Math.round(-r):Math.round(r)}],floor:[ue,[ue],(t,[e])=>Math.floor(e.evaluate(t))],ceil:[ue,[ue],(t,[e])=>Math.ceil(e.evaluate(t))],"filter-==":[he,[ce,fe],(t,[e,r])=>t.properties()[e.value]===r.value],"filter-id-==":[he,[fe],(t,[e])=>t.id()===e.value],"filter-type-==":[he,[ce],(t,[e])=>t.geometryType()===e.value],"filter-<":[he,[ce,fe],(t,[e,r])=>{const n=t.properties()[e.value],i=r.value;return typeof n==typeof i&&n{const r=t.id(),n=e.value;return typeof r==typeof n&&r":[he,[ce,fe],(t,[e,r])=>{const n=t.properties()[e.value],i=r.value;return typeof n==typeof i&&n>i}],"filter-id->":[he,[fe],(t,[e])=>{const r=t.id(),n=e.value;return typeof r==typeof n&&r>n}],"filter-<=":[he,[ce,fe],(t,[e,r])=>{const n=t.properties()[e.value],i=r.value;return typeof n==typeof i&&n<=i}],"filter-id-<=":[he,[fe],(t,[e])=>{const r=t.id(),n=e.value;return typeof r==typeof n&&r<=n}],"filter->=":[he,[ce,fe],(t,[e,r])=>{const n=t.properties()[e.value],i=r.value;return typeof n==typeof i&&n>=i}],"filter-id->=":[he,[fe],(t,[e])=>{const r=t.id(),n=e.value;return typeof r==typeof n&&r>=n}],"filter-has":[he,[fe],(t,[e])=>e.value in t.properties()],"filter-has-id":[he,[],t=>null!==t.id()&&void 0!==t.id()],"filter-type-in":[he,[xe(ce)],(t,[e])=>e.value.indexOf(t.geometryType())>=0],"filter-id-in":[he,[xe(fe)],(t,[e])=>e.value.indexOf(t.id())>=0],"filter-in-small":[he,[ce,xe(fe)],(t,[e,r])=>r.value.indexOf(t.properties()[e.value])>=0],"filter-in-large":[he,[ce,xe(fe)],(t,[e,r])=>function(t,e,r,n){for(;r<=n;){const i=r+n>>1;if(e[i]===t)return !0;e[i]>t?n=i-1:r=i+1;}return !1}(t.properties()[e.value],r.value,0,r.value.length-1)],all:{type:he,overloads:[[[he,he],(t,[e,r])=>e.evaluate(t)&&r.evaluate(t)],[Cn(he),(t,e)=>{for(const r of e)if(!r.evaluate(t))return !1;return !0}]]},any:{type:he,overloads:[[[he,he],(t,[e,r])=>e.evaluate(t)||r.evaluate(t)],[Cn(he),(t,e)=>{for(const r of e)if(r.evaluate(t))return !0;return !1}]]},"!":[he,[he],(t,[e])=>!e.evaluate(t)],"is-supported-script":[he,[ce],(t,[e])=>{const r=t.globals&&t.globals.isSupportedScript;return !r||r(e.evaluate(t))}],upcase:[ce,[ce],(t,[e])=>e.evaluate(t).toUpperCase()],downcase:[ce,[ce],(t,[e])=>e.evaluate(t).toLowerCase()],concat:[ce,Cn(fe),(t,e)=>e.map((e=>Ue(e.evaluate(t)))).join("")],"resolved-locale":[ce,[ye],(t,[e])=>e.evaluate(t).resolvedLocale()]});var Pn=Tn;function Dn(t){return {result:"success",value:t}}function Vn(t){return {result:"error",value:t}}function Ln(t){return "data-driven"===t["property-type"]}function Fn(t){return !!t.expression&&t.expression.parameters.indexOf("zoom")>-1}function Rn(t){return !!t.expression&&t.expression.interpolated}function Un(t){return t instanceof Number?"number":t instanceof String?"string":t instanceof Boolean?"boolean":Array.isArray(t)?"array":null===t?"null":typeof t}function $n(t){return "object"==typeof t&&null!==t&&!Array.isArray(t)}function jn(t){return t}function On(t,e){const r="color"===e.type,n=t.stops&&"object"==typeof t.stops[0][0],i=n||!(n||void 0!==t.property),s=t.type||(Rn(e)?"exponential":"interval");if(r&&((t=ee({},t)).stops&&(t.stops=t.stops.map((t=>[t[0],Ee.parse(t[1])]))),t.default=Ee.parse(t.default?t.default:e.default)),t.colorSpace&&"rgb"!==t.colorSpace&&!Hr[t.colorSpace])throw new Error(`Unknown color space: ${t.colorSpace}`);let a,o,l;if("exponential"===s)a=Zn;else if("interval"===s)a=Gn;else if("categorical"===s){a=Nn,o=Object.create(null);for(const e of t.stops)o[e[0]]=e[1];l=typeof t.stops[0][0];}else {if("identity"!==s)throw new Error(`Unknown function type "${s}"`);a=Kn;}if(n){const r={},n=[];for(let e=0;et[0])),evaluate:({zoom:r},n)=>Zn({stops:i,base:t.base},e,r).evaluate(r,n)}}if(i){const r="exponential"===s?{name:"exponential",base:void 0!==t.base?t.base:1}:null;return {kind:"camera",interpolationType:r,interpolationFactor:Qr.interpolationFactor.bind(void 0,r),zoomStops:t.stops.map((t=>t[0])),evaluate:({zoom:r})=>a(t,e,r,o,l)}}return {kind:"source",evaluate(r,n){const i=n&&n.properties?n.properties[t.property]:void 0;return void 0===i?qn(t.default,e.default):a(t,e,i,o,l)}}}function qn(t,e,r){return void 0!==t?t:void 0!==e?e:void 0!==r?r:void 0}function Nn(t,e,r,n,i){return qn(typeof r===i?n[r]:void 0,t.default,e.default)}function Gn(t,e,r){if("number"!==Un(r))return qn(t.default,e.default);const n=t.stops.length;if(1===n)return t.stops[0][1];if(r<=t.stops[0][0])return t.stops[0][1];if(r>=t.stops[n-1][0])return t.stops[n-1][1];const i=Tr(t.stops.map((t=>t[0])),r);return t.stops[i][1]}function Zn(t,e,r){const n=void 0!==t.base?t.base:1;if("number"!==Un(r))return qn(t.default,e.default);const i=t.stops.length;if(1===i)return t.stops[0][1];if(r<=t.stops[0][0])return t.stops[0][1];if(r>=t.stops[i-1][0])return t.stops[i-1][1];const s=Tr(t.stops.map((t=>t[0])),r),a=function(t,e,r,n){const i=n-r,s=t-r;return 0===i?0:1===e?s/i:(Math.pow(e,s)-1)/(Math.pow(e,i)-1)}(r,n,t.stops[s][0],t.stops[s+1][0]),o=t.stops[s][1],l=t.stops[s+1][1];let u=Cr[e.type]||jn;if(t.colorSpace&&"rgb"!==t.colorSpace){const e=Hr[t.colorSpace];u=(t,r)=>e.reverse(e.interpolate(e.forward(t),e.forward(r),a));}return "function"==typeof o.evaluate?{evaluate(...t){const e=o.evaluate.apply(void 0,t),r=l.evaluate.apply(void 0,t);if(void 0!==e&&void 0!==r)return u(e,r,a)}}:u(o,l,a)}function Kn(t,e,r){return "color"===e.type?r=Ee.parse(r):"formatted"===e.type?r=De.fromString(r.toString()):"resolvedImage"===e.type?r=Ve.fromString(r.toString()):Un(r)===e.type||"enum"===e.type&&e.values[r]||(r=void 0),qn(r,t.default,e.default)}class Xn{constructor(t,e){this.expression=t,this._warningHistory={},this._evaluator=new We,this._defaultValue=e?function(t){return "color"===t.type&&($n(t.default)||Array.isArray(t.default))?new Ee(0,0,0,0):"color"===t.type?Ee.parse(t.default)||null:void 0===t.default?null:t.default}(e):null,this._enumValues=e&&"enum"===e.type?e.values:null;}evaluateWithoutErrorHandling(t,e,r,n,i,s,a,o){return this._evaluator.globals=t,this._evaluator.feature=e,this._evaluator.featureState=r,this._evaluator.canonical=n||null,this._evaluator.availableImages=i||null,this._evaluator.formattedSection=s,this._evaluator.featureTileCoord=a||null,this._evaluator.featureDistanceData=o||null,this.expression.evaluate(this._evaluator)}evaluate(t,e,r,n,i,s,a,o){this._evaluator.globals=t,this._evaluator.feature=e||null,this._evaluator.featureState=r||null,this._evaluator.canonical=n||null,this._evaluator.availableImages=i||null,this._evaluator.formattedSection=s||null,this._evaluator.featureTileCoord=a||null,this._evaluator.featureDistanceData=o||null;try{const t=this.expression.evaluate(this._evaluator);if(null==t||"number"==typeof t&&t!=t)return this._defaultValue;if(this._enumValues&&!(t in this._enumValues))throw new Oe(`Expected value to be one of ${Object.keys(this._enumValues).map((t=>JSON.stringify(t))).join(", ")}, but found ${JSON.stringify(t)} instead.`);return t}catch(t){return this._warningHistory[t.message]||(this._warningHistory[t.message]=!0,"undefined"!=typeof console&&console.warn(t.message)),this._defaultValue}}}function Jn(t){return Array.isArray(t)&&t.length>0&&"string"==typeof t[0]&&t[0]in Pn}function Hn(t,e){const r=new Ir(Pn,[],e?function(t){const e={color:pe,string:ce,number:ue,enum:ce,boolean:he,formatted:me,resolvedImage:ge};return "array"===t.type?xe(e[t.value]||fe,t.length):e[t.type]}(e):void 0),n=r.parse(t,void 0,void 0,void 0,e&&"string"===e.type?{typeAnnotation:"coerce"}:void 0);return n?Dn(new Xn(n,e)):Vn(r.errors)}class Yn{constructor(t,e){this.kind=t,this._styleExpression=e,this.isStateDependent="constant"!==t&&!wr(e.expression);}evaluateWithoutErrorHandling(t,e,r,n,i,s){return this._styleExpression.evaluateWithoutErrorHandling(t,e,r,n,i,s)}evaluate(t,e,r,n,i,s){return this._styleExpression.evaluate(t,e,r,n,i,s)}}class Wn{constructor(t,e,r,n){this.kind=t,this.zoomStops=r,this._styleExpression=e,this.isStateDependent="camera"!==t&&!wr(e.expression),this.interpolationType=n;}evaluateWithoutErrorHandling(t,e,r,n,i,s){return this._styleExpression.evaluateWithoutErrorHandling(t,e,r,n,i,s)}evaluate(t,e,r,n,i,s){return this._styleExpression.evaluate(t,e,r,n,i,s)}interpolationFactor(t,e,r){return this.interpolationType?Qr.interpolationFactor(this.interpolationType,t,e,r):0}}function Qn(t,e){if("error"===(t=Hn(t,e)).result)return t;const r=t.value.expression,n=br(r);if(!n&&!Ln(e))return Vn([new se("","data expressions not supported")]);const i=_r(r,["zoom","pitch","distance-from-center"]);if(!i&&!Fn(e))return Vn([new se("","zoom expressions not supported")]);const s=ei(r);return s||i?s instanceof se?Vn([s]):s instanceof Qr&&!Rn(e)?Vn([new se("",'"interpolate" expressions cannot be used with this property')]):Dn(s?new Wn(n?"camera":"composite",t.value,s.labels,s instanceof Qr?s.interpolation:void 0):new Yn(n?"constant":"source",t.value)):Vn([new se("",'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.')])}class ti{constructor(t,e){this._parameters=t,this._specification=e,ee(this,On(this._parameters,this._specification));}static deserialize(t){return new ti(t._parameters,t._specification)}static serialize(t){return {_parameters:t._parameters,_specification:t._specification}}}function ei(t){let e=null;if(t instanceof nn)e=ei(t.result);else if(t instanceof en){for(const r of t.args)if(e=ei(r),e)break}else (t instanceof Br||t instanceof Qr)&&t.input instanceof tr&&"zoom"===t.input.name&&(e=t);return e instanceof se||t.eachChild((t=>{const r=ei(t);r instanceof se?e=r:!e&&r?e=new se("",'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.'):e&&r&&e!==r&&(e=new se("",'Only one zoom-based "step" or "interpolate" subexpression may be used in an expression.'));})),e}class ri{constructor(t,e,r,n){this.message=(t?`${t}: `:"")+r,n&&(this.identifier=n),null!=e&&e.__line__&&(this.line=e.__line__);}}function ni(t){const e=t.key,r=t.value,n=t.valueSpec||{},i=t.objectElementValidators||{},s=t.style,a=t.styleSpec;let o=[];const l=Un(r);if("object"!==l)return [new ri(e,r,`object expected, ${l} found`)];for(const t in r){const l=t.split(".")[0];let u;i[l]?u=i[l]:n[l]?u=Fi:i["*"]?u=i["*"]:n["*"]&&(u=Fi),u?o=o.concat(u({key:(e?`${e}.`:e)+t,value:r[t],valueSpec:n[l]||n["*"],style:s,styleSpec:a,object:r,objectKey:t},r)):o.push(new ri(e,r[t],`unknown property "${t}"`));}for(const t in n)i[t]||n[t].required&&void 0===n[t].default&&void 0===r[t]&&o.push(new ri(e,r,`missing required property "${t}"`));return o}function ii(t){const e=t.value,r=t.valueSpec,n=t.style,i=t.styleSpec,s=t.key,a=t.arrayElementValidator||Fi;if("array"!==Un(e))return [new ri(s,e,`array expected, ${Un(e)} found`)];if(r.length&&e.length!==r.length)return [new ri(s,e,`array length ${r.length} expected, length ${e.length} found`)];if(r["min-length"]&&e.lengthi)return [new ri(e,r,`${r} is greater than the maximum value ${i}`)]}return []}function ai(t){const e=t.valueSpec,r=re(t.value.type);let n,i,s,a={};const o="categorical"!==r&&void 0===t.value.property,l=!o,u="array"===Un(t.value.stops)&&"array"===Un(t.value.stops[0])&&"object"===Un(t.value.stops[0][0]),c=ni({key:t.key,value:t.value,valueSpec:t.styleSpec.function,style:t.style,styleSpec:t.styleSpec,objectElementValidators:{stops:function(t){if("identity"===r)return [new ri(t.key,t.value,'identity function may not have a "stops" property')];let e=[];const n=t.value;return e=e.concat(ii({key:t.key,value:n,valueSpec:t.valueSpec,style:t.style,styleSpec:t.styleSpec,arrayElementValidator:h})),"array"===Un(n)&&0===n.length&&e.push(new ri(t.key,n,"array must have at least one stop")),e},default:function(t){return Fi({key:t.key,value:t.value,valueSpec:e,style:t.style,styleSpec:t.styleSpec})}}});return "identity"===r&&o&&c.push(new ri(t.key,t.value,'missing required property "property"')),"identity"===r||t.value.stops||c.push(new ri(t.key,t.value,'missing required property "stops"')),"exponential"===r&&t.valueSpec.expression&&!Rn(t.valueSpec)&&c.push(new ri(t.key,t.value,"exponential functions not supported")),t.styleSpec.$version>=8&&(l&&!Ln(t.valueSpec)?c.push(new ri(t.key,t.value,"property functions not supported")):o&&!Fn(t.valueSpec)&&c.push(new ri(t.key,t.value,"zoom functions not supported"))),"categorical"!==r&&!u||void 0!==t.value.property||c.push(new ri(t.key,t.value,'"property" property is required')),c;function h(t){let r=[];const n=t.value,o=t.key;if("array"!==Un(n))return [new ri(o,n,`array expected, ${Un(n)} found`)];if(2!==n.length)return [new ri(o,n,`array length 2 expected, length ${n.length} found`)];if(u){if("object"!==Un(n[0]))return [new ri(o,n,`object expected, ${Un(n[0])} found`)];if(void 0===n[0].zoom)return [new ri(o,n,"object stop key must have zoom")];if(void 0===n[0].value)return [new ri(o,n,"object stop key must have value")];const e=re(n[0].zoom);if("number"!=typeof e)return [new ri(o,n[0].zoom,"stop zoom values must be numbers")];if(s&&s>e)return [new ri(o,n[0].zoom,"stop zoom values must appear in ascending order")];e!==s&&(s=e,i=void 0,a={}),r=r.concat(ni({key:`${o}[0]`,value:n[0],valueSpec:{zoom:{}},style:t.style,styleSpec:t.styleSpec,objectElementValidators:{zoom:si,value:p}}));}else r=r.concat(p({key:`${o}[0]`,value:n[0],valueSpec:{},style:t.style,styleSpec:t.styleSpec},n));return Jn(ne(n[1]))?r.concat([new ri(`${o}[1]`,n[1],"expressions are not allowed in function stops.")]):r.concat(Fi({key:`${o}[1]`,value:n[1],valueSpec:e,style:t.style,styleSpec:t.styleSpec}))}function p(t,s){const o=Un(t.value),l=re(t.value),u=null!==t.value?t.value:s;if(n){if(o!==n)return [new ri(t.key,u,`${o} stop domain type must match previous stop domain type ${n}`)]}else n=o;if("number"!==o&&"string"!==o&&"boolean"!==o&&"number"!=typeof l&&"string"!=typeof l&&"boolean"!=typeof l)return [new ri(t.key,u,"stop domain value must be a number, string, or boolean")];if("number"!==o&&"categorical"!==r){let n=`number expected, ${o} found`;return Ln(e)&&void 0===r&&(n+='\nIf you intended to use a categorical function, specify `"type": "categorical"`.'),[new ri(t.key,u,n)]}return "categorical"!==r||"number"!==o||"number"==typeof l&&isFinite(l)&&Math.floor(l)===l?"categorical"!==r&&"number"===o&&"number"==typeof l&&"number"==typeof i&&void 0!==i&&lnew ri(`${t.key}${e.key}`,t.value,e.message)));const r=e.value.expression||e.value._styleExpression.expression;if("property"===t.expressionContext&&"text-font"===t.propertyKey&&!r.outputDefined())return [new ri(t.key,t.value,`Invalid data expression for "${t.propertyKey}". Output values must be contained as literals within the expression.`)];if("property"===t.expressionContext&&"layout"===t.propertyType&&!wr(r))return [new ri(t.key,t.value,'"feature-state" data expressions are not supported with layout properties.')];if("filter"===t.expressionContext)return li(r,t);if(t.expressionContext&&0===t.expressionContext.indexOf("cluster")){if(!_r(r,["zoom","feature-state"]))return [new ri(t.key,t.value,'"zoom" and "feature-state" expressions are not supported with cluster properties.')];if("cluster-initial"===t.expressionContext&&!br(r))return [new ri(t.key,t.value,"Feature data expressions are not supported with initial expression part of cluster properties.")]}return []}function li(t,e){const r=new Set(["zoom","feature-state","pitch","distance-from-center"]);if(e.valueSpec&&e.valueSpec.expression)for(const t of e.valueSpec.expression.parameters)r.delete(t);if(0===r.size)return [];const n=[];return t instanceof tr&&r.has(t.name)?[new ri(e.key,e.value,`["${t.name}"] expression is not supported in a filter for a ${e.object.type} layer with id: ${e.object.id}`)]:(t.eachChild((t=>{n.push(...li(t,e));})),n)}function ui(t){const e=t.key,r=t.value,n=t.valueSpec,i=[];return Array.isArray(n.values)?-1===n.values.indexOf(re(r))&&i.push(new ri(e,r,`expected one of [${n.values.join(", ")}], ${JSON.stringify(r)} found`)):-1===Object.keys(n.values).indexOf(re(r))&&i.push(new ri(e,r,`expected one of [${Object.keys(n.values).join(", ")}], ${JSON.stringify(r)} found`)),i}function ci(t){if(!0===t||!1===t)return !0;if(!Array.isArray(t)||0===t.length)return !1;switch(t[0]){case"has":return t.length>=2&&"$id"!==t[1]&&"$type"!==t[1];case"in":return t.length>=3&&("string"!=typeof t[1]||Array.isArray(t[2]));case"!in":case"!has":case"none":return !1;case"==":case"!=":case">":case">=":case"<":case"<=":return 3!==t.length||Array.isArray(t[1])||Array.isArray(t[2]);case"any":case"all":for(const e of t.slice(1))if(!ci(e)&&"boolean"!=typeof e)return !1;return !0;default:return !0}}function hi(t,e="fill"){if(null==t)return {filter:()=>!0,needGeometry:!1,needFeature:!1};ci(t)||(t=xi(t));const r=t;let n=!0;try{n=function(t){if(!fi(t))return t;let e=ne(t);return di(e),e=pi(e),e}(r);}catch(t){console.warn(`Failed to extract static filter. Filter will continue working, but at higher memory usage and slower framerate.\nThis is most likely a bug, please report this via https://github.com/mapbox/mapbox-gl-js/issues/new?assignees=&labels=&template=Bug_report.md\nand paste the contents of this message in the report.\nThank you!\nFilter Expression:\n${JSON.stringify(r,null,2)}\n `);}const i=te[`filter_${e}`],s=Hn(n,i);let a=null;if("error"===s.result)throw new Error(s.value.map((t=>`${t.key}: ${t.message}`)).join(", "));a=(t,e,r)=>s.value.evaluate(t,e,{},r);let o=null,l=null;if(n!==r){const t=Hn(r,i);if("error"===t.result)throw new Error(t.value.map((t=>`${t.key}: ${t.message}`)).join(", "));o=(e,r,n,i,s)=>t.value.evaluate(e,r,{},n,void 0,void 0,i,s),l=!br(t.value.expression);}return {filter:a,dynamicFilter:o||void 0,needGeometry:gi(n),needFeature:!!l}}function pi(t){if(!Array.isArray(t))return t;const e=function(t){if(yi.has(t[0]))for(let e=1;epi(t)))}function di(t){let e=!1;const r=[];if("case"===t[0]){for(let n=1;n",">=","<","<=","to-boolean"]);function mi(t,e){return te?1:0}function gi(t){if(!Array.isArray(t))return !1;if("within"===t[0])return !0;for(let e=1;e"===e||"<="===e||">="===e?vi(t[1],t[2],e):"any"===e?(r=t.slice(1),["any"].concat(r.map(xi))):"all"===e?["all"].concat(t.slice(1).map(xi)):"none"===e?["all"].concat(t.slice(1).map(xi).map(_i)):"in"===e?bi(t[1],t.slice(2)):"!in"===e?_i(bi(t[1],t.slice(2))):"has"===e?wi(t[1]):"!has"===e?_i(wi(t[1])):"within"!==e||t;var r;}function vi(t,e,r){switch(t){case"$type":return [`filter-type-${r}`,e];case"$id":return [`filter-id-${r}`,e];default:return [`filter-${r}`,t,e]}}function bi(t,e){if(0===e.length)return !1;switch(t){case"$type":return ["filter-type-in",["literal",e]];case"$id":return ["filter-id-in",["literal",e]];default:return e.length>200&&!e.some((t=>typeof t!=typeof e[0]))?["filter-in-large",t,["literal",e.sort(mi)]]:["filter-in-small",t,["literal",e]]}}function wi(t){switch(t){case"$type":return !0;case"$id":return ["filter-has-id"];default:return ["filter-has",t]}}function _i(t){return ["!",t]}function Ai(t){return ci(ne(t.value))?oi(ee({},t,{expressionContext:"filter",valueSpec:t.styleSpec[`filter_${t.layerType||"fill"}`]})):Si(t)}function Si(t){const e=t.value,r=t.key;if("array"!==Un(e))return [new ri(r,e,`array expected, ${Un(e)} found`)];const n=t.styleSpec;let i,s=[];if(e.length<1)return [new ri(r,e,"filter array must have at least 1 element")];switch(s=s.concat(ui({key:`${r}[0]`,value:e[0],valueSpec:n.filter_operator,style:t.style,styleSpec:t.styleSpec})),re(e[0])){case"<":case"<=":case">":case">=":e.length>=2&&"$type"===re(e[1])&&s.push(new ri(r,e,`"$type" cannot be use with operator "${e[0]}"`));case"==":case"!=":3!==e.length&&s.push(new ri(r,e,`filter array for operator "${e[0]}" must have 3 elements`));case"in":case"!in":e.length>=2&&(i=Un(e[1]),"string"!==i&&s.push(new ri(`${r}[1]`,e[1],`string expected, ${i} found`)));for(let a=2;a{t in r&&e.push(new ri(n,r[t],`"${t}" is prohibited for ref layers`));})),i.layers.forEach((e=>{re(e.id)===o&&(t=e);})),t?t.ref?e.push(new ri(n,r.ref,"ref cannot reference another ref layer")):a=re(t.type):"string"==typeof o&&e.push(new ri(n,r.ref,`ref layer "${o}" not found`));}else if("background"!==a&&"sky"!==a)if(r.source){const t=i.sources&&i.sources[r.source],s=t&&re(t.type);t?"vector"===s&&"raster"===a?e.push(new ri(n,r.source,`layer "${r.id}" requires a raster source`)):"raster"===s&&"raster"!==a?e.push(new ri(n,r.source,`layer "${r.id}" requires a vector source`)):"vector"!==s||r["source-layer"]?"raster-dem"===s&&"hillshade"!==a?e.push(new ri(n,r.source,"raster-dem source can only be used with layer type 'hillshade'.")):"line"!==a||!r.paint||!r.paint["line-gradient"]&&!r.paint["line-trim-offset"]||"geojson"===s&&t.lineMetrics||e.push(new ri(n,r,`layer "${r.id}" specifies a line-gradient, which requires a GeoJSON source with \`lineMetrics\` enabled.`)):e.push(new ri(n,r,`layer "${r.id}" must specify a "source-layer"`)):e.push(new ri(n,r.source,`source "${r.source}" not found`));}else e.push(new ri(n,r,'missing required property "source"'));return e=e.concat(ni({key:n,value:r,valueSpec:s.layer,style:t.style,styleSpec:t.styleSpec,objectElementValidators:{"*":()=>[],type:()=>Fi({key:`${n}.type`,value:r.type,valueSpec:s.layer.type,style:t.style,styleSpec:t.styleSpec,object:r,objectKey:"type"}),filter:t=>Ai(ee({layerType:a},t)),layout:t=>ni({layer:r,key:t.key,value:t.value,valueSpec:{},style:t.style,styleSpec:t.styleSpec,objectElementValidators:{"*":t=>Mi(ee({layerType:a},t))}}),paint:t=>ni({layer:r,key:t.key,value:t.value,valueSpec:{},style:t.style,styleSpec:t.styleSpec,objectElementValidators:{"*":t=>Ii(ee({layerType:a},t))}})}})),e}function zi(t){const e=t.value,r=t.key,n=Un(e);return "string"!==n?[new ri(r,e,`string expected, ${n} found`)]:[]}const Bi={promoteId:function({key:t,value:e}){if("string"===Un(e))return zi({key:t,value:e});{const r=[];for(const n in e)r.push(...zi({key:`${t}.${n}`,value:e[n]}));return r}}};function Ei(t){const e=t.value,r=t.key,n=t.styleSpec,i=t.style;if(!e.type)return [new ri(r,e,'"type" is required')];const s=re(e.type);let a;switch(s){case"vector":case"raster":case"raster-dem":return a=ni({key:r,value:e,valueSpec:n[`source_${s.replace("-","_")}`],style:t.style,styleSpec:n,objectElementValidators:Bi}),a;case"geojson":if(a=ni({key:r,value:e,valueSpec:n.source_geojson,style:i,styleSpec:n,objectElementValidators:Bi}),e.cluster)for(const t in e.clusterProperties){const[n,i]=e.clusterProperties[t],s="string"==typeof n?[n,["accumulated"],["get",t]]:n;a.push(...oi({key:`${r}.${t}.map`,value:i,expressionContext:"cluster-map"})),a.push(...oi({key:`${r}.${t}.reduce`,value:s,expressionContext:"cluster-reduce"}));}return a;case"video":return ni({key:r,value:e,valueSpec:n.source_video,style:i,styleSpec:n});case"image":return ni({key:r,value:e,valueSpec:n.source_image,style:i,styleSpec:n});case"canvas":return [new ri(r,null,"Please use runtime APIs to add canvas sources, rather than including them in stylesheets.","source.canvas")];default:return ui({key:`${r}.type`,value:e.type,valueSpec:{values:Ci(n)},style:i,styleSpec:n})}}function Ci(t){return t.source.reduce(((e,r)=>{const n=t[r];return "enum"===n.type.type&&(e=e.concat(Object.keys(n.type.values))),e}),[])}function Pi(t){const e=t.value,r=t.styleSpec,n=r.light,i=t.style;let s=[];const a=Un(e);if(void 0===e)return s;if("object"!==a)return s=s.concat([new ri("light",e,`object expected, ${a} found`)]),s;for(const t in e){const a=t.match(/^(.*)-transition$/);s=s.concat(a&&n[a[1]]&&n[a[1]].transition?Fi({key:t,value:e[t],valueSpec:r.transition,style:i,styleSpec:r}):n[t]?Fi({key:t,value:e[t],valueSpec:n[t],style:i,styleSpec:r}):[new ri(t,e[t],`unknown property "${t}"`)]);}return s}function Di(t){const e=t.value,r=t.key,n=t.style,i=t.styleSpec,s=i.terrain;let a=[];const o=Un(e);if(void 0===e)return a;if("object"!==o)return a=a.concat([new ri("terrain",e,`object expected, ${o} found`)]),a;for(const t in e){const r=t.match(/^(.*)-transition$/);a=a.concat(r&&s[r[1]]&&s[r[1]].transition?Fi({key:t,value:e[t],valueSpec:i.transition,style:n,styleSpec:i}):s[t]?Fi({key:t,value:e[t],valueSpec:s[t],style:n,styleSpec:i}):[new ri(t,e[t],`unknown property "${t}"`)]);}if(e.source){const t=n.sources&&n.sources[e.source],i=t&&re(t.type);t?"raster-dem"!==i&&a.push(new ri(r,e.source,`terrain cannot be used with a source of type ${String(i)}, it only be used with a "raster-dem" source type`)):a.push(new ri(r,e.source,`source "${e.source}" not found`));}else a.push(new ri(r,e,'terrain is missing required property "source"'));return a}function Vi(t){const e=t.value,r=t.style,n=t.styleSpec,i=n.fog;let s=[];const a=Un(e);if(void 0===e)return s;if("object"!==a)return s=s.concat([new ri("fog",e,`object expected, ${a} found`)]),s;for(const t in e){const a=t.match(/^(.*)-transition$/);s=s.concat(a&&i[a[1]]&&i[a[1]].transition?Fi({key:t,value:e[t],valueSpec:n.transition,style:r,styleSpec:n}):i[t]?Fi({key:t,value:e[t],valueSpec:i[t],style:r,styleSpec:n}):[new ri(t,e[t],`unknown property "${t}"`)]);}return s}const Li={"*":()=>[],array:ii,boolean:function(t){const e=t.value,r=t.key,n=Un(e);return "boolean"!==n?[new ri(r,e,`boolean expected, ${n} found`)]:[]},number:si,color:function(t){const e=t.key,r=t.value,n=Un(r);return "string"!==n?[new ri(e,r,`color expected, ${n} found`)]:null===Se(r)?[new ri(e,r,`color expected, "${r}" found`)]:[]},enum:ui,filter:Ai,function:ai,layer:Ti,object:ni,source:Ei,light:Pi,terrain:Di,fog:Vi,string:zi,formatted:function(t){return 0===zi(t).length?[]:oi(t)},resolvedImage:function(t){return 0===zi(t).length?[]:oi(t)},projection:function(t){const e=t.value,r=t.styleSpec,n=r.projection,i=t.style;let s=[];const a=Un(e);if("object"===a)for(const t in e)s=s.concat(Fi({key:t,value:e[t],valueSpec:n[t],style:i,styleSpec:r}));else "string"!==a&&(s=s.concat([new ri("projection",e,`object or string expected, ${a} found`)]));return s}};function Fi(t){const e=t.value,r=t.valueSpec,n=t.styleSpec;return r.expression&&$n(re(e))?ai(t):r.expression&&Jn(ne(e))?oi(t):r.type&&Li[r.type]?Li[r.type](t):ni(ee({},t,{valueSpec:r.type?n[r.type]:r}))}function Ri(t){const e=t.value,r=t.key,n=zi(t);return n.length||(-1===e.indexOf("{fontstack}")&&n.push(new ri(r,e,'"glyphs" url must include a "{fontstack}" token')),-1===e.indexOf("{range}")&&n.push(new ri(r,e,'"glyphs" url must include a "{range}" token'))),n}function Ui(t,e=te){return Oi(Fi({key:"",value:t,valueSpec:e.$root,styleSpec:e,style:t,objectElementValidators:{glyphs:Ri,"*":()=>[]}}))}const $i=t=>Oi(Ii(t)),ji=t=>Oi(Mi(t));function Oi(t){return t.slice().sort(((t,e)=>t.line&&e.line?t.line-e.line:0))}function qi(t,e){let r=!1;if(e&&e.length)for(const n of e)t.fire(new Wt(new Error(n.message))),r=!0;return r}var Ni=Zi,Gi=3;function Zi(t,e,r){var n=this.cells=[];if(t instanceof ArrayBuffer){this.arrayBuffer=t;var i=new Int32Array(this.arrayBuffer);t=i[0],this.d=(e=i[1])+2*(r=i[2]);for(var s=0;s=c[d+0]&&n>=c[d+1])?(a[p]=!0,s.push(u[p])):a[p]=!1;}}},Zi.prototype._forEachCell=function(t,e,r,n,i,s,a,o){for(var l=this._convertToCellCoord(t),u=this._convertToCellCoord(e),c=this._convertToCellCoord(r),h=this._convertToCellCoord(n),p=l;p<=c;p++)for(var d=u;d<=h;d++){var f=this.d*d+p;if((!o||o(this._convertFromCellCoord(p),this._convertFromCellCoord(d),this._convertFromCellCoord(p+1),this._convertFromCellCoord(d+1)))&&i.call(this,t,e,r,n,f,s,a,o))return}},Zi.prototype._convertFromCellCoord=function(t){return (t-this.padding)/this.scale},Zi.prototype._convertToCellCoord=function(t){return Math.max(0,Math.min(this.d-1,Math.floor(t*this.scale)+this.padding))},Zi.prototype.toArrayBuffer=function(){if(this.arrayBuffer)return this.arrayBuffer;for(var t=this.cells,e=Gi+this.cells.length+1+1,r=0,n=0;n=0||(i[e]=Wi(t[e],r)));t instanceof Error&&(i.message=t.message);}if(i.$name)throw new Error("$name property is reserved for worker serialization logic.");return "Object"!==n&&(i.$name=n),i}throw new Error("can't serialize object of type "+typeof t)}function Qi(t){if(null==t||"boolean"==typeof t||"number"==typeof t||"string"==typeof t||t instanceof Boolean||t instanceof Number||t instanceof String||t instanceof Date||t instanceof RegExp||Hi(t)||Yi(t)||ArrayBuffer.isView(t)||t instanceof e.ImageData)return t;if(Array.isArray(t))return t.map(Qi);if("object"==typeof t){const e=t.$name||"Object",{klass:r}=Xi[e];if(!r)throw new Error(`can't deserialize unregistered class ${e}`);if(r.deserialize)return r.deserialize(t);const n=Object.create(r.prototype);for(const e of Object.keys(t))"$name"!==e&&(n[e]=Qi(t[e]));return n}throw new Error("can't deserialize object of type "+typeof t)}const ts={"Latin-1 Supplement":t=>t>=128&&t<=255,Arabic:t=>t>=1536&&t<=1791,"Arabic Supplement":t=>t>=1872&&t<=1919,"Arabic Extended-A":t=>t>=2208&&t<=2303,"Hangul Jamo":t=>t>=4352&&t<=4607,"Unified Canadian Aboriginal Syllabics":t=>t>=5120&&t<=5759,Khmer:t=>t>=6016&&t<=6143,"Unified Canadian Aboriginal Syllabics Extended":t=>t>=6320&&t<=6399,"General Punctuation":t=>t>=8192&&t<=8303,"Letterlike Symbols":t=>t>=8448&&t<=8527,"Number Forms":t=>t>=8528&&t<=8591,"Miscellaneous Technical":t=>t>=8960&&t<=9215,"Control Pictures":t=>t>=9216&&t<=9279,"Optical Character Recognition":t=>t>=9280&&t<=9311,"Enclosed Alphanumerics":t=>t>=9312&&t<=9471,"Geometric Shapes":t=>t>=9632&&t<=9727,"Miscellaneous Symbols":t=>t>=9728&&t<=9983,"Miscellaneous Symbols and Arrows":t=>t>=11008&&t<=11263,"CJK Radicals Supplement":t=>t>=11904&&t<=12031,"Kangxi Radicals":t=>t>=12032&&t<=12255,"Ideographic Description Characters":t=>t>=12272&&t<=12287,"CJK Symbols and Punctuation":t=>t>=12288&&t<=12351,Hiragana:t=>t>=12352&&t<=12447,Katakana:t=>t>=12448&&t<=12543,Bopomofo:t=>t>=12544&&t<=12591,"Hangul Compatibility Jamo":t=>t>=12592&&t<=12687,Kanbun:t=>t>=12688&&t<=12703,"Bopomofo Extended":t=>t>=12704&&t<=12735,"CJK Strokes":t=>t>=12736&&t<=12783,"Katakana Phonetic Extensions":t=>t>=12784&&t<=12799,"Enclosed CJK Letters and Months":t=>t>=12800&&t<=13055,"CJK Compatibility":t=>t>=13056&&t<=13311,"CJK Unified Ideographs Extension A":t=>t>=13312&&t<=19903,"Yijing Hexagram Symbols":t=>t>=19904&&t<=19967,"CJK Unified Ideographs":t=>t>=19968&&t<=40959,"Yi Syllables":t=>t>=40960&&t<=42127,"Yi Radicals":t=>t>=42128&&t<=42191,"Hangul Jamo Extended-A":t=>t>=43360&&t<=43391,"Hangul Syllables":t=>t>=44032&&t<=55215,"Hangul Jamo Extended-B":t=>t>=55216&&t<=55295,"Private Use Area":t=>t>=57344&&t<=63743,"CJK Compatibility Ideographs":t=>t>=63744&&t<=64255,"Arabic Presentation Forms-A":t=>t>=64336&&t<=65023,"Vertical Forms":t=>t>=65040&&t<=65055,"CJK Compatibility Forms":t=>t>=65072&&t<=65103,"Small Form Variants":t=>t>=65104&&t<=65135,"Arabic Presentation Forms-B":t=>t>=65136&&t<=65279,"Halfwidth and Fullwidth Forms":t=>t>=65280&&t<=65519};function es(t){for(const e of t)if(is(e.charCodeAt(0)))return !0;return !1}function rs(t){for(const e of t)if(!ns(e.charCodeAt(0)))return !1;return !0}function ns(t){return !(ts.Arabic(t)||ts["Arabic Supplement"](t)||ts["Arabic Extended-A"](t)||ts["Arabic Presentation Forms-A"](t)||ts["Arabic Presentation Forms-B"](t))}function is(t){return !(746!==t&&747!==t&&(t<4352||!(ts["Bopomofo Extended"](t)||ts.Bopomofo(t)||ts["CJK Compatibility Forms"](t)&&!(t>=65097&&t<=65103)||ts["CJK Compatibility Ideographs"](t)||ts["CJK Compatibility"](t)||ts["CJK Radicals Supplement"](t)||ts["CJK Strokes"](t)||!(!ts["CJK Symbols and Punctuation"](t)||t>=12296&&t<=12305||t>=12308&&t<=12319||12336===t)||ts["CJK Unified Ideographs Extension A"](t)||ts["CJK Unified Ideographs"](t)||ts["Enclosed CJK Letters and Months"](t)||ts["Hangul Compatibility Jamo"](t)||ts["Hangul Jamo Extended-A"](t)||ts["Hangul Jamo Extended-B"](t)||ts["Hangul Jamo"](t)||ts["Hangul Syllables"](t)||ts.Hiragana(t)||ts["Ideographic Description Characters"](t)||ts.Kanbun(t)||ts["Kangxi Radicals"](t)||ts["Katakana Phonetic Extensions"](t)||ts.Katakana(t)&&12540!==t||!(!ts["Halfwidth and Fullwidth Forms"](t)||65288===t||65289===t||65293===t||t>=65306&&t<=65310||65339===t||65341===t||65343===t||t>=65371&&t<=65503||65507===t||t>=65512&&t<=65519)||!(!ts["Small Form Variants"](t)||t>=65112&&t<=65118||t>=65123&&t<=65126)||ts["Unified Canadian Aboriginal Syllabics"](t)||ts["Unified Canadian Aboriginal Syllabics Extended"](t)||ts["Vertical Forms"](t)||ts["Yijing Hexagram Symbols"](t)||ts["Yi Syllables"](t)||ts["Yi Radicals"](t))))}function ss(t){return !(is(t)||function(t){return !!(ts["Latin-1 Supplement"](t)&&(167===t||169===t||174===t||177===t||188===t||189===t||190===t||215===t||247===t)||ts["General Punctuation"](t)&&(8214===t||8224===t||8225===t||8240===t||8241===t||8251===t||8252===t||8258===t||8263===t||8264===t||8265===t||8273===t)||ts["Letterlike Symbols"](t)||ts["Number Forms"](t)||ts["Miscellaneous Technical"](t)&&(t>=8960&&t<=8967||t>=8972&&t<=8991||t>=8996&&t<=9e3||9003===t||t>=9085&&t<=9114||t>=9150&&t<=9165||9167===t||t>=9169&&t<=9179||t>=9186&&t<=9215)||ts["Control Pictures"](t)&&9251!==t||ts["Optical Character Recognition"](t)||ts["Enclosed Alphanumerics"](t)||ts["Geometric Shapes"](t)||ts["Miscellaneous Symbols"](t)&&!(t>=9754&&t<=9759)||ts["Miscellaneous Symbols and Arrows"](t)&&(t>=11026&&t<=11055||t>=11088&&t<=11097||t>=11192&&t<=11243)||ts["CJK Symbols and Punctuation"](t)||ts.Katakana(t)||ts["Private Use Area"](t)||ts["CJK Compatibility Forms"](t)||ts["Small Form Variants"](t)||ts["Halfwidth and Fullwidth Forms"](t)||8734===t||8756===t||8757===t||t>=9984&&t<=10087||t>=10102&&t<=10131||65532===t||65533===t)}(t))}function as(t){return t>=1424&&t<=2303||ts["Arabic Presentation Forms-A"](t)||ts["Arabic Presentation Forms-B"](t)}function os(t,e){return !(!e&&as(t)||t>=2304&&t<=3583||t>=3840&&t<=4255||ts.Khmer(t))}function ls(t){for(const e of t)if(as(e.charCodeAt(0)))return !0;return !1}const us="deferred",cs="loading",hs="loaded";let ps=null,ds="unavailable",fs=null;const ys=function(t){t&&"string"==typeof t&&t.indexOf("NetworkError")>-1&&(ds="error"),ps&&ps(t);};function ms(){gs.fire(new Yt("pluginStateChange",{pluginStatus:ds,pluginURL:fs}));}const gs=new Qt,xs=function(){return ds},vs=function(){if(ds!==us||!fs)throw new Error("rtl-text-plugin cannot be downloaded unless a pluginURL is specified");ds=cs,ms(),fs&&pt({url:fs},(t=>{t?ys(t):(ds=hs,ms());}));},bs={applyArabicShaping:null,processBidirectionalText:null,processStyledBidirectionalText:null,isLoaded:()=>ds===hs||null!=bs.applyArabicShaping,isLoading:()=>ds===cs,setState(t){ds=t.pluginStatus,fs=t.pluginURL;},isParsed:()=>null!=bs.applyArabicShaping&&null!=bs.processBidirectionalText&&null!=bs.processStyledBidirectionalText,getPluginURL:()=>fs};class ws{constructor(t,e){this.zoom=t,e?(this.now=e.now,this.fadeDuration=e.fadeDuration,this.transition=e.transition,this.pitch=e.pitch):(this.now=0,this.fadeDuration=0,this.transition={},this.pitch=0);}isSupportedScript(t){return function(t,e){for(const r of t)if(!os(r.charCodeAt(0),e))return !1;return !0}(t,bs.isLoaded())}}class _s{constructor(t,e){this.property=t,this.value=e,this.expression=function(t,e){if($n(t))return new ti(t,e);if(Jn(t)){const r=Qn(t,e);if("error"===r.result)throw new Error(r.value.map((t=>`${t.key}: ${t.message}`)).join(", "));return r.value}{let r=t;return "string"==typeof t&&"color"===e.type&&(r=Ee.parse(t)),{kind:"constant",evaluate:()=>r}}}(void 0===e?t.specification.default:e,t.specification);}isDataDriven(){return "source"===this.expression.kind||"composite"===this.expression.kind}possiblyEvaluate(t,e,r){return this.property.possiblyEvaluate(this,t,e,r)}}class As{constructor(t){this.property=t,this.value=new _s(t,void 0);}transitioned(t,e){return new ks(this.property,this.value,e,C({},t.transition,this.transition),t.now)}untransitioned(){return new ks(this.property,this.value,null,{},0)}}class Ss{constructor(t){this._properties=t,this._values=Object.create(t.defaultTransitionablePropertyValues);}getValue(t){return O(this._values[t].value.value)}setValue(t,e){this._values.hasOwnProperty(t)||(this._values[t]=new As(this._values[t].property)),this._values[t].value=new _s(this._values[t].property,null===e?void 0:O(e));}getTransition(t){return O(this._values[t].transition)}setTransition(t,e){this._values.hasOwnProperty(t)||(this._values[t]=new As(this._values[t].property)),this._values[t].transition=O(e)||void 0;}serialize(){const t={};for(const e of Object.keys(this._values)){const r=this.getValue(e);void 0!==r&&(t[e]=r);const n=this.getTransition(e);void 0!==n&&(t[`${e}-transition`]=n);}return t}transitioned(t,e){const r=new Is(this._properties);for(const n of Object.keys(this._values))r._values[n]=this._values[n].transitioned(t,e._values[n]);return r}untransitioned(){const t=new Is(this._properties);for(const e of Object.keys(this._values))t._values[e]=this._values[e].untransitioned();return t}}class ks{constructor(t,e,r,n,i){const s=n.delay||0,a=n.duration||0;i=i||0,this.property=t,this.value=e,this.begin=i+s,this.end=this.begin+a,t.specification.transition&&(n.delay||n.duration)&&(this.prior=r);}possiblyEvaluate(t,e,r){const n=t.now||0,i=this.value.possiblyEvaluate(t,e,r),s=this.prior;if(s){if(n>this.end)return this.prior=null,i;if(this.value.isDataDriven())return this.prior=null,i;if(nthis.capacity){this.capacity=Math.max(t,Math.floor(5*this.capacity),128),this.arrayBuffer=new ArrayBuffer(this.capacity*this.bytesPerElement);const e=this.uint8;this._refreshViews(),e&&this.uint8.set(e);}}_refreshViews(){throw new Error("_refreshViews() must be implemented by each concrete StructArray layout")}destroy(){this.int8=this.uint8=this.int16=this.uint16=this.int32=this.uint32=this.float32=null,this.arrayBuffer=null;}}function Rs(t,e=1){let r=0,n=0;return {members:t.map((t=>{const i=Vs[t.type].BYTES_PER_ELEMENT,s=r=Us(r,Math.max(e,i)),a=t.components||1;return n=Math.max(n,i),r+=i*a,{name:t.name,type:t.type,components:a,offset:s}})),size:Us(r,Math.max(n,e)),alignment:e}}function Us(t,e){return Math.ceil(t/e)*e}class $s extends Fs{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer);}emplaceBack(t,e){const r=this.length;return this.resize(r+1),this.emplace(r,t,e)}emplace(t,e,r){const n=2*t;return this.int16[n+0]=e,this.int16[n+1]=r,t}}$s.prototype.bytesPerElement=4,Ji($s,"StructArrayLayout2i4");class js extends Fs{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer);}emplaceBack(t,e,r){const n=this.length;return this.resize(n+1),this.emplace(n,t,e,r)}emplace(t,e,r,n){const i=3*t;return this.int16[i+0]=e,this.int16[i+1]=r,this.int16[i+2]=n,t}}js.prototype.bytesPerElement=6,Ji(js,"StructArrayLayout3i6");class Os extends Fs{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer);}emplaceBack(t,e,r,n){const i=this.length;return this.resize(i+1),this.emplace(i,t,e,r,n)}emplace(t,e,r,n,i){const s=4*t;return this.int16[s+0]=e,this.int16[s+1]=r,this.int16[s+2]=n,this.int16[s+3]=i,t}}Os.prototype.bytesPerElement=8,Ji(Os,"StructArrayLayout4i8");class qs extends Fs{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(t,e,r,n,i,s,a){const o=this.length;return this.resize(o+1),this.emplace(o,t,e,r,n,i,s,a)}emplace(t,e,r,n,i,s,a,o){const l=6*t,u=12*t,c=3*t;return this.int16[l+0]=e,this.int16[l+1]=r,this.uint8[u+4]=n,this.uint8[u+5]=i,this.uint8[u+6]=s,this.uint8[u+7]=a,this.float32[c+2]=o,t}}qs.prototype.bytesPerElement=12,Ji(qs,"StructArrayLayout2i4ub1f12");class Ns extends Fs{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(t,e,r,n){const i=this.length;return this.resize(i+1),this.emplace(i,t,e,r,n)}emplace(t,e,r,n,i){const s=4*t;return this.float32[s+0]=e,this.float32[s+1]=r,this.float32[s+2]=n,this.float32[s+3]=i,t}}Ns.prototype.bytesPerElement=16,Ji(Ns,"StructArrayLayout4f16");class Gs extends Fs{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(t,e,r,n,i){const s=this.length;return this.resize(s+1),this.emplace(s,t,e,r,n,i)}emplace(t,e,r,n,i,s){const a=6*t,o=3*t;return this.uint16[a+0]=e,this.uint16[a+1]=r,this.uint16[a+2]=n,this.uint16[a+3]=i,this.float32[o+2]=s,t}}Gs.prototype.bytesPerElement=12,Ji(Gs,"StructArrayLayout4ui1f12");class Zs extends Fs{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer);}emplaceBack(t,e,r,n){const i=this.length;return this.resize(i+1),this.emplace(i,t,e,r,n)}emplace(t,e,r,n,i){const s=4*t;return this.uint16[s+0]=e,this.uint16[s+1]=r,this.uint16[s+2]=n,this.uint16[s+3]=i,t}}Zs.prototype.bytesPerElement=8,Ji(Zs,"StructArrayLayout4ui8");class Ks extends Fs{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer);}emplaceBack(t,e,r,n,i,s){const a=this.length;return this.resize(a+1),this.emplace(a,t,e,r,n,i,s)}emplace(t,e,r,n,i,s,a){const o=6*t;return this.int16[o+0]=e,this.int16[o+1]=r,this.int16[o+2]=n,this.int16[o+3]=i,this.int16[o+4]=s,this.int16[o+5]=a,t}}Ks.prototype.bytesPerElement=12,Ji(Ks,"StructArrayLayout6i12");class Xs extends Fs{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer);}emplaceBack(t,e,r,n,i,s,a,o,l,u,c,h){const p=this.length;return this.resize(p+1),this.emplace(p,t,e,r,n,i,s,a,o,l,u,c,h)}emplace(t,e,r,n,i,s,a,o,l,u,c,h,p){const d=12*t;return this.int16[d+0]=e,this.int16[d+1]=r,this.int16[d+2]=n,this.int16[d+3]=i,this.uint16[d+4]=s,this.uint16[d+5]=a,this.uint16[d+6]=o,this.uint16[d+7]=l,this.int16[d+8]=u,this.int16[d+9]=c,this.int16[d+10]=h,this.int16[d+11]=p,t}}Xs.prototype.bytesPerElement=24,Ji(Xs,"StructArrayLayout4i4ui4i24");class Js extends Fs{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(t,e,r,n,i,s){const a=this.length;return this.resize(a+1),this.emplace(a,t,e,r,n,i,s)}emplace(t,e,r,n,i,s,a){const o=10*t,l=5*t;return this.int16[o+0]=e,this.int16[o+1]=r,this.int16[o+2]=n,this.float32[l+2]=i,this.float32[l+3]=s,this.float32[l+4]=a,t}}Js.prototype.bytesPerElement=20,Ji(Js,"StructArrayLayout3i3f20");class Hs extends Fs{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer);}emplaceBack(t){const e=this.length;return this.resize(e+1),this.emplace(e,t)}emplace(t,e){return this.uint32[1*t+0]=e,t}}Hs.prototype.bytesPerElement=4,Ji(Hs,"StructArrayLayout1ul4");class Ys extends Fs{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer);}emplaceBack(t,e,r,n,i,s,a,o,l,u,c,h,p){const d=this.length;return this.resize(d+1),this.emplace(d,t,e,r,n,i,s,a,o,l,u,c,h,p)}emplace(t,e,r,n,i,s,a,o,l,u,c,h,p,d){const f=20*t,y=10*t;return this.int16[f+0]=e,this.int16[f+1]=r,this.int16[f+2]=n,this.int16[f+3]=i,this.int16[f+4]=s,this.float32[y+3]=a,this.float32[y+4]=o,this.float32[y+5]=l,this.float32[y+6]=u,this.int16[f+14]=c,this.uint32[y+8]=h,this.uint16[f+18]=p,this.uint16[f+19]=d,t}}Ys.prototype.bytesPerElement=40,Ji(Ys,"StructArrayLayout5i4f1i1ul2ui40");class Ws extends Fs{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer);}emplaceBack(t,e,r,n,i,s,a){const o=this.length;return this.resize(o+1),this.emplace(o,t,e,r,n,i,s,a)}emplace(t,e,r,n,i,s,a,o){const l=8*t;return this.int16[l+0]=e,this.int16[l+1]=r,this.int16[l+2]=n,this.int16[l+4]=i,this.int16[l+5]=s,this.int16[l+6]=a,this.int16[l+7]=o,t}}Ws.prototype.bytesPerElement=16,Ji(Ws,"StructArrayLayout3i2i2i16");class Qs extends Fs{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer);}emplaceBack(t,e,r,n,i){const s=this.length;return this.resize(s+1),this.emplace(s,t,e,r,n,i)}emplace(t,e,r,n,i,s){const a=4*t,o=8*t;return this.float32[a+0]=e,this.float32[a+1]=r,this.float32[a+2]=n,this.int16[o+6]=i,this.int16[o+7]=s,t}}Qs.prototype.bytesPerElement=16,Ji(Qs,"StructArrayLayout2f1f2i16");class ta extends Fs{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(t,e,r,n){const i=this.length;return this.resize(i+1),this.emplace(i,t,e,r,n)}emplace(t,e,r,n,i){const s=12*t,a=3*t;return this.uint8[s+0]=e,this.uint8[s+1]=r,this.float32[a+1]=n,this.float32[a+2]=i,t}}ta.prototype.bytesPerElement=12,Ji(ta,"StructArrayLayout2ub2f12");class ea extends Fs{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(t,e,r){const n=this.length;return this.resize(n+1),this.emplace(n,t,e,r)}emplace(t,e,r,n){const i=3*t;return this.float32[i+0]=e,this.float32[i+1]=r,this.float32[i+2]=n,t}}ea.prototype.bytesPerElement=12,Ji(ea,"StructArrayLayout3f12");class ra extends Fs{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer);}emplaceBack(t,e,r){const n=this.length;return this.resize(n+1),this.emplace(n,t,e,r)}emplace(t,e,r,n){const i=3*t;return this.uint16[i+0]=e,this.uint16[i+1]=r,this.uint16[i+2]=n,t}}ra.prototype.bytesPerElement=6,Ji(ra,"StructArrayLayout3ui6");class na extends Fs{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer);}emplaceBack(t,e,r,n,i,s,a,o,l,u,c,h,p,d,f,y,m,g,x,v,b){const w=this.length;return this.resize(w+1),this.emplace(w,t,e,r,n,i,s,a,o,l,u,c,h,p,d,f,y,m,g,x,v,b)}emplace(t,e,r,n,i,s,a,o,l,u,c,h,p,d,f,y,m,g,x,v,b,w){const _=30*t,A=15*t,S=60*t;return this.int16[_+0]=e,this.int16[_+1]=r,this.int16[_+2]=n,this.float32[A+2]=i,this.float32[A+3]=s,this.uint16[_+8]=a,this.uint16[_+9]=o,this.uint32[A+5]=l,this.uint32[A+6]=u,this.uint32[A+7]=c,this.uint16[_+16]=h,this.uint16[_+17]=p,this.uint16[_+18]=d,this.float32[A+10]=f,this.float32[A+11]=y,this.uint8[S+48]=m,this.uint8[S+49]=g,this.uint8[S+50]=x,this.uint32[A+13]=v,this.int16[_+28]=b,this.uint8[S+58]=w,t}}na.prototype.bytesPerElement=60,Ji(na,"StructArrayLayout3i2f2ui3ul3ui2f3ub1ul1i1ub60");class ia extends Fs{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer);}emplaceBack(t,e,r,n,i,s,a,o,l,u,c,h,p,d,f,y,m,g,x,v,b,w,_,A,S,k,I,M,T,z){const B=this.length;return this.resize(B+1),this.emplace(B,t,e,r,n,i,s,a,o,l,u,c,h,p,d,f,y,m,g,x,v,b,w,_,A,S,k,I,M,T,z)}emplace(t,e,r,n,i,s,a,o,l,u,c,h,p,d,f,y,m,g,x,v,b,w,_,A,S,k,I,M,T,z,B){const E=38*t,C=19*t;return this.int16[E+0]=e,this.int16[E+1]=r,this.int16[E+2]=n,this.float32[C+2]=i,this.float32[C+3]=s,this.int16[E+8]=a,this.int16[E+9]=o,this.int16[E+10]=l,this.int16[E+11]=u,this.int16[E+12]=c,this.int16[E+13]=h,this.uint16[E+14]=p,this.uint16[E+15]=d,this.uint16[E+16]=f,this.uint16[E+17]=y,this.uint16[E+18]=m,this.uint16[E+19]=g,this.uint16[E+20]=x,this.uint16[E+21]=v,this.uint16[E+22]=b,this.uint16[E+23]=w,this.uint16[E+24]=_,this.uint16[E+25]=A,this.uint16[E+26]=S,this.uint16[E+27]=k,this.uint16[E+28]=I,this.uint32[C+15]=M,this.float32[C+16]=T,this.float32[C+17]=z,this.float32[C+18]=B,t}}ia.prototype.bytesPerElement=76,Ji(ia,"StructArrayLayout3i2f6i15ui1ul3f76");class sa extends Fs{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(t){const e=this.length;return this.resize(e+1),this.emplace(e,t)}emplace(t,e){return this.float32[1*t+0]=e,t}}sa.prototype.bytesPerElement=4,Ji(sa,"StructArrayLayout1f4");class aa extends Fs{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(t,e,r,n,i){const s=this.length;return this.resize(s+1),this.emplace(s,t,e,r,n,i)}emplace(t,e,r,n,i,s){const a=5*t;return this.float32[a+0]=e,this.float32[a+1]=r,this.float32[a+2]=n,this.float32[a+3]=i,this.float32[a+4]=s,t}}aa.prototype.bytesPerElement=20,Ji(aa,"StructArrayLayout5f20");class oa extends Fs{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer);}emplaceBack(t,e,r,n){const i=this.length;return this.resize(i+1),this.emplace(i,t,e,r,n)}emplace(t,e,r,n,i){const s=6*t;return this.uint32[3*t+0]=e,this.uint16[s+2]=r,this.uint16[s+3]=n,this.uint16[s+4]=i,t}}oa.prototype.bytesPerElement=12,Ji(oa,"StructArrayLayout1ul3ui12");class la extends Fs{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer);}emplaceBack(t,e){const r=this.length;return this.resize(r+1),this.emplace(r,t,e)}emplace(t,e,r){const n=2*t;return this.uint16[n+0]=e,this.uint16[n+1]=r,t}}la.prototype.bytesPerElement=4,Ji(la,"StructArrayLayout2ui4");class ua extends Fs{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer);}emplaceBack(t){const e=this.length;return this.resize(e+1),this.emplace(e,t)}emplace(t,e){return this.uint16[1*t+0]=e,t}}ua.prototype.bytesPerElement=2,Ji(ua,"StructArrayLayout1ui2");class ca extends Fs{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(t,e){const r=this.length;return this.resize(r+1),this.emplace(r,t,e)}emplace(t,e,r){const n=2*t;return this.float32[n+0]=e,this.float32[n+1]=r,t}}ca.prototype.bytesPerElement=8,Ji(ca,"StructArrayLayout2f8");class ha extends Ls{get projectedAnchorX(){return this._structArray.int16[this._pos2+0]}get projectedAnchorY(){return this._structArray.int16[this._pos2+1]}get projectedAnchorZ(){return this._structArray.int16[this._pos2+2]}get tileAnchorX(){return this._structArray.int16[this._pos2+3]}get tileAnchorY(){return this._structArray.int16[this._pos2+4]}get x1(){return this._structArray.float32[this._pos4+3]}get y1(){return this._structArray.float32[this._pos4+4]}get x2(){return this._structArray.float32[this._pos4+5]}get y2(){return this._structArray.float32[this._pos4+6]}get padding(){return this._structArray.int16[this._pos2+14]}get featureIndex(){return this._structArray.uint32[this._pos4+8]}get sourceLayerIndex(){return this._structArray.uint16[this._pos2+18]}get bucketIndex(){return this._structArray.uint16[this._pos2+19]}}ha.prototype.size=40;class pa extends Ys{get(t){return new ha(this,t)}}Ji(pa,"CollisionBoxArray");class da extends Ls{get projectedAnchorX(){return this._structArray.int16[this._pos2+0]}get projectedAnchorY(){return this._structArray.int16[this._pos2+1]}get projectedAnchorZ(){return this._structArray.int16[this._pos2+2]}get tileAnchorX(){return this._structArray.float32[this._pos4+2]}get tileAnchorY(){return this._structArray.float32[this._pos4+3]}get glyphStartIndex(){return this._structArray.uint16[this._pos2+8]}get numGlyphs(){return this._structArray.uint16[this._pos2+9]}get vertexStartIndex(){return this._structArray.uint32[this._pos4+5]}get lineStartIndex(){return this._structArray.uint32[this._pos4+6]}get lineLength(){return this._structArray.uint32[this._pos4+7]}get segment(){return this._structArray.uint16[this._pos2+16]}get lowerSize(){return this._structArray.uint16[this._pos2+17]}get upperSize(){return this._structArray.uint16[this._pos2+18]}get lineOffsetX(){return this._structArray.float32[this._pos4+10]}get lineOffsetY(){return this._structArray.float32[this._pos4+11]}get writingMode(){return this._structArray.uint8[this._pos1+48]}get placedOrientation(){return this._structArray.uint8[this._pos1+49]}set placedOrientation(t){this._structArray.uint8[this._pos1+49]=t;}get hidden(){return this._structArray.uint8[this._pos1+50]}set hidden(t){this._structArray.uint8[this._pos1+50]=t;}get crossTileID(){return this._structArray.uint32[this._pos4+13]}set crossTileID(t){this._structArray.uint32[this._pos4+13]=t;}get associatedIconIndex(){return this._structArray.int16[this._pos2+28]}get flipState(){return this._structArray.uint8[this._pos1+58]}set flipState(t){this._structArray.uint8[this._pos1+58]=t;}}da.prototype.size=60;class fa extends na{get(t){return new da(this,t)}}Ji(fa,"PlacedSymbolArray");class ya extends Ls{get projectedAnchorX(){return this._structArray.int16[this._pos2+0]}get projectedAnchorY(){return this._structArray.int16[this._pos2+1]}get projectedAnchorZ(){return this._structArray.int16[this._pos2+2]}get tileAnchorX(){return this._structArray.float32[this._pos4+2]}get tileAnchorY(){return this._structArray.float32[this._pos4+3]}get rightJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+8]}get centerJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+9]}get leftJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+10]}get verticalPlacedTextSymbolIndex(){return this._structArray.int16[this._pos2+11]}get placedIconSymbolIndex(){return this._structArray.int16[this._pos2+12]}get verticalPlacedIconSymbolIndex(){return this._structArray.int16[this._pos2+13]}get key(){return this._structArray.uint16[this._pos2+14]}get textBoxStartIndex(){return this._structArray.uint16[this._pos2+15]}get textBoxEndIndex(){return this._structArray.uint16[this._pos2+16]}get verticalTextBoxStartIndex(){return this._structArray.uint16[this._pos2+17]}get verticalTextBoxEndIndex(){return this._structArray.uint16[this._pos2+18]}get iconBoxStartIndex(){return this._structArray.uint16[this._pos2+19]}get iconBoxEndIndex(){return this._structArray.uint16[this._pos2+20]}get verticalIconBoxStartIndex(){return this._structArray.uint16[this._pos2+21]}get verticalIconBoxEndIndex(){return this._structArray.uint16[this._pos2+22]}get featureIndex(){return this._structArray.uint16[this._pos2+23]}get numHorizontalGlyphVertices(){return this._structArray.uint16[this._pos2+24]}get numVerticalGlyphVertices(){return this._structArray.uint16[this._pos2+25]}get numIconVertices(){return this._structArray.uint16[this._pos2+26]}get numVerticalIconVertices(){return this._structArray.uint16[this._pos2+27]}get useRuntimeCollisionCircles(){return this._structArray.uint16[this._pos2+28]}get crossTileID(){return this._structArray.uint32[this._pos4+15]}set crossTileID(t){this._structArray.uint32[this._pos4+15]=t;}get textOffset0(){return this._structArray.float32[this._pos4+16]}get textOffset1(){return this._structArray.float32[this._pos4+17]}get collisionCircleDiameter(){return this._structArray.float32[this._pos4+18]}}ya.prototype.size=76;class ma extends ia{get(t){return new ya(this,t)}}Ji(ma,"SymbolInstanceArray");class ga extends sa{getoffsetX(t){return this.float32[1*t+0]}}Ji(ga,"GlyphOffsetArray");class xa extends $s{getx(t){return this.int16[2*t+0]}gety(t){return this.int16[2*t+1]}}Ji(xa,"SymbolLineVertexArray");class va extends Ls{get featureIndex(){return this._structArray.uint32[this._pos4+0]}get sourceLayerIndex(){return this._structArray.uint16[this._pos2+2]}get bucketIndex(){return this._structArray.uint16[this._pos2+3]}get layoutVertexArrayOffset(){return this._structArray.uint16[this._pos2+4]}}va.prototype.size=12;class ba extends oa{get(t){return new va(this,t)}}Ji(ba,"FeatureIndexArray");class wa extends la{geta_centroid_pos0(t){return this.uint16[2*t+0]}geta_centroid_pos1(t){return this.uint16[2*t+1]}}Ji(wa,"FillExtrusionCentroidArray");const _a=Rs([{name:"a_pattern",components:4,type:"Uint16"},{name:"a_pixel_ratio",components:1,type:"Float32"}]),Aa=Rs([{name:"a_dash",components:4,type:"Uint16"}]);var Sa={exports:{}},ka={exports:{}};ka.exports=function(t,e){var r,n,i,s,a,o,l,u;for(n=t.length-(r=3&t.length),i=e,a=3432918353,o=461845907,u=0;u>>16)*a&65535)<<16)&4294967295)<<15|l>>>17))*o+(((l>>>16)*o&65535)<<16)&4294967295)<<13|i>>>19))+((5*(i>>>16)&65535)<<16)&4294967295))+((58964+(s>>>16)&65535)<<16);switch(l=0,r){case 3:l^=(255&t.charCodeAt(u+2))<<16;case 2:l^=(255&t.charCodeAt(u+1))<<8;case 1:i^=l=(65535&(l=(l=(65535&(l^=255&t.charCodeAt(u)))*a+(((l>>>16)*a&65535)<<16)&4294967295)<<15|l>>>17))*o+(((l>>>16)*o&65535)<<16)&4294967295;}return i^=t.length,i=2246822507*(65535&(i^=i>>>16))+((2246822507*(i>>>16)&65535)<<16)&4294967295,i=3266489909*(65535&(i^=i>>>13))+((3266489909*(i>>>16)&65535)<<16)&4294967295,(i^=i>>>16)>>>0};var Ia=ka.exports,Ma={exports:{}};Ma.exports=function(t,e){for(var r,n=t.length,i=e^n,s=0;n>=4;)r=1540483477*(65535&(r=255&t.charCodeAt(s)|(255&t.charCodeAt(++s))<<8|(255&t.charCodeAt(++s))<<16|(255&t.charCodeAt(++s))<<24))+((1540483477*(r>>>16)&65535)<<16),i=1540483477*(65535&i)+((1540483477*(i>>>16)&65535)<<16)^(r=1540483477*(65535&(r^=r>>>24))+((1540483477*(r>>>16)&65535)<<16)),n-=4,++s;switch(n){case 3:i^=(255&t.charCodeAt(s+2))<<16;case 2:i^=(255&t.charCodeAt(s+1))<<8;case 1:i=1540483477*(65535&(i^=255&t.charCodeAt(s)))+((1540483477*(i>>>16)&65535)<<16);}return i=1540483477*(65535&(i^=i>>>13))+((1540483477*(i>>>16)&65535)<<16),(i^=i>>>15)>>>0};var Ta=Ia,za=Ma.exports;Sa.exports=Ta,Sa.exports.murmur3=Ta,Sa.exports.murmur2=za;var Ba=p(Sa.exports);class Ea{constructor(){this.ids=[],this.positions=[],this.indexed=!1;}add(t,e,r,n){this.ids.push(Ca(t)),this.positions.push(e,r,n);}getPositions(t){const e=Ca(t);let r=0,n=this.ids.length-1;for(;r>1;this.ids[t]>=e?n=t:r=t+1;}const i=[];for(;this.ids[r]===e;)i.push({index:this.positions[3*r],start:this.positions[3*r+1],end:this.positions[3*r+2]}),r++;return i}static serialize(t,e){const r=new Float64Array(t.ids),n=new Uint32Array(t.positions);return Pa(r,n,0,r.length-1),e&&e.push(r.buffer,n.buffer),{ids:r,positions:n}}static deserialize(t){const e=new Ea;return e.ids=t.ids,e.positions=t.positions,e.indexed=!0,e}}function Ca(t){const e=+t;return !isNaN(e)&&Number.MIN_SAFE_INTEGER<=e&&e<=Number.MAX_SAFE_INTEGER?e:Ba(String(t))}function Pa(t,e,r,n){for(;r>1];let s=r-1,a=n+1;for(;;){do{s++;}while(t[s]i);if(s>=a)break;Da(t,s,a),Da(e,3*s,3*a),Da(e,3*s+1,3*a+1),Da(e,3*s+2,3*a+2);}a-r`u_${t}`)),this.type=r;}setUniform(t,e,r,n,i){e.set(t,i,n.constantOr(this.value));}getBinding(t,e){return "color"===this.type?new Ra(t):new La(t)}}class Na{constructor(t,e){this.uniformNames=e.map((t=>`u_${t}`)),this.pattern=null,this.pixelRatio=1;}setConstantPatternPositions(t){this.pixelRatio=t.pixelRatio||1,this.pattern=t.tl.concat(t.br);}setUniform(t,e,r,n,i){const s="u_pattern"===i||"u_dash"===i?this.pattern:"u_pixel_ratio"===i?this.pixelRatio:null;s&&e.set(t,i,s);}getBinding(t,e){return "u_pattern"===e||"u_dash"===e?new Fa(t):new La(t)}}class Ga{constructor(t,e,r,n){this.expression=t,this.type=r,this.maxValue=0,this.paintVertexAttributes=e.map((t=>({name:`a_${t}`,type:"Float32",components:"color"===r?2:1,offset:0}))),this.paintVertexArray=new n;}populatePaintArray(t,e,r,n,i,s){const a=this.paintVertexArray.length,o=this.expression.evaluate(new ws(0),e,{},i,n,s);this.paintVertexArray.resize(t),this._setPaintValue(a,t,o);}updatePaintArray(t,e,r,n,i){const s=this.expression.evaluate({zoom:0},r,n,void 0,i);this._setPaintValue(t,e,s);}_setPaintValue(t,e,r){if("color"===this.type){const n=Oa(r);for(let r=t;r`u_${t}_t`)),this.type=r,this.useIntegerZoom=n,this.zoom=i,this.maxValue=0,this.paintVertexAttributes=e.map((t=>({name:`a_${t}`,type:"Float32",components:"color"===r?4:2,offset:0}))),this.paintVertexArray=new s;}populatePaintArray(t,e,r,n,i,s){const a=this.expression.evaluate(new ws(this.zoom),e,{},i,n,s),o=this.expression.evaluate(new ws(this.zoom+1),e,{},i,n,s),l=this.paintVertexArray.length;this.paintVertexArray.resize(t),this._setPaintValue(l,t,a,o);}updatePaintArray(t,e,r,n,i){const s=this.expression.evaluate({zoom:this.zoom},r,n,void 0,i),a=this.expression.evaluate({zoom:this.zoom+1},r,n,void 0,i);this._setPaintValue(t,e,s,a);}_setPaintValue(t,e,r,n){if("color"===this.type){const i=Oa(r),s=Oa(n);for(let r=t;r!0)){this.binders={},this._buffers=[];const n=[];for(const i in t.paint._values){if(!r(i))continue;const s=t.paint.get(i);if(!(s instanceof Ts&&Ln(s.property.specification)))continue;const a=Ya(i,t.type),o=s.value,l=s.property.specification.type,u=!!s.property.useIntegerZoom,c="line-dasharray"===i||i.endsWith("pattern"),h="line-dasharray"===i&&"constant"!==t.layout.get("line-cap").value.kind;if("constant"!==o.kind||h)if("source"===o.kind||h||c){const e=to(i,l,"source");this.binders[i]=c?new Ka(o,a,l,e,t.id):new Ga(o,a,l,e),n.push(`/a_${i}`);}else {const t=to(i,l,"composite");this.binders[i]=new Za(o,a,l,u,e,t),n.push(`/z_${i}`);}else this.binders[i]=c?new Na(o.value,a):new qa(o.value,a,l),n.push(`/u_${i}`);}this.cacheKey=n.sort().join("");}getMaxValue(t){const e=this.binders[t];return e instanceof Ga||e instanceof Za?e.maxValue:0}populatePaintArrays(t,e,r,n,i,s){for(const a in this.binders){const o=this.binders[a];(o instanceof Ga||o instanceof Za||o instanceof Ka)&&o.populatePaintArray(t,e,r,n,i,s);}}setConstantPatternPositions(t){for(const e in this.binders){const r=this.binders[e];r instanceof Na&&r.setConstantPatternPositions(t);}}updatePaintArrays(t,e,r,n,i,s){let a=!1;for(const o in t){const l=e.getPositions(o);for(const e of l){const l=r.feature(e.index);for(const r in this.binders){const u=this.binders[r];if((u instanceof Ga||u instanceof Za||u instanceof Ka)&&!0===u.expression.isStateDependent){const c=n.paint.get(r);u.expression=c.value,u.updatePaintArray(e.start,e.end,l,t[o],i,s),a=!0;}}}}return a}defines(){const t=[];for(const e in this.binders){const r=this.binders[e];(r instanceof qa||r instanceof Na)&&t.push(...r.uniformNames.map((t=>`#define HAS_UNIFORM_${t}`)));}return t}getBinderAttributes(){const t=[];for(const e in this.binders){const r=this.binders[e];if(r instanceof Ga||r instanceof Za||r instanceof Ka)for(let e=0;e!0)){this.programConfigurations={};for(const n of t)this.programConfigurations[n.id]=new Xa(n,e,r);this.needsUpload=!1,this._featureMap=new Ea,this._bufferOffset=0;}populatePaintArrays(t,e,r,n,i,s,a){for(const r in this.programConfigurations)this.programConfigurations[r].populatePaintArrays(t,e,n,i,s,a);void 0!==e.id&&this._featureMap.add(e.id,r,this._bufferOffset,t),this._bufferOffset=t,this.needsUpload=!0;}updatePaintArrays(t,e,r,n,i){for(const s of r)this.needsUpload=this.programConfigurations[s.id].updatePaintArrays(t,this._featureMap,e,s,n,i)||this.needsUpload;}get(t){return this.programConfigurations[t]}upload(t){if(this.needsUpload){for(const e in this.programConfigurations)this.programConfigurations[e].upload(t);this.needsUpload=!1;}}destroy(){for(const t in this.programConfigurations)this.programConfigurations[t].destroy();}}const Ha={"text-opacity":["opacity"],"icon-opacity":["opacity"],"text-color":["fill_color"],"icon-color":["fill_color"],"text-halo-color":["halo_color"],"icon-halo-color":["halo_color"],"text-halo-blur":["halo_blur"],"icon-halo-blur":["halo_blur"],"text-halo-width":["halo_width"],"icon-halo-width":["halo_width"],"line-gap-width":["gapwidth"],"line-pattern":["pattern","pixel_ratio"],"fill-pattern":["pattern","pixel_ratio"],"fill-extrusion-pattern":["pattern","pixel_ratio"],"line-dasharray":["dash"]};function Ya(t,e){return Ha[t]||[t.replace(`${e}-`,"").replace(/-/g,"_")]}const Wa={"line-pattern":{source:Gs,composite:Gs},"fill-pattern":{source:Gs,composite:Gs},"fill-extrusion-pattern":{source:Gs,composite:Gs},"line-dasharray":{source:Zs,composite:Zs}},Qa={color:{source:ca,composite:Ns},number:{source:sa,composite:ca}};function to(t,e,r){const n=Wa[t];return n&&n[r]||Qa[e][r]}Ji(qa,"ConstantBinder"),Ji(Na,"PatternConstantBinder"),Ji(Ga,"SourceExpressionBinder"),Ji(Ka,"PatternCompositeBinder"),Ji(Za,"CompositeExpressionBinder"),Ji(Xa,"ProgramConfiguration",{omit:["_buffers"]}),Ji(Ja,"ProgramConfigurationSet");const eo="-transition";class ro extends Qt{constructor(t,e){if(super(),this.id=t.id,this.type=t.type,this._featureFilter={filter:()=>!0,needGeometry:!1,needFeature:!1},this._filterCompiled=!1,"custom"!==t.type&&(this.metadata=t.metadata,this.minzoom=t.minzoom,this.maxzoom=t.maxzoom,"background"!==t.type&&"sky"!==t.type&&(this.source=t.source,this.sourceLayer=t["source-layer"],this.filter=t.filter),e.layout&&(this._unevaluatedLayout=new Ms(e.layout)),e.paint)){this._transitionablePaint=new Ss(e.paint);for(const e in t.paint)this.setPaintProperty(e,t.paint[e],{validate:!1});for(const e in t.layout)this.setLayoutProperty(e,t.layout[e],{validate:!1});this._transitioningPaint=this._transitionablePaint.untransitioned(),this.paint=new zs(e.paint);}}getLayoutProperty(t){return "visibility"===t?this.visibility:this._unevaluatedLayout.getValue(t)}setLayoutProperty(t,e,r={}){null!=e&&this._validate(ji,`layers.${this.id}.layout.${t}`,t,e,r)||("visibility"!==t?this._unevaluatedLayout.setValue(t,e):this.visibility=e);}getPaintProperty(t){return U(t,eo)?this._transitionablePaint.getTransition(t.slice(0,-11)):this._transitionablePaint.getValue(t)}setPaintProperty(t,e,r={}){if(null!=e&&this._validate($i,`layers.${this.id}.paint.${t}`,t,e,r))return !1;if(U(t,eo))return this._transitionablePaint.setTransition(t.slice(0,-11),e||void 0),!1;{const r=this._transitionablePaint._values[t],n=r.value.isDataDriven(),i=r.value;this._transitionablePaint.setValue(t,e),this._handleSpecialPaintPropertyUpdate(t);const s=this._transitionablePaint._values[t].value,a=s.isDataDriven(),o=U(t,"pattern")||"line-dasharray"===t;return a||n||o||this._handleOverridablePaintPropertyUpdate(t,i,s)}}_handleSpecialPaintPropertyUpdate(t){}getProgramIds(){return null}getProgramConfiguration(t){return null}_handleOverridablePaintPropertyUpdate(t,e,r){return !1}isHidden(t){return !!(this.minzoom&&t=this.maxzoom)||"none"===this.visibility}updateTransitions(t){this._transitioningPaint=this._transitionablePaint.transitioned(t,this._transitioningPaint);}hasTransition(){return this._transitioningPaint.hasTransition()}recalculate(t,e){this._unevaluatedLayout&&(this.layout=this._unevaluatedLayout.possiblyEvaluate(t,void 0,e)),this.paint=this._transitioningPaint.possiblyEvaluate(t,void 0,e);}serialize(){const t={id:this.id,type:this.type,source:this.source,"source-layer":this.sourceLayer,metadata:this.metadata,minzoom:this.minzoom,maxzoom:this.maxzoom,filter:this.filter,layout:this._unevaluatedLayout&&this._unevaluatedLayout.serialize(),paint:this._transitionablePaint&&this._transitionablePaint.serialize()};return this.visibility&&(t.layout=t.layout||{},t.layout.visibility=this.visibility),j(t,((t,e)=>!(void 0===t||"layout"===e&&!Object.keys(t).length||"paint"===e&&!Object.keys(t).length)))}_validate(t,e,r,n,i={}){return (!i||!1!==i.validate)&&qi(this,t.call(Ui,{key:e,layerType:this.type,objectKey:r,value:n,styleSpec:te,style:{glyphs:!0,sprite:!0}}))}is3D(){return !1}isSky(){return !1}isTileClipped(){return !1}hasOffscreenPass(){return !1}resize(){}isStateDependent(){for(const t in this.paint._values){const e=this.paint.get(t);if(e instanceof Ts&&Ln(e.property.specification)&&("source"===e.value.kind||"composite"===e.value.kind)&&e.value.isStateDependent)return !0}return !1}compileFilter(){this._filterCompiled||(this._featureFilter=hi(this.filter),this._filterCompiled=!0);}invalidateCompiledFilter(){this._filterCompiled=!1;}dynamicFilter(){return this._featureFilter.dynamicFilter}dynamicFilterNeedsFeature(){return this._featureFilter.needFeature}}const no=Rs([{name:"a_pos",components:2,type:"Int16"}],4),io=Rs([{name:"a_pos_3",components:3,type:"Int16"},{name:"a_pos_normal_3",components:3,type:"Int16"}]);class so{constructor(t=[]){this.segments=t;}prepareSegment(t,e,r,n){let i=this.segments[this.segments.length-1];return t>so.MAX_VERTEX_ARRAY_LENGTH&&N(`Max vertices per segment is ${so.MAX_VERTEX_ARRAY_LENGTH}: bucket requested ${t}`),(!i||i.vertexLength+t>so.MAX_VERTEX_ARRAY_LENGTH||i.sortKey!==n)&&(i={vertexOffset:e.length,primitiveOffset:r.length,vertexLength:0,primitiveLength:0},void 0!==n&&(i.sortKey=n),this.segments.push(i)),i}get(){return this.segments}destroy(){for(const t of this.segments)for(const e in t.vaos)t.vaos[e].destroy();}static simpleSegment(t,e,r,n){return new so([{vertexOffset:t,primitiveOffset:e,vertexLength:r,primitiveLength:n,vaos:{},sortKey:0}])}}so.MAX_VERTEX_ARRAY_LENGTH=Math.pow(2,16)-1,Ji(so,"SegmentVector");var ao=8192;class oo{constructor(t,e){t&&(e?this.setSouthWest(t).setNorthEast(e):4===t.length?this.setSouthWest([t[0],t[1]]).setNorthEast([t[2],t[3]]):this.setSouthWest(t[0]).setNorthEast(t[1]));}setNorthEast(t){return this._ne=t instanceof Ol?new Ol(t.lng,t.lat):Ol.convert(t),this}setSouthWest(t){return this._sw=t instanceof Ol?new Ol(t.lng,t.lat):Ol.convert(t),this}extend(t){const e=this._sw,r=this._ne;let n,i;if(t instanceof Ol)n=t,i=t;else {if(!(t instanceof oo))return Array.isArray(t)?4===t.length||t.every(Array.isArray)?this.extend(oo.convert(t)):this.extend(Ol.convert(t)):"object"==typeof t&&null!==t&&t.hasOwnProperty("lat")&&(t.hasOwnProperty("lon")||t.hasOwnProperty("lng"))?this.extend(Ol.convert(t)):this;if(n=t._sw,i=t._ne,!n||!i)return this}return e||r?(e.lng=Math.min(n.lng,e.lng),e.lat=Math.min(n.lat,e.lat),r.lng=Math.max(i.lng,r.lng),r.lat=Math.max(i.lat,r.lat)):(this._sw=new Ol(n.lng,n.lat),this._ne=new Ol(i.lng,i.lat)),this}getCenter(){return new Ol((this._sw.lng+this._ne.lng)/2,(this._sw.lat+this._ne.lat)/2)}getSouthWest(){return this._sw}getNorthEast(){return this._ne}getNorthWest(){return new Ol(this.getWest(),this.getNorth())}getSouthEast(){return new Ol(this.getEast(),this.getSouth())}getWest(){return this._sw.lng}getSouth(){return this._sw.lat}getEast(){return this._ne.lng}getNorth(){return this._ne.lat}toArray(){return [this._sw.toArray(),this._ne.toArray()]}toString(){return `LngLatBounds(${this._sw.toString()}, ${this._ne.toString()})`}isEmpty(){return !(this._sw&&this._ne)}contains(t){const{lng:e,lat:r}=Ol.convert(t);let n=this._sw.lng<=e&&e<=this._ne.lng;return this._sw.lng>this._ne.lng&&(n=this._sw.lng>=e&&e>=this._ne.lng),this._sw.lat<=r&&r<=this._ne.lat&&n}static convert(t){return !t||t instanceof oo?t:new oo(t)}}var lo=1e-6,uo="undefined"!=typeof Float32Array?Float32Array:Array;function co(){var t=new uo(9);return uo!=Float32Array&&(t[1]=0,t[2]=0,t[3]=0,t[5]=0,t[6]=0,t[7]=0),t[0]=1,t[4]=1,t[8]=1,t}function ho(t,e,r){var n=e[0],i=e[1],s=e[2],a=e[3],o=e[4],l=e[5],u=e[6],c=e[7],h=e[8],p=r[0],d=r[1],f=r[2],y=r[3],m=r[4],g=r[5],x=r[6],v=r[7],b=r[8];return t[0]=p*n+d*a+f*u,t[1]=p*i+d*o+f*c,t[2]=p*s+d*l+f*h,t[3]=y*n+m*a+g*u,t[4]=y*i+m*o+g*c,t[5]=y*s+m*l+g*h,t[6]=x*n+v*a+b*u,t[7]=x*i+v*o+b*c,t[8]=x*s+v*l+b*h,t}function po(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function fo(t,e){var r=e[0],n=e[1],i=e[2],s=e[3],a=e[4],o=e[5],l=e[6],u=e[7],c=e[8],h=e[9],p=e[10],d=e[11],f=e[12],y=e[13],m=e[14],g=e[15],x=r*o-n*a,v=r*l-i*a,b=r*u-s*a,w=n*l-i*o,_=n*u-s*o,A=i*u-s*l,S=c*y-h*f,k=c*m-p*f,I=c*g-d*f,M=h*m-p*y,T=h*g-d*y,z=p*g-d*m,B=x*z-v*T+b*M+w*I-_*k+A*S;return B?(t[0]=(o*z-l*T+u*M)*(B=1/B),t[1]=(i*T-n*z-s*M)*B,t[2]=(y*A-m*_+g*w)*B,t[3]=(p*_-h*A-d*w)*B,t[4]=(l*I-a*z-u*k)*B,t[5]=(r*z-i*I+s*k)*B,t[6]=(m*b-f*A-g*v)*B,t[7]=(c*A-p*b+d*v)*B,t[8]=(a*T-o*I+u*S)*B,t[9]=(n*I-r*T-s*S)*B,t[10]=(f*_-y*b+g*x)*B,t[11]=(h*b-c*_-d*x)*B,t[12]=(o*k-a*M-l*S)*B,t[13]=(r*M-n*k+i*S)*B,t[14]=(y*v-f*w-m*x)*B,t[15]=(c*w-h*v+p*x)*B,t):null}function yo(t,e,r){var n=e[0],i=e[1],s=e[2],a=e[3],o=e[4],l=e[5],u=e[6],c=e[7],h=e[8],p=e[9],d=e[10],f=e[11],y=e[12],m=e[13],g=e[14],x=e[15],v=r[0],b=r[1],w=r[2],_=r[3];return t[0]=v*n+b*o+w*h+_*y,t[1]=v*i+b*l+w*p+_*m,t[2]=v*s+b*u+w*d+_*g,t[3]=v*a+b*c+w*f+_*x,t[4]=(v=r[4])*n+(b=r[5])*o+(w=r[6])*h+(_=r[7])*y,t[5]=v*i+b*l+w*p+_*m,t[6]=v*s+b*u+w*d+_*g,t[7]=v*a+b*c+w*f+_*x,t[8]=(v=r[8])*n+(b=r[9])*o+(w=r[10])*h+(_=r[11])*y,t[9]=v*i+b*l+w*p+_*m,t[10]=v*s+b*u+w*d+_*g,t[11]=v*a+b*c+w*f+_*x,t[12]=(v=r[12])*n+(b=r[13])*o+(w=r[14])*h+(_=r[15])*y,t[13]=v*i+b*l+w*p+_*m,t[14]=v*s+b*u+w*d+_*g,t[15]=v*a+b*c+w*f+_*x,t}function mo(t,e,r){var n,i,s,a,o,l,u,c,h,p,d,f,y=r[0],m=r[1],g=r[2];return e===t?(t[12]=e[0]*y+e[4]*m+e[8]*g+e[12],t[13]=e[1]*y+e[5]*m+e[9]*g+e[13],t[14]=e[2]*y+e[6]*m+e[10]*g+e[14],t[15]=e[3]*y+e[7]*m+e[11]*g+e[15]):(i=e[1],s=e[2],a=e[3],o=e[4],l=e[5],u=e[6],c=e[7],h=e[8],p=e[9],d=e[10],f=e[11],t[0]=n=e[0],t[1]=i,t[2]=s,t[3]=a,t[4]=o,t[5]=l,t[6]=u,t[7]=c,t[8]=h,t[9]=p,t[10]=d,t[11]=f,t[12]=n*y+o*m+h*g+e[12],t[13]=i*y+l*m+p*g+e[13],t[14]=s*y+u*m+d*g+e[14],t[15]=a*y+c*m+f*g+e[15]),t}function go(t,e,r){var n=r[0],i=r[1],s=r[2];return t[0]=e[0]*n,t[1]=e[1]*n,t[2]=e[2]*n,t[3]=e[3]*n,t[4]=e[4]*i,t[5]=e[5]*i,t[6]=e[6]*i,t[7]=e[7]*i,t[8]=e[8]*s,t[9]=e[9]*s,t[10]=e[10]*s,t[11]=e[11]*s,t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t}function xo(t,e,r){var n=Math.sin(r),i=Math.cos(r),s=e[4],a=e[5],o=e[6],l=e[7],u=e[8],c=e[9],h=e[10],p=e[11];return e!==t&&(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t[4]=s*i+u*n,t[5]=a*i+c*n,t[6]=o*i+h*n,t[7]=l*i+p*n,t[8]=u*i-s*n,t[9]=c*i-a*n,t[10]=h*i-o*n,t[11]=p*i-l*n,t}function vo(t,e,r){var n=Math.sin(r),i=Math.cos(r),s=e[0],a=e[1],o=e[2],l=e[3],u=e[8],c=e[9],h=e[10],p=e[11];return e!==t&&(t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t[0]=s*i-u*n,t[1]=a*i-c*n,t[2]=o*i-h*n,t[3]=l*i-p*n,t[8]=s*n+u*i,t[9]=a*n+c*i,t[10]=o*n+h*i,t[11]=l*n+p*i,t}function bo(t,e){return t[0]=e[0],t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e[1],t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e[2],t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function wo(t,e,r){var n,i,s,a=r[0],o=r[1],l=r[2],u=Math.hypot(a,o,l);return u0&&(s=1/Math.sqrt(s)),t[0]=e[0]*s,t[1]=e[1]*s,t[2]=e[2]*s,t}function Vo(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function Lo(t,e,r){var n=e[0],i=e[1],s=e[2],a=r[0],o=r[1],l=r[2];return t[0]=i*l-s*o,t[1]=s*a-n*l,t[2]=n*o-i*a,t}function Fo(t,e,r){var n=e[0],i=e[1],s=e[2],a=r[3]*n+r[7]*i+r[11]*s+r[15];return t[0]=(r[0]*n+r[4]*i+r[8]*s+r[12])/(a=a||1),t[1]=(r[1]*n+r[5]*i+r[9]*s+r[13])/a,t[2]=(r[2]*n+r[6]*i+r[10]*s+r[14])/a,t}function Ro(t,e,r){var n=r[0],i=r[1],s=r[2],a=e[0],o=e[1],l=e[2],u=i*l-s*o,c=s*a-n*l,h=n*o-i*a,p=i*h-s*c,d=s*u-n*h,f=n*c-i*u,y=2*r[3];return c*=y,h*=y,d*=2,f*=2,t[0]=a+(u*=y)+(p*=2),t[1]=o+c+d,t[2]=l+h+f,t}var Uo,$o=To,jo=zo,Oo=ko;function qo(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t[3]=e[3]*r,t}function No(t,e){var r=e[0],n=e[1],i=e[2],s=e[3],a=r*r+n*n+i*i+s*s;return a>0&&(a=1/Math.sqrt(a)),t[0]=r*a,t[1]=n*a,t[2]=i*a,t[3]=s*a,t}function Go(t,e,r){var n=e[0],i=e[1],s=e[2],a=e[3];return t[0]=r[0]*n+r[4]*i+r[8]*s+r[12]*a,t[1]=r[1]*n+r[5]*i+r[9]*s+r[13]*a,t[2]=r[2]*n+r[6]*i+r[10]*s+r[14]*a,t[3]=r[3]*n+r[7]*i+r[11]*s+r[15]*a,t}function Zo(){var t=new uo(4);return uo!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t[3]=1,t}function Ko(t){return t[0]=0,t[1]=0,t[2]=0,t[3]=1,t}function Xo(t,e,r){r*=.5;var n=e[0],i=e[1],s=e[2],a=e[3],o=Math.sin(r),l=Math.cos(r);return t[0]=n*l+a*o,t[1]=i*l+s*o,t[2]=s*l-i*o,t[3]=a*l-n*o,t}function Jo(t,e,r){r*=.5;var n=e[0],i=e[1],s=e[2],a=e[3],o=Math.sin(r),l=Math.cos(r);return t[0]=n*l-s*o,t[1]=i*l+a*o,t[2]=s*l+n*o,t[3]=a*l-i*o,t}Ao(),Uo=new uo(4),uo!=Float32Array&&(Uo[0]=0,Uo[1]=0,Uo[2]=0,Uo[3]=0);var Ho=No;Ao(),Io(1,0,0),Io(0,1,0),Zo(),Zo(),co();const Yo=Rs([{type:"Float32",name:"a_globe_pos",components:3},{type:"Float32",name:"a_uv",components:2}]),{members:Wo}=Yo,Qo=Rs([{name:"a_pos_3",components:3,type:"Int16"}]);var tl=Rs([{name:"a_pos",type:"Int16",components:2}]);class el{constructor(t,e){this.pos=t,this.dir=e;}intersectsPlane(t,e,r){const n=Vo(e,this.dir);if(Math.abs(n)<1e-6)return !1;const i=((t[0]-this.pos[0])*e[0]+(t[1]-this.pos[1])*e[1]+(t[2]-this.pos[2])*e[2])/n;return r[0]=this.pos[0]+this.dir[0]*i,r[1]=this.pos[1]+this.dir[1]*i,r[2]=this.pos[2]+this.dir[2]*i,!0}closestPointOnSphere(t,e,r){if(function(t,e){var r=t[0],n=t[1],i=t[2],s=e[0],a=e[1],o=e[2];return Math.abs(r-s)<=lo*Math.max(1,Math.abs(r),Math.abs(s))&&Math.abs(n-a)<=lo*Math.max(1,Math.abs(n),Math.abs(a))&&Math.abs(i-o)<=lo*Math.max(1,Math.abs(i),Math.abs(o))}(this.pos,t)||0===e)return r[0]=r[1]=r[2]=0,!1;const[n,i,s]=this.dir,a=this.pos[0]-t[0],o=this.pos[1]-t[1],l=this.pos[2]-t[2],u=n*n+i*i+s*s,c=2*(a*n+o*i+l*s),h=c*c-4*u*(a*a+o*o+l*l-e*e);if(h<0){const t=Math.max(-c/2,0),u=a+n*t,h=o+i*t,p=l+s*t,d=Math.hypot(u,h,p);return r[0]=u*e/d,r[1]=h*e/d,r[2]=p*e/d,!1}{const t=(-c-Math.sqrt(h))/(2*u);if(t<0){const t=Math.hypot(a,o,l);return r[0]=a*e/t,r[1]=o*e/t,r[2]=l*e/t,!1}return r[0]=a+n*t,r[1]=o+i*t,r[2]=l+s*t,!0}}}class rl{constructor(t,e,r,n,i){this.TL=t,this.TR=e,this.BR=r,this.BL=n,this.horizon=i;}static fromInvProjectionMatrix(t,e,r){const n=[-1,1,1],i=[1,1,1],s=[1,-1,1],a=[-1,-1,1],o=Fo(n,n,t),l=Fo(i,i,t),u=Fo(s,s,t),c=Fo(a,a,t);return new rl(o,l,u,c,e/r)}}class nl{constructor(t,e){this.points=t,this.planes=e;}static fromInvProjectionMatrix(t,e,r,n){const i=Math.pow(2,r),s=[[-1,1,-1,1],[1,1,-1,1],[1,-1,-1,1],[-1,-1,-1,1],[-1,1,1,1],[1,1,1,1],[1,-1,1,1],[-1,-1,1,1]].map((r=>{const s=Go([],r,t),a=1/s[3]/e*i;return function(t,e,r){return t[0]=e[0]*r[0],t[1]=e[1]*r[1],t[2]=e[2]*r[2],t[3]=e[3]*r[3],t}(s,s,[a,a,n?1/s[3]:a,a])})),a=[[0,1,2],[6,5,4],[0,3,7],[2,1,5],[3,2,6],[0,4,5]].map((t=>{const e=Do([],Lo([],$o([],s[t[0]],s[t[1]]),$o([],s[t[2]],s[t[1]]))),r=-Vo(e,s[t[1]]);return e.concat(r)}));return new nl(s,a)}}class il{static fromPoints(t){const e=[1/0,1/0,1/0],r=[-1/0,-1/0,-1/0];for(const n of t)Bo(e,e,n),Eo(r,r,n);return new il(e,r)}static applyTransform(t,e){const r=t.getCorners();for(let t=0;t=0;if(0===s)return 0;s!==e.length&&(r=!1);}if(r)return 2;for(let e=0;e<3;e++){let r=Number.MAX_VALUE,n=-Number.MAX_VALUE;for(let i=0;ithis.max[e]-this.min[e])return 0}return 1}}const sl=5,al=6,ol=ao/Math.PI/2,ll=16383,ul=64,cl=[ul,32,16],hl=-ol,pl=ol,dl=[new il([hl,hl,hl],[pl,pl,pl]),new il([hl,hl,hl],[0,0,pl]),new il([0,hl,hl],[pl,0,pl]),new il([hl,0,hl],[0,pl,pl]),new il([0,0,hl],[pl,pl,pl])];function fl(t){return t*ol/Ul}function yl(t,e,r,n=!0){const i=Co([],t._camera.position,t.worldSize),s=[e,r,1,1];Go(s,s,t.pixelMatrixInverse),qo(s,s,1/s[3]);const a=Do([],$o([],s,i)),o=t.globeMatrix,l=[o[12],o[13],o[14]],u=$o([],l,i),c=ko(u),h=Do([],u),p=t.worldSize/(2*Math.PI),d=Vo(h,a),f=Math.asin(p/c);if(f1?null:function(t,e,r,n){const i=Math.sin(r);return t*(Math.sin((1-n)*r)/i)+e*(Math.sin(n*r)/i)}(t.a[e],t.b[e],t.angle,M(r,0,1))+t.center[e]}function xl(t){if(t.z<=1)return dl[t.z+2*t.y+t.x];const e=Sl(Al(t));return il.fromPoints(e)}function vl(t,e,r){return Co(t,t,1-r),Po(t,t,e,r)}function bl(t,e){const r=Pl(e.zoom);if(0===r)return xl(t);const n=Al(t),i=Sl(n),s=Nl(n.getWest())*e.worldSize,a=Nl(n.getEast())*e.worldSize,o=Gl(n.getNorth())*e.worldSize,l=Gl(n.getSouth())*e.worldSize,u=[s,o,0],c=[a,o,0],h=[s,l,0],p=[a,l,0],d=fo([],e.globeMatrix);return Fo(u,u,d),Fo(c,c,d),Fo(h,h,d),Fo(p,p,d),i[0]=vl(i[0],h,r),i[1]=vl(i[1],p,r),i[2]=vl(i[2],c,r),i[3]=vl(i[3],u,r),il.fromPoints(i)}function wl(t,e,r){for(const n of t)Fo(n,n,e),Co(n,n,r);}function _l(t,e,r){const n=e/t.worldSize,i=t.globeMatrix;if(r.z<=1){const t=xl(r).getCorners();return wl(t,i,n),il.fromPoints(t)}const s=Al(r),a=Sl(s);wl(a,i,n);const o=Number.MAX_VALUE,l=[-o,-o,-o],u=[o,o,o];if(s.contains(t.center)){for(const t of a)Bo(u,u,t),Eo(l,l,t);l[2]=0;const e=t.point,r=[e.x*n,e.y*n,0];return Bo(u,u,r),Eo(l,l,r),new il(u,l)}const c=[i[12]*n,i[13]*n,i[14]*n],h=s.getCenter(),p=M(t.center.lat,-Hl,Hl),d=M(h.lat,-Hl,Hl),f=Nl(t.center.lng),y=Gl(p);let m=f-Nl(h.lng);const g=y-Gl(d);m>.5?m-=1:m<-.5&&(m+=1);let x=0;Math.abs(m)>Math.abs(g)?x=m>=0?1:3:(x=g>=0?0:2,Po(c,c,[i[4]*n,i[5]*n,i[6]*n],-Math.sin(w(g>=0?s.getSouth():s.getNorth()))*ol));const v=a[x],b=a[(x+1)%4],_=new ml(v,b,c),A=[gl(_,0)||v[0],gl(_,1)||v[1],gl(_,2)||v[2]],S=Pl(t.zoom);if(S>0){const n=function({x:t,y:e,z:r},n,i,s,a){const o=1/(1<.5?p=-1:d<-.5&&(p=1),l=((l+p)*n-(s*=n))*i+s,u=((u+p)*n-s)*i+s,c=(c*n-(a*=n))*i+a,h=(h*n-a)*i+a,[[l,h,0],[u,h,0],[u,c,0],[l,c,0]]}(r,e,t._pixelsPerMercatorPixel,f,y);for(let t=0;tMath.PI/2*1.01}const Ll=w(85),Fl=Math.cos(Ll),Rl=Math.sin(Ll),Ul=6371008.8,$l=2*Math.PI*Ul;class jl{constructor(t,e){if(isNaN(t)||isNaN(e))throw new Error(`Invalid LngLat object: (${t}, ${e})`);if(this.lng=+t,this.lat=+e,this.lat>90||this.lat<-90)throw new Error("Invalid LngLat latitude value: must be between -90 and 90")}wrap(){return new jl(z(this.lng,-180,180),this.lat)}toArray(){return [this.lng,this.lat]}toString(){return `LngLat(${this.lng}, ${this.lat})`}distanceTo(t){const e=Math.PI/180,r=this.lat*e,n=t.lat*e,i=Math.sin(r)*Math.sin(n)+Math.cos(r)*Math.cos(n)*Math.cos((t.lng-this.lng)*e);return Ul*Math.acos(Math.min(i,1))}toBounds(t=0){const e=360*t/40075017,r=e/Math.cos(Math.PI/180*this.lat);return new oo(new jl(this.lng-r,this.lat-e),new jl(this.lng+r,this.lat+e))}toEcef(t){const e=fl(t);return Il(this.lat,this.lng,ol+e)}static convert(t){if(t instanceof jl)return t;if(Array.isArray(t)&&(2===t.length||3===t.length))return new jl(Number(t[0]),Number(t[1]));if(!Array.isArray(t)&&"object"==typeof t&&null!==t)return new jl(Number("lng"in t?t.lng:t.lon),Number(t.lat));throw new Error("`LngLatLike` argument must be specified as a LngLat instance, an object {lng: , lat: }, an object {lon: , lat: }, or an array of [, ]")}}var Ol=jl;function ql(t){return $l*Math.cos(t*Math.PI/180)}function Nl(t){return (180+t)/360}function Gl(t){return (180-180/Math.PI*Math.log(Math.tan(Math.PI/4+t*Math.PI/360)))/360}function Zl(t,e){return t/ql(e)}function Kl(t){return 360*t-180}function Xl(t){return 360/Math.PI*Math.atan(Math.exp((180-360*t)*Math.PI/180))-90}function Jl(t,e){return t*ql(Xl(e))}const Hl=85.051129;function Yl(t){return 1/Math.cos(t*Math.PI/180)}class Wl{constructor(t,e,r=0){this.x=+t,this.y=+e,this.z=+r;}static fromLngLat(t,e=0){const r=Ol.convert(t);return new Wl(Nl(r.lng),Gl(r.lat),Zl(e,r.lat))}toLngLat(){return new Ol(Kl(this.x),Xl(this.y))}toAltitude(){return Jl(this.z,this.y)}meterInMercatorCoordinateUnits(){return 1/$l*Yl(Xl(this.y))}}function Ql(t,e,r,n,i,s,a,o,l){const u=(e+n)/2,c=(r+i)/2,h=new x(u,c);o(h),function(t,e,r,n,i,s){const a=r-i,o=n-s;return Math.abs((n-e)*a-(r-t)*o)/Math.hypot(a,o)}(h.x,h.y,s.x,s.y,a.x,a.y)>=l?(Ql(t,e,r,u,c,s,h,o,l),Ql(t,u,c,n,i,h,a,o,l)):t.push(a);}function tu(t,e,r){let n=t[0],i=n.x,s=n.y;e(n);const a=[n];for(let o=1;ot.x+1||nt.y+1)&&N("Geometry exceeds allowed extent, reduce your vector tile buffer size"),t}function au(t,e,r){const n=t.loadGeometry(),i=t.extent,s=ao/i;if(e&&r&&r.projection.isReprojectedInTileSpace){const s=1<{const r=Kl((e.x+t.x/i)/s),n=Xl((e.y+t.y/i)/s),c=u.project(r,n);t.x=(c.x*a-o)*i,t.y=(c.y*a-l)*i;};for(let e=0;e=i||r.y<0||r.y>=i||(c(r),t.push(r));n[e]=t;}}for(const t of n)for(const e of t)su(e,s);return n}function ou(t,e){return {type:t.type,id:t.id,properties:t.properties,geometry:e?au(t):[]}}function lu(t,e,r,n,i){t.emplaceBack(2*e+(n+1)/2,2*r+(i+1)/2);}function uu(t,e,r){const n=16384;t.emplaceBack(e.x,e.y,e.z,r[0]*n,r[1]*n,r[2]*n);}class cu{constructor(t){this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map((t=>t.id)),this.index=t.index,this.hasPattern=!1,this.projection=t.projection,this.layoutVertexArray=new $s,this.indexArray=new ra,this.segments=new so,this.programConfigurations=new Ja(t.layers,t.zoom),this.stateDependentLayerIds=this.layers.filter((t=>t.isStateDependent())).map((t=>t.id));}populate(t,e,r,n){const i=this.layers[0],s=[];let a=null;"circle"===i.type&&(a=i.layout.get("circle-sort-key"));for(const{feature:e,id:i,index:o,sourceLayerIndex:l}of t){const t=this.layers[0]._featureFilter.needGeometry,u=ou(e,t);if(!this.layers[0]._featureFilter.filter(new ws(this.zoom),u,r))continue;const c=a?a.evaluate(u,{},r):void 0,h={id:i,properties:e.properties,type:e.type,sourceLayerIndex:l,index:o,geometry:t?u.geometry:au(e,r,n),patterns:{},sortKey:c};s.push(h);}a&&s.sort(((t,e)=>t.sortKey-e.sortKey));let o=null;"globe"===n.projection.name&&(this.globeExtVertexArray=new Ks,o=n.projection);for(const n of s){const{geometry:i,index:s,sourceLayerIndex:a}=n,l=t[s].feature;this.addFeature(n,i,s,e.availableImages,r,o),e.featureIndex.insert(l,i,s,a,this.index);}}update(t,e,r,n){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(t,e,this.stateDependentLayers,r,n);}isEmpty(){return 0===this.layoutVertexArray.length}uploadPending(){return !this.uploaded||this.programConfigurations.needsUpload}upload(t){this.uploaded||(this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,no.members),this.indexBuffer=t.createIndexBuffer(this.indexArray),this.globeExtVertexArray&&(this.globeExtVertexBuffer=t.createVertexBuffer(this.globeExtVertexArray,io.members))),this.programConfigurations.upload(t),this.uploaded=!0;}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.globeExtVertexBuffer&&this.globeExtVertexBuffer.destroy());}addFeature(t,e,r,n,i,s){for(const r of e)for(const e of r){const r=e.x,n=e.y;if(r<0||r>=ao||n<0||n>=ao)continue;if(s){const t=s.projectTilePoint(r,n,i),e=s.upVector(i,r,n),a=this.globeExtVertexArray;uu(a,t,e),uu(a,t,e),uu(a,t,e),uu(a,t,e);}const a=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray,t.sortKey),o=a.vertexLength;lu(this.layoutVertexArray,r,n,-1,-1),lu(this.layoutVertexArray,r,n,1,-1),lu(this.layoutVertexArray,r,n,1,1),lu(this.layoutVertexArray,r,n,-1,1),this.indexArray.emplaceBack(o,o+1,o+2),this.indexArray.emplaceBack(o,o+2,o+3),a.vertexLength+=4,a.primitiveLength+=2;}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,t,r,{},n,i);}}function hu(t,e){for(let r=0;r1){if(yu(t,e))return !0;for(let n=0;n1?r:r.sub(e)._mult(i)._add(e))}function vu(t,e){let r,n,i,s=!1;for(let a=0;ae.y!=i.y>e.y&&e.x<(i.x-n.x)*(e.y-n.y)/(i.y-n.y)+n.x&&(s=!s);}return s}function bu(t,e){let r=!1;for(let n=0,i=t.length-1;ne.y!=a.y>e.y&&e.x<(a.x-s.x)*(e.y-s.y)/(a.y-s.y)+s.x&&(r=!r);}return r}function wu(t,e,r,n,i){for(const s of t)if(e<=s.x&&r<=s.y&&n>=s.x&&i>=s.y)return !0;const s=[new x(e,r),new x(e,i),new x(n,i),new x(n,r)];if(t.length>2)for(const e of s)if(bu(t,e))return !0;for(let e=0;ei.x&&e.x>i.x||t.yi.y&&e.y>i.y)return !1;const s=G(t,e,r[0]);return s!==G(t,e,r[1])||s!==G(t,e,r[2])||s!==G(t,e,r[3])}function Au(t,e,r){const n=e.paint.get(t).value;return "constant"===n.kind?n.value:r.programConfigurations.get(e.id).getMaxValue(t)}function Su(t){return Math.sqrt(t[0]*t[0]+t[1]*t[1])}function ku(t,e,r,n,i){if(!e[0]&&!e[1])return t;const s=x.convert(e)._mult(i);"viewport"===r&&s._rotate(-n);const a=[];for(let e=0;e0){const t=r.projection.upVector(u,h.x,h.y);d.x+=t[0]*c*p,d.y+=t[1]*c*p,d.z+=t[2]*c*p;}const f=s?h:Bu(d.x,d.y,d.z,n),y=s?t.tilespaceRays.map((t=>Pu(t,p))):t.queryGeometry.screenGeometry,m=Go([],[d.x,d.y,d.z,1],n);if(!a&&s?l*=m[3]/r.cameraToCenterDistance:a&&!s&&(l*=r.cameraToCenterDistance/m[3]),s){const t=Xl((e.y/ao+u.y)/(1<t.width||i.height>t.height||r.x>t.width-i.width||r.y>t.height-i.height)throw new RangeError("out of range source coordinates for image copy");if(i.width>e.width||i.height>e.height||n.x>e.width-i.width||n.y>e.height-i.height)throw new RangeError("out of range destination coordinates for image copy");const a=t.data,o=e.data;for(let l=0;l{e[t.evaluationKey]=s;const a=t.expression.evaluate(e);i.data[r+n+0]=Math.floor(255*a.r/a.a),i.data[r+n+1]=Math.floor(255*a.g/a.a),i.data[r+n+2]=Math.floor(255*a.b/a.a),i.data[r+n+3]=Math.floor(255*a.a);};if(t.clips)for(let e=0,i=0;e80*r){n=s=t[0],i=a=t[1];for(var f=r;fs&&(s=o),l>a&&(a=l);u=0!==(u=Math.max(s-n,a-i))?32767/u:0;}return Ju(p,d,r,n,i,u,0),d}function Ku(t,e,r,n,i){var s,a;if(i===gc(t,e,r,n)>0)for(s=e;s=e;s-=n)a=fc(s,t[s],t[s+1],a);return a&&lc(a,a.next)&&(yc(a),a=a.next),a}function Xu(t,e){if(!t)return t;e||(e=t);var r,n=t;do{if(r=!1,n.steiner||!lc(n,n.next)&&0!==oc(n.prev,n,n.next))n=n.next;else {if(yc(n),(n=e=n.prev)===n.next)break;r=!0;}}while(r||n!==e);return e}function Ju(t,e,r,n,i,s,a){if(t){!a&&s&&function(t,e,r,n){var i=t;do{0===i.z&&(i.z=nc(i.x,i.y,e,r,n)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next;}while(i!==t);i.prevZ.nextZ=null,i.prevZ=null,function(t){var e,r,n,i,s,a,o,l,u=1;do{for(r=t,t=null,s=null,a=0;r;){for(a++,n=r,o=0,e=0;e0||l>0&&n;)0!==o&&(0===l||!n||r.z<=n.z)?(i=r,r=r.nextZ,o--):(i=n,n=n.nextZ,l--),s?s.nextZ=i:t=i,i.prevZ=s,s=i;r=n;}s.nextZ=null,u*=2;}while(a>1)}(i);}(t,n,i,s);for(var o,l,u=t;t.prev!==t.next;)if(o=t.prev,l=t.next,s?Yu(t,n,i,s):Hu(t))e.push(o.i/r|0),e.push(t.i/r|0),e.push(l.i/r|0),yc(t),t=l.next,u=l.next;else if((t=l)===u){a?1===a?Ju(t=Wu(Xu(t),e,r),e,r,n,i,s,2):2===a&&Qu(t,e,r,n,i,s):Ju(Xu(t),e,r,n,i,s,1);break}}}function Hu(t){var e=t.prev,r=t,n=t.next;if(oc(e,r,n)>=0)return !1;for(var i=e.x,s=r.x,a=n.x,o=e.y,l=r.y,u=n.y,c=is?i>a?i:a:s>a?s:a,d=o>l?o>u?o:u:l>u?l:u,f=n.next;f!==e;){if(f.x>=c&&f.x<=p&&f.y>=h&&f.y<=d&&sc(i,o,s,l,a,u,f.x,f.y)&&oc(f.prev,f,f.next)>=0)return !1;f=f.next;}return !0}function Yu(t,e,r,n){var i=t.prev,s=t,a=t.next;if(oc(i,s,a)>=0)return !1;for(var o=i.x,l=s.x,u=a.x,c=i.y,h=s.y,p=a.y,d=ol?o>u?o:u:l>u?l:u,m=c>h?c>p?c:p:h>p?h:p,g=nc(d,f,e,r,n),x=nc(y,m,e,r,n),v=t.prevZ,b=t.nextZ;v&&v.z>=g&&b&&b.z<=x;){if(v.x>=d&&v.x<=y&&v.y>=f&&v.y<=m&&v!==i&&v!==a&&sc(o,c,l,h,u,p,v.x,v.y)&&oc(v.prev,v,v.next)>=0)return !1;if(v=v.prevZ,b.x>=d&&b.x<=y&&b.y>=f&&b.y<=m&&b!==i&&b!==a&&sc(o,c,l,h,u,p,b.x,b.y)&&oc(b.prev,b,b.next)>=0)return !1;b=b.nextZ;}for(;v&&v.z>=g;){if(v.x>=d&&v.x<=y&&v.y>=f&&v.y<=m&&v!==i&&v!==a&&sc(o,c,l,h,u,p,v.x,v.y)&&oc(v.prev,v,v.next)>=0)return !1;v=v.prevZ;}for(;b&&b.z<=x;){if(b.x>=d&&b.x<=y&&b.y>=f&&b.y<=m&&b!==i&&b!==a&&sc(o,c,l,h,u,p,b.x,b.y)&&oc(b.prev,b,b.next)>=0)return !1;b=b.nextZ;}return !0}function Wu(t,e,r){var n=t;do{var i=n.prev,s=n.next.next;!lc(i,s)&&uc(i,n,n.next,s)&&pc(i,s)&&pc(s,i)&&(e.push(i.i/r|0),e.push(n.i/r|0),e.push(s.i/r|0),yc(n),yc(n.next),n=t=s),n=n.next;}while(n!==t);return Xu(n)}function Qu(t,e,r,n,i,s){var a=t;do{for(var o=a.next.next;o!==a.prev;){if(a.i!==o.i&&ac(a,o)){var l=dc(a,o);return a=Xu(a,a.next),l=Xu(l,l.next),Ju(a,e,r,n,i,s,0),void Ju(l,e,r,n,i,s,0)}o=o.next;}a=a.next;}while(a!==t)}function tc(t,e){return t.x-e.x}function ec(t,e){var r=function(t,e){var r,n=e,i=t.x,s=t.y,a=-1/0;do{if(s<=n.y&&s>=n.next.y&&n.next.y!==n.y){var o=n.x+(s-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(o<=i&&o>a&&(a=o,r=n.x=n.x&&n.x>=c&&i!==n.x&&sc(sr.x||n.x===r.x&&rc(r,n)))&&(r=n,p=l)),n=n.next;}while(n!==u);return r}(t,e);if(!r)return e;var n=dc(r,t);return Xu(n,n.next),Xu(r,r.next)}function rc(t,e){return oc(t.prev,t,e.prev)<0&&oc(e.next,t,t.next)<0}function nc(t,e,r,n,i){return (t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=(t-r)*i|0)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=(e-n)*i|0)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function ic(t){var e=t,r=t;do{(e.x=(t-a)*(s-o)&&(t-a)*(n-o)>=(r-a)*(e-o)&&(r-a)*(s-o)>=(i-a)*(n-o)}function ac(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!function(t,e){var r=t;do{if(r.i!==t.i&&r.next.i!==t.i&&r.i!==e.i&&r.next.i!==e.i&&uc(r,r.next,t,e))return !0;r=r.next;}while(r!==t);return !1}(t,e)&&(pc(t,e)&&pc(e,t)&&function(t,e){var r=t,n=!1,i=(t.x+e.x)/2,s=(t.y+e.y)/2;do{r.y>s!=r.next.y>s&&r.next.y!==r.y&&i<(r.next.x-r.x)*(s-r.y)/(r.next.y-r.y)+r.x&&(n=!n),r=r.next;}while(r!==t);return n}(t,e)&&(oc(t.prev,t,e.prev)||oc(t,e.prev,e))||lc(t,e)&&oc(t.prev,t,t.next)>0&&oc(e.prev,e,e.next)>0)}function oc(t,e,r){return (e.y-t.y)*(r.x-e.x)-(e.x-t.x)*(r.y-e.y)}function lc(t,e){return t.x===e.x&&t.y===e.y}function uc(t,e,r,n){var i=hc(oc(t,e,r)),s=hc(oc(t,e,n)),a=hc(oc(r,n,t)),o=hc(oc(r,n,e));return i!==s&&a!==o||!(0!==i||!cc(t,r,e))||!(0!==s||!cc(t,n,e))||!(0!==a||!cc(r,t,n))||!(0!==o||!cc(r,e,n))}function cc(t,e,r){return e.x<=Math.max(t.x,r.x)&&e.x>=Math.min(t.x,r.x)&&e.y<=Math.max(t.y,r.y)&&e.y>=Math.min(t.y,r.y)}function hc(t){return t>0?1:t<0?-1:0}function pc(t,e){return oc(t.prev,t,t.next)<0?oc(t,e,t.next)>=0&&oc(t,t.prev,e)>=0:oc(t,e,t.prev)<0||oc(t,t.next,e)<0}function dc(t,e){var r=new mc(t.i,t.x,t.y),n=new mc(e.i,e.x,e.y),i=t.next,s=e.prev;return t.next=e,e.prev=t,r.next=i,i.prev=r,n.next=r,r.prev=n,s.next=n,n.prev=s,n}function fc(t,e,r,n){var i=new mc(t,e,r);return n?(i.next=n.next,i.prev=n,n.next.prev=i,n.next=i):(i.prev=i,i.next=i),i}function yc(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ);}function mc(t,e,r){this.i=t,this.x=e,this.y=r,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1;}function gc(t,e,r,n){for(var i=0,s=e,a=r-n;s0&&r.holes.push(n+=t[i-1].length);}return r};var xc=p(Gu.exports);function vc(t,e,r,n,i){bc(t,e,r||0,n||t.length-1,i||_c);}function bc(t,e,r,n,i){for(;n>r;){if(n-r>600){var s=n-r+1,a=e-r+1,o=Math.log(s),l=.5*Math.exp(2*o/3),u=.5*Math.sqrt(o*l*(s-l)/s)*(a-s/2<0?-1:1);bc(t,e,Math.max(r,Math.floor(e-a*l/s+u)),Math.min(n,Math.floor(e+(s-a)*l/s+u)),i);}var c=t[e],h=r,p=n;for(wc(t,r,e),i(t[n],c)>0&&wc(t,r,n);h0;)p--;}0===i(t[r],c)?wc(t,r,p):wc(t,++p,n),p<=e&&(r=p+1),e<=p&&(n=p-1);}}function wc(t,e,r){var n=t[e];t[e]=t[r],t[r]=n;}function _c(t,e){return te?1:0}function Ac(t,e){const r=t.length;if(r<=1)return [t];const n=[];let i,s;for(let e=0;e1)for(let t=0;tt.id)),this.index=t.index,this.hasPattern=!1,this.patternFeatures=[],this.layoutVertexArray=new $s,this.indexArray=new ra,this.indexArray2=new la,this.programConfigurations=new Ja(t.layers,t.zoom),this.segments=new so,this.segments2=new so,this.stateDependentLayerIds=this.layers.filter((t=>t.isStateDependent())).map((t=>t.id)),this.projection=t.projection;}populate(t,e,r,n){this.hasPattern=kc("fill",this.layers,e);const i=this.layers[0].layout.get("fill-sort-key"),s=[];for(const{feature:a,id:o,index:l,sourceLayerIndex:u}of t){const t=this.layers[0]._featureFilter.needGeometry,c=ou(a,t);if(!this.layers[0]._featureFilter.filter(new ws(this.zoom),c,r))continue;const h=i?i.evaluate(c,{},r,e.availableImages):void 0,p={id:o,properties:a.properties,type:a.type,sourceLayerIndex:u,index:l,geometry:t?c.geometry:au(a,r,n),patterns:{},sortKey:h};s.push(p);}i&&s.sort(((t,e)=>t.sortKey-e.sortKey));for(const n of s){const{geometry:i,index:s,sourceLayerIndex:a}=n;if(this.hasPattern){const t=Ic("fill",this.layers,n,this.zoom,e);this.patternFeatures.push(t);}else this.addFeature(n,i,s,r,{},e.availableImages);e.featureIndex.insert(t[s].feature,i,s,a,this.index);}}update(t,e,r,n){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(t,e,this.stateDependentLayers,r,n);}addFeatures(t,e,r,n,i){for(const t of this.patternFeatures)this.addFeature(t,t.geometry,t.index,e,r,n);}isEmpty(){return 0===this.layoutVertexArray.length}uploadPending(){return !this.uploaded||this.programConfigurations.needsUpload}upload(t){this.uploaded||(this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,Nu),this.indexBuffer=t.createIndexBuffer(this.indexArray),this.indexBuffer2=t.createIndexBuffer(this.indexArray2)),this.programConfigurations.upload(t),this.uploaded=!0;}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.indexBuffer2.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.segments2.destroy());}addFeature(t,e,r,n,i,s=[]){for(const t of Ac(e,500)){let e=0;for(const r of t)e+=r.length;const r=this.segments.prepareSegment(e,this.layoutVertexArray,this.indexArray),n=r.vertexLength,i=[],s=[];for(const e of t){if(0===e.length)continue;e!==t[0]&&s.push(i.length/2);const r=this.segments2.prepareSegment(e.length,this.layoutVertexArray,this.indexArray2),n=r.vertexLength;this.layoutVertexArray.emplaceBack(e[0].x,e[0].y),this.indexArray2.emplaceBack(n+e.length-1,n),i.push(e[0].x),i.push(e[0].y);for(let t=1;t>3;}if(i--,1===n||2===n)s+=t.readSVarint(),a+=t.readSVarint(),1===n&&(e&&o.push(e),e=[]),e.push(new Vc(s,a));else {if(7!==n)throw new Error("unknown command "+n);e&&e.push(e[0].clone());}}return e&&o.push(e),o},Fc.prototype.bbox=function(){var t=this._pbf;t.pos=this._geometry;for(var e=t.readVarint()+t.pos,r=1,n=0,i=0,s=0,a=1/0,o=-1/0,l=1/0,u=-1/0;t.pos>3;}if(n--,1===r||2===r)(i+=t.readSVarint())o&&(o=i),(s+=t.readSVarint())u&&(u=s);else if(7!==r)throw new Error("unknown command "+r)}return [a,l,o,u]},Fc.prototype.toGeoJSON=function(t,e,r){var n,i,s=this.extent*Math.pow(2,r),a=this.extent*t,o=this.extent*e,l=this.loadGeometry(),u=Fc.types[this.type];function c(t){for(var e=0;e>3;e=1===n?t.readString():2===n?t.readFloat():3===n?t.readDouble():4===n?t.readVarint64():5===n?t.readVarint():6===n?t.readSVarint():7===n?t.readBoolean():null;}return e}(r));}Oc.prototype.feature=function(t){if(t<0||t>=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[t];var e=this._pbf.readVarint()+this._pbf.pos;return new $c(this._pbf,e,this.extent,this._keys,this._values)};var Nc=jc;function Gc(t,e,r){if(3===t){var n=new Nc(r,r.readVarint()+r.pos);n.length&&(e[n.name]=n);}}var Zc=Dc.VectorTile=function(t,e){this.layers=t.readFields(Gc,{},e);},Kc=Dc.VectorTileFeature=Lc;function Xc(t,e,r,n){const i=[],s=0===n?(t,e,r,n,i,s)=>{t.push(new x(s,r+(s-e)/(n-e)*(i-r)));}:(t,e,r,n,i,s)=>{t.push(new x(e+(s-r)/(i-r)*(n-e),s));};for(const a of t){const t=[];for(const i of a){if(i.length<=2)continue;const a=[];for(let t=0;te&&s(a,o,l,u,c,e):h>r?p=e&&s(a,o,l,u,c,e),p>r&&h<=r&&s(a,o,l,u,c,r);}let o=i[i.length-1];const l=0===n?o.x:o.y;l>=e&&l<=r&&a.push(o),a.length&&(o=a[a.length-1],a[0].x===o.x&&a[0].y===o.y||a.push(a[0]),t.push(a));}t.length&&i.push(t);}return i}Dc.VectorTileLayer=jc;const Jc=Kc.types,Hc=Math.pow(2,13);function Yc(t,e,r,n,i,s,a,o){t.emplaceBack((e<<1)+a,(r<<1)+s,(Math.floor(n*Hc)<<1)+i,Math.round(o));}function Wc(t,e,r){const n=16384;t.emplaceBack(e.x,e.y,e.z,r[0]*n,r[1]*n,r[2]*n);}class Qc{constructor(){this.acc=new x(0,0),this.polyCount=[];}startRing(t){this.currentPolyCount={edges:0,top:0},this.polyCount.push(this.currentPolyCount),this.min||(this.min=new x(t.x,t.y),this.max=new x(t.x,t.y));}append(t,e){this.currentPolyCount.edges++,this.acc._add(t);const r=this.min,n=this.max;t.xn.x&&(n.x=t.x),t.yn.y&&(n.y=t.y),((0===t.x||t.x===ao)&&t.x===e.x)!=((0===t.y||t.y===ao)&&t.y===e.y)&&this.processBorderOverlap(t,e),e.x<0!=t.x<0&&this.addBorderIntersection(0,Er(e.y,t.y,(0-e.x)/(t.x-e.x))),e.x>ao!=t.x>ao&&this.addBorderIntersection(1,Er(e.y,t.y,(ao-e.x)/(t.x-e.x))),e.y<0!=t.y<0&&this.addBorderIntersection(2,Er(e.x,t.x,(0-e.y)/(t.y-e.y))),e.y>ao!=t.y>ao&&this.addBorderIntersection(3,Er(e.x,t.x,(ao-e.y)/(t.y-e.y)));}addBorderIntersection(t,e){this.borders||(this.borders=[[Number.MAX_VALUE,-Number.MAX_VALUE],[Number.MAX_VALUE,-Number.MAX_VALUE],[Number.MAX_VALUE,-Number.MAX_VALUE],[Number.MAX_VALUE,-Number.MAX_VALUE]]);const r=this.borders[t];er[1]&&(r[1]=e);}processBorderOverlap(t,e){if(t.x===e.x){if(t.y===e.y)return;const r=0===t.x?0:1;this.addBorderIntersection(r,e.y),this.addBorderIntersection(r,t.y);}else {const r=0===t.y?2:3;this.addBorderIntersection(r,e.x),this.addBorderIntersection(r,t.x);}}centroid(){const t=this.polyCount.reduce(((t,e)=>t+e.edges),0);return 0!==t?this.acc.div(t)._round():new x(0,0)}span(){return new x(this.max.x-this.min.x,this.max.y-this.min.y)}intersectsCount(){return this.borders.reduce(((t,e)=>t+ +(e[0]!==Number.MAX_VALUE)),0)}}class th{constructor(t){this.zoom=t.zoom,this.canonical=t.canonical,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map((t=>t.id)),this.index=t.index,this.hasPattern=!1,this.edgeRadius=0,this.projection=t.projection,this.layoutVertexArray=new Os,this.centroidVertexArray=new wa,this.indexArray=new ra,this.programConfigurations=new Ja(t.layers,t.zoom),this.segments=new so,this.stateDependentLayerIds=this.layers.filter((t=>t.isStateDependent())).map((t=>t.id)),this.enableTerrain=t.enableTerrain;}populate(t,e,r,n){this.features=[],this.hasPattern=kc("fill-extrusion",this.layers,e),this.featuresOnBorder=[],this.borders=[[],[],[],[]],this.borderDoneWithNeighborZ=[-1,-1,-1,-1],this.tileToMeter=function(t){const e=Math.exp(Math.PI*(1-t.y/(1<=0;t--){const e=p[t];(0===e.length||(d=e[0]).every((t=>t.x<=0))||d.every((t=>t.x>=ao))||d.every((t=>t.y<=0))||d.every((t=>t.y>=ao)))&&p.splice(t,1);}var d;let f;if(u)f=lh(p,o,n);else {f=[];for(const t of p)f.push({polygon:t,bounds:o});}const y=h?this.edgeRadius:0;for(const{polygon:t,bounds:e}of f){let r=0,i=0;for(const e of t)h&&!e[0].equals(e[e.length-1])&&e.push(e[0]),i+=h?e.length-1:e.length;const s=this.segments.prepareSegment((h?5:4)*i,this.layoutVertexArray,this.indexArray);if(h){const e=[],i=[];r=s.vertexLength;for(const r of t){let a,o;r.length&&r!==t[0]&&i.push(e.length/2),a=r[1].sub(r[0])._perp()._unit();for(let t=1;t4&&sh(i[i.length-2],i[0],i[1]),d=y?rh(i[i.length-2],i[0],i[1],y):0;a=i[1].sub(i[0])._perp()._unit();let f=!0;for(let m=1,g=0;m0?1:0,S=x.dist(v);if(g+S>32768&&(g=0),y){o=b.sub(v)._perp()._unit();let t=nh(x,v,b,eh(a,o),y);isNaN(t)&&(t=0);const e=v.sub(x)._unit();x=x.add(e.mult(d))._round(),v=v.add(e.mult(-t))._round(),d=t,a=o;}const k=s.vertexLength,I=i.length>4&&sh(x,v,b);let M=ah(g,p,f);if(Yc(this.layoutVertexArray,x.x,x.y,_,A,0,0,M),Yc(this.layoutVertexArray,x.x,x.y,_,A,0,1,M),g+=S,M=ah(g,I,!f),p=I,Yc(this.layoutVertexArray,v.x,v.y,_,A,0,0,M),Yc(this.layoutVertexArray,v.x,v.y,_,A,0,1,M),s.vertexLength+=4,this.indexArray.emplaceBack(k+0,k+1,k+2),this.indexArray.emplaceBack(k+1,k+3,k+2),s.primitiveLength+=2,y){const n=r+(1===m?i.length-2:m-2),a=1===m?r:n+1;if(this.indexArray.emplaceBack(k+1,n,k+3),this.indexArray.emplaceBack(n,a,k+3),s.primitiveLength+=2,void 0===t&&(t=k),!ih(b,i[m],e)){const e=m===i.length-1?t:s.vertexLength;this.indexArray.emplaceBack(k+2,k+3,e),this.indexArray.emplaceBack(k+3,e+1,e),this.indexArray.emplaceBack(k+3,a,e+1),s.primitiveLength+=3;}f=!f;}if(u){const t=this.layoutVertexExtArray,e=l.projectTilePoint(x.x,x.y,n),r=l.projectTilePoint(v.x,v.y,n),i=l.upVector(n,x.x,x.y),s=l.upVector(n,v.x,v.y);Wc(t,e,i),Wc(t,e,i),Wc(t,r,s),Wc(t,r,s);}}h&&(r+=i.length-1);}}if(c&&c.polyCount.length>0){if(c.borders){c.vertexArrayOffset=this.centroidVertexArray.length;const t=c.borders,e=this.featuresOnBorder.push(c)-1;for(let r=0;r<4;r++)t[r][0]!==Number.MAX_VALUE&&this.borders[r].push(e);}this.encodeCentroid(c.borders?void 0:c.centroid(),c);}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,t,r,i,s,n);}sortBorders(){for(let t=0;t<4;t++)this.borders[t].sort(((e,r)=>this.featuresOnBorder[e].borders[t][0]-this.featuresOnBorder[r].borders[t][0]));}encodeCentroid(t,e,r=!0){let n,i;if(t)if(0!==t.y){const r=e.span()._mult(this.tileToMeter);n=(Math.max(t.x,1)<<3)+Math.min(7,Math.round(r.x/10)),i=(Math.max(t.y,1)<<3)+Math.min(7,Math.round(r.y/10));}else n=Math.ceil(7*(t.x+450)),i=0;else n=0,i=+r;let s=r?this.centroidVertexArray.length:e.vertexArrayOffset;for(const t of e.polyCount){r&&this.centroidVertexArray.resize(this.centroidVertexArray.length+4*t.edges+t.top);for(let e=0;er[1].x&&e.x>r[1].x||t.yr[1].y&&e.y>r[1].y}function sh(t,e,r){if(t.x<0||t.x>=ao||e.x<0||e.x>=ao||r.x<0||r.x>=ao)return !1;const n=r.sub(e),i=n.perp(),s=t.sub(e);return (n.x*s.x+n.y*s.y)/Math.sqrt((n.x*n.x+n.y*n.y)*(s.x*s.x+s.y*s.y))>-.866&&i.x*s.x+i.y*s.y<0}function ah(t,e,r){const n=e?2|t:-3&t;return r?1|n:-2&n}function oh(){const t=Math.PI/32,e=Math.tan(t),r=Ul;return r*Math.sqrt(1+2*e*e)-r}function lh(t,e,r){const n=1<{for(const r of t)a.push({polygon:r,bounds:e});},l=Math.ceil(Math.log2(r)),u=Math.ceil(Math.log2(n)),c=l-u,h=[];for(let t=0;t0?0:1);for(let t=0;te+1?d.push({polygons:p,bounds:t,depth:e+1}):o(p,t);}if(f.length){const t=[new x(0===r?c:n.x,1===r?c:n.y),a];h.length>e+1?d.push({polygons:f,bounds:t,depth:e+1}):o(f,t);}}return a}(t,e,Math.ceil((s-i)/11.25),Math.ceil((a-o)/11.25),1,((t,e,i)=>{if(0===t)return .5*(e+i);{const t=Xl((r.y+e/ao)/n);return (Gl(.5*(Xl((r.y+i/ao)/n)+t))*n-r.y)*ao}}))}Ji(th,"FillExtrusionBucket",{omit:["layers","features"]}),Ji(Qc,"PartMetadata");const uh=new Ps({"fill-extrusion-edge-radius":new Bs(te["layout_fill-extrusion"]["fill-extrusion-edge-radius"])});var ch={paint:new Ps({"fill-extrusion-opacity":new Bs(te["paint_fill-extrusion"]["fill-extrusion-opacity"]),"fill-extrusion-color":new Es(te["paint_fill-extrusion"]["fill-extrusion-color"]),"fill-extrusion-translate":new Bs(te["paint_fill-extrusion"]["fill-extrusion-translate"]),"fill-extrusion-translate-anchor":new Bs(te["paint_fill-extrusion"]["fill-extrusion-translate-anchor"]),"fill-extrusion-pattern":new Es(te["paint_fill-extrusion"]["fill-extrusion-pattern"]),"fill-extrusion-height":new Es(te["paint_fill-extrusion"]["fill-extrusion-height"]),"fill-extrusion-base":new Es(te["paint_fill-extrusion"]["fill-extrusion-base"]),"fill-extrusion-vertical-gradient":new Bs(te["paint_fill-extrusion"]["fill-extrusion-vertical-gradient"]),"fill-extrusion-ambient-occlusion-intensity":new Bs(te["paint_fill-extrusion"]["fill-extrusion-ambient-occlusion-intensity"]),"fill-extrusion-ambient-occlusion-radius":new Bs(te["paint_fill-extrusion"]["fill-extrusion-ambient-occlusion-radius"]),"fill-extrusion-rounded-roof":new Bs(te["paint_fill-extrusion"]["fill-extrusion-rounded-roof"])}),layout:uh};function hh(t,e,r){var n=2*Math.PI*6378137/256/Math.pow(2,r);return [t*n-2*Math.PI*6378137/2,e*n-2*Math.PI*6378137/2]}class ph{constructor(t,e,r){this.z=t,this.x=e,this.y=r,this.key=yh(0,t,t,e,r);}equals(t){return this.z===t.z&&this.x===t.x&&this.y===t.y}url(t,e){const r=function(t,e,r){var n=hh(256*t,256*(e=Math.pow(2,r)-e-1),r),i=hh(256*(t+1),256*(e+1),r);return n[0]+","+n[1]+","+i[0]+","+i[1]}(this.x,this.y,this.z),n=function(t,e,r){let n,i="";for(let s=t;s>0;s--)n=1<this.canonical.z?new fh(t,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y):new fh(t,this.wrap,t,this.canonical.x>>e,this.canonical.y>>e)}calculateScaledKey(t,e=!0){if(this.overscaledZ===t&&e)return this.key;if(t>this.canonical.z)return yh(this.wrap*+e,t,this.canonical.z,this.canonical.x,this.canonical.y);{const r=this.canonical.z-t;return yh(this.wrap*+e,t,t,this.canonical.x>>r,this.canonical.y>>r)}}isChildOf(t){if(t.wrap!==this.wrap)return !1;const e=this.canonical.z-t.canonical.z;return 0===t.overscaledZ||t.overscaledZ>e&&t.canonical.y===this.canonical.y>>e}children(t){if(this.overscaledZ>=t)return [new fh(this.overscaledZ+1,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y)];const e=this.canonical.z+1,r=2*this.canonical.x,n=2*this.canonical.y;return [new fh(e,this.wrap,e,r,n),new fh(e,this.wrap,e,r+1,n),new fh(e,this.wrap,e,r,n+1),new fh(e,this.wrap,e,r+1,n+1)]}isLessThan(t){return this.wrapt.wrap)&&(this.overscaledZt.overscaledZ)&&(this.canonical.xt.canonical.x)&&this.canonical.yt.id)),this.index=t.index,this.projection=t.projection,this.hasPattern=!1,this.patternFeatures=[],this.lineClipsArray=[],this.gradients={},this.layers.forEach((t=>{this.gradients[t.id]={};})),this.layoutVertexArray=new qs,this.layoutVertexArray2=new Ns,this.indexArray=new ra,this.programConfigurations=new Ja(t.layers,t.zoom),this.segments=new so,this.maxLineLength=0,this.stateDependentLayerIds=this.layers.filter((t=>t.isStateDependent())).map((t=>t.id));}populate(t,e,r,n){this.hasPattern=kc("line",this.layers,e);const i=this.layers[0].layout.get("line-sort-key"),s=[];for(const{feature:e,id:a,index:o,sourceLayerIndex:l}of t){const t=this.layers[0]._featureFilter.needGeometry,u=ou(e,t);if(!this.layers[0]._featureFilter.filter(new ws(this.zoom),u,r))continue;const c=i?i.evaluate(u,{},r):void 0,h={id:a,properties:e.properties,type:e.type,sourceLayerIndex:l,index:o,geometry:t?u.geometry:au(e,r,n),patterns:{},sortKey:c};s.push(h);}i&&s.sort(((t,e)=>t.sortKey-e.sortKey));const{lineAtlas:a,featureIndex:o}=e,l=this.addConstantDashes(a);for(const n of s){const{geometry:i,index:s,sourceLayerIndex:u}=n;if(l&&this.addFeatureDashes(n,a),this.hasPattern){const t=Ic("line",this.layers,n,this.zoom,e);this.patternFeatures.push(t);}else this.addFeature(n,i,s,r,a.positions,e.availableImages);o.insert(t[s].feature,i,s,u,this.index);}}addConstantDashes(t){let e=!1;for(const r of this.layers){const n=r.paint.get("line-dasharray").value,i=r.layout.get("line-cap").value;if("constant"!==n.kind||"constant"!==i.kind)e=!0;else {const e=i.value,r=n.value;if(!r)continue;t.addDash(r,e);}}return e}addFeatureDashes(t,e){const r=this.zoom;for(const n of this.layers){const i=n.paint.get("line-dasharray").value,s=n.layout.get("line-cap").value;if("constant"===i.kind&&"constant"===s.kind)continue;let a,o;if("constant"===i.kind){if(a=i.value,!a)continue}else a=i.evaluate({zoom:r},t);o="constant"===s.kind?s.value:s.evaluate({zoom:r},t),e.addDash(a,o),t.patterns[n.id]=e.getKey(a,o);}}update(t,e,r,n){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(t,e,this.stateDependentLayers,r,n);}addFeatures(t,e,r,n,i){for(const t of this.patternFeatures)this.addFeature(t,t.geometry,t.index,e,r,n);}isEmpty(){return 0===this.layoutVertexArray.length}uploadPending(){return !this.uploaded||this.programConfigurations.needsUpload}upload(t){this.uploaded||(0!==this.layoutVertexArray2.length&&(this.layoutVertexBuffer2=t.createVertexBuffer(this.layoutVertexArray2,Ah)),this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,wh),this.indexBuffer=t.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(t),this.uploaded=!0;}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy());}lineFeatureClips(t){if(t.properties&&t.properties.hasOwnProperty("mapbox_clip_start")&&t.properties.hasOwnProperty("mapbox_clip_end"))return {start:+t.properties.mapbox_clip_start,end:+t.properties.mapbox_clip_end}}addFeature(t,e,r,n,i,s){const a=this.layers[0].layout,o=a.get("line-join").evaluate(t,{}),l=a.get("line-cap").evaluate(t,{}),u=a.get("line-miter-limit"),c=a.get("line-round-limit");this.lineClips=this.lineFeatureClips(t);for(const r of e)this.addLine(r,t,o,l,u,c);this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,t,r,i,s,n);}addLine(t,e,r,n,i,s){if(this.distance=0,this.scaledDistance=0,this.totalDistance=0,this.lineSoFar=0,this.lineClips){this.lineClipsArray.push(this.lineClips);for(let e=0;e=2&&t[o-1].equals(t[o-2]);)o--;let l=0;for(;l0;if(w&&e>l){const t=h.dist(p);if(t>2*u){const e=h.sub(h.sub(p)._mult(u/t)._round());this.updateDistance(p,e),this.addCurrentVertex(e,f,0,0,c),p=e;}}const A=p&&d;let S=A?r:a?"butt":n;if(A&&"round"===S&&(vi&&(S="bevel"),"bevel"===S&&(v>2&&(S="flipbevel"),v100)m=y.mult(-1);else {const t=v*f.add(y).mag()/f.sub(y).mag();m._perp()._mult(t*(_?-1:1));}this.addCurrentVertex(h,m,0,0,c),this.addCurrentVertex(h,m.mult(-1),0,0,c);}else if("bevel"===S||"fakeround"===S){const t=-Math.sqrt(v*v-1),e=_?t:0,r=_?0:t;if(p&&this.addCurrentVertex(h,f,e,r,c),"fakeround"===S){const t=Math.round(180*b/Math.PI/20);for(let e=1;e2*u){const e=h.add(d.sub(h)._mult(u/t)._round());this.updateDistance(h,e),this.addCurrentVertex(e,y,0,0,c),h=e;}}}}addCurrentVertex(t,e,r,n,i,s=!1){const a=e.y*n-e.x,o=-e.y-e.x*n;this.addHalfVertex(t,e.x+e.y*r,e.y-e.x*r,s,!1,r,i),this.addHalfVertex(t,a,o,s,!0,-n,i);}addHalfVertex({x:t,y:e},r,n,i,s,a,o){this.layoutVertexArray.emplaceBack((t<<1)+(i?1:0),(e<<1)+(s?1:0),Math.round(63*r)+128,Math.round(63*n)+128,1+(0===a?0:a<0?-1:1),0,this.lineSoFar),this.lineClips&&this.layoutVertexArray2.emplaceBack(this.scaledDistance,this.lineClipsArray.length,this.lineClips.start,this.lineClips.end);const l=o.vertexLength++;this.e1>=0&&this.e2>=0&&(this.indexArray.emplaceBack(this.e1,this.e2,l),o.primitiveLength++),s?this.e2=l:this.e1=l;}updateScaledDistance(){if(this.lineClips){const t=this.totalDistance/(this.lineClips.end-this.lineClips.start);this.scaledDistance=this.distance/this.totalDistance,this.lineSoFar=t*this.lineClips.start+this.distance;}else this.lineSoFar=this.distance;}updateDistance(t,e){this.distance+=t.dist(e),this.updateScaledDistance();}}Ji(Ih,"LineBucket",{omit:["layers","patternFeatures"]});const Mh=new Ps({"line-cap":new Es(te.layout_line["line-cap"]),"line-join":new Es(te.layout_line["line-join"]),"line-miter-limit":new Bs(te.layout_line["line-miter-limit"]),"line-round-limit":new Bs(te.layout_line["line-round-limit"]),"line-sort-key":new Es(te.layout_line["line-sort-key"])});var Th={paint:new Ps({"line-opacity":new Es(te.paint_line["line-opacity"]),"line-color":new Es(te.paint_line["line-color"]),"line-translate":new Bs(te.paint_line["line-translate"]),"line-translate-anchor":new Bs(te.paint_line["line-translate-anchor"]),"line-width":new Es(te.paint_line["line-width"]),"line-gap-width":new Es(te.paint_line["line-gap-width"]),"line-offset":new Es(te.paint_line["line-offset"]),"line-blur":new Es(te.paint_line["line-blur"]),"line-dasharray":new Es(te.paint_line["line-dasharray"]),"line-pattern":new Es(te.paint_line["line-pattern"]),"line-gradient":new Cs(te.paint_line["line-gradient"]),"line-trim-offset":new Bs(te.paint_line["line-trim-offset"])}),layout:Mh};const zh=new class extends Es{possiblyEvaluate(t,e){return e=new ws(Math.floor(e.zoom),{now:e.now,fadeDuration:e.fadeDuration,transition:e.transition}),super.possiblyEvaluate(t,e)}evaluate(t,e,r,n){return e=C({},e,{zoom:Math.floor(e.zoom)}),super.evaluate(t,e,r,n)}}(Th.paint.properties["line-width"].specification);function Bh(t,e){return e>0?e+2*t:t}zh.useIntegerZoom=!0;const Eh=Rs([{name:"a_pos_offset",components:4,type:"Int16"},{name:"a_tex_size",components:4,type:"Uint16"},{name:"a_pixeloffset",components:4,type:"Int16"}],4),Ch=Rs([{name:"a_globe_anchor",components:3,type:"Int16"},{name:"a_globe_normal",components:3,type:"Float32"}],4),Ph=Rs([{name:"a_projected_pos",components:4,type:"Float32"}],4);Rs([{name:"a_fade_opacity",components:1,type:"Uint32"}],4);const Dh=Rs([{name:"a_placed",components:2,type:"Uint8"},{name:"a_shift",components:2,type:"Float32"}]),Vh=Rs([{name:"a_size_scale",components:1,type:"Float32"},{name:"a_padding",components:2,type:"Float32"}]);Rs([{type:"Int16",name:"projectedAnchorX"},{type:"Int16",name:"projectedAnchorY"},{type:"Int16",name:"projectedAnchorZ"},{type:"Int16",name:"tileAnchorX"},{type:"Int16",name:"tileAnchorY"},{type:"Float32",name:"x1"},{type:"Float32",name:"y1"},{type:"Float32",name:"x2"},{type:"Float32",name:"y2"},{type:"Int16",name:"padding"},{type:"Uint32",name:"featureIndex"},{type:"Uint16",name:"sourceLayerIndex"},{type:"Uint16",name:"bucketIndex"}]);const Lh=Rs([{name:"a_pos",components:3,type:"Int16"},{name:"a_anchor_pos",components:2,type:"Int16"},{name:"a_extrude",components:2,type:"Int16"}],4),Fh=Rs([{name:"a_pos_2f",components:2,type:"Float32"},{name:"a_radius",components:1,type:"Float32"},{name:"a_flags",components:2,type:"Int16"}],4);Rs([{name:"triangle",components:3,type:"Uint16"}]),Rs([{type:"Int16",name:"projectedAnchorX"},{type:"Int16",name:"projectedAnchorY"},{type:"Int16",name:"projectedAnchorZ"},{type:"Float32",name:"tileAnchorX"},{type:"Float32",name:"tileAnchorY"},{type:"Uint16",name:"glyphStartIndex"},{type:"Uint16",name:"numGlyphs"},{type:"Uint32",name:"vertexStartIndex"},{type:"Uint32",name:"lineStartIndex"},{type:"Uint32",name:"lineLength"},{type:"Uint16",name:"segment"},{type:"Uint16",name:"lowerSize"},{type:"Uint16",name:"upperSize"},{type:"Float32",name:"lineOffsetX"},{type:"Float32",name:"lineOffsetY"},{type:"Uint8",name:"writingMode"},{type:"Uint8",name:"placedOrientation"},{type:"Uint8",name:"hidden"},{type:"Uint32",name:"crossTileID"},{type:"Int16",name:"associatedIconIndex"},{type:"Uint8",name:"flipState"}]),Rs([{type:"Int16",name:"projectedAnchorX"},{type:"Int16",name:"projectedAnchorY"},{type:"Int16",name:"projectedAnchorZ"},{type:"Float32",name:"tileAnchorX"},{type:"Float32",name:"tileAnchorY"},{type:"Int16",name:"rightJustifiedTextSymbolIndex"},{type:"Int16",name:"centerJustifiedTextSymbolIndex"},{type:"Int16",name:"leftJustifiedTextSymbolIndex"},{type:"Int16",name:"verticalPlacedTextSymbolIndex"},{type:"Int16",name:"placedIconSymbolIndex"},{type:"Int16",name:"verticalPlacedIconSymbolIndex"},{type:"Uint16",name:"key"},{type:"Uint16",name:"textBoxStartIndex"},{type:"Uint16",name:"textBoxEndIndex"},{type:"Uint16",name:"verticalTextBoxStartIndex"},{type:"Uint16",name:"verticalTextBoxEndIndex"},{type:"Uint16",name:"iconBoxStartIndex"},{type:"Uint16",name:"iconBoxEndIndex"},{type:"Uint16",name:"verticalIconBoxStartIndex"},{type:"Uint16",name:"verticalIconBoxEndIndex"},{type:"Uint16",name:"featureIndex"},{type:"Uint16",name:"numHorizontalGlyphVertices"},{type:"Uint16",name:"numVerticalGlyphVertices"},{type:"Uint16",name:"numIconVertices"},{type:"Uint16",name:"numVerticalIconVertices"},{type:"Uint16",name:"useRuntimeCollisionCircles"},{type:"Uint32",name:"crossTileID"},{type:"Float32",components:2,name:"textOffset"},{type:"Float32",name:"collisionCircleDiameter"}]),Rs([{type:"Float32",name:"offsetX"}]),Rs([{type:"Int16",name:"x"},{type:"Int16",name:"y"}]);var Rh=24;const Uh=128;function $h(t,e){const{expression:r}=e;if("constant"===r.kind)return {kind:"constant",layoutSize:r.evaluate(new ws(t+1))};if("source"===r.kind)return {kind:"source"};{const{zoomStops:e,interpolationType:n}=r;let i=0;for(;i{t.text=function(t,e,r){const n=e.layout.get("text-transform").evaluate(r,{});return "uppercase"===n?t=t.toLocaleUpperCase():"lowercase"===n&&(t=t.toLocaleLowerCase()),bs.applyArabicShaping&&(t=bs.applyArabicShaping(t)),t}(t.text,e,r);})),t}const Gh={"!":"︕","#":"#",$:"$","%":"%","&":"&","(":"︵",")":"︶","*":"*","+":"+",",":"︐","-":"︲",".":"・","/":"/",":":"︓",";":"︔","<":"︿","=":"=",">":"﹀","?":"︖","@":"@","[":"﹇","\\":"\","]":"﹈","^":"^",_:"︳","`":"`","{":"︷","|":"―","}":"︸","~":"~","¢":"¢","£":"£","¥":"¥","¦":"¦","¬":"¬","¯":" ̄","–":"︲","—":"︱","‘":"﹃","’":"﹄","“":"﹁","”":"﹂","…":"︙","‧":"・","₩":"₩","、":"︑","。":"︒","〈":"︿","〉":"﹀","《":"︽","》":"︾","「":"﹁","」":"﹂","『":"﹃","』":"﹄","【":"︻","】":"︼","〔":"︹","〕":"︺","〖":"︗","〗":"︘","!":"︕","(":"︵",")":"︶",",":"︐","-":"︲",".":"・",":":"︓",";":"︔","<":"︿",">":"﹀","?":"︖","[":"﹇","]":"﹈","_":"︳","{":"︷","|":"―","}":"︸","⦅":"︵","⦆":"︶","。":"︒","「":"﹁","」":"﹂","←":"↑","→":"↓"};function Zh(t){return "︶"===t||"﹈"===t||"︸"===t||"﹄"===t||"﹂"===t||"︾"===t||"︼"===t||"︺"===t||"︘"===t||"﹀"===t||"︐"===t||"︓"===t||"︔"===t||"`"===t||" ̄"===t||"︑"===t||"︒"===t}function Kh(t){return "︵"===t||"﹇"===t||"︷"===t||"﹃"===t||"﹁"===t||"︽"===t||"︻"===t||"︹"===t||"︗"===t||"︿"===t}var Xh=Yh,Jh=function(t,e,r,n,i){var s,a,o=8*i-n-1,l=(1<>1,c=-7,h=r?i-1:0,p=r?-1:1,d=t[e+h];for(h+=p,s=d&(1<<-c)-1,d>>=-c,c+=o;c>0;s=256*s+t[e+h],h+=p,c-=8);for(a=s&(1<<-c)-1,s>>=-c,c+=n;c>0;a=256*a+t[e+h],h+=p,c-=8);if(0===s)s=1-u;else {if(s===l)return a?NaN:1/0*(d?-1:1);a+=Math.pow(2,n),s-=u;}return (d?-1:1)*a*Math.pow(2,s-n)},Hh=function(t,e,r,n,i,s){var a,o,l,u=8*s-i-1,c=(1<>1,p=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,d=n?0:s-1,f=n?1:-1,y=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(o=isNaN(e)?1:0,a=c):(a=Math.floor(Math.log(e)/Math.LN2),e*(l=Math.pow(2,-a))<1&&(a--,l*=2),(e+=a+h>=1?p/l:p*Math.pow(2,1-h))*l>=2&&(a++,l/=2),a+h>=c?(o=0,a=c):a+h>=1?(o=(e*l-1)*Math.pow(2,i),a+=h):(o=e*Math.pow(2,h-1)*Math.pow(2,i),a=0));i>=8;t[r+d]=255&o,d+=f,o/=256,i-=8);for(a=a<0;t[r+d]=255&a,d+=f,a/=256,u-=8);t[r+d-f]|=128*y;}; + /*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */function Yh(t){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(t)?t:new Uint8Array(t||0),this.pos=0,this.type=0,this.length=this.buf.length;}Yh.Varint=0,Yh.Fixed64=1,Yh.Bytes=2,Yh.Fixed32=5;var Wh=4294967296,Qh=1/Wh,tp="undefined"==typeof TextDecoder?null:new TextDecoder("utf8");function ep(t){return t.type===Yh.Bytes?t.readVarint()+t.pos:t.pos+1}function rp(t,e,r){return r?4294967296*e+(t>>>0):4294967296*(e>>>0)+(t>>>0)}function np(t,e,r){var n=e<=16383?1:e<=2097151?2:e<=268435455?3:Math.floor(Math.log(e)/(7*Math.LN2));r.realloc(n);for(var i=r.pos-1;i>=t;i--)r.buf[i+n]=r.buf[i];}function ip(t,e){for(var r=0;r>>8,t[r+2]=e>>>16,t[r+3]=e>>>24;}function yp(t,e){return (t[e]|t[e+1]<<8|t[e+2]<<16)+(t[e+3]<<24)}Yh.prototype={destroy:function(){this.buf=null;},readFields:function(t,e,r){for(r=r||this.length;this.pos>3,s=this.pos;this.type=7&n,t(i,e,this),this.pos===s&&this.skip(n);}return e},readMessage:function(t,e){return this.readFields(t,e,this.readVarint()+this.pos)},readFixed32:function(){var t=dp(this.buf,this.pos);return this.pos+=4,t},readSFixed32:function(){var t=yp(this.buf,this.pos);return this.pos+=4,t},readFixed64:function(){var t=dp(this.buf,this.pos)+dp(this.buf,this.pos+4)*Wh;return this.pos+=8,t},readSFixed64:function(){var t=dp(this.buf,this.pos)+yp(this.buf,this.pos+4)*Wh;return this.pos+=8,t},readFloat:function(){var t=Jh(this.buf,this.pos,!0,23,4);return this.pos+=4,t},readDouble:function(){var t=Jh(this.buf,this.pos,!0,52,8);return this.pos+=8,t},readVarint:function(t){var e,r,n=this.buf;return e=127&(r=n[this.pos++]),r<128?e:(e|=(127&(r=n[this.pos++]))<<7,r<128?e:(e|=(127&(r=n[this.pos++]))<<14,r<128?e:(e|=(127&(r=n[this.pos++]))<<21,r<128?e:function(t,e,r){var n,i,s=r.buf;if(n=(112&(i=s[r.pos++]))>>4,i<128)return rp(t,n,e);if(n|=(127&(i=s[r.pos++]))<<3,i<128)return rp(t,n,e);if(n|=(127&(i=s[r.pos++]))<<10,i<128)return rp(t,n,e);if(n|=(127&(i=s[r.pos++]))<<17,i<128)return rp(t,n,e);if(n|=(127&(i=s[r.pos++]))<<24,i<128)return rp(t,n,e);if(n|=(1&(i=s[r.pos++]))<<31,i<128)return rp(t,n,e);throw new Error("Expected varint not more than 10 bytes")}(e|=(15&(r=n[this.pos]))<<28,t,this))))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var t=this.readVarint();return t%2==1?(t+1)/-2:t/2},readBoolean:function(){return Boolean(this.readVarint())},readString:function(){var t=this.readVarint()+this.pos,e=this.pos;return this.pos=t,t-e>=12&&tp?function(t,e,r){return tp.decode(t.subarray(e,r))}(this.buf,e,t):function(t,e,r){for(var n="",i=e;i239?4:l>223?3:l>191?2:1;if(i+c>r)break;1===c?l<128&&(u=l):2===c?128==(192&(s=t[i+1]))&&(u=(31&l)<<6|63&s)<=127&&(u=null):3===c?(a=t[i+2],128==(192&(s=t[i+1]))&&128==(192&a)&&((u=(15&l)<<12|(63&s)<<6|63&a)<=2047||u>=55296&&u<=57343)&&(u=null)):4===c&&(a=t[i+2],o=t[i+3],128==(192&(s=t[i+1]))&&128==(192&a)&&128==(192&o)&&((u=(15&l)<<18|(63&s)<<12|(63&a)<<6|63&o)<=65535||u>=1114112)&&(u=null)),null===u?(u=65533,c=1):u>65535&&(u-=65536,n+=String.fromCharCode(u>>>10&1023|55296),u=56320|1023&u),n+=String.fromCharCode(u),i+=c;}return n}(this.buf,e,t)},readBytes:function(){var t=this.readVarint()+this.pos,e=this.buf.subarray(this.pos,t);return this.pos=t,e},readPackedVarint:function(t,e){if(this.type!==Yh.Bytes)return t.push(this.readVarint(e));var r=ep(this);for(t=t||[];this.pos127;);else if(e===Yh.Bytes)this.pos=this.readVarint()+this.pos;else if(e===Yh.Fixed32)this.pos+=4;else {if(e!==Yh.Fixed64)throw new Error("Unimplemented type: "+e);this.pos+=8;}},writeTag:function(t,e){this.writeVarint(t<<3|e);},realloc:function(t){for(var e=this.length||16;e268435455||t<0?function(t,e){var r,n;if(t>=0?(r=t%4294967296|0,n=t/4294967296|0):(n=~(-t/4294967296),4294967295^(r=~(-t%4294967296))?r=r+1|0:(r=0,n=n+1|0)),t>=0x10000000000000000||t<-0x10000000000000000)throw new Error("Given varint doesn't fit into 10 bytes");e.realloc(10),function(t,e,r){r.buf[r.pos++]=127&t|128,t>>>=7,r.buf[r.pos++]=127&t|128,t>>>=7,r.buf[r.pos++]=127&t|128,t>>>=7,r.buf[r.pos++]=127&t|128,r.buf[r.pos]=127&(t>>>=7);}(r,0,e),function(t,e){var r=(7&t)<<4;e.buf[e.pos++]|=r|((t>>>=3)?128:0),t&&(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=127&t)))));}(n,e);}(t,this):(this.realloc(4),this.buf[this.pos++]=127&t|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=t>>>7&127))));},writeSVarint:function(t){this.writeVarint(t<0?2*-t-1:2*t);},writeBoolean:function(t){this.writeVarint(Boolean(t));},writeString:function(t){t=String(t),this.realloc(4*t.length),this.pos++;var e=this.pos;this.pos=function(t,e,r){for(var n,i,s=0;s55295&&n<57344){if(!i){n>56319||s+1===e.length?(t[r++]=239,t[r++]=191,t[r++]=189):i=n;continue}if(n<56320){t[r++]=239,t[r++]=191,t[r++]=189,i=n;continue}n=i-55296<<10|n-56320|65536,i=null;}else i&&(t[r++]=239,t[r++]=191,t[r++]=189,i=null);n<128?t[r++]=n:(n<2048?t[r++]=n>>6|192:(n<65536?t[r++]=n>>12|224:(t[r++]=n>>18|240,t[r++]=n>>12&63|128),t[r++]=n>>6&63|128),t[r++]=63&n|128);}return r}(this.buf,t,this.pos);var r=this.pos-e;r>=128&&np(e,r,this),this.pos=e-1,this.writeVarint(r),this.pos+=r;},writeFloat:function(t){this.realloc(4),Hh(this.buf,t,this.pos,!0,23,4),this.pos+=4;},writeDouble:function(t){this.realloc(8),Hh(this.buf,t,this.pos,!0,52,8),this.pos+=8;},writeBytes:function(t){var e=t.length;this.writeVarint(e),this.realloc(e);for(var r=0;r=128&&np(r,n,this),this.pos=r-1,this.writeVarint(n),this.pos+=n;},writeMessage:function(t,e,r){this.writeTag(t,Yh.Bytes),this.writeRawMessage(e,r);},writePackedVarint:function(t,e){e.length&&this.writeMessage(t,ip,e);},writePackedSVarint:function(t,e){e.length&&this.writeMessage(t,sp,e);},writePackedBoolean:function(t,e){e.length&&this.writeMessage(t,lp,e);},writePackedFloat:function(t,e){e.length&&this.writeMessage(t,ap,e);},writePackedDouble:function(t,e){e.length&&this.writeMessage(t,op,e);},writePackedFixed32:function(t,e){e.length&&this.writeMessage(t,up,e);},writePackedSFixed32:function(t,e){e.length&&this.writeMessage(t,cp,e);},writePackedFixed64:function(t,e){e.length&&this.writeMessage(t,hp,e);},writePackedSFixed64:function(t,e){e.length&&this.writeMessage(t,pp,e);},writeBytesField:function(t,e){this.writeTag(t,Yh.Bytes),this.writeBytes(e);},writeFixed32Field:function(t,e){this.writeTag(t,Yh.Fixed32),this.writeFixed32(e);},writeSFixed32Field:function(t,e){this.writeTag(t,Yh.Fixed32),this.writeSFixed32(e);},writeFixed64Field:function(t,e){this.writeTag(t,Yh.Fixed64),this.writeFixed64(e);},writeSFixed64Field:function(t,e){this.writeTag(t,Yh.Fixed64),this.writeSFixed64(e);},writeVarintField:function(t,e){this.writeTag(t,Yh.Varint),this.writeVarint(e);},writeSVarintField:function(t,e){this.writeTag(t,Yh.Varint),this.writeSVarint(e);},writeStringField:function(t,e){this.writeTag(t,Yh.Bytes),this.writeString(e);},writeFloatField:function(t,e){this.writeTag(t,Yh.Fixed32),this.writeFloat(e);},writeDoubleField:function(t,e){this.writeTag(t,Yh.Fixed64),this.writeDouble(e);},writeBooleanField:function(t,e){this.writeVarintField(t,Boolean(e));}};var mp=p(Xh);const gp=3;function xp(t,e,r){e.glyphs=[],1===t&&r.readMessage(vp,e);}function vp(t,e,r){if(3===t){const{id:t,bitmap:n,width:i,height:s,left:a,top:o,advance:l}=r.readMessage(bp,{});e.glyphs.push({id:t,bitmap:new Ru({width:i+2*gp,height:s+2*gp},n),metrics:{width:i,height:s,left:a,top:o,advance:l}});}else 4===t?e.ascender=r.readSVarint():5===t&&(e.descender=r.readSVarint());}function bp(t,e,r){1===t?e.id=r.readVarint():2===t?e.bitmap=r.readBytes():3===t?e.width=r.readVarint():4===t?e.height=r.readVarint():5===t?e.left=r.readSVarint():6===t?e.top=r.readSVarint():7===t&&(e.advance=r.readVarint());}const wp=gp;function _p(t){let e=0,r=0;for(const n of t)e+=n.w*n.h,r=Math.max(r,n.w);t.sort(((t,e)=>e.h-t.h));const n=[{x:0,y:0,w:Math.max(Math.ceil(Math.sqrt(e/.95)),r),h:1/0}];let i=0,s=0;for(const e of t)for(let t=n.length-1;t>=0;t--){const r=n[t];if(!(e.w>r.w||e.h>r.h)){if(e.x=r.x,e.y=r.y,s=Math.max(s,e.y+e.h),i=Math.max(i,e.x+e.w),e.w===r.w&&e.h===r.h){const e=n.pop();tt.hasImage(e))),t.dispatchRenderCallbacks(this.haveRenderCallbacks);for(const r in t.updatedImages)this.patchUpdatedImage(this.iconPositions[r],t.getImage(r),e),this.patchUpdatedImage(this.patternPositions[r],t.getImage(r),e);}patchUpdatedImage(t,e,r){if(!t||!e)return;if(t.version===e.version)return;t.version=e.version;const[n,i]=t.tl;r.update(e.data,void 0,{x:n,y:i});}}Ji(Sp,"ImagePosition"),Ji(kp,"ImageAtlas");const Ip={horizontal:1,vertical:2,horizontalOnly:3},Mp=-17;class Tp{constructor(){this.scale=1,this.fontStack="",this.imageName=null;}static forText(t,e){const r=new Tp;return r.scale=t||1,r.fontStack=e,r}static forImage(t){const e=new Tp;return e.imageName=t,e}}class zp{constructor(){this.text="",this.sectionIndex=[],this.sections=[],this.imageSectionID=null;}static fromFeature(t,e){const r=new zp;for(let n=0;n=0&&r>=t&&Ep[this.text.charCodeAt(r)];r--)e--;this.text=this.text.substring(t,e),this.sectionIndex=this.sectionIndex.slice(t,e);}substring(t,e){const r=new zp;return r.text=this.text.substring(t,e),r.sectionIndex=this.sectionIndex.slice(t,e),r.sections=this.sections,r}toString(){return this.text}getMaxScale(){return this.sectionIndex.reduce(((t,e)=>Math.max(t,this.sections[e].scale)),0)}addTextSection(t,e){this.text+=t.text,this.sections.push(Tp.forText(t.scale,t.fontStack||e));const r=this.sections.length-1;for(let e=0;e=63743?null:++this.imageSectionID:(this.imageSectionID=57344,this.imageSectionID)}}function Bp(t,e,r,n,i,s,a,o,l,u,c,h,p,d,f){const y=zp.fromFeature(t,i);h===Ip.vertical&&y.verticalizePunctuation(p);let m=[];const g=function(t,e,r,n,i,s){if(!t)return [];const a=[],o=function(t,e,r,n,i,s){let a=0;for(let r=0;r=0;let u=0;for(let r=0;r0&&s>w&&(w=s);}else {const t=r[o.fontStack];if(!t)continue;t[y]&&(S=t[y]);const n=e[o.fontStack];if(!n)continue;const s=n.glyphs[y];if(!s)continue;if(v=s.metrics,I=8203!==y?Rh:0,m){const t=void 0!==n.ascender?Math.abs(n.ascender):0,e=void 0!==n.descender?Math.abs(n.descender):0,r=(t+e)*g;_-r/2;){if(a--,a<0)return !1;o-=t[a].dist(s),s=t[a];}o+=t[a].dist(t[a+1]),a++;const l=[];let u=0;for(;on;)u-=l.shift().angleDelta;if(u>i)return !1;a++,o+=e.dist(r);}return !0}function Np(t){let e=0;for(let r=0;ru){const c=(u-l)/s,h=Er(n.x,i.x,c),p=Er(n.y,i.y,c),d=new Op(h,p,0,i.angleTo(n),r);return !a||qp(t,d,o,a,e)?d:void 0}l+=s;}}function Xp(t,e,r,n,i,s,a,o,l){const u=Gp(n,s,a),c=Zp(n,i),h=c*a,p=0===t[0].x||t[0].x===l||0===t[0].y||t[0].y===l;return e-h=0&&g=0&&x=0&&p+u<=c){const r=new Op(g,x,0,y,e);r._round(),n&&!qp(t,r,s,n,i)||d.push(r);}}h+=f;}return o||d.length||a||(d=Jp(t,h/2,r,n,i,s,a,!0,l)),d}function Hp(t,e,r,n,i){const s=[];for(let a=0;a=n&&u.x>=n||(a.x>=n?a=new x(n,a.y+(n-a.x)/(u.x-a.x)*(u.y-a.y))._round():u.x>=n&&(u=new x(n,a.y+(n-a.x)/(u.x-a.x)*(u.y-a.y))._round()),a.y>=i&&u.y>=i||(a.y>=i?a=new x(a.x+(i-a.y)/(u.y-a.y)*(u.x-a.x),i)._round():u.y>=i&&(u=new x(a.x+(i-a.y)/(u.y-a.y)*(u.x-a.x),i)._round()),l&&a.equals(l[l.length-1])||(l=[a],s.push(l)),l.push(u)))));}}return s}Ji(Op,"Anchor");const Yp=1e20;function Wp(t,e,r,n,i,s,a,o,l){for(let u=e;u-1);l++,s[l]=o,a[l]=u,a[l+1]=Yp;}for(let o=0,l=0;o{let n=this.entries[t];n||(n=this.entries[t]={glyphs:{},requests:{},ranges:{},ascender:void 0,descender:void 0});let i=n.glyphs[e];if(void 0!==i)return void r(null,{stack:t,id:e,glyph:i});if(i=this._tinySDF(n,t,e),i)return n.glyphs[e]=i,void r(null,{stack:t,id:e,glyph:i});const s=Math.floor(e/256);if(256*s>65535)return void r(new Error("glyphs > 65535 not supported"));if(n.ranges[s])return void r(null,{stack:t,id:e,glyph:i});let a=n.requests[s];a||(a=n.requests[s]=[],rd.loadGlyphRange(t,s,this.url,this.requestManager,((t,e)=>{if(e){n.ascender=e.ascender,n.descender=e.descender;for(const t in e.glyphs)this._doesCharSupportLocalGlyph(+t)||(n.glyphs[+t]=e.glyphs[+t]);n.ranges[s]=!0;}for(const r of a)r(t,e);delete n.requests[s];}))),a.push(((n,i)=>{n?r(n):i&&r(null,{stack:t,id:e,glyph:i.glyphs[e]||null});}));}),((t,r)=>{if(t)e(t);else if(r){const t={};for(const{stack:e,id:n,glyph:i}of r)void 0===t[e]&&(t[e]={}),void 0===t[e].glyphs&&(t[e].glyphs={}),t[e].glyphs[n]=i&&{id:i.id,bitmap:i.bitmap.clone(),metrics:i.metrics},t[e].ascender=this.entries[e].ascender,t[e].descender=this.entries[e].descender;e(null,t);}}));}_doesCharSupportLocalGlyph(t){return this.localGlyphMode!==ed.none&&(this.localGlyphMode===ed.all?!!this.localFontFamily:!!this.localFontFamily&&(ts["CJK Unified Ideographs"](t)||ts["Hangul Syllables"](t)||ts.Hiragana(t)||ts.Katakana(t)||ts["CJK Symbols and Punctuation"](t)))}_tinySDF(t,e,r){const n=this.localFontFamily;if(!n||!this._doesCharSupportLocalGlyph(r))return;let i=t.tinySDF;if(!i){let r="400";/bold/i.test(e)?r="900":/medium/i.test(e)?r="500":/light/i.test(e)&&(r="200"),i=t.tinySDF=new rd.TinySDF({fontFamily:n,fontWeight:r,fontSize:24*td,buffer:3*td,radius:8*td}),i.fontWeight=r;}if(this.localGlyphs[i.fontWeight][r])return this.localGlyphs[i.fontWeight][r];const s=String.fromCharCode(r),{data:a,width:o,height:l,glyphWidth:u,glyphHeight:c,glyphLeft:h,glyphTop:p,glyphAdvance:d}=i.draw(s);return this.localGlyphs[i.fontWeight][r]={id:r,bitmap:new Ru({width:o,height:l},a),metrics:{width:u/td,height:c/td,left:h/td,top:p/td-27,advance:d/td,localGlyph:!0}}}}rd.loadGlyphRange=function(t,e,r,n,i){const s=256*e,a=s+255,o=n.transformRequest(n.normalizeGlyphsURL(r).replace("{fontstack}",t).replace("{range}",`${s}-${a}`),lt.Glyphs);pt(o,((t,e)=>{if(t)i(t);else if(e){const t={},r=function(t){return new mp(t).readFields(xp,{})}(e);for(const e of r.glyphs)t[e.id]=e;i(null,{glyphs:t,ascender:r.ascender,descender:r.descender});}}));},rd.TinySDF=class{constructor({fontSize:t=24,buffer:e=3,radius:r=8,cutoff:n=.25,fontFamily:i="sans-serif",fontWeight:s="normal",fontStyle:a="normal"}={}){this.buffer=e,this.cutoff=n,this.radius=r;const o=this.size=t+4*e,l=this._createCanvas(o),u=this.ctx=l.getContext("2d",{willReadFrequently:!0});u.font=`${a} ${s} ${t}px ${i}`,u.textBaseline="alphabetic",u.textAlign="left",u.fillStyle="black",this.gridOuter=new Float64Array(o*o),this.gridInner=new Float64Array(o*o),this.f=new Float64Array(o),this.z=new Float64Array(o+1),this.v=new Uint16Array(o);}_createCanvas(t){const e=document.createElement("canvas");return e.width=e.height=t,e}draw(t){const{width:e,actualBoundingBoxAscent:r,actualBoundingBoxDescent:n,actualBoundingBoxLeft:i,actualBoundingBoxRight:s}=this.ctx.measureText(t),a=Math.ceil(r),o=Math.max(0,Math.min(this.size-this.buffer,Math.ceil(s-i))),l=Math.min(this.size-this.buffer,a+Math.ceil(n)),u=o+2*this.buffer,c=l+2*this.buffer,h=Math.max(u*c,0),p=new Uint8ClampedArray(h),d={data:p,width:u,height:c,glyphWidth:o,glyphHeight:l,glyphTop:a,glyphLeft:0,glyphAdvance:e};if(0===o||0===l)return d;const{ctx:f,buffer:y,gridInner:m,gridOuter:g}=this;f.clearRect(y,y,o,l),f.fillText(t,y,y+a);const x=f.getImageData(y,y,o,l);g.fill(Yp,0,h),m.fill(0,0,h);for(let t=0;t0?t*t:0,m[n]=t<0?t*t:0;}}Wp(g,0,0,u,c,u,this.f,this.v,this.z),Wp(m,y,y,o,l,u,this.f,this.v,this.z);for(let t=0;tt+e[1]-e[0],f=h.reduce(d,0),y=p.reduce(d,0),m=o-f,g=l-y;let v=0,b=f,w=0,_=y,A=0,S=m,k=0,I=g;if(s.content&&n){const t=s.content;v=sd(h,0,t[0]),w=sd(p,0,t[1]),b=sd(h,t[0],t[2]),_=sd(p,t[1],t[3]),A=t[0]-v,k=t[1]-w,S=t[2]-t[0]-b,I=t[3]-t[1]-_;}const M=(n,i,o,l)=>{const h=od(n.stretch-v,b,u,t.left),p=ld(n.fixed-A,S,n.stretch,f),d=od(i.stretch-w,_,c,t.top),m=ld(i.fixed-k,I,i.stretch,y),g=od(o.stretch-v,b,u,t.left),M=ld(o.fixed-A,S,o.stretch,f),T=od(l.stretch-w,_,c,t.top),z=ld(l.fixed-k,I,l.stretch,y),B=new x(h,d),E=new x(g,d),C=new x(g,T),P=new x(h,T),D=new x(p/a,m/a),V=new x(M/a,z/a),L=e*Math.PI/180;if(L){const t=Math.sin(L),e=Math.cos(L),r=[e,-t,t,e];B._matMult(r),E._matMult(r),P._matMult(r),C._matMult(r);}const F=n.stretch+n.fixed,R=i.stretch+i.fixed;return {tl:B,tr:E,bl:P,br:C,tex:{x:s.paddedRect.x+nd+F,y:s.paddedRect.y+nd+R,w:o.stretch+o.fixed-F,h:l.stretch+l.fixed-R},writingMode:void 0,glyphOffset:[0,0],sectionIndex:0,pixelOffsetTL:D,pixelOffsetBR:V,minFontScaleX:S/a/u,minFontScaleY:I/a/c,isSDF:r}};if(n&&(s.stretchX||s.stretchY)){const t=ad(h,m,f),e=ad(p,g,y);for(let r=0;r0)for(let t=(this.length>>1)-1;t>=0;t--)this._down(t);}push(t){this.data.push(t),this.length++,this._up(this.length-1);}pop(){if(0===this.length)return;const t=this.data[0],e=this.data.pop();return this.length--,this.length>0&&(this.data[0]=e,this._down(0)),t}peek(){return this.data[0]}_up(t){const{data:e,compare:r}=this,n=e[t];for(;t>0;){const i=t-1>>1,s=e[i];if(r(n,s)>=0)break;e[t]=s,t=i;}e[t]=n;}_down(t){const{data:e,compare:r}=this,n=this.length>>1,i=e[t];for(;t=0)break;e[t]=s,t=n;}e[t]=i;}}function hd(t,e){return te?1:0}function pd(t,e=1,r=!1){let n=1/0,i=1/0,s=-1/0,a=-1/0;const o=t[0];for(let t=0;ts)&&(s=e.x),(!t||e.y>a)&&(a=e.y);}const l=Math.min(s-n,a-i);let u=l/2;const c=new cd([],dd);if(0===l)return new x(n,i);for(let e=n;eh.d||!h.d)&&(h=n,r&&console.log("found best %d after %d probes",Math.round(1e4*n.d)/1e4,p)),n.max-h.d<=e||(u=n.h/2,c.push(new fd(n.p.x-u,n.p.y-u,u,t)),c.push(new fd(n.p.x+u,n.p.y-u,u,t)),c.push(new fd(n.p.x-u,n.p.y+u,u,t)),c.push(new fd(n.p.x+u,n.p.y+u,u,t)),p+=4);}return r&&(console.log(`num probes: ${p}`),console.log(`best distance: ${h.d}`)),h.p}function dd(t,e){return e.max-t.max}class fd{constructor(t,e,r,n){this.p=new x(t,e),this.h=r,this.d=function(t,e){let r=!1,n=1/0;for(let i=0;it.y!=o.y>t.y&&t.x<(o.x-i.x)*(t.y-i.y)/(o.y-i.y)+i.x&&(r=!r),n=Math.min(n,xu(t,i,o));}}return (r?1:-1)*Math.sqrt(n)}(this.p,n),this.max=this.d+this.h*Math.SQRT2;}}const yd=7,md=Number.POSITIVE_INFINITY,gd=Math.sqrt(2);function xd(t,[e,r]){let n=0,i=0;if(r===md){e<0&&(e=0);const r=e/gd;switch(t){case"top-right":case"top-left":i=r-yd;break;case"bottom-right":case"bottom-left":i=-r+yd;break;case"bottom":i=-e+yd;break;case"top":i=e-yd;}switch(t){case"top-right":case"bottom-right":n=-r;break;case"top-left":case"bottom-left":n=r;break;case"left":n=e;break;case"right":n=-e;}}else {switch(e=Math.abs(e),r=Math.abs(r),t){case"top-right":case"top-left":case"top":i=r-yd;break;case"bottom-right":case"bottom-left":case"bottom":i=-r+yd;}switch(t){case"top-right":case"bottom-right":case"right":n=-e;break;case"top-left":case"bottom-left":case"left":n=e;}}return [n,i]}function vd(t,e,r,n,i,s,a,o,l,u){t.createArrays(),t.tilePixelRatio=ao/(512*t.overscaling),t.compareText={},t.iconsNeedLinear=!1;const c=t.layers[0].layout,h=t.layers[0]._unevaluatedLayout._values,p={};if("composite"===t.textSizeData.kind){const{minZoom:e,maxZoom:r}=t.textSizeData;p.compositeTextSizes=[h["text-size"].possiblyEvaluate(new ws(e),o),h["text-size"].possiblyEvaluate(new ws(r),o)];}if("composite"===t.iconSizeData.kind){const{minZoom:e,maxZoom:r}=t.iconSizeData;p.compositeIconSizes=[h["icon-size"].possiblyEvaluate(new ws(e),o),h["icon-size"].possiblyEvaluate(new ws(r),o)];}p.layoutTextSize=h["text-size"].possiblyEvaluate(new ws(l+1),o),p.layoutIconSize=h["icon-size"].possiblyEvaluate(new ws(l+1),o),p.textMaxSize=h["text-size"].possiblyEvaluate(new ws(18),o);const d="map"===c.get("text-rotation-alignment")&&"point"!==c.get("symbol-placement"),f=c.get("text-size");for(const s of t.features){const l=c.get("text-font").evaluate(s,{},o).join(","),h=f.evaluate(s,{},o),y=p.layoutTextSize.evaluate(s,{},o),m=(p.layoutIconSize.evaluate(s,{},o),{horizontal:{},vertical:void 0}),g=s.text;let x,v=[0,0];if(g){const n=g.toString(),a=c.get("text-letter-spacing").evaluate(s,{},o)*Rh,u=c.get("text-line-height").evaluate(s,{},o)*Rh,p=rs(n)?a:0,f=c.get("text-anchor").evaluate(s,{},o),x=c.get("text-variable-anchor");if(!x){const t=c.get("text-radial-offset").evaluate(s,{},o);v=t?xd(f,[t*Rh,md]):c.get("text-offset").evaluate(s,{},o).map((t=>t*Rh));}let b=d?"center":c.get("text-justify").evaluate(s,{},o);const w="point"===c.get("symbol-placement"),_=w?c.get("text-max-width").evaluate(s,{},o)*Rh:1/0,A=s=>{t.allowVerticalPlacement&&es(n)&&(m.vertical=Bp(g,e,r,i,l,_,u,f,s,p,v,Ip.vertical,!0,y,h));};if(!d&&x){const t="auto"===b?x.map((t=>bd(t))):[b];let n=!1;for(let s=0;s=0||!es(n)){const t=Bp(g,e,r,i,l,_,u,f,b,p,v,Ip.horizontal,!1,y,h);t&&(m.horizontal[b]=t);}A(w?"left":b);}}let b=!1;if(s.icon&&s.icon.name){const e=n[s.icon.name];e&&(x=$p(i[s.icon.name],c.get("icon-offset").evaluate(s,{},o),c.get("icon-anchor").evaluate(s,{},o)),b=e.sdf,void 0===t.sdfIcons?t.sdfIcons=e.sdf:t.sdfIcons!==e.sdf&&N("Style sheet warning: Cannot mix SDF and non-SDF icons in one buffer"),(e.pixelRatio!==t.pixelRatio||0!==c.get("icon-rotate").constantOr(1))&&(t.iconsNeedLinear=!0));}const w=kd(m.horizontal)||m.vertical;t.iconsInText||(t.iconsInText=!!w&&w.iconsInText),(w||x)&&wd(t,s,m,x,n,p,y,0,v,b,a,o,u);}s&&t.generateCollisionDebugBuffers(l,t.collisionBoxArray);}function bd(t){switch(t){case"right":case"top-right":case"bottom-right":return "right";case"left":case"top-left":case"bottom-left":return "left"}return "center"}function wd(t,e,r,n,i,s,a,o,l,u,c,h,p){let d=s.textMaxSize.evaluate(e,{},h);void 0===d&&(d=a);const f=t.layers[0].layout,y=f.get("icon-offset").evaluate(e,{},h),m=kd(r.horizontal)||r.vertical,g="globe"===p.name,x=Rh,v=a/x,b=t.tilePixelRatio*d/x,_=(B=t.overscaling,t.zoom>18&&B>2&&(B>>=1),Math.max(ao/(512*B),1)*f.get("symbol-spacing")),A=f.get("text-padding")*t.tilePixelRatio,S=f.get("icon-padding")*t.tilePixelRatio,k=w(f.get("text-max-angle")),I="map"===f.get("text-rotation-alignment")&&"point"!==f.get("symbol-placement"),M="map"===f.get("icon-rotation-alignment")&&"point"!==f.get("symbol-placement"),T=f.get("symbol-placement"),z=_/2;var B;const E=f.get("icon-text-fit");let C;n&&"none"!==E&&(t.allowVerticalPlacement&&r.vertical&&(C=jp(n,r.vertical,E,f.get("icon-text-fit-padding"),y,v)),m&&(n=jp(n,m,E,f.get("icon-text-fit-padding"),y,v)));const P=(a,o,d)=>{if(o.x<0||o.x>=ao||o.y<0||o.y>=ao)return;let f=null;if(g){const{x:t,y:e,z:r}=p.projectTilePoint(o.x,o.y,d);f={anchor:new Op(t,e,r,0,void 0),up:p.upVector(d,o.x,o.y)};}!function(t,e,r,n,i,s,a,o,l,u,c,h,p,d,f,y,m,g,x,v,b,w,_,A,S){const k=t.addToLineVertexArray(e,n);let I,M,T,z,B,E,C,P=0,D=0,V=0,L=0,F=-1,R=-1;const U={};let $=Ba("");const j=r?r.anchor:e;let O=0,q=0;if(void 0===l._unevaluatedLayout.getValue("text-radial-offset")?[O,q]=l.layout.get("text-offset").evaluate(b,{},S).map((t=>t*Rh)):(O=l.layout.get("text-radial-offset").evaluate(b,{},S)*Rh,q=md),t.allowVerticalPlacement&&i.vertical){const t=i.vertical;if(f)E=Md(t),o&&(C=Md(o));else {const r=l.layout.get("text-rotate").evaluate(b,{},S)+90;T=Id(u,j,e,c,h,p,t,d,r,y),o&&(z=Id(u,j,e,c,h,p,o,g,r));}}if(s){const n=l.layout.get("icon-rotate").evaluate(b,{},S),i="none"!==l.layout.get("icon-text-fit"),a=id(s,n,_,i),d=o?id(o,n,_,i):void 0;M=Id(u,j,e,c,h,p,s,g,n),P=4*a.length;const f=t.iconSizeData;let y=null;"source"===f.kind?(y=[Uh*l.layout.get("icon-size").evaluate(b,{},S)],y[0]>Ad&&N(`${t.layerIds[0]}: Value for "icon-size" is >= ${_d}. Reduce your "icon-size".`)):"composite"===f.kind&&(y=[Uh*w.compositeIconSizes[0].evaluate(b,{},S),Uh*w.compositeIconSizes[1].evaluate(b,{},S)],(y[0]>Ad||y[1]>Ad)&&N(`${t.layerIds[0]}: Value for "icon-size" is >= ${_d}. Reduce your "icon-size".`)),t.addSymbols(t.icon,a,y,v,x,b,!1,r,e,k.lineStartIndex,k.lineLength,-1,A,S),F=t.icon.placedSymbolArray.length-1,d&&(D=4*d.length,t.addSymbols(t.icon,d,y,v,x,b,Ip.vertical,r,e,k.lineStartIndex,k.lineLength,-1,A,S),R=t.icon.placedSymbolArray.length-1);}for(const n in i.horizontal){const s=i.horizontal[n];I||($=Ba(s.text),f?B=Md(s):I=Id(u,j,e,c,h,p,s,d,l.layout.get("text-rotate").evaluate(b,{},S),y));const o=1===s.positionedLines.length;if(V+=Sd(t,r,e,s,a,l,f,b,y,k,i.vertical?Ip.horizontal:Ip.horizontalOnly,o?Object.keys(i.horizontal):[n],U,F,w,A,S),o)break}i.vertical&&(L+=Sd(t,r,e,i.vertical,a,l,f,b,y,k,Ip.vertical,["vertical"],U,R,w,A,S));let G=-1;const Z=(t,e)=>t?Math.max(t,e):e;G=Z(B,G),G=Z(E,G),G=Z(C,G);const K=G>-1?1:0;t.glyphOffsetArray.length>=of.MAX_GLYPHS&&N("Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907"),void 0!==b.sortKey&&t.addToSortKeyRanges(t.symbolInstances.length,b.sortKey),t.symbolInstances.emplaceBack(j.x,j.y,j.z,e.x,e.y,U.right>=0?U.right:-1,U.center>=0?U.center:-1,U.left>=0?U.left:-1,U.vertical>=0?U.vertical:-1,F,R,$,void 0!==I?I:t.collisionBoxArray.length,void 0!==I?I+1:t.collisionBoxArray.length,void 0!==T?T:t.collisionBoxArray.length,void 0!==T?T+1:t.collisionBoxArray.length,void 0!==M?M:t.collisionBoxArray.length,void 0!==M?M+1:t.collisionBoxArray.length,z||t.collisionBoxArray.length,z?z+1:t.collisionBoxArray.length,c,V,L,P,D,K,0,O,q,G);}(t,o,f,a,r,n,i,C,t.layers[0],t.collisionBoxArray,e.index,e.sourceLayerIndex,t.index,A,I,l,0,S,M,y,e,s,u,c,h);};if("line"===T)for(const i of Hp(e.geometry,0,0,ao,ao)){const e=Xp(i,_,k,r.vertical||m,n,x,b,t.overscaling,ao);for(const r of e)m&&Td(t,m.text,z,r)||P(i,r,h);}else if("line-center"===T){for(const t of e.geometry)if(t.length>1){const e=Kp(t,k,r.vertical||m,n,x,b);e&&P(t,e,h);}}else if("Polygon"===e.type)for(const t of Ac(e.geometry,0)){const e=pd(t,16);P(t[0],new Op(e.x,e.y,0,0,void 0),h);}else if("LineString"===e.type)for(const t of e.geometry)P(t,new Op(t[0].x,t[0].y,0,0,void 0),h);else if("Point"===e.type)for(const t of e.geometry)for(const e of t)P([e],new Op(e.x,e.y,0,0,void 0),h);}const _d=255,Ad=_d*Uh;function Sd(t,e,r,n,i,s,a,o,l,u,c,h,p,d,f,y,m){const g=function(t,e,r,n,i,s,a,o){const l=[];if(0===e.positionedLines.length)return l;const u=n.layout.get("text-rotate").evaluate(s,{})*Math.PI/180,c=function(t){const e=t[0],r=t[1],n=e*r;return n>0?[e,-r]:n<0?[-e,r]:0===e?[r,e]:[r,-e]}(r);let h=Math.abs(e.top-e.bottom);for(const t of e.positionedLines)h-=t.lineOffset;const p=e.positionedLines.length,d=h/p;let f=e.top-r[1];for(let t=0;tAd&&N(`${t.layerIds[0]}: Value for "text-size" is >= ${_d}. Reduce your "text-size".`)):"composite"===v.kind&&(b=[Uh*f.compositeTextSizes[0].evaluate(o,{},m),Uh*f.compositeTextSizes[1].evaluate(o,{},m)],(b[0]>Ad||b[1]>Ad)&&N(`${t.layerIds[0]}: Value for "text-size" is >= ${_d}. Reduce your "text-size".`)),t.addSymbols(t.text,g,b,l,a,o,c,e,r,u.lineStartIndex,u.lineLength,d,y,m);for(const e of h)p[e]=t.text.placedSymbolArray.length-1;return 4*g.length}function kd(t){for(const e in t)return t[e];return null}function Id(t,e,r,n,i,s,a,o,l,u){let c=a.top,h=a.bottom,p=a.left,d=a.right;const f=a.collisionPadding;if(f&&(p-=f[0],c-=f[1],d+=f[2],h+=f[3]),l){const t=new x(p,c),e=new x(d,c),r=new x(p,h),n=new x(d,h),i=w(l);let s=new x(0,0);u&&(s=new x(u[0],u[1])),t._rotateAround(i,s),e._rotateAround(i,s),r._rotateAround(i,s),n._rotateAround(i,s),p=Math.min(t.x,e.x,r.x,n.x),d=Math.max(t.x,e.x,r.x,n.x),c=Math.min(t.y,e.y,r.y,n.y),h=Math.max(t.y,e.y,r.y,n.y);}return t.emplaceBack(e.x,e.y,e.z,r.x,r.y,p,c,d,h,o,n,i,s),t.length-1}function Md(t){t.collisionPadding&&(t.top-=t.collisionPadding[1],t.bottom+=t.collisionPadding[3]);const e=t.bottom-t.top;return e>0?Math.max(10,e):null}function Td(t,e,r,n){const i=t.compareText;if(e in i){const t=i[e];for(let e=t.length-1;e>=0;e--)if(n.dist(t[e])v&&(b(t,u,n,i,o,l),b(u,r,o,l,s,a));}b(h,p,n,s,i,s),b(p,d,i,s,i,a),b(d,f,i,a,n,a),b(f,h,n,a,n,s),y-=v,m-=v,g+=v,x+=v;const w=1/Math.max(g-y,x-m);return {scale:w,x:y*w,y:m*w,x2:g*w,y2:x*w,projection:e}}const Ed=po(new Float32Array(16));class Cd{constructor(t){this.spec=t,this.name=t.name,this.wrap=!1,this.requiresDraping=!1,this.supportsWorldCopies=!1,this.supportsTerrain=!1,this.supportsFog=!1,this.supportsFreeCamera=!1,this.zAxisUnit="meters",this.isReprojectedInTileSpace=!0,this.unsupportedLayers=["custom"],this.center=[0,0],this.range=[3.5,7];}project(t,e){return {x:0,y:0,z:0}}unproject(t,e){return new Ol(0,0)}projectTilePoint(t,e,r){return {x:t,y:e,z:0}}locationPoint(t,e,r=!0){return t._coordinatePoint(t.locationCoordinate(e),r)}pixelsPerMeter(t,e){return Zl(1,t)*e}pixelSpaceConversion(t,e,r){return 1}farthestPixelDistance(t){return zd(t,t.pixelsPerMeter)}pointCoordinate(t,e,r,n){const i=t.horizonLineFromTop(!1),s=new x(e,Math.max(i,r));return t.rayIntersectionCoordinate(t.pointRayIntersection(s,n))}pointCoordinate3D(t,e,r){const n=new x(e,r);if(t.elevation)return t.elevation.pointCoordinate(n);{const e=this.pointCoordinate(t,n.x,n.y,0);return [e.x,e.y,e.z]}}isPointAboveHorizon(t,e){if(t.elevation)return !this.pointCoordinate3D(t,e.x,e.y);const r=t.horizonLineFromTop();return e.y0?e<-jd+r&&(e=-jd+r):e>jd-r&&(e=jd-r);const s=i/Math.pow(Od(e),n);let a=s*Math.sin(n*t),o=i-s*Math.cos(n*t);return a=.5*(a/Math.PI+.5),o=.5*(o/Math.PI+.5),{x:a,y:this.southernCenter?o:1-o,z:0}}unproject(t,e){t=(2*t-.5)*Math.PI,this.southernCenter&&(e=1-e),e=(2*(1-e)-.5)*Math.PI;const{n:r,f:n}=this,i=n-e,s=Math.sign(i),a=Math.sign(r)*Math.sqrt(t*t+i*i);let o=Math.atan2(t,Math.abs(i))*s;i*r<0&&(o-=Math.PI*Math.sign(t)*s);const l=M(_(o/r)+this.center[0],-180,180),u=M(_(2*Math.atan(Math.pow(n/a,1/r))-jd),-Hl,Hl);return new Ol(l,this.southernCenter?-u:u)}}class Nd extends Cd{constructor(t){super(t),this.wrap=!0,this.supportsWorldCopies=!0,this.supportsTerrain=!0,this.supportsFog=!0,this.supportsFreeCamera=!0,this.isReprojectedInTileSpace=!1,this.unsupportedLayers=[],this.range=null;}project(t,e){return {x:Nl(t),y:Gl(e),z:0}}unproject(t,e){const r=Kl(t),n=Xl(e);return new Ol(r,n)}}const Gd=w(Hl);class Zd extends Cd{project(t,e){const r=(e=w(e))*e,n=r*r;return {x:.5*((t=w(t))*(.8707-.131979*r+n*(n*(.003971*r-.001529*n)-.013791))/Math.PI+.5),y:1-.5*(e*(1.007226+r*(.015085+n*(.028874*r-.044475-.005916*n)))/Math.PI+1),z:0}}unproject(t,e){t=(2*t-.5)*Math.PI;let r=e=(2*(1-e)-1)*Math.PI,n=25,i=0,s=r*r;do{s=r*r;const t=s*s;i=(r*(1.007226+s*(.015085+t*(.028874*s-.044475-.005916*t)))-e)/(1.007226+s*(.045255+t*(.259866*s-.311325-.005916*11*t))),r=M(r-i,-Gd,Gd);}while(Math.abs(i)>1e-6&&--n>0);s=r*r;const a=M(_(t/(.8707+s*(s*(s*s*s*(.003971-.001529*s)-.013791)-.131979))),-180,180),o=_(r);return new Ol(a,o)}}const Kd=w(Hl);class Xd extends Cd{project(t,e){e=w(e),t=w(t);const r=Math.cos(e),n=2/Math.PI,i=Math.acos(r*Math.cos(t/2)),s=Math.sin(i)/i,a=.5*(t*n+2*r*Math.sin(t/2)/s)||0,o=.5*(e+Math.sin(e)/s)||0;return {x:.5*(a/Math.PI+.5),y:1-.5*(o/Math.PI+1),z:0}}unproject(t,e){let r=t=(2*t-.5)*Math.PI,n=e=(2*(1-e)-1)*Math.PI,i=25;const s=1e-6;let a=0,o=0;do{const i=Math.cos(n),s=Math.sin(n),l=2*s*i,u=s*s,c=i*i,h=Math.cos(r/2),p=Math.sin(r/2),d=2*h*p,f=p*p,y=1-c*h*h,m=y?1/y:0,g=y?Math.acos(i*h)*Math.sqrt(1/y):0,x=.5*(2*g*i*p+2*r/Math.PI)-t,v=.5*(g*s+n)-e,b=.5*m*(c*f+g*i*h*u)+1/Math.PI,w=m*(d*l/4-g*s*p),_=.125*m*(l*p-g*s*c*d),A=.5*m*(u*h+g*f*i)+.5,S=w*_-A*b;a=(v*w-x*A)/S,o=(x*_-v*b)/S,r=M(r-a,-Math.PI,Math.PI),n=M(n-o,-Kd,Kd);}while((Math.abs(a)>s||Math.abs(o)>s)&&--i>0);return new Ol(_(r),_(n))}}class Jd extends Cd{constructor(t){super(t),this.center=t.center||[0,0],this.parallels=t.parallels||[0,0],this.cosPhi=Math.max(.01,Math.cos(w(this.parallels[0]))),this.scale=1/(2*Math.max(Math.PI*this.cosPhi,1/this.cosPhi)),this.wrap=!0,this.supportsWorldCopies=!0;}project(t,e){const{scale:r,cosPhi:n}=this;return {x:w(t)*n*r+.5,y:-Math.sin(w(e))/n*r+.5,z:0}}unproject(t,e){const{scale:r,cosPhi:n}=this,i=-(e-.5)/r,s=M(_((t-.5)/r)/n,-180,180),a=Math.asin(M(i*n,-1,1)),o=M(_(a),-Hl,Hl);return new Ol(s,o)}}class Hd extends Nd{constructor(t){super(t),this.requiresDraping=!0,this.supportsWorldCopies=!1,this.supportsFog=!0,this.zAxisUnit="pixels",this.unsupportedLayers=["debug"],this.range=[3,5];}projectTilePoint(t,e,r){const n=Ml(t,e,r);return Fo(n,n,Bl(xl(r))),{x:n[0],y:n[1],z:n[2]}}locationPoint(t,e){const r=Il(e.lat,e.lng),n=Do([],r),i=t.elevation?t.elevation.getAtPointOrZero(t.locationCoordinate(e),t._centerAltitude):t._centerAltitude;Po(r,r,n,Zl(1,0)*ao*i);const s=po(new Float64Array(16));return yo(s,t.pixelMatrix,t.globeMatrix),Fo(r,r,s),new x(r[0],r[1])}pixelsPerMeter(t,e){return Zl(1,0)*e}pixelSpaceConversion(t,e,r){const n=Zl(1,t)*e,i=Er(Zl(1,45)*e,n,r);return this.pixelsPerMeter(t,e)/i}createTileMatrix(t,e,r){const n=El(xl(r.canonical));return yo(new Float64Array(16),t.globeMatrix,n)}createInversionMatrix(t,e){const{center:r}=t,n=Bl(xl(e));return vo(n,n,w(r.lng)),xo(n,n,w(r.lat)),go(n,n,[t._pixelsPerMercatorPixel,t._pixelsPerMercatorPixel,1]),Float32Array.from(n)}pointCoordinate(t,e,r,n){return yl(t,e,r,!0)||new Wl(0,0)}pointCoordinate3D(t,e,r){const n=this.pointCoordinate(t,e,r,0);return [n.x,n.y,n.z]}isPointAboveHorizon(t,e){return !yl(t,e.x,e.y,!1)}farthestPixelDistance(t){const e=function(t,e){const r=t.cameraToCenterDistance,n=t._centerAltitude*e,i=t._camera,s=t._camera.forward(),a=Mo([],Co([],s,-r),[0,0,n]),o=t.worldSize/(2*Math.PI),l=[0,0,-o],u=t.width/t.height,c=Math.tan(t.fovAboveCenter),h=Co([],i.up(),c),p=Co([],i.right(),c*u),d=Do([],Mo([],Mo([],s,h),p)),f=[];let y;if(new el(a,d).closestPointOnSphere(l,o,f)){const e=Mo([],f,l),r=$o([],e,a);y=Math.cos(t.fovAboveCenter)*ko(r);}else {const t=$o([],a,l),e=$o([],l,a);Do(e,e);const r=ko(t)-o;y=Math.sqrt(r*(r+2*o));const n=Math.acos(y/(o+r))-Math.acos(Vo(s,e));y*=Math.cos(n);}return 1.01*y}(t,this.pixelsPerMeter(t.center.lat,t.worldSize)),r=Pl(t.zoom);if(r>0){const n=zd(t,Zl(1,t.center.lat)*t.worldSize),i=t.worldSize/(2*Math.PI),s=Math.max(t.width,t.height)/t.worldSize*Math.PI;return Er(e,n+i*(1-Math.cos(s)),Math.pow(r,10))}return e}upVector(t,e,r){return Ml(e,r,t,1)}upVectorScale(t){return {metersToTile:fl(Tl(xl(t)))}}}function Yd(t){const e=t.parallels,r=!!e&&Math.abs(e[0]+e[1])<.01;switch(t.name){case"mercator":return new Nd(t);case"equirectangular":return new $d(t);case"naturalEarth":return new Zd(t);case"equalEarth":return new Ud(t);case"winkelTripel":return new Xd(t);case"albers":return r?new Jd(t):new Pd(t);case"lambertConformalConic":return r?new Jd(t):new qd(t);case"globe":return new Hd(t)}throw new Error(`Invalid projection name: ${t.name}`)}const Wd=Kc.types,Qd=[{name:"a_fade_opacity",components:1,type:"Uint8",offset:0}];function tf(t,e,r,n,i,s,a,o,l,u,c,h,p){const d=o?Math.min(Ad,Math.round(o[0])):0,f=o?Math.min(Ad,Math.round(o[1])):0;t.emplaceBack(e,r,Math.round(32*n),Math.round(32*i),s,a,(d<<1)+(l?1:0),f,16*u,16*c,256*h,256*p);}function ef(t,e,r,n,i,s,a){t.emplaceBack(e,r,n,i,s,a);}function rf(t,e,r,n,i){t.emplaceBack(e,r,n,i),t.emplaceBack(e,r,n,i),t.emplaceBack(e,r,n,i),t.emplaceBack(e,r,n,i);}function nf(t){for(const e of t.sections)if(ls(e.text))return !0;return !1}class sf{constructor(t){this.layoutVertexArray=new Xs,this.indexArray=new ra,this.programConfigurations=t,this.segments=new so,this.dynamicLayoutVertexArray=new Ns,this.opacityVertexArray=new Hs,this.placedSymbolArray=new fa,this.globeExtVertexArray=new Js;}isEmpty(){return 0===this.layoutVertexArray.length&&0===this.indexArray.length&&0===this.dynamicLayoutVertexArray.length&&0===this.opacityVertexArray.length}upload(t,e,r,n){this.isEmpty()||(r&&(this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,Eh.members),this.indexBuffer=t.createIndexBuffer(this.indexArray,e),this.dynamicLayoutVertexBuffer=t.createVertexBuffer(this.dynamicLayoutVertexArray,Ph.members,!0),this.opacityVertexBuffer=t.createVertexBuffer(this.opacityVertexArray,Qd,!0),this.globeExtVertexArray.length>0&&(this.globeExtVertexBuffer=t.createVertexBuffer(this.globeExtVertexArray,Ch.members,!0)),this.opacityVertexBuffer.itemSize=1),(r||n)&&this.programConfigurations.upload(t));}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.dynamicLayoutVertexBuffer.destroy(),this.opacityVertexBuffer.destroy(),this.globeExtVertexBuffer&&this.globeExtVertexBuffer.destroy());}}Ji(sf,"SymbolBuffers");class af{constructor(t,e,r){this.layoutVertexArray=new t,this.layoutAttributes=e,this.indexArray=new r,this.segments=new so,this.collisionVertexArray=new ta,this.collisionVertexArrayExt=new ea;}upload(t){this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,this.layoutAttributes),this.indexBuffer=t.createIndexBuffer(this.indexArray),this.collisionVertexBuffer=t.createVertexBuffer(this.collisionVertexArray,Dh.members,!0),this.collisionVertexBufferExt=t.createVertexBuffer(this.collisionVertexArrayExt,Vh.members,!0);}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.segments.destroy(),this.collisionVertexBuffer.destroy(),this.collisionVertexBufferExt.destroy());}}Ji(af,"CollisionBuffers");class of{constructor(t){this.collisionBoxArray=t.collisionBoxArray,this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map((t=>t.id)),this.index=t.index,this.pixelRatio=t.pixelRatio,this.sourceLayerIndex=t.sourceLayerIndex,this.hasPattern=!1,this.hasRTLText=!1,this.fullyClipped=!1,this.sortKeyRanges=[],this.collisionCircleArray=[],this.placementInvProjMatrix=po([]),this.placementViewportMatrix=po([]);const e=this.layers[0]._unevaluatedLayout._values;this.textSizeData=$h(this.zoom,e["text-size"]),this.iconSizeData=$h(this.zoom,e["icon-size"]);const r=this.layers[0].layout,n=r.get("symbol-sort-key"),i=r.get("symbol-z-order");this.canOverlap=r.get("text-allow-overlap")||r.get("icon-allow-overlap")||r.get("text-ignore-placement")||r.get("icon-ignore-placement"),this.sortFeaturesByKey="viewport-y"!==i&&void 0!==n.constantOr(1),this.sortFeaturesByY=("viewport-y"===i||"auto"===i&&!this.sortFeaturesByKey)&&this.canOverlap,this.writingModes=r.get("text-writing-mode").map((t=>Ip[t])),this.stateDependentLayerIds=this.layers.filter((t=>t.isStateDependent())).map((t=>t.id)),this.sourceID=t.sourceID,this.projection=t.projection;}createArrays(){this.text=new sf(new Ja(this.layers,this.zoom,(t=>/^text/.test(t)))),this.icon=new sf(new Ja(this.layers,this.zoom,(t=>/^icon/.test(t)))),this.glyphOffsetArray=new ga,this.lineVertexArray=new xa,this.symbolInstances=new ma;}calculateGlyphDependencies(t,e,r,n,i){for(let r=0;r0)&&("constant"!==o.value.kind||o.value.value.length>0),h="constant"!==u.value.kind||!!u.value.value||Object.keys(u.parameters).length>0,p=s.get("symbol-sort-key");if(this.features=[],!c&&!h)return;const d=e.iconDependencies,f=e.glyphDependencies,y=e.availableImages,m=new ws(this.zoom);for(const{feature:e,id:l,index:u,sourceLayerIndex:g}of t){const t=i._featureFilter.needGeometry,x=ou(e,t);if(!i._featureFilter.filter(m,x,r))continue;if(t||(x.geometry=au(e,r,n)),a&&1!==e.type&&r.z<=5){const t=x.geometry,e=.98078528056,n=(t,n)=>Vo(Ml(t.x,t.y,r,1),Ml(n.x,n.y,r,1))=0;for(const r of v.sections)if(r.image)d[r.image.name]=!0;else {const n=es(v.toString()),i=r.fontStack||t,s=f[i]=f[i]||{};this.calculateGlyphDependencies(r.text,s,e,this.allowVerticalPlacement,n);}}}"line"===s.get("symbol-placement")&&(this.features=function(t){const e={},r={},n=[];let i=0;function s(e){n.push(t[e]),i++;}function a(t,e,i){const s=r[t];return delete r[t],r[e]=s,n[s].geometry[0].pop(),n[s].geometry[0]=n[s].geometry[0].concat(i[0]),s}function o(t,r,i){const s=e[r];return delete e[r],e[t]=s,n[s].geometry[0].shift(),n[s].geometry[0]=i[0].concat(n[s].geometry[0]),s}function l(t,e,r){const n=r?e[0][e[0].length-1]:e[0][0];return `${t}:${n.x}:${n.y}`}for(let u=0;ut.geometry))}(this.features)),this.sortFeaturesByKey&&this.features.sort(((t,e)=>t.sortKey-e.sortKey));}update(t,e,r,n){this.stateDependentLayers.length&&(this.text.programConfigurations.updatePaintArrays(t,e,this.layers,r,n),this.icon.programConfigurations.updatePaintArrays(t,e,this.layers,r,n));}isEmpty(){return 0===this.symbolInstances.length&&!this.hasRTLText}uploadPending(){return !this.uploaded||this.text.programConfigurations.needsUpload||this.icon.programConfigurations.needsUpload}upload(t){!this.uploaded&&this.hasDebugData()&&(this.textCollisionBox.upload(t),this.iconCollisionBox.upload(t)),this.text.upload(t,this.sortFeaturesByY,!this.uploaded,this.text.programConfigurations.needsUpload),this.icon.upload(t,this.sortFeaturesByY,!this.uploaded,this.icon.programConfigurations.needsUpload),this.uploaded=!0;}destroyDebugData(){this.textCollisionBox.destroy(),this.iconCollisionBox.destroy();}getProjection(){return this.projectionInstance||(this.projectionInstance=Yd(this.projection)),this.projectionInstance}destroy(){this.text.destroy(),this.icon.destroy(),this.hasDebugData()&&this.destroyDebugData();}addToLineVertexArray(t,e){const r=this.lineVertexArray.length;if(void 0!==t.segment)for(const{x:t,y:r}of e)this.lineVertexArray.emplaceBack(t,r);return {lineStartIndex:r,lineLength:this.lineVertexArray.length-r}}addSymbols(t,e,r,n,i,s,a,o,l,u,c,h,p,d){const f=t.indexArray,y=t.layoutVertexArray,m=t.globeExtVertexArray,g=t.segments.prepareSegment(4*e.length,y,f,this.canOverlap?s.sortKey:void 0),x=this.glyphOffsetArray.length,v=g.vertexLength,b=this.allowVerticalPlacement&&a===Ip.vertical?Math.PI/2:0,w=s.text&&s.text.sections;for(let n=0;n=0?e.rightJustifiedTextSymbolIndex:e.centerJustifiedTextSymbolIndex>=0?e.centerJustifiedTextSymbolIndex:e.leftJustifiedTextSymbolIndex>=0?e.leftJustifiedTextSymbolIndex:e.verticalPlacedTextSymbolIndex>=0?e.verticalPlacedTextSymbolIndex:n),s=jh(this.textSizeData,t,i)/Rh;return this.tilePixelRatio*s}getSymbolInstanceIconSize(t,e,r){const n=this.icon.placedSymbolArray.get(r),i=jh(this.iconSizeData,t,n);return this.tilePixelRatio*i}_commitDebugCollisionVertexUpdate(t,e,r){t.emplaceBack(e,-r,-r),t.emplaceBack(e,r,-r),t.emplaceBack(e,r,r),t.emplaceBack(e,-r,r);}_updateTextDebugCollisionBoxes(t,e,r,n,i,s){for(let a=n;a0}hasIconData(){return this.icon.segments.get().length>0}hasDebugData(){return this.textCollisionBox&&this.iconCollisionBox}hasTextCollisionBoxData(){return this.hasDebugData()&&this.textCollisionBox.segments.get().length>0}hasIconCollisionBoxData(){return this.hasDebugData()&&this.iconCollisionBox.segments.get().length>0}addIndicesForPlacedSymbol(t,e){const r=t.placedSymbolArray.get(e),n=r.vertexStartIndex+4*r.numGlyphs;for(let e=r.vertexStartIndex;en[t]-n[e]||i[e]-i[t])),s}addToSortKeyRanges(t,e){const r=this.sortKeyRanges[this.sortKeyRanges.length-1];r&&r.sortKey===e?r.symbolInstanceEnd=t+1:this.sortKeyRanges.push({sortKey:e,symbolInstanceStart:t,symbolInstanceEnd:t+1});}sortFeatures(t){if(this.sortFeaturesByY&&this.sortedAngle!==t&&!(this.text.segments.get().length>1||this.icon.segments.get().length>1)){this.symbolInstanceIndexes=this.getSortedSymbolIndexes(t),this.sortedAngle=t,this.text.indexArray.clear(),this.icon.indexArray.clear(),this.featureSortOrder=[];for(const t of this.symbolInstanceIndexes){const e=this.symbolInstances.get(t);this.featureSortOrder.push(e.featureIndex);const{rightJustifiedTextSymbolIndex:r,centerJustifiedTextSymbolIndex:n,leftJustifiedTextSymbolIndex:i,verticalPlacedTextSymbolIndex:s,placedIconSymbolIndex:a,verticalPlacedIconSymbolIndex:o}=e;r>=0&&this.addIndicesForPlacedSymbol(this.text,r),n>=0&&n!==r&&this.addIndicesForPlacedSymbol(this.text,n),i>=0&&i!==n&&i!==r&&this.addIndicesForPlacedSymbol(this.text,i),s>=0&&this.addIndicesForPlacedSymbol(this.text,s),a>=0&&this.addIndicesForPlacedSymbol(this.icon,a),o>=0&&this.addIndicesForPlacedSymbol(this.icon,o);}this.text.indexBuffer&&this.text.indexBuffer.updateData(this.text.indexArray),this.icon.indexBuffer&&this.icon.indexBuffer.updateData(this.icon.indexArray);}}}Ji(of,"SymbolBucket",{omit:["layers","collisionBoxArray","features","compareText"]}),of.MAX_GLYPHS=65535,of.addDynamicAttributes=rf;const lf=new Ps({"symbol-placement":new Bs(te.layout_symbol["symbol-placement"]),"symbol-spacing":new Bs(te.layout_symbol["symbol-spacing"]),"symbol-avoid-edges":new Bs(te.layout_symbol["symbol-avoid-edges"]),"symbol-sort-key":new Es(te.layout_symbol["symbol-sort-key"]),"symbol-z-order":new Bs(te.layout_symbol["symbol-z-order"]),"icon-allow-overlap":new Bs(te.layout_symbol["icon-allow-overlap"]),"icon-ignore-placement":new Bs(te.layout_symbol["icon-ignore-placement"]),"icon-optional":new Bs(te.layout_symbol["icon-optional"]),"icon-rotation-alignment":new Bs(te.layout_symbol["icon-rotation-alignment"]),"icon-size":new Es(te.layout_symbol["icon-size"]),"icon-text-fit":new Bs(te.layout_symbol["icon-text-fit"]),"icon-text-fit-padding":new Bs(te.layout_symbol["icon-text-fit-padding"]),"icon-image":new Es(te.layout_symbol["icon-image"]),"icon-rotate":new Es(te.layout_symbol["icon-rotate"]),"icon-padding":new Bs(te.layout_symbol["icon-padding"]),"icon-keep-upright":new Bs(te.layout_symbol["icon-keep-upright"]),"icon-offset":new Es(te.layout_symbol["icon-offset"]),"icon-anchor":new Es(te.layout_symbol["icon-anchor"]),"icon-pitch-alignment":new Bs(te.layout_symbol["icon-pitch-alignment"]),"text-pitch-alignment":new Bs(te.layout_symbol["text-pitch-alignment"]),"text-rotation-alignment":new Bs(te.layout_symbol["text-rotation-alignment"]),"text-field":new Es(te.layout_symbol["text-field"]),"text-font":new Es(te.layout_symbol["text-font"]),"text-size":new Es(te.layout_symbol["text-size"]),"text-max-width":new Es(te.layout_symbol["text-max-width"]),"text-line-height":new Es(te.layout_symbol["text-line-height"]),"text-letter-spacing":new Es(te.layout_symbol["text-letter-spacing"]),"text-justify":new Es(te.layout_symbol["text-justify"]),"text-radial-offset":new Es(te.layout_symbol["text-radial-offset"]),"text-variable-anchor":new Bs(te.layout_symbol["text-variable-anchor"]),"text-anchor":new Es(te.layout_symbol["text-anchor"]),"text-max-angle":new Bs(te.layout_symbol["text-max-angle"]),"text-writing-mode":new Bs(te.layout_symbol["text-writing-mode"]),"text-rotate":new Es(te.layout_symbol["text-rotate"]),"text-padding":new Bs(te.layout_symbol["text-padding"]),"text-keep-upright":new Bs(te.layout_symbol["text-keep-upright"]),"text-transform":new Es(te.layout_symbol["text-transform"]),"text-offset":new Es(te.layout_symbol["text-offset"]),"text-allow-overlap":new Bs(te.layout_symbol["text-allow-overlap"]),"text-ignore-placement":new Bs(te.layout_symbol["text-ignore-placement"]),"text-optional":new Bs(te.layout_symbol["text-optional"])});var uf={paint:new Ps({"icon-opacity":new Es(te.paint_symbol["icon-opacity"]),"icon-color":new Es(te.paint_symbol["icon-color"]),"icon-halo-color":new Es(te.paint_symbol["icon-halo-color"]),"icon-halo-width":new Es(te.paint_symbol["icon-halo-width"]),"icon-halo-blur":new Es(te.paint_symbol["icon-halo-blur"]),"icon-translate":new Bs(te.paint_symbol["icon-translate"]),"icon-translate-anchor":new Bs(te.paint_symbol["icon-translate-anchor"]),"text-opacity":new Es(te.paint_symbol["text-opacity"]),"text-color":new Es(te.paint_symbol["text-color"],{runtimeType:pe,getOverride:t=>t.textColor,hasOverride:t=>!!t.textColor}),"text-halo-color":new Es(te.paint_symbol["text-halo-color"]),"text-halo-width":new Es(te.paint_symbol["text-halo-width"]),"text-halo-blur":new Es(te.paint_symbol["text-halo-blur"]),"text-translate":new Bs(te.paint_symbol["text-translate"]),"text-translate-anchor":new Bs(te.paint_symbol["text-translate-anchor"])}),layout:lf};class cf{constructor(t){this.type=t.property.overrides?t.property.overrides.runtimeType:le,this.defaultValue=t;}evaluate(t){if(t.formattedSection){const e=this.defaultValue.property.overrides;if(e&&e.hasOverride(t.formattedSection))return e.getOverride(t.formattedSection)}return t.feature&&t.featureState?this.defaultValue.evaluate(t.feature,t.featureState):this.defaultValue.property.specification.default}eachChild(t){this.defaultValue.isConstant()||t(this.defaultValue.value._styleExpression.expression);}outputDefined(){return !1}serialize(){return null}}Ji(cf,"FormatSectionOverride",{omit:["defaultValue"]});class hf extends ro{constructor(t){super(t,uf);}recalculate(t,e){super.recalculate(t,e),"auto"===this.layout.get("icon-rotation-alignment")&&(this.layout._values["icon-rotation-alignment"]="point"!==this.layout.get("symbol-placement")?"map":"viewport"),"auto"===this.layout.get("text-rotation-alignment")&&(this.layout._values["text-rotation-alignment"]="point"!==this.layout.get("symbol-placement")?"map":"viewport"),"auto"===this.layout.get("text-pitch-alignment")&&(this.layout._values["text-pitch-alignment"]=this.layout.get("text-rotation-alignment")),"auto"===this.layout.get("icon-pitch-alignment")&&(this.layout._values["icon-pitch-alignment"]=this.layout.get("icon-rotation-alignment"));const r=this.layout.get("text-writing-mode");if(r){const t=[];for(const e of r)t.indexOf(e)<0&&t.push(e);this.layout._values["text-writing-mode"]=t;}else this.layout._values["text-writing-mode"]="point"===this.layout.get("symbol-placement")?["horizontal"]:["horizontal","vertical"];this._setPaintOverrides();}getValueAndResolveTokens(t,e,r,n){const i=this.layout.get(t).evaluate(e,{},r,n),s=this._unevaluatedLayout._values[t];return s.isDataDriven()||Jn(s.value)||!i?i:function(t,e){return e.replace(/{([^{}]+)}/g,((e,r)=>r in t?String(t[r]):""))}(e.properties,i)}createBucket(t){return new of(t)}queryRadius(){return 0}queryIntersectsFeature(){return !1}_setPaintOverrides(){for(const t of uf.paint.overridableProperties){if(!hf.hasPaintOverride(this.layout,t))continue;const e=this.paint.get(t),r=new cf(e),n=new Xn(r,e.property.specification);let i=null;i="constant"===e.value.kind||"source"===e.value.kind?new Yn("source",n):new Wn("composite",n,e.value.zoomStops,e.value._interpolationType),this.paint._values[t]=new Ts(e.property,i,e.parameters);}}_handleOverridablePaintPropertyUpdate(t,e,r){return !(!this.layout||e.isDataDriven()||r.isDataDriven())&&hf.hasPaintOverride(this.layout,t)}static hasPaintOverride(t,e){const r=t.get("text-field"),n=uf.paint.properties[e];let i=!1;const s=t=>{for(const e of t)if(n.overrides&&n.overrides.hasOverride(e))return void(i=!0)};if("constant"===r.value.kind&&r.value.value instanceof De)s(r.value.value.sections);else if("source"===r.value.kind){const t=e=>{i||(e instanceof je&&Re(e.value)===me?s(e.value.sections):e instanceof Ze?s(e.sections):e.eachChild(t));},e=r.value;e._styleExpression&&t(e._styleExpression.expression);}return i}getProgramConfiguration(t){return new Xa(this,t)}}var pf={paint:new Ps({"background-color":new Bs(te.paint_background["background-color"]),"background-pattern":new Bs(te.paint_background["background-pattern"]),"background-opacity":new Bs(te.paint_background["background-opacity"])})},df={paint:new Ps({"raster-opacity":new Bs(te.paint_raster["raster-opacity"]),"raster-hue-rotate":new Bs(te.paint_raster["raster-hue-rotate"]),"raster-brightness-min":new Bs(te.paint_raster["raster-brightness-min"]),"raster-brightness-max":new Bs(te.paint_raster["raster-brightness-max"]),"raster-saturation":new Bs(te.paint_raster["raster-saturation"]),"raster-contrast":new Bs(te.paint_raster["raster-contrast"]),"raster-resampling":new Bs(te.paint_raster["raster-resampling"]),"raster-fade-duration":new Bs(te.paint_raster["raster-fade-duration"])})};class ff extends ro{constructor(t){super(t,{}),this.implementation=t;}is3D(){return "3d"===this.implementation.renderingMode}hasOffscreenPass(){return void 0!==this.implementation.prerender}isLayerDraped(){return void 0!==this.implementation.renderToTile}shouldRedrape(){return !!this.implementation.shouldRerenderTiles&&this.implementation.shouldRerenderTiles()}recalculate(){}updateTransitions(){}hasTransition(){return !1}serialize(){}onAdd(t){this.implementation.onAdd&&this.implementation.onAdd(t,t.painter.context.gl);}onRemove(t){this.implementation.onRemove&&this.implementation.onRemove(t,t.painter.context.gl);}}var yf={paint:new Ps({"sky-type":new Bs(te.paint_sky["sky-type"]),"sky-atmosphere-sun":new Bs(te.paint_sky["sky-atmosphere-sun"]),"sky-atmosphere-sun-intensity":new Bs(te.paint_sky["sky-atmosphere-sun-intensity"]),"sky-gradient-center":new Bs(te.paint_sky["sky-gradient-center"]),"sky-gradient-radius":new Bs(te.paint_sky["sky-gradient-radius"]),"sky-gradient":new Cs(te.paint_sky["sky-gradient"]),"sky-atmosphere-halo-color":new Bs(te.paint_sky["sky-atmosphere-halo-color"]),"sky-atmosphere-color":new Bs(te.paint_sky["sky-atmosphere-color"]),"sky-opacity":new Bs(te.paint_sky["sky-opacity"])})};function mf(t,e,r){const n=[0,0,1],i=Ko([]);return Jo(i,i,r?-w(t)+Math.PI:w(t)),Xo(i,i,-w(e)),Ro(n,n,i),Do(n,n)}const gf={circle:class extends ro{constructor(t){super(t,Tu);}createBucket(t){return new cu(t)}queryRadius(t){const e=t;return Au("circle-radius",this,e)+Au("circle-stroke-width",this,e)+Su(this.paint.get("circle-translate"))}queryIntersectsFeature(t,e,r,n,i,s,a,o){const l=Iu(this.paint.get("circle-translate"),this.paint.get("circle-translate-anchor"),s.angle,t.pixelToTileUnitsFactor),u=this.paint.get("circle-radius").evaluate(e,r)+this.paint.get("circle-stroke-width").evaluate(e,r);return zu(t,n,s,a,o,"map"===this.paint.get("circle-pitch-alignment"),"map"===this.paint.get("circle-pitch-scale"),l,u)}getProgramIds(){return ["circle"]}getProgramConfiguration(t){return new Xa(this,t)}},heatmap:class extends ro{createBucket(t){return new Du(t)}constructor(t){super(t,$u),this._updateColorRamp();}_handleSpecialPaintPropertyUpdate(t){"heatmap-color"===t&&this._updateColorRamp();}_updateColorRamp(){this.colorRamp=ju({expression:this._transitionablePaint._values["heatmap-color"].value.expression,evaluationKey:"heatmapDensity",image:this.colorRamp}),this.colorRampTexture=null;}resize(){this.heatmapFbo&&(this.heatmapFbo.destroy(),this.heatmapFbo=null);}queryRadius(t){return Au("heatmap-radius",this,t)}queryIntersectsFeature(t,e,r,n,i,s,a,o){const l=this.paint.get("heatmap-radius").evaluate(e,r);return zu(t,n,s,a,o,!0,!0,new x(0,0),l)}hasOffscreenPass(){return 0!==this.paint.get("heatmap-opacity")&&"none"!==this.visibility}getProgramIds(){return ["heatmap","heatmapTexture"]}getProgramConfiguration(t){return new Xa(this,t)}},hillshade:class extends ro{constructor(t){super(t,Ou);}hasOffscreenPass(){return 0!==this.paint.get("hillshade-exaggeration")&&"none"!==this.visibility}getProgramIds(){return ["hillshade","hillshadePrepare"]}},fill:class extends ro{constructor(t){super(t,zc);}getProgramIds(){const t=this.paint.get("fill-pattern"),e=t&&t.constantOr(1),r=[e?"fillPattern":"fill"];return this.paint.get("fill-antialias")&&r.push(e&&!this.getPaintProperty("fill-outline-color")?"fillOutlinePattern":"fillOutline"),r}getProgramConfiguration(t){return new Xa(this,t)}recalculate(t,e){super.recalculate(t,e);const r=this.paint._values["fill-outline-color"];"constant"===r.value.kind&&void 0===r.value.value&&(this.paint._values["fill-outline-color"]=this.paint._values["fill-color"]);}createBucket(t){return new Mc(t)}queryRadius(){return Su(this.paint.get("fill-translate"))}queryIntersectsFeature(t,e,r,n,i,s){return !t.queryGeometry.isAboveHorizon&&du(ku(t.tilespaceGeometry,this.paint.get("fill-translate"),this.paint.get("fill-translate-anchor"),s.angle,t.pixelToTileUnitsFactor),n)}isTileClipped(){return !0}},"fill-extrusion":class extends ro{constructor(t){super(t,ch);}createBucket(t){return new th(t)}queryRadius(){return Su(this.paint.get("fill-extrusion-translate"))}is3D(){return !0}getProgramIds(){return [this.paint.get("fill-extrusion-pattern").constantOr(1)?"fillExtrusionPattern":"fillExtrusion"]}getProgramConfiguration(t){return new Xa(this,t)}queryIntersectsFeature(t,e,r,n,i,s,a,o,l){const u=Iu(this.paint.get("fill-extrusion-translate"),this.paint.get("fill-extrusion-translate-anchor"),s.angle,t.pixelToTileUnitsFactor),c=this.paint.get("fill-extrusion-height").evaluate(e,r),h=this.paint.get("fill-extrusion-base").evaluate(e,r),p=[0,0],d=o&&s.elevation,f=s.elevation?s.elevation.exaggeration():1,y=t.tile.getBucket(this);if(d&&y instanceof th){const t=y.centroidVertexArray,e=l+1;et.polygon)).flat());const m=d?o:null,[g,v]=function(t,e,r,n,i,s,a,o,l,u,c){return "globe"===t.projection.name?function(t,e,r,n,i,s,a,o,l,u,c){const h=[],p=[],d=t.projection.upVectorScale(c,t.center.lat,t.worldSize).metersToTile,f=[0,0,0,1],y=[0,0,0,1],m=(t,e,r,n)=>{t[0]=e,t[1]=r,t[2]=n,t[3]=1;},g=oh();r>0&&(r+=g),n+=g;for(const g of e){const e=[],x=[];for(const h of g){const p=h.x+i.x,g=h.y+i.y,v=t.projection.projectTilePoint(p,g,c),b=t.projection.upVector(c,h.x,h.y);let w=r,_=n;if(a){const t=vh(p,g,r,n,a,o,l,u);w+=t.base,_+=t.top;}0!==r?m(f,v.x+b[0]*d*w,v.y+b[1]*d*w,v.z+b[2]*d*w):m(f,v.x,v.y,v.z),m(y,v.x+b[0]*d*_,v.y+b[1]*d*_,v.z+b[2]*d*_),Fo(f,f,s),Fo(y,y,s),e.push(new mh(f[0],f[1],f[2])),x.push(new mh(y[0],y[1],y[2]));}h.push(e),p.push(x);}return [h,p]}(t,e,r,n,i,s,a,o,l,u,c):a?function(t,e,r,n,i,s,a,o,l){const u=[],c=[],h=[0,0,0,1];for(const p of t){const t=[],d=[];for(const u of p){const c=u.x+n.x,p=u.y+n.y,f=vh(c,p,e,r,s,a,o,l);h[0]=c,h[1]=p,h[2]=f.base,h[3]=1,Go(h,h,i),h[3]=Math.max(h[3],1e-5);const y=new mh(h[0]/h[3],h[1]/h[3],h[2]/h[3]);h[0]=c,h[1]=p,h[2]=f.top,h[3]=1,Go(h,h,i),h[3]=Math.max(h[3],1e-5);const m=new mh(h[0]/h[3],h[1]/h[3],h[2]/h[3]);t.push(y),d.push(m);}u.push(t),c.push(d);}return [u,c]}(e,r,n,i,s,a,o,l,u):function(t,e,r,n,i){const s=[],a=[],o=i[8]*e,l=i[9]*e,u=i[10]*e,c=i[11]*e,h=i[8]*r,p=i[9]*r,d=i[10]*r,f=i[11]*r;for(const e of t){const t=[],r=[];for(const s of e){const e=s.x+n.x,a=s.y+n.y,y=i[0]*e+i[4]*a+i[12],m=i[1]*e+i[5]*a+i[13],g=i[2]*e+i[6]*a+i[14],x=i[3]*e+i[7]*a+i[15],v=y+o,b=m+l,w=g+u,_=Math.max(x+c,1e-5),A=y+h,S=m+p,k=g+d,I=Math.max(x+f,1e-5);t.push(new mh(v/_,b/_,w/_)),r.push(new mh(A/I,S/I,k/I));}s.push(t),a.push(r);}return [s,a]}(e,r,n,i,s)}(s,n,h,c,u,a,m,p,f,s.center.lat,t.tileID.canonical),b=t.queryGeometry;return function(t,e,r){let n=1/0;du(r,e)&&(n=xh(r,e[0]));for(let i=0;i=3)for(let e=0;e{this._triggered=!1,this._callback();});}trigger(){this._triggered||(this._triggered=!0,this._channel?this._channel.port1.postMessage(!0):setTimeout((()=>{this._triggered=!1,this._callback();}),0));}remove(){this._channel=void 0,this._callback=()=>{};}}class bf{constructor(){this.tasks={},this.taskQueue=[],R(["process"],this),this.invoker=new vf(this.process),this.nextId=0;}add(t,e){const r=this.nextId++,n=function({type:t,isSymbolTile:e,zoom:r}){return r=r||0,"message"===t?0:"maybePrepare"!==t||e?"parseTile"!==t||e?"parseTile"===t&&e?300-r:"maybePrepare"===t&&e?400-r:500:200-r:100-r}(e);if(0===n){K();try{t();}finally{}return {cancel:()=>{}}}return this.tasks[r]={fn:t,metadata:e,priority:n,id:r},this.taskQueue.push(r),this.invoker.trigger(),{cancel:()=>{delete this.tasks[r];}}}process(){K();try{if(this.taskQueue=this.taskQueue.filter((t=>!!this.tasks[t])),!this.taskQueue.length)return;const t=this.pick();if(null===t)return;const e=this.tasks[t];if(delete this.tasks[t],this.taskQueue.length&&this.invoker.trigger(),!e)return;e.fn();}finally{}}pick(){let t=null,e=1/0;for(let r=0;r>=1)>1;){const t=r+i>>1,l=n+s>>1;1&e?(i=r,s=n,r=a,n=o):(r=i,n=s,i=a,s=o),a=t,o=l;}const l=4*t;If[l+0]=r,If[l+1]=n,If[l+2]=i,If[l+3]=s;}const Mf=new Uint16Array(2178),Tf=new Uint8Array(1089),zf=new Uint16Array(1089);function Bf(t){return 0===t?-.03125:32===t?.03125:0}var Ef=Rs([{name:"a_pos",type:"Int16",components:2},{name:"a_texture_pos",type:"Int16",components:2}]);const Cf={type:2,extent:ao,loadGeometry:()=>[[new x(0,0),new x(ao+1,0),new x(ao+1,ao+1),new x(0,ao+1),new x(0,0)]]};class Pf{constructor(t,e,r,n,i){this.tileID=t,this.uid=D(),this.uses=0,this.tileSize=e,this.tileZoom=r,this.buckets={},this.expirationTime=null,this.queryPadding=0,this.hasSymbolBuckets=!1,this.hasRTLText=!1,this.dependencies={},this.isRaster=i,this.expiredRequestCount=0,this.state="loading",n&&n.transform&&(this.projection=n.transform.projection);}registerFadeDuration(t){const e=t+this.timeAdded;ee.getLayer(t))).filter(Boolean);if(0!==t.length){n.layers=t,n.stateDependentLayerIds&&(n.stateDependentLayers=n.stateDependentLayerIds.map((e=>t.filter((t=>t.id===e))[0])));for(const e of t)r[e.id]=n;}}return r}(t.buckets,e.style),this.hasSymbolBuckets=!1;for(const t in this.buckets){const e=this.buckets[t];if(e instanceof of){if(this.hasSymbolBuckets=!0,!r)break;e.justReloaded=!0;}}if(this.hasRTLText=!1,this.hasSymbolBuckets)for(const t in this.buckets){const e=this.buckets[t];if(e instanceof of&&e.hasRTLText){this.hasRTLText=!0,bs.isLoading()||bs.isLoaded()||"deferred"!==xs()||vs();break}}this.queryPadding=0;for(const t in this.buckets){const r=this.buckets[t];this.queryPadding=Math.max(this.queryPadding,e.style.getLayer(t).queryRadius(r));}t.imageAtlas&&(this.imageAtlas=t.imageAtlas),t.glyphAtlasImage&&(this.glyphAtlasImage=t.glyphAtlasImage),t.lineAtlas&&(this.lineAtlas=t.lineAtlas);}else this.collisionBoxArray=new pa;}unloadVectorData(){if(this.hasData()){for(const t in this.buckets)this.buckets[t].destroy();this.buckets={},this.imageAtlas&&(this.imageAtlas=null),this.lineAtlas&&(this.lineAtlas=null),this.imageAtlasTexture&&this.imageAtlasTexture.destroy(),this.glyphAtlasTexture&&this.glyphAtlasTexture.destroy(),this.lineAtlasTexture&&this.lineAtlasTexture.destroy(),this._tileBoundsBuffer&&(this._tileBoundsBuffer.destroy(),this._tileBoundsIndexBuffer.destroy(),this._tileBoundsSegments.destroy(),this._tileBoundsBuffer=null),this._tileDebugBuffer&&(this._tileDebugBuffer.destroy(),this._tileDebugSegments.destroy(),this._tileDebugBuffer=null),this._tileDebugIndexBuffer&&(this._tileDebugIndexBuffer.destroy(),this._tileDebugIndexBuffer=null),this._globeTileDebugBorderBuffer&&(this._globeTileDebugBorderBuffer.destroy(),this._globeTileDebugBorderBuffer=null),this._tileDebugTextBuffer&&(this._tileDebugTextBuffer.destroy(),this._tileDebugTextSegments.destroy(),this._tileDebugTextIndexBuffer.destroy(),this._tileDebugTextBuffer=null),this._globeTileDebugTextBuffer&&(this._globeTileDebugTextBuffer.destroy(),this._globeTileDebugTextBuffer=null),this.latestFeatureIndex=null,this.state="unloaded";}}getBucket(t){return this.buckets[t.id]}upload(t){for(const e in this.buckets){const r=this.buckets[e];r.uploadPending()&&r.upload(t);}const e=t.gl;this.imageAtlas&&!this.imageAtlas.uploaded&&(this.imageAtlasTexture=new xf(t,this.imageAtlas.image,e.RGBA),this.imageAtlas.uploaded=!0),this.glyphAtlasImage&&(this.glyphAtlasTexture=new xf(t,this.glyphAtlasImage,e.ALPHA),this.glyphAtlasImage=null),this.lineAtlas&&!this.lineAtlas.uploaded&&(this.lineAtlasTexture=new xf(t,this.lineAtlas.image,e.ALPHA),this.lineAtlas.uploaded=!0);}prepare(t){this.imageAtlas&&this.imageAtlas.patchUpdatedImages(t,this.imageAtlasTexture);}queryRenderedFeatures(t,e,r,n,i,s,a,o){return this.latestFeatureIndex&&this.latestFeatureIndex.rawTileData?this.latestFeatureIndex.query({tileResult:n,pixelPosMatrix:a,transform:s,params:i,tileTransform:this.tileTransform},t,e,r):{}}querySourceFeatures(t,e){const r=this.latestFeatureIndex;if(!r||!r.rawTileData)return;const n=r.loadVTLayers(),i=e?e.sourceLayer:"",s=n._geojsonTileLayer||n[i];if(!s)return;const a=hi(e&&e.filter),{z:o,x:l,y:u}=this.tileID.canonical,c={z:o,x:l,y:u};for(let e=0;et)r=!1;else if(e)if(this.expirationTime=0;t--){const e=4*t,r=If[e+0],n=If[e+1],i=If[e+2],s=If[e+3],a=r+i>>1,o=n+s>>1,l=a+o-n,u=o+r-a,c=n*kf+r,h=s*kf+i,p=o*kf+a,d=Math.hypot((Mf[2*c+0]+Mf[2*h+0])/2-Mf[2*p+0],(Mf[2*c+1]+Mf[2*h+1])/2-Mf[2*p+1])>=16;Tf[p]=Tf[p]||(d?1:0),t<1022&&(Tf[p]=Tf[p]||Tf[(n+u>>1)*kf+(r+l>>1)]||Tf[(s+u>>1)*kf+(i+l>>1)]);}const i=new Os,s=new ra;let a=0;function o(t,e){const r=e*kf+t;return 0===zf[r]&&(i.emplaceBack(Mf[2*r+0],Mf[2*r+1],t*ao/Sf,e*ao/Sf),zf[r]=++a),zf[r]-1}function l(t,e,r,n,i,a){const u=t+r>>1,c=e+n>>1;if(Math.abs(t-i)+Math.abs(e-a)>1&&Tf[c*kf+u])l(i,a,t,e,u,c),l(r,n,i,a,u,c);else {const l=o(t,e),u=o(r,n),c=o(i,a);s.emplaceBack(l,u,c);}}return l(0,0,Sf,Sf,Sf,0),l(Sf,Sf,0,0,0,Sf),{vertices:i,indices:s}}(this.tileID.canonical,e);n=t.vertices,i=t.indices;}else {n=new Os,i=new ra;for(const{x:t,y:e}of r)n.emplaceBack(t,e,0,0);const t=xc(n.int16,void 0,4);for(let e=0;e0&&(a=fo(new Float64Array(16),e.globeMatrix)),this._makeGlobeTileDebugBorderBuffer(t,n,e,i,a,s),this._makeGlobeTileDebugTextBuffer(t,n,e,i,a,s);}_globePoint(t,e,r,n,i,s,a){let o=Ml(t,e,r);if(s){const i=1<.5?h=-1:c<-.5&&(h=1);let p=(t/ao+r.x)/i+h,d=(e/ao+r.y)/i;p=(p-l)*n._pixelsPerMercatorPixel+l,d=(d-u)*n._pixelsPerMercatorPixel+u;const f=[p*n.worldSize,d*n.worldSize,0];Fo(f,f,s),o=vl(o,f,a);}return Fo(o,o,i)}_makeGlobeTileDebugBorderBuffer(t,e,r,n,i,s){const a=new $s,o=new ua,l=new js,u=(t,u,c,h,p)=>{const d=(c-t)/(p-1),f=(h-u)/(p-1),y=a.length;for(let c=0;cc*t+e;for(let t=0;te[a])return null}else {const o=1/n[a];let l=(t[a]-r[a])*o,u=(e[a]-r[a])*o;if(l>u){const t=l;l=u,u=t;}if(l>i&&(i=l),us)return null}return i}function Ff(t,e,r,n,i,s,a,o,l,u,c){const h=n-t,p=i-e,d=s-r,f=a-t,y=o-e,m=l-r,g=c[1]*m-c[2]*y,x=c[2]*f-c[0]*m,v=c[0]*y-c[1]*f,b=h*g+p*x+d*v;if(Math.abs(b)<1e-15)return null;const w=1/b,_=u[0]-t,A=u[1]-e,S=u[2]-r,k=(_*g+A*x+S*v)*w;if(k<0||k>1)return null;const I=A*d-S*p,M=S*h-_*d,T=_*p-A*h,z=(c[0]*I+c[1]*M+c[2]*T)*w;return z<0||k+z>1?null:(f*I+y*M+m*T)*w}function Rf(t,e,r){return (t-e)/(r-e)}function Uf(t,e,r,n,i,s,a,o,l){const u=1<{const s=n?1:0,a=(t+1)*r-s,o=e*r,l=(e+1)*r-s;i[0]=t*r,i[1]=o,i[2]=a,i[3]=l;};let a=new Vf(n);const o=[];for(let e=0;e=1;n/=2){const t=r[r.length-1];a=new Vf(n);for(let e=0;e0;){const{idx:o,t:d,nodex:f,nodey:y,depth:m}=p.pop();if(this.leaves[o]){Uf(f,y,m,t,e,r,n,c,h);const o=1<=t[2])return d}continue}let g=0;for(let p=0;p=l[u[r]]&&(u.splice(r,0,p),e=!0);e||(u[g]=p),g++;}}for(let t=0;t=this.dim+1||e<-1||e>=this.dim+1)throw new RangeError("out of range source coordinates for DEM data");return (e+1)*this.stride+(t+1)}static pack(t,e){const r=[0,0,0,0],n=Zf.getUnpackVector(e);let i=Math.floor((t+n[3])/n[2]);return r[2]=i%256,i=Math.floor(i/256),r[1]=i%256,i=Math.floor(i/256),r[0]=i,r}getPixels(){return new Uu({width:this.stride,height:this.stride},this.pixels)}backfillBorder(t,e,r){if(this.dim!==t.dim)throw new Error("dem dimension mismatch");let n=e*this.dim,i=e*this.dim+this.dim,s=r*this.dim,a=r*this.dim+this.dim;switch(e){case-1:n=i-1;break;case 1:i=n+1;}switch(r){case-1:s=a-1;break;case 1:a=s+1;}const o=-e*this.dim,l=-r*this.dim;for(let e=s;e{this.remove(t,i);}),r)),this.data[n].push(i),this.order.push(n),this.order.length>this.max){const t=this._getAndRemoveByKey(this.order[0]);t&&this.onRemove(t);}return this}has(t){return t.wrapped().key in this.data}getAndRemove(t){return this.has(t)?this._getAndRemoveByKey(t.wrapped().key):null}_getAndRemoveByKey(t){const e=this.data[t].shift();return e.timeout&&clearTimeout(e.timeout),0===this.data[t].length&&delete this.data[t],this.order.splice(this.order.indexOf(t),1),e.value}getByKey(t){const e=this.data[t];return e?e[0].value:null}get(t){return this.has(t)?this.data[t.wrapped().key][0].value:null}remove(t,e){if(!this.has(t))return this;const r=t.wrapped().key,n=void 0===e?0:this.data[r].indexOf(e),i=this.data[r][n];return this.data[r].splice(n,1),i.timeout&&clearTimeout(i.timeout),0===this.data[r].length&&delete this.data[r],this.onRemove(i.value),this.order.splice(this.order.indexOf(r),1),this}setMaxSize(t){for(this.max=t;this.order.length>this.max;){const t=this._getAndRemoveByKey(this.order[0]);t&&this.onRemove(t);}return this}filter(t){const e=[];for(const r in this.data)for(const n of this.data[r])t(n.value)||e.push(n);for(const t of e)this.remove(t.value.tileID,t);}}class Xf{constructor(t,e,r){this.func=t,this.mask=e,this.range=r;}}Xf.ReadOnly=!1,Xf.ReadWrite=!0,Xf.disabled=new Xf(519,Xf.ReadOnly,[0,1]);const Jf=7680;class Hf{constructor(t,e,r,n,i,s){this.test=t,this.ref=e,this.mask=r,this.fail=n,this.depthFail=i,this.pass=s;}}Hf.disabled=new Hf({func:519,mask:0},0,0,Jf,Jf,Jf);class Yf{constructor(t,e,r){this.blendFunction=t,this.blendColor=e,this.mask=r;}}Yf.Replace=[1,0],Yf.disabled=new Yf(Yf.Replace,Ee.transparent,[!1,!1,!1,!1]),Yf.unblended=new Yf(Yf.Replace,Ee.transparent,[!0,!0,!0,!0]),Yf.alphaBlended=new Yf([1,771],Ee.transparent,[!0,!0,!0,!0]);const Wf=1029,Qf=2305;class ty{constructor(t,e,r){this.enable=t,this.mode=e,this.frontFace=r;}}ty.disabled=new ty(!1,Wf,Qf),ty.backCCW=new ty(!0,Wf,Qf),ty.backCW=new ty(!0,Wf,2304),ty.frontCW=new ty(!0,1028,2304),ty.frontCCW=new ty(!0,1028,Qf);class ey extends Qt{constructor(t,e,r){super(),this.id=t,this._onlySymbols=r,e.on("data",(t=>{"source"===t.dataType&&"metadata"===t.sourceDataType&&(this._sourceLoaded=!0),this._sourceLoaded&&!this._paused&&"source"===t.dataType&&"content"===t.sourceDataType&&(this.reload(),this.transform&&this.update(this.transform));})),e.on("error",(()=>{this._sourceErrored=!0;})),this._source=e,this._tiles={},this._cache=new Kf(0,this._unloadTile.bind(this)),this._timers={},this._cacheTimers={},this._minTileCacheSize=e.minTileCacheSize,this._maxTileCacheSize=e.maxTileCacheSize,this._loadedParentTiles={},this._coveredTiles={},this._state=new Df,this._isRaster="raster"===this._source.type||"raster-dem"===this._source.type||"custom"===this._source.type&&"raster"===this._source._dataType;}onAdd(t){this.map=t,this._minTileCacheSize=void 0===this._minTileCacheSize&&t?t._minTileCacheSize:this._minTileCacheSize,this._maxTileCacheSize=void 0===this._maxTileCacheSize&&t?t._maxTileCacheSize:this._maxTileCacheSize;}loaded(){if(this._sourceErrored)return !0;if(!this._sourceLoaded)return !1;if(!this._source.loaded())return !1;for(const t in this._tiles){const e=this._tiles[t];if("loaded"!==e.state&&"errored"!==e.state)return !1}return !0}getSource(){return this._source}pause(){this._paused=!0;}resume(){if(!this._paused)return;const t=this._shouldReloadOnResume;this._paused=!1,this._shouldReloadOnResume=!1,t&&this.reload(),this.transform&&this.update(this.transform);}_loadTile(t,e){return t.isSymbolTile=this._onlySymbols,this._source.loadTile(t,e)}_unloadTile(t){if(this._source.unloadTile)return this._source.unloadTile(t,(()=>{}))}_abortTile(t){if(this._source.abortTile)return this._source.abortTile(t,(()=>{}))}serialize(){return this._source.serialize()}prepare(t){this._source.prepare&&this._source.prepare(),this._state.coalesceChanges(this._tiles,this.map?this.map.painter:null);for(const e in this._tiles){const r=this._tiles[e];r.upload(t),r.prepare(this.map.style.imageManager);}}getIds(){return E(this._tiles).map((t=>t.tileID)).sort(ry).map((t=>t.key))}getRenderableIds(t){const e=[];for(const r in this._tiles)this._isIdRenderable(+r,t)&&e.push(this._tiles[r]);return t?e.sort(((t,e)=>{const r=t.tileID,n=e.tileID,i=new x(r.canonical.x,r.canonical.y)._rotate(this.transform.angle),s=new x(n.canonical.x,n.canonical.y)._rotate(this.transform.angle);return r.overscaledZ-n.overscaledZ||s.y-i.y||s.x-i.x})).map((t=>t.tileID.key)):e.map((t=>t.tileID)).sort(ry).map((t=>t.key))}hasRenderableParent(t){const e=this.findLoadedParent(t,0);return !!e&&this._isIdRenderable(e.tileID.key)}_isIdRenderable(t,e){return this._tiles[t]&&this._tiles[t].hasData()&&!this._coveredTiles[t]&&(e||!this._tiles[t].holdingForFade())}reload(){if(this._paused)this._shouldReloadOnResume=!0;else {this._cache.reset();for(const t in this._tiles)"errored"!==this._tiles[t].state&&this._reloadTile(+t,"reloading");}}_reloadTile(t,e){const r=this._tiles[t];r&&("loading"!==r.state&&(r.state=e),this._loadTile(r,this._tileLoaded.bind(this,r,t,e)));}_tileLoaded(t,e,r,n){if(n)if(t.state="errored",404!==n.status)this._source.fire(new Wt(n,{tile:t}));else if("raster-dem"===this._source.type&&this.usedForTerrain&&this.map.painter.terrain){const t=this.map.painter.terrain;this.update(this.transform,t.getScaledDemTileSize(),!0),t.resetTileLookupCache(this.id);}else this.update(this.transform);else t.timeAdded=Xt.now(),"expired"===r&&(t.refreshedUponExpiration=!0),this._setTileReloadTimer(e,t),"raster-dem"===this._source.type&&t.dem&&this._backfillDEM(t),this._state.initializeTileState(t,this.map?this.map.painter:null),this._source.fire(new Yt("data",{dataType:"source",tile:t,coord:t.tileID,sourceCacheId:this.id}));}_backfillDEM(t){const e=this.getRenderableIds();for(let n=0;n1||(Math.abs(r)>1&&(1===Math.abs(r+i)?r+=i:1===Math.abs(r-i)&&(r-=i)),e.dem&&t.dem&&(t.dem.backfillBorder(e.dem,r,n),t.neighboringTiles&&t.neighboringTiles[s]&&(t.neighboringTiles[s].backfilled=!0)));}}getTile(t){return this.getTileByID(t.key)}getTileByID(t){return this._tiles[t]}_retainLoadedChildren(t,e,r,n){for(const i in this._tiles){let s=this._tiles[i];if(n[i]||!s.hasData()||s.tileID.overscaledZ<=e||s.tileID.overscaledZ>r)continue;let a=s.tileID;for(;s&&s.tileID.overscaledZ>e+1;){const t=s.tileID.scaledTo(s.tileID.overscaledZ-1);s=this._tiles[t.key],s&&s.hasData()&&(a=t);}let o=a;for(;o.overscaledZ>e;)if(o=o.scaledTo(o.overscaledZ-1),t[o.key]){n[a.key]=a;break}}}findLoadedParent(t,e){if(t.key in this._loadedParentTiles){const r=this._loadedParentTiles[t.key];return r&&r.tileID.overscaledZ>=e?r:null}for(let r=t.overscaledZ-1;r>=e;r--){const e=t.scaledTo(r),n=this._getLoadedTile(e);if(n)return n}}_getLoadedTile(t){const e=this._tiles[t.key];return e&&e.hasData()?e:this._cache.getByKey(this._source.reparseOverscaled?t.wrapped().key:t.canonical.key)}updateCacheSize(t,e){e=e||this._source.tileSize;const r=Math.ceil(t.width/e)+1,n=Math.ceil(t.height/e)+1,i=Math.floor(r*n*5),s="number"==typeof this._minTileCacheSize?Math.max(this._minTileCacheSize,i):i,a="number"==typeof this._maxTileCacheSize?Math.min(this._maxTileCacheSize,s):s;this._cache.setMaxSize(a);}handleWrapJump(t){const e=Math.round((t-(void 0===this._prevLng?t:this._prevLng))/360);if(this._prevLng=t,e){const t={};for(const r in this._tiles){const n=this._tiles[r];n.tileID=n.tileID.unwrapTo(n.tileID.wrap+e),t[n.tileID.key]=n;}this._tiles=t;for(const t in this._timers)clearTimeout(this._timers[t]),delete this._timers[t];for(const t in this._tiles)this._setTileReloadTimer(+t,this._tiles[t]);}}update(t,e,r){if(this.transform=t,!this._sourceLoaded||this._paused||this.transform.freezeTileCoverage)return;if(this.usedForTerrain&&!r)return;let n;this.updateCacheSize(t,e),"globe"!==this.transform.projection.name&&this.handleWrapJump(this.transform.center.lng),this._coveredTiles={},this.used||this.usedForTerrain?this._source.tileID?n=t.getVisibleUnwrappedCoordinates(this._source.tileID).map((t=>new fh(t.canonical.z,t.wrap,t.canonical.z,t.canonical.x,t.canonical.y))):(n=t.coveringTiles({tileSize:e||this._source.tileSize,minzoom:this._source.minzoom,maxzoom:this._source.maxzoom,roundZoom:this._source.roundZoom&&!r,reparseOverscaled:this._source.reparseOverscaled,isTerrainDEM:this.usedForTerrain}),this._source.hasTile&&(n=n.filter((t=>this._source.hasTile(t))))):n=[];const i=this._updateRetainedTiles(n);if(ny(this._source.type)&&0!==n.length){const t={},e={},r=Object.keys(i);for(const n of r){const r=i[n],s=this._tiles[n];if(!s||s.fadeEndTime&&s.fadeEndTime<=Xt.now())continue;const a=this.findLoadedParent(r,Math.max(r.overscaledZ-ey.maxOverzooming,this._source.minzoom));a&&(this._addTile(a.tileID),t[a.tileID.key]=a.tileID),e[n]=r;}const s=n[n.length-1].overscaledZ;for(const t in this._tiles){const r=this._tiles[t];if(i[t]||!r.hasData())continue;let n=r.tileID;for(;n.overscaledZ>s;){n=n.scaledTo(n.overscaledZ-1);const s=this._tiles[n.key];if(s&&s.hasData()&&e[n.key]){i[t]=r.tileID;break}}}for(const e in t)i[e]||(this._coveredTiles[e]=!0,i[e]=t[e]);}for(const t in i)this._tiles[t].clearFadeHold();const s=function(t,e){const r=[];for(const n in t)n in e||r.push(n);return r}(this._tiles,i);for(const t of s){const e=this._tiles[t];e.hasSymbolBuckets&&!e.holdingForFade()?e.setHoldDuration(this.map._fadeDuration):e.hasSymbolBuckets&&!e.symbolFadeFinished()||this._removeTile(+t);}this._updateLoadedParentTileCache(),this._onlySymbols&&this._source.afterUpdate&&this._source.afterUpdate();}releaseSymbolFadeTiles(){for(const t in this._tiles)this._tiles[t].holdingForFade()&&this._removeTile(+t);}_updateRetainedTiles(t){const e={};if(0===t.length)return e;const r={},n=t.reduce(((t,e)=>Math.min(t,e.overscaledZ)),1/0),i=t[0].overscaledZ,s=Math.max(i-ey.maxOverzooming,this._source.minzoom),a=Math.max(i+ey.maxUnderzooming,this._source.minzoom),o={};for(const r of t){const t=this._addTile(r);e[r.key]=r,t.hasData()||n=this._source.maxzoom){const t=n.children(this._source.maxzoom)[0],r=this.getTile(t);if(r&&r.hasData()){e[t.key]=t;continue}}else {const t=n.children(this._source.maxzoom);if(e[t[0].key]&&e[t[1].key]&&e[t[2].key]&&e[t[3].key])continue}let i=t.wasRequested();for(let a=n.overscaledZ-1;a>=s;--a){const s=n.scaledTo(a);if(r[s.key])break;if(r[s.key]=!0,t=this.getTile(s),!t&&i&&(t=this._addTile(s)),t&&(e[s.key]=s,i=t.wasRequested(),t.hasData()))break}}return e}_updateLoadedParentTileCache(){this._loadedParentTiles={};for(const t in this._tiles){const e=[];let r,n=this._tiles[t].tileID;for(;n.overscaledZ>0;){if(n.key in this._loadedParentTiles){r=this._loadedParentTiles[n.key];break}e.push(n.key);const t=n.scaledTo(n.overscaledZ-1);if(r=this._getLoadedTile(t),r)break;n=t;}for(const t of e)this._loadedParentTiles[t]=r;}}_addTile(t){let e=this._tiles[t.key];if(e)return e;e=this._cache.getAndRemove(t),e&&(this._setTileReloadTimer(t.key,e),e.tileID=t,this._state.initializeTileState(e,this.map?this.map.painter:null),this._cacheTimers[t.key]&&(clearTimeout(this._cacheTimers[t.key]),delete this._cacheTimers[t.key],this._setTileReloadTimer(t.key,e)));const r=Boolean(e);if(!r){const r=this.map?this.map.painter:null;e=new Pf(t,this._source.tileSize*t.overscaleFactor(),this.transform.tileZoom,r,this._isRaster),this._loadTile(e,this._tileLoaded.bind(this,e,t.key,e.state));}return e?(e.uses++,this._tiles[t.key]=e,r||this._source.fire(new Yt("dataloading",{tile:e,coord:e.tileID,dataType:"source"})),e):null}_setTileReloadTimer(t,e){t in this._timers&&(clearTimeout(this._timers[t]),delete this._timers[t]);const r=e.getExpiryTimeout();r&&(this._timers[t]=setTimeout((()=>{this._reloadTile(t,"expired"),delete this._timers[t];}),r));}_removeTile(t){const e=this._tiles[t];e&&(e.uses--,delete this._tiles[t],this._timers[t]&&(clearTimeout(this._timers[t]),delete this._timers[t]),e.uses>0||(e.hasData()&&"reloading"!==e.state?this._cache.add(e.tileID,e,e.getExpiryTimeout()):(e.aborted=!0,this._abortTile(e),this._unloadTile(e))));}clearTiles(){this._shouldReloadOnResume=!1,this._paused=!1;for(const t in this._tiles)this._removeTile(+t);this._source._clear&&this._source._clear(),this._cache.reset(),this.map&&this.usedForTerrain&&this.map.painter.terrain&&this.map.painter.terrain.resetTileLookupCache(this.id);}tilesIn(t,e,r){const n=[],i=this.transform;if(!i)return n;const s="globe"===i.projection.name,a=Nl(i.center.lng);for(const o in this._tiles){const l=this._tiles[o];if(r&&l.clearQueryDebugViz(),l.holdingForFade())continue;let u;if(s){const t=l.tileID.canonical;if(0===t.z){const e=[Math.abs(M(a,...iy(t,-1))-a),Math.abs(M(a,...iy(t,1))-a)];u=[0,2*e.indexOf(Math.min(...e))-1];}else {const e=[Math.abs(M(a,...iy(t,-1))-a),Math.abs(M(a,...iy(t,0))-a),Math.abs(M(a,...iy(t,1))-a)];u=[e.indexOf(Math.min(...e))-1];}}else u=[0];for(const r of u){const s=t.containsTile(l,i,e,r);s&&n.push(s);}}return n}getVisibleCoordinates(t){const e=this.getRenderableIds(t).map((t=>this._tiles[t].tileID));for(const t of e)t.projMatrix=this.transform.calculateProjMatrix(t.toUnwrapped());return e}hasTransition(){if(this._source.hasTransition())return !0;if(ny(this._source.type))for(const t in this._tiles){const e=this._tiles[t];if(void 0!==e.fadeEndTime&&e.fadeEndTime>=Xt.now())return !0}return !1}setFeatureState(t,e,r){this._state.updateState(t=t||"_geojsonTileLayer",e,r);}removeFeatureState(t,e,r){this._state.removeFeatureState(t=t||"_geojsonTileLayer",e,r);}getFeatureState(t,e){return this._state.getState(t=t||"_geojsonTileLayer",e)}setDependencies(t,e,r){const n=this._tiles[t];n&&n.setDependencies(e,r);}reloadTilesForDependencies(t,e){for(const r in this._tiles)this._tiles[r].hasDependency(t,e)&&this._reloadTile(+r,"reloading");this._cache.filter((r=>!r.hasDependency(t,e)));}_preloadTiles(t,e){if(!this._sourceLoaded){const r=()=>{this._sourceLoaded&&(this._source.off("data",r),this._preloadTiles(t,e));};return void this._source.on("data",r)}const r=new Map,n=Array.isArray(t)?t:[t],i=this.map.painter.terrain,s=this.usedForTerrain&&i?i.getScaledDemTileSize():this._source.tileSize;for(const t of n){const e=t.coveringTiles({tileSize:s,minzoom:this._source.minzoom,maxzoom:this._source.maxzoom,roundZoom:this._source.roundZoom&&!this.usedForTerrain,reparseOverscaled:this._source.reparseOverscaled,isTerrainDEM:this.usedForTerrain});for(const t of e)r.set(t.key,t);this.usedForTerrain&&t.updateElevation(!1);}B(Array.from(r.values()),((t,e)=>{const r=new Pf(t,this._source.tileSize*t.overscaleFactor(),this.transform.tileZoom,this.map.painter,this._isRaster);this._loadTile(r,(t=>{"raster-dem"===this._source.type&&r.dem&&this._backfillDEM(r),e(t,r);}));}),e);}}function ry(t,e){const r=Math.abs(2*t.wrap)-+(t.wrap<0),n=Math.abs(2*e.wrap)-+(e.wrap<0);return t.overscaledZ-e.overscaledZ||n-r||e.canonical.y-t.canonical.y||e.canonical.x-t.canonical.x}function ny(t){return "raster"===t||"image"===t||"video"===t||"custom"===t}function iy(t,e){const r=1<=0&&n[3]>=0&&o.insert(a,n[0],n[1],n[2],n[3]);}}loadVTLayers(){if(!this.vtLayers){this.vtLayers=new Zc(new mp(this.rawTileData)).layers,this.sourceLayerCoder=new wf(this.vtLayers?Object.keys(this.vtLayers).sort():["_geojsonTileLayer"]),this.vtFeatures={};for(const t in this.vtLayers)this.vtFeatures[t]=[];}return this.vtLayers}query(t,e,r,n){this.loadVTLayers();const i=t.params||{},s=hi(i.filter),a=t.tileResult,o=t.transform,l=a.bufferedTilespaceBounds,u=this.grid.query(l.min.x,l.min.y,l.max.x,l.max.y,((t,e,r,n)=>wu(a.bufferedTilespaceGeometry,t,e,r,n)));u.sort(ly);let c=null;o.elevation&&u.length>0&&(c=sy.create(o.elevation,this.tileID));const h={};let p;for(let o=0;o(f||(f=au(e,this.tileID.canonical,t.tileTransform)),r.queryIntersectsFeature(a,e,n,f,this.z,t.transform,t.pixelPosMatrix,c,i))));}return h}loadMatchingFeature(t,e,r,n,i,s,a,o,l){const{featureIndex:u,bucketIndex:c,sourceLayerIndex:h,layoutVertexArrayOffset:p}=e,d=this.bucketLayerIDs[c];if(n&&!function(t,e){for(let r=0;r=0)return !0;return !1}(n,d))return;const f=this.sourceLayerCoder.decode(h),y=this.vtLayers[f].feature(u);if(r.needGeometry){const t=ou(y,!0);if(!r.filter(new ws(this.tileID.overscaledZ),t,this.tileID.canonical))return}else if(!r.filter(new ws(this.tileID.overscaledZ),y))return;const m=this.getId(y,f);for(let e=0;e{const a=e instanceof zs?e.get(s):null;return a&&a.evaluate?a.evaluate(r,n,i):a}))}function ly(t,e){return e-t}Ji(ay,"FeatureIndex",{omit:["rawTileData","sourceLayerCoder"]});class uy{constructor(t,e){this.width=t,this.height=e,this.nextRow=0,this.image=new Ru({width:t,height:e}),this.positions={},this.uploaded=!1;}getDash(t,e){const r=this.getKey(t,e);return this.positions[r]}trim(){const t=this.width,e=this.height=L(this.nextRow);this.image.resize({width:t,height:e});}getKey(t,e){return t.join(",")+e}getDashRanges(t,e,r){const n=[];let i=t.length%2==1?-t[t.length-1]*r:0,s=t[0]*r,a=!0;n.push({left:i,right:s,isDash:a,zeroLength:0===t[0]});let o=t[0];for(let e=1;e1&&(a=t[++s]);const l=Math.abs(o-a.left),u=Math.abs(o-a.right),c=Math.min(l,u);let h;const p=e/r*(n+1);if(a.isDash){const t=n-Math.abs(p);h=Math.sqrt(c*c+t*t);}else h=n-Math.sqrt(c*c+p*p);this.image.data[i+o]=Math.max(0,Math.min(255,h+128));}}}addRegularDash(t,e){for(let e=t.length-1;e>=0;--e){const r=t[e],n=t[e+1];r.zeroLength?t.splice(e,1):n&&n.isDash===r.isDash&&(n.left=r.left,t.splice(e,1));}const r=t[0],n=t[t.length-1];r.isDash===n.isDash&&(r.left=n.left-this.width,n.right=r.right+this.width);const i=this.width*this.nextRow;let s=0,a=t[s];for(let r=0;r1&&(a=t[++s]);const n=Math.abs(r-a.left),o=Math.abs(r-a.right),l=Math.min(n,o);this.image.data[i+r]=Math.max(0,Math.min(255,(a.isDash?l:-l)+e+128));}}addDash(t,e){const r=this.getKey(t,e);if(this.positions[r])return this.positions[r];const n="round"===e,i=n?7:0,s=2*i+1;if(this.nextRow+s>this.height)return N("LineAtlas out of space"),null;0===t.length&&t.push(1);let a=0;for(let e=0;e=e.maxzoom||"none"!==e.visibility&&(dy(t,this.zoom,r),(o[e.id]=e.createBucket({index:a.bucketLayerIDs.length,layers:t,zoom:this.zoom,canonical:this.canonical,pixelRatio:this.pixelRatio,overscaling:this.overscaling,collisionBoxArray:this.collisionBoxArray,sourceLayerIndex:h,sourceID:this.source,enableTerrain:this.enableTerrain,projection:this.projection.spec,availableImages:r})).populate(p,u,this.tileID.canonical,this.tileTransform),a.bucketLayerIDs.push(t.map((t=>t.id))));}}let h,p,d,f;l.trim();const y={type:"maybePrepare",isSymbolTile:this.isSymbolTile,zoom:this.zoom},m=()=>{if(h)return i(h);if(p&&d&&f){const t=new hy(p),e=new kp(d,f);for(const n in o){const i=o[n];i instanceof of?(dy(i.layers,this.zoom,r),vd(i,p,t.positions,d,e.iconPositions,this.showCollisionBoxes,r,this.tileID.canonical,this.tileZoom,this.projection)):i.hasPattern&&(i instanceof Ih||i instanceof Mc||i instanceof th)&&(dy(i.layers,this.zoom,r),i.addFeatures(u,this.tileID.canonical,e.patternPositions,r,this.tileTransform));}this.status="done",i(null,{buckets:E(o).filter((t=>!t.isEmpty())),featureIndex:a,collisionBoxArray:this.collisionBoxArray,glyphAtlasImage:t.image,lineAtlas:l,imageAtlas:e,glyphMap:this.returnDependencies?p:null,iconMap:this.returnDependencies?d:null,glyphPositions:this.returnDependencies?t.positions:null});}},g=$(u.glyphDependencies,(t=>Object.keys(t).map(Number)));Object.keys(g).length?n.send("getGlyphs",{uid:this.uid,stacks:g},((t,e)=>{h||(h=t,p=e,m());}),void 0,!1,y):p={};const x=Object.keys(u.iconDependencies);x.length?n.send("getImages",{icons:x,source:this.source,tileID:this.tileID,type:"icons"},((t,e)=>{h||(h=t,d=e,m());}),void 0,!1,y):d={};const v=Object.keys(u.patternDependencies);v.length?n.send("getImages",{icons:v,source:this.source,tileID:this.tileID,type:"patterns"},((t,e)=>{h||(h=t,f=e,m());}),void 0,!1,y):f={},m();}}function dy(t,e,r){const n=new ws(e);for(const e of t)e.recalculate(n,r);}class fy{constructor(t){this.entries={},this.scheduler=t;}request(t,e,r,n){const i=this.entries[t]=this.entries[t]||{callbacks:[]};if(i.result){const[t,r]=i.result;return this.scheduler?this.scheduler.add((()=>{n(t,r);}),e):n(t,r),()=>{}}return i.callbacks.push(n),i.cancel||(i.cancel=r(((r,n)=>{i.result=[r,n];for(const t of i.callbacks)this.scheduler?this.scheduler.add((()=>{t(r,n);}),e):t(r,n);setTimeout((()=>delete this.entries[t]),3e3);}))),()=>{i.result||(i.callbacks=i.callbacks.filter((t=>t!==n)),i.callbacks.length||(i.cancel(),delete this.entries[t]));}}}function yy(t,e,r){const n=JSON.stringify(t.request);return t.data&&(this.deduped.entries[n]={result:[null,t.data]}),this.deduped.request(n,{type:"parseTile",isSymbolTile:t.isSymbolTile,zoom:t.tileZoom},(e=>{const n=pt(t.request,((t,n,i,s)=>{t?e(t):n&&e(null,{vectorTile:r?void 0:new Zc(new mp(n)),rawData:n,cacheControl:i,expires:s});}));return ()=>{n.cancel(),e();}}),e)}const my=[Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];class gy{static from(t){if(!(t instanceof ArrayBuffer))throw new Error("Data must be an instance of ArrayBuffer.");const[e,r]=new Uint8Array(t,0,2);if(219!==e)throw new Error("Data does not appear to be in a KDBush format.");const n=r>>4;if(1!==n)throw new Error(`Got v${n} data when expected v1.`);const i=my[15&r];if(!i)throw new Error("Unrecognized array type.");const[s]=new Uint16Array(t,2,1),[a]=new Uint32Array(t,4,1);return new gy(a,s,i,t)}constructor(t,e=64,r=Float64Array,n){if(isNaN(t)||t<0)throw new Error(`Unpexpected numItems value: ${t}.`);this.numItems=+t,this.nodeSize=Math.min(Math.max(+e,2),65535),this.ArrayType=r,this.IndexArrayType=t<65536?Uint16Array:Uint32Array;const i=my.indexOf(this.ArrayType),s=2*t*this.ArrayType.BYTES_PER_ELEMENT,a=t*this.IndexArrayType.BYTES_PER_ELEMENT,o=(8-a%8)%8;if(i<0)throw new Error(`Unexpected typed array class: ${r}.`);n&&n instanceof ArrayBuffer?(this.data=n,this.ids=new this.IndexArrayType(this.data,8,t),this.coords=new this.ArrayType(this.data,8+a+o,2*t),this._pos=2*t,this._finished=!0):(this.data=new ArrayBuffer(8+s+a+o),this.ids=new this.IndexArrayType(this.data,8,t),this.coords=new this.ArrayType(this.data,8+a+o,2*t),this._pos=0,this._finished=!1,new Uint8Array(this.data,0,2).set([219,16+i]),new Uint16Array(this.data,2,1)[0]=e,new Uint32Array(this.data,4,1)[0]=t);}add(t,e){const r=this._pos>>1;return this.ids[r]=r,this.coords[this._pos++]=t,this.coords[this._pos++]=e,r}finish(){const t=this._pos>>1;if(t!==this.numItems)throw new Error(`Added ${t} items when expected ${this.numItems}.`);return xy(this.ids,this.coords,this.nodeSize,0,this.numItems-1,0),this._finished=!0,this}range(t,e,r,n){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");const{ids:i,coords:s,nodeSize:a}=this,o=[0,i.length-1,0],l=[];for(;o.length;){const u=o.pop()||0,c=o.pop()||0,h=o.pop()||0;if(c-h<=a){for(let a=h;a<=c;a++){const o=s[2*a],u=s[2*a+1];o>=t&&o<=r&&u>=e&&u<=n&&l.push(i[a]);}continue}const p=h+c>>1,d=s[2*p],f=s[2*p+1];d>=t&&d<=r&&f>=e&&f<=n&&l.push(i[p]),(0===u?t<=d:e<=f)&&(o.push(h),o.push(p-1),o.push(1-u)),(0===u?r>=d:n>=f)&&(o.push(p+1),o.push(c),o.push(1-u));}return l}within(t,e,r){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");const{ids:n,coords:i,nodeSize:s}=this,a=[0,n.length-1,0],o=[],l=r*r;for(;a.length;){const u=a.pop()||0,c=a.pop()||0,h=a.pop()||0;if(c-h<=s){for(let r=h;r<=c;r++)_y(i[2*r],i[2*r+1],t,e)<=l&&o.push(n[r]);continue}const p=h+c>>1,d=i[2*p],f=i[2*p+1];_y(d,f,t,e)<=l&&o.push(n[p]),(0===u?t-r<=d:e-r<=f)&&(a.push(h),a.push(p-1),a.push(1-u)),(0===u?t+r>=d:e+r>=f)&&(a.push(p+1),a.push(c),a.push(1-u));}return o}}function xy(t,e,r,n,i,s){if(i-n<=r)return;const a=n+i>>1;vy(t,e,a,n,i,s),xy(t,e,r,n,a-1,1-s),xy(t,e,r,a+1,i,1-s);}function vy(t,e,r,n,i,s){for(;i>n;){if(i-n>600){const a=i-n+1,o=r-n+1,l=Math.log(a),u=.5*Math.exp(2*l/3),c=.5*Math.sqrt(l*u*(a-u)/a)*(o-a/2<0?-1:1);vy(t,e,r,Math.max(n,Math.floor(r-o*u/a+c)),Math.min(i,Math.floor(r+(a-o)*u/a+c)),s);}const a=e[2*r+s];let o=n,l=i;for(by(t,e,n,r),e[2*i+s]>a&&by(t,e,n,i);oa;)l--;}e[2*n+s]===a?by(t,e,n,l):(l++,by(t,e,l,i)),l<=r&&(n=l+1),r<=l&&(i=l-1);}}function by(t,e,r,n){wy(t,r,n),wy(e,2*r,2*n),wy(e,2*r+1,2*n+1);}function wy(t,e,r){const n=t[e];t[e]=t[r],t[r]=n;}function _y(t,e,r,n){const i=t-r,s=e-n;return i*i+s*s}t.ARRAY_TYPE=uo,t.AUTH_ERR_MSG=xt,t.Aabb=il,t.Actor=class{constructor(t,r,n){this.target=t,this.parent=r,this.mapId=n,this.callbacks={},this.cancelCallbacks={},R(["receive"],this),this.target.addEventListener("message",this.receive,!1),this.globalScope=K()?t:e,this.scheduler=new bf;}send(t,e,r,n,i=!1,s){const a=Math.round(1e18*Math.random()).toString(36).substring(0,10);r&&(r.metadata=s,this.callbacks[a]=r);const o=H(this.globalScope)?void 0:[];return this.target.postMessage({id:a,type:t,hasCallback:!!r,targetMapId:n,mustQueue:i,sourceMapId:this.mapId,data:Wi(e,o)},o),{cancel:()=>{r&&delete this.callbacks[a],this.target.postMessage({id:a,type:"",targetMapId:n,sourceMapId:this.mapId});}}}receive(t){const e=t.data,r=e.id;if(r&&(!e.targetMapId||this.mapId===e.targetMapId))if(""===e.type){const t=this.cancelCallbacks[r];delete this.cancelCallbacks[r],t&&t.cancel();}else if(e.mustQueue||K()){const t=this.callbacks[r];this.cancelCallbacks[r]=this.scheduler.add((()=>this.processTask(r,e)),t&&t.metadata||{type:"message"});}else this.processTask(r,e);}processTask(t,e){if(""===e.type){const r=this.callbacks[t];delete this.callbacks[t],r&&(e.error?r(Qi(e.error)):r(null,Qi(e.data)));}else {const r=H(this.globalScope)?void 0:[],n=e.hasCallback?(e,n)=>{delete this.cancelCallbacks[t],this.target.postMessage({id:t,type:"",sourceMapId:this.mapId,error:e?Wi(e):null,data:Wi(n,r)},r);}:t=>{},i=Qi(e.data);if(this.parent[e.type])this.parent[e.type](e.sourceMapId,i,n);else if(this.parent.getWorkerSource){const t=e.type.split(".");this.parent.getWorkerSource(e.sourceMapId,t[0],i.source)[t[1]](i,n);}else n(new Error(`Could not find function ${e.type}`));}}remove(){this.scheduler.remove(),this.target.removeEventListener("message",this.receive,!1);}},t.CanonicalTileID=ph,t.Color=Ee,t.ColorMode=Yf,t.CullFaceMode=ty,t.DEMData=Zf,t.DataConstantProperty=Bs,t.DedupedRequest=fy,t.DepthMode=Xf,t.EXTENT=ao,t.Elevation=class{isDataAvailableAtPoint(t){const e=this._source();if(this.isUsingMockSource()||!e||t.y<0||t.y>1)return !1;const r=e.getSource().maxzoom,n=1<1)return e;const i=n.getSource().maxzoom,s=1<{const s=this.getAtTileOffset(t,i.x,i.y),a=n.upVector(t.canonical,i.x,i.y);return Co(a,a,s*n.upVectorScale(t.canonical,e,r).metersToTile),a}}getForTilePoints(t,e,r,n){if(this.isUsingMockSource())return !1;const i=sy.create(this,t,n);return !!i&&(e.forEach((t=>{t[2]=this.exaggeration()*i.getElevationAt(t[0],t[1],r);})),!0)}getMinMaxForTile(t){if(this.isUsingMockSource())return null;const e=this.findDEMTileFor(t);if(!e||!e.dem)return null;const r=e.dem.tree,n=e.tileID,i=1<{let n=t===s-1?t-2:0===t?t:t-1;return n+=r?24575:0,[n,e]};for(let t=0;tthis._skuTokenExpiresAt}transformRequest(t,e){return this._transformRequestFn&&this._transformRequestFn(t,e)||{url:t}}normalizeStyleURL(t,e){if(!vt(t))return t;const r=kt(t);return r.path=`/styles/v1${r.path}`,this._makeAPIURL(r,this._customAccessToken||e)}normalizeGlyphsURL(t,e){if(!vt(t))return t;const r=kt(t);return r.path=`/fonts/v1${r.path}`,this._makeAPIURL(r,this._customAccessToken||e)}normalizeSourceURL(t,e,r,n){if(!vt(t))return t;const i=kt(t);return i.path=`/v4/${i.authority}.json`,i.params.push("secure"),r&&i.params.push(`language=${r}`),n&&i.params.push(`worldview=${n}`),this._makeAPIURL(i,this._customAccessToken||e)}normalizeSpriteURL(t,e,r,n){const i=kt(t);return vt(t)?(i.path=`/styles/v1${i.path}/sprite${e}${r}`,this._makeAPIURL(i,this._customAccessToken||n)):(i.path+=`${e}${r}`,It(i))}normalizeTileURL(t,e,r){if(this._isSkuTokenExpired()&&this._createSkuToken(),t&&!vt(t))return t;const n=kt(t);n.path=n.path.replace(/(\.(png|jpg)\d*)(?=$)/,`${e||r&&"raster"!==n.authority&&512===r?"@2x":""}${s.supported?".webp":"$1"}`),"raster"===n.authority?n.path=`/${i.RASTER_URL_PREFIX}${n.path}`:(n.path=n.path.replace(/^.+\/v4\//,"/"),n.path=`/${i.TILE_URL_VERSION}${n.path}`);const a=this._customAccessToken||function(t){for(const e of t){const t=e.match(/^access_token=(.*)$/);if(t)return t[1]}return null}(n.params)||i.ACCESS_TOKEN;return i.REQUIRE_ACCESS_TOKEN&&a&&this._skuToken&&n.params.push(`sku=${this._skuToken}`),this._makeAPIURL(n,a)}canonicalizeTileURL(t,e){const r=kt(t);if(!r.path.match(/^(\/v4\/|\/raster\/v1\/)/)||!r.path.match(/\.[\w]+$/))return t;let n="mapbox://";r.path.match(/^\/raster\/v1\//)?n+=`raster/${r.path.replace(`/${i.RASTER_URL_PREFIX}/`,"")}`:n+=`tiles/${r.path.replace(`/${i.TILE_URL_VERSION}/`,"")}`;let s=r.params;return e&&(s=s.filter((t=>!t.match(/^access_token=/)))),s.length&&(n+=`?${s.join("&")}`),n}canonicalizeTileset(t,e){const r=!!e&&vt(e),n=[];for(const e of t.tiles||[])bt(e)?n.push(this.canonicalizeTileURL(e,r)):n.push(e);return n}_makeAPIURL(t,e){const r="See https://docs.mapbox.com/api/overview/#access-tokens-and-token-scopes",n=kt(i.API_URL);if(t.protocol=n.protocol,t.authority=n.authority,"http"===t.protocol){const e=t.params.indexOf("secure");e>=0&&t.params.splice(e,1);}if("/"!==n.path&&(t.path=`${n.path}${t.path}`),!i.REQUIRE_ACCESS_TOKEN)return It(t);if(e=e||i.ACCESS_TOKEN,!this._silenceAuthErrors){if(!e)throw new Error(`An API access token is required to use Mapbox GL. ${r}`);if("s"===e[0])throw new Error(`Use a public access token (pk.*) with Mapbox GL, not a secret access token (sk.*). ${r}`)}return t.params=t.params.filter((t=>-1===t.indexOf("access_token"))),t.params.push(`access_token=${e||""}`),It(t)}},t.ResourceType=lt,t.SegmentVector=so,t.SourceCache=ey,t.StencilMode=Hf,t.StructArrayLayout1ui2=ua,t.StructArrayLayout2f1f2i16=Qs,t.StructArrayLayout2i4=$s,t.StructArrayLayout2ui4=la,t.StructArrayLayout3f12=ea,t.StructArrayLayout3ui6=ra,t.StructArrayLayout4i8=Os,t.StructArrayLayout5f20=aa,t.Texture=xf,t.Tile=Pf,t.Transitionable=Ss,t.Uniform1f=La,t.Uniform1i=class extends Va{constructor(t){super(t),this.current=0;}set(t,e,r){this.fetchUniformLocation(t,e)&&this.current!==r&&(this.current=r,this.gl.uniform1i(this.location,r));}},t.Uniform2f=class extends Va{constructor(t){super(t),this.current=[0,0];}set(t,e,r){this.fetchUniformLocation(t,e)&&(r[0]===this.current[0]&&r[1]===this.current[1]||(this.current=r,this.gl.uniform2f(this.location,r[0],r[1])));}},t.Uniform3f=class extends Va{constructor(t){super(t),this.current=[0,0,0];}set(t,e,r){this.fetchUniformLocation(t,e)&&(r[0]===this.current[0]&&r[1]===this.current[1]&&r[2]===this.current[2]||(this.current=r,this.gl.uniform3f(this.location,r[0],r[1],r[2])));}},t.Uniform4f=Fa,t.UniformColor=Ra,t.UniformMatrix2f=class extends Va{constructor(t){super(t),this.current=ja;}set(t,e,r){if(this.fetchUniformLocation(t,e))for(let t=0;t<4;t++)if(r[t]!==this.current[t]){this.current=r,this.gl.uniformMatrix2fv(this.location,!1,r);break}}},t.UniformMatrix3f=class extends Va{constructor(t){super(t),this.current=$a;}set(t,e,r){if(this.fetchUniformLocation(t,e))for(let t=0;t<9;t++)if(r[t]!==this.current[t]){this.current=r,this.gl.uniformMatrix3fv(this.location,!1,r);break}}},t.UniformMatrix4f=class extends Va{constructor(t){super(t),this.current=Ua;}set(t,e,r){if(this.fetchUniformLocation(t,e)){if(r[12]!==this.current[12]||r[0]!==this.current[0])return this.current=r,void this.gl.uniformMatrix4fv(this.location,!1,r);for(let t=1;t<16;t++)if(r[t]!==this.current[t]){this.current=r,this.gl.uniformMatrix4fv(this.location,!1,r);break}}}},t.UnwrappedTileID=dh,t.ValidationError=ri,t.VectorTileFeature=Kc,t.VectorTileWorkerSource=class extends Qt{constructor(t,e,r,n,i){super(),this.actor=t,this.layerIndex=e,this.availableImages=r,this.loadVectorData=i||yy,this.loading={},this.loaded={},this.deduped=new fy(t.scheduler),this.isSpriteLoaded=n,this.scheduler=t.scheduler;}loadTile(t,e){const r=t.uid,n=t&&t.request,i=n&&n.collectResourceTiming,s=this.loading[r]=new py(t);s.abort=this.loadVectorData(t,((a,o)=>{const l=!this.loading[r];if(delete this.loading[r],l||a||!o)return s.status="done",l||(this.loaded[r]=s),e(a);const u=o.rawData,c={};o.expires&&(c.expires=o.expires),o.cacheControl&&(c.cacheControl=o.cacheControl),s.vectorTile=o.vectorTile||new Zc(new mp(u));const h=()=>{s.parse(s.vectorTile,this.layerIndex,this.availableImages,this.actor,((t,r)=>{if(t||!r)return e(t);const s={};if(i){const t=qt(n);t.length>0&&(s.resourceTiming=JSON.parse(JSON.stringify(t)));}e(null,C({rawTileData:u.slice(0)},r,c,s));}));};this.isSpriteLoaded?h():this.once("isSpriteLoaded",(()=>{this.scheduler?this.scheduler.add(h,{type:"parseTile",isSymbolTile:t.isSymbolTile,zoom:t.tileZoom}):h();})),this.loaded=this.loaded||{},this.loaded[r]=s;}));}reloadTile(t,e){const r=this.loaded,n=t.uid,i=this;if(r&&r[n]){const s=r[n];s.showCollisionBoxes=t.showCollisionBoxes,s.enableTerrain=!!t.enableTerrain,s.projection=t.projection,s.tileTransform=Bd(t.tileID.canonical,t.projection);const a=(t,r)=>{const n=s.reloadCallback;n&&(delete s.reloadCallback,s.parse(s.vectorTile,i.layerIndex,this.availableImages,i.actor,n)),e(t,r);};"parsing"===s.status?s.reloadCallback=a:"done"===s.status&&(s.vectorTile?s.parse(s.vectorTile,this.layerIndex,this.availableImages,this.actor,a):a());}}abortTile(t,e){const r=t.uid,n=this.loading[r];n&&(n.abort&&n.abort(),delete this.loading[r]),e();}removeTile(t,e){const r=this.loaded,n=t.uid;r&&r[n]&&delete r[n],e();}},t.WritingMode=Ip,t.ZoomDependentExpression=Wn,t.add=Mo,t.addDynamicAttributes=rf,t.adjoint=function(t,e){var r=e[0],n=e[1],i=e[2],s=e[3],a=e[4],o=e[5],l=e[6],u=e[7],c=e[8];return t[0]=a*c-o*u,t[1]=i*u-n*c,t[2]=n*o-i*a,t[3]=o*l-s*c,t[4]=r*c-i*l,t[5]=i*s-r*o,t[6]=s*u-a*l,t[7]=n*l-r*u,t[8]=r*a-n*s,t},t.asyncAll=B,t.bezier=k,t.bindAll=R,t.boundsAttributes=Ef,t.bufferConvexPolygon=function(t,e){const r=[];for(let n=0;net&&(t.getActor().send("enforceCacheSizeLimit",tt),ot=0);},t.calculateGlobeLabelMatrix=function(t,e){const{x:r,y:n}=t.point,i=Cl(r,n,t.worldSize/t._pixelsPerMercatorPixel,0,0);return yo(i,i,El(xl(e)))},t.calculateGlobeMatrix=function(t){const{x:e,y:r}=t.point,{lng:n,lat:i}=t._center;return Cl(e,r,t.worldSize,n,i)},t.calculateGlobeMercatorMatrix=function(t){const e=t.pixelsPerMeter,r=e/Zl(1,t.center.lat),n=po(new Float64Array(16));return mo(n,n,[t.point.x,t.point.y,0]),go(n,n,[r,r,e]),Float32Array.from(n)},t.circumferenceAtLatitude=ql,t.clamp=M,t.clearTileCache=function(t){if(!it())return;const r=e.caches.delete(Q);t&&r.catch(t).then((()=>t()));},t.clipLine=Hp,t.clone=function(t){var e=new uo(16);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e},t.clone$1=O,t.collisionCircleLayout=Fh,t.config=i,t.conjugate=function(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=e[3],t},t.create=function(){var t=new uo(16);return uo!=Float32Array&&(t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0),t[0]=1,t[5]=1,t[10]=1,t[15]=1,t},t.create$1=co,t.createExpression=Hn,t.createLayout=Rs,t.createStyleLayer=function(t){return "custom"===t.type?new ff(t):new gf[t.type](t)},t.cross=Lo,t.degToRad=w,t.distance=function(t,e){return Math.hypot(e[0]-t[0],e[1]-t[1],e[2]-t[2])},t.div=function(t,e,r){return t[0]=e[0]/r[0],t[1]=e[1]/r[1],t[2]=e[2]/r[2],t},t.dot=Vo,t.earthRadius=Ul,t.ease=I,t.easeCubicInOut=S,t.ecefToLatLng=function([t,e,r]){const n=Math.hypot(t,e,r),i=Math.atan2(t,r),s=.5*Math.PI-Math.acos(-e/n);return new Ol(_(i),_(s))},t.emitValidationErrors=qi,t.endsWith=U,t.enforceCacheSizeLimit=function(t){st(),rt&&rt.then((e=>{e.keys().then((r=>{for(let n=0;ns&&(n+=(t[i]-s)*(t[i]-s)),e[i]0){const t=180/n;ho(d,d,[t/u+1,0,0,0,t/c+1,0,-.5*t/h,.5*t/p,1]);}return d[2]=l,d[5]=t.x,d[8]=t.y,d},t.getImage=gt,t.getJSON=function(t,e){return ht(C(t,{type:"json"}),e)},t.getLatitudinalLod=function(t){const e=Hl-5;t=M(t,-e,e)/e*90;const r=Math.pow(Math.abs(Math.sin(w(t))),3);return Math.round(r*(cl.length-1))},t.getMapSessionAPI=Ft,t.getPerformanceMeasurement=qt,t.getProjection=Yd,t.getRTLTextPluginStatus=xs,t.getReferrer=ct,t.getTilePoint=function(t,{x:e,y:r},n=0){return new x(((e-n)*t.scale-t.x)*ao,(r*t.scale-t.y)*ao)},t.getTileVec3=function(t,e,r=0){return Io(((e.x-r)*t.scale-t.x)*ao,(e.y*t.scale-t.y)*ao,Jl(e.z,e.y))},t.getVideo=function(t,r){const n=e.document.createElement("video");n.muted=!0,n.onloadstart=function(){r(null,n);};for(let r=0;r{}}},t.globeCenterToScreenPoint=function(t){const e=[0,0,0],r=po(new Float64Array(16));return yo(r,t.pixelMatrix,t.globeMatrix),Fo(e,e,r),new x(e[0],e[1])},t.globeDenormalizeECEF=El,t.globeECEFOrigin=function(t,e){const r=[0,0,0];return Fo(r,r,Bl(xl(e.canonical))),Fo(r,r,t),r},t.globeMetersToEcef=fl,t.globeNormalizeECEF=Bl,t.globePixelsToTileUnits=function(t,e){return ao/(512*Math.pow(2,t))*Tl(xl(e))},t.globePoleMatrixForTile=function(t,e,r){const n=po(new Float64Array(16)),i=(e/(1<0;return 0===n&&!i&&!a&&s},t.identity=po,t.identity$1=Ko,t.invert=fo,t.isFullscreen=function(){return !!e.document.fullscreenElement||!!e.document.webkitFullscreenElement},t.isLngLatBehindGlobe=Vl,t.isMapAuthenticated=function(t){return Rt.has(t)},t.isMapboxURL=vt,t.isSafariWithAntialiasingBug=function(t){const e=t.navigator?t.navigator.userAgent:null;return !!H(t)&&e&&(e.match("Version/15.4")||e.match("Version/15.5")||e.match(/CPU (OS|iPhone OS) (15_4|15_5) like Mac OS X/))},t.latFromMercatorY=Xl,t.latLngToECEF=Il,t.len=Oo,t.length=ko,t.length$1=function(t){return Math.hypot(t[0],t[1],t[2],t[3])},t.lngFromMercatorX=Kl,t.loadVectorTile=yy,t.makeRequest=ht,t.mapValue=function(t,e,r,n,i){return M((t-e)/(r-e)*(i-n)+n,n,i)},t.mercatorScale=Yl,t.mercatorXfromLng=Nl,t.mercatorYfromLat=Gl,t.mercatorZfromAltitude=Zl,t.mul=_o,t.mul$1=jo,t.multiply=yo,t.multiply$1=ho,t.multiply$2=zo,t.nextPowerOfTwo=L,t.normalize=Do,t.normalize$1=Ho,t.normalize$2=No,t.number=Er,t.ortho=function(t,e,r,n,i,s,a){var o=1/(e-r),l=1/(n-i),u=1/(s-a);return t[0]=-2*o,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=-2*l,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=2*u,t[11]=0,t[12]=(e+r)*o,t[13]=(i+n)*l,t[14]=(a+s)*u,t[15]=1,t},t.pbf=Xh,t.perspective=function(t,e,r,n,i){var s,a=1/Math.tan(e/2);return t[0]=a/r,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=a,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=-1,t[12]=0,t[13]=0,t[15]=0,null!=i&&i!==1/0?(t[10]=(i+n)*(s=1/(n-i)),t[14]=2*i*n*s):(t[10]=-1,t[14]=-2*n),t},t.pick=function(t,e){const r={};for(let n=0;n0&&r[0]<=t.width&&r[1]>0&&r[1]<=t.height&&!Vl(t,new Ol(t.center.lat,90)),n[0]>0&&n[0]<=t.width&&n[1]>0&&n[1]<=t.height&&!Vl(t,new Ol(t.center.lat,-90))]},t.polygonContainsPoint=bu,t.polygonIntersectsBox=wu,t.polygonIntersectsPolygon=hu,t.polygonizeBounds=function(t,e,r=0,n=!0){const i=new x(r,r),s=t.sub(i),a=e.add(i),o=[s,new x(a.x,s.y),a,new x(s.x,a.y)];return n&&o.push(s.clone()),o},t.posAttributes=tl,t.postMapLoadEvent=Pt,t.postPerformanceEvent=Vt,t.postTurnstileEvent=Et,t.potpack=_p,t.prevPowerOfTwo=function(t){return t<=1?1:Math.pow(2,Math.floor(Math.log(t)/Math.LN2))},t.radToDeg=_,t.refProperties=["type","source","source-layer","minzoom","maxzoom","filter","layout"],t.registerForPluginStateChange=function(t){return t({pluginStatus:ds,pluginURL:fs}),gs.on("pluginStateChange",t),t},t.removeAuthState=function(t){Rt.delete(t);},t.renderColorRamp=ju,t.resample=tu,t.rotateX=xo,t.rotateX$1=Xo,t.rotateY=vo,t.rotateY$1=Jo,t.rotateZ=function(t,e,r){var n=Math.sin(r),i=Math.cos(r),s=e[0],a=e[1],o=e[2],l=e[3],u=e[4],c=e[5],h=e[6],p=e[7];return e!==t&&(t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t[0]=s*i+u*n,t[1]=a*i+c*n,t[2]=o*i+h*n,t[3]=l*i+p*n,t[4]=u*i-s*n,t[5]=c*i-a*n,t[6]=h*i-o*n,t[7]=p*i-l*n,t},t.rotateZ$1=function(t,e,r){r*=.5;var n=e[0],i=e[1],s=e[2],a=e[3],o=Math.sin(r),l=Math.cos(r);return t[0]=n*l+i*o,t[1]=i*l-n*o,t[2]=s*l+a*o,t[3]=a*l-s*o,t},t.scale=go,t.scale$1=qo,t.scale$2=Co,t.scaleAndAdd=Po,t.set=function(t,e,r,n){return t[0]=e,t[1]=r,t[2]=n,t},t.setCacheLimits=function(t,e){tt=t,et=e;},t.setColumn=function(t,e,r){t[4*e+0]=r[0],t[4*e+1]=r[1],t[4*e+2]=r[2],t[4*e+3]=r[3];},t.setRTLTextPlugin=function(t,e,r=!1){if(ds===us||ds===cs||ds===hs)throw new Error("setRTLTextPlugin cannot be called multiple times.");fs=Xt.resolveURL(t),ds=us,ps=e,ms(),r||vs();},t.smoothstep=T,t.spec=te,t.squaredLength=function(t){var e=t[0],r=t[1],n=t[2];return e*e+r*r+n*n},t.storeAuthState=function(t,e){e?Rt.add(t):Rt.delete(t);},t.sub=$o,t.subtract=To,t.symbolSize=qh,t.tileAABB=function(t,e,r,n,i,s,a,o,l){if("globe"===l.name)return _l(t,e,new ph(r,n,i));const u=Bd({z:r,x:n,y:i},l);return new il([(s+u.x/u.scale)*e,e*(u.y/u.scale),a],[(s+u.x2/u.scale)*e,e*(u.y2/u.scale),o])},t.tileCornersToBounds=Al,t.tileTransform=Bd,t.transformMat3=function(t,e,r){var n=e[0],i=e[1],s=e[2];return t[0]=n*r[0]+i*r[3]+s*r[6],t[1]=n*r[1]+i*r[4]+s*r[7],t[2]=n*r[2]+i*r[5]+s*r[8],t},t.transformMat4=Fo,t.transformMat4$1=Go,t.transformQuat=Ro,t.transitionTileAABBinECEF=bl,t.translate=mo,t.transpose=function(t,e){if(t===e){var r=e[1],n=e[2],i=e[5];t[1]=e[3],t[2]=e[6],t[3]=r,t[5]=e[7],t[6]=n,t[7]=i;}else t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8];return t},t.triggerPluginCompletionEvent=ys,t.uniqueId=D,t.updateGlobeVertexNormal=function(t,e,r,n,i){const s=5*e+2;t.float32[s+0]=r,t.float32[s+1]=n,t.float32[s+2]=i;},t.validateCustomStyleLayer=function(t){const e=[],r=t.id;return void 0===r&&e.push({message:`layers.${r}: missing required property "id"`}),void 0===t.render&&e.push({message:`layers.${r}: missing required method "render"`}),t.renderingMode&&"2d"!==t.renderingMode&&"3d"!==t.renderingMode&&e.push({message:`layers.${r}: property "renderingMode" must be either "2d" or "3d"`}),e},t.validateFilter=t=>Oi(Ai(t)),t.validateFog=t=>Oi(Vi(t)),t.validateLayer=t=>Oi(Ti(t)),t.validateLight=t=>Oi(Pi(t)),t.validateSource=t=>Oi(Ei(t)),t.validateStyle=Ui,t.validateTerrain=t=>Oi(Di(t)),t.values=E,t.vectorTile=Dc,t.version=r,t.warnOnce=N,t.window=e,t.wrap=z;})); + + define(["./shared"],(function(e){function t(e){if("number"==typeof e||"boolean"==typeof e||"string"==typeof e||null==e)return JSON.stringify(e);if(Array.isArray(e)){let r="[";for(const o of e)r+=`${t(o)},`;return `${r}]`}let r="{";for(const o of Object.keys(e).sort())r+=`${o}:${t(e[o])},`;return `${r}}`}function r(r){let o="";for(const i of e.refProperties)o+=`/${t(r[i])}`;return o}class o{constructor(e){this.keyCache={},e&&this.replace(e);}replace(e){this._layerConfigs={},this._layers={},this.update(e,[]);}update(t,o){for(const r of t)this._layerConfigs[r.id]=r,(this._layers[r.id]=e.createStyleLayer(r)).compileFilter(),this.keyCache[r.id]&&delete this.keyCache[r.id];for(const e of o)delete this.keyCache[e],delete this._layerConfigs[e],delete this._layers[e];this.familiesBySource={};const i=function(e,t){const o={};for(let i=0;ithis._layers[e.id])),r=t[0];if("none"===r.visibility)continue;const o=r.source||"";let i=this.familiesBySource[o];i||(i=this.familiesBySource[o]={});const n=r.sourceLayer||"_geojsonTileLayer";let s=i[n];s||(s=i[n]=[]),s.push(t);}}}class i{loadTile(t,r){const{uid:o,encoding:i,rawImageData:n,padding:s,buildQuadTree:a}=t,l=e.window.ImageBitmap&&n instanceof e.window.ImageBitmap?this.getImageData(n,s):n;r(null,new e.DEMData(o,l,i,s<1,a));}getImageData(e,t){this.offscreenCanvas&&this.offscreenCanvasContext||(this.offscreenCanvas=new OffscreenCanvas(e.width,e.height),this.offscreenCanvasContext=this.offscreenCanvas.getContext("2d",{willReadFrequently:!0})),this.offscreenCanvas.width=e.width,this.offscreenCanvas.height=e.height,this.offscreenCanvasContext.drawImage(e,0,0,e.width,e.height);const r=this.offscreenCanvasContext.getImageData(-t,-t,e.width+2*t,e.height+2*t);return this.offscreenCanvasContext.clearRect(0,0,this.offscreenCanvas.width,this.offscreenCanvas.height),r}}function n(e,t){if(0!==e.length){s(e[0],t);for(var r=1;r=Math.abs(a)?r-l+a:a-l+r,r=l;}r+o>=0!=!!t&&e.reverse();}var a=e.getDefaultExportFromCjs((function e(t,r){var o,i=t&&t.type;if("FeatureCollection"===i)for(o=0;o>31}function P(e,t){for(var r=e.loadGeometry(),o=e.type,i=0,n=0,s=r.length,a=0;ae},I=Math.fround||(_=new Float32Array(1),e=>(_[0]=+e,_[0]));var _;const C=3,L=5,O=6;class E{constructor(e){this.options=Object.assign(Object.create(k),e),this.trees=new Array(this.options.maxZoom+1),this.stride=this.options.reduce?7:6,this.clusterProps=[];}load(e){const{log:t,minZoom:r,maxZoom:o}=this.options;t&&console.time("total time");const i=`prepare ${e.length} points`;t&&console.time(i),this.points=e;const n=[];for(let t=0;t=r;e--){const r=+Date.now();s=this.trees[e]=this._createTree(this._cluster(s,e)),t&&console.log("z%d: %d clusters in %dms",e,s.numItems,+Date.now()-r);}return t&&console.timeEnd("total time"),this}getClusters(e,t){let r=((e[0]+180)%360+360)%360-180;const o=Math.max(-90,Math.min(90,e[1]));let i=180===e[2]?180:((e[2]+180)%360+360)%360-180;const n=Math.max(-90,Math.min(90,e[3]));if(e[2]-e[0]>=360)r=-180,i=180;else if(r>i){const e=this.getClusters([r,o,180,n],t),s=this.getClusters([-180,o,i,n],t);return e.concat(s)}const s=this.trees[this._limitZoom(t)],a=s.range(N(r),Z(n),N(i),Z(o)),l=s.data,u=[];for(const e of a){const t=this.stride*e;u.push(l[t+L]>1?j(l,t,this.clusterProps):this.points[l[t+C]]);}return u}getChildren(e){const t=this._getOriginId(e),r=this._getOriginZoom(e),o="No cluster with the specified id.",i=this.trees[r];if(!i)throw new Error(o);const n=i.data;if(t*this.stride>=n.length)throw new Error(o);const s=this.options.radius/(this.options.extent*Math.pow(2,r-1)),a=i.within(n[t*this.stride],n[t*this.stride+1],s),l=[];for(const t of a){const r=t*this.stride;n[r+4]===e&&l.push(n[r+L]>1?j(n,r,this.clusterProps):this.points[n[r+C]]);}if(0===l.length)throw new Error(o);return l}getLeaves(e,t,r){const o=[];return this._appendLeaves(o,e,t=t||10,r=r||0,0),o}getTile(e,t,r){const o=this.trees[this._limitZoom(e)],i=Math.pow(2,e),{extent:n,radius:s}=this.options,a=s/n,l=(r-a)/i,u=(r+1+a)/i,h={features:[]};return this._addTileFeatures(o.range((t-a)/i,l,(t+1+a)/i,u),o.data,t,r,i,h),0===t&&this._addTileFeatures(o.range(1-a/i,l,1,u),o.data,i,r,i,h),t===i-1&&this._addTileFeatures(o.range(0,l,a/i,u),o.data,-1,r,i,h),h.features.length?h:null}getClusterExpansionZoom(e){let t=this._getOriginZoom(e)-1;for(;t<=this.options.maxZoom;){const r=this.getChildren(e);if(t++,1!==r.length)break;e=r[0].properties.cluster_id;}return t}_appendLeaves(e,t,r,o,i){const n=this.getChildren(t);for(const t of n){const n=t.properties;if(n&&n.cluster?i+n.point_count<=o?i+=n.point_count:i=this._appendLeaves(e,n.cluster_id,r,o,i):i1;let l,u,h;if(a)l=F(t,e,this.clusterProps),u=t[e],h=t[e+1];else {const r=this.points[t[e+C]];l=r.properties;const[o,i]=r.geometry.coordinates;u=N(o),h=Z(i);}const c={type:1,geometry:[[Math.round(this.options.extent*(u*i-r)),Math.round(this.options.extent*(h*i-o))]],tags:l};let f;f=a||this.options.generateId?t[e+C]:this.points[t[e+C]].id,void 0!==f&&(c.id=f),n.features.push(c);}}_limitZoom(e){return Math.max(this.options.minZoom,Math.min(Math.floor(+e),this.options.maxZoom+1))}_cluster(e,t){const{radius:r,extent:o,reduce:i,minPoints:n}=this.options,s=r/(o*Math.pow(2,t)),a=e.data,l=[],u=this.stride;for(let r=0;rt&&(p+=a[r+L]);}if(p>f&&p>=n){let e,n=o*f,s=h*f,g=-1;const d=((r/u|0)<<5)+(t+1)+this.points.length;for(const o of c){const l=o*u;if(a[l+2]<=t)continue;a[l+2]=t;const h=a[l+L];n+=a[l]*h,s+=a[l+1]*h,a[l+4]=d,i&&(e||(e=this._map(a,r,!0),g=this.clusterProps.length,this.clusterProps.push(e)),i(e,this._map(a,l)));}a[r+4]=d,l.push(n/p,s/p,1/0,d,-1,p),i&&l.push(g);}else {for(let e=0;e1)for(const e of c){const r=e*u;if(!(a[r+2]<=t)){a[r+2]=t;for(let e=0;e>5}_getOriginZoom(e){return (e-this.points.length)%32}_map(e,t,r){if(e[t+L]>1){const o=this.clusterProps[e[t+O]];return r?Object.assign({},o):o}const o=this.points[e[t+C]].properties,i=this.options.map(o);return r&&i===o?Object.assign({},i):i}}function j(e,t,r){return {type:"Feature",id:e[t+C],properties:F(e,t,r),geometry:{type:"Point",coordinates:[(o=e[t],360*(o-.5)),J(e[t+1])]}};var o;}function F(e,t,r){const o=e[t+L],i=o>=1e4?`${Math.round(o/1e3)}k`:o>=1e3?Math.round(o/100)/10+"k":o,n=e[t+O],s=-1===n?{}:Object.assign({},r[n]);return Object.assign(s,{cluster:!0,cluster_id:e[t+C],point_count:o,point_count_abbreviated:i})}function N(e){return e/360+.5}function Z(e){const t=Math.sin(e*Math.PI/180),r=.5-.25*Math.log((1+t)/(1-t))/Math.PI;return r<0?0:r>1?1:r}function J(e){const t=(180-360*e)*Math.PI/180;return 360*Math.atan(Math.exp(t))/Math.PI-90}function z(e,t,r,o){for(var i,n=o,s=r-t>>1,a=r-t,l=e[t],u=e[t+1],h=e[r],c=e[r+1],f=t+3;fn)i=f,n=p;else if(p===n){var g=Math.abs(f-s);go&&(i-t>3&&z(e,t,i,o),e[i+2]=n,r-i>3&&z(e,i,r,o));}function G(e,t,r,o,i,n){var s=i-r,a=n-o;if(0!==s||0!==a){var l=((e-r)*s+(t-o)*a)/(s*s+a*a);l>1?(r=i,o=n):l>0&&(r+=s*l,o+=a*l);}return (s=e-r)*s+(a=t-o)*a}function W(e,t,r,o){var i={id:void 0===e?null:e,type:t,geometry:r,tags:o,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0};return function(e){var t=e.geometry,r=e.type;if("Point"===r||"MultiPoint"===r||"LineString"===r)Y(e,t);else if("Polygon"===r||"MultiLineString"===r)for(var o=0;o0&&(s+=o?(i*u-l*n)/2:Math.sqrt(Math.pow(l-i,2)+Math.pow(u-n,2))),i=l,n=u;}var h=t.length-3;t[2]=1,z(t,0,h,r),t[h+2]=1,t.size=Math.abs(s),t.start=0,t.end=t.size;}function $(e,t,r,o){for(var i=0;i1?1:r}function R(e,t,r,o,i,n,s,a){if(o/=t,n>=(r/=t)&&s=o)return null;for(var l=[],u=0;u=r&&g=o)){var d=[];if("Point"===f||"MultiPoint"===f)q(c,d,r,o,i);else if("LineString"===f)Q(c,d,r,o,i,!1,a.lineMetrics);else if("MultiLineString"===f)K(c,d,r,o,i,!1);else if("Polygon"===f)K(c,d,r,o,i,!0);else if("MultiPolygon"===f)for(var m=0;m=r&&s<=o&&(t.push(e[n]),t.push(e[n+1]),t.push(e[n+2]));}}function Q(e,t,r,o,i,n,s){for(var a,l,u=U(e),h=0===i?ee:te,c=e.start,f=0;fr&&(l=h(u,p,g,m,y,r),s&&(u.start=c+a*l)):v>o?x=r&&(l=h(u,p,g,m,y,r),w=!0),x>o&&v<=o&&(l=h(u,p,g,m,y,o),w=!0),!n&&w&&(s&&(u.end=c+a*l),t.push(u),u=U(e)),s&&(c+=a);}var S=e.length-3;p=e[S],g=e[S+1],d=e[S+2],(v=0===i?p:g)>=r&&v<=o&&H(u,p,g,d),S=u.length-3,n&&S>=3&&(u[S]!==u[0]||u[S+1]!==u[1])&&H(u,u[0],u[1],u[2]),u.length&&t.push(u);}function U(e){var t=[];return t.size=e.size,t.start=e.start,t.end=e.end,t}function K(e,t,r,o,i,n){for(var s=0;ss.maxX&&(s.maxX=h),c>s.maxY&&(s.maxY=c);}return s}function ae(e,t,r,o){var i=t.geometry,n=t.type,s=[];if("Point"===n||"MultiPoint"===n)for(var a=0;a0&&t.size<(i?s:o))r.numPoints+=t.length/3;else {for(var a=[],l=0;ls)&&(r.numSimplified++,a.push(t[l]),a.push(t[l+1])),r.numPoints++;i&&function(e,t){for(var r=0,o=0,i=e.length,n=i-2;o0===t)for(o=0,i=e.length;o24)throw new Error("maxZoom should be in the 0-24 range");if(t.promoteId&&t.generateId)throw new Error("promoteId and generateId cannot be used together.");var o=function(e,t){var r=[];if("FeatureCollection"===e.type)for(var o=0;o1&&console.time("creation"),f=this.tiles[c]=se(e,t,r,o,l),this.tileCoords.push({z:t,x:r,y:o}),u)){u>1&&(console.log("tile z%d-%d-%d (features: %d, points: %d, simplified: %d)",t,r,o,f.numFeatures,f.numPoints,f.numSimplified),console.timeEnd("creation"));var p="z"+t;this.stats[p]=(this.stats[p]||0)+1,this.total++;}if(f.source=e,i){if(t===l.maxZoom||t===i)continue;var g=1<1&&console.time("clipping");var d,m,y,v,x,w,S=.5*l.buffer/l.extent,M=.5-S,P=.5+S,b=1+S;d=m=y=v=null,x=R(e,h,r-S,r+P,0,f.minX,f.maxX,l),w=R(e,h,r+M,r+b,0,f.minX,f.maxX,l),e=null,x&&(d=R(x,h,o-S,o+P,1,f.minY,f.maxY,l),m=R(x,h,o+M,o+b,1,f.minY,f.maxY,l),x=null),w&&(y=R(w,h,o-S,o+P,1,f.minY,f.maxY,l),v=R(w,h,o+M,o+b,1,f.minY,f.maxY,l),w=null),u>1&&console.timeEnd("clipping"),a.push(d||[],t+1,2*r,2*o),a.push(m||[],t+1,2*r,2*o+1),a.push(y||[],t+1,2*r+1,2*o),a.push(v||[],t+1,2*r+1,2*o+1);}}},ue.prototype.getTile=function(e,t,r){var o=this.options,i=o.extent,n=o.debug;if(e<0||e>24)return null;var s=1<1&&console.log("drilling down to z%d-%d-%d",e,t,r);for(var l,u=e,h=t,c=r;!l&&u>0;)u--,h=Math.floor(h/2),c=Math.floor(c/2),l=this.tiles[he(u,h,c)];return l&&l.source?(n>1&&console.log("found parent tile z%d-%d-%d",u,h,c),n>1&&console.time("drilling down"),this.splitTile(l.source,u,h,c,e,t,r),n>1&&console.timeEnd("drilling down"),this.tiles[a]?ie(this.tiles[a],i):null):null};class fe extends e.VectorTileWorkerSource{constructor(e,t,r,o,i){super(e,t,r,o,ce),i&&(this.loadGeoJSON=i);}loadData(t,r){const o=t&&t.request,i=o&&o.collectResourceTiming;this.loadGeoJSON(t,((n,s)=>{if(n||!s)return r(n);if("object"!=typeof s)return r(new Error(`Input data given to '${t.source}' is not a valid GeoJSON object.`));{a(s,!0);try{if(t.filter){const r=e.createExpression(t.filter,{type:"boolean","property-type":"data-driven",overridable:!1,transition:!1});if("error"===r.result)throw new Error(r.value.map((e=>`${e.key}: ${e.message}`)).join(", "));const o=s.features.filter((e=>r.value.evaluate({zoom:0},e)));s={type:"FeatureCollection",features:o};}this._geoJSONIndex=t.cluster?new E(function({superclusterOptions:t,clusterProperties:r}){if(!r||!t)return t;const o={},i={},n={accumulated:null,zoom:0},s={properties:null},a=Object.keys(r);for(const t of a){const[n,s]=r[t],a=e.createExpression(s),l=e.createExpression("string"==typeof n?[n,["accumulated"],["get",t]]:n);o[t]=a.value,i[t]=l.value;}return t.map=e=>{s.properties=e;const t={};for(const e of a)t[e]=o[e].evaluate(n,s);return t},t.reduce=(e,t)=>{s.properties=t;for(const t of a)n.accumulated=e[t],e[t]=i[t].evaluate(n,s);},t}(t)).load(s.features):function(e,t){return new ue(e,t)}(s,t.geojsonVtOptions);}catch(n){return r(n)}this.loaded={};const l={};if(i){const r=e.getPerformanceMeasurement(o);r&&(l.resourceTiming={},l.resourceTiming[t.source]=JSON.parse(JSON.stringify(r)));}r(null,l);}}));}reloadTile(e,t){const r=this.loaded;return r&&r[e.uid]?super.reloadTile(e,t):this.loadTile(e,t)}loadGeoJSON(t,r){if(t.request)e.getJSON(t.request,r);else {if("string"!=typeof t.data)return r(new Error(`Input data given to '${t.source}' is not a valid GeoJSON object.`));try{return r(null,JSON.parse(t.data))}catch(e){return r(new Error(`Input data given to '${t.source}' is not a valid GeoJSON object.`))}}}getClusterExpansionZoom(e,t){try{t(null,this._geoJSONIndex.getClusterExpansionZoom(e.clusterId));}catch(e){t(e);}}getClusterChildren(e,t){try{t(null,this._geoJSONIndex.getChildren(e.clusterId));}catch(e){t(e);}}getClusterLeaves(e,t){try{t(null,this._geoJSONIndex.getLeaves(e.clusterId,e.limit,e.offset));}catch(e){t(e);}}}class pe{constructor(t){this.self=t,this.actor=new e.Actor(t,this),this.layerIndexes={},this.availableImages={},this.isSpriteLoaded={},this.projections={},this.defaultProjection=e.getProjection({name:"mercator"}),this.workerSourceTypes={vector:e.VectorTileWorkerSource,geojson:fe},this.workerSources={},this.demWorkerSources={},this.self.registerWorkerSource=(e,t)=>{if(this.workerSourceTypes[e])throw new Error(`Worker source with name "${e}" already registered.`);this.workerSourceTypes[e]=t;},this.self.registerRTLTextPlugin=t=>{if(e.plugin.isParsed())throw new Error("RTL text plugin already registered.");e.plugin.applyArabicShaping=t.applyArabicShaping,e.plugin.processBidirectionalText=t.processBidirectionalText,e.plugin.processStyledBidirectionalText=t.processStyledBidirectionalText;};}clearCaches(e,t,r){delete this.layerIndexes[e],delete this.availableImages[e],delete this.workerSources[e],delete this.demWorkerSources[e],r();}checkIfReady(e,t,r){r();}setReferrer(e,t){this.referrer=t;}spriteLoaded(t,r){this.isSpriteLoaded[t]=r;for(const o in this.workerSources[t]){const i=this.workerSources[t][o];for(const t in i)i[t]instanceof e.VectorTileWorkerSource&&(i[t].isSpriteLoaded=r,i[t].fire(new e.Event("isSpriteLoaded")));}}setImages(e,t,r){this.availableImages[e]=t;for(const r in this.workerSources[e]){const o=this.workerSources[e][r];for(const e in o)o[e].availableImages=t;}r();}enableTerrain(e,t,r){this.terrain=t,r();}setProjection(t,r){this.projections[t]=e.getProjection(r);}setLayers(e,t,r){this.getLayerIndex(e).replace(t),r();}updateLayers(e,t,r){this.getLayerIndex(e).update(t.layers,t.removedIds),r();}loadTile(t,r,o){const i=this.enableTerrain?e.extend({enableTerrain:this.terrain},r):r;i.projection=this.projections[t]||this.defaultProjection,this.getWorkerSource(t,r.type,r.source).loadTile(i,o);}loadDEMTile(t,r,o){const i=this.enableTerrain?e.extend({buildQuadTree:this.terrain},r):r;this.getDEMWorkerSource(t,r.source).loadTile(i,o);}reloadTile(t,r,o){const i=this.enableTerrain?e.extend({enableTerrain:this.terrain},r):r;i.projection=this.projections[t]||this.defaultProjection,this.getWorkerSource(t,r.type,r.source).reloadTile(i,o);}abortTile(e,t,r){this.getWorkerSource(e,t.type,t.source).abortTile(t,r);}removeTile(e,t,r){this.getWorkerSource(e,t.type,t.source).removeTile(t,r);}removeSource(e,t,r){if(!this.workerSources[e]||!this.workerSources[e][t.type]||!this.workerSources[e][t.type][t.source])return;const o=this.workerSources[e][t.type][t.source];delete this.workerSources[e][t.type][t.source],void 0!==o.removeSource?o.removeSource(t,r):r();}loadWorkerSource(e,t,r){try{this.self.importScripts(t.url),r();}catch(e){r(e.toString());}}syncRTLPluginState(t,r,o){try{e.plugin.setState(r);const t=e.plugin.getPluginURL();if(e.plugin.isLoaded()&&!e.plugin.isParsed()&&null!=t){this.self.importScripts(t);const r=e.plugin.isParsed();o(r?void 0:new Error(`RTL Text Plugin failed to import scripts from ${t}`),r);}}catch(e){o(e.toString());}}getAvailableImages(e){let t=this.availableImages[e];return t||(t=[]),t}getLayerIndex(e){let t=this.layerIndexes[e];return t||(t=this.layerIndexes[e]=new o),t}getWorkerSource(e,t,r){if(this.workerSources[e]||(this.workerSources[e]={}),this.workerSources[e][t]||(this.workerSources[e][t]={}),!this.workerSources[e][t][r]){const o={send:(t,r,o,i,n,s)=>{this.actor.send(t,r,o,e,n,s);},scheduler:this.actor.scheduler};this.workerSources[e][t][r]=new this.workerSourceTypes[t](o,this.getLayerIndex(e),this.getAvailableImages(e),this.isSpriteLoaded[e]);}return this.workerSources[e][t][r]}getDEMWorkerSource(e,t){return this.demWorkerSources[e]||(this.demWorkerSources[e]={}),this.demWorkerSources[e][t]||(this.demWorkerSources[e][t]=new i),this.demWorkerSources[e][t]}enforceCacheSizeLimit(t,r){e.enforceCacheSizeLimit(r);}getWorkerPerformanceMetrics(e,t,r){r(void 0,void 0);}}return "undefined"!=typeof WorkerGlobalScope&&"undefined"!=typeof self&&self instanceof WorkerGlobalScope&&(self.worker=new pe(self)),pe})); + + define(["./shared"],(function(e){function t(e,i){if(Array.isArray(e)){if(!Array.isArray(i)||e.length!==i.length)return !1;for(let o=0;o{e.window.removeEventListener("click",_,!0);}),0);}function p(e,t){const i=e.getBoundingClientRect();return g(e,i,t)}function m(e,t){const i=e.getBoundingClientRect(),o=[];for(let r=0;r=0?0:t.button}function g(t,i,o){const r=t.offsetWidth===i.width?1:t.offsetWidth/i.width;return new e.Point((o.clientX-i.left)*r,(o.clientY-i.top)*r)}function v(e,t){var i=t[0],o=t[1],r=t[2],n=t[3],s=i*n-r*o;return s?(e[0]=n*(s=1/s),e[1]=-o*s,e[2]=-r*s,e[3]=i*s,e):null}function x(e){const{userImage:t}=e;return !!(t&&t.render&&t.render())&&(e.data.replace(new Uint8Array(t.data.buffer)),!0)}class y extends e.Evented{constructor(){super(),this.images={},this.updatedImages={},this.callbackDispatchedThisFrame={},this.loaded=!1,this.requestors=[],this.patterns={},this.atlasImage=new e.RGBAImage({width:1,height:1}),this.dirty=!0;}isLoaded(){return this.loaded}setLoaded(e){if(this.loaded!==e&&(this.loaded=e,e)){for(const{ids:e,callback:t}of this.requestors)this._notify(e,t);this.requestors=[];}}hasImage(e){return !!this.getImage(e)}getImage(e){return this.images[e]}addImage(e,t){this._validate(e,t)&&(this.images[e]=t);}_validate(t,i){let o=!0;return this._validateStretch(i.stretchX,i.data&&i.data.width)||(this.fire(new e.ErrorEvent(new Error(`Image "${t}" has invalid "stretchX" value`))),o=!1),this._validateStretch(i.stretchY,i.data&&i.data.height)||(this.fire(new e.ErrorEvent(new Error(`Image "${t}" has invalid "stretchY" value`))),o=!1),this._validateContent(i.content,i)||(this.fire(new e.ErrorEvent(new Error(`Image "${t}" has invalid "content" value`))),o=!1),o}_validateStretch(e,t){if(!e)return !0;let i=0;for(const o of e){if(o[0]{this.ready=!0;}));}broadcast(t,i,o){e.asyncAll(this.actors,((e,o)=>{e.send(t,i,o);}),o=o||function(){});}getActor(){return this.currentActor=(this.currentActor+1)%this.actors.length,this.actors[this.currentActor]}remove(){this.actors.forEach((e=>{e.remove();})),this.actors=[],this.workerPool.release(this.id);}}function D(t,i,o){return i*(e.EXTENT/(t.tileSize*Math.pow(2,o-t.tileID.overscaledZ)))}S.Actor=e.Actor;class L{constructor(e,t,i,o){this.screenBounds=e,this.cameraPoint=t,this._screenRaycastCache={},this._cameraRaycastCache={},this.isAboveHorizon=i,this.screenGeometry=this.bufferedScreenGeometry(0),this.screenGeometryMercator=this._bufferedScreenMercator(0,o);}static createFromScreenPoints(t,i){let o,r;if(t instanceof e.Point||"number"==typeof t[0]){const n=e.Point.convert(t);o=[n],r=i.isPointAboveHorizon(n);}else {const n=e.Point.convert(t[0]),s=e.Point.convert(t[1]);o=[n,s],r=e.polygonizeBounds(n,s).every((e=>i.isPointAboveHorizon(e)));}return new L(o,i.getCameraPoint(),r,i)}isPointQuery(){return 1===this.screenBounds.length}bufferedScreenGeometry(t){return e.polygonizeBounds(this.screenBounds[0],1===this.screenBounds.length?this.screenBounds[0]:this.screenBounds[1],t)}bufferedCameraGeometry(t){const i=this.screenBounds[0],o=1===this.screenBounds.length?this.screenBounds[0].add(new e.Point(1,1)):this.screenBounds[1],r=e.polygonizeBounds(i,o,0,!1);return this.cameraPoint.y>o.y&&(this.cameraPoint.x>i.x&&this.cameraPoint.x=o.x?r[2]=this.cameraPoint:this.cameraPoint.x<=i.x&&(r[3]=this.cameraPoint)),e.bufferConvexPolygon(r,t)}bufferedCameraGeometryGlobe(t){const i=this.screenBounds[0],o=1===this.screenBounds.length?this.screenBounds[0].add(new e.Point(1,1)):this.screenBounds[1],r=e.polygonizeBounds(i,o,t),n=this.cameraPoint.clone();switch(3*((n.y>i.y)+(n.y>o.y))+((n.x>i.x)+(n.x>o.x))){case 0:r[0]=n,r[4]=n.clone();break;case 1:r.splice(1,0,n);break;case 2:r[1]=n;break;case 3:r.splice(4,0,n);break;case 5:r.splice(2,0,n);break;case 6:r[3]=n;break;case 7:r.splice(3,0,n);break;case 8:r[2]=n;}return r}containsTile(t,i,o,r=0){const n=t.queryPadding/i._pixelsPerMercatorPixel+1,s=o?this._bufferedCameraMercator(n,i):this._bufferedScreenMercator(n,i);let a=t.tileID.wrap+(s.unwrapped?r:0);const l=s.polygon.map((i=>e.getTilePoint(t.tileTransform,i,a)));if(!e.polygonIntersectsBox(l,0,0,e.EXTENT,e.EXTENT))return;a=t.tileID.wrap+(this.screenGeometryMercator.unwrapped?r:0);const c=this.screenGeometryMercator.polygon.map((i=>e.getTileVec3(t.tileTransform,i,a))),h=c.map((t=>new e.Point(t[0],t[1]))),u=i.getFreeCameraOptions().position||new e.MercatorCoordinate(0,0,0),_=e.getTileVec3(t.tileTransform,u,a),d=c.map((t=>{const i=e.sub(t,t,_);return e.normalize(i,i),new e.Ray(_,i)})),p=D(t,1,i.zoom)*i._pixelsPerMercatorPixel;return {queryGeometry:this,tilespaceGeometry:h,tilespaceRays:d,bufferedTilespaceGeometry:l,bufferedTilespaceBounds:(m=e.getBounds(l),m.min.x=e.clamp(m.min.x,0,e.EXTENT),m.min.y=e.clamp(m.min.y,0,e.EXTENT),m.max.x=e.clamp(m.max.x,0,e.EXTENT),m.max.y=e.clamp(m.max.y,0,e.EXTENT),m),tile:t,tileID:t.tileID,pixelToTileUnitsFactor:p};var m;}_bufferedScreenMercator(e,t){const i=R(e);if(this._screenRaycastCache[i])return this._screenRaycastCache[i];{let o;return o="globe"===t.projection.name?this._projectAndResample(this.bufferedScreenGeometry(e),t):{polygon:this.bufferedScreenGeometry(e).map((e=>t.pointCoordinate3D(e))),unwrapped:!0},this._screenRaycastCache[i]=o,o}}_bufferedCameraMercator(e,t){const i=R(e);if(this._cameraRaycastCache[i])return this._cameraRaycastCache[i];{let o;return o="globe"===t.projection.name?this._projectAndResample(this.bufferedCameraGeometryGlobe(e),t):{polygon:this.bufferedCameraGeometry(e).map((e=>t.pointCoordinate3D(e))),unwrapped:!0},this._cameraRaycastCache[i]=o,o}}_projectAndResample(t,i){const o=function(t,i){const o=e.multiply([],i.pixelMatrix,i.globeMatrix),r=[0,-e.GLOBE_RADIUS,0,1],n=[0,e.GLOBE_RADIUS,0,1],s=[0,0,0,1];e.transformMat4$1(r,r,o),e.transformMat4$1(n,n,o),e.transformMat4$1(s,s,o);const a=new e.Point(r[0]/r[3],r[1]/r[3]),l=new e.Point(n[0]/n[3],n[1]/n[3]),c=e.polygonContainsPoint(t,a)&&r[3]1?A(t.slice(0,_),i):[],m=_new e.Point(z(t.x),t.y))),m=m.map((t=>new e.Point(z(t.x),t.y)));const f=[...p];0===f.length&&f.push(m[m.length-1]);const g=e.number(f[f.length-1].y,(0===m.length?p[0]:m[0]).y,d);let v;return v=c?[new e.Point(0,g),new e.Point(0,0),new e.Point(1,0),new e.Point(1,g)]:[new e.Point(1,g),new e.Point(1,1),new e.Point(0,1),new e.Point(0,g)],f.push(...v),0===m.length?f.push(p[0]):f.push(...m),{polygon:f.map((t=>new e.MercatorCoordinate(t.x,t.y))),unwrapped:!1}}(t,i);if(o)return o;const r=function(t,i){let o=!1,r=-1/0,n=0;for(let e=0;er&&(r=t[e].x,n=e);for(let e=0;e.5&&(r.x{e.x-=1;})),{polygon:t,unwrapped:o}}(A(t,i).map((t=>new e.Point(z(t.x),t.y))),i);return {polygon:r.polygon.map((t=>new e.MercatorCoordinate(t.x,t.y))),unwrapped:r.unwrapped}}}function A(t,i){return e.resample(t,(e=>{const t=i.pointCoordinate3D(e);e.x=t.x,e.y=t.y;}),1/256)}function z(e){return e<0?1+e%1:e%1}function R(e){return 100*e|0}function O(t,i,o,r,n){const s=function(o,r){if(o)return n(o);if(r){t.url&&r.tiles&&t.tiles&&delete t.tiles;const o=e.pick(e.extend(r,t),["tiles","minzoom","maxzoom","attribution","mapbox_logo","bounds","scheme","tileSize","encoding"]);r.vector_layers&&(o.vectorLayers=r.vector_layers,o.vectorLayerIds=o.vectorLayers.map((e=>e.id))),o.tiles=i.canonicalizeTileset(o,t.url),n(null,o);}};return t.url?e.getJSON(i.transformRequest(i.normalizeSourceURL(t.url,null,o,r),e.ResourceType.Source),s):e.exported.frame((()=>s(null,t)))}class B{constructor(t,i,o){this.bounds=e.LngLatBounds.convert(this.validateBounds(t)),this.minzoom=i||0,this.maxzoom=o||24;}validateBounds(e){return Array.isArray(e)&&4===e.length?[Math.max(-180,e[0]),Math.max(-90,e[1]),Math.min(180,e[2]),Math.min(90,e[3])]:[-180,-90,180,90]}contains(t){const i=Math.pow(2,t.z),o=Math.floor(e.mercatorXfromLng(this.bounds.getWest())*i),r=Math.floor(e.mercatorYfromLat(this.bounds.getNorth())*i),n=Math.ceil(e.mercatorXfromLng(this.bounds.getEast())*i),s=Math.ceil(e.mercatorYfromLat(this.bounds.getSouth())*i);return t.x>=o&&t.x=r&&t.y{this._tileJSONRequest=null,this._loaded=!0,r?(i&&console.warn(`Ensure that your requested language string is a valid BCP-47 code or list of codes. Found: ${i}`),o&&2!==o.length&&console.warn(`Requested worldview strings must be a valid ISO alpha-2 code. Found: ${o}`),this.fire(new e.ErrorEvent(r))):n&&(e.extend(this,n),n.bounds&&(this.tileBounds=new B(n.bounds,this.minzoom,this.maxzoom)),e.postTurnstileEvent(n.tiles,this.map._requestManager._customAccessToken),this.fire(new e.Event("data",{dataType:"source",sourceDataType:"metadata"})),this.fire(new e.Event("data",{dataType:"source",sourceDataType:"content"}))),t&&t(r);}));}loaded(){return this._loaded}hasTile(e){return !this.tileBounds||this.tileBounds.contains(e.canonical)}onAdd(e){this.map=e,this.load();}reload(){this.cancelTileJSONRequest(),this.load((()=>this.map.style._clearSource(this.id)));}setTiles(e){return this._options.tiles=e,this.reload(),this}setUrl(e){return this.url=e,this._options.url=e,this.reload(),this}onRemove(){this.cancelTileJSONRequest();}serialize(){return e.extend({},this._options)}loadTile(t,i){const o=this.map._requestManager.normalizeTileURL(t.tileID.canonical.url(this.tiles,this.scheme)),r={request:this.map._requestManager.transformRequest(o,e.ResourceType.Tile),data:void 0,uid:t.uid,tileID:t.tileID,tileZoom:t.tileZoom,zoom:t.tileID.overscaledZ,tileSize:this.tileSize*t.tileID.overscaleFactor(),type:this.type,source:this.id,pixelRatio:e.exported.devicePixelRatio,showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId,isSymbolTile:t.isSymbolTile};if(r.request.collectResourceTiming=this._collectResourceTiming,t.actor&&"expired"!==t.state)"loading"===t.state?t.reloadCallback=i:t.request=t.actor.send("reloadTile",r,n.bind(this));else if(t.actor=this._tileWorkers[o]=this._tileWorkers[o]||this.dispatcher.getActor(),this.dispatcher.ready)t.request=t.actor.send("loadTile",r,n.bind(this),void 0,!0);else {const i=e.loadVectorTile.call({deduped:this._deduped},r,((e,i)=>{e||!i?n.call(this,e):(r.data={cacheControl:i.cacheControl,expires:i.expires,rawData:i.rawData.slice(0)},t.actor&&t.actor.send("loadTile",r,n.bind(this),void 0,!0));}),!0);t.request={cancel:i};}function n(o,r){return delete t.request,t.aborted?i(null):o&&404!==o.status?i(o):(r&&r.resourceTiming&&(t.resourceTiming=r.resourceTiming),this.map._refreshExpiredTiles&&r&&t.setExpiryData(r),t.loadVectorData(r,this.map.painter),e.cacheEntryPossiblyAdded(this.dispatcher),i(null),void(t.reloadCallback&&(this.loadTile(t,t.reloadCallback),t.reloadCallback=null)))}}abortTile(e){e.request&&(e.request.cancel(),delete e.request),e.actor&&e.actor.send("abortTile",{uid:e.uid,type:this.type,source:this.id});}unloadTile(e){e.unloadVectorData(),e.actor&&e.actor.send("removeTile",{uid:e.uid,type:this.type,source:this.id});}hasTransition(){return !1}afterUpdate(){this._tileWorkers={};}cancelTileJSONRequest(){this._tileJSONRequest&&(this._tileJSONRequest.cancel(),this._tileJSONRequest=null);}}class Me extends e.Evented{constructor(t,i,o,r){super(),this.id=t,this.dispatcher=o,this.setEventedParent(r),this.type="raster",this.minzoom=0,this.maxzoom=22,this.roundZoom=!0,this.scheme="xyz",this.tileSize=512,this._loaded=!1,this._options=e.extend({type:"raster"},i),e.extend(this,e.pick(i,["url","scheme","tileSize"]));}load(t){this._loaded=!1,this.fire(new e.Event("dataloading",{dataType:"source"})),this._tileJSONRequest=O(this._options,this.map._requestManager,null,null,((i,o)=>{this._tileJSONRequest=null,this._loaded=!0,i?this.fire(new e.ErrorEvent(i)):o&&(e.extend(this,o),o.bounds&&(this.tileBounds=new B(o.bounds,this.minzoom,this.maxzoom)),e.postTurnstileEvent(o.tiles),this.fire(new e.Event("data",{dataType:"source",sourceDataType:"metadata"})),this.fire(new e.Event("data",{dataType:"source",sourceDataType:"content"}))),t&&t(i);}));}loaded(){return this._loaded}onAdd(e){this.map=e,this.load();}reload(){this.cancelTileJSONRequest(),this.load((()=>this.map.style._clearSource(this.id)));}setTiles(e){return this._options.tiles=e,this.reload(),this}setUrl(e){return this.url=e,this._options.url=e,this.reload(),this}onRemove(){this.cancelTileJSONRequest();}serialize(){return e.extend({},this._options)}hasTile(e){return !this.tileBounds||this.tileBounds.contains(e.canonical)}loadTile(t,i){const o=e.exported.devicePixelRatio>=2,r=this.map._requestManager.normalizeTileURL(t.tileID.canonical.url(this.tiles,this.scheme),o,this.tileSize);t.request=e.getImage(this.map._requestManager.transformRequest(r,e.ResourceType.Tile),((o,r,n,s)=>(delete t.request,t.aborted?(t.state="unloaded",i(null)):o?(t.state="errored",i(o)):r?(this.map._refreshExpiredTiles&&t.setExpiryData({cacheControl:n,expires:s}),t.setTexture(r,this.map.painter),t.state="loaded",e.cacheEntryPossiblyAdded(this.dispatcher),void i(null)):i(null))));}static loadTileData(e,t,i){e.setTexture(t,i);}static unloadTileData(e,t){e.texture&&t.saveTileTexture(e.texture);}abortTile(e,t){e.request&&(e.request.cancel(),delete e.request),t();}unloadTile(e,t){e.texture&&this.map.painter.saveTileTexture(e.texture),t();}hasTransition(){return !1}cancelTileJSONRequest(){this._tileJSONRequest&&(this._tileJSONRequest.cancel(),this._tileJSONRequest=null);}}function Ie(t,i,o,r,n,s,a,l){const c=[t,o,n,i,r,s,1,1,1],h=[a,l,1],u=e.adjoint([],c),[_,d,p]=e.transformMat3(h,h,e.transpose(u,u));return e.multiply$1(c,[_,0,0,0,d,0,0,0,p],c)}class Pe extends e.Evented{constructor(e,t,i,o){super(),this.id=e,this.dispatcher=i,this.coordinates=t.coordinates,this.type="image",this.minzoom=0,this.maxzoom=22,this.tileSize=512,this.tiles={},this._loaded=!1,this.setEventedParent(o),this.options=t,this._dirty=!1;}load(t,i){this._loaded=i||!1,this.fire(new e.Event("dataloading",{dataType:"source"})),this.url=this.options.url,this._imageRequest=e.getImage(this.map._requestManager.transformRequest(this.url,e.ResourceType.Image),((i,o)=>{if(this._imageRequest=null,this._loaded=!0,i)this.fire(new e.ErrorEvent(i));else if(o){const{HTMLImageElement:i}=e.window;this.image=o instanceof i?e.exported.getImageData(o):o,this._dirty=!0,this.width=this.image.width,this.height=this.image.height,t&&(this.coordinates=t),this._finishLoading();}}));}loaded(){return this._loaded}updateImage(e){return this.image&&e.url?(this._imageRequest&&e.url!==this.options.url&&(this._imageRequest.cancel(),this._imageRequest=null),this.options.url=e.url,this.load(e.coordinates,this._loaded),this):this}_finishLoading(){this.map&&(this.setCoordinates(this.coordinates),this.fire(new e.Event("data",{dataType:"source",sourceDataType:"metadata"})));}onAdd(e){this.map=e,this.load();}onRemove(){this._imageRequest&&(this._imageRequest.cancel(),this._imageRequest=null),this.texture&&this.texture.destroy();}setCoordinates(t){this.coordinates=t,this._boundsArray=void 0;const i=t.map(e.MercatorCoordinate.fromLngLat);return this.tileID=function(t){let i=1/0,o=1/0,r=-1/0,n=-1/0;for(const e of t)i=Math.min(i,e.x),o=Math.min(o,e.y),r=Math.max(r,e.x),n=Math.max(n,e.y);const s=Math.max(r-i,n-o),a=Math.max(0,Math.floor(-Math.log(s)/Math.LN2)),l=Math.pow(2,a);return new e.CanonicalTileID(a,Math.floor((i+r)/2*l),Math.floor((o+n)/2*l))}(i),this.minzoom=this.maxzoom=this.tileID.z,this.fire(new e.Event("data",{dataType:"source",sourceDataType:"content"})),this}_clear(){this._boundsArray=void 0;}_prepareData(t){for(const e in this.tiles){const t=this.tiles[e];"loaded"!==t.state&&(t.state="loaded",t.texture=this.texture);}if(this._boundsArray)return;const i=e.tileTransform(this.tileID,this.map.transform.projection),[o,r,n,s]=this.coordinates.map((t=>{const o=i.projection.project(t[0],t[1]);return e.getTilePoint(i,o)._round()}));this.perspectiveTransform=function(t,i,o,r,n,s,a,l,c,h){const u=Ie(0,0,t,0,0,i,t,i),_=Ie(o,r,n,s,a,l,c,h);return e.multiply$1(_,e.adjoint(u,u),_),[_[6]/_[8]*t/e.EXTENT,_[7]/_[8]*i/e.EXTENT]}(this.width,this.height,o.x,o.y,r.x,r.y,s.x,s.y,n.x,n.y);const a=this._boundsArray=new e.StructArrayLayout4i8;a.emplaceBack(o.x,o.y,0,0),a.emplaceBack(r.x,r.y,e.EXTENT,0),a.emplaceBack(s.x,s.y,0,e.EXTENT),a.emplaceBack(n.x,n.y,e.EXTENT,e.EXTENT),this.boundsBuffer&&this.boundsBuffer.destroy(),this.boundsBuffer=t.createVertexBuffer(a,e.boundsAttributes.members),this.boundsSegments=e.SegmentVector.simpleSegment(0,0,4,2);}prepare(){if(0===Object.keys(this.tiles).length||!this.image)return;const t=this.map.painter.context,i=t.gl;this._dirty&&(this.texture?this.texture.update(this.image):(this.texture=new e.Texture(t,this.image,i.RGBA),this.texture.bind(i.LINEAR,i.CLAMP_TO_EDGE)),this._dirty=!1),this._prepareData(t);}loadTile(e,t){this.tileID&&this.tileID.equals(e.tileID.canonical)?(this.tiles[String(e.tileID.wrap)]=e,e.buckets={},t(null)):(e.state="errored",t(null));}serialize(){return {type:"image",url:this.options.url,coordinates:this.coordinates}}hasTransition(){return !1}}const Se={vector:Ce,raster:Me,"raster-dem":class extends Me{constructor(t,i,o,r){super(t,i,o,r),this.type="raster-dem",this.maxzoom=22,this._options=e.extend({type:"raster-dem"},i),this.encoding=i.encoding||"mapbox";}loadTile(t,i){const o=this.map._requestManager.normalizeTileURL(t.tileID.canonical.url(this.tiles,this.scheme),!1,this.tileSize);function r(e,o){e&&(t.state="errored",i(e)),o&&(t.dem=o,t.dem.onDeserialize(),t.needsHillshadePrepare=!0,t.needsDEMTextureUpload=!0,t.state="loaded",i(null));}t.request=e.getImage(this.map._requestManager.transformRequest(o,e.ResourceType.Tile),function(o,n,s,a){if(delete t.request,t.aborted)t.state="unloaded",i(null);else if(o)t.state="errored",i(o);else if(n){this.map._refreshExpiredTiles&&t.setExpiryData({cacheControl:s,expires:a});const i=e.window.ImageBitmap&&n instanceof e.window.ImageBitmap&&(null==se&&(se=e.window.OffscreenCanvas&&new e.window.OffscreenCanvas(1,1).getContext("2d")&&"function"==typeof e.window.createImageBitmap),se),o=1-(n.width-e.prevPowerOfTwo(n.width))/2;o<1||t.neighboringTiles||(t.neighboringTiles=this._getNeighboringTiles(t.tileID));const l=i?n:e.exported.getImageData(n,o),c={uid:t.uid,coord:t.tileID,source:this.id,rawImageData:l,encoding:this.encoding,padding:o};t.actor&&"expired"!==t.state||(t.actor=this.dispatcher.getActor(),t.actor.send("loadDEMTile",c,r.bind(this),void 0,!0));}}.bind(this));}_getNeighboringTiles(t){const i=t.canonical,o=Math.pow(2,i.z),r=(i.x-1+o)%o,n=0===i.x?t.wrap-1:t.wrap,s=(i.x+1+o)%o,a=i.x+1===o?t.wrap+1:t.wrap,l={};return l[new e.OverscaledTileID(t.overscaledZ,n,i.z,r,i.y).key]={backfilled:!1},l[new e.OverscaledTileID(t.overscaledZ,a,i.z,s,i.y).key]={backfilled:!1},i.y>0&&(l[new e.OverscaledTileID(t.overscaledZ,n,i.z,r,i.y-1).key]={backfilled:!1},l[new e.OverscaledTileID(t.overscaledZ,t.wrap,i.z,i.x,i.y-1).key]={backfilled:!1},l[new e.OverscaledTileID(t.overscaledZ,a,i.z,s,i.y-1).key]={backfilled:!1}),i.y+1{if(this._loaded=!0,this._pendingLoad=null,t)this.fire(new e.ErrorEvent(t));else {const t={dataType:"source",sourceDataType:this._metadataFired?"content":"metadata"};this._collectResourceTiming&&i&&i.resourceTiming&&i.resourceTiming[this.id]&&(t.resourceTiming=i.resourceTiming[this.id]),this.fire(new e.Event("data",t)),this._metadataFired=!0;}this._coalesce&&(this._updateWorkerData(),this._coalesce=!1);}));}loaded(){return this._loaded}loadTile(t,i){const o=t.actor?"reloadTile":"loadTile";t.actor=this.actor,t.request=this.actor.send(o,{type:this.type,uid:t.uid,tileID:t.tileID,tileZoom:t.tileZoom,zoom:t.tileID.overscaledZ,maxZoom:this.maxzoom,tileSize:this.tileSize,source:this.id,pixelRatio:e.exported.devicePixelRatio,showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId},((e,r)=>(delete t.request,t.unloadVectorData(),t.aborted?i(null):e?i(e):(t.loadVectorData(r,this.map.painter,"reloadTile"===o),i(null)))),void 0,"loadTile"===o);}abortTile(e){e.request&&(e.request.cancel(),delete e.request),e.aborted=!0;}unloadTile(e){e.unloadVectorData(),this.actor.send("removeTile",{uid:e.uid,type:this.type,source:this.id});}onRemove(){this._pendingLoad&&this._pendingLoad.cancel();}serialize(){return e.extend({},this._options,{type:this.type,data:this._data})}hasTransition(){return !1}},video:class extends Pe{constructor(e,t,i,o){super(e,t,i,o),this.roundZoom=!0,this.type="video",this.options=t;}load(){this._loaded=!1;const t=this.options;this.urls=[];for(const i of t.urls)this.urls.push(this.map._requestManager.transformRequest(i,e.ResourceType.Source).url);e.getVideo(this.urls,((t,i)=>{this._loaded=!0,t?this.fire(new e.ErrorEvent(t)):i&&(this.video=i,this.video.loop=!0,this.video.setAttribute("playsinline",""),this.video.addEventListener("playing",(()=>{this.map.triggerRepaint();})),this.map&&this.video.play(),this._finishLoading());}));}pause(){this.video&&this.video.pause();}play(){this.video&&this.video.play();}seek(t){if(this.video){const i=this.video.seekable;ti.end(0)?this.fire(new e.ErrorEvent(new e.ValidationError(`sources.${this.id}`,null,`Playback for this video can be set only between the ${i.start(0)} and ${i.end(0)}-second mark.`))):this.video.currentTime=t;}}getVideo(){return this.video}onAdd(e){this.map||(this.map=e,this.load(),this.video&&(this.video.play(),this.setCoordinates(this.coordinates)));}prepare(){if(0===Object.keys(this.tiles).length||this.video.readyState<2)return;const t=this.map.painter.context,i=t.gl;this.texture?this.video.paused||(this.texture.bind(i.LINEAR,i.CLAMP_TO_EDGE),i.texSubImage2D(i.TEXTURE_2D,0,0,0,i.RGBA,i.UNSIGNED_BYTE,this.video)):(this.texture=new e.Texture(t,this.video,i.RGBA),this.texture.bind(i.LINEAR,i.CLAMP_TO_EDGE),this.width=this.video.videoWidth,this.height=this.video.videoHeight),this._prepareData(t);}serialize(){return {type:"video",urls:this.urls,coordinates:this.coordinates}}hasTransition(){return this.video&&!this.video.paused}},image:Pe,canvas:class extends Pe{constructor(t,i,o,r){super(t,i,o,r),i.coordinates?Array.isArray(i.coordinates)&&4===i.coordinates.length&&!i.coordinates.some((e=>!Array.isArray(e)||2!==e.length||e.some((e=>"number"!=typeof e))))||this.fire(new e.ErrorEvent(new e.ValidationError(`sources.${t}`,null,'"coordinates" property must be an array of 4 longitude/latitude array pairs'))):this.fire(new e.ErrorEvent(new e.ValidationError(`sources.${t}`,null,'missing required property "coordinates"'))),i.animate&&"boolean"!=typeof i.animate&&this.fire(new e.ErrorEvent(new e.ValidationError(`sources.${t}`,null,'optional "animate" property must be a boolean value'))),i.canvas?"string"==typeof i.canvas||i.canvas instanceof e.window.HTMLCanvasElement||this.fire(new e.ErrorEvent(new e.ValidationError(`sources.${t}`,null,'"canvas" must be either a string representing the ID of the canvas element from which to read, or an HTMLCanvasElement instance'))):this.fire(new e.ErrorEvent(new e.ValidationError(`sources.${t}`,null,'missing required property "canvas"'))),this.options=i,this.animate=void 0===i.animate||i.animate;}load(){this._loaded=!0,this.canvas||(this.canvas=this.options.canvas instanceof e.window.HTMLCanvasElement?this.options.canvas:e.window.document.getElementById(this.options.canvas)),this.width=this.canvas.width,this.height=this.canvas.height,this._hasInvalidDimensions()?this.fire(new e.ErrorEvent(new Error("Canvas dimensions cannot be less than or equal to zero."))):(this.play=function(){this._playing=!0,this.map.triggerRepaint();},this.pause=function(){this._playing&&(this.prepare(),this._playing=!1);},this._finishLoading());}getCanvas(){return this.canvas}onAdd(e){this.map=e,this.load(),this.canvas&&this.animate&&this.play();}onRemove(){this.pause();}prepare(){let t=!1;if(this.canvas.width!==this.width&&(this.width=this.canvas.width,t=!0),this.canvas.height!==this.height&&(this.height=this.canvas.height,t=!0),this._hasInvalidDimensions())return;if(0===Object.keys(this.tiles).length)return;const i=this.map.painter.context;this.texture?(t||this._playing)&&this.texture.update(this.canvas,{premultiply:!0}):this.texture=new e.Texture(i,this.canvas,i.gl.RGBA,{premultiply:!0}),this._prepareData(i);}serialize(){return {type:"canvas",coordinates:this.coordinates}}hasTransition(){return this._playing}_hasInvalidDimensions(){for(const e of [this.canvas.width,this.canvas.height])if(isNaN(e)||e<=0)return !0;return !1}},custom:class extends e.Evented{constructor(t,i,o,r){super(),this.id=t,this.type="custom",this._dataType="raster",this._dispatcher=o,this._implementation=i,this.setEventedParent(r),this.scheme="xyz",this.minzoom=0,this.maxzoom=22,this.tileSize=512,this._loaded=!1,this.roundZoom=!0,this._implementation||this.fire(new e.ErrorEvent(new Error(`Missing implementation for ${this.id} custom source`))),this._implementation.loadTile||this.fire(new e.ErrorEvent(new Error(`Missing loadTile implementation for ${this.id} custom source`))),this._implementation.bounds&&(this.tileBounds=new B(this._implementation.bounds,this.minzoom,this.maxzoom)),i.update=this._update.bind(this),i.clearTiles=this._clearTiles.bind(this),i.coveringTiles=this._coveringTiles.bind(this),e.extend(this,e.pick(i,["dataType","scheme","minzoom","maxzoom","tileSize","attribution","minTileCacheSize","maxTileCacheSize"]));}serialize(){return e.pick(this,["type","scheme","minzoom","maxzoom","tileSize","attribution"])}load(){this._loaded=!0,this.fire(new e.Event("data",{dataType:"source",sourceDataType:"metadata"})),this.fire(new e.Event("data",{dataType:"source",sourceDataType:"content"}));}loaded(){return this._loaded}onAdd(t){this._map=t,this._loaded=!1,this.fire(new e.Event("dataloading",{dataType:"source"})),this._implementation.onAdd&&this._implementation.onAdd(t),this.load();}onRemove(e){this._implementation.onRemove&&this._implementation.onRemove(e);}hasTile(e){if(this._implementation.hasTile){const{x:t,y:i,z:o}=e.canonical;return this._implementation.hasTile({x:t,y:i,z:o})}return !this.tileBounds||this.tileBounds.contains(e.canonical)}loadTile(t,i){const{x:o,y:r,z:n}=t.tileID.canonical,s=new e.window.AbortController;t.request=Promise.resolve(this._implementation.loadTile({x:o,y:r,z:n},{signal:s.signal})).then(function(o){return delete t.request,t.aborted?(t.state="unloaded",i(null)):void 0===o?(t.state="errored",i(null)):null===o?(this.loadTileData(t,{width:this.tileSize,height:this.tileSize,data:null}),t.state="loaded",i(null)):function(t){return t instanceof e.window.ImageData||t instanceof e.window.HTMLCanvasElement||t instanceof e.window.ImageBitmap||t instanceof e.window.HTMLImageElement}(o)?(this.loadTileData(t,o),t.state="loaded",void i(null)):(t.state="errored",i(new Error(`Can't infer data type for ${this.id}, only raster data supported at the moment`)))}.bind(this)).catch((e=>{20!==e.code&&(t.state="errored",i(e));})),t.request.cancel=()=>s.abort();}loadTileData(e,t){Me.loadTileData(e,t,this._map.painter);}unloadTileData(e){Me.unloadTileData(e,this._map.painter);}unloadTile(e,t){if(this.unloadTileData(e),this._implementation.unloadTile){const{x:t,y:i,z:o}=e.tileID.canonical;this._implementation.unloadTile({x:t,y:i,z:o});}t();}abortTile(e,t){e.request&&e.request.cancel&&(e.request.cancel(),delete e.request),t();}hasTransition(){return !1}_coveringTiles(){return this._map.transform.coveringTiles({tileSize:this.tileSize,minzoom:this.minzoom,maxzoom:this.maxzoom,roundZoom:this.roundZoom}).map((e=>({x:e.canonical.x,y:e.canonical.y,z:e.canonical.z})))}_clearTiles(){this._map.style._clearSource(this.id);}_update(){this.fire(new e.Event("data",{dataType:"source",sourceDataType:"content"}));}}},De=function(t,i,o,r){const n=new Se[i.type](t,i,o,r);if(n.id!==t)throw new Error(`Expected Source id to be ${t} instead of ${n.id}`);return e.bindAll(["load","abort","unload","serialize","prepare"],n),n};function Le(t,i){const o=e.identity([]);return e.scale(o,o,[.5*t.width,.5*-t.height,1]),e.translate(o,o,[1,-1,0]),e.multiply(o,o,t.calculateProjMatrix(i.toUnwrapped())),Float32Array.from(o)}function Ae(e,t,i,o,r,n,s,a=!1){const l=e.tilesIn(o,s,a);l.sort(Re);const c=[];for(const o of l)c.push({wrappedTileID:o.tile.tileID.wrapped().key,queryResults:o.tile.queryRenderedFeatures(t,i,e._state,o,r,n,Le(e.transform,o.tile.tileID),a)});const h=function(e){const t={},i={};for(const o of e){const e=o.queryResults,r=o.wrappedTileID,n=i[r]=i[r]||{};for(const i in e){const o=e[i],r=n[i]=n[i]||{},s=t[i]=t[i]||[];for(const e of o)r[e.featureIndex]||(r[e.featureIndex]=!0,s.push(e));}}return t}(c);for(const t in h)h[t].forEach((t=>{const i=t.feature,o=i.layer;o&&"background"!==o.type&&"sky"!==o.type&&(i.source=o.source,o["source-layer"]&&(i.sourceLayer=o["source-layer"]),i.state=void 0!==i.id?e.getFeatureState(o["source-layer"],i.id):{});}));return h}function ze(e,t){const i=e.getRenderableIds().map((t=>e.getTileByID(t))),o=[],r={};for(let e=0;e{e.terminate();})),this.workers=null);}isPreloaded(){return !!this.active[Be]}numActive(){return Object.keys(this.active).length}}let Fe;function Ue(){return Fe||(Fe=new ke),Fe}function Ne(t,i){const o={};for(const e in t)"ref"!==e&&(o[e]=t[e]);return e.refProperties.forEach((e=>{e in i&&(o[e]=i[e]);})),o}function je(e){e=e.slice();const t=Object.create(null);for(let i=0;i0?(r-s)/a:0;return this.points[n].mult(1-l).add(this.points[i].mult(l))}}class Ke{constructor(e,t,i){const o=this.boxCells=[],r=this.circleCells=[];this.xCellCount=Math.ceil(e/i),this.yCellCount=Math.ceil(t/i);for(let e=0;ethis.width||o<0||t>this.height)return !r&&[];const s=[];if(e<=0&&t<=0&&this.width<=i&&this.height<=o){if(r)return !0;for(let e=0;e0:s}_queryCircle(e,t,i,o,r){const n=e-i,s=e+i,a=t-i,l=t+i;if(s<0||n>this.width||l<0||a>this.height)return !o&&[];const c=[];return this._forEachCell(n,a,s,l,this._queryCellCircle,c,{hitTest:o,circle:{x:e,y:t,radius:i},seenUids:{box:{},circle:{}}},r),o?c.length>0:c}query(e,t,i,o,r){return this._query(e,t,i,o,!1,r)}hitTest(e,t,i,o,r){return this._query(e,t,i,o,!0,r)}hitTestCircle(e,t,i,o){return this._queryCircle(e,t,i,!0,o)}_queryCell(e,t,i,o,r,n,s,a){const l=s.seenUids,c=this.boxCells[r];if(null!==c){const r=this.bboxes;for(const h of c)if(!l.box[h]){l.box[h]=!0;const c=4*h;if(e<=r[c+2]&&t<=r[c+3]&&i>=r[c+0]&&o>=r[c+1]&&(!a||a(this.boxKeys[h]))){if(s.hitTest)return n.push(!0),!0;n.push({key:this.boxKeys[h],x1:r[c],y1:r[c+1],x2:r[c+2],y2:r[c+3]});}}}const h=this.circleCells[r];if(null!==h){const r=this.circles;for(const c of h)if(!l.circle[c]){l.circle[c]=!0;const h=3*c;if(this._circleAndRectCollide(r[h],r[h+1],r[h+2],e,t,i,o)&&(!a||a(this.circleKeys[c]))){if(s.hitTest)return n.push(!0),!0;{const e=r[h],t=r[h+1],i=r[h+2];n.push({key:this.circleKeys[c],x1:e-i,y1:t-i,x2:e+i,y2:t+i});}}}}}_queryCellCircle(e,t,i,o,r,n,s,a){const l=s.circle,c=s.seenUids,h=this.boxCells[r];if(null!==h){const e=this.bboxes;for(const t of h)if(!c.box[t]){c.box[t]=!0;const i=4*t;if(this._circleAndRectCollide(l.x,l.y,l.radius,e[i+0],e[i+1],e[i+2],e[i+3])&&(!a||a(this.boxKeys[t])))return n.push(!0),!0}}const u=this.circleCells[r];if(null!==u){const e=this.circles;for(const t of u)if(!c.circle[t]){c.circle[t]=!0;const i=3*t;if(this._circlesCollide(e[i],e[i+1],e[i+2],l.x,l.y,l.radius)&&(!a||a(this.circleKeys[t])))return n.push(!0),!0}}}_forEachCell(e,t,i,o,r,n,s,a){const l=this._convertToXCellCoord(e),c=this._convertToYCellCoord(t),h=this._convertToXCellCoord(i),u=this._convertToYCellCoord(o);for(let _=l;_<=h;_++)for(let l=c;l<=u;l++)if(r.call(this,e,t,i,o,this.xCellCount*l+_,n,s,a))return}_convertToXCellCoord(e){return Math.max(0,Math.min(this.xCellCount-1,Math.floor(e*this.xScale)))}_convertToYCellCoord(e){return Math.max(0,Math.min(this.yCellCount-1,Math.floor(e*this.yScale)))}_circlesCollide(e,t,i,o,r,n){const s=o-e,a=r-t,l=i+n;return l*l>s*s+a*a}_circleAndRectCollide(e,t,i,o,r,n,s){const a=(n-o)/2,l=Math.abs(e-(o+a));if(l>a+i)return !1;const c=(s-r)/2,h=Math.abs(t-(r+c));if(h>c+i)return !1;if(l<=a||h<=c)return !0;const u=l-a,_=h-c;return u*u+_*_<=i*i}}const Je={unknown:0,flipRequired:1,flipNotRequired:2},Qe=Math.tan(85*Math.PI/180);function et(t,i,o,r,n,s,a){const l=e.create();if(o)if("globe"===s.name){const t=e.calculateGlobeLabelMatrix(n,i);e.multiply(l,l,t);}else {const t=v([],a);l[0]=t[0],l[1]=t[1],l[4]=t[2],l[5]=t[3],r||e.rotateZ(l,l,n.angle);}else e.multiply(l,n.labelPlaneMatrix,t);return l}function tt(e,t,i,o,r,n,s){const a=et(e,t,i,o,r,n,s);return "globe"===n.name&&i||(a[2]=a[6]=a[10]=a[14]=0),a}function it(t,i,o,r,n,s,a){if(o){if("globe"===s.name){const l=et(t,i,o,r,n,s,a);return e.invert(l,l),e.multiply(l,t,l),l}{const i=e.clone(t),o=e.identity([]);return o[0]=a[0],o[1]=a[1],o[4]=a[2],o[5]=a[3],e.multiply(i,i,o),r||e.rotateZ(i,i,-n.angle),i}}return n.glCoordMatrix}function ot(t,i,o,r){const n=[t,i,o,1];o?e.transformMat4$1(n,n,r):pt(n,n,r);const s=n[3];return n[0]/=s,n[1]/=s,n[2]/=s,n}function rt(e,t){return Math.min(.5+e/t*.5,1.5)}function nt(e,t){const i=e[0]/e[3],o=e[1]/e[3];return i>=-t[0]&&i<=t[0]&&o>=-t[1]&&o<=t[1]}function st(t,i,o,r,n,s,a,l,c,h){const u=o.transform,_=r?t.textSizeData:t.iconSizeData,d=e.evaluateSizeForZoom(_,o.transform.zoom),p="globe"===u.projection.name,m=[256/o.width*2+1,256/o.height*2+1],f=r?t.text.dynamicLayoutVertexArray:t.icon.dynamicLayoutVertexArray;f.clear();let g=null;p&&(g=r?t.text.globeExtVertexArray:t.icon.globeExtVertexArray);const v=t.lineVertexArray,x=r?t.text.placedSymbolArray:t.icon.placedSymbolArray,y=o.transform.width/o.transform.height;let b,w=!1;for(let r=0;rMath.abs(o)?{useVertical:!0}:t===e.WritingMode.vertical?r>0?{needsFlipping:!0}:null:i!==Je.unknown&&function(e,t){return 0===e||Math.abs(t/e)>Qe}(o,r)?i===Je.flipRequired?{needsFlipping:!0}:null:o<0?{needsFlipping:!0}:null}function ct(t,i,o,r,n,s,a,l,c,h,u,_,d,p,m,f,g,v,x){const y=i/24,b=t.lineOffsetX*y,w=t.lineOffsetY*y,{lineStartIndex:T,glyphStartIndex:E,numGlyphs:C,segment:M,writingMode:I,flipState:P}=t,S=T+t.lineLength,D=t=>{if(u){const[i,o,r]=t.up,n=h.length;e.updateGlobeVertexNormal(u,n+0,i,o,r),e.updateGlobeVertexNormal(u,n+1,i,o,r),e.updateGlobeVertexNormal(u,n+2,i,o,r),e.updateGlobeVertexNormal(u,n+3,i,o,r);}const[i,o,r]=t.point;e.addDynamicAttributes(h,i,o,r,t.angle);};if(C>1){const e=at(y,l,b,w,o,_,d,t,c,s,p,f,!1,g,v,x);if(!e)return {notEnoughRoom:!0};if(r&&!o){let[i,o,r]=e.first.point,[n,s,l]=e.last.point;[i,o]=ot(i,o,r,a),[n,s]=ot(n,s,l,a);const c=lt(I,P,(n-i)*m,s-o);if(t.flipState=c&&c.needsFlipping?Je.flipRequired:Je.flipNotRequired,c)return c}D(e.first);for(let e=E+1;e0?s:ut(d,r,i,1,n,void 0,g,v.canonical),l=lt(I,P,(a[0]-i[0])*m,a[1]-i[1]);if(t.flipState=l&&l.needsFlipping?Je.flipRequired:Je.flipNotRequired,l)return l}const i=_t(y*l.getoffsetX(E),b,w,o,_,d,M,T,S,c,s,p,f,!1,!1,g,v,x);if(!i)return {notEnoughRoom:!0};D(i);}return {}}function ht(e,t,i,o,r){const{x:n,y:s,z:a}=o.projectTilePoint(e.x,e.y,t);if(!r)return ot(n,s,a,i);const[l,c,h]=r(e);return ot(n+l,s+c,a+h,i)}function ut(t,i,o,r,n,s,a,l){const c=ht(t.sub(i)._unit()._add(t),l,n,a,s);return e.sub(c,o,c),e.normalize(c,c),e.scaleAndAdd(c,o,c,r)}function _t(t,i,o,r,n,s,a,l,c,h,u,_,d,p,m,f,g,v){const x=r?t-i:t+i;let y=x>0?1:-1,b=0;r&&(y*=-1,b=Math.PI),y<0&&(b+=Math.PI);let w=l+a+(y>0?0:1)|0,T=n,E=n,C=0,M=0;const I=Math.abs(x),P=[],S=[];let D=s,L=D;const A=()=>ut(L,D,E,I-C+1,u,d,f,g.canonical);for(;C+M<=I;){if(w+=y,w=c)return null;if(E=T,L=D,P.push(E),p&&S.push(L),D=new e.Point(h.getx(w),h.gety(w)),T=_[w],!T){const e=ht(D,g.canonical,u,f,d);T=e[3]>0?_[w]=e:A();}C+=M,M=e.distance(E,T);}m&&d&&(_[w]&&(T=A(),M=e.distance(E,T)),_[w]=T);const z=(I-C)/M,R=D.sub(L)._mult(z)._add(L),O=e.sub([],T,E),B=e.scaleAndAdd([],E,O,z);let k=[0,0,1],F=O[0],U=O[1];if(v&&(k=f.upVector(g.canonical,R.x,R.y),0!==k[0]||0!==k[1]||1!==k[2])){const t=[k[2],0,-k[0]],i=e.cross([],k,t);e.normalize(t,t),e.normalize(i,i),F=e.dot(O,t),U=e.dot(O,i);}if(o){const t=e.cross([],k,O);e.normalize(t,t),e.scaleAndAdd(B,B,t,o*y);}const N=b+Math.atan2(U,F);return P.push(B),p&&S.push(R),{point:B,angle:N,path:P,tilePath:S,up:k}}function dt(e,t){const i=t.length,o=i+4*e;t.resize(o),t.float32.fill(-1/0,4*i,4*o);}function pt(e,t,i){const o=t[0],r=t[1];return e[0]=i[0]*o+i[4]*r+i[12],e[1]=i[1]*o+i[5]*r+i[13],e[3]=i[3]*o+i[7]*r+i[15],e}const mt=100;class ft{constructor(e,t,i=new Ke(e.width+200,e.height+200,25),o=new Ke(e.width+200,e.height+200,25)){this.transform=e,this.grid=i,this.ignoredGrid=o,this.pitchfactor=Math.cos(e._pitch)*e.cameraToCenterDistance,this.screenRightBoundary=e.width+mt,this.screenBottomBoundary=e.height+mt,this.gridRightBoundary=e.width+200,this.gridBottomBoundary=e.height+200,this.fogState=t;}placeCollisionBox(e,t,i,o,r,n,s,a){let l=i.projectedAnchorX,c=i.projectedAnchorY,h=i.projectedAnchorZ;const u=i.elevation,_=i.tileID,d=e.getProjection();if(u&&_){const[e,t,o]=d.upVector(_.canonical,i.tileAnchorX,i.tileAnchorY),r=d.upVectorScale(_.canonical,this.transform.center.lat,this.transform.worldSize).metersToTile;l+=e*u*r,c+=t*u*r,h+=o*u*r;}const p=this.projectAndGetPerspectiveRatio(s,l,c,h,i.tileID,"globe"===d.name||!!u||this.transform.pitch>0,d),m=n*p.perspectiveRatio,f=(i.x1*t+o.x-i.padding)*m+p.point.x,g=(i.y1*t+o.y-i.padding)*m+p.point.y,v=(i.x2*t+o.x+i.padding)*m+p.point.x,x=(i.y2*t+o.y+i.padding)*m+p.point.y,y=p.perspectiveRatio<=.55||p.occluded;return !this.isInsideGrid(f,g,v,x)||!r&&this.grid.hitTest(f,g,v,x,a)||y?{box:[],offscreen:!1,occluded:p.occluded}:{box:[f,g,v,x],offscreen:this.isOffscreen(f,g,v,x),occluded:!1}}placeCollisionCircles(t,i,o,r,n,s,a,l,c,h,u,_,d,p,m){const f=[],g=this.transform.elevation,v=t.getProjection(),x=g?g.getAtTileOffsetFunc(m,this.transform.center.lat,this.transform.worldSize,v):null,y=new e.Point(o.tileAnchorX,o.tileAnchorY);let{x:b,y:w,z:T}=v.projectTilePoint(y.x,y.y,m.canonical);if(x){const[e,t,i]=x(y);b+=e,w+=t,T+=i;}const E="globe"===v.name,C=this.projectAndGetPerspectiveRatio(a,b,w,T,m,E||!!g||this.transform.pitch>0,v),{perspectiveRatio:M}=C,I=(u?s/M:s*M)/e.ONE_EM,P=ot(b,w,T,l),S=C.signedDistanceFromCamera>0?at(I,n,o.lineOffsetX*I,o.lineOffsetY*I,!1,P,y,o,r,l,{},g&&!u?x:null,u&&!!g,v,m,u):null;let D=!1,L=!1,A=!0;if(S&&!C.occluded){const t=.5*d*M+p,o=new e.Point(-100,-100),r=new e.Point(this.screenRightBoundary,this.screenBottomBoundary),n=new Ye,{first:s,last:a}=S,l=s.path.length;let u=[];for(let e=l-1;e>=1;e--)u.push(s.path[e]);for(let e=1;e(x&&!E&&(i=x(oe[3]<=0))&&(u=[]));let g=[];if(u.length>0){let t=1/0,i=-1/0,n=1/0,s=-1/0;for(const e of u)t=Math.min(t,e[0]),n=Math.min(n,e[1]),i=Math.max(i,e[0]),s=Math.max(s,e[1]);i>=o.x&&t<=r.x&&s>=o.y&&n<=r.y&&(g=[u.map((t=>new e.Point(t[0],t[1])))],(tr.x||nr.y)&&(g=e.clipLine(g,o.x,o.y,r.x,r.y)));}for(const e of g){n.reset(e,.25*t);let o=0;o=n.length<=.5*t?1:Math.ceil(n.paddedLength/m)+1;for(let e=0;e0){if(e.transformMat4$1(l,l,t),this.fogState&&n&&"globe"!==a.name){const t=function(t,i,o,r,n,s){const a=s.calculateFogTileMatrix(n),l=[i,o,r];return e.transformMat4(l,l,a),C(t,l,s.pitch,s._fov)}(this.fogState,i,o,r,n.toUnwrapped(),this.transform);c=t>.9;}}else pt(l,l,t);const h=l[3];return {point:new e.Point((l[0]/h+1)/2*this.transform.width+mt,(-l[1]/h+1)/2*this.transform.height+mt),perspectiveRatio:Math.min(.5+this.transform.getCameraToCenterDistance(a)/h*.5,1.5),signedDistanceFromCamera:h,occluded:s&&l[2]>h||c}}isOffscreen(e,t,i,o){return i=this.screenRightBoundary||othis.screenBottomBoundary}isInsideGrid(e,t,i,o){return i>=0&&e=0&&te.collisionGroupID===t};}return this.collisionGroups[e]}}function Mt(t,i,o,r,n){const{horizontalAlign:s,verticalAlign:a}=e.getAnchorAlignment(t),l=-(s-.5)*i,c=-(a-.5)*o,h=e.evaluateVariableOffset(t,r);return new e.Point(l+h[0]*n,c+h[1]*n)}function It(t,i,o,r,n){const s=new e.Point(t,i);return o&&s._rotate(r?n:-n),s}class Pt{constructor(e,t,i,o,r){this.transform=e.clone(),this.projection=e.projection.name,this.collisionIndex=new ft(this.transform,r),this.placements={},this.opacities={},this.variableOffsets={},this.stale=!1,this.commitTime=0,this.fadeDuration=t,this.retainedQueryData={},this.collisionGroups=new Ct(i),this.collisionCircleArrays={},this.prevPlacement=o,o&&(o.prevPlacement=void 0),this.placedOrientations={};}getBucketParts(t,i,o,r){const n=o.getBucket(i),s=o.latestFeatureIndex;if(!n||!s||i.id!==n.layerIds[0])return;const a=n.layers[0].layout,l=o.collisionBoxArray,c=Math.pow(2,this.transform.zoom-o.tileID.overscaledZ),h=o.tileSize/e.EXTENT,u=o.tileID.toUnwrapped();this.transform.setProjection(n.projection);const _=(d=o.tileID,p=n.getProjection(),m=this.transform,p.name===this.projection?m.calculateProjMatrix(d.toUnwrapped()):gt(m,p,d));var d,p,m;const f="map"===a.get("text-pitch-alignment"),g="map"===a.get("text-rotation-alignment");i.compileFilter();const v=i.dynamicFilter(),x=i.dynamicFilterNeedsFeature(),y=this.transform.calculatePixelsToTileUnitsMatrix(o),b=tt(_,o.tileID.canonical,f,g,this.transform,n.getProjection(),y);let w=null;if(f){const t=it(_,o.tileID.canonical,f,g,this.transform,n.getProjection(),y);w=e.multiply([],this.transform.labelPlaneMatrix,t);}let T=null;v&&o.latestFeatureIndex&&(T={unwrappedTileID:u,dynamicFilter:v,dynamicFilterNeedsFeature:x,featureIndex:o.latestFeatureIndex}),this.retainedQueryData[n.bucketInstanceId]=new Et(n.bucketInstanceId,s,n.sourceLayerIndex,n.index,o.tileID);const E={bucket:n,layout:a,posMatrix:_,textLabelPlaneMatrix:b,labelToScreenMatrix:w,clippingData:T,scale:c,textPixelRatio:h,holdingForFade:o.holdingForFade(),collisionBoxArray:l,partiallyEvaluatedTextSize:e.evaluateSizeForZoom(n.textSizeData,this.transform.zoom),partiallyEvaluatedIconSize:e.evaluateSizeForZoom(n.iconSizeData,this.transform.zoom),collisionGroup:this.collisionGroups.get(n.sourceID)};if(r)for(const e of n.sortKeyRanges){const{sortKey:i,symbolInstanceStart:o,symbolInstanceEnd:r}=e;t.push({sortKey:i,symbolInstanceStart:o,symbolInstanceEnd:r,parameters:E});}else t.push({symbolInstanceStart:0,symbolInstanceEnd:n.symbolInstances.length,parameters:E});}attemptAnchorPlacement(e,t,i,o,r,n,s,a,l,c,h,u,_,d,p,m,f,g){const{textOffset0:v,textOffset1:x,crossTileID:y}=u,b=[v,x],w=Mt(e,i,o,b,r),T=this.collisionIndex.placeCollisionBox(d,r,t,It(w.x,w.y,n,s,this.transform.angle),h,a,l,c.predicate);if(m){const e=d.getSymbolInstanceIconSize(g,this.transform.zoom,u.placedIconSymbolIndex);if(0===this.collisionIndex.placeCollisionBox(d,e,m,It(w.x,w.y,n,s,this.transform.angle),h,a,l,c.predicate).box.length)return}if(T.box.length>0){let t;return this.prevPlacement&&this.prevPlacement.variableOffsets[y]&&this.prevPlacement.placements[y]&&this.prevPlacement.placements[y].text&&(t=this.prevPlacement.variableOffsets[y].anchor),this.variableOffsets[y]={textOffset:b,width:i,height:o,anchor:e,textScale:r,prevAnchor:t},this.markUsedJustification(d,e,u,p),d.allowVerticalPlacement&&(this.markUsedOrientation(d,p,u),this.placedOrientations[y]=p),{shift:w,placedGlyphBoxes:T}}}placeLayerBucketPart(t,i,o,r){const{bucket:n,layout:s,posMatrix:a,textLabelPlaneMatrix:l,labelToScreenMatrix:c,clippingData:h,textPixelRatio:u,holdingForFade:_,collisionBoxArray:d,partiallyEvaluatedTextSize:p,partiallyEvaluatedIconSize:m,collisionGroup:f}=t.parameters,g=s.get("text-optional"),v=s.get("icon-optional"),x=s.get("text-allow-overlap"),y=s.get("icon-allow-overlap"),b="map"===s.get("text-rotation-alignment"),w="map"===s.get("text-pitch-alignment"),T="none"!==s.get("icon-text-fit"),E="viewport-y"===s.get("symbol-z-order");this.transform.setProjection(n.projection);let C=x&&(y||!n.hasIconData()||v),M=y&&(x||!n.hasTextData()||g);!n.collisionArrays&&d&&n.deserializeCollisionBoxes(d),o&&r&&n.updateCollisionDebugBuffers(this.transform.zoom,d);const I=(t,r,d)=>{const{crossTileID:E,numVerticalGlyphVertices:I}=t;if(h){const o={zoom:this.transform.zoom,pitch:this.transform.pitch};let r=null;if(h.dynamicFilterNeedsFeature){const e=this.retainedQueryData[n.bucketInstanceId];r=h.featureIndex.loadFeature({featureIndex:t.featureIndex,bucketIndex:e.bucketIndex,sourceLayerIndex:e.sourceLayerIndex,layoutVertexArrayOffset:0});}if(!(0, h.dynamicFilter)(o,r,this.retainedQueryData[n.bucketInstanceId].tileID.canonical,new e.Point(t.tileAnchorX,t.tileAnchorY),this.transform.calculateDistanceTileData(h.unwrappedTileID)))return this.placements[E]=new wt(!1,!1,!1,!0),void i.add(E)}if(i.has(E))return;if(_)return void(this.placements[E]=new wt(!1,!1,!1));let P=!1,S=!1,D=!0,L=!1,A=!1,z=null,R={box:null,offscreen:null,occluded:null},O={box:null,offscreen:null,occluded:null},B=null,k=null,F=null,U=0,N=0,j=0;d.textFeatureIndex?U=d.textFeatureIndex:t.useRuntimeCollisionCircles&&(U=t.featureIndex),d.verticalTextFeatureIndex&&(N=d.verticalTextFeatureIndex);const G=e=>{e.tileID=this.retainedQueryData[n.bucketInstanceId].tileID;const t=this.transform.elevation;(t||e.elevation)&&(e.elevation=t?t.getAtTileOffset(e.tileID,e.tileAnchorX,e.tileAnchorY):0);},Z=d.textBox;if(Z){G(Z);const i=i=>{let o=e.WritingMode.horizontal;if(n.allowVerticalPlacement&&!i&&this.prevPlacement){const e=this.prevPlacement.placedOrientations[E];e&&(this.placedOrientations[E]=e,o=e,this.markUsedOrientation(n,o,t));}return o},o=(t,i)=>{if(n.allowVerticalPlacement&&I>0&&d.verticalTextBox){for(const o of n.writingModes)if(o===e.WritingMode.vertical?(R=i(),O=R):R=t(),R&&R.box&&R.box.length)break}else R=t();};if(s.get("text-variable-anchor")){let l=s.get("text-variable-anchor");if(this.prevPlacement&&this.prevPlacement.variableOffsets[E]){const e=this.prevPlacement.variableOffsets[E];l.indexOf(e.anchor)>0&&(l=l.filter((t=>t!==e.anchor)),l.unshift(e.anchor));}const c=(e,i,o)=>{const s=n.getSymbolInstanceTextSize(p,t,this.transform.zoom,r),c=(e.x2-e.x1)*s+2*e.padding,h=(e.y2-e.y1)*s+2*e.padding,_=T&&!y?i:null;_&&G(_);let d={box:[],offscreen:!1,occluded:!1};const g=x?2*l.length:l.length;for(let i=0;i=l.length,t,r,n,o,_,p,m);if(g&&(d=g.placedGlyphBoxes,d&&d.box&&d.box.length)){P=!0,z=g.shift;break}}return d};o((()=>c(Z,d.iconBox,e.WritingMode.horizontal)),(()=>{const t=d.verticalTextBox;return t&&G(t),n.allowVerticalPlacement&&!(R&&R.box&&R.box.length)&&I>0&&t?c(t,d.verticalIconBox,e.WritingMode.vertical):{box:null,offscreen:null,occluded:null}})),R&&(P=R.box,D=R.offscreen,L=R.occluded);const h=i(!(!R||!R.box));if(!P&&this.prevPlacement){const e=this.prevPlacement.variableOffsets[E];e&&(this.variableOffsets[E]=e,this.markUsedJustification(n,e.anchor,t,h));}}else {const s=(i,o)=>{const s=n.getSymbolInstanceTextSize(p,t,this.transform.zoom,r),l=this.collisionIndex.placeCollisionBox(n,s,i,new e.Point(0,0),x,u,a,f.predicate);return l&&l.box&&l.box.length&&(this.markUsedOrientation(n,o,t),this.placedOrientations[E]=o),l};o((()=>s(Z,e.WritingMode.horizontal)),(()=>{const t=d.verticalTextBox;return n.allowVerticalPlacement&&I>0&&t?(G(t),s(t,e.WritingMode.vertical)):{box:null,offscreen:null,occluded:null}})),i(!!(R&&R.box&&R.box.length));}}if(B=R,P=B&&B.box&&B.box.length>0,D=B&&B.offscreen,L=B&&B.occluded,t.useRuntimeCollisionCircles){const i=n.text.placedSymbolArray.get(t.centerJustifiedTextSymbolIndex>=0?t.centerJustifiedTextSymbolIndex:t.verticalPlacedTextSymbolIndex),r=e.evaluateSizeForFeature(n.textSizeData,p,i),h=s.get("text-padding");k=this.collisionIndex.placeCollisionCircles(n,x,i,n.lineVertexArray,n.glyphOffsetArray,r,a,l,c,o,w,f.predicate,t.collisionCircleDiameter*r/e.ONE_EM,h,this.retainedQueryData[n.bucketInstanceId].tileID),P=x||k.circles.length>0&&!k.collisionDetected,D=D&&k.offscreen,L=k.occluded;}if(d.iconFeatureIndex&&(j=d.iconFeatureIndex),d.iconBox){const i=i=>{G(i);const o=T&&z?It(z.x,z.y,b,w,this.transform.angle):new e.Point(0,0),r=n.getSymbolInstanceIconSize(m,this.transform.zoom,t.placedIconSymbolIndex);return this.collisionIndex.placeCollisionBox(n,r,i,o,y,u,a,f.predicate)};O&&O.box&&O.box.length&&d.verticalIconBox?(F=i(d.verticalIconBox),S=F.box.length>0):(F=i(d.iconBox),S=F.box.length>0),D=D&&F.offscreen,A=F.occluded;}const V=g||0===t.numHorizontalGlyphVertices&&0===I,W=v||0===t.numIconVertices;if(V||W?W?V||(S=S&&P):P=S&&P:S=P=S&&P,P&&B&&B.box&&this.collisionIndex.insertCollisionBox(B.box,s.get("text-ignore-placement"),n.bucketInstanceId,O&&O.box&&N?N:U,f.ID),S&&F&&this.collisionIndex.insertCollisionBox(F.box,s.get("icon-ignore-placement"),n.bucketInstanceId,j,f.ID),k&&(P&&this.collisionIndex.insertCollisionCircles(k.circles,s.get("text-ignore-placement"),n.bucketInstanceId,U,f.ID),o)){const e=n.bucketInstanceId;let t=this.collisionCircleArrays[e];void 0===t&&(t=this.collisionCircleArrays[e]=new Tt);for(let e=0;e=0;--t){const i=e[t];I(n.symbolInstances.get(i),i,n.collisionArrays[i]);}}else for(let e=t.symbolInstanceStart;e=0&&(t.text.placedSymbolArray.get(n).crossTileID=u>=0&&n!==u?0:c),s>=0&&(t.text.placedSymbolArray.get(s).crossTileID=u>=0&&s!==u?0:c),a>=0&&(t.text.placedSymbolArray.get(a).crossTileID=u>=0&&a!==u?0:c),l>=0&&(t.text.placedSymbolArray.get(l).crossTileID=u>=0&&l!==u?0:c);}markUsedOrientation(t,i,o){const r=i===e.WritingMode.horizontal||i===e.WritingMode.horizontalOnly?i:0,n=i===e.WritingMode.vertical?i:0,{leftJustifiedTextSymbolIndex:s,centerJustifiedTextSymbolIndex:a,rightJustifiedTextSymbolIndex:l,verticalPlacedTextSymbolIndex:c}=o,h=t.text.placedSymbolArray;s>=0&&(h.get(s).placedOrientation=r),a>=0&&(h.get(a).placedOrientation=r),l>=0&&(h.get(l).placedOrientation=r),c>=0&&(h.get(c).placedOrientation=n);}commit(e){this.commitTime=e,this.zoomAtLastRecencyCheck=this.transform.zoom;const t=this.prevPlacement;let i=!1;this.prevZoomAdjustment=t?t.zoomAdjustment(this.transform.zoom):0;const o=t?t.symbolFadeChange(e):1,r=t?t.opacities:{},n=t?t.variableOffsets:{},s=t?t.placedOrientations:{};for(const e in this.placements){const t=this.placements[e],n=r[e];n?(this.opacities[e]=new bt(n,o,t.text,t.icon,null,t.clipped),i=i||t.text!==n.text.placed||t.icon!==n.icon.placed):(this.opacities[e]=new bt(null,o,t.text,t.icon,t.skipFade,t.clipped),i=i||t.text||t.icon);}for(const e in r){const t=r[e];if(!this.opacities[e]){const r=new bt(t,o,!1,!1);r.isHidden()||(this.opacities[e]=r,i=i||t.text.placed||t.icon.placed);}}for(const e in n)this.variableOffsets[e]||!this.opacities[e]||this.opacities[e].isHidden()||(this.variableOffsets[e]=n[e]);for(const e in s)this.placedOrientations[e]||!this.opacities[e]||this.opacities[e].isHidden()||(this.placedOrientations[e]=s[e]);i?this.lastPlacementChangeTime=e:"number"!=typeof this.lastPlacementChangeTime&&(this.lastPlacementChangeTime=t?t.lastPlacementChangeTime:e);}updateLayerOpacities(e,t){const i=new Set;for(const o of t){const t=o.getBucket(e);t&&o.latestFeatureIndex&&e.id===t.layerIds[0]&&this.updateBucketOpacities(t,i,o.collisionBoxArray);}}updateBucketOpacities(t,i,o){t.hasTextData()&&t.text.opacityVertexArray.clear(),t.hasIconData()&&t.icon.opacityVertexArray.clear(),t.hasIconCollisionBoxData()&&t.iconCollisionBox.collisionVertexArray.clear(),t.hasTextCollisionBoxData()&&t.textCollisionBox.collisionVertexArray.clear();const r=t.layers[0].layout,n=!!t.layers[0].dynamicFilter(),s=new bt(null,0,!1,!1,!0),a=r.get("text-allow-overlap"),l=r.get("icon-allow-overlap"),c=r.get("text-variable-anchor"),h="map"===r.get("text-rotation-alignment"),u="map"===r.get("text-pitch-alignment"),_="none"!==r.get("icon-text-fit"),d=new bt(null,0,a&&(l||!t.hasIconData()||r.get("icon-optional")),l&&(a||!t.hasTextData()||r.get("text-optional")),!0);!t.collisionArrays&&o&&(t.hasIconCollisionBoxData()||t.hasTextCollisionBoxData())&&t.deserializeCollisionBoxes(o);const p=(e,t,i)=>{for(let o=0;o0||l>0,b=g>0,w=this.placedOrientations[f],T=w===e.WritingMode.vertical,E=w===e.WritingMode.horizontal||w===e.WritingMode.horizontalOnly;if(!y&&!b||x.isHidden()||m++,y){const e=kt(x.text);p(t.text,a,T?Ft:e),p(t.text,l,E?Ft:e);const i=x.text.isHidden(),{leftJustifiedTextSymbolIndex:o,centerJustifiedTextSymbolIndex:n,rightJustifiedTextSymbolIndex:s,verticalPlacedTextSymbolIndex:c}=r,h=t.text.placedSymbolArray,u=i||T?1:0;o>=0&&(h.get(o).hidden=u),n>=0&&(h.get(n).hidden=u),s>=0&&(h.get(s).hidden=u),c>=0&&(h.get(c).hidden=i||E?1:0);const _=this.variableOffsets[f];_&&this.markUsedJustification(t,_.anchor,r,w);const d=this.placedOrientations[f];d&&(this.markUsedJustification(t,"left",r,d),this.markUsedOrientation(t,d,r));}if(b){const e=kt(x.icon),{placedIconSymbolIndex:i,verticalPlacedIconSymbolIndex:o}=r,n=t.icon.placedSymbolArray,s=x.icon.isHidden()?1:0;i>=0&&(p(t.icon,g,T?Ft:e),n.get(i).hidden=s),o>=0&&(p(t.icon,r.numVerticalIconVertices,E?Ft:e),n.get(o).hidden=s);}if(t.hasIconCollisionBoxData()||t.hasTextCollisionBoxData()){const i=t.collisionArrays[o];if(i){let o=new e.Point(0,0),r=!0;if(i.textBox||i.verticalTextBox){if(c){const e=this.variableOffsets[f];e?(o=Mt(e.anchor,e.width,e.height,e.textOffset,e.textScale),h&&o._rotate(u?this.transform.angle:-this.transform.angle)):r=!1;}n&&(r=!x.clipped),i.textBox&&St(t.textCollisionBox.collisionVertexArray,x.text.placed,!r||T,o.x,o.y),i.verticalTextBox&&St(t.textCollisionBox.collisionVertexArray,x.text.placed,!r||E,o.x,o.y);}const s=r&&Boolean(!E&&i.verticalIconBox);i.iconBox&&St(t.iconCollisionBox.collisionVertexArray,x.icon.placed,s,_?o.x:0,_?o.y:0),i.verticalIconBox&&St(t.iconCollisionBox.collisionVertexArray,x.icon.placed,!s,_?o.x:0,_?o.y:0);}}}if(t.fullyClipped=0===m,t.sortFeatures(this.transform.angle),this.retainedQueryData[t.bucketInstanceId]&&(this.retainedQueryData[t.bucketInstanceId].featureSortOrder=t.featureSortOrder),t.hasTextData()&&t.text.opacityVertexBuffer&&t.text.opacityVertexBuffer.updateData(t.text.opacityVertexArray),t.hasIconData()&&t.icon.opacityVertexBuffer&&t.icon.opacityVertexBuffer.updateData(t.icon.opacityVertexArray),t.hasIconCollisionBoxData()&&t.iconCollisionBox.collisionVertexBuffer&&t.iconCollisionBox.collisionVertexBuffer.updateData(t.iconCollisionBox.collisionVertexArray),t.hasTextCollisionBoxData()&&t.textCollisionBox.collisionVertexBuffer&&t.textCollisionBox.collisionVertexBuffer.updateData(t.textCollisionBox.collisionVertexArray),t.bucketInstanceId in this.collisionCircleArrays){const e=this.collisionCircleArrays[t.bucketInstanceId];t.placementInvProjMatrix=e.invProjMatrix,t.placementViewportMatrix=e.viewportMatrix,t.collisionCircleArray=e.circles,delete this.collisionCircleArrays[t.bucketInstanceId];}}symbolFadeChange(e){return 0===this.fadeDuration?1:(e-this.commitTime)/this.fadeDuration+this.prevZoomAdjustment}zoomAdjustment(e){return Math.max(0,(this.transform.zoom-e)/1.5)}hasTransitions(e){return this.stale||e-this.lastPlacementChangeTimee}setStale(){this.stale=!0;}}function St(e,t,i,o,r){e.emplaceBack(t?1:0,i?1:0,o||0,r||0),e.emplaceBack(t?1:0,i?1:0,o||0,r||0),e.emplaceBack(t?1:0,i?1:0,o||0,r||0),e.emplaceBack(t?1:0,i?1:0,o||0,r||0);}const Dt=Math.pow(2,25),Lt=Math.pow(2,24),At=Math.pow(2,17),zt=Math.pow(2,16),Rt=Math.pow(2,9),Ot=Math.pow(2,8),Bt=Math.pow(2,1);function kt(e){if(0===e.opacity&&!e.placed)return 0;if(1===e.opacity&&e.placed)return 4294967295;const t=e.placed?1:0,i=Math.floor(127*e.opacity);return i*Dt+t*Lt+i*At+t*zt+i*Rt+t*Ot+i*Bt+t}const Ft=0;class Ut{constructor(e){this._sortAcrossTiles="viewport-y"!==e.layout.get("symbol-z-order")&&void 0!==e.layout.get("symbol-sort-key").constantOr(1),this._currentTileIndex=0,this._currentPartIndex=0,this._seenCrossTileIDs=new Set,this._bucketParts=[];}continuePlacement(e,t,i,o,r){const n=this._bucketParts;for(;this._currentTileIndexe.sortKey-t.sortKey)));this._currentPartIndex{const t=e.exported.now()-r;return !this._forceFullPlacement&&t>2};for(;this._currentPlacementIndex>=0;){const e=i[t[this._currentPlacementIndex]],r=this.placement.collisionIndex.transform.zoom;if("symbol"===e.type&&(!e.minzoom||e.minzoom<=r)&&(!e.maxzoom||e.maxzoom>r)){if(this._inProgressLayer||(this._inProgressLayer=new Ut(e)),this._inProgressLayer.continuePlacement(o[e.source],this.placement,this._showCollisionBoxes,e,n))return;delete this._inProgressLayer;}this._currentPlacementIndex--;}this._done=!0;}commit(e){return this.placement.commit(e),this.placement}}const jt=512/e.EXTENT/2;class Gt{constructor(t,i,o){this.tileID=t,this.bucketInstanceId=o,this.index=new e.KDBush(i.length,16,Int32Array),this.keys=[],this.crossTileIDs=[];const r=t.canonical.x*e.EXTENT,n=t.canonical.y*e.EXTENT;for(let e=0;ee.overscaledZ)for(const i in r){const n=r[i];n.tileID.isChildOf(e)&&n.findMatches(t.symbolInstances,e,o);}else {const n=r[e.scaledTo(Number(i)).key];n&&n.findMatches(t.symbolInstances,e,o);}}for(let e=0;e{t[e]=!0;}));for(const e in this.layerIndexes)t[e]||delete this.layerIndexes[e];}}const Xt=(t,i)=>e.emitValidationErrors(t,i&&i.filter((e=>"source.canvas"!==e.identifier))),qt=e.pick(Ge,["addLayer","removeLayer","setPaintProperty","setLayoutProperty","setFilter","addSource","removeSource","setLayerZoomRange","setLight","setTransition","setGeoJSONSourceData","setTerrain","setFog","setProjection"]),$t=e.pick(Ge,["setCenter","setZoom","setBearing","setPitch"]),Ht={version:8,layers:[],sources:{}},Yt={fill:!0,line:!0,background:!0,hillshade:!0,raster:!0};class Kt extends e.Evented{constructor(t,i={}){super(),this.map=t,this.dispatcher=new S(Ue(),this),this.imageManager=new y,this.imageManager.setEventedParent(this),this.glyphManager=new e.GlyphManager(t._requestManager,i.localFontFamily?e.LocalGlyphMode.all:i.localIdeographFontFamily?e.LocalGlyphMode.ideographs:e.LocalGlyphMode.none,i.localFontFamily||i.localIdeographFontFamily),this.crossTileSymbolIndex=new Wt,this._layers={},this._num3DLayers=0,this._numSymbolLayers=0,this._numCircleLayers=0,this._serializedLayers={},this._sourceCaches={},this._otherSourceCaches={},this._symbolSourceCaches={},this._loaded=!1,this._availableImages=[],this._order=[],this._drapedFirstOrder=[],this._markersNeedUpdate=!1,this._resetUpdates(),this.dispatcher.broadcast("setReferrer",e.getReferrer());const o=this;this._rtlTextPluginCallback=Kt.registerForPluginStateChange((t=>{o.dispatcher.broadcast("syncRTLPluginState",{pluginStatus:t.pluginStatus,pluginURL:t.pluginURL},((t,i)=>{if(e.triggerPluginCompletionEvent(t),i&&i.every((e=>e)))for(const e in o._sourceCaches){const t=o._sourceCaches[e],i=t.getSource().type;"vector"!==i&&"geojson"!==i||t.reload();}}));})),this.on("data",(e=>{if("source"!==e.dataType||"metadata"!==e.sourceDataType)return;const t=this.getSource(e.sourceId);if(t&&t.vectorLayerIds)for(const e in this._layers){const i=this._layers[e];i.source===t.id&&this._validateLayer(i);}}));}loadURL(t,i={}){this.fire(new e.Event("dataloading",{dataType:"style"}));const o="boolean"==typeof i.validate?i.validate:!e.isMapboxURL(t);t=this.map._requestManager.normalizeStyleURL(t,i.accessToken);const r=this.map._requestManager.transformRequest(t,e.ResourceType.Style);this._request=e.getJSON(r,((t,i)=>{this._request=null,t?this.fire(new e.ErrorEvent(t)):i&&this._load(i,o);}));}loadJSON(t,i={}){this.fire(new e.Event("dataloading",{dataType:"style"})),this._request=e.exported.frame((()=>{this._request=null,this._load(t,!1!==i.validate);}));}loadEmpty(){this.fire(new e.Event("dataloading",{dataType:"style"})),this._load(Ht,!1);}_updateLayerCount(e,t){const i=t?1:-1;e.is3D()&&(this._num3DLayers+=i),"circle"===e.type&&(this._numCircleLayers+=i),"symbol"===e.type&&(this._numSymbolLayers+=i);}_load(t,i){if(i&&Xt(this,e.validateStyle(t)))return;this._loaded=!0,this.stylesheet=e.clone$1(t),this._updateMapProjection();for(const e in t.sources)this.addSource(e,t.sources[e],{validate:!1});this._changed=!1,t.sprite?this._loadSprite(t.sprite):(this.imageManager.setLoaded(!0),this.dispatcher.broadcast("spriteLoaded",!0)),this.glyphManager.setURL(t.glyphs);const o=je(this.stylesheet.layers);this._order=o.map((e=>e.id)),this._layers={},this._serializedLayers={};for(const t of o){const i=e.createStyleLayer(t);i.setEventedParent(this,{layer:{id:i.id}}),this._layers[i.id]=i,this._serializedLayers[i.id]=i.serialize(),this._updateLayerCount(i,!0);}this.dispatcher.broadcast("setLayers",this._serializeLayers(this._order)),this.light=new w(this.stylesheet.light),this.stylesheet.terrain&&!this.terrainSetForDrapingOnly()&&this._createTerrain(this.stylesheet.terrain,1),this.stylesheet.fog&&this._createFog(this.stylesheet.fog),this._updateDrapeFirstLayers(),this.fire(new e.Event("data",{dataType:"style"})),this.fire(new e.Event("style.load"));}terrainSetForDrapingOnly(){return !!this.terrain&&0===this.terrain.drapeRenderMode}setProjection(e){e?this.stylesheet.projection=e:delete this.stylesheet.projection,this._updateMapProjection();}applyProjectionUpdate(){this._loaded&&(this.dispatcher.broadcast("setProjection",this.map.transform.projectionOptions),this.map.transform.projection.requiresDraping?this.getTerrain()||this.stylesheet.terrain||this.setTerrainForDraping():this.terrainSetForDrapingOnly()&&this.setTerrain(null));}_updateMapProjection(){this.map._useExplicitProjection?this.applyProjectionUpdate():this.map._prioritizeAndUpdateProjection(null,this.stylesheet.projection);}_loadSprite(t){this._spriteRequest=function(t,i,o){let r,n,s;const a=e.exported.devicePixelRatio>1?"@2x":"";let l=e.getJSON(i.transformRequest(i.normalizeSpriteURL(t,a,".json"),e.ResourceType.SpriteJSON),((e,t)=>{l=null,s||(s=e,r=t,h());})),c=e.getImage(i.transformRequest(i.normalizeSpriteURL(t,a,".png"),e.ResourceType.SpriteImage),((e,t)=>{c=null,s||(s=e,n=t,h());}));function h(){if(s)o(s);else if(r&&n){const t=e.exported.getImageData(n),i={};for(const o in r){const{width:n,height:s,x:a,y:l,sdf:c,pixelRatio:h,stretchX:u,stretchY:_,content:d}=r[o],p=new e.RGBAImage({width:n,height:s});e.RGBAImage.copy(t,p,{x:a,y:l},{x:0,y:0},{width:n,height:s}),i[o]={data:p,pixelRatio:h,sdf:c,stretchX:u,stretchY:_,content:d};}o(null,i);}}return {cancel(){l&&(l.cancel(),l=null),c&&(c.cancel(),c=null);}}}(t,this.map._requestManager,((t,i)=>{if(this._spriteRequest=null,t)this.fire(new e.ErrorEvent(t));else if(i)for(const e in i)this.imageManager.addImage(e,i[e]);this.imageManager.setLoaded(!0),this._availableImages=this.imageManager.listImages(),this.dispatcher.broadcast("setImages",this._availableImages),this.dispatcher.broadcast("spriteLoaded",!0),this.fire(new e.Event("data",{dataType:"style"}));}));}_validateLayer(t){const i=this.getSource(t.source);if(!i)return;const o=t.sourceLayer;o&&("geojson"===i.type||i.vectorLayerIds&&-1===i.vectorLayerIds.indexOf(o))&&this.fire(new e.ErrorEvent(new Error(`Source layer "${o}" does not exist on source "${i.id}" as specified by style layer "${t.id}"`)));}loaded(){if(!this._loaded)return !1;if(Object.keys(this._updatedSources).length)return !1;for(const e in this._sourceCaches)if(!this._sourceCaches[e].loaded())return !1;return !!this.imageManager.isLoaded()}_serializeLayers(e){const t=[];for(const i of e){const e=this._layers[i];"custom"!==e.type&&t.push(e.serialize());}return t}hasTransitions(){if(this.light&&this.light.hasTransition())return !0;if(this.fog&&this.fog.hasTransition())return !0;for(const e in this._sourceCaches)if(this._sourceCaches[e].hasTransition())return !0;for(const e in this._layers)if(this._layers[e].hasTransition())return !0;return !1}get order(){return this.map._optimizeForTerrain&&this.terrain?this._drapedFirstOrder:this._order}isLayerDraped(e){return !!this.terrain&&("function"==typeof e.isLayerDraped?e.isLayerDraped():Yt[e.type])}_checkLoaded(){if(!this._loaded)throw new Error("Style is not done loading")}update(t){if(!this._loaded)return;const i=this._changed;if(this._changed){const e=Object.keys(this._updatedLayers),i=Object.keys(this._removedLayers);(e.length||i.length)&&this._updateWorkerLayers(e,i);for(const e in this._updatedSources){const t=this._updatedSources[e];"reload"===t?this._reloadSource(e):"clear"===t&&this._clearSource(e);}this._updateTilesForChangedImages();for(const e in this._updatedPaintProps)this._layers[e].updateTransitions(t);this.light.updateTransitions(t),this.fog&&this.fog.updateTransitions(t),this._resetUpdates();}const o={};for(const e in this._sourceCaches){const t=this._sourceCaches[e];o[e]=t.used,t.used=!1;}for(const e of this._order){const i=this._layers[e];if(i.recalculate(t,this._availableImages),!i.isHidden(t.zoom)){const e=this._getLayerSourceCache(i);e&&(e.used=!0);}const o=this.map.painter;if(o){const e=i.getProgramIds();if(!e)continue;const r=i.getProgramConfiguration(t.zoom);for(const t of e)o.useProgram(t,r);}}for(const t in o){const i=this._sourceCaches[t];o[t]!==i.used&&i.getSource().fire(new e.Event("data",{sourceDataType:"visibility",dataType:"source",sourceId:i.getSource().id}));}this.light.recalculate(t),this.terrain&&this.terrain.recalculate(t),this.fog&&this.fog.recalculate(t),this.z=t.zoom,this._markersNeedUpdate&&(this._updateMarkersOpacity(),this._markersNeedUpdate=!1),i&&this.fire(new e.Event("data",{dataType:"style"}));}_updateTilesForChangedImages(){const e=Object.keys(this._changedImages);if(e.length){for(const t in this._sourceCaches)this._sourceCaches[t].reloadTilesForDependencies(["icons","patterns"],e);this._changedImages={};}}_updateWorkerLayers(e,t){this.dispatcher.broadcast("updateLayers",{layers:this._serializeLayers(e),removedIds:t});}_resetUpdates(){this._changed=!1,this._updatedLayers={},this._removedLayers={},this._updatedSources={},this._updatedPaintProps={},this._changedImages={};}setState(i){if(this._checkLoaded(),Xt(this,e.validateStyle(i)))return !1;(i=e.clone$1(i)).layers=je(i.layers);const o=function(e,i){if(!e)return [{command:Ge.setStyle,args:[i]}];let o=[];try{if(!t(e.version,i.version))return [{command:Ge.setStyle,args:[i]}];t(e.center,i.center)||o.push({command:Ge.setCenter,args:[i.center]}),t(e.zoom,i.zoom)||o.push({command:Ge.setZoom,args:[i.zoom]}),t(e.bearing,i.bearing)||o.push({command:Ge.setBearing,args:[i.bearing]}),t(e.pitch,i.pitch)||o.push({command:Ge.setPitch,args:[i.pitch]}),t(e.sprite,i.sprite)||o.push({command:Ge.setSprite,args:[i.sprite]}),t(e.glyphs,i.glyphs)||o.push({command:Ge.setGlyphs,args:[i.glyphs]}),t(e.transition,i.transition)||o.push({command:Ge.setTransition,args:[i.transition]}),t(e.light,i.light)||o.push({command:Ge.setLight,args:[i.light]}),t(e.fog,i.fog)||o.push({command:Ge.setFog,args:[i.fog]}),t(e.projection,i.projection)||o.push({command:Ge.setProjection,args:[i.projection]});const r={},n=[];!function(e,i,o,r){let n;for(n in i=i||{},e=e||{})e.hasOwnProperty(n)&&(i.hasOwnProperty(n)||Ve(n,o,r));for(n in i){if(!i.hasOwnProperty(n))continue;const s=i[n];e.hasOwnProperty(n)?t(e[n],s)||("geojson"===e[n].type&&"geojson"===s.type&&Xe(e,i,n)?o.push({command:Ge.setGeoJSONSourceData,args:[n,s.data]}):We(n,i,o,r)):Ze(n,i,o);}}(e.sources,i.sources,n,r);const s=[];e.layers&&e.layers.forEach((e=>{e.source&&r[e.source]?o.push({command:Ge.removeLayer,args:[e.id]}):s.push(e);}));let a=e.terrain;a&&r[a.source]&&(o.push({command:Ge.setTerrain,args:[void 0]}),a=void 0),o=o.concat(n),t(a,i.terrain)||o.push({command:Ge.setTerrain,args:[i.terrain]}),function(e,i,o){i=i||[];const r=(e=e||[]).map($e),n=i.map($e),s=e.reduce(He,{}),a=i.reduce(He,{}),l=r.slice(),c=Object.create(null);let h,u,_,d,p,m,f;for(h=0,u=0;h!(e.command in $t)));if(0===o.length)return !1;const r=o.filter((e=>!(e.command in qt)));if(r.length>0)throw new Error(`Unimplemented: ${r.map((e=>e.command)).join(", ")}.`);return o.forEach((e=>{"setTransition"!==e.command&&"setProjection"!==e.command&&this[e.command].apply(this,e.args);})),this.stylesheet=i,this._updateMapProjection(),!0}addImage(t,i){return this.getImage(t)?this.fire(new e.ErrorEvent(new Error("An image with this name already exists."))):(this.imageManager.addImage(t,i),this._afterImageUpdated(t),this)}updateImage(e,t){this.imageManager.updateImage(e,t);}getImage(e){return this.imageManager.getImage(e)}removeImage(t){return this.getImage(t)?(this.imageManager.removeImage(t),this._afterImageUpdated(t),this):this.fire(new e.ErrorEvent(new Error("No image with this name exists.")))}_afterImageUpdated(t){this._availableImages=this.imageManager.listImages(),this._changedImages[t]=!0,this._changed=!0,this.dispatcher.broadcast("setImages",this._availableImages),this.fire(new e.Event("data",{dataType:"style"}));}listImages(){return this._checkLoaded(),this._availableImages.slice()}addSource(t,i,o={}){if(this._checkLoaded(),void 0!==this.getSource(t))throw new Error("There is already a source with this ID");if(!i.type)throw new Error(`The type property must be defined, but only the following properties were given: ${Object.keys(i).join(", ")}.`);if(["vector","raster","geojson","video","image"].indexOf(i.type)>=0&&this._validate(e.validateSource,`sources.${t}`,i,null,o))return;this.map&&this.map._collectResourceTiming&&(i.collectResourceTiming=!0);const r=De(t,i,this.dispatcher,this);r.setEventedParent(this,(()=>({isSourceLoaded:this._isSourceCacheLoaded(t),source:r.serialize(),sourceId:t})));const n=i=>{const o=(i?"symbol:":"other:")+t,n=this._sourceCaches[o]=new e.SourceCache(o,r,i);(i?this._symbolSourceCaches:this._otherSourceCaches)[t]=n,n.style=this,n.onAdd(this.map);};n(!1),"vector"!==i.type&&"geojson"!==i.type||n(!0),r.onAdd&&r.onAdd(this.map),this._changed=!0;}removeSource(t){this._checkLoaded();const i=this.getSource(t);if(!i)throw new Error("There is no source with this ID");for(const i in this._layers)if(this._layers[i].source===t)return this.fire(new e.ErrorEvent(new Error(`Source "${t}" cannot be removed while layer "${i}" is using it.`)));if(this.terrain&&this.terrain.get().source===t)return this.fire(new e.ErrorEvent(new Error(`Source "${t}" cannot be removed while terrain is using it.`)));const o=this._getSourceCaches(t);for(const t of o)delete this._sourceCaches[t.id],delete this._updatedSources[t.id],t.fire(new e.Event("data",{sourceDataType:"metadata",dataType:"source",sourceId:t.getSource().id})),t.setEventedParent(null),t.clearTiles();return delete this._otherSourceCaches[t],delete this._symbolSourceCaches[t],i.setEventedParent(null),i.onRemove&&i.onRemove(this.map),this._changed=!0,this}setGeoJSONSourceData(e,t){this._checkLoaded(),this.getSource(e).setData(t),this._changed=!0;}getSource(e){const t=this._getSourceCache(e);return t&&t.getSource()}_getSources(){const e=[];for(const t in this._otherSourceCaches){const i=this._getSourceCache(t);i&&e.push(i.getSource());}return e}addLayer(t,i,o={}){this._checkLoaded();const r=t.id;if(this.getLayer(r))return void this.fire(new e.ErrorEvent(new Error(`Layer with id "${r}" already exists on this map`)));let n;if("custom"===t.type){if(Xt(this,e.validateCustomStyleLayer(t)))return;n=e.createStyleLayer(t);}else {if("object"==typeof t.source&&(this.addSource(r,t.source),t=e.clone$1(t),t=e.extend(t,{source:r})),this._validate(e.validateLayer,`layers.${r}`,t,{arrayIndex:-1},o))return;n=e.createStyleLayer(t),this._validateLayer(n),n.setEventedParent(this,{layer:{id:r}}),this._serializedLayers[n.id]=n.serialize(),this._updateLayerCount(n,!0);}const s=i?this._order.indexOf(i):this._order.length;if(i&&-1===s)return void this.fire(new e.ErrorEvent(new Error(`Layer with id "${i}" does not exist on this map.`)));this._order.splice(s,0,r),this._layerOrderChanged=!0,this._layers[r]=n;const a=this._getLayerSourceCache(n);if(this._removedLayers[r]&&n.source&&a&&"custom"!==n.type){const e=this._removedLayers[r];delete this._removedLayers[r],e.type!==n.type?this._updatedSources[n.source]="clear":(this._updatedSources[n.source]="reload",a.pause());}this._updateLayer(n),n.onAdd&&n.onAdd(this.map),this._updateDrapeFirstLayers();}moveLayer(t,i){if(this._checkLoaded(),this._changed=!0,!this._layers[t])return void this.fire(new e.ErrorEvent(new Error(`The layer '${t}' does not exist in the map's style and cannot be moved.`)));if(t===i)return;const o=this._order.indexOf(t);this._order.splice(o,1);const r=i?this._order.indexOf(i):this._order.length;i&&-1===r?this.fire(new e.ErrorEvent(new Error(`Layer with id "${i}" does not exist on this map.`))):(this._order.splice(r,0,t),this._layerOrderChanged=!0,this._updateDrapeFirstLayers());}removeLayer(t){this._checkLoaded();const i=this._layers[t];if(!i)return void this.fire(new e.ErrorEvent(new Error(`The layer '${t}' does not exist in the map's style and cannot be removed.`)));i.setEventedParent(null),this._updateLayerCount(i,!1);const o=this._order.indexOf(t);this._order.splice(o,1),this._layerOrderChanged=!0,this._changed=!0,this._removedLayers[t]=i,delete this._layers[t],delete this._serializedLayers[t],delete this._updatedLayers[t],delete this._updatedPaintProps[t],i.onRemove&&i.onRemove(this.map),this._updateDrapeFirstLayers();}getLayer(e){return this._layers[e]}hasLayer(e){return e in this._layers}hasLayerType(e){for(const t in this._layers)if(this._layers[t].type===e)return !0;return !1}setLayerZoomRange(t,i,o){this._checkLoaded();const r=this.getLayer(t);r?r.minzoom===i&&r.maxzoom===o||(null!=i&&(r.minzoom=i),null!=o&&(r.maxzoom=o),this._updateLayer(r)):this.fire(new e.ErrorEvent(new Error(`The layer '${t}' does not exist in the map's style and cannot have zoom extent.`)));}setFilter(i,o,r={}){this._checkLoaded();const n=this.getLayer(i);if(n){if(!t(n.filter,o))return null==o?(n.filter=void 0,void this._updateLayer(n)):void(this._validate(e.validateFilter,`layers.${n.id}.filter`,o,{layerType:n.type},r)||(n.filter=e.clone$1(o),this._updateLayer(n)))}else this.fire(new e.ErrorEvent(new Error(`The layer '${i}' does not exist in the map's style and cannot be filtered.`)));}getFilter(t){const i=this.getLayer(t);return i&&e.clone$1(i.filter)}setLayoutProperty(i,o,r,n={}){this._checkLoaded();const s=this.getLayer(i);s?t(s.getLayoutProperty(o),r)||(s.setLayoutProperty(o,r,n),this._updateLayer(s)):this.fire(new e.ErrorEvent(new Error(`The layer '${i}' does not exist in the map's style and cannot be styled.`)));}getLayoutProperty(t,i){const o=this.getLayer(t);if(o)return o.getLayoutProperty(i);this.fire(new e.ErrorEvent(new Error(`The layer '${t}' does not exist in the map's style.`)));}setPaintProperty(i,o,r,n={}){this._checkLoaded();const s=this.getLayer(i);s?t(s.getPaintProperty(o),r)||(s.setPaintProperty(o,r,n)&&this._updateLayer(s),this._changed=!0,this._updatedPaintProps[i]=!0):this.fire(new e.ErrorEvent(new Error(`The layer '${i}' does not exist in the map's style and cannot be styled.`)));}getPaintProperty(e,t){const i=this.getLayer(e);return i&&i.getPaintProperty(t)}setFeatureState(t,i){this._checkLoaded();const o=t.source,r=t.sourceLayer,n=this.getSource(o);if(!n)return void this.fire(new e.ErrorEvent(new Error(`The source '${o}' does not exist in the map's style.`)));const s=n.type;if("geojson"===s&&r)return void this.fire(new e.ErrorEvent(new Error("GeoJSON sources cannot have a sourceLayer parameter.")));if("vector"===s&&!r)return void this.fire(new e.ErrorEvent(new Error("The sourceLayer parameter must be provided for vector source types.")));void 0===t.id&&this.fire(new e.ErrorEvent(new Error("The feature id parameter must be provided.")));const a=this._getSourceCaches(o);for(const e of a)e.setFeatureState(r,t.id,i);}removeFeatureState(t,i){this._checkLoaded();const o=t.source,r=this.getSource(o);if(!r)return void this.fire(new e.ErrorEvent(new Error(`The source '${o}' does not exist in the map's style.`)));const n=r.type,s="vector"===n?t.sourceLayer:void 0;if("vector"===n&&!s)return void this.fire(new e.ErrorEvent(new Error("The sourceLayer parameter must be provided for vector source types.")));if(i&&"string"!=typeof t.id&&"number"!=typeof t.id)return void this.fire(new e.ErrorEvent(new Error("A feature id is required to remove its specific state property.")));const a=this._getSourceCaches(o);for(const e of a)e.removeFeatureState(s,t.id,i);}getFeatureState(t){this._checkLoaded();const i=t.source,o=t.sourceLayer,r=this.getSource(i);if(r){if("vector"!==r.type||o)return void 0===t.id&&this.fire(new e.ErrorEvent(new Error("The feature id parameter must be provided."))),this._getSourceCaches(i)[0].getFeatureState(o,t.id);this.fire(new e.ErrorEvent(new Error("The sourceLayer parameter must be provided for vector source types.")));}else this.fire(new e.ErrorEvent(new Error(`The source '${i}' does not exist in the map's style.`)));}getTransition(){return e.extend({duration:300,delay:0},this.stylesheet&&this.stylesheet.transition)}serialize(){const t={};for(const e in this._sourceCaches){const i=this._sourceCaches[e].getSource();t[i.id]||(t[i.id]=i.serialize());}return e.filterObject({version:this.stylesheet.version,name:this.stylesheet.name,metadata:this.stylesheet.metadata,light:this.stylesheet.light,terrain:this.getTerrain()||void 0,fog:this.stylesheet.fog,center:this.stylesheet.center,zoom:this.stylesheet.zoom,bearing:this.stylesheet.bearing,pitch:this.stylesheet.pitch,sprite:this.stylesheet.sprite,glyphs:this.stylesheet.glyphs,transition:this.stylesheet.transition,projection:this.stylesheet.projection,sources:t,layers:this._serializeLayers(this._order)},(e=>void 0!==e))}_updateLayer(e){this._updatedLayers[e.id]=!0;const t=this._getLayerSourceCache(e);e.source&&!this._updatedSources[e.source]&&t&&"raster"!==t.getSource().type&&(this._updatedSources[e.source]="reload",t.pause()),this._changed=!0,e.invalidateCompiledFilter();}_flattenAndSortRenderedFeatures(e){const t=e=>"fill-extrusion"===this._layers[e].type,i={},o=[];for(let r=this._order.length-1;r>=0;r--){const n=this._order[r];if(t(n)){i[n]=r;for(const t of e){const e=t[n];if(e)for(const t of e)o.push(t);}}}o.sort(((e,t)=>t.intersectionZ-e.intersectionZ));const r=[];for(let n=this._order.length-1;n>=0;n--){const s=this._order[n];if(t(s))for(let e=o.length-1;e>=0;e--){const t=o[e].feature;if(i[t.layer.id]{const t=this.getLayer(e);return t&&t.is3D()})):this.has3DLayers(),a=L.createFromScreenPoints(t,o);for(const e in this._sourceCaches){const t=this._sourceCaches[e].getSource().id;i.layers&&!r[t]||n.push(Ae(this._sourceCaches[e],this._layers,this._serializedLayers,a,i,o,s,!!this.map._showQueryGeometry));}return this.placement&&n.push(function(e,t,i,o,r,n,s){const a={},l=n.queryRenderedSymbols(o),c=[];for(const e of Object.keys(l).map(Number))c.push(s[e]);c.sort(Re);for(const i of c){const o=i.featureIndex.lookupSymbolFeatures(l[i.bucketInstanceId],t,i.bucketIndex,i.sourceLayerIndex,r.filter,r.layers,r.availableImages,e);for(const e in o){const t=a[e]=a[e]||[],r=o[e];r.sort(((e,t)=>{const o=i.featureSortOrder;if(o){const i=o.indexOf(e.featureIndex);return o.indexOf(t.featureIndex)-i}return t.featureIndex-e.featureIndex}));for(const e of r)t.push(e);}}for(const t in a)a[t].forEach((o=>{const r=o.feature,n=i(e[t]);if(!n)return;const s=n.getFeatureState(r.layer["source-layer"],r.id);r.source=r.layer.source,r.layer["source-layer"]&&(r.sourceLayer=r.layer["source-layer"]),r.state=s;}));return a}(this._layers,this._serializedLayers,this._getLayerSourceCache.bind(this),a.screenGeometry,i,this.placement.collisionIndex,this.placement.retainedQueryData)),this._flattenAndSortRenderedFeatures(n)}querySourceFeatures(t,i){i&&i.filter&&this._validate(e.validateFilter,"querySourceFeatures.filter",i.filter,null,i);const o=this._getSourceCaches(t);let r=[];for(const e of o)r=r.concat(ze(e,i));return r}addSourceType(e,t,i){return Kt.getSourceType(e)?i(new Error(`A source type called "${e}" already exists.`)):(Kt.setSourceType(e,t),t.workerSourceURL?void this.dispatcher.broadcast("loadWorkerSource",{name:e,url:t.workerSourceURL},i):i(null,null))}getLight(){return this.light.getLight()}setLight(e,i={}){this._checkLoaded();const o=this.light.getLight();let r=!1;for(const i in e)if(!t(e[i],o[i])){r=!0;break}if(!r)return;const n=this._setTransitionParameters({duration:300,delay:0});this.light.setLight(e,i),this.light.updateTransitions(n);}getTerrain(){return this.terrain&&1===this.terrain.drapeRenderMode?this.terrain.get():null}setTerrainForDraping(){this.setTerrain({source:"",exaggeration:0},0);}setTerrain(i,o=1){if(this._checkLoaded(),!i)return delete this.terrain,delete this.stylesheet.terrain,this.dispatcher.broadcast("enableTerrain",!1),this._force3DLayerUpdate(),void(this._markersNeedUpdate=!0);let r=i;if(1===o){if("object"==typeof r.source){const t="terrain-dem-src";this.addSource(t,r.source),r=e.clone$1(r),r=e.extend(r,{source:t});}if(this._validate(e.validateTerrain,"terrain",r))return}if(!this.terrain||this.terrain&&o!==this.terrain.drapeRenderMode){if(!r)return;this._createTerrain(r,o);}else {const i=this.terrain,o=i.get();for(const t of Object.keys(e.spec.terrain))!r.hasOwnProperty(t)&&e.spec.terrain[t].default&&(r[t]=e.spec.terrain[t].default);for(const e in r)if(!t(r[e],o[e])){i.set(r),this.stylesheet.terrain=r;const e=this._setTransitionParameters({duration:0});i.updateTransitions(e);break}}this._updateDrapeFirstLayers(),this._markersNeedUpdate=!0;}_createFog(e){const t=this.fog=new P(e,this.map.transform);this.stylesheet.fog=e;const i=this._setTransitionParameters({duration:0});t.updateTransitions(i);}_updateMarkersOpacity(){0!==this.map._markers.length&&this.map._requestDomTask((()=>{for(const e of this.map._markers)e._evaluateOpacity();}));}getFog(){return this.fog?this.fog.get():null}setFog(e){if(this._checkLoaded(),!e)return delete this.fog,delete this.stylesheet.fog,void(this._markersNeedUpdate=!0);if(this.fog){const i=this.fog,o=i.get();0===Object.keys(e).length&&i.set(e);for(const r in e)if(!t(e[r],o[r])){i.set(e),this.stylesheet.fog=e;const t=this._setTransitionParameters({duration:0});i.updateTransitions(t);break}}else this._createFog(e);this._markersNeedUpdate=!0;}_setTransitionParameters(t){return {now:e.exported.now(),transition:e.extend(t,this.stylesheet.transition)}}_updateDrapeFirstLayers(){if(!this.map._optimizeForTerrain||!this.terrain)return;const e=this._order.filter((e=>this.isLayerDraped(this._layers[e]))),t=this._order.filter((e=>!this.isLayerDraped(this._layers[e])));this._drapedFirstOrder=[],this._drapedFirstOrder.push(...e),this._drapedFirstOrder.push(...t);}_createTerrain(e,t){const i=this.terrain=new E(e,t);this.stylesheet.terrain=e,this.dispatcher.broadcast("enableTerrain",!this.terrainSetForDrapingOnly()),this._force3DLayerUpdate();const o=this._setTransitionParameters({duration:0});i.updateTransitions(o);}_force3DLayerUpdate(){for(const e in this._layers){const t=this._layers[e];"fill-extrusion"===t.type&&this._updateLayer(t);}}_forceSymbolLayerUpdate(){for(const e in this._layers){const t=this._layers[e];"symbol"===t.type&&this._updateLayer(t);}}_validate(t,i,o,r,n={}){return (!n||!1!==n.validate)&&Xt(this,t.call(e.validateStyle,e.extend({key:i,style:this.serialize(),value:o,styleSpec:e.spec},r)))}_remove(){this._request&&(this._request.cancel(),this._request=null),this._spriteRequest&&(this._spriteRequest.cancel(),this._spriteRequest=null),e.evented.off("pluginStateChange",this._rtlTextPluginCallback);for(const e in this._layers)this._layers[e].setEventedParent(null);for(const e in this._sourceCaches)this._sourceCaches[e].clearTiles(),this._sourceCaches[e].setEventedParent(null);this.imageManager.setEventedParent(null),this.setEventedParent(null),this.dispatcher.remove();}_clearSource(e){const t=this._getSourceCaches(e);for(const e of t)e.clearTiles();}_reloadSource(e){const t=this._getSourceCaches(e);for(const e of t)e.resume(),e.reload();}_reloadSources(){for(const e of this._getSources())e.reload&&e.reload();}_updateSources(e){for(const t in this._sourceCaches)this._sourceCaches[t].update(e);}_generateCollisionBoxes(){for(const e in this._sourceCaches){const t=this._sourceCaches[e];t.resume(),t.reload();}}_updatePlacement(t,i,o,r,n=!1){let s=!1,a=!1;const l={};for(const e of this._order){const i=this._layers[e];if("symbol"!==i.type)continue;if(!l[i.source]){const e=this._getLayerSourceCache(i);if(!e)continue;l[i.source]=e.getRenderableIds(!0).map((t=>e.getTileByID(t))).sort(((e,t)=>t.tileID.overscaledZ-e.tileID.overscaledZ||(e.tileID.isLessThan(t.tileID)?-1:1)));}const o=this.crossTileSymbolIndex.addLayer(i,l[i.source],t.center.lng,t.projection);s=s||o;}if(this.crossTileSymbolIndex.pruneUnusedLayers(this._order),n=n||this._layerOrderChanged||0===o,this._layerOrderChanged&&this.fire(new e.Event("neworder")),(n||!this.pauseablePlacement||this.pauseablePlacement.isDone()&&!this.placement.stillRecent(e.exported.now(),t.zoom))&&(this.pauseablePlacement=new Nt(t,this._order,n,i,o,r,this.placement,this.fog&&t.projection.supportsFog?this.fog.state:null),this._layerOrderChanged=!1),this.pauseablePlacement.isDone()?this.placement.setStale():(this.pauseablePlacement.continuePlacement(this._order,this._layers,l),this.pauseablePlacement.isDone()&&(this.placement=this.pauseablePlacement.commit(e.exported.now()),a=!0),s&&this.pauseablePlacement.placement.setStale()),a||s)for(const e of this._order){const t=this._layers[e];"symbol"===t.type&&this.placement.updateLayerOpacities(t,l[t.source]);}return !this.pauseablePlacement.isDone()||this.placement.hasTransitions(e.exported.now())}_releaseSymbolFadeTiles(){for(const e in this._sourceCaches)this._sourceCaches[e].releaseSymbolFadeTiles();}getImages(e,t,i){this.imageManager.getImages(t.icons,i),this._updateTilesForChangedImages();const o=e=>{e&&e.setDependencies(t.tileID.key,t.type,t.icons);};o(this._otherSourceCaches[t.source]),o(this._symbolSourceCaches[t.source]);}getGlyphs(e,t,i){this.glyphManager.getGlyphs(t.stacks,i);}getResource(t,i,o){return e.makeRequest(i,o)}_getSourceCache(e){return this._otherSourceCaches[e]}_getLayerSourceCache(e){return "symbol"===e.type?this._symbolSourceCaches[e.source]:this._otherSourceCaches[e.source]}_getSourceCaches(e){const t=[];return this._otherSourceCaches[e]&&t.push(this._otherSourceCaches[e]),this._symbolSourceCaches[e]&&t.push(this._symbolSourceCaches[e]),t}_isSourceCacheLoaded(t){const i=this._getSourceCaches(t);return 0===i.length?(this.fire(new e.ErrorEvent(new Error(`There is no source with ID '${t}'`))),!1):i.every((e=>e.loaded()))}has3DLayers(){return this._num3DLayers>0}hasSymbolLayers(){return this._numSymbolLayers>0}hasCircleLayers(){return this._numCircleLayers>0}_clearWorkerCaches(){this.dispatcher.broadcast("clearCaches");}destroy(){this._clearWorkerCaches(),this.terrainSetForDrapingOnly()&&(delete this.terrain,delete this.stylesheet.terrain);}}Kt.getSourceType=function(e){return Se[e]},Kt.setSourceType=function(e,t){Se[e]=t;},Kt.registerForPluginStateChange=e.registerForPluginStateChange;var Jt="\n#define EPSILON 0.0000001\n#define PI 3.141592653589793\n#define EXTENT 8192.0\n#define HALF_PI PI/2.0\n#define QUARTER_PI PI/4.0\n#define RAD_TO_DEG 180.0/PI\n#define DEG_TO_RAD PI/180.0\n#define GLOBE_RADIUS EXTENT/PI/2.0",Qt="attribute highp vec3 a_pos_3f;uniform lowp mat4 u_matrix;varying highp vec3 v_uv;void main() {const mat3 half_neg_pi_around_x=mat3(1.0,0.0, 0.0,0.0,0.0,-1.0,0.0,1.0, 0.0);v_uv=half_neg_pi_around_x*a_pos_3f;vec4 pos=u_matrix*vec4(a_pos_3f,1.0);gl_Position=pos.xyww;}",ei="\n#define ELEVATION_SCALE 7.0\n#define ELEVATION_OFFSET 450.0\n#ifdef PROJECTION_GLOBE_VIEW\nuniform vec3 u_tile_tl_up;uniform vec3 u_tile_tr_up;uniform vec3 u_tile_br_up;uniform vec3 u_tile_bl_up;uniform float u_tile_up_scale;vec3 elevationVector(vec2 pos) {vec2 uv=pos/EXTENT;vec3 up=normalize(mix(\nmix(u_tile_tl_up,u_tile_tr_up,uv.xxx),mix(u_tile_bl_up,u_tile_br_up,uv.xxx),uv.yyy));return up*u_tile_up_scale;}\n#else\nvec3 elevationVector(vec2 pos) { return vec3(0,0,1); }\n#endif\nconst float skirtOffset=24575.0;vec3 decomposeToPosAndSkirt(vec2 posWithComposedSkirt)\n{float skirt=float(posWithComposedSkirt.x >=skirtOffset);vec2 pos=posWithComposedSkirt-vec2(skirt*skirtOffset,0.0);return vec3(pos,skirt);}\n#ifdef TERRAIN\n#ifdef TERRAIN_DEM_FLOAT_FORMAT\nuniform highp sampler2D u_dem;uniform highp sampler2D u_dem_prev;\n#else\nuniform sampler2D u_dem;uniform sampler2D u_dem_prev;\n#endif\nuniform vec4 u_dem_unpack;uniform vec2 u_dem_tl;uniform vec2 u_dem_tl_prev;uniform float u_dem_scale;uniform float u_dem_scale_prev;uniform float u_dem_size;uniform float u_dem_lerp;uniform float u_exaggeration;uniform float u_meter_to_dem;uniform mat4 u_label_plane_matrix_inv;uniform sampler2D u_depth;uniform vec2 u_depth_size_inv;vec4 tileUvToDemSample(vec2 uv,float dem_size,float dem_scale,vec2 dem_tl) {vec2 pos=dem_size*(uv*dem_scale+dem_tl)+1.0;vec2 f=fract(pos);return vec4((pos-f+0.5)/(dem_size+2.0),f);}float decodeElevation(vec4 v) {return dot(vec4(v.xyz*255.0,-1.0),u_dem_unpack);}float currentElevation(vec2 apos) {\n#ifdef TERRAIN_DEM_FLOAT_FORMAT\nvec2 pos=(u_dem_size*(apos/8192.0*u_dem_scale+u_dem_tl)+1.5)/(u_dem_size+2.0);return u_exaggeration*texture2D(u_dem,pos).a;\n#else\nfloat dd=1.0/(u_dem_size+2.0);vec4 r=tileUvToDemSample(apos/8192.0,u_dem_size,u_dem_scale,u_dem_tl);vec2 pos=r.xy;vec2 f=r.zw;float tl=decodeElevation(texture2D(u_dem,pos));\n#ifdef TERRAIN_DEM_NEAREST_FILTER\nreturn u_exaggeration*tl;\n#endif\nfloat tr=decodeElevation(texture2D(u_dem,pos+vec2(dd,0.0)));float bl=decodeElevation(texture2D(u_dem,pos+vec2(0.0,dd)));float br=decodeElevation(texture2D(u_dem,pos+vec2(dd,dd)));return u_exaggeration*mix(mix(tl,tr,f.x),mix(bl,br,f.x),f.y);\n#endif\n}float prevElevation(vec2 apos) {\n#ifdef TERRAIN_DEM_FLOAT_FORMAT\nvec2 pos=(u_dem_size*(apos/8192.0*u_dem_scale_prev+u_dem_tl_prev)+1.5)/(u_dem_size+2.0);return u_exaggeration*texture2D(u_dem_prev,pos).a;\n#else\nfloat dd=1.0/(u_dem_size+2.0);vec4 r=tileUvToDemSample(apos/8192.0,u_dem_size,u_dem_scale_prev,u_dem_tl_prev);vec2 pos=r.xy;vec2 f=r.zw;float tl=decodeElevation(texture2D(u_dem_prev,pos));float tr=decodeElevation(texture2D(u_dem_prev,pos+vec2(dd,0.0)));float bl=decodeElevation(texture2D(u_dem_prev,pos+vec2(0.0,dd)));float br=decodeElevation(texture2D(u_dem_prev,pos+vec2(dd,dd)));return u_exaggeration*mix(mix(tl,tr,f.x),mix(bl,br,f.x),f.y);\n#endif\n}\n#ifdef TERRAIN_VERTEX_MORPHING\nfloat elevation(vec2 apos) {\n#ifdef ZERO_EXAGGERATION\nreturn 0.0;\n#endif\nfloat nextElevation=currentElevation(apos);float prevElevation=prevElevation(apos);return mix(prevElevation,nextElevation,u_dem_lerp);}\n#else\nfloat elevation(vec2 apos) {\n#ifdef ZERO_EXAGGERATION\nreturn 0.0;\n#endif\nreturn currentElevation(apos);}\n#endif\nhighp float unpack_depth(highp vec4 rgba_depth)\n{const highp vec4 bit_shift=vec4(1.0/(255.0*255.0*255.0),1.0/(255.0*255.0),1.0/255.0,1.0);return dot(rgba_depth,bit_shift)*2.0-1.0;}bool isOccluded(vec4 frag) {vec3 coord=frag.xyz/frag.w;float depth=unpack_depth(texture2D(u_depth,(coord.xy+1.0)*0.5));return coord.z > depth+0.0005;}float occlusionFade(vec4 frag) {vec3 coord=frag.xyz/frag.w;vec3 df=vec3(5.0*u_depth_size_inv,0.0);vec2 uv=0.5*coord.xy+0.5;vec4 depth=vec4(\nunpack_depth(texture2D(u_depth,uv-df.xz)),unpack_depth(texture2D(u_depth,uv+df.xz)),unpack_depth(texture2D(u_depth,uv-df.zy)),unpack_depth(texture2D(u_depth,uv+df.zy))\n);return dot(vec4(0.25),vec4(1.0)-clamp(300.0*(vec4(coord.z-0.001)-depth),0.0,1.0));}vec4 fourSample(vec2 pos,vec2 off) {\n#ifdef TERRAIN_DEM_FLOAT_FORMAT\nfloat tl=texture2D(u_dem,pos).a;float tr=texture2D(u_dem,pos+vec2(off.x,0.0)).a;float bl=texture2D(u_dem,pos+vec2(0.0,off.y)).a;float br=texture2D(u_dem,pos+off).a;\n#else\nvec4 demtl=vec4(texture2D(u_dem,pos).xyz*255.0,-1.0);float tl=dot(demtl,u_dem_unpack);vec4 demtr=vec4(texture2D(u_dem,pos+vec2(off.x,0.0)).xyz*255.0,-1.0);float tr=dot(demtr,u_dem_unpack);vec4 dembl=vec4(texture2D(u_dem,pos+vec2(0.0,off.y)).xyz*255.0,-1.0);float bl=dot(dembl,u_dem_unpack);vec4 dembr=vec4(texture2D(u_dem,pos+off).xyz*255.0,-1.0);float br=dot(dembr,u_dem_unpack);\n#endif\nreturn vec4(tl,tr,bl,br);}float flatElevation(vec2 pack) {vec2 apos=floor(pack/8.0);vec2 span=10.0*(pack-apos*8.0);vec2 uvTex=(apos-vec2(1.0,1.0))/8190.0;float size=u_dem_size+2.0;float dd=1.0/size;vec2 pos=u_dem_size*(uvTex*u_dem_scale+u_dem_tl)+1.0;vec2 f=fract(pos);pos=(pos-f+0.5)*dd;vec4 h=fourSample(pos,vec2(dd));float z=mix(mix(h.x,h.y,f.x),mix(h.z,h.w,f.x),f.y);vec2 w=floor(0.5*(span*u_meter_to_dem-1.0));vec2 d=dd*w;h=fourSample(pos-d,2.0*d+vec2(dd));vec4 diff=abs(h.xzxy-h.ywzw);vec2 slope=min(vec2(0.25),u_meter_to_dem*0.5*(diff.xz+diff.yw)/(2.0*w+vec2(1.0)));vec2 fix=slope*span;float base=z+max(fix.x,fix.y);return u_exaggeration*base;}float elevationFromUint16(float word) {return u_exaggeration*(word/ELEVATION_SCALE-ELEVATION_OFFSET);}\n#else\nfloat elevation(vec2 pos) { return 0.0; }bool isOccluded(vec4 frag) { return false; }float occlusionFade(vec4 frag) { return 1.0; }\n#endif",ti="#ifdef FOG\nuniform mediump vec4 u_fog_color;uniform mediump vec2 u_fog_range;uniform mediump float u_fog_horizon_blend;uniform mediump mat4 u_fog_matrix;varying vec3 v_fog_pos;float fog_range(float depth) {return (depth-u_fog_range[0])/(u_fog_range[1]-u_fog_range[0]);}float fog_horizon_blending(vec3 camera_dir) {float t=max(0.0,camera_dir.z/u_fog_horizon_blend);return u_fog_color.a*exp(-3.0*t*t);}float fog_opacity(float t) {const float decay=6.0;float falloff=1.0-min(1.0,exp(-decay*t));falloff*=falloff*falloff;return u_fog_color.a*min(1.0,1.00747*falloff);}vec3 fog_position(vec3 pos) {return (u_fog_matrix*vec4(pos,1.0)).xyz;}vec3 fog_position(vec2 pos) {return fog_position(vec3(pos,0.0));}float fog(vec3 pos) {float depth=length(pos);float opacity=fog_opacity(fog_range(depth));return opacity*fog_horizon_blending(pos/depth);}\n#endif",ii="#ifdef FOG\nuniform mediump vec4 u_fog_color;uniform mediump vec2 u_fog_range;uniform mediump float u_fog_horizon_blend;uniform mediump float u_fog_temporal_offset;varying vec3 v_fog_pos;uniform highp vec3 u_frustum_tl;uniform highp vec3 u_frustum_tr;uniform highp vec3 u_frustum_br;uniform highp vec3 u_frustum_bl;uniform highp vec3 u_globe_pos;uniform highp float u_globe_radius;uniform highp vec2 u_viewport;uniform float u_globe_transition;uniform int u_is_globe;float fog_range(float depth) {return (depth-u_fog_range[0])/(u_fog_range[1]-u_fog_range[0]);}float fog_horizon_blending(vec3 camera_dir) {float t=max(0.0,camera_dir.z/u_fog_horizon_blend);return u_fog_color.a*exp(-3.0*t*t);}float fog_opacity(float t) {const float decay=6.0;float falloff=1.0-min(1.0,exp(-decay*t));falloff*=falloff*falloff;return u_fog_color.a*min(1.0,1.00747*falloff);}float globe_glow_progress() {highp vec2 uv=gl_FragCoord.xy/u_viewport;highp vec3 ray_dir=mix(\nmix(u_frustum_tl,u_frustum_tr,uv.x),mix(u_frustum_bl,u_frustum_br,uv.x),1.0-uv.y);highp vec3 dir=normalize(ray_dir);highp vec3 closest_point=dot(u_globe_pos,dir)*dir;highp float sdf=length(closest_point-u_globe_pos)/u_globe_radius;return sdf+PI*0.5;}float fog_opacity(vec3 pos) {float depth=length(pos);return fog_opacity(fog_range(depth));}vec3 fog_apply(vec3 color,vec3 pos) {float depth=length(pos);float opacity;if (u_is_globe==1) {float glow_progress=globe_glow_progress();float t=mix(glow_progress,depth,u_globe_transition);opacity=fog_opacity(fog_range(t));} else {opacity=fog_opacity(fog_range(depth));opacity*=fog_horizon_blending(pos/depth);}return mix(color,u_fog_color.rgb,opacity);}vec4 fog_apply_from_vert(vec4 color,float fog_opac) {float alpha=EPSILON+color.a;color.rgb=mix(color.rgb/alpha,u_fog_color.rgb,fog_opac)*alpha;return color;}vec3 fog_apply_sky_gradient(vec3 camera_ray,vec3 sky_color) {float horizon_blend=fog_horizon_blending(normalize(camera_ray));return mix(sky_color,u_fog_color.rgb,horizon_blend);}vec4 fog_apply_premultiplied(vec4 color,vec3 pos) {float alpha=EPSILON+color.a;color.rgb=fog_apply(color.rgb/alpha,pos)*alpha;return color;}vec3 fog_dither(vec3 color) {vec2 dither_seed=gl_FragCoord.xy+u_fog_temporal_offset;return dither(color,dither_seed);}vec4 fog_dither(vec4 color) {return vec4(fog_dither(color.rgb),color.a);}\n#endif";let oi={},ri={};const ni=[];hi(Jt,ni),hi(ei,ni),hi(ti,ni),hi(ii,ni),oi=ui("",ei),ri=ui(ii,ti);const si=ui("\n#if __VERSION__ >=300\n#define varying in\n#define gl_FragColor glFragColor\n#define texture2D texture\n#define textureCube texture\nout vec4 glFragColor;\n#endif\nhighp vec3 hash(highp vec2 p) {highp vec3 p3=fract(p.xyx*vec3(443.8975,397.2973,491.1871));p3+=dot(p3,p3.yxz+19.19);return fract((p3.xxy+p3.yzz)*p3.zyx);}vec3 dither(vec3 color,highp vec2 seed) {vec3 rnd=hash(seed)+hash(seed+0.59374)-0.5;return color+rnd/255.0;}highp float unpack_depth(highp vec4 rgba_depth)\n{const highp vec4 bit_shift=vec4(1.0/(255.0*255.0*255.0),1.0/(255.0*255.0),1.0/255.0,1.0);return dot(rgba_depth,bit_shift)*2.0-1.0;}highp vec4 pack_depth(highp float ndc_z) {highp float depth=ndc_z*0.5+0.5;const highp vec4 bit_shift=vec4(255.0*255.0*255.0,255.0*255.0,255.0,1.0);const highp vec4 bit_mask =vec4(0.0,1.0/255.0,1.0/255.0,1.0/255.0);highp vec4 res=fract(depth*bit_shift);res-=res.xxyz*bit_mask;return res;}","\n#if __VERSION__ >=300\n#define attribute in\n#define varying out\n#define texture2D texture\n#endif\nfloat wrap(float n,float min,float max) {float d=max-min;float w=mod(mod(n-min,d)+d,d)+min;return (w==min) ? max : w;}\n#ifdef PROJECTION_GLOBE_VIEW\nvec3 mercator_tile_position(mat4 matrix,vec2 tile_anchor,vec3 tile_id,vec2 mercator_center) {\n#ifndef PROJECTED_POS_ON_VIEWPORT\nfloat tiles=tile_id.z;vec2 mercator=(tile_anchor/EXTENT+tile_id.xy)/tiles;mercator-=mercator_center;mercator.x=wrap(mercator.x,-0.5,0.5);vec4 mercator_tile=vec4(mercator.xy*EXTENT,EXTENT/(2.0*PI),1.0);mercator_tile=matrix*mercator_tile;return mercator_tile.xyz;\n#else\nreturn vec3(0.0);\n#endif\n}vec3 mix_globe_mercator(vec3 globe,vec3 mercator,float t) {return mix(globe,mercator,t);}mat3 globe_mercator_surface_vectors(vec3 pos_normal,vec3 up_dir,float zoom_transition) {vec3 normal=zoom_transition==0.0 ? pos_normal : normalize(mix(pos_normal,up_dir,zoom_transition));vec3 xAxis=normalize(vec3(normal.z,0.0,-normal.x));vec3 yAxis=normalize(cross(normal,xAxis));return mat3(xAxis,yAxis,normal);}\n#endif\nvec2 unpack_float(const float packedValue) {int packedIntValue=int(packedValue);int v0=packedIntValue/256;return vec2(v0,packedIntValue-v0*256);}vec2 unpack_opacity(const float packedOpacity) {int intOpacity=int(packedOpacity)/2;return vec2(float(intOpacity)/127.0,mod(packedOpacity,2.0));}vec4 decode_color(const vec2 encodedColor) {return vec4(\nunpack_float(encodedColor[0])/255.0,unpack_float(encodedColor[1])/255.0\n);}float unpack_mix_vec2(const vec2 packedValue,const float t) {return mix(packedValue[0],packedValue[1],t);}vec4 unpack_mix_color(const vec4 packedColors,const float t) {vec4 minColor=decode_color(vec2(packedColors[0],packedColors[1]));vec4 maxColor=decode_color(vec2(packedColors[2],packedColors[3]));return mix(minColor,maxColor,t);}vec2 get_pattern_pos(const vec2 pixel_coord_upper,const vec2 pixel_coord_lower,const vec2 pattern_size,const float tile_units_to_pixels,const vec2 pos) {vec2 offset=mod(mod(mod(pixel_coord_upper,pattern_size)*256.0,pattern_size)*256.0+pixel_coord_lower,pattern_size);return (tile_units_to_pixels*pos+offset)/pattern_size;}const vec4 AWAY=vec4(-1000.0,-1000.0,-1000.0,1);//Normalized device coordinate that is not rendered."),ai=Jt,li="\n#ifdef GL_ES\nprecision mediump float;\n#else\n\n#if !defined(lowp)\n#define lowp\n#endif\n\n#if !defined(mediump)\n#define mediump\n#endif\n\n#if !defined(highp)\n#define highp\n#endif\n\n#endif";var ci={background:ui("uniform vec4 u_color;uniform float u_opacity;\n#ifdef LIGHTING_3D_MODE\nvarying vec4 v_color;\n#endif\nvoid main() {vec4 out_color;\n#ifdef LIGHTING_3D_MODE\nout_color=v_color;\n#else\nout_color=u_color;\n#endif\n#ifdef FOG\nout_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos));\n#endif\ngl_FragColor=out_color*u_opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","attribute vec2 a_pos;uniform mat4 u_matrix;\n#ifdef LIGHTING_3D_MODE\nuniform vec4 u_color;varying vec4 v_color;\n#endif\nvoid main() {gl_Position=u_matrix*vec4(a_pos,0,1);\n#ifdef LIGHTING_3D_MODE\nv_color=apply_lighting(u_color);\n#endif\n#ifdef FOG\nv_fog_pos=fog_position(a_pos);\n#endif\n}"),backgroundPattern:ui("uniform vec2 u_pattern_tl;uniform vec2 u_pattern_br;uniform vec2 u_texsize;uniform float u_opacity;uniform sampler2D u_image;varying vec2 v_pos;void main() {vec2 imagecoord=mod(v_pos,1.0);vec2 pos=mix(u_pattern_tl/u_texsize,u_pattern_br/u_texsize,imagecoord);vec4 out_color=texture2D(u_image,pos);\n#ifdef LIGHTING_3D_MODE\nout_color=apply_lighting(out_color);\n#endif\n#ifdef FOG\nout_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos));\n#endif\ngl_FragColor=out_color*u_opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_pattern_size;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_tile_units_to_pixels;attribute vec2 a_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_pattern_size,u_tile_units_to_pixels,a_pos);\n#ifdef FOG\nv_fog_pos=fog_position(a_pos);\n#endif\n}"),circle:ui("varying vec3 v_data;varying float v_visibility;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define mediump float radius\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define highp vec4 stroke_color\n#pragma mapbox: define mediump float stroke_width\n#pragma mapbox: define lowp float stroke_opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize mediump float radius\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize highp vec4 stroke_color\n#pragma mapbox: initialize mediump float stroke_width\n#pragma mapbox: initialize lowp float stroke_opacity\nvec2 extrude=v_data.xy;float extrude_length=length(extrude);lowp float antialiasblur=v_data.z;float antialiased_blur=-max(blur,antialiasblur);float opacity_t=smoothstep(0.0,antialiased_blur,extrude_length-1.0);float color_t=stroke_width < 0.01 ? 0.0 : smoothstep(\nantialiased_blur,0.0,extrude_length-radius/(radius+stroke_width)\n);vec4 out_color=mix(color*opacity,stroke_color*stroke_opacity,color_t);\n#ifdef LIGHTING_3D_MODE\nout_color=apply_lighting(out_color);\n#endif\n#ifdef FOG\nout_color=fog_apply_premultiplied(out_color,v_fog_pos);\n#endif\ngl_FragColor=out_color*(v_visibility*opacity_t);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","#define NUM_VISIBILITY_RINGS 2\n#define INV_SQRT2 0.70710678\n#define ELEVATION_BIAS 0.0001\n#define NUM_SAMPLES_PER_RING 16\nuniform mat4 u_matrix;uniform mat2 u_extrude_scale;uniform lowp float u_device_pixel_ratio;uniform highp float u_camera_to_center_distance;attribute vec2 a_pos;\n#ifdef PROJECTION_GLOBE_VIEW\nattribute vec3 a_pos_3;attribute vec3 a_pos_normal_3;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_tile_id;uniform float u_zoom_transition;uniform vec3 u_up_dir;\n#endif\nvarying vec3 v_data;varying float v_visibility;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define mediump float radius\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define highp vec4 stroke_color\n#pragma mapbox: define mediump float stroke_width\n#pragma mapbox: define lowp float stroke_opacity\nvec2 calc_offset(vec2 extrusion,float radius,float stroke_width, float view_scale) {return extrusion*(radius+stroke_width)*u_extrude_scale*view_scale;}float cantilevered_elevation(vec2 pos,float radius,float stroke_width,float view_scale) {vec2 c1=pos+calc_offset(vec2(-1,-1),radius,stroke_width,view_scale);vec2 c2=pos+calc_offset(vec2(1,-1),radius,stroke_width,view_scale);vec2 c3=pos+calc_offset(vec2(1,1),radius,stroke_width,view_scale);vec2 c4=pos+calc_offset(vec2(-1,1),radius,stroke_width,view_scale);float h1=elevation(c1)+ELEVATION_BIAS;float h2=elevation(c2)+ELEVATION_BIAS;float h3=elevation(c3)+ELEVATION_BIAS;float h4=elevation(c4)+ELEVATION_BIAS;return max(h4,max(h3,max(h1,h2)));}float circle_elevation(vec2 pos) {\n#if defined(TERRAIN)\nreturn elevation(pos)+ELEVATION_BIAS;\n#else\nreturn 0.0;\n#endif\n}vec4 project_vertex(vec2 extrusion,vec4 world_center,vec4 projected_center,float radius,float stroke_width, float view_scale,mat3 surface_vectors) {vec2 sample_offset=calc_offset(extrusion,radius,stroke_width,view_scale);\n#ifdef PITCH_WITH_MAP\n#ifdef PROJECTION_GLOBE_VIEW\nreturn u_matrix*( world_center+vec4(sample_offset.x*surface_vectors[0]+sample_offset.y*surface_vectors[1],0) );\n#else\nreturn u_matrix*( world_center+vec4(sample_offset,0,0) );\n#endif\n#else\nreturn projected_center+vec4(sample_offset,0,0);\n#endif\n}float get_sample_step() {\n#ifdef PITCH_WITH_MAP\nreturn 2.0*PI/float(NUM_SAMPLES_PER_RING);\n#else\nreturn PI/float(NUM_SAMPLES_PER_RING);\n#endif\n}void main(void) {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize mediump float radius\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize highp vec4 stroke_color\n#pragma mapbox: initialize mediump float stroke_width\n#pragma mapbox: initialize lowp float stroke_opacity\nvec2 extrude=vec2(mod(a_pos,2.0)*2.0-1.0);vec2 circle_center=floor(a_pos*0.5);vec4 world_center;mat3 surface_vectors;\n#ifdef PROJECTION_GLOBE_VIEW\nvec3 pos_normal_3=a_pos_normal_3/16384.0;surface_vectors=globe_mercator_surface_vectors(pos_normal_3,u_up_dir,u_zoom_transition);vec3 surface_extrusion=extrude.x*surface_vectors[0]+extrude.y*surface_vectors[1];vec3 globe_elevation=elevationVector(circle_center)*circle_elevation(circle_center);vec3 globe_pos=a_pos_3+surface_extrusion+globe_elevation;vec3 mercator_elevation=u_up_dir*u_tile_up_scale*circle_elevation(circle_center);vec3 merc_pos=mercator_tile_position(u_inv_rot_matrix,circle_center,u_tile_id,u_merc_center)+surface_extrusion+mercator_elevation;vec3 pos=mix_globe_mercator(globe_pos,merc_pos,u_zoom_transition);world_center=vec4(pos,1);\n#else \nsurface_vectors=mat3(1.0);float height=circle_elevation(circle_center);world_center=vec4(circle_center,height,1);\n#endif\nvec4 projected_center=u_matrix*world_center;float view_scale=0.0;\n#ifdef PITCH_WITH_MAP\n#ifdef SCALE_WITH_MAP\nview_scale=1.0;\n#else\nview_scale=projected_center.w/u_camera_to_center_distance;\n#endif\n#else\n#ifdef SCALE_WITH_MAP\nview_scale=u_camera_to_center_distance;\n#else\nview_scale=projected_center.w;\n#endif\n#endif\ngl_Position=project_vertex(extrude,world_center,projected_center,radius,stroke_width,view_scale,surface_vectors);float visibility=0.0;\n#ifdef TERRAIN\nfloat step=get_sample_step();vec4 occlusion_world_center;vec4 occlusion_projected_center;\n#ifdef PITCH_WITH_MAP\nfloat cantilevered_height=cantilevered_elevation(circle_center,radius,stroke_width,view_scale);occlusion_world_center=vec4(circle_center,cantilevered_height,1);occlusion_projected_center=u_matrix*occlusion_world_center;\n#else\nocclusion_world_center=world_center;occlusion_projected_center=projected_center;\n#endif\nfor(int ring=0; ring < NUM_VISIBILITY_RINGS; ring++) {float scale=(float(ring)+1.0)/float(NUM_VISIBILITY_RINGS);for(int i=0; i < NUM_SAMPLES_PER_RING; i++) {vec2 extrusion=vec2(cos(step*float(i)),-sin(step*float(i)))*scale;vec4 frag_pos=project_vertex(extrusion,occlusion_world_center,occlusion_projected_center,radius,stroke_width,view_scale,surface_vectors);visibility+=float(!isOccluded(frag_pos));}}visibility/=float(NUM_VISIBILITY_RINGS)*float(NUM_SAMPLES_PER_RING);\n#else\nvisibility=1.0;\n#endif\n#ifdef PROJECTION_GLOBE_VIEW\nvisibility=1.0;\n#endif\nv_visibility=visibility;lowp float antialiasblur=1.0/u_device_pixel_ratio/(radius+stroke_width);v_data=vec3(extrude.x,extrude.y,antialiasblur);\n#ifdef FOG\nv_fog_pos=fog_position(world_center.xyz);\n#endif\n}"),clippingMask:ui("void main() {gl_FragColor=vec4(1.0);}","attribute vec2 a_pos;uniform mat4 u_matrix;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);}"),heatmap:ui("uniform highp float u_intensity;varying vec2 v_extrude;\n#pragma mapbox: define highp float weight\n#define GAUSS_COEF 0.3989422804014327\nvoid main() {\n#pragma mapbox: initialize highp float weight\nfloat d=-0.5*3.0*3.0*dot(v_extrude,v_extrude);float val=weight*u_intensity*GAUSS_COEF*exp(d);gl_FragColor=vec4(val,1.0,1.0,1.0);\n#ifdef FOG\nif (u_is_globe==0) {gl_FragColor.r*=pow(1.0-fog_opacity(v_fog_pos),2.0);}\n#endif\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform float u_extrude_scale;uniform float u_opacity;uniform float u_intensity;attribute vec2 a_pos;\n#ifdef PROJECTION_GLOBE_VIEW\nattribute vec3 a_pos_3;attribute vec3 a_pos_normal_3;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_tile_id;uniform float u_zoom_transition;uniform vec3 u_up_dir;\n#endif\nvarying vec2 v_extrude;\n#pragma mapbox: define highp float weight\n#pragma mapbox: define mediump float radius\nconst highp float ZERO=1.0/255.0/16.0;\n#define GAUSS_COEF 0.3989422804014327\nvoid main(void) {\n#pragma mapbox: initialize highp float weight\n#pragma mapbox: initialize mediump float radius\nvec2 unscaled_extrude=vec2(mod(a_pos,2.0)*2.0-1.0);float S=sqrt(-2.0*log(ZERO/weight/u_intensity/GAUSS_COEF))/3.0;v_extrude=S*unscaled_extrude;vec2 extrude=v_extrude*radius*u_extrude_scale;vec2 tilePos=floor(a_pos*0.5);vec3 pos;\n#ifdef PROJECTION_GLOBE_VIEW\nvec3 pos_normal_3=a_pos_normal_3/16384.0;mat3 surface_vectors=globe_mercator_surface_vectors(pos_normal_3,u_up_dir,u_zoom_transition);vec3 surface_extrusion=extrude.x*surface_vectors[0]+extrude.y*surface_vectors[1];vec3 globe_elevation=elevationVector(tilePos)*elevation(tilePos);vec3 globe_pos=a_pos_3+surface_extrusion+globe_elevation;vec3 mercator_elevation=u_up_dir*u_tile_up_scale*elevation(tilePos);vec3 merc_pos=mercator_tile_position(u_inv_rot_matrix,tilePos,u_tile_id,u_merc_center)+surface_extrusion+mercator_elevation;pos=mix_globe_mercator(globe_pos,merc_pos,u_zoom_transition);\n#else\npos=vec3(tilePos+extrude,elevation(tilePos));\n#endif\ngl_Position=u_matrix*vec4(pos,1);\n#ifdef FOG\nv_fog_pos=fog_position(pos);\n#endif\n}"),heatmapTexture:ui("uniform sampler2D u_image;uniform sampler2D u_color_ramp;uniform float u_opacity;varying vec2 v_pos;void main() {float t=texture2D(u_image,v_pos).r;vec4 color=texture2D(u_color_ramp,vec2(t,0.5));gl_FragColor=color*u_opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(0.0);\n#endif\n}","attribute vec2 a_pos;varying vec2 v_pos;void main() {gl_Position=vec4(a_pos,0,1);v_pos=a_pos*0.5+0.5;}"),collisionBox:ui("varying float v_placed;varying float v_notUsed;void main() {vec4 red =vec4(1.0,0.0,0.0,1.0);vec4 blue=vec4(0.0,0.0,1.0,0.5);gl_FragColor =mix(red,blue,step(0.5,v_placed))*0.5;gl_FragColor*=mix(1.0,0.1,step(0.5,v_notUsed));}","attribute vec3 a_pos;attribute vec2 a_anchor_pos;attribute vec2 a_extrude;attribute vec2 a_placed;attribute vec2 a_shift;attribute float a_size_scale;attribute vec2 a_padding;uniform mat4 u_matrix;uniform vec2 u_extrude_scale;uniform float u_camera_to_center_distance;varying float v_placed;varying float v_notUsed;void main() {vec4 projectedPoint=u_matrix*vec4(a_pos+elevationVector(a_anchor_pos)*elevation(a_anchor_pos),1);highp float camera_to_anchor_distance=projectedPoint.w;highp float collision_perspective_ratio=clamp(\n0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,1.5);gl_Position=projectedPoint;gl_Position.xy+=(a_extrude*a_size_scale+a_shift+a_padding)*u_extrude_scale*gl_Position.w*collision_perspective_ratio;v_placed=a_placed.x;v_notUsed=a_placed.y;}"),collisionCircle:ui("varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;void main() {float alpha=0.5*min(v_perspective_ratio,1.0);float stroke_radius=0.9*max(v_perspective_ratio,1.0);float distance_to_center=length(v_extrude);float distance_to_edge=abs(distance_to_center-v_radius);float opacity_t=smoothstep(-stroke_radius,0.0,-distance_to_edge);vec4 color=mix(vec4(0.0,0.0,1.0,0.5),vec4(1.0,0.0,0.0,1.0),v_collision);gl_FragColor=color*alpha*opacity_t;}","attribute vec2 a_pos_2f;attribute float a_radius;attribute vec2 a_flags;uniform mat4 u_matrix;uniform mat4 u_inv_matrix;uniform vec2 u_viewport_size;uniform float u_camera_to_center_distance;varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;vec3 toTilePosition(vec2 screenPos) {vec4 rayStart=u_inv_matrix*vec4(screenPos,-1.0,1.0);vec4 rayEnd =u_inv_matrix*vec4(screenPos, 1.0,1.0);rayStart.xyz/=rayStart.w;rayEnd.xyz /=rayEnd.w;highp float t=(0.0-rayStart.z)/(rayEnd.z-rayStart.z);return mix(rayStart.xyz,rayEnd.xyz,t);}void main() {vec2 quadCenterPos=a_pos_2f;float radius=a_radius;float collision=a_flags.x;float vertexIdx=a_flags.y;vec2 quadVertexOffset=vec2(\nmix(-1.0,1.0,float(vertexIdx >=2.0)),mix(-1.0,1.0,float(vertexIdx >=1.0 && vertexIdx <=2.0)));vec2 quadVertexExtent=quadVertexOffset*radius;vec3 tilePos=toTilePosition(quadCenterPos);vec4 clipPos=u_matrix*vec4(tilePos,1.0);highp float camera_to_anchor_distance=clipPos.w;highp float collision_perspective_ratio=clamp(\n0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,4.0);float padding_factor=1.2;v_radius=radius;v_extrude=quadVertexExtent*padding_factor;v_perspective_ratio=collision_perspective_ratio;v_collision=collision;gl_Position=vec4(clipPos.xyz/clipPos.w,1.0)+vec4(quadVertexExtent*padding_factor/u_viewport_size*2.0,0.0,0.0);}"),debug:ui("uniform highp vec4 u_color;uniform sampler2D u_overlay;varying vec2 v_uv;void main() {vec4 overlay_color=texture2D(u_overlay,v_uv);gl_FragColor=mix(u_color,overlay_color,overlay_color.a);}","attribute vec2 a_pos;\n#ifdef PROJECTION_GLOBE_VIEW\nattribute vec3 a_pos_3;\n#endif\nvarying vec2 v_uv;uniform mat4 u_matrix;uniform float u_overlay_scale;void main() {float h=elevation(a_pos);v_uv=a_pos/8192.0;\n#ifdef PROJECTION_GLOBE_VIEW\ngl_Position=u_matrix*vec4(a_pos_3+elevationVector(a_pos)*h,1);\n#else\ngl_Position=u_matrix*vec4(a_pos*u_overlay_scale,h,1);\n#endif\n}"),fill:ui("#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float opacity\nvec4 out_color=color;\n#ifdef LIGHTING_3D_MODE\nout_color=apply_lighting(out_color);\n#endif\n#ifdef FOG\nout_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos));\n#endif\ngl_FragColor=out_color*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","attribute vec2 a_pos;uniform mat4 u_matrix;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float opacity\ngl_Position=u_matrix*vec4(a_pos,0,1);\n#ifdef FOG\nv_fog_pos=fog_position(a_pos);\n#endif\n}"),fillOutline:ui("varying vec2 v_pos;\n#pragma mapbox: define highp vec4 outline_color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 outline_color\n#pragma mapbox: initialize lowp float opacity\nfloat dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);vec4 out_color=outline_color;\n#ifdef LIGHTING_3D_MODE\nout_color=apply_lighting(out_color);\n#endif\n#ifdef FOG\nout_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos));\n#endif\ngl_FragColor=out_color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","attribute vec2 a_pos;uniform mat4 u_matrix;uniform vec2 u_world;varying vec2 v_pos;\n#pragma mapbox: define highp vec4 outline_color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 outline_color\n#pragma mapbox: initialize lowp float opacity\ngl_Position=u_matrix*vec4(a_pos,0,1);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;\n#ifdef FOG\nv_fog_pos=fog_position(a_pos);\n#endif\n}"),fillOutlinePattern:ui("uniform vec2 u_texsize;uniform sampler2D u_image;varying vec2 v_pos;varying vec2 v_pos_world;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern\nvec2 pattern_tl=pattern.xy;vec2 pattern_br=pattern.zw;vec2 imagecoord=mod(v_pos,1.0);vec2 pos=mix(pattern_tl/u_texsize,pattern_br/u_texsize,imagecoord);float dist=length(v_pos_world-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);vec4 out_color=texture2D(u_image,pos);\n#ifdef LIGHTING_3D_MODE\nout_color=apply_lighting(out_color);\n#endif\n#ifdef FOG\nout_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos));\n#endif\ngl_FragColor=out_color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_world;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_tile_units_to_pixels;attribute vec2 a_pos;varying vec2 v_pos;varying vec2 v_pos_world;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern\n#pragma mapbox: define lowp float pixel_ratio\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern\n#pragma mapbox: initialize lowp float pixel_ratio\nvec2 pattern_tl=pattern.xy;vec2 pattern_br=pattern.zw;gl_Position=u_matrix*vec4(a_pos,0,1);vec2 display_size=(pattern_br-pattern_tl)/pixel_ratio;v_pos=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,display_size,u_tile_units_to_pixels,a_pos);v_pos_world=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;\n#ifdef FOG\nv_fog_pos=fog_position(a_pos);\n#endif\n}"),fillPattern:ui("uniform vec2 u_texsize;uniform sampler2D u_image;varying vec2 v_pos;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern\nvec2 pattern_tl=pattern.xy;vec2 pattern_br=pattern.zw;vec2 imagecoord=mod(v_pos,1.0);vec2 pos=mix(pattern_tl/u_texsize,pattern_br/u_texsize,imagecoord);vec4 out_color=texture2D(u_image,pos);\n#ifdef LIGHTING_3D_MODE\nout_color=apply_lighting(out_color);\n#endif\n#ifdef FOG\nout_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos));\n#endif\ngl_FragColor=out_color*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_tile_units_to_pixels;attribute vec2 a_pos;varying vec2 v_pos;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern\n#pragma mapbox: define lowp float pixel_ratio\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern\n#pragma mapbox: initialize lowp float pixel_ratio\nvec2 pattern_tl=pattern.xy;vec2 pattern_br=pattern.zw;vec2 display_size=(pattern_br-pattern_tl)/pixel_ratio;gl_Position=u_matrix*vec4(a_pos,0,1);v_pos=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,display_size,u_tile_units_to_pixels,a_pos);\n#ifdef FOG\nv_fog_pos=fog_position(a_pos);\n#endif\n}"),fillExtrusion:ui("varying vec4 v_color;\n#ifdef RENDER_SHADOWS\nvarying highp vec4 v_pos_light_view_0;varying highp vec4 v_pos_light_view_1;varying float v_depth;\n#endif\n#ifdef FAUX_AO\nuniform lowp vec2 u_ao;varying vec3 v_ao;\n#endif\n#ifdef ZERO_ROOF_RADIUS\nvarying vec4 v_roof_color;\n#endif\n#if defined(ZERO_ROOF_RADIUS) || defined(RENDER_SHADOWS)\nvarying highp vec3 v_normal;\n#endif\nvoid main() {\n#if defined(ZERO_ROOF_RADIUS) || defined(RENDER_SHADOWS)\nvec3 normal=v_normal;\n#endif\nfloat z;vec4 color;\n#ifdef ZERO_ROOF_RADIUS\nz=float(normal.z > 0.00001);color=mix(v_color,v_roof_color,z);\n#else\ncolor=v_color;\n#endif\n#ifdef FAUX_AO\nfloat intensity=u_ao[0];float h=max(0.0,v_ao.z);float h_floors=h/u_ao[1];float y_shade=1.0-0.9*intensity*min(v_ao.y,1.0);float shade=(1.0-0.08*intensity)*(y_shade+(1.0-y_shade)*(1.0-pow(1.0-min(h_floors/16.0,1.0),16.0)))+0.08*intensity*min(h_floors/160.0,1.0);float concave=v_ao.x*v_ao.x;\n#ifdef ZERO_ROOF_RADIUS\nconcave*=(1.0-z);\n#endif\nfloat x_shade=mix(1.0,mix(0.6,0.75,min(h_floors/30.0,1.0)),intensity)+0.1*intensity*min(h,1.0);shade*=mix(1.0,x_shade*x_shade*x_shade,concave);color.rgb=color.rgb*shade;\n#endif\n#ifdef RENDER_SHADOWS\n#ifdef ZERO_ROOF_RADIUS\nnormal=mix(normal,vec3(0.0,0.0,1.0),z);\n#endif\ncolor.xyz=shadowed_color_normal(color.xyz,normalize(normal),v_pos_light_view_0,v_pos_light_view_1,v_depth);\n#endif\n#ifdef FOG\ncolor=fog_dither(fog_apply_premultiplied(color,v_fog_pos));\n#endif\ngl_FragColor=color;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform float u_edge_radius;attribute vec4 a_pos_normal_ed;attribute vec2 a_centroid_pos;\n#ifdef PROJECTION_GLOBE_VIEW\nattribute vec3 a_pos_3;attribute vec3 a_pos_normal_3;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_tile_id;uniform float u_zoom_transition;uniform vec3 u_up_dir;uniform float u_height_lift;\n#endif\nvarying vec4 v_color;\n#ifdef RENDER_SHADOWS\nuniform mat4 u_light_matrix_0;uniform mat4 u_light_matrix_1;varying highp vec4 v_pos_light_view_0;varying highp vec4 v_pos_light_view_1;varying float v_depth;\n#endif\n#ifdef ZERO_ROOF_RADIUS\nvarying vec4 v_roof_color;\n#endif\n#if defined(ZERO_ROOF_RADIUS) || defined(RENDER_SHADOWS)\nvarying highp vec3 v_normal;\n#endif\n#ifdef FAUX_AO\nuniform lowp vec2 u_ao;varying vec3 v_ao;\n#endif\n#pragma mapbox: define highp float base\n#pragma mapbox: define highp float height\n#pragma mapbox: define highp vec4 color\nvoid main() {\n#pragma mapbox: initialize highp float base\n#pragma mapbox: initialize highp float height\n#pragma mapbox: initialize highp vec4 color\nvec4 pos_nx=floor(a_pos_normal_ed*0.5);vec4 top_up_ny_start=a_pos_normal_ed-2.0*pos_nx;vec3 top_up_ny=top_up_ny_start.xyz;float x_normal=pos_nx.z/8192.0;vec3 normal=top_up_ny.y==1.0 ? vec3(0.0,0.0,1.0) : normalize(vec3(x_normal,(2.0*top_up_ny.z-1.0)*(1.0-abs(x_normal)),0.0));\n#if defined(ZERO_ROOF_RADIUS) || defined(RENDER_SHADOWS)\nv_normal=normal;\n#endif\nbase=max(0.0,base);height=max(0.0,top_up_ny.y==0.0 && top_up_ny.x==1.0 ? height-u_edge_radius : height);float t=top_up_ny.x;vec2 centroid_pos=vec2(0.0);\n#if defined(HAS_CENTROID) || defined(TERRAIN)\ncentroid_pos=a_centroid_pos;\n#endif\nfloat ele=0.0;float h=0.0;float c_ele;vec3 pos;\n#ifdef TERRAIN\nbool flat_roof=centroid_pos.x !=0.0 && t > 0.0;ele=elevation(pos_nx.xy);c_ele=flat_roof ? centroid_pos.y==0.0 ? elevationFromUint16(centroid_pos.x) : flatElevation(centroid_pos) : ele;h=flat_roof ? max(c_ele+height,ele+base+2.0) : ele+(t > 0.0 ? height : base==0.0 ?-5.0 : base);pos=vec3(pos_nx.xy,h);\n#else\nh=t > 0.0 ? height : base;pos=vec3(pos_nx.xy,h);\n#endif\n#ifdef PROJECTION_GLOBE_VIEW\nfloat lift=float((t+base) > 0.0)*u_height_lift;h+=lift;vec3 globe_normal=normalize(mix(a_pos_normal_3/16384.0,u_up_dir,u_zoom_transition));vec3 globe_pos=a_pos_3+globe_normal*(u_tile_up_scale*h);vec3 merc_pos=mercator_tile_position(u_inv_rot_matrix,pos.xy,u_tile_id,u_merc_center)+u_up_dir*u_tile_up_scale*pos.z;pos=mix_globe_mercator(globe_pos,merc_pos,u_zoom_transition);\n#endif\nfloat hidden=float(centroid_pos.x==0.0 && centroid_pos.y==1.0);gl_Position=mix(u_matrix*vec4(pos,1),AWAY,hidden);\n#ifdef RENDER_SHADOWS\nv_pos_light_view_0=u_light_matrix_0*vec4(pos,1);v_pos_light_view_1=u_light_matrix_1*vec4(pos,1);v_depth=gl_Position.w;\n#endif\nfloat NdotL=0.0;float colorvalue=0.0;\n#ifdef LIGHTING_3D_MODE\nNdotL=calculate_NdotL(normal);\n#else\ncolorvalue=color.r*0.2126+color.g*0.7152+color.b*0.0722;vec4 ambientlight=vec4(0.03,0.03,0.03,1.0);color+=ambientlight;NdotL=clamp(dot(normal,u_lightpos),0.0,1.0);NdotL=mix((1.0-u_lightintensity),max((1.0-colorvalue+u_lightintensity),1.0),NdotL);\n#endif\nif (normal.y !=0.0) {float r=0.84;\n#ifndef LIGHTING_3D_MODE\nr=mix(0.7,0.98,1.0-u_lightintensity);\n#endif\nNdotL*=(\n(1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),r,1.0)));}v_color=vec4(0.0,0.0,0.0,1.0);\n#ifdef FAUX_AO\nfloat concave=pos_nx.w-floor(pos_nx.w*0.5)*2.0;float start=top_up_ny_start.w;float y_ground=1.0-clamp(t+base,0.0,1.0);float top_height=height;\n#ifdef TERRAIN\ntop_height=mix(max(c_ele+height,ele+base+2.0),ele+height,float(centroid_pos.x==0.0))-ele;y_ground+=y_ground*5.0/max(3.0,top_height);\n#endif\nv_ao=vec3(mix(concave,-concave,start),y_ground,h-ele);NdotL*=(1.0+0.05*(1.0-top_up_ny.y)*u_ao[0]);\n#ifdef PROJECTION_GLOBE_VIEW\ntop_height+=u_height_lift;\n#endif\ngl_Position.z-=(0.0000006*(min(top_height,500.)+2.0*min(base,500.0)+60.0*concave+3.0*start))*gl_Position.w;\n#endif\n#ifdef LIGHTING_3D_MODE\nv_color=apply_lighting(color,NdotL);\n#else\nv_color.rgb+=clamp(color.rgb*NdotL*u_lightcolor,mix(vec3(0.0),vec3(0.3),1.0-u_lightcolor),vec3(1.0));\n#endif\nv_color*=u_opacity;\n#ifdef ZERO_ROOF_RADIUS\nv_roof_color=vec4(0.0,0.0,0.0,1.0);\n#ifdef LIGHTING_3D_MODE\nv_roof_color=apply_lighting(color,calculate_NdotL(vec3(0.0,0.0,1.0)));\n#else\nfloat roofNdotL=clamp(u_lightpos.z,0.0,1.0);roofNdotL=mix((1.0-u_lightintensity),max((1.0-colorvalue+u_lightintensity),1.0),roofNdotL);v_roof_color.rgb+=clamp(color.rgb*roofNdotL*u_lightcolor,mix(vec3(0.0),vec3(0.3),1.0-u_lightcolor),vec3(1.0));\n#endif\nv_roof_color*=u_opacity;\n#endif\n#ifdef FOG\nv_fog_pos=fog_position(pos);\n#endif\n}"),fillExtrusionPattern:ui("uniform vec2 u_texsize;uniform sampler2D u_image;\n#ifdef FAUX_AO\nuniform lowp vec2 u_ao;varying vec3 v_ao;\n#endif\n#ifdef LIGHTING_3D_MODE\nvarying float v_NdotL;\n#endif\nvarying vec2 v_pos;varying vec4 v_lighting;uniform lowp float u_opacity;\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n#pragma mapbox: define lowp vec4 pattern\n#pragma mapbox: define lowp float pixel_ratio\nvoid main() {\n#pragma mapbox: initialize lowp float base\n#pragma mapbox: initialize lowp float height\n#pragma mapbox: initialize mediump vec4 pattern\n#pragma mapbox: initialize lowp float pixel_ratio\nvec2 pattern_tl=pattern.xy;vec2 pattern_br=pattern.zw;vec2 imagecoord=mod(v_pos,1.0);vec2 pos=mix(pattern_tl/u_texsize,pattern_br/u_texsize,imagecoord);vec4 out_color=texture2D(u_image,pos);\n#ifdef LIGHTING_3D_MODE\nout_color=apply_lighting(out_color,v_NdotL)*u_opacity;\n#else\nout_color=out_color*v_lighting;\n#endif\n#ifdef FAUX_AO\nfloat intensity=u_ao[0];float h=max(0.0,v_ao.z);float h_floors=h/u_ao[1];float y_shade=1.0-0.9*intensity*min(v_ao.y,1.0);float shade=(1.0-0.08*intensity)*(y_shade+(1.0-y_shade)*(1.0-pow(1.0-min(h_floors/16.0,1.0),16.0)))+0.08*intensity*min(h_floors/160.0,1.0);float concave=v_ao.x*v_ao.x;float x_shade=mix(1.0,mix(0.6,0.75,min(h_floors/30.0,1.0)),intensity)+0.1*intensity*min(h,1.0);shade*=mix(1.0,x_shade*x_shade*x_shade,concave);out_color.rgb=out_color.rgb*shade;\n#endif\n#ifdef FOG\nout_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos));\n#endif\ngl_FragColor=out_color;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_height_factor;uniform float u_tile_units_to_pixels;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;attribute vec4 a_pos_normal_ed;attribute vec2 a_centroid_pos;\n#ifdef PROJECTION_GLOBE_VIEW\nattribute vec3 a_pos_3;attribute vec3 a_pos_normal_3;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_tile_id;uniform float u_zoom_transition;uniform vec3 u_up_dir;uniform float u_height_lift;\n#endif\nvarying vec2 v_pos;varying vec4 v_lighting;\n#ifdef FAUX_AO\nuniform lowp vec2 u_ao;varying vec3 v_ao;\n#endif\n#ifdef LIGHTING_3D_MODE\nvarying float v_NdotL;\n#endif\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n#pragma mapbox: define lowp vec4 pattern\n#pragma mapbox: define lowp float pixel_ratio\nvoid main() {\n#pragma mapbox: initialize lowp float base\n#pragma mapbox: initialize lowp float height\n#pragma mapbox: initialize mediump vec4 pattern\n#pragma mapbox: initialize lowp float pixel_ratio\nvec2 pattern_tl=pattern.xy;vec2 pattern_br=pattern.zw;vec4 pos_nx=floor(a_pos_normal_ed*0.5);mediump vec4 top_up_ny_start=a_pos_normal_ed-2.0*pos_nx;mediump vec3 top_up_ny=top_up_ny_start.xyz;float x_normal=pos_nx.z/8192.0;vec3 normal=top_up_ny.y==1.0 ? vec3(0.0,0.0,1.0) : normalize(vec3(x_normal,(2.0*top_up_ny.z-1.0)*(1.0-abs(x_normal)),0.0));float edgedistance=a_pos_normal_ed.w;vec2 display_size=(pattern_br-pattern_tl)/pixel_ratio;base=max(0.0,base);height=max(0.0,height);float t=top_up_ny.x;float z=t > 0.0 ? height : base;vec2 centroid_pos=vec2(0.0);\n#if defined(HAS_CENTROID) || defined(TERRAIN)\ncentroid_pos=a_centroid_pos;\n#endif\nfloat ele=0.0;float h=z;vec3 p;float c_ele;\n#ifdef TERRAIN\nbool flat_roof=centroid_pos.x !=0.0 && t > 0.0;ele=elevation(pos_nx.xy);c_ele=flat_roof ? centroid_pos.y==0.0 ? elevationFromUint16(centroid_pos.x) : flatElevation(centroid_pos) : ele;h=flat_roof ? max(c_ele+height,ele+base+2.0) : ele+(t > 0.0 ? height : base==0.0 ?-5.0 : base);p=vec3(pos_nx.xy,h);\n#else\np=vec3(pos_nx.xy,z);\n#endif\n#ifdef PROJECTION_GLOBE_VIEW\nfloat lift=float((t+base) > 0.0)*u_height_lift;h+=lift;vec3 globe_normal=normalize(mix(a_pos_normal_3/16384.0,u_up_dir,u_zoom_transition));vec3 globe_pos=a_pos_3+globe_normal*(u_tile_up_scale*(p.z+lift));vec3 merc_pos=mercator_tile_position(u_inv_rot_matrix,p.xy,u_tile_id,u_merc_center)+u_up_dir*u_tile_up_scale*p.z;p=mix_globe_mercator(globe_pos,merc_pos,u_zoom_transition);\n#endif\nfloat hidden=float(centroid_pos.x==0.0 && centroid_pos.y==1.0);gl_Position=mix(u_matrix*vec4(p,1),AWAY,hidden);vec2 pos=normal.z==1.0\n? pos_nx.xy\n: vec2(edgedistance,z*u_height_factor);v_pos=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,display_size,u_tile_units_to_pixels,pos);v_lighting=vec4(0.0,0.0,0.0,1.0);float NdotL=0.0;\n#ifdef LIGHTING_3D_MODE\nNdotL=calculate_NdotL(normal);\n#else\nNdotL=clamp(dot(normal,u_lightpos),0.0,1.0);NdotL=mix((1.0-u_lightintensity),max((0.5+u_lightintensity),1.0),NdotL);\n#endif\nif (normal.y !=0.0) {float r=0.84;\n#ifndef LIGHTING_3D_MODE\nr=mix(0.7,0.98,1.0-u_lightintensity);\n#endif\nNdotL*=(\n(1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),r,1.0)));}\n#ifdef FAUX_AO\nfloat concave=pos_nx.w-floor(pos_nx.w*0.5)*2.0;float start=top_up_ny_start.w;float y_ground=1.0-clamp(t+base,0.0,1.0);float top_height=height;\n#ifdef TERRAIN\ntop_height=mix(max(c_ele+height,ele+base+2.0),ele+height,float(centroid_pos.x==0.0))-ele;y_ground+=y_ground*5.0/max(3.0,top_height);\n#endif\nv_ao=vec3(mix(concave,-concave,start),y_ground,h-ele);NdotL*=(1.0+0.05*(1.0-top_up_ny.y)*u_ao[0]);\n#ifdef PROJECTION_GLOBE_VIEW\ntop_height+=u_height_lift;\n#endif\ngl_Position.z-=(0.0000006*(min(top_height,500.)+2.0*min(base,500.0)+60.0*concave+3.0*start))*gl_Position.w;\n#endif\n#ifdef LIGHTING_3D_MODE\nv_NdotL=NdotL;\n#else\nv_lighting.rgb+=clamp(NdotL*u_lightcolor,mix(vec3(0.0),vec3(0.3),1.0-u_lightcolor),vec3(1.0));v_lighting*=u_opacity;\n#endif \n#ifdef FOG\nv_fog_pos=fog_position(p);\n#endif\n}"),hillshadePrepare:ui("#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_dimension;uniform float u_zoom;uniform vec4 u_unpack;float getElevation(vec2 coord) {\n#ifdef TERRAIN_DEM_FLOAT_FORMAT\nreturn texture2D(u_image,coord).a/4.0;\n#else\nvec4 data=texture2D(u_image,coord)*255.0;data.a=-1.0;return dot(data,u_unpack)/4.0;\n#endif\n}void main() {vec2 epsilon=1.0/u_dimension;float a=getElevation(v_pos+vec2(-epsilon.x,-epsilon.y));float b=getElevation(v_pos+vec2(0,-epsilon.y));float c=getElevation(v_pos+vec2(epsilon.x,-epsilon.y));float d=getElevation(v_pos+vec2(-epsilon.x,0));float e=getElevation(v_pos+vec2(epsilon.x,0));float f=getElevation(v_pos+vec2(-epsilon.x,epsilon.y));float g=getElevation(v_pos+vec2(0,epsilon.y));float h=getElevation(v_pos+vec2(epsilon.x,epsilon.y));float exaggerationFactor=u_zoom < 2.0 ? 0.4 : u_zoom < 4.5 ? 0.35 : 0.3;float exaggeration=u_zoom < 15.0 ? (u_zoom-15.0)*exaggerationFactor : 0.0;vec2 deriv=vec2(\n(c+e+e+h)-(a+d+d+f),(f+g+g+h)-(a+b+b+c)\n)/pow(2.0,exaggeration+(19.2562-u_zoom));gl_FragColor=clamp(vec4(\nderiv.x/2.0+0.5,deriv.y/2.0+0.5,1.0,1.0),0.0,1.0);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_dimension;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);highp vec2 epsilon=1.0/u_dimension;float scale=(u_dimension.x-2.0)/u_dimension.x;v_pos=(a_texture_pos/8192.0)*scale+epsilon;}"),hillshade:ui("uniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_latrange;uniform vec2 u_light;uniform vec4 u_shadow;uniform vec4 u_highlight;uniform vec4 u_accent;void main() {vec4 pixel=texture2D(u_image,v_pos);vec2 deriv=((pixel.rg*2.0)-1.0);float scaleFactor=cos(radians((u_latrange[0]-u_latrange[1])*(1.0-v_pos.y)+u_latrange[1]));float slope=atan(1.25*length(deriv)/scaleFactor);float aspect=deriv.x !=0.0 ? atan(deriv.y,-deriv.x) : PI/2.0*(deriv.y > 0.0 ? 1.0 :-1.0);float intensity=u_light.x;float azimuth=u_light.y+PI;float base=1.875-intensity*1.75;float maxValue=0.5*PI;float scaledSlope=intensity !=0.5 ? ((pow(base,slope)-1.0)/(pow(base,maxValue)-1.0))*maxValue : slope;float accent=cos(scaledSlope);vec4 accent_color=(1.0-accent)*u_accent*clamp(intensity*2.0,0.0,1.0);float shade=abs(mod((aspect+azimuth)/PI+0.5,2.0)-1.0);vec4 shade_color=mix(u_shadow,u_highlight,shade)*sin(scaledSlope)*clamp(intensity*2.0,0.0,1.0);gl_FragColor=accent_color*(1.0-shade_color.a)+shade_color;\n#ifdef LIGHTING_3D_MODE\ngl_FragColor=apply_lighting(gl_FragColor);\n#endif\n#ifdef FOG\ngl_FragColor=fog_dither(fog_apply_premultiplied(gl_FragColor,v_fog_pos));\n#endif\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos=a_texture_pos/8192.0;\n#ifdef FOG\nv_fog_pos=fog_position(a_pos);\n#endif\n}"),line:ui("uniform lowp float u_device_pixel_ratio;uniform float u_alpha_discard_threshold;uniform highp vec2 u_trim_offset;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale;varying highp vec4 v_uv;\n#ifdef RENDER_LINE_DASH\nuniform sampler2D u_dash_image;varying vec2 v_tex;\n#endif\n#ifdef RENDER_LINE_GRADIENT\nuniform sampler2D u_gradient_image;\n#endif\nuniform float u_border_width;uniform vec4 u_border_color;float luminance(vec3 c) {return (c.r+c.r+c.b+c.g+c.g+c.g)*0.1667;}\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float floorwidth\n#pragma mapbox: define lowp vec4 dash\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\nfloat linearstep(float edge0,float edge1,float x) {return clamp((x-edge0)/(edge1-edge0),0.0,1.0);}void main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float floorwidth\n#pragma mapbox: initialize lowp vec4 dash\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);\n#ifdef RENDER_LINE_DASH\nfloat sdfdist=texture2D(u_dash_image,v_tex).a;float sdfgamma=1.0/(2.0*u_device_pixel_ratio)/dash.z;alpha*=linearstep(0.5-sdfgamma/floorwidth,0.5+sdfgamma/floorwidth,sdfdist);\n#endif\nhighp vec4 out_color;\n#ifdef RENDER_LINE_GRADIENT\nout_color=texture2D(u_gradient_image,v_uv.xy);\n#else\nout_color=color;\n#endif\nfloat trimmed=1.0;\n#ifdef RENDER_LINE_TRIM_OFFSET\nhighp float start=v_uv[2];highp float end=v_uv[3];highp float trim_start=u_trim_offset[0];highp float trim_end=u_trim_offset[1];highp float line_progress=(start+(v_uv.x)*(end-start));if (trim_end > trim_start) {if (line_progress <=trim_end && line_progress >=trim_start) {out_color=vec4(0,0,0,0);trimmed=0.0;}}\n#endif\n#ifdef LIGHTING_3D_MODE\nout_color=apply_lighting(out_color);\n#endif\n#ifdef FOG\nout_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos));\n#endif\n#ifdef RENDER_LINE_ALPHA_DISCARD\nif (alpha < u_alpha_discard_threshold) {discard;}\n#endif\n#ifdef RENDER_LINE_BORDER\nfloat edgeBlur=(u_border_width+1.0/u_device_pixel_ratio);float alpha2=clamp(min(dist-(v_width2.t-edgeBlur),v_width2.s-dist)/edgeBlur,0.0,1.0);if (alpha2 < 1.) {float smoothAlpha=smoothstep(0.6,1.0,alpha2);\n#ifdef RENDER_LINE_BORDER_AUTO\nfloat Y=(out_color.a > 0.01) ? luminance(out_color.rgb/out_color.a) : 1.;float adjustment=(Y > 0.) ? 0.5/Y : 0.45;if (out_color.a > 0.25 && Y < 0.25) {vec3 borderColor=(Y > 0.) ? out_color.rgb : vec3(1,1,1)*out_color.a;out_color.rgb=out_color.rgb+borderColor*(adjustment*(1.0-smoothAlpha));} else {out_color.rgb*=(0.6 +0.4*smoothAlpha);}\n#else\nout_color.rgb=mix(u_border_color.rgb*u_border_color.a*trimmed,out_color.rgb,smoothAlpha);\n#endif\n}\n#endif\ngl_FragColor=out_color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","\n#define EXTRUDE_SCALE 0.015873016\nattribute vec2 a_pos_normal;attribute vec4 a_data;\n#if defined(RENDER_LINE_GRADIENT) || defined(RENDER_LINE_TRIM_OFFSET)\nattribute highp vec4 a_packed;\n#endif\n#ifdef RENDER_LINE_DASH\nattribute float a_linesofar;\n#endif\nuniform mat4 u_matrix;uniform mat2 u_pixels_to_tile_units;uniform vec2 u_units_to_pixels;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;varying highp vec4 v_uv;\n#ifdef RENDER_LINE_DASH\nuniform vec2 u_texsize;uniform float u_tile_units_to_pixels;varying vec2 v_tex;\n#endif\n#ifdef RENDER_LINE_GRADIENT\nuniform float u_image_height;\n#endif\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float floorwidth\n#pragma mapbox: define lowp vec4 dash\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float width\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float floorwidth\n#pragma mapbox: initialize lowp vec4 dash\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float width\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*EXTRUDE_SCALE;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*EXTRUDE_SCALE*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist*u_pixels_to_tile_units,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2*u_pixels_to_tile_units,0.0,1.0)+projected_extrude;\n#ifndef RENDER_TO_TEXTURE\nfloat extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;\n#else\nv_gamma_scale=1.0;\n#endif\n#if defined(RENDER_LINE_GRADIENT) || defined(RENDER_LINE_TRIM_OFFSET)\nfloat a_uv_x=a_packed[0];float a_split_index=a_packed[1];highp float a_clip_start=a_packed[2];highp float a_clip_end=a_packed[3];\n#ifdef RENDER_LINE_GRADIENT\nhighp float texel_height=1.0/u_image_height;highp float half_texel_height=0.5*texel_height;v_uv=vec4(a_uv_x,a_split_index*texel_height-half_texel_height,a_clip_start,a_clip_end);\n#else\nv_uv=vec4(a_uv_x,0.0,a_clip_start,a_clip_end);\n#endif\n#endif\n#ifdef RENDER_LINE_DASH\nfloat scale=dash.z==0.0 ? 0.0 : u_tile_units_to_pixels/dash.z;float height=dash.y;v_tex=vec2(a_linesofar*scale/floorwidth,(-normal.y*height+dash.x+0.5)/u_texsize.y);\n#endif\nv_width2=vec2(outset,inset);\n#ifdef FOG\nv_fog_pos=fog_position(pos);\n#endif\n}"),linePattern:ui("uniform lowp float u_device_pixel_ratio;uniform vec2 u_texsize;uniform float u_tile_units_to_pixels;uniform sampler2D u_image;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width;\n#pragma mapbox: define lowp vec4 pattern\n#pragma mapbox: define lowp float pixel_ratio\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize mediump vec4 pattern\n#pragma mapbox: initialize lowp float pixel_ratio\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\nvec2 pattern_tl=pattern.xy;vec2 pattern_br=pattern.zw;vec2 display_size=(pattern_br-pattern_tl)/pixel_ratio;vec2 pattern_size=vec2(display_size.x/u_tile_units_to_pixels,display_size.y);float aspect=display_size.y/v_width;float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float x=mod(v_linesofar/pattern_size.x*aspect,1.0);float y=0.5*v_normal.y+0.5;vec2 texel_size=1.0/u_texsize;vec2 pos=mix(pattern_tl*texel_size-texel_size,pattern_br*texel_size+texel_size,vec2(x,y));vec4 color=texture2D(u_image,pos);\n#ifdef LIGHTING_3D_MODE\ncolor=apply_lighting(color);\n#endif\n#ifdef FOG\ncolor=fog_dither(fog_apply_premultiplied(color,v_fog_pos));\n#endif\ngl_FragColor=color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","\n#define scale 0.015873016\nattribute vec2 a_pos_normal;attribute vec4 a_data;attribute float a_linesofar;uniform mat4 u_matrix;uniform vec2 u_units_to_pixels;uniform mat2 u_pixels_to_tile_units;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width;\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define mediump float width\n#pragma mapbox: define lowp float floorwidth\n#pragma mapbox: define lowp vec4 pattern\n#pragma mapbox: define lowp float pixel_ratio\nvoid main() {\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize mediump float width\n#pragma mapbox: initialize lowp float floorwidth\n#pragma mapbox: initialize mediump vec4 pattern\n#pragma mapbox: initialize lowp float pixel_ratio\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist*u_pixels_to_tile_units,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2*u_pixels_to_tile_units,0.0,1.0)+projected_extrude;\n#ifndef RENDER_TO_TEXTURE\nfloat extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;\n#else\nv_gamma_scale=1.0;\n#endif\nv_linesofar=a_linesofar;v_width2=vec2(outset,inset);v_width=floorwidth;\n#ifdef FOG\nv_fog_pos=fog_position(pos);\n#endif\n}"),raster:ui("uniform float u_fade_t;uniform float u_opacity;uniform sampler2D u_image0;uniform sampler2D u_image1;varying vec2 v_pos0;varying vec2 v_pos1;uniform float u_brightness_low;uniform float u_brightness_high;uniform float u_saturation_factor;uniform float u_contrast_factor;uniform vec3 u_spin_weights;void main() {vec4 color0=texture2D(u_image0,v_pos0);vec4 color1=texture2D(u_image1,v_pos1);if (color0.a > 0.0) {color0.rgb=color0.rgb/color0.a;}if (color1.a > 0.0) {color1.rgb=color1.rgb/color1.a;}vec4 color=mix(color0,color1,u_fade_t);color.a*=u_opacity;vec3 rgb=color.rgb;rgb=vec3(\ndot(rgb,u_spin_weights.xyz),dot(rgb,u_spin_weights.zxy),dot(rgb,u_spin_weights.yzx));float average=(color.r+color.g+color.b)/3.0;rgb+=(average-rgb)*u_saturation_factor;rgb=(rgb-0.5)*u_contrast_factor+0.5;vec3 u_high_vec=vec3(u_brightness_low,u_brightness_low,u_brightness_low);vec3 u_low_vec=vec3(u_brightness_high,u_brightness_high,u_brightness_high);vec3 out_color=mix(u_high_vec,u_low_vec,rgb);\n#ifdef LIGHTING_3D_MODE\nout_color=apply_lighting(out_color);\n#endif\n#ifdef FOG\nout_color=fog_dither(fog_apply(out_color,v_fog_pos));\n#endif\ngl_FragColor=vec4(out_color*color.a,color.a);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_tl_parent;uniform float u_scale_parent;uniform vec2 u_perspective_transform;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos0;varying vec2 v_pos1;void main() {float w=1.0+dot(a_texture_pos,u_perspective_transform);gl_Position=u_matrix*vec4(a_pos*w,0,w);v_pos0=a_texture_pos/8192.0;v_pos1=(v_pos0*u_scale_parent)+u_tl_parent;\n#ifdef FOG\nv_fog_pos=fog_position(a_pos);\n#endif\n}"),symbolIcon:ui("uniform sampler2D u_texture;varying vec2 v_tex;varying float v_fade_opacity;\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\nlowp float alpha=opacity*v_fade_opacity;gl_FragColor=texture2D(u_texture,v_tex)*alpha;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","attribute vec4 a_pos_offset;attribute vec4 a_tex_size;attribute vec4 a_pixeloffset;attribute vec4 a_projected_pos;attribute float a_fade_opacity;\n#ifdef PROJECTION_GLOBE_VIEW\nattribute vec3 a_globe_anchor;attribute vec3 a_globe_normal;\n#endif\nuniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform highp float u_camera_to_center_distance;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform float u_fade_change;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform vec2 u_texsize;uniform vec3 u_up_vector;\n#ifdef PROJECTION_GLOBE_VIEW\nuniform vec3 u_tile_id;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_camera_forward;uniform float u_zoom_transition;uniform vec3 u_ecef_origin;uniform mat4 u_tile_matrix;\n#endif\nvarying vec2 v_tex;varying float v_fade_opacity;\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_tex_size.xy;vec2 a_size=a_tex_size.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;vec2 a_min_font_scale=a_pixeloffset.zw/256.0;highp float segment_angle=-a_projected_pos[3];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec2 tile_anchor=a_pos;vec3 h=elevationVector(tile_anchor)*elevation(tile_anchor);float globe_occlusion_fade;vec3 world_pos;vec3 mercator_pos;\n#ifdef PROJECTION_GLOBE_VIEW\nmercator_pos=mercator_tile_position(u_inv_rot_matrix,tile_anchor,u_tile_id,u_merc_center);world_pos=mix_globe_mercator(a_globe_anchor+h,mercator_pos,u_zoom_transition);vec4 ecef_point=u_tile_matrix*vec4(world_pos,1.0);vec3 origin_to_point=ecef_point.xyz-u_ecef_origin;globe_occlusion_fade=dot(origin_to_point,u_camera_forward) >=0.0 ? 0.0 : 1.0;\n#else\nworld_pos=vec3(tile_anchor,0)+h;globe_occlusion_fade=1.0;\n#endif\nvec4 projected_point=u_matrix*vec4(world_pos,1);highp float camera_to_anchor_distance=projected_point.w;highp float distance_ratio=u_pitch_with_map ?\ncamera_to_anchor_distance/u_camera_to_center_distance :\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(\n0.5+0.5*distance_ratio,0.0,1.5);size*=perspective_ratio;float font_scale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjected_point;\n#ifdef PROJECTION_GLOBE_VIEW\nvec3 displacement=vec3(a_globe_normal.z,0,-a_globe_normal.x);offsetProjected_point=u_matrix*vec4(a_globe_anchor+displacement,1);\n#else\noffsetProjected_point=u_matrix*vec4(tile_anchor+vec2(1,0),0,1);\n#endif\nvec2 a=projected_point.xy/projected_point.w;vec2 b=offsetProjected_point.xy/offsetProjected_point.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}vec4 projected_pos;\n#ifdef PROJECTION_GLOBE_VIEW\nvec3 proj_pos=mix_globe_mercator(a_projected_pos.xyz+h,mercator_pos,u_zoom_transition);projected_pos=u_label_plane_matrix*vec4(proj_pos,1.0);\n#else\nprojected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,h.z,1.0);\n#endif\nhighp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);float z=0.0;vec2 offset=rotation_matrix*(a_offset/32.0*max(a_min_font_scale,font_scale)+a_pxoffset/16.0);\n#ifdef TERRAIN\n#ifdef PITCH_WITH_MAP_TERRAIN\nvec4 tile_pos=u_label_plane_matrix_inv*vec4(a_projected_pos.xy+offset,0.0,1.0);z=elevation(tile_pos.xy);\n#endif\n#endif\nfloat occlusion_fade=occlusionFade(projected_point)*globe_occlusion_fade;\n#ifdef PROJECTION_GLOBE_VIEW\nvec3 xAxis=u_pitch_with_map ? normalize(cross(a_globe_normal,u_up_vector)) : vec3(1,0,0);vec3 yAxis=u_pitch_with_map ? normalize(cross(a_globe_normal,xAxis)) : vec3(0,1,0);gl_Position=mix(u_coord_matrix*vec4(projected_pos.xyz/projected_pos.w+xAxis*offset.x+yAxis*offset.y,1.0),AWAY,float(projected_point.w <=0.0 || occlusion_fade==0.0));\n#else\ngl_Position=mix(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+offset,z,1.0),AWAY,float(projected_point.w <=0.0 || occlusion_fade==0.0));\n#endif\nfloat projection_transition_fade=1.0;\n#if defined(PROJECTED_POS_ON_VIEWPORT) && defined(PROJECTION_GLOBE_VIEW)\nprojection_transition_fade=1.0-step(EPSILON,u_zoom_transition);\n#endif\nv_tex=a_tex/u_texsize;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;v_fade_opacity=max(0.0,min(occlusion_fade,fade_opacity[0]+fade_change))*projection_transition_fade;}"),symbolSDF:ui("#define SDF_PX 8.0\nuniform bool u_is_halo;uniform sampler2D u_texture;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;uniform bool u_is_text;varying vec2 v_data0;varying vec3 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nfloat EDGE_GAMMA=0.105/u_device_pixel_ratio;vec2 tex=v_data0.xy;float gamma_scale=v_data1.x;float size=v_data1.y;float fade_opacity=v_data1[2];float fontScale=u_is_text ? size/24.0 : size;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","attribute vec4 a_pos_offset;attribute vec4 a_tex_size;attribute vec4 a_pixeloffset;attribute vec4 a_projected_pos;attribute float a_fade_opacity;\n#ifdef PROJECTION_GLOBE_VIEW\nattribute vec3 a_globe_anchor;attribute vec3 a_globe_normal;\n#endif\nuniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;uniform vec3 u_up_vector;\n#ifdef PROJECTION_GLOBE_VIEW\nuniform vec3 u_tile_id;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_camera_forward;uniform float u_zoom_transition;uniform vec3 u_ecef_origin;uniform mat4 u_tile_matrix;\n#endif\nvarying vec2 v_data0;varying vec3 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_tex_size.xy;vec2 a_size=a_tex_size.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;highp float segment_angle=-a_projected_pos[3];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec2 tile_anchor=a_pos;vec3 h=elevationVector(tile_anchor)*elevation(tile_anchor);float globe_occlusion_fade;vec3 world_pos;vec3 mercator_pos;\n#ifdef PROJECTION_GLOBE_VIEW\nmercator_pos=mercator_tile_position(u_inv_rot_matrix,tile_anchor,u_tile_id,u_merc_center);world_pos=mix_globe_mercator(a_globe_anchor+h,mercator_pos,u_zoom_transition);vec4 ecef_point=u_tile_matrix*vec4(world_pos,1.0);vec3 origin_to_point=ecef_point.xyz-u_ecef_origin;globe_occlusion_fade=dot(origin_to_point,u_camera_forward) >=0.0 ? 0.0 : 1.0;\n#else\nworld_pos=vec3(tile_anchor,0)+h;globe_occlusion_fade=1.0;\n#endif\nvec4 projected_point=u_matrix*vec4(world_pos,1);highp float camera_to_anchor_distance=projected_point.w;highp float distance_ratio=u_pitch_with_map ?\ncamera_to_anchor_distance/u_camera_to_center_distance :\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(\n0.5+0.5*distance_ratio,0.0,1.5);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetprojected_point;\n#ifdef PROJECTION_GLOBE_VIEW\nvec3 displacement=vec3(a_globe_normal.z,0,-a_globe_normal.x);offsetprojected_point=u_matrix*vec4(a_globe_anchor+displacement,1);\n#else\noffsetprojected_point=u_matrix*vec4(tile_anchor+vec2(1,0),0,1);\n#endif\nvec2 a=projected_point.xy/projected_point.w;vec2 b=offsetprojected_point.xy/offsetprojected_point.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}vec4 projected_pos;\n#ifdef PROJECTION_GLOBE_VIEW\nvec3 proj_pos=mix_globe_mercator(a_projected_pos.xyz+h,mercator_pos,u_zoom_transition);projected_pos=u_label_plane_matrix*vec4(proj_pos,1.0);\n#else\nprojected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,h.z,1.0);\n#endif\nhighp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);float z=0.0;vec2 offset=rotation_matrix*(a_offset/32.0*fontScale+a_pxoffset);\n#ifdef TERRAIN\n#ifdef PITCH_WITH_MAP_TERRAIN\nvec4 tile_pos=u_label_plane_matrix_inv*vec4(a_projected_pos.xy+offset,0.0,1.0);z=elevation(tile_pos.xy);\n#endif\n#endif\nfloat occlusion_fade=occlusionFade(projected_point)*globe_occlusion_fade;\n#ifdef PROJECTION_GLOBE_VIEW\nvec3 xAxis=u_pitch_with_map ? normalize(cross(a_globe_normal,u_up_vector)) : vec3(1,0,0);vec3 yAxis=u_pitch_with_map ? normalize(cross(a_globe_normal,xAxis)) : vec3(0,1,0);gl_Position=mix(u_coord_matrix*vec4(projected_pos.xyz/projected_pos.w+xAxis*offset.x+yAxis*offset.y,1.0),AWAY,float(projected_point.w <=0.0 || occlusion_fade==0.0));\n#else\ngl_Position=mix(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+offset,z,1.0),AWAY,float(projected_point.w <=0.0 || occlusion_fade==0.0));\n#endif\nfloat gamma_scale=gl_Position.w;float projection_transition_fade=1.0;\n#if defined(PROJECTED_POS_ON_VIEWPORT) && defined(PROJECTION_GLOBE_VIEW)\nprojection_transition_fade=1.0-step(EPSILON,u_zoom_transition);\n#endif\nvec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(occlusion_fade,fade_opacity[0]+fade_change));v_data0=a_tex/u_texsize;v_data1=vec3(gamma_scale,size,interpolated_fade_opacity*projection_transition_fade);}"),symbolTextAndIcon:ui("#define SDF_PX 8.0\n#define SDF 1.0\n#define ICON 0.0\nuniform bool u_is_halo;uniform sampler2D u_texture;uniform sampler2D u_texture_icon;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;varying vec4 v_data0;varying vec4 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nfloat fade_opacity=v_data1[2];if (v_data1.w==ICON) {vec2 tex_icon=v_data0.zw;lowp float alpha=opacity*fade_opacity;gl_FragColor=texture2D(u_texture_icon,tex_icon)*alpha;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\nreturn;}vec2 tex=v_data0.xy;float EDGE_GAMMA=0.105/u_device_pixel_ratio;float gamma_scale=v_data1.x;float size=v_data1.y;float fontScale=size/24.0;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","attribute vec4 a_pos_offset;attribute vec4 a_tex_size;attribute vec4 a_projected_pos;attribute float a_fade_opacity;\n#ifdef PROJECTION_GLOBE_VIEW\nattribute vec3 a_globe_anchor;attribute vec3 a_globe_normal;\n#endif\nuniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;uniform vec3 u_up_vector;uniform vec2 u_texsize_icon;\n#ifdef PROJECTION_GLOBE_VIEW\nuniform vec3 u_tile_id;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_camera_forward;uniform float u_zoom_transition;uniform vec3 u_ecef_origin;uniform mat4 u_tile_matrix;\n#endif\nvarying vec4 v_data0;varying vec4 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_tex_size.xy;vec2 a_size=a_tex_size.zw;float a_size_min=floor(a_size[0]*0.5);float is_sdf=a_size[0]-2.0*a_size_min;highp float segment_angle=-a_projected_pos[3];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec2 tile_anchor=a_pos;vec3 h=elevationVector(tile_anchor)*elevation(tile_anchor);float globe_occlusion_fade;vec3 world_pos;vec3 mercator_pos;\n#ifdef PROJECTION_GLOBE_VIEW\nmercator_pos=mercator_tile_position(u_inv_rot_matrix,tile_anchor,u_tile_id,u_merc_center);world_pos=mix_globe_mercator(a_globe_anchor+h,mercator_pos,u_zoom_transition);vec4 ecef_point=u_tile_matrix*vec4(world_pos,1.0);vec3 origin_to_point=ecef_point.xyz-u_ecef_origin;globe_occlusion_fade=dot(origin_to_point,u_camera_forward) >=0.0 ? 0.0 : 1.0;\n#else\nworld_pos=vec3(tile_anchor,0)+h;globe_occlusion_fade=1.0;\n#endif\nvec4 projected_point=u_matrix*vec4(world_pos,1);highp float camera_to_anchor_distance=projected_point.w;highp float distance_ratio=u_pitch_with_map ?\ncamera_to_anchor_distance/u_camera_to_center_distance :\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(\n0.5+0.5*distance_ratio,0.0,1.5);size*=perspective_ratio;float font_scale=size/24.0;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offset_projected_point=u_matrix*vec4(a_pos+vec2(1,0),0,1);vec2 a=projected_point.xy/projected_point.w;vec2 b=offset_projected_point.xy/offset_projected_point.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}vec4 projected_pos;\n#ifdef PROJECTION_GLOBE_VIEW\nvec3 proj_pos=mix_globe_mercator(a_projected_pos.xyz+h,mercator_pos,u_zoom_transition);projected_pos=u_label_plane_matrix*vec4(proj_pos,1.0);\n#else\nprojected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,h.z,1.0);\n#endif\nhighp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);float z=0.0;vec2 offset=rotation_matrix*(a_offset/32.0*font_scale);\n#ifdef TERRAIN\n#ifdef PITCH_WITH_MAP_TERRAIN\nvec4 tile_pos=u_label_plane_matrix_inv*vec4(a_projected_pos.xy+offset,0.0,1.0);z=elevation(tile_pos.xy);\n#endif\n#endif\nfloat occlusion_fade=occlusionFade(projected_point)*globe_occlusion_fade;\n#ifdef PROJECTION_GLOBE_VIEW\nvec3 xAxis=u_pitch_with_map ? normalize(cross(a_globe_normal,u_up_vector)) : vec3(1,0,0);vec3 yAxis=u_pitch_with_map ? normalize(cross(a_globe_normal,xAxis)) : vec3(0,1,0);gl_Position=mix(u_coord_matrix*vec4(projected_pos.xyz/projected_pos.w+xAxis*offset.x+yAxis*offset.y,1.0),AWAY,float(projected_point.w <=0.0 || occlusion_fade==0.0));\n#else\ngl_Position=mix(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+offset,z,1.0),AWAY,float(projected_point.w <=0.0 || occlusion_fade==0.0));\n#endif\nfloat gamma_scale=gl_Position.w;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(occlusion_fade,fade_opacity[0]+fade_change));float projection_transition_fade=1.0;\n#if defined(PROJECTED_POS_ON_VIEWPORT) && defined(PROJECTION_GLOBE_VIEW)\nprojection_transition_fade=1.0-step(EPSILON,u_zoom_transition);\n#endif\nv_data0.xy=a_tex/u_texsize;v_data0.zw=a_tex/u_texsize_icon;v_data1=vec4(gamma_scale,size,interpolated_fade_opacity*projection_transition_fade,is_sdf);}"),terrainRaster:ui("uniform sampler2D u_image0;varying vec2 v_pos0;\n#ifdef FOG\nvarying float v_fog_opacity;\n#endif\n#ifdef RENDER_SHADOWS\nvarying vec4 v_pos_light_view_0;varying vec4 v_pos_light_view_1;varying float v_depth;\n#endif\nvoid main() {vec4 color=texture2D(u_image0,v_pos0);\n#ifdef RENDER_SHADOWS\ncolor.xyz=shadowed_color(color.xyz,v_pos_light_view_0,v_pos_light_view_1,v_depth);\n#endif\n#ifdef FOG\n#ifdef ZERO_EXAGGERATION\ncolor=fog_dither(fog_apply_premultiplied(color,v_fog_pos));\n#else\ncolor=fog_dither(fog_apply_from_vert(color,v_fog_opacity));\n#endif\n#endif\ngl_FragColor=color;\n#ifdef TERRAIN_WIREFRAME\ngl_FragColor=vec4(1.0,0.0,0.0,0.8);\n#endif\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform float u_skirt_height;attribute vec2 a_pos;varying vec2 v_pos0;\n#ifdef FOG\nvarying float v_fog_opacity;\n#endif\n#ifdef RENDER_SHADOWS\nuniform mat4 u_light_matrix_0;uniform mat4 u_light_matrix_1;varying vec4 v_pos_light_view_0;varying vec4 v_pos_light_view_1;varying float v_depth;\n#endif\nconst float wireframeOffset=0.00015;void main() {vec3 decomposedPosAndSkirt=decomposeToPosAndSkirt(a_pos);float skirt=decomposedPosAndSkirt.z;vec2 decodedPos=decomposedPosAndSkirt.xy;float elevation=elevation(decodedPos)-skirt*u_skirt_height;\n#ifdef TERRAIN_WIREFRAME\nelevation+=wireframeOffset;\n#endif\nv_pos0=decodedPos/8192.0;gl_Position=u_matrix*vec4(decodedPos,elevation,1.0);\n#ifdef FOG\n#ifdef ZERO_EXAGGERATION\nv_fog_pos=fog_position(decodedPos);\n#else\nv_fog_opacity=fog(fog_position(vec3(decodedPos,elevation)));\n#endif\n#endif\n#ifdef RENDER_SHADOWS\nvec3 pos=vec3(decodedPos,elevation);v_pos_light_view_0=u_light_matrix_0*vec4(pos,1.);v_pos_light_view_1=u_light_matrix_1*vec4(pos,1.);v_depth=gl_Position.w;\n#endif\n}"),terrainDepth:ui("#ifdef GL_ES\nprecision highp float;\n#endif\nvarying float v_depth;void main() {gl_FragColor=pack_depth(v_depth);}","uniform mat4 u_matrix;attribute vec2 a_pos;varying float v_depth;void main() {float elevation=elevation(a_pos);gl_Position=u_matrix*vec4(a_pos,elevation,1.0);v_depth=gl_Position.z/gl_Position.w;}"),skybox:ui("\nvarying lowp vec3 v_uv;uniform lowp samplerCube u_cubemap;uniform lowp float u_opacity;uniform highp float u_temporal_offset;uniform highp vec3 u_sun_direction;float sun_disk(highp vec3 ray_direction,highp vec3 sun_direction) {highp float cos_angle=dot(normalize(ray_direction),sun_direction);const highp float cos_sun_angular_diameter=0.99996192306;const highp float smoothstep_delta=1e-5;return smoothstep(\ncos_sun_angular_diameter-smoothstep_delta,cos_sun_angular_diameter+smoothstep_delta,cos_angle);}float map(float value,float start,float end,float new_start,float new_end) {return ((value-start)*(new_end-new_start))/(end-start)+new_start;}void main() {vec3 uv=v_uv;const float y_bias=0.015;uv.y+=y_bias;uv.y=pow(abs(uv.y),1.0/5.0);uv.y=map(uv.y,0.0,1.0,-1.0,1.0);vec3 sky_color=textureCube(u_cubemap,uv).rgb;\n#ifdef FOG\nsky_color=fog_apply_sky_gradient(v_uv.xzy,sky_color);\n#endif\nsky_color.rgb=dither(sky_color.rgb,gl_FragCoord.xy+u_temporal_offset);sky_color+=0.1*sun_disk(v_uv,u_sun_direction);gl_FragColor=vec4(sky_color*u_opacity,u_opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}",Qt),skyboxGradient:ui("varying highp vec3 v_uv;uniform lowp sampler2D u_color_ramp;uniform highp vec3 u_center_direction;uniform lowp float u_radius;uniform lowp float u_opacity;uniform highp float u_temporal_offset;void main() {float progress=acos(dot(normalize(v_uv),u_center_direction))/u_radius;vec4 color=texture2D(u_color_ramp,vec2(progress,0.5));\n#ifdef FOG\ncolor.rgb=fog_apply_sky_gradient(v_uv.xzy,color.rgb/color.a)*color.a;\n#endif\ncolor*=u_opacity;color.rgb=dither(color.rgb,gl_FragCoord.xy+u_temporal_offset);gl_FragColor=color;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}",Qt),skyboxCapture:ui("\nvarying highp vec3 v_position;uniform highp float u_sun_intensity;uniform highp float u_luminance;uniform lowp vec3 u_sun_direction;uniform highp vec4 u_color_tint_r;uniform highp vec4 u_color_tint_m;\n#ifdef GL_ES\nprecision highp float;\n#endif\n#define BETA_R vec3(5.5e-6,13.0e-6,22.4e-6)\n#define BETA_M vec3(21e-6,21e-6,21e-6)\n#define MIE_G 0.76\n#define DENSITY_HEIGHT_SCALE_R 8000.0\n#define DENSITY_HEIGHT_SCALE_M 1200.0\n#define PLANET_RADIUS 6360e3\n#define ATMOSPHERE_RADIUS 6420e3\n#define SAMPLE_STEPS 10\n#define DENSITY_STEPS 4\nfloat ray_sphere_exit(vec3 orig,vec3 dir,float radius) {float a=dot(dir,dir);float b=2.0*dot(dir,orig);float c=dot(orig,orig)-radius*radius;float d=sqrt(b*b-4.0*a*c);return (-b+d)/(2.0*a);}vec3 extinction(vec2 density) {return exp(-vec3(BETA_R*u_color_tint_r.a*density.x+BETA_M*u_color_tint_m.a*density.y));}vec2 local_density(vec3 point) {float height=max(length(point)-PLANET_RADIUS,0.0);float exp_r=exp(-height/DENSITY_HEIGHT_SCALE_R);float exp_m=exp(-height/DENSITY_HEIGHT_SCALE_M);return vec2(exp_r,exp_m);}float phase_ray(float cos_angle) {return (3.0/(16.0*PI))*(1.0+cos_angle*cos_angle);}float phase_mie(float cos_angle) {return (3.0/(8.0*PI))*((1.0-MIE_G*MIE_G)*(1.0+cos_angle*cos_angle))/((2.0+MIE_G*MIE_G)*pow(1.0+MIE_G*MIE_G-2.0*MIE_G*cos_angle,1.5));}vec2 density_to_atmosphere(vec3 point,vec3 light_dir) {float ray_len=ray_sphere_exit(point,light_dir,ATMOSPHERE_RADIUS);float step_len=ray_len/float(DENSITY_STEPS);vec2 density_point_to_atmosphere=vec2(0.0);for (int i=0; i < DENSITY_STEPS;++i) {vec3 point_on_ray=point+light_dir*((float(i)+0.5)*step_len);density_point_to_atmosphere+=local_density(point_on_ray)*step_len;;}return density_point_to_atmosphere;}vec3 atmosphere(vec3 ray_dir,vec3 sun_direction,float sun_intensity) {vec2 density_orig_to_point=vec2(0.0);vec3 scatter_r=vec3(0.0);vec3 scatter_m=vec3(0.0);vec3 origin=vec3(0.0,PLANET_RADIUS,0.0);float ray_len=ray_sphere_exit(origin,ray_dir,ATMOSPHERE_RADIUS);float step_len=ray_len/float(SAMPLE_STEPS);for (int i=0; i < SAMPLE_STEPS;++i) {vec3 point_on_ray=origin+ray_dir*((float(i)+0.5)*step_len);vec2 density=local_density(point_on_ray)*step_len;density_orig_to_point+=density;vec2 density_point_to_atmosphere=density_to_atmosphere(point_on_ray,sun_direction);vec2 density_orig_to_atmosphere=density_orig_to_point+density_point_to_atmosphere;vec3 extinction=extinction(density_orig_to_atmosphere);scatter_r+=density.x*extinction;scatter_m+=density.y*extinction;}float cos_angle=dot(ray_dir,sun_direction);float phase_r=phase_ray(cos_angle);float phase_m=phase_mie(cos_angle);vec3 beta_r=BETA_R*u_color_tint_r.rgb*u_color_tint_r.a;vec3 beta_m=BETA_M*u_color_tint_m.rgb*u_color_tint_m.a;return (scatter_r*phase_r*beta_r+scatter_m*phase_m*beta_m)*sun_intensity;}const float A=0.15;const float B=0.50;const float C=0.10;const float D=0.20;const float E=0.02;const float F=0.30;vec3 uncharted2_tonemap(vec3 x) {return ((x*(A*x+C*B)+D*E)/(x*(A*x+B)+D*F))-E/F;}void main() {vec3 ray_direction=v_position;ray_direction.y=pow(ray_direction.y,5.0);const float y_bias=0.015;ray_direction.y+=y_bias;vec3 color=atmosphere(normalize(ray_direction),u_sun_direction,u_sun_intensity);float white_scale=1.0748724675633854;color=uncharted2_tonemap((log2(2.0/pow(u_luminance,4.0)))*color)*white_scale;gl_FragColor=vec4(color,1.0);}","attribute highp vec3 a_pos_3f;uniform mat3 u_matrix_3f;varying highp vec3 v_position;float map(float value,float start,float end,float new_start,float new_end) {return ((value-start)*(new_end-new_start))/(end-start)+new_start;}void main() {vec4 pos=vec4(u_matrix_3f*a_pos_3f,1.0);v_position=pos.xyz;v_position.y*=-1.0;v_position.y=map(v_position.y,-1.0,1.0,0.0,1.0);gl_Position=vec4(a_pos_3f.xy,0.0,1.0);}"),globeRaster:ui("uniform sampler2D u_image0;varying vec2 v_pos0;\n#ifndef FOG\nuniform highp vec3 u_frustum_tl;uniform highp vec3 u_frustum_tr;uniform highp vec3 u_frustum_br;uniform highp vec3 u_frustum_bl;uniform highp vec3 u_globe_pos;uniform highp float u_globe_radius;uniform vec2 u_viewport;\n#endif\nvoid main() {vec4 color;\n#ifdef CUSTOM_ANTIALIASING\nvec2 uv=gl_FragCoord.xy/u_viewport;highp vec3 ray_dir=mix(\nmix(u_frustum_tl,u_frustum_tr,uv.x),mix(u_frustum_bl,u_frustum_br,uv.x),1.0-uv.y);vec3 dir=normalize(ray_dir);vec3 closest_point=dot(u_globe_pos,dir)*dir;float norm_dist_from_center=1.0-length(closest_point-u_globe_pos)/u_globe_radius;const float antialias_pixel=2.0;float antialias_factor=antialias_pixel*fwidth(norm_dist_from_center);float antialias=smoothstep(0.0,antialias_factor,norm_dist_from_center);vec4 raster=texture2D(u_image0,v_pos0);color=vec4(raster.rgb*antialias,raster.a*antialias);\n#else\ncolor=texture2D(u_image0,v_pos0);\n#endif\n#ifdef FOG\ncolor=fog_dither(fog_apply_premultiplied(color,v_fog_pos));\n#endif\ngl_FragColor=color;\n#ifdef TERRAIN_WIREFRAME\ngl_FragColor=vec4(1.0,0.0,0.0,0.8);\n#endif\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_proj_matrix;uniform mat4 u_normalize_matrix;uniform mat4 u_globe_matrix;uniform mat4 u_merc_matrix;uniform float u_zoom_transition;uniform vec2 u_merc_center;uniform mat3 u_grid_matrix;uniform float u_skirt_height;\n#ifdef GLOBE_POLES\nattribute vec3 a_globe_pos;attribute vec2 a_uv;\n#else\nattribute vec2 a_pos;\n#endif\nvarying vec2 v_pos0;const float wireframeOffset=1e3;float mercatorXfromLng(float lng) {return (180.0+lng)/360.0;}float mercatorYfromLat(float lat) {return (180.0-(RAD_TO_DEG*log(tan(QUARTER_PI+lat/2.0*DEG_TO_RAD))))/360.0;}vec3 latLngToECEF(vec2 latLng) {latLng=DEG_TO_RAD*latLng;float cosLat=cos(latLng[0]);float sinLat=sin(latLng[0]);float cosLng=cos(latLng[1]);float sinLng=sin(latLng[1]);float sx=cosLat*sinLng*GLOBE_RADIUS;float sy=-sinLat*GLOBE_RADIUS;float sz=cosLat*cosLng*GLOBE_RADIUS;return vec3(sx,sy,sz);}void main() {\n#ifdef GLOBE_POLES\nvec3 globe_pos=a_globe_pos;vec2 uv=a_uv;\n#else\nfloat tiles=u_grid_matrix[0][2];float idx=u_grid_matrix[1][2];float idy=u_grid_matrix[2][2];vec3 decomposed_pos_and_skirt=decomposeToPosAndSkirt(a_pos);vec3 latLng=u_grid_matrix*vec3(decomposed_pos_and_skirt.xy,1.0);float mercatorY=mercatorYfromLat(latLng[0]);float uvY=mercatorY*tiles-idy;float mercatorX=mercatorXfromLng(latLng[1]);float uvX=mercatorX*tiles-idx;vec3 globe_pos=latLngToECEF(latLng.xy);vec2 merc_pos=vec2(mercatorX,mercatorY);vec2 uv=vec2(uvX,uvY);\n#endif\nv_pos0=uv;vec2 tile_pos=uv*EXTENT;vec3 globe_derived_up_vector=normalize(globe_pos)*u_tile_up_scale;\n#ifdef GLOBE_POLES\nvec3 up_vector=globe_derived_up_vector;\n#else\nvec3 up_vector=elevationVector(tile_pos);\n#endif\nfloat height=elevation(tile_pos);\n#ifdef TERRAIN_WIREFRAME\nheight+=wireframeOffset;\n#endif\nglobe_pos+=up_vector*height;\n#ifndef GLOBE_POLES\nglobe_pos-=globe_derived_up_vector*u_skirt_height*decomposed_pos_and_skirt.z;\n#endif\n#ifdef GLOBE_POLES\nvec4 interpolated_pos=u_globe_matrix*vec4(globe_pos,1.0);\n#else\nvec4 globe_world_pos=u_globe_matrix*vec4(globe_pos,1.0);vec4 merc_world_pos=vec4(0.0);if (u_zoom_transition > 0.0) {merc_world_pos=vec4(merc_pos,height-u_skirt_height*decomposed_pos_and_skirt.z,1.0);merc_world_pos.xy-=u_merc_center;merc_world_pos.x=wrap(merc_world_pos.x,-0.5,0.5);merc_world_pos=u_merc_matrix*merc_world_pos;}vec4 interpolated_pos=vec4(mix(globe_world_pos.xyz,merc_world_pos.xyz,u_zoom_transition),1.0);\n#endif\ngl_Position=u_proj_matrix*interpolated_pos;\n#ifdef FOG\nv_fog_pos=fog_position((u_normalize_matrix*vec4(globe_pos,1.0)).xyz);\n#endif\n}"),globeAtmosphere:ui("uniform float u_transition;uniform highp float u_fadeout_range;uniform highp float u_temporal_offset;uniform vec3 u_start_color;uniform vec4 u_color;uniform vec4 u_space_color;uniform vec4 u_high_color;uniform float u_star_intensity;uniform float u_star_size;uniform float u_star_density;uniform float u_horizon_angle;uniform mat4 u_rotation_matrix;varying highp vec3 v_ray_dir;varying highp vec3 v_horizon_dir;highp float random(highp vec3 p) {p=fract(p*vec3(23.2342,97.1231,91.2342));p+=dot(p.zxy,p.yxz+123.1234);return fract(p.x*p.y);}float stars(vec3 p,float scale,vec2 offset) {vec2 uv_scale=(u_viewport/u_star_size)*scale;vec3 position=vec3(p.xy*uv_scale+offset*u_viewport,p.z);vec3 q=fract(position)-0.5;vec3 id=floor(position);float random_visibility=step(random(id),u_star_density);float circle=smoothstep(0.5+u_star_intensity,0.5,length(q));return circle*random_visibility;}void main() {highp vec3 dir=normalize(v_ray_dir);float globe_pos_dot_dir;\n#ifdef PROJECTION_GLOBE_VIEW\nglobe_pos_dot_dir=dot(u_globe_pos,dir);highp vec3 closest_point_forward=abs(globe_pos_dot_dir)*dir;float norm_dist_from_center=length(closest_point_forward-u_globe_pos)/u_globe_radius;if (norm_dist_from_center < 0.98) {discard;return;}\n#endif\nhighp vec3 horizon_dir=normalize(v_horizon_dir);float horizon_angle_mercator=dir.y < horizon_dir.y ?\n0.0 : max(acos(dot(dir,horizon_dir)),0.0);float horizon_angle;\n#ifdef PROJECTION_GLOBE_VIEW\nhighp vec3 closest_point=globe_pos_dot_dir*dir;float closest_point_to_center=length(closest_point-u_globe_pos);float theta=asin(clamp(closest_point_to_center/length(u_globe_pos),-1.0,1.0));horizon_angle=globe_pos_dot_dir < 0.0 ?\nPI-theta-u_horizon_angle : theta-u_horizon_angle;float angle_t=pow(u_transition,10.0);horizon_angle=mix(horizon_angle,horizon_angle_mercator,angle_t);\n#else\nhorizon_angle=horizon_angle_mercator;\n#endif\nhorizon_angle/=PI;float t=exp(-horizon_angle/u_fadeout_range);float alpha_0=u_color.a;float alpha_1=u_high_color.a;float alpha_2=u_space_color.a;vec3 color_stop_0=u_color.rgb;vec3 color_stop_1=u_high_color.rgb;vec3 color_stop_2=u_space_color.rgb;vec3 c0=mix(color_stop_2,color_stop_1,alpha_1);vec3 c1=mix(c0,color_stop_0,alpha_0);vec3 c2=mix(c0,c1,t);vec3 c =mix(color_stop_2,c2,t);float a0=mix(alpha_2,1.0,alpha_1);float a1=mix(a0,1.0,alpha_0);float a2=mix(a0,a1,t);float a =mix(alpha_2,a2,t);vec2 uv=gl_FragCoord.xy/u_viewport-0.5;float aspect_ratio=u_viewport.x/u_viewport.y;vec4 uv_dir=vec4(normalize(vec3(uv.x*aspect_ratio,uv.y,1.0)),1.0);uv_dir=u_rotation_matrix*uv_dir;vec3 n=abs(uv_dir.xyz);vec2 uv_remap=(n.x > n.y && n.x > n.z) ? uv_dir.yz/uv_dir.x:\n(n.y > n.x && n.y > n.z) ? uv_dir.zx/uv_dir.y:\nuv_dir.xy/uv_dir.z;uv_remap.x/=aspect_ratio;vec3 D=vec3(uv_remap,1.0);highp float star_field=0.0;if (u_star_intensity > 0.0) {star_field+=stars(D,1.2,vec2(0.0,0.0));star_field+=stars(D,1.0,vec2(1.0,0.0));star_field+=stars(D,0.8,vec2(0.0,1.0));star_field+=stars(D,0.6,vec2(1.0,1.0));star_field*=(1.0-pow(t,0.25+(1.0-u_high_color.a)*0.75));c+=star_field*alpha_2;}c=dither(c,gl_FragCoord.xy+u_temporal_offset);gl_FragColor=vec4(c,a);}","attribute vec3 a_pos;attribute vec2 a_uv;uniform vec3 u_frustum_tl;uniform vec3 u_frustum_tr;uniform vec3 u_frustum_br;uniform vec3 u_frustum_bl;uniform float u_horizon;varying highp vec3 v_ray_dir;varying highp vec3 v_horizon_dir;void main() {v_ray_dir=mix(\nmix(u_frustum_tl,u_frustum_tr,a_uv.x),mix(u_frustum_bl,u_frustum_br,a_uv.x),a_uv.y);v_horizon_dir=mix(\nmix(u_frustum_tl,u_frustum_bl,u_horizon),mix(u_frustum_tr,u_frustum_br,u_horizon),a_uv.x);gl_Position=vec4(a_pos,1.0);}")};function hi(e,t){const i=e.replace(/\s*\/\/[^\n]*\n/g,"\n").split("\n");for(let e of i)if(e=e.trim(),"#"===e[0]&&e.includes("if")&&!e.includes("endif")){e=e.replace("#","").replace(/ifdef|ifndef|elif|if/g,"").replace(/!|defined|\(|\)|\|\||&&/g,"").replace(/\s+/g," ").trim();const i=e.split(" ");for(const e of i)t.includes(e)||t.push(e);}}function ui(e,t){const i=/#pragma mapbox: ([\w]+) ([\w]+) ([\w]+) ([\w]+)/g,o=t.match(/attribute (highp |mediump |lowp )?([\w]+) ([\w]+)/g),r={},n=[...ni];return hi(e,n),hi(t,n),{fragmentSource:e=e.replace(i,((e,t,i,o,n)=>(r[n]=!0,"define"===t?`\n#ifndef HAS_UNIFORM_u_${n}\nvarying ${i} ${o} ${n};\n#else\nuniform ${i} ${o} u_${n};\n#endif\n`:`\n#ifdef HAS_UNIFORM_u_${n}\n ${i} ${o} ${n} = u_${n};\n#endif\n`))),vertexSource:t=t.replace(i,((e,t,i,o,n)=>{const s="float"===o?"vec2":"vec4",a=n.match(/color/)?"color":s;return r[n]?"define"===t?`\n#ifndef HAS_UNIFORM_u_${n}\nuniform lowp float u_${n}_t;\nattribute ${i} ${s} a_${n};\nvarying ${i} ${o} ${n};\n#else\nuniform ${i} ${o} u_${n};\n#endif\n`:"vec4"===a?`\n#ifndef HAS_UNIFORM_u_${n}\n ${n} = a_${n};\n#else\n ${i} ${o} ${n} = u_${n};\n#endif\n`:`\n#ifndef HAS_UNIFORM_u_${n}\n ${n} = unpack_mix_${a}(a_${n}, u_${n}_t);\n#else\n ${i} ${o} ${n} = u_${n};\n#endif\n`:"define"===t?`\n#ifndef HAS_UNIFORM_u_${n}\nuniform lowp float u_${n}_t;\nattribute ${i} ${s} a_${n};\n#else\nuniform ${i} ${o} u_${n};\n#endif\n`:"vec4"===a?`\n#ifndef HAS_UNIFORM_u_${n}\n ${i} ${o} ${n} = a_${n};\n#else\n ${i} ${o} ${n} = u_${n};\n#endif\n`:`\n#ifndef HAS_UNIFORM_u_${n}\n ${i} ${o} ${n} = unpack_mix_${a}(a_${n}, u_${n}_t);\n#else\n ${i} ${o} ${n} = u_${n};\n#endif\n`})),staticAttributes:o,usedDefines:n}}class _i{constructor(){this.boundProgram=null,this.boundLayoutVertexBuffer=null,this.boundPaintVertexBuffers=[],this.boundIndexBuffer=null,this.boundVertexOffset=null,this.boundDynamicVertexBuffers=[],this.vao=null;}bind(e,t,i,o,r,n,s){this.context=e;let a=this.boundPaintVertexBuffers.length!==o.length;for(let e=0;!a&&e{const r=i.paint.get("hillshade-shadow-color"),n=i.paint.get("hillshade-highlight-color"),s=i.paint.get("hillshade-accent-color");let a=i.paint.get("hillshade-illumination-direction")*(Math.PI/180);"viewport"===i.paint.get("hillshade-illumination-anchor")&&(a-=e.transform.angle);const l=!e.options.moving;return {u_matrix:o||e.transform.calculateProjMatrix(t.tileID.toUnwrapped(),l),u_image:0,u_latrange:di(0,t.tileID),u_light:[i.paint.get("hillshade-exaggeration"),a],u_shadow:r,u_highlight:n,u_accent:s}})(t,o,r,t.terrain?i.projMatrix:null);t.prepareDrawProgram(l,u,i.toUnwrapped());const{tileBoundsBuffer:d,tileBoundsIndexBuffer:p,tileBoundsSegments:m}=t.getTileBoundsBuffers(o);u.draw(l,c.TRIANGLES,n,s,a,e.CullFaceMode.disabled,_,r.id,d,p,m);}function mi(t,i,o){if(!i.needsDEMTextureUpload)return;const r=t.context,n=r.gl;r.pixelStoreUnpackPremultiplyAlpha.set(!1),i.demTexture=i.demTexture||t.getTileTexture(o.stride);const s=o.getPixels();i.demTexture?i.demTexture.update(s,{premultiply:!1}):i.demTexture=new e.Texture(r,s,n.RGBA,{premultiply:!1}),i.needsDEMTextureUpload=!1;}function fi(t,i,o,r,n,s){const a=t.context,l=a.gl;if(!i.dem)return;const c=i.dem;if(a.activeTexture.set(l.TEXTURE1),mi(t,i,c),!i.demTexture)return;i.demTexture.bind(l.NEAREST,l.CLAMP_TO_EDGE);const h=c.dim;a.activeTexture.set(l.TEXTURE0);let u=i.fbo;if(!u){const t=new e.Texture(a,{width:h,height:h,data:null},l.RGBA);t.bind(l.LINEAR,l.CLAMP_TO_EDGE),u=i.fbo=a.createFramebuffer(h,h,!0),u.colorAttachment.set(t.texture);}a.bindFramebuffer.set(u.framebuffer),a.viewport.set([0,0,h,h]);const{tileBoundsBuffer:_,tileBoundsIndexBuffer:d,tileBoundsSegments:p}=t.getMercatorTileBoundsBuffers();t.useProgram("hillshadePrepare").draw(a,l.TRIANGLES,r,n,s,e.CullFaceMode.disabled,((t,i)=>{const o=i.stride,r=e.create();return e.ortho(r,0,e.EXTENT,-e.EXTENT,0,0,1),e.translate(r,r,[0,-e.EXTENT,0]),{u_matrix:r,u_image:1,u_dimension:[o,o],u_zoom:t.overscaledZ,u_unpack:i.unpackVector}})(i.tileID,c),o.id,_,d,p),i.needsHillshadePrepare=!1;}const gi=t=>({u_matrix:new e.UniformMatrix4f(t),u_image0:new e.Uniform1i(t),u_skirt_height:new e.Uniform1f(t)}),vi=(e,t)=>({u_matrix:e,u_image0:0,u_skirt_height:t}),xi=(e,t,i,o,r,n,s,a,l,c,h,u,_,d,p)=>({u_proj_matrix:Float32Array.from(e),u_globe_matrix:t,u_normalize_matrix:Float32Array.from(o),u_merc_matrix:i,u_zoom_transition:r,u_merc_center:n,u_image0:0,u_frustum_tl:s,u_frustum_tr:a,u_frustum_br:l,u_frustum_bl:c,u_globe_pos:h,u_globe_radius:u,u_viewport:_,u_grid_matrix:p?Float32Array.from(p):new Float32Array(9),u_skirt_height:d});function yi(e,t){return null!=e&&null!=t&&!(!e.hasData()||!t.hasData())&&null!=e.demTexture&&null!=t.demTexture&&e.tileID.key!==t.tileID.key}const bi=new class{constructor(){this.operations={};}newMorphing(e,t,i,o,r){if(e in this.operations){const t=this.operations[e];t.to.tileID.key!==i.tileID.key&&(t.queued=i);}else this.operations[e]={startTime:o,phase:0,duration:r,from:t,to:i,queued:null};}getMorphValuesForProxy(e){if(!(e in this.operations))return null;const t=this.operations[e];return {from:t.from,to:t.to,phase:t.phase}}update(e){for(const t in this.operations){const i=this.operations[t];for(i.phase=(e-i.startTime)/i.duration;i.phase>=1||!this._validOp(i);)if(!this._nextOp(i,e)){delete this.operations[t];break}}}_nextOp(e,t){return !!e.queued&&(e.from=e.to,e.to=e.queued,e.queued=null,e.phase=0,e.startTime=t,!0)}_validOp(e){return e.from.hasData()&&e.to.hasData()}},wi={0:null,1:"TERRAIN_VERTEX_MORPHING",2:"TERRAIN_WIREFRAME"};function Ti(e){return 6*Math.pow(1.5,22-e)}function Ei(e,t){const i=1<({u_matrix:e});function Mi(t,i,o,r,n){if(n>0){const s=e.exported.now(),a=(s-t.timeAdded)/n,l=i?(s-i.timeAdded)/n:-1,c=o.getSource(),h=r.coveringZoomLevel({tileSize:c.tileSize,roundZoom:c.roundZoom}),u=!i||Math.abs(i.tileID.overscaledZ-h)>Math.abs(t.tileID.overscaledZ-h),_=u&&t.refreshedUponExpiration?1:e.clamp(u?a:1-l,0,1);return t.refreshedUponExpiration&&a>=1&&(t.refreshedUponExpiration=!1),i?{opacity:1,mix:1-_}:{opacity:_,mix:0}}return {opacity:1,mix:0}}class Ii extends e.SourceCache{constructor(e){const t={type:"raster-dem",maxzoom:e.transform.maxZoom},i=new S(Ue(),null),o=De("mock-dem",t,i,e.style);super("mock-dem",o,!1),o.setEventedParent(this),this._sourceLoaded=!0;}_loadTile(e,t){e.state="loaded",t(null);}}class Pi extends e.SourceCache{constructor(e){const t=De("proxy",{type:"geojson",maxzoom:e.transform.maxZoom},new S(Ue(),null),e.style);super("proxy",t,!1),t.setEventedParent(this),this.map=this.getSource().map=e,this.used=this._sourceLoaded=!0,this.renderCache=[],this.renderCachePool=[],this.proxyCachedFBO={};}update(t,i,o){if(t.freezeTileCoverage)return;this.transform=t;const r=t.coveringTiles({tileSize:this._source.tileSize,minzoom:this._source.minzoom,maxzoom:this._source.maxzoom,roundZoom:this._source.roundZoom,reparseOverscaled:this._source.reparseOverscaled}).reduce(((i,o)=>{if(i[o.key]="",!this._tiles[o.key]){const i=new e.Tile(o,this._source.tileSize*o.overscaleFactor(),t.tileZoom);i.state="loaded",this._tiles[o.key]=i;}return i}),{});for(const e in this._tiles)e in r||(this.freeFBO(e),this._tiles[e].unloadVectorData(),delete this._tiles[e]);}freeFBO(e){const t=this.proxyCachedFBO[e];if(void 0!==t){const i=Object.values(t);this.renderCachePool.push(...i),delete this.proxyCachedFBO[e];}}deallocRenderCache(){this.renderCache.forEach((e=>e.fb.destroy())),this.renderCache=[],this.renderCachePool=[],this.proxyCachedFBO={};}}class Si extends e.OverscaledTileID{constructor(e,t,i){super(e.overscaledZ,e.wrap,e.canonical.z,e.canonical.x,e.canonical.y),this.proxyTileKey=t,this.projMatrix=i;}}class Di extends e.Elevation{constructor(t,i){super(),this.painter=t,this.terrainTileForTile={},this.prevTerrainTileForTile={};const[o,r,n]=function(t){const i=new e.StructArrayLayout2i4,o=new e.StructArrayLayout3ui6,r=131;i.reserve(17161),o.reserve(33800);const n=e.EXTENT/128,s=e.EXTENT+n/2,a=s+n;for(let t=-n;ts||t<0||t>s?24575:0,n=e.clamp(Math.round(o),0,e.EXTENT),a=e.clamp(Math.round(t),0,e.EXTENT);i.emplaceBack(n+r,a);}const l=(e,t)=>{const i=t*r+e;o.emplaceBack(i+1,i,i+r),o.emplaceBack(i+r,i+r+1,i+1);};for(let e=1;e<129;e++)for(let t=1;t<129;t++)l(t,e);return [0,129].forEach((e=>{for(let t=0;t<130;t++)l(t,e),l(e,t);})),[i,o,32768]}(),s=t.context;this.gridBuffer=s.createVertexBuffer(o,e.posAttributes.members),this.gridIndexBuffer=s.createIndexBuffer(r),this.gridSegments=e.SegmentVector.simpleSegment(0,0,o.length,r.length),this.gridNoSkirtSegments=e.SegmentVector.simpleSegment(0,0,o.length,n),this.proxyCoords=[],this.proxiedCoords={},this._visibleDemTiles=[],this._drapedRenderBatches=[],this._sourceTilesOverlap={},this.proxySourceCache=new Pi(i.map),this.orthoMatrix=e.create(),e.ortho(this.orthoMatrix,"globe"===this.painter.transform.projection.name?.015:0,e.EXTENT,0,e.EXTENT,0,1);const a=s.gl;this._overlapStencilMode=new e.StencilMode({func:a.GEQUAL,mask:255},0,255,a.KEEP,a.KEEP,a.REPLACE),this._previousZoom=t.transform.zoom,this.pool=[],this._findCoveringTileCache={},this._tilesDirty={},this.style=i,this._useVertexMorphing=!0,this._exaggeration=1,this._mockSourceCache=new Ii(i.map);}set style(e){e.on("data",this._onStyleDataEvent.bind(this)),e.on("neworder",this._checkRenderCacheEfficiency.bind(this)),this._style=e,this._checkRenderCacheEfficiency(),this._style.map.on("moveend",(()=>{this._clearLineLayersFromRenderCache();}));}update(t,i,o){if(t&&t.terrain){this._style!==t&&(this.style=t),this.enabled=!0;const r=t.terrain.properties;this.sourceCache=0===t.terrain.drapeRenderMode?this._mockSourceCache:t._getSourceCache(r.get("source")),this._exaggeration=r.get("exaggeration");const n=()=>{this.sourceCache.used&&e.warnOnce(`Raster DEM source '${this.sourceCache.id}' is used both for terrain and as layer source.\nThis leads to lower resolution of hillshade. For full hillshade resolution but higher memory consumption, define another raster DEM source.`);const t=this.getScaledDemTileSize();this.sourceCache.update(i,t,!0),this.resetTileLookupCache(this.sourceCache.id);};this.sourceCache.usedForTerrain||(this.resetTileLookupCache(this.sourceCache.id),this.sourceCache.usedForTerrain=!0,n(),this._initializing=!0),n(),i.updateElevation(!0,o),this.resetTileLookupCache(this.proxySourceCache.id),this.proxySourceCache.update(i),this._emptyDEMTextureDirty=!0;}else this._disable();}resetTileLookupCache(e){this._findCoveringTileCache[e]={};}getScaledDemTileSize(){return this.sourceCache.getSource().tileSize/128*this.proxySourceCache.getSource().tileSize}_checkRenderCacheEfficiency(){const t=this.renderCacheEfficiency(this._style);this._style.map._optimizeForTerrain||100!==t.efficiency&&e.warnOnce(`Terrain render cache efficiency is not optimal (${t.efficiency}%) and performance\n may be affected negatively, consider placing all background, fill and line layers before layer\n with id '${t.firstUndrapedLayer}' or create a map using optimizeForTerrain: true option.`);}_onStyleDataEvent(e){e.coord&&"source"===e.dataType?this._clearRenderCacheForTile(e.sourceCacheId,e.coord):"style"===e.dataType&&(this._invalidateRenderCache=!0);}_disable(){if(this.enabled&&(this.enabled=!1,this._sharedDepthStencil=void 0,this.proxySourceCache.deallocRenderCache(),this._style))for(const e in this._style._sourceCaches)this._style._sourceCaches[e].usedForTerrain=!1;}destroy(){this._disable(),this._emptyDEMTexture&&this._emptyDEMTexture.destroy(),this._emptyDepthBufferTexture&&this._emptyDepthBufferTexture.destroy(),this.pool.forEach((e=>e.fb.destroy())),this.pool=[],this._depthFBO&&(this._depthFBO.destroy(),this._depthFBO=void 0,this._depthTexture=void 0);}_source(){return this.enabled?this.sourceCache:null}isUsingMockSource(){return this.sourceCache===this._mockSourceCache}exaggeration(){return this._exaggeration}get visibleDemTiles(){return this._visibleDemTiles}get drapeBufferSize(){const e=2*this.proxySourceCache.getSource().tileSize;return [e,e]}set useVertexMorphing(e){this._useVertexMorphing=e;}updateTileBinding(t){if(!this.enabled)return;this.prevTerrainTileForTile=this.terrainTileForTile;const i=this.proxySourceCache,o=this.painter.transform;this._initializing&&(this._initializing=0===o._centerAltitude&&-1===this.getAtPointOrZero(e.MercatorCoordinate.fromLngLat(o.center),-1),this._emptyDEMTextureDirty=!this._initializing);const r=this.proxyCoords=i.getIds().map((e=>{const t=i.getTileByID(e).tileID;return t.projMatrix=o.calculateProjMatrix(t.toUnwrapped()),t}));!function(t,i){const o=i.transform.pointCoordinate(i.transform.getCameraPoint()),r=new e.Point(o.x,o.y);t.sort(((t,i)=>{if(i.overscaledZ-t.overscaledZ)return i.overscaledZ-t.overscaledZ;const o=new e.Point(t.canonical.x+(1<{this.proxyToSource[e.key]={};})),this.terrainTileForTile={};const s=this._style._sourceCaches;for(const e in s){const i=s[e];if(!i.used)continue;if(i!==this.sourceCache&&this.resetTileLookupCache(i.id),this._setupProxiedCoordsForOrtho(i,t[e],n),i.usedForTerrain)continue;const o=t[e];i.getSource().reparseOverscaled&&this._assignTerrainTiles(o);}this.proxiedCoords[i.id]=r.map((e=>new Si(e,e.key,this.orthoMatrix))),this._assignTerrainTiles(r),this._prepareDEMTextures(),this._setupDrapedRenderBatches(),this._initFBOPool(),this._setupRenderCache(n),this.renderingToTexture=!1,this._updateTimestamp=e.exported.now();const a={};this._visibleDemTiles=[];for(const e of this.proxyCoords){const t=this.terrainTileForTile[e.key];if(!t)continue;const i=t.tileID.key;i in a||(this._visibleDemTiles.push(t),a[i]=i);}}_assignTerrainTiles(e){this._initializing||e.forEach((e=>{if(this.terrainTileForTile[e.key])return;const t=this._findTileCoveringTileID(e,this.sourceCache);t&&(this.terrainTileForTile[e.key]=t);}));}_prepareDEMTextures(){const e=this.painter.context,t=e.gl;for(const i in this.terrainTileForTile){const o=this.terrainTileForTile[i],r=o.dem;!r||o.demTexture&&!o.needsDEMTextureUpload||(e.activeTexture.set(t.TEXTURE1),mi(this.painter,o,r));}}_prepareDemTileUniforms(e,t,i,o){if(!t||null==t.demTexture)return !1;const r=e.tileID.canonical,n=Math.pow(2,t.tileID.canonical.z-r.z),s=o||"";return i[`u_dem_tl${s}`]=[r.x*n%1,r.y*n%1],i[`u_dem_scale${s}`]=n,!0}get emptyDEMTexture(){return !this._emptyDEMTextureDirty&&this._emptyDEMTexture?this._emptyDEMTexture:this._updateEmptyDEMTexture()}get emptyDepthBufferTexture(){const t=this.painter.context,i=t.gl;if(!this._emptyDepthBufferTexture){const o=new e.RGBAImage({width:1,height:1},Uint8Array.of(255,255,255,255));this._emptyDepthBufferTexture=new e.Texture(t,o,i.RGBA,{premultiply:!1});}return this._emptyDepthBufferTexture}_getLoadedAreaMinimum(){let e=0;const t=this._visibleDemTiles.reduce(((t,i)=>{if(!i.dem)return t;const o=i.dem.tree.minimums[0];return o>0&&e++,t+o}),0);return e?t/e:0}_updateEmptyDEMTexture(){const t=this.painter.context,i=t.gl;t.activeTexture.set(i.TEXTURE2);const o=this._getLoadedAreaMinimum(),r=new e.RGBAImage({width:1,height:1},new Uint8Array(e.DEMData.pack(o,this.sourceCache.getSource().encoding)));this._emptyDEMTextureDirty=!1;let n=this._emptyDEMTexture;return n?n.update(r,{premultiply:!1}):n=this._emptyDEMTexture=new e.Texture(t,r,i.RGBA,{premultiply:!1}),n}setupElevationDraw(t,i,o){const r=this.painter.context,n=r.gl,s=(a=this.sourceCache.getSource().encoding,{u_dem:2,u_dem_prev:4,u_dem_unpack:e.DEMData.getUnpackVector(a),u_dem_tl:[0,0],u_dem_tl_prev:[0,0],u_dem_scale:0,u_dem_scale_prev:0,u_dem_size:0,u_dem_lerp:1,u_depth:3,u_depth_size_inv:[0,0],u_exaggeration:0});var a;s.u_dem_size=this.sourceCache.getSource().tileSize,s.u_exaggeration=this.exaggeration();let l=null,c=null,h=1;if(o&&o.morphing&&this._useVertexMorphing){const e=o.morphing.srcDemTile,i=o.morphing.dstDemTile;h=o.morphing.phase,e&&i&&(this._prepareDemTileUniforms(t,e,s,"_prev")&&(c=e),this._prepareDemTileUniforms(t,i,s)&&(l=i));}if(c&&l?(r.activeTexture.set(n.TEXTURE2),l.demTexture.bind(n.NEAREST,n.CLAMP_TO_EDGE,n.NEAREST),r.activeTexture.set(n.TEXTURE4),c.demTexture.bind(n.NEAREST,n.CLAMP_TO_EDGE,n.NEAREST),s.u_dem_lerp=h):(l=this.terrainTileForTile[t.tileID.key],r.activeTexture.set(n.TEXTURE2),(this._prepareDemTileUniforms(t,l,s)?l.demTexture:this.emptyDEMTexture).bind(n.NEAREST,n.CLAMP_TO_EDGE)),r.activeTexture.set(n.TEXTURE3),o&&o.useDepthForOcclusion?(this._depthTexture&&this._depthTexture.bind(n.NEAREST,n.CLAMP_TO_EDGE),this._depthFBO&&(s.u_depth_size_inv=[1/this._depthFBO.width,1/this._depthFBO.height])):(this.emptyDepthBufferTexture.bind(n.NEAREST,n.CLAMP_TO_EDGE),s.u_depth_size_inv=[1,1]),o&&o.useMeterToDem&&l){const t=(1<{if(c===e)return;const o=[wi[e],"PROJECTION_GLOBE_VIEW"];_&&o.push("CUSTOM_ANTIALIASING"),i&&o.push(wi[h]),l=t.useProgram("globeRaster",null,o),c=e;},p=t.colorModeForRenderPass(),m=new e.DepthMode(a.LEQUAL,e.DepthMode.ReadWrite,t.depthRangeFor3D);bi.update(n);const f=e.calculateGlobeMercatorMatrix(u),g=[e.mercatorXfromLng(u.center.lng),e.mercatorYfromLat(u.center.lat)],v=h?[!1,!0]:[!1],x=t.globeSharedBuffers,y=[u.width*e.exported.devicePixelRatio,u.height*e.exported.devicePixelRatio],b=Float32Array.from(u.globeMatrix),w={useDenormalizedUpVectorScale:!0};if(v.forEach((h=>{const u=t.transform,_=Ti(u.zoom)*i.exaggeration();c=-1;const v=h?a.LINES:a.TRIANGLES;for(const c of r){const r=o.getTile(c),T=e.StencilMode.disabled,E=i.prevTerrainTileForTile[c.key],C=i.terrainTileForTile[c.key];yi(E,C)&&bi.newMorphing(c.key,E,C,n,250),s.activeTexture.set(a.TEXTURE0),r.texture.bind(a.LINEAR,a.CLAMP_TO_EDGE);const M=bi.getMorphValuesForProxy(c.key),I=M?1:0;M&&e.extend$1(w,{morphing:{srcDemTile:M.from,dstDemTile:M.to,phase:e.easeCubicInOut(M.phase)}});const P=e.tileCornersToBounds(c.canonical),S=e.getLatitudinalLod(P.getCenter().lat),D=e.getGridMatrix(c.canonical,P,S,u.worldSize/u._pixelsPerMercatorPixel),L=e.globeNormalizeECEF(e.globeTileBounds(c.canonical)),A=xi(u.projMatrix,b,f,L,e.globeToMercatorTransition(u.zoom),g,u.frustumCorners.TL,u.frustumCorners.TR,u.frustumCorners.BR,u.frustumCorners.BL,u.globeCenterInViewSpace,u.globeRadius,y,_,D);if(d(I,h),i.setupElevationDraw(r,l,w),t.prepareDrawProgram(s,l,c.toUnwrapped()),x){const[i,o,r]=h?x.getWirefameBuffers(t.context,S):x.getGridBuffers(S,0!==_);l.draw(s,v,m,T,p,e.CullFaceMode.backCCW,A,"globe_raster",i,o,r);}}})),x){const n=["GLOBE_POLES","PROJECTION_GLOBE_VIEW"];_&&n.push("CUSTOM_ANTIALIASING"),l=t.useProgram("globeRaster",null,n);for(const n of r){const{x:r,y:c,z:h}=n.canonical,_=0===c,d=c===(1<t.draw(s,a.TRIANGLES,m,e.StencilMode.disabled,p,e.CullFaceMode.disabled,xi(u.projMatrix,x,x,E,0,g,u.frustumCorners.TL,u.frustumCorners.TR,u.frustumCorners.BR,u.frustumCorners.BL,u.globeCenterInViewSpace,u.globeRadius,y,0),"globe_pole_raster",i,b,T);i.setupElevationDraw(c,l,w),t.prepareDrawProgram(s,l,n.toUnwrapped()),_&&C(l,f),d&&(x=e.scale(e.create(),x,[1,-1,1]),C(l,v));}}}}(t,i,o,r,n);else {const s=t.context,a=s.gl;let l,c;const h=t.options.showTerrainWireframe?2:0,u=(e,i)=>{if(c===e)return;const o=[wi[e]];i&&o.push(wi[h]),l=t.useProgram("terrainRaster",null,o),c=e;},_=t.colorModeForRenderPass(),d=new e.DepthMode(a.LEQUAL,e.DepthMode.ReadWrite,t.depthRangeFor3D);bi.update(n);const p=t.transform,m=Ti(p.zoom)*i.exaggeration();(h?[!1,!0]:[!1]).forEach((h=>{c=-1;const f=h?a.LINES:a.TRIANGLES,[g,v]=h?i.getWirefameBuffer():[i.gridIndexBuffer,i.gridSegments];for(const c of r){const r=o.getTile(c),x=e.StencilMode.disabled,y=i.prevTerrainTileForTile[c.key],b=i.terrainTileForTile[c.key];yi(y,b)&&bi.newMorphing(c.key,y,b,n,250),s.activeTexture.set(a.TEXTURE0),r.texture.bind(a.LINEAR,a.CLAMP_TO_EDGE,a.LINEAR_MIPMAP_NEAREST);const w=bi.getMorphValuesForProxy(c.key),T=w?1:0;let E;w&&(E={morphing:{srcDemTile:w.from,dstDemTile:w.to,phase:e.easeCubicInOut(w.phase)}});const C=vi(c.projMatrix,Ei(c.canonical,p.renderWorldCopies)?m/10:m);u(T,h),i.setupElevationDraw(r,l,E),t.prepareDrawProgram(s,l,c.toUnwrapped()),l.draw(s,f,d,x,_,e.CullFaceMode.backCCW,C,"terrain_raster",i.gridBuffer,g,v);}}));}}(i,this,this.proxySourceCache,t,this._updateTimestamp),this.renderingToTexture=!0,i.gpuTimingDeferredRenderEnd(),t.splice(0,t.length));}renderBatch(t){if(0===this._drapedRenderBatches.length)return t+1;this.renderingToTexture=!0;const i=this.painter,o=this.painter.context,r=this.proxySourceCache,n=this.proxiedCoords[r.id],s=this._drapedRenderBatches.shift(),a=[],l=i.style.order;let c=0;for(const h of n){const n=r.getTileByID(h.proxyTileKey),u=r.proxyCachedFBO[h.key]?r.proxyCachedFBO[h.key][t]:void 0,_=void 0!==u?r.renderCache[u]:this.pool[c++],d=void 0!==u;if(n.texture=_.tex,d&&!_.dirty){a.push(n.tileID);continue}let p;o.bindFramebuffer.set(_.fb.framebuffer),this.renderedToTile=!1,_.dirty&&(o.clear({color:e.Color.transparent,stencil:0}),_.dirty=!1);for(let e=s.start;e<=s.end;++e){const t=i.style._layers[l[e]];if(t.isHidden(i.transform.zoom))continue;const r=i.style._getLayerSourceCache(t),n=r?this.proxyToSource[h.key][r.id]:[h];if(!n)continue;const s=n;o.viewport.set([0,0,_.fb.width,_.fb.height]),p!==(r?r.id:null)&&(this._setupStencil(_,n,t,r),p=r?r.id:null),i.renderLayer(i,r,t,s);}this.renderedToTile?(_.dirty=!0,a.push(n.tileID)):d||--c,5===c&&(c=0,this.renderToBackBuffer(a));}return this.renderToBackBuffer(a),this.renderingToTexture=!1,o.bindFramebuffer.set(null),o.viewport.set([0,0,i.width,i.height]),s.end+1}postRender(){}renderCacheEfficiency(e){const t=e.order.length;if(0===t)return {efficiency:100};let i,o=0,r=0,n=!1;for(let s=0;se.dem)).forEach((t=>{e=Math.min(e,t.dem.tree.minimums[0]);})),0===e?e:(e-30)*this._exaggeration}raycast(e,t,i){if(!this._visibleDemTiles)return null;const o=this._visibleDemTiles.filter((e=>e.dem)).map((o=>{const r=o.tileID,n=1<(null!==e.t?e.t:Number.MAX_VALUE)-(null!==t.t?t.t:Number.MAX_VALUE)));for(const r of o){if(null==r.t)return null;const o=r.tile.dem.tree.raycast(r.minx,r.miny,r.maxx,r.maxy,e,t,i);if(null!=o)return o}return null}_createFBO(){const t=this.painter.context,i=t.gl,o=this.drapeBufferSize;t.activeTexture.set(i.TEXTURE0);const r=new e.Texture(t,{width:o[0],height:o[1],data:null},i.RGBA);r.bind(i.LINEAR,i.CLAMP_TO_EDGE);const n=t.createFramebuffer(o[0],o[1],!1);return n.colorAttachment.set(r.texture),n.depthAttachment=new we(t,n.framebuffer),void 0===this._sharedDepthStencil?(this._sharedDepthStencil=t.createRenderbuffer(t.gl.DEPTH_STENCIL,o[0],o[1]),this._stencilRef=0,n.depthAttachment.set(this._sharedDepthStencil),t.clear({stencil:0})):n.depthAttachment.set(this._sharedDepthStencil),t.extTextureFilterAnisotropic&&!t.extTextureFilterAnisotropicForceOff&&i.texParameterf(i.TEXTURE_2D,t.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,t.extTextureFilterAnisotropicMax),{fb:n,tex:r,dirty:!1}}_initFBOPool(){for(;this.pool.length{const t=this._style._layers[e],i=t.isHidden(this.painter.transform.zoom);return "custom"===t.type?!i&&t.shouldRedrape():!i&&t.hasTransition()}))}_clearLineLayersFromRenderCache(){let t=!1;for(const e of this._style._getSources())if(e instanceof Ce){t=!0;break}if(!t)return;const i={};for(let t=0;tt.renderCachePool.length){const e=Object.values(t.proxyCachedFBO);t.proxyCachedFBO={};for(let i=0;i=0;r--){const n=i[r];if(t.getTileByID(n.key),void 0!==t.proxyCachedFBO[n.key]){const i=e[n.key],r=this.proxyToSource[n.key];let s=0;for(const e in r){const t=r[e],n=i[e];if(!n||n.length!==t.length||t.some(((t,i)=>t!==n[i]||o[e]&&o[e].hasOwnProperty(t.key)))){s=-1;break}++s;}for(const e in t.proxyCachedFBO[n.key])t.renderCache[t.proxyCachedFBO[n.key][e]].dirty=s<0||s!==Object.values(i).length;}}const r=[...this._drapedRenderBatches];r.sort(((e,t)=>t.end-t.start-(e.end-e.start)));for(const e of r)for(const o of i){if(t.proxyCachedFBO[o.key])continue;let i=t.renderCachePool.pop();void 0===i&&t.renderCache.length<50&&(i=t.renderCache.length,t.renderCache.push(this._createFBO())),void 0!==i&&(t.proxyCachedFBO[o.key]={},t.proxyCachedFBO[o.key][e.start]=i,t.renderCache[i].dirty=!0);}this._tilesDirty={};}_setupStencil(e,t,i,o){if(!o||!this._sourceTilesOverlap[o.id])return void(this._overlapStencilType&&(this._overlapStencilType=!1));const r=this.painter.context,n=r.gl;if(t.length<=1)return void(this._overlapStencilType=!1);let s;if(i.isTileClipped())s=t.length,this._overlapStencilMode.test={func:n.EQUAL,mask:255},this._overlapStencilType="Clip";else {if(!(t[0].overscaledZ>t[t.length-1].overscaledZ))return void(this._overlapStencilType=!1);s=1,this._overlapStencilMode.test={func:n.GREATER,mask:255},this._overlapStencilType="Mask";}this._stencilRef+s>255&&(r.clear({stencil:0}),this._stencilRef=0),this._stencilRef+=s,this._overlapStencilMode.ref=this._stencilRef,i.isTileClipped()&&this._renderTileClippingMasks(t,this._overlapStencilMode.ref);}clipOrMaskOverlapStencilType(){return "Clip"===this._overlapStencilType||"Mask"===this._overlapStencilType}stencilModeForRTTOverlap(t){return this.renderingToTexture&&this._overlapStencilType?("Clip"===this._overlapStencilType&&(this._overlapStencilMode.ref=this.painter._tileClippingMaskIDs[t.key]),this._overlapStencilMode):e.StencilMode.disabled}_renderTileClippingMasks(t,i){const o=this.painter,r=this.painter.context,n=r.gl;o._tileClippingMaskIDs={},r.setColorMode(e.ColorMode.disabled),r.setDepthMode(e.DepthMode.disabled);const s=o.useProgram("clippingMask");for(const a of t){const t=o._tileClippingMaskIDs[a.key]=--i;s.draw(r,n.TRIANGLES,e.DepthMode.disabled,new e.StencilMode({func:n.ALWAYS,mask:0},t,255,n.KEEP,n.KEEP,n.REPLACE),e.ColorMode.disabled,e.CullFaceMode.disabled,Ci(a.projMatrix),"$clipping",o.tileExtentBuffer,o.quadTriangleIndexBuffer,o.tileExtentSegments);}}pointCoordinate(t){const i=this.painter.transform;if(t.x<0||t.x>i.width||t.y<0||t.y>i.height)return null;const o=[t.x,t.y,1,1];e.transformMat4$1(o,o,i.pixelMatrixInverse),e.scale$1(o,o,1/o[3]),o[0]/=i.worldSize,o[1]/=i.worldSize;const r=i._camera.position,n=e.mercatorZfromAltitude(1,i.center.lat),s=[r[0],r[1],r[2]/n,0],a=e.subtract([],o.slice(0,3),s);e.normalize(a,a);const l=this.raycast(s,a,this._exaggeration);return null!==l&&l?(e.scaleAndAdd(s,s,a,l),s[3]=s[2],s[2]*=n,s):null}drawDepth(){const t=this.painter,i=t.context,o=this.proxySourceCache,r=Math.ceil(t.width),n=Math.ceil(t.height);if(!this._depthFBO||this._depthFBO.width===r&&this._depthFBO.height===n||(this._depthFBO.destroy(),this._depthFBO=void 0,this._depthTexture=void 0),!this._depthFBO){const t=i.gl,o=i.createFramebuffer(r,n,!0);i.activeTexture.set(t.TEXTURE0);const s=new e.Texture(i,{width:r,height:n,data:null},t.RGBA);s.bind(t.NEAREST,t.CLAMP_TO_EDGE),o.colorAttachment.set(s.texture);const a=i.createRenderbuffer(i.gl.DEPTH_COMPONENT16,r,n);o.depthAttachment.set(a),this._depthFBO=o,this._depthTexture=s;}i.bindFramebuffer.set(this._depthFBO.framebuffer),i.viewport.set([0,0,r,n]),function(t,i,o,r){if("globe"===t.transform.projection.name)return;const n=t.context,s=n.gl;n.clear({depth:1});const a=t.useProgram("terrainDepth"),l=new e.DepthMode(s.LESS,e.DepthMode.ReadWrite,t.depthRangeFor3D);for(const t of r){const r=o.getTile(t),c=vi(t.projMatrix,0);i.setupElevationDraw(r,a),a.draw(n,s.TRIANGLES,l,e.StencilMode.disabled,e.ColorMode.unblended,e.CullFaceMode.backCCW,c,"terrain_depth",i.gridBuffer,i.gridIndexBuffer,i.gridNoSkirtSegments);}}(t,this,o,this.proxyCoords);}_setupProxiedCoordsForOrtho(e,t,i){if(e.getSource()instanceof Pe)return this._setupProxiedCoordsForImageSource(e,t,i);this._findCoveringTileCache[e.id]=this._findCoveringTileCache[e.id]||{};const o=this.proxiedCoords[e.id]=[],r=this.proxyCoords;for(let t=0;t(e.min.x=Math.min(e.min.x,t.x-a.x),e.min.y=Math.min(e.min.y,t.y-a.y),e.max.x=Math.max(e.max.x,t.x-a.x),e.max.y=Math.max(e.max.y,t.y-a.y),e)),{min:new e.Point(Number.MAX_VALUE,Number.MAX_VALUE),max:new e.Point(-Number.MAX_VALUE,-Number.MAX_VALUE)}),c=(t,i)=>{const o=t.wrap+t.canonical.x/(1<s+l.max.x||r+na+l.max.y};for(let e=0;ee.key===i.tileID.key));if(e)return e}if(i.tileID.key!==t.key){const o=t.canonical.z-i.tileID.canonical.z;let n,s,a;r=e.create();const l=i.tileID.wrap-t.wrap<0?(n=e.EXTENT>>o,s=n*((i.tileID.canonical.x<=r){const o=t.canonical.z-r;i.getSource().reparseOverscaled?(a=Math.max(t.canonical.z+2,i.transform.tileZoom),s=new e.OverscaledTileID(a,t.wrap,r,t.canonical.x>>o,t.canonical.y>>o)):0!==o&&(a=r,s=new e.OverscaledTileID(a,t.wrap,r,t.canonical.x>>o,t.canonical.y>>o));}s.key!==t.key&&(c.push(s.key),o=i.getTile(s));}const h=e=>{c.forEach((t=>{r[t]=e;})),c.length=0;};for(a-=1;a>=l&&(!o||!o.hasData());a--){o&&h(o.tileID.key);const e=s.calculateScaledKey(a);if(o=i.getTileByID(e),o&&o.hasData())break;const t=r[e];if(null===t)break;void 0===t?c.push(e):o=i.getTileByID(t);}return h(o?o.tileID.key:null),o&&o.hasData()?o:null}findDEMTileFor(e){return this.enabled?this._findTileCoveringTileID(e,this.sourceCache):null}prepareDrawTile(){this.renderedToTile=!0;}_clearRenderCacheForTile(e,t){let i=this._tilesDirty[e];i||(i=this._tilesDirty[e]={}),i[t.key]=!0;}getWirefameBuffer(){if(!this.wireframeSegments){const t=function(t){let i=0;const o=new e.StructArrayLayout2ui4,r=131;for(let e=1;e<129;e++){for(let t=1;t<129;t++)i=e*r+t,o.emplaceBack(i,i+1),o.emplaceBack(i,i+r),o.emplaceBack(i+1,i+r),128===e&&o.emplaceBack(i+r,i+r+1);o.emplaceBack(i+1,i+1+r);}return o}();this.wireframeIndexBuffer=this.painter.context.createIndexBuffer(t),this.wireframeSegments=e.SegmentVector.simpleSegment(0,0,this.gridBuffer.length,t.length);}return [this.wireframeIndexBuffer,this.wireframeSegments]}}class Li{static cacheKey(e,t,i,o){let r=`${t}${o?o.cacheKey:""}`;for(const t of i)e.usedDefines.includes(t)&&(r+=`/${t}`);return r}constructor(t,i,o,r,n,s){const a=t.gl;this.program=a.createProgram();const l=function(e){const t=[];for(let i=0;i`#define ${e}`)));const _=t.isWebGL2?"#version 300 es\n":"",d=_+u.concat(t.extStandardDerivatives&&0===_.length?"#extension GL_OES_standard_derivatives : enable\n".concat(li):li,li,ai,si.fragmentSource,ri.fragmentSource,o.fragmentSource).join("\n"),p=_+u.concat("\n#ifdef GL_ES\nprecision highp float;\n#else\n\n#if !defined(lowp)\n#define lowp\n#endif\n\n#if !defined(mediump)\n#define mediump\n#endif\n\n#if !defined(highp)\n#define highp\n#endif\n\n#endif",ai,si.vertexSource,ri.vertexSource,oi.vertexSource,o.vertexSource).join("\n"),m=a.createShader(a.FRAGMENT_SHADER);if(a.isContextLost())return void(this.failedToCreate=!0);a.shaderSource(m,d),a.compileShader(m),a.attachShader(this.program,m);const f=a.createShader(a.VERTEX_SHADER);if(a.isContextLost())this.failedToCreate=!0;else {a.shaderSource(f,p),a.compileShader(f),a.attachShader(this.program,f),this.attributes={},this.numAttributes=h.length;for(let e=0;e({u_dem:new e.Uniform1i(t),u_dem_prev:new e.Uniform1i(t),u_dem_unpack:new e.Uniform4f(t),u_dem_tl:new e.Uniform2f(t),u_dem_scale:new e.Uniform1f(t),u_dem_tl_prev:new e.Uniform2f(t),u_dem_scale_prev:new e.Uniform1f(t),u_dem_size:new e.Uniform1f(t),u_dem_lerp:new e.Uniform1f(t),u_exaggeration:new e.Uniform1f(t),u_depth:new e.Uniform1i(t),u_depth_size_inv:new e.Uniform2f(t),u_meter_to_dem:new e.Uniform1f(t),u_label_plane_matrix_inv:new e.UniformMatrix4f(t)}))(t)),s.includes("GLOBE")&&(this.globeUniforms=(t=>({u_tile_tl_up:new e.Uniform3f(t),u_tile_tr_up:new e.Uniform3f(t),u_tile_br_up:new e.Uniform3f(t),u_tile_bl_up:new e.Uniform3f(t),u_tile_up_scale:new e.Uniform1f(t)}))(t)),s.includes("FOG")&&(this.fogUniforms=(t=>({u_fog_matrix:new e.UniformMatrix4f(t),u_fog_range:new e.Uniform2f(t),u_fog_color:new e.Uniform4f(t),u_fog_horizon_blend:new e.Uniform1f(t),u_fog_temporal_offset:new e.Uniform1f(t),u_frustum_tl:new e.Uniform3f(t),u_frustum_tr:new e.Uniform3f(t),u_frustum_br:new e.Uniform3f(t),u_frustum_bl:new e.Uniform3f(t),u_globe_pos:new e.Uniform3f(t),u_globe_radius:new e.Uniform1f(t),u_globe_transition:new e.Uniform1f(t),u_is_globe:new e.Uniform1i(t),u_viewport:new e.Uniform2f(t)}))(t));}}setTerrainUniformValues(e,t){if(!this.terrainUniforms)return;const i=this.terrainUniforms;if(!this.failedToCreate){e.program.set(this.program);for(const e in t)i[e]&&i[e].set(this.program,e,t[e]);}}setGlobeUniformValues(e,t){if(!this.globeUniforms)return;const i=this.globeUniforms;if(!this.failedToCreate){e.program.set(this.program);for(const e in t)i[e]&&i[e].set(this.program,e,t[e]);}}setFogUniformValues(e,t){if(!this.fogUniforms)return;const i=this.fogUniforms;if(!this.failedToCreate){e.program.set(this.program);for(const e in t)i[e].set(this.program,e,t[e]);}}draw(e,t,i,o,r,n,s,a,l,c,h,u,_,d,p){const m=e.gl;if(this.failedToCreate)return;e.program.set(this.program),e.setDepthMode(i),e.setStencilMode(o),e.setColorMode(r),e.setCullFace(n);for(const e of Object.keys(this.fixedUniforms))this.fixedUniforms[e].set(this.program,e,s[e]);d&&d.setUniforms(this.program,e,this.binderUniforms,u,{zoom:_});const f={[m.LINES]:2,[m.TRIANGLES]:3,[m.LINE_STRIP]:1}[t];for(const i of h.get()){const o=i.vaos||(i.vaos={});(o[a]||(o[a]=new _i)).bind(e,this,l,d?d.getPaintVertexBuffers():[],c,i.vertexOffset,p||[]),m.drawElements(t,i.primitiveLength*f,m.UNSIGNED_SHORT,i.primitiveOffset*f*2);}}}function Ai(e,t){const i=Math.pow(2,t.tileID.overscaledZ),o=t.tileSize*Math.pow(2,e.transform.tileZoom)/i,r=o*(t.tileID.canonical.x+t.tileID.wrap*i),n=o*t.tileID.canonical.y;return {u_image:0,u_texsize:t.imageAtlasTexture.size,u_tile_units_to_pixels:1/D(t,1,e.transform.tileZoom),u_pixel_coord_upper:[r>>16,n>>16],u_pixel_coord_lower:[65535&r,65535&n]}}const zi=e.create(),Ri=(t,i,o,r,n,s,a,l,c,h,u)=>{const _=i.style.light,d=_.properties.get("position"),p=[d.x,d.y,d.z],m=e.create$1();"viewport"===_.properties.get("anchor")&&(e.fromRotation(m,-i.transform.angle),e.transformMat3(p,p,m));const f=_.properties.get("color"),g=i.transform,v={u_matrix:t,u_lightpos:p,u_lightintensity:_.properties.get("intensity"),u_lightcolor:[f.r,f.g,f.b],u_vertical_gradient:+o,u_opacity:r,u_tile_id:[0,0,0],u_zoom_transition:0,u_inv_rot_matrix:zi,u_merc_center:[0,0],u_up_dir:[0,0,0],u_height_lift:0,u_ao:n,u_edge_radius:s};return "globe"===g.projection.name&&(v.u_tile_id=[a.canonical.x,a.canonical.y,1<{const d=Ri(t,i,o,r,n,s,a,c,h,u,_),p={u_height_factor:-Math.pow(2,a.overscaledZ)/l.tileSize/8};return e.extend(d,Ai(i,l),p)},Bi=e=>({u_matrix:e}),ki=(t,i,o)=>e.extend(Bi(t),Ai(i,o)),Fi=(e,t)=>({u_matrix:e,u_world:t}),Ui=(t,i,o,r)=>e.extend(ki(t,i,o),{u_world:r}),Ni=e.create(),ji=(t,i,o,r,n,s)=>{const a=t.transform,l="globe"===a.projection.name;let c;if("map"===s.paint.get("circle-pitch-alignment"))if(l){const t=e.globePixelsToTileUnits(a.zoom,i.canonical)*a._pixelsPerMercatorPixel;c=Float32Array.from([t,0,0,t]);}else c=a.calculatePixelsToTileUnitsMatrix(o);else c=new Float32Array([a.pixelsToGLUnits[0],0,0,a.pixelsToGLUnits[1]]);const h={u_camera_to_center_distance:a.cameraToCenterDistance,u_matrix:t.translatePosMatrix(i.projMatrix,o,s.paint.get("circle-translate"),s.paint.get("circle-translate-anchor")),u_device_pixel_ratio:e.exported.devicePixelRatio,u_extrude_scale:c,u_inv_rot_matrix:Ni,u_merc_center:[0,0],u_tile_id:[0,0,0],u_zoom_transition:0,u_up_dir:[0,0,0]};if(l){h.u_inv_rot_matrix=r,h.u_merc_center=n,h.u_tile_id=[i.canonical.x,i.canonical.y,1<{const t=[];return "map"===e.paint.get("circle-pitch-alignment")&&t.push("PITCH_WITH_MAP"),"map"===e.paint.get("circle-pitch-scale")&&t.push("SCALE_WITH_MAP"),t},Zi=(t,i,o,r)=>{const n=e.EXTENT/o.tileSize;return {u_matrix:t,u_camera_to_center_distance:i.getCameraToCenterDistance(r),u_extrude_scale:[i.pixelsToGLUnits[0]/n,i.pixelsToGLUnits[1]/n]}},Vi=(e,t,i=1)=>({u_matrix:e,u_color:t,u_overlay:0,u_overlay_scale:i}),Wi=e.create(),Xi=(t,i,o,r,n,s,a)=>{const l=t.transform,c="globe"===l.projection.name,h=c?e.globePixelsToTileUnits(l.zoom,i.canonical)*l._pixelsPerMercatorPixel:D(o,1,s),u={u_matrix:i.projMatrix,u_extrude_scale:h,u_intensity:a,u_inv_rot_matrix:Wi,u_merc_center:[0,0],u_tile_id:[0,0,0],u_zoom_transition:0,u_up_dir:[0,0,0]};if(c){u.u_inv_rot_matrix=r,u.u_merc_center=n,u.u_tile_id=[i.canonical.x,i.canonical.y,1<{const a=e.transform,l=a.calculatePixelsToTileUnitsMatrix(t);return {u_matrix:Yi(e,t,i,o),u_pixels_to_tile_units:l,u_device_pixel_ratio:n,u_units_to_pixels:[1/a.pixelsToGLUnits[0],1/a.pixelsToGLUnits[1]],u_dash_image:0,u_gradient_image:1,u_image_height:r,u_texsize:Ki(i)?t.lineAtlasTexture.size:[0,0],u_tile_units_to_pixels:Hi(t,e.transform),u_alpha_discard_threshold:0,u_trim_offset:s}},$i=(e,t,i,o,r)=>{const n=e.transform;return {u_matrix:Yi(e,t,i,o),u_texsize:t.imageAtlasTexture.size,u_pixels_to_tile_units:n.calculatePixelsToTileUnitsMatrix(t),u_device_pixel_ratio:r,u_image:0,u_tile_units_to_pixels:Hi(t,n),u_units_to_pixels:[1/n.pixelsToGLUnits[0],1/n.pixelsToGLUnits[1]],u_alpha_discard_threshold:0}};function Hi(e,t){return 1/D(e,1,t.tileZoom)}function Yi(e,t,i,o){return e.translatePosMatrix(o||t.tileID.projMatrix,t,i.paint.get("line-translate"),i.paint.get("line-translate-anchor"))}function Ki(e){const t=e.paint.get("line-dasharray").value;return t.value||"constant"!==t.kind}const Ji=(e,t,i,o,r,n)=>{return {u_matrix:e,u_tl_parent:t,u_scale_parent:i,u_fade_t:o.mix,u_opacity:o.opacity*r.paint.get("raster-opacity"),u_image0:0,u_image1:1,u_brightness_low:r.paint.get("raster-brightness-min"),u_brightness_high:r.paint.get("raster-brightness-max"),u_saturation_factor:(a=r.paint.get("raster-saturation"),a>0?1-1/(1.001-a):-a),u_contrast_factor:(s=r.paint.get("raster-contrast"),s>0?1/(1-s):1+s),u_spin_weights:Qi(r.paint.get("raster-hue-rotate")),u_perspective_transform:n};var s,a;};function Qi(e){e*=Math.PI/180;const t=Math.sin(e),i=Math.cos(e);return [(2*i+1)/3,(-Math.sqrt(3)*t-i+1)/3,(Math.sqrt(3)*t-i+1)/3]}const eo=e.create(),to=(t,i,o,r,n,s,a,l,c,h,u,_,d,p,m,f)=>{const g=n.transform,v={u_is_size_zoom_constant:+("constant"===t||"source"===t),u_is_size_feature_constant:+("constant"===t||"camera"===t),u_size_t:i?i.uSizeT:0,u_size:i?i.uSize:0,u_camera_to_center_distance:g.cameraToCenterDistance,u_rotate_symbol:+o,u_aspect_ratio:g.width/g.height,u_fade_change:n.options.fadeDuration?n.symbolFadeChange:1,u_matrix:s,u_label_plane_matrix:a,u_coord_matrix:l,u_is_text:+c,u_pitch_with_map:+r,u_texsize:h,u_texture:0,u_tile_id:[0,0,0],u_zoom_transition:0,u_inv_rot_matrix:eo,u_merc_center:[0,0],u_camera_forward:[0,0,0],u_ecef_origin:[0,0,0],u_tile_matrix:eo,u_up_vector:[0,-1,0]};return "globe"===f.name&&(v.u_tile_id=[u.canonical.x,u.canonical.y,1<e.extend(to(t,i,o,r,n,s,a,l,c,h,_,d,p,m,f,g),{u_gamma_scale:r?n.transform.cameraToCenterDistance*Math.cos(n.terrain?0:n.transform._pitch):1,u_device_pixel_ratio:e.exported.devicePixelRatio,u_is_halo:+u}),oo=(t,i,o,r,n,s,a,l,c,h,u,_,d,p,m,f)=>e.extend(io(t,i,o,r,n,s,a,l,!0,c,!0,u,_,d,p,m,f),{u_texsize_icon:h,u_texture_icon:1}),ro=(e,t,i)=>({u_matrix:e,u_opacity:t,u_color:i}),no=(t,i,o,r,n)=>e.extend(function(e,t,i){const o=t.imageManager.getPattern(e.toString()),{width:r,height:n}=t.imageManager.getPixelSize(),s=Math.pow(2,i.tileID.overscaledZ),a=i.tileSize*Math.pow(2,t.transform.tileZoom)/s,l=a*(i.tileID.canonical.x+i.tileID.wrap*s),c=a*i.tileID.canonical.y;return {u_image:0,u_pattern_tl:o.tl,u_pattern_br:o.br,u_texsize:[r,n],u_pattern_size:o.displaySize,u_tile_units_to_pixels:1/D(i,1,t.transform.tileZoom),u_pixel_coord_upper:[l>>16,c>>16],u_pixel_coord_lower:[65535&l,65535&c]}}(r,o,n),{u_matrix:t,u_opacity:i}),so={fillExtrusion:t=>({u_matrix:new e.UniformMatrix4f(t),u_lightpos:new e.Uniform3f(t),u_lightintensity:new e.Uniform1f(t),u_lightcolor:new e.Uniform3f(t),u_vertical_gradient:new e.Uniform1f(t),u_opacity:new e.Uniform1f(t),u_edge_radius:new e.Uniform1f(t),u_ao:new e.Uniform2f(t),u_tile_id:new e.Uniform3f(t),u_zoom_transition:new e.Uniform1f(t),u_inv_rot_matrix:new e.UniformMatrix4f(t),u_merc_center:new e.Uniform2f(t),u_up_dir:new e.Uniform3f(t),u_height_lift:new e.Uniform1f(t)}),fillExtrusionPattern:t=>({u_matrix:new e.UniformMatrix4f(t),u_lightpos:new e.Uniform3f(t),u_lightintensity:new e.Uniform1f(t),u_lightcolor:new e.Uniform3f(t),u_vertical_gradient:new e.Uniform1f(t),u_height_factor:new e.Uniform1f(t),u_edge_radius:new e.Uniform1f(t),u_ao:new e.Uniform2f(t),u_tile_id:new e.Uniform3f(t),u_zoom_transition:new e.Uniform1f(t),u_inv_rot_matrix:new e.UniformMatrix4f(t),u_merc_center:new e.Uniform2f(t),u_up_dir:new e.Uniform3f(t),u_height_lift:new e.Uniform1f(t),u_image:new e.Uniform1i(t),u_texsize:new e.Uniform2f(t),u_pixel_coord_upper:new e.Uniform2f(t),u_pixel_coord_lower:new e.Uniform2f(t),u_tile_units_to_pixels:new e.Uniform1f(t),u_opacity:new e.Uniform1f(t)}),fill:t=>({u_matrix:new e.UniformMatrix4f(t)}),fillPattern:t=>({u_matrix:new e.UniformMatrix4f(t),u_image:new e.Uniform1i(t),u_texsize:new e.Uniform2f(t),u_pixel_coord_upper:new e.Uniform2f(t),u_pixel_coord_lower:new e.Uniform2f(t),u_tile_units_to_pixels:new e.Uniform1f(t)}),fillOutline:t=>({u_matrix:new e.UniformMatrix4f(t),u_world:new e.Uniform2f(t)}),fillOutlinePattern:t=>({u_matrix:new e.UniformMatrix4f(t),u_world:new e.Uniform2f(t),u_image:new e.Uniform1i(t),u_texsize:new e.Uniform2f(t),u_pixel_coord_upper:new e.Uniform2f(t),u_pixel_coord_lower:new e.Uniform2f(t),u_tile_units_to_pixels:new e.Uniform1f(t)}),circle:t=>({u_camera_to_center_distance:new e.Uniform1f(t),u_extrude_scale:new e.UniformMatrix2f(t),u_device_pixel_ratio:new e.Uniform1f(t),u_matrix:new e.UniformMatrix4f(t),u_inv_rot_matrix:new e.UniformMatrix4f(t),u_merc_center:new e.Uniform2f(t),u_tile_id:new e.Uniform3f(t),u_zoom_transition:new e.Uniform1f(t),u_up_dir:new e.Uniform3f(t)}),collisionBox:t=>({u_matrix:new e.UniformMatrix4f(t),u_camera_to_center_distance:new e.Uniform1f(t),u_extrude_scale:new e.Uniform2f(t)}),collisionCircle:t=>({u_matrix:new e.UniformMatrix4f(t),u_inv_matrix:new e.UniformMatrix4f(t),u_camera_to_center_distance:new e.Uniform1f(t),u_viewport_size:new e.Uniform2f(t)}),debug:t=>({u_color:new e.UniformColor(t),u_matrix:new e.UniformMatrix4f(t),u_overlay:new e.Uniform1i(t),u_overlay_scale:new e.Uniform1f(t)}),clippingMask:t=>({u_matrix:new e.UniformMatrix4f(t)}),heatmap:t=>({u_extrude_scale:new e.Uniform1f(t),u_intensity:new e.Uniform1f(t),u_matrix:new e.UniformMatrix4f(t),u_inv_rot_matrix:new e.UniformMatrix4f(t),u_merc_center:new e.Uniform2f(t),u_tile_id:new e.Uniform3f(t),u_zoom_transition:new e.Uniform1f(t),u_up_dir:new e.Uniform3f(t)}),heatmapTexture:t=>({u_image:new e.Uniform1i(t),u_color_ramp:new e.Uniform1i(t),u_opacity:new e.Uniform1f(t)}),hillshade:t=>({u_matrix:new e.UniformMatrix4f(t),u_image:new e.Uniform1i(t),u_latrange:new e.Uniform2f(t),u_light:new e.Uniform2f(t),u_shadow:new e.UniformColor(t),u_highlight:new e.UniformColor(t),u_accent:new e.UniformColor(t)}),hillshadePrepare:t=>({u_matrix:new e.UniformMatrix4f(t),u_image:new e.Uniform1i(t),u_dimension:new e.Uniform2f(t),u_zoom:new e.Uniform1f(t),u_unpack:new e.Uniform4f(t)}),line:t=>({u_matrix:new e.UniformMatrix4f(t),u_pixels_to_tile_units:new e.UniformMatrix2f(t),u_device_pixel_ratio:new e.Uniform1f(t),u_units_to_pixels:new e.Uniform2f(t),u_dash_image:new e.Uniform1i(t),u_gradient_image:new e.Uniform1i(t),u_image_height:new e.Uniform1f(t),u_texsize:new e.Uniform2f(t),u_tile_units_to_pixels:new e.Uniform1f(t),u_alpha_discard_threshold:new e.Uniform1f(t),u_trim_offset:new e.Uniform2f(t)}),linePattern:t=>({u_matrix:new e.UniformMatrix4f(t),u_texsize:new e.Uniform2f(t),u_pixels_to_tile_units:new e.UniformMatrix2f(t),u_device_pixel_ratio:new e.Uniform1f(t),u_image:new e.Uniform1i(t),u_units_to_pixels:new e.Uniform2f(t),u_tile_units_to_pixels:new e.Uniform1f(t),u_alpha_discard_threshold:new e.Uniform1f(t)}),raster:t=>({u_matrix:new e.UniformMatrix4f(t),u_tl_parent:new e.Uniform2f(t),u_scale_parent:new e.Uniform1f(t),u_fade_t:new e.Uniform1f(t),u_opacity:new e.Uniform1f(t),u_image0:new e.Uniform1i(t),u_image1:new e.Uniform1i(t),u_brightness_low:new e.Uniform1f(t),u_brightness_high:new e.Uniform1f(t),u_saturation_factor:new e.Uniform1f(t),u_contrast_factor:new e.Uniform1f(t),u_spin_weights:new e.Uniform3f(t),u_perspective_transform:new e.Uniform2f(t)}),symbolIcon:t=>({u_is_size_zoom_constant:new e.Uniform1i(t),u_is_size_feature_constant:new e.Uniform1i(t),u_size_t:new e.Uniform1f(t),u_size:new e.Uniform1f(t),u_camera_to_center_distance:new e.Uniform1f(t),u_rotate_symbol:new e.Uniform1i(t),u_aspect_ratio:new e.Uniform1f(t),u_fade_change:new e.Uniform1f(t),u_matrix:new e.UniformMatrix4f(t),u_label_plane_matrix:new e.UniformMatrix4f(t),u_coord_matrix:new e.UniformMatrix4f(t),u_is_text:new e.Uniform1i(t),u_pitch_with_map:new e.Uniform1i(t),u_texsize:new e.Uniform2f(t),u_tile_id:new e.Uniform3f(t),u_zoom_transition:new e.Uniform1f(t),u_inv_rot_matrix:new e.UniformMatrix4f(t),u_merc_center:new e.Uniform2f(t),u_camera_forward:new e.Uniform3f(t),u_tile_matrix:new e.UniformMatrix4f(t),u_up_vector:new e.Uniform3f(t),u_ecef_origin:new e.Uniform3f(t),u_texture:new e.Uniform1i(t)}),symbolSDF:t=>({u_is_size_zoom_constant:new e.Uniform1i(t),u_is_size_feature_constant:new e.Uniform1i(t),u_size_t:new e.Uniform1f(t),u_size:new e.Uniform1f(t),u_camera_to_center_distance:new e.Uniform1f(t),u_rotate_symbol:new e.Uniform1i(t),u_aspect_ratio:new e.Uniform1f(t),u_fade_change:new e.Uniform1f(t),u_matrix:new e.UniformMatrix4f(t),u_label_plane_matrix:new e.UniformMatrix4f(t),u_coord_matrix:new e.UniformMatrix4f(t),u_is_text:new e.Uniform1i(t),u_pitch_with_map:new e.Uniform1i(t),u_texsize:new e.Uniform2f(t),u_texture:new e.Uniform1i(t),u_gamma_scale:new e.Uniform1f(t),u_device_pixel_ratio:new e.Uniform1f(t),u_tile_id:new e.Uniform3f(t),u_zoom_transition:new e.Uniform1f(t),u_inv_rot_matrix:new e.UniformMatrix4f(t),u_merc_center:new e.Uniform2f(t),u_camera_forward:new e.Uniform3f(t),u_tile_matrix:new e.UniformMatrix4f(t),u_up_vector:new e.Uniform3f(t),u_ecef_origin:new e.Uniform3f(t),u_is_halo:new e.Uniform1i(t)}),symbolTextAndIcon:t=>({u_is_size_zoom_constant:new e.Uniform1i(t),u_is_size_feature_constant:new e.Uniform1i(t),u_size_t:new e.Uniform1f(t),u_size:new e.Uniform1f(t),u_camera_to_center_distance:new e.Uniform1f(t),u_rotate_symbol:new e.Uniform1i(t),u_aspect_ratio:new e.Uniform1f(t),u_fade_change:new e.Uniform1f(t),u_matrix:new e.UniformMatrix4f(t),u_label_plane_matrix:new e.UniformMatrix4f(t),u_coord_matrix:new e.UniformMatrix4f(t),u_is_text:new e.Uniform1i(t),u_pitch_with_map:new e.Uniform1i(t),u_texsize:new e.Uniform2f(t),u_texsize_icon:new e.Uniform2f(t),u_texture:new e.Uniform1i(t),u_texture_icon:new e.Uniform1i(t),u_gamma_scale:new e.Uniform1f(t),u_device_pixel_ratio:new e.Uniform1f(t),u_is_halo:new e.Uniform1i(t)}),background:t=>({u_matrix:new e.UniformMatrix4f(t),u_opacity:new e.Uniform1f(t),u_color:new e.UniformColor(t)}),backgroundPattern:t=>({u_matrix:new e.UniformMatrix4f(t),u_opacity:new e.Uniform1f(t),u_image:new e.Uniform1i(t),u_pattern_tl:new e.Uniform2f(t),u_pattern_br:new e.Uniform2f(t),u_texsize:new e.Uniform2f(t),u_pattern_size:new e.Uniform2f(t),u_pixel_coord_upper:new e.Uniform2f(t),u_pixel_coord_lower:new e.Uniform2f(t),u_tile_units_to_pixels:new e.Uniform1f(t)}),terrainRaster:gi,terrainDepth:gi,skybox:t=>({u_matrix:new e.UniformMatrix4f(t),u_sun_direction:new e.Uniform3f(t),u_cubemap:new e.Uniform1i(t),u_opacity:new e.Uniform1f(t),u_temporal_offset:new e.Uniform1f(t)}),skyboxGradient:t=>({u_matrix:new e.UniformMatrix4f(t),u_color_ramp:new e.Uniform1i(t),u_center_direction:new e.Uniform3f(t),u_radius:new e.Uniform1f(t),u_opacity:new e.Uniform1f(t),u_temporal_offset:new e.Uniform1f(t)}),skyboxCapture:t=>({u_matrix_3f:new e.UniformMatrix3f(t),u_sun_direction:new e.Uniform3f(t),u_sun_intensity:new e.Uniform1f(t),u_color_tint_r:new e.Uniform4f(t),u_color_tint_m:new e.Uniform4f(t),u_luminance:new e.Uniform1f(t)}),globeRaster:t=>({u_proj_matrix:new e.UniformMatrix4f(t),u_globe_matrix:new e.UniformMatrix4f(t),u_normalize_matrix:new e.UniformMatrix4f(t),u_merc_matrix:new e.UniformMatrix4f(t),u_zoom_transition:new e.Uniform1f(t),u_merc_center:new e.Uniform2f(t),u_image0:new e.Uniform1i(t),u_grid_matrix:new e.UniformMatrix3f(t),u_skirt_height:new e.Uniform1f(t),u_frustum_tl:new e.Uniform3f(t),u_frustum_tr:new e.Uniform3f(t),u_frustum_br:new e.Uniform3f(t),u_frustum_bl:new e.Uniform3f(t),u_globe_pos:new e.Uniform3f(t),u_globe_radius:new e.Uniform1f(t),u_viewport:new e.Uniform2f(t)}),globeAtmosphere:t=>({u_frustum_tl:new e.Uniform3f(t),u_frustum_tr:new e.Uniform3f(t),u_frustum_br:new e.Uniform3f(t),u_frustum_bl:new e.Uniform3f(t),u_horizon:new e.Uniform1f(t),u_transition:new e.Uniform1f(t),u_fadeout_range:new e.Uniform1f(t),u_color:new e.Uniform4f(t),u_high_color:new e.Uniform4f(t),u_space_color:new e.Uniform4f(t),u_star_intensity:new e.Uniform1f(t),u_star_density:new e.Uniform1f(t),u_star_size:new e.Uniform1f(t),u_temporal_offset:new e.Uniform1f(t),u_horizon_angle:new e.Uniform1f(t),u_rotation_matrix:new e.UniformMatrix4f(t)})};let ao;function lo(t,i,o,r,n,s,a){const l=t.context,c=l.gl,h=t.transform,u=t.useProgram("collisionBox"),_=[];let d=0,p=0;for(let m=0;m0){const t=e.create(),i=y;e.mul(t,v.placementInvProjMatrix,h.glCoordMatrix),e.mul(t,t,v.placementViewportMatrix),_.push({circleArray:w,circleOffset:p,transform:i,invTransform:t,projection:v.getProjection()}),d+=w.length/4,p=d;}b&&(t.terrain&&t.terrain.setupElevationDraw(g,u),u.draw(l,c.LINES,e.DepthMode.disabled,e.StencilMode.disabled,t.colorModeForRenderPass(),e.CullFaceMode.disabled,Zi(y,h,g,v.getProjection()),o.id,b.layoutVertexBuffer,b.indexBuffer,b.segments,null,h.zoom,null,[b.collisionVertexBuffer,b.collisionVertexBufferExt]));}if(!a||!_.length)return;const m=t.useProgram("collisionCircle"),f=new e.StructArrayLayout2f1f2i16;f.resize(4*d),f._trim();let g=0;for(const e of _)for(let t=0;t=0&&(m[y.associatedIconIndex]={x:C,y:M,z:I,angle:A});}else dt(T,d);}if(u){p.clear();const i=t.icon.placedSymbolArray;for(let t=0;te.sortKey-t.sortKey));for(const e of M){const i=e.state;if(t.terrain&&t.terrain.setupElevationDraw(i.tile,i.program,{useDepthForOcclusion:!C,labelPlaneMatrixInv:i.labelPlaneMatrixInv}),d.activeTexture.set(p.TEXTURE0),i.atlasTexture.bind(i.atlasInterpolation,p.CLAMP_TO_EDGE),i.atlasTextureIcon&&(d.activeTexture.set(p.TEXTURE1),i.atlasTextureIcon&&i.atlasTextureIcon.bind(i.atlasInterpolationIcon,p.CLAMP_TO_EDGE)),i.isSDF){const r=i.uniformValues;i.hasHalo&&(r.u_is_halo=1,mo(i.buffers,e.segments,o,t,i.program,w,u,_,r)),r.u_is_halo=0;}mo(i.buffers,e.segments,o,t,i.program,w,u,_,i.uniformValues);}}function mo(t,i,o,r,n,s,a,l,c){const h=r.context,u=[t.dynamicLayoutVertexBuffer,t.opacityVertexBuffer,t.globeExtVertexBuffer];n.draw(h,h.gl.TRIANGLES,s,a,l,e.CullFaceMode.disabled,c,o.id,t.layoutVertexBuffer,t.indexBuffer,i,o.paint,r.transform.zoom,t.programConfigurations.get(o.id),u);}function fo(t,i,o,r,n,s,a){const l=t.context.gl,c=o.paint.get("fill-pattern"),h=c&&c.constantOr(1);let u,_,d,p,m;a?(_=h&&!o.getPaintProperty("fill-outline-color")?"fillOutlinePattern":"fillOutline",u=l.LINES):(_=h?"fillPattern":"fill",u=l.TRIANGLES);for(const f of r){const r=i.getTile(f);if(h&&!r.patternsLoaded())continue;const g=r.getBucket(o);if(!g)continue;t.prepareDrawTile();const v=g.programConfigurations.get(o.id),x=t.useProgram(_,v);h&&(t.context.activeTexture.set(l.TEXTURE0),r.imageAtlasTexture.bind(l.LINEAR,l.CLAMP_TO_EDGE),v.updatePaintBuffers());const y=c.constantOr(null);if(y&&r.imageAtlas){const e=r.imageAtlas.patternPositions[y.toString()];e&&v.setConstantPatternPositions(e);}const b=t.translatePosMatrix(f.projMatrix,r,o.paint.get("fill-translate"),o.paint.get("fill-translate-anchor"));if(a){p=g.indexBuffer2,m=g.segments2;const e=t.terrain&&t.terrain.renderingToTexture?t.terrain.drapeBufferSize:[l.drawingBufferWidth,l.drawingBufferHeight];d="fillOutlinePattern"===_&&h?Ui(b,t,r,e):Fi(b,e);}else p=g.indexBuffer,m=g.segments,d=h?ki(b,t,r):Bi(b);t.prepareDrawProgram(t.context,x,f.toUnwrapped()),x.draw(t.context,u,n,t.stencilModeForClipping(f),s,e.CullFaceMode.disabled,d,o.id,g.layoutVertexBuffer,p,m,o.paint,t.transform.zoom,v);}}function go(t,i,o,r,n,s,a){const l=t.context,c=l.gl,h=t.transform,u=o.paint.get("fill-extrusion-pattern"),_=u.constantOr(1),d=o.paint.get("fill-extrusion-opacity"),p=[o.paint.get("fill-extrusion-ambient-occlusion-intensity"),o.paint.get("fill-extrusion-ambient-occlusion-radius")],m=o.layout.get("fill-extrusion-edge-radius"),f=m>0&&!o.paint.get("fill-extrusion-rounded-roof"),g=f?0:m,v="globe"===h.projection.name?e.fillExtrusionHeightLift():0,x="globe"===h.projection.name,y=x?e.globeToMercatorTransition(h.zoom):0,b=[e.mercatorXfromLng(h.center.lng),e.mercatorYfromLat(h.center.lat)],w=[];x&&w.push("PROJECTION_GLOBE_VIEW"),p[0]>0&&w.push("FAUX_AO"),f&&w.push("ZERO_ROOF_RADIUS");for(const m of r){const r=i.getTile(m),f=r.getBucket(o);if(!f||f.projection.name!==h.projection.name)continue;const T=f.programConfigurations.get(o.id),E=t.useProgram(_?"fillExtrusionPattern":"fillExtrusion",T,w);if(t.terrain){const e=t.terrain;if(t.style.terrainSetForDrapingOnly())e.setupElevationDraw(r,E,{useMeterToDem:!0});else {if(!f.enableTerrain)continue;if(e.setupElevationDraw(r,E,{useMeterToDem:!0}),vo(l,i,m,f,o,e),!f.centroidVertexBuffer){const e=E.attributes.a_centroid_pos;void 0!==e&&c.vertexAttrib2f(e,0,0);}}}_&&(t.context.activeTexture.set(c.TEXTURE0),r.imageAtlasTexture.bind(c.LINEAR,c.CLAMP_TO_EDGE),T.updatePaintBuffers());const C=u.constantOr(null);if(C&&r.imageAtlas){const e=r.imageAtlas.patternPositions[C.toString()];e&&T.setConstantPatternPositions(e);}const M=t.translatePosMatrix(m.projMatrix,r,o.paint.get("fill-extrusion-translate"),o.paint.get("fill-extrusion-translate-anchor")),I=h.projection.createInversionMatrix(h,m.canonical),P=o.paint.get("fill-extrusion-vertical-gradient"),S=_?Oi(M,t,P,d,p,g,m,r,v,y,b,I):Ri(M,t,P,d,p,g,m,v,y,b,I);t.prepareDrawProgram(l,E,m.toUnwrapped());const D=[];t.terrain&&D.push(f.centroidVertexBuffer),x&&D.push(f.layoutVertexExtBuffer),E.draw(l,l.gl.TRIANGLES,n,s,a,e.CullFaceMode.backCCW,S,o.id,f.layoutVertexBuffer,f.indexBuffer,f.segments,o.paint,t.transform.zoom,T,D);}}function vo(t,i,o,r,n,s){const a=[t=>{let i=t.canonical.x-1,o=t.wrap;return i<0&&(i=(1<{let i=t.canonical.x+1,o=t.wrap;return i===1<new e.OverscaledTileID(t.overscaledZ,t.wrap,t.canonical.z,t.canonical.x,(0===t.canonical.y?1<new e.OverscaledTileID(t.overscaledZ,t.wrap,t.canonical.z,t.canonical.x,t.canonical.y===(1<{const t=i.getSource().minzoom,o=e=>{const t=i.getTileByID(e);if(t&&t.hasData())return t.getBucket(n)},r=[0,-1,1];for(const i of r){if(e.overscaledZ+i(c[0]=Math.min(t.min.y,i.min.y),c[1]=Math.max(t.max.y,i.max.y),c[2]=e.EXTENT-i.min.x>t.max.x?i.min.x-e.EXTENT:t.max.x,c),u=(t,i)=>(c[0]=Math.min(t.min.x,i.min.x),c[1]=Math.max(t.max.x,i.max.x),c[2]=e.EXTENT-i.min.y>t.max.y?i.min.y-e.EXTENT:t.max.y,c),_=[(e,t)=>h(e,t),(e,t)=>h(t,e),(e,t)=>u(e,t),(e,t)=>u(t,e)],d=new e.Point(0,0);let p,m,f;const g=(t,i,r,n,a)=>{const l=[[n?r:t,n?t:r,0],[n?r:i,n?i:r,0]],c=a<0?e.EXTENT+a:a,h=[n?c:(t+i)/2,n?(t+i)/2:c,0];return 0===r&&a<0||0!==r&&a>0?s.getForTilePoints(f,[h],!0,m):l.push(h),s.getForTilePoints(o,l,!0,p),Math.max(l[0][2],l[1][2],h[2])/s.exaggeration()};for(let t=0;t<4;t++){const i=(t<2?1:5)-t,n=r.borders[t];if(0===n.length)continue;const c=f=a[t](o),h=l(c);if(!(h&&h instanceof e.FillExtrusionBucket&&h.enableTerrain))continue;if(r.borderDoneWithNeighborZ[t]===h.canonical.z&&h.borderDoneWithNeighborZ[i]===r.canonical.z)continue;if(m=s.findDEMTileFor(c),!m||!m.dem)continue;if(!p){const e=s.findDEMTileFor(o);if(!e||!e.dem)return;p=e;}const u=h.borders[i];let v=0;const x=h.borderDoneWithNeighborZ[i]!==r.canonical.z;if(r.canonical.z===h.canonical.z){for(let o=0;oa[0]+3));)x&&h.encodeCentroid(void 0,l,!1),v++;if(l&&va[1]-3)&&(n++,++v!==u.length);)l=h.featuresOnBorder[u[v]];if(l=h.featuresOnBorder[u[o]],s.intersectsCount()>1||l.intersectsCount()>1||1!==n){1!==n&&(v=o),r.encodeCentroid(void 0,s,!1),x&&h.encodeCentroid(void 0,l,!1);continue}const c=_[t](s,l),p=t%2?e.EXTENT-1:0;d.x=g(c[0],Math.min(e.EXTENT-1,c[1]),p,t<2,c[2]),d.y=0,r.encodeCentroid(d,s,!1),x&&h.encodeCentroid(d,l,!1);}else r.encodeCentroid(void 0,s,!1);}r.borderDoneWithNeighborZ[t]=h.canonical.z,r.needsCentroidUpdate=!0,x&&(h.borderDoneWithNeighborZ[i]=r.canonical.z,h.needsCentroidUpdate=!0);}else {for(const e of n)r.encodeCentroid(void 0,r.featuresOnBorder[e],!1);if(x){for(const e of u)h.encodeCentroid(void 0,h.featuresOnBorder[e],!1);h.borderDoneWithNeighborZ[i]=r.canonical.z,h.needsCentroidUpdate=!0;}r.borderDoneWithNeighborZ[t]=h.canonical.z,r.needsCentroidUpdate=!0;}}(r.needsCentroidUpdate||!r.centroidVertexBuffer&&0!==r.centroidVertexArray.length)&&r.uploadCentroid(t);}const xo=new e.Color(1,0,0,1),yo=new e.Color(0,1,0,1),bo=new e.Color(0,0,1,1),wo=new e.Color(1,0,1,1),To=new e.Color(0,1,1,1);function Eo(t,i,o){const r=t.context,n=t.transform,s=r.gl,a="globe"===n.projection.name,l=a?["PROJECTION_GLOBE_VIEW"]:null;let c=o.projMatrix;if(a&&e.globeToMercatorTransition(n.zoom)>0){const t=e.transitionTileAABBinECEF(o.canonical,n),i=e.globeDenormalizeECEF(t);c=e.multiply(new Float32Array(16),n.globeMatrix,i),e.multiply(c,n.projMatrix,c);}const h=t.useProgram("debug",null,l),u=i.getTileByID(o.key);t.terrain&&t.terrain.setupElevationDraw(u,h);const _=e.DepthMode.disabled,d=e.StencilMode.disabled,p=t.colorModeForRenderPass(),m="$debug";r.activeTexture.set(s.TEXTURE0),t.emptyTexture.bind(s.LINEAR,s.CLAMP_TO_EDGE),a?u._makeGlobeTileDebugBuffers(t.context,n):u._makeDebugTileBoundsBuffers(t.context,n.projection);const f=u._tileDebugBuffer||t.debugBuffer,g=u._tileDebugIndexBuffer||t.debugIndexBuffer,v=u._tileDebugSegments||t.debugSegments;h.draw(r,s.LINE_STRIP,_,d,p,e.CullFaceMode.disabled,Vi(c,e.Color.red),m,f,g,v,null,null,null,[u._globeTileDebugBorderBuffer]);const x=u.latestRawTileData,y=Math.floor((x&&x.byteLength||0)/1024),b=i.getTile(o).tileSize,w=512/Math.min(b,512)*(o.overscaledZ/n.zoom)*.5;let T=o.canonical.toString();o.overscaledZ!==o.canonical.z&&(T+=` => ${o.overscaledZ}`),T+=` ${y}kb`,function(e,t){e.initDebugOverlayCanvas();const i=e.debugOverlayCanvas,o=e.context.gl,r=e.debugOverlayCanvas.getContext("2d");r.clearRect(0,0,i.width,i.height),r.shadowColor="white",r.shadowBlur=2,r.lineWidth=1.5,r.strokeStyle="white",r.textBaseline="top",r.font="bold 36px Open Sans, sans-serif",r.fillText(t,5,5),r.strokeText(t,5,5),e.debugOverlayTexture.update(i),e.debugOverlayTexture.bind(o.LINEAR,o.CLAMP_TO_EDGE);}(t,T);const E=u._tileDebugTextBuffer||t.debugBuffer,C=u._tileDebugTextIndexBuffer||t.quadTriangleIndexBuffer,M=u._tileDebugTextSegments||t.debugSegments;h.draw(r,s.TRIANGLES,_,d,e.ColorMode.alphaBlended,e.CullFaceMode.disabled,Vi(c,e.Color.transparent,w),m,E,C,M,null,null,null,[u._globeTileDebugTextBuffer]);}function Co(e,t,i,o){Io(e,0,t+i/2,e.transform.width,i,o);}function Mo(e,t,i,o){Io(e,t-i/2,0,i,e.transform.height,o);}function Io(t,i,o,r,n,s){const a=t.context,l=a.gl;l.enable(l.SCISSOR_TEST),l.scissor(i*e.exported.devicePixelRatio,o*e.exported.devicePixelRatio,r*e.exported.devicePixelRatio,n*e.exported.devicePixelRatio),a.clear({color:s}),l.disable(l.SCISSOR_TEST);}const Po=e.createLayout([{name:"a_pos_3f",components:3,type:"Float32"}]),{members:So}=Po;function Do(e,t,i,o){e.emplaceBack(t,i,o);}class Lo{constructor(t){this.vertexArray=new e.StructArrayLayout3f12,this.indices=new e.StructArrayLayout3ui6,Do(this.vertexArray,-1,-1,1),Do(this.vertexArray,1,-1,1),Do(this.vertexArray,-1,1,1),Do(this.vertexArray,1,1,1),Do(this.vertexArray,-1,-1,-1),Do(this.vertexArray,1,-1,-1),Do(this.vertexArray,-1,1,-1),Do(this.vertexArray,1,1,-1),this.indices.emplaceBack(5,1,3),this.indices.emplaceBack(3,7,5),this.indices.emplaceBack(6,2,0),this.indices.emplaceBack(0,4,6),this.indices.emplaceBack(2,6,7),this.indices.emplaceBack(7,3,2),this.indices.emplaceBack(5,4,0),this.indices.emplaceBack(0,1,5),this.indices.emplaceBack(0,2,3),this.indices.emplaceBack(3,1,0),this.indices.emplaceBack(7,6,4),this.indices.emplaceBack(4,5,7),this.vertexBuffer=t.createVertexBuffer(this.vertexArray,So),this.indexBuffer=t.createIndexBuffer(this.indices),this.segment=e.SegmentVector.simpleSegment(0,0,36,12);}}function Ao(t,i,o,r,n,s){const a=t.gl,l=i.paint.get("sky-atmosphere-color"),c=i.paint.get("sky-atmosphere-halo-color"),h=i.paint.get("sky-atmosphere-sun-intensity"),u=((e,t,i,o,r)=>({u_matrix_3f:e,u_sun_direction:t,u_sun_intensity:i,u_color_tint_r:[o.r,o.g,o.b,o.a],u_color_tint_m:[r.r,r.g,r.b,r.a],u_luminance:5e-5}))(e.fromMat4(e.create$1(),r),n,h,l,c);a.framebufferTexture2D(a.FRAMEBUFFER,a.COLOR_ATTACHMENT0,a.TEXTURE_CUBE_MAP_POSITIVE_X+s,i.skyboxTexture,0),o.draw(t,a.TRIANGLES,e.DepthMode.disabled,e.StencilMode.disabled,e.ColorMode.unblended,e.CullFaceMode.frontCW,u,"skyboxCapture",i.skyboxGeometry.vertexBuffer,i.skyboxGeometry.indexBuffer,i.skyboxGeometry.segment);}const zo=e.createLayout([{type:"Float32",name:"a_pos",components:3},{type:"Float32",name:"a_uv",components:2}]);class Ro{constructor(t){const i=new e.StructArrayLayout5f20;i.emplaceBack(-1,1,1,0,0),i.emplaceBack(1,1,1,1,0),i.emplaceBack(1,-1,1,1,1),i.emplaceBack(-1,-1,1,0,1);const o=new e.StructArrayLayout3ui6;o.emplaceBack(0,1,2),o.emplaceBack(2,3,0),this.vertexBuffer=t.createVertexBuffer(i,zo.members),this.indexBuffer=t.createIndexBuffer(o),this.segments=e.SegmentVector.simpleSegment(0,0,4,2);}destroy(){this.vertexBuffer.destroy(),this.indexBuffer.destroy(),this.segments.destroy();}}const Oo={symbol:function(t,i,o,r,n){if("translucent"!==t.renderPass)return;const s=e.StencilMode.disabled,a=t.colorModeForRenderPass();o.layout.get("text-variable-anchor")&&function(t,i,o,r,n,s,a){const l=i.transform,c="map"===n,h="map"===s;for(const i of t){const t=r.getTile(i),n=t.getBucket(o);if(!n||!n.text||!n.text.segments.get().length)continue;const s=e.evaluateSizeForZoom(n.textSizeData,l.zoom),u=xt(i,n.getProjection(),l),_=l.calculatePixelsToTileUnitsMatrix(t),d=et(u,t.tileID.canonical,h,c,l,n.getProjection(),_),p="none"!==o.layout.get("icon-text-fit")&&n.hasIconData();if(s){const o=Math.pow(2,l.zoom-t.tileID.overscaledZ);uo(n,c,h,a,e.symbolSize,l,d,i,o,s,p);}}}(r,t,o,i,o.layout.get("text-rotation-alignment"),o.layout.get("text-pitch-alignment"),n),0!==o.paint.get("icon-opacity").constantOr(1)&&po(t,i,o,r,!1,o.paint.get("icon-translate"),o.paint.get("icon-translate-anchor"),o.layout.get("icon-rotation-alignment"),o.layout.get("icon-pitch-alignment"),o.layout.get("icon-keep-upright"),s,a),0!==o.paint.get("text-opacity").constantOr(1)&&po(t,i,o,r,!0,o.paint.get("text-translate"),o.paint.get("text-translate-anchor"),o.layout.get("text-rotation-alignment"),o.layout.get("text-pitch-alignment"),o.layout.get("text-keep-upright"),s,a),i.map.showCollisionBoxes&&(lo(t,i,o,r,o.paint.get("text-translate"),o.paint.get("text-translate-anchor"),!0),lo(t,i,o,r,o.paint.get("icon-translate"),o.paint.get("icon-translate-anchor"),!1));},circle:function(t,i,o,r){if("translucent"!==t.renderPass)return;const n=o.paint.get("circle-opacity"),s=o.paint.get("circle-stroke-width"),a=o.paint.get("circle-stroke-opacity"),l=void 0!==o.layout.get("circle-sort-key").constantOr(1);if(0===n.constantOr(1)&&(0===s.constantOr(1)||0===a.constantOr(1)))return;const c=t.context,h=c.gl,u=t.transform,_=t.depthModeForSublayer(0,e.DepthMode.ReadOnly),d=e.StencilMode.disabled,p=t.colorModeForRenderPass(),m="globe"===u.projection.name,f=[e.mercatorXfromLng(u.center.lng),e.mercatorYfromLat(u.center.lat)],g=[];for(let n=0;ne.sortKey-t.sortKey));const v={useDepthForOcclusion:!m};for(const i of g){const{programConfiguration:r,program:n,layoutVertexBuffer:s,globeExtVertexBuffer:a,indexBuffer:l,uniformValues:m,tile:f}=i.state,g=i.segments;t.terrain&&t.terrain.setupElevationDraw(f,n,v),t.prepareDrawProgram(c,n,f.tileID.toUnwrapped()),n.draw(c,h.TRIANGLES,_,d,p,e.CullFaceMode.disabled,m,o.id,s,l,g,o.paint,u.zoom,r,[a]);}},heatmap:function(t,i,o,r){if(0!==o.paint.get("heatmap-opacity"))if("offscreen"===t.renderPass){const n=t.context,s=n.gl,a=e.StencilMode.disabled,l=new e.ColorMode([s.ONE,s.ONE],e.Color.transparent,[!0,!0,!0,!0]);!function(e,t,i,o){const r=e.gl,n=t.width*o,s=t.height*o;e.activeTexture.set(r.TEXTURE1),e.viewport.set([0,0,n,s]);let a=i.heatmapFbo;if(!a||a&&(a.width!==n||a.height!==s)){a&&a.destroy();const t=r.createTexture();r.bindTexture(r.TEXTURE_2D,t),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_S,r.CLAMP_TO_EDGE),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_T,r.CLAMP_TO_EDGE),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MIN_FILTER,r.LINEAR),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MAG_FILTER,r.LINEAR),a=i.heatmapFbo=e.createFramebuffer(n,s,!1),function(e,t,i,o,r,n){const s=e.gl;s.texImage2D(s.TEXTURE_2D,0,e.isWebGL2&&e.extRenderToTextureHalfFloat?s.RGBA16F:s.RGBA,r,n,0,s.RGBA,e.extRenderToTextureHalfFloat?e.isWebGL2?s.HALF_FLOAT:e.extTextureHalfFloat.HALF_FLOAT_OES:s.UNSIGNED_BYTE,null),o.colorAttachment.set(i);}(e,0,t,a,n,s);}else r.bindTexture(r.TEXTURE_2D,a.colorAttachment.get()),e.bindFramebuffer.set(a.framebuffer);}(n,t,o,"globe"===t.transform.projection.name?.5:.25),n.clear({color:e.Color.transparent});const c=t.transform,h="globe"===c.projection.name,u=h?["PROJECTION_GLOBE_VIEW"]:null,_=h?e.CullFaceMode.frontCCW:e.CullFaceMode.disabled,d=[e.mercatorXfromLng(c.center.lng),e.mercatorYfromLat(c.center.lat)];for(let p=0;p({u_image:0,u_color_ramp:1,u_opacity:t.paint.get("heatmap-opacity")}))(0,i),i.id,t.viewportBuffer,t.quadTriangleIndexBuffer,t.viewportSegments,i.paint,t.transform.zoom);}(t,o));},line:function(t,i,o,r){if("translucent"!==t.renderPass)return;const n=o.paint.get("line-opacity"),s=o.paint.get("line-width");if(0===n.constantOr(1)||0===s.constantOr(1))return;const a=t.depthModeForSublayer(0,e.DepthMode.ReadOnly),l=t.colorModeForRenderPass(),c=t.terrain&&t.terrain.renderingToTexture?1:e.exported.devicePixelRatio,h=o.paint.get("line-dasharray"),u=h.constantOr(1),_=o.layout.get("line-cap"),d=o.paint.get("line-pattern"),p=d.constantOr(1),m=o.paint.get("line-gradient"),f=p?"linePattern":"line",g=t.context,v=g.gl,x=(e=>{const t=[];Ki(e)&&t.push("RENDER_LINE_DASH"),e.paint.get("line-gradient")&&t.push("RENDER_LINE_GRADIENT");const i=e.paint.get("line-trim-offset");0===i[0]&&0===i[1]||t.push("RENDER_LINE_TRIM_OFFSET");const o=e.paint.get("line-pattern").constantOr(1),r=1!==e.paint.get("line-opacity").constantOr(1);return !o&&r&&t.push("RENDER_LINE_ALPHA_DISCARD"),t})(o);let y=x.includes("RENDER_LINE_ALPHA_DISCARD");t.terrain&&t.terrain.clipOrMaskOverlapStencilType()&&(y=!1);for(const n of r){const r=i.getTile(n);if(p&&!r.patternsLoaded())continue;const s=r.getBucket(o);if(!s)continue;t.prepareDrawTile();const b=s.programConfigurations.get(o.id),w=t.useProgram(f,b,x),T=d.constantOr(null);if(T&&r.imageAtlas){const e=r.imageAtlas.patternPositions[T.toString()];e&&b.setConstantPatternPositions(e);}const E=h.constantOr(null),C=_.constantOr(null);if(!p&&E&&C&&r.lineAtlas){const e=r.lineAtlas.getDash(E,C);e&&b.setConstantPatternPositions(e);}let[M,I]=o.paint.get("line-trim-offset");if("round"===C||"square"===C){const e=1;M!==I&&(0===M&&(M-=e),1===I&&(I+=e));}const P=t.terrain?n.projMatrix:null,S=p?$i(t,r,o,P,c):qi(t,r,o,P,s.lineClipsArray.length,c,[M,I]);if(m){const r=s.gradients[o.id];let a=r.texture;if(o.gradientVersion!==r.version){let l=256;if(o.stepInterpolant){const o=i.getSource().maxzoom,r=n.canonical.z===o?Math.ceil(1<{w.draw(g,v.TRIANGLES,a,i,l,e.CullFaceMode.disabled,S,o.id,s.layoutVertexBuffer,s.indexBuffer,s.segments,o.paint,t.transform.zoom,b,[s.layoutVertexBuffer2]);};if(y){const i=t.stencilModeForClipping(n).ref;0===i&&t.terrain&&g.clear({stencil:0});const o={func:v.EQUAL,mask:255};S.u_alpha_discard_threshold=.8,D(new e.StencilMode(o,i,255,v.KEEP,v.KEEP,v.INVERT)),S.u_alpha_discard_threshold=0,D(new e.StencilMode(o,i,255,v.KEEP,v.KEEP,v.KEEP));}else D(t.stencilModeForClipping(n));}y&&(t.resetStencilClippingMasks(),t.terrain&&g.clear({stencil:0}));},fill:function(t,i,o,r){const n=o.paint.get("fill-color"),s=o.paint.get("fill-opacity");if(0===s.constantOr(1))return;const a=t.colorModeForRenderPass(),l=o.paint.get("fill-pattern"),c=t.opaquePassEnabledForLayer()&&!l.constantOr(1)&&1===n.constantOr(e.Color.transparent).a&&1===s.constantOr(0)?"opaque":"translucent";if(t.renderPass===c){const n=t.depthModeForSublayer(1,"opaque"===t.renderPass?e.DepthMode.ReadWrite:e.DepthMode.ReadOnly);fo(t,i,o,r,n,a,!1);}if("translucent"===t.renderPass&&o.paint.get("fill-antialias")){const n=t.depthModeForSublayer(o.getPaintProperty("fill-outline-color")?2:0,e.DepthMode.ReadOnly);fo(t,i,o,r,n,a,!0);}},"fill-extrusion":function(t,i,o,r){const n=o.paint.get("fill-extrusion-opacity");if(0!==n&&"translucent"===t.renderPass){const s=new e.DepthMode(t.context.gl.LEQUAL,e.DepthMode.ReadWrite,t.depthRangeFor3D);if(1!==n||o.paint.get("fill-extrusion-pattern").constantOr(1))go(t,i,o,r,s,e.StencilMode.disabled,e.ColorMode.disabled),go(t,i,o,r,s,t.stencilModeFor3D(),t.colorModeForRenderPass()),t.resetStencilClippingMasks();else {const n=t.colorModeForRenderPass();go(t,i,o,r,s,e.StencilMode.disabled,n);}}},hillshade:function(t,i,o,r){if("offscreen"!==t.renderPass&&"translucent"!==t.renderPass)return;const n=t.context,s=t.depthModeForSublayer(0,e.DepthMode.ReadOnly),a=t.colorModeForRenderPass(),l=t.terrain&&t.terrain.renderingToTexture,[c,h]="translucent"!==t.renderPass||l?[{},r]:t.stencilConfigForOverlap(r);for(const r of h){const n=i.getTile(r);if(n.needsHillshadePrepare&&"offscreen"===t.renderPass)fi(t,n,o,s,e.StencilMode.disabled,a);else if("translucent"===t.renderPass){const e=l&&t.terrain?t.terrain.stencilModeForRTTOverlap(r):c[r.overscaledZ];pi(t,r,n,o,s,e,a);}}n.viewport.set([0,0,t.width,t.height]),t.resetStencilClippingMasks();},raster:function(t,i,o,r,n,s){if("translucent"!==t.renderPass)return;if(0===o.paint.get("raster-opacity"))return;if(!r.length)return;const a=t.context,l=a.gl,c=i.getSource(),h=t.useProgram("raster"),u=t.colorModeForRenderPass(),_=t.terrain&&t.terrain.renderingToTexture,[d,p]=c instanceof Pe||_?[{},r]:t.stencilConfigForOverlap(r),m=p[p.length-1].overscaledZ,f=!t.options.moving;for(const r of p){const n=_?e.DepthMode.disabled:t.depthModeForSublayer(r.overscaledZ-m,1===o.paint.get("raster-opacity")?e.DepthMode.ReadWrite:e.DepthMode.ReadOnly,l.LESS),p=r.toUnwrapped(),g=i.getTile(r);if(_&&(!g||!g.hasData()))continue;const v=_?r.projMatrix:t.transform.calculateProjMatrix(p,f),x=t.terrain&&_?t.terrain.stencilModeForRTTOverlap(r):d[r.overscaledZ],y=s?0:o.paint.get("raster-fade-duration");g.registerFadeDuration(y);const b=i.findLoadedParent(r,0),w=Mi(g,b,i,t.transform,y);let T,E;t.terrain&&t.terrain.prepareDrawTile();const C="nearest"===o.paint.get("raster-resampling")?l.NEAREST:l.LINEAR;a.activeTexture.set(l.TEXTURE0),g.texture.bind(C,l.CLAMP_TO_EDGE),a.activeTexture.set(l.TEXTURE1),b?(b.texture.bind(C,l.CLAMP_TO_EDGE),T=Math.pow(2,b.tileID.overscaledZ-g.tileID.overscaledZ),E=[g.tileID.canonical.x*T%1,g.tileID.canonical.y*T%1]):g.texture.bind(C,l.CLAMP_TO_EDGE),g.texture.useMipmap&&a.extTextureFilterAnisotropic&&t.transform.pitch>20&&l.texParameterf(l.TEXTURE_2D,a.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,a.extTextureFilterAnisotropicMax);const M=Ji(v,E||[0,0],T||1,w,o,c instanceof Pe?c.perspectiveTransform:[0,0]);if(t.prepareDrawProgram(a,h,p),c instanceof Pe)c.boundsBuffer&&c.boundsSegments&&h.draw(a,l.TRIANGLES,n,e.StencilMode.disabled,u,e.CullFaceMode.disabled,M,o.id,c.boundsBuffer,t.quadTriangleIndexBuffer,c.boundsSegments);else {const{tileBoundsBuffer:i,tileBoundsIndexBuffer:r,tileBoundsSegments:s}=t.getTileBoundsBuffers(g);h.draw(a,l.TRIANGLES,n,x,u,e.CullFaceMode.disabled,M,o.id,i,r,s);}}t.resetStencilClippingMasks();},background:function(t,i,o,r){const n=o.paint.get("background-color"),s=o.paint.get("background-opacity");if(0===s)return;const a=t.context,l=a.gl,c=t.transform,h=c.tileSize,u=o.paint.get("background-pattern");if(t.isPatternMissing(u))return;const _=!u&&1===n.a&&1===s&&t.opaquePassEnabledForLayer()?"opaque":"translucent";if(t.renderPass!==_)return;const d=e.StencilMode.disabled,p=t.depthModeForSublayer(0,"opaque"===_?e.DepthMode.ReadWrite:e.DepthMode.ReadOnly),m=t.colorModeForRenderPass(),f=t.useProgram(u?"backgroundPattern":"background");let g,v=r;v||(g=t.getBackgroundTiles(),v=Object.values(g).map((e=>e.tileID))),u&&(a.activeTexture.set(l.TEXTURE0),t.imageManager.bind(t.context));for(const _ of v){const v=_.toUnwrapped(),x=r?_.projMatrix:t.transform.calculateProjMatrix(v);t.prepareDrawTile();const y=i?i.getTile(_):g?g[_.key]:new e.Tile(_,h,c.zoom,t),b=u?no(x,s,t,u,{tileID:_,tileSize:h}):ro(x,s,n);t.prepareDrawProgram(a,f,v);const{tileBoundsBuffer:w,tileBoundsIndexBuffer:T,tileBoundsSegments:E}=t.getTileBoundsBuffers(y);f.draw(a,l.TRIANGLES,p,d,m,e.CullFaceMode.disabled,b,o.id,w,T,E);}},sky:function(t,i,o){const r=t.transform,n="mercator"===r.projection.name||"globe"===r.projection.name?1:e.smoothstep(7,8,r.zoom),s=o.paint.get("sky-opacity")*n;if(0===s)return;const a=t.context,l=o.paint.get("sky-type"),c=new e.DepthMode(a.gl.LEQUAL,e.DepthMode.ReadOnly,[0,1]),h=t.frameCounter/1e3%1;"atmosphere"===l?"offscreen"===t.renderPass?o.needsSkyboxCapture(t)&&(function(t,i,o,r){const n=t.context,s=n.gl;let a=i.skyboxFbo;if(!a){a=i.skyboxFbo=n.createFramebuffer(32,32,!1),i.skyboxGeometry=new Lo(n),i.skyboxTexture=n.gl.createTexture(),s.bindTexture(s.TEXTURE_CUBE_MAP,i.skyboxTexture),s.texParameteri(s.TEXTURE_CUBE_MAP,s.TEXTURE_WRAP_S,s.CLAMP_TO_EDGE),s.texParameteri(s.TEXTURE_CUBE_MAP,s.TEXTURE_WRAP_T,s.CLAMP_TO_EDGE),s.texParameteri(s.TEXTURE_CUBE_MAP,s.TEXTURE_MIN_FILTER,s.LINEAR),s.texParameteri(s.TEXTURE_CUBE_MAP,s.TEXTURE_MAG_FILTER,s.LINEAR);for(let e=0;e<6;++e)s.texImage2D(s.TEXTURE_CUBE_MAP_POSITIVE_X+e,0,s.RGBA,32,32,0,s.RGBA,s.UNSIGNED_BYTE,null);}n.bindFramebuffer.set(a.framebuffer),n.viewport.set([0,0,32,32]);const l=i.getCenter(t,!0),c=t.useProgram("skyboxCapture"),h=new Float64Array(16);e.identity(h),e.rotateY(h,h,.5*-Math.PI),Ao(n,i,c,h,l,0),e.identity(h),e.rotateY(h,h,.5*Math.PI),Ao(n,i,c,h,l,1),e.identity(h),e.rotateX(h,h,.5*-Math.PI),Ao(n,i,c,h,l,2),e.identity(h),e.rotateX(h,h,.5*Math.PI),Ao(n,i,c,h,l,3),e.identity(h),Ao(n,i,c,h,l,4),e.identity(h),e.rotateY(h,h,Math.PI),Ao(n,i,c,h,l,5),n.viewport.set([0,0,t.width,t.height]);}(t,o),o.markSkyboxValid(t)):"sky"===t.renderPass&&function(t,i,o,r,n){const s=t.context,a=s.gl,l=t.transform,c=t.useProgram("skybox");s.activeTexture.set(a.TEXTURE0),a.bindTexture(a.TEXTURE_CUBE_MAP,i.skyboxTexture);const h=((e,t,i,o,r)=>({u_matrix:e,u_sun_direction:t,u_cubemap:0,u_opacity:o,u_temporal_offset:r}))(l.skyboxMatrix,i.getCenter(t,!1),0,r,n);t.prepareDrawProgram(s,c),c.draw(s,a.TRIANGLES,o,e.StencilMode.disabled,t.colorModeForRenderPass(),e.CullFaceMode.backCW,h,"skybox",i.skyboxGeometry.vertexBuffer,i.skyboxGeometry.indexBuffer,i.skyboxGeometry.segment);}(t,o,c,s,h):"gradient"===l&&"sky"===t.renderPass&&function(t,i,o,r,n){const s=t.context,a=s.gl,l=t.transform,c=t.useProgram("skyboxGradient");i.skyboxGeometry||(i.skyboxGeometry=new Lo(s)),s.activeTexture.set(a.TEXTURE0);let h=i.colorRampTexture;h||(h=i.colorRampTexture=new e.Texture(s,i.colorRamp,a.RGBA)),h.bind(a.LINEAR,a.CLAMP_TO_EDGE);const u=((t,i,o,r,n)=>({u_matrix:t,u_color_ramp:0,u_center_direction:i,u_radius:e.degToRad(o),u_opacity:r,u_temporal_offset:n}))(l.skyboxMatrix,i.getCenter(t,!1),i.paint.get("sky-gradient-radius"),r,n);t.prepareDrawProgram(s,c),c.draw(s,a.TRIANGLES,o,e.StencilMode.disabled,t.colorModeForRenderPass(),e.CullFaceMode.backCW,u,"skyboxGradient",i.skyboxGeometry.vertexBuffer,i.skyboxGeometry.indexBuffer,i.skyboxGeometry.segment);}(t,o,c,s,h);},debug:function(e,t,i){for(let o=0;oo)return void(this.transform.fogCullDistSq=null);const r=i+.78*(o-i);this.transform.fogCullDistSq=r*r;}get terrain(){return this.transform._terrainEnabled()&&this._terrain&&this._terrain.enabled?this._terrain:null}resize(t,i){if(this.width=t*e.exported.devicePixelRatio,this.height=i*e.exported.devicePixelRatio,this.context.viewport.set([0,0,this.width,this.height]),this.style)for(const e of this.style.order)this.style._layers[e].resize();}setup(){const t=this.context,i=new e.StructArrayLayout2i4;i.emplaceBack(0,0),i.emplaceBack(e.EXTENT,0),i.emplaceBack(0,e.EXTENT),i.emplaceBack(e.EXTENT,e.EXTENT),this.tileExtentBuffer=t.createVertexBuffer(i,e.posAttributes.members),this.tileExtentSegments=e.SegmentVector.simpleSegment(0,0,4,2);const o=new e.StructArrayLayout2i4;o.emplaceBack(0,0),o.emplaceBack(e.EXTENT,0),o.emplaceBack(0,e.EXTENT),o.emplaceBack(e.EXTENT,e.EXTENT),this.debugBuffer=t.createVertexBuffer(o,e.posAttributes.members),this.debugSegments=e.SegmentVector.simpleSegment(0,0,4,5);const r=new e.StructArrayLayout2i4;r.emplaceBack(-1,-1),r.emplaceBack(1,-1),r.emplaceBack(-1,1),r.emplaceBack(1,1),this.viewportBuffer=t.createVertexBuffer(r,e.posAttributes.members),this.viewportSegments=e.SegmentVector.simpleSegment(0,0,4,2);const n=new e.StructArrayLayout4i8;n.emplaceBack(0,0,0,0),n.emplaceBack(e.EXTENT,0,e.EXTENT,0),n.emplaceBack(0,e.EXTENT,0,e.EXTENT),n.emplaceBack(e.EXTENT,e.EXTENT,e.EXTENT,e.EXTENT),this.mercatorBoundsBuffer=t.createVertexBuffer(n,e.boundsAttributes.members),this.mercatorBoundsSegments=e.SegmentVector.simpleSegment(0,0,4,2);const s=new e.StructArrayLayout3ui6;s.emplaceBack(0,1,2),s.emplaceBack(2,1,3),this.quadTriangleIndexBuffer=t.createIndexBuffer(s);const a=new e.StructArrayLayout1ui2;for(const e of [0,1,3,2,0])a.emplaceBack(e);this.debugIndexBuffer=t.createIndexBuffer(a),this.emptyTexture=new e.Texture(t,new e.RGBAImage({width:1,height:1},Uint8Array.of(0,0,0,0)),t.gl.RGBA),this.identityMat=e.create();const l=this.context.gl;this.stencilClearMode=new e.StencilMode({func:l.ALWAYS,mask:0},0,255,l.ZERO,l.ZERO,l.ZERO),this.loadTimeStamps.push(e.window.performance.now()),this.atmosphereBuffer=new Ro(this.context);}getMercatorTileBoundsBuffers(){return {tileBoundsBuffer:this.mercatorBoundsBuffer,tileBoundsIndexBuffer:this.quadTriangleIndexBuffer,tileBoundsSegments:this.mercatorBoundsSegments}}getTileBoundsBuffers(e){return e._makeTileBoundsBuffers(this.context,this.transform.projection),e._tileBoundsBuffer?{tileBoundsBuffer:e._tileBoundsBuffer,tileBoundsIndexBuffer:e._tileBoundsIndexBuffer,tileBoundsSegments:e._tileBoundsSegments}:this.getMercatorTileBoundsBuffers()}clearStencil(){const t=this.context,i=t.gl;this.nextStencilID=1,this.currentStencilSource=void 0,this._tileClippingMaskIDs={},this.useProgram("clippingMask").draw(t,i.TRIANGLES,e.DepthMode.disabled,this.stencilClearMode,e.ColorMode.disabled,e.CullFaceMode.disabled,Ci(this.identityMat),"$clipping",this.viewportBuffer,this.quadTriangleIndexBuffer,this.viewportSegments);}resetStencilClippingMasks(){this.terrain||(this.currentStencilSource=void 0,this._tileClippingMaskIDs={});}_renderTileClippingMasks(t,i,o){if(!i||this.currentStencilSource===i.id||!t.isTileClipped()||!o||0===o.length)return;if(this._tileClippingMaskIDs&&!this.terrain){let e=!1;for(const t of o)if(void 0===this._tileClippingMaskIDs[t.key]){e=!0;break}if(!e)return}this.currentStencilSource=i.id;const r=this.context,n=r.gl;this.nextStencilID+o.length>256&&this.clearStencil(),r.setColorMode(e.ColorMode.disabled),r.setDepthMode(e.DepthMode.disabled);const s=this.useProgram("clippingMask");this._tileClippingMaskIDs={};for(const t of o){const o=i.getTile(t),a=this._tileClippingMaskIDs[t.key]=this.nextStencilID++,{tileBoundsBuffer:l,tileBoundsIndexBuffer:c,tileBoundsSegments:h}=this.getTileBoundsBuffers(o);s.draw(r,n.TRIANGLES,e.DepthMode.disabled,new e.StencilMode({func:n.ALWAYS,mask:0},a,255,n.KEEP,n.KEEP,n.REPLACE),e.ColorMode.disabled,e.CullFaceMode.disabled,Ci(t.projMatrix),"$clipping",l,c,h);}}stencilModeFor3D(){this.currentStencilSource=void 0,this.nextStencilID+1>256&&this.clearStencil();const t=this.nextStencilID++,i=this.context.gl;return new e.StencilMode({func:i.NOTEQUAL,mask:255},t,255,i.KEEP,i.KEEP,i.REPLACE)}stencilModeForClipping(t){if(this.terrain)return this.terrain.stencilModeForRTTOverlap(t);const i=this.context.gl;return new e.StencilMode({func:i.EQUAL,mask:255},this._tileClippingMaskIDs[t.key],0,i.KEEP,i.KEEP,i.REPLACE)}stencilConfigForOverlap(t){const i=this.context.gl,o=t.sort(((e,t)=>t.overscaledZ-e.overscaledZ)),r=o[o.length-1].overscaledZ,n=o[0].overscaledZ-r+1;if(n>1){this.currentStencilSource=void 0,this.nextStencilID+n>256&&this.clearStencil();const t={};for(let o=0;o=0;this.currentLayer--){const e=this.style._layers[o[this.currentLayer]],i=t._getLayerSourceCache(e);if(e.isSky())continue;const r=i?s[i.id]:void 0;this._renderTileClippingMasks(e,i,r),this.renderLayer(this,i,e,r);}if(this.style.fog&&this.transform.projection.supportsFog&&function(t,i){const o=t.context,r=o.gl,n=t.transform,s=new e.DepthMode(r.LEQUAL,e.DepthMode.ReadOnly,[0,1]),a=t.useProgram("globeAtmosphere",null,"globe"===n.projection.name?["PROJECTION_GLOBE_VIEW","FOG"]:["FOG"]),l=e.globeToMercatorTransition(n.zoom),c=i.properties.get("color").toArray01(),h=i.properties.get("high-color").toArray01(),u=i.properties.get("space-color").toArray01PremultipliedAlpha(),_=e.identity$1([]);e.rotateY$1(_,_,-e.degToRad(n._center.lng)),e.rotateX$1(_,_,e.degToRad(n._center.lat)),e.rotateZ$1(_,_,n.angle),e.rotateX$1(_,_,-n._pitch);const d=e.fromQuat(new Float32Array(16),_),p=e.mapValue(i.properties.get("star-intensity"),0,1,0,.25),m=5e-4,f=e.mapValue(i.properties.get("horizon-blend"),0,1,m,.25),g=e.globeUseCustomAntiAliasing(t,o,n)&&f===m?n.worldSize/(2*Math.PI*1.025)-1:n.globeRadius,v=t.frameCounter/1e3%1,x=e.length(n.globeCenterInViewSpace),y=Math.sqrt(Math.pow(x,2)-Math.pow(g,2)),b=Math.acos(y/x),w=((t,i,o,r,n,s,a,l,c,h,u,_,d,p)=>({u_frustum_tl:t,u_frustum_tr:i,u_frustum_br:o,u_frustum_bl:r,u_horizon:n,u_transition:s,u_fadeout_range:a,u_color:l,u_high_color:c,u_space_color:h,u_star_intensity:u,u_star_size:5*e.exported.devicePixelRatio,u_star_density:0,u_temporal_offset:_,u_horizon_angle:d,u_rotation_matrix:p}))(n.frustumCorners.TL,n.frustumCorners.TR,n.frustumCorners.BR,n.frustumCorners.BL,n.frustumCorners.horizon,l,f,c,h,u,p,v,b,d);t.prepareDrawProgram(o,a);const T=t.atmosphereBuffer;T&&a.draw(o,r.TRIANGLES,s,e.StencilMode.disabled,e.ColorMode.alphaBlended,e.CullFaceMode.backCW,w,"skybox",T.vertexBuffer,T.indexBuffer,T.segments);}(this,this.style.fog),this.renderPass="sky",(e.globeToMercatorTransition(this.transform.zoom)>0||"globe"!==this.transform.projection.name)&&this.transform.isHorizonVisible())for(this.currentLayer=0;this.currentLayer{const o=t._getLayerSourceCache(e);o&&!e.isHidden(this.transform.zoom)&&(!i||i.getSource().maxzoom0?t.pop():null}isPatternMissing(e){return null===e||void 0!==e&&!this.imageManager.getPattern(e.toString())}terrainRenderModeElevated(){return this.style&&!!this.style.getTerrain()&&!!this.terrain&&!this.terrain.renderingToTexture}currentGlobalDefines(){const e=this.terrain&&this.terrain.renderingToTexture,t=this.terrain&&0===this.terrain.exaggeration(),i=this.style&&this.style.fog,o=[];return this.terrainRenderModeElevated()&&o.push("TERRAIN"),"globe"===this.transform.projection.name&&o.push("GLOBE"),t&&o.push("ZERO_EXAGGERATION"),i&&!e&&0!==i.getOpacity(this.transform.pitch)&&o.push("FOG"),e&&o.push("RENDER_TO_TEXTURE"),this._showOverdrawInspector&&o.push("OVERDRAW_INSPECTOR"),o}useProgram(e,t,i){this.cache=this.cache||{};const o=i||[],r=this.currentGlobalDefines().concat(o),n=Li.cacheKey(ci[e],e,r,t);return this.cache[n]||(this.cache[n]=new Li(this.context,e,ci[e],t,so[e],r)),this.cache[n]}setCustomLayerDefaults(){this.context.unbindVAO(),this.context.cullFace.setDefault(),this.context.frontFace.setDefault(),this.context.cullFaceSide.setDefault(),this.context.activeTexture.setDefault(),this.context.pixelStoreUnpack.setDefault(),this.context.pixelStoreUnpackPremultiplyAlpha.setDefault(),this.context.pixelStoreUnpackFlipY.setDefault();}setBaseState(){const e=this.context.gl;this.context.cullFace.set(!1),this.context.viewport.set([0,0,this.width,this.height]),this.context.blendEquation.set(e.FUNC_ADD);}initDebugOverlayCanvas(){null==this.debugOverlayCanvas&&(this.debugOverlayCanvas=e.window.document.createElement("canvas"),this.debugOverlayCanvas.width=512,this.debugOverlayCanvas.height=512,this.debugOverlayTexture=new e.Texture(this.context,this.debugOverlayCanvas,this.context.gl.RGBA));}destroy(){this._terrain&&this._terrain.destroy(),this.globeSharedBuffers&&this.globeSharedBuffers.destroy(),this.emptyTexture.destroy(),this.debugOverlayTexture&&this.debugOverlayTexture.destroy(),this.atmosphereBuffer&&this.atmosphereBuffer.destroy();}prepareDrawTile(){this.terrain&&this.terrain.prepareDrawTile();}prepareDrawProgram(t,i,o){if(this.terrain&&this.terrain.renderingToTexture)return;const r=this.style.fog;if(r){const n=r.getOpacity(this.transform.pitch),s=((t,i,o,r,n,s,a,l,c,h,u)=>{const _=t.transform,d=i.properties.get("color").toArray01();d[3]=r;const p=t.frameCounter/1e3%1;return {u_fog_matrix:o?_.calculateFogTileMatrix(o):t.identityMat,u_fog_range:i.getFovAdjustedRange(_._fov),u_fog_color:d,u_fog_horizon_blend:i.properties.get("horizon-blend"),u_fog_temporal_offset:p,u_frustum_tl:n,u_frustum_tr:s,u_frustum_br:a,u_frustum_bl:l,u_globe_pos:c,u_globe_radius:h,u_viewport:u,u_globe_transition:e.globeToMercatorTransition(_.zoom),u_is_globe:+("globe"===_.projection.name)}})(this,r,o,n,this.transform.frustumCorners.TL,this.transform.frustumCorners.TR,this.transform.frustumCorners.BR,this.transform.frustumCorners.BL,this.transform.globeCenterInViewSpace,this.transform.globeRadius,[this.transform.width*e.exported.devicePixelRatio,this.transform.height*e.exported.devicePixelRatio]);i.setFogUniformValues(t,s);}}setTileLoadedFlag(e){this.tileLoaded=e;}saveCanvasCopy(){const e=this.canvasCopy();e&&(this.frameCopies.push(e),this.tileLoaded=!1);}canvasCopy(){const e=this.context.gl,t=e.createTexture();return e.bindTexture(e.TEXTURE_2D,t),e.copyTexImage2D(e.TEXTURE_2D,0,e.RGBA,0,0,e.drawingBufferWidth,e.drawingBufferHeight,0),t}getCanvasCopiesAndTimestamps(){return {canvasCopies:this.frameCopies,timeStamps:this.loadTimeStamps}}averageElevationNeedsEasing(){if(!this.transform._elevation)return !1;const e=this.style&&this.style.fog;return !!e&&0!==e.getOpacity(this.transform.pitch)}getBackgroundTiles(){const t=this._backgroundTiles,i=this._backgroundTiles={},o=this.transform.coveringTiles({tileSize:512});for(const r of o)i[r.key]=t[r.key]||new e.Tile(r,512,this.transform.tileZoom,this);return i}clearBackgroundTiles(){this._backgroundTiles={};}}class ko{constructor(e=0,t=0,i=0,o=0){if(isNaN(e)||e<0||isNaN(t)||t<0||isNaN(i)||i<0||isNaN(o)||o<0)throw new Error("Invalid value for edge-insets, top, bottom, left and right must all be numbers");this.top=e,this.bottom=t,this.left=i,this.right=o;}interpolate(t,i,o){return null!=i.top&&null!=t.top&&(this.top=e.number(t.top,i.top,o)),null!=i.bottom&&null!=t.bottom&&(this.bottom=e.number(t.bottom,i.bottom,o)),null!=i.left&&null!=t.left&&(this.left=e.number(t.left,i.left,o)),null!=i.right&&null!=t.right&&(this.right=e.number(t.right,i.right,o)),this}getCenter(t,i){const o=e.clamp((this.left+t-this.right)/2,0,t),r=e.clamp((this.top+i-this.bottom)/2,0,i);return new e.Point(o,r)}equals(e){return this.top===e.top&&this.bottom===e.bottom&&this.left===e.left&&this.right===e.right}clone(){return new ko(this.top,this.bottom,this.left,this.right)}toJSON(){return {top:this.top,bottom:this.bottom,left:this.left,right:this.right}}}function Fo(t,i){const o=e.getColumn(t,3);e.fromQuat(t,i),e.setColumn(t,3,o);}function Uo(t,i){const o=e.identity$1([]);return e.rotateZ$1(o,o,-i),e.rotateX$1(o,o,-t),o}function No(t,i){const o=[t[0],t[1],0],r=[i[0],i[1],0];if(e.length(o)>=1e-15){const t=e.normalize([],o);e.scale$2(r,t,e.dot(r,t)),i[0]=r[0],i[1]=r[1];}const n=e.cross([],i,t);if(e.len(n)<1e-15)return null;const s=Math.atan2(-n[1],n[0]);return Uo(Math.atan2(Math.sqrt(t[0]*t[0]+t[1]*t[1]),-t[2]),s)}class jo{constructor(e,t){this.position=e,this.orientation=t;}get position(){return this._position}set position(t){if(t){const i=t instanceof e.MercatorCoordinate?t:new e.MercatorCoordinate(t[0],t[1],t[2]);this._renderWorldCopies&&(i.x=e.wrap(i.x,0,1)),this._position=i;}else this._position=null;}lookAtPoint(t,i){if(this.orientation=null,!this.position)return;const o=this.position,r=this._elevation?this._elevation.getAtPointOrZero(e.MercatorCoordinate.fromLngLat(t)):0,n=e.MercatorCoordinate.fromLngLat(t,r),s=[n.x-o.x,n.y-o.y,n.z-o.z];i||(i=[0,0,1]),i[2]=Math.abs(i[2]),this.orientation=No(s,i);}setPitchBearing(t,i){this.orientation=Uo(e.degToRad(t),e.degToRad(-i));}}class Go{constructor(t,i){this._transform=e.identity([]),this.orientation=i,this.position=t;}get mercatorPosition(){const t=this.position;return new e.MercatorCoordinate(t[0],t[1],t[2])}get position(){const t=e.getColumn(this._transform,3);return [t[0],t[1],t[2]]}set position(t){var i;t&&e.setColumn(this._transform,3,[(i=t)[0],i[1],i[2],1]);}get orientation(){return this._orientation}set orientation(t){this._orientation=t||e.identity$1([]),t&&Fo(this._transform,this._orientation);}getPitchBearing(){const e=this.forward(),t=this.right();return {bearing:Math.atan2(-t[1],t[0]),pitch:Math.atan2(Math.sqrt(e[0]*e[0]+e[1]*e[1]),-e[2])}}setPitchBearing(e,t){this._orientation=Uo(e,t),Fo(this._transform,this._orientation);}forward(){const t=e.getColumn(this._transform,2);return [-t[0],-t[1],-t[2]]}up(){const t=e.getColumn(this._transform,1);return [-t[0],-t[1],-t[2]]}right(){const t=e.getColumn(this._transform,0);return [t[0],t[1],t[2]]}getCameraToWorld(t,i){const o=new Float64Array(16);return e.invert(o,this.getWorldToCamera(t,i)),o}getWorldToCameraPosition(t,i,o){const r=this.position;e.scale$2(r,r,-t);const n=new Float64Array(16);return e.fromScaling(n,[o,o,o]),e.translate(n,n,r),n[10]*=i,n}getWorldToCamera(t,i){const o=new Float64Array(16),r=new Float64Array(4),n=this.position;return e.conjugate(r,this._orientation),e.scale$2(n,n,-t),e.fromQuat(o,r),e.translate(o,o,n),o[1]*=-1,o[5]*=-1,o[9]*=-1,o[13]*=-1,o[8]*=i,o[9]*=i,o[10]*=i,o[11]*=i,o}getCameraToClipPerspective(t,i,o,r){const n=new Float64Array(16);return e.perspective(n,t,i,o,r),n}getDistanceToElevation(t,i=!1){const o=0===t?0:e.mercatorZfromAltitude(t,i?e.latFromMercatorY(this.position[1]):this.position[1]),r=this.forward();return (o-this.position[2])/r[2]}clone(){return new Go([...this.position],[...this.orientation])}}function Zo(t,i){const o=Wo(t.projection,t.zoom,t.width,t.height),r=function(t,i,o,r,n){const s=new e.LngLat(o.lng-180*Xo,o.lat),a=new e.LngLat(o.lng+180*Xo,o.lat),l=t.project(s.lng,s.lat),c=t.project(a.lng,a.lat),h=-Math.atan2(c.y-l.y,c.x-l.x),u=e.MercatorCoordinate.fromLngLat(o);u.y=e.clamp(u.y,-1+Xo,1-Xo);const _=u.toLngLat(),d=t.project(_.lng,_.lat),p=e.MercatorCoordinate.fromLngLat(_);p.x+=Xo;const m=p.toLngLat(),f=t.project(m.lng,m.lat),g=$o(f.x-d.x,f.y-d.y,h),v=e.MercatorCoordinate.fromLngLat(_);v.y+=Xo;const x=v.toLngLat(),y=t.project(x.lng,x.lat),b=$o(y.x-d.x,y.y-d.y,h),w=Math.abs(g.x)/Math.abs(b.y),T=e.identity([]);e.rotateZ(T,T,-h*(1-(n?0:r)));const E=e.identity([]);return e.scale(E,E,[1,1-(1-w)*r,1]),E[4]=-b.x/b.y*r,e.rotateZ(E,E,h),e.multiply(E,T,E),E}(t.projection,0,t.center,o,i),n=Vo(t);return e.scale(r,r,[n,n,1]),r}function Vo(t){const i=t.projection,o=Wo(t.projection,t.zoom,t.width,t.height),r=qo(i,t.center),n=qo(i,e.LngLat.convert(i.center));return Math.pow(2,r*o+(1-o)*n)}function Wo(t,i,o,r,n=1/0){const s=t.range;if(!s)return 0;const a=Math.min(n,Math.max(o,r)),l=Math.log(a/1024)/Math.LN2;return e.smoothstep(s[0]+l,s[1]+l,i)}const Xo=1/4e4;function qo(t,i){const o=e.clamp(i.lat,-e.MAX_MERCATOR_LATITUDE,e.MAX_MERCATOR_LATITUDE),r=new e.LngLat(i.lng-180*Xo,o),n=new e.LngLat(i.lng+180*Xo,o),s=t.project(r.lng,o),a=t.project(n.lng,o),l=e.MercatorCoordinate.fromLngLat(r),c=e.MercatorCoordinate.fromLngLat(n),h=a.x-s.x,u=a.y-s.y,_=c.x-l.x,d=c.y-l.y,p=Math.sqrt((_*_+d*d)/(h*h+u*u));return Math.log(p)/Math.LN2}function $o(e,t,i){const o=Math.cos(i),r=Math.sin(i);return {x:e*o-t*r,y:e*r+t*o}}class Ho{constructor(t,i,o,r,n,s,a){this.tileSize=512,this._renderWorldCopies=void 0===n||n,this._minZoom=t||0,this._maxZoom=i||22,this._minPitch=null==o?0:o,this._maxPitch=null==r?60:r,this.setProjection(s),this.setMaxBounds(a),this.width=0,this.height=0,this._center=new e.LngLat(0,0),this.zoom=0,this.angle=0,this._fov=.6435011087932844,this._pitch=0,this._nearZ=0,this._farZ=0,this._unmodified=!0,this._edgeInsets=new ko,this._projMatrixCache={},this._alignedProjMatrixCache={},this._fogTileMatrixCache={},this._distanceTileDataCache={},this._camera=new Go,this._centerAltitude=0,this._averageElevation=0,this.cameraElevationReference="ground",this._pixelsPerMercatorPixel=1,this.globeRadius=0,this.globeCenterInViewSpace=[0,0,0],this._horizonShift=.1;}clone(){const e=new Ho(this._minZoom,this._maxZoom,this._minPitch,this.maxPitch,this._renderWorldCopies,this.getProjection());return e._elevation=this._elevation,e._centerAltitude=this._centerAltitude,e._centerAltitudeValidForExaggeration=this._centerAltitudeValidForExaggeration,e.tileSize=this.tileSize,e.mercatorFromTransition=this.mercatorFromTransition,e.width=this.width,e.height=this.height,e.cameraElevationReference=this.cameraElevationReference,e._center=this._center,e._setZoom(this.zoom),e._seaLevelZoom=this._seaLevelZoom,e.angle=this.angle,e._fov=this._fov,e._pitch=this._pitch,e._nearZ=this._nearZ,e._farZ=this._farZ,e._averageElevation=this._averageElevation,e._unmodified=this._unmodified,e._edgeInsets=this._edgeInsets.clone(),e._camera=this._camera.clone(),e._calcMatrices(),e.freezeTileCoverage=this.freezeTileCoverage,e.frustumCorners=this.frustumCorners,e}get elevation(){return this._elevation}set elevation(e){this._elevation!==e&&(this._elevation=e,this._updateCameraOnTerrain(),this._calcMatrices());}updateElevation(e,t=!1){const i=this._elevation&&this._elevation.exaggeration()!==this._centerAltitudeValidForExaggeration;(null==this._seaLevelZoom||i)&&this._updateCameraOnTerrain(),(e||i)&&this._constrainCamera(t),this._calcMatrices();}getProjection(){return e.pick(this.projection,["name","center","parallels"])}setProjection(i){this.projectionOptions=i||{name:"mercator"};const o=this.projection?this.getProjection():void 0;this.projection=e.getProjection(this.projectionOptions);const r=!t(o,this.getProjection());return r&&this._calcMatrices(),this.mercatorFromTransition=!1,r}setMercatorFromTransition(){const t=this.projection.name;this.mercatorFromTransition=!0,this.projectionOptions={name:"mercator"},this.projection=e.getProjection({name:"mercator"});const i=t!==this.projection.name;return i&&this._calcMatrices(),i}get minZoom(){return this._minZoom}set minZoom(e){this._minZoom!==e&&(this._minZoom=e,this.zoom=Math.max(this.zoom,e));}get maxZoom(){return this._maxZoom}set maxZoom(e){this._maxZoom!==e&&(this._maxZoom=e,this.zoom=Math.min(this.zoom,e));}get minPitch(){return this._minPitch}set minPitch(e){this._minPitch!==e&&(this._minPitch=e,this.pitch=Math.max(this.pitch,e));}get maxPitch(){return this._maxPitch}set maxPitch(e){this._maxPitch!==e&&(this._maxPitch=e,this.pitch=Math.min(this.pitch,e));}get renderWorldCopies(){return this._renderWorldCopies&&!0===this.projection.supportsWorldCopies}set renderWorldCopies(e){void 0===e?e=!0:null===e&&(e=!1),this._renderWorldCopies=e;}get worldSize(){return this.tileSize*this.scale}get cameraWorldSizeForFog(){const e=Math.max(this._camera.getDistanceToElevation(this._averageElevation),Number.EPSILON);return this._worldSizeFromZoom(this._zoomFromMercatorZ(e))}get cameraWorldSize(){const e=Math.max(this._camera.getDistanceToElevation(this._averageElevation,!0),Number.EPSILON);return this._worldSizeFromZoom(this._zoomFromMercatorZ(e))}get pixelsPerMeter(){return this.projection.pixelsPerMeter(this.center.lat,this.worldSize)}get cameraPixelsPerMeter(){return e.mercatorZfromAltitude(this.center.lat,this.cameraWorldSizeForFog)}get centerOffset(){return this.centerPoint._sub(this.size._div(2))}get size(){return new e.Point(this.width,this.height)}get bearing(){return e.wrap(this.rotation,-180,180)}set bearing(e){this.rotation=e;}get rotation(){return -this.angle/Math.PI*180}set rotation(t){const i=-t*Math.PI/180;var o;this.angle!==i&&(this._unmodified=!1,this.angle=i,this._calcMatrices(),this.rotationMatrix=(o=new e.ARRAY_TYPE(4),e.ARRAY_TYPE!=Float32Array&&(o[1]=0,o[2]=0),o[0]=1,o[3]=1,o),function(e,t,i){var o=t[0],r=t[1],n=t[2],s=t[3],a=Math.sin(i),l=Math.cos(i);e[0]=o*l+n*a,e[1]=r*l+s*a,e[2]=o*-a+n*l,e[3]=r*-a+s*l;}(this.rotationMatrix,this.rotationMatrix,this.angle));}get pitch(){return this._pitch/Math.PI*180}set pitch(t){const i=e.clamp(t,this.minPitch,this.maxPitch)/180*Math.PI;this._pitch!==i&&(this._unmodified=!1,this._pitch=i,this._calcMatrices());}get aspect(){return this.width/this.height}get fov(){return this._fov/Math.PI*180}get fovX(){return this._fov}get fovY(){const e=1/Math.tan(.5*this.fovX);return 2*Math.atan(1/this.aspect/e)}set fov(t){t=Math.max(.01,Math.min(60,t)),this._fov!==t&&(this._unmodified=!1,this._fov=e.degToRad(t),this._calcMatrices());}get averageElevation(){return this._averageElevation}set averageElevation(e){this._averageElevation=e,this._calcFogMatrices(),this._distanceTileDataCache={};}get zoom(){return this._zoom}set zoom(e){const t=Math.min(Math.max(e,this.minZoom),this.maxZoom);this._zoom!==t&&(this._unmodified=!1,this._setZoom(t),this._updateSeaLevelZoom(),this._constrain(),this._calcMatrices());}_setZoom(e){this._zoom=e,this.scale=this.zoomScale(e),this.tileZoom=Math.floor(e),this.zoomFraction=e-this.tileZoom;}_updateCameraOnTerrain(){if(!this._elevation||!this._elevation.isDataAvailableAtPoint(this.locationCoordinate(this.center)))return this._centerAltitude=0,this._seaLevelZoom=null,void(this._centerAltitudeValidForExaggeration=void 0);const e=this._elevation;this._centerAltitude=e.getAtPointOrZero(this.locationCoordinate(this.center)),this._centerAltitudeValidForExaggeration=e.exaggeration(),this._updateSeaLevelZoom();}_updateSeaLevelZoom(){void 0!==this._centerAltitudeValidForExaggeration&&(this._seaLevelZoom=this._zoomFromMercatorZ((this.pixelsPerMeter*this._centerAltitude+this.cameraToCenterDistance)/this.worldSize));}sampleAverageElevation(){if(!this._elevation)return 0;const t=this._elevation,i=[[.5,.2],[.3,.5],[.5,.5],[.7,.5],[.5,.8]],o=this.horizonLineFromTop();let r=0,n=0;for(let s=0;st.maxzoom&&(i=t.maxzoom);const s=this.locationCoordinate(this.center),a=this.center.lat,l=1<{const i=1/4e4,o=new e.MercatorCoordinate(t.x+i,t.y,t.z),r=new e.MercatorCoordinate(t.x,t.y+i,t.z),n=t.toLngLat(),s=o.toLngLat(),a=r.toLngLat(),l=this.locationCoordinate(n),c=this.locationCoordinate(s),h=this.locationCoordinate(a),u=Math.hypot(c.x-l.x,c.y-l.y),_=Math.hypot(h.x-l.x,h.y-l.y);return Math.sqrt(u*_)*b/i},T=t=>{const i=x,o=y;return {aabb:e.tileAABB(this,l,0,0,0,t,o,i,this.projection),zoom:0,x:0,y:0,minZ:o,maxZ:i,wrap:t,fullyVisible:!1}},E=[];let C=[];const M=i,I=t.reparseOverscaled?o:i,P=e=>e*e,S=P((m-this._centerAltitude)*p),D=e=>{if(!this._elevation||!e.tileID||!n)return;const t=this._elevation.getMinMaxForTile(e.tileID),i=e.aabb;t?(i.min[2]=t.min,i.max[2]=t.max,i.center[2]=(i.min[2]+i.max[2])/2):(e.shouldSplit=L(e),e.shouldSplit||(i.min[2]=i.max[2]=i.center[2]=this._centerAltitude));},L=t=>{if(t.zoom=.9)return !0}else if(r&&(s=P(t.aabb.distanceZ(f)*p)),this.projection.isReprojectedInTileSpace&&o<=5){const i=Math.pow(2,t.zoom),o=w(new e.MercatorCoordinate((t.x+.5)/i,(t.y+.5)/i));l=o>.85?1:o;}const c=i*i+n*n+s,u=P((1<{if(t*P(.707)0;){const o=E.pop(),s=o.x,a=o.y;let u=o.fullyVisible;if(!u){const e=o.aabb.intersects(_);if(0===e)continue;u=2===e;}if(o.zoom!==M&&L(o))for(let t=0;t<4;t++){const i=(s<<1)+t%2,c=(a<<1)+(t>>1),_={aabb:n?o.aabb.quadrant(t):e.tileAABB(this,l,o.zoom+1,i,c,o.wrap,o.minZ,o.maxZ,this.projection),zoom:o.zoom+1,x:i,y:c,wrap:o.wrap,fullyVisible:u,tileID:void 0,shouldSplit:void 0,minZ:o.minZ,maxZ:o.maxZ};r&&!h&&(_.tileID=new e.OverscaledTileID(o.zoom+1===M?I:o.zoom+1,o.wrap,o.zoom+1,i,c),D(_)),E.push(_);}else {const r=o.zoom===M?I:o.zoom;if(t.minzoom&&t.minzoom>r)continue;const n=c[0]-(.5+s+(o.wrap<{const n=[0,0,0,1],s=[e.EXTENT,e.EXTENT,0,1],a=this.calculateFogTileMatrix(r.tileID.toUnwrapped());e.transformMat4$1(n,n,a),e.transformMat4$1(s,s,a);const l=e.getAABBPointSquareDist(n,s);if(0===l)return !0;let c=!1;const h=this._elevation;if(h&&l>i&&0!==o){const i=this.calculateProjMatrix(r.tileID.toUnwrapped());let n;t.isTerrainDEM||(n=h.getMinMaxForTile(r.tileID)),n||(n={min:y,max:x});const s=e.furthestTileCorner(this.rotation),a=[s[0]*e.EXTENT,s[1]*e.EXTENT,n.max];e.transformMat4(a,a,i),c=(1-a[1])*this.height*.5e.distanceSq-t.distanceSq)).map((e=>e.tileID))}resize(e,t){this.width=e,this.height=t,this.pixelsToGLUnits=[2/e,-2/t],this._constrain(),this._calcMatrices();}get unmodified(){return this._unmodified}zoomScale(e){return Math.pow(2,e)}scaleZoom(e){return Math.log(e)/Math.LN2}project(t){const i=e.clamp(t.lat,-e.MAX_MERCATOR_LATITUDE,e.MAX_MERCATOR_LATITUDE),o=this.projection.project(t.lng,i);return new e.Point(o.x*this.worldSize,o.y*this.worldSize)}unproject(e){return this.projection.unproject(e.x/this.worldSize,e.y/this.worldSize)}get point(){return this.project(this.center)}get pointMerc(){return this.point._div(this.worldSize)}get pixelsPerMeterRatio(){return this.pixelsPerMeter/e.mercatorZfromAltitude(1,this.center.lat)/this.worldSize}setLocationAtPoint(t,i){let o,r;const n=this.centerPoint;if("globe"===this.projection.name){const e=this.worldSize;o=(i.x-n.x)/e,r=(i.y-n.y)/e;}else {const e=this.pointCoordinate(i),t=this.pointCoordinate(n);o=e.x-t.x,r=e.y-t.y;}const s=this.locationCoordinate(t);this.setLocation(new e.MercatorCoordinate(s.x-o,s.y-r));}setLocation(e){this.center=this.coordinateLocation(e),this.projection.wrap&&(this.center=this.center.wrap());}locationPoint(e){return this.projection.locationPoint(this,e)}locationPoint3D(e){return this.projection.locationPoint(this,e,!0)}pointLocation(e){return this.coordinateLocation(this.pointCoordinate(e))}pointLocation3D(e){return this.coordinateLocation(this.pointCoordinate3D(e))}locationCoordinate(t,i){const o=i?e.mercatorZfromAltitude(i,t.lat):void 0,r=this.projection.project(t.lng,t.lat);return new e.MercatorCoordinate(r.x,r.y,o)}coordinateLocation(e){return this.projection.unproject(e.x,e.y)}pointRayIntersection(t,i){const o=null!=i?i:this._centerAltitude,r=[t.x,t.y,0,1],n=[t.x,t.y,1,1];e.transformMat4$1(r,r,this.pixelMatrixInverse),e.transformMat4$1(n,n,this.pixelMatrixInverse);const s=n[3];e.scale$1(r,r,1/r[3]),e.scale$1(n,n,1/s);const a=r[2],l=n[2];return {p0:r,p1:n,t:a===l?0:(o-a)/(l-a)}}screenPointToMercatorRay(t){const i=[t.x,t.y,0,1],o=[t.x,t.y,1,1];return e.transformMat4$1(i,i,this.pixelMatrixInverse),e.transformMat4$1(o,o,this.pixelMatrixInverse),e.scale$1(i,i,1/i[3]),e.scale$1(o,o,1/o[3]),i[2]=e.mercatorZfromAltitude(i[2],this._center.lat)*this.worldSize,o[2]=e.mercatorZfromAltitude(o[2],this._center.lat)*this.worldSize,e.scale$1(i,i,1/this.worldSize),e.scale$1(o,o,1/this.worldSize),new e.Ray([i[0],i[1],i[2]],e.normalize([],e.sub([],o,i)))}rayIntersectionCoordinate(t){const{p0:i,p1:o,t:r}=t,n=e.mercatorZfromAltitude(i[2],this._center.lat),s=e.mercatorZfromAltitude(o[2],this._center.lat);return new e.MercatorCoordinate(e.number(i[0],o[0],r)/this.worldSize,e.number(i[1],o[1],r)/this.worldSize,e.number(n,s,r))}pointCoordinate(e,t=this._centerAltitude){return this.projection.pointCoordinate(this,e.x,e.y,t)}pointCoordinate3D(t){if(!this.elevation)return this.pointCoordinate(t);let i=this.projection.pointCoordinate3D(this,t.x,t.y);if(i)return new e.MercatorCoordinate(i[0],i[1],i[2]);let o=0,r=this.horizonLineFromTop();if(t.y>r)return this.pointCoordinate(t);const n=.02*r,s=t.clone();for(let t=0;t<10&&r-o>n;t++){s.y=e.number(o,r,.66);const t=this.projection.pointCoordinate3D(this,s.x,s.y);t?(r=s.y,i=t):o=s.y;}return i?new e.MercatorCoordinate(i[0],i[1],i[2]):this.pointCoordinate(t)}isPointAboveHorizon(e){return this.projection.isPointAboveHorizon(this,e)}isPointOnSurface(t){if(t.y<0||t.y>this.height||t.x<0||t.x>this.width)return !1;if(this.elevation||this.zoom>=e.GLOBE_ZOOM_THRESHOLD_MAX)return !this.isPointAboveHorizon(t);const i=this.pointCoordinate(t);return i.y>=0&&i.y<=1}_coordinatePoint(t,i){const o=i&&this.elevation?this.elevation.getAtPointOrZero(t,this._centerAltitude):this._centerAltitude,r=[t.x*this.worldSize,t.y*this.worldSize,o+t.toAltitude(),1];return e.transformMat4$1(r,r,this.pixelMatrix),r[3]>0?new e.Point(r[0]/r[3],r[1]/r[3]):new e.Point(Number.MAX_VALUE,Number.MAX_VALUE)}_getBoundsNonRectangular(){const{top:t,left:i}=this._edgeInsets,o=this.height-this._edgeInsets.bottom,r=this.width-this._edgeInsets.right,n=this.pointLocation3D(new e.Point(i,t)),s=this.pointLocation3D(new e.Point(r,t)),a=this.pointLocation3D(new e.Point(r,o)),l=this.pointLocation3D(new e.Point(i,o));let c=Math.min(n.lng,s.lng,a.lng,l.lng),h=Math.max(n.lng,s.lng,a.lng,l.lng),u=Math.min(n.lat,s.lat,a.lat,l.lat),_=Math.max(n.lat,s.lat,a.lat,l.lat);const d=Math.pow(2,-this.zoom)/16*270,p="globe"===this.projection.name?1:4,m=(t,i,o,r,n)=>{const s=(t+o)/2,a=(i+r)/2,l=new e.Point(s,a),{lng:f,lat:g}=this.pointLocation3D(l),v=Math.max(0,c-f,u-g,f-h,g-_);c=Math.min(c,f),h=Math.max(h,f),u=Math.min(u,g),_=Math.max(_,g),(nd)&&(m(t,i,s,a,n+1),m(s,a,o,r,n+1));};if(m(i,t,r,t,1),m(r,t,r,o,1),m(r,o,i,o,1),m(i,o,i,t,1),"globe"===this.projection.name){const[t,i]=e.polesInViewport(this);t?(_=90,h=180,c=-180):i&&(u=-90,h=180,c=-180);}return new e.LngLatBounds(new e.LngLat(c,u),new e.LngLat(h,_))}_getBoundsRectangular(t,i){const{top:o,left:r}=this._edgeInsets,n=this.height-this._edgeInsets.bottom,s=this.width-this._edgeInsets.right,a=new e.Point(r,o),l=new e.Point(s,o),c=new e.Point(s,n),h=new e.Point(r,n);let u=this.pointCoordinate(a,t),_=this.pointCoordinate(l,t);const d=this.pointCoordinate(c,i),p=this.pointCoordinate(h,i),m=(e,t)=>(t.y-e.y)/(t.x-e.x);return u.y>1&&_.y>=0?u=new e.MercatorCoordinate((1-p.y)/m(p,u)+p.x,1):u.y<0&&_.y<=1&&(u=new e.MercatorCoordinate(-p.y/m(p,u)+p.x,0)),_.y>1&&u.y>=0?_=new e.MercatorCoordinate((1-d.y)/m(d,_)+d.x,1):_.y<0&&u.y<=1&&(_=new e.MercatorCoordinate(-d.y/m(d,_)+d.x,0)),(new e.LngLatBounds).extend(this.coordinateLocation(u)).extend(this.coordinateLocation(_)).extend(this.coordinateLocation(p)).extend(this.coordinateLocation(d))}_getBoundsRectangularTerrain(){const e=this.elevation;if(!e.visibleDemTiles.length||e.isUsingMockSource())return this._getBoundsRectangular(0,0);const t=e.visibleDemTiles.reduce(((e,t)=>{if(t.dem){const i=t.dem.tree;e.min=Math.min(e.min,i.minimums[0]),e.max=Math.max(e.max,i.maximums[0]);}return e}),{min:Number.MAX_VALUE,max:0});return this._getBoundsRectangular(t.min*e.exaggeration(),t.max*e.exaggeration())}getBounds(){return "mercator"===this.projection.name||"equirectangular"===this.projection.name?this._terrainEnabled()?this._getBoundsRectangularTerrain():this._getBoundsRectangular(0,0):this._getBoundsNonRectangular()}horizonLineFromTop(e=!0){const t=this.height/2/Math.tan(this._fov/2)/Math.tan(Math.max(this._pitch,.1))+this.centerOffset.y,i=this.height/2-t*(1-this._horizonShift);return e?Math.max(0,i):i}getMaxBounds(){return this.maxBounds}setMaxBounds(t){this.maxBounds=t,this.minLat=-e.MAX_MERCATOR_LATITUDE,this.maxLat=e.MAX_MERCATOR_LATITUDE,this.minLng=-180,this.maxLng=180,t&&(this.minLat=t.getSouth(),this.maxLat=t.getNorth(),this.minLng=t.getWest(),this.maxLng=t.getEast(),this.maxLngu&&(a=u-c),u-ht&&(s=t-l),t-e.5?y-1:y,b>.5?b-1:b,0]),this.alignedProjMatrix=w,a=e.create(),e.scale(a,a,[this.width/2,-this.height/2,1]),e.translate(a,a,[1,-1,0]),this.labelPlaneMatrix=a,a=e.create(),e.scale(a,a,[1,-1,1]),e.translate(a,a,[-1,-1,0]),e.scale(a,a,[2/this.width,2/this.height,1]),this.glCoordMatrix=a,this.pixelMatrix=e.multiply(new Float64Array(16),this.labelPlaneMatrix,this.projMatrix),this._calcFogMatrices(),this._distanceTileDataCache={},a=e.invert(new Float64Array(16),this.pixelMatrix),!a)throw new Error("failed to invert matrix");if(this.pixelMatrixInverse=a,"globe"===this.projection.name||this.mercatorFromTransition){this.globeMatrix=e.calculateGlobeMatrix(this);const t=[this.globeMatrix[12],this.globeMatrix[13],this.globeMatrix[14]];this.globeCenterInViewSpace=e.transformMat4(t,t,n),this.globeRadius=this.worldSize/2/Math.PI-1;}else this.globeMatrix=a;this._projMatrixCache={},this._alignedProjMatrixCache={},this._pixelsToTileUnitsCache={};}_calcFogMatrices(){this._fogTileMatrixCache={};const t=this.cameraWorldSizeForFog,i=this.cameraPixelsPerMeter,o=this._camera.position,r=1/this.height/this._pixelsPerMercatorPixel,n=[t,t,i];e.scale$2(n,n,r),e.scale$2(o,o,-1),e.multiply$2(o,o,n);const s=e.create();e.translate(s,s,o),e.scale(s,s,n),this.mercatorFogMatrix=s,this.worldToFogMatrix=this._camera.getWorldToCameraPosition(t,i,r);}_computeCameraPosition(e){const t=(e=e||this.pixelsPerMeter)/this.pixelsPerMeter,i=this._camera.forward(),o=this.point,r=this._mercatorZfromZoom(this._seaLevelZoom?this._seaLevelZoom:this._zoom)*t-e/this.worldSize*this._centerAltitude;return [o.x/this.worldSize-i[0]*r,o.y/this.worldSize-i[1]*r,e/this.worldSize*this._centerAltitude-i[2]*r]}_updateCameraState(){this.height&&(this._camera.setPitchBearing(this._pitch,this.angle),this._camera.position=this._computeCameraPosition());}_translateCameraConstrained(t){const i=this._maxCameraBoundsDistance()*Math.cos(this._pitch),o=this._camera.position[2],r=t[2];let n=1;this.projection.wrap&&(this.center=this.center.wrap()),r>0&&(n=Math.min((i-o)/r,1)),this._camera.position=e.scaleAndAdd([],this._camera.position,t,n),this._updateStateFromCamera();}_updateStateFromCamera(){const t=this._camera.position,i=this._camera.forward(),{pitch:o,bearing:r}=this._camera.getPitchBearing(),n=e.mercatorZfromAltitude(this._centerAltitude,this.center.lat)*this._pixelsPerMercatorPixel,s=this._mercatorZfromZoom(this._maxZoom)*Math.cos(e.degToRad(this._maxPitch)),a=Math.max((t[2]-n)/Math.cos(o),s),l=this._zoomFromMercatorZ(a);e.scaleAndAdd(t,t,i,a),this._pitch=e.clamp(o,e.degToRad(this.minPitch),e.degToRad(this.maxPitch)),this.angle=e.wrap(r,-Math.PI,Math.PI),this._setZoom(e.clamp(l,this._minZoom,this._maxZoom)),this._updateSeaLevelZoom(),this._center=this.coordinateLocation(new e.MercatorCoordinate(t[0],t[1],t[2])),this._unmodified=!1,this._constrain(),this._calcMatrices();}_worldSizeFromZoom(e){return Math.pow(2,e)*this.tileSize}_mercatorZfromZoom(e){return this.cameraToCenterDistance/this._worldSizeFromZoom(e)}_minimumHeightOverTerrain(){const e=Math.min((null!=this._seaLevelZoom?this._seaLevelZoom:this._zoom)+4,this._maxZoom);return this._mercatorZfromZoom(e)}_zoomFromMercatorZ(e){return this.scaleZoom(this.cameraToCenterDistance/(e*this.tileSize))}zoomFromMercatorZAdjusted(t){let i=0,o=e.GLOBE_ZOOM_THRESHOLD_MAX,r=0,n=1/0;for(;o-i>1e-6&&o>i;){const e=i+.5*(o-i),s=this.tileSize*Math.pow(2,e),a=this.getCameraToCenterDistance(this.projection,e,s),l=this.scaleZoom(a/(t*this.tileSize)),c=Math.abs(e-l);cc||i.y>1)return !0}return !1}isHorizonVisible(){return this.pitch+e.radToDeg(this.fovAboveCenter)>88||this.anyCornerOffEdge(new e.Point(0,0),new e.Point(this.width,this.height))}zoomDeltaToMovement(t,i){const o=e.length(e.sub([],this._camera.position,t)),r=this._zoomFromMercatorZ(o)+i;return o-this._mercatorZfromZoom(r)}getCameraPoint(){if("globe"===this.projection.name){const t=function([t,i,o],r){const n=[t,i,o,1];e.transformMat4$1(n,n,r);const s=n[3]=Math.max(n[3],1e-6);return n[0]/=s,n[1]/=s,n[2]/=s,n}([this.globeMatrix[12],this.globeMatrix[13],this.globeMatrix[14]],this.pixelMatrix);return new e.Point(t[0],t[1])}{const t=Math.tan(this._pitch)*(this.cameraToCenterDistance||1);return this.centerPoint.add(new e.Point(0,t))}}getCameraToCenterDistance(e,t=this.zoom,i=this.worldSize){const o=Wo(e,t,this.width,this.height,1024),r=e.pixelSpaceConversion(this.center.lat,i,o);return .5/Math.tan(.5*this._fov)*this.height*r}getWorldToCameraMatrix(){const t=this._camera.getWorldToCamera(this.worldSize,"meters"===this.projection.zAxisUnit?this.pixelsPerMeter:1);return "globe"===this.projection.name&&e.multiply(t,t,this.globeMatrix),t}}function Yo(e,t){let i=!1,o=null;const r=()=>{o=null,i&&(e(),o=setTimeout(r,t),i=!1);};return ()=>(i=!0,o||r(),o)}class Ko{constructor(t){this._hashName=t&&encodeURIComponent(t),e.bindAll(["_getCurrentHash","_onHashChange","_updateHash"],this),this._updateHash=Yo(this._updateHashUnthrottled.bind(this),300);}addTo(t){return this._map=t,e.window.addEventListener("hashchange",this._onHashChange,!1),t.on("moveend",this._updateHash),this}remove(){return this._map?(this._map.off("moveend",this._updateHash),e.window.removeEventListener("hashchange",this._onHashChange,!1),clearTimeout(this._updateHash()),this._map=void 0,this):this}getHashString(){const t=this._map;if(!t)return "";const i=Jo(t);if(this._hashName){const t=this._hashName;let o=!1;const r=e.window.location.hash.slice(1).split("&").map((e=>{const r=e.split("=")[0];return r===t?(o=!0,`${r}=${i}`):e})).filter((e=>e));return o||r.push(`${t}=${i}`),`#${r.join("&")}`}return `#${i}`}_getCurrentHash(){const t=e.window.location.hash.replace("#","");if(this._hashName){let e;return t.split("&").map((e=>e.split("="))).forEach((t=>{t[0]===this._hashName&&(e=t);})),(e&&e[1]||"").split("/")}return t.split("/")}_onHashChange(){const e=this._map;if(!e)return !1;const t=this._getCurrentHash();if(t.length>=3&&!t.some((e=>isNaN(e)))){const i=e.dragRotate.isEnabled()&&e.touchZoomRotate.isEnabled()?+(t[3]||0):e.getBearing();return e.jumpTo({center:[+t[2],+t[1]],zoom:+t[0],bearing:i,pitch:+(t[4]||0)}),!0}return !1}_updateHashUnthrottled(){const t=e.window.location.href.replace(/(#.+)?$/,this.getHashString());e.window.history.replaceState(e.window.history.state,null,t);}}function Jo(e,t){const i=e.getCenter(),o=Math.round(100*e.getZoom())/100,r=Math.ceil((o*Math.LN2+Math.log(512/360/.5))/Math.LN10),n=Math.pow(10,r),s=Math.round(i.lng*n)/n,a=Math.round(i.lat*n)/n,l=e.getBearing(),c=e.getPitch();let h=t?`/${s}/${a}/${o}`:`${o}/${a}/${s}`;return (l||c)&&(h+="/"+Math.round(10*l)/10),c&&(h+=`/${Math.round(c)}`),h}const Qo={linearity:.3,easing:e.bezier(0,0,.3,1)},er=e.extend({deceleration:2500,maxSpeed:1400},Qo),tr=e.extend({deceleration:20,maxSpeed:1400},Qo),ir=e.extend({deceleration:1e3,maxSpeed:360},Qo),or=e.extend({deceleration:1e3,maxSpeed:90},Qo);class rr{constructor(e){this._map=e,this.clear();}clear(){this._inertiaBuffer=[];}record(t){this._drainInertiaBuffer(),this._inertiaBuffer.push({time:e.exported.now(),settings:t});}_drainInertiaBuffer(){const t=this._inertiaBuffer,i=e.exported.now();for(;t.length>0&&i-t[0].time>160;)t.shift();}_onMoveEnd(t){if(this._map._prefersReducedMotion())return;if(this._drainInertiaBuffer(),this._inertiaBuffer.length<2)return;const i={zoom:0,bearing:0,pitch:0,pan:new e.Point(0,0),pinchAround:void 0,around:void 0};for(const{settings:e}of this._inertiaBuffer)i.zoom+=e.zoomDelta||0,i.bearing+=e.bearingDelta||0,i.pitch+=e.pitchDelta||0,e.panDelta&&i.pan._add(e.panDelta),e.around&&(i.around=e.around),e.pinchAround&&(i.pinchAround=e.pinchAround);const o=this._inertiaBuffer[this._inertiaBuffer.length-1].time-this._inertiaBuffer[0].time,r={};if(i.pan.mag()){const n=sr(i.pan.mag(),o,e.extend({},er,t||{}));r.offset=i.pan.mult(n.amount/i.pan.mag()),r.center=this._map.transform.center,nr(r,n);}if(i.zoom){const e=sr(i.zoom,o,tr);r.zoom=this._map.transform.zoom+e.amount,nr(r,e);}if(i.bearing){const t=sr(i.bearing,o,ir);r.bearing=this._map.transform.bearing+e.clamp(t.amount,-179,179),nr(r,t);}if(i.pitch){const e=sr(i.pitch,o,or);r.pitch=this._map.transform.pitch+e.amount,nr(r,e);}if(r.zoom||r.bearing){const e=void 0===i.pinchAround?i.around:i.pinchAround;r.around=e?this._map.unproject(e):this._map.getCenter();}return this.clear(),r.noMoveStart=!0,r}}function nr(e,t){(!e.duration||e.durationi.unproject(e))),a=n.reduce(((e,t,i,o)=>e.add(t.div(o.length))),new e.Point(0,0));super(t,{points:n,point:a,lngLats:s,lngLat:i.unproject(a),originalEvent:o}),this._defaultPrevented=!1;}}class cr extends e.Event{preventDefault(){this._defaultPrevented=!0;}get defaultPrevented(){return this._defaultPrevented}constructor(e,t,i){super(e,{originalEvent:i}),this._defaultPrevented=!1;}}class hr{constructor(e,t){this._map=e,this._clickTolerance=t.clickTolerance;}reset(){this._mousedownPos=void 0;}wheel(e){return this._firePreventable(new cr(e.type,this._map,e))}mousedown(e,t){return this._mousedownPos=t,this._firePreventable(new ar(e.type,this._map,e))}mouseup(e){this._map.fire(new ar(e.type,this._map,e));}preclick(t){const i=e.extend({},t);i.type="preclick",this._map.fire(new ar(i.type,this._map,i));}click(e,t){this._mousedownPos&&this._mousedownPos.dist(t)>=this._clickTolerance||(this.preclick(e),this._map.fire(new ar(e.type,this._map,e)));}dblclick(e){return this._firePreventable(new ar(e.type,this._map,e))}mouseover(e){this._map.fire(new ar(e.type,this._map,e));}mouseout(e){this._map.fire(new ar(e.type,this._map,e));}touchstart(e){return this._firePreventable(new lr(e.type,this._map,e))}touchmove(e){this._map.fire(new lr(e.type,this._map,e));}touchend(e){this._map.fire(new lr(e.type,this._map,e));}touchcancel(e){this._map.fire(new lr(e.type,this._map,e));}_firePreventable(e){if(this._map.fire(e),e.defaultPrevented)return {}}isEnabled(){return !0}isActive(){return !1}enable(){}disable(){}}class ur{constructor(e){this._map=e;}reset(){this._delayContextMenu=!1,this._contextMenuEvent=void 0;}mousemove(e){this._map.fire(new ar(e.type,this._map,e));}mousedown(){this._delayContextMenu=!0;}mouseup(){this._delayContextMenu=!1,this._contextMenuEvent&&(this._map.fire(new ar("contextmenu",this._map,this._contextMenuEvent)),delete this._contextMenuEvent);}contextmenu(e){this._delayContextMenu?this._contextMenuEvent=e:this._map.fire(new ar(e.type,this._map,e)),this._map.listens("contextmenu")&&e.preventDefault();}isEnabled(){return !0}isActive(){return !1}enable(){}disable(){}}class _r{constructor(e,t){this._map=e,this._el=e.getCanvasContainer(),this._container=e.getContainer(),this._clickTolerance=t.clickTolerance||1;}isEnabled(){return !!this._enabled}isActive(){return !!this._active}enable(){this.isEnabled()||(this._enabled=!0);}disable(){this.isEnabled()&&(this._enabled=!1);}mousedown(e,t){this.isEnabled()&&e.shiftKey&&0===e.button&&(h(),this._startPos=this._lastPos=t,this._active=!0);}mousemoveWindow(e,t){if(!this._active)return;const i=t,o=this._startPos,r=this._lastPos;if(!o||!r||r.equals(i)||!this._box&&i.dist(o){this._box&&(this._box.style.transform=`translate(${s}px,${l}px)`,this._box.style.width=a-s+"px",this._box.style.height=c-l+"px");}));}mouseupWindow(t,i){if(!this._active)return;const o=this._startPos,r=i;if(o&&0===t.button){if(this.reset(),d(),o.x!==r.x||o.y!==r.y)return this._map.fire(new e.Event("boxzoomend",{originalEvent:t})),{cameraAnimation:e=>e.fitScreenCoordinates(o,r,this._map.getBearing(),{linear:!1})};this._fireEvent("boxzoomcancel",t);}}keydown(e){this._active&&27===e.keyCode&&(this.reset(),this._fireEvent("boxzoomcancel",e));}blur(){this.reset();}reset(){this._active=!1,this._container.classList.remove("mapboxgl-crosshair"),this._box&&(this._box.remove(),this._box=null),u(),delete this._startPos,delete this._lastPos;}_fireEvent(t,i){return this._map.fire(new e.Event(t,{originalEvent:i}))}}function dr(e,t){const i={};for(let o=0;othis.numTouches)&&(this.aborted=!0),this.aborted||(0===this.startTime&&(this.startTime=t.timeStamp),o.length===this.numTouches&&(this.centroid=function(t){const i=new e.Point(0,0);for(const e of t)i._add(e);return i.div(t.length)}(i),this.touches=dr(o,i)));}touchmove(e,t,i){if(this.aborted||!this.centroid)return;const o=dr(i,t);for(const e in this.touches){const t=o[e];(!t||t.dist(this.touches[e])>30)&&(this.aborted=!0);}}touchend(e,t,i){if((!this.centroid||e.timeStamp-this.startTime>500)&&(this.aborted=!0),0===i.length){const e=!this.aborted&&this.centroid;if(this.reset(),e)return e}}}class mr{constructor(e){this.singleTap=new pr(e),this.numTaps=e.numTaps,this.reset();}reset(){this.lastTime=1/0,this.lastTap=void 0,this.count=0,this.singleTap.reset();}touchstart(e,t,i){this.singleTap.touchstart(e,t,i);}touchmove(e,t,i){this.singleTap.touchmove(e,t,i);}touchend(e,t,i){const o=this.singleTap.touchend(e,t,i);if(o){const t=e.timeStamp-this.lastTime<500,i=!this.lastTap||this.lastTap.dist(o)<30;if(t&&i||this.reset(),this.count++,this.lastTime=e.timeStamp,this.lastTap=o,this.count===this.numTaps)return this.reset(),o}}}class fr{constructor(){this._zoomIn=new mr({numTouches:1,numTaps:2}),this._zoomOut=new mr({numTouches:2,numTaps:1}),this.reset();}reset(){this._active=!1,this._zoomIn.reset(),this._zoomOut.reset();}touchstart(e,t,i){this._zoomIn.touchstart(e,t,i),this._zoomOut.touchstart(e,t,i);}touchmove(e,t,i){this._zoomIn.touchmove(e,t,i),this._zoomOut.touchmove(e,t,i);}touchend(e,t,i){const o=this._zoomIn.touchend(e,t,i),r=this._zoomOut.touchend(e,t,i);return o?(this._active=!0,e.preventDefault(),setTimeout((()=>this.reset()),0),{cameraAnimation:t=>t.easeTo({duration:300,zoom:t.getZoom()+1,around:t.unproject(o)},{originalEvent:e})}):r?(this._active=!0,e.preventDefault(),setTimeout((()=>this.reset()),0),{cameraAnimation:t=>t.easeTo({duration:300,zoom:t.getZoom()-1,around:t.unproject(r)},{originalEvent:e})}):void 0}touchcancel(){this.reset();}enable(){this._enabled=!0;}disable(){this._enabled=!1,this.reset();}isEnabled(){return this._enabled}isActive(){return this._active}}const gr={0:1,2:2};class vr{constructor(e){this.reset(),this._clickTolerance=e.clickTolerance||1;}blur(){this.reset();}reset(){this._active=!1,this._moved=!1,this._lastPoint=void 0,this._eventButton=void 0;}_correctButton(e,t){return !1}_move(e,t){return {}}mousedown(e,t){if(this._lastPoint)return;const i=f(e);this._correctButton(e,i)&&(this._lastPoint=t,this._eventButton=i);}mousemoveWindow(e,t){const i=this._lastPoint;if(i)if(e.preventDefault(),null!=this._eventButton&&function(e,t){const i=gr[t];return void 0===e.buttons||(e.buttons&i)!==i}(e,this._eventButton))this.reset();else if(this._moved||!(t.dist(i)0&&(this._active=!0);const r=dr(o,i),n=new e.Point(0,0),s=new e.Point(0,0);let a=0;for(const e in r){const t=r[e],i=this._touches[e];i&&(n._add(t),s._add(t.sub(i)),a++,r[e]=t);}if(this._touches=r,a{this._alertContainer.classList.remove("mapboxgl-touch-pan-blocker-show"),this._alertContainer.setAttribute("role","null");}),500);}}class Tr{constructor(){this.reset();}reset(){this._active=!1,this._firstTwoTouches=void 0;}_start(e){}_move(e,t,i){return {}}touchstart(e,t,i){this._firstTwoTouches||i.length<2||(this._firstTwoTouches=[i[0].identifier,i[1].identifier],this._start([t[0],t[1]]));}touchmove(e,t,i){const o=this._firstTwoTouches;if(!o)return;e.preventDefault();const[r,n]=o,s=Er(i,t,r),a=Er(i,t,n);if(!s||!a)return;const l=this._aroundCenter?null:s.add(a).div(2);return this._move([s,a],l,e)}touchend(e,t,i){if(!this._firstTwoTouches)return;const[o,r]=this._firstTwoTouches,n=Er(i,t,o),s=Er(i,t,r);n&&s||(this._active&&d(),this.reset());}touchcancel(){this.reset();}enable(e){this._enabled=!0,this._aroundCenter=!!e&&"center"===e.around;}disable(){this._enabled=!1,this.reset();}isEnabled(){return this._enabled}isActive(){return this._active}}function Er(e,t,i){for(let o=0;oMath.abs(e.x)}class Dr extends Tr{constructor(e){super(),this._map=e;}reset(){super.reset(),this._valid=void 0,this._firstMove=void 0,this._lastPoints=void 0;}_start(e){this._lastPoints=e,Sr(e[0].sub(e[1]))&&(this._valid=!1);}_move(t,i,o){const r=this._lastPoints;if(!r)return;const n=t[0].sub(r[0]),s=t[1].sub(r[1]);return this._map._cooperativeGestures&&!e.isFullscreen()&&o.touches.length<3||(this._valid=this.gestureBeginsVertically(n,s,o.timeStamp),!this._valid)?void 0:(this._lastPoints=t,this._active=!0,{pitchDelta:(n.y+s.y)/2*-.5})}gestureBeginsVertically(e,t,i){if(void 0!==this._valid)return this._valid;const o=e.mag()>=2,r=t.mag()>=2;if(!o&&!r)return;if(!o||!r)return null==this._firstMove&&(this._firstMove=i),i-this._firstMove<100&&void 0;const n=e.y>0==t.y>0;return Sr(e)&&Sr(t)&&n}}const Lr={panStep:100,bearingStep:15,pitchStep:10};class Ar{constructor(){const e=Lr;this._panStep=e.panStep,this._bearingStep=e.bearingStep,this._pitchStep=e.pitchStep,this._rotationDisabled=!1;}blur(){this.reset();}reset(){this._active=!1;}keydown(e){if(e.altKey||e.ctrlKey||e.metaKey)return;let t=0,i=0,o=0,r=0,n=0;switch(e.keyCode){case 61:case 107:case 171:case 187:t=1;break;case 189:case 109:case 173:t=-1;break;case 37:e.shiftKey?i=-1:(e.preventDefault(),r=-1);break;case 39:e.shiftKey?i=1:(e.preventDefault(),r=1);break;case 38:e.shiftKey?o=1:(e.preventDefault(),n=-1);break;case 40:e.shiftKey?o=-1:(e.preventDefault(),n=1);break;default:return}return this._rotationDisabled&&(i=0,o=0),{cameraAnimation:s=>{const a=s.getZoom();s.easeTo({duration:300,easeId:"keyboardHandler",easing:zr,zoom:t?Math.round(a)+t*(e.shiftKey?2:1):a,bearing:s.getBearing()+i*this._bearingStep,pitch:s.getPitch()+o*this._pitchStep,offset:[-r*this._panStep,-n*this._panStep],center:s.getCenter()},{originalEvent:e});}}}enable(){this._enabled=!0;}disable(){this._enabled=!1,this.reset();}isEnabled(){return this._enabled}isActive(){return this._active}disableRotation(){this._rotationDisabled=!0;}enableRotation(){this._rotationDisabled=!1;}}function zr(e){return e*(2-e)}const Rr=4.000244140625;class Or{constructor(t,i){this._map=t,this._el=t.getCanvasContainer(),this._handler=i,this._delta=0,this._defaultZoomRate=.01,this._wheelZoomRate=.0022222222222222222,e.bindAll(["_onTimeout","_addScrollZoomBlocker","_showBlockerAlert"],this);}setZoomRate(e){this._defaultZoomRate=e;}setWheelZoomRate(e){this._wheelZoomRate=e;}isEnabled(){return !!this._enabled}isActive(){return this._active||void 0!==this._finishTimeout}isZooming(){return !!this._zooming}enable(e){this.isEnabled()||(this._enabled=!0,this._aroundCenter=!!e&&"center"===e.around,this._map._cooperativeGestures&&this._addScrollZoomBlocker());}disable(){this.isEnabled()&&(this._enabled=!1,this._map._cooperativeGestures&&(clearTimeout(this._alertTimer),this._alertContainer.remove()));}wheel(t){if(!this.isEnabled())return;if(this._map._cooperativeGestures){if(!(t.ctrlKey||t.metaKey||this.isZooming()||e.isFullscreen()))return void this._showBlockerAlert();"hidden"!==this._alertContainer.style.visibility&&(this._alertContainer.style.visibility="hidden",clearTimeout(this._alertTimer));}let i=t.deltaMode===e.window.WheelEvent.DOM_DELTA_LINE?40*t.deltaY:t.deltaY;const o=e.exported.now(),r=o-(this._lastWheelEventTime||0);this._lastWheelEventTime=o,0!==i&&i%Rr==0?this._type="wheel":0!==i&&Math.abs(i)<4?this._type="trackpad":r>400?(this._type=null,this._lastValue=i,this._timeout=setTimeout(this._onTimeout,40,t)):this._type||(this._type=Math.abs(r*i)<200?"trackpad":"wheel",this._timeout&&(clearTimeout(this._timeout),this._timeout=null,i+=this._lastValue)),t.shiftKey&&i&&(i/=4),this._type&&(this._lastWheelEvent=t,this._delta-=i,this._active||this._start(t)),t.preventDefault();}_onTimeout(e){this._type="wheel",this._delta-=this._lastValue,this._active||this._start(e);}_start(e){if(!this._delta)return;this._frameId&&(this._frameId=null),this._active=!0,this.isZooming()||(this._zooming=!0),this._finishTimeout&&(clearTimeout(this._finishTimeout),delete this._finishTimeout);const t=p(this._el,e);this._aroundPoint=this._aroundCenter?this._map.transform.centerPoint:t,this._aroundCoord=this._map.transform.pointCoordinate3D(this._aroundPoint),this._targetZoom=void 0,this._frameId||(this._frameId=!0,this._handler._triggerRenderFrame());}renderFrame(){if(!this._frameId)return;if(this._frameId=null,!this.isActive())return;const t=this._map.transform;"wheel"===this._type&&t.projection.wrap&&(t._center.lng>=180||t._center.lng<=-180)&&(this._prevEase=null,this._easing=null,this._lastWheelEvent=null,this._lastWheelEventTime=0);const i=()=>t._terrainEnabled()&&this._aroundCoord?t.computeZoomRelativeTo(this._aroundCoord):t.zoom;if(0!==this._delta){const e="wheel"===this._type&&Math.abs(this._delta)>Rr?this._wheelZoomRate:this._defaultZoomRate;let o=2/(1+Math.exp(-Math.abs(this._delta*e)));this._delta<0&&0!==o&&(o=1/o);const r=i(),n=Math.pow(2,r),s="number"==typeof this._targetZoom?t.zoomScale(this._targetZoom):n;this._targetZoom=Math.min(t.maxZoom,Math.max(t.minZoom,t.scaleZoom(s*o))),"wheel"===this._type&&(this._startZoom=r,this._easing=this._smoothOutEasing(200)),this._delta=0;}const o="number"==typeof this._targetZoom?this._targetZoom:i(),r=this._startZoom,n=this._easing;let s,a=!1;if("wheel"===this._type&&r&&n){const t=Math.min((e.exported.now()-this._lastWheelEventTime)/200,1),i=n(t);s=e.number(r,o,i),t<1?this._frameId||(this._frameId=!0):a=!0;}else s=o,a=!0;return this._active=!0,a&&(this._active=!1,this._finishTimeout=setTimeout((()=>{this._zooming=!1,this._handler._triggerRenderFrame(),delete this._targetZoom,delete this._finishTimeout;}),200)),{noInertia:!0,needsRenderFrame:!a,zoomDelta:s-i(),around:this._aroundPoint,aroundCoord:this._aroundCoord,originalEvent:this._lastWheelEvent}}_smoothOutEasing(t){let i=e.ease;if(this._prevEase){const t=this._prevEase,o=(e.exported.now()-t.start)/t.duration,r=t.easing(o+.01)-t.easing(o),n=.27/Math.sqrt(r*r+1e-4)*.01,s=Math.sqrt(.0729-n*n);i=e.bezier(n,s,.25,1);}return this._prevEase={start:e.exported.now(),duration:t,easing:i},i}blur(){this.reset();}reset(){this._active=!1;}_addScrollZoomBlocker(){this._map&&!this._alertContainer&&(this._alertContainer=n("div","mapboxgl-scroll-zoom-blocker",this._map._container),this._alertContainer.textContent=/(Mac|iPad)/i.test(e.window.navigator.userAgent)?this._map._getUIString("ScrollZoomBlocker.CmdMessage"):this._map._getUIString("ScrollZoomBlocker.CtrlMessage"),this._alertContainer.style.fontSize=`${Math.max(10,Math.min(24,Math.floor(.05*this._el.clientWidth)))}px`);}_showBlockerAlert(){this._alertContainer.style.visibility="visible",this._alertContainer.classList.add("mapboxgl-scroll-zoom-blocker-show"),this._alertContainer.setAttribute("role","alert"),clearTimeout(this._alertTimer),this._alertTimer=setTimeout((()=>{this._alertContainer.classList.remove("mapboxgl-scroll-zoom-blocker-show"),this._alertContainer.setAttribute("role","null");}),200);}}class Br{constructor(e,t){this._clickZoom=e,this._tapZoom=t;}enable(){this._clickZoom.enable(),this._tapZoom.enable();}disable(){this._clickZoom.disable(),this._tapZoom.disable();}isEnabled(){return this._clickZoom.isEnabled()&&this._tapZoom.isEnabled()}isActive(){return this._clickZoom.isActive()||this._tapZoom.isActive()}}class kr{constructor(){this.reset();}reset(){this._active=!1;}blur(){this.reset();}dblclick(e,t){return e.preventDefault(),{cameraAnimation:i=>{i.easeTo({duration:300,zoom:i.getZoom()+(e.shiftKey?-1:1),around:i.unproject(t)},{originalEvent:e});}}}enable(){this._enabled=!0;}disable(){this._enabled=!1,this.reset();}isEnabled(){return this._enabled}isActive(){return this._active}}class Fr{constructor(){this._tap=new mr({numTouches:1,numTaps:1}),this.reset();}reset(){this._active=!1,this._swipePoint=void 0,this._swipeTouch=0,this._tapTime=0,this._tap.reset();}touchstart(e,t,i){this._swipePoint||(this._tapTime&&e.timeStamp-this._tapTime>500&&this.reset(),this._tapTime?i.length>0&&(this._swipePoint=t[0],this._swipeTouch=i[0].identifier):this._tap.touchstart(e,t,i));}touchmove(e,t,i){if(this._tapTime){if(this._swipePoint){if(i[0].identifier!==this._swipeTouch)return;const o=t[0],r=o.y-this._swipePoint.y;return this._swipePoint=o,e.preventDefault(),this._active=!0,{zoomDelta:r/128}}}else this._tap.touchmove(e,t,i);}touchend(e,t,i){this._tapTime?this._swipePoint&&0===i.length&&this.reset():this._tap.touchend(e,t,i)&&(this._tapTime=e.timeStamp);}touchcancel(){this.reset();}enable(){this._enabled=!0;}disable(){this._enabled=!1,this.reset();}isEnabled(){return this._enabled}isActive(){return this._active}}class Ur{constructor(e,t,i){this._el=e,this._mousePan=t,this._touchPan=i;}enable(e){this._inertiaOptions=e||{},this._mousePan.enable(),this._touchPan.enable(),this._el.classList.add("mapboxgl-touch-drag-pan");}disable(){this._mousePan.disable(),this._touchPan.disable(),this._el.classList.remove("mapboxgl-touch-drag-pan");}isEnabled(){return this._mousePan.isEnabled()&&this._touchPan.isEnabled()}isActive(){return this._mousePan.isActive()||this._touchPan.isActive()}}class Nr{constructor(e,t,i){this._pitchWithRotate=e.pitchWithRotate,this._mouseRotate=t,this._mousePitch=i;}enable(){this._mouseRotate.enable(),this._pitchWithRotate&&this._mousePitch.enable();}disable(){this._mouseRotate.disable(),this._mousePitch.disable();}isEnabled(){return this._mouseRotate.isEnabled()&&(!this._pitchWithRotate||this._mousePitch.isEnabled())}isActive(){return this._mouseRotate.isActive()||this._mousePitch.isActive()}}class jr{constructor(e,t,i,o){this._el=e,this._touchZoom=t,this._touchRotate=i,this._tapDragZoom=o,this._rotationDisabled=!1,this._enabled=!0;}enable(e){this._touchZoom.enable(e),this._rotationDisabled||this._touchRotate.enable(e),this._tapDragZoom.enable(),this._el.classList.add("mapboxgl-touch-zoom-rotate");}disable(){this._touchZoom.disable(),this._touchRotate.disable(),this._tapDragZoom.disable(),this._el.classList.remove("mapboxgl-touch-zoom-rotate");}isEnabled(){return this._touchZoom.isEnabled()&&(this._rotationDisabled||this._touchRotate.isEnabled())&&this._tapDragZoom.isEnabled()}isActive(){return this._touchZoom.isActive()||this._touchRotate.isActive()||this._tapDragZoom.isActive()}disableRotation(){this._rotationDisabled=!0,this._touchRotate.disable();}enableRotation(){this._rotationDisabled=!1,this._touchZoom.isEnabled()&&this._touchRotate.enable();}}const Gr=e=>e.zoom||e.drag||e.pitch||e.rotate;class Zr extends e.Event{}class Vr{constructor(){this.constants=[1,1,.01],this.radius=0;}setup(t,i){const o=e.sub([],i,t);this.radius=e.length(o[2]<0?e.div([],o,this.constants):[o[0],o[1],0]);}projectRay(t){e.div(t,t,this.constants),e.normalize(t,t),e.mul$1(t,t,this.constants);const i=e.scale$2([],t,this.radius);if(i[2]>0){const t=e.scale$2([],[0,0,1],e.dot(i,[0,0,1])),o=e.scale$2([],e.normalize([],[i[0],i[1],0]),this.radius),r=e.add([],i,e.scale$2([],e.sub([],e.add([],o,t),i),2));i[0]=r[0],i[1]=r[1];}return i}}function Wr(e){return e.panDelta&&e.panDelta.mag()||e.zoomDelta||e.bearingDelta||e.pitchDelta}class Xr{constructor(t,i){this._map=t,this._el=this._map.getCanvasContainer(),this._handlers=[],this._handlersById={},this._changes=[],this._inertia=new rr(t),this._bearingSnap=i.bearingSnap,this._previousActiveHandlers={},this._trackingEllipsoid=new Vr,this._dragOrigin=null,this._eventsInProgress={},this._addDefaultHandlers(i),e.bindAll(["handleEvent","handleWindowEvent"],this);const o=this._el;this._listeners=[[o,"touchstart",{passive:!0}],[o,"touchmove",{passive:!1}],[o,"touchend",void 0],[o,"touchcancel",void 0],[o,"mousedown",void 0],[o,"mousemove",void 0],[o,"mouseup",void 0],[e.window.document,"mousemove",{capture:!0}],[e.window.document,"mouseup",void 0],[o,"mouseover",void 0],[o,"mouseout",void 0],[o,"dblclick",void 0],[o,"click",void 0],[o,"keydown",{capture:!1}],[o,"keyup",void 0],[o,"wheel",{passive:!1}],[o,"contextmenu",void 0],[e.window,"blur",void 0]];for(const[t,i,o]of this._listeners)t.addEventListener(i,t===e.window.document?this.handleWindowEvent:this.handleEvent,o);}destroy(){for(const[t,i,o]of this._listeners)t.removeEventListener(i,t===e.window.document?this.handleWindowEvent:this.handleEvent,o);}_addDefaultHandlers(e){const t=this._map,i=t.getCanvasContainer();this._add("mapEvent",new hr(t,e));const o=t.boxZoom=new _r(t,e);this._add("boxZoom",o);const r=new fr,n=new kr;t.doubleClickZoom=new Br(n,r),this._add("tapZoom",r),this._add("clickZoom",n);const s=new Fr;this._add("tapDragZoom",s);const a=t.touchPitch=new Dr(t);this._add("touchPitch",a);const l=new yr(e),c=new br(e);t.dragRotate=new Nr(e,l,c),this._add("mouseRotate",l,["mousePitch"]),this._add("mousePitch",c,["mouseRotate"]);const h=new xr(e),u=new wr(t,e);t.dragPan=new Ur(i,h,u),this._add("mousePan",h),this._add("touchPan",u,["touchZoom","touchRotate"]);const _=new Pr,d=new Mr;t.touchZoomRotate=new jr(i,d,_,s),this._add("touchRotate",_,["touchPan","touchZoom"]),this._add("touchZoom",d,["touchPan","touchRotate"]),this._add("blockableMapEvent",new ur(t));const p=t.scrollZoom=new Or(t,this);this._add("scrollZoom",p,["mousePan"]);const m=t.keyboard=new Ar;this._add("keyboard",m);for(const i of ["boxZoom","doubleClickZoom","tapDragZoom","touchPitch","dragRotate","dragPan","touchZoomRotate","scrollZoom","keyboard"])e.interactive&&e[i]&&t[i].enable(e[i]);}_add(e,t,i){this._handlers.push({handlerName:e,handler:t,allowed:i}),this._handlersById[e]=t;}stop(e){if(!this._updatingCamera){for(const{handler:e}of this._handlers)e.reset();this._inertia.clear(),this._fireEvents({},{},e),this._changes=[];}}isActive(){for(const{handler:e}of this._handlers)if(e.isActive())return !0;return !1}isZooming(){return !!this._eventsInProgress.zoom||this._map.scrollZoom.isZooming()}isRotating(){return !!this._eventsInProgress.rotate}isMoving(){return !!Gr(this._eventsInProgress)||this.isZooming()}_isDragging(){return !!this._eventsInProgress.drag}_blockedByActive(e,t,i){for(const o in e)if(o!==i&&(!t||t.indexOf(o)<0))return !0;return !1}handleWindowEvent(e){this.handleEvent(e,`${e.type}Window`);}_getMapTouches(e){const t=[];for(const i of e)this._el.contains(i.target)&&t.push(i);return t}handleEvent(e,t){this._updatingCamera=!0;const i="renderFrame"===e.type,o=i?void 0:e,r={needsRenderFrame:!1},n={},s={},a=e.touches?this._getMapTouches(e.touches):void 0,l=a?m(this._el,a):i?void 0:p(this._el,e);for(const{handlerName:i,handler:c,allowed:h}of this._handlers){if(!c.isEnabled())continue;let u;this._blockedByActive(s,h,i)?c.reset():c[t||e.type]&&(u=c[t||e.type](e,l,a),this.mergeHandlerResult(r,n,u,i,o),u&&u.needsRenderFrame&&this._triggerRenderFrame()),(u||c.isActive())&&(s[i]=c);}const c={};for(const e in this._previousActiveHandlers)s[e]||(c[e]=o);this._previousActiveHandlers=s,(Object.keys(c).length||Wr(r))&&(this._changes.push([r,n,c]),this._triggerRenderFrame()),(Object.keys(s).length||Wr(r))&&this._map._stop(!0),this._updatingCamera=!1;const{cameraAnimation:h}=r;h&&(this._inertia.clear(),this._fireEvents({},{},!0),this._changes=[],h(this._map));}mergeHandlerResult(t,i,o,r,n){if(!o)return;e.extend(t,o);const s={handlerName:r,originalEvent:o.originalEvent||n};void 0!==o.zoomDelta&&(i.zoom=s),void 0!==o.panDelta&&(i.drag=s),void 0!==o.pitchDelta&&(i.pitch=s),void 0!==o.bearingDelta&&(i.rotate=s);}_applyChanges(){const t={},i={},o={};for(const[r,n,s]of this._changes)r.panDelta&&(t.panDelta=(t.panDelta||new e.Point(0,0))._add(r.panDelta)),r.zoomDelta&&(t.zoomDelta=(t.zoomDelta||0)+r.zoomDelta),r.bearingDelta&&(t.bearingDelta=(t.bearingDelta||0)+r.bearingDelta),r.pitchDelta&&(t.pitchDelta=(t.pitchDelta||0)+r.pitchDelta),void 0!==r.around&&(t.around=r.around),void 0!==r.aroundCoord&&(t.aroundCoord=r.aroundCoord),void 0!==r.pinchAround&&(t.pinchAround=r.pinchAround),r.noInertia&&(t.noInertia=r.noInertia),e.extend(i,n),e.extend(o,s);this._updateMapTransform(t,i,o),this._changes=[];}_updateMapTransform(t,i,o){const r=this._map,n=r.transform,s=e=>[e.x,e.y,e.z];if((e=>{const t=this._eventsInProgress.drag;return t&&!this._handlersById[t.handlerName].isActive()})()&&!Wr(t)){const e=n.zoom;n.cameraElevationReference="sea",n.recenterOnTerrain(),n.cameraElevationReference="ground",e!==n.zoom&&this._map._update(!0);}if(n._isCameraConstrained&&r._stop(!0),!Wr(t))return void this._fireEvents(i,o,!0);let{panDelta:a,zoomDelta:l,bearingDelta:c,pitchDelta:h,around:u,aroundCoord:_,pinchAround:d}=t;n._isCameraConstrained&&(l>0&&(l=0),n._isCameraConstrained=!1),void 0!==d&&(u=d),(l||(e=>i[e]&&!this._eventsInProgress[e])("drag"))&&u&&(this._dragOrigin=s(n.pointCoordinate3D(u)),this._trackingEllipsoid.setup(n._camera.position,this._dragOrigin)),n.cameraElevationReference="sea",r._stop(!0),u=u||r.transform.centerPoint,c&&(n.bearing+=c),h&&(n.pitch+=h),n._updateCameraState();const p=[0,0,0];if(a)if("mercator"===n.projection.name){const e=this._trackingEllipsoid.projectRay(n.screenPointToMercatorRay(u).dir),t=this._trackingEllipsoid.projectRay(n.screenPointToMercatorRay(u.sub(a)).dir);p[0]=t[0]-e[0],p[1]=t[1]-e[1];}else {const t=n.pointCoordinate(u);if("globe"===n.projection.name){a=a.rotate(-n.angle);const i=n._pixelsPerMercatorPixel/n.worldSize;p[0]=-a.x*e.mercatorScale(e.latFromMercatorY(t.y))*i,p[1]=-a.y*e.mercatorScale(n.center.lat)*i;}else {const e=n.pointCoordinate(u.sub(a));t&&e&&(p[0]=e.x-t.x,p[1]=e.y-t.y);}}const m=n.zoom,f=[0,0,0];if(l){const t=s(_||n.pointCoordinate3D(u)),i={dir:e.normalize([],e.sub([],t,n._camera.position))};if(i.dir[2]<0){const o=n.zoomDeltaToMovement(t,l);e.scale$2(f,i.dir,o);}}const g=e.add(p,p,f);n._translateCameraConstrained(g),l&&Math.abs(n.zoom-m)>1e-4&&n.recenterOnTerrain(),n.cameraElevationReference="ground",this._map._update(),t.noInertia||this._inertia.record(t),this._fireEvents(i,o,!0);}_fireEvents(t,i,o){const r=Gr(this._eventsInProgress),n=Gr(t),s={};for(const e in t){const{originalEvent:i}=t[e];this._eventsInProgress[e]||(s[`${e}start`]=i),this._eventsInProgress[e]=t[e];}!r&&n&&this._fireEvent("movestart",n.originalEvent);for(const e in s)this._fireEvent(e,s[e]);n&&this._fireEvent("move",n.originalEvent);for(const e in t){const{originalEvent:i}=t[e];this._fireEvent(e,i);}const a={};let l;for(const e in this._eventsInProgress){const{handlerName:t,originalEvent:o}=this._eventsInProgress[e];this._handlersById[t].isActive()||(delete this._eventsInProgress[e],l=i[t]||o,a[`${e}end`]=l);}for(const e in a)this._fireEvent(e,a[e]);const c=Gr(this._eventsInProgress);if(o&&(r||n)&&!c){this._updatingCamera=!0;const t=this._inertia._onMoveEnd(this._map.dragPan._inertiaOptions),i=e=>0!==e&&-this._bearingSnap{this._frameId=void 0,this.handleEvent(new Zr("renderFrame",{timeStamp:e})),this._applyChanges();}))}_triggerRenderFrame(){void 0===this._frameId&&(this._frameId=this._requestFrame());}}const qr="map.setFreeCameraOptions(...) and map.getFreeCameraOptions() are not yet supported for non-mercator projections.";class $r extends e.Evented{constructor(t,i){super(),this._moving=!1,this._zooming=!1,this.transform=t,this._bearingSnap=i.bearingSnap,this._respectPrefersReducedMotion=!1!==i.respectPrefersReducedMotion,e.bindAll(["_renderFrameCallback"],this);}getCenter(){return new e.LngLat(this.transform.center.lng,this.transform.center.lat)}setCenter(e,t){return this.jumpTo({center:e},t)}panBy(t,i,o){return t=e.Point.convert(t).mult(-1),this.panTo(this.transform.center,e.extend({offset:t},i),o)}panTo(t,i,o){return this.easeTo(e.extend({center:t},i),o)}getZoom(){return this.transform.zoom}setZoom(e,t){return this.jumpTo({zoom:e},t),this}zoomTo(t,i,o){return this.easeTo(e.extend({zoom:t},i),o)}zoomIn(e,t){return this.zoomTo(this.getZoom()+1,e,t),this}zoomOut(e,t){return this.zoomTo(this.getZoom()-1,e,t),this}getBearing(){return this.transform.bearing}setBearing(e,t){return this.jumpTo({bearing:e},t),this}getPadding(){return this.transform.padding}setPadding(e,t){return this.jumpTo({padding:e},t),this}rotateTo(t,i,o){return this.easeTo(e.extend({bearing:t},i),o)}resetNorth(t,i){return this.rotateTo(0,e.extend({duration:1e3},t),i),this}resetNorthPitch(t,i){return this.easeTo(e.extend({bearing:0,pitch:0,duration:1e3},t),i),this}snapToNorth(e,t){return Math.abs(this.getBearing())e.aspect?i/(2*Math.tan(.5*e.fovX)*e.aspect):o/(2*Math.tan(.5*e.fovY)*e.aspect)}_cameraForBoundsOnGlobe(t,i,o,r,n,s){const a=t.clone(),l=this._extendCameraOptions(s);a.bearing=r,a.pitch=n;const c=e.LngLat.convert(i),h=e.LngLat.convert(o),u=.5*(c.lat+h.lat),_=.5*(c.lng+h.lng),d=e.latLngToECEF(u,_),p=e.normalize([],d),m=e.normalize([],e.cross([],p,[0,1,0])),f=e.cross([],m,p),g=[m[0],m[1],m[2],0,f[0],f[1],f[2],0,p[0],p[1],p[2],0,0,0,0,1],v=[d,e.latLngToECEF(c.lat,c.lng),e.latLngToECEF(h.lat,c.lng),e.latLngToECEF(h.lat,h.lng),e.latLngToECEF(c.lat,h.lng),e.latLngToECEF(u,c.lng),e.latLngToECEF(u,h.lng),e.latLngToECEF(c.lat,_),e.latLngToECEF(h.lat,_)];let x=e.Aabb.fromPoints(v.map((t=>[e.dot(m,t),e.dot(f,t),e.dot(p,t)])));const y=e.transformMat4([],x.center,g);0===e.squaredLength(y)&&e.set(y,0,0,1),e.normalize(y,y),e.scale$2(y,y,e.GLOBE_RADIUS),a.center=e.ecefToLatLng(y);const b=a.getWorldToCameraMatrix(),w=e.invert(new Float64Array(16),b);x=e.Aabb.applyTransform(x,e.multiply([],b,g)),e.transformMat4(y,y,b);const T=.5*(x.max[2]-x.min[2]),E=this._minimumAABBFrustumDistance(a,x),C=e.scale$2([],[0,0,1],T),M=e.add(C,y,C),I=E+(0===a.pitch?0:e.distance(y,M)),P=a.globeCenterInViewSpace,S=e.sub([],y,[P[0],P[1],P[2]]);e.normalize(S,S),e.scale$2(S,S,I);const D=e.add([],y,S);e.transformMat4(D,D,w);const L=e.earthRadius/e.GLOBE_RADIUS,A=e.length(D),z=e.mercatorZfromAltitude(Math.max(A*L-e.earthRadius,Number.EPSILON),0),R=Math.min(a.zoomFromMercatorZAdjusted(z),l.maxZoom);return R>.5*(e.GLOBE_ZOOM_THRESHOLD_MIN+e.GLOBE_ZOOM_THRESHOLD_MAX)?(a.setProjection({name:"mercator"}),a.zoom=R,this._cameraForBounds(a,i,o,r,n,s)):{center:a.center,zoom:R,bearing:r,pitch:n}}queryTerrainElevation(t,i){const o=this.transform.elevation;return o?(i=e.extend({},{exaggerated:!0},i),o.getAtPoint(e.MercatorCoordinate.fromLngLat(t),null,i.exaggerated)):null}_cameraForBounds(t,i,o,r,n,s){if("globe"===t.projection.name)return this._cameraForBoundsOnGlobe(t,i,o,r,n,s);const a=t.clone(),l=this._extendCameraOptions(s),c=a.padding;a.bearing=r,a.pitch=n;const h=e.LngLat.convert(i),u=e.LngLat.convert(o),_=new e.LngLat(h.lng,u.lat),d=new e.LngLat(u.lng,h.lat),p=a.project(h),m=a.project(u),f=this.queryTerrainElevation(h),g=this.queryTerrainElevation(u),v=this.queryTerrainElevation(_),x=this.queryTerrainElevation(d),y=[[p.x,p.y,Math.min(f||0,g||0,v||0,x||0)],[m.x,m.y,Math.max(f||0,g||0,v||0,x||0)]];let b=e.Aabb.fromPoints(y);const w=a.getWorldToCameraMatrix(),T=e.invert(new Float64Array(16),w);b=e.Aabb.applyTransform(b,w);const E=e.sub([],b.max,b.min),C=c.left||0,M=c.right||0,I=c.bottom||0,P=c.top||0,{left:S,right:D,top:L,bottom:A}=l.padding,z=.5*(C+M),R=.5*(P+I),O=Math.min(a.scaleZoom(a.scale*Math.min((a.width-(C+M+S+D))/E[0],(a.height-(I+P+A+L))/E[1])),l.maxZoom),B=a.scale/a.zoomScale(O);b=new e.Aabb([b.min[0]-(S+z)*B,b.min[1]-(A+R)*B,b.min[2]],[b.max[0]+(D+z)*B,b.max[1]+(L+R)*B,b.max[2]]);const k=.5*E[2],F=this._minimumAABBFrustumDistance(a,b),U=[0,0,1,0];e.transformMat4$1(U,U,w),e.normalize$2(U,U);const N=e.scale$2([],U,F+k),j=e.add([],b.center,N),G=("number"==typeof l.offset.x&&"number"==typeof l.offset.y?new e.Point(l.offset.x,l.offset.y):e.Point.convert(l.offset)).rotate(-e.degToRad(r));b.center[0]-=G.x*B,b.center[1]+=G.y*B,e.transformMat4(b.center,b.center,T),e.transformMat4(j,j,T);const Z=[b.center[0],b.center[1],j[2]*a.pixelsPerMeter];e.scale$2(Z,Z,1/a.worldSize);const V=e.lngFromMercatorX(Z[0]),W=e.latFromMercatorY(Z[1]),X=Math.min(a._zoomFromMercatorZ(Z[2]),l.maxZoom),q=new e.LngLat(V,W);return a.mercatorFromTransition&&X<.5*(e.GLOBE_ZOOM_THRESHOLD_MIN+e.GLOBE_ZOOM_THRESHOLD_MAX)?(a.setProjection({name:"globe"}),a.zoom=X,this._cameraForBounds(a,i,o,r,n,s)):{center:q,zoom:X,bearing:r,pitch:n}}fitBounds(e,t,i){const o=this.cameraForBounds(e,t);return this._fitInternal(o,t,i)}fitScreenCoordinates(t,i,o,r,n){const s=e.Point.convert(t),a=e.Point.convert(i),l=new e.Point(Math.min(s.x,a.x),Math.min(s.y,a.y)),c=new e.Point(Math.max(s.x,a.x),Math.max(s.y,a.y));if("mercator"===this.transform.projection.name&&this.transform.anyCornerOffEdge(s,a))return this;const h=this.transform.pointLocation3D(l),u=this.transform.pointLocation3D(c),_=this.transform.pointLocation3D(new e.Point(l.x,c.y)),d=this.transform.pointLocation3D(new e.Point(c.x,l.y)),p=[Math.min(h.lng,u.lng,_.lng,d.lng),Math.min(h.lat,u.lat,_.lat,d.lat)],m=[Math.max(h.lng,u.lng,_.lng,d.lng),Math.max(h.lat,u.lat,_.lat,d.lat)],f=r&&r.pitch?r.pitch:this.getPitch(),g=this._cameraForBounds(this.transform,p,m,o,f,r);return this._fitInternal(g,r,n)}_fitInternal(t,i,o){return t?(delete(i=e.extend(t,i)).padding,i.linear?this.easeTo(i,o):this.flyTo(i,o)):this}jumpTo(t,i){this.stop();const o=t.preloadOnly?this.transform.clone():this.transform;let r=!1,n=!1,s=!1;return "zoom"in t&&o.zoom!==+t.zoom&&(r=!0,o.zoom=+t.zoom),void 0!==t.center&&(o.center=e.LngLat.convert(t.center)),"bearing"in t&&o.bearing!==+t.bearing&&(n=!0,o.bearing=+t.bearing),"pitch"in t&&o.pitch!==+t.pitch&&(s=!0,o.pitch=+t.pitch),null==t.padding||o.isPaddingEqual(t.padding)||(o.padding=t.padding),t.preloadOnly?(this._preloadTiles(o),this):(this.fire(new e.Event("movestart",i)).fire(new e.Event("move",i)),r&&this.fire(new e.Event("zoomstart",i)).fire(new e.Event("zoom",i)).fire(new e.Event("zoomend",i)),n&&this.fire(new e.Event("rotatestart",i)).fire(new e.Event("rotate",i)).fire(new e.Event("rotateend",i)),s&&this.fire(new e.Event("pitchstart",i)).fire(new e.Event("pitch",i)).fire(new e.Event("pitchend",i)),this.fire(new e.Event("moveend",i)))}getFreeCameraOptions(){return this.transform.projection.supportsFreeCamera||e.warnOnce(qr),this.transform.getFreeCameraOptions()}setFreeCameraOptions(t,i){const o=this.transform;if(!o.projection.supportsFreeCamera)return e.warnOnce(qr),this;this.stop();const r=o.zoom,n=o.pitch,s=o.bearing;o.setFreeCameraOptions(t);const a=r!==o.zoom,l=n!==o.pitch,c=s!==o.bearing;return this.fire(new e.Event("movestart",i)).fire(new e.Event("move",i)),a&&this.fire(new e.Event("zoomstart",i)).fire(new e.Event("zoom",i)).fire(new e.Event("zoomend",i)),c&&this.fire(new e.Event("rotatestart",i)).fire(new e.Event("rotate",i)).fire(new e.Event("rotateend",i)),l&&this.fire(new e.Event("pitchstart",i)).fire(new e.Event("pitch",i)).fire(new e.Event("pitchend",i)),this.fire(new e.Event("moveend",i)),this}easeTo(t,i){this._stop(!1,t.easeId),(!1===(t=e.extend({offset:[0,0],duration:500,easing:e.ease},t)).animate||this._prefersReducedMotion(t))&&(t.duration=0);const o=this.transform,r=this.getZoom(),n=this.getBearing(),s=this.getPitch(),a=this.getPadding(),l="zoom"in t?+t.zoom:r,c="bearing"in t?this._normalizeBearing(t.bearing,n):n,h="pitch"in t?+t.pitch:s,u="padding"in t?t.padding:o.padding,_=e.Point.convert(t.offset);let d,p,m;if("globe"===o.projection.name){const i=e.MercatorCoordinate.fromLngLat(o.center),r=_.rotate(-o.angle);i.x+=r.x/o.worldSize,i.y+=r.y/o.worldSize;const n=i.toLngLat(),s=e.LngLat.convert(t.center||n);this._normalizeCenter(s),d=o.centerPoint.add(r),p=new e.Point(i.x,i.y).mult(o.worldSize),m=new e.Point(e.mercatorXfromLng(s.lng),e.mercatorYfromLat(s.lat)).mult(o.worldSize).sub(p);}else {d=o.centerPoint.add(_);const i=o.pointLocation(d),r=e.LngLat.convert(t.center||i);this._normalizeCenter(r),p=o.project(i),m=o.project(r).sub(p);}const f=o.zoomScale(l-r);let g,v;t.around&&(g=e.LngLat.convert(t.around),v=o.locationPoint(g));const x=this._zooming||l!==r,y=this._rotating||n!==c,b=this._pitching||h!==s,w=!o.isPaddingEqual(u),T=o=>T=>{if(x&&(o.zoom=e.number(r,l,T)),y&&(o.bearing=e.number(n,c,T)),b&&(o.pitch=e.number(s,h,T)),w&&(o.interpolatePadding(a,u,T),d=o.centerPoint.add(_)),g)o.setLocationAtPoint(g,v);else {const e=o.zoomScale(o.zoom-r),t=l>r?Math.min(2,f):Math.max(.5,f),i=Math.pow(t,1-T),n=o.unproject(p.add(m.mult(T*i)).mult(e));o.setLocationAtPoint(o.renderWorldCopies?n.wrap():n,d);}return t.preloadOnly||this._fireMoveEvents(i),o};if(t.preloadOnly){const e=this._emulate(T,t.duration,o);return this._preloadTiles(e),this}const E={moving:this._moving,zooming:this._zooming,rotating:this._rotating,pitching:this._pitching};return this._zooming=x,this._rotating=y,this._pitching=b,this._padding=w,this._easeId=t.easeId,this._prepareEase(i,t.noMoveStart,E),this._ease(T(o),(e=>{o.recenterOnTerrain(),this._afterEase(i,e);}),t),this}_prepareEase(t,i,o={}){this._moving=!0,this.transform.cameraElevationReference="sea",i||o.moving||this.fire(new e.Event("movestart",t)),this._zooming&&!o.zooming&&this.fire(new e.Event("zoomstart",t)),this._rotating&&!o.rotating&&this.fire(new e.Event("rotatestart",t)),this._pitching&&!o.pitching&&this.fire(new e.Event("pitchstart",t));}_fireMoveEvents(t){this.fire(new e.Event("move",t)),this._zooming&&this.fire(new e.Event("zoom",t)),this._rotating&&this.fire(new e.Event("rotate",t)),this._pitching&&this.fire(new e.Event("pitch",t));}_afterEase(t,i){if(this._easeId&&i&&this._easeId===i)return;this._easeId=void 0,this.transform.cameraElevationReference="ground";const o=this._zooming,r=this._rotating,n=this._pitching;this._moving=!1,this._zooming=!1,this._rotating=!1,this._pitching=!1,this._padding=!1,o&&this.fire(new e.Event("zoomend",t)),r&&this.fire(new e.Event("rotateend",t)),n&&this.fire(new e.Event("pitchend",t)),this.fire(new e.Event("moveend",t));}flyTo(t,i){if(this._prefersReducedMotion(t)){const o=e.pick(t,["center","zoom","bearing","pitch","around"]);return this.jumpTo(o,i)}this.stop(),t=e.extend({offset:[0,0],speed:1.2,curve:1.42,easing:e.ease},t);const o=this.transform,r=this.getZoom(),n=this.getBearing(),s=this.getPitch(),a=this.getPadding(),l="zoom"in t?e.clamp(+t.zoom,o.minZoom,o.maxZoom):r,c="bearing"in t?this._normalizeBearing(t.bearing,n):n,h="pitch"in t?+t.pitch:s,u="padding"in t?t.padding:o.padding,_=o.zoomScale(l-r),d=e.Point.convert(t.offset);let p=o.centerPoint.add(d);const m=o.pointLocation(p),f=e.LngLat.convert(t.center||m);this._normalizeCenter(f);const g=o.project(m),v=o.project(f).sub(g);let x=t.curve;const y=Math.max(o.width,o.height),b=y/_,w=v.mag();if("minZoom"in t){const i=e.clamp(Math.min(t.minZoom,r,l),o.minZoom,o.maxZoom),n=y/o.zoomScale(i-r);x=Math.sqrt(n/w*2);}const T=x*x;function E(e){const t=(b*b-y*y+(e?-1:1)*T*T*w*w)/(2*(e?b:y)*T*w);return Math.log(Math.sqrt(t*t+1)-t)}function C(e){return (Math.exp(e)-Math.exp(-e))/2}function M(e){return (Math.exp(e)+Math.exp(-e))/2}const I=E(0);let P=function(e){return M(I)/M(I+x*e)},S=function(e){return y*((M(I)*(C(t=I+x*e)/M(t))-C(I))/T)/w;var t;},D=(E(1)-I)/x;if(Math.abs(w)<1e-6||!isFinite(D)){if(Math.abs(y-b)<1e-6)return this.easeTo(t,i);const e=bt.maxDuration&&(t.duration=0);const L=n!==c,A=h!==s,z=!o.isPaddingEqual(u),R=o=>_=>{const m=_*D,x=1/P(m);o.zoom=1===_?l:r+o.scaleZoom(x),L&&(o.bearing=e.number(n,c,_)),A&&(o.pitch=e.number(s,h,_)),z&&(o.interpolatePadding(a,u,_),p=o.centerPoint.add(d));const y=1===_?f:o.unproject(g.add(v.mult(S(m))).mult(x));return o.setLocationAtPoint(o.renderWorldCopies?y.wrap():y,p),o._updateCameraOnTerrain(),t.preloadOnly||this._fireMoveEvents(i),o};if(t.preloadOnly){const e=this._emulate(R,t.duration,o);return this._preloadTiles(e),this}return this._zooming=!0,this._rotating=L,this._pitching=A,this._padding=z,this._prepareEase(i,!1),this._ease(R(o),(()=>this._afterEase(i)),t),this}isEasing(){return !!this._easeFrameId}stop(){return this._stop()}_stop(e,t){if(this._easeFrameId&&(this._cancelRenderFrame(this._easeFrameId),this._easeFrameId=void 0,this._onEaseFrame=void 0),this._onEaseEnd){const e=this._onEaseEnd;this._onEaseEnd=void 0,e.call(this,t);}if(!e){const e=this.handlers;e&&e.stop(!1);}return this}_ease(t,i,o){!1===o.animate||0===o.duration?(t(1),i()):(this._easeStart=e.exported.now(),this._easeOptions=o,this._onEaseFrame=t,this._onEaseEnd=i,this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback));}_renderFrameCallback(){const t=Math.min((e.exported.now()-this._easeStart)/this._easeOptions.duration,1),i=this._onEaseFrame;i&&i(this._easeOptions.easing(t)),t<1?this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback):this.stop();}_normalizeBearing(t,i){t=e.wrap(t,-180,180);const o=Math.abs(t-i);return Math.abs(t-360-i)180?-360:i<-180?360:0;}_prefersReducedMotion(t){return this._respectPrefersReducedMotion&&e.exported.prefersReducedMotion&&!(t&&t.essential)}_emulate(e,t,i){const o=Math.ceil(15*t/1e3),r=[],n=e(i.clone());for(let e=0;e<=o;e++){const t=n(e/o);r.push(t.clone());}return r}}class Hr{constructor(t={}){this.options=t,e.bindAll(["_toggleAttribution","_updateEditLink","_updateData","_updateCompact"],this);}getDefaultPosition(){return "bottom-right"}onAdd(e){const t=this.options&&this.options.compact;return this._map=e,this._container=n("div","mapboxgl-ctrl mapboxgl-ctrl-attrib"),this._compactButton=n("button","mapboxgl-ctrl-attrib-button",this._container),n("span","mapboxgl-ctrl-icon",this._compactButton).setAttribute("aria-hidden","true"),this._compactButton.type="button",this._compactButton.addEventListener("click",this._toggleAttribution),this._setElementTitle(this._compactButton,"ToggleAttribution"),this._innerContainer=n("div","mapboxgl-ctrl-attrib-inner",this._container),this._innerContainer.setAttribute("role","list"),t&&this._container.classList.add("mapboxgl-compact"),this._updateAttributions(),this._updateEditLink(),this._map.on("styledata",this._updateData),this._map.on("sourcedata",this._updateData),this._map.on("moveend",this._updateEditLink),void 0===t&&(this._map.on("resize",this._updateCompact),this._updateCompact()),this._container}onRemove(){this._container.remove(),this._map.off("styledata",this._updateData),this._map.off("sourcedata",this._updateData),this._map.off("moveend",this._updateEditLink),this._map.off("resize",this._updateCompact),this._map=void 0,this._attribHTML=void 0;}_setElementTitle(e,t){const i=this._map._getUIString(`AttributionControl.${t}`);e.setAttribute("aria-label",i),e.removeAttribute("title"),e.firstElementChild&&e.firstElementChild.setAttribute("title",i);}_toggleAttribution(){this._container.classList.contains("mapboxgl-compact-show")?(this._container.classList.remove("mapboxgl-compact-show"),this._compactButton.setAttribute("aria-expanded","false")):(this._container.classList.add("mapboxgl-compact-show"),this._compactButton.setAttribute("aria-expanded","true"));}_updateEditLink(){let t=this._editLink;t||(t=this._editLink=this._container.querySelector(".mapbox-improve-map"));const i=[{key:"owner",value:this.styleOwner},{key:"id",value:this.styleId},{key:"access_token",value:this._map._requestManager._customAccessToken||e.config.ACCESS_TOKEN}];if(t){const o=i.reduce(((e,t,o)=>(t.value&&(e+=`${t.key}=${t.value}${oe.length-t.length)),e=e.filter(((t,i)=>{for(let o=i+1;o=0)return !1;return !0})),this.options.customAttribution&&(Array.isArray(this.options.customAttribution)?e=[...this.options.customAttribution,...e]:e.unshift(this.options.customAttribution));const i=e.join(" | ");i!==this._attribHTML&&(this._attribHTML=i,e.length?(this._innerContainer.innerHTML=i,this._container.classList.remove("mapboxgl-attrib-empty")):this._container.classList.add("mapboxgl-attrib-empty"),this._editLink=null);}_updateCompact(){this._map.getCanvasContainer().offsetWidth<=640?this._container.classList.add("mapboxgl-compact"):this._container.classList.remove("mapboxgl-compact","mapboxgl-compact-show");}}class Yr{constructor(){e.bindAll(["_updateLogo","_updateCompact"],this);}onAdd(e){this._map=e,this._container=n("div","mapboxgl-ctrl");const t=n("a","mapboxgl-ctrl-logo");return t.target="_blank",t.rel="noopener nofollow",t.href="https://www.mapbox.com/",t.setAttribute("aria-label",this._map._getUIString("LogoControl.Title")),t.setAttribute("rel","noopener nofollow"),this._container.appendChild(t),this._container.style.display="none",this._map.on("sourcedata",this._updateLogo),this._updateLogo(),this._map.on("resize",this._updateCompact),this._updateCompact(),this._container}onRemove(){this._container.remove(),this._map.off("sourcedata",this._updateLogo),this._map.off("resize",this._updateCompact);}getDefaultPosition(){return "bottom-left"}_updateLogo(e){e&&"metadata"!==e.sourceDataType||(this._container.style.display=this._logoRequired()?"block":"none");}_logoRequired(){if(!this._map.style)return !0;const e=this._map.style._sourceCaches;if(0===Object.entries(e).length)return !0;for(const t in e){const i=e[t].getSource();if(i.hasOwnProperty("mapbox_logo")&&!i.mapbox_logo)return !1}return !0}_updateCompact(){const e=this._container.children;if(e.length){const t=e[0];this._map.getCanvasContainer().offsetWidth<250?t.classList.add("mapboxgl-compact"):t.classList.remove("mapboxgl-compact");}}}class Kr{constructor(){this._queue=[],this._id=0,this._cleared=!1,this._currentlyRunning=!1;}add(e){const t=++this._id;return this._queue.push({callback:e,id:t,cancelled:!1}),t}remove(e){const t=this._currentlyRunning,i=t?this._queue.concat(t):this._queue;for(const t of i)if(t.id===e)return void(t.cancelled=!0)}run(e=0){const t=this._currentlyRunning=this._queue;this._queue=[];for(const i of t)if(!i.cancelled&&(i.callback(e),this._cleared))break;this._cleared=!1,this._currentlyRunning=!1;}clear(){this._currentlyRunning&&(this._cleared=!0),this._queue=[];}}function Jr(t,i,o){if(t=new e.LngLat(t.lng,t.lat),i){const r=new e.LngLat(t.lng-360,t.lat),n=new e.LngLat(t.lng+360,t.lat),s=360*Math.ceil(Math.abs(t.lng-o.center.lng)/360),a=o.locationPoint(t).distSqr(i),l=i.x<0||i.y<0||i.x>o.width||i.y>o.height;o.locationPoint(r).distSqr(i)180;){const e=o.locationPoint(t);if(e.x>=0&&e.y>=0&&e.x<=o.width&&e.y<=o.height)break;t.lng>o.center.lng?t.lng-=360:t.lng+=360;}return t}const Qr={center:"translate(-50%,-50%)",top:"translate(-50%,0)","top-left":"translate(0,0)","top-right":"translate(-100%,0)",bottom:"translate(-50%,-100%)","bottom-left":"translate(0,-100%)","bottom-right":"translate(-100%,-100%)",left:"translate(0,-50%)",right:"translate(-100%,-50%)"};class en extends e.Evented{constructor(t,i){if(super(),(t instanceof e.window.HTMLElement||i)&&(t=e.extend({element:t},i)),e.bindAll(["_update","_onMove","_onUp","_addDragHandler","_onMapClick","_onKeyPress","_clearFadeTimer"],this),this._anchor=t&&t.anchor||"center",this._color=t&&t.color||"#3FB1CE",this._scale=t&&t.scale||1,this._draggable=t&&t.draggable||!1,this._clickTolerance=t&&t.clickTolerance||0,this._isDragging=!1,this._state="inactive",this._rotation=t&&t.rotation||0,this._rotationAlignment=t&&t.rotationAlignment||"auto",this._pitchAlignment=t&&t.pitchAlignment&&t.pitchAlignment||"auto",this._updateMoving=()=>this._update(!0),this._occludedOpacity=t&&t.occludedOpacity||.2,t&&t.element)this._element=t.element,this._offset=e.Point.convert(t&&t.offset||[0,0]);else {this._defaultMarker=!0,this._element=n("div");const i=41,o=27,r=s("svg",{display:"block",height:i*this._scale+"px",width:o*this._scale+"px",viewBox:`0 0 ${o} ${i}`},this._element),a=s("radialGradient",{id:"shadowGradient"},s("defs",{},r));s("stop",{offset:"10%","stop-opacity":.4},a),s("stop",{offset:"100%","stop-opacity":.05},a),s("ellipse",{cx:13.5,cy:34.8,rx:10.5,ry:5.25,fill:"url(#shadowGradient)"},r),s("path",{fill:this._color,d:"M27,13.5C27,19.07 20.25,27 14.75,34.5C14.02,35.5 12.98,35.5 12.25,34.5C6.75,27 0,19.22 0,13.5C0,6.04 6.04,0 13.5,0C20.96,0 27,6.04 27,13.5Z"},r),s("path",{opacity:.25,d:"M13.5,0C6.04,0 0,6.04 0,13.5C0,19.22 6.75,27 12.25,34.5C13,35.52 14.02,35.5 14.75,34.5C20.25,27 27,19.07 27,13.5C27,6.04 20.96,0 13.5,0ZM13.5,1C20.42,1 26,6.58 26,13.5C26,15.9 24.5,19.18 22.22,22.74C19.95,26.3 16.71,30.14 13.94,33.91C13.74,34.18 13.61,34.32 13.5,34.44C13.39,34.32 13.26,34.18 13.06,33.91C10.28,30.13 7.41,26.31 5.02,22.77C2.62,19.23 1,15.95 1,13.5C1,6.58 6.58,1 13.5,1Z"},r),s("circle",{fill:"white",cx:13.5,cy:13.5,r:5.5},r),this._offset=e.Point.convert(t&&t.offset||[0,-14]);}this._element.hasAttribute("aria-label")||this._element.setAttribute("aria-label","Map marker"),this._element.classList.add("mapboxgl-marker"),this._element.addEventListener("dragstart",(e=>{e.preventDefault();})),this._element.addEventListener("mousedown",(e=>{e.preventDefault();}));const o=this._element.classList;for(const e in Qr)o.remove(`mapboxgl-marker-anchor-${e}`);o.add(`mapboxgl-marker-anchor-${this._anchor}`),this._popup=null;}addTo(e){return e===this._map||(this.remove(),this._map=e,e.getCanvasContainer().appendChild(this._element),e.on("move",this._updateMoving),e.on("moveend",this._update),e.on("remove",this._clearFadeTimer),e._addMarker(this),this.setDraggable(this._draggable),this._update(),e.on("click",this._onMapClick)),this}remove(){const e=this._map;return e&&(e.off("click",this._onMapClick),e.off("move",this._updateMoving),e.off("moveend",this._update),e.off("mousedown",this._addDragHandler),e.off("touchstart",this._addDragHandler),e.off("mouseup",this._onUp),e.off("touchend",this._onUp),e.off("mousemove",this._onMove),e.off("touchmove",this._onMove),e.off("remove",this._clearFadeTimer),e._removeMarker(this),this._map=void 0),this._clearFadeTimer(),this._element.remove(),this._popup&&this._popup.remove(),this}getLngLat(){return this._lngLat}setLngLat(t){return this._lngLat=e.LngLat.convert(t),this._pos=null,this._popup&&this._popup.setLngLat(this._lngLat),this._update(!0),this}getElement(){return this._element}setPopup(e){if(this._popup&&(this._popup.remove(),this._popup=null,this._element.removeAttribute("role"),this._element.removeEventListener("keypress",this._onKeyPress),this._originalTabIndex||this._element.removeAttribute("tabindex")),e){if(!("offset"in e.options)){const t=38.1,i=13.5,o=Math.sqrt(Math.pow(i,2)/2);e.options.offset=this._defaultMarker?{top:[0,0],"top-left":[0,0],"top-right":[0,0],bottom:[0,-t],"bottom-left":[o,-1*(t-i+o)],"bottom-right":[-o,-1*(t-i+o)],left:[i,-1*(t-i)],right:[-i,-1*(t-i)]}:this._offset;}this._popup=e,e._marker=this,this._lngLat&&this._popup.setLngLat(this._lngLat),this._element.setAttribute("role","button"),this._originalTabIndex=this._element.getAttribute("tabindex"),this._originalTabIndex||this._element.setAttribute("tabindex","0"),this._element.addEventListener("keypress",this._onKeyPress),this._element.setAttribute("aria-expanded","false");}return this}_onKeyPress(e){const t=e.code,i=e.charCode||e.keyCode;"Space"!==t&&"Enter"!==t&&32!==i&&13!==i||this.togglePopup();}_onMapClick(e){const t=e.originalEvent.target,i=this._element;this._popup&&(t===i||i.contains(t))&&this.togglePopup();}getPopup(){return this._popup}togglePopup(){const e=this._popup;return e?(e.isOpen()?(e.remove(),this._element.setAttribute("aria-expanded","false")):this._map&&(e.addTo(this._map),this._element.setAttribute("aria-expanded","true")),this):this}_behindTerrain(){const e=this._map,t=this._pos;if(!e||!t)return !1;const i=e.unproject(t),o=e.getFreeCameraOptions();if(!o.position)return !1;const r=o.position.toLngLat();return r.distanceTo(i)<.9*r.distanceTo(this._lngLat)}_evaluateOpacity(){const t=this._map;if(!t)return;const i=this._pos;if(!i||i.x<0||i.x>t.transform.width||i.y<0||i.y>t.transform.height)return void this._clearFadeTimer();const o=t.unproject(i);let r;t._showingGlobe()&&e.isLngLatBehindGlobe(t.transform,this._lngLat)?r=0:(r=1-t._queryFogOpacity(o),t.transform._terrainEnabled()&&t.getTerrain()&&this._behindTerrain()&&(r*=this._occludedOpacity)),this._element.style.opacity=`${r}`,this._element.style.pointerEvents=r>0?"auto":"none",this._popup&&this._popup._setOpacity(r),this._fadeTimer=null;}_clearFadeTimer(){this._fadeTimer&&(clearTimeout(this._fadeTimer),this._fadeTimer=null);}_updateDOM(){const e=this._pos;if(!e||!this._map)return;const t=this._offset.mult(this._scale);this._element.style.transform=`\n translate(${e.x}px,${e.y}px)\n ${Qr[this._anchor]}\n ${this._calculateXYTransform()} ${this._calculateZTransform()}\n translate(${t.x}px,${t.y}px)\n `;}_calculateXYTransform(){const t=this._pos,i=this._map,o=this.getPitchAlignment();if(!i||!t||"map"!==o)return "";if(!i._showingGlobe()){const e=i.getPitch();return e?`rotateX(${e}deg)`:""}const r=e.radToDeg(e.globeTiltAtLngLat(i.transform,this._lngLat)),n=t.sub(e.globeCenterToScreenPoint(i.transform)),s=Math.abs(n.x)+Math.abs(n.y);if(0===s)return "";const a=r/s;return `rotateX(${-n.y*a}deg) rotateY(${n.x*a}deg)`}_calculateZTransform(){const t=this._pos,i=this._map;if(!i||!t)return "";let o=0;const r=this.getRotationAlignment();if("map"===r)if(i._showingGlobe()){const t=i.project(new e.LngLat(this._lngLat.lng,this._lngLat.lat+.001)),r=i.project(new e.LngLat(this._lngLat.lng,this._lngLat.lat-.001)).sub(t);o=e.radToDeg(Math.atan2(r.y,r.x))-90;}else o=-i.getBearing();else if("horizon"===r){const r=e.smoothstep(4,6,i.getZoom()),n=e.globeCenterToScreenPoint(i.transform);n.y+=r*i.transform.height;const s=t.sub(n),a=e.radToDeg(Math.atan2(s.y,s.x));o=(a>90?a-270:a+90)*(1-r);}return o+=this._rotation,o?`rotateZ(${o}deg)`:""}_update(t){e.window.cancelAnimationFrame(this._updateFrameId);const i=this._map;i&&(i.transform.renderWorldCopies&&(this._lngLat=Jr(this._lngLat,this._pos,i.transform)),this._pos=i.project(this._lngLat),!0===t?this._updateFrameId=e.window.requestAnimationFrame((()=>{this._element&&this._pos&&this._anchor&&(this._pos=this._pos.round(),this._updateDOM());})):this._pos=this._pos.round(),i._requestDomTask((()=>{this._map&&(this._element&&this._pos&&this._anchor&&this._updateDOM(),(i._showingGlobe()||i.getTerrain()||i.getFog())&&!this._fadeTimer&&(this._fadeTimer=setTimeout(this._evaluateOpacity.bind(this),60)));})));}getOffset(){return this._offset}setOffset(t){return this._offset=e.Point.convert(t),this._update(),this}_onMove(t){const i=this._map;if(!i)return;const o=this._pointerdownPos,r=this._positionDelta;if(o&&r){if(!this._isDragging){const e=this._clickTolerance||i._clickTolerance;if(t.point.dist(o)=this._endTime)return this._end;const i=e.easeCubicInOut((t-this._startTime)/(this._endTime-this._startTime));return this._start*(1-i)+this._end*i}isEasing(e){return e>=this._startTime&&e<=this._endTime}jumpTo(e){this._startTime=-1/0,this._endTime=-1/0,this._start=e,this._end=e;}easeTo(e,t,i){this._start=this.getValue(t),this._end=e,this._startTime=t,this._endTime=t+i;}}const sn={"AttributionControl.ToggleAttribution":"Toggle attribution","AttributionControl.MapFeedback":"Map feedback","FullscreenControl.Enter":"Enter fullscreen","FullscreenControl.Exit":"Exit fullscreen","GeolocateControl.FindMyLocation":"Find my location","GeolocateControl.LocationNotAvailable":"Location not available","LogoControl.Title":"Mapbox logo","Map.Title":"Map","NavigationControl.ResetBearing":"Reset bearing to north","NavigationControl.ZoomIn":"Zoom in","NavigationControl.ZoomOut":"Zoom out","ScrollZoomBlocker.CtrlMessage":"Use ctrl + scroll to zoom the map","ScrollZoomBlocker.CmdMessage":"Use ⌘ + scroll to zoom the map","TouchPanBlocker.Message":"Use two fingers to move the map"},an={center:[0,0],zoom:0,bearing:0,pitch:0,minZoom:-2,maxZoom:22,minPitch:0,maxPitch:85,interactive:!0,scrollZoom:!0,boxZoom:!0,dragRotate:!0,dragPan:!0,keyboard:!0,doubleClickZoom:!0,touchZoomRotate:!0,touchPitch:!0,cooperativeGestures:!1,performanceMetricsCollection:!0,bearingSnap:7,clickTolerance:3,pitchWithRotate:!0,hash:!1,attributionControl:!0,failIfMajorPerformanceCaveat:!1,preserveDrawingBuffer:!1,trackResize:!0,optimizeForTerrain:!0,renderWorldCopies:!0,refreshExpiredTiles:!0,minTileCacheSize:null,maxTileCacheSize:null,localIdeographFontFamily:"sans-serif",localFontFamily:null,transformRequest:null,accessToken:null,fadeDuration:300,respectPrefersReducedMotion:!0,crossSourceCollisions:!0},ln={showCompass:!0,showZoom:!0,visualizePitch:!1};class cn{constructor(t,i,o=!1){this._clickTolerance=10,this.element=i,this.mouseRotate=new yr({clickTolerance:t.dragRotate._mouseRotate._clickTolerance}),this.map=t,o&&(this.mousePitch=new br({clickTolerance:t.dragRotate._mousePitch._clickTolerance})),e.bindAll(["mousedown","mousemove","mouseup","touchstart","touchmove","touchend","reset"],this),i.addEventListener("mousedown",this.mousedown),i.addEventListener("touchstart",this.touchstart,{passive:!1}),i.addEventListener("touchmove",this.touchmove),i.addEventListener("touchend",this.touchend),i.addEventListener("touchcancel",this.reset);}down(e,t){this.mouseRotate.mousedown(e,t),this.mousePitch&&this.mousePitch.mousedown(e,t),h();}move(e,t){const i=this.map,o=this.mouseRotate.mousemoveWindow(e,t),r=o&&o.bearingDelta;if(r&&i.setBearing(i.getBearing()+r),this.mousePitch){const o=this.mousePitch.mousemoveWindow(e,t),r=o&&o.pitchDelta;r&&i.setPitch(i.getPitch()+r);}}off(){const e=this.element;e.removeEventListener("mousedown",this.mousedown),e.removeEventListener("touchstart",this.touchstart,{passive:!1}),e.removeEventListener("touchmove",this.touchmove),e.removeEventListener("touchend",this.touchend),e.removeEventListener("touchcancel",this.reset),this.offTemp();}offTemp(){u(),e.window.removeEventListener("mousemove",this.mousemove),e.window.removeEventListener("mouseup",this.mouseup);}mousedown(t){this.down(e.extend({},t,{ctrlKey:!0,preventDefault:()=>t.preventDefault()}),p(this.element,t)),e.window.addEventListener("mousemove",this.mousemove),e.window.addEventListener("mouseup",this.mouseup);}mousemove(e){this.move(e,p(this.element,e));}mouseup(e){this.mouseRotate.mouseupWindow(e),this.mousePitch&&this.mousePitch.mouseupWindow(e),this.offTemp();}touchstart(e){1!==e.targetTouches.length?this.reset():(this._startPos=this._lastPos=m(this.element,e.targetTouches)[0],this.down({type:"mousedown",button:0,ctrlKey:!0,preventDefault:()=>e.preventDefault()},this._startPos));}touchmove(e){1!==e.targetTouches.length?this.reset():(this._lastPos=m(this.element,e.targetTouches)[0],this.move({preventDefault:()=>e.preventDefault()},this._lastPos));}touchend(e){0===e.targetTouches.length&&this._startPos&&this._lastPos&&this._startPos.dist(this._lastPos)t.maxZoom)throw new Error("maxZoom must be greater than or equal to minZoom");if(null!=t.minPitch&&null!=t.maxPitch&&t.minPitch>t.maxPitch)throw new Error("maxPitch must be greater than or equal to minPitch");if(null!=t.minPitch&&t.minPitch<0)throw new Error("minPitch must be greater than or equal to 0");if(null!=t.maxPitch&&t.maxPitch>85)throw new Error("maxPitch must be less than or equal to 85");if(t.antialias&&e.isSafariWithAntialiasingBug(e.window)&&(t.antialias=!1,e.warnOnce("Antialiasing is disabled for this WebGL context to avoid browser bug: https://github.com/mapbox/mapbox-gl-js/issues/11609")),super(new Ho(t.minZoom,t.maxZoom,t.minPitch,t.maxPitch,t.renderWorldCopies),t),this._interactive=t.interactive,this._minTileCacheSize=t.minTileCacheSize,this._maxTileCacheSize=t.maxTileCacheSize,this._failIfMajorPerformanceCaveat=t.failIfMajorPerformanceCaveat,this._preserveDrawingBuffer=t.preserveDrawingBuffer,this._antialias=t.antialias,this._useWebGL2=t.useWebGL2,this._trackResize=t.trackResize,this._bearingSnap=t.bearingSnap,this._refreshExpiredTiles=t.refreshExpiredTiles,this._fadeDuration=t.fadeDuration,this._isInitialLoad=!0,this._crossSourceCollisions=t.crossSourceCollisions,this._collectResourceTiming=t.collectResourceTiming,this._optimizeForTerrain=t.optimizeForTerrain,this._language=this._parseLanguage(t.language),this._worldview=t.worldview,this._renderTaskQueue=new Kr,this._domRenderTaskQueue=new Kr,this._controls=[],this._markers=[],this._popups=[],this._mapId=e.uniqueId(),this._locale=e.extend({},sn,t.locale),this._clickTolerance=t.clickTolerance,this._cooperativeGestures=t.cooperativeGestures,this._performanceMetricsCollection=t.performanceMetricsCollection,this._containerWidth=0,this._containerHeight=0,this._averageElevationLastSampledAt=-1/0,this._averageElevationExaggeration=0,this._averageElevation=new nn(0),this._interactionRange=[1/0,-1/0],this._visibilityHidden=0,this._useExplicitProjection=!1,this._requestManager=new e.RequestManager(t.transformRequest,t.accessToken,t.testMode),this._silenceAuthErrors=!!t.testMode,"string"==typeof t.container){if(this._container=e.window.document.getElementById(t.container),!this._container)throw new Error(`Container '${t.container}' not found.`)}else {if(!(t.container instanceof e.window.HTMLElement))throw new Error("Invalid type: 'container' must be a String or HTMLElement.");this._container=t.container;}if(this._container.childNodes.length>0&&e.warnOnce("The map container element should be empty, otherwise the map's interactivity will be negatively impacted. If you want to display a message when WebGL is not supported, use the Mapbox GL Supported plugin instead."),t.maxBounds&&this.setMaxBounds(t.maxBounds),e.bindAll(["_onWindowOnline","_onWindowResize","_onVisibilityChange","_onMapScroll","_contextLost","_contextRestored"],this),this._setupContainer(),this._setupPainter(),void 0===this.painter)throw new Error("Failed to initialize WebGL.");this.on("move",(()=>this._update(!1))),this.on("moveend",(()=>this._update(!1))),this.on("zoom",(()=>this._update(!0))),void 0!==e.window&&(e.window.addEventListener("online",this._onWindowOnline,!1),e.window.addEventListener("resize",this._onWindowResize,!1),e.window.addEventListener("orientationchange",this._onWindowResize,!1),e.window.addEventListener("webkitfullscreenchange",this._onWindowResize,!1),e.window.addEventListener("visibilitychange",this._onVisibilityChange,!1)),this.handlers=new Xr(this,t),this._localFontFamily=t.localFontFamily,this._localIdeographFontFamily=t.localIdeographFontFamily,t.style&&this.setStyle(t.style,{localFontFamily:this._localFontFamily,localIdeographFontFamily:this._localIdeographFontFamily}),t.projection&&this.setProjection(t.projection),this._hash=t.hash&&new Ko("string"==typeof t.hash&&t.hash||void 0).addTo(this),this._hash&&this._hash._onHashChange()||(this.jumpTo({center:t.center,zoom:t.zoom,bearing:t.bearing,pitch:t.pitch}),t.bounds&&(this.resize(),this.fitBounds(t.bounds,e.extend({},t.fitBoundsOptions,{duration:0})))),this.resize(),t.attributionControl&&this.addControl(new Hr({customAttribution:t.customAttribution})),this._logoControl=new Yr,this.addControl(this._logoControl,t.logoPosition),this.on("style.load",(()=>{this.transform.unmodified&&this.jumpTo(this.style.stylesheet);})),this.on("data",(t=>{this._update("style"===t.dataType),this.fire(new e.Event(`${t.dataType}data`,t));})),this.on("dataloading",(t=>{this.fire(new e.Event(`${t.dataType}dataloading`,t));}));}_getMapId(){return this._mapId}addControl(t,i){if(void 0===i&&(i=t.getDefaultPosition?t.getDefaultPosition():"top-right"),!t||!t.onAdd)return this.fire(new e.ErrorEvent(new Error("Invalid argument to map.addControl(). Argument must be a control with onAdd and onRemove methods.")));const o=t.onAdd(this);this._controls.push(t);const r=this._controlPositions[i];return -1!==i.indexOf("bottom")?r.insertBefore(o,r.firstChild):r.appendChild(o),this}removeControl(t){if(!t||!t.onRemove)return this.fire(new e.ErrorEvent(new Error("Invalid argument to map.removeControl(). Argument must be a control with onAdd and onRemove methods.")));const i=this._controls.indexOf(t);return i>-1&&this._controls.splice(i,1),t.onRemove(this),this}hasControl(e){return this._controls.indexOf(e)>-1}getContainer(){return this._container}getCanvasContainer(){return this._canvasContainer}getCanvas(){return this._canvas}resize(t){if(this._updateContainerDimensions(),this._containerWidth===this.transform.width&&this._containerHeight===this.transform.height)return this;this._resizeCanvas(this._containerWidth,this._containerHeight),this.transform.resize(this._containerWidth,this._containerHeight),this.painter.resize(Math.ceil(this._containerWidth),Math.ceil(this._containerHeight));const i=!this._moving;return i&&this.fire(new e.Event("movestart",t)).fire(new e.Event("move",t)),this.fire(new e.Event("resize",t)),i&&this.fire(new e.Event("moveend",t)),this}getBounds(){return this.transform.getBounds()}getMaxBounds(){return this.transform.getMaxBounds()||null}setMaxBounds(t){return this.transform.setMaxBounds(e.LngLatBounds.convert(t)),this._update()}setMinZoom(t){if((t=null==t?-2:t)>=-2&&t<=this.transform.maxZoom)return this.transform.minZoom=t,this._update(),this.getZoom()=this.transform.minZoom)return this.transform.maxZoom=t,this._update(),this.getZoom()>t?this.setZoom(t):this.fire(new e.Event("zoomstart")).fire(new e.Event("zoom")).fire(new e.Event("zoomend")),this;throw new Error("maxZoom must be greater than the current minZoom")}getMaxZoom(){return this.transform.maxZoom}setMinPitch(t){if((t=null==t?0:t)<0)throw new Error("minPitch must be greater than or equal to 0");if(t>=0&&t<=this.transform.maxPitch)return this.transform.minPitch=t,this._update(),this.getPitch()85)throw new Error("maxPitch must be less than or equal to 85");if(t>=this.transform.minPitch)return this.transform.maxPitch=t,this._update(),this.getPitch()>t?this.setPitch(t):this.fire(new e.Event("pitchstart")).fire(new e.Event("pitch")).fire(new e.Event("pitchend")),this;throw new Error("maxPitch must be greater than or equal to minPitch")}getMaxPitch(){return this.transform.maxPitch}getRenderWorldCopies(){return this.transform.renderWorldCopies}setRenderWorldCopies(e){return this.transform.renderWorldCopies=e,this.transform.renderWorldCopies||this._forceMarkerAndPopupUpdate(!0),this._update()}getLanguage(){return this._language}_parseLanguage(t){return "auto"===t?e.window.navigator.language:Array.isArray(t)?0===t.length?void 0:t.map((t=>"auto"===t?e.window.navigator.language:t)):t}setLanguage(e){const t=this._parseLanguage(e);if(!this.style||t===this._language)return this;this._language=t,this.style._reloadSources();for(const e of this._controls)e._setLanguage&&e._setLanguage(this._language);return this}getWorldview(){return this._worldview}setWorldview(e){return this.style&&e!==this._worldview?(this._worldview=e,this.style._reloadSources(),this):this}getProjection(){return this.transform.mercatorFromTransition?{name:"globe",center:[0,0]}:this.transform.getProjection()}_showingGlobe(){return "globe"===this.transform.projection.name}setProjection(e){return this._lazyInitEmptyStyle(),e?"string"==typeof e&&(e={name:e}):e=null,this._useExplicitProjection=!!e,this._prioritizeAndUpdateProjection(e,this.style.stylesheet?this.style.stylesheet.projection:null)}_updateProjectionTransition(){if("globe"!==this.getProjection().name)return;const t=this.transform,i=t.projection.name;let o;"globe"===i&&t.zoom>=e.GLOBE_ZOOM_THRESHOLD_MAX?(t.setMercatorFromTransition(),o=!0):"mercator"===i&&t.zoom=e.GLOBE_ZOOM_THRESHOLD_MAX?this.transform.setMercatorFromTransition():this.transform.setProjection(t),this.style.applyProjectionUpdate(),i){this.painter.clearBackgroundTiles();for(const e in this.style._sourceCaches)this.style._sourceCaches[e].clearTiles();this._update(!0),this._forceMarkerAndPopupUpdate(!0);}return this}project(t){return this.transform.locationPoint3D(e.LngLat.convert(t))}unproject(t){return this.transform.pointLocation3D(e.Point.convert(t))}isMoving(){return this._moving||this.handlers&&this.handlers.isMoving()||!1}isZooming(){return this._zooming||this.handlers&&this.handlers.isZooming()||!1}isRotating(){return this._rotating||this.handlers&&this.handlers.isRotating()||!1}_isDragging(){return this.handlers&&this.handlers._isDragging()||!1}_createDelegatedListener(e,t,i){if("mouseenter"===e||"mouseover"===e){let o=!1;const r=r=>{const n=t.filter((e=>this.getLayer(e))),s=n.length?this.queryRenderedFeatures(r.point,{layers:n}):[];s.length?o||(o=!0,i.call(this,new ar(e,this,r.originalEvent,{features:s}))):o=!1;},n=()=>{o=!1;};return {layers:new Set(t),listener:i,delegates:{mousemove:r,mouseout:n}}}if("mouseleave"===e||"mouseout"===e){let o=!1;const r=r=>{const n=t.filter((e=>this.getLayer(e)));(n.length?this.queryRenderedFeatures(r.point,{layers:n}):[]).length?o=!0:o&&(o=!1,i.call(this,new ar(e,this,r.originalEvent)));},n=t=>{o&&(o=!1,i.call(this,new ar(e,this,t.originalEvent)));};return {layers:new Set(t),listener:i,delegates:{mousemove:r,mouseout:n}}}{const o=e=>{const o=t.filter((e=>this.getLayer(e))),r=o.length?this.queryRenderedFeatures(e.point,{layers:o}):[];r.length&&(e.features=r,i.call(this,e),delete e.features);};return {layers:new Set(t),listener:i,delegates:{[e]:o}}}}on(e,t,i){if(void 0===i)return super.on(e,t);Array.isArray(t)||(t=[t]);const o=this._createDelegatedListener(e,t,i);this._delegatedListeners=this._delegatedListeners||{},this._delegatedListeners[e]=this._delegatedListeners[e]||[],this._delegatedListeners[e].push(o);for(const e in o.delegates)this.on(e,o.delegates[e]);return this}once(e,t,i){if(void 0===i)return super.once(e,t);Array.isArray(t)||(t=[t]);const o=this._createDelegatedListener(e,t,i);for(const e in o.delegates)this.once(e,o.delegates[e]);return this}off(e,t,i){if(void 0===i)return super.off(e,t);t=new Set(Array.isArray(t)?t:[t]);const o=(e,t)=>{if(e.size!==t.size)return !1;for(const i of e)if(!t.has(i))return !1;return !0},r=this._delegatedListeners?this._delegatedListeners[e]:void 0;return r&&(e=>{for(let r=0;r{t?this.fire(new e.ErrorEvent(t)):o&&this._updateDiff(o,i);}));}else "object"==typeof t&&this._updateDiff(t,i);}_updateDiff(t,i){try{this.style.setState(t)&&this._update(!0);}catch(o){e.warnOnce(`Unable to perform style diff: ${o.message||o.error||o}. Rebuilding the style from scratch.`),this._updateStyle(t,i);}}getStyle(){if(this.style)return this.style.serialize()}isStyleLoaded(){return this.style?this.style.loaded():(e.warnOnce("There is no style added to the map."),!1)}addSource(e,t){return this._lazyInitEmptyStyle(),this.style.addSource(e,t),this._update(!0)}isSourceLoaded(e){return !!this.style&&this.style._isSourceCacheLoaded(e)}areTilesLoaded(){const e=this.style&&this.style._sourceCaches;for(const t in e){const i=e[t]._tiles;for(const e in i){const t=i[e];if("loaded"!==t.state&&"errored"!==t.state)return !1}}return !0}addSourceType(e,t,i){this._lazyInitEmptyStyle(),this.style.addSourceType(e,t,i);}removeSource(e){return this.style.removeSource(e),this._updateTerrain(),this._update(!0)}getSource(e){return this.style.getSource(e)}addImage(t,i,{pixelRatio:o=1,sdf:r=!1,stretchX:n,stretchY:s,content:a}={}){if(this._lazyInitEmptyStyle(),i instanceof e.window.HTMLImageElement||e.window.ImageBitmap&&i instanceof e.window.ImageBitmap){const{width:l,height:c,data:h}=e.exported.getImageData(i);this.style.addImage(t,{data:new e.RGBAImage({width:l,height:c},h),pixelRatio:o,stretchX:n,stretchY:s,content:a,sdf:r,version:0});}else if(void 0===i.width||void 0===i.height)this.fire(new e.ErrorEvent(new Error("Invalid arguments to map.addImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`")));else {const{width:l,height:c}=i,h=i;this.style.addImage(t,{data:new e.RGBAImage({width:l,height:c},new Uint8Array(h.data)),pixelRatio:o,stretchX:n,stretchY:s,content:a,sdf:r,version:0,userImage:h}),h.onAdd&&h.onAdd(this,t);}}updateImage(t,i){const o=this.style.getImage(t);if(!o)return void this.fire(new e.ErrorEvent(new Error("The map has no image with that id. If you are adding a new image use `map.addImage(...)` instead.")));const r=i instanceof e.window.HTMLImageElement||e.window.ImageBitmap&&i instanceof e.window.ImageBitmap?e.exported.getImageData(i):i,{width:n,height:s}=r;void 0!==n&&void 0!==s?n===o.data.width&&s===o.data.height?(o.data.replace(r.data,!(i instanceof e.window.HTMLImageElement||e.window.ImageBitmap&&i instanceof e.window.ImageBitmap)),this.style.updateImage(t,o)):this.fire(new e.ErrorEvent(new Error(`The width and height of the updated image (${n}, ${s})\n must be that same as the previous version of the image\n (${o.data.width}, ${o.data.height})`))):this.fire(new e.ErrorEvent(new Error("Invalid arguments to map.updateImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`")));}hasImage(t){return t?!!this.style.getImage(t):(this.fire(new e.ErrorEvent(new Error("Missing required image id"))),!1)}removeImage(e){this.style.removeImage(e);}loadImage(t,i){e.getImage(this._requestManager.transformRequest(t,e.ResourceType.Image),((t,o)=>{i(t,o instanceof e.window.HTMLImageElement?e.exported.getImageData(o):o);}));}listImages(){return this.style.listImages()}addLayer(e,t){return this._lazyInitEmptyStyle(),this.style.addLayer(e,t),this._update(!0)}moveLayer(e,t){return this.style.moveLayer(e,t),this._update(!0)}removeLayer(e){return this.style.removeLayer(e),this._update(!0)}getLayer(e){return this.style.getLayer(e)}setLayerZoomRange(e,t,i){return this.style.setLayerZoomRange(e,t,i),this._update(!0)}setFilter(e,t,i={}){return this.style.setFilter(e,t,i),this._update(!0)}getFilter(e){return this.style.getFilter(e)}setPaintProperty(e,t,i,o={}){return this.style.setPaintProperty(e,t,i,o),this._update(!0)}getPaintProperty(e,t){return this.style.getPaintProperty(e,t)}setLayoutProperty(e,t,i,o={}){return this.style.setLayoutProperty(e,t,i,o),this._update(!0)}getLayoutProperty(e,t){return this.style.getLayoutProperty(e,t)}setLight(e,t={}){return this._lazyInitEmptyStyle(),this.style.setLight(e,t),this._update(!0)}getLight(){return this.style.getLight()}setTerrain(e){return this._lazyInitEmptyStyle(),!e&&this.transform.projection.requiresDraping?this.style.setTerrainForDraping():this.style.setTerrain(e),this._averageElevationLastSampledAt=-1/0,this._update(!0)}getTerrain(){return this.style?this.style.getTerrain():null}setFog(e){return this._lazyInitEmptyStyle(),this.style.setFog(e),this._update(!0)}getFog(){return this.style?this.style.getFog():null}_queryFogOpacity(t){return this.style&&this.style.fog?this.style.fog.getOpacityAtLatLng(e.LngLat.convert(t),this.transform):0}setFeatureState(e,t){return this.style.setFeatureState(e,t),this._update()}removeFeatureState(e,t){return this.style.removeFeatureState(e,t),this._update()}getFeatureState(e){return this.style.getFeatureState(e)}_updateContainerDimensions(){if(!this._container)return;const t=this._container.getBoundingClientRect().width||400,i=this._container.getBoundingClientRect().height||300;let o,r,n,s=this._container;for(;s&&(!r||!n);){const t=e.window.getComputedStyle(s).transform;t&&"none"!==t&&(o=t.match(/matrix.*\((.+)\)/)[1].split(", "),o[0]&&"0"!==o[0]&&"1"!==o[0]&&(r=o[0]),o[3]&&"0"!==o[3]&&"1"!==o[3]&&(n=o[3])),s=s.parentElement;}this._containerWidth=r?Math.abs(t/r):t,this._containerHeight=n?Math.abs(i/n):i;}_detectMissingCSS(){"rgb(250, 128, 114)"!==e.window.getComputedStyle(this._missingCSSCanary).getPropertyValue("background-color")&&e.warnOnce("This page appears to be missing CSS declarations for Mapbox GL JS, which may cause the map to display incorrectly. Please ensure your page includes mapbox-gl.css, as described in https://www.mapbox.com/mapbox-gl-js/api/.");}_setupContainer(){const e=this._container;e.classList.add("mapboxgl-map"),(this._missingCSSCanary=n("div","mapboxgl-canary",e)).style.visibility="hidden",this._detectMissingCSS();const t=this._canvasContainer=n("div","mapboxgl-canvas-container",e);this._interactive&&t.classList.add("mapboxgl-interactive"),this._canvas=n("canvas","mapboxgl-canvas",t),this._canvas.addEventListener("webglcontextlost",this._contextLost,!1),this._canvas.addEventListener("webglcontextrestored",this._contextRestored,!1),this._canvas.setAttribute("tabindex","0"),this._canvas.setAttribute("aria-label",this._getUIString("Map.Title")),this._canvas.setAttribute("role","region"),this._updateContainerDimensions(),this._resizeCanvas(this._containerWidth,this._containerHeight);const i=this._controlContainer=n("div","mapboxgl-control-container",e),o=this._controlPositions={};["top-left","top-right","bottom-left","bottom-right"].forEach((e=>{o[e]=n("div",`mapboxgl-ctrl-${e}`,i);})),this._container.addEventListener("scroll",this._onMapScroll,!1);}_resizeCanvas(t,i){const o=e.exported.devicePixelRatio||1;this._canvas.width=o*Math.ceil(t),this._canvas.height=o*Math.ceil(i),this._canvas.style.width=`${t}px`,this._canvas.style.height=`${i}px`;}_addMarker(e){this._markers.push(e);}_removeMarker(e){const t=this._markers.indexOf(e);-1!==t&&this._markers.splice(t,1);}_addPopup(e){this._popups.push(e);}_removePopup(e){const t=this._popups.indexOf(e);-1!==t&&this._popups.splice(t,1);}_setupPainter(){const t=e.extend({},i.webGLContextAttributes,{failIfMajorPerformanceCaveat:this._failIfMajorPerformanceCaveat,preserveDrawingBuffer:this._preserveDrawingBuffer,antialias:this._antialias||!1}),o=this._useWebGL2&&this._canvas.getContext("webgl2",t),r=o||this._canvas.getContext("webgl",t)||this._canvas.getContext("experimental-webgl",t);r?(this._useWebGL2&&!o&&e.warnOnce("Failed to create WebGL 2 context. Using WebGL 1."),e.storeAuthState(r,!0),this.painter=new Bo(r,this.transform,!!o),this.on("data",(e=>{"source"===e.dataType&&this.painter.setTileLoadedFlag(!0);})),e.exported$1.testSupport(r)):this.fire(new e.ErrorEvent(new Error("Failed to initialize WebGL")));}_contextLost(t){t.preventDefault(),this._frame&&(this._frame.cancel(),this._frame=null),this.fire(new e.Event("webglcontextlost",{originalEvent:t}));}_contextRestored(t){this._setupPainter(),this.resize(),this._update(),this.fire(new e.Event("webglcontextrestored",{originalEvent:t}));}_onMapScroll(e){if(e.target===this._container)return this._container.scrollTop=0,this._container.scrollLeft=0,!1}loaded(){return !this._styleDirty&&!this._sourcesDirty&&!!this.style&&this.style.loaded()}_update(e){return this.style?(this._styleDirty=this._styleDirty||e,this._sourcesDirty=!0,this.triggerRepaint(),this):this}_requestRenderFrame(e){return this._update(),this._renderTaskQueue.add(e)}_cancelRenderFrame(e){this._renderTaskQueue.remove(e);}_requestDomTask(e){!this.loaded()||this.loaded()&&!this.isMoving()?e():this._domRenderTaskQueue.add(e);}_render(t){let i;const o=this.painter.context.extTimerQuery,r=e.exported.now();if(this.listens("gpu-timing-frame")&&(i=o.createQueryEXT(),o.beginQueryEXT(o.TIME_ELAPSED_EXT,i)),this.painter.context.setDirty(),this.painter.setBaseState(),(this.isMoving()||this.isRotating()||this.isZooming())&&(this._interactionRange[0]=Math.min(this._interactionRange[0],e.window.performance.now()),this._interactionRange[1]=Math.max(this._interactionRange[1],e.window.performance.now())),this._renderTaskQueue.run(t),this._domRenderTaskQueue.run(t),this._removed)return;this._updateProjectionTransition();const n=this._isInitialLoad?0:this._fadeDuration;if(this.style&&this._styleDirty){this._styleDirty=!1;const t=this.transform.zoom,i=this.transform.pitch,o=e.exported.now(),r=new e.EvaluationParameters(t,{now:o,fadeDuration:n,pitch:i,transition:this.style.getTransition()});this.style.update(r);}this.style&&this.style.fog&&this.style.fog.hasTransition()&&(this.style._markersNeedUpdate=!0,this._sourcesDirty=!0);let s=!1;if(this.style&&this._sourcesDirty?(this._sourcesDirty=!1,this.painter._updateFog(this.style),this._updateTerrain(),s=this._updateAverageElevation(r),this.style._updateSources(this.transform),this._forceMarkerAndPopupUpdate()):s=this._updateAverageElevation(r),this._placementDirty=this.style&&this.style._updatePlacement(this.painter.transform,this.showCollisionBoxes,n,this._crossSourceCollisions),this.style&&this.painter.render(this.style,{showTileBoundaries:this.showTileBoundaries,showTerrainWireframe:this.showTerrainWireframe,showOverdrawInspector:this._showOverdrawInspector,showQueryGeometry:!!this._showQueryGeometry,showTileAABBs:this.showTileAABBs,rotating:this.isRotating(),zooming:this.isZooming(),moving:this.isMoving(),fadeDuration:n,isInitialLoad:this._isInitialLoad,showPadding:this.showPadding,gpuTiming:!!this.listens("gpu-timing-layer"),gpuTimingDeferredRender:!!this.listens("gpu-timing-deferred-render"),speedIndexTiming:this.speedIndexTiming}),this.fire(new e.Event("render")),this.loaded()&&!this._loaded&&(this._loaded=!0,this.fire(new e.Event("load"))),this.style&&this.style.hasTransitions()&&(this._styleDirty=!0),this.style&&!this._placementDirty&&this.style._releaseSymbolFadeTiles(),i){const t=e.exported.now()-r;o.endQueryEXT(o.TIME_ELAPSED_EXT,i),setTimeout((()=>{const n=o.getQueryObjectEXT(i,o.QUERY_RESULT_EXT)/1e6;o.deleteQueryEXT(i),this.fire(new e.Event("gpu-timing-frame",{cpuTime:t,gpuTime:n})),e.window.performance.mark("frame-gpu",{startTime:r,detail:{gpuTime:n}});}),50);}if(this.listens("gpu-timing-layer")){const t=this.painter.collectGpuTimers();setTimeout((()=>{const i=this.painter.queryGpuTimers(t);this.fire(new e.Event("gpu-timing-layer",{layerTimes:i}));}),50);}if(this.listens("gpu-timing-deferred-render")){const t=this.painter.collectDeferredRenderGpuQueries();setTimeout((()=>{const i=this.painter.queryGpuTimeDeferredRender(t);this.fire(new e.Event("gpu-timing-deferred-render",{gpuTime:i}));}),50);}const a=this._sourcesDirty||this._styleDirty||this._placementDirty||s;if(a||this._repaint)this.triggerRepaint();else {const t=!this.isMoving()&&this.loaded();if(t&&(s=this._updateAverageElevation(r,!0)),s)this.triggerRepaint();else if(this._triggerFrame(!1),t&&(this.fire(new e.Event("idle")),this._isInitialLoad=!1,this.speedIndexTiming)){const t=this._calculateSpeedIndex();this.fire(new e.Event("speedindexcompleted",{speedIndex:t})),this.speedIndexTiming=!1;}}!this._loaded||this._fullyLoaded||a||(this._fullyLoaded=!0,e.LivePerformanceUtils.mark(e.PerformanceMarkers.fullLoad),this._performanceMetricsCollection&&e.postPerformanceEvent(this._requestManager._customAccessToken,{width:this.painter.width,height:this.painter.height,interactionRange:this._interactionRange,visibilityHidden:this._visibilityHidden,terrainEnabled:!!this.painter.style.getTerrain(),fogEnabled:!!this.painter.style.getFog(),projection:this.getProjection().name,zoom:this.transform.zoom,renderer:this.painter.context.renderer,vendor:this.painter.context.vendor}),this._authenticate());}_forceMarkerAndPopupUpdate(e){for(const t of this._markers)e&&!this.getRenderWorldCopies()&&(t._lngLat=t._lngLat.wrap()),t._update();for(const t of this._popups)!e||this.getRenderWorldCopies()||t._trackPointer||(t._lngLat=t._lngLat.wrap()),t._update();}_updateAverageElevation(e,t=!1){const i=e=>(this.transform.averageElevation=e,this._update(!1),!0);if(!this.painter.averageElevationNeedsEasing())return 0!==this.transform.averageElevation&&i(0);if((t||e-this._averageElevationLastSampledAt>500)&&!this._averageElevation.isEasing(e)){const t=this.transform.averageElevation;let o=this.transform.sampleAverageElevation(),r=!1;this.transform.elevation&&(r=this.transform.elevation.exaggeration()!==this._averageElevationExaggeration,this._averageElevationExaggeration=this.transform.elevation.exaggeration()),isNaN(o)?o=0:this._averageElevationLastSampledAt=e;const n=Math.abs(t-o);if(n>1){if(this._isInitialLoad||r)return this._averageElevation.jumpTo(o),i(o);this._averageElevation.easeTo(o,e,300);}else if(n>1e-4)return this._averageElevation.jumpTo(o),i(o)}return !!this._averageElevation.isEasing(e)&&i(this._averageElevation.getValue(e))}_authenticate(){e.getMapSessionAPI(this._getMapId(),this._requestManager._skuToken,this._requestManager._customAccessToken,(t=>{if(t&&(t.message===e.AUTH_ERR_MSG||401===t.status)){const t=this.painter.context.gl;e.storeAuthState(t,!1),this._logoControl instanceof Yr&&this._logoControl._updateLogo(),t&&t.clear(t.DEPTH_BUFFER_BIT|t.COLOR_BUFFER_BIT|t.STENCIL_BUFFER_BIT),this._silenceAuthErrors||this.fire(new e.ErrorEvent(new Error("A valid Mapbox access token is required to use Mapbox GL JS. To create an account or a new access token, visit https://account.mapbox.com/")));}})),e.postMapLoadEvent(this._getMapId(),this._requestManager._skuToken,this._requestManager._customAccessToken,(()=>{}));}_updateTerrain(){const e=this._isDragging();this.painter.updateTerrain(this.style,e);}_calculateSpeedIndex(){const e=this.painter.canvasCopy(),t=this.painter.getCanvasCopiesAndTimestamps();t.timeStamps.push(performance.now());const i=this.painter.context.gl,o=i.createFramebuffer();function r(e){i.framebufferTexture2D(i.FRAMEBUFFER,i.COLOR_ATTACHMENT0,i.TEXTURE_2D,e,0);const t=new Uint8Array(i.drawingBufferWidth*i.drawingBufferHeight*4);return i.readPixels(0,0,i.drawingBufferWidth,i.drawingBufferHeight,i.RGBA,i.UNSIGNED_BYTE,t),t}return i.bindFramebuffer(i.FRAMEBUFFER,o),this._canvasPixelComparison(r(e),t.canvasCopies.map(r),t.timeStamps)}_canvasPixelComparison(e,t,i){let o=i[1]-i[0];const r=e.length/4;for(let n=0;n{const t=!!this._renderNextFrame;this._frame=null,this._renderNextFrame=null,t&&this._render(e);})));}_preloadTiles(t){const i=this.style?Object.values(this.style._sourceCaches):[];return e.asyncAll(i,((e,i)=>e._preloadTiles(t,i)),(()=>{this.triggerRepaint();})),this}_onWindowOnline(){this._update();}_onWindowResize(e){this._trackResize&&this.resize({originalEvent:e})._update();}_onVisibilityChange(){"hidden"===e.window.document.visibilityState&&this._visibilityHidden++;}get showTileBoundaries(){return !!this._showTileBoundaries}set showTileBoundaries(e){this._showTileBoundaries!==e&&(this._showTileBoundaries=e,this._update());}get showTerrainWireframe(){return !!this._showTerrainWireframe}set showTerrainWireframe(e){this._showTerrainWireframe!==e&&(this._showTerrainWireframe=e,this._update());}get speedIndexTiming(){return !!this._speedIndexTiming}set speedIndexTiming(e){this._speedIndexTiming!==e&&(this._speedIndexTiming=e,this._update());}get showPadding(){return !!this._showPadding}set showPadding(e){this._showPadding!==e&&(this._showPadding=e,this._update());}get showCollisionBoxes(){return !!this._showCollisionBoxes}set showCollisionBoxes(e){this._showCollisionBoxes!==e&&(this._showCollisionBoxes=e,e?this.style._generateCollisionBoxes():this._update());}get showOverdrawInspector(){return !!this._showOverdrawInspector}set showOverdrawInspector(e){this._showOverdrawInspector!==e&&(this._showOverdrawInspector=e,this._update());}get repaint(){return !!this._repaint}set repaint(e){this._repaint!==e&&(this._repaint=e,this.triggerRepaint());}get vertices(){return !!this._vertices}set vertices(e){this._vertices=e,this._update();}get showTileAABBs(){return !!this._showTileAABBs}set showTileAABBs(e){this._showTileAABBs!==e&&(this._showTileAABBs=e,e&&this._update());}_setCacheLimits(t,i){e.setCacheLimits(t,i);}get version(){return e.version}},NavigationControl:class{constructor(t){this.options=e.extend({},ln,t),this._container=n("div","mapboxgl-ctrl mapboxgl-ctrl-group"),this._container.addEventListener("contextmenu",(e=>e.preventDefault())),this.options.showZoom&&(e.bindAll(["_setButtonTitle","_updateZoomButtons"],this),this._zoomInButton=this._createButton("mapboxgl-ctrl-zoom-in",(e=>{this._map&&this._map.zoomIn({},{originalEvent:e});})),n("span","mapboxgl-ctrl-icon",this._zoomInButton).setAttribute("aria-hidden","true"),this._zoomOutButton=this._createButton("mapboxgl-ctrl-zoom-out",(e=>{this._map&&this._map.zoomOut({},{originalEvent:e});})),n("span","mapboxgl-ctrl-icon",this._zoomOutButton).setAttribute("aria-hidden","true")),this.options.showCompass&&(e.bindAll(["_rotateCompassArrow"],this),this._compass=this._createButton("mapboxgl-ctrl-compass",(e=>{const t=this._map;t&&(this.options.visualizePitch?t.resetNorthPitch({},{originalEvent:e}):t.resetNorth({},{originalEvent:e}));})),this._compassIcon=n("span","mapboxgl-ctrl-icon",this._compass),this._compassIcon.setAttribute("aria-hidden","true"));}_updateZoomButtons(){const e=this._map;if(!e)return;const t=e.getZoom(),i=t===e.getMaxZoom(),o=t===e.getMinZoom();this._zoomInButton.disabled=i,this._zoomOutButton.disabled=o,this._zoomInButton.setAttribute("aria-disabled",i.toString()),this._zoomOutButton.setAttribute("aria-disabled",o.toString());}_rotateCompassArrow(){const e=this._map;if(!e)return;const t=this.options.visualizePitch?`scale(${1/Math.pow(Math.cos(e.transform.pitch*(Math.PI/180)),.5)}) rotateX(${e.transform.pitch}deg) rotateZ(${e.transform.angle*(180/Math.PI)}deg)`:`rotate(${e.transform.angle*(180/Math.PI)}deg)`;e._requestDomTask((()=>{this._compassIcon&&(this._compassIcon.style.transform=t);}));}onAdd(e){return this._map=e,this.options.showZoom&&(this._setButtonTitle(this._zoomInButton,"ZoomIn"),this._setButtonTitle(this._zoomOutButton,"ZoomOut"),e.on("zoom",this._updateZoomButtons),this._updateZoomButtons()),this.options.showCompass&&(this._setButtonTitle(this._compass,"ResetBearing"),this.options.visualizePitch&&e.on("pitch",this._rotateCompassArrow),e.on("rotate",this._rotateCompassArrow),this._rotateCompassArrow(),this._handler=new cn(e,this._compass,this.options.visualizePitch)),this._container}onRemove(){const e=this._map;e&&(this._container.remove(),this.options.showZoom&&e.off("zoom",this._updateZoomButtons),this.options.showCompass&&(this.options.visualizePitch&&e.off("pitch",this._rotateCompassArrow),e.off("rotate",this._rotateCompassArrow),this._handler&&this._handler.off(),this._handler=void 0),this._map=void 0);}_createButton(e,t){const i=n("button",e,this._container);return i.type="button",i.addEventListener("click",t),i}_setButtonTitle(e,t){if(!this._map)return;const i=this._map._getUIString(`NavigationControl.${t}`);e.setAttribute("aria-label",i),e.firstElementChild&&e.firstElementChild.setAttribute("title",i);}},GeolocateControl:class extends e.Evented{constructor(t){super(),this.options=e.extend({geolocation:e.window.navigator.geolocation},hn,t),e.bindAll(["_onSuccess","_onError","_onZoom","_finish","_setupUI","_updateCamera","_updateMarker","_updateMarkerRotation","_onDeviceOrientation"],this),this._updateMarkerRotationThrottled=Yo(this._updateMarkerRotation,20),this._numberOfWatches=0;}onAdd(e){return this._map=e,this._container=n("div","mapboxgl-ctrl mapboxgl-ctrl-group"),this._checkGeolocationSupport(this._setupUI),this._container}onRemove(){void 0!==this._geolocationWatchID&&(this.options.geolocation.clearWatch(this._geolocationWatchID),this._geolocationWatchID=void 0),this.options.showUserLocation&&this._userLocationDotMarker&&this._userLocationDotMarker.remove(),this.options.showAccuracyCircle&&this._accuracyCircleMarker&&this._accuracyCircleMarker.remove(),this._container.remove(),this._map.off("zoom",this._onZoom),this._map=void 0,this._numberOfWatches=0,this._noTimeout=!1;}_checkGeolocationSupport(t){const i=(e=!!this.options.geolocation)=>{this._supportsGeolocation=e,t(e);};void 0!==this._supportsGeolocation?t(this._supportsGeolocation):void 0!==e.window.navigator.permissions?e.window.navigator.permissions.query({name:"geolocation"}).then((e=>i("denied"!==e.state))).catch((()=>i())):i();}_isOutOfMapMaxBounds(e){const t=this._map.getMaxBounds(),i=e.coords;return !!t&&(i.longitudet.getEast()||i.latitudet.getNorth())}_setErrorState(){switch(this._watchState){case"WAITING_ACTIVE":this._watchState="ACTIVE_ERROR",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active-error");break;case"ACTIVE_LOCK":this._watchState="ACTIVE_ERROR",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting");break;case"BACKGROUND":this._watchState="BACKGROUND_ERROR",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting");}}_onSuccess(t){if(this._map){if(this._isOutOfMapMaxBounds(t))return this._setErrorState(),this.fire(new e.Event("outofmaxbounds",t)),this._updateMarker(),void this._finish();if(this.options.trackUserLocation)switch(this._lastKnownPosition=t,this._watchState){case"WAITING_ACTIVE":case"ACTIVE_LOCK":case"ACTIVE_ERROR":this._watchState="ACTIVE_LOCK",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active");break;case"BACKGROUND":case"BACKGROUND_ERROR":this._watchState="BACKGROUND",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background");}this.options.showUserLocation&&"OFF"!==this._watchState&&this._updateMarker(t),this.options.trackUserLocation&&"ACTIVE_LOCK"!==this._watchState||this._updateCamera(t),this.options.showUserLocation&&this._dotElement.classList.remove("mapboxgl-user-location-dot-stale"),this.fire(new e.Event("geolocate",t)),this._finish();}}_updateCamera(t){const i=new e.LngLat(t.coords.longitude,t.coords.latitude),o=t.coords.accuracy,r=this._map.getBearing(),n=e.extend({bearing:r},this.options.fitBoundsOptions);this._map.fitBounds(i.toBounds(o),n,{geolocateSource:!0});}_updateMarker(t){if(t){const i=new e.LngLat(t.coords.longitude,t.coords.latitude);this._accuracyCircleMarker.setLngLat(i).addTo(this._map),this._userLocationDotMarker.setLngLat(i).addTo(this._map),this._accuracy=t.coords.accuracy,this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius();}else this._userLocationDotMarker.remove(),this._accuracyCircleMarker.remove();}_updateCircleRadius(){const t=this._map.transform,i=e.mercatorZfromAltitude(1,t._center.lat)*t.worldSize,o=Math.ceil(2*this._accuracy*i);this._circleElement.style.width=`${o}px`,this._circleElement.style.height=`${o}px`;}_onZoom(){this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius();}_updateMarkerRotation(){this._userLocationDotMarker&&"number"==typeof this._heading?(this._userLocationDotMarker.setRotation(this._heading),this._dotElement.classList.add("mapboxgl-user-location-show-heading")):(this._dotElement.classList.remove("mapboxgl-user-location-show-heading"),this._userLocationDotMarker.setRotation(0));}_onError(t){if(this._map){if(this.options.trackUserLocation)if(1===t.code){this._watchState="OFF",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"),this._geolocateButton.disabled=!0;const e=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.setAttribute("aria-label",e),this._geolocateButton.firstElementChild&&this._geolocateButton.firstElementChild.setAttribute("title",e),void 0!==this._geolocationWatchID&&this._clearWatch();}else {if(3===t.code&&this._noTimeout)return;this._setErrorState();}"OFF"!==this._watchState&&this.options.showUserLocation&&this._dotElement.classList.add("mapboxgl-user-location-dot-stale"),this.fire(new e.Event("error",t)),this._finish();}}_finish(){this._timeoutId&&clearTimeout(this._timeoutId),this._timeoutId=void 0;}_setupUI(t){if(void 0!==this._map){if(this._container.addEventListener("contextmenu",(e=>e.preventDefault())),this._geolocateButton=n("button","mapboxgl-ctrl-geolocate",this._container),n("span","mapboxgl-ctrl-icon",this._geolocateButton).setAttribute("aria-hidden","true"),this._geolocateButton.type="button",!1===t){e.warnOnce("Geolocation support is not available so the GeolocateControl will be disabled.");const t=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.disabled=!0,this._geolocateButton.setAttribute("aria-label",t),this._geolocateButton.firstElementChild&&this._geolocateButton.firstElementChild.setAttribute("title",t);}else {const e=this._map._getUIString("GeolocateControl.FindMyLocation");this._geolocateButton.setAttribute("aria-label",e),this._geolocateButton.firstElementChild&&this._geolocateButton.firstElementChild.setAttribute("title",e);}this.options.trackUserLocation&&(this._geolocateButton.setAttribute("aria-pressed","false"),this._watchState="OFF"),this.options.showUserLocation&&(this._dotElement=n("div","mapboxgl-user-location"),this._dotElement.appendChild(n("div","mapboxgl-user-location-dot")),this._dotElement.appendChild(n("div","mapboxgl-user-location-heading")),this._userLocationDotMarker=new en({element:this._dotElement,rotationAlignment:"map",pitchAlignment:"map"}),this._circleElement=n("div","mapboxgl-user-location-accuracy-circle"),this._accuracyCircleMarker=new en({element:this._circleElement,pitchAlignment:"map"}),this.options.trackUserLocation&&(this._watchState="OFF"),this._map.on("zoom",this._onZoom)),this._geolocateButton.addEventListener("click",this.trigger.bind(this)),this._setup=!0,this.options.trackUserLocation&&this._map.on("movestart",(t=>{t.geolocateSource||"ACTIVE_LOCK"!==this._watchState||t.originalEvent&&"resize"===t.originalEvent.type||(this._watchState="BACKGROUND",this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this.fire(new e.Event("trackuserlocationend")));}));}}_onDeviceOrientation(e){this._userLocationDotMarker&&(e.webkitCompassHeading?this._heading=e.webkitCompassHeading:!0===e.absolute&&(this._heading=-1*e.alpha),this._updateMarkerRotationThrottled());}trigger(){if(!this._setup)return e.warnOnce("Geolocate control triggered before added to a map"),!1;if(this.options.trackUserLocation){switch(this._watchState){case"OFF":this._watchState="WAITING_ACTIVE",this.fire(new e.Event("trackuserlocationstart"));break;case"WAITING_ACTIVE":case"ACTIVE_LOCK":case"ACTIVE_ERROR":case"BACKGROUND_ERROR":this._numberOfWatches--,this._noTimeout=!1,this._watchState="OFF",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"),this.fire(new e.Event("trackuserlocationend"));break;case"BACKGROUND":this._watchState="ACTIVE_LOCK",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._lastKnownPosition&&this._updateCamera(this._lastKnownPosition),this.fire(new e.Event("trackuserlocationstart"));}switch(this._watchState){case"WAITING_ACTIVE":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active");break;case"ACTIVE_LOCK":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active");break;case"ACTIVE_ERROR":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active-error");break;case"BACKGROUND":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background");break;case"BACKGROUND_ERROR":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background-error");}if("OFF"===this._watchState&&void 0!==this._geolocationWatchID)this._clearWatch();else if(void 0===this._geolocationWatchID){let e;this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.setAttribute("aria-pressed","true"),this._numberOfWatches++,this._numberOfWatches>1?(e={maximumAge:6e5,timeout:0},this._noTimeout=!0):(e=this.options.positionOptions,this._noTimeout=!1),this._geolocationWatchID=this.options.geolocation.watchPosition(this._onSuccess,this._onError,e),this.options.showUserHeading&&this._addDeviceOrientationListener();}}else this.options.geolocation.getCurrentPosition(this._onSuccess,this._onError,this.options.positionOptions),this._timeoutId=setTimeout(this._finish,1e4);return !0}_addDeviceOrientationListener(){const t=()=>{e.window.addEventListener("ondeviceorientationabsolute"in e.window?"deviceorientationabsolute":"deviceorientation",this._onDeviceOrientation);};void 0!==e.window.DeviceMotionEvent&&"function"==typeof e.window.DeviceMotionEvent.requestPermission?DeviceOrientationEvent.requestPermission().then((e=>{"granted"===e&&t();})).catch(console.error):t();}_clearWatch(){this.options.geolocation.clearWatch(this._geolocationWatchID),e.window.removeEventListener("deviceorientation",this._onDeviceOrientation),e.window.removeEventListener("deviceorientationabsolute",this._onDeviceOrientation),this._geolocationWatchID=void 0,this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.setAttribute("aria-pressed","false"),this.options.showUserLocation&&this._updateMarker(null);}},AttributionControl:Hr,ScaleControl:class{constructor(t){this.options=e.extend({},un,t),this._isNumberFormatSupported=function(){try{return new Intl.NumberFormat("en",{style:"unit",unitDisplay:"short",unit:"meter"}),!0}catch(e){return !1}}(),e.bindAll(["_update","_setScale","setUnit"],this);}getDefaultPosition(){return "bottom-left"}_update(){const e=this.options.maxWidth||100,t=this._map,i=t._containerHeight/2,o=t._containerWidth/2-e/2,r=t.unproject([o,i]),n=t.unproject([o+e,i]),s=r.distanceTo(n);if("imperial"===this.options.unit){const t=3.2808*s;t>5280?this._setScale(e,t/5280,"mile"):this._setScale(e,t,"foot");}else "nautical"===this.options.unit?this._setScale(e,s/1852,"nautical-mile"):s>=1e3?this._setScale(e,s/1e3,"kilometer"):this._setScale(e,s,"meter");}_setScale(e,t,i){this._map._requestDomTask((()=>{const o=function(e){const t=Math.pow(10,`${Math.floor(e)}`.length-1);let i=e/t;return i=i>=10?10:i>=5?5:i>=3?3:i>=2?2:i>=1?1:function(e){const t=Math.pow(10,Math.ceil(-Math.log(e)/Math.LN10));return Math.round(e*t)/t}(i),t*i}(t),r=o/t;this._container.innerHTML=this._isNumberFormatSupported&&"nautical-mile"!==i?new Intl.NumberFormat(this._language,{style:"unit",unitDisplay:"short",unit:i}).format(o):`${o} ${_n[i]}`,this._container.style.width=e*r+"px";}));}onAdd(e){return this._map=e,this._language=e.getLanguage(),this._container=n("div","mapboxgl-ctrl mapboxgl-ctrl-scale",e.getContainer()),this._container.dir="auto",this._map.on("move",this._update),this._update(),this._container}onRemove(){this._container.remove(),this._map.off("move",this._update),this._map=void 0;}_setLanguage(e){this._language=e,this._update();}setUnit(e){this.options.unit=e,this._update();}},FullscreenControl:class{constructor(t){this._fullscreen=!1,t&&t.container&&(t.container instanceof e.window.HTMLElement?this._container=t.container:e.warnOnce("Full screen control 'container' must be a DOM element.")),e.bindAll(["_onClickFullscreen","_changeIcon"],this),"onfullscreenchange"in e.window.document?this._fullscreenchange="fullscreenchange":"onwebkitfullscreenchange"in e.window.document&&(this._fullscreenchange="webkitfullscreenchange");}onAdd(t){return this._map=t,this._container||(this._container=this._map.getContainer()),this._controlContainer=n("div","mapboxgl-ctrl mapboxgl-ctrl-group"),this._checkFullscreenSupport()?this._setupUI():(this._controlContainer.style.display="none",e.warnOnce("This device does not support fullscreen mode.")),this._controlContainer}onRemove(){this._controlContainer.remove(),this._map=null,e.window.document.removeEventListener(this._fullscreenchange,this._changeIcon);}_checkFullscreenSupport(){return !(!e.window.document.fullscreenEnabled&&!e.window.document.webkitFullscreenEnabled)}_setupUI(){const t=this._fullscreenButton=n("button","mapboxgl-ctrl-fullscreen",this._controlContainer);n("span","mapboxgl-ctrl-icon",t).setAttribute("aria-hidden","true"),t.type="button",this._updateTitle(),this._fullscreenButton.addEventListener("click",this._onClickFullscreen),e.window.document.addEventListener(this._fullscreenchange,this._changeIcon);}_updateTitle(){const e=this._getTitle();this._fullscreenButton.setAttribute("aria-label",e),this._fullscreenButton.firstElementChild&&this._fullscreenButton.firstElementChild.setAttribute("title",e);}_getTitle(){return this._map._getUIString(this._isFullscreen()?"FullscreenControl.Exit":"FullscreenControl.Enter")}_isFullscreen(){return this._fullscreen}_changeIcon(){(e.window.document.fullscreenElement||e.window.document.webkitFullscreenElement)===this._container!==this._fullscreen&&(this._fullscreen=!this._fullscreen,this._fullscreenButton.classList.toggle("mapboxgl-ctrl-shrink"),this._fullscreenButton.classList.toggle("mapboxgl-ctrl-fullscreen"),this._updateTitle());}_onClickFullscreen(){this._isFullscreen()?e.window.document.exitFullscreen?e.window.document.exitFullscreen():e.window.document.webkitCancelFullScreen&&e.window.document.webkitCancelFullScreen():this._container.requestFullscreen?this._container.requestFullscreen():this._container.webkitRequestFullscreen&&this._container.webkitRequestFullscreen();}},Popup:class extends e.Evented{constructor(t){super(),this.options=e.extend(Object.create(tn),t),e.bindAll(["_update","_onClose","remove","_onMouseEvent"],this),this._classList=new Set(t&&t.className?t.className.trim().split(/\s+/):[]);}addTo(t){return this._map&&this.remove(),this._map=t,this.options.closeOnClick&&t.on("preclick",this._onClose),this.options.closeOnMove&&t.on("move",this._onClose),t.on("remove",this.remove),this._update(),t._addPopup(this),this._focusFirstElement(),this._trackPointer?(t.on("mousemove",this._onMouseEvent),t.on("mouseup",this._onMouseEvent),t._canvasContainer.classList.add("mapboxgl-track-pointer")):t.on("move",this._update),this.fire(new e.Event("open")),this}isOpen(){return !!this._map}remove(){this._content&&this._content.remove(),this._container&&(this._container.remove(),this._container=void 0);const t=this._map;return t&&(t.off("move",this._update),t.off("move",this._onClose),t.off("preclick",this._onClose),t.off("click",this._onClose),t.off("remove",this.remove),t.off("mousemove",this._onMouseEvent),t.off("mouseup",this._onMouseEvent),t.off("drag",this._onMouseEvent),t._canvasContainer&&t._canvasContainer.classList.remove("mapboxgl-track-pointer"),t._removePopup(this),this._map=void 0),this.fire(new e.Event("close")),this}getLngLat(){return this._lngLat}setLngLat(t){this._lngLat=e.LngLat.convert(t),this._pos=null,this._trackPointer=!1,this._update();const i=this._map;return i&&(i.on("move",this._update),i.off("mousemove",this._onMouseEvent),i._canvasContainer.classList.remove("mapboxgl-track-pointer")),this}trackPointer(){this._trackPointer=!0,this._pos=null,this._update();const e=this._map;return e&&(e.off("move",this._update),e.on("mousemove",this._onMouseEvent),e.on("drag",this._onMouseEvent),e._canvasContainer.classList.add("mapboxgl-track-pointer")),this}getElement(){return this._container}setText(t){return this.setDOMContent(e.window.document.createTextNode(t))}setHTML(t){const i=e.window.document.createDocumentFragment(),o=e.window.document.createElement("body");let r;for(o.innerHTML=t;r=o.firstChild,r;)i.appendChild(r);return this.setDOMContent(i)}getMaxWidth(){return this._container&&this._container.style.maxWidth}setMaxWidth(e){return this.options.maxWidth=e,this._update(),this}setDOMContent(e){let t=this._content;if(t)for(;t.hasChildNodes();)t.firstChild&&t.removeChild(t.firstChild);else t=this._content=n("div","mapboxgl-popup-content",this._container||void 0);if(t.appendChild(e),this.options.closeButton){const e=this._closeButton=n("button","mapboxgl-popup-close-button",t);e.type="button",e.setAttribute("aria-label","Close popup"),e.setAttribute("aria-hidden","true"),e.innerHTML="×",e.addEventListener("click",this._onClose);}return this._update(),this._focusFirstElement(),this}addClassName(e){return this._classList.add(e),this._updateClassList(),this}removeClassName(e){return this._classList.delete(e),this._updateClassList(),this}setOffset(e){return this.options.offset=e,this._update(),this}toggleClassName(e){let t;return this._classList.delete(e)?t=!1:(this._classList.add(e),t=!0),this._updateClassList(),t}_onMouseEvent(e){this._update(e.point);}_getAnchor(e){if(this.options.anchor)return this.options.anchor;const t=this._map,i=this._container,o=this._pos;if(!t||!i||!o)return "bottom";const r=i.offsetWidth,n=i.offsetHeight,s=o.xt.transform.width-r/2;if(o.y+et.transform.height-n){if(s)return "bottom-left";if(a)return "bottom-right"}return s?"left":a?"right":"bottom"}_updateClassList(){const e=this._container;if(!e)return;const t=[...this._classList];t.push("mapboxgl-popup"),this._anchor&&t.push(`mapboxgl-popup-anchor-${this._anchor}`),this._trackPointer&&t.push("mapboxgl-popup-track-pointer"),e.className=t.join(" ");}_update(t){const i=this._map,o=this._content;if(!i||!this._lngLat&&!this._trackPointer||!o)return;let r=this._container;if(r||(r=this._container=n("div","mapboxgl-popup",i.getContainer()),this._tip=n("div","mapboxgl-popup-tip",r),r.appendChild(o)),this.options.maxWidth&&r.style.maxWidth!==this.options.maxWidth&&(r.style.maxWidth=this.options.maxWidth),i.transform.renderWorldCopies&&!this._trackPointer&&(this._lngLat=Jr(this._lngLat,this._pos,i.transform)),!this._trackPointer||t){const e=this._pos=this._trackPointer&&t?t:i.project(this._lngLat),o=rn(this.options.offset),r=this._anchor=this._getAnchor(o.y),n=rn(this.options.offset,r),s=e.add(n).round();i._requestDomTask((()=>{this._container&&r&&(this._container.style.transform=`${Qr[r]} translate(${s.x}px,${s.y}px)`);}));}if(!this._marker&&i._showingGlobe()){const t=e.isLngLatBehindGlobe(i.transform,this._lngLat)?0:1;this._setOpacity(t);}this._updateClassList();}_focusFirstElement(){if(!this.options.focusAfterOpen||!this._container)return;const e=this._container.querySelector(on);e&&e.focus();}_onClose(){this.remove();}_setOpacity(e){this._container&&(this._container.style.opacity=`${e}`),this._content&&(this._content.style.pointerEvents=e?"auto":"none");}},Marker:en,Style:Kt,LngLat:e.LngLat,LngLatBounds:e.LngLatBounds,Point:e.Point,MercatorCoordinate:e.MercatorCoordinate,FreeCameraOptions:jo,Evented:e.Evented,config:e.config,prewarm:function(){Ue().acquire(Be);},clearPrewarmedResources:function(){const e=Fe;e&&(e.isPreloaded()&&1===e.numActive()?(e.release(Be),Fe=null):console.warn("Could not clear WebWorkers since there are active Map instances that still reference it. The pre-warmed WebWorker pool can only be cleared when all map instances have been removed with map.remove()"));},get accessToken(){return e.config.ACCESS_TOKEN},set accessToken(t){e.config.ACCESS_TOKEN=t;},get baseApiUrl(){return e.config.API_URL},set baseApiUrl(t){e.config.API_URL=t;},get workerCount(){return ke.workerCount},set workerCount(e){ke.workerCount=e;},get maxParallelImageRequests(){return e.config.MAX_PARALLEL_IMAGE_REQUESTS},set maxParallelImageRequests(t){e.config.MAX_PARALLEL_IMAGE_REQUESTS=t;},clearStorage(t){e.clearTileCache(t);},workerUrl:"",workerClass:null,setNow:e.exported.setNow,restoreNow:e.exported.restoreNow};return dn})); + + // + // Our custom intro provides a specialized "define()" function, called by the + // AMD modules below, that sets up the worker blob URL and then executes the + // main module, storing its exported value as 'mapboxgl' + + + var mapboxgl$1 = mapboxgl; + + return mapboxgl$1; + + })); + +} (mapboxGl, mapboxGl.exports)); + +var mapboxGlExports = mapboxGl.exports; + +/** + * Minimal renderer that can be used to create a BIM + GIS scene + * with [Mapbox](https://www.mapbox.com/). + * [See example](https://ifcjs.github.io/components/examples/mapbox.html). + */ +class MapboxRenderer extends BaseRenderer { + constructor(components, map, coords, rotation = new THREE$1.Vector3(Math.PI / 2, 0, 0)) { + super(components); + /** {@link Component.enabled} */ + this.enabled = true; + /** {@link Updateable.onBeforeUpdate} */ + this.onBeforeUpdate = new Event(); + /** {@link Updateable.onAfterUpdate} */ + this.onAfterUpdate = new Event(); + /** + * The renderer can only be initialized once Mapbox' map has been loaded. This + * method triggers when that happens, so any initial logic that depends on the + * renderer has to subscribe to this. + */ + this.onInitialized = new Event(); + this._labelRenderer = new CSS2DRenderer(); + this._renderer = new THREE$1.WebGLRenderer(); + this._initError = "Mapbox scene isn't initialized yet!"; + this.updateLabelRendererSize = () => { + var _a; + if ((_a = this._renderer) === null || _a === void 0 ? void 0 : _a.domElement) { + this._labelRenderer.setSize(this._renderer.domElement.clientWidth, this._renderer.domElement.clientHeight); + } + }; + this._components = components; + this._map = map; + this._modelTransform = this.newModelTransform(coords, rotation); + this.setupMap(map); + this.setup3DBuildings(); + } + /** {@link Component.get} */ + get() { + return this._renderer; + } + /** {@link Resizeable.getSize} */ + getSize() { + if (!this._renderer) { + throw new Error(this._initError); + } + return new THREE$1.Vector2(this._renderer.domElement.clientWidth, this._renderer.domElement.clientHeight); + } + /** {@link Resizeable.resize}. Mapbox automatically handles this. */ + resize() { } + /** {@link Disposable.dispose} */ + async dispose() { + this.onInitialized.reset(); + this.enabled = false; + this.setupEvents(false); + this._renderer.dispose(); + this._map.remove(); + this._map = null; + } + initialize(context) { + const canvas = this._map.getCanvas(); + const renderer = new THREE$1.WebGLRenderer({ + canvas, + context, + antialias: true, + }); + this._renderer = renderer; + this._renderer.autoClear = false; + this.initializeLabelRenderer(); + this.onInitialized.trigger(renderer); } - } - IFC4X32.IfcDistributionPort = IfcDistributionPort; - class IfcDistributionSystem extends IfcSystem { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.LongName = LongName; - this.PredefinedType = PredefinedType; - this.type = 3205830791; + setupMap(map) { + const scene = this._components.scene.get(); + const onAdd = (_map, gl) => this.initialize(gl); + const render = (_gl, matrix) => this.render(scene, matrix); + const customLayer = this.newMapboxLayer(onAdd, render); + map.on("style.load", () => { + map.addLayer(customLayer, "waterway-label"); + }); } - } - IFC4X32.IfcDistributionSystem = IfcDistributionSystem; - class IfcDoor extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, OperationType, UserDefinedOperationType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.OverallHeight = OverallHeight; - this.OverallWidth = OverallWidth; - this.PredefinedType = PredefinedType; - this.OperationType = OperationType; - this.UserDefinedOperationType = UserDefinedOperationType; - this.type = 395920057; + newMapboxLayer(onAdd, render) { + return { + id: "3d-model", + type: "custom", + renderingMode: "3d", + onAdd, + render, + }; } - } - IFC4X32.IfcDoor = IfcDoor; - class IfcDuctFittingType extends IfcFlowFittingType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 869906466; + newModelTransform(coords, rotation) { + return { + translateX: coords.x, + translateY: coords.y, + translateZ: coords.z, + rotateX: rotation.x, + rotateY: rotation.y, + rotateZ: rotation.z, + scale: coords.meterInMercatorCoordinateUnits(), + }; } - } - IFC4X32.IfcDuctFittingType = IfcDuctFittingType; - class IfcDuctSegmentType extends IfcFlowSegmentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3760055223; + // Source: https://docs.mapbox.com/mapbox-gl-js/example/add-3d-model/ + render(scene, matrix) { + if (!this._renderer || !this.enabled) + return; + this.onBeforeUpdate.trigger(this); + const rotationX = new THREE$1.Matrix4().makeRotationAxis(new THREE$1.Vector3(1, 0, 0), this._modelTransform.rotateX); + const rotationY = new THREE$1.Matrix4().makeRotationAxis(new THREE$1.Vector3(0, 1, 0), this._modelTransform.rotateY); + const rotationZ = new THREE$1.Matrix4().makeRotationAxis(new THREE$1.Vector3(0, 0, 1), this._modelTransform.rotateZ); + const m = new THREE$1.Matrix4().fromArray(matrix); + const l = new THREE$1.Matrix4() + .makeTranslation(this._modelTransform.translateX, this._modelTransform.translateY, this._modelTransform.translateZ) + .scale(new THREE$1.Vector3(this._modelTransform.scale, -this._modelTransform.scale, this._modelTransform.scale)) + .multiply(rotationX) + .multiply(rotationY) + .multiply(rotationZ); + const camera = this._components.camera.get(); + camera.projectionMatrix = m.multiply(l); + this._renderer.resetState(); + this._renderer.render(scene, camera); + this._labelRenderer.render(scene, camera); + this._map.triggerRepaint(); + this.onAfterUpdate.trigger(this); + } + initializeLabelRenderer() { + var _a, _b; + this.updateLabelRendererSize(); + this.setupEvents(true); + this._labelRenderer.domElement.style.position = "absolute"; + this._labelRenderer.domElement.style.top = "0px"; + const dom = this._labelRenderer.domElement; + (_b = (_a = this._renderer) === null || _a === void 0 ? void 0 : _a.domElement.parentElement) === null || _b === void 0 ? void 0 : _b.appendChild(dom); + } + // Source: https://docs.mapbox.com/mapbox-gl-js/example/3d-buildings/ + setup3DBuildings() { + this._map.on("load", () => { + const layers = this._map.getStyle().layers; + const labelLayerId = layers.find((layer) => layer.type === "symbol" && layer.layout["text-field"]).id; + this._map.addLayer({ + id: "add-3d-buildings", + source: "composite", + "source-layer": "building", + filter: ["==", "extrude", "true"], + type: "fill-extrusion", + minzoom: 15, + paint: { + "fill-extrusion-color": "#aaa", + // Use an 'interpolate' expression to + // add a smooth transition effect to + // the buildings as the user zooms in. + "fill-extrusion-height": [ + "interpolate", + ["linear"], + ["zoom"], + 15, + 0, + 15.05, + ["get", "height"], + ], + "fill-extrusion-base": [ + "interpolate", + ["linear"], + ["zoom"], + 15, + 0, + 15.05, + ["get", "min_height"], + ], + "fill-extrusion-opacity": 0.6, + }, + }, labelLayerId); + }); } - } - IFC4X32.IfcDuctSegmentType = IfcDuctSegmentType; - class IfcDuctSilencerType extends IfcFlowTreatmentDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2030761528; + setupEvents(active) { + if (active) { + window.addEventListener("resize", this.updateLabelRendererSize); + } + else { + window.removeEventListener("resize", this.updateLabelRendererSize); + } } - } - IFC4X32.IfcDuctSilencerType = IfcDuctSilencerType; - class IfcEarthworksCut extends IfcFeatureElementSubtraction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3071239417; +} + +/** + * Minimal camera that can be used to create a BIM + GIS scene + * with [Mapbox](https://www.mapbox.com/). + * [See example](https://ifcjs.github.io/components/examples/mapbox.html). + */ +class MapboxCamera extends Component { + constructor() { + super(...arguments); + /** {@link Component.enabled} */ + this.enabled = true; + this._camera = new THREE$1.PerspectiveCamera(); } - } - IFC4X32.IfcEarthworksCut = IfcEarthworksCut; - class IfcEarthworksElement extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1077100507; + /** {@link Component.get} */ + get() { + return this._camera; + } +} + +/** + * The main element to create a mapbox-IFC.js application. + */ +class MapboxWindow { + /** + * @param config: information needed to initialize the scene, including + * the Mapbox access token and the HTML div element to display the scene. + */ + constructor(config) { + this.minTargetZoom = 0.0015; + this._style = "mapbox://styles/mapbox/light-v10"; + this._labels = {}; + this._buildings = []; + this._components = new Components(); + this._center = [0, 0]; + const merc = mapboxGlExports.MercatorCoordinate; + const coords = merc.fromLngLat(this._center, 0); + this._map = this.newMap(config); + this.setupComponents(coords); + this.setupScene(); + this.add(config.buildings); + } + /** + * Add a new set of buildings to the GIS scene. + * + * @param buildings The array of {@link MapboxBuilding} to add. + * @param fitToScreen Whether to center the camera to see all buildings. + */ + add(buildings, fitToScreen = true) { + for (const building of buildings) { + const { id, lng, lat, htmlElement } = building; + if (lng === undefined || lat === undefined) + continue; + const label = new CSS2DObject(htmlElement); + const center = mapboxGlExports.MercatorCoordinate.fromLngLat({ lng: this._center[0], lat: this._center[1] }, 0); + const units = center.meterInMercatorCoordinateUnits(); + const model = mapboxGlExports.MercatorCoordinate.fromLngLat({ lng, lat }, 0); + model.x /= units; + model.y /= units; + center.x /= units; + center.y /= units; + label.position.set(model.x - center.x, 0, model.y - center.y); + this._components.scene.get().add(label); + this._labels[id] = label; + this._buildings.push(building); + } + if (this._buildings.length && fitToScreen) { + this.centerMapToBuildings(); + } + } + /** + * Removes a building from the map. + * + * @param id The {@link MapboxBuilding} to remove. + */ + remove(id) { + const label = this._labels[id]; + delete this._labels[id]; + label.removeFromParent(); + label.element = undefined; + const found = this._buildings.find((building) => building.id === id); + if (found) { + const index = this._buildings.indexOf(found); + this._buildings.splice(index, 1); + } } - } - IFC4X32.IfcEarthworksElement = IfcEarthworksElement; - class IfcEarthworksFill extends IfcEarthworksElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3376911765; + /** + * Removes all buildings from the map. + */ + removeAll() { + for (const id in this._labels) { + this.remove(id); + } } - } - IFC4X32.IfcEarthworksFill = IfcEarthworksFill; - class IfcElectricApplianceType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 663422040; + /** + * Disposes all the data of the map. This needs to be called if the + * component that contains the map is deleted: otherwise, a memory leak + * will be created. + */ + async dispose() { + for (const id in this._labels) { + const label = this._labels[id]; + label.removeFromParent(); + label.element.remove(); + } + this._buildings = []; + this._labels = {}; + await this._components.dispose(); + this._map = null; + this._components = null; + } + centerMapToBuildings() { + let maxLng = -Number.MAX_VALUE; + let maxLat = -Number.MAX_VALUE; + let minLng = Number.MAX_VALUE; + let minLat = Number.MAX_VALUE; + for (const building of this._buildings) { + if (building.lng > maxLng) { + maxLng = building.lng; + } + if (building.lng < minLng) { + minLng = building.lng; + } + if (building.lat > maxLat) { + maxLat = building.lat; + } + if (building.lat < minLat) { + minLat = building.lat; + } + } + const factor = 0.4; + const width = Math.max(this.minTargetZoom, maxLng - minLng); + const height = Math.max(this.minTargetZoom, maxLat - minLat); + maxLng += factor * width; + maxLat += factor * height; + minLng -= factor * width; + minLat -= factor * height; + if (maxLng > 180) + maxLng = 180; + if (minLng < -180) + minLng = -180; + if (maxLat > 90) + maxLat = 90; + if (minLat < -90) + minLat = -90; + this._map.fitBounds([minLng, minLat, maxLng, maxLat]); + } + newMap(config) { + return new mapboxGlExports.Map({ + ...config, + pitch: 60, + bearing: -40, + zoom: 4, + style: this._style, + antialias: true, + }); } - } - IFC4X32.IfcElectricApplianceType = IfcElectricApplianceType; - class IfcElectricDistributionBoardType extends IfcFlowControllerType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2417008758; + setupComponents(coords) { + this._components.scene = new SimpleScene(this._components); + this._components.camera = new MapboxCamera(this._components); + const renderer = new MapboxRenderer(this._components, this._map, coords); + this._components.renderer = renderer; + renderer.onInitialized.add(() => { + this._components.raycaster = new SimpleRaycaster(this._components); + this._components.init(); + }); } - } - IFC4X32.IfcElectricDistributionBoardType = IfcElectricDistributionBoardType; - class IfcElectricFlowStorageDeviceType extends IfcFlowStorageDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3277789161; + setupScene() { + const scene = this._components.scene.get(); + scene.background = null; + const directionalLight = new THREE$1.DirectionalLight(0xffffff); + directionalLight.position.set(0, -70, 100).normalize(); + scene.add(directionalLight); + const directionalLight2 = new THREE$1.DirectionalLight(0xffffff); + directionalLight2.position.set(0, 70, 100).normalize(); + scene.add(directionalLight2); } - } - IFC4X32.IfcElectricFlowStorageDeviceType = IfcElectricFlowStorageDeviceType; - class IfcElectricFlowTreatmentDeviceType extends IfcFlowTreatmentDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2142170206; +} + +class AreaMeasureElement extends Component { + constructor(components, points) { + super(components); + this.name = "AreaShape"; + this.enabled = true; + this.visible = true; + this.points = []; + this.workingPlane = null; + this._rotationMatrix = null; + this._dimensionLines = []; + this._defaultLineMaterial = new THREE$1.LineBasicMaterial({ color: "red" }); + this.onAreaComputed = new Event(); + this.onWorkingPlaneComputed = new Event(); + this.onPointAdded = new Event(); + this.onPointRemoved = new Event(); + const htmlText = document.createElement("div"); + htmlText.className = DimensionLabelClassName; + this.labelMarker = new Simple2DMarker(components, htmlText); + this.labelMarker.visible = false; + this.onPointAdded.add((point) => { + if (this.points.length === 3 && !this._dimensionLines[2]) { + this.addDimensionLine(point, this.points[0]); + this.labelMarker.visible = true; + } + }); + points === null || points === void 0 ? void 0 : points.forEach((point) => this.setPoint(point)); } - } - IFC4X32.IfcElectricFlowTreatmentDeviceType = IfcElectricFlowTreatmentDeviceType; - class IfcElectricGeneratorType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1534661035; + setPoint(point, index) { + let _index; + if (!index) { + _index = this.points.length === 0 ? 0 : this.points.length; + } + else { + _index = index; + } + if (_index === 0) { + this.points[0] = point; + return; + } + if (_index < 0 || _index > this.points.length) + return; + const existingIndex = this.points.length > _index; + this.points[_index] = point; + this.onPointAdded.trigger(point); + if (!existingIndex) { + this.addDimensionLine(this.points[_index - 1], point); + } + const { previousLine, nextLine } = this.getLinesBetweenIndex(_index); + if (previousLine) + previousLine.endPoint = point; + if (nextLine) + nextLine.startPoint = point; + } + removePoint(index) { + if (this.points.length === 3) + return; + this.points.splice(index, 1); + const { previousLine, nextLine } = this.getLinesBetweenIndex(index); + if (nextLine) + previousLine.endPoint = nextLine.end; + nextLine === null || nextLine === void 0 ? void 0 : nextLine.dispose(); + this._dimensionLines.splice(index, 1); + this.onPointRemoved.trigger(); + } + toggleLabel() { + this.labelMarker.toggleVisibility(); + } + addDimensionLine(start, end) { + const element = document.createElement("div"); + element.className = "w-2 h-2 bg-red-600 rounded-full"; + const dimensionLine = new SimpleDimensionLine(this.components, { + start, + end, + lineMaterial: this._defaultLineMaterial, + endpointElement: element, + }); + dimensionLine.toggleLabel(); + if (this._dimensionLines.length > 1) { + this._dimensionLines.splice(this._dimensionLines.length - 1, 0, dimensionLine); + } + else { + this._dimensionLines.push(dimensionLine); + } + return dimensionLine; + } + getLinesBetweenIndex(index) { + const previousLineIndex = index === 0 ? this._dimensionLines.length - 1 : index - 1; + const previousLine = this._dimensionLines[previousLineIndex]; + const nextLine = this._dimensionLines[index]; + return { previousLine, nextLine }; + } + computeWorkingPlane() { + this.workingPlane = new THREE$1.Plane().setFromCoplanarPoints(this.points[0], this.points[1], this.points[2]); + const referenceVector = new THREE$1.Vector3(0, 1, 0); + const theta = this.workingPlane.normal.angleTo(referenceVector); + const rotationAxis = new THREE$1.Vector3() + .crossVectors(this.workingPlane.normal, referenceVector) + .normalize(); + this._rotationMatrix = new THREE$1.Matrix4().makeRotationAxis(rotationAxis, theta); + this.onWorkingPlaneComputed.trigger(this.workingPlane); + } + computeArea() { + if (!(this._rotationMatrix && this.workingPlane)) { + this.onAreaComputed.trigger(0); + return 0; + } + let xSum = 0; + let ySum = 0; + const rotMatrix = this._rotationMatrix; + const vectors2D = this.points.map((point) => { + const transformedPoint = point.clone().applyMatrix4(rotMatrix); + const vector2D = new THREE$1.Vector2(transformedPoint.x, transformedPoint.z); + xSum += vector2D.x; + ySum += vector2D.y; + return vector2D; + }); + const area = Math.abs(THREE$1.ShapeUtils.area(vectors2D)); + this.labelMarker.get().element.textContent = `${area.toFixed(2)} m²`; + this.labelMarker + .get() + .position.set(xSum / vectors2D.length, -this.workingPlane.constant, ySum / vectors2D.length) + .applyMatrix4(rotMatrix.clone().invert()); + this.onAreaComputed.trigger(area); + return area; + } + async dispose() { + this.onAreaComputed.reset(); + this.onWorkingPlaneComputed.reset(); + this.onPointAdded.reset(); + this.onPointRemoved.reset(); + for (const line of this._dimensionLines) { + line.dispose(); + } + await this.labelMarker.dispose(); + this._dimensionLines = []; + this.points = []; + this._rotationMatrix = null; + this.workingPlane = null; + this._defaultLineMaterial.dispose(); + this.components = null; + } + get() { + return { + points: this.points, + workingPlane: this.workingPlane, + area: this.computeArea(), + }; } - } - IFC4X32.IfcElectricGeneratorType = IfcElectricGeneratorType; - class IfcElectricMotorType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1217240411; +} + +class AreaMeasurement extends Component { + set enabled(value) { + this._enabled = value; + this._vertexPicker.enabled = value; + if (this.components.ui.enabled) { + const main = this.uiElement.get("main"); + main.active = value; + } + this.setupEvents(value); + if (!value) + this.cancelCreation(); } - } - IFC4X32.IfcElectricMotorType = IfcElectricMotorType; - class IfcElectricTimeControlType extends IfcFlowControllerType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 712377611; + get enabled() { + return this._enabled; } - } - IFC4X32.IfcElectricTimeControlType = IfcElectricTimeControlType; - class IfcEnergyConversionDevice extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1658829314; + set workingPlane(plane) { + this._vertexPicker.workingPlane = plane; } - } - IFC4X32.IfcEnergyConversionDevice = IfcEnergyConversionDevice; - class IfcEngine extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2814081492; + get workingPlane() { + return this._vertexPicker.workingPlane; } - } - IFC4X32.IfcEngine = IfcEngine; - class IfcEvaporativeCooler extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3747195512; + constructor(components) { + super(components); + this.uiElement = new UIElement(); + this._enabled = false; + this._currentAreaElement = null; + this._clickCount = 0; + this._measurements = []; + this.onBeforeCreate = new Event(); + this.onAfterCreate = new Event(); + this.onBeforeCancel = new Event(); + this.onAfterCancel = new Event(); + this.onBeforeDelete = new Event(); + this.onAfterDelete = new Event(); + this.create = () => { + if (!this.enabled) + return; + const point = this._vertexPicker.get(); + if (!point) + return; + if (!this._currentAreaElement) { + const areaShape = new AreaMeasureElement(this.components); + areaShape.onPointAdded.add(() => { + if (this._clickCount === 3 && !areaShape.workingPlane) { + areaShape.computeWorkingPlane(); + this._vertexPicker.workingPlane = areaShape.workingPlane; + } + }); + areaShape.onPointRemoved.add(() => this._clickCount--); + this._currentAreaElement = areaShape; + } + this._currentAreaElement.setPoint(point, this._clickCount); + this._currentAreaElement.computeArea(); + this._clickCount++; + }; + this.onMouseMove = () => { + const point = this._vertexPicker.get(); + if (!(point && this._currentAreaElement)) + return; + this._currentAreaElement.setPoint(point, this._clickCount); + this._currentAreaElement.computeArea(); + }; + this.onKeydown = (e) => { + if (!this.enabled) + return; + if (e.key === "z" && e.ctrlKey && this._currentAreaElement) + this._currentAreaElement.removePoint(this._clickCount - 1); + if (e.key === "Enter" && this._currentAreaElement) + this.endCreation(); + if (e.key === "Escape") { + if (this._clickCount === 0 && !this._currentAreaElement) { + this.enabled = false; + } + else { + this.cancelCreation(); + } + } + }; + this.components.tools.add(AreaMeasurement.uuid, this); + // TODO: Make vertexpicker a tool? + this._vertexPicker = new VertexPicker(components); + if (components.ui.enabled) { + this.setUI(); + } + } + async dispose() { + this.setupEvents(false); + this.onBeforeCreate.reset(); + this.onAfterCreate.reset(); + this.onBeforeCancel.reset(); + this.onAfterCancel.reset(); + this.onBeforeDelete.reset(); + this.onAfterDelete.reset(); + this.uiElement.dispose(); + await this._vertexPicker.dispose(); + if (this._currentAreaElement) { + await this._currentAreaElement.dispose(); + } + for (const measure of this._measurements) { + await measure.dispose(); + } + this.components = null; + } + setUI() { + const main = new Button(this.components); + main.materialIcon = "check_box_outline_blank"; + main.onClick.add(() => { + if (!this.enabled) { + main.active = true; + this.enabled = true; + } + else { + this.enabled = false; + main.active = false; + } + }); + this.uiElement.set({ main }); } - } - IFC4X32.IfcEvaporativeCooler = IfcEvaporativeCooler; - class IfcEvaporator extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 484807127; + delete() { } + /** Deletes all the dimensions that have been previously created. */ + async deleteAll() { + for (const dim of this._measurements) { + await dim.dispose(); + await this.onAfterDelete.trigger(this); + } + this._measurements = []; } - } - IFC4X32.IfcEvaporator = IfcEvaporator; - class IfcExternalSpatialElement extends IfcExternalSpatialStructureElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.PredefinedType = PredefinedType; - this.type = 1209101575; + endCreation() { + if (this._currentAreaElement) { + this._measurements.push(this._currentAreaElement); + this._currentAreaElement.removePoint(this._clickCount); + this._currentAreaElement.computeWorkingPlane(); + this._currentAreaElement.computeArea(); + this._currentAreaElement = null; + } + this._vertexPicker.workingPlane = null; + this._clickCount = 0; } - } - IFC4X32.IfcExternalSpatialElement = IfcExternalSpatialElement; - class IfcFanType extends IfcFlowMovingDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 346874300; + cancelCreation() { + if (this._currentAreaElement) { + this._currentAreaElement.dispose(); + this._currentAreaElement = null; + } + this._vertexPicker.workingPlane = null; + this._clickCount = 0; } - } - IFC4X32.IfcFanType = IfcFanType; - class IfcFilterType extends IfcFlowTreatmentDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1810631287; + get() { + return this._measurements; + } + setupEvents(active) { + const viewerContainer = this.components.ui.viewerContainer; + if (active) { + viewerContainer.addEventListener("click", this.create); + viewerContainer.addEventListener("mousemove", this.onMouseMove); + window.addEventListener("keydown", this.onKeydown); + } + else { + viewerContainer.removeEventListener("click", this.create); + viewerContainer.removeEventListener("mousemove", this.onMouseMove); + window.removeEventListener("keydown", this.onKeydown); + } + } +} +AreaMeasurement.uuid = "c453a99e-f054-4781-9060-33df617db4a5"; +ToolComponent.libraryUUIDs.add(AreaMeasurement.uuid); + +/** + * parameters = { + * color: , + * linewidth: , + * dashed: , + * dashScale: , + * dashSize: , + * dashOffset: , + * gapSize: , + * resolution: , // to be set by renderer + * } + */ + + +UniformsLib.line = { + + worldUnits: { value: 1 }, + linewidth: { value: 1 }, + resolution: { value: new Vector2$1( 1, 1 ) }, + dashOffset: { value: 0 }, + dashScale: { value: 1 }, + dashSize: { value: 1 }, + gapSize: { value: 1 } // todo FIX - maybe change to totalSize + +}; + +ShaderLib[ 'line' ] = { + + uniforms: UniformsUtils.merge( [ + UniformsLib.common, + UniformsLib.fog, + UniformsLib.line + ] ), + + vertexShader: + /* glsl */` + #include + #include + #include + #include + #include + + uniform float linewidth; + uniform vec2 resolution; + + attribute vec3 instanceStart; + attribute vec3 instanceEnd; + + attribute vec3 instanceColorStart; + attribute vec3 instanceColorEnd; + + #ifdef WORLD_UNITS + + varying vec4 worldPos; + varying vec3 worldStart; + varying vec3 worldEnd; + + #ifdef USE_DASH + + varying vec2 vUv; + + #endif + + #else + + varying vec2 vUv; + + #endif + + #ifdef USE_DASH + + uniform float dashScale; + attribute float instanceDistanceStart; + attribute float instanceDistanceEnd; + varying float vLineDistance; + + #endif + + void trimSegment( const in vec4 start, inout vec4 end ) { + + // trim end segment so it terminates between the camera plane and the near plane + + // conservative estimate of the near plane + float a = projectionMatrix[ 2 ][ 2 ]; // 3nd entry in 3th column + float b = projectionMatrix[ 3 ][ 2 ]; // 3nd entry in 4th column + float nearEstimate = - 0.5 * b / a; + + float alpha = ( nearEstimate - start.z ) / ( end.z - start.z ); + + end.xyz = mix( start.xyz, end.xyz, alpha ); + + } + + void main() { + + #ifdef USE_COLOR + + vColor.xyz = ( position.y < 0.5 ) ? instanceColorStart : instanceColorEnd; + + #endif + + #ifdef USE_DASH + + vLineDistance = ( position.y < 0.5 ) ? dashScale * instanceDistanceStart : dashScale * instanceDistanceEnd; + vUv = uv; + + #endif + + float aspect = resolution.x / resolution.y; + + // camera space + vec4 start = modelViewMatrix * vec4( instanceStart, 1.0 ); + vec4 end = modelViewMatrix * vec4( instanceEnd, 1.0 ); + + #ifdef WORLD_UNITS + + worldStart = start.xyz; + worldEnd = end.xyz; + + #else + + vUv = uv; + + #endif + + // special case for perspective projection, and segments that terminate either in, or behind, the camera plane + // clearly the gpu firmware has a way of addressing this issue when projecting into ndc space + // but we need to perform ndc-space calculations in the shader, so we must address this issue directly + // perhaps there is a more elegant solution -- WestLangley + + bool perspective = ( projectionMatrix[ 2 ][ 3 ] == - 1.0 ); // 4th entry in the 3rd column + + if ( perspective ) { + + if ( start.z < 0.0 && end.z >= 0.0 ) { + + trimSegment( start, end ); + + } else if ( end.z < 0.0 && start.z >= 0.0 ) { + + trimSegment( end, start ); + + } + + } + + // clip space + vec4 clipStart = projectionMatrix * start; + vec4 clipEnd = projectionMatrix * end; + + // ndc space + vec3 ndcStart = clipStart.xyz / clipStart.w; + vec3 ndcEnd = clipEnd.xyz / clipEnd.w; + + // direction + vec2 dir = ndcEnd.xy - ndcStart.xy; + + // account for clip-space aspect ratio + dir.x *= aspect; + dir = normalize( dir ); + + #ifdef WORLD_UNITS + + // get the offset direction as perpendicular to the view vector + vec3 worldDir = normalize( end.xyz - start.xyz ); + vec3 offset; + if ( position.y < 0.5 ) { + + offset = normalize( cross( start.xyz, worldDir ) ); + + } else { + + offset = normalize( cross( end.xyz, worldDir ) ); + + } + + // sign flip + if ( position.x < 0.0 ) offset *= - 1.0; + + float forwardOffset = dot( worldDir, vec3( 0.0, 0.0, 1.0 ) ); + + // don't extend the line if we're rendering dashes because we + // won't be rendering the endcaps + #ifndef USE_DASH + + // extend the line bounds to encompass endcaps + start.xyz += - worldDir * linewidth * 0.5; + end.xyz += worldDir * linewidth * 0.5; + + // shift the position of the quad so it hugs the forward edge of the line + offset.xy -= dir * forwardOffset; + offset.z += 0.5; + + #endif + + // endcaps + if ( position.y > 1.0 || position.y < 0.0 ) { + + offset.xy += dir * 2.0 * forwardOffset; + + } + + // adjust for linewidth + offset *= linewidth * 0.5; + + // set the world position + worldPos = ( position.y < 0.5 ) ? start : end; + worldPos.xyz += offset; + + // project the worldpos + vec4 clip = projectionMatrix * worldPos; + + // shift the depth of the projected points so the line + // segments overlap neatly + vec3 clipPose = ( position.y < 0.5 ) ? ndcStart : ndcEnd; + clip.z = clipPose.z * clip.w; + + #else + + vec2 offset = vec2( dir.y, - dir.x ); + // undo aspect ratio adjustment + dir.x /= aspect; + offset.x /= aspect; + + // sign flip + if ( position.x < 0.0 ) offset *= - 1.0; + + // endcaps + if ( position.y < 0.0 ) { + + offset += - dir; + + } else if ( position.y > 1.0 ) { + + offset += dir; + + } + + // adjust for linewidth + offset *= linewidth; + + // adjust for clip-space to screen-space conversion // maybe resolution should be based on viewport ... + offset /= resolution.y; + + // select end + vec4 clip = ( position.y < 0.5 ) ? clipStart : clipEnd; + + // back to clip space + offset *= clip.w; + + clip.xy += offset; + + #endif + + gl_Position = clip; + + vec4 mvPosition = ( position.y < 0.5 ) ? start : end; // this is an approximation + + #include + #include + #include + + } + `, + + fragmentShader: + /* glsl */` + uniform vec3 diffuse; + uniform float opacity; + uniform float linewidth; + + #ifdef USE_DASH + + uniform float dashOffset; + uniform float dashSize; + uniform float gapSize; + + #endif + + varying float vLineDistance; + + #ifdef WORLD_UNITS + + varying vec4 worldPos; + varying vec3 worldStart; + varying vec3 worldEnd; + + #ifdef USE_DASH + + varying vec2 vUv; + + #endif + + #else + + varying vec2 vUv; + + #endif + + #include + #include + #include + #include + #include + + vec2 closestLineToLine(vec3 p1, vec3 p2, vec3 p3, vec3 p4) { + + float mua; + float mub; + + vec3 p13 = p1 - p3; + vec3 p43 = p4 - p3; + + vec3 p21 = p2 - p1; + + float d1343 = dot( p13, p43 ); + float d4321 = dot( p43, p21 ); + float d1321 = dot( p13, p21 ); + float d4343 = dot( p43, p43 ); + float d2121 = dot( p21, p21 ); + + float denom = d2121 * d4343 - d4321 * d4321; + + float numer = d1343 * d4321 - d1321 * d4343; + + mua = numer / denom; + mua = clamp( mua, 0.0, 1.0 ); + mub = ( d1343 + d4321 * ( mua ) ) / d4343; + mub = clamp( mub, 0.0, 1.0 ); + + return vec2( mua, mub ); + + } + + void main() { + + #include + + #ifdef USE_DASH + + if ( vUv.y < - 1.0 || vUv.y > 1.0 ) discard; // discard endcaps + + if ( mod( vLineDistance + dashOffset, dashSize + gapSize ) > dashSize ) discard; // todo - FIX + + #endif + + float alpha = opacity; + + #ifdef WORLD_UNITS + + // Find the closest points on the view ray and the line segment + vec3 rayEnd = normalize( worldPos.xyz ) * 1e5; + vec3 lineDir = worldEnd - worldStart; + vec2 params = closestLineToLine( worldStart, worldEnd, vec3( 0.0, 0.0, 0.0 ), rayEnd ); + + vec3 p1 = worldStart + lineDir * params.x; + vec3 p2 = rayEnd * params.y; + vec3 delta = p1 - p2; + float len = length( delta ); + float norm = len / linewidth; + + #ifndef USE_DASH + + #ifdef USE_ALPHA_TO_COVERAGE + + float dnorm = fwidth( norm ); + alpha = 1.0 - smoothstep( 0.5 - dnorm, 0.5 + dnorm, norm ); + + #else + + if ( norm > 0.5 ) { + + discard; + + } + + #endif + + #endif + + #else + + #ifdef USE_ALPHA_TO_COVERAGE + + // artifacts appear on some hardware if a derivative is taken within a conditional + float a = vUv.x; + float b = ( vUv.y > 0.0 ) ? vUv.y - 1.0 : vUv.y + 1.0; + float len2 = a * a + b * b; + float dlen = fwidth( len2 ); + + if ( abs( vUv.y ) > 1.0 ) { + + alpha = 1.0 - smoothstep( 1.0 - dlen, 1.0 + dlen, len2 ); + + } + + #else + + if ( abs( vUv.y ) > 1.0 ) { + + float a = vUv.x; + float b = ( vUv.y > 0.0 ) ? vUv.y - 1.0 : vUv.y + 1.0; + float len2 = a * a + b * b; + + if ( len2 > 1.0 ) discard; + + } + + #endif + + #endif + + vec4 diffuseColor = vec4( diffuse, alpha ); + + #include + #include + + gl_FragColor = vec4( diffuseColor.rgb, alpha ); + + #include + #include + #include + #include + + } + ` +}; + +class LineMaterial extends ShaderMaterial { + + constructor( parameters ) { + + super( { + + type: 'LineMaterial', + + uniforms: UniformsUtils.clone( ShaderLib[ 'line' ].uniforms ), + + vertexShader: ShaderLib[ 'line' ].vertexShader, + fragmentShader: ShaderLib[ 'line' ].fragmentShader, + + clipping: true // required for clipping support + + } ); + + this.isLineMaterial = true; + + Object.defineProperties( this, { + + color: { + + enumerable: true, + + get: function () { + + return this.uniforms.diffuse.value; + + }, + + set: function ( value ) { + + this.uniforms.diffuse.value = value; + + } + + }, + + worldUnits: { + + enumerable: true, + + get: function () { + + return 'WORLD_UNITS' in this.defines; + + }, + + set: function ( value ) { + + if ( value === true ) { + + this.defines.WORLD_UNITS = ''; + + } else { + + delete this.defines.WORLD_UNITS; + + } + + } + + }, + + linewidth: { + + enumerable: true, + + get: function () { + + return this.uniforms.linewidth.value; + + }, + + set: function ( value ) { + + this.uniforms.linewidth.value = value; + + } + + }, + + dashed: { + + enumerable: true, + + get: function () { + + return Boolean( 'USE_DASH' in this.defines ); + + }, + + set( value ) { + + if ( Boolean( value ) !== Boolean( 'USE_DASH' in this.defines ) ) { + + this.needsUpdate = true; + + } + + if ( value === true ) { + + this.defines.USE_DASH = ''; + + } else { + + delete this.defines.USE_DASH; + + } + + } + + }, + + dashScale: { + + enumerable: true, + + get: function () { + + return this.uniforms.dashScale.value; + + }, + + set: function ( value ) { + + this.uniforms.dashScale.value = value; + + } + + }, + + dashSize: { + + enumerable: true, + + get: function () { + + return this.uniforms.dashSize.value; + + }, + + set: function ( value ) { + + this.uniforms.dashSize.value = value; + + } + + }, + + dashOffset: { + + enumerable: true, + + get: function () { + + return this.uniforms.dashOffset.value; + + }, + + set: function ( value ) { + + this.uniforms.dashOffset.value = value; + + } + + }, + + gapSize: { + + enumerable: true, + + get: function () { + + return this.uniforms.gapSize.value; + + }, + + set: function ( value ) { + + this.uniforms.gapSize.value = value; + + } + + }, + + opacity: { + + enumerable: true, + + get: function () { + + return this.uniforms.opacity.value; + + }, + + set: function ( value ) { + + this.uniforms.opacity.value = value; + + } + + }, + + resolution: { + + enumerable: true, + + get: function () { + + return this.uniforms.resolution.value; + + }, + + set: function ( value ) { + + this.uniforms.resolution.value.copy( value ); + + } + + }, + + alphaToCoverage: { + + enumerable: true, + + get: function () { + + return Boolean( 'USE_ALPHA_TO_COVERAGE' in this.defines ); + + }, + + set: function ( value ) { + + if ( Boolean( value ) !== Boolean( 'USE_ALPHA_TO_COVERAGE' in this.defines ) ) { + + this.needsUpdate = true; + + } + + if ( value === true ) { + + this.defines.USE_ALPHA_TO_COVERAGE = ''; + this.extensions.derivatives = true; + + } else { + + delete this.defines.USE_ALPHA_TO_COVERAGE; + this.extensions.derivatives = false; + + } + + } + + } + + } ); + + this.setValues( parameters ); + + } + +} + +const _box$1 = new Box3(); +const _vector = new Vector3$1(); + +class LineSegmentsGeometry extends InstancedBufferGeometry { + + constructor() { + + super(); + + this.isLineSegmentsGeometry = true; + + this.type = 'LineSegmentsGeometry'; + + const positions = [ - 1, 2, 0, 1, 2, 0, - 1, 1, 0, 1, 1, 0, - 1, 0, 0, 1, 0, 0, - 1, - 1, 0, 1, - 1, 0 ]; + const uvs = [ - 1, 2, 1, 2, - 1, 1, 1, 1, - 1, - 1, 1, - 1, - 1, - 2, 1, - 2 ]; + const index = [ 0, 2, 1, 2, 3, 1, 2, 4, 3, 4, 5, 3, 4, 6, 5, 6, 7, 5 ]; + + this.setIndex( index ); + this.setAttribute( 'position', new Float32BufferAttribute( positions, 3 ) ); + this.setAttribute( 'uv', new Float32BufferAttribute( uvs, 2 ) ); + + } + + applyMatrix4( matrix ) { + + const start = this.attributes.instanceStart; + const end = this.attributes.instanceEnd; + + if ( start !== undefined ) { + + start.applyMatrix4( matrix ); + + end.applyMatrix4( matrix ); + + start.needsUpdate = true; + + } + + if ( this.boundingBox !== null ) { + + this.computeBoundingBox(); + + } + + if ( this.boundingSphere !== null ) { + + this.computeBoundingSphere(); + + } + + return this; + + } + + setPositions( array ) { + + let lineSegments; + + if ( array instanceof Float32Array ) { + + lineSegments = array; + + } else if ( Array.isArray( array ) ) { + + lineSegments = new Float32Array( array ); + + } + + const instanceBuffer = new InstancedInterleavedBuffer( lineSegments, 6, 1 ); // xyz, xyz + + this.setAttribute( 'instanceStart', new InterleavedBufferAttribute( instanceBuffer, 3, 0 ) ); // xyz + this.setAttribute( 'instanceEnd', new InterleavedBufferAttribute( instanceBuffer, 3, 3 ) ); // xyz + + // + + this.computeBoundingBox(); + this.computeBoundingSphere(); + + return this; + + } + + setColors( array ) { + + let colors; + + if ( array instanceof Float32Array ) { + + colors = array; + + } else if ( Array.isArray( array ) ) { + + colors = new Float32Array( array ); + + } + + const instanceColorBuffer = new InstancedInterleavedBuffer( colors, 6, 1 ); // rgb, rgb + + this.setAttribute( 'instanceColorStart', new InterleavedBufferAttribute( instanceColorBuffer, 3, 0 ) ); // rgb + this.setAttribute( 'instanceColorEnd', new InterleavedBufferAttribute( instanceColorBuffer, 3, 3 ) ); // rgb + + return this; + + } + + fromWireframeGeometry( geometry ) { + + this.setPositions( geometry.attributes.position.array ); + + return this; + + } + + fromEdgesGeometry( geometry ) { + + this.setPositions( geometry.attributes.position.array ); + + return this; + + } + + fromMesh( mesh ) { + + this.fromWireframeGeometry( new WireframeGeometry( mesh.geometry ) ); + + // set colors, maybe + + return this; + + } + + fromLineSegments( lineSegments ) { + + const geometry = lineSegments.geometry; + + this.setPositions( geometry.attributes.position.array ); // assumes non-indexed + + // set colors, maybe + + return this; + + } + + computeBoundingBox() { + + if ( this.boundingBox === null ) { + + this.boundingBox = new Box3(); + + } + + const start = this.attributes.instanceStart; + const end = this.attributes.instanceEnd; + + if ( start !== undefined && end !== undefined ) { + + this.boundingBox.setFromBufferAttribute( start ); + + _box$1.setFromBufferAttribute( end ); + + this.boundingBox.union( _box$1 ); + + } + + } + + computeBoundingSphere() { + + if ( this.boundingSphere === null ) { + + this.boundingSphere = new Sphere(); + + } + + if ( this.boundingBox === null ) { + + this.computeBoundingBox(); + + } + + const start = this.attributes.instanceStart; + const end = this.attributes.instanceEnd; + + if ( start !== undefined && end !== undefined ) { + + const center = this.boundingSphere.center; + + this.boundingBox.getCenter( center ); + + let maxRadiusSq = 0; + + for ( let i = 0, il = start.count; i < il; i ++ ) { + + _vector.fromBufferAttribute( start, i ); + maxRadiusSq = Math.max( maxRadiusSq, center.distanceToSquared( _vector ) ); + + _vector.fromBufferAttribute( end, i ); + maxRadiusSq = Math.max( maxRadiusSq, center.distanceToSquared( _vector ) ); + + } + + this.boundingSphere.radius = Math.sqrt( maxRadiusSq ); + + if ( isNaN( this.boundingSphere.radius ) ) { + + console.error( 'THREE.LineSegmentsGeometry.computeBoundingSphere(): Computed radius is NaN. The instanced position data is likely to have NaN values.', this ); + + } + + } + + } + + toJSON() { + + // todo + + } + + applyMatrix( matrix ) { + + console.warn( 'THREE.LineSegmentsGeometry: applyMatrix() has been renamed to applyMatrix4().' ); + + return this.applyMatrix4( matrix ); + + } + +} + +class LineGeometry extends LineSegmentsGeometry { + + constructor() { + + super(); + + this.isLineGeometry = true; + + this.type = 'LineGeometry'; + + } + + setPositions( array ) { + + // converts [ x1, y1, z1, x2, y2, z2, ... ] to pairs format + + const length = array.length - 3; + const points = new Float32Array( 2 * length ); + + for ( let i = 0; i < length; i += 3 ) { + + points[ 2 * i ] = array[ i ]; + points[ 2 * i + 1 ] = array[ i + 1 ]; + points[ 2 * i + 2 ] = array[ i + 2 ]; + + points[ 2 * i + 3 ] = array[ i + 3 ]; + points[ 2 * i + 4 ] = array[ i + 4 ]; + points[ 2 * i + 5 ] = array[ i + 5 ]; + + } + + super.setPositions( points ); + + return this; + + } + + setColors( array ) { + + // converts [ r1, g1, b1, r2, g2, b2, ... ] to pairs format + + const length = array.length - 3; + const colors = new Float32Array( 2 * length ); + + for ( let i = 0; i < length; i += 3 ) { + + colors[ 2 * i ] = array[ i ]; + colors[ 2 * i + 1 ] = array[ i + 1 ]; + colors[ 2 * i + 2 ] = array[ i + 2 ]; + + colors[ 2 * i + 3 ] = array[ i + 3 ]; + colors[ 2 * i + 4 ] = array[ i + 4 ]; + colors[ 2 * i + 5 ] = array[ i + 5 ]; + + } + + super.setColors( colors ); + + return this; + + } + + fromLine( line ) { + + const geometry = line.geometry; + + this.setPositions( geometry.attributes.position.array ); // assumes non-indexed + + // set colors, maybe + + return this; + + } + +} + +const _start = new Vector3$1(); +const _end = new Vector3$1(); + +const _start4 = new Vector4(); +const _end4 = new Vector4(); + +const _ssOrigin = new Vector4(); +const _ssOrigin3 = new Vector3$1(); +const _mvMatrix = new Matrix4(); +const _line = new Line3(); +const _closestPoint = new Vector3$1(); + +const _box = new Box3(); +const _sphere = new Sphere(); +const _clipToWorldVector = new Vector4(); + +let _ray, _lineWidth; + +// Returns the margin required to expand by in world space given the distance from the camera, +// line width, resolution, and camera projection +function getWorldSpaceHalfWidth( camera, distance, resolution ) { + + // transform into clip space, adjust the x and y values by the pixel width offset, then + // transform back into world space to get world offset. Note clip space is [-1, 1] so full + // width does not need to be halved. + _clipToWorldVector.set( 0, 0, - distance, 1.0 ).applyMatrix4( camera.projectionMatrix ); + _clipToWorldVector.multiplyScalar( 1.0 / _clipToWorldVector.w ); + _clipToWorldVector.x = _lineWidth / resolution.width; + _clipToWorldVector.y = _lineWidth / resolution.height; + _clipToWorldVector.applyMatrix4( camera.projectionMatrixInverse ); + _clipToWorldVector.multiplyScalar( 1.0 / _clipToWorldVector.w ); + + return Math.abs( Math.max( _clipToWorldVector.x, _clipToWorldVector.y ) ); + +} + +function raycastWorldUnits( lineSegments, intersects ) { + + const matrixWorld = lineSegments.matrixWorld; + const geometry = lineSegments.geometry; + const instanceStart = geometry.attributes.instanceStart; + const instanceEnd = geometry.attributes.instanceEnd; + const segmentCount = Math.min( geometry.instanceCount, instanceStart.count ); + + for ( let i = 0, l = segmentCount; i < l; i ++ ) { + + _line.start.fromBufferAttribute( instanceStart, i ); + _line.end.fromBufferAttribute( instanceEnd, i ); + + _line.applyMatrix4( matrixWorld ); + + const pointOnLine = new Vector3$1(); + const point = new Vector3$1(); + + _ray.distanceSqToSegment( _line.start, _line.end, point, pointOnLine ); + const isInside = point.distanceTo( pointOnLine ) < _lineWidth * 0.5; + + if ( isInside ) { + + intersects.push( { + point, + pointOnLine, + distance: _ray.origin.distanceTo( point ), + object: lineSegments, + face: null, + faceIndex: i, + uv: null, + uv1: null, + } ); + + } + + } + +} + +function raycastScreenSpace( lineSegments, camera, intersects ) { + + const projectionMatrix = camera.projectionMatrix; + const material = lineSegments.material; + const resolution = material.resolution; + const matrixWorld = lineSegments.matrixWorld; + + const geometry = lineSegments.geometry; + const instanceStart = geometry.attributes.instanceStart; + const instanceEnd = geometry.attributes.instanceEnd; + const segmentCount = Math.min( geometry.instanceCount, instanceStart.count ); + + const near = - camera.near; + + // + + // pick a point 1 unit out along the ray to avoid the ray origin + // sitting at the camera origin which will cause "w" to be 0 when + // applying the projection matrix. + _ray.at( 1, _ssOrigin ); + + // ndc space [ - 1.0, 1.0 ] + _ssOrigin.w = 1; + _ssOrigin.applyMatrix4( camera.matrixWorldInverse ); + _ssOrigin.applyMatrix4( projectionMatrix ); + _ssOrigin.multiplyScalar( 1 / _ssOrigin.w ); + + // screen space + _ssOrigin.x *= resolution.x / 2; + _ssOrigin.y *= resolution.y / 2; + _ssOrigin.z = 0; + + _ssOrigin3.copy( _ssOrigin ); + + _mvMatrix.multiplyMatrices( camera.matrixWorldInverse, matrixWorld ); + + for ( let i = 0, l = segmentCount; i < l; i ++ ) { + + _start4.fromBufferAttribute( instanceStart, i ); + _end4.fromBufferAttribute( instanceEnd, i ); + + _start4.w = 1; + _end4.w = 1; + + // camera space + _start4.applyMatrix4( _mvMatrix ); + _end4.applyMatrix4( _mvMatrix ); + + // skip the segment if it's entirely behind the camera + const isBehindCameraNear = _start4.z > near && _end4.z > near; + if ( isBehindCameraNear ) { + + continue; + + } + + // trim the segment if it extends behind camera near + if ( _start4.z > near ) { + + const deltaDist = _start4.z - _end4.z; + const t = ( _start4.z - near ) / deltaDist; + _start4.lerp( _end4, t ); + + } else if ( _end4.z > near ) { + + const deltaDist = _end4.z - _start4.z; + const t = ( _end4.z - near ) / deltaDist; + _end4.lerp( _start4, t ); + + } + + // clip space + _start4.applyMatrix4( projectionMatrix ); + _end4.applyMatrix4( projectionMatrix ); + + // ndc space [ - 1.0, 1.0 ] + _start4.multiplyScalar( 1 / _start4.w ); + _end4.multiplyScalar( 1 / _end4.w ); + + // screen space + _start4.x *= resolution.x / 2; + _start4.y *= resolution.y / 2; + + _end4.x *= resolution.x / 2; + _end4.y *= resolution.y / 2; + + // create 2d segment + _line.start.copy( _start4 ); + _line.start.z = 0; + + _line.end.copy( _end4 ); + _line.end.z = 0; + + // get closest point on ray to segment + const param = _line.closestPointToPointParameter( _ssOrigin3, true ); + _line.at( param, _closestPoint ); + + // check if the intersection point is within clip space + const zPos = MathUtils.lerp( _start4.z, _end4.z, param ); + const isInClipSpace = zPos >= - 1 && zPos <= 1; + + const isInside = _ssOrigin3.distanceTo( _closestPoint ) < _lineWidth * 0.5; + + if ( isInClipSpace && isInside ) { + + _line.start.fromBufferAttribute( instanceStart, i ); + _line.end.fromBufferAttribute( instanceEnd, i ); + + _line.start.applyMatrix4( matrixWorld ); + _line.end.applyMatrix4( matrixWorld ); + + const pointOnLine = new Vector3$1(); + const point = new Vector3$1(); + + _ray.distanceSqToSegment( _line.start, _line.end, point, pointOnLine ); + + intersects.push( { + point: point, + pointOnLine: pointOnLine, + distance: _ray.origin.distanceTo( point ), + object: lineSegments, + face: null, + faceIndex: i, + uv: null, + uv1: null, + } ); + + } + + } + +} + +class LineSegments2 extends Mesh { + + constructor( geometry = new LineSegmentsGeometry(), material = new LineMaterial( { color: Math.random() * 0xffffff } ) ) { + + super( geometry, material ); + + this.isLineSegments2 = true; + + this.type = 'LineSegments2'; + + } + + // for backwards-compatibility, but could be a method of LineSegmentsGeometry... + + computeLineDistances() { + + const geometry = this.geometry; + + const instanceStart = geometry.attributes.instanceStart; + const instanceEnd = geometry.attributes.instanceEnd; + const lineDistances = new Float32Array( 2 * instanceStart.count ); + + for ( let i = 0, j = 0, l = instanceStart.count; i < l; i ++, j += 2 ) { + + _start.fromBufferAttribute( instanceStart, i ); + _end.fromBufferAttribute( instanceEnd, i ); + + lineDistances[ j ] = ( j === 0 ) ? 0 : lineDistances[ j - 1 ]; + lineDistances[ j + 1 ] = lineDistances[ j ] + _start.distanceTo( _end ); + + } + + const instanceDistanceBuffer = new InstancedInterleavedBuffer( lineDistances, 2, 1 ); // d0, d1 + + geometry.setAttribute( 'instanceDistanceStart', new InterleavedBufferAttribute( instanceDistanceBuffer, 1, 0 ) ); // d0 + geometry.setAttribute( 'instanceDistanceEnd', new InterleavedBufferAttribute( instanceDistanceBuffer, 1, 1 ) ); // d1 + + return this; + + } + + raycast( raycaster, intersects ) { + + const worldUnits = this.material.worldUnits; + const camera = raycaster.camera; + + if ( camera === null && ! worldUnits ) { + + console.error( 'LineSegments2: "Raycaster.camera" needs to be set in order to raycast against LineSegments2 while worldUnits is set to false.' ); + + } + + const threshold = ( raycaster.params.Line2 !== undefined ) ? raycaster.params.Line2.threshold || 0 : 0; + + _ray = raycaster.ray; + + const matrixWorld = this.matrixWorld; + const geometry = this.geometry; + const material = this.material; + + _lineWidth = material.linewidth + threshold; + + // check if we intersect the sphere bounds + if ( geometry.boundingSphere === null ) { + + geometry.computeBoundingSphere(); + + } + + _sphere.copy( geometry.boundingSphere ).applyMatrix4( matrixWorld ); + + // increase the sphere bounds by the worst case line screen space width + let sphereMargin; + if ( worldUnits ) { + + sphereMargin = _lineWidth * 0.5; + + } else { + + const distanceToSphere = Math.max( camera.near, _sphere.distanceToPoint( _ray.origin ) ); + sphereMargin = getWorldSpaceHalfWidth( camera, distanceToSphere, material.resolution ); + + } + + _sphere.radius += sphereMargin; + + if ( _ray.intersectsSphere( _sphere ) === false ) { + + return; + + } + + // check if we intersect the box bounds + if ( geometry.boundingBox === null ) { + + geometry.computeBoundingBox(); + + } + + _box.copy( geometry.boundingBox ).applyMatrix4( matrixWorld ); + + // increase the box bounds by the worst case line width + let boxMargin; + if ( worldUnits ) { + + boxMargin = _lineWidth * 0.5; + + } else { + + const distanceToBox = Math.max( camera.near, _box.distanceToPoint( _ray.origin ) ); + boxMargin = getWorldSpaceHalfWidth( camera, distanceToBox, material.resolution ); + + } + + _box.expandByScalar( boxMargin ); + + if ( _ray.intersectsBox( _box ) === false ) { + + return; + + } + + if ( worldUnits ) { + + raycastWorldUnits( this, intersects ); + + } else { + + raycastScreenSpace( this, camera, intersects ); + + } + + } + +} + +class Line2 extends LineSegments2 { + + constructor( geometry = new LineGeometry(), material = new LineMaterial( { color: Math.random() * 0xffffff } ) ) { + + super( geometry, material ); + + this.isLine2 = true; + + this.type = 'Line2'; + + } + +} + +class AngleMeasureElement extends Component { + set lineMaterial(material) { + this._lineMaterial.dispose(); + this._lineMaterial = material; + this._line.material = material; + this._lineMaterial.resolution.set(window.innerWidth, window.innerHeight); + } + get lineMaterial() { + return this._lineMaterial; + } + set labelMarker(marker) { + this._labelMarker.dispose(); + this._labelMarker = marker; + } + get labelMarker() { + return this._labelMarker; + } + get scene() { + return this._components.scene.get(); + } + constructor(components, points) { + super(components); + this.enabled = true; + this.visible = true; + this.points = []; + this._lineMaterial = new LineMaterial({ + color: 0x6528d7, + linewidth: 2, + }); + this._lineGeometry = new LineGeometry(); + this._line = new Line2(this._lineGeometry, this._lineMaterial); + this.onAngleComputed = new Event(); + this.onPointAdded = new Event(); + this._components = components; + const htmlText = document.createElement("div"); + htmlText.className = DimensionLabelClassName; + this._labelMarker = new Simple2DMarker(components, htmlText); + this.labelMarker.visible = false; + this.onPointAdded.add(() => { + if (this.points.length === 1) + this.scene.add(this._line); + if (this.points.length === 3) + this.labelMarker.visible = true; + }); + this.onAngleComputed.add((angle) => { + var _a; + this.labelMarker.get().element.textContent = `${angle.toFixed(2)}°`; + this.labelMarker + .get() + .position.copy((_a = this.points[1]) !== null && _a !== void 0 ? _a : new THREE$1.Vector3()); + }); + points === null || points === void 0 ? void 0 : points.forEach((point) => this.setPoint(point)); } - } - IFC4X32.IfcFilterType = IfcFilterType; - class IfcFireSuppressionTerminalType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 4222183408; + setPoint(point, index) { + let _index; + if (!index) { + _index = this.points.length === 0 ? 0 : this.points.length; + } + else { + _index = index; + } + if (![0, 1, 2].includes(_index)) + return; + this.points[_index] = point; + this.onPointAdded.trigger(point); + const points = this.points.map((point) => { + return [point.x, point.y, point.z]; + }); + this._lineGeometry.setPositions(points.flat()); } - } - IFC4X32.IfcFireSuppressionTerminalType = IfcFireSuppressionTerminalType; - class IfcFlowController extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 2058353004; + toggleLabel() { + this.labelMarker.toggleVisibility(); } - } - IFC4X32.IfcFlowController = IfcFlowController; - class IfcFlowFitting extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 4278956645; + computeAngle() { + const v0 = this.points[0]; + const v1 = this.points[1]; + const v2 = this.points[2]; + if (!(v0 && v1 && v2)) + return 0; + const vA = new THREE$1.Vector3().subVectors(v1, v0); + const vB = new THREE$1.Vector3().subVectors(v1, v2); + const angle = THREE$1.MathUtils.radToDeg(vA.angleTo(vB)); + this.onAngleComputed.trigger(angle); + return angle; + } + async dispose() { + this.points = []; + await this.labelMarker.dispose(); + this.onAngleComputed.reset(); + this.onPointAdded.reset(); + await this.labelMarker.dispose(); + this._line.removeFromParent(); + this._lineMaterial.dispose(); + this._lineGeometry.dispose(); + this._components = null; + } + get() { + return { + points: this.points, + angle: this.computeAngle(), + }; } - } - IFC4X32.IfcFlowFitting = IfcFlowFitting; - class IfcFlowInstrumentType extends IfcDistributionControlElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 4037862832; +} + +class AngleMeasurement extends Component { + set lineMaterial(material) { + this._lineMaterial.dispose(); + this._lineMaterial = material; + this._lineMaterial.resolution.set(window.innerWidth, window.innerHeight); } - } - IFC4X32.IfcFlowInstrumentType = IfcFlowInstrumentType; - class IfcFlowMeter extends IfcFlowController { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2188021234; + get lineMaterial() { + return this._lineMaterial; } - } - IFC4X32.IfcFlowMeter = IfcFlowMeter; - class IfcFlowMovingDevice extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 3132237377; + set enabled(value) { + this._enabled = value; + this.setupEvents(value); + this._vertexPicker.enabled = value; + if (this.components.ui.enabled) { + const main = this.uiElement.get("main"); + main.active = value; + } + if (!value) + this.cancelCreation(); } - } - IFC4X32.IfcFlowMovingDevice = IfcFlowMovingDevice; - class IfcFlowSegment extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 987401354; + get enabled() { + return this._enabled; } - } - IFC4X32.IfcFlowSegment = IfcFlowSegment; - class IfcFlowStorageDevice extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 707683696; + set workingPlane(plane) { + this._vertexPicker.workingPlane = plane; } - } - IFC4X32.IfcFlowStorageDevice = IfcFlowStorageDevice; - class IfcFlowTerminal extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 2223149337; + get workingPlane() { + return this._vertexPicker.workingPlane; } - } - IFC4X32.IfcFlowTerminal = IfcFlowTerminal; - class IfcFlowTreatmentDevice extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 3508470533; + constructor(components) { + super(components); + this.uiElement = new UIElement(); + this._enabled = false; + this._currentAngleElement = null; + this._clickCount = 0; + this._measurements = []; + this.onBeforeCreate = new Event(); + this.onAfterCreate = new Event(); + this.onBeforeCancel = new Event(); + this.onAfterCancel = new Event(); + this.onBeforeDelete = new Event(); + this.onAfterDelete = new Event(); + this.create = () => { + if (!this.enabled) + return; + const point = this._vertexPicker.get(); + if (!point) + return; + if (!this._currentAngleElement) { + const angleElement = new AngleMeasureElement(this.components); + angleElement.lineMaterial = this.lineMaterial; + // angleElement.onPointRemoved.on(() => this._clickCount--); + this._currentAngleElement = angleElement; + } + this._currentAngleElement.setPoint(point, this._clickCount); + this._currentAngleElement.setPoint(point, (this._clickCount + 1)); + this._currentAngleElement.setPoint(point, (this._clickCount + 2)); + this._currentAngleElement.computeAngle(); + this._clickCount++; + if (this._clickCount === 3) + this.endCreation(); + }; + this.onMouseMove = () => { + const point = this._vertexPicker.get(); + if (!(point && this._currentAngleElement)) + return; + this._currentAngleElement.setPoint(point, this._clickCount); + this._currentAngleElement.computeAngle(); + }; + this.onKeyDown = (e) => { + if (!this.enabled) + return; + if (e.key === "z" && e.ctrlKey && this._currentAngleElement) ; + if (e.key === "Escape") { + if (this._clickCount === 0 && !this._currentAngleElement) { + this.enabled = false; + } + else { + this.cancelCreation(); + } + } + }; + this.components.tools.add(AngleMeasurement.uuid, this); + this.components = components; + this._lineMaterial = new LineMaterial({ + color: 0x6528d7, + linewidth: 2, + }); + this._vertexPicker = new VertexPicker(components); + // this.enabled = false; + if (components.ui.enabled) { + this.setUI(); + } + } + async dispose() { + await this.setupEvents(false); + this.onBeforeCreate.reset(); + this.onAfterCreate.reset(); + this.onBeforeCancel.reset(); + this.onAfterCancel.reset(); + this.onBeforeDelete.reset(); + this.onAfterDelete.reset(); + this.uiElement.dispose(); + this._lineMaterial.dispose(); + await this._vertexPicker.dispose(); + for (const measure of this._measurements) { + await measure.dispose(); + } + if (this._currentAngleElement) { + await this._currentAngleElement.dispose(); + } + this.components = null; + } + delete() { } + /** Deletes all the dimensions that have been previously created. */ + async deleteAll() { + for (const dim of this._measurements) { + await dim.dispose(); + await this.onAfterDelete.trigger(this); + } + this._measurements = []; + } + endCreation() { + if (this._currentAngleElement) { + this._measurements.push(this._currentAngleElement); + this._currentAngleElement.computeAngle(); + this._currentAngleElement = null; + } + this._clickCount = 0; + } + cancelCreation() { + if (this._currentAngleElement) { + this._currentAngleElement.dispose(); + this._currentAngleElement = null; + } + this._clickCount = 0; + } + get() { + return this._measurements; + } + setUI() { + const main = new Button(this.components); + main.materialIcon = "square_foot"; + main.onClick.add(() => { + if (!this.enabled) { + main.active = true; + this.enabled = true; + } + else { + this.enabled = false; + main.active = false; + } + }); + this.uiElement.set({ main }); } - } - IFC4X32.IfcFlowTreatmentDevice = IfcFlowTreatmentDevice; - class IfcFooting extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 900683007; + setupEvents(active) { + const viewerContainer = this.components.ui.viewerContainer; + if (active) { + viewerContainer.addEventListener("click", this.create); + viewerContainer.addEventListener("mousemove", this.onMouseMove); + window.addEventListener("keydown", this.onKeyDown); + } + else { + const main = this.uiElement.get("main"); + main.active = false; + viewerContainer.removeEventListener("click", this.create); + viewerContainer.removeEventListener("mousemove", this.onMouseMove); + window.removeEventListener("keydown", this.onKeyDown); + } } - } - IFC4X32.IfcFooting = IfcFooting; - class IfcGeotechnicalAssembly extends IfcGeotechnicalElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 2713699986; +} +AngleMeasurement.uuid = "622fb2c9-528c-4b0a-8a0e-6a1375f0a3aa"; +ToolComponent.libraryUUIDs.add(AngleMeasurement.uuid); + +let Handle$4 = class Handle { + static seed = 0; + + static next() { + return (++Handle$4.seed).toString(16).toUpperCase(); } - } - IFC4X32.IfcGeotechnicalAssembly = IfcGeotechnicalAssembly; - class IfcGrid extends IfcPositioningElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, UAxes, VAxes, WAxes, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.UAxes = UAxes; - this.VAxes = VAxes; - this.WAxes = WAxes; - this.PredefinedType = PredefinedType; - this.type = 3009204131; + + static peek() { + return (Handle$4.seed + 1).toString(16).toUpperCase(); } - } - IFC4X32.IfcGrid = IfcGrid; - class IfcHeatExchanger extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3319311131; +}; + +var Handle_1 = Handle$4; + +const Handle$3 = Handle_1; + +let DatabaseObject$n = class DatabaseObject { + constructor(subclass = null) { + this.handle = Handle$3.next(); + this.ownerObjectHandle = "0"; + this.subclassMarkers = []; + if (subclass) { + if (Array.isArray(subclass)) { + this.subclassMarkers.push(...subclass); + } else { + this.subclassMarkers.push(subclass); + } + } } - } - IFC4X32.IfcHeatExchanger = IfcHeatExchanger; - class IfcHumidifier extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2068733104; + + /** + * + * @param {TagsManager} manager + */ + tags(manager) { + manager.push(5, this.handle); + manager.push(330, this.ownerObjectHandle); + for (const s of this.subclassMarkers) { + manager.push(100, s); + } } - } - IFC4X32.IfcHumidifier = IfcHumidifier; - class IfcInterceptor extends IfcFlowTreatmentDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 4175244083; +}; + +var DatabaseObject_1 = DatabaseObject$n; + +const DatabaseObject$m = DatabaseObject_1; + +let LineType$1 = class LineType extends DatabaseObject$m { + /** + * @param {string} name + * @param {string} description + * @param {array} elements - if elem > 0 it is a line, if elem < 0 it is gap, if elem == 0.0 it is a + */ + constructor(name, description, elements) { + super(["AcDbSymbolTableRecord", "AcDbLinetypeTableRecord"]); + this.name = name; + this.description = description; + this.elements = elements; } - } - IFC4X32.IfcInterceptor = IfcInterceptor; - class IfcJunctionBox extends IfcFlowFitting { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2176052936; + + tags(manager) { + // https://www.autodesk.com/techpubs/autocad/acadr14/dxf/ltype_al_u05_c.htm + manager.push(0, "LTYPE"); + super.tags(manager); + manager.push(2, this.name); + manager.push(3, this.description); + manager.push(70, 0); + manager.push(72, 65); + manager.push(73, this.elements.length); + manager.push(40, this.getElementsSum()); + + this.elements.forEach((element) => { + manager.push(49, element); + manager.push(74, 0); + }); } - } - IFC4X32.IfcJunctionBox = IfcJunctionBox; - class IfcKerb extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, Mountable) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.Mountable = Mountable; - this.type = 2696325953; + + getElementsSum() { + return this.elements.reduce((sum, element) => { + return sum + Math.abs(element); + }, 0); } - } - IFC4X32.IfcKerb = IfcKerb; - class IfcLamp extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 76236018; +}; + +var LineType_1 = LineType$1; + +const DatabaseObject$l = DatabaseObject_1; + +let Layer$1 = class Layer extends DatabaseObject$l { + constructor(name, colorNumber, lineTypeName = null) { + super(["AcDbSymbolTableRecord", "AcDbLayerTableRecord"]); + this.name = name; + this.colorNumber = colorNumber; + this.lineTypeName = lineTypeName; + this.shapes = []; + this.trueColor = -1; } - } - IFC4X32.IfcLamp = IfcLamp; - class IfcLightFixture extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 629592764; + + tags(manager) { + manager.push(0, "LAYER"); + super.tags(manager); + manager.push(2, this.name); + if (this.trueColor !== -1) manager.push(420, this.trueColor); + else manager.push(62, this.colorNumber); + + manager.push(70, 0); + if (this.lineTypeName) manager.push(6, this.lineTypeName); + + /* Hard-pointer handle to PlotStyleName object; seems mandatory, but any value seems OK, + * including 0. + */ + manager.push(390, 1); } - } - IFC4X32.IfcLightFixture = IfcLightFixture; - class IfcLinearPositioningElement extends IfcPositioningElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.type = 1154579445; + + setTrueColor(color) { + this.trueColor = color; } - } - IFC4X32.IfcLinearPositioningElement = IfcLinearPositioningElement; - class IfcLiquidTerminal extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1638804497; + + addShape(shape) { + this.shapes.push(shape); + shape.layer = this; } - } - IFC4X32.IfcLiquidTerminal = IfcLiquidTerminal; - class IfcMedicalDevice extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1437502449; + + getShapes() { + return this.shapes; } - } - IFC4X32.IfcMedicalDevice = IfcMedicalDevice; - class IfcMember extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1073191201; + + shapesTags(space, manager) { + for (const shape of this.shapes) { + shape.ownerObjectHandle = space.handle; + shape.tags(manager); + } } - } - IFC4X32.IfcMember = IfcMember; - class IfcMobileTelecommunicationsAppliance extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2078563270; +}; + +var Layer_1 = Layer$1; + +const DatabaseObject$k = DatabaseObject_1; + +let Table$2 = class Table extends DatabaseObject$k { + constructor(name) { + super("AcDbSymbolTable"); + this.name = name; + this.elements = []; } - } - IFC4X32.IfcMobileTelecommunicationsAppliance = IfcMobileTelecommunicationsAppliance; - class IfcMooringDevice extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 234836483; + + add(element) { + element.ownerObjectHandle = this.handle; + this.elements.push(element); } - } - IFC4X32.IfcMooringDevice = IfcMooringDevice; - class IfcMotorConnection extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2474470126; + + tags(manager) { + manager.push(0, "TABLE"); + manager.push(2, this.name); + super.tags(manager); + manager.push(70, this.elements.length); + + this.elements.forEach((element) => { + element.tags(manager); + }); + + manager.push(0, "ENDTAB"); } - } - IFC4X32.IfcMotorConnection = IfcMotorConnection; - class IfcNavigationElement extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2182337498; +}; + +var Table_1 = Table$2; + +const DatabaseObject$j = DatabaseObject_1; +const Table$1 = Table_1; + +let DimStyleTable$1 = class DimStyleTable extends Table$1 { + constructor(name) { + super(name); + this.subclassMarkers.push("AcDbDimStyleTable"); } - } - IFC4X32.IfcNavigationElement = IfcNavigationElement; - class IfcOuterBoundaryCurve extends IfcBoundaryCurve { - constructor(expressID, Segments, SelfIntersect) { - super(expressID, Segments, SelfIntersect); - this.Segments = Segments; - this.SelfIntersect = SelfIntersect; - this.type = 144952367; + + tags(manager) { + manager.push(0, "TABLE"); + manager.push(2, this.name); + DatabaseObject$j.prototype.tags.call(this, manager); + manager.push(70, this.elements.length); + /* DIMTOL */ + manager.push(71, 1); + + for (const e of this.elements) { + e.tags(manager); + } + + manager.push(0, "ENDTAB"); } - } - IFC4X32.IfcOuterBoundaryCurve = IfcOuterBoundaryCurve; - class IfcOutlet extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3694346114; +}; + +var DimStyleTable_1 = DimStyleTable$1; + +const DatabaseObject$i = DatabaseObject_1; + +let TextStyle$1 = class TextStyle extends DatabaseObject$i { + fontFileName = 'txt'; + constructor(name) { + super(["AcDbSymbolTableRecord", "AcDbTextStyleTableRecord"]); + this.name = name; } - } - IFC4X32.IfcOutlet = IfcOutlet; - class IfcPavement extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1383356374; + + tags(manager) { + manager.push(0, "STYLE"); + super.tags(manager); + manager.push(2, this.name); + /* No flags set */ + manager.push(70, 0); + manager.push(40, 0); + manager.push(41, 1); + manager.push(50, 0); + manager.push(71, 0); + manager.push(42, 1); + manager.push(3, this.fontFileName); + manager.push(4, ""); } - } - IFC4X32.IfcPavement = IfcPavement; - class IfcPile extends IfcDeepFoundation { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType, ConstructionType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.ConstructionType = ConstructionType; - this.type = 1687234759; +}; + +var TextStyle_1 = TextStyle$1; + +const DatabaseObject$h = DatabaseObject_1; + +let Viewport$1 = class Viewport extends DatabaseObject$h { + constructor(name, height) { + super(["AcDbSymbolTableRecord", "AcDbViewportTableRecord"]); + this.name = name; + this.height = height; } - } - IFC4X32.IfcPile = IfcPile; - class IfcPipeFitting extends IfcFlowFitting { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 310824031; + + tags(manager) { + manager.push(0, "VPORT"); + super.tags(manager); + manager.push(2, this.name); + manager.push(40, this.height); + /* No flags set */ + manager.push(70, 0); } - } - IFC4X32.IfcPipeFitting = IfcPipeFitting; - class IfcPipeSegment extends IfcFlowSegment { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3612865200; +}; + +var Viewport_1 = Viewport$1; + +const DatabaseObject$g = DatabaseObject_1; + +let AppId$1 = class AppId extends DatabaseObject$g { + constructor(name) { + super(["AcDbSymbolTableRecord", "AcDbRegAppTableRecord"]); + this.name = name; + } + + tags(manager) { + manager.push(0, "APPID"); + super.tags(manager); + manager.push(2, this.name); + /* No flags set */ + manager.push(70, 0); + } +}; + +var AppId_1 = AppId$1; + +const DatabaseObject$f = DatabaseObject_1; + +let Block$1 = class Block extends DatabaseObject$f { + constructor(name) { + super(["AcDbEntity", "AcDbBlockBegin"]); + this.name = name; + this.end = new DatabaseObject$f(["AcDbEntity", "AcDbBlockEnd"]); + this.recordHandle = null; } - } - IFC4X32.IfcPipeSegment = IfcPipeSegment; - class IfcPlate extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3171933400; + + tags(manager) { + manager.push(0, "BLOCK"); + super.tags(manager); + manager.push(2, this.name); + /* No flags set */ + manager.push(70, 0); + /* Block top left corner */ + manager.point(0, 0); + manager.push(3, this.name); + /* xref path name - nothing */ + manager.push(1, ""); + + //XXX dump content here + + manager.push(0, "ENDBLK"); + this.end.tags(manager); } - } - IFC4X32.IfcPlate = IfcPlate; - class IfcProtectiveDevice extends IfcFlowController { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 738039164; +}; + +var Block_1 = Block$1; + +const DatabaseObject$e = DatabaseObject_1; + +let BlockRecord$1 = class BlockRecord extends DatabaseObject$e { + constructor(name) { + super(["AcDbSymbolTableRecord", "AcDbBlockTableRecord"]); + this.name = name; } - } - IFC4X32.IfcProtectiveDevice = IfcProtectiveDevice; - class IfcProtectiveDeviceTrippingUnitType extends IfcDistributionControlElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 655969474; + + tags(manager) { + manager.push(0, "BLOCK_RECORD"); + super.tags(manager); + manager.push(2, this.name); + /* No flags set */ + manager.push(70, 0); + /* Block explodability */ + manager.push(280, 0); + /* Block scalability */ + manager.push(281, 1); } - } - IFC4X32.IfcProtectiveDeviceTrippingUnitType = IfcProtectiveDeviceTrippingUnitType; - class IfcPump extends IfcFlowMovingDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 90941305; +}; + +var BlockRecord_1 = BlockRecord$1; + +const DatabaseObject$d = DatabaseObject_1; + +let Dictionary$1 = class Dictionary extends DatabaseObject$d { + constructor() { + super("AcDbDictionary"); + this.children = {}; } - } - IFC4X32.IfcPump = IfcPump; - class IfcRail extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3290496277; + + /** + * + * @param {*} name + * @param {DatabaseObject} dictionary + */ + addChildDictionary(name, dictionary) { + dictionary.ownerObjectHandle = this.handle; + this.children[name] = dictionary; } - } - IFC4X32.IfcRail = IfcRail; - class IfcRailing extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2262370178; + + tags(manager) { + manager.push(0, "DICTIONARY"); + super.tags(manager); + /* Duplicate record cloning flag - keep existing */ + manager.push(281, 1); + + const entries = Object.entries(this.children); + for (const entry of entries) { + const [name, dic] = entry; + manager.push(3, name); + manager.push(350, dic.handle); + } + + const children = Object.values(this.children); + for (const c of children) { + c.tags(manager); + } } - } - IFC4X32.IfcRailing = IfcRailing; - class IfcRamp extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3024970846; +}; + +var Dictionary_1 = Dictionary$1; + +const DatabaseObject$c = DatabaseObject_1; + +let Line$1 = class Line extends DatabaseObject$c { + constructor(x1, y1, x2, y2) { + super(["AcDbEntity", "AcDbLine"]); + this.x1 = x1; + this.y1 = y1; + this.x2 = x2; + this.y2 = y2; } - } - IFC4X32.IfcRamp = IfcRamp; - class IfcRampFlight extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3283111854; + + tags(manager) { + //https://www.autodesk.com/techpubs/autocad/acadr14/dxf/line_al_u05_c.htm + manager.push(0, "LINE"); + super.tags(manager); + manager.push(8, this.layer.name); + manager.point(this.x1, this.y1); + + manager.push(11, this.x2); + manager.push(21, this.y2); + manager.push(31, 0); } - } - IFC4X32.IfcRampFlight = IfcRampFlight; - class IfcRationalBSplineCurveWithKnots extends IfcBSplineCurveWithKnots { - constructor(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect, KnotMultiplicities, Knots, KnotSpec, WeightsData) { - super(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect, KnotMultiplicities, Knots, KnotSpec); - this.Degree = Degree; - this.ControlPointsList = ControlPointsList; - this.CurveForm = CurveForm; - this.ClosedCurve = ClosedCurve; - this.SelfIntersect = SelfIntersect; - this.KnotMultiplicities = KnotMultiplicities; - this.Knots = Knots; - this.KnotSpec = KnotSpec; - this.WeightsData = WeightsData; - this.type = 1232101972; +}; + +var Line_1 = Line$1; + +const DatabaseObject$b = DatabaseObject_1; + +let Line3d$1 = class Line3d extends DatabaseObject$b { + constructor(x1, y1, z1, x2, y2, z2) { + super(["AcDbEntity", "AcDbLine"]); + this.x1 = x1; + this.y1 = y1; + this.z1 = z1; + this.x2 = x2; + this.y2 = y2; + this.z2 = z2; } - } - IFC4X32.IfcRationalBSplineCurveWithKnots = IfcRationalBSplineCurveWithKnots; - class IfcReinforcedSoil extends IfcEarthworksElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3798194928; + + tags(manager) { + //https://www.autodesk.com/techpubs/autocad/acadr14/dxf/line_al_u05_c.htm + manager.push(0, "LINE"); + super.tags(manager); + manager.push(8, this.layer.name); + manager.point(this.x1, this.y1, this.z1); + + manager.push(11, this.x2); + manager.push(21, this.y2); + manager.push(31, this.z2); } - } - IFC4X32.IfcReinforcedSoil = IfcReinforcedSoil; - class IfcReinforcingBar extends IfcReinforcingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, NominalDiameter, CrossSectionArea, BarLength, PredefinedType, BarSurface) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.SteelGrade = SteelGrade; - this.NominalDiameter = NominalDiameter; - this.CrossSectionArea = CrossSectionArea; - this.BarLength = BarLength; - this.PredefinedType = PredefinedType; - this.BarSurface = BarSurface; - this.type = 979691226; +}; + +var Line3d_1 = Line3d$1; + +const DatabaseObject$a = DatabaseObject_1; + +let Arc$1 = class Arc extends DatabaseObject$a { + /** + * @param {number} x - Center x + * @param {number} y - Center y + * @param {number} r - radius + * @param {number} startAngle - degree + * @param {number} endAngle - degree + */ + constructor(x, y, r, startAngle, endAngle) { + super(["AcDbEntity", "AcDbCircle"]); + this.x = x; + this.y = y; + this.r = r; + this.startAngle = startAngle; + this.endAngle = endAngle; } - } - IFC4X32.IfcReinforcingBar = IfcReinforcingBar; - class IfcReinforcingBarType extends IfcReinforcingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, NominalDiameter, CrossSectionArea, BarLength, BarSurface, BendingShapeCode, BendingParameters) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.NominalDiameter = NominalDiameter; - this.CrossSectionArea = CrossSectionArea; - this.BarLength = BarLength; - this.BarSurface = BarSurface; - this.BendingShapeCode = BendingShapeCode; - this.BendingParameters = BendingParameters; - this.type = 2572171363; + + tags(manager) { + //https://www.autodesk.com/techpubs/autocad/acadr14/dxf/line_al_u05_c.htm + manager.push(0, "ARC"); + super.tags(manager); + manager.push(8, this.layer.name); + manager.point(this.x, this.y); + manager.push(40, this.r); + manager.push(100, "AcDbArc"); + manager.push(50, this.startAngle); + manager.push(51, this.endAngle); } - } - IFC4X32.IfcReinforcingBarType = IfcReinforcingBarType; - class IfcRoof extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2016517767; +}; + +var Arc_1 = Arc$1; + +const DatabaseObject$9 = DatabaseObject_1; + +let Circle$1 = class Circle extends DatabaseObject$9 { + /** + * @param {number} x - Center x + * @param {number} y - Center y + * @param {number} r - radius + */ + constructor(x, y, r) { + super(["AcDbEntity", "AcDbCircle"]); + this.x = x; + this.y = y; + this.r = r; } - } - IFC4X32.IfcRoof = IfcRoof; - class IfcSanitaryTerminal extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3053780830; + + tags(manager) { + //https://www.autodesk.com/techpubs/autocad/acadr14/dxf/circle_al_u05_c.htm + manager.push(0, "CIRCLE"); + super.tags(manager); + manager.push(8, this.layer.name); + manager.point(this.x, this.y); + manager.push(40, this.r); } - } - IFC4X32.IfcSanitaryTerminal = IfcSanitaryTerminal; - class IfcSensorType extends IfcDistributionControlElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1783015770; +}; + +var Circle_1 = Circle$1; + +const DatabaseObject$8 = DatabaseObject_1; + +let Cylinder$1 = class Cylinder extends DatabaseObject$8 { + /** + * @param {number} x - Center x + * @param {number} y - Center y + * @param {number} z - Center z + * @param {number} r - radius + * @param {number} thickness - thickness + * @param {number} extrusionDirectionX - Extrusion Direction x + * @param {number} extrusionDirectionY - Extrusion Direction y + * @param {number} extrusionDirectionZ - Extrusion Direction z + */ + constructor( + x, + y, + z, + r, + thickness, + extrusionDirectionX, + extrusionDirectionY, + extrusionDirectionZ + ) { + super(["AcDbEntity", "AcDbCircle"]); + this.x = x; + this.y = y; + this.z = z; + this.r = r; + this.thickness = thickness; + (this.extrusionDirectionX = extrusionDirectionX), + (this.extrusionDirectionY = extrusionDirectionY), + (this.extrusionDirectionZ = extrusionDirectionZ); } - } - IFC4X32.IfcSensorType = IfcSensorType; - class IfcShadingDevice extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1329646415; + + tags(manager) { + manager.push(0, "CIRCLE"); + super.tags(manager); + manager.push(8, this.layer.name); + manager.point(this.x, this.y, this.z); + manager.push(40, this.r); + manager.push(39, this.thickness); + manager.push(210, this.extrusionDirectionX); + manager.push(220, this.extrusionDirectionY); + manager.push(230, this.extrusionDirectionZ); } - } - IFC4X32.IfcShadingDevice = IfcShadingDevice; - class IfcSignal extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 991950508; +}; + +var Cylinder_1 = Cylinder$1; + +const DatabaseObject$7 = DatabaseObject_1; + +const H_ALIGN_CODES = ["left", "center", "right"]; +const V_ALIGN_CODES = ["baseline", "bottom", "middle", "top"]; + +let Text$1 = class Text extends DatabaseObject$7 { + /** + * @param {number} x - x + * @param {number} y - y + * @param {number} height - Text height + * @param {number} rotation - Text rotation + * @param {string} value - the string itself + * @param {string} [horizontalAlignment="left"] left | center | right + * @param {string} [verticalAlignment="baseline"] baseline | bottom | middle | top + */ + constructor( + x, + y, + height, + rotation, + value, + horizontalAlignment = "left", + verticalAlignment = "baseline" + ) { + super(["AcDbEntity", "AcDbText"]); + this.x = x; + this.y = y; + this.height = height; + this.rotation = rotation; + this.value = value; + this.hAlign = horizontalAlignment; + this.vAlign = verticalAlignment; } - } - IFC4X32.IfcSignal = IfcSignal; - class IfcSlab extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1529196076; + + tags(manager) { + //https://www.autodesk.com/techpubs/autocad/acadr14/dxf/text_al_u05_c.htm + manager.push(0, "TEXT"); + super.tags(manager); + manager.push(8, this.layer.name); + manager.point(this.x, this.y); + manager.push(40, this.height); + manager.push(1, this.value); + manager.push(50, this.rotation); + + if ( + H_ALIGN_CODES.includes(this.hAlign, 1) || + V_ALIGN_CODES.includes(this.vAlign, 1) + ) { + manager.push(72, Math.max(H_ALIGN_CODES.indexOf(this.hAlign), 0)); + + manager.push(11, this.x); + manager.push(21, this.y); + manager.push(31, 0); + + /* AutoCAD needs this one more time, yes, exactly here. */ + manager.push(100, "AcDbText"); + manager.push(73, Math.max(V_ALIGN_CODES.indexOf(this.vAlign), 0)); + } else { + /* AutoCAD needs this one more time. */ + manager.push(100, "AcDbText"); + } } - } - IFC4X32.IfcSlab = IfcSlab; - class IfcSolarDevice extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3420628829; +}; + +var Text_1 = Text$1; + +const DatabaseObject$6 = DatabaseObject_1; + +let Polyline$1 = class Polyline extends DatabaseObject$6 { + /** + * @param {array} points - Array of points like [ [x1, y1], [x2, y2, bulge]... ] + * @param {boolean} closed + * @param {number} startWidth + * @param {number} endWidth + */ + constructor(points, closed = false, startWidth = 0, endWidth = 0) { + super(["AcDbEntity", "AcDbPolyline"]); + this.points = points; + this.closed = closed; + this.startWidth = startWidth; + this.endWidth = endWidth; } - } - IFC4X32.IfcSolarDevice = IfcSolarDevice; - class IfcSpaceHeater extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1999602285; + + tags(manager) { + manager.push(0, "LWPOLYLINE"); + super.tags(manager); + manager.push(8, this.layer.name); + manager.push(6, "ByLayer"); + manager.push(62, 256); + manager.push(370, -1); + manager.push(90, this.points.length); + manager.push(70, this.closed ? 1 : 0); + + this.points.forEach((point) => { + const [x, y, z] = point; + manager.push(10, x); + manager.push(20, y); + if (this.startWidth !== 0 || this.endWidth !== 0) { + manager.push(40, this.startWidth); + manager.push(41, this.endWidth); + } + if (z !== undefined) manager.push(42, z); + }); } - } - IFC4X32.IfcSpaceHeater = IfcSpaceHeater; - class IfcStackTerminal extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1404847402; +}; + +var Polyline_1 = Polyline$1; + +const DatabaseObject$5 = DatabaseObject_1; + +let Vertex$1 = class Vertex extends DatabaseObject$5 { + /** + * + * @param {number} x The X coordinate + * @param {number} y The Y coordinate + * @param {number} z The Z coordinate + */ + constructor(x, y, z) { + super(["AcDbEntity", "AcDbVertex", "AcDb3dPolylineVertex"]); + this.x = x; + this.y = y; + this.z = z; } - } - IFC4X32.IfcStackTerminal = IfcStackTerminal; - class IfcStair extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 331165859; + + tags(manager) { + manager.push(0, "VERTEX"); + super.tags(manager); + manager.push(8, this.layer.name); + manager.point(this.x, this.y, this.z); + manager.push(70, 32); } - } - IFC4X32.IfcStair = IfcStair; - class IfcStairFlight extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, NumberOfRisers, NumberOfTreads, RiserHeight, TreadLength, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.NumberOfRisers = NumberOfRisers; - this.NumberOfTreads = NumberOfTreads; - this.RiserHeight = RiserHeight; - this.TreadLength = TreadLength; - this.PredefinedType = PredefinedType; - this.type = 4252922144; +}; + +var Vertex_1 = Vertex$1; + +const DatabaseObject$4 = DatabaseObject_1; +const Handle$2 = Handle_1; +const Vertex = Vertex_1; + +let Polyline3d$1 = class Polyline3d extends DatabaseObject$4 { + /** + * @param {[number, number, number][]} points - Array of points like [ [x1, y1, z1], [x2, y2, z2]... ] + */ + constructor(points) { + super(["AcDbEntity", "AcDb3dPolyline"]); + this.verticies = points.map((point) => { + const [x, y, z] = point; + const vertex = new Vertex(x, y, z); + vertex.ownerObjectHandle = this.handle; + return vertex; + }); + this.seqendHandle = Handle$2.next(); } - } - IFC4X32.IfcStairFlight = IfcStairFlight; - class IfcStructuralAnalysisModel extends IfcSystem { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, OrientationOf2DPlane, LoadedBy, HasResults, SharedPlacement) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.PredefinedType = PredefinedType; - this.OrientationOf2DPlane = OrientationOf2DPlane; - this.LoadedBy = LoadedBy; - this.HasResults = HasResults; - this.SharedPlacement = SharedPlacement; - this.type = 2515109513; + + tags(manager) { + manager.push(0, "POLYLINE"); + super.tags(manager); + manager.push(8, this.layer.name); + manager.push(66, 1); + manager.push(70, 0); + manager.point(0, 0); + + this.verticies.forEach((vertex) => { + vertex.layer = this.layer; + vertex.tags(manager); + }); + + manager.push(0, "SEQEND"); + manager.push(5, this.seqendHandle); + manager.push(100, "AcDbEntity"); + manager.push(8, this.layer.name); } - } - IFC4X32.IfcStructuralAnalysisModel = IfcStructuralAnalysisModel; - class IfcStructuralLoadCase extends IfcStructuralLoadGroup { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, ActionType, ActionSource, Coefficient, Purpose, SelfWeightCoefficients) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, ActionType, ActionSource, Coefficient, Purpose); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.PredefinedType = PredefinedType; - this.ActionType = ActionType; - this.ActionSource = ActionSource; - this.Coefficient = Coefficient; - this.Purpose = Purpose; - this.SelfWeightCoefficients = SelfWeightCoefficients; - this.type = 385403989; +}; + +var Polyline3d_1 = Polyline3d$1; + +const DatabaseObject$3 = DatabaseObject_1; + +let Face$1 = class Face extends DatabaseObject$3 { + constructor(x1, y1, z1, x2, y2, z2, x3, y3, z3, x4, y4, z4) { + super(["AcDbEntity", "AcDbFace"]); + this.x1 = x1; + this.y1 = y1; + this.z1 = z1; + this.x2 = x2; + this.y2 = y2; + this.z2 = z2; + this.x3 = x3; + this.y3 = y3; + this.z3 = z3; + this.x4 = x4; + this.y4 = y4; + this.z4 = z4; } - } - IFC4X32.IfcStructuralLoadCase = IfcStructuralLoadCase; - class IfcStructuralPlanarAction extends IfcStructuralSurfaceAction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.DestabilizingLoad = DestabilizingLoad; - this.ProjectedOrTrue = ProjectedOrTrue; - this.PredefinedType = PredefinedType; - this.type = 1621171031; + + tags(manager) { + //https://www.autodesk.com/techpubs/autocad/acadr14/dxf/3dface_al_u05_c.htm + manager.push(0, "3DFACE"); + super.tags(manager); + manager.push(8, this.layer.name); + manager.point(this.x1, this.y1, this.z1); + + manager.push(11, this.x2); + manager.push(21, this.y2); + manager.push(31, this.z2); + + manager.push(12, this.x3); + manager.push(22, this.y3); + manager.push(32, this.z3); + + manager.push(13, this.x4); + manager.push(23, this.y4); + manager.push(33, this.z4); } - } - IFC4X32.IfcStructuralPlanarAction = IfcStructuralPlanarAction; - class IfcSwitchingDevice extends IfcFlowController { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1162798199; +}; + +var Face_1 = Face$1; + +const DatabaseObject$2 = DatabaseObject_1; + +let Point$1 = class Point extends DatabaseObject$2 { + constructor(x, y) { + super(["AcDbEntity", "AcDbPoint"]); + this.x = x; + this.y = y; } - } - IFC4X32.IfcSwitchingDevice = IfcSwitchingDevice; - class IfcTank extends IfcFlowStorageDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 812556717; + + tags(manager) { + //https://www.autodesk.com/techpubs/autocad/acadr14/dxf/point_al_u05_c.htm + manager.push(0, "POINT"); + super.tags(manager); + manager.push(8, this.layer.name); + manager.point(this.x, this.y); } - } - IFC4X32.IfcTank = IfcTank; - class IfcTrackElement extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3425753595; +}; + +var Point_1 = Point$1; + +const DatabaseObject$1 = DatabaseObject_1; + +let Spline$1 = class Spline extends DatabaseObject$1 { + /** + * Creates a spline. See https://www.autodesk.com/techpubs/autocad/acad2000/dxf/spline_dxf_06.htm + * @param {[Array]} controlPoints - Array of control points like [ [x1, y1], [x2, y2]... ] + * @param {number} degree - Degree of spline: 2 for quadratic, 3 for cubic. Default is 3 + * @param {[number]} knots - Knot vector array. If null, will use a uniform knot vector. Default is null + * @param {[number]} weights - Control point weights. If provided, must be one weight for each control point. Default is null + * @param {[Array]} fitPoints - Array of fit points like [ [x1, y1], [x2, y2]... ] + */ + constructor( + controlPoints, + degree = 3, + knots = null, + weights = null, + fitPoints = [] + ) { + super(["AcDbEntity", "AcDbSpline"]); + if (controlPoints.length < degree + 1) { + throw new Error( + `For degree ${degree} spline, expected at least ${ + degree + 1 + } control points, but received only ${controlPoints.length}` + ); + } + + if (knots == null) { + // Examples: + // degree 2, 3 pts: 0 0 0 1 1 1 + // degree 2, 4 pts: 0 0 0 1 2 2 2 + // degree 2, 5 pts: 0 0 0 1 2 3 3 3 + // degree 3, 4 pts: 0 0 0 0 1 1 1 1 + // degree 3, 5 pts: 0 0 0 0 1 2 2 2 2 + + knots = []; + for (let i = 0; i < degree + 1; i++) { + knots.push(0); + } + for (let i = 1; i < controlPoints.length - degree; i++) { + knots.push(i); + } + for (let i = 0; i < degree + 1; i++) { + knots.push(controlPoints.length - degree); + } + } + + if (knots.length !== controlPoints.length + degree + 1) { + throw new Error( + `Invalid knot vector length. Expected ${ + controlPoints.length + degree + 1 + } but received ${knots.length}.` + ); + } + + this.controlPoints = controlPoints; + this.knots = knots; + this.fitPoints = fitPoints; + this.degree = degree; + this.weights = weights; + + const closed = 0; + const periodic = 0; + const rational = this.weights ? 1 : 0; + const planar = 1; + const linear = 0; + + this.type = + closed * 1 + periodic * 2 + rational * 4 + planar * 8 + linear * 16; + + // Not certain where the values of these flags came from so I'm going to leave them commented for now + // const closed = 0 + // const periodic = 0 + // const rational = 1 + // const planar = 1 + // const linear = 0 + // const splineType = 1024 * closed + 128 * periodic + 8 * rational + 4 * planar + 2 * linear } - } - IFC4X32.IfcTrackElement = IfcTrackElement; - class IfcTransformer extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3825984169; + + tags(manager) { + // https://www.autodesk.com/techpubs/autocad/acad2000/dxf/spline_dxf_06.htm + manager.push(0, "SPLINE"); + super.tags(manager); + manager.push(8, this.layer.name); + + manager.push(210, 0.0); + manager.push(220, 0.0); + manager.push(230, 1.0); + + manager.push(70, this.type); + manager.push(71, this.degree); + manager.push(72, this.knots.length); + manager.push(73, this.controlPoints.length); + manager.push(74, this.fitPoints.length); + + manager.push(42, 1e-7); + manager.push(43, 1e-7); + manager.push(44, 1e-10); + + this.knots.forEach((knot) => { + manager.push(40, knot); + }); + + if (this.weights) { + this.weights.forEach((weight) => { + manager.push(41, weight); + }); + } + + this.controlPoints.forEach((point) => { + manager.point(point[0], point[1]); + }); } - } - IFC4X32.IfcTransformer = IfcTransformer; - class IfcTransportElement extends IfcTransportationDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1620046519; +}; + +var Spline_1 = Spline$1; + +const DatabaseObject = DatabaseObject_1; + +let Ellipse$1 = class Ellipse extends DatabaseObject { + /** + * Creates an ellipse. + * @param {number} x - Center x + * @param {number} y - Center y + * @param {number} majorAxisX - Endpoint x of major axis, relative to center + * @param {number} majorAxisY - Endpoint y of major axis, relative to center + * @param {number} axisRatio - Ratio of minor axis to major axis + * @param {number} startAngle - Start angle + * @param {number} endAngle - End angle + */ + constructor(x, y, majorAxisX, majorAxisY, axisRatio, startAngle, endAngle) { + super(["AcDbEntity", "AcDbEllipse"]); + this.x = x; + this.y = y; + this.majorAxisX = majorAxisX; + this.majorAxisY = majorAxisY; + this.axisRatio = axisRatio; + this.startAngle = startAngle; + this.endAngle = endAngle; } - } - IFC4X32.IfcTransportElement = IfcTransportElement; - class IfcTubeBundle extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3026737570; + + tags(manager) { + // https://www.autodesk.com/techpubs/autocad/acadr14/dxf/ellipse_al_u05_c.htm + manager.push(0, "ELLIPSE"); + super.tags(manager); + manager.push(8, this.layer.name); + manager.point(this.x, this.y); + manager.push(11, this.majorAxisX); + manager.push(21, this.majorAxisY); + manager.push(31, 0); + + manager.push(40, this.axisRatio); + manager.push(41, this.startAngle); + manager.push(42, this.endAngle); } - } - IFC4X32.IfcTubeBundle = IfcTubeBundle; - class IfcUnitaryControlElementType extends IfcDistributionControlElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3179687236; +}; + +var Ellipse_1 = Ellipse$1; + +let TagsManager$1 = class TagsManager { + constructor() { + this.lines = []; } - } - IFC4X32.IfcUnitaryControlElementType = IfcUnitaryControlElementType; - class IfcUnitaryEquipment extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 4292641817; + + /** + * + * @param {number} x + * @param {number} y + * @param {number} z + */ + point(x, y, z = 0) { + this.push(10, x); + this.push(20, y); + this.push(30, z); } - } - IFC4X32.IfcUnitaryEquipment = IfcUnitaryEquipment; - class IfcValve extends IfcFlowController { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 4207607924; + + /** + * + * @param {string} name The name of the section + */ + start(name) { + this.push(0, "SECTION"); + this.push(2, name); } - } - IFC4X32.IfcValve = IfcValve; - class IfcWall extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2391406946; + + end() { + this.push(0, "ENDSEC"); } - } - IFC4X32.IfcWall = IfcWall; - class IfcWallStandardCase extends IfcWall { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3512223829; + + addHeaderVariable(name, tagsElements) { + this.push(9, `$${name}`); + tagsElements.forEach((tagElement) => { + this.push(tagElement[0], tagElement[1]); + }); } - } - IFC4X32.IfcWallStandardCase = IfcWallStandardCase; - class IfcWasteTerminal extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 4237592921; + + push(code, value) { + this.lines.push(code, value); } - } - IFC4X32.IfcWasteTerminal = IfcWasteTerminal; - class IfcWindow extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, PartitioningType, UserDefinedPartitioningType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.OverallHeight = OverallHeight; - this.OverallWidth = OverallWidth; - this.PredefinedType = PredefinedType; - this.PartitioningType = PartitioningType; - this.UserDefinedPartitioningType = UserDefinedPartitioningType; - this.type = 3304561284; + + toDxfString() { + return this.lines.join("\n"); } - } - IFC4X32.IfcWindow = IfcWindow; - class IfcActuatorType extends IfcDistributionControlElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2874132201; +}; + +var TagsManager_1 = TagsManager$1; + +const LineType = LineType_1; +const Layer = Layer_1; +const Table = Table_1; +const DimStyleTable = DimStyleTable_1; +const TextStyle = TextStyle_1; +const Viewport = Viewport_1; +const AppId = AppId_1; +const Block = Block_1; +const BlockRecord = BlockRecord_1; +const Dictionary = Dictionary_1; +const Line = Line_1; +const Line3d = Line3d_1; +const Arc = Arc_1; +const Circle = Circle_1; +const Cylinder = Cylinder_1; +const Text = Text_1; +const Polyline = Polyline_1; +const Polyline3d = Polyline3d_1; +const Face = Face_1; +const Point = Point_1; +const Spline = Spline_1; +const Ellipse = Ellipse_1; +const TagsManager = TagsManager_1; +const Handle$1 = Handle_1; + +let Drawing$1 = class Drawing { + constructor() { + this.layers = {}; + this.activeLayer = null; + this.lineTypes = {}; + this.headers = {}; + this.tables = {}; + this.blocks = {}; + + this.dictionary = new Dictionary(); + + this.setUnits("Unitless"); + + for (const ltype of Drawing$1.LINE_TYPES) { + this.addLineType(ltype.name, ltype.description, ltype.elements); + } + + for (const l of Drawing$1.LAYERS) { + this.addLayer(l.name, l.colorNumber, l.lineTypeName); + } + + this.setActiveLayer("0"); + + // Must call this function + this.generateAutocadExtras(); } - } - IFC4X32.IfcActuatorType = IfcActuatorType; - class IfcAirTerminal extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1634111441; + + /** + * @param {string} name + * @param {string} description + * @param {array} elements - if elem > 0 it is a line, if elem < 0 it is gap, if elem == 0.0 it is a + */ + addLineType(name, description, elements) { + this.lineTypes[name] = new LineType(name, description, elements); + return this; } - } - IFC4X32.IfcAirTerminal = IfcAirTerminal; - class IfcAirTerminalBox extends IfcFlowController { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 177149247; + + addLayer(name, colorNumber, lineTypeName) { + this.layers[name] = new Layer(name, colorNumber, lineTypeName); + return this; } - } - IFC4X32.IfcAirTerminalBox = IfcAirTerminalBox; - class IfcAirToAirHeatRecovery extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2056796094; + + setActiveLayer(name) { + this.activeLayer = this.layers[name]; + return this; } - } - IFC4X32.IfcAirToAirHeatRecovery = IfcAirToAirHeatRecovery; - class IfcAlarmType extends IfcDistributionControlElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3001207471; + + addTable(name) { + const table = new Table(name); + this.tables[name] = table; + return table; } - } - IFC4X32.IfcAlarmType = IfcAlarmType; - class IfcAlignment extends IfcLinearPositioningElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.PredefinedType = PredefinedType; - this.type = 325726236; + + /** + * + * @param {string} name The name of the block. + * @returns {Block} + */ + addBlock(name) { + const block = new Block(name); + this.blocks[name] = block; + return block; } - } - IFC4X32.IfcAlignment = IfcAlignment; - class IfcAudioVisualAppliance extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 277319702; + + drawLine(x1, y1, x2, y2) { + this.activeLayer.addShape(new Line(x1, y1, x2, y2)); + return this; } - } - IFC4X32.IfcAudioVisualAppliance = IfcAudioVisualAppliance; - class IfcBeam extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 753842376; + + drawLine3d(x1, y1, z1, x2, y2, z2) { + this.activeLayer.addShape(new Line3d(x1, y1, z1, x2, y2, z2)); + return this; } - } - IFC4X32.IfcBeam = IfcBeam; - class IfcBearing extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 4196446775; + + drawPoint(x, y) { + this.activeLayer.addShape(new Point(x, y)); + return this; } - } - IFC4X32.IfcBearing = IfcBearing; - class IfcBoiler extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 32344328; + + drawRect(x1, y1, x2, y2, cornerLength, cornerBulge) { + const w = x2 - x1; + const h = y2 - y1; + cornerBulge = cornerBulge || 0; + let p = null; + if (!cornerLength) { + p = new Polyline( + [ + [x1, y1], + [x1, y1 + h], + [x1 + w, y1 + h], + [x1 + w, y1], + ], + true + ); + } else { + p = new Polyline( + [ + [x1 + w - cornerLength, y1, cornerBulge], // 1 + [x1 + w, y1 + cornerLength], // 2 + [x1 + w, y1 + h - cornerLength, cornerBulge], // 3 + [x1 + w - cornerLength, y1 + h], // 4 + [x1 + cornerLength, y1 + h, cornerBulge], // 5 + [x1, y1 + h - cornerLength], // 6 + [x1, y1 + cornerLength, cornerBulge], // 7 + [x1 + cornerLength, y1], // 8 + ], + true + ); + } + this.activeLayer.addShape(p); + return this; } - } - IFC4X32.IfcBoiler = IfcBoiler; - class IfcBorehole extends IfcGeotechnicalAssembly { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 3314249567; + + /** + * Draw a regular convex polygon as a polyline entity. + * + * @see [Regular polygon | Wikipedia](https://en.wikipedia.org/wiki/Regular_polygon) + * + * @param {number} x - The X coordinate of the center of the polygon. + * @param {number} y - The Y coordinate of the center of the polygon. + * @param {number} numberOfSides - The number of sides. + * @param {number} radius - The radius. + * @param {number} rotation - The rotation angle (in Degrees) of the polygon. By default 0. + * @param {boolean} circumscribed - If `true` is a polygon in which each side is a tangent to a circle. + * If `false` is a polygon in which all vertices lie on a circle. By default `false`. + * + * @returns {Drawing} - The current object of {@link Drawing}. + */ + drawPolygon( + x, + y, + numberOfSides, + radius, + rotation = 0, + circumscribed = false + ) { + const angle = (2 * Math.PI) / numberOfSides; + const vertices = []; + let d = radius; + const rotationRad = (rotation * Math.PI) / 180; + if (circumscribed) d = radius / Math.cos(Math.PI / numberOfSides); + for (let i = 0; i < numberOfSides; i++) { + vertices.push([ + x + d * Math.sin(rotationRad + i * angle), + y + d * Math.cos(rotationRad + i * angle), + ]); + } + this.activeLayer.addShape(new Polyline(vertices, true)); + return this; } - } - IFC4X32.IfcBorehole = IfcBorehole; - class IfcBuildingElementProxy extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1095909175; + + /** + * @param {number} x1 - Center x + * @param {number} y1 - Center y + * @param {number} r - radius + * @param {number} startAngle - degree + * @param {number} endAngle - degree + */ + drawArc(x1, y1, r, startAngle, endAngle) { + this.activeLayer.addShape(new Arc(x1, y1, r, startAngle, endAngle)); + return this; } - } - IFC4X32.IfcBuildingElementProxy = IfcBuildingElementProxy; - class IfcBurner extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2938176219; + + /** + * @param {number} x1 - Center x + * @param {number} y1 - Center y + * @param {number} r - radius + */ + drawCircle(x1, y1, r) { + this.activeLayer.addShape(new Circle(x1, y1, r)); + return this; } - } - IFC4X32.IfcBurner = IfcBurner; - class IfcCableCarrierFitting extends IfcFlowFitting { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 635142910; + + /** + * @param {number} x1 - Center x + * @param {number} y1 - Center y + * @param {number} z1 - Center z + * @param {number} r - radius + * @param {number} thickness - thickness + * @param {number} extrusionDirectionX - Extrusion Direction x + * @param {number} extrusionDirectionY - Extrusion Direction y + * @param {number} extrusionDirectionZ - Extrusion Direction z + */ + drawCylinder( + x1, + y1, + z1, + r, + thickness, + extrusionDirectionX, + extrusionDirectionY, + extrusionDirectionZ + ) { + this.activeLayer.addShape( + new Cylinder( + x1, + y1, + z1, + r, + thickness, + extrusionDirectionX, + extrusionDirectionY, + extrusionDirectionZ + ) + ); + return this; } - } - IFC4X32.IfcCableCarrierFitting = IfcCableCarrierFitting; - class IfcCableCarrierSegment extends IfcFlowSegment { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3758799889; + + /** + * @param {number} x1 - x + * @param {number} y1 - y + * @param {number} height - Text height + * @param {number} rotation - Text rotation + * @param {string} value - the string itself + * @param {string} [horizontalAlignment="left"] left | center | right + * @param {string} [verticalAlignment="baseline"] baseline | bottom | middle | top + */ + drawText( + x1, + y1, + height, + rotation, + value, + horizontalAlignment = "left", + verticalAlignment = "baseline" + ) { + this.activeLayer.addShape( + new Text( + x1, + y1, + height, + rotation, + value, + horizontalAlignment, + verticalAlignment + ) + ); + return this; } - } - IFC4X32.IfcCableCarrierSegment = IfcCableCarrierSegment; - class IfcCableFitting extends IfcFlowFitting { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1051757585; + + /** + * @param {[number, number][]} points - Array of points like [ [x1, y1], [x2, y2]... ] + * @param {boolean} closed - Closed polyline flag + * @param {number} startWidth - Default start width + * @param {number} endWidth - Default end width + */ + drawPolyline(points, closed = false, startWidth = 0, endWidth = 0) { + this.activeLayer.addShape( + new Polyline(points, closed, startWidth, endWidth) + ); + return this; } - } - IFC4X32.IfcCableFitting = IfcCableFitting; - class IfcCableSegment extends IfcFlowSegment { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 4217484030; + + /** + * @param {[number, number, number][]} points - Array of points like [ [x1, y1, z1], [x2, y2, z1]... ] + */ + drawPolyline3d(points) { + points.forEach((point) => { + if (point.length !== 3) { + throw "Require 3D coordinates"; + } + }); + this.activeLayer.addShape(new Polyline3d(points)); + return this; } - } - IFC4X32.IfcCableSegment = IfcCableSegment; - class IfcCaissonFoundation extends IfcDeepFoundation { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3999819293; + + /** + * + * @param {number} trueColor - Integer representing the true color, can be passed as an hexadecimal value of the form 0xRRGGBB + */ + setTrueColor(trueColor) { + this.activeLayer.setTrueColor(trueColor); + return this; } - } - IFC4X32.IfcCaissonFoundation = IfcCaissonFoundation; - class IfcChiller extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3902619387; + + /** + * Draw a spline. + * @param {[Array]} controlPoints - Array of control points like [ [x1, y1], [x2, y2]... ] + * @param {number} degree - Degree of spline: 2 for quadratic, 3 for cubic. Default is 3 + * @param {[number]} knots - Knot vector array. If null, will use a uniform knot vector. Default is null + * @param {[number]} weights - Control point weights. If provided, must be one weight for each control point. Default is null + * @param {[Array]} fitPoints - Array of fit points like [ [x1, y1], [x2, y2]... ] + */ + drawSpline( + controlPoints, + degree = 3, + knots = null, + weights = null, + fitPoints = [] + ) { + this.activeLayer.addShape( + new Spline(controlPoints, degree, knots, weights, fitPoints) + ); + return this; } - } - IFC4X32.IfcChiller = IfcChiller; - class IfcCoil extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 639361253; + + /** + * Draw an ellipse. + * @param {number} x1 - Center x + * @param {number} y1 - Center y + * @param {number} majorAxisX - Endpoint x of major axis, relative to center + * @param {number} majorAxisY - Endpoint y of major axis, relative to center + * @param {number} axisRatio - Ratio of minor axis to major axis + * @param {number} startAngle - Start angle + * @param {number} endAngle - End angle + */ + drawEllipse( + x1, + y1, + majorAxisX, + majorAxisY, + axisRatio, + startAngle = 0, + endAngle = 2 * Math.PI + ) { + this.activeLayer.addShape( + new Ellipse( + x1, + y1, + majorAxisX, + majorAxisY, + axisRatio, + startAngle, + endAngle + ) + ); + return this; } - } - IFC4X32.IfcCoil = IfcCoil; - class IfcCommunicationsAppliance extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3221913625; + + /** + * @param {number} x1 - x + * @param {number} y1 - y + * @param {number} z1 - z + * @param {number} x2 - x + * @param {number} y2 - y + * @param {number} z2 - z + * @param {number} x3 - x + * @param {number} y3 - y + * @param {number} z3 - z + * @param {number} x4 - x + * @param {number} y4 - y + * @param {number} z4 - z + */ + drawFace(x1, y1, z1, x2, y2, z2, x3, y3, z3, x4, y4, z4) { + this.activeLayer.addShape( + new Face(x1, y1, z1, x2, y2, z2, x3, y3, z3, x4, y4, z4) + ); + return this; } - } - IFC4X32.IfcCommunicationsAppliance = IfcCommunicationsAppliance; - class IfcCompressor extends IfcFlowMovingDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3571504051; + + _ltypeTable() { + const t = new Table("LTYPE"); + const ltypes = Object.values(this.lineTypes); + for (const lt of ltypes) t.add(lt); + return t; } - } - IFC4X32.IfcCompressor = IfcCompressor; - class IfcCondenser extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2272882330; + + _layerTable(manager) { + const t = new Table("LAYER"); + const layers = Object.values(this.layers); + for (const l of layers) t.add(l); + return t; } - } - IFC4X32.IfcCondenser = IfcCondenser; - class IfcControllerType extends IfcDistributionControlElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 578613899; + + /** + * @see https://www.autodesk.com/techpubs/autocad/acadr14/dxf/header_section_al_u05_c.htm + * @see https://www.autodesk.com/techpubs/autocad/acad2000/dxf/header_section_group_codes_dxf_02.htm + * + * @param {string} variable + * @param {array} values Array of "two elements arrays". [ [value1_GroupCode, value1_value], [value2_GroupCode, value2_value] ] + */ + header(variable, values) { + this.headers[variable] = values; + return this; } - } - IFC4X32.IfcControllerType = IfcControllerType; - class IfcConveyorSegment extends IfcFlowSegment { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3460952963; + + /** + * + * @param {string} unit see Drawing.UNITS + */ + setUnits(unit) { + typeof Drawing$1.UNITS[unit] != "undefined" + ? Drawing$1.UNITS[unit] + : Drawing$1.UNITS["Unitless"]; + this.header("INSUNITS", [[70, Drawing$1.UNITS[unit]]]); + return this; + } + + /** Generate additional DXF metadata which are required to successfully open resulted document + * in AutoDesk products. Call this method before serializing the drawing to get the most + * compatible result. + */ + generateAutocadExtras() { + if (!this.headers["ACADVER"]) { + /* AutoCAD 2007 version. */ + this.header("ACADVER", [[1, "AC1021"]]); + } + + if (!this.lineTypes["ByBlock"]) { + this.addLineType("ByBlock", "", []); + } + if (!this.lineTypes["ByLayer"]) { + this.addLineType("ByLayer", "", []); + } + + let vpTable = this.tables["VPORT"]; + if (!vpTable) { + vpTable = this.addTable("VPORT"); + } + let styleTable = this.tables["STYLE"]; + if (!styleTable) { + styleTable = this.addTable("STYLE"); + } + if (!this.tables["VIEW"]) { + this.addTable("VIEW"); + } + if (!this.tables["UCS"]) { + this.addTable("UCS"); + } + let appIdTable = this.tables["APPID"]; + if (!appIdTable) { + appIdTable = this.addTable("APPID"); + } + if (!this.tables["DIMSTYLE"]) { + const t = new DimStyleTable("DIMSTYLE"); + this.tables["DIMSTYLE"] = t; + } + + vpTable.add(new Viewport("*ACTIVE", 1000)); + + /* Non-default text alignment is not applied without this entry. */ + styleTable.add(new TextStyle("standard")); + + appIdTable.add(new AppId("ACAD")); + + this.modelSpace = this.addBlock("*Model_Space"); + this.addBlock("*Paper_Space"); + + const d = new Dictionary(); + this.dictionary.addChildDictionary("ACAD_GROUP", d); } - } - IFC4X32.IfcConveyorSegment = IfcConveyorSegment; - class IfcCooledBeam extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 4136498852; + + _tagsManager() { + const manager = new TagsManager(); + + // Setup + const blockRecordTable = new Table("BLOCK_RECORD"); + const blocks = Object.values(this.blocks); + for (const b of blocks) { + const r = new BlockRecord(b.name); + blockRecordTable.add(r); + } + const ltypeTable = this._ltypeTable(); + const layerTable = this._layerTable(); + + // Header section start. + manager.start("HEADER"); + manager.addHeaderVariable("HANDSEED", [[5, Handle$1.peek()]]); + const variables = Object.entries(this.headers); + for (const v of variables) { + const [name, values] = v; + manager.addHeaderVariable(name, values); + } + manager.end(); + // Header section end. + + // Classes section start. + manager.start("CLASSES"); + // Empty CLASSES section for compatibility + manager.end(); + // Classes section end. + + // Tables section start. + manager.start("TABLES"); + ltypeTable.tags(manager); + layerTable.tags(manager); + const tables = Object.values(this.tables); + for (const t of tables) { + t.tags(manager); + } + blockRecordTable.tags(manager); + manager.end(); + // Tables section end. + + // Blocks section start. + manager.start("BLOCKS"); + for (const b of blocks) { + b.tags(manager); + } + manager.end(); + // Blocks section end. + + // Entities section start. + manager.start("ENTITIES"); + const layers = Object.values(this.layers); + for (const l of layers) { + l.shapesTags(this.modelSpace, manager); + } + manager.end(); + // Entities section end. + + // Objects section start. + manager.start("OBJECTS"); + this.dictionary.tags(manager); + manager.end(); + // Objects section end. + + manager.push(0, "EOF"); + + return manager; } - } - IFC4X32.IfcCooledBeam = IfcCooledBeam; - class IfcCoolingTower extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3640358203; + + toDxfString() { + return this._tagsManager().toDxfString(); } - } - IFC4X32.IfcCoolingTower = IfcCoolingTower; - class IfcDamper extends IfcFlowController { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 4074379575; +}; + +//AutoCAD Color Index (ACI) +//http://sub-atomic.com/~moses/acadcolors.html +Drawing$1.ACI = { + LAYER: 0, + RED: 1, + YELLOW: 2, + GREEN: 3, + CYAN: 4, + BLUE: 5, + MAGENTA: 6, + WHITE: 7, +}; + +Drawing$1.LINE_TYPES = [ + { name: "CONTINUOUS", description: "______", elements: [] }, + { name: "DASHED", description: "_ _ _ ", elements: [5.0, -5.0] }, + { name: "DOTTED", description: ". . . ", elements: [0.0, -5.0] }, +]; + +Drawing$1.LAYERS = [ + { name: "0", colorNumber: Drawing$1.ACI.WHITE, lineTypeName: "CONTINUOUS" }, +]; + +//https://www.autodesk.com/techpubs/autocad/acad2000/dxf/header_section_group_codes_dxf_02.htm +Drawing$1.UNITS = { + Unitless: 0, + Inches: 1, + Feet: 2, + Miles: 3, + Millimeters: 4, + Centimeters: 5, + Meters: 6, + Kilometers: 7, + Microinches: 8, + Mils: 9, + Yards: 10, + Angstroms: 11, + Nanometers: 12, + Microns: 13, + Decimeters: 14, + Decameters: 15, + Hectometers: 16, + Gigameters: 17, + "Astronomical units": 18, + "Light years": 19, + Parsecs: 20, +}; + +var Drawing_1 = Drawing$1; + +var dxfWriter = Drawing_1; + +var Drawing = /*@__PURE__*/getDefaultExportFromCjs(dxfWriter); + +/* eslint-disable */ +const _upVector$1 = new Vector3$1(0, 1, 0); +const EPSILON$1 = 1e-16; +// Modified version of js EdgesGeometry logic to handle silhouette edges +const generateEdges = (function () { + const _v0 = new Vector3$1(); + const _v1 = new Vector3$1(); + const _normal = new Vector3$1(); + const _triangle = new Triangle(); + return function generateEdges(geometry, projectionDir, thresholdAngle = 1) { + const edges = []; + const precisionPoints = 4; + const precision = Math.pow(10, precisionPoints); + const thresholdDot = Math.cos(MathUtils.DEG2RAD * thresholdAngle); + const indexAttr = geometry.getIndex(); + const positionAttr = geometry.getAttribute('position'); + const indexCount = indexAttr ? indexAttr.count : positionAttr.count; + const indexArr = [0, 0, 0]; + const vertKeys = ['a', 'b', 'c']; + const hashes = new Array(3); + const edgeData = {}; + for (let i = 0; i < indexCount; i += 3) { + if (indexAttr) { + indexArr[0] = indexAttr.getX(i); + indexArr[1] = indexAttr.getX(i + 1); + indexArr[2] = indexAttr.getX(i + 2); + } + else { + indexArr[0] = i; + indexArr[1] = i + 1; + indexArr[2] = i + 2; + } + const { a, b, c } = _triangle; + a.fromBufferAttribute(positionAttr, indexArr[0]); + b.fromBufferAttribute(positionAttr, indexArr[1]); + c.fromBufferAttribute(positionAttr, indexArr[2]); + _triangle.getNormal(_normal); + // create hashes for the edge from the vertices + hashes[0] = `${Math.round(a.x * precision)},${Math.round(a.y * precision)},${Math.round(a.z * precision)}`; + hashes[1] = `${Math.round(b.x * precision)},${Math.round(b.y * precision)},${Math.round(b.z * precision)}`; + hashes[2] = `${Math.round(c.x * precision)},${Math.round(c.y * precision)},${Math.round(c.z * precision)}`; + // skip degenerate triangles + if (hashes[0] === hashes[1] || hashes[1] === hashes[2] || hashes[2] === hashes[0]) { + continue; + } + // iterate over every edge + for (let j = 0; j < 3; j++) { + // get the first and next vertex making up the edge + const jNext = (j + 1) % 3; + const vecHash0 = hashes[j]; + const vecHash1 = hashes[jNext]; + const v0 = _triangle[vertKeys[j]]; + const v1 = _triangle[vertKeys[jNext]]; + const hash = `${vecHash0}_${vecHash1}`; + const reverseHash = `${vecHash1}_${vecHash0}`; + if (reverseHash in edgeData && edgeData[reverseHash]) { + // if we found a sibling edge add it into the vertex array if + // it meets the angle threshold and delete the edge from the map. + const otherNormal = edgeData[reverseHash].normal; + const meetsThreshold = _normal.dot(otherNormal) <= thresholdDot; + const projectionThreshold = Math.sign(projectionDir.dot(_normal)) !== Math.sign(projectionDir.dot(otherNormal)); + if (meetsThreshold || projectionThreshold) { + const line = new Line3(); + line.start.copy(v0); + line.end.copy(v1); + edges.push(line); + } + edgeData[reverseHash] = null; + } + else if (!(hash in edgeData)) { + // if we've already got an edge here then skip adding a new one + edgeData[hash] = { + index0: indexArr[j], + index1: indexArr[jNext], + normal: _normal.clone() + }; + } + } + } + // iterate over all remaining, unmatched edges and add them to the vertex array + for (const key in edgeData) { + if (edgeData[key]) { + const { index0, index1 } = edgeData[key]; + _v0.fromBufferAttribute(positionAttr, index0); + _v1.fromBufferAttribute(positionAttr, index1); + const line = new Line3(); + line.start.copy(_v0); + line.end.copy(_v1); + edges.push(line); + } + } + return edges; + }; +})(); +// outputs the overlapping segment of a coplanar line and triangle +const getOverlappingLine$1 = (function () { + const _dir0 = new Vector3$1(); + const _dir1 = new Vector3$1(); + const _tempDir = new Vector3$1(); + const _orthoPlane = new Plane(); + const _line0 = new Line3(); + const _line1 = new Line3(); + const _tempLine = new Line3(); + return function getOverlappingLine(line, triangle, lineTarget = new Line3()) { + if (triangle.needsUpdate) { + triangle.needsUpdate(); + } + // if the triangle is degenerate then return no overlap + if (triangle.getArea() <= EPSILON$1) { + return null; + } + const { points, plane } = triangle; + _line0.copy(line); + _line0.delta(_dir0); + // if the line and triangle are not coplanar then return no overlap + const areCoplanar = plane.normal.dot(_dir0) === 0.0; + if (!areCoplanar) { + return null; + } + // a plane that's orthogonal to the triangle that the line lies on + _dir0.cross(plane.normal).normalize(); + _orthoPlane.setFromNormalAndCoplanarPoint(_dir0, _line0.start); + // find the line of intersection of the triangle along the plane if it exists + let intersectCount = 0; + for (let i = 0; i < 3; i++) { + const p1 = points[i]; + const p2 = points[(i + 1) % 3]; + _tempLine.start.copy(p1); + _tempLine.end.copy(p2); + if (_orthoPlane.distanceToPoint(_tempLine.end) === 0 && + _orthoPlane.distanceToPoint(_tempLine.start) === 0) { + // if the edge lies on the plane then take the line + _line1.copy(_tempLine); + intersectCount = 2; + break; + } + else if (_orthoPlane.intersectLine(_tempLine, intersectCount === 0 ? _line1.start : _line1.end)) { + let p; + if (intersectCount === 0) { + p = _line1.start; + } + else { + p = _line1.end; + } + if (p.distanceTo(p2) === 0.0) { + continue; + } + intersectCount++; + if (intersectCount === 2) { + break; + } + } + } + if (intersectCount === 2) { + // find the intersect line if any + _line0.delta(_dir0).normalize(); + _line1.delta(_dir1).normalize(); + // swap edges so they're facing in the same direction + if (_dir0.dot(_dir1) < 0) { + const tmp = _line1.start; + _line1.start = _line1.end; + _line1.end = tmp; + } + // check if the edges are overlapping + const s1 = _line0.start.dot(_dir0); + const e1 = _line0.end.dot(_dir0); + const s2 = _line1.start.dot(_dir0); + const e2 = _line1.end.dot(_dir0); + const separated1 = e1 < s2; + const separated2 = s1 < e2; + if (s1 !== e2 && s2 !== e1 && separated1 === separated2) { + return null; + } + // assign the target output + _tempDir.subVectors(_line0.start, _line1.start); + if (_tempDir.dot(_dir0) > 0) { + lineTarget.start.copy(_line0.start); + } + else { + lineTarget.start.copy(_line1.start); + } + _tempDir.subVectors(_line0.end, _line1.end); + if (_tempDir.dot(_dir0) < 0) { + lineTarget.end.copy(_line0.end); + } + else { + lineTarget.end.copy(_line1.end); + } + return lineTarget; + } + return null; + }; +})(); +// returns the the y value on the plane at the given point x, z +const getPlaneYAtPoint$1 = (function () { + const testLine = new Line3(); + return function getPlaneYAtPoint(plane, point, target = null) { + testLine.start.copy(point); + testLine.end.copy(point); + testLine.start.y += 1e5; + testLine.end.y -= 1e5; + plane.intersectLine(testLine, target); + }; +})(); +// returns whether the given line is above the given triangle plane +const isLineAbovePlane = (function () { + const _v0 = new Vector3$1(); + const _v1 = new Vector3$1(); + return function isLineAbovePlane(plane, line) { + _v0.lerpVectors(line.start, line.end, 0.5); + getPlaneYAtPoint$1(plane, _v0, _v1); + return _v1.y < _v0.y; + }; +})(); +const isYProjectedLineDegenerate = (function () { + const _tempDir = new Vector3$1(); + const _upVector = new Vector3$1(0, 1, 0); + return function isYProjectedLineDegenerate(line) { + line.delta(_tempDir).normalize(); + return Math.abs(_tempDir.dot(_upVector)) >= 1.0 - EPSILON$1; + }; +})(); +// checks whether the y-projected triangle will be degerate +function isYProjectedTriangleDegenerate$1(tri) { + if (tri.needsUpdate) { + tri.update(); } - } - IFC4X32.IfcDamper = IfcDamper; - class IfcDistributionBoard extends IfcFlowController { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3693000487; + return Math.abs(tri.plane.normal.dot(_upVector$1)) <= EPSILON$1; +} +// Is the provided line exactly an edge on the triangle +function isLineTriangleEdge(tri, line) { + // if this is the same line as on the triangle + const triPoints = tri.points; + let matches = 0; + for (let i = 0; i < 3; i++) { + const { start, end } = line; + const tp = triPoints[i]; + if (start.distanceToSquared(tp) <= EPSILON$1) { + matches++; + } + if (end.distanceToSquared(tp) <= EPSILON$1) { + matches++; + } + } + return matches >= 2; +} +// Extracts the normalized [0, 1] distances along the given line that overlaps with the provided triangle when +// projected along the y axis +const getProjectedOverlaps = (function () { + const _target = new Line3(); + const _tempDir = new Vector3$1(); + const _tempVec0 = new Vector3$1(); + const _tempVec1 = new Vector3$1(); + const _line = new Line3(); + const _tri = new ExtendedTriangle(); + return function getProjectedOverlaps(tri, line, overlapsTarget) { + _line.copy(line); + _tri.copy(tri); + // flatten them to a common plane + _line.start.y = 0; + _line.end.y = 0; + _tri.a.y = 0; + _tri.b.y = 0; + _tri.c.y = 0; + _tri.needsUpdate = true; + _tri.update(); + // if the line is meaningfully long and the we have an overlapping line then extract the + // distances along the original line to return + if (getOverlappingLine$1(_line, _tri, _target)) { + _line.delta(_tempDir); + _tempVec0.subVectors(_target.start, _line.start); + _tempVec1.subVectors(_target.end, _line.start); + let d0 = _tempVec0.length() / _tempDir.length(); + let d1 = _tempVec1.length() / _tempDir.length(); + d0 = Math.min(Math.max(d0, 0), 1); + d1 = Math.min(Math.max(d1, 0), 1); + if (!(Math.abs(d0 - d1) <= EPSILON$1)) { + overlapsTarget.push(new Float32Array([d0, d1])); + } + return true; + } + return false; + }; +})(); +// Trim the provided line to just the section below the given triangle plane +const trimToBeneathTriPlane = (function () { + const _lineDirection = new Vector3$1(); + const _planeHit = new Vector3$1(); + const _centerPoint = new Vector3$1(); + const _planePoint = new Vector3$1(); + return function trimToBeneathTriPlane(tri, line, lineTarget) { + if (tri.needsUpdate) { + tri.update(); + } + lineTarget.copy(line); + // handle vertical triangles + const { plane } = tri; + if (isYProjectedTriangleDegenerate$1(tri)) { + return false; + } + // if the line and plane are coplanar then return that we can't trim + line.delta(_lineDirection); + const areCoplanar = plane.normal.dot(_lineDirection) === 0.0; + if (areCoplanar) { + return false; + } + // if the line does intersect the plane then trim + const doesLineIntersect = plane.intersectLine(line, _planeHit); + if (doesLineIntersect) { + const { start, end } = lineTarget; + // test the line side with the largest segment extending beyond the plane + let testPoint; + let flipped = false; + if (start.distanceTo(_planeHit) > end.distanceTo(_planeHit)) { + testPoint = start; + } + else { + testPoint = end; + flipped = true; + } + // get the center point of the line segment and the plane hit + _centerPoint.lerpVectors(testPoint, _planeHit, 0.5); + getPlaneYAtPoint$1(tri.plane, _centerPoint, _planePoint); + // adjust the appropriate line point align with the plane hit point + if (_planePoint.y < _centerPoint.y) { + if (flipped) + end.copy(_planeHit); + else + start.copy(_planeHit); + } + else if (flipped) + start.copy(_planeHit); + else + end.copy(_planeHit); + return true; + } + return false; + }; +})(); +// Converts the given array of overlaps into line segments +const overlapsToLines = (function () { + const newLine = new Line3(); + return function overlapsToLines(line, overlaps, target = []) { + compressEdgeOverlaps$1(overlaps); + const invOverlaps = [[0, 1]]; + for (let i = 0, l = overlaps.length; i < l; i++) { + const invOverlap = invOverlaps[i]; + const overlap = overlaps[i]; + invOverlap[1] = overlap[0]; + invOverlaps.push(new Float32Array([overlap[1], 1])); + } + for (let i = 0, l = invOverlaps.length; i < l; i++) { + const { start, end } = line; + newLine.start.lerpVectors(start, end, invOverlaps[i][0]); + newLine.end.lerpVectors(start, end, invOverlaps[i][1]); + target.push( + // @ts-ignore + new Float32Array([ + newLine.start.x, + newLine.start.y, + newLine.start.z, + newLine.end.x, + newLine.end.y, + newLine.end.z + ])); + } + return target; + }; +})(); +// converts the given list of edges to a line segments geometry +function edgesToGeometry(edges, y = null) { + const edgeArray = new Float32Array(edges.length * 6); + let c = 0; + for (let i = 0, l = edges.length; i < l; i++) { + const line = edges[i]; + edgeArray[c++] = line[0]; + edgeArray[c++] = y === null ? line[1] : y; + edgeArray[c++] = line[2]; + edgeArray[c++] = line[3]; + edgeArray[c++] = y === null ? line[4] : y; + edgeArray[c++] = line[5]; + } + const edgeGeom = new BufferGeometry(); + const edgeBuffer = new BufferAttribute$1(edgeArray, 3, true); + edgeGeom.setAttribute('position', edgeBuffer); + return edgeGeom; +} +// compresses the given edge overlaps into a minimal set of representative objects +function compressEdgeOverlaps$1(overlaps) { + overlaps.sort((a, b) => { + return a[0] - b[0]; + }); + for (let i = 1; i < overlaps.length; i++) { + const overlap = overlaps[i]; + const prevOverlap = overlaps[i - 1]; + if (overlap[0] <= prevOverlap[1]) { + prevOverlap[1] = Math.max(prevOverlap[1], overlap[1]); + overlaps.splice(i, 1); + i--; + } } - } - IFC4X32.IfcDistributionBoard = IfcDistributionBoard; - class IfcDistributionChamberElement extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1052013943; +} + +// Source: https://github.com/gkjohnson/three-mesh-bvh/blob/master/example/edgeProjection.js +class EdgeProjector { + constructor() { + this.params = { + displayModel: "color", + displayEdges: false, + displayProjection: true, + useBVH: true, + sortEdges: true, + amount: 50, + color: 0x666666, + }; + this._defaultMaterial = new THREE$1.LineBasicMaterial({ + color: this.params.color, + }); + this.projectedEdges = []; } - } - IFC4X32.IfcDistributionChamberElement = IfcDistributionChamberElement; - class IfcDistributionCircuit extends IfcDistributionSystem { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, PredefinedType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.LongName = LongName; - this.PredefinedType = PredefinedType; - this.type = 562808652; + dispose() { + this.disposeGeometry(); + this._defaultMaterial.dispose(); } - } - IFC4X32.IfcDistributionCircuit = IfcDistributionCircuit; - class IfcDistributionControlElement extends IfcDistributionElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1062813311; + disposeGeometry() { + this.projectedEdges.forEach((edge) => { + edge.geometry.dispose(); + if (Array.isArray(edge.material)) + edge.material.forEach((mat) => mat.dispose()); + else + edge.material.dispose(); + }); + this.projectedEdges = []; + } + async project(meshes, height) { + // create projection display mesh + const projection = new THREE$1.LineSegments(new THREE$1.BufferGeometry(), this._defaultMaterial); + const tempMatrix = new THREE$1.Matrix4(); + const v1 = new THREE$1.Vector3(); + const v2 = new THREE$1.Vector3(); + const v3 = new THREE$1.Vector3(); + const vertices = []; + const indices = []; + let nextIndex = 0; + for (const mesh of meshes) { + mesh.updateWorldMatrix(false, false); + const transform = mesh.matrixWorld.clone(); + const pos = mesh.geometry.attributes.position.array; + const index = mesh.geometry.index.array; + for (let i = 0; i < mesh.count; i++) { + const pastIndices = new Map(); + mesh.getMatrixAt(i, tempMatrix); + tempMatrix.multiply(transform); + for (let j = 0; j < index.length; j += 3) { + const index1 = index[j] * 3; + const index2 = index[j + 1] * 3; + const index3 = index[j + 2] * 3; + v1.set(pos[index1], pos[index1 + 1], pos[index1 + 2]); + v2.set(pos[index2], pos[index2 + 1], pos[index2 + 2]); + v3.set(pos[index3], pos[index3 + 1], pos[index3 + 2]); + v1.applyMatrix4(tempMatrix); + v2.applyMatrix4(tempMatrix); + v3.applyMatrix4(tempMatrix); + if (v1.y > height && v2.y > height && v3.y > height) { + continue; + } + if (!pastIndices.has(index1)) { + pastIndices.set(index1, nextIndex++); + vertices.push(v1.x, v1.y, v1.z); + } + if (!pastIndices.has(index2)) { + pastIndices.set(index2, nextIndex++); + vertices.push(v2.x, v2.y, v2.z); + } + if (!pastIndices.has(index3)) { + pastIndices.set(index3, nextIndex++); + vertices.push(v3.x, v3.y, v3.z); + } + const i1 = pastIndices.get(index1); + const i2 = pastIndices.get(index2); + const i3 = pastIndices.get(index3); + if (i1 !== undefined && i2 !== undefined && i3 !== undefined) { + indices.push(i1, i2, i3); + } + } + } + } + const buffer = new Float32Array(vertices); + const mergedGeometry = new THREE$1.BufferGeometry(); + mergedGeometry.setIndex(indices); + const attribute = new THREE$1.BufferAttribute(buffer, 3); + mergedGeometry.setAttribute("position", attribute); + let task = this.updateEdges(this.params, mergedGeometry, projection); + while (task) { + const res = task.next(); + if (res.done) { + task = null; + } + } + this.projectedEdges.push(projection); + mergedGeometry.dispose(); + return projection; + } + *updateEdges(params, mergedGeometry, projection) { + yield; + // generate the bvh for acceleration + const bvh = new MeshBVH(mergedGeometry); + yield; + // generate the candidate edges + const edges = generateEdges(mergedGeometry, new THREE$1.Vector3(0, 1, 0), 50); + if (params.sortEdges) { + edges.sort((a, b) => { + return Math.min(a.start.y, a.end.y) - Math.min(b.start.y, b.end.y); + }); + } + yield; + // trim the candidate edges + const finalEdges = []; + const tempLine = new THREE$1.Line3(); + const tempRay = new THREE$1.Ray(); + const tempVec = new THREE$1.Vector3(); + for (let i = 0, l = edges.length; i < l; i++) { + const line = edges[i]; + if (isYProjectedLineDegenerate(line)) { + continue; + } + const lowestLineY = Math.min(line.start.y, line.end.y); + const overlaps = []; + bvh.shapecast({ + intersectsBounds: (box) => { + if (!params.useBVH) { + return true; + } + // check if the box bounds are above the lowest line point + box.min.y = Math.min(lowestLineY, box.min.y); + tempRay.origin.copy(line.start); + line.delta(tempRay.direction).normalize(); + if (box.containsPoint(tempRay.origin)) { + return true; + } + if (tempRay.intersectBox(box, tempVec)) { + return (tempRay.origin.distanceToSquared(tempVec) < line.distanceSq()); + } + return false; + }, + intersectsTriangle: (tri) => { + // skip the triangle if it is completely below the line + const highestTriangleY = Math.max(tri.a.y, tri.b.y, tri.c.y); + if (highestTriangleY < lowestLineY) { + return false; + } + // if the projected triangle is just a line then don't check it + if (isYProjectedTriangleDegenerate$1(tri)) { + return false; + } + // if this line lies on a triangle edge then don't check it + if (isLineTriangleEdge(tri, line)) { + return false; + } + trimToBeneathTriPlane(tri, line, tempLine); + if (isLineAbovePlane(tri.plane, tempLine)) { + return false; + } + if (tempLine.distance() < 1e-10) { + return false; + } + // compress the edge overlaps so we can easily tell if the whole edge is hidden already + // and exit early + if (getProjectedOverlaps(tri, line, overlaps)) { + compressEdgeOverlaps$1(overlaps); + } + // if we're hiding the edge entirely now then skip further checks + if (overlaps.length !== 0) { + const [d0, d1] = overlaps[overlaps.length - 1]; + return d0 === 0.0 && d1 === 1.0; + } + return false; + }, + }); + overlapsToLines(line, overlaps, finalEdges); + } + projection.geometry.dispose(); + projection.geometry = edgesToGeometry(finalEdges, 0); } - } - IFC4X32.IfcDistributionControlElement = IfcDistributionControlElement; - class IfcDuctFitting extends IfcFlowFitting { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 342316401; +} + +class DXFExporter extends Component { + constructor(components) { + super(components); + this.enabled = true; + this.precission = 0.001; + this._projector = new EdgeProjector(); + this.components.tools.add(DXFExporter.uuid, this); + } + get() { + return this._projector; + } + dispose() { + this._projector.dispose(); + } + async export(name) { + const drawing = new Drawing(); + drawing.setUnits("Meters"); + // Draw projected lines + const fragPlans = await this.components.tools.get(FragmentPlans); + const fragments = await this.components.tools.get(FragmentManager); + const plans = fragPlans.get(); + const plan = plans.find((plan) => plan.name === name); + if (!plan || !plan.plane) { + throw new Error("Plan doesn't exist!"); + } + const meshes = Object.values(fragments.list).map((frag) => frag.mesh); + let height = plan.point.y; + if (plan.offset) { + height += plan.offset; + } + drawing.addLayer("projection", Drawing.ACI.BLUE, "CONTINUOUS"); + drawing.setActiveLayer("projection"); + const projectedLines = await this._projector.project(meshes, height); + this.drawGeometry(projectedLines.geometry, drawing); + projectedLines.geometry.dispose(); + projectedLines.material.dispose(); + // Draw section lines + const edges = plan.plane.edges.get(); + for (const layerName in edges) { + const mesh = edges[layerName].mesh; + const material = mesh.material; + const { r, g, b } = material.color; + let layerColor; + if (r > g && r > b) { + layerColor = Drawing.ACI.RED; + } + else if (g > r && g > b) { + layerColor = Drawing.ACI.GREEN; + } + else if (b > r && b > g) { + layerColor = Drawing.ACI.BLUE; + } + else { + layerColor = Drawing.ACI.WHITE; + } + drawing.addLayer(layerName, layerColor, "CONTINUOUS"); + drawing.setActiveLayer(layerName); + this.drawGeometry(mesh.geometry, drawing); + } + return drawing.toDxfString(); + } + drawGeometry(geometry, drawing) { + const pos = geometry.attributes.position.array; + const range = Math.min(geometry.drawRange.count * 3, pos.length); + for (let i = 0; i < range; i += 6) { + const x1 = pos[i]; + const y1 = pos[i + 2]; + const x2 = pos[i + 3]; + const y2 = pos[i + 5]; + const diffX = Math.abs(x2 - x1); + const diffY = Math.abs(y2 - y1); + const approxDistance = diffX + diffY; + if (approxDistance > this.precission) { + drawing.drawLine(x1, y1, x2, y2); + } + } } - } - IFC4X32.IfcDuctFitting = IfcDuctFitting; - class IfcDuctSegment extends IfcFlowSegment { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3518393246; +} +DXFExporter.uuid = "568f2167-24a3-4519-b552-3b04cc74a6a6"; +ToolComponent.libraryUUIDs.add(DXFExporter.uuid); + +class BufferManager { + constructor(geometry) { + this.geometry = geometry; + /** Buffer increment when geometry size is exceeded, multiple of 3. */ + this.bufferIncrease = 300; + /** + * The maximum capacity of the buffers. If exceeded by the {@link size}, + * the buffers will be rescaled. + */ + this.capacity = 0; } - } - IFC4X32.IfcDuctSegment = IfcDuctSegment; - class IfcDuctSilencer extends IfcFlowTreatmentDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1360408905; + /** The current size of the buffers. */ + get size() { + const firstAttribute = this.attributes[0]; + return firstAttribute.count * 3; } - } - IFC4X32.IfcDuctSilencer = IfcDuctSilencer; - class IfcElectricAppliance extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1904799276; + get attributes() { + return Object.values(this.geometry.attributes); } - } - IFC4X32.IfcElectricAppliance = IfcElectricAppliance; - class IfcElectricDistributionBoard extends IfcFlowController { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 862014818; + addAttribute(attribute) { + this.geometry.setAttribute(attribute.name, attribute); } - } - IFC4X32.IfcElectricDistributionBoard = IfcElectricDistributionBoard; - class IfcElectricFlowStorageDevice extends IfcFlowStorageDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3310460725; + resetAttributes() { + for (const attribute of this.attributes) { + this.createAttribute(attribute.name); + } + this.capacity = 0; } - } - IFC4X32.IfcElectricFlowStorageDevice = IfcElectricFlowStorageDevice; - class IfcElectricFlowTreatmentDevice extends IfcFlowTreatmentDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 24726584; + createAttribute(name) { + if (this.geometry.hasAttribute(name)) { + this.geometry.deleteAttribute(name); + } + const attribute = new THREE$1.BufferAttribute(new Float32Array(0), 3); + attribute.name = name; + this.geometry.setAttribute(name, attribute); } - } - IFC4X32.IfcElectricFlowTreatmentDevice = IfcElectricFlowTreatmentDevice; - class IfcElectricGenerator extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 264262732; + updateCount(size) { + for (const attribute of this.attributes) { + attribute.count = size; + attribute.needsUpdate = true; + } } - } - IFC4X32.IfcElectricGenerator = IfcElectricGenerator; - class IfcElectricMotor extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 402227799; + resizeIfNeeded(increase) { + const newSize = this.size + increase * 3; + const difference = newSize - this.capacity; + if (difference >= 0) { + const increase = Math.max(difference, this.bufferIncrease); + const oldCapacity = this.capacity; + this.capacity += increase; + for (const attribute of this.attributes) { + this.resizeBuffers(attribute, oldCapacity); + } + } } - } - IFC4X32.IfcElectricMotor = IfcElectricMotor; - class IfcElectricTimeControl extends IfcFlowController { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1003880860; + resizeBuffers(attribute, oldCapacity) { + this.geometry.deleteAttribute(attribute.name); + const array = new Float32Array(this.capacity); + const newAttribute = new THREE$1.BufferAttribute(array, 3); + newAttribute.name = attribute.name; + newAttribute.count = attribute.count; + this.geometry.setAttribute(attribute.name, newAttribute); + for (let i = 0; i < oldCapacity; i++) { + const x = attribute.getX(i); + const y = attribute.getY(i); + const z = attribute.getZ(i); + newAttribute.setXYZ(i, x, y, z); + } } - } - IFC4X32.IfcElectricTimeControl = IfcElectricTimeControl; - class IfcFan extends IfcFlowMovingDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3415622556; +} + +/** + * An object to keep track of entities and its position in a geometric buffer. + */ +class IdIndexMap { + constructor() { + this._idGenerator = 0; + this._ids = []; + this._indices = []; } - } - IFC4X32.IfcFan = IfcFan; - class IfcFilter extends IfcFlowTreatmentDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 819412036; + /** + * The number of items stored in this map + */ + get size() { + return this._ids.length; } - } - IFC4X32.IfcFilter = IfcFilter; - class IfcFireSuppressionTerminal extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1426591983; + /** + * The list of IDs inside this map. IDs are generated as increasing natural + * numbers starting from zero. The position of the ID in the array is + * the index of that entity in the geometric buffer. + * For instance, the ids of a map with 5 items would look like this: + * + * - [0, 1, 2, 3, 4] + * + * If the item with ID = 1 is deleted, the last item will replace the deleted + * one to keep the continuity of the geometric buffer, resulting in this: + * + * - [0, 4, 2, 3] + */ + get ids() { + return this._ids; } - } - IFC4X32.IfcFireSuppressionTerminal = IfcFireSuppressionTerminal; - class IfcFlowInstrument extends IfcDistributionControlElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 182646315; + /** + * The list of indices of the geometric buffer. The position of the index in + * the array is the ID of that entity. For instance, the ids of a map with 5 + * items would look like this: + * + * - [0, 1, 2, 3, 4] + * + * If the item with ID = 1 is deleted, the last item will replace the + * deleted one to keep the continuity of the geometric buffer. The deleted + * item will remain as null inside the array: + * + * - [0, null, 2, 3, 1] + */ + get indices() { + return this._indices; } - } - IFC4X32.IfcFlowInstrument = IfcFlowInstrument; - class IfcGeomodel extends IfcGeotechnicalAssembly { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 2680139844; + /** + * Adds a new item to the map, creating and assigning a new ID and a new index + * to it. New items are assumed to be created at the end of the geometric + * buffer. + */ + add() { + this._ids.push(this._idGenerator++); + const index = this._ids.length - 1; + this._indices.push(index); + return index; } - } - IFC4X32.IfcGeomodel = IfcGeomodel; - class IfcGeoslice extends IfcGeotechnicalAssembly { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1971632696; + /** + * Removes the specified item from the map and rearrange the indices to + * keep the continuity of the geometric buffer. + */ + remove(id) { + const index = this.getIndex(id); + if (index === null || index === undefined) + return; + const lastID = this._ids.pop(); + if (lastID === undefined) { + throw new Error(`Error while removing item: ${id}`); + } + this._indices[id] = null; + if (id === lastID) + return; + this._ids[index] = lastID; + this._indices[lastID] = index; } - } - IFC4X32.IfcGeoslice = IfcGeoslice; - class IfcProtectiveDeviceTrippingUnit extends IfcDistributionControlElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2295281155; + /** + * Resets this instance to the initial state. + */ + reset() { + this._idGenerator = 0; + this._ids = []; + this._indices = []; } - } - IFC4X32.IfcProtectiveDeviceTrippingUnit = IfcProtectiveDeviceTrippingUnit; - class IfcSensor extends IfcDistributionControlElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 4086658281; + /** + * Gets the ID for the given index. + * @param index index of the entity whose ID to find out. + */ + getId(index) { + return this._ids[index]; } - } - IFC4X32.IfcSensor = IfcSensor; - class IfcUnitaryControlElement extends IfcDistributionControlElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 630975310; + /** + * Gets the index for the given ID. + * @param id ID of the entity whose index to find out. + */ + getIndex(id) { + return this._indices[id]; } - } - IFC4X32.IfcUnitaryControlElement = IfcUnitaryControlElement; - class IfcActuator extends IfcDistributionControlElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 4288193352; + /** + * Gets the last index of the geometry buffer. + */ + getLastIndex() { + return this.size - 1; } - } - IFC4X32.IfcActuator = IfcActuator; - class IfcAlarm extends IfcDistributionControlElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3087945054; + /** + * Gets the last ID in the geometry buffer. + */ + getLastID() { + return this._ids[this._ids.length - 1]; } - } - IFC4X32.IfcAlarm = IfcAlarm; - class IfcController extends IfcDistributionControlElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 25142252; +} + +class Selector { + constructor() { + this.data = new Set(); } - } - IFC4X32.IfcController = IfcController; -})(IFC4X3 || (IFC4X3 = {})); + /** + * Select or unselects the given faces. + * @param active Whether to select or unselect. + * @param ids List of faces IDs to select or unselect. If not + * defined, all faces will be selected or deselected. + * @param allItems all the existing items. + */ + select(active, ids, allItems) { + const all = new Set(allItems); + const idsToUpdate = []; + for (const id of ids) { + const exists = all.has(id); + if (!exists) + continue; + const isAlreadySelected = this.data.has(id); + if (active) { + if (isAlreadySelected) + continue; + this.data.add(id); + idsToUpdate.push(id); + } + else { + if (!isAlreadySelected) + continue; + this.data.delete(id); + idsToUpdate.push(id); + } + } + return idsToUpdate; + } + getUnselected(ids) { + const notSelectedIDs = []; + for (const id of ids) { + if (!this.data.has(id)) { + notSelectedIDs.push(id); + } + } + return notSelectedIDs; + } +} -// dist/helpers/log.ts -var LogLevel; -(function(LogLevel2) { - LogLevel2[LogLevel2["LOG_LEVEL_DEBUG"] = 0] = "LOG_LEVEL_DEBUG"; - LogLevel2[LogLevel2["LOG_LEVEL_INFO"] = 1] = "LOG_LEVEL_INFO"; - LogLevel2[LogLevel2["LOG_LEVEL_WARN"] = 2] = "LOG_LEVEL_WARN"; - LogLevel2[LogLevel2["LOG_LEVEL_ERROR"] = 3] = "LOG_LEVEL_ERROR"; - LogLevel2[LogLevel2["LOG_LEVEL_OFF"] = 4] = "LOG_LEVEL_OFF"; -})(LogLevel || (LogLevel = {})); -var WebIFCWasm; -if (typeof self !== "undefined" && self.crossOriginIsolated) { - try { - WebIFCWasm = require_web_ifc_mt(); - } catch (ex) { - WebIFCWasm = require_web_ifc(); +var __commonJS = (cb, mod) => function __require() { + return mod || (0, cb[Object.keys(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; +}; + +// dist/web-ifc-mt.js +var require_web_ifc_mt = __commonJS({ + "dist/web-ifc-mt.js"(exports, module) { + var WebIFCWasm2 = (() => { + var _scriptDir = typeof document !== "undefined" && document.currentScript ? document.currentScript.src : void 0; + return function(WebIFCWasm3 = {}) { + function GROWABLE_HEAP_I8() { + if (wasmMemory.buffer != HEAP8.buffer) { + updateMemoryViews(); + } + return HEAP8; + } + function GROWABLE_HEAP_U8() { + if (wasmMemory.buffer != HEAP8.buffer) { + updateMemoryViews(); + } + return HEAPU8; + } + function GROWABLE_HEAP_I16() { + if (wasmMemory.buffer != HEAP8.buffer) { + updateMemoryViews(); + } + return HEAP16; + } + function GROWABLE_HEAP_U16() { + if (wasmMemory.buffer != HEAP8.buffer) { + updateMemoryViews(); + } + return HEAPU16; + } + function GROWABLE_HEAP_I32() { + if (wasmMemory.buffer != HEAP8.buffer) { + updateMemoryViews(); + } + return HEAP32; + } + function GROWABLE_HEAP_U32() { + if (wasmMemory.buffer != HEAP8.buffer) { + updateMemoryViews(); + } + return HEAPU32; + } + function GROWABLE_HEAP_F32() { + if (wasmMemory.buffer != HEAP8.buffer) { + updateMemoryViews(); + } + return HEAPF32; + } + function GROWABLE_HEAP_F64() { + if (wasmMemory.buffer != HEAP8.buffer) { + updateMemoryViews(); + } + return HEAPF64; + } + var Module = typeof WebIFCWasm3 != "undefined" ? WebIFCWasm3 : {}; + var readyPromiseResolve, readyPromiseReject; + Module["ready"] = new Promise(function(resolve, reject) { + readyPromiseResolve = resolve; + readyPromiseReject = reject; + }); + var moduleOverrides = Object.assign({}, Module); + var thisProgram = "./this.program"; + var quit_ = (status, toThrow) => { + throw toThrow; + }; + var ENVIRONMENT_IS_WEB = typeof window == "object"; + var ENVIRONMENT_IS_WORKER = typeof importScripts == "function"; + var ENVIRONMENT_IS_NODE = typeof process == "object" && typeof process.versions == "object" && typeof process.versions.node == "string"; + var ENVIRONMENT_IS_PTHREAD = Module["ENVIRONMENT_IS_PTHREAD"] || false; + var scriptDirectory = ""; + function locateFile(path) { + if (Module["locateFile"]) { + return Module["locateFile"](path, scriptDirectory); + } + return scriptDirectory + path; + } + var read_, readAsync, readBinary; + if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) { + if (ENVIRONMENT_IS_WORKER) { + scriptDirectory = self.location.href; + } else if (typeof document != "undefined" && document.currentScript) { + scriptDirectory = document.currentScript.src; + } + if (_scriptDir) { + scriptDirectory = _scriptDir; + } + if (scriptDirectory.indexOf("blob:") !== 0) { + scriptDirectory = scriptDirectory.substr(0, scriptDirectory.replace(/[?#].*/, "").lastIndexOf("/") + 1); + } else { + scriptDirectory = ""; + } + { + read_ = (url) => { + var xhr = new XMLHttpRequest(); + xhr.open("GET", url, false); + xhr.send(null); + return xhr.responseText; + }; + if (ENVIRONMENT_IS_WORKER) { + readBinary = (url) => { + var xhr = new XMLHttpRequest(); + xhr.open("GET", url, false); + xhr.responseType = "arraybuffer"; + xhr.send(null); + return new Uint8Array(xhr.response); + }; + } + readAsync = (url, onload, onerror) => { + var xhr = new XMLHttpRequest(); + xhr.open("GET", url, true); + xhr.responseType = "arraybuffer"; + xhr.onload = () => { + if (xhr.status == 200 || xhr.status == 0 && xhr.response) { + onload(xhr.response); + return; + } + onerror(); + }; + xhr.onerror = onerror; + xhr.send(null); + }; + } + } + var out = Module["print"] || console.log.bind(console); + var err = Module["printErr"] || console.warn.bind(console); + Object.assign(Module, moduleOverrides); + moduleOverrides = null; + if (Module["arguments"]) + Module["arguments"]; + if (Module["thisProgram"]) + thisProgram = Module["thisProgram"]; + if (Module["quit"]) + quit_ = Module["quit"]; + var wasmBinary; + if (Module["wasmBinary"]) + wasmBinary = Module["wasmBinary"]; + var noExitRuntime = Module["noExitRuntime"] || true; + if (typeof WebAssembly != "object") { + abort("no native wasm support detected"); + } + var wasmMemory; + var wasmModule; + var ABORT = false; + var EXITSTATUS; + function assert(condition, text) { + if (!condition) { + abort(text); + } + } + var UTF8Decoder = typeof TextDecoder != "undefined" ? new TextDecoder("utf8") : void 0; + function UTF8ArrayToString(heapOrArray, idx, maxBytesToRead) { + idx >>>= 0; + var endIdx = idx + maxBytesToRead; + var endPtr = idx; + while (heapOrArray[endPtr] && !(endPtr >= endIdx)) + ++endPtr; + if (endPtr - idx > 16 && heapOrArray.buffer && UTF8Decoder) { + return UTF8Decoder.decode(heapOrArray.buffer instanceof SharedArrayBuffer ? heapOrArray.slice(idx, endPtr) : heapOrArray.subarray(idx, endPtr)); + } + var str = ""; + while (idx < endPtr) { + var u0 = heapOrArray[idx++]; + if (!(u0 & 128)) { + str += String.fromCharCode(u0); + continue; + } + var u1 = heapOrArray[idx++] & 63; + if ((u0 & 224) == 192) { + str += String.fromCharCode((u0 & 31) << 6 | u1); + continue; + } + var u2 = heapOrArray[idx++] & 63; + if ((u0 & 240) == 224) { + u0 = (u0 & 15) << 12 | u1 << 6 | u2; + } else { + u0 = (u0 & 7) << 18 | u1 << 12 | u2 << 6 | heapOrArray[idx++] & 63; + } + if (u0 < 65536) { + str += String.fromCharCode(u0); + } else { + var ch = u0 - 65536; + str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023); + } + } + return str; + } + function UTF8ToString(ptr, maxBytesToRead) { + ptr >>>= 0; + return ptr ? UTF8ArrayToString(GROWABLE_HEAP_U8(), 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, GROWABLE_HEAP_U8(), outPtr, maxBytesToWrite); + } + function lengthBytesUTF8(str) { + var len = 0; + for (var i = 0; i < str.length; ++i) { + var c = str.charCodeAt(i); + if (c <= 127) { + len++; + } else if (c <= 2047) { + len += 2; + } else if (c >= 55296 && c <= 57343) { + len += 4; + ++i; + } else { + len += 3; + } + } + return len; + } + var HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64; + function updateMemoryViews() { + var b = wasmMemory.buffer; + Module["HEAP8"] = HEAP8 = new Int8Array(b); + Module["HEAP16"] = HEAP16 = new Int16Array(b); + Module["HEAP32"] = HEAP32 = new Int32Array(b); + Module["HEAPU8"] = HEAPU8 = new Uint8Array(b); + Module["HEAPU16"] = HEAPU16 = new Uint16Array(b); + Module["HEAPU32"] = HEAPU32 = new Uint32Array(b); + Module["HEAPF32"] = HEAPF32 = new Float32Array(b); + Module["HEAPF64"] = HEAPF64 = new Float64Array(b); + } + var INITIAL_MEMORY = Module["INITIAL_MEMORY"] || 16777216; + assert(INITIAL_MEMORY >= 5242880, "INITIAL_MEMORY should be larger than STACK_SIZE, was " + INITIAL_MEMORY + "! (STACK_SIZE=" + 5242880 + ")"); + if (ENVIRONMENT_IS_PTHREAD) { + wasmMemory = Module["wasmMemory"]; + } else { + if (Module["wasmMemory"]) { + wasmMemory = Module["wasmMemory"]; + } else { + wasmMemory = new WebAssembly.Memory({ "initial": INITIAL_MEMORY / 65536, "maximum": 4294967296 / 65536, "shared": true }); + if (!(wasmMemory.buffer instanceof SharedArrayBuffer)) { + err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag"); + if (ENVIRONMENT_IS_NODE) { + err("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and/or recent version)"); + } + throw Error("bad memory"); + } + } + } + updateMemoryViews(); + INITIAL_MEMORY = wasmMemory.buffer.byteLength; + var wasmTable; + var __ATPRERUN__ = []; + var __ATINIT__ = []; + var __ATPOSTRUN__ = []; + function keepRuntimeAlive() { + return noExitRuntime; + } + 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() { + if (ENVIRONMENT_IS_PTHREAD) + return; + if (!Module["noFSInit"] && !FS.init.initialized) + FS.init(); + FS.ignorePermissions = false; + callRuntimeCallbacks(__ATINIT__); + } + function postRun() { + if (ENVIRONMENT_IS_PTHREAD) + return; + if (Module["postRun"]) { + if (typeof Module["postRun"] == "function") + Module["postRun"] = [Module["postRun"]]; + while (Module["postRun"].length) { + addOnPostRun(Module["postRun"].shift()); + } + } + callRuntimeCallbacks(__ATPOSTRUN__); + } + function addOnPreRun(cb) { + __ATPRERUN__.unshift(cb); + } + function addOnInit(cb) { + __ATINIT__.unshift(cb); + } + function addOnPostRun(cb) { + __ATPOSTRUN__.unshift(cb); + } + var runDependencies = 0; + var 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 (dependenciesFulfilled) { + var callback = dependenciesFulfilled; + dependenciesFulfilled = null; + callback(); + } + } + } + function abort(what) { + if (Module["onAbort"]) { + Module["onAbort"](what); + } + what = "Aborted(" + what + ")"; + err(what); + ABORT = true; + EXITSTATUS = 1; + what += ". Build with -sASSERTIONS for more info."; + var e = new WebAssembly.RuntimeError(what); + readyPromiseReject(e); + throw e; + } + var dataURIPrefix = "data:application/octet-stream;base64,"; + function isDataURI(filename) { + return filename.startsWith(dataURIPrefix); + } + var wasmBinaryFile; + wasmBinaryFile = "web-ifc-mt.wasm"; + if (!isDataURI(wasmBinaryFile)) { + wasmBinaryFile = locateFile(wasmBinaryFile); + } + function getBinary(file) { + try { + if (file == wasmBinaryFile && wasmBinary) { + return new Uint8Array(wasmBinary); + } + if (readBinary) { + return readBinary(file); + } + throw "both async and sync fetching of the wasm failed"; + } catch (err2) { + abort(err2); + } + } + function getBinaryPromise() { + if (!wasmBinary && (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER)) { + if (typeof fetch == "function") { + 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(wasmBinaryFile); + }); + } + } + return Promise.resolve().then(function() { + return getBinary(wasmBinaryFile); + }); + } + function createWasm() { + var info = { "a": wasmImports }; + function receiveInstance(instance, module2) { + var exports3 = instance.exports; + Module["asm"] = exports3; + registerTLSInit(Module["asm"]["ka"]); + wasmTable = Module["asm"]["ia"]; + addOnInit(Module["asm"]["ha"]); + wasmModule = module2; + PThread.loadWasmModuleToAllWorkers(() => removeRunDependency()); + } + addRunDependency(); + function receiveInstantiationResult(result) { + receiveInstance(result["instance"], result["module"]); + } + function instantiateArrayBuffer(receiver) { + return getBinaryPromise().then(function(binary) { + return WebAssembly.instantiate(binary, info); + }).then(function(instance) { + return instance; + }).then(receiver, function(reason) { + err("failed to asynchronously prepare wasm: " + reason); + abort(reason); + }); + } + function instantiateAsync() { + if (!wasmBinary && typeof WebAssembly.instantiateStreaming == "function" && !isDataURI(wasmBinaryFile) && typeof fetch == "function") { + return fetch(wasmBinaryFile, { credentials: "same-origin" }).then(function(response) { + var result = WebAssembly.instantiateStreaming(response, info); + return result.then(receiveInstantiationResult, function(reason) { + err("wasm streaming compile failed: " + reason); + err("falling back to ArrayBuffer instantiation"); + return instantiateArrayBuffer(receiveInstantiationResult); + }); + }); + } else { + return instantiateArrayBuffer(receiveInstantiationResult); + } + } + if (Module["instantiateWasm"]) { + try { + var exports2 = Module["instantiateWasm"](info, receiveInstance); + return exports2; + } catch (e) { + err("Module.instantiateWasm callback failed with error: " + e); + readyPromiseReject(e); + } + } + instantiateAsync().catch(readyPromiseReject); + return {}; + } + var tempDouble; + var tempI64; + function ExitStatus(status) { + this.name = "ExitStatus"; + this.message = "Program terminated with exit(" + status + ")"; + this.status = status; + } + function killThread(pthread_ptr) { + var worker = PThread.pthreads[pthread_ptr]; + delete PThread.pthreads[pthread_ptr]; + worker.terminate(); + __emscripten_thread_free_data(pthread_ptr); + PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker), 1); + worker.pthread_ptr = 0; + } + function cancelThread(pthread_ptr) { + var worker = PThread.pthreads[pthread_ptr]; + worker.postMessage({ "cmd": "cancel" }); + } + function cleanupThread(pthread_ptr) { + var worker = PThread.pthreads[pthread_ptr]; + assert(worker); + PThread.returnWorkerToPool(worker); + } + function spawnThread(threadParams) { + var worker = PThread.getNewWorker(); + if (!worker) { + return 6; + } + PThread.runningWorkers.push(worker); + PThread.pthreads[threadParams.pthread_ptr] = worker; + worker.pthread_ptr = threadParams.pthread_ptr; + var msg = { "cmd": "run", "start_routine": threadParams.startRoutine, "arg": threadParams.arg, "pthread_ptr": threadParams.pthread_ptr }; + worker.postMessage(msg, threadParams.transferList); + return 0; + } + var PATH = { isAbs: (path) => path.charAt(0) === "/", splitPath: (filename) => { + var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/; + return splitPathRe.exec(filename).slice(1); + }, normalizeArray: (parts, allowAboveRoot) => { + var up = 0; + for (var i = parts.length - 1; i >= 0; i--) { + var last = parts[i]; + if (last === ".") { + parts.splice(i, 1); + } else if (last === "..") { + parts.splice(i, 1); + up++; + } else if (up) { + parts.splice(i, 1); + up--; + } + } + if (allowAboveRoot) { + for (; up; up--) { + parts.unshift(".."); + } + } + return parts; + }, normalize: (path) => { + var isAbsolute = PATH.isAbs(path), trailingSlash = path.substr(-1) === "/"; + path = PATH.normalizeArray(path.split("/").filter((p) => !!p), !isAbsolute).join("/"); + if (!path && !isAbsolute) { + path = "."; + } + if (path && trailingSlash) { + path += "/"; + } + return (isAbsolute ? "/" : "") + path; + }, dirname: (path) => { + var result = PATH.splitPath(path), root = result[0], dir = result[1]; + if (!root && !dir) { + return "."; + } + if (dir) { + dir = dir.substr(0, dir.length - 1); + } + return root + dir; + }, basename: (path) => { + if (path === "/") + return "/"; + path = PATH.normalize(path); + path = path.replace(/\/$/, ""); + var lastSlash = path.lastIndexOf("/"); + if (lastSlash === -1) + return path; + return path.substr(lastSlash + 1); + }, join: function() { + var paths = Array.prototype.slice.call(arguments); + return PATH.normalize(paths.join("/")); + }, join2: (l, r) => { + return PATH.normalize(l + "/" + r); + } }; + function getRandomDevice() { + if (typeof crypto == "object" && typeof crypto["getRandomValues"] == "function") { + var randomBuffer = new Uint8Array(1); + return () => { + crypto.getRandomValues(randomBuffer); + return randomBuffer[0]; + }; + } else + return () => abort("randomDevice"); + } + var PATH_FS = { resolve: function() { + var resolvedPath = "", resolvedAbsolute = false; + for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) { + var path = i >= 0 ? arguments[i] : FS.cwd(); + if (typeof path != "string") { + throw new TypeError("Arguments to path.resolve must be strings"); + } else if (!path) { + return ""; + } + resolvedPath = path + "/" + resolvedPath; + resolvedAbsolute = PATH.isAbs(path); + } + resolvedPath = PATH.normalizeArray(resolvedPath.split("/").filter((p) => !!p), !resolvedAbsolute).join("/"); + return (resolvedAbsolute ? "/" : "") + resolvedPath || "."; + }, relative: (from, to) => { + from = PATH_FS.resolve(from).substr(1); + to = PATH_FS.resolve(to).substr(1); + function trim(arr) { + var start = 0; + for (; start < arr.length; start++) { + if (arr[start] !== "") + break; + } + var end = arr.length - 1; + for (; end >= 0; end--) { + if (arr[end] !== "") + break; + } + if (start > end) + return []; + return arr.slice(start, end - start + 1); + } + var fromParts = trim(from.split("/")); + var toParts = trim(to.split("/")); + var length = Math.min(fromParts.length, toParts.length); + var samePartsLength = length; + for (var i = 0; i < length; i++) { + if (fromParts[i] !== toParts[i]) { + samePartsLength = i; + break; + } + } + var outputParts = []; + for (var i = samePartsLength; i < fromParts.length; i++) { + outputParts.push(".."); + } + outputParts = outputParts.concat(toParts.slice(samePartsLength)); + return outputParts.join("/"); + } }; + function intArrayFromString(stringy, dontAddNull, length) { + var len = length > 0 ? length : lengthBytesUTF8(stringy) + 1; + var u8array = new Array(len); + var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length); + if (dontAddNull) + u8array.length = numBytesWritten; + return u8array; + } + var TTY = { ttys: [], init: function() { + }, shutdown: function() { + }, register: function(dev, ops) { + TTY.ttys[dev] = { input: [], output: [], ops }; + FS.registerDevice(dev, TTY.stream_ops); + }, stream_ops: { open: function(stream) { + var tty = TTY.ttys[stream.node.rdev]; + if (!tty) { + throw new FS.ErrnoError(43); + } + stream.tty = tty; + stream.seekable = false; + }, close: function(stream) { + stream.tty.ops.fsync(stream.tty); + }, fsync: function(stream) { + stream.tty.ops.fsync(stream.tty); + }, read: function(stream, buffer, offset, length, pos) { + if (!stream.tty || !stream.tty.ops.get_char) { + throw new FS.ErrnoError(60); + } + var bytesRead = 0; + for (var i = 0; i < length; i++) { + var result; + try { + result = stream.tty.ops.get_char(stream.tty); + } catch (e) { + throw new FS.ErrnoError(29); + } + if (result === void 0 && bytesRead === 0) { + throw new FS.ErrnoError(6); + } + if (result === null || result === void 0) + break; + bytesRead++; + buffer[offset + i] = result; + } + if (bytesRead) { + stream.node.timestamp = Date.now(); + } + return bytesRead; + }, write: function(stream, buffer, offset, length, pos) { + if (!stream.tty || !stream.tty.ops.put_char) { + throw new FS.ErrnoError(60); + } + try { + for (var i = 0; i < length; i++) { + stream.tty.ops.put_char(stream.tty, buffer[offset + i]); + } + } catch (e) { + throw new FS.ErrnoError(29); + } + if (length) { + stream.node.timestamp = Date.now(); + } + return i; + } }, default_tty_ops: { get_char: function(tty) { + if (!tty.input.length) { + var result = null; + if (typeof window != "undefined" && typeof window.prompt == "function") { + result = window.prompt("Input: "); + if (result !== null) { + result += "\n"; + } + } else if (typeof readline == "function") { + result = readline(); + if (result !== null) { + result += "\n"; + } + } + if (!result) { + return null; + } + tty.input = intArrayFromString(result, true); + } + return tty.input.shift(); + }, put_char: function(tty, val) { + if (val === null || val === 10) { + out(UTF8ArrayToString(tty.output, 0)); + tty.output = []; + } else { + if (val != 0) + tty.output.push(val); + } + }, fsync: function(tty) { + if (tty.output && tty.output.length > 0) { + out(UTF8ArrayToString(tty.output, 0)); + tty.output = []; + } + } }, default_tty1_ops: { put_char: function(tty, val) { + if (val === null || val === 10) { + err(UTF8ArrayToString(tty.output, 0)); + tty.output = []; + } else { + if (val != 0) + tty.output.push(val); + } + }, fsync: function(tty) { + if (tty.output && tty.output.length > 0) { + err(UTF8ArrayToString(tty.output, 0)); + tty.output = []; + } + } } }; + function mmapAlloc(size) { + abort(); + } + var MEMFS = { ops_table: null, mount: function(mount) { + return MEMFS.createNode(null, "/", 16384 | 511, 0); + }, createNode: function(parent, name, mode, dev) { + if (FS.isBlkdev(mode) || FS.isFIFO(mode)) { + throw new FS.ErrnoError(63); + } + if (!MEMFS.ops_table) { + MEMFS.ops_table = { dir: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr, lookup: MEMFS.node_ops.lookup, mknod: MEMFS.node_ops.mknod, rename: MEMFS.node_ops.rename, unlink: MEMFS.node_ops.unlink, rmdir: MEMFS.node_ops.rmdir, readdir: MEMFS.node_ops.readdir, symlink: MEMFS.node_ops.symlink }, stream: { llseek: MEMFS.stream_ops.llseek } }, file: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr }, stream: { llseek: MEMFS.stream_ops.llseek, read: MEMFS.stream_ops.read, write: MEMFS.stream_ops.write, allocate: MEMFS.stream_ops.allocate, mmap: MEMFS.stream_ops.mmap, msync: MEMFS.stream_ops.msync } }, link: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr, readlink: MEMFS.node_ops.readlink }, stream: {} }, chrdev: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr }, stream: FS.chrdev_stream_ops } }; + } + var node = FS.createNode(parent, name, mode, dev); + if (FS.isDir(node.mode)) { + node.node_ops = MEMFS.ops_table.dir.node; + node.stream_ops = MEMFS.ops_table.dir.stream; + node.contents = {}; + } else if (FS.isFile(node.mode)) { + node.node_ops = MEMFS.ops_table.file.node; + node.stream_ops = MEMFS.ops_table.file.stream; + node.usedBytes = 0; + node.contents = null; + } else if (FS.isLink(node.mode)) { + node.node_ops = MEMFS.ops_table.link.node; + node.stream_ops = MEMFS.ops_table.link.stream; + } else if (FS.isChrdev(node.mode)) { + node.node_ops = MEMFS.ops_table.chrdev.node; + node.stream_ops = MEMFS.ops_table.chrdev.stream; + } + node.timestamp = Date.now(); + if (parent) { + parent.contents[name] = node; + parent.timestamp = node.timestamp; + } + return node; + }, getFileDataAsTypedArray: function(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(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); + }, resizeFileStorage: function(node, newSize) { + newSize >>>= 0; + if (node.usedBytes == newSize) + return; + if (newSize == 0) { + node.contents = null; + node.usedBytes = 0; + } else { + var oldContents = node.contents; + node.contents = new Uint8Array(newSize); + if (oldContents) { + node.contents.set(oldContents.subarray(0, Math.min(newSize, node.usedBytes))); + } + node.usedBytes = newSize; + } + }, node_ops: { getattr: function(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(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(parent, name) { + throw FS.genericErrors[44]; + }, mknod: function(parent, name, mode, dev) { + return MEMFS.createNode(parent, name, mode, dev); + }, rename: function(old_node, new_dir, new_name) { + if (FS.isDir(old_node.mode)) { + var new_node; + try { + new_node = FS.lookupNode(new_dir, new_name); + } catch (e) { + } + if (new_node) { + for (var i in new_node.contents) { + throw new FS.ErrnoError(55); + } + } + } + delete old_node.parent.contents[old_node.name]; + old_node.parent.timestamp = Date.now(); + old_node.name = new_name; + new_dir.contents[new_name] = old_node; + new_dir.timestamp = old_node.parent.timestamp; + old_node.parent = new_dir; + }, unlink: function(parent, name) { + delete parent.contents[name]; + parent.timestamp = Date.now(); + }, rmdir: function(parent, name) { + var node = FS.lookupNode(parent, name); + for (var i in node.contents) { + throw new FS.ErrnoError(55); + } + delete parent.contents[name]; + parent.timestamp = Date.now(); + }, readdir: function(node) { + var entries = [".", ".."]; + for (var key in node.contents) { + if (!node.contents.hasOwnProperty(key)) { + continue; + } + entries.push(key); + } + return entries; + }, symlink: function(parent, newname, oldpath) { + var node = MEMFS.createNode(parent, newname, 511 | 40960, 0); + node.link = oldpath; + return node; + }, readlink: function(node) { + if (!FS.isLink(node.mode)) { + throw new FS.ErrnoError(28); + } + return node.link; + } }, stream_ops: { read: function(stream, buffer, offset, length, position) { + var contents = stream.node.contents; + if (position >= stream.node.usedBytes) + return 0; + var size = Math.min(stream.node.usedBytes - position, length); + if (size > 8 && contents.subarray) { + buffer.set(contents.subarray(position, position + size), offset); + } else { + for (var i = 0; i < size; i++) + buffer[offset + i] = contents[position + i]; + } + return size; + }, write: function(stream, buffer, offset, length, position, canOwn) { + if (buffer.buffer === GROWABLE_HEAP_I8().buffer) { + canOwn = false; + } + if (!length) + return 0; + var node = stream.node; + node.timestamp = Date.now(); + if (buffer.subarray && (!node.contents || node.contents.subarray)) { + if (canOwn) { + node.contents = buffer.subarray(offset, offset + length); + node.usedBytes = length; + return length; + } else if (node.usedBytes === 0 && position === 0) { + node.contents = buffer.slice(offset, offset + length); + node.usedBytes = length; + return length; + } else if (position + length <= node.usedBytes) { + node.contents.set(buffer.subarray(offset, offset + length), position); + return length; + } + } + MEMFS.expandFileStorage(node, position + length); + if (node.contents.subarray && buffer.subarray) { + node.contents.set(buffer.subarray(offset, offset + length), position); + } else { + for (var i = 0; i < length; i++) { + node.contents[position + i] = buffer[offset + i]; + } + } + node.usedBytes = Math.max(node.usedBytes, position + length); + return length; + }, llseek: function(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(stream, offset, length) { + MEMFS.expandFileStorage(stream.node, offset + length); + stream.node.usedBytes = Math.max(stream.node.usedBytes, offset + length); + }, mmap: function(stream, length, position, prot, flags) { + if (!FS.isFile(stream.node.mode)) { + throw new FS.ErrnoError(43); + } + var ptr; + var allocated; + var contents = stream.node.contents; + if (!(flags & 2) && contents.buffer === GROWABLE_HEAP_I8().buffer) { + allocated = false; + ptr = contents.byteOffset; + } else { + if (position > 0 || position + length < contents.length) { + if (contents.subarray) { + contents = contents.subarray(position, position + length); + } else { + contents = Array.prototype.slice.call(contents, position, position + length); + } + } + allocated = true; + ptr = mmapAlloc(); + if (!ptr) { + throw new FS.ErrnoError(48); + } + ptr >>>= 0; + GROWABLE_HEAP_I8().set(contents, ptr >>> 0); + } + return { ptr, allocated }; + }, msync: function(stream, buffer, offset, length, mmapFlags) { + MEMFS.stream_ops.write(stream, buffer, 0, length, offset, false); + return 0; + } } }; + function asyncLoad(url, onload, onerror, noRunDep) { + var dep = !noRunDep ? getUniqueRunDependency("al " + url) : ""; + readAsync(url, (arrayBuffer) => { + assert(arrayBuffer, 'Loading data file "' + url + '" failed (no arrayBuffer).'); + onload(new Uint8Array(arrayBuffer)); + if (dep) + removeRunDependency(); + }, (event) => { + if (onerror) { + onerror(); + } else { + throw 'Loading data file "' + url + '" failed.'; + } + }); + if (dep) + addRunDependency(); + } + var FS = { root: null, mounts: [], devices: {}, streams: [], nextInode: 1, nameTable: null, currentPath: "/", initialized: false, ignorePermissions: true, ErrnoError: null, genericErrors: {}, filesystems: null, syncFSRequests: 0, lookupPath: (path, opts = {}) => { + path = PATH_FS.resolve(path); + if (!path) + return { path: "", node: null }; + var defaults = { follow_mount: true, recurse_count: 0 }; + opts = Object.assign(defaults, opts); + if (opts.recurse_count > 8) { + throw new FS.ErrnoError(32); + } + var parts = path.split("/").filter((p) => !!p); + var current = FS.root; + var current_path = "/"; + for (var i = 0; i < parts.length; i++) { + var islast = i === parts.length - 1; + if (islast && opts.parent) { + break; + } + current = FS.lookupNode(current, parts[i]); + current_path = PATH.join2(current_path, parts[i]); + if (FS.isMountpoint(current)) { + if (!islast || islast && opts.follow_mount) { + current = current.mounted.root; + } + } + if (!islast || opts.follow) { + var count = 0; + while (FS.isLink(current.mode)) { + var link = FS.readlink(current_path); + current_path = PATH_FS.resolve(PATH.dirname(current_path), link); + var lookup = FS.lookupPath(current_path, { recurse_count: opts.recurse_count + 1 }); + current = lookup.node; + if (count++ > 40) { + throw new FS.ErrnoError(32); + } + } + } + } + return { path: current_path, node: current }; + }, getPath: (node) => { + var path; + while (true) { + if (FS.isRoot(node)) { + var mount = node.mount.mountpoint; + if (!path) + return mount; + return mount[mount.length - 1] !== "/" ? mount + "/" + path : mount + path; + } + path = path ? node.name + "/" + path : node.name; + node = node.parent; + } + }, hashName: (parentid, name) => { + var hash = 0; + for (var i = 0; i < name.length; i++) { + hash = (hash << 5) - hash + name.charCodeAt(i) | 0; + } + return (parentid + hash >>> 0) % FS.nameTable.length; + }, hashAddNode: (node) => { + var hash = FS.hashName(node.parent.id, node.name); + node.name_next = FS.nameTable[hash]; + FS.nameTable[hash] = node; + }, hashRemoveNode: (node) => { + var hash = FS.hashName(node.parent.id, node.name); + if (FS.nameTable[hash] === node) { + FS.nameTable[hash] = node.name_next; + } else { + var current = FS.nameTable[hash]; + while (current) { + if (current.name_next === node) { + current.name_next = node.name_next; + break; + } + current = current.name_next; + } + } + }, lookupNode: (parent, name) => { + var errCode = FS.mayLookup(parent); + if (errCode) { + throw new FS.ErrnoError(errCode, parent); + } + var hash = FS.hashName(parent.id, name); + for (var node = FS.nameTable[hash]; node; node = node.name_next) { + var nodeName = node.name; + if (node.parent.id === parent.id && nodeName === name) { + return node; + } + } + return FS.lookup(parent, name); + }, createNode: (parent, name, mode, rdev) => { + var node = new FS.FSNode(parent, name, mode, rdev); + FS.hashAddNode(node); + return node; + }, destroyNode: (node) => { + FS.hashRemoveNode(node); + }, isRoot: (node) => { + return node === node.parent; + }, isMountpoint: (node) => { + return !!node.mounted; + }, isFile: (mode) => { + return (mode & 61440) === 32768; + }, isDir: (mode) => { + return (mode & 61440) === 16384; + }, isLink: (mode) => { + return (mode & 61440) === 40960; + }, isChrdev: (mode) => { + return (mode & 61440) === 8192; + }, isBlkdev: (mode) => { + return (mode & 61440) === 24576; + }, isFIFO: (mode) => { + return (mode & 61440) === 4096; + }, isSocket: (mode) => { + return (mode & 49152) === 49152; + }, flagModes: { "r": 0, "r+": 2, "w": 577, "w+": 578, "a": 1089, "a+": 1090 }, modeStringToFlags: (str) => { + var flags = FS.flagModes[str]; + if (typeof flags == "undefined") { + throw new Error("Unknown file open mode: " + str); + } + return flags; + }, flagsToPermissionString: (flag) => { + var perms = ["r", "w", "rw"][flag & 3]; + if (flag & 512) { + perms += "w"; + } + return perms; + }, nodePermissions: (node, perms) => { + if (FS.ignorePermissions) { + return 0; + } + if (perms.includes("r") && !(node.mode & 292)) { + return 2; + } else if (perms.includes("w") && !(node.mode & 146)) { + return 2; + } else if (perms.includes("x") && !(node.mode & 73)) { + return 2; + } + return 0; + }, mayLookup: (dir) => { + var errCode = FS.nodePermissions(dir, "x"); + if (errCode) + return errCode; + if (!dir.node_ops.lookup) + return 2; + return 0; + }, mayCreate: (dir, name) => { + try { + var node = FS.lookupNode(dir, name); + return 20; + } catch (e) { + } + return FS.nodePermissions(dir, "wx"); + }, mayDelete: (dir, name, isdir) => { + var node; + try { + node = FS.lookupNode(dir, name); + } catch (e) { + return e.errno; + } + var errCode = FS.nodePermissions(dir, "wx"); + if (errCode) { + return errCode; + } + if (isdir) { + if (!FS.isDir(node.mode)) { + return 54; + } + if (FS.isRoot(node) || FS.getPath(node) === FS.cwd()) { + return 10; + } + } else { + if (FS.isDir(node.mode)) { + return 31; + } + } + return 0; + }, mayOpen: (node, flags) => { + if (!node) { + return 44; + } + if (FS.isLink(node.mode)) { + return 32; + } else if (FS.isDir(node.mode)) { + if (FS.flagsToPermissionString(flags) !== "r" || flags & 512) { + return 31; + } + } + return FS.nodePermissions(node, FS.flagsToPermissionString(flags)); + }, MAX_OPEN_FDS: 4096, nextfd: (fd_start = 0, 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: (fd) => FS.streams[fd], createStream: (stream, fd_start, fd_end) => { + if (!FS.FSStream) { + FS.FSStream = function() { + this.shared = {}; + }; + FS.FSStream.prototype = {}; + Object.defineProperties(FS.FSStream.prototype, { object: { get: function() { + return this.node; + }, set: function(val) { + this.node = val; + } }, isRead: { get: function() { + return (this.flags & 2097155) !== 1; + } }, isWrite: { get: function() { + return (this.flags & 2097155) !== 0; + } }, isAppend: { get: function() { + return this.flags & 1024; + } }, flags: { get: function() { + return this.shared.flags; + }, set: function(val) { + this.shared.flags = val; + } }, position: { get: function() { + return this.shared.position; + }, set: function(val) { + this.shared.position = val; + } } }); + } + stream = Object.assign(new FS.FSStream(), stream); + var fd = FS.nextfd(fd_start, fd_end); + stream.fd = fd; + FS.streams[fd] = stream; + return stream; + }, closeStream: (fd) => { + FS.streams[fd] = null; + }, chrdev_stream_ops: { open: (stream) => { + var device = FS.getDevice(stream.node.rdev); + stream.stream_ops = device.stream_ops; + if (stream.stream_ops.open) { + stream.stream_ops.open(stream); + } + }, llseek: () => { + throw new FS.ErrnoError(70); + } }, major: (dev) => dev >> 8, minor: (dev) => dev & 255, makedev: (ma, mi) => ma << 8 | mi, registerDevice: (dev, ops) => { + FS.devices[dev] = { stream_ops: ops }; + }, getDevice: (dev) => FS.devices[dev], getMounts: (mount) => { + var mounts = []; + var check = [mount]; + while (check.length) { + var m = check.pop(); + mounts.push(m); + check.push.apply(check, m.mounts); + } + return mounts; + }, syncfs: (populate, callback) => { + if (typeof populate == "function") { + callback = populate; + populate = false; + } + FS.syncFSRequests++; + if (FS.syncFSRequests > 1) { + err("warning: " + FS.syncFSRequests + " FS.syncfs operations in flight at once, probably just doing extra work"); + } + var mounts = FS.getMounts(FS.root.mount); + var completed = 0; + function doCallback(errCode) { + FS.syncFSRequests--; + return callback(errCode); + } + function done(errCode) { + if (errCode) { + if (!done.errored) { + done.errored = true; + return doCallback(errCode); + } + return; + } + if (++completed >= mounts.length) { + doCallback(null); + } + } + mounts.forEach((mount) => { + if (!mount.type.syncfs) { + return done(null); + } + mount.type.syncfs(mount, populate, done); + }); + }, mount: (type, opts, mountpoint) => { + var root = mountpoint === "/"; + var pseudo = !mountpoint; + var node; + if (root && FS.root) { + throw new FS.ErrnoError(10); + } else if (!root && !pseudo) { + var lookup = FS.lookupPath(mountpoint, { follow_mount: false }); + mountpoint = lookup.path; + node = lookup.node; + if (FS.isMountpoint(node)) { + throw new FS.ErrnoError(10); + } + if (!FS.isDir(node.mode)) { + throw new FS.ErrnoError(54); + } + } + var mount = { type, opts, mountpoint, mounts: [] }; + var mountRoot = type.mount(mount); + mountRoot.mount = mount; + mount.root = mountRoot; + if (root) { + FS.root = mountRoot; + } else if (node) { + node.mounted = mount; + if (node.mount) { + node.mount.mounts.push(mount); + } + } + return mountRoot; + }, unmount: (mountpoint) => { + var lookup = FS.lookupPath(mountpoint, { follow_mount: false }); + if (!FS.isMountpoint(lookup.node)) { + throw new FS.ErrnoError(28); + } + var node = lookup.node; + var mount = node.mounted; + var mounts = FS.getMounts(mount); + Object.keys(FS.nameTable).forEach((hash) => { + var current = FS.nameTable[hash]; + while (current) { + var next = current.name_next; + if (mounts.includes(current.mount)) { + FS.destroyNode(current); + } + current = next; + } + }); + node.mounted = null; + var idx = node.mount.mounts.indexOf(mount); + node.mount.mounts.splice(idx, 1); + }, lookup: (parent, name) => { + return parent.node_ops.lookup(parent, name); + }, mknod: (path, mode, dev) => { + var lookup = FS.lookupPath(path, { parent: true }); + var parent = lookup.node; + var name = PATH.basename(path); + if (!name || name === "." || name === "..") { + throw new FS.ErrnoError(28); + } + var errCode = FS.mayCreate(parent, name); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + if (!parent.node_ops.mknod) { + throw new FS.ErrnoError(63); + } + return parent.node_ops.mknod(parent, name, mode, dev); + }, create: (path, mode) => { + mode = mode !== void 0 ? mode : 438; + mode &= 4095; + mode |= 32768; + return FS.mknod(path, mode, 0); + }, mkdir: (path, mode) => { + mode = mode !== void 0 ? mode : 511; + mode &= 511 | 512; + mode |= 16384; + return FS.mknod(path, mode, 0); + }, mkdirTree: (path, mode) => { + var dirs = path.split("/"); + var d = ""; + for (var i = 0; i < dirs.length; ++i) { + if (!dirs[i]) + continue; + d += "/" + dirs[i]; + try { + FS.mkdir(d, mode); + } catch (e) { + if (e.errno != 20) + throw e; + } + } + }, mkdev: (path, mode, dev) => { + if (typeof dev == "undefined") { + dev = mode; + mode = 438; + } + mode |= 8192; + return FS.mknod(path, mode, dev); + }, symlink: (oldpath, newpath) => { + if (!PATH_FS.resolve(oldpath)) { + throw new FS.ErrnoError(44); + } + var lookup = FS.lookupPath(newpath, { parent: true }); + var parent = lookup.node; + if (!parent) { + throw new FS.ErrnoError(44); + } + var newname = PATH.basename(newpath); + var errCode = FS.mayCreate(parent, newname); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + if (!parent.node_ops.symlink) { + throw new FS.ErrnoError(63); + } + return parent.node_ops.symlink(parent, newname, oldpath); + }, rename: (old_path, new_path) => { + var old_dirname = PATH.dirname(old_path); + var new_dirname = PATH.dirname(new_path); + var old_name = PATH.basename(old_path); + var new_name = PATH.basename(new_path); + var lookup, old_dir, new_dir; + lookup = FS.lookupPath(old_path, { parent: true }); + old_dir = lookup.node; + lookup = FS.lookupPath(new_path, { parent: true }); + new_dir = lookup.node; + if (!old_dir || !new_dir) + throw new FS.ErrnoError(44); + if (old_dir.mount !== new_dir.mount) { + throw new FS.ErrnoError(75); + } + var old_node = FS.lookupNode(old_dir, old_name); + var relative = PATH_FS.relative(old_path, new_dirname); + if (relative.charAt(0) !== ".") { + throw new FS.ErrnoError(28); + } + relative = PATH_FS.relative(new_path, old_dirname); + if (relative.charAt(0) !== ".") { + throw new FS.ErrnoError(55); + } + var new_node; + try { + new_node = FS.lookupNode(new_dir, new_name); + } catch (e) { + } + if (old_node === new_node) { + return; + } + var isdir = FS.isDir(old_node.mode); + var errCode = FS.mayDelete(old_dir, old_name, isdir); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + errCode = new_node ? FS.mayDelete(new_dir, new_name, isdir) : FS.mayCreate(new_dir, new_name); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + if (!old_dir.node_ops.rename) { + throw new FS.ErrnoError(63); + } + if (FS.isMountpoint(old_node) || new_node && FS.isMountpoint(new_node)) { + throw new FS.ErrnoError(10); + } + if (new_dir !== old_dir) { + errCode = FS.nodePermissions(old_dir, "w"); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + } + FS.hashRemoveNode(old_node); + try { + old_dir.node_ops.rename(old_node, new_dir, new_name); + } catch (e) { + throw e; + } finally { + FS.hashAddNode(old_node); + } + }, rmdir: (path) => { + var lookup = FS.lookupPath(path, { parent: true }); + var parent = lookup.node; + var name = PATH.basename(path); + var node = FS.lookupNode(parent, name); + var errCode = FS.mayDelete(parent, name, true); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + if (!parent.node_ops.rmdir) { + throw new FS.ErrnoError(63); + } + if (FS.isMountpoint(node)) { + throw new FS.ErrnoError(10); + } + parent.node_ops.rmdir(parent, name); + FS.destroyNode(node); + }, readdir: (path) => { + var lookup = FS.lookupPath(path, { follow: true }); + var node = lookup.node; + if (!node.node_ops.readdir) { + throw new FS.ErrnoError(54); + } + return node.node_ops.readdir(node); + }, unlink: (path) => { + var lookup = FS.lookupPath(path, { parent: true }); + var parent = lookup.node; + if (!parent) { + throw new FS.ErrnoError(44); + } + var name = PATH.basename(path); + var node = FS.lookupNode(parent, name); + var errCode = FS.mayDelete(parent, name, false); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + if (!parent.node_ops.unlink) { + throw new FS.ErrnoError(63); + } + if (FS.isMountpoint(node)) { + throw new FS.ErrnoError(10); + } + parent.node_ops.unlink(parent, name); + FS.destroyNode(node); + }, readlink: (path) => { + var lookup = FS.lookupPath(path); + var link = lookup.node; + if (!link) { + throw new FS.ErrnoError(44); + } + if (!link.node_ops.readlink) { + throw new FS.ErrnoError(28); + } + return PATH_FS.resolve(FS.getPath(link.parent), link.node_ops.readlink(link)); + }, stat: (path, dontFollow) => { + var lookup = FS.lookupPath(path, { follow: !dontFollow }); + var node = lookup.node; + if (!node) { + throw new FS.ErrnoError(44); + } + if (!node.node_ops.getattr) { + throw new FS.ErrnoError(63); + } + return node.node_ops.getattr(node); + }, lstat: (path) => { + return FS.stat(path, true); + }, chmod: (path, mode, dontFollow) => { + var node; + if (typeof path == "string") { + var lookup = FS.lookupPath(path, { follow: !dontFollow }); + node = lookup.node; + } else { + node = path; + } + if (!node.node_ops.setattr) { + throw new FS.ErrnoError(63); + } + node.node_ops.setattr(node, { mode: mode & 4095 | node.mode & ~4095, timestamp: Date.now() }); + }, lchmod: (path, mode) => { + FS.chmod(path, mode, true); + }, fchmod: (fd, mode) => { + var stream = FS.getStream(fd); + if (!stream) { + throw new FS.ErrnoError(8); + } + FS.chmod(stream.node, mode); + }, chown: (path, uid, gid, dontFollow) => { + var node; + if (typeof path == "string") { + var lookup = FS.lookupPath(path, { follow: !dontFollow }); + node = lookup.node; + } else { + node = path; + } + if (!node.node_ops.setattr) { + throw new FS.ErrnoError(63); + } + node.node_ops.setattr(node, { timestamp: Date.now() }); + }, lchown: (path, uid, gid) => { + FS.chown(path, uid, gid, true); + }, fchown: (fd, uid, gid) => { + var stream = FS.getStream(fd); + if (!stream) { + throw new FS.ErrnoError(8); + } + FS.chown(stream.node, uid, gid); + }, truncate: (path, len) => { + if (len < 0) { + throw new FS.ErrnoError(28); + } + var node; + if (typeof path == "string") { + var lookup = FS.lookupPath(path, { follow: true }); + node = lookup.node; + } else { + node = path; + } + if (!node.node_ops.setattr) { + throw new FS.ErrnoError(63); + } + if (FS.isDir(node.mode)) { + throw new FS.ErrnoError(31); + } + if (!FS.isFile(node.mode)) { + throw new FS.ErrnoError(28); + } + var errCode = FS.nodePermissions(node, "w"); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + node.node_ops.setattr(node, { size: len, timestamp: Date.now() }); + }, ftruncate: (fd, len) => { + var stream = FS.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: (path, atime, mtime) => { + var lookup = FS.lookupPath(path, { follow: true }); + var node = lookup.node; + node.node_ops.setattr(node, { timestamp: Math.max(atime, mtime) }); + }, open: (path, flags, mode) => { + if (path === "") { + throw new FS.ErrnoError(44); + } + flags = typeof flags == "string" ? FS.modeStringToFlags(flags) : flags; + mode = typeof mode == "undefined" ? 438 : mode; + if (flags & 64) { + mode = mode & 4095 | 32768; + } else { + mode = 0; + } + var node; + if (typeof path == "object") { + node = path; + } else { + path = PATH.normalize(path); + try { + var lookup = FS.lookupPath(path, { follow: !(flags & 131072) }); + node = lookup.node; + } catch (e) { + } + } + var created = false; + if (flags & 64) { + if (node) { + if (flags & 128) { + throw new FS.ErrnoError(20); + } + } else { + node = FS.mknod(path, mode, 0); + created = true; + } + } + if (!node) { + throw new FS.ErrnoError(44); + } + if (FS.isChrdev(node.mode)) { + flags &= ~512; + } + if (flags & 65536 && !FS.isDir(node.mode)) { + throw new FS.ErrnoError(54); + } + if (!created) { + var errCode = FS.mayOpen(node, flags); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + } + if (flags & 512 && !created) { + FS.truncate(node, 0); + } + flags &= ~(128 | 512 | 131072); + var stream = FS.createStream({ node, path: FS.getPath(node), flags, seekable: true, position: 0, stream_ops: node.stream_ops, ungotten: [], error: false }); + if (stream.stream_ops.open) { + stream.stream_ops.open(stream); + } + if (Module["logReadFiles"] && !(flags & 1)) { + if (!FS.readFiles) + FS.readFiles = {}; + if (!(path in FS.readFiles)) { + FS.readFiles[path] = 1; + } + } + return stream; + }, close: (stream) => { + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8); + } + if (stream.getdents) + stream.getdents = null; + try { + if (stream.stream_ops.close) { + stream.stream_ops.close(stream); + } + } catch (e) { + throw e; + } finally { + FS.closeStream(stream.fd); + } + stream.fd = null; + }, isClosed: (stream) => { + return stream.fd === null; + }, llseek: (stream, offset, whence) => { + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8); + } + if (!stream.seekable || !stream.stream_ops.llseek) { + throw new FS.ErrnoError(70); + } + if (whence != 0 && whence != 1 && whence != 2) { + throw new FS.ErrnoError(28); + } + stream.position = stream.stream_ops.llseek(stream, offset, whence); + stream.ungotten = []; + return stream.position; + }, read: (stream, buffer, offset, length, position) => { + 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, buffer, offset, length, position); + if (!seeking) + stream.position += bytesRead; + return bytesRead; + }, write: (stream, buffer, 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, buffer, offset, length, position, canOwn); + if (!seeking) + stream.position += bytesWritten; + return bytesWritten; + }, allocate: (stream, offset, length) => { + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8); + } + if (offset < 0 || length <= 0) { + throw new FS.ErrnoError(28); + } + if ((stream.flags & 2097155) === 0) { + throw new FS.ErrnoError(8); + } + if (!FS.isFile(stream.node.mode) && !FS.isDir(stream.node.mode)) { + throw new FS.ErrnoError(43); + } + if (!stream.stream_ops.allocate) { + throw new FS.ErrnoError(138); + } + stream.stream_ops.allocate(stream, offset, length); + }, mmap: (stream, length, position, prot, flags) => { + if ((prot & 2) !== 0 && (flags & 2) === 0 && (stream.flags & 2097155) !== 2) { + throw new FS.ErrnoError(2); + } + if ((stream.flags & 2097155) === 1) { + throw new FS.ErrnoError(2); + } + if (!stream.stream_ops.mmap) { + throw new FS.ErrnoError(43); + } + return stream.stream_ops.mmap(stream, length, position, prot, flags); + }, msync: (stream, buffer, offset, length, mmapFlags) => { + offset >>>= 0; + if (!stream.stream_ops.msync) { + return 0; + } + return stream.stream_ops.msync(stream, buffer, offset, length, mmapFlags); + }, munmap: (stream) => 0, ioctl: (stream, cmd, arg) => { + if (!stream.stream_ops.ioctl) { + throw new FS.ErrnoError(59); + } + return stream.stream_ops.ioctl(stream, cmd, arg); + }, readFile: (path, opts = {}) => { + opts.flags = opts.flags || 0; + opts.encoding = opts.encoding || "binary"; + if (opts.encoding !== "utf8" && opts.encoding !== "binary") { + throw new Error('Invalid encoding type "' + opts.encoding + '"'); + } + var ret; + var stream = FS.open(path, opts.flags); + var stat = FS.stat(path); + var length = stat.size; + var buf = new Uint8Array(length); + FS.read(stream, buf, 0, length, 0); + if (opts.encoding === "utf8") { + ret = UTF8ArrayToString(buf, 0); + } else if (opts.encoding === "binary") { + ret = buf; + } + FS.close(stream); + return ret; + }, writeFile: (path, data, opts = {}) => { + opts.flags = opts.flags || 577; + var stream = FS.open(path, opts.flags, opts.mode); + if (typeof data == "string") { + var buf = new Uint8Array(lengthBytesUTF8(data) + 1); + var actualNumBytes = stringToUTF8Array(data, buf, 0, buf.length); + FS.write(stream, buf, 0, actualNumBytes, void 0, opts.canOwn); + } else if (ArrayBuffer.isView(data)) { + FS.write(stream, data, 0, data.byteLength, void 0, opts.canOwn); + } else { + throw new Error("Unsupported data type"); + } + FS.close(stream); + }, cwd: () => FS.currentPath, chdir: (path) => { + var lookup = FS.lookupPath(path, { follow: true }); + if (lookup.node === null) { + throw new FS.ErrnoError(44); + } + if (!FS.isDir(lookup.node.mode)) { + throw new FS.ErrnoError(54); + } + var errCode = FS.nodePermissions(lookup.node, "x"); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + FS.currentPath = lookup.path; + }, createDefaultDirectories: () => { + FS.mkdir("/tmp"); + FS.mkdir("/home"); + FS.mkdir("/home/web_user"); + }, createDefaultDevices: () => { + FS.mkdir("/dev"); + FS.registerDevice(FS.makedev(1, 3), { read: () => 0, write: (stream, buffer, offset, length, pos) => length }); + FS.mkdev("/dev/null", FS.makedev(1, 3)); + TTY.register(FS.makedev(5, 0), TTY.default_tty_ops); + TTY.register(FS.makedev(6, 0), TTY.default_tty1_ops); + FS.mkdev("/dev/tty", FS.makedev(5, 0)); + FS.mkdev("/dev/tty1", FS.makedev(6, 0)); + var 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: () => { + FS.mkdir("/proc"); + var proc_self = FS.mkdir("/proc/self"); + FS.mkdir("/proc/self/fd"); + FS.mount({ mount: () => { + var node = FS.createNode(proc_self, "fd", 16384 | 511, 73); + node.node_ops = { lookup: (parent, name) => { + var fd = +name; + var stream = FS.getStream(fd); + if (!stream) + throw new FS.ErrnoError(8); + var ret = { parent: null, mount: { mountpoint: "fake" }, node_ops: { readlink: () => stream.path } }; + ret.parent = ret; + return ret; + } }; + return node; + } }, {}, "/proc/self/fd"); + }, createStandardStreams: () => { + if (Module["stdin"]) { + FS.createDevice("/dev", "stdin", Module["stdin"]); + } else { + FS.symlink("/dev/tty", "/dev/stdin"); + } + if (Module["stdout"]) { + FS.createDevice("/dev", "stdout", null, Module["stdout"]); + } else { + FS.symlink("/dev/tty", "/dev/stdout"); + } + if (Module["stderr"]) { + FS.createDevice("/dev", "stderr", null, Module["stderr"]); + } else { + FS.symlink("/dev/tty1", "/dev/stderr"); + } + FS.open("/dev/stdin", 0); + FS.open("/dev/stdout", 1); + FS.open("/dev/stderr", 1); + }, 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((code) => { + FS.genericErrors[code] = new FS.ErrnoError(code); + FS.genericErrors[code].stack = ""; + }); + }, staticInit: () => { + FS.ensureErrnoError(); + FS.nameTable = new Array(4096); + FS.mount(MEMFS, {}, "/"); + FS.createDefaultDirectories(); + FS.createDefaultDevices(); + FS.createSpecialDirectories(); + FS.filesystems = { "MEMFS": MEMFS }; + }, init: (input, output, error) => { + FS.init.initialized = true; + FS.ensureErrnoError(); + Module["stdin"] = input || Module["stdin"]; + Module["stdout"] = output || Module["stdout"]; + Module["stderr"] = error || Module["stderr"]; + FS.createStandardStreams(); + }, quit: () => { + FS.init.initialized = false; + for (var i = 0; i < FS.streams.length; i++) { + var stream = FS.streams[i]; + if (!stream) { + continue; + } + FS.close(stream); + } + }, getMode: (canRead, canWrite) => { + var mode = 0; + if (canRead) + mode |= 292 | 73; + if (canWrite) + mode |= 146; + return mode; + }, findObject: (path, dontResolveLastLink) => { + var ret = FS.analyzePath(path, dontResolveLastLink); + if (!ret.exists) { + return null; + } + return ret.object; + }, analyzePath: (path, dontResolveLastLink) => { + try { + var lookup = FS.lookupPath(path, { follow: !dontResolveLastLink }); + path = lookup.path; + } catch (e) { + } + var ret = { isRoot: false, exists: false, error: 0, name: null, path: null, object: null, parentExists: false, parentPath: null, parentObject: null }; + try { + var lookup = FS.lookupPath(path, { parent: true }); + ret.parentExists = true; + ret.parentPath = lookup.path; + ret.parentObject = lookup.node; + ret.name = PATH.basename(path); + lookup = FS.lookupPath(path, { follow: !dontResolveLastLink }); + ret.exists = true; + ret.path = lookup.path; + ret.object = lookup.node; + ret.name = lookup.node.name; + ret.isRoot = lookup.path === "/"; + } catch (e) { + ret.error = e.errno; + } + return ret; + }, createPath: (parent, path, canRead, canWrite) => { + parent = typeof parent == "string" ? parent : FS.getPath(parent); + var parts = path.split("/").reverse(); + while (parts.length) { + var part = parts.pop(); + if (!part) + continue; + var current = PATH.join2(parent, part); + try { + FS.mkdir(current); + } catch (e) { + } + parent = current; + } + return current; + }, createFile: (parent, name, properties, canRead, canWrite) => { + var path = PATH.join2(typeof parent == "string" ? parent : FS.getPath(parent), name); + var mode = FS.getMode(canRead, canWrite); + return FS.create(path, mode); + }, createDataFile: (parent, name, data, canRead, canWrite, canOwn) => { + var path = name; + if (parent) { + parent = typeof parent == "string" ? parent : FS.getPath(parent); + path = name ? PATH.join2(parent, name) : parent; + } + var mode = FS.getMode(canRead, canWrite); + var node = FS.create(path, mode); + if (data) { + if (typeof data == "string") { + var arr = new Array(data.length); + for (var i = 0, len = data.length; i < len; ++i) + arr[i] = data.charCodeAt(i); + data = arr; + } + FS.chmod(node, mode | 146); + var stream = FS.open(node, 577); + FS.write(stream, data, 0, data.length, 0, canOwn); + FS.close(stream); + FS.chmod(node, mode); + } + return node; + }, createDevice: (parent, name, input, output) => { + var path = PATH.join2(typeof parent == "string" ? parent : FS.getPath(parent), name); + var mode = FS.getMode(!!input, !!output); + if (!FS.createDevice.major) + FS.createDevice.major = 64; + var dev = FS.makedev(FS.createDevice.major++, 0); + FS.registerDevice(dev, { open: (stream) => { + stream.seekable = false; + }, close: (stream) => { + if (output && output.buffer && output.buffer.length) { + output(10); + } + }, read: (stream, buffer, offset, length, pos) => { + var bytesRead = 0; + for (var i = 0; i < length; i++) { + var result; + try { + result = input(); + } catch (e) { + throw new FS.ErrnoError(29); + } + if (result === void 0 && bytesRead === 0) { + throw new FS.ErrnoError(6); + } + if (result === null || result === void 0) + break; + bytesRead++; + buffer[offset + i] = result; + } + if (bytesRead) { + stream.node.timestamp = Date.now(); + } + return bytesRead; + }, write: (stream, buffer, offset, length, pos) => { + for (var i = 0; i < length; i++) { + try { + output(buffer[offset + i]); + } catch (e) { + throw new FS.ErrnoError(29); + } + } + if (length) { + stream.node.timestamp = Date.now(); + } + return i; + } }); + return FS.mkdev(path, mode, dev); + }, forceLoadFile: (obj) => { + if (obj.isDevice || obj.isFolder || obj.link || obj.contents) + return true; + if (typeof XMLHttpRequest != "undefined") { + throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread."); + } else if (read_) { + try { + obj.contents = intArrayFromString(read_(obj.url), true); + obj.usedBytes = obj.contents.length; + } catch (e) { + throw new FS.ErrnoError(29); + } + } else { + throw new Error("Cannot load without read() or XMLHttpRequest."); + } + }, createLazyFile: (parent, name, url, canRead, canWrite) => { + function LazyUint8Array() { + this.lengthKnown = false; + this.chunks = []; + } + LazyUint8Array.prototype.get = function LazyUint8Array_get(idx) { + if (idx > this.length - 1 || idx < 0) { + return void 0; + } + var chunkOffset = idx % this.chunkSize; + var chunkNum = idx / this.chunkSize | 0; + return this.getter(chunkNum)[chunkOffset]; + }; + LazyUint8Array.prototype.setDataGetter = function LazyUint8Array_setDataGetter(getter) { + this.getter = getter; + }; + LazyUint8Array.prototype.cacheLength = function LazyUint8Array_cacheLength() { + var xhr = new XMLHttpRequest(); + xhr.open("HEAD", url, false); + xhr.send(null); + if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) + throw new Error("Couldn't load " + url + ". Status: " + xhr.status); + var datalength = Number(xhr.getResponseHeader("Content-length")); + var header; + var hasByteServing = (header = xhr.getResponseHeader("Accept-Ranges")) && header === "bytes"; + var usesGzip = (header = xhr.getResponseHeader("Content-Encoding")) && header === "gzip"; + var chunkSize = 1024 * 1024; + if (!hasByteServing) + chunkSize = datalength; + var doXHR = (from, to) => { + if (from > to) + throw new Error("invalid range (" + from + ", " + to + ") or no bytes requested!"); + if (to > datalength - 1) + throw new Error("only " + datalength + " bytes available! programmer error!"); + var xhr2 = new XMLHttpRequest(); + xhr2.open("GET", url, false); + if (datalength !== chunkSize) + xhr2.setRequestHeader("Range", "bytes=" + from + "-" + to); + xhr2.responseType = "arraybuffer"; + if (xhr2.overrideMimeType) { + xhr2.overrideMimeType("text/plain; charset=x-user-defined"); + } + xhr2.send(null); + if (!(xhr2.status >= 200 && xhr2.status < 300 || xhr2.status === 304)) + throw new Error("Couldn't load " + url + ". Status: " + xhr2.status); + if (xhr2.response !== void 0) { + return new Uint8Array(xhr2.response || []); + } + return intArrayFromString(xhr2.responseText || "", true); + }; + var lazyArray2 = this; + lazyArray2.setDataGetter((chunkNum) => { + var start = chunkNum * chunkSize; + var end = (chunkNum + 1) * chunkSize - 1; + end = Math.min(end, datalength - 1); + if (typeof lazyArray2.chunks[chunkNum] == "undefined") { + lazyArray2.chunks[chunkNum] = doXHR(start, end); + } + if (typeof lazyArray2.chunks[chunkNum] == "undefined") + throw new Error("doXHR failed!"); + return lazyArray2.chunks[chunkNum]; + }); + if (usesGzip || !datalength) { + chunkSize = datalength = 1; + datalength = this.getter(0).length; + chunkSize = datalength; + out("LazyFiles on gzip forces download of the whole file when length is accessed"); + } + this._length = datalength; + this._chunkSize = chunkSize; + this.lengthKnown = true; + }; + if (typeof XMLHttpRequest != "undefined") { + if (!ENVIRONMENT_IS_WORKER) + throw "Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc"; + var lazyArray = new LazyUint8Array(); + Object.defineProperties(lazyArray, { length: { get: function() { + if (!this.lengthKnown) { + this.cacheLength(); + } + return this._length; + } }, chunkSize: { get: function() { + if (!this.lengthKnown) { + this.cacheLength(); + } + return this._chunkSize; + } } }); + var properties = { isDevice: false, contents: lazyArray }; + } else { + var properties = { isDevice: false, url }; + } + var node = FS.createFile(parent, name, properties, canRead, canWrite); + if (properties.contents) { + node.contents = properties.contents; + } else if (properties.url) { + node.contents = null; + node.url = properties.url; + } + Object.defineProperties(node, { usedBytes: { get: function() { + return this.contents.length; + } } }); + var stream_ops = {}; + var keys = Object.keys(node.stream_ops); + keys.forEach((key) => { + var fn = node.stream_ops[key]; + stream_ops[key] = function forceLoadLazyFile() { + FS.forceLoadFile(node); + return fn.apply(null, arguments); + }; + }); + function writeChunks(stream, buffer, offset, length, position) { + var contents = stream.node.contents; + if (position >= contents.length) + return 0; + var size = Math.min(contents.length - position, length); + if (contents.slice) { + for (var i = 0; i < size; i++) { + buffer[offset + i] = contents[position + i]; + } + } else { + for (var i = 0; i < size; i++) { + buffer[offset + i] = contents.get(position + i); + } + } + return size; + } + stream_ops.read = (stream, buffer, offset, length, position) => { + FS.forceLoadFile(node); + return writeChunks(stream, buffer, offset, length, position); + }; + stream_ops.mmap = (stream, length, position, prot, flags) => { + FS.forceLoadFile(node); + var ptr = mmapAlloc(); + if (!ptr) { + throw new FS.ErrnoError(48); + } + writeChunks(stream, GROWABLE_HEAP_I8(), ptr, length, position); + return { ptr, allocated: true }; + }; + node.stream_ops = stream_ops; + return node; + }, createPreloadedFile: (parent, name, url, canRead, canWrite, onload, onerror, dontCreateFile, canOwn, preFinish) => { + var fullname = name ? PATH_FS.resolve(PATH.join2(parent, name)) : parent; + function processData(byteArray) { + function finish(byteArray2) { + if (preFinish) + preFinish(); + if (!dontCreateFile) { + FS.createDataFile(parent, name, byteArray2, canRead, canWrite, canOwn); + } + if (onload) + onload(); + removeRunDependency(); + } + if (Browser.handledByPreloadPlugin(byteArray, fullname, finish, () => { + if (onerror) + onerror(); + removeRunDependency(); + })) { + return; + } + finish(byteArray); + } + addRunDependency(); + if (typeof url == "string") { + asyncLoad(url, (byteArray) => processData(byteArray), onerror); + } else { + processData(url); + } + }, indexedDB: () => { + return window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB; + }, DB_NAME: () => { + return "EM_FS_" + window.location.pathname; + }, DB_VERSION: 20, DB_STORE_NAME: "FILE_DATA", saveFilesToDB: (paths, onload = () => { + }, onerror = () => { + }) => { + var indexedDB = FS.indexedDB(); + try { + var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION); + } catch (e) { + return onerror(e); + } + openRequest.onupgradeneeded = () => { + out("creating db"); + var db = openRequest.result; + db.createObjectStore(FS.DB_STORE_NAME); + }; + 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((path) => { + var putRequest = files.put(FS.analyzePath(path).object.contents, path); + putRequest.onsuccess = () => { + ok++; + if (ok + fail == total) + finish(); + }; + putRequest.onerror = () => { + fail++; + if (ok + fail == total) + finish(); + }; + }); + transaction.onerror = onerror; + }; + openRequest.onerror = onerror; + }, loadFilesFromDB: (paths, onload = () => { + }, onerror = () => { + }) => { + 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 = () => { + 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((path) => { + var getRequest = files.get(path); + 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 = () => { + fail++; + if (ok + fail == total) + finish(); + }; + }); + transaction.onerror = onerror; + }; + openRequest.onerror = onerror; + } }; + var SYSCALLS = { DEFAULT_POLLMASK: 5, calculateAt: function(dirfd, path, allowEmpty) { + if (PATH.isAbs(path)) { + return path; + } + var dir; + if (dirfd === -100) { + dir = FS.cwd(); + } else { + var dirstream = SYSCALLS.getStreamFromFD(dirfd); + dir = dirstream.path; + } + if (path.length == 0) { + if (!allowEmpty) { + throw new FS.ErrnoError(44); + } + return dir; + } + return PATH.join2(dir, path); + }, doStat: function(func, path, buf) { + try { + var stat = func(path); + } catch (e) { + if (e && e.node && PATH.normalize(path) !== PATH.normalize(FS.getPath(e.node))) { + return -54; + } + throw e; + } + GROWABLE_HEAP_I32()[buf >>> 2] = stat.dev; + GROWABLE_HEAP_I32()[buf + 8 >>> 2] = stat.ino; + GROWABLE_HEAP_I32()[buf + 12 >>> 2] = stat.mode; + GROWABLE_HEAP_U32()[buf + 16 >>> 2] = stat.nlink; + GROWABLE_HEAP_I32()[buf + 20 >>> 2] = stat.uid; + GROWABLE_HEAP_I32()[buf + 24 >>> 2] = stat.gid; + GROWABLE_HEAP_I32()[buf + 28 >>> 2] = stat.rdev; + 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)], GROWABLE_HEAP_I32()[buf + 40 >>> 2] = tempI64[0], GROWABLE_HEAP_I32()[buf + 44 >>> 2] = tempI64[1]; + GROWABLE_HEAP_I32()[buf + 48 >>> 2] = 4096; + GROWABLE_HEAP_I32()[buf + 52 >>> 2] = stat.blocks; + var atime = stat.atime.getTime(); + var mtime = stat.mtime.getTime(); + var ctime = stat.ctime.getTime(); + tempI64 = [Math.floor(atime / 1e3) >>> 0, (tempDouble = Math.floor(atime / 1e3), +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], GROWABLE_HEAP_I32()[buf + 56 >>> 2] = tempI64[0], GROWABLE_HEAP_I32()[buf + 60 >>> 2] = tempI64[1]; + GROWABLE_HEAP_U32()[buf + 64 >>> 2] = atime % 1e3 * 1e3; + tempI64 = [Math.floor(mtime / 1e3) >>> 0, (tempDouble = Math.floor(mtime / 1e3), +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], GROWABLE_HEAP_I32()[buf + 72 >>> 2] = tempI64[0], GROWABLE_HEAP_I32()[buf + 76 >>> 2] = tempI64[1]; + GROWABLE_HEAP_U32()[buf + 80 >>> 2] = mtime % 1e3 * 1e3; + tempI64 = [Math.floor(ctime / 1e3) >>> 0, (tempDouble = Math.floor(ctime / 1e3), +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], GROWABLE_HEAP_I32()[buf + 88 >>> 2] = tempI64[0], GROWABLE_HEAP_I32()[buf + 92 >>> 2] = tempI64[1]; + GROWABLE_HEAP_U32()[buf + 96 >>> 2] = ctime % 1e3 * 1e3; + 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)], GROWABLE_HEAP_I32()[buf + 104 >>> 2] = tempI64[0], GROWABLE_HEAP_I32()[buf + 108 >>> 2] = tempI64[1]; + return 0; + }, doMsync: function(addr, stream, len, flags, offset) { + if (!FS.isFile(stream.node.mode)) { + throw new FS.ErrnoError(43); + } + if (flags & 2) { + return 0; + } + addr >>>= 0; + var buffer = GROWABLE_HEAP_U8().slice(addr, addr + len); + FS.msync(stream, buffer, offset, len, flags); + }, varargs: void 0, get: function() { + SYSCALLS.varargs += 4; + var ret = GROWABLE_HEAP_I32()[SYSCALLS.varargs - 4 >>> 2]; + return ret; + }, getStr: function(ptr) { + var ret = UTF8ToString(ptr); + return ret; + }, getStreamFromFD: function(fd) { + var stream = FS.getStream(fd); + if (!stream) + throw new FS.ErrnoError(8); + return stream; + } }; + function _proc_exit(code) { + if (ENVIRONMENT_IS_PTHREAD) + return _emscripten_proxy_to_main_thread_js(1, 1, code); + EXITSTATUS = code; + if (!keepRuntimeAlive()) { + PThread.terminateAllThreads(); + if (Module["onExit"]) + Module["onExit"](code); + ABORT = true; + } + quit_(code, new ExitStatus(code)); + } + function exitJS(status, implicit) { + EXITSTATUS = status; + if (!implicit) { + if (ENVIRONMENT_IS_PTHREAD) { + exitOnMainThread(status); + throw "unwind"; + } + } + _proc_exit(status); + } + var _exit = exitJS; + function handleException(e) { + if (e instanceof ExitStatus || e == "unwind") { + return EXITSTATUS; + } + quit_(1, e); + } + var PThread = { unusedWorkers: [], runningWorkers: [], tlsInitFunctions: [], pthreads: {}, init: function() { + if (ENVIRONMENT_IS_PTHREAD) { + PThread.initWorker(); + } else { + PThread.initMainThread(); + } + }, initMainThread: function() { + var pthreadPoolSize = navigator.hardwareConcurrency; + while (pthreadPoolSize--) { + PThread.allocateUnusedWorker(); + } + }, initWorker: function() { + noExitRuntime = false; + }, setExitStatus: function(status) { + EXITSTATUS = status; + }, terminateAllThreads: function() { + for (var worker of Object.values(PThread.pthreads)) { + PThread.returnWorkerToPool(worker); + } + for (var worker of PThread.unusedWorkers) { + worker.terminate(); + } + PThread.unusedWorkers = []; + }, returnWorkerToPool: function(worker) { + var pthread_ptr = worker.pthread_ptr; + delete PThread.pthreads[pthread_ptr]; + PThread.unusedWorkers.push(worker); + PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker), 1); + worker.pthread_ptr = 0; + __emscripten_thread_free_data(pthread_ptr); + }, receiveObjectTransfer: function(data) { + }, threadInitTLS: function() { + PThread.tlsInitFunctions.forEach((f) => f()); + }, loadWasmModuleToWorker: (worker) => new Promise((onFinishedLoading) => { + worker.onmessage = (e) => { + var d = e["data"]; + var cmd = d["cmd"]; + if (worker.pthread_ptr) + PThread.currentProxiedOperationCallerThread = worker.pthread_ptr; + if (d["targetThread"] && d["targetThread"] != _pthread_self()) { + var targetWorker = PThread.pthreads[d.targetThread]; + if (targetWorker) { + targetWorker.postMessage(d, d["transferList"]); + } else { + err('Internal error! Worker sent a message "' + cmd + '" to target pthread ' + d["targetThread"] + ", but that thread no longer exists!"); + } + PThread.currentProxiedOperationCallerThread = void 0; + return; + } + if (cmd === "processProxyingQueue") { + executeNotifiedProxyingQueue(d["queue"]); + } else if (cmd === "spawnThread") { + spawnThread(d); + } else if (cmd === "cleanupThread") { + cleanupThread(d["thread"]); + } else if (cmd === "killThread") { + killThread(d["thread"]); + } else if (cmd === "cancelThread") { + cancelThread(d["thread"]); + } else if (cmd === "loaded") { + worker.loaded = true; + onFinishedLoading(worker); + } else if (cmd === "print") { + out("Thread " + d["threadId"] + ": " + d["text"]); + } else if (cmd === "printErr") { + err("Thread " + d["threadId"] + ": " + d["text"]); + } else if (cmd === "alert") { + alert("Thread " + d["threadId"] + ": " + d["text"]); + } else if (d.target === "setimmediate") { + worker.postMessage(d); + } else if (cmd === "callHandler") { + Module[d["handler"]](...d["args"]); + } else if (cmd) { + err("worker sent an unknown command " + cmd); + } + PThread.currentProxiedOperationCallerThread = void 0; + }; + worker.onerror = (e) => { + var message = "worker sent an error!"; + err(message + " " + e.filename + ":" + e.lineno + ": " + e.message); + throw e; + }; + var handlers = []; + var knownHandlers = ["onExit", "onAbort", "print", "printErr"]; + for (var handler of knownHandlers) { + if (Module.hasOwnProperty(handler)) { + handlers.push(handler); + } + } + worker.postMessage({ "cmd": "load", "handlers": handlers, "urlOrBlob": Module["mainScriptUrlOrBlob"] || _scriptDir, "wasmMemory": wasmMemory, "wasmModule": wasmModule }); + }), loadWasmModuleToAllWorkers: function(onMaybeReady) { + if (ENVIRONMENT_IS_PTHREAD) { + return onMaybeReady(); + } + let pthreadPoolReady = Promise.all(PThread.unusedWorkers.map(PThread.loadWasmModuleToWorker)); + pthreadPoolReady.then(onMaybeReady); + }, allocateUnusedWorker: function() { + var worker; + var pthreadMainJs = locateFile("web-ifc-mt.worker.js"); + worker = new Worker(pthreadMainJs); + PThread.unusedWorkers.push(worker); + }, getNewWorker: function() { + if (PThread.unusedWorkers.length == 0) { + PThread.allocateUnusedWorker(); + PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0]); + } + return PThread.unusedWorkers.pop(); + } }; + Module["PThread"] = PThread; + function callRuntimeCallbacks(callbacks) { + while (callbacks.length > 0) { + callbacks.shift()(Module); + } + } + function establishStackSpace() { + var pthread_ptr = _pthread_self(); + var stackTop = GROWABLE_HEAP_I32()[pthread_ptr + 52 >>> 2]; + var stackSize = GROWABLE_HEAP_I32()[pthread_ptr + 56 >>> 2]; + var stackMax = stackTop - stackSize; + _emscripten_stack_set_limits(stackTop, stackMax); + stackRestore(stackTop); + } + Module["establishStackSpace"] = establishStackSpace; + function exitOnMainThread(returnCode) { + if (ENVIRONMENT_IS_PTHREAD) + return _emscripten_proxy_to_main_thread_js(2, 0, returnCode); + try { + _exit(returnCode); + } catch (e) { + handleException(e); + } + } + var wasmTableMirror = []; + function getWasmTableEntry(funcPtr) { + var func = wasmTableMirror[funcPtr]; + if (!func) { + if (funcPtr >= wasmTableMirror.length) + wasmTableMirror.length = funcPtr + 1; + wasmTableMirror[funcPtr] = func = wasmTable.get(funcPtr); + } + return func; + } + function invokeEntryPoint(ptr, arg) { + var result = getWasmTableEntry(ptr)(arg); + if (keepRuntimeAlive()) { + PThread.setExitStatus(result); + } else { + __emscripten_thread_exit(result); + } + } + Module["invokeEntryPoint"] = invokeEntryPoint; + function registerTLSInit(tlsInitFunc) { + PThread.tlsInitFunctions.push(tlsInitFunc); + } + function ExceptionInfo(excPtr) { + this.excPtr = excPtr; + this.ptr = excPtr - 24; + this.set_type = function(type) { + GROWABLE_HEAP_U32()[this.ptr + 4 >>> 2] = type; + }; + this.get_type = function() { + return GROWABLE_HEAP_U32()[this.ptr + 4 >>> 2]; + }; + this.set_destructor = function(destructor) { + GROWABLE_HEAP_U32()[this.ptr + 8 >>> 2] = destructor; + }; + this.get_destructor = function() { + return GROWABLE_HEAP_U32()[this.ptr + 8 >>> 2]; + }; + this.set_refcount = function(refcount) { + GROWABLE_HEAP_I32()[this.ptr >>> 2] = refcount; + }; + this.set_caught = function(caught) { + caught = caught ? 1 : 0; + GROWABLE_HEAP_I8()[this.ptr + 12 >>> 0] = caught; + }; + this.get_caught = function() { + return GROWABLE_HEAP_I8()[this.ptr + 12 >>> 0] != 0; + }; + this.set_rethrown = function(rethrown) { + rethrown = rethrown ? 1 : 0; + GROWABLE_HEAP_I8()[this.ptr + 13 >>> 0] = rethrown; + }; + this.get_rethrown = function() { + return GROWABLE_HEAP_I8()[this.ptr + 13 >>> 0] != 0; + }; + this.init = function(type, destructor) { + this.set_adjusted_ptr(0); + this.set_type(type); + this.set_destructor(destructor); + this.set_refcount(0); + this.set_caught(false); + this.set_rethrown(false); + }; + this.add_ref = function() { + Atomics.add(GROWABLE_HEAP_I32(), this.ptr + 0 >> 2, 1); + }; + this.release_ref = function() { + var prev = Atomics.sub(GROWABLE_HEAP_I32(), this.ptr + 0 >> 2, 1); + return prev === 1; + }; + this.set_adjusted_ptr = function(adjustedPtr) { + GROWABLE_HEAP_U32()[this.ptr + 16 >>> 2] = adjustedPtr; + }; + this.get_adjusted_ptr = function() { + return GROWABLE_HEAP_U32()[this.ptr + 16 >>> 2]; + }; + this.get_exception_ptr = function() { + var isPointer = ___cxa_is_pointer_type(this.get_type()); + if (isPointer) { + return GROWABLE_HEAP_U32()[this.excPtr >>> 2]; + } + var adjusted = this.get_adjusted_ptr(); + if (adjusted !== 0) + return adjusted; + return this.excPtr; + }; + } + function ___cxa_throw(ptr, type, destructor) { + var info = new ExceptionInfo(ptr); + info.init(type, destructor); + throw ptr; + } + function ___emscripten_init_main_thread_js(tb) { + __emscripten_thread_init(tb, !ENVIRONMENT_IS_WORKER, 1, !ENVIRONMENT_IS_WEB); + PThread.threadInitTLS(); + } + function ___emscripten_thread_cleanup(thread) { + if (!ENVIRONMENT_IS_PTHREAD) + cleanupThread(thread); + else + postMessage({ "cmd": "cleanupThread", "thread": thread }); + } + function __dlinit(main_dso_handle) { + } + var dlopenMissingError = "To use dlopen, you need enable dynamic linking, see https://github.com/emscripten-core/emscripten/wiki/Linking"; + function __dlopen_js(handle) { + abort(dlopenMissingError); + } + function __dlsym_catchup_js(handle, symbolIndex) { + abort(dlopenMissingError); + } + var tupleRegistrations = {}; + function runDestructors(destructors) { + while (destructors.length) { + var ptr = destructors.pop(); + var del = destructors.pop(); + del(ptr); + } + } + function simpleReadValueFromPointer(pointer) { + return this["fromWireType"](GROWABLE_HEAP_I32()[pointer >>> 2]); + } + var awaitingDependencies = {}; + var registeredTypes = {}; + var typeDependencies = {}; + var char_0 = 48; + var char_9 = 57; + function makeLegalFunctionName(name) { + if (name === void 0) { + return "_unknown"; + } + name = name.replace(/[^a-zA-Z0-9_]/g, "$"); + var f = name.charCodeAt(0); + if (f >= char_0 && f <= char_9) { + return "_" + name; + } + return name; + } + function createNamedFunction(name, body) { + name = makeLegalFunctionName(name); + return new Function("body", "return function " + name + '() {\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((dt, i) => { + if (registeredTypes.hasOwnProperty(dt)) { + typeConverters[i] = registeredTypes[dt]; + } else { + unregisteredTypes.push(dt); + if (!awaitingDependencies.hasOwnProperty(dt)) { + awaitingDependencies[dt] = []; + } + awaitingDependencies[dt].push(() => { + typeConverters[i] = registeredTypes[dt]; + ++registered; + if (registered === unregisteredTypes.length) { + onComplete(typeConverters); + } + }); + } + }); + if (unregisteredTypes.length === 0) { + onComplete(typeConverters); + } + } + function __embind_finalize_value_array(rawTupleType) { + var reg = tupleRegistrations[rawTupleType]; + delete tupleRegistrations[rawTupleType]; + var elements = reg.elements; + var elementsLength = elements.length; + var elementTypes = elements.map(function(elt) { + return elt.getterReturnType; + }).concat(elements.map(function(elt) { + return elt.setterArgumentType; + })); + var rawConstructor = reg.rawConstructor; + var rawDestructor = reg.rawDestructor; + whenDependentTypesAreResolved([rawTupleType], elementTypes, function(elementTypes2) { + elements.forEach((elt, i) => { + var getterReturnType = elementTypes2[i]; + var getter = elt.getter; + var getterContext = elt.getterContext; + var setterArgumentType = elementTypes2[i + elementsLength]; + var setter = elt.setter; + var setterContext = elt.setterContext; + elt.read = (ptr) => { + return getterReturnType["fromWireType"](getter(getterContext, ptr)); + }; + elt.write = (ptr, o) => { + var destructors = []; + setter(setterContext, ptr, setterArgumentType["toWireType"](destructors, o)); + runDestructors(destructors); + }; + }); + return [{ name: reg.name, "fromWireType": function(ptr) { + var rv = new Array(elementsLength); + for (var i = 0; i < elementsLength; ++i) { + rv[i] = elements[i].read(ptr); + } + rawDestructor(ptr); + return rv; + }, "toWireType": function(destructors, o) { + if (elementsLength !== o.length) { + throw new TypeError("Incorrect number of tuple elements for " + reg.name + ": expected=" + elementsLength + ", actual=" + o.length); + } + var ptr = rawConstructor(); + for (var i = 0; i < elementsLength; ++i) { + elements[i].write(ptr, o[i]); + } + if (destructors !== null) { + destructors.push(rawDestructor, ptr); + } + return ptr; + }, "argPackAdvance": 8, "readValueFromPointer": simpleReadValueFromPointer, destructorFunction: rawDestructor }]; + }); + } + var structRegistrations = {}; + 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((field) => field.getterReturnType).concat(fieldRecords.map((field) => field.setterArgumentType)); + whenDependentTypesAreResolved([structType], fieldTypes, (fieldTypes2) => { + var fields = {}; + fieldRecords.forEach((field, i) => { + var fieldName = field.fieldName; + var getterReturnType = fieldTypes2[i]; + var getter = field.getter; + var getterContext = field.getterContext; + var setterArgumentType = fieldTypes2[i + fieldRecords.length]; + var setter = field.setter; + var setterContext = field.setterContext; + fields[fieldName] = { read: (ptr) => { + return getterReturnType["fromWireType"](getter(getterContext, ptr)); + }, write: (ptr, o) => { + var destructors = []; + setter(setterContext, ptr, setterArgumentType["toWireType"](destructors, o)); + runDestructors(destructors); + } }; + }); + return [{ name: reg.name, "fromWireType": function(ptr) { + var rv = {}; + for (var i in fields) { + rv[i] = fields[i].read(ptr); + } + rawDestructor(ptr); + return rv; + }, "toWireType": function(destructors, o) { + for (var fieldName in fields) { + if (!(fieldName in o)) { + throw new TypeError('Missing field: "' + fieldName + '"'); + } + } + var ptr = rawConstructor(); + for (fieldName in fields) { + fields[fieldName].write(ptr, o[fieldName]); + } + if (destructors !== null) { + destructors.push(rawDestructor, ptr); + } + return ptr; + }, "argPackAdvance": 8, "readValueFromPointer": simpleReadValueFromPointer, destructorFunction: rawDestructor }]; + }); + } + function __embind_register_bigint(primitiveType, name, size, minRange, maxRange) { + } + function getShiftFromSize(size) { + switch (size) { + case 1: + return 0; + case 2: + return 1; + case 4: + return 2; + case 8: + return 3; + default: + throw new TypeError("Unknown type size: " + size); + } + } + function embind_init_charCodes() { + var codes = new Array(256); + for (var i = 0; i < 256; ++i) { + codes[i] = String.fromCharCode(i); + } + embind_charCodes = codes; + } + var embind_charCodes = void 0; + function readLatin1String(ptr) { + var ret = ""; + var c = ptr; + while (GROWABLE_HEAP_U8()[c >>> 0]) { + ret += embind_charCodes[GROWABLE_HEAP_U8()[c++ >>> 0]]; + } + return ret; + } + var BindingError = void 0; + function throwBindingError(message) { + throw new BindingError(message); + } + function registerType(rawType, registeredInstance, options = {}) { + if (!("argPackAdvance" in registeredInstance)) { + throw new TypeError("registerType registeredInstance requires argPackAdvance"); + } + var name = registeredInstance.name; + if (!rawType) { + throwBindingError('type "' + name + '" must have a positive integer typeid pointer'); + } + if (registeredTypes.hasOwnProperty(rawType)) { + if (options.ignoreDuplicateRegistrations) { + return; + } else { + throwBindingError("Cannot register type '" + name + "' twice"); + } + } + registeredTypes[rawType] = registeredInstance; + delete typeDependencies[rawType]; + if (awaitingDependencies.hasOwnProperty(rawType)) { + var callbacks = awaitingDependencies[rawType]; + delete awaitingDependencies[rawType]; + callbacks.forEach((cb) => cb()); + } + } + function __embind_register_bool(rawType, name, size, trueValue, falseValue) { + var shift = getShiftFromSize(size); + name = readLatin1String(name); + registerType(rawType, { name, "fromWireType": function(wt) { + return !!wt; + }, "toWireType": function(destructors, o) { + return o ? trueValue : falseValue; + }, "argPackAdvance": 8, "readValueFromPointer": function(pointer) { + var heap; + if (size === 1) { + heap = GROWABLE_HEAP_I8(); + } else if (size === 2) { + heap = GROWABLE_HEAP_I16(); + } else if (size === 4) { + heap = GROWABLE_HEAP_I32(); + } else { + throw new TypeError("Unknown boolean type size: " + name); + } + return this["fromWireType"](heap[pointer >>> shift]); + }, destructorFunction: null }); + } + function ClassHandle_isAliasOf(other) { + if (!(this instanceof ClassHandle)) { + return false; + } + if (!(other instanceof ClassHandle)) { + return false; + } + var leftClass = this.$$.ptrType.registeredClass; + var left = this.$$.ptr; + var rightClass = other.$$.ptrType.registeredClass; + var right = other.$$.ptr; + while (leftClass.baseClass) { + left = leftClass.upcast(left); + leftClass = leftClass.baseClass; + } + while (rightClass.baseClass) { + right = rightClass.upcast(right); + rightClass = rightClass.baseClass; + } + return leftClass === rightClass && left === right; + } + function shallowCopyInternalPointer(o) { + return { count: o.count, deleteScheduled: o.deleteScheduled, preservePointerOnDelete: o.preservePointerOnDelete, ptr: o.ptr, ptrType: o.ptrType, smartPtr: o.smartPtr, smartPtrType: o.smartPtrType }; + } + function throwInstanceAlreadyDeleted(obj) { + function getInstanceTypeName(handle) { + return handle.$$.ptrType.registeredClass.name; + } + throwBindingError(getInstanceTypeName(obj) + " instance already deleted"); + } + var finalizationRegistry = false; + function detachFinalizer(handle) { + } + function runDestructor($$) { + if ($$.smartPtr) { + $$.smartPtrType.rawDestructor($$.smartPtr); + } else { + $$.ptrType.registeredClass.rawDestructor($$.ptr); + } + } + function releaseClassHandle($$) { + $$.count.value -= 1; + var toDelete = $$.count.value === 0; + if (toDelete) { + runDestructor($$); + } + } + function downcastPointer(ptr, ptrClass, desiredClass) { + if (ptrClass === desiredClass) { + return ptr; + } + if (desiredClass.baseClass === void 0) { + return null; + } + var rv = downcastPointer(ptr, ptrClass, desiredClass.baseClass); + if (rv === null) { + return null; + } + return desiredClass.downcast(rv); + } + var registeredPointers = {}; + function getInheritedInstanceCount() { + return Object.keys(registeredInstances).length; + } + function getLiveInheritedInstances() { + var rv = []; + for (var k in registeredInstances) { + if (registeredInstances.hasOwnProperty(k)) { + rv.push(registeredInstances[k]); + } + } + return rv; + } + var deletionQueue = []; + function flushPendingDeletes() { + while (deletionQueue.length) { + var obj = deletionQueue.pop(); + obj.$$.deleteScheduled = false; + obj["delete"](); + } + } + var delayFunction = void 0; + function setDelayFunction(fn) { + delayFunction = fn; + if (deletionQueue.length && delayFunction) { + delayFunction(flushPendingDeletes); + } + } + function init_embind() { + Module["getInheritedInstanceCount"] = getInheritedInstanceCount; + Module["getLiveInheritedInstances"] = getLiveInheritedInstances; + Module["flushPendingDeletes"] = flushPendingDeletes; + Module["setDelayFunction"] = setDelayFunction; + } + var registeredInstances = {}; + function getBasestPointer(class_, ptr) { + if (ptr === void 0) { + throwBindingError("ptr should not be undefined"); + } + while (class_.baseClass) { + ptr = class_.upcast(ptr); + class_ = class_.baseClass; + } + return ptr; + } + function getInheritedInstance(class_, ptr) { + ptr = getBasestPointer(class_, ptr); + return registeredInstances[ptr]; + } + function makeClassHandle(prototype, record) { + if (!record.ptrType || !record.ptr) { + throwInternalError("makeClassHandle requires ptr and ptrType"); + } + var hasSmartPtrType = !!record.smartPtrType; + var hasSmartPtr = !!record.smartPtr; + if (hasSmartPtrType !== hasSmartPtr) { + throwInternalError("Both smartPtrType and smartPtr must be specified"); + } + record.count = { value: 1 }; + return attachFinalizer(Object.create(prototype, { $$: { value: record } })); + } + function RegisteredPointer_fromWireType(ptr) { + var rawPointer = this.getPointee(ptr); + if (!rawPointer) { + this.destructor(ptr); + return null; + } + var registeredInstance = getInheritedInstance(this.registeredClass, rawPointer); + if (registeredInstance !== void 0) { + if (registeredInstance.$$.count.value === 0) { + registeredInstance.$$.ptr = rawPointer; + registeredInstance.$$.smartPtr = ptr; + return registeredInstance["clone"](); + } else { + var rv = registeredInstance["clone"](); + this.destructor(ptr); + return rv; + } + } + function makeDefaultHandle() { + if (this.isSmartPointer) { + return makeClassHandle(this.registeredClass.instancePrototype, { ptrType: this.pointeeType, ptr: rawPointer, smartPtrType: this, smartPtr: ptr }); + } else { + return makeClassHandle(this.registeredClass.instancePrototype, { ptrType: this, ptr }); + } + } + var actualType = this.registeredClass.getActualType(rawPointer); + var registeredPointerRecord = registeredPointers[actualType]; + if (!registeredPointerRecord) { + return makeDefaultHandle.call(this); + } + var toType; + if (this.isConst) { + toType = registeredPointerRecord.constPointerType; + } else { + toType = registeredPointerRecord.pointerType; + } + var dp = downcastPointer(rawPointer, this.registeredClass, toType.registeredClass); + if (dp === null) { + return makeDefaultHandle.call(this); + } + if (this.isSmartPointer) { + return makeClassHandle(toType.registeredClass.instancePrototype, { ptrType: toType, ptr: dp, smartPtrType: this, smartPtr: ptr }); + } else { + return makeClassHandle(toType.registeredClass.instancePrototype, { ptrType: toType, ptr: dp }); + } + } + function attachFinalizer(handle) { + if (typeof FinalizationRegistry === "undefined") { + attachFinalizer = (handle2) => handle2; + return handle; + } + finalizationRegistry = new FinalizationRegistry((info) => { + releaseClassHandle(info.$$); + }); + attachFinalizer = (handle2) => { + var $$ = handle2.$$; + var hasSmartPtr = !!$$.smartPtr; + if (hasSmartPtr) { + var info = { $$ }; + finalizationRegistry.register(handle2, info, handle2); + } + return handle2; + }; + detachFinalizer = (handle2) => finalizationRegistry.unregister(handle2); + return attachFinalizer(handle); + } + function ClassHandle_clone() { + if (!this.$$.ptr) { + throwInstanceAlreadyDeleted(this); + } + if (this.$$.preservePointerOnDelete) { + this.$$.count.value += 1; + return this; + } else { + var clone = attachFinalizer(Object.create(Object.getPrototypeOf(this), { $$: { value: shallowCopyInternalPointer(this.$$) } })); + clone.$$.count.value += 1; + clone.$$.deleteScheduled = false; + return clone; + } + } + function ClassHandle_delete() { + if (!this.$$.ptr) { + throwInstanceAlreadyDeleted(this); + } + if (this.$$.deleteScheduled && !this.$$.preservePointerOnDelete) { + throwBindingError("Object already scheduled for deletion"); + } + detachFinalizer(this); + releaseClassHandle(this.$$); + if (!this.$$.preservePointerOnDelete) { + this.$$.smartPtr = void 0; + this.$$.ptr = void 0; + } + } + function ClassHandle_isDeleted() { + return !this.$$.ptr; + } + function ClassHandle_deleteLater() { + if (!this.$$.ptr) { + throwInstanceAlreadyDeleted(this); + } + if (this.$$.deleteScheduled && !this.$$.preservePointerOnDelete) { + throwBindingError("Object already scheduled for deletion"); + } + deletionQueue.push(this); + if (deletionQueue.length === 1 && delayFunction) { + delayFunction(flushPendingDeletes); + } + this.$$.deleteScheduled = true; + return this; + } + function init_ClassHandle() { + ClassHandle.prototype["isAliasOf"] = ClassHandle_isAliasOf; + ClassHandle.prototype["clone"] = ClassHandle_clone; + ClassHandle.prototype["delete"] = ClassHandle_delete; + ClassHandle.prototype["isDeleted"] = ClassHandle_isDeleted; + ClassHandle.prototype["deleteLater"] = ClassHandle_deleteLater; + } + function ClassHandle() { + } + function ensureOverloadTable(proto, methodName, humanName) { + if (proto[methodName].overloadTable === void 0) { + var prevFunc = proto[methodName]; + proto[methodName] = function() { + if (!proto[methodName].overloadTable.hasOwnProperty(arguments.length)) { + throwBindingError("Function '" + humanName + "' called with an invalid number of arguments (" + arguments.length + ") - expects one of (" + proto[methodName].overloadTable + ")!"); + } + return proto[methodName].overloadTable[arguments.length].apply(this, arguments); + }; + proto[methodName].overloadTable = []; + proto[methodName].overloadTable[prevFunc.argCount] = prevFunc; + } + } + function exposePublicSymbol(name, value, numArguments) { + if (Module.hasOwnProperty(name)) { + if (numArguments === void 0 || Module[name].overloadTable !== void 0 && Module[name].overloadTable[numArguments] !== void 0) { + throwBindingError("Cannot register public name '" + name + "' twice"); + } + ensureOverloadTable(Module, name, name); + if (Module.hasOwnProperty(numArguments)) { + throwBindingError("Cannot register multiple overloads of a function with the same number of arguments (" + numArguments + ")!"); + } + Module[name].overloadTable[numArguments] = value; + } else { + Module[name] = value; + if (numArguments !== void 0) { + Module[name].numArguments = numArguments; + } + } + } + function RegisteredClass(name, constructor, instancePrototype, rawDestructor, baseClass, getActualType, upcast, downcast) { + this.name = name; + this.constructor = constructor; + this.instancePrototype = instancePrototype; + this.rawDestructor = rawDestructor; + this.baseClass = baseClass; + this.getActualType = getActualType; + this.upcast = upcast; + this.downcast = downcast; + this.pureVirtualFunctions = []; + } + function upcastPointer(ptr, ptrClass, desiredClass) { + while (ptrClass !== desiredClass) { + if (!ptrClass.upcast) { + throwBindingError("Expected null or instance of " + desiredClass.name + ", got an instance of " + ptrClass.name); + } + ptr = ptrClass.upcast(ptr); + ptrClass = ptrClass.baseClass; + } + return ptr; + } + function constNoSmartPtrRawPointerToWireType(destructors, handle) { + if (handle === null) { + if (this.isReference) { + throwBindingError("null is not a valid " + this.name); + } + return 0; + } + if (!handle.$$) { + throwBindingError('Cannot pass "' + embindRepr(handle) + '" as a ' + this.name); + } + if (!handle.$$.ptr) { + throwBindingError("Cannot pass deleted object as a pointer of type " + this.name); + } + var handleClass = handle.$$.ptrType.registeredClass; + var ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass); + return ptr; + } + function genericPointerToWireType(destructors, handle) { + var ptr; + if (handle === null) { + if (this.isReference) { + throwBindingError("null is not a valid " + this.name); + } + if (this.isSmartPointer) { + ptr = this.rawConstructor(); + if (destructors !== null) { + destructors.push(this.rawDestructor, ptr); + } + return ptr; + } else { + return 0; + } + } + if (!handle.$$) { + throwBindingError('Cannot pass "' + embindRepr(handle) + '" as a ' + this.name); + } + if (!handle.$$.ptr) { + throwBindingError("Cannot pass deleted object as a pointer of type " + this.name); + } + if (!this.isConst && handle.$$.ptrType.isConst) { + throwBindingError("Cannot convert argument of type " + (handle.$$.smartPtrType ? handle.$$.smartPtrType.name : handle.$$.ptrType.name) + " to parameter type " + this.name); + } + var handleClass = handle.$$.ptrType.registeredClass; + ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass); + if (this.isSmartPointer) { + if (handle.$$.smartPtr === void 0) { + throwBindingError("Passing raw pointer to smart pointer is illegal"); + } + switch (this.sharingPolicy) { + case 0: + if (handle.$$.smartPtrType === this) { + ptr = handle.$$.smartPtr; + } else { + throwBindingError("Cannot convert argument of type " + (handle.$$.smartPtrType ? handle.$$.smartPtrType.name : handle.$$.ptrType.name) + " to parameter type " + this.name); + } + break; + case 1: + ptr = handle.$$.smartPtr; + break; + case 2: + if (handle.$$.smartPtrType === this) { + ptr = handle.$$.smartPtr; + } else { + var clonedHandle = handle["clone"](); + ptr = this.rawShare(ptr, Emval.toHandle(function() { + clonedHandle["delete"](); + })); + if (destructors !== null) { + destructors.push(this.rawDestructor, ptr); + } + } + break; + default: + throwBindingError("Unsupporting sharing policy"); + } + } + return ptr; + } + function nonConstNoSmartPtrRawPointerToWireType(destructors, handle) { + if (handle === null) { + if (this.isReference) { + throwBindingError("null is not a valid " + this.name); + } + return 0; + } + if (!handle.$$) { + throwBindingError('Cannot pass "' + embindRepr(handle) + '" as a ' + this.name); + } + if (!handle.$$.ptr) { + throwBindingError("Cannot pass deleted object as a pointer of type " + this.name); + } + if (handle.$$.ptrType.isConst) { + throwBindingError("Cannot convert argument of type " + handle.$$.ptrType.name + " to parameter type " + this.name); + } + var handleClass = handle.$$.ptrType.registeredClass; + var ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass); + return ptr; + } + function RegisteredPointer_getPointee(ptr) { + if (this.rawGetPointee) { + ptr = this.rawGetPointee(ptr); + } + return ptr; + } + function RegisteredPointer_destructor(ptr) { + if (this.rawDestructor) { + this.rawDestructor(ptr); + } + } + function RegisteredPointer_deleteObject(handle) { + if (handle !== null) { + handle["delete"](); + } + } + function init_RegisteredPointer() { + RegisteredPointer.prototype.getPointee = RegisteredPointer_getPointee; + RegisteredPointer.prototype.destructor = RegisteredPointer_destructor; + RegisteredPointer.prototype["argPackAdvance"] = 8; + RegisteredPointer.prototype["readValueFromPointer"] = simpleReadValueFromPointer; + RegisteredPointer.prototype["deleteObject"] = RegisteredPointer_deleteObject; + RegisteredPointer.prototype["fromWireType"] = RegisteredPointer_fromWireType; + } + function RegisteredPointer(name, registeredClass, isReference, isConst, isSmartPointer, pointeeType, sharingPolicy, rawGetPointee, rawConstructor, rawShare, rawDestructor) { + this.name = name; + this.registeredClass = registeredClass; + this.isReference = isReference; + this.isConst = isConst; + this.isSmartPointer = isSmartPointer; + this.pointeeType = pointeeType; + this.sharingPolicy = sharingPolicy; + this.rawGetPointee = rawGetPointee; + this.rawConstructor = rawConstructor; + this.rawShare = rawShare; + this.rawDestructor = rawDestructor; + if (!isSmartPointer && registeredClass.baseClass === void 0) { + if (isConst) { + this["toWireType"] = constNoSmartPtrRawPointerToWireType; + this.destructorFunction = null; + } else { + this["toWireType"] = nonConstNoSmartPtrRawPointerToWireType; + this.destructorFunction = null; + } + } else { + this["toWireType"] = genericPointerToWireType; + } + } + function replacePublicSymbol(name, value, numArguments) { + if (!Module.hasOwnProperty(name)) { + throwInternalError("Replacing nonexistant public symbol"); + } + if (Module[name].overloadTable !== void 0 && numArguments !== void 0) { + Module[name].overloadTable[numArguments] = value; + } else { + Module[name] = value; + Module[name].argCount = numArguments; + } + } + function dynCallLegacy(sig, ptr, args) { + var f = Module["dynCall_" + sig]; + return args && args.length ? f.apply(null, [ptr].concat(args)) : f.call(null, ptr); + } + function dynCall(sig, ptr, args) { + if (sig.includes("j")) { + return dynCallLegacy(sig, ptr, args); + } + var rtn = getWasmTableEntry(ptr).apply(null, args); + return rtn; + } + function getDynCaller(sig, ptr) { + var argCache = []; + return function() { + argCache.length = 0; + Object.assign(argCache, arguments); + return dynCall(sig, ptr, argCache); + }; + } + function embind__requireFunction(signature, rawFunction) { + signature = readLatin1String(signature); + function makeDynCaller() { + if (signature.includes("j")) { + return getDynCaller(signature, rawFunction); + } + return getWasmTableEntry(rawFunction); + } + var fp = makeDynCaller(); + if (typeof fp != "function") { + throwBindingError("unknown function pointer with signature " + signature + ": " + rawFunction); + } + return fp; + } + var UnboundTypeError = void 0; + function getTypeName(type) { + var ptr = ___getTypeName(type); + var rv = readLatin1String(ptr); + _free(ptr); + return rv; + } + function throwUnboundTypeError(message, types) { + var unboundTypes = []; + var seen = {}; + function visit(type) { + if (seen[type]) { + return; + } + if (registeredTypes[type]) { + return; + } + if (typeDependencies[type]) { + typeDependencies[type].forEach(visit); + return; + } + unboundTypes.push(type); + seen[type] = true; + } + types.forEach(visit); + throw new UnboundTypeError(message + ": " + unboundTypes.map(getTypeName).join([", "])); + } + function __embind_register_class(rawType, rawPointerType, rawConstPointerType, baseClassRawType, getActualTypeSignature, getActualType, upcastSignature, upcast, downcastSignature, downcast, name, destructorSignature, rawDestructor) { + name = readLatin1String(name); + getActualType = embind__requireFunction(getActualTypeSignature, getActualType); + if (upcast) { + upcast = embind__requireFunction(upcastSignature, upcast); + } + if (downcast) { + downcast = embind__requireFunction(downcastSignature, downcast); + } + rawDestructor = embind__requireFunction(destructorSignature, rawDestructor); + var legalFunctionName = makeLegalFunctionName(name); + exposePublicSymbol(legalFunctionName, function() { + throwUnboundTypeError("Cannot construct " + name + " due to unbound types", [baseClassRawType]); + }); + whenDependentTypesAreResolved([rawType, rawPointerType, rawConstPointerType], baseClassRawType ? [baseClassRawType] : [], function(base) { + base = base[0]; + var baseClass; + var basePrototype; + if (baseClassRawType) { + baseClass = base.registeredClass; + basePrototype = baseClass.instancePrototype; + } else { + basePrototype = ClassHandle.prototype; + } + var constructor = createNamedFunction(legalFunctionName, function() { + if (Object.getPrototypeOf(this) !== instancePrototype) { + throw new BindingError("Use 'new' to construct " + name); + } + if (registeredClass.constructor_body === void 0) { + throw new BindingError(name + " has no accessible constructor"); + } + var body = registeredClass.constructor_body[arguments.length]; + if (body === void 0) { + throw new BindingError("Tried to invoke ctor of " + name + " with invalid number of parameters (" + arguments.length + ") - expected (" + Object.keys(registeredClass.constructor_body).toString() + ") parameters instead!"); + } + return body.apply(this, arguments); + }); + var instancePrototype = Object.create(basePrototype, { constructor: { value: constructor } }); + constructor.prototype = instancePrototype; + var registeredClass = new RegisteredClass(name, constructor, instancePrototype, rawDestructor, baseClass, getActualType, upcast, downcast); + var referenceConverter = new RegisteredPointer(name, registeredClass, true, false, false); + var pointerConverter = new RegisteredPointer(name + "*", registeredClass, false, false, false); + var constPointerConverter = new RegisteredPointer(name + " const*", registeredClass, false, true, false); + registeredPointers[rawType] = { pointerType: pointerConverter, constPointerType: constPointerConverter }; + replacePublicSymbol(legalFunctionName, constructor); + return [referenceConverter, pointerConverter, constPointerConverter]; + }); + } + function heap32VectorToArray(count, firstElement) { + var array = []; + for (var i = 0; i < count; i++) { + array.push(GROWABLE_HEAP_U32()[firstElement + i * 4 >>> 2]); + } + return array; + } + function 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"; + } + invokerFnBody += "}\n"; + args1.push(invokerFnBody); + var invokerFunction = new_(Function, args1).apply(null, args2); + return invokerFunction; + } + function __embind_register_class_constructor(rawClassType, argCount, rawArgTypesAddr, invokerSignature, invoker, rawConstructor) { + assert(argCount > 0); + var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr); + invoker = embind__requireFunction(invokerSignature, invoker); + whenDependentTypesAreResolved([], [rawClassType], function(classType) { + classType = classType[0]; + var humanName = "constructor " + classType.name; + if (classType.registeredClass.constructor_body === void 0) { + classType.registeredClass.constructor_body = []; + } + if (classType.registeredClass.constructor_body[argCount - 1] !== void 0) { + throw new BindingError("Cannot register multiple constructors with identical number of parameters (" + (argCount - 1) + ") for class '" + classType.name + "'! Overload resolution is currently only performed using the parameter count, not actual type info!"); + } + classType.registeredClass.constructor_body[argCount - 1] = () => { + throwUnboundTypeError("Cannot construct " + classType.name + " due to unbound types", rawArgTypes); + }; + whenDependentTypesAreResolved([], rawArgTypes, function(argTypes) { + argTypes.splice(1, 0, null); + classType.registeredClass.constructor_body[argCount - 1] = craftInvokerFunction(humanName, argTypes, null, invoker, rawConstructor); + return []; + }); + return []; + }); + } + function __embind_register_class_function(rawClassType, methodName, argCount, rawArgTypesAddr, invokerSignature, rawInvoker, context, isPureVirtual) { + var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr); + methodName = readLatin1String(methodName); + rawInvoker = embind__requireFunction(invokerSignature, rawInvoker); + whenDependentTypesAreResolved([], [rawClassType], function(classType) { + classType = classType[0]; + var humanName = classType.name + "." + methodName; + if (methodName.startsWith("@@")) { + methodName = Symbol[methodName.substring(2)]; + } + if (isPureVirtual) { + classType.registeredClass.pureVirtualFunctions.push(methodName); + } + function unboundTypesHandler() { + throwUnboundTypeError("Cannot call " + humanName + " due to unbound types", rawArgTypes); + } + var proto = classType.registeredClass.instancePrototype; + var method = proto[methodName]; + if (method === void 0 || method.overloadTable === void 0 && method.className !== classType.name && method.argCount === argCount - 2) { + unboundTypesHandler.argCount = argCount - 2; + unboundTypesHandler.className = classType.name; + proto[methodName] = unboundTypesHandler; + } else { + ensureOverloadTable(proto, methodName, humanName); + proto[methodName].overloadTable[argCount - 2] = unboundTypesHandler; + } + whenDependentTypesAreResolved([], rawArgTypes, function(argTypes) { + var memberFunction = craftInvokerFunction(humanName, argTypes, classType, rawInvoker, context); + 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; + } + var Emval = { toValue: (handle) => { + if (!handle) { + throwBindingError("Cannot use deleted val. handle = " + handle); + } + return emval_handle_array[handle].value; + }, toHandle: (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 }; + return handle; + } + } + } }; + function __embind_register_emval(rawType, name) { + name = readLatin1String(name); + registerType(rawType, { name, "fromWireType": function(handle) { + var rv = Emval.toValue(handle); + __emval_decref(handle); + return rv; + }, "toWireType": function(destructors, value) { + return Emval.toHandle(value); + }, "argPackAdvance": 8, "readValueFromPointer": simpleReadValueFromPointer, destructorFunction: null }); + } + function enumReadValueFromPointer(name, shift, signed) { + switch (shift) { + case 0: + return function(pointer) { + var heap = signed ? GROWABLE_HEAP_I8() : GROWABLE_HEAP_U8(); + return this["fromWireType"](heap[pointer >>> 0]); + }; + case 1: + return function(pointer) { + var heap = signed ? GROWABLE_HEAP_I16() : GROWABLE_HEAP_U16(); + return this["fromWireType"](heap[pointer >>> 1]); + }; + case 2: + return function(pointer) { + var heap = signed ? GROWABLE_HEAP_I32() : GROWABLE_HEAP_U32(); + return this["fromWireType"](heap[pointer >>> 2]); + }; + default: + throw new TypeError("Unknown integer type: " + name); + } + } + function __embind_register_enum(rawType, name, size, isSigned) { + var shift = getShiftFromSize(size); + name = readLatin1String(name); + function ctor() { + } + ctor.values = {}; + registerType(rawType, { name, constructor: ctor, "fromWireType": function(c) { + return this.constructor.values[c]; + }, "toWireType": function(destructors, c) { + return c.value; + }, "argPackAdvance": 8, "readValueFromPointer": enumReadValueFromPointer(name, shift, isSigned), destructorFunction: null }); + exposePublicSymbol(name, ctor); + } + function requireRegisteredType(rawType, humanName) { + var impl = registeredTypes[rawType]; + if (impl === void 0) { + throwBindingError(humanName + " has unknown type " + getTypeName(rawType)); + } + return impl; + } + function __embind_register_enum_value(rawEnumType, name, enumValue) { + var enumType = requireRegisteredType(rawEnumType, "enum"); + name = readLatin1String(name); + var Enum = enumType.constructor; + var Value = Object.create(enumType.constructor.prototype, { value: { value: enumValue }, constructor: { value: createNamedFunction(enumType.name + "_" + name, function() { + }) } }); + Enum.values[enumValue] = Value; + Enum[name] = Value; + } + function embindRepr(v) { + if (v === null) { + return "null"; + } + var t = typeof v; + if (t === "object" || t === "array" || t === "function") { + return v.toString(); + } else { + return "" + v; + } + } + function floatReadValueFromPointer(name, shift) { + switch (shift) { + case 2: + return function(pointer) { + return this["fromWireType"](GROWABLE_HEAP_F32()[pointer >>> 2]); + }; + case 3: + return function(pointer) { + return this["fromWireType"](GROWABLE_HEAP_F64()[pointer >>> 3]); + }; + default: + throw new TypeError("Unknown float type: " + name); + } + } + function __embind_register_float(rawType, name, size) { + var shift = getShiftFromSize(size); + name = readLatin1String(name); + registerType(rawType, { name, "fromWireType": function(value) { + return value; + }, "toWireType": function(destructors, value) { + return value; + }, "argPackAdvance": 8, "readValueFromPointer": floatReadValueFromPointer(name, shift), destructorFunction: null }); + } + function __embind_register_function(name, argCount, rawArgTypesAddr, signature, rawInvoker, fn) { + var argTypes = heap32VectorToArray(argCount, rawArgTypesAddr); + name = readLatin1String(name); + rawInvoker = embind__requireFunction(signature, rawInvoker); + exposePublicSymbol(name, function() { + throwUnboundTypeError("Cannot call " + name + " due to unbound types", argTypes); + }, argCount - 1); + whenDependentTypesAreResolved([], argTypes, function(argTypes2) { + var invokerArgsArray = [argTypes2[0], null].concat(argTypes2.slice(1)); + replacePublicSymbol(name, craftInvokerFunction(name, invokerArgsArray, null, rawInvoker, fn), argCount - 1); + return []; + }); + } + function integerReadValueFromPointer(name, shift, signed) { + switch (shift) { + case 0: + return signed ? function readS8FromPointer(pointer) { + return GROWABLE_HEAP_I8()[pointer >>> 0]; + } : function readU8FromPointer(pointer) { + return GROWABLE_HEAP_U8()[pointer >>> 0]; + }; + case 1: + return signed ? function readS16FromPointer(pointer) { + return GROWABLE_HEAP_I16()[pointer >>> 1]; + } : function readU16FromPointer(pointer) { + return GROWABLE_HEAP_U16()[pointer >>> 1]; + }; + case 2: + return signed ? function readS32FromPointer(pointer) { + return GROWABLE_HEAP_I32()[pointer >>> 2]; + } : function readU32FromPointer(pointer) { + return GROWABLE_HEAP_U32()[pointer >>> 2]; + }; + default: + throw new TypeError("Unknown integer type: " + name); + } + } + function __embind_register_integer(primitiveType, name, size, minRange, maxRange) { + name = readLatin1String(name); + var shift = getShiftFromSize(size); + var fromWireType = (value) => value; + if (minRange === 0) { + var bitshift = 32 - 8 * size; + fromWireType = (value) => value << bitshift >>> bitshift; + } + var isUnsignedType = name.includes("unsigned"); + var checkAssertions = (value, toTypeName) => { + }; + var toWireType; + if (isUnsignedType) { + toWireType = function(destructors, value) { + checkAssertions(value, this.name); + return value >>> 0; + }; + } else { + toWireType = function(destructors, value) { + checkAssertions(value, this.name); + return value; + }; + } + registerType(primitiveType, { name, "fromWireType": fromWireType, "toWireType": toWireType, "argPackAdvance": 8, "readValueFromPointer": integerReadValueFromPointer(name, shift, minRange !== 0), destructorFunction: null }); + } + function __embind_register_memory_view(rawType, dataTypeIndex, name) { + var typeMapping = [Int8Array, Uint8Array, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array]; + var TA = typeMapping[dataTypeIndex]; + function decodeMemoryView(handle) { + handle = handle >> 2; + var heap = GROWABLE_HEAP_U32(); + var size = heap[handle >>> 0]; + var data = heap[handle + 1 >>> 0]; + return new TA(heap.buffer, data, size); + } + name = readLatin1String(name); + registerType(rawType, { name, "fromWireType": decodeMemoryView, "argPackAdvance": 8, "readValueFromPointer": decodeMemoryView }, { ignoreDuplicateRegistrations: true }); + } + function __embind_register_std_string(rawType, name) { + name = readLatin1String(name); + var stdStringIsUTF8 = name === "std::string"; + registerType(rawType, { name, "fromWireType": function(value) { + var length = GROWABLE_HEAP_U32()[value >>> 2]; + var payload = value + 4; + var str; + if (stdStringIsUTF8) { + var decodeStartPtr = payload; + for (var i = 0; i <= length; ++i) { + var currentBytePtr = payload + i; + if (i == length || GROWABLE_HEAP_U8()[currentBytePtr >>> 0] == 0) { + var maxRead = currentBytePtr - decodeStartPtr; + var stringSegment = UTF8ToString(decodeStartPtr, maxRead); + if (str === void 0) { + str = stringSegment; + } else { + str += String.fromCharCode(0); + str += stringSegment; + } + decodeStartPtr = currentBytePtr + 1; + } + } + } else { + var a = new Array(length); + for (var i = 0; i < length; ++i) { + a[i] = String.fromCharCode(GROWABLE_HEAP_U8()[payload + i >>> 0]); + } + str = a.join(""); + } + _free(value); + return str; + }, "toWireType": function(destructors, value) { + if (value instanceof ArrayBuffer) { + value = new Uint8Array(value); + } + var length; + var valueIsOfTypeString = typeof value == "string"; + if (!(valueIsOfTypeString || value instanceof Uint8Array || value instanceof Uint8ClampedArray || value instanceof Int8Array)) { + throwBindingError("Cannot pass non-string to std::string"); + } + if (stdStringIsUTF8 && valueIsOfTypeString) { + length = lengthBytesUTF8(value); + } else { + length = value.length; + } + var base = _malloc(4 + length + 1); + var ptr = base + 4; + ptr >>>= 0; + GROWABLE_HEAP_U32()[base >>> 2] = length; + if (stdStringIsUTF8 && valueIsOfTypeString) { + stringToUTF8(value, ptr, length + 1); + } else { + if (valueIsOfTypeString) { + for (var i = 0; i < length; ++i) { + var charCode = value.charCodeAt(i); + if (charCode > 255) { + _free(ptr); + throwBindingError("String has UTF-16 code units that do not fit in 8 bits"); + } + GROWABLE_HEAP_U8()[ptr + i >>> 0] = charCode; + } + } else { + for (var i = 0; i < length; ++i) { + GROWABLE_HEAP_U8()[ptr + i >>> 0] = value[i]; + } + } + } + if (destructors !== null) { + destructors.push(_free, base); + } + return base; + }, "argPackAdvance": 8, "readValueFromPointer": simpleReadValueFromPointer, destructorFunction: function(ptr) { + _free(ptr); + } }); + } + var UTF16Decoder = typeof TextDecoder != "undefined" ? new TextDecoder("utf-16le") : void 0; + function UTF16ToString(ptr, maxBytesToRead) { + var endPtr = ptr; + var idx = endPtr >> 1; + var maxIdx = idx + maxBytesToRead / 2; + while (!(idx >= maxIdx) && GROWABLE_HEAP_U16()[idx >>> 0]) + ++idx; + endPtr = idx << 1; + if (endPtr - ptr > 32 && UTF16Decoder) + return UTF16Decoder.decode(GROWABLE_HEAP_U8().slice(ptr, endPtr)); + var str = ""; + for (var i = 0; !(i >= maxBytesToRead / 2); ++i) { + var codeUnit = GROWABLE_HEAP_I16()[ptr + i * 2 >>> 1]; + if (codeUnit == 0) + break; + str += String.fromCharCode(codeUnit); + } + return str; + } + 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); + GROWABLE_HEAP_I16()[outPtr >>> 1] = codeUnit; + outPtr += 2; + } + GROWABLE_HEAP_I16()[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 = GROWABLE_HEAP_I32()[ptr + i * 4 >>> 2]; + if (utf32 == 0) + break; + ++i; + if (utf32 >= 65536) { + var ch = utf32 - 65536; + str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023); + } else { + str += String.fromCharCode(utf32); + } + } + return str; + } + 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; + } + GROWABLE_HEAP_I32()[outPtr >>> 2] = codeUnit; + outPtr += 4; + if (outPtr + 4 > endPtr) + break; + } + GROWABLE_HEAP_I32()[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 __embind_register_std_wstring(rawType, charSize, name) { + name = readLatin1String(name); + var decodeString, encodeString, getHeap, lengthBytesUTF, shift; + if (charSize === 2) { + decodeString = UTF16ToString; + encodeString = stringToUTF16; + lengthBytesUTF = lengthBytesUTF16; + getHeap = () => GROWABLE_HEAP_U16(); + shift = 1; + } else if (charSize === 4) { + decodeString = UTF32ToString; + encodeString = stringToUTF32; + lengthBytesUTF = lengthBytesUTF32; + getHeap = () => GROWABLE_HEAP_U32(); + shift = 2; + } + registerType(rawType, { name, "fromWireType": function(value) { + var length = GROWABLE_HEAP_U32()[value >>> 2]; + var HEAP = getHeap(); + var str; + var decodeStartPtr = value + 4; + for (var i = 0; i <= length; ++i) { + var currentBytePtr = value + 4 + i * charSize; + if (i == length || HEAP[currentBytePtr >>> shift] == 0) { + var maxReadBytes = currentBytePtr - decodeStartPtr; + var stringSegment = decodeString(decodeStartPtr, maxReadBytes); + if (str === void 0) { + str = stringSegment; + } else { + str += String.fromCharCode(0); + str += stringSegment; + } + decodeStartPtr = currentBytePtr + charSize; + } + } + _free(value); + return str; + }, "toWireType": function(destructors, value) { + if (!(typeof value == "string")) { + throwBindingError("Cannot pass non-string to C++ string type " + name); + } + var length = lengthBytesUTF(value); + var ptr = _malloc(4 + length + charSize); + ptr >>>= 0; + GROWABLE_HEAP_U32()[ptr >>> 2] = length >> shift; + encodeString(value, ptr + 4, length + charSize); + if (destructors !== null) { + destructors.push(_free, ptr); + } + return ptr; + }, "argPackAdvance": 8, "readValueFromPointer": simpleReadValueFromPointer, destructorFunction: function(ptr) { + _free(ptr); + } }); + } + function __embind_register_value_array(rawType, name, constructorSignature, rawConstructor, destructorSignature, rawDestructor) { + tupleRegistrations[rawType] = { name: readLatin1String(name), rawConstructor: embind__requireFunction(constructorSignature, rawConstructor), rawDestructor: embind__requireFunction(destructorSignature, rawDestructor), elements: [] }; + } + function __embind_register_value_array_element(rawTupleType, getterReturnType, getterSignature, getter, getterContext, setterArgumentType, setterSignature, setter, setterContext) { + tupleRegistrations[rawTupleType].elements.push({ getterReturnType, getter: embind__requireFunction(getterSignature, getter), getterContext, setterArgumentType, setter: embind__requireFunction(setterSignature, setter), setterContext }); + } + function __embind_register_value_object(rawType, name, constructorSignature, rawConstructor, destructorSignature, rawDestructor) { + structRegistrations[rawType] = { name: readLatin1String(name), rawConstructor: embind__requireFunction(constructorSignature, rawConstructor), rawDestructor: embind__requireFunction(destructorSignature, rawDestructor), fields: [] }; + } + function __embind_register_value_object_field(structType, fieldName, getterReturnType, getterSignature, getter, getterContext, setterArgumentType, setterSignature, setter, setterContext) { + structRegistrations[structType].fields.push({ fieldName: readLatin1String(fieldName), getterReturnType, getter: embind__requireFunction(getterSignature, getter), getterContext, setterArgumentType, setter: embind__requireFunction(setterSignature, setter), setterContext }); + } + function __embind_register_void(rawType, name) { + name = readLatin1String(name); + registerType(rawType, { isVoid: true, name, "argPackAdvance": 0, "fromWireType": function() { + return void 0; + }, "toWireType": function(destructors, o) { + return void 0; + } }); + } + function __emscripten_err(str) { + err(UTF8ToString(str)); + } + function executeNotifiedProxyingQueue(queue) { + Atomics.store(GROWABLE_HEAP_I32(), queue >> 2, 1); + if (_pthread_self()) { + __emscripten_proxy_execute_task_queue(queue); + } + Atomics.compareExchange(GROWABLE_HEAP_I32(), queue >> 2, 1, 0); + } + Module["executeNotifiedProxyingQueue"] = executeNotifiedProxyingQueue; + function __emscripten_notify_task_queue(targetThreadId, currThreadId, mainThreadId, queue) { + if (targetThreadId == currThreadId) { + setTimeout(() => executeNotifiedProxyingQueue(queue)); + } else if (ENVIRONMENT_IS_PTHREAD) { + postMessage({ "targetThread": targetThreadId, "cmd": "processProxyingQueue", "queue": queue }); + } else { + var worker = PThread.pthreads[targetThreadId]; + if (!worker) { + return; + } + worker.postMessage({ "cmd": "processProxyingQueue", "queue": queue }); + } + return 1; + } + function __emscripten_set_offscreencanvas_size(target, width, height) { + return -1; + } + function __emval_as(handle, returnType, destructorsRef) { + handle = Emval.toValue(handle); + returnType = requireRegisteredType(returnType, "emval::as"); + var destructors = []; + var rd = Emval.toHandle(destructors); + GROWABLE_HEAP_U32()[destructorsRef >>> 2] = rd; + return returnType["toWireType"](destructors, handle); + } + function emval_lookupTypes(argCount, argTypes) { + var a = new Array(argCount); + for (var i = 0; i < argCount; ++i) { + a[i] = requireRegisteredType(GROWABLE_HEAP_U32()[argTypes + i * 4 >>> 2], "parameter " + i); + } + return a; + } + function __emval_call(handle, argCount, argTypes, argv) { + handle = Emval.toValue(handle); + var types = emval_lookupTypes(argCount, argTypes); + var args = new Array(argCount); + for (var i = 0; i < argCount; ++i) { + var type = types[i]; + args[i] = type["readValueFromPointer"](argv); + argv += type["argPackAdvance"]; + } + var rv = handle.apply(void 0, args); + return Emval.toHandle(rv); + } + var emval_symbols = {}; + function getStringOrSymbol(address) { + var symbol = emval_symbols[address]; + if (symbol === void 0) { + return readLatin1String(address); + } + return symbol; + } + function emval_get_global() { + if (typeof globalThis == "object") { + return globalThis; + } + return function() { + return Function; + }()("return this")(); + } + function __emval_get_global(name) { + if (name === 0) { + return Emval.toHandle(emval_get_global()); + } else { + name = getStringOrSymbol(name); + return Emval.toHandle(emval_get_global()[name]); + } + } + function __emval_get_property(handle, key) { + handle = Emval.toValue(handle); + key = Emval.toValue(key); + return Emval.toHandle(handle[key]); + } + function __emval_incref(handle) { + if (handle > 4) { + emval_handle_array[handle].refcount += 1; + } + } + function __emval_instanceof(object, constructor) { + object = Emval.toValue(object); + constructor = Emval.toValue(constructor); + return object instanceof constructor; + } + function __emval_is_number(handle) { + handle = Emval.toValue(handle); + return typeof handle == "number"; + } + function __emval_is_string(handle) { + handle = Emval.toValue(handle); + return typeof handle == "string"; + } + function __emval_new_array() { + return Emval.toHandle([]); + } + function __emval_new_cstring(v) { + return Emval.toHandle(getStringOrSymbol(v)); + } + function __emval_new_object() { + return Emval.toHandle({}); + } + function __emval_run_destructors(handle) { + var destructors = Emval.toValue(handle); + runDestructors(destructors); + __emval_decref(handle); + } + function __emval_set_property(handle, key, value) { + handle = Emval.toValue(handle); + key = Emval.toValue(key); + value = Emval.toValue(value); + handle[key] = value; + } + function __emval_take_value(type, arg) { + type = requireRegisteredType(type, "_emval_take_value"); + var v = type["readValueFromPointer"](arg); + return Emval.toHandle(v); + } + function _abort() { + abort(""); + } + function warnOnce(text) { + if (!warnOnce.shown) + warnOnce.shown = {}; + if (!warnOnce.shown[text]) { + warnOnce.shown[text] = 1; + err(text); + } + } + function _emscripten_check_blocking_allowed() { + if (ENVIRONMENT_IS_WORKER) + return; + warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread"); + } + var _emscripten_get_now; + _emscripten_get_now = () => performance.timeOrigin + performance.now(); + function _emscripten_memcpy_big(dest, src, num) { + GROWABLE_HEAP_U8().copyWithin(dest >>> 0, src >>> 0, src + num >>> 0); + } + function withStackSave(f) { + var stack = stackSave(); + var ret = f(); + stackRestore(stack); + return ret; + } + function _emscripten_proxy_to_main_thread_js(index, sync) { + var numCallArgs = arguments.length - 2; + var outerArgs = arguments; + return withStackSave(() => { + var serializedNumCallArgs = numCallArgs; + var args = stackAlloc(serializedNumCallArgs * 8); + var b = args >> 3; + for (var i = 0; i < numCallArgs; i++) { + var arg = outerArgs[2 + i]; + GROWABLE_HEAP_F64()[b + i >>> 0] = arg; + } + return _emscripten_run_in_main_runtime_thread_js(index, serializedNumCallArgs, args, sync); + }); + } + var _emscripten_receive_on_main_thread_js_callArgs = []; + function _emscripten_receive_on_main_thread_js(index, numCallArgs, args) { + _emscripten_receive_on_main_thread_js_callArgs.length = numCallArgs; + var b = args >> 3; + for (var i = 0; i < numCallArgs; i++) { + _emscripten_receive_on_main_thread_js_callArgs[i] = GROWABLE_HEAP_F64()[b + i >>> 0]; + } + var func = proxiedFunctionTable[index]; + return func.apply(null, _emscripten_receive_on_main_thread_js_callArgs); + } + function getHeapMax() { + return 4294901760; + } + function emscripten_realloc_buffer(size) { + var b = wasmMemory.buffer; + try { + wasmMemory.grow(size - b.byteLength + 65535 >>> 16); + updateMemoryViews(); + return 1; + } catch (e) { + } + } + function _emscripten_resize_heap(requestedSize) { + var oldSize = GROWABLE_HEAP_U8().length; + requestedSize = requestedSize >>> 0; + if (requestedSize <= oldSize) { + return false; + } + var maxHeapSize = getHeapMax(); + if (requestedSize > maxHeapSize) { + return false; + } + let alignUp = (x, multiple) => x + (multiple - x % multiple) % multiple; + for (var cutDown = 1; cutDown <= 4; cutDown *= 2) { + var overGrownHeapSize = oldSize * (1 + 0.2 / cutDown); + overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296); + var newSize = Math.min(maxHeapSize, alignUp(Math.max(requestedSize, overGrownHeapSize), 65536)); + var replacement = emscripten_realloc_buffer(newSize); + if (replacement) { + return true; + } + } + return false; + } + function _emscripten_unwind_to_js_event_loop() { + throw "unwind"; + } + 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) { + if (ENV[x] === void 0) + delete env[x]; + else + env[x] = ENV[x]; + } + var strings = []; + for (var x in env) { + strings.push(x + "=" + env[x]); + } + getEnvStrings.strings = strings; + } + return getEnvStrings.strings; + } + function writeAsciiToMemory(str, buffer, dontAddNull) { + for (var i = 0; i < str.length; ++i) { + GROWABLE_HEAP_I8()[buffer++ >>> 0] = str.charCodeAt(i); + } + if (!dontAddNull) + GROWABLE_HEAP_I8()[buffer >>> 0] = 0; + } + function _environ_get(__environ, environ_buf) { + if (ENVIRONMENT_IS_PTHREAD) + return _emscripten_proxy_to_main_thread_js(3, 1, __environ, environ_buf); + var bufSize = 0; + getEnvStrings().forEach(function(string, i) { + var ptr = environ_buf + bufSize; + GROWABLE_HEAP_U32()[__environ + i * 4 >>> 2] = ptr; + writeAsciiToMemory(string, ptr); + bufSize += string.length + 1; + }); + return 0; + } + function _environ_sizes_get(penviron_count, penviron_buf_size) { + if (ENVIRONMENT_IS_PTHREAD) + return _emscripten_proxy_to_main_thread_js(4, 1, penviron_count, penviron_buf_size); + var strings = getEnvStrings(); + GROWABLE_HEAP_U32()[penviron_count >>> 2] = strings.length; + var bufSize = 0; + strings.forEach(function(string) { + bufSize += string.length + 1; + }); + GROWABLE_HEAP_U32()[penviron_buf_size >>> 2] = bufSize; + return 0; + } + function _fd_close(fd) { + if (ENVIRONMENT_IS_PTHREAD) + return _emscripten_proxy_to_main_thread_js(5, 1, fd); + try { + var stream = SYSCALLS.getStreamFromFD(fd); + FS.close(stream); + return 0; + } catch (e) { + if (typeof FS == "undefined" || !(e instanceof FS.ErrnoError)) + throw e; + return e.errno; + } + } + function doReadv(stream, iov, iovcnt, offset) { + var ret = 0; + for (var i = 0; i < iovcnt; i++) { + var ptr = GROWABLE_HEAP_U32()[iov >>> 2]; + var len = GROWABLE_HEAP_U32()[iov + 4 >>> 2]; + iov += 8; + var curr = FS.read(stream, GROWABLE_HEAP_I8(), ptr, len, offset); + if (curr < 0) + return -1; + ret += curr; + if (curr < len) + break; + if (typeof offset !== "undefined") { + offset += curr; + } + } + return ret; + } + function _fd_read(fd, iov, iovcnt, pnum) { + if (ENVIRONMENT_IS_PTHREAD) + return _emscripten_proxy_to_main_thread_js(6, 1, fd, iov, iovcnt, pnum); + try { + var stream = SYSCALLS.getStreamFromFD(fd); + var num = doReadv(stream, iov, iovcnt); + GROWABLE_HEAP_U32()[pnum >>> 2] = num; + return 0; + } catch (e) { + if (typeof FS == "undefined" || !(e instanceof FS.ErrnoError)) + throw e; + return e.errno; + } + } + function convertI32PairToI53Checked(lo, hi) { + return hi + 2097152 >>> 0 < 4194305 - !!lo ? (lo >>> 0) + hi * 4294967296 : NaN; + } + function _fd_seek(fd, offset_low, offset_high, whence, newOffset) { + if (ENVIRONMENT_IS_PTHREAD) + return _emscripten_proxy_to_main_thread_js(7, 1, fd, offset_low, offset_high, whence, newOffset); + try { + var offset = convertI32PairToI53Checked(offset_low, offset_high); + if (isNaN(offset)) + return 61; + var stream = SYSCALLS.getStreamFromFD(fd); + FS.llseek(stream, offset, whence); + tempI64 = [stream.position >>> 0, (tempDouble = stream.position, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], GROWABLE_HEAP_I32()[newOffset >>> 2] = tempI64[0], GROWABLE_HEAP_I32()[newOffset + 4 >>> 2] = tempI64[1]; + if (stream.getdents && offset === 0 && whence === 0) + stream.getdents = null; + return 0; + } catch (e) { + if (typeof FS == "undefined" || !(e instanceof FS.ErrnoError)) + throw e; + return e.errno; + } + } + function doWritev(stream, iov, iovcnt, offset) { + var ret = 0; + for (var i = 0; i < iovcnt; i++) { + var ptr = GROWABLE_HEAP_U32()[iov >>> 2]; + var len = GROWABLE_HEAP_U32()[iov + 4 >>> 2]; + iov += 8; + var curr = FS.write(stream, GROWABLE_HEAP_I8(), ptr, len, offset); + if (curr < 0) + return -1; + ret += curr; + if (typeof offset !== "undefined") { + offset += curr; + } + } + return ret; + } + function _fd_write(fd, iov, iovcnt, pnum) { + if (ENVIRONMENT_IS_PTHREAD) + return _emscripten_proxy_to_main_thread_js(8, 1, fd, iov, iovcnt, pnum); + try { + var stream = SYSCALLS.getStreamFromFD(fd); + var num = doWritev(stream, iov, iovcnt); + GROWABLE_HEAP_U32()[pnum >>> 2] = num; + return 0; + } catch (e) { + if (typeof FS == "undefined" || !(e instanceof FS.ErrnoError)) + throw e; + return e.errno; + } + } + 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 writeArrayToMemory(array, buffer) { + GROWABLE_HEAP_I8().set(array, buffer >>> 0); + } + function _strftime(s, maxsize, format, tm) { + var tm_zone = GROWABLE_HEAP_I32()[tm + 40 >>> 2]; + var date = { tm_sec: GROWABLE_HEAP_I32()[tm >>> 2], tm_min: GROWABLE_HEAP_I32()[tm + 4 >>> 2], tm_hour: GROWABLE_HEAP_I32()[tm + 8 >>> 2], tm_mday: GROWABLE_HEAP_I32()[tm + 12 >>> 2], tm_mon: GROWABLE_HEAP_I32()[tm + 16 >>> 2], tm_year: GROWABLE_HEAP_I32()[tm + 20 >>> 2], tm_wday: GROWABLE_HEAP_I32()[tm + 24 >>> 2], tm_yday: GROWABLE_HEAP_I32()[tm + 28 >>> 2], tm_isdst: GROWABLE_HEAP_I32()[tm + 32 >>> 2], tm_gmtoff: GROWABLE_HEAP_I32()[tm + 36 >>> 2], tm_zone: tm_zone ? UTF8ToString(tm_zone) : "" }; + var pattern = UTF8ToString(format); + var EXPANSION_RULES_1 = { "%c": "%a %b %d %H:%M:%S %Y", "%D": "%m/%d/%y", "%F": "%Y-%m-%d", "%h": "%b", "%r": "%I:%M:%S %p", "%R": "%H:%M", "%T": "%H:%M:%S", "%x": "%m/%d/%y", "%X": "%H:%M:%S", "%Ec": "%c", "%EC": "%C", "%Ex": "%m/%d/%y", "%EX": "%H:%M:%S", "%Ey": "%y", "%EY": "%Y", "%Od": "%d", "%Oe": "%e", "%OH": "%H", "%OI": "%I", "%Om": "%m", "%OM": "%M", "%OS": "%S", "%Ou": "%u", "%OU": "%U", "%OV": "%V", "%Ow": "%w", "%OW": "%W", "%Oy": "%y" }; + for (var rule in EXPANSION_RULES_1) { + pattern = pattern.replace(new RegExp(rule, "g"), EXPANSION_RULES_1[rule]); + } + var WEEKDAYS = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]; + var MONTHS = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]; + function leadingSomething(value, digits, character) { + var str = typeof value == "number" ? value.toString() : value || ""; + while (str.length < digits) { + str = character[0] + str; + } + return str; + } + function leadingNulls(value, digits) { + return leadingSomething(value, digits, "0"); + } + function compareByDay(date1, date2) { + function sgn(value) { + return value < 0 ? -1 : value > 0 ? 1 : 0; + } + var compare; + if ((compare = sgn(date1.getFullYear() - date2.getFullYear())) === 0) { + if ((compare = sgn(date1.getMonth() - date2.getMonth())) === 0) { + compare = sgn(date1.getDate() - date2.getDate()); + } + } + return compare; + } + function getFirstWeekStartDate(janFourth) { + switch (janFourth.getDay()) { + case 0: + return new Date(janFourth.getFullYear() - 1, 11, 29); + case 1: + return janFourth; + case 2: + return new Date(janFourth.getFullYear(), 0, 3); + case 3: + return new Date(janFourth.getFullYear(), 0, 2); + case 4: + return new Date(janFourth.getFullYear(), 0, 1); + case 5: + return new Date(janFourth.getFullYear() - 1, 11, 31); + case 6: + return new Date(janFourth.getFullYear() - 1, 11, 30); + } + } + function getWeekBasedYear(date2) { + var thisDate = __addDays(new Date(date2.tm_year + 1900, 0, 1), date2.tm_yday); + var janFourthThisYear = new Date(thisDate.getFullYear(), 0, 4); + var janFourthNextYear = new Date(thisDate.getFullYear() + 1, 0, 4); + var firstWeekStartThisYear = getFirstWeekStartDate(janFourthThisYear); + var firstWeekStartNextYear = getFirstWeekStartDate(janFourthNextYear); + if (compareByDay(firstWeekStartThisYear, thisDate) <= 0) { + if (compareByDay(firstWeekStartNextYear, thisDate) <= 0) { + return thisDate.getFullYear() + 1; + } + return thisDate.getFullYear(); + } + return thisDate.getFullYear() - 1; + } + var EXPANSION_RULES_2 = { "%a": function(date2) { + return WEEKDAYS[date2.tm_wday].substring(0, 3); + }, "%A": function(date2) { + return WEEKDAYS[date2.tm_wday]; + }, "%b": function(date2) { + return MONTHS[date2.tm_mon].substring(0, 3); + }, "%B": function(date2) { + return MONTHS[date2.tm_mon]; + }, "%C": function(date2) { + var year = date2.tm_year + 1900; + return leadingNulls(year / 100 | 0, 2); + }, "%d": function(date2) { + return leadingNulls(date2.tm_mday, 2); + }, "%e": function(date2) { + return leadingSomething(date2.tm_mday, 2, " "); + }, "%g": function(date2) { + return getWeekBasedYear(date2).toString().substring(2); + }, "%G": function(date2) { + return getWeekBasedYear(date2); + }, "%H": function(date2) { + return leadingNulls(date2.tm_hour, 2); + }, "%I": function(date2) { + var twelveHour = date2.tm_hour; + if (twelveHour == 0) + twelveHour = 12; + else if (twelveHour > 12) + twelveHour -= 12; + return leadingNulls(twelveHour, 2); + }, "%j": function(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(date2) { + return leadingNulls(date2.tm_mon + 1, 2); + }, "%M": function(date2) { + return leadingNulls(date2.tm_min, 2); + }, "%n": function() { + return "\n"; + }, "%p": function(date2) { + if (date2.tm_hour >= 0 && date2.tm_hour < 12) { + return "AM"; + } + return "PM"; + }, "%S": function(date2) { + return leadingNulls(date2.tm_sec, 2); + }, "%t": function() { + return " "; + }, "%u": function(date2) { + return date2.tm_wday || 7; + }, "%U": function(date2) { + var days = date2.tm_yday + 7 - date2.tm_wday; + return leadingNulls(Math.floor(days / 7), 2); + }, "%V": function(date2) { + var val = Math.floor((date2.tm_yday + 7 - (date2.tm_wday + 6) % 7) / 7); + if ((date2.tm_wday + 371 - date2.tm_yday - 2) % 7 <= 2) { + val++; + } + if (!val) { + val = 52; + var dec31 = (date2.tm_wday + 7 - date2.tm_yday - 1) % 7; + if (dec31 == 4 || dec31 == 5 && __isLeapYear(date2.tm_year % 400 - 1)) { + val++; + } + } else if (val == 53) { + var jan1 = (date2.tm_wday + 371 - date2.tm_yday) % 7; + if (jan1 != 4 && (jan1 != 3 || !__isLeapYear(date2.tm_year))) + val = 1; + } + return leadingNulls(val, 2); + }, "%w": function(date2) { + return date2.tm_wday; + }, "%W": function(date2) { + var days = date2.tm_yday + 7 - (date2.tm_wday + 6) % 7; + return leadingNulls(Math.floor(days / 7), 2); + }, "%y": function(date2) { + return (date2.tm_year + 1900).toString().substring(2); + }, "%Y": function(date2) { + return date2.tm_year + 1900; + }, "%z": function(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(date2) { + return date2.tm_zone; + }, "%%": function() { + return "%"; + } }; + pattern = pattern.replace(/%%/g, "\0\0"); + for (var rule in EXPANSION_RULES_2) { + if (pattern.includes(rule)) { + pattern = pattern.replace(new RegExp(rule, "g"), EXPANSION_RULES_2[rule](date)); + } + } + pattern = pattern.replace(/\0\0/g, "%"); + var bytes = intArrayFromString(pattern, false); + if (bytes.length > maxsize) { + return 0; + } + writeArrayToMemory(bytes, s); + return bytes.length - 1; + } + function _strftime_l(s, maxsize, format, tm, loc) { + return _strftime(s, maxsize, format, tm); + } + PThread.init(); + var FSNode = function(parent, name, mode, rdev) { + if (!parent) { + parent = this; + } + this.parent = parent; + this.mount = parent.mount; + this.mounted = null; + this.id = FS.nextInode++; + this.name = name; + this.mode = mode; + this.node_ops = {}; + this.stream_ops = {}; + this.rdev = rdev; + }; + var readMode = 292 | 73; + var writeMode = 146; + Object.defineProperties(FSNode.prototype, { read: { get: function() { + return (this.mode & readMode) === readMode; + }, set: function(val) { + val ? this.mode |= readMode : this.mode &= ~readMode; + } }, write: { get: function() { + return (this.mode & writeMode) === writeMode; + }, set: function(val) { + val ? this.mode |= writeMode : this.mode &= ~writeMode; + } }, isFolder: { get: function() { + return FS.isDir(this.mode); + } }, isDevice: { get: function() { + return FS.isChrdev(this.mode); + } } }); + FS.FSNode = FSNode; + FS.staticInit(); + InternalError = Module["InternalError"] = extendError(Error, "InternalError"); + embind_init_charCodes(); + BindingError = Module["BindingError"] = extendError(Error, "BindingError"); + init_ClassHandle(); + init_embind(); + init_RegisteredPointer(); + UnboundTypeError = Module["UnboundTypeError"] = extendError(Error, "UnboundTypeError"); + init_emval(); + var proxiedFunctionTable = [null, _proc_exit, exitOnMainThread, _environ_get, _environ_sizes_get, _fd_close, _fd_read, _fd_seek, _fd_write]; + var wasmImports = { "h": ___cxa_throw, "U": ___emscripten_init_main_thread_js, "K": ___emscripten_thread_cleanup, "Y": __dlinit, "$": __dlopen_js, "_": __dlsym_catchup_js, "ea": __embind_finalize_value_array, "r": __embind_finalize_value_object, "I": __embind_register_bigint, "ca": __embind_register_bool, "q": __embind_register_class, "p": __embind_register_class_constructor, "c": __embind_register_class_function, "ba": __embind_register_emval, "E": __embind_register_enum, "u": __embind_register_enum_value, "C": __embind_register_float, "d": __embind_register_function, "t": __embind_register_integer, "j": __embind_register_memory_view, "D": __embind_register_std_string, "y": __embind_register_std_wstring, "fa": __embind_register_value_array, "m": __embind_register_value_array_element, "s": __embind_register_value_object, "f": __embind_register_value_object_field, "da": __embind_register_void, "Z": __emscripten_err, "W": __emscripten_notify_task_queue, "T": __emscripten_set_offscreencanvas_size, "l": __emval_as, "x": __emval_call, "b": __emval_decref, "A": __emval_get_global, "i": __emval_get_property, "o": __emval_incref, "G": __emval_instanceof, "z": __emval_is_number, "F": __emval_is_string, "ga": __emval_new_array, "g": __emval_new_cstring, "w": __emval_new_object, "k": __emval_run_destructors, "n": __emval_set_property, "e": __emval_take_value, "B": _abort, "V": _emscripten_check_blocking_allowed, "v": _emscripten_get_now, "X": _emscripten_memcpy_big, "S": _emscripten_receive_on_main_thread_js, "Q": _emscripten_resize_heap, "aa": _emscripten_unwind_to_js_event_loop, "M": _environ_get, "N": _environ_sizes_get, "J": _exit, "O": _fd_close, "P": _fd_read, "H": _fd_seek, "R": _fd_write, "a": wasmMemory || Module["wasmMemory"], "L": _strftime_l }; + createWasm(); + var _malloc = function() { + return (_malloc = Module["asm"]["ja"]).apply(null, arguments); + }; + Module["__emscripten_tls_init"] = function() { + return (Module["__emscripten_tls_init"] = Module["asm"]["ka"]).apply(null, arguments); + }; + var _pthread_self = Module["_pthread_self"] = function() { + return (_pthread_self = Module["_pthread_self"] = Module["asm"]["la"]).apply(null, arguments); + }; + var ___getTypeName = Module["___getTypeName"] = function() { + return (___getTypeName = Module["___getTypeName"] = Module["asm"]["ma"]).apply(null, arguments); + }; + Module["__embind_initialize_bindings"] = function() { + return (Module["__embind_initialize_bindings"] = Module["asm"]["na"]).apply(null, arguments); + }; + var __emscripten_thread_init = Module["__emscripten_thread_init"] = function() { + return (__emscripten_thread_init = Module["__emscripten_thread_init"] = Module["asm"]["oa"]).apply(null, arguments); + }; + Module["__emscripten_thread_crashed"] = function() { + return (Module["__emscripten_thread_crashed"] = Module["asm"]["pa"]).apply(null, arguments); + }; + var _emscripten_run_in_main_runtime_thread_js = function() { + return (_emscripten_run_in_main_runtime_thread_js = Module["asm"]["qa"]).apply(null, arguments); + }; + var __emscripten_proxy_execute_task_queue = Module["__emscripten_proxy_execute_task_queue"] = function() { + return (__emscripten_proxy_execute_task_queue = Module["__emscripten_proxy_execute_task_queue"] = Module["asm"]["ra"]).apply(null, arguments); + }; + var __emscripten_thread_free_data = function() { + return (__emscripten_thread_free_data = Module["asm"]["sa"]).apply(null, arguments); + }; + var __emscripten_thread_exit = Module["__emscripten_thread_exit"] = function() { + return (__emscripten_thread_exit = Module["__emscripten_thread_exit"] = Module["asm"]["ta"]).apply(null, arguments); + }; + var _free = function() { + return (_free = Module["asm"]["ua"]).apply(null, arguments); + }; + var _emscripten_stack_set_limits = function() { + return (_emscripten_stack_set_limits = Module["asm"]["va"]).apply(null, arguments); + }; + var stackSave = function() { + return (stackSave = Module["asm"]["wa"]).apply(null, arguments); + }; + var stackRestore = function() { + return (stackRestore = Module["asm"]["xa"]).apply(null, arguments); + }; + var stackAlloc = function() { + return (stackAlloc = Module["asm"]["ya"]).apply(null, arguments); + }; + var ___cxa_is_pointer_type = function() { + return (___cxa_is_pointer_type = Module["asm"]["za"]).apply(null, arguments); + }; + Module["dynCall_jiji"] = function() { + return (Module["dynCall_jiji"] = Module["asm"]["Aa"]).apply(null, arguments); + }; + Module["dynCall_viijii"] = function() { + return (Module["dynCall_viijii"] = Module["asm"]["Ba"]).apply(null, arguments); + }; + Module["dynCall_iiiiij"] = function() { + return (Module["dynCall_iiiiij"] = Module["asm"]["Ca"]).apply(null, arguments); + }; + Module["dynCall_iiiiijj"] = function() { + return (Module["dynCall_iiiiijj"] = Module["asm"]["Da"]).apply(null, arguments); + }; + Module["dynCall_iiiiiijj"] = function() { + return (Module["dynCall_iiiiiijj"] = Module["asm"]["Ea"]).apply(null, arguments); + }; + Module["keepRuntimeAlive"] = keepRuntimeAlive; + Module["wasmMemory"] = wasmMemory; + Module["ExitStatus"] = ExitStatus; + Module["PThread"] = PThread; + var calledRun; + dependenciesFulfilled = function runCaller() { + if (!calledRun) + run(); + if (!calledRun) + dependenciesFulfilled = runCaller; + }; + function run() { + if (runDependencies > 0) { + return; + } + if (ENVIRONMENT_IS_PTHREAD) { + readyPromiseResolve(Module); + initRuntime(); + startWorker(Module); + return; + } + preRun(); + if (runDependencies > 0) { + return; + } + function doRun() { + if (calledRun) + return; + calledRun = true; + Module["calledRun"] = true; + if (ABORT) + return; + initRuntime(); + readyPromiseResolve(Module); + if (Module["onRuntimeInitialized"]) + Module["onRuntimeInitialized"](); + postRun(); + } + if (Module["setStatus"]) { + Module["setStatus"]("Running..."); + setTimeout(function() { + setTimeout(function() { + Module["setStatus"](""); + }, 1); + doRun(); + }, 1); + } else { + doRun(); + } + } + if (Module["preInit"]) { + if (typeof Module["preInit"] == "function") + Module["preInit"] = [Module["preInit"]]; + while (Module["preInit"].length > 0) { + Module["preInit"].pop()(); + } + } + run(); + return 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; } -} else - WebIFCWasm = require_web_ifc(); - -var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; - -function getDefaultExportFromCjs (x) { - return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x; -} - -var earcut$2 = {exports: {}}; - -earcut$2.exports = earcut; -earcut$2.exports.default = earcut; - -function earcut(data, holeIndices, dim) { - - dim = dim || 2; - - var hasHoles = holeIndices && holeIndices.length, - outerLen = hasHoles ? holeIndices[0] * dim : data.length, - outerNode = linkedList(data, 0, outerLen, dim, true), - triangles = []; - - if (!outerNode || outerNode.next === outerNode.prev) return triangles; - - var minX, minY, maxX, maxY, x, y, invSize; - - if (hasHoles) outerNode = eliminateHoles(data, holeIndices, outerNode, dim); - - // if the shape is not too simple, we'll use z-order curve hash later; calculate polygon bbox - if (data.length > 80 * dim) { - minX = maxX = data[0]; - minY = maxY = data[1]; +}); - for (var i = dim; i < outerLen; i += dim) { - x = data[i]; - y = data[i + 1]; - if (x < minX) minX = x; - if (y < minY) minY = y; - if (x > maxX) maxX = x; - if (y > maxY) maxY = y; +// dist/web-ifc.js +var require_web_ifc = __commonJS({ + "dist/web-ifc.js"(exports, module) { + var WebIFCWasm2 = (() => { + var _scriptDir = typeof document !== "undefined" && document.currentScript ? document.currentScript.src : void 0; + return function(WebIFCWasm3 = {}) { + var Module = typeof WebIFCWasm3 != "undefined" ? WebIFCWasm3 : {}; + var readyPromiseResolve, readyPromiseReject; + Module["ready"] = new Promise(function(resolve, reject) { + readyPromiseResolve = resolve; + readyPromiseReject = reject; + }); + var moduleOverrides = Object.assign({}, Module); + var thisProgram = "./this.program"; + var ENVIRONMENT_IS_WEB = true; + var scriptDirectory = ""; + function locateFile(path) { + if (Module["locateFile"]) { + return Module["locateFile"](path, scriptDirectory); + } + return scriptDirectory + path; + } + var read_, readAsync, readBinary; + { + if (typeof document != "undefined" && document.currentScript) { + scriptDirectory = document.currentScript.src; + } + if (_scriptDir) { + scriptDirectory = _scriptDir; + } + if (scriptDirectory.indexOf("blob:") !== 0) { + scriptDirectory = scriptDirectory.substr(0, scriptDirectory.replace(/[?#].*/, "").lastIndexOf("/") + 1); + } else { + scriptDirectory = ""; + } + { + read_ = (url) => { + var xhr = new XMLHttpRequest(); + xhr.open("GET", url, false); + xhr.send(null); + return xhr.responseText; + }; + readAsync = (url, onload, onerror) => { + var xhr = new XMLHttpRequest(); + xhr.open("GET", url, true); + xhr.responseType = "arraybuffer"; + xhr.onload = () => { + if (xhr.status == 200 || xhr.status == 0 && xhr.response) { + onload(xhr.response); + return; + } + onerror(); + }; + xhr.onerror = onerror; + xhr.send(null); + }; + } + } + var out = Module["print"] || console.log.bind(console); + var err = Module["printErr"] || console.warn.bind(console); + Object.assign(Module, moduleOverrides); + moduleOverrides = null; + if (Module["arguments"]) + Module["arguments"]; + if (Module["thisProgram"]) + thisProgram = Module["thisProgram"]; + if (Module["quit"]) + Module["quit"]; + var wasmBinary; + if (Module["wasmBinary"]) + wasmBinary = Module["wasmBinary"]; + Module["noExitRuntime"] || true; + if (typeof WebAssembly != "object") { + abort("no native wasm support detected"); + } + var wasmMemory; + var ABORT = false; + function assert(condition, text) { + if (!condition) { + abort(text); + } + } + var UTF8Decoder = typeof TextDecoder != "undefined" ? new TextDecoder("utf8") : void 0; + function UTF8ArrayToString(heapOrArray, idx, maxBytesToRead) { + idx >>>= 0; + var endIdx = idx + maxBytesToRead; + var endPtr = idx; + while (heapOrArray[endPtr] && !(endPtr >= endIdx)) + ++endPtr; + if (endPtr - idx > 16 && heapOrArray.buffer && UTF8Decoder) { + return UTF8Decoder.decode(heapOrArray.subarray(idx, endPtr)); + } + var str = ""; + while (idx < endPtr) { + var u0 = heapOrArray[idx++]; + if (!(u0 & 128)) { + str += String.fromCharCode(u0); + continue; + } + var u1 = heapOrArray[idx++] & 63; + if ((u0 & 224) == 192) { + str += String.fromCharCode((u0 & 31) << 6 | u1); + continue; + } + var u2 = heapOrArray[idx++] & 63; + if ((u0 & 240) == 224) { + u0 = (u0 & 15) << 12 | u1 << 6 | u2; + } else { + u0 = (u0 & 7) << 18 | u1 << 12 | u2 << 6 | heapOrArray[idx++] & 63; + } + if (u0 < 65536) { + str += String.fromCharCode(u0); + } else { + var ch = u0 - 65536; + str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023); + } + } + return str; + } + 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 c = str.charCodeAt(i); + if (c <= 127) { + len++; + } else if (c <= 2047) { + len += 2; + } else if (c >= 55296 && c <= 57343) { + len += 4; + ++i; + } else { + len += 3; + } + } + return len; + } + var HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64; + function updateMemoryViews() { + var b = wasmMemory.buffer; + Module["HEAP8"] = HEAP8 = new Int8Array(b); + Module["HEAP16"] = HEAP16 = new Int16Array(b); + Module["HEAP32"] = HEAP32 = new Int32Array(b); + Module["HEAPU8"] = HEAPU8 = new Uint8Array(b); + Module["HEAPU16"] = HEAPU16 = new Uint16Array(b); + Module["HEAPU32"] = HEAPU32 = new Uint32Array(b); + Module["HEAPF32"] = HEAPF32 = new Float32Array(b); + Module["HEAPF64"] = HEAPF64 = new Float64Array(b); + } + var wasmTable; + var __ATPRERUN__ = []; + var __ATINIT__ = []; + var __ATPOSTRUN__ = []; + 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() { + if (!Module["noFSInit"] && !FS.init.initialized) + FS.init(); + FS.ignorePermissions = false; + callRuntimeCallbacks(__ATINIT__); + } + function postRun() { + if (Module["postRun"]) { + if (typeof Module["postRun"] == "function") + Module["postRun"] = [Module["postRun"]]; + while (Module["postRun"].length) { + addOnPostRun(Module["postRun"].shift()); + } + } + callRuntimeCallbacks(__ATPOSTRUN__); + } + function addOnPreRun(cb) { + __ATPRERUN__.unshift(cb); + } + function addOnInit(cb) { + __ATINIT__.unshift(cb); + } + function addOnPostRun(cb) { + __ATPOSTRUN__.unshift(cb); + } + var runDependencies = 0; + var 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 (dependenciesFulfilled) { + var callback = dependenciesFulfilled; + dependenciesFulfilled = null; + callback(); + } + } + } + function abort(what) { + if (Module["onAbort"]) { + Module["onAbort"](what); + } + what = "Aborted(" + what + ")"; + err(what); + ABORT = true; + what += ". Build with -sASSERTIONS for more info."; + var e = new WebAssembly.RuntimeError(what); + readyPromiseReject(e); + throw e; + } + var dataURIPrefix = "data:application/octet-stream;base64,"; + function isDataURI(filename) { + return filename.startsWith(dataURIPrefix); + } + var wasmBinaryFile; + wasmBinaryFile = "web-ifc.wasm"; + if (!isDataURI(wasmBinaryFile)) { + wasmBinaryFile = locateFile(wasmBinaryFile); + } + function getBinary(file) { + try { + if (file == wasmBinaryFile && wasmBinary) { + return new Uint8Array(wasmBinary); + } + if (readBinary) ; + throw "both async and sync fetching of the wasm failed"; + } catch (err2) { + abort(err2); + } + } + function getBinaryPromise() { + if (!wasmBinary && (ENVIRONMENT_IS_WEB )) { + if (typeof fetch == "function") { + 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(wasmBinaryFile); + }); + } + } + return Promise.resolve().then(function() { + return getBinary(wasmBinaryFile); + }); + } + function createWasm() { + var info = { "a": wasmImports }; + function receiveInstance(instance, module2) { + var exports3 = instance.exports; + Module["asm"] = exports3; + wasmMemory = Module["asm"]["V"]; + updateMemoryViews(); + wasmTable = Module["asm"]["X"]; + addOnInit(Module["asm"]["W"]); + removeRunDependency(); + } + addRunDependency(); + function receiveInstantiationResult(result) { + receiveInstance(result["instance"]); + } + function instantiateArrayBuffer(receiver) { + return getBinaryPromise().then(function(binary) { + return WebAssembly.instantiate(binary, info); + }).then(function(instance) { + return instance; + }).then(receiver, function(reason) { + err("failed to asynchronously prepare wasm: " + reason); + abort(reason); + }); + } + function instantiateAsync() { + if (!wasmBinary && typeof WebAssembly.instantiateStreaming == "function" && !isDataURI(wasmBinaryFile) && typeof fetch == "function") { + return fetch(wasmBinaryFile, { credentials: "same-origin" }).then(function(response) { + var result = WebAssembly.instantiateStreaming(response, info); + return result.then(receiveInstantiationResult, function(reason) { + err("wasm streaming compile failed: " + reason); + err("falling back to ArrayBuffer instantiation"); + return instantiateArrayBuffer(receiveInstantiationResult); + }); + }); + } else { + return instantiateArrayBuffer(receiveInstantiationResult); + } + } + if (Module["instantiateWasm"]) { + try { + var exports2 = Module["instantiateWasm"](info, receiveInstance); + return exports2; + } catch (e) { + err("Module.instantiateWasm callback failed with error: " + e); + readyPromiseReject(e); + } + } + instantiateAsync().catch(readyPromiseReject); + return {}; + } + var tempDouble; + var tempI64; + function callRuntimeCallbacks(callbacks) { + while (callbacks.length > 0) { + callbacks.shift()(Module); + } + } + function ExceptionInfo(excPtr) { + this.excPtr = excPtr; + this.ptr = excPtr - 24; + this.set_type = function(type) { + HEAPU32[this.ptr + 4 >>> 2] = type; + }; + this.get_type = function() { + return HEAPU32[this.ptr + 4 >>> 2]; + }; + this.set_destructor = function(destructor) { + HEAPU32[this.ptr + 8 >>> 2] = destructor; + }; + this.get_destructor = function() { + return HEAPU32[this.ptr + 8 >>> 2]; + }; + this.set_refcount = function(refcount) { + HEAP32[this.ptr >>> 2] = refcount; + }; + this.set_caught = function(caught) { + caught = caught ? 1 : 0; + HEAP8[this.ptr + 12 >>> 0] = caught; + }; + this.get_caught = function() { + return HEAP8[this.ptr + 12 >>> 0] != 0; + }; + this.set_rethrown = function(rethrown) { + rethrown = rethrown ? 1 : 0; + HEAP8[this.ptr + 13 >>> 0] = rethrown; + }; + this.get_rethrown = function() { + return HEAP8[this.ptr + 13 >>> 0] != 0; + }; + this.init = function(type, destructor) { + this.set_adjusted_ptr(0); + this.set_type(type); + this.set_destructor(destructor); + this.set_refcount(0); + this.set_caught(false); + this.set_rethrown(false); + }; + this.add_ref = function() { + var value = HEAP32[this.ptr >>> 2]; + HEAP32[this.ptr >>> 2] = value + 1; + }; + this.release_ref = function() { + var prev = HEAP32[this.ptr >>> 2]; + HEAP32[this.ptr >>> 2] = prev - 1; + return prev === 1; + }; + this.set_adjusted_ptr = function(adjustedPtr) { + HEAPU32[this.ptr + 16 >>> 2] = adjustedPtr; + }; + this.get_adjusted_ptr = function() { + return HEAPU32[this.ptr + 16 >>> 2]; + }; + this.get_exception_ptr = function() { + var isPointer = ___cxa_is_pointer_type(this.get_type()); + if (isPointer) { + return HEAPU32[this.excPtr >>> 2]; + } + var adjusted = this.get_adjusted_ptr(); + if (adjusted !== 0) + return adjusted; + return this.excPtr; + }; + } + function ___cxa_throw(ptr, type, destructor) { + var info = new ExceptionInfo(ptr); + info.init(type, destructor); + throw ptr; + } + var tupleRegistrations = {}; + function runDestructors(destructors) { + while (destructors.length) { + var ptr = destructors.pop(); + var del = destructors.pop(); + del(ptr); + } + } + function simpleReadValueFromPointer(pointer) { + return this["fromWireType"](HEAP32[pointer >>> 2]); + } + var awaitingDependencies = {}; + var registeredTypes = {}; + var typeDependencies = {}; + var char_0 = 48; + var char_9 = 57; + function makeLegalFunctionName(name) { + if (name === void 0) { + return "_unknown"; + } + name = name.replace(/[^a-zA-Z0-9_]/g, "$"); + var f = name.charCodeAt(0); + if (f >= char_0 && f <= char_9) { + return "_" + name; + } + return name; + } + function createNamedFunction(name, body) { + name = makeLegalFunctionName(name); + return new Function("body", "return function " + name + '() {\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((dt, i) => { + if (registeredTypes.hasOwnProperty(dt)) { + typeConverters[i] = registeredTypes[dt]; + } else { + unregisteredTypes.push(dt); + if (!awaitingDependencies.hasOwnProperty(dt)) { + awaitingDependencies[dt] = []; + } + awaitingDependencies[dt].push(() => { + typeConverters[i] = registeredTypes[dt]; + ++registered; + if (registered === unregisteredTypes.length) { + onComplete(typeConverters); + } + }); + } + }); + if (unregisteredTypes.length === 0) { + onComplete(typeConverters); + } + } + function __embind_finalize_value_array(rawTupleType) { + var reg = tupleRegistrations[rawTupleType]; + delete tupleRegistrations[rawTupleType]; + var elements = reg.elements; + var elementsLength = elements.length; + var elementTypes = elements.map(function(elt) { + return elt.getterReturnType; + }).concat(elements.map(function(elt) { + return elt.setterArgumentType; + })); + var rawConstructor = reg.rawConstructor; + var rawDestructor = reg.rawDestructor; + whenDependentTypesAreResolved([rawTupleType], elementTypes, function(elementTypes2) { + elements.forEach((elt, i) => { + var getterReturnType = elementTypes2[i]; + var getter = elt.getter; + var getterContext = elt.getterContext; + var setterArgumentType = elementTypes2[i + elementsLength]; + var setter = elt.setter; + var setterContext = elt.setterContext; + elt.read = (ptr) => { + return getterReturnType["fromWireType"](getter(getterContext, ptr)); + }; + elt.write = (ptr, o) => { + var destructors = []; + setter(setterContext, ptr, setterArgumentType["toWireType"](destructors, o)); + runDestructors(destructors); + }; + }); + return [{ name: reg.name, "fromWireType": function(ptr) { + var rv = new Array(elementsLength); + for (var i = 0; i < elementsLength; ++i) { + rv[i] = elements[i].read(ptr); + } + rawDestructor(ptr); + return rv; + }, "toWireType": function(destructors, o) { + if (elementsLength !== o.length) { + throw new TypeError("Incorrect number of tuple elements for " + reg.name + ": expected=" + elementsLength + ", actual=" + o.length); + } + var ptr = rawConstructor(); + for (var i = 0; i < elementsLength; ++i) { + elements[i].write(ptr, o[i]); + } + if (destructors !== null) { + destructors.push(rawDestructor, ptr); + } + return ptr; + }, "argPackAdvance": 8, "readValueFromPointer": simpleReadValueFromPointer, destructorFunction: rawDestructor }]; + }); + } + var structRegistrations = {}; + 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((field) => field.getterReturnType).concat(fieldRecords.map((field) => field.setterArgumentType)); + whenDependentTypesAreResolved([structType], fieldTypes, (fieldTypes2) => { + var fields = {}; + fieldRecords.forEach((field, i) => { + var fieldName = field.fieldName; + var getterReturnType = fieldTypes2[i]; + var getter = field.getter; + var getterContext = field.getterContext; + var setterArgumentType = fieldTypes2[i + fieldRecords.length]; + var setter = field.setter; + var setterContext = field.setterContext; + fields[fieldName] = { read: (ptr) => { + return getterReturnType["fromWireType"](getter(getterContext, ptr)); + }, write: (ptr, o) => { + var destructors = []; + setter(setterContext, ptr, setterArgumentType["toWireType"](destructors, o)); + runDestructors(destructors); + } }; + }); + return [{ name: reg.name, "fromWireType": function(ptr) { + var rv = {}; + for (var i in fields) { + rv[i] = fields[i].read(ptr); + } + rawDestructor(ptr); + return rv; + }, "toWireType": function(destructors, o) { + for (var fieldName in fields) { + if (!(fieldName in o)) { + throw new TypeError('Missing field: "' + fieldName + '"'); + } + } + var ptr = rawConstructor(); + for (fieldName in fields) { + fields[fieldName].write(ptr, o[fieldName]); + } + if (destructors !== null) { + destructors.push(rawDestructor, ptr); + } + return ptr; + }, "argPackAdvance": 8, "readValueFromPointer": simpleReadValueFromPointer, destructorFunction: rawDestructor }]; + }); + } + function __embind_register_bigint(primitiveType, name, size, minRange, maxRange) { + } + 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 = {}) { + if (!("argPackAdvance" in registeredInstance)) { + throw new TypeError("registerType registeredInstance requires argPackAdvance"); + } + var name = registeredInstance.name; + if (!rawType) { + throwBindingError('type "' + name + '" must have a positive integer typeid pointer'); + } + if (registeredTypes.hasOwnProperty(rawType)) { + if (options.ignoreDuplicateRegistrations) { + return; + } else { + throwBindingError("Cannot register type '" + name + "' twice"); + } + } + registeredTypes[rawType] = registeredInstance; + delete typeDependencies[rawType]; + if (awaitingDependencies.hasOwnProperty(rawType)) { + var callbacks = awaitingDependencies[rawType]; + delete awaitingDependencies[rawType]; + callbacks.forEach((cb) => cb()); + } + } + function __embind_register_bool(rawType, name, size, trueValue, falseValue) { + var shift = getShiftFromSize(size); + name = readLatin1String(name); + registerType(rawType, { name, "fromWireType": function(wt) { + return !!wt; + }, "toWireType": function(destructors, o) { + return o ? trueValue : falseValue; + }, "argPackAdvance": 8, "readValueFromPointer": function(pointer) { + var heap; + if (size === 1) { + heap = HEAP8; + } else if (size === 2) { + heap = HEAP16; + } else if (size === 4) { + heap = HEAP32; + } else { + throw new TypeError("Unknown boolean type size: " + name); + } + return this["fromWireType"](heap[pointer >>> shift]); + }, destructorFunction: null }); + } + function ClassHandle_isAliasOf(other) { + if (!(this instanceof ClassHandle)) { + return false; + } + if (!(other instanceof ClassHandle)) { + return false; + } + var leftClass = this.$$.ptrType.registeredClass; + var left = this.$$.ptr; + var rightClass = other.$$.ptrType.registeredClass; + var right = other.$$.ptr; + while (leftClass.baseClass) { + left = leftClass.upcast(left); + leftClass = leftClass.baseClass; + } + while (rightClass.baseClass) { + right = rightClass.upcast(right); + rightClass = rightClass.baseClass; + } + return leftClass === rightClass && left === right; + } + function shallowCopyInternalPointer(o) { + return { count: o.count, deleteScheduled: o.deleteScheduled, preservePointerOnDelete: o.preservePointerOnDelete, ptr: o.ptr, ptrType: o.ptrType, smartPtr: o.smartPtr, smartPtrType: o.smartPtrType }; + } + function throwInstanceAlreadyDeleted(obj) { + function getInstanceTypeName(handle) { + return handle.$$.ptrType.registeredClass.name; + } + throwBindingError(getInstanceTypeName(obj) + " instance already deleted"); + } + var finalizationRegistry = false; + function detachFinalizer(handle) { + } + function runDestructor($$) { + if ($$.smartPtr) { + $$.smartPtrType.rawDestructor($$.smartPtr); + } else { + $$.ptrType.registeredClass.rawDestructor($$.ptr); + } + } + function releaseClassHandle($$) { + $$.count.value -= 1; + var toDelete = $$.count.value === 0; + if (toDelete) { + runDestructor($$); + } + } + function downcastPointer(ptr, ptrClass, desiredClass) { + if (ptrClass === desiredClass) { + return ptr; + } + if (desiredClass.baseClass === void 0) { + return null; + } + var rv = downcastPointer(ptr, ptrClass, desiredClass.baseClass); + if (rv === null) { + return null; + } + return desiredClass.downcast(rv); + } + var registeredPointers = {}; + function getInheritedInstanceCount() { + return Object.keys(registeredInstances).length; + } + function getLiveInheritedInstances() { + var rv = []; + for (var k in registeredInstances) { + if (registeredInstances.hasOwnProperty(k)) { + rv.push(registeredInstances[k]); + } + } + return rv; + } + var deletionQueue = []; + function flushPendingDeletes() { + while (deletionQueue.length) { + var obj = deletionQueue.pop(); + obj.$$.deleteScheduled = false; + obj["delete"](); + } + } + var delayFunction = void 0; + function setDelayFunction(fn) { + delayFunction = fn; + if (deletionQueue.length && delayFunction) { + delayFunction(flushPendingDeletes); + } + } + function init_embind() { + Module["getInheritedInstanceCount"] = getInheritedInstanceCount; + Module["getLiveInheritedInstances"] = getLiveInheritedInstances; + Module["flushPendingDeletes"] = flushPendingDeletes; + Module["setDelayFunction"] = setDelayFunction; + } + var registeredInstances = {}; + function getBasestPointer(class_, ptr) { + if (ptr === void 0) { + throwBindingError("ptr should not be undefined"); + } + while (class_.baseClass) { + ptr = class_.upcast(ptr); + class_ = class_.baseClass; + } + return ptr; + } + function getInheritedInstance(class_, ptr) { + ptr = getBasestPointer(class_, ptr); + return registeredInstances[ptr]; + } + function makeClassHandle(prototype, record) { + if (!record.ptrType || !record.ptr) { + throwInternalError("makeClassHandle requires ptr and ptrType"); + } + var hasSmartPtrType = !!record.smartPtrType; + var hasSmartPtr = !!record.smartPtr; + if (hasSmartPtrType !== hasSmartPtr) { + throwInternalError("Both smartPtrType and smartPtr must be specified"); + } + record.count = { value: 1 }; + return attachFinalizer(Object.create(prototype, { $$: { value: record } })); + } + function RegisteredPointer_fromWireType(ptr) { + var rawPointer = this.getPointee(ptr); + if (!rawPointer) { + this.destructor(ptr); + return null; + } + var registeredInstance = getInheritedInstance(this.registeredClass, rawPointer); + if (registeredInstance !== void 0) { + if (registeredInstance.$$.count.value === 0) { + registeredInstance.$$.ptr = rawPointer; + registeredInstance.$$.smartPtr = ptr; + return registeredInstance["clone"](); + } else { + var rv = registeredInstance["clone"](); + this.destructor(ptr); + return rv; + } + } + function makeDefaultHandle() { + if (this.isSmartPointer) { + return makeClassHandle(this.registeredClass.instancePrototype, { ptrType: this.pointeeType, ptr: rawPointer, smartPtrType: this, smartPtr: ptr }); + } else { + return makeClassHandle(this.registeredClass.instancePrototype, { ptrType: this, ptr }); + } + } + var actualType = this.registeredClass.getActualType(rawPointer); + var registeredPointerRecord = registeredPointers[actualType]; + if (!registeredPointerRecord) { + return makeDefaultHandle.call(this); + } + var toType; + if (this.isConst) { + toType = registeredPointerRecord.constPointerType; + } else { + toType = registeredPointerRecord.pointerType; + } + var dp = downcastPointer(rawPointer, this.registeredClass, toType.registeredClass); + if (dp === null) { + return makeDefaultHandle.call(this); + } + if (this.isSmartPointer) { + return makeClassHandle(toType.registeredClass.instancePrototype, { ptrType: toType, ptr: dp, smartPtrType: this, smartPtr: ptr }); + } else { + return makeClassHandle(toType.registeredClass.instancePrototype, { ptrType: toType, ptr: dp }); + } + } + function attachFinalizer(handle) { + if (typeof FinalizationRegistry === "undefined") { + attachFinalizer = (handle2) => handle2; + return handle; + } + finalizationRegistry = new FinalizationRegistry((info) => { + releaseClassHandle(info.$$); + }); + attachFinalizer = (handle2) => { + var $$ = handle2.$$; + var hasSmartPtr = !!$$.smartPtr; + if (hasSmartPtr) { + var info = { $$ }; + finalizationRegistry.register(handle2, info, handle2); + } + return handle2; + }; + detachFinalizer = (handle2) => finalizationRegistry.unregister(handle2); + return attachFinalizer(handle); + } + function ClassHandle_clone() { + if (!this.$$.ptr) { + throwInstanceAlreadyDeleted(this); + } + if (this.$$.preservePointerOnDelete) { + this.$$.count.value += 1; + return this; + } else { + var clone = attachFinalizer(Object.create(Object.getPrototypeOf(this), { $$: { value: shallowCopyInternalPointer(this.$$) } })); + clone.$$.count.value += 1; + clone.$$.deleteScheduled = false; + return clone; + } + } + function ClassHandle_delete() { + if (!this.$$.ptr) { + throwInstanceAlreadyDeleted(this); + } + if (this.$$.deleteScheduled && !this.$$.preservePointerOnDelete) { + throwBindingError("Object already scheduled for deletion"); + } + detachFinalizer(this); + releaseClassHandle(this.$$); + if (!this.$$.preservePointerOnDelete) { + this.$$.smartPtr = void 0; + this.$$.ptr = void 0; + } + } + function ClassHandle_isDeleted() { + return !this.$$.ptr; + } + function ClassHandle_deleteLater() { + if (!this.$$.ptr) { + throwInstanceAlreadyDeleted(this); + } + if (this.$$.deleteScheduled && !this.$$.preservePointerOnDelete) { + throwBindingError("Object already scheduled for deletion"); + } + deletionQueue.push(this); + if (deletionQueue.length === 1 && delayFunction) { + delayFunction(flushPendingDeletes); + } + this.$$.deleteScheduled = true; + return this; + } + function init_ClassHandle() { + ClassHandle.prototype["isAliasOf"] = ClassHandle_isAliasOf; + ClassHandle.prototype["clone"] = ClassHandle_clone; + ClassHandle.prototype["delete"] = ClassHandle_delete; + ClassHandle.prototype["isDeleted"] = ClassHandle_isDeleted; + ClassHandle.prototype["deleteLater"] = ClassHandle_deleteLater; + } + function ClassHandle() { + } + function ensureOverloadTable(proto, methodName, humanName) { + if (proto[methodName].overloadTable === void 0) { + var prevFunc = proto[methodName]; + proto[methodName] = function() { + if (!proto[methodName].overloadTable.hasOwnProperty(arguments.length)) { + throwBindingError("Function '" + humanName + "' called with an invalid number of arguments (" + arguments.length + ") - expects one of (" + proto[methodName].overloadTable + ")!"); + } + return proto[methodName].overloadTable[arguments.length].apply(this, arguments); + }; + proto[methodName].overloadTable = []; + proto[methodName].overloadTable[prevFunc.argCount] = prevFunc; + } + } + function exposePublicSymbol(name, value, numArguments) { + if (Module.hasOwnProperty(name)) { + if (numArguments === void 0 || Module[name].overloadTable !== void 0 && Module[name].overloadTable[numArguments] !== void 0) { + throwBindingError("Cannot register public name '" + name + "' twice"); + } + ensureOverloadTable(Module, name, name); + if (Module.hasOwnProperty(numArguments)) { + throwBindingError("Cannot register multiple overloads of a function with the same number of arguments (" + numArguments + ")!"); + } + Module[name].overloadTable[numArguments] = value; + } else { + Module[name] = value; + if (numArguments !== void 0) { + Module[name].numArguments = numArguments; + } + } + } + function RegisteredClass(name, constructor, instancePrototype, rawDestructor, baseClass, getActualType, upcast, downcast) { + this.name = name; + this.constructor = constructor; + this.instancePrototype = instancePrototype; + this.rawDestructor = rawDestructor; + this.baseClass = baseClass; + this.getActualType = getActualType; + this.upcast = upcast; + this.downcast = downcast; + this.pureVirtualFunctions = []; + } + function upcastPointer(ptr, ptrClass, desiredClass) { + while (ptrClass !== desiredClass) { + if (!ptrClass.upcast) { + throwBindingError("Expected null or instance of " + desiredClass.name + ", got an instance of " + ptrClass.name); + } + ptr = ptrClass.upcast(ptr); + ptrClass = ptrClass.baseClass; + } + return ptr; + } + function constNoSmartPtrRawPointerToWireType(destructors, handle) { + if (handle === null) { + if (this.isReference) { + throwBindingError("null is not a valid " + this.name); + } + return 0; + } + if (!handle.$$) { + throwBindingError('Cannot pass "' + embindRepr(handle) + '" as a ' + this.name); + } + if (!handle.$$.ptr) { + throwBindingError("Cannot pass deleted object as a pointer of type " + this.name); + } + var handleClass = handle.$$.ptrType.registeredClass; + var ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass); + return ptr; + } + function genericPointerToWireType(destructors, handle) { + var ptr; + if (handle === null) { + if (this.isReference) { + throwBindingError("null is not a valid " + this.name); + } + if (this.isSmartPointer) { + ptr = this.rawConstructor(); + if (destructors !== null) { + destructors.push(this.rawDestructor, ptr); + } + return ptr; + } else { + return 0; + } + } + if (!handle.$$) { + throwBindingError('Cannot pass "' + embindRepr(handle) + '" as a ' + this.name); + } + if (!handle.$$.ptr) { + throwBindingError("Cannot pass deleted object as a pointer of type " + this.name); + } + if (!this.isConst && handle.$$.ptrType.isConst) { + throwBindingError("Cannot convert argument of type " + (handle.$$.smartPtrType ? handle.$$.smartPtrType.name : handle.$$.ptrType.name) + " to parameter type " + this.name); + } + var handleClass = handle.$$.ptrType.registeredClass; + ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass); + if (this.isSmartPointer) { + if (handle.$$.smartPtr === void 0) { + throwBindingError("Passing raw pointer to smart pointer is illegal"); + } + switch (this.sharingPolicy) { + case 0: + if (handle.$$.smartPtrType === this) { + ptr = handle.$$.smartPtr; + } else { + throwBindingError("Cannot convert argument of type " + (handle.$$.smartPtrType ? handle.$$.smartPtrType.name : handle.$$.ptrType.name) + " to parameter type " + this.name); + } + break; + case 1: + ptr = handle.$$.smartPtr; + break; + case 2: + if (handle.$$.smartPtrType === this) { + ptr = handle.$$.smartPtr; + } else { + var clonedHandle = handle["clone"](); + ptr = this.rawShare(ptr, Emval.toHandle(function() { + clonedHandle["delete"](); + })); + if (destructors !== null) { + destructors.push(this.rawDestructor, ptr); + } + } + break; + default: + throwBindingError("Unsupporting sharing policy"); + } + } + return ptr; + } + function nonConstNoSmartPtrRawPointerToWireType(destructors, handle) { + if (handle === null) { + if (this.isReference) { + throwBindingError("null is not a valid " + this.name); + } + return 0; + } + if (!handle.$$) { + throwBindingError('Cannot pass "' + embindRepr(handle) + '" as a ' + this.name); + } + if (!handle.$$.ptr) { + throwBindingError("Cannot pass deleted object as a pointer of type " + this.name); + } + if (handle.$$.ptrType.isConst) { + throwBindingError("Cannot convert argument of type " + handle.$$.ptrType.name + " to parameter type " + this.name); + } + var handleClass = handle.$$.ptrType.registeredClass; + var ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass); + return ptr; + } + function RegisteredPointer_getPointee(ptr) { + if (this.rawGetPointee) { + ptr = this.rawGetPointee(ptr); + } + return ptr; + } + function RegisteredPointer_destructor(ptr) { + if (this.rawDestructor) { + this.rawDestructor(ptr); + } + } + function RegisteredPointer_deleteObject(handle) { + if (handle !== null) { + handle["delete"](); + } + } + function init_RegisteredPointer() { + RegisteredPointer.prototype.getPointee = RegisteredPointer_getPointee; + RegisteredPointer.prototype.destructor = RegisteredPointer_destructor; + RegisteredPointer.prototype["argPackAdvance"] = 8; + RegisteredPointer.prototype["readValueFromPointer"] = simpleReadValueFromPointer; + RegisteredPointer.prototype["deleteObject"] = RegisteredPointer_deleteObject; + RegisteredPointer.prototype["fromWireType"] = RegisteredPointer_fromWireType; + } + function RegisteredPointer(name, registeredClass, isReference, isConst, isSmartPointer, pointeeType, sharingPolicy, rawGetPointee, rawConstructor, rawShare, rawDestructor) { + this.name = name; + this.registeredClass = registeredClass; + this.isReference = isReference; + this.isConst = isConst; + this.isSmartPointer = isSmartPointer; + this.pointeeType = pointeeType; + this.sharingPolicy = sharingPolicy; + this.rawGetPointee = rawGetPointee; + this.rawConstructor = rawConstructor; + this.rawShare = rawShare; + this.rawDestructor = rawDestructor; + if (!isSmartPointer && registeredClass.baseClass === void 0) { + if (isConst) { + this["toWireType"] = constNoSmartPtrRawPointerToWireType; + this.destructorFunction = null; + } else { + this["toWireType"] = nonConstNoSmartPtrRawPointerToWireType; + this.destructorFunction = null; + } + } else { + this["toWireType"] = genericPointerToWireType; + } + } + function replacePublicSymbol(name, value, numArguments) { + if (!Module.hasOwnProperty(name)) { + throwInternalError("Replacing nonexistant public symbol"); + } + if (Module[name].overloadTable !== void 0 && numArguments !== void 0) { + Module[name].overloadTable[numArguments] = value; + } else { + Module[name] = value; + Module[name].argCount = numArguments; + } + } + function dynCallLegacy(sig, ptr, args) { + var f = Module["dynCall_" + sig]; + return args && args.length ? f.apply(null, [ptr].concat(args)) : f.call(null, ptr); + } + var wasmTableMirror = []; + function getWasmTableEntry(funcPtr) { + var func = wasmTableMirror[funcPtr]; + if (!func) { + if (funcPtr >= wasmTableMirror.length) + wasmTableMirror.length = funcPtr + 1; + wasmTableMirror[funcPtr] = func = wasmTable.get(funcPtr); + } + return func; + } + function dynCall(sig, ptr, args) { + if (sig.includes("j")) { + return dynCallLegacy(sig, ptr, args); + } + var rtn = getWasmTableEntry(ptr).apply(null, args); + return rtn; + } + function getDynCaller(sig, ptr) { + var argCache = []; + return function() { + argCache.length = 0; + Object.assign(argCache, arguments); + return dynCall(sig, ptr, argCache); + }; + } + function embind__requireFunction(signature, rawFunction) { + signature = readLatin1String(signature); + function makeDynCaller() { + if (signature.includes("j")) { + return getDynCaller(signature, rawFunction); + } + return getWasmTableEntry(rawFunction); + } + var fp = makeDynCaller(); + if (typeof fp != "function") { + throwBindingError("unknown function pointer with signature " + signature + ": " + rawFunction); + } + return fp; + } + var UnboundTypeError = void 0; + function getTypeName(type) { + var ptr = ___getTypeName(type); + var rv = readLatin1String(ptr); + _free(ptr); + return rv; + } + function throwUnboundTypeError(message, types) { + var unboundTypes = []; + var seen = {}; + function visit(type) { + if (seen[type]) { + return; + } + if (registeredTypes[type]) { + return; + } + if (typeDependencies[type]) { + typeDependencies[type].forEach(visit); + return; + } + unboundTypes.push(type); + seen[type] = true; + } + types.forEach(visit); + throw new UnboundTypeError(message + ": " + unboundTypes.map(getTypeName).join([", "])); + } + function __embind_register_class(rawType, rawPointerType, rawConstPointerType, baseClassRawType, getActualTypeSignature, getActualType, upcastSignature, upcast, downcastSignature, downcast, name, destructorSignature, rawDestructor) { + name = readLatin1String(name); + getActualType = embind__requireFunction(getActualTypeSignature, getActualType); + if (upcast) { + upcast = embind__requireFunction(upcastSignature, upcast); + } + if (downcast) { + downcast = embind__requireFunction(downcastSignature, downcast); + } + rawDestructor = embind__requireFunction(destructorSignature, rawDestructor); + var legalFunctionName = makeLegalFunctionName(name); + exposePublicSymbol(legalFunctionName, function() { + throwUnboundTypeError("Cannot construct " + name + " due to unbound types", [baseClassRawType]); + }); + whenDependentTypesAreResolved([rawType, rawPointerType, rawConstPointerType], baseClassRawType ? [baseClassRawType] : [], function(base) { + base = base[0]; + var baseClass; + var basePrototype; + if (baseClassRawType) { + baseClass = base.registeredClass; + basePrototype = baseClass.instancePrototype; + } else { + basePrototype = ClassHandle.prototype; + } + var constructor = createNamedFunction(legalFunctionName, function() { + if (Object.getPrototypeOf(this) !== instancePrototype) { + throw new BindingError("Use 'new' to construct " + name); + } + if (registeredClass.constructor_body === void 0) { + throw new BindingError(name + " has no accessible constructor"); + } + var body = registeredClass.constructor_body[arguments.length]; + if (body === void 0) { + throw new BindingError("Tried to invoke ctor of " + name + " with invalid number of parameters (" + arguments.length + ") - expected (" + Object.keys(registeredClass.constructor_body).toString() + ") parameters instead!"); + } + return body.apply(this, arguments); + }); + var instancePrototype = Object.create(basePrototype, { constructor: { value: constructor } }); + constructor.prototype = instancePrototype; + var registeredClass = new RegisteredClass(name, constructor, instancePrototype, rawDestructor, baseClass, getActualType, upcast, downcast); + var referenceConverter = new RegisteredPointer(name, registeredClass, true, false, false); + var pointerConverter = new RegisteredPointer(name + "*", registeredClass, false, false, false); + var constPointerConverter = new RegisteredPointer(name + " const*", registeredClass, false, true, false); + registeredPointers[rawType] = { pointerType: pointerConverter, constPointerType: constPointerConverter }; + replacePublicSymbol(legalFunctionName, constructor); + return [referenceConverter, pointerConverter, constPointerConverter]; + }); + } + function heap32VectorToArray(count, firstElement) { + var array = []; + for (var i = 0; i < count; i++) { + array.push(HEAPU32[firstElement + i * 4 >>> 2]); + } + return array; + } + function 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"; + } + invokerFnBody += "}\n"; + args1.push(invokerFnBody); + var invokerFunction = new_(Function, args1).apply(null, args2); + return invokerFunction; + } + function __embind_register_class_constructor(rawClassType, argCount, rawArgTypesAddr, invokerSignature, invoker, rawConstructor) { + assert(argCount > 0); + var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr); + invoker = embind__requireFunction(invokerSignature, invoker); + whenDependentTypesAreResolved([], [rawClassType], function(classType) { + classType = classType[0]; + var humanName = "constructor " + classType.name; + if (classType.registeredClass.constructor_body === void 0) { + classType.registeredClass.constructor_body = []; + } + if (classType.registeredClass.constructor_body[argCount - 1] !== void 0) { + throw new BindingError("Cannot register multiple constructors with identical number of parameters (" + (argCount - 1) + ") for class '" + classType.name + "'! Overload resolution is currently only performed using the parameter count, not actual type info!"); + } + classType.registeredClass.constructor_body[argCount - 1] = () => { + throwUnboundTypeError("Cannot construct " + classType.name + " due to unbound types", rawArgTypes); + }; + whenDependentTypesAreResolved([], rawArgTypes, function(argTypes) { + argTypes.splice(1, 0, null); + classType.registeredClass.constructor_body[argCount - 1] = craftInvokerFunction(humanName, argTypes, null, invoker, rawConstructor); + return []; + }); + return []; + }); + } + function __embind_register_class_function(rawClassType, methodName, argCount, rawArgTypesAddr, invokerSignature, rawInvoker, context, isPureVirtual) { + var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr); + methodName = readLatin1String(methodName); + rawInvoker = embind__requireFunction(invokerSignature, rawInvoker); + whenDependentTypesAreResolved([], [rawClassType], function(classType) { + classType = classType[0]; + var humanName = classType.name + "." + methodName; + if (methodName.startsWith("@@")) { + methodName = Symbol[methodName.substring(2)]; + } + if (isPureVirtual) { + classType.registeredClass.pureVirtualFunctions.push(methodName); + } + function unboundTypesHandler() { + throwUnboundTypeError("Cannot call " + humanName + " due to unbound types", rawArgTypes); + } + var proto = classType.registeredClass.instancePrototype; + var method = proto[methodName]; + if (method === void 0 || method.overloadTable === void 0 && method.className !== classType.name && method.argCount === argCount - 2) { + unboundTypesHandler.argCount = argCount - 2; + unboundTypesHandler.className = classType.name; + proto[methodName] = unboundTypesHandler; + } else { + ensureOverloadTable(proto, methodName, humanName); + proto[methodName].overloadTable[argCount - 2] = unboundTypesHandler; + } + whenDependentTypesAreResolved([], rawArgTypes, function(argTypes) { + var memberFunction = craftInvokerFunction(humanName, argTypes, classType, rawInvoker, context); + 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; + } + var Emval = { toValue: (handle) => { + if (!handle) { + throwBindingError("Cannot use deleted val. handle = " + handle); + } + return emval_handle_array[handle].value; + }, toHandle: (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 }; + return handle; + } + } + } }; + function __embind_register_emval(rawType, name) { + name = readLatin1String(name); + registerType(rawType, { name, "fromWireType": function(handle) { + var rv = Emval.toValue(handle); + __emval_decref(handle); + return rv; + }, "toWireType": function(destructors, value) { + return Emval.toHandle(value); + }, "argPackAdvance": 8, "readValueFromPointer": simpleReadValueFromPointer, destructorFunction: null }); + } + function enumReadValueFromPointer(name, shift, signed) { + switch (shift) { + case 0: + return function(pointer) { + var heap = signed ? HEAP8 : HEAPU8; + return this["fromWireType"](heap[pointer >>> 0]); + }; + case 1: + return function(pointer) { + var heap = signed ? HEAP16 : HEAPU16; + return this["fromWireType"](heap[pointer >>> 1]); + }; + case 2: + return function(pointer) { + var heap = signed ? HEAP32 : HEAPU32; + return this["fromWireType"](heap[pointer >>> 2]); + }; + default: + throw new TypeError("Unknown integer type: " + name); + } + } + function __embind_register_enum(rawType, name, size, isSigned) { + var shift = getShiftFromSize(size); + name = readLatin1String(name); + function ctor() { + } + ctor.values = {}; + registerType(rawType, { name, constructor: ctor, "fromWireType": function(c) { + return this.constructor.values[c]; + }, "toWireType": function(destructors, c) { + return c.value; + }, "argPackAdvance": 8, "readValueFromPointer": enumReadValueFromPointer(name, shift, isSigned), destructorFunction: null }); + exposePublicSymbol(name, ctor); + } + function requireRegisteredType(rawType, humanName) { + var impl = registeredTypes[rawType]; + if (impl === void 0) { + throwBindingError(humanName + " has unknown type " + getTypeName(rawType)); + } + return impl; + } + function __embind_register_enum_value(rawEnumType, name, enumValue) { + var enumType = requireRegisteredType(rawEnumType, "enum"); + name = readLatin1String(name); + var Enum = enumType.constructor; + var Value = Object.create(enumType.constructor.prototype, { value: { value: enumValue }, constructor: { value: createNamedFunction(enumType.name + "_" + name, function() { + }) } }); + Enum.values[enumValue] = Value; + Enum[name] = Value; + } + function embindRepr(v) { + if (v === null) { + return "null"; + } + var t = typeof v; + if (t === "object" || t === "array" || t === "function") { + return v.toString(); + } else { + return "" + v; + } + } + function floatReadValueFromPointer(name, shift) { + switch (shift) { + case 2: + return function(pointer) { + return this["fromWireType"](HEAPF32[pointer >>> 2]); + }; + case 3: + return function(pointer) { + return this["fromWireType"](HEAPF64[pointer >>> 3]); + }; + default: + throw new TypeError("Unknown float type: " + name); + } + } + function __embind_register_float(rawType, name, size) { + var shift = getShiftFromSize(size); + name = readLatin1String(name); + registerType(rawType, { name, "fromWireType": function(value) { + return value; + }, "toWireType": function(destructors, value) { + return value; + }, "argPackAdvance": 8, "readValueFromPointer": floatReadValueFromPointer(name, shift), destructorFunction: null }); + } + function __embind_register_function(name, argCount, rawArgTypesAddr, signature, rawInvoker, fn) { + var argTypes = heap32VectorToArray(argCount, rawArgTypesAddr); + name = readLatin1String(name); + rawInvoker = embind__requireFunction(signature, rawInvoker); + exposePublicSymbol(name, function() { + throwUnboundTypeError("Cannot call " + name + " due to unbound types", argTypes); + }, argCount - 1); + whenDependentTypesAreResolved([], argTypes, function(argTypes2) { + var invokerArgsArray = [argTypes2[0], null].concat(argTypes2.slice(1)); + replacePublicSymbol(name, craftInvokerFunction(name, invokerArgsArray, null, rawInvoker, fn), argCount - 1); + return []; + }); + } + function integerReadValueFromPointer(name, shift, signed) { + switch (shift) { + case 0: + return signed ? function readS8FromPointer(pointer) { + return HEAP8[pointer >>> 0]; + } : function readU8FromPointer(pointer) { + return HEAPU8[pointer >>> 0]; + }; + case 1: + return signed ? function readS16FromPointer(pointer) { + return HEAP16[pointer >>> 1]; + } : function readU16FromPointer(pointer) { + return HEAPU16[pointer >>> 1]; + }; + case 2: + return signed ? function readS32FromPointer(pointer) { + return HEAP32[pointer >>> 2]; + } : function readU32FromPointer(pointer) { + return HEAPU32[pointer >>> 2]; + }; + default: + throw new TypeError("Unknown integer type: " + name); + } + } + function __embind_register_integer(primitiveType, name, size, minRange, maxRange) { + name = readLatin1String(name); + var shift = getShiftFromSize(size); + var fromWireType = (value) => value; + if (minRange === 0) { + var bitshift = 32 - 8 * size; + fromWireType = (value) => value << bitshift >>> bitshift; + } + var isUnsignedType = name.includes("unsigned"); + var checkAssertions = (value, toTypeName) => { + }; + var toWireType; + if (isUnsignedType) { + toWireType = function(destructors, value) { + checkAssertions(value, this.name); + return value >>> 0; + }; + } else { + toWireType = function(destructors, value) { + checkAssertions(value, this.name); + return value; + }; + } + registerType(primitiveType, { name, "fromWireType": fromWireType, "toWireType": toWireType, "argPackAdvance": 8, "readValueFromPointer": integerReadValueFromPointer(name, shift, minRange !== 0), destructorFunction: null }); + } + function __embind_register_memory_view(rawType, dataTypeIndex, name) { + var typeMapping = [Int8Array, Uint8Array, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array]; + var TA = typeMapping[dataTypeIndex]; + function decodeMemoryView(handle) { + handle = handle >> 2; + var heap = HEAPU32; + var size = heap[handle >>> 0]; + var data = heap[handle + 1 >>> 0]; + return new TA(heap.buffer, data, size); + } + name = readLatin1String(name); + registerType(rawType, { name, "fromWireType": decodeMemoryView, "argPackAdvance": 8, "readValueFromPointer": decodeMemoryView }, { ignoreDuplicateRegistrations: true }); } - - // minX, minY and invSize are later used to transform coords into integers for z-order calculation - invSize = Math.max(maxX - minX, maxY - minY); - invSize = invSize !== 0 ? 32767 / invSize : 0; - } - - earcutLinked(outerNode, triangles, dim, minX, minY, invSize, 0); - - return triangles; -} - -// create a circular doubly linked list from polygon points in the specified winding order -function linkedList(data, start, end, dim, clockwise) { - var i, last; - - if (clockwise === (signedArea(data, start, end, dim) > 0)) { - for (i = start; i < end; i += dim) last = insertNode(i, data[i], data[i + 1], last); - } else { - for (i = end - dim; i >= start; i -= dim) last = insertNode(i, data[i], data[i + 1], last); - } - - if (last && equals(last, last.next)) { - removeNode(last); - last = last.next; - } - - return last; -} - -// eliminate colinear or duplicate points -function filterPoints(start, end) { - if (!start) return start; - if (!end) end = start; - - var p = start, - again; - do { - again = false; - - if (!p.steiner && (equals(p, p.next) || area(p.prev, p, p.next) === 0)) { - removeNode(p); - p = end = p.prev; - if (p === p.next) break; - again = true; - - } else { - p = p.next; + function __embind_register_std_string(rawType, name) { + name = readLatin1String(name); + var stdStringIsUTF8 = name === "std::string"; + registerType(rawType, { name, "fromWireType": function(value) { + var length = HEAPU32[value >>> 2]; + var payload = value + 4; + var str; + if (stdStringIsUTF8) { + var decodeStartPtr = payload; + for (var i = 0; i <= length; ++i) { + var currentBytePtr = payload + i; + if (i == length || HEAPU8[currentBytePtr >>> 0] == 0) { + var maxRead = currentBytePtr - decodeStartPtr; + var stringSegment = UTF8ToString(decodeStartPtr, maxRead); + if (str === void 0) { + str = stringSegment; + } else { + str += String.fromCharCode(0); + str += stringSegment; + } + decodeStartPtr = currentBytePtr + 1; + } + } + } else { + var a = new Array(length); + for (var i = 0; i < length; ++i) { + a[i] = String.fromCharCode(HEAPU8[payload + i >>> 0]); + } + str = a.join(""); + } + _free(value); + return str; + }, "toWireType": function(destructors, value) { + if (value instanceof ArrayBuffer) { + value = new Uint8Array(value); + } + var length; + var valueIsOfTypeString = typeof value == "string"; + if (!(valueIsOfTypeString || value instanceof Uint8Array || value instanceof Uint8ClampedArray || value instanceof Int8Array)) { + throwBindingError("Cannot pass non-string to std::string"); + } + if (stdStringIsUTF8 && valueIsOfTypeString) { + length = lengthBytesUTF8(value); + } else { + length = value.length; + } + var base = _malloc(4 + length + 1); + var ptr = base + 4; + ptr >>>= 0; + HEAPU32[base >>> 2] = length; + if (stdStringIsUTF8 && valueIsOfTypeString) { + stringToUTF8(value, ptr, length + 1); + } else { + if (valueIsOfTypeString) { + for (var i = 0; i < length; ++i) { + var charCode = value.charCodeAt(i); + if (charCode > 255) { + _free(ptr); + throwBindingError("String has UTF-16 code units that do not fit in 8 bits"); + } + HEAPU8[ptr + i >>> 0] = charCode; + } + } else { + for (var i = 0; i < length; ++i) { + HEAPU8[ptr + i >>> 0] = value[i]; + } + } + } + if (destructors !== null) { + destructors.push(_free, base); + } + return base; + }, "argPackAdvance": 8, "readValueFromPointer": simpleReadValueFromPointer, destructorFunction: function(ptr) { + _free(ptr); + } }); } - } while (again || p !== end); - - return end; -} - -// main ear slicing loop which triangulates a polygon (given as a linked list) -function earcutLinked(ear, triangles, dim, minX, minY, invSize, pass) { - if (!ear) return; - - // interlink polygon nodes in z-order - if (!pass && invSize) indexCurve(ear, minX, minY, invSize); - - var stop = ear, - prev, next; - - // iterate through ears, slicing them one by one - while (ear.prev !== ear.next) { - prev = ear.prev; - next = ear.next; - - if (invSize ? isEarHashed(ear, minX, minY, invSize) : isEar(ear)) { - // cut off the triangle - triangles.push(prev.i / dim | 0); - triangles.push(ear.i / dim | 0); - triangles.push(next.i / dim | 0); - - removeNode(ear); - - // skipping the next vertex leads to less sliver triangles - ear = next.next; - stop = next.next; - - continue; + 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)); + 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; } - - ear = next; - - // if we looped through the whole remaining polygon and can't find any more ears - if (ear === stop) { - // try filtering points and slicing again - if (!pass) { - earcutLinked(filterPoints(ear), triangles, dim, minX, minY, invSize, 1); - - // if this didn't work, try curing all small self-intersections locally - } else if (pass === 1) { - ear = cureLocalIntersections(filterPoints(ear), triangles, dim); - earcutLinked(ear, triangles, dim, minX, minY, invSize, 2); - - // as a last resort, try splitting the remaining polygon into two - } else if (pass === 2) { - splitEarcut(ear, triangles, dim, minX, minY, invSize); + 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); } - - break; + } + return str; } - } -} - -// check whether a polygon node forms a valid ear with adjacent nodes -function isEar(ear) { - var a = ear.prev, - b = ear, - c = ear.next; - - if (area(a, b, c) >= 0) return false; // reflex, can't be an ear - - // now make sure we don't have other points inside the potential ear - var ax = a.x, bx = b.x, cx = c.x, ay = a.y, by = b.y, cy = c.y; - - // triangle bbox; min & max are calculated like this for speed - var x0 = ax < bx ? (ax < cx ? ax : cx) : (bx < cx ? bx : cx), - y0 = ay < by ? (ay < cy ? ay : cy) : (by < cy ? by : cy), - x1 = ax > bx ? (ax > cx ? ax : cx) : (bx > cx ? bx : cx), - y1 = ay > by ? (ay > cy ? ay : cy) : (by > cy ? by : cy); - - var p = c.next; - while (p !== a) { - if (p.x >= x0 && p.x <= x1 && p.y >= y0 && p.y <= y1 && - pointInTriangle(ax, ay, bx, by, cx, cy, p.x, p.y) && - area(p.prev, p, p.next) >= 0) return false; - p = p.next; - } - - return true; -} - -function isEarHashed(ear, minX, minY, invSize) { - var a = ear.prev, - b = ear, - c = ear.next; - - if (area(a, b, c) >= 0) return false; // reflex, can't be an ear - - var ax = a.x, bx = b.x, cx = c.x, ay = a.y, by = b.y, cy = c.y; - - // triangle bbox; min & max are calculated like this for speed - var x0 = ax < bx ? (ax < cx ? ax : cx) : (bx < cx ? bx : cx), - y0 = ay < by ? (ay < cy ? ay : cy) : (by < cy ? by : cy), - x1 = ax > bx ? (ax > cx ? ax : cx) : (bx > cx ? bx : cx), - y1 = ay > by ? (ay > cy ? ay : cy) : (by > cy ? by : cy); - - // z-order range for the current triangle bbox; - var minZ = zOrder(x0, y0, minX, minY, invSize), - maxZ = zOrder(x1, y1, minX, minY, invSize); - - var p = ear.prevZ, - n = ear.nextZ; - - // look for points inside the triangle in both directions - while (p && p.z >= minZ && n && n.z <= maxZ) { - if (p.x >= x0 && p.x <= x1 && p.y >= y0 && p.y <= y1 && p !== a && p !== c && - pointInTriangle(ax, ay, bx, by, cx, cy, p.x, p.y) && area(p.prev, p, p.next) >= 0) return false; - p = p.prevZ; - - if (n.x >= x0 && n.x <= x1 && n.y >= y0 && n.y <= y1 && n !== a && n !== c && - pointInTriangle(ax, ay, bx, by, cx, cy, n.x, n.y) && area(n.prev, n, n.next) >= 0) return false; - n = n.nextZ; - } - - // look for remaining points in decreasing z-order - while (p && p.z >= minZ) { - if (p.x >= x0 && p.x <= x1 && p.y >= y0 && p.y <= y1 && p !== a && p !== c && - pointInTriangle(ax, ay, bx, by, cx, cy, p.x, p.y) && area(p.prev, p, p.next) >= 0) return false; - p = p.prevZ; - } - - // look for remaining points in increasing z-order - while (n && n.z <= maxZ) { - if (n.x >= x0 && n.x <= x1 && n.y >= y0 && n.y <= y1 && n !== a && n !== c && - pointInTriangle(ax, ay, bx, by, cx, cy, n.x, n.y) && area(n.prev, n, n.next) >= 0) return false; - n = n.nextZ; - } - - return true; -} - -// go through all polygon nodes and cure small local self-intersections -function cureLocalIntersections(start, triangles, dim) { - var p = start; - do { - var a = p.prev, - b = p.next.next; - - if (!equals(a, b) && intersects(a, p, p.next, b) && locallyInside(a, b) && locallyInside(b, a)) { - - triangles.push(a.i / dim | 0); - triangles.push(p.i / dim | 0); - triangles.push(b.i / dim | 0); - - // remove two nodes involved - removeNode(p); - removeNode(p.next); - - p = start = b; + 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 __embind_register_std_wstring(rawType, charSize, name) { + name = readLatin1String(name); + var decodeString, encodeString, getHeap, lengthBytesUTF, shift; + if (charSize === 2) { + decodeString = UTF16ToString; + encodeString = stringToUTF16; + lengthBytesUTF = lengthBytesUTF16; + getHeap = () => HEAPU16; + shift = 1; + } else if (charSize === 4) { + decodeString = UTF32ToString; + encodeString = stringToUTF32; + lengthBytesUTF = lengthBytesUTF32; + getHeap = () => HEAPU32; + shift = 2; + } + registerType(rawType, { name, "fromWireType": function(value) { + var length = HEAPU32[value >>> 2]; + var HEAP = getHeap(); + var str; + var decodeStartPtr = value + 4; + for (var i = 0; i <= length; ++i) { + var currentBytePtr = value + 4 + i * charSize; + if (i == length || HEAP[currentBytePtr >>> shift] == 0) { + var maxReadBytes = currentBytePtr - decodeStartPtr; + var stringSegment = decodeString(decodeStartPtr, maxReadBytes); + if (str === void 0) { + str = stringSegment; + } else { + str += String.fromCharCode(0); + str += stringSegment; + } + decodeStartPtr = currentBytePtr + charSize; + } + } + _free(value); + return str; + }, "toWireType": function(destructors, value) { + if (!(typeof value == "string")) { + throwBindingError("Cannot pass non-string to C++ string type " + name); + } + var length = lengthBytesUTF(value); + var ptr = _malloc(4 + length + charSize); + 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(ptr) { + _free(ptr); + } }); + } + function __embind_register_value_array(rawType, name, constructorSignature, rawConstructor, destructorSignature, rawDestructor) { + tupleRegistrations[rawType] = { name: readLatin1String(name), rawConstructor: embind__requireFunction(constructorSignature, rawConstructor), rawDestructor: embind__requireFunction(destructorSignature, rawDestructor), elements: [] }; + } + function __embind_register_value_array_element(rawTupleType, getterReturnType, getterSignature, getter, getterContext, setterArgumentType, setterSignature, setter, setterContext) { + tupleRegistrations[rawTupleType].elements.push({ getterReturnType, getter: embind__requireFunction(getterSignature, getter), getterContext, setterArgumentType, setter: embind__requireFunction(setterSignature, setter), setterContext }); + } + function __embind_register_value_object(rawType, name, constructorSignature, rawConstructor, destructorSignature, rawDestructor) { + structRegistrations[rawType] = { name: readLatin1String(name), rawConstructor: embind__requireFunction(constructorSignature, rawConstructor), rawDestructor: embind__requireFunction(destructorSignature, rawDestructor), fields: [] }; + } + function __embind_register_value_object_field(structType, fieldName, getterReturnType, getterSignature, getter, getterContext, setterArgumentType, setterSignature, setter, setterContext) { + structRegistrations[structType].fields.push({ fieldName: readLatin1String(fieldName), getterReturnType, getter: embind__requireFunction(getterSignature, getter), getterContext, setterArgumentType, setter: embind__requireFunction(setterSignature, setter), setterContext }); + } + function __embind_register_void(rawType, name) { + name = readLatin1String(name); + registerType(rawType, { isVoid: true, name, "argPackAdvance": 0, "fromWireType": function() { + return void 0; + }, "toWireType": function(destructors, o) { + return void 0; + } }); + } + function __emval_as(handle, returnType, destructorsRef) { + handle = Emval.toValue(handle); + returnType = requireRegisteredType(returnType, "emval::as"); + var destructors = []; + var rd = Emval.toHandle(destructors); + HEAPU32[destructorsRef >>> 2] = rd; + return returnType["toWireType"](destructors, handle); + } + function emval_lookupTypes(argCount, argTypes) { + var a = new Array(argCount); + for (var i = 0; i < argCount; ++i) { + a[i] = requireRegisteredType(HEAPU32[argTypes + i * 4 >>> 2], "parameter " + i); + } + return a; + } + function __emval_call(handle, argCount, argTypes, argv) { + handle = Emval.toValue(handle); + var types = emval_lookupTypes(argCount, argTypes); + var args = new Array(argCount); + for (var i = 0; i < argCount; ++i) { + var type = types[i]; + args[i] = type["readValueFromPointer"](argv); + argv += type["argPackAdvance"]; + } + var rv = handle.apply(void 0, args); + return Emval.toHandle(rv); + } + var emval_symbols = {}; + function getStringOrSymbol(address) { + var symbol = emval_symbols[address]; + if (symbol === void 0) { + return readLatin1String(address); + } + return symbol; + } + function emval_get_global() { + if (typeof globalThis == "object") { + return globalThis; + } + return function() { + return Function; + }()("return this")(); + } + function __emval_get_global(name) { + if (name === 0) { + return Emval.toHandle(emval_get_global()); + } else { + name = getStringOrSymbol(name); + return Emval.toHandle(emval_get_global()[name]); + } + } + function __emval_get_property(handle, key) { + handle = Emval.toValue(handle); + key = Emval.toValue(key); + return Emval.toHandle(handle[key]); + } + function __emval_incref(handle) { + if (handle > 4) { + emval_handle_array[handle].refcount += 1; + } + } + function __emval_instanceof(object, constructor) { + object = Emval.toValue(object); + constructor = Emval.toValue(constructor); + return object instanceof constructor; + } + function __emval_is_number(handle) { + handle = Emval.toValue(handle); + return typeof handle == "number"; } - p = p.next; - } while (p !== start); - - return filterPoints(p); -} - -// try splitting polygon into two and triangulate them independently -function splitEarcut(start, triangles, dim, minX, minY, invSize) { - // look for a valid diagonal that divides the polygon into two - var a = start; - do { - var b = a.next.next; - while (b !== a.prev) { - if (a.i !== b.i && isValidDiagonal(a, b)) { - // split the polygon in two by the diagonal - var c = splitPolygon(a, b); - - // filter colinear points around the cuts - a = filterPoints(a, a.next); - c = filterPoints(c, c.next); - - // run earcut on each half - earcutLinked(a, triangles, dim, minX, minY, invSize, 0); - earcutLinked(c, triangles, dim, minX, minY, invSize, 0); - return; - } - b = b.next; + function __emval_is_string(handle) { + handle = Emval.toValue(handle); + return typeof handle == "string"; } - a = a.next; - } while (a !== start); -} - -// link every hole into the outer loop, producing a single-ring polygon without holes -function eliminateHoles(data, holeIndices, outerNode, dim) { - var queue = [], - i, len, start, end, list; - - for (i = 0, len = holeIndices.length; i < len; i++) { - start = holeIndices[i] * dim; - end = i < len - 1 ? holeIndices[i + 1] * dim : data.length; - list = linkedList(data, start, end, dim, false); - if (list === list.next) list.steiner = true; - queue.push(getLeftmost(list)); - } - - queue.sort(compareX); - - // process holes from left to right - for (i = 0; i < queue.length; i++) { - outerNode = eliminateHole(queue[i], outerNode); - } - - return outerNode; -} - -function compareX(a, b) { - return a.x - b.x; -} - -// find a bridge between vertices that connects hole with an outer ring and and link it -function eliminateHole(hole, outerNode) { - var bridge = findHoleBridge(hole, outerNode); - if (!bridge) { - return outerNode; - } - - var bridgeReverse = splitPolygon(bridge, hole); - - // filter collinear points around the cuts - filterPoints(bridgeReverse, bridgeReverse.next); - return filterPoints(bridge, bridge.next); -} - -// David Eberly's algorithm for finding a bridge between hole and outer polygon -function findHoleBridge(hole, outerNode) { - var p = outerNode, - hx = hole.x, - hy = hole.y, - qx = -Infinity, - m; - - // find a segment intersected by a ray from the hole's leftmost point to the left; - // segment's endpoint with lesser x will be potential connection point - do { - if (hy <= p.y && hy >= p.next.y && p.next.y !== p.y) { - var x = p.x + (hy - p.y) * (p.next.x - p.x) / (p.next.y - p.y); - if (x <= hx && x > qx) { - qx = x; - m = p.x < p.next.x ? p : p.next; - if (x === hx) return m; // hole touches outer segment; pick leftmost endpoint - } + function __emval_new_array() { + return Emval.toHandle([]); } - p = p.next; - } while (p !== outerNode); - - if (!m) return null; - - // look for points inside the triangle of hole point, segment intersection and endpoint; - // if there are no points found, we have a valid connection; - // otherwise choose the point of the minimum angle with the ray as connection point - - var stop = m, - mx = m.x, - my = m.y, - tanMin = Infinity, - tan; - - p = m; - - do { - if (hx >= p.x && p.x >= mx && hx !== p.x && - pointInTriangle(hy < my ? hx : qx, hy, mx, my, hy < my ? qx : hx, hy, p.x, p.y)) { - - tan = Math.abs(hy - p.y) / (hx - p.x); // tangential - - if (locallyInside(p, hole) && - (tan < tanMin || (tan === tanMin && (p.x > m.x || (p.x === m.x && sectorContainsSector(m, p)))))) { - m = p; - tanMin = tan; - } + function __emval_new_cstring(v) { + return Emval.toHandle(getStringOrSymbol(v)); } - - p = p.next; - } while (p !== stop); - - return m; -} - -// whether sector in vertex m contains sector in vertex p in the same coordinates -function sectorContainsSector(m, p) { - return area(m.prev, m, p.prev) < 0 && area(p.next, m, m.next) < 0; -} - -// interlink polygon nodes in z-order -function indexCurve(start, minX, minY, invSize) { - var p = start; - do { - if (p.z === 0) p.z = zOrder(p.x, p.y, minX, minY, invSize); - p.prevZ = p.prev; - p.nextZ = p.next; - p = p.next; - } while (p !== start); - - p.prevZ.nextZ = null; - p.prevZ = null; - - sortLinked(p); -} - -// Simon Tatham's linked list merge sort algorithm -// http://www.chiark.greenend.org.uk/~sgtatham/algorithms/listsort.html -function sortLinked(list) { - var i, p, q, e, tail, numMerges, pSize, qSize, - inSize = 1; - - do { - p = list; - list = null; - tail = null; - numMerges = 0; - - while (p) { - numMerges++; - q = p; - pSize = 0; - for (i = 0; i < inSize; i++) { - pSize++; - q = q.nextZ; - if (!q) break; - } - qSize = inSize; - - while (pSize > 0 || (qSize > 0 && q)) { - - if (pSize !== 0 && (qSize === 0 || !q || p.z <= q.z)) { - e = p; - p = p.nextZ; - pSize--; - } else { - e = q; - q = q.nextZ; - qSize--; - } - - if (tail) tail.nextZ = e; - else list = e; - - e.prevZ = tail; - tail = e; + function __emval_new_object() { + return Emval.toHandle({}); + } + function __emval_run_destructors(handle) { + var destructors = Emval.toValue(handle); + runDestructors(destructors); + __emval_decref(handle); + } + function __emval_set_property(handle, key, value) { + handle = Emval.toValue(handle); + key = Emval.toValue(key); + value = Emval.toValue(value); + handle[key] = value; + } + function __emval_take_value(type, arg) { + type = requireRegisteredType(type, "_emval_take_value"); + var v = type["readValueFromPointer"](arg); + return Emval.toHandle(v); + } + function _abort() { + abort(""); + } + function _emscripten_memcpy_big(dest, src, num) { + HEAPU8.copyWithin(dest >>> 0, src >>> 0, src + num >>> 0); + } + function getHeapMax() { + return 4294901760; + } + function emscripten_realloc_buffer(size) { + var b = wasmMemory.buffer; + try { + wasmMemory.grow(size - b.byteLength + 65535 >>> 16); + updateMemoryViews(); + return 1; + } catch (e) { + } + } + function _emscripten_resize_heap(requestedSize) { + var oldSize = HEAPU8.length; + requestedSize = requestedSize >>> 0; + var maxHeapSize = getHeapMax(); + if (requestedSize > maxHeapSize) { + return false; + } + let alignUp = (x, multiple) => x + (multiple - x % multiple) % multiple; + for (var cutDown = 1; cutDown <= 4; cutDown *= 2) { + var overGrownHeapSize = oldSize * (1 + 0.2 / cutDown); + overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296); + var newSize = Math.min(maxHeapSize, alignUp(Math.max(requestedSize, overGrownHeapSize), 65536)); + var replacement = emscripten_realloc_buffer(newSize); + if (replacement) { + return true; } - - p = q; + } + return false; } - - tail.nextZ = null; - inSize *= 2; - - } while (numMerges > 1); - - return list; -} - -// z-order of a point given coords and inverse of the longer side of data bbox -function zOrder(x, y, minX, minY, invSize) { - // coords are transformed into non-negative 15-bit integer range - x = (x - minX) * invSize | 0; - y = (y - minY) * invSize | 0; - - x = (x | (x << 8)) & 0x00FF00FF; - x = (x | (x << 4)) & 0x0F0F0F0F; - x = (x | (x << 2)) & 0x33333333; - x = (x | (x << 1)) & 0x55555555; - - y = (y | (y << 8)) & 0x00FF00FF; - y = (y | (y << 4)) & 0x0F0F0F0F; - y = (y | (y << 2)) & 0x33333333; - y = (y | (y << 1)) & 0x55555555; - - return x | (y << 1); -} - -// find the leftmost node of a polygon ring -function getLeftmost(start) { - var p = start, - leftmost = start; - do { - if (p.x < leftmost.x || (p.x === leftmost.x && p.y < leftmost.y)) leftmost = p; - p = p.next; - } while (p !== start); - - return leftmost; -} - -// check if a point lies within a convex triangle -function pointInTriangle(ax, ay, bx, by, cx, cy, px, py) { - return (cx - px) * (ay - py) >= (ax - px) * (cy - py) && - (ax - px) * (by - py) >= (bx - px) * (ay - py) && - (bx - px) * (cy - py) >= (cx - px) * (by - py); -} - -// check if a diagonal between two polygon nodes is valid (lies in polygon interior) -function isValidDiagonal(a, b) { - return a.next.i !== b.i && a.prev.i !== b.i && !intersectsPolygon(a, b) && // dones't intersect other edges - (locallyInside(a, b) && locallyInside(b, a) && middleInside(a, b) && // locally visible - (area(a.prev, a, b.prev) || area(a, b.prev, b)) || // does not create opposite-facing sectors - equals(a, b) && area(a.prev, a, a.next) > 0 && area(b.prev, b, b.next) > 0); // special zero-length case -} - -// signed area of a triangle -function area(p, q, r) { - return (q.y - p.y) * (r.x - q.x) - (q.x - p.x) * (r.y - q.y); -} - -// check if two points are equal -function equals(p1, p2) { - return p1.x === p2.x && p1.y === p2.y; -} - -// check if two segments intersect -function intersects(p1, q1, p2, q2) { - var o1 = sign(area(p1, q1, p2)); - var o2 = sign(area(p1, q1, q2)); - var o3 = sign(area(p2, q2, p1)); - var o4 = sign(area(p2, q2, q1)); - - if (o1 !== o2 && o3 !== o4) return true; // general case - - if (o1 === 0 && onSegment(p1, p2, q1)) return true; // p1, q1 and p2 are collinear and p2 lies on p1q1 - if (o2 === 0 && onSegment(p1, q2, q1)) return true; // p1, q1 and q2 are collinear and q2 lies on p1q1 - if (o3 === 0 && onSegment(p2, p1, q2)) return true; // p2, q2 and p1 are collinear and p1 lies on p2q2 - if (o4 === 0 && onSegment(p2, q1, q2)) return true; // p2, q2 and q1 are collinear and q1 lies on p2q2 - - return false; -} - -// for collinear points p, q, r, check if point q lies on segment pr -function onSegment(p, q, r) { - return q.x <= Math.max(p.x, r.x) && q.x >= Math.min(p.x, r.x) && q.y <= Math.max(p.y, r.y) && q.y >= Math.min(p.y, r.y); -} - -function sign(num) { - return num > 0 ? 1 : num < 0 ? -1 : 0; -} - -// check if a polygon diagonal intersects any polygon segments -function intersectsPolygon(a, b) { - var p = a; - do { - if (p.i !== a.i && p.next.i !== a.i && p.i !== b.i && p.next.i !== b.i && - intersects(p, p.next, a, b)) return true; - p = p.next; - } while (p !== a); - - return false; -} - -// check if a polygon diagonal is locally inside the polygon -function locallyInside(a, b) { - return area(a.prev, a, a.next) < 0 ? - area(a, b, a.next) >= 0 && area(a, a.prev, b) >= 0 : - area(a, b, a.prev) < 0 || area(a, a.next, b) < 0; -} - -// check if the middle point of a polygon diagonal is inside the polygon -function middleInside(a, b) { - var p = a, - inside = false, - px = (a.x + b.x) / 2, - py = (a.y + b.y) / 2; - do { - if (((p.y > py) !== (p.next.y > py)) && p.next.y !== p.y && - (px < (p.next.x - p.x) * (py - p.y) / (p.next.y - p.y) + p.x)) - inside = !inside; - p = p.next; - } while (p !== a); - - return inside; -} - -// link two polygon vertices with a bridge; if the vertices belong to the same ring, it splits polygon into two; -// if one belongs to the outer ring and another to a hole, it merges it into a single ring -function splitPolygon(a, b) { - var a2 = new Node(a.i, a.x, a.y), - b2 = new Node(b.i, b.x, b.y), - an = a.next, - bp = b.prev; - - a.next = b; - b.prev = a; - - a2.next = an; - an.prev = a2; - - b2.next = a2; - a2.prev = b2; - - bp.next = b2; - b2.prev = bp; - - return b2; -} - -// create a node and optionally link it with previous one (in a circular doubly linked list) -function insertNode(i, x, y, last) { - var p = new Node(i, x, y); - - if (!last) { - p.prev = p; - p.next = p; - - } else { - p.next = last.next; - p.prev = last; - last.next.prev = p; - last.next = p; - } - return p; -} - -function removeNode(p) { - p.next.prev = p.prev; - p.prev.next = p.next; - - if (p.prevZ) p.prevZ.nextZ = p.nextZ; - if (p.nextZ) p.nextZ.prevZ = p.prevZ; -} - -function Node(i, x, y) { - // vertex index in coordinates array - this.i = i; - - // vertex coordinates - this.x = x; - this.y = y; - - // previous and next vertex nodes in a polygon ring - this.prev = null; - this.next = null; - - // z-order curve value - this.z = 0; - - // previous and next nodes in z-order - this.prevZ = null; - this.nextZ = null; - - // indicates whether this is a steiner point - this.steiner = false; -} - -// return a percentage difference between the polygon area and its triangulation area; -// used to verify correctness of triangulation -earcut.deviation = function (data, holeIndices, dim, triangles) { - var hasHoles = holeIndices && holeIndices.length; - var outerLen = hasHoles ? holeIndices[0] * dim : data.length; - - var polygonArea = Math.abs(signedArea(data, 0, outerLen, dim)); - if (hasHoles) { - for (var i = 0, len = holeIndices.length; i < len; i++) { - var start = holeIndices[i] * dim; - var end = i < len - 1 ? holeIndices[i + 1] * dim : data.length; - polygonArea -= Math.abs(signedArea(data, start, end, dim)); + var ENV = {}; + function getExecutableName() { + return thisProgram || "./this.program"; } - } - - var trianglesArea = 0; - for (i = 0; i < triangles.length; i += 3) { - var a = triangles[i] * dim; - var b = triangles[i + 1] * dim; - var c = triangles[i + 2] * dim; - trianglesArea += Math.abs( - (data[a] - data[c]) * (data[b + 1] - data[a + 1]) - - (data[a] - data[b]) * (data[c + 1] - data[a + 1])); - } - - return polygonArea === 0 && trianglesArea === 0 ? 0 : - Math.abs((trianglesArea - polygonArea) / polygonArea); -}; - -function signedArea(data, start, end, dim) { - var sum = 0; - for (var i = start, j = end - dim; i < end; i += dim) { - sum += (data[j] - data[i]) * (data[i + 1] + data[j + 1]); - j = i; - } - return sum; -} - -// turn a polygon in a multi-dimensional array form (e.g. as in GeoJSON) into a form Earcut accepts -earcut.flatten = function (data) { - var dim = data[0][0].length, - result = {vertices: [], holes: [], dimensions: dim}, - holeIndex = 0; - - for (var i = 0; i < data.length; i++) { - for (var j = 0; j < data[i].length; j++) { - for (var d = 0; d < dim; d++) result.vertices.push(data[i][j][d]); + 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) { + if (ENV[x] === void 0) + delete env[x]; + else + env[x] = ENV[x]; + } + var strings = []; + for (var x in env) { + strings.push(x + "=" + env[x]); + } + getEnvStrings.strings = strings; + } + return getEnvStrings.strings; } - if (i > 0) { - holeIndex += data[i - 1].length; - result.holes.push(holeIndex); + function writeAsciiToMemory(str, buffer, dontAddNull) { + for (var i = 0; i < str.length; ++i) { + HEAP8[buffer++ >>> 0] = str.charCodeAt(i); + } + if (!dontAddNull) + HEAP8[buffer >>> 0] = 0; } - } - return result; -}; - -var earcutExports = earcut$2.exports; -var earcut$1 = /*@__PURE__*/getDefaultExportFromCjs(earcutExports); - -// Helper for passes that need to fill the viewport with a single quad. - -new OrthographicCamera( - 1, 1, 1, - 1, 0, 1 ); - -// https://github.com/mrdoob/three.js/pull/21358 - -const _geometry = new BufferGeometry(); -_geometry.setAttribute( 'position', new Float32BufferAttribute( [ - 1, 3, 0, - 1, - 1, 0, 3, - 1, 0 ], 3 ) ); -_geometry.setAttribute( 'uv', new Float32BufferAttribute( [ 0, 2, 0, 0, 2, 0 ], 2 ) ); - -/** - * postprocessing v6.33.0 build Fri Aug 11 2023 - * https://github.com/pmndrs/postprocessing - * Copyright 2015-2023 Raoul van Rüschen - * @license Zlib - */ - -// src/utils/BackCompat.js -Number(REVISION.replace(/\D+/g, "")); - -const $e4ca8dcb0218f846$var$_geometry = new BufferGeometry(); -$e4ca8dcb0218f846$var$_geometry.setAttribute("position", new BufferAttribute(new Float32Array([ - -1, - -1, - 3, - -1, - -1, - 3 -]), 2)); -$e4ca8dcb0218f846$var$_geometry.setAttribute("uv", new BufferAttribute(new Float32Array([ - 0, - 0, - 2, - 0, - 0, - 2 -]), 2)); -// Recent three.js versions break setDrawRange or itemSize <3 position -$e4ca8dcb0218f846$var$_geometry.boundingSphere = new Sphere(); -$e4ca8dcb0218f846$var$_geometry.computeBoundingSphere = function() {}; -new OrthographicCamera(); - - - -({ - uniforms: { - "sceneDiffuse": { - value: null - }, - "sceneDepth": { - value: null - }, - "sceneNormal": { - value: null - }, - "projMat": { - value: new Matrix4() - }, - "viewMat": { - value: new Matrix4() - }, - "projViewMat": { - value: new Matrix4() - }, - "projectionMatrixInv": { - value: new Matrix4() - }, - "viewMatrixInv": { - value: new Matrix4() - }, - "cameraPos": { - value: new Vector3() - }, - "resolution": { - value: new Vector2() - }, - "time": { - value: 0.0 - }, - "samples": { - value: [] - }, - "samplesR": { - value: [] - }, - "bluenoise": { - value: null - }, - "distanceFalloff": { - value: 1.0 - }, - "radius": { - value: 5.0 - }, - "near": { - value: 0.1 - }, - "far": { - value: 1000.0 - }, - "logDepth": { - value: false - }, - "ortho": { - value: false - }, - "screenSpaceRadius": { - value: false + var PATH = { isAbs: (path) => path.charAt(0) === "/", splitPath: (filename) => { + var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/; + return splitPathRe.exec(filename).slice(1); + }, normalizeArray: (parts, allowAboveRoot) => { + var up = 0; + for (var i = parts.length - 1; i >= 0; i--) { + var last = parts[i]; + if (last === ".") { + parts.splice(i, 1); + } else if (last === "..") { + parts.splice(i, 1); + up++; + } else if (up) { + parts.splice(i, 1); + up--; + } + } + if (allowAboveRoot) { + for (; up; up--) { + parts.unshift(".."); + } + } + return parts; + }, normalize: (path) => { + var isAbsolute = PATH.isAbs(path), trailingSlash = path.substr(-1) === "/"; + path = PATH.normalizeArray(path.split("/").filter((p) => !!p), !isAbsolute).join("/"); + if (!path && !isAbsolute) { + path = "."; + } + if (path && trailingSlash) { + path += "/"; + } + return (isAbsolute ? "/" : "") + path; + }, dirname: (path) => { + var result = PATH.splitPath(path), root = result[0], dir = result[1]; + if (!root && !dir) { + return "."; + } + if (dir) { + dir = dir.substr(0, dir.length - 1); + } + return root + dir; + }, basename: (path) => { + if (path === "/") + return "/"; + path = PATH.normalize(path); + path = path.replace(/\/$/, ""); + var lastSlash = path.lastIndexOf("/"); + if (lastSlash === -1) + return path; + return path.substr(lastSlash + 1); + }, join: function() { + var paths = Array.prototype.slice.call(arguments); + return PATH.normalize(paths.join("/")); + }, join2: (l, r) => { + return PATH.normalize(l + "/" + r); + } }; + function getRandomDevice() { + if (typeof crypto == "object" && typeof crypto["getRandomValues"] == "function") { + var randomBuffer = new Uint8Array(1); + return () => { + crypto.getRandomValues(randomBuffer); + return randomBuffer[0]; + }; + } else + return () => abort("randomDevice"); } - }, - depthWrite: false, - depthTest: false, - vertexShader: /* glsl */ ` -varying vec2 vUv; -void main() { - vUv = uv; - gl_Position = vec4(position, 1); -}`, - fragmentShader: /* glsl */ ` - #define SAMPLES 16 - #define FSAMPLES 16.0 -uniform sampler2D sceneDiffuse; -uniform highp sampler2D sceneNormal; -uniform highp sampler2D sceneDepth; -uniform mat4 projectionMatrixInv; -uniform mat4 viewMatrixInv; -uniform mat4 projMat; -uniform mat4 viewMat; -uniform mat4 projViewMat; -uniform vec3 cameraPos; -uniform vec2 resolution; -uniform float time; -uniform vec3[SAMPLES] samples; -uniform float[SAMPLES] samplesR; -uniform float radius; -uniform float distanceFalloff; -uniform float near; -uniform float far; -uniform bool logDepth; -uniform bool ortho; -uniform bool screenSpaceRadius; -uniform sampler2D bluenoise; - varying vec2 vUv; - highp float linearize_depth(highp float d, highp float zNear,highp float zFar) - { - return (zFar * zNear) / (zFar - d * (zFar - zNear)); - } - highp float linearize_depth_ortho(highp float d, highp float nearZ, highp float farZ) { - return nearZ + (farZ - nearZ) * d; - } - highp float linearize_depth_log(highp float d, highp float nearZ,highp float farZ) { - float depth = pow(2.0, d * log2(farZ + 1.0)) - 1.0; - float a = farZ / (farZ - nearZ); - float b = farZ * nearZ / (nearZ - farZ); - float linDepth = a + b / depth; - return ortho ? linearize_depth_ortho( - linDepth, - nearZ, - farZ - ) :linearize_depth(linDepth, nearZ, farZ); - } - - vec3 getWorldPosLog(vec3 posS) { - vec2 uv = posS.xy; - float z = posS.z; - float nearZ =near; - float farZ = far; - float depth = pow(2.0, z * log2(farZ + 1.0)) - 1.0; - float a = farZ / (farZ - nearZ); - float b = farZ * nearZ / (nearZ - farZ); - float linDepth = a + b / depth; - vec4 clipVec = vec4(uv, linDepth, 1.0) * 2.0 - 1.0; - vec4 wpos = projectionMatrixInv * clipVec; - return wpos.xyz / wpos.w; - } - vec3 getWorldPos(float depth, vec2 coord) { - #ifdef LOGDEPTH - return getWorldPosLog(vec3(coord, depth)); - #endif - float z = depth * 2.0 - 1.0; - vec4 clipSpacePosition = vec4(coord * 2.0 - 1.0, z, 1.0); - vec4 viewSpacePosition = projectionMatrixInv * clipSpacePosition; - // Perspective division - vec4 worldSpacePosition = viewSpacePosition; - worldSpacePosition.xyz /= worldSpacePosition.w; - return worldSpacePosition.xyz; - } - - vec3 computeNormal(vec3 worldPos, vec2 vUv) { - ivec2 p = ivec2(vUv * resolution); - float c0 = texelFetch(sceneDepth, p, 0).x; - float l2 = texelFetch(sceneDepth, p - ivec2(2, 0), 0).x; - float l1 = texelFetch(sceneDepth, p - ivec2(1, 0), 0).x; - float r1 = texelFetch(sceneDepth, p + ivec2(1, 0), 0).x; - float r2 = texelFetch(sceneDepth, p + ivec2(2, 0), 0).x; - float b2 = texelFetch(sceneDepth, p - ivec2(0, 2), 0).x; - float b1 = texelFetch(sceneDepth, p - ivec2(0, 1), 0).x; - float t1 = texelFetch(sceneDepth, p + ivec2(0, 1), 0).x; - float t2 = texelFetch(sceneDepth, p + ivec2(0, 2), 0).x; - - float dl = abs((2.0 * l1 - l2) - c0); - float dr = abs((2.0 * r1 - r2) - c0); - float db = abs((2.0 * b1 - b2) - c0); - float dt = abs((2.0 * t1 - t2) - c0); - - vec3 ce = getWorldPos(c0, vUv).xyz; - - vec3 dpdx = (dl < dr) ? ce - getWorldPos(l1, (vUv - vec2(1.0 / resolution.x, 0.0))).xyz - : -ce + getWorldPos(r1, (vUv + vec2(1.0 / resolution.x, 0.0))).xyz; - vec3 dpdy = (db < dt) ? ce - getWorldPos(b1, (vUv - vec2(0.0, 1.0 / resolution.y))).xyz - : -ce + getWorldPos(t1, (vUv + vec2(0.0, 1.0 / resolution.y))).xyz; - - return normalize(cross(dpdx, dpdy)); -} - -void main() { - vec4 diffuse = texture2D(sceneDiffuse, vUv); - float depth = texture2D(sceneDepth, vUv).x; - if (depth == 1.0) { - gl_FragColor = vec4(vec3(1.0), 1.0); - return; - } - vec3 worldPos = getWorldPos(depth, vUv); - // vec3 normal = texture2D(sceneNormal, vUv).rgb;//computeNormal(worldPos, vUv); - #ifdef HALFRES - vec3 normal = texture2D(sceneNormal, vUv).rgb; - #else - vec3 normal = computeNormal(worldPos, vUv); - #endif - vec4 noise = texture2D(bluenoise, gl_FragCoord.xy / 128.0); - vec3 randomVec = normalize(noise.rgb * 2.0 - 1.0); - vec3 tangent = normalize(randomVec - normal * dot(randomVec, normal)); - vec3 bitangent = cross(normal, tangent); - mat3 tbn = mat3(tangent, bitangent, normal); - float occluded = 0.0; - float totalWeight = 0.0; - /* float radiusScreen = distance( - worldPos, - getWorldPos(depth, vUv + - vec2(48.0, 0.0) / resolution) - );/*vUv.x < 0.5 ? radius : min(distance( - worldPos, - getWorldPos(depth, vUv + - vec2(100.0, 0.0) / resolution) - ), radius); - float distanceFalloffScreen = radiusScreen * 0.2;*/ - float radiusToUse = screenSpaceRadius ? distance( - worldPos, - getWorldPos(depth, vUv + - vec2(radius, 0.0) / resolution) - ) : radius; - float distanceFalloffToUse =screenSpaceRadius ? - radiusToUse * distanceFalloff - : distanceFalloff; - float bias = (0.1 / near) * fwidth(distance(worldPos, cameraPos)) / radiusToUse; - for(float i = 0.0; i < FSAMPLES; i++) { - vec3 sampleDirection = - tbn * - samples[int(i)]; - ; - float moveAmt = samplesR[int(mod(i + noise.a * FSAMPLES, FSAMPLES))]; - vec3 samplePos = worldPos + radiusToUse * moveAmt * sampleDirection; - vec4 offset = projMat * vec4(samplePos, 1.0); - offset.xyz /= offset.w; - offset.xyz = offset.xyz * 0.5 + 0.5; - float sampleDepth = textureLod(sceneDepth, offset.xy, 0.0).x; - /*float distSample = logDepth ? linearize_depth_log(sampleDepth, near, far) - (ortho ? linearize_depth_ortho(sampleDepth, near, far) : linearize_depth(sampleDepth, near, far));*/ - #ifdef LOGDEPTH - float distSample = linearize_depth_log(sampleDepth, near, far); - #else - float distSample = ortho ? linearize_depth_ortho(sampleDepth, near, far) : linearize_depth(sampleDepth, near, far); - #endif - float distWorld = ortho ? linearize_depth_ortho(offset.z, near, far) : linearize_depth(offset.z, near, far); - float rangeCheck = smoothstep(0.0, 1.0, distanceFalloffToUse / (abs(distSample - distWorld))); - vec2 diff = gl_FragCoord.xy - ( offset.xy * resolution); - float weight = dot(sampleDirection, normal); - occluded += rangeCheck * weight * - (distSample + bias - < distWorld ? 1.0 : 0.0) * ( - (dot( - diff, - diff - - ) < 1.0 || (sampleDepth == depth) || ( - offset.x < 0.0 || offset.x > 1.0 || offset.y < 0.0 || offset.y > 1.0 - ) ? 0.0 : 1.0) - ); - totalWeight += weight; - } - float occ = clamp(1.0 - occluded / totalWeight, 0.0, 1.0); - gl_FragColor = vec4(0.5 + 0.5 * normal, occ); -}` -}); - - - -({ - uniforms: { - "sceneDiffuse": { - value: null - }, - "sceneDepth": { - value: null - }, - "tDiffuse": { - value: null - }, - "projMat": { - value: new Matrix4() - }, - "viewMat": { - value: new Matrix4() - }, - "projectionMatrixInv": { - value: new Matrix4() - }, - "viewMatrixInv": { - value: new Matrix4() - }, - "cameraPos": { - value: new Vector3() - }, - "resolution": { - value: new Vector2() - }, - "color": { - value: new Vector3(0, 0, 0) - }, - "blueNoise": { - value: null - }, - "downsampledDepth": { - value: null - }, - "time": { - value: 0.0 - }, - "intensity": { - value: 10.0 - }, - "renderMode": { - value: 0.0 - }, - "gammaCorrection": { - value: false - }, - "logDepth": { - value: false - }, - "ortho": { - value: false - }, - "near": { - value: 0.1 - }, - "far": { - value: 1000.0 - }, - "screenSpaceRadius": { - value: false - }, - "radius": { - value: 0.0 - }, - "distanceFalloff": { - value: 1.0 - }, - "fog": { - value: false - }, - "fogExp": { - value: false - }, - "fogDensity": { - value: 0.0 - }, - "fogNear": { - value: Infinity - }, - "fogFar": { - value: Infinity - }, - "colorMultiply": { - value: true + var PATH_FS = { resolve: function() { + var resolvedPath = "", resolvedAbsolute = false; + for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) { + var path = i >= 0 ? arguments[i] : FS.cwd(); + if (typeof path != "string") { + throw new TypeError("Arguments to path.resolve must be strings"); + } else if (!path) { + return ""; + } + resolvedPath = path + "/" + resolvedPath; + resolvedAbsolute = PATH.isAbs(path); + } + resolvedPath = PATH.normalizeArray(resolvedPath.split("/").filter((p) => !!p), !resolvedAbsolute).join("/"); + return (resolvedAbsolute ? "/" : "") + resolvedPath || "."; + }, relative: (from, to) => { + from = PATH_FS.resolve(from).substr(1); + to = PATH_FS.resolve(to).substr(1); + function trim(arr) { + var start = 0; + for (; start < arr.length; start++) { + if (arr[start] !== "") + break; + } + var end = arr.length - 1; + for (; end >= 0; end--) { + if (arr[end] !== "") + break; + } + if (start > end) + return []; + return arr.slice(start, end - start + 1); + } + var fromParts = trim(from.split("/")); + var toParts = trim(to.split("/")); + var length = Math.min(fromParts.length, toParts.length); + var samePartsLength = length; + for (var i = 0; i < length; i++) { + if (fromParts[i] !== toParts[i]) { + samePartsLength = i; + break; + } + } + var outputParts = []; + for (var i = samePartsLength; i < fromParts.length; i++) { + outputParts.push(".."); + } + outputParts = outputParts.concat(toParts.slice(samePartsLength)); + return outputParts.join("/"); + } }; + function intArrayFromString(stringy, dontAddNull, length) { + var len = length > 0 ? length : lengthBytesUTF8(stringy) + 1; + var u8array = new Array(len); + var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length); + if (dontAddNull) + u8array.length = numBytesWritten; + return u8array; + } + var TTY = { ttys: [], init: function() { + }, shutdown: function() { + }, register: function(dev, ops) { + TTY.ttys[dev] = { input: [], output: [], ops }; + FS.registerDevice(dev, TTY.stream_ops); + }, stream_ops: { open: function(stream) { + var tty = TTY.ttys[stream.node.rdev]; + if (!tty) { + throw new FS.ErrnoError(43); + } + stream.tty = tty; + stream.seekable = false; + }, close: function(stream) { + stream.tty.ops.fsync(stream.tty); + }, fsync: function(stream) { + stream.tty.ops.fsync(stream.tty); + }, read: function(stream, buffer, offset, length, pos) { + if (!stream.tty || !stream.tty.ops.get_char) { + throw new FS.ErrnoError(60); + } + var bytesRead = 0; + for (var i = 0; i < length; i++) { + var result; + try { + result = stream.tty.ops.get_char(stream.tty); + } catch (e) { + throw new FS.ErrnoError(29); + } + if (result === void 0 && bytesRead === 0) { + throw new FS.ErrnoError(6); + } + if (result === null || result === void 0) + break; + bytesRead++; + buffer[offset + i] = result; + } + if (bytesRead) { + stream.node.timestamp = Date.now(); + } + return bytesRead; + }, write: function(stream, buffer, offset, length, pos) { + if (!stream.tty || !stream.tty.ops.put_char) { + throw new FS.ErrnoError(60); + } + try { + for (var i = 0; i < length; i++) { + stream.tty.ops.put_char(stream.tty, buffer[offset + i]); + } + } catch (e) { + throw new FS.ErrnoError(29); + } + if (length) { + stream.node.timestamp = Date.now(); + } + return i; + } }, default_tty_ops: { get_char: function(tty) { + if (!tty.input.length) { + var result = null; + if (typeof window != "undefined" && typeof window.prompt == "function") { + result = window.prompt("Input: "); + if (result !== null) { + result += "\n"; + } + } else if (typeof readline == "function") { + result = readline(); + if (result !== null) { + result += "\n"; + } + } + if (!result) { + return null; + } + tty.input = intArrayFromString(result, true); + } + return tty.input.shift(); + }, put_char: function(tty, val) { + if (val === null || val === 10) { + out(UTF8ArrayToString(tty.output, 0)); + tty.output = []; + } else { + if (val != 0) + tty.output.push(val); + } + }, fsync: function(tty) { + if (tty.output && tty.output.length > 0) { + out(UTF8ArrayToString(tty.output, 0)); + tty.output = []; + } + } }, default_tty1_ops: { put_char: function(tty, val) { + if (val === null || val === 10) { + err(UTF8ArrayToString(tty.output, 0)); + tty.output = []; + } else { + if (val != 0) + tty.output.push(val); + } + }, fsync: function(tty) { + if (tty.output && tty.output.length > 0) { + err(UTF8ArrayToString(tty.output, 0)); + tty.output = []; + } + } } }; + function mmapAlloc(size) { + abort(); } - }, - depthWrite: false, - depthTest: false, - vertexShader: /* glsl */ ` - varying vec2 vUv; - void main() { - vUv = uv; - gl_Position = vec4(position, 1); - }`, - fragmentShader: /* glsl */ ` - uniform sampler2D sceneDiffuse; - uniform highp sampler2D sceneDepth; - uniform highp sampler2D downsampledDepth; - uniform sampler2D tDiffuse; - uniform sampler2D blueNoise; - uniform vec2 resolution; - uniform vec3 color; - uniform mat4 projectionMatrixInv; - uniform mat4 viewMatrixInv; - uniform float intensity; - uniform float renderMode; - uniform float near; - uniform float far; - uniform bool gammaCorrection; - uniform bool logDepth; - uniform bool ortho; - uniform bool screenSpaceRadius; - uniform bool fog; - uniform bool fogExp; - uniform bool colorMultiply; - uniform float fogDensity; - uniform float fogNear; - uniform float fogFar; - uniform float radius; - uniform float distanceFalloff; - uniform vec3 cameraPos; - varying vec2 vUv; - highp float linearize_depth(highp float d, highp float zNear,highp float zFar) - { - return (zFar * zNear) / (zFar - d * (zFar - zNear)); - } - highp float linearize_depth_ortho(highp float d, highp float nearZ, highp float farZ) { - return nearZ + (farZ - nearZ) * d; - } - highp float linearize_depth_log(highp float d, highp float nearZ,highp float farZ) { - float depth = pow(2.0, d * log2(farZ + 1.0)) - 1.0; - float a = farZ / (farZ - nearZ); - float b = farZ * nearZ / (nearZ - farZ); - float linDepth = a + b / depth; - return ortho ? linearize_depth_ortho( - linDepth, - nearZ, - farZ - ) :linearize_depth(linDepth, nearZ, farZ); - } - vec3 getWorldPosLog(vec3 posS) { - vec2 uv = posS.xy; - float z = posS.z; - float nearZ =near; - float farZ = far; - float depth = pow(2.0, z * log2(farZ + 1.0)) - 1.0; - float a = farZ / (farZ - nearZ); - float b = farZ * nearZ / (nearZ - farZ); - float linDepth = a + b / depth; - vec4 clipVec = vec4(uv, linDepth, 1.0) * 2.0 - 1.0; - vec4 wpos = projectionMatrixInv * clipVec; - return wpos.xyz / wpos.w; - } - vec3 getWorldPos(float depth, vec2 coord) { - // if (logDepth) { - #ifdef LOGDEPTH - return getWorldPosLog(vec3(coord, depth)); - #endif - // } - float z = depth * 2.0 - 1.0; - vec4 clipSpacePosition = vec4(coord * 2.0 - 1.0, z, 1.0); - vec4 viewSpacePosition = projectionMatrixInv * clipSpacePosition; - // Perspective division - vec4 worldSpacePosition = viewSpacePosition; - worldSpacePosition.xyz /= worldSpacePosition.w; - return worldSpacePosition.xyz; - } - - vec3 computeNormal(vec3 worldPos, vec2 vUv) { - ivec2 p = ivec2(vUv * resolution); - float c0 = texelFetch(sceneDepth, p, 0).x; - float l2 = texelFetch(sceneDepth, p - ivec2(2, 0), 0).x; - float l1 = texelFetch(sceneDepth, p - ivec2(1, 0), 0).x; - float r1 = texelFetch(sceneDepth, p + ivec2(1, 0), 0).x; - float r2 = texelFetch(sceneDepth, p + ivec2(2, 0), 0).x; - float b2 = texelFetch(sceneDepth, p - ivec2(0, 2), 0).x; - float b1 = texelFetch(sceneDepth, p - ivec2(0, 1), 0).x; - float t1 = texelFetch(sceneDepth, p + ivec2(0, 1), 0).x; - float t2 = texelFetch(sceneDepth, p + ivec2(0, 2), 0).x; - - float dl = abs((2.0 * l1 - l2) - c0); - float dr = abs((2.0 * r1 - r2) - c0); - float db = abs((2.0 * b1 - b2) - c0); - float dt = abs((2.0 * t1 - t2) - c0); - - vec3 ce = getWorldPos(c0, vUv).xyz; - - vec3 dpdx = (dl < dr) ? ce - getWorldPos(l1, (vUv - vec2(1.0 / resolution.x, 0.0))).xyz - : -ce + getWorldPos(r1, (vUv + vec2(1.0 / resolution.x, 0.0))).xyz; - vec3 dpdy = (db < dt) ? ce - getWorldPos(b1, (vUv - vec2(0.0, 1.0 / resolution.y))).xyz - : -ce + getWorldPos(t1, (vUv + vec2(0.0, 1.0 / resolution.y))).xyz; - - return normalize(cross(dpdx, dpdy)); - } - - #include - #include - void main() { - //vec4 texel = texture2D(tDiffuse, vUv);//vec3(0.0); - vec4 sceneTexel = texture2D(sceneDiffuse, vUv); - float depth = texture2D( - sceneDepth, - vUv - ).x; - #ifdef HALFRES - vec4 texel; - if (depth == 1.0) { - texel = vec4(0.0, 0.0, 0.0, 1.0); - } else { - vec3 worldPos = getWorldPos(depth, vUv); - vec3 normal = computeNormal(getWorldPos(depth, vUv), vUv); - // vec4 texel = texture2D(tDiffuse, vUv); - // Find closest depth; - float totalWeight = 0.0; - float radiusToUse = screenSpaceRadius ? distance( - worldPos, - getWorldPos(depth, vUv + - vec2(radius, 0.0) / resolution) - ) : radius; - float distanceFalloffToUse =screenSpaceRadius ? - radiusToUse * distanceFalloff - : distanceFalloff; - for(float x = -1.0; x <= 1.0; x++) { - for(float y = -1.0; y <= 1.0; y++) { - vec2 offset = vec2(x, y); - ivec2 p = ivec2( - (vUv * resolution * 0.5) + offset - ); - vec2 pUv = vec2(p) / (resolution * 0.5); - float sampleDepth = texelFetch(downsampledDepth,p, 0).x; - vec4 sampleInfo = texelFetch(tDiffuse, p, 0); - vec3 normalSample = sampleInfo.xyz * 2.0 - 1.0; - vec3 worldPosSample = getWorldPos(sampleDepth, pUv); - float tangentPlaneDist = abs(dot(worldPos - worldPosSample, normal)); - float rangeCheck = exp(-1.0 * tangentPlaneDist * (1.0 / distanceFalloffToUse)) * max(dot(normal, normalSample), 0.0); - float weight = rangeCheck; - totalWeight += weight; - texel += sampleInfo * weight; + var MEMFS = { ops_table: null, mount: function(mount) { + return MEMFS.createNode(null, "/", 16384 | 511, 0); + }, createNode: function(parent, name, mode, dev) { + if (FS.isBlkdev(mode) || FS.isFIFO(mode)) { + throw new FS.ErrnoError(63); + } + if (!MEMFS.ops_table) { + MEMFS.ops_table = { dir: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr, lookup: MEMFS.node_ops.lookup, mknod: MEMFS.node_ops.mknod, rename: MEMFS.node_ops.rename, unlink: MEMFS.node_ops.unlink, rmdir: MEMFS.node_ops.rmdir, readdir: MEMFS.node_ops.readdir, symlink: MEMFS.node_ops.symlink }, stream: { llseek: MEMFS.stream_ops.llseek } }, file: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr }, stream: { llseek: MEMFS.stream_ops.llseek, read: MEMFS.stream_ops.read, write: MEMFS.stream_ops.write, allocate: MEMFS.stream_ops.allocate, mmap: MEMFS.stream_ops.mmap, msync: MEMFS.stream_ops.msync } }, link: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr, readlink: MEMFS.node_ops.readlink }, stream: {} }, chrdev: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr }, stream: FS.chrdev_stream_ops } }; + } + var node = FS.createNode(parent, name, mode, dev); + if (FS.isDir(node.mode)) { + node.node_ops = MEMFS.ops_table.dir.node; + node.stream_ops = MEMFS.ops_table.dir.stream; + node.contents = {}; + } else if (FS.isFile(node.mode)) { + node.node_ops = MEMFS.ops_table.file.node; + node.stream_ops = MEMFS.ops_table.file.stream; + node.usedBytes = 0; + node.contents = null; + } else if (FS.isLink(node.mode)) { + node.node_ops = MEMFS.ops_table.link.node; + node.stream_ops = MEMFS.ops_table.link.stream; + } else if (FS.isChrdev(node.mode)) { + node.node_ops = MEMFS.ops_table.chrdev.node; + node.stream_ops = MEMFS.ops_table.chrdev.stream; + } + node.timestamp = Date.now(); + if (parent) { + parent.contents[name] = node; + parent.timestamp = node.timestamp; + } + return node; + }, getFileDataAsTypedArray: function(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(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); + }, resizeFileStorage: function(node, newSize) { + newSize >>>= 0; + if (node.usedBytes == newSize) + return; + if (newSize == 0) { + node.contents = null; + node.usedBytes = 0; + } else { + var oldContents = node.contents; + node.contents = new Uint8Array(newSize); + if (oldContents) { + node.contents.set(oldContents.subarray(0, Math.min(newSize, node.usedBytes))); + } + node.usedBytes = newSize; + } + }, node_ops: { getattr: function(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(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(parent, name) { + throw FS.genericErrors[44]; + }, mknod: function(parent, name, mode, dev) { + return MEMFS.createNode(parent, name, mode, dev); + }, rename: function(old_node, new_dir, new_name) { + if (FS.isDir(old_node.mode)) { + var new_node; + try { + new_node = FS.lookupNode(new_dir, new_name); + } catch (e) { + } + if (new_node) { + for (var i in new_node.contents) { + throw new FS.ErrnoError(55); + } + } + } + delete old_node.parent.contents[old_node.name]; + old_node.parent.timestamp = Date.now(); + old_node.name = new_name; + new_dir.contents[new_name] = old_node; + new_dir.timestamp = old_node.parent.timestamp; + old_node.parent = new_dir; + }, unlink: function(parent, name) { + delete parent.contents[name]; + parent.timestamp = Date.now(); + }, rmdir: function(parent, name) { + var node = FS.lookupNode(parent, name); + for (var i in node.contents) { + throw new FS.ErrnoError(55); + } + delete parent.contents[name]; + parent.timestamp = Date.now(); + }, readdir: function(node) { + var entries = [".", ".."]; + for (var key in node.contents) { + if (!node.contents.hasOwnProperty(key)) { + continue; + } + entries.push(key); + } + return entries; + }, symlink: function(parent, newname, oldpath) { + var node = MEMFS.createNode(parent, newname, 511 | 40960, 0); + node.link = oldpath; + return node; + }, readlink: function(node) { + if (!FS.isLink(node.mode)) { + throw new FS.ErrnoError(28); + } + return node.link; + } }, stream_ops: { read: function(stream, buffer, offset, length, position) { + var contents = stream.node.contents; + if (position >= stream.node.usedBytes) + return 0; + var size = Math.min(stream.node.usedBytes - position, length); + if (size > 8 && contents.subarray) { + buffer.set(contents.subarray(position, position + size), offset); + } else { + for (var i = 0; i < size; i++) + buffer[offset + i] = contents[position + i]; + } + return size; + }, write: function(stream, buffer, offset, length, position, canOwn) { + if (buffer.buffer === HEAP8.buffer) { + canOwn = false; + } + if (!length) + return 0; + var node = stream.node; + node.timestamp = Date.now(); + if (buffer.subarray && (!node.contents || node.contents.subarray)) { + if (canOwn) { + node.contents = buffer.subarray(offset, offset + length); + node.usedBytes = length; + return length; + } else if (node.usedBytes === 0 && position === 0) { + node.contents = buffer.slice(offset, offset + length); + node.usedBytes = length; + return length; + } else if (position + length <= node.usedBytes) { + node.contents.set(buffer.subarray(offset, offset + length), position); + return length; + } + } + MEMFS.expandFileStorage(node, position + length); + if (node.contents.subarray && buffer.subarray) { + node.contents.set(buffer.subarray(offset, offset + length), position); + } else { + for (var i = 0; i < length; i++) { + node.contents[position + i] = buffer[offset + i]; + } + } + node.usedBytes = Math.max(node.usedBytes, position + length); + return length; + }, llseek: function(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(stream, offset, length) { + MEMFS.expandFileStorage(stream.node, offset + length); + stream.node.usedBytes = Math.max(stream.node.usedBytes, offset + length); + }, mmap: function(stream, length, position, prot, flags) { + if (!FS.isFile(stream.node.mode)) { + throw new FS.ErrnoError(43); + } + var ptr; + var allocated; + var contents = stream.node.contents; + if (!(flags & 2) && contents.buffer === HEAP8.buffer) { + allocated = false; + ptr = contents.byteOffset; + } else { + if (position > 0 || position + length < contents.length) { + if (contents.subarray) { + contents = contents.subarray(position, position + length); + } else { + contents = Array.prototype.slice.call(contents, position, position + length); + } + } + allocated = true; + ptr = mmapAlloc(); + if (!ptr) { + throw new FS.ErrnoError(48); + } + ptr >>>= 0; + HEAP8.set(contents, ptr >>> 0); + } + return { ptr, allocated }; + }, msync: function(stream, buffer, offset, length, mmapFlags) { + MEMFS.stream_ops.write(stream, buffer, 0, length, offset, false); + return 0; + } } }; + function asyncLoad(url, onload, onerror, noRunDep) { + var dep = !noRunDep ? getUniqueRunDependency("al " + url) : ""; + readAsync(url, (arrayBuffer) => { + assert(arrayBuffer, 'Loading data file "' + url + '" failed (no arrayBuffer).'); + onload(new Uint8Array(arrayBuffer)); + if (dep) + removeRunDependency(); + }, (event) => { + if (onerror) { + onerror(); + } else { + throw 'Loading data file "' + url + '" failed.'; + } + }); + if (dep) + addRunDependency(); + } + var FS = { root: null, mounts: [], devices: {}, streams: [], nextInode: 1, nameTable: null, currentPath: "/", initialized: false, ignorePermissions: true, ErrnoError: null, genericErrors: {}, filesystems: null, syncFSRequests: 0, lookupPath: (path, opts = {}) => { + path = PATH_FS.resolve(path); + if (!path) + return { path: "", node: null }; + var defaults = { follow_mount: true, recurse_count: 0 }; + opts = Object.assign(defaults, opts); + if (opts.recurse_count > 8) { + throw new FS.ErrnoError(32); + } + var parts = path.split("/").filter((p) => !!p); + var current = FS.root; + var current_path = "/"; + for (var i = 0; i < parts.length; i++) { + var islast = i === parts.length - 1; + if (islast && opts.parent) { + break; + } + current = FS.lookupNode(current, parts[i]); + current_path = PATH.join2(current_path, parts[i]); + if (FS.isMountpoint(current)) { + if (!islast || islast && opts.follow_mount) { + current = current.mounted.root; + } + } + if (!islast || opts.follow) { + var count = 0; + while (FS.isLink(current.mode)) { + var link = FS.readlink(current_path); + current_path = PATH_FS.resolve(PATH.dirname(current_path), link); + var lookup = FS.lookupPath(current_path, { recurse_count: opts.recurse_count + 1 }); + current = lookup.node; + if (count++ > 40) { + throw new FS.ErrnoError(32); + } + } + } + } + return { path: current_path, node: current }; + }, getPath: (node) => { + var path; + while (true) { + if (FS.isRoot(node)) { + var mount = node.mount.mountpoint; + if (!path) + return mount; + return mount[mount.length - 1] !== "/" ? mount + "/" + path : mount + path; + } + path = path ? node.name + "/" + path : node.name; + node = node.parent; + } + }, hashName: (parentid, name) => { + var hash = 0; + for (var i = 0; i < name.length; i++) { + hash = (hash << 5) - hash + name.charCodeAt(i) | 0; + } + return (parentid + hash >>> 0) % FS.nameTable.length; + }, hashAddNode: (node) => { + var hash = FS.hashName(node.parent.id, node.name); + node.name_next = FS.nameTable[hash]; + FS.nameTable[hash] = node; + }, hashRemoveNode: (node) => { + var hash = FS.hashName(node.parent.id, node.name); + if (FS.nameTable[hash] === node) { + FS.nameTable[hash] = node.name_next; + } else { + var current = FS.nameTable[hash]; + while (current) { + if (current.name_next === node) { + current.name_next = node.name_next; + break; + } + current = current.name_next; + } + } + }, lookupNode: (parent, name) => { + var errCode = FS.mayLookup(parent); + if (errCode) { + throw new FS.ErrnoError(errCode, parent); + } + var hash = FS.hashName(parent.id, name); + for (var node = FS.nameTable[hash]; node; node = node.name_next) { + var nodeName = node.name; + if (node.parent.id === parent.id && nodeName === name) { + return node; + } + } + return FS.lookup(parent, name); + }, createNode: (parent, name, mode, rdev) => { + var node = new FS.FSNode(parent, name, mode, rdev); + FS.hashAddNode(node); + return node; + }, destroyNode: (node) => { + FS.hashRemoveNode(node); + }, isRoot: (node) => { + return node === node.parent; + }, isMountpoint: (node) => { + return !!node.mounted; + }, isFile: (mode) => { + return (mode & 61440) === 32768; + }, isDir: (mode) => { + return (mode & 61440) === 16384; + }, isLink: (mode) => { + return (mode & 61440) === 40960; + }, isChrdev: (mode) => { + return (mode & 61440) === 8192; + }, isBlkdev: (mode) => { + return (mode & 61440) === 24576; + }, isFIFO: (mode) => { + return (mode & 61440) === 4096; + }, isSocket: (mode) => { + return (mode & 49152) === 49152; + }, flagModes: { "r": 0, "r+": 2, "w": 577, "w+": 578, "a": 1089, "a+": 1090 }, modeStringToFlags: (str) => { + var flags = FS.flagModes[str]; + if (typeof flags == "undefined") { + throw new Error("Unknown file open mode: " + str); + } + return flags; + }, flagsToPermissionString: (flag) => { + var perms = ["r", "w", "rw"][flag & 3]; + if (flag & 512) { + perms += "w"; + } + return perms; + }, nodePermissions: (node, perms) => { + if (FS.ignorePermissions) { + return 0; + } + if (perms.includes("r") && !(node.mode & 292)) { + return 2; + } else if (perms.includes("w") && !(node.mode & 146)) { + return 2; + } else if (perms.includes("x") && !(node.mode & 73)) { + return 2; + } + return 0; + }, mayLookup: (dir) => { + var errCode = FS.nodePermissions(dir, "x"); + if (errCode) + return errCode; + if (!dir.node_ops.lookup) + return 2; + return 0; + }, mayCreate: (dir, name) => { + try { + var node = FS.lookupNode(dir, name); + return 20; + } catch (e) { + } + return FS.nodePermissions(dir, "wx"); + }, mayDelete: (dir, name, isdir) => { + var node; + try { + node = FS.lookupNode(dir, name); + } catch (e) { + return e.errno; + } + var errCode = FS.nodePermissions(dir, "wx"); + if (errCode) { + return errCode; + } + if (isdir) { + if (!FS.isDir(node.mode)) { + return 54; + } + if (FS.isRoot(node) || FS.getPath(node) === FS.cwd()) { + return 10; + } + } else { + if (FS.isDir(node.mode)) { + return 31; + } + } + return 0; + }, mayOpen: (node, flags) => { + if (!node) { + return 44; + } + if (FS.isLink(node.mode)) { + return 32; + } else if (FS.isDir(node.mode)) { + if (FS.flagsToPermissionString(flags) !== "r" || flags & 512) { + return 31; + } + } + return FS.nodePermissions(node, FS.flagsToPermissionString(flags)); + }, MAX_OPEN_FDS: 4096, nextfd: (fd_start = 0, 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: (fd) => FS.streams[fd], createStream: (stream, fd_start, fd_end) => { + if (!FS.FSStream) { + FS.FSStream = function() { + this.shared = {}; + }; + FS.FSStream.prototype = {}; + Object.defineProperties(FS.FSStream.prototype, { object: { get: function() { + return this.node; + }, set: function(val) { + this.node = val; + } }, isRead: { get: function() { + return (this.flags & 2097155) !== 1; + } }, isWrite: { get: function() { + return (this.flags & 2097155) !== 0; + } }, isAppend: { get: function() { + return this.flags & 1024; + } }, flags: { get: function() { + return this.shared.flags; + }, set: function(val) { + this.shared.flags = val; + } }, position: { get: function() { + return this.shared.position; + }, set: function(val) { + this.shared.position = val; + } } }); + } + stream = Object.assign(new FS.FSStream(), stream); + var fd = FS.nextfd(fd_start, fd_end); + stream.fd = fd; + FS.streams[fd] = stream; + return stream; + }, closeStream: (fd) => { + FS.streams[fd] = null; + }, chrdev_stream_ops: { open: (stream) => { + var device = FS.getDevice(stream.node.rdev); + stream.stream_ops = device.stream_ops; + if (stream.stream_ops.open) { + stream.stream_ops.open(stream); + } + }, llseek: () => { + throw new FS.ErrnoError(70); + } }, major: (dev) => dev >> 8, minor: (dev) => dev & 255, makedev: (ma, mi) => ma << 8 | mi, registerDevice: (dev, ops) => { + FS.devices[dev] = { stream_ops: ops }; + }, getDevice: (dev) => FS.devices[dev], getMounts: (mount) => { + var mounts = []; + var check = [mount]; + while (check.length) { + var m = check.pop(); + mounts.push(m); + check.push.apply(check, m.mounts); + } + return mounts; + }, syncfs: (populate, callback) => { + if (typeof populate == "function") { + callback = populate; + populate = false; + } + FS.syncFSRequests++; + if (FS.syncFSRequests > 1) { + err("warning: " + FS.syncFSRequests + " FS.syncfs operations in flight at once, probably just doing extra work"); + } + var mounts = FS.getMounts(FS.root.mount); + var completed = 0; + function doCallback(errCode) { + FS.syncFSRequests--; + return callback(errCode); + } + function done(errCode) { + if (errCode) { + if (!done.errored) { + done.errored = true; + return doCallback(errCode); + } + return; + } + if (++completed >= mounts.length) { + doCallback(null); + } + } + mounts.forEach((mount) => { + if (!mount.type.syncfs) { + return done(null); + } + mount.type.syncfs(mount, populate, done); + }); + }, mount: (type, opts, mountpoint) => { + var root = mountpoint === "/"; + var pseudo = !mountpoint; + var node; + if (root && FS.root) { + throw new FS.ErrnoError(10); + } else if (!root && !pseudo) { + var lookup = FS.lookupPath(mountpoint, { follow_mount: false }); + mountpoint = lookup.path; + node = lookup.node; + if (FS.isMountpoint(node)) { + throw new FS.ErrnoError(10); + } + if (!FS.isDir(node.mode)) { + throw new FS.ErrnoError(54); + } + } + var mount = { type, opts, mountpoint, mounts: [] }; + var mountRoot = type.mount(mount); + mountRoot.mount = mount; + mount.root = mountRoot; + if (root) { + FS.root = mountRoot; + } else if (node) { + node.mounted = mount; + if (node.mount) { + node.mount.mounts.push(mount); + } + } + return mountRoot; + }, unmount: (mountpoint) => { + var lookup = FS.lookupPath(mountpoint, { follow_mount: false }); + if (!FS.isMountpoint(lookup.node)) { + throw new FS.ErrnoError(28); + } + var node = lookup.node; + var mount = node.mounted; + var mounts = FS.getMounts(mount); + Object.keys(FS.nameTable).forEach((hash) => { + var current = FS.nameTable[hash]; + while (current) { + var next = current.name_next; + if (mounts.includes(current.mount)) { + FS.destroyNode(current); + } + current = next; + } + }); + node.mounted = null; + var idx = node.mount.mounts.indexOf(mount); + node.mount.mounts.splice(idx, 1); + }, lookup: (parent, name) => { + return parent.node_ops.lookup(parent, name); + }, mknod: (path, mode, dev) => { + var lookup = FS.lookupPath(path, { parent: true }); + var parent = lookup.node; + var name = PATH.basename(path); + if (!name || name === "." || name === "..") { + throw new FS.ErrnoError(28); + } + var errCode = FS.mayCreate(parent, name); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + if (!parent.node_ops.mknod) { + throw new FS.ErrnoError(63); + } + return parent.node_ops.mknod(parent, name, mode, dev); + }, create: (path, mode) => { + mode = mode !== void 0 ? mode : 438; + mode &= 4095; + mode |= 32768; + return FS.mknod(path, mode, 0); + }, mkdir: (path, mode) => { + mode = mode !== void 0 ? mode : 511; + mode &= 511 | 512; + mode |= 16384; + return FS.mknod(path, mode, 0); + }, mkdirTree: (path, mode) => { + var dirs = path.split("/"); + var d = ""; + for (var i = 0; i < dirs.length; ++i) { + if (!dirs[i]) + continue; + d += "/" + dirs[i]; + try { + FS.mkdir(d, mode); + } catch (e) { + if (e.errno != 20) + throw e; + } + } + }, mkdev: (path, mode, dev) => { + if (typeof dev == "undefined") { + dev = mode; + mode = 438; + } + mode |= 8192; + return FS.mknod(path, mode, dev); + }, symlink: (oldpath, newpath) => { + if (!PATH_FS.resolve(oldpath)) { + throw new FS.ErrnoError(44); + } + var lookup = FS.lookupPath(newpath, { parent: true }); + var parent = lookup.node; + if (!parent) { + throw new FS.ErrnoError(44); + } + var newname = PATH.basename(newpath); + var errCode = FS.mayCreate(parent, newname); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + if (!parent.node_ops.symlink) { + throw new FS.ErrnoError(63); + } + return parent.node_ops.symlink(parent, newname, oldpath); + }, rename: (old_path, new_path) => { + var old_dirname = PATH.dirname(old_path); + var new_dirname = PATH.dirname(new_path); + var old_name = PATH.basename(old_path); + var new_name = PATH.basename(new_path); + var lookup, old_dir, new_dir; + lookup = FS.lookupPath(old_path, { parent: true }); + old_dir = lookup.node; + lookup = FS.lookupPath(new_path, { parent: true }); + new_dir = lookup.node; + if (!old_dir || !new_dir) + throw new FS.ErrnoError(44); + if (old_dir.mount !== new_dir.mount) { + throw new FS.ErrnoError(75); + } + var old_node = FS.lookupNode(old_dir, old_name); + var relative = PATH_FS.relative(old_path, new_dirname); + if (relative.charAt(0) !== ".") { + throw new FS.ErrnoError(28); + } + relative = PATH_FS.relative(new_path, old_dirname); + if (relative.charAt(0) !== ".") { + throw new FS.ErrnoError(55); + } + var new_node; + try { + new_node = FS.lookupNode(new_dir, new_name); + } catch (e) { + } + if (old_node === new_node) { + return; + } + var isdir = FS.isDir(old_node.mode); + var errCode = FS.mayDelete(old_dir, old_name, isdir); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + errCode = new_node ? FS.mayDelete(new_dir, new_name, isdir) : FS.mayCreate(new_dir, new_name); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + if (!old_dir.node_ops.rename) { + throw new FS.ErrnoError(63); + } + if (FS.isMountpoint(old_node) || new_node && FS.isMountpoint(new_node)) { + throw new FS.ErrnoError(10); + } + if (new_dir !== old_dir) { + errCode = FS.nodePermissions(old_dir, "w"); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + } + FS.hashRemoveNode(old_node); + try { + old_dir.node_ops.rename(old_node, new_dir, new_name); + } catch (e) { + throw e; + } finally { + FS.hashAddNode(old_node); + } + }, rmdir: (path) => { + var lookup = FS.lookupPath(path, { parent: true }); + var parent = lookup.node; + var name = PATH.basename(path); + var node = FS.lookupNode(parent, name); + var errCode = FS.mayDelete(parent, name, true); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + if (!parent.node_ops.rmdir) { + throw new FS.ErrnoError(63); + } + if (FS.isMountpoint(node)) { + throw new FS.ErrnoError(10); + } + parent.node_ops.rmdir(parent, name); + FS.destroyNode(node); + }, readdir: (path) => { + var lookup = FS.lookupPath(path, { follow: true }); + var node = lookup.node; + if (!node.node_ops.readdir) { + throw new FS.ErrnoError(54); + } + return node.node_ops.readdir(node); + }, unlink: (path) => { + var lookup = FS.lookupPath(path, { parent: true }); + var parent = lookup.node; + if (!parent) { + throw new FS.ErrnoError(44); + } + var name = PATH.basename(path); + var node = FS.lookupNode(parent, name); + var errCode = FS.mayDelete(parent, name, false); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + if (!parent.node_ops.unlink) { + throw new FS.ErrnoError(63); + } + if (FS.isMountpoint(node)) { + throw new FS.ErrnoError(10); + } + parent.node_ops.unlink(parent, name); + FS.destroyNode(node); + }, readlink: (path) => { + var lookup = FS.lookupPath(path); + var link = lookup.node; + if (!link) { + throw new FS.ErrnoError(44); + } + if (!link.node_ops.readlink) { + throw new FS.ErrnoError(28); + } + return PATH_FS.resolve(FS.getPath(link.parent), link.node_ops.readlink(link)); + }, stat: (path, dontFollow) => { + var lookup = FS.lookupPath(path, { follow: !dontFollow }); + var node = lookup.node; + if (!node) { + throw new FS.ErrnoError(44); + } + if (!node.node_ops.getattr) { + throw new FS.ErrnoError(63); + } + return node.node_ops.getattr(node); + }, lstat: (path) => { + return FS.stat(path, true); + }, chmod: (path, mode, dontFollow) => { + var node; + if (typeof path == "string") { + var lookup = FS.lookupPath(path, { follow: !dontFollow }); + node = lookup.node; + } else { + node = path; + } + if (!node.node_ops.setattr) { + throw new FS.ErrnoError(63); + } + node.node_ops.setattr(node, { mode: mode & 4095 | node.mode & ~4095, timestamp: Date.now() }); + }, lchmod: (path, mode) => { + FS.chmod(path, mode, true); + }, fchmod: (fd, mode) => { + var stream = FS.getStream(fd); + if (!stream) { + throw new FS.ErrnoError(8); + } + FS.chmod(stream.node, mode); + }, chown: (path, uid, gid, dontFollow) => { + var node; + if (typeof path == "string") { + var lookup = FS.lookupPath(path, { follow: !dontFollow }); + node = lookup.node; + } else { + node = path; + } + if (!node.node_ops.setattr) { + throw new FS.ErrnoError(63); + } + node.node_ops.setattr(node, { timestamp: Date.now() }); + }, lchown: (path, uid, gid) => { + FS.chown(path, uid, gid, true); + }, fchown: (fd, uid, gid) => { + var stream = FS.getStream(fd); + if (!stream) { + throw new FS.ErrnoError(8); + } + FS.chown(stream.node, uid, gid); + }, truncate: (path, len) => { + if (len < 0) { + throw new FS.ErrnoError(28); + } + var node; + if (typeof path == "string") { + var lookup = FS.lookupPath(path, { follow: true }); + node = lookup.node; + } else { + node = path; + } + if (!node.node_ops.setattr) { + throw new FS.ErrnoError(63); + } + if (FS.isDir(node.mode)) { + throw new FS.ErrnoError(31); + } + if (!FS.isFile(node.mode)) { + throw new FS.ErrnoError(28); + } + var errCode = FS.nodePermissions(node, "w"); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + node.node_ops.setattr(node, { size: len, timestamp: Date.now() }); + }, ftruncate: (fd, len) => { + var stream = FS.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: (path, atime, mtime) => { + var lookup = FS.lookupPath(path, { follow: true }); + var node = lookup.node; + node.node_ops.setattr(node, { timestamp: Math.max(atime, mtime) }); + }, open: (path, flags, mode) => { + if (path === "") { + throw new FS.ErrnoError(44); + } + flags = typeof flags == "string" ? FS.modeStringToFlags(flags) : flags; + mode = typeof mode == "undefined" ? 438 : mode; + if (flags & 64) { + mode = mode & 4095 | 32768; + } else { + mode = 0; + } + var node; + if (typeof path == "object") { + node = path; + } else { + path = PATH.normalize(path); + try { + var lookup = FS.lookupPath(path, { follow: !(flags & 131072) }); + node = lookup.node; + } catch (e) { + } + } + var created = false; + if (flags & 64) { + if (node) { + if (flags & 128) { + throw new FS.ErrnoError(20); + } + } else { + node = FS.mknod(path, mode, 0); + created = true; + } + } + if (!node) { + throw new FS.ErrnoError(44); + } + if (FS.isChrdev(node.mode)) { + flags &= ~512; + } + if (flags & 65536 && !FS.isDir(node.mode)) { + throw new FS.ErrnoError(54); + } + if (!created) { + var errCode = FS.mayOpen(node, flags); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + } + if (flags & 512 && !created) { + FS.truncate(node, 0); + } + flags &= ~(128 | 512 | 131072); + var stream = FS.createStream({ node, path: FS.getPath(node), flags, seekable: true, position: 0, stream_ops: node.stream_ops, ungotten: [], error: false }); + if (stream.stream_ops.open) { + stream.stream_ops.open(stream); + } + if (Module["logReadFiles"] && !(flags & 1)) { + if (!FS.readFiles) + FS.readFiles = {}; + if (!(path in FS.readFiles)) { + FS.readFiles[path] = 1; + } + } + return stream; + }, close: (stream) => { + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8); + } + if (stream.getdents) + stream.getdents = null; + try { + if (stream.stream_ops.close) { + stream.stream_ops.close(stream); + } + } catch (e) { + throw e; + } finally { + FS.closeStream(stream.fd); + } + stream.fd = null; + }, isClosed: (stream) => { + return stream.fd === null; + }, llseek: (stream, offset, whence) => { + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8); + } + if (!stream.seekable || !stream.stream_ops.llseek) { + throw new FS.ErrnoError(70); + } + if (whence != 0 && whence != 1 && whence != 2) { + throw new FS.ErrnoError(28); + } + stream.position = stream.stream_ops.llseek(stream, offset, whence); + stream.ungotten = []; + return stream.position; + }, read: (stream, buffer, offset, length, position) => { + 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, buffer, offset, length, position); + if (!seeking) + stream.position += bytesRead; + return bytesRead; + }, write: (stream, buffer, 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, buffer, offset, length, position, canOwn); + if (!seeking) + stream.position += bytesWritten; + return bytesWritten; + }, allocate: (stream, offset, length) => { + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8); + } + if (offset < 0 || length <= 0) { + throw new FS.ErrnoError(28); + } + if ((stream.flags & 2097155) === 0) { + throw new FS.ErrnoError(8); + } + if (!FS.isFile(stream.node.mode) && !FS.isDir(stream.node.mode)) { + throw new FS.ErrnoError(43); + } + if (!stream.stream_ops.allocate) { + throw new FS.ErrnoError(138); + } + stream.stream_ops.allocate(stream, offset, length); + }, mmap: (stream, length, position, prot, flags) => { + if ((prot & 2) !== 0 && (flags & 2) === 0 && (stream.flags & 2097155) !== 2) { + throw new FS.ErrnoError(2); + } + if ((stream.flags & 2097155) === 1) { + throw new FS.ErrnoError(2); + } + if (!stream.stream_ops.mmap) { + throw new FS.ErrnoError(43); + } + return stream.stream_ops.mmap(stream, length, position, prot, flags); + }, msync: (stream, buffer, offset, length, mmapFlags) => { + offset >>>= 0; + if (!stream.stream_ops.msync) { + return 0; + } + return stream.stream_ops.msync(stream, buffer, offset, length, mmapFlags); + }, munmap: (stream) => 0, ioctl: (stream, cmd, arg) => { + if (!stream.stream_ops.ioctl) { + throw new FS.ErrnoError(59); + } + return stream.stream_ops.ioctl(stream, cmd, arg); + }, readFile: (path, opts = {}) => { + opts.flags = opts.flags || 0; + opts.encoding = opts.encoding || "binary"; + if (opts.encoding !== "utf8" && opts.encoding !== "binary") { + throw new Error('Invalid encoding type "' + opts.encoding + '"'); + } + var ret; + var stream = FS.open(path, opts.flags); + var stat = FS.stat(path); + var length = stat.size; + var buf = new Uint8Array(length); + FS.read(stream, buf, 0, length, 0); + if (opts.encoding === "utf8") { + ret = UTF8ArrayToString(buf, 0); + } else if (opts.encoding === "binary") { + ret = buf; + } + FS.close(stream); + return ret; + }, writeFile: (path, data, opts = {}) => { + opts.flags = opts.flags || 577; + var stream = FS.open(path, opts.flags, opts.mode); + if (typeof data == "string") { + var buf = new Uint8Array(lengthBytesUTF8(data) + 1); + var actualNumBytes = stringToUTF8Array(data, buf, 0, buf.length); + FS.write(stream, buf, 0, actualNumBytes, void 0, opts.canOwn); + } else if (ArrayBuffer.isView(data)) { + FS.write(stream, data, 0, data.byteLength, void 0, opts.canOwn); + } else { + throw new Error("Unsupported data type"); + } + FS.close(stream); + }, cwd: () => FS.currentPath, chdir: (path) => { + var lookup = FS.lookupPath(path, { follow: true }); + if (lookup.node === null) { + throw new FS.ErrnoError(44); + } + if (!FS.isDir(lookup.node.mode)) { + throw new FS.ErrnoError(54); + } + var errCode = FS.nodePermissions(lookup.node, "x"); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + FS.currentPath = lookup.path; + }, createDefaultDirectories: () => { + FS.mkdir("/tmp"); + FS.mkdir("/home"); + FS.mkdir("/home/web_user"); + }, createDefaultDevices: () => { + FS.mkdir("/dev"); + FS.registerDevice(FS.makedev(1, 3), { read: () => 0, write: (stream, buffer, offset, length, pos) => length }); + FS.mkdev("/dev/null", FS.makedev(1, 3)); + TTY.register(FS.makedev(5, 0), TTY.default_tty_ops); + TTY.register(FS.makedev(6, 0), TTY.default_tty1_ops); + FS.mkdev("/dev/tty", FS.makedev(5, 0)); + FS.mkdev("/dev/tty1", FS.makedev(6, 0)); + var 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: () => { + FS.mkdir("/proc"); + var proc_self = FS.mkdir("/proc/self"); + FS.mkdir("/proc/self/fd"); + FS.mount({ mount: () => { + var node = FS.createNode(proc_self, "fd", 16384 | 511, 73); + node.node_ops = { lookup: (parent, name) => { + var fd = +name; + var stream = FS.getStream(fd); + if (!stream) + throw new FS.ErrnoError(8); + var ret = { parent: null, mount: { mountpoint: "fake" }, node_ops: { readlink: () => stream.path } }; + ret.parent = ret; + return ret; + } }; + return node; + } }, {}, "/proc/self/fd"); + }, createStandardStreams: () => { + if (Module["stdin"]) { + FS.createDevice("/dev", "stdin", Module["stdin"]); + } else { + FS.symlink("/dev/tty", "/dev/stdin"); + } + if (Module["stdout"]) { + FS.createDevice("/dev", "stdout", null, Module["stdout"]); + } else { + FS.symlink("/dev/tty", "/dev/stdout"); + } + if (Module["stderr"]) { + FS.createDevice("/dev", "stderr", null, Module["stderr"]); + } else { + FS.symlink("/dev/tty1", "/dev/stderr"); + } + FS.open("/dev/stdin", 0); + FS.open("/dev/stdout", 1); + FS.open("/dev/stderr", 1); + }, 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((code) => { + FS.genericErrors[code] = new FS.ErrnoError(code); + FS.genericErrors[code].stack = ""; + }); + }, staticInit: () => { + FS.ensureErrnoError(); + FS.nameTable = new Array(4096); + FS.mount(MEMFS, {}, "/"); + FS.createDefaultDirectories(); + FS.createDefaultDevices(); + FS.createSpecialDirectories(); + FS.filesystems = { "MEMFS": MEMFS }; + }, init: (input, output, error) => { + FS.init.initialized = true; + FS.ensureErrnoError(); + Module["stdin"] = input || Module["stdin"]; + Module["stdout"] = output || Module["stdout"]; + Module["stderr"] = error || Module["stderr"]; + FS.createStandardStreams(); + }, quit: () => { + FS.init.initialized = false; + for (var i = 0; i < FS.streams.length; i++) { + var stream = FS.streams[i]; + if (!stream) { + continue; + } + FS.close(stream); + } + }, getMode: (canRead, canWrite) => { + var mode = 0; + if (canRead) + mode |= 292 | 73; + if (canWrite) + mode |= 146; + return mode; + }, findObject: (path, dontResolveLastLink) => { + var ret = FS.analyzePath(path, dontResolveLastLink); + if (!ret.exists) { + return null; + } + return ret.object; + }, analyzePath: (path, dontResolveLastLink) => { + try { + var lookup = FS.lookupPath(path, { follow: !dontResolveLastLink }); + path = lookup.path; + } catch (e) { + } + var ret = { isRoot: false, exists: false, error: 0, name: null, path: null, object: null, parentExists: false, parentPath: null, parentObject: null }; + try { + var lookup = FS.lookupPath(path, { parent: true }); + ret.parentExists = true; + ret.parentPath = lookup.path; + ret.parentObject = lookup.node; + ret.name = PATH.basename(path); + lookup = FS.lookupPath(path, { follow: !dontResolveLastLink }); + ret.exists = true; + ret.path = lookup.path; + ret.object = lookup.node; + ret.name = lookup.node.name; + ret.isRoot = lookup.path === "/"; + } catch (e) { + ret.error = e.errno; + } + return ret; + }, createPath: (parent, path, canRead, canWrite) => { + parent = typeof parent == "string" ? parent : FS.getPath(parent); + var parts = path.split("/").reverse(); + while (parts.length) { + var part = parts.pop(); + if (!part) + continue; + var current = PATH.join2(parent, part); + try { + FS.mkdir(current); + } catch (e) { + } + parent = current; + } + return current; + }, createFile: (parent, name, properties, canRead, canWrite) => { + var path = PATH.join2(typeof parent == "string" ? parent : FS.getPath(parent), name); + var mode = FS.getMode(canRead, canWrite); + return FS.create(path, mode); + }, createDataFile: (parent, name, data, canRead, canWrite, canOwn) => { + var path = name; + if (parent) { + parent = typeof parent == "string" ? parent : FS.getPath(parent); + path = name ? PATH.join2(parent, name) : parent; + } + var mode = FS.getMode(canRead, canWrite); + var node = FS.create(path, mode); + if (data) { + if (typeof data == "string") { + var arr = new Array(data.length); + for (var i = 0, len = data.length; i < len; ++i) + arr[i] = data.charCodeAt(i); + data = arr; + } + FS.chmod(node, mode | 146); + var stream = FS.open(node, 577); + FS.write(stream, data, 0, data.length, 0, canOwn); + FS.close(stream); + FS.chmod(node, mode); + } + return node; + }, createDevice: (parent, name, input, output) => { + var path = PATH.join2(typeof parent == "string" ? parent : FS.getPath(parent), name); + var mode = FS.getMode(!!input, !!output); + if (!FS.createDevice.major) + FS.createDevice.major = 64; + var dev = FS.makedev(FS.createDevice.major++, 0); + FS.registerDevice(dev, { open: (stream) => { + stream.seekable = false; + }, close: (stream) => { + if (output && output.buffer && output.buffer.length) { + output(10); + } + }, read: (stream, buffer, offset, length, pos) => { + var bytesRead = 0; + for (var i = 0; i < length; i++) { + var result; + try { + result = input(); + } catch (e) { + throw new FS.ErrnoError(29); + } + if (result === void 0 && bytesRead === 0) { + throw new FS.ErrnoError(6); + } + if (result === null || result === void 0) + break; + bytesRead++; + buffer[offset + i] = result; } - } - if (totalWeight == 0.0) { - texel = texture2D(tDiffuse, vUv); - } else { - texel /= totalWeight; - } - } - #else - vec4 texel = texture2D(tDiffuse, vUv); - #endif - - #ifdef LOGDEPTH - texel.a = clamp(texel.a, 0.0, 1.0); - if (texel.a == 0.0) { - texel.a = 1.0; - } - #endif - - float finalAo = pow(texel.a, intensity); - float fogFactor; - float fogDepth = distance( - cameraPos, - getWorldPos(depth, vUv) - ); - if (fog) { - if (fogExp) { - fogFactor = 1.0 - exp( - fogDensity * fogDensity * fogDepth * fogDepth ); - } else { - fogFactor = smoothstep( fogNear, fogFar, fogDepth ); + if (bytesRead) { + stream.node.timestamp = Date.now(); } - } - finalAo = mix(finalAo, 1.0, fogFactor); - vec3 aoApplied = color * mix(vec3(1.0), sceneTexel.rgb, float(colorMultiply)); - if (renderMode == 0.0) { - gl_FragColor = vec4( mix(sceneTexel.rgb, aoApplied, 1.0 - finalAo), sceneTexel.a); - } else if (renderMode == 1.0) { - gl_FragColor = vec4( mix(vec3(1.0), aoApplied, 1.0 - finalAo), sceneTexel.a); - } else if (renderMode == 2.0) { - gl_FragColor = vec4( sceneTexel.rgb, sceneTexel.a); - } else if (renderMode == 3.0) { - if (vUv.x < 0.5) { - gl_FragColor = vec4( sceneTexel.rgb, sceneTexel.a); - } else if (abs(vUv.x - 0.5) < 1.0 / resolution.x) { - gl_FragColor = vec4(1.0); - } else { - gl_FragColor = vec4( mix(sceneTexel.rgb, aoApplied, 1.0 - finalAo), sceneTexel.a); + return bytesRead; + }, write: (stream, buffer, offset, length, pos) => { + for (var i = 0; i < length; i++) { + try { + output(buffer[offset + i]); + } catch (e) { + throw new FS.ErrnoError(29); + } } - } else if (renderMode == 4.0) { - if (vUv.x < 0.5) { - gl_FragColor = vec4( sceneTexel.rgb, sceneTexel.a); - } else if (abs(vUv.x - 0.5) < 1.0 / resolution.x) { - gl_FragColor = vec4(1.0); + if (length) { + stream.node.timestamp = Date.now(); + } + return i; + } }); + return FS.mkdev(path, mode, dev); + }, forceLoadFile: (obj) => { + if (obj.isDevice || obj.isFolder || obj.link || obj.contents) + return true; + if (typeof XMLHttpRequest != "undefined") { + throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread."); + } else if (read_) { + try { + obj.contents = intArrayFromString(read_(obj.url), true); + obj.usedBytes = obj.contents.length; + } catch (e) { + throw new FS.ErrnoError(29); + } + } else { + throw new Error("Cannot load without read() or XMLHttpRequest."); + } + }, createLazyFile: (parent, name, url, canRead, canWrite) => { + function LazyUint8Array() { + this.lengthKnown = false; + this.chunks = []; + } + LazyUint8Array.prototype.get = function LazyUint8Array_get(idx) { + if (idx > this.length - 1 || idx < 0) { + return void 0; + } + var chunkOffset = idx % this.chunkSize; + var chunkNum = idx / this.chunkSize | 0; + return this.getter(chunkNum)[chunkOffset]; + }; + LazyUint8Array.prototype.setDataGetter = function LazyUint8Array_setDataGetter(getter) { + this.getter = getter; + }; + LazyUint8Array.prototype.cacheLength = function LazyUint8Array_cacheLength() { + var xhr = new XMLHttpRequest(); + xhr.open("HEAD", url, false); + xhr.send(null); + if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) + throw new Error("Couldn't load " + url + ". Status: " + xhr.status); + var datalength = Number(xhr.getResponseHeader("Content-length")); + var header; + var hasByteServing = (header = xhr.getResponseHeader("Accept-Ranges")) && header === "bytes"; + var usesGzip = (header = xhr.getResponseHeader("Content-Encoding")) && header === "gzip"; + var chunkSize = 1024 * 1024; + if (!hasByteServing) + chunkSize = datalength; + var doXHR = (from, to) => { + if (from > to) + throw new Error("invalid range (" + from + ", " + to + ") or no bytes requested!"); + if (to > datalength - 1) + throw new Error("only " + datalength + " bytes available! programmer error!"); + var xhr2 = new XMLHttpRequest(); + xhr2.open("GET", url, false); + if (datalength !== chunkSize) + xhr2.setRequestHeader("Range", "bytes=" + from + "-" + to); + xhr2.responseType = "arraybuffer"; + if (xhr2.overrideMimeType) { + xhr2.overrideMimeType("text/plain; charset=x-user-defined"); + } + xhr2.send(null); + if (!(xhr2.status >= 200 && xhr2.status < 300 || xhr2.status === 304)) + throw new Error("Couldn't load " + url + ". Status: " + xhr2.status); + if (xhr2.response !== void 0) { + return new Uint8Array(xhr2.response || []); + } + return intArrayFromString(xhr2.responseText || "", true); + }; + var lazyArray2 = this; + lazyArray2.setDataGetter((chunkNum) => { + var start = chunkNum * chunkSize; + var end = (chunkNum + 1) * chunkSize - 1; + end = Math.min(end, datalength - 1); + if (typeof lazyArray2.chunks[chunkNum] == "undefined") { + lazyArray2.chunks[chunkNum] = doXHR(start, end); + } + if (typeof lazyArray2.chunks[chunkNum] == "undefined") + throw new Error("doXHR failed!"); + return lazyArray2.chunks[chunkNum]; + }); + if (usesGzip || !datalength) { + chunkSize = datalength = 1; + datalength = this.getter(0).length; + chunkSize = datalength; + out("LazyFiles on gzip forces download of the whole file when length is accessed"); + } + this._length = datalength; + this._chunkSize = chunkSize; + this.lengthKnown = true; + }; + if (typeof XMLHttpRequest != "undefined") { + throw "Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc"; + var lazyArray = new LazyUint8Array(); + var properties = { isDevice: false, contents: lazyArray }; + } else { + var properties = { isDevice: false, url }; + } + var node = FS.createFile(parent, name, properties, canRead, canWrite); + if (properties.contents) { + node.contents = properties.contents; + } else if (properties.url) { + node.contents = null; + node.url = properties.url; + } + Object.defineProperties(node, { usedBytes: { get: function() { + return this.contents.length; + } } }); + var stream_ops = {}; + var keys = Object.keys(node.stream_ops); + keys.forEach((key) => { + var fn = node.stream_ops[key]; + stream_ops[key] = function forceLoadLazyFile() { + FS.forceLoadFile(node); + return fn.apply(null, arguments); + }; + }); + function writeChunks(stream, buffer, offset, length, position) { + var contents = stream.node.contents; + if (position >= contents.length) + return 0; + var size = Math.min(contents.length - position, length); + if (contents.slice) { + for (var i = 0; i < size; i++) { + buffer[offset + i] = contents[position + i]; + } } else { - gl_FragColor = vec4( mix(vec3(1.0), aoApplied, 1.0 - finalAo), sceneTexel.a); + for (var i = 0; i < size; i++) { + buffer[offset + i] = contents.get(position + i); + } } + return size; + } + stream_ops.read = (stream, buffer, offset, length, position) => { + FS.forceLoadFile(node); + return writeChunks(stream, buffer, offset, length, position); + }; + stream_ops.mmap = (stream, length, position, prot, flags) => { + FS.forceLoadFile(node); + var ptr = mmapAlloc(); + if (!ptr) { + throw new FS.ErrnoError(48); + } + writeChunks(stream, HEAP8, ptr, length, position); + return { ptr, allocated: true }; + }; + node.stream_ops = stream_ops; + return node; + }, createPreloadedFile: (parent, name, url, canRead, canWrite, onload, onerror, dontCreateFile, canOwn, preFinish) => { + var fullname = name ? PATH_FS.resolve(PATH.join2(parent, name)) : parent; + function processData(byteArray) { + function finish(byteArray2) { + if (preFinish) + preFinish(); + if (!dontCreateFile) { + FS.createDataFile(parent, name, byteArray2, canRead, canWrite, canOwn); + } + if (onload) + onload(); + removeRunDependency(); + } + if (Browser.handledByPreloadPlugin(byteArray, fullname, finish, () => { + if (onerror) + onerror(); + removeRunDependency(); + })) { + return; + } + finish(byteArray); + } + addRunDependency(); + if (typeof url == "string") { + asyncLoad(url, (byteArray) => processData(byteArray), onerror); + } else { + processData(url); + } + }, indexedDB: () => { + return window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB; + }, DB_NAME: () => { + return "EM_FS_" + window.location.pathname; + }, DB_VERSION: 20, DB_STORE_NAME: "FILE_DATA", saveFilesToDB: (paths, onload = () => { + }, onerror = () => { + }) => { + var indexedDB = FS.indexedDB(); + try { + var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION); + } catch (e) { + return onerror(e); + } + openRequest.onupgradeneeded = () => { + out("creating db"); + var db = openRequest.result; + db.createObjectStore(FS.DB_STORE_NAME); + }; + 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((path) => { + var putRequest = files.put(FS.analyzePath(path).object.contents, path); + putRequest.onsuccess = () => { + ok++; + if (ok + fail == total) + finish(); + }; + putRequest.onerror = () => { + fail++; + if (ok + fail == total) + finish(); + }; + }); + transaction.onerror = onerror; + }; + openRequest.onerror = onerror; + }, loadFilesFromDB: (paths, onload = () => { + }, onerror = () => { + }) => { + 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 = () => { + 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((path) => { + var getRequest = files.get(path); + 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 = () => { + fail++; + if (ok + fail == total) + finish(); + }; + }); + transaction.onerror = onerror; + }; + openRequest.onerror = onerror; + } }; + var SYSCALLS = { DEFAULT_POLLMASK: 5, calculateAt: function(dirfd, path, allowEmpty) { + if (PATH.isAbs(path)) { + return path; + } + var dir; + if (dirfd === -100) { + dir = FS.cwd(); + } else { + var dirstream = SYSCALLS.getStreamFromFD(dirfd); + dir = dirstream.path; + } + if (path.length == 0) { + if (!allowEmpty) { + throw new FS.ErrnoError(44); + } + return dir; + } + return PATH.join2(dir, path); + }, doStat: function(func, path, buf) { + try { + var stat = func(path); + } catch (e) { + if (e && e.node && PATH.normalize(path) !== PATH.normalize(FS.getPath(e.node))) { + return -54; + } + throw e; + } + HEAP32[buf >>> 2] = stat.dev; + HEAP32[buf + 8 >>> 2] = stat.ino; + HEAP32[buf + 12 >>> 2] = stat.mode; + HEAPU32[buf + 16 >>> 2] = stat.nlink; + HEAP32[buf + 20 >>> 2] = stat.uid; + HEAP32[buf + 24 >>> 2] = stat.gid; + HEAP32[buf + 28 >>> 2] = stat.rdev; + 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; + var atime = stat.atime.getTime(); + var mtime = stat.mtime.getTime(); + var ctime = stat.ctime.getTime(); + tempI64 = [Math.floor(atime / 1e3) >>> 0, (tempDouble = Math.floor(atime / 1e3), +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[buf + 56 >>> 2] = tempI64[0], HEAP32[buf + 60 >>> 2] = tempI64[1]; + HEAPU32[buf + 64 >>> 2] = atime % 1e3 * 1e3; + tempI64 = [Math.floor(mtime / 1e3) >>> 0, (tempDouble = Math.floor(mtime / 1e3), +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 + 72 >>> 2] = tempI64[0], HEAP32[buf + 76 >>> 2] = tempI64[1]; + HEAPU32[buf + 80 >>> 2] = mtime % 1e3 * 1e3; + tempI64 = [Math.floor(ctime / 1e3) >>> 0, (tempDouble = Math.floor(ctime / 1e3), +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 + 88 >>> 2] = tempI64[0], HEAP32[buf + 92 >>> 2] = tempI64[1]; + HEAPU32[buf + 96 >>> 2] = ctime % 1e3 * 1e3; + 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 + 104 >>> 2] = tempI64[0], HEAP32[buf + 108 >>> 2] = tempI64[1]; + return 0; + }, doMsync: function(addr, stream, len, flags, offset) { + if (!FS.isFile(stream.node.mode)) { + throw new FS.ErrnoError(43); + } + if (flags & 2) { + return 0; + } + addr >>>= 0; + var buffer = HEAPU8.slice(addr, addr + len); + FS.msync(stream, buffer, offset, len, flags); + }, varargs: void 0, get: function() { + SYSCALLS.varargs += 4; + var ret = HEAP32[SYSCALLS.varargs - 4 >>> 2]; + return ret; + }, getStr: function(ptr) { + var ret = UTF8ToString(ptr); + return ret; + }, getStreamFromFD: function(fd) { + var stream = FS.getStream(fd); + if (!stream) + throw new FS.ErrnoError(8); + return stream; + } }; + function _environ_get(__environ, environ_buf) { + var bufSize = 0; + getEnvStrings().forEach(function(string, i) { + var ptr = environ_buf + bufSize; + HEAPU32[__environ + i * 4 >>> 2] = ptr; + writeAsciiToMemory(string, ptr); + bufSize += string.length + 1; + }); + return 0; } - #include - if (gammaCorrection) { - gl_FragColor = LinearTosRGB(gl_FragColor); - } - } - ` -}); - - - -({ - uniforms: { - "sceneDiffuse": { - value: null - }, - "sceneDepth": { - value: null - }, - "tDiffuse": { - value: null - }, - "projMat": { - value: new Matrix4() - }, - "viewMat": { - value: new Matrix4() - }, - "projectionMatrixInv": { - value: new Matrix4() - }, - "viewMatrixInv": { - value: new Matrix4() - }, - "cameraPos": { - value: new Vector3() - }, - "resolution": { - value: new Vector2() - }, - "time": { - value: 0.0 - }, - "r": { - value: 5.0 - }, - "blueNoise": { - value: null - }, - "radius": { - value: 12.0 - }, - "worldRadius": { - value: 5.0 - }, - "index": { - value: 0.0 - }, - "poissonDisk": { - value: [] - }, - "distanceFalloff": { - value: 1.0 - }, - "near": { - value: 0.1 - }, - "far": { - value: 1000.0 - }, - "logDepth": { - value: false - }, - "screenSpaceRadius": { - value: false - } - }, - depthWrite: false, - depthTest: false, - vertexShader: /* glsl */ ` - varying vec2 vUv; - void main() { - vUv = uv; - gl_Position = vec4(position, 1.0); - }`, - fragmentShader: /* glsl */ ` - uniform sampler2D sceneDiffuse; - uniform highp sampler2D sceneDepth; - uniform sampler2D tDiffuse; - uniform sampler2D blueNoise; - uniform mat4 projectionMatrixInv; - uniform mat4 viewMatrixInv; - uniform vec2 resolution; - uniform float r; - uniform float radius; - uniform float worldRadius; - uniform float index; - uniform float near; - uniform float far; - uniform float distanceFalloff; - uniform bool logDepth; - uniform bool screenSpaceRadius; - varying vec2 vUv; - - highp float linearize_depth(highp float d, highp float zNear,highp float zFar) - { - highp float z_n = 2.0 * d - 1.0; - return 2.0 * zNear * zFar / (zFar + zNear - z_n * (zFar - zNear)); - } - highp float linearize_depth_log(highp float d, highp float nearZ,highp float farZ) { - float depth = pow(2.0, d * log2(farZ + 1.0)) - 1.0; - float a = farZ / (farZ - nearZ); - float b = farZ * nearZ / (nearZ - farZ); - float linDepth = a + b / depth; - return linearize_depth(linDepth, nearZ, farZ); - } - highp float linearize_depth_ortho(highp float d, highp float nearZ, highp float farZ) { - return nearZ + (farZ - nearZ) * d; - } - vec3 getWorldPosLog(vec3 posS) { - vec2 uv = posS.xy; - float z = posS.z; - float nearZ =near; - float farZ = far; - float depth = pow(2.0, z * log2(farZ + 1.0)) - 1.0; - float a = farZ / (farZ - nearZ); - float b = farZ * nearZ / (nearZ - farZ); - float linDepth = a + b / depth; - vec4 clipVec = vec4(uv, linDepth, 1.0) * 2.0 - 1.0; - vec4 wpos = projectionMatrixInv * clipVec; - return wpos.xyz / wpos.w; - } - vec3 getWorldPos(float depth, vec2 coord) { - #ifdef LOGDEPTH - return getWorldPosLog(vec3(coord, depth)); - #endif - - float z = depth * 2.0 - 1.0; - vec4 clipSpacePosition = vec4(coord * 2.0 - 1.0, z, 1.0); - vec4 viewSpacePosition = projectionMatrixInv * clipSpacePosition; - // Perspective division - vec4 worldSpacePosition = viewSpacePosition; - worldSpacePosition.xyz /= worldSpacePosition.w; - return worldSpacePosition.xyz; - } - #include - #define NUM_SAMPLES 16 - uniform vec2 poissonDisk[NUM_SAMPLES]; - void main() { - const float pi = 3.14159; - vec2 texelSize = vec2(1.0 / resolution.x, 1.0 / resolution.y); - vec2 uv = vUv; - vec4 data = texture2D(tDiffuse, vUv); - float occlusion = data.a; - float baseOcc = data.a; - vec3 normal = data.rgb * 2.0 - 1.0; - float count = 1.0; - float d = texture2D(sceneDepth, vUv).x; - if (d == 1.0) { - gl_FragColor = data; - return; - } - vec3 worldPos = getWorldPos(d, vUv); - float size = radius; - float angle; - if (index == 0.0) { - angle = texture2D(blueNoise, gl_FragCoord.xy / 128.0).x * PI2; - } else if (index == 1.0) { - angle = texture2D(blueNoise, gl_FragCoord.xy / 128.0).y * PI2; - } else if (index == 2.0) { - angle = texture2D(blueNoise, gl_FragCoord.xy / 128.0).z * PI2; - } else { - angle = texture2D(blueNoise, gl_FragCoord.xy / 128.0).w * PI2; + function _environ_sizes_get(penviron_count, penviron_buf_size) { + var strings = getEnvStrings(); + HEAPU32[penviron_count >>> 2] = strings.length; + var bufSize = 0; + strings.forEach(function(string) { + bufSize += string.length + 1; + }); + HEAPU32[penviron_buf_size >>> 2] = bufSize; + return 0; } - - mat2 rotationMatrix = mat2(cos(angle), -sin(angle), sin(angle), cos(angle)); - float radiusToUse = screenSpaceRadius ? distance( - worldPos, - getWorldPos(d, vUv + - vec2(worldRadius, 0.0) / resolution) - ) : worldRadius; - float distanceFalloffToUse =screenSpaceRadius ? - radiusToUse * distanceFalloff - : distanceFalloff; - - - for(int i = 0; i < NUM_SAMPLES; i++) { - vec2 offset = (rotationMatrix * poissonDisk[i]) * texelSize * size; - vec4 dataSample = texture2D(tDiffuse, uv + offset); - float occSample = dataSample.a; - vec3 normalSample = dataSample.rgb * 2.0 - 1.0; - float dSample = texture2D(sceneDepth, uv + offset).x; - vec3 worldPosSample = getWorldPos(dSample, uv + offset); - float tangentPlaneDist = abs(dot(worldPos - worldPosSample, normal)); - float rangeCheck = dSample == 1.0 ? 0.0 :exp(-1.0 * tangentPlaneDist * (1.0 / distanceFalloffToUse)) * max(dot(normal, normalSample), 0.0) * (1.0 - abs(occSample - baseOcc)); - occlusion += occSample * rangeCheck; - count += rangeCheck; + 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)) + throw e; + return e.errno; + } } - if (count > 0.0) { - occlusion /= count; + function doReadv(stream, iov, iovcnt, offset) { + var ret = 0; + for (var i = 0; i < iovcnt; i++) { + var ptr = HEAPU32[iov >>> 2]; + var len = HEAPU32[iov + 4 >>> 2]; + iov += 8; + var curr = FS.read(stream, HEAP8, ptr, len, offset); + if (curr < 0) + return -1; + ret += curr; + if (curr < len) + break; + if (typeof offset !== "undefined") { + offset += curr; + } + } + return ret; } - #ifdef LOGDEPTH - occlusion = clamp(occlusion, 0.0, 1.0); - if (occlusion == 0.0) { - occlusion = 1.0; + function _fd_read(fd, iov, iovcnt, pnum) { + try { + var stream = SYSCALLS.getStreamFromFD(fd); + var num = doReadv(stream, iov, iovcnt); + HEAPU32[pnum >>> 2] = num; + return 0; + } catch (e) { + if (typeof FS == "undefined" || !(e instanceof FS.ErrnoError)) + throw e; + return e.errno; } - #endif - gl_FragColor = vec4(0.5 + 0.5 * normal, occlusion); - } - ` -}); - - - -({ - uniforms: { - "sceneDepth": { - value: null - }, - "resolution": { - value: new Vector2() - }, - "near": { - value: 0.1 - }, - "far": { - value: 1000.0 - }, - "viewMatrixInv": { - value: new Matrix4() - }, - "projectionMatrixInv": { - value: new Matrix4() - }, - "logDepth": { - value: false } - }, - depthWrite: false, - depthTest: false, - vertexShader: /* glsl */ ` - varying vec2 vUv; - void main() { - vUv = uv; - gl_Position = vec4(position, 1); - }`, - fragmentShader: /* glsl */ ` - uniform highp sampler2D sceneDepth; - uniform vec2 resolution; - uniform float near; - uniform float far; - uniform bool logDepth; - uniform mat4 viewMatrixInv; - uniform mat4 projectionMatrixInv; - varying vec2 vUv; - layout(location = 1) out vec4 gNormal; - vec3 getWorldPosLog(vec3 posS) { - vec2 uv = posS.xy; - float z = posS.z; - float nearZ =near; - float farZ = far; - float depth = pow(2.0, z * log2(farZ + 1.0)) - 1.0; - float a = farZ / (farZ - nearZ); - float b = farZ * nearZ / (nearZ - farZ); - float linDepth = a + b / depth; - vec4 clipVec = vec4(uv, linDepth, 1.0) * 2.0 - 1.0; - vec4 wpos = projectionMatrixInv * clipVec; - return wpos.xyz / wpos.w; - } - vec3 getWorldPos(float depth, vec2 coord) { - if (logDepth) { - return getWorldPosLog(vec3(coord, depth)); + function convertI32PairToI53Checked(lo, hi) { + return hi + 2097152 >>> 0 < 4194305 - !!lo ? (lo >>> 0) + hi * 4294967296 : NaN; } - float z = depth * 2.0 - 1.0; - vec4 clipSpacePosition = vec4(coord * 2.0 - 1.0, z, 1.0); - vec4 viewSpacePosition = projectionMatrixInv * clipSpacePosition; - // Perspective division - vec4 worldSpacePosition = viewSpacePosition; - worldSpacePosition.xyz /= worldSpacePosition.w; - return worldSpacePosition.xyz; - } - - vec3 computeNormal(vec3 worldPos, vec2 vUv) { - ivec2 p = ivec2(vUv * resolution); - float c0 = texelFetch(sceneDepth, p, 0).x; - float l2 = texelFetch(sceneDepth, p - ivec2(2, 0), 0).x; - float l1 = texelFetch(sceneDepth, p - ivec2(1, 0), 0).x; - float r1 = texelFetch(sceneDepth, p + ivec2(1, 0), 0).x; - float r2 = texelFetch(sceneDepth, p + ivec2(2, 0), 0).x; - float b2 = texelFetch(sceneDepth, p - ivec2(0, 2), 0).x; - float b1 = texelFetch(sceneDepth, p - ivec2(0, 1), 0).x; - float t1 = texelFetch(sceneDepth, p + ivec2(0, 1), 0).x; - float t2 = texelFetch(sceneDepth, p + ivec2(0, 2), 0).x; - - float dl = abs((2.0 * l1 - l2) - c0); - float dr = abs((2.0 * r1 - r2) - c0); - float db = abs((2.0 * b1 - b2) - c0); - float dt = abs((2.0 * t1 - t2) - c0); - - vec3 ce = getWorldPos(c0, vUv).xyz; - - vec3 dpdx = (dl < dr) ? ce - getWorldPos(l1, (vUv - vec2(1.0 / resolution.x, 0.0))).xyz - : -ce + getWorldPos(r1, (vUv + vec2(1.0 / resolution.x, 0.0))).xyz; - vec3 dpdy = (db < dt) ? ce - getWorldPos(b1, (vUv - vec2(0.0, 1.0 / resolution.y))).xyz - : -ce + getWorldPos(t1, (vUv + vec2(0.0, 1.0 / resolution.y))).xyz; - - return normalize(cross(dpdx, dpdy)); - } - void main() { - vec2 uv = vUv - vec2(0.5) / resolution; - vec2 pixelSize = vec2(1.0) / resolution; - vec2[] uvSamples = vec2[4]( - uv, - uv + vec2(pixelSize.x, 0.0), - uv + vec2(0.0, pixelSize.y), - uv + pixelSize - ); - float depth00 = texture2D(sceneDepth, uvSamples[0]).r; - float depth10 = texture2D(sceneDepth, uvSamples[1]).r; - float depth01 = texture2D(sceneDepth, uvSamples[2]).r; - float depth11 = texture2D(sceneDepth, uvSamples[3]).r; - float minDepth = min(min(depth00, depth10), min(depth01, depth11)); - float maxDepth = max(max(depth00, depth10), max(depth01, depth11)); - float targetDepth = minDepth; - // Checkerboard pattern to avoid artifacts - if (mod(gl_FragCoord.x + gl_FragCoord.y, 2.0) > 0.5) { - targetDepth = maxDepth; + function _fd_seek(fd, offset_low, offset_high, whence, newOffset) { + try { + var offset = convertI32PairToI53Checked(offset_low, offset_high); + if (isNaN(offset)) + return 61; + var stream = SYSCALLS.getStreamFromFD(fd); + FS.llseek(stream, offset, whence); + tempI64 = [stream.position >>> 0, (tempDouble = stream.position, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.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)) + throw e; + return e.errno; + } } - int chosenIndex = 0; - float[] samples = float[4](depth00, depth10, depth01, depth11); - for(int i = 0; i < 4; ++i) { - if (samples[i] == targetDepth) { - chosenIndex = i; - break; + function doWritev(stream, iov, iovcnt, offset) { + var ret = 0; + for (var i = 0; i < iovcnt; i++) { + var ptr = HEAPU32[iov >>> 2]; + var len = HEAPU32[iov + 4 >>> 2]; + iov += 8; + var curr = FS.write(stream, HEAP8, ptr, len, offset); + if (curr < 0) + return -1; + ret += curr; + if (typeof offset !== "undefined") { + offset += curr; } + } + return ret; } - gl_FragColor = vec4(samples[chosenIndex], 0.0, 0.0, 1.0); - gNormal = vec4(computeNormal( - getWorldPos(samples[chosenIndex], uvSamples[chosenIndex]), uvSamples[chosenIndex] - ), 0.0); - /* float[] samples = float[4](depth00, depth10, depth01, depth11); - float c = 0.25 * (depth00 + depth10 + depth01 + depth11); - float[] distances = float[4](depth00, depth10, depth01, depth11); - float maxDistance = max(max(distances[0], distances[1]), max(distances[2], distances[3])); - - int remaining[3]; - int rejected[3]; - int i, j, k; - - for(i = 0, j = 0, k = 0; i < 4; ++i) { - if (distances[i] < maxDistance) { - remaining[j++] = i; + function _fd_write(fd, iov, iovcnt, pnum) { + try { + var stream = SYSCALLS.getStreamFromFD(fd); + var num = doWritev(stream, iov, iovcnt); + HEAPU32[pnum >>> 2] = num; + return 0; + } catch (e) { + if (typeof FS == "undefined" || !(e instanceof FS.ErrnoError)) + throw e; + return e.errno; + } + } + 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 { - rejected[k++] = i; + newDate.setDate(newDate.getDate() + days); + return newDate; } + } + return newDate; } - for(;j < 3;++j) { - remaining[j] = rejected[--k]; + function writeArrayToMemory(array, buffer) { + HEAP8.set(array, buffer >>> 0); } - vec3 s = vec3( - samples[remaining[0]], - samples[remaining[1]], - samples[remaining[2]] - ); - c = (s.x + s.y + s.z) / 3.0; - - distances[0] = abs(c - s.x); - distances[1] = abs(c - s.y); - distances[2] = abs(c - s.z); - - float minDistance = min(min(distances[0], distances[1]), distances[2]); - - for(i = 0; i < 3; ++i) { - if (distances[i] == minDistance) { - break; + 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; + } + return thisDate.getFullYear(); + } + return thisDate.getFullYear() - 1; + } + var EXPANSION_RULES_2 = { "%a": function(date2) { + return WEEKDAYS[date2.tm_wday].substring(0, 3); + }, "%A": function(date2) { + return WEEKDAYS[date2.tm_wday]; + }, "%b": function(date2) { + return MONTHS[date2.tm_mon].substring(0, 3); + }, "%B": function(date2) { + return MONTHS[date2.tm_mon]; + }, "%C": function(date2) { + var year = date2.tm_year + 1900; + return leadingNulls(year / 100 | 0, 2); + }, "%d": function(date2) { + return leadingNulls(date2.tm_mday, 2); + }, "%e": function(date2) { + return leadingSomething(date2.tm_mday, 2, " "); + }, "%g": function(date2) { + return getWeekBasedYear(date2).toString().substring(2); + }, "%G": function(date2) { + return getWeekBasedYear(date2); + }, "%H": function(date2) { + return leadingNulls(date2.tm_hour, 2); + }, "%I": function(date2) { + var twelveHour = date2.tm_hour; + if (twelveHour == 0) + twelveHour = 12; + else if (twelveHour > 12) + twelveHour -= 12; + return leadingNulls(twelveHour, 2); + }, "%j": function(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(date2) { + return leadingNulls(date2.tm_mon + 1, 2); + }, "%M": function(date2) { + return leadingNulls(date2.tm_min, 2); + }, "%n": function() { + return "\n"; + }, "%p": function(date2) { + if (date2.tm_hour >= 0 && date2.tm_hour < 12) { + return "AM"; + } + return "PM"; + }, "%S": function(date2) { + return leadingNulls(date2.tm_sec, 2); + }, "%t": function() { + return " "; + }, "%u": function(date2) { + return date2.tm_wday || 7; + }, "%U": function(date2) { + var days = date2.tm_yday + 7 - date2.tm_wday; + return leadingNulls(Math.floor(days / 7), 2); + }, "%V": function(date2) { + var val = Math.floor((date2.tm_yday + 7 - (date2.tm_wday + 6) % 7) / 7); + if ((date2.tm_wday + 371 - date2.tm_yday - 2) % 7 <= 2) { + val++; + } + if (!val) { + val = 52; + var dec31 = (date2.tm_wday + 7 - date2.tm_yday - 1) % 7; + if (dec31 == 4 || dec31 == 5 && __isLeapYear(date2.tm_year % 400 - 1)) { + val++; + } + } else if (val == 53) { + var jan1 = (date2.tm_wday + 371 - date2.tm_yday) % 7; + if (jan1 != 4 && (jan1 != 3 || !__isLeapYear(date2.tm_year))) + val = 1; } - }*/ - /* gl_FragColor = vec4(samples[remaining[i]], 0.0, 0.0, 0.0); - gNormal = vec4(computeNormal( - getWorldPos(samples[remaining[i]], uvSamples[remaining[i]]), uvSamples[remaining[i]] - ), 0.0);*/ - }` -}); - - - - - - - - - -var $06269ad78f3c5fdf$export$2e2bcd8739ae039 = `5L7pP4UXrOIr/VZ1G3f6p89FIWU7lqc7J3DPxKjJUXODJoHQzf/aNVM+ABlvhXeBGN7iC0WkmTjEaAqOItBfBdaK5KSGV1ET5SOKl3x9JOX5w2sAl6+6KjDhVUHgbqq7DZ5EeYzbdSNxtrQLW/KkPJoOTG4u5CBUZkCKHniY9l7DUgjuz708zG1HIC8qfohi1vPjPH9Lq47ksjRrjwXD4MlVCjdAqYFGodQ8tRmHkOfq4wVRIAHvoavPHvN1lpk3X4Y1yzAPGe8S9KBs3crc4GwlU1dEOXiWol/mgQqxkNqB1xd04+0Bmpwj0GcCc4NUi+c731FUxjvaexCkCJ0qhrJJ++htWqetNC4NewClu8aFRSwrqiJEGe+qtTg4CYCHaF1wJI0sy/ZBQAI0qAMyBvVjWZlv2pdkCaro9eWDLK5I4mbb8E4d7hZr9dDJiTJm6Bmb5S+2F7yal/JPdeLUfwq7jmVLaQfhv4tWMJAt7V4sG9LuAv2oPJgSj1nnlBvPibfHM2TrlWHwGCLGxW/5Jm2TotaDL+pHDM5pn1r0UuTZ24N8S5k68bLHW9tfD+2k4zGev23ExJb4YTRKWrj82N5LjJ26lj1BkGZ0CsXLGGELoPaYQomjTqPxYqhfwOwDliNGVqux9ffuybqOKgsbB51B1GbZfG8vHDBE2JQGib1mnCmWOWAMJcHN0cKeDHYTflbDTVXajtr68mwfRje6WueQ/6yWqmZMLWNH7P27zGFhMFqaqfg11Q88g/9UA/FROe9yfq0yOO0pnNAxvepFy2BpEbcgG+mCyjCC01JWlOZlIPdf1TtlyOt7L94ToYGCukoFt4OqwOrofamjECpSgKLLmrRM+sNRAw12eaqk8KtdFk7pn2IcDQiPXCh16t1a+psi+w9towHTKPyQM0StKr61b2BnN1HU+aezFNBLfHTiXwhGTbdxLLmrsAGIVSiNAeCGE8GlB0iOv2v78kP0CTmAPUEqnHYRSDlP+L6m/rYjEK6Q85GRDJi2W20/7NLPpSOaMR++IFvpkcwRuc59j8hh9tYlc1xjdt2jmp9KJczB7U9P43inuxLOv11P5/HYH5d6gLB0CsbGC8APjh+EcCP0zFWqlaACZweLhVfv3yiyd8R3bdVg8sRKsxPvhDaPpiFp9+MN+0Ua0bsPr+lhxfZhMhlevkLbR4ZvcSRP6ApQLy3+eMh9ehCB3z5DVAaN3P6J8pi5Qa88ZQsOuCTWyH6q8yMfBw8y8nm6jaOxJhPH6Hf0I4jmALUBsWKH4gWBnyijHh7z3/1HhQzFLRDRrIQwUtu11yk7U0gDw/FatOIZOJaBx3UqbUxSZ6dboFPm5pAyyXC2wYdSWlpZx/D2C6hDO2sJM4HT9IKWWmDkZIO2si/6BKHruXIEDpfAtz3xDlIdKnnlqnkfCyy6vNOPyuoWsSWBeiN0mcfIrnOtp2j7bxjOkr25skfS/lwOC692cEp7TKSlymbsyzoWg/0AN66SvQYo6BqpNwPpTaUu25zMWlwVUdfu1EEdc0O06TI0JmHk4f6GZQbfOs//OdgtGPO6uLoadJycR8Z80rkd88QoNmimZd8vcpQKScCFkxH1RMTkPlN3K7CL/NSMOiXEvxrn9VyUPFee63uRflgaPMSsafvqMgzTt3T1RaHNLLFatQbD0Vha4YXZ/6Ake7onM65nC9cyLkteYkDfHoJtef7wCrWXTK0+vH38VUBcFJP0+uUXpkiK0gDXNA39HL/qdVcaOA16kd2gzq8aHpNSaKtgMLJC6fdLLS/I/4lUWV2+djY9Rc3QuJOUrlHFQERtXN4xJaAHZERCUQZ9ND2pEtZg8dsnilcnqmqYn3c1sRyK0ziKpHNytEyi2gmzxEFchvT1uBWxZUikkAlWuyqvvhteSG9kFhTLNM97s3X1iS2UbE6cvApgbmeJ/KqtP0NNT3bZiG9TURInCZtVsNZzYus6On0wcdMlVfqo8XLhT5ojaOk4DtCyeoQkBt1mf5luFNaLFjI/1cnPefyCQwcq5ia/4pN4NB+xE/3SEPsliJypS964SI6o5fDVa0IERR8DoeQ+1iyRLU1qGYexB61ph4pkG1rf3c2YD6By1pFCmww9B0r2VjFeaubkIdgWx4RKLQRPLENdGo8ezI5mkNtdCws19aP1uHhenD+HKa8GDeLulb2fiMRhU2xJzzz9e4yOMPvEnGEfbCiQ17nUDpcFDWthr68mhZ4WiHUkRpaVWJNExuULcGkuyVLsQj59pf6OHFR7tofhy9FMrWPCEvX1d5sCVJt8yBFiB6NoOuwMy4wlso9I2G4E5/5B2c6vIZUUY9fFujT3hpkdTuVhbhBwLCtnlIjBpN4cq+waZ0wXSrmebcl+dcrb7sPh9jKxFINkScDTBgjSUfLkC3huJJs/M4M8AOFxbbSIVpBUarYFmLpGsv+V6TJnWNTwI41tubwo7QSI1VOdRKT/Pp8U3oK2ciDbeuWnAGAANvQjGfcewdAdo6H83XzqlK/4yudtFHJSv9Y+qJskwnVToH1I0+tJ3vsLBXtlvMzLIxUj/8LcqZnrNHfVRgabFNXW0qpUvDgxnP3f54KooR3NI+2Q/VHAYFigMkQE5dLH6C6fGs/TKeE6E2jOhZQcP9/rrJjJKcLYdn5cw6XLCUe9F7quk5Yhac+nYL5HOXvp6Q/5qbiQHkuebanX77YSNx34YaWYpcEHuY1u/lEVTCQ7taPaw3oNcn/qJhMzGPZUs3XAq48wj/hCIO2d5aFdfXnS0yg57/jxzDJBwkdOgeVnyyh19Iz1UqiysT4J1eeKwUuWEYln23ydtP7g3R1BnvnxqFPAnOMgOIop2dkXPfUh/9ZKV3ZQbZNactPD4ql5Qg9CxSBnIwzlj/tseQKWRstwNbf17neGwDFFWdm/8f+nDWt/WlKV3MUiAm3ci6xXMDSL5ubPXBg/gKEE7TsZVGUcrIbdXILcMngvGs7unvlPJh6oadeBDqiAviIZ/iyiUMdQZAuf/YBAY0VP1hcgInuWoKbx31AOjyTN2OOHrlthB3ny9JKHOAc8BMvqopikPldcwIQoFxTccKKIeI815GcwaKDLsMbCsxegrzXl8E0bpic/xffU9y1DCgeKZoF2PIY77RIn6kSRdBiGd8NtNwT74dyeFBMkYraPkudN26x9NPuBt4iCOAnBFaNSKVgKiZQruw22kM1fgBKG7cPYAxdHJ8M4V/jzBn2jEJg+jk/jjV4oMmMNOpKB5oVpVh7tK529Z+5vKZ0NSY2A4YdcT0x4BdkoNEDrpsTmekSTjvx9ZBiTHrm9M/n/hGmgpjz4WEjttRfAEy5DYH5vCK/9GuVPa4hoApFaNlrFD/n2PpKOw24iKujKhVIz41p1E0HwsCd/c17OA0H0RjZi1V/rjJLexUzpmXTMIMuzaOBbU4dxvQMgyvxJvR6DyF3BaHkaqT4P3FRYlm+zh8EEGgmkNqD1WRUubDW62VqLoH8UEelIpL7C8CguWWGGCAIDPma9bnh+7IJSt0Cn6ACER2mYk8dLsrN70RUVLiE0ig+08yPY9IOtuqHf/KYsT84BwhMcVq7t8q1WVjpJGNyXdtIPIjhAzabtrX03Itn29QO3TCixE9WpkHIOdAoGvqCrw1D3x9g9Px8u0yZZuulZuGy0veSY34KDSlhsO1zx2ZMrpDBzCHPB4niwApk6NevIvmBxU3+4yaewDvgEQDJ6Of5iRxjAIpp9UO8EzNY4blj4qh8SCSZTqbe/lShE6tNU9Y5IoWHeJxPcHF9KwYQD7lFcIpcscHrcfkHJfL2lL1zczKywEF7BwkjXEirgBcvNWayatqdTVT5oLbzTmED3EOYBSXFyb2VIYk3t0dOZWJdG1nP+W7Qfyeb8MSIyUGKEA57ptPxrPHKYGZPHsuBqQuVSrn0i8KJX+rlzAqo8AawchsJ26FckxTf5+joTcw+2y8c8bushpRYEbgrdr64ltEYPV2AbVgKXV3XACoD1gbs01CExbJALkuItjfYN3+6I8kbiTYmdzBLaNC+xu9z/eXcRQV1Lo8cJoSsKyWJPuTncu5vcmfMUAWmuwhjymK1rhYR8pQMXNQg9X+5ha5fEnap+LhUL1d5SURZz9rGdOWLhrMcMKSaU3LhOQ/6a6qSCwgzQxCW2gFs53fpvfWxhH+xDHdKRV6w29nQ6rNqd9by+zm1OpzYyJwvFyOkrVXQUwt4HaapnweCa7Tj2Mp/tT4YcY3Q/tk1czgkzlV5mpDrdp1spOYB8ionAwxujjdhj5y9qEHu0uc36PAKAYsKLaEoiwPnob0pdluPWdv4sNSlG8GWViI+x/Z4DkW/kSs2iE3ADFjg4TCvgCbX3v0Hz0KZkerrpzEIukAusidDs2g/w0zgmLnZXvVr5kkpwQTLZ0L6uaTHl0LVikIuNIVPmL3fOQJqIdfzymUN0zucIrDintBn6ICl/inj5zteISv5hEMGMqtHc2ghcFJvmH3ZhIZi34vqqTFCb9pltTYz582Y3dwYaHb9khdfve1YryzEwEKbI8qm62qv+NyllC+WxLLAJjz0ZaEF2aTn35qeFmkbP6LDYcbwqWxA0WKsteB7vy8bRHE4r8LhubWDc0pbe90XckSDDAkRej0TQlmWsWwaz18Tx2phykVvwuIRzf4kt9srT8N7gsMjMs0NLAAldabFf2tiMoaaxHcZSX51WPc1BrwApMxih227qTZkcgtkdK1h314XvZKUKh/XysWYnk1ST4kiBI1B9OlfTjB3WHzTAReFLofsGtikwpIXzQBc/gOjz2Thlj36WN0sxyf4RmAFtrYt64fwm+ThjbhlmUTZzebLl4yAkAqzJSfjPBZS2H/IvkkTUdVh0qdB6EuiHEjEil5lk9BTPzxmoW4Jx543hiyy4ASdYA2DNoprsR9iwGFwFG3F2vIROy4L5CZrl230+k733JwboSNBKngsaFPtqo+q3mFFSjC1k0kIAFmKihaYSwaSF7konmYHZWmchuaq15TpneA2ADSRvA07I7US0lTOOfKrgxhzRl0uJihcEZhhYWxObjvNTJ/5sR4Aa5wOQhGClGLb746cJhQ2E6Jie1hbGgWxUH7YSKETptrTeR/xfcMNk2WM12S0XElC9klR8O7jLYekEOZdscP0ypSdoCVZAoK+2ju2PHE869Q9rxCs9DVQco4BriiPbCjN/8tBjsah4IuboR5QbmbyDpcdXVxGMxvWKIjocBuKbjb+B4HvkunbG0wX0IFCjQKoNMFIKcJSJXtkP3EO+J16uh4img0LQlBAOYwBLupu5r1NALMo0g3xkd9b4f7KoCBWHeyk24FmYUCy/PGLv0xErOTyORp8TJ5nnc2k1dOVBTJok7iHye9dwxwRVP3c7eAS8pMmJYHGpzIHz6ii2WJm8HMTPAZdA4q+ugj3PNCL/N45kyglqvQV4f/+ryDDG5RPy5HVoV9FVuJcq2dxF9Y0heVoipV6q1LyfAeuMzbsUV+rsSBmCSV+1CdKlxy0T0Y6Om0X6701URm2Ml6DIQgJ/3KO6kwcMYRrmKsY7TfxWhSXZll+1PfyRXe9HS0t1IKTQMZL7ZqQ8D/o+en57Y9XAQ9C+kZYykNr0xOMxEwu2+Cppm69mQyTm3H7QX6kHvXF201r+KVAf354qypJC5OHSeBU47bM1bTaVmdVEWQ+9CcvvHdu8Ue5UndHM+EeukmR82voQpetZ7WJjyXs+tPS60nk09gymuORoHNtbm0VuvyigiEvOsyHiRBW7V6FyTCppLPEHvesan91SlEh1/QEunq+qgREFXByDwNKcAH5s8/RFg8hP4wcPmFqX0xXGSKY087bqRLsBZe52jThx0XLkhKQUWPvI18WQQS3g2Ra1pzQ1oNFKdfJJjyaH5tJH6w0/upJobwB8KZ5cIs9LnVGxfBaHXBfvLkNpab7dpU6TdcbBIc+A4bqXE/Xt8/xsGQOdoXra4Us5nDAM6v2BNBQaGMmgMfQQV+ikTteSHvyl8wUxULiYRIEKaiDxpBJnyf9OoqQdZVJ8ahqOvuwqq5mnDUAUzUr/Lvs1wLu2F+r4eZMfJPL4gV5mKLkITmozRnTvA7VABaxZmFRtkhvU5iH9RQ1z26ku7aABokvptx7RKZBVL6dveLKOzg0NC7HAxcg5kE1wuyJiEQLOpO0ma3AtWD2Q2Wmn2oPZeDYAwVyEpxuwDy7ivmdUDSL95ol3h2JByTMovOCgxZ1q4E5nwwa7+4WtDAse6bDdr27XgAi5Px3IWbyZ/vRiECKwOMeJSuIl8A4Ds0emI3SgKVVWVO5uyiEUET+ucEq0casA+DQyhzRc8j+Plo0pxKynB/t0uXod1FVV4fX1sC4kDfwFaUDGQ4p9HYgaMqIWX3OF/S8+vcR0JS0bDapWKJwAIIQiRUzvh5YwtzkjccbbrT9Ky/qt5X7MAGA0lzh43mDF9EB6lCGuO/aFCMhdOqNryvd73KdJNy3mxtT8AqgmG4xq7eE1jKu6rV0g8UGyMatzyIMjiOCf4lIJFzAfwDbIfC72TJ/TK+cGsLR8blpjlEILjD8Mxr7IffhbFhgo12CzXRQ2O8JqBJ70+t12385tSmFC8Or+U8svOaoGoojT1/EmjRMT7x2iTUZ7Ny02VGeMZTtGy029tGN1/9k7x3mFu63lYnaWjfJT1m1zpWO3HSXpGkFqVd/m3kDMv4X9rmLOpwEeu8r6TI6C2zUG+MT6v90OU3y5hKqLhpyFLGtkZhDmUg/W1JGSmA8N1TapR4Kny+P6+DuMadZ9+xBbv06nfOjMwkoTsjG0zFmNbvlxEjw+Pl5QYK+V8Qyb+nknZ0Nb/Ofi9+V0eoNtTrtD1/0wzUGGG5u2D/J1ouO/PjXFJVx6LurVnPOyFVbZx7s3ZSjSq+7YN3wzTbFbUvP8GBh7cKieJt56SIowQ2I577+UEXrxUKMFO+XaLLCALuiJWB2vUdpsT+kQ+adoeTfwOulXhd/KZ7ygjj6PhvGT1xzfT7hTwd6dzSB4xV70CesHC0dsg2VyujlMGBKjg5snbrHHX/LNj3SsoLGSX+bZNTDDCNTXh+dCVPlj4K8+hJ/kVddrbtZw26Hx5qYiv3oNNg5blHRSPtmojhZmBQAz8sLC9nAuWNSz1dIofFtlryEKklbdkhBCcx5dhj7pinXDNlCeatCeTCEjYCpZ3HRf5QzUcRR1Tdb3gwtYtpPdgMxmWfJGoZSu1EsCJbIhS16Ed97+8br4Ar1mB1GcnZVx/HPtJl4CgbHXrrDPwlE4od8deRQYLt9IlsvCqgesMmLAVxB+igH7WGTcY/e3lLHJ4rkBgh2p1QpUBRb/cSQsJCbosFDkalbJigimldVK7TIHKSq2w8mezku9hgw8fXJxGdXoL1ggma52kXzjP78l0d0zMwtTVlt0FqnRyGLPGEjmICzgSp7XPFlUr7AeMclQ4opqwBFInziM5F8oJJ8qeuckGOnAcZZOLl1+ZhGF17pfIuujipwFJL7ChIIB2vlo0IQZGTJPNa2YjNcGUw+a/gWYLkCp+bOGIYhWr08UIE709ZEHlUoEbumzgpJv1D0+hWYNEpj+laoZIK5weO2DFwLL6UBYNrXTm9YvvxeN9U9oKsB3zKBwzFFwDgid5ESMhy68xBnVa55sCZd+l5AnzT8etYjIwF/BGwEx1jjzFv32bk6EeJulESARh8RZ48o7rKw67UZpudPa15SDnL8AL8xMV2SC0D1P53p190zhCFkMmEiir2olwxcJppl/kLm6/0QSUQLNaxi1AC3Pg1CTosX2YQr73PjEIxIlg4mJ62vP7ZyoHE55B0SX9YrrrCPtNsrJEwtn6KOSt7nLT3n3DLJTPbLulcqQ1kETP6Huts29oP+JLEqRGWgnrqMD+mhCl1XCZifjgQ39AeudE8pyu2DqnYU3PyPbJhStq1HbP+VxgseWL+hQ+4w1okADlA9WqoaRuoS7IY77Cm40cJiE6FLomUMltT+xO3Upcv5dzSh9F57hodSBnMHukcH1kd9tqlpprBQ/Ij9E+wMQXrZG5PlzwYJ6jmRdnQtRj64wC/7vsDaaMFteBOUDR4ebRrNZJHhwlNEK9Bz3k7jqOV5KJpL74p2sQnd7vLE374Jz+G7H3RUbX17SobYOe9wKkL/Ja/zeiKExOBmPo0X29bURQMxJkN4ddbrHnOkn6+M1zTZHo0efsB23WSSsByfmye2ZuTEZ12J3Y8ffT6Fcv8XVfA/k+p+xJGreKHJRVUIBqfEIlRt987/QXkssXuvLkECSpVEBs+gE1meB6Xn1RWISG6sV3+KOVjiE9wGdRHS8rmTERRnk0mDNU/+kOQYN/6jdeq0IHeh9c6xlSNICo9OcX1MmAiEuvGay43xCZgxHeZqD7etZMigoJI5V2q7xDcXcPort7AEjLwWlEf4ouzy2iPa3lxpcJWdIcHjhLZf1zg/Kv3/yN1voOmCLrI1Fe0MuFbB0TFSUt+t4Wqe2Mj1o2KS0TFQPGRlFm26IvVP9OXKIQkjfueRtMPoqLfVgDhplKvWWJA673+52FgEEgm+HwEgzOjaTuBz639XtCTwaQL/DrCeRdXun0VU3HDmNmTkc6YrNR6tTVWnbqHwykSBswchFLnvouR0KRhDhZiTYYYNWdvXzY+61Jz5IBcTJavGXr9BcHdk/3tqaLbwCbfpwjxCFSUs1xfFcRzRfMAl+QYuCpsYGz9H01poc1LyzhXwmODmUSg/xFq/RosgYikz4Om/ni9QCcr28ZPISaKrY7O+CspM/s+sHtnA9o9WgFWhcBX2LDN2/AL5uB6UxL/RaBp7EI+JHGz6MeLfvSNJnBgI9THFdUwmg1AXb9pvd7ccLqRdmcHLRT1I2VuEAghBduBm7pHNrZIjb2UVrijpZPlGL68hr+SDlC31mdis0BjP4aZFEOcw+uB17y5u7WOnho60Vcy7gRr7BZ9z5zY1uIwo+tW1YKpuQpdR0Vi7AxKmaIa4jXTjUh7MRlNM0W/Ut/CSD7atFd4soMsX7QbcrUZZaWuN0KOVCL9E09UcJlX+esWK56mre/s6UO9ks0owQ+foaVopkuKG+HZYbE1L1e0VwY2J53aCpwC77HqtpyNtoIlBVzOPtFvzBpDV9TjiP3CcTTGqLKh+m7urHvtHSB/+cGuRk4SsTma9sPCVJ19UPvaAv5WB8u57lNeUewwKpXmmKm5XZV91+FqCCT6nVrrrOgXfYmGFlVjqsSn3/yufkGIdtmdD0yVBcYFR3hDx43e3E4iuiEtP3Me9gcsBqveQdKojKR//qD2nEDY0IktMgFvH+SqVWi9mAorym92NEGbY8MeDjp553MiTXCRSASPt+Ga5q7pB9vwFQCTpaoevx0yEfrq9rMs3eU6wclBMJ9Ve8m6QuLYZ58J41YG3jW/khW92h6M/vbFIUPuopZ6VVtpciesU74Ef7ic8iSymDohGeUn4ubT0vRsXmbsjaJaYhL8f+8I5EiD5l680MJbxX/4GYrOg4iPQqpKp0qddSu/HKtznHeVyxgTwhfEORMCwnaqetVSzvidaWN9P+fXtGXfEP9cTdwx2gKVfDdICq7hecgRhIs0qlCt6+5pGlCc6kWoplHa/KjP+FJdXBU/IDoKMxRjFhSYkggIkhvRKiN/b2ud8URPF+lB87AGAwyMjr/Wju2Uj5IrppXZWjI3d14BdKE2fhALyQPmHqqA+AXd2LwvRHcBq4mhOQ4oNRWH7wpzc6Pggfcbv9kqhLxrJKEaJqA6Rxi+TDNOJstd5DoRVCDjmVspCVyHJsFEWPg9+NA8l1e4X2PDvOd5MPZAGw6LRhWqeZoSQcPf9/dGJYAyzCmttlRnx0BfrKQ/G9i5DVJft9fuJwMi3OD/0Dv1bRoxcXAyZ0wMJ6rwk9RjRTF4ZK8JviCCNuVt/BqQYiphOzWCpnbwOZt6qXuiAabQWrS4mNXQ7cEErXR/yJcbdFp5nWE1bPBjD0fmG3ovMxmOq5blpcOs0DtNQpci1t+9DKERWAO53IVV/S4yhMklvIp0j0FIQgwjdUptqmoMYGVWSI5YkTKLHZdXRDv9zs+HdFZt1QVcdlGOgATro3fg6ticCrDQKUJC7bYX50wdvetilEwVenHhlr85HMLRLTD6nDXWId4ORLwwe5IXiOhpuZTVTv+xdkTxJofqeCRM/jcZqQlU0gFVTlYlfwMi6HKR2YG4fQ8TOtgR+yV+BMZb6L5OwDc/28/xdfD7GXFaVA2ZSObiIxBwT2Zev637EuvpM6rxcogdM4FJFa0ZhF7nrqtNsqWg5M7hZMORpjd4szf/wS+Ahs1shY54Ct5J1dOBO4sdEtSnRc0P9PhgyOCt6aQW98R22DpAcNTDe72AHK40vutKTPfpokghRPuGvz0dulBPKfC3O4KVDCyWrJGO7Ikdu06A0keKlVfi0tGcpO0NhzXEh75NHyMysAMV19fq7//sPC0For1k2uFEvq8lwrMAfmP7afR69U2RqaILHe7glpc8HmVf87Qb2ohsw+Di9U+ePdHLecS66MhB/0OwdcXR5WBcWTZLGq/kiAaT+bzkjR8GIpWdv6pfIgQ+Q0xdiKvo+gNB7/Nf9knNJGxnh7LeZEFtMn517tNc74PPS0M4K3I6HHZqNPA+VZcBc/g5a2ARyqKrJ4Z3krsuA+VOJJz2KJpBMgCCWFln3u7k6/q3DETAubKG/pt3ObaNT0NI0Qug90L2ip5dHnZJUjPTvK5E96aX/4mRU2u8n8kh6MKbY7ANBro3huF06U+JvfyELQP25oIaj+n0ITQ4KT9rXZD4EtBIOj95fYNldDN3io/VMIvWNj9P/b95WEMq8UAVfG2XG0N6fSYdnBEC7sUEbatbDICH9qA8TTuW9kEt9DlFOZFP7bdfYLa/khSY8W5K/AkIIAPXtMvyVKyESjKx9nfragssxC0jFMVY94d8lOAwRocdS/l/P43cBGa3IqDa0ihGPcmwS8O8Vj16Uy55rOrnN0shhRJZdW8I7F0Q0KeHc35GFo4aJOFc25gNafBu1V/VO0qS4Qkb6wjRrnlepUWjtYyaDABZceValuOMtoDdeIITWKOJiwGPpB12lQgwkmXh9M86podb0D117mNQ8ElluFvbaS8RTKQ6lyj88dUwoJU/ofOeubhoXWBF8eNumkVJu+As3ED/AvLlrV91UowIWI2m8HBG+a3k247ZKAGYsOcWe7fTWqL8eqwM5ZFuoXbeugPKuMOAtOsN+4dSwkhrSAlfGNTzFwEmCNWtzpa9CgPbYNcmoHtO8pj8qMvlGET6nrkJoQ2lp5MEUV1E2A4ZH70JUlCLXvqTIpZlzyxdr5p/GZiD1/BuFOGbyfFzhuxaC/l3lC2jjt6GNRBa06AqqPlYtdA7kiidYa5Qi0/XpXiMDyMXNOj3kmJEaXufW0GO8+DF8OoMULX1vvjCePKNis4AmxQKLCF+cjf/wyilCJvuiyLVPSdsuRTPZ0AhpdDF/1uFmDwG7iP3qYwNsKzqd3sYdnMolCOuQOIHWy1eQpWhuV+jmSeAC5zCc0/KsOIXkZPdiw8vtB33jEBpezpGDBP4JLY2wH1J7Fzp8y8RICqVd25mDT2tDb/L1mh4fv9TOfDH5dTeATqu+diOZi+/sIt18hiTovPsVQVaqXLPRx/4R/uH/86tBMcF+WBkThKLfblcVCIECc8DgNRVX97KdrsCeIK+CvJZMfwrftcDZDZyp7G8HeKl7bPYnTKX88dXAwAyz66O2chkPDHy/2K2XcT/61XnlAKgPwtI8yP9Vu45yh55KHhJu93mL4nfo8szp/IyDjmFHtSMqqoWsj8WaVhbjXgzZxcqZcyOe7pUK6aXF/Y32LnBOt0WN28UmHRiOpL525C63I2JQPX8vvOU0fz2ij74OeJ1Apgu3JRObfdo9xGDpp7cv3TdULEfNS6Gu3EJu7drBsBsogUqUc6wAUW3ux0/1hLVI/JEKJrAGm8g72C2aJSsGAsKFW4CBvBXVlNIKa5r7HvT1BeGYBfxTR1vhNlFFNN8WQYwr39yT/13XzRGiF2IsfE8HcN0+lN1zN/OnzekVBKkFY11GgrK5CLxrE/2HCEMwQb9yOuP2rTXiZzTEETp/ismFGcTWmbM9G1Sn2D/x3G74uWYZY4rgKB2Zo2bTKS6QnM5x1Yee66Y1L7K44AyiY5K2MH5wrTwxMFh+S8LzNQ25z6sunWZyiRwFIIvSnioltUXNiOr+XMZ6O9h9HcHxZJkfF0tUm6QkU7iJ2ozXARitiL86aqVsMOpmvdIBROhUoanPtCjgft8up3hAaKpw9Qs9MzYtBA2ijHXotzarkV3zKEK0dFFQUwT74NgCmGGuSCEDmFCezXPC9BhyGhmzNa6rQeQQz+r9CmGUZjIQEPsHwe86oCOQhWaHERsv5ia9rZvJ//7UXO7B329YUkLLAiqpLRsVV5XpcfdawlJqi/BVcCqO6dr9YJTFFRMVGhfUbB9YWNvYPY6RyaydAFYq1YIBQxuNAGfYWLMAHtt2XRHoOKCLz+qf5HCVBDOPOktQ3SdJBfxUkaiD585bmTzMwU3oeXUHZ55EC99Kz9kk4ZXMIENwVVpqW2JmGIcUiutIMj2KkpjE2QD+dIZUCxcX57kH7hiuUPnKCTdaw4KN95XPeFRvMcvo5L8LexWqvaJPECzwXCs/4XPAlSMpWUzBBjK3pEnkbueMkMJQrYcnXf7PjbAoJra1VLX4YuscQLpaeYWbT+h24hCFrfcHjxxx6WTSe4AGY/KHRZCQKqTuFWt0D8RmGWmvXSdg1ptIefYPshuIVZT7CV4Ny67fvjJugy0TNYHqoCO45CB88kxrvIsih19DqjD0UqiJsTFPcGW3P/ULOG3nb8CjpgVTIoa5nO9ZYEX4uEHu8hLXrJPjV1lTQ5xTdZVagg+Wj8V0EE4yPsTc345KM6lVXqLiHtm+G6edC4GVEiPgd98g+twSYm18gCsPnjqlLcFm9e72CLJbYD+ocIZOxuVjrX6IKh9fh7WqdIZ66x9PWkDGOVVGkx7jM76Ywe16DX9ng205kg5eq+R2q2MguTJxYv/wWHliD9mOYpzZKNXYC3Wr4iBGkm54hBwkPzFhiX/VBHdVH/KJ1ZIMOHxIN6arKdxrm6EBsgwDt0mPe0MX1HRUMq8ctcmysU6xX0bzM1J07kAvq33jw1q0Pq2cyMWme8F7aVkfhzZEFdyi8fVBQav0YZqvAjZ83WKH726rBx5Bn7GHFthR6H4lFsltu+jWmsAibJ3kpWMG/QbncU7n9skIBL0MuXXtj9sJg+4Dl0XhKJ1LcrMydaIgyrgZgScP4k8YQvcsBmD26X1iYXKLzMYfZn2IfRjznsrJ1e5cnl/3a5xiNoI6n1x1U36FWckJbyx+hiSZg0QqAqeeSvzFYMlZ2REnO/a6yoQhu7PdHMYEPFIvfyGeyCU8e7rpju4DrlOhszj9rOIpNsvCkuD+TLyf5J7D/wsPkBpscFVI1q7oUSU9bN30vH5AqnO7bsf+9rGhtVjOJQ32H9hHSAzR2ape4L0Cz4WxaySm4jvuGXwkFp5NMMLrgZ8LdA+5uLuyxO5SMOmJNDBcbbLefv7z6LyxBwltnfQLd7qqpG1MmNcoLUcx73BkNF/xpdS0cKd6G646ntChXSeTZJJTFYGw39T7fqXDPKoG2cF7/ZcTvME42gXLVjTqzAER1Rt5m7GYsh0X0+XgOeW9MJqE5j/rpGzY6vUu6ACcCTzDMdZHiWELpDnvgE1hmztLcSYz0MtNyUBLqvylUJJnJu79Sku9NMHCTkgqozTnhMFfduV2NLCSYvAI5HUvQp1h/M02vKFD6eosIkGTg6mujUo1W8hy5Knf/erkBQC9LzNqPAYCgR+hczgevta88NNqSlBZryq9QNeUK7RpbvHjoNhUKAAeNYH55LeTW36KyFaXdAkBvyNP9xmRuBokPi2OhqDby6IZ61mwfzG+GmACkS+G80A4WGON5izgJWeeDK91jzusfOi0RmEsVJXwbVUr8u/J2LCQaMnHhi+wJTEPN9tS2b6W4GRGCNmtjAMgPsP357nOeD3H2tcDAPu5xQBKMHf/j4ZhXlkvvy3YmBJsjsd4pSOlfPZCnw5JvzxEXM5JIc+E2mU4CgB0mdJnH4NEsCHYNeVRDXFNuyZUE4nuvaJf1h+11AWLdAZ72D9XNRcxfb2+XHZN/SN48U7yl+sNZhg5gn/PD8wkBtnRj1zBUPIWnoMP6yGUEEzuT+VaX3x2jEIZAZsr3rs9wCfY1Ss0EdIFFzBbyruUup4EPanbSYew5tf16/ZWVup5iykttuqL4xoC/jdZWsAZeSfDSd3fP9kbyAFYXkf0Q2lmxaTkKRZrCo9XCoiUG4yP1URJ5G7+HSOhhJp0Anz0N07QZtyFUye6rcgiOFbtyoO1lkuV0iQ602MTyFK9xLqNHtNy4cJaTO6hjtiwNynVc34ZA6H7k8ai6S6eF6jIG0xJx+JfP97lzuCZr8vU5SIzImaNpiQhyvDbz23//PJcOk7hD4iIvJzfIgOGIR6ZPEJpWHZQoacbF+omeHw8aWHaNOfaIyGeG4lEryMfhtNmWh4RAIpn8dLs7ZE2eTVDwK++xDoSUgh47WDmKlZ/k6OosEUoQjk7Q+Kp7OxwgMFShAv6z4pTW8loVj2+qXLQ0T3hmIue8qHy1o/HXjm089m71t6mrrUyDftqMYtmfvQXKDlZ+K1HR/FkqPSqcjGlcPPIwbMw3wIFKBdVMJ4pFLt+oOIkWZMw8pkoYZ3byw4LmAF+7BdicGXFcb5PWtDw5XNNVc6eB9dv0rAEpgr5J+bLr010bpfGw+IkRoxDbkDFmQdEQUSElP5bViLo1ur/23KN0jEwl+rGC6AUMKxHcv+T9F1Ktpn8jSSrKxJnVkK8UD/tH5DN6nXB8mjUdFU539e9ywLtLYCwmHYVEVqnFmdubduaSd1ivIo4pTsX+mJcOAkrR1D60RIoocCBIdwJhCBM1rOE2XSlPo0U+khALvw+zfxYzwzd4roWlLJkZheFRR8QB8v4USwmAcDswUZ2P/7v7Xa51Fs7orYebYyww4YW5869Y/c6Kq2eTR9HLSjYuChTkXaDygoo8nz/yJ0KzfX8oowaNAwz8HvQdlLU9V9hjqYMURyYvPzZ60G0itmUdZwB+sY6rUkMAZZtWStbDFmnk/dQorhwr3121XQWffrK3as0g29ASwxbsZ3dZAq/96b7/XWckbjmo8+jwdE680DzoEUUivnBgowMuBQxHXoGyp+w/cSGY88rWtmwoyNNIvChs/QsZRnbdV7y8x7t2RkliJV/j8e6qfctrTsMV22zoqgQuTSNFh7U7p/Q49L0kygXNnEYXCBDgi5BeNWxu7VjULcUHI+lGj+OTCEATzWrDmaynq3wT9IAejtvh3esCu6sEu9JOsXxMDpqxm4Tzl+pt2Wa5Bq3TM5TKH4N7KLir8FGIPA569+uJ1VEL3fW8Jyigz/nEUjAVYrdCWq2MnS4hQVgcvXq9aF7Xke/k++rAtIQqckPNwjKrV2t7HCOrA1ps88Y5Rw1Zp+9itnB71j8tNiQc7mV1kUCQXkoi5fOsq1uC6hUPUL7Z69NAM6lg0c/aeiifHoi35v+pVBh7CDM1XfvYpiK5JIbIQFHafmnhHfRTnMagKcjdE7zzgtxkTPKVrObTySTT51g9bB5ro/dzn/sB24fNM2LGJuRQsmC49PLi1jTRfZaLpo8Txxxczij5Pl2vur+S1wQW3W5qyVcIUySZHtFDQHv+EYDoZG1T1J7D91vEIV8dHzUBzW1UyuxRbP+M/CM/vsas6RzmS5traXnQ0Jzv9hYXxKHcs15TQCP744XsLjzFjILYURXFnhM+nnV0iO6nwls9TR4tlz1J9/NvE8FGg5mgpZA4htS05AK0NnU2gxuqf2vjCyWlm3ypKvaX4vxh8Um1MHGB2NTeAFhbDyGm+5w2zqJAWxVlj6dVePb5yR+aMhuz05YubCQJ0BOtoYQ6PoDoW5fCwCtXj5SHvCgL/3B5z2mcXWaRTf8/GsFAfX/ntdWZWFc2xg8MJeenwZ4dZUToce43If4zVb1ex3BMAWGhgkPwR5EgktZhW3Yi+nsnZTUr9FYI160YhAraB0zMV+ouHz6hYm25/ETDM0MTmcypoGgZISSkfwYAQaHGY45yZ91K4A4Mm4fnbMk8GTc4orypT3NLBqAxYdcY/qCH82PpIkmVOEHi1NoYaUymuImLLcib5pmd2MHTB3JR+4rLdRc3gtQ9zeFdciciRiWviu3HkqaLSxJeI2rgc7OKQslItumACQow89elXmi4P3gTZeCauvMH5nF4VrBcLjjwGD+KlKqe/RWIEgT2wGqAgSuL6b+RTTPnQZzxZ5y5HQJkEEKJp5NfoB8hJBM8qn6xbOFtyzBjVBrwSS1zCJR3lEc9ODQ5Wu/xct9/2Q6qLHnmNx6XwZus/i8rEd6UsVxGtoDrm+Br0L5oUojlwdcqyVV4PIMsR60JhZwJtgX7izQWj+GOeF9DA8Wexdmv6DWjgR8LEBp9YuPAM8tJDu3uCumNqHnF2ATYX/tuVO55OgQuiUhmDmJbF9jJyifBRtxOVI9DCNLUY71IXZYTuiYcnILQ/XHuVJ8aHDStL0N+3eYNvXwHi2vEiTPnBqzsC4TsPnFVnYY042j5i7C11AVdBZ1pGSa52jM9dIL119rry0mgGxFzI8xPs+7bmMfYKh37A4HtA081olG1m9S4Zch2hoNCGVvVhd6UL7C2d5hKIBHoB+Uxarq/4aQXhh7IWjSj+ca7Vhqb4+ZwY3nHXh2S9JH4XZxQojbe/eINxYlozTYtT2rpU/xbj+W2hXjFQ+z+dQ8wh9751MP0UpjutQdxz3/FJYAEG5BF400JXWCBs7KrCRf/l+F+d9EuwVk6thOPDB+HNS9iWlLmDgXvY6K0vgiyoeA3An+jWufdAG1suUMBuJT+/w0FNJZbObUT8c5q5WtQxASQF6E+/u8UwVBs1eo8jTamCrcdhZJlADJbqn3crcDHQlBQNGq7btcGKiJXW6q0cn3F0xzf+k1JJS2testB3rx15ZPTDXm8QV5XE2qxBOdM2n6t5YbxyNOmEdsHx+hMp+y9pWkcgw1NikeXuafJvzcjaNwE1Ad6gG79S68aO7jWpKgBETYLmV4ONHhBk7Be8tjf2WVvWMDQvQdOnk448yeMv1tQKU1xev0L171e/qxkMZbmkfKnd29XRCK2hgNNJhwt1qiYWZGKz7Di6K3fGDT7DO2YQ7WU33svE/WKGbWQEvzUV2w+VNYDocI4yxQ6i3i4zU2TjmjCwu5Pk+Ja9HSwLpEoUswq3tFJ1jimthgMXd7KjSl6Qd0K+vxWT8G4/+xITHsWDGSfQTSdFQth5uVVfa8wrkDZHTGVgpJys2ik+3I0dSf6TNo6A/sVptyY/kx1hdAWKPI6t/xj6s+fPMU3hg1vkEB0RRHq/tCy3KUUhzU/d0JKxTyjvUms5iy1GbOFco0NA4t83SK9sBmtLWm4kOLLflyxqgQYP08iyXwYXzKnlQ6VTipuaspSJ9g5H5Lu3eLMnPKbhcwuEg0VZ80ppJWjUnhS3rL35erzysp+fJhxsUs86m28/UwW+IgrS5Y0zWaxlFJ8xML5wk8sg1ragF+eNajyI0Y4mwStxt1RZH2BjaAhvu+SnNNIK88thEgZEsoHv+ii+OMmXJL7dnAiINVDz3tCnqDgpQX9OguNGgZj3axcjq1UgxDw785yNIpqNiLgv57399jVmJ0/RStNswaFIs6FtnkilFZldxj6m562jL4p5g3Y9XCiXRJX6nq2PGJFifFR7EyPG4jDMnBM4t+O8ZpEp3th7TCxEw+ZG4afHl4sNFaqxyLh6+979tt0Aq9BrqI+CS2U7HJoKiGmyVU1lFa3/0O5mNC1bzRgNMy+GXyifLwJP7FwUSUmxmVRpn+gnXWoIuswPutsiciurvN6lsMG7yqEc2Y5ZI3jrPgPq0xEKPZpF7teJa0TQn8BQL4Th+hjv2ByfwKookyXEmj0d1KMcsmfKaeKK3cZZubiYqmSCrnGpYTwgPk5itKucVtjViuswQsDR6TuyGSIHYvlz7wkLg1Rr0K9kV1o8RgABlhbLrN74cVWJW6TnfXN0q12JFMpUbEa8t1+j440FA+17o8qa8PQ9igkctVROVIfB3jU5vtGm5pYYHYSDvU2TEc15pIz19ka1q6c/7WXfF8+POkApdOw7nn7Kqz6V4tru7NXgnA/u0g6+fPRT3hp/QrDQwMsjwNCZxdWrR6pgCBDJNc7/KAlwC0UZ4yWQs0KsuwbbOgcTxQPK54wiXr7s+221hzZ8RVxfoRUKM3e4lpxHC83JllxlrV760tl06f7/65qhE1jhMfivAUXIXfRMe3uY/G2TpWYzDrw5Cm5cS062Bx9lhHq9gtJp8xZwAtSdSuW/Kd7+orEAiswA76N8ezmVGYgNaYlQ/xk930LAWAtKVBC4U6R08L45IohB1kFia7XJs0TcaT2zBZoLFuOGu4iJaoAnfjL3uS6gnRH7G7A+aT6ETlmkYUfgrBuaSLLDJfhPJe01PfN0oqBTeQURasl3N8BZiQSgdr0aDv3hPTiog4NSyfAUyy98WP7dnTDWQTY+Qwzgk1uxwRqHl5MpC/84Cuw1TXfRlgJrwPop10kCHjmffnFdxCe2J3R3J5j+3H/sZn3IUu3Suy+I+dAOMWvzwExNR3RRPVelZAhtarKlXPWNjPRIVP4JsAFSRXs3o/fSYAPaV/zP8q6DltH47/rYhCLdy/LrpOsbaLf09eACcClJosNefetNElkSFSuCgeY7oTAAl+8Y2zOXJb/bgEDpoDXfQqc6lnlBr/WsmVznkBS1M7ufiqpxvKXjwvR4WxLbh5NbMNy8LsnX4UiuAi8XonbSUcVZKQOWBYUecSOMj6jMG8gHu7WNreBHY90lV7FocDprSrSbexkAtMW9KlXcnrOyLnZdodGYdxz8aw71HztIqLhRdCOB6NyzHPoS2hDy6wLk0I5Jr2t+U0A+A7EsgSn/Ih03A5CspHnVF4MOic+Lck3m61Um+GHDEe4DrHBhmgtDlRQl1XJ/V/VumCHtUDDcZCkgjVMBOmVOGYW0Rcdi1ahdjhBcFlfjA+5cRjBop1aNDvdrf7CxkLVgxiCxhRctW8wczM8+kVmIrGtkaHGlr8y2D098HXE23r7fnJFUU68zyeyM265igNOGPzFG0dIgUDWN6S3ZcfMERJdWVvpGhVEHXNLeWqHiTcF3wOt0FbJY4XHEpmkoG9MQPJJ4ueQ01+MB+SR0rCSGzlE8zod19q75LlLWgzogpnJoD4gPxUYcX+Gpc5Ly4nk+Zm8LDXcNR7SNVxLh6NAcx8ekjb/AC7ADlRnfuHaHJaBodZr7RBX9FLTvocY6kY8bavdAkQicE9bbwGLkZu6whTCJ56lOvM39ijehpTOFqR3V53nQx4hfOvwRPU2y2w7UU8yiRbcyaX6jGJ9CRvl9ybV1tebTp5MMuMnwLcx/lven0w9T0atJuiUE2WtYGiVMaP3EchABl5AsyaCpu/BKAWDFvU2vaCL2/fJBKCKLjxG6xzT4Mh4wHhH3/EqsGSoQAHu2wbHmXHj2LvoW19GXDa2oyeKRwGG1PU+S7mE/S+UmjHiDF1oqJ0R5QsdjAZYN1MzpNX5YDqWYfhfdjAXyFQaVyGKkp1oEGTR8MK6jaGfRDFd41u2Ex8ac8jKPYu3pXsk8gu+m9tr1RVzTTuDsACW4S1h32yFHX7qpXSmA0QVEcR8W9j2Juu0pcYqTmdis88VgT3gq7iYue5Hx/3K6hFQa9rZrNSDcjaSQlNn4LSqs20bypnKqpzvnnxjMdz5StbzvoAJKgVZa4DLCVoJW765/KyTF4s4YztmAT1c0pTmKJHTpa106FegDo8p2zD6uOnwpYi0vJlRMDe9wPT6964UfAf6lq3qWypUOx9q6BbKEYt7K3gWMXDNN6wAm1fNnSOnZ4JkbPq7jLQrl0wL1V7QwO/sXneKGfTgUL28I5iPVG9dA2gS7Ki005JUR7Vmw4gX4TJvy1WS74cIXD08LCF5obqcZwamuoZ+FPMJEck0TLHjyH1baPr55/Cy0ptDfRJ7d89pbP48tLMHG5dO11Z8xSSpPGQSgXDWmpsNsmm+MvxJjMCi7OFDHxxpmTtjgnOCq+c7Fi1DybfhAntviKccz+sj+OPKPYOKeYYPLvq6MpUx/chSvBccg9dfbeqetQNCs3eiCFZTU1mrDido/mib64STMgsa+IKLk9PyxGGbVSQB9GsHto6f5prAFIbRDSItDedz3t5+Nn69FFS0nEfmkF7hKBmNVce5xv65USKGBoHYxJyutSGnRIq7vMDsAMvirOEJOzNi5Kt7fypuSU2c2Npo6UH5jMOkePH0TwgpammO3Fb2FX6f11309z/mqRmQ949HHRj/wMzKNx95M9pwKf+UQkMEwisL3YVotvHhCv4y00Ui0Ql8dR7tGqFcSdYtmoAOuAodkBNs4PZSjAAF7S/szwLddFMdCyB/dWPgFUiUE+WmUUCjYrKfJLQfNNpQ4NKaF57w7Kp/isZVwQPUJyjJavN3fQNKU+F74jVBJYQEcEdw0Niinyea0l9PJ1/AcTm/LI91RZjDvLI81pnat7RKU2P4/TnIAa3hIEfeg4iGQ+wTDlURK6YjNpN5s5VkQW9w7sDYKU4XmjyZsCQLxztqd4SDQvLyuPDhURAJXKfR1c7tq3mRu4usFHPqz7HgS0X7kNxiWWR3fb3uVwbgKpmgLYkwKrXKt09COw4MjhxeZlDXKy7nNLHXAIKPtferWQnZLboonQXK81x+BB3oUidBehK1swSXxVbscj/LsfONu/xYEXYPM3aMqIYd+2hAnFvDHbdrJLhGEd3sG5PyxqhzejhQJo9wauFK3xmPYqxB99J8zYU9/yzrEZNzzbvPoR9vUlE3Ha4zspVDzHHffPZMJ1VLZkKqGCf8ZqupqMt6T+NRPfmPm2xeDgvzMrRJEL4/zzlu7Z35smvzbgeC25VP2CUrZkRxEi15A0769ojdO1d7C9OG+swj1ROMM3NgKdeBADoRMeJkRZcZ1FbQu6C0BS9NNSaoxtFzYT4lX7+PQ7BKa84yrN+ujVVef+SgnEie1G0N+eOtbZF/UU+wkeerWjloYqFiqo0vBnmxh+TwNMo9I/8lfU2XTCT0K4OoWE08ipyNHjxHvfhY6qa3x4HzdQ8+jkiO5+j91YkihS5memfpFREHP/2veN5XcRue2zCVuAub8V6vDlOvyP+PBm+owyRhMmng5wwGGIXsOkQekXrXpE/6dFjkHwwoFoj5bIFiqp+4wHpSWRbv2xGrRpd2c87FzMP6Hfj/3LWIBqFiNOAxBw+AAP1XqUBszdZhzOSQrQS4Ein4fyV7MaGsB0VsMF4bPb4lx/foTGQRJv45LpoxDd84xCawHaX7jpXUrOdkFxx2oUvY2xqpgIvcVufwd+zAnaaVTnEyDXD7S/o/xrrk4mgTjXhcjj5Rzrbr23NmuZQvpdNzny5MCR9bwvIRIqzOZZLsstZSCDYa56JTvzxgBs20dYTtTUbe21uljlWqGfSh2bYAzOpf6UguK30ZxNXgLHs6Y6urtxFA5iLYvlue5mDONW0MOtQjhqr8fRbCkYneiDkvzHkQVT4F9v9vxh2SIGPBH8bZb8ugo/BSgXojeSdNXbBAIDsB6DUNSXnwlu/bFLaCqSbvu4+YLplwO1JbtrMf9ZUfsxerAZjB7E/zl3qwgK27FswemUmSM4i37YAVhQSocuV8AcDI/CSeCDNPavESshDQ8A/lVIrAJAMdP/rHXouiNU8RL/TIvfQiuZEb6dkIKMGGOW5kT8vO8pivWnT4v7qmwuJo52AS1r/RyQ2g/7c9ZJgmMIzf0GvJJRfMNu1utRNuLWHOm9JIMcJK3qiDtVpGCDP45W1oTTMUnMC91kYhP0GHjhCW8V38xhjHgFFBfuWMsmSQ9MvNqKXiqtUhDAkIy0PW7YSKaKUv6zctAiIk+Jt17kG6LpNVOeMvJnlVBaJSkKe0HTJJUMvf8R2zna35/yh2wNlWLzIP3BJR5aRNxkV94ICOlycI1/JYRZtzvWMNoIpQrdNvyBuBydhSwhRwPo079Xk/XQZpbhzN/KK4NbdJQV0JIMP+Y5UBIM3TTYlFGYVjcvA5yVozkimco91Fx/eo+ydgAx1gMezTh+bYxCtXPYkMoPdtaElRusxlmdSV9zgF4Np+iylun3LVxCycAFxGCFsmARf6y4I6zXY0tx81aQyalr3/ih+ZjxGNWdhItgNLdEZ/BOIJpPoAveh2bKbEFxU/M0+4xqDo3Ox8MnNn8Lmv15NJigSvJV+y2W/ZogEXNiv0/nuFzZGr0pKujOShzcdkEVlMw8mNZXZCbtM9V+mfawtLxCTvo+enFWhJcFv8LVTFycDjPGBXRQKNN+z68HJtYdpH++g5WdhQpCO+DE7Qdu6TmZgtetrpU2ZlgpslOx+4hb3aXaqbdc92LCh51er8vm1GQ9uWD9+fAPRV50ixhgc5zi2Jsg1xQVxzlaELRWJ5biyF+eCwNV0oFnTbBHr3Glm9qlGVOpoOsQC8hlNG88fxeAekkCGnHFn6i5WzyO7ShDYbZ2KM4eqndyy01v+6TFhmkxgc0dndt7EzRCcEfBxSaWZwcev6MDZcuvSZQ9CNSd4Tx25TY6UAbrhikuP1vNFfPdZhCG1pe6vx4D6Ez3zIb0zDa42FPpxWvIpEeXb7YTcfZOahSpSYaWLH/vq0F3U1KO7ZxliZpoMBBYJs91IE0bOkrPNQ/USYY0qKCO3CU+AFbOYxzKWBkIglrX34377BZ18MKQCv1KWfIHEeguSpvrNH5RQOD4LeiH2gdx1MOAKphlL41F4RpxaU4dy8xERFgqoyICQq9XmQ8WJSokwqvhQM0fLtsvyCO2PAkJ3BZg5IqoR5q/GdTLgOWPFR53Nqw9Ma5vBzZcQ4+iZgetmKg5ZIn+/7Jbi+VlViXuD9CaAUtdEmnwWTS7wZWuskVvc/SDaaKV+Jz6HrZTHo3UrAu0IZDBkXWmL+mTTjdTb1A+MdhKkY/hvFNwXj1FzUngsN58u/kTdJ3Xi0hy7efR6faAOi4SKGaiOty8lxDFkiD9wq2GW1EZEsoWGw/WzxXhWDzYY8CC7WuLFHc+x19jhH+FiLXwDIARRtnkJPF2BUPZ9+grZ3tjqAWhhN3h74w5pooRQUNATy05A9HDLnILGSCtfESoSilqtqAIQ/TV2t3KhOc+teDf5t+DqZDdB8Ob9YXyklrSO73pR0QAxPvQj57c6FIR5dOciqeHZ2LRABMROo8Jk8V6JFewCL8TCd/A5MSbXLky1cW7mXobqgeEXdFDoEydKo5oCuyn+2JYI/7pIGFAzErlHZ5hOaiT17HC3zp2HpJwsIAb4/oIoZ8x8ak43Yp83Ermq55Dg8HxKGHXbXs47sh0PzQELTGFsf5eO3lYAuJjMneoYWk8W/3tW2WLntEKBZEW4hOFgo8K58Rj0vk5KLyezu1d8SO/JcuxpOJqFUM2sxBmbQ/9qqwb90R0WulpR/Ju84bQ5/fTh7po/pbBb7AQaYNdK3fatD3K4TLHAaa66MQzp/+ZGyCjzo5OXRzJ8UHyg/YpNHvvlOpwQIOjakpLHwGV4WsLDPjEIqG23ily3LL0dlkYQxj3Xx0ApCo35zYGoGOtIclYS83MnI5TwVdQ+Hg453WFQN694DaqhGaL/dm0KncXYqXLi5polgT4DOrzD4oSVhrkh8GW2PaXjOFDCLPcn4RQj8dRGIJuV81LxMPZ0UL6zpkaebhbFBxcRJe38UiTbUPDjFWk2jBqzrBvXcKmgdDcmRyJhIpuq+3DQY464AlY42z2EM0yIK0I6b+VgpanMfpdWo7OxKY8RM5tSJv340/qD8SxrYsybMuUkF8fHj7HcvxEPC5YYrH4LW1YKg6QaeFZLvPbrHZHvi4OXLKkN8cGQO8019OKqcv6QnBlj01e7qS5evoGm53rv+VmDxxCXDiOrDg+IaPeMPrn8TJ1oReXYI3yb+4HQbikxP5TQXHk4YXPUv95+KmkxGsRgTwP71YiMpqNXp0loHZeXRp9i3euKrVtxMM0e6XAoACwNtcc6sOuhZVb1htBLudzahrDFt5GkdlwHjZl5y0LbvSHwII+qYeDwRKTTzyXaInHIM+8rc5TrjUlPRVwB5LKFpQnV8e7vLv7T7V/iJTW9h9TnRtNCSGcofBWYm5P7wZcAq3AFamEW/GMbo27ldz0plt5HI53ddWkn9IuCZY+Iy0MATUh3YenRTbVgdLYtu893SuN6EL4e9V4NhlzUjI8nOS6B99ecyC1Ot8sDahQpWHbmt2YvWGyL3S9tEVLKYs+LnghBmmSl2uPWfqPobPwBHNLW21LUjfZb7jfLMTsMp3icGO1npK/rCsUgdBVKVg0Ys+/WKuTmVJoC8Oe5h3PK1TQhbpZ2ytP9nlutQPtLAEt+CVT90DfVkn7lHLOX8AfS6HLzfHeAhu1alnl19RHKV1LI0G7RPzYgVaSpX7th9f06uo2WpxjL86i/2uzK2qj/ClHbGDyQr3F9/axmq4kJ7zZFVXVVwfiFr5bhUGVZeQJHKFAcsnqPKsb8vHyB9SpFpT9U1U7D4aS9vYgqajxhC+hOkolJV2dKAxysCkWBo3SPiPUrSQYZxOWwWCoQzbV0oeaDEcgUtqI3nq9TSmpQ688/+wb26P2CHLY1H7q5lypXSrnwnnztq/jN1o9lyvLmLyGguV0VJnDCREkiUNrZqGG06MsyA+Phd9CuFoM5M1Pyk7S6TJaHdTw0ni3n5ysAup0kyxr65lFc81NcH8xSmpp+iOEtQZrH/y01k1rGMRJAGFhi+nDecpUlnrh+qBOCMZCcSCovOPJrxjZnZJDMLdpMVu+tBSVS1nKxsYjY9Dtq1/++riVfLUVhzofIcIgQQPOqHioELxU3EpCcZMoL9laa5YlOZAMEp5apx7CphrkL+fyKbBAf8ctwVd93FTo7F5Oc/alNsCgK6lHruPROtN2RybiLqx8P5LTUZXU+Aoyz08zYHasR3U8hPDKj+6arWXR9yWdJoMn45prCSURKKy3+JHgvs2Ot6v6GbEtdCumgCttv2VNoU3KOqUwqNIWHqYm4eMijTM9VWB7umEyp7UPOI8fduHJY0W9xSCZdvc2xMjo3Zdu2o/WZKDMOSh9UmLvo45IBppD2dG++HJu8kbfFdlwuIxk2KHhgHQeNKcHhFkYGRzL2VJVMOAb0Co64wvds5CaYl9ZmBm4zuGDeaO2eI1XM4+rD/HmZyRF62SabgAe8TF43VuMutigJJMfbW2UK0azGLFbOfujnHD+GGBYmSmOQbUCOY99HYvswBQA6r9hrc2jtsUUxLVjxnZ4JnIrTwIVdWCTPtpJpvlA7m01/4tbUMyz9mv1jdN1jkiHQCJXXKg8bJ+aqW6rbwbn5yDSHBTcFXIegrhHGAjJOZI1pyP83Z3vMYTAJoo8V9IwyS+U6OVg78+IhSYHDYjRs8FrF8smHQ9h4qAYxp49rRP2d5uxLAuP72GvZaYvfeLOkMrcg0PkPuq7NsXhMFmiZa6PKBH1l+oKHI5DBLdZCvCwTPdXqmnz8gLzVRb/ixLTSdit2nrzt0x+5rDeZT+ac31NKNskQs6noKlQccyD3UxzfVZFmcbpmrfPsZD0Ve34xpKWk/E9Khn4A5yVPVq+dwnv0EyYecPqXGU7R8suTW0A6NJWweLI3iSGDlQXzMYsSWkSMhFTfyA2vTDt/3wXk+mVU6bRNkZvNnyVHYiA4tmnNwdh/RVsk/EgSerfTIf5VBmuAc2IKSeL5Nbrg3acgFj80mI8SWsc3dNAGCBLLMP89gH5UnLTKq78d9SxQH/g7DVnBh/qnBdw5CDrw/uMzcdXSxWqGIFcnQZt/1aOHxUg88MN2w+FPx/V75gy2wzEVe6G51PQIR2tZsxbv62HhgjwtlzrVREw/yzlaAiuXC26cnpvQzWXp2mOgihyPCWqq38nEadX2T7f1Y5zGxEGBaT//IcL/BsquAJX5EDbX8X1p8nLWR2yyjFRvqC/jssoCJBCDJOsZvoBfXqQSEKhNARH1YfueeKBslAwLi24/wAO1BHptlf1kQFNsOPlDvlYednrEp3a4SAz/G7LIVEsZBu0EKWZu/euB/XKdkGonP6t6lgEcCOw8mceuzvEVzyoPnMyzrqoNQXJb9C8ZCXSiedKiCgNwfNkpVlHbUgE2Rb9WFScOeEad+T+jT8XlSc8rcvkIuhAv/gxRu2eb2GonLTyokjcGF1EBpCJbhy2H3lhL0rdZIw1okA5pBg2oRfQceXTPzhuNKorTEF7t1UIgDqIo7/loxyTgbtKu29o9K9KujvCqUGyPY7upcfiZLNBVKh5uXAAZjQjhlhBp0ukmO4Avxu4xAVhCtnsOIA/tAm94U3HEuSr3wq+ZLo8pyoC9EB/q3pOzQRyCTkozmJwo1Ln/2xEbtNnS2S0NUIS3yz3/mBIdxONHxqP9FW+uoGI1F415lI1nZwK0SoPA0+flaokBGEoXgZnO4GOExU7VOjdPns59ekmDxqNhEHeAF5i5N/3W2NC1XGFjTpqLrnCECiwVkOTrLtp2ehUIaejOG6+1336YQSKMSsL4zhUjw6SQKryVRz5Ldn3R5/r8AOi02RJkQXPdvPsl/FMg96E/cJmIFLmEDzr1Gkh9G3zisG4pqM/MV6XIz+CtDUh6hmJB97VzN8jaPSS90vgDjvnaNlKky2/zIhE9ObugwrftI+Oi2a4VVaB/Mwn3VmaWjsU9NOf2usbcN/GLQMjvfeU/YvyEERPKw1leXZWWk1HXzY3P9MUq6MZq1hkEgFzds51mv8mnp1i4pQprPwY0TId1szXwe5TG+R5mMD76nGPQr7/EhQWksjsgGs7Zy5QYvMcGV5tcXJR+6hlHFIAc/M6XjkKYtwm673Bi+K1tNO9i1YBePTur4I+gMsOK7f7980mcJXhgdWdhNzUN2JvFsvXq3zZRG2V30sJtJYxj0aUv1u4/ppVHi1iHnTY3gDHsrQS8YwMX5XwZ2gcFYYe2wd7ZO9swr0gb8zf/fXx8QWKPXcK1UdJk3760B/TMlpWLCbhkqVoSTsOqzgkmFmFteCCTGhNyvFhw1RrTIWzRxq8Tj5FirvKvtkp2GAVhnZ7vnr71pyI0rKwQbVxKZuqM7GAvn2mRBj5p8djlHUsh/r/eBECptpbbjP5nFyuN4mvQLZCaxeTkDUzd/kNGLIzBFv1CElQO+xmf7Dzt1f7GM1Bh+wLDCJZlhcVDXbtPuGssdEie3lZNiWcXMTjZtWAT5MCmpq6JCRuFSHZYGKcSFZ9kOYJfEqLIcWdzpTA+Hmu+ktgSUwXVSwkaa/aHdZXh7IOyrudCBalCZpgXGRNbhN2XpEY60DXXO1Ci5ayZSoxtG0WRCC50+XtgWz7qgX5MRA5S+jzXCYy7O7Nn0ljVxiBxQNCZKZMTqi6mPfy2LZx76uyRUXHjnpJJEimflHDUxyX7fFg7iJvSrsZMH6Uv2xbfQNx5eCbx3oKycUrBY22KPmgfg/w07CDVsw6tb5VxPg5/X38cQtXI47U7MAGGjO28II12T+PjaXHlstPtkUQNn0DKkCYis+kVAkA1wyAJgYKLGnKD3nlVCarYqCkNIZbiVwO2Ydjl7N6iOtvvbAfuq7VKZLo0jEdw1YdsRaHcuJQulgb51JyELzYBkP1hd03IDcZfPg5XmNvYQSOINsCSn3BuLtkCPZRalK7+S97zxvJHiJCZJM9XP785NZ8B8fqDe/Ot0BS3PH1ptErwxBtpgfOj4d/41nrSjJQf9bV1kfdBHJxYbHILxOsWkZvoP/Z4Sl0Yx3bDjTF96xf96+6uIoQ351Ce6DeTwTnkPr20YwATlnhskWIddUohklNITCq/07zkiEc3B58uiBG6d9YAc4h/7s44FN2RG1UuZWeojrOZIhElvDP4KqHcOYbqqS95o7ilQH5ONJfy+aYiB+sPpn35HfHG3duLpNvBjXc+Klf4IKrFHjeVty02xPTNnbdL4gtkqPqMLhSgR/fDXzxJbSScqewiF1wdVoJ/fGL/nGWZfVlDHOQKD+/i/mqwXqvNqxtZeRHwoe/bodk66B9soOnZp36gdzVMRRQsQiBFf+HXjRcrRf9FsGghw3+qoN0JeeMvDJrkSBPsESDai/uVOzn2Ohge+UVdi050fdWpsjP0D/QuTdYs6QyI9xnhU8WT2+KBKzoZ7Bq8fOdKPeLulUhJjT34/EOnUloqus8+pzqNh/UdUOhgTlrbkuTfsaIYDm87u/GNIl3N53uaU8bgaBjpz0jdu1f59K4KFDtwUUeEUoeYx6DEkWKHdi7dtHhQF44lbysk7PqERrsuAQu2D5tDMl7kFoGdI8r/s8rMytJzYBU40wqeFvTl0ZVLdOB6Ya9E/f8VPbGx5MdpYqYMLMyB0QxVdnoJ+tgAQVWfH+jtOHD3PsjuT8dOTSrupuvHWRHQoGI1Qj1Hc6k+Mg84FAZ/gzl3SEzuGWZKFwuo2D3EiG95D2Z1szTqAuFRmT1nEh20tkC4ysmXx6JtN0taK1iRR62s2uNW5rSAvMEJ8yotr3UhJe22brlQn8Gvcq1I0aODaHJucQKVe6SXyfcDWODMw8xf+2C7Zx5a4Qlh7pJs550DictL4OxcDXKvVmLgVWRwb3moxv4kcxzm89EERJXCl7X/BziBkGQWOHPGF+6K5NFJYOFVv4+NyFq+OPMaSWZKoydplufY+CYyL63T8MCMmwqLTmAE8h0prhi174wnx7DHZWYuRJSYZ63uz97AGOzyI3aebclnud77znbZetbWUripe+AadLQeZPtWsF+FNiaXCy/98km137lWewyc7Gamai1Hd3Ls+KMMVh0R3NKTQ08TIClDfMKwUGKy/7YZlJHU3uW60X0r74Afh02v5MJgVOYkjmors6GAaDU7yKHydfkXYd6nEjYc76xws1LDLWCNNKBtUHNyLseOyNDgmHiJ41lXvq638RzDGis8WIniOb/pbTs+HsQVGPi6mxG+CU+oflMR6/qx3pVP+GPgqa0U0lo8MVmI1cBgSnPGgrh+J+m9TVg8nivua0EQP7xai44ruC5gsAVOp9bLsDXfHQujo6IpBmpfbbU8PDavZpTuJtmflVQuOImnRQ5kKoQz2NBFjdiHH3cF9QLgDP5vz/W5trCy22Uk+TCjXjdbCCHB3rJhKYTwiyQUf8xu6yTKtIwrbw4tzFgXDODmWYEnnpDupk3b4AP3qz4AZ2En5wi6aZV287AgCF4vH8TlWLni1E5Hd93vLxSYLBWSuj3eXGFtWyWpBkIeKu+YsBh19VeakA8OePM0ILu6dYYl9DNIK3kU1ybH+A5xYhFI/EqSX3vtNs6V5eQgxYLvu0hYFjiG+n8JzqLQVROiVa8XNQDYJtDAetPFSuEtGI3B8rnbbrNo9TJn/z3lRYq0ecBIe7a03vLESwhKOm1bGTk2kPMv/Sh9wyCOmIore7JhSFT9HIjonBfi+gcdDLfFt7dpShJmW1gkcXmitWwm1cC480CraHm/or2MHphB9Q1bmt/SBXFqXJdcv5GTt3IS2fRgqThhInCjRkh7Dk1iS2vMBLSGtRPppb4FEu762JehUMQxxLQre365CKoJGvJwVde91XQ+bDp5ZsMu/QHmLgITmwGXSpQFQlQBajqquxlwIOe2cyfezaSHIoRNLcwjW+epnmAtmmWA9KU29v/cA2iuWbj9ZV7HR4anhHkjbxnzKPHnIZ7Mm5wAf2o/3xUhnfH++quS20TdhalHgNhusidPKWyKWV8ZjFLgb1fX2r7ifLyUtxuKHHIfCWXQJ/DKeU61vxmPT34MTi2Q9r7/sK1CYuHVqMBsgtfenn31bUzCoyPN89KiO5wHveqnk3uyHnJSUBVTQQ3NyRPmeRKTQvWEBZ4QWcSgMyZF0RQgvUXRcp6KflF056fwahSioP622TdcTVYi4cAwSZLWDvfjoKFLMowPQpzn6ogXHc93fFA5NZmnwslSuesOyNI1EE3RM8kzat6thkmpOiGmm69Yn8yNuxz1YuuPWekoybkee106T9WTPXo44ea9E5QH2Ig6FZn716DBa2FyXHG1B+YfnmhbEpANlOi61BoGO4+G3WMJDokJXj9GhNsFqdaLjA1pkhLP+/mGCZoYsxNI+A+sMvWyoj+PMWeR8koRz+r9pNVEWT70WhiAkNTrojdr0sBLwxIM7D4zT+cVy96ZE+ABi9CqkM9VK7iOfkJVp7AqCqQ9EZ9emn8rB8zfoQZUBrVd6YS2AqiTFt0nJ8HfPGmnBWf3Xi5CgyWoLAmHJp/AfTdHB0+Ns5DlhL6UJ+O/6xys+CWVKtL9S8fVHkpwZZMJn6jVtiUTtXjywmiVXw9a6f/G7Qd4tZtcoS3aytxXYA9aGGmEeBobjiammhUaMDicH3nlOkDvvz19NqWOvHC2SMv7OQHtDIykYerPuoLz6SQNOBtw6oX2Sj3ZLITBDcWNx9CuZYYVaE+vleXnATrwn+PnuQ34jL52tp85aIOk684SUlQ8uyO2t+eIOHndZ3oxD+BcMAba/JVxRYUAUZoEw3D80WWOz0/ul+fYbhFnffx3PgOy2LLiu82D5FMSpi+Pd4EkIFTgfv7p/0vnX1wp0VpNzyXs/5S/4z0RFS21vIF67k1ERTfFuhLM/8fdbKognohMqTNF/+oqvXXLuJB7IHeDdn1X2eParLBEpz8y9CAN2g5VdE7EimekAOhkw+tTzqeEsgyQL4iVDnWrP/RcBd6CDm16/5t+I1SAxCn9wo8knzmpg8DYP8V/vHw8Stu7cliAt+G/VR4XPNZXWF2rZBeQO75os2jFJrbtkfhN9BzHT4HGgXTjyTy8NGsiQdeOw12GjYKCyxP+34kRHZqYsn0pFvVubB0+/emKRgiGXNRWQwMSvAB1xvTprD0Zyt08BjP/4W9HGNfNBcA0Qb9qF5hdQ4dDqpKAFLoIW2gFEVKOganw3M9/4WP9ckP0/g6kaJDRurtxNgT+PjvWYEWlFa80wKYCkd/0ZChV94njjGyg0t98Pz3AL2AFAhvRRiJwdfRcQqqhWkv/o6X45d5w1YLJOye3v7rgta7Ya0jAl/an42ng5Wz4S5we7n2+1W94JnpoGyV8WW2HYjKLkKmp4hBKlNtb5y4W1MrsG/wfq2N5Xrz2kqhdPQL/YoxgCQd6Y2KNkADVu7TxugQRWVuNL0BUj3JRFyWNeCmB74Wsz54OPnbq0GFFxzSkoiJ3Rtq8yEJMKvOMMalFKH7YFHKjb2nwrKVfuUUuRtTfJDiBuaEHHoX+MUrM2bBaAsSdnY5PjqcMBn/wwojQxzt2MoOCC3OEArr09ghhsj2M0mue5ntQcmcC1R/sK3zfShGJuazS+mJUeKxk5u36CYj8+SJCq8ZEv7bNf1+BywGeDQoTDGq6Yh1xW3Suwo2O/ykazTPK/TdVOICyiwK8MuQpK+FX3mqSPzxfLwFJ/iYDjs0WgW2kqXYgm+gkNToB5+jYH83Xlt0cbtEmkkBaVGlHz61rVuWzrK1yjn5nYHKvKCrBPPRth3AKDQQB83fdrbgIeIfB3iHya5NPpEyxbzmtN5Dnk7GqrQ4uu4h3QSoHU+74zs31cWqIx4SZ2bwWLvIxUtR6gufZhNZoMcmSB5z1O9TKvHMORD+VmuiqzsyJKA1OaApB+b9x6u9FTvUkalgl0r7raV+wRqimc2D7B1z/OiSagdd5UME2igLGUcgPlMSX1VsKQp/9yDiYei87KTBA2NPCUmgaLwVdvQFFFxWp2vGCY/KCUvxt3FOu6xIgwS4Vybvbj6feUCkrQPpO/wPHJPhAobSj/aa5YrUvjHMcQkDZwfc9mvghrk/PIPvcJa5InhVBfjh3Xr9vIvA4ac+m+pywS/EqkSX55xgiyj0TB1EE0NT3W2CPFdVD88P72SpdFzHS/6XsmbGtM8JE/m8eojzd4PM1bNADliZ+XG/9hbcKg6PftVKyKKt/8Bz4lGsHyT0VKj2vDGp/qDGBajSHrqzmpEjW5LXsb5kTV6HgbMcnPW2dzQju9N1sI/gPVlgGmk0bHKOX2Ws1q4aPizhcM/XiJ5EZNUK6bZNUeFaUJVTvGxglRUY7vdnoVOe0Raho3huh1XDeTlHpk/2gBjjhUQXe8FN5A4zcRqkNtKpSVq0xyw9j3yQlQxq/Lnqklpz8lXmzHkz8sX9HJjHwyn8UAjblvN0ZFIk4liejx0lVACoKvpsT9+pQoLY4weMHRzcuVC60DUFkaqLfclS4UJti5WK4FE3dYcc0OilX50uscLJomlR6pXriD6ELNNBWOSMt50CJjPkyt3Zn/xj1dlPVP1t6XExK+b3jMoULLPOrEGvjELfAMM1qcuBb0AijkIuFca8f8xapUlkvLjmmJW7RK94r8HaPzvmHHSqX9MXdivNI4A+JHy0VCe79UZZJvzMGzpnsj+Q6k3EItDBiA12fTMlSbEOMAWCdQq9TtyUiAaAqJozMzryEg0k+yVHqCc/DyJcCE2V4WXIhEnsOc5c8f4ChWfUaONhPPWogpDs/lyVCvp3m0NSfrAJKNiVy5aNC9gZ6c9BqwYgj/cDO3kdam6gCjhR+akALFYmt4ixHkWxKhDTGs5K+CwRiKJnvxP9dbxRPCBHbiVa8gsd2GuiNHZD98MNwXMdMC0MubVodd7dnyk3UQFfCIIL1osPxY0ZJ6DvZXwtZ2I0th6aqlTMULVo+lhSIU/5qO63lTSa3MgPRJEOi0AJ8/UlZuvgqLw9dyEDQoHTKWOsq+6fzoAyvIpv14fLaY+braPd6NkSaq0RClMenK1QLH87NZriUaeuCo6SZ7/CfUt2K6VOt0AjIK2jR0vorf6R8+TVzxZb+QdLimH9pU5tQc73xW93QRPMGy/gCK+R+YzmV4fHK52GWBEBL05EEoTY6OYG1WWji66dWnVTg0uPNw839p/yjLxkCfdTaH+v6hVUCd6HlROj6W8Mil6AYGC7NI2+qkZvJh/dAw/iQspXQNwwWHr6slLIp0hBHYTDh/J7Ba7ZR6cp3iU4bSXdmzhTahYDev4yKiIHyN64EANhI5OHYv1G4KXfIOvQizYWchPhzQg5eVGNMxsqrvWVxjtIbkKuHzE+IcA2NZ83GKz0D8z5zmgRnoJGKigseP9TmMS7BgAqtqyixA/SLc1KEUWrhXOQ6kA5ZQRazp3wwSa404cppBnfsS8EsEpbr/gXyW36cZ9pt1RhzyxGxDUmnZeBz/Uf1AP+gyLIg9x04u1fThm2w/H1ZXGvVqsO1VqutV5gUhFkdkwoCjzz3F3FUr1v0njGYT2mSZYvoF/fSd1W11c5VIhkEO06US5wYRmHVPYXmZnbK5YHQ8pkIDJ0yqssqFK34CuHE8RWb+Dr4omk779QOOcYomAMYQ9ILt2KUk2uNlahW/IjGtenuGLxb/t3aFoVz4oNwMZ7iyp4td8mdzgJAfnCcYtklubGAUB9k6bGC5DSkf5VFarnGEBWz600VGR8QywZ+jIYFZbtKT2QdDOYP6k7D8qVgEZByGmRedZRWaQDTggLyNgDD6pQwEeSs82+hTxWypqwU3zuAWqfwil+mytzVnKztyvMFJyJwPFaPr4Z3mTjyxCR2Jv674JVGGMUSWb0l+GtcYtd+NBGChwr8mB2hlyccget9liJhQEb0XgXfgVRlHlbO+jlZ9CcAew0Nw+tRcWgNnz/GL9Kur7RohRhaYZBBmQA6JhvzkazHRcdZDn0zDkfBmYP1PfQjP3d6qqx6gE7vrb3lBKEfK3Y/nCe4COdpr23oZCoIpssGXmqE8CGpO2bEwkSN6uqeqR4UtWR+xsgOzNeR49PTLJpFEAkXha5YaecJ8t/KR+eG7/HKV23zPZAMvHDC1rdxQ0l+6wlIgZbUybjBe6yusL7isRuuYYwg4+8+4lia2ox8RCdvmXlt00ZshBnAIfLkSwIqUzCcsD/d1ZG6Az728L4FCIqBKpbA6bzkJ87lYQpbaHpwPpqu3S0UqNDCwgg3q9MEn02X16E4xibz/rLx7NMDtHcwMOt9r1dVU6Hws9TvJVH7THrnSFESgN5eBy53Nq2Fdb8mySTxz5CitvVE+ZjHaYS3hq9Bax+uS7TxMIT4qJE7HGdsHM1/9uPNBylhP04Lck39JMe8v2dPOSJzyQoy8m/8Fc6h+X+5/mBVA9jAsG4vmx/KdUW+NXxgRt//SS2Ib7aGILsjOz+ZZQu/NMeuAsP1pFRTN90rqIVULbJ20ZJlrjoZD1VxHEoDFFGVWCVOT3jGK+vFD06gc3yDUSnZ7ZHjGmw4ZiAglY2nm78aUpXxI4BfUHqL6YQKFDCazUIryLi53RczlaTh0ry7WN4WpWK9sPJ0J49fu6RGUMYZd3+NrRvEdOrS5n+EJOTkr4lNzo8vawcYnR/n1Dq0rCHu5o2BGBEHABJbsFLi/mlWFO1MjpvUu6UPJjXlXse6MtBROT/mQfyegWGmFRQ7Q/O+rJp471+tQF10+bvkExfBoTQrewd5UwhAUODpyeW+aK6vx2AroUo2bGBZ/ZjcsJFfMYEMsm47LdQSq7T7peI2Ex+4/9oIAJGfhidbXA9UYPNhxigFTg83CETNYfYVkoambj3vv4MZNtE/wrIfTguBNqkQk9ebLPTmY2U4UCzbYqPKO5vjaZXeVksobDAJzhVjoU7p9TdFmNMyLyCQJryBSOcm0hFk/pcwcV15KZ/+IIqeQGPkTbiY1haWSnuQYBeyW5uSPHGtYw28cQS/v3rToNAUGVBSQ6zpBt4CHvaOfEJhuDJYZCcxvPeOStdCzaoSQn9nDe8wDc1MXrJ0+9N9TAKcS6u8ANLCLY4UfHLGf884/LFIn4OLOlRcNl7FS1IJgu1/vLm4INkgHt5ISp2vC3MFJHz1zJnopnKS1AgJtCmhJRZDaW6wis8CJ0KAJW0Yy0+kWI3lJ9N8yqJht68FMNVgkgaAGi5LuKmkZWm+ztKvf9gT8hJrXZkM/QdHI6wy9BqVeWa7g7ZM1YLbUv37YSnLmGsCrl/UVi/tG+fZbzY4bGye0zH08VQpGmyd/v++fS9EtasmbkQEIYnmLZLxO+tNHp3myIGwYBZVXjlWvrCiQcsP/Fu9l0HWmLBu3gvuJ4phtJsXXllJdM8iZIQR8Z6zEMs+cqVL7+TYhxDd0c0l4sbyIEw6N+V0v3ZbUlidyekdcz/aIomGdZtmdI+1QUrrHw7eDXT+G3zbTZMXxpEgJc4zY5bH5az8eHzwoo8QUleUKpVRrsErGmSF6GPJ2OltKYL6/C4zx4rHdcfsrQTcWBmrBWMMiFiU4NGtpYeACqYafRyu8j8x7ltp3nxVbsPO0MSoaR8tv61/q+YCqHX3h4vy4HzjCYEl+4ZDtj2+mawuj4J0rBpcDw+spzuCQ2khFbks09lPGxK8HYJl0Y/lNLUxGLZ+2h6+EFSaD22bYzF7dk/EhCWh6u/v1HUVKC/r/Wl6JHtd1V68J9zdOTgbvJuQug4r4vUV3JJolQQ5tecHKqcNoYjOIs6BZTlfB+yHGfGdxTKsGxbU/4taKuH8Qpd/M7fIG5zebrpiDHV97T4jiUNt7K64/u1e/+erXV34aOjfddcKNO76EzIf1pfD+KivBsRlzlsjj17aDPq/lnKHQCLsD+3TK021HNzhZyuwpLRKS3KE0XH/0TqUOr3VqLMcsSZM6349QJDznPG+sUqeS6wwMWp28TAoDKdmjzW6f+2au71HsOzLIeWencRa5JapKkVTYpvwMIC8u2L+/hYGJmk0588rq6Nnqe041NMzU6lj1K5KmSj0ZRiVpzu2FSTl4PBYHAuhe5dtwnRQwvvNqIELVxKMFWedxxB7UO4zpYRe2x0zH4X6pI2m4g6YdCs08vR9B7omy/goQUYbUZA+wJamq7/c0FhkNm74Mp05NSCK1Dcy1+9qp82p8XVkUB4+SsVRJ/Tqtn8v2esmemr7zjCfjLicMb05JqNoL6zzz0KaYkXeStBrF9+T7EbZTo2Fa/wS5NhJvRoZc8QUfS46HX8HIZ8A6LK8zKtROnakAnEEFoonVlvYR71xYuBAXbjtxfu/bteN8WkArB3//qp+3btpi2SIMyK6rX03iCLnzOd2OrPnD6xqgVT35e6NUMpN7EJSz0DRRzyze1J+Dx3cfx0M577W84qifD51mZG8VNbBf+5PxmGGrGOmkO+Q41YnCkx51D+X3CXsNAjaz/XfcPJUXJ00vaQyfYDtmFq4kU1ZHdnep48T4IskzPsYT9or3rd/ubiYLqeBqjnGbuNWb9ZdPDxkeBmJwYTjsTU+VugQmtz5+C3QBX0piVh3d7BK+Hk4mO3q8qJVQXeIqs4hKuRvBfIwwUyKg9W1x8dv+EwESuk2Bgs1+Zc3wzx4eGasynWs3V360wH3fKXZFTckeHZdgtzTqcQPC2hCHhSXyFMyljvrneLE+c+b/YQ0XcDBam1oAPzvKmmcgER6AqnyC32Ic4HMP4FQN2rh4Y2ntrawByV+9oq/Z8hdwQEPYRYiELBCnuGGXDQbl3ZLuUo0vfKU/AuMwYfNXmNM2vkn/GRrpc5WDP+MEL80tbJDZfDNBRfpfcvVpf75u0LrkIIjnU4adaolZWzB2yjIVwNrF7zF//n4N5xHeaGc7Vh1EYRdc0h2l23qFvLBNQ5kHbmX8Yta2Vj4DU6eBN3XyJBvJf9iL4x+hw1hx/7Ej5U8EZr/Qhgoni5r9PxBfU3fdvXICGW9DzST7GV141bvyMDXblFG5PizNjJUVAWNSxIAStz6+eDAbkYeAKTj6DIR6ysFvZAloBLCgSdMFd3ol/WXDQh3BbBtLqO9hp08BfumZjLpTJGRAIHzDizXZfhbgqejNSS27BIXQLV0muwzgXGqYt9McSvtLWo1Fos3k6Nu2qGyFftqQyDz0/bmgvtZyiFce/SLYnjt2Q9BnlmUVBWOtbDPvUgOSizvJDhdiSkbLLP96MJ7dKO3eUK2nZnpb4s4b2XGF4T6gC4qo9TDv9z2SY4Rffb/RjPs76P0YiWADpPB/nQjC2tDRlxt4sdNCIjmMsLgU+cr8cpyaMSYI9maP4HHww2jTPkGKvF6H6+DFAF+jAZKT9oi23gpZ2zavE0xXPkF7a2FTNJ3bwxvsJV+o0fXZAkmouYq6B2+6ccHhnUIeL10QtZaPoZPJB7/Xry/2Nv+JJFmQ/p2NSiO5bYGA8ej1vh5QlWhaX3JMs5gMBnyyIfXIMf4im0WEUnCPAJzq9q04Tmxzy7nGKKEf31kAp6IFk95aj0AogL7iljLVJlOXNvV7BwZn4dKfuZweSEZBqy+Mvual0TVDHiwHuIuXbvaw+OkU7aeAfck0Hc6H0jgt9g6Rxb6dAuaiKEN1cUYtD88y0b9Arq1q6ML9B20/FunTnZNF+IHgsg641FfllDFpQ+dqrIPKQ8IkLx/2ppx0ivQSrehNaf5dwtBjnPHroRGzG/RWOdiW0COPzepxIqcsWjhfmBXSUD7YCvPm/qTGcSnhcriFKew6a5s0AgK03I1gEifX6y90cJBY9REbQ7yW/XB+zAXN1XZQVEs7r+0ajtx8KvVBKJksKj5YFGdhEennMbwgCJJIMdt/pJD6FIcNVegt2LiQS70DAJeiNNG86dQVNYNZmYEfo8oa002xKLh1+rHlBX40iY8Wlv7FqswQFktpyLn5oSdo1jBRz8V3aRIOmhSnrs2wxGwGBEVEXvRm8RZVvSQ0xlKMVWs9Y7nnmJ9jEVuDL08D2ES3plzvCNP3FpKQeSknFeVBXv5T1Yk0/X5vdj1J1LYa6Ffxxrv90ObLHARkCI+tz6+0i5cZTinvgIYLMVnV/OL+m4RCsTy/+9VQPsYv6X2qSSlVdQ3KM1SOntMNUBpb4C0MsDh10xHQ0cbJK0gsR6X93ru63BDYbRZmPISt1casVwVVE7+u3l55XJGJ0Ev6S+2zpNqOAH66RuzpVskXE6X8x6wHOfp5PAI/7YG3Zozh1U27IXGEEKIm13Rt/nTE3pKWA7i1NFdVQKQ0CNdqEsBkjiuM41dd5rIbR4DMnoDva07v1esxYBGU4JWJUJQyejYbI9p7pqjrpHZUNlz2exX1lTAks+WxY6CExoPlSlNNv6AIsE0VdPmHOj4m0a8bigDelTpIL1WoePLhblmhRlkPDKiZvkzz6eG8vLeJjCGJL1+VFa4QREBVyuhcpZm1ygJm9kuQ+8v4yEMw0VO+TKee6sMFRVc/kS4IirJupnw48LoR2aRk+GuDBZ25xnKFxdSYqZqvWlEcemsbzl7wvQg5z2xKxEUsquyGziyzd/X+XFl/ct9KRLzyyb6ComIL8Wam9x6LPNZXvhO0QQZmQ8T2MFjmRJ42WyRzfyLGkJKft94uO0Yy6Fflo3AoIEon3XBygpi3Je932ToU5EKoikvqkeLFACpsBN5dseemiMdHxOJKrVJDdTS0qCcTzPCyz506oyENFdelskwdghmUnWyXK2WeJX2CBXudNUBON/i8kMdtJm52REvmGqVmxe5aricuTCGLbgZtYvigT++E7xltEh/ZgUoMP+d8vaPU/HdhZaUjsgQ8OoqZeezvNR2JFm2on+IliVyYQ/58LmZ2stgKoBbs4SllwiTpNRw7ecL2WR8bbg05aTN00C8aGWtReWSsYsirJ0K0I97flI2gJRRN717wESryWahXUAFZAdyD08j9SIZQm+wq5GkoUkK5cQ3wk1x01x4fKLPgPIj6D6lZiylqvWGtl6KxCfoSQXlNZIHeDsrIRqhINxdrCinM0iMMkveNxhqrEzhnBn8F6nXVY5zUDLzOXpp338I2HycFa2pueObEof3HQgFEMnHS3/CDKwJAyYl3HyA4X5vXUE8MMa79gYELseTf0IEUJRsfSa873vl6n29lFq+GCqF1I+mB5PSyLFvgHv6hG5Hd14PAHTKhY+xzCgOwwRZxygPwNET0UiO9ynH0p3j7GAFEs+VSjl4ArhHJbySohRLfm6B7FxxYJLJxJlQr5UdD+5Vs0nM6CehSZZNYw4FzcpYoL6nS+wGGSNKLVLXgbgvzAbT4B1J4GMS16IKMlo5S/dzM/NM4NI+a1Fuk4qwaewoHqGp78vgp+SkuhLyAVhI2Or50Id4LlHwRon9o7JT3D2pibchFvFi2VTEx6cLX/qorW2YGSSmnu9+M8teW9DIRH1TfabuDIuLk16NFz3kNr5QLPGAd0JzN2IYFA140yqfi9LfBcZI3aUK/Gt2bfMMk8eqttN8c92OmUYKUaHbB9C9cpEwaOYs49MztuGtI0VMqDDHN8HiRP55BpRIJtIWbSyi0/LOC94XhzqGVyuzaVaBfg0f++sV8wy7ytxlQYA9w1ejE0XaCkpM9zbOrymf4OrEaIyQX84Z9e6wQ1czIvOihnSaq/fcFdkxJcMzE2kWcARwWT1U80dW6B+v6HdclWMyMWLYr49iKWrhm7o1yumJKxVGiv1Rx3Tw61jrh+vuNjikpFRxa0F9G7ZWs57nuhaIeT8ZRjYzuyq4WZBEXs4CyfvmZxGcS4/G2aWon2O/UkjqrfdbBUF0yavSPdNJacaaZxFQNejGDPK7SCF82XxiahbNpwFs/t07gbCJkDUvvKjqaYv1SNJBa21RKsOuGJNKO/F6HTjc1Q5t8lqLL4e83gWTT4aubYGtE+D4e9zdPPo2R3dvG7bDrCQosp62YhTaV3B/kEQGqtzvu59fbgA6lFyGe7urhYr3TWCBFYBmrEpB78fWnXUEd1z0LSzMcWL6vuh4CJYR0tg1jX4H0wkw9mkbM07MXopLJ2Rt7/aL3Hl3MjO8h/1lqNlK74QTbgkurmgd23XflEcMhjO52Y/Wsz+CqwkBCDN8SUcd0hvJ6srikURdDKw75ZZMyms8NdzvzfsXreeCzpVaPKbkgWo0BlD+qWqaXziVa7YTSezNkCD1UBphMwE3IFwG3+Oja0AILbwR+VMjirrIkRPt+DMtp+OKLpkiE15AVv3jn19brZGZkhhAsuT2sTiWSjLvxJkMICAGdQY6CcJ1bmQsycrXCCxoxrME8B5k7aYQkl31h4kmnvmUA1Uo5bGEJkzebQNuMeVIRwKr7shM3Y3iowzuO8Jm833ALhjeDbR9i+ajGdiv5nuQcBDW0PZ0CB/GHvnmE702e3iEmWKin/StmkbfvsVh9mXnjLzZCRfht3g5Fu6OpDSsq1DSVUie4hNThGTSTWkOhTKbARv54Bxp1m/BqW0CfvfUJMQYci+HzQBrAw7lHJI8klNzq1wbwtxf0zzTFIpYQcsU3ddDWDMuciKmN+BHJ47B6FkgX4uR5QSWzLqgN2wQK1aLp2hgMJGqMII4rLK56VcDk89QQhw6cy8PCM19olNpuDwdrQFvP+77wiyyKx8Z4MVJNxV5vJWOwvF+aDouZMW5HNno5d960qcPPO89qYm6Zh6UO7MyFx272aWYtu/0+UZ6eThOP3s/uMGRarrYNGVN2bkl0VbM7ZArP2AnCQLuPoIbkry4nTS/RsIdFmPg98zeYI4R0RY41FQsBym1OXnJcHtmKPjfEXuujVQGfCPrCZsaT+vFbMFWIvUy7OxquIvdi2DVp3+q3E3NGG06d/cz77wgHGWrfcy5LJIzCMZHkk6m2QnZCXYVXwMsVhJI9nJcgG/CrU5lgDb/DlVEsXG06BHIuqVfnTyLdAQZYmJlEEk43pdgF69V12XC+sB9W5Tfm3jPwiHn/VmGszkYx+Er49CLbyk3hDBSKuzDj+nzCo77ZO40EIP4ZROdSwWlf5S8wfYcAzjNdj/aZ8uknw3tur126RfCzMA+cUo5mPaZL9cVp33X0mRTUIS2vgtwDRgsSSX5xcJUWR8gZbdeqyqQEEAeDu3+BMlrgYP2SH/le2u1yfVFn5JX9VQ04X9mmABR/KOd3rAYqR+OQwLWao9MXVS1y+0OKo0FlXuirKuPaY1BQbY3Vo05Gf/+N+u4rDcFBQqiCrYhgRAEjvVW9eNCaOsukcJWEaDuo/pWCYGJLadm4ssTCPvVVEJNBfVXAcTIxH4EFtWFMJUy5of50QNXNZBl+oRuFIkdbt04DeU6j2A3vzzP+IkMahLD6zBVJv+xRBIc5fODvnJMmJRMI8kcyMFqxpeWZAHxC68tGFNyl6yyGN95SwNYXwDSIQCPlL9bzjZaWNWvs5puiP2lbEBlDw5vCHtVmb/sD8QBgOhRassChwM5o5g4lhlD4u86wmdmVmhmEXnCyLeQJ0rRtqYIWRhg72ieDnqmPvOkDTWtKR38TeJwrK/7IRYfbNspygrU6yV9YtJyw3I3uEkDgbPrpcNUpISYvzv3beFg3ZN+swedqf3IVKkcdiAezu/KpHGHPyvX9oT6qzTS342/DenW9ctM197UfFl4rk21KxSma1KnLIWlGGasMF4+G3dxTnqBscul4CqNda6Qy8ita7HCzKlYa86yljm+HQA2B5ArJoZy4LNxeT9izFuQhEoEhUTNJQj2pCc/O44h8GpQX6XgpaAvAQJLVNq0yXGFbzb3O54XQ6sm557+lT3A+VWPyCJn1MLbsssHIdFhJcMtBFQYi0bS+exQ4Rq74xNE2CIRSzi3nj5TNy2AoO0gdyBC0/2iH67UB581jmM92OHqgD4EzAzyxDauPnlIdZu0nWwB4dtxWN+meq/faIuQpK2hoRP/ULwIJ9r3xyxtXxfFwJ3YquXldSEnxoPiYD85u0OAHvKOG6+3eBraUiOgvdfp1EjiroeSLLFutuPPV9XqhAReYPaRy87OAkV5tzSqvyfufCvOMTtkpxApWsJ9n+cNM2uBWu4lj1oDjGasCfCt6cfgCzh6UbZanbL/qCgf/iHjKYaavIiRLJrU2BuzdsP97XHkXLYbbfsHVTlXSohKOXOJ+3LiR6ix9UFLo9qieejYk+P4e5wC64jGQLSxJzYt3cErx1Rtc2+xlJaEBynLN4hLl/qOrgBM7a+yswC0Mh2OieA4SR6MfM9WK/FOWbVyoUBIUAKOhhIZp2LOgukk0/DInn7sF7dRP6Nw77MaAcYg6k0gdjQN9/1wtGVSBm+6LwkI+xfcK9l+JiWepXul+/EEdV7XXp/9lUsW4RQmIkda9H38FJj3EYJTrG4hEU9YWtNd2lKI1683cXFVzSMkh+2nuu9K0JUBoAnrYkKVZpAKF9G7y5n/KMZrP2xPuUFSOaruqriffSEX9Euj/k5dgewEyQCFTif83LhkIjt5qJ1LyI4ynIznWl1SoAdecEp+I5WmKBB2fr5yw33NX94q6HIP0jW3Np2E0r1f7fUjqdxV+iCRULU+yAwPXFvTL7HqfFLj+wCfIbOg+nsW03rGTf1haLvAZA/nC52pSDnC4f0qOiA6WtK20BldZUaA6GO3m5ZOCGyemGK4a12hM3BXnbladA/yTRV+pH7IiT/9WOijGGNXzV+K4wmdmRjU3It+QwUCRat2mGkEHhOcQY06pWeQqBGjHkWcceX8/drkk+tYysHMXVk8hLhLGjUVgivK1Ra4K+RtUcZO5fkVkWQ4W8fyo2tafhGEDSsflUH7yj8wsATBE9YpskR+r7Ac8xqdxtEAfRioGXSprjbLI2DAZZz9HAYR7rUHzvh/UPpFvrLbd/hFf7sF3RimWNpiGsQRZ11RqfZkck9IJu/FPU2DYr/HWUdskJHuLufXCvDbKn0F9sM31Hn3zIuAMTUc+tQsO9ll6jnNnW9Ulo7d32jEQMqJIrWQL5+Se0a8lKRp+XhYp4IfyUaTRC58vFEjKupeFEpU4EOp1AjeALc7vZV0ovza8QSl3ru6xFpY0/ckElMOChkhLWSDHLCKaFK/qC/SIfT50GJZnkCr5SgXZRddXq8Gc6XNjIzSdCF+9YlUFKMiri/sn1Gp/dEMhARah97GidLqitLNBlF+H8XoQmdrM3GXBSCN6izNn2ON0OzpCxOuM917OZCw2ZC0DSvNuTOFCGGYf1TYgUbgK2KKc4zm/25dz3GhVpFqs6x4yhZBbiy/6FD1vXW/aIcDiSUoIhwrUtxuGGZijb47Jz8JfUTblzx4eNPbXeYpygkQo1xXonjeouTuJvAH/zH+FK50zOLAtbN9AO6xjfX09CsjKitMVlHWmmQybLoBHBPkC5IbAZxvs3cH1VAcy2X90WL6y/0SXNsGeLBdr1OWVuYg+/wUNiR7QnP2ec7jNrZZOosT6Olwn02Dh6zSwKoDnMFLfk7lBO0p9mWjex7gEFXNfxFO19qmaoISUZEgdTuy7sHgrD/36o3XeFdzLFoFnOJa4yaENBXdTSmVZacz+5IGdVkEgjQt/TxuhNGHGtQuzNDfM4iNZ28Ly9S9WkUGMNAfDRLr4ipZkJxUA6HnlOi4Yb04/Ze8rB+HEXpDGC5Jpr4fN62LQh8o6kxknE1P5/rNmz43jehFlRUvCyNi3Y5St7lC7a2ogCt3Za6M7AshQdbVV2+R2DuuiLEJz0MLhnn/1/F2Z2U3h560PrnhR0Gc/5GW5DwO/DGrR/4PvL046BKjUp1lfrtKfE4osRTS9/oB0GrNW3cYgvhU8ld61sHhKOf4P94t4n7h9zdRXDaFv4ORPHokkY+NA9QA49RmsGMfJLu1/RXuluq0J4fsUUBoa9dL9T0yDJXvGtuoln8aYrNzoapa7E8cR73/wX6KwBPpwCUUlxsBtOj0rnca7zu5FqJC5W0U8Yt529SAI0S6nmWnS8zguQLRzf/gRLaqSQ6E9T6Q84u1cs56dzBMv2eBG+zAKw2V0x1NJX1gC8M2MYZpScdXEKPG1442UFWTEUlkM9OjbR4FurtJNV4IqEu1htlgltESO0SeZMHZ1JM7bNtYegevwPSCmW+S8uEGj7FTSSV0HbDg1rOnt4Ws8DxqN2T/HOXNd5NGboZ8VTSD6g6rLWcoWOwsyeG08GPG6KHPiLRunEdTPNmY74ObRGT1VCHP7nmBYmjnH+kqK6rDyrEoNjdqc8uG8yZrHWBXU9weqD5rpQ6S/annq7P/GiYepA2ZDdJA/GbdxpHYatPgkXt5sop564gVHZamW6cq/cdADaLCXWt1WgK7y11WaQR90YOen8BECQ56pmJbLvzzfWBhUUJP+dAEEK4o4wZv2+IBAFEdNkNF3mKntsLE5PDLA/IEiV0rziyORzLJsoxRMCQV/HlpCkXsaizcHT/vxU9iadf2hOkKehGum3973fFs7uRlqxz/oDerFL0617PqG+VYIxjeRb2IRLZJGH8vp8ITzF7U7HUg8Crs3WpVY5r8wxn8tzGvUUwY5csVu15Vmm1xcs0UL/lUCkrOXdLtlaa4pHLeQgpd/vu1ZzjMOcgzfQaIwiZK+fMZjRLAHUf83TSCOkovb3xPkD0jElmb4TBqFrwn8G4KWr+RM58qhCnlVimQ390m8YLz+fNHbBRDs7GJgHSK+v5Z9cwZq4glnR2eTjnqTy8Wo7BEg24CL/RT1AKzOIE7muo8oegzn8R6qab08LzTcbb0ippsScfjQoJhsr4jKG2pMVczpCYqptZcGD5rxTHFbL3+NDnEUptRMyARhF2FMiM7pgaB/IpAna1AHa5EPt7oBdzMGg7kOdSOpxrPXbdP3l/+QCfCLMpCsxFd3VAxA/IPVvK8JaenCYCadhyZ6rJeGxTUh11+OOAjrXIJxb/EbIy8rv6h7hywPp9ZhPCcgt9BN808JhGIaKwtL85jO5nipQyAF690xJ9A2DMuCx55TSG88fN6rqBMYDI+I+DtFmoAqJB27B/xxN9xMLnQwLcLCHOx4GIFCq3/6i7gwJePjoG/HKNb0XjhuEQmYFzTgtt/uIo1bBX4C+y1jrb+R0mRj+RyaDkRus8W4WW73qbcjpjIh2tGUY6KJyhEaKiK+LHG5euQeYZO4zXoKbZOWiJTvJNNVrWugpXkIIIE4zK/g4JKATQjtaC1qbJ6khaJHxOTS2goU5zGyjmaPKvVPrBh27E7E2iZ/6omwpBARV/9EKeU1m4Msz8Q7y3MzEF0C8VIIqAxB+Fk8qG970lhV/ZIX6CsxiHqybemqil3Qv/cWKm96fPoMJWSA1dcF03dSwSyNMdvKKBCYVYLuqr2pISKPaNRJJw2R43RNE6avh/TNA1tGJ/ilW/e4LbOvIh7cS2OsbjyXcD6WS0DYaDa+og0lSxehZQiDSt2fVdtF+DO7/cEUAM3uju47Fl17rUPkRPaheA+6/jpSYK5Nh6rSwO8Pbi1y4/L0L5SStva0NcscpH0pw/3Y9+Eqw1SDVvRn2r2d8vRC6YhQywdhKWraKGBMILqjiU2l5d3jb1tnQIwi95QiTJW7MAjJD4Plr9FGRGlM4NQyAiG8wSAKUbRCpmxE+zk9YhXjiC/Rbt983pV0VzovJW+90dH65IOb2VS+Wk+MpsRgZ86uEuxeGPyB++07HlAwqFjq0sm5Lvom/rcHSaLduJrDdabujYJRWbbY2QZptvGwTHAiaqsAafE9NQa2oq6hV8+E2YRbdEcrirxyx9JVWpti7CsFfA/egMevH0MR40/X1jQzMYbw6mr01MI833RiE3EuU79cpspC8tuN6QxFB7ExHF8yrFQ4vRniEkTgKc8kT2tC2HgNJJ+l/FwYXky6qbHj1cMtBGVOw3SFMHn5l5odYVrLqhL6R4DujKq/CEsEj742QjUogvrSb9DOh1Mm5Z7n6MI+YHii3bWp2abi25FJIiX3GM/137MQVr4wwQ5IQETnYx0CoXX1nLeqLjQ2VlOulhy58iVxN5d0Q2TEV6MPr+wA6lluGEC5890db42elDUvTbbMcjHGrT7WA4eEhNLqVT35NhLruSPkwg1UCAUz94Dj23i6dqS1MPh40Oyi0W+wfoWYXIw+siweU3qKdQM/IWLUwDjgMQuiK+CTyRgR/Cg+XmfazCLiF1JChK7C2x+ROCl4t2WjYngGRxBWRQqqrNqx1EesLx8Z8GOimBJK3Ip3O0TWp1z6fhibUBvCtBpCBH7Wz0MrsYEtW/6gd/rLbB2IcMxOrxgW5u+/ZBOjd+9Zg9SRf7ln5tqXgM7wZE2rj4u7BOezWvuyca2TpJkQOR8U/bR+LRjmN6RAS7MCfYSPtJWSbZYnQL8vGmJb39SyiYiER2Via1nlShjJEe3JgCwTOTiIQJ5h+NQeEs7qWkpIDJiQHb7VwcR7T1gLGhKAqUT5DPO5zvGPny/DOh+Lo+Xhxf5wTkF5p5yY0vM1gw2UZQ2nhCedQ+PBxACaAeuBYTyBs9aNWvYATPBLUtXJ3H/+rMIUQ3Xz5MJKdV6OhLEEK73rb9hfjPlA0gKO4j120U6VHh4AJvL3WqjaY/KCbwpCzUCADZmnJdpD4p4U5ry6/YuhcWXcVV4dFm5J8qADBWw9jPITjUtkf0lhIJkzhXLTcXQBZaaunvCCxyWh6ifYzNTTCGJcUD6DyfGam2zj4qdBy7DwBaL2S2IxicF7F2ubPDvx0+DEQVydAIF4Utn+/niyxDQpGlaaG5eRQcfYEHaZeHBOfZ8x6KnSsZnB8YZbLVBcEF3Mv/87cj4r/BYDYAaUWrrm/rWPImSVpvPlB3xQvVG305B+bCj4kIW4ZWzFnX7/nApDibPZxncAV04laDsD872g54z55DZylkUKHXF7Y5iFwsc0HDovYpJ1P+XIAb4pKZnw/e2BrTZn6jCeAAvAt6Z8EdXqS/KoRwK37xhZL7w17n2PYpqnoCtRAvnU/CocUq+el+PFEwM2GkhLBAJXvVbqxBMfPWlA8XMNY1+dfsV9Uy0C+WgSzcXw/ylN23DlELK9DPZ1nzFCvyDWygh1ABv0LXhuVuDEraYOrX0J/NpbYoxjl/mfncXN1DorfumMjOo/dWEk/OvdZ8w/66CtISpGM2htGRpT929qEz+kRM+2XpAqcSS9GOrLWVVUVIm3Ez/yIqAWm019Td/ytbE6eeYJaY+mJpelcp0h+4Y1hmcF9J6cZQEJi7foY8n1psVTCzE0QYMX+ScYxKxb/bU9eproUaSNTxHeNhomtba4y/CfLAZYXndn5ndeIjFIsRWRpwX3HwrIsKxRgd52tRs/iun5uy44w8u2wZgayiPbOTWGXUn/BDqak5EZebXbdQHyE0yEhUO5HcDnE6xlAuZFDSKLDTTZz9bWcfe1wy8KhSOwh15cBRibt+faUQgl7/5na6Nl5d1o7iUWTjOhjQa4z2Pha1PNGSn0hZFeICMKGtHJ6EGQbB+HF6+M2e8YSQjJ2cnG2SVpdzXlnkzxYqwXv0s0WM8nggSh7Viq5joXNiF3RJ0A9637p1HFJd2I7GrQ4ZTOWRi8jcZaL/25Pox9feMT7VDPV6TT++0Ri3a1aLS8IABZh2dWfxnBmXDWPdvrxmBiF3eePVqd2ZM5bI9YAN23/3qVLElDeD61xvgRdjkXkl2tqif3zsX1gGp9mzEm6suh1kWL75XC2kXlrCreiNi2pfI+iWVFJDXPd3MBNp7VSAZRp1jpt3ug1pQEM470lZXwotpDljklvGxuNeKwTuKNJw0EK74nc0d851QXL9P4pxZdM7pkmbA7IU2S2Xa/AJRP2VOz3Kyp9oW6FgoQi4noNkoHeNnprbQod8n+dQSSbMzNRZIuL/riHaxoOHkaGYwROCZwqcbK1tUnU2Qt1J+3UTvklj6wOD/d8lrZG7ucjZiCyHxK5XVtzq9lDJ4N1FvARCTUfnLeOLc5bmrtGvb8mmsr0lDDyR5607k41wzglZH1fExfmsXrEjiNLSzSKGb7FVusl07/BgeCclDsQkds2G654GVeUpX7UHaqQBEmJsIyvfxvz85+WyRaoYuQfSH9WpJLeUoXpUt7+Crnl1Jqz+eARyCmzL59OUUBwBuoQAl5VddIrfG6xvDA/RZBOV5AfwjOrJ2xRo4N42rCSFCcnOY7xfewl6tVLetiM2tGLqRLc9k/owyHriX1A9BnluzfDc5xdEUKyuwzWPG+tZGNDV0WLl1JyHPflzcBpj92G0AR0lGaMSZuKui5/LUMn69X9wPKc6FVkNEHEjHjQKPQjuFCokjN+N/6DlMscpE48IhHIa0Ghrc36GwGEiPRymXWKD/di92yfjZjDM3fdHBdwSxJRSBVKHSwh6Ey1/zWZRZ4kk+KMS8HuroIw1UPa+PDVpsSIKvmqZnZisbfHFWNW/dl9n5+wM4VIzhmrETz3k9WU3s+z84SHh2f7dGT/G5WvoisBYAgwm+pqFS0A8xyhy4PiKfgS+6TgnQD5hDEerpzgFSaMcw3yvDZ0+xfL0yznf0uY8N6APiqHdoJZOWqTPnTIbeBLc5dvFdh+mvD+sDtl8BAWzYR7QkSgnx30Ru7TH5a/g4byacurCNvG0lTgpkj9w42uqBp1zMsKr2riOCQwfCRKkuSX9CGADOYGqCHh1JUsk6RwvI9OvM9fCJoL7Sap8NUQ7mAvdB2ougA01NdqxVo8NeGta0R9C7QybiN4uAtDxw2zLTG9+0we68JkqZrj9tJilUV/f4wOLc83GfstXOVF2bAJ6zf56YworQQEDj6QnC+lqyMkGAr0QuAikm0jqS7fy9bYSBz5hekPILc94b8aUau3Kt69QI1kFEmcb19aFQA4bSegA9/hFi61RDIVQ7iOBqViYdGaK8d3zH5qWIjed0hR9e6o4zELdXWhOVOcPCmZIYYXvgUsAyGUoCszsCiTdwOaPEL2kRnYh0mNSZGb6/kr8XfbyUdbEZ7mDBYy0yTDxhkrpIoJmVutN6FHk/E4cTEolaGnv7x+QxQIKZus8IEygpdtBDxj+lC5M6HaJ313pLDYbjpCA+oYl11ISRJ/fB2oIdDBHFLefQmF1uHk7vtSmIyI7Q9HG0qxu8QRWecP8ipKR1o4bGrAhR2KcGEDE6k8r2F7N9lNUZCswXi/EXaOlPb9fdsaw1Sspku1xrmyADIImEs//XiPqI3Jl8BlrsHf1mAVCBmlqE7usMbDEpilt45ia5CXzVqlIZ95Fesu48LEATS3dyXVEjwQAqVbFBttbLfXvX4LhaGKv6P3XBsKWvqEFfq1rPYdohHtQH03ehlVMpZ/BRCBFV6dffGCrIa7OngRAbORd6wsIcR/gQSxhfrfHFmb9Ws3Pk/SikwIvAIYljNbXbvIpKTROSiPcmBDp4hxLkrjR+MfBFZLV5I4usLY6WYmjhT2kzW9XAxxLYCELLIf6lg6p/GFgpoRTm+yQ6PYtmKVvdTHyBxv28y3vTiy+reYBZqmC7x0TDasiMCcA+TxdKgDY4s61MpZyI1+RUzeMfx1qh9MBXg1tI/HSKpcUj7+qTrwp35J3ezefo6UZiEWMPBtx0/tJyaej7NUmUHVRBJfB1q0bsw4yHfui2ZOPNh/6R2/I0j09t9QGeRxpuJzB6DNbaPTOmER6WTXYEGXq7DhzkvCP247uSz6r7MfaasDs419fVF4RAt4XoxkFRmk3sjrhpNSeuDoG5RpjE4pI3rH/ESPaF6RIIJBiAbVU/ct/nKrDmBQPBYlNob0WmW07GhOvvz0m/BXTsPB8qA8Iesm6PsDuOLEEm5+jbniDFyXfndwIXHgWBB1GCyGV52MU+5iXguncQS8T+WyxaPDqCCXMjwPJxGObdF8mBkG2+SpqaBQkeN+1IL8Cbb72d3ySQUR/uO+N9v36KAiKVEPx8EERU0vfKi53JWN50+LSYqgHmF0UrnnHCNpcwfX8ezokGL4sK/rgFZlXnIqg6a8EJh7DfMOwMgTwRjjZ+TrXsj7SA6EaMRroFgxXRIOGDPYZgkadllrCosfuVZqNQwAY1cDJzuD4ocR7PgZYXbCA3g9Jd1PRx7PyRTNad56qFMVIv/9AYYd32opL/KQOuEa2LIoyMUHWsHVeJEgDnTAizkdfigKSmZVUDrztoGXA+B+9B+MYT2q5BETXJUKRLiEw3upTpXnlh7hkEk8/0D3rV1lUxxSlnDzLfFArxdnXRhBNu085RxiTwTISjItGPuj0MQknBfLTi9AeLTT9QUKRG7bxHm7P2Kei6fVAeNBP31q/OVsTuBJZfKaxLodsCxObxFdyJNLV2tAt+2SCAO5/VWcDOd7Or0wzbVGwbXJr73+/PYn3VfNQ4CSxdqgXNPWDqh9ZFVRQbSeb+bFmOpdkO7C70y6dTSHVuHlIY33/KV1QHDJ226atG4ltS4fk0ZNDrmPZ2Lps6qyMYO+Wkmsyw/ECuxfXcZ0zM7vmLjkk/LsX/XG0vaL3KZb2C51I5TVf8fBJmMxHHzKvaXDwSTGiya0f8ZZ3olqbqcd2cjXM0jicXlX0cJsaB81POyuItwEiYZwsHn4gymrnlD0mfAro2YoSC7KxDdL1DQVO+0a7fN1fLkv8ElaXx46Z8EGJ/W6akIr6uEuiFIQB9fHujgNzIzAgaDEYVITJJO5XQkyimdgaTBvra1hUbw4jb8imqVpd7G9dSoQVNPatqBlbm7NLsdI/einfpw6HdFlo9bpLb/wBxf2BGK/YWhn6LhzEvBuRuBZJTDv7HV9WfnA2SyT3HV/F6f+23aOYC8rxO7QQ1FI4/0m/OAHdCwYedzx6F6TIlSh668B+Id3ZxNP3V+Z82Tt/AHYSzDsxyYC8mxyk+Za4Q6u8y70AKpUm1NPP2WMeSHfqCc5mUcG67RR+sJWZg7P5iG4FPnFmWKv1nwwk+fM0IIA5p7xmHnj1zbj89sN0hc81tzI6enBjIyPd6P5GXzsmp9IRHKS506SAEK7IxfjQLxkNK1x+M8YAYLrD1qWXqo03kTvXgYllmtbguZX1FQGpXYjbZzgqSLxcXTKqQ/GhYqBJzZtvPaYGODBTozt0Rw6/vP+hTUJGOAYcEWWr5Mqy4792lLWmElkf2k2HiF5268DSkEL2oQl+VXl2NXgbfa8xxQoI7lpuNkURcA/pNz/go3LD+w41q4eQy20ecjCwekr0XfODump0XPUm2vvNfk4P/tAVA2PLhl21zoFOrSKjd6D1AiMtz/f41uWlBWCDDY4tDRMhyGsls4GW7P8b0/dGx6VTgC6oCCWxMyJyOgl5RPaFDE/EzGGGL9XUm5X9L3crn0DvEELm/Vx6HwlGWtnfZK7dA8/zJkr9b7PBgLeFlmXyfUBxZHF8kxgW5tcxvkEz0roS70jNLvk3QNCTUIwCHnqk5NRDEaewDCzjTR5lKzNzx1RHHJNiZZJ0lXrAsSM03iKPyYNdJfMwUAvRlKP49yIx7XS9cvseBWVvGNAc2I0PmR6Xc9KjqauqjgG/Q8i16OIPtQ2Ll3qDkunTNq2O65AEFG5qycHaB2/159N4n67iMEpyNowNdkq/ZlDxsX4dRKNvBUJaYqhID70qa2Rgq8+AzqTaJhuYrqrDDO1n/0rWggrBcFsYwo7ujJZblKGamFf+3B5MTAXNUOKn5PW91Gx56gtqTqz1dYMML1dFR/KZUZom7Wky7v9EfKnYbBseAvDuBFBFFCuXnhvWc/JS4ipUIe59Ls/kL+W5lteo1xt5bkJYfug17vGw6cqrOjTG4nQXZ+RbEDCMTf5JZ4DBcuVv+tGPyucc3B6R9NMF/lc4ubulrqcBPhRUjGBILbQ+4uBJ9eUHMAj2ijfMskRMLcV5FdgqIWhiEvxNVlZSRrzTzySfBUjZHCJQtbgDZ8nRWLwk6rQKWD5aSHuJh0vBgvlNTP+a4P7p59l0FYBPtoNpiFl/dOo05KHesQCueTxj7IB6io9sqTWxTu2PK2C3ACiXWNyxs52441hxg3eco87pSRV1NUvQeac35o3tgUpXtmtl2yHh3QO1mQ55wSqIri3PtVxJ57l0nOuyav/0ixzLEq3QlLZmLb8Y2JVlrdQMjhpcC1j0DS+VHrYIB4JgyXacVu9PCRoC5Y2+p8qfeJA3OFreaabxWxz5omyn/l55+ufQkO5e9iODCdLWl2crwLrUpaMCi8EUcVXGb3Z8oBCUdwuuohn1sivwQp1O+DaRFYXIbHQibdPfq4dU8WeiYJ4WKMlNEuQr/BRIGwOrAIM3Ppjmzvh27Lyx6xK14sUHgNy2ggNG57CBbXznFP/0NVrUQef5mMdso3AJ33SJxInqYebzcZ2pEVYHYczXE/+mcptBHb4ANtGohwQabL1xmFHav/wFH/al8TKjzGnYiFLEifJHL7OJD0x/rtzWuCrDToEWPBNtRKXFZqz/kBH6gsxzy/TUzP6R+C/A456FbGm8soK/uYyafgNmX0re6fgXeehUvtDCXdAUJElJt7AMv+VMdIrrOK7TAaHo6E8Khx1rq48yOqMqtC08so9cQh/AV760CiEtSm6PBL7JKCZBV4m7t8Gbbc4TQRawpuwTFyS/vt1JBnAQUBDPdEddlJlVAfbGy+OKkohOw9BB/JY9rDZQK1o/kpfl82umHijUnj0gVqhJCsrzUxYl+ygkRPDEPZqUIo/+AtsGplmBSxL8bUE1iBc8lCtShF2iqMC1DdHIH1DcucbSNtxOF9LY4IMng4T9eTYzDr+gnOPVxWBYMambJUexTzxyvFOneFg3r4FBEHqG3QZRgnKISYUQKv9B23A8vhFRe8uNZpBtiMtXqOQlVEbO/HzkRbqVaGj4s2XRVlhO+ewkvEaTp4pNLXG1OVF6ncxf3Fq94KmGuG29LLsFI1fuX35J0TsRNGo+TCioyTrXLVEjPztNVQL1/q5tGSrMPhfJEaQxHcrnqhVVqN1gfF+JK9Pgcud/lGa+Ig7eKQpJuUN+PYhBYQ/b6ahi4nLNe5+d8rQlfK/gl3OQ3WDGWuUMOt1YlBKoX+99JWlZr6tTAVgDF0NSHs5fqbU0euO7cXKnvVB3taBFHP6/KKZCBfGqzNo6DgZgiAELh1EYOni64dmOWUuwAQCKu+L8tnTFLlL6uKkaNtO8YGlOBVU9mQFYx4aGPgGEI/HTycxYXBClfKbmSErtcsuhalOh73FnzRz/thPjvRJcRwPtZmCHs1nYjivLMWWGprl4fRUOlrCDiwNU+9TZuaVsuCxj/4DzKfcla139igH7Z+0uskWkEq/c0mrsRLlVpl8ln0G77hwK9rLKc+RLeI6KLKy3Um5C6Of3qiKNoY/7ad3EFvdP4VICsuTMTii/bee9efmKAiym0A+l3hS7SofuEJ46In7BEO+Kf597wnd6s5mL1d5zNRBdOEmfNKyPdUuCW3u/SfFQes7nYlfV/B1DOE9p/pmgK+bx+eZdZUMu44uBGlaPvej5wxU9aumiyt/uCCZ4PyO0OYfFAMMqTaYcI8GxYeHO/3tDJsJisLleLpS/gvPLbEksIm3R4OCJ21S4P//uyzQ4EJZyYmWZjtknKJbz0vFEi0zDWnZHl4kvpMSPlVI8cEAG5r0JoNN59joEsMhUcPZ1YtIDYX9cnR711x6SQEnBGgTz6d3b1iebIdotlgqE03w87xlD0+qEykcVizaOB3Z+ocaMGWybZTIdpR4niV9mDm65EzKK8VQq59iMlABk54A7zAlMdkYNmaRuWJN+bLJ7RqEZf8vrpM0+3cwD0NctuwJJA13JIJVFlPStNIXzAW4pp1OnTx3rMZQfF+o4p92WDkF2tx1MUdC14Er9l1RlYsEYnOubj2IotL4tkgKwnE219ZsjXb8PJFkzakaWhRBJAkgbR6myiYFsJgC/lellsN9g1ML0j4HX4rwIzHbq20FDkBdfqN9SUnIbJf0QQr+QxHx4f0kRekXaqKZYUXYMbRKa6OObLPOaKGft7xFAgT2pHuSw7kdfloER91zsJPWQJbkAzyDFkkgUg80kW7n7n+WBN3CMXA3lU6QR23Ipx/98577h2OGkpcp5YiTX/TikBkcza+iwBGNBi/j+GwW8tGbKxpiSNEQqUDdqfscbVMQ+OSYGoeQKSLwREfUGDjR/emc+ZAJsy3sraTZkpHFZAI69dwO1dvsOw/Q+O/2lgghmEsk6NKzmfI+OYuOG2UoagP9Le/y9UABk4VHk54+6fW891qe1yVDT2KUc5hNeePBaQwVb5BQYPt/+2xEpqsHC4GY37hXyRSGvfwYa7DGUDbMKd8vud28h67mpOl7fe4uFRe/HOKf3TFs+9RX+QpL0+C2b4R/8VfkUQOABt4tcaDV34nU/UFXBUDvPYMYe0F24AZPIWphY9bLwt+tWvmuWwhvAgPN1rxvo3hpXvQNSPsVKgFUKENrmSCjWPYCUoQfJFpepI6oqpsVwJt6IlBFGO4soABNOS2KtnF9P7E9sSLK1WWOdGvYNhxKO5/D5ACMSM3oLy6XvjzPe57hP26DKKsIbhLZqcz8tJOcm1zlVKV87cVqDh5iOgGkNIKp7JU8eBp4VRPvv6peu3DR+ROhro3GOnpo6Cdltkq395hUi+pDXzwcONA2YjC4BKvX3JGZi77wJboSzwwPelRCe5297Gau3hHdjkNfDMaoCdfo4BX1IthlFNEHUm2nTsuiPe/rOux7FSlxIwT09NqnvyBmWQYcleqlPEreuoCZRFvXL07v84AxlxNdJM/atDmCjpmzumIoYOf4uVqV/8ZnSwV78WW0S0R7AwI0EDq4B6IaI6AUBwPrNLY0eeSw24zQ6qVAgBGW5aK79Mg+Skj4XxdPl8axMl4x6nwmnAfEBIju1ssp4yr/gdi9kl+ScGW3r5NVqJ1fXRkW9O0A6JBottvWGypQioSH2C46bepNpt5dXRK28XY0hseEnW9fDBaUMHziavWy8Q7jttulrsjOd5WunqGz20rPiwX/3fdKuQgv0g4CDqGBMamo9htCyKqN0qTOxWP5MmZG0lur+eIMwtcrfYqJujT19J3dps8mrCySt1MRdmlNIykG8cIMszw/nMlRV1DmpxNn2zf3gflXm1sXSH00EqrICj29dnyNSbIteQOqjPLqBf2QDDVVCAgcCz7vER9m5X4XkTIeB4ppqaFa2UHE05QSkAhs7FkyPf40UFGlKG8GnrdKq0ZLUk9m5jleTBwhdDsYP8HCDKRE6LS48qLHD4pvSl3XFvmH8KBEmyeyNwwJzAJQd8MqhmKsdandB6Ec1bHOw8agmVGP/vvY2C60X8AnR2r2HhdkUbclW9+ozjmxmipA1AJIZnqxg4aa1Le0RHfU2vkpf68y/rFMYgCXue7eNqxoS0NkOw9a9/WcDFJOh0Grb8zYjPgaSDENIFMCM0H5OlIqq2r2FKGkaQSMzVm87r9L7fysa4xxVMD0h7CIExLBVbCe1/r/WavK3yPhHVe3XBjyVTDOqI4/90N/Cm5KnqxFrVYOHbwMIXa3GwNwVME+38OpXvNwD6l+jN8BDCRDEjGDFC+WObTdm+5/tfm0QeEfVUYFtA7gTobiCnl8rywroMyBHNClofz+W7OhssrGuos+fRhh8kBA+Ni0fYdhKK+qCZaY0LUDpn17UUKCX6dOZccCYzSsD2iSQP74pFnhlkOzACsapdT20zbjF6ZqLgELUPT8IglaX38zP6zfdyBF+NjNf247XNtmIz4QCO5iRy/GcS8jjaWMfTxI3EbUvzrprtgRQDOz/eMnyVQVbbFiTMZfhfQLeu+j6iY0Qs/QYGFdHefwzAYuVpPhVZK/tXsy6DAioLlmNDzAu1eQ5ihCnobO+MOZtSD0+uTpiOAvPwGWf52xDUHj4zbdFtZULPV4c1TmWflDGMkg/Ia6kPHprHErwFTGoBg+1D6oX8lSPdz5srAF0RbktUTmq44+USAYYowZQOVbM3BWMc603Oy9SQD3buNTgzJ7yaMBbo/pjkzVrpW5xYH0Ra11ykiz32vo4nBg9Zvm92KHWhJm7uQJV5DMPA1JHBWBMcjz/uZupwXqjoTffeHZ17N3waXUaR7cZDs94ewlhsbQrmI7/A4zJDUZj0qKiVQhn3f3AneEhDwl6GUdCBdKY14q9n6ay58twW2PRXXPJ6UE6TUs6oqH/0xgDpP3bx/mfcCUy5oo91agCPtpTfowGZ0tyw5mIOsUqvdURDhjuWLX/WIqaPlYx3zmJ3ahTcxtC5xQgKWrQskF57LaOvwYN0lzIwz/joNYkiZwLyB7Joi0CsWWRC6SapEN5TClIisNQtNPmfwKaKYb+Hguo76RtcQMXdRZWjEJNHq8KZKeg/uWWDOW6aygLP9JDrNNW7JfWDyHPR8GL+29zBAD5FY1WZXsmYfdKU1VTLLzAHERJJGTpwKZH5k0uZrDYM8zG9WX+RVDM8bsmN8cI2wKz0Td8GEq9T4DvY6FuhMsqPGHC1tkLdxuwBYP0Lu2RvjXaxodrZhKfkkIwGcfm+lFS4WMFPCz3FwWwuvNLNqv7c85xnk3aXWl49yCW0YTzTqwyKuKWSIFJum5G8BBjvxx2yDOZMh18M2WhRGX5VA0p3eAilBsGa54P+iEat2c0lLnTrXg7fzDLJrjO/213hRmT/92zHwHShntUiR+9KUWKWRcx9OrMWfefEo/p2FR7dbNWoP/P/se7JJUfBzJixcPvTzMvSTQrccDAmpwoLnh6pnsAF37U9Cakvwb0EZzywhYhfUyAZ4oAu4R1X55yrbJifKRbLIC6NaYqZxbpzV9ec4/SFSjJKEvmVGa9tHfUJayAvrPPbVHNaxlbdJOOn7f43GTTdGGufXu/daAhuYtol2y5rFVUxlDpyKCfYRz3fOyJZEjhxizetlF5kpK8kUuEpKNWnSG9VEdmcn7Tu0/U9Pho+IZiTincXepD9zQXGusmr6j19TKRCe4dmbGmRl1cDDNABYeOKT51fHc6+d1Q9T2n1UMmkd+aiSUgNIrogqtnInezaEs7HmtmpjKttWg7ulLhPvEEnGE5TqPY3iCItPzYojGET4V755b+cNmqdG6OBTlbYjDs4AAp+ho1Iq8R/eWa0/FOyB4K5JLQ/WqwpaNPuaoufHcJMEld4peiw/7uIRZ9U4otV2lACBY2PfSUUu7vJ/iZUtvPoJmd8K/BmbnNo2iumTtQxEeARnjsHdzf1JrE1L6NGFsI7t81c5GCgmWILKM5pWDA5HO53I6aju6916JkUl1YcYyk9Hwwf/waKzGbNaeXD2d1jBd+rriDyPgR5p32kxAb41vjMM5QjUrVztISMmbVDBnx2qArnLJ6ECRGZcfK4U6LCAMxRtE+Y32MobWIYqbeJLCsaF4pCXyZjPABVmN36NRAavX8RXO80JuF2m/Snmg2NL0dSW67EVH9I4fcFSjpL73r6ohLh/V+uK3786Tpz4u9p1byZEEFVjn4eK4wBNeQ7DGhdbFbRTt6/9b55EBMfJGakrqZ4U+Fgnh2uIpidUcG+iBjHE5HMRX2ZKkKLyYQElkw/Kbj2w8OvDaxd8rzWoSUnwkiP9DB4L1FBdrrf9anTqNfPehHTBlyG9cgcQLrR8tQEZN9zuxs8BV1Zf+cIk9kSStcCODphQCbZP7NYhgTuqPh967gyo6DhJVEeM/gq2arEo3NkVtX7D7mzM4zzsjwEazeZbygY6xwP5F5NLqPJ0Hxncni2XMn/GdHQmTbQF1zee4LOhZaDlBzMZLsKXcJ3sJsBmPODcSW/FKYiVgzz7wLdz0C3bFpTwedWpIZzG+H0kpS6hOFF5yNj/xUGHEQK75qxYUFuXq2vFITPVf7aaAWUF+eBV5VbBqFcUccHNaTmGaDdRTdXTurKJ8ATxX0DHWz2qNhGP4nrYJRCKI12hvvahdfR6RlR+zca42mjybVuHEEGrU2KvnHy9+mmlQDH4jYHZKC6knkne5Q28ldgrISAF0p2u8YVTy2bGLZqUkIV6zWDXi0DuZMiQhOJwUgZQNnrjzpboxif7CaCAFdxHukA5fPTubF6aLOTWCnS/EP8ZSOIyNGpkn86BVLEgxNoCo5XDdJHdnSB0Zy+5O4NQSsoKdZzikwg0eSvXAE6j6WW27irlXjNHHxiuOY/LaFsSgXv62JfK2/O09r1DMjpxv32Y457Wd8wFBf9V6i6CdLP2Z9qNFsxcP88S7N6b5FAkZAkO78T3f4mpUVnXed/QQC1AAudBr+gg118i202+jHf4m1tBvD2iwt/8PqoAWQSajReU2kDJ91lZ9cqfgKVbzge5mUlKDSh7aeClFOoVz9UEdTQyNyjj+u7JaX9DWyqtt6955fcvBJF1aKEjjPQjYV4+FQr9Fnd8NqWavBRL91OUcILzXVselzvLQtPmmvtdhkUNi8G+O+b/qcVyHvls9lJjRGbe0YWtuq9zXA02yIjtBjoQd1vY0EmEFvb3u3xiPt9Wix6NZ7ljWQVbw229SAPrh/hsIECHTLmxKxWD3/K6TUieQeqJIfpcIoOQcgmvHDyyRUevzKImeikRzg+ly1+qSicz7hh/DCm/39Fyk6M86XNkhcEgJKANNt1matUHBPuMmqkqR0Irsee0uIofjg8efSzC4Ml6OzAV1PuydANODV+SaVqKrg8qTvT2ROpiQHqoOAq3EdFRo1QW+1ak/AYmGEVA4cF99A82GRm5mLHhLHqOSqBVNF5d+tjFko2morW+bAtWqE3Mhi2uYPJEeL+puWOoJaLV9uHtQIj2GvjqEnPiF3gSNk2kq1rb+v31DDwcalu1nsmfE1n7J39uQgliDyyoBoudkZrUtnIUrDsC6iGs/DA1YU+EpC8VYQ4iw91D0O8kJIRK0Zo3YzUzYnm6vxq+9EDAP5SWf+Eyupwlhcyq7rgfu0UcsS/cyy18bZBvpooyg1q0GNkTJ+MwtXBtDoaChHEqMdF/a7GjUgboSb8jHDJrfqRhQ/bbI62r8nHoOa6UgOaJLxxg1EhXpXmkd3Rch7uNxgpPzxP/mBdrGsygnoth1z7Q/YLYJb7LwpuGREdhP+ef4imi3CBmJrq9pWR8/s43S4uxqNYHUv9ha9RBACBhuz+S4xTQTZaCKSoDHnxC8CxGhiHczvJUTlt4rrWQpu9+AvsrR2wMvwqpTTd2ETTsO/P3JJiLBUvcs0TXCPCRY2h9Nx8ZqMz8XSEqa9ByDLoNM8PxxK/62v/Wkztb9dlxfHsl4u4UjIZo5lD7knNDevOZvFRYHhwFE22lXrX+Sffrt3y9R1DKaG/GlAPLQQX/Hetzpmce0TT69U3cFZSUWj1hcJa25OoCXx3O5jXSizjPu68eF6JRu4ly0GPmihJAcdY54LAu+PeTtHdGWaRfb6RVp9zxwP+2PoTSQm+qFhD5LkhsYuT1IwWLIAUjU9P0z7IOUj2QP4sYABt2vX5hJCVUnjOBPVGQTmwyR8LSRc2WvhlmD4DMitovW8AmruHvsuxxMnY/ybXB0f6jgvY+7tMu0sJN5r4DBEBXa37SH5PepbiAlY5L6+09qF9dbg57qZdXr+Lkj+9ODwIdoY9Ogs9QXAMPBK9sNLNDM1mFaODMVpqeBBx3+/X8BkyPofOmxl+kYJsG1PP50FDBXj0A4uVUwSXOnyDvjHd5pupMiy5DyOMVDjPDi22YVTeKKPxtGz5/wLm/x/DzHO4PBKlriUyR2fdazZ8MZwZO2yzm40RwLqezNhsNT7aqhOqWBMfTbYcyVtVzrROKLQ/cw8h9MBYgLQZ5m7RtajLhjAmwWRubbOysVY9+MbTxulvSqQymjxTj0/yGmowXOk8LorLHbyciHZbi5Wipq5e028xOnXPq0SO1Ei/BmXFCr+iw4toQwld1d5KXZJaq1eDPduqLEuVRpKA9CzB7KJsTTpdrYpMaOsIFM7Wgr9Oh/caoRAohQN6A6HSrmbUuxffYlS4ymc4W40QYfauuqpQ/JTXe2l3gW1vBU3Q0CQWi+YnGMAlM7QCe806vIrrgQmejgYb3z21bFn0KNZj8qMbtk0fubcrDYYwmBhjZezZtAK7N3MQKKCODWwtmN/WYEGctudKJzRB3xrBGIXPbh2oyOsQ4psvw2packPl36ulG2AlW5rvS3xsDrZG0jPgcLNOBZVquBKudvtx5EyYnivmLREWPn30cbkfL4RsfTwuJVSFZZJFh6UkofGq/bkz/WqbPwyDk8xppCVNz7JQstijvxEWrb40THMQJebLnzyY2q2jx2SLecaR7/0b676f5ddR3aDQqQxzS6YlPvFcYbw+8vic5SAk75H9CSsEorQCVlJSk7DU5HBRkzDnV2QtTJe9fsfqy1sQNBXqUXzv+3HDVDSjlHNPKEmNGm5+zlEP/Pa0mLR8hxOG5PeuHfsO4YAaC+btxGwKVWC9Se7tv8fBJBx1n+Kox6GyPB1SVukkNQkjh9dl8s6dR8uwRo6Ep3zrpyoDHwNvpGU0zV5/27gpveUjCyrt2ZF4TOPsS/WygLkfE2dbNXsNDXjU0kggbh+REnbrOGVNbeYAoc4ZX0aRdyTYOFzlRKaGo4MoHLkMH9FMwYlY+jItBYVbIzsByLIUmu7xM7N3q4VtOAzdBtYpwYx/5yTIIJ9yh2VZWg/uPZimDRgASUeaIeF/TU+n3NBLOkQvsf4CKuJi9s4FqpE2p0HLaw6yIcFU8mcl8Jx6XPWv+eL9Uv+Eyr1QVYQfaJcVwJ6kjFn9GSZ3uvbIxaZMwi7x+nNLp60sgdzogotqc5oVT+LDsygUDk+S361me7L2BWYFkcDER/Rx+J0tgDZ6wwKRu7kFtxCpqtt19WgsF6LzpqmDlLORvOsY68JnuZgBdo7ozFmFR6uGXxbySNeCvPKl92vkVsYEYjZ70nSsNQz9WiIy0pcd4Cjnd16gHVj3X+IIr+ZH/gTnYy0JQvVtpoQKA3yqTH8ZK5WAWFLSXjNeHCwtYmaan6uJoOWW3ktmR0n9j0uxSEniCHfobcaa4adhh6U65iKCHer9DsvpoFJxkj5jhGLhPSjJ+hLddzatV/1Ocn1CE5uZoZAMtgkhUYN5zk9+VUjJxOTjDsX8kQFan+fCSw0rK8IhXNp3dynfHXSYCNq076Pn60lpsgbLC41pl75UNjAtdkXJ0OFBP9SOFxYd/qxoACmCf2c4BNjgll3P8P77ikGQPLbKe6Bprf5RR7SLTcoLj+WEriYD+XvlnCQ6gwN09MIkc6PH+xS8JfJD7iyBoSsLx/L/1AzaxG7e0eIP2dxroERhpC6jg8arrg7XQBksDHIJZIPRhy16WjWaucMUOLtxrgBU9rezETjoCtMnBYdaOAagkVHdueRkp+p0+SRoZ4ejQaCwhOiYRYYJC7NsV73oO8dwYLioC3qILoo9B/eMud5uERJdTB+L3gaZcXObntZ43fegezhpmSwHyw4dM10xfsXF1MY5XAR1XmGR9Qz8Yrc2BSBiUUf1wSye1tGQLKtmsheBI0zWEKzJu8/tdWQ84lcWgnXo9INPwDU5XiJi0OyBQbwRH1ahR14L10g9kAYWlDK/0N3VzcgYYursjTtw/2wSHmfTGJsx5NOXmMmVliBLLHGu6G0jFBLZtUkH7EzFzorhlKhKRrLqXXlXpO8crQ3CHEcZLu9XzwCc9SvkPe94gxwonijdizLHtGfLLKLF1cdtXMFa7Mf4P/JQHiBZIRXBzCKoqPaIuvh7X4/SQdEJnxbsIECUF90ZnrLUpBjTXiX4XAc3Mse7eTXKyZp8Q3Sf1S3esZyDQl+BBER4PmbGOeQ+K1112FbEeyqQZg56WiQ0jRCUmP+Kew9A1ZxSjutLVOfkpuBwoSkP4RGNoe7WrmyTXKI6nk1Tnz0oe2Vm3PjBDf8Gwhe+fwAYSAjlPra1TtCj1uu1GcdIAm6ViQn9Srqf1ym9fPIxInLxt48mCIl6DSTi4ZJ+XkJrz2dXWQqhpSF4nNWapdIjJH+p1Opedufkw0xHlr4vORb9BCJ3W8vAPdZSqI7VxbNaaOfqhI/8w7L9horVKv7MLnEr2l2XgUM6+i5Ix58xgRlYVxa+ltEdaupD5yktPEOlldMIatEHTM9j7h7hxVvQPEbtQP6BmDdVaPz2u/o7+Aiy4lsXGE+Km2ss6828uqY4y28croxcwQBaemP2+4hEA88WmmXnQTmIMFje/i5qVzP/dynhApy5GEB55hU7+jPdveexxyrULupZB1hjyqISvKscuKXOXZUnp8dPLlTkOIlOhMu9t4Vx5PLPIDK0SdUiZ95AlS0+/1macnq6hXYYejgXigt9NePxN2PY9CC0HftH0q8httvBeLZ48ootbmSIZgK7/Wm1zqq/lUDZBL6CYC5KDyLg/WfRKIQMNyN2X432uLr/f/9AoV132hvDNWvIbdgJKmzFwnqjd8+MjwrCINW480Y/0ve7EpvtXHg4WzJv5MuILg89gjdMk86QRO9Q/YKdmb+HV6eMqRTq/oudO/E6zvH3NzGgHNz/zI4Clc1kXUMDTrnDpBI2KbWe//7iI6d1A8nhX4F+4tGki7hfsA4VOK83fdLmcdAGqQRjtItVXa3J7vhE+x0h3K+fVJpM2FZDdY7gVF9ME1rtQmyQOE+F7b6vQAUregqMnIegpxtIKRhyTvfx+DFWZLf+VUZHUO+CicH8sE+9LpldACFUpG+WMfE56X+8xIB5l+Eu4ij2kBUNYythq4o1kyIEuD1kt9XQ97gS9+waaIHokWae6jm/Y8Govgmk31Z2M0SBZAIeudbA/y6RkBys3zsWVHoPxD73jIs92cougppJ3Uxf/pQcoOw/qt20epdVJgHhT5/Rg5mNf+bvQ4LJnwSxs7VE9Qc/myZF4IFBUAom49bMTIghVW6RJ2gfXkP6ovc0THTEpxZWx4zTkARVTfH75vftaIkZptS+h3ERciwL+zFBfxojqrdRqqdkYWAVmXpf+ueckOfXPrN5b9eEwl8OJWgoXwyPM73RDn5ix09+qYTUbhIRquBAIHnO03H3q5TFdSXzP+sPDF+FV61ALiJwLttts7/NF2qhFJI57p4sixeZfoEtm0Dg5wGwPCH6tc6aqO8oe5R+IkDR8TuyFEN2w2kBdTxxvejaSoap3bQlCW4svakUIjVrpe7zCbbcGL0xSe/T3hysCfb20Xj0oFitmmY1Q+1QAbHJj3MfeeZfxuvYYoF7mLnb9sF2SPQEFrRwt08qapY0ODw4ReEM3TamVg4j3BvgKWWLIeWrMXPSM+I3hBzjUn6TbqMNWIPDWj5FBYrWBwXYB71BOpmX+5iYomjHoQ7LUcQ867QRS3qZXYnBbLy/FO2tEGfzE/rGyNxED2nvMySIIs4Fx3fZIsIZn/tCkocG9krZ5TWha4eDI3zmyCQeBMYsXlRDNsMfjEEBFh6/Qhq12c9IUp606kEY5bwbG/QnU+IAyJhlftn2f8iRL5A7v4R9oAJGU2GYjNHqZUGg2z6az4YMtQyXcV9X9WBRlaYnfVIRsmuVGDhDBIoG6C8AkCK6LdXd0NgeShgVCNpx7iacd6L5r4rVi1Gco6rCBwBfwyIJs4Fhnq8IZrURn9zhkJ2FenUPijnbIom4cDNJT3zqMfvySGt4ko2KqwoGDH25QLfuWMbcuRhuQwYKgCX9VgClxETR6DM5DNjTv7F3ysG0kI8NKZ5AZDzjJnJD4VVPwVR/fNKHpzgM8QQGSapVEbQCuiSw0xjHphp0eDxZeames1Mp9WwQ2puhmhj5ql1Lv0eYJEpN8RFa01yfNY0KZkTpYzcO/Ckhbb36k9esVXSMPl1G/K7/sR9Mcqvz7tEmdFwGaO02c6azfLxlRg6byx5y5aqHXBgH+N8X+0pGSjHsaENs0tEcJU4XtLrRLBJGIFVEe3TvIYkvc3siaU1d3xi9t7TPq1L/+hMRqojqmp8jBLyo7KEuYZeOKHFM3mUkV+XkyhiFhmwxtLgSsGMbh8fE6hCR2rTOIinlmsF74yj7IpViQkLbyCbrvDt5/yX6I7Y1abrFs7QBI3D9QnlxlwbgZHvFTKeaFKcI3NvUQFQURMimQ5M+eF6vwSlYff+7/cWpYmvPrIh9BVONzVYOe2tQdAWWT5fJSYL5Upt0L6Dl/pZObBEdo+FPC4b2+iU09eJ6vb/kc2/uq9CvCUV9KB+C/CPAJdOu7vq8wf/Yxy8081PEnm7VGsIzzoFYnDvfYTUyPhdXV2yICWljxWqkyEe4e1n+SZCRACDyiLTdzj5Dq5ThMdA+CNJhV09iM2iW1Pgf2XiLDkIpNo8ugDtNdVTMEBsO+uHzrqEI+EwMOFr2gevD8TkmyjvrYH9Bw6rkARUFwc7DRpOCIaACn2Edjv7bmiS3MFeVgdj1y0Rv+v1DYqY6EwHst3CNlpq6XBW7Q/fu+F1R20aHUR5Z1LIZ7wvY0E/w99bKzAyUjG7671ZUYF6F5+Ynv4Cm0twLZ+GTrBp8VL/LMeq8XYgzYldrklMglyWJS7iWBhdA5GraO3m3rO2AorN4N62bHcpIhG8kbvIkybnRVTEWt5a5f7iIYJN61OO1gLp+lMKa9CuaUR/y9eoF3/jHgqh6iPSadglFYQ/GTsLkzIXMTFtBelXwJHtvmQtoXItuOsLGvL2IK/M295YD8SaNfSND8zTfgUXGYQRyrzsPYC1cxWOto+YkW9R3EinZBFUy/5HWXF6WeqLcPADGeJH3U642mjV9hMqA/GY+7DcN2bpls25VizlGv+FyH0qhDmmd0gUS8y90rDX+Xk6y6McJ6S7gM/DYcoTHv/2NeKg4rjMw8TqrlL9LBcLKWQxtuJxVX7ObKDCs6fNlfUj6iRrGPFdJD+ziFknCJKgixZ5RJQEQZi2MefRmUYi5crYu3Oh50a5Jf+upvNzFAo7KhxO8WRvoqnLO0wvvdcPsaVUOIcvfZoUierdTyFyoxwnJI91KCBroEodybtBGshuLseewOL8RJP+H2Oqsca/SYdeeRtivXY+FFQeTQ33eeX3DdtS0+wgHXVCCQk/CkG/az4aY+ExO9eyJRmpeKAXose57USPZEoRKo6m3uIY0rsGhjw0xAS7X1DuBTFVuo29v3dChgu70cPjpl5/xQmrPdA36PXNZRWOszr9FtTYYxG7dHUooremnYo1QnUGWsN/xygLq9TDGLLhVH/pc4pD+15uGiALFzU4PINmfD25G8LAsJea1dQlpC1s7rkYJUQqIwFNDY4Eh0dawLn8fCol/rhUCEbEHM1dJlCBpXxKfm7zt/ZpsbXgy68nEkEoLjs9rk0E9GFFZoYLZv/4qZR7nl7qBbeALu0FWvdWoNb4hCvlkME+i5nbMafn9uVxxXlpXBlOxHA7IKvKJLMXQanWkuK9A+2VI1JSDoY06+R0/g5TPJIHfO3roljfhM9ncx6Qrk66xY1H0+2UgF+oQgm28A27u9+T4rGo0sT6suA8Jdwthg1T9gojZro33dFb5pubkZ5ZHchLzsKkibaR3DHxf769V4iImNuKKrpgMMK8vcvF4YgFx9Asca63MVyNPtp5+zXPASns3bwdmsxnn1S54GTdkB4DwX4L7JXMnQGqIaS+mPgWxbIZbFcDNIrMilEIEGFczfvcACtmReTyzqnpITyfsh5QK4RKX9ZWtvUy4bWXjsLYbNV7MrrZsT82c9cmf4f8I0sSYqVIlcUYgI782imxBuEKs3OWcogWDmwlr9TGLtVSSTlyzHUW4PU9f7Wv06gLioBSoAf5esTj3FD9kKtTKQZfTKEIOcCYWcfIk4IkcfoFGKSLqsHhBpBOTfEJ6dxkBJXCSlknDrb8XJYO4/96XFd4ThAg4/Heg3u5p1kP3QG2yMuUrty2cFQaT3cWMABIB2diEu/1KfFFSKbfjTp8aUhb99C/ZA5m7h8JWsGwT5Ml9Uhw6CmNHyRA15TyVwIsOH0I1tFeVqQaoqT7wGjyqrJ9bI+WtpjMv5CAGQfj+k2aPOJZ/zLvxAtkd/Bzh9BZPEwVE0I0DI82uWK72P5+mHKig5zbXYrQE5bSNA9/gHvSND2qLV3hLPnoJp5q/NeZX7mhb2aWf7qkF8iM4HEHQ6YiYA+E+kPmfMGabHq62QBi8sSJ3yb68iTcA4YT6f+gJb6G3adGkY9eeu7XQZiQEi2fXRSKUOj/zLkyh4R3hOAX6xhT1yCvCHT2Jb9tAzSMxe0RFbM3g6b/VHgP8nyZkt45j1ZYBTwOpQIaFU7nU5focNbiclNOds9b6I+FOnBXwyAf1ViJPMKBBofmR8wg+77g5o3CiYUzQ+KdNxUo14XQc58/GKrIq3XSIefM9azql5sX7KlTsU8DGT1HlHIYnd10cJYsAEHoN0mLKcHTySHsjTFesKWsmK+siZFXhlavE6F44mweXOrX6FBoELRrvIrsst4OH+O47VaML4CK/cNrjlTodfRr3u2XZsHCcw9kXLGX/15sm10DYmP3G3387x7LDyVoplrs0pzIvfcy41eb2Ob/wM6tQNLxQKnfSbL0eyYL+RWR09qeHT/lWpCFvcISYlmdF/jMaIWDyxE/LA1tguYOSiQtSqHfgqHr1n/k5nFhnUBnU1J1eys/8qySmWwIplgfD3uNcFHlg6trf2B11Om/f7E9onO53sWHhas4nNuhBJsUn2OjOnOAFZi2dcAvexHytVxIdybjHcEdXUcp0jkab19hwZ0RddTUGjtyulBmpbfGD+4d+oynTEjmMlYS/pfoCyhEk9XbgbBf7wtFs5qleFrCmB0NrUYZLxmw+2wFqYEUy2hYP3ZxY8uhRZeFXZfhOD58zGBx7lo4yMjiBc0zvOGqVQm8d4tk1CRpyGJOGJWVU4EpHPxqgMP6hV7f0IxJugziIEJHavrZauRXe0/THYEOKpl/a4jm/fah+oAzHRBqwetjJBSjNp5LaZ3ZUNQElZJBDOF1e4muumSHF6da394Cvppq45QN1B2wYBfbx4Y9fnq5b+heTNTCmP9XhMQGniDhmdhGzfPUY5YPvTUhEcaaA2ucNDUO/xvaUVhXDIodrM/05R31bnFkjUjn34N7Aiuagl9VB9SjYsu83Ws9eoevaZVwZMC4uiZko2GtNzZCyMHRq6GKhvEGBiM1gLyvMZk3eR2dGcn19YX72JnDBY6RWncG7lGAg0YZR9lyoCyQ13gtnyBi05gPlO9yOeIYGqQrhgRpR+pAvx4czdaBMpVI7SgZMAhMSsdPUEQ9stTtwSabBmrln0uHsOMhDvi0bNRUWUmqnu3eiLgzk2XKGyTaHCe59vZZcmDkk8aOO6pTw5H+DWALBPMcCOmfIz4cF9E5zesXbQkQNDFk7vlnAcetbpid+Ce9MnTb3Clhv0lL7lyusJYCpLpalVXmQ67YNR+IIDh9vW7XeWnU3FFfdnO0yqCON1josSLVMTTaH/T3Q7Y+gOUofDwwXaGyGRB+4GRC2kk7zANlgd7PmE5kXda4IpmTbP2OqUJ/O9EXW4aslQR5PtYy3tNMamtk4Lwzb6WIFll7MVBneG5vPfEGslblvK4unzLLIvceI6WxhiZNc/nr10k9nn8ikKPz5jmA9oC+lWIE8QR4XYTcO6WZ7VMORykmWLBbTE1NQc8/TBpYSaYjlsyOK50EEwZC6/hyMiltFDU/OcVfSs/4s0Rk68qJkU5mIFxzQcySQSzLKmqQzkbb2ZlC8MLMP8Tt/ui2UK3r3IoyOWjDNfAV+2/iYAbaU/gcEuC9PqZbBCpHpobrsMSJpIpAbdk+lZArMaQfdQP2kY9Krk6TsjNb/ad7Ghc/HTlJyxRISEoijGyuLhUJB5Ch35PrR1oibmRE3vvhC5cWj/AFFMlliT5ELHoj9ieMLEG0BOkVRUXKuv2bfaF8AdXORnzTtMfXYqB8UVY5TvybX4Mkg9YXaiDDrp7KV8wVHpmx3MIlmRkznG4Q7DbYNTZBEi2yxQfQW37NrAOyCP8AXP/EHi/BLLFg/ip1tleZLojlnpdzKgSmJyi4IRDWNifCtFxTRjzh2z9DNa3KUZLZnixrksQWHwp2gRkmuu7HYPHYIQrdjih0WnNb7CL7hFDLjbfGaVLQh5Fu7SHtZTqDYzgY4QnM/x2PC8v6+qmCAMbOvWxZOIxjgpUF1ud2/e41K1bJAXPTZ0ctJLsigJDqNH6fNsXGGXNx7cwJPgP6INK3Qxc3ylfv0L1e9m37k+CqkJJTN6MvvQuae8WjO1l0JvBh6yHIrZgf/Bt/DNS1QULgHfUCLdwH6GVXxn8JChzrTEJL4dTZGD6nCwPWD+eeU/jxNc/wph/HYngIZcSTOnA7ZoHemc7pUYXx0Nr45Sbce9CyAvFnCzoIYbXxoDXYVwt/7sf509VEfvoLzjbFrRKr4vntb5dgeDiwRX6neO0yQZsOSoVjVvOOSAuP4PT+ezKgOTL5CMeBFh5fTyCTneXHNexLrs1pBpLHH3kmt/Gi6938ByjJyGR1wM7/rvRQQoS1drQjQ0vefqIJKlavxUAyi0PuILAyGGfaeCzz00DKjY1cowpRuwwf7rYPEZOByjttnqj6EUZ84F5gZp+4HJmTpMjNq0q/lyKFhwHKG0wkVp5h+gESx82VKGR+mbao8YOh23JnEy+eNJ45yos7d1gFc6GC67dt+OzE5TpAYicEpe2YtuuIHNt0hQpdLBdS8eqx9D9RSrya3h16jYIp9Ogfv58USTrQa6bOJgC6Fuw3VSohoUOQpQ/XY+PVKw2eV8Q1N6yxzymT6QIiLizm3kcA+jtFVJVj/IlTTGr7Tj6P8fQmh0ag3AJfRbLs8nmEQ1QHGUtaUv9djTgKNG5hVLyiujHLL77tNlHcYLwqquU6Z2V+WMoDwfBiMDqK39/tNhs7dXQhQTHYkold5VgNmV+WJr8ETyoKTHTS8g1RZL+KCbZw1LZoGTgR6eNleq+XGRggG9pbw1+WcW0jzJpvQle+pDWTA3yPaJogeuohg7EijR/48Se6kjwNpGStelAHWNOtzrfgmNxtH9r1eSRWLz79nRNF5th43Vy+rZ9FcwK7PlfJojQmk6yDIgDVpS2IJtFflHkl2pdrA/ZK4Grks9dfURGUNk54HimplKaYEZX5dE2M9W/60vxTLBE6XeIZ01h4YiHBHGMX+eAHZAHpSk2dFZUbQL/ylbq8VdzyOCnwzB532xAsz2XqmJFNJCZ6YuvEpyZtLa07GuhPki8MeZUI63KN4jC30SSX7/bWpsMyfpqrzmMI+cCYlmRUB0Mu4kG/untuIlFzWG2JnuSThOvNB87WuxDF4K9MPLtApA2nPV+2yMqZtQu/5eBgMzg8/6FBhddJz3kV0onK4Jbo71w6dhI4czF3ksh7/wVe0vAH8B/pVGb1v7xscPIhg6KL+hvTtq6g1+kCPpBURUhkj6yrfPgZ3/Xtc22MaQJp0ouI8smF0IW7P8ZfkCNRlxyoz5rOlXJ2YoBYf+hZJACLpIW6Ecg7s2fptIWtvuAgGvGV7dSNLkYv17ghjkJQx6tLucnApd6V56PAKNj/7Yyi6MOC9uwvXC4HnQSolMT49c6/5ZRIfWauOyw+arQBxET3gqjgZPldHDuhPDdYxffuJ1ityuwa75OUwVzCfQ3DhhKAfuieBFYqqN1i5usxjNFwKad4V39gjt2wLjcS1yX59qz0LCyVW9KbSYU9A28hy5DC7hdtdQxRU9PX4vfg8R4KZzpT7OhJe4Rwnuob88KsYJT3Xdb5uQj/iI2b9k+IAL2RazReg2nxwi3ia771jH8mWcStAs1NJu+cMgx6oarFqLe8b1HSRxQ7za0WtQhVKdhOSo+l5MyUbO7l4rtMf8vOidRDYSBoESyiDirZR/lirb7mNwOHR9B00U3KDHjR+/6/p0FjHCVpWNOzJcWfIRQkZ6XmbdXoGNbYi+/6K31kVQSpEiFHlf0XTAzQKDh03BJv6aoldSXInQfAEINY34mN7TGvaILI1iq1F8qQD9LdUyM1y1GkmIcoViAyaqPmTF6srtanuyTM4L1D0wyuj0tEVAfuycGdwEON4fnsCqlt5T6S1obgnUutprS4s5WpzQgzd4U9TRXJErli2+o2bS7A/uISBZhgh/679K/zLda6gWtuZwAvTGNdCbAN9uwZti3Hk9kKWrIq/zDHz00+fSYLcc5sgjgY5sWd/F9nGirgGojICMTxUzGmVVyjsC+0iZ7i++UKuLA2KCekIgylXj+DAZVKUFgBgXYW5+1bwyASMUltB5MhCcaMuivyyhZw3MJ7OjjmJyH+sH7zwWOwFaztw+KQpl6ETunGZ4wgXDkkep9RDpXHKdERy5R1KfOfi61l4kXklOVi+UvIPbGuKxTqSuKxjgg5aUU0X3V/EKdOugbYyeYKlYTyfe6Py6u2Z+A0k4k2giHiUVqkoC8MKxTXxmChSs68WryAMhUxyo84ORdwTONcLdmrVJbnyH+ugmyyx9iKEPADsMijuo2U3uJDa7Wnfr9gcycQq006VxIwrhk0FV/BDjqzquNOsEJXdrimGw0G+JVU4/5BNk+lE5kSCYz9cOOfNBtbtPUoVHnu1jfPwwGlaTc7GUxPcDFnEgwaHh5znVnSwPAAdXz5o6vI34Epz0NKfx11wmUjfW8nTAn60/CwPV4XjHM2yzXbq/EA9hUimpPyH+gMWQc8fiEpaTtk7l1iADxvDO8EMdlaQ0nXdXnhCuCrsoC+Uvlb9IaXpTbhDyzTzYYUPRsJ1khYU6+UMPk1YHn7mE5V3/F28Yia/wrwDdF+R6TmVzsqudzix7NyUGk46wXs0WaHIURcZDicGiV7SEhoVNTU0zgBoaSd49LNnCcmSgWRMUa0JKdpcVnfovdDcIyEcqOXD4VeP1baW1O5XKi8DuZzNuEL/drafxlkHz2RIla0Jp8ILNn7S3fdeg9UhAx9q0+SKtkZq2KsJrdjjyAjr3GfTjVIDAz98414NxYOtS7EWs2ZaFK7+4WBYoC5Hkeq4b/TVXen2W5sxGUXGVbea0PfIOieEzqtacY9iZH8JBwrLvaO9mQx8S8Xs1qoQA5mRuhLUFIcDGMj1wJK/K+vclB5Bl071Plrpq5+L4WJ77f/haemR3QBDVN+DYo/NMMFkqokI7b1nRwuzDmI5dEx4XMlGANd6UtZZVQ12+CHjwiLfAM9yPWaei6wRjGbxBRZUWxyt/lA3BanlqVbrdSdMBG5p3j4Pa9sSfYjUr77zB9h2qpnC6V8u1+XFmGBTP3y97KCCHykGfB6mbCNng2OYcDfFxSp12MaqtqOwry+xB9gUkHlnfW9DENAGqcYOxFOWwZHAJEeIuPuyLr3pc8euQGkJA6K1rmHJDoeAl370hmHY+Wk02WBNr6bOj8owlbEPXZobBQ/xU4JVN9l2GH0nnIedokXyCvBiq+jOf90wECFhhyXgaKiOos+J5t5i72+cySCooSeyr88ULT2mwUuMCLDw9Pty72PByiEtatpiqNeZF8Kladg4jD+8iY+w8ru/PveAVmrABMft/YevFyzmyB1LNidUz8yrnolKmitwK2bPJrQzSfyMg7RCZtnj801QmxB2Hh1RdODJ04NYCR84mkyeVmLrySQsPfWBiZawIPusj3W803YTrCIFZh55a7RhYSAh5uolGsv0TMC+pfZ8CJFMfhrjIkPX4iPlpoVij0m+1EDPaObMhssohxiQLjAb8un88eH/6Z8SnJxoDDY9JjIkM28xe9G9BMqE8CdRizNqXF+yzFoq+i0JXmGCunk6mGwVz7dw0Aht2yZLXL1jgrrUpP84ikBVljLiJmABWcOUt5aq4e2FLPP4IYwNw6/6kBGhUw92jqGvzzSz2IXFoSGkFThCZ6Hdi95k3hbTR+UyOtNXxKf3qOHtoG1+tO5u2H6XvCe4OZ0IsSdV2C22f4X0XRjnoLI9dkAJcmaPzyLbgrWgj/dizWHsrNz5PzGCCZ7zywhZMyk6RrEJ5ucZ5k4Fosm8+U94ZyJFHYaHthMhJSLgoHd9plpggxNFeaBMx2BdSg8d0qM1P9s3xHTr7n+uvFsfU5qJafAkyfAi/gC+OLxCw0uMl/XJ+id3bpdG4VxQwyKvZaxCWrPaRHIy9KcdR43jv9jfykGUTzB9KjyF1G0SkyMHMeY5wgAmcEp9B8ffD92GR4FQExXAD/Rm70xyf9mrg0HowJ+Y5o1trz3gJx6Em+pGPt0PvCVSXsmyA7BLMqIiL8iKyvmFzR0O7FJPoUD5dZJ1eKn4tDUJJ4Umb72XTHqR1qs8KsHPpu1Bas2jM6FoTMyoX5aScTz2RVJH0xso6SkxxuMBg3uUblz4fj83SnK1GADX8ZJtrY6l5lrbF1/ZuSi1BShVAdFnfBB3Sh1SW4KQz2mL+Y4svWwspzeGp4W6pTFKdMDjOxHzkJHkAfLjLjqf+T1Axa9og+Cl7gRTi70bSWjsQM9F19HqH1IdJOoerLMQTLpuVpFU//G6/hsxG6sFsnzMJ7n73SbIizBrcriqJQot6sKe+uP1gONUVuBIPlDJA49atkvafSdkS4NR+zciAFrwoHjdIsVSJKqDxAVrM15uFJb4cUI1Z5j3Wgo4gLqLZDMdNtYKJ1P7oBTGSBKZGTqguAYXj9FtcQ4sSbuwAvEKj0iSHfGzNYpAzMhIVEl+O5tVLe4s/3uEd9Gsrl6bogS5HKQwX3XK8Vnj7lf+5qIQiTSzRnfkEpdxxgU0LAZG7OSxjiHkVD2gFaZ1GjKhIedce7dFUwac8qA8Ut250wwH7O4rKHFECWEhhPfyyNNFFWeFrcIjCB9QkpXuz0U80DXFirexggv6bCvxlzrpYL2A02HykHogeIIum14ATyzZnKSfKNZqYUHkFr6qN2/mPO1WK01C9CpwXcl3fLEficn+qMiFNH5a/JFJBAF2ZZWJ5EP8mGzPCF9CDlr0z0YHruP+6bAUG47CNw5yDdR0WDTjq/DqDE8W+/fc6iTB4r9945YbHjR76ZqoOFAkp3KnRniRLdWK5iKvLCCH/Jf9vzHnX4LfdHlAiEucOADd6aaTJnMDTB0DnLoW9pvA/TvJPoH2GYOwUyBgDkGv7VLqRPzjz9nIWylnnWqIlm7L9YRAuucHIleKaTQCeUrXP0Wnyp2nmBxzeDiVOPsap6l6MYLHO4xg8HBAK3J1dgvBpIjcYDKZexJV5mf8c0hpw5ODKTwdkKCeeTezcPXh/9nI/FlRcIYy8sH3nKCQ0EEucVi+uinLNXGTmZXSuB5jYC2k1R6X8FYDLSs7G3qg+Wa30/SZZVsN+vbIWPDRqs9HMz/V2eXRrxClGwzMRZTnpwuqrD1GTjLUluOf9uPygJGxe+/EB6Ak5UCCsCWe2GLD5iZX8ywqGyaP9CGKOOsQ504tSVjAMPPpKo7Ex8LT3xYdh4QReijfasLvMKd8/bu689y+WY+S8IO9LXV7KYzmOOycnb7imsjeiBPCZgNd2Hd2fLIQOaLorPkKjFZcGRaNO6lp+pBPTMvw9QIbYuQZBlhu48VmV3i/3Y0m71BChUWR3cdNSS4D96YC5J0Y7ZFqMHBW6G9p9pf1EMvsoq2dzX2wSvNYXqdP47zyePLrk+nreb97cBNao7U34lHDXeFQ+HqT8XvcE26g42SyQZmHFRlH2UZ0kohpcgm7Li2wAo0IHMre/0XfRV0HtarB6og11KC3Z7/RUcqKzEPA7ZEJQgZNgBZE02MFT702HN67p516Nvqkm0Gjx83wQdQMeqxlml8LDK0V5SdTdnatEK7C+bhiQ3CLRBupVuTeGYhJY/BbrqiE1SY1vdXZ2SFuvNbcrI6ErGJV8/qH1acDEtu58Cm9IYXlR4R//8FS+sjKjiIPcuzVQ+9bV25MODrRYTzxFJYbLhp2Um/HKOncgLdKHj7tOrMZfxR6CrV1qRAGh+vD5dMMDkqvh3RtFI8M/B+95gOm4879zLjARkfVycAOqjJdoBfgWjWNsJnafTkmc7B3nIQv/Doeol9zaGW/DlpeEHHLSCVAFpPcoRFbXqIB0NIfCnsKcK8GmaNVe1S1WmDjR9kV2WjYdDpu3d+gX3edjZ363f9jQEbUhFXtuRXOQv+gmYCubqBrqUoagUdP7xj0HIFEZg93/KZ2CrZfN9t0A6WcpUJBI5WLyoLnqf11jJxzi7XP7icTGifXh8HPdPwOvmb7A1BFcfY2H1yrgpQ9LL1WPc8f4dqfuE91BNq8DtcEql3/06rGk4gsNyWI77GnH9IKwUsAFlrpUmA3zzUPojorig8/2Cbd3TjsCKM9wxliCLyKPngKsM1KFkqM6bMFtyxYYrU2eewcxYM6RkLIzuCbt2tjjkrWkSVoIS5lGaeH9ACsgsCD8uBJTg2FG+jOXwTTSCvGIWOiSPmrIKKcqEISVvUcMWhHEeUKjXTMdtBmPl8s4WipwTYa2j7rmaa0RNf7IXAOT77NGep/q0h0KdWRo5UPERTufgAqHgtum1dZEPq6OH8ILA+nokd8MXPhCko+zgkNqNlrLQew5ugiVBI+TSaF0+Nh/0lIpsCoBQWlDacVD+Vx3x3aSXTbkp6URafBo7r4W0YMJYL0MnwFM5mzSBvH459mHAZ0yzT09dEXgjVW9/ggg2LxRO6yGo5FTpGQS5EwMSjG3crtd3U4X4CO+KX5W46TC5B/X/DpEipFhWLaE6rpYO0r44KwsS9Ge9H2dfFY3QNvXA1sWHN6WR25HgQ091u/FmxcmTXpvXerH0b5xRi1MwmGmrK4ZAT1TapoD8+smzXuW4xfFWkVDOL7zk9xNtB53A3+dJrIzc5OTB601UXSFtQkX3hWaSnhB0fIWaxp9w7vGQDYtDAeTTDigrLMhVNfLUpJcIxhrMjO0Amicb+Ubauev6gApJbByzVQRTWq047GGRSYgxukHnlk5+xWTYTi31cQQCJ9ILZRJ3tV05M1AIgNeeDW2H8IBJqkzSl9nnKSajGYOD7eMyjHHWbG4SEV8CvAH8Iew6SodPSlX4spOyb4O8XdYQ2bne98jMMolgBIbc8j1VfPhmdPcqVcmf5qMjZcC2VzGSMF9s4863hYPVGq86Huy5cmg6zBz+qDU3yje9vmEr3yJ6kZhF5z8UdlkJdjq/581O9VuCR2B3lyEAfQoUZot9HdVILawreyRxAy11JlpE3UoO/fi5/5omkUs0A7Gvb5+bsteFVIW+9l+qR2dINow47smAidv0bLLEr/yqKcUanjvixyzAQCM5CVzq0r7rDR9M7wjLxBq9eBWRVmyK9TfSJqXHjL8T3l8phqzWGZrkRC5oiPO6C5Wf59fFDP+ituUaiEqytebX0Feyu7U5Leql5gBMTdDPsmK7KUOyA5TuWxjGc7dN7kJKEYpro0VWRhjMArMIGbutu6vN2OSHb6nvd508S4Q34uCRKu96bSAD7YHASNVhzXv8N8jroYf5Y7E9s4wTpkvo3BZkkWqpF0M1vka3jjUC/JuZvw9V8avX+D9bciICl12vr/bQJxDe+TN9MQwDJwOe5HRWZKtCtH/1/2brHVDE381FF3JIILjZf20UTFL4MLwmZtFv3M88Bv1x6hEyoaAlZ5p5QEWzlw8bJBt8orARhiododtduYtJBSF7octT9JzbeKdozaif0LBWL/u9RjbeVNLZ8UV44Ye6Sz56Vn8QlwftWL01WoPryii3ZZ930Zx6Ins/HGvGQmHAD+2qvuKQAs8Y6ublb+Dvhp3Y2NNMjsuzOvb6m4YtkPzbhlctKadex8tBQuo0zhmSxfDIZm5VnEDdG2vZ6kcykYFxgAz3wrkVyXQnwxyQIeYMIHQYT+257jBWD0yJIiC3PqmohMzTC/65XVgSsowG2kgnlR7pYY18nBQ8aVfJ64D79rH2pymM4xMU1Zk/OS14XiDcldhO0c0RhQxiPSY72XYxpiaKVYmzOcEvI1PzQa7+LVZ6pBIwn8ffWvhqa38b3IskTs4RBkYs9i+i9/AqdAQg2IOeWv2fuo5tEcFyefI9nATJXQchbBEQO2Cj3kaBe2X+81o97B22kYSwjOkgZybf53qZFQ6p/N0dL/VnuL1cYTGi8k6rMpkKGx4j+Mc/fcHUVNXTKhyO10FkvHiN+qSbJGepJ/aLXoLZ8RET0Bshv/4hAQgzeS7yl0n74cedqdnmAeHmQ2CyXvMM0MWpEvA2ezZIKU+WvUSaGpTt1kvMloerqnqxHLfT01Yh2n3iD29EWnrQsyjedi1I5SUgvQKBM9G+oAai15cO1con2QFz3UK7w7ZgzM+vPmbk2QqR87fzlbdTSAhrLXzqVfLnWBA/4+5aC+0BRMZ6iX9lH3QXtKU9D01K3HprdilL456y5lsl38VQaMbz9hk0LgquziMY01Znz2WE4ClHG9cF/e7stVmn89oNFUE9NZ1RAc97KzDEWHLoKwlCG6L20/2Gj7/M6PDhsvhY+FMzYRg+v/0jo2gPT0UTCfaLBDRVvKQgUSYPMG1dr6ox7ohepBUS0msHq/V7A6Y9WfKDgSLatqTzwhOXnuXAoFc1LsdlV/Nv7XHqg5TAohZGa1mOn44SyY1fyPMCxL1QmxvhBC7mxDyj9DUnBpbjdAzrBW0mUzZ51brDVW3f0A8oKL6FYBf0mwK6YxDMJogq94OPgpZyKHKBYvJXMfs6u0pYnEn/jPeTVQMK6uY9Egww5setjqwdQmwi1ea0/uoNw7QKPorCWZohFt4VB+HUy/ObjCDdxryIg/y0wXGMwFyftSyf0v/ESOVaUNOHg1aA0SQ0KOwx/oqBneMvSoxZc7SqvQaHcx3ZLg7I0FQgQ9799KuVGTfGNgWvzIMnHqMNnCyCLJMNoNQK9XA4Wkq+6tVuCUREehKj+szE6KlaSwgAPfb6JeGqIyBrjJK/wNw2yPaYB9wHia3A56M5r4OplAvdVjO1vrsc4I8LAy1zqqpo0yM1hfixHeLNDG6ufXaX/4mWxYpqL3hBHpPbnox49P3jj/wGgdZFaJe1JTer036xd0Xak5qCI6SV86xqAdAChv6sj7ESw0SU7w0leCi/08lfYfucRQHdzjO3JkA7lvHw0ouMCSCweP+ms5HlStT1HLlgQ/pkLQ0HiDkuoPtTY6fDW0UPlH3ebKJKJsiIlEwAnWQ1ExfQhfs1IRdbEO6sgyC7u2YqSye9WFoH3s0+d4P2X78UPcUsRitbiSflMds3+5ixk47wEAbwHOouv3l0AUb9zZIP32hh+8n3fJx3LXT4wqErJXRmufydvyJuKW5IkA+rD7B5y3hJGUFrf+je8x2WEZ93MMZZjKF3R4hY4E82J7y0z9znWEXqtnGce0dejOBkrf6CbP1VCh4ixhRvmOXO9yA0A2XQqeWYNfk1eUkRWlybRDBiE5SOOtjudxOpqC6Hv0XRqdL58/dsrEItVoppvb13l9MrZRKzOe/vtw9JP9aAkOa7ra6MbT/3YE4LlEJ5ticKWKe+rOGibg+N20Vx6Vg7J3byZG9+hIpULnZWH4Tq3LmlMA+oUfgAbbzPl3twbDuQozSElI95KSsXaBWevUxIWPQdY+4eolMlTtLwn+51SP6BWFEiioYy+r2Rza4OqKJPMbx7t0CZCtpMKxYQ5JCowbAH7J4Y3Eh3C04j1H/2a7qH3cVo01mg0KjVVR59qENmLLCnQ4LNMS3i2XshEK7QAIvi4D+egZPpMUywog3s+tqRiaGXIEMFp3rd3TuvLXVT9tpJGxjgQLGMKXmGL1MVjoN97by2NaOn0JoIbOQqeBIHTVbBYNON5DD3XP+rStPIfVbuHd+90TJpGh8BlfV0dLneK2wDMnndVGVvQLhvaQxu6sL3XsvtxmQzeFWUSHLeAlmTc9yNQKkXtOJWS9faewS8yotiXdJQ6EI1vpVOHgh46gljSllVDRx9qlH7i2QFU/dKpaQEbpAFUBI/eSUGbpgT2ORGcUGXXDWjQJQo+nCkQVnIMRUCP367os5Iw4Rb3LDvOi+/mwcBozzUa4WkjVcSIURKO3RTFCiY9j3O6C5MBS6Y0WbBooC0nOzhKxL8xMIIaM/tnyEzIdlABrz3f9XlCiQ0hh+C7/bNp14eUvnjcHWjBOSw8E7BjzeXkRQkpIuZSOriwZ8PiOLZxCkXFOQ4hbXa4Tu69lccJ9Hd0F1lxkg5QnAhhfx5WdcTkBH3SibBUMCLPb/cYypz6s4GGDMV5smYibldp//j9gbCEhqanpxLsoexOMik4SOt879z21iz+8V3wgG8CicQsmxcsqCc5QUqOZhnpO4qAFgzHF+noxN835P4xf5EsOcPvYWwtzK3WEYVGy5tuvxE5WZB246SGIDgeC4sMge0B4p70Tse4b6NjlPHW+90GmqnySqY83r0ilaew46qmwi4RzmOcPehbn4YPCoISjQ44RURV++dfU53vcKhkSj6cWuh75tdSSUNMysFwoP+lN2gGTwxOfrha9wWxDPpimhEBVrt6dcBIvdoUbCLTDQDZuUOVVhZP4sATqq8z7Ai0STnGxzKmAHG+3I+/tvrDN/OOTHwR6W5aWSRj+M5wmS5hfdvimlus2z4pE6RV+l6scSEX3XjFUVgbSuuufln4qZfmgBxNvIZmkPtMh4WHAtuqRVdgDOLksqdhjqc9jrNVpRsYL4L5fXaKhNXYNJfTorxbaoSpoqj6ZEp05xsc4y4Qryx7BRs3iYvuHRbCUsiCPmmGdUPXDn6H7woEjiz1YeriH6NPF5au5aVrtcw0DvEgLLKMuVq6QvzE1mu+x9AFhhIEE3jVvzGWs7x+IBGJ2hfG8Kb57q5sDsPmddrc0s2doavGt3j59SpKkbETAVxcSwwHbpAEsYTNPM1KhVl7EPpQp+gNotyPx7hI11xG47CrYE7+4xlCFpaDwvf9FWescjE9qNrcgCXvSeme0GAOo6QjsttWQcRguwWZb6OG1VPN2xZcfyUeEGLHhPkrziDDf4SHNaCcXXJ9CtFdyRMVueZNWqaoSKhpFI91MMLSXju3pGbSzJlM8FPf/oxZbRADvlZZCyb8fbb4mQVBZZ3GWV4hj4PCrLA1qQvEqs9XLsRnoal9WaSQhWRzLJmCurnGGRc6wxyAAejp0pAR70k0M8R+ziXphTbSz5jU2xp2cFe1EhegrqPqjFAtYWbYwsm9X969oYf76RSVpD5DfI8iDfFILBkfvnZaZtHikQ2tfNY1T0QOYafZ+dfiQjWZxqrDxXDWbc/jYZSbOzpgJ0HvC9wodOgTk5d5d9dmNrnM0LH8bvtI4zgktUZdf/DkYM10EF8yMhbFqvpMTi+TaLBUNd9aLSzSGAqu41xsKxsEYHFPhxozYZMPCafc4U5t8Ja7k34czb9pTsN2JFnwl8AmZSpI39KzBoEcD8fz0CAcio2KlaDIhPF8V0HkEbwc2c0mkpBazhOMI1d4cxnKG15nlJ+haP4D9g/H1z7jIEHS7enL9st+r19iJpqLFuJiKD2NT7LXyBzaAcFxIJ/fo4roeZSvHUyfgqUjSVcPiszEAuk4Fgqjxih+ln6TZW8b5sbDIvrB1Ul++c1B63XbFgHdVJTaRPzIXeh5f5u+QYvfa7pHyQV0ZUIv4SnfFMvTC0g0/fdaaBd9rcpxu/CBpbobKZgCIyVRDZGdPlZs8UGyu7+Hxb64E/k0YIIyG0d7ZSIcU1dOwyAQt25Ow5B4W/oUhgU+Gf+qB/Eqf+V11+GylEkiyGag2sSabnAwgaqTr549u7USX8FH6EnKLv1g9jl2zIU7C6GM3aeDn8kP+9aBM0Agrl165RV4/UHaXPnrBjs3YOHlrMK9jziNkwwt6+rC5FPPvSm2uVuOQouD4+Rk/8X2VoT+8bijB9PNpfsOsNhiSOVgntu7dzfzJItraFExs2ylPt0vanTgZJP3SIxPvZsgaDSBNmxIh0KPLS+EZkJ1Xy0gY8WVOZDbYF9v0GJta6+GUy7ek8lisYumJ1nyw90NF5n7L6H1aFMYqA/WI2COJA7pWaf9Ugf5pniETIJNyNXtonwZOLeCG380p2a2m5Fs4WDJIbVCtkJ77ah+h3HMvJJ0fzW8OXfnZDuzbWB935lP5zr2+vOc7CL44LjNt8p2deJJKd+d8n1mwKwxWxUjkxJRVlpIqwq1a+Sfeu1oNGDaOXyS/LVoiWAi4/RFFK77j8sVBWyTeqc13DCYWKdEbHTgEcIdtBewm3fvU99V8J4gYLJijdis2O/D+3FBz8kG/SwAXwjzKgO1TmXuA3syLPxxfnEUxttkUPpzQJgAzcN6o79tpHr3QWX3TVy4USKZJPX/G7/sFv7TB2RKaM9LvG8518UTl/oNK6/mqMpSOqsv0xRVzNjumgamqz/e3LG3e1lkrW5SquqlrDJIrN90AProjO2hsva2vAv1ZNPbHVfvH6K8KnMmDbXcZImS+YAXafdXLVILS/Q0MSKuRaLPQABT6AsH1SpBlkiSLXyhT/gT5IbfD6Z1Jx0n7l33o2uGW4lgd8BRn8WUeEHBHEn2SCXVQwlREQtvN7iSC2y8qSngF4ytc3vgOucrGccauebyUn9sdKmkhMom+XHRGLg4yr7NW/ZAq8UDCTjimw0unj204NYoihtZTNdXwgmCpqzA6Y4a3S/braI7FEXELgpjVSnB+dqkyFq3Tny2G8lAz1OtN0TZdE3wgbqL8XtsE5Ut1NayTqmPNmEhJVC0f6ZfMop0HP5VawTxA+lq1XoeRAoIGH0ojuV+9O13sh2V2zoxj5jVyNGuZDtqZVlEeSIRI05PVi7nZfKw+EuT5YTkdX/qnx/AmQXABJR8mEbt5A8Oab2RqMdG+P0zvDI0gODnGDSO2w4ZOrD1zi5LnYaIljibbOMhpDWcwsd6Ry5eUmiLQ24OpaErO6a3/sYLybm9xOJLqfn7DNg/5SKBxEfKNyyUYP4KtkSMQI5Xo7dHcIhqH4l3CRK/gB7WtFU6bj0mReNJIitL8grYbUyZpqDuMDT5s5WQsWjOEmRSbMiH7HIkEIPvRu0WxMnRCJKjGFWdlKGqK96T7jlsEHCjsPjk/9VEQ4W5qB2tRAFGJ5YGgbmyYxqxGxduvkNdd3IZKcIbvtEtH4X7aHeyV4Dcn4wkEzUNRRhISM51Av5I1mwi2lj3DP8d6K9iFzNVDCSb+eb9pBu+SEqYrvFC8WKSi8OcZDj50KV871120hgz6n6OZy1KOh8OzKNuCKFt9mVlUfJKzD9gcuL53q+oTHGGIKFz4+4/zLC13N3l3y4Fn9dzM02uGyBGoJXmF3jrwW9OguOsh1FVykE1suM6kC/e005VRngkgcn29tixbfGSx7k8JzTId+5wTXE1HgKXCtGlwA7L6FxS+RUGGP2az1Em91D7THACjjqlVdoDOltQ7Yb4S8n4kG/m/CvtFfQB0e/e/JMgICLGKds6v5THENB7WYOdJ0P5s3GQzdbeXjUAG5Y2WCUBs5LZ6xDZzv1L7jfUHqBbmnHW7U4g+UTYB/tW7B0Ya0JAbpzWFSoVQH6CbY6q9fM8ccelwWdxeWdjZm+TcmBAHpje+emw8T5mUgl7Omvks7D2xk04/HjynzVyBN2dI3dBgxTkB1keL9tMN0WgyjY0ddKI8pigHP9lOa8hb7F2bZIa/FqS6JJPPHnlyPbVl+weIG7j4ocmWH/OkvaT4qtcbnafk2ocwOkjSqUob66ehit1UDMwKXreD2R92MZugTHNe/PWAZesANg9eBbm2p+4kqK52j8MW3AhqaffDN+kK195DUM4FLVYm8BQhOF+OWoM5tTD8LImCNRenutbU6qRxpaMDXCBU37/K3Y7eobcg/IaZaBuw44FteI67Hdgufk5VqCDjlK7jDBUtVq07hpPI9ymWW/m3nNLQlusNGDSBNYXOUBDRWNnHira/1eo9GEwVgpXn2tG1PUUxT15p/fbfGXCvpsj0QlzwErC0ge/Oqlsh7E0QhpqDAcvlBJOiXDD/bv01SkM269rmghWHJPUbmpq4trj7H6cCMXMIwWgOLaTXR0w3tamzJpReC8FXDNwkxSCbmg/ag17JdPyptz7mR3k6KvXor6tFCfEv85TW7CDWLEap1AC12Ym+LK9/CxdKPnXz9Qz4xNXGn3sG1wAfthifQfjDyiCnLo2uhuMzI9yKxH4PUTt52mReMLmnHFrrLpDYcPC+cU7ge55guYhGv/ANB92YzoXrI+Hs6gdXnnfE8GGhfydGwvKBKCtpDecGnu41Mz28j9/LTVtSV9WZEoxANMgPGo4BDbY2p69ixYGQWATdyg9TRDAK7f/Lrlubat60yuVZ9wcwqZ7NBP71mX6NEgdvfK1EgMnkZzsDQl/wWDHdAoOYCo4pKwY5I/V26cKTO4aMYcV/YDdgglOtas2KtIXBJAcgotsV4YfF+CDN4T5WdX808VdXh3/UXLrAdcMDF3QIXj1HyUHIOkXBH7DXICbJt9eNiowRXiuB0d1J/FqjPFe2IlNdXnwFwpRusB5PLSv0Lk/AdI1gQmao8wwLmnoh/L9riMbMMsWAOI+5B71d+lGTKlxx4hQn4ixRfedyZUUsRcpGrgAS1XqCKzggl0/LFuyQpe9BsgvZGkEHQ4ELkl6bcLtiHZ+7uFxmRjnV7v8PP1Whug1igIT3OTMnmb/dGJPuGKY5fRdvWoatxfNU3ABi+fY7eHiPqC0gQDpAC19twVfWBtBur+ST+y7fzmSE5Q0C3mcp8/31XIdqm7sEZJHtFnXBgaTyG+fWRGAY70K10IBvKH2TE6IMzm1k92/Cn2payTupKTtojgP3uaWIgFVgV0lD0WGR0PanqiKtrBFwqznvb/rz2PgpSjWd2BESLQpxY+6tmKXZnjvY9xfR12CQ8o/aKz1t+XxCSzy0uE5f/kaFUCrwxjL8gT7SEUJshp//5/yvPFJHgJlgsvXp+gRQCSzz+vS6rl3BhMsbj/HzwJYz8GsWppOQDGVswlOHEaFE/qhImhDrt2DUfNxtt21GW7KwJRn9/mtYIjlnnwgESPEpwoLyTru3SsVGzRxnZG6x+BiseUs57lTdb3H8KG7UPeH1SSjy9wZHELnar9x5cOtOR7lOvyjWm4Ab18Q+qoMxxLCFit0V8SmOu7AU8XGY3eSXb6Ly+kaQmDkRlOstgmcj+rD34KNz7LTvLL0O1Z9J/nCjp+1flOFgtbd7Yg0t5eNrPuppxYxJfSpnJRNL4S3YTffnV+x+zVsuioseET/On2wNi/TnL2rAQIKswi7Er3Sv48D/+PLsa2WJOSk6DqcCLmusILDiz0FwKEhMewrxtNyM2IAE0/6hiopIQoUgC6U8CLirhWbfVibSnCGZlF5uywIcaUlcEaYP/evokbi1NSquO62XNnWR4+fB3M1N7LaI5pwdHYOKEjg9OaSiTtEDypKGOVxZhdQS0jEvZ46foNS4SBpwZfPn60p6pQldNUmimhWeU5LUnEpZYjPJU6hmAsh4AKaLFfJANrZ9ou428yoEIFuiY9UgOYkqtSUocWxyijxK+NTtuDdbh7NJcyLIl6CUBWQjZiL34Bk0Qe3vmT9tpIKus3r5CvEdEu5Va2Wxm8CQJT9bESzuFBeH0QIRybKFAUVqNa9tCXukd1jwLXYKWsuMuFda8R1UjVG2cvAZ+R3lBV+nLksL4Ti6lubX3hKFcSyFsG5rK9pJt5nlSGIkBLP/HFqLL/KX0S96NdOo4CS+GYPBk+lBZxz6Yie12vvUj8l4t1ik/5PmvbLOTPCcaoPeZ7APUQIKIcxcNUDin3R1okbeAUGwt7Ja3G0ntQokBhlajisyXeqbfPLrTTKpTauclKp+DGdyBsbzFHEYtIqZnlLe5wjluF/UID6EgwWPGj0FVKM59Jom3+0Y1QTb+IKqHZv/0FIEEuVItlJHSixdza2w0UN80Hyc/eUGv6SBybC/EEs9cOcLBR1eeQXXe7p7hfIhtxxBrGhk9n7jom/4LXF125WzPmMCUiNyE8iO7sVSmRf/iSNFBveZWGPeCirfJ8a43fk5jCfA3NPEJyMAamu3Q5im0DKo8aonWXtye9iE8vraixlVTAGSXFMjP3+XiOE9jrnXTDzARnt7+9gvHctQpaAI0za6N7bq9R1lb55jILwmx4Ih4OA0K1/Xx7B9jytPFBRhEO8xqXLhxotsIRjnGRvnkMK/KJ1YhE9T2mNmclLYgMSn+7dzik8BzoHt+EcXstV8yNpTspqsnS96ATq3A66NbF449w9JqViBt4gWi7yVzt3kR4XSJ8iEB5anMqG+EsSyrMQVv0sMeEysGx+yYs6G2xPJw3zqTq4RzDQXPhYra/VMlt7E8zzl4D7L3HS3kkWf4ZkmFmnjcENPQdkmohl6p/gqkOg+8McyzNxxb5Fl19DsSr3MTuSMqhSKDn95ibzYCEdrZXJiKaqu7BFBuju+jSObOPchog2IsE/u/3U/UK2mntvSnD0qNkPYoRTskBnLJ3NJamL0V4sEbryX8NMr7MKMJ0+h2+xMKY4KERpvUrd0c6ABXWHqLdY1QTugC/5dhdoLy3+KwgG5FnL0MZw6qvOvHkKQRoQrcKLuwUld15s05QxurH67A9eAr02a/vUWNBIgP6vOa69ZZuZKElWttIerRDGIAkZ54fw7HBctSZtfspPxaliwbOEH/Laxot3ZQonzvXknSVodzZHA1Jw7BcNRsYvl+KJ0Y6pMRPpIbaN/QSuHtnjUoej+vlVhq5021xMUPKxCK/D8rSRbOmduHG85/JrIimgo5wXWP83lLvRaxwCxeTGVt44fTUqsfUARmQcS3f5DbHR9SZ4nJYIEvcCjIqLezJ3I6S7xBop57j3ZyMQX0Xxr5mc6IUmrlOXM9fJG5iDZQQ9rWsGZ0Y26GzTAEsD6pjPuDa1XAT1MRpxyZ8zN53sl1YEV0E0EHvZqcnBnqMTXRh6zC9PwDXEk3OHs2zLLIjBhY5+7lDxp1X0qcm8XtWorat33mUx+kEDDgaDUdpclQq/ZM6mMYoF433nKbCKDxCozugSPVaRjNPosMDy8FujvIJSb763XuBGBIYLS9x+HZhYiUa9xod0xKV9aRt7yczWWlLgfK8qn4fULHMBSP48m/wTWfDBdTH8uDAKt5WM033+2bCpxDhmZtE+d7XP65yBTOf9/EWaCG+Gs9/5kVbWS0JlfoDH6Si2tVCzCRGfV0XZAUWfXOMJ5F9dkMagbwaeqVqqbVONDQGg8zID5MUV7IkazdAz4JLOXsn1RuZnoZNIGV2Na15+dRKYUAmXFmkWBJpPMBwT8N4bd8VZwBnhm3WzH9S0sbpoP0sgf2OmPvQ6smMyfkVK+OLjXYubmtioAhdwDb5/pLRg3PGwfHEz6v9OOe4AK8iw2cma49tV44In8Rc9jGcqSQlFXPdlC8366ke4U/ITFy0/SQBl1vWvGk40KycwWGaLf8cCtEi/4X2W8961i6lYnpfNQhGcQyC8s2oIOW+Pw545Thq3ZBEyNC8YDr/pzCEmBI8U3A4IiQJoHiD9kUMNd8wfzysC2Kqc4OGeWYsJxmDev4Jn4HV+vqpgN6xxSEMABhRMdTteHiJAgnQEX9BR2V1sNqh5EcMvQNYYa5+bblQn7Rli1UFCtQkP6ECmGkxmPNkg2CGS2mmf0/WEuTZSyPMtbbrnftPgleOmJ3jSm0m1EU9fQHQo1NZti+KczpJ8mSYIVtXzXh4rNJcL3Fm7Bbftpjmj5UnuDpPk8HvqKOj2DGJyk4R0Md1x7umiH0DTOXaLwO0EI94k7n6R8nfqiwekgUQZ1rRek0HViM5YN0JLWp4f4NRE8ErcGNSHZd58+9Kx8lmkc9ogfQmX0rX1kB8QQzNbH+eVDee0jOQNUgQcew3y+0QbifXrtLHXDIxsqsej41Kz7vfcQRE1zUnY2phYNILK8a657zyHNMzPiRhxs28s1JX2kiCMEloubOXnc8BzU+n7LM9wztf63eFWN/eWHXVivSdCWg5DfWsk2CF8aFJrOP277QEPdkWlOlewCVEkLjyd5wUn9ZzaKOJKnDQDLfliiRLTKlU8TOeQj8jOU8FfpM9tayJTDpxw6sVlZuJRAILfxn+QAGIB/W1FGDjuuVu62hFDBdvzVSfge95Ebf9pclp0GrpV3S+gwBWn5J7aGiim/fRyIN7YVVXJsnAnVeq90vDdAV0XearTqjT2Ck/AMkBW6T/ls/6VUVnFWs01wxkahKR0tRwyLRKgHefm3RWie/pTVQpUMZw+/7ozQSW+7vuZd8lsvT1iX5rwlpiaFnOnDbHsr1As6vLETd5HVbcBCGbJHcS7ax9Byd50jdYyagUtjAaHYX8ryyuR/bDkw1o4j8+hXMfbzy+CVmgrfRDyl4dn+5LxrqRAXLoDKpQREAHqdLSsVSJh1s8KnZ/SsUVq27cq+O6LMSBmhT4X3E750rmWwCsoCre6bT//oFWYALjp2SbcxnULBaTvnYDHtfEbO1m/3c9nJk8ZO5KHQTV88ivTWN/S2EXwmisTPdcupMrvI8e48QZdkZu9WHyKron7MKhGFJw6Z0KZ3tleVrvvJo89siUwByPY+Hs4gkKPBQbLQOaedcv/xeM+Ih8rl1eHEC/C65xWVciToVqSGp9HfbhVzFSrO6kBnv7mJwnRLvMEwqiNankVdJJMw4icU3lKyw/ecNSWIUddqlbThYMiq8nHjRRufs+28cq0OI9zhpvxFvFgSZE/eAYvm0x+9lZO+EH9NkBngaqU1NMYhdombNuy3awUN9p0mJQ//e9L65YbShgoc+ZUlNy+c6F6gDEHXV0JrzevPIZFAe2RyRa2dNqzLvihAAMCszYueqszzXRkSyobx5+LTLK2V3lfg3wbS9DzP3QW7VHdHbjZcttQRvtjrGveJnNn2DE2ZDIbvkCrT0H8RzbGDdmIq4P1ey+hoY/W6NuZKOz4dv4HUNznxdKV1Wf3MvqUv35r2jTKvpPWBUWNm5fytX/QJwp6qkIOsSx7Y67BSCbCDVLM8/VcMG+T0j+INrgL9sfT1ICtACH8BI0G6ViUZPVzzCmQHW2oVIwZjAoFl6+meO/pD8teO1E+1y03mCpYfW9S8qhtH2GhlFlebPf4NbezVv9xbXKWz0xezRNQWqUqtYRTUbuzK7KTvjG4rQHfzBpVmK4wDLnSIwdSzTSk1fPNeY0WOpPZTLlvQ59xwgfFrb326vT2hS1JAZ9E6sujFtKTiJ7bxI6o4cBhDaX+adXREThhR+MwA4TqD7rga/o9iY7d6TVRe14CS2S3iSQsD0R6ApnhG/2Wa0A0AY2NtWTjmabdKU+KgIRDP9RQYVjXiF1qC+xyNVG03I9vpmEpY/G/zC4nLOKgXAZ/uTikHI9Afbkhfgfgo9arWbix5eH7WUo9RQygDzwCnVSjbXc7MihEufVj6WGbK963pw8VjY3RS8IH1cy2yZbIcKLO5CgAUcXJfF2+McnDLKtXxyZaf7SPA6KJq+zF2NHyfoeTOwHhGqNcnHVr1hT73pcoyXyfvCYBnG1Bp/aR9t8hoI7CXM3UZOisWGA1SHZ2jf7k9GlRnp3mF/c1AV+JjvUsnZrsybEOQJg/dn/9eJkyykQHjbF56zgcPX6DdMG03WKUMlYz+uOZ+5DZy9E9MZOZ9GMoLFdrIPPQQLjv+GlCMpoyHPXkzIODjHAID2PrnaRpqWVHh0rnieDILKq+Emrd5RnjgE9pDUXWTmHaKuqqYlcgEz4zbi46dbWrAAFBjsQq1rLHIiPJEcwFLCOY4JNlXRXQJqCUKXk2d1RSBGzDP6HDSpo863BhVRFFF6uIpjQV7j5ebFe3UkkO/+coIo2BTAcgBqOtQ134s9a4QJvofuqBYMGOBMsWZ+sn/2AOxDx6SfAnDFGw==`; - - -Uint8Array.from(atob(($06269ad78f3c5fdf$export$2e2bcd8739ae039)), (c)=>c.charCodeAt(0)); - - - -Uint8Array.from(atob(($06269ad78f3c5fdf$export$2e2bcd8739ae039)), (c)=>c.charCodeAt(0)); - -var mapboxGl = {exports: {}}; - -/* Mapbox GL JS is Copyright © 2020 Mapbox and subject to the Mapbox Terms of Service ((https://www.mapbox.com/legal/tos/). */ -mapboxGl.exports; - -(function (module, exports) { - (function (global, factory) { - module.exports = factory() ; - })(commonjsGlobal, (function () { - /* eslint-disable */ - - var shared, worker, mapboxgl; - // define gets called three times: one for each chunk. we rely on the order - // they're imported to know which is which - function define(_, chunk) { - if (!shared) { - shared = chunk; - } else if (!worker) { - worker = chunk; - } else { - var workerBundleString = "self.onerror = function() { console.error('An error occurred while parsing the WebWorker bundle. This is most likely due to improper transpilation by Babel; please see https://docs.mapbox.com/mapbox-gl-js/guides/install/#transpiling'); }; var sharedChunk = {}; (" + shared + ")(sharedChunk); (" + worker + ")(sharedChunk); self.onerror = null;"; - - var sharedChunk = {}; - shared(sharedChunk); - mapboxgl = chunk(sharedChunk); - if (typeof window !== 'undefined' && window && window.URL && window.URL.createObjectURL) { - mapboxgl.workerUrl = window.URL.createObjectURL(new Blob([workerBundleString], { type: 'text/javascript' })); - } - } - } - - - define(["exports"],(function(t){var e="undefined"!=typeof self?self:{},r="2.15.0";let n;const i={API_URL:"https://api.mapbox.com",get API_URL_REGEX(){if(null==n){const t=/^((https?:)?\/\/)?([^\/]+\.)?mapbox\.c(n|om)(\/|\?|$)/i;try{n=null!=process.env.API_URL_REGEX?new RegExp(process.env.API_URL_REGEX):t;}catch(e){n=t;}}return n},get API_TILEJSON_REGEX(){return /^((https?:)?\/\/)?([^\/]+\.)?mapbox\.c(n|om)(\/v[0-9]*\/.*\.json.*$)/i},get API_SPRITE_REGEX(){return /^((https?:)?\/\/)?([^\/]+\.)?mapbox\.c(n|om)(\/styles\/v[0-9]*\/)(.*\/sprite.*\..*$)/i},get API_FONTS_REGEX(){return /^((https?:)?\/\/)?([^\/]+\.)?mapbox\.c(n|om)(\/fonts\/v[0-9]*\/)(.*\.pbf.*$)/i},get API_STYLE_REGEX(){return /^((https?:)?\/\/)?([^\/]+\.)?mapbox\.c(n|om)(\/styles\/v[0-9]*\/)(.*$)/i},get API_CDN_URL_REGEX(){return /^((https?:)?\/\/)?api\.mapbox\.c(n|om)(\/mapbox-gl-js\/)(.*$)/i},get EVENTS_URL(){if(!i.API_URL)return null;try{const t=new URL(i.API_URL);return "api.mapbox.cn"===t.hostname?"https://events.mapbox.cn/events/v2":"api.mapbox.com"===t.hostname?"https://events.mapbox.com/events/v2":null}catch(t){return null}},SESSION_PATH:"/map-sessions/v1",FEEDBACK_URL:"https://apps.mapbox.com/feedback",TILE_URL_VERSION:"v4",RASTER_URL_PREFIX:"raster/v1",REQUIRE_ACCESS_TOKEN:!0,ACCESS_TOKEN:null,MAX_PARALLEL_IMAGE_REQUESTS:16},s={supported:!1,testSupport:function(t){!l&&o&&(u?c(t):a=t);}};let a,o,l=!1,u=!1;function c(t){const e=t.createTexture();t.bindTexture(t.TEXTURE_2D,e);try{if(t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,o),t.isContextLost())return;s.supported=!0;}catch(t){}t.deleteTexture(e),l=!0;}e.document&&(o=e.document.createElement("img"),o.onload=function(){a&&c(a),a=null,u=!0;},o.onerror=function(){l=!0,a=null;},o.src="data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAQAAAAfQ//73v/+BiOh/AAA=");const h="01";function p(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var d=f;function f(t,e,r,n){this.cx=3*t,this.bx=3*(r-t)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*e,this.by=3*(n-e)-this.cy,this.ay=1-this.cy-this.by,this.p1x=t,this.p1y=e,this.p2x=r,this.p2y=n;}f.prototype={sampleCurveX:function(t){return ((this.ax*t+this.bx)*t+this.cx)*t},sampleCurveY:function(t){return ((this.ay*t+this.by)*t+this.cy)*t},sampleCurveDerivativeX:function(t){return (3*this.ax*t+2*this.bx)*t+this.cx},solveCurveX:function(t,e){if(void 0===e&&(e=1e-6),t<0)return 0;if(t>1)return 1;for(var r=t,n=0;n<8;n++){var i=this.sampleCurveX(r)-t;if(Math.abs(i)i?a=r:o=r,r=.5*(o-a)+a;return r},solve:function(t,e){return this.sampleCurveY(this.solveCurveX(t,e))}};var y=p(d),m=g;function g(t,e){this.x=t,this.y=e;}g.prototype={clone:function(){return new g(this.x,this.y)},add:function(t){return this.clone()._add(t)},sub:function(t){return this.clone()._sub(t)},multByPoint:function(t){return this.clone()._multByPoint(t)},divByPoint:function(t){return this.clone()._divByPoint(t)},mult:function(t){return this.clone()._mult(t)},div:function(t){return this.clone()._div(t)},rotate:function(t){return this.clone()._rotate(t)},rotateAround:function(t,e){return this.clone()._rotateAround(t,e)},matMult:function(t){return this.clone()._matMult(t)},unit:function(){return this.clone()._unit()},perp:function(){return this.clone()._perp()},round:function(){return this.clone()._round()},mag:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},equals:function(t){return this.x===t.x&&this.y===t.y},dist:function(t){return Math.sqrt(this.distSqr(t))},distSqr:function(t){var e=t.x-this.x,r=t.y-this.y;return e*e+r*r},angle:function(){return Math.atan2(this.y,this.x)},angleTo:function(t){return Math.atan2(this.y-t.y,this.x-t.x)},angleWith:function(t){return this.angleWithSep(t.x,t.y)},angleWithSep:function(t,e){return Math.atan2(this.x*e-this.y*t,this.x*t+this.y*e)},_matMult:function(t){var e=t[2]*this.x+t[3]*this.y;return this.x=t[0]*this.x+t[1]*this.y,this.y=e,this},_add:function(t){return this.x+=t.x,this.y+=t.y,this},_sub:function(t){return this.x-=t.x,this.y-=t.y,this},_mult:function(t){return this.x*=t,this.y*=t,this},_div:function(t){return this.x/=t,this.y/=t,this},_multByPoint:function(t){return this.x*=t.x,this.y*=t.y,this},_divByPoint:function(t){return this.x/=t.x,this.y/=t.y,this},_unit:function(){return this._div(this.mag()),this},_perp:function(){var t=this.y;return this.y=this.x,this.x=-t,this},_rotate:function(t){var e=Math.cos(t),r=Math.sin(t),n=r*this.x+e*this.y;return this.x=e*this.x-r*this.y,this.y=n,this},_rotateAround:function(t,e){var r=Math.cos(t),n=Math.sin(t),i=e.y+n*(this.x-e.x)+r*(this.y-e.y);return this.x=e.x+r*(this.x-e.x)-n*(this.y-e.y),this.y=i,this},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}},g.convert=function(t){return t instanceof g?t:Array.isArray(t)?new g(t[0],t[1]):t};var x=p(m);const v=Math.PI/180,b=180/Math.PI;function w(t){return t*v}function _(t){return t*b}const A=[[0,0],[1,0],[1,1],[0,1]];function S(t){if(t<=0)return 0;if(t>=1)return 1;const e=t*t,r=e*t;return 4*(t<.5?r:3*(t-e)+r-.75)}function k(t,e,r,n){const i=new y(t,e,r,n);return function(t){return i.solve(t)}}const I=k(.25,.1,.25,1);function M(t,e,r){return Math.min(r,Math.max(e,t))}function T(t,e,r){return (r=M((r-t)/(e-t),0,1))*r*(3-2*r)}function z(t,e,r){const n=r-e,i=((t-e)%n+n)%n+e;return i===e?r:i}function B(t,e,r){if(!t.length)return r(null,[]);let n=t.length;const i=new Array(t.length);let s=null;t.forEach(((t,a)=>{e(t,((t,e)=>{t&&(s=t),i[a]=e,0==--n&&r(s,i);}));}));}function E(t){const e=[];for(const r in t)e.push(t[r]);return e}function C(t,...e){for(const r of e)for(const e in r)t[e]=r[e];return t}let P=1;function D(){return P++}function V(){return function t(e){return e?(e^Math.random()*(16>>e/4)).toString(16):([1e7]+-[1e3]+-4e3+-8e3+-1e11).replace(/[018]/g,t)}()}function L(t){return t<=1?1:Math.pow(2,Math.ceil(Math.log(t)/Math.LN2))}function F(t){return !!t&&/^[0-9a-f]{8}-[0-9a-f]{4}-[4][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(t)}function R(t,e){t.forEach((t=>{e[t]&&(e[t]=e[t].bind(e));}));}function U(t,e){return -1!==t.indexOf(e,t.length-e.length)}function $(t,e,r){const n={};for(const i in t)n[i]=e.call(r||this,t[i],i,t);return n}function j(t,e,r){const n={};for(const i in t)e.call(r||this,t[i],i,t)&&(n[i]=t[i]);return n}function O(t){return Array.isArray(t)?t.map(O):"object"==typeof t&&t?$(t,O):t}const q={};function N(t){q[t]||("undefined"!=typeof console&&console.warn(t),q[t]=!0);}function G(t,e,r){return (r.y-t.y)*(e.x-t.x)>(e.y-t.y)*(r.x-t.x)}function Z(t){let e=0;for(let r,n,i=0,s=t.length,a=s-1;i@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)(?:\=(?:([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)|(?:\"((?:[^"\\]|\\.)*)\")))?/g,((t,r,n,i)=>{const s=n||i;return e[r]=!s||s.toLowerCase(),""})),e["max-age"]){const t=parseInt(e["max-age"],10);isNaN(t)?delete e["max-age"]:e["max-age"]=t;}return e}let J=null;function H(t){if(null==J){const e=t.navigator?t.navigator.userAgent:null;J=!!t.safari||!(!e||!(/\b(iPad|iPhone|iPod)\b/.test(e)||e.match("Safari")&&!e.match("Chrome")));}return J}function Y(t){try{const r=e[t];return r.setItem("_mapbox_test_",1),r.removeItem("_mapbox_test_"),!0}catch(t){return !1}}function W(t,e){return [t[4*e],t[4*e+1],t[4*e+2],t[4*e+3]]}const Q="mapbox-tiles";let tt=500,et=50;let rt,nt;function it(){try{return e.caches}catch(t){}}function st(){it()&&!rt&&(rt=e.caches.open(Q));}function at(t){const e=t.indexOf("?");if(e<0)return t;const r=function(t){const e=t.indexOf("?");return e>0?t.slice(e+1).split("&"):[]}(t),n=r.filter((t=>{const e=t.split("=");return "language"===e[0]||"worldview"===e[0]}));return n.length?`${t.slice(0,e)}?${n.join("&")}`:t.slice(0,e)}let ot=1/0;const lt={Unknown:"Unknown",Style:"Style",Source:"Source",Tile:"Tile",Glyphs:"Glyphs",SpriteImage:"SpriteImage",SpriteJSON:"SpriteJSON",Image:"Image"};"function"==typeof Object.freeze&&Object.freeze(lt);class ut extends Error{constructor(t,e,r){401===e&&bt(r)&&(t+=": you may have provided an invalid Mapbox access token. See https://docs.mapbox.com/api/overview/#access-tokens-and-token-scopes"),super(t),this.status=e,this.url=r;}toString(){return `${this.name}: ${this.message} (${this.status}): ${this.url}`}}const ct=K()?()=>self.worker&&self.worker.referrer:()=>("blob:"===e.location.protocol?e.parent:e).location.href;const ht=function(t,r){if(!(/^file:/.test(n=t.url)||/^file:/.test(ct())&&!/^\w+:/.test(n))){if(e.fetch&&e.Request&&e.AbortController&&e.Request.prototype.hasOwnProperty("signal"))return function(t,r){const n=new e.AbortController,i=new e.Request(t.url,{method:t.method||"GET",body:t.body,credentials:t.credentials,headers:t.headers,referrer:ct(),referrerPolicy:t.referrerPolicy,signal:n.signal});let s=!1,a=!1;const o=(l=i.url).indexOf("sku=")>0&&bt(l);var l;"json"===t.type&&i.headers.set("Accept","application/json");const u=(n,s,l)=>{if(a)return;if(n&&"SecurityError"!==n.message&&N(n.toString()),s&&l)return c(s);const u=Date.now();e.fetch(i).then((e=>{if(e.ok){const t=o?e.clone():null;return c(e,t,u)}return r(new ut(e.statusText,e.status,t.url))})).catch((e=>{"AbortError"!==e.name&&r(new Error(`${e.message} ${t.url}`));}));},c=(n,o,l)=>{("arrayBuffer"===t.type?n.arrayBuffer():"json"===t.type?n.json():n.text()).then((t=>{a||(o&&l&&function(t,r,n){if(st(),!rt)return;const i={status:r.status,statusText:r.statusText,headers:new e.Headers};r.headers.forEach(((t,e)=>i.headers.set(e,t)));const s=X(r.headers.get("Cache-Control")||"");if(s["no-store"])return;s["max-age"]&&i.headers.set("Expires",new Date(n+1e3*s["max-age"]).toUTCString());const a=i.headers.get("Expires");a&&(new Date(a).getTime()-n<42e4||function(t,e){if(void 0===nt)try{new Response(new ReadableStream),nt=!0;}catch(t){nt=!1;}nt?e(t.body):t.blob().then(e);}(r,(r=>{const n=new e.Response(r,i);st(),rt&&rt.then((e=>e.put(at(t.url),n))).catch((t=>N(t.message)));})));}(i,o,l),s=!0,r(null,t,n.headers.get("Cache-Control"),n.headers.get("Expires")));})).catch((t=>{a||r(new Error(t.message));}));};return o?function(t,e){if(st(),!rt)return e(null);const r=at(t.url);rt.then((t=>{t.match(r).then((n=>{const i=function(t){if(!t)return !1;const e=new Date(t.headers.get("Expires")||0),r=X(t.headers.get("Cache-Control")||"");return e>Date.now()&&!r["no-cache"]}(n);t.delete(r),i&&t.put(r,n.clone()),e(null,n,i);})).catch(e);})).catch(e);}(i,u):u(null,null),{cancel:()=>{a=!0,s||n.abort();}}}(t,r);if(K()&&self.worker&&self.worker.actor)return self.worker.actor.send("getResource",t,r,void 0,!0)}var n;return function(t,r){const n=new e.XMLHttpRequest;n.open(t.method||"GET",t.url,!0),"arrayBuffer"===t.type&&(n.responseType="arraybuffer");for(const e in t.headers)n.setRequestHeader(e,t.headers[e]);return "json"===t.type&&(n.responseType="text",n.setRequestHeader("Accept","application/json")),n.withCredentials="include"===t.credentials,n.onerror=()=>{r(new Error(n.statusText));},n.onload=()=>{if((n.status>=200&&n.status<300||0===n.status)&&null!==n.response){let e=n.response;if("json"===t.type)try{e=JSON.parse(n.response);}catch(t){return r(t)}r(null,e,n.getResponseHeader("Cache-Control"),n.getResponseHeader("Expires"));}else r(new ut(n.statusText,n.status,t.url));},n.send(t.body),{cancel:()=>n.abort()}}(t,r)},pt=function(t,e){return ht(C(t,{type:"arrayBuffer"}),e)};function dt(t){const r=e.document.createElement("a");return r.href=t,r.protocol===e.document.location.protocol&&r.host===e.document.location.host}const ft="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQYV2NgAAIAAAUAAarVyFEAAAAASUVORK5CYII=";let yt,mt;yt=[],mt=0;const gt=function(t,r){if(s.supported&&(t.headers||(t.headers={}),t.headers.accept="image/webp,*/*"),mt>=i.MAX_PARALLEL_IMAGE_REQUESTS){const e={requestParameters:t,callback:r,cancelled:!1,cancel(){this.cancelled=!0;}};return yt.push(e),e}mt++;let n=!1;const a=()=>{if(!n)for(n=!0,mt--;yt.length&&mt{a(),t?r(t):n&&(e.createImageBitmap?function(t,r){const n=new e.Blob([new Uint8Array(t)],{type:"image/png"});e.createImageBitmap(n).then((t=>{r(null,t);})).catch((t=>{r(new Error(`Could not load image because of ${t.message}. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.`));}));}(n,((t,e)=>r(t,e,i,s))):function(t,r){const n=new e.Image,i=e.URL;n.onload=()=>{r(null,n),i.revokeObjectURL(n.src),n.onload=null,e.requestAnimationFrame((()=>{n.src=ft;}));},n.onerror=()=>r(new Error("Could not load image. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported."));const s=new e.Blob([new Uint8Array(t)],{type:"image/png"});n.src=t.byteLength?i.createObjectURL(s):ft;}(n,((t,e)=>r(t,e,i,s))));}));return {cancel:()=>{o.cancel(),a();}}},xt="NO_ACCESS_TOKEN";function vt(t){return 0===t.indexOf("mapbox:")}function bt(t){return i.API_URL_REGEX.test(t)}function wt(t){return i.API_CDN_URL_REGEX.test(t)}function _t(t){return i.API_STYLE_REGEX.test(t)&&!At(t)}function At(t){return i.API_SPRITE_REGEX.test(t)}const St=/^(\w+):\/\/([^/?]*)(\/[^?]+)?\??(.+)?/;function kt(t){const e=t.match(St);if(!e)throw new Error("Unable to parse URL object");return {protocol:e[1],authority:e[2],path:e[3]||"/",params:e[4]?e[4].split("&"):[]}}function It(t){const e=t.params.length?`?${t.params.join("&")}`:"";return `${t.protocol}://${t.authority}${t.path}${e}`}const Mt="mapbox.eventData";function Tt(t){if(!t)return null;const r=t.split(".");if(!r||3!==r.length)return null;try{return JSON.parse(decodeURIComponent(e.atob(r[1]).split("").map((t=>"%"+("00"+t.charCodeAt(0).toString(16)).slice(-2))).join("")))}catch(t){return null}}class zt{constructor(t){this.type=t,this.anonId=null,this.eventData={},this.queue=[],this.pendingRequest=null;}getStorageKey(t){const r=Tt(i.ACCESS_TOKEN);let n="";return n=r&&r.u?e.btoa(encodeURIComponent(r.u).replace(/%([0-9A-F]{2})/g,((t,e)=>String.fromCharCode(Number("0x"+e))))):i.ACCESS_TOKEN||"",t?`${Mt}.${t}:${n}`:`${Mt}:${n}`}fetchEventData(){const t=Y("localStorage"),r=this.getStorageKey(),n=this.getStorageKey("uuid");if(t)try{const t=e.localStorage.getItem(r);t&&(this.eventData=JSON.parse(t));const i=e.localStorage.getItem(n);i&&(this.anonId=i);}catch(t){N("Unable to read from LocalStorage");}}saveEventData(){const t=Y("localStorage"),r=this.getStorageKey(),n=this.getStorageKey("uuid");if(t)try{e.localStorage.setItem(n,this.anonId),Object.keys(this.eventData).length>=1&&e.localStorage.setItem(r,JSON.stringify(this.eventData));}catch(t){N("Unable to write to LocalStorage");}}processRequests(t){}postEvent(t,e,r,n){if(!i.EVENTS_URL)return;const s=kt(i.EVENTS_URL);s.params.push(`access_token=${n||i.ACCESS_TOKEN||""}`);const a={event:this.type,created:new Date(t).toISOString()},o=e?C(a,e):a,l={url:It(s),headers:{"Content-Type":"text/plain"},body:JSON.stringify([o])};this.pendingRequest=function(t,e){return ht(C(t,{method:"POST"}),e)}(l,(t=>{this.pendingRequest=null,r(t),this.saveEventData(),this.processRequests(n);}));}queueRequest(t,e){this.queue.push(t),this.processRequests(e);}}const Bt=new class extends zt{constructor(t){super("appUserTurnstile"),this._customAccessToken=t;}postTurnstileEvent(t,e){i.EVENTS_URL&&i.ACCESS_TOKEN&&Array.isArray(t)&&t.some((t=>vt(t)||bt(t)))&&this.queueRequest(Date.now(),e);}processRequests(t){if(this.pendingRequest||0===this.queue.length)return;this.anonId&&this.eventData.lastSuccess&&this.eventData.tokenU||this.fetchEventData();const e=Tt(i.ACCESS_TOKEN),n=e?e.u:i.ACCESS_TOKEN;let s=n!==this.eventData.tokenU;F(this.anonId)||(this.anonId=V(),s=!0);const a=this.queue.shift();if(this.eventData.lastSuccess){const t=new Date(this.eventData.lastSuccess),e=new Date(a),r=(a-this.eventData.lastSuccess)/864e5;s=s||r>=1||r<-1||t.getDate()!==e.getDate();}else s=!0;s?this.postEvent(a,{sdkIdentifier:"mapbox-gl-js",sdkVersion:r,skuId:h,"enabled.telemetry":!1,userId:this.anonId},(t=>{t||(this.eventData.lastSuccess=a,this.eventData.tokenU=n);}),t):this.processRequests();}},Et=Bt.postTurnstileEvent.bind(Bt),Ct=new class extends zt{constructor(){super("map.load"),this.success={},this.skuToken="";}postMapLoadEvent(t,e,r,n){this.skuToken=e,this.errorCb=n,i.EVENTS_URL&&(r||i.ACCESS_TOKEN?this.queueRequest({id:t,timestamp:Date.now()},r):this.errorCb(new Error(xt)));}processRequests(t){if(this.pendingRequest||0===this.queue.length)return;const{id:e,timestamp:n}=this.queue.shift();e&&this.success[e]||(this.anonId||this.fetchEventData(),F(this.anonId)||(this.anonId=V()),this.postEvent(n,{sdkIdentifier:"mapbox-gl-js",sdkVersion:r,skuId:h,skuToken:this.skuToken,userId:this.anonId},(t=>{t?this.errorCb(t):e&&(this.success[e]=!0);}),t));}},Pt=Ct.postMapLoadEvent.bind(Ct),Dt=new class extends zt{constructor(){super("gljs.performance");}postPerformanceEvent(t,e){i.EVENTS_URL&&(t||i.ACCESS_TOKEN)&&this.queueRequest({timestamp:Date.now(),performanceData:e},t);}processRequests(t){if(this.pendingRequest||0===this.queue.length)return;const{timestamp:n,performanceData:i}=this.queue.shift(),s=function(t){const n=e.performance.getEntriesByType("resource"),i=e.performance.getEntriesByType("mark"),s=function(t){const e={};if(t)for(const r in t)if("other"!==r)for(const n of t[r]){const t=`${r}ResolveRangeMin`,i=`${r}ResolveRangeMax`,s=`${r}RequestCount`,a=`${r}RequestCachedCount`;e[t]=Math.min(e[t]||1/0,n.startTime),e[i]=Math.max(e[i]||-1/0,n.responseEnd);const o=t=>{void 0===e[t]&&(e[t]=0),++e[t];};void 0!==n.transferSize&&0===n.transferSize&&o(a),o(s);}return e}(function(t,e){const r={};if(t)for(const n of t){const t=e(n);void 0===r[t]&&(r[t]=[]),r[t].push(n);}return r}(n,jt)),a=e.devicePixelRatio,o=e.navigator.connection||e.navigator.mozConnection||e.navigator.webkitConnection,l={counters:[],metadata:[],attributes:[]},u=(t,e,r)=>{null!=r&&t.push({name:e,value:r.toString()});};for(const t in s)u(l.counters,t,s[t]);if(t.interactionRange[0]!==1/0&&t.interactionRange[1]!==-1/0&&(u(l.counters,"interactionRangeMin",t.interactionRange[0]),u(l.counters,"interactionRangeMax",t.interactionRange[1])),i)for(const t of Object.keys(Ut)){const e=Ut[t],r=i.find((t=>t.name===e));r&&u(l.counters,e,r.startTime);}return u(l.counters,"visibilityHidden",t.visibilityHidden),u(l.attributes,"style",function(t){if(t)for(const e of t){const t=e.name.split("?")[0];if(_t(t)){const e=t.split("/").slice(-2);if(2===e.length)return `mapbox://styles/${e[0]}/${e[1]}`}}}(n)),u(l.attributes,"terrainEnabled",t.terrainEnabled?"true":"false"),u(l.attributes,"fogEnabled",t.fogEnabled?"true":"false"),u(l.attributes,"projection",t.projection),u(l.attributes,"zoom",t.zoom),u(l.metadata,"devicePixelRatio",a),u(l.metadata,"connectionEffectiveType",o?o.effectiveType:void 0),u(l.metadata,"navigatorUserAgent",e.navigator.userAgent),u(l.metadata,"screenWidth",e.screen.width),u(l.metadata,"screenHeight",e.screen.height),u(l.metadata,"windowWidth",e.innerWidth),u(l.metadata,"windowHeight",e.innerHeight),u(l.metadata,"mapWidth",t.width/a),u(l.metadata,"mapHeight",t.height/a),u(l.metadata,"webglRenderer",t.renderer),u(l.metadata,"webglVendor",t.vendor),u(l.metadata,"sdkVersion",r),u(l.metadata,"sdkIdentifier","mapbox-gl-js"),l}(i);for(const t of s.metadata);for(const t of s.counters);for(const t of s.attributes);this.postEvent(n,s,(()=>{}),t);}},Vt=Dt.postPerformanceEvent.bind(Dt),Lt=new class extends zt{constructor(){super("map.auth"),this.success={},this.skuToken="";}getSession(t,e,r,n){if(!i.API_URL||!i.SESSION_PATH)return;const s=kt(i.API_URL+i.SESSION_PATH);s.params.push(`sku=${e||""}`),s.params.push(`access_token=${n||i.ACCESS_TOKEN||""}`);const a={url:It(s),headers:{"Content-Type":"text/plain"}};this.pendingRequest=function(t,e){return ht(C(t,{method:"GET"}),e)}(a,(t=>{this.pendingRequest=null,r(t),this.saveEventData(),this.processRequests(n);}));}getSessionAPI(t,e,r,n){this.skuToken=e,this.errorCb=n,i.SESSION_PATH&&i.API_URL&&(r||i.ACCESS_TOKEN?this.queueRequest({id:t,timestamp:Date.now()},r):this.errorCb(new Error(xt)));}processRequests(t){if(this.pendingRequest||0===this.queue.length)return;const{id:e,timestamp:r}=this.queue.shift();e&&this.success[e]||this.getSession(r,this.skuToken,(t=>{t?this.errorCb(t):e&&(this.success[e]=!0);}),t);}},Ft=Lt.getSessionAPI.bind(Lt),Rt=new Set,Ut={create:"create",load:"load",fullLoad:"fullLoad"},$t={mark(t){e.performance.mark(t);},measure(t,r,n){e.performance.measure(t,r,n);}};function jt(t){const e=t.name.split("?")[0];return wt(e)&&e.includes("mapbox-gl.js")?"javascript":wt(e)&&e.includes("mapbox-gl.css")?"css":function(t){return i.API_FONTS_REGEX.test(t)}(e)?"fontRange":At(e)?"sprite":_t(e)?"style":function(t){return i.API_TILEJSON_REGEX.test(t)}(e)?"tilejson":"other"}const Ot=e.performance;function qt(t){const e=t?t.url.toString():void 0;return Ot.getEntriesByName(e)}let Nt,Gt,Zt,Kt;const Xt={now:()=>void 0!==Zt?Zt:e.performance.now(),setNow(t){Zt=t;},restoreNow(){Zt=void 0;},frame(t){const r=e.requestAnimationFrame(t);return {cancel:()=>e.cancelAnimationFrame(r)}},getImageData(t,r=0){const{width:n,height:i}=t;Kt||(Kt=e.document.createElement("canvas"));const s=Kt.getContext("2d",{willReadFrequently:!0});if(!s)throw new Error("failed to create canvas 2d context");return (n>Kt.width||i>Kt.height)&&(Kt.width=n,Kt.height=i),s.clearRect(-r,-r,n+2*r,i+2*r),s.drawImage(t,0,0,n,i),s.getImageData(-r,-r,n+2*r,i+2*r)},resolveURL:t=>(Nt||(Nt=e.document.createElement("a")),Nt.href=t,Nt.href),get devicePixelRatio(){return e.devicePixelRatio},get prefersReducedMotion(){return !!e.matchMedia&&(null==Gt&&(Gt=e.matchMedia("(prefers-reduced-motion: reduce)")),Gt.matches)}};function Jt(t,e,r){r[t]&&-1!==r[t].indexOf(e)||(r[t]=r[t]||[],r[t].push(e));}function Ht(t,e,r){if(r&&r[t]){const n=r[t].indexOf(e);-1!==n&&r[t].splice(n,1);}}class Yt{constructor(t,e={}){C(this,e),this.type=t;}}class Wt extends Yt{constructor(t,e={}){super("error",C({error:t},e));}}class Qt{on(t,e){return this._listeners=this._listeners||{},Jt(t,e,this._listeners),this}off(t,e){return Ht(t,e,this._listeners),Ht(t,e,this._oneTimeListeners),this}once(t,e){return e?(this._oneTimeListeners=this._oneTimeListeners||{},Jt(t,e,this._oneTimeListeners),this):new Promise((e=>this.once(t,e)))}fire(t,e){"string"==typeof t&&(t=new Yt(t,e||{}));const r=t.type;if(this.listens(r)){t.target=this;const e=this._listeners&&this._listeners[r]?this._listeners[r].slice():[];for(const r of e)r.call(this,t);const n=this._oneTimeListeners&&this._oneTimeListeners[r]?this._oneTimeListeners[r].slice():[];for(const e of n)Ht(r,e,this._oneTimeListeners),e.call(this,t);const i=this._eventedParent;i&&(C(t,"function"==typeof this._eventedParentData?this._eventedParentData():this._eventedParentData),i.fire(t));}else t instanceof Wt&&console.error(t.error);return this}listens(t){return !!(this._listeners&&this._listeners[t]&&this._listeners[t].length>0||this._oneTimeListeners&&this._oneTimeListeners[t]&&this._oneTimeListeners[t].length>0||this._eventedParent&&this._eventedParent.listens(t))}setEventedParent(t,e){return this._eventedParent=t,this._eventedParentData=e,this}}var te=JSON.parse('{"$version":8,"$root":{"version":{"required":true,"type":"enum","values":[8]},"name":{"type":"string"},"metadata":{"type":"*"},"center":{"type":"array","value":"number"},"zoom":{"type":"number"},"bearing":{"type":"number","default":0,"period":360,"units":"degrees"},"pitch":{"type":"number","default":0,"units":"degrees"},"light":{"type":"light"},"terrain":{"type":"terrain"},"fog":{"type":"fog"},"sources":{"required":true,"type":"sources"},"sprite":{"type":"string"},"glyphs":{"type":"string"},"transition":{"type":"transition"},"projection":{"type":"projection"},"layers":{"required":true,"type":"array","value":"layer"}},"sources":{"*":{"type":"source"}},"source":["source_vector","source_raster","source_raster_dem","source_geojson","source_video","source_image"],"source_vector":{"type":{"required":true,"type":"enum","values":{"vector":{}}},"url":{"type":"string"},"tiles":{"type":"array","value":"string"},"bounds":{"type":"array","value":"number","length":4,"default":[-180,-85.051129,180,85.051129]},"scheme":{"type":"enum","values":{"xyz":{},"tms":{}},"default":"xyz"},"minzoom":{"type":"number","default":0},"maxzoom":{"type":"number","default":22},"attribution":{"type":"string"},"promoteId":{"type":"promoteId"},"volatile":{"type":"boolean","default":false},"*":{"type":"*"}},"source_raster":{"type":{"required":true,"type":"enum","values":{"raster":{}}},"url":{"type":"string"},"tiles":{"type":"array","value":"string"},"bounds":{"type":"array","value":"number","length":4,"default":[-180,-85.051129,180,85.051129]},"minzoom":{"type":"number","default":0},"maxzoom":{"type":"number","default":22},"tileSize":{"type":"number","default":512,"units":"pixels"},"scheme":{"type":"enum","values":{"xyz":{},"tms":{}},"default":"xyz"},"attribution":{"type":"string"},"volatile":{"type":"boolean","default":false},"*":{"type":"*"}},"source_raster_dem":{"type":{"required":true,"type":"enum","values":{"raster-dem":{}}},"url":{"type":"string"},"tiles":{"type":"array","value":"string"},"bounds":{"type":"array","value":"number","length":4,"default":[-180,-85.051129,180,85.051129]},"minzoom":{"type":"number","default":0},"maxzoom":{"type":"number","default":22},"tileSize":{"type":"number","default":512,"units":"pixels"},"attribution":{"type":"string"},"encoding":{"type":"enum","values":{"terrarium":{},"mapbox":{}},"default":"mapbox"},"volatile":{"type":"boolean","default":false},"*":{"type":"*"}},"source_geojson":{"type":{"required":true,"type":"enum","values":{"geojson":{}}},"data":{"type":"*"},"maxzoom":{"type":"number","default":18},"attribution":{"type":"string"},"buffer":{"type":"number","default":128,"maximum":512,"minimum":0},"filter":{"type":"*"},"tolerance":{"type":"number","default":0.375},"cluster":{"type":"boolean","default":false},"clusterRadius":{"type":"number","default":50,"minimum":0},"clusterMaxZoom":{"type":"number"},"clusterMinPoints":{"type":"number"},"clusterProperties":{"type":"*"},"lineMetrics":{"type":"boolean","default":false},"generateId":{"type":"boolean","default":false},"promoteId":{"type":"promoteId"}},"source_video":{"type":{"required":true,"type":"enum","values":{"video":{}}},"urls":{"required":true,"type":"array","value":"string"},"coordinates":{"required":true,"type":"array","length":4,"value":{"type":"array","length":2,"value":"number"}}},"source_image":{"type":{"required":true,"type":"enum","values":{"image":{}}},"url":{"required":true,"type":"string"},"coordinates":{"required":true,"type":"array","length":4,"value":{"type":"array","length":2,"value":"number"}}},"layer":{"id":{"type":"string","required":true},"type":{"type":"enum","values":{"fill":{},"line":{},"symbol":{},"circle":{},"heatmap":{},"fill-extrusion":{},"raster":{},"hillshade":{},"background":{},"sky":{}},"required":true},"metadata":{"type":"*"},"source":{"type":"string"},"source-layer":{"type":"string"},"minzoom":{"type":"number","minimum":0,"maximum":24},"maxzoom":{"type":"number","minimum":0,"maximum":24},"filter":{"type":"filter"},"layout":{"type":"layout"},"paint":{"type":"paint"}},"layout":["layout_fill","layout_line","layout_circle","layout_heatmap","layout_fill-extrusion","layout_symbol","layout_raster","layout_hillshade","layout_background","layout_sky"],"layout_background":{"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"layout_sky":{"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"layout_fill":{"fill-sort-key":{"type":"number","expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"layout_circle":{"circle-sort-key":{"type":"number","expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"layout_heatmap":{"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"layout_fill-extrusion":{"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"},"fill-extrusion-edge-radius":{"type":"number","private":true,"default":0,"minimum":0,"maximum":1,"property-type":"constant"}},"layout_line":{"line-cap":{"type":"enum","values":{"butt":{},"round":{},"square":{}},"default":"butt","expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"line-join":{"type":"enum","values":{"bevel":{},"round":{},"miter":{}},"default":"miter","expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"line-miter-limit":{"type":"number","default":2,"requires":[{"line-join":"miter"}],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"line-round-limit":{"type":"number","default":1.05,"requires":[{"line-join":"round"}],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"line-sort-key":{"type":"number","expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"layout_symbol":{"symbol-placement":{"type":"enum","values":{"point":{},"line":{},"line-center":{}},"default":"point","expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"symbol-spacing":{"type":"number","default":250,"minimum":1,"units":"pixels","requires":[{"symbol-placement":"line"}],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"symbol-avoid-edges":{"type":"boolean","default":false,"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"symbol-sort-key":{"type":"number","expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"symbol-z-order":{"type":"enum","values":{"auto":{},"viewport-y":{},"source":{}},"default":"auto","expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-allow-overlap":{"type":"boolean","default":false,"requires":["icon-image"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-ignore-placement":{"type":"boolean","default":false,"requires":["icon-image"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-optional":{"type":"boolean","default":false,"requires":["icon-image","text-field"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-rotation-alignment":{"type":"enum","values":{"map":{},"viewport":{},"auto":{}},"default":"auto","requires":["icon-image"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-size":{"type":"number","default":1,"minimum":0,"units":"factor of the original icon size","requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-text-fit":{"type":"enum","values":{"none":{},"width":{},"height":{},"both":{}},"default":"none","requires":["icon-image","text-field"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-text-fit-padding":{"type":"array","value":"number","length":4,"default":[0,0,0,0],"units":"pixels","requires":["icon-image","text-field",{"icon-text-fit":["both","width","height"]}],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"icon-image":{"type":"resolvedImage","tokens":true,"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-rotate":{"type":"number","default":0,"period":360,"units":"degrees","requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-padding":{"type":"number","default":2,"minimum":0,"units":"pixels","requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"icon-keep-upright":{"type":"boolean","default":false,"requires":["icon-image",{"icon-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-offset":{"type":"array","value":"number","length":2,"default":[0,0],"requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-anchor":{"type":"enum","values":{"center":{},"left":{},"right":{},"top":{},"bottom":{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},"default":"center","requires":["icon-image"],"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-pitch-alignment":{"type":"enum","values":{"map":{},"viewport":{},"auto":{}},"default":"auto","requires":["icon-image"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-pitch-alignment":{"type":"enum","values":{"map":{},"viewport":{},"auto":{}},"default":"auto","requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-rotation-alignment":{"type":"enum","values":{"map":{},"viewport":{},"auto":{}},"default":"auto","requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-field":{"type":"formatted","default":"","tokens":true,"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-font":{"type":"array","value":"string","default":["Open Sans Regular","Arial Unicode MS Regular"],"requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-size":{"type":"number","default":16,"minimum":0,"units":"pixels","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-max-width":{"type":"number","default":10,"minimum":0,"units":"ems","requires":["text-field",{"symbol-placement":["point"]}],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-line-height":{"type":"number","default":1.2,"units":"ems","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-letter-spacing":{"type":"number","default":0,"units":"ems","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-justify":{"type":"enum","values":{"auto":{},"left":{},"center":{},"right":{}},"default":"center","requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-radial-offset":{"type":"number","units":"ems","default":0,"requires":["text-field"],"property-type":"data-driven","expression":{"interpolated":true,"parameters":["zoom","feature"]}},"text-variable-anchor":{"type":"array","value":"enum","values":{"center":{},"left":{},"right":{},"top":{},"bottom":{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},"requires":["text-field",{"symbol-placement":["point"]}],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-anchor":{"type":"enum","values":{"center":{},"left":{},"right":{},"top":{},"bottom":{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},"default":"center","requires":["text-field",{"!":"text-variable-anchor"}],"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-max-angle":{"type":"number","default":45,"units":"degrees","requires":["text-field",{"symbol-placement":["line","line-center"]}],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"text-writing-mode":{"type":"array","value":"enum","values":{"horizontal":{},"vertical":{}},"requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-rotate":{"type":"number","default":0,"period":360,"units":"degrees","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-padding":{"type":"number","default":2,"minimum":0,"units":"pixels","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"text-keep-upright":{"type":"boolean","default":true,"requires":["text-field",{"text-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-transform":{"type":"enum","values":{"none":{},"uppercase":{},"lowercase":{}},"default":"none","requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-offset":{"type":"array","value":"number","units":"ems","length":2,"default":[0,0],"requires":["text-field",{"!":"text-radial-offset"}],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-allow-overlap":{"type":"boolean","default":false,"requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-ignore-placement":{"type":"boolean","default":false,"requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-optional":{"type":"boolean","default":false,"requires":["text-field","icon-image"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"layout_raster":{"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"layout_hillshade":{"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"filter":{"type":"array","value":"*"},"filter_symbol":{"type":"boolean","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature","pitch","distance-from-center"]}},"filter_fill":{"type":"boolean","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_line":{"type":"boolean","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_circle":{"type":"boolean","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_fill-extrusion":{"type":"boolean","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_heatmap":{"type":"boolean","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_operator":{"type":"enum","values":{"==":{},"!=":{},">":{},">=":{},"<":{},"<=":{},"in":{},"!in":{},"all":{},"any":{},"none":{},"has":{},"!has":{},"within":{}}},"geometry_type":{"type":"enum","values":{"Point":{},"LineString":{},"Polygon":{}}},"function":{"expression":{"type":"expression"},"stops":{"type":"array","value":"function_stop"},"base":{"type":"number","default":1,"minimum":0},"property":{"type":"string","default":"$zoom"},"type":{"type":"enum","values":{"identity":{},"exponential":{},"interval":{},"categorical":{}},"default":"exponential"},"colorSpace":{"type":"enum","values":{"rgb":{},"lab":{},"hcl":{}},"default":"rgb"},"default":{"type":"*","required":false}},"function_stop":{"type":"array","minimum":0,"maximum":24,"value":["number","color"],"length":2},"expression":{"type":"array","value":"*","minimum":1},"fog":{"range":{"type":"array","default":[0.5,10],"minimum":-20,"maximum":20,"length":2,"value":"number","property-type":"data-constant","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]}},"color":{"type":"color","property-type":"data-constant","default":"#ffffff","expression":{"interpolated":true,"parameters":["zoom"]},"transition":true},"high-color":{"type":"color","property-type":"data-constant","default":"#245cdf","expression":{"interpolated":true,"parameters":["zoom"]},"transition":true},"space-color":{"type":"color","property-type":"data-constant","default":["interpolate",["linear"],["zoom"],4,"#010b19",7,"#367ab9"],"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true},"horizon-blend":{"type":"number","property-type":"data-constant","default":["interpolate",["linear"],["zoom"],4,0.2,7,0.1],"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true},"star-intensity":{"type":"number","property-type":"data-constant","default":["interpolate",["linear"],["zoom"],5,0.35,6,0],"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true}},"light":{"anchor":{"type":"enum","default":"viewport","values":{"map":{},"viewport":{}},"property-type":"data-constant","transition":false,"expression":{"interpolated":false,"parameters":["zoom"]}},"position":{"type":"array","default":[1.15,210,30],"length":3,"value":"number","property-type":"data-constant","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]}},"color":{"type":"color","property-type":"data-constant","default":"#ffffff","expression":{"interpolated":true,"parameters":["zoom"]},"transition":true},"intensity":{"type":"number","property-type":"data-constant","default":0.5,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true}},"projection":{"name":{"type":"enum","values":{"albers":{},"equalEarth":{},"equirectangular":{},"lambertConformalConic":{},"mercator":{},"naturalEarth":{},"winkelTripel":{},"globe":{}},"default":"mercator","required":true},"center":{"type":"array","length":2,"value":"number","property-type":"data-constant","minimum":[-180,-90],"maximum":[180,90],"transition":false,"requires":[{"name":["albers","lambertConformalConic"]}]},"parallels":{"type":"array","length":2,"value":"number","property-type":"data-constant","minimum":[-90,-90],"maximum":[90,90],"transition":false,"requires":[{"name":["albers","lambertConformalConic"]}]}},"terrain":{"source":{"type":"string","required":true},"exaggeration":{"type":"number","property-type":"data-constant","default":1,"minimum":0,"maximum":1000,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true,"requires":["source"]}},"paint":["paint_fill","paint_line","paint_circle","paint_heatmap","paint_fill-extrusion","paint_symbol","paint_raster","paint_hillshade","paint_background","paint_sky"],"paint_fill":{"fill-antialias":{"type":"boolean","default":true,"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"fill-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-color":{"type":"color","default":"#000000","transition":true,"requires":[{"!":"fill-pattern"}],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-outline-color":{"type":"color","transition":true,"requires":[{"!":"fill-pattern"},{"fill-antialias":true}],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"fill-translate-anchor":{"type":"enum","values":{"map":{},"viewport":{}},"default":"map","requires":["fill-translate"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"fill-pattern":{"type":"resolvedImage","transition":false,"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"}},"paint_fill-extrusion":{"fill-extrusion-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"fill-extrusion-color":{"type":"color","default":"#000000","transition":true,"requires":[{"!":"fill-extrusion-pattern"}],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"fill-extrusion-translate-anchor":{"type":"enum","values":{"map":{},"viewport":{}},"default":"map","requires":["fill-extrusion-translate"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"fill-extrusion-pattern":{"type":"resolvedImage","transition":false,"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"fill-extrusion-height":{"type":"number","default":0,"minimum":0,"units":"meters","transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-base":{"type":"number","default":0,"minimum":0,"units":"meters","transition":true,"requires":["fill-extrusion-height"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-vertical-gradient":{"type":"boolean","default":true,"transition":false,"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"fill-extrusion-ambient-occlusion-intensity":{"property-type":"data-constant","type":"number","private":true,"default":0,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true},"fill-extrusion-ambient-occlusion-radius":{"property-type":"data-constant","type":"number","private":true,"default":3,"minimum":0,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true,"requires":["fill-extrusion-edge-radius"]},"fill-extrusion-rounded-roof":{"type":"boolean","default":true,"requires":["fill-extrusion-edge-radius"],"transition":false,"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"}},"paint_line":{"line-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-color":{"type":"color","default":"#000000","transition":true,"requires":[{"!":"line-pattern"}],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"line-translate-anchor":{"type":"enum","values":{"map":{},"viewport":{}},"default":"map","requires":["line-translate"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"line-width":{"type":"number","default":1,"minimum":0,"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-gap-width":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-offset":{"type":"number","default":0,"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-blur":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-dasharray":{"type":"array","value":"number","minimum":0,"transition":false,"units":"line widths","requires":[{"!":"line-pattern"}],"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"line-pattern":{"type":"resolvedImage","transition":false,"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"line-gradient":{"type":"color","transition":false,"requires":[{"!":"line-pattern"},{"source":"geojson","has":{"lineMetrics":true}}],"expression":{"interpolated":true,"parameters":["line-progress"]},"property-type":"color-ramp"},"line-trim-offset":{"type":"array","value":"number","length":2,"default":[0,0],"minimum":[0,0],"maximum":[1,1],"transition":false,"requires":[{"source":"geojson","has":{"lineMetrics":true}}],"property-type":"constant"}},"paint_circle":{"circle-radius":{"type":"number","default":5,"minimum":0,"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-color":{"type":"color","default":"#000000","transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-blur":{"type":"number","default":0,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"circle-translate-anchor":{"type":"enum","values":{"map":{},"viewport":{}},"default":"map","requires":["circle-translate"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"circle-pitch-scale":{"type":"enum","values":{"map":{},"viewport":{}},"default":"map","expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"circle-pitch-alignment":{"type":"enum","values":{"map":{},"viewport":{}},"default":"viewport","expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"circle-stroke-width":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-color":{"type":"color","default":"#000000","transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"}},"paint_heatmap":{"heatmap-radius":{"type":"number","default":30,"minimum":1,"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-weight":{"type":"number","default":1,"minimum":0,"transition":false,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-intensity":{"type":"number","default":1,"minimum":0,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"heatmap-color":{"type":"color","default":["interpolate",["linear"],["heatmap-density"],0,"rgba(0, 0, 255, 0)",0.1,"royalblue",0.3,"cyan",0.5,"lime",0.7,"yellow",1,"red"],"transition":false,"expression":{"interpolated":true,"parameters":["heatmap-density"]},"property-type":"color-ramp"},"heatmap-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"}},"paint_symbol":{"icon-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-color":{"type":"color","default":"#000000","transition":true,"requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-color":{"type":"color","default":"rgba(0, 0, 0, 0)","transition":true,"requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-width":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-blur":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"units":"pixels","requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"icon-translate-anchor":{"type":"enum","values":{"map":{},"viewport":{}},"default":"map","requires":["icon-image","icon-translate"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-color":{"type":"color","default":"#000000","transition":true,"overridable":true,"requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-color":{"type":"color","default":"rgba(0, 0, 0, 0)","transition":true,"requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-width":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-blur":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"units":"pixels","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"text-translate-anchor":{"type":"enum","values":{"map":{},"viewport":{}},"default":"map","requires":["text-field","text-translate"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"}},"paint_raster":{"raster-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-hue-rotate":{"type":"number","default":0,"period":360,"transition":true,"units":"degrees","expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-brightness-min":{"type":"number","default":0,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-brightness-max":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-saturation":{"type":"number","default":0,"minimum":-1,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-contrast":{"type":"number","default":0,"minimum":-1,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-resampling":{"type":"enum","values":{"linear":{},"nearest":{}},"default":"linear","expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"raster-fade-duration":{"type":"number","default":300,"minimum":0,"transition":false,"units":"milliseconds","expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"}},"paint_hillshade":{"hillshade-illumination-direction":{"type":"number","default":335,"minimum":0,"maximum":359,"transition":false,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"hillshade-illumination-anchor":{"type":"enum","values":{"map":{},"viewport":{}},"default":"viewport","expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"hillshade-exaggeration":{"type":"number","default":0.5,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"hillshade-shadow-color":{"type":"color","default":"#000000","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"hillshade-highlight-color":{"type":"color","default":"#FFFFFF","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"hillshade-accent-color":{"type":"color","default":"#000000","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"}},"paint_background":{"background-color":{"type":"color","default":"#000000","transition":true,"requires":[{"!":"background-pattern"}],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"background-pattern":{"type":"resolvedImage","transition":false,"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"background-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"}},"paint_sky":{"sky-type":{"type":"enum","values":{"gradient":{},"atmosphere":{}},"default":"atmosphere","expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"sky-atmosphere-sun":{"type":"array","value":"number","length":2,"units":"degrees","minimum":[0,0],"maximum":[360,180],"transition":false,"requires":[{"sky-type":"atmosphere"}],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"sky-atmosphere-sun-intensity":{"type":"number","requires":[{"sky-type":"atmosphere"}],"default":10,"minimum":0,"maximum":100,"transition":false,"property-type":"data-constant"},"sky-gradient-center":{"type":"array","requires":[{"sky-type":"gradient"}],"value":"number","default":[0,0],"length":2,"units":"degrees","minimum":[0,0],"maximum":[360,180],"transition":false,"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"sky-gradient-radius":{"type":"number","requires":[{"sky-type":"gradient"}],"default":90,"minimum":0,"maximum":180,"transition":false,"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"sky-gradient":{"type":"color","default":["interpolate",["linear"],["sky-radial-progress"],0.8,"#87ceeb",1,"white"],"transition":false,"requires":[{"sky-type":"gradient"}],"expression":{"interpolated":true,"parameters":["sky-radial-progress"]},"property-type":"color-ramp"},"sky-atmosphere-halo-color":{"type":"color","default":"white","transition":false,"requires":[{"sky-type":"atmosphere"}],"property-type":"data-constant"},"sky-atmosphere-color":{"type":"color","default":"white","transition":false,"requires":[{"sky-type":"atmosphere"}],"property-type":"data-constant"},"sky-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"}},"transition":{"duration":{"type":"number","default":300,"minimum":0,"units":"milliseconds"},"delay":{"type":"number","default":0,"minimum":0,"units":"milliseconds"}},"property-type":{"data-driven":{"type":"property-type"},"color-ramp":{"type":"property-type"},"data-constant":{"type":"property-type"},"constant":{"type":"property-type"}},"promoteId":{"*":{"type":"string"}}}');function ee(t,...e){for(const r of e)for(const e in r)t[e]=r[e];return t}function re(t){return t instanceof Number||t instanceof String||t instanceof Boolean?t.valueOf():t}function ne(t){if(Array.isArray(t))return t.map(ne);if(t instanceof Object&&!(t instanceof Number||t instanceof String||t instanceof Boolean)){const e={};for(const r in t)e[r]=ne(t[r]);return e}return re(t)}class ie extends Error{constructor(t,e){super(e),this.message=e,this.key=t;}}var se=ie;class ae{constructor(t,e=[]){this.parent=t,this.bindings={};for(const[t,r]of e)this.bindings[t]=r;}concat(t){return new ae(this,t)}get(t){if(this.bindings[t])return this.bindings[t];if(this.parent)return this.parent.get(t);throw new Error(`${t} not found in scope.`)}has(t){return !!this.bindings[t]||!!this.parent&&this.parent.has(t)}}var oe=ae;const le={kind:"null"},ue={kind:"number"},ce={kind:"string"},he={kind:"boolean"},pe={kind:"color"},de={kind:"object"},fe={kind:"value"},ye={kind:"collator"},me={kind:"formatted"},ge={kind:"resolvedImage"};function xe(t,e){return {kind:"array",itemType:t,N:e}}function ve(t){if("array"===t.kind){const e=ve(t.itemType);return "number"==typeof t.N?`array<${e}, ${t.N}>`:"value"===t.itemType.kind?"array":`array<${e}>`}return t.kind}const be=[le,ue,ce,he,pe,me,de,xe(fe),ge];function we(t,e){if("error"===e.kind)return null;if("array"===t.kind){if("array"===e.kind&&(0===e.N&&"value"===e.itemType.kind||!we(t.itemType,e.itemType))&&("number"!=typeof t.N||t.N===e.N))return null}else {if(t.kind===e.kind)return null;if("value"===t.kind)for(const t of be)if(!we(t,e))return null}return `Expected ${ve(t)} but found ${ve(e)} instead.`}function _e(t,e){return e.some((e=>e.kind===t.kind))}function Ae(t,e){return e.some((e=>"null"===e?null===t:"array"===e?Array.isArray(t):"object"===e?t&&!Array.isArray(t)&&"object"==typeof t:e===typeof t))}var Se,ke={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],rebeccapurple:[102,51,153,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]};function Ie(t){return (t=Math.round(t))<0?0:t>255?255:t}function Me(t){return Ie("%"===t[t.length-1]?parseFloat(t)/100*255:parseInt(t))}function Te(t){return (e="%"===t[t.length-1]?parseFloat(t)/100:parseFloat(t))<0?0:e>1?1:e;var e;}function ze(t,e,r){return r<0?r+=1:r>1&&(r-=1),6*r<1?t+(e-t)*r*6:2*r<1?e:3*r<2?t+(e-t)*(2/3-r)*6:t}try{Se={}.parseCSSColor=function(t){var e,r=t.replace(/ /g,"").toLowerCase();if(r in ke)return ke[r].slice();if("#"===r[0])return 4===r.length?(e=parseInt(r.substr(1),16))>=0&&e<=4095?[(3840&e)>>4|(3840&e)>>8,240&e|(240&e)>>4,15&e|(15&e)<<4,1]:null:7===r.length&&(e=parseInt(r.substr(1),16))>=0&&e<=16777215?[(16711680&e)>>16,(65280&e)>>8,255&e,1]:null;var n=r.indexOf("("),i=r.indexOf(")");if(-1!==n&&i+1===r.length){var s=r.substr(0,n),a=r.substr(n+1,i-(n+1)).split(","),o=1;switch(s){case"rgba":if(4!==a.length)return null;o=Te(a.pop());case"rgb":return 3!==a.length?null:[Me(a[0]),Me(a[1]),Me(a[2]),o];case"hsla":if(4!==a.length)return null;o=Te(a.pop());case"hsl":if(3!==a.length)return null;var l=(parseFloat(a[0])%360+360)%360/360,u=Te(a[1]),c=Te(a[2]),h=c<=.5?c*(u+1):c+u-c*u,p=2*c-h;return [Ie(255*ze(p,h,l+1/3)),Ie(255*ze(p,h,l)),Ie(255*ze(p,h,l-1/3)),o];default:return null}}return null};}catch(t){}class Be{constructor(t,e,r,n=1){this.r=t,this.g=e,this.b=r,this.a=n;}static parse(t){if(!t)return;if(t instanceof Be)return t;if("string"!=typeof t)return;const e=Se(t);return e?new Be(e[0]/255*e[3],e[1]/255*e[3],e[2]/255*e[3],e[3]):void 0}toString(){const[t,e,r,n]=this.toArray();return `rgba(${Math.round(t)},${Math.round(e)},${Math.round(r)},${n})`}toArray(){const{r:t,g:e,b:r,a:n}=this;return 0===n?[0,0,0,0]:[255*t/n,255*e/n,255*r/n,n]}toArray01(){const{r:t,g:e,b:r,a:n}=this;return 0===n?[0,0,0,0]:[t/n,e/n,r/n,n]}toArray01PremultipliedAlpha(){const{r:t,g:e,b:r,a:n}=this;return [t,e,r,n]}}Be.black=new Be(0,0,0,1),Be.white=new Be(1,1,1,1),Be.transparent=new Be(0,0,0,0),Be.red=new Be(1,0,0,1),Be.blue=new Be(0,0,1,1);var Ee=Be;class Ce{constructor(t,e,r){this.sensitivity=t?e?"variant":"case":e?"accent":"base",this.locale=r,this.collator=new Intl.Collator(this.locale?this.locale:[],{sensitivity:this.sensitivity,usage:"search"});}compare(t,e){return this.collator.compare(t,e)}resolvedLocale(){return new Intl.Collator(this.locale?this.locale:[]).resolvedOptions().locale}}class Pe{constructor(t,e,r,n,i){this.text=t.normalize?t.normalize():t,this.image=e,this.scale=r,this.fontStack=n,this.textColor=i;}}class De{constructor(t){this.sections=t;}static fromString(t){return new De([new Pe(t,null,null,null,null)])}isEmpty(){return 0===this.sections.length||!this.sections.some((t=>0!==t.text.length||t.image&&0!==t.image.name.length))}static factory(t){return t instanceof De?t:De.fromString(t)}toString(){return 0===this.sections.length?"":this.sections.map((t=>t.text)).join("")}serialize(){const t=["format"];for(const e of this.sections){if(e.image){t.push(["image",e.image.name]);continue}t.push(e.text);const r={};e.fontStack&&(r["text-font"]=["literal",e.fontStack.split(",")]),e.scale&&(r["font-scale"]=e.scale),e.textColor&&(r["text-color"]=["rgba"].concat(e.textColor.toArray())),t.push(r);}return t}}class Ve{constructor(t){this.name=t.name,this.available=t.available;}toString(){return this.name}static fromString(t){return t?new Ve({name:t,available:!1}):null}serialize(){return ["image",this.name]}}function Le(t,e,r,n){return "number"==typeof t&&t>=0&&t<=255&&"number"==typeof e&&e>=0&&e<=255&&"number"==typeof r&&r>=0&&r<=255?void 0===n||"number"==typeof n&&n>=0&&n<=1?null:`Invalid rgba value [${[t,e,r,n].join(", ")}]: 'a' must be between 0 and 1.`:`Invalid rgba value [${("number"==typeof n?[t,e,r,n]:[t,e,r]).join(", ")}]: 'r', 'g', and 'b' must be between 0 and 255.`}function Fe(t){if(null===t)return !0;if("string"==typeof t)return !0;if("boolean"==typeof t)return !0;if("number"==typeof t)return !0;if(t instanceof Ee)return !0;if(t instanceof Ce)return !0;if(t instanceof De)return !0;if(t instanceof Ve)return !0;if(Array.isArray(t)){for(const e of t)if(!Fe(e))return !1;return !0}if("object"==typeof t){for(const e in t)if(!Fe(t[e]))return !1;return !0}return !1}function Re(t){if(null===t)return le;if("string"==typeof t)return ce;if("boolean"==typeof t)return he;if("number"==typeof t)return ue;if(t instanceof Ee)return pe;if(t instanceof Ce)return ye;if(t instanceof De)return me;if(t instanceof Ve)return ge;if(Array.isArray(t)){const e=t.length;let r;for(const e of t){const t=Re(e);if(r){if(r===t)continue;r=fe;break}r=t;}return xe(r||fe,e)}return de}function Ue(t){const e=typeof t;return null===t?"":"string"===e||"number"===e||"boolean"===e?String(t):t instanceof Ee||t instanceof De||t instanceof Ve?t.toString():JSON.stringify(t)}class $e{constructor(t,e){this.type=t,this.value=e;}static parse(t,e){if(2!==t.length)return e.error(`'literal' expression requires exactly one argument, but found ${t.length-1} instead.`);if(!Fe(t[1]))return e.error("invalid value");const r=t[1];let n=Re(r);const i=e.expectedType;return "array"!==n.kind||0!==n.N||!i||"array"!==i.kind||"number"==typeof i.N&&0!==i.N||(n=i),new $e(n,r)}evaluate(){return this.value}eachChild(){}outputDefined(){return !0}serialize(){return "array"===this.type.kind||"object"===this.type.kind?["literal",this.value]:this.value instanceof Ee?["rgba"].concat(this.value.toArray()):this.value instanceof De?this.value.serialize():this.value}}var je=$e,Oe=class{constructor(t){this.name="ExpressionEvaluationError",this.message=t;}toJSON(){return this.message}};const qe={string:ce,number:ue,boolean:he,object:de};class Ne{constructor(t,e){this.type=t,this.args=e;}static parse(t,e){if(t.length<2)return e.error("Expected at least one argument.");let r,n=1;const i=t[0];if("array"===i){let i,s;if(t.length>2){const r=t[1];if("string"!=typeof r||!(r in qe)||"object"===r)return e.error('The item type argument of "array" must be one of string, number, boolean',1);i=qe[r],n++;}else i=fe;if(t.length>3){if(null!==t[2]&&("number"!=typeof t[2]||t[2]<0||t[2]!==Math.floor(t[2])))return e.error('The length argument to "array" must be a positive integer literal',2);s=t[2],n++;}r=xe(i,s);}else r=qe[i];const s=[];for(;nt.outputDefined()))}serialize(){const t=this.type,e=[t.kind];if("array"===t.kind){const r=t.itemType;if("string"===r.kind||"number"===r.kind||"boolean"===r.kind){e.push(r.kind);const n=t.N;("number"==typeof n||this.args.length>1)&&e.push(n);}}return e.concat(this.args.map((t=>t.serialize())))}}var Ge=Ne;class Ze{constructor(t){this.type=me,this.sections=t;}static parse(t,e){if(t.length<2)return e.error("Expected at least one argument.");const r=t[1];if(!Array.isArray(r)&&"object"==typeof r)return e.error("First argument must be an image or text section.");const n=[];let i=!1;for(let r=1;r<=t.length-1;++r){const s=t[r];if(i&&"object"==typeof s&&!Array.isArray(s)){i=!1;let t=null;if(s["font-scale"]&&(t=e.parse(s["font-scale"],1,ue),!t))return null;let r=null;if(s["text-font"]&&(r=e.parse(s["text-font"],1,xe(ce)),!r))return null;let a=null;if(s["text-color"]&&(a=e.parse(s["text-color"],1,pe),!a))return null;const o=n[n.length-1];o.scale=t,o.font=r,o.textColor=a;}else {const s=e.parse(t[r],1,fe);if(!s)return null;const a=s.type.kind;if("string"!==a&&"value"!==a&&"null"!==a&&"resolvedImage"!==a)return e.error("Formatted text type must be 'string', 'value', 'image' or 'null'.");i=!0,n.push({content:s,scale:null,font:null,textColor:null});}}return new Ze(n)}evaluate(t){return new De(this.sections.map((e=>{const r=e.content.evaluate(t);return Re(r)===ge?new Pe("",r,null,null,null):new Pe(Ue(r),null,e.scale?e.scale.evaluate(t):null,e.font?e.font.evaluate(t).join(","):null,e.textColor?e.textColor.evaluate(t):null)})))}eachChild(t){for(const e of this.sections)t(e.content),e.scale&&t(e.scale),e.font&&t(e.font),e.textColor&&t(e.textColor);}outputDefined(){return !1}serialize(){const t=["format"];for(const e of this.sections){t.push(e.content.serialize());const r={};e.scale&&(r["font-scale"]=e.scale.serialize()),e.font&&(r["text-font"]=e.font.serialize()),e.textColor&&(r["text-color"]=e.textColor.serialize()),t.push(r);}return t}}class Ke{constructor(t){this.type=ge,this.input=t;}static parse(t,e){if(2!==t.length)return e.error("Expected two arguments.");const r=e.parse(t[1],1,ce);return r?new Ke(r):e.error("No image name provided.")}evaluate(t){const e=this.input.evaluate(t),r=Ve.fromString(e);return r&&t.availableImages&&(r.available=t.availableImages.indexOf(e)>-1),r}eachChild(t){t(this.input);}outputDefined(){return !1}serialize(){return ["image",this.input.serialize()]}}const Xe={"to-boolean":he,"to-color":pe,"to-number":ue,"to-string":ce};class Je{constructor(t,e){this.type=t,this.args=e;}static parse(t,e){if(t.length<2)return e.error("Expected at least one argument.");const r=t[0];if(("to-boolean"===r||"to-string"===r)&&2!==t.length)return e.error("Expected one argument.");const n=Xe[r],i=[];for(let r=1;r4?`Invalid rbga value ${JSON.stringify(e)}: expected an array containing either three or four numeric values.`:Le(e[0],e[1],e[2],e[3]),!r))return new Ee(e[0]/255,e[1]/255,e[2]/255,e[3])}throw new Oe(r||`Could not parse color from value '${"string"==typeof e?e:String(JSON.stringify(e))}'`)}if("number"===this.type.kind){let e=null;for(const r of this.args){if(e=r.evaluate(t),null===e)return 0;const n=Number(e);if(!isNaN(n))return n}throw new Oe(`Could not convert ${JSON.stringify(e)} to number.`)}return "formatted"===this.type.kind?De.fromString(Ue(this.args[0].evaluate(t))):"resolvedImage"===this.type.kind?Ve.fromString(Ue(this.args[0].evaluate(t))):Ue(this.args[0].evaluate(t))}eachChild(t){this.args.forEach(t);}outputDefined(){return this.args.every((t=>t.outputDefined()))}serialize(){if("formatted"===this.type.kind)return new Ze([{content:this.args[0],scale:null,font:null,textColor:null}]).serialize();if("resolvedImage"===this.type.kind)return new Ke(this.args[0]).serialize();const t=[`to-${this.type.kind}`];return this.eachChild((e=>{t.push(e.serialize());})),t}}var He=Je;const Ye=["Unknown","Point","LineString","Polygon"];var We=class{constructor(){this.globals=null,this.feature=null,this.featureState=null,this.formattedSection=null,this._parseColorCache={},this.availableImages=null,this.canonical=null,this.featureTileCoord=null,this.featureDistanceData=null;}id(){return this.feature&&void 0!==this.feature.id?this.feature.id:null}geometryType(){return this.feature?"number"==typeof this.feature.type?Ye[this.feature.type]:this.feature.type:null}geometry(){return this.feature&&"geometry"in this.feature?this.feature.geometry:null}canonicalID(){return this.canonical}properties(){return this.feature&&this.feature.properties||{}}distanceFromCenter(){if(this.featureTileCoord&&this.featureDistanceData){const t=this.featureDistanceData.center,e=this.featureDistanceData.scale,{x:r,y:n}=this.featureTileCoord;return this.featureDistanceData.bearing[0]*(r*e-t[0])+this.featureDistanceData.bearing[1]*(n*e-t[1])}return 0}parseColor(t){let e=this._parseColorCache[t];return e||(e=this._parseColorCache[t]=Ee.parse(t)),e}};class Qe{constructor(t,e,r,n){this.name=t,this.type=e,this._evaluate=r,this.args=n;}evaluate(t){return this._evaluate(t,this.args)}eachChild(t){this.args.forEach(t);}outputDefined(){return !1}serialize(){return [this.name].concat(this.args.map((t=>t.serialize())))}static parse(t,e){const r=t[0],n=Qe.definitions[r];if(!n)return e.error(`Unknown expression "${r}". If you wanted a literal array, use ["literal", [...]].`,0);const i=Array.isArray(n)?n[0]:n.type,s=Array.isArray(n)?[[n[1],n[2]]]:n.overloads,a=s.filter((([e])=>!Array.isArray(e)||e.length===t.length-1));let o=null;for(const[n,s]of a){o=new Ir(e.registry,e.path,null,e.scope);const a=[];let l=!1;for(let e=1;e{return e=t,Array.isArray(e)?`(${e.map(ve).join(", ")})`:`(${ve(e.type)}...)`;var e;})).join(" | "),n=[];for(let r=1;r=e[2]||t[1]<=e[1]||t[3]>=e[3])}function sr(t,e){const r=(180+t[0])/360,n=(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+t[1]*Math.PI/360)))/360,i=Math.pow(2,e.z);return [Math.round(r*i*rr),Math.round(n*i*rr)]}function ar(t,e,r){const n=t[0]-e[0],i=t[1]-e[1],s=t[0]-r[0],a=t[1]-r[1];return n*a-s*i==0&&n*s<=0&&i*a<=0}function or(t,e){let r=!1;for(let a=0,o=e.length;a(n=t)[1]!=(s=o[e+1])[1]>n[1]&&n[0]<(s[0]-i[0])*(n[1]-i[1])/(s[1]-i[1])+i[0]&&(r=!r);}}var n,i,s;return r}function lr(t,e){for(let r=0;r0&&o<0||a<0&&o>0}function cr(t,e,r){for(const u of r)for(let r=0;rr[2]){const e=.5*n;let i=t[0]-r[0]>e?-n:r[0]-t[0]>e?n:0;0===i&&(i=t[0]-r[2]>e?-n:r[2]-t[0]>e?n:0),t[0]+=i;}nr(e,t);}function mr(t,e,r,n){const i=Math.pow(2,n.z)*rr,s=[n.x*rr,n.y*rr],a=[];if(!t)return a;for(const n of t)for(const t of n){const n=[t.x+s[0],t.y+s[1]];yr(n,e,r,i),a.push(n);}return a}function gr(t,e,r,n){const i=Math.pow(2,n.z)*rr,s=[n.x*rr,n.y*rr],a=[];if(!t)return a;for(const r of t){const t=[];for(const n of r){const r=[n.x+s[0],n.y+s[1]];nr(e,r),t.push(r);}a.push(t);}if(e[2]-e[0]<=i/2){(o=e)[0]=o[1]=1/0,o[2]=o[3]=-1/0;for(const t of a)for(const n of t)yr(n,e,r,i);}var o;return a}class xr{constructor(t,e){this.type=he,this.geojson=t,this.geometries=e;}static parse(t,e){if(2!==t.length)return e.error(`'within' expression requires exactly one argument, but found ${t.length-1} instead.`);if(Fe(t[1])){const e=t[1];if("FeatureCollection"===e.type)for(let t=0;t{e&&!br(t)&&(e=!1);})),e}function wr(t){if(t instanceof tr&&"feature-state"===t.name)return !1;let e=!0;return t.eachChild((t=>{e&&!wr(t)&&(e=!1);})),e}function _r(t,e){if(t instanceof tr&&e.indexOf(t.name)>=0)return !1;let r=!0;return t.eachChild((t=>{r&&!_r(t,e)&&(r=!1);})),r}class Ar{constructor(t,e){this.type=e.type,this.name=t,this.boundExpression=e;}static parse(t,e){if(2!==t.length||"string"!=typeof t[1])return e.error("'var' expression requires exactly one string literal argument.");const r=t[1];return e.scope.has(r)?new Ar(r,e.scope.get(r)):e.error(`Unknown variable "${r}". Make sure "${r}" has been bound in an enclosing "let" expression before using it.`,1)}evaluate(t){return this.boundExpression.evaluate(t)}eachChild(){}outputDefined(){return !1}serialize(){return ["var",this.name]}}var Sr=Ar;class kr{constructor(t,e=[],r,n=new oe,i=[]){this.registry=t,this.path=e,this.key=e.map((t=>`[${t}]`)).join(""),this.scope=n,this.errors=i,this.expectedType=r;}parse(t,e,r,n,i={}){return e?this.concat(e,r,n)._parse(t,i):this._parse(t,i)}_parse(t,e){function r(t,e,r){return "assert"===r?new Ge(e,[t]):"coerce"===r?new He(e,[t]):t}if(null!==t&&"string"!=typeof t&&"boolean"!=typeof t&&"number"!=typeof t||(t=["literal",t]),Array.isArray(t)){if(0===t.length)return this.error('Expected an array with at least one element. If you wanted a literal array, use ["literal", []].');const n=t[0];if("string"!=typeof n)return this.error(`Expression name must be a string, but found ${typeof n} instead. If you wanted a literal array, use ["literal", [...]].`,0),null;const i=this.registry[n];if(i){let n=i.parse(t,this);if(!n)return null;if(this.expectedType){const t=this.expectedType,i=n.type;if("string"!==t.kind&&"number"!==t.kind&&"boolean"!==t.kind&&"object"!==t.kind&&"array"!==t.kind||"value"!==i.kind)if("color"!==t.kind&&"formatted"!==t.kind&&"resolvedImage"!==t.kind||"value"!==i.kind&&"string"!==i.kind){if(this.checkSubtype(t,i))return null}else n=r(n,t,e.typeAnnotation||"coerce");else n=r(n,t,e.typeAnnotation||"assert");}if(!(n instanceof je)&&"resolvedImage"!==n.type.kind&&Mr(n)){const t=new We;try{n=new je(n.type,n.evaluate(t));}catch(t){return this.error(t.message),null}}return n}return this.error(`Unknown expression "${n}". If you wanted a literal array, use ["literal", [...]].`,0)}return this.error(void 0===t?"'undefined' value invalid. Use null instead.":"object"==typeof t?'Bare objects invalid. Use ["literal", {...}] instead.':`Expected an array, but found ${typeof t} instead.`)}concat(t,e,r){const n="number"==typeof t?this.path.concat(t):this.path,i=r?this.scope.concat(r):this.scope;return new kr(this.registry,n,e||null,i,this.errors)}error(t,...e){const r=`${this.key}${e.map((t=>`[${t}]`)).join("")}`;this.errors.push(new se(r,t));}checkSubtype(t,e){const r=we(t,e);return r&&this.error(r),r}}var Ir=kr;function Mr(t){if(t instanceof Sr)return Mr(t.boundExpression);if(t instanceof tr&&"error"===t.name)return !1;if(t instanceof er)return !1;if(t instanceof vr)return !1;const e=t instanceof He||t instanceof Ge;let r=!0;return t.eachChild((t=>{r=e?r&&Mr(t):r&&t instanceof je;})),!!r&&br(t)&&_r(t,["zoom","heatmap-density","line-progress","sky-radial-progress","accumulated","is-supported-script","pitch","distance-from-center"])}function Tr(t,e){const r=t.length-1;let n,i,s=0,a=r,o=0;for(;s<=a;)if(o=Math.floor((s+a)/2),n=t[o],i=t[o+1],n<=e){if(o===r||ee))throw new Oe("Input is not a number.");a=o-1;}return 0}class zr{constructor(t,e,r){this.type=t,this.input=e,this.labels=[],this.outputs=[];for(const[t,e]of r)this.labels.push(t),this.outputs.push(e);}static parse(t,e){if(t.length-1<4)return e.error(`Expected at least 4 arguments, but found only ${t.length-1}.`);if((t.length-1)%2!=0)return e.error("Expected an even number of arguments.");const r=e.parse(t[1],1,ue);if(!r)return null;const n=[];let i=null;e.expectedType&&"value"!==e.expectedType.kind&&(i=e.expectedType);for(let r=1;r=s)return e.error('Input/output pairs for "step" expressions must be arranged with input values in strictly ascending order.',o);const u=e.parse(a,l,i);if(!u)return null;i=i||u.type,n.push([s,u]);}return new zr(i,r,n)}evaluate(t){const e=this.labels,r=this.outputs;if(1===e.length)return r[0].evaluate(t);const n=this.input.evaluate(t);if(n<=e[0])return r[0].evaluate(t);const i=e.length;return n>=e[i-1]?r[i-1].evaluate(t):r[Tr(e,n)].evaluate(t)}eachChild(t){t(this.input);for(const e of this.outputs)t(e);}outputDefined(){return this.outputs.every((t=>t.outputDefined()))}serialize(){const t=["step",this.input.serialize()];for(let e=0;e0&&t.push(this.labels[e]),t.push(this.outputs[e].serialize());return t}}var Br=zr;function Er(t,e,r){return t*(1-r)+e*r}var Cr=Object.freeze({__proto__:null,array:function(t,e,r){return t.map(((t,n)=>Er(t,e[n],r)))},color:function(t,e,r){return new Ee(Er(t.r,e.r,r),Er(t.g,e.g,r),Er(t.b,e.b,r),Er(t.a,e.a,r))},number:Er});const Pr=.95047,Dr=1.08883,Vr=4/29,Lr=6/29,Fr=3*Lr*Lr,Rr=Lr*Lr*Lr,Ur=Math.PI/180,$r=180/Math.PI;function jr(t){return t>Rr?Math.pow(t,1/3):t/Fr+Vr}function Or(t){return t>Lr?t*t*t:Fr*(t-Vr)}function qr(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function Nr(t){return (t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function Gr(t){const e=Nr(t.r),r=Nr(t.g),n=Nr(t.b),i=jr((.4124564*e+.3575761*r+.1804375*n)/Pr),s=jr((.2126729*e+.7151522*r+.072175*n)/1);return {l:116*s-16,a:500*(i-s),b:200*(s-jr((.0193339*e+.119192*r+.9503041*n)/Dr)),alpha:t.a}}function Zr(t){let e=(t.l+16)/116,r=isNaN(t.a)?e:e+t.a/500,n=isNaN(t.b)?e:e-t.b/200;return e=1*Or(e),r=Pr*Or(r),n=Dr*Or(n),new Ee(qr(3.2404542*r-1.5371385*e-.4985314*n),qr(-.969266*r+1.8760108*e+.041556*n),qr(.0556434*r-.2040259*e+1.0572252*n),t.alpha)}function Kr(t,e,r){const n=e-t;return t+r*(n>180||n<-180?n-360*Math.round(n/360):n)}const Xr={forward:Gr,reverse:Zr,interpolate:function(t,e,r){return {l:Er(t.l,e.l,r),a:Er(t.a,e.a,r),b:Er(t.b,e.b,r),alpha:Er(t.alpha,e.alpha,r)}}},Jr={forward:function(t){const{l:e,a:r,b:n}=Gr(t),i=Math.atan2(n,r)*$r;return {h:i<0?i+360:i,c:Math.sqrt(r*r+n*n),l:e,alpha:t.a}},reverse:function(t){const e=t.h*Ur,r=t.c;return Zr({l:t.l,a:Math.cos(e)*r,b:Math.sin(e)*r,alpha:t.alpha})},interpolate:function(t,e,r){return {h:Kr(t.h,e.h,r),c:Er(t.c,e.c,r),l:Er(t.l,e.l,r),alpha:Er(t.alpha,e.alpha,r)}}};var Hr=Object.freeze({__proto__:null,hcl:Jr,lab:Xr});class Yr{constructor(t,e,r,n,i){this.type=t,this.operator=e,this.interpolation=r,this.input=n,this.labels=[],this.outputs=[];for(const[t,e]of i)this.labels.push(t),this.outputs.push(e);}static interpolationFactor(t,e,r,n){let i=0;if("exponential"===t.name)i=Wr(e,t.base,r,n);else if("linear"===t.name)i=Wr(e,1,r,n);else if("cubic-bezier"===t.name){const s=t.controlPoints;i=new y(s[0],s[1],s[2],s[3]).solve(Wr(e,1,r,n));}return i}static parse(t,e){let[r,n,i,...s]=t;if(!Array.isArray(n)||0===n.length)return e.error("Expected an interpolation type expression.",1);if("linear"===n[0])n={name:"linear"};else if("exponential"===n[0]){const t=n[1];if("number"!=typeof t)return e.error("Exponential interpolation requires a numeric base.",1,1);n={name:"exponential",base:t};}else {if("cubic-bezier"!==n[0])return e.error(`Unknown interpolation type ${String(n[0])}`,1,0);{const t=n.slice(1);if(4!==t.length||t.some((t=>"number"!=typeof t||t<0||t>1)))return e.error("Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.",1);n={name:"cubic-bezier",controlPoints:t};}}if(t.length-1<4)return e.error(`Expected at least 4 arguments, but found only ${t.length-1}.`);if((t.length-1)%2!=0)return e.error("Expected an even number of arguments.");if(i=e.parse(i,2,ue),!i)return null;const a=[];let o=null;"interpolate-hcl"===r||"interpolate-lab"===r?o=pe:e.expectedType&&"value"!==e.expectedType.kind&&(o=e.expectedType);for(let t=0;t=r)return e.error('Input/output pairs for "interpolate" expressions must be arranged with input values in strictly ascending order.',i);const u=e.parse(n,l,o);if(!u)return null;o=o||u.type,a.push([r,u]);}return "number"===o.kind||"color"===o.kind||"array"===o.kind&&"number"===o.itemType.kind&&"number"==typeof o.N?new Yr(o,r,n,i,a):e.error(`Type ${ve(o)} is not interpolatable.`)}evaluate(t){const e=this.labels,r=this.outputs;if(1===e.length)return r[0].evaluate(t);const n=this.input.evaluate(t);if(n<=e[0])return r[0].evaluate(t);const i=e.length;if(n>=e[i-1])return r[i-1].evaluate(t);const s=Tr(e,n),a=Yr.interpolationFactor(this.interpolation,n,e[s],e[s+1]),o=r[s].evaluate(t),l=r[s+1].evaluate(t);return "interpolate"===this.operator?Cr[this.type.kind.toLowerCase()](o,l,a):"interpolate-hcl"===this.operator?Jr.reverse(Jr.interpolate(Jr.forward(o),Jr.forward(l),a)):Xr.reverse(Xr.interpolate(Xr.forward(o),Xr.forward(l),a))}eachChild(t){t(this.input);for(const e of this.outputs)t(e);}outputDefined(){return this.outputs.every((t=>t.outputDefined()))}serialize(){let t;t="linear"===this.interpolation.name?["linear"]:"exponential"===this.interpolation.name?1===this.interpolation.base?["linear"]:["exponential",this.interpolation.base]:["cubic-bezier"].concat(this.interpolation.controlPoints);const e=[this.operator,t,this.input.serialize()];for(let t=0;twe(n,t.type)));return new tn(s?fe:r,i)}evaluate(t){let e,r=null,n=0;for(const i of this.args){if(n++,r=i.evaluate(t),r&&r instanceof Ve&&!r.available&&(e||(e=r),r=null,n===this.args.length))return e;if(null!==r)break}return r}eachChild(t){this.args.forEach(t);}outputDefined(){return this.args.every((t=>t.outputDefined()))}serialize(){const t=["coalesce"];return this.eachChild((e=>{t.push(e.serialize());})),t}}var en=tn;class rn{constructor(t,e){this.type=e.type,this.bindings=[].concat(t),this.result=e;}evaluate(t){return this.result.evaluate(t)}eachChild(t){for(const e of this.bindings)t(e[1]);t(this.result);}static parse(t,e){if(t.length<4)return e.error(`Expected at least 3 arguments, but found ${t.length-1} instead.`);const r=[];for(let n=1;n=r.length)throw new Oe(`Array index out of bounds: ${e} > ${r.length-1}.`);if(e!==Math.floor(e))throw new Oe(`Array index must be an integer, but found ${e} instead.`);return r[e]}eachChild(t){t(this.index),t(this.input);}outputDefined(){return !1}serialize(){return ["at",this.index.serialize(),this.input.serialize()]}}var an=sn;class on{constructor(t,e){this.type=he,this.needle=t,this.haystack=e;}static parse(t,e){if(3!==t.length)return e.error(`Expected 2 arguments, but found ${t.length-1} instead.`);const r=e.parse(t[1],1,fe),n=e.parse(t[2],2,fe);return r&&n?_e(r.type,[he,ce,ue,le,fe])?new on(r,n):e.error(`Expected first argument to be of type boolean, string, number or null, but found ${ve(r.type)} instead`):null}evaluate(t){const e=this.needle.evaluate(t),r=this.haystack.evaluate(t);if(null==r)return !1;if(!Ae(e,["boolean","string","number","null"]))throw new Oe(`Expected first argument to be of type boolean, string, number or null, but found ${ve(Re(e))} instead.`);if(!Ae(r,["string","array"]))throw new Oe(`Expected second argument to be of type array or string, but found ${ve(Re(r))} instead.`);return r.indexOf(e)>=0}eachChild(t){t(this.needle),t(this.haystack);}outputDefined(){return !0}serialize(){return ["in",this.needle.serialize(),this.haystack.serialize()]}}var ln=on;class un{constructor(t,e,r){this.type=ue,this.needle=t,this.haystack=e,this.fromIndex=r;}static parse(t,e){if(t.length<=2||t.length>=5)return e.error(`Expected 3 or 4 arguments, but found ${t.length-1} instead.`);const r=e.parse(t[1],1,fe),n=e.parse(t[2],2,fe);if(!r||!n)return null;if(!_e(r.type,[he,ce,ue,le,fe]))return e.error(`Expected first argument to be of type boolean, string, number or null, but found ${ve(r.type)} instead`);if(4===t.length){const i=e.parse(t[3],3,ue);return i?new un(r,n,i):null}return new un(r,n)}evaluate(t){const e=this.needle.evaluate(t),r=this.haystack.evaluate(t);if(!Ae(e,["boolean","string","number","null"]))throw new Oe(`Expected first argument to be of type boolean, string, number or null, but found ${ve(Re(e))} instead.`);if(!Ae(r,["string","array"]))throw new Oe(`Expected second argument to be of type array or string, but found ${ve(Re(r))} instead.`);if(this.fromIndex){const n=this.fromIndex.evaluate(t);return r.indexOf(e,n)}return r.indexOf(e)}eachChild(t){t(this.needle),t(this.haystack),this.fromIndex&&t(this.fromIndex);}outputDefined(){return !1}serialize(){if(null!=this.fromIndex&&void 0!==this.fromIndex){const t=this.fromIndex.serialize();return ["index-of",this.needle.serialize(),this.haystack.serialize(),t]}return ["index-of",this.needle.serialize(),this.haystack.serialize()]}}var cn=un;class hn{constructor(t,e,r,n,i,s){this.inputType=t,this.type=e,this.input=r,this.cases=n,this.outputs=i,this.otherwise=s;}static parse(t,e){if(t.length<5)return e.error(`Expected at least 4 arguments, but found only ${t.length-1}.`);if(t.length%2!=1)return e.error("Expected an even number of arguments.");let r,n;e.expectedType&&"value"!==e.expectedType.kind&&(n=e.expectedType);const i={},s=[];for(let a=2;aNumber.MAX_SAFE_INTEGER)return u.error(`Branch labels must be integers no larger than ${Number.MAX_SAFE_INTEGER}.`);if("number"==typeof t&&Math.floor(t)!==t)return u.error("Numeric branch labels must be integer values.");if(r){if(u.checkSubtype(r,Re(t)))return null}else r=Re(t);if(void 0!==i[String(t)])return u.error("Branch labels must be unique.");i[String(t)]=s.length;}const c=e.parse(l,a,n);if(!c)return null;n=n||c.type,s.push(c);}const a=e.parse(t[1],1,fe);if(!a)return null;const o=e.parse(t[t.length-1],t.length-1,n);return o?"value"!==a.type.kind&&e.concat(1).checkSubtype(r,a.type)?null:new hn(r,n,a,i,s,o):null}evaluate(t){const e=this.input.evaluate(t);return (Re(e)===this.inputType&&this.outputs[this.cases[e]]||this.otherwise).evaluate(t)}eachChild(t){t(this.input),this.outputs.forEach(t),t(this.otherwise);}outputDefined(){return this.outputs.every((t=>t.outputDefined()))&&this.otherwise.outputDefined()}serialize(){const t=["match",this.input.serialize()],e=Object.keys(this.cases).sort(),r=[],n={};for(const t of e){const e=n[this.cases[t]];void 0===e?(n[this.cases[t]]=r.length,r.push([this.cases[t],[t]])):r[e][1].push(t);}const i=t=>"number"===this.inputType.kind?Number(t):t;for(const[e,n]of r)t.push(1===n.length?i(n[0]):n.map(i)),t.push(this.outputs[e].serialize());return t.push(this.otherwise.serialize()),t}}var pn=hn;class dn{constructor(t,e,r){this.type=t,this.branches=e,this.otherwise=r;}static parse(t,e){if(t.length<4)return e.error(`Expected at least 3 arguments, but found only ${t.length-1}.`);if(t.length%2!=0)return e.error("Expected an odd number of arguments.");let r;e.expectedType&&"value"!==e.expectedType.kind&&(r=e.expectedType);const n=[];for(let i=1;ie.outputDefined()))&&this.otherwise.outputDefined()}serialize(){const t=["case"];return this.eachChild((e=>{t.push(e.serialize());})),t}}var fn=dn;class yn{constructor(t,e,r,n){this.type=t,this.input=e,this.beginIndex=r,this.endIndex=n;}static parse(t,e){if(t.length<=2||t.length>=5)return e.error(`Expected 3 or 4 arguments, but found ${t.length-1} instead.`);const r=e.parse(t[1],1,fe),n=e.parse(t[2],2,ue);if(!r||!n)return null;if(!_e(r.type,[xe(fe),ce,fe]))return e.error(`Expected first argument to be of type array or string, but found ${ve(r.type)} instead`);if(4===t.length){const i=e.parse(t[3],3,ue);return i?new yn(r.type,r,n,i):null}return new yn(r.type,r,n)}evaluate(t){const e=this.input.evaluate(t),r=this.beginIndex.evaluate(t);if(!Ae(e,["string","array"]))throw new Oe(`Expected first argument to be of type array or string, but found ${ve(Re(e))} instead.`);if(this.endIndex){const n=this.endIndex.evaluate(t);return e.slice(r,n)}return e.slice(r)}eachChild(t){t(this.input),t(this.beginIndex),this.endIndex&&t(this.endIndex);}outputDefined(){return !1}serialize(){if(null!=this.endIndex&&void 0!==this.endIndex){const t=this.endIndex.serialize();return ["slice",this.input.serialize(),this.beginIndex.serialize(),t]}return ["slice",this.input.serialize(),this.beginIndex.serialize()]}}var mn=yn;function gn(t,e){return "=="===t||"!="===t?"boolean"===e.kind||"string"===e.kind||"number"===e.kind||"null"===e.kind||"value"===e.kind:"string"===e.kind||"number"===e.kind||"value"===e.kind}function xn(t,e,r,n){return 0===n.compare(e,r)}function vn(t,e,r){const n="=="!==t&&"!="!==t;return class i{constructor(t,e,r){this.type=he,this.lhs=t,this.rhs=e,this.collator=r,this.hasUntypedArgument="value"===t.type.kind||"value"===e.type.kind;}static parse(t,e){if(3!==t.length&&4!==t.length)return e.error("Expected two or three arguments.");const r=t[0];let s=e.parse(t[1],1,fe);if(!s)return null;if(!gn(r,s.type))return e.concat(1).error(`"${r}" comparisons are not supported for type '${ve(s.type)}'.`);let a=e.parse(t[2],2,fe);if(!a)return null;if(!gn(r,a.type))return e.concat(2).error(`"${r}" comparisons are not supported for type '${ve(a.type)}'.`);if(s.type.kind!==a.type.kind&&"value"!==s.type.kind&&"value"!==a.type.kind)return e.error(`Cannot compare types '${ve(s.type)}' and '${ve(a.type)}'.`);n&&("value"===s.type.kind&&"value"!==a.type.kind?s=new Ge(a.type,[s]):"value"!==s.type.kind&&"value"===a.type.kind&&(a=new Ge(s.type,[a])));let o=null;if(4===t.length){if("string"!==s.type.kind&&"string"!==a.type.kind&&"value"!==s.type.kind&&"value"!==a.type.kind)return e.error("Cannot use collator to compare non-string types.");if(o=e.parse(t[3],3,ye),!o)return null}return new i(s,a,o)}evaluate(i){const s=this.lhs.evaluate(i),a=this.rhs.evaluate(i);if(n&&this.hasUntypedArgument){const e=Re(s),r=Re(a);if(e.kind!==r.kind||"string"!==e.kind&&"number"!==e.kind)throw new Oe(`Expected arguments for "${t}" to be (string, string) or (number, number), but found (${e.kind}, ${r.kind}) instead.`)}if(this.collator&&!n&&this.hasUntypedArgument){const t=Re(s),r=Re(a);if("string"!==t.kind||"string"!==r.kind)return e(i,s,a)}return this.collator?r(i,s,a,this.collator.evaluate(i)):e(i,s,a)}eachChild(t){t(this.lhs),t(this.rhs),this.collator&&t(this.collator);}outputDefined(){return !0}serialize(){const e=[t];return this.eachChild((t=>{e.push(t.serialize());})),e}}}const bn=vn("==",(function(t,e,r){return e===r}),xn),wn=vn("!=",(function(t,e,r){return e!==r}),(function(t,e,r,n){return !xn(0,e,r,n)})),_n=vn("<",(function(t,e,r){return e",(function(t,e,r){return e>r}),(function(t,e,r,n){return n.compare(e,r)>0})),Sn=vn("<=",(function(t,e,r){return e<=r}),(function(t,e,r,n){return n.compare(e,r)<=0})),kn=vn(">=",(function(t,e,r){return e>=r}),(function(t,e,r,n){return n.compare(e,r)>=0}));class In{constructor(t,e,r,n,i,s){this.type=ce,this.number=t,this.locale=e,this.currency=r,this.unit=n,this.minFractionDigits=i,this.maxFractionDigits=s;}static parse(t,e){if(3!==t.length)return e.error("Expected two arguments.");const r=e.parse(t[1],1,ue);if(!r)return null;const n=t[2];if("object"!=typeof n||Array.isArray(n))return e.error("NumberFormat options argument must be an object.");let i=null;if(n.locale&&(i=e.parse(n.locale,1,ce),!i))return null;let s=null;if(n.currency&&(s=e.parse(n.currency,1,ce),!s))return null;let a=null;if(n.unit&&(a=e.parse(n.unit,1,ce),!a))return null;let o=null;if(n["min-fraction-digits"]&&(o=e.parse(n["min-fraction-digits"],1,ue),!o))return null;let l=null;return n["max-fraction-digits"]&&(l=e.parse(n["max-fraction-digits"],1,ue),!l)?null:new In(r,i,s,a,o,l)}evaluate(t){return new Intl.NumberFormat(this.locale?this.locale.evaluate(t):[],{style:(this.currency?"currency":this.unit&&"unit")||"decimal",currency:this.currency?this.currency.evaluate(t):void 0,unit:this.unit?this.unit.evaluate(t):void 0,minimumFractionDigits:this.minFractionDigits?this.minFractionDigits.evaluate(t):void 0,maximumFractionDigits:this.maxFractionDigits?this.maxFractionDigits.evaluate(t):void 0}).format(this.number.evaluate(t))}eachChild(t){t(this.number),this.locale&&t(this.locale),this.currency&&t(this.currency),this.unit&&t(this.unit),this.minFractionDigits&&t(this.minFractionDigits),this.maxFractionDigits&&t(this.maxFractionDigits);}outputDefined(){return !1}serialize(){const t={};return this.locale&&(t.locale=this.locale.serialize()),this.currency&&(t.currency=this.currency.serialize()),this.unit&&(t.unit=this.unit.serialize()),this.minFractionDigits&&(t["min-fraction-digits"]=this.minFractionDigits.serialize()),this.maxFractionDigits&&(t["max-fraction-digits"]=this.maxFractionDigits.serialize()),["number-format",this.number.serialize(),t]}}class Mn{constructor(t){this.type=ue,this.input=t;}static parse(t,e){if(2!==t.length)return e.error(`Expected 1 argument, but found ${t.length-1} instead.`);const r=e.parse(t[1],1);return r?"array"!==r.type.kind&&"string"!==r.type.kind&&"value"!==r.type.kind?e.error(`Expected argument of type string or array, but found ${ve(r.type)} instead.`):new Mn(r):null}evaluate(t){const e=this.input.evaluate(t);if("string"==typeof e)return e.length;if(Array.isArray(e))return e.length;throw new Oe(`Expected value to be of type string or array, but found ${ve(Re(e))} instead.`)}eachChild(t){t(this.input);}outputDefined(){return !1}serialize(){const t=["length"];return this.eachChild((e=>{t.push(e.serialize());})),t}}const Tn={"==":bn,"!=":wn,">":An,"<":_n,">=":kn,"<=":Sn,array:Ge,at:an,boolean:Ge,case:fn,coalesce:en,collator:er,format:Ze,image:Ke,in:ln,"index-of":cn,interpolate:Qr,"interpolate-hcl":Qr,"interpolate-lab":Qr,length:Mn,let:nn,literal:je,match:pn,number:Ge,"number-format":In,object:Ge,slice:mn,step:Br,string:Ge,"to-boolean":He,"to-color":He,"to-number":He,"to-string":He,var:Sr,within:vr};function zn(t,[e,r,n,i]){e=e.evaluate(t),r=r.evaluate(t),n=n.evaluate(t);const s=i?i.evaluate(t):1,a=Le(e,r,n,s);if(a)throw new Oe(a);return new Ee(e/255*s,r/255*s,n/255*s,s)}function Bn(t,e){return t in e}function En(t,e){const r=e[t];return void 0===r?null:r}function Cn(t){return {type:t}}tr.register(Tn,{error:[{kind:"error"},[ce],(t,[e])=>{throw new Oe(e.evaluate(t))}],typeof:[ce,[fe],(t,[e])=>ve(Re(e.evaluate(t)))],"to-rgba":[xe(ue,4),[pe],(t,[e])=>e.evaluate(t).toArray()],rgb:[pe,[ue,ue,ue],zn],rgba:[pe,[ue,ue,ue,ue],zn],has:{type:he,overloads:[[[ce],(t,[e])=>Bn(e.evaluate(t),t.properties())],[[ce,de],(t,[e,r])=>Bn(e.evaluate(t),r.evaluate(t))]]},get:{type:fe,overloads:[[[ce],(t,[e])=>En(e.evaluate(t),t.properties())],[[ce,de],(t,[e,r])=>En(e.evaluate(t),r.evaluate(t))]]},"feature-state":[fe,[ce],(t,[e])=>En(e.evaluate(t),t.featureState||{})],properties:[de,[],t=>t.properties()],"geometry-type":[ce,[],t=>t.geometryType()],id:[fe,[],t=>t.id()],zoom:[ue,[],t=>t.globals.zoom],pitch:[ue,[],t=>t.globals.pitch||0],"distance-from-center":[ue,[],t=>t.distanceFromCenter()],"heatmap-density":[ue,[],t=>t.globals.heatmapDensity||0],"line-progress":[ue,[],t=>t.globals.lineProgress||0],"sky-radial-progress":[ue,[],t=>t.globals.skyRadialProgress||0],accumulated:[fe,[],t=>void 0===t.globals.accumulated?null:t.globals.accumulated],"+":[ue,Cn(ue),(t,e)=>{let r=0;for(const n of e)r+=n.evaluate(t);return r}],"*":[ue,Cn(ue),(t,e)=>{let r=1;for(const n of e)r*=n.evaluate(t);return r}],"-":{type:ue,overloads:[[[ue,ue],(t,[e,r])=>e.evaluate(t)-r.evaluate(t)],[[ue],(t,[e])=>-e.evaluate(t)]]},"/":[ue,[ue,ue],(t,[e,r])=>e.evaluate(t)/r.evaluate(t)],"%":[ue,[ue,ue],(t,[e,r])=>e.evaluate(t)%r.evaluate(t)],ln2:[ue,[],()=>Math.LN2],pi:[ue,[],()=>Math.PI],e:[ue,[],()=>Math.E],"^":[ue,[ue,ue],(t,[e,r])=>Math.pow(e.evaluate(t),r.evaluate(t))],sqrt:[ue,[ue],(t,[e])=>Math.sqrt(e.evaluate(t))],log10:[ue,[ue],(t,[e])=>Math.log(e.evaluate(t))/Math.LN10],ln:[ue,[ue],(t,[e])=>Math.log(e.evaluate(t))],log2:[ue,[ue],(t,[e])=>Math.log(e.evaluate(t))/Math.LN2],sin:[ue,[ue],(t,[e])=>Math.sin(e.evaluate(t))],cos:[ue,[ue],(t,[e])=>Math.cos(e.evaluate(t))],tan:[ue,[ue],(t,[e])=>Math.tan(e.evaluate(t))],asin:[ue,[ue],(t,[e])=>Math.asin(e.evaluate(t))],acos:[ue,[ue],(t,[e])=>Math.acos(e.evaluate(t))],atan:[ue,[ue],(t,[e])=>Math.atan(e.evaluate(t))],min:[ue,Cn(ue),(t,e)=>Math.min(...e.map((e=>e.evaluate(t))))],max:[ue,Cn(ue),(t,e)=>Math.max(...e.map((e=>e.evaluate(t))))],abs:[ue,[ue],(t,[e])=>Math.abs(e.evaluate(t))],round:[ue,[ue],(t,[e])=>{const r=e.evaluate(t);return r<0?-Math.round(-r):Math.round(r)}],floor:[ue,[ue],(t,[e])=>Math.floor(e.evaluate(t))],ceil:[ue,[ue],(t,[e])=>Math.ceil(e.evaluate(t))],"filter-==":[he,[ce,fe],(t,[e,r])=>t.properties()[e.value]===r.value],"filter-id-==":[he,[fe],(t,[e])=>t.id()===e.value],"filter-type-==":[he,[ce],(t,[e])=>t.geometryType()===e.value],"filter-<":[he,[ce,fe],(t,[e,r])=>{const n=t.properties()[e.value],i=r.value;return typeof n==typeof i&&n{const r=t.id(),n=e.value;return typeof r==typeof n&&r":[he,[ce,fe],(t,[e,r])=>{const n=t.properties()[e.value],i=r.value;return typeof n==typeof i&&n>i}],"filter-id->":[he,[fe],(t,[e])=>{const r=t.id(),n=e.value;return typeof r==typeof n&&r>n}],"filter-<=":[he,[ce,fe],(t,[e,r])=>{const n=t.properties()[e.value],i=r.value;return typeof n==typeof i&&n<=i}],"filter-id-<=":[he,[fe],(t,[e])=>{const r=t.id(),n=e.value;return typeof r==typeof n&&r<=n}],"filter->=":[he,[ce,fe],(t,[e,r])=>{const n=t.properties()[e.value],i=r.value;return typeof n==typeof i&&n>=i}],"filter-id->=":[he,[fe],(t,[e])=>{const r=t.id(),n=e.value;return typeof r==typeof n&&r>=n}],"filter-has":[he,[fe],(t,[e])=>e.value in t.properties()],"filter-has-id":[he,[],t=>null!==t.id()&&void 0!==t.id()],"filter-type-in":[he,[xe(ce)],(t,[e])=>e.value.indexOf(t.geometryType())>=0],"filter-id-in":[he,[xe(fe)],(t,[e])=>e.value.indexOf(t.id())>=0],"filter-in-small":[he,[ce,xe(fe)],(t,[e,r])=>r.value.indexOf(t.properties()[e.value])>=0],"filter-in-large":[he,[ce,xe(fe)],(t,[e,r])=>function(t,e,r,n){for(;r<=n;){const i=r+n>>1;if(e[i]===t)return !0;e[i]>t?n=i-1:r=i+1;}return !1}(t.properties()[e.value],r.value,0,r.value.length-1)],all:{type:he,overloads:[[[he,he],(t,[e,r])=>e.evaluate(t)&&r.evaluate(t)],[Cn(he),(t,e)=>{for(const r of e)if(!r.evaluate(t))return !1;return !0}]]},any:{type:he,overloads:[[[he,he],(t,[e,r])=>e.evaluate(t)||r.evaluate(t)],[Cn(he),(t,e)=>{for(const r of e)if(r.evaluate(t))return !0;return !1}]]},"!":[he,[he],(t,[e])=>!e.evaluate(t)],"is-supported-script":[he,[ce],(t,[e])=>{const r=t.globals&&t.globals.isSupportedScript;return !r||r(e.evaluate(t))}],upcase:[ce,[ce],(t,[e])=>e.evaluate(t).toUpperCase()],downcase:[ce,[ce],(t,[e])=>e.evaluate(t).toLowerCase()],concat:[ce,Cn(fe),(t,e)=>e.map((e=>Ue(e.evaluate(t)))).join("")],"resolved-locale":[ce,[ye],(t,[e])=>e.evaluate(t).resolvedLocale()]});var Pn=Tn;function Dn(t){return {result:"success",value:t}}function Vn(t){return {result:"error",value:t}}function Ln(t){return "data-driven"===t["property-type"]}function Fn(t){return !!t.expression&&t.expression.parameters.indexOf("zoom")>-1}function Rn(t){return !!t.expression&&t.expression.interpolated}function Un(t){return t instanceof Number?"number":t instanceof String?"string":t instanceof Boolean?"boolean":Array.isArray(t)?"array":null===t?"null":typeof t}function $n(t){return "object"==typeof t&&null!==t&&!Array.isArray(t)}function jn(t){return t}function On(t,e){const r="color"===e.type,n=t.stops&&"object"==typeof t.stops[0][0],i=n||!(n||void 0!==t.property),s=t.type||(Rn(e)?"exponential":"interval");if(r&&((t=ee({},t)).stops&&(t.stops=t.stops.map((t=>[t[0],Ee.parse(t[1])]))),t.default=Ee.parse(t.default?t.default:e.default)),t.colorSpace&&"rgb"!==t.colorSpace&&!Hr[t.colorSpace])throw new Error(`Unknown color space: ${t.colorSpace}`);let a,o,l;if("exponential"===s)a=Zn;else if("interval"===s)a=Gn;else if("categorical"===s){a=Nn,o=Object.create(null);for(const e of t.stops)o[e[0]]=e[1];l=typeof t.stops[0][0];}else {if("identity"!==s)throw new Error(`Unknown function type "${s}"`);a=Kn;}if(n){const r={},n=[];for(let e=0;et[0])),evaluate:({zoom:r},n)=>Zn({stops:i,base:t.base},e,r).evaluate(r,n)}}if(i){const r="exponential"===s?{name:"exponential",base:void 0!==t.base?t.base:1}:null;return {kind:"camera",interpolationType:r,interpolationFactor:Qr.interpolationFactor.bind(void 0,r),zoomStops:t.stops.map((t=>t[0])),evaluate:({zoom:r})=>a(t,e,r,o,l)}}return {kind:"source",evaluate(r,n){const i=n&&n.properties?n.properties[t.property]:void 0;return void 0===i?qn(t.default,e.default):a(t,e,i,o,l)}}}function qn(t,e,r){return void 0!==t?t:void 0!==e?e:void 0!==r?r:void 0}function Nn(t,e,r,n,i){return qn(typeof r===i?n[r]:void 0,t.default,e.default)}function Gn(t,e,r){if("number"!==Un(r))return qn(t.default,e.default);const n=t.stops.length;if(1===n)return t.stops[0][1];if(r<=t.stops[0][0])return t.stops[0][1];if(r>=t.stops[n-1][0])return t.stops[n-1][1];const i=Tr(t.stops.map((t=>t[0])),r);return t.stops[i][1]}function Zn(t,e,r){const n=void 0!==t.base?t.base:1;if("number"!==Un(r))return qn(t.default,e.default);const i=t.stops.length;if(1===i)return t.stops[0][1];if(r<=t.stops[0][0])return t.stops[0][1];if(r>=t.stops[i-1][0])return t.stops[i-1][1];const s=Tr(t.stops.map((t=>t[0])),r),a=function(t,e,r,n){const i=n-r,s=t-r;return 0===i?0:1===e?s/i:(Math.pow(e,s)-1)/(Math.pow(e,i)-1)}(r,n,t.stops[s][0],t.stops[s+1][0]),o=t.stops[s][1],l=t.stops[s+1][1];let u=Cr[e.type]||jn;if(t.colorSpace&&"rgb"!==t.colorSpace){const e=Hr[t.colorSpace];u=(t,r)=>e.reverse(e.interpolate(e.forward(t),e.forward(r),a));}return "function"==typeof o.evaluate?{evaluate(...t){const e=o.evaluate.apply(void 0,t),r=l.evaluate.apply(void 0,t);if(void 0!==e&&void 0!==r)return u(e,r,a)}}:u(o,l,a)}function Kn(t,e,r){return "color"===e.type?r=Ee.parse(r):"formatted"===e.type?r=De.fromString(r.toString()):"resolvedImage"===e.type?r=Ve.fromString(r.toString()):Un(r)===e.type||"enum"===e.type&&e.values[r]||(r=void 0),qn(r,t.default,e.default)}class Xn{constructor(t,e){this.expression=t,this._warningHistory={},this._evaluator=new We,this._defaultValue=e?function(t){return "color"===t.type&&($n(t.default)||Array.isArray(t.default))?new Ee(0,0,0,0):"color"===t.type?Ee.parse(t.default)||null:void 0===t.default?null:t.default}(e):null,this._enumValues=e&&"enum"===e.type?e.values:null;}evaluateWithoutErrorHandling(t,e,r,n,i,s,a,o){return this._evaluator.globals=t,this._evaluator.feature=e,this._evaluator.featureState=r,this._evaluator.canonical=n||null,this._evaluator.availableImages=i||null,this._evaluator.formattedSection=s,this._evaluator.featureTileCoord=a||null,this._evaluator.featureDistanceData=o||null,this.expression.evaluate(this._evaluator)}evaluate(t,e,r,n,i,s,a,o){this._evaluator.globals=t,this._evaluator.feature=e||null,this._evaluator.featureState=r||null,this._evaluator.canonical=n||null,this._evaluator.availableImages=i||null,this._evaluator.formattedSection=s||null,this._evaluator.featureTileCoord=a||null,this._evaluator.featureDistanceData=o||null;try{const t=this.expression.evaluate(this._evaluator);if(null==t||"number"==typeof t&&t!=t)return this._defaultValue;if(this._enumValues&&!(t in this._enumValues))throw new Oe(`Expected value to be one of ${Object.keys(this._enumValues).map((t=>JSON.stringify(t))).join(", ")}, but found ${JSON.stringify(t)} instead.`);return t}catch(t){return this._warningHistory[t.message]||(this._warningHistory[t.message]=!0,"undefined"!=typeof console&&console.warn(t.message)),this._defaultValue}}}function Jn(t){return Array.isArray(t)&&t.length>0&&"string"==typeof t[0]&&t[0]in Pn}function Hn(t,e){const r=new Ir(Pn,[],e?function(t){const e={color:pe,string:ce,number:ue,enum:ce,boolean:he,formatted:me,resolvedImage:ge};return "array"===t.type?xe(e[t.value]||fe,t.length):e[t.type]}(e):void 0),n=r.parse(t,void 0,void 0,void 0,e&&"string"===e.type?{typeAnnotation:"coerce"}:void 0);return n?Dn(new Xn(n,e)):Vn(r.errors)}class Yn{constructor(t,e){this.kind=t,this._styleExpression=e,this.isStateDependent="constant"!==t&&!wr(e.expression);}evaluateWithoutErrorHandling(t,e,r,n,i,s){return this._styleExpression.evaluateWithoutErrorHandling(t,e,r,n,i,s)}evaluate(t,e,r,n,i,s){return this._styleExpression.evaluate(t,e,r,n,i,s)}}class Wn{constructor(t,e,r,n){this.kind=t,this.zoomStops=r,this._styleExpression=e,this.isStateDependent="camera"!==t&&!wr(e.expression),this.interpolationType=n;}evaluateWithoutErrorHandling(t,e,r,n,i,s){return this._styleExpression.evaluateWithoutErrorHandling(t,e,r,n,i,s)}evaluate(t,e,r,n,i,s){return this._styleExpression.evaluate(t,e,r,n,i,s)}interpolationFactor(t,e,r){return this.interpolationType?Qr.interpolationFactor(this.interpolationType,t,e,r):0}}function Qn(t,e){if("error"===(t=Hn(t,e)).result)return t;const r=t.value.expression,n=br(r);if(!n&&!Ln(e))return Vn([new se("","data expressions not supported")]);const i=_r(r,["zoom","pitch","distance-from-center"]);if(!i&&!Fn(e))return Vn([new se("","zoom expressions not supported")]);const s=ei(r);return s||i?s instanceof se?Vn([s]):s instanceof Qr&&!Rn(e)?Vn([new se("",'"interpolate" expressions cannot be used with this property')]):Dn(s?new Wn(n?"camera":"composite",t.value,s.labels,s instanceof Qr?s.interpolation:void 0):new Yn(n?"constant":"source",t.value)):Vn([new se("",'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.')])}class ti{constructor(t,e){this._parameters=t,this._specification=e,ee(this,On(this._parameters,this._specification));}static deserialize(t){return new ti(t._parameters,t._specification)}static serialize(t){return {_parameters:t._parameters,_specification:t._specification}}}function ei(t){let e=null;if(t instanceof nn)e=ei(t.result);else if(t instanceof en){for(const r of t.args)if(e=ei(r),e)break}else (t instanceof Br||t instanceof Qr)&&t.input instanceof tr&&"zoom"===t.input.name&&(e=t);return e instanceof se||t.eachChild((t=>{const r=ei(t);r instanceof se?e=r:!e&&r?e=new se("",'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.'):e&&r&&e!==r&&(e=new se("",'Only one zoom-based "step" or "interpolate" subexpression may be used in an expression.'));})),e}class ri{constructor(t,e,r,n){this.message=(t?`${t}: `:"")+r,n&&(this.identifier=n),null!=e&&e.__line__&&(this.line=e.__line__);}}function ni(t){const e=t.key,r=t.value,n=t.valueSpec||{},i=t.objectElementValidators||{},s=t.style,a=t.styleSpec;let o=[];const l=Un(r);if("object"!==l)return [new ri(e,r,`object expected, ${l} found`)];for(const t in r){const l=t.split(".")[0];let u;i[l]?u=i[l]:n[l]?u=Fi:i["*"]?u=i["*"]:n["*"]&&(u=Fi),u?o=o.concat(u({key:(e?`${e}.`:e)+t,value:r[t],valueSpec:n[l]||n["*"],style:s,styleSpec:a,object:r,objectKey:t},r)):o.push(new ri(e,r[t],`unknown property "${t}"`));}for(const t in n)i[t]||n[t].required&&void 0===n[t].default&&void 0===r[t]&&o.push(new ri(e,r,`missing required property "${t}"`));return o}function ii(t){const e=t.value,r=t.valueSpec,n=t.style,i=t.styleSpec,s=t.key,a=t.arrayElementValidator||Fi;if("array"!==Un(e))return [new ri(s,e,`array expected, ${Un(e)} found`)];if(r.length&&e.length!==r.length)return [new ri(s,e,`array length ${r.length} expected, length ${e.length} found`)];if(r["min-length"]&&e.lengthi)return [new ri(e,r,`${r} is greater than the maximum value ${i}`)]}return []}function ai(t){const e=t.valueSpec,r=re(t.value.type);let n,i,s,a={};const o="categorical"!==r&&void 0===t.value.property,l=!o,u="array"===Un(t.value.stops)&&"array"===Un(t.value.stops[0])&&"object"===Un(t.value.stops[0][0]),c=ni({key:t.key,value:t.value,valueSpec:t.styleSpec.function,style:t.style,styleSpec:t.styleSpec,objectElementValidators:{stops:function(t){if("identity"===r)return [new ri(t.key,t.value,'identity function may not have a "stops" property')];let e=[];const n=t.value;return e=e.concat(ii({key:t.key,value:n,valueSpec:t.valueSpec,style:t.style,styleSpec:t.styleSpec,arrayElementValidator:h})),"array"===Un(n)&&0===n.length&&e.push(new ri(t.key,n,"array must have at least one stop")),e},default:function(t){return Fi({key:t.key,value:t.value,valueSpec:e,style:t.style,styleSpec:t.styleSpec})}}});return "identity"===r&&o&&c.push(new ri(t.key,t.value,'missing required property "property"')),"identity"===r||t.value.stops||c.push(new ri(t.key,t.value,'missing required property "stops"')),"exponential"===r&&t.valueSpec.expression&&!Rn(t.valueSpec)&&c.push(new ri(t.key,t.value,"exponential functions not supported")),t.styleSpec.$version>=8&&(l&&!Ln(t.valueSpec)?c.push(new ri(t.key,t.value,"property functions not supported")):o&&!Fn(t.valueSpec)&&c.push(new ri(t.key,t.value,"zoom functions not supported"))),"categorical"!==r&&!u||void 0!==t.value.property||c.push(new ri(t.key,t.value,'"property" property is required')),c;function h(t){let r=[];const n=t.value,o=t.key;if("array"!==Un(n))return [new ri(o,n,`array expected, ${Un(n)} found`)];if(2!==n.length)return [new ri(o,n,`array length 2 expected, length ${n.length} found`)];if(u){if("object"!==Un(n[0]))return [new ri(o,n,`object expected, ${Un(n[0])} found`)];if(void 0===n[0].zoom)return [new ri(o,n,"object stop key must have zoom")];if(void 0===n[0].value)return [new ri(o,n,"object stop key must have value")];const e=re(n[0].zoom);if("number"!=typeof e)return [new ri(o,n[0].zoom,"stop zoom values must be numbers")];if(s&&s>e)return [new ri(o,n[0].zoom,"stop zoom values must appear in ascending order")];e!==s&&(s=e,i=void 0,a={}),r=r.concat(ni({key:`${o}[0]`,value:n[0],valueSpec:{zoom:{}},style:t.style,styleSpec:t.styleSpec,objectElementValidators:{zoom:si,value:p}}));}else r=r.concat(p({key:`${o}[0]`,value:n[0],valueSpec:{},style:t.style,styleSpec:t.styleSpec},n));return Jn(ne(n[1]))?r.concat([new ri(`${o}[1]`,n[1],"expressions are not allowed in function stops.")]):r.concat(Fi({key:`${o}[1]`,value:n[1],valueSpec:e,style:t.style,styleSpec:t.styleSpec}))}function p(t,s){const o=Un(t.value),l=re(t.value),u=null!==t.value?t.value:s;if(n){if(o!==n)return [new ri(t.key,u,`${o} stop domain type must match previous stop domain type ${n}`)]}else n=o;if("number"!==o&&"string"!==o&&"boolean"!==o&&"number"!=typeof l&&"string"!=typeof l&&"boolean"!=typeof l)return [new ri(t.key,u,"stop domain value must be a number, string, or boolean")];if("number"!==o&&"categorical"!==r){let n=`number expected, ${o} found`;return Ln(e)&&void 0===r&&(n+='\nIf you intended to use a categorical function, specify `"type": "categorical"`.'),[new ri(t.key,u,n)]}return "categorical"!==r||"number"!==o||"number"==typeof l&&isFinite(l)&&Math.floor(l)===l?"categorical"!==r&&"number"===o&&"number"==typeof l&&"number"==typeof i&&void 0!==i&&lnew ri(`${t.key}${e.key}`,t.value,e.message)));const r=e.value.expression||e.value._styleExpression.expression;if("property"===t.expressionContext&&"text-font"===t.propertyKey&&!r.outputDefined())return [new ri(t.key,t.value,`Invalid data expression for "${t.propertyKey}". Output values must be contained as literals within the expression.`)];if("property"===t.expressionContext&&"layout"===t.propertyType&&!wr(r))return [new ri(t.key,t.value,'"feature-state" data expressions are not supported with layout properties.')];if("filter"===t.expressionContext)return li(r,t);if(t.expressionContext&&0===t.expressionContext.indexOf("cluster")){if(!_r(r,["zoom","feature-state"]))return [new ri(t.key,t.value,'"zoom" and "feature-state" expressions are not supported with cluster properties.')];if("cluster-initial"===t.expressionContext&&!br(r))return [new ri(t.key,t.value,"Feature data expressions are not supported with initial expression part of cluster properties.")]}return []}function li(t,e){const r=new Set(["zoom","feature-state","pitch","distance-from-center"]);if(e.valueSpec&&e.valueSpec.expression)for(const t of e.valueSpec.expression.parameters)r.delete(t);if(0===r.size)return [];const n=[];return t instanceof tr&&r.has(t.name)?[new ri(e.key,e.value,`["${t.name}"] expression is not supported in a filter for a ${e.object.type} layer with id: ${e.object.id}`)]:(t.eachChild((t=>{n.push(...li(t,e));})),n)}function ui(t){const e=t.key,r=t.value,n=t.valueSpec,i=[];return Array.isArray(n.values)?-1===n.values.indexOf(re(r))&&i.push(new ri(e,r,`expected one of [${n.values.join(", ")}], ${JSON.stringify(r)} found`)):-1===Object.keys(n.values).indexOf(re(r))&&i.push(new ri(e,r,`expected one of [${Object.keys(n.values).join(", ")}], ${JSON.stringify(r)} found`)),i}function ci(t){if(!0===t||!1===t)return !0;if(!Array.isArray(t)||0===t.length)return !1;switch(t[0]){case"has":return t.length>=2&&"$id"!==t[1]&&"$type"!==t[1];case"in":return t.length>=3&&("string"!=typeof t[1]||Array.isArray(t[2]));case"!in":case"!has":case"none":return !1;case"==":case"!=":case">":case">=":case"<":case"<=":return 3!==t.length||Array.isArray(t[1])||Array.isArray(t[2]);case"any":case"all":for(const e of t.slice(1))if(!ci(e)&&"boolean"!=typeof e)return !1;return !0;default:return !0}}function hi(t,e="fill"){if(null==t)return {filter:()=>!0,needGeometry:!1,needFeature:!1};ci(t)||(t=xi(t));const r=t;let n=!0;try{n=function(t){if(!fi(t))return t;let e=ne(t);return di(e),e=pi(e),e}(r);}catch(t){console.warn(`Failed to extract static filter. Filter will continue working, but at higher memory usage and slower framerate.\nThis is most likely a bug, please report this via https://github.com/mapbox/mapbox-gl-js/issues/new?assignees=&labels=&template=Bug_report.md\nand paste the contents of this message in the report.\nThank you!\nFilter Expression:\n${JSON.stringify(r,null,2)}\n `);}const i=te[`filter_${e}`],s=Hn(n,i);let a=null;if("error"===s.result)throw new Error(s.value.map((t=>`${t.key}: ${t.message}`)).join(", "));a=(t,e,r)=>s.value.evaluate(t,e,{},r);let o=null,l=null;if(n!==r){const t=Hn(r,i);if("error"===t.result)throw new Error(t.value.map((t=>`${t.key}: ${t.message}`)).join(", "));o=(e,r,n,i,s)=>t.value.evaluate(e,r,{},n,void 0,void 0,i,s),l=!br(t.value.expression);}return {filter:a,dynamicFilter:o||void 0,needGeometry:gi(n),needFeature:!!l}}function pi(t){if(!Array.isArray(t))return t;const e=function(t){if(yi.has(t[0]))for(let e=1;epi(t)))}function di(t){let e=!1;const r=[];if("case"===t[0]){for(let n=1;n",">=","<","<=","to-boolean"]);function mi(t,e){return te?1:0}function gi(t){if(!Array.isArray(t))return !1;if("within"===t[0])return !0;for(let e=1;e"===e||"<="===e||">="===e?vi(t[1],t[2],e):"any"===e?(r=t.slice(1),["any"].concat(r.map(xi))):"all"===e?["all"].concat(t.slice(1).map(xi)):"none"===e?["all"].concat(t.slice(1).map(xi).map(_i)):"in"===e?bi(t[1],t.slice(2)):"!in"===e?_i(bi(t[1],t.slice(2))):"has"===e?wi(t[1]):"!has"===e?_i(wi(t[1])):"within"!==e||t;var r;}function vi(t,e,r){switch(t){case"$type":return [`filter-type-${r}`,e];case"$id":return [`filter-id-${r}`,e];default:return [`filter-${r}`,t,e]}}function bi(t,e){if(0===e.length)return !1;switch(t){case"$type":return ["filter-type-in",["literal",e]];case"$id":return ["filter-id-in",["literal",e]];default:return e.length>200&&!e.some((t=>typeof t!=typeof e[0]))?["filter-in-large",t,["literal",e.sort(mi)]]:["filter-in-small",t,["literal",e]]}}function wi(t){switch(t){case"$type":return !0;case"$id":return ["filter-has-id"];default:return ["filter-has",t]}}function _i(t){return ["!",t]}function Ai(t){return ci(ne(t.value))?oi(ee({},t,{expressionContext:"filter",valueSpec:t.styleSpec[`filter_${t.layerType||"fill"}`]})):Si(t)}function Si(t){const e=t.value,r=t.key;if("array"!==Un(e))return [new ri(r,e,`array expected, ${Un(e)} found`)];const n=t.styleSpec;let i,s=[];if(e.length<1)return [new ri(r,e,"filter array must have at least 1 element")];switch(s=s.concat(ui({key:`${r}[0]`,value:e[0],valueSpec:n.filter_operator,style:t.style,styleSpec:t.styleSpec})),re(e[0])){case"<":case"<=":case">":case">=":e.length>=2&&"$type"===re(e[1])&&s.push(new ri(r,e,`"$type" cannot be use with operator "${e[0]}"`));case"==":case"!=":3!==e.length&&s.push(new ri(r,e,`filter array for operator "${e[0]}" must have 3 elements`));case"in":case"!in":e.length>=2&&(i=Un(e[1]),"string"!==i&&s.push(new ri(`${r}[1]`,e[1],`string expected, ${i} found`)));for(let a=2;a{t in r&&e.push(new ri(n,r[t],`"${t}" is prohibited for ref layers`));})),i.layers.forEach((e=>{re(e.id)===o&&(t=e);})),t?t.ref?e.push(new ri(n,r.ref,"ref cannot reference another ref layer")):a=re(t.type):"string"==typeof o&&e.push(new ri(n,r.ref,`ref layer "${o}" not found`));}else if("background"!==a&&"sky"!==a)if(r.source){const t=i.sources&&i.sources[r.source],s=t&&re(t.type);t?"vector"===s&&"raster"===a?e.push(new ri(n,r.source,`layer "${r.id}" requires a raster source`)):"raster"===s&&"raster"!==a?e.push(new ri(n,r.source,`layer "${r.id}" requires a vector source`)):"vector"!==s||r["source-layer"]?"raster-dem"===s&&"hillshade"!==a?e.push(new ri(n,r.source,"raster-dem source can only be used with layer type 'hillshade'.")):"line"!==a||!r.paint||!r.paint["line-gradient"]&&!r.paint["line-trim-offset"]||"geojson"===s&&t.lineMetrics||e.push(new ri(n,r,`layer "${r.id}" specifies a line-gradient, which requires a GeoJSON source with \`lineMetrics\` enabled.`)):e.push(new ri(n,r,`layer "${r.id}" must specify a "source-layer"`)):e.push(new ri(n,r.source,`source "${r.source}" not found`));}else e.push(new ri(n,r,'missing required property "source"'));return e=e.concat(ni({key:n,value:r,valueSpec:s.layer,style:t.style,styleSpec:t.styleSpec,objectElementValidators:{"*":()=>[],type:()=>Fi({key:`${n}.type`,value:r.type,valueSpec:s.layer.type,style:t.style,styleSpec:t.styleSpec,object:r,objectKey:"type"}),filter:t=>Ai(ee({layerType:a},t)),layout:t=>ni({layer:r,key:t.key,value:t.value,valueSpec:{},style:t.style,styleSpec:t.styleSpec,objectElementValidators:{"*":t=>Mi(ee({layerType:a},t))}}),paint:t=>ni({layer:r,key:t.key,value:t.value,valueSpec:{},style:t.style,styleSpec:t.styleSpec,objectElementValidators:{"*":t=>Ii(ee({layerType:a},t))}})}})),e}function zi(t){const e=t.value,r=t.key,n=Un(e);return "string"!==n?[new ri(r,e,`string expected, ${n} found`)]:[]}const Bi={promoteId:function({key:t,value:e}){if("string"===Un(e))return zi({key:t,value:e});{const r=[];for(const n in e)r.push(...zi({key:`${t}.${n}`,value:e[n]}));return r}}};function Ei(t){const e=t.value,r=t.key,n=t.styleSpec,i=t.style;if(!e.type)return [new ri(r,e,'"type" is required')];const s=re(e.type);let a;switch(s){case"vector":case"raster":case"raster-dem":return a=ni({key:r,value:e,valueSpec:n[`source_${s.replace("-","_")}`],style:t.style,styleSpec:n,objectElementValidators:Bi}),a;case"geojson":if(a=ni({key:r,value:e,valueSpec:n.source_geojson,style:i,styleSpec:n,objectElementValidators:Bi}),e.cluster)for(const t in e.clusterProperties){const[n,i]=e.clusterProperties[t],s="string"==typeof n?[n,["accumulated"],["get",t]]:n;a.push(...oi({key:`${r}.${t}.map`,value:i,expressionContext:"cluster-map"})),a.push(...oi({key:`${r}.${t}.reduce`,value:s,expressionContext:"cluster-reduce"}));}return a;case"video":return ni({key:r,value:e,valueSpec:n.source_video,style:i,styleSpec:n});case"image":return ni({key:r,value:e,valueSpec:n.source_image,style:i,styleSpec:n});case"canvas":return [new ri(r,null,"Please use runtime APIs to add canvas sources, rather than including them in stylesheets.","source.canvas")];default:return ui({key:`${r}.type`,value:e.type,valueSpec:{values:Ci(n)},style:i,styleSpec:n})}}function Ci(t){return t.source.reduce(((e,r)=>{const n=t[r];return "enum"===n.type.type&&(e=e.concat(Object.keys(n.type.values))),e}),[])}function Pi(t){const e=t.value,r=t.styleSpec,n=r.light,i=t.style;let s=[];const a=Un(e);if(void 0===e)return s;if("object"!==a)return s=s.concat([new ri("light",e,`object expected, ${a} found`)]),s;for(const t in e){const a=t.match(/^(.*)-transition$/);s=s.concat(a&&n[a[1]]&&n[a[1]].transition?Fi({key:t,value:e[t],valueSpec:r.transition,style:i,styleSpec:r}):n[t]?Fi({key:t,value:e[t],valueSpec:n[t],style:i,styleSpec:r}):[new ri(t,e[t],`unknown property "${t}"`)]);}return s}function Di(t){const e=t.value,r=t.key,n=t.style,i=t.styleSpec,s=i.terrain;let a=[];const o=Un(e);if(void 0===e)return a;if("object"!==o)return a=a.concat([new ri("terrain",e,`object expected, ${o} found`)]),a;for(const t in e){const r=t.match(/^(.*)-transition$/);a=a.concat(r&&s[r[1]]&&s[r[1]].transition?Fi({key:t,value:e[t],valueSpec:i.transition,style:n,styleSpec:i}):s[t]?Fi({key:t,value:e[t],valueSpec:s[t],style:n,styleSpec:i}):[new ri(t,e[t],`unknown property "${t}"`)]);}if(e.source){const t=n.sources&&n.sources[e.source],i=t&&re(t.type);t?"raster-dem"!==i&&a.push(new ri(r,e.source,`terrain cannot be used with a source of type ${String(i)}, it only be used with a "raster-dem" source type`)):a.push(new ri(r,e.source,`source "${e.source}" not found`));}else a.push(new ri(r,e,'terrain is missing required property "source"'));return a}function Vi(t){const e=t.value,r=t.style,n=t.styleSpec,i=n.fog;let s=[];const a=Un(e);if(void 0===e)return s;if("object"!==a)return s=s.concat([new ri("fog",e,`object expected, ${a} found`)]),s;for(const t in e){const a=t.match(/^(.*)-transition$/);s=s.concat(a&&i[a[1]]&&i[a[1]].transition?Fi({key:t,value:e[t],valueSpec:n.transition,style:r,styleSpec:n}):i[t]?Fi({key:t,value:e[t],valueSpec:i[t],style:r,styleSpec:n}):[new ri(t,e[t],`unknown property "${t}"`)]);}return s}const Li={"*":()=>[],array:ii,boolean:function(t){const e=t.value,r=t.key,n=Un(e);return "boolean"!==n?[new ri(r,e,`boolean expected, ${n} found`)]:[]},number:si,color:function(t){const e=t.key,r=t.value,n=Un(r);return "string"!==n?[new ri(e,r,`color expected, ${n} found`)]:null===Se(r)?[new ri(e,r,`color expected, "${r}" found`)]:[]},enum:ui,filter:Ai,function:ai,layer:Ti,object:ni,source:Ei,light:Pi,terrain:Di,fog:Vi,string:zi,formatted:function(t){return 0===zi(t).length?[]:oi(t)},resolvedImage:function(t){return 0===zi(t).length?[]:oi(t)},projection:function(t){const e=t.value,r=t.styleSpec,n=r.projection,i=t.style;let s=[];const a=Un(e);if("object"===a)for(const t in e)s=s.concat(Fi({key:t,value:e[t],valueSpec:n[t],style:i,styleSpec:r}));else "string"!==a&&(s=s.concat([new ri("projection",e,`object or string expected, ${a} found`)]));return s}};function Fi(t){const e=t.value,r=t.valueSpec,n=t.styleSpec;return r.expression&&$n(re(e))?ai(t):r.expression&&Jn(ne(e))?oi(t):r.type&&Li[r.type]?Li[r.type](t):ni(ee({},t,{valueSpec:r.type?n[r.type]:r}))}function Ri(t){const e=t.value,r=t.key,n=zi(t);return n.length||(-1===e.indexOf("{fontstack}")&&n.push(new ri(r,e,'"glyphs" url must include a "{fontstack}" token')),-1===e.indexOf("{range}")&&n.push(new ri(r,e,'"glyphs" url must include a "{range}" token'))),n}function Ui(t,e=te){return Oi(Fi({key:"",value:t,valueSpec:e.$root,styleSpec:e,style:t,objectElementValidators:{glyphs:Ri,"*":()=>[]}}))}const $i=t=>Oi(Ii(t)),ji=t=>Oi(Mi(t));function Oi(t){return t.slice().sort(((t,e)=>t.line&&e.line?t.line-e.line:0))}function qi(t,e){let r=!1;if(e&&e.length)for(const n of e)t.fire(new Wt(new Error(n.message))),r=!0;return r}var Ni=Zi,Gi=3;function Zi(t,e,r){var n=this.cells=[];if(t instanceof ArrayBuffer){this.arrayBuffer=t;var i=new Int32Array(this.arrayBuffer);t=i[0],this.d=(e=i[1])+2*(r=i[2]);for(var s=0;s=c[d+0]&&n>=c[d+1])?(a[p]=!0,s.push(u[p])):a[p]=!1;}}},Zi.prototype._forEachCell=function(t,e,r,n,i,s,a,o){for(var l=this._convertToCellCoord(t),u=this._convertToCellCoord(e),c=this._convertToCellCoord(r),h=this._convertToCellCoord(n),p=l;p<=c;p++)for(var d=u;d<=h;d++){var f=this.d*d+p;if((!o||o(this._convertFromCellCoord(p),this._convertFromCellCoord(d),this._convertFromCellCoord(p+1),this._convertFromCellCoord(d+1)))&&i.call(this,t,e,r,n,f,s,a,o))return}},Zi.prototype._convertFromCellCoord=function(t){return (t-this.padding)/this.scale},Zi.prototype._convertToCellCoord=function(t){return Math.max(0,Math.min(this.d-1,Math.floor(t*this.scale)+this.padding))},Zi.prototype.toArrayBuffer=function(){if(this.arrayBuffer)return this.arrayBuffer;for(var t=this.cells,e=Gi+this.cells.length+1+1,r=0,n=0;n=0||(i[e]=Wi(t[e],r)));t instanceof Error&&(i.message=t.message);}if(i.$name)throw new Error("$name property is reserved for worker serialization logic.");return "Object"!==n&&(i.$name=n),i}throw new Error("can't serialize object of type "+typeof t)}function Qi(t){if(null==t||"boolean"==typeof t||"number"==typeof t||"string"==typeof t||t instanceof Boolean||t instanceof Number||t instanceof String||t instanceof Date||t instanceof RegExp||Hi(t)||Yi(t)||ArrayBuffer.isView(t)||t instanceof e.ImageData)return t;if(Array.isArray(t))return t.map(Qi);if("object"==typeof t){const e=t.$name||"Object",{klass:r}=Xi[e];if(!r)throw new Error(`can't deserialize unregistered class ${e}`);if(r.deserialize)return r.deserialize(t);const n=Object.create(r.prototype);for(const e of Object.keys(t))"$name"!==e&&(n[e]=Qi(t[e]));return n}throw new Error("can't deserialize object of type "+typeof t)}const ts={"Latin-1 Supplement":t=>t>=128&&t<=255,Arabic:t=>t>=1536&&t<=1791,"Arabic Supplement":t=>t>=1872&&t<=1919,"Arabic Extended-A":t=>t>=2208&&t<=2303,"Hangul Jamo":t=>t>=4352&&t<=4607,"Unified Canadian Aboriginal Syllabics":t=>t>=5120&&t<=5759,Khmer:t=>t>=6016&&t<=6143,"Unified Canadian Aboriginal Syllabics Extended":t=>t>=6320&&t<=6399,"General Punctuation":t=>t>=8192&&t<=8303,"Letterlike Symbols":t=>t>=8448&&t<=8527,"Number Forms":t=>t>=8528&&t<=8591,"Miscellaneous Technical":t=>t>=8960&&t<=9215,"Control Pictures":t=>t>=9216&&t<=9279,"Optical Character Recognition":t=>t>=9280&&t<=9311,"Enclosed Alphanumerics":t=>t>=9312&&t<=9471,"Geometric Shapes":t=>t>=9632&&t<=9727,"Miscellaneous Symbols":t=>t>=9728&&t<=9983,"Miscellaneous Symbols and Arrows":t=>t>=11008&&t<=11263,"CJK Radicals Supplement":t=>t>=11904&&t<=12031,"Kangxi Radicals":t=>t>=12032&&t<=12255,"Ideographic Description Characters":t=>t>=12272&&t<=12287,"CJK Symbols and Punctuation":t=>t>=12288&&t<=12351,Hiragana:t=>t>=12352&&t<=12447,Katakana:t=>t>=12448&&t<=12543,Bopomofo:t=>t>=12544&&t<=12591,"Hangul Compatibility Jamo":t=>t>=12592&&t<=12687,Kanbun:t=>t>=12688&&t<=12703,"Bopomofo Extended":t=>t>=12704&&t<=12735,"CJK Strokes":t=>t>=12736&&t<=12783,"Katakana Phonetic Extensions":t=>t>=12784&&t<=12799,"Enclosed CJK Letters and Months":t=>t>=12800&&t<=13055,"CJK Compatibility":t=>t>=13056&&t<=13311,"CJK Unified Ideographs Extension A":t=>t>=13312&&t<=19903,"Yijing Hexagram Symbols":t=>t>=19904&&t<=19967,"CJK Unified Ideographs":t=>t>=19968&&t<=40959,"Yi Syllables":t=>t>=40960&&t<=42127,"Yi Radicals":t=>t>=42128&&t<=42191,"Hangul Jamo Extended-A":t=>t>=43360&&t<=43391,"Hangul Syllables":t=>t>=44032&&t<=55215,"Hangul Jamo Extended-B":t=>t>=55216&&t<=55295,"Private Use Area":t=>t>=57344&&t<=63743,"CJK Compatibility Ideographs":t=>t>=63744&&t<=64255,"Arabic Presentation Forms-A":t=>t>=64336&&t<=65023,"Vertical Forms":t=>t>=65040&&t<=65055,"CJK Compatibility Forms":t=>t>=65072&&t<=65103,"Small Form Variants":t=>t>=65104&&t<=65135,"Arabic Presentation Forms-B":t=>t>=65136&&t<=65279,"Halfwidth and Fullwidth Forms":t=>t>=65280&&t<=65519};function es(t){for(const e of t)if(is(e.charCodeAt(0)))return !0;return !1}function rs(t){for(const e of t)if(!ns(e.charCodeAt(0)))return !1;return !0}function ns(t){return !(ts.Arabic(t)||ts["Arabic Supplement"](t)||ts["Arabic Extended-A"](t)||ts["Arabic Presentation Forms-A"](t)||ts["Arabic Presentation Forms-B"](t))}function is(t){return !(746!==t&&747!==t&&(t<4352||!(ts["Bopomofo Extended"](t)||ts.Bopomofo(t)||ts["CJK Compatibility Forms"](t)&&!(t>=65097&&t<=65103)||ts["CJK Compatibility Ideographs"](t)||ts["CJK Compatibility"](t)||ts["CJK Radicals Supplement"](t)||ts["CJK Strokes"](t)||!(!ts["CJK Symbols and Punctuation"](t)||t>=12296&&t<=12305||t>=12308&&t<=12319||12336===t)||ts["CJK Unified Ideographs Extension A"](t)||ts["CJK Unified Ideographs"](t)||ts["Enclosed CJK Letters and Months"](t)||ts["Hangul Compatibility Jamo"](t)||ts["Hangul Jamo Extended-A"](t)||ts["Hangul Jamo Extended-B"](t)||ts["Hangul Jamo"](t)||ts["Hangul Syllables"](t)||ts.Hiragana(t)||ts["Ideographic Description Characters"](t)||ts.Kanbun(t)||ts["Kangxi Radicals"](t)||ts["Katakana Phonetic Extensions"](t)||ts.Katakana(t)&&12540!==t||!(!ts["Halfwidth and Fullwidth Forms"](t)||65288===t||65289===t||65293===t||t>=65306&&t<=65310||65339===t||65341===t||65343===t||t>=65371&&t<=65503||65507===t||t>=65512&&t<=65519)||!(!ts["Small Form Variants"](t)||t>=65112&&t<=65118||t>=65123&&t<=65126)||ts["Unified Canadian Aboriginal Syllabics"](t)||ts["Unified Canadian Aboriginal Syllabics Extended"](t)||ts["Vertical Forms"](t)||ts["Yijing Hexagram Symbols"](t)||ts["Yi Syllables"](t)||ts["Yi Radicals"](t))))}function ss(t){return !(is(t)||function(t){return !!(ts["Latin-1 Supplement"](t)&&(167===t||169===t||174===t||177===t||188===t||189===t||190===t||215===t||247===t)||ts["General Punctuation"](t)&&(8214===t||8224===t||8225===t||8240===t||8241===t||8251===t||8252===t||8258===t||8263===t||8264===t||8265===t||8273===t)||ts["Letterlike Symbols"](t)||ts["Number Forms"](t)||ts["Miscellaneous Technical"](t)&&(t>=8960&&t<=8967||t>=8972&&t<=8991||t>=8996&&t<=9e3||9003===t||t>=9085&&t<=9114||t>=9150&&t<=9165||9167===t||t>=9169&&t<=9179||t>=9186&&t<=9215)||ts["Control Pictures"](t)&&9251!==t||ts["Optical Character Recognition"](t)||ts["Enclosed Alphanumerics"](t)||ts["Geometric Shapes"](t)||ts["Miscellaneous Symbols"](t)&&!(t>=9754&&t<=9759)||ts["Miscellaneous Symbols and Arrows"](t)&&(t>=11026&&t<=11055||t>=11088&&t<=11097||t>=11192&&t<=11243)||ts["CJK Symbols and Punctuation"](t)||ts.Katakana(t)||ts["Private Use Area"](t)||ts["CJK Compatibility Forms"](t)||ts["Small Form Variants"](t)||ts["Halfwidth and Fullwidth Forms"](t)||8734===t||8756===t||8757===t||t>=9984&&t<=10087||t>=10102&&t<=10131||65532===t||65533===t)}(t))}function as(t){return t>=1424&&t<=2303||ts["Arabic Presentation Forms-A"](t)||ts["Arabic Presentation Forms-B"](t)}function os(t,e){return !(!e&&as(t)||t>=2304&&t<=3583||t>=3840&&t<=4255||ts.Khmer(t))}function ls(t){for(const e of t)if(as(e.charCodeAt(0)))return !0;return !1}const us="deferred",cs="loading",hs="loaded";let ps=null,ds="unavailable",fs=null;const ys=function(t){t&&"string"==typeof t&&t.indexOf("NetworkError")>-1&&(ds="error"),ps&&ps(t);};function ms(){gs.fire(new Yt("pluginStateChange",{pluginStatus:ds,pluginURL:fs}));}const gs=new Qt,xs=function(){return ds},vs=function(){if(ds!==us||!fs)throw new Error("rtl-text-plugin cannot be downloaded unless a pluginURL is specified");ds=cs,ms(),fs&&pt({url:fs},(t=>{t?ys(t):(ds=hs,ms());}));},bs={applyArabicShaping:null,processBidirectionalText:null,processStyledBidirectionalText:null,isLoaded:()=>ds===hs||null!=bs.applyArabicShaping,isLoading:()=>ds===cs,setState(t){ds=t.pluginStatus,fs=t.pluginURL;},isParsed:()=>null!=bs.applyArabicShaping&&null!=bs.processBidirectionalText&&null!=bs.processStyledBidirectionalText,getPluginURL:()=>fs};class ws{constructor(t,e){this.zoom=t,e?(this.now=e.now,this.fadeDuration=e.fadeDuration,this.transition=e.transition,this.pitch=e.pitch):(this.now=0,this.fadeDuration=0,this.transition={},this.pitch=0);}isSupportedScript(t){return function(t,e){for(const r of t)if(!os(r.charCodeAt(0),e))return !1;return !0}(t,bs.isLoaded())}}class _s{constructor(t,e){this.property=t,this.value=e,this.expression=function(t,e){if($n(t))return new ti(t,e);if(Jn(t)){const r=Qn(t,e);if("error"===r.result)throw new Error(r.value.map((t=>`${t.key}: ${t.message}`)).join(", "));return r.value}{let r=t;return "string"==typeof t&&"color"===e.type&&(r=Ee.parse(t)),{kind:"constant",evaluate:()=>r}}}(void 0===e?t.specification.default:e,t.specification);}isDataDriven(){return "source"===this.expression.kind||"composite"===this.expression.kind}possiblyEvaluate(t,e,r){return this.property.possiblyEvaluate(this,t,e,r)}}class As{constructor(t){this.property=t,this.value=new _s(t,void 0);}transitioned(t,e){return new ks(this.property,this.value,e,C({},t.transition,this.transition),t.now)}untransitioned(){return new ks(this.property,this.value,null,{},0)}}class Ss{constructor(t){this._properties=t,this._values=Object.create(t.defaultTransitionablePropertyValues);}getValue(t){return O(this._values[t].value.value)}setValue(t,e){this._values.hasOwnProperty(t)||(this._values[t]=new As(this._values[t].property)),this._values[t].value=new _s(this._values[t].property,null===e?void 0:O(e));}getTransition(t){return O(this._values[t].transition)}setTransition(t,e){this._values.hasOwnProperty(t)||(this._values[t]=new As(this._values[t].property)),this._values[t].transition=O(e)||void 0;}serialize(){const t={};for(const e of Object.keys(this._values)){const r=this.getValue(e);void 0!==r&&(t[e]=r);const n=this.getTransition(e);void 0!==n&&(t[`${e}-transition`]=n);}return t}transitioned(t,e){const r=new Is(this._properties);for(const n of Object.keys(this._values))r._values[n]=this._values[n].transitioned(t,e._values[n]);return r}untransitioned(){const t=new Is(this._properties);for(const e of Object.keys(this._values))t._values[e]=this._values[e].untransitioned();return t}}class ks{constructor(t,e,r,n,i){const s=n.delay||0,a=n.duration||0;i=i||0,this.property=t,this.value=e,this.begin=i+s,this.end=this.begin+a,t.specification.transition&&(n.delay||n.duration)&&(this.prior=r);}possiblyEvaluate(t,e,r){const n=t.now||0,i=this.value.possiblyEvaluate(t,e,r),s=this.prior;if(s){if(n>this.end)return this.prior=null,i;if(this.value.isDataDriven())return this.prior=null,i;if(nthis.capacity){this.capacity=Math.max(t,Math.floor(5*this.capacity),128),this.arrayBuffer=new ArrayBuffer(this.capacity*this.bytesPerElement);const e=this.uint8;this._refreshViews(),e&&this.uint8.set(e);}}_refreshViews(){throw new Error("_refreshViews() must be implemented by each concrete StructArray layout")}destroy(){this.int8=this.uint8=this.int16=this.uint16=this.int32=this.uint32=this.float32=null,this.arrayBuffer=null;}}function Rs(t,e=1){let r=0,n=0;return {members:t.map((t=>{const i=Vs[t.type].BYTES_PER_ELEMENT,s=r=Us(r,Math.max(e,i)),a=t.components||1;return n=Math.max(n,i),r+=i*a,{name:t.name,type:t.type,components:a,offset:s}})),size:Us(r,Math.max(n,e)),alignment:e}}function Us(t,e){return Math.ceil(t/e)*e}class $s extends Fs{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer);}emplaceBack(t,e){const r=this.length;return this.resize(r+1),this.emplace(r,t,e)}emplace(t,e,r){const n=2*t;return this.int16[n+0]=e,this.int16[n+1]=r,t}}$s.prototype.bytesPerElement=4,Ji($s,"StructArrayLayout2i4");class js extends Fs{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer);}emplaceBack(t,e,r){const n=this.length;return this.resize(n+1),this.emplace(n,t,e,r)}emplace(t,e,r,n){const i=3*t;return this.int16[i+0]=e,this.int16[i+1]=r,this.int16[i+2]=n,t}}js.prototype.bytesPerElement=6,Ji(js,"StructArrayLayout3i6");class Os extends Fs{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer);}emplaceBack(t,e,r,n){const i=this.length;return this.resize(i+1),this.emplace(i,t,e,r,n)}emplace(t,e,r,n,i){const s=4*t;return this.int16[s+0]=e,this.int16[s+1]=r,this.int16[s+2]=n,this.int16[s+3]=i,t}}Os.prototype.bytesPerElement=8,Ji(Os,"StructArrayLayout4i8");class qs extends Fs{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(t,e,r,n,i,s,a){const o=this.length;return this.resize(o+1),this.emplace(o,t,e,r,n,i,s,a)}emplace(t,e,r,n,i,s,a,o){const l=6*t,u=12*t,c=3*t;return this.int16[l+0]=e,this.int16[l+1]=r,this.uint8[u+4]=n,this.uint8[u+5]=i,this.uint8[u+6]=s,this.uint8[u+7]=a,this.float32[c+2]=o,t}}qs.prototype.bytesPerElement=12,Ji(qs,"StructArrayLayout2i4ub1f12");class Ns extends Fs{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(t,e,r,n){const i=this.length;return this.resize(i+1),this.emplace(i,t,e,r,n)}emplace(t,e,r,n,i){const s=4*t;return this.float32[s+0]=e,this.float32[s+1]=r,this.float32[s+2]=n,this.float32[s+3]=i,t}}Ns.prototype.bytesPerElement=16,Ji(Ns,"StructArrayLayout4f16");class Gs extends Fs{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(t,e,r,n,i){const s=this.length;return this.resize(s+1),this.emplace(s,t,e,r,n,i)}emplace(t,e,r,n,i,s){const a=6*t,o=3*t;return this.uint16[a+0]=e,this.uint16[a+1]=r,this.uint16[a+2]=n,this.uint16[a+3]=i,this.float32[o+2]=s,t}}Gs.prototype.bytesPerElement=12,Ji(Gs,"StructArrayLayout4ui1f12");class Zs extends Fs{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer);}emplaceBack(t,e,r,n){const i=this.length;return this.resize(i+1),this.emplace(i,t,e,r,n)}emplace(t,e,r,n,i){const s=4*t;return this.uint16[s+0]=e,this.uint16[s+1]=r,this.uint16[s+2]=n,this.uint16[s+3]=i,t}}Zs.prototype.bytesPerElement=8,Ji(Zs,"StructArrayLayout4ui8");class Ks extends Fs{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer);}emplaceBack(t,e,r,n,i,s){const a=this.length;return this.resize(a+1),this.emplace(a,t,e,r,n,i,s)}emplace(t,e,r,n,i,s,a){const o=6*t;return this.int16[o+0]=e,this.int16[o+1]=r,this.int16[o+2]=n,this.int16[o+3]=i,this.int16[o+4]=s,this.int16[o+5]=a,t}}Ks.prototype.bytesPerElement=12,Ji(Ks,"StructArrayLayout6i12");class Xs extends Fs{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer);}emplaceBack(t,e,r,n,i,s,a,o,l,u,c,h){const p=this.length;return this.resize(p+1),this.emplace(p,t,e,r,n,i,s,a,o,l,u,c,h)}emplace(t,e,r,n,i,s,a,o,l,u,c,h,p){const d=12*t;return this.int16[d+0]=e,this.int16[d+1]=r,this.int16[d+2]=n,this.int16[d+3]=i,this.uint16[d+4]=s,this.uint16[d+5]=a,this.uint16[d+6]=o,this.uint16[d+7]=l,this.int16[d+8]=u,this.int16[d+9]=c,this.int16[d+10]=h,this.int16[d+11]=p,t}}Xs.prototype.bytesPerElement=24,Ji(Xs,"StructArrayLayout4i4ui4i24");class Js extends Fs{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(t,e,r,n,i,s){const a=this.length;return this.resize(a+1),this.emplace(a,t,e,r,n,i,s)}emplace(t,e,r,n,i,s,a){const o=10*t,l=5*t;return this.int16[o+0]=e,this.int16[o+1]=r,this.int16[o+2]=n,this.float32[l+2]=i,this.float32[l+3]=s,this.float32[l+4]=a,t}}Js.prototype.bytesPerElement=20,Ji(Js,"StructArrayLayout3i3f20");class Hs extends Fs{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer);}emplaceBack(t){const e=this.length;return this.resize(e+1),this.emplace(e,t)}emplace(t,e){return this.uint32[1*t+0]=e,t}}Hs.prototype.bytesPerElement=4,Ji(Hs,"StructArrayLayout1ul4");class Ys extends Fs{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer);}emplaceBack(t,e,r,n,i,s,a,o,l,u,c,h,p){const d=this.length;return this.resize(d+1),this.emplace(d,t,e,r,n,i,s,a,o,l,u,c,h,p)}emplace(t,e,r,n,i,s,a,o,l,u,c,h,p,d){const f=20*t,y=10*t;return this.int16[f+0]=e,this.int16[f+1]=r,this.int16[f+2]=n,this.int16[f+3]=i,this.int16[f+4]=s,this.float32[y+3]=a,this.float32[y+4]=o,this.float32[y+5]=l,this.float32[y+6]=u,this.int16[f+14]=c,this.uint32[y+8]=h,this.uint16[f+18]=p,this.uint16[f+19]=d,t}}Ys.prototype.bytesPerElement=40,Ji(Ys,"StructArrayLayout5i4f1i1ul2ui40");class Ws extends Fs{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer);}emplaceBack(t,e,r,n,i,s,a){const o=this.length;return this.resize(o+1),this.emplace(o,t,e,r,n,i,s,a)}emplace(t,e,r,n,i,s,a,o){const l=8*t;return this.int16[l+0]=e,this.int16[l+1]=r,this.int16[l+2]=n,this.int16[l+4]=i,this.int16[l+5]=s,this.int16[l+6]=a,this.int16[l+7]=o,t}}Ws.prototype.bytesPerElement=16,Ji(Ws,"StructArrayLayout3i2i2i16");class Qs extends Fs{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer);}emplaceBack(t,e,r,n,i){const s=this.length;return this.resize(s+1),this.emplace(s,t,e,r,n,i)}emplace(t,e,r,n,i,s){const a=4*t,o=8*t;return this.float32[a+0]=e,this.float32[a+1]=r,this.float32[a+2]=n,this.int16[o+6]=i,this.int16[o+7]=s,t}}Qs.prototype.bytesPerElement=16,Ji(Qs,"StructArrayLayout2f1f2i16");class ta extends Fs{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(t,e,r,n){const i=this.length;return this.resize(i+1),this.emplace(i,t,e,r,n)}emplace(t,e,r,n,i){const s=12*t,a=3*t;return this.uint8[s+0]=e,this.uint8[s+1]=r,this.float32[a+1]=n,this.float32[a+2]=i,t}}ta.prototype.bytesPerElement=12,Ji(ta,"StructArrayLayout2ub2f12");class ea extends Fs{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(t,e,r){const n=this.length;return this.resize(n+1),this.emplace(n,t,e,r)}emplace(t,e,r,n){const i=3*t;return this.float32[i+0]=e,this.float32[i+1]=r,this.float32[i+2]=n,t}}ea.prototype.bytesPerElement=12,Ji(ea,"StructArrayLayout3f12");class ra extends Fs{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer);}emplaceBack(t,e,r){const n=this.length;return this.resize(n+1),this.emplace(n,t,e,r)}emplace(t,e,r,n){const i=3*t;return this.uint16[i+0]=e,this.uint16[i+1]=r,this.uint16[i+2]=n,t}}ra.prototype.bytesPerElement=6,Ji(ra,"StructArrayLayout3ui6");class na extends Fs{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer);}emplaceBack(t,e,r,n,i,s,a,o,l,u,c,h,p,d,f,y,m,g,x,v,b){const w=this.length;return this.resize(w+1),this.emplace(w,t,e,r,n,i,s,a,o,l,u,c,h,p,d,f,y,m,g,x,v,b)}emplace(t,e,r,n,i,s,a,o,l,u,c,h,p,d,f,y,m,g,x,v,b,w){const _=30*t,A=15*t,S=60*t;return this.int16[_+0]=e,this.int16[_+1]=r,this.int16[_+2]=n,this.float32[A+2]=i,this.float32[A+3]=s,this.uint16[_+8]=a,this.uint16[_+9]=o,this.uint32[A+5]=l,this.uint32[A+6]=u,this.uint32[A+7]=c,this.uint16[_+16]=h,this.uint16[_+17]=p,this.uint16[_+18]=d,this.float32[A+10]=f,this.float32[A+11]=y,this.uint8[S+48]=m,this.uint8[S+49]=g,this.uint8[S+50]=x,this.uint32[A+13]=v,this.int16[_+28]=b,this.uint8[S+58]=w,t}}na.prototype.bytesPerElement=60,Ji(na,"StructArrayLayout3i2f2ui3ul3ui2f3ub1ul1i1ub60");class ia extends Fs{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer);}emplaceBack(t,e,r,n,i,s,a,o,l,u,c,h,p,d,f,y,m,g,x,v,b,w,_,A,S,k,I,M,T,z){const B=this.length;return this.resize(B+1),this.emplace(B,t,e,r,n,i,s,a,o,l,u,c,h,p,d,f,y,m,g,x,v,b,w,_,A,S,k,I,M,T,z)}emplace(t,e,r,n,i,s,a,o,l,u,c,h,p,d,f,y,m,g,x,v,b,w,_,A,S,k,I,M,T,z,B){const E=38*t,C=19*t;return this.int16[E+0]=e,this.int16[E+1]=r,this.int16[E+2]=n,this.float32[C+2]=i,this.float32[C+3]=s,this.int16[E+8]=a,this.int16[E+9]=o,this.int16[E+10]=l,this.int16[E+11]=u,this.int16[E+12]=c,this.int16[E+13]=h,this.uint16[E+14]=p,this.uint16[E+15]=d,this.uint16[E+16]=f,this.uint16[E+17]=y,this.uint16[E+18]=m,this.uint16[E+19]=g,this.uint16[E+20]=x,this.uint16[E+21]=v,this.uint16[E+22]=b,this.uint16[E+23]=w,this.uint16[E+24]=_,this.uint16[E+25]=A,this.uint16[E+26]=S,this.uint16[E+27]=k,this.uint16[E+28]=I,this.uint32[C+15]=M,this.float32[C+16]=T,this.float32[C+17]=z,this.float32[C+18]=B,t}}ia.prototype.bytesPerElement=76,Ji(ia,"StructArrayLayout3i2f6i15ui1ul3f76");class sa extends Fs{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(t){const e=this.length;return this.resize(e+1),this.emplace(e,t)}emplace(t,e){return this.float32[1*t+0]=e,t}}sa.prototype.bytesPerElement=4,Ji(sa,"StructArrayLayout1f4");class aa extends Fs{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(t,e,r,n,i){const s=this.length;return this.resize(s+1),this.emplace(s,t,e,r,n,i)}emplace(t,e,r,n,i,s){const a=5*t;return this.float32[a+0]=e,this.float32[a+1]=r,this.float32[a+2]=n,this.float32[a+3]=i,this.float32[a+4]=s,t}}aa.prototype.bytesPerElement=20,Ji(aa,"StructArrayLayout5f20");class oa extends Fs{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer);}emplaceBack(t,e,r,n){const i=this.length;return this.resize(i+1),this.emplace(i,t,e,r,n)}emplace(t,e,r,n,i){const s=6*t;return this.uint32[3*t+0]=e,this.uint16[s+2]=r,this.uint16[s+3]=n,this.uint16[s+4]=i,t}}oa.prototype.bytesPerElement=12,Ji(oa,"StructArrayLayout1ul3ui12");class la extends Fs{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer);}emplaceBack(t,e){const r=this.length;return this.resize(r+1),this.emplace(r,t,e)}emplace(t,e,r){const n=2*t;return this.uint16[n+0]=e,this.uint16[n+1]=r,t}}la.prototype.bytesPerElement=4,Ji(la,"StructArrayLayout2ui4");class ua extends Fs{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer);}emplaceBack(t){const e=this.length;return this.resize(e+1),this.emplace(e,t)}emplace(t,e){return this.uint16[1*t+0]=e,t}}ua.prototype.bytesPerElement=2,Ji(ua,"StructArrayLayout1ui2");class ca extends Fs{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(t,e){const r=this.length;return this.resize(r+1),this.emplace(r,t,e)}emplace(t,e,r){const n=2*t;return this.float32[n+0]=e,this.float32[n+1]=r,t}}ca.prototype.bytesPerElement=8,Ji(ca,"StructArrayLayout2f8");class ha extends Ls{get projectedAnchorX(){return this._structArray.int16[this._pos2+0]}get projectedAnchorY(){return this._structArray.int16[this._pos2+1]}get projectedAnchorZ(){return this._structArray.int16[this._pos2+2]}get tileAnchorX(){return this._structArray.int16[this._pos2+3]}get tileAnchorY(){return this._structArray.int16[this._pos2+4]}get x1(){return this._structArray.float32[this._pos4+3]}get y1(){return this._structArray.float32[this._pos4+4]}get x2(){return this._structArray.float32[this._pos4+5]}get y2(){return this._structArray.float32[this._pos4+6]}get padding(){return this._structArray.int16[this._pos2+14]}get featureIndex(){return this._structArray.uint32[this._pos4+8]}get sourceLayerIndex(){return this._structArray.uint16[this._pos2+18]}get bucketIndex(){return this._structArray.uint16[this._pos2+19]}}ha.prototype.size=40;class pa extends Ys{get(t){return new ha(this,t)}}Ji(pa,"CollisionBoxArray");class da extends Ls{get projectedAnchorX(){return this._structArray.int16[this._pos2+0]}get projectedAnchorY(){return this._structArray.int16[this._pos2+1]}get projectedAnchorZ(){return this._structArray.int16[this._pos2+2]}get tileAnchorX(){return this._structArray.float32[this._pos4+2]}get tileAnchorY(){return this._structArray.float32[this._pos4+3]}get glyphStartIndex(){return this._structArray.uint16[this._pos2+8]}get numGlyphs(){return this._structArray.uint16[this._pos2+9]}get vertexStartIndex(){return this._structArray.uint32[this._pos4+5]}get lineStartIndex(){return this._structArray.uint32[this._pos4+6]}get lineLength(){return this._structArray.uint32[this._pos4+7]}get segment(){return this._structArray.uint16[this._pos2+16]}get lowerSize(){return this._structArray.uint16[this._pos2+17]}get upperSize(){return this._structArray.uint16[this._pos2+18]}get lineOffsetX(){return this._structArray.float32[this._pos4+10]}get lineOffsetY(){return this._structArray.float32[this._pos4+11]}get writingMode(){return this._structArray.uint8[this._pos1+48]}get placedOrientation(){return this._structArray.uint8[this._pos1+49]}set placedOrientation(t){this._structArray.uint8[this._pos1+49]=t;}get hidden(){return this._structArray.uint8[this._pos1+50]}set hidden(t){this._structArray.uint8[this._pos1+50]=t;}get crossTileID(){return this._structArray.uint32[this._pos4+13]}set crossTileID(t){this._structArray.uint32[this._pos4+13]=t;}get associatedIconIndex(){return this._structArray.int16[this._pos2+28]}get flipState(){return this._structArray.uint8[this._pos1+58]}set flipState(t){this._structArray.uint8[this._pos1+58]=t;}}da.prototype.size=60;class fa extends na{get(t){return new da(this,t)}}Ji(fa,"PlacedSymbolArray");class ya extends Ls{get projectedAnchorX(){return this._structArray.int16[this._pos2+0]}get projectedAnchorY(){return this._structArray.int16[this._pos2+1]}get projectedAnchorZ(){return this._structArray.int16[this._pos2+2]}get tileAnchorX(){return this._structArray.float32[this._pos4+2]}get tileAnchorY(){return this._structArray.float32[this._pos4+3]}get rightJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+8]}get centerJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+9]}get leftJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+10]}get verticalPlacedTextSymbolIndex(){return this._structArray.int16[this._pos2+11]}get placedIconSymbolIndex(){return this._structArray.int16[this._pos2+12]}get verticalPlacedIconSymbolIndex(){return this._structArray.int16[this._pos2+13]}get key(){return this._structArray.uint16[this._pos2+14]}get textBoxStartIndex(){return this._structArray.uint16[this._pos2+15]}get textBoxEndIndex(){return this._structArray.uint16[this._pos2+16]}get verticalTextBoxStartIndex(){return this._structArray.uint16[this._pos2+17]}get verticalTextBoxEndIndex(){return this._structArray.uint16[this._pos2+18]}get iconBoxStartIndex(){return this._structArray.uint16[this._pos2+19]}get iconBoxEndIndex(){return this._structArray.uint16[this._pos2+20]}get verticalIconBoxStartIndex(){return this._structArray.uint16[this._pos2+21]}get verticalIconBoxEndIndex(){return this._structArray.uint16[this._pos2+22]}get featureIndex(){return this._structArray.uint16[this._pos2+23]}get numHorizontalGlyphVertices(){return this._structArray.uint16[this._pos2+24]}get numVerticalGlyphVertices(){return this._structArray.uint16[this._pos2+25]}get numIconVertices(){return this._structArray.uint16[this._pos2+26]}get numVerticalIconVertices(){return this._structArray.uint16[this._pos2+27]}get useRuntimeCollisionCircles(){return this._structArray.uint16[this._pos2+28]}get crossTileID(){return this._structArray.uint32[this._pos4+15]}set crossTileID(t){this._structArray.uint32[this._pos4+15]=t;}get textOffset0(){return this._structArray.float32[this._pos4+16]}get textOffset1(){return this._structArray.float32[this._pos4+17]}get collisionCircleDiameter(){return this._structArray.float32[this._pos4+18]}}ya.prototype.size=76;class ma extends ia{get(t){return new ya(this,t)}}Ji(ma,"SymbolInstanceArray");class ga extends sa{getoffsetX(t){return this.float32[1*t+0]}}Ji(ga,"GlyphOffsetArray");class xa extends $s{getx(t){return this.int16[2*t+0]}gety(t){return this.int16[2*t+1]}}Ji(xa,"SymbolLineVertexArray");class va extends Ls{get featureIndex(){return this._structArray.uint32[this._pos4+0]}get sourceLayerIndex(){return this._structArray.uint16[this._pos2+2]}get bucketIndex(){return this._structArray.uint16[this._pos2+3]}get layoutVertexArrayOffset(){return this._structArray.uint16[this._pos2+4]}}va.prototype.size=12;class ba extends oa{get(t){return new va(this,t)}}Ji(ba,"FeatureIndexArray");class wa extends la{geta_centroid_pos0(t){return this.uint16[2*t+0]}geta_centroid_pos1(t){return this.uint16[2*t+1]}}Ji(wa,"FillExtrusionCentroidArray");const _a=Rs([{name:"a_pattern",components:4,type:"Uint16"},{name:"a_pixel_ratio",components:1,type:"Float32"}]),Aa=Rs([{name:"a_dash",components:4,type:"Uint16"}]);var Sa={exports:{}},ka={exports:{}};ka.exports=function(t,e){var r,n,i,s,a,o,l,u;for(n=t.length-(r=3&t.length),i=e,a=3432918353,o=461845907,u=0;u>>16)*a&65535)<<16)&4294967295)<<15|l>>>17))*o+(((l>>>16)*o&65535)<<16)&4294967295)<<13|i>>>19))+((5*(i>>>16)&65535)<<16)&4294967295))+((58964+(s>>>16)&65535)<<16);switch(l=0,r){case 3:l^=(255&t.charCodeAt(u+2))<<16;case 2:l^=(255&t.charCodeAt(u+1))<<8;case 1:i^=l=(65535&(l=(l=(65535&(l^=255&t.charCodeAt(u)))*a+(((l>>>16)*a&65535)<<16)&4294967295)<<15|l>>>17))*o+(((l>>>16)*o&65535)<<16)&4294967295;}return i^=t.length,i=2246822507*(65535&(i^=i>>>16))+((2246822507*(i>>>16)&65535)<<16)&4294967295,i=3266489909*(65535&(i^=i>>>13))+((3266489909*(i>>>16)&65535)<<16)&4294967295,(i^=i>>>16)>>>0};var Ia=ka.exports,Ma={exports:{}};Ma.exports=function(t,e){for(var r,n=t.length,i=e^n,s=0;n>=4;)r=1540483477*(65535&(r=255&t.charCodeAt(s)|(255&t.charCodeAt(++s))<<8|(255&t.charCodeAt(++s))<<16|(255&t.charCodeAt(++s))<<24))+((1540483477*(r>>>16)&65535)<<16),i=1540483477*(65535&i)+((1540483477*(i>>>16)&65535)<<16)^(r=1540483477*(65535&(r^=r>>>24))+((1540483477*(r>>>16)&65535)<<16)),n-=4,++s;switch(n){case 3:i^=(255&t.charCodeAt(s+2))<<16;case 2:i^=(255&t.charCodeAt(s+1))<<8;case 1:i=1540483477*(65535&(i^=255&t.charCodeAt(s)))+((1540483477*(i>>>16)&65535)<<16);}return i=1540483477*(65535&(i^=i>>>13))+((1540483477*(i>>>16)&65535)<<16),(i^=i>>>15)>>>0};var Ta=Ia,za=Ma.exports;Sa.exports=Ta,Sa.exports.murmur3=Ta,Sa.exports.murmur2=za;var Ba=p(Sa.exports);class Ea{constructor(){this.ids=[],this.positions=[],this.indexed=!1;}add(t,e,r,n){this.ids.push(Ca(t)),this.positions.push(e,r,n);}getPositions(t){const e=Ca(t);let r=0,n=this.ids.length-1;for(;r>1;this.ids[t]>=e?n=t:r=t+1;}const i=[];for(;this.ids[r]===e;)i.push({index:this.positions[3*r],start:this.positions[3*r+1],end:this.positions[3*r+2]}),r++;return i}static serialize(t,e){const r=new Float64Array(t.ids),n=new Uint32Array(t.positions);return Pa(r,n,0,r.length-1),e&&e.push(r.buffer,n.buffer),{ids:r,positions:n}}static deserialize(t){const e=new Ea;return e.ids=t.ids,e.positions=t.positions,e.indexed=!0,e}}function Ca(t){const e=+t;return !isNaN(e)&&Number.MIN_SAFE_INTEGER<=e&&e<=Number.MAX_SAFE_INTEGER?e:Ba(String(t))}function Pa(t,e,r,n){for(;r>1];let s=r-1,a=n+1;for(;;){do{s++;}while(t[s]i);if(s>=a)break;Da(t,s,a),Da(e,3*s,3*a),Da(e,3*s+1,3*a+1),Da(e,3*s+2,3*a+2);}a-r`u_${t}`)),this.type=r;}setUniform(t,e,r,n,i){e.set(t,i,n.constantOr(this.value));}getBinding(t,e){return "color"===this.type?new Ra(t):new La(t)}}class Na{constructor(t,e){this.uniformNames=e.map((t=>`u_${t}`)),this.pattern=null,this.pixelRatio=1;}setConstantPatternPositions(t){this.pixelRatio=t.pixelRatio||1,this.pattern=t.tl.concat(t.br);}setUniform(t,e,r,n,i){const s="u_pattern"===i||"u_dash"===i?this.pattern:"u_pixel_ratio"===i?this.pixelRatio:null;s&&e.set(t,i,s);}getBinding(t,e){return "u_pattern"===e||"u_dash"===e?new Fa(t):new La(t)}}class Ga{constructor(t,e,r,n){this.expression=t,this.type=r,this.maxValue=0,this.paintVertexAttributes=e.map((t=>({name:`a_${t}`,type:"Float32",components:"color"===r?2:1,offset:0}))),this.paintVertexArray=new n;}populatePaintArray(t,e,r,n,i,s){const a=this.paintVertexArray.length,o=this.expression.evaluate(new ws(0),e,{},i,n,s);this.paintVertexArray.resize(t),this._setPaintValue(a,t,o);}updatePaintArray(t,e,r,n,i){const s=this.expression.evaluate({zoom:0},r,n,void 0,i);this._setPaintValue(t,e,s);}_setPaintValue(t,e,r){if("color"===this.type){const n=Oa(r);for(let r=t;r`u_${t}_t`)),this.type=r,this.useIntegerZoom=n,this.zoom=i,this.maxValue=0,this.paintVertexAttributes=e.map((t=>({name:`a_${t}`,type:"Float32",components:"color"===r?4:2,offset:0}))),this.paintVertexArray=new s;}populatePaintArray(t,e,r,n,i,s){const a=this.expression.evaluate(new ws(this.zoom),e,{},i,n,s),o=this.expression.evaluate(new ws(this.zoom+1),e,{},i,n,s),l=this.paintVertexArray.length;this.paintVertexArray.resize(t),this._setPaintValue(l,t,a,o);}updatePaintArray(t,e,r,n,i){const s=this.expression.evaluate({zoom:this.zoom},r,n,void 0,i),a=this.expression.evaluate({zoom:this.zoom+1},r,n,void 0,i);this._setPaintValue(t,e,s,a);}_setPaintValue(t,e,r,n){if("color"===this.type){const i=Oa(r),s=Oa(n);for(let r=t;r!0)){this.binders={},this._buffers=[];const n=[];for(const i in t.paint._values){if(!r(i))continue;const s=t.paint.get(i);if(!(s instanceof Ts&&Ln(s.property.specification)))continue;const a=Ya(i,t.type),o=s.value,l=s.property.specification.type,u=!!s.property.useIntegerZoom,c="line-dasharray"===i||i.endsWith("pattern"),h="line-dasharray"===i&&"constant"!==t.layout.get("line-cap").value.kind;if("constant"!==o.kind||h)if("source"===o.kind||h||c){const e=to(i,l,"source");this.binders[i]=c?new Ka(o,a,l,e,t.id):new Ga(o,a,l,e),n.push(`/a_${i}`);}else {const t=to(i,l,"composite");this.binders[i]=new Za(o,a,l,u,e,t),n.push(`/z_${i}`);}else this.binders[i]=c?new Na(o.value,a):new qa(o.value,a,l),n.push(`/u_${i}`);}this.cacheKey=n.sort().join("");}getMaxValue(t){const e=this.binders[t];return e instanceof Ga||e instanceof Za?e.maxValue:0}populatePaintArrays(t,e,r,n,i,s){for(const a in this.binders){const o=this.binders[a];(o instanceof Ga||o instanceof Za||o instanceof Ka)&&o.populatePaintArray(t,e,r,n,i,s);}}setConstantPatternPositions(t){for(const e in this.binders){const r=this.binders[e];r instanceof Na&&r.setConstantPatternPositions(t);}}updatePaintArrays(t,e,r,n,i,s){let a=!1;for(const o in t){const l=e.getPositions(o);for(const e of l){const l=r.feature(e.index);for(const r in this.binders){const u=this.binders[r];if((u instanceof Ga||u instanceof Za||u instanceof Ka)&&!0===u.expression.isStateDependent){const c=n.paint.get(r);u.expression=c.value,u.updatePaintArray(e.start,e.end,l,t[o],i,s),a=!0;}}}}return a}defines(){const t=[];for(const e in this.binders){const r=this.binders[e];(r instanceof qa||r instanceof Na)&&t.push(...r.uniformNames.map((t=>`#define HAS_UNIFORM_${t}`)));}return t}getBinderAttributes(){const t=[];for(const e in this.binders){const r=this.binders[e];if(r instanceof Ga||r instanceof Za||r instanceof Ka)for(let e=0;e!0)){this.programConfigurations={};for(const n of t)this.programConfigurations[n.id]=new Xa(n,e,r);this.needsUpload=!1,this._featureMap=new Ea,this._bufferOffset=0;}populatePaintArrays(t,e,r,n,i,s,a){for(const r in this.programConfigurations)this.programConfigurations[r].populatePaintArrays(t,e,n,i,s,a);void 0!==e.id&&this._featureMap.add(e.id,r,this._bufferOffset,t),this._bufferOffset=t,this.needsUpload=!0;}updatePaintArrays(t,e,r,n,i){for(const s of r)this.needsUpload=this.programConfigurations[s.id].updatePaintArrays(t,this._featureMap,e,s,n,i)||this.needsUpload;}get(t){return this.programConfigurations[t]}upload(t){if(this.needsUpload){for(const e in this.programConfigurations)this.programConfigurations[e].upload(t);this.needsUpload=!1;}}destroy(){for(const t in this.programConfigurations)this.programConfigurations[t].destroy();}}const Ha={"text-opacity":["opacity"],"icon-opacity":["opacity"],"text-color":["fill_color"],"icon-color":["fill_color"],"text-halo-color":["halo_color"],"icon-halo-color":["halo_color"],"text-halo-blur":["halo_blur"],"icon-halo-blur":["halo_blur"],"text-halo-width":["halo_width"],"icon-halo-width":["halo_width"],"line-gap-width":["gapwidth"],"line-pattern":["pattern","pixel_ratio"],"fill-pattern":["pattern","pixel_ratio"],"fill-extrusion-pattern":["pattern","pixel_ratio"],"line-dasharray":["dash"]};function Ya(t,e){return Ha[t]||[t.replace(`${e}-`,"").replace(/-/g,"_")]}const Wa={"line-pattern":{source:Gs,composite:Gs},"fill-pattern":{source:Gs,composite:Gs},"fill-extrusion-pattern":{source:Gs,composite:Gs},"line-dasharray":{source:Zs,composite:Zs}},Qa={color:{source:ca,composite:Ns},number:{source:sa,composite:ca}};function to(t,e,r){const n=Wa[t];return n&&n[r]||Qa[e][r]}Ji(qa,"ConstantBinder"),Ji(Na,"PatternConstantBinder"),Ji(Ga,"SourceExpressionBinder"),Ji(Ka,"PatternCompositeBinder"),Ji(Za,"CompositeExpressionBinder"),Ji(Xa,"ProgramConfiguration",{omit:["_buffers"]}),Ji(Ja,"ProgramConfigurationSet");const eo="-transition";class ro extends Qt{constructor(t,e){if(super(),this.id=t.id,this.type=t.type,this._featureFilter={filter:()=>!0,needGeometry:!1,needFeature:!1},this._filterCompiled=!1,"custom"!==t.type&&(this.metadata=t.metadata,this.minzoom=t.minzoom,this.maxzoom=t.maxzoom,"background"!==t.type&&"sky"!==t.type&&(this.source=t.source,this.sourceLayer=t["source-layer"],this.filter=t.filter),e.layout&&(this._unevaluatedLayout=new Ms(e.layout)),e.paint)){this._transitionablePaint=new Ss(e.paint);for(const e in t.paint)this.setPaintProperty(e,t.paint[e],{validate:!1});for(const e in t.layout)this.setLayoutProperty(e,t.layout[e],{validate:!1});this._transitioningPaint=this._transitionablePaint.untransitioned(),this.paint=new zs(e.paint);}}getLayoutProperty(t){return "visibility"===t?this.visibility:this._unevaluatedLayout.getValue(t)}setLayoutProperty(t,e,r={}){null!=e&&this._validate(ji,`layers.${this.id}.layout.${t}`,t,e,r)||("visibility"!==t?this._unevaluatedLayout.setValue(t,e):this.visibility=e);}getPaintProperty(t){return U(t,eo)?this._transitionablePaint.getTransition(t.slice(0,-11)):this._transitionablePaint.getValue(t)}setPaintProperty(t,e,r={}){if(null!=e&&this._validate($i,`layers.${this.id}.paint.${t}`,t,e,r))return !1;if(U(t,eo))return this._transitionablePaint.setTransition(t.slice(0,-11),e||void 0),!1;{const r=this._transitionablePaint._values[t],n=r.value.isDataDriven(),i=r.value;this._transitionablePaint.setValue(t,e),this._handleSpecialPaintPropertyUpdate(t);const s=this._transitionablePaint._values[t].value,a=s.isDataDriven(),o=U(t,"pattern")||"line-dasharray"===t;return a||n||o||this._handleOverridablePaintPropertyUpdate(t,i,s)}}_handleSpecialPaintPropertyUpdate(t){}getProgramIds(){return null}getProgramConfiguration(t){return null}_handleOverridablePaintPropertyUpdate(t,e,r){return !1}isHidden(t){return !!(this.minzoom&&t=this.maxzoom)||"none"===this.visibility}updateTransitions(t){this._transitioningPaint=this._transitionablePaint.transitioned(t,this._transitioningPaint);}hasTransition(){return this._transitioningPaint.hasTransition()}recalculate(t,e){this._unevaluatedLayout&&(this.layout=this._unevaluatedLayout.possiblyEvaluate(t,void 0,e)),this.paint=this._transitioningPaint.possiblyEvaluate(t,void 0,e);}serialize(){const t={id:this.id,type:this.type,source:this.source,"source-layer":this.sourceLayer,metadata:this.metadata,minzoom:this.minzoom,maxzoom:this.maxzoom,filter:this.filter,layout:this._unevaluatedLayout&&this._unevaluatedLayout.serialize(),paint:this._transitionablePaint&&this._transitionablePaint.serialize()};return this.visibility&&(t.layout=t.layout||{},t.layout.visibility=this.visibility),j(t,((t,e)=>!(void 0===t||"layout"===e&&!Object.keys(t).length||"paint"===e&&!Object.keys(t).length)))}_validate(t,e,r,n,i={}){return (!i||!1!==i.validate)&&qi(this,t.call(Ui,{key:e,layerType:this.type,objectKey:r,value:n,styleSpec:te,style:{glyphs:!0,sprite:!0}}))}is3D(){return !1}isSky(){return !1}isTileClipped(){return !1}hasOffscreenPass(){return !1}resize(){}isStateDependent(){for(const t in this.paint._values){const e=this.paint.get(t);if(e instanceof Ts&&Ln(e.property.specification)&&("source"===e.value.kind||"composite"===e.value.kind)&&e.value.isStateDependent)return !0}return !1}compileFilter(){this._filterCompiled||(this._featureFilter=hi(this.filter),this._filterCompiled=!0);}invalidateCompiledFilter(){this._filterCompiled=!1;}dynamicFilter(){return this._featureFilter.dynamicFilter}dynamicFilterNeedsFeature(){return this._featureFilter.needFeature}}const no=Rs([{name:"a_pos",components:2,type:"Int16"}],4),io=Rs([{name:"a_pos_3",components:3,type:"Int16"},{name:"a_pos_normal_3",components:3,type:"Int16"}]);class so{constructor(t=[]){this.segments=t;}prepareSegment(t,e,r,n){let i=this.segments[this.segments.length-1];return t>so.MAX_VERTEX_ARRAY_LENGTH&&N(`Max vertices per segment is ${so.MAX_VERTEX_ARRAY_LENGTH}: bucket requested ${t}`),(!i||i.vertexLength+t>so.MAX_VERTEX_ARRAY_LENGTH||i.sortKey!==n)&&(i={vertexOffset:e.length,primitiveOffset:r.length,vertexLength:0,primitiveLength:0},void 0!==n&&(i.sortKey=n),this.segments.push(i)),i}get(){return this.segments}destroy(){for(const t of this.segments)for(const e in t.vaos)t.vaos[e].destroy();}static simpleSegment(t,e,r,n){return new so([{vertexOffset:t,primitiveOffset:e,vertexLength:r,primitiveLength:n,vaos:{},sortKey:0}])}}so.MAX_VERTEX_ARRAY_LENGTH=Math.pow(2,16)-1,Ji(so,"SegmentVector");var ao=8192;class oo{constructor(t,e){t&&(e?this.setSouthWest(t).setNorthEast(e):4===t.length?this.setSouthWest([t[0],t[1]]).setNorthEast([t[2],t[3]]):this.setSouthWest(t[0]).setNorthEast(t[1]));}setNorthEast(t){return this._ne=t instanceof Ol?new Ol(t.lng,t.lat):Ol.convert(t),this}setSouthWest(t){return this._sw=t instanceof Ol?new Ol(t.lng,t.lat):Ol.convert(t),this}extend(t){const e=this._sw,r=this._ne;let n,i;if(t instanceof Ol)n=t,i=t;else {if(!(t instanceof oo))return Array.isArray(t)?4===t.length||t.every(Array.isArray)?this.extend(oo.convert(t)):this.extend(Ol.convert(t)):"object"==typeof t&&null!==t&&t.hasOwnProperty("lat")&&(t.hasOwnProperty("lon")||t.hasOwnProperty("lng"))?this.extend(Ol.convert(t)):this;if(n=t._sw,i=t._ne,!n||!i)return this}return e||r?(e.lng=Math.min(n.lng,e.lng),e.lat=Math.min(n.lat,e.lat),r.lng=Math.max(i.lng,r.lng),r.lat=Math.max(i.lat,r.lat)):(this._sw=new Ol(n.lng,n.lat),this._ne=new Ol(i.lng,i.lat)),this}getCenter(){return new Ol((this._sw.lng+this._ne.lng)/2,(this._sw.lat+this._ne.lat)/2)}getSouthWest(){return this._sw}getNorthEast(){return this._ne}getNorthWest(){return new Ol(this.getWest(),this.getNorth())}getSouthEast(){return new Ol(this.getEast(),this.getSouth())}getWest(){return this._sw.lng}getSouth(){return this._sw.lat}getEast(){return this._ne.lng}getNorth(){return this._ne.lat}toArray(){return [this._sw.toArray(),this._ne.toArray()]}toString(){return `LngLatBounds(${this._sw.toString()}, ${this._ne.toString()})`}isEmpty(){return !(this._sw&&this._ne)}contains(t){const{lng:e,lat:r}=Ol.convert(t);let n=this._sw.lng<=e&&e<=this._ne.lng;return this._sw.lng>this._ne.lng&&(n=this._sw.lng>=e&&e>=this._ne.lng),this._sw.lat<=r&&r<=this._ne.lat&&n}static convert(t){return !t||t instanceof oo?t:new oo(t)}}var lo=1e-6,uo="undefined"!=typeof Float32Array?Float32Array:Array;function co(){var t=new uo(9);return uo!=Float32Array&&(t[1]=0,t[2]=0,t[3]=0,t[5]=0,t[6]=0,t[7]=0),t[0]=1,t[4]=1,t[8]=1,t}function ho(t,e,r){var n=e[0],i=e[1],s=e[2],a=e[3],o=e[4],l=e[5],u=e[6],c=e[7],h=e[8],p=r[0],d=r[1],f=r[2],y=r[3],m=r[4],g=r[5],x=r[6],v=r[7],b=r[8];return t[0]=p*n+d*a+f*u,t[1]=p*i+d*o+f*c,t[2]=p*s+d*l+f*h,t[3]=y*n+m*a+g*u,t[4]=y*i+m*o+g*c,t[5]=y*s+m*l+g*h,t[6]=x*n+v*a+b*u,t[7]=x*i+v*o+b*c,t[8]=x*s+v*l+b*h,t}function po(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function fo(t,e){var r=e[0],n=e[1],i=e[2],s=e[3],a=e[4],o=e[5],l=e[6],u=e[7],c=e[8],h=e[9],p=e[10],d=e[11],f=e[12],y=e[13],m=e[14],g=e[15],x=r*o-n*a,v=r*l-i*a,b=r*u-s*a,w=n*l-i*o,_=n*u-s*o,A=i*u-s*l,S=c*y-h*f,k=c*m-p*f,I=c*g-d*f,M=h*m-p*y,T=h*g-d*y,z=p*g-d*m,B=x*z-v*T+b*M+w*I-_*k+A*S;return B?(t[0]=(o*z-l*T+u*M)*(B=1/B),t[1]=(i*T-n*z-s*M)*B,t[2]=(y*A-m*_+g*w)*B,t[3]=(p*_-h*A-d*w)*B,t[4]=(l*I-a*z-u*k)*B,t[5]=(r*z-i*I+s*k)*B,t[6]=(m*b-f*A-g*v)*B,t[7]=(c*A-p*b+d*v)*B,t[8]=(a*T-o*I+u*S)*B,t[9]=(n*I-r*T-s*S)*B,t[10]=(f*_-y*b+g*x)*B,t[11]=(h*b-c*_-d*x)*B,t[12]=(o*k-a*M-l*S)*B,t[13]=(r*M-n*k+i*S)*B,t[14]=(y*v-f*w-m*x)*B,t[15]=(c*w-h*v+p*x)*B,t):null}function yo(t,e,r){var n=e[0],i=e[1],s=e[2],a=e[3],o=e[4],l=e[5],u=e[6],c=e[7],h=e[8],p=e[9],d=e[10],f=e[11],y=e[12],m=e[13],g=e[14],x=e[15],v=r[0],b=r[1],w=r[2],_=r[3];return t[0]=v*n+b*o+w*h+_*y,t[1]=v*i+b*l+w*p+_*m,t[2]=v*s+b*u+w*d+_*g,t[3]=v*a+b*c+w*f+_*x,t[4]=(v=r[4])*n+(b=r[5])*o+(w=r[6])*h+(_=r[7])*y,t[5]=v*i+b*l+w*p+_*m,t[6]=v*s+b*u+w*d+_*g,t[7]=v*a+b*c+w*f+_*x,t[8]=(v=r[8])*n+(b=r[9])*o+(w=r[10])*h+(_=r[11])*y,t[9]=v*i+b*l+w*p+_*m,t[10]=v*s+b*u+w*d+_*g,t[11]=v*a+b*c+w*f+_*x,t[12]=(v=r[12])*n+(b=r[13])*o+(w=r[14])*h+(_=r[15])*y,t[13]=v*i+b*l+w*p+_*m,t[14]=v*s+b*u+w*d+_*g,t[15]=v*a+b*c+w*f+_*x,t}function mo(t,e,r){var n,i,s,a,o,l,u,c,h,p,d,f,y=r[0],m=r[1],g=r[2];return e===t?(t[12]=e[0]*y+e[4]*m+e[8]*g+e[12],t[13]=e[1]*y+e[5]*m+e[9]*g+e[13],t[14]=e[2]*y+e[6]*m+e[10]*g+e[14],t[15]=e[3]*y+e[7]*m+e[11]*g+e[15]):(i=e[1],s=e[2],a=e[3],o=e[4],l=e[5],u=e[6],c=e[7],h=e[8],p=e[9],d=e[10],f=e[11],t[0]=n=e[0],t[1]=i,t[2]=s,t[3]=a,t[4]=o,t[5]=l,t[6]=u,t[7]=c,t[8]=h,t[9]=p,t[10]=d,t[11]=f,t[12]=n*y+o*m+h*g+e[12],t[13]=i*y+l*m+p*g+e[13],t[14]=s*y+u*m+d*g+e[14],t[15]=a*y+c*m+f*g+e[15]),t}function go(t,e,r){var n=r[0],i=r[1],s=r[2];return t[0]=e[0]*n,t[1]=e[1]*n,t[2]=e[2]*n,t[3]=e[3]*n,t[4]=e[4]*i,t[5]=e[5]*i,t[6]=e[6]*i,t[7]=e[7]*i,t[8]=e[8]*s,t[9]=e[9]*s,t[10]=e[10]*s,t[11]=e[11]*s,t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t}function xo(t,e,r){var n=Math.sin(r),i=Math.cos(r),s=e[4],a=e[5],o=e[6],l=e[7],u=e[8],c=e[9],h=e[10],p=e[11];return e!==t&&(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t[4]=s*i+u*n,t[5]=a*i+c*n,t[6]=o*i+h*n,t[7]=l*i+p*n,t[8]=u*i-s*n,t[9]=c*i-a*n,t[10]=h*i-o*n,t[11]=p*i-l*n,t}function vo(t,e,r){var n=Math.sin(r),i=Math.cos(r),s=e[0],a=e[1],o=e[2],l=e[3],u=e[8],c=e[9],h=e[10],p=e[11];return e!==t&&(t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t[0]=s*i-u*n,t[1]=a*i-c*n,t[2]=o*i-h*n,t[3]=l*i-p*n,t[8]=s*n+u*i,t[9]=a*n+c*i,t[10]=o*n+h*i,t[11]=l*n+p*i,t}function bo(t,e){return t[0]=e[0],t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e[1],t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e[2],t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function wo(t,e,r){var n,i,s,a=r[0],o=r[1],l=r[2],u=Math.hypot(a,o,l);return u0&&(s=1/Math.sqrt(s)),t[0]=e[0]*s,t[1]=e[1]*s,t[2]=e[2]*s,t}function Vo(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function Lo(t,e,r){var n=e[0],i=e[1],s=e[2],a=r[0],o=r[1],l=r[2];return t[0]=i*l-s*o,t[1]=s*a-n*l,t[2]=n*o-i*a,t}function Fo(t,e,r){var n=e[0],i=e[1],s=e[2],a=r[3]*n+r[7]*i+r[11]*s+r[15];return t[0]=(r[0]*n+r[4]*i+r[8]*s+r[12])/(a=a||1),t[1]=(r[1]*n+r[5]*i+r[9]*s+r[13])/a,t[2]=(r[2]*n+r[6]*i+r[10]*s+r[14])/a,t}function Ro(t,e,r){var n=r[0],i=r[1],s=r[2],a=e[0],o=e[1],l=e[2],u=i*l-s*o,c=s*a-n*l,h=n*o-i*a,p=i*h-s*c,d=s*u-n*h,f=n*c-i*u,y=2*r[3];return c*=y,h*=y,d*=2,f*=2,t[0]=a+(u*=y)+(p*=2),t[1]=o+c+d,t[2]=l+h+f,t}var Uo,$o=To,jo=zo,Oo=ko;function qo(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t[3]=e[3]*r,t}function No(t,e){var r=e[0],n=e[1],i=e[2],s=e[3],a=r*r+n*n+i*i+s*s;return a>0&&(a=1/Math.sqrt(a)),t[0]=r*a,t[1]=n*a,t[2]=i*a,t[3]=s*a,t}function Go(t,e,r){var n=e[0],i=e[1],s=e[2],a=e[3];return t[0]=r[0]*n+r[4]*i+r[8]*s+r[12]*a,t[1]=r[1]*n+r[5]*i+r[9]*s+r[13]*a,t[2]=r[2]*n+r[6]*i+r[10]*s+r[14]*a,t[3]=r[3]*n+r[7]*i+r[11]*s+r[15]*a,t}function Zo(){var t=new uo(4);return uo!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t[3]=1,t}function Ko(t){return t[0]=0,t[1]=0,t[2]=0,t[3]=1,t}function Xo(t,e,r){r*=.5;var n=e[0],i=e[1],s=e[2],a=e[3],o=Math.sin(r),l=Math.cos(r);return t[0]=n*l+a*o,t[1]=i*l+s*o,t[2]=s*l-i*o,t[3]=a*l-n*o,t}function Jo(t,e,r){r*=.5;var n=e[0],i=e[1],s=e[2],a=e[3],o=Math.sin(r),l=Math.cos(r);return t[0]=n*l-s*o,t[1]=i*l+a*o,t[2]=s*l+n*o,t[3]=a*l-i*o,t}Ao(),Uo=new uo(4),uo!=Float32Array&&(Uo[0]=0,Uo[1]=0,Uo[2]=0,Uo[3]=0);var Ho=No;Ao(),Io(1,0,0),Io(0,1,0),Zo(),Zo(),co();const Yo=Rs([{type:"Float32",name:"a_globe_pos",components:3},{type:"Float32",name:"a_uv",components:2}]),{members:Wo}=Yo,Qo=Rs([{name:"a_pos_3",components:3,type:"Int16"}]);var tl=Rs([{name:"a_pos",type:"Int16",components:2}]);class el{constructor(t,e){this.pos=t,this.dir=e;}intersectsPlane(t,e,r){const n=Vo(e,this.dir);if(Math.abs(n)<1e-6)return !1;const i=((t[0]-this.pos[0])*e[0]+(t[1]-this.pos[1])*e[1]+(t[2]-this.pos[2])*e[2])/n;return r[0]=this.pos[0]+this.dir[0]*i,r[1]=this.pos[1]+this.dir[1]*i,r[2]=this.pos[2]+this.dir[2]*i,!0}closestPointOnSphere(t,e,r){if(function(t,e){var r=t[0],n=t[1],i=t[2],s=e[0],a=e[1],o=e[2];return Math.abs(r-s)<=lo*Math.max(1,Math.abs(r),Math.abs(s))&&Math.abs(n-a)<=lo*Math.max(1,Math.abs(n),Math.abs(a))&&Math.abs(i-o)<=lo*Math.max(1,Math.abs(i),Math.abs(o))}(this.pos,t)||0===e)return r[0]=r[1]=r[2]=0,!1;const[n,i,s]=this.dir,a=this.pos[0]-t[0],o=this.pos[1]-t[1],l=this.pos[2]-t[2],u=n*n+i*i+s*s,c=2*(a*n+o*i+l*s),h=c*c-4*u*(a*a+o*o+l*l-e*e);if(h<0){const t=Math.max(-c/2,0),u=a+n*t,h=o+i*t,p=l+s*t,d=Math.hypot(u,h,p);return r[0]=u*e/d,r[1]=h*e/d,r[2]=p*e/d,!1}{const t=(-c-Math.sqrt(h))/(2*u);if(t<0){const t=Math.hypot(a,o,l);return r[0]=a*e/t,r[1]=o*e/t,r[2]=l*e/t,!1}return r[0]=a+n*t,r[1]=o+i*t,r[2]=l+s*t,!0}}}class rl{constructor(t,e,r,n,i){this.TL=t,this.TR=e,this.BR=r,this.BL=n,this.horizon=i;}static fromInvProjectionMatrix(t,e,r){const n=[-1,1,1],i=[1,1,1],s=[1,-1,1],a=[-1,-1,1],o=Fo(n,n,t),l=Fo(i,i,t),u=Fo(s,s,t),c=Fo(a,a,t);return new rl(o,l,u,c,e/r)}}class nl{constructor(t,e){this.points=t,this.planes=e;}static fromInvProjectionMatrix(t,e,r,n){const i=Math.pow(2,r),s=[[-1,1,-1,1],[1,1,-1,1],[1,-1,-1,1],[-1,-1,-1,1],[-1,1,1,1],[1,1,1,1],[1,-1,1,1],[-1,-1,1,1]].map((r=>{const s=Go([],r,t),a=1/s[3]/e*i;return function(t,e,r){return t[0]=e[0]*r[0],t[1]=e[1]*r[1],t[2]=e[2]*r[2],t[3]=e[3]*r[3],t}(s,s,[a,a,n?1/s[3]:a,a])})),a=[[0,1,2],[6,5,4],[0,3,7],[2,1,5],[3,2,6],[0,4,5]].map((t=>{const e=Do([],Lo([],$o([],s[t[0]],s[t[1]]),$o([],s[t[2]],s[t[1]]))),r=-Vo(e,s[t[1]]);return e.concat(r)}));return new nl(s,a)}}class il{static fromPoints(t){const e=[1/0,1/0,1/0],r=[-1/0,-1/0,-1/0];for(const n of t)Bo(e,e,n),Eo(r,r,n);return new il(e,r)}static applyTransform(t,e){const r=t.getCorners();for(let t=0;t=0;if(0===s)return 0;s!==e.length&&(r=!1);}if(r)return 2;for(let e=0;e<3;e++){let r=Number.MAX_VALUE,n=-Number.MAX_VALUE;for(let i=0;ithis.max[e]-this.min[e])return 0}return 1}}const sl=5,al=6,ol=ao/Math.PI/2,ll=16383,ul=64,cl=[ul,32,16],hl=-ol,pl=ol,dl=[new il([hl,hl,hl],[pl,pl,pl]),new il([hl,hl,hl],[0,0,pl]),new il([0,hl,hl],[pl,0,pl]),new il([hl,0,hl],[0,pl,pl]),new il([0,0,hl],[pl,pl,pl])];function fl(t){return t*ol/Ul}function yl(t,e,r,n=!0){const i=Co([],t._camera.position,t.worldSize),s=[e,r,1,1];Go(s,s,t.pixelMatrixInverse),qo(s,s,1/s[3]);const a=Do([],$o([],s,i)),o=t.globeMatrix,l=[o[12],o[13],o[14]],u=$o([],l,i),c=ko(u),h=Do([],u),p=t.worldSize/(2*Math.PI),d=Vo(h,a),f=Math.asin(p/c);if(f1?null:function(t,e,r,n){const i=Math.sin(r);return t*(Math.sin((1-n)*r)/i)+e*(Math.sin(n*r)/i)}(t.a[e],t.b[e],t.angle,M(r,0,1))+t.center[e]}function xl(t){if(t.z<=1)return dl[t.z+2*t.y+t.x];const e=Sl(Al(t));return il.fromPoints(e)}function vl(t,e,r){return Co(t,t,1-r),Po(t,t,e,r)}function bl(t,e){const r=Pl(e.zoom);if(0===r)return xl(t);const n=Al(t),i=Sl(n),s=Nl(n.getWest())*e.worldSize,a=Nl(n.getEast())*e.worldSize,o=Gl(n.getNorth())*e.worldSize,l=Gl(n.getSouth())*e.worldSize,u=[s,o,0],c=[a,o,0],h=[s,l,0],p=[a,l,0],d=fo([],e.globeMatrix);return Fo(u,u,d),Fo(c,c,d),Fo(h,h,d),Fo(p,p,d),i[0]=vl(i[0],h,r),i[1]=vl(i[1],p,r),i[2]=vl(i[2],c,r),i[3]=vl(i[3],u,r),il.fromPoints(i)}function wl(t,e,r){for(const n of t)Fo(n,n,e),Co(n,n,r);}function _l(t,e,r){const n=e/t.worldSize,i=t.globeMatrix;if(r.z<=1){const t=xl(r).getCorners();return wl(t,i,n),il.fromPoints(t)}const s=Al(r),a=Sl(s);wl(a,i,n);const o=Number.MAX_VALUE,l=[-o,-o,-o],u=[o,o,o];if(s.contains(t.center)){for(const t of a)Bo(u,u,t),Eo(l,l,t);l[2]=0;const e=t.point,r=[e.x*n,e.y*n,0];return Bo(u,u,r),Eo(l,l,r),new il(u,l)}const c=[i[12]*n,i[13]*n,i[14]*n],h=s.getCenter(),p=M(t.center.lat,-Hl,Hl),d=M(h.lat,-Hl,Hl),f=Nl(t.center.lng),y=Gl(p);let m=f-Nl(h.lng);const g=y-Gl(d);m>.5?m-=1:m<-.5&&(m+=1);let x=0;Math.abs(m)>Math.abs(g)?x=m>=0?1:3:(x=g>=0?0:2,Po(c,c,[i[4]*n,i[5]*n,i[6]*n],-Math.sin(w(g>=0?s.getSouth():s.getNorth()))*ol));const v=a[x],b=a[(x+1)%4],_=new ml(v,b,c),A=[gl(_,0)||v[0],gl(_,1)||v[1],gl(_,2)||v[2]],S=Pl(t.zoom);if(S>0){const n=function({x:t,y:e,z:r},n,i,s,a){const o=1/(1<.5?p=-1:d<-.5&&(p=1),l=((l+p)*n-(s*=n))*i+s,u=((u+p)*n-s)*i+s,c=(c*n-(a*=n))*i+a,h=(h*n-a)*i+a,[[l,h,0],[u,h,0],[u,c,0],[l,c,0]]}(r,e,t._pixelsPerMercatorPixel,f,y);for(let t=0;tMath.PI/2*1.01}const Ll=w(85),Fl=Math.cos(Ll),Rl=Math.sin(Ll),Ul=6371008.8,$l=2*Math.PI*Ul;class jl{constructor(t,e){if(isNaN(t)||isNaN(e))throw new Error(`Invalid LngLat object: (${t}, ${e})`);if(this.lng=+t,this.lat=+e,this.lat>90||this.lat<-90)throw new Error("Invalid LngLat latitude value: must be between -90 and 90")}wrap(){return new jl(z(this.lng,-180,180),this.lat)}toArray(){return [this.lng,this.lat]}toString(){return `LngLat(${this.lng}, ${this.lat})`}distanceTo(t){const e=Math.PI/180,r=this.lat*e,n=t.lat*e,i=Math.sin(r)*Math.sin(n)+Math.cos(r)*Math.cos(n)*Math.cos((t.lng-this.lng)*e);return Ul*Math.acos(Math.min(i,1))}toBounds(t=0){const e=360*t/40075017,r=e/Math.cos(Math.PI/180*this.lat);return new oo(new jl(this.lng-r,this.lat-e),new jl(this.lng+r,this.lat+e))}toEcef(t){const e=fl(t);return Il(this.lat,this.lng,ol+e)}static convert(t){if(t instanceof jl)return t;if(Array.isArray(t)&&(2===t.length||3===t.length))return new jl(Number(t[0]),Number(t[1]));if(!Array.isArray(t)&&"object"==typeof t&&null!==t)return new jl(Number("lng"in t?t.lng:t.lon),Number(t.lat));throw new Error("`LngLatLike` argument must be specified as a LngLat instance, an object {lng: , lat: }, an object {lon: , lat: }, or an array of [, ]")}}var Ol=jl;function ql(t){return $l*Math.cos(t*Math.PI/180)}function Nl(t){return (180+t)/360}function Gl(t){return (180-180/Math.PI*Math.log(Math.tan(Math.PI/4+t*Math.PI/360)))/360}function Zl(t,e){return t/ql(e)}function Kl(t){return 360*t-180}function Xl(t){return 360/Math.PI*Math.atan(Math.exp((180-360*t)*Math.PI/180))-90}function Jl(t,e){return t*ql(Xl(e))}const Hl=85.051129;function Yl(t){return 1/Math.cos(t*Math.PI/180)}class Wl{constructor(t,e,r=0){this.x=+t,this.y=+e,this.z=+r;}static fromLngLat(t,e=0){const r=Ol.convert(t);return new Wl(Nl(r.lng),Gl(r.lat),Zl(e,r.lat))}toLngLat(){return new Ol(Kl(this.x),Xl(this.y))}toAltitude(){return Jl(this.z,this.y)}meterInMercatorCoordinateUnits(){return 1/$l*Yl(Xl(this.y))}}function Ql(t,e,r,n,i,s,a,o,l){const u=(e+n)/2,c=(r+i)/2,h=new x(u,c);o(h),function(t,e,r,n,i,s){const a=r-i,o=n-s;return Math.abs((n-e)*a-(r-t)*o)/Math.hypot(a,o)}(h.x,h.y,s.x,s.y,a.x,a.y)>=l?(Ql(t,e,r,u,c,s,h,o,l),Ql(t,u,c,n,i,h,a,o,l)):t.push(a);}function tu(t,e,r){let n=t[0],i=n.x,s=n.y;e(n);const a=[n];for(let o=1;ot.x+1||nt.y+1)&&N("Geometry exceeds allowed extent, reduce your vector tile buffer size"),t}function au(t,e,r){const n=t.loadGeometry(),i=t.extent,s=ao/i;if(e&&r&&r.projection.isReprojectedInTileSpace){const s=1<{const r=Kl((e.x+t.x/i)/s),n=Xl((e.y+t.y/i)/s),c=u.project(r,n);t.x=(c.x*a-o)*i,t.y=(c.y*a-l)*i;};for(let e=0;e=i||r.y<0||r.y>=i||(c(r),t.push(r));n[e]=t;}}for(const t of n)for(const e of t)su(e,s);return n}function ou(t,e){return {type:t.type,id:t.id,properties:t.properties,geometry:e?au(t):[]}}function lu(t,e,r,n,i){t.emplaceBack(2*e+(n+1)/2,2*r+(i+1)/2);}function uu(t,e,r){const n=16384;t.emplaceBack(e.x,e.y,e.z,r[0]*n,r[1]*n,r[2]*n);}class cu{constructor(t){this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map((t=>t.id)),this.index=t.index,this.hasPattern=!1,this.projection=t.projection,this.layoutVertexArray=new $s,this.indexArray=new ra,this.segments=new so,this.programConfigurations=new Ja(t.layers,t.zoom),this.stateDependentLayerIds=this.layers.filter((t=>t.isStateDependent())).map((t=>t.id));}populate(t,e,r,n){const i=this.layers[0],s=[];let a=null;"circle"===i.type&&(a=i.layout.get("circle-sort-key"));for(const{feature:e,id:i,index:o,sourceLayerIndex:l}of t){const t=this.layers[0]._featureFilter.needGeometry,u=ou(e,t);if(!this.layers[0]._featureFilter.filter(new ws(this.zoom),u,r))continue;const c=a?a.evaluate(u,{},r):void 0,h={id:i,properties:e.properties,type:e.type,sourceLayerIndex:l,index:o,geometry:t?u.geometry:au(e,r,n),patterns:{},sortKey:c};s.push(h);}a&&s.sort(((t,e)=>t.sortKey-e.sortKey));let o=null;"globe"===n.projection.name&&(this.globeExtVertexArray=new Ks,o=n.projection);for(const n of s){const{geometry:i,index:s,sourceLayerIndex:a}=n,l=t[s].feature;this.addFeature(n,i,s,e.availableImages,r,o),e.featureIndex.insert(l,i,s,a,this.index);}}update(t,e,r,n){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(t,e,this.stateDependentLayers,r,n);}isEmpty(){return 0===this.layoutVertexArray.length}uploadPending(){return !this.uploaded||this.programConfigurations.needsUpload}upload(t){this.uploaded||(this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,no.members),this.indexBuffer=t.createIndexBuffer(this.indexArray),this.globeExtVertexArray&&(this.globeExtVertexBuffer=t.createVertexBuffer(this.globeExtVertexArray,io.members))),this.programConfigurations.upload(t),this.uploaded=!0;}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.globeExtVertexBuffer&&this.globeExtVertexBuffer.destroy());}addFeature(t,e,r,n,i,s){for(const r of e)for(const e of r){const r=e.x,n=e.y;if(r<0||r>=ao||n<0||n>=ao)continue;if(s){const t=s.projectTilePoint(r,n,i),e=s.upVector(i,r,n),a=this.globeExtVertexArray;uu(a,t,e),uu(a,t,e),uu(a,t,e),uu(a,t,e);}const a=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray,t.sortKey),o=a.vertexLength;lu(this.layoutVertexArray,r,n,-1,-1),lu(this.layoutVertexArray,r,n,1,-1),lu(this.layoutVertexArray,r,n,1,1),lu(this.layoutVertexArray,r,n,-1,1),this.indexArray.emplaceBack(o,o+1,o+2),this.indexArray.emplaceBack(o,o+2,o+3),a.vertexLength+=4,a.primitiveLength+=2;}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,t,r,{},n,i);}}function hu(t,e){for(let r=0;r1){if(yu(t,e))return !0;for(let n=0;n1?r:r.sub(e)._mult(i)._add(e))}function vu(t,e){let r,n,i,s=!1;for(let a=0;ae.y!=i.y>e.y&&e.x<(i.x-n.x)*(e.y-n.y)/(i.y-n.y)+n.x&&(s=!s);}return s}function bu(t,e){let r=!1;for(let n=0,i=t.length-1;ne.y!=a.y>e.y&&e.x<(a.x-s.x)*(e.y-s.y)/(a.y-s.y)+s.x&&(r=!r);}return r}function wu(t,e,r,n,i){for(const s of t)if(e<=s.x&&r<=s.y&&n>=s.x&&i>=s.y)return !0;const s=[new x(e,r),new x(e,i),new x(n,i),new x(n,r)];if(t.length>2)for(const e of s)if(bu(t,e))return !0;for(let e=0;ei.x&&e.x>i.x||t.yi.y&&e.y>i.y)return !1;const s=G(t,e,r[0]);return s!==G(t,e,r[1])||s!==G(t,e,r[2])||s!==G(t,e,r[3])}function Au(t,e,r){const n=e.paint.get(t).value;return "constant"===n.kind?n.value:r.programConfigurations.get(e.id).getMaxValue(t)}function Su(t){return Math.sqrt(t[0]*t[0]+t[1]*t[1])}function ku(t,e,r,n,i){if(!e[0]&&!e[1])return t;const s=x.convert(e)._mult(i);"viewport"===r&&s._rotate(-n);const a=[];for(let e=0;e0){const t=r.projection.upVector(u,h.x,h.y);d.x+=t[0]*c*p,d.y+=t[1]*c*p,d.z+=t[2]*c*p;}const f=s?h:Bu(d.x,d.y,d.z,n),y=s?t.tilespaceRays.map((t=>Pu(t,p))):t.queryGeometry.screenGeometry,m=Go([],[d.x,d.y,d.z,1],n);if(!a&&s?l*=m[3]/r.cameraToCenterDistance:a&&!s&&(l*=r.cameraToCenterDistance/m[3]),s){const t=Xl((e.y/ao+u.y)/(1<t.width||i.height>t.height||r.x>t.width-i.width||r.y>t.height-i.height)throw new RangeError("out of range source coordinates for image copy");if(i.width>e.width||i.height>e.height||n.x>e.width-i.width||n.y>e.height-i.height)throw new RangeError("out of range destination coordinates for image copy");const a=t.data,o=e.data;for(let l=0;l{e[t.evaluationKey]=s;const a=t.expression.evaluate(e);i.data[r+n+0]=Math.floor(255*a.r/a.a),i.data[r+n+1]=Math.floor(255*a.g/a.a),i.data[r+n+2]=Math.floor(255*a.b/a.a),i.data[r+n+3]=Math.floor(255*a.a);};if(t.clips)for(let e=0,i=0;e80*r){n=s=t[0],i=a=t[1];for(var f=r;fs&&(s=o),l>a&&(a=l);u=0!==(u=Math.max(s-n,a-i))?32767/u:0;}return Ju(p,d,r,n,i,u,0),d}function Ku(t,e,r,n,i){var s,a;if(i===gc(t,e,r,n)>0)for(s=e;s=e;s-=n)a=fc(s,t[s],t[s+1],a);return a&&lc(a,a.next)&&(yc(a),a=a.next),a}function Xu(t,e){if(!t)return t;e||(e=t);var r,n=t;do{if(r=!1,n.steiner||!lc(n,n.next)&&0!==oc(n.prev,n,n.next))n=n.next;else {if(yc(n),(n=e=n.prev)===n.next)break;r=!0;}}while(r||n!==e);return e}function Ju(t,e,r,n,i,s,a){if(t){!a&&s&&function(t,e,r,n){var i=t;do{0===i.z&&(i.z=nc(i.x,i.y,e,r,n)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next;}while(i!==t);i.prevZ.nextZ=null,i.prevZ=null,function(t){var e,r,n,i,s,a,o,l,u=1;do{for(r=t,t=null,s=null,a=0;r;){for(a++,n=r,o=0,e=0;e0||l>0&&n;)0!==o&&(0===l||!n||r.z<=n.z)?(i=r,r=r.nextZ,o--):(i=n,n=n.nextZ,l--),s?s.nextZ=i:t=i,i.prevZ=s,s=i;r=n;}s.nextZ=null,u*=2;}while(a>1)}(i);}(t,n,i,s);for(var o,l,u=t;t.prev!==t.next;)if(o=t.prev,l=t.next,s?Yu(t,n,i,s):Hu(t))e.push(o.i/r|0),e.push(t.i/r|0),e.push(l.i/r|0),yc(t),t=l.next,u=l.next;else if((t=l)===u){a?1===a?Ju(t=Wu(Xu(t),e,r),e,r,n,i,s,2):2===a&&Qu(t,e,r,n,i,s):Ju(Xu(t),e,r,n,i,s,1);break}}}function Hu(t){var e=t.prev,r=t,n=t.next;if(oc(e,r,n)>=0)return !1;for(var i=e.x,s=r.x,a=n.x,o=e.y,l=r.y,u=n.y,c=is?i>a?i:a:s>a?s:a,d=o>l?o>u?o:u:l>u?l:u,f=n.next;f!==e;){if(f.x>=c&&f.x<=p&&f.y>=h&&f.y<=d&&sc(i,o,s,l,a,u,f.x,f.y)&&oc(f.prev,f,f.next)>=0)return !1;f=f.next;}return !0}function Yu(t,e,r,n){var i=t.prev,s=t,a=t.next;if(oc(i,s,a)>=0)return !1;for(var o=i.x,l=s.x,u=a.x,c=i.y,h=s.y,p=a.y,d=ol?o>u?o:u:l>u?l:u,m=c>h?c>p?c:p:h>p?h:p,g=nc(d,f,e,r,n),x=nc(y,m,e,r,n),v=t.prevZ,b=t.nextZ;v&&v.z>=g&&b&&b.z<=x;){if(v.x>=d&&v.x<=y&&v.y>=f&&v.y<=m&&v!==i&&v!==a&&sc(o,c,l,h,u,p,v.x,v.y)&&oc(v.prev,v,v.next)>=0)return !1;if(v=v.prevZ,b.x>=d&&b.x<=y&&b.y>=f&&b.y<=m&&b!==i&&b!==a&&sc(o,c,l,h,u,p,b.x,b.y)&&oc(b.prev,b,b.next)>=0)return !1;b=b.nextZ;}for(;v&&v.z>=g;){if(v.x>=d&&v.x<=y&&v.y>=f&&v.y<=m&&v!==i&&v!==a&&sc(o,c,l,h,u,p,v.x,v.y)&&oc(v.prev,v,v.next)>=0)return !1;v=v.prevZ;}for(;b&&b.z<=x;){if(b.x>=d&&b.x<=y&&b.y>=f&&b.y<=m&&b!==i&&b!==a&&sc(o,c,l,h,u,p,b.x,b.y)&&oc(b.prev,b,b.next)>=0)return !1;b=b.nextZ;}return !0}function Wu(t,e,r){var n=t;do{var i=n.prev,s=n.next.next;!lc(i,s)&&uc(i,n,n.next,s)&&pc(i,s)&&pc(s,i)&&(e.push(i.i/r|0),e.push(n.i/r|0),e.push(s.i/r|0),yc(n),yc(n.next),n=t=s),n=n.next;}while(n!==t);return Xu(n)}function Qu(t,e,r,n,i,s){var a=t;do{for(var o=a.next.next;o!==a.prev;){if(a.i!==o.i&&ac(a,o)){var l=dc(a,o);return a=Xu(a,a.next),l=Xu(l,l.next),Ju(a,e,r,n,i,s,0),void Ju(l,e,r,n,i,s,0)}o=o.next;}a=a.next;}while(a!==t)}function tc(t,e){return t.x-e.x}function ec(t,e){var r=function(t,e){var r,n=e,i=t.x,s=t.y,a=-1/0;do{if(s<=n.y&&s>=n.next.y&&n.next.y!==n.y){var o=n.x+(s-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(o<=i&&o>a&&(a=o,r=n.x=n.x&&n.x>=c&&i!==n.x&&sc(sr.x||n.x===r.x&&rc(r,n)))&&(r=n,p=l)),n=n.next;}while(n!==u);return r}(t,e);if(!r)return e;var n=dc(r,t);return Xu(n,n.next),Xu(r,r.next)}function rc(t,e){return oc(t.prev,t,e.prev)<0&&oc(e.next,t,t.next)<0}function nc(t,e,r,n,i){return (t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=(t-r)*i|0)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=(e-n)*i|0)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function ic(t){var e=t,r=t;do{(e.x=(t-a)*(s-o)&&(t-a)*(n-o)>=(r-a)*(e-o)&&(r-a)*(s-o)>=(i-a)*(n-o)}function ac(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!function(t,e){var r=t;do{if(r.i!==t.i&&r.next.i!==t.i&&r.i!==e.i&&r.next.i!==e.i&&uc(r,r.next,t,e))return !0;r=r.next;}while(r!==t);return !1}(t,e)&&(pc(t,e)&&pc(e,t)&&function(t,e){var r=t,n=!1,i=(t.x+e.x)/2,s=(t.y+e.y)/2;do{r.y>s!=r.next.y>s&&r.next.y!==r.y&&i<(r.next.x-r.x)*(s-r.y)/(r.next.y-r.y)+r.x&&(n=!n),r=r.next;}while(r!==t);return n}(t,e)&&(oc(t.prev,t,e.prev)||oc(t,e.prev,e))||lc(t,e)&&oc(t.prev,t,t.next)>0&&oc(e.prev,e,e.next)>0)}function oc(t,e,r){return (e.y-t.y)*(r.x-e.x)-(e.x-t.x)*(r.y-e.y)}function lc(t,e){return t.x===e.x&&t.y===e.y}function uc(t,e,r,n){var i=hc(oc(t,e,r)),s=hc(oc(t,e,n)),a=hc(oc(r,n,t)),o=hc(oc(r,n,e));return i!==s&&a!==o||!(0!==i||!cc(t,r,e))||!(0!==s||!cc(t,n,e))||!(0!==a||!cc(r,t,n))||!(0!==o||!cc(r,e,n))}function cc(t,e,r){return e.x<=Math.max(t.x,r.x)&&e.x>=Math.min(t.x,r.x)&&e.y<=Math.max(t.y,r.y)&&e.y>=Math.min(t.y,r.y)}function hc(t){return t>0?1:t<0?-1:0}function pc(t,e){return oc(t.prev,t,t.next)<0?oc(t,e,t.next)>=0&&oc(t,t.prev,e)>=0:oc(t,e,t.prev)<0||oc(t,t.next,e)<0}function dc(t,e){var r=new mc(t.i,t.x,t.y),n=new mc(e.i,e.x,e.y),i=t.next,s=e.prev;return t.next=e,e.prev=t,r.next=i,i.prev=r,n.next=r,r.prev=n,s.next=n,n.prev=s,n}function fc(t,e,r,n){var i=new mc(t,e,r);return n?(i.next=n.next,i.prev=n,n.next.prev=i,n.next=i):(i.prev=i,i.next=i),i}function yc(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ);}function mc(t,e,r){this.i=t,this.x=e,this.y=r,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1;}function gc(t,e,r,n){for(var i=0,s=e,a=r-n;s0&&r.holes.push(n+=t[i-1].length);}return r};var xc=p(Gu.exports);function vc(t,e,r,n,i){bc(t,e,r||0,n||t.length-1,i||_c);}function bc(t,e,r,n,i){for(;n>r;){if(n-r>600){var s=n-r+1,a=e-r+1,o=Math.log(s),l=.5*Math.exp(2*o/3),u=.5*Math.sqrt(o*l*(s-l)/s)*(a-s/2<0?-1:1);bc(t,e,Math.max(r,Math.floor(e-a*l/s+u)),Math.min(n,Math.floor(e+(s-a)*l/s+u)),i);}var c=t[e],h=r,p=n;for(wc(t,r,e),i(t[n],c)>0&&wc(t,r,n);h0;)p--;}0===i(t[r],c)?wc(t,r,p):wc(t,++p,n),p<=e&&(r=p+1),e<=p&&(n=p-1);}}function wc(t,e,r){var n=t[e];t[e]=t[r],t[r]=n;}function _c(t,e){return te?1:0}function Ac(t,e){const r=t.length;if(r<=1)return [t];const n=[];let i,s;for(let e=0;e1)for(let t=0;tt.id)),this.index=t.index,this.hasPattern=!1,this.patternFeatures=[],this.layoutVertexArray=new $s,this.indexArray=new ra,this.indexArray2=new la,this.programConfigurations=new Ja(t.layers,t.zoom),this.segments=new so,this.segments2=new so,this.stateDependentLayerIds=this.layers.filter((t=>t.isStateDependent())).map((t=>t.id)),this.projection=t.projection;}populate(t,e,r,n){this.hasPattern=kc("fill",this.layers,e);const i=this.layers[0].layout.get("fill-sort-key"),s=[];for(const{feature:a,id:o,index:l,sourceLayerIndex:u}of t){const t=this.layers[0]._featureFilter.needGeometry,c=ou(a,t);if(!this.layers[0]._featureFilter.filter(new ws(this.zoom),c,r))continue;const h=i?i.evaluate(c,{},r,e.availableImages):void 0,p={id:o,properties:a.properties,type:a.type,sourceLayerIndex:u,index:l,geometry:t?c.geometry:au(a,r,n),patterns:{},sortKey:h};s.push(p);}i&&s.sort(((t,e)=>t.sortKey-e.sortKey));for(const n of s){const{geometry:i,index:s,sourceLayerIndex:a}=n;if(this.hasPattern){const t=Ic("fill",this.layers,n,this.zoom,e);this.patternFeatures.push(t);}else this.addFeature(n,i,s,r,{},e.availableImages);e.featureIndex.insert(t[s].feature,i,s,a,this.index);}}update(t,e,r,n){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(t,e,this.stateDependentLayers,r,n);}addFeatures(t,e,r,n,i){for(const t of this.patternFeatures)this.addFeature(t,t.geometry,t.index,e,r,n);}isEmpty(){return 0===this.layoutVertexArray.length}uploadPending(){return !this.uploaded||this.programConfigurations.needsUpload}upload(t){this.uploaded||(this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,Nu),this.indexBuffer=t.createIndexBuffer(this.indexArray),this.indexBuffer2=t.createIndexBuffer(this.indexArray2)),this.programConfigurations.upload(t),this.uploaded=!0;}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.indexBuffer2.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.segments2.destroy());}addFeature(t,e,r,n,i,s=[]){for(const t of Ac(e,500)){let e=0;for(const r of t)e+=r.length;const r=this.segments.prepareSegment(e,this.layoutVertexArray,this.indexArray),n=r.vertexLength,i=[],s=[];for(const e of t){if(0===e.length)continue;e!==t[0]&&s.push(i.length/2);const r=this.segments2.prepareSegment(e.length,this.layoutVertexArray,this.indexArray2),n=r.vertexLength;this.layoutVertexArray.emplaceBack(e[0].x,e[0].y),this.indexArray2.emplaceBack(n+e.length-1,n),i.push(e[0].x),i.push(e[0].y);for(let t=1;t>3;}if(i--,1===n||2===n)s+=t.readSVarint(),a+=t.readSVarint(),1===n&&(e&&o.push(e),e=[]),e.push(new Vc(s,a));else {if(7!==n)throw new Error("unknown command "+n);e&&e.push(e[0].clone());}}return e&&o.push(e),o},Fc.prototype.bbox=function(){var t=this._pbf;t.pos=this._geometry;for(var e=t.readVarint()+t.pos,r=1,n=0,i=0,s=0,a=1/0,o=-1/0,l=1/0,u=-1/0;t.pos>3;}if(n--,1===r||2===r)(i+=t.readSVarint())o&&(o=i),(s+=t.readSVarint())u&&(u=s);else if(7!==r)throw new Error("unknown command "+r)}return [a,l,o,u]},Fc.prototype.toGeoJSON=function(t,e,r){var n,i,s=this.extent*Math.pow(2,r),a=this.extent*t,o=this.extent*e,l=this.loadGeometry(),u=Fc.types[this.type];function c(t){for(var e=0;e>3;e=1===n?t.readString():2===n?t.readFloat():3===n?t.readDouble():4===n?t.readVarint64():5===n?t.readVarint():6===n?t.readSVarint():7===n?t.readBoolean():null;}return e}(r));}Oc.prototype.feature=function(t){if(t<0||t>=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[t];var e=this._pbf.readVarint()+this._pbf.pos;return new $c(this._pbf,e,this.extent,this._keys,this._values)};var Nc=jc;function Gc(t,e,r){if(3===t){var n=new Nc(r,r.readVarint()+r.pos);n.length&&(e[n.name]=n);}}var Zc=Dc.VectorTile=function(t,e){this.layers=t.readFields(Gc,{},e);},Kc=Dc.VectorTileFeature=Lc;function Xc(t,e,r,n){const i=[],s=0===n?(t,e,r,n,i,s)=>{t.push(new x(s,r+(s-e)/(n-e)*(i-r)));}:(t,e,r,n,i,s)=>{t.push(new x(e+(s-r)/(i-r)*(n-e),s));};for(const a of t){const t=[];for(const i of a){if(i.length<=2)continue;const a=[];for(let t=0;te&&s(a,o,l,u,c,e):h>r?p=e&&s(a,o,l,u,c,e),p>r&&h<=r&&s(a,o,l,u,c,r);}let o=i[i.length-1];const l=0===n?o.x:o.y;l>=e&&l<=r&&a.push(o),a.length&&(o=a[a.length-1],a[0].x===o.x&&a[0].y===o.y||a.push(a[0]),t.push(a));}t.length&&i.push(t);}return i}Dc.VectorTileLayer=jc;const Jc=Kc.types,Hc=Math.pow(2,13);function Yc(t,e,r,n,i,s,a,o){t.emplaceBack((e<<1)+a,(r<<1)+s,(Math.floor(n*Hc)<<1)+i,Math.round(o));}function Wc(t,e,r){const n=16384;t.emplaceBack(e.x,e.y,e.z,r[0]*n,r[1]*n,r[2]*n);}class Qc{constructor(){this.acc=new x(0,0),this.polyCount=[];}startRing(t){this.currentPolyCount={edges:0,top:0},this.polyCount.push(this.currentPolyCount),this.min||(this.min=new x(t.x,t.y),this.max=new x(t.x,t.y));}append(t,e){this.currentPolyCount.edges++,this.acc._add(t);const r=this.min,n=this.max;t.xn.x&&(n.x=t.x),t.yn.y&&(n.y=t.y),((0===t.x||t.x===ao)&&t.x===e.x)!=((0===t.y||t.y===ao)&&t.y===e.y)&&this.processBorderOverlap(t,e),e.x<0!=t.x<0&&this.addBorderIntersection(0,Er(e.y,t.y,(0-e.x)/(t.x-e.x))),e.x>ao!=t.x>ao&&this.addBorderIntersection(1,Er(e.y,t.y,(ao-e.x)/(t.x-e.x))),e.y<0!=t.y<0&&this.addBorderIntersection(2,Er(e.x,t.x,(0-e.y)/(t.y-e.y))),e.y>ao!=t.y>ao&&this.addBorderIntersection(3,Er(e.x,t.x,(ao-e.y)/(t.y-e.y)));}addBorderIntersection(t,e){this.borders||(this.borders=[[Number.MAX_VALUE,-Number.MAX_VALUE],[Number.MAX_VALUE,-Number.MAX_VALUE],[Number.MAX_VALUE,-Number.MAX_VALUE],[Number.MAX_VALUE,-Number.MAX_VALUE]]);const r=this.borders[t];er[1]&&(r[1]=e);}processBorderOverlap(t,e){if(t.x===e.x){if(t.y===e.y)return;const r=0===t.x?0:1;this.addBorderIntersection(r,e.y),this.addBorderIntersection(r,t.y);}else {const r=0===t.y?2:3;this.addBorderIntersection(r,e.x),this.addBorderIntersection(r,t.x);}}centroid(){const t=this.polyCount.reduce(((t,e)=>t+e.edges),0);return 0!==t?this.acc.div(t)._round():new x(0,0)}span(){return new x(this.max.x-this.min.x,this.max.y-this.min.y)}intersectsCount(){return this.borders.reduce(((t,e)=>t+ +(e[0]!==Number.MAX_VALUE)),0)}}class th{constructor(t){this.zoom=t.zoom,this.canonical=t.canonical,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map((t=>t.id)),this.index=t.index,this.hasPattern=!1,this.edgeRadius=0,this.projection=t.projection,this.layoutVertexArray=new Os,this.centroidVertexArray=new wa,this.indexArray=new ra,this.programConfigurations=new Ja(t.layers,t.zoom),this.segments=new so,this.stateDependentLayerIds=this.layers.filter((t=>t.isStateDependent())).map((t=>t.id)),this.enableTerrain=t.enableTerrain;}populate(t,e,r,n){this.features=[],this.hasPattern=kc("fill-extrusion",this.layers,e),this.featuresOnBorder=[],this.borders=[[],[],[],[]],this.borderDoneWithNeighborZ=[-1,-1,-1,-1],this.tileToMeter=function(t){const e=Math.exp(Math.PI*(1-t.y/(1<=0;t--){const e=p[t];(0===e.length||(d=e[0]).every((t=>t.x<=0))||d.every((t=>t.x>=ao))||d.every((t=>t.y<=0))||d.every((t=>t.y>=ao)))&&p.splice(t,1);}var d;let f;if(u)f=lh(p,o,n);else {f=[];for(const t of p)f.push({polygon:t,bounds:o});}const y=h?this.edgeRadius:0;for(const{polygon:t,bounds:e}of f){let r=0,i=0;for(const e of t)h&&!e[0].equals(e[e.length-1])&&e.push(e[0]),i+=h?e.length-1:e.length;const s=this.segments.prepareSegment((h?5:4)*i,this.layoutVertexArray,this.indexArray);if(h){const e=[],i=[];r=s.vertexLength;for(const r of t){let a,o;r.length&&r!==t[0]&&i.push(e.length/2),a=r[1].sub(r[0])._perp()._unit();for(let t=1;t4&&sh(i[i.length-2],i[0],i[1]),d=y?rh(i[i.length-2],i[0],i[1],y):0;a=i[1].sub(i[0])._perp()._unit();let f=!0;for(let m=1,g=0;m0?1:0,S=x.dist(v);if(g+S>32768&&(g=0),y){o=b.sub(v)._perp()._unit();let t=nh(x,v,b,eh(a,o),y);isNaN(t)&&(t=0);const e=v.sub(x)._unit();x=x.add(e.mult(d))._round(),v=v.add(e.mult(-t))._round(),d=t,a=o;}const k=s.vertexLength,I=i.length>4&&sh(x,v,b);let M=ah(g,p,f);if(Yc(this.layoutVertexArray,x.x,x.y,_,A,0,0,M),Yc(this.layoutVertexArray,x.x,x.y,_,A,0,1,M),g+=S,M=ah(g,I,!f),p=I,Yc(this.layoutVertexArray,v.x,v.y,_,A,0,0,M),Yc(this.layoutVertexArray,v.x,v.y,_,A,0,1,M),s.vertexLength+=4,this.indexArray.emplaceBack(k+0,k+1,k+2),this.indexArray.emplaceBack(k+1,k+3,k+2),s.primitiveLength+=2,y){const n=r+(1===m?i.length-2:m-2),a=1===m?r:n+1;if(this.indexArray.emplaceBack(k+1,n,k+3),this.indexArray.emplaceBack(n,a,k+3),s.primitiveLength+=2,void 0===t&&(t=k),!ih(b,i[m],e)){const e=m===i.length-1?t:s.vertexLength;this.indexArray.emplaceBack(k+2,k+3,e),this.indexArray.emplaceBack(k+3,e+1,e),this.indexArray.emplaceBack(k+3,a,e+1),s.primitiveLength+=3;}f=!f;}if(u){const t=this.layoutVertexExtArray,e=l.projectTilePoint(x.x,x.y,n),r=l.projectTilePoint(v.x,v.y,n),i=l.upVector(n,x.x,x.y),s=l.upVector(n,v.x,v.y);Wc(t,e,i),Wc(t,e,i),Wc(t,r,s),Wc(t,r,s);}}h&&(r+=i.length-1);}}if(c&&c.polyCount.length>0){if(c.borders){c.vertexArrayOffset=this.centroidVertexArray.length;const t=c.borders,e=this.featuresOnBorder.push(c)-1;for(let r=0;r<4;r++)t[r][0]!==Number.MAX_VALUE&&this.borders[r].push(e);}this.encodeCentroid(c.borders?void 0:c.centroid(),c);}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,t,r,i,s,n);}sortBorders(){for(let t=0;t<4;t++)this.borders[t].sort(((e,r)=>this.featuresOnBorder[e].borders[t][0]-this.featuresOnBorder[r].borders[t][0]));}encodeCentroid(t,e,r=!0){let n,i;if(t)if(0!==t.y){const r=e.span()._mult(this.tileToMeter);n=(Math.max(t.x,1)<<3)+Math.min(7,Math.round(r.x/10)),i=(Math.max(t.y,1)<<3)+Math.min(7,Math.round(r.y/10));}else n=Math.ceil(7*(t.x+450)),i=0;else n=0,i=+r;let s=r?this.centroidVertexArray.length:e.vertexArrayOffset;for(const t of e.polyCount){r&&this.centroidVertexArray.resize(this.centroidVertexArray.length+4*t.edges+t.top);for(let e=0;er[1].x&&e.x>r[1].x||t.yr[1].y&&e.y>r[1].y}function sh(t,e,r){if(t.x<0||t.x>=ao||e.x<0||e.x>=ao||r.x<0||r.x>=ao)return !1;const n=r.sub(e),i=n.perp(),s=t.sub(e);return (n.x*s.x+n.y*s.y)/Math.sqrt((n.x*n.x+n.y*n.y)*(s.x*s.x+s.y*s.y))>-.866&&i.x*s.x+i.y*s.y<0}function ah(t,e,r){const n=e?2|t:-3&t;return r?1|n:-2&n}function oh(){const t=Math.PI/32,e=Math.tan(t),r=Ul;return r*Math.sqrt(1+2*e*e)-r}function lh(t,e,r){const n=1<{for(const r of t)a.push({polygon:r,bounds:e});},l=Math.ceil(Math.log2(r)),u=Math.ceil(Math.log2(n)),c=l-u,h=[];for(let t=0;t0?0:1);for(let t=0;te+1?d.push({polygons:p,bounds:t,depth:e+1}):o(p,t);}if(f.length){const t=[new x(0===r?c:n.x,1===r?c:n.y),a];h.length>e+1?d.push({polygons:f,bounds:t,depth:e+1}):o(f,t);}}return a}(t,e,Math.ceil((s-i)/11.25),Math.ceil((a-o)/11.25),1,((t,e,i)=>{if(0===t)return .5*(e+i);{const t=Xl((r.y+e/ao)/n);return (Gl(.5*(Xl((r.y+i/ao)/n)+t))*n-r.y)*ao}}))}Ji(th,"FillExtrusionBucket",{omit:["layers","features"]}),Ji(Qc,"PartMetadata");const uh=new Ps({"fill-extrusion-edge-radius":new Bs(te["layout_fill-extrusion"]["fill-extrusion-edge-radius"])});var ch={paint:new Ps({"fill-extrusion-opacity":new Bs(te["paint_fill-extrusion"]["fill-extrusion-opacity"]),"fill-extrusion-color":new Es(te["paint_fill-extrusion"]["fill-extrusion-color"]),"fill-extrusion-translate":new Bs(te["paint_fill-extrusion"]["fill-extrusion-translate"]),"fill-extrusion-translate-anchor":new Bs(te["paint_fill-extrusion"]["fill-extrusion-translate-anchor"]),"fill-extrusion-pattern":new Es(te["paint_fill-extrusion"]["fill-extrusion-pattern"]),"fill-extrusion-height":new Es(te["paint_fill-extrusion"]["fill-extrusion-height"]),"fill-extrusion-base":new Es(te["paint_fill-extrusion"]["fill-extrusion-base"]),"fill-extrusion-vertical-gradient":new Bs(te["paint_fill-extrusion"]["fill-extrusion-vertical-gradient"]),"fill-extrusion-ambient-occlusion-intensity":new Bs(te["paint_fill-extrusion"]["fill-extrusion-ambient-occlusion-intensity"]),"fill-extrusion-ambient-occlusion-radius":new Bs(te["paint_fill-extrusion"]["fill-extrusion-ambient-occlusion-radius"]),"fill-extrusion-rounded-roof":new Bs(te["paint_fill-extrusion"]["fill-extrusion-rounded-roof"])}),layout:uh};function hh(t,e,r){var n=2*Math.PI*6378137/256/Math.pow(2,r);return [t*n-2*Math.PI*6378137/2,e*n-2*Math.PI*6378137/2]}class ph{constructor(t,e,r){this.z=t,this.x=e,this.y=r,this.key=yh(0,t,t,e,r);}equals(t){return this.z===t.z&&this.x===t.x&&this.y===t.y}url(t,e){const r=function(t,e,r){var n=hh(256*t,256*(e=Math.pow(2,r)-e-1),r),i=hh(256*(t+1),256*(e+1),r);return n[0]+","+n[1]+","+i[0]+","+i[1]}(this.x,this.y,this.z),n=function(t,e,r){let n,i="";for(let s=t;s>0;s--)n=1<this.canonical.z?new fh(t,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y):new fh(t,this.wrap,t,this.canonical.x>>e,this.canonical.y>>e)}calculateScaledKey(t,e=!0){if(this.overscaledZ===t&&e)return this.key;if(t>this.canonical.z)return yh(this.wrap*+e,t,this.canonical.z,this.canonical.x,this.canonical.y);{const r=this.canonical.z-t;return yh(this.wrap*+e,t,t,this.canonical.x>>r,this.canonical.y>>r)}}isChildOf(t){if(t.wrap!==this.wrap)return !1;const e=this.canonical.z-t.canonical.z;return 0===t.overscaledZ||t.overscaledZ>e&&t.canonical.y===this.canonical.y>>e}children(t){if(this.overscaledZ>=t)return [new fh(this.overscaledZ+1,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y)];const e=this.canonical.z+1,r=2*this.canonical.x,n=2*this.canonical.y;return [new fh(e,this.wrap,e,r,n),new fh(e,this.wrap,e,r+1,n),new fh(e,this.wrap,e,r,n+1),new fh(e,this.wrap,e,r+1,n+1)]}isLessThan(t){return this.wrapt.wrap)&&(this.overscaledZt.overscaledZ)&&(this.canonical.xt.canonical.x)&&this.canonical.yt.id)),this.index=t.index,this.projection=t.projection,this.hasPattern=!1,this.patternFeatures=[],this.lineClipsArray=[],this.gradients={},this.layers.forEach((t=>{this.gradients[t.id]={};})),this.layoutVertexArray=new qs,this.layoutVertexArray2=new Ns,this.indexArray=new ra,this.programConfigurations=new Ja(t.layers,t.zoom),this.segments=new so,this.maxLineLength=0,this.stateDependentLayerIds=this.layers.filter((t=>t.isStateDependent())).map((t=>t.id));}populate(t,e,r,n){this.hasPattern=kc("line",this.layers,e);const i=this.layers[0].layout.get("line-sort-key"),s=[];for(const{feature:e,id:a,index:o,sourceLayerIndex:l}of t){const t=this.layers[0]._featureFilter.needGeometry,u=ou(e,t);if(!this.layers[0]._featureFilter.filter(new ws(this.zoom),u,r))continue;const c=i?i.evaluate(u,{},r):void 0,h={id:a,properties:e.properties,type:e.type,sourceLayerIndex:l,index:o,geometry:t?u.geometry:au(e,r,n),patterns:{},sortKey:c};s.push(h);}i&&s.sort(((t,e)=>t.sortKey-e.sortKey));const{lineAtlas:a,featureIndex:o}=e,l=this.addConstantDashes(a);for(const n of s){const{geometry:i,index:s,sourceLayerIndex:u}=n;if(l&&this.addFeatureDashes(n,a),this.hasPattern){const t=Ic("line",this.layers,n,this.zoom,e);this.patternFeatures.push(t);}else this.addFeature(n,i,s,r,a.positions,e.availableImages);o.insert(t[s].feature,i,s,u,this.index);}}addConstantDashes(t){let e=!1;for(const r of this.layers){const n=r.paint.get("line-dasharray").value,i=r.layout.get("line-cap").value;if("constant"!==n.kind||"constant"!==i.kind)e=!0;else {const e=i.value,r=n.value;if(!r)continue;t.addDash(r,e);}}return e}addFeatureDashes(t,e){const r=this.zoom;for(const n of this.layers){const i=n.paint.get("line-dasharray").value,s=n.layout.get("line-cap").value;if("constant"===i.kind&&"constant"===s.kind)continue;let a,o;if("constant"===i.kind){if(a=i.value,!a)continue}else a=i.evaluate({zoom:r},t);o="constant"===s.kind?s.value:s.evaluate({zoom:r},t),e.addDash(a,o),t.patterns[n.id]=e.getKey(a,o);}}update(t,e,r,n){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(t,e,this.stateDependentLayers,r,n);}addFeatures(t,e,r,n,i){for(const t of this.patternFeatures)this.addFeature(t,t.geometry,t.index,e,r,n);}isEmpty(){return 0===this.layoutVertexArray.length}uploadPending(){return !this.uploaded||this.programConfigurations.needsUpload}upload(t){this.uploaded||(0!==this.layoutVertexArray2.length&&(this.layoutVertexBuffer2=t.createVertexBuffer(this.layoutVertexArray2,Ah)),this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,wh),this.indexBuffer=t.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(t),this.uploaded=!0;}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy());}lineFeatureClips(t){if(t.properties&&t.properties.hasOwnProperty("mapbox_clip_start")&&t.properties.hasOwnProperty("mapbox_clip_end"))return {start:+t.properties.mapbox_clip_start,end:+t.properties.mapbox_clip_end}}addFeature(t,e,r,n,i,s){const a=this.layers[0].layout,o=a.get("line-join").evaluate(t,{}),l=a.get("line-cap").evaluate(t,{}),u=a.get("line-miter-limit"),c=a.get("line-round-limit");this.lineClips=this.lineFeatureClips(t);for(const r of e)this.addLine(r,t,o,l,u,c);this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,t,r,i,s,n);}addLine(t,e,r,n,i,s){if(this.distance=0,this.scaledDistance=0,this.totalDistance=0,this.lineSoFar=0,this.lineClips){this.lineClipsArray.push(this.lineClips);for(let e=0;e=2&&t[o-1].equals(t[o-2]);)o--;let l=0;for(;l0;if(w&&e>l){const t=h.dist(p);if(t>2*u){const e=h.sub(h.sub(p)._mult(u/t)._round());this.updateDistance(p,e),this.addCurrentVertex(e,f,0,0,c),p=e;}}const A=p&&d;let S=A?r:a?"butt":n;if(A&&"round"===S&&(vi&&(S="bevel"),"bevel"===S&&(v>2&&(S="flipbevel"),v100)m=y.mult(-1);else {const t=v*f.add(y).mag()/f.sub(y).mag();m._perp()._mult(t*(_?-1:1));}this.addCurrentVertex(h,m,0,0,c),this.addCurrentVertex(h,m.mult(-1),0,0,c);}else if("bevel"===S||"fakeround"===S){const t=-Math.sqrt(v*v-1),e=_?t:0,r=_?0:t;if(p&&this.addCurrentVertex(h,f,e,r,c),"fakeround"===S){const t=Math.round(180*b/Math.PI/20);for(let e=1;e2*u){const e=h.add(d.sub(h)._mult(u/t)._round());this.updateDistance(h,e),this.addCurrentVertex(e,y,0,0,c),h=e;}}}}addCurrentVertex(t,e,r,n,i,s=!1){const a=e.y*n-e.x,o=-e.y-e.x*n;this.addHalfVertex(t,e.x+e.y*r,e.y-e.x*r,s,!1,r,i),this.addHalfVertex(t,a,o,s,!0,-n,i);}addHalfVertex({x:t,y:e},r,n,i,s,a,o){this.layoutVertexArray.emplaceBack((t<<1)+(i?1:0),(e<<1)+(s?1:0),Math.round(63*r)+128,Math.round(63*n)+128,1+(0===a?0:a<0?-1:1),0,this.lineSoFar),this.lineClips&&this.layoutVertexArray2.emplaceBack(this.scaledDistance,this.lineClipsArray.length,this.lineClips.start,this.lineClips.end);const l=o.vertexLength++;this.e1>=0&&this.e2>=0&&(this.indexArray.emplaceBack(this.e1,this.e2,l),o.primitiveLength++),s?this.e2=l:this.e1=l;}updateScaledDistance(){if(this.lineClips){const t=this.totalDistance/(this.lineClips.end-this.lineClips.start);this.scaledDistance=this.distance/this.totalDistance,this.lineSoFar=t*this.lineClips.start+this.distance;}else this.lineSoFar=this.distance;}updateDistance(t,e){this.distance+=t.dist(e),this.updateScaledDistance();}}Ji(Ih,"LineBucket",{omit:["layers","patternFeatures"]});const Mh=new Ps({"line-cap":new Es(te.layout_line["line-cap"]),"line-join":new Es(te.layout_line["line-join"]),"line-miter-limit":new Bs(te.layout_line["line-miter-limit"]),"line-round-limit":new Bs(te.layout_line["line-round-limit"]),"line-sort-key":new Es(te.layout_line["line-sort-key"])});var Th={paint:new Ps({"line-opacity":new Es(te.paint_line["line-opacity"]),"line-color":new Es(te.paint_line["line-color"]),"line-translate":new Bs(te.paint_line["line-translate"]),"line-translate-anchor":new Bs(te.paint_line["line-translate-anchor"]),"line-width":new Es(te.paint_line["line-width"]),"line-gap-width":new Es(te.paint_line["line-gap-width"]),"line-offset":new Es(te.paint_line["line-offset"]),"line-blur":new Es(te.paint_line["line-blur"]),"line-dasharray":new Es(te.paint_line["line-dasharray"]),"line-pattern":new Es(te.paint_line["line-pattern"]),"line-gradient":new Cs(te.paint_line["line-gradient"]),"line-trim-offset":new Bs(te.paint_line["line-trim-offset"])}),layout:Mh};const zh=new class extends Es{possiblyEvaluate(t,e){return e=new ws(Math.floor(e.zoom),{now:e.now,fadeDuration:e.fadeDuration,transition:e.transition}),super.possiblyEvaluate(t,e)}evaluate(t,e,r,n){return e=C({},e,{zoom:Math.floor(e.zoom)}),super.evaluate(t,e,r,n)}}(Th.paint.properties["line-width"].specification);function Bh(t,e){return e>0?e+2*t:t}zh.useIntegerZoom=!0;const Eh=Rs([{name:"a_pos_offset",components:4,type:"Int16"},{name:"a_tex_size",components:4,type:"Uint16"},{name:"a_pixeloffset",components:4,type:"Int16"}],4),Ch=Rs([{name:"a_globe_anchor",components:3,type:"Int16"},{name:"a_globe_normal",components:3,type:"Float32"}],4),Ph=Rs([{name:"a_projected_pos",components:4,type:"Float32"}],4);Rs([{name:"a_fade_opacity",components:1,type:"Uint32"}],4);const Dh=Rs([{name:"a_placed",components:2,type:"Uint8"},{name:"a_shift",components:2,type:"Float32"}]),Vh=Rs([{name:"a_size_scale",components:1,type:"Float32"},{name:"a_padding",components:2,type:"Float32"}]);Rs([{type:"Int16",name:"projectedAnchorX"},{type:"Int16",name:"projectedAnchorY"},{type:"Int16",name:"projectedAnchorZ"},{type:"Int16",name:"tileAnchorX"},{type:"Int16",name:"tileAnchorY"},{type:"Float32",name:"x1"},{type:"Float32",name:"y1"},{type:"Float32",name:"x2"},{type:"Float32",name:"y2"},{type:"Int16",name:"padding"},{type:"Uint32",name:"featureIndex"},{type:"Uint16",name:"sourceLayerIndex"},{type:"Uint16",name:"bucketIndex"}]);const Lh=Rs([{name:"a_pos",components:3,type:"Int16"},{name:"a_anchor_pos",components:2,type:"Int16"},{name:"a_extrude",components:2,type:"Int16"}],4),Fh=Rs([{name:"a_pos_2f",components:2,type:"Float32"},{name:"a_radius",components:1,type:"Float32"},{name:"a_flags",components:2,type:"Int16"}],4);Rs([{name:"triangle",components:3,type:"Uint16"}]),Rs([{type:"Int16",name:"projectedAnchorX"},{type:"Int16",name:"projectedAnchorY"},{type:"Int16",name:"projectedAnchorZ"},{type:"Float32",name:"tileAnchorX"},{type:"Float32",name:"tileAnchorY"},{type:"Uint16",name:"glyphStartIndex"},{type:"Uint16",name:"numGlyphs"},{type:"Uint32",name:"vertexStartIndex"},{type:"Uint32",name:"lineStartIndex"},{type:"Uint32",name:"lineLength"},{type:"Uint16",name:"segment"},{type:"Uint16",name:"lowerSize"},{type:"Uint16",name:"upperSize"},{type:"Float32",name:"lineOffsetX"},{type:"Float32",name:"lineOffsetY"},{type:"Uint8",name:"writingMode"},{type:"Uint8",name:"placedOrientation"},{type:"Uint8",name:"hidden"},{type:"Uint32",name:"crossTileID"},{type:"Int16",name:"associatedIconIndex"},{type:"Uint8",name:"flipState"}]),Rs([{type:"Int16",name:"projectedAnchorX"},{type:"Int16",name:"projectedAnchorY"},{type:"Int16",name:"projectedAnchorZ"},{type:"Float32",name:"tileAnchorX"},{type:"Float32",name:"tileAnchorY"},{type:"Int16",name:"rightJustifiedTextSymbolIndex"},{type:"Int16",name:"centerJustifiedTextSymbolIndex"},{type:"Int16",name:"leftJustifiedTextSymbolIndex"},{type:"Int16",name:"verticalPlacedTextSymbolIndex"},{type:"Int16",name:"placedIconSymbolIndex"},{type:"Int16",name:"verticalPlacedIconSymbolIndex"},{type:"Uint16",name:"key"},{type:"Uint16",name:"textBoxStartIndex"},{type:"Uint16",name:"textBoxEndIndex"},{type:"Uint16",name:"verticalTextBoxStartIndex"},{type:"Uint16",name:"verticalTextBoxEndIndex"},{type:"Uint16",name:"iconBoxStartIndex"},{type:"Uint16",name:"iconBoxEndIndex"},{type:"Uint16",name:"verticalIconBoxStartIndex"},{type:"Uint16",name:"verticalIconBoxEndIndex"},{type:"Uint16",name:"featureIndex"},{type:"Uint16",name:"numHorizontalGlyphVertices"},{type:"Uint16",name:"numVerticalGlyphVertices"},{type:"Uint16",name:"numIconVertices"},{type:"Uint16",name:"numVerticalIconVertices"},{type:"Uint16",name:"useRuntimeCollisionCircles"},{type:"Uint32",name:"crossTileID"},{type:"Float32",components:2,name:"textOffset"},{type:"Float32",name:"collisionCircleDiameter"}]),Rs([{type:"Float32",name:"offsetX"}]),Rs([{type:"Int16",name:"x"},{type:"Int16",name:"y"}]);var Rh=24;const Uh=128;function $h(t,e){const{expression:r}=e;if("constant"===r.kind)return {kind:"constant",layoutSize:r.evaluate(new ws(t+1))};if("source"===r.kind)return {kind:"source"};{const{zoomStops:e,interpolationType:n}=r;let i=0;for(;i{t.text=function(t,e,r){const n=e.layout.get("text-transform").evaluate(r,{});return "uppercase"===n?t=t.toLocaleUpperCase():"lowercase"===n&&(t=t.toLocaleLowerCase()),bs.applyArabicShaping&&(t=bs.applyArabicShaping(t)),t}(t.text,e,r);})),t}const Gh={"!":"︕","#":"#",$:"$","%":"%","&":"&","(":"︵",")":"︶","*":"*","+":"+",",":"︐","-":"︲",".":"・","/":"/",":":"︓",";":"︔","<":"︿","=":"=",">":"﹀","?":"︖","@":"@","[":"﹇","\\":"\","]":"﹈","^":"^",_:"︳","`":"`","{":"︷","|":"―","}":"︸","~":"~","¢":"¢","£":"£","¥":"¥","¦":"¦","¬":"¬","¯":" ̄","–":"︲","—":"︱","‘":"﹃","’":"﹄","“":"﹁","”":"﹂","…":"︙","‧":"・","₩":"₩","、":"︑","。":"︒","〈":"︿","〉":"﹀","《":"︽","》":"︾","「":"﹁","」":"﹂","『":"﹃","』":"﹄","【":"︻","】":"︼","〔":"︹","〕":"︺","〖":"︗","〗":"︘","!":"︕","(":"︵",")":"︶",",":"︐","-":"︲",".":"・",":":"︓",";":"︔","<":"︿",">":"﹀","?":"︖","[":"﹇","]":"﹈","_":"︳","{":"︷","|":"―","}":"︸","⦅":"︵","⦆":"︶","。":"︒","「":"﹁","」":"﹂","←":"↑","→":"↓"};function Zh(t){return "︶"===t||"﹈"===t||"︸"===t||"﹄"===t||"﹂"===t||"︾"===t||"︼"===t||"︺"===t||"︘"===t||"﹀"===t||"︐"===t||"︓"===t||"︔"===t||"`"===t||" ̄"===t||"︑"===t||"︒"===t}function Kh(t){return "︵"===t||"﹇"===t||"︷"===t||"﹃"===t||"﹁"===t||"︽"===t||"︻"===t||"︹"===t||"︗"===t||"︿"===t}var Xh=Yh,Jh=function(t,e,r,n,i){var s,a,o=8*i-n-1,l=(1<>1,c=-7,h=r?i-1:0,p=r?-1:1,d=t[e+h];for(h+=p,s=d&(1<<-c)-1,d>>=-c,c+=o;c>0;s=256*s+t[e+h],h+=p,c-=8);for(a=s&(1<<-c)-1,s>>=-c,c+=n;c>0;a=256*a+t[e+h],h+=p,c-=8);if(0===s)s=1-u;else {if(s===l)return a?NaN:1/0*(d?-1:1);a+=Math.pow(2,n),s-=u;}return (d?-1:1)*a*Math.pow(2,s-n)},Hh=function(t,e,r,n,i,s){var a,o,l,u=8*s-i-1,c=(1<>1,p=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,d=n?0:s-1,f=n?1:-1,y=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(o=isNaN(e)?1:0,a=c):(a=Math.floor(Math.log(e)/Math.LN2),e*(l=Math.pow(2,-a))<1&&(a--,l*=2),(e+=a+h>=1?p/l:p*Math.pow(2,1-h))*l>=2&&(a++,l/=2),a+h>=c?(o=0,a=c):a+h>=1?(o=(e*l-1)*Math.pow(2,i),a+=h):(o=e*Math.pow(2,h-1)*Math.pow(2,i),a=0));i>=8;t[r+d]=255&o,d+=f,o/=256,i-=8);for(a=a<0;t[r+d]=255&a,d+=f,a/=256,u-=8);t[r+d-f]|=128*y;}; - /*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */function Yh(t){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(t)?t:new Uint8Array(t||0),this.pos=0,this.type=0,this.length=this.buf.length;}Yh.Varint=0,Yh.Fixed64=1,Yh.Bytes=2,Yh.Fixed32=5;var Wh=4294967296,Qh=1/Wh,tp="undefined"==typeof TextDecoder?null:new TextDecoder("utf8");function ep(t){return t.type===Yh.Bytes?t.readVarint()+t.pos:t.pos+1}function rp(t,e,r){return r?4294967296*e+(t>>>0):4294967296*(e>>>0)+(t>>>0)}function np(t,e,r){var n=e<=16383?1:e<=2097151?2:e<=268435455?3:Math.floor(Math.log(e)/(7*Math.LN2));r.realloc(n);for(var i=r.pos-1;i>=t;i--)r.buf[i+n]=r.buf[i];}function ip(t,e){for(var r=0;r>>8,t[r+2]=e>>>16,t[r+3]=e>>>24;}function yp(t,e){return (t[e]|t[e+1]<<8|t[e+2]<<16)+(t[e+3]<<24)}Yh.prototype={destroy:function(){this.buf=null;},readFields:function(t,e,r){for(r=r||this.length;this.pos>3,s=this.pos;this.type=7&n,t(i,e,this),this.pos===s&&this.skip(n);}return e},readMessage:function(t,e){return this.readFields(t,e,this.readVarint()+this.pos)},readFixed32:function(){var t=dp(this.buf,this.pos);return this.pos+=4,t},readSFixed32:function(){var t=yp(this.buf,this.pos);return this.pos+=4,t},readFixed64:function(){var t=dp(this.buf,this.pos)+dp(this.buf,this.pos+4)*Wh;return this.pos+=8,t},readSFixed64:function(){var t=dp(this.buf,this.pos)+yp(this.buf,this.pos+4)*Wh;return this.pos+=8,t},readFloat:function(){var t=Jh(this.buf,this.pos,!0,23,4);return this.pos+=4,t},readDouble:function(){var t=Jh(this.buf,this.pos,!0,52,8);return this.pos+=8,t},readVarint:function(t){var e,r,n=this.buf;return e=127&(r=n[this.pos++]),r<128?e:(e|=(127&(r=n[this.pos++]))<<7,r<128?e:(e|=(127&(r=n[this.pos++]))<<14,r<128?e:(e|=(127&(r=n[this.pos++]))<<21,r<128?e:function(t,e,r){var n,i,s=r.buf;if(n=(112&(i=s[r.pos++]))>>4,i<128)return rp(t,n,e);if(n|=(127&(i=s[r.pos++]))<<3,i<128)return rp(t,n,e);if(n|=(127&(i=s[r.pos++]))<<10,i<128)return rp(t,n,e);if(n|=(127&(i=s[r.pos++]))<<17,i<128)return rp(t,n,e);if(n|=(127&(i=s[r.pos++]))<<24,i<128)return rp(t,n,e);if(n|=(1&(i=s[r.pos++]))<<31,i<128)return rp(t,n,e);throw new Error("Expected varint not more than 10 bytes")}(e|=(15&(r=n[this.pos]))<<28,t,this))))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var t=this.readVarint();return t%2==1?(t+1)/-2:t/2},readBoolean:function(){return Boolean(this.readVarint())},readString:function(){var t=this.readVarint()+this.pos,e=this.pos;return this.pos=t,t-e>=12&&tp?function(t,e,r){return tp.decode(t.subarray(e,r))}(this.buf,e,t):function(t,e,r){for(var n="",i=e;i239?4:l>223?3:l>191?2:1;if(i+c>r)break;1===c?l<128&&(u=l):2===c?128==(192&(s=t[i+1]))&&(u=(31&l)<<6|63&s)<=127&&(u=null):3===c?(a=t[i+2],128==(192&(s=t[i+1]))&&128==(192&a)&&((u=(15&l)<<12|(63&s)<<6|63&a)<=2047||u>=55296&&u<=57343)&&(u=null)):4===c&&(a=t[i+2],o=t[i+3],128==(192&(s=t[i+1]))&&128==(192&a)&&128==(192&o)&&((u=(15&l)<<18|(63&s)<<12|(63&a)<<6|63&o)<=65535||u>=1114112)&&(u=null)),null===u?(u=65533,c=1):u>65535&&(u-=65536,n+=String.fromCharCode(u>>>10&1023|55296),u=56320|1023&u),n+=String.fromCharCode(u),i+=c;}return n}(this.buf,e,t)},readBytes:function(){var t=this.readVarint()+this.pos,e=this.buf.subarray(this.pos,t);return this.pos=t,e},readPackedVarint:function(t,e){if(this.type!==Yh.Bytes)return t.push(this.readVarint(e));var r=ep(this);for(t=t||[];this.pos127;);else if(e===Yh.Bytes)this.pos=this.readVarint()+this.pos;else if(e===Yh.Fixed32)this.pos+=4;else {if(e!==Yh.Fixed64)throw new Error("Unimplemented type: "+e);this.pos+=8;}},writeTag:function(t,e){this.writeVarint(t<<3|e);},realloc:function(t){for(var e=this.length||16;e268435455||t<0?function(t,e){var r,n;if(t>=0?(r=t%4294967296|0,n=t/4294967296|0):(n=~(-t/4294967296),4294967295^(r=~(-t%4294967296))?r=r+1|0:(r=0,n=n+1|0)),t>=0x10000000000000000||t<-0x10000000000000000)throw new Error("Given varint doesn't fit into 10 bytes");e.realloc(10),function(t,e,r){r.buf[r.pos++]=127&t|128,t>>>=7,r.buf[r.pos++]=127&t|128,t>>>=7,r.buf[r.pos++]=127&t|128,t>>>=7,r.buf[r.pos++]=127&t|128,r.buf[r.pos]=127&(t>>>=7);}(r,0,e),function(t,e){var r=(7&t)<<4;e.buf[e.pos++]|=r|((t>>>=3)?128:0),t&&(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=127&t)))));}(n,e);}(t,this):(this.realloc(4),this.buf[this.pos++]=127&t|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=t>>>7&127))));},writeSVarint:function(t){this.writeVarint(t<0?2*-t-1:2*t);},writeBoolean:function(t){this.writeVarint(Boolean(t));},writeString:function(t){t=String(t),this.realloc(4*t.length),this.pos++;var e=this.pos;this.pos=function(t,e,r){for(var n,i,s=0;s55295&&n<57344){if(!i){n>56319||s+1===e.length?(t[r++]=239,t[r++]=191,t[r++]=189):i=n;continue}if(n<56320){t[r++]=239,t[r++]=191,t[r++]=189,i=n;continue}n=i-55296<<10|n-56320|65536,i=null;}else i&&(t[r++]=239,t[r++]=191,t[r++]=189,i=null);n<128?t[r++]=n:(n<2048?t[r++]=n>>6|192:(n<65536?t[r++]=n>>12|224:(t[r++]=n>>18|240,t[r++]=n>>12&63|128),t[r++]=n>>6&63|128),t[r++]=63&n|128);}return r}(this.buf,t,this.pos);var r=this.pos-e;r>=128&&np(e,r,this),this.pos=e-1,this.writeVarint(r),this.pos+=r;},writeFloat:function(t){this.realloc(4),Hh(this.buf,t,this.pos,!0,23,4),this.pos+=4;},writeDouble:function(t){this.realloc(8),Hh(this.buf,t,this.pos,!0,52,8),this.pos+=8;},writeBytes:function(t){var e=t.length;this.writeVarint(e),this.realloc(e);for(var r=0;r=128&&np(r,n,this),this.pos=r-1,this.writeVarint(n),this.pos+=n;},writeMessage:function(t,e,r){this.writeTag(t,Yh.Bytes),this.writeRawMessage(e,r);},writePackedVarint:function(t,e){e.length&&this.writeMessage(t,ip,e);},writePackedSVarint:function(t,e){e.length&&this.writeMessage(t,sp,e);},writePackedBoolean:function(t,e){e.length&&this.writeMessage(t,lp,e);},writePackedFloat:function(t,e){e.length&&this.writeMessage(t,ap,e);},writePackedDouble:function(t,e){e.length&&this.writeMessage(t,op,e);},writePackedFixed32:function(t,e){e.length&&this.writeMessage(t,up,e);},writePackedSFixed32:function(t,e){e.length&&this.writeMessage(t,cp,e);},writePackedFixed64:function(t,e){e.length&&this.writeMessage(t,hp,e);},writePackedSFixed64:function(t,e){e.length&&this.writeMessage(t,pp,e);},writeBytesField:function(t,e){this.writeTag(t,Yh.Bytes),this.writeBytes(e);},writeFixed32Field:function(t,e){this.writeTag(t,Yh.Fixed32),this.writeFixed32(e);},writeSFixed32Field:function(t,e){this.writeTag(t,Yh.Fixed32),this.writeSFixed32(e);},writeFixed64Field:function(t,e){this.writeTag(t,Yh.Fixed64),this.writeFixed64(e);},writeSFixed64Field:function(t,e){this.writeTag(t,Yh.Fixed64),this.writeSFixed64(e);},writeVarintField:function(t,e){this.writeTag(t,Yh.Varint),this.writeVarint(e);},writeSVarintField:function(t,e){this.writeTag(t,Yh.Varint),this.writeSVarint(e);},writeStringField:function(t,e){this.writeTag(t,Yh.Bytes),this.writeString(e);},writeFloatField:function(t,e){this.writeTag(t,Yh.Fixed32),this.writeFloat(e);},writeDoubleField:function(t,e){this.writeTag(t,Yh.Fixed64),this.writeDouble(e);},writeBooleanField:function(t,e){this.writeVarintField(t,Boolean(e));}};var mp=p(Xh);const gp=3;function xp(t,e,r){e.glyphs=[],1===t&&r.readMessage(vp,e);}function vp(t,e,r){if(3===t){const{id:t,bitmap:n,width:i,height:s,left:a,top:o,advance:l}=r.readMessage(bp,{});e.glyphs.push({id:t,bitmap:new Ru({width:i+2*gp,height:s+2*gp},n),metrics:{width:i,height:s,left:a,top:o,advance:l}});}else 4===t?e.ascender=r.readSVarint():5===t&&(e.descender=r.readSVarint());}function bp(t,e,r){1===t?e.id=r.readVarint():2===t?e.bitmap=r.readBytes():3===t?e.width=r.readVarint():4===t?e.height=r.readVarint():5===t?e.left=r.readSVarint():6===t?e.top=r.readSVarint():7===t&&(e.advance=r.readVarint());}const wp=gp;function _p(t){let e=0,r=0;for(const n of t)e+=n.w*n.h,r=Math.max(r,n.w);t.sort(((t,e)=>e.h-t.h));const n=[{x:0,y:0,w:Math.max(Math.ceil(Math.sqrt(e/.95)),r),h:1/0}];let i=0,s=0;for(const e of t)for(let t=n.length-1;t>=0;t--){const r=n[t];if(!(e.w>r.w||e.h>r.h)){if(e.x=r.x,e.y=r.y,s=Math.max(s,e.y+e.h),i=Math.max(i,e.x+e.w),e.w===r.w&&e.h===r.h){const e=n.pop();tt.hasImage(e))),t.dispatchRenderCallbacks(this.haveRenderCallbacks);for(const r in t.updatedImages)this.patchUpdatedImage(this.iconPositions[r],t.getImage(r),e),this.patchUpdatedImage(this.patternPositions[r],t.getImage(r),e);}patchUpdatedImage(t,e,r){if(!t||!e)return;if(t.version===e.version)return;t.version=e.version;const[n,i]=t.tl;r.update(e.data,void 0,{x:n,y:i});}}Ji(Sp,"ImagePosition"),Ji(kp,"ImageAtlas");const Ip={horizontal:1,vertical:2,horizontalOnly:3},Mp=-17;class Tp{constructor(){this.scale=1,this.fontStack="",this.imageName=null;}static forText(t,e){const r=new Tp;return r.scale=t||1,r.fontStack=e,r}static forImage(t){const e=new Tp;return e.imageName=t,e}}class zp{constructor(){this.text="",this.sectionIndex=[],this.sections=[],this.imageSectionID=null;}static fromFeature(t,e){const r=new zp;for(let n=0;n=0&&r>=t&&Ep[this.text.charCodeAt(r)];r--)e--;this.text=this.text.substring(t,e),this.sectionIndex=this.sectionIndex.slice(t,e);}substring(t,e){const r=new zp;return r.text=this.text.substring(t,e),r.sectionIndex=this.sectionIndex.slice(t,e),r.sections=this.sections,r}toString(){return this.text}getMaxScale(){return this.sectionIndex.reduce(((t,e)=>Math.max(t,this.sections[e].scale)),0)}addTextSection(t,e){this.text+=t.text,this.sections.push(Tp.forText(t.scale,t.fontStack||e));const r=this.sections.length-1;for(let e=0;e=63743?null:++this.imageSectionID:(this.imageSectionID=57344,this.imageSectionID)}}function Bp(t,e,r,n,i,s,a,o,l,u,c,h,p,d,f){const y=zp.fromFeature(t,i);h===Ip.vertical&&y.verticalizePunctuation(p);let m=[];const g=function(t,e,r,n,i,s){if(!t)return [];const a=[],o=function(t,e,r,n,i,s){let a=0;for(let r=0;r=0;let u=0;for(let r=0;r0&&s>w&&(w=s);}else {const t=r[o.fontStack];if(!t)continue;t[y]&&(S=t[y]);const n=e[o.fontStack];if(!n)continue;const s=n.glyphs[y];if(!s)continue;if(v=s.metrics,I=8203!==y?Rh:0,m){const t=void 0!==n.ascender?Math.abs(n.ascender):0,e=void 0!==n.descender?Math.abs(n.descender):0,r=(t+e)*g;_-r/2;){if(a--,a<0)return !1;o-=t[a].dist(s),s=t[a];}o+=t[a].dist(t[a+1]),a++;const l=[];let u=0;for(;on;)u-=l.shift().angleDelta;if(u>i)return !1;a++,o+=e.dist(r);}return !0}function Np(t){let e=0;for(let r=0;ru){const c=(u-l)/s,h=Er(n.x,i.x,c),p=Er(n.y,i.y,c),d=new Op(h,p,0,i.angleTo(n),r);return !a||qp(t,d,o,a,e)?d:void 0}l+=s;}}function Xp(t,e,r,n,i,s,a,o,l){const u=Gp(n,s,a),c=Zp(n,i),h=c*a,p=0===t[0].x||t[0].x===l||0===t[0].y||t[0].y===l;return e-h=0&&g=0&&x=0&&p+u<=c){const r=new Op(g,x,0,y,e);r._round(),n&&!qp(t,r,s,n,i)||d.push(r);}}h+=f;}return o||d.length||a||(d=Jp(t,h/2,r,n,i,s,a,!0,l)),d}function Hp(t,e,r,n,i){const s=[];for(let a=0;a=n&&u.x>=n||(a.x>=n?a=new x(n,a.y+(n-a.x)/(u.x-a.x)*(u.y-a.y))._round():u.x>=n&&(u=new x(n,a.y+(n-a.x)/(u.x-a.x)*(u.y-a.y))._round()),a.y>=i&&u.y>=i||(a.y>=i?a=new x(a.x+(i-a.y)/(u.y-a.y)*(u.x-a.x),i)._round():u.y>=i&&(u=new x(a.x+(i-a.y)/(u.y-a.y)*(u.x-a.x),i)._round()),l&&a.equals(l[l.length-1])||(l=[a],s.push(l)),l.push(u)))));}}return s}Ji(Op,"Anchor");const Yp=1e20;function Wp(t,e,r,n,i,s,a,o,l){for(let u=e;u-1);l++,s[l]=o,a[l]=u,a[l+1]=Yp;}for(let o=0,l=0;o{let n=this.entries[t];n||(n=this.entries[t]={glyphs:{},requests:{},ranges:{},ascender:void 0,descender:void 0});let i=n.glyphs[e];if(void 0!==i)return void r(null,{stack:t,id:e,glyph:i});if(i=this._tinySDF(n,t,e),i)return n.glyphs[e]=i,void r(null,{stack:t,id:e,glyph:i});const s=Math.floor(e/256);if(256*s>65535)return void r(new Error("glyphs > 65535 not supported"));if(n.ranges[s])return void r(null,{stack:t,id:e,glyph:i});let a=n.requests[s];a||(a=n.requests[s]=[],rd.loadGlyphRange(t,s,this.url,this.requestManager,((t,e)=>{if(e){n.ascender=e.ascender,n.descender=e.descender;for(const t in e.glyphs)this._doesCharSupportLocalGlyph(+t)||(n.glyphs[+t]=e.glyphs[+t]);n.ranges[s]=!0;}for(const r of a)r(t,e);delete n.requests[s];}))),a.push(((n,i)=>{n?r(n):i&&r(null,{stack:t,id:e,glyph:i.glyphs[e]||null});}));}),((t,r)=>{if(t)e(t);else if(r){const t={};for(const{stack:e,id:n,glyph:i}of r)void 0===t[e]&&(t[e]={}),void 0===t[e].glyphs&&(t[e].glyphs={}),t[e].glyphs[n]=i&&{id:i.id,bitmap:i.bitmap.clone(),metrics:i.metrics},t[e].ascender=this.entries[e].ascender,t[e].descender=this.entries[e].descender;e(null,t);}}));}_doesCharSupportLocalGlyph(t){return this.localGlyphMode!==ed.none&&(this.localGlyphMode===ed.all?!!this.localFontFamily:!!this.localFontFamily&&(ts["CJK Unified Ideographs"](t)||ts["Hangul Syllables"](t)||ts.Hiragana(t)||ts.Katakana(t)||ts["CJK Symbols and Punctuation"](t)))}_tinySDF(t,e,r){const n=this.localFontFamily;if(!n||!this._doesCharSupportLocalGlyph(r))return;let i=t.tinySDF;if(!i){let r="400";/bold/i.test(e)?r="900":/medium/i.test(e)?r="500":/light/i.test(e)&&(r="200"),i=t.tinySDF=new rd.TinySDF({fontFamily:n,fontWeight:r,fontSize:24*td,buffer:3*td,radius:8*td}),i.fontWeight=r;}if(this.localGlyphs[i.fontWeight][r])return this.localGlyphs[i.fontWeight][r];const s=String.fromCharCode(r),{data:a,width:o,height:l,glyphWidth:u,glyphHeight:c,glyphLeft:h,glyphTop:p,glyphAdvance:d}=i.draw(s);return this.localGlyphs[i.fontWeight][r]={id:r,bitmap:new Ru({width:o,height:l},a),metrics:{width:u/td,height:c/td,left:h/td,top:p/td-27,advance:d/td,localGlyph:!0}}}}rd.loadGlyphRange=function(t,e,r,n,i){const s=256*e,a=s+255,o=n.transformRequest(n.normalizeGlyphsURL(r).replace("{fontstack}",t).replace("{range}",`${s}-${a}`),lt.Glyphs);pt(o,((t,e)=>{if(t)i(t);else if(e){const t={},r=function(t){return new mp(t).readFields(xp,{})}(e);for(const e of r.glyphs)t[e.id]=e;i(null,{glyphs:t,ascender:r.ascender,descender:r.descender});}}));},rd.TinySDF=class{constructor({fontSize:t=24,buffer:e=3,radius:r=8,cutoff:n=.25,fontFamily:i="sans-serif",fontWeight:s="normal",fontStyle:a="normal"}={}){this.buffer=e,this.cutoff=n,this.radius=r;const o=this.size=t+4*e,l=this._createCanvas(o),u=this.ctx=l.getContext("2d",{willReadFrequently:!0});u.font=`${a} ${s} ${t}px ${i}`,u.textBaseline="alphabetic",u.textAlign="left",u.fillStyle="black",this.gridOuter=new Float64Array(o*o),this.gridInner=new Float64Array(o*o),this.f=new Float64Array(o),this.z=new Float64Array(o+1),this.v=new Uint16Array(o);}_createCanvas(t){const e=document.createElement("canvas");return e.width=e.height=t,e}draw(t){const{width:e,actualBoundingBoxAscent:r,actualBoundingBoxDescent:n,actualBoundingBoxLeft:i,actualBoundingBoxRight:s}=this.ctx.measureText(t),a=Math.ceil(r),o=Math.max(0,Math.min(this.size-this.buffer,Math.ceil(s-i))),l=Math.min(this.size-this.buffer,a+Math.ceil(n)),u=o+2*this.buffer,c=l+2*this.buffer,h=Math.max(u*c,0),p=new Uint8ClampedArray(h),d={data:p,width:u,height:c,glyphWidth:o,glyphHeight:l,glyphTop:a,glyphLeft:0,glyphAdvance:e};if(0===o||0===l)return d;const{ctx:f,buffer:y,gridInner:m,gridOuter:g}=this;f.clearRect(y,y,o,l),f.fillText(t,y,y+a);const x=f.getImageData(y,y,o,l);g.fill(Yp,0,h),m.fill(0,0,h);for(let t=0;t0?t*t:0,m[n]=t<0?t*t:0;}}Wp(g,0,0,u,c,u,this.f,this.v,this.z),Wp(m,y,y,o,l,u,this.f,this.v,this.z);for(let t=0;tt+e[1]-e[0],f=h.reduce(d,0),y=p.reduce(d,0),m=o-f,g=l-y;let v=0,b=f,w=0,_=y,A=0,S=m,k=0,I=g;if(s.content&&n){const t=s.content;v=sd(h,0,t[0]),w=sd(p,0,t[1]),b=sd(h,t[0],t[2]),_=sd(p,t[1],t[3]),A=t[0]-v,k=t[1]-w,S=t[2]-t[0]-b,I=t[3]-t[1]-_;}const M=(n,i,o,l)=>{const h=od(n.stretch-v,b,u,t.left),p=ld(n.fixed-A,S,n.stretch,f),d=od(i.stretch-w,_,c,t.top),m=ld(i.fixed-k,I,i.stretch,y),g=od(o.stretch-v,b,u,t.left),M=ld(o.fixed-A,S,o.stretch,f),T=od(l.stretch-w,_,c,t.top),z=ld(l.fixed-k,I,l.stretch,y),B=new x(h,d),E=new x(g,d),C=new x(g,T),P=new x(h,T),D=new x(p/a,m/a),V=new x(M/a,z/a),L=e*Math.PI/180;if(L){const t=Math.sin(L),e=Math.cos(L),r=[e,-t,t,e];B._matMult(r),E._matMult(r),P._matMult(r),C._matMult(r);}const F=n.stretch+n.fixed,R=i.stretch+i.fixed;return {tl:B,tr:E,bl:P,br:C,tex:{x:s.paddedRect.x+nd+F,y:s.paddedRect.y+nd+R,w:o.stretch+o.fixed-F,h:l.stretch+l.fixed-R},writingMode:void 0,glyphOffset:[0,0],sectionIndex:0,pixelOffsetTL:D,pixelOffsetBR:V,minFontScaleX:S/a/u,minFontScaleY:I/a/c,isSDF:r}};if(n&&(s.stretchX||s.stretchY)){const t=ad(h,m,f),e=ad(p,g,y);for(let r=0;r0)for(let t=(this.length>>1)-1;t>=0;t--)this._down(t);}push(t){this.data.push(t),this.length++,this._up(this.length-1);}pop(){if(0===this.length)return;const t=this.data[0],e=this.data.pop();return this.length--,this.length>0&&(this.data[0]=e,this._down(0)),t}peek(){return this.data[0]}_up(t){const{data:e,compare:r}=this,n=e[t];for(;t>0;){const i=t-1>>1,s=e[i];if(r(n,s)>=0)break;e[t]=s,t=i;}e[t]=n;}_down(t){const{data:e,compare:r}=this,n=this.length>>1,i=e[t];for(;t=0)break;e[t]=s,t=n;}e[t]=i;}}function hd(t,e){return te?1:0}function pd(t,e=1,r=!1){let n=1/0,i=1/0,s=-1/0,a=-1/0;const o=t[0];for(let t=0;ts)&&(s=e.x),(!t||e.y>a)&&(a=e.y);}const l=Math.min(s-n,a-i);let u=l/2;const c=new cd([],dd);if(0===l)return new x(n,i);for(let e=n;eh.d||!h.d)&&(h=n,r&&console.log("found best %d after %d probes",Math.round(1e4*n.d)/1e4,p)),n.max-h.d<=e||(u=n.h/2,c.push(new fd(n.p.x-u,n.p.y-u,u,t)),c.push(new fd(n.p.x+u,n.p.y-u,u,t)),c.push(new fd(n.p.x-u,n.p.y+u,u,t)),c.push(new fd(n.p.x+u,n.p.y+u,u,t)),p+=4);}return r&&(console.log(`num probes: ${p}`),console.log(`best distance: ${h.d}`)),h.p}function dd(t,e){return e.max-t.max}class fd{constructor(t,e,r,n){this.p=new x(t,e),this.h=r,this.d=function(t,e){let r=!1,n=1/0;for(let i=0;it.y!=o.y>t.y&&t.x<(o.x-i.x)*(t.y-i.y)/(o.y-i.y)+i.x&&(r=!r),n=Math.min(n,xu(t,i,o));}}return (r?1:-1)*Math.sqrt(n)}(this.p,n),this.max=this.d+this.h*Math.SQRT2;}}const yd=7,md=Number.POSITIVE_INFINITY,gd=Math.sqrt(2);function xd(t,[e,r]){let n=0,i=0;if(r===md){e<0&&(e=0);const r=e/gd;switch(t){case"top-right":case"top-left":i=r-yd;break;case"bottom-right":case"bottom-left":i=-r+yd;break;case"bottom":i=-e+yd;break;case"top":i=e-yd;}switch(t){case"top-right":case"bottom-right":n=-r;break;case"top-left":case"bottom-left":n=r;break;case"left":n=e;break;case"right":n=-e;}}else {switch(e=Math.abs(e),r=Math.abs(r),t){case"top-right":case"top-left":case"top":i=r-yd;break;case"bottom-right":case"bottom-left":case"bottom":i=-r+yd;}switch(t){case"top-right":case"bottom-right":case"right":n=-e;break;case"top-left":case"bottom-left":case"left":n=e;}}return [n,i]}function vd(t,e,r,n,i,s,a,o,l,u){t.createArrays(),t.tilePixelRatio=ao/(512*t.overscaling),t.compareText={},t.iconsNeedLinear=!1;const c=t.layers[0].layout,h=t.layers[0]._unevaluatedLayout._values,p={};if("composite"===t.textSizeData.kind){const{minZoom:e,maxZoom:r}=t.textSizeData;p.compositeTextSizes=[h["text-size"].possiblyEvaluate(new ws(e),o),h["text-size"].possiblyEvaluate(new ws(r),o)];}if("composite"===t.iconSizeData.kind){const{minZoom:e,maxZoom:r}=t.iconSizeData;p.compositeIconSizes=[h["icon-size"].possiblyEvaluate(new ws(e),o),h["icon-size"].possiblyEvaluate(new ws(r),o)];}p.layoutTextSize=h["text-size"].possiblyEvaluate(new ws(l+1),o),p.layoutIconSize=h["icon-size"].possiblyEvaluate(new ws(l+1),o),p.textMaxSize=h["text-size"].possiblyEvaluate(new ws(18),o);const d="map"===c.get("text-rotation-alignment")&&"point"!==c.get("symbol-placement"),f=c.get("text-size");for(const s of t.features){const l=c.get("text-font").evaluate(s,{},o).join(","),h=f.evaluate(s,{},o),y=p.layoutTextSize.evaluate(s,{},o),m=(p.layoutIconSize.evaluate(s,{},o),{horizontal:{},vertical:void 0}),g=s.text;let x,v=[0,0];if(g){const n=g.toString(),a=c.get("text-letter-spacing").evaluate(s,{},o)*Rh,u=c.get("text-line-height").evaluate(s,{},o)*Rh,p=rs(n)?a:0,f=c.get("text-anchor").evaluate(s,{},o),x=c.get("text-variable-anchor");if(!x){const t=c.get("text-radial-offset").evaluate(s,{},o);v=t?xd(f,[t*Rh,md]):c.get("text-offset").evaluate(s,{},o).map((t=>t*Rh));}let b=d?"center":c.get("text-justify").evaluate(s,{},o);const w="point"===c.get("symbol-placement"),_=w?c.get("text-max-width").evaluate(s,{},o)*Rh:1/0,A=s=>{t.allowVerticalPlacement&&es(n)&&(m.vertical=Bp(g,e,r,i,l,_,u,f,s,p,v,Ip.vertical,!0,y,h));};if(!d&&x){const t="auto"===b?x.map((t=>bd(t))):[b];let n=!1;for(let s=0;s=0||!es(n)){const t=Bp(g,e,r,i,l,_,u,f,b,p,v,Ip.horizontal,!1,y,h);t&&(m.horizontal[b]=t);}A(w?"left":b);}}let b=!1;if(s.icon&&s.icon.name){const e=n[s.icon.name];e&&(x=$p(i[s.icon.name],c.get("icon-offset").evaluate(s,{},o),c.get("icon-anchor").evaluate(s,{},o)),b=e.sdf,void 0===t.sdfIcons?t.sdfIcons=e.sdf:t.sdfIcons!==e.sdf&&N("Style sheet warning: Cannot mix SDF and non-SDF icons in one buffer"),(e.pixelRatio!==t.pixelRatio||0!==c.get("icon-rotate").constantOr(1))&&(t.iconsNeedLinear=!0));}const w=kd(m.horizontal)||m.vertical;t.iconsInText||(t.iconsInText=!!w&&w.iconsInText),(w||x)&&wd(t,s,m,x,n,p,y,0,v,b,a,o,u);}s&&t.generateCollisionDebugBuffers(l,t.collisionBoxArray);}function bd(t){switch(t){case"right":case"top-right":case"bottom-right":return "right";case"left":case"top-left":case"bottom-left":return "left"}return "center"}function wd(t,e,r,n,i,s,a,o,l,u,c,h,p){let d=s.textMaxSize.evaluate(e,{},h);void 0===d&&(d=a);const f=t.layers[0].layout,y=f.get("icon-offset").evaluate(e,{},h),m=kd(r.horizontal)||r.vertical,g="globe"===p.name,x=Rh,v=a/x,b=t.tilePixelRatio*d/x,_=(B=t.overscaling,t.zoom>18&&B>2&&(B>>=1),Math.max(ao/(512*B),1)*f.get("symbol-spacing")),A=f.get("text-padding")*t.tilePixelRatio,S=f.get("icon-padding")*t.tilePixelRatio,k=w(f.get("text-max-angle")),I="map"===f.get("text-rotation-alignment")&&"point"!==f.get("symbol-placement"),M="map"===f.get("icon-rotation-alignment")&&"point"!==f.get("symbol-placement"),T=f.get("symbol-placement"),z=_/2;var B;const E=f.get("icon-text-fit");let C;n&&"none"!==E&&(t.allowVerticalPlacement&&r.vertical&&(C=jp(n,r.vertical,E,f.get("icon-text-fit-padding"),y,v)),m&&(n=jp(n,m,E,f.get("icon-text-fit-padding"),y,v)));const P=(a,o,d)=>{if(o.x<0||o.x>=ao||o.y<0||o.y>=ao)return;let f=null;if(g){const{x:t,y:e,z:r}=p.projectTilePoint(o.x,o.y,d);f={anchor:new Op(t,e,r,0,void 0),up:p.upVector(d,o.x,o.y)};}!function(t,e,r,n,i,s,a,o,l,u,c,h,p,d,f,y,m,g,x,v,b,w,_,A,S){const k=t.addToLineVertexArray(e,n);let I,M,T,z,B,E,C,P=0,D=0,V=0,L=0,F=-1,R=-1;const U={};let $=Ba("");const j=r?r.anchor:e;let O=0,q=0;if(void 0===l._unevaluatedLayout.getValue("text-radial-offset")?[O,q]=l.layout.get("text-offset").evaluate(b,{},S).map((t=>t*Rh)):(O=l.layout.get("text-radial-offset").evaluate(b,{},S)*Rh,q=md),t.allowVerticalPlacement&&i.vertical){const t=i.vertical;if(f)E=Md(t),o&&(C=Md(o));else {const r=l.layout.get("text-rotate").evaluate(b,{},S)+90;T=Id(u,j,e,c,h,p,t,d,r,y),o&&(z=Id(u,j,e,c,h,p,o,g,r));}}if(s){const n=l.layout.get("icon-rotate").evaluate(b,{},S),i="none"!==l.layout.get("icon-text-fit"),a=id(s,n,_,i),d=o?id(o,n,_,i):void 0;M=Id(u,j,e,c,h,p,s,g,n),P=4*a.length;const f=t.iconSizeData;let y=null;"source"===f.kind?(y=[Uh*l.layout.get("icon-size").evaluate(b,{},S)],y[0]>Ad&&N(`${t.layerIds[0]}: Value for "icon-size" is >= ${_d}. Reduce your "icon-size".`)):"composite"===f.kind&&(y=[Uh*w.compositeIconSizes[0].evaluate(b,{},S),Uh*w.compositeIconSizes[1].evaluate(b,{},S)],(y[0]>Ad||y[1]>Ad)&&N(`${t.layerIds[0]}: Value for "icon-size" is >= ${_d}. Reduce your "icon-size".`)),t.addSymbols(t.icon,a,y,v,x,b,!1,r,e,k.lineStartIndex,k.lineLength,-1,A,S),F=t.icon.placedSymbolArray.length-1,d&&(D=4*d.length,t.addSymbols(t.icon,d,y,v,x,b,Ip.vertical,r,e,k.lineStartIndex,k.lineLength,-1,A,S),R=t.icon.placedSymbolArray.length-1);}for(const n in i.horizontal){const s=i.horizontal[n];I||($=Ba(s.text),f?B=Md(s):I=Id(u,j,e,c,h,p,s,d,l.layout.get("text-rotate").evaluate(b,{},S),y));const o=1===s.positionedLines.length;if(V+=Sd(t,r,e,s,a,l,f,b,y,k,i.vertical?Ip.horizontal:Ip.horizontalOnly,o?Object.keys(i.horizontal):[n],U,F,w,A,S),o)break}i.vertical&&(L+=Sd(t,r,e,i.vertical,a,l,f,b,y,k,Ip.vertical,["vertical"],U,R,w,A,S));let G=-1;const Z=(t,e)=>t?Math.max(t,e):e;G=Z(B,G),G=Z(E,G),G=Z(C,G);const K=G>-1?1:0;t.glyphOffsetArray.length>=of.MAX_GLYPHS&&N("Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907"),void 0!==b.sortKey&&t.addToSortKeyRanges(t.symbolInstances.length,b.sortKey),t.symbolInstances.emplaceBack(j.x,j.y,j.z,e.x,e.y,U.right>=0?U.right:-1,U.center>=0?U.center:-1,U.left>=0?U.left:-1,U.vertical>=0?U.vertical:-1,F,R,$,void 0!==I?I:t.collisionBoxArray.length,void 0!==I?I+1:t.collisionBoxArray.length,void 0!==T?T:t.collisionBoxArray.length,void 0!==T?T+1:t.collisionBoxArray.length,void 0!==M?M:t.collisionBoxArray.length,void 0!==M?M+1:t.collisionBoxArray.length,z||t.collisionBoxArray.length,z?z+1:t.collisionBoxArray.length,c,V,L,P,D,K,0,O,q,G);}(t,o,f,a,r,n,i,C,t.layers[0],t.collisionBoxArray,e.index,e.sourceLayerIndex,t.index,A,I,l,0,S,M,y,e,s,u,c,h);};if("line"===T)for(const i of Hp(e.geometry,0,0,ao,ao)){const e=Xp(i,_,k,r.vertical||m,n,x,b,t.overscaling,ao);for(const r of e)m&&Td(t,m.text,z,r)||P(i,r,h);}else if("line-center"===T){for(const t of e.geometry)if(t.length>1){const e=Kp(t,k,r.vertical||m,n,x,b);e&&P(t,e,h);}}else if("Polygon"===e.type)for(const t of Ac(e.geometry,0)){const e=pd(t,16);P(t[0],new Op(e.x,e.y,0,0,void 0),h);}else if("LineString"===e.type)for(const t of e.geometry)P(t,new Op(t[0].x,t[0].y,0,0,void 0),h);else if("Point"===e.type)for(const t of e.geometry)for(const e of t)P([e],new Op(e.x,e.y,0,0,void 0),h);}const _d=255,Ad=_d*Uh;function Sd(t,e,r,n,i,s,a,o,l,u,c,h,p,d,f,y,m){const g=function(t,e,r,n,i,s,a,o){const l=[];if(0===e.positionedLines.length)return l;const u=n.layout.get("text-rotate").evaluate(s,{})*Math.PI/180,c=function(t){const e=t[0],r=t[1],n=e*r;return n>0?[e,-r]:n<0?[-e,r]:0===e?[r,e]:[r,-e]}(r);let h=Math.abs(e.top-e.bottom);for(const t of e.positionedLines)h-=t.lineOffset;const p=e.positionedLines.length,d=h/p;let f=e.top-r[1];for(let t=0;tAd&&N(`${t.layerIds[0]}: Value for "text-size" is >= ${_d}. Reduce your "text-size".`)):"composite"===v.kind&&(b=[Uh*f.compositeTextSizes[0].evaluate(o,{},m),Uh*f.compositeTextSizes[1].evaluate(o,{},m)],(b[0]>Ad||b[1]>Ad)&&N(`${t.layerIds[0]}: Value for "text-size" is >= ${_d}. Reduce your "text-size".`)),t.addSymbols(t.text,g,b,l,a,o,c,e,r,u.lineStartIndex,u.lineLength,d,y,m);for(const e of h)p[e]=t.text.placedSymbolArray.length-1;return 4*g.length}function kd(t){for(const e in t)return t[e];return null}function Id(t,e,r,n,i,s,a,o,l,u){let c=a.top,h=a.bottom,p=a.left,d=a.right;const f=a.collisionPadding;if(f&&(p-=f[0],c-=f[1],d+=f[2],h+=f[3]),l){const t=new x(p,c),e=new x(d,c),r=new x(p,h),n=new x(d,h),i=w(l);let s=new x(0,0);u&&(s=new x(u[0],u[1])),t._rotateAround(i,s),e._rotateAround(i,s),r._rotateAround(i,s),n._rotateAround(i,s),p=Math.min(t.x,e.x,r.x,n.x),d=Math.max(t.x,e.x,r.x,n.x),c=Math.min(t.y,e.y,r.y,n.y),h=Math.max(t.y,e.y,r.y,n.y);}return t.emplaceBack(e.x,e.y,e.z,r.x,r.y,p,c,d,h,o,n,i,s),t.length-1}function Md(t){t.collisionPadding&&(t.top-=t.collisionPadding[1],t.bottom+=t.collisionPadding[3]);const e=t.bottom-t.top;return e>0?Math.max(10,e):null}function Td(t,e,r,n){const i=t.compareText;if(e in i){const t=i[e];for(let e=t.length-1;e>=0;e--)if(n.dist(t[e])v&&(b(t,u,n,i,o,l),b(u,r,o,l,s,a));}b(h,p,n,s,i,s),b(p,d,i,s,i,a),b(d,f,i,a,n,a),b(f,h,n,a,n,s),y-=v,m-=v,g+=v,x+=v;const w=1/Math.max(g-y,x-m);return {scale:w,x:y*w,y:m*w,x2:g*w,y2:x*w,projection:e}}const Ed=po(new Float32Array(16));class Cd{constructor(t){this.spec=t,this.name=t.name,this.wrap=!1,this.requiresDraping=!1,this.supportsWorldCopies=!1,this.supportsTerrain=!1,this.supportsFog=!1,this.supportsFreeCamera=!1,this.zAxisUnit="meters",this.isReprojectedInTileSpace=!0,this.unsupportedLayers=["custom"],this.center=[0,0],this.range=[3.5,7];}project(t,e){return {x:0,y:0,z:0}}unproject(t,e){return new Ol(0,0)}projectTilePoint(t,e,r){return {x:t,y:e,z:0}}locationPoint(t,e,r=!0){return t._coordinatePoint(t.locationCoordinate(e),r)}pixelsPerMeter(t,e){return Zl(1,t)*e}pixelSpaceConversion(t,e,r){return 1}farthestPixelDistance(t){return zd(t,t.pixelsPerMeter)}pointCoordinate(t,e,r,n){const i=t.horizonLineFromTop(!1),s=new x(e,Math.max(i,r));return t.rayIntersectionCoordinate(t.pointRayIntersection(s,n))}pointCoordinate3D(t,e,r){const n=new x(e,r);if(t.elevation)return t.elevation.pointCoordinate(n);{const e=this.pointCoordinate(t,n.x,n.y,0);return [e.x,e.y,e.z]}}isPointAboveHorizon(t,e){if(t.elevation)return !this.pointCoordinate3D(t,e.x,e.y);const r=t.horizonLineFromTop();return e.y0?e<-jd+r&&(e=-jd+r):e>jd-r&&(e=jd-r);const s=i/Math.pow(Od(e),n);let a=s*Math.sin(n*t),o=i-s*Math.cos(n*t);return a=.5*(a/Math.PI+.5),o=.5*(o/Math.PI+.5),{x:a,y:this.southernCenter?o:1-o,z:0}}unproject(t,e){t=(2*t-.5)*Math.PI,this.southernCenter&&(e=1-e),e=(2*(1-e)-.5)*Math.PI;const{n:r,f:n}=this,i=n-e,s=Math.sign(i),a=Math.sign(r)*Math.sqrt(t*t+i*i);let o=Math.atan2(t,Math.abs(i))*s;i*r<0&&(o-=Math.PI*Math.sign(t)*s);const l=M(_(o/r)+this.center[0],-180,180),u=M(_(2*Math.atan(Math.pow(n/a,1/r))-jd),-Hl,Hl);return new Ol(l,this.southernCenter?-u:u)}}class Nd extends Cd{constructor(t){super(t),this.wrap=!0,this.supportsWorldCopies=!0,this.supportsTerrain=!0,this.supportsFog=!0,this.supportsFreeCamera=!0,this.isReprojectedInTileSpace=!1,this.unsupportedLayers=[],this.range=null;}project(t,e){return {x:Nl(t),y:Gl(e),z:0}}unproject(t,e){const r=Kl(t),n=Xl(e);return new Ol(r,n)}}const Gd=w(Hl);class Zd extends Cd{project(t,e){const r=(e=w(e))*e,n=r*r;return {x:.5*((t=w(t))*(.8707-.131979*r+n*(n*(.003971*r-.001529*n)-.013791))/Math.PI+.5),y:1-.5*(e*(1.007226+r*(.015085+n*(.028874*r-.044475-.005916*n)))/Math.PI+1),z:0}}unproject(t,e){t=(2*t-.5)*Math.PI;let r=e=(2*(1-e)-1)*Math.PI,n=25,i=0,s=r*r;do{s=r*r;const t=s*s;i=(r*(1.007226+s*(.015085+t*(.028874*s-.044475-.005916*t)))-e)/(1.007226+s*(.045255+t*(.259866*s-.311325-.005916*11*t))),r=M(r-i,-Gd,Gd);}while(Math.abs(i)>1e-6&&--n>0);s=r*r;const a=M(_(t/(.8707+s*(s*(s*s*s*(.003971-.001529*s)-.013791)-.131979))),-180,180),o=_(r);return new Ol(a,o)}}const Kd=w(Hl);class Xd extends Cd{project(t,e){e=w(e),t=w(t);const r=Math.cos(e),n=2/Math.PI,i=Math.acos(r*Math.cos(t/2)),s=Math.sin(i)/i,a=.5*(t*n+2*r*Math.sin(t/2)/s)||0,o=.5*(e+Math.sin(e)/s)||0;return {x:.5*(a/Math.PI+.5),y:1-.5*(o/Math.PI+1),z:0}}unproject(t,e){let r=t=(2*t-.5)*Math.PI,n=e=(2*(1-e)-1)*Math.PI,i=25;const s=1e-6;let a=0,o=0;do{const i=Math.cos(n),s=Math.sin(n),l=2*s*i,u=s*s,c=i*i,h=Math.cos(r/2),p=Math.sin(r/2),d=2*h*p,f=p*p,y=1-c*h*h,m=y?1/y:0,g=y?Math.acos(i*h)*Math.sqrt(1/y):0,x=.5*(2*g*i*p+2*r/Math.PI)-t,v=.5*(g*s+n)-e,b=.5*m*(c*f+g*i*h*u)+1/Math.PI,w=m*(d*l/4-g*s*p),_=.125*m*(l*p-g*s*c*d),A=.5*m*(u*h+g*f*i)+.5,S=w*_-A*b;a=(v*w-x*A)/S,o=(x*_-v*b)/S,r=M(r-a,-Math.PI,Math.PI),n=M(n-o,-Kd,Kd);}while((Math.abs(a)>s||Math.abs(o)>s)&&--i>0);return new Ol(_(r),_(n))}}class Jd extends Cd{constructor(t){super(t),this.center=t.center||[0,0],this.parallels=t.parallels||[0,0],this.cosPhi=Math.max(.01,Math.cos(w(this.parallels[0]))),this.scale=1/(2*Math.max(Math.PI*this.cosPhi,1/this.cosPhi)),this.wrap=!0,this.supportsWorldCopies=!0;}project(t,e){const{scale:r,cosPhi:n}=this;return {x:w(t)*n*r+.5,y:-Math.sin(w(e))/n*r+.5,z:0}}unproject(t,e){const{scale:r,cosPhi:n}=this,i=-(e-.5)/r,s=M(_((t-.5)/r)/n,-180,180),a=Math.asin(M(i*n,-1,1)),o=M(_(a),-Hl,Hl);return new Ol(s,o)}}class Hd extends Nd{constructor(t){super(t),this.requiresDraping=!0,this.supportsWorldCopies=!1,this.supportsFog=!0,this.zAxisUnit="pixels",this.unsupportedLayers=["debug"],this.range=[3,5];}projectTilePoint(t,e,r){const n=Ml(t,e,r);return Fo(n,n,Bl(xl(r))),{x:n[0],y:n[1],z:n[2]}}locationPoint(t,e){const r=Il(e.lat,e.lng),n=Do([],r),i=t.elevation?t.elevation.getAtPointOrZero(t.locationCoordinate(e),t._centerAltitude):t._centerAltitude;Po(r,r,n,Zl(1,0)*ao*i);const s=po(new Float64Array(16));return yo(s,t.pixelMatrix,t.globeMatrix),Fo(r,r,s),new x(r[0],r[1])}pixelsPerMeter(t,e){return Zl(1,0)*e}pixelSpaceConversion(t,e,r){const n=Zl(1,t)*e,i=Er(Zl(1,45)*e,n,r);return this.pixelsPerMeter(t,e)/i}createTileMatrix(t,e,r){const n=El(xl(r.canonical));return yo(new Float64Array(16),t.globeMatrix,n)}createInversionMatrix(t,e){const{center:r}=t,n=Bl(xl(e));return vo(n,n,w(r.lng)),xo(n,n,w(r.lat)),go(n,n,[t._pixelsPerMercatorPixel,t._pixelsPerMercatorPixel,1]),Float32Array.from(n)}pointCoordinate(t,e,r,n){return yl(t,e,r,!0)||new Wl(0,0)}pointCoordinate3D(t,e,r){const n=this.pointCoordinate(t,e,r,0);return [n.x,n.y,n.z]}isPointAboveHorizon(t,e){return !yl(t,e.x,e.y,!1)}farthestPixelDistance(t){const e=function(t,e){const r=t.cameraToCenterDistance,n=t._centerAltitude*e,i=t._camera,s=t._camera.forward(),a=Mo([],Co([],s,-r),[0,0,n]),o=t.worldSize/(2*Math.PI),l=[0,0,-o],u=t.width/t.height,c=Math.tan(t.fovAboveCenter),h=Co([],i.up(),c),p=Co([],i.right(),c*u),d=Do([],Mo([],Mo([],s,h),p)),f=[];let y;if(new el(a,d).closestPointOnSphere(l,o,f)){const e=Mo([],f,l),r=$o([],e,a);y=Math.cos(t.fovAboveCenter)*ko(r);}else {const t=$o([],a,l),e=$o([],l,a);Do(e,e);const r=ko(t)-o;y=Math.sqrt(r*(r+2*o));const n=Math.acos(y/(o+r))-Math.acos(Vo(s,e));y*=Math.cos(n);}return 1.01*y}(t,this.pixelsPerMeter(t.center.lat,t.worldSize)),r=Pl(t.zoom);if(r>0){const n=zd(t,Zl(1,t.center.lat)*t.worldSize),i=t.worldSize/(2*Math.PI),s=Math.max(t.width,t.height)/t.worldSize*Math.PI;return Er(e,n+i*(1-Math.cos(s)),Math.pow(r,10))}return e}upVector(t,e,r){return Ml(e,r,t,1)}upVectorScale(t){return {metersToTile:fl(Tl(xl(t)))}}}function Yd(t){const e=t.parallels,r=!!e&&Math.abs(e[0]+e[1])<.01;switch(t.name){case"mercator":return new Nd(t);case"equirectangular":return new $d(t);case"naturalEarth":return new Zd(t);case"equalEarth":return new Ud(t);case"winkelTripel":return new Xd(t);case"albers":return r?new Jd(t):new Pd(t);case"lambertConformalConic":return r?new Jd(t):new qd(t);case"globe":return new Hd(t)}throw new Error(`Invalid projection name: ${t.name}`)}const Wd=Kc.types,Qd=[{name:"a_fade_opacity",components:1,type:"Uint8",offset:0}];function tf(t,e,r,n,i,s,a,o,l,u,c,h,p){const d=o?Math.min(Ad,Math.round(o[0])):0,f=o?Math.min(Ad,Math.round(o[1])):0;t.emplaceBack(e,r,Math.round(32*n),Math.round(32*i),s,a,(d<<1)+(l?1:0),f,16*u,16*c,256*h,256*p);}function ef(t,e,r,n,i,s,a){t.emplaceBack(e,r,n,i,s,a);}function rf(t,e,r,n,i){t.emplaceBack(e,r,n,i),t.emplaceBack(e,r,n,i),t.emplaceBack(e,r,n,i),t.emplaceBack(e,r,n,i);}function nf(t){for(const e of t.sections)if(ls(e.text))return !0;return !1}class sf{constructor(t){this.layoutVertexArray=new Xs,this.indexArray=new ra,this.programConfigurations=t,this.segments=new so,this.dynamicLayoutVertexArray=new Ns,this.opacityVertexArray=new Hs,this.placedSymbolArray=new fa,this.globeExtVertexArray=new Js;}isEmpty(){return 0===this.layoutVertexArray.length&&0===this.indexArray.length&&0===this.dynamicLayoutVertexArray.length&&0===this.opacityVertexArray.length}upload(t,e,r,n){this.isEmpty()||(r&&(this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,Eh.members),this.indexBuffer=t.createIndexBuffer(this.indexArray,e),this.dynamicLayoutVertexBuffer=t.createVertexBuffer(this.dynamicLayoutVertexArray,Ph.members,!0),this.opacityVertexBuffer=t.createVertexBuffer(this.opacityVertexArray,Qd,!0),this.globeExtVertexArray.length>0&&(this.globeExtVertexBuffer=t.createVertexBuffer(this.globeExtVertexArray,Ch.members,!0)),this.opacityVertexBuffer.itemSize=1),(r||n)&&this.programConfigurations.upload(t));}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.dynamicLayoutVertexBuffer.destroy(),this.opacityVertexBuffer.destroy(),this.globeExtVertexBuffer&&this.globeExtVertexBuffer.destroy());}}Ji(sf,"SymbolBuffers");class af{constructor(t,e,r){this.layoutVertexArray=new t,this.layoutAttributes=e,this.indexArray=new r,this.segments=new so,this.collisionVertexArray=new ta,this.collisionVertexArrayExt=new ea;}upload(t){this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,this.layoutAttributes),this.indexBuffer=t.createIndexBuffer(this.indexArray),this.collisionVertexBuffer=t.createVertexBuffer(this.collisionVertexArray,Dh.members,!0),this.collisionVertexBufferExt=t.createVertexBuffer(this.collisionVertexArrayExt,Vh.members,!0);}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.segments.destroy(),this.collisionVertexBuffer.destroy(),this.collisionVertexBufferExt.destroy());}}Ji(af,"CollisionBuffers");class of{constructor(t){this.collisionBoxArray=t.collisionBoxArray,this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map((t=>t.id)),this.index=t.index,this.pixelRatio=t.pixelRatio,this.sourceLayerIndex=t.sourceLayerIndex,this.hasPattern=!1,this.hasRTLText=!1,this.fullyClipped=!1,this.sortKeyRanges=[],this.collisionCircleArray=[],this.placementInvProjMatrix=po([]),this.placementViewportMatrix=po([]);const e=this.layers[0]._unevaluatedLayout._values;this.textSizeData=$h(this.zoom,e["text-size"]),this.iconSizeData=$h(this.zoom,e["icon-size"]);const r=this.layers[0].layout,n=r.get("symbol-sort-key"),i=r.get("symbol-z-order");this.canOverlap=r.get("text-allow-overlap")||r.get("icon-allow-overlap")||r.get("text-ignore-placement")||r.get("icon-ignore-placement"),this.sortFeaturesByKey="viewport-y"!==i&&void 0!==n.constantOr(1),this.sortFeaturesByY=("viewport-y"===i||"auto"===i&&!this.sortFeaturesByKey)&&this.canOverlap,this.writingModes=r.get("text-writing-mode").map((t=>Ip[t])),this.stateDependentLayerIds=this.layers.filter((t=>t.isStateDependent())).map((t=>t.id)),this.sourceID=t.sourceID,this.projection=t.projection;}createArrays(){this.text=new sf(new Ja(this.layers,this.zoom,(t=>/^text/.test(t)))),this.icon=new sf(new Ja(this.layers,this.zoom,(t=>/^icon/.test(t)))),this.glyphOffsetArray=new ga,this.lineVertexArray=new xa,this.symbolInstances=new ma;}calculateGlyphDependencies(t,e,r,n,i){for(let r=0;r0)&&("constant"!==o.value.kind||o.value.value.length>0),h="constant"!==u.value.kind||!!u.value.value||Object.keys(u.parameters).length>0,p=s.get("symbol-sort-key");if(this.features=[],!c&&!h)return;const d=e.iconDependencies,f=e.glyphDependencies,y=e.availableImages,m=new ws(this.zoom);for(const{feature:e,id:l,index:u,sourceLayerIndex:g}of t){const t=i._featureFilter.needGeometry,x=ou(e,t);if(!i._featureFilter.filter(m,x,r))continue;if(t||(x.geometry=au(e,r,n)),a&&1!==e.type&&r.z<=5){const t=x.geometry,e=.98078528056,n=(t,n)=>Vo(Ml(t.x,t.y,r,1),Ml(n.x,n.y,r,1))=0;for(const r of v.sections)if(r.image)d[r.image.name]=!0;else {const n=es(v.toString()),i=r.fontStack||t,s=f[i]=f[i]||{};this.calculateGlyphDependencies(r.text,s,e,this.allowVerticalPlacement,n);}}}"line"===s.get("symbol-placement")&&(this.features=function(t){const e={},r={},n=[];let i=0;function s(e){n.push(t[e]),i++;}function a(t,e,i){const s=r[t];return delete r[t],r[e]=s,n[s].geometry[0].pop(),n[s].geometry[0]=n[s].geometry[0].concat(i[0]),s}function o(t,r,i){const s=e[r];return delete e[r],e[t]=s,n[s].geometry[0].shift(),n[s].geometry[0]=i[0].concat(n[s].geometry[0]),s}function l(t,e,r){const n=r?e[0][e[0].length-1]:e[0][0];return `${t}:${n.x}:${n.y}`}for(let u=0;ut.geometry))}(this.features)),this.sortFeaturesByKey&&this.features.sort(((t,e)=>t.sortKey-e.sortKey));}update(t,e,r,n){this.stateDependentLayers.length&&(this.text.programConfigurations.updatePaintArrays(t,e,this.layers,r,n),this.icon.programConfigurations.updatePaintArrays(t,e,this.layers,r,n));}isEmpty(){return 0===this.symbolInstances.length&&!this.hasRTLText}uploadPending(){return !this.uploaded||this.text.programConfigurations.needsUpload||this.icon.programConfigurations.needsUpload}upload(t){!this.uploaded&&this.hasDebugData()&&(this.textCollisionBox.upload(t),this.iconCollisionBox.upload(t)),this.text.upload(t,this.sortFeaturesByY,!this.uploaded,this.text.programConfigurations.needsUpload),this.icon.upload(t,this.sortFeaturesByY,!this.uploaded,this.icon.programConfigurations.needsUpload),this.uploaded=!0;}destroyDebugData(){this.textCollisionBox.destroy(),this.iconCollisionBox.destroy();}getProjection(){return this.projectionInstance||(this.projectionInstance=Yd(this.projection)),this.projectionInstance}destroy(){this.text.destroy(),this.icon.destroy(),this.hasDebugData()&&this.destroyDebugData();}addToLineVertexArray(t,e){const r=this.lineVertexArray.length;if(void 0!==t.segment)for(const{x:t,y:r}of e)this.lineVertexArray.emplaceBack(t,r);return {lineStartIndex:r,lineLength:this.lineVertexArray.length-r}}addSymbols(t,e,r,n,i,s,a,o,l,u,c,h,p,d){const f=t.indexArray,y=t.layoutVertexArray,m=t.globeExtVertexArray,g=t.segments.prepareSegment(4*e.length,y,f,this.canOverlap?s.sortKey:void 0),x=this.glyphOffsetArray.length,v=g.vertexLength,b=this.allowVerticalPlacement&&a===Ip.vertical?Math.PI/2:0,w=s.text&&s.text.sections;for(let n=0;n=0?e.rightJustifiedTextSymbolIndex:e.centerJustifiedTextSymbolIndex>=0?e.centerJustifiedTextSymbolIndex:e.leftJustifiedTextSymbolIndex>=0?e.leftJustifiedTextSymbolIndex:e.verticalPlacedTextSymbolIndex>=0?e.verticalPlacedTextSymbolIndex:n),s=jh(this.textSizeData,t,i)/Rh;return this.tilePixelRatio*s}getSymbolInstanceIconSize(t,e,r){const n=this.icon.placedSymbolArray.get(r),i=jh(this.iconSizeData,t,n);return this.tilePixelRatio*i}_commitDebugCollisionVertexUpdate(t,e,r){t.emplaceBack(e,-r,-r),t.emplaceBack(e,r,-r),t.emplaceBack(e,r,r),t.emplaceBack(e,-r,r);}_updateTextDebugCollisionBoxes(t,e,r,n,i,s){for(let a=n;a0}hasIconData(){return this.icon.segments.get().length>0}hasDebugData(){return this.textCollisionBox&&this.iconCollisionBox}hasTextCollisionBoxData(){return this.hasDebugData()&&this.textCollisionBox.segments.get().length>0}hasIconCollisionBoxData(){return this.hasDebugData()&&this.iconCollisionBox.segments.get().length>0}addIndicesForPlacedSymbol(t,e){const r=t.placedSymbolArray.get(e),n=r.vertexStartIndex+4*r.numGlyphs;for(let e=r.vertexStartIndex;en[t]-n[e]||i[e]-i[t])),s}addToSortKeyRanges(t,e){const r=this.sortKeyRanges[this.sortKeyRanges.length-1];r&&r.sortKey===e?r.symbolInstanceEnd=t+1:this.sortKeyRanges.push({sortKey:e,symbolInstanceStart:t,symbolInstanceEnd:t+1});}sortFeatures(t){if(this.sortFeaturesByY&&this.sortedAngle!==t&&!(this.text.segments.get().length>1||this.icon.segments.get().length>1)){this.symbolInstanceIndexes=this.getSortedSymbolIndexes(t),this.sortedAngle=t,this.text.indexArray.clear(),this.icon.indexArray.clear(),this.featureSortOrder=[];for(const t of this.symbolInstanceIndexes){const e=this.symbolInstances.get(t);this.featureSortOrder.push(e.featureIndex);const{rightJustifiedTextSymbolIndex:r,centerJustifiedTextSymbolIndex:n,leftJustifiedTextSymbolIndex:i,verticalPlacedTextSymbolIndex:s,placedIconSymbolIndex:a,verticalPlacedIconSymbolIndex:o}=e;r>=0&&this.addIndicesForPlacedSymbol(this.text,r),n>=0&&n!==r&&this.addIndicesForPlacedSymbol(this.text,n),i>=0&&i!==n&&i!==r&&this.addIndicesForPlacedSymbol(this.text,i),s>=0&&this.addIndicesForPlacedSymbol(this.text,s),a>=0&&this.addIndicesForPlacedSymbol(this.icon,a),o>=0&&this.addIndicesForPlacedSymbol(this.icon,o);}this.text.indexBuffer&&this.text.indexBuffer.updateData(this.text.indexArray),this.icon.indexBuffer&&this.icon.indexBuffer.updateData(this.icon.indexArray);}}}Ji(of,"SymbolBucket",{omit:["layers","collisionBoxArray","features","compareText"]}),of.MAX_GLYPHS=65535,of.addDynamicAttributes=rf;const lf=new Ps({"symbol-placement":new Bs(te.layout_symbol["symbol-placement"]),"symbol-spacing":new Bs(te.layout_symbol["symbol-spacing"]),"symbol-avoid-edges":new Bs(te.layout_symbol["symbol-avoid-edges"]),"symbol-sort-key":new Es(te.layout_symbol["symbol-sort-key"]),"symbol-z-order":new Bs(te.layout_symbol["symbol-z-order"]),"icon-allow-overlap":new Bs(te.layout_symbol["icon-allow-overlap"]),"icon-ignore-placement":new Bs(te.layout_symbol["icon-ignore-placement"]),"icon-optional":new Bs(te.layout_symbol["icon-optional"]),"icon-rotation-alignment":new Bs(te.layout_symbol["icon-rotation-alignment"]),"icon-size":new Es(te.layout_symbol["icon-size"]),"icon-text-fit":new Bs(te.layout_symbol["icon-text-fit"]),"icon-text-fit-padding":new Bs(te.layout_symbol["icon-text-fit-padding"]),"icon-image":new Es(te.layout_symbol["icon-image"]),"icon-rotate":new Es(te.layout_symbol["icon-rotate"]),"icon-padding":new Bs(te.layout_symbol["icon-padding"]),"icon-keep-upright":new Bs(te.layout_symbol["icon-keep-upright"]),"icon-offset":new Es(te.layout_symbol["icon-offset"]),"icon-anchor":new Es(te.layout_symbol["icon-anchor"]),"icon-pitch-alignment":new Bs(te.layout_symbol["icon-pitch-alignment"]),"text-pitch-alignment":new Bs(te.layout_symbol["text-pitch-alignment"]),"text-rotation-alignment":new Bs(te.layout_symbol["text-rotation-alignment"]),"text-field":new Es(te.layout_symbol["text-field"]),"text-font":new Es(te.layout_symbol["text-font"]),"text-size":new Es(te.layout_symbol["text-size"]),"text-max-width":new Es(te.layout_symbol["text-max-width"]),"text-line-height":new Es(te.layout_symbol["text-line-height"]),"text-letter-spacing":new Es(te.layout_symbol["text-letter-spacing"]),"text-justify":new Es(te.layout_symbol["text-justify"]),"text-radial-offset":new Es(te.layout_symbol["text-radial-offset"]),"text-variable-anchor":new Bs(te.layout_symbol["text-variable-anchor"]),"text-anchor":new Es(te.layout_symbol["text-anchor"]),"text-max-angle":new Bs(te.layout_symbol["text-max-angle"]),"text-writing-mode":new Bs(te.layout_symbol["text-writing-mode"]),"text-rotate":new Es(te.layout_symbol["text-rotate"]),"text-padding":new Bs(te.layout_symbol["text-padding"]),"text-keep-upright":new Bs(te.layout_symbol["text-keep-upright"]),"text-transform":new Es(te.layout_symbol["text-transform"]),"text-offset":new Es(te.layout_symbol["text-offset"]),"text-allow-overlap":new Bs(te.layout_symbol["text-allow-overlap"]),"text-ignore-placement":new Bs(te.layout_symbol["text-ignore-placement"]),"text-optional":new Bs(te.layout_symbol["text-optional"])});var uf={paint:new Ps({"icon-opacity":new Es(te.paint_symbol["icon-opacity"]),"icon-color":new Es(te.paint_symbol["icon-color"]),"icon-halo-color":new Es(te.paint_symbol["icon-halo-color"]),"icon-halo-width":new Es(te.paint_symbol["icon-halo-width"]),"icon-halo-blur":new Es(te.paint_symbol["icon-halo-blur"]),"icon-translate":new Bs(te.paint_symbol["icon-translate"]),"icon-translate-anchor":new Bs(te.paint_symbol["icon-translate-anchor"]),"text-opacity":new Es(te.paint_symbol["text-opacity"]),"text-color":new Es(te.paint_symbol["text-color"],{runtimeType:pe,getOverride:t=>t.textColor,hasOverride:t=>!!t.textColor}),"text-halo-color":new Es(te.paint_symbol["text-halo-color"]),"text-halo-width":new Es(te.paint_symbol["text-halo-width"]),"text-halo-blur":new Es(te.paint_symbol["text-halo-blur"]),"text-translate":new Bs(te.paint_symbol["text-translate"]),"text-translate-anchor":new Bs(te.paint_symbol["text-translate-anchor"])}),layout:lf};class cf{constructor(t){this.type=t.property.overrides?t.property.overrides.runtimeType:le,this.defaultValue=t;}evaluate(t){if(t.formattedSection){const e=this.defaultValue.property.overrides;if(e&&e.hasOverride(t.formattedSection))return e.getOverride(t.formattedSection)}return t.feature&&t.featureState?this.defaultValue.evaluate(t.feature,t.featureState):this.defaultValue.property.specification.default}eachChild(t){this.defaultValue.isConstant()||t(this.defaultValue.value._styleExpression.expression);}outputDefined(){return !1}serialize(){return null}}Ji(cf,"FormatSectionOverride",{omit:["defaultValue"]});class hf extends ro{constructor(t){super(t,uf);}recalculate(t,e){super.recalculate(t,e),"auto"===this.layout.get("icon-rotation-alignment")&&(this.layout._values["icon-rotation-alignment"]="point"!==this.layout.get("symbol-placement")?"map":"viewport"),"auto"===this.layout.get("text-rotation-alignment")&&(this.layout._values["text-rotation-alignment"]="point"!==this.layout.get("symbol-placement")?"map":"viewport"),"auto"===this.layout.get("text-pitch-alignment")&&(this.layout._values["text-pitch-alignment"]=this.layout.get("text-rotation-alignment")),"auto"===this.layout.get("icon-pitch-alignment")&&(this.layout._values["icon-pitch-alignment"]=this.layout.get("icon-rotation-alignment"));const r=this.layout.get("text-writing-mode");if(r){const t=[];for(const e of r)t.indexOf(e)<0&&t.push(e);this.layout._values["text-writing-mode"]=t;}else this.layout._values["text-writing-mode"]="point"===this.layout.get("symbol-placement")?["horizontal"]:["horizontal","vertical"];this._setPaintOverrides();}getValueAndResolveTokens(t,e,r,n){const i=this.layout.get(t).evaluate(e,{},r,n),s=this._unevaluatedLayout._values[t];return s.isDataDriven()||Jn(s.value)||!i?i:function(t,e){return e.replace(/{([^{}]+)}/g,((e,r)=>r in t?String(t[r]):""))}(e.properties,i)}createBucket(t){return new of(t)}queryRadius(){return 0}queryIntersectsFeature(){return !1}_setPaintOverrides(){for(const t of uf.paint.overridableProperties){if(!hf.hasPaintOverride(this.layout,t))continue;const e=this.paint.get(t),r=new cf(e),n=new Xn(r,e.property.specification);let i=null;i="constant"===e.value.kind||"source"===e.value.kind?new Yn("source",n):new Wn("composite",n,e.value.zoomStops,e.value._interpolationType),this.paint._values[t]=new Ts(e.property,i,e.parameters);}}_handleOverridablePaintPropertyUpdate(t,e,r){return !(!this.layout||e.isDataDriven()||r.isDataDriven())&&hf.hasPaintOverride(this.layout,t)}static hasPaintOverride(t,e){const r=t.get("text-field"),n=uf.paint.properties[e];let i=!1;const s=t=>{for(const e of t)if(n.overrides&&n.overrides.hasOverride(e))return void(i=!0)};if("constant"===r.value.kind&&r.value.value instanceof De)s(r.value.value.sections);else if("source"===r.value.kind){const t=e=>{i||(e instanceof je&&Re(e.value)===me?s(e.value.sections):e instanceof Ze?s(e.sections):e.eachChild(t));},e=r.value;e._styleExpression&&t(e._styleExpression.expression);}return i}getProgramConfiguration(t){return new Xa(this,t)}}var pf={paint:new Ps({"background-color":new Bs(te.paint_background["background-color"]),"background-pattern":new Bs(te.paint_background["background-pattern"]),"background-opacity":new Bs(te.paint_background["background-opacity"])})},df={paint:new Ps({"raster-opacity":new Bs(te.paint_raster["raster-opacity"]),"raster-hue-rotate":new Bs(te.paint_raster["raster-hue-rotate"]),"raster-brightness-min":new Bs(te.paint_raster["raster-brightness-min"]),"raster-brightness-max":new Bs(te.paint_raster["raster-brightness-max"]),"raster-saturation":new Bs(te.paint_raster["raster-saturation"]),"raster-contrast":new Bs(te.paint_raster["raster-contrast"]),"raster-resampling":new Bs(te.paint_raster["raster-resampling"]),"raster-fade-duration":new Bs(te.paint_raster["raster-fade-duration"])})};class ff extends ro{constructor(t){super(t,{}),this.implementation=t;}is3D(){return "3d"===this.implementation.renderingMode}hasOffscreenPass(){return void 0!==this.implementation.prerender}isLayerDraped(){return void 0!==this.implementation.renderToTile}shouldRedrape(){return !!this.implementation.shouldRerenderTiles&&this.implementation.shouldRerenderTiles()}recalculate(){}updateTransitions(){}hasTransition(){return !1}serialize(){}onAdd(t){this.implementation.onAdd&&this.implementation.onAdd(t,t.painter.context.gl);}onRemove(t){this.implementation.onRemove&&this.implementation.onRemove(t,t.painter.context.gl);}}var yf={paint:new Ps({"sky-type":new Bs(te.paint_sky["sky-type"]),"sky-atmosphere-sun":new Bs(te.paint_sky["sky-atmosphere-sun"]),"sky-atmosphere-sun-intensity":new Bs(te.paint_sky["sky-atmosphere-sun-intensity"]),"sky-gradient-center":new Bs(te.paint_sky["sky-gradient-center"]),"sky-gradient-radius":new Bs(te.paint_sky["sky-gradient-radius"]),"sky-gradient":new Cs(te.paint_sky["sky-gradient"]),"sky-atmosphere-halo-color":new Bs(te.paint_sky["sky-atmosphere-halo-color"]),"sky-atmosphere-color":new Bs(te.paint_sky["sky-atmosphere-color"]),"sky-opacity":new Bs(te.paint_sky["sky-opacity"])})};function mf(t,e,r){const n=[0,0,1],i=Ko([]);return Jo(i,i,r?-w(t)+Math.PI:w(t)),Xo(i,i,-w(e)),Ro(n,n,i),Do(n,n)}const gf={circle:class extends ro{constructor(t){super(t,Tu);}createBucket(t){return new cu(t)}queryRadius(t){const e=t;return Au("circle-radius",this,e)+Au("circle-stroke-width",this,e)+Su(this.paint.get("circle-translate"))}queryIntersectsFeature(t,e,r,n,i,s,a,o){const l=Iu(this.paint.get("circle-translate"),this.paint.get("circle-translate-anchor"),s.angle,t.pixelToTileUnitsFactor),u=this.paint.get("circle-radius").evaluate(e,r)+this.paint.get("circle-stroke-width").evaluate(e,r);return zu(t,n,s,a,o,"map"===this.paint.get("circle-pitch-alignment"),"map"===this.paint.get("circle-pitch-scale"),l,u)}getProgramIds(){return ["circle"]}getProgramConfiguration(t){return new Xa(this,t)}},heatmap:class extends ro{createBucket(t){return new Du(t)}constructor(t){super(t,$u),this._updateColorRamp();}_handleSpecialPaintPropertyUpdate(t){"heatmap-color"===t&&this._updateColorRamp();}_updateColorRamp(){this.colorRamp=ju({expression:this._transitionablePaint._values["heatmap-color"].value.expression,evaluationKey:"heatmapDensity",image:this.colorRamp}),this.colorRampTexture=null;}resize(){this.heatmapFbo&&(this.heatmapFbo.destroy(),this.heatmapFbo=null);}queryRadius(t){return Au("heatmap-radius",this,t)}queryIntersectsFeature(t,e,r,n,i,s,a,o){const l=this.paint.get("heatmap-radius").evaluate(e,r);return zu(t,n,s,a,o,!0,!0,new x(0,0),l)}hasOffscreenPass(){return 0!==this.paint.get("heatmap-opacity")&&"none"!==this.visibility}getProgramIds(){return ["heatmap","heatmapTexture"]}getProgramConfiguration(t){return new Xa(this,t)}},hillshade:class extends ro{constructor(t){super(t,Ou);}hasOffscreenPass(){return 0!==this.paint.get("hillshade-exaggeration")&&"none"!==this.visibility}getProgramIds(){return ["hillshade","hillshadePrepare"]}},fill:class extends ro{constructor(t){super(t,zc);}getProgramIds(){const t=this.paint.get("fill-pattern"),e=t&&t.constantOr(1),r=[e?"fillPattern":"fill"];return this.paint.get("fill-antialias")&&r.push(e&&!this.getPaintProperty("fill-outline-color")?"fillOutlinePattern":"fillOutline"),r}getProgramConfiguration(t){return new Xa(this,t)}recalculate(t,e){super.recalculate(t,e);const r=this.paint._values["fill-outline-color"];"constant"===r.value.kind&&void 0===r.value.value&&(this.paint._values["fill-outline-color"]=this.paint._values["fill-color"]);}createBucket(t){return new Mc(t)}queryRadius(){return Su(this.paint.get("fill-translate"))}queryIntersectsFeature(t,e,r,n,i,s){return !t.queryGeometry.isAboveHorizon&&du(ku(t.tilespaceGeometry,this.paint.get("fill-translate"),this.paint.get("fill-translate-anchor"),s.angle,t.pixelToTileUnitsFactor),n)}isTileClipped(){return !0}},"fill-extrusion":class extends ro{constructor(t){super(t,ch);}createBucket(t){return new th(t)}queryRadius(){return Su(this.paint.get("fill-extrusion-translate"))}is3D(){return !0}getProgramIds(){return [this.paint.get("fill-extrusion-pattern").constantOr(1)?"fillExtrusionPattern":"fillExtrusion"]}getProgramConfiguration(t){return new Xa(this,t)}queryIntersectsFeature(t,e,r,n,i,s,a,o,l){const u=Iu(this.paint.get("fill-extrusion-translate"),this.paint.get("fill-extrusion-translate-anchor"),s.angle,t.pixelToTileUnitsFactor),c=this.paint.get("fill-extrusion-height").evaluate(e,r),h=this.paint.get("fill-extrusion-base").evaluate(e,r),p=[0,0],d=o&&s.elevation,f=s.elevation?s.elevation.exaggeration():1,y=t.tile.getBucket(this);if(d&&y instanceof th){const t=y.centroidVertexArray,e=l+1;et.polygon)).flat());const m=d?o:null,[g,v]=function(t,e,r,n,i,s,a,o,l,u,c){return "globe"===t.projection.name?function(t,e,r,n,i,s,a,o,l,u,c){const h=[],p=[],d=t.projection.upVectorScale(c,t.center.lat,t.worldSize).metersToTile,f=[0,0,0,1],y=[0,0,0,1],m=(t,e,r,n)=>{t[0]=e,t[1]=r,t[2]=n,t[3]=1;},g=oh();r>0&&(r+=g),n+=g;for(const g of e){const e=[],x=[];for(const h of g){const p=h.x+i.x,g=h.y+i.y,v=t.projection.projectTilePoint(p,g,c),b=t.projection.upVector(c,h.x,h.y);let w=r,_=n;if(a){const t=vh(p,g,r,n,a,o,l,u);w+=t.base,_+=t.top;}0!==r?m(f,v.x+b[0]*d*w,v.y+b[1]*d*w,v.z+b[2]*d*w):m(f,v.x,v.y,v.z),m(y,v.x+b[0]*d*_,v.y+b[1]*d*_,v.z+b[2]*d*_),Fo(f,f,s),Fo(y,y,s),e.push(new mh(f[0],f[1],f[2])),x.push(new mh(y[0],y[1],y[2]));}h.push(e),p.push(x);}return [h,p]}(t,e,r,n,i,s,a,o,l,u,c):a?function(t,e,r,n,i,s,a,o,l){const u=[],c=[],h=[0,0,0,1];for(const p of t){const t=[],d=[];for(const u of p){const c=u.x+n.x,p=u.y+n.y,f=vh(c,p,e,r,s,a,o,l);h[0]=c,h[1]=p,h[2]=f.base,h[3]=1,Go(h,h,i),h[3]=Math.max(h[3],1e-5);const y=new mh(h[0]/h[3],h[1]/h[3],h[2]/h[3]);h[0]=c,h[1]=p,h[2]=f.top,h[3]=1,Go(h,h,i),h[3]=Math.max(h[3],1e-5);const m=new mh(h[0]/h[3],h[1]/h[3],h[2]/h[3]);t.push(y),d.push(m);}u.push(t),c.push(d);}return [u,c]}(e,r,n,i,s,a,o,l,u):function(t,e,r,n,i){const s=[],a=[],o=i[8]*e,l=i[9]*e,u=i[10]*e,c=i[11]*e,h=i[8]*r,p=i[9]*r,d=i[10]*r,f=i[11]*r;for(const e of t){const t=[],r=[];for(const s of e){const e=s.x+n.x,a=s.y+n.y,y=i[0]*e+i[4]*a+i[12],m=i[1]*e+i[5]*a+i[13],g=i[2]*e+i[6]*a+i[14],x=i[3]*e+i[7]*a+i[15],v=y+o,b=m+l,w=g+u,_=Math.max(x+c,1e-5),A=y+h,S=m+p,k=g+d,I=Math.max(x+f,1e-5);t.push(new mh(v/_,b/_,w/_)),r.push(new mh(A/I,S/I,k/I));}s.push(t),a.push(r);}return [s,a]}(e,r,n,i,s)}(s,n,h,c,u,a,m,p,f,s.center.lat,t.tileID.canonical),b=t.queryGeometry;return function(t,e,r){let n=1/0;du(r,e)&&(n=xh(r,e[0]));for(let i=0;i=3)for(let e=0;e{this._triggered=!1,this._callback();});}trigger(){this._triggered||(this._triggered=!0,this._channel?this._channel.port1.postMessage(!0):setTimeout((()=>{this._triggered=!1,this._callback();}),0));}remove(){this._channel=void 0,this._callback=()=>{};}}class bf{constructor(){this.tasks={},this.taskQueue=[],R(["process"],this),this.invoker=new vf(this.process),this.nextId=0;}add(t,e){const r=this.nextId++,n=function({type:t,isSymbolTile:e,zoom:r}){return r=r||0,"message"===t?0:"maybePrepare"!==t||e?"parseTile"!==t||e?"parseTile"===t&&e?300-r:"maybePrepare"===t&&e?400-r:500:200-r:100-r}(e);if(0===n){K();try{t();}finally{}return {cancel:()=>{}}}return this.tasks[r]={fn:t,metadata:e,priority:n,id:r},this.taskQueue.push(r),this.invoker.trigger(),{cancel:()=>{delete this.tasks[r];}}}process(){K();try{if(this.taskQueue=this.taskQueue.filter((t=>!!this.tasks[t])),!this.taskQueue.length)return;const t=this.pick();if(null===t)return;const e=this.tasks[t];if(delete this.tasks[t],this.taskQueue.length&&this.invoker.trigger(),!e)return;e.fn();}finally{}}pick(){let t=null,e=1/0;for(let r=0;r>=1)>1;){const t=r+i>>1,l=n+s>>1;1&e?(i=r,s=n,r=a,n=o):(r=i,n=s,i=a,s=o),a=t,o=l;}const l=4*t;If[l+0]=r,If[l+1]=n,If[l+2]=i,If[l+3]=s;}const Mf=new Uint16Array(2178),Tf=new Uint8Array(1089),zf=new Uint16Array(1089);function Bf(t){return 0===t?-.03125:32===t?.03125:0}var Ef=Rs([{name:"a_pos",type:"Int16",components:2},{name:"a_texture_pos",type:"Int16",components:2}]);const Cf={type:2,extent:ao,loadGeometry:()=>[[new x(0,0),new x(ao+1,0),new x(ao+1,ao+1),new x(0,ao+1),new x(0,0)]]};class Pf{constructor(t,e,r,n,i){this.tileID=t,this.uid=D(),this.uses=0,this.tileSize=e,this.tileZoom=r,this.buckets={},this.expirationTime=null,this.queryPadding=0,this.hasSymbolBuckets=!1,this.hasRTLText=!1,this.dependencies={},this.isRaster=i,this.expiredRequestCount=0,this.state="loading",n&&n.transform&&(this.projection=n.transform.projection);}registerFadeDuration(t){const e=t+this.timeAdded;ee.getLayer(t))).filter(Boolean);if(0!==t.length){n.layers=t,n.stateDependentLayerIds&&(n.stateDependentLayers=n.stateDependentLayerIds.map((e=>t.filter((t=>t.id===e))[0])));for(const e of t)r[e.id]=n;}}return r}(t.buckets,e.style),this.hasSymbolBuckets=!1;for(const t in this.buckets){const e=this.buckets[t];if(e instanceof of){if(this.hasSymbolBuckets=!0,!r)break;e.justReloaded=!0;}}if(this.hasRTLText=!1,this.hasSymbolBuckets)for(const t in this.buckets){const e=this.buckets[t];if(e instanceof of&&e.hasRTLText){this.hasRTLText=!0,bs.isLoading()||bs.isLoaded()||"deferred"!==xs()||vs();break}}this.queryPadding=0;for(const t in this.buckets){const r=this.buckets[t];this.queryPadding=Math.max(this.queryPadding,e.style.getLayer(t).queryRadius(r));}t.imageAtlas&&(this.imageAtlas=t.imageAtlas),t.glyphAtlasImage&&(this.glyphAtlasImage=t.glyphAtlasImage),t.lineAtlas&&(this.lineAtlas=t.lineAtlas);}else this.collisionBoxArray=new pa;}unloadVectorData(){if(this.hasData()){for(const t in this.buckets)this.buckets[t].destroy();this.buckets={},this.imageAtlas&&(this.imageAtlas=null),this.lineAtlas&&(this.lineAtlas=null),this.imageAtlasTexture&&this.imageAtlasTexture.destroy(),this.glyphAtlasTexture&&this.glyphAtlasTexture.destroy(),this.lineAtlasTexture&&this.lineAtlasTexture.destroy(),this._tileBoundsBuffer&&(this._tileBoundsBuffer.destroy(),this._tileBoundsIndexBuffer.destroy(),this._tileBoundsSegments.destroy(),this._tileBoundsBuffer=null),this._tileDebugBuffer&&(this._tileDebugBuffer.destroy(),this._tileDebugSegments.destroy(),this._tileDebugBuffer=null),this._tileDebugIndexBuffer&&(this._tileDebugIndexBuffer.destroy(),this._tileDebugIndexBuffer=null),this._globeTileDebugBorderBuffer&&(this._globeTileDebugBorderBuffer.destroy(),this._globeTileDebugBorderBuffer=null),this._tileDebugTextBuffer&&(this._tileDebugTextBuffer.destroy(),this._tileDebugTextSegments.destroy(),this._tileDebugTextIndexBuffer.destroy(),this._tileDebugTextBuffer=null),this._globeTileDebugTextBuffer&&(this._globeTileDebugTextBuffer.destroy(),this._globeTileDebugTextBuffer=null),this.latestFeatureIndex=null,this.state="unloaded";}}getBucket(t){return this.buckets[t.id]}upload(t){for(const e in this.buckets){const r=this.buckets[e];r.uploadPending()&&r.upload(t);}const e=t.gl;this.imageAtlas&&!this.imageAtlas.uploaded&&(this.imageAtlasTexture=new xf(t,this.imageAtlas.image,e.RGBA),this.imageAtlas.uploaded=!0),this.glyphAtlasImage&&(this.glyphAtlasTexture=new xf(t,this.glyphAtlasImage,e.ALPHA),this.glyphAtlasImage=null),this.lineAtlas&&!this.lineAtlas.uploaded&&(this.lineAtlasTexture=new xf(t,this.lineAtlas.image,e.ALPHA),this.lineAtlas.uploaded=!0);}prepare(t){this.imageAtlas&&this.imageAtlas.patchUpdatedImages(t,this.imageAtlasTexture);}queryRenderedFeatures(t,e,r,n,i,s,a,o){return this.latestFeatureIndex&&this.latestFeatureIndex.rawTileData?this.latestFeatureIndex.query({tileResult:n,pixelPosMatrix:a,transform:s,params:i,tileTransform:this.tileTransform},t,e,r):{}}querySourceFeatures(t,e){const r=this.latestFeatureIndex;if(!r||!r.rawTileData)return;const n=r.loadVTLayers(),i=e?e.sourceLayer:"",s=n._geojsonTileLayer||n[i];if(!s)return;const a=hi(e&&e.filter),{z:o,x:l,y:u}=this.tileID.canonical,c={z:o,x:l,y:u};for(let e=0;et)r=!1;else if(e)if(this.expirationTime=0;t--){const e=4*t,r=If[e+0],n=If[e+1],i=If[e+2],s=If[e+3],a=r+i>>1,o=n+s>>1,l=a+o-n,u=o+r-a,c=n*kf+r,h=s*kf+i,p=o*kf+a,d=Math.hypot((Mf[2*c+0]+Mf[2*h+0])/2-Mf[2*p+0],(Mf[2*c+1]+Mf[2*h+1])/2-Mf[2*p+1])>=16;Tf[p]=Tf[p]||(d?1:0),t<1022&&(Tf[p]=Tf[p]||Tf[(n+u>>1)*kf+(r+l>>1)]||Tf[(s+u>>1)*kf+(i+l>>1)]);}const i=new Os,s=new ra;let a=0;function o(t,e){const r=e*kf+t;return 0===zf[r]&&(i.emplaceBack(Mf[2*r+0],Mf[2*r+1],t*ao/Sf,e*ao/Sf),zf[r]=++a),zf[r]-1}function l(t,e,r,n,i,a){const u=t+r>>1,c=e+n>>1;if(Math.abs(t-i)+Math.abs(e-a)>1&&Tf[c*kf+u])l(i,a,t,e,u,c),l(r,n,i,a,u,c);else {const l=o(t,e),u=o(r,n),c=o(i,a);s.emplaceBack(l,u,c);}}return l(0,0,Sf,Sf,Sf,0),l(Sf,Sf,0,0,0,Sf),{vertices:i,indices:s}}(this.tileID.canonical,e);n=t.vertices,i=t.indices;}else {n=new Os,i=new ra;for(const{x:t,y:e}of r)n.emplaceBack(t,e,0,0);const t=xc(n.int16,void 0,4);for(let e=0;e0&&(a=fo(new Float64Array(16),e.globeMatrix)),this._makeGlobeTileDebugBorderBuffer(t,n,e,i,a,s),this._makeGlobeTileDebugTextBuffer(t,n,e,i,a,s);}_globePoint(t,e,r,n,i,s,a){let o=Ml(t,e,r);if(s){const i=1<.5?h=-1:c<-.5&&(h=1);let p=(t/ao+r.x)/i+h,d=(e/ao+r.y)/i;p=(p-l)*n._pixelsPerMercatorPixel+l,d=(d-u)*n._pixelsPerMercatorPixel+u;const f=[p*n.worldSize,d*n.worldSize,0];Fo(f,f,s),o=vl(o,f,a);}return Fo(o,o,i)}_makeGlobeTileDebugBorderBuffer(t,e,r,n,i,s){const a=new $s,o=new ua,l=new js,u=(t,u,c,h,p)=>{const d=(c-t)/(p-1),f=(h-u)/(p-1),y=a.length;for(let c=0;cc*t+e;for(let t=0;te[a])return null}else {const o=1/n[a];let l=(t[a]-r[a])*o,u=(e[a]-r[a])*o;if(l>u){const t=l;l=u,u=t;}if(l>i&&(i=l),us)return null}return i}function Ff(t,e,r,n,i,s,a,o,l,u,c){const h=n-t,p=i-e,d=s-r,f=a-t,y=o-e,m=l-r,g=c[1]*m-c[2]*y,x=c[2]*f-c[0]*m,v=c[0]*y-c[1]*f,b=h*g+p*x+d*v;if(Math.abs(b)<1e-15)return null;const w=1/b,_=u[0]-t,A=u[1]-e,S=u[2]-r,k=(_*g+A*x+S*v)*w;if(k<0||k>1)return null;const I=A*d-S*p,M=S*h-_*d,T=_*p-A*h,z=(c[0]*I+c[1]*M+c[2]*T)*w;return z<0||k+z>1?null:(f*I+y*M+m*T)*w}function Rf(t,e,r){return (t-e)/(r-e)}function Uf(t,e,r,n,i,s,a,o,l){const u=1<{const s=n?1:0,a=(t+1)*r-s,o=e*r,l=(e+1)*r-s;i[0]=t*r,i[1]=o,i[2]=a,i[3]=l;};let a=new Vf(n);const o=[];for(let e=0;e=1;n/=2){const t=r[r.length-1];a=new Vf(n);for(let e=0;e0;){const{idx:o,t:d,nodex:f,nodey:y,depth:m}=p.pop();if(this.leaves[o]){Uf(f,y,m,t,e,r,n,c,h);const o=1<=t[2])return d}continue}let g=0;for(let p=0;p=l[u[r]]&&(u.splice(r,0,p),e=!0);e||(u[g]=p),g++;}}for(let t=0;t=this.dim+1||e<-1||e>=this.dim+1)throw new RangeError("out of range source coordinates for DEM data");return (e+1)*this.stride+(t+1)}static pack(t,e){const r=[0,0,0,0],n=Zf.getUnpackVector(e);let i=Math.floor((t+n[3])/n[2]);return r[2]=i%256,i=Math.floor(i/256),r[1]=i%256,i=Math.floor(i/256),r[0]=i,r}getPixels(){return new Uu({width:this.stride,height:this.stride},this.pixels)}backfillBorder(t,e,r){if(this.dim!==t.dim)throw new Error("dem dimension mismatch");let n=e*this.dim,i=e*this.dim+this.dim,s=r*this.dim,a=r*this.dim+this.dim;switch(e){case-1:n=i-1;break;case 1:i=n+1;}switch(r){case-1:s=a-1;break;case 1:a=s+1;}const o=-e*this.dim,l=-r*this.dim;for(let e=s;e{this.remove(t,i);}),r)),this.data[n].push(i),this.order.push(n),this.order.length>this.max){const t=this._getAndRemoveByKey(this.order[0]);t&&this.onRemove(t);}return this}has(t){return t.wrapped().key in this.data}getAndRemove(t){return this.has(t)?this._getAndRemoveByKey(t.wrapped().key):null}_getAndRemoveByKey(t){const e=this.data[t].shift();return e.timeout&&clearTimeout(e.timeout),0===this.data[t].length&&delete this.data[t],this.order.splice(this.order.indexOf(t),1),e.value}getByKey(t){const e=this.data[t];return e?e[0].value:null}get(t){return this.has(t)?this.data[t.wrapped().key][0].value:null}remove(t,e){if(!this.has(t))return this;const r=t.wrapped().key,n=void 0===e?0:this.data[r].indexOf(e),i=this.data[r][n];return this.data[r].splice(n,1),i.timeout&&clearTimeout(i.timeout),0===this.data[r].length&&delete this.data[r],this.onRemove(i.value),this.order.splice(this.order.indexOf(r),1),this}setMaxSize(t){for(this.max=t;this.order.length>this.max;){const t=this._getAndRemoveByKey(this.order[0]);t&&this.onRemove(t);}return this}filter(t){const e=[];for(const r in this.data)for(const n of this.data[r])t(n.value)||e.push(n);for(const t of e)this.remove(t.value.tileID,t);}}class Xf{constructor(t,e,r){this.func=t,this.mask=e,this.range=r;}}Xf.ReadOnly=!1,Xf.ReadWrite=!0,Xf.disabled=new Xf(519,Xf.ReadOnly,[0,1]);const Jf=7680;class Hf{constructor(t,e,r,n,i,s){this.test=t,this.ref=e,this.mask=r,this.fail=n,this.depthFail=i,this.pass=s;}}Hf.disabled=new Hf({func:519,mask:0},0,0,Jf,Jf,Jf);class Yf{constructor(t,e,r){this.blendFunction=t,this.blendColor=e,this.mask=r;}}Yf.Replace=[1,0],Yf.disabled=new Yf(Yf.Replace,Ee.transparent,[!1,!1,!1,!1]),Yf.unblended=new Yf(Yf.Replace,Ee.transparent,[!0,!0,!0,!0]),Yf.alphaBlended=new Yf([1,771],Ee.transparent,[!0,!0,!0,!0]);const Wf=1029,Qf=2305;class ty{constructor(t,e,r){this.enable=t,this.mode=e,this.frontFace=r;}}ty.disabled=new ty(!1,Wf,Qf),ty.backCCW=new ty(!0,Wf,Qf),ty.backCW=new ty(!0,Wf,2304),ty.frontCW=new ty(!0,1028,2304),ty.frontCCW=new ty(!0,1028,Qf);class ey extends Qt{constructor(t,e,r){super(),this.id=t,this._onlySymbols=r,e.on("data",(t=>{"source"===t.dataType&&"metadata"===t.sourceDataType&&(this._sourceLoaded=!0),this._sourceLoaded&&!this._paused&&"source"===t.dataType&&"content"===t.sourceDataType&&(this.reload(),this.transform&&this.update(this.transform));})),e.on("error",(()=>{this._sourceErrored=!0;})),this._source=e,this._tiles={},this._cache=new Kf(0,this._unloadTile.bind(this)),this._timers={},this._cacheTimers={},this._minTileCacheSize=e.minTileCacheSize,this._maxTileCacheSize=e.maxTileCacheSize,this._loadedParentTiles={},this._coveredTiles={},this._state=new Df,this._isRaster="raster"===this._source.type||"raster-dem"===this._source.type||"custom"===this._source.type&&"raster"===this._source._dataType;}onAdd(t){this.map=t,this._minTileCacheSize=void 0===this._minTileCacheSize&&t?t._minTileCacheSize:this._minTileCacheSize,this._maxTileCacheSize=void 0===this._maxTileCacheSize&&t?t._maxTileCacheSize:this._maxTileCacheSize;}loaded(){if(this._sourceErrored)return !0;if(!this._sourceLoaded)return !1;if(!this._source.loaded())return !1;for(const t in this._tiles){const e=this._tiles[t];if("loaded"!==e.state&&"errored"!==e.state)return !1}return !0}getSource(){return this._source}pause(){this._paused=!0;}resume(){if(!this._paused)return;const t=this._shouldReloadOnResume;this._paused=!1,this._shouldReloadOnResume=!1,t&&this.reload(),this.transform&&this.update(this.transform);}_loadTile(t,e){return t.isSymbolTile=this._onlySymbols,this._source.loadTile(t,e)}_unloadTile(t){if(this._source.unloadTile)return this._source.unloadTile(t,(()=>{}))}_abortTile(t){if(this._source.abortTile)return this._source.abortTile(t,(()=>{}))}serialize(){return this._source.serialize()}prepare(t){this._source.prepare&&this._source.prepare(),this._state.coalesceChanges(this._tiles,this.map?this.map.painter:null);for(const e in this._tiles){const r=this._tiles[e];r.upload(t),r.prepare(this.map.style.imageManager);}}getIds(){return E(this._tiles).map((t=>t.tileID)).sort(ry).map((t=>t.key))}getRenderableIds(t){const e=[];for(const r in this._tiles)this._isIdRenderable(+r,t)&&e.push(this._tiles[r]);return t?e.sort(((t,e)=>{const r=t.tileID,n=e.tileID,i=new x(r.canonical.x,r.canonical.y)._rotate(this.transform.angle),s=new x(n.canonical.x,n.canonical.y)._rotate(this.transform.angle);return r.overscaledZ-n.overscaledZ||s.y-i.y||s.x-i.x})).map((t=>t.tileID.key)):e.map((t=>t.tileID)).sort(ry).map((t=>t.key))}hasRenderableParent(t){const e=this.findLoadedParent(t,0);return !!e&&this._isIdRenderable(e.tileID.key)}_isIdRenderable(t,e){return this._tiles[t]&&this._tiles[t].hasData()&&!this._coveredTiles[t]&&(e||!this._tiles[t].holdingForFade())}reload(){if(this._paused)this._shouldReloadOnResume=!0;else {this._cache.reset();for(const t in this._tiles)"errored"!==this._tiles[t].state&&this._reloadTile(+t,"reloading");}}_reloadTile(t,e){const r=this._tiles[t];r&&("loading"!==r.state&&(r.state=e),this._loadTile(r,this._tileLoaded.bind(this,r,t,e)));}_tileLoaded(t,e,r,n){if(n)if(t.state="errored",404!==n.status)this._source.fire(new Wt(n,{tile:t}));else if("raster-dem"===this._source.type&&this.usedForTerrain&&this.map.painter.terrain){const t=this.map.painter.terrain;this.update(this.transform,t.getScaledDemTileSize(),!0),t.resetTileLookupCache(this.id);}else this.update(this.transform);else t.timeAdded=Xt.now(),"expired"===r&&(t.refreshedUponExpiration=!0),this._setTileReloadTimer(e,t),"raster-dem"===this._source.type&&t.dem&&this._backfillDEM(t),this._state.initializeTileState(t,this.map?this.map.painter:null),this._source.fire(new Yt("data",{dataType:"source",tile:t,coord:t.tileID,sourceCacheId:this.id}));}_backfillDEM(t){const e=this.getRenderableIds();for(let n=0;n1||(Math.abs(r)>1&&(1===Math.abs(r+i)?r+=i:1===Math.abs(r-i)&&(r-=i)),e.dem&&t.dem&&(t.dem.backfillBorder(e.dem,r,n),t.neighboringTiles&&t.neighboringTiles[s]&&(t.neighboringTiles[s].backfilled=!0)));}}getTile(t){return this.getTileByID(t.key)}getTileByID(t){return this._tiles[t]}_retainLoadedChildren(t,e,r,n){for(const i in this._tiles){let s=this._tiles[i];if(n[i]||!s.hasData()||s.tileID.overscaledZ<=e||s.tileID.overscaledZ>r)continue;let a=s.tileID;for(;s&&s.tileID.overscaledZ>e+1;){const t=s.tileID.scaledTo(s.tileID.overscaledZ-1);s=this._tiles[t.key],s&&s.hasData()&&(a=t);}let o=a;for(;o.overscaledZ>e;)if(o=o.scaledTo(o.overscaledZ-1),t[o.key]){n[a.key]=a;break}}}findLoadedParent(t,e){if(t.key in this._loadedParentTiles){const r=this._loadedParentTiles[t.key];return r&&r.tileID.overscaledZ>=e?r:null}for(let r=t.overscaledZ-1;r>=e;r--){const e=t.scaledTo(r),n=this._getLoadedTile(e);if(n)return n}}_getLoadedTile(t){const e=this._tiles[t.key];return e&&e.hasData()?e:this._cache.getByKey(this._source.reparseOverscaled?t.wrapped().key:t.canonical.key)}updateCacheSize(t,e){e=e||this._source.tileSize;const r=Math.ceil(t.width/e)+1,n=Math.ceil(t.height/e)+1,i=Math.floor(r*n*5),s="number"==typeof this._minTileCacheSize?Math.max(this._minTileCacheSize,i):i,a="number"==typeof this._maxTileCacheSize?Math.min(this._maxTileCacheSize,s):s;this._cache.setMaxSize(a);}handleWrapJump(t){const e=Math.round((t-(void 0===this._prevLng?t:this._prevLng))/360);if(this._prevLng=t,e){const t={};for(const r in this._tiles){const n=this._tiles[r];n.tileID=n.tileID.unwrapTo(n.tileID.wrap+e),t[n.tileID.key]=n;}this._tiles=t;for(const t in this._timers)clearTimeout(this._timers[t]),delete this._timers[t];for(const t in this._tiles)this._setTileReloadTimer(+t,this._tiles[t]);}}update(t,e,r){if(this.transform=t,!this._sourceLoaded||this._paused||this.transform.freezeTileCoverage)return;if(this.usedForTerrain&&!r)return;let n;this.updateCacheSize(t,e),"globe"!==this.transform.projection.name&&this.handleWrapJump(this.transform.center.lng),this._coveredTiles={},this.used||this.usedForTerrain?this._source.tileID?n=t.getVisibleUnwrappedCoordinates(this._source.tileID).map((t=>new fh(t.canonical.z,t.wrap,t.canonical.z,t.canonical.x,t.canonical.y))):(n=t.coveringTiles({tileSize:e||this._source.tileSize,minzoom:this._source.minzoom,maxzoom:this._source.maxzoom,roundZoom:this._source.roundZoom&&!r,reparseOverscaled:this._source.reparseOverscaled,isTerrainDEM:this.usedForTerrain}),this._source.hasTile&&(n=n.filter((t=>this._source.hasTile(t))))):n=[];const i=this._updateRetainedTiles(n);if(ny(this._source.type)&&0!==n.length){const t={},e={},r=Object.keys(i);for(const n of r){const r=i[n],s=this._tiles[n];if(!s||s.fadeEndTime&&s.fadeEndTime<=Xt.now())continue;const a=this.findLoadedParent(r,Math.max(r.overscaledZ-ey.maxOverzooming,this._source.minzoom));a&&(this._addTile(a.tileID),t[a.tileID.key]=a.tileID),e[n]=r;}const s=n[n.length-1].overscaledZ;for(const t in this._tiles){const r=this._tiles[t];if(i[t]||!r.hasData())continue;let n=r.tileID;for(;n.overscaledZ>s;){n=n.scaledTo(n.overscaledZ-1);const s=this._tiles[n.key];if(s&&s.hasData()&&e[n.key]){i[t]=r.tileID;break}}}for(const e in t)i[e]||(this._coveredTiles[e]=!0,i[e]=t[e]);}for(const t in i)this._tiles[t].clearFadeHold();const s=function(t,e){const r=[];for(const n in t)n in e||r.push(n);return r}(this._tiles,i);for(const t of s){const e=this._tiles[t];e.hasSymbolBuckets&&!e.holdingForFade()?e.setHoldDuration(this.map._fadeDuration):e.hasSymbolBuckets&&!e.symbolFadeFinished()||this._removeTile(+t);}this._updateLoadedParentTileCache(),this._onlySymbols&&this._source.afterUpdate&&this._source.afterUpdate();}releaseSymbolFadeTiles(){for(const t in this._tiles)this._tiles[t].holdingForFade()&&this._removeTile(+t);}_updateRetainedTiles(t){const e={};if(0===t.length)return e;const r={},n=t.reduce(((t,e)=>Math.min(t,e.overscaledZ)),1/0),i=t[0].overscaledZ,s=Math.max(i-ey.maxOverzooming,this._source.minzoom),a=Math.max(i+ey.maxUnderzooming,this._source.minzoom),o={};for(const r of t){const t=this._addTile(r);e[r.key]=r,t.hasData()||n=this._source.maxzoom){const t=n.children(this._source.maxzoom)[0],r=this.getTile(t);if(r&&r.hasData()){e[t.key]=t;continue}}else {const t=n.children(this._source.maxzoom);if(e[t[0].key]&&e[t[1].key]&&e[t[2].key]&&e[t[3].key])continue}let i=t.wasRequested();for(let a=n.overscaledZ-1;a>=s;--a){const s=n.scaledTo(a);if(r[s.key])break;if(r[s.key]=!0,t=this.getTile(s),!t&&i&&(t=this._addTile(s)),t&&(e[s.key]=s,i=t.wasRequested(),t.hasData()))break}}return e}_updateLoadedParentTileCache(){this._loadedParentTiles={};for(const t in this._tiles){const e=[];let r,n=this._tiles[t].tileID;for(;n.overscaledZ>0;){if(n.key in this._loadedParentTiles){r=this._loadedParentTiles[n.key];break}e.push(n.key);const t=n.scaledTo(n.overscaledZ-1);if(r=this._getLoadedTile(t),r)break;n=t;}for(const t of e)this._loadedParentTiles[t]=r;}}_addTile(t){let e=this._tiles[t.key];if(e)return e;e=this._cache.getAndRemove(t),e&&(this._setTileReloadTimer(t.key,e),e.tileID=t,this._state.initializeTileState(e,this.map?this.map.painter:null),this._cacheTimers[t.key]&&(clearTimeout(this._cacheTimers[t.key]),delete this._cacheTimers[t.key],this._setTileReloadTimer(t.key,e)));const r=Boolean(e);if(!r){const r=this.map?this.map.painter:null;e=new Pf(t,this._source.tileSize*t.overscaleFactor(),this.transform.tileZoom,r,this._isRaster),this._loadTile(e,this._tileLoaded.bind(this,e,t.key,e.state));}return e?(e.uses++,this._tiles[t.key]=e,r||this._source.fire(new Yt("dataloading",{tile:e,coord:e.tileID,dataType:"source"})),e):null}_setTileReloadTimer(t,e){t in this._timers&&(clearTimeout(this._timers[t]),delete this._timers[t]);const r=e.getExpiryTimeout();r&&(this._timers[t]=setTimeout((()=>{this._reloadTile(t,"expired"),delete this._timers[t];}),r));}_removeTile(t){const e=this._tiles[t];e&&(e.uses--,delete this._tiles[t],this._timers[t]&&(clearTimeout(this._timers[t]),delete this._timers[t]),e.uses>0||(e.hasData()&&"reloading"!==e.state?this._cache.add(e.tileID,e,e.getExpiryTimeout()):(e.aborted=!0,this._abortTile(e),this._unloadTile(e))));}clearTiles(){this._shouldReloadOnResume=!1,this._paused=!1;for(const t in this._tiles)this._removeTile(+t);this._source._clear&&this._source._clear(),this._cache.reset(),this.map&&this.usedForTerrain&&this.map.painter.terrain&&this.map.painter.terrain.resetTileLookupCache(this.id);}tilesIn(t,e,r){const n=[],i=this.transform;if(!i)return n;const s="globe"===i.projection.name,a=Nl(i.center.lng);for(const o in this._tiles){const l=this._tiles[o];if(r&&l.clearQueryDebugViz(),l.holdingForFade())continue;let u;if(s){const t=l.tileID.canonical;if(0===t.z){const e=[Math.abs(M(a,...iy(t,-1))-a),Math.abs(M(a,...iy(t,1))-a)];u=[0,2*e.indexOf(Math.min(...e))-1];}else {const e=[Math.abs(M(a,...iy(t,-1))-a),Math.abs(M(a,...iy(t,0))-a),Math.abs(M(a,...iy(t,1))-a)];u=[e.indexOf(Math.min(...e))-1];}}else u=[0];for(const r of u){const s=t.containsTile(l,i,e,r);s&&n.push(s);}}return n}getVisibleCoordinates(t){const e=this.getRenderableIds(t).map((t=>this._tiles[t].tileID));for(const t of e)t.projMatrix=this.transform.calculateProjMatrix(t.toUnwrapped());return e}hasTransition(){if(this._source.hasTransition())return !0;if(ny(this._source.type))for(const t in this._tiles){const e=this._tiles[t];if(void 0!==e.fadeEndTime&&e.fadeEndTime>=Xt.now())return !0}return !1}setFeatureState(t,e,r){this._state.updateState(t=t||"_geojsonTileLayer",e,r);}removeFeatureState(t,e,r){this._state.removeFeatureState(t=t||"_geojsonTileLayer",e,r);}getFeatureState(t,e){return this._state.getState(t=t||"_geojsonTileLayer",e)}setDependencies(t,e,r){const n=this._tiles[t];n&&n.setDependencies(e,r);}reloadTilesForDependencies(t,e){for(const r in this._tiles)this._tiles[r].hasDependency(t,e)&&this._reloadTile(+r,"reloading");this._cache.filter((r=>!r.hasDependency(t,e)));}_preloadTiles(t,e){if(!this._sourceLoaded){const r=()=>{this._sourceLoaded&&(this._source.off("data",r),this._preloadTiles(t,e));};return void this._source.on("data",r)}const r=new Map,n=Array.isArray(t)?t:[t],i=this.map.painter.terrain,s=this.usedForTerrain&&i?i.getScaledDemTileSize():this._source.tileSize;for(const t of n){const e=t.coveringTiles({tileSize:s,minzoom:this._source.minzoom,maxzoom:this._source.maxzoom,roundZoom:this._source.roundZoom&&!this.usedForTerrain,reparseOverscaled:this._source.reparseOverscaled,isTerrainDEM:this.usedForTerrain});for(const t of e)r.set(t.key,t);this.usedForTerrain&&t.updateElevation(!1);}B(Array.from(r.values()),((t,e)=>{const r=new Pf(t,this._source.tileSize*t.overscaleFactor(),this.transform.tileZoom,this.map.painter,this._isRaster);this._loadTile(r,(t=>{"raster-dem"===this._source.type&&r.dem&&this._backfillDEM(r),e(t,r);}));}),e);}}function ry(t,e){const r=Math.abs(2*t.wrap)-+(t.wrap<0),n=Math.abs(2*e.wrap)-+(e.wrap<0);return t.overscaledZ-e.overscaledZ||n-r||e.canonical.y-t.canonical.y||e.canonical.x-t.canonical.x}function ny(t){return "raster"===t||"image"===t||"video"===t||"custom"===t}function iy(t,e){const r=1<=0&&n[3]>=0&&o.insert(a,n[0],n[1],n[2],n[3]);}}loadVTLayers(){if(!this.vtLayers){this.vtLayers=new Zc(new mp(this.rawTileData)).layers,this.sourceLayerCoder=new wf(this.vtLayers?Object.keys(this.vtLayers).sort():["_geojsonTileLayer"]),this.vtFeatures={};for(const t in this.vtLayers)this.vtFeatures[t]=[];}return this.vtLayers}query(t,e,r,n){this.loadVTLayers();const i=t.params||{},s=hi(i.filter),a=t.tileResult,o=t.transform,l=a.bufferedTilespaceBounds,u=this.grid.query(l.min.x,l.min.y,l.max.x,l.max.y,((t,e,r,n)=>wu(a.bufferedTilespaceGeometry,t,e,r,n)));u.sort(ly);let c=null;o.elevation&&u.length>0&&(c=sy.create(o.elevation,this.tileID));const h={};let p;for(let o=0;o(f||(f=au(e,this.tileID.canonical,t.tileTransform)),r.queryIntersectsFeature(a,e,n,f,this.z,t.transform,t.pixelPosMatrix,c,i))));}return h}loadMatchingFeature(t,e,r,n,i,s,a,o,l){const{featureIndex:u,bucketIndex:c,sourceLayerIndex:h,layoutVertexArrayOffset:p}=e,d=this.bucketLayerIDs[c];if(n&&!function(t,e){for(let r=0;r=0)return !0;return !1}(n,d))return;const f=this.sourceLayerCoder.decode(h),y=this.vtLayers[f].feature(u);if(r.needGeometry){const t=ou(y,!0);if(!r.filter(new ws(this.tileID.overscaledZ),t,this.tileID.canonical))return}else if(!r.filter(new ws(this.tileID.overscaledZ),y))return;const m=this.getId(y,f);for(let e=0;e{const a=e instanceof zs?e.get(s):null;return a&&a.evaluate?a.evaluate(r,n,i):a}))}function ly(t,e){return e-t}Ji(ay,"FeatureIndex",{omit:["rawTileData","sourceLayerCoder"]});class uy{constructor(t,e){this.width=t,this.height=e,this.nextRow=0,this.image=new Ru({width:t,height:e}),this.positions={},this.uploaded=!1;}getDash(t,e){const r=this.getKey(t,e);return this.positions[r]}trim(){const t=this.width,e=this.height=L(this.nextRow);this.image.resize({width:t,height:e});}getKey(t,e){return t.join(",")+e}getDashRanges(t,e,r){const n=[];let i=t.length%2==1?-t[t.length-1]*r:0,s=t[0]*r,a=!0;n.push({left:i,right:s,isDash:a,zeroLength:0===t[0]});let o=t[0];for(let e=1;e1&&(a=t[++s]);const l=Math.abs(o-a.left),u=Math.abs(o-a.right),c=Math.min(l,u);let h;const p=e/r*(n+1);if(a.isDash){const t=n-Math.abs(p);h=Math.sqrt(c*c+t*t);}else h=n-Math.sqrt(c*c+p*p);this.image.data[i+o]=Math.max(0,Math.min(255,h+128));}}}addRegularDash(t,e){for(let e=t.length-1;e>=0;--e){const r=t[e],n=t[e+1];r.zeroLength?t.splice(e,1):n&&n.isDash===r.isDash&&(n.left=r.left,t.splice(e,1));}const r=t[0],n=t[t.length-1];r.isDash===n.isDash&&(r.left=n.left-this.width,n.right=r.right+this.width);const i=this.width*this.nextRow;let s=0,a=t[s];for(let r=0;r1&&(a=t[++s]);const n=Math.abs(r-a.left),o=Math.abs(r-a.right),l=Math.min(n,o);this.image.data[i+r]=Math.max(0,Math.min(255,(a.isDash?l:-l)+e+128));}}addDash(t,e){const r=this.getKey(t,e);if(this.positions[r])return this.positions[r];const n="round"===e,i=n?7:0,s=2*i+1;if(this.nextRow+s>this.height)return N("LineAtlas out of space"),null;0===t.length&&t.push(1);let a=0;for(let e=0;e=e.maxzoom||"none"!==e.visibility&&(dy(t,this.zoom,r),(o[e.id]=e.createBucket({index:a.bucketLayerIDs.length,layers:t,zoom:this.zoom,canonical:this.canonical,pixelRatio:this.pixelRatio,overscaling:this.overscaling,collisionBoxArray:this.collisionBoxArray,sourceLayerIndex:h,sourceID:this.source,enableTerrain:this.enableTerrain,projection:this.projection.spec,availableImages:r})).populate(p,u,this.tileID.canonical,this.tileTransform),a.bucketLayerIDs.push(t.map((t=>t.id))));}}let h,p,d,f;l.trim();const y={type:"maybePrepare",isSymbolTile:this.isSymbolTile,zoom:this.zoom},m=()=>{if(h)return i(h);if(p&&d&&f){const t=new hy(p),e=new kp(d,f);for(const n in o){const i=o[n];i instanceof of?(dy(i.layers,this.zoom,r),vd(i,p,t.positions,d,e.iconPositions,this.showCollisionBoxes,r,this.tileID.canonical,this.tileZoom,this.projection)):i.hasPattern&&(i instanceof Ih||i instanceof Mc||i instanceof th)&&(dy(i.layers,this.zoom,r),i.addFeatures(u,this.tileID.canonical,e.patternPositions,r,this.tileTransform));}this.status="done",i(null,{buckets:E(o).filter((t=>!t.isEmpty())),featureIndex:a,collisionBoxArray:this.collisionBoxArray,glyphAtlasImage:t.image,lineAtlas:l,imageAtlas:e,glyphMap:this.returnDependencies?p:null,iconMap:this.returnDependencies?d:null,glyphPositions:this.returnDependencies?t.positions:null});}},g=$(u.glyphDependencies,(t=>Object.keys(t).map(Number)));Object.keys(g).length?n.send("getGlyphs",{uid:this.uid,stacks:g},((t,e)=>{h||(h=t,p=e,m());}),void 0,!1,y):p={};const x=Object.keys(u.iconDependencies);x.length?n.send("getImages",{icons:x,source:this.source,tileID:this.tileID,type:"icons"},((t,e)=>{h||(h=t,d=e,m());}),void 0,!1,y):d={};const v=Object.keys(u.patternDependencies);v.length?n.send("getImages",{icons:v,source:this.source,tileID:this.tileID,type:"patterns"},((t,e)=>{h||(h=t,f=e,m());}),void 0,!1,y):f={},m();}}function dy(t,e,r){const n=new ws(e);for(const e of t)e.recalculate(n,r);}class fy{constructor(t){this.entries={},this.scheduler=t;}request(t,e,r,n){const i=this.entries[t]=this.entries[t]||{callbacks:[]};if(i.result){const[t,r]=i.result;return this.scheduler?this.scheduler.add((()=>{n(t,r);}),e):n(t,r),()=>{}}return i.callbacks.push(n),i.cancel||(i.cancel=r(((r,n)=>{i.result=[r,n];for(const t of i.callbacks)this.scheduler?this.scheduler.add((()=>{t(r,n);}),e):t(r,n);setTimeout((()=>delete this.entries[t]),3e3);}))),()=>{i.result||(i.callbacks=i.callbacks.filter((t=>t!==n)),i.callbacks.length||(i.cancel(),delete this.entries[t]));}}}function yy(t,e,r){const n=JSON.stringify(t.request);return t.data&&(this.deduped.entries[n]={result:[null,t.data]}),this.deduped.request(n,{type:"parseTile",isSymbolTile:t.isSymbolTile,zoom:t.tileZoom},(e=>{const n=pt(t.request,((t,n,i,s)=>{t?e(t):n&&e(null,{vectorTile:r?void 0:new Zc(new mp(n)),rawData:n,cacheControl:i,expires:s});}));return ()=>{n.cancel(),e();}}),e)}const my=[Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];class gy{static from(t){if(!(t instanceof ArrayBuffer))throw new Error("Data must be an instance of ArrayBuffer.");const[e,r]=new Uint8Array(t,0,2);if(219!==e)throw new Error("Data does not appear to be in a KDBush format.");const n=r>>4;if(1!==n)throw new Error(`Got v${n} data when expected v1.`);const i=my[15&r];if(!i)throw new Error("Unrecognized array type.");const[s]=new Uint16Array(t,2,1),[a]=new Uint32Array(t,4,1);return new gy(a,s,i,t)}constructor(t,e=64,r=Float64Array,n){if(isNaN(t)||t<0)throw new Error(`Unpexpected numItems value: ${t}.`);this.numItems=+t,this.nodeSize=Math.min(Math.max(+e,2),65535),this.ArrayType=r,this.IndexArrayType=t<65536?Uint16Array:Uint32Array;const i=my.indexOf(this.ArrayType),s=2*t*this.ArrayType.BYTES_PER_ELEMENT,a=t*this.IndexArrayType.BYTES_PER_ELEMENT,o=(8-a%8)%8;if(i<0)throw new Error(`Unexpected typed array class: ${r}.`);n&&n instanceof ArrayBuffer?(this.data=n,this.ids=new this.IndexArrayType(this.data,8,t),this.coords=new this.ArrayType(this.data,8+a+o,2*t),this._pos=2*t,this._finished=!0):(this.data=new ArrayBuffer(8+s+a+o),this.ids=new this.IndexArrayType(this.data,8,t),this.coords=new this.ArrayType(this.data,8+a+o,2*t),this._pos=0,this._finished=!1,new Uint8Array(this.data,0,2).set([219,16+i]),new Uint16Array(this.data,2,1)[0]=e,new Uint32Array(this.data,4,1)[0]=t);}add(t,e){const r=this._pos>>1;return this.ids[r]=r,this.coords[this._pos++]=t,this.coords[this._pos++]=e,r}finish(){const t=this._pos>>1;if(t!==this.numItems)throw new Error(`Added ${t} items when expected ${this.numItems}.`);return xy(this.ids,this.coords,this.nodeSize,0,this.numItems-1,0),this._finished=!0,this}range(t,e,r,n){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");const{ids:i,coords:s,nodeSize:a}=this,o=[0,i.length-1,0],l=[];for(;o.length;){const u=o.pop()||0,c=o.pop()||0,h=o.pop()||0;if(c-h<=a){for(let a=h;a<=c;a++){const o=s[2*a],u=s[2*a+1];o>=t&&o<=r&&u>=e&&u<=n&&l.push(i[a]);}continue}const p=h+c>>1,d=s[2*p],f=s[2*p+1];d>=t&&d<=r&&f>=e&&f<=n&&l.push(i[p]),(0===u?t<=d:e<=f)&&(o.push(h),o.push(p-1),o.push(1-u)),(0===u?r>=d:n>=f)&&(o.push(p+1),o.push(c),o.push(1-u));}return l}within(t,e,r){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");const{ids:n,coords:i,nodeSize:s}=this,a=[0,n.length-1,0],o=[],l=r*r;for(;a.length;){const u=a.pop()||0,c=a.pop()||0,h=a.pop()||0;if(c-h<=s){for(let r=h;r<=c;r++)_y(i[2*r],i[2*r+1],t,e)<=l&&o.push(n[r]);continue}const p=h+c>>1,d=i[2*p],f=i[2*p+1];_y(d,f,t,e)<=l&&o.push(n[p]),(0===u?t-r<=d:e-r<=f)&&(a.push(h),a.push(p-1),a.push(1-u)),(0===u?t+r>=d:e+r>=f)&&(a.push(p+1),a.push(c),a.push(1-u));}return o}}function xy(t,e,r,n,i,s){if(i-n<=r)return;const a=n+i>>1;vy(t,e,a,n,i,s),xy(t,e,r,n,a-1,1-s),xy(t,e,r,a+1,i,1-s);}function vy(t,e,r,n,i,s){for(;i>n;){if(i-n>600){const a=i-n+1,o=r-n+1,l=Math.log(a),u=.5*Math.exp(2*l/3),c=.5*Math.sqrt(l*u*(a-u)/a)*(o-a/2<0?-1:1);vy(t,e,r,Math.max(n,Math.floor(r-o*u/a+c)),Math.min(i,Math.floor(r+(a-o)*u/a+c)),s);}const a=e[2*r+s];let o=n,l=i;for(by(t,e,n,r),e[2*i+s]>a&&by(t,e,n,i);oa;)l--;}e[2*n+s]===a?by(t,e,n,l):(l++,by(t,e,l,i)),l<=r&&(n=l+1),r<=l&&(i=l-1);}}function by(t,e,r,n){wy(t,r,n),wy(e,2*r,2*n),wy(e,2*r+1,2*n+1);}function wy(t,e,r){const n=t[e];t[e]=t[r],t[r]=n;}function _y(t,e,r,n){const i=t-r,s=e-n;return i*i+s*s}t.ARRAY_TYPE=uo,t.AUTH_ERR_MSG=xt,t.Aabb=il,t.Actor=class{constructor(t,r,n){this.target=t,this.parent=r,this.mapId=n,this.callbacks={},this.cancelCallbacks={},R(["receive"],this),this.target.addEventListener("message",this.receive,!1),this.globalScope=K()?t:e,this.scheduler=new bf;}send(t,e,r,n,i=!1,s){const a=Math.round(1e18*Math.random()).toString(36).substring(0,10);r&&(r.metadata=s,this.callbacks[a]=r);const o=H(this.globalScope)?void 0:[];return this.target.postMessage({id:a,type:t,hasCallback:!!r,targetMapId:n,mustQueue:i,sourceMapId:this.mapId,data:Wi(e,o)},o),{cancel:()=>{r&&delete this.callbacks[a],this.target.postMessage({id:a,type:"",targetMapId:n,sourceMapId:this.mapId});}}}receive(t){const e=t.data,r=e.id;if(r&&(!e.targetMapId||this.mapId===e.targetMapId))if(""===e.type){const t=this.cancelCallbacks[r];delete this.cancelCallbacks[r],t&&t.cancel();}else if(e.mustQueue||K()){const t=this.callbacks[r];this.cancelCallbacks[r]=this.scheduler.add((()=>this.processTask(r,e)),t&&t.metadata||{type:"message"});}else this.processTask(r,e);}processTask(t,e){if(""===e.type){const r=this.callbacks[t];delete this.callbacks[t],r&&(e.error?r(Qi(e.error)):r(null,Qi(e.data)));}else {const r=H(this.globalScope)?void 0:[],n=e.hasCallback?(e,n)=>{delete this.cancelCallbacks[t],this.target.postMessage({id:t,type:"",sourceMapId:this.mapId,error:e?Wi(e):null,data:Wi(n,r)},r);}:t=>{},i=Qi(e.data);if(this.parent[e.type])this.parent[e.type](e.sourceMapId,i,n);else if(this.parent.getWorkerSource){const t=e.type.split(".");this.parent.getWorkerSource(e.sourceMapId,t[0],i.source)[t[1]](i,n);}else n(new Error(`Could not find function ${e.type}`));}}remove(){this.scheduler.remove(),this.target.removeEventListener("message",this.receive,!1);}},t.CanonicalTileID=ph,t.Color=Ee,t.ColorMode=Yf,t.CullFaceMode=ty,t.DEMData=Zf,t.DataConstantProperty=Bs,t.DedupedRequest=fy,t.DepthMode=Xf,t.EXTENT=ao,t.Elevation=class{isDataAvailableAtPoint(t){const e=this._source();if(this.isUsingMockSource()||!e||t.y<0||t.y>1)return !1;const r=e.getSource().maxzoom,n=1<1)return e;const i=n.getSource().maxzoom,s=1<{const s=this.getAtTileOffset(t,i.x,i.y),a=n.upVector(t.canonical,i.x,i.y);return Co(a,a,s*n.upVectorScale(t.canonical,e,r).metersToTile),a}}getForTilePoints(t,e,r,n){if(this.isUsingMockSource())return !1;const i=sy.create(this,t,n);return !!i&&(e.forEach((t=>{t[2]=this.exaggeration()*i.getElevationAt(t[0],t[1],r);})),!0)}getMinMaxForTile(t){if(this.isUsingMockSource())return null;const e=this.findDEMTileFor(t);if(!e||!e.dem)return null;const r=e.dem.tree,n=e.tileID,i=1<{let n=t===s-1?t-2:0===t?t:t-1;return n+=r?24575:0,[n,e]};for(let t=0;tthis._skuTokenExpiresAt}transformRequest(t,e){return this._transformRequestFn&&this._transformRequestFn(t,e)||{url:t}}normalizeStyleURL(t,e){if(!vt(t))return t;const r=kt(t);return r.path=`/styles/v1${r.path}`,this._makeAPIURL(r,this._customAccessToken||e)}normalizeGlyphsURL(t,e){if(!vt(t))return t;const r=kt(t);return r.path=`/fonts/v1${r.path}`,this._makeAPIURL(r,this._customAccessToken||e)}normalizeSourceURL(t,e,r,n){if(!vt(t))return t;const i=kt(t);return i.path=`/v4/${i.authority}.json`,i.params.push("secure"),r&&i.params.push(`language=${r}`),n&&i.params.push(`worldview=${n}`),this._makeAPIURL(i,this._customAccessToken||e)}normalizeSpriteURL(t,e,r,n){const i=kt(t);return vt(t)?(i.path=`/styles/v1${i.path}/sprite${e}${r}`,this._makeAPIURL(i,this._customAccessToken||n)):(i.path+=`${e}${r}`,It(i))}normalizeTileURL(t,e,r){if(this._isSkuTokenExpired()&&this._createSkuToken(),t&&!vt(t))return t;const n=kt(t);n.path=n.path.replace(/(\.(png|jpg)\d*)(?=$)/,`${e||r&&"raster"!==n.authority&&512===r?"@2x":""}${s.supported?".webp":"$1"}`),"raster"===n.authority?n.path=`/${i.RASTER_URL_PREFIX}${n.path}`:(n.path=n.path.replace(/^.+\/v4\//,"/"),n.path=`/${i.TILE_URL_VERSION}${n.path}`);const a=this._customAccessToken||function(t){for(const e of t){const t=e.match(/^access_token=(.*)$/);if(t)return t[1]}return null}(n.params)||i.ACCESS_TOKEN;return i.REQUIRE_ACCESS_TOKEN&&a&&this._skuToken&&n.params.push(`sku=${this._skuToken}`),this._makeAPIURL(n,a)}canonicalizeTileURL(t,e){const r=kt(t);if(!r.path.match(/^(\/v4\/|\/raster\/v1\/)/)||!r.path.match(/\.[\w]+$/))return t;let n="mapbox://";r.path.match(/^\/raster\/v1\//)?n+=`raster/${r.path.replace(`/${i.RASTER_URL_PREFIX}/`,"")}`:n+=`tiles/${r.path.replace(`/${i.TILE_URL_VERSION}/`,"")}`;let s=r.params;return e&&(s=s.filter((t=>!t.match(/^access_token=/)))),s.length&&(n+=`?${s.join("&")}`),n}canonicalizeTileset(t,e){const r=!!e&&vt(e),n=[];for(const e of t.tiles||[])bt(e)?n.push(this.canonicalizeTileURL(e,r)):n.push(e);return n}_makeAPIURL(t,e){const r="See https://docs.mapbox.com/api/overview/#access-tokens-and-token-scopes",n=kt(i.API_URL);if(t.protocol=n.protocol,t.authority=n.authority,"http"===t.protocol){const e=t.params.indexOf("secure");e>=0&&t.params.splice(e,1);}if("/"!==n.path&&(t.path=`${n.path}${t.path}`),!i.REQUIRE_ACCESS_TOKEN)return It(t);if(e=e||i.ACCESS_TOKEN,!this._silenceAuthErrors){if(!e)throw new Error(`An API access token is required to use Mapbox GL. ${r}`);if("s"===e[0])throw new Error(`Use a public access token (pk.*) with Mapbox GL, not a secret access token (sk.*). ${r}`)}return t.params=t.params.filter((t=>-1===t.indexOf("access_token"))),t.params.push(`access_token=${e||""}`),It(t)}},t.ResourceType=lt,t.SegmentVector=so,t.SourceCache=ey,t.StencilMode=Hf,t.StructArrayLayout1ui2=ua,t.StructArrayLayout2f1f2i16=Qs,t.StructArrayLayout2i4=$s,t.StructArrayLayout2ui4=la,t.StructArrayLayout3f12=ea,t.StructArrayLayout3ui6=ra,t.StructArrayLayout4i8=Os,t.StructArrayLayout5f20=aa,t.Texture=xf,t.Tile=Pf,t.Transitionable=Ss,t.Uniform1f=La,t.Uniform1i=class extends Va{constructor(t){super(t),this.current=0;}set(t,e,r){this.fetchUniformLocation(t,e)&&this.current!==r&&(this.current=r,this.gl.uniform1i(this.location,r));}},t.Uniform2f=class extends Va{constructor(t){super(t),this.current=[0,0];}set(t,e,r){this.fetchUniformLocation(t,e)&&(r[0]===this.current[0]&&r[1]===this.current[1]||(this.current=r,this.gl.uniform2f(this.location,r[0],r[1])));}},t.Uniform3f=class extends Va{constructor(t){super(t),this.current=[0,0,0];}set(t,e,r){this.fetchUniformLocation(t,e)&&(r[0]===this.current[0]&&r[1]===this.current[1]&&r[2]===this.current[2]||(this.current=r,this.gl.uniform3f(this.location,r[0],r[1],r[2])));}},t.Uniform4f=Fa,t.UniformColor=Ra,t.UniformMatrix2f=class extends Va{constructor(t){super(t),this.current=ja;}set(t,e,r){if(this.fetchUniformLocation(t,e))for(let t=0;t<4;t++)if(r[t]!==this.current[t]){this.current=r,this.gl.uniformMatrix2fv(this.location,!1,r);break}}},t.UniformMatrix3f=class extends Va{constructor(t){super(t),this.current=$a;}set(t,e,r){if(this.fetchUniformLocation(t,e))for(let t=0;t<9;t++)if(r[t]!==this.current[t]){this.current=r,this.gl.uniformMatrix3fv(this.location,!1,r);break}}},t.UniformMatrix4f=class extends Va{constructor(t){super(t),this.current=Ua;}set(t,e,r){if(this.fetchUniformLocation(t,e)){if(r[12]!==this.current[12]||r[0]!==this.current[0])return this.current=r,void this.gl.uniformMatrix4fv(this.location,!1,r);for(let t=1;t<16;t++)if(r[t]!==this.current[t]){this.current=r,this.gl.uniformMatrix4fv(this.location,!1,r);break}}}},t.UnwrappedTileID=dh,t.ValidationError=ri,t.VectorTileFeature=Kc,t.VectorTileWorkerSource=class extends Qt{constructor(t,e,r,n,i){super(),this.actor=t,this.layerIndex=e,this.availableImages=r,this.loadVectorData=i||yy,this.loading={},this.loaded={},this.deduped=new fy(t.scheduler),this.isSpriteLoaded=n,this.scheduler=t.scheduler;}loadTile(t,e){const r=t.uid,n=t&&t.request,i=n&&n.collectResourceTiming,s=this.loading[r]=new py(t);s.abort=this.loadVectorData(t,((a,o)=>{const l=!this.loading[r];if(delete this.loading[r],l||a||!o)return s.status="done",l||(this.loaded[r]=s),e(a);const u=o.rawData,c={};o.expires&&(c.expires=o.expires),o.cacheControl&&(c.cacheControl=o.cacheControl),s.vectorTile=o.vectorTile||new Zc(new mp(u));const h=()=>{s.parse(s.vectorTile,this.layerIndex,this.availableImages,this.actor,((t,r)=>{if(t||!r)return e(t);const s={};if(i){const t=qt(n);t.length>0&&(s.resourceTiming=JSON.parse(JSON.stringify(t)));}e(null,C({rawTileData:u.slice(0)},r,c,s));}));};this.isSpriteLoaded?h():this.once("isSpriteLoaded",(()=>{this.scheduler?this.scheduler.add(h,{type:"parseTile",isSymbolTile:t.isSymbolTile,zoom:t.tileZoom}):h();})),this.loaded=this.loaded||{},this.loaded[r]=s;}));}reloadTile(t,e){const r=this.loaded,n=t.uid,i=this;if(r&&r[n]){const s=r[n];s.showCollisionBoxes=t.showCollisionBoxes,s.enableTerrain=!!t.enableTerrain,s.projection=t.projection,s.tileTransform=Bd(t.tileID.canonical,t.projection);const a=(t,r)=>{const n=s.reloadCallback;n&&(delete s.reloadCallback,s.parse(s.vectorTile,i.layerIndex,this.availableImages,i.actor,n)),e(t,r);};"parsing"===s.status?s.reloadCallback=a:"done"===s.status&&(s.vectorTile?s.parse(s.vectorTile,this.layerIndex,this.availableImages,this.actor,a):a());}}abortTile(t,e){const r=t.uid,n=this.loading[r];n&&(n.abort&&n.abort(),delete this.loading[r]),e();}removeTile(t,e){const r=this.loaded,n=t.uid;r&&r[n]&&delete r[n],e();}},t.WritingMode=Ip,t.ZoomDependentExpression=Wn,t.add=Mo,t.addDynamicAttributes=rf,t.adjoint=function(t,e){var r=e[0],n=e[1],i=e[2],s=e[3],a=e[4],o=e[5],l=e[6],u=e[7],c=e[8];return t[0]=a*c-o*u,t[1]=i*u-n*c,t[2]=n*o-i*a,t[3]=o*l-s*c,t[4]=r*c-i*l,t[5]=i*s-r*o,t[6]=s*u-a*l,t[7]=n*l-r*u,t[8]=r*a-n*s,t},t.asyncAll=B,t.bezier=k,t.bindAll=R,t.boundsAttributes=Ef,t.bufferConvexPolygon=function(t,e){const r=[];for(let n=0;net&&(t.getActor().send("enforceCacheSizeLimit",tt),ot=0);},t.calculateGlobeLabelMatrix=function(t,e){const{x:r,y:n}=t.point,i=Cl(r,n,t.worldSize/t._pixelsPerMercatorPixel,0,0);return yo(i,i,El(xl(e)))},t.calculateGlobeMatrix=function(t){const{x:e,y:r}=t.point,{lng:n,lat:i}=t._center;return Cl(e,r,t.worldSize,n,i)},t.calculateGlobeMercatorMatrix=function(t){const e=t.pixelsPerMeter,r=e/Zl(1,t.center.lat),n=po(new Float64Array(16));return mo(n,n,[t.point.x,t.point.y,0]),go(n,n,[r,r,e]),Float32Array.from(n)},t.circumferenceAtLatitude=ql,t.clamp=M,t.clearTileCache=function(t){if(!it())return;const r=e.caches.delete(Q);t&&r.catch(t).then((()=>t()));},t.clipLine=Hp,t.clone=function(t){var e=new uo(16);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e},t.clone$1=O,t.collisionCircleLayout=Fh,t.config=i,t.conjugate=function(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=e[3],t},t.create=function(){var t=new uo(16);return uo!=Float32Array&&(t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0),t[0]=1,t[5]=1,t[10]=1,t[15]=1,t},t.create$1=co,t.createExpression=Hn,t.createLayout=Rs,t.createStyleLayer=function(t){return "custom"===t.type?new ff(t):new gf[t.type](t)},t.cross=Lo,t.degToRad=w,t.distance=function(t,e){return Math.hypot(e[0]-t[0],e[1]-t[1],e[2]-t[2])},t.div=function(t,e,r){return t[0]=e[0]/r[0],t[1]=e[1]/r[1],t[2]=e[2]/r[2],t},t.dot=Vo,t.earthRadius=Ul,t.ease=I,t.easeCubicInOut=S,t.ecefToLatLng=function([t,e,r]){const n=Math.hypot(t,e,r),i=Math.atan2(t,r),s=.5*Math.PI-Math.acos(-e/n);return new Ol(_(i),_(s))},t.emitValidationErrors=qi,t.endsWith=U,t.enforceCacheSizeLimit=function(t){st(),rt&&rt.then((e=>{e.keys().then((r=>{for(let n=0;ns&&(n+=(t[i]-s)*(t[i]-s)),e[i]0){const t=180/n;ho(d,d,[t/u+1,0,0,0,t/c+1,0,-.5*t/h,.5*t/p,1]);}return d[2]=l,d[5]=t.x,d[8]=t.y,d},t.getImage=gt,t.getJSON=function(t,e){return ht(C(t,{type:"json"}),e)},t.getLatitudinalLod=function(t){const e=Hl-5;t=M(t,-e,e)/e*90;const r=Math.pow(Math.abs(Math.sin(w(t))),3);return Math.round(r*(cl.length-1))},t.getMapSessionAPI=Ft,t.getPerformanceMeasurement=qt,t.getProjection=Yd,t.getRTLTextPluginStatus=xs,t.getReferrer=ct,t.getTilePoint=function(t,{x:e,y:r},n=0){return new x(((e-n)*t.scale-t.x)*ao,(r*t.scale-t.y)*ao)},t.getTileVec3=function(t,e,r=0){return Io(((e.x-r)*t.scale-t.x)*ao,(e.y*t.scale-t.y)*ao,Jl(e.z,e.y))},t.getVideo=function(t,r){const n=e.document.createElement("video");n.muted=!0,n.onloadstart=function(){r(null,n);};for(let r=0;r{}}},t.globeCenterToScreenPoint=function(t){const e=[0,0,0],r=po(new Float64Array(16));return yo(r,t.pixelMatrix,t.globeMatrix),Fo(e,e,r),new x(e[0],e[1])},t.globeDenormalizeECEF=El,t.globeECEFOrigin=function(t,e){const r=[0,0,0];return Fo(r,r,Bl(xl(e.canonical))),Fo(r,r,t),r},t.globeMetersToEcef=fl,t.globeNormalizeECEF=Bl,t.globePixelsToTileUnits=function(t,e){return ao/(512*Math.pow(2,t))*Tl(xl(e))},t.globePoleMatrixForTile=function(t,e,r){const n=po(new Float64Array(16)),i=(e/(1<0;return 0===n&&!i&&!a&&s},t.identity=po,t.identity$1=Ko,t.invert=fo,t.isFullscreen=function(){return !!e.document.fullscreenElement||!!e.document.webkitFullscreenElement},t.isLngLatBehindGlobe=Vl,t.isMapAuthenticated=function(t){return Rt.has(t)},t.isMapboxURL=vt,t.isSafariWithAntialiasingBug=function(t){const e=t.navigator?t.navigator.userAgent:null;return !!H(t)&&e&&(e.match("Version/15.4")||e.match("Version/15.5")||e.match(/CPU (OS|iPhone OS) (15_4|15_5) like Mac OS X/))},t.latFromMercatorY=Xl,t.latLngToECEF=Il,t.len=Oo,t.length=ko,t.length$1=function(t){return Math.hypot(t[0],t[1],t[2],t[3])},t.lngFromMercatorX=Kl,t.loadVectorTile=yy,t.makeRequest=ht,t.mapValue=function(t,e,r,n,i){return M((t-e)/(r-e)*(i-n)+n,n,i)},t.mercatorScale=Yl,t.mercatorXfromLng=Nl,t.mercatorYfromLat=Gl,t.mercatorZfromAltitude=Zl,t.mul=_o,t.mul$1=jo,t.multiply=yo,t.multiply$1=ho,t.multiply$2=zo,t.nextPowerOfTwo=L,t.normalize=Do,t.normalize$1=Ho,t.normalize$2=No,t.number=Er,t.ortho=function(t,e,r,n,i,s,a){var o=1/(e-r),l=1/(n-i),u=1/(s-a);return t[0]=-2*o,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=-2*l,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=2*u,t[11]=0,t[12]=(e+r)*o,t[13]=(i+n)*l,t[14]=(a+s)*u,t[15]=1,t},t.pbf=Xh,t.perspective=function(t,e,r,n,i){var s,a=1/Math.tan(e/2);return t[0]=a/r,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=a,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=-1,t[12]=0,t[13]=0,t[15]=0,null!=i&&i!==1/0?(t[10]=(i+n)*(s=1/(n-i)),t[14]=2*i*n*s):(t[10]=-1,t[14]=-2*n),t},t.pick=function(t,e){const r={};for(let n=0;n0&&r[0]<=t.width&&r[1]>0&&r[1]<=t.height&&!Vl(t,new Ol(t.center.lat,90)),n[0]>0&&n[0]<=t.width&&n[1]>0&&n[1]<=t.height&&!Vl(t,new Ol(t.center.lat,-90))]},t.polygonContainsPoint=bu,t.polygonIntersectsBox=wu,t.polygonIntersectsPolygon=hu,t.polygonizeBounds=function(t,e,r=0,n=!0){const i=new x(r,r),s=t.sub(i),a=e.add(i),o=[s,new x(a.x,s.y),a,new x(s.x,a.y)];return n&&o.push(s.clone()),o},t.posAttributes=tl,t.postMapLoadEvent=Pt,t.postPerformanceEvent=Vt,t.postTurnstileEvent=Et,t.potpack=_p,t.prevPowerOfTwo=function(t){return t<=1?1:Math.pow(2,Math.floor(Math.log(t)/Math.LN2))},t.radToDeg=_,t.refProperties=["type","source","source-layer","minzoom","maxzoom","filter","layout"],t.registerForPluginStateChange=function(t){return t({pluginStatus:ds,pluginURL:fs}),gs.on("pluginStateChange",t),t},t.removeAuthState=function(t){Rt.delete(t);},t.renderColorRamp=ju,t.resample=tu,t.rotateX=xo,t.rotateX$1=Xo,t.rotateY=vo,t.rotateY$1=Jo,t.rotateZ=function(t,e,r){var n=Math.sin(r),i=Math.cos(r),s=e[0],a=e[1],o=e[2],l=e[3],u=e[4],c=e[5],h=e[6],p=e[7];return e!==t&&(t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t[0]=s*i+u*n,t[1]=a*i+c*n,t[2]=o*i+h*n,t[3]=l*i+p*n,t[4]=u*i-s*n,t[5]=c*i-a*n,t[6]=h*i-o*n,t[7]=p*i-l*n,t},t.rotateZ$1=function(t,e,r){r*=.5;var n=e[0],i=e[1],s=e[2],a=e[3],o=Math.sin(r),l=Math.cos(r);return t[0]=n*l+i*o,t[1]=i*l-n*o,t[2]=s*l+a*o,t[3]=a*l-s*o,t},t.scale=go,t.scale$1=qo,t.scale$2=Co,t.scaleAndAdd=Po,t.set=function(t,e,r,n){return t[0]=e,t[1]=r,t[2]=n,t},t.setCacheLimits=function(t,e){tt=t,et=e;},t.setColumn=function(t,e,r){t[4*e+0]=r[0],t[4*e+1]=r[1],t[4*e+2]=r[2],t[4*e+3]=r[3];},t.setRTLTextPlugin=function(t,e,r=!1){if(ds===us||ds===cs||ds===hs)throw new Error("setRTLTextPlugin cannot be called multiple times.");fs=Xt.resolveURL(t),ds=us,ps=e,ms(),r||vs();},t.smoothstep=T,t.spec=te,t.squaredLength=function(t){var e=t[0],r=t[1],n=t[2];return e*e+r*r+n*n},t.storeAuthState=function(t,e){e?Rt.add(t):Rt.delete(t);},t.sub=$o,t.subtract=To,t.symbolSize=qh,t.tileAABB=function(t,e,r,n,i,s,a,o,l){if("globe"===l.name)return _l(t,e,new ph(r,n,i));const u=Bd({z:r,x:n,y:i},l);return new il([(s+u.x/u.scale)*e,e*(u.y/u.scale),a],[(s+u.x2/u.scale)*e,e*(u.y2/u.scale),o])},t.tileCornersToBounds=Al,t.tileTransform=Bd,t.transformMat3=function(t,e,r){var n=e[0],i=e[1],s=e[2];return t[0]=n*r[0]+i*r[3]+s*r[6],t[1]=n*r[1]+i*r[4]+s*r[7],t[2]=n*r[2]+i*r[5]+s*r[8],t},t.transformMat4=Fo,t.transformMat4$1=Go,t.transformQuat=Ro,t.transitionTileAABBinECEF=bl,t.translate=mo,t.transpose=function(t,e){if(t===e){var r=e[1],n=e[2],i=e[5];t[1]=e[3],t[2]=e[6],t[3]=r,t[5]=e[7],t[6]=n,t[7]=i;}else t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8];return t},t.triggerPluginCompletionEvent=ys,t.uniqueId=D,t.updateGlobeVertexNormal=function(t,e,r,n,i){const s=5*e+2;t.float32[s+0]=r,t.float32[s+1]=n,t.float32[s+2]=i;},t.validateCustomStyleLayer=function(t){const e=[],r=t.id;return void 0===r&&e.push({message:`layers.${r}: missing required property "id"`}),void 0===t.render&&e.push({message:`layers.${r}: missing required method "render"`}),t.renderingMode&&"2d"!==t.renderingMode&&"3d"!==t.renderingMode&&e.push({message:`layers.${r}: property "renderingMode" must be either "2d" or "3d"`}),e},t.validateFilter=t=>Oi(Ai(t)),t.validateFog=t=>Oi(Vi(t)),t.validateLayer=t=>Oi(Ti(t)),t.validateLight=t=>Oi(Pi(t)),t.validateSource=t=>Oi(Ei(t)),t.validateStyle=Ui,t.validateTerrain=t=>Oi(Di(t)),t.values=E,t.vectorTile=Dc,t.version=r,t.warnOnce=N,t.window=e,t.wrap=z;})); - - define(["./shared"],(function(e){function t(e){if("number"==typeof e||"boolean"==typeof e||"string"==typeof e||null==e)return JSON.stringify(e);if(Array.isArray(e)){let r="[";for(const o of e)r+=`${t(o)},`;return `${r}]`}let r="{";for(const o of Object.keys(e).sort())r+=`${o}:${t(e[o])},`;return `${r}}`}function r(r){let o="";for(const i of e.refProperties)o+=`/${t(r[i])}`;return o}class o{constructor(e){this.keyCache={},e&&this.replace(e);}replace(e){this._layerConfigs={},this._layers={},this.update(e,[]);}update(t,o){for(const r of t)this._layerConfigs[r.id]=r,(this._layers[r.id]=e.createStyleLayer(r)).compileFilter(),this.keyCache[r.id]&&delete this.keyCache[r.id];for(const e of o)delete this.keyCache[e],delete this._layerConfigs[e],delete this._layers[e];this.familiesBySource={};const i=function(e,t){const o={};for(let i=0;ithis._layers[e.id])),r=t[0];if("none"===r.visibility)continue;const o=r.source||"";let i=this.familiesBySource[o];i||(i=this.familiesBySource[o]={});const n=r.sourceLayer||"_geojsonTileLayer";let s=i[n];s||(s=i[n]=[]),s.push(t);}}}class i{loadTile(t,r){const{uid:o,encoding:i,rawImageData:n,padding:s,buildQuadTree:a}=t,l=e.window.ImageBitmap&&n instanceof e.window.ImageBitmap?this.getImageData(n,s):n;r(null,new e.DEMData(o,l,i,s<1,a));}getImageData(e,t){this.offscreenCanvas&&this.offscreenCanvasContext||(this.offscreenCanvas=new OffscreenCanvas(e.width,e.height),this.offscreenCanvasContext=this.offscreenCanvas.getContext("2d",{willReadFrequently:!0})),this.offscreenCanvas.width=e.width,this.offscreenCanvas.height=e.height,this.offscreenCanvasContext.drawImage(e,0,0,e.width,e.height);const r=this.offscreenCanvasContext.getImageData(-t,-t,e.width+2*t,e.height+2*t);return this.offscreenCanvasContext.clearRect(0,0,this.offscreenCanvas.width,this.offscreenCanvas.height),r}}function n(e,t){if(0!==e.length){s(e[0],t);for(var r=1;r=Math.abs(a)?r-l+a:a-l+r,r=l;}r+o>=0!=!!t&&e.reverse();}var a=e.getDefaultExportFromCjs((function e(t,r){var o,i=t&&t.type;if("FeatureCollection"===i)for(o=0;o>31}function P(e,t){for(var r=e.loadGeometry(),o=e.type,i=0,n=0,s=r.length,a=0;ae},I=Math.fround||(_=new Float32Array(1),e=>(_[0]=+e,_[0]));var _;const C=3,L=5,O=6;class E{constructor(e){this.options=Object.assign(Object.create(k),e),this.trees=new Array(this.options.maxZoom+1),this.stride=this.options.reduce?7:6,this.clusterProps=[];}load(e){const{log:t,minZoom:r,maxZoom:o}=this.options;t&&console.time("total time");const i=`prepare ${e.length} points`;t&&console.time(i),this.points=e;const n=[];for(let t=0;t=r;e--){const r=+Date.now();s=this.trees[e]=this._createTree(this._cluster(s,e)),t&&console.log("z%d: %d clusters in %dms",e,s.numItems,+Date.now()-r);}return t&&console.timeEnd("total time"),this}getClusters(e,t){let r=((e[0]+180)%360+360)%360-180;const o=Math.max(-90,Math.min(90,e[1]));let i=180===e[2]?180:((e[2]+180)%360+360)%360-180;const n=Math.max(-90,Math.min(90,e[3]));if(e[2]-e[0]>=360)r=-180,i=180;else if(r>i){const e=this.getClusters([r,o,180,n],t),s=this.getClusters([-180,o,i,n],t);return e.concat(s)}const s=this.trees[this._limitZoom(t)],a=s.range(N(r),Z(n),N(i),Z(o)),l=s.data,u=[];for(const e of a){const t=this.stride*e;u.push(l[t+L]>1?j(l,t,this.clusterProps):this.points[l[t+C]]);}return u}getChildren(e){const t=this._getOriginId(e),r=this._getOriginZoom(e),o="No cluster with the specified id.",i=this.trees[r];if(!i)throw new Error(o);const n=i.data;if(t*this.stride>=n.length)throw new Error(o);const s=this.options.radius/(this.options.extent*Math.pow(2,r-1)),a=i.within(n[t*this.stride],n[t*this.stride+1],s),l=[];for(const t of a){const r=t*this.stride;n[r+4]===e&&l.push(n[r+L]>1?j(n,r,this.clusterProps):this.points[n[r+C]]);}if(0===l.length)throw new Error(o);return l}getLeaves(e,t,r){const o=[];return this._appendLeaves(o,e,t=t||10,r=r||0,0),o}getTile(e,t,r){const o=this.trees[this._limitZoom(e)],i=Math.pow(2,e),{extent:n,radius:s}=this.options,a=s/n,l=(r-a)/i,u=(r+1+a)/i,h={features:[]};return this._addTileFeatures(o.range((t-a)/i,l,(t+1+a)/i,u),o.data,t,r,i,h),0===t&&this._addTileFeatures(o.range(1-a/i,l,1,u),o.data,i,r,i,h),t===i-1&&this._addTileFeatures(o.range(0,l,a/i,u),o.data,-1,r,i,h),h.features.length?h:null}getClusterExpansionZoom(e){let t=this._getOriginZoom(e)-1;for(;t<=this.options.maxZoom;){const r=this.getChildren(e);if(t++,1!==r.length)break;e=r[0].properties.cluster_id;}return t}_appendLeaves(e,t,r,o,i){const n=this.getChildren(t);for(const t of n){const n=t.properties;if(n&&n.cluster?i+n.point_count<=o?i+=n.point_count:i=this._appendLeaves(e,n.cluster_id,r,o,i):i1;let l,u,h;if(a)l=F(t,e,this.clusterProps),u=t[e],h=t[e+1];else {const r=this.points[t[e+C]];l=r.properties;const[o,i]=r.geometry.coordinates;u=N(o),h=Z(i);}const c={type:1,geometry:[[Math.round(this.options.extent*(u*i-r)),Math.round(this.options.extent*(h*i-o))]],tags:l};let f;f=a||this.options.generateId?t[e+C]:this.points[t[e+C]].id,void 0!==f&&(c.id=f),n.features.push(c);}}_limitZoom(e){return Math.max(this.options.minZoom,Math.min(Math.floor(+e),this.options.maxZoom+1))}_cluster(e,t){const{radius:r,extent:o,reduce:i,minPoints:n}=this.options,s=r/(o*Math.pow(2,t)),a=e.data,l=[],u=this.stride;for(let r=0;rt&&(p+=a[r+L]);}if(p>f&&p>=n){let e,n=o*f,s=h*f,g=-1;const d=((r/u|0)<<5)+(t+1)+this.points.length;for(const o of c){const l=o*u;if(a[l+2]<=t)continue;a[l+2]=t;const h=a[l+L];n+=a[l]*h,s+=a[l+1]*h,a[l+4]=d,i&&(e||(e=this._map(a,r,!0),g=this.clusterProps.length,this.clusterProps.push(e)),i(e,this._map(a,l)));}a[r+4]=d,l.push(n/p,s/p,1/0,d,-1,p),i&&l.push(g);}else {for(let e=0;e1)for(const e of c){const r=e*u;if(!(a[r+2]<=t)){a[r+2]=t;for(let e=0;e>5}_getOriginZoom(e){return (e-this.points.length)%32}_map(e,t,r){if(e[t+L]>1){const o=this.clusterProps[e[t+O]];return r?Object.assign({},o):o}const o=this.points[e[t+C]].properties,i=this.options.map(o);return r&&i===o?Object.assign({},i):i}}function j(e,t,r){return {type:"Feature",id:e[t+C],properties:F(e,t,r),geometry:{type:"Point",coordinates:[(o=e[t],360*(o-.5)),J(e[t+1])]}};var o;}function F(e,t,r){const o=e[t+L],i=o>=1e4?`${Math.round(o/1e3)}k`:o>=1e3?Math.round(o/100)/10+"k":o,n=e[t+O],s=-1===n?{}:Object.assign({},r[n]);return Object.assign(s,{cluster:!0,cluster_id:e[t+C],point_count:o,point_count_abbreviated:i})}function N(e){return e/360+.5}function Z(e){const t=Math.sin(e*Math.PI/180),r=.5-.25*Math.log((1+t)/(1-t))/Math.PI;return r<0?0:r>1?1:r}function J(e){const t=(180-360*e)*Math.PI/180;return 360*Math.atan(Math.exp(t))/Math.PI-90}function z(e,t,r,o){for(var i,n=o,s=r-t>>1,a=r-t,l=e[t],u=e[t+1],h=e[r],c=e[r+1],f=t+3;fn)i=f,n=p;else if(p===n){var g=Math.abs(f-s);go&&(i-t>3&&z(e,t,i,o),e[i+2]=n,r-i>3&&z(e,i,r,o));}function G(e,t,r,o,i,n){var s=i-r,a=n-o;if(0!==s||0!==a){var l=((e-r)*s+(t-o)*a)/(s*s+a*a);l>1?(r=i,o=n):l>0&&(r+=s*l,o+=a*l);}return (s=e-r)*s+(a=t-o)*a}function W(e,t,r,o){var i={id:void 0===e?null:e,type:t,geometry:r,tags:o,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0};return function(e){var t=e.geometry,r=e.type;if("Point"===r||"MultiPoint"===r||"LineString"===r)Y(e,t);else if("Polygon"===r||"MultiLineString"===r)for(var o=0;o0&&(s+=o?(i*u-l*n)/2:Math.sqrt(Math.pow(l-i,2)+Math.pow(u-n,2))),i=l,n=u;}var h=t.length-3;t[2]=1,z(t,0,h,r),t[h+2]=1,t.size=Math.abs(s),t.start=0,t.end=t.size;}function $(e,t,r,o){for(var i=0;i1?1:r}function R(e,t,r,o,i,n,s,a){if(o/=t,n>=(r/=t)&&s=o)return null;for(var l=[],u=0;u=r&&g=o)){var d=[];if("Point"===f||"MultiPoint"===f)q(c,d,r,o,i);else if("LineString"===f)Q(c,d,r,o,i,!1,a.lineMetrics);else if("MultiLineString"===f)K(c,d,r,o,i,!1);else if("Polygon"===f)K(c,d,r,o,i,!0);else if("MultiPolygon"===f)for(var m=0;m=r&&s<=o&&(t.push(e[n]),t.push(e[n+1]),t.push(e[n+2]));}}function Q(e,t,r,o,i,n,s){for(var a,l,u=U(e),h=0===i?ee:te,c=e.start,f=0;fr&&(l=h(u,p,g,m,y,r),s&&(u.start=c+a*l)):v>o?x=r&&(l=h(u,p,g,m,y,r),w=!0),x>o&&v<=o&&(l=h(u,p,g,m,y,o),w=!0),!n&&w&&(s&&(u.end=c+a*l),t.push(u),u=U(e)),s&&(c+=a);}var S=e.length-3;p=e[S],g=e[S+1],d=e[S+2],(v=0===i?p:g)>=r&&v<=o&&H(u,p,g,d),S=u.length-3,n&&S>=3&&(u[S]!==u[0]||u[S+1]!==u[1])&&H(u,u[0],u[1],u[2]),u.length&&t.push(u);}function U(e){var t=[];return t.size=e.size,t.start=e.start,t.end=e.end,t}function K(e,t,r,o,i,n){for(var s=0;ss.maxX&&(s.maxX=h),c>s.maxY&&(s.maxY=c);}return s}function ae(e,t,r,o){var i=t.geometry,n=t.type,s=[];if("Point"===n||"MultiPoint"===n)for(var a=0;a0&&t.size<(i?s:o))r.numPoints+=t.length/3;else {for(var a=[],l=0;ls)&&(r.numSimplified++,a.push(t[l]),a.push(t[l+1])),r.numPoints++;i&&function(e,t){for(var r=0,o=0,i=e.length,n=i-2;o0===t)for(o=0,i=e.length;o24)throw new Error("maxZoom should be in the 0-24 range");if(t.promoteId&&t.generateId)throw new Error("promoteId and generateId cannot be used together.");var o=function(e,t){var r=[];if("FeatureCollection"===e.type)for(var o=0;o1&&console.time("creation"),f=this.tiles[c]=se(e,t,r,o,l),this.tileCoords.push({z:t,x:r,y:o}),u)){u>1&&(console.log("tile z%d-%d-%d (features: %d, points: %d, simplified: %d)",t,r,o,f.numFeatures,f.numPoints,f.numSimplified),console.timeEnd("creation"));var p="z"+t;this.stats[p]=(this.stats[p]||0)+1,this.total++;}if(f.source=e,i){if(t===l.maxZoom||t===i)continue;var g=1<1&&console.time("clipping");var d,m,y,v,x,w,S=.5*l.buffer/l.extent,M=.5-S,P=.5+S,b=1+S;d=m=y=v=null,x=R(e,h,r-S,r+P,0,f.minX,f.maxX,l),w=R(e,h,r+M,r+b,0,f.minX,f.maxX,l),e=null,x&&(d=R(x,h,o-S,o+P,1,f.minY,f.maxY,l),m=R(x,h,o+M,o+b,1,f.minY,f.maxY,l),x=null),w&&(y=R(w,h,o-S,o+P,1,f.minY,f.maxY,l),v=R(w,h,o+M,o+b,1,f.minY,f.maxY,l),w=null),u>1&&console.timeEnd("clipping"),a.push(d||[],t+1,2*r,2*o),a.push(m||[],t+1,2*r,2*o+1),a.push(y||[],t+1,2*r+1,2*o),a.push(v||[],t+1,2*r+1,2*o+1);}}},ue.prototype.getTile=function(e,t,r){var o=this.options,i=o.extent,n=o.debug;if(e<0||e>24)return null;var s=1<1&&console.log("drilling down to z%d-%d-%d",e,t,r);for(var l,u=e,h=t,c=r;!l&&u>0;)u--,h=Math.floor(h/2),c=Math.floor(c/2),l=this.tiles[he(u,h,c)];return l&&l.source?(n>1&&console.log("found parent tile z%d-%d-%d",u,h,c),n>1&&console.time("drilling down"),this.splitTile(l.source,u,h,c,e,t,r),n>1&&console.timeEnd("drilling down"),this.tiles[a]?ie(this.tiles[a],i):null):null};class fe extends e.VectorTileWorkerSource{constructor(e,t,r,o,i){super(e,t,r,o,ce),i&&(this.loadGeoJSON=i);}loadData(t,r){const o=t&&t.request,i=o&&o.collectResourceTiming;this.loadGeoJSON(t,((n,s)=>{if(n||!s)return r(n);if("object"!=typeof s)return r(new Error(`Input data given to '${t.source}' is not a valid GeoJSON object.`));{a(s,!0);try{if(t.filter){const r=e.createExpression(t.filter,{type:"boolean","property-type":"data-driven",overridable:!1,transition:!1});if("error"===r.result)throw new Error(r.value.map((e=>`${e.key}: ${e.message}`)).join(", "));const o=s.features.filter((e=>r.value.evaluate({zoom:0},e)));s={type:"FeatureCollection",features:o};}this._geoJSONIndex=t.cluster?new E(function({superclusterOptions:t,clusterProperties:r}){if(!r||!t)return t;const o={},i={},n={accumulated:null,zoom:0},s={properties:null},a=Object.keys(r);for(const t of a){const[n,s]=r[t],a=e.createExpression(s),l=e.createExpression("string"==typeof n?[n,["accumulated"],["get",t]]:n);o[t]=a.value,i[t]=l.value;}return t.map=e=>{s.properties=e;const t={};for(const e of a)t[e]=o[e].evaluate(n,s);return t},t.reduce=(e,t)=>{s.properties=t;for(const t of a)n.accumulated=e[t],e[t]=i[t].evaluate(n,s);},t}(t)).load(s.features):function(e,t){return new ue(e,t)}(s,t.geojsonVtOptions);}catch(n){return r(n)}this.loaded={};const l={};if(i){const r=e.getPerformanceMeasurement(o);r&&(l.resourceTiming={},l.resourceTiming[t.source]=JSON.parse(JSON.stringify(r)));}r(null,l);}}));}reloadTile(e,t){const r=this.loaded;return r&&r[e.uid]?super.reloadTile(e,t):this.loadTile(e,t)}loadGeoJSON(t,r){if(t.request)e.getJSON(t.request,r);else {if("string"!=typeof t.data)return r(new Error(`Input data given to '${t.source}' is not a valid GeoJSON object.`));try{return r(null,JSON.parse(t.data))}catch(e){return r(new Error(`Input data given to '${t.source}' is not a valid GeoJSON object.`))}}}getClusterExpansionZoom(e,t){try{t(null,this._geoJSONIndex.getClusterExpansionZoom(e.clusterId));}catch(e){t(e);}}getClusterChildren(e,t){try{t(null,this._geoJSONIndex.getChildren(e.clusterId));}catch(e){t(e);}}getClusterLeaves(e,t){try{t(null,this._geoJSONIndex.getLeaves(e.clusterId,e.limit,e.offset));}catch(e){t(e);}}}class pe{constructor(t){this.self=t,this.actor=new e.Actor(t,this),this.layerIndexes={},this.availableImages={},this.isSpriteLoaded={},this.projections={},this.defaultProjection=e.getProjection({name:"mercator"}),this.workerSourceTypes={vector:e.VectorTileWorkerSource,geojson:fe},this.workerSources={},this.demWorkerSources={},this.self.registerWorkerSource=(e,t)=>{if(this.workerSourceTypes[e])throw new Error(`Worker source with name "${e}" already registered.`);this.workerSourceTypes[e]=t;},this.self.registerRTLTextPlugin=t=>{if(e.plugin.isParsed())throw new Error("RTL text plugin already registered.");e.plugin.applyArabicShaping=t.applyArabicShaping,e.plugin.processBidirectionalText=t.processBidirectionalText,e.plugin.processStyledBidirectionalText=t.processStyledBidirectionalText;};}clearCaches(e,t,r){delete this.layerIndexes[e],delete this.availableImages[e],delete this.workerSources[e],delete this.demWorkerSources[e],r();}checkIfReady(e,t,r){r();}setReferrer(e,t){this.referrer=t;}spriteLoaded(t,r){this.isSpriteLoaded[t]=r;for(const o in this.workerSources[t]){const i=this.workerSources[t][o];for(const t in i)i[t]instanceof e.VectorTileWorkerSource&&(i[t].isSpriteLoaded=r,i[t].fire(new e.Event("isSpriteLoaded")));}}setImages(e,t,r){this.availableImages[e]=t;for(const r in this.workerSources[e]){const o=this.workerSources[e][r];for(const e in o)o[e].availableImages=t;}r();}enableTerrain(e,t,r){this.terrain=t,r();}setProjection(t,r){this.projections[t]=e.getProjection(r);}setLayers(e,t,r){this.getLayerIndex(e).replace(t),r();}updateLayers(e,t,r){this.getLayerIndex(e).update(t.layers,t.removedIds),r();}loadTile(t,r,o){const i=this.enableTerrain?e.extend({enableTerrain:this.terrain},r):r;i.projection=this.projections[t]||this.defaultProjection,this.getWorkerSource(t,r.type,r.source).loadTile(i,o);}loadDEMTile(t,r,o){const i=this.enableTerrain?e.extend({buildQuadTree:this.terrain},r):r;this.getDEMWorkerSource(t,r.source).loadTile(i,o);}reloadTile(t,r,o){const i=this.enableTerrain?e.extend({enableTerrain:this.terrain},r):r;i.projection=this.projections[t]||this.defaultProjection,this.getWorkerSource(t,r.type,r.source).reloadTile(i,o);}abortTile(e,t,r){this.getWorkerSource(e,t.type,t.source).abortTile(t,r);}removeTile(e,t,r){this.getWorkerSource(e,t.type,t.source).removeTile(t,r);}removeSource(e,t,r){if(!this.workerSources[e]||!this.workerSources[e][t.type]||!this.workerSources[e][t.type][t.source])return;const o=this.workerSources[e][t.type][t.source];delete this.workerSources[e][t.type][t.source],void 0!==o.removeSource?o.removeSource(t,r):r();}loadWorkerSource(e,t,r){try{this.self.importScripts(t.url),r();}catch(e){r(e.toString());}}syncRTLPluginState(t,r,o){try{e.plugin.setState(r);const t=e.plugin.getPluginURL();if(e.plugin.isLoaded()&&!e.plugin.isParsed()&&null!=t){this.self.importScripts(t);const r=e.plugin.isParsed();o(r?void 0:new Error(`RTL Text Plugin failed to import scripts from ${t}`),r);}}catch(e){o(e.toString());}}getAvailableImages(e){let t=this.availableImages[e];return t||(t=[]),t}getLayerIndex(e){let t=this.layerIndexes[e];return t||(t=this.layerIndexes[e]=new o),t}getWorkerSource(e,t,r){if(this.workerSources[e]||(this.workerSources[e]={}),this.workerSources[e][t]||(this.workerSources[e][t]={}),!this.workerSources[e][t][r]){const o={send:(t,r,o,i,n,s)=>{this.actor.send(t,r,o,e,n,s);},scheduler:this.actor.scheduler};this.workerSources[e][t][r]=new this.workerSourceTypes[t](o,this.getLayerIndex(e),this.getAvailableImages(e),this.isSpriteLoaded[e]);}return this.workerSources[e][t][r]}getDEMWorkerSource(e,t){return this.demWorkerSources[e]||(this.demWorkerSources[e]={}),this.demWorkerSources[e][t]||(this.demWorkerSources[e][t]=new i),this.demWorkerSources[e][t]}enforceCacheSizeLimit(t,r){e.enforceCacheSizeLimit(r);}getWorkerPerformanceMetrics(e,t,r){r(void 0,void 0);}}return "undefined"!=typeof WorkerGlobalScope&&"undefined"!=typeof self&&self instanceof WorkerGlobalScope&&(self.worker=new pe(self)),pe})); - - define(["./shared"],(function(e){function t(e,i){if(Array.isArray(e)){if(!Array.isArray(i)||e.length!==i.length)return !1;for(let o=0;o{e.window.removeEventListener("click",_,!0);}),0);}function p(e,t){const i=e.getBoundingClientRect();return g(e,i,t)}function m(e,t){const i=e.getBoundingClientRect(),o=[];for(let r=0;r=0?0:t.button}function g(t,i,o){const r=t.offsetWidth===i.width?1:t.offsetWidth/i.width;return new e.Point((o.clientX-i.left)*r,(o.clientY-i.top)*r)}function v(e,t){var i=t[0],o=t[1],r=t[2],n=t[3],s=i*n-r*o;return s?(e[0]=n*(s=1/s),e[1]=-o*s,e[2]=-r*s,e[3]=i*s,e):null}function x(e){const{userImage:t}=e;return !!(t&&t.render&&t.render())&&(e.data.replace(new Uint8Array(t.data.buffer)),!0)}class y extends e.Evented{constructor(){super(),this.images={},this.updatedImages={},this.callbackDispatchedThisFrame={},this.loaded=!1,this.requestors=[],this.patterns={},this.atlasImage=new e.RGBAImage({width:1,height:1}),this.dirty=!0;}isLoaded(){return this.loaded}setLoaded(e){if(this.loaded!==e&&(this.loaded=e,e)){for(const{ids:e,callback:t}of this.requestors)this._notify(e,t);this.requestors=[];}}hasImage(e){return !!this.getImage(e)}getImage(e){return this.images[e]}addImage(e,t){this._validate(e,t)&&(this.images[e]=t);}_validate(t,i){let o=!0;return this._validateStretch(i.stretchX,i.data&&i.data.width)||(this.fire(new e.ErrorEvent(new Error(`Image "${t}" has invalid "stretchX" value`))),o=!1),this._validateStretch(i.stretchY,i.data&&i.data.height)||(this.fire(new e.ErrorEvent(new Error(`Image "${t}" has invalid "stretchY" value`))),o=!1),this._validateContent(i.content,i)||(this.fire(new e.ErrorEvent(new Error(`Image "${t}" has invalid "content" value`))),o=!1),o}_validateStretch(e,t){if(!e)return !0;let i=0;for(const o of e){if(o[0]{this.ready=!0;}));}broadcast(t,i,o){e.asyncAll(this.actors,((e,o)=>{e.send(t,i,o);}),o=o||function(){});}getActor(){return this.currentActor=(this.currentActor+1)%this.actors.length,this.actors[this.currentActor]}remove(){this.actors.forEach((e=>{e.remove();})),this.actors=[],this.workerPool.release(this.id);}}function D(t,i,o){return i*(e.EXTENT/(t.tileSize*Math.pow(2,o-t.tileID.overscaledZ)))}S.Actor=e.Actor;class L{constructor(e,t,i,o){this.screenBounds=e,this.cameraPoint=t,this._screenRaycastCache={},this._cameraRaycastCache={},this.isAboveHorizon=i,this.screenGeometry=this.bufferedScreenGeometry(0),this.screenGeometryMercator=this._bufferedScreenMercator(0,o);}static createFromScreenPoints(t,i){let o,r;if(t instanceof e.Point||"number"==typeof t[0]){const n=e.Point.convert(t);o=[n],r=i.isPointAboveHorizon(n);}else {const n=e.Point.convert(t[0]),s=e.Point.convert(t[1]);o=[n,s],r=e.polygonizeBounds(n,s).every((e=>i.isPointAboveHorizon(e)));}return new L(o,i.getCameraPoint(),r,i)}isPointQuery(){return 1===this.screenBounds.length}bufferedScreenGeometry(t){return e.polygonizeBounds(this.screenBounds[0],1===this.screenBounds.length?this.screenBounds[0]:this.screenBounds[1],t)}bufferedCameraGeometry(t){const i=this.screenBounds[0],o=1===this.screenBounds.length?this.screenBounds[0].add(new e.Point(1,1)):this.screenBounds[1],r=e.polygonizeBounds(i,o,0,!1);return this.cameraPoint.y>o.y&&(this.cameraPoint.x>i.x&&this.cameraPoint.x=o.x?r[2]=this.cameraPoint:this.cameraPoint.x<=i.x&&(r[3]=this.cameraPoint)),e.bufferConvexPolygon(r,t)}bufferedCameraGeometryGlobe(t){const i=this.screenBounds[0],o=1===this.screenBounds.length?this.screenBounds[0].add(new e.Point(1,1)):this.screenBounds[1],r=e.polygonizeBounds(i,o,t),n=this.cameraPoint.clone();switch(3*((n.y>i.y)+(n.y>o.y))+((n.x>i.x)+(n.x>o.x))){case 0:r[0]=n,r[4]=n.clone();break;case 1:r.splice(1,0,n);break;case 2:r[1]=n;break;case 3:r.splice(4,0,n);break;case 5:r.splice(2,0,n);break;case 6:r[3]=n;break;case 7:r.splice(3,0,n);break;case 8:r[2]=n;}return r}containsTile(t,i,o,r=0){const n=t.queryPadding/i._pixelsPerMercatorPixel+1,s=o?this._bufferedCameraMercator(n,i):this._bufferedScreenMercator(n,i);let a=t.tileID.wrap+(s.unwrapped?r:0);const l=s.polygon.map((i=>e.getTilePoint(t.tileTransform,i,a)));if(!e.polygonIntersectsBox(l,0,0,e.EXTENT,e.EXTENT))return;a=t.tileID.wrap+(this.screenGeometryMercator.unwrapped?r:0);const c=this.screenGeometryMercator.polygon.map((i=>e.getTileVec3(t.tileTransform,i,a))),h=c.map((t=>new e.Point(t[0],t[1]))),u=i.getFreeCameraOptions().position||new e.MercatorCoordinate(0,0,0),_=e.getTileVec3(t.tileTransform,u,a),d=c.map((t=>{const i=e.sub(t,t,_);return e.normalize(i,i),new e.Ray(_,i)})),p=D(t,1,i.zoom)*i._pixelsPerMercatorPixel;return {queryGeometry:this,tilespaceGeometry:h,tilespaceRays:d,bufferedTilespaceGeometry:l,bufferedTilespaceBounds:(m=e.getBounds(l),m.min.x=e.clamp(m.min.x,0,e.EXTENT),m.min.y=e.clamp(m.min.y,0,e.EXTENT),m.max.x=e.clamp(m.max.x,0,e.EXTENT),m.max.y=e.clamp(m.max.y,0,e.EXTENT),m),tile:t,tileID:t.tileID,pixelToTileUnitsFactor:p};var m;}_bufferedScreenMercator(e,t){const i=R(e);if(this._screenRaycastCache[i])return this._screenRaycastCache[i];{let o;return o="globe"===t.projection.name?this._projectAndResample(this.bufferedScreenGeometry(e),t):{polygon:this.bufferedScreenGeometry(e).map((e=>t.pointCoordinate3D(e))),unwrapped:!0},this._screenRaycastCache[i]=o,o}}_bufferedCameraMercator(e,t){const i=R(e);if(this._cameraRaycastCache[i])return this._cameraRaycastCache[i];{let o;return o="globe"===t.projection.name?this._projectAndResample(this.bufferedCameraGeometryGlobe(e),t):{polygon:this.bufferedCameraGeometry(e).map((e=>t.pointCoordinate3D(e))),unwrapped:!0},this._cameraRaycastCache[i]=o,o}}_projectAndResample(t,i){const o=function(t,i){const o=e.multiply([],i.pixelMatrix,i.globeMatrix),r=[0,-e.GLOBE_RADIUS,0,1],n=[0,e.GLOBE_RADIUS,0,1],s=[0,0,0,1];e.transformMat4$1(r,r,o),e.transformMat4$1(n,n,o),e.transformMat4$1(s,s,o);const a=new e.Point(r[0]/r[3],r[1]/r[3]),l=new e.Point(n[0]/n[3],n[1]/n[3]),c=e.polygonContainsPoint(t,a)&&r[3]1?A(t.slice(0,_),i):[],m=_new e.Point(z(t.x),t.y))),m=m.map((t=>new e.Point(z(t.x),t.y)));const f=[...p];0===f.length&&f.push(m[m.length-1]);const g=e.number(f[f.length-1].y,(0===m.length?p[0]:m[0]).y,d);let v;return v=c?[new e.Point(0,g),new e.Point(0,0),new e.Point(1,0),new e.Point(1,g)]:[new e.Point(1,g),new e.Point(1,1),new e.Point(0,1),new e.Point(0,g)],f.push(...v),0===m.length?f.push(p[0]):f.push(...m),{polygon:f.map((t=>new e.MercatorCoordinate(t.x,t.y))),unwrapped:!1}}(t,i);if(o)return o;const r=function(t,i){let o=!1,r=-1/0,n=0;for(let e=0;er&&(r=t[e].x,n=e);for(let e=0;e.5&&(r.x{e.x-=1;})),{polygon:t,unwrapped:o}}(A(t,i).map((t=>new e.Point(z(t.x),t.y))),i);return {polygon:r.polygon.map((t=>new e.MercatorCoordinate(t.x,t.y))),unwrapped:r.unwrapped}}}function A(t,i){return e.resample(t,(e=>{const t=i.pointCoordinate3D(e);e.x=t.x,e.y=t.y;}),1/256)}function z(e){return e<0?1+e%1:e%1}function R(e){return 100*e|0}function O(t,i,o,r,n){const s=function(o,r){if(o)return n(o);if(r){t.url&&r.tiles&&t.tiles&&delete t.tiles;const o=e.pick(e.extend(r,t),["tiles","minzoom","maxzoom","attribution","mapbox_logo","bounds","scheme","tileSize","encoding"]);r.vector_layers&&(o.vectorLayers=r.vector_layers,o.vectorLayerIds=o.vectorLayers.map((e=>e.id))),o.tiles=i.canonicalizeTileset(o,t.url),n(null,o);}};return t.url?e.getJSON(i.transformRequest(i.normalizeSourceURL(t.url,null,o,r),e.ResourceType.Source),s):e.exported.frame((()=>s(null,t)))}class B{constructor(t,i,o){this.bounds=e.LngLatBounds.convert(this.validateBounds(t)),this.minzoom=i||0,this.maxzoom=o||24;}validateBounds(e){return Array.isArray(e)&&4===e.length?[Math.max(-180,e[0]),Math.max(-90,e[1]),Math.min(180,e[2]),Math.min(90,e[3])]:[-180,-90,180,90]}contains(t){const i=Math.pow(2,t.z),o=Math.floor(e.mercatorXfromLng(this.bounds.getWest())*i),r=Math.floor(e.mercatorYfromLat(this.bounds.getNorth())*i),n=Math.ceil(e.mercatorXfromLng(this.bounds.getEast())*i),s=Math.ceil(e.mercatorYfromLat(this.bounds.getSouth())*i);return t.x>=o&&t.x=r&&t.y{this._tileJSONRequest=null,this._loaded=!0,r?(i&&console.warn(`Ensure that your requested language string is a valid BCP-47 code or list of codes. Found: ${i}`),o&&2!==o.length&&console.warn(`Requested worldview strings must be a valid ISO alpha-2 code. Found: ${o}`),this.fire(new e.ErrorEvent(r))):n&&(e.extend(this,n),n.bounds&&(this.tileBounds=new B(n.bounds,this.minzoom,this.maxzoom)),e.postTurnstileEvent(n.tiles,this.map._requestManager._customAccessToken),this.fire(new e.Event("data",{dataType:"source",sourceDataType:"metadata"})),this.fire(new e.Event("data",{dataType:"source",sourceDataType:"content"}))),t&&t(r);}));}loaded(){return this._loaded}hasTile(e){return !this.tileBounds||this.tileBounds.contains(e.canonical)}onAdd(e){this.map=e,this.load();}reload(){this.cancelTileJSONRequest(),this.load((()=>this.map.style._clearSource(this.id)));}setTiles(e){return this._options.tiles=e,this.reload(),this}setUrl(e){return this.url=e,this._options.url=e,this.reload(),this}onRemove(){this.cancelTileJSONRequest();}serialize(){return e.extend({},this._options)}loadTile(t,i){const o=this.map._requestManager.normalizeTileURL(t.tileID.canonical.url(this.tiles,this.scheme)),r={request:this.map._requestManager.transformRequest(o,e.ResourceType.Tile),data:void 0,uid:t.uid,tileID:t.tileID,tileZoom:t.tileZoom,zoom:t.tileID.overscaledZ,tileSize:this.tileSize*t.tileID.overscaleFactor(),type:this.type,source:this.id,pixelRatio:e.exported.devicePixelRatio,showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId,isSymbolTile:t.isSymbolTile};if(r.request.collectResourceTiming=this._collectResourceTiming,t.actor&&"expired"!==t.state)"loading"===t.state?t.reloadCallback=i:t.request=t.actor.send("reloadTile",r,n.bind(this));else if(t.actor=this._tileWorkers[o]=this._tileWorkers[o]||this.dispatcher.getActor(),this.dispatcher.ready)t.request=t.actor.send("loadTile",r,n.bind(this),void 0,!0);else {const i=e.loadVectorTile.call({deduped:this._deduped},r,((e,i)=>{e||!i?n.call(this,e):(r.data={cacheControl:i.cacheControl,expires:i.expires,rawData:i.rawData.slice(0)},t.actor&&t.actor.send("loadTile",r,n.bind(this),void 0,!0));}),!0);t.request={cancel:i};}function n(o,r){return delete t.request,t.aborted?i(null):o&&404!==o.status?i(o):(r&&r.resourceTiming&&(t.resourceTiming=r.resourceTiming),this.map._refreshExpiredTiles&&r&&t.setExpiryData(r),t.loadVectorData(r,this.map.painter),e.cacheEntryPossiblyAdded(this.dispatcher),i(null),void(t.reloadCallback&&(this.loadTile(t,t.reloadCallback),t.reloadCallback=null)))}}abortTile(e){e.request&&(e.request.cancel(),delete e.request),e.actor&&e.actor.send("abortTile",{uid:e.uid,type:this.type,source:this.id});}unloadTile(e){e.unloadVectorData(),e.actor&&e.actor.send("removeTile",{uid:e.uid,type:this.type,source:this.id});}hasTransition(){return !1}afterUpdate(){this._tileWorkers={};}cancelTileJSONRequest(){this._tileJSONRequest&&(this._tileJSONRequest.cancel(),this._tileJSONRequest=null);}}class Me extends e.Evented{constructor(t,i,o,r){super(),this.id=t,this.dispatcher=o,this.setEventedParent(r),this.type="raster",this.minzoom=0,this.maxzoom=22,this.roundZoom=!0,this.scheme="xyz",this.tileSize=512,this._loaded=!1,this._options=e.extend({type:"raster"},i),e.extend(this,e.pick(i,["url","scheme","tileSize"]));}load(t){this._loaded=!1,this.fire(new e.Event("dataloading",{dataType:"source"})),this._tileJSONRequest=O(this._options,this.map._requestManager,null,null,((i,o)=>{this._tileJSONRequest=null,this._loaded=!0,i?this.fire(new e.ErrorEvent(i)):o&&(e.extend(this,o),o.bounds&&(this.tileBounds=new B(o.bounds,this.minzoom,this.maxzoom)),e.postTurnstileEvent(o.tiles),this.fire(new e.Event("data",{dataType:"source",sourceDataType:"metadata"})),this.fire(new e.Event("data",{dataType:"source",sourceDataType:"content"}))),t&&t(i);}));}loaded(){return this._loaded}onAdd(e){this.map=e,this.load();}reload(){this.cancelTileJSONRequest(),this.load((()=>this.map.style._clearSource(this.id)));}setTiles(e){return this._options.tiles=e,this.reload(),this}setUrl(e){return this.url=e,this._options.url=e,this.reload(),this}onRemove(){this.cancelTileJSONRequest();}serialize(){return e.extend({},this._options)}hasTile(e){return !this.tileBounds||this.tileBounds.contains(e.canonical)}loadTile(t,i){const o=e.exported.devicePixelRatio>=2,r=this.map._requestManager.normalizeTileURL(t.tileID.canonical.url(this.tiles,this.scheme),o,this.tileSize);t.request=e.getImage(this.map._requestManager.transformRequest(r,e.ResourceType.Tile),((o,r,n,s)=>(delete t.request,t.aborted?(t.state="unloaded",i(null)):o?(t.state="errored",i(o)):r?(this.map._refreshExpiredTiles&&t.setExpiryData({cacheControl:n,expires:s}),t.setTexture(r,this.map.painter),t.state="loaded",e.cacheEntryPossiblyAdded(this.dispatcher),void i(null)):i(null))));}static loadTileData(e,t,i){e.setTexture(t,i);}static unloadTileData(e,t){e.texture&&t.saveTileTexture(e.texture);}abortTile(e,t){e.request&&(e.request.cancel(),delete e.request),t();}unloadTile(e,t){e.texture&&this.map.painter.saveTileTexture(e.texture),t();}hasTransition(){return !1}cancelTileJSONRequest(){this._tileJSONRequest&&(this._tileJSONRequest.cancel(),this._tileJSONRequest=null);}}function Ie(t,i,o,r,n,s,a,l){const c=[t,o,n,i,r,s,1,1,1],h=[a,l,1],u=e.adjoint([],c),[_,d,p]=e.transformMat3(h,h,e.transpose(u,u));return e.multiply$1(c,[_,0,0,0,d,0,0,0,p],c)}class Pe extends e.Evented{constructor(e,t,i,o){super(),this.id=e,this.dispatcher=i,this.coordinates=t.coordinates,this.type="image",this.minzoom=0,this.maxzoom=22,this.tileSize=512,this.tiles={},this._loaded=!1,this.setEventedParent(o),this.options=t,this._dirty=!1;}load(t,i){this._loaded=i||!1,this.fire(new e.Event("dataloading",{dataType:"source"})),this.url=this.options.url,this._imageRequest=e.getImage(this.map._requestManager.transformRequest(this.url,e.ResourceType.Image),((i,o)=>{if(this._imageRequest=null,this._loaded=!0,i)this.fire(new e.ErrorEvent(i));else if(o){const{HTMLImageElement:i}=e.window;this.image=o instanceof i?e.exported.getImageData(o):o,this._dirty=!0,this.width=this.image.width,this.height=this.image.height,t&&(this.coordinates=t),this._finishLoading();}}));}loaded(){return this._loaded}updateImage(e){return this.image&&e.url?(this._imageRequest&&e.url!==this.options.url&&(this._imageRequest.cancel(),this._imageRequest=null),this.options.url=e.url,this.load(e.coordinates,this._loaded),this):this}_finishLoading(){this.map&&(this.setCoordinates(this.coordinates),this.fire(new e.Event("data",{dataType:"source",sourceDataType:"metadata"})));}onAdd(e){this.map=e,this.load();}onRemove(){this._imageRequest&&(this._imageRequest.cancel(),this._imageRequest=null),this.texture&&this.texture.destroy();}setCoordinates(t){this.coordinates=t,this._boundsArray=void 0;const i=t.map(e.MercatorCoordinate.fromLngLat);return this.tileID=function(t){let i=1/0,o=1/0,r=-1/0,n=-1/0;for(const e of t)i=Math.min(i,e.x),o=Math.min(o,e.y),r=Math.max(r,e.x),n=Math.max(n,e.y);const s=Math.max(r-i,n-o),a=Math.max(0,Math.floor(-Math.log(s)/Math.LN2)),l=Math.pow(2,a);return new e.CanonicalTileID(a,Math.floor((i+r)/2*l),Math.floor((o+n)/2*l))}(i),this.minzoom=this.maxzoom=this.tileID.z,this.fire(new e.Event("data",{dataType:"source",sourceDataType:"content"})),this}_clear(){this._boundsArray=void 0;}_prepareData(t){for(const e in this.tiles){const t=this.tiles[e];"loaded"!==t.state&&(t.state="loaded",t.texture=this.texture);}if(this._boundsArray)return;const i=e.tileTransform(this.tileID,this.map.transform.projection),[o,r,n,s]=this.coordinates.map((t=>{const o=i.projection.project(t[0],t[1]);return e.getTilePoint(i,o)._round()}));this.perspectiveTransform=function(t,i,o,r,n,s,a,l,c,h){const u=Ie(0,0,t,0,0,i,t,i),_=Ie(o,r,n,s,a,l,c,h);return e.multiply$1(_,e.adjoint(u,u),_),[_[6]/_[8]*t/e.EXTENT,_[7]/_[8]*i/e.EXTENT]}(this.width,this.height,o.x,o.y,r.x,r.y,s.x,s.y,n.x,n.y);const a=this._boundsArray=new e.StructArrayLayout4i8;a.emplaceBack(o.x,o.y,0,0),a.emplaceBack(r.x,r.y,e.EXTENT,0),a.emplaceBack(s.x,s.y,0,e.EXTENT),a.emplaceBack(n.x,n.y,e.EXTENT,e.EXTENT),this.boundsBuffer&&this.boundsBuffer.destroy(),this.boundsBuffer=t.createVertexBuffer(a,e.boundsAttributes.members),this.boundsSegments=e.SegmentVector.simpleSegment(0,0,4,2);}prepare(){if(0===Object.keys(this.tiles).length||!this.image)return;const t=this.map.painter.context,i=t.gl;this._dirty&&(this.texture?this.texture.update(this.image):(this.texture=new e.Texture(t,this.image,i.RGBA),this.texture.bind(i.LINEAR,i.CLAMP_TO_EDGE)),this._dirty=!1),this._prepareData(t);}loadTile(e,t){this.tileID&&this.tileID.equals(e.tileID.canonical)?(this.tiles[String(e.tileID.wrap)]=e,e.buckets={},t(null)):(e.state="errored",t(null));}serialize(){return {type:"image",url:this.options.url,coordinates:this.coordinates}}hasTransition(){return !1}}const Se={vector:Ce,raster:Me,"raster-dem":class extends Me{constructor(t,i,o,r){super(t,i,o,r),this.type="raster-dem",this.maxzoom=22,this._options=e.extend({type:"raster-dem"},i),this.encoding=i.encoding||"mapbox";}loadTile(t,i){const o=this.map._requestManager.normalizeTileURL(t.tileID.canonical.url(this.tiles,this.scheme),!1,this.tileSize);function r(e,o){e&&(t.state="errored",i(e)),o&&(t.dem=o,t.dem.onDeserialize(),t.needsHillshadePrepare=!0,t.needsDEMTextureUpload=!0,t.state="loaded",i(null));}t.request=e.getImage(this.map._requestManager.transformRequest(o,e.ResourceType.Tile),function(o,n,s,a){if(delete t.request,t.aborted)t.state="unloaded",i(null);else if(o)t.state="errored",i(o);else if(n){this.map._refreshExpiredTiles&&t.setExpiryData({cacheControl:s,expires:a});const i=e.window.ImageBitmap&&n instanceof e.window.ImageBitmap&&(null==se&&(se=e.window.OffscreenCanvas&&new e.window.OffscreenCanvas(1,1).getContext("2d")&&"function"==typeof e.window.createImageBitmap),se),o=1-(n.width-e.prevPowerOfTwo(n.width))/2;o<1||t.neighboringTiles||(t.neighboringTiles=this._getNeighboringTiles(t.tileID));const l=i?n:e.exported.getImageData(n,o),c={uid:t.uid,coord:t.tileID,source:this.id,rawImageData:l,encoding:this.encoding,padding:o};t.actor&&"expired"!==t.state||(t.actor=this.dispatcher.getActor(),t.actor.send("loadDEMTile",c,r.bind(this),void 0,!0));}}.bind(this));}_getNeighboringTiles(t){const i=t.canonical,o=Math.pow(2,i.z),r=(i.x-1+o)%o,n=0===i.x?t.wrap-1:t.wrap,s=(i.x+1+o)%o,a=i.x+1===o?t.wrap+1:t.wrap,l={};return l[new e.OverscaledTileID(t.overscaledZ,n,i.z,r,i.y).key]={backfilled:!1},l[new e.OverscaledTileID(t.overscaledZ,a,i.z,s,i.y).key]={backfilled:!1},i.y>0&&(l[new e.OverscaledTileID(t.overscaledZ,n,i.z,r,i.y-1).key]={backfilled:!1},l[new e.OverscaledTileID(t.overscaledZ,t.wrap,i.z,i.x,i.y-1).key]={backfilled:!1},l[new e.OverscaledTileID(t.overscaledZ,a,i.z,s,i.y-1).key]={backfilled:!1}),i.y+1{if(this._loaded=!0,this._pendingLoad=null,t)this.fire(new e.ErrorEvent(t));else {const t={dataType:"source",sourceDataType:this._metadataFired?"content":"metadata"};this._collectResourceTiming&&i&&i.resourceTiming&&i.resourceTiming[this.id]&&(t.resourceTiming=i.resourceTiming[this.id]),this.fire(new e.Event("data",t)),this._metadataFired=!0;}this._coalesce&&(this._updateWorkerData(),this._coalesce=!1);}));}loaded(){return this._loaded}loadTile(t,i){const o=t.actor?"reloadTile":"loadTile";t.actor=this.actor,t.request=this.actor.send(o,{type:this.type,uid:t.uid,tileID:t.tileID,tileZoom:t.tileZoom,zoom:t.tileID.overscaledZ,maxZoom:this.maxzoom,tileSize:this.tileSize,source:this.id,pixelRatio:e.exported.devicePixelRatio,showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId},((e,r)=>(delete t.request,t.unloadVectorData(),t.aborted?i(null):e?i(e):(t.loadVectorData(r,this.map.painter,"reloadTile"===o),i(null)))),void 0,"loadTile"===o);}abortTile(e){e.request&&(e.request.cancel(),delete e.request),e.aborted=!0;}unloadTile(e){e.unloadVectorData(),this.actor.send("removeTile",{uid:e.uid,type:this.type,source:this.id});}onRemove(){this._pendingLoad&&this._pendingLoad.cancel();}serialize(){return e.extend({},this._options,{type:this.type,data:this._data})}hasTransition(){return !1}},video:class extends Pe{constructor(e,t,i,o){super(e,t,i,o),this.roundZoom=!0,this.type="video",this.options=t;}load(){this._loaded=!1;const t=this.options;this.urls=[];for(const i of t.urls)this.urls.push(this.map._requestManager.transformRequest(i,e.ResourceType.Source).url);e.getVideo(this.urls,((t,i)=>{this._loaded=!0,t?this.fire(new e.ErrorEvent(t)):i&&(this.video=i,this.video.loop=!0,this.video.setAttribute("playsinline",""),this.video.addEventListener("playing",(()=>{this.map.triggerRepaint();})),this.map&&this.video.play(),this._finishLoading());}));}pause(){this.video&&this.video.pause();}play(){this.video&&this.video.play();}seek(t){if(this.video){const i=this.video.seekable;ti.end(0)?this.fire(new e.ErrorEvent(new e.ValidationError(`sources.${this.id}`,null,`Playback for this video can be set only between the ${i.start(0)} and ${i.end(0)}-second mark.`))):this.video.currentTime=t;}}getVideo(){return this.video}onAdd(e){this.map||(this.map=e,this.load(),this.video&&(this.video.play(),this.setCoordinates(this.coordinates)));}prepare(){if(0===Object.keys(this.tiles).length||this.video.readyState<2)return;const t=this.map.painter.context,i=t.gl;this.texture?this.video.paused||(this.texture.bind(i.LINEAR,i.CLAMP_TO_EDGE),i.texSubImage2D(i.TEXTURE_2D,0,0,0,i.RGBA,i.UNSIGNED_BYTE,this.video)):(this.texture=new e.Texture(t,this.video,i.RGBA),this.texture.bind(i.LINEAR,i.CLAMP_TO_EDGE),this.width=this.video.videoWidth,this.height=this.video.videoHeight),this._prepareData(t);}serialize(){return {type:"video",urls:this.urls,coordinates:this.coordinates}}hasTransition(){return this.video&&!this.video.paused}},image:Pe,canvas:class extends Pe{constructor(t,i,o,r){super(t,i,o,r),i.coordinates?Array.isArray(i.coordinates)&&4===i.coordinates.length&&!i.coordinates.some((e=>!Array.isArray(e)||2!==e.length||e.some((e=>"number"!=typeof e))))||this.fire(new e.ErrorEvent(new e.ValidationError(`sources.${t}`,null,'"coordinates" property must be an array of 4 longitude/latitude array pairs'))):this.fire(new e.ErrorEvent(new e.ValidationError(`sources.${t}`,null,'missing required property "coordinates"'))),i.animate&&"boolean"!=typeof i.animate&&this.fire(new e.ErrorEvent(new e.ValidationError(`sources.${t}`,null,'optional "animate" property must be a boolean value'))),i.canvas?"string"==typeof i.canvas||i.canvas instanceof e.window.HTMLCanvasElement||this.fire(new e.ErrorEvent(new e.ValidationError(`sources.${t}`,null,'"canvas" must be either a string representing the ID of the canvas element from which to read, or an HTMLCanvasElement instance'))):this.fire(new e.ErrorEvent(new e.ValidationError(`sources.${t}`,null,'missing required property "canvas"'))),this.options=i,this.animate=void 0===i.animate||i.animate;}load(){this._loaded=!0,this.canvas||(this.canvas=this.options.canvas instanceof e.window.HTMLCanvasElement?this.options.canvas:e.window.document.getElementById(this.options.canvas)),this.width=this.canvas.width,this.height=this.canvas.height,this._hasInvalidDimensions()?this.fire(new e.ErrorEvent(new Error("Canvas dimensions cannot be less than or equal to zero."))):(this.play=function(){this._playing=!0,this.map.triggerRepaint();},this.pause=function(){this._playing&&(this.prepare(),this._playing=!1);},this._finishLoading());}getCanvas(){return this.canvas}onAdd(e){this.map=e,this.load(),this.canvas&&this.animate&&this.play();}onRemove(){this.pause();}prepare(){let t=!1;if(this.canvas.width!==this.width&&(this.width=this.canvas.width,t=!0),this.canvas.height!==this.height&&(this.height=this.canvas.height,t=!0),this._hasInvalidDimensions())return;if(0===Object.keys(this.tiles).length)return;const i=this.map.painter.context;this.texture?(t||this._playing)&&this.texture.update(this.canvas,{premultiply:!0}):this.texture=new e.Texture(i,this.canvas,i.gl.RGBA,{premultiply:!0}),this._prepareData(i);}serialize(){return {type:"canvas",coordinates:this.coordinates}}hasTransition(){return this._playing}_hasInvalidDimensions(){for(const e of [this.canvas.width,this.canvas.height])if(isNaN(e)||e<=0)return !0;return !1}},custom:class extends e.Evented{constructor(t,i,o,r){super(),this.id=t,this.type="custom",this._dataType="raster",this._dispatcher=o,this._implementation=i,this.setEventedParent(r),this.scheme="xyz",this.minzoom=0,this.maxzoom=22,this.tileSize=512,this._loaded=!1,this.roundZoom=!0,this._implementation||this.fire(new e.ErrorEvent(new Error(`Missing implementation for ${this.id} custom source`))),this._implementation.loadTile||this.fire(new e.ErrorEvent(new Error(`Missing loadTile implementation for ${this.id} custom source`))),this._implementation.bounds&&(this.tileBounds=new B(this._implementation.bounds,this.minzoom,this.maxzoom)),i.update=this._update.bind(this),i.clearTiles=this._clearTiles.bind(this),i.coveringTiles=this._coveringTiles.bind(this),e.extend(this,e.pick(i,["dataType","scheme","minzoom","maxzoom","tileSize","attribution","minTileCacheSize","maxTileCacheSize"]));}serialize(){return e.pick(this,["type","scheme","minzoom","maxzoom","tileSize","attribution"])}load(){this._loaded=!0,this.fire(new e.Event("data",{dataType:"source",sourceDataType:"metadata"})),this.fire(new e.Event("data",{dataType:"source",sourceDataType:"content"}));}loaded(){return this._loaded}onAdd(t){this._map=t,this._loaded=!1,this.fire(new e.Event("dataloading",{dataType:"source"})),this._implementation.onAdd&&this._implementation.onAdd(t),this.load();}onRemove(e){this._implementation.onRemove&&this._implementation.onRemove(e);}hasTile(e){if(this._implementation.hasTile){const{x:t,y:i,z:o}=e.canonical;return this._implementation.hasTile({x:t,y:i,z:o})}return !this.tileBounds||this.tileBounds.contains(e.canonical)}loadTile(t,i){const{x:o,y:r,z:n}=t.tileID.canonical,s=new e.window.AbortController;t.request=Promise.resolve(this._implementation.loadTile({x:o,y:r,z:n},{signal:s.signal})).then(function(o){return delete t.request,t.aborted?(t.state="unloaded",i(null)):void 0===o?(t.state="errored",i(null)):null===o?(this.loadTileData(t,{width:this.tileSize,height:this.tileSize,data:null}),t.state="loaded",i(null)):function(t){return t instanceof e.window.ImageData||t instanceof e.window.HTMLCanvasElement||t instanceof e.window.ImageBitmap||t instanceof e.window.HTMLImageElement}(o)?(this.loadTileData(t,o),t.state="loaded",void i(null)):(t.state="errored",i(new Error(`Can't infer data type for ${this.id}, only raster data supported at the moment`)))}.bind(this)).catch((e=>{20!==e.code&&(t.state="errored",i(e));})),t.request.cancel=()=>s.abort();}loadTileData(e,t){Me.loadTileData(e,t,this._map.painter);}unloadTileData(e){Me.unloadTileData(e,this._map.painter);}unloadTile(e,t){if(this.unloadTileData(e),this._implementation.unloadTile){const{x:t,y:i,z:o}=e.tileID.canonical;this._implementation.unloadTile({x:t,y:i,z:o});}t();}abortTile(e,t){e.request&&e.request.cancel&&(e.request.cancel(),delete e.request),t();}hasTransition(){return !1}_coveringTiles(){return this._map.transform.coveringTiles({tileSize:this.tileSize,minzoom:this.minzoom,maxzoom:this.maxzoom,roundZoom:this.roundZoom}).map((e=>({x:e.canonical.x,y:e.canonical.y,z:e.canonical.z})))}_clearTiles(){this._map.style._clearSource(this.id);}_update(){this.fire(new e.Event("data",{dataType:"source",sourceDataType:"content"}));}}},De=function(t,i,o,r){const n=new Se[i.type](t,i,o,r);if(n.id!==t)throw new Error(`Expected Source id to be ${t} instead of ${n.id}`);return e.bindAll(["load","abort","unload","serialize","prepare"],n),n};function Le(t,i){const o=e.identity([]);return e.scale(o,o,[.5*t.width,.5*-t.height,1]),e.translate(o,o,[1,-1,0]),e.multiply(o,o,t.calculateProjMatrix(i.toUnwrapped())),Float32Array.from(o)}function Ae(e,t,i,o,r,n,s,a=!1){const l=e.tilesIn(o,s,a);l.sort(Re);const c=[];for(const o of l)c.push({wrappedTileID:o.tile.tileID.wrapped().key,queryResults:o.tile.queryRenderedFeatures(t,i,e._state,o,r,n,Le(e.transform,o.tile.tileID),a)});const h=function(e){const t={},i={};for(const o of e){const e=o.queryResults,r=o.wrappedTileID,n=i[r]=i[r]||{};for(const i in e){const o=e[i],r=n[i]=n[i]||{},s=t[i]=t[i]||[];for(const e of o)r[e.featureIndex]||(r[e.featureIndex]=!0,s.push(e));}}return t}(c);for(const t in h)h[t].forEach((t=>{const i=t.feature,o=i.layer;o&&"background"!==o.type&&"sky"!==o.type&&(i.source=o.source,o["source-layer"]&&(i.sourceLayer=o["source-layer"]),i.state=void 0!==i.id?e.getFeatureState(o["source-layer"],i.id):{});}));return h}function ze(e,t){const i=e.getRenderableIds().map((t=>e.getTileByID(t))),o=[],r={};for(let e=0;e{e.terminate();})),this.workers=null);}isPreloaded(){return !!this.active[Be]}numActive(){return Object.keys(this.active).length}}let Fe;function Ue(){return Fe||(Fe=new ke),Fe}function Ne(t,i){const o={};for(const e in t)"ref"!==e&&(o[e]=t[e]);return e.refProperties.forEach((e=>{e in i&&(o[e]=i[e]);})),o}function je(e){e=e.slice();const t=Object.create(null);for(let i=0;i0?(r-s)/a:0;return this.points[n].mult(1-l).add(this.points[i].mult(l))}}class Ke{constructor(e,t,i){const o=this.boxCells=[],r=this.circleCells=[];this.xCellCount=Math.ceil(e/i),this.yCellCount=Math.ceil(t/i);for(let e=0;ethis.width||o<0||t>this.height)return !r&&[];const s=[];if(e<=0&&t<=0&&this.width<=i&&this.height<=o){if(r)return !0;for(let e=0;e0:s}_queryCircle(e,t,i,o,r){const n=e-i,s=e+i,a=t-i,l=t+i;if(s<0||n>this.width||l<0||a>this.height)return !o&&[];const c=[];return this._forEachCell(n,a,s,l,this._queryCellCircle,c,{hitTest:o,circle:{x:e,y:t,radius:i},seenUids:{box:{},circle:{}}},r),o?c.length>0:c}query(e,t,i,o,r){return this._query(e,t,i,o,!1,r)}hitTest(e,t,i,o,r){return this._query(e,t,i,o,!0,r)}hitTestCircle(e,t,i,o){return this._queryCircle(e,t,i,!0,o)}_queryCell(e,t,i,o,r,n,s,a){const l=s.seenUids,c=this.boxCells[r];if(null!==c){const r=this.bboxes;for(const h of c)if(!l.box[h]){l.box[h]=!0;const c=4*h;if(e<=r[c+2]&&t<=r[c+3]&&i>=r[c+0]&&o>=r[c+1]&&(!a||a(this.boxKeys[h]))){if(s.hitTest)return n.push(!0),!0;n.push({key:this.boxKeys[h],x1:r[c],y1:r[c+1],x2:r[c+2],y2:r[c+3]});}}}const h=this.circleCells[r];if(null!==h){const r=this.circles;for(const c of h)if(!l.circle[c]){l.circle[c]=!0;const h=3*c;if(this._circleAndRectCollide(r[h],r[h+1],r[h+2],e,t,i,o)&&(!a||a(this.circleKeys[c]))){if(s.hitTest)return n.push(!0),!0;{const e=r[h],t=r[h+1],i=r[h+2];n.push({key:this.circleKeys[c],x1:e-i,y1:t-i,x2:e+i,y2:t+i});}}}}}_queryCellCircle(e,t,i,o,r,n,s,a){const l=s.circle,c=s.seenUids,h=this.boxCells[r];if(null!==h){const e=this.bboxes;for(const t of h)if(!c.box[t]){c.box[t]=!0;const i=4*t;if(this._circleAndRectCollide(l.x,l.y,l.radius,e[i+0],e[i+1],e[i+2],e[i+3])&&(!a||a(this.boxKeys[t])))return n.push(!0),!0}}const u=this.circleCells[r];if(null!==u){const e=this.circles;for(const t of u)if(!c.circle[t]){c.circle[t]=!0;const i=3*t;if(this._circlesCollide(e[i],e[i+1],e[i+2],l.x,l.y,l.radius)&&(!a||a(this.circleKeys[t])))return n.push(!0),!0}}}_forEachCell(e,t,i,o,r,n,s,a){const l=this._convertToXCellCoord(e),c=this._convertToYCellCoord(t),h=this._convertToXCellCoord(i),u=this._convertToYCellCoord(o);for(let _=l;_<=h;_++)for(let l=c;l<=u;l++)if(r.call(this,e,t,i,o,this.xCellCount*l+_,n,s,a))return}_convertToXCellCoord(e){return Math.max(0,Math.min(this.xCellCount-1,Math.floor(e*this.xScale)))}_convertToYCellCoord(e){return Math.max(0,Math.min(this.yCellCount-1,Math.floor(e*this.yScale)))}_circlesCollide(e,t,i,o,r,n){const s=o-e,a=r-t,l=i+n;return l*l>s*s+a*a}_circleAndRectCollide(e,t,i,o,r,n,s){const a=(n-o)/2,l=Math.abs(e-(o+a));if(l>a+i)return !1;const c=(s-r)/2,h=Math.abs(t-(r+c));if(h>c+i)return !1;if(l<=a||h<=c)return !0;const u=l-a,_=h-c;return u*u+_*_<=i*i}}const Je={unknown:0,flipRequired:1,flipNotRequired:2},Qe=Math.tan(85*Math.PI/180);function et(t,i,o,r,n,s,a){const l=e.create();if(o)if("globe"===s.name){const t=e.calculateGlobeLabelMatrix(n,i);e.multiply(l,l,t);}else {const t=v([],a);l[0]=t[0],l[1]=t[1],l[4]=t[2],l[5]=t[3],r||e.rotateZ(l,l,n.angle);}else e.multiply(l,n.labelPlaneMatrix,t);return l}function tt(e,t,i,o,r,n,s){const a=et(e,t,i,o,r,n,s);return "globe"===n.name&&i||(a[2]=a[6]=a[10]=a[14]=0),a}function it(t,i,o,r,n,s,a){if(o){if("globe"===s.name){const l=et(t,i,o,r,n,s,a);return e.invert(l,l),e.multiply(l,t,l),l}{const i=e.clone(t),o=e.identity([]);return o[0]=a[0],o[1]=a[1],o[4]=a[2],o[5]=a[3],e.multiply(i,i,o),r||e.rotateZ(i,i,-n.angle),i}}return n.glCoordMatrix}function ot(t,i,o,r){const n=[t,i,o,1];o?e.transformMat4$1(n,n,r):pt(n,n,r);const s=n[3];return n[0]/=s,n[1]/=s,n[2]/=s,n}function rt(e,t){return Math.min(.5+e/t*.5,1.5)}function nt(e,t){const i=e[0]/e[3],o=e[1]/e[3];return i>=-t[0]&&i<=t[0]&&o>=-t[1]&&o<=t[1]}function st(t,i,o,r,n,s,a,l,c,h){const u=o.transform,_=r?t.textSizeData:t.iconSizeData,d=e.evaluateSizeForZoom(_,o.transform.zoom),p="globe"===u.projection.name,m=[256/o.width*2+1,256/o.height*2+1],f=r?t.text.dynamicLayoutVertexArray:t.icon.dynamicLayoutVertexArray;f.clear();let g=null;p&&(g=r?t.text.globeExtVertexArray:t.icon.globeExtVertexArray);const v=t.lineVertexArray,x=r?t.text.placedSymbolArray:t.icon.placedSymbolArray,y=o.transform.width/o.transform.height;let b,w=!1;for(let r=0;rMath.abs(o)?{useVertical:!0}:t===e.WritingMode.vertical?r>0?{needsFlipping:!0}:null:i!==Je.unknown&&function(e,t){return 0===e||Math.abs(t/e)>Qe}(o,r)?i===Je.flipRequired?{needsFlipping:!0}:null:o<0?{needsFlipping:!0}:null}function ct(t,i,o,r,n,s,a,l,c,h,u,_,d,p,m,f,g,v,x){const y=i/24,b=t.lineOffsetX*y,w=t.lineOffsetY*y,{lineStartIndex:T,glyphStartIndex:E,numGlyphs:C,segment:M,writingMode:I,flipState:P}=t,S=T+t.lineLength,D=t=>{if(u){const[i,o,r]=t.up,n=h.length;e.updateGlobeVertexNormal(u,n+0,i,o,r),e.updateGlobeVertexNormal(u,n+1,i,o,r),e.updateGlobeVertexNormal(u,n+2,i,o,r),e.updateGlobeVertexNormal(u,n+3,i,o,r);}const[i,o,r]=t.point;e.addDynamicAttributes(h,i,o,r,t.angle);};if(C>1){const e=at(y,l,b,w,o,_,d,t,c,s,p,f,!1,g,v,x);if(!e)return {notEnoughRoom:!0};if(r&&!o){let[i,o,r]=e.first.point,[n,s,l]=e.last.point;[i,o]=ot(i,o,r,a),[n,s]=ot(n,s,l,a);const c=lt(I,P,(n-i)*m,s-o);if(t.flipState=c&&c.needsFlipping?Je.flipRequired:Je.flipNotRequired,c)return c}D(e.first);for(let e=E+1;e0?s:ut(d,r,i,1,n,void 0,g,v.canonical),l=lt(I,P,(a[0]-i[0])*m,a[1]-i[1]);if(t.flipState=l&&l.needsFlipping?Je.flipRequired:Je.flipNotRequired,l)return l}const i=_t(y*l.getoffsetX(E),b,w,o,_,d,M,T,S,c,s,p,f,!1,!1,g,v,x);if(!i)return {notEnoughRoom:!0};D(i);}return {}}function ht(e,t,i,o,r){const{x:n,y:s,z:a}=o.projectTilePoint(e.x,e.y,t);if(!r)return ot(n,s,a,i);const[l,c,h]=r(e);return ot(n+l,s+c,a+h,i)}function ut(t,i,o,r,n,s,a,l){const c=ht(t.sub(i)._unit()._add(t),l,n,a,s);return e.sub(c,o,c),e.normalize(c,c),e.scaleAndAdd(c,o,c,r)}function _t(t,i,o,r,n,s,a,l,c,h,u,_,d,p,m,f,g,v){const x=r?t-i:t+i;let y=x>0?1:-1,b=0;r&&(y*=-1,b=Math.PI),y<0&&(b+=Math.PI);let w=l+a+(y>0?0:1)|0,T=n,E=n,C=0,M=0;const I=Math.abs(x),P=[],S=[];let D=s,L=D;const A=()=>ut(L,D,E,I-C+1,u,d,f,g.canonical);for(;C+M<=I;){if(w+=y,w=c)return null;if(E=T,L=D,P.push(E),p&&S.push(L),D=new e.Point(h.getx(w),h.gety(w)),T=_[w],!T){const e=ht(D,g.canonical,u,f,d);T=e[3]>0?_[w]=e:A();}C+=M,M=e.distance(E,T);}m&&d&&(_[w]&&(T=A(),M=e.distance(E,T)),_[w]=T);const z=(I-C)/M,R=D.sub(L)._mult(z)._add(L),O=e.sub([],T,E),B=e.scaleAndAdd([],E,O,z);let k=[0,0,1],F=O[0],U=O[1];if(v&&(k=f.upVector(g.canonical,R.x,R.y),0!==k[0]||0!==k[1]||1!==k[2])){const t=[k[2],0,-k[0]],i=e.cross([],k,t);e.normalize(t,t),e.normalize(i,i),F=e.dot(O,t),U=e.dot(O,i);}if(o){const t=e.cross([],k,O);e.normalize(t,t),e.scaleAndAdd(B,B,t,o*y);}const N=b+Math.atan2(U,F);return P.push(B),p&&S.push(R),{point:B,angle:N,path:P,tilePath:S,up:k}}function dt(e,t){const i=t.length,o=i+4*e;t.resize(o),t.float32.fill(-1/0,4*i,4*o);}function pt(e,t,i){const o=t[0],r=t[1];return e[0]=i[0]*o+i[4]*r+i[12],e[1]=i[1]*o+i[5]*r+i[13],e[3]=i[3]*o+i[7]*r+i[15],e}const mt=100;class ft{constructor(e,t,i=new Ke(e.width+200,e.height+200,25),o=new Ke(e.width+200,e.height+200,25)){this.transform=e,this.grid=i,this.ignoredGrid=o,this.pitchfactor=Math.cos(e._pitch)*e.cameraToCenterDistance,this.screenRightBoundary=e.width+mt,this.screenBottomBoundary=e.height+mt,this.gridRightBoundary=e.width+200,this.gridBottomBoundary=e.height+200,this.fogState=t;}placeCollisionBox(e,t,i,o,r,n,s,a){let l=i.projectedAnchorX,c=i.projectedAnchorY,h=i.projectedAnchorZ;const u=i.elevation,_=i.tileID,d=e.getProjection();if(u&&_){const[e,t,o]=d.upVector(_.canonical,i.tileAnchorX,i.tileAnchorY),r=d.upVectorScale(_.canonical,this.transform.center.lat,this.transform.worldSize).metersToTile;l+=e*u*r,c+=t*u*r,h+=o*u*r;}const p=this.projectAndGetPerspectiveRatio(s,l,c,h,i.tileID,"globe"===d.name||!!u||this.transform.pitch>0,d),m=n*p.perspectiveRatio,f=(i.x1*t+o.x-i.padding)*m+p.point.x,g=(i.y1*t+o.y-i.padding)*m+p.point.y,v=(i.x2*t+o.x+i.padding)*m+p.point.x,x=(i.y2*t+o.y+i.padding)*m+p.point.y,y=p.perspectiveRatio<=.55||p.occluded;return !this.isInsideGrid(f,g,v,x)||!r&&this.grid.hitTest(f,g,v,x,a)||y?{box:[],offscreen:!1,occluded:p.occluded}:{box:[f,g,v,x],offscreen:this.isOffscreen(f,g,v,x),occluded:!1}}placeCollisionCircles(t,i,o,r,n,s,a,l,c,h,u,_,d,p,m){const f=[],g=this.transform.elevation,v=t.getProjection(),x=g?g.getAtTileOffsetFunc(m,this.transform.center.lat,this.transform.worldSize,v):null,y=new e.Point(o.tileAnchorX,o.tileAnchorY);let{x:b,y:w,z:T}=v.projectTilePoint(y.x,y.y,m.canonical);if(x){const[e,t,i]=x(y);b+=e,w+=t,T+=i;}const E="globe"===v.name,C=this.projectAndGetPerspectiveRatio(a,b,w,T,m,E||!!g||this.transform.pitch>0,v),{perspectiveRatio:M}=C,I=(u?s/M:s*M)/e.ONE_EM,P=ot(b,w,T,l),S=C.signedDistanceFromCamera>0?at(I,n,o.lineOffsetX*I,o.lineOffsetY*I,!1,P,y,o,r,l,{},g&&!u?x:null,u&&!!g,v,m,u):null;let D=!1,L=!1,A=!0;if(S&&!C.occluded){const t=.5*d*M+p,o=new e.Point(-100,-100),r=new e.Point(this.screenRightBoundary,this.screenBottomBoundary),n=new Ye,{first:s,last:a}=S,l=s.path.length;let u=[];for(let e=l-1;e>=1;e--)u.push(s.path[e]);for(let e=1;e(x&&!E&&(i=x(oe[3]<=0))&&(u=[]));let g=[];if(u.length>0){let t=1/0,i=-1/0,n=1/0,s=-1/0;for(const e of u)t=Math.min(t,e[0]),n=Math.min(n,e[1]),i=Math.max(i,e[0]),s=Math.max(s,e[1]);i>=o.x&&t<=r.x&&s>=o.y&&n<=r.y&&(g=[u.map((t=>new e.Point(t[0],t[1])))],(tr.x||nr.y)&&(g=e.clipLine(g,o.x,o.y,r.x,r.y)));}for(const e of g){n.reset(e,.25*t);let o=0;o=n.length<=.5*t?1:Math.ceil(n.paddedLength/m)+1;for(let e=0;e0){if(e.transformMat4$1(l,l,t),this.fogState&&n&&"globe"!==a.name){const t=function(t,i,o,r,n,s){const a=s.calculateFogTileMatrix(n),l=[i,o,r];return e.transformMat4(l,l,a),C(t,l,s.pitch,s._fov)}(this.fogState,i,o,r,n.toUnwrapped(),this.transform);c=t>.9;}}else pt(l,l,t);const h=l[3];return {point:new e.Point((l[0]/h+1)/2*this.transform.width+mt,(-l[1]/h+1)/2*this.transform.height+mt),perspectiveRatio:Math.min(.5+this.transform.getCameraToCenterDistance(a)/h*.5,1.5),signedDistanceFromCamera:h,occluded:s&&l[2]>h||c}}isOffscreen(e,t,i,o){return i=this.screenRightBoundary||othis.screenBottomBoundary}isInsideGrid(e,t,i,o){return i>=0&&e=0&&te.collisionGroupID===t};}return this.collisionGroups[e]}}function Mt(t,i,o,r,n){const{horizontalAlign:s,verticalAlign:a}=e.getAnchorAlignment(t),l=-(s-.5)*i,c=-(a-.5)*o,h=e.evaluateVariableOffset(t,r);return new e.Point(l+h[0]*n,c+h[1]*n)}function It(t,i,o,r,n){const s=new e.Point(t,i);return o&&s._rotate(r?n:-n),s}class Pt{constructor(e,t,i,o,r){this.transform=e.clone(),this.projection=e.projection.name,this.collisionIndex=new ft(this.transform,r),this.placements={},this.opacities={},this.variableOffsets={},this.stale=!1,this.commitTime=0,this.fadeDuration=t,this.retainedQueryData={},this.collisionGroups=new Ct(i),this.collisionCircleArrays={},this.prevPlacement=o,o&&(o.prevPlacement=void 0),this.placedOrientations={};}getBucketParts(t,i,o,r){const n=o.getBucket(i),s=o.latestFeatureIndex;if(!n||!s||i.id!==n.layerIds[0])return;const a=n.layers[0].layout,l=o.collisionBoxArray,c=Math.pow(2,this.transform.zoom-o.tileID.overscaledZ),h=o.tileSize/e.EXTENT,u=o.tileID.toUnwrapped();this.transform.setProjection(n.projection);const _=(d=o.tileID,p=n.getProjection(),m=this.transform,p.name===this.projection?m.calculateProjMatrix(d.toUnwrapped()):gt(m,p,d));var d,p,m;const f="map"===a.get("text-pitch-alignment"),g="map"===a.get("text-rotation-alignment");i.compileFilter();const v=i.dynamicFilter(),x=i.dynamicFilterNeedsFeature(),y=this.transform.calculatePixelsToTileUnitsMatrix(o),b=tt(_,o.tileID.canonical,f,g,this.transform,n.getProjection(),y);let w=null;if(f){const t=it(_,o.tileID.canonical,f,g,this.transform,n.getProjection(),y);w=e.multiply([],this.transform.labelPlaneMatrix,t);}let T=null;v&&o.latestFeatureIndex&&(T={unwrappedTileID:u,dynamicFilter:v,dynamicFilterNeedsFeature:x,featureIndex:o.latestFeatureIndex}),this.retainedQueryData[n.bucketInstanceId]=new Et(n.bucketInstanceId,s,n.sourceLayerIndex,n.index,o.tileID);const E={bucket:n,layout:a,posMatrix:_,textLabelPlaneMatrix:b,labelToScreenMatrix:w,clippingData:T,scale:c,textPixelRatio:h,holdingForFade:o.holdingForFade(),collisionBoxArray:l,partiallyEvaluatedTextSize:e.evaluateSizeForZoom(n.textSizeData,this.transform.zoom),partiallyEvaluatedIconSize:e.evaluateSizeForZoom(n.iconSizeData,this.transform.zoom),collisionGroup:this.collisionGroups.get(n.sourceID)};if(r)for(const e of n.sortKeyRanges){const{sortKey:i,symbolInstanceStart:o,symbolInstanceEnd:r}=e;t.push({sortKey:i,symbolInstanceStart:o,symbolInstanceEnd:r,parameters:E});}else t.push({symbolInstanceStart:0,symbolInstanceEnd:n.symbolInstances.length,parameters:E});}attemptAnchorPlacement(e,t,i,o,r,n,s,a,l,c,h,u,_,d,p,m,f,g){const{textOffset0:v,textOffset1:x,crossTileID:y}=u,b=[v,x],w=Mt(e,i,o,b,r),T=this.collisionIndex.placeCollisionBox(d,r,t,It(w.x,w.y,n,s,this.transform.angle),h,a,l,c.predicate);if(m){const e=d.getSymbolInstanceIconSize(g,this.transform.zoom,u.placedIconSymbolIndex);if(0===this.collisionIndex.placeCollisionBox(d,e,m,It(w.x,w.y,n,s,this.transform.angle),h,a,l,c.predicate).box.length)return}if(T.box.length>0){let t;return this.prevPlacement&&this.prevPlacement.variableOffsets[y]&&this.prevPlacement.placements[y]&&this.prevPlacement.placements[y].text&&(t=this.prevPlacement.variableOffsets[y].anchor),this.variableOffsets[y]={textOffset:b,width:i,height:o,anchor:e,textScale:r,prevAnchor:t},this.markUsedJustification(d,e,u,p),d.allowVerticalPlacement&&(this.markUsedOrientation(d,p,u),this.placedOrientations[y]=p),{shift:w,placedGlyphBoxes:T}}}placeLayerBucketPart(t,i,o,r){const{bucket:n,layout:s,posMatrix:a,textLabelPlaneMatrix:l,labelToScreenMatrix:c,clippingData:h,textPixelRatio:u,holdingForFade:_,collisionBoxArray:d,partiallyEvaluatedTextSize:p,partiallyEvaluatedIconSize:m,collisionGroup:f}=t.parameters,g=s.get("text-optional"),v=s.get("icon-optional"),x=s.get("text-allow-overlap"),y=s.get("icon-allow-overlap"),b="map"===s.get("text-rotation-alignment"),w="map"===s.get("text-pitch-alignment"),T="none"!==s.get("icon-text-fit"),E="viewport-y"===s.get("symbol-z-order");this.transform.setProjection(n.projection);let C=x&&(y||!n.hasIconData()||v),M=y&&(x||!n.hasTextData()||g);!n.collisionArrays&&d&&n.deserializeCollisionBoxes(d),o&&r&&n.updateCollisionDebugBuffers(this.transform.zoom,d);const I=(t,r,d)=>{const{crossTileID:E,numVerticalGlyphVertices:I}=t;if(h){const o={zoom:this.transform.zoom,pitch:this.transform.pitch};let r=null;if(h.dynamicFilterNeedsFeature){const e=this.retainedQueryData[n.bucketInstanceId];r=h.featureIndex.loadFeature({featureIndex:t.featureIndex,bucketIndex:e.bucketIndex,sourceLayerIndex:e.sourceLayerIndex,layoutVertexArrayOffset:0});}if(!(0, h.dynamicFilter)(o,r,this.retainedQueryData[n.bucketInstanceId].tileID.canonical,new e.Point(t.tileAnchorX,t.tileAnchorY),this.transform.calculateDistanceTileData(h.unwrappedTileID)))return this.placements[E]=new wt(!1,!1,!1,!0),void i.add(E)}if(i.has(E))return;if(_)return void(this.placements[E]=new wt(!1,!1,!1));let P=!1,S=!1,D=!0,L=!1,A=!1,z=null,R={box:null,offscreen:null,occluded:null},O={box:null,offscreen:null,occluded:null},B=null,k=null,F=null,U=0,N=0,j=0;d.textFeatureIndex?U=d.textFeatureIndex:t.useRuntimeCollisionCircles&&(U=t.featureIndex),d.verticalTextFeatureIndex&&(N=d.verticalTextFeatureIndex);const G=e=>{e.tileID=this.retainedQueryData[n.bucketInstanceId].tileID;const t=this.transform.elevation;(t||e.elevation)&&(e.elevation=t?t.getAtTileOffset(e.tileID,e.tileAnchorX,e.tileAnchorY):0);},Z=d.textBox;if(Z){G(Z);const i=i=>{let o=e.WritingMode.horizontal;if(n.allowVerticalPlacement&&!i&&this.prevPlacement){const e=this.prevPlacement.placedOrientations[E];e&&(this.placedOrientations[E]=e,o=e,this.markUsedOrientation(n,o,t));}return o},o=(t,i)=>{if(n.allowVerticalPlacement&&I>0&&d.verticalTextBox){for(const o of n.writingModes)if(o===e.WritingMode.vertical?(R=i(),O=R):R=t(),R&&R.box&&R.box.length)break}else R=t();};if(s.get("text-variable-anchor")){let l=s.get("text-variable-anchor");if(this.prevPlacement&&this.prevPlacement.variableOffsets[E]){const e=this.prevPlacement.variableOffsets[E];l.indexOf(e.anchor)>0&&(l=l.filter((t=>t!==e.anchor)),l.unshift(e.anchor));}const c=(e,i,o)=>{const s=n.getSymbolInstanceTextSize(p,t,this.transform.zoom,r),c=(e.x2-e.x1)*s+2*e.padding,h=(e.y2-e.y1)*s+2*e.padding,_=T&&!y?i:null;_&&G(_);let d={box:[],offscreen:!1,occluded:!1};const g=x?2*l.length:l.length;for(let i=0;i=l.length,t,r,n,o,_,p,m);if(g&&(d=g.placedGlyphBoxes,d&&d.box&&d.box.length)){P=!0,z=g.shift;break}}return d};o((()=>c(Z,d.iconBox,e.WritingMode.horizontal)),(()=>{const t=d.verticalTextBox;return t&&G(t),n.allowVerticalPlacement&&!(R&&R.box&&R.box.length)&&I>0&&t?c(t,d.verticalIconBox,e.WritingMode.vertical):{box:null,offscreen:null,occluded:null}})),R&&(P=R.box,D=R.offscreen,L=R.occluded);const h=i(!(!R||!R.box));if(!P&&this.prevPlacement){const e=this.prevPlacement.variableOffsets[E];e&&(this.variableOffsets[E]=e,this.markUsedJustification(n,e.anchor,t,h));}}else {const s=(i,o)=>{const s=n.getSymbolInstanceTextSize(p,t,this.transform.zoom,r),l=this.collisionIndex.placeCollisionBox(n,s,i,new e.Point(0,0),x,u,a,f.predicate);return l&&l.box&&l.box.length&&(this.markUsedOrientation(n,o,t),this.placedOrientations[E]=o),l};o((()=>s(Z,e.WritingMode.horizontal)),(()=>{const t=d.verticalTextBox;return n.allowVerticalPlacement&&I>0&&t?(G(t),s(t,e.WritingMode.vertical)):{box:null,offscreen:null,occluded:null}})),i(!!(R&&R.box&&R.box.length));}}if(B=R,P=B&&B.box&&B.box.length>0,D=B&&B.offscreen,L=B&&B.occluded,t.useRuntimeCollisionCircles){const i=n.text.placedSymbolArray.get(t.centerJustifiedTextSymbolIndex>=0?t.centerJustifiedTextSymbolIndex:t.verticalPlacedTextSymbolIndex),r=e.evaluateSizeForFeature(n.textSizeData,p,i),h=s.get("text-padding");k=this.collisionIndex.placeCollisionCircles(n,x,i,n.lineVertexArray,n.glyphOffsetArray,r,a,l,c,o,w,f.predicate,t.collisionCircleDiameter*r/e.ONE_EM,h,this.retainedQueryData[n.bucketInstanceId].tileID),P=x||k.circles.length>0&&!k.collisionDetected,D=D&&k.offscreen,L=k.occluded;}if(d.iconFeatureIndex&&(j=d.iconFeatureIndex),d.iconBox){const i=i=>{G(i);const o=T&&z?It(z.x,z.y,b,w,this.transform.angle):new e.Point(0,0),r=n.getSymbolInstanceIconSize(m,this.transform.zoom,t.placedIconSymbolIndex);return this.collisionIndex.placeCollisionBox(n,r,i,o,y,u,a,f.predicate)};O&&O.box&&O.box.length&&d.verticalIconBox?(F=i(d.verticalIconBox),S=F.box.length>0):(F=i(d.iconBox),S=F.box.length>0),D=D&&F.offscreen,A=F.occluded;}const V=g||0===t.numHorizontalGlyphVertices&&0===I,W=v||0===t.numIconVertices;if(V||W?W?V||(S=S&&P):P=S&&P:S=P=S&&P,P&&B&&B.box&&this.collisionIndex.insertCollisionBox(B.box,s.get("text-ignore-placement"),n.bucketInstanceId,O&&O.box&&N?N:U,f.ID),S&&F&&this.collisionIndex.insertCollisionBox(F.box,s.get("icon-ignore-placement"),n.bucketInstanceId,j,f.ID),k&&(P&&this.collisionIndex.insertCollisionCircles(k.circles,s.get("text-ignore-placement"),n.bucketInstanceId,U,f.ID),o)){const e=n.bucketInstanceId;let t=this.collisionCircleArrays[e];void 0===t&&(t=this.collisionCircleArrays[e]=new Tt);for(let e=0;e=0;--t){const i=e[t];I(n.symbolInstances.get(i),i,n.collisionArrays[i]);}}else for(let e=t.symbolInstanceStart;e=0&&(t.text.placedSymbolArray.get(n).crossTileID=u>=0&&n!==u?0:c),s>=0&&(t.text.placedSymbolArray.get(s).crossTileID=u>=0&&s!==u?0:c),a>=0&&(t.text.placedSymbolArray.get(a).crossTileID=u>=0&&a!==u?0:c),l>=0&&(t.text.placedSymbolArray.get(l).crossTileID=u>=0&&l!==u?0:c);}markUsedOrientation(t,i,o){const r=i===e.WritingMode.horizontal||i===e.WritingMode.horizontalOnly?i:0,n=i===e.WritingMode.vertical?i:0,{leftJustifiedTextSymbolIndex:s,centerJustifiedTextSymbolIndex:a,rightJustifiedTextSymbolIndex:l,verticalPlacedTextSymbolIndex:c}=o,h=t.text.placedSymbolArray;s>=0&&(h.get(s).placedOrientation=r),a>=0&&(h.get(a).placedOrientation=r),l>=0&&(h.get(l).placedOrientation=r),c>=0&&(h.get(c).placedOrientation=n);}commit(e){this.commitTime=e,this.zoomAtLastRecencyCheck=this.transform.zoom;const t=this.prevPlacement;let i=!1;this.prevZoomAdjustment=t?t.zoomAdjustment(this.transform.zoom):0;const o=t?t.symbolFadeChange(e):1,r=t?t.opacities:{},n=t?t.variableOffsets:{},s=t?t.placedOrientations:{};for(const e in this.placements){const t=this.placements[e],n=r[e];n?(this.opacities[e]=new bt(n,o,t.text,t.icon,null,t.clipped),i=i||t.text!==n.text.placed||t.icon!==n.icon.placed):(this.opacities[e]=new bt(null,o,t.text,t.icon,t.skipFade,t.clipped),i=i||t.text||t.icon);}for(const e in r){const t=r[e];if(!this.opacities[e]){const r=new bt(t,o,!1,!1);r.isHidden()||(this.opacities[e]=r,i=i||t.text.placed||t.icon.placed);}}for(const e in n)this.variableOffsets[e]||!this.opacities[e]||this.opacities[e].isHidden()||(this.variableOffsets[e]=n[e]);for(const e in s)this.placedOrientations[e]||!this.opacities[e]||this.opacities[e].isHidden()||(this.placedOrientations[e]=s[e]);i?this.lastPlacementChangeTime=e:"number"!=typeof this.lastPlacementChangeTime&&(this.lastPlacementChangeTime=t?t.lastPlacementChangeTime:e);}updateLayerOpacities(e,t){const i=new Set;for(const o of t){const t=o.getBucket(e);t&&o.latestFeatureIndex&&e.id===t.layerIds[0]&&this.updateBucketOpacities(t,i,o.collisionBoxArray);}}updateBucketOpacities(t,i,o){t.hasTextData()&&t.text.opacityVertexArray.clear(),t.hasIconData()&&t.icon.opacityVertexArray.clear(),t.hasIconCollisionBoxData()&&t.iconCollisionBox.collisionVertexArray.clear(),t.hasTextCollisionBoxData()&&t.textCollisionBox.collisionVertexArray.clear();const r=t.layers[0].layout,n=!!t.layers[0].dynamicFilter(),s=new bt(null,0,!1,!1,!0),a=r.get("text-allow-overlap"),l=r.get("icon-allow-overlap"),c=r.get("text-variable-anchor"),h="map"===r.get("text-rotation-alignment"),u="map"===r.get("text-pitch-alignment"),_="none"!==r.get("icon-text-fit"),d=new bt(null,0,a&&(l||!t.hasIconData()||r.get("icon-optional")),l&&(a||!t.hasTextData()||r.get("text-optional")),!0);!t.collisionArrays&&o&&(t.hasIconCollisionBoxData()||t.hasTextCollisionBoxData())&&t.deserializeCollisionBoxes(o);const p=(e,t,i)=>{for(let o=0;o0||l>0,b=g>0,w=this.placedOrientations[f],T=w===e.WritingMode.vertical,E=w===e.WritingMode.horizontal||w===e.WritingMode.horizontalOnly;if(!y&&!b||x.isHidden()||m++,y){const e=kt(x.text);p(t.text,a,T?Ft:e),p(t.text,l,E?Ft:e);const i=x.text.isHidden(),{leftJustifiedTextSymbolIndex:o,centerJustifiedTextSymbolIndex:n,rightJustifiedTextSymbolIndex:s,verticalPlacedTextSymbolIndex:c}=r,h=t.text.placedSymbolArray,u=i||T?1:0;o>=0&&(h.get(o).hidden=u),n>=0&&(h.get(n).hidden=u),s>=0&&(h.get(s).hidden=u),c>=0&&(h.get(c).hidden=i||E?1:0);const _=this.variableOffsets[f];_&&this.markUsedJustification(t,_.anchor,r,w);const d=this.placedOrientations[f];d&&(this.markUsedJustification(t,"left",r,d),this.markUsedOrientation(t,d,r));}if(b){const e=kt(x.icon),{placedIconSymbolIndex:i,verticalPlacedIconSymbolIndex:o}=r,n=t.icon.placedSymbolArray,s=x.icon.isHidden()?1:0;i>=0&&(p(t.icon,g,T?Ft:e),n.get(i).hidden=s),o>=0&&(p(t.icon,r.numVerticalIconVertices,E?Ft:e),n.get(o).hidden=s);}if(t.hasIconCollisionBoxData()||t.hasTextCollisionBoxData()){const i=t.collisionArrays[o];if(i){let o=new e.Point(0,0),r=!0;if(i.textBox||i.verticalTextBox){if(c){const e=this.variableOffsets[f];e?(o=Mt(e.anchor,e.width,e.height,e.textOffset,e.textScale),h&&o._rotate(u?this.transform.angle:-this.transform.angle)):r=!1;}n&&(r=!x.clipped),i.textBox&&St(t.textCollisionBox.collisionVertexArray,x.text.placed,!r||T,o.x,o.y),i.verticalTextBox&&St(t.textCollisionBox.collisionVertexArray,x.text.placed,!r||E,o.x,o.y);}const s=r&&Boolean(!E&&i.verticalIconBox);i.iconBox&&St(t.iconCollisionBox.collisionVertexArray,x.icon.placed,s,_?o.x:0,_?o.y:0),i.verticalIconBox&&St(t.iconCollisionBox.collisionVertexArray,x.icon.placed,!s,_?o.x:0,_?o.y:0);}}}if(t.fullyClipped=0===m,t.sortFeatures(this.transform.angle),this.retainedQueryData[t.bucketInstanceId]&&(this.retainedQueryData[t.bucketInstanceId].featureSortOrder=t.featureSortOrder),t.hasTextData()&&t.text.opacityVertexBuffer&&t.text.opacityVertexBuffer.updateData(t.text.opacityVertexArray),t.hasIconData()&&t.icon.opacityVertexBuffer&&t.icon.opacityVertexBuffer.updateData(t.icon.opacityVertexArray),t.hasIconCollisionBoxData()&&t.iconCollisionBox.collisionVertexBuffer&&t.iconCollisionBox.collisionVertexBuffer.updateData(t.iconCollisionBox.collisionVertexArray),t.hasTextCollisionBoxData()&&t.textCollisionBox.collisionVertexBuffer&&t.textCollisionBox.collisionVertexBuffer.updateData(t.textCollisionBox.collisionVertexArray),t.bucketInstanceId in this.collisionCircleArrays){const e=this.collisionCircleArrays[t.bucketInstanceId];t.placementInvProjMatrix=e.invProjMatrix,t.placementViewportMatrix=e.viewportMatrix,t.collisionCircleArray=e.circles,delete this.collisionCircleArrays[t.bucketInstanceId];}}symbolFadeChange(e){return 0===this.fadeDuration?1:(e-this.commitTime)/this.fadeDuration+this.prevZoomAdjustment}zoomAdjustment(e){return Math.max(0,(this.transform.zoom-e)/1.5)}hasTransitions(e){return this.stale||e-this.lastPlacementChangeTimee}setStale(){this.stale=!0;}}function St(e,t,i,o,r){e.emplaceBack(t?1:0,i?1:0,o||0,r||0),e.emplaceBack(t?1:0,i?1:0,o||0,r||0),e.emplaceBack(t?1:0,i?1:0,o||0,r||0),e.emplaceBack(t?1:0,i?1:0,o||0,r||0);}const Dt=Math.pow(2,25),Lt=Math.pow(2,24),At=Math.pow(2,17),zt=Math.pow(2,16),Rt=Math.pow(2,9),Ot=Math.pow(2,8),Bt=Math.pow(2,1);function kt(e){if(0===e.opacity&&!e.placed)return 0;if(1===e.opacity&&e.placed)return 4294967295;const t=e.placed?1:0,i=Math.floor(127*e.opacity);return i*Dt+t*Lt+i*At+t*zt+i*Rt+t*Ot+i*Bt+t}const Ft=0;class Ut{constructor(e){this._sortAcrossTiles="viewport-y"!==e.layout.get("symbol-z-order")&&void 0!==e.layout.get("symbol-sort-key").constantOr(1),this._currentTileIndex=0,this._currentPartIndex=0,this._seenCrossTileIDs=new Set,this._bucketParts=[];}continuePlacement(e,t,i,o,r){const n=this._bucketParts;for(;this._currentTileIndexe.sortKey-t.sortKey)));this._currentPartIndex{const t=e.exported.now()-r;return !this._forceFullPlacement&&t>2};for(;this._currentPlacementIndex>=0;){const e=i[t[this._currentPlacementIndex]],r=this.placement.collisionIndex.transform.zoom;if("symbol"===e.type&&(!e.minzoom||e.minzoom<=r)&&(!e.maxzoom||e.maxzoom>r)){if(this._inProgressLayer||(this._inProgressLayer=new Ut(e)),this._inProgressLayer.continuePlacement(o[e.source],this.placement,this._showCollisionBoxes,e,n))return;delete this._inProgressLayer;}this._currentPlacementIndex--;}this._done=!0;}commit(e){return this.placement.commit(e),this.placement}}const jt=512/e.EXTENT/2;class Gt{constructor(t,i,o){this.tileID=t,this.bucketInstanceId=o,this.index=new e.KDBush(i.length,16,Int32Array),this.keys=[],this.crossTileIDs=[];const r=t.canonical.x*e.EXTENT,n=t.canonical.y*e.EXTENT;for(let e=0;ee.overscaledZ)for(const i in r){const n=r[i];n.tileID.isChildOf(e)&&n.findMatches(t.symbolInstances,e,o);}else {const n=r[e.scaledTo(Number(i)).key];n&&n.findMatches(t.symbolInstances,e,o);}}for(let e=0;e{t[e]=!0;}));for(const e in this.layerIndexes)t[e]||delete this.layerIndexes[e];}}const Xt=(t,i)=>e.emitValidationErrors(t,i&&i.filter((e=>"source.canvas"!==e.identifier))),qt=e.pick(Ge,["addLayer","removeLayer","setPaintProperty","setLayoutProperty","setFilter","addSource","removeSource","setLayerZoomRange","setLight","setTransition","setGeoJSONSourceData","setTerrain","setFog","setProjection"]),$t=e.pick(Ge,["setCenter","setZoom","setBearing","setPitch"]),Ht={version:8,layers:[],sources:{}},Yt={fill:!0,line:!0,background:!0,hillshade:!0,raster:!0};class Kt extends e.Evented{constructor(t,i={}){super(),this.map=t,this.dispatcher=new S(Ue(),this),this.imageManager=new y,this.imageManager.setEventedParent(this),this.glyphManager=new e.GlyphManager(t._requestManager,i.localFontFamily?e.LocalGlyphMode.all:i.localIdeographFontFamily?e.LocalGlyphMode.ideographs:e.LocalGlyphMode.none,i.localFontFamily||i.localIdeographFontFamily),this.crossTileSymbolIndex=new Wt,this._layers={},this._num3DLayers=0,this._numSymbolLayers=0,this._numCircleLayers=0,this._serializedLayers={},this._sourceCaches={},this._otherSourceCaches={},this._symbolSourceCaches={},this._loaded=!1,this._availableImages=[],this._order=[],this._drapedFirstOrder=[],this._markersNeedUpdate=!1,this._resetUpdates(),this.dispatcher.broadcast("setReferrer",e.getReferrer());const o=this;this._rtlTextPluginCallback=Kt.registerForPluginStateChange((t=>{o.dispatcher.broadcast("syncRTLPluginState",{pluginStatus:t.pluginStatus,pluginURL:t.pluginURL},((t,i)=>{if(e.triggerPluginCompletionEvent(t),i&&i.every((e=>e)))for(const e in o._sourceCaches){const t=o._sourceCaches[e],i=t.getSource().type;"vector"!==i&&"geojson"!==i||t.reload();}}));})),this.on("data",(e=>{if("source"!==e.dataType||"metadata"!==e.sourceDataType)return;const t=this.getSource(e.sourceId);if(t&&t.vectorLayerIds)for(const e in this._layers){const i=this._layers[e];i.source===t.id&&this._validateLayer(i);}}));}loadURL(t,i={}){this.fire(new e.Event("dataloading",{dataType:"style"}));const o="boolean"==typeof i.validate?i.validate:!e.isMapboxURL(t);t=this.map._requestManager.normalizeStyleURL(t,i.accessToken);const r=this.map._requestManager.transformRequest(t,e.ResourceType.Style);this._request=e.getJSON(r,((t,i)=>{this._request=null,t?this.fire(new e.ErrorEvent(t)):i&&this._load(i,o);}));}loadJSON(t,i={}){this.fire(new e.Event("dataloading",{dataType:"style"})),this._request=e.exported.frame((()=>{this._request=null,this._load(t,!1!==i.validate);}));}loadEmpty(){this.fire(new e.Event("dataloading",{dataType:"style"})),this._load(Ht,!1);}_updateLayerCount(e,t){const i=t?1:-1;e.is3D()&&(this._num3DLayers+=i),"circle"===e.type&&(this._numCircleLayers+=i),"symbol"===e.type&&(this._numSymbolLayers+=i);}_load(t,i){if(i&&Xt(this,e.validateStyle(t)))return;this._loaded=!0,this.stylesheet=e.clone$1(t),this._updateMapProjection();for(const e in t.sources)this.addSource(e,t.sources[e],{validate:!1});this._changed=!1,t.sprite?this._loadSprite(t.sprite):(this.imageManager.setLoaded(!0),this.dispatcher.broadcast("spriteLoaded",!0)),this.glyphManager.setURL(t.glyphs);const o=je(this.stylesheet.layers);this._order=o.map((e=>e.id)),this._layers={},this._serializedLayers={};for(const t of o){const i=e.createStyleLayer(t);i.setEventedParent(this,{layer:{id:i.id}}),this._layers[i.id]=i,this._serializedLayers[i.id]=i.serialize(),this._updateLayerCount(i,!0);}this.dispatcher.broadcast("setLayers",this._serializeLayers(this._order)),this.light=new w(this.stylesheet.light),this.stylesheet.terrain&&!this.terrainSetForDrapingOnly()&&this._createTerrain(this.stylesheet.terrain,1),this.stylesheet.fog&&this._createFog(this.stylesheet.fog),this._updateDrapeFirstLayers(),this.fire(new e.Event("data",{dataType:"style"})),this.fire(new e.Event("style.load"));}terrainSetForDrapingOnly(){return !!this.terrain&&0===this.terrain.drapeRenderMode}setProjection(e){e?this.stylesheet.projection=e:delete this.stylesheet.projection,this._updateMapProjection();}applyProjectionUpdate(){this._loaded&&(this.dispatcher.broadcast("setProjection",this.map.transform.projectionOptions),this.map.transform.projection.requiresDraping?this.getTerrain()||this.stylesheet.terrain||this.setTerrainForDraping():this.terrainSetForDrapingOnly()&&this.setTerrain(null));}_updateMapProjection(){this.map._useExplicitProjection?this.applyProjectionUpdate():this.map._prioritizeAndUpdateProjection(null,this.stylesheet.projection);}_loadSprite(t){this._spriteRequest=function(t,i,o){let r,n,s;const a=e.exported.devicePixelRatio>1?"@2x":"";let l=e.getJSON(i.transformRequest(i.normalizeSpriteURL(t,a,".json"),e.ResourceType.SpriteJSON),((e,t)=>{l=null,s||(s=e,r=t,h());})),c=e.getImage(i.transformRequest(i.normalizeSpriteURL(t,a,".png"),e.ResourceType.SpriteImage),((e,t)=>{c=null,s||(s=e,n=t,h());}));function h(){if(s)o(s);else if(r&&n){const t=e.exported.getImageData(n),i={};for(const o in r){const{width:n,height:s,x:a,y:l,sdf:c,pixelRatio:h,stretchX:u,stretchY:_,content:d}=r[o],p=new e.RGBAImage({width:n,height:s});e.RGBAImage.copy(t,p,{x:a,y:l},{x:0,y:0},{width:n,height:s}),i[o]={data:p,pixelRatio:h,sdf:c,stretchX:u,stretchY:_,content:d};}o(null,i);}}return {cancel(){l&&(l.cancel(),l=null),c&&(c.cancel(),c=null);}}}(t,this.map._requestManager,((t,i)=>{if(this._spriteRequest=null,t)this.fire(new e.ErrorEvent(t));else if(i)for(const e in i)this.imageManager.addImage(e,i[e]);this.imageManager.setLoaded(!0),this._availableImages=this.imageManager.listImages(),this.dispatcher.broadcast("setImages",this._availableImages),this.dispatcher.broadcast("spriteLoaded",!0),this.fire(new e.Event("data",{dataType:"style"}));}));}_validateLayer(t){const i=this.getSource(t.source);if(!i)return;const o=t.sourceLayer;o&&("geojson"===i.type||i.vectorLayerIds&&-1===i.vectorLayerIds.indexOf(o))&&this.fire(new e.ErrorEvent(new Error(`Source layer "${o}" does not exist on source "${i.id}" as specified by style layer "${t.id}"`)));}loaded(){if(!this._loaded)return !1;if(Object.keys(this._updatedSources).length)return !1;for(const e in this._sourceCaches)if(!this._sourceCaches[e].loaded())return !1;return !!this.imageManager.isLoaded()}_serializeLayers(e){const t=[];for(const i of e){const e=this._layers[i];"custom"!==e.type&&t.push(e.serialize());}return t}hasTransitions(){if(this.light&&this.light.hasTransition())return !0;if(this.fog&&this.fog.hasTransition())return !0;for(const e in this._sourceCaches)if(this._sourceCaches[e].hasTransition())return !0;for(const e in this._layers)if(this._layers[e].hasTransition())return !0;return !1}get order(){return this.map._optimizeForTerrain&&this.terrain?this._drapedFirstOrder:this._order}isLayerDraped(e){return !!this.terrain&&("function"==typeof e.isLayerDraped?e.isLayerDraped():Yt[e.type])}_checkLoaded(){if(!this._loaded)throw new Error("Style is not done loading")}update(t){if(!this._loaded)return;const i=this._changed;if(this._changed){const e=Object.keys(this._updatedLayers),i=Object.keys(this._removedLayers);(e.length||i.length)&&this._updateWorkerLayers(e,i);for(const e in this._updatedSources){const t=this._updatedSources[e];"reload"===t?this._reloadSource(e):"clear"===t&&this._clearSource(e);}this._updateTilesForChangedImages();for(const e in this._updatedPaintProps)this._layers[e].updateTransitions(t);this.light.updateTransitions(t),this.fog&&this.fog.updateTransitions(t),this._resetUpdates();}const o={};for(const e in this._sourceCaches){const t=this._sourceCaches[e];o[e]=t.used,t.used=!1;}for(const e of this._order){const i=this._layers[e];if(i.recalculate(t,this._availableImages),!i.isHidden(t.zoom)){const e=this._getLayerSourceCache(i);e&&(e.used=!0);}const o=this.map.painter;if(o){const e=i.getProgramIds();if(!e)continue;const r=i.getProgramConfiguration(t.zoom);for(const t of e)o.useProgram(t,r);}}for(const t in o){const i=this._sourceCaches[t];o[t]!==i.used&&i.getSource().fire(new e.Event("data",{sourceDataType:"visibility",dataType:"source",sourceId:i.getSource().id}));}this.light.recalculate(t),this.terrain&&this.terrain.recalculate(t),this.fog&&this.fog.recalculate(t),this.z=t.zoom,this._markersNeedUpdate&&(this._updateMarkersOpacity(),this._markersNeedUpdate=!1),i&&this.fire(new e.Event("data",{dataType:"style"}));}_updateTilesForChangedImages(){const e=Object.keys(this._changedImages);if(e.length){for(const t in this._sourceCaches)this._sourceCaches[t].reloadTilesForDependencies(["icons","patterns"],e);this._changedImages={};}}_updateWorkerLayers(e,t){this.dispatcher.broadcast("updateLayers",{layers:this._serializeLayers(e),removedIds:t});}_resetUpdates(){this._changed=!1,this._updatedLayers={},this._removedLayers={},this._updatedSources={},this._updatedPaintProps={},this._changedImages={};}setState(i){if(this._checkLoaded(),Xt(this,e.validateStyle(i)))return !1;(i=e.clone$1(i)).layers=je(i.layers);const o=function(e,i){if(!e)return [{command:Ge.setStyle,args:[i]}];let o=[];try{if(!t(e.version,i.version))return [{command:Ge.setStyle,args:[i]}];t(e.center,i.center)||o.push({command:Ge.setCenter,args:[i.center]}),t(e.zoom,i.zoom)||o.push({command:Ge.setZoom,args:[i.zoom]}),t(e.bearing,i.bearing)||o.push({command:Ge.setBearing,args:[i.bearing]}),t(e.pitch,i.pitch)||o.push({command:Ge.setPitch,args:[i.pitch]}),t(e.sprite,i.sprite)||o.push({command:Ge.setSprite,args:[i.sprite]}),t(e.glyphs,i.glyphs)||o.push({command:Ge.setGlyphs,args:[i.glyphs]}),t(e.transition,i.transition)||o.push({command:Ge.setTransition,args:[i.transition]}),t(e.light,i.light)||o.push({command:Ge.setLight,args:[i.light]}),t(e.fog,i.fog)||o.push({command:Ge.setFog,args:[i.fog]}),t(e.projection,i.projection)||o.push({command:Ge.setProjection,args:[i.projection]});const r={},n=[];!function(e,i,o,r){let n;for(n in i=i||{},e=e||{})e.hasOwnProperty(n)&&(i.hasOwnProperty(n)||Ve(n,o,r));for(n in i){if(!i.hasOwnProperty(n))continue;const s=i[n];e.hasOwnProperty(n)?t(e[n],s)||("geojson"===e[n].type&&"geojson"===s.type&&Xe(e,i,n)?o.push({command:Ge.setGeoJSONSourceData,args:[n,s.data]}):We(n,i,o,r)):Ze(n,i,o);}}(e.sources,i.sources,n,r);const s=[];e.layers&&e.layers.forEach((e=>{e.source&&r[e.source]?o.push({command:Ge.removeLayer,args:[e.id]}):s.push(e);}));let a=e.terrain;a&&r[a.source]&&(o.push({command:Ge.setTerrain,args:[void 0]}),a=void 0),o=o.concat(n),t(a,i.terrain)||o.push({command:Ge.setTerrain,args:[i.terrain]}),function(e,i,o){i=i||[];const r=(e=e||[]).map($e),n=i.map($e),s=e.reduce(He,{}),a=i.reduce(He,{}),l=r.slice(),c=Object.create(null);let h,u,_,d,p,m,f;for(h=0,u=0;h!(e.command in $t)));if(0===o.length)return !1;const r=o.filter((e=>!(e.command in qt)));if(r.length>0)throw new Error(`Unimplemented: ${r.map((e=>e.command)).join(", ")}.`);return o.forEach((e=>{"setTransition"!==e.command&&"setProjection"!==e.command&&this[e.command].apply(this,e.args);})),this.stylesheet=i,this._updateMapProjection(),!0}addImage(t,i){return this.getImage(t)?this.fire(new e.ErrorEvent(new Error("An image with this name already exists."))):(this.imageManager.addImage(t,i),this._afterImageUpdated(t),this)}updateImage(e,t){this.imageManager.updateImage(e,t);}getImage(e){return this.imageManager.getImage(e)}removeImage(t){return this.getImage(t)?(this.imageManager.removeImage(t),this._afterImageUpdated(t),this):this.fire(new e.ErrorEvent(new Error("No image with this name exists.")))}_afterImageUpdated(t){this._availableImages=this.imageManager.listImages(),this._changedImages[t]=!0,this._changed=!0,this.dispatcher.broadcast("setImages",this._availableImages),this.fire(new e.Event("data",{dataType:"style"}));}listImages(){return this._checkLoaded(),this._availableImages.slice()}addSource(t,i,o={}){if(this._checkLoaded(),void 0!==this.getSource(t))throw new Error("There is already a source with this ID");if(!i.type)throw new Error(`The type property must be defined, but only the following properties were given: ${Object.keys(i).join(", ")}.`);if(["vector","raster","geojson","video","image"].indexOf(i.type)>=0&&this._validate(e.validateSource,`sources.${t}`,i,null,o))return;this.map&&this.map._collectResourceTiming&&(i.collectResourceTiming=!0);const r=De(t,i,this.dispatcher,this);r.setEventedParent(this,(()=>({isSourceLoaded:this._isSourceCacheLoaded(t),source:r.serialize(),sourceId:t})));const n=i=>{const o=(i?"symbol:":"other:")+t,n=this._sourceCaches[o]=new e.SourceCache(o,r,i);(i?this._symbolSourceCaches:this._otherSourceCaches)[t]=n,n.style=this,n.onAdd(this.map);};n(!1),"vector"!==i.type&&"geojson"!==i.type||n(!0),r.onAdd&&r.onAdd(this.map),this._changed=!0;}removeSource(t){this._checkLoaded();const i=this.getSource(t);if(!i)throw new Error("There is no source with this ID");for(const i in this._layers)if(this._layers[i].source===t)return this.fire(new e.ErrorEvent(new Error(`Source "${t}" cannot be removed while layer "${i}" is using it.`)));if(this.terrain&&this.terrain.get().source===t)return this.fire(new e.ErrorEvent(new Error(`Source "${t}" cannot be removed while terrain is using it.`)));const o=this._getSourceCaches(t);for(const t of o)delete this._sourceCaches[t.id],delete this._updatedSources[t.id],t.fire(new e.Event("data",{sourceDataType:"metadata",dataType:"source",sourceId:t.getSource().id})),t.setEventedParent(null),t.clearTiles();return delete this._otherSourceCaches[t],delete this._symbolSourceCaches[t],i.setEventedParent(null),i.onRemove&&i.onRemove(this.map),this._changed=!0,this}setGeoJSONSourceData(e,t){this._checkLoaded(),this.getSource(e).setData(t),this._changed=!0;}getSource(e){const t=this._getSourceCache(e);return t&&t.getSource()}_getSources(){const e=[];for(const t in this._otherSourceCaches){const i=this._getSourceCache(t);i&&e.push(i.getSource());}return e}addLayer(t,i,o={}){this._checkLoaded();const r=t.id;if(this.getLayer(r))return void this.fire(new e.ErrorEvent(new Error(`Layer with id "${r}" already exists on this map`)));let n;if("custom"===t.type){if(Xt(this,e.validateCustomStyleLayer(t)))return;n=e.createStyleLayer(t);}else {if("object"==typeof t.source&&(this.addSource(r,t.source),t=e.clone$1(t),t=e.extend(t,{source:r})),this._validate(e.validateLayer,`layers.${r}`,t,{arrayIndex:-1},o))return;n=e.createStyleLayer(t),this._validateLayer(n),n.setEventedParent(this,{layer:{id:r}}),this._serializedLayers[n.id]=n.serialize(),this._updateLayerCount(n,!0);}const s=i?this._order.indexOf(i):this._order.length;if(i&&-1===s)return void this.fire(new e.ErrorEvent(new Error(`Layer with id "${i}" does not exist on this map.`)));this._order.splice(s,0,r),this._layerOrderChanged=!0,this._layers[r]=n;const a=this._getLayerSourceCache(n);if(this._removedLayers[r]&&n.source&&a&&"custom"!==n.type){const e=this._removedLayers[r];delete this._removedLayers[r],e.type!==n.type?this._updatedSources[n.source]="clear":(this._updatedSources[n.source]="reload",a.pause());}this._updateLayer(n),n.onAdd&&n.onAdd(this.map),this._updateDrapeFirstLayers();}moveLayer(t,i){if(this._checkLoaded(),this._changed=!0,!this._layers[t])return void this.fire(new e.ErrorEvent(new Error(`The layer '${t}' does not exist in the map's style and cannot be moved.`)));if(t===i)return;const o=this._order.indexOf(t);this._order.splice(o,1);const r=i?this._order.indexOf(i):this._order.length;i&&-1===r?this.fire(new e.ErrorEvent(new Error(`Layer with id "${i}" does not exist on this map.`))):(this._order.splice(r,0,t),this._layerOrderChanged=!0,this._updateDrapeFirstLayers());}removeLayer(t){this._checkLoaded();const i=this._layers[t];if(!i)return void this.fire(new e.ErrorEvent(new Error(`The layer '${t}' does not exist in the map's style and cannot be removed.`)));i.setEventedParent(null),this._updateLayerCount(i,!1);const o=this._order.indexOf(t);this._order.splice(o,1),this._layerOrderChanged=!0,this._changed=!0,this._removedLayers[t]=i,delete this._layers[t],delete this._serializedLayers[t],delete this._updatedLayers[t],delete this._updatedPaintProps[t],i.onRemove&&i.onRemove(this.map),this._updateDrapeFirstLayers();}getLayer(e){return this._layers[e]}hasLayer(e){return e in this._layers}hasLayerType(e){for(const t in this._layers)if(this._layers[t].type===e)return !0;return !1}setLayerZoomRange(t,i,o){this._checkLoaded();const r=this.getLayer(t);r?r.minzoom===i&&r.maxzoom===o||(null!=i&&(r.minzoom=i),null!=o&&(r.maxzoom=o),this._updateLayer(r)):this.fire(new e.ErrorEvent(new Error(`The layer '${t}' does not exist in the map's style and cannot have zoom extent.`)));}setFilter(i,o,r={}){this._checkLoaded();const n=this.getLayer(i);if(n){if(!t(n.filter,o))return null==o?(n.filter=void 0,void this._updateLayer(n)):void(this._validate(e.validateFilter,`layers.${n.id}.filter`,o,{layerType:n.type},r)||(n.filter=e.clone$1(o),this._updateLayer(n)))}else this.fire(new e.ErrorEvent(new Error(`The layer '${i}' does not exist in the map's style and cannot be filtered.`)));}getFilter(t){const i=this.getLayer(t);return i&&e.clone$1(i.filter)}setLayoutProperty(i,o,r,n={}){this._checkLoaded();const s=this.getLayer(i);s?t(s.getLayoutProperty(o),r)||(s.setLayoutProperty(o,r,n),this._updateLayer(s)):this.fire(new e.ErrorEvent(new Error(`The layer '${i}' does not exist in the map's style and cannot be styled.`)));}getLayoutProperty(t,i){const o=this.getLayer(t);if(o)return o.getLayoutProperty(i);this.fire(new e.ErrorEvent(new Error(`The layer '${t}' does not exist in the map's style.`)));}setPaintProperty(i,o,r,n={}){this._checkLoaded();const s=this.getLayer(i);s?t(s.getPaintProperty(o),r)||(s.setPaintProperty(o,r,n)&&this._updateLayer(s),this._changed=!0,this._updatedPaintProps[i]=!0):this.fire(new e.ErrorEvent(new Error(`The layer '${i}' does not exist in the map's style and cannot be styled.`)));}getPaintProperty(e,t){const i=this.getLayer(e);return i&&i.getPaintProperty(t)}setFeatureState(t,i){this._checkLoaded();const o=t.source,r=t.sourceLayer,n=this.getSource(o);if(!n)return void this.fire(new e.ErrorEvent(new Error(`The source '${o}' does not exist in the map's style.`)));const s=n.type;if("geojson"===s&&r)return void this.fire(new e.ErrorEvent(new Error("GeoJSON sources cannot have a sourceLayer parameter.")));if("vector"===s&&!r)return void this.fire(new e.ErrorEvent(new Error("The sourceLayer parameter must be provided for vector source types.")));void 0===t.id&&this.fire(new e.ErrorEvent(new Error("The feature id parameter must be provided.")));const a=this._getSourceCaches(o);for(const e of a)e.setFeatureState(r,t.id,i);}removeFeatureState(t,i){this._checkLoaded();const o=t.source,r=this.getSource(o);if(!r)return void this.fire(new e.ErrorEvent(new Error(`The source '${o}' does not exist in the map's style.`)));const n=r.type,s="vector"===n?t.sourceLayer:void 0;if("vector"===n&&!s)return void this.fire(new e.ErrorEvent(new Error("The sourceLayer parameter must be provided for vector source types.")));if(i&&"string"!=typeof t.id&&"number"!=typeof t.id)return void this.fire(new e.ErrorEvent(new Error("A feature id is required to remove its specific state property.")));const a=this._getSourceCaches(o);for(const e of a)e.removeFeatureState(s,t.id,i);}getFeatureState(t){this._checkLoaded();const i=t.source,o=t.sourceLayer,r=this.getSource(i);if(r){if("vector"!==r.type||o)return void 0===t.id&&this.fire(new e.ErrorEvent(new Error("The feature id parameter must be provided."))),this._getSourceCaches(i)[0].getFeatureState(o,t.id);this.fire(new e.ErrorEvent(new Error("The sourceLayer parameter must be provided for vector source types.")));}else this.fire(new e.ErrorEvent(new Error(`The source '${i}' does not exist in the map's style.`)));}getTransition(){return e.extend({duration:300,delay:0},this.stylesheet&&this.stylesheet.transition)}serialize(){const t={};for(const e in this._sourceCaches){const i=this._sourceCaches[e].getSource();t[i.id]||(t[i.id]=i.serialize());}return e.filterObject({version:this.stylesheet.version,name:this.stylesheet.name,metadata:this.stylesheet.metadata,light:this.stylesheet.light,terrain:this.getTerrain()||void 0,fog:this.stylesheet.fog,center:this.stylesheet.center,zoom:this.stylesheet.zoom,bearing:this.stylesheet.bearing,pitch:this.stylesheet.pitch,sprite:this.stylesheet.sprite,glyphs:this.stylesheet.glyphs,transition:this.stylesheet.transition,projection:this.stylesheet.projection,sources:t,layers:this._serializeLayers(this._order)},(e=>void 0!==e))}_updateLayer(e){this._updatedLayers[e.id]=!0;const t=this._getLayerSourceCache(e);e.source&&!this._updatedSources[e.source]&&t&&"raster"!==t.getSource().type&&(this._updatedSources[e.source]="reload",t.pause()),this._changed=!0,e.invalidateCompiledFilter();}_flattenAndSortRenderedFeatures(e){const t=e=>"fill-extrusion"===this._layers[e].type,i={},o=[];for(let r=this._order.length-1;r>=0;r--){const n=this._order[r];if(t(n)){i[n]=r;for(const t of e){const e=t[n];if(e)for(const t of e)o.push(t);}}}o.sort(((e,t)=>t.intersectionZ-e.intersectionZ));const r=[];for(let n=this._order.length-1;n>=0;n--){const s=this._order[n];if(t(s))for(let e=o.length-1;e>=0;e--){const t=o[e].feature;if(i[t.layer.id]{const t=this.getLayer(e);return t&&t.is3D()})):this.has3DLayers(),a=L.createFromScreenPoints(t,o);for(const e in this._sourceCaches){const t=this._sourceCaches[e].getSource().id;i.layers&&!r[t]||n.push(Ae(this._sourceCaches[e],this._layers,this._serializedLayers,a,i,o,s,!!this.map._showQueryGeometry));}return this.placement&&n.push(function(e,t,i,o,r,n,s){const a={},l=n.queryRenderedSymbols(o),c=[];for(const e of Object.keys(l).map(Number))c.push(s[e]);c.sort(Re);for(const i of c){const o=i.featureIndex.lookupSymbolFeatures(l[i.bucketInstanceId],t,i.bucketIndex,i.sourceLayerIndex,r.filter,r.layers,r.availableImages,e);for(const e in o){const t=a[e]=a[e]||[],r=o[e];r.sort(((e,t)=>{const o=i.featureSortOrder;if(o){const i=o.indexOf(e.featureIndex);return o.indexOf(t.featureIndex)-i}return t.featureIndex-e.featureIndex}));for(const e of r)t.push(e);}}for(const t in a)a[t].forEach((o=>{const r=o.feature,n=i(e[t]);if(!n)return;const s=n.getFeatureState(r.layer["source-layer"],r.id);r.source=r.layer.source,r.layer["source-layer"]&&(r.sourceLayer=r.layer["source-layer"]),r.state=s;}));return a}(this._layers,this._serializedLayers,this._getLayerSourceCache.bind(this),a.screenGeometry,i,this.placement.collisionIndex,this.placement.retainedQueryData)),this._flattenAndSortRenderedFeatures(n)}querySourceFeatures(t,i){i&&i.filter&&this._validate(e.validateFilter,"querySourceFeatures.filter",i.filter,null,i);const o=this._getSourceCaches(t);let r=[];for(const e of o)r=r.concat(ze(e,i));return r}addSourceType(e,t,i){return Kt.getSourceType(e)?i(new Error(`A source type called "${e}" already exists.`)):(Kt.setSourceType(e,t),t.workerSourceURL?void this.dispatcher.broadcast("loadWorkerSource",{name:e,url:t.workerSourceURL},i):i(null,null))}getLight(){return this.light.getLight()}setLight(e,i={}){this._checkLoaded();const o=this.light.getLight();let r=!1;for(const i in e)if(!t(e[i],o[i])){r=!0;break}if(!r)return;const n=this._setTransitionParameters({duration:300,delay:0});this.light.setLight(e,i),this.light.updateTransitions(n);}getTerrain(){return this.terrain&&1===this.terrain.drapeRenderMode?this.terrain.get():null}setTerrainForDraping(){this.setTerrain({source:"",exaggeration:0},0);}setTerrain(i,o=1){if(this._checkLoaded(),!i)return delete this.terrain,delete this.stylesheet.terrain,this.dispatcher.broadcast("enableTerrain",!1),this._force3DLayerUpdate(),void(this._markersNeedUpdate=!0);let r=i;if(1===o){if("object"==typeof r.source){const t="terrain-dem-src";this.addSource(t,r.source),r=e.clone$1(r),r=e.extend(r,{source:t});}if(this._validate(e.validateTerrain,"terrain",r))return}if(!this.terrain||this.terrain&&o!==this.terrain.drapeRenderMode){if(!r)return;this._createTerrain(r,o);}else {const i=this.terrain,o=i.get();for(const t of Object.keys(e.spec.terrain))!r.hasOwnProperty(t)&&e.spec.terrain[t].default&&(r[t]=e.spec.terrain[t].default);for(const e in r)if(!t(r[e],o[e])){i.set(r),this.stylesheet.terrain=r;const e=this._setTransitionParameters({duration:0});i.updateTransitions(e);break}}this._updateDrapeFirstLayers(),this._markersNeedUpdate=!0;}_createFog(e){const t=this.fog=new P(e,this.map.transform);this.stylesheet.fog=e;const i=this._setTransitionParameters({duration:0});t.updateTransitions(i);}_updateMarkersOpacity(){0!==this.map._markers.length&&this.map._requestDomTask((()=>{for(const e of this.map._markers)e._evaluateOpacity();}));}getFog(){return this.fog?this.fog.get():null}setFog(e){if(this._checkLoaded(),!e)return delete this.fog,delete this.stylesheet.fog,void(this._markersNeedUpdate=!0);if(this.fog){const i=this.fog,o=i.get();0===Object.keys(e).length&&i.set(e);for(const r in e)if(!t(e[r],o[r])){i.set(e),this.stylesheet.fog=e;const t=this._setTransitionParameters({duration:0});i.updateTransitions(t);break}}else this._createFog(e);this._markersNeedUpdate=!0;}_setTransitionParameters(t){return {now:e.exported.now(),transition:e.extend(t,this.stylesheet.transition)}}_updateDrapeFirstLayers(){if(!this.map._optimizeForTerrain||!this.terrain)return;const e=this._order.filter((e=>this.isLayerDraped(this._layers[e]))),t=this._order.filter((e=>!this.isLayerDraped(this._layers[e])));this._drapedFirstOrder=[],this._drapedFirstOrder.push(...e),this._drapedFirstOrder.push(...t);}_createTerrain(e,t){const i=this.terrain=new E(e,t);this.stylesheet.terrain=e,this.dispatcher.broadcast("enableTerrain",!this.terrainSetForDrapingOnly()),this._force3DLayerUpdate();const o=this._setTransitionParameters({duration:0});i.updateTransitions(o);}_force3DLayerUpdate(){for(const e in this._layers){const t=this._layers[e];"fill-extrusion"===t.type&&this._updateLayer(t);}}_forceSymbolLayerUpdate(){for(const e in this._layers){const t=this._layers[e];"symbol"===t.type&&this._updateLayer(t);}}_validate(t,i,o,r,n={}){return (!n||!1!==n.validate)&&Xt(this,t.call(e.validateStyle,e.extend({key:i,style:this.serialize(),value:o,styleSpec:e.spec},r)))}_remove(){this._request&&(this._request.cancel(),this._request=null),this._spriteRequest&&(this._spriteRequest.cancel(),this._spriteRequest=null),e.evented.off("pluginStateChange",this._rtlTextPluginCallback);for(const e in this._layers)this._layers[e].setEventedParent(null);for(const e in this._sourceCaches)this._sourceCaches[e].clearTiles(),this._sourceCaches[e].setEventedParent(null);this.imageManager.setEventedParent(null),this.setEventedParent(null),this.dispatcher.remove();}_clearSource(e){const t=this._getSourceCaches(e);for(const e of t)e.clearTiles();}_reloadSource(e){const t=this._getSourceCaches(e);for(const e of t)e.resume(),e.reload();}_reloadSources(){for(const e of this._getSources())e.reload&&e.reload();}_updateSources(e){for(const t in this._sourceCaches)this._sourceCaches[t].update(e);}_generateCollisionBoxes(){for(const e in this._sourceCaches){const t=this._sourceCaches[e];t.resume(),t.reload();}}_updatePlacement(t,i,o,r,n=!1){let s=!1,a=!1;const l={};for(const e of this._order){const i=this._layers[e];if("symbol"!==i.type)continue;if(!l[i.source]){const e=this._getLayerSourceCache(i);if(!e)continue;l[i.source]=e.getRenderableIds(!0).map((t=>e.getTileByID(t))).sort(((e,t)=>t.tileID.overscaledZ-e.tileID.overscaledZ||(e.tileID.isLessThan(t.tileID)?-1:1)));}const o=this.crossTileSymbolIndex.addLayer(i,l[i.source],t.center.lng,t.projection);s=s||o;}if(this.crossTileSymbolIndex.pruneUnusedLayers(this._order),n=n||this._layerOrderChanged||0===o,this._layerOrderChanged&&this.fire(new e.Event("neworder")),(n||!this.pauseablePlacement||this.pauseablePlacement.isDone()&&!this.placement.stillRecent(e.exported.now(),t.zoom))&&(this.pauseablePlacement=new Nt(t,this._order,n,i,o,r,this.placement,this.fog&&t.projection.supportsFog?this.fog.state:null),this._layerOrderChanged=!1),this.pauseablePlacement.isDone()?this.placement.setStale():(this.pauseablePlacement.continuePlacement(this._order,this._layers,l),this.pauseablePlacement.isDone()&&(this.placement=this.pauseablePlacement.commit(e.exported.now()),a=!0),s&&this.pauseablePlacement.placement.setStale()),a||s)for(const e of this._order){const t=this._layers[e];"symbol"===t.type&&this.placement.updateLayerOpacities(t,l[t.source]);}return !this.pauseablePlacement.isDone()||this.placement.hasTransitions(e.exported.now())}_releaseSymbolFadeTiles(){for(const e in this._sourceCaches)this._sourceCaches[e].releaseSymbolFadeTiles();}getImages(e,t,i){this.imageManager.getImages(t.icons,i),this._updateTilesForChangedImages();const o=e=>{e&&e.setDependencies(t.tileID.key,t.type,t.icons);};o(this._otherSourceCaches[t.source]),o(this._symbolSourceCaches[t.source]);}getGlyphs(e,t,i){this.glyphManager.getGlyphs(t.stacks,i);}getResource(t,i,o){return e.makeRequest(i,o)}_getSourceCache(e){return this._otherSourceCaches[e]}_getLayerSourceCache(e){return "symbol"===e.type?this._symbolSourceCaches[e.source]:this._otherSourceCaches[e.source]}_getSourceCaches(e){const t=[];return this._otherSourceCaches[e]&&t.push(this._otherSourceCaches[e]),this._symbolSourceCaches[e]&&t.push(this._symbolSourceCaches[e]),t}_isSourceCacheLoaded(t){const i=this._getSourceCaches(t);return 0===i.length?(this.fire(new e.ErrorEvent(new Error(`There is no source with ID '${t}'`))),!1):i.every((e=>e.loaded()))}has3DLayers(){return this._num3DLayers>0}hasSymbolLayers(){return this._numSymbolLayers>0}hasCircleLayers(){return this._numCircleLayers>0}_clearWorkerCaches(){this.dispatcher.broadcast("clearCaches");}destroy(){this._clearWorkerCaches(),this.terrainSetForDrapingOnly()&&(delete this.terrain,delete this.stylesheet.terrain);}}Kt.getSourceType=function(e){return Se[e]},Kt.setSourceType=function(e,t){Se[e]=t;},Kt.registerForPluginStateChange=e.registerForPluginStateChange;var Jt="\n#define EPSILON 0.0000001\n#define PI 3.141592653589793\n#define EXTENT 8192.0\n#define HALF_PI PI/2.0\n#define QUARTER_PI PI/4.0\n#define RAD_TO_DEG 180.0/PI\n#define DEG_TO_RAD PI/180.0\n#define GLOBE_RADIUS EXTENT/PI/2.0",Qt="attribute highp vec3 a_pos_3f;uniform lowp mat4 u_matrix;varying highp vec3 v_uv;void main() {const mat3 half_neg_pi_around_x=mat3(1.0,0.0, 0.0,0.0,0.0,-1.0,0.0,1.0, 0.0);v_uv=half_neg_pi_around_x*a_pos_3f;vec4 pos=u_matrix*vec4(a_pos_3f,1.0);gl_Position=pos.xyww;}",ei="\n#define ELEVATION_SCALE 7.0\n#define ELEVATION_OFFSET 450.0\n#ifdef PROJECTION_GLOBE_VIEW\nuniform vec3 u_tile_tl_up;uniform vec3 u_tile_tr_up;uniform vec3 u_tile_br_up;uniform vec3 u_tile_bl_up;uniform float u_tile_up_scale;vec3 elevationVector(vec2 pos) {vec2 uv=pos/EXTENT;vec3 up=normalize(mix(\nmix(u_tile_tl_up,u_tile_tr_up,uv.xxx),mix(u_tile_bl_up,u_tile_br_up,uv.xxx),uv.yyy));return up*u_tile_up_scale;}\n#else\nvec3 elevationVector(vec2 pos) { return vec3(0,0,1); }\n#endif\nconst float skirtOffset=24575.0;vec3 decomposeToPosAndSkirt(vec2 posWithComposedSkirt)\n{float skirt=float(posWithComposedSkirt.x >=skirtOffset);vec2 pos=posWithComposedSkirt-vec2(skirt*skirtOffset,0.0);return vec3(pos,skirt);}\n#ifdef TERRAIN\n#ifdef TERRAIN_DEM_FLOAT_FORMAT\nuniform highp sampler2D u_dem;uniform highp sampler2D u_dem_prev;\n#else\nuniform sampler2D u_dem;uniform sampler2D u_dem_prev;\n#endif\nuniform vec4 u_dem_unpack;uniform vec2 u_dem_tl;uniform vec2 u_dem_tl_prev;uniform float u_dem_scale;uniform float u_dem_scale_prev;uniform float u_dem_size;uniform float u_dem_lerp;uniform float u_exaggeration;uniform float u_meter_to_dem;uniform mat4 u_label_plane_matrix_inv;uniform sampler2D u_depth;uniform vec2 u_depth_size_inv;vec4 tileUvToDemSample(vec2 uv,float dem_size,float dem_scale,vec2 dem_tl) {vec2 pos=dem_size*(uv*dem_scale+dem_tl)+1.0;vec2 f=fract(pos);return vec4((pos-f+0.5)/(dem_size+2.0),f);}float decodeElevation(vec4 v) {return dot(vec4(v.xyz*255.0,-1.0),u_dem_unpack);}float currentElevation(vec2 apos) {\n#ifdef TERRAIN_DEM_FLOAT_FORMAT\nvec2 pos=(u_dem_size*(apos/8192.0*u_dem_scale+u_dem_tl)+1.5)/(u_dem_size+2.0);return u_exaggeration*texture2D(u_dem,pos).a;\n#else\nfloat dd=1.0/(u_dem_size+2.0);vec4 r=tileUvToDemSample(apos/8192.0,u_dem_size,u_dem_scale,u_dem_tl);vec2 pos=r.xy;vec2 f=r.zw;float tl=decodeElevation(texture2D(u_dem,pos));\n#ifdef TERRAIN_DEM_NEAREST_FILTER\nreturn u_exaggeration*tl;\n#endif\nfloat tr=decodeElevation(texture2D(u_dem,pos+vec2(dd,0.0)));float bl=decodeElevation(texture2D(u_dem,pos+vec2(0.0,dd)));float br=decodeElevation(texture2D(u_dem,pos+vec2(dd,dd)));return u_exaggeration*mix(mix(tl,tr,f.x),mix(bl,br,f.x),f.y);\n#endif\n}float prevElevation(vec2 apos) {\n#ifdef TERRAIN_DEM_FLOAT_FORMAT\nvec2 pos=(u_dem_size*(apos/8192.0*u_dem_scale_prev+u_dem_tl_prev)+1.5)/(u_dem_size+2.0);return u_exaggeration*texture2D(u_dem_prev,pos).a;\n#else\nfloat dd=1.0/(u_dem_size+2.0);vec4 r=tileUvToDemSample(apos/8192.0,u_dem_size,u_dem_scale_prev,u_dem_tl_prev);vec2 pos=r.xy;vec2 f=r.zw;float tl=decodeElevation(texture2D(u_dem_prev,pos));float tr=decodeElevation(texture2D(u_dem_prev,pos+vec2(dd,0.0)));float bl=decodeElevation(texture2D(u_dem_prev,pos+vec2(0.0,dd)));float br=decodeElevation(texture2D(u_dem_prev,pos+vec2(dd,dd)));return u_exaggeration*mix(mix(tl,tr,f.x),mix(bl,br,f.x),f.y);\n#endif\n}\n#ifdef TERRAIN_VERTEX_MORPHING\nfloat elevation(vec2 apos) {\n#ifdef ZERO_EXAGGERATION\nreturn 0.0;\n#endif\nfloat nextElevation=currentElevation(apos);float prevElevation=prevElevation(apos);return mix(prevElevation,nextElevation,u_dem_lerp);}\n#else\nfloat elevation(vec2 apos) {\n#ifdef ZERO_EXAGGERATION\nreturn 0.0;\n#endif\nreturn currentElevation(apos);}\n#endif\nhighp float unpack_depth(highp vec4 rgba_depth)\n{const highp vec4 bit_shift=vec4(1.0/(255.0*255.0*255.0),1.0/(255.0*255.0),1.0/255.0,1.0);return dot(rgba_depth,bit_shift)*2.0-1.0;}bool isOccluded(vec4 frag) {vec3 coord=frag.xyz/frag.w;float depth=unpack_depth(texture2D(u_depth,(coord.xy+1.0)*0.5));return coord.z > depth+0.0005;}float occlusionFade(vec4 frag) {vec3 coord=frag.xyz/frag.w;vec3 df=vec3(5.0*u_depth_size_inv,0.0);vec2 uv=0.5*coord.xy+0.5;vec4 depth=vec4(\nunpack_depth(texture2D(u_depth,uv-df.xz)),unpack_depth(texture2D(u_depth,uv+df.xz)),unpack_depth(texture2D(u_depth,uv-df.zy)),unpack_depth(texture2D(u_depth,uv+df.zy))\n);return dot(vec4(0.25),vec4(1.0)-clamp(300.0*(vec4(coord.z-0.001)-depth),0.0,1.0));}vec4 fourSample(vec2 pos,vec2 off) {\n#ifdef TERRAIN_DEM_FLOAT_FORMAT\nfloat tl=texture2D(u_dem,pos).a;float tr=texture2D(u_dem,pos+vec2(off.x,0.0)).a;float bl=texture2D(u_dem,pos+vec2(0.0,off.y)).a;float br=texture2D(u_dem,pos+off).a;\n#else\nvec4 demtl=vec4(texture2D(u_dem,pos).xyz*255.0,-1.0);float tl=dot(demtl,u_dem_unpack);vec4 demtr=vec4(texture2D(u_dem,pos+vec2(off.x,0.0)).xyz*255.0,-1.0);float tr=dot(demtr,u_dem_unpack);vec4 dembl=vec4(texture2D(u_dem,pos+vec2(0.0,off.y)).xyz*255.0,-1.0);float bl=dot(dembl,u_dem_unpack);vec4 dembr=vec4(texture2D(u_dem,pos+off).xyz*255.0,-1.0);float br=dot(dembr,u_dem_unpack);\n#endif\nreturn vec4(tl,tr,bl,br);}float flatElevation(vec2 pack) {vec2 apos=floor(pack/8.0);vec2 span=10.0*(pack-apos*8.0);vec2 uvTex=(apos-vec2(1.0,1.0))/8190.0;float size=u_dem_size+2.0;float dd=1.0/size;vec2 pos=u_dem_size*(uvTex*u_dem_scale+u_dem_tl)+1.0;vec2 f=fract(pos);pos=(pos-f+0.5)*dd;vec4 h=fourSample(pos,vec2(dd));float z=mix(mix(h.x,h.y,f.x),mix(h.z,h.w,f.x),f.y);vec2 w=floor(0.5*(span*u_meter_to_dem-1.0));vec2 d=dd*w;h=fourSample(pos-d,2.0*d+vec2(dd));vec4 diff=abs(h.xzxy-h.ywzw);vec2 slope=min(vec2(0.25),u_meter_to_dem*0.5*(diff.xz+diff.yw)/(2.0*w+vec2(1.0)));vec2 fix=slope*span;float base=z+max(fix.x,fix.y);return u_exaggeration*base;}float elevationFromUint16(float word) {return u_exaggeration*(word/ELEVATION_SCALE-ELEVATION_OFFSET);}\n#else\nfloat elevation(vec2 pos) { return 0.0; }bool isOccluded(vec4 frag) { return false; }float occlusionFade(vec4 frag) { return 1.0; }\n#endif",ti="#ifdef FOG\nuniform mediump vec4 u_fog_color;uniform mediump vec2 u_fog_range;uniform mediump float u_fog_horizon_blend;uniform mediump mat4 u_fog_matrix;varying vec3 v_fog_pos;float fog_range(float depth) {return (depth-u_fog_range[0])/(u_fog_range[1]-u_fog_range[0]);}float fog_horizon_blending(vec3 camera_dir) {float t=max(0.0,camera_dir.z/u_fog_horizon_blend);return u_fog_color.a*exp(-3.0*t*t);}float fog_opacity(float t) {const float decay=6.0;float falloff=1.0-min(1.0,exp(-decay*t));falloff*=falloff*falloff;return u_fog_color.a*min(1.0,1.00747*falloff);}vec3 fog_position(vec3 pos) {return (u_fog_matrix*vec4(pos,1.0)).xyz;}vec3 fog_position(vec2 pos) {return fog_position(vec3(pos,0.0));}float fog(vec3 pos) {float depth=length(pos);float opacity=fog_opacity(fog_range(depth));return opacity*fog_horizon_blending(pos/depth);}\n#endif",ii="#ifdef FOG\nuniform mediump vec4 u_fog_color;uniform mediump vec2 u_fog_range;uniform mediump float u_fog_horizon_blend;uniform mediump float u_fog_temporal_offset;varying vec3 v_fog_pos;uniform highp vec3 u_frustum_tl;uniform highp vec3 u_frustum_tr;uniform highp vec3 u_frustum_br;uniform highp vec3 u_frustum_bl;uniform highp vec3 u_globe_pos;uniform highp float u_globe_radius;uniform highp vec2 u_viewport;uniform float u_globe_transition;uniform int u_is_globe;float fog_range(float depth) {return (depth-u_fog_range[0])/(u_fog_range[1]-u_fog_range[0]);}float fog_horizon_blending(vec3 camera_dir) {float t=max(0.0,camera_dir.z/u_fog_horizon_blend);return u_fog_color.a*exp(-3.0*t*t);}float fog_opacity(float t) {const float decay=6.0;float falloff=1.0-min(1.0,exp(-decay*t));falloff*=falloff*falloff;return u_fog_color.a*min(1.0,1.00747*falloff);}float globe_glow_progress() {highp vec2 uv=gl_FragCoord.xy/u_viewport;highp vec3 ray_dir=mix(\nmix(u_frustum_tl,u_frustum_tr,uv.x),mix(u_frustum_bl,u_frustum_br,uv.x),1.0-uv.y);highp vec3 dir=normalize(ray_dir);highp vec3 closest_point=dot(u_globe_pos,dir)*dir;highp float sdf=length(closest_point-u_globe_pos)/u_globe_radius;return sdf+PI*0.5;}float fog_opacity(vec3 pos) {float depth=length(pos);return fog_opacity(fog_range(depth));}vec3 fog_apply(vec3 color,vec3 pos) {float depth=length(pos);float opacity;if (u_is_globe==1) {float glow_progress=globe_glow_progress();float t=mix(glow_progress,depth,u_globe_transition);opacity=fog_opacity(fog_range(t));} else {opacity=fog_opacity(fog_range(depth));opacity*=fog_horizon_blending(pos/depth);}return mix(color,u_fog_color.rgb,opacity);}vec4 fog_apply_from_vert(vec4 color,float fog_opac) {float alpha=EPSILON+color.a;color.rgb=mix(color.rgb/alpha,u_fog_color.rgb,fog_opac)*alpha;return color;}vec3 fog_apply_sky_gradient(vec3 camera_ray,vec3 sky_color) {float horizon_blend=fog_horizon_blending(normalize(camera_ray));return mix(sky_color,u_fog_color.rgb,horizon_blend);}vec4 fog_apply_premultiplied(vec4 color,vec3 pos) {float alpha=EPSILON+color.a;color.rgb=fog_apply(color.rgb/alpha,pos)*alpha;return color;}vec3 fog_dither(vec3 color) {vec2 dither_seed=gl_FragCoord.xy+u_fog_temporal_offset;return dither(color,dither_seed);}vec4 fog_dither(vec4 color) {return vec4(fog_dither(color.rgb),color.a);}\n#endif";let oi={},ri={};const ni=[];hi(Jt,ni),hi(ei,ni),hi(ti,ni),hi(ii,ni),oi=ui("",ei),ri=ui(ii,ti);const si=ui("\n#if __VERSION__ >=300\n#define varying in\n#define gl_FragColor glFragColor\n#define texture2D texture\n#define textureCube texture\nout vec4 glFragColor;\n#endif\nhighp vec3 hash(highp vec2 p) {highp vec3 p3=fract(p.xyx*vec3(443.8975,397.2973,491.1871));p3+=dot(p3,p3.yxz+19.19);return fract((p3.xxy+p3.yzz)*p3.zyx);}vec3 dither(vec3 color,highp vec2 seed) {vec3 rnd=hash(seed)+hash(seed+0.59374)-0.5;return color+rnd/255.0;}highp float unpack_depth(highp vec4 rgba_depth)\n{const highp vec4 bit_shift=vec4(1.0/(255.0*255.0*255.0),1.0/(255.0*255.0),1.0/255.0,1.0);return dot(rgba_depth,bit_shift)*2.0-1.0;}highp vec4 pack_depth(highp float ndc_z) {highp float depth=ndc_z*0.5+0.5;const highp vec4 bit_shift=vec4(255.0*255.0*255.0,255.0*255.0,255.0,1.0);const highp vec4 bit_mask =vec4(0.0,1.0/255.0,1.0/255.0,1.0/255.0);highp vec4 res=fract(depth*bit_shift);res-=res.xxyz*bit_mask;return res;}","\n#if __VERSION__ >=300\n#define attribute in\n#define varying out\n#define texture2D texture\n#endif\nfloat wrap(float n,float min,float max) {float d=max-min;float w=mod(mod(n-min,d)+d,d)+min;return (w==min) ? max : w;}\n#ifdef PROJECTION_GLOBE_VIEW\nvec3 mercator_tile_position(mat4 matrix,vec2 tile_anchor,vec3 tile_id,vec2 mercator_center) {\n#ifndef PROJECTED_POS_ON_VIEWPORT\nfloat tiles=tile_id.z;vec2 mercator=(tile_anchor/EXTENT+tile_id.xy)/tiles;mercator-=mercator_center;mercator.x=wrap(mercator.x,-0.5,0.5);vec4 mercator_tile=vec4(mercator.xy*EXTENT,EXTENT/(2.0*PI),1.0);mercator_tile=matrix*mercator_tile;return mercator_tile.xyz;\n#else\nreturn vec3(0.0);\n#endif\n}vec3 mix_globe_mercator(vec3 globe,vec3 mercator,float t) {return mix(globe,mercator,t);}mat3 globe_mercator_surface_vectors(vec3 pos_normal,vec3 up_dir,float zoom_transition) {vec3 normal=zoom_transition==0.0 ? pos_normal : normalize(mix(pos_normal,up_dir,zoom_transition));vec3 xAxis=normalize(vec3(normal.z,0.0,-normal.x));vec3 yAxis=normalize(cross(normal,xAxis));return mat3(xAxis,yAxis,normal);}\n#endif\nvec2 unpack_float(const float packedValue) {int packedIntValue=int(packedValue);int v0=packedIntValue/256;return vec2(v0,packedIntValue-v0*256);}vec2 unpack_opacity(const float packedOpacity) {int intOpacity=int(packedOpacity)/2;return vec2(float(intOpacity)/127.0,mod(packedOpacity,2.0));}vec4 decode_color(const vec2 encodedColor) {return vec4(\nunpack_float(encodedColor[0])/255.0,unpack_float(encodedColor[1])/255.0\n);}float unpack_mix_vec2(const vec2 packedValue,const float t) {return mix(packedValue[0],packedValue[1],t);}vec4 unpack_mix_color(const vec4 packedColors,const float t) {vec4 minColor=decode_color(vec2(packedColors[0],packedColors[1]));vec4 maxColor=decode_color(vec2(packedColors[2],packedColors[3]));return mix(minColor,maxColor,t);}vec2 get_pattern_pos(const vec2 pixel_coord_upper,const vec2 pixel_coord_lower,const vec2 pattern_size,const float tile_units_to_pixels,const vec2 pos) {vec2 offset=mod(mod(mod(pixel_coord_upper,pattern_size)*256.0,pattern_size)*256.0+pixel_coord_lower,pattern_size);return (tile_units_to_pixels*pos+offset)/pattern_size;}const vec4 AWAY=vec4(-1000.0,-1000.0,-1000.0,1);//Normalized device coordinate that is not rendered."),ai=Jt,li="\n#ifdef GL_ES\nprecision mediump float;\n#else\n\n#if !defined(lowp)\n#define lowp\n#endif\n\n#if !defined(mediump)\n#define mediump\n#endif\n\n#if !defined(highp)\n#define highp\n#endif\n\n#endif";var ci={background:ui("uniform vec4 u_color;uniform float u_opacity;\n#ifdef LIGHTING_3D_MODE\nvarying vec4 v_color;\n#endif\nvoid main() {vec4 out_color;\n#ifdef LIGHTING_3D_MODE\nout_color=v_color;\n#else\nout_color=u_color;\n#endif\n#ifdef FOG\nout_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos));\n#endif\ngl_FragColor=out_color*u_opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","attribute vec2 a_pos;uniform mat4 u_matrix;\n#ifdef LIGHTING_3D_MODE\nuniform vec4 u_color;varying vec4 v_color;\n#endif\nvoid main() {gl_Position=u_matrix*vec4(a_pos,0,1);\n#ifdef LIGHTING_3D_MODE\nv_color=apply_lighting(u_color);\n#endif\n#ifdef FOG\nv_fog_pos=fog_position(a_pos);\n#endif\n}"),backgroundPattern:ui("uniform vec2 u_pattern_tl;uniform vec2 u_pattern_br;uniform vec2 u_texsize;uniform float u_opacity;uniform sampler2D u_image;varying vec2 v_pos;void main() {vec2 imagecoord=mod(v_pos,1.0);vec2 pos=mix(u_pattern_tl/u_texsize,u_pattern_br/u_texsize,imagecoord);vec4 out_color=texture2D(u_image,pos);\n#ifdef LIGHTING_3D_MODE\nout_color=apply_lighting(out_color);\n#endif\n#ifdef FOG\nout_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos));\n#endif\ngl_FragColor=out_color*u_opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_pattern_size;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_tile_units_to_pixels;attribute vec2 a_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_pattern_size,u_tile_units_to_pixels,a_pos);\n#ifdef FOG\nv_fog_pos=fog_position(a_pos);\n#endif\n}"),circle:ui("varying vec3 v_data;varying float v_visibility;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define mediump float radius\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define highp vec4 stroke_color\n#pragma mapbox: define mediump float stroke_width\n#pragma mapbox: define lowp float stroke_opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize mediump float radius\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize highp vec4 stroke_color\n#pragma mapbox: initialize mediump float stroke_width\n#pragma mapbox: initialize lowp float stroke_opacity\nvec2 extrude=v_data.xy;float extrude_length=length(extrude);lowp float antialiasblur=v_data.z;float antialiased_blur=-max(blur,antialiasblur);float opacity_t=smoothstep(0.0,antialiased_blur,extrude_length-1.0);float color_t=stroke_width < 0.01 ? 0.0 : smoothstep(\nantialiased_blur,0.0,extrude_length-radius/(radius+stroke_width)\n);vec4 out_color=mix(color*opacity,stroke_color*stroke_opacity,color_t);\n#ifdef LIGHTING_3D_MODE\nout_color=apply_lighting(out_color);\n#endif\n#ifdef FOG\nout_color=fog_apply_premultiplied(out_color,v_fog_pos);\n#endif\ngl_FragColor=out_color*(v_visibility*opacity_t);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","#define NUM_VISIBILITY_RINGS 2\n#define INV_SQRT2 0.70710678\n#define ELEVATION_BIAS 0.0001\n#define NUM_SAMPLES_PER_RING 16\nuniform mat4 u_matrix;uniform mat2 u_extrude_scale;uniform lowp float u_device_pixel_ratio;uniform highp float u_camera_to_center_distance;attribute vec2 a_pos;\n#ifdef PROJECTION_GLOBE_VIEW\nattribute vec3 a_pos_3;attribute vec3 a_pos_normal_3;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_tile_id;uniform float u_zoom_transition;uniform vec3 u_up_dir;\n#endif\nvarying vec3 v_data;varying float v_visibility;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define mediump float radius\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define highp vec4 stroke_color\n#pragma mapbox: define mediump float stroke_width\n#pragma mapbox: define lowp float stroke_opacity\nvec2 calc_offset(vec2 extrusion,float radius,float stroke_width, float view_scale) {return extrusion*(radius+stroke_width)*u_extrude_scale*view_scale;}float cantilevered_elevation(vec2 pos,float radius,float stroke_width,float view_scale) {vec2 c1=pos+calc_offset(vec2(-1,-1),radius,stroke_width,view_scale);vec2 c2=pos+calc_offset(vec2(1,-1),radius,stroke_width,view_scale);vec2 c3=pos+calc_offset(vec2(1,1),radius,stroke_width,view_scale);vec2 c4=pos+calc_offset(vec2(-1,1),radius,stroke_width,view_scale);float h1=elevation(c1)+ELEVATION_BIAS;float h2=elevation(c2)+ELEVATION_BIAS;float h3=elevation(c3)+ELEVATION_BIAS;float h4=elevation(c4)+ELEVATION_BIAS;return max(h4,max(h3,max(h1,h2)));}float circle_elevation(vec2 pos) {\n#if defined(TERRAIN)\nreturn elevation(pos)+ELEVATION_BIAS;\n#else\nreturn 0.0;\n#endif\n}vec4 project_vertex(vec2 extrusion,vec4 world_center,vec4 projected_center,float radius,float stroke_width, float view_scale,mat3 surface_vectors) {vec2 sample_offset=calc_offset(extrusion,radius,stroke_width,view_scale);\n#ifdef PITCH_WITH_MAP\n#ifdef PROJECTION_GLOBE_VIEW\nreturn u_matrix*( world_center+vec4(sample_offset.x*surface_vectors[0]+sample_offset.y*surface_vectors[1],0) );\n#else\nreturn u_matrix*( world_center+vec4(sample_offset,0,0) );\n#endif\n#else\nreturn projected_center+vec4(sample_offset,0,0);\n#endif\n}float get_sample_step() {\n#ifdef PITCH_WITH_MAP\nreturn 2.0*PI/float(NUM_SAMPLES_PER_RING);\n#else\nreturn PI/float(NUM_SAMPLES_PER_RING);\n#endif\n}void main(void) {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize mediump float radius\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize highp vec4 stroke_color\n#pragma mapbox: initialize mediump float stroke_width\n#pragma mapbox: initialize lowp float stroke_opacity\nvec2 extrude=vec2(mod(a_pos,2.0)*2.0-1.0);vec2 circle_center=floor(a_pos*0.5);vec4 world_center;mat3 surface_vectors;\n#ifdef PROJECTION_GLOBE_VIEW\nvec3 pos_normal_3=a_pos_normal_3/16384.0;surface_vectors=globe_mercator_surface_vectors(pos_normal_3,u_up_dir,u_zoom_transition);vec3 surface_extrusion=extrude.x*surface_vectors[0]+extrude.y*surface_vectors[1];vec3 globe_elevation=elevationVector(circle_center)*circle_elevation(circle_center);vec3 globe_pos=a_pos_3+surface_extrusion+globe_elevation;vec3 mercator_elevation=u_up_dir*u_tile_up_scale*circle_elevation(circle_center);vec3 merc_pos=mercator_tile_position(u_inv_rot_matrix,circle_center,u_tile_id,u_merc_center)+surface_extrusion+mercator_elevation;vec3 pos=mix_globe_mercator(globe_pos,merc_pos,u_zoom_transition);world_center=vec4(pos,1);\n#else \nsurface_vectors=mat3(1.0);float height=circle_elevation(circle_center);world_center=vec4(circle_center,height,1);\n#endif\nvec4 projected_center=u_matrix*world_center;float view_scale=0.0;\n#ifdef PITCH_WITH_MAP\n#ifdef SCALE_WITH_MAP\nview_scale=1.0;\n#else\nview_scale=projected_center.w/u_camera_to_center_distance;\n#endif\n#else\n#ifdef SCALE_WITH_MAP\nview_scale=u_camera_to_center_distance;\n#else\nview_scale=projected_center.w;\n#endif\n#endif\ngl_Position=project_vertex(extrude,world_center,projected_center,radius,stroke_width,view_scale,surface_vectors);float visibility=0.0;\n#ifdef TERRAIN\nfloat step=get_sample_step();vec4 occlusion_world_center;vec4 occlusion_projected_center;\n#ifdef PITCH_WITH_MAP\nfloat cantilevered_height=cantilevered_elevation(circle_center,radius,stroke_width,view_scale);occlusion_world_center=vec4(circle_center,cantilevered_height,1);occlusion_projected_center=u_matrix*occlusion_world_center;\n#else\nocclusion_world_center=world_center;occlusion_projected_center=projected_center;\n#endif\nfor(int ring=0; ring < NUM_VISIBILITY_RINGS; ring++) {float scale=(float(ring)+1.0)/float(NUM_VISIBILITY_RINGS);for(int i=0; i < NUM_SAMPLES_PER_RING; i++) {vec2 extrusion=vec2(cos(step*float(i)),-sin(step*float(i)))*scale;vec4 frag_pos=project_vertex(extrusion,occlusion_world_center,occlusion_projected_center,radius,stroke_width,view_scale,surface_vectors);visibility+=float(!isOccluded(frag_pos));}}visibility/=float(NUM_VISIBILITY_RINGS)*float(NUM_SAMPLES_PER_RING);\n#else\nvisibility=1.0;\n#endif\n#ifdef PROJECTION_GLOBE_VIEW\nvisibility=1.0;\n#endif\nv_visibility=visibility;lowp float antialiasblur=1.0/u_device_pixel_ratio/(radius+stroke_width);v_data=vec3(extrude.x,extrude.y,antialiasblur);\n#ifdef FOG\nv_fog_pos=fog_position(world_center.xyz);\n#endif\n}"),clippingMask:ui("void main() {gl_FragColor=vec4(1.0);}","attribute vec2 a_pos;uniform mat4 u_matrix;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);}"),heatmap:ui("uniform highp float u_intensity;varying vec2 v_extrude;\n#pragma mapbox: define highp float weight\n#define GAUSS_COEF 0.3989422804014327\nvoid main() {\n#pragma mapbox: initialize highp float weight\nfloat d=-0.5*3.0*3.0*dot(v_extrude,v_extrude);float val=weight*u_intensity*GAUSS_COEF*exp(d);gl_FragColor=vec4(val,1.0,1.0,1.0);\n#ifdef FOG\nif (u_is_globe==0) {gl_FragColor.r*=pow(1.0-fog_opacity(v_fog_pos),2.0);}\n#endif\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform float u_extrude_scale;uniform float u_opacity;uniform float u_intensity;attribute vec2 a_pos;\n#ifdef PROJECTION_GLOBE_VIEW\nattribute vec3 a_pos_3;attribute vec3 a_pos_normal_3;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_tile_id;uniform float u_zoom_transition;uniform vec3 u_up_dir;\n#endif\nvarying vec2 v_extrude;\n#pragma mapbox: define highp float weight\n#pragma mapbox: define mediump float radius\nconst highp float ZERO=1.0/255.0/16.0;\n#define GAUSS_COEF 0.3989422804014327\nvoid main(void) {\n#pragma mapbox: initialize highp float weight\n#pragma mapbox: initialize mediump float radius\nvec2 unscaled_extrude=vec2(mod(a_pos,2.0)*2.0-1.0);float S=sqrt(-2.0*log(ZERO/weight/u_intensity/GAUSS_COEF))/3.0;v_extrude=S*unscaled_extrude;vec2 extrude=v_extrude*radius*u_extrude_scale;vec2 tilePos=floor(a_pos*0.5);vec3 pos;\n#ifdef PROJECTION_GLOBE_VIEW\nvec3 pos_normal_3=a_pos_normal_3/16384.0;mat3 surface_vectors=globe_mercator_surface_vectors(pos_normal_3,u_up_dir,u_zoom_transition);vec3 surface_extrusion=extrude.x*surface_vectors[0]+extrude.y*surface_vectors[1];vec3 globe_elevation=elevationVector(tilePos)*elevation(tilePos);vec3 globe_pos=a_pos_3+surface_extrusion+globe_elevation;vec3 mercator_elevation=u_up_dir*u_tile_up_scale*elevation(tilePos);vec3 merc_pos=mercator_tile_position(u_inv_rot_matrix,tilePos,u_tile_id,u_merc_center)+surface_extrusion+mercator_elevation;pos=mix_globe_mercator(globe_pos,merc_pos,u_zoom_transition);\n#else\npos=vec3(tilePos+extrude,elevation(tilePos));\n#endif\ngl_Position=u_matrix*vec4(pos,1);\n#ifdef FOG\nv_fog_pos=fog_position(pos);\n#endif\n}"),heatmapTexture:ui("uniform sampler2D u_image;uniform sampler2D u_color_ramp;uniform float u_opacity;varying vec2 v_pos;void main() {float t=texture2D(u_image,v_pos).r;vec4 color=texture2D(u_color_ramp,vec2(t,0.5));gl_FragColor=color*u_opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(0.0);\n#endif\n}","attribute vec2 a_pos;varying vec2 v_pos;void main() {gl_Position=vec4(a_pos,0,1);v_pos=a_pos*0.5+0.5;}"),collisionBox:ui("varying float v_placed;varying float v_notUsed;void main() {vec4 red =vec4(1.0,0.0,0.0,1.0);vec4 blue=vec4(0.0,0.0,1.0,0.5);gl_FragColor =mix(red,blue,step(0.5,v_placed))*0.5;gl_FragColor*=mix(1.0,0.1,step(0.5,v_notUsed));}","attribute vec3 a_pos;attribute vec2 a_anchor_pos;attribute vec2 a_extrude;attribute vec2 a_placed;attribute vec2 a_shift;attribute float a_size_scale;attribute vec2 a_padding;uniform mat4 u_matrix;uniform vec2 u_extrude_scale;uniform float u_camera_to_center_distance;varying float v_placed;varying float v_notUsed;void main() {vec4 projectedPoint=u_matrix*vec4(a_pos+elevationVector(a_anchor_pos)*elevation(a_anchor_pos),1);highp float camera_to_anchor_distance=projectedPoint.w;highp float collision_perspective_ratio=clamp(\n0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,1.5);gl_Position=projectedPoint;gl_Position.xy+=(a_extrude*a_size_scale+a_shift+a_padding)*u_extrude_scale*gl_Position.w*collision_perspective_ratio;v_placed=a_placed.x;v_notUsed=a_placed.y;}"),collisionCircle:ui("varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;void main() {float alpha=0.5*min(v_perspective_ratio,1.0);float stroke_radius=0.9*max(v_perspective_ratio,1.0);float distance_to_center=length(v_extrude);float distance_to_edge=abs(distance_to_center-v_radius);float opacity_t=smoothstep(-stroke_radius,0.0,-distance_to_edge);vec4 color=mix(vec4(0.0,0.0,1.0,0.5),vec4(1.0,0.0,0.0,1.0),v_collision);gl_FragColor=color*alpha*opacity_t;}","attribute vec2 a_pos_2f;attribute float a_radius;attribute vec2 a_flags;uniform mat4 u_matrix;uniform mat4 u_inv_matrix;uniform vec2 u_viewport_size;uniform float u_camera_to_center_distance;varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;vec3 toTilePosition(vec2 screenPos) {vec4 rayStart=u_inv_matrix*vec4(screenPos,-1.0,1.0);vec4 rayEnd =u_inv_matrix*vec4(screenPos, 1.0,1.0);rayStart.xyz/=rayStart.w;rayEnd.xyz /=rayEnd.w;highp float t=(0.0-rayStart.z)/(rayEnd.z-rayStart.z);return mix(rayStart.xyz,rayEnd.xyz,t);}void main() {vec2 quadCenterPos=a_pos_2f;float radius=a_radius;float collision=a_flags.x;float vertexIdx=a_flags.y;vec2 quadVertexOffset=vec2(\nmix(-1.0,1.0,float(vertexIdx >=2.0)),mix(-1.0,1.0,float(vertexIdx >=1.0 && vertexIdx <=2.0)));vec2 quadVertexExtent=quadVertexOffset*radius;vec3 tilePos=toTilePosition(quadCenterPos);vec4 clipPos=u_matrix*vec4(tilePos,1.0);highp float camera_to_anchor_distance=clipPos.w;highp float collision_perspective_ratio=clamp(\n0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,4.0);float padding_factor=1.2;v_radius=radius;v_extrude=quadVertexExtent*padding_factor;v_perspective_ratio=collision_perspective_ratio;v_collision=collision;gl_Position=vec4(clipPos.xyz/clipPos.w,1.0)+vec4(quadVertexExtent*padding_factor/u_viewport_size*2.0,0.0,0.0);}"),debug:ui("uniform highp vec4 u_color;uniform sampler2D u_overlay;varying vec2 v_uv;void main() {vec4 overlay_color=texture2D(u_overlay,v_uv);gl_FragColor=mix(u_color,overlay_color,overlay_color.a);}","attribute vec2 a_pos;\n#ifdef PROJECTION_GLOBE_VIEW\nattribute vec3 a_pos_3;\n#endif\nvarying vec2 v_uv;uniform mat4 u_matrix;uniform float u_overlay_scale;void main() {float h=elevation(a_pos);v_uv=a_pos/8192.0;\n#ifdef PROJECTION_GLOBE_VIEW\ngl_Position=u_matrix*vec4(a_pos_3+elevationVector(a_pos)*h,1);\n#else\ngl_Position=u_matrix*vec4(a_pos*u_overlay_scale,h,1);\n#endif\n}"),fill:ui("#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float opacity\nvec4 out_color=color;\n#ifdef LIGHTING_3D_MODE\nout_color=apply_lighting(out_color);\n#endif\n#ifdef FOG\nout_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos));\n#endif\ngl_FragColor=out_color*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","attribute vec2 a_pos;uniform mat4 u_matrix;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float opacity\ngl_Position=u_matrix*vec4(a_pos,0,1);\n#ifdef FOG\nv_fog_pos=fog_position(a_pos);\n#endif\n}"),fillOutline:ui("varying vec2 v_pos;\n#pragma mapbox: define highp vec4 outline_color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 outline_color\n#pragma mapbox: initialize lowp float opacity\nfloat dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);vec4 out_color=outline_color;\n#ifdef LIGHTING_3D_MODE\nout_color=apply_lighting(out_color);\n#endif\n#ifdef FOG\nout_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos));\n#endif\ngl_FragColor=out_color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","attribute vec2 a_pos;uniform mat4 u_matrix;uniform vec2 u_world;varying vec2 v_pos;\n#pragma mapbox: define highp vec4 outline_color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 outline_color\n#pragma mapbox: initialize lowp float opacity\ngl_Position=u_matrix*vec4(a_pos,0,1);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;\n#ifdef FOG\nv_fog_pos=fog_position(a_pos);\n#endif\n}"),fillOutlinePattern:ui("uniform vec2 u_texsize;uniform sampler2D u_image;varying vec2 v_pos;varying vec2 v_pos_world;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern\nvec2 pattern_tl=pattern.xy;vec2 pattern_br=pattern.zw;vec2 imagecoord=mod(v_pos,1.0);vec2 pos=mix(pattern_tl/u_texsize,pattern_br/u_texsize,imagecoord);float dist=length(v_pos_world-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);vec4 out_color=texture2D(u_image,pos);\n#ifdef LIGHTING_3D_MODE\nout_color=apply_lighting(out_color);\n#endif\n#ifdef FOG\nout_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos));\n#endif\ngl_FragColor=out_color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_world;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_tile_units_to_pixels;attribute vec2 a_pos;varying vec2 v_pos;varying vec2 v_pos_world;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern\n#pragma mapbox: define lowp float pixel_ratio\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern\n#pragma mapbox: initialize lowp float pixel_ratio\nvec2 pattern_tl=pattern.xy;vec2 pattern_br=pattern.zw;gl_Position=u_matrix*vec4(a_pos,0,1);vec2 display_size=(pattern_br-pattern_tl)/pixel_ratio;v_pos=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,display_size,u_tile_units_to_pixels,a_pos);v_pos_world=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;\n#ifdef FOG\nv_fog_pos=fog_position(a_pos);\n#endif\n}"),fillPattern:ui("uniform vec2 u_texsize;uniform sampler2D u_image;varying vec2 v_pos;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern\nvec2 pattern_tl=pattern.xy;vec2 pattern_br=pattern.zw;vec2 imagecoord=mod(v_pos,1.0);vec2 pos=mix(pattern_tl/u_texsize,pattern_br/u_texsize,imagecoord);vec4 out_color=texture2D(u_image,pos);\n#ifdef LIGHTING_3D_MODE\nout_color=apply_lighting(out_color);\n#endif\n#ifdef FOG\nout_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos));\n#endif\ngl_FragColor=out_color*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_tile_units_to_pixels;attribute vec2 a_pos;varying vec2 v_pos;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern\n#pragma mapbox: define lowp float pixel_ratio\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern\n#pragma mapbox: initialize lowp float pixel_ratio\nvec2 pattern_tl=pattern.xy;vec2 pattern_br=pattern.zw;vec2 display_size=(pattern_br-pattern_tl)/pixel_ratio;gl_Position=u_matrix*vec4(a_pos,0,1);v_pos=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,display_size,u_tile_units_to_pixels,a_pos);\n#ifdef FOG\nv_fog_pos=fog_position(a_pos);\n#endif\n}"),fillExtrusion:ui("varying vec4 v_color;\n#ifdef RENDER_SHADOWS\nvarying highp vec4 v_pos_light_view_0;varying highp vec4 v_pos_light_view_1;varying float v_depth;\n#endif\n#ifdef FAUX_AO\nuniform lowp vec2 u_ao;varying vec3 v_ao;\n#endif\n#ifdef ZERO_ROOF_RADIUS\nvarying vec4 v_roof_color;\n#endif\n#if defined(ZERO_ROOF_RADIUS) || defined(RENDER_SHADOWS)\nvarying highp vec3 v_normal;\n#endif\nvoid main() {\n#if defined(ZERO_ROOF_RADIUS) || defined(RENDER_SHADOWS)\nvec3 normal=v_normal;\n#endif\nfloat z;vec4 color;\n#ifdef ZERO_ROOF_RADIUS\nz=float(normal.z > 0.00001);color=mix(v_color,v_roof_color,z);\n#else\ncolor=v_color;\n#endif\n#ifdef FAUX_AO\nfloat intensity=u_ao[0];float h=max(0.0,v_ao.z);float h_floors=h/u_ao[1];float y_shade=1.0-0.9*intensity*min(v_ao.y,1.0);float shade=(1.0-0.08*intensity)*(y_shade+(1.0-y_shade)*(1.0-pow(1.0-min(h_floors/16.0,1.0),16.0)))+0.08*intensity*min(h_floors/160.0,1.0);float concave=v_ao.x*v_ao.x;\n#ifdef ZERO_ROOF_RADIUS\nconcave*=(1.0-z);\n#endif\nfloat x_shade=mix(1.0,mix(0.6,0.75,min(h_floors/30.0,1.0)),intensity)+0.1*intensity*min(h,1.0);shade*=mix(1.0,x_shade*x_shade*x_shade,concave);color.rgb=color.rgb*shade;\n#endif\n#ifdef RENDER_SHADOWS\n#ifdef ZERO_ROOF_RADIUS\nnormal=mix(normal,vec3(0.0,0.0,1.0),z);\n#endif\ncolor.xyz=shadowed_color_normal(color.xyz,normalize(normal),v_pos_light_view_0,v_pos_light_view_1,v_depth);\n#endif\n#ifdef FOG\ncolor=fog_dither(fog_apply_premultiplied(color,v_fog_pos));\n#endif\ngl_FragColor=color;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform float u_edge_radius;attribute vec4 a_pos_normal_ed;attribute vec2 a_centroid_pos;\n#ifdef PROJECTION_GLOBE_VIEW\nattribute vec3 a_pos_3;attribute vec3 a_pos_normal_3;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_tile_id;uniform float u_zoom_transition;uniform vec3 u_up_dir;uniform float u_height_lift;\n#endif\nvarying vec4 v_color;\n#ifdef RENDER_SHADOWS\nuniform mat4 u_light_matrix_0;uniform mat4 u_light_matrix_1;varying highp vec4 v_pos_light_view_0;varying highp vec4 v_pos_light_view_1;varying float v_depth;\n#endif\n#ifdef ZERO_ROOF_RADIUS\nvarying vec4 v_roof_color;\n#endif\n#if defined(ZERO_ROOF_RADIUS) || defined(RENDER_SHADOWS)\nvarying highp vec3 v_normal;\n#endif\n#ifdef FAUX_AO\nuniform lowp vec2 u_ao;varying vec3 v_ao;\n#endif\n#pragma mapbox: define highp float base\n#pragma mapbox: define highp float height\n#pragma mapbox: define highp vec4 color\nvoid main() {\n#pragma mapbox: initialize highp float base\n#pragma mapbox: initialize highp float height\n#pragma mapbox: initialize highp vec4 color\nvec4 pos_nx=floor(a_pos_normal_ed*0.5);vec4 top_up_ny_start=a_pos_normal_ed-2.0*pos_nx;vec3 top_up_ny=top_up_ny_start.xyz;float x_normal=pos_nx.z/8192.0;vec3 normal=top_up_ny.y==1.0 ? vec3(0.0,0.0,1.0) : normalize(vec3(x_normal,(2.0*top_up_ny.z-1.0)*(1.0-abs(x_normal)),0.0));\n#if defined(ZERO_ROOF_RADIUS) || defined(RENDER_SHADOWS)\nv_normal=normal;\n#endif\nbase=max(0.0,base);height=max(0.0,top_up_ny.y==0.0 && top_up_ny.x==1.0 ? height-u_edge_radius : height);float t=top_up_ny.x;vec2 centroid_pos=vec2(0.0);\n#if defined(HAS_CENTROID) || defined(TERRAIN)\ncentroid_pos=a_centroid_pos;\n#endif\nfloat ele=0.0;float h=0.0;float c_ele;vec3 pos;\n#ifdef TERRAIN\nbool flat_roof=centroid_pos.x !=0.0 && t > 0.0;ele=elevation(pos_nx.xy);c_ele=flat_roof ? centroid_pos.y==0.0 ? elevationFromUint16(centroid_pos.x) : flatElevation(centroid_pos) : ele;h=flat_roof ? max(c_ele+height,ele+base+2.0) : ele+(t > 0.0 ? height : base==0.0 ?-5.0 : base);pos=vec3(pos_nx.xy,h);\n#else\nh=t > 0.0 ? height : base;pos=vec3(pos_nx.xy,h);\n#endif\n#ifdef PROJECTION_GLOBE_VIEW\nfloat lift=float((t+base) > 0.0)*u_height_lift;h+=lift;vec3 globe_normal=normalize(mix(a_pos_normal_3/16384.0,u_up_dir,u_zoom_transition));vec3 globe_pos=a_pos_3+globe_normal*(u_tile_up_scale*h);vec3 merc_pos=mercator_tile_position(u_inv_rot_matrix,pos.xy,u_tile_id,u_merc_center)+u_up_dir*u_tile_up_scale*pos.z;pos=mix_globe_mercator(globe_pos,merc_pos,u_zoom_transition);\n#endif\nfloat hidden=float(centroid_pos.x==0.0 && centroid_pos.y==1.0);gl_Position=mix(u_matrix*vec4(pos,1),AWAY,hidden);\n#ifdef RENDER_SHADOWS\nv_pos_light_view_0=u_light_matrix_0*vec4(pos,1);v_pos_light_view_1=u_light_matrix_1*vec4(pos,1);v_depth=gl_Position.w;\n#endif\nfloat NdotL=0.0;float colorvalue=0.0;\n#ifdef LIGHTING_3D_MODE\nNdotL=calculate_NdotL(normal);\n#else\ncolorvalue=color.r*0.2126+color.g*0.7152+color.b*0.0722;vec4 ambientlight=vec4(0.03,0.03,0.03,1.0);color+=ambientlight;NdotL=clamp(dot(normal,u_lightpos),0.0,1.0);NdotL=mix((1.0-u_lightintensity),max((1.0-colorvalue+u_lightintensity),1.0),NdotL);\n#endif\nif (normal.y !=0.0) {float r=0.84;\n#ifndef LIGHTING_3D_MODE\nr=mix(0.7,0.98,1.0-u_lightintensity);\n#endif\nNdotL*=(\n(1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),r,1.0)));}v_color=vec4(0.0,0.0,0.0,1.0);\n#ifdef FAUX_AO\nfloat concave=pos_nx.w-floor(pos_nx.w*0.5)*2.0;float start=top_up_ny_start.w;float y_ground=1.0-clamp(t+base,0.0,1.0);float top_height=height;\n#ifdef TERRAIN\ntop_height=mix(max(c_ele+height,ele+base+2.0),ele+height,float(centroid_pos.x==0.0))-ele;y_ground+=y_ground*5.0/max(3.0,top_height);\n#endif\nv_ao=vec3(mix(concave,-concave,start),y_ground,h-ele);NdotL*=(1.0+0.05*(1.0-top_up_ny.y)*u_ao[0]);\n#ifdef PROJECTION_GLOBE_VIEW\ntop_height+=u_height_lift;\n#endif\ngl_Position.z-=(0.0000006*(min(top_height,500.)+2.0*min(base,500.0)+60.0*concave+3.0*start))*gl_Position.w;\n#endif\n#ifdef LIGHTING_3D_MODE\nv_color=apply_lighting(color,NdotL);\n#else\nv_color.rgb+=clamp(color.rgb*NdotL*u_lightcolor,mix(vec3(0.0),vec3(0.3),1.0-u_lightcolor),vec3(1.0));\n#endif\nv_color*=u_opacity;\n#ifdef ZERO_ROOF_RADIUS\nv_roof_color=vec4(0.0,0.0,0.0,1.0);\n#ifdef LIGHTING_3D_MODE\nv_roof_color=apply_lighting(color,calculate_NdotL(vec3(0.0,0.0,1.0)));\n#else\nfloat roofNdotL=clamp(u_lightpos.z,0.0,1.0);roofNdotL=mix((1.0-u_lightintensity),max((1.0-colorvalue+u_lightintensity),1.0),roofNdotL);v_roof_color.rgb+=clamp(color.rgb*roofNdotL*u_lightcolor,mix(vec3(0.0),vec3(0.3),1.0-u_lightcolor),vec3(1.0));\n#endif\nv_roof_color*=u_opacity;\n#endif\n#ifdef FOG\nv_fog_pos=fog_position(pos);\n#endif\n}"),fillExtrusionPattern:ui("uniform vec2 u_texsize;uniform sampler2D u_image;\n#ifdef FAUX_AO\nuniform lowp vec2 u_ao;varying vec3 v_ao;\n#endif\n#ifdef LIGHTING_3D_MODE\nvarying float v_NdotL;\n#endif\nvarying vec2 v_pos;varying vec4 v_lighting;uniform lowp float u_opacity;\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n#pragma mapbox: define lowp vec4 pattern\n#pragma mapbox: define lowp float pixel_ratio\nvoid main() {\n#pragma mapbox: initialize lowp float base\n#pragma mapbox: initialize lowp float height\n#pragma mapbox: initialize mediump vec4 pattern\n#pragma mapbox: initialize lowp float pixel_ratio\nvec2 pattern_tl=pattern.xy;vec2 pattern_br=pattern.zw;vec2 imagecoord=mod(v_pos,1.0);vec2 pos=mix(pattern_tl/u_texsize,pattern_br/u_texsize,imagecoord);vec4 out_color=texture2D(u_image,pos);\n#ifdef LIGHTING_3D_MODE\nout_color=apply_lighting(out_color,v_NdotL)*u_opacity;\n#else\nout_color=out_color*v_lighting;\n#endif\n#ifdef FAUX_AO\nfloat intensity=u_ao[0];float h=max(0.0,v_ao.z);float h_floors=h/u_ao[1];float y_shade=1.0-0.9*intensity*min(v_ao.y,1.0);float shade=(1.0-0.08*intensity)*(y_shade+(1.0-y_shade)*(1.0-pow(1.0-min(h_floors/16.0,1.0),16.0)))+0.08*intensity*min(h_floors/160.0,1.0);float concave=v_ao.x*v_ao.x;float x_shade=mix(1.0,mix(0.6,0.75,min(h_floors/30.0,1.0)),intensity)+0.1*intensity*min(h,1.0);shade*=mix(1.0,x_shade*x_shade*x_shade,concave);out_color.rgb=out_color.rgb*shade;\n#endif\n#ifdef FOG\nout_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos));\n#endif\ngl_FragColor=out_color;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_height_factor;uniform float u_tile_units_to_pixels;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;attribute vec4 a_pos_normal_ed;attribute vec2 a_centroid_pos;\n#ifdef PROJECTION_GLOBE_VIEW\nattribute vec3 a_pos_3;attribute vec3 a_pos_normal_3;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_tile_id;uniform float u_zoom_transition;uniform vec3 u_up_dir;uniform float u_height_lift;\n#endif\nvarying vec2 v_pos;varying vec4 v_lighting;\n#ifdef FAUX_AO\nuniform lowp vec2 u_ao;varying vec3 v_ao;\n#endif\n#ifdef LIGHTING_3D_MODE\nvarying float v_NdotL;\n#endif\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n#pragma mapbox: define lowp vec4 pattern\n#pragma mapbox: define lowp float pixel_ratio\nvoid main() {\n#pragma mapbox: initialize lowp float base\n#pragma mapbox: initialize lowp float height\n#pragma mapbox: initialize mediump vec4 pattern\n#pragma mapbox: initialize lowp float pixel_ratio\nvec2 pattern_tl=pattern.xy;vec2 pattern_br=pattern.zw;vec4 pos_nx=floor(a_pos_normal_ed*0.5);mediump vec4 top_up_ny_start=a_pos_normal_ed-2.0*pos_nx;mediump vec3 top_up_ny=top_up_ny_start.xyz;float x_normal=pos_nx.z/8192.0;vec3 normal=top_up_ny.y==1.0 ? vec3(0.0,0.0,1.0) : normalize(vec3(x_normal,(2.0*top_up_ny.z-1.0)*(1.0-abs(x_normal)),0.0));float edgedistance=a_pos_normal_ed.w;vec2 display_size=(pattern_br-pattern_tl)/pixel_ratio;base=max(0.0,base);height=max(0.0,height);float t=top_up_ny.x;float z=t > 0.0 ? height : base;vec2 centroid_pos=vec2(0.0);\n#if defined(HAS_CENTROID) || defined(TERRAIN)\ncentroid_pos=a_centroid_pos;\n#endif\nfloat ele=0.0;float h=z;vec3 p;float c_ele;\n#ifdef TERRAIN\nbool flat_roof=centroid_pos.x !=0.0 && t > 0.0;ele=elevation(pos_nx.xy);c_ele=flat_roof ? centroid_pos.y==0.0 ? elevationFromUint16(centroid_pos.x) : flatElevation(centroid_pos) : ele;h=flat_roof ? max(c_ele+height,ele+base+2.0) : ele+(t > 0.0 ? height : base==0.0 ?-5.0 : base);p=vec3(pos_nx.xy,h);\n#else\np=vec3(pos_nx.xy,z);\n#endif\n#ifdef PROJECTION_GLOBE_VIEW\nfloat lift=float((t+base) > 0.0)*u_height_lift;h+=lift;vec3 globe_normal=normalize(mix(a_pos_normal_3/16384.0,u_up_dir,u_zoom_transition));vec3 globe_pos=a_pos_3+globe_normal*(u_tile_up_scale*(p.z+lift));vec3 merc_pos=mercator_tile_position(u_inv_rot_matrix,p.xy,u_tile_id,u_merc_center)+u_up_dir*u_tile_up_scale*p.z;p=mix_globe_mercator(globe_pos,merc_pos,u_zoom_transition);\n#endif\nfloat hidden=float(centroid_pos.x==0.0 && centroid_pos.y==1.0);gl_Position=mix(u_matrix*vec4(p,1),AWAY,hidden);vec2 pos=normal.z==1.0\n? pos_nx.xy\n: vec2(edgedistance,z*u_height_factor);v_pos=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,display_size,u_tile_units_to_pixels,pos);v_lighting=vec4(0.0,0.0,0.0,1.0);float NdotL=0.0;\n#ifdef LIGHTING_3D_MODE\nNdotL=calculate_NdotL(normal);\n#else\nNdotL=clamp(dot(normal,u_lightpos),0.0,1.0);NdotL=mix((1.0-u_lightintensity),max((0.5+u_lightintensity),1.0),NdotL);\n#endif\nif (normal.y !=0.0) {float r=0.84;\n#ifndef LIGHTING_3D_MODE\nr=mix(0.7,0.98,1.0-u_lightintensity);\n#endif\nNdotL*=(\n(1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),r,1.0)));}\n#ifdef FAUX_AO\nfloat concave=pos_nx.w-floor(pos_nx.w*0.5)*2.0;float start=top_up_ny_start.w;float y_ground=1.0-clamp(t+base,0.0,1.0);float top_height=height;\n#ifdef TERRAIN\ntop_height=mix(max(c_ele+height,ele+base+2.0),ele+height,float(centroid_pos.x==0.0))-ele;y_ground+=y_ground*5.0/max(3.0,top_height);\n#endif\nv_ao=vec3(mix(concave,-concave,start),y_ground,h-ele);NdotL*=(1.0+0.05*(1.0-top_up_ny.y)*u_ao[0]);\n#ifdef PROJECTION_GLOBE_VIEW\ntop_height+=u_height_lift;\n#endif\ngl_Position.z-=(0.0000006*(min(top_height,500.)+2.0*min(base,500.0)+60.0*concave+3.0*start))*gl_Position.w;\n#endif\n#ifdef LIGHTING_3D_MODE\nv_NdotL=NdotL;\n#else\nv_lighting.rgb+=clamp(NdotL*u_lightcolor,mix(vec3(0.0),vec3(0.3),1.0-u_lightcolor),vec3(1.0));v_lighting*=u_opacity;\n#endif \n#ifdef FOG\nv_fog_pos=fog_position(p);\n#endif\n}"),hillshadePrepare:ui("#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_dimension;uniform float u_zoom;uniform vec4 u_unpack;float getElevation(vec2 coord) {\n#ifdef TERRAIN_DEM_FLOAT_FORMAT\nreturn texture2D(u_image,coord).a/4.0;\n#else\nvec4 data=texture2D(u_image,coord)*255.0;data.a=-1.0;return dot(data,u_unpack)/4.0;\n#endif\n}void main() {vec2 epsilon=1.0/u_dimension;float a=getElevation(v_pos+vec2(-epsilon.x,-epsilon.y));float b=getElevation(v_pos+vec2(0,-epsilon.y));float c=getElevation(v_pos+vec2(epsilon.x,-epsilon.y));float d=getElevation(v_pos+vec2(-epsilon.x,0));float e=getElevation(v_pos+vec2(epsilon.x,0));float f=getElevation(v_pos+vec2(-epsilon.x,epsilon.y));float g=getElevation(v_pos+vec2(0,epsilon.y));float h=getElevation(v_pos+vec2(epsilon.x,epsilon.y));float exaggerationFactor=u_zoom < 2.0 ? 0.4 : u_zoom < 4.5 ? 0.35 : 0.3;float exaggeration=u_zoom < 15.0 ? (u_zoom-15.0)*exaggerationFactor : 0.0;vec2 deriv=vec2(\n(c+e+e+h)-(a+d+d+f),(f+g+g+h)-(a+b+b+c)\n)/pow(2.0,exaggeration+(19.2562-u_zoom));gl_FragColor=clamp(vec4(\nderiv.x/2.0+0.5,deriv.y/2.0+0.5,1.0,1.0),0.0,1.0);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_dimension;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);highp vec2 epsilon=1.0/u_dimension;float scale=(u_dimension.x-2.0)/u_dimension.x;v_pos=(a_texture_pos/8192.0)*scale+epsilon;}"),hillshade:ui("uniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_latrange;uniform vec2 u_light;uniform vec4 u_shadow;uniform vec4 u_highlight;uniform vec4 u_accent;void main() {vec4 pixel=texture2D(u_image,v_pos);vec2 deriv=((pixel.rg*2.0)-1.0);float scaleFactor=cos(radians((u_latrange[0]-u_latrange[1])*(1.0-v_pos.y)+u_latrange[1]));float slope=atan(1.25*length(deriv)/scaleFactor);float aspect=deriv.x !=0.0 ? atan(deriv.y,-deriv.x) : PI/2.0*(deriv.y > 0.0 ? 1.0 :-1.0);float intensity=u_light.x;float azimuth=u_light.y+PI;float base=1.875-intensity*1.75;float maxValue=0.5*PI;float scaledSlope=intensity !=0.5 ? ((pow(base,slope)-1.0)/(pow(base,maxValue)-1.0))*maxValue : slope;float accent=cos(scaledSlope);vec4 accent_color=(1.0-accent)*u_accent*clamp(intensity*2.0,0.0,1.0);float shade=abs(mod((aspect+azimuth)/PI+0.5,2.0)-1.0);vec4 shade_color=mix(u_shadow,u_highlight,shade)*sin(scaledSlope)*clamp(intensity*2.0,0.0,1.0);gl_FragColor=accent_color*(1.0-shade_color.a)+shade_color;\n#ifdef LIGHTING_3D_MODE\ngl_FragColor=apply_lighting(gl_FragColor);\n#endif\n#ifdef FOG\ngl_FragColor=fog_dither(fog_apply_premultiplied(gl_FragColor,v_fog_pos));\n#endif\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos=a_texture_pos/8192.0;\n#ifdef FOG\nv_fog_pos=fog_position(a_pos);\n#endif\n}"),line:ui("uniform lowp float u_device_pixel_ratio;uniform float u_alpha_discard_threshold;uniform highp vec2 u_trim_offset;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale;varying highp vec4 v_uv;\n#ifdef RENDER_LINE_DASH\nuniform sampler2D u_dash_image;varying vec2 v_tex;\n#endif\n#ifdef RENDER_LINE_GRADIENT\nuniform sampler2D u_gradient_image;\n#endif\nuniform float u_border_width;uniform vec4 u_border_color;float luminance(vec3 c) {return (c.r+c.r+c.b+c.g+c.g+c.g)*0.1667;}\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float floorwidth\n#pragma mapbox: define lowp vec4 dash\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\nfloat linearstep(float edge0,float edge1,float x) {return clamp((x-edge0)/(edge1-edge0),0.0,1.0);}void main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float floorwidth\n#pragma mapbox: initialize lowp vec4 dash\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);\n#ifdef RENDER_LINE_DASH\nfloat sdfdist=texture2D(u_dash_image,v_tex).a;float sdfgamma=1.0/(2.0*u_device_pixel_ratio)/dash.z;alpha*=linearstep(0.5-sdfgamma/floorwidth,0.5+sdfgamma/floorwidth,sdfdist);\n#endif\nhighp vec4 out_color;\n#ifdef RENDER_LINE_GRADIENT\nout_color=texture2D(u_gradient_image,v_uv.xy);\n#else\nout_color=color;\n#endif\nfloat trimmed=1.0;\n#ifdef RENDER_LINE_TRIM_OFFSET\nhighp float start=v_uv[2];highp float end=v_uv[3];highp float trim_start=u_trim_offset[0];highp float trim_end=u_trim_offset[1];highp float line_progress=(start+(v_uv.x)*(end-start));if (trim_end > trim_start) {if (line_progress <=trim_end && line_progress >=trim_start) {out_color=vec4(0,0,0,0);trimmed=0.0;}}\n#endif\n#ifdef LIGHTING_3D_MODE\nout_color=apply_lighting(out_color);\n#endif\n#ifdef FOG\nout_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos));\n#endif\n#ifdef RENDER_LINE_ALPHA_DISCARD\nif (alpha < u_alpha_discard_threshold) {discard;}\n#endif\n#ifdef RENDER_LINE_BORDER\nfloat edgeBlur=(u_border_width+1.0/u_device_pixel_ratio);float alpha2=clamp(min(dist-(v_width2.t-edgeBlur),v_width2.s-dist)/edgeBlur,0.0,1.0);if (alpha2 < 1.) {float smoothAlpha=smoothstep(0.6,1.0,alpha2);\n#ifdef RENDER_LINE_BORDER_AUTO\nfloat Y=(out_color.a > 0.01) ? luminance(out_color.rgb/out_color.a) : 1.;float adjustment=(Y > 0.) ? 0.5/Y : 0.45;if (out_color.a > 0.25 && Y < 0.25) {vec3 borderColor=(Y > 0.) ? out_color.rgb : vec3(1,1,1)*out_color.a;out_color.rgb=out_color.rgb+borderColor*(adjustment*(1.0-smoothAlpha));} else {out_color.rgb*=(0.6 +0.4*smoothAlpha);}\n#else\nout_color.rgb=mix(u_border_color.rgb*u_border_color.a*trimmed,out_color.rgb,smoothAlpha);\n#endif\n}\n#endif\ngl_FragColor=out_color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","\n#define EXTRUDE_SCALE 0.015873016\nattribute vec2 a_pos_normal;attribute vec4 a_data;\n#if defined(RENDER_LINE_GRADIENT) || defined(RENDER_LINE_TRIM_OFFSET)\nattribute highp vec4 a_packed;\n#endif\n#ifdef RENDER_LINE_DASH\nattribute float a_linesofar;\n#endif\nuniform mat4 u_matrix;uniform mat2 u_pixels_to_tile_units;uniform vec2 u_units_to_pixels;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;varying highp vec4 v_uv;\n#ifdef RENDER_LINE_DASH\nuniform vec2 u_texsize;uniform float u_tile_units_to_pixels;varying vec2 v_tex;\n#endif\n#ifdef RENDER_LINE_GRADIENT\nuniform float u_image_height;\n#endif\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float floorwidth\n#pragma mapbox: define lowp vec4 dash\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float width\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float floorwidth\n#pragma mapbox: initialize lowp vec4 dash\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float width\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*EXTRUDE_SCALE;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*EXTRUDE_SCALE*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist*u_pixels_to_tile_units,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2*u_pixels_to_tile_units,0.0,1.0)+projected_extrude;\n#ifndef RENDER_TO_TEXTURE\nfloat extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;\n#else\nv_gamma_scale=1.0;\n#endif\n#if defined(RENDER_LINE_GRADIENT) || defined(RENDER_LINE_TRIM_OFFSET)\nfloat a_uv_x=a_packed[0];float a_split_index=a_packed[1];highp float a_clip_start=a_packed[2];highp float a_clip_end=a_packed[3];\n#ifdef RENDER_LINE_GRADIENT\nhighp float texel_height=1.0/u_image_height;highp float half_texel_height=0.5*texel_height;v_uv=vec4(a_uv_x,a_split_index*texel_height-half_texel_height,a_clip_start,a_clip_end);\n#else\nv_uv=vec4(a_uv_x,0.0,a_clip_start,a_clip_end);\n#endif\n#endif\n#ifdef RENDER_LINE_DASH\nfloat scale=dash.z==0.0 ? 0.0 : u_tile_units_to_pixels/dash.z;float height=dash.y;v_tex=vec2(a_linesofar*scale/floorwidth,(-normal.y*height+dash.x+0.5)/u_texsize.y);\n#endif\nv_width2=vec2(outset,inset);\n#ifdef FOG\nv_fog_pos=fog_position(pos);\n#endif\n}"),linePattern:ui("uniform lowp float u_device_pixel_ratio;uniform vec2 u_texsize;uniform float u_tile_units_to_pixels;uniform sampler2D u_image;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width;\n#pragma mapbox: define lowp vec4 pattern\n#pragma mapbox: define lowp float pixel_ratio\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize mediump vec4 pattern\n#pragma mapbox: initialize lowp float pixel_ratio\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\nvec2 pattern_tl=pattern.xy;vec2 pattern_br=pattern.zw;vec2 display_size=(pattern_br-pattern_tl)/pixel_ratio;vec2 pattern_size=vec2(display_size.x/u_tile_units_to_pixels,display_size.y);float aspect=display_size.y/v_width;float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float x=mod(v_linesofar/pattern_size.x*aspect,1.0);float y=0.5*v_normal.y+0.5;vec2 texel_size=1.0/u_texsize;vec2 pos=mix(pattern_tl*texel_size-texel_size,pattern_br*texel_size+texel_size,vec2(x,y));vec4 color=texture2D(u_image,pos);\n#ifdef LIGHTING_3D_MODE\ncolor=apply_lighting(color);\n#endif\n#ifdef FOG\ncolor=fog_dither(fog_apply_premultiplied(color,v_fog_pos));\n#endif\ngl_FragColor=color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","\n#define scale 0.015873016\nattribute vec2 a_pos_normal;attribute vec4 a_data;attribute float a_linesofar;uniform mat4 u_matrix;uniform vec2 u_units_to_pixels;uniform mat2 u_pixels_to_tile_units;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width;\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define mediump float width\n#pragma mapbox: define lowp float floorwidth\n#pragma mapbox: define lowp vec4 pattern\n#pragma mapbox: define lowp float pixel_ratio\nvoid main() {\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize mediump float width\n#pragma mapbox: initialize lowp float floorwidth\n#pragma mapbox: initialize mediump vec4 pattern\n#pragma mapbox: initialize lowp float pixel_ratio\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist*u_pixels_to_tile_units,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2*u_pixels_to_tile_units,0.0,1.0)+projected_extrude;\n#ifndef RENDER_TO_TEXTURE\nfloat extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;\n#else\nv_gamma_scale=1.0;\n#endif\nv_linesofar=a_linesofar;v_width2=vec2(outset,inset);v_width=floorwidth;\n#ifdef FOG\nv_fog_pos=fog_position(pos);\n#endif\n}"),raster:ui("uniform float u_fade_t;uniform float u_opacity;uniform sampler2D u_image0;uniform sampler2D u_image1;varying vec2 v_pos0;varying vec2 v_pos1;uniform float u_brightness_low;uniform float u_brightness_high;uniform float u_saturation_factor;uniform float u_contrast_factor;uniform vec3 u_spin_weights;void main() {vec4 color0=texture2D(u_image0,v_pos0);vec4 color1=texture2D(u_image1,v_pos1);if (color0.a > 0.0) {color0.rgb=color0.rgb/color0.a;}if (color1.a > 0.0) {color1.rgb=color1.rgb/color1.a;}vec4 color=mix(color0,color1,u_fade_t);color.a*=u_opacity;vec3 rgb=color.rgb;rgb=vec3(\ndot(rgb,u_spin_weights.xyz),dot(rgb,u_spin_weights.zxy),dot(rgb,u_spin_weights.yzx));float average=(color.r+color.g+color.b)/3.0;rgb+=(average-rgb)*u_saturation_factor;rgb=(rgb-0.5)*u_contrast_factor+0.5;vec3 u_high_vec=vec3(u_brightness_low,u_brightness_low,u_brightness_low);vec3 u_low_vec=vec3(u_brightness_high,u_brightness_high,u_brightness_high);vec3 out_color=mix(u_high_vec,u_low_vec,rgb);\n#ifdef LIGHTING_3D_MODE\nout_color=apply_lighting(out_color);\n#endif\n#ifdef FOG\nout_color=fog_dither(fog_apply(out_color,v_fog_pos));\n#endif\ngl_FragColor=vec4(out_color*color.a,color.a);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_tl_parent;uniform float u_scale_parent;uniform vec2 u_perspective_transform;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos0;varying vec2 v_pos1;void main() {float w=1.0+dot(a_texture_pos,u_perspective_transform);gl_Position=u_matrix*vec4(a_pos*w,0,w);v_pos0=a_texture_pos/8192.0;v_pos1=(v_pos0*u_scale_parent)+u_tl_parent;\n#ifdef FOG\nv_fog_pos=fog_position(a_pos);\n#endif\n}"),symbolIcon:ui("uniform sampler2D u_texture;varying vec2 v_tex;varying float v_fade_opacity;\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\nlowp float alpha=opacity*v_fade_opacity;gl_FragColor=texture2D(u_texture,v_tex)*alpha;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","attribute vec4 a_pos_offset;attribute vec4 a_tex_size;attribute vec4 a_pixeloffset;attribute vec4 a_projected_pos;attribute float a_fade_opacity;\n#ifdef PROJECTION_GLOBE_VIEW\nattribute vec3 a_globe_anchor;attribute vec3 a_globe_normal;\n#endif\nuniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform highp float u_camera_to_center_distance;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform float u_fade_change;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform vec2 u_texsize;uniform vec3 u_up_vector;\n#ifdef PROJECTION_GLOBE_VIEW\nuniform vec3 u_tile_id;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_camera_forward;uniform float u_zoom_transition;uniform vec3 u_ecef_origin;uniform mat4 u_tile_matrix;\n#endif\nvarying vec2 v_tex;varying float v_fade_opacity;\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_tex_size.xy;vec2 a_size=a_tex_size.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;vec2 a_min_font_scale=a_pixeloffset.zw/256.0;highp float segment_angle=-a_projected_pos[3];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec2 tile_anchor=a_pos;vec3 h=elevationVector(tile_anchor)*elevation(tile_anchor);float globe_occlusion_fade;vec3 world_pos;vec3 mercator_pos;\n#ifdef PROJECTION_GLOBE_VIEW\nmercator_pos=mercator_tile_position(u_inv_rot_matrix,tile_anchor,u_tile_id,u_merc_center);world_pos=mix_globe_mercator(a_globe_anchor+h,mercator_pos,u_zoom_transition);vec4 ecef_point=u_tile_matrix*vec4(world_pos,1.0);vec3 origin_to_point=ecef_point.xyz-u_ecef_origin;globe_occlusion_fade=dot(origin_to_point,u_camera_forward) >=0.0 ? 0.0 : 1.0;\n#else\nworld_pos=vec3(tile_anchor,0)+h;globe_occlusion_fade=1.0;\n#endif\nvec4 projected_point=u_matrix*vec4(world_pos,1);highp float camera_to_anchor_distance=projected_point.w;highp float distance_ratio=u_pitch_with_map ?\ncamera_to_anchor_distance/u_camera_to_center_distance :\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(\n0.5+0.5*distance_ratio,0.0,1.5);size*=perspective_ratio;float font_scale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjected_point;\n#ifdef PROJECTION_GLOBE_VIEW\nvec3 displacement=vec3(a_globe_normal.z,0,-a_globe_normal.x);offsetProjected_point=u_matrix*vec4(a_globe_anchor+displacement,1);\n#else\noffsetProjected_point=u_matrix*vec4(tile_anchor+vec2(1,0),0,1);\n#endif\nvec2 a=projected_point.xy/projected_point.w;vec2 b=offsetProjected_point.xy/offsetProjected_point.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}vec4 projected_pos;\n#ifdef PROJECTION_GLOBE_VIEW\nvec3 proj_pos=mix_globe_mercator(a_projected_pos.xyz+h,mercator_pos,u_zoom_transition);projected_pos=u_label_plane_matrix*vec4(proj_pos,1.0);\n#else\nprojected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,h.z,1.0);\n#endif\nhighp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);float z=0.0;vec2 offset=rotation_matrix*(a_offset/32.0*max(a_min_font_scale,font_scale)+a_pxoffset/16.0);\n#ifdef TERRAIN\n#ifdef PITCH_WITH_MAP_TERRAIN\nvec4 tile_pos=u_label_plane_matrix_inv*vec4(a_projected_pos.xy+offset,0.0,1.0);z=elevation(tile_pos.xy);\n#endif\n#endif\nfloat occlusion_fade=occlusionFade(projected_point)*globe_occlusion_fade;\n#ifdef PROJECTION_GLOBE_VIEW\nvec3 xAxis=u_pitch_with_map ? normalize(cross(a_globe_normal,u_up_vector)) : vec3(1,0,0);vec3 yAxis=u_pitch_with_map ? normalize(cross(a_globe_normal,xAxis)) : vec3(0,1,0);gl_Position=mix(u_coord_matrix*vec4(projected_pos.xyz/projected_pos.w+xAxis*offset.x+yAxis*offset.y,1.0),AWAY,float(projected_point.w <=0.0 || occlusion_fade==0.0));\n#else\ngl_Position=mix(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+offset,z,1.0),AWAY,float(projected_point.w <=0.0 || occlusion_fade==0.0));\n#endif\nfloat projection_transition_fade=1.0;\n#if defined(PROJECTED_POS_ON_VIEWPORT) && defined(PROJECTION_GLOBE_VIEW)\nprojection_transition_fade=1.0-step(EPSILON,u_zoom_transition);\n#endif\nv_tex=a_tex/u_texsize;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;v_fade_opacity=max(0.0,min(occlusion_fade,fade_opacity[0]+fade_change))*projection_transition_fade;}"),symbolSDF:ui("#define SDF_PX 8.0\nuniform bool u_is_halo;uniform sampler2D u_texture;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;uniform bool u_is_text;varying vec2 v_data0;varying vec3 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nfloat EDGE_GAMMA=0.105/u_device_pixel_ratio;vec2 tex=v_data0.xy;float gamma_scale=v_data1.x;float size=v_data1.y;float fade_opacity=v_data1[2];float fontScale=u_is_text ? size/24.0 : size;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","attribute vec4 a_pos_offset;attribute vec4 a_tex_size;attribute vec4 a_pixeloffset;attribute vec4 a_projected_pos;attribute float a_fade_opacity;\n#ifdef PROJECTION_GLOBE_VIEW\nattribute vec3 a_globe_anchor;attribute vec3 a_globe_normal;\n#endif\nuniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;uniform vec3 u_up_vector;\n#ifdef PROJECTION_GLOBE_VIEW\nuniform vec3 u_tile_id;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_camera_forward;uniform float u_zoom_transition;uniform vec3 u_ecef_origin;uniform mat4 u_tile_matrix;\n#endif\nvarying vec2 v_data0;varying vec3 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_tex_size.xy;vec2 a_size=a_tex_size.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;highp float segment_angle=-a_projected_pos[3];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec2 tile_anchor=a_pos;vec3 h=elevationVector(tile_anchor)*elevation(tile_anchor);float globe_occlusion_fade;vec3 world_pos;vec3 mercator_pos;\n#ifdef PROJECTION_GLOBE_VIEW\nmercator_pos=mercator_tile_position(u_inv_rot_matrix,tile_anchor,u_tile_id,u_merc_center);world_pos=mix_globe_mercator(a_globe_anchor+h,mercator_pos,u_zoom_transition);vec4 ecef_point=u_tile_matrix*vec4(world_pos,1.0);vec3 origin_to_point=ecef_point.xyz-u_ecef_origin;globe_occlusion_fade=dot(origin_to_point,u_camera_forward) >=0.0 ? 0.0 : 1.0;\n#else\nworld_pos=vec3(tile_anchor,0)+h;globe_occlusion_fade=1.0;\n#endif\nvec4 projected_point=u_matrix*vec4(world_pos,1);highp float camera_to_anchor_distance=projected_point.w;highp float distance_ratio=u_pitch_with_map ?\ncamera_to_anchor_distance/u_camera_to_center_distance :\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(\n0.5+0.5*distance_ratio,0.0,1.5);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetprojected_point;\n#ifdef PROJECTION_GLOBE_VIEW\nvec3 displacement=vec3(a_globe_normal.z,0,-a_globe_normal.x);offsetprojected_point=u_matrix*vec4(a_globe_anchor+displacement,1);\n#else\noffsetprojected_point=u_matrix*vec4(tile_anchor+vec2(1,0),0,1);\n#endif\nvec2 a=projected_point.xy/projected_point.w;vec2 b=offsetprojected_point.xy/offsetprojected_point.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}vec4 projected_pos;\n#ifdef PROJECTION_GLOBE_VIEW\nvec3 proj_pos=mix_globe_mercator(a_projected_pos.xyz+h,mercator_pos,u_zoom_transition);projected_pos=u_label_plane_matrix*vec4(proj_pos,1.0);\n#else\nprojected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,h.z,1.0);\n#endif\nhighp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);float z=0.0;vec2 offset=rotation_matrix*(a_offset/32.0*fontScale+a_pxoffset);\n#ifdef TERRAIN\n#ifdef PITCH_WITH_MAP_TERRAIN\nvec4 tile_pos=u_label_plane_matrix_inv*vec4(a_projected_pos.xy+offset,0.0,1.0);z=elevation(tile_pos.xy);\n#endif\n#endif\nfloat occlusion_fade=occlusionFade(projected_point)*globe_occlusion_fade;\n#ifdef PROJECTION_GLOBE_VIEW\nvec3 xAxis=u_pitch_with_map ? normalize(cross(a_globe_normal,u_up_vector)) : vec3(1,0,0);vec3 yAxis=u_pitch_with_map ? normalize(cross(a_globe_normal,xAxis)) : vec3(0,1,0);gl_Position=mix(u_coord_matrix*vec4(projected_pos.xyz/projected_pos.w+xAxis*offset.x+yAxis*offset.y,1.0),AWAY,float(projected_point.w <=0.0 || occlusion_fade==0.0));\n#else\ngl_Position=mix(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+offset,z,1.0),AWAY,float(projected_point.w <=0.0 || occlusion_fade==0.0));\n#endif\nfloat gamma_scale=gl_Position.w;float projection_transition_fade=1.0;\n#if defined(PROJECTED_POS_ON_VIEWPORT) && defined(PROJECTION_GLOBE_VIEW)\nprojection_transition_fade=1.0-step(EPSILON,u_zoom_transition);\n#endif\nvec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(occlusion_fade,fade_opacity[0]+fade_change));v_data0=a_tex/u_texsize;v_data1=vec3(gamma_scale,size,interpolated_fade_opacity*projection_transition_fade);}"),symbolTextAndIcon:ui("#define SDF_PX 8.0\n#define SDF 1.0\n#define ICON 0.0\nuniform bool u_is_halo;uniform sampler2D u_texture;uniform sampler2D u_texture_icon;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;varying vec4 v_data0;varying vec4 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nfloat fade_opacity=v_data1[2];if (v_data1.w==ICON) {vec2 tex_icon=v_data0.zw;lowp float alpha=opacity*fade_opacity;gl_FragColor=texture2D(u_texture_icon,tex_icon)*alpha;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\nreturn;}vec2 tex=v_data0.xy;float EDGE_GAMMA=0.105/u_device_pixel_ratio;float gamma_scale=v_data1.x;float size=v_data1.y;float fontScale=size/24.0;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","attribute vec4 a_pos_offset;attribute vec4 a_tex_size;attribute vec4 a_projected_pos;attribute float a_fade_opacity;\n#ifdef PROJECTION_GLOBE_VIEW\nattribute vec3 a_globe_anchor;attribute vec3 a_globe_normal;\n#endif\nuniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;uniform vec3 u_up_vector;uniform vec2 u_texsize_icon;\n#ifdef PROJECTION_GLOBE_VIEW\nuniform vec3 u_tile_id;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_camera_forward;uniform float u_zoom_transition;uniform vec3 u_ecef_origin;uniform mat4 u_tile_matrix;\n#endif\nvarying vec4 v_data0;varying vec4 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_tex_size.xy;vec2 a_size=a_tex_size.zw;float a_size_min=floor(a_size[0]*0.5);float is_sdf=a_size[0]-2.0*a_size_min;highp float segment_angle=-a_projected_pos[3];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec2 tile_anchor=a_pos;vec3 h=elevationVector(tile_anchor)*elevation(tile_anchor);float globe_occlusion_fade;vec3 world_pos;vec3 mercator_pos;\n#ifdef PROJECTION_GLOBE_VIEW\nmercator_pos=mercator_tile_position(u_inv_rot_matrix,tile_anchor,u_tile_id,u_merc_center);world_pos=mix_globe_mercator(a_globe_anchor+h,mercator_pos,u_zoom_transition);vec4 ecef_point=u_tile_matrix*vec4(world_pos,1.0);vec3 origin_to_point=ecef_point.xyz-u_ecef_origin;globe_occlusion_fade=dot(origin_to_point,u_camera_forward) >=0.0 ? 0.0 : 1.0;\n#else\nworld_pos=vec3(tile_anchor,0)+h;globe_occlusion_fade=1.0;\n#endif\nvec4 projected_point=u_matrix*vec4(world_pos,1);highp float camera_to_anchor_distance=projected_point.w;highp float distance_ratio=u_pitch_with_map ?\ncamera_to_anchor_distance/u_camera_to_center_distance :\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(\n0.5+0.5*distance_ratio,0.0,1.5);size*=perspective_ratio;float font_scale=size/24.0;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offset_projected_point=u_matrix*vec4(a_pos+vec2(1,0),0,1);vec2 a=projected_point.xy/projected_point.w;vec2 b=offset_projected_point.xy/offset_projected_point.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}vec4 projected_pos;\n#ifdef PROJECTION_GLOBE_VIEW\nvec3 proj_pos=mix_globe_mercator(a_projected_pos.xyz+h,mercator_pos,u_zoom_transition);projected_pos=u_label_plane_matrix*vec4(proj_pos,1.0);\n#else\nprojected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,h.z,1.0);\n#endif\nhighp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);float z=0.0;vec2 offset=rotation_matrix*(a_offset/32.0*font_scale);\n#ifdef TERRAIN\n#ifdef PITCH_WITH_MAP_TERRAIN\nvec4 tile_pos=u_label_plane_matrix_inv*vec4(a_projected_pos.xy+offset,0.0,1.0);z=elevation(tile_pos.xy);\n#endif\n#endif\nfloat occlusion_fade=occlusionFade(projected_point)*globe_occlusion_fade;\n#ifdef PROJECTION_GLOBE_VIEW\nvec3 xAxis=u_pitch_with_map ? normalize(cross(a_globe_normal,u_up_vector)) : vec3(1,0,0);vec3 yAxis=u_pitch_with_map ? normalize(cross(a_globe_normal,xAxis)) : vec3(0,1,0);gl_Position=mix(u_coord_matrix*vec4(projected_pos.xyz/projected_pos.w+xAxis*offset.x+yAxis*offset.y,1.0),AWAY,float(projected_point.w <=0.0 || occlusion_fade==0.0));\n#else\ngl_Position=mix(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+offset,z,1.0),AWAY,float(projected_point.w <=0.0 || occlusion_fade==0.0));\n#endif\nfloat gamma_scale=gl_Position.w;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(occlusion_fade,fade_opacity[0]+fade_change));float projection_transition_fade=1.0;\n#if defined(PROJECTED_POS_ON_VIEWPORT) && defined(PROJECTION_GLOBE_VIEW)\nprojection_transition_fade=1.0-step(EPSILON,u_zoom_transition);\n#endif\nv_data0.xy=a_tex/u_texsize;v_data0.zw=a_tex/u_texsize_icon;v_data1=vec4(gamma_scale,size,interpolated_fade_opacity*projection_transition_fade,is_sdf);}"),terrainRaster:ui("uniform sampler2D u_image0;varying vec2 v_pos0;\n#ifdef FOG\nvarying float v_fog_opacity;\n#endif\n#ifdef RENDER_SHADOWS\nvarying vec4 v_pos_light_view_0;varying vec4 v_pos_light_view_1;varying float v_depth;\n#endif\nvoid main() {vec4 color=texture2D(u_image0,v_pos0);\n#ifdef RENDER_SHADOWS\ncolor.xyz=shadowed_color(color.xyz,v_pos_light_view_0,v_pos_light_view_1,v_depth);\n#endif\n#ifdef FOG\n#ifdef ZERO_EXAGGERATION\ncolor=fog_dither(fog_apply_premultiplied(color,v_fog_pos));\n#else\ncolor=fog_dither(fog_apply_from_vert(color,v_fog_opacity));\n#endif\n#endif\ngl_FragColor=color;\n#ifdef TERRAIN_WIREFRAME\ngl_FragColor=vec4(1.0,0.0,0.0,0.8);\n#endif\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform float u_skirt_height;attribute vec2 a_pos;varying vec2 v_pos0;\n#ifdef FOG\nvarying float v_fog_opacity;\n#endif\n#ifdef RENDER_SHADOWS\nuniform mat4 u_light_matrix_0;uniform mat4 u_light_matrix_1;varying vec4 v_pos_light_view_0;varying vec4 v_pos_light_view_1;varying float v_depth;\n#endif\nconst float wireframeOffset=0.00015;void main() {vec3 decomposedPosAndSkirt=decomposeToPosAndSkirt(a_pos);float skirt=decomposedPosAndSkirt.z;vec2 decodedPos=decomposedPosAndSkirt.xy;float elevation=elevation(decodedPos)-skirt*u_skirt_height;\n#ifdef TERRAIN_WIREFRAME\nelevation+=wireframeOffset;\n#endif\nv_pos0=decodedPos/8192.0;gl_Position=u_matrix*vec4(decodedPos,elevation,1.0);\n#ifdef FOG\n#ifdef ZERO_EXAGGERATION\nv_fog_pos=fog_position(decodedPos);\n#else\nv_fog_opacity=fog(fog_position(vec3(decodedPos,elevation)));\n#endif\n#endif\n#ifdef RENDER_SHADOWS\nvec3 pos=vec3(decodedPos,elevation);v_pos_light_view_0=u_light_matrix_0*vec4(pos,1.);v_pos_light_view_1=u_light_matrix_1*vec4(pos,1.);v_depth=gl_Position.w;\n#endif\n}"),terrainDepth:ui("#ifdef GL_ES\nprecision highp float;\n#endif\nvarying float v_depth;void main() {gl_FragColor=pack_depth(v_depth);}","uniform mat4 u_matrix;attribute vec2 a_pos;varying float v_depth;void main() {float elevation=elevation(a_pos);gl_Position=u_matrix*vec4(a_pos,elevation,1.0);v_depth=gl_Position.z/gl_Position.w;}"),skybox:ui("\nvarying lowp vec3 v_uv;uniform lowp samplerCube u_cubemap;uniform lowp float u_opacity;uniform highp float u_temporal_offset;uniform highp vec3 u_sun_direction;float sun_disk(highp vec3 ray_direction,highp vec3 sun_direction) {highp float cos_angle=dot(normalize(ray_direction),sun_direction);const highp float cos_sun_angular_diameter=0.99996192306;const highp float smoothstep_delta=1e-5;return smoothstep(\ncos_sun_angular_diameter-smoothstep_delta,cos_sun_angular_diameter+smoothstep_delta,cos_angle);}float map(float value,float start,float end,float new_start,float new_end) {return ((value-start)*(new_end-new_start))/(end-start)+new_start;}void main() {vec3 uv=v_uv;const float y_bias=0.015;uv.y+=y_bias;uv.y=pow(abs(uv.y),1.0/5.0);uv.y=map(uv.y,0.0,1.0,-1.0,1.0);vec3 sky_color=textureCube(u_cubemap,uv).rgb;\n#ifdef FOG\nsky_color=fog_apply_sky_gradient(v_uv.xzy,sky_color);\n#endif\nsky_color.rgb=dither(sky_color.rgb,gl_FragCoord.xy+u_temporal_offset);sky_color+=0.1*sun_disk(v_uv,u_sun_direction);gl_FragColor=vec4(sky_color*u_opacity,u_opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}",Qt),skyboxGradient:ui("varying highp vec3 v_uv;uniform lowp sampler2D u_color_ramp;uniform highp vec3 u_center_direction;uniform lowp float u_radius;uniform lowp float u_opacity;uniform highp float u_temporal_offset;void main() {float progress=acos(dot(normalize(v_uv),u_center_direction))/u_radius;vec4 color=texture2D(u_color_ramp,vec2(progress,0.5));\n#ifdef FOG\ncolor.rgb=fog_apply_sky_gradient(v_uv.xzy,color.rgb/color.a)*color.a;\n#endif\ncolor*=u_opacity;color.rgb=dither(color.rgb,gl_FragCoord.xy+u_temporal_offset);gl_FragColor=color;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}",Qt),skyboxCapture:ui("\nvarying highp vec3 v_position;uniform highp float u_sun_intensity;uniform highp float u_luminance;uniform lowp vec3 u_sun_direction;uniform highp vec4 u_color_tint_r;uniform highp vec4 u_color_tint_m;\n#ifdef GL_ES\nprecision highp float;\n#endif\n#define BETA_R vec3(5.5e-6,13.0e-6,22.4e-6)\n#define BETA_M vec3(21e-6,21e-6,21e-6)\n#define MIE_G 0.76\n#define DENSITY_HEIGHT_SCALE_R 8000.0\n#define DENSITY_HEIGHT_SCALE_M 1200.0\n#define PLANET_RADIUS 6360e3\n#define ATMOSPHERE_RADIUS 6420e3\n#define SAMPLE_STEPS 10\n#define DENSITY_STEPS 4\nfloat ray_sphere_exit(vec3 orig,vec3 dir,float radius) {float a=dot(dir,dir);float b=2.0*dot(dir,orig);float c=dot(orig,orig)-radius*radius;float d=sqrt(b*b-4.0*a*c);return (-b+d)/(2.0*a);}vec3 extinction(vec2 density) {return exp(-vec3(BETA_R*u_color_tint_r.a*density.x+BETA_M*u_color_tint_m.a*density.y));}vec2 local_density(vec3 point) {float height=max(length(point)-PLANET_RADIUS,0.0);float exp_r=exp(-height/DENSITY_HEIGHT_SCALE_R);float exp_m=exp(-height/DENSITY_HEIGHT_SCALE_M);return vec2(exp_r,exp_m);}float phase_ray(float cos_angle) {return (3.0/(16.0*PI))*(1.0+cos_angle*cos_angle);}float phase_mie(float cos_angle) {return (3.0/(8.0*PI))*((1.0-MIE_G*MIE_G)*(1.0+cos_angle*cos_angle))/((2.0+MIE_G*MIE_G)*pow(1.0+MIE_G*MIE_G-2.0*MIE_G*cos_angle,1.5));}vec2 density_to_atmosphere(vec3 point,vec3 light_dir) {float ray_len=ray_sphere_exit(point,light_dir,ATMOSPHERE_RADIUS);float step_len=ray_len/float(DENSITY_STEPS);vec2 density_point_to_atmosphere=vec2(0.0);for (int i=0; i < DENSITY_STEPS;++i) {vec3 point_on_ray=point+light_dir*((float(i)+0.5)*step_len);density_point_to_atmosphere+=local_density(point_on_ray)*step_len;;}return density_point_to_atmosphere;}vec3 atmosphere(vec3 ray_dir,vec3 sun_direction,float sun_intensity) {vec2 density_orig_to_point=vec2(0.0);vec3 scatter_r=vec3(0.0);vec3 scatter_m=vec3(0.0);vec3 origin=vec3(0.0,PLANET_RADIUS,0.0);float ray_len=ray_sphere_exit(origin,ray_dir,ATMOSPHERE_RADIUS);float step_len=ray_len/float(SAMPLE_STEPS);for (int i=0; i < SAMPLE_STEPS;++i) {vec3 point_on_ray=origin+ray_dir*((float(i)+0.5)*step_len);vec2 density=local_density(point_on_ray)*step_len;density_orig_to_point+=density;vec2 density_point_to_atmosphere=density_to_atmosphere(point_on_ray,sun_direction);vec2 density_orig_to_atmosphere=density_orig_to_point+density_point_to_atmosphere;vec3 extinction=extinction(density_orig_to_atmosphere);scatter_r+=density.x*extinction;scatter_m+=density.y*extinction;}float cos_angle=dot(ray_dir,sun_direction);float phase_r=phase_ray(cos_angle);float phase_m=phase_mie(cos_angle);vec3 beta_r=BETA_R*u_color_tint_r.rgb*u_color_tint_r.a;vec3 beta_m=BETA_M*u_color_tint_m.rgb*u_color_tint_m.a;return (scatter_r*phase_r*beta_r+scatter_m*phase_m*beta_m)*sun_intensity;}const float A=0.15;const float B=0.50;const float C=0.10;const float D=0.20;const float E=0.02;const float F=0.30;vec3 uncharted2_tonemap(vec3 x) {return ((x*(A*x+C*B)+D*E)/(x*(A*x+B)+D*F))-E/F;}void main() {vec3 ray_direction=v_position;ray_direction.y=pow(ray_direction.y,5.0);const float y_bias=0.015;ray_direction.y+=y_bias;vec3 color=atmosphere(normalize(ray_direction),u_sun_direction,u_sun_intensity);float white_scale=1.0748724675633854;color=uncharted2_tonemap((log2(2.0/pow(u_luminance,4.0)))*color)*white_scale;gl_FragColor=vec4(color,1.0);}","attribute highp vec3 a_pos_3f;uniform mat3 u_matrix_3f;varying highp vec3 v_position;float map(float value,float start,float end,float new_start,float new_end) {return ((value-start)*(new_end-new_start))/(end-start)+new_start;}void main() {vec4 pos=vec4(u_matrix_3f*a_pos_3f,1.0);v_position=pos.xyz;v_position.y*=-1.0;v_position.y=map(v_position.y,-1.0,1.0,0.0,1.0);gl_Position=vec4(a_pos_3f.xy,0.0,1.0);}"),globeRaster:ui("uniform sampler2D u_image0;varying vec2 v_pos0;\n#ifndef FOG\nuniform highp vec3 u_frustum_tl;uniform highp vec3 u_frustum_tr;uniform highp vec3 u_frustum_br;uniform highp vec3 u_frustum_bl;uniform highp vec3 u_globe_pos;uniform highp float u_globe_radius;uniform vec2 u_viewport;\n#endif\nvoid main() {vec4 color;\n#ifdef CUSTOM_ANTIALIASING\nvec2 uv=gl_FragCoord.xy/u_viewport;highp vec3 ray_dir=mix(\nmix(u_frustum_tl,u_frustum_tr,uv.x),mix(u_frustum_bl,u_frustum_br,uv.x),1.0-uv.y);vec3 dir=normalize(ray_dir);vec3 closest_point=dot(u_globe_pos,dir)*dir;float norm_dist_from_center=1.0-length(closest_point-u_globe_pos)/u_globe_radius;const float antialias_pixel=2.0;float antialias_factor=antialias_pixel*fwidth(norm_dist_from_center);float antialias=smoothstep(0.0,antialias_factor,norm_dist_from_center);vec4 raster=texture2D(u_image0,v_pos0);color=vec4(raster.rgb*antialias,raster.a*antialias);\n#else\ncolor=texture2D(u_image0,v_pos0);\n#endif\n#ifdef FOG\ncolor=fog_dither(fog_apply_premultiplied(color,v_fog_pos));\n#endif\ngl_FragColor=color;\n#ifdef TERRAIN_WIREFRAME\ngl_FragColor=vec4(1.0,0.0,0.0,0.8);\n#endif\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_proj_matrix;uniform mat4 u_normalize_matrix;uniform mat4 u_globe_matrix;uniform mat4 u_merc_matrix;uniform float u_zoom_transition;uniform vec2 u_merc_center;uniform mat3 u_grid_matrix;uniform float u_skirt_height;\n#ifdef GLOBE_POLES\nattribute vec3 a_globe_pos;attribute vec2 a_uv;\n#else\nattribute vec2 a_pos;\n#endif\nvarying vec2 v_pos0;const float wireframeOffset=1e3;float mercatorXfromLng(float lng) {return (180.0+lng)/360.0;}float mercatorYfromLat(float lat) {return (180.0-(RAD_TO_DEG*log(tan(QUARTER_PI+lat/2.0*DEG_TO_RAD))))/360.0;}vec3 latLngToECEF(vec2 latLng) {latLng=DEG_TO_RAD*latLng;float cosLat=cos(latLng[0]);float sinLat=sin(latLng[0]);float cosLng=cos(latLng[1]);float sinLng=sin(latLng[1]);float sx=cosLat*sinLng*GLOBE_RADIUS;float sy=-sinLat*GLOBE_RADIUS;float sz=cosLat*cosLng*GLOBE_RADIUS;return vec3(sx,sy,sz);}void main() {\n#ifdef GLOBE_POLES\nvec3 globe_pos=a_globe_pos;vec2 uv=a_uv;\n#else\nfloat tiles=u_grid_matrix[0][2];float idx=u_grid_matrix[1][2];float idy=u_grid_matrix[2][2];vec3 decomposed_pos_and_skirt=decomposeToPosAndSkirt(a_pos);vec3 latLng=u_grid_matrix*vec3(decomposed_pos_and_skirt.xy,1.0);float mercatorY=mercatorYfromLat(latLng[0]);float uvY=mercatorY*tiles-idy;float mercatorX=mercatorXfromLng(latLng[1]);float uvX=mercatorX*tiles-idx;vec3 globe_pos=latLngToECEF(latLng.xy);vec2 merc_pos=vec2(mercatorX,mercatorY);vec2 uv=vec2(uvX,uvY);\n#endif\nv_pos0=uv;vec2 tile_pos=uv*EXTENT;vec3 globe_derived_up_vector=normalize(globe_pos)*u_tile_up_scale;\n#ifdef GLOBE_POLES\nvec3 up_vector=globe_derived_up_vector;\n#else\nvec3 up_vector=elevationVector(tile_pos);\n#endif\nfloat height=elevation(tile_pos);\n#ifdef TERRAIN_WIREFRAME\nheight+=wireframeOffset;\n#endif\nglobe_pos+=up_vector*height;\n#ifndef GLOBE_POLES\nglobe_pos-=globe_derived_up_vector*u_skirt_height*decomposed_pos_and_skirt.z;\n#endif\n#ifdef GLOBE_POLES\nvec4 interpolated_pos=u_globe_matrix*vec4(globe_pos,1.0);\n#else\nvec4 globe_world_pos=u_globe_matrix*vec4(globe_pos,1.0);vec4 merc_world_pos=vec4(0.0);if (u_zoom_transition > 0.0) {merc_world_pos=vec4(merc_pos,height-u_skirt_height*decomposed_pos_and_skirt.z,1.0);merc_world_pos.xy-=u_merc_center;merc_world_pos.x=wrap(merc_world_pos.x,-0.5,0.5);merc_world_pos=u_merc_matrix*merc_world_pos;}vec4 interpolated_pos=vec4(mix(globe_world_pos.xyz,merc_world_pos.xyz,u_zoom_transition),1.0);\n#endif\ngl_Position=u_proj_matrix*interpolated_pos;\n#ifdef FOG\nv_fog_pos=fog_position((u_normalize_matrix*vec4(globe_pos,1.0)).xyz);\n#endif\n}"),globeAtmosphere:ui("uniform float u_transition;uniform highp float u_fadeout_range;uniform highp float u_temporal_offset;uniform vec3 u_start_color;uniform vec4 u_color;uniform vec4 u_space_color;uniform vec4 u_high_color;uniform float u_star_intensity;uniform float u_star_size;uniform float u_star_density;uniform float u_horizon_angle;uniform mat4 u_rotation_matrix;varying highp vec3 v_ray_dir;varying highp vec3 v_horizon_dir;highp float random(highp vec3 p) {p=fract(p*vec3(23.2342,97.1231,91.2342));p+=dot(p.zxy,p.yxz+123.1234);return fract(p.x*p.y);}float stars(vec3 p,float scale,vec2 offset) {vec2 uv_scale=(u_viewport/u_star_size)*scale;vec3 position=vec3(p.xy*uv_scale+offset*u_viewport,p.z);vec3 q=fract(position)-0.5;vec3 id=floor(position);float random_visibility=step(random(id),u_star_density);float circle=smoothstep(0.5+u_star_intensity,0.5,length(q));return circle*random_visibility;}void main() {highp vec3 dir=normalize(v_ray_dir);float globe_pos_dot_dir;\n#ifdef PROJECTION_GLOBE_VIEW\nglobe_pos_dot_dir=dot(u_globe_pos,dir);highp vec3 closest_point_forward=abs(globe_pos_dot_dir)*dir;float norm_dist_from_center=length(closest_point_forward-u_globe_pos)/u_globe_radius;if (norm_dist_from_center < 0.98) {discard;return;}\n#endif\nhighp vec3 horizon_dir=normalize(v_horizon_dir);float horizon_angle_mercator=dir.y < horizon_dir.y ?\n0.0 : max(acos(dot(dir,horizon_dir)),0.0);float horizon_angle;\n#ifdef PROJECTION_GLOBE_VIEW\nhighp vec3 closest_point=globe_pos_dot_dir*dir;float closest_point_to_center=length(closest_point-u_globe_pos);float theta=asin(clamp(closest_point_to_center/length(u_globe_pos),-1.0,1.0));horizon_angle=globe_pos_dot_dir < 0.0 ?\nPI-theta-u_horizon_angle : theta-u_horizon_angle;float angle_t=pow(u_transition,10.0);horizon_angle=mix(horizon_angle,horizon_angle_mercator,angle_t);\n#else\nhorizon_angle=horizon_angle_mercator;\n#endif\nhorizon_angle/=PI;float t=exp(-horizon_angle/u_fadeout_range);float alpha_0=u_color.a;float alpha_1=u_high_color.a;float alpha_2=u_space_color.a;vec3 color_stop_0=u_color.rgb;vec3 color_stop_1=u_high_color.rgb;vec3 color_stop_2=u_space_color.rgb;vec3 c0=mix(color_stop_2,color_stop_1,alpha_1);vec3 c1=mix(c0,color_stop_0,alpha_0);vec3 c2=mix(c0,c1,t);vec3 c =mix(color_stop_2,c2,t);float a0=mix(alpha_2,1.0,alpha_1);float a1=mix(a0,1.0,alpha_0);float a2=mix(a0,a1,t);float a =mix(alpha_2,a2,t);vec2 uv=gl_FragCoord.xy/u_viewport-0.5;float aspect_ratio=u_viewport.x/u_viewport.y;vec4 uv_dir=vec4(normalize(vec3(uv.x*aspect_ratio,uv.y,1.0)),1.0);uv_dir=u_rotation_matrix*uv_dir;vec3 n=abs(uv_dir.xyz);vec2 uv_remap=(n.x > n.y && n.x > n.z) ? uv_dir.yz/uv_dir.x:\n(n.y > n.x && n.y > n.z) ? uv_dir.zx/uv_dir.y:\nuv_dir.xy/uv_dir.z;uv_remap.x/=aspect_ratio;vec3 D=vec3(uv_remap,1.0);highp float star_field=0.0;if (u_star_intensity > 0.0) {star_field+=stars(D,1.2,vec2(0.0,0.0));star_field+=stars(D,1.0,vec2(1.0,0.0));star_field+=stars(D,0.8,vec2(0.0,1.0));star_field+=stars(D,0.6,vec2(1.0,1.0));star_field*=(1.0-pow(t,0.25+(1.0-u_high_color.a)*0.75));c+=star_field*alpha_2;}c=dither(c,gl_FragCoord.xy+u_temporal_offset);gl_FragColor=vec4(c,a);}","attribute vec3 a_pos;attribute vec2 a_uv;uniform vec3 u_frustum_tl;uniform vec3 u_frustum_tr;uniform vec3 u_frustum_br;uniform vec3 u_frustum_bl;uniform float u_horizon;varying highp vec3 v_ray_dir;varying highp vec3 v_horizon_dir;void main() {v_ray_dir=mix(\nmix(u_frustum_tl,u_frustum_tr,a_uv.x),mix(u_frustum_bl,u_frustum_br,a_uv.x),a_uv.y);v_horizon_dir=mix(\nmix(u_frustum_tl,u_frustum_bl,u_horizon),mix(u_frustum_tr,u_frustum_br,u_horizon),a_uv.x);gl_Position=vec4(a_pos,1.0);}")};function hi(e,t){const i=e.replace(/\s*\/\/[^\n]*\n/g,"\n").split("\n");for(let e of i)if(e=e.trim(),"#"===e[0]&&e.includes("if")&&!e.includes("endif")){e=e.replace("#","").replace(/ifdef|ifndef|elif|if/g,"").replace(/!|defined|\(|\)|\|\||&&/g,"").replace(/\s+/g," ").trim();const i=e.split(" ");for(const e of i)t.includes(e)||t.push(e);}}function ui(e,t){const i=/#pragma mapbox: ([\w]+) ([\w]+) ([\w]+) ([\w]+)/g,o=t.match(/attribute (highp |mediump |lowp )?([\w]+) ([\w]+)/g),r={},n=[...ni];return hi(e,n),hi(t,n),{fragmentSource:e=e.replace(i,((e,t,i,o,n)=>(r[n]=!0,"define"===t?`\n#ifndef HAS_UNIFORM_u_${n}\nvarying ${i} ${o} ${n};\n#else\nuniform ${i} ${o} u_${n};\n#endif\n`:`\n#ifdef HAS_UNIFORM_u_${n}\n ${i} ${o} ${n} = u_${n};\n#endif\n`))),vertexSource:t=t.replace(i,((e,t,i,o,n)=>{const s="float"===o?"vec2":"vec4",a=n.match(/color/)?"color":s;return r[n]?"define"===t?`\n#ifndef HAS_UNIFORM_u_${n}\nuniform lowp float u_${n}_t;\nattribute ${i} ${s} a_${n};\nvarying ${i} ${o} ${n};\n#else\nuniform ${i} ${o} u_${n};\n#endif\n`:"vec4"===a?`\n#ifndef HAS_UNIFORM_u_${n}\n ${n} = a_${n};\n#else\n ${i} ${o} ${n} = u_${n};\n#endif\n`:`\n#ifndef HAS_UNIFORM_u_${n}\n ${n} = unpack_mix_${a}(a_${n}, u_${n}_t);\n#else\n ${i} ${o} ${n} = u_${n};\n#endif\n`:"define"===t?`\n#ifndef HAS_UNIFORM_u_${n}\nuniform lowp float u_${n}_t;\nattribute ${i} ${s} a_${n};\n#else\nuniform ${i} ${o} u_${n};\n#endif\n`:"vec4"===a?`\n#ifndef HAS_UNIFORM_u_${n}\n ${i} ${o} ${n} = a_${n};\n#else\n ${i} ${o} ${n} = u_${n};\n#endif\n`:`\n#ifndef HAS_UNIFORM_u_${n}\n ${i} ${o} ${n} = unpack_mix_${a}(a_${n}, u_${n}_t);\n#else\n ${i} ${o} ${n} = u_${n};\n#endif\n`})),staticAttributes:o,usedDefines:n}}class _i{constructor(){this.boundProgram=null,this.boundLayoutVertexBuffer=null,this.boundPaintVertexBuffers=[],this.boundIndexBuffer=null,this.boundVertexOffset=null,this.boundDynamicVertexBuffers=[],this.vao=null;}bind(e,t,i,o,r,n,s){this.context=e;let a=this.boundPaintVertexBuffers.length!==o.length;for(let e=0;!a&&e{const r=i.paint.get("hillshade-shadow-color"),n=i.paint.get("hillshade-highlight-color"),s=i.paint.get("hillshade-accent-color");let a=i.paint.get("hillshade-illumination-direction")*(Math.PI/180);"viewport"===i.paint.get("hillshade-illumination-anchor")&&(a-=e.transform.angle);const l=!e.options.moving;return {u_matrix:o||e.transform.calculateProjMatrix(t.tileID.toUnwrapped(),l),u_image:0,u_latrange:di(0,t.tileID),u_light:[i.paint.get("hillshade-exaggeration"),a],u_shadow:r,u_highlight:n,u_accent:s}})(t,o,r,t.terrain?i.projMatrix:null);t.prepareDrawProgram(l,u,i.toUnwrapped());const{tileBoundsBuffer:d,tileBoundsIndexBuffer:p,tileBoundsSegments:m}=t.getTileBoundsBuffers(o);u.draw(l,c.TRIANGLES,n,s,a,e.CullFaceMode.disabled,_,r.id,d,p,m);}function mi(t,i,o){if(!i.needsDEMTextureUpload)return;const r=t.context,n=r.gl;r.pixelStoreUnpackPremultiplyAlpha.set(!1),i.demTexture=i.demTexture||t.getTileTexture(o.stride);const s=o.getPixels();i.demTexture?i.demTexture.update(s,{premultiply:!1}):i.demTexture=new e.Texture(r,s,n.RGBA,{premultiply:!1}),i.needsDEMTextureUpload=!1;}function fi(t,i,o,r,n,s){const a=t.context,l=a.gl;if(!i.dem)return;const c=i.dem;if(a.activeTexture.set(l.TEXTURE1),mi(t,i,c),!i.demTexture)return;i.demTexture.bind(l.NEAREST,l.CLAMP_TO_EDGE);const h=c.dim;a.activeTexture.set(l.TEXTURE0);let u=i.fbo;if(!u){const t=new e.Texture(a,{width:h,height:h,data:null},l.RGBA);t.bind(l.LINEAR,l.CLAMP_TO_EDGE),u=i.fbo=a.createFramebuffer(h,h,!0),u.colorAttachment.set(t.texture);}a.bindFramebuffer.set(u.framebuffer),a.viewport.set([0,0,h,h]);const{tileBoundsBuffer:_,tileBoundsIndexBuffer:d,tileBoundsSegments:p}=t.getMercatorTileBoundsBuffers();t.useProgram("hillshadePrepare").draw(a,l.TRIANGLES,r,n,s,e.CullFaceMode.disabled,((t,i)=>{const o=i.stride,r=e.create();return e.ortho(r,0,e.EXTENT,-e.EXTENT,0,0,1),e.translate(r,r,[0,-e.EXTENT,0]),{u_matrix:r,u_image:1,u_dimension:[o,o],u_zoom:t.overscaledZ,u_unpack:i.unpackVector}})(i.tileID,c),o.id,_,d,p),i.needsHillshadePrepare=!1;}const gi=t=>({u_matrix:new e.UniformMatrix4f(t),u_image0:new e.Uniform1i(t),u_skirt_height:new e.Uniform1f(t)}),vi=(e,t)=>({u_matrix:e,u_image0:0,u_skirt_height:t}),xi=(e,t,i,o,r,n,s,a,l,c,h,u,_,d,p)=>({u_proj_matrix:Float32Array.from(e),u_globe_matrix:t,u_normalize_matrix:Float32Array.from(o),u_merc_matrix:i,u_zoom_transition:r,u_merc_center:n,u_image0:0,u_frustum_tl:s,u_frustum_tr:a,u_frustum_br:l,u_frustum_bl:c,u_globe_pos:h,u_globe_radius:u,u_viewport:_,u_grid_matrix:p?Float32Array.from(p):new Float32Array(9),u_skirt_height:d});function yi(e,t){return null!=e&&null!=t&&!(!e.hasData()||!t.hasData())&&null!=e.demTexture&&null!=t.demTexture&&e.tileID.key!==t.tileID.key}const bi=new class{constructor(){this.operations={};}newMorphing(e,t,i,o,r){if(e in this.operations){const t=this.operations[e];t.to.tileID.key!==i.tileID.key&&(t.queued=i);}else this.operations[e]={startTime:o,phase:0,duration:r,from:t,to:i,queued:null};}getMorphValuesForProxy(e){if(!(e in this.operations))return null;const t=this.operations[e];return {from:t.from,to:t.to,phase:t.phase}}update(e){for(const t in this.operations){const i=this.operations[t];for(i.phase=(e-i.startTime)/i.duration;i.phase>=1||!this._validOp(i);)if(!this._nextOp(i,e)){delete this.operations[t];break}}}_nextOp(e,t){return !!e.queued&&(e.from=e.to,e.to=e.queued,e.queued=null,e.phase=0,e.startTime=t,!0)}_validOp(e){return e.from.hasData()&&e.to.hasData()}},wi={0:null,1:"TERRAIN_VERTEX_MORPHING",2:"TERRAIN_WIREFRAME"};function Ti(e){return 6*Math.pow(1.5,22-e)}function Ei(e,t){const i=1<({u_matrix:e});function Mi(t,i,o,r,n){if(n>0){const s=e.exported.now(),a=(s-t.timeAdded)/n,l=i?(s-i.timeAdded)/n:-1,c=o.getSource(),h=r.coveringZoomLevel({tileSize:c.tileSize,roundZoom:c.roundZoom}),u=!i||Math.abs(i.tileID.overscaledZ-h)>Math.abs(t.tileID.overscaledZ-h),_=u&&t.refreshedUponExpiration?1:e.clamp(u?a:1-l,0,1);return t.refreshedUponExpiration&&a>=1&&(t.refreshedUponExpiration=!1),i?{opacity:1,mix:1-_}:{opacity:_,mix:0}}return {opacity:1,mix:0}}class Ii extends e.SourceCache{constructor(e){const t={type:"raster-dem",maxzoom:e.transform.maxZoom},i=new S(Ue(),null),o=De("mock-dem",t,i,e.style);super("mock-dem",o,!1),o.setEventedParent(this),this._sourceLoaded=!0;}_loadTile(e,t){e.state="loaded",t(null);}}class Pi extends e.SourceCache{constructor(e){const t=De("proxy",{type:"geojson",maxzoom:e.transform.maxZoom},new S(Ue(),null),e.style);super("proxy",t,!1),t.setEventedParent(this),this.map=this.getSource().map=e,this.used=this._sourceLoaded=!0,this.renderCache=[],this.renderCachePool=[],this.proxyCachedFBO={};}update(t,i,o){if(t.freezeTileCoverage)return;this.transform=t;const r=t.coveringTiles({tileSize:this._source.tileSize,minzoom:this._source.minzoom,maxzoom:this._source.maxzoom,roundZoom:this._source.roundZoom,reparseOverscaled:this._source.reparseOverscaled}).reduce(((i,o)=>{if(i[o.key]="",!this._tiles[o.key]){const i=new e.Tile(o,this._source.tileSize*o.overscaleFactor(),t.tileZoom);i.state="loaded",this._tiles[o.key]=i;}return i}),{});for(const e in this._tiles)e in r||(this.freeFBO(e),this._tiles[e].unloadVectorData(),delete this._tiles[e]);}freeFBO(e){const t=this.proxyCachedFBO[e];if(void 0!==t){const i=Object.values(t);this.renderCachePool.push(...i),delete this.proxyCachedFBO[e];}}deallocRenderCache(){this.renderCache.forEach((e=>e.fb.destroy())),this.renderCache=[],this.renderCachePool=[],this.proxyCachedFBO={};}}class Si extends e.OverscaledTileID{constructor(e,t,i){super(e.overscaledZ,e.wrap,e.canonical.z,e.canonical.x,e.canonical.y),this.proxyTileKey=t,this.projMatrix=i;}}class Di extends e.Elevation{constructor(t,i){super(),this.painter=t,this.terrainTileForTile={},this.prevTerrainTileForTile={};const[o,r,n]=function(t){const i=new e.StructArrayLayout2i4,o=new e.StructArrayLayout3ui6,r=131;i.reserve(17161),o.reserve(33800);const n=e.EXTENT/128,s=e.EXTENT+n/2,a=s+n;for(let t=-n;ts||t<0||t>s?24575:0,n=e.clamp(Math.round(o),0,e.EXTENT),a=e.clamp(Math.round(t),0,e.EXTENT);i.emplaceBack(n+r,a);}const l=(e,t)=>{const i=t*r+e;o.emplaceBack(i+1,i,i+r),o.emplaceBack(i+r,i+r+1,i+1);};for(let e=1;e<129;e++)for(let t=1;t<129;t++)l(t,e);return [0,129].forEach((e=>{for(let t=0;t<130;t++)l(t,e),l(e,t);})),[i,o,32768]}(),s=t.context;this.gridBuffer=s.createVertexBuffer(o,e.posAttributes.members),this.gridIndexBuffer=s.createIndexBuffer(r),this.gridSegments=e.SegmentVector.simpleSegment(0,0,o.length,r.length),this.gridNoSkirtSegments=e.SegmentVector.simpleSegment(0,0,o.length,n),this.proxyCoords=[],this.proxiedCoords={},this._visibleDemTiles=[],this._drapedRenderBatches=[],this._sourceTilesOverlap={},this.proxySourceCache=new Pi(i.map),this.orthoMatrix=e.create(),e.ortho(this.orthoMatrix,"globe"===this.painter.transform.projection.name?.015:0,e.EXTENT,0,e.EXTENT,0,1);const a=s.gl;this._overlapStencilMode=new e.StencilMode({func:a.GEQUAL,mask:255},0,255,a.KEEP,a.KEEP,a.REPLACE),this._previousZoom=t.transform.zoom,this.pool=[],this._findCoveringTileCache={},this._tilesDirty={},this.style=i,this._useVertexMorphing=!0,this._exaggeration=1,this._mockSourceCache=new Ii(i.map);}set style(e){e.on("data",this._onStyleDataEvent.bind(this)),e.on("neworder",this._checkRenderCacheEfficiency.bind(this)),this._style=e,this._checkRenderCacheEfficiency(),this._style.map.on("moveend",(()=>{this._clearLineLayersFromRenderCache();}));}update(t,i,o){if(t&&t.terrain){this._style!==t&&(this.style=t),this.enabled=!0;const r=t.terrain.properties;this.sourceCache=0===t.terrain.drapeRenderMode?this._mockSourceCache:t._getSourceCache(r.get("source")),this._exaggeration=r.get("exaggeration");const n=()=>{this.sourceCache.used&&e.warnOnce(`Raster DEM source '${this.sourceCache.id}' is used both for terrain and as layer source.\nThis leads to lower resolution of hillshade. For full hillshade resolution but higher memory consumption, define another raster DEM source.`);const t=this.getScaledDemTileSize();this.sourceCache.update(i,t,!0),this.resetTileLookupCache(this.sourceCache.id);};this.sourceCache.usedForTerrain||(this.resetTileLookupCache(this.sourceCache.id),this.sourceCache.usedForTerrain=!0,n(),this._initializing=!0),n(),i.updateElevation(!0,o),this.resetTileLookupCache(this.proxySourceCache.id),this.proxySourceCache.update(i),this._emptyDEMTextureDirty=!0;}else this._disable();}resetTileLookupCache(e){this._findCoveringTileCache[e]={};}getScaledDemTileSize(){return this.sourceCache.getSource().tileSize/128*this.proxySourceCache.getSource().tileSize}_checkRenderCacheEfficiency(){const t=this.renderCacheEfficiency(this._style);this._style.map._optimizeForTerrain||100!==t.efficiency&&e.warnOnce(`Terrain render cache efficiency is not optimal (${t.efficiency}%) and performance\n may be affected negatively, consider placing all background, fill and line layers before layer\n with id '${t.firstUndrapedLayer}' or create a map using optimizeForTerrain: true option.`);}_onStyleDataEvent(e){e.coord&&"source"===e.dataType?this._clearRenderCacheForTile(e.sourceCacheId,e.coord):"style"===e.dataType&&(this._invalidateRenderCache=!0);}_disable(){if(this.enabled&&(this.enabled=!1,this._sharedDepthStencil=void 0,this.proxySourceCache.deallocRenderCache(),this._style))for(const e in this._style._sourceCaches)this._style._sourceCaches[e].usedForTerrain=!1;}destroy(){this._disable(),this._emptyDEMTexture&&this._emptyDEMTexture.destroy(),this._emptyDepthBufferTexture&&this._emptyDepthBufferTexture.destroy(),this.pool.forEach((e=>e.fb.destroy())),this.pool=[],this._depthFBO&&(this._depthFBO.destroy(),this._depthFBO=void 0,this._depthTexture=void 0);}_source(){return this.enabled?this.sourceCache:null}isUsingMockSource(){return this.sourceCache===this._mockSourceCache}exaggeration(){return this._exaggeration}get visibleDemTiles(){return this._visibleDemTiles}get drapeBufferSize(){const e=2*this.proxySourceCache.getSource().tileSize;return [e,e]}set useVertexMorphing(e){this._useVertexMorphing=e;}updateTileBinding(t){if(!this.enabled)return;this.prevTerrainTileForTile=this.terrainTileForTile;const i=this.proxySourceCache,o=this.painter.transform;this._initializing&&(this._initializing=0===o._centerAltitude&&-1===this.getAtPointOrZero(e.MercatorCoordinate.fromLngLat(o.center),-1),this._emptyDEMTextureDirty=!this._initializing);const r=this.proxyCoords=i.getIds().map((e=>{const t=i.getTileByID(e).tileID;return t.projMatrix=o.calculateProjMatrix(t.toUnwrapped()),t}));!function(t,i){const o=i.transform.pointCoordinate(i.transform.getCameraPoint()),r=new e.Point(o.x,o.y);t.sort(((t,i)=>{if(i.overscaledZ-t.overscaledZ)return i.overscaledZ-t.overscaledZ;const o=new e.Point(t.canonical.x+(1<{this.proxyToSource[e.key]={};})),this.terrainTileForTile={};const s=this._style._sourceCaches;for(const e in s){const i=s[e];if(!i.used)continue;if(i!==this.sourceCache&&this.resetTileLookupCache(i.id),this._setupProxiedCoordsForOrtho(i,t[e],n),i.usedForTerrain)continue;const o=t[e];i.getSource().reparseOverscaled&&this._assignTerrainTiles(o);}this.proxiedCoords[i.id]=r.map((e=>new Si(e,e.key,this.orthoMatrix))),this._assignTerrainTiles(r),this._prepareDEMTextures(),this._setupDrapedRenderBatches(),this._initFBOPool(),this._setupRenderCache(n),this.renderingToTexture=!1,this._updateTimestamp=e.exported.now();const a={};this._visibleDemTiles=[];for(const e of this.proxyCoords){const t=this.terrainTileForTile[e.key];if(!t)continue;const i=t.tileID.key;i in a||(this._visibleDemTiles.push(t),a[i]=i);}}_assignTerrainTiles(e){this._initializing||e.forEach((e=>{if(this.terrainTileForTile[e.key])return;const t=this._findTileCoveringTileID(e,this.sourceCache);t&&(this.terrainTileForTile[e.key]=t);}));}_prepareDEMTextures(){const e=this.painter.context,t=e.gl;for(const i in this.terrainTileForTile){const o=this.terrainTileForTile[i],r=o.dem;!r||o.demTexture&&!o.needsDEMTextureUpload||(e.activeTexture.set(t.TEXTURE1),mi(this.painter,o,r));}}_prepareDemTileUniforms(e,t,i,o){if(!t||null==t.demTexture)return !1;const r=e.tileID.canonical,n=Math.pow(2,t.tileID.canonical.z-r.z),s=o||"";return i[`u_dem_tl${s}`]=[r.x*n%1,r.y*n%1],i[`u_dem_scale${s}`]=n,!0}get emptyDEMTexture(){return !this._emptyDEMTextureDirty&&this._emptyDEMTexture?this._emptyDEMTexture:this._updateEmptyDEMTexture()}get emptyDepthBufferTexture(){const t=this.painter.context,i=t.gl;if(!this._emptyDepthBufferTexture){const o=new e.RGBAImage({width:1,height:1},Uint8Array.of(255,255,255,255));this._emptyDepthBufferTexture=new e.Texture(t,o,i.RGBA,{premultiply:!1});}return this._emptyDepthBufferTexture}_getLoadedAreaMinimum(){let e=0;const t=this._visibleDemTiles.reduce(((t,i)=>{if(!i.dem)return t;const o=i.dem.tree.minimums[0];return o>0&&e++,t+o}),0);return e?t/e:0}_updateEmptyDEMTexture(){const t=this.painter.context,i=t.gl;t.activeTexture.set(i.TEXTURE2);const o=this._getLoadedAreaMinimum(),r=new e.RGBAImage({width:1,height:1},new Uint8Array(e.DEMData.pack(o,this.sourceCache.getSource().encoding)));this._emptyDEMTextureDirty=!1;let n=this._emptyDEMTexture;return n?n.update(r,{premultiply:!1}):n=this._emptyDEMTexture=new e.Texture(t,r,i.RGBA,{premultiply:!1}),n}setupElevationDraw(t,i,o){const r=this.painter.context,n=r.gl,s=(a=this.sourceCache.getSource().encoding,{u_dem:2,u_dem_prev:4,u_dem_unpack:e.DEMData.getUnpackVector(a),u_dem_tl:[0,0],u_dem_tl_prev:[0,0],u_dem_scale:0,u_dem_scale_prev:0,u_dem_size:0,u_dem_lerp:1,u_depth:3,u_depth_size_inv:[0,0],u_exaggeration:0});var a;s.u_dem_size=this.sourceCache.getSource().tileSize,s.u_exaggeration=this.exaggeration();let l=null,c=null,h=1;if(o&&o.morphing&&this._useVertexMorphing){const e=o.morphing.srcDemTile,i=o.morphing.dstDemTile;h=o.morphing.phase,e&&i&&(this._prepareDemTileUniforms(t,e,s,"_prev")&&(c=e),this._prepareDemTileUniforms(t,i,s)&&(l=i));}if(c&&l?(r.activeTexture.set(n.TEXTURE2),l.demTexture.bind(n.NEAREST,n.CLAMP_TO_EDGE,n.NEAREST),r.activeTexture.set(n.TEXTURE4),c.demTexture.bind(n.NEAREST,n.CLAMP_TO_EDGE,n.NEAREST),s.u_dem_lerp=h):(l=this.terrainTileForTile[t.tileID.key],r.activeTexture.set(n.TEXTURE2),(this._prepareDemTileUniforms(t,l,s)?l.demTexture:this.emptyDEMTexture).bind(n.NEAREST,n.CLAMP_TO_EDGE)),r.activeTexture.set(n.TEXTURE3),o&&o.useDepthForOcclusion?(this._depthTexture&&this._depthTexture.bind(n.NEAREST,n.CLAMP_TO_EDGE),this._depthFBO&&(s.u_depth_size_inv=[1/this._depthFBO.width,1/this._depthFBO.height])):(this.emptyDepthBufferTexture.bind(n.NEAREST,n.CLAMP_TO_EDGE),s.u_depth_size_inv=[1,1]),o&&o.useMeterToDem&&l){const t=(1<{if(c===e)return;const o=[wi[e],"PROJECTION_GLOBE_VIEW"];_&&o.push("CUSTOM_ANTIALIASING"),i&&o.push(wi[h]),l=t.useProgram("globeRaster",null,o),c=e;},p=t.colorModeForRenderPass(),m=new e.DepthMode(a.LEQUAL,e.DepthMode.ReadWrite,t.depthRangeFor3D);bi.update(n);const f=e.calculateGlobeMercatorMatrix(u),g=[e.mercatorXfromLng(u.center.lng),e.mercatorYfromLat(u.center.lat)],v=h?[!1,!0]:[!1],x=t.globeSharedBuffers,y=[u.width*e.exported.devicePixelRatio,u.height*e.exported.devicePixelRatio],b=Float32Array.from(u.globeMatrix),w={useDenormalizedUpVectorScale:!0};if(v.forEach((h=>{const u=t.transform,_=Ti(u.zoom)*i.exaggeration();c=-1;const v=h?a.LINES:a.TRIANGLES;for(const c of r){const r=o.getTile(c),T=e.StencilMode.disabled,E=i.prevTerrainTileForTile[c.key],C=i.terrainTileForTile[c.key];yi(E,C)&&bi.newMorphing(c.key,E,C,n,250),s.activeTexture.set(a.TEXTURE0),r.texture.bind(a.LINEAR,a.CLAMP_TO_EDGE);const M=bi.getMorphValuesForProxy(c.key),I=M?1:0;M&&e.extend$1(w,{morphing:{srcDemTile:M.from,dstDemTile:M.to,phase:e.easeCubicInOut(M.phase)}});const P=e.tileCornersToBounds(c.canonical),S=e.getLatitudinalLod(P.getCenter().lat),D=e.getGridMatrix(c.canonical,P,S,u.worldSize/u._pixelsPerMercatorPixel),L=e.globeNormalizeECEF(e.globeTileBounds(c.canonical)),A=xi(u.projMatrix,b,f,L,e.globeToMercatorTransition(u.zoom),g,u.frustumCorners.TL,u.frustumCorners.TR,u.frustumCorners.BR,u.frustumCorners.BL,u.globeCenterInViewSpace,u.globeRadius,y,_,D);if(d(I,h),i.setupElevationDraw(r,l,w),t.prepareDrawProgram(s,l,c.toUnwrapped()),x){const[i,o,r]=h?x.getWirefameBuffers(t.context,S):x.getGridBuffers(S,0!==_);l.draw(s,v,m,T,p,e.CullFaceMode.backCCW,A,"globe_raster",i,o,r);}}})),x){const n=["GLOBE_POLES","PROJECTION_GLOBE_VIEW"];_&&n.push("CUSTOM_ANTIALIASING"),l=t.useProgram("globeRaster",null,n);for(const n of r){const{x:r,y:c,z:h}=n.canonical,_=0===c,d=c===(1<t.draw(s,a.TRIANGLES,m,e.StencilMode.disabled,p,e.CullFaceMode.disabled,xi(u.projMatrix,x,x,E,0,g,u.frustumCorners.TL,u.frustumCorners.TR,u.frustumCorners.BR,u.frustumCorners.BL,u.globeCenterInViewSpace,u.globeRadius,y,0),"globe_pole_raster",i,b,T);i.setupElevationDraw(c,l,w),t.prepareDrawProgram(s,l,n.toUnwrapped()),_&&C(l,f),d&&(x=e.scale(e.create(),x,[1,-1,1]),C(l,v));}}}}(t,i,o,r,n);else {const s=t.context,a=s.gl;let l,c;const h=t.options.showTerrainWireframe?2:0,u=(e,i)=>{if(c===e)return;const o=[wi[e]];i&&o.push(wi[h]),l=t.useProgram("terrainRaster",null,o),c=e;},_=t.colorModeForRenderPass(),d=new e.DepthMode(a.LEQUAL,e.DepthMode.ReadWrite,t.depthRangeFor3D);bi.update(n);const p=t.transform,m=Ti(p.zoom)*i.exaggeration();(h?[!1,!0]:[!1]).forEach((h=>{c=-1;const f=h?a.LINES:a.TRIANGLES,[g,v]=h?i.getWirefameBuffer():[i.gridIndexBuffer,i.gridSegments];for(const c of r){const r=o.getTile(c),x=e.StencilMode.disabled,y=i.prevTerrainTileForTile[c.key],b=i.terrainTileForTile[c.key];yi(y,b)&&bi.newMorphing(c.key,y,b,n,250),s.activeTexture.set(a.TEXTURE0),r.texture.bind(a.LINEAR,a.CLAMP_TO_EDGE,a.LINEAR_MIPMAP_NEAREST);const w=bi.getMorphValuesForProxy(c.key),T=w?1:0;let E;w&&(E={morphing:{srcDemTile:w.from,dstDemTile:w.to,phase:e.easeCubicInOut(w.phase)}});const C=vi(c.projMatrix,Ei(c.canonical,p.renderWorldCopies)?m/10:m);u(T,h),i.setupElevationDraw(r,l,E),t.prepareDrawProgram(s,l,c.toUnwrapped()),l.draw(s,f,d,x,_,e.CullFaceMode.backCCW,C,"terrain_raster",i.gridBuffer,g,v);}}));}}(i,this,this.proxySourceCache,t,this._updateTimestamp),this.renderingToTexture=!0,i.gpuTimingDeferredRenderEnd(),t.splice(0,t.length));}renderBatch(t){if(0===this._drapedRenderBatches.length)return t+1;this.renderingToTexture=!0;const i=this.painter,o=this.painter.context,r=this.proxySourceCache,n=this.proxiedCoords[r.id],s=this._drapedRenderBatches.shift(),a=[],l=i.style.order;let c=0;for(const h of n){const n=r.getTileByID(h.proxyTileKey),u=r.proxyCachedFBO[h.key]?r.proxyCachedFBO[h.key][t]:void 0,_=void 0!==u?r.renderCache[u]:this.pool[c++],d=void 0!==u;if(n.texture=_.tex,d&&!_.dirty){a.push(n.tileID);continue}let p;o.bindFramebuffer.set(_.fb.framebuffer),this.renderedToTile=!1,_.dirty&&(o.clear({color:e.Color.transparent,stencil:0}),_.dirty=!1);for(let e=s.start;e<=s.end;++e){const t=i.style._layers[l[e]];if(t.isHidden(i.transform.zoom))continue;const r=i.style._getLayerSourceCache(t),n=r?this.proxyToSource[h.key][r.id]:[h];if(!n)continue;const s=n;o.viewport.set([0,0,_.fb.width,_.fb.height]),p!==(r?r.id:null)&&(this._setupStencil(_,n,t,r),p=r?r.id:null),i.renderLayer(i,r,t,s);}this.renderedToTile?(_.dirty=!0,a.push(n.tileID)):d||--c,5===c&&(c=0,this.renderToBackBuffer(a));}return this.renderToBackBuffer(a),this.renderingToTexture=!1,o.bindFramebuffer.set(null),o.viewport.set([0,0,i.width,i.height]),s.end+1}postRender(){}renderCacheEfficiency(e){const t=e.order.length;if(0===t)return {efficiency:100};let i,o=0,r=0,n=!1;for(let s=0;se.dem)).forEach((t=>{e=Math.min(e,t.dem.tree.minimums[0]);})),0===e?e:(e-30)*this._exaggeration}raycast(e,t,i){if(!this._visibleDemTiles)return null;const o=this._visibleDemTiles.filter((e=>e.dem)).map((o=>{const r=o.tileID,n=1<(null!==e.t?e.t:Number.MAX_VALUE)-(null!==t.t?t.t:Number.MAX_VALUE)));for(const r of o){if(null==r.t)return null;const o=r.tile.dem.tree.raycast(r.minx,r.miny,r.maxx,r.maxy,e,t,i);if(null!=o)return o}return null}_createFBO(){const t=this.painter.context,i=t.gl,o=this.drapeBufferSize;t.activeTexture.set(i.TEXTURE0);const r=new e.Texture(t,{width:o[0],height:o[1],data:null},i.RGBA);r.bind(i.LINEAR,i.CLAMP_TO_EDGE);const n=t.createFramebuffer(o[0],o[1],!1);return n.colorAttachment.set(r.texture),n.depthAttachment=new we(t,n.framebuffer),void 0===this._sharedDepthStencil?(this._sharedDepthStencil=t.createRenderbuffer(t.gl.DEPTH_STENCIL,o[0],o[1]),this._stencilRef=0,n.depthAttachment.set(this._sharedDepthStencil),t.clear({stencil:0})):n.depthAttachment.set(this._sharedDepthStencil),t.extTextureFilterAnisotropic&&!t.extTextureFilterAnisotropicForceOff&&i.texParameterf(i.TEXTURE_2D,t.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,t.extTextureFilterAnisotropicMax),{fb:n,tex:r,dirty:!1}}_initFBOPool(){for(;this.pool.length{const t=this._style._layers[e],i=t.isHidden(this.painter.transform.zoom);return "custom"===t.type?!i&&t.shouldRedrape():!i&&t.hasTransition()}))}_clearLineLayersFromRenderCache(){let t=!1;for(const e of this._style._getSources())if(e instanceof Ce){t=!0;break}if(!t)return;const i={};for(let t=0;tt.renderCachePool.length){const e=Object.values(t.proxyCachedFBO);t.proxyCachedFBO={};for(let i=0;i=0;r--){const n=i[r];if(t.getTileByID(n.key),void 0!==t.proxyCachedFBO[n.key]){const i=e[n.key],r=this.proxyToSource[n.key];let s=0;for(const e in r){const t=r[e],n=i[e];if(!n||n.length!==t.length||t.some(((t,i)=>t!==n[i]||o[e]&&o[e].hasOwnProperty(t.key)))){s=-1;break}++s;}for(const e in t.proxyCachedFBO[n.key])t.renderCache[t.proxyCachedFBO[n.key][e]].dirty=s<0||s!==Object.values(i).length;}}const r=[...this._drapedRenderBatches];r.sort(((e,t)=>t.end-t.start-(e.end-e.start)));for(const e of r)for(const o of i){if(t.proxyCachedFBO[o.key])continue;let i=t.renderCachePool.pop();void 0===i&&t.renderCache.length<50&&(i=t.renderCache.length,t.renderCache.push(this._createFBO())),void 0!==i&&(t.proxyCachedFBO[o.key]={},t.proxyCachedFBO[o.key][e.start]=i,t.renderCache[i].dirty=!0);}this._tilesDirty={};}_setupStencil(e,t,i,o){if(!o||!this._sourceTilesOverlap[o.id])return void(this._overlapStencilType&&(this._overlapStencilType=!1));const r=this.painter.context,n=r.gl;if(t.length<=1)return void(this._overlapStencilType=!1);let s;if(i.isTileClipped())s=t.length,this._overlapStencilMode.test={func:n.EQUAL,mask:255},this._overlapStencilType="Clip";else {if(!(t[0].overscaledZ>t[t.length-1].overscaledZ))return void(this._overlapStencilType=!1);s=1,this._overlapStencilMode.test={func:n.GREATER,mask:255},this._overlapStencilType="Mask";}this._stencilRef+s>255&&(r.clear({stencil:0}),this._stencilRef=0),this._stencilRef+=s,this._overlapStencilMode.ref=this._stencilRef,i.isTileClipped()&&this._renderTileClippingMasks(t,this._overlapStencilMode.ref);}clipOrMaskOverlapStencilType(){return "Clip"===this._overlapStencilType||"Mask"===this._overlapStencilType}stencilModeForRTTOverlap(t){return this.renderingToTexture&&this._overlapStencilType?("Clip"===this._overlapStencilType&&(this._overlapStencilMode.ref=this.painter._tileClippingMaskIDs[t.key]),this._overlapStencilMode):e.StencilMode.disabled}_renderTileClippingMasks(t,i){const o=this.painter,r=this.painter.context,n=r.gl;o._tileClippingMaskIDs={},r.setColorMode(e.ColorMode.disabled),r.setDepthMode(e.DepthMode.disabled);const s=o.useProgram("clippingMask");for(const a of t){const t=o._tileClippingMaskIDs[a.key]=--i;s.draw(r,n.TRIANGLES,e.DepthMode.disabled,new e.StencilMode({func:n.ALWAYS,mask:0},t,255,n.KEEP,n.KEEP,n.REPLACE),e.ColorMode.disabled,e.CullFaceMode.disabled,Ci(a.projMatrix),"$clipping",o.tileExtentBuffer,o.quadTriangleIndexBuffer,o.tileExtentSegments);}}pointCoordinate(t){const i=this.painter.transform;if(t.x<0||t.x>i.width||t.y<0||t.y>i.height)return null;const o=[t.x,t.y,1,1];e.transformMat4$1(o,o,i.pixelMatrixInverse),e.scale$1(o,o,1/o[3]),o[0]/=i.worldSize,o[1]/=i.worldSize;const r=i._camera.position,n=e.mercatorZfromAltitude(1,i.center.lat),s=[r[0],r[1],r[2]/n,0],a=e.subtract([],o.slice(0,3),s);e.normalize(a,a);const l=this.raycast(s,a,this._exaggeration);return null!==l&&l?(e.scaleAndAdd(s,s,a,l),s[3]=s[2],s[2]*=n,s):null}drawDepth(){const t=this.painter,i=t.context,o=this.proxySourceCache,r=Math.ceil(t.width),n=Math.ceil(t.height);if(!this._depthFBO||this._depthFBO.width===r&&this._depthFBO.height===n||(this._depthFBO.destroy(),this._depthFBO=void 0,this._depthTexture=void 0),!this._depthFBO){const t=i.gl,o=i.createFramebuffer(r,n,!0);i.activeTexture.set(t.TEXTURE0);const s=new e.Texture(i,{width:r,height:n,data:null},t.RGBA);s.bind(t.NEAREST,t.CLAMP_TO_EDGE),o.colorAttachment.set(s.texture);const a=i.createRenderbuffer(i.gl.DEPTH_COMPONENT16,r,n);o.depthAttachment.set(a),this._depthFBO=o,this._depthTexture=s;}i.bindFramebuffer.set(this._depthFBO.framebuffer),i.viewport.set([0,0,r,n]),function(t,i,o,r){if("globe"===t.transform.projection.name)return;const n=t.context,s=n.gl;n.clear({depth:1});const a=t.useProgram("terrainDepth"),l=new e.DepthMode(s.LESS,e.DepthMode.ReadWrite,t.depthRangeFor3D);for(const t of r){const r=o.getTile(t),c=vi(t.projMatrix,0);i.setupElevationDraw(r,a),a.draw(n,s.TRIANGLES,l,e.StencilMode.disabled,e.ColorMode.unblended,e.CullFaceMode.backCCW,c,"terrain_depth",i.gridBuffer,i.gridIndexBuffer,i.gridNoSkirtSegments);}}(t,this,o,this.proxyCoords);}_setupProxiedCoordsForOrtho(e,t,i){if(e.getSource()instanceof Pe)return this._setupProxiedCoordsForImageSource(e,t,i);this._findCoveringTileCache[e.id]=this._findCoveringTileCache[e.id]||{};const o=this.proxiedCoords[e.id]=[],r=this.proxyCoords;for(let t=0;t(e.min.x=Math.min(e.min.x,t.x-a.x),e.min.y=Math.min(e.min.y,t.y-a.y),e.max.x=Math.max(e.max.x,t.x-a.x),e.max.y=Math.max(e.max.y,t.y-a.y),e)),{min:new e.Point(Number.MAX_VALUE,Number.MAX_VALUE),max:new e.Point(-Number.MAX_VALUE,-Number.MAX_VALUE)}),c=(t,i)=>{const o=t.wrap+t.canonical.x/(1<s+l.max.x||r+na+l.max.y};for(let e=0;ee.key===i.tileID.key));if(e)return e}if(i.tileID.key!==t.key){const o=t.canonical.z-i.tileID.canonical.z;let n,s,a;r=e.create();const l=i.tileID.wrap-t.wrap<0?(n=e.EXTENT>>o,s=n*((i.tileID.canonical.x<=r){const o=t.canonical.z-r;i.getSource().reparseOverscaled?(a=Math.max(t.canonical.z+2,i.transform.tileZoom),s=new e.OverscaledTileID(a,t.wrap,r,t.canonical.x>>o,t.canonical.y>>o)):0!==o&&(a=r,s=new e.OverscaledTileID(a,t.wrap,r,t.canonical.x>>o,t.canonical.y>>o));}s.key!==t.key&&(c.push(s.key),o=i.getTile(s));}const h=e=>{c.forEach((t=>{r[t]=e;})),c.length=0;};for(a-=1;a>=l&&(!o||!o.hasData());a--){o&&h(o.tileID.key);const e=s.calculateScaledKey(a);if(o=i.getTileByID(e),o&&o.hasData())break;const t=r[e];if(null===t)break;void 0===t?c.push(e):o=i.getTileByID(t);}return h(o?o.tileID.key:null),o&&o.hasData()?o:null}findDEMTileFor(e){return this.enabled?this._findTileCoveringTileID(e,this.sourceCache):null}prepareDrawTile(){this.renderedToTile=!0;}_clearRenderCacheForTile(e,t){let i=this._tilesDirty[e];i||(i=this._tilesDirty[e]={}),i[t.key]=!0;}getWirefameBuffer(){if(!this.wireframeSegments){const t=function(t){let i=0;const o=new e.StructArrayLayout2ui4,r=131;for(let e=1;e<129;e++){for(let t=1;t<129;t++)i=e*r+t,o.emplaceBack(i,i+1),o.emplaceBack(i,i+r),o.emplaceBack(i+1,i+r),128===e&&o.emplaceBack(i+r,i+r+1);o.emplaceBack(i+1,i+1+r);}return o}();this.wireframeIndexBuffer=this.painter.context.createIndexBuffer(t),this.wireframeSegments=e.SegmentVector.simpleSegment(0,0,this.gridBuffer.length,t.length);}return [this.wireframeIndexBuffer,this.wireframeSegments]}}class Li{static cacheKey(e,t,i,o){let r=`${t}${o?o.cacheKey:""}`;for(const t of i)e.usedDefines.includes(t)&&(r+=`/${t}`);return r}constructor(t,i,o,r,n,s){const a=t.gl;this.program=a.createProgram();const l=function(e){const t=[];for(let i=0;i`#define ${e}`)));const _=t.isWebGL2?"#version 300 es\n":"",d=_+u.concat(t.extStandardDerivatives&&0===_.length?"#extension GL_OES_standard_derivatives : enable\n".concat(li):li,li,ai,si.fragmentSource,ri.fragmentSource,o.fragmentSource).join("\n"),p=_+u.concat("\n#ifdef GL_ES\nprecision highp float;\n#else\n\n#if !defined(lowp)\n#define lowp\n#endif\n\n#if !defined(mediump)\n#define mediump\n#endif\n\n#if !defined(highp)\n#define highp\n#endif\n\n#endif",ai,si.vertexSource,ri.vertexSource,oi.vertexSource,o.vertexSource).join("\n"),m=a.createShader(a.FRAGMENT_SHADER);if(a.isContextLost())return void(this.failedToCreate=!0);a.shaderSource(m,d),a.compileShader(m),a.attachShader(this.program,m);const f=a.createShader(a.VERTEX_SHADER);if(a.isContextLost())this.failedToCreate=!0;else {a.shaderSource(f,p),a.compileShader(f),a.attachShader(this.program,f),this.attributes={},this.numAttributes=h.length;for(let e=0;e({u_dem:new e.Uniform1i(t),u_dem_prev:new e.Uniform1i(t),u_dem_unpack:new e.Uniform4f(t),u_dem_tl:new e.Uniform2f(t),u_dem_scale:new e.Uniform1f(t),u_dem_tl_prev:new e.Uniform2f(t),u_dem_scale_prev:new e.Uniform1f(t),u_dem_size:new e.Uniform1f(t),u_dem_lerp:new e.Uniform1f(t),u_exaggeration:new e.Uniform1f(t),u_depth:new e.Uniform1i(t),u_depth_size_inv:new e.Uniform2f(t),u_meter_to_dem:new e.Uniform1f(t),u_label_plane_matrix_inv:new e.UniformMatrix4f(t)}))(t)),s.includes("GLOBE")&&(this.globeUniforms=(t=>({u_tile_tl_up:new e.Uniform3f(t),u_tile_tr_up:new e.Uniform3f(t),u_tile_br_up:new e.Uniform3f(t),u_tile_bl_up:new e.Uniform3f(t),u_tile_up_scale:new e.Uniform1f(t)}))(t)),s.includes("FOG")&&(this.fogUniforms=(t=>({u_fog_matrix:new e.UniformMatrix4f(t),u_fog_range:new e.Uniform2f(t),u_fog_color:new e.Uniform4f(t),u_fog_horizon_blend:new e.Uniform1f(t),u_fog_temporal_offset:new e.Uniform1f(t),u_frustum_tl:new e.Uniform3f(t),u_frustum_tr:new e.Uniform3f(t),u_frustum_br:new e.Uniform3f(t),u_frustum_bl:new e.Uniform3f(t),u_globe_pos:new e.Uniform3f(t),u_globe_radius:new e.Uniform1f(t),u_globe_transition:new e.Uniform1f(t),u_is_globe:new e.Uniform1i(t),u_viewport:new e.Uniform2f(t)}))(t));}}setTerrainUniformValues(e,t){if(!this.terrainUniforms)return;const i=this.terrainUniforms;if(!this.failedToCreate){e.program.set(this.program);for(const e in t)i[e]&&i[e].set(this.program,e,t[e]);}}setGlobeUniformValues(e,t){if(!this.globeUniforms)return;const i=this.globeUniforms;if(!this.failedToCreate){e.program.set(this.program);for(const e in t)i[e]&&i[e].set(this.program,e,t[e]);}}setFogUniformValues(e,t){if(!this.fogUniforms)return;const i=this.fogUniforms;if(!this.failedToCreate){e.program.set(this.program);for(const e in t)i[e].set(this.program,e,t[e]);}}draw(e,t,i,o,r,n,s,a,l,c,h,u,_,d,p){const m=e.gl;if(this.failedToCreate)return;e.program.set(this.program),e.setDepthMode(i),e.setStencilMode(o),e.setColorMode(r),e.setCullFace(n);for(const e of Object.keys(this.fixedUniforms))this.fixedUniforms[e].set(this.program,e,s[e]);d&&d.setUniforms(this.program,e,this.binderUniforms,u,{zoom:_});const f={[m.LINES]:2,[m.TRIANGLES]:3,[m.LINE_STRIP]:1}[t];for(const i of h.get()){const o=i.vaos||(i.vaos={});(o[a]||(o[a]=new _i)).bind(e,this,l,d?d.getPaintVertexBuffers():[],c,i.vertexOffset,p||[]),m.drawElements(t,i.primitiveLength*f,m.UNSIGNED_SHORT,i.primitiveOffset*f*2);}}}function Ai(e,t){const i=Math.pow(2,t.tileID.overscaledZ),o=t.tileSize*Math.pow(2,e.transform.tileZoom)/i,r=o*(t.tileID.canonical.x+t.tileID.wrap*i),n=o*t.tileID.canonical.y;return {u_image:0,u_texsize:t.imageAtlasTexture.size,u_tile_units_to_pixels:1/D(t,1,e.transform.tileZoom),u_pixel_coord_upper:[r>>16,n>>16],u_pixel_coord_lower:[65535&r,65535&n]}}const zi=e.create(),Ri=(t,i,o,r,n,s,a,l,c,h,u)=>{const _=i.style.light,d=_.properties.get("position"),p=[d.x,d.y,d.z],m=e.create$1();"viewport"===_.properties.get("anchor")&&(e.fromRotation(m,-i.transform.angle),e.transformMat3(p,p,m));const f=_.properties.get("color"),g=i.transform,v={u_matrix:t,u_lightpos:p,u_lightintensity:_.properties.get("intensity"),u_lightcolor:[f.r,f.g,f.b],u_vertical_gradient:+o,u_opacity:r,u_tile_id:[0,0,0],u_zoom_transition:0,u_inv_rot_matrix:zi,u_merc_center:[0,0],u_up_dir:[0,0,0],u_height_lift:0,u_ao:n,u_edge_radius:s};return "globe"===g.projection.name&&(v.u_tile_id=[a.canonical.x,a.canonical.y,1<{const d=Ri(t,i,o,r,n,s,a,c,h,u,_),p={u_height_factor:-Math.pow(2,a.overscaledZ)/l.tileSize/8};return e.extend(d,Ai(i,l),p)},Bi=e=>({u_matrix:e}),ki=(t,i,o)=>e.extend(Bi(t),Ai(i,o)),Fi=(e,t)=>({u_matrix:e,u_world:t}),Ui=(t,i,o,r)=>e.extend(ki(t,i,o),{u_world:r}),Ni=e.create(),ji=(t,i,o,r,n,s)=>{const a=t.transform,l="globe"===a.projection.name;let c;if("map"===s.paint.get("circle-pitch-alignment"))if(l){const t=e.globePixelsToTileUnits(a.zoom,i.canonical)*a._pixelsPerMercatorPixel;c=Float32Array.from([t,0,0,t]);}else c=a.calculatePixelsToTileUnitsMatrix(o);else c=new Float32Array([a.pixelsToGLUnits[0],0,0,a.pixelsToGLUnits[1]]);const h={u_camera_to_center_distance:a.cameraToCenterDistance,u_matrix:t.translatePosMatrix(i.projMatrix,o,s.paint.get("circle-translate"),s.paint.get("circle-translate-anchor")),u_device_pixel_ratio:e.exported.devicePixelRatio,u_extrude_scale:c,u_inv_rot_matrix:Ni,u_merc_center:[0,0],u_tile_id:[0,0,0],u_zoom_transition:0,u_up_dir:[0,0,0]};if(l){h.u_inv_rot_matrix=r,h.u_merc_center=n,h.u_tile_id=[i.canonical.x,i.canonical.y,1<{const t=[];return "map"===e.paint.get("circle-pitch-alignment")&&t.push("PITCH_WITH_MAP"),"map"===e.paint.get("circle-pitch-scale")&&t.push("SCALE_WITH_MAP"),t},Zi=(t,i,o,r)=>{const n=e.EXTENT/o.tileSize;return {u_matrix:t,u_camera_to_center_distance:i.getCameraToCenterDistance(r),u_extrude_scale:[i.pixelsToGLUnits[0]/n,i.pixelsToGLUnits[1]/n]}},Vi=(e,t,i=1)=>({u_matrix:e,u_color:t,u_overlay:0,u_overlay_scale:i}),Wi=e.create(),Xi=(t,i,o,r,n,s,a)=>{const l=t.transform,c="globe"===l.projection.name,h=c?e.globePixelsToTileUnits(l.zoom,i.canonical)*l._pixelsPerMercatorPixel:D(o,1,s),u={u_matrix:i.projMatrix,u_extrude_scale:h,u_intensity:a,u_inv_rot_matrix:Wi,u_merc_center:[0,0],u_tile_id:[0,0,0],u_zoom_transition:0,u_up_dir:[0,0,0]};if(c){u.u_inv_rot_matrix=r,u.u_merc_center=n,u.u_tile_id=[i.canonical.x,i.canonical.y,1<{const a=e.transform,l=a.calculatePixelsToTileUnitsMatrix(t);return {u_matrix:Yi(e,t,i,o),u_pixels_to_tile_units:l,u_device_pixel_ratio:n,u_units_to_pixels:[1/a.pixelsToGLUnits[0],1/a.pixelsToGLUnits[1]],u_dash_image:0,u_gradient_image:1,u_image_height:r,u_texsize:Ki(i)?t.lineAtlasTexture.size:[0,0],u_tile_units_to_pixels:Hi(t,e.transform),u_alpha_discard_threshold:0,u_trim_offset:s}},$i=(e,t,i,o,r)=>{const n=e.transform;return {u_matrix:Yi(e,t,i,o),u_texsize:t.imageAtlasTexture.size,u_pixels_to_tile_units:n.calculatePixelsToTileUnitsMatrix(t),u_device_pixel_ratio:r,u_image:0,u_tile_units_to_pixels:Hi(t,n),u_units_to_pixels:[1/n.pixelsToGLUnits[0],1/n.pixelsToGLUnits[1]],u_alpha_discard_threshold:0}};function Hi(e,t){return 1/D(e,1,t.tileZoom)}function Yi(e,t,i,o){return e.translatePosMatrix(o||t.tileID.projMatrix,t,i.paint.get("line-translate"),i.paint.get("line-translate-anchor"))}function Ki(e){const t=e.paint.get("line-dasharray").value;return t.value||"constant"!==t.kind}const Ji=(e,t,i,o,r,n)=>{return {u_matrix:e,u_tl_parent:t,u_scale_parent:i,u_fade_t:o.mix,u_opacity:o.opacity*r.paint.get("raster-opacity"),u_image0:0,u_image1:1,u_brightness_low:r.paint.get("raster-brightness-min"),u_brightness_high:r.paint.get("raster-brightness-max"),u_saturation_factor:(a=r.paint.get("raster-saturation"),a>0?1-1/(1.001-a):-a),u_contrast_factor:(s=r.paint.get("raster-contrast"),s>0?1/(1-s):1+s),u_spin_weights:Qi(r.paint.get("raster-hue-rotate")),u_perspective_transform:n};var s,a;};function Qi(e){e*=Math.PI/180;const t=Math.sin(e),i=Math.cos(e);return [(2*i+1)/3,(-Math.sqrt(3)*t-i+1)/3,(Math.sqrt(3)*t-i+1)/3]}const eo=e.create(),to=(t,i,o,r,n,s,a,l,c,h,u,_,d,p,m,f)=>{const g=n.transform,v={u_is_size_zoom_constant:+("constant"===t||"source"===t),u_is_size_feature_constant:+("constant"===t||"camera"===t),u_size_t:i?i.uSizeT:0,u_size:i?i.uSize:0,u_camera_to_center_distance:g.cameraToCenterDistance,u_rotate_symbol:+o,u_aspect_ratio:g.width/g.height,u_fade_change:n.options.fadeDuration?n.symbolFadeChange:1,u_matrix:s,u_label_plane_matrix:a,u_coord_matrix:l,u_is_text:+c,u_pitch_with_map:+r,u_texsize:h,u_texture:0,u_tile_id:[0,0,0],u_zoom_transition:0,u_inv_rot_matrix:eo,u_merc_center:[0,0],u_camera_forward:[0,0,0],u_ecef_origin:[0,0,0],u_tile_matrix:eo,u_up_vector:[0,-1,0]};return "globe"===f.name&&(v.u_tile_id=[u.canonical.x,u.canonical.y,1<e.extend(to(t,i,o,r,n,s,a,l,c,h,_,d,p,m,f,g),{u_gamma_scale:r?n.transform.cameraToCenterDistance*Math.cos(n.terrain?0:n.transform._pitch):1,u_device_pixel_ratio:e.exported.devicePixelRatio,u_is_halo:+u}),oo=(t,i,o,r,n,s,a,l,c,h,u,_,d,p,m,f)=>e.extend(io(t,i,o,r,n,s,a,l,!0,c,!0,u,_,d,p,m,f),{u_texsize_icon:h,u_texture_icon:1}),ro=(e,t,i)=>({u_matrix:e,u_opacity:t,u_color:i}),no=(t,i,o,r,n)=>e.extend(function(e,t,i){const o=t.imageManager.getPattern(e.toString()),{width:r,height:n}=t.imageManager.getPixelSize(),s=Math.pow(2,i.tileID.overscaledZ),a=i.tileSize*Math.pow(2,t.transform.tileZoom)/s,l=a*(i.tileID.canonical.x+i.tileID.wrap*s),c=a*i.tileID.canonical.y;return {u_image:0,u_pattern_tl:o.tl,u_pattern_br:o.br,u_texsize:[r,n],u_pattern_size:o.displaySize,u_tile_units_to_pixels:1/D(i,1,t.transform.tileZoom),u_pixel_coord_upper:[l>>16,c>>16],u_pixel_coord_lower:[65535&l,65535&c]}}(r,o,n),{u_matrix:t,u_opacity:i}),so={fillExtrusion:t=>({u_matrix:new e.UniformMatrix4f(t),u_lightpos:new e.Uniform3f(t),u_lightintensity:new e.Uniform1f(t),u_lightcolor:new e.Uniform3f(t),u_vertical_gradient:new e.Uniform1f(t),u_opacity:new e.Uniform1f(t),u_edge_radius:new e.Uniform1f(t),u_ao:new e.Uniform2f(t),u_tile_id:new e.Uniform3f(t),u_zoom_transition:new e.Uniform1f(t),u_inv_rot_matrix:new e.UniformMatrix4f(t),u_merc_center:new e.Uniform2f(t),u_up_dir:new e.Uniform3f(t),u_height_lift:new e.Uniform1f(t)}),fillExtrusionPattern:t=>({u_matrix:new e.UniformMatrix4f(t),u_lightpos:new e.Uniform3f(t),u_lightintensity:new e.Uniform1f(t),u_lightcolor:new e.Uniform3f(t),u_vertical_gradient:new e.Uniform1f(t),u_height_factor:new e.Uniform1f(t),u_edge_radius:new e.Uniform1f(t),u_ao:new e.Uniform2f(t),u_tile_id:new e.Uniform3f(t),u_zoom_transition:new e.Uniform1f(t),u_inv_rot_matrix:new e.UniformMatrix4f(t),u_merc_center:new e.Uniform2f(t),u_up_dir:new e.Uniform3f(t),u_height_lift:new e.Uniform1f(t),u_image:new e.Uniform1i(t),u_texsize:new e.Uniform2f(t),u_pixel_coord_upper:new e.Uniform2f(t),u_pixel_coord_lower:new e.Uniform2f(t),u_tile_units_to_pixels:new e.Uniform1f(t),u_opacity:new e.Uniform1f(t)}),fill:t=>({u_matrix:new e.UniformMatrix4f(t)}),fillPattern:t=>({u_matrix:new e.UniformMatrix4f(t),u_image:new e.Uniform1i(t),u_texsize:new e.Uniform2f(t),u_pixel_coord_upper:new e.Uniform2f(t),u_pixel_coord_lower:new e.Uniform2f(t),u_tile_units_to_pixels:new e.Uniform1f(t)}),fillOutline:t=>({u_matrix:new e.UniformMatrix4f(t),u_world:new e.Uniform2f(t)}),fillOutlinePattern:t=>({u_matrix:new e.UniformMatrix4f(t),u_world:new e.Uniform2f(t),u_image:new e.Uniform1i(t),u_texsize:new e.Uniform2f(t),u_pixel_coord_upper:new e.Uniform2f(t),u_pixel_coord_lower:new e.Uniform2f(t),u_tile_units_to_pixels:new e.Uniform1f(t)}),circle:t=>({u_camera_to_center_distance:new e.Uniform1f(t),u_extrude_scale:new e.UniformMatrix2f(t),u_device_pixel_ratio:new e.Uniform1f(t),u_matrix:new e.UniformMatrix4f(t),u_inv_rot_matrix:new e.UniformMatrix4f(t),u_merc_center:new e.Uniform2f(t),u_tile_id:new e.Uniform3f(t),u_zoom_transition:new e.Uniform1f(t),u_up_dir:new e.Uniform3f(t)}),collisionBox:t=>({u_matrix:new e.UniformMatrix4f(t),u_camera_to_center_distance:new e.Uniform1f(t),u_extrude_scale:new e.Uniform2f(t)}),collisionCircle:t=>({u_matrix:new e.UniformMatrix4f(t),u_inv_matrix:new e.UniformMatrix4f(t),u_camera_to_center_distance:new e.Uniform1f(t),u_viewport_size:new e.Uniform2f(t)}),debug:t=>({u_color:new e.UniformColor(t),u_matrix:new e.UniformMatrix4f(t),u_overlay:new e.Uniform1i(t),u_overlay_scale:new e.Uniform1f(t)}),clippingMask:t=>({u_matrix:new e.UniformMatrix4f(t)}),heatmap:t=>({u_extrude_scale:new e.Uniform1f(t),u_intensity:new e.Uniform1f(t),u_matrix:new e.UniformMatrix4f(t),u_inv_rot_matrix:new e.UniformMatrix4f(t),u_merc_center:new e.Uniform2f(t),u_tile_id:new e.Uniform3f(t),u_zoom_transition:new e.Uniform1f(t),u_up_dir:new e.Uniform3f(t)}),heatmapTexture:t=>({u_image:new e.Uniform1i(t),u_color_ramp:new e.Uniform1i(t),u_opacity:new e.Uniform1f(t)}),hillshade:t=>({u_matrix:new e.UniformMatrix4f(t),u_image:new e.Uniform1i(t),u_latrange:new e.Uniform2f(t),u_light:new e.Uniform2f(t),u_shadow:new e.UniformColor(t),u_highlight:new e.UniformColor(t),u_accent:new e.UniformColor(t)}),hillshadePrepare:t=>({u_matrix:new e.UniformMatrix4f(t),u_image:new e.Uniform1i(t),u_dimension:new e.Uniform2f(t),u_zoom:new e.Uniform1f(t),u_unpack:new e.Uniform4f(t)}),line:t=>({u_matrix:new e.UniformMatrix4f(t),u_pixels_to_tile_units:new e.UniformMatrix2f(t),u_device_pixel_ratio:new e.Uniform1f(t),u_units_to_pixels:new e.Uniform2f(t),u_dash_image:new e.Uniform1i(t),u_gradient_image:new e.Uniform1i(t),u_image_height:new e.Uniform1f(t),u_texsize:new e.Uniform2f(t),u_tile_units_to_pixels:new e.Uniform1f(t),u_alpha_discard_threshold:new e.Uniform1f(t),u_trim_offset:new e.Uniform2f(t)}),linePattern:t=>({u_matrix:new e.UniformMatrix4f(t),u_texsize:new e.Uniform2f(t),u_pixels_to_tile_units:new e.UniformMatrix2f(t),u_device_pixel_ratio:new e.Uniform1f(t),u_image:new e.Uniform1i(t),u_units_to_pixels:new e.Uniform2f(t),u_tile_units_to_pixels:new e.Uniform1f(t),u_alpha_discard_threshold:new e.Uniform1f(t)}),raster:t=>({u_matrix:new e.UniformMatrix4f(t),u_tl_parent:new e.Uniform2f(t),u_scale_parent:new e.Uniform1f(t),u_fade_t:new e.Uniform1f(t),u_opacity:new e.Uniform1f(t),u_image0:new e.Uniform1i(t),u_image1:new e.Uniform1i(t),u_brightness_low:new e.Uniform1f(t),u_brightness_high:new e.Uniform1f(t),u_saturation_factor:new e.Uniform1f(t),u_contrast_factor:new e.Uniform1f(t),u_spin_weights:new e.Uniform3f(t),u_perspective_transform:new e.Uniform2f(t)}),symbolIcon:t=>({u_is_size_zoom_constant:new e.Uniform1i(t),u_is_size_feature_constant:new e.Uniform1i(t),u_size_t:new e.Uniform1f(t),u_size:new e.Uniform1f(t),u_camera_to_center_distance:new e.Uniform1f(t),u_rotate_symbol:new e.Uniform1i(t),u_aspect_ratio:new e.Uniform1f(t),u_fade_change:new e.Uniform1f(t),u_matrix:new e.UniformMatrix4f(t),u_label_plane_matrix:new e.UniformMatrix4f(t),u_coord_matrix:new e.UniformMatrix4f(t),u_is_text:new e.Uniform1i(t),u_pitch_with_map:new e.Uniform1i(t),u_texsize:new e.Uniform2f(t),u_tile_id:new e.Uniform3f(t),u_zoom_transition:new e.Uniform1f(t),u_inv_rot_matrix:new e.UniformMatrix4f(t),u_merc_center:new e.Uniform2f(t),u_camera_forward:new e.Uniform3f(t),u_tile_matrix:new e.UniformMatrix4f(t),u_up_vector:new e.Uniform3f(t),u_ecef_origin:new e.Uniform3f(t),u_texture:new e.Uniform1i(t)}),symbolSDF:t=>({u_is_size_zoom_constant:new e.Uniform1i(t),u_is_size_feature_constant:new e.Uniform1i(t),u_size_t:new e.Uniform1f(t),u_size:new e.Uniform1f(t),u_camera_to_center_distance:new e.Uniform1f(t),u_rotate_symbol:new e.Uniform1i(t),u_aspect_ratio:new e.Uniform1f(t),u_fade_change:new e.Uniform1f(t),u_matrix:new e.UniformMatrix4f(t),u_label_plane_matrix:new e.UniformMatrix4f(t),u_coord_matrix:new e.UniformMatrix4f(t),u_is_text:new e.Uniform1i(t),u_pitch_with_map:new e.Uniform1i(t),u_texsize:new e.Uniform2f(t),u_texture:new e.Uniform1i(t),u_gamma_scale:new e.Uniform1f(t),u_device_pixel_ratio:new e.Uniform1f(t),u_tile_id:new e.Uniform3f(t),u_zoom_transition:new e.Uniform1f(t),u_inv_rot_matrix:new e.UniformMatrix4f(t),u_merc_center:new e.Uniform2f(t),u_camera_forward:new e.Uniform3f(t),u_tile_matrix:new e.UniformMatrix4f(t),u_up_vector:new e.Uniform3f(t),u_ecef_origin:new e.Uniform3f(t),u_is_halo:new e.Uniform1i(t)}),symbolTextAndIcon:t=>({u_is_size_zoom_constant:new e.Uniform1i(t),u_is_size_feature_constant:new e.Uniform1i(t),u_size_t:new e.Uniform1f(t),u_size:new e.Uniform1f(t),u_camera_to_center_distance:new e.Uniform1f(t),u_rotate_symbol:new e.Uniform1i(t),u_aspect_ratio:new e.Uniform1f(t),u_fade_change:new e.Uniform1f(t),u_matrix:new e.UniformMatrix4f(t),u_label_plane_matrix:new e.UniformMatrix4f(t),u_coord_matrix:new e.UniformMatrix4f(t),u_is_text:new e.Uniform1i(t),u_pitch_with_map:new e.Uniform1i(t),u_texsize:new e.Uniform2f(t),u_texsize_icon:new e.Uniform2f(t),u_texture:new e.Uniform1i(t),u_texture_icon:new e.Uniform1i(t),u_gamma_scale:new e.Uniform1f(t),u_device_pixel_ratio:new e.Uniform1f(t),u_is_halo:new e.Uniform1i(t)}),background:t=>({u_matrix:new e.UniformMatrix4f(t),u_opacity:new e.Uniform1f(t),u_color:new e.UniformColor(t)}),backgroundPattern:t=>({u_matrix:new e.UniformMatrix4f(t),u_opacity:new e.Uniform1f(t),u_image:new e.Uniform1i(t),u_pattern_tl:new e.Uniform2f(t),u_pattern_br:new e.Uniform2f(t),u_texsize:new e.Uniform2f(t),u_pattern_size:new e.Uniform2f(t),u_pixel_coord_upper:new e.Uniform2f(t),u_pixel_coord_lower:new e.Uniform2f(t),u_tile_units_to_pixels:new e.Uniform1f(t)}),terrainRaster:gi,terrainDepth:gi,skybox:t=>({u_matrix:new e.UniformMatrix4f(t),u_sun_direction:new e.Uniform3f(t),u_cubemap:new e.Uniform1i(t),u_opacity:new e.Uniform1f(t),u_temporal_offset:new e.Uniform1f(t)}),skyboxGradient:t=>({u_matrix:new e.UniformMatrix4f(t),u_color_ramp:new e.Uniform1i(t),u_center_direction:new e.Uniform3f(t),u_radius:new e.Uniform1f(t),u_opacity:new e.Uniform1f(t),u_temporal_offset:new e.Uniform1f(t)}),skyboxCapture:t=>({u_matrix_3f:new e.UniformMatrix3f(t),u_sun_direction:new e.Uniform3f(t),u_sun_intensity:new e.Uniform1f(t),u_color_tint_r:new e.Uniform4f(t),u_color_tint_m:new e.Uniform4f(t),u_luminance:new e.Uniform1f(t)}),globeRaster:t=>({u_proj_matrix:new e.UniformMatrix4f(t),u_globe_matrix:new e.UniformMatrix4f(t),u_normalize_matrix:new e.UniformMatrix4f(t),u_merc_matrix:new e.UniformMatrix4f(t),u_zoom_transition:new e.Uniform1f(t),u_merc_center:new e.Uniform2f(t),u_image0:new e.Uniform1i(t),u_grid_matrix:new e.UniformMatrix3f(t),u_skirt_height:new e.Uniform1f(t),u_frustum_tl:new e.Uniform3f(t),u_frustum_tr:new e.Uniform3f(t),u_frustum_br:new e.Uniform3f(t),u_frustum_bl:new e.Uniform3f(t),u_globe_pos:new e.Uniform3f(t),u_globe_radius:new e.Uniform1f(t),u_viewport:new e.Uniform2f(t)}),globeAtmosphere:t=>({u_frustum_tl:new e.Uniform3f(t),u_frustum_tr:new e.Uniform3f(t),u_frustum_br:new e.Uniform3f(t),u_frustum_bl:new e.Uniform3f(t),u_horizon:new e.Uniform1f(t),u_transition:new e.Uniform1f(t),u_fadeout_range:new e.Uniform1f(t),u_color:new e.Uniform4f(t),u_high_color:new e.Uniform4f(t),u_space_color:new e.Uniform4f(t),u_star_intensity:new e.Uniform1f(t),u_star_density:new e.Uniform1f(t),u_star_size:new e.Uniform1f(t),u_temporal_offset:new e.Uniform1f(t),u_horizon_angle:new e.Uniform1f(t),u_rotation_matrix:new e.UniformMatrix4f(t)})};let ao;function lo(t,i,o,r,n,s,a){const l=t.context,c=l.gl,h=t.transform,u=t.useProgram("collisionBox"),_=[];let d=0,p=0;for(let m=0;m0){const t=e.create(),i=y;e.mul(t,v.placementInvProjMatrix,h.glCoordMatrix),e.mul(t,t,v.placementViewportMatrix),_.push({circleArray:w,circleOffset:p,transform:i,invTransform:t,projection:v.getProjection()}),d+=w.length/4,p=d;}b&&(t.terrain&&t.terrain.setupElevationDraw(g,u),u.draw(l,c.LINES,e.DepthMode.disabled,e.StencilMode.disabled,t.colorModeForRenderPass(),e.CullFaceMode.disabled,Zi(y,h,g,v.getProjection()),o.id,b.layoutVertexBuffer,b.indexBuffer,b.segments,null,h.zoom,null,[b.collisionVertexBuffer,b.collisionVertexBufferExt]));}if(!a||!_.length)return;const m=t.useProgram("collisionCircle"),f=new e.StructArrayLayout2f1f2i16;f.resize(4*d),f._trim();let g=0;for(const e of _)for(let t=0;t=0&&(m[y.associatedIconIndex]={x:C,y:M,z:I,angle:A});}else dt(T,d);}if(u){p.clear();const i=t.icon.placedSymbolArray;for(let t=0;te.sortKey-t.sortKey));for(const e of M){const i=e.state;if(t.terrain&&t.terrain.setupElevationDraw(i.tile,i.program,{useDepthForOcclusion:!C,labelPlaneMatrixInv:i.labelPlaneMatrixInv}),d.activeTexture.set(p.TEXTURE0),i.atlasTexture.bind(i.atlasInterpolation,p.CLAMP_TO_EDGE),i.atlasTextureIcon&&(d.activeTexture.set(p.TEXTURE1),i.atlasTextureIcon&&i.atlasTextureIcon.bind(i.atlasInterpolationIcon,p.CLAMP_TO_EDGE)),i.isSDF){const r=i.uniformValues;i.hasHalo&&(r.u_is_halo=1,mo(i.buffers,e.segments,o,t,i.program,w,u,_,r)),r.u_is_halo=0;}mo(i.buffers,e.segments,o,t,i.program,w,u,_,i.uniformValues);}}function mo(t,i,o,r,n,s,a,l,c){const h=r.context,u=[t.dynamicLayoutVertexBuffer,t.opacityVertexBuffer,t.globeExtVertexBuffer];n.draw(h,h.gl.TRIANGLES,s,a,l,e.CullFaceMode.disabled,c,o.id,t.layoutVertexBuffer,t.indexBuffer,i,o.paint,r.transform.zoom,t.programConfigurations.get(o.id),u);}function fo(t,i,o,r,n,s,a){const l=t.context.gl,c=o.paint.get("fill-pattern"),h=c&&c.constantOr(1);let u,_,d,p,m;a?(_=h&&!o.getPaintProperty("fill-outline-color")?"fillOutlinePattern":"fillOutline",u=l.LINES):(_=h?"fillPattern":"fill",u=l.TRIANGLES);for(const f of r){const r=i.getTile(f);if(h&&!r.patternsLoaded())continue;const g=r.getBucket(o);if(!g)continue;t.prepareDrawTile();const v=g.programConfigurations.get(o.id),x=t.useProgram(_,v);h&&(t.context.activeTexture.set(l.TEXTURE0),r.imageAtlasTexture.bind(l.LINEAR,l.CLAMP_TO_EDGE),v.updatePaintBuffers());const y=c.constantOr(null);if(y&&r.imageAtlas){const e=r.imageAtlas.patternPositions[y.toString()];e&&v.setConstantPatternPositions(e);}const b=t.translatePosMatrix(f.projMatrix,r,o.paint.get("fill-translate"),o.paint.get("fill-translate-anchor"));if(a){p=g.indexBuffer2,m=g.segments2;const e=t.terrain&&t.terrain.renderingToTexture?t.terrain.drapeBufferSize:[l.drawingBufferWidth,l.drawingBufferHeight];d="fillOutlinePattern"===_&&h?Ui(b,t,r,e):Fi(b,e);}else p=g.indexBuffer,m=g.segments,d=h?ki(b,t,r):Bi(b);t.prepareDrawProgram(t.context,x,f.toUnwrapped()),x.draw(t.context,u,n,t.stencilModeForClipping(f),s,e.CullFaceMode.disabled,d,o.id,g.layoutVertexBuffer,p,m,o.paint,t.transform.zoom,v);}}function go(t,i,o,r,n,s,a){const l=t.context,c=l.gl,h=t.transform,u=o.paint.get("fill-extrusion-pattern"),_=u.constantOr(1),d=o.paint.get("fill-extrusion-opacity"),p=[o.paint.get("fill-extrusion-ambient-occlusion-intensity"),o.paint.get("fill-extrusion-ambient-occlusion-radius")],m=o.layout.get("fill-extrusion-edge-radius"),f=m>0&&!o.paint.get("fill-extrusion-rounded-roof"),g=f?0:m,v="globe"===h.projection.name?e.fillExtrusionHeightLift():0,x="globe"===h.projection.name,y=x?e.globeToMercatorTransition(h.zoom):0,b=[e.mercatorXfromLng(h.center.lng),e.mercatorYfromLat(h.center.lat)],w=[];x&&w.push("PROJECTION_GLOBE_VIEW"),p[0]>0&&w.push("FAUX_AO"),f&&w.push("ZERO_ROOF_RADIUS");for(const m of r){const r=i.getTile(m),f=r.getBucket(o);if(!f||f.projection.name!==h.projection.name)continue;const T=f.programConfigurations.get(o.id),E=t.useProgram(_?"fillExtrusionPattern":"fillExtrusion",T,w);if(t.terrain){const e=t.terrain;if(t.style.terrainSetForDrapingOnly())e.setupElevationDraw(r,E,{useMeterToDem:!0});else {if(!f.enableTerrain)continue;if(e.setupElevationDraw(r,E,{useMeterToDem:!0}),vo(l,i,m,f,o,e),!f.centroidVertexBuffer){const e=E.attributes.a_centroid_pos;void 0!==e&&c.vertexAttrib2f(e,0,0);}}}_&&(t.context.activeTexture.set(c.TEXTURE0),r.imageAtlasTexture.bind(c.LINEAR,c.CLAMP_TO_EDGE),T.updatePaintBuffers());const C=u.constantOr(null);if(C&&r.imageAtlas){const e=r.imageAtlas.patternPositions[C.toString()];e&&T.setConstantPatternPositions(e);}const M=t.translatePosMatrix(m.projMatrix,r,o.paint.get("fill-extrusion-translate"),o.paint.get("fill-extrusion-translate-anchor")),I=h.projection.createInversionMatrix(h,m.canonical),P=o.paint.get("fill-extrusion-vertical-gradient"),S=_?Oi(M,t,P,d,p,g,m,r,v,y,b,I):Ri(M,t,P,d,p,g,m,v,y,b,I);t.prepareDrawProgram(l,E,m.toUnwrapped());const D=[];t.terrain&&D.push(f.centroidVertexBuffer),x&&D.push(f.layoutVertexExtBuffer),E.draw(l,l.gl.TRIANGLES,n,s,a,e.CullFaceMode.backCCW,S,o.id,f.layoutVertexBuffer,f.indexBuffer,f.segments,o.paint,t.transform.zoom,T,D);}}function vo(t,i,o,r,n,s){const a=[t=>{let i=t.canonical.x-1,o=t.wrap;return i<0&&(i=(1<{let i=t.canonical.x+1,o=t.wrap;return i===1<new e.OverscaledTileID(t.overscaledZ,t.wrap,t.canonical.z,t.canonical.x,(0===t.canonical.y?1<new e.OverscaledTileID(t.overscaledZ,t.wrap,t.canonical.z,t.canonical.x,t.canonical.y===(1<{const t=i.getSource().minzoom,o=e=>{const t=i.getTileByID(e);if(t&&t.hasData())return t.getBucket(n)},r=[0,-1,1];for(const i of r){if(e.overscaledZ+i(c[0]=Math.min(t.min.y,i.min.y),c[1]=Math.max(t.max.y,i.max.y),c[2]=e.EXTENT-i.min.x>t.max.x?i.min.x-e.EXTENT:t.max.x,c),u=(t,i)=>(c[0]=Math.min(t.min.x,i.min.x),c[1]=Math.max(t.max.x,i.max.x),c[2]=e.EXTENT-i.min.y>t.max.y?i.min.y-e.EXTENT:t.max.y,c),_=[(e,t)=>h(e,t),(e,t)=>h(t,e),(e,t)=>u(e,t),(e,t)=>u(t,e)],d=new e.Point(0,0);let p,m,f;const g=(t,i,r,n,a)=>{const l=[[n?r:t,n?t:r,0],[n?r:i,n?i:r,0]],c=a<0?e.EXTENT+a:a,h=[n?c:(t+i)/2,n?(t+i)/2:c,0];return 0===r&&a<0||0!==r&&a>0?s.getForTilePoints(f,[h],!0,m):l.push(h),s.getForTilePoints(o,l,!0,p),Math.max(l[0][2],l[1][2],h[2])/s.exaggeration()};for(let t=0;t<4;t++){const i=(t<2?1:5)-t,n=r.borders[t];if(0===n.length)continue;const c=f=a[t](o),h=l(c);if(!(h&&h instanceof e.FillExtrusionBucket&&h.enableTerrain))continue;if(r.borderDoneWithNeighborZ[t]===h.canonical.z&&h.borderDoneWithNeighborZ[i]===r.canonical.z)continue;if(m=s.findDEMTileFor(c),!m||!m.dem)continue;if(!p){const e=s.findDEMTileFor(o);if(!e||!e.dem)return;p=e;}const u=h.borders[i];let v=0;const x=h.borderDoneWithNeighborZ[i]!==r.canonical.z;if(r.canonical.z===h.canonical.z){for(let o=0;oa[0]+3));)x&&h.encodeCentroid(void 0,l,!1),v++;if(l&&va[1]-3)&&(n++,++v!==u.length);)l=h.featuresOnBorder[u[v]];if(l=h.featuresOnBorder[u[o]],s.intersectsCount()>1||l.intersectsCount()>1||1!==n){1!==n&&(v=o),r.encodeCentroid(void 0,s,!1),x&&h.encodeCentroid(void 0,l,!1);continue}const c=_[t](s,l),p=t%2?e.EXTENT-1:0;d.x=g(c[0],Math.min(e.EXTENT-1,c[1]),p,t<2,c[2]),d.y=0,r.encodeCentroid(d,s,!1),x&&h.encodeCentroid(d,l,!1);}else r.encodeCentroid(void 0,s,!1);}r.borderDoneWithNeighborZ[t]=h.canonical.z,r.needsCentroidUpdate=!0,x&&(h.borderDoneWithNeighborZ[i]=r.canonical.z,h.needsCentroidUpdate=!0);}else {for(const e of n)r.encodeCentroid(void 0,r.featuresOnBorder[e],!1);if(x){for(const e of u)h.encodeCentroid(void 0,h.featuresOnBorder[e],!1);h.borderDoneWithNeighborZ[i]=r.canonical.z,h.needsCentroidUpdate=!0;}r.borderDoneWithNeighborZ[t]=h.canonical.z,r.needsCentroidUpdate=!0;}}(r.needsCentroidUpdate||!r.centroidVertexBuffer&&0!==r.centroidVertexArray.length)&&r.uploadCentroid(t);}const xo=new e.Color(1,0,0,1),yo=new e.Color(0,1,0,1),bo=new e.Color(0,0,1,1),wo=new e.Color(1,0,1,1),To=new e.Color(0,1,1,1);function Eo(t,i,o){const r=t.context,n=t.transform,s=r.gl,a="globe"===n.projection.name,l=a?["PROJECTION_GLOBE_VIEW"]:null;let c=o.projMatrix;if(a&&e.globeToMercatorTransition(n.zoom)>0){const t=e.transitionTileAABBinECEF(o.canonical,n),i=e.globeDenormalizeECEF(t);c=e.multiply(new Float32Array(16),n.globeMatrix,i),e.multiply(c,n.projMatrix,c);}const h=t.useProgram("debug",null,l),u=i.getTileByID(o.key);t.terrain&&t.terrain.setupElevationDraw(u,h);const _=e.DepthMode.disabled,d=e.StencilMode.disabled,p=t.colorModeForRenderPass(),m="$debug";r.activeTexture.set(s.TEXTURE0),t.emptyTexture.bind(s.LINEAR,s.CLAMP_TO_EDGE),a?u._makeGlobeTileDebugBuffers(t.context,n):u._makeDebugTileBoundsBuffers(t.context,n.projection);const f=u._tileDebugBuffer||t.debugBuffer,g=u._tileDebugIndexBuffer||t.debugIndexBuffer,v=u._tileDebugSegments||t.debugSegments;h.draw(r,s.LINE_STRIP,_,d,p,e.CullFaceMode.disabled,Vi(c,e.Color.red),m,f,g,v,null,null,null,[u._globeTileDebugBorderBuffer]);const x=u.latestRawTileData,y=Math.floor((x&&x.byteLength||0)/1024),b=i.getTile(o).tileSize,w=512/Math.min(b,512)*(o.overscaledZ/n.zoom)*.5;let T=o.canonical.toString();o.overscaledZ!==o.canonical.z&&(T+=` => ${o.overscaledZ}`),T+=` ${y}kb`,function(e,t){e.initDebugOverlayCanvas();const i=e.debugOverlayCanvas,o=e.context.gl,r=e.debugOverlayCanvas.getContext("2d");r.clearRect(0,0,i.width,i.height),r.shadowColor="white",r.shadowBlur=2,r.lineWidth=1.5,r.strokeStyle="white",r.textBaseline="top",r.font="bold 36px Open Sans, sans-serif",r.fillText(t,5,5),r.strokeText(t,5,5),e.debugOverlayTexture.update(i),e.debugOverlayTexture.bind(o.LINEAR,o.CLAMP_TO_EDGE);}(t,T);const E=u._tileDebugTextBuffer||t.debugBuffer,C=u._tileDebugTextIndexBuffer||t.quadTriangleIndexBuffer,M=u._tileDebugTextSegments||t.debugSegments;h.draw(r,s.TRIANGLES,_,d,e.ColorMode.alphaBlended,e.CullFaceMode.disabled,Vi(c,e.Color.transparent,w),m,E,C,M,null,null,null,[u._globeTileDebugTextBuffer]);}function Co(e,t,i,o){Io(e,0,t+i/2,e.transform.width,i,o);}function Mo(e,t,i,o){Io(e,t-i/2,0,i,e.transform.height,o);}function Io(t,i,o,r,n,s){const a=t.context,l=a.gl;l.enable(l.SCISSOR_TEST),l.scissor(i*e.exported.devicePixelRatio,o*e.exported.devicePixelRatio,r*e.exported.devicePixelRatio,n*e.exported.devicePixelRatio),a.clear({color:s}),l.disable(l.SCISSOR_TEST);}const Po=e.createLayout([{name:"a_pos_3f",components:3,type:"Float32"}]),{members:So}=Po;function Do(e,t,i,o){e.emplaceBack(t,i,o);}class Lo{constructor(t){this.vertexArray=new e.StructArrayLayout3f12,this.indices=new e.StructArrayLayout3ui6,Do(this.vertexArray,-1,-1,1),Do(this.vertexArray,1,-1,1),Do(this.vertexArray,-1,1,1),Do(this.vertexArray,1,1,1),Do(this.vertexArray,-1,-1,-1),Do(this.vertexArray,1,-1,-1),Do(this.vertexArray,-1,1,-1),Do(this.vertexArray,1,1,-1),this.indices.emplaceBack(5,1,3),this.indices.emplaceBack(3,7,5),this.indices.emplaceBack(6,2,0),this.indices.emplaceBack(0,4,6),this.indices.emplaceBack(2,6,7),this.indices.emplaceBack(7,3,2),this.indices.emplaceBack(5,4,0),this.indices.emplaceBack(0,1,5),this.indices.emplaceBack(0,2,3),this.indices.emplaceBack(3,1,0),this.indices.emplaceBack(7,6,4),this.indices.emplaceBack(4,5,7),this.vertexBuffer=t.createVertexBuffer(this.vertexArray,So),this.indexBuffer=t.createIndexBuffer(this.indices),this.segment=e.SegmentVector.simpleSegment(0,0,36,12);}}function Ao(t,i,o,r,n,s){const a=t.gl,l=i.paint.get("sky-atmosphere-color"),c=i.paint.get("sky-atmosphere-halo-color"),h=i.paint.get("sky-atmosphere-sun-intensity"),u=((e,t,i,o,r)=>({u_matrix_3f:e,u_sun_direction:t,u_sun_intensity:i,u_color_tint_r:[o.r,o.g,o.b,o.a],u_color_tint_m:[r.r,r.g,r.b,r.a],u_luminance:5e-5}))(e.fromMat4(e.create$1(),r),n,h,l,c);a.framebufferTexture2D(a.FRAMEBUFFER,a.COLOR_ATTACHMENT0,a.TEXTURE_CUBE_MAP_POSITIVE_X+s,i.skyboxTexture,0),o.draw(t,a.TRIANGLES,e.DepthMode.disabled,e.StencilMode.disabled,e.ColorMode.unblended,e.CullFaceMode.frontCW,u,"skyboxCapture",i.skyboxGeometry.vertexBuffer,i.skyboxGeometry.indexBuffer,i.skyboxGeometry.segment);}const zo=e.createLayout([{type:"Float32",name:"a_pos",components:3},{type:"Float32",name:"a_uv",components:2}]);class Ro{constructor(t){const i=new e.StructArrayLayout5f20;i.emplaceBack(-1,1,1,0,0),i.emplaceBack(1,1,1,1,0),i.emplaceBack(1,-1,1,1,1),i.emplaceBack(-1,-1,1,0,1);const o=new e.StructArrayLayout3ui6;o.emplaceBack(0,1,2),o.emplaceBack(2,3,0),this.vertexBuffer=t.createVertexBuffer(i,zo.members),this.indexBuffer=t.createIndexBuffer(o),this.segments=e.SegmentVector.simpleSegment(0,0,4,2);}destroy(){this.vertexBuffer.destroy(),this.indexBuffer.destroy(),this.segments.destroy();}}const Oo={symbol:function(t,i,o,r,n){if("translucent"!==t.renderPass)return;const s=e.StencilMode.disabled,a=t.colorModeForRenderPass();o.layout.get("text-variable-anchor")&&function(t,i,o,r,n,s,a){const l=i.transform,c="map"===n,h="map"===s;for(const i of t){const t=r.getTile(i),n=t.getBucket(o);if(!n||!n.text||!n.text.segments.get().length)continue;const s=e.evaluateSizeForZoom(n.textSizeData,l.zoom),u=xt(i,n.getProjection(),l),_=l.calculatePixelsToTileUnitsMatrix(t),d=et(u,t.tileID.canonical,h,c,l,n.getProjection(),_),p="none"!==o.layout.get("icon-text-fit")&&n.hasIconData();if(s){const o=Math.pow(2,l.zoom-t.tileID.overscaledZ);uo(n,c,h,a,e.symbolSize,l,d,i,o,s,p);}}}(r,t,o,i,o.layout.get("text-rotation-alignment"),o.layout.get("text-pitch-alignment"),n),0!==o.paint.get("icon-opacity").constantOr(1)&&po(t,i,o,r,!1,o.paint.get("icon-translate"),o.paint.get("icon-translate-anchor"),o.layout.get("icon-rotation-alignment"),o.layout.get("icon-pitch-alignment"),o.layout.get("icon-keep-upright"),s,a),0!==o.paint.get("text-opacity").constantOr(1)&&po(t,i,o,r,!0,o.paint.get("text-translate"),o.paint.get("text-translate-anchor"),o.layout.get("text-rotation-alignment"),o.layout.get("text-pitch-alignment"),o.layout.get("text-keep-upright"),s,a),i.map.showCollisionBoxes&&(lo(t,i,o,r,o.paint.get("text-translate"),o.paint.get("text-translate-anchor"),!0),lo(t,i,o,r,o.paint.get("icon-translate"),o.paint.get("icon-translate-anchor"),!1));},circle:function(t,i,o,r){if("translucent"!==t.renderPass)return;const n=o.paint.get("circle-opacity"),s=o.paint.get("circle-stroke-width"),a=o.paint.get("circle-stroke-opacity"),l=void 0!==o.layout.get("circle-sort-key").constantOr(1);if(0===n.constantOr(1)&&(0===s.constantOr(1)||0===a.constantOr(1)))return;const c=t.context,h=c.gl,u=t.transform,_=t.depthModeForSublayer(0,e.DepthMode.ReadOnly),d=e.StencilMode.disabled,p=t.colorModeForRenderPass(),m="globe"===u.projection.name,f=[e.mercatorXfromLng(u.center.lng),e.mercatorYfromLat(u.center.lat)],g=[];for(let n=0;ne.sortKey-t.sortKey));const v={useDepthForOcclusion:!m};for(const i of g){const{programConfiguration:r,program:n,layoutVertexBuffer:s,globeExtVertexBuffer:a,indexBuffer:l,uniformValues:m,tile:f}=i.state,g=i.segments;t.terrain&&t.terrain.setupElevationDraw(f,n,v),t.prepareDrawProgram(c,n,f.tileID.toUnwrapped()),n.draw(c,h.TRIANGLES,_,d,p,e.CullFaceMode.disabled,m,o.id,s,l,g,o.paint,u.zoom,r,[a]);}},heatmap:function(t,i,o,r){if(0!==o.paint.get("heatmap-opacity"))if("offscreen"===t.renderPass){const n=t.context,s=n.gl,a=e.StencilMode.disabled,l=new e.ColorMode([s.ONE,s.ONE],e.Color.transparent,[!0,!0,!0,!0]);!function(e,t,i,o){const r=e.gl,n=t.width*o,s=t.height*o;e.activeTexture.set(r.TEXTURE1),e.viewport.set([0,0,n,s]);let a=i.heatmapFbo;if(!a||a&&(a.width!==n||a.height!==s)){a&&a.destroy();const t=r.createTexture();r.bindTexture(r.TEXTURE_2D,t),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_S,r.CLAMP_TO_EDGE),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_T,r.CLAMP_TO_EDGE),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MIN_FILTER,r.LINEAR),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MAG_FILTER,r.LINEAR),a=i.heatmapFbo=e.createFramebuffer(n,s,!1),function(e,t,i,o,r,n){const s=e.gl;s.texImage2D(s.TEXTURE_2D,0,e.isWebGL2&&e.extRenderToTextureHalfFloat?s.RGBA16F:s.RGBA,r,n,0,s.RGBA,e.extRenderToTextureHalfFloat?e.isWebGL2?s.HALF_FLOAT:e.extTextureHalfFloat.HALF_FLOAT_OES:s.UNSIGNED_BYTE,null),o.colorAttachment.set(i);}(e,0,t,a,n,s);}else r.bindTexture(r.TEXTURE_2D,a.colorAttachment.get()),e.bindFramebuffer.set(a.framebuffer);}(n,t,o,"globe"===t.transform.projection.name?.5:.25),n.clear({color:e.Color.transparent});const c=t.transform,h="globe"===c.projection.name,u=h?["PROJECTION_GLOBE_VIEW"]:null,_=h?e.CullFaceMode.frontCCW:e.CullFaceMode.disabled,d=[e.mercatorXfromLng(c.center.lng),e.mercatorYfromLat(c.center.lat)];for(let p=0;p({u_image:0,u_color_ramp:1,u_opacity:t.paint.get("heatmap-opacity")}))(0,i),i.id,t.viewportBuffer,t.quadTriangleIndexBuffer,t.viewportSegments,i.paint,t.transform.zoom);}(t,o));},line:function(t,i,o,r){if("translucent"!==t.renderPass)return;const n=o.paint.get("line-opacity"),s=o.paint.get("line-width");if(0===n.constantOr(1)||0===s.constantOr(1))return;const a=t.depthModeForSublayer(0,e.DepthMode.ReadOnly),l=t.colorModeForRenderPass(),c=t.terrain&&t.terrain.renderingToTexture?1:e.exported.devicePixelRatio,h=o.paint.get("line-dasharray"),u=h.constantOr(1),_=o.layout.get("line-cap"),d=o.paint.get("line-pattern"),p=d.constantOr(1),m=o.paint.get("line-gradient"),f=p?"linePattern":"line",g=t.context,v=g.gl,x=(e=>{const t=[];Ki(e)&&t.push("RENDER_LINE_DASH"),e.paint.get("line-gradient")&&t.push("RENDER_LINE_GRADIENT");const i=e.paint.get("line-trim-offset");0===i[0]&&0===i[1]||t.push("RENDER_LINE_TRIM_OFFSET");const o=e.paint.get("line-pattern").constantOr(1),r=1!==e.paint.get("line-opacity").constantOr(1);return !o&&r&&t.push("RENDER_LINE_ALPHA_DISCARD"),t})(o);let y=x.includes("RENDER_LINE_ALPHA_DISCARD");t.terrain&&t.terrain.clipOrMaskOverlapStencilType()&&(y=!1);for(const n of r){const r=i.getTile(n);if(p&&!r.patternsLoaded())continue;const s=r.getBucket(o);if(!s)continue;t.prepareDrawTile();const b=s.programConfigurations.get(o.id),w=t.useProgram(f,b,x),T=d.constantOr(null);if(T&&r.imageAtlas){const e=r.imageAtlas.patternPositions[T.toString()];e&&b.setConstantPatternPositions(e);}const E=h.constantOr(null),C=_.constantOr(null);if(!p&&E&&C&&r.lineAtlas){const e=r.lineAtlas.getDash(E,C);e&&b.setConstantPatternPositions(e);}let[M,I]=o.paint.get("line-trim-offset");if("round"===C||"square"===C){const e=1;M!==I&&(0===M&&(M-=e),1===I&&(I+=e));}const P=t.terrain?n.projMatrix:null,S=p?$i(t,r,o,P,c):qi(t,r,o,P,s.lineClipsArray.length,c,[M,I]);if(m){const r=s.gradients[o.id];let a=r.texture;if(o.gradientVersion!==r.version){let l=256;if(o.stepInterpolant){const o=i.getSource().maxzoom,r=n.canonical.z===o?Math.ceil(1<{w.draw(g,v.TRIANGLES,a,i,l,e.CullFaceMode.disabled,S,o.id,s.layoutVertexBuffer,s.indexBuffer,s.segments,o.paint,t.transform.zoom,b,[s.layoutVertexBuffer2]);};if(y){const i=t.stencilModeForClipping(n).ref;0===i&&t.terrain&&g.clear({stencil:0});const o={func:v.EQUAL,mask:255};S.u_alpha_discard_threshold=.8,D(new e.StencilMode(o,i,255,v.KEEP,v.KEEP,v.INVERT)),S.u_alpha_discard_threshold=0,D(new e.StencilMode(o,i,255,v.KEEP,v.KEEP,v.KEEP));}else D(t.stencilModeForClipping(n));}y&&(t.resetStencilClippingMasks(),t.terrain&&g.clear({stencil:0}));},fill:function(t,i,o,r){const n=o.paint.get("fill-color"),s=o.paint.get("fill-opacity");if(0===s.constantOr(1))return;const a=t.colorModeForRenderPass(),l=o.paint.get("fill-pattern"),c=t.opaquePassEnabledForLayer()&&!l.constantOr(1)&&1===n.constantOr(e.Color.transparent).a&&1===s.constantOr(0)?"opaque":"translucent";if(t.renderPass===c){const n=t.depthModeForSublayer(1,"opaque"===t.renderPass?e.DepthMode.ReadWrite:e.DepthMode.ReadOnly);fo(t,i,o,r,n,a,!1);}if("translucent"===t.renderPass&&o.paint.get("fill-antialias")){const n=t.depthModeForSublayer(o.getPaintProperty("fill-outline-color")?2:0,e.DepthMode.ReadOnly);fo(t,i,o,r,n,a,!0);}},"fill-extrusion":function(t,i,o,r){const n=o.paint.get("fill-extrusion-opacity");if(0!==n&&"translucent"===t.renderPass){const s=new e.DepthMode(t.context.gl.LEQUAL,e.DepthMode.ReadWrite,t.depthRangeFor3D);if(1!==n||o.paint.get("fill-extrusion-pattern").constantOr(1))go(t,i,o,r,s,e.StencilMode.disabled,e.ColorMode.disabled),go(t,i,o,r,s,t.stencilModeFor3D(),t.colorModeForRenderPass()),t.resetStencilClippingMasks();else {const n=t.colorModeForRenderPass();go(t,i,o,r,s,e.StencilMode.disabled,n);}}},hillshade:function(t,i,o,r){if("offscreen"!==t.renderPass&&"translucent"!==t.renderPass)return;const n=t.context,s=t.depthModeForSublayer(0,e.DepthMode.ReadOnly),a=t.colorModeForRenderPass(),l=t.terrain&&t.terrain.renderingToTexture,[c,h]="translucent"!==t.renderPass||l?[{},r]:t.stencilConfigForOverlap(r);for(const r of h){const n=i.getTile(r);if(n.needsHillshadePrepare&&"offscreen"===t.renderPass)fi(t,n,o,s,e.StencilMode.disabled,a);else if("translucent"===t.renderPass){const e=l&&t.terrain?t.terrain.stencilModeForRTTOverlap(r):c[r.overscaledZ];pi(t,r,n,o,s,e,a);}}n.viewport.set([0,0,t.width,t.height]),t.resetStencilClippingMasks();},raster:function(t,i,o,r,n,s){if("translucent"!==t.renderPass)return;if(0===o.paint.get("raster-opacity"))return;if(!r.length)return;const a=t.context,l=a.gl,c=i.getSource(),h=t.useProgram("raster"),u=t.colorModeForRenderPass(),_=t.terrain&&t.terrain.renderingToTexture,[d,p]=c instanceof Pe||_?[{},r]:t.stencilConfigForOverlap(r),m=p[p.length-1].overscaledZ,f=!t.options.moving;for(const r of p){const n=_?e.DepthMode.disabled:t.depthModeForSublayer(r.overscaledZ-m,1===o.paint.get("raster-opacity")?e.DepthMode.ReadWrite:e.DepthMode.ReadOnly,l.LESS),p=r.toUnwrapped(),g=i.getTile(r);if(_&&(!g||!g.hasData()))continue;const v=_?r.projMatrix:t.transform.calculateProjMatrix(p,f),x=t.terrain&&_?t.terrain.stencilModeForRTTOverlap(r):d[r.overscaledZ],y=s?0:o.paint.get("raster-fade-duration");g.registerFadeDuration(y);const b=i.findLoadedParent(r,0),w=Mi(g,b,i,t.transform,y);let T,E;t.terrain&&t.terrain.prepareDrawTile();const C="nearest"===o.paint.get("raster-resampling")?l.NEAREST:l.LINEAR;a.activeTexture.set(l.TEXTURE0),g.texture.bind(C,l.CLAMP_TO_EDGE),a.activeTexture.set(l.TEXTURE1),b?(b.texture.bind(C,l.CLAMP_TO_EDGE),T=Math.pow(2,b.tileID.overscaledZ-g.tileID.overscaledZ),E=[g.tileID.canonical.x*T%1,g.tileID.canonical.y*T%1]):g.texture.bind(C,l.CLAMP_TO_EDGE),g.texture.useMipmap&&a.extTextureFilterAnisotropic&&t.transform.pitch>20&&l.texParameterf(l.TEXTURE_2D,a.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,a.extTextureFilterAnisotropicMax);const M=Ji(v,E||[0,0],T||1,w,o,c instanceof Pe?c.perspectiveTransform:[0,0]);if(t.prepareDrawProgram(a,h,p),c instanceof Pe)c.boundsBuffer&&c.boundsSegments&&h.draw(a,l.TRIANGLES,n,e.StencilMode.disabled,u,e.CullFaceMode.disabled,M,o.id,c.boundsBuffer,t.quadTriangleIndexBuffer,c.boundsSegments);else {const{tileBoundsBuffer:i,tileBoundsIndexBuffer:r,tileBoundsSegments:s}=t.getTileBoundsBuffers(g);h.draw(a,l.TRIANGLES,n,x,u,e.CullFaceMode.disabled,M,o.id,i,r,s);}}t.resetStencilClippingMasks();},background:function(t,i,o,r){const n=o.paint.get("background-color"),s=o.paint.get("background-opacity");if(0===s)return;const a=t.context,l=a.gl,c=t.transform,h=c.tileSize,u=o.paint.get("background-pattern");if(t.isPatternMissing(u))return;const _=!u&&1===n.a&&1===s&&t.opaquePassEnabledForLayer()?"opaque":"translucent";if(t.renderPass!==_)return;const d=e.StencilMode.disabled,p=t.depthModeForSublayer(0,"opaque"===_?e.DepthMode.ReadWrite:e.DepthMode.ReadOnly),m=t.colorModeForRenderPass(),f=t.useProgram(u?"backgroundPattern":"background");let g,v=r;v||(g=t.getBackgroundTiles(),v=Object.values(g).map((e=>e.tileID))),u&&(a.activeTexture.set(l.TEXTURE0),t.imageManager.bind(t.context));for(const _ of v){const v=_.toUnwrapped(),x=r?_.projMatrix:t.transform.calculateProjMatrix(v);t.prepareDrawTile();const y=i?i.getTile(_):g?g[_.key]:new e.Tile(_,h,c.zoom,t),b=u?no(x,s,t,u,{tileID:_,tileSize:h}):ro(x,s,n);t.prepareDrawProgram(a,f,v);const{tileBoundsBuffer:w,tileBoundsIndexBuffer:T,tileBoundsSegments:E}=t.getTileBoundsBuffers(y);f.draw(a,l.TRIANGLES,p,d,m,e.CullFaceMode.disabled,b,o.id,w,T,E);}},sky:function(t,i,o){const r=t.transform,n="mercator"===r.projection.name||"globe"===r.projection.name?1:e.smoothstep(7,8,r.zoom),s=o.paint.get("sky-opacity")*n;if(0===s)return;const a=t.context,l=o.paint.get("sky-type"),c=new e.DepthMode(a.gl.LEQUAL,e.DepthMode.ReadOnly,[0,1]),h=t.frameCounter/1e3%1;"atmosphere"===l?"offscreen"===t.renderPass?o.needsSkyboxCapture(t)&&(function(t,i,o,r){const n=t.context,s=n.gl;let a=i.skyboxFbo;if(!a){a=i.skyboxFbo=n.createFramebuffer(32,32,!1),i.skyboxGeometry=new Lo(n),i.skyboxTexture=n.gl.createTexture(),s.bindTexture(s.TEXTURE_CUBE_MAP,i.skyboxTexture),s.texParameteri(s.TEXTURE_CUBE_MAP,s.TEXTURE_WRAP_S,s.CLAMP_TO_EDGE),s.texParameteri(s.TEXTURE_CUBE_MAP,s.TEXTURE_WRAP_T,s.CLAMP_TO_EDGE),s.texParameteri(s.TEXTURE_CUBE_MAP,s.TEXTURE_MIN_FILTER,s.LINEAR),s.texParameteri(s.TEXTURE_CUBE_MAP,s.TEXTURE_MAG_FILTER,s.LINEAR);for(let e=0;e<6;++e)s.texImage2D(s.TEXTURE_CUBE_MAP_POSITIVE_X+e,0,s.RGBA,32,32,0,s.RGBA,s.UNSIGNED_BYTE,null);}n.bindFramebuffer.set(a.framebuffer),n.viewport.set([0,0,32,32]);const l=i.getCenter(t,!0),c=t.useProgram("skyboxCapture"),h=new Float64Array(16);e.identity(h),e.rotateY(h,h,.5*-Math.PI),Ao(n,i,c,h,l,0),e.identity(h),e.rotateY(h,h,.5*Math.PI),Ao(n,i,c,h,l,1),e.identity(h),e.rotateX(h,h,.5*-Math.PI),Ao(n,i,c,h,l,2),e.identity(h),e.rotateX(h,h,.5*Math.PI),Ao(n,i,c,h,l,3),e.identity(h),Ao(n,i,c,h,l,4),e.identity(h),e.rotateY(h,h,Math.PI),Ao(n,i,c,h,l,5),n.viewport.set([0,0,t.width,t.height]);}(t,o),o.markSkyboxValid(t)):"sky"===t.renderPass&&function(t,i,o,r,n){const s=t.context,a=s.gl,l=t.transform,c=t.useProgram("skybox");s.activeTexture.set(a.TEXTURE0),a.bindTexture(a.TEXTURE_CUBE_MAP,i.skyboxTexture);const h=((e,t,i,o,r)=>({u_matrix:e,u_sun_direction:t,u_cubemap:0,u_opacity:o,u_temporal_offset:r}))(l.skyboxMatrix,i.getCenter(t,!1),0,r,n);t.prepareDrawProgram(s,c),c.draw(s,a.TRIANGLES,o,e.StencilMode.disabled,t.colorModeForRenderPass(),e.CullFaceMode.backCW,h,"skybox",i.skyboxGeometry.vertexBuffer,i.skyboxGeometry.indexBuffer,i.skyboxGeometry.segment);}(t,o,c,s,h):"gradient"===l&&"sky"===t.renderPass&&function(t,i,o,r,n){const s=t.context,a=s.gl,l=t.transform,c=t.useProgram("skyboxGradient");i.skyboxGeometry||(i.skyboxGeometry=new Lo(s)),s.activeTexture.set(a.TEXTURE0);let h=i.colorRampTexture;h||(h=i.colorRampTexture=new e.Texture(s,i.colorRamp,a.RGBA)),h.bind(a.LINEAR,a.CLAMP_TO_EDGE);const u=((t,i,o,r,n)=>({u_matrix:t,u_color_ramp:0,u_center_direction:i,u_radius:e.degToRad(o),u_opacity:r,u_temporal_offset:n}))(l.skyboxMatrix,i.getCenter(t,!1),i.paint.get("sky-gradient-radius"),r,n);t.prepareDrawProgram(s,c),c.draw(s,a.TRIANGLES,o,e.StencilMode.disabled,t.colorModeForRenderPass(),e.CullFaceMode.backCW,u,"skyboxGradient",i.skyboxGeometry.vertexBuffer,i.skyboxGeometry.indexBuffer,i.skyboxGeometry.segment);}(t,o,c,s,h);},debug:function(e,t,i){for(let o=0;oo)return void(this.transform.fogCullDistSq=null);const r=i+.78*(o-i);this.transform.fogCullDistSq=r*r;}get terrain(){return this.transform._terrainEnabled()&&this._terrain&&this._terrain.enabled?this._terrain:null}resize(t,i){if(this.width=t*e.exported.devicePixelRatio,this.height=i*e.exported.devicePixelRatio,this.context.viewport.set([0,0,this.width,this.height]),this.style)for(const e of this.style.order)this.style._layers[e].resize();}setup(){const t=this.context,i=new e.StructArrayLayout2i4;i.emplaceBack(0,0),i.emplaceBack(e.EXTENT,0),i.emplaceBack(0,e.EXTENT),i.emplaceBack(e.EXTENT,e.EXTENT),this.tileExtentBuffer=t.createVertexBuffer(i,e.posAttributes.members),this.tileExtentSegments=e.SegmentVector.simpleSegment(0,0,4,2);const o=new e.StructArrayLayout2i4;o.emplaceBack(0,0),o.emplaceBack(e.EXTENT,0),o.emplaceBack(0,e.EXTENT),o.emplaceBack(e.EXTENT,e.EXTENT),this.debugBuffer=t.createVertexBuffer(o,e.posAttributes.members),this.debugSegments=e.SegmentVector.simpleSegment(0,0,4,5);const r=new e.StructArrayLayout2i4;r.emplaceBack(-1,-1),r.emplaceBack(1,-1),r.emplaceBack(-1,1),r.emplaceBack(1,1),this.viewportBuffer=t.createVertexBuffer(r,e.posAttributes.members),this.viewportSegments=e.SegmentVector.simpleSegment(0,0,4,2);const n=new e.StructArrayLayout4i8;n.emplaceBack(0,0,0,0),n.emplaceBack(e.EXTENT,0,e.EXTENT,0),n.emplaceBack(0,e.EXTENT,0,e.EXTENT),n.emplaceBack(e.EXTENT,e.EXTENT,e.EXTENT,e.EXTENT),this.mercatorBoundsBuffer=t.createVertexBuffer(n,e.boundsAttributes.members),this.mercatorBoundsSegments=e.SegmentVector.simpleSegment(0,0,4,2);const s=new e.StructArrayLayout3ui6;s.emplaceBack(0,1,2),s.emplaceBack(2,1,3),this.quadTriangleIndexBuffer=t.createIndexBuffer(s);const a=new e.StructArrayLayout1ui2;for(const e of [0,1,3,2,0])a.emplaceBack(e);this.debugIndexBuffer=t.createIndexBuffer(a),this.emptyTexture=new e.Texture(t,new e.RGBAImage({width:1,height:1},Uint8Array.of(0,0,0,0)),t.gl.RGBA),this.identityMat=e.create();const l=this.context.gl;this.stencilClearMode=new e.StencilMode({func:l.ALWAYS,mask:0},0,255,l.ZERO,l.ZERO,l.ZERO),this.loadTimeStamps.push(e.window.performance.now()),this.atmosphereBuffer=new Ro(this.context);}getMercatorTileBoundsBuffers(){return {tileBoundsBuffer:this.mercatorBoundsBuffer,tileBoundsIndexBuffer:this.quadTriangleIndexBuffer,tileBoundsSegments:this.mercatorBoundsSegments}}getTileBoundsBuffers(e){return e._makeTileBoundsBuffers(this.context,this.transform.projection),e._tileBoundsBuffer?{tileBoundsBuffer:e._tileBoundsBuffer,tileBoundsIndexBuffer:e._tileBoundsIndexBuffer,tileBoundsSegments:e._tileBoundsSegments}:this.getMercatorTileBoundsBuffers()}clearStencil(){const t=this.context,i=t.gl;this.nextStencilID=1,this.currentStencilSource=void 0,this._tileClippingMaskIDs={},this.useProgram("clippingMask").draw(t,i.TRIANGLES,e.DepthMode.disabled,this.stencilClearMode,e.ColorMode.disabled,e.CullFaceMode.disabled,Ci(this.identityMat),"$clipping",this.viewportBuffer,this.quadTriangleIndexBuffer,this.viewportSegments);}resetStencilClippingMasks(){this.terrain||(this.currentStencilSource=void 0,this._tileClippingMaskIDs={});}_renderTileClippingMasks(t,i,o){if(!i||this.currentStencilSource===i.id||!t.isTileClipped()||!o||0===o.length)return;if(this._tileClippingMaskIDs&&!this.terrain){let e=!1;for(const t of o)if(void 0===this._tileClippingMaskIDs[t.key]){e=!0;break}if(!e)return}this.currentStencilSource=i.id;const r=this.context,n=r.gl;this.nextStencilID+o.length>256&&this.clearStencil(),r.setColorMode(e.ColorMode.disabled),r.setDepthMode(e.DepthMode.disabled);const s=this.useProgram("clippingMask");this._tileClippingMaskIDs={};for(const t of o){const o=i.getTile(t),a=this._tileClippingMaskIDs[t.key]=this.nextStencilID++,{tileBoundsBuffer:l,tileBoundsIndexBuffer:c,tileBoundsSegments:h}=this.getTileBoundsBuffers(o);s.draw(r,n.TRIANGLES,e.DepthMode.disabled,new e.StencilMode({func:n.ALWAYS,mask:0},a,255,n.KEEP,n.KEEP,n.REPLACE),e.ColorMode.disabled,e.CullFaceMode.disabled,Ci(t.projMatrix),"$clipping",l,c,h);}}stencilModeFor3D(){this.currentStencilSource=void 0,this.nextStencilID+1>256&&this.clearStencil();const t=this.nextStencilID++,i=this.context.gl;return new e.StencilMode({func:i.NOTEQUAL,mask:255},t,255,i.KEEP,i.KEEP,i.REPLACE)}stencilModeForClipping(t){if(this.terrain)return this.terrain.stencilModeForRTTOverlap(t);const i=this.context.gl;return new e.StencilMode({func:i.EQUAL,mask:255},this._tileClippingMaskIDs[t.key],0,i.KEEP,i.KEEP,i.REPLACE)}stencilConfigForOverlap(t){const i=this.context.gl,o=t.sort(((e,t)=>t.overscaledZ-e.overscaledZ)),r=o[o.length-1].overscaledZ,n=o[0].overscaledZ-r+1;if(n>1){this.currentStencilSource=void 0,this.nextStencilID+n>256&&this.clearStencil();const t={};for(let o=0;o=0;this.currentLayer--){const e=this.style._layers[o[this.currentLayer]],i=t._getLayerSourceCache(e);if(e.isSky())continue;const r=i?s[i.id]:void 0;this._renderTileClippingMasks(e,i,r),this.renderLayer(this,i,e,r);}if(this.style.fog&&this.transform.projection.supportsFog&&function(t,i){const o=t.context,r=o.gl,n=t.transform,s=new e.DepthMode(r.LEQUAL,e.DepthMode.ReadOnly,[0,1]),a=t.useProgram("globeAtmosphere",null,"globe"===n.projection.name?["PROJECTION_GLOBE_VIEW","FOG"]:["FOG"]),l=e.globeToMercatorTransition(n.zoom),c=i.properties.get("color").toArray01(),h=i.properties.get("high-color").toArray01(),u=i.properties.get("space-color").toArray01PremultipliedAlpha(),_=e.identity$1([]);e.rotateY$1(_,_,-e.degToRad(n._center.lng)),e.rotateX$1(_,_,e.degToRad(n._center.lat)),e.rotateZ$1(_,_,n.angle),e.rotateX$1(_,_,-n._pitch);const d=e.fromQuat(new Float32Array(16),_),p=e.mapValue(i.properties.get("star-intensity"),0,1,0,.25),m=5e-4,f=e.mapValue(i.properties.get("horizon-blend"),0,1,m,.25),g=e.globeUseCustomAntiAliasing(t,o,n)&&f===m?n.worldSize/(2*Math.PI*1.025)-1:n.globeRadius,v=t.frameCounter/1e3%1,x=e.length(n.globeCenterInViewSpace),y=Math.sqrt(Math.pow(x,2)-Math.pow(g,2)),b=Math.acos(y/x),w=((t,i,o,r,n,s,a,l,c,h,u,_,d,p)=>({u_frustum_tl:t,u_frustum_tr:i,u_frustum_br:o,u_frustum_bl:r,u_horizon:n,u_transition:s,u_fadeout_range:a,u_color:l,u_high_color:c,u_space_color:h,u_star_intensity:u,u_star_size:5*e.exported.devicePixelRatio,u_star_density:0,u_temporal_offset:_,u_horizon_angle:d,u_rotation_matrix:p}))(n.frustumCorners.TL,n.frustumCorners.TR,n.frustumCorners.BR,n.frustumCorners.BL,n.frustumCorners.horizon,l,f,c,h,u,p,v,b,d);t.prepareDrawProgram(o,a);const T=t.atmosphereBuffer;T&&a.draw(o,r.TRIANGLES,s,e.StencilMode.disabled,e.ColorMode.alphaBlended,e.CullFaceMode.backCW,w,"skybox",T.vertexBuffer,T.indexBuffer,T.segments);}(this,this.style.fog),this.renderPass="sky",(e.globeToMercatorTransition(this.transform.zoom)>0||"globe"!==this.transform.projection.name)&&this.transform.isHorizonVisible())for(this.currentLayer=0;this.currentLayer{const o=t._getLayerSourceCache(e);o&&!e.isHidden(this.transform.zoom)&&(!i||i.getSource().maxzoom0?t.pop():null}isPatternMissing(e){return null===e||void 0!==e&&!this.imageManager.getPattern(e.toString())}terrainRenderModeElevated(){return this.style&&!!this.style.getTerrain()&&!!this.terrain&&!this.terrain.renderingToTexture}currentGlobalDefines(){const e=this.terrain&&this.terrain.renderingToTexture,t=this.terrain&&0===this.terrain.exaggeration(),i=this.style&&this.style.fog,o=[];return this.terrainRenderModeElevated()&&o.push("TERRAIN"),"globe"===this.transform.projection.name&&o.push("GLOBE"),t&&o.push("ZERO_EXAGGERATION"),i&&!e&&0!==i.getOpacity(this.transform.pitch)&&o.push("FOG"),e&&o.push("RENDER_TO_TEXTURE"),this._showOverdrawInspector&&o.push("OVERDRAW_INSPECTOR"),o}useProgram(e,t,i){this.cache=this.cache||{};const o=i||[],r=this.currentGlobalDefines().concat(o),n=Li.cacheKey(ci[e],e,r,t);return this.cache[n]||(this.cache[n]=new Li(this.context,e,ci[e],t,so[e],r)),this.cache[n]}setCustomLayerDefaults(){this.context.unbindVAO(),this.context.cullFace.setDefault(),this.context.frontFace.setDefault(),this.context.cullFaceSide.setDefault(),this.context.activeTexture.setDefault(),this.context.pixelStoreUnpack.setDefault(),this.context.pixelStoreUnpackPremultiplyAlpha.setDefault(),this.context.pixelStoreUnpackFlipY.setDefault();}setBaseState(){const e=this.context.gl;this.context.cullFace.set(!1),this.context.viewport.set([0,0,this.width,this.height]),this.context.blendEquation.set(e.FUNC_ADD);}initDebugOverlayCanvas(){null==this.debugOverlayCanvas&&(this.debugOverlayCanvas=e.window.document.createElement("canvas"),this.debugOverlayCanvas.width=512,this.debugOverlayCanvas.height=512,this.debugOverlayTexture=new e.Texture(this.context,this.debugOverlayCanvas,this.context.gl.RGBA));}destroy(){this._terrain&&this._terrain.destroy(),this.globeSharedBuffers&&this.globeSharedBuffers.destroy(),this.emptyTexture.destroy(),this.debugOverlayTexture&&this.debugOverlayTexture.destroy(),this.atmosphereBuffer&&this.atmosphereBuffer.destroy();}prepareDrawTile(){this.terrain&&this.terrain.prepareDrawTile();}prepareDrawProgram(t,i,o){if(this.terrain&&this.terrain.renderingToTexture)return;const r=this.style.fog;if(r){const n=r.getOpacity(this.transform.pitch),s=((t,i,o,r,n,s,a,l,c,h,u)=>{const _=t.transform,d=i.properties.get("color").toArray01();d[3]=r;const p=t.frameCounter/1e3%1;return {u_fog_matrix:o?_.calculateFogTileMatrix(o):t.identityMat,u_fog_range:i.getFovAdjustedRange(_._fov),u_fog_color:d,u_fog_horizon_blend:i.properties.get("horizon-blend"),u_fog_temporal_offset:p,u_frustum_tl:n,u_frustum_tr:s,u_frustum_br:a,u_frustum_bl:l,u_globe_pos:c,u_globe_radius:h,u_viewport:u,u_globe_transition:e.globeToMercatorTransition(_.zoom),u_is_globe:+("globe"===_.projection.name)}})(this,r,o,n,this.transform.frustumCorners.TL,this.transform.frustumCorners.TR,this.transform.frustumCorners.BR,this.transform.frustumCorners.BL,this.transform.globeCenterInViewSpace,this.transform.globeRadius,[this.transform.width*e.exported.devicePixelRatio,this.transform.height*e.exported.devicePixelRatio]);i.setFogUniformValues(t,s);}}setTileLoadedFlag(e){this.tileLoaded=e;}saveCanvasCopy(){const e=this.canvasCopy();e&&(this.frameCopies.push(e),this.tileLoaded=!1);}canvasCopy(){const e=this.context.gl,t=e.createTexture();return e.bindTexture(e.TEXTURE_2D,t),e.copyTexImage2D(e.TEXTURE_2D,0,e.RGBA,0,0,e.drawingBufferWidth,e.drawingBufferHeight,0),t}getCanvasCopiesAndTimestamps(){return {canvasCopies:this.frameCopies,timeStamps:this.loadTimeStamps}}averageElevationNeedsEasing(){if(!this.transform._elevation)return !1;const e=this.style&&this.style.fog;return !!e&&0!==e.getOpacity(this.transform.pitch)}getBackgroundTiles(){const t=this._backgroundTiles,i=this._backgroundTiles={},o=this.transform.coveringTiles({tileSize:512});for(const r of o)i[r.key]=t[r.key]||new e.Tile(r,512,this.transform.tileZoom,this);return i}clearBackgroundTiles(){this._backgroundTiles={};}}class ko{constructor(e=0,t=0,i=0,o=0){if(isNaN(e)||e<0||isNaN(t)||t<0||isNaN(i)||i<0||isNaN(o)||o<0)throw new Error("Invalid value for edge-insets, top, bottom, left and right must all be numbers");this.top=e,this.bottom=t,this.left=i,this.right=o;}interpolate(t,i,o){return null!=i.top&&null!=t.top&&(this.top=e.number(t.top,i.top,o)),null!=i.bottom&&null!=t.bottom&&(this.bottom=e.number(t.bottom,i.bottom,o)),null!=i.left&&null!=t.left&&(this.left=e.number(t.left,i.left,o)),null!=i.right&&null!=t.right&&(this.right=e.number(t.right,i.right,o)),this}getCenter(t,i){const o=e.clamp((this.left+t-this.right)/2,0,t),r=e.clamp((this.top+i-this.bottom)/2,0,i);return new e.Point(o,r)}equals(e){return this.top===e.top&&this.bottom===e.bottom&&this.left===e.left&&this.right===e.right}clone(){return new ko(this.top,this.bottom,this.left,this.right)}toJSON(){return {top:this.top,bottom:this.bottom,left:this.left,right:this.right}}}function Fo(t,i){const o=e.getColumn(t,3);e.fromQuat(t,i),e.setColumn(t,3,o);}function Uo(t,i){const o=e.identity$1([]);return e.rotateZ$1(o,o,-i),e.rotateX$1(o,o,-t),o}function No(t,i){const o=[t[0],t[1],0],r=[i[0],i[1],0];if(e.length(o)>=1e-15){const t=e.normalize([],o);e.scale$2(r,t,e.dot(r,t)),i[0]=r[0],i[1]=r[1];}const n=e.cross([],i,t);if(e.len(n)<1e-15)return null;const s=Math.atan2(-n[1],n[0]);return Uo(Math.atan2(Math.sqrt(t[0]*t[0]+t[1]*t[1]),-t[2]),s)}class jo{constructor(e,t){this.position=e,this.orientation=t;}get position(){return this._position}set position(t){if(t){const i=t instanceof e.MercatorCoordinate?t:new e.MercatorCoordinate(t[0],t[1],t[2]);this._renderWorldCopies&&(i.x=e.wrap(i.x,0,1)),this._position=i;}else this._position=null;}lookAtPoint(t,i){if(this.orientation=null,!this.position)return;const o=this.position,r=this._elevation?this._elevation.getAtPointOrZero(e.MercatorCoordinate.fromLngLat(t)):0,n=e.MercatorCoordinate.fromLngLat(t,r),s=[n.x-o.x,n.y-o.y,n.z-o.z];i||(i=[0,0,1]),i[2]=Math.abs(i[2]),this.orientation=No(s,i);}setPitchBearing(t,i){this.orientation=Uo(e.degToRad(t),e.degToRad(-i));}}class Go{constructor(t,i){this._transform=e.identity([]),this.orientation=i,this.position=t;}get mercatorPosition(){const t=this.position;return new e.MercatorCoordinate(t[0],t[1],t[2])}get position(){const t=e.getColumn(this._transform,3);return [t[0],t[1],t[2]]}set position(t){var i;t&&e.setColumn(this._transform,3,[(i=t)[0],i[1],i[2],1]);}get orientation(){return this._orientation}set orientation(t){this._orientation=t||e.identity$1([]),t&&Fo(this._transform,this._orientation);}getPitchBearing(){const e=this.forward(),t=this.right();return {bearing:Math.atan2(-t[1],t[0]),pitch:Math.atan2(Math.sqrt(e[0]*e[0]+e[1]*e[1]),-e[2])}}setPitchBearing(e,t){this._orientation=Uo(e,t),Fo(this._transform,this._orientation);}forward(){const t=e.getColumn(this._transform,2);return [-t[0],-t[1],-t[2]]}up(){const t=e.getColumn(this._transform,1);return [-t[0],-t[1],-t[2]]}right(){const t=e.getColumn(this._transform,0);return [t[0],t[1],t[2]]}getCameraToWorld(t,i){const o=new Float64Array(16);return e.invert(o,this.getWorldToCamera(t,i)),o}getWorldToCameraPosition(t,i,o){const r=this.position;e.scale$2(r,r,-t);const n=new Float64Array(16);return e.fromScaling(n,[o,o,o]),e.translate(n,n,r),n[10]*=i,n}getWorldToCamera(t,i){const o=new Float64Array(16),r=new Float64Array(4),n=this.position;return e.conjugate(r,this._orientation),e.scale$2(n,n,-t),e.fromQuat(o,r),e.translate(o,o,n),o[1]*=-1,o[5]*=-1,o[9]*=-1,o[13]*=-1,o[8]*=i,o[9]*=i,o[10]*=i,o[11]*=i,o}getCameraToClipPerspective(t,i,o,r){const n=new Float64Array(16);return e.perspective(n,t,i,o,r),n}getDistanceToElevation(t,i=!1){const o=0===t?0:e.mercatorZfromAltitude(t,i?e.latFromMercatorY(this.position[1]):this.position[1]),r=this.forward();return (o-this.position[2])/r[2]}clone(){return new Go([...this.position],[...this.orientation])}}function Zo(t,i){const o=Wo(t.projection,t.zoom,t.width,t.height),r=function(t,i,o,r,n){const s=new e.LngLat(o.lng-180*Xo,o.lat),a=new e.LngLat(o.lng+180*Xo,o.lat),l=t.project(s.lng,s.lat),c=t.project(a.lng,a.lat),h=-Math.atan2(c.y-l.y,c.x-l.x),u=e.MercatorCoordinate.fromLngLat(o);u.y=e.clamp(u.y,-1+Xo,1-Xo);const _=u.toLngLat(),d=t.project(_.lng,_.lat),p=e.MercatorCoordinate.fromLngLat(_);p.x+=Xo;const m=p.toLngLat(),f=t.project(m.lng,m.lat),g=$o(f.x-d.x,f.y-d.y,h),v=e.MercatorCoordinate.fromLngLat(_);v.y+=Xo;const x=v.toLngLat(),y=t.project(x.lng,x.lat),b=$o(y.x-d.x,y.y-d.y,h),w=Math.abs(g.x)/Math.abs(b.y),T=e.identity([]);e.rotateZ(T,T,-h*(1-(n?0:r)));const E=e.identity([]);return e.scale(E,E,[1,1-(1-w)*r,1]),E[4]=-b.x/b.y*r,e.rotateZ(E,E,h),e.multiply(E,T,E),E}(t.projection,0,t.center,o,i),n=Vo(t);return e.scale(r,r,[n,n,1]),r}function Vo(t){const i=t.projection,o=Wo(t.projection,t.zoom,t.width,t.height),r=qo(i,t.center),n=qo(i,e.LngLat.convert(i.center));return Math.pow(2,r*o+(1-o)*n)}function Wo(t,i,o,r,n=1/0){const s=t.range;if(!s)return 0;const a=Math.min(n,Math.max(o,r)),l=Math.log(a/1024)/Math.LN2;return e.smoothstep(s[0]+l,s[1]+l,i)}const Xo=1/4e4;function qo(t,i){const o=e.clamp(i.lat,-e.MAX_MERCATOR_LATITUDE,e.MAX_MERCATOR_LATITUDE),r=new e.LngLat(i.lng-180*Xo,o),n=new e.LngLat(i.lng+180*Xo,o),s=t.project(r.lng,o),a=t.project(n.lng,o),l=e.MercatorCoordinate.fromLngLat(r),c=e.MercatorCoordinate.fromLngLat(n),h=a.x-s.x,u=a.y-s.y,_=c.x-l.x,d=c.y-l.y,p=Math.sqrt((_*_+d*d)/(h*h+u*u));return Math.log(p)/Math.LN2}function $o(e,t,i){const o=Math.cos(i),r=Math.sin(i);return {x:e*o-t*r,y:e*r+t*o}}class Ho{constructor(t,i,o,r,n,s,a){this.tileSize=512,this._renderWorldCopies=void 0===n||n,this._minZoom=t||0,this._maxZoom=i||22,this._minPitch=null==o?0:o,this._maxPitch=null==r?60:r,this.setProjection(s),this.setMaxBounds(a),this.width=0,this.height=0,this._center=new e.LngLat(0,0),this.zoom=0,this.angle=0,this._fov=.6435011087932844,this._pitch=0,this._nearZ=0,this._farZ=0,this._unmodified=!0,this._edgeInsets=new ko,this._projMatrixCache={},this._alignedProjMatrixCache={},this._fogTileMatrixCache={},this._distanceTileDataCache={},this._camera=new Go,this._centerAltitude=0,this._averageElevation=0,this.cameraElevationReference="ground",this._pixelsPerMercatorPixel=1,this.globeRadius=0,this.globeCenterInViewSpace=[0,0,0],this._horizonShift=.1;}clone(){const e=new Ho(this._minZoom,this._maxZoom,this._minPitch,this.maxPitch,this._renderWorldCopies,this.getProjection());return e._elevation=this._elevation,e._centerAltitude=this._centerAltitude,e._centerAltitudeValidForExaggeration=this._centerAltitudeValidForExaggeration,e.tileSize=this.tileSize,e.mercatorFromTransition=this.mercatorFromTransition,e.width=this.width,e.height=this.height,e.cameraElevationReference=this.cameraElevationReference,e._center=this._center,e._setZoom(this.zoom),e._seaLevelZoom=this._seaLevelZoom,e.angle=this.angle,e._fov=this._fov,e._pitch=this._pitch,e._nearZ=this._nearZ,e._farZ=this._farZ,e._averageElevation=this._averageElevation,e._unmodified=this._unmodified,e._edgeInsets=this._edgeInsets.clone(),e._camera=this._camera.clone(),e._calcMatrices(),e.freezeTileCoverage=this.freezeTileCoverage,e.frustumCorners=this.frustumCorners,e}get elevation(){return this._elevation}set elevation(e){this._elevation!==e&&(this._elevation=e,this._updateCameraOnTerrain(),this._calcMatrices());}updateElevation(e,t=!1){const i=this._elevation&&this._elevation.exaggeration()!==this._centerAltitudeValidForExaggeration;(null==this._seaLevelZoom||i)&&this._updateCameraOnTerrain(),(e||i)&&this._constrainCamera(t),this._calcMatrices();}getProjection(){return e.pick(this.projection,["name","center","parallels"])}setProjection(i){this.projectionOptions=i||{name:"mercator"};const o=this.projection?this.getProjection():void 0;this.projection=e.getProjection(this.projectionOptions);const r=!t(o,this.getProjection());return r&&this._calcMatrices(),this.mercatorFromTransition=!1,r}setMercatorFromTransition(){const t=this.projection.name;this.mercatorFromTransition=!0,this.projectionOptions={name:"mercator"},this.projection=e.getProjection({name:"mercator"});const i=t!==this.projection.name;return i&&this._calcMatrices(),i}get minZoom(){return this._minZoom}set minZoom(e){this._minZoom!==e&&(this._minZoom=e,this.zoom=Math.max(this.zoom,e));}get maxZoom(){return this._maxZoom}set maxZoom(e){this._maxZoom!==e&&(this._maxZoom=e,this.zoom=Math.min(this.zoom,e));}get minPitch(){return this._minPitch}set minPitch(e){this._minPitch!==e&&(this._minPitch=e,this.pitch=Math.max(this.pitch,e));}get maxPitch(){return this._maxPitch}set maxPitch(e){this._maxPitch!==e&&(this._maxPitch=e,this.pitch=Math.min(this.pitch,e));}get renderWorldCopies(){return this._renderWorldCopies&&!0===this.projection.supportsWorldCopies}set renderWorldCopies(e){void 0===e?e=!0:null===e&&(e=!1),this._renderWorldCopies=e;}get worldSize(){return this.tileSize*this.scale}get cameraWorldSizeForFog(){const e=Math.max(this._camera.getDistanceToElevation(this._averageElevation),Number.EPSILON);return this._worldSizeFromZoom(this._zoomFromMercatorZ(e))}get cameraWorldSize(){const e=Math.max(this._camera.getDistanceToElevation(this._averageElevation,!0),Number.EPSILON);return this._worldSizeFromZoom(this._zoomFromMercatorZ(e))}get pixelsPerMeter(){return this.projection.pixelsPerMeter(this.center.lat,this.worldSize)}get cameraPixelsPerMeter(){return e.mercatorZfromAltitude(this.center.lat,this.cameraWorldSizeForFog)}get centerOffset(){return this.centerPoint._sub(this.size._div(2))}get size(){return new e.Point(this.width,this.height)}get bearing(){return e.wrap(this.rotation,-180,180)}set bearing(e){this.rotation=e;}get rotation(){return -this.angle/Math.PI*180}set rotation(t){const i=-t*Math.PI/180;var o;this.angle!==i&&(this._unmodified=!1,this.angle=i,this._calcMatrices(),this.rotationMatrix=(o=new e.ARRAY_TYPE(4),e.ARRAY_TYPE!=Float32Array&&(o[1]=0,o[2]=0),o[0]=1,o[3]=1,o),function(e,t,i){var o=t[0],r=t[1],n=t[2],s=t[3],a=Math.sin(i),l=Math.cos(i);e[0]=o*l+n*a,e[1]=r*l+s*a,e[2]=o*-a+n*l,e[3]=r*-a+s*l;}(this.rotationMatrix,this.rotationMatrix,this.angle));}get pitch(){return this._pitch/Math.PI*180}set pitch(t){const i=e.clamp(t,this.minPitch,this.maxPitch)/180*Math.PI;this._pitch!==i&&(this._unmodified=!1,this._pitch=i,this._calcMatrices());}get aspect(){return this.width/this.height}get fov(){return this._fov/Math.PI*180}get fovX(){return this._fov}get fovY(){const e=1/Math.tan(.5*this.fovX);return 2*Math.atan(1/this.aspect/e)}set fov(t){t=Math.max(.01,Math.min(60,t)),this._fov!==t&&(this._unmodified=!1,this._fov=e.degToRad(t),this._calcMatrices());}get averageElevation(){return this._averageElevation}set averageElevation(e){this._averageElevation=e,this._calcFogMatrices(),this._distanceTileDataCache={};}get zoom(){return this._zoom}set zoom(e){const t=Math.min(Math.max(e,this.minZoom),this.maxZoom);this._zoom!==t&&(this._unmodified=!1,this._setZoom(t),this._updateSeaLevelZoom(),this._constrain(),this._calcMatrices());}_setZoom(e){this._zoom=e,this.scale=this.zoomScale(e),this.tileZoom=Math.floor(e),this.zoomFraction=e-this.tileZoom;}_updateCameraOnTerrain(){if(!this._elevation||!this._elevation.isDataAvailableAtPoint(this.locationCoordinate(this.center)))return this._centerAltitude=0,this._seaLevelZoom=null,void(this._centerAltitudeValidForExaggeration=void 0);const e=this._elevation;this._centerAltitude=e.getAtPointOrZero(this.locationCoordinate(this.center)),this._centerAltitudeValidForExaggeration=e.exaggeration(),this._updateSeaLevelZoom();}_updateSeaLevelZoom(){void 0!==this._centerAltitudeValidForExaggeration&&(this._seaLevelZoom=this._zoomFromMercatorZ((this.pixelsPerMeter*this._centerAltitude+this.cameraToCenterDistance)/this.worldSize));}sampleAverageElevation(){if(!this._elevation)return 0;const t=this._elevation,i=[[.5,.2],[.3,.5],[.5,.5],[.7,.5],[.5,.8]],o=this.horizonLineFromTop();let r=0,n=0;for(let s=0;st.maxzoom&&(i=t.maxzoom);const s=this.locationCoordinate(this.center),a=this.center.lat,l=1<{const i=1/4e4,o=new e.MercatorCoordinate(t.x+i,t.y,t.z),r=new e.MercatorCoordinate(t.x,t.y+i,t.z),n=t.toLngLat(),s=o.toLngLat(),a=r.toLngLat(),l=this.locationCoordinate(n),c=this.locationCoordinate(s),h=this.locationCoordinate(a),u=Math.hypot(c.x-l.x,c.y-l.y),_=Math.hypot(h.x-l.x,h.y-l.y);return Math.sqrt(u*_)*b/i},T=t=>{const i=x,o=y;return {aabb:e.tileAABB(this,l,0,0,0,t,o,i,this.projection),zoom:0,x:0,y:0,minZ:o,maxZ:i,wrap:t,fullyVisible:!1}},E=[];let C=[];const M=i,I=t.reparseOverscaled?o:i,P=e=>e*e,S=P((m-this._centerAltitude)*p),D=e=>{if(!this._elevation||!e.tileID||!n)return;const t=this._elevation.getMinMaxForTile(e.tileID),i=e.aabb;t?(i.min[2]=t.min,i.max[2]=t.max,i.center[2]=(i.min[2]+i.max[2])/2):(e.shouldSplit=L(e),e.shouldSplit||(i.min[2]=i.max[2]=i.center[2]=this._centerAltitude));},L=t=>{if(t.zoom=.9)return !0}else if(r&&(s=P(t.aabb.distanceZ(f)*p)),this.projection.isReprojectedInTileSpace&&o<=5){const i=Math.pow(2,t.zoom),o=w(new e.MercatorCoordinate((t.x+.5)/i,(t.y+.5)/i));l=o>.85?1:o;}const c=i*i+n*n+s,u=P((1<{if(t*P(.707)0;){const o=E.pop(),s=o.x,a=o.y;let u=o.fullyVisible;if(!u){const e=o.aabb.intersects(_);if(0===e)continue;u=2===e;}if(o.zoom!==M&&L(o))for(let t=0;t<4;t++){const i=(s<<1)+t%2,c=(a<<1)+(t>>1),_={aabb:n?o.aabb.quadrant(t):e.tileAABB(this,l,o.zoom+1,i,c,o.wrap,o.minZ,o.maxZ,this.projection),zoom:o.zoom+1,x:i,y:c,wrap:o.wrap,fullyVisible:u,tileID:void 0,shouldSplit:void 0,minZ:o.minZ,maxZ:o.maxZ};r&&!h&&(_.tileID=new e.OverscaledTileID(o.zoom+1===M?I:o.zoom+1,o.wrap,o.zoom+1,i,c),D(_)),E.push(_);}else {const r=o.zoom===M?I:o.zoom;if(t.minzoom&&t.minzoom>r)continue;const n=c[0]-(.5+s+(o.wrap<{const n=[0,0,0,1],s=[e.EXTENT,e.EXTENT,0,1],a=this.calculateFogTileMatrix(r.tileID.toUnwrapped());e.transformMat4$1(n,n,a),e.transformMat4$1(s,s,a);const l=e.getAABBPointSquareDist(n,s);if(0===l)return !0;let c=!1;const h=this._elevation;if(h&&l>i&&0!==o){const i=this.calculateProjMatrix(r.tileID.toUnwrapped());let n;t.isTerrainDEM||(n=h.getMinMaxForTile(r.tileID)),n||(n={min:y,max:x});const s=e.furthestTileCorner(this.rotation),a=[s[0]*e.EXTENT,s[1]*e.EXTENT,n.max];e.transformMat4(a,a,i),c=(1-a[1])*this.height*.5e.distanceSq-t.distanceSq)).map((e=>e.tileID))}resize(e,t){this.width=e,this.height=t,this.pixelsToGLUnits=[2/e,-2/t],this._constrain(),this._calcMatrices();}get unmodified(){return this._unmodified}zoomScale(e){return Math.pow(2,e)}scaleZoom(e){return Math.log(e)/Math.LN2}project(t){const i=e.clamp(t.lat,-e.MAX_MERCATOR_LATITUDE,e.MAX_MERCATOR_LATITUDE),o=this.projection.project(t.lng,i);return new e.Point(o.x*this.worldSize,o.y*this.worldSize)}unproject(e){return this.projection.unproject(e.x/this.worldSize,e.y/this.worldSize)}get point(){return this.project(this.center)}get pointMerc(){return this.point._div(this.worldSize)}get pixelsPerMeterRatio(){return this.pixelsPerMeter/e.mercatorZfromAltitude(1,this.center.lat)/this.worldSize}setLocationAtPoint(t,i){let o,r;const n=this.centerPoint;if("globe"===this.projection.name){const e=this.worldSize;o=(i.x-n.x)/e,r=(i.y-n.y)/e;}else {const e=this.pointCoordinate(i),t=this.pointCoordinate(n);o=e.x-t.x,r=e.y-t.y;}const s=this.locationCoordinate(t);this.setLocation(new e.MercatorCoordinate(s.x-o,s.y-r));}setLocation(e){this.center=this.coordinateLocation(e),this.projection.wrap&&(this.center=this.center.wrap());}locationPoint(e){return this.projection.locationPoint(this,e)}locationPoint3D(e){return this.projection.locationPoint(this,e,!0)}pointLocation(e){return this.coordinateLocation(this.pointCoordinate(e))}pointLocation3D(e){return this.coordinateLocation(this.pointCoordinate3D(e))}locationCoordinate(t,i){const o=i?e.mercatorZfromAltitude(i,t.lat):void 0,r=this.projection.project(t.lng,t.lat);return new e.MercatorCoordinate(r.x,r.y,o)}coordinateLocation(e){return this.projection.unproject(e.x,e.y)}pointRayIntersection(t,i){const o=null!=i?i:this._centerAltitude,r=[t.x,t.y,0,1],n=[t.x,t.y,1,1];e.transformMat4$1(r,r,this.pixelMatrixInverse),e.transformMat4$1(n,n,this.pixelMatrixInverse);const s=n[3];e.scale$1(r,r,1/r[3]),e.scale$1(n,n,1/s);const a=r[2],l=n[2];return {p0:r,p1:n,t:a===l?0:(o-a)/(l-a)}}screenPointToMercatorRay(t){const i=[t.x,t.y,0,1],o=[t.x,t.y,1,1];return e.transformMat4$1(i,i,this.pixelMatrixInverse),e.transformMat4$1(o,o,this.pixelMatrixInverse),e.scale$1(i,i,1/i[3]),e.scale$1(o,o,1/o[3]),i[2]=e.mercatorZfromAltitude(i[2],this._center.lat)*this.worldSize,o[2]=e.mercatorZfromAltitude(o[2],this._center.lat)*this.worldSize,e.scale$1(i,i,1/this.worldSize),e.scale$1(o,o,1/this.worldSize),new e.Ray([i[0],i[1],i[2]],e.normalize([],e.sub([],o,i)))}rayIntersectionCoordinate(t){const{p0:i,p1:o,t:r}=t,n=e.mercatorZfromAltitude(i[2],this._center.lat),s=e.mercatorZfromAltitude(o[2],this._center.lat);return new e.MercatorCoordinate(e.number(i[0],o[0],r)/this.worldSize,e.number(i[1],o[1],r)/this.worldSize,e.number(n,s,r))}pointCoordinate(e,t=this._centerAltitude){return this.projection.pointCoordinate(this,e.x,e.y,t)}pointCoordinate3D(t){if(!this.elevation)return this.pointCoordinate(t);let i=this.projection.pointCoordinate3D(this,t.x,t.y);if(i)return new e.MercatorCoordinate(i[0],i[1],i[2]);let o=0,r=this.horizonLineFromTop();if(t.y>r)return this.pointCoordinate(t);const n=.02*r,s=t.clone();for(let t=0;t<10&&r-o>n;t++){s.y=e.number(o,r,.66);const t=this.projection.pointCoordinate3D(this,s.x,s.y);t?(r=s.y,i=t):o=s.y;}return i?new e.MercatorCoordinate(i[0],i[1],i[2]):this.pointCoordinate(t)}isPointAboveHorizon(e){return this.projection.isPointAboveHorizon(this,e)}isPointOnSurface(t){if(t.y<0||t.y>this.height||t.x<0||t.x>this.width)return !1;if(this.elevation||this.zoom>=e.GLOBE_ZOOM_THRESHOLD_MAX)return !this.isPointAboveHorizon(t);const i=this.pointCoordinate(t);return i.y>=0&&i.y<=1}_coordinatePoint(t,i){const o=i&&this.elevation?this.elevation.getAtPointOrZero(t,this._centerAltitude):this._centerAltitude,r=[t.x*this.worldSize,t.y*this.worldSize,o+t.toAltitude(),1];return e.transformMat4$1(r,r,this.pixelMatrix),r[3]>0?new e.Point(r[0]/r[3],r[1]/r[3]):new e.Point(Number.MAX_VALUE,Number.MAX_VALUE)}_getBoundsNonRectangular(){const{top:t,left:i}=this._edgeInsets,o=this.height-this._edgeInsets.bottom,r=this.width-this._edgeInsets.right,n=this.pointLocation3D(new e.Point(i,t)),s=this.pointLocation3D(new e.Point(r,t)),a=this.pointLocation3D(new e.Point(r,o)),l=this.pointLocation3D(new e.Point(i,o));let c=Math.min(n.lng,s.lng,a.lng,l.lng),h=Math.max(n.lng,s.lng,a.lng,l.lng),u=Math.min(n.lat,s.lat,a.lat,l.lat),_=Math.max(n.lat,s.lat,a.lat,l.lat);const d=Math.pow(2,-this.zoom)/16*270,p="globe"===this.projection.name?1:4,m=(t,i,o,r,n)=>{const s=(t+o)/2,a=(i+r)/2,l=new e.Point(s,a),{lng:f,lat:g}=this.pointLocation3D(l),v=Math.max(0,c-f,u-g,f-h,g-_);c=Math.min(c,f),h=Math.max(h,f),u=Math.min(u,g),_=Math.max(_,g),(nd)&&(m(t,i,s,a,n+1),m(s,a,o,r,n+1));};if(m(i,t,r,t,1),m(r,t,r,o,1),m(r,o,i,o,1),m(i,o,i,t,1),"globe"===this.projection.name){const[t,i]=e.polesInViewport(this);t?(_=90,h=180,c=-180):i&&(u=-90,h=180,c=-180);}return new e.LngLatBounds(new e.LngLat(c,u),new e.LngLat(h,_))}_getBoundsRectangular(t,i){const{top:o,left:r}=this._edgeInsets,n=this.height-this._edgeInsets.bottom,s=this.width-this._edgeInsets.right,a=new e.Point(r,o),l=new e.Point(s,o),c=new e.Point(s,n),h=new e.Point(r,n);let u=this.pointCoordinate(a,t),_=this.pointCoordinate(l,t);const d=this.pointCoordinate(c,i),p=this.pointCoordinate(h,i),m=(e,t)=>(t.y-e.y)/(t.x-e.x);return u.y>1&&_.y>=0?u=new e.MercatorCoordinate((1-p.y)/m(p,u)+p.x,1):u.y<0&&_.y<=1&&(u=new e.MercatorCoordinate(-p.y/m(p,u)+p.x,0)),_.y>1&&u.y>=0?_=new e.MercatorCoordinate((1-d.y)/m(d,_)+d.x,1):_.y<0&&u.y<=1&&(_=new e.MercatorCoordinate(-d.y/m(d,_)+d.x,0)),(new e.LngLatBounds).extend(this.coordinateLocation(u)).extend(this.coordinateLocation(_)).extend(this.coordinateLocation(p)).extend(this.coordinateLocation(d))}_getBoundsRectangularTerrain(){const e=this.elevation;if(!e.visibleDemTiles.length||e.isUsingMockSource())return this._getBoundsRectangular(0,0);const t=e.visibleDemTiles.reduce(((e,t)=>{if(t.dem){const i=t.dem.tree;e.min=Math.min(e.min,i.minimums[0]),e.max=Math.max(e.max,i.maximums[0]);}return e}),{min:Number.MAX_VALUE,max:0});return this._getBoundsRectangular(t.min*e.exaggeration(),t.max*e.exaggeration())}getBounds(){return "mercator"===this.projection.name||"equirectangular"===this.projection.name?this._terrainEnabled()?this._getBoundsRectangularTerrain():this._getBoundsRectangular(0,0):this._getBoundsNonRectangular()}horizonLineFromTop(e=!0){const t=this.height/2/Math.tan(this._fov/2)/Math.tan(Math.max(this._pitch,.1))+this.centerOffset.y,i=this.height/2-t*(1-this._horizonShift);return e?Math.max(0,i):i}getMaxBounds(){return this.maxBounds}setMaxBounds(t){this.maxBounds=t,this.minLat=-e.MAX_MERCATOR_LATITUDE,this.maxLat=e.MAX_MERCATOR_LATITUDE,this.minLng=-180,this.maxLng=180,t&&(this.minLat=t.getSouth(),this.maxLat=t.getNorth(),this.minLng=t.getWest(),this.maxLng=t.getEast(),this.maxLngu&&(a=u-c),u-ht&&(s=t-l),t-e.5?y-1:y,b>.5?b-1:b,0]),this.alignedProjMatrix=w,a=e.create(),e.scale(a,a,[this.width/2,-this.height/2,1]),e.translate(a,a,[1,-1,0]),this.labelPlaneMatrix=a,a=e.create(),e.scale(a,a,[1,-1,1]),e.translate(a,a,[-1,-1,0]),e.scale(a,a,[2/this.width,2/this.height,1]),this.glCoordMatrix=a,this.pixelMatrix=e.multiply(new Float64Array(16),this.labelPlaneMatrix,this.projMatrix),this._calcFogMatrices(),this._distanceTileDataCache={},a=e.invert(new Float64Array(16),this.pixelMatrix),!a)throw new Error("failed to invert matrix");if(this.pixelMatrixInverse=a,"globe"===this.projection.name||this.mercatorFromTransition){this.globeMatrix=e.calculateGlobeMatrix(this);const t=[this.globeMatrix[12],this.globeMatrix[13],this.globeMatrix[14]];this.globeCenterInViewSpace=e.transformMat4(t,t,n),this.globeRadius=this.worldSize/2/Math.PI-1;}else this.globeMatrix=a;this._projMatrixCache={},this._alignedProjMatrixCache={},this._pixelsToTileUnitsCache={};}_calcFogMatrices(){this._fogTileMatrixCache={};const t=this.cameraWorldSizeForFog,i=this.cameraPixelsPerMeter,o=this._camera.position,r=1/this.height/this._pixelsPerMercatorPixel,n=[t,t,i];e.scale$2(n,n,r),e.scale$2(o,o,-1),e.multiply$2(o,o,n);const s=e.create();e.translate(s,s,o),e.scale(s,s,n),this.mercatorFogMatrix=s,this.worldToFogMatrix=this._camera.getWorldToCameraPosition(t,i,r);}_computeCameraPosition(e){const t=(e=e||this.pixelsPerMeter)/this.pixelsPerMeter,i=this._camera.forward(),o=this.point,r=this._mercatorZfromZoom(this._seaLevelZoom?this._seaLevelZoom:this._zoom)*t-e/this.worldSize*this._centerAltitude;return [o.x/this.worldSize-i[0]*r,o.y/this.worldSize-i[1]*r,e/this.worldSize*this._centerAltitude-i[2]*r]}_updateCameraState(){this.height&&(this._camera.setPitchBearing(this._pitch,this.angle),this._camera.position=this._computeCameraPosition());}_translateCameraConstrained(t){const i=this._maxCameraBoundsDistance()*Math.cos(this._pitch),o=this._camera.position[2],r=t[2];let n=1;this.projection.wrap&&(this.center=this.center.wrap()),r>0&&(n=Math.min((i-o)/r,1)),this._camera.position=e.scaleAndAdd([],this._camera.position,t,n),this._updateStateFromCamera();}_updateStateFromCamera(){const t=this._camera.position,i=this._camera.forward(),{pitch:o,bearing:r}=this._camera.getPitchBearing(),n=e.mercatorZfromAltitude(this._centerAltitude,this.center.lat)*this._pixelsPerMercatorPixel,s=this._mercatorZfromZoom(this._maxZoom)*Math.cos(e.degToRad(this._maxPitch)),a=Math.max((t[2]-n)/Math.cos(o),s),l=this._zoomFromMercatorZ(a);e.scaleAndAdd(t,t,i,a),this._pitch=e.clamp(o,e.degToRad(this.minPitch),e.degToRad(this.maxPitch)),this.angle=e.wrap(r,-Math.PI,Math.PI),this._setZoom(e.clamp(l,this._minZoom,this._maxZoom)),this._updateSeaLevelZoom(),this._center=this.coordinateLocation(new e.MercatorCoordinate(t[0],t[1],t[2])),this._unmodified=!1,this._constrain(),this._calcMatrices();}_worldSizeFromZoom(e){return Math.pow(2,e)*this.tileSize}_mercatorZfromZoom(e){return this.cameraToCenterDistance/this._worldSizeFromZoom(e)}_minimumHeightOverTerrain(){const e=Math.min((null!=this._seaLevelZoom?this._seaLevelZoom:this._zoom)+4,this._maxZoom);return this._mercatorZfromZoom(e)}_zoomFromMercatorZ(e){return this.scaleZoom(this.cameraToCenterDistance/(e*this.tileSize))}zoomFromMercatorZAdjusted(t){let i=0,o=e.GLOBE_ZOOM_THRESHOLD_MAX,r=0,n=1/0;for(;o-i>1e-6&&o>i;){const e=i+.5*(o-i),s=this.tileSize*Math.pow(2,e),a=this.getCameraToCenterDistance(this.projection,e,s),l=this.scaleZoom(a/(t*this.tileSize)),c=Math.abs(e-l);cc||i.y>1)return !0}return !1}isHorizonVisible(){return this.pitch+e.radToDeg(this.fovAboveCenter)>88||this.anyCornerOffEdge(new e.Point(0,0),new e.Point(this.width,this.height))}zoomDeltaToMovement(t,i){const o=e.length(e.sub([],this._camera.position,t)),r=this._zoomFromMercatorZ(o)+i;return o-this._mercatorZfromZoom(r)}getCameraPoint(){if("globe"===this.projection.name){const t=function([t,i,o],r){const n=[t,i,o,1];e.transformMat4$1(n,n,r);const s=n[3]=Math.max(n[3],1e-6);return n[0]/=s,n[1]/=s,n[2]/=s,n}([this.globeMatrix[12],this.globeMatrix[13],this.globeMatrix[14]],this.pixelMatrix);return new e.Point(t[0],t[1])}{const t=Math.tan(this._pitch)*(this.cameraToCenterDistance||1);return this.centerPoint.add(new e.Point(0,t))}}getCameraToCenterDistance(e,t=this.zoom,i=this.worldSize){const o=Wo(e,t,this.width,this.height,1024),r=e.pixelSpaceConversion(this.center.lat,i,o);return .5/Math.tan(.5*this._fov)*this.height*r}getWorldToCameraMatrix(){const t=this._camera.getWorldToCamera(this.worldSize,"meters"===this.projection.zAxisUnit?this.pixelsPerMeter:1);return "globe"===this.projection.name&&e.multiply(t,t,this.globeMatrix),t}}function Yo(e,t){let i=!1,o=null;const r=()=>{o=null,i&&(e(),o=setTimeout(r,t),i=!1);};return ()=>(i=!0,o||r(),o)}class Ko{constructor(t){this._hashName=t&&encodeURIComponent(t),e.bindAll(["_getCurrentHash","_onHashChange","_updateHash"],this),this._updateHash=Yo(this._updateHashUnthrottled.bind(this),300);}addTo(t){return this._map=t,e.window.addEventListener("hashchange",this._onHashChange,!1),t.on("moveend",this._updateHash),this}remove(){return this._map?(this._map.off("moveend",this._updateHash),e.window.removeEventListener("hashchange",this._onHashChange,!1),clearTimeout(this._updateHash()),this._map=void 0,this):this}getHashString(){const t=this._map;if(!t)return "";const i=Jo(t);if(this._hashName){const t=this._hashName;let o=!1;const r=e.window.location.hash.slice(1).split("&").map((e=>{const r=e.split("=")[0];return r===t?(o=!0,`${r}=${i}`):e})).filter((e=>e));return o||r.push(`${t}=${i}`),`#${r.join("&")}`}return `#${i}`}_getCurrentHash(){const t=e.window.location.hash.replace("#","");if(this._hashName){let e;return t.split("&").map((e=>e.split("="))).forEach((t=>{t[0]===this._hashName&&(e=t);})),(e&&e[1]||"").split("/")}return t.split("/")}_onHashChange(){const e=this._map;if(!e)return !1;const t=this._getCurrentHash();if(t.length>=3&&!t.some((e=>isNaN(e)))){const i=e.dragRotate.isEnabled()&&e.touchZoomRotate.isEnabled()?+(t[3]||0):e.getBearing();return e.jumpTo({center:[+t[2],+t[1]],zoom:+t[0],bearing:i,pitch:+(t[4]||0)}),!0}return !1}_updateHashUnthrottled(){const t=e.window.location.href.replace(/(#.+)?$/,this.getHashString());e.window.history.replaceState(e.window.history.state,null,t);}}function Jo(e,t){const i=e.getCenter(),o=Math.round(100*e.getZoom())/100,r=Math.ceil((o*Math.LN2+Math.log(512/360/.5))/Math.LN10),n=Math.pow(10,r),s=Math.round(i.lng*n)/n,a=Math.round(i.lat*n)/n,l=e.getBearing(),c=e.getPitch();let h=t?`/${s}/${a}/${o}`:`${o}/${a}/${s}`;return (l||c)&&(h+="/"+Math.round(10*l)/10),c&&(h+=`/${Math.round(c)}`),h}const Qo={linearity:.3,easing:e.bezier(0,0,.3,1)},er=e.extend({deceleration:2500,maxSpeed:1400},Qo),tr=e.extend({deceleration:20,maxSpeed:1400},Qo),ir=e.extend({deceleration:1e3,maxSpeed:360},Qo),or=e.extend({deceleration:1e3,maxSpeed:90},Qo);class rr{constructor(e){this._map=e,this.clear();}clear(){this._inertiaBuffer=[];}record(t){this._drainInertiaBuffer(),this._inertiaBuffer.push({time:e.exported.now(),settings:t});}_drainInertiaBuffer(){const t=this._inertiaBuffer,i=e.exported.now();for(;t.length>0&&i-t[0].time>160;)t.shift();}_onMoveEnd(t){if(this._map._prefersReducedMotion())return;if(this._drainInertiaBuffer(),this._inertiaBuffer.length<2)return;const i={zoom:0,bearing:0,pitch:0,pan:new e.Point(0,0),pinchAround:void 0,around:void 0};for(const{settings:e}of this._inertiaBuffer)i.zoom+=e.zoomDelta||0,i.bearing+=e.bearingDelta||0,i.pitch+=e.pitchDelta||0,e.panDelta&&i.pan._add(e.panDelta),e.around&&(i.around=e.around),e.pinchAround&&(i.pinchAround=e.pinchAround);const o=this._inertiaBuffer[this._inertiaBuffer.length-1].time-this._inertiaBuffer[0].time,r={};if(i.pan.mag()){const n=sr(i.pan.mag(),o,e.extend({},er,t||{}));r.offset=i.pan.mult(n.amount/i.pan.mag()),r.center=this._map.transform.center,nr(r,n);}if(i.zoom){const e=sr(i.zoom,o,tr);r.zoom=this._map.transform.zoom+e.amount,nr(r,e);}if(i.bearing){const t=sr(i.bearing,o,ir);r.bearing=this._map.transform.bearing+e.clamp(t.amount,-179,179),nr(r,t);}if(i.pitch){const e=sr(i.pitch,o,or);r.pitch=this._map.transform.pitch+e.amount,nr(r,e);}if(r.zoom||r.bearing){const e=void 0===i.pinchAround?i.around:i.pinchAround;r.around=e?this._map.unproject(e):this._map.getCenter();}return this.clear(),r.noMoveStart=!0,r}}function nr(e,t){(!e.duration||e.durationi.unproject(e))),a=n.reduce(((e,t,i,o)=>e.add(t.div(o.length))),new e.Point(0,0));super(t,{points:n,point:a,lngLats:s,lngLat:i.unproject(a),originalEvent:o}),this._defaultPrevented=!1;}}class cr extends e.Event{preventDefault(){this._defaultPrevented=!0;}get defaultPrevented(){return this._defaultPrevented}constructor(e,t,i){super(e,{originalEvent:i}),this._defaultPrevented=!1;}}class hr{constructor(e,t){this._map=e,this._clickTolerance=t.clickTolerance;}reset(){this._mousedownPos=void 0;}wheel(e){return this._firePreventable(new cr(e.type,this._map,e))}mousedown(e,t){return this._mousedownPos=t,this._firePreventable(new ar(e.type,this._map,e))}mouseup(e){this._map.fire(new ar(e.type,this._map,e));}preclick(t){const i=e.extend({},t);i.type="preclick",this._map.fire(new ar(i.type,this._map,i));}click(e,t){this._mousedownPos&&this._mousedownPos.dist(t)>=this._clickTolerance||(this.preclick(e),this._map.fire(new ar(e.type,this._map,e)));}dblclick(e){return this._firePreventable(new ar(e.type,this._map,e))}mouseover(e){this._map.fire(new ar(e.type,this._map,e));}mouseout(e){this._map.fire(new ar(e.type,this._map,e));}touchstart(e){return this._firePreventable(new lr(e.type,this._map,e))}touchmove(e){this._map.fire(new lr(e.type,this._map,e));}touchend(e){this._map.fire(new lr(e.type,this._map,e));}touchcancel(e){this._map.fire(new lr(e.type,this._map,e));}_firePreventable(e){if(this._map.fire(e),e.defaultPrevented)return {}}isEnabled(){return !0}isActive(){return !1}enable(){}disable(){}}class ur{constructor(e){this._map=e;}reset(){this._delayContextMenu=!1,this._contextMenuEvent=void 0;}mousemove(e){this._map.fire(new ar(e.type,this._map,e));}mousedown(){this._delayContextMenu=!0;}mouseup(){this._delayContextMenu=!1,this._contextMenuEvent&&(this._map.fire(new ar("contextmenu",this._map,this._contextMenuEvent)),delete this._contextMenuEvent);}contextmenu(e){this._delayContextMenu?this._contextMenuEvent=e:this._map.fire(new ar(e.type,this._map,e)),this._map.listens("contextmenu")&&e.preventDefault();}isEnabled(){return !0}isActive(){return !1}enable(){}disable(){}}class _r{constructor(e,t){this._map=e,this._el=e.getCanvasContainer(),this._container=e.getContainer(),this._clickTolerance=t.clickTolerance||1;}isEnabled(){return !!this._enabled}isActive(){return !!this._active}enable(){this.isEnabled()||(this._enabled=!0);}disable(){this.isEnabled()&&(this._enabled=!1);}mousedown(e,t){this.isEnabled()&&e.shiftKey&&0===e.button&&(h(),this._startPos=this._lastPos=t,this._active=!0);}mousemoveWindow(e,t){if(!this._active)return;const i=t,o=this._startPos,r=this._lastPos;if(!o||!r||r.equals(i)||!this._box&&i.dist(o){this._box&&(this._box.style.transform=`translate(${s}px,${l}px)`,this._box.style.width=a-s+"px",this._box.style.height=c-l+"px");}));}mouseupWindow(t,i){if(!this._active)return;const o=this._startPos,r=i;if(o&&0===t.button){if(this.reset(),d(),o.x!==r.x||o.y!==r.y)return this._map.fire(new e.Event("boxzoomend",{originalEvent:t})),{cameraAnimation:e=>e.fitScreenCoordinates(o,r,this._map.getBearing(),{linear:!1})};this._fireEvent("boxzoomcancel",t);}}keydown(e){this._active&&27===e.keyCode&&(this.reset(),this._fireEvent("boxzoomcancel",e));}blur(){this.reset();}reset(){this._active=!1,this._container.classList.remove("mapboxgl-crosshair"),this._box&&(this._box.remove(),this._box=null),u(),delete this._startPos,delete this._lastPos;}_fireEvent(t,i){return this._map.fire(new e.Event(t,{originalEvent:i}))}}function dr(e,t){const i={};for(let o=0;othis.numTouches)&&(this.aborted=!0),this.aborted||(0===this.startTime&&(this.startTime=t.timeStamp),o.length===this.numTouches&&(this.centroid=function(t){const i=new e.Point(0,0);for(const e of t)i._add(e);return i.div(t.length)}(i),this.touches=dr(o,i)));}touchmove(e,t,i){if(this.aborted||!this.centroid)return;const o=dr(i,t);for(const e in this.touches){const t=o[e];(!t||t.dist(this.touches[e])>30)&&(this.aborted=!0);}}touchend(e,t,i){if((!this.centroid||e.timeStamp-this.startTime>500)&&(this.aborted=!0),0===i.length){const e=!this.aborted&&this.centroid;if(this.reset(),e)return e}}}class mr{constructor(e){this.singleTap=new pr(e),this.numTaps=e.numTaps,this.reset();}reset(){this.lastTime=1/0,this.lastTap=void 0,this.count=0,this.singleTap.reset();}touchstart(e,t,i){this.singleTap.touchstart(e,t,i);}touchmove(e,t,i){this.singleTap.touchmove(e,t,i);}touchend(e,t,i){const o=this.singleTap.touchend(e,t,i);if(o){const t=e.timeStamp-this.lastTime<500,i=!this.lastTap||this.lastTap.dist(o)<30;if(t&&i||this.reset(),this.count++,this.lastTime=e.timeStamp,this.lastTap=o,this.count===this.numTaps)return this.reset(),o}}}class fr{constructor(){this._zoomIn=new mr({numTouches:1,numTaps:2}),this._zoomOut=new mr({numTouches:2,numTaps:1}),this.reset();}reset(){this._active=!1,this._zoomIn.reset(),this._zoomOut.reset();}touchstart(e,t,i){this._zoomIn.touchstart(e,t,i),this._zoomOut.touchstart(e,t,i);}touchmove(e,t,i){this._zoomIn.touchmove(e,t,i),this._zoomOut.touchmove(e,t,i);}touchend(e,t,i){const o=this._zoomIn.touchend(e,t,i),r=this._zoomOut.touchend(e,t,i);return o?(this._active=!0,e.preventDefault(),setTimeout((()=>this.reset()),0),{cameraAnimation:t=>t.easeTo({duration:300,zoom:t.getZoom()+1,around:t.unproject(o)},{originalEvent:e})}):r?(this._active=!0,e.preventDefault(),setTimeout((()=>this.reset()),0),{cameraAnimation:t=>t.easeTo({duration:300,zoom:t.getZoom()-1,around:t.unproject(r)},{originalEvent:e})}):void 0}touchcancel(){this.reset();}enable(){this._enabled=!0;}disable(){this._enabled=!1,this.reset();}isEnabled(){return this._enabled}isActive(){return this._active}}const gr={0:1,2:2};class vr{constructor(e){this.reset(),this._clickTolerance=e.clickTolerance||1;}blur(){this.reset();}reset(){this._active=!1,this._moved=!1,this._lastPoint=void 0,this._eventButton=void 0;}_correctButton(e,t){return !1}_move(e,t){return {}}mousedown(e,t){if(this._lastPoint)return;const i=f(e);this._correctButton(e,i)&&(this._lastPoint=t,this._eventButton=i);}mousemoveWindow(e,t){const i=this._lastPoint;if(i)if(e.preventDefault(),null!=this._eventButton&&function(e,t){const i=gr[t];return void 0===e.buttons||(e.buttons&i)!==i}(e,this._eventButton))this.reset();else if(this._moved||!(t.dist(i)0&&(this._active=!0);const r=dr(o,i),n=new e.Point(0,0),s=new e.Point(0,0);let a=0;for(const e in r){const t=r[e],i=this._touches[e];i&&(n._add(t),s._add(t.sub(i)),a++,r[e]=t);}if(this._touches=r,a{this._alertContainer.classList.remove("mapboxgl-touch-pan-blocker-show"),this._alertContainer.setAttribute("role","null");}),500);}}class Tr{constructor(){this.reset();}reset(){this._active=!1,this._firstTwoTouches=void 0;}_start(e){}_move(e,t,i){return {}}touchstart(e,t,i){this._firstTwoTouches||i.length<2||(this._firstTwoTouches=[i[0].identifier,i[1].identifier],this._start([t[0],t[1]]));}touchmove(e,t,i){const o=this._firstTwoTouches;if(!o)return;e.preventDefault();const[r,n]=o,s=Er(i,t,r),a=Er(i,t,n);if(!s||!a)return;const l=this._aroundCenter?null:s.add(a).div(2);return this._move([s,a],l,e)}touchend(e,t,i){if(!this._firstTwoTouches)return;const[o,r]=this._firstTwoTouches,n=Er(i,t,o),s=Er(i,t,r);n&&s||(this._active&&d(),this.reset());}touchcancel(){this.reset();}enable(e){this._enabled=!0,this._aroundCenter=!!e&&"center"===e.around;}disable(){this._enabled=!1,this.reset();}isEnabled(){return this._enabled}isActive(){return this._active}}function Er(e,t,i){for(let o=0;oMath.abs(e.x)}class Dr extends Tr{constructor(e){super(),this._map=e;}reset(){super.reset(),this._valid=void 0,this._firstMove=void 0,this._lastPoints=void 0;}_start(e){this._lastPoints=e,Sr(e[0].sub(e[1]))&&(this._valid=!1);}_move(t,i,o){const r=this._lastPoints;if(!r)return;const n=t[0].sub(r[0]),s=t[1].sub(r[1]);return this._map._cooperativeGestures&&!e.isFullscreen()&&o.touches.length<3||(this._valid=this.gestureBeginsVertically(n,s,o.timeStamp),!this._valid)?void 0:(this._lastPoints=t,this._active=!0,{pitchDelta:(n.y+s.y)/2*-.5})}gestureBeginsVertically(e,t,i){if(void 0!==this._valid)return this._valid;const o=e.mag()>=2,r=t.mag()>=2;if(!o&&!r)return;if(!o||!r)return null==this._firstMove&&(this._firstMove=i),i-this._firstMove<100&&void 0;const n=e.y>0==t.y>0;return Sr(e)&&Sr(t)&&n}}const Lr={panStep:100,bearingStep:15,pitchStep:10};class Ar{constructor(){const e=Lr;this._panStep=e.panStep,this._bearingStep=e.bearingStep,this._pitchStep=e.pitchStep,this._rotationDisabled=!1;}blur(){this.reset();}reset(){this._active=!1;}keydown(e){if(e.altKey||e.ctrlKey||e.metaKey)return;let t=0,i=0,o=0,r=0,n=0;switch(e.keyCode){case 61:case 107:case 171:case 187:t=1;break;case 189:case 109:case 173:t=-1;break;case 37:e.shiftKey?i=-1:(e.preventDefault(),r=-1);break;case 39:e.shiftKey?i=1:(e.preventDefault(),r=1);break;case 38:e.shiftKey?o=1:(e.preventDefault(),n=-1);break;case 40:e.shiftKey?o=-1:(e.preventDefault(),n=1);break;default:return}return this._rotationDisabled&&(i=0,o=0),{cameraAnimation:s=>{const a=s.getZoom();s.easeTo({duration:300,easeId:"keyboardHandler",easing:zr,zoom:t?Math.round(a)+t*(e.shiftKey?2:1):a,bearing:s.getBearing()+i*this._bearingStep,pitch:s.getPitch()+o*this._pitchStep,offset:[-r*this._panStep,-n*this._panStep],center:s.getCenter()},{originalEvent:e});}}}enable(){this._enabled=!0;}disable(){this._enabled=!1,this.reset();}isEnabled(){return this._enabled}isActive(){return this._active}disableRotation(){this._rotationDisabled=!0;}enableRotation(){this._rotationDisabled=!1;}}function zr(e){return e*(2-e)}const Rr=4.000244140625;class Or{constructor(t,i){this._map=t,this._el=t.getCanvasContainer(),this._handler=i,this._delta=0,this._defaultZoomRate=.01,this._wheelZoomRate=.0022222222222222222,e.bindAll(["_onTimeout","_addScrollZoomBlocker","_showBlockerAlert"],this);}setZoomRate(e){this._defaultZoomRate=e;}setWheelZoomRate(e){this._wheelZoomRate=e;}isEnabled(){return !!this._enabled}isActive(){return this._active||void 0!==this._finishTimeout}isZooming(){return !!this._zooming}enable(e){this.isEnabled()||(this._enabled=!0,this._aroundCenter=!!e&&"center"===e.around,this._map._cooperativeGestures&&this._addScrollZoomBlocker());}disable(){this.isEnabled()&&(this._enabled=!1,this._map._cooperativeGestures&&(clearTimeout(this._alertTimer),this._alertContainer.remove()));}wheel(t){if(!this.isEnabled())return;if(this._map._cooperativeGestures){if(!(t.ctrlKey||t.metaKey||this.isZooming()||e.isFullscreen()))return void this._showBlockerAlert();"hidden"!==this._alertContainer.style.visibility&&(this._alertContainer.style.visibility="hidden",clearTimeout(this._alertTimer));}let i=t.deltaMode===e.window.WheelEvent.DOM_DELTA_LINE?40*t.deltaY:t.deltaY;const o=e.exported.now(),r=o-(this._lastWheelEventTime||0);this._lastWheelEventTime=o,0!==i&&i%Rr==0?this._type="wheel":0!==i&&Math.abs(i)<4?this._type="trackpad":r>400?(this._type=null,this._lastValue=i,this._timeout=setTimeout(this._onTimeout,40,t)):this._type||(this._type=Math.abs(r*i)<200?"trackpad":"wheel",this._timeout&&(clearTimeout(this._timeout),this._timeout=null,i+=this._lastValue)),t.shiftKey&&i&&(i/=4),this._type&&(this._lastWheelEvent=t,this._delta-=i,this._active||this._start(t)),t.preventDefault();}_onTimeout(e){this._type="wheel",this._delta-=this._lastValue,this._active||this._start(e);}_start(e){if(!this._delta)return;this._frameId&&(this._frameId=null),this._active=!0,this.isZooming()||(this._zooming=!0),this._finishTimeout&&(clearTimeout(this._finishTimeout),delete this._finishTimeout);const t=p(this._el,e);this._aroundPoint=this._aroundCenter?this._map.transform.centerPoint:t,this._aroundCoord=this._map.transform.pointCoordinate3D(this._aroundPoint),this._targetZoom=void 0,this._frameId||(this._frameId=!0,this._handler._triggerRenderFrame());}renderFrame(){if(!this._frameId)return;if(this._frameId=null,!this.isActive())return;const t=this._map.transform;"wheel"===this._type&&t.projection.wrap&&(t._center.lng>=180||t._center.lng<=-180)&&(this._prevEase=null,this._easing=null,this._lastWheelEvent=null,this._lastWheelEventTime=0);const i=()=>t._terrainEnabled()&&this._aroundCoord?t.computeZoomRelativeTo(this._aroundCoord):t.zoom;if(0!==this._delta){const e="wheel"===this._type&&Math.abs(this._delta)>Rr?this._wheelZoomRate:this._defaultZoomRate;let o=2/(1+Math.exp(-Math.abs(this._delta*e)));this._delta<0&&0!==o&&(o=1/o);const r=i(),n=Math.pow(2,r),s="number"==typeof this._targetZoom?t.zoomScale(this._targetZoom):n;this._targetZoom=Math.min(t.maxZoom,Math.max(t.minZoom,t.scaleZoom(s*o))),"wheel"===this._type&&(this._startZoom=r,this._easing=this._smoothOutEasing(200)),this._delta=0;}const o="number"==typeof this._targetZoom?this._targetZoom:i(),r=this._startZoom,n=this._easing;let s,a=!1;if("wheel"===this._type&&r&&n){const t=Math.min((e.exported.now()-this._lastWheelEventTime)/200,1),i=n(t);s=e.number(r,o,i),t<1?this._frameId||(this._frameId=!0):a=!0;}else s=o,a=!0;return this._active=!0,a&&(this._active=!1,this._finishTimeout=setTimeout((()=>{this._zooming=!1,this._handler._triggerRenderFrame(),delete this._targetZoom,delete this._finishTimeout;}),200)),{noInertia:!0,needsRenderFrame:!a,zoomDelta:s-i(),around:this._aroundPoint,aroundCoord:this._aroundCoord,originalEvent:this._lastWheelEvent}}_smoothOutEasing(t){let i=e.ease;if(this._prevEase){const t=this._prevEase,o=(e.exported.now()-t.start)/t.duration,r=t.easing(o+.01)-t.easing(o),n=.27/Math.sqrt(r*r+1e-4)*.01,s=Math.sqrt(.0729-n*n);i=e.bezier(n,s,.25,1);}return this._prevEase={start:e.exported.now(),duration:t,easing:i},i}blur(){this.reset();}reset(){this._active=!1;}_addScrollZoomBlocker(){this._map&&!this._alertContainer&&(this._alertContainer=n("div","mapboxgl-scroll-zoom-blocker",this._map._container),this._alertContainer.textContent=/(Mac|iPad)/i.test(e.window.navigator.userAgent)?this._map._getUIString("ScrollZoomBlocker.CmdMessage"):this._map._getUIString("ScrollZoomBlocker.CtrlMessage"),this._alertContainer.style.fontSize=`${Math.max(10,Math.min(24,Math.floor(.05*this._el.clientWidth)))}px`);}_showBlockerAlert(){this._alertContainer.style.visibility="visible",this._alertContainer.classList.add("mapboxgl-scroll-zoom-blocker-show"),this._alertContainer.setAttribute("role","alert"),clearTimeout(this._alertTimer),this._alertTimer=setTimeout((()=>{this._alertContainer.classList.remove("mapboxgl-scroll-zoom-blocker-show"),this._alertContainer.setAttribute("role","null");}),200);}}class Br{constructor(e,t){this._clickZoom=e,this._tapZoom=t;}enable(){this._clickZoom.enable(),this._tapZoom.enable();}disable(){this._clickZoom.disable(),this._tapZoom.disable();}isEnabled(){return this._clickZoom.isEnabled()&&this._tapZoom.isEnabled()}isActive(){return this._clickZoom.isActive()||this._tapZoom.isActive()}}class kr{constructor(){this.reset();}reset(){this._active=!1;}blur(){this.reset();}dblclick(e,t){return e.preventDefault(),{cameraAnimation:i=>{i.easeTo({duration:300,zoom:i.getZoom()+(e.shiftKey?-1:1),around:i.unproject(t)},{originalEvent:e});}}}enable(){this._enabled=!0;}disable(){this._enabled=!1,this.reset();}isEnabled(){return this._enabled}isActive(){return this._active}}class Fr{constructor(){this._tap=new mr({numTouches:1,numTaps:1}),this.reset();}reset(){this._active=!1,this._swipePoint=void 0,this._swipeTouch=0,this._tapTime=0,this._tap.reset();}touchstart(e,t,i){this._swipePoint||(this._tapTime&&e.timeStamp-this._tapTime>500&&this.reset(),this._tapTime?i.length>0&&(this._swipePoint=t[0],this._swipeTouch=i[0].identifier):this._tap.touchstart(e,t,i));}touchmove(e,t,i){if(this._tapTime){if(this._swipePoint){if(i[0].identifier!==this._swipeTouch)return;const o=t[0],r=o.y-this._swipePoint.y;return this._swipePoint=o,e.preventDefault(),this._active=!0,{zoomDelta:r/128}}}else this._tap.touchmove(e,t,i);}touchend(e,t,i){this._tapTime?this._swipePoint&&0===i.length&&this.reset():this._tap.touchend(e,t,i)&&(this._tapTime=e.timeStamp);}touchcancel(){this.reset();}enable(){this._enabled=!0;}disable(){this._enabled=!1,this.reset();}isEnabled(){return this._enabled}isActive(){return this._active}}class Ur{constructor(e,t,i){this._el=e,this._mousePan=t,this._touchPan=i;}enable(e){this._inertiaOptions=e||{},this._mousePan.enable(),this._touchPan.enable(),this._el.classList.add("mapboxgl-touch-drag-pan");}disable(){this._mousePan.disable(),this._touchPan.disable(),this._el.classList.remove("mapboxgl-touch-drag-pan");}isEnabled(){return this._mousePan.isEnabled()&&this._touchPan.isEnabled()}isActive(){return this._mousePan.isActive()||this._touchPan.isActive()}}class Nr{constructor(e,t,i){this._pitchWithRotate=e.pitchWithRotate,this._mouseRotate=t,this._mousePitch=i;}enable(){this._mouseRotate.enable(),this._pitchWithRotate&&this._mousePitch.enable();}disable(){this._mouseRotate.disable(),this._mousePitch.disable();}isEnabled(){return this._mouseRotate.isEnabled()&&(!this._pitchWithRotate||this._mousePitch.isEnabled())}isActive(){return this._mouseRotate.isActive()||this._mousePitch.isActive()}}class jr{constructor(e,t,i,o){this._el=e,this._touchZoom=t,this._touchRotate=i,this._tapDragZoom=o,this._rotationDisabled=!1,this._enabled=!0;}enable(e){this._touchZoom.enable(e),this._rotationDisabled||this._touchRotate.enable(e),this._tapDragZoom.enable(),this._el.classList.add("mapboxgl-touch-zoom-rotate");}disable(){this._touchZoom.disable(),this._touchRotate.disable(),this._tapDragZoom.disable(),this._el.classList.remove("mapboxgl-touch-zoom-rotate");}isEnabled(){return this._touchZoom.isEnabled()&&(this._rotationDisabled||this._touchRotate.isEnabled())&&this._tapDragZoom.isEnabled()}isActive(){return this._touchZoom.isActive()||this._touchRotate.isActive()||this._tapDragZoom.isActive()}disableRotation(){this._rotationDisabled=!0,this._touchRotate.disable();}enableRotation(){this._rotationDisabled=!1,this._touchZoom.isEnabled()&&this._touchRotate.enable();}}const Gr=e=>e.zoom||e.drag||e.pitch||e.rotate;class Zr extends e.Event{}class Vr{constructor(){this.constants=[1,1,.01],this.radius=0;}setup(t,i){const o=e.sub([],i,t);this.radius=e.length(o[2]<0?e.div([],o,this.constants):[o[0],o[1],0]);}projectRay(t){e.div(t,t,this.constants),e.normalize(t,t),e.mul$1(t,t,this.constants);const i=e.scale$2([],t,this.radius);if(i[2]>0){const t=e.scale$2([],[0,0,1],e.dot(i,[0,0,1])),o=e.scale$2([],e.normalize([],[i[0],i[1],0]),this.radius),r=e.add([],i,e.scale$2([],e.sub([],e.add([],o,t),i),2));i[0]=r[0],i[1]=r[1];}return i}}function Wr(e){return e.panDelta&&e.panDelta.mag()||e.zoomDelta||e.bearingDelta||e.pitchDelta}class Xr{constructor(t,i){this._map=t,this._el=this._map.getCanvasContainer(),this._handlers=[],this._handlersById={},this._changes=[],this._inertia=new rr(t),this._bearingSnap=i.bearingSnap,this._previousActiveHandlers={},this._trackingEllipsoid=new Vr,this._dragOrigin=null,this._eventsInProgress={},this._addDefaultHandlers(i),e.bindAll(["handleEvent","handleWindowEvent"],this);const o=this._el;this._listeners=[[o,"touchstart",{passive:!0}],[o,"touchmove",{passive:!1}],[o,"touchend",void 0],[o,"touchcancel",void 0],[o,"mousedown",void 0],[o,"mousemove",void 0],[o,"mouseup",void 0],[e.window.document,"mousemove",{capture:!0}],[e.window.document,"mouseup",void 0],[o,"mouseover",void 0],[o,"mouseout",void 0],[o,"dblclick",void 0],[o,"click",void 0],[o,"keydown",{capture:!1}],[o,"keyup",void 0],[o,"wheel",{passive:!1}],[o,"contextmenu",void 0],[e.window,"blur",void 0]];for(const[t,i,o]of this._listeners)t.addEventListener(i,t===e.window.document?this.handleWindowEvent:this.handleEvent,o);}destroy(){for(const[t,i,o]of this._listeners)t.removeEventListener(i,t===e.window.document?this.handleWindowEvent:this.handleEvent,o);}_addDefaultHandlers(e){const t=this._map,i=t.getCanvasContainer();this._add("mapEvent",new hr(t,e));const o=t.boxZoom=new _r(t,e);this._add("boxZoom",o);const r=new fr,n=new kr;t.doubleClickZoom=new Br(n,r),this._add("tapZoom",r),this._add("clickZoom",n);const s=new Fr;this._add("tapDragZoom",s);const a=t.touchPitch=new Dr(t);this._add("touchPitch",a);const l=new yr(e),c=new br(e);t.dragRotate=new Nr(e,l,c),this._add("mouseRotate",l,["mousePitch"]),this._add("mousePitch",c,["mouseRotate"]);const h=new xr(e),u=new wr(t,e);t.dragPan=new Ur(i,h,u),this._add("mousePan",h),this._add("touchPan",u,["touchZoom","touchRotate"]);const _=new Pr,d=new Mr;t.touchZoomRotate=new jr(i,d,_,s),this._add("touchRotate",_,["touchPan","touchZoom"]),this._add("touchZoom",d,["touchPan","touchRotate"]),this._add("blockableMapEvent",new ur(t));const p=t.scrollZoom=new Or(t,this);this._add("scrollZoom",p,["mousePan"]);const m=t.keyboard=new Ar;this._add("keyboard",m);for(const i of ["boxZoom","doubleClickZoom","tapDragZoom","touchPitch","dragRotate","dragPan","touchZoomRotate","scrollZoom","keyboard"])e.interactive&&e[i]&&t[i].enable(e[i]);}_add(e,t,i){this._handlers.push({handlerName:e,handler:t,allowed:i}),this._handlersById[e]=t;}stop(e){if(!this._updatingCamera){for(const{handler:e}of this._handlers)e.reset();this._inertia.clear(),this._fireEvents({},{},e),this._changes=[];}}isActive(){for(const{handler:e}of this._handlers)if(e.isActive())return !0;return !1}isZooming(){return !!this._eventsInProgress.zoom||this._map.scrollZoom.isZooming()}isRotating(){return !!this._eventsInProgress.rotate}isMoving(){return !!Gr(this._eventsInProgress)||this.isZooming()}_isDragging(){return !!this._eventsInProgress.drag}_blockedByActive(e,t,i){for(const o in e)if(o!==i&&(!t||t.indexOf(o)<0))return !0;return !1}handleWindowEvent(e){this.handleEvent(e,`${e.type}Window`);}_getMapTouches(e){const t=[];for(const i of e)this._el.contains(i.target)&&t.push(i);return t}handleEvent(e,t){this._updatingCamera=!0;const i="renderFrame"===e.type,o=i?void 0:e,r={needsRenderFrame:!1},n={},s={},a=e.touches?this._getMapTouches(e.touches):void 0,l=a?m(this._el,a):i?void 0:p(this._el,e);for(const{handlerName:i,handler:c,allowed:h}of this._handlers){if(!c.isEnabled())continue;let u;this._blockedByActive(s,h,i)?c.reset():c[t||e.type]&&(u=c[t||e.type](e,l,a),this.mergeHandlerResult(r,n,u,i,o),u&&u.needsRenderFrame&&this._triggerRenderFrame()),(u||c.isActive())&&(s[i]=c);}const c={};for(const e in this._previousActiveHandlers)s[e]||(c[e]=o);this._previousActiveHandlers=s,(Object.keys(c).length||Wr(r))&&(this._changes.push([r,n,c]),this._triggerRenderFrame()),(Object.keys(s).length||Wr(r))&&this._map._stop(!0),this._updatingCamera=!1;const{cameraAnimation:h}=r;h&&(this._inertia.clear(),this._fireEvents({},{},!0),this._changes=[],h(this._map));}mergeHandlerResult(t,i,o,r,n){if(!o)return;e.extend(t,o);const s={handlerName:r,originalEvent:o.originalEvent||n};void 0!==o.zoomDelta&&(i.zoom=s),void 0!==o.panDelta&&(i.drag=s),void 0!==o.pitchDelta&&(i.pitch=s),void 0!==o.bearingDelta&&(i.rotate=s);}_applyChanges(){const t={},i={},o={};for(const[r,n,s]of this._changes)r.panDelta&&(t.panDelta=(t.panDelta||new e.Point(0,0))._add(r.panDelta)),r.zoomDelta&&(t.zoomDelta=(t.zoomDelta||0)+r.zoomDelta),r.bearingDelta&&(t.bearingDelta=(t.bearingDelta||0)+r.bearingDelta),r.pitchDelta&&(t.pitchDelta=(t.pitchDelta||0)+r.pitchDelta),void 0!==r.around&&(t.around=r.around),void 0!==r.aroundCoord&&(t.aroundCoord=r.aroundCoord),void 0!==r.pinchAround&&(t.pinchAround=r.pinchAround),r.noInertia&&(t.noInertia=r.noInertia),e.extend(i,n),e.extend(o,s);this._updateMapTransform(t,i,o),this._changes=[];}_updateMapTransform(t,i,o){const r=this._map,n=r.transform,s=e=>[e.x,e.y,e.z];if((e=>{const t=this._eventsInProgress.drag;return t&&!this._handlersById[t.handlerName].isActive()})()&&!Wr(t)){const e=n.zoom;n.cameraElevationReference="sea",n.recenterOnTerrain(),n.cameraElevationReference="ground",e!==n.zoom&&this._map._update(!0);}if(n._isCameraConstrained&&r._stop(!0),!Wr(t))return void this._fireEvents(i,o,!0);let{panDelta:a,zoomDelta:l,bearingDelta:c,pitchDelta:h,around:u,aroundCoord:_,pinchAround:d}=t;n._isCameraConstrained&&(l>0&&(l=0),n._isCameraConstrained=!1),void 0!==d&&(u=d),(l||(e=>i[e]&&!this._eventsInProgress[e])("drag"))&&u&&(this._dragOrigin=s(n.pointCoordinate3D(u)),this._trackingEllipsoid.setup(n._camera.position,this._dragOrigin)),n.cameraElevationReference="sea",r._stop(!0),u=u||r.transform.centerPoint,c&&(n.bearing+=c),h&&(n.pitch+=h),n._updateCameraState();const p=[0,0,0];if(a)if("mercator"===n.projection.name){const e=this._trackingEllipsoid.projectRay(n.screenPointToMercatorRay(u).dir),t=this._trackingEllipsoid.projectRay(n.screenPointToMercatorRay(u.sub(a)).dir);p[0]=t[0]-e[0],p[1]=t[1]-e[1];}else {const t=n.pointCoordinate(u);if("globe"===n.projection.name){a=a.rotate(-n.angle);const i=n._pixelsPerMercatorPixel/n.worldSize;p[0]=-a.x*e.mercatorScale(e.latFromMercatorY(t.y))*i,p[1]=-a.y*e.mercatorScale(n.center.lat)*i;}else {const e=n.pointCoordinate(u.sub(a));t&&e&&(p[0]=e.x-t.x,p[1]=e.y-t.y);}}const m=n.zoom,f=[0,0,0];if(l){const t=s(_||n.pointCoordinate3D(u)),i={dir:e.normalize([],e.sub([],t,n._camera.position))};if(i.dir[2]<0){const o=n.zoomDeltaToMovement(t,l);e.scale$2(f,i.dir,o);}}const g=e.add(p,p,f);n._translateCameraConstrained(g),l&&Math.abs(n.zoom-m)>1e-4&&n.recenterOnTerrain(),n.cameraElevationReference="ground",this._map._update(),t.noInertia||this._inertia.record(t),this._fireEvents(i,o,!0);}_fireEvents(t,i,o){const r=Gr(this._eventsInProgress),n=Gr(t),s={};for(const e in t){const{originalEvent:i}=t[e];this._eventsInProgress[e]||(s[`${e}start`]=i),this._eventsInProgress[e]=t[e];}!r&&n&&this._fireEvent("movestart",n.originalEvent);for(const e in s)this._fireEvent(e,s[e]);n&&this._fireEvent("move",n.originalEvent);for(const e in t){const{originalEvent:i}=t[e];this._fireEvent(e,i);}const a={};let l;for(const e in this._eventsInProgress){const{handlerName:t,originalEvent:o}=this._eventsInProgress[e];this._handlersById[t].isActive()||(delete this._eventsInProgress[e],l=i[t]||o,a[`${e}end`]=l);}for(const e in a)this._fireEvent(e,a[e]);const c=Gr(this._eventsInProgress);if(o&&(r||n)&&!c){this._updatingCamera=!0;const t=this._inertia._onMoveEnd(this._map.dragPan._inertiaOptions),i=e=>0!==e&&-this._bearingSnap{this._frameId=void 0,this.handleEvent(new Zr("renderFrame",{timeStamp:e})),this._applyChanges();}))}_triggerRenderFrame(){void 0===this._frameId&&(this._frameId=this._requestFrame());}}const qr="map.setFreeCameraOptions(...) and map.getFreeCameraOptions() are not yet supported for non-mercator projections.";class $r extends e.Evented{constructor(t,i){super(),this._moving=!1,this._zooming=!1,this.transform=t,this._bearingSnap=i.bearingSnap,this._respectPrefersReducedMotion=!1!==i.respectPrefersReducedMotion,e.bindAll(["_renderFrameCallback"],this);}getCenter(){return new e.LngLat(this.transform.center.lng,this.transform.center.lat)}setCenter(e,t){return this.jumpTo({center:e},t)}panBy(t,i,o){return t=e.Point.convert(t).mult(-1),this.panTo(this.transform.center,e.extend({offset:t},i),o)}panTo(t,i,o){return this.easeTo(e.extend({center:t},i),o)}getZoom(){return this.transform.zoom}setZoom(e,t){return this.jumpTo({zoom:e},t),this}zoomTo(t,i,o){return this.easeTo(e.extend({zoom:t},i),o)}zoomIn(e,t){return this.zoomTo(this.getZoom()+1,e,t),this}zoomOut(e,t){return this.zoomTo(this.getZoom()-1,e,t),this}getBearing(){return this.transform.bearing}setBearing(e,t){return this.jumpTo({bearing:e},t),this}getPadding(){return this.transform.padding}setPadding(e,t){return this.jumpTo({padding:e},t),this}rotateTo(t,i,o){return this.easeTo(e.extend({bearing:t},i),o)}resetNorth(t,i){return this.rotateTo(0,e.extend({duration:1e3},t),i),this}resetNorthPitch(t,i){return this.easeTo(e.extend({bearing:0,pitch:0,duration:1e3},t),i),this}snapToNorth(e,t){return Math.abs(this.getBearing())e.aspect?i/(2*Math.tan(.5*e.fovX)*e.aspect):o/(2*Math.tan(.5*e.fovY)*e.aspect)}_cameraForBoundsOnGlobe(t,i,o,r,n,s){const a=t.clone(),l=this._extendCameraOptions(s);a.bearing=r,a.pitch=n;const c=e.LngLat.convert(i),h=e.LngLat.convert(o),u=.5*(c.lat+h.lat),_=.5*(c.lng+h.lng),d=e.latLngToECEF(u,_),p=e.normalize([],d),m=e.normalize([],e.cross([],p,[0,1,0])),f=e.cross([],m,p),g=[m[0],m[1],m[2],0,f[0],f[1],f[2],0,p[0],p[1],p[2],0,0,0,0,1],v=[d,e.latLngToECEF(c.lat,c.lng),e.latLngToECEF(h.lat,c.lng),e.latLngToECEF(h.lat,h.lng),e.latLngToECEF(c.lat,h.lng),e.latLngToECEF(u,c.lng),e.latLngToECEF(u,h.lng),e.latLngToECEF(c.lat,_),e.latLngToECEF(h.lat,_)];let x=e.Aabb.fromPoints(v.map((t=>[e.dot(m,t),e.dot(f,t),e.dot(p,t)])));const y=e.transformMat4([],x.center,g);0===e.squaredLength(y)&&e.set(y,0,0,1),e.normalize(y,y),e.scale$2(y,y,e.GLOBE_RADIUS),a.center=e.ecefToLatLng(y);const b=a.getWorldToCameraMatrix(),w=e.invert(new Float64Array(16),b);x=e.Aabb.applyTransform(x,e.multiply([],b,g)),e.transformMat4(y,y,b);const T=.5*(x.max[2]-x.min[2]),E=this._minimumAABBFrustumDistance(a,x),C=e.scale$2([],[0,0,1],T),M=e.add(C,y,C),I=E+(0===a.pitch?0:e.distance(y,M)),P=a.globeCenterInViewSpace,S=e.sub([],y,[P[0],P[1],P[2]]);e.normalize(S,S),e.scale$2(S,S,I);const D=e.add([],y,S);e.transformMat4(D,D,w);const L=e.earthRadius/e.GLOBE_RADIUS,A=e.length(D),z=e.mercatorZfromAltitude(Math.max(A*L-e.earthRadius,Number.EPSILON),0),R=Math.min(a.zoomFromMercatorZAdjusted(z),l.maxZoom);return R>.5*(e.GLOBE_ZOOM_THRESHOLD_MIN+e.GLOBE_ZOOM_THRESHOLD_MAX)?(a.setProjection({name:"mercator"}),a.zoom=R,this._cameraForBounds(a,i,o,r,n,s)):{center:a.center,zoom:R,bearing:r,pitch:n}}queryTerrainElevation(t,i){const o=this.transform.elevation;return o?(i=e.extend({},{exaggerated:!0},i),o.getAtPoint(e.MercatorCoordinate.fromLngLat(t),null,i.exaggerated)):null}_cameraForBounds(t,i,o,r,n,s){if("globe"===t.projection.name)return this._cameraForBoundsOnGlobe(t,i,o,r,n,s);const a=t.clone(),l=this._extendCameraOptions(s),c=a.padding;a.bearing=r,a.pitch=n;const h=e.LngLat.convert(i),u=e.LngLat.convert(o),_=new e.LngLat(h.lng,u.lat),d=new e.LngLat(u.lng,h.lat),p=a.project(h),m=a.project(u),f=this.queryTerrainElevation(h),g=this.queryTerrainElevation(u),v=this.queryTerrainElevation(_),x=this.queryTerrainElevation(d),y=[[p.x,p.y,Math.min(f||0,g||0,v||0,x||0)],[m.x,m.y,Math.max(f||0,g||0,v||0,x||0)]];let b=e.Aabb.fromPoints(y);const w=a.getWorldToCameraMatrix(),T=e.invert(new Float64Array(16),w);b=e.Aabb.applyTransform(b,w);const E=e.sub([],b.max,b.min),C=c.left||0,M=c.right||0,I=c.bottom||0,P=c.top||0,{left:S,right:D,top:L,bottom:A}=l.padding,z=.5*(C+M),R=.5*(P+I),O=Math.min(a.scaleZoom(a.scale*Math.min((a.width-(C+M+S+D))/E[0],(a.height-(I+P+A+L))/E[1])),l.maxZoom),B=a.scale/a.zoomScale(O);b=new e.Aabb([b.min[0]-(S+z)*B,b.min[1]-(A+R)*B,b.min[2]],[b.max[0]+(D+z)*B,b.max[1]+(L+R)*B,b.max[2]]);const k=.5*E[2],F=this._minimumAABBFrustumDistance(a,b),U=[0,0,1,0];e.transformMat4$1(U,U,w),e.normalize$2(U,U);const N=e.scale$2([],U,F+k),j=e.add([],b.center,N),G=("number"==typeof l.offset.x&&"number"==typeof l.offset.y?new e.Point(l.offset.x,l.offset.y):e.Point.convert(l.offset)).rotate(-e.degToRad(r));b.center[0]-=G.x*B,b.center[1]+=G.y*B,e.transformMat4(b.center,b.center,T),e.transformMat4(j,j,T);const Z=[b.center[0],b.center[1],j[2]*a.pixelsPerMeter];e.scale$2(Z,Z,1/a.worldSize);const V=e.lngFromMercatorX(Z[0]),W=e.latFromMercatorY(Z[1]),X=Math.min(a._zoomFromMercatorZ(Z[2]),l.maxZoom),q=new e.LngLat(V,W);return a.mercatorFromTransition&&X<.5*(e.GLOBE_ZOOM_THRESHOLD_MIN+e.GLOBE_ZOOM_THRESHOLD_MAX)?(a.setProjection({name:"globe"}),a.zoom=X,this._cameraForBounds(a,i,o,r,n,s)):{center:q,zoom:X,bearing:r,pitch:n}}fitBounds(e,t,i){const o=this.cameraForBounds(e,t);return this._fitInternal(o,t,i)}fitScreenCoordinates(t,i,o,r,n){const s=e.Point.convert(t),a=e.Point.convert(i),l=new e.Point(Math.min(s.x,a.x),Math.min(s.y,a.y)),c=new e.Point(Math.max(s.x,a.x),Math.max(s.y,a.y));if("mercator"===this.transform.projection.name&&this.transform.anyCornerOffEdge(s,a))return this;const h=this.transform.pointLocation3D(l),u=this.transform.pointLocation3D(c),_=this.transform.pointLocation3D(new e.Point(l.x,c.y)),d=this.transform.pointLocation3D(new e.Point(c.x,l.y)),p=[Math.min(h.lng,u.lng,_.lng,d.lng),Math.min(h.lat,u.lat,_.lat,d.lat)],m=[Math.max(h.lng,u.lng,_.lng,d.lng),Math.max(h.lat,u.lat,_.lat,d.lat)],f=r&&r.pitch?r.pitch:this.getPitch(),g=this._cameraForBounds(this.transform,p,m,o,f,r);return this._fitInternal(g,r,n)}_fitInternal(t,i,o){return t?(delete(i=e.extend(t,i)).padding,i.linear?this.easeTo(i,o):this.flyTo(i,o)):this}jumpTo(t,i){this.stop();const o=t.preloadOnly?this.transform.clone():this.transform;let r=!1,n=!1,s=!1;return "zoom"in t&&o.zoom!==+t.zoom&&(r=!0,o.zoom=+t.zoom),void 0!==t.center&&(o.center=e.LngLat.convert(t.center)),"bearing"in t&&o.bearing!==+t.bearing&&(n=!0,o.bearing=+t.bearing),"pitch"in t&&o.pitch!==+t.pitch&&(s=!0,o.pitch=+t.pitch),null==t.padding||o.isPaddingEqual(t.padding)||(o.padding=t.padding),t.preloadOnly?(this._preloadTiles(o),this):(this.fire(new e.Event("movestart",i)).fire(new e.Event("move",i)),r&&this.fire(new e.Event("zoomstart",i)).fire(new e.Event("zoom",i)).fire(new e.Event("zoomend",i)),n&&this.fire(new e.Event("rotatestart",i)).fire(new e.Event("rotate",i)).fire(new e.Event("rotateend",i)),s&&this.fire(new e.Event("pitchstart",i)).fire(new e.Event("pitch",i)).fire(new e.Event("pitchend",i)),this.fire(new e.Event("moveend",i)))}getFreeCameraOptions(){return this.transform.projection.supportsFreeCamera||e.warnOnce(qr),this.transform.getFreeCameraOptions()}setFreeCameraOptions(t,i){const o=this.transform;if(!o.projection.supportsFreeCamera)return e.warnOnce(qr),this;this.stop();const r=o.zoom,n=o.pitch,s=o.bearing;o.setFreeCameraOptions(t);const a=r!==o.zoom,l=n!==o.pitch,c=s!==o.bearing;return this.fire(new e.Event("movestart",i)).fire(new e.Event("move",i)),a&&this.fire(new e.Event("zoomstart",i)).fire(new e.Event("zoom",i)).fire(new e.Event("zoomend",i)),c&&this.fire(new e.Event("rotatestart",i)).fire(new e.Event("rotate",i)).fire(new e.Event("rotateend",i)),l&&this.fire(new e.Event("pitchstart",i)).fire(new e.Event("pitch",i)).fire(new e.Event("pitchend",i)),this.fire(new e.Event("moveend",i)),this}easeTo(t,i){this._stop(!1,t.easeId),(!1===(t=e.extend({offset:[0,0],duration:500,easing:e.ease},t)).animate||this._prefersReducedMotion(t))&&(t.duration=0);const o=this.transform,r=this.getZoom(),n=this.getBearing(),s=this.getPitch(),a=this.getPadding(),l="zoom"in t?+t.zoom:r,c="bearing"in t?this._normalizeBearing(t.bearing,n):n,h="pitch"in t?+t.pitch:s,u="padding"in t?t.padding:o.padding,_=e.Point.convert(t.offset);let d,p,m;if("globe"===o.projection.name){const i=e.MercatorCoordinate.fromLngLat(o.center),r=_.rotate(-o.angle);i.x+=r.x/o.worldSize,i.y+=r.y/o.worldSize;const n=i.toLngLat(),s=e.LngLat.convert(t.center||n);this._normalizeCenter(s),d=o.centerPoint.add(r),p=new e.Point(i.x,i.y).mult(o.worldSize),m=new e.Point(e.mercatorXfromLng(s.lng),e.mercatorYfromLat(s.lat)).mult(o.worldSize).sub(p);}else {d=o.centerPoint.add(_);const i=o.pointLocation(d),r=e.LngLat.convert(t.center||i);this._normalizeCenter(r),p=o.project(i),m=o.project(r).sub(p);}const f=o.zoomScale(l-r);let g,v;t.around&&(g=e.LngLat.convert(t.around),v=o.locationPoint(g));const x=this._zooming||l!==r,y=this._rotating||n!==c,b=this._pitching||h!==s,w=!o.isPaddingEqual(u),T=o=>T=>{if(x&&(o.zoom=e.number(r,l,T)),y&&(o.bearing=e.number(n,c,T)),b&&(o.pitch=e.number(s,h,T)),w&&(o.interpolatePadding(a,u,T),d=o.centerPoint.add(_)),g)o.setLocationAtPoint(g,v);else {const e=o.zoomScale(o.zoom-r),t=l>r?Math.min(2,f):Math.max(.5,f),i=Math.pow(t,1-T),n=o.unproject(p.add(m.mult(T*i)).mult(e));o.setLocationAtPoint(o.renderWorldCopies?n.wrap():n,d);}return t.preloadOnly||this._fireMoveEvents(i),o};if(t.preloadOnly){const e=this._emulate(T,t.duration,o);return this._preloadTiles(e),this}const E={moving:this._moving,zooming:this._zooming,rotating:this._rotating,pitching:this._pitching};return this._zooming=x,this._rotating=y,this._pitching=b,this._padding=w,this._easeId=t.easeId,this._prepareEase(i,t.noMoveStart,E),this._ease(T(o),(e=>{o.recenterOnTerrain(),this._afterEase(i,e);}),t),this}_prepareEase(t,i,o={}){this._moving=!0,this.transform.cameraElevationReference="sea",i||o.moving||this.fire(new e.Event("movestart",t)),this._zooming&&!o.zooming&&this.fire(new e.Event("zoomstart",t)),this._rotating&&!o.rotating&&this.fire(new e.Event("rotatestart",t)),this._pitching&&!o.pitching&&this.fire(new e.Event("pitchstart",t));}_fireMoveEvents(t){this.fire(new e.Event("move",t)),this._zooming&&this.fire(new e.Event("zoom",t)),this._rotating&&this.fire(new e.Event("rotate",t)),this._pitching&&this.fire(new e.Event("pitch",t));}_afterEase(t,i){if(this._easeId&&i&&this._easeId===i)return;this._easeId=void 0,this.transform.cameraElevationReference="ground";const o=this._zooming,r=this._rotating,n=this._pitching;this._moving=!1,this._zooming=!1,this._rotating=!1,this._pitching=!1,this._padding=!1,o&&this.fire(new e.Event("zoomend",t)),r&&this.fire(new e.Event("rotateend",t)),n&&this.fire(new e.Event("pitchend",t)),this.fire(new e.Event("moveend",t));}flyTo(t,i){if(this._prefersReducedMotion(t)){const o=e.pick(t,["center","zoom","bearing","pitch","around"]);return this.jumpTo(o,i)}this.stop(),t=e.extend({offset:[0,0],speed:1.2,curve:1.42,easing:e.ease},t);const o=this.transform,r=this.getZoom(),n=this.getBearing(),s=this.getPitch(),a=this.getPadding(),l="zoom"in t?e.clamp(+t.zoom,o.minZoom,o.maxZoom):r,c="bearing"in t?this._normalizeBearing(t.bearing,n):n,h="pitch"in t?+t.pitch:s,u="padding"in t?t.padding:o.padding,_=o.zoomScale(l-r),d=e.Point.convert(t.offset);let p=o.centerPoint.add(d);const m=o.pointLocation(p),f=e.LngLat.convert(t.center||m);this._normalizeCenter(f);const g=o.project(m),v=o.project(f).sub(g);let x=t.curve;const y=Math.max(o.width,o.height),b=y/_,w=v.mag();if("minZoom"in t){const i=e.clamp(Math.min(t.minZoom,r,l),o.minZoom,o.maxZoom),n=y/o.zoomScale(i-r);x=Math.sqrt(n/w*2);}const T=x*x;function E(e){const t=(b*b-y*y+(e?-1:1)*T*T*w*w)/(2*(e?b:y)*T*w);return Math.log(Math.sqrt(t*t+1)-t)}function C(e){return (Math.exp(e)-Math.exp(-e))/2}function M(e){return (Math.exp(e)+Math.exp(-e))/2}const I=E(0);let P=function(e){return M(I)/M(I+x*e)},S=function(e){return y*((M(I)*(C(t=I+x*e)/M(t))-C(I))/T)/w;var t;},D=(E(1)-I)/x;if(Math.abs(w)<1e-6||!isFinite(D)){if(Math.abs(y-b)<1e-6)return this.easeTo(t,i);const e=bt.maxDuration&&(t.duration=0);const L=n!==c,A=h!==s,z=!o.isPaddingEqual(u),R=o=>_=>{const m=_*D,x=1/P(m);o.zoom=1===_?l:r+o.scaleZoom(x),L&&(o.bearing=e.number(n,c,_)),A&&(o.pitch=e.number(s,h,_)),z&&(o.interpolatePadding(a,u,_),p=o.centerPoint.add(d));const y=1===_?f:o.unproject(g.add(v.mult(S(m))).mult(x));return o.setLocationAtPoint(o.renderWorldCopies?y.wrap():y,p),o._updateCameraOnTerrain(),t.preloadOnly||this._fireMoveEvents(i),o};if(t.preloadOnly){const e=this._emulate(R,t.duration,o);return this._preloadTiles(e),this}return this._zooming=!0,this._rotating=L,this._pitching=A,this._padding=z,this._prepareEase(i,!1),this._ease(R(o),(()=>this._afterEase(i)),t),this}isEasing(){return !!this._easeFrameId}stop(){return this._stop()}_stop(e,t){if(this._easeFrameId&&(this._cancelRenderFrame(this._easeFrameId),this._easeFrameId=void 0,this._onEaseFrame=void 0),this._onEaseEnd){const e=this._onEaseEnd;this._onEaseEnd=void 0,e.call(this,t);}if(!e){const e=this.handlers;e&&e.stop(!1);}return this}_ease(t,i,o){!1===o.animate||0===o.duration?(t(1),i()):(this._easeStart=e.exported.now(),this._easeOptions=o,this._onEaseFrame=t,this._onEaseEnd=i,this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback));}_renderFrameCallback(){const t=Math.min((e.exported.now()-this._easeStart)/this._easeOptions.duration,1),i=this._onEaseFrame;i&&i(this._easeOptions.easing(t)),t<1?this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback):this.stop();}_normalizeBearing(t,i){t=e.wrap(t,-180,180);const o=Math.abs(t-i);return Math.abs(t-360-i)180?-360:i<-180?360:0;}_prefersReducedMotion(t){return this._respectPrefersReducedMotion&&e.exported.prefersReducedMotion&&!(t&&t.essential)}_emulate(e,t,i){const o=Math.ceil(15*t/1e3),r=[],n=e(i.clone());for(let e=0;e<=o;e++){const t=n(e/o);r.push(t.clone());}return r}}class Hr{constructor(t={}){this.options=t,e.bindAll(["_toggleAttribution","_updateEditLink","_updateData","_updateCompact"],this);}getDefaultPosition(){return "bottom-right"}onAdd(e){const t=this.options&&this.options.compact;return this._map=e,this._container=n("div","mapboxgl-ctrl mapboxgl-ctrl-attrib"),this._compactButton=n("button","mapboxgl-ctrl-attrib-button",this._container),n("span","mapboxgl-ctrl-icon",this._compactButton).setAttribute("aria-hidden","true"),this._compactButton.type="button",this._compactButton.addEventListener("click",this._toggleAttribution),this._setElementTitle(this._compactButton,"ToggleAttribution"),this._innerContainer=n("div","mapboxgl-ctrl-attrib-inner",this._container),this._innerContainer.setAttribute("role","list"),t&&this._container.classList.add("mapboxgl-compact"),this._updateAttributions(),this._updateEditLink(),this._map.on("styledata",this._updateData),this._map.on("sourcedata",this._updateData),this._map.on("moveend",this._updateEditLink),void 0===t&&(this._map.on("resize",this._updateCompact),this._updateCompact()),this._container}onRemove(){this._container.remove(),this._map.off("styledata",this._updateData),this._map.off("sourcedata",this._updateData),this._map.off("moveend",this._updateEditLink),this._map.off("resize",this._updateCompact),this._map=void 0,this._attribHTML=void 0;}_setElementTitle(e,t){const i=this._map._getUIString(`AttributionControl.${t}`);e.setAttribute("aria-label",i),e.removeAttribute("title"),e.firstElementChild&&e.firstElementChild.setAttribute("title",i);}_toggleAttribution(){this._container.classList.contains("mapboxgl-compact-show")?(this._container.classList.remove("mapboxgl-compact-show"),this._compactButton.setAttribute("aria-expanded","false")):(this._container.classList.add("mapboxgl-compact-show"),this._compactButton.setAttribute("aria-expanded","true"));}_updateEditLink(){let t=this._editLink;t||(t=this._editLink=this._container.querySelector(".mapbox-improve-map"));const i=[{key:"owner",value:this.styleOwner},{key:"id",value:this.styleId},{key:"access_token",value:this._map._requestManager._customAccessToken||e.config.ACCESS_TOKEN}];if(t){const o=i.reduce(((e,t,o)=>(t.value&&(e+=`${t.key}=${t.value}${oe.length-t.length)),e=e.filter(((t,i)=>{for(let o=i+1;o=0)return !1;return !0})),this.options.customAttribution&&(Array.isArray(this.options.customAttribution)?e=[...this.options.customAttribution,...e]:e.unshift(this.options.customAttribution));const i=e.join(" | ");i!==this._attribHTML&&(this._attribHTML=i,e.length?(this._innerContainer.innerHTML=i,this._container.classList.remove("mapboxgl-attrib-empty")):this._container.classList.add("mapboxgl-attrib-empty"),this._editLink=null);}_updateCompact(){this._map.getCanvasContainer().offsetWidth<=640?this._container.classList.add("mapboxgl-compact"):this._container.classList.remove("mapboxgl-compact","mapboxgl-compact-show");}}class Yr{constructor(){e.bindAll(["_updateLogo","_updateCompact"],this);}onAdd(e){this._map=e,this._container=n("div","mapboxgl-ctrl");const t=n("a","mapboxgl-ctrl-logo");return t.target="_blank",t.rel="noopener nofollow",t.href="https://www.mapbox.com/",t.setAttribute("aria-label",this._map._getUIString("LogoControl.Title")),t.setAttribute("rel","noopener nofollow"),this._container.appendChild(t),this._container.style.display="none",this._map.on("sourcedata",this._updateLogo),this._updateLogo(),this._map.on("resize",this._updateCompact),this._updateCompact(),this._container}onRemove(){this._container.remove(),this._map.off("sourcedata",this._updateLogo),this._map.off("resize",this._updateCompact);}getDefaultPosition(){return "bottom-left"}_updateLogo(e){e&&"metadata"!==e.sourceDataType||(this._container.style.display=this._logoRequired()?"block":"none");}_logoRequired(){if(!this._map.style)return !0;const e=this._map.style._sourceCaches;if(0===Object.entries(e).length)return !0;for(const t in e){const i=e[t].getSource();if(i.hasOwnProperty("mapbox_logo")&&!i.mapbox_logo)return !1}return !0}_updateCompact(){const e=this._container.children;if(e.length){const t=e[0];this._map.getCanvasContainer().offsetWidth<250?t.classList.add("mapboxgl-compact"):t.classList.remove("mapboxgl-compact");}}}class Kr{constructor(){this._queue=[],this._id=0,this._cleared=!1,this._currentlyRunning=!1;}add(e){const t=++this._id;return this._queue.push({callback:e,id:t,cancelled:!1}),t}remove(e){const t=this._currentlyRunning,i=t?this._queue.concat(t):this._queue;for(const t of i)if(t.id===e)return void(t.cancelled=!0)}run(e=0){const t=this._currentlyRunning=this._queue;this._queue=[];for(const i of t)if(!i.cancelled&&(i.callback(e),this._cleared))break;this._cleared=!1,this._currentlyRunning=!1;}clear(){this._currentlyRunning&&(this._cleared=!0),this._queue=[];}}function Jr(t,i,o){if(t=new e.LngLat(t.lng,t.lat),i){const r=new e.LngLat(t.lng-360,t.lat),n=new e.LngLat(t.lng+360,t.lat),s=360*Math.ceil(Math.abs(t.lng-o.center.lng)/360),a=o.locationPoint(t).distSqr(i),l=i.x<0||i.y<0||i.x>o.width||i.y>o.height;o.locationPoint(r).distSqr(i)180;){const e=o.locationPoint(t);if(e.x>=0&&e.y>=0&&e.x<=o.width&&e.y<=o.height)break;t.lng>o.center.lng?t.lng-=360:t.lng+=360;}return t}const Qr={center:"translate(-50%,-50%)",top:"translate(-50%,0)","top-left":"translate(0,0)","top-right":"translate(-100%,0)",bottom:"translate(-50%,-100%)","bottom-left":"translate(0,-100%)","bottom-right":"translate(-100%,-100%)",left:"translate(0,-50%)",right:"translate(-100%,-50%)"};class en extends e.Evented{constructor(t,i){if(super(),(t instanceof e.window.HTMLElement||i)&&(t=e.extend({element:t},i)),e.bindAll(["_update","_onMove","_onUp","_addDragHandler","_onMapClick","_onKeyPress","_clearFadeTimer"],this),this._anchor=t&&t.anchor||"center",this._color=t&&t.color||"#3FB1CE",this._scale=t&&t.scale||1,this._draggable=t&&t.draggable||!1,this._clickTolerance=t&&t.clickTolerance||0,this._isDragging=!1,this._state="inactive",this._rotation=t&&t.rotation||0,this._rotationAlignment=t&&t.rotationAlignment||"auto",this._pitchAlignment=t&&t.pitchAlignment&&t.pitchAlignment||"auto",this._updateMoving=()=>this._update(!0),this._occludedOpacity=t&&t.occludedOpacity||.2,t&&t.element)this._element=t.element,this._offset=e.Point.convert(t&&t.offset||[0,0]);else {this._defaultMarker=!0,this._element=n("div");const i=41,o=27,r=s("svg",{display:"block",height:i*this._scale+"px",width:o*this._scale+"px",viewBox:`0 0 ${o} ${i}`},this._element),a=s("radialGradient",{id:"shadowGradient"},s("defs",{},r));s("stop",{offset:"10%","stop-opacity":.4},a),s("stop",{offset:"100%","stop-opacity":.05},a),s("ellipse",{cx:13.5,cy:34.8,rx:10.5,ry:5.25,fill:"url(#shadowGradient)"},r),s("path",{fill:this._color,d:"M27,13.5C27,19.07 20.25,27 14.75,34.5C14.02,35.5 12.98,35.5 12.25,34.5C6.75,27 0,19.22 0,13.5C0,6.04 6.04,0 13.5,0C20.96,0 27,6.04 27,13.5Z"},r),s("path",{opacity:.25,d:"M13.5,0C6.04,0 0,6.04 0,13.5C0,19.22 6.75,27 12.25,34.5C13,35.52 14.02,35.5 14.75,34.5C20.25,27 27,19.07 27,13.5C27,6.04 20.96,0 13.5,0ZM13.5,1C20.42,1 26,6.58 26,13.5C26,15.9 24.5,19.18 22.22,22.74C19.95,26.3 16.71,30.14 13.94,33.91C13.74,34.18 13.61,34.32 13.5,34.44C13.39,34.32 13.26,34.18 13.06,33.91C10.28,30.13 7.41,26.31 5.02,22.77C2.62,19.23 1,15.95 1,13.5C1,6.58 6.58,1 13.5,1Z"},r),s("circle",{fill:"white",cx:13.5,cy:13.5,r:5.5},r),this._offset=e.Point.convert(t&&t.offset||[0,-14]);}this._element.hasAttribute("aria-label")||this._element.setAttribute("aria-label","Map marker"),this._element.classList.add("mapboxgl-marker"),this._element.addEventListener("dragstart",(e=>{e.preventDefault();})),this._element.addEventListener("mousedown",(e=>{e.preventDefault();}));const o=this._element.classList;for(const e in Qr)o.remove(`mapboxgl-marker-anchor-${e}`);o.add(`mapboxgl-marker-anchor-${this._anchor}`),this._popup=null;}addTo(e){return e===this._map||(this.remove(),this._map=e,e.getCanvasContainer().appendChild(this._element),e.on("move",this._updateMoving),e.on("moveend",this._update),e.on("remove",this._clearFadeTimer),e._addMarker(this),this.setDraggable(this._draggable),this._update(),e.on("click",this._onMapClick)),this}remove(){const e=this._map;return e&&(e.off("click",this._onMapClick),e.off("move",this._updateMoving),e.off("moveend",this._update),e.off("mousedown",this._addDragHandler),e.off("touchstart",this._addDragHandler),e.off("mouseup",this._onUp),e.off("touchend",this._onUp),e.off("mousemove",this._onMove),e.off("touchmove",this._onMove),e.off("remove",this._clearFadeTimer),e._removeMarker(this),this._map=void 0),this._clearFadeTimer(),this._element.remove(),this._popup&&this._popup.remove(),this}getLngLat(){return this._lngLat}setLngLat(t){return this._lngLat=e.LngLat.convert(t),this._pos=null,this._popup&&this._popup.setLngLat(this._lngLat),this._update(!0),this}getElement(){return this._element}setPopup(e){if(this._popup&&(this._popup.remove(),this._popup=null,this._element.removeAttribute("role"),this._element.removeEventListener("keypress",this._onKeyPress),this._originalTabIndex||this._element.removeAttribute("tabindex")),e){if(!("offset"in e.options)){const t=38.1,i=13.5,o=Math.sqrt(Math.pow(i,2)/2);e.options.offset=this._defaultMarker?{top:[0,0],"top-left":[0,0],"top-right":[0,0],bottom:[0,-t],"bottom-left":[o,-1*(t-i+o)],"bottom-right":[-o,-1*(t-i+o)],left:[i,-1*(t-i)],right:[-i,-1*(t-i)]}:this._offset;}this._popup=e,e._marker=this,this._lngLat&&this._popup.setLngLat(this._lngLat),this._element.setAttribute("role","button"),this._originalTabIndex=this._element.getAttribute("tabindex"),this._originalTabIndex||this._element.setAttribute("tabindex","0"),this._element.addEventListener("keypress",this._onKeyPress),this._element.setAttribute("aria-expanded","false");}return this}_onKeyPress(e){const t=e.code,i=e.charCode||e.keyCode;"Space"!==t&&"Enter"!==t&&32!==i&&13!==i||this.togglePopup();}_onMapClick(e){const t=e.originalEvent.target,i=this._element;this._popup&&(t===i||i.contains(t))&&this.togglePopup();}getPopup(){return this._popup}togglePopup(){const e=this._popup;return e?(e.isOpen()?(e.remove(),this._element.setAttribute("aria-expanded","false")):this._map&&(e.addTo(this._map),this._element.setAttribute("aria-expanded","true")),this):this}_behindTerrain(){const e=this._map,t=this._pos;if(!e||!t)return !1;const i=e.unproject(t),o=e.getFreeCameraOptions();if(!o.position)return !1;const r=o.position.toLngLat();return r.distanceTo(i)<.9*r.distanceTo(this._lngLat)}_evaluateOpacity(){const t=this._map;if(!t)return;const i=this._pos;if(!i||i.x<0||i.x>t.transform.width||i.y<0||i.y>t.transform.height)return void this._clearFadeTimer();const o=t.unproject(i);let r;t._showingGlobe()&&e.isLngLatBehindGlobe(t.transform,this._lngLat)?r=0:(r=1-t._queryFogOpacity(o),t.transform._terrainEnabled()&&t.getTerrain()&&this._behindTerrain()&&(r*=this._occludedOpacity)),this._element.style.opacity=`${r}`,this._element.style.pointerEvents=r>0?"auto":"none",this._popup&&this._popup._setOpacity(r),this._fadeTimer=null;}_clearFadeTimer(){this._fadeTimer&&(clearTimeout(this._fadeTimer),this._fadeTimer=null);}_updateDOM(){const e=this._pos;if(!e||!this._map)return;const t=this._offset.mult(this._scale);this._element.style.transform=`\n translate(${e.x}px,${e.y}px)\n ${Qr[this._anchor]}\n ${this._calculateXYTransform()} ${this._calculateZTransform()}\n translate(${t.x}px,${t.y}px)\n `;}_calculateXYTransform(){const t=this._pos,i=this._map,o=this.getPitchAlignment();if(!i||!t||"map"!==o)return "";if(!i._showingGlobe()){const e=i.getPitch();return e?`rotateX(${e}deg)`:""}const r=e.radToDeg(e.globeTiltAtLngLat(i.transform,this._lngLat)),n=t.sub(e.globeCenterToScreenPoint(i.transform)),s=Math.abs(n.x)+Math.abs(n.y);if(0===s)return "";const a=r/s;return `rotateX(${-n.y*a}deg) rotateY(${n.x*a}deg)`}_calculateZTransform(){const t=this._pos,i=this._map;if(!i||!t)return "";let o=0;const r=this.getRotationAlignment();if("map"===r)if(i._showingGlobe()){const t=i.project(new e.LngLat(this._lngLat.lng,this._lngLat.lat+.001)),r=i.project(new e.LngLat(this._lngLat.lng,this._lngLat.lat-.001)).sub(t);o=e.radToDeg(Math.atan2(r.y,r.x))-90;}else o=-i.getBearing();else if("horizon"===r){const r=e.smoothstep(4,6,i.getZoom()),n=e.globeCenterToScreenPoint(i.transform);n.y+=r*i.transform.height;const s=t.sub(n),a=e.radToDeg(Math.atan2(s.y,s.x));o=(a>90?a-270:a+90)*(1-r);}return o+=this._rotation,o?`rotateZ(${o}deg)`:""}_update(t){e.window.cancelAnimationFrame(this._updateFrameId);const i=this._map;i&&(i.transform.renderWorldCopies&&(this._lngLat=Jr(this._lngLat,this._pos,i.transform)),this._pos=i.project(this._lngLat),!0===t?this._updateFrameId=e.window.requestAnimationFrame((()=>{this._element&&this._pos&&this._anchor&&(this._pos=this._pos.round(),this._updateDOM());})):this._pos=this._pos.round(),i._requestDomTask((()=>{this._map&&(this._element&&this._pos&&this._anchor&&this._updateDOM(),(i._showingGlobe()||i.getTerrain()||i.getFog())&&!this._fadeTimer&&(this._fadeTimer=setTimeout(this._evaluateOpacity.bind(this),60)));})));}getOffset(){return this._offset}setOffset(t){return this._offset=e.Point.convert(t),this._update(),this}_onMove(t){const i=this._map;if(!i)return;const o=this._pointerdownPos,r=this._positionDelta;if(o&&r){if(!this._isDragging){const e=this._clickTolerance||i._clickTolerance;if(t.point.dist(o)=this._endTime)return this._end;const i=e.easeCubicInOut((t-this._startTime)/(this._endTime-this._startTime));return this._start*(1-i)+this._end*i}isEasing(e){return e>=this._startTime&&e<=this._endTime}jumpTo(e){this._startTime=-1/0,this._endTime=-1/0,this._start=e,this._end=e;}easeTo(e,t,i){this._start=this.getValue(t),this._end=e,this._startTime=t,this._endTime=t+i;}}const sn={"AttributionControl.ToggleAttribution":"Toggle attribution","AttributionControl.MapFeedback":"Map feedback","FullscreenControl.Enter":"Enter fullscreen","FullscreenControl.Exit":"Exit fullscreen","GeolocateControl.FindMyLocation":"Find my location","GeolocateControl.LocationNotAvailable":"Location not available","LogoControl.Title":"Mapbox logo","Map.Title":"Map","NavigationControl.ResetBearing":"Reset bearing to north","NavigationControl.ZoomIn":"Zoom in","NavigationControl.ZoomOut":"Zoom out","ScrollZoomBlocker.CtrlMessage":"Use ctrl + scroll to zoom the map","ScrollZoomBlocker.CmdMessage":"Use ⌘ + scroll to zoom the map","TouchPanBlocker.Message":"Use two fingers to move the map"},an={center:[0,0],zoom:0,bearing:0,pitch:0,minZoom:-2,maxZoom:22,minPitch:0,maxPitch:85,interactive:!0,scrollZoom:!0,boxZoom:!0,dragRotate:!0,dragPan:!0,keyboard:!0,doubleClickZoom:!0,touchZoomRotate:!0,touchPitch:!0,cooperativeGestures:!1,performanceMetricsCollection:!0,bearingSnap:7,clickTolerance:3,pitchWithRotate:!0,hash:!1,attributionControl:!0,failIfMajorPerformanceCaveat:!1,preserveDrawingBuffer:!1,trackResize:!0,optimizeForTerrain:!0,renderWorldCopies:!0,refreshExpiredTiles:!0,minTileCacheSize:null,maxTileCacheSize:null,localIdeographFontFamily:"sans-serif",localFontFamily:null,transformRequest:null,accessToken:null,fadeDuration:300,respectPrefersReducedMotion:!0,crossSourceCollisions:!0},ln={showCompass:!0,showZoom:!0,visualizePitch:!1};class cn{constructor(t,i,o=!1){this._clickTolerance=10,this.element=i,this.mouseRotate=new yr({clickTolerance:t.dragRotate._mouseRotate._clickTolerance}),this.map=t,o&&(this.mousePitch=new br({clickTolerance:t.dragRotate._mousePitch._clickTolerance})),e.bindAll(["mousedown","mousemove","mouseup","touchstart","touchmove","touchend","reset"],this),i.addEventListener("mousedown",this.mousedown),i.addEventListener("touchstart",this.touchstart,{passive:!1}),i.addEventListener("touchmove",this.touchmove),i.addEventListener("touchend",this.touchend),i.addEventListener("touchcancel",this.reset);}down(e,t){this.mouseRotate.mousedown(e,t),this.mousePitch&&this.mousePitch.mousedown(e,t),h();}move(e,t){const i=this.map,o=this.mouseRotate.mousemoveWindow(e,t),r=o&&o.bearingDelta;if(r&&i.setBearing(i.getBearing()+r),this.mousePitch){const o=this.mousePitch.mousemoveWindow(e,t),r=o&&o.pitchDelta;r&&i.setPitch(i.getPitch()+r);}}off(){const e=this.element;e.removeEventListener("mousedown",this.mousedown),e.removeEventListener("touchstart",this.touchstart,{passive:!1}),e.removeEventListener("touchmove",this.touchmove),e.removeEventListener("touchend",this.touchend),e.removeEventListener("touchcancel",this.reset),this.offTemp();}offTemp(){u(),e.window.removeEventListener("mousemove",this.mousemove),e.window.removeEventListener("mouseup",this.mouseup);}mousedown(t){this.down(e.extend({},t,{ctrlKey:!0,preventDefault:()=>t.preventDefault()}),p(this.element,t)),e.window.addEventListener("mousemove",this.mousemove),e.window.addEventListener("mouseup",this.mouseup);}mousemove(e){this.move(e,p(this.element,e));}mouseup(e){this.mouseRotate.mouseupWindow(e),this.mousePitch&&this.mousePitch.mouseupWindow(e),this.offTemp();}touchstart(e){1!==e.targetTouches.length?this.reset():(this._startPos=this._lastPos=m(this.element,e.targetTouches)[0],this.down({type:"mousedown",button:0,ctrlKey:!0,preventDefault:()=>e.preventDefault()},this._startPos));}touchmove(e){1!==e.targetTouches.length?this.reset():(this._lastPos=m(this.element,e.targetTouches)[0],this.move({preventDefault:()=>e.preventDefault()},this._lastPos));}touchend(e){0===e.targetTouches.length&&this._startPos&&this._lastPos&&this._startPos.dist(this._lastPos)t.maxZoom)throw new Error("maxZoom must be greater than or equal to minZoom");if(null!=t.minPitch&&null!=t.maxPitch&&t.minPitch>t.maxPitch)throw new Error("maxPitch must be greater than or equal to minPitch");if(null!=t.minPitch&&t.minPitch<0)throw new Error("minPitch must be greater than or equal to 0");if(null!=t.maxPitch&&t.maxPitch>85)throw new Error("maxPitch must be less than or equal to 85");if(t.antialias&&e.isSafariWithAntialiasingBug(e.window)&&(t.antialias=!1,e.warnOnce("Antialiasing is disabled for this WebGL context to avoid browser bug: https://github.com/mapbox/mapbox-gl-js/issues/11609")),super(new Ho(t.minZoom,t.maxZoom,t.minPitch,t.maxPitch,t.renderWorldCopies),t),this._interactive=t.interactive,this._minTileCacheSize=t.minTileCacheSize,this._maxTileCacheSize=t.maxTileCacheSize,this._failIfMajorPerformanceCaveat=t.failIfMajorPerformanceCaveat,this._preserveDrawingBuffer=t.preserveDrawingBuffer,this._antialias=t.antialias,this._useWebGL2=t.useWebGL2,this._trackResize=t.trackResize,this._bearingSnap=t.bearingSnap,this._refreshExpiredTiles=t.refreshExpiredTiles,this._fadeDuration=t.fadeDuration,this._isInitialLoad=!0,this._crossSourceCollisions=t.crossSourceCollisions,this._collectResourceTiming=t.collectResourceTiming,this._optimizeForTerrain=t.optimizeForTerrain,this._language=this._parseLanguage(t.language),this._worldview=t.worldview,this._renderTaskQueue=new Kr,this._domRenderTaskQueue=new Kr,this._controls=[],this._markers=[],this._popups=[],this._mapId=e.uniqueId(),this._locale=e.extend({},sn,t.locale),this._clickTolerance=t.clickTolerance,this._cooperativeGestures=t.cooperativeGestures,this._performanceMetricsCollection=t.performanceMetricsCollection,this._containerWidth=0,this._containerHeight=0,this._averageElevationLastSampledAt=-1/0,this._averageElevationExaggeration=0,this._averageElevation=new nn(0),this._interactionRange=[1/0,-1/0],this._visibilityHidden=0,this._useExplicitProjection=!1,this._requestManager=new e.RequestManager(t.transformRequest,t.accessToken,t.testMode),this._silenceAuthErrors=!!t.testMode,"string"==typeof t.container){if(this._container=e.window.document.getElementById(t.container),!this._container)throw new Error(`Container '${t.container}' not found.`)}else {if(!(t.container instanceof e.window.HTMLElement))throw new Error("Invalid type: 'container' must be a String or HTMLElement.");this._container=t.container;}if(this._container.childNodes.length>0&&e.warnOnce("The map container element should be empty, otherwise the map's interactivity will be negatively impacted. If you want to display a message when WebGL is not supported, use the Mapbox GL Supported plugin instead."),t.maxBounds&&this.setMaxBounds(t.maxBounds),e.bindAll(["_onWindowOnline","_onWindowResize","_onVisibilityChange","_onMapScroll","_contextLost","_contextRestored"],this),this._setupContainer(),this._setupPainter(),void 0===this.painter)throw new Error("Failed to initialize WebGL.");this.on("move",(()=>this._update(!1))),this.on("moveend",(()=>this._update(!1))),this.on("zoom",(()=>this._update(!0))),void 0!==e.window&&(e.window.addEventListener("online",this._onWindowOnline,!1),e.window.addEventListener("resize",this._onWindowResize,!1),e.window.addEventListener("orientationchange",this._onWindowResize,!1),e.window.addEventListener("webkitfullscreenchange",this._onWindowResize,!1),e.window.addEventListener("visibilitychange",this._onVisibilityChange,!1)),this.handlers=new Xr(this,t),this._localFontFamily=t.localFontFamily,this._localIdeographFontFamily=t.localIdeographFontFamily,t.style&&this.setStyle(t.style,{localFontFamily:this._localFontFamily,localIdeographFontFamily:this._localIdeographFontFamily}),t.projection&&this.setProjection(t.projection),this._hash=t.hash&&new Ko("string"==typeof t.hash&&t.hash||void 0).addTo(this),this._hash&&this._hash._onHashChange()||(this.jumpTo({center:t.center,zoom:t.zoom,bearing:t.bearing,pitch:t.pitch}),t.bounds&&(this.resize(),this.fitBounds(t.bounds,e.extend({},t.fitBoundsOptions,{duration:0})))),this.resize(),t.attributionControl&&this.addControl(new Hr({customAttribution:t.customAttribution})),this._logoControl=new Yr,this.addControl(this._logoControl,t.logoPosition),this.on("style.load",(()=>{this.transform.unmodified&&this.jumpTo(this.style.stylesheet);})),this.on("data",(t=>{this._update("style"===t.dataType),this.fire(new e.Event(`${t.dataType}data`,t));})),this.on("dataloading",(t=>{this.fire(new e.Event(`${t.dataType}dataloading`,t));}));}_getMapId(){return this._mapId}addControl(t,i){if(void 0===i&&(i=t.getDefaultPosition?t.getDefaultPosition():"top-right"),!t||!t.onAdd)return this.fire(new e.ErrorEvent(new Error("Invalid argument to map.addControl(). Argument must be a control with onAdd and onRemove methods.")));const o=t.onAdd(this);this._controls.push(t);const r=this._controlPositions[i];return -1!==i.indexOf("bottom")?r.insertBefore(o,r.firstChild):r.appendChild(o),this}removeControl(t){if(!t||!t.onRemove)return this.fire(new e.ErrorEvent(new Error("Invalid argument to map.removeControl(). Argument must be a control with onAdd and onRemove methods.")));const i=this._controls.indexOf(t);return i>-1&&this._controls.splice(i,1),t.onRemove(this),this}hasControl(e){return this._controls.indexOf(e)>-1}getContainer(){return this._container}getCanvasContainer(){return this._canvasContainer}getCanvas(){return this._canvas}resize(t){if(this._updateContainerDimensions(),this._containerWidth===this.transform.width&&this._containerHeight===this.transform.height)return this;this._resizeCanvas(this._containerWidth,this._containerHeight),this.transform.resize(this._containerWidth,this._containerHeight),this.painter.resize(Math.ceil(this._containerWidth),Math.ceil(this._containerHeight));const i=!this._moving;return i&&this.fire(new e.Event("movestart",t)).fire(new e.Event("move",t)),this.fire(new e.Event("resize",t)),i&&this.fire(new e.Event("moveend",t)),this}getBounds(){return this.transform.getBounds()}getMaxBounds(){return this.transform.getMaxBounds()||null}setMaxBounds(t){return this.transform.setMaxBounds(e.LngLatBounds.convert(t)),this._update()}setMinZoom(t){if((t=null==t?-2:t)>=-2&&t<=this.transform.maxZoom)return this.transform.minZoom=t,this._update(),this.getZoom()=this.transform.minZoom)return this.transform.maxZoom=t,this._update(),this.getZoom()>t?this.setZoom(t):this.fire(new e.Event("zoomstart")).fire(new e.Event("zoom")).fire(new e.Event("zoomend")),this;throw new Error("maxZoom must be greater than the current minZoom")}getMaxZoom(){return this.transform.maxZoom}setMinPitch(t){if((t=null==t?0:t)<0)throw new Error("minPitch must be greater than or equal to 0");if(t>=0&&t<=this.transform.maxPitch)return this.transform.minPitch=t,this._update(),this.getPitch()85)throw new Error("maxPitch must be less than or equal to 85");if(t>=this.transform.minPitch)return this.transform.maxPitch=t,this._update(),this.getPitch()>t?this.setPitch(t):this.fire(new e.Event("pitchstart")).fire(new e.Event("pitch")).fire(new e.Event("pitchend")),this;throw new Error("maxPitch must be greater than or equal to minPitch")}getMaxPitch(){return this.transform.maxPitch}getRenderWorldCopies(){return this.transform.renderWorldCopies}setRenderWorldCopies(e){return this.transform.renderWorldCopies=e,this.transform.renderWorldCopies||this._forceMarkerAndPopupUpdate(!0),this._update()}getLanguage(){return this._language}_parseLanguage(t){return "auto"===t?e.window.navigator.language:Array.isArray(t)?0===t.length?void 0:t.map((t=>"auto"===t?e.window.navigator.language:t)):t}setLanguage(e){const t=this._parseLanguage(e);if(!this.style||t===this._language)return this;this._language=t,this.style._reloadSources();for(const e of this._controls)e._setLanguage&&e._setLanguage(this._language);return this}getWorldview(){return this._worldview}setWorldview(e){return this.style&&e!==this._worldview?(this._worldview=e,this.style._reloadSources(),this):this}getProjection(){return this.transform.mercatorFromTransition?{name:"globe",center:[0,0]}:this.transform.getProjection()}_showingGlobe(){return "globe"===this.transform.projection.name}setProjection(e){return this._lazyInitEmptyStyle(),e?"string"==typeof e&&(e={name:e}):e=null,this._useExplicitProjection=!!e,this._prioritizeAndUpdateProjection(e,this.style.stylesheet?this.style.stylesheet.projection:null)}_updateProjectionTransition(){if("globe"!==this.getProjection().name)return;const t=this.transform,i=t.projection.name;let o;"globe"===i&&t.zoom>=e.GLOBE_ZOOM_THRESHOLD_MAX?(t.setMercatorFromTransition(),o=!0):"mercator"===i&&t.zoom=e.GLOBE_ZOOM_THRESHOLD_MAX?this.transform.setMercatorFromTransition():this.transform.setProjection(t),this.style.applyProjectionUpdate(),i){this.painter.clearBackgroundTiles();for(const e in this.style._sourceCaches)this.style._sourceCaches[e].clearTiles();this._update(!0),this._forceMarkerAndPopupUpdate(!0);}return this}project(t){return this.transform.locationPoint3D(e.LngLat.convert(t))}unproject(t){return this.transform.pointLocation3D(e.Point.convert(t))}isMoving(){return this._moving||this.handlers&&this.handlers.isMoving()||!1}isZooming(){return this._zooming||this.handlers&&this.handlers.isZooming()||!1}isRotating(){return this._rotating||this.handlers&&this.handlers.isRotating()||!1}_isDragging(){return this.handlers&&this.handlers._isDragging()||!1}_createDelegatedListener(e,t,i){if("mouseenter"===e||"mouseover"===e){let o=!1;const r=r=>{const n=t.filter((e=>this.getLayer(e))),s=n.length?this.queryRenderedFeatures(r.point,{layers:n}):[];s.length?o||(o=!0,i.call(this,new ar(e,this,r.originalEvent,{features:s}))):o=!1;},n=()=>{o=!1;};return {layers:new Set(t),listener:i,delegates:{mousemove:r,mouseout:n}}}if("mouseleave"===e||"mouseout"===e){let o=!1;const r=r=>{const n=t.filter((e=>this.getLayer(e)));(n.length?this.queryRenderedFeatures(r.point,{layers:n}):[]).length?o=!0:o&&(o=!1,i.call(this,new ar(e,this,r.originalEvent)));},n=t=>{o&&(o=!1,i.call(this,new ar(e,this,t.originalEvent)));};return {layers:new Set(t),listener:i,delegates:{mousemove:r,mouseout:n}}}{const o=e=>{const o=t.filter((e=>this.getLayer(e))),r=o.length?this.queryRenderedFeatures(e.point,{layers:o}):[];r.length&&(e.features=r,i.call(this,e),delete e.features);};return {layers:new Set(t),listener:i,delegates:{[e]:o}}}}on(e,t,i){if(void 0===i)return super.on(e,t);Array.isArray(t)||(t=[t]);const o=this._createDelegatedListener(e,t,i);this._delegatedListeners=this._delegatedListeners||{},this._delegatedListeners[e]=this._delegatedListeners[e]||[],this._delegatedListeners[e].push(o);for(const e in o.delegates)this.on(e,o.delegates[e]);return this}once(e,t,i){if(void 0===i)return super.once(e,t);Array.isArray(t)||(t=[t]);const o=this._createDelegatedListener(e,t,i);for(const e in o.delegates)this.once(e,o.delegates[e]);return this}off(e,t,i){if(void 0===i)return super.off(e,t);t=new Set(Array.isArray(t)?t:[t]);const o=(e,t)=>{if(e.size!==t.size)return !1;for(const i of e)if(!t.has(i))return !1;return !0},r=this._delegatedListeners?this._delegatedListeners[e]:void 0;return r&&(e=>{for(let r=0;r{t?this.fire(new e.ErrorEvent(t)):o&&this._updateDiff(o,i);}));}else "object"==typeof t&&this._updateDiff(t,i);}_updateDiff(t,i){try{this.style.setState(t)&&this._update(!0);}catch(o){e.warnOnce(`Unable to perform style diff: ${o.message||o.error||o}. Rebuilding the style from scratch.`),this._updateStyle(t,i);}}getStyle(){if(this.style)return this.style.serialize()}isStyleLoaded(){return this.style?this.style.loaded():(e.warnOnce("There is no style added to the map."),!1)}addSource(e,t){return this._lazyInitEmptyStyle(),this.style.addSource(e,t),this._update(!0)}isSourceLoaded(e){return !!this.style&&this.style._isSourceCacheLoaded(e)}areTilesLoaded(){const e=this.style&&this.style._sourceCaches;for(const t in e){const i=e[t]._tiles;for(const e in i){const t=i[e];if("loaded"!==t.state&&"errored"!==t.state)return !1}}return !0}addSourceType(e,t,i){this._lazyInitEmptyStyle(),this.style.addSourceType(e,t,i);}removeSource(e){return this.style.removeSource(e),this._updateTerrain(),this._update(!0)}getSource(e){return this.style.getSource(e)}addImage(t,i,{pixelRatio:o=1,sdf:r=!1,stretchX:n,stretchY:s,content:a}={}){if(this._lazyInitEmptyStyle(),i instanceof e.window.HTMLImageElement||e.window.ImageBitmap&&i instanceof e.window.ImageBitmap){const{width:l,height:c,data:h}=e.exported.getImageData(i);this.style.addImage(t,{data:new e.RGBAImage({width:l,height:c},h),pixelRatio:o,stretchX:n,stretchY:s,content:a,sdf:r,version:0});}else if(void 0===i.width||void 0===i.height)this.fire(new e.ErrorEvent(new Error("Invalid arguments to map.addImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`")));else {const{width:l,height:c}=i,h=i;this.style.addImage(t,{data:new e.RGBAImage({width:l,height:c},new Uint8Array(h.data)),pixelRatio:o,stretchX:n,stretchY:s,content:a,sdf:r,version:0,userImage:h}),h.onAdd&&h.onAdd(this,t);}}updateImage(t,i){const o=this.style.getImage(t);if(!o)return void this.fire(new e.ErrorEvent(new Error("The map has no image with that id. If you are adding a new image use `map.addImage(...)` instead.")));const r=i instanceof e.window.HTMLImageElement||e.window.ImageBitmap&&i instanceof e.window.ImageBitmap?e.exported.getImageData(i):i,{width:n,height:s}=r;void 0!==n&&void 0!==s?n===o.data.width&&s===o.data.height?(o.data.replace(r.data,!(i instanceof e.window.HTMLImageElement||e.window.ImageBitmap&&i instanceof e.window.ImageBitmap)),this.style.updateImage(t,o)):this.fire(new e.ErrorEvent(new Error(`The width and height of the updated image (${n}, ${s})\n must be that same as the previous version of the image\n (${o.data.width}, ${o.data.height})`))):this.fire(new e.ErrorEvent(new Error("Invalid arguments to map.updateImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`")));}hasImage(t){return t?!!this.style.getImage(t):(this.fire(new e.ErrorEvent(new Error("Missing required image id"))),!1)}removeImage(e){this.style.removeImage(e);}loadImage(t,i){e.getImage(this._requestManager.transformRequest(t,e.ResourceType.Image),((t,o)=>{i(t,o instanceof e.window.HTMLImageElement?e.exported.getImageData(o):o);}));}listImages(){return this.style.listImages()}addLayer(e,t){return this._lazyInitEmptyStyle(),this.style.addLayer(e,t),this._update(!0)}moveLayer(e,t){return this.style.moveLayer(e,t),this._update(!0)}removeLayer(e){return this.style.removeLayer(e),this._update(!0)}getLayer(e){return this.style.getLayer(e)}setLayerZoomRange(e,t,i){return this.style.setLayerZoomRange(e,t,i),this._update(!0)}setFilter(e,t,i={}){return this.style.setFilter(e,t,i),this._update(!0)}getFilter(e){return this.style.getFilter(e)}setPaintProperty(e,t,i,o={}){return this.style.setPaintProperty(e,t,i,o),this._update(!0)}getPaintProperty(e,t){return this.style.getPaintProperty(e,t)}setLayoutProperty(e,t,i,o={}){return this.style.setLayoutProperty(e,t,i,o),this._update(!0)}getLayoutProperty(e,t){return this.style.getLayoutProperty(e,t)}setLight(e,t={}){return this._lazyInitEmptyStyle(),this.style.setLight(e,t),this._update(!0)}getLight(){return this.style.getLight()}setTerrain(e){return this._lazyInitEmptyStyle(),!e&&this.transform.projection.requiresDraping?this.style.setTerrainForDraping():this.style.setTerrain(e),this._averageElevationLastSampledAt=-1/0,this._update(!0)}getTerrain(){return this.style?this.style.getTerrain():null}setFog(e){return this._lazyInitEmptyStyle(),this.style.setFog(e),this._update(!0)}getFog(){return this.style?this.style.getFog():null}_queryFogOpacity(t){return this.style&&this.style.fog?this.style.fog.getOpacityAtLatLng(e.LngLat.convert(t),this.transform):0}setFeatureState(e,t){return this.style.setFeatureState(e,t),this._update()}removeFeatureState(e,t){return this.style.removeFeatureState(e,t),this._update()}getFeatureState(e){return this.style.getFeatureState(e)}_updateContainerDimensions(){if(!this._container)return;const t=this._container.getBoundingClientRect().width||400,i=this._container.getBoundingClientRect().height||300;let o,r,n,s=this._container;for(;s&&(!r||!n);){const t=e.window.getComputedStyle(s).transform;t&&"none"!==t&&(o=t.match(/matrix.*\((.+)\)/)[1].split(", "),o[0]&&"0"!==o[0]&&"1"!==o[0]&&(r=o[0]),o[3]&&"0"!==o[3]&&"1"!==o[3]&&(n=o[3])),s=s.parentElement;}this._containerWidth=r?Math.abs(t/r):t,this._containerHeight=n?Math.abs(i/n):i;}_detectMissingCSS(){"rgb(250, 128, 114)"!==e.window.getComputedStyle(this._missingCSSCanary).getPropertyValue("background-color")&&e.warnOnce("This page appears to be missing CSS declarations for Mapbox GL JS, which may cause the map to display incorrectly. Please ensure your page includes mapbox-gl.css, as described in https://www.mapbox.com/mapbox-gl-js/api/.");}_setupContainer(){const e=this._container;e.classList.add("mapboxgl-map"),(this._missingCSSCanary=n("div","mapboxgl-canary",e)).style.visibility="hidden",this._detectMissingCSS();const t=this._canvasContainer=n("div","mapboxgl-canvas-container",e);this._interactive&&t.classList.add("mapboxgl-interactive"),this._canvas=n("canvas","mapboxgl-canvas",t),this._canvas.addEventListener("webglcontextlost",this._contextLost,!1),this._canvas.addEventListener("webglcontextrestored",this._contextRestored,!1),this._canvas.setAttribute("tabindex","0"),this._canvas.setAttribute("aria-label",this._getUIString("Map.Title")),this._canvas.setAttribute("role","region"),this._updateContainerDimensions(),this._resizeCanvas(this._containerWidth,this._containerHeight);const i=this._controlContainer=n("div","mapboxgl-control-container",e),o=this._controlPositions={};["top-left","top-right","bottom-left","bottom-right"].forEach((e=>{o[e]=n("div",`mapboxgl-ctrl-${e}`,i);})),this._container.addEventListener("scroll",this._onMapScroll,!1);}_resizeCanvas(t,i){const o=e.exported.devicePixelRatio||1;this._canvas.width=o*Math.ceil(t),this._canvas.height=o*Math.ceil(i),this._canvas.style.width=`${t}px`,this._canvas.style.height=`${i}px`;}_addMarker(e){this._markers.push(e);}_removeMarker(e){const t=this._markers.indexOf(e);-1!==t&&this._markers.splice(t,1);}_addPopup(e){this._popups.push(e);}_removePopup(e){const t=this._popups.indexOf(e);-1!==t&&this._popups.splice(t,1);}_setupPainter(){const t=e.extend({},i.webGLContextAttributes,{failIfMajorPerformanceCaveat:this._failIfMajorPerformanceCaveat,preserveDrawingBuffer:this._preserveDrawingBuffer,antialias:this._antialias||!1}),o=this._useWebGL2&&this._canvas.getContext("webgl2",t),r=o||this._canvas.getContext("webgl",t)||this._canvas.getContext("experimental-webgl",t);r?(this._useWebGL2&&!o&&e.warnOnce("Failed to create WebGL 2 context. Using WebGL 1."),e.storeAuthState(r,!0),this.painter=new Bo(r,this.transform,!!o),this.on("data",(e=>{"source"===e.dataType&&this.painter.setTileLoadedFlag(!0);})),e.exported$1.testSupport(r)):this.fire(new e.ErrorEvent(new Error("Failed to initialize WebGL")));}_contextLost(t){t.preventDefault(),this._frame&&(this._frame.cancel(),this._frame=null),this.fire(new e.Event("webglcontextlost",{originalEvent:t}));}_contextRestored(t){this._setupPainter(),this.resize(),this._update(),this.fire(new e.Event("webglcontextrestored",{originalEvent:t}));}_onMapScroll(e){if(e.target===this._container)return this._container.scrollTop=0,this._container.scrollLeft=0,!1}loaded(){return !this._styleDirty&&!this._sourcesDirty&&!!this.style&&this.style.loaded()}_update(e){return this.style?(this._styleDirty=this._styleDirty||e,this._sourcesDirty=!0,this.triggerRepaint(),this):this}_requestRenderFrame(e){return this._update(),this._renderTaskQueue.add(e)}_cancelRenderFrame(e){this._renderTaskQueue.remove(e);}_requestDomTask(e){!this.loaded()||this.loaded()&&!this.isMoving()?e():this._domRenderTaskQueue.add(e);}_render(t){let i;const o=this.painter.context.extTimerQuery,r=e.exported.now();if(this.listens("gpu-timing-frame")&&(i=o.createQueryEXT(),o.beginQueryEXT(o.TIME_ELAPSED_EXT,i)),this.painter.context.setDirty(),this.painter.setBaseState(),(this.isMoving()||this.isRotating()||this.isZooming())&&(this._interactionRange[0]=Math.min(this._interactionRange[0],e.window.performance.now()),this._interactionRange[1]=Math.max(this._interactionRange[1],e.window.performance.now())),this._renderTaskQueue.run(t),this._domRenderTaskQueue.run(t),this._removed)return;this._updateProjectionTransition();const n=this._isInitialLoad?0:this._fadeDuration;if(this.style&&this._styleDirty){this._styleDirty=!1;const t=this.transform.zoom,i=this.transform.pitch,o=e.exported.now(),r=new e.EvaluationParameters(t,{now:o,fadeDuration:n,pitch:i,transition:this.style.getTransition()});this.style.update(r);}this.style&&this.style.fog&&this.style.fog.hasTransition()&&(this.style._markersNeedUpdate=!0,this._sourcesDirty=!0);let s=!1;if(this.style&&this._sourcesDirty?(this._sourcesDirty=!1,this.painter._updateFog(this.style),this._updateTerrain(),s=this._updateAverageElevation(r),this.style._updateSources(this.transform),this._forceMarkerAndPopupUpdate()):s=this._updateAverageElevation(r),this._placementDirty=this.style&&this.style._updatePlacement(this.painter.transform,this.showCollisionBoxes,n,this._crossSourceCollisions),this.style&&this.painter.render(this.style,{showTileBoundaries:this.showTileBoundaries,showTerrainWireframe:this.showTerrainWireframe,showOverdrawInspector:this._showOverdrawInspector,showQueryGeometry:!!this._showQueryGeometry,showTileAABBs:this.showTileAABBs,rotating:this.isRotating(),zooming:this.isZooming(),moving:this.isMoving(),fadeDuration:n,isInitialLoad:this._isInitialLoad,showPadding:this.showPadding,gpuTiming:!!this.listens("gpu-timing-layer"),gpuTimingDeferredRender:!!this.listens("gpu-timing-deferred-render"),speedIndexTiming:this.speedIndexTiming}),this.fire(new e.Event("render")),this.loaded()&&!this._loaded&&(this._loaded=!0,this.fire(new e.Event("load"))),this.style&&this.style.hasTransitions()&&(this._styleDirty=!0),this.style&&!this._placementDirty&&this.style._releaseSymbolFadeTiles(),i){const t=e.exported.now()-r;o.endQueryEXT(o.TIME_ELAPSED_EXT,i),setTimeout((()=>{const n=o.getQueryObjectEXT(i,o.QUERY_RESULT_EXT)/1e6;o.deleteQueryEXT(i),this.fire(new e.Event("gpu-timing-frame",{cpuTime:t,gpuTime:n})),e.window.performance.mark("frame-gpu",{startTime:r,detail:{gpuTime:n}});}),50);}if(this.listens("gpu-timing-layer")){const t=this.painter.collectGpuTimers();setTimeout((()=>{const i=this.painter.queryGpuTimers(t);this.fire(new e.Event("gpu-timing-layer",{layerTimes:i}));}),50);}if(this.listens("gpu-timing-deferred-render")){const t=this.painter.collectDeferredRenderGpuQueries();setTimeout((()=>{const i=this.painter.queryGpuTimeDeferredRender(t);this.fire(new e.Event("gpu-timing-deferred-render",{gpuTime:i}));}),50);}const a=this._sourcesDirty||this._styleDirty||this._placementDirty||s;if(a||this._repaint)this.triggerRepaint();else {const t=!this.isMoving()&&this.loaded();if(t&&(s=this._updateAverageElevation(r,!0)),s)this.triggerRepaint();else if(this._triggerFrame(!1),t&&(this.fire(new e.Event("idle")),this._isInitialLoad=!1,this.speedIndexTiming)){const t=this._calculateSpeedIndex();this.fire(new e.Event("speedindexcompleted",{speedIndex:t})),this.speedIndexTiming=!1;}}!this._loaded||this._fullyLoaded||a||(this._fullyLoaded=!0,e.LivePerformanceUtils.mark(e.PerformanceMarkers.fullLoad),this._performanceMetricsCollection&&e.postPerformanceEvent(this._requestManager._customAccessToken,{width:this.painter.width,height:this.painter.height,interactionRange:this._interactionRange,visibilityHidden:this._visibilityHidden,terrainEnabled:!!this.painter.style.getTerrain(),fogEnabled:!!this.painter.style.getFog(),projection:this.getProjection().name,zoom:this.transform.zoom,renderer:this.painter.context.renderer,vendor:this.painter.context.vendor}),this._authenticate());}_forceMarkerAndPopupUpdate(e){for(const t of this._markers)e&&!this.getRenderWorldCopies()&&(t._lngLat=t._lngLat.wrap()),t._update();for(const t of this._popups)!e||this.getRenderWorldCopies()||t._trackPointer||(t._lngLat=t._lngLat.wrap()),t._update();}_updateAverageElevation(e,t=!1){const i=e=>(this.transform.averageElevation=e,this._update(!1),!0);if(!this.painter.averageElevationNeedsEasing())return 0!==this.transform.averageElevation&&i(0);if((t||e-this._averageElevationLastSampledAt>500)&&!this._averageElevation.isEasing(e)){const t=this.transform.averageElevation;let o=this.transform.sampleAverageElevation(),r=!1;this.transform.elevation&&(r=this.transform.elevation.exaggeration()!==this._averageElevationExaggeration,this._averageElevationExaggeration=this.transform.elevation.exaggeration()),isNaN(o)?o=0:this._averageElevationLastSampledAt=e;const n=Math.abs(t-o);if(n>1){if(this._isInitialLoad||r)return this._averageElevation.jumpTo(o),i(o);this._averageElevation.easeTo(o,e,300);}else if(n>1e-4)return this._averageElevation.jumpTo(o),i(o)}return !!this._averageElevation.isEasing(e)&&i(this._averageElevation.getValue(e))}_authenticate(){e.getMapSessionAPI(this._getMapId(),this._requestManager._skuToken,this._requestManager._customAccessToken,(t=>{if(t&&(t.message===e.AUTH_ERR_MSG||401===t.status)){const t=this.painter.context.gl;e.storeAuthState(t,!1),this._logoControl instanceof Yr&&this._logoControl._updateLogo(),t&&t.clear(t.DEPTH_BUFFER_BIT|t.COLOR_BUFFER_BIT|t.STENCIL_BUFFER_BIT),this._silenceAuthErrors||this.fire(new e.ErrorEvent(new Error("A valid Mapbox access token is required to use Mapbox GL JS. To create an account or a new access token, visit https://account.mapbox.com/")));}})),e.postMapLoadEvent(this._getMapId(),this._requestManager._skuToken,this._requestManager._customAccessToken,(()=>{}));}_updateTerrain(){const e=this._isDragging();this.painter.updateTerrain(this.style,e);}_calculateSpeedIndex(){const e=this.painter.canvasCopy(),t=this.painter.getCanvasCopiesAndTimestamps();t.timeStamps.push(performance.now());const i=this.painter.context.gl,o=i.createFramebuffer();function r(e){i.framebufferTexture2D(i.FRAMEBUFFER,i.COLOR_ATTACHMENT0,i.TEXTURE_2D,e,0);const t=new Uint8Array(i.drawingBufferWidth*i.drawingBufferHeight*4);return i.readPixels(0,0,i.drawingBufferWidth,i.drawingBufferHeight,i.RGBA,i.UNSIGNED_BYTE,t),t}return i.bindFramebuffer(i.FRAMEBUFFER,o),this._canvasPixelComparison(r(e),t.canvasCopies.map(r),t.timeStamps)}_canvasPixelComparison(e,t,i){let o=i[1]-i[0];const r=e.length/4;for(let n=0;n{const t=!!this._renderNextFrame;this._frame=null,this._renderNextFrame=null,t&&this._render(e);})));}_preloadTiles(t){const i=this.style?Object.values(this.style._sourceCaches):[];return e.asyncAll(i,((e,i)=>e._preloadTiles(t,i)),(()=>{this.triggerRepaint();})),this}_onWindowOnline(){this._update();}_onWindowResize(e){this._trackResize&&this.resize({originalEvent:e})._update();}_onVisibilityChange(){"hidden"===e.window.document.visibilityState&&this._visibilityHidden++;}get showTileBoundaries(){return !!this._showTileBoundaries}set showTileBoundaries(e){this._showTileBoundaries!==e&&(this._showTileBoundaries=e,this._update());}get showTerrainWireframe(){return !!this._showTerrainWireframe}set showTerrainWireframe(e){this._showTerrainWireframe!==e&&(this._showTerrainWireframe=e,this._update());}get speedIndexTiming(){return !!this._speedIndexTiming}set speedIndexTiming(e){this._speedIndexTiming!==e&&(this._speedIndexTiming=e,this._update());}get showPadding(){return !!this._showPadding}set showPadding(e){this._showPadding!==e&&(this._showPadding=e,this._update());}get showCollisionBoxes(){return !!this._showCollisionBoxes}set showCollisionBoxes(e){this._showCollisionBoxes!==e&&(this._showCollisionBoxes=e,e?this.style._generateCollisionBoxes():this._update());}get showOverdrawInspector(){return !!this._showOverdrawInspector}set showOverdrawInspector(e){this._showOverdrawInspector!==e&&(this._showOverdrawInspector=e,this._update());}get repaint(){return !!this._repaint}set repaint(e){this._repaint!==e&&(this._repaint=e,this.triggerRepaint());}get vertices(){return !!this._vertices}set vertices(e){this._vertices=e,this._update();}get showTileAABBs(){return !!this._showTileAABBs}set showTileAABBs(e){this._showTileAABBs!==e&&(this._showTileAABBs=e,e&&this._update());}_setCacheLimits(t,i){e.setCacheLimits(t,i);}get version(){return e.version}},NavigationControl:class{constructor(t){this.options=e.extend({},ln,t),this._container=n("div","mapboxgl-ctrl mapboxgl-ctrl-group"),this._container.addEventListener("contextmenu",(e=>e.preventDefault())),this.options.showZoom&&(e.bindAll(["_setButtonTitle","_updateZoomButtons"],this),this._zoomInButton=this._createButton("mapboxgl-ctrl-zoom-in",(e=>{this._map&&this._map.zoomIn({},{originalEvent:e});})),n("span","mapboxgl-ctrl-icon",this._zoomInButton).setAttribute("aria-hidden","true"),this._zoomOutButton=this._createButton("mapboxgl-ctrl-zoom-out",(e=>{this._map&&this._map.zoomOut({},{originalEvent:e});})),n("span","mapboxgl-ctrl-icon",this._zoomOutButton).setAttribute("aria-hidden","true")),this.options.showCompass&&(e.bindAll(["_rotateCompassArrow"],this),this._compass=this._createButton("mapboxgl-ctrl-compass",(e=>{const t=this._map;t&&(this.options.visualizePitch?t.resetNorthPitch({},{originalEvent:e}):t.resetNorth({},{originalEvent:e}));})),this._compassIcon=n("span","mapboxgl-ctrl-icon",this._compass),this._compassIcon.setAttribute("aria-hidden","true"));}_updateZoomButtons(){const e=this._map;if(!e)return;const t=e.getZoom(),i=t===e.getMaxZoom(),o=t===e.getMinZoom();this._zoomInButton.disabled=i,this._zoomOutButton.disabled=o,this._zoomInButton.setAttribute("aria-disabled",i.toString()),this._zoomOutButton.setAttribute("aria-disabled",o.toString());}_rotateCompassArrow(){const e=this._map;if(!e)return;const t=this.options.visualizePitch?`scale(${1/Math.pow(Math.cos(e.transform.pitch*(Math.PI/180)),.5)}) rotateX(${e.transform.pitch}deg) rotateZ(${e.transform.angle*(180/Math.PI)}deg)`:`rotate(${e.transform.angle*(180/Math.PI)}deg)`;e._requestDomTask((()=>{this._compassIcon&&(this._compassIcon.style.transform=t);}));}onAdd(e){return this._map=e,this.options.showZoom&&(this._setButtonTitle(this._zoomInButton,"ZoomIn"),this._setButtonTitle(this._zoomOutButton,"ZoomOut"),e.on("zoom",this._updateZoomButtons),this._updateZoomButtons()),this.options.showCompass&&(this._setButtonTitle(this._compass,"ResetBearing"),this.options.visualizePitch&&e.on("pitch",this._rotateCompassArrow),e.on("rotate",this._rotateCompassArrow),this._rotateCompassArrow(),this._handler=new cn(e,this._compass,this.options.visualizePitch)),this._container}onRemove(){const e=this._map;e&&(this._container.remove(),this.options.showZoom&&e.off("zoom",this._updateZoomButtons),this.options.showCompass&&(this.options.visualizePitch&&e.off("pitch",this._rotateCompassArrow),e.off("rotate",this._rotateCompassArrow),this._handler&&this._handler.off(),this._handler=void 0),this._map=void 0);}_createButton(e,t){const i=n("button",e,this._container);return i.type="button",i.addEventListener("click",t),i}_setButtonTitle(e,t){if(!this._map)return;const i=this._map._getUIString(`NavigationControl.${t}`);e.setAttribute("aria-label",i),e.firstElementChild&&e.firstElementChild.setAttribute("title",i);}},GeolocateControl:class extends e.Evented{constructor(t){super(),this.options=e.extend({geolocation:e.window.navigator.geolocation},hn,t),e.bindAll(["_onSuccess","_onError","_onZoom","_finish","_setupUI","_updateCamera","_updateMarker","_updateMarkerRotation","_onDeviceOrientation"],this),this._updateMarkerRotationThrottled=Yo(this._updateMarkerRotation,20),this._numberOfWatches=0;}onAdd(e){return this._map=e,this._container=n("div","mapboxgl-ctrl mapboxgl-ctrl-group"),this._checkGeolocationSupport(this._setupUI),this._container}onRemove(){void 0!==this._geolocationWatchID&&(this.options.geolocation.clearWatch(this._geolocationWatchID),this._geolocationWatchID=void 0),this.options.showUserLocation&&this._userLocationDotMarker&&this._userLocationDotMarker.remove(),this.options.showAccuracyCircle&&this._accuracyCircleMarker&&this._accuracyCircleMarker.remove(),this._container.remove(),this._map.off("zoom",this._onZoom),this._map=void 0,this._numberOfWatches=0,this._noTimeout=!1;}_checkGeolocationSupport(t){const i=(e=!!this.options.geolocation)=>{this._supportsGeolocation=e,t(e);};void 0!==this._supportsGeolocation?t(this._supportsGeolocation):void 0!==e.window.navigator.permissions?e.window.navigator.permissions.query({name:"geolocation"}).then((e=>i("denied"!==e.state))).catch((()=>i())):i();}_isOutOfMapMaxBounds(e){const t=this._map.getMaxBounds(),i=e.coords;return !!t&&(i.longitudet.getEast()||i.latitudet.getNorth())}_setErrorState(){switch(this._watchState){case"WAITING_ACTIVE":this._watchState="ACTIVE_ERROR",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active-error");break;case"ACTIVE_LOCK":this._watchState="ACTIVE_ERROR",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting");break;case"BACKGROUND":this._watchState="BACKGROUND_ERROR",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting");}}_onSuccess(t){if(this._map){if(this._isOutOfMapMaxBounds(t))return this._setErrorState(),this.fire(new e.Event("outofmaxbounds",t)),this._updateMarker(),void this._finish();if(this.options.trackUserLocation)switch(this._lastKnownPosition=t,this._watchState){case"WAITING_ACTIVE":case"ACTIVE_LOCK":case"ACTIVE_ERROR":this._watchState="ACTIVE_LOCK",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active");break;case"BACKGROUND":case"BACKGROUND_ERROR":this._watchState="BACKGROUND",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background");}this.options.showUserLocation&&"OFF"!==this._watchState&&this._updateMarker(t),this.options.trackUserLocation&&"ACTIVE_LOCK"!==this._watchState||this._updateCamera(t),this.options.showUserLocation&&this._dotElement.classList.remove("mapboxgl-user-location-dot-stale"),this.fire(new e.Event("geolocate",t)),this._finish();}}_updateCamera(t){const i=new e.LngLat(t.coords.longitude,t.coords.latitude),o=t.coords.accuracy,r=this._map.getBearing(),n=e.extend({bearing:r},this.options.fitBoundsOptions);this._map.fitBounds(i.toBounds(o),n,{geolocateSource:!0});}_updateMarker(t){if(t){const i=new e.LngLat(t.coords.longitude,t.coords.latitude);this._accuracyCircleMarker.setLngLat(i).addTo(this._map),this._userLocationDotMarker.setLngLat(i).addTo(this._map),this._accuracy=t.coords.accuracy,this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius();}else this._userLocationDotMarker.remove(),this._accuracyCircleMarker.remove();}_updateCircleRadius(){const t=this._map.transform,i=e.mercatorZfromAltitude(1,t._center.lat)*t.worldSize,o=Math.ceil(2*this._accuracy*i);this._circleElement.style.width=`${o}px`,this._circleElement.style.height=`${o}px`;}_onZoom(){this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius();}_updateMarkerRotation(){this._userLocationDotMarker&&"number"==typeof this._heading?(this._userLocationDotMarker.setRotation(this._heading),this._dotElement.classList.add("mapboxgl-user-location-show-heading")):(this._dotElement.classList.remove("mapboxgl-user-location-show-heading"),this._userLocationDotMarker.setRotation(0));}_onError(t){if(this._map){if(this.options.trackUserLocation)if(1===t.code){this._watchState="OFF",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"),this._geolocateButton.disabled=!0;const e=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.setAttribute("aria-label",e),this._geolocateButton.firstElementChild&&this._geolocateButton.firstElementChild.setAttribute("title",e),void 0!==this._geolocationWatchID&&this._clearWatch();}else {if(3===t.code&&this._noTimeout)return;this._setErrorState();}"OFF"!==this._watchState&&this.options.showUserLocation&&this._dotElement.classList.add("mapboxgl-user-location-dot-stale"),this.fire(new e.Event("error",t)),this._finish();}}_finish(){this._timeoutId&&clearTimeout(this._timeoutId),this._timeoutId=void 0;}_setupUI(t){if(void 0!==this._map){if(this._container.addEventListener("contextmenu",(e=>e.preventDefault())),this._geolocateButton=n("button","mapboxgl-ctrl-geolocate",this._container),n("span","mapboxgl-ctrl-icon",this._geolocateButton).setAttribute("aria-hidden","true"),this._geolocateButton.type="button",!1===t){e.warnOnce("Geolocation support is not available so the GeolocateControl will be disabled.");const t=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.disabled=!0,this._geolocateButton.setAttribute("aria-label",t),this._geolocateButton.firstElementChild&&this._geolocateButton.firstElementChild.setAttribute("title",t);}else {const e=this._map._getUIString("GeolocateControl.FindMyLocation");this._geolocateButton.setAttribute("aria-label",e),this._geolocateButton.firstElementChild&&this._geolocateButton.firstElementChild.setAttribute("title",e);}this.options.trackUserLocation&&(this._geolocateButton.setAttribute("aria-pressed","false"),this._watchState="OFF"),this.options.showUserLocation&&(this._dotElement=n("div","mapboxgl-user-location"),this._dotElement.appendChild(n("div","mapboxgl-user-location-dot")),this._dotElement.appendChild(n("div","mapboxgl-user-location-heading")),this._userLocationDotMarker=new en({element:this._dotElement,rotationAlignment:"map",pitchAlignment:"map"}),this._circleElement=n("div","mapboxgl-user-location-accuracy-circle"),this._accuracyCircleMarker=new en({element:this._circleElement,pitchAlignment:"map"}),this.options.trackUserLocation&&(this._watchState="OFF"),this._map.on("zoom",this._onZoom)),this._geolocateButton.addEventListener("click",this.trigger.bind(this)),this._setup=!0,this.options.trackUserLocation&&this._map.on("movestart",(t=>{t.geolocateSource||"ACTIVE_LOCK"!==this._watchState||t.originalEvent&&"resize"===t.originalEvent.type||(this._watchState="BACKGROUND",this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this.fire(new e.Event("trackuserlocationend")));}));}}_onDeviceOrientation(e){this._userLocationDotMarker&&(e.webkitCompassHeading?this._heading=e.webkitCompassHeading:!0===e.absolute&&(this._heading=-1*e.alpha),this._updateMarkerRotationThrottled());}trigger(){if(!this._setup)return e.warnOnce("Geolocate control triggered before added to a map"),!1;if(this.options.trackUserLocation){switch(this._watchState){case"OFF":this._watchState="WAITING_ACTIVE",this.fire(new e.Event("trackuserlocationstart"));break;case"WAITING_ACTIVE":case"ACTIVE_LOCK":case"ACTIVE_ERROR":case"BACKGROUND_ERROR":this._numberOfWatches--,this._noTimeout=!1,this._watchState="OFF",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"),this.fire(new e.Event("trackuserlocationend"));break;case"BACKGROUND":this._watchState="ACTIVE_LOCK",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._lastKnownPosition&&this._updateCamera(this._lastKnownPosition),this.fire(new e.Event("trackuserlocationstart"));}switch(this._watchState){case"WAITING_ACTIVE":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active");break;case"ACTIVE_LOCK":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active");break;case"ACTIVE_ERROR":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active-error");break;case"BACKGROUND":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background");break;case"BACKGROUND_ERROR":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background-error");}if("OFF"===this._watchState&&void 0!==this._geolocationWatchID)this._clearWatch();else if(void 0===this._geolocationWatchID){let e;this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.setAttribute("aria-pressed","true"),this._numberOfWatches++,this._numberOfWatches>1?(e={maximumAge:6e5,timeout:0},this._noTimeout=!0):(e=this.options.positionOptions,this._noTimeout=!1),this._geolocationWatchID=this.options.geolocation.watchPosition(this._onSuccess,this._onError,e),this.options.showUserHeading&&this._addDeviceOrientationListener();}}else this.options.geolocation.getCurrentPosition(this._onSuccess,this._onError,this.options.positionOptions),this._timeoutId=setTimeout(this._finish,1e4);return !0}_addDeviceOrientationListener(){const t=()=>{e.window.addEventListener("ondeviceorientationabsolute"in e.window?"deviceorientationabsolute":"deviceorientation",this._onDeviceOrientation);};void 0!==e.window.DeviceMotionEvent&&"function"==typeof e.window.DeviceMotionEvent.requestPermission?DeviceOrientationEvent.requestPermission().then((e=>{"granted"===e&&t();})).catch(console.error):t();}_clearWatch(){this.options.geolocation.clearWatch(this._geolocationWatchID),e.window.removeEventListener("deviceorientation",this._onDeviceOrientation),e.window.removeEventListener("deviceorientationabsolute",this._onDeviceOrientation),this._geolocationWatchID=void 0,this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.setAttribute("aria-pressed","false"),this.options.showUserLocation&&this._updateMarker(null);}},AttributionControl:Hr,ScaleControl:class{constructor(t){this.options=e.extend({},un,t),this._isNumberFormatSupported=function(){try{return new Intl.NumberFormat("en",{style:"unit",unitDisplay:"short",unit:"meter"}),!0}catch(e){return !1}}(),e.bindAll(["_update","_setScale","setUnit"],this);}getDefaultPosition(){return "bottom-left"}_update(){const e=this.options.maxWidth||100,t=this._map,i=t._containerHeight/2,o=t._containerWidth/2-e/2,r=t.unproject([o,i]),n=t.unproject([o+e,i]),s=r.distanceTo(n);if("imperial"===this.options.unit){const t=3.2808*s;t>5280?this._setScale(e,t/5280,"mile"):this._setScale(e,t,"foot");}else "nautical"===this.options.unit?this._setScale(e,s/1852,"nautical-mile"):s>=1e3?this._setScale(e,s/1e3,"kilometer"):this._setScale(e,s,"meter");}_setScale(e,t,i){this._map._requestDomTask((()=>{const o=function(e){const t=Math.pow(10,`${Math.floor(e)}`.length-1);let i=e/t;return i=i>=10?10:i>=5?5:i>=3?3:i>=2?2:i>=1?1:function(e){const t=Math.pow(10,Math.ceil(-Math.log(e)/Math.LN10));return Math.round(e*t)/t}(i),t*i}(t),r=o/t;this._container.innerHTML=this._isNumberFormatSupported&&"nautical-mile"!==i?new Intl.NumberFormat(this._language,{style:"unit",unitDisplay:"short",unit:i}).format(o):`${o} ${_n[i]}`,this._container.style.width=e*r+"px";}));}onAdd(e){return this._map=e,this._language=e.getLanguage(),this._container=n("div","mapboxgl-ctrl mapboxgl-ctrl-scale",e.getContainer()),this._container.dir="auto",this._map.on("move",this._update),this._update(),this._container}onRemove(){this._container.remove(),this._map.off("move",this._update),this._map=void 0;}_setLanguage(e){this._language=e,this._update();}setUnit(e){this.options.unit=e,this._update();}},FullscreenControl:class{constructor(t){this._fullscreen=!1,t&&t.container&&(t.container instanceof e.window.HTMLElement?this._container=t.container:e.warnOnce("Full screen control 'container' must be a DOM element.")),e.bindAll(["_onClickFullscreen","_changeIcon"],this),"onfullscreenchange"in e.window.document?this._fullscreenchange="fullscreenchange":"onwebkitfullscreenchange"in e.window.document&&(this._fullscreenchange="webkitfullscreenchange");}onAdd(t){return this._map=t,this._container||(this._container=this._map.getContainer()),this._controlContainer=n("div","mapboxgl-ctrl mapboxgl-ctrl-group"),this._checkFullscreenSupport()?this._setupUI():(this._controlContainer.style.display="none",e.warnOnce("This device does not support fullscreen mode.")),this._controlContainer}onRemove(){this._controlContainer.remove(),this._map=null,e.window.document.removeEventListener(this._fullscreenchange,this._changeIcon);}_checkFullscreenSupport(){return !(!e.window.document.fullscreenEnabled&&!e.window.document.webkitFullscreenEnabled)}_setupUI(){const t=this._fullscreenButton=n("button","mapboxgl-ctrl-fullscreen",this._controlContainer);n("span","mapboxgl-ctrl-icon",t).setAttribute("aria-hidden","true"),t.type="button",this._updateTitle(),this._fullscreenButton.addEventListener("click",this._onClickFullscreen),e.window.document.addEventListener(this._fullscreenchange,this._changeIcon);}_updateTitle(){const e=this._getTitle();this._fullscreenButton.setAttribute("aria-label",e),this._fullscreenButton.firstElementChild&&this._fullscreenButton.firstElementChild.setAttribute("title",e);}_getTitle(){return this._map._getUIString(this._isFullscreen()?"FullscreenControl.Exit":"FullscreenControl.Enter")}_isFullscreen(){return this._fullscreen}_changeIcon(){(e.window.document.fullscreenElement||e.window.document.webkitFullscreenElement)===this._container!==this._fullscreen&&(this._fullscreen=!this._fullscreen,this._fullscreenButton.classList.toggle("mapboxgl-ctrl-shrink"),this._fullscreenButton.classList.toggle("mapboxgl-ctrl-fullscreen"),this._updateTitle());}_onClickFullscreen(){this._isFullscreen()?e.window.document.exitFullscreen?e.window.document.exitFullscreen():e.window.document.webkitCancelFullScreen&&e.window.document.webkitCancelFullScreen():this._container.requestFullscreen?this._container.requestFullscreen():this._container.webkitRequestFullscreen&&this._container.webkitRequestFullscreen();}},Popup:class extends e.Evented{constructor(t){super(),this.options=e.extend(Object.create(tn),t),e.bindAll(["_update","_onClose","remove","_onMouseEvent"],this),this._classList=new Set(t&&t.className?t.className.trim().split(/\s+/):[]);}addTo(t){return this._map&&this.remove(),this._map=t,this.options.closeOnClick&&t.on("preclick",this._onClose),this.options.closeOnMove&&t.on("move",this._onClose),t.on("remove",this.remove),this._update(),t._addPopup(this),this._focusFirstElement(),this._trackPointer?(t.on("mousemove",this._onMouseEvent),t.on("mouseup",this._onMouseEvent),t._canvasContainer.classList.add("mapboxgl-track-pointer")):t.on("move",this._update),this.fire(new e.Event("open")),this}isOpen(){return !!this._map}remove(){this._content&&this._content.remove(),this._container&&(this._container.remove(),this._container=void 0);const t=this._map;return t&&(t.off("move",this._update),t.off("move",this._onClose),t.off("preclick",this._onClose),t.off("click",this._onClose),t.off("remove",this.remove),t.off("mousemove",this._onMouseEvent),t.off("mouseup",this._onMouseEvent),t.off("drag",this._onMouseEvent),t._canvasContainer&&t._canvasContainer.classList.remove("mapboxgl-track-pointer"),t._removePopup(this),this._map=void 0),this.fire(new e.Event("close")),this}getLngLat(){return this._lngLat}setLngLat(t){this._lngLat=e.LngLat.convert(t),this._pos=null,this._trackPointer=!1,this._update();const i=this._map;return i&&(i.on("move",this._update),i.off("mousemove",this._onMouseEvent),i._canvasContainer.classList.remove("mapboxgl-track-pointer")),this}trackPointer(){this._trackPointer=!0,this._pos=null,this._update();const e=this._map;return e&&(e.off("move",this._update),e.on("mousemove",this._onMouseEvent),e.on("drag",this._onMouseEvent),e._canvasContainer.classList.add("mapboxgl-track-pointer")),this}getElement(){return this._container}setText(t){return this.setDOMContent(e.window.document.createTextNode(t))}setHTML(t){const i=e.window.document.createDocumentFragment(),o=e.window.document.createElement("body");let r;for(o.innerHTML=t;r=o.firstChild,r;)i.appendChild(r);return this.setDOMContent(i)}getMaxWidth(){return this._container&&this._container.style.maxWidth}setMaxWidth(e){return this.options.maxWidth=e,this._update(),this}setDOMContent(e){let t=this._content;if(t)for(;t.hasChildNodes();)t.firstChild&&t.removeChild(t.firstChild);else t=this._content=n("div","mapboxgl-popup-content",this._container||void 0);if(t.appendChild(e),this.options.closeButton){const e=this._closeButton=n("button","mapboxgl-popup-close-button",t);e.type="button",e.setAttribute("aria-label","Close popup"),e.setAttribute("aria-hidden","true"),e.innerHTML="×",e.addEventListener("click",this._onClose);}return this._update(),this._focusFirstElement(),this}addClassName(e){return this._classList.add(e),this._updateClassList(),this}removeClassName(e){return this._classList.delete(e),this._updateClassList(),this}setOffset(e){return this.options.offset=e,this._update(),this}toggleClassName(e){let t;return this._classList.delete(e)?t=!1:(this._classList.add(e),t=!0),this._updateClassList(),t}_onMouseEvent(e){this._update(e.point);}_getAnchor(e){if(this.options.anchor)return this.options.anchor;const t=this._map,i=this._container,o=this._pos;if(!t||!i||!o)return "bottom";const r=i.offsetWidth,n=i.offsetHeight,s=o.xt.transform.width-r/2;if(o.y+et.transform.height-n){if(s)return "bottom-left";if(a)return "bottom-right"}return s?"left":a?"right":"bottom"}_updateClassList(){const e=this._container;if(!e)return;const t=[...this._classList];t.push("mapboxgl-popup"),this._anchor&&t.push(`mapboxgl-popup-anchor-${this._anchor}`),this._trackPointer&&t.push("mapboxgl-popup-track-pointer"),e.className=t.join(" ");}_update(t){const i=this._map,o=this._content;if(!i||!this._lngLat&&!this._trackPointer||!o)return;let r=this._container;if(r||(r=this._container=n("div","mapboxgl-popup",i.getContainer()),this._tip=n("div","mapboxgl-popup-tip",r),r.appendChild(o)),this.options.maxWidth&&r.style.maxWidth!==this.options.maxWidth&&(r.style.maxWidth=this.options.maxWidth),i.transform.renderWorldCopies&&!this._trackPointer&&(this._lngLat=Jr(this._lngLat,this._pos,i.transform)),!this._trackPointer||t){const e=this._pos=this._trackPointer&&t?t:i.project(this._lngLat),o=rn(this.options.offset),r=this._anchor=this._getAnchor(o.y),n=rn(this.options.offset,r),s=e.add(n).round();i._requestDomTask((()=>{this._container&&r&&(this._container.style.transform=`${Qr[r]} translate(${s.x}px,${s.y}px)`);}));}if(!this._marker&&i._showingGlobe()){const t=e.isLngLatBehindGlobe(i.transform,this._lngLat)?0:1;this._setOpacity(t);}this._updateClassList();}_focusFirstElement(){if(!this.options.focusAfterOpen||!this._container)return;const e=this._container.querySelector(on);e&&e.focus();}_onClose(){this.remove();}_setOpacity(e){this._container&&(this._container.style.opacity=`${e}`),this._content&&(this._content.style.pointerEvents=e?"auto":"none");}},Marker:en,Style:Kt,LngLat:e.LngLat,LngLatBounds:e.LngLatBounds,Point:e.Point,MercatorCoordinate:e.MercatorCoordinate,FreeCameraOptions:jo,Evented:e.Evented,config:e.config,prewarm:function(){Ue().acquire(Be);},clearPrewarmedResources:function(){const e=Fe;e&&(e.isPreloaded()&&1===e.numActive()?(e.release(Be),Fe=null):console.warn("Could not clear WebWorkers since there are active Map instances that still reference it. The pre-warmed WebWorker pool can only be cleared when all map instances have been removed with map.remove()"));},get accessToken(){return e.config.ACCESS_TOKEN},set accessToken(t){e.config.ACCESS_TOKEN=t;},get baseApiUrl(){return e.config.API_URL},set baseApiUrl(t){e.config.API_URL=t;},get workerCount(){return ke.workerCount},set workerCount(e){ke.workerCount=e;},get maxParallelImageRequests(){return e.config.MAX_PARALLEL_IMAGE_REQUESTS},set maxParallelImageRequests(t){e.config.MAX_PARALLEL_IMAGE_REQUESTS=t;},clearStorage(t){e.clearTileCache(t);},workerUrl:"",workerClass:null,setNow:e.exported.setNow,restoreNow:e.exported.restoreNow};return dn})); - - // - // Our custom intro provides a specialized "define()" function, called by the - // AMD modules below, that sets up the worker blob URL and then executes the - // main module, storing its exported value as 'mapboxgl' - - - var mapboxgl$1 = mapboxgl; - - return mapboxgl$1; - - })); - -} (mapboxGl, mapboxGl.exports)); - -mapboxGl.exports; - -new Box3(); -new Vector3(); - -/** - * parameters = { - * color: , - * linewidth: , - * dashed: , - * dashScale: , - * dashSize: , - * dashOffset: , - * gapSize: , - * resolution: , // to be set by renderer - * } - */ - - -UniformsLib.line = { - - worldUnits: { value: 1 }, - linewidth: { value: 1 }, - resolution: { value: new Vector2( 1, 1 ) }, - dashOffset: { value: 0 }, - dashScale: { value: 1 }, - dashSize: { value: 1 }, - gapSize: { value: 1 } // todo FIX - maybe change to totalSize - -}; - -ShaderLib[ 'line' ] = { - - uniforms: UniformsUtils.merge( [ - UniformsLib.common, - UniformsLib.fog, - UniformsLib.line - ] ), - - vertexShader: - /* glsl */` - #include - #include - #include - #include - #include - - uniform float linewidth; - uniform vec2 resolution; - - attribute vec3 instanceStart; - attribute vec3 instanceEnd; - - attribute vec3 instanceColorStart; - attribute vec3 instanceColorEnd; - - #ifdef WORLD_UNITS - - varying vec4 worldPos; - varying vec3 worldStart; - varying vec3 worldEnd; - - #ifdef USE_DASH - - varying vec2 vUv; - - #endif - - #else - - varying vec2 vUv; - - #endif - - #ifdef USE_DASH - - uniform float dashScale; - attribute float instanceDistanceStart; - attribute float instanceDistanceEnd; - varying float vLineDistance; - - #endif - - void trimSegment( const in vec4 start, inout vec4 end ) { - - // trim end segment so it terminates between the camera plane and the near plane - - // conservative estimate of the near plane - float a = projectionMatrix[ 2 ][ 2 ]; // 3nd entry in 3th column - float b = projectionMatrix[ 3 ][ 2 ]; // 3nd entry in 4th column - float nearEstimate = - 0.5 * b / a; - - float alpha = ( nearEstimate - start.z ) / ( end.z - start.z ); - - end.xyz = mix( start.xyz, end.xyz, alpha ); - - } - - void main() { - - #ifdef USE_COLOR - - vColor.xyz = ( position.y < 0.5 ) ? instanceColorStart : instanceColorEnd; - - #endif - - #ifdef USE_DASH - - vLineDistance = ( position.y < 0.5 ) ? dashScale * instanceDistanceStart : dashScale * instanceDistanceEnd; - vUv = uv; - - #endif - - float aspect = resolution.x / resolution.y; - - // camera space - vec4 start = modelViewMatrix * vec4( instanceStart, 1.0 ); - vec4 end = modelViewMatrix * vec4( instanceEnd, 1.0 ); - - #ifdef WORLD_UNITS - - worldStart = start.xyz; - worldEnd = end.xyz; - - #else - - vUv = uv; - - #endif - - // special case for perspective projection, and segments that terminate either in, or behind, the camera plane - // clearly the gpu firmware has a way of addressing this issue when projecting into ndc space - // but we need to perform ndc-space calculations in the shader, so we must address this issue directly - // perhaps there is a more elegant solution -- WestLangley - - bool perspective = ( projectionMatrix[ 2 ][ 3 ] == - 1.0 ); // 4th entry in the 3rd column - - if ( perspective ) { - - if ( start.z < 0.0 && end.z >= 0.0 ) { - - trimSegment( start, end ); - - } else if ( end.z < 0.0 && start.z >= 0.0 ) { - - trimSegment( end, start ); - - } - - } - - // clip space - vec4 clipStart = projectionMatrix * start; - vec4 clipEnd = projectionMatrix * end; - - // ndc space - vec3 ndcStart = clipStart.xyz / clipStart.w; - vec3 ndcEnd = clipEnd.xyz / clipEnd.w; - - // direction - vec2 dir = ndcEnd.xy - ndcStart.xy; - - // account for clip-space aspect ratio - dir.x *= aspect; - dir = normalize( dir ); - - #ifdef WORLD_UNITS - - // get the offset direction as perpendicular to the view vector - vec3 worldDir = normalize( end.xyz - start.xyz ); - vec3 offset; - if ( position.y < 0.5 ) { - - offset = normalize( cross( start.xyz, worldDir ) ); - - } else { - - offset = normalize( cross( end.xyz, worldDir ) ); - - } - - // sign flip - if ( position.x < 0.0 ) offset *= - 1.0; - - float forwardOffset = dot( worldDir, vec3( 0.0, 0.0, 1.0 ) ); - - // don't extend the line if we're rendering dashes because we - // won't be rendering the endcaps - #ifndef USE_DASH - - // extend the line bounds to encompass endcaps - start.xyz += - worldDir * linewidth * 0.5; - end.xyz += worldDir * linewidth * 0.5; - - // shift the position of the quad so it hugs the forward edge of the line - offset.xy -= dir * forwardOffset; - offset.z += 0.5; - - #endif - - // endcaps - if ( position.y > 1.0 || position.y < 0.0 ) { - - offset.xy += dir * 2.0 * forwardOffset; - - } - - // adjust for linewidth - offset *= linewidth * 0.5; - - // set the world position - worldPos = ( position.y < 0.5 ) ? start : end; - worldPos.xyz += offset; - - // project the worldpos - vec4 clip = projectionMatrix * worldPos; - - // shift the depth of the projected points so the line - // segments overlap neatly - vec3 clipPose = ( position.y < 0.5 ) ? ndcStart : ndcEnd; - clip.z = clipPose.z * clip.w; - - #else - - vec2 offset = vec2( dir.y, - dir.x ); - // undo aspect ratio adjustment - dir.x /= aspect; - offset.x /= aspect; - - // sign flip - if ( position.x < 0.0 ) offset *= - 1.0; - - // endcaps - if ( position.y < 0.0 ) { - - offset += - dir; - - } else if ( position.y > 1.0 ) { - - offset += dir; - - } - - // adjust for linewidth - offset *= linewidth; - - // adjust for clip-space to screen-space conversion // maybe resolution should be based on viewport ... - offset /= resolution.y; - - // select end - vec4 clip = ( position.y < 0.5 ) ? clipStart : clipEnd; - - // back to clip space - offset *= clip.w; - - clip.xy += offset; - - #endif - - gl_Position = clip; - - vec4 mvPosition = ( position.y < 0.5 ) ? start : end; // this is an approximation - - #include - #include - #include - - } - `, - - fragmentShader: - /* glsl */` - uniform vec3 diffuse; - uniform float opacity; - uniform float linewidth; - - #ifdef USE_DASH - - uniform float dashOffset; - uniform float dashSize; - uniform float gapSize; - - #endif - - varying float vLineDistance; - - #ifdef WORLD_UNITS - - varying vec4 worldPos; - varying vec3 worldStart; - varying vec3 worldEnd; - - #ifdef USE_DASH - - varying vec2 vUv; - - #endif - - #else - - varying vec2 vUv; - - #endif - - #include - #include - #include - #include - #include - - vec2 closestLineToLine(vec3 p1, vec3 p2, vec3 p3, vec3 p4) { - - float mua; - float mub; - - vec3 p13 = p1 - p3; - vec3 p43 = p4 - p3; - - vec3 p21 = p2 - p1; - - float d1343 = dot( p13, p43 ); - float d4321 = dot( p43, p21 ); - float d1321 = dot( p13, p21 ); - float d4343 = dot( p43, p43 ); - float d2121 = dot( p21, p21 ); - - float denom = d2121 * d4343 - d4321 * d4321; - - float numer = d1343 * d4321 - d1321 * d4343; - - mua = numer / denom; - mua = clamp( mua, 0.0, 1.0 ); - mub = ( d1343 + d4321 * ( mua ) ) / d4343; - mub = clamp( mub, 0.0, 1.0 ); - - return vec2( mua, mub ); - - } - - void main() { - - #include - - #ifdef USE_DASH - - if ( vUv.y < - 1.0 || vUv.y > 1.0 ) discard; // discard endcaps - - if ( mod( vLineDistance + dashOffset, dashSize + gapSize ) > dashSize ) discard; // todo - FIX - - #endif - - float alpha = opacity; - - #ifdef WORLD_UNITS - - // Find the closest points on the view ray and the line segment - vec3 rayEnd = normalize( worldPos.xyz ) * 1e5; - vec3 lineDir = worldEnd - worldStart; - vec2 params = closestLineToLine( worldStart, worldEnd, vec3( 0.0, 0.0, 0.0 ), rayEnd ); - - vec3 p1 = worldStart + lineDir * params.x; - vec3 p2 = rayEnd * params.y; - vec3 delta = p1 - p2; - float len = length( delta ); - float norm = len / linewidth; - - #ifndef USE_DASH - - #ifdef USE_ALPHA_TO_COVERAGE - - float dnorm = fwidth( norm ); - alpha = 1.0 - smoothstep( 0.5 - dnorm, 0.5 + dnorm, norm ); - - #else - - if ( norm > 0.5 ) { - - discard; - - } - - #endif - - #endif - - #else - - #ifdef USE_ALPHA_TO_COVERAGE - - // artifacts appear on some hardware if a derivative is taken within a conditional - float a = vUv.x; - float b = ( vUv.y > 0.0 ) ? vUv.y - 1.0 : vUv.y + 1.0; - float len2 = a * a + b * b; - float dlen = fwidth( len2 ); - - if ( abs( vUv.y ) > 1.0 ) { - - alpha = 1.0 - smoothstep( 1.0 - dlen, 1.0 + dlen, len2 ); - - } - - #else - - if ( abs( vUv.y ) > 1.0 ) { - - float a = vUv.x; - float b = ( vUv.y > 0.0 ) ? vUv.y - 1.0 : vUv.y + 1.0; - float len2 = a * a + b * b; - - if ( len2 > 1.0 ) discard; - - } - - #endif - - #endif - - vec4 diffuseColor = vec4( diffuse, alpha ); - - #include - #include - - gl_FragColor = vec4( diffuseColor.rgb, alpha ); - - #include - #include - #include - #include - - } - ` + return leadingNulls(val, 2); + }, "%w": function(date2) { + return date2.tm_wday; + }, "%W": function(date2) { + var days = date2.tm_yday + 7 - (date2.tm_wday + 6) % 7; + return leadingNulls(Math.floor(days / 7), 2); + }, "%y": function(date2) { + return (date2.tm_year + 1900).toString().substring(2); + }, "%Y": function(date2) { + return date2.tm_year + 1900; + }, "%z": function(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(date2) { + return date2.tm_zone; + }, "%%": function() { + return "%"; + } }; + pattern = pattern.replace(/%%/g, "\0\0"); + for (var rule in EXPANSION_RULES_2) { + if (pattern.includes(rule)) { + pattern = pattern.replace(new RegExp(rule, "g"), EXPANSION_RULES_2[rule](date)); + } + } + pattern = pattern.replace(/\0\0/g, "%"); + var bytes = intArrayFromString(pattern, false); + if (bytes.length > maxsize) { + return 0; + } + writeArrayToMemory(bytes, s); + return bytes.length - 1; + } + function _strftime_l(s, maxsize, format, tm, loc) { + return _strftime(s, maxsize, format, tm); + } + InternalError = Module["InternalError"] = extendError(Error, "InternalError"); + embind_init_charCodes(); + BindingError = Module["BindingError"] = extendError(Error, "BindingError"); + init_ClassHandle(); + init_embind(); + init_RegisteredPointer(); + UnboundTypeError = Module["UnboundTypeError"] = extendError(Error, "UnboundTypeError"); + init_emval(); + var FSNode = function(parent, name, mode, rdev) { + if (!parent) { + parent = this; + } + this.parent = parent; + this.mount = parent.mount; + this.mounted = null; + this.id = FS.nextInode++; + this.name = name; + this.mode = mode; + this.node_ops = {}; + this.stream_ops = {}; + this.rdev = rdev; + }; + var readMode = 292 | 73; + var writeMode = 146; + Object.defineProperties(FSNode.prototype, { read: { get: function() { + return (this.mode & readMode) === readMode; + }, set: function(val) { + val ? this.mode |= readMode : this.mode &= ~readMode; + } }, write: { get: function() { + return (this.mode & writeMode) === writeMode; + }, set: function(val) { + val ? this.mode |= writeMode : this.mode &= ~writeMode; + } }, isFolder: { get: function() { + return FS.isDir(this.mode); + } }, isDevice: { get: function() { + return FS.isChrdev(this.mode); + } } }); + FS.FSNode = FSNode; + FS.staticInit(); + var wasmImports = { "g": ___cxa_throw, "S": __embind_finalize_value_array, "q": __embind_finalize_value_object, "G": __embind_register_bigint, "Q": __embind_register_bool, "p": __embind_register_class, "o": __embind_register_class_constructor, "b": __embind_register_class_function, "P": __embind_register_emval, "C": __embind_register_enum, "t": __embind_register_enum_value, "A": __embind_register_float, "c": __embind_register_function, "s": __embind_register_integer, "i": __embind_register_memory_view, "B": __embind_register_std_string, "w": __embind_register_std_wstring, "T": __embind_register_value_array, "l": __embind_register_value_array_element, "r": __embind_register_value_object, "e": __embind_register_value_object_field, "R": __embind_register_void, "k": __emval_as, "v": __emval_call, "a": __emval_decref, "y": __emval_get_global, "h": __emval_get_property, "n": __emval_incref, "E": __emval_instanceof, "x": __emval_is_number, "D": __emval_is_string, "U": __emval_new_array, "f": __emval_new_cstring, "u": __emval_new_object, "j": __emval_run_destructors, "m": __emval_set_property, "d": __emval_take_value, "z": _abort, "O": _emscripten_memcpy_big, "M": _emscripten_resize_heap, "I": _environ_get, "J": _environ_sizes_get, "K": _fd_close, "L": _fd_read, "F": _fd_seek, "N": _fd_write, "H": _strftime_l }; + createWasm(); + var _malloc = function() { + return (_malloc = Module["asm"]["Y"]).apply(null, arguments); + }; + var ___getTypeName = Module["___getTypeName"] = function() { + return (___getTypeName = Module["___getTypeName"] = Module["asm"]["Z"]).apply(null, arguments); + }; + Module["__embind_initialize_bindings"] = function() { + return (Module["__embind_initialize_bindings"] = Module["asm"]["_"]).apply(null, arguments); + }; + var _free = function() { + return (_free = Module["asm"]["$"]).apply(null, arguments); + }; + var ___cxa_is_pointer_type = function() { + return (___cxa_is_pointer_type = Module["asm"]["aa"]).apply(null, arguments); + }; + Module["dynCall_jiji"] = function() { + return (Module["dynCall_jiji"] = Module["asm"]["ba"]).apply(null, arguments); + }; + Module["dynCall_viijii"] = function() { + return (Module["dynCall_viijii"] = Module["asm"]["ca"]).apply(null, arguments); + }; + Module["dynCall_iiiiij"] = function() { + return (Module["dynCall_iiiiij"] = Module["asm"]["da"]).apply(null, arguments); + }; + Module["dynCall_iiiiijj"] = function() { + return (Module["dynCall_iiiiijj"] = Module["asm"]["ea"]).apply(null, arguments); + }; + Module["dynCall_iiiiiijj"] = function() { + return (Module["dynCall_iiiiiijj"] = Module["asm"]["fa"]).apply(null, arguments); + }; + var calledRun; + dependenciesFulfilled = function runCaller() { + if (!calledRun) + run(); + if (!calledRun) + dependenciesFulfilled = runCaller; + }; + function run() { + if (runDependencies > 0) { + return; + } + preRun(); + if (runDependencies > 0) { + return; + } + function doRun() { + if (calledRun) + return; + calledRun = true; + Module["calledRun"] = true; + if (ABORT) + return; + initRuntime(); + readyPromiseResolve(Module); + if (Module["onRuntimeInitialized"]) + Module["onRuntimeInitialized"](); + postRun(); + } + if (Module["setStatus"]) { + Module["setStatus"]("Running..."); + setTimeout(function() { + setTimeout(function() { + Module["setStatus"](""); + }, 1); + doRun(); + }, 1); + } else { + doRun(); + } + } + if (Module["preInit"]) { + if (typeof Module["preInit"] == "function") + Module["preInit"] = [Module["preInit"]]; + while (Module["preInit"].length > 0) { + Module["preInit"].pop()(); + } + } + run(); + return 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; + } +}); +var Handle = class { + constructor(value) { + this.value = value; + this.type = 5; + } }; - -new Vector3(); -new Vector3(); - -new Vector4(); -new Vector4(); - -new Vector4(); -new Vector3(); -new Matrix4(); -new Line3(); -new Vector3(); - -new Box3(); -new Sphere(); -new Vector4(); - -let Handle$3 = class Handle { - static seed = 0; - - static next() { - return (++Handle$3.seed).toString(16).toUpperCase(); +var IfcLineObject = class { + constructor(expressID) { + this.expressID = expressID; + this.type = 0; + } +}; +var Schemas; +(function(Schemas2) { + Schemas2["IFC2X3"] = "IFC2X3"; + Schemas2["IFC4"] = "IFC4"; + Schemas2["IFC4X3"] = "IFC4X3"; +})(Schemas || (Schemas = {})); +var IFC2X3; +(function(IFC2X32) { + class IfcAbsorbedDoseMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcAbsorbedDoseMeasure = IfcAbsorbedDoseMeasure; + class IfcAccelerationMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcAccelerationMeasure = IfcAccelerationMeasure; + class IfcAmountOfSubstanceMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcAmountOfSubstanceMeasure = IfcAmountOfSubstanceMeasure; + class IfcAngularVelocityMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcAngularVelocityMeasure = IfcAngularVelocityMeasure; + class IfcAreaMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcAreaMeasure = IfcAreaMeasure; + class IfcBoolean { + constructor(v) { + this.type = 3; + this.value = v == "true" ? true : false; + } + } + IFC2X32.IfcBoolean = IfcBoolean; + class IfcBoxAlignment { + constructor(value) { + this.value = value; + this.type = 1; + } + } + IFC2X32.IfcBoxAlignment = IfcBoxAlignment; + class IfcComplexNumber { + constructor(value) { + this.value = value; + } + } + IFC2X32.IfcComplexNumber = IfcComplexNumber; + class IfcCompoundPlaneAngleMeasure { + constructor(value) { + this.value = value; + } + } + IFC2X32.IfcCompoundPlaneAngleMeasure = IfcCompoundPlaneAngleMeasure; + class IfcContextDependentMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcContextDependentMeasure = IfcContextDependentMeasure; + class IfcCountMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcCountMeasure = IfcCountMeasure; + class IfcCurvatureMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcCurvatureMeasure = IfcCurvatureMeasure; + class IfcDayInMonthNumber { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcDayInMonthNumber = IfcDayInMonthNumber; + class IfcDaylightSavingHour { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcDaylightSavingHour = IfcDaylightSavingHour; + class IfcDescriptiveMeasure { + constructor(value) { + this.value = value; + this.type = 1; + } + } + IFC2X32.IfcDescriptiveMeasure = IfcDescriptiveMeasure; + class IfcDimensionCount { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcDimensionCount = IfcDimensionCount; + class IfcDoseEquivalentMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcDoseEquivalentMeasure = IfcDoseEquivalentMeasure; + class IfcDynamicViscosityMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcDynamicViscosityMeasure = IfcDynamicViscosityMeasure; + class IfcElectricCapacitanceMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcElectricCapacitanceMeasure = IfcElectricCapacitanceMeasure; + class IfcElectricChargeMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcElectricChargeMeasure = IfcElectricChargeMeasure; + class IfcElectricConductanceMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcElectricConductanceMeasure = IfcElectricConductanceMeasure; + class IfcElectricCurrentMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcElectricCurrentMeasure = IfcElectricCurrentMeasure; + class IfcElectricResistanceMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcElectricResistanceMeasure = IfcElectricResistanceMeasure; + class IfcElectricVoltageMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcElectricVoltageMeasure = IfcElectricVoltageMeasure; + class IfcEnergyMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcEnergyMeasure = IfcEnergyMeasure; + class IfcFontStyle { + constructor(value) { + this.value = value; + this.type = 1; + } + } + IFC2X32.IfcFontStyle = IfcFontStyle; + class IfcFontVariant { + constructor(value) { + this.value = value; + this.type = 1; + } + } + IFC2X32.IfcFontVariant = IfcFontVariant; + class IfcFontWeight { + constructor(value) { + this.value = value; + this.type = 1; + } + } + IFC2X32.IfcFontWeight = IfcFontWeight; + class IfcForceMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcForceMeasure = IfcForceMeasure; + class IfcFrequencyMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcFrequencyMeasure = IfcFrequencyMeasure; + class IfcGloballyUniqueId { + constructor(value) { + this.value = value; + this.type = 1; + } + } + IFC2X32.IfcGloballyUniqueId = IfcGloballyUniqueId; + class IfcHeatFluxDensityMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcHeatFluxDensityMeasure = IfcHeatFluxDensityMeasure; + class IfcHeatingValueMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcHeatingValueMeasure = IfcHeatingValueMeasure; + class IfcHourInDay { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcHourInDay = IfcHourInDay; + class IfcIdentifier { + constructor(value) { + this.value = value; + this.type = 1; + } + } + IFC2X32.IfcIdentifier = IfcIdentifier; + class IfcIlluminanceMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcIlluminanceMeasure = IfcIlluminanceMeasure; + class IfcInductanceMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcInductanceMeasure = IfcInductanceMeasure; + class IfcInteger { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcInteger = IfcInteger; + class IfcIntegerCountRateMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcIntegerCountRateMeasure = IfcIntegerCountRateMeasure; + class IfcIonConcentrationMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcIonConcentrationMeasure = IfcIonConcentrationMeasure; + class IfcIsothermalMoistureCapacityMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcIsothermalMoistureCapacityMeasure = IfcIsothermalMoistureCapacityMeasure; + class IfcKinematicViscosityMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcKinematicViscosityMeasure = IfcKinematicViscosityMeasure; + class IfcLabel { + constructor(value) { + this.value = value; + this.type = 1; + } + } + IFC2X32.IfcLabel = IfcLabel; + class IfcLengthMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcLengthMeasure = IfcLengthMeasure; + class IfcLinearForceMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcLinearForceMeasure = IfcLinearForceMeasure; + class IfcLinearMomentMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcLinearMomentMeasure = IfcLinearMomentMeasure; + class IfcLinearStiffnessMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcLinearStiffnessMeasure = IfcLinearStiffnessMeasure; + class IfcLinearVelocityMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcLinearVelocityMeasure = IfcLinearVelocityMeasure; + class IfcLogical { + constructor(v) { + this.type = 3; + this.value = v == "true" ? true : false; + } + } + IFC2X32.IfcLogical = IfcLogical; + class IfcLuminousFluxMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcLuminousFluxMeasure = IfcLuminousFluxMeasure; + class IfcLuminousIntensityDistributionMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcLuminousIntensityDistributionMeasure = IfcLuminousIntensityDistributionMeasure; + class IfcLuminousIntensityMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcLuminousIntensityMeasure = IfcLuminousIntensityMeasure; + class IfcMagneticFluxDensityMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcMagneticFluxDensityMeasure = IfcMagneticFluxDensityMeasure; + class IfcMagneticFluxMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcMagneticFluxMeasure = IfcMagneticFluxMeasure; + class IfcMassDensityMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcMassDensityMeasure = IfcMassDensityMeasure; + class IfcMassFlowRateMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcMassFlowRateMeasure = IfcMassFlowRateMeasure; + class IfcMassMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcMassMeasure = IfcMassMeasure; + class IfcMassPerLengthMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcMassPerLengthMeasure = IfcMassPerLengthMeasure; + class IfcMinuteInHour { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcMinuteInHour = IfcMinuteInHour; + class IfcModulusOfElasticityMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcModulusOfElasticityMeasure = IfcModulusOfElasticityMeasure; + class IfcModulusOfLinearSubgradeReactionMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcModulusOfLinearSubgradeReactionMeasure = IfcModulusOfLinearSubgradeReactionMeasure; + class IfcModulusOfRotationalSubgradeReactionMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcModulusOfRotationalSubgradeReactionMeasure = IfcModulusOfRotationalSubgradeReactionMeasure; + class IfcModulusOfSubgradeReactionMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcModulusOfSubgradeReactionMeasure = IfcModulusOfSubgradeReactionMeasure; + class IfcMoistureDiffusivityMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcMoistureDiffusivityMeasure = IfcMoistureDiffusivityMeasure; + class IfcMolecularWeightMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcMolecularWeightMeasure = IfcMolecularWeightMeasure; + class IfcMomentOfInertiaMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcMomentOfInertiaMeasure = IfcMomentOfInertiaMeasure; + class IfcMonetaryMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcMonetaryMeasure = IfcMonetaryMeasure; + class IfcMonthInYearNumber { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcMonthInYearNumber = IfcMonthInYearNumber; + class IfcNormalisedRatioMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcNormalisedRatioMeasure = IfcNormalisedRatioMeasure; + class IfcNumericMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcNumericMeasure = IfcNumericMeasure; + class IfcPHMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcPHMeasure = IfcPHMeasure; + class IfcParameterValue { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcParameterValue = IfcParameterValue; + class IfcPlanarForceMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcPlanarForceMeasure = IfcPlanarForceMeasure; + class IfcPlaneAngleMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcPlaneAngleMeasure = IfcPlaneAngleMeasure; + class IfcPositiveLengthMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcPositiveLengthMeasure = IfcPositiveLengthMeasure; + class IfcPositivePlaneAngleMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcPositivePlaneAngleMeasure = IfcPositivePlaneAngleMeasure; + class IfcPositiveRatioMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcPositiveRatioMeasure = IfcPositiveRatioMeasure; + class IfcPowerMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcPowerMeasure = IfcPowerMeasure; + class IfcPresentableText { + constructor(value) { + this.value = value; + this.type = 1; + } + } + IFC2X32.IfcPresentableText = IfcPresentableText; + class IfcPressureMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcPressureMeasure = IfcPressureMeasure; + class IfcRadioActivityMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcRadioActivityMeasure = IfcRadioActivityMeasure; + class IfcRatioMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcRatioMeasure = IfcRatioMeasure; + class IfcReal { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcReal = IfcReal; + class IfcRotationalFrequencyMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcRotationalFrequencyMeasure = IfcRotationalFrequencyMeasure; + class IfcRotationalMassMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcRotationalMassMeasure = IfcRotationalMassMeasure; + class IfcRotationalStiffnessMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcRotationalStiffnessMeasure = IfcRotationalStiffnessMeasure; + class IfcSecondInMinute { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcSecondInMinute = IfcSecondInMinute; + class IfcSectionModulusMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcSectionModulusMeasure = IfcSectionModulusMeasure; + class IfcSectionalAreaIntegralMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcSectionalAreaIntegralMeasure = IfcSectionalAreaIntegralMeasure; + class IfcShearModulusMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcShearModulusMeasure = IfcShearModulusMeasure; + class IfcSolidAngleMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcSolidAngleMeasure = IfcSolidAngleMeasure; + class IfcSoundPowerMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcSoundPowerMeasure = IfcSoundPowerMeasure; + class IfcSoundPressureMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcSoundPressureMeasure = IfcSoundPressureMeasure; + class IfcSpecificHeatCapacityMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcSpecificHeatCapacityMeasure = IfcSpecificHeatCapacityMeasure; + class IfcSpecularExponent { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcSpecularExponent = IfcSpecularExponent; + class IfcSpecularRoughness { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcSpecularRoughness = IfcSpecularRoughness; + class IfcTemperatureGradientMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcTemperatureGradientMeasure = IfcTemperatureGradientMeasure; + class IfcText { + constructor(value) { + this.value = value; + this.type = 1; + } + } + IFC2X32.IfcText = IfcText; + class IfcTextAlignment { + constructor(value) { + this.value = value; + this.type = 1; + } + } + IFC2X32.IfcTextAlignment = IfcTextAlignment; + class IfcTextDecoration { + constructor(value) { + this.value = value; + this.type = 1; + } + } + IFC2X32.IfcTextDecoration = IfcTextDecoration; + class IfcTextFontName { + constructor(value) { + this.value = value; + this.type = 1; + } + } + IFC2X32.IfcTextFontName = IfcTextFontName; + class IfcTextTransformation { + constructor(value) { + this.value = value; + this.type = 1; + } + } + IFC2X32.IfcTextTransformation = IfcTextTransformation; + class IfcThermalAdmittanceMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcThermalAdmittanceMeasure = IfcThermalAdmittanceMeasure; + class IfcThermalConductivityMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcThermalConductivityMeasure = IfcThermalConductivityMeasure; + class IfcThermalExpansionCoefficientMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcThermalExpansionCoefficientMeasure = IfcThermalExpansionCoefficientMeasure; + class IfcThermalResistanceMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcThermalResistanceMeasure = IfcThermalResistanceMeasure; + class IfcThermalTransmittanceMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcThermalTransmittanceMeasure = IfcThermalTransmittanceMeasure; + class IfcThermodynamicTemperatureMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcThermodynamicTemperatureMeasure = IfcThermodynamicTemperatureMeasure; + class IfcTimeMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcTimeMeasure = IfcTimeMeasure; + class IfcTimeStamp { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcTimeStamp = IfcTimeStamp; + class IfcTorqueMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcTorqueMeasure = IfcTorqueMeasure; + class IfcVaporPermeabilityMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcVaporPermeabilityMeasure = IfcVaporPermeabilityMeasure; + class IfcVolumeMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcVolumeMeasure = IfcVolumeMeasure; + class IfcVolumetricFlowRateMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcVolumetricFlowRateMeasure = IfcVolumetricFlowRateMeasure; + class IfcWarpingConstantMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcWarpingConstantMeasure = IfcWarpingConstantMeasure; + class IfcWarpingMomentMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcWarpingMomentMeasure = IfcWarpingMomentMeasure; + class IfcYearNumber { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC2X32.IfcYearNumber = IfcYearNumber; + class IfcActionSourceTypeEnum { + } + IfcActionSourceTypeEnum.DEAD_LOAD_G = { type: 3, value: "DEAD_LOAD_G" }; + IfcActionSourceTypeEnum.COMPLETION_G1 = { type: 3, value: "COMPLETION_G1" }; + IfcActionSourceTypeEnum.LIVE_LOAD_Q = { type: 3, value: "LIVE_LOAD_Q" }; + IfcActionSourceTypeEnum.SNOW_S = { type: 3, value: "SNOW_S" }; + IfcActionSourceTypeEnum.WIND_W = { type: 3, value: "WIND_W" }; + IfcActionSourceTypeEnum.PRESTRESSING_P = { type: 3, value: "PRESTRESSING_P" }; + IfcActionSourceTypeEnum.SETTLEMENT_U = { type: 3, value: "SETTLEMENT_U" }; + IfcActionSourceTypeEnum.TEMPERATURE_T = { type: 3, value: "TEMPERATURE_T" }; + IfcActionSourceTypeEnum.EARTHQUAKE_E = { type: 3, value: "EARTHQUAKE_E" }; + IfcActionSourceTypeEnum.FIRE = { type: 3, value: "FIRE" }; + IfcActionSourceTypeEnum.IMPULSE = { type: 3, value: "IMPULSE" }; + IfcActionSourceTypeEnum.IMPACT = { type: 3, value: "IMPACT" }; + IfcActionSourceTypeEnum.TRANSPORT = { type: 3, value: "TRANSPORT" }; + IfcActionSourceTypeEnum.ERECTION = { type: 3, value: "ERECTION" }; + IfcActionSourceTypeEnum.PROPPING = { type: 3, value: "PROPPING" }; + IfcActionSourceTypeEnum.SYSTEM_IMPERFECTION = { type: 3, value: "SYSTEM_IMPERFECTION" }; + IfcActionSourceTypeEnum.SHRINKAGE = { type: 3, value: "SHRINKAGE" }; + IfcActionSourceTypeEnum.CREEP = { type: 3, value: "CREEP" }; + IfcActionSourceTypeEnum.LACK_OF_FIT = { type: 3, value: "LACK_OF_FIT" }; + IfcActionSourceTypeEnum.BUOYANCY = { type: 3, value: "BUOYANCY" }; + IfcActionSourceTypeEnum.ICE = { type: 3, value: "ICE" }; + IfcActionSourceTypeEnum.CURRENT = { type: 3, value: "CURRENT" }; + IfcActionSourceTypeEnum.WAVE = { type: 3, value: "WAVE" }; + IfcActionSourceTypeEnum.RAIN = { type: 3, value: "RAIN" }; + IfcActionSourceTypeEnum.BRAKES = { type: 3, value: "BRAKES" }; + IfcActionSourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcActionSourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcActionSourceTypeEnum = IfcActionSourceTypeEnum; + class IfcActionTypeEnum { + } + IfcActionTypeEnum.PERMANENT_G = { type: 3, value: "PERMANENT_G" }; + IfcActionTypeEnum.VARIABLE_Q = { type: 3, value: "VARIABLE_Q" }; + IfcActionTypeEnum.EXTRAORDINARY_A = { type: 3, value: "EXTRAORDINARY_A" }; + IfcActionTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcActionTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcActionTypeEnum = IfcActionTypeEnum; + class IfcActuatorTypeEnum { + } + IfcActuatorTypeEnum.ELECTRICACTUATOR = { type: 3, value: "ELECTRICACTUATOR" }; + IfcActuatorTypeEnum.HANDOPERATEDACTUATOR = { type: 3, value: "HANDOPERATEDACTUATOR" }; + IfcActuatorTypeEnum.HYDRAULICACTUATOR = { type: 3, value: "HYDRAULICACTUATOR" }; + IfcActuatorTypeEnum.PNEUMATICACTUATOR = { type: 3, value: "PNEUMATICACTUATOR" }; + IfcActuatorTypeEnum.THERMOSTATICACTUATOR = { type: 3, value: "THERMOSTATICACTUATOR" }; + IfcActuatorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcActuatorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcActuatorTypeEnum = IfcActuatorTypeEnum; + class IfcAddressTypeEnum { + } + IfcAddressTypeEnum.OFFICE = { type: 3, value: "OFFICE" }; + IfcAddressTypeEnum.SITE = { type: 3, value: "SITE" }; + IfcAddressTypeEnum.HOME = { type: 3, value: "HOME" }; + IfcAddressTypeEnum.DISTRIBUTIONPOINT = { type: 3, value: "DISTRIBUTIONPOINT" }; + IfcAddressTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IFC2X32.IfcAddressTypeEnum = IfcAddressTypeEnum; + class IfcAheadOrBehind { + } + IfcAheadOrBehind.AHEAD = { type: 3, value: "AHEAD" }; + IfcAheadOrBehind.BEHIND = { type: 3, value: "BEHIND" }; + IFC2X32.IfcAheadOrBehind = IfcAheadOrBehind; + class IfcAirTerminalBoxTypeEnum { + } + IfcAirTerminalBoxTypeEnum.CONSTANTFLOW = { type: 3, value: "CONSTANTFLOW" }; + IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREDEPENDANT = { type: 3, value: "VARIABLEFLOWPRESSUREDEPENDANT" }; + IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREINDEPENDANT = { type: 3, value: "VARIABLEFLOWPRESSUREINDEPENDANT" }; + IfcAirTerminalBoxTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcAirTerminalBoxTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcAirTerminalBoxTypeEnum = IfcAirTerminalBoxTypeEnum; + class IfcAirTerminalTypeEnum { + } + IfcAirTerminalTypeEnum.GRILLE = { type: 3, value: "GRILLE" }; + IfcAirTerminalTypeEnum.REGISTER = { type: 3, value: "REGISTER" }; + IfcAirTerminalTypeEnum.DIFFUSER = { type: 3, value: "DIFFUSER" }; + IfcAirTerminalTypeEnum.EYEBALL = { type: 3, value: "EYEBALL" }; + IfcAirTerminalTypeEnum.IRIS = { type: 3, value: "IRIS" }; + IfcAirTerminalTypeEnum.LINEARGRILLE = { type: 3, value: "LINEARGRILLE" }; + IfcAirTerminalTypeEnum.LINEARDIFFUSER = { type: 3, value: "LINEARDIFFUSER" }; + IfcAirTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcAirTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcAirTerminalTypeEnum = IfcAirTerminalTypeEnum; + class IfcAirToAirHeatRecoveryTypeEnum { + } + IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECOUNTERFLOWEXCHANGER = { type: 3, value: "FIXEDPLATECOUNTERFLOWEXCHANGER" }; + IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECROSSFLOWEXCHANGER = { type: 3, value: "FIXEDPLATECROSSFLOWEXCHANGER" }; + IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATEPARALLELFLOWEXCHANGER = { type: 3, value: "FIXEDPLATEPARALLELFLOWEXCHANGER" }; + IfcAirToAirHeatRecoveryTypeEnum.ROTARYWHEEL = { type: 3, value: "ROTARYWHEEL" }; + IfcAirToAirHeatRecoveryTypeEnum.RUNAROUNDCOILLOOP = { type: 3, value: "RUNAROUNDCOILLOOP" }; + IfcAirToAirHeatRecoveryTypeEnum.HEATPIPE = { type: 3, value: "HEATPIPE" }; + IfcAirToAirHeatRecoveryTypeEnum.TWINTOWERENTHALPYRECOVERYLOOPS = { type: 3, value: "TWINTOWERENTHALPYRECOVERYLOOPS" }; + IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONSEALEDTUBEHEATEXCHANGERS = { type: 3, value: "THERMOSIPHONSEALEDTUBEHEATEXCHANGERS" }; + IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONCOILTYPEHEATEXCHANGERS = { type: 3, value: "THERMOSIPHONCOILTYPEHEATEXCHANGERS" }; + IfcAirToAirHeatRecoveryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcAirToAirHeatRecoveryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcAirToAirHeatRecoveryTypeEnum = IfcAirToAirHeatRecoveryTypeEnum; + class IfcAlarmTypeEnum { + } + IfcAlarmTypeEnum.BELL = { type: 3, value: "BELL" }; + IfcAlarmTypeEnum.BREAKGLASSBUTTON = { type: 3, value: "BREAKGLASSBUTTON" }; + IfcAlarmTypeEnum.LIGHT = { type: 3, value: "LIGHT" }; + IfcAlarmTypeEnum.MANUALPULLBOX = { type: 3, value: "MANUALPULLBOX" }; + IfcAlarmTypeEnum.SIREN = { type: 3, value: "SIREN" }; + IfcAlarmTypeEnum.WHISTLE = { type: 3, value: "WHISTLE" }; + IfcAlarmTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcAlarmTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcAlarmTypeEnum = IfcAlarmTypeEnum; + class IfcAnalysisModelTypeEnum { + } + IfcAnalysisModelTypeEnum.IN_PLANE_LOADING_2D = { type: 3, value: "IN_PLANE_LOADING_2D" }; + IfcAnalysisModelTypeEnum.OUT_PLANE_LOADING_2D = { type: 3, value: "OUT_PLANE_LOADING_2D" }; + IfcAnalysisModelTypeEnum.LOADING_3D = { type: 3, value: "LOADING_3D" }; + IfcAnalysisModelTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcAnalysisModelTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcAnalysisModelTypeEnum = IfcAnalysisModelTypeEnum; + class IfcAnalysisTheoryTypeEnum { + } + IfcAnalysisTheoryTypeEnum.FIRST_ORDER_THEORY = { type: 3, value: "FIRST_ORDER_THEORY" }; + IfcAnalysisTheoryTypeEnum.SECOND_ORDER_THEORY = { type: 3, value: "SECOND_ORDER_THEORY" }; + IfcAnalysisTheoryTypeEnum.THIRD_ORDER_THEORY = { type: 3, value: "THIRD_ORDER_THEORY" }; + IfcAnalysisTheoryTypeEnum.FULL_NONLINEAR_THEORY = { type: 3, value: "FULL_NONLINEAR_THEORY" }; + IfcAnalysisTheoryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcAnalysisTheoryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcAnalysisTheoryTypeEnum = IfcAnalysisTheoryTypeEnum; + class IfcArithmeticOperatorEnum { + } + IfcArithmeticOperatorEnum.ADD = { type: 3, value: "ADD" }; + IfcArithmeticOperatorEnum.DIVIDE = { type: 3, value: "DIVIDE" }; + IfcArithmeticOperatorEnum.MULTIPLY = { type: 3, value: "MULTIPLY" }; + IfcArithmeticOperatorEnum.SUBTRACT = { type: 3, value: "SUBTRACT" }; + IFC2X32.IfcArithmeticOperatorEnum = IfcArithmeticOperatorEnum; + class IfcAssemblyPlaceEnum { + } + IfcAssemblyPlaceEnum.SITE = { type: 3, value: "SITE" }; + IfcAssemblyPlaceEnum.FACTORY = { type: 3, value: "FACTORY" }; + IfcAssemblyPlaceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcAssemblyPlaceEnum = IfcAssemblyPlaceEnum; + class IfcBSplineCurveForm { + } + IfcBSplineCurveForm.POLYLINE_FORM = { type: 3, value: "POLYLINE_FORM" }; + IfcBSplineCurveForm.CIRCULAR_ARC = { type: 3, value: "CIRCULAR_ARC" }; + IfcBSplineCurveForm.ELLIPTIC_ARC = { type: 3, value: "ELLIPTIC_ARC" }; + IfcBSplineCurveForm.PARABOLIC_ARC = { type: 3, value: "PARABOLIC_ARC" }; + IfcBSplineCurveForm.HYPERBOLIC_ARC = { type: 3, value: "HYPERBOLIC_ARC" }; + IfcBSplineCurveForm.UNSPECIFIED = { type: 3, value: "UNSPECIFIED" }; + IFC2X32.IfcBSplineCurveForm = IfcBSplineCurveForm; + class IfcBeamTypeEnum { + } + IfcBeamTypeEnum.BEAM = { type: 3, value: "BEAM" }; + IfcBeamTypeEnum.JOIST = { type: 3, value: "JOIST" }; + IfcBeamTypeEnum.LINTEL = { type: 3, value: "LINTEL" }; + IfcBeamTypeEnum.T_BEAM = { type: 3, value: "T_BEAM" }; + IfcBeamTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcBeamTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcBeamTypeEnum = IfcBeamTypeEnum; + class IfcBenchmarkEnum { + } + IfcBenchmarkEnum.GREATERTHAN = { type: 3, value: "GREATERTHAN" }; + IfcBenchmarkEnum.GREATERTHANOREQUALTO = { type: 3, value: "GREATERTHANOREQUALTO" }; + IfcBenchmarkEnum.LESSTHAN = { type: 3, value: "LESSTHAN" }; + IfcBenchmarkEnum.LESSTHANOREQUALTO = { type: 3, value: "LESSTHANOREQUALTO" }; + IfcBenchmarkEnum.EQUALTO = { type: 3, value: "EQUALTO" }; + IfcBenchmarkEnum.NOTEQUALTO = { type: 3, value: "NOTEQUALTO" }; + IFC2X32.IfcBenchmarkEnum = IfcBenchmarkEnum; + class IfcBoilerTypeEnum { + } + IfcBoilerTypeEnum.WATER = { type: 3, value: "WATER" }; + IfcBoilerTypeEnum.STEAM = { type: 3, value: "STEAM" }; + IfcBoilerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcBoilerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcBoilerTypeEnum = IfcBoilerTypeEnum; + class IfcBooleanOperator { + } + IfcBooleanOperator.UNION = { type: 3, value: "UNION" }; + IfcBooleanOperator.INTERSECTION = { type: 3, value: "INTERSECTION" }; + IfcBooleanOperator.DIFFERENCE = { type: 3, value: "DIFFERENCE" }; + IFC2X32.IfcBooleanOperator = IfcBooleanOperator; + class IfcBuildingElementProxyTypeEnum { + } + IfcBuildingElementProxyTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcBuildingElementProxyTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcBuildingElementProxyTypeEnum = IfcBuildingElementProxyTypeEnum; + class IfcCableCarrierFittingTypeEnum { + } + IfcCableCarrierFittingTypeEnum.BEND = { type: 3, value: "BEND" }; + IfcCableCarrierFittingTypeEnum.CROSS = { type: 3, value: "CROSS" }; + IfcCableCarrierFittingTypeEnum.REDUCER = { type: 3, value: "REDUCER" }; + IfcCableCarrierFittingTypeEnum.TEE = { type: 3, value: "TEE" }; + IfcCableCarrierFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCableCarrierFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcCableCarrierFittingTypeEnum = IfcCableCarrierFittingTypeEnum; + class IfcCableCarrierSegmentTypeEnum { + } + IfcCableCarrierSegmentTypeEnum.CABLELADDERSEGMENT = { type: 3, value: "CABLELADDERSEGMENT" }; + IfcCableCarrierSegmentTypeEnum.CABLETRAYSEGMENT = { type: 3, value: "CABLETRAYSEGMENT" }; + IfcCableCarrierSegmentTypeEnum.CABLETRUNKINGSEGMENT = { type: 3, value: "CABLETRUNKINGSEGMENT" }; + IfcCableCarrierSegmentTypeEnum.CONDUITSEGMENT = { type: 3, value: "CONDUITSEGMENT" }; + IfcCableCarrierSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCableCarrierSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcCableCarrierSegmentTypeEnum = IfcCableCarrierSegmentTypeEnum; + class IfcCableSegmentTypeEnum { + } + IfcCableSegmentTypeEnum.CABLESEGMENT = { type: 3, value: "CABLESEGMENT" }; + IfcCableSegmentTypeEnum.CONDUCTORSEGMENT = { type: 3, value: "CONDUCTORSEGMENT" }; + IfcCableSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCableSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcCableSegmentTypeEnum = IfcCableSegmentTypeEnum; + class IfcChangeActionEnum { + } + IfcChangeActionEnum.NOCHANGE = { type: 3, value: "NOCHANGE" }; + IfcChangeActionEnum.MODIFIED = { type: 3, value: "MODIFIED" }; + IfcChangeActionEnum.ADDED = { type: 3, value: "ADDED" }; + IfcChangeActionEnum.DELETED = { type: 3, value: "DELETED" }; + IfcChangeActionEnum.MODIFIEDADDED = { type: 3, value: "MODIFIEDADDED" }; + IfcChangeActionEnum.MODIFIEDDELETED = { type: 3, value: "MODIFIEDDELETED" }; + IFC2X32.IfcChangeActionEnum = IfcChangeActionEnum; + class IfcChillerTypeEnum { + } + IfcChillerTypeEnum.AIRCOOLED = { type: 3, value: "AIRCOOLED" }; + IfcChillerTypeEnum.WATERCOOLED = { type: 3, value: "WATERCOOLED" }; + IfcChillerTypeEnum.HEATRECOVERY = { type: 3, value: "HEATRECOVERY" }; + IfcChillerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcChillerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcChillerTypeEnum = IfcChillerTypeEnum; + class IfcCoilTypeEnum { + } + IfcCoilTypeEnum.DXCOOLINGCOIL = { type: 3, value: "DXCOOLINGCOIL" }; + IfcCoilTypeEnum.WATERCOOLINGCOIL = { type: 3, value: "WATERCOOLINGCOIL" }; + IfcCoilTypeEnum.STEAMHEATINGCOIL = { type: 3, value: "STEAMHEATINGCOIL" }; + IfcCoilTypeEnum.WATERHEATINGCOIL = { type: 3, value: "WATERHEATINGCOIL" }; + IfcCoilTypeEnum.ELECTRICHEATINGCOIL = { type: 3, value: "ELECTRICHEATINGCOIL" }; + IfcCoilTypeEnum.GASHEATINGCOIL = { type: 3, value: "GASHEATINGCOIL" }; + IfcCoilTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCoilTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcCoilTypeEnum = IfcCoilTypeEnum; + class IfcColumnTypeEnum { + } + IfcColumnTypeEnum.COLUMN = { type: 3, value: "COLUMN" }; + IfcColumnTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcColumnTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcColumnTypeEnum = IfcColumnTypeEnum; + class IfcCompressorTypeEnum { + } + IfcCompressorTypeEnum.DYNAMIC = { type: 3, value: "DYNAMIC" }; + IfcCompressorTypeEnum.RECIPROCATING = { type: 3, value: "RECIPROCATING" }; + IfcCompressorTypeEnum.ROTARY = { type: 3, value: "ROTARY" }; + IfcCompressorTypeEnum.SCROLL = { type: 3, value: "SCROLL" }; + IfcCompressorTypeEnum.TROCHOIDAL = { type: 3, value: "TROCHOIDAL" }; + IfcCompressorTypeEnum.SINGLESTAGE = { type: 3, value: "SINGLESTAGE" }; + IfcCompressorTypeEnum.BOOSTER = { type: 3, value: "BOOSTER" }; + IfcCompressorTypeEnum.OPENTYPE = { type: 3, value: "OPENTYPE" }; + IfcCompressorTypeEnum.HERMETIC = { type: 3, value: "HERMETIC" }; + IfcCompressorTypeEnum.SEMIHERMETIC = { type: 3, value: "SEMIHERMETIC" }; + IfcCompressorTypeEnum.WELDEDSHELLHERMETIC = { type: 3, value: "WELDEDSHELLHERMETIC" }; + IfcCompressorTypeEnum.ROLLINGPISTON = { type: 3, value: "ROLLINGPISTON" }; + IfcCompressorTypeEnum.ROTARYVANE = { type: 3, value: "ROTARYVANE" }; + IfcCompressorTypeEnum.SINGLESCREW = { type: 3, value: "SINGLESCREW" }; + IfcCompressorTypeEnum.TWINSCREW = { type: 3, value: "TWINSCREW" }; + IfcCompressorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCompressorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcCompressorTypeEnum = IfcCompressorTypeEnum; + class IfcCondenserTypeEnum { + } + IfcCondenserTypeEnum.WATERCOOLEDSHELLTUBE = { type: 3, value: "WATERCOOLEDSHELLTUBE" }; + IfcCondenserTypeEnum.WATERCOOLEDSHELLCOIL = { type: 3, value: "WATERCOOLEDSHELLCOIL" }; + IfcCondenserTypeEnum.WATERCOOLEDTUBEINTUBE = { type: 3, value: "WATERCOOLEDTUBEINTUBE" }; + IfcCondenserTypeEnum.WATERCOOLEDBRAZEDPLATE = { type: 3, value: "WATERCOOLEDBRAZEDPLATE" }; + IfcCondenserTypeEnum.AIRCOOLED = { type: 3, value: "AIRCOOLED" }; + IfcCondenserTypeEnum.EVAPORATIVECOOLED = { type: 3, value: "EVAPORATIVECOOLED" }; + IfcCondenserTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCondenserTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcCondenserTypeEnum = IfcCondenserTypeEnum; + class IfcConnectionTypeEnum { + } + IfcConnectionTypeEnum.ATPATH = { type: 3, value: "ATPATH" }; + IfcConnectionTypeEnum.ATSTART = { type: 3, value: "ATSTART" }; + IfcConnectionTypeEnum.ATEND = { type: 3, value: "ATEND" }; + IfcConnectionTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcConnectionTypeEnum = IfcConnectionTypeEnum; + class IfcConstraintEnum { + } + IfcConstraintEnum.HARD = { type: 3, value: "HARD" }; + IfcConstraintEnum.SOFT = { type: 3, value: "SOFT" }; + IfcConstraintEnum.ADVISORY = { type: 3, value: "ADVISORY" }; + IfcConstraintEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcConstraintEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcConstraintEnum = IfcConstraintEnum; + class IfcControllerTypeEnum { + } + IfcControllerTypeEnum.FLOATING = { type: 3, value: "FLOATING" }; + IfcControllerTypeEnum.PROPORTIONAL = { type: 3, value: "PROPORTIONAL" }; + IfcControllerTypeEnum.PROPORTIONALINTEGRAL = { type: 3, value: "PROPORTIONALINTEGRAL" }; + IfcControllerTypeEnum.PROPORTIONALINTEGRALDERIVATIVE = { type: 3, value: "PROPORTIONALINTEGRALDERIVATIVE" }; + IfcControllerTypeEnum.TIMEDTWOPOSITION = { type: 3, value: "TIMEDTWOPOSITION" }; + IfcControllerTypeEnum.TWOPOSITION = { type: 3, value: "TWOPOSITION" }; + IfcControllerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcControllerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcControllerTypeEnum = IfcControllerTypeEnum; + class IfcCooledBeamTypeEnum { + } + IfcCooledBeamTypeEnum.ACTIVE = { type: 3, value: "ACTIVE" }; + IfcCooledBeamTypeEnum.PASSIVE = { type: 3, value: "PASSIVE" }; + IfcCooledBeamTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCooledBeamTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcCooledBeamTypeEnum = IfcCooledBeamTypeEnum; + class IfcCoolingTowerTypeEnum { + } + IfcCoolingTowerTypeEnum.NATURALDRAFT = { type: 3, value: "NATURALDRAFT" }; + IfcCoolingTowerTypeEnum.MECHANICALINDUCEDDRAFT = { type: 3, value: "MECHANICALINDUCEDDRAFT" }; + IfcCoolingTowerTypeEnum.MECHANICALFORCEDDRAFT = { type: 3, value: "MECHANICALFORCEDDRAFT" }; + IfcCoolingTowerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCoolingTowerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcCoolingTowerTypeEnum = IfcCoolingTowerTypeEnum; + class IfcCostScheduleTypeEnum { + } + IfcCostScheduleTypeEnum.BUDGET = { type: 3, value: "BUDGET" }; + IfcCostScheduleTypeEnum.COSTPLAN = { type: 3, value: "COSTPLAN" }; + IfcCostScheduleTypeEnum.ESTIMATE = { type: 3, value: "ESTIMATE" }; + IfcCostScheduleTypeEnum.TENDER = { type: 3, value: "TENDER" }; + IfcCostScheduleTypeEnum.PRICEDBILLOFQUANTITIES = { type: 3, value: "PRICEDBILLOFQUANTITIES" }; + IfcCostScheduleTypeEnum.UNPRICEDBILLOFQUANTITIES = { type: 3, value: "UNPRICEDBILLOFQUANTITIES" }; + IfcCostScheduleTypeEnum.SCHEDULEOFRATES = { type: 3, value: "SCHEDULEOFRATES" }; + IfcCostScheduleTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCostScheduleTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcCostScheduleTypeEnum = IfcCostScheduleTypeEnum; + class IfcCoveringTypeEnum { + } + IfcCoveringTypeEnum.CEILING = { type: 3, value: "CEILING" }; + IfcCoveringTypeEnum.FLOORING = { type: 3, value: "FLOORING" }; + IfcCoveringTypeEnum.CLADDING = { type: 3, value: "CLADDING" }; + IfcCoveringTypeEnum.ROOFING = { type: 3, value: "ROOFING" }; + IfcCoveringTypeEnum.INSULATION = { type: 3, value: "INSULATION" }; + IfcCoveringTypeEnum.MEMBRANE = { type: 3, value: "MEMBRANE" }; + IfcCoveringTypeEnum.SLEEVING = { type: 3, value: "SLEEVING" }; + IfcCoveringTypeEnum.WRAPPING = { type: 3, value: "WRAPPING" }; + IfcCoveringTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCoveringTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcCoveringTypeEnum = IfcCoveringTypeEnum; + class IfcCurrencyEnum { + } + IfcCurrencyEnum.AED = { type: 3, value: "AED" }; + IfcCurrencyEnum.AES = { type: 3, value: "AES" }; + IfcCurrencyEnum.ATS = { type: 3, value: "ATS" }; + IfcCurrencyEnum.AUD = { type: 3, value: "AUD" }; + IfcCurrencyEnum.BBD = { type: 3, value: "BBD" }; + IfcCurrencyEnum.BEG = { type: 3, value: "BEG" }; + IfcCurrencyEnum.BGL = { type: 3, value: "BGL" }; + IfcCurrencyEnum.BHD = { type: 3, value: "BHD" }; + IfcCurrencyEnum.BMD = { type: 3, value: "BMD" }; + IfcCurrencyEnum.BND = { type: 3, value: "BND" }; + IfcCurrencyEnum.BRL = { type: 3, value: "BRL" }; + IfcCurrencyEnum.BSD = { type: 3, value: "BSD" }; + IfcCurrencyEnum.BWP = { type: 3, value: "BWP" }; + IfcCurrencyEnum.BZD = { type: 3, value: "BZD" }; + IfcCurrencyEnum.CAD = { type: 3, value: "CAD" }; + IfcCurrencyEnum.CBD = { type: 3, value: "CBD" }; + IfcCurrencyEnum.CHF = { type: 3, value: "CHF" }; + IfcCurrencyEnum.CLP = { type: 3, value: "CLP" }; + IfcCurrencyEnum.CNY = { type: 3, value: "CNY" }; + IfcCurrencyEnum.CYS = { type: 3, value: "CYS" }; + IfcCurrencyEnum.CZK = { type: 3, value: "CZK" }; + IfcCurrencyEnum.DDP = { type: 3, value: "DDP" }; + IfcCurrencyEnum.DEM = { type: 3, value: "DEM" }; + IfcCurrencyEnum.DKK = { type: 3, value: "DKK" }; + IfcCurrencyEnum.EGL = { type: 3, value: "EGL" }; + IfcCurrencyEnum.EST = { type: 3, value: "EST" }; + IfcCurrencyEnum.EUR = { type: 3, value: "EUR" }; + IfcCurrencyEnum.FAK = { type: 3, value: "FAK" }; + IfcCurrencyEnum.FIM = { type: 3, value: "FIM" }; + IfcCurrencyEnum.FJD = { type: 3, value: "FJD" }; + IfcCurrencyEnum.FKP = { type: 3, value: "FKP" }; + IfcCurrencyEnum.FRF = { type: 3, value: "FRF" }; + IfcCurrencyEnum.GBP = { type: 3, value: "GBP" }; + IfcCurrencyEnum.GIP = { type: 3, value: "GIP" }; + IfcCurrencyEnum.GMD = { type: 3, value: "GMD" }; + IfcCurrencyEnum.GRX = { type: 3, value: "GRX" }; + IfcCurrencyEnum.HKD = { type: 3, value: "HKD" }; + IfcCurrencyEnum.HUF = { type: 3, value: "HUF" }; + IfcCurrencyEnum.ICK = { type: 3, value: "ICK" }; + IfcCurrencyEnum.IDR = { type: 3, value: "IDR" }; + IfcCurrencyEnum.ILS = { type: 3, value: "ILS" }; + IfcCurrencyEnum.INR = { type: 3, value: "INR" }; + IfcCurrencyEnum.IRP = { type: 3, value: "IRP" }; + IfcCurrencyEnum.ITL = { type: 3, value: "ITL" }; + IfcCurrencyEnum.JMD = { type: 3, value: "JMD" }; + IfcCurrencyEnum.JOD = { type: 3, value: "JOD" }; + IfcCurrencyEnum.JPY = { type: 3, value: "JPY" }; + IfcCurrencyEnum.KES = { type: 3, value: "KES" }; + IfcCurrencyEnum.KRW = { type: 3, value: "KRW" }; + IfcCurrencyEnum.KWD = { type: 3, value: "KWD" }; + IfcCurrencyEnum.KYD = { type: 3, value: "KYD" }; + IfcCurrencyEnum.LKR = { type: 3, value: "LKR" }; + IfcCurrencyEnum.LUF = { type: 3, value: "LUF" }; + IfcCurrencyEnum.MTL = { type: 3, value: "MTL" }; + IfcCurrencyEnum.MUR = { type: 3, value: "MUR" }; + IfcCurrencyEnum.MXN = { type: 3, value: "MXN" }; + IfcCurrencyEnum.MYR = { type: 3, value: "MYR" }; + IfcCurrencyEnum.NLG = { type: 3, value: "NLG" }; + IfcCurrencyEnum.NZD = { type: 3, value: "NZD" }; + IfcCurrencyEnum.OMR = { type: 3, value: "OMR" }; + IfcCurrencyEnum.PGK = { type: 3, value: "PGK" }; + IfcCurrencyEnum.PHP = { type: 3, value: "PHP" }; + IfcCurrencyEnum.PKR = { type: 3, value: "PKR" }; + IfcCurrencyEnum.PLN = { type: 3, value: "PLN" }; + IfcCurrencyEnum.PTN = { type: 3, value: "PTN" }; + IfcCurrencyEnum.QAR = { type: 3, value: "QAR" }; + IfcCurrencyEnum.RUR = { type: 3, value: "RUR" }; + IfcCurrencyEnum.SAR = { type: 3, value: "SAR" }; + IfcCurrencyEnum.SCR = { type: 3, value: "SCR" }; + IfcCurrencyEnum.SEK = { type: 3, value: "SEK" }; + IfcCurrencyEnum.SGD = { type: 3, value: "SGD" }; + IfcCurrencyEnum.SKP = { type: 3, value: "SKP" }; + IfcCurrencyEnum.THB = { type: 3, value: "THB" }; + IfcCurrencyEnum.TRL = { type: 3, value: "TRL" }; + IfcCurrencyEnum.TTD = { type: 3, value: "TTD" }; + IfcCurrencyEnum.TWD = { type: 3, value: "TWD" }; + IfcCurrencyEnum.USD = { type: 3, value: "USD" }; + IfcCurrencyEnum.VEB = { type: 3, value: "VEB" }; + IfcCurrencyEnum.VND = { type: 3, value: "VND" }; + IfcCurrencyEnum.XEU = { type: 3, value: "XEU" }; + IfcCurrencyEnum.ZAR = { type: 3, value: "ZAR" }; + IfcCurrencyEnum.ZWD = { type: 3, value: "ZWD" }; + IfcCurrencyEnum.NOK = { type: 3, value: "NOK" }; + IFC2X32.IfcCurrencyEnum = IfcCurrencyEnum; + class IfcCurtainWallTypeEnum { + } + IfcCurtainWallTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCurtainWallTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcCurtainWallTypeEnum = IfcCurtainWallTypeEnum; + class IfcDamperTypeEnum { + } + IfcDamperTypeEnum.CONTROLDAMPER = { type: 3, value: "CONTROLDAMPER" }; + IfcDamperTypeEnum.FIREDAMPER = { type: 3, value: "FIREDAMPER" }; + IfcDamperTypeEnum.SMOKEDAMPER = { type: 3, value: "SMOKEDAMPER" }; + IfcDamperTypeEnum.FIRESMOKEDAMPER = { type: 3, value: "FIRESMOKEDAMPER" }; + IfcDamperTypeEnum.BACKDRAFTDAMPER = { type: 3, value: "BACKDRAFTDAMPER" }; + IfcDamperTypeEnum.RELIEFDAMPER = { type: 3, value: "RELIEFDAMPER" }; + IfcDamperTypeEnum.BLASTDAMPER = { type: 3, value: "BLASTDAMPER" }; + IfcDamperTypeEnum.GRAVITYDAMPER = { type: 3, value: "GRAVITYDAMPER" }; + IfcDamperTypeEnum.GRAVITYRELIEFDAMPER = { type: 3, value: "GRAVITYRELIEFDAMPER" }; + IfcDamperTypeEnum.BALANCINGDAMPER = { type: 3, value: "BALANCINGDAMPER" }; + IfcDamperTypeEnum.FUMEHOODEXHAUST = { type: 3, value: "FUMEHOODEXHAUST" }; + IfcDamperTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDamperTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcDamperTypeEnum = IfcDamperTypeEnum; + class IfcDataOriginEnum { + } + IfcDataOriginEnum.MEASURED = { type: 3, value: "MEASURED" }; + IfcDataOriginEnum.PREDICTED = { type: 3, value: "PREDICTED" }; + IfcDataOriginEnum.SIMULATED = { type: 3, value: "SIMULATED" }; + IfcDataOriginEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDataOriginEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcDataOriginEnum = IfcDataOriginEnum; + class IfcDerivedUnitEnum { + } + IfcDerivedUnitEnum.ANGULARVELOCITYUNIT = { type: 3, value: "ANGULARVELOCITYUNIT" }; + IfcDerivedUnitEnum.COMPOUNDPLANEANGLEUNIT = { type: 3, value: "COMPOUNDPLANEANGLEUNIT" }; + IfcDerivedUnitEnum.DYNAMICVISCOSITYUNIT = { type: 3, value: "DYNAMICVISCOSITYUNIT" }; + IfcDerivedUnitEnum.HEATFLUXDENSITYUNIT = { type: 3, value: "HEATFLUXDENSITYUNIT" }; + IfcDerivedUnitEnum.INTEGERCOUNTRATEUNIT = { type: 3, value: "INTEGERCOUNTRATEUNIT" }; + IfcDerivedUnitEnum.ISOTHERMALMOISTURECAPACITYUNIT = { type: 3, value: "ISOTHERMALMOISTURECAPACITYUNIT" }; + IfcDerivedUnitEnum.KINEMATICVISCOSITYUNIT = { type: 3, value: "KINEMATICVISCOSITYUNIT" }; + IfcDerivedUnitEnum.LINEARVELOCITYUNIT = { type: 3, value: "LINEARVELOCITYUNIT" }; + IfcDerivedUnitEnum.MASSDENSITYUNIT = { type: 3, value: "MASSDENSITYUNIT" }; + IfcDerivedUnitEnum.MASSFLOWRATEUNIT = { type: 3, value: "MASSFLOWRATEUNIT" }; + IfcDerivedUnitEnum.MOISTUREDIFFUSIVITYUNIT = { type: 3, value: "MOISTUREDIFFUSIVITYUNIT" }; + IfcDerivedUnitEnum.MOLECULARWEIGHTUNIT = { type: 3, value: "MOLECULARWEIGHTUNIT" }; + IfcDerivedUnitEnum.SPECIFICHEATCAPACITYUNIT = { type: 3, value: "SPECIFICHEATCAPACITYUNIT" }; + IfcDerivedUnitEnum.THERMALADMITTANCEUNIT = { type: 3, value: "THERMALADMITTANCEUNIT" }; + IfcDerivedUnitEnum.THERMALCONDUCTANCEUNIT = { type: 3, value: "THERMALCONDUCTANCEUNIT" }; + IfcDerivedUnitEnum.THERMALRESISTANCEUNIT = { type: 3, value: "THERMALRESISTANCEUNIT" }; + IfcDerivedUnitEnum.THERMALTRANSMITTANCEUNIT = { type: 3, value: "THERMALTRANSMITTANCEUNIT" }; + IfcDerivedUnitEnum.VAPORPERMEABILITYUNIT = { type: 3, value: "VAPORPERMEABILITYUNIT" }; + IfcDerivedUnitEnum.VOLUMETRICFLOWRATEUNIT = { type: 3, value: "VOLUMETRICFLOWRATEUNIT" }; + IfcDerivedUnitEnum.ROTATIONALFREQUENCYUNIT = { type: 3, value: "ROTATIONALFREQUENCYUNIT" }; + IfcDerivedUnitEnum.TORQUEUNIT = { type: 3, value: "TORQUEUNIT" }; + IfcDerivedUnitEnum.MOMENTOFINERTIAUNIT = { type: 3, value: "MOMENTOFINERTIAUNIT" }; + IfcDerivedUnitEnum.LINEARMOMENTUNIT = { type: 3, value: "LINEARMOMENTUNIT" }; + IfcDerivedUnitEnum.LINEARFORCEUNIT = { type: 3, value: "LINEARFORCEUNIT" }; + IfcDerivedUnitEnum.PLANARFORCEUNIT = { type: 3, value: "PLANARFORCEUNIT" }; + IfcDerivedUnitEnum.MODULUSOFELASTICITYUNIT = { type: 3, value: "MODULUSOFELASTICITYUNIT" }; + IfcDerivedUnitEnum.SHEARMODULUSUNIT = { type: 3, value: "SHEARMODULUSUNIT" }; + IfcDerivedUnitEnum.LINEARSTIFFNESSUNIT = { type: 3, value: "LINEARSTIFFNESSUNIT" }; + IfcDerivedUnitEnum.ROTATIONALSTIFFNESSUNIT = { type: 3, value: "ROTATIONALSTIFFNESSUNIT" }; + IfcDerivedUnitEnum.MODULUSOFSUBGRADEREACTIONUNIT = { type: 3, value: "MODULUSOFSUBGRADEREACTIONUNIT" }; + IfcDerivedUnitEnum.ACCELERATIONUNIT = { type: 3, value: "ACCELERATIONUNIT" }; + IfcDerivedUnitEnum.CURVATUREUNIT = { type: 3, value: "CURVATUREUNIT" }; + IfcDerivedUnitEnum.HEATINGVALUEUNIT = { type: 3, value: "HEATINGVALUEUNIT" }; + IfcDerivedUnitEnum.IONCONCENTRATIONUNIT = { type: 3, value: "IONCONCENTRATIONUNIT" }; + IfcDerivedUnitEnum.LUMINOUSINTENSITYDISTRIBUTIONUNIT = { type: 3, value: "LUMINOUSINTENSITYDISTRIBUTIONUNIT" }; + IfcDerivedUnitEnum.MASSPERLENGTHUNIT = { type: 3, value: "MASSPERLENGTHUNIT" }; + IfcDerivedUnitEnum.MODULUSOFLINEARSUBGRADEREACTIONUNIT = { type: 3, value: "MODULUSOFLINEARSUBGRADEREACTIONUNIT" }; + IfcDerivedUnitEnum.MODULUSOFROTATIONALSUBGRADEREACTIONUNIT = { type: 3, value: "MODULUSOFROTATIONALSUBGRADEREACTIONUNIT" }; + IfcDerivedUnitEnum.PHUNIT = { type: 3, value: "PHUNIT" }; + IfcDerivedUnitEnum.ROTATIONALMASSUNIT = { type: 3, value: "ROTATIONALMASSUNIT" }; + IfcDerivedUnitEnum.SECTIONAREAINTEGRALUNIT = { type: 3, value: "SECTIONAREAINTEGRALUNIT" }; + IfcDerivedUnitEnum.SECTIONMODULUSUNIT = { type: 3, value: "SECTIONMODULUSUNIT" }; + IfcDerivedUnitEnum.SOUNDPOWERUNIT = { type: 3, value: "SOUNDPOWERUNIT" }; + IfcDerivedUnitEnum.SOUNDPRESSUREUNIT = { type: 3, value: "SOUNDPRESSUREUNIT" }; + IfcDerivedUnitEnum.TEMPERATUREGRADIENTUNIT = { type: 3, value: "TEMPERATUREGRADIENTUNIT" }; + IfcDerivedUnitEnum.THERMALEXPANSIONCOEFFICIENTUNIT = { type: 3, value: "THERMALEXPANSIONCOEFFICIENTUNIT" }; + IfcDerivedUnitEnum.WARPINGCONSTANTUNIT = { type: 3, value: "WARPINGCONSTANTUNIT" }; + IfcDerivedUnitEnum.WARPINGMOMENTUNIT = { type: 3, value: "WARPINGMOMENTUNIT" }; + IfcDerivedUnitEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IFC2X32.IfcDerivedUnitEnum = IfcDerivedUnitEnum; + class IfcDimensionExtentUsage { + } + IfcDimensionExtentUsage.ORIGIN = { type: 3, value: "ORIGIN" }; + IfcDimensionExtentUsage.TARGET = { type: 3, value: "TARGET" }; + IFC2X32.IfcDimensionExtentUsage = IfcDimensionExtentUsage; + class IfcDirectionSenseEnum { + } + IfcDirectionSenseEnum.POSITIVE = { type: 3, value: "POSITIVE" }; + IfcDirectionSenseEnum.NEGATIVE = { type: 3, value: "NEGATIVE" }; + IFC2X32.IfcDirectionSenseEnum = IfcDirectionSenseEnum; + class IfcDistributionChamberElementTypeEnum { + } + IfcDistributionChamberElementTypeEnum.FORMEDDUCT = { type: 3, value: "FORMEDDUCT" }; + IfcDistributionChamberElementTypeEnum.INSPECTIONCHAMBER = { type: 3, value: "INSPECTIONCHAMBER" }; + IfcDistributionChamberElementTypeEnum.INSPECTIONPIT = { type: 3, value: "INSPECTIONPIT" }; + IfcDistributionChamberElementTypeEnum.MANHOLE = { type: 3, value: "MANHOLE" }; + IfcDistributionChamberElementTypeEnum.METERCHAMBER = { type: 3, value: "METERCHAMBER" }; + IfcDistributionChamberElementTypeEnum.SUMP = { type: 3, value: "SUMP" }; + IfcDistributionChamberElementTypeEnum.TRENCH = { type: 3, value: "TRENCH" }; + IfcDistributionChamberElementTypeEnum.VALVECHAMBER = { type: 3, value: "VALVECHAMBER" }; + IfcDistributionChamberElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDistributionChamberElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcDistributionChamberElementTypeEnum = IfcDistributionChamberElementTypeEnum; + class IfcDocumentConfidentialityEnum { + } + IfcDocumentConfidentialityEnum.PUBLIC = { type: 3, value: "PUBLIC" }; + IfcDocumentConfidentialityEnum.RESTRICTED = { type: 3, value: "RESTRICTED" }; + IfcDocumentConfidentialityEnum.CONFIDENTIAL = { type: 3, value: "CONFIDENTIAL" }; + IfcDocumentConfidentialityEnum.PERSONAL = { type: 3, value: "PERSONAL" }; + IfcDocumentConfidentialityEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDocumentConfidentialityEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcDocumentConfidentialityEnum = IfcDocumentConfidentialityEnum; + class IfcDocumentStatusEnum { + } + IfcDocumentStatusEnum.DRAFT = { type: 3, value: "DRAFT" }; + IfcDocumentStatusEnum.FINALDRAFT = { type: 3, value: "FINALDRAFT" }; + IfcDocumentStatusEnum.FINAL = { type: 3, value: "FINAL" }; + IfcDocumentStatusEnum.REVISION = { type: 3, value: "REVISION" }; + IfcDocumentStatusEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcDocumentStatusEnum = IfcDocumentStatusEnum; + class IfcDoorPanelOperationEnum { + } + IfcDoorPanelOperationEnum.SWINGING = { type: 3, value: "SWINGING" }; + IfcDoorPanelOperationEnum.DOUBLE_ACTING = { type: 3, value: "DOUBLE_ACTING" }; + IfcDoorPanelOperationEnum.SLIDING = { type: 3, value: "SLIDING" }; + IfcDoorPanelOperationEnum.FOLDING = { type: 3, value: "FOLDING" }; + IfcDoorPanelOperationEnum.REVOLVING = { type: 3, value: "REVOLVING" }; + IfcDoorPanelOperationEnum.ROLLINGUP = { type: 3, value: "ROLLINGUP" }; + IfcDoorPanelOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDoorPanelOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcDoorPanelOperationEnum = IfcDoorPanelOperationEnum; + class IfcDoorPanelPositionEnum { + } + IfcDoorPanelPositionEnum.LEFT = { type: 3, value: "LEFT" }; + IfcDoorPanelPositionEnum.MIDDLE = { type: 3, value: "MIDDLE" }; + IfcDoorPanelPositionEnum.RIGHT = { type: 3, value: "RIGHT" }; + IfcDoorPanelPositionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcDoorPanelPositionEnum = IfcDoorPanelPositionEnum; + class IfcDoorStyleConstructionEnum { + } + IfcDoorStyleConstructionEnum.ALUMINIUM = { type: 3, value: "ALUMINIUM" }; + IfcDoorStyleConstructionEnum.HIGH_GRADE_STEEL = { type: 3, value: "HIGH_GRADE_STEEL" }; + IfcDoorStyleConstructionEnum.STEEL = { type: 3, value: "STEEL" }; + IfcDoorStyleConstructionEnum.WOOD = { type: 3, value: "WOOD" }; + IfcDoorStyleConstructionEnum.ALUMINIUM_WOOD = { type: 3, value: "ALUMINIUM_WOOD" }; + IfcDoorStyleConstructionEnum.ALUMINIUM_PLASTIC = { type: 3, value: "ALUMINIUM_PLASTIC" }; + IfcDoorStyleConstructionEnum.PLASTIC = { type: 3, value: "PLASTIC" }; + IfcDoorStyleConstructionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDoorStyleConstructionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcDoorStyleConstructionEnum = IfcDoorStyleConstructionEnum; + class IfcDoorStyleOperationEnum { + } + IfcDoorStyleOperationEnum.SINGLE_SWING_LEFT = { type: 3, value: "SINGLE_SWING_LEFT" }; + IfcDoorStyleOperationEnum.SINGLE_SWING_RIGHT = { type: 3, value: "SINGLE_SWING_RIGHT" }; + IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING" }; + IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT" }; + IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT" }; + IfcDoorStyleOperationEnum.DOUBLE_SWING_LEFT = { type: 3, value: "DOUBLE_SWING_LEFT" }; + IfcDoorStyleOperationEnum.DOUBLE_SWING_RIGHT = { type: 3, value: "DOUBLE_SWING_RIGHT" }; + IfcDoorStyleOperationEnum.DOUBLE_DOOR_DOUBLE_SWING = { type: 3, value: "DOUBLE_DOOR_DOUBLE_SWING" }; + IfcDoorStyleOperationEnum.SLIDING_TO_LEFT = { type: 3, value: "SLIDING_TO_LEFT" }; + IfcDoorStyleOperationEnum.SLIDING_TO_RIGHT = { type: 3, value: "SLIDING_TO_RIGHT" }; + IfcDoorStyleOperationEnum.DOUBLE_DOOR_SLIDING = { type: 3, value: "DOUBLE_DOOR_SLIDING" }; + IfcDoorStyleOperationEnum.FOLDING_TO_LEFT = { type: 3, value: "FOLDING_TO_LEFT" }; + IfcDoorStyleOperationEnum.FOLDING_TO_RIGHT = { type: 3, value: "FOLDING_TO_RIGHT" }; + IfcDoorStyleOperationEnum.DOUBLE_DOOR_FOLDING = { type: 3, value: "DOUBLE_DOOR_FOLDING" }; + IfcDoorStyleOperationEnum.REVOLVING = { type: 3, value: "REVOLVING" }; + IfcDoorStyleOperationEnum.ROLLINGUP = { type: 3, value: "ROLLINGUP" }; + IfcDoorStyleOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDoorStyleOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcDoorStyleOperationEnum = IfcDoorStyleOperationEnum; + class IfcDuctFittingTypeEnum { + } + IfcDuctFittingTypeEnum.BEND = { type: 3, value: "BEND" }; + IfcDuctFittingTypeEnum.CONNECTOR = { type: 3, value: "CONNECTOR" }; + IfcDuctFittingTypeEnum.ENTRY = { type: 3, value: "ENTRY" }; + IfcDuctFittingTypeEnum.EXIT = { type: 3, value: "EXIT" }; + IfcDuctFittingTypeEnum.JUNCTION = { type: 3, value: "JUNCTION" }; + IfcDuctFittingTypeEnum.OBSTRUCTION = { type: 3, value: "OBSTRUCTION" }; + IfcDuctFittingTypeEnum.TRANSITION = { type: 3, value: "TRANSITION" }; + IfcDuctFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDuctFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcDuctFittingTypeEnum = IfcDuctFittingTypeEnum; + class IfcDuctSegmentTypeEnum { + } + IfcDuctSegmentTypeEnum.RIGIDSEGMENT = { type: 3, value: "RIGIDSEGMENT" }; + IfcDuctSegmentTypeEnum.FLEXIBLESEGMENT = { type: 3, value: "FLEXIBLESEGMENT" }; + IfcDuctSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDuctSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcDuctSegmentTypeEnum = IfcDuctSegmentTypeEnum; + class IfcDuctSilencerTypeEnum { + } + IfcDuctSilencerTypeEnum.FLATOVAL = { type: 3, value: "FLATOVAL" }; + IfcDuctSilencerTypeEnum.RECTANGULAR = { type: 3, value: "RECTANGULAR" }; + IfcDuctSilencerTypeEnum.ROUND = { type: 3, value: "ROUND" }; + IfcDuctSilencerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDuctSilencerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcDuctSilencerTypeEnum = IfcDuctSilencerTypeEnum; + class IfcElectricApplianceTypeEnum { + } + IfcElectricApplianceTypeEnum.COMPUTER = { type: 3, value: "COMPUTER" }; + IfcElectricApplianceTypeEnum.DIRECTWATERHEATER = { type: 3, value: "DIRECTWATERHEATER" }; + IfcElectricApplianceTypeEnum.DISHWASHER = { type: 3, value: "DISHWASHER" }; + IfcElectricApplianceTypeEnum.ELECTRICCOOKER = { type: 3, value: "ELECTRICCOOKER" }; + IfcElectricApplianceTypeEnum.ELECTRICHEATER = { type: 3, value: "ELECTRICHEATER" }; + IfcElectricApplianceTypeEnum.FACSIMILE = { type: 3, value: "FACSIMILE" }; + IfcElectricApplianceTypeEnum.FREESTANDINGFAN = { type: 3, value: "FREESTANDINGFAN" }; + IfcElectricApplianceTypeEnum.FREEZER = { type: 3, value: "FREEZER" }; + IfcElectricApplianceTypeEnum.FRIDGE_FREEZER = { type: 3, value: "FRIDGE_FREEZER" }; + IfcElectricApplianceTypeEnum.HANDDRYER = { type: 3, value: "HANDDRYER" }; + IfcElectricApplianceTypeEnum.INDIRECTWATERHEATER = { type: 3, value: "INDIRECTWATERHEATER" }; + IfcElectricApplianceTypeEnum.MICROWAVE = { type: 3, value: "MICROWAVE" }; + IfcElectricApplianceTypeEnum.PHOTOCOPIER = { type: 3, value: "PHOTOCOPIER" }; + IfcElectricApplianceTypeEnum.PRINTER = { type: 3, value: "PRINTER" }; + IfcElectricApplianceTypeEnum.REFRIGERATOR = { type: 3, value: "REFRIGERATOR" }; + IfcElectricApplianceTypeEnum.RADIANTHEATER = { type: 3, value: "RADIANTHEATER" }; + IfcElectricApplianceTypeEnum.SCANNER = { type: 3, value: "SCANNER" }; + IfcElectricApplianceTypeEnum.TELEPHONE = { type: 3, value: "TELEPHONE" }; + IfcElectricApplianceTypeEnum.TUMBLEDRYER = { type: 3, value: "TUMBLEDRYER" }; + IfcElectricApplianceTypeEnum.TV = { type: 3, value: "TV" }; + IfcElectricApplianceTypeEnum.VENDINGMACHINE = { type: 3, value: "VENDINGMACHINE" }; + IfcElectricApplianceTypeEnum.WASHINGMACHINE = { type: 3, value: "WASHINGMACHINE" }; + IfcElectricApplianceTypeEnum.WATERHEATER = { type: 3, value: "WATERHEATER" }; + IfcElectricApplianceTypeEnum.WATERCOOLER = { type: 3, value: "WATERCOOLER" }; + IfcElectricApplianceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcElectricApplianceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcElectricApplianceTypeEnum = IfcElectricApplianceTypeEnum; + class IfcElectricCurrentEnum { + } + IfcElectricCurrentEnum.ALTERNATING = { type: 3, value: "ALTERNATING" }; + IfcElectricCurrentEnum.DIRECT = { type: 3, value: "DIRECT" }; + IfcElectricCurrentEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcElectricCurrentEnum = IfcElectricCurrentEnum; + class IfcElectricDistributionPointFunctionEnum { + } + IfcElectricDistributionPointFunctionEnum.ALARMPANEL = { type: 3, value: "ALARMPANEL" }; + IfcElectricDistributionPointFunctionEnum.CONSUMERUNIT = { type: 3, value: "CONSUMERUNIT" }; + IfcElectricDistributionPointFunctionEnum.CONTROLPANEL = { type: 3, value: "CONTROLPANEL" }; + IfcElectricDistributionPointFunctionEnum.DISTRIBUTIONBOARD = { type: 3, value: "DISTRIBUTIONBOARD" }; + IfcElectricDistributionPointFunctionEnum.GASDETECTORPANEL = { type: 3, value: "GASDETECTORPANEL" }; + IfcElectricDistributionPointFunctionEnum.INDICATORPANEL = { type: 3, value: "INDICATORPANEL" }; + IfcElectricDistributionPointFunctionEnum.MIMICPANEL = { type: 3, value: "MIMICPANEL" }; + IfcElectricDistributionPointFunctionEnum.MOTORCONTROLCENTRE = { type: 3, value: "MOTORCONTROLCENTRE" }; + IfcElectricDistributionPointFunctionEnum.SWITCHBOARD = { type: 3, value: "SWITCHBOARD" }; + IfcElectricDistributionPointFunctionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcElectricDistributionPointFunctionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcElectricDistributionPointFunctionEnum = IfcElectricDistributionPointFunctionEnum; + class IfcElectricFlowStorageDeviceTypeEnum { + } + IfcElectricFlowStorageDeviceTypeEnum.BATTERY = { type: 3, value: "BATTERY" }; + IfcElectricFlowStorageDeviceTypeEnum.CAPACITORBANK = { type: 3, value: "CAPACITORBANK" }; + IfcElectricFlowStorageDeviceTypeEnum.HARMONICFILTER = { type: 3, value: "HARMONICFILTER" }; + IfcElectricFlowStorageDeviceTypeEnum.INDUCTORBANK = { type: 3, value: "INDUCTORBANK" }; + IfcElectricFlowStorageDeviceTypeEnum.UPS = { type: 3, value: "UPS" }; + IfcElectricFlowStorageDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcElectricFlowStorageDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcElectricFlowStorageDeviceTypeEnum = IfcElectricFlowStorageDeviceTypeEnum; + class IfcElectricGeneratorTypeEnum { + } + IfcElectricGeneratorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcElectricGeneratorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcElectricGeneratorTypeEnum = IfcElectricGeneratorTypeEnum; + class IfcElectricHeaterTypeEnum { + } + IfcElectricHeaterTypeEnum.ELECTRICPOINTHEATER = { type: 3, value: "ELECTRICPOINTHEATER" }; + IfcElectricHeaterTypeEnum.ELECTRICCABLEHEATER = { type: 3, value: "ELECTRICCABLEHEATER" }; + IfcElectricHeaterTypeEnum.ELECTRICMATHEATER = { type: 3, value: "ELECTRICMATHEATER" }; + IfcElectricHeaterTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcElectricHeaterTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcElectricHeaterTypeEnum = IfcElectricHeaterTypeEnum; + class IfcElectricMotorTypeEnum { + } + IfcElectricMotorTypeEnum.DC = { type: 3, value: "DC" }; + IfcElectricMotorTypeEnum.INDUCTION = { type: 3, value: "INDUCTION" }; + IfcElectricMotorTypeEnum.POLYPHASE = { type: 3, value: "POLYPHASE" }; + IfcElectricMotorTypeEnum.RELUCTANCESYNCHRONOUS = { type: 3, value: "RELUCTANCESYNCHRONOUS" }; + IfcElectricMotorTypeEnum.SYNCHRONOUS = { type: 3, value: "SYNCHRONOUS" }; + IfcElectricMotorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcElectricMotorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcElectricMotorTypeEnum = IfcElectricMotorTypeEnum; + class IfcElectricTimeControlTypeEnum { + } + IfcElectricTimeControlTypeEnum.TIMECLOCK = { type: 3, value: "TIMECLOCK" }; + IfcElectricTimeControlTypeEnum.TIMEDELAY = { type: 3, value: "TIMEDELAY" }; + IfcElectricTimeControlTypeEnum.RELAY = { type: 3, value: "RELAY" }; + IfcElectricTimeControlTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcElectricTimeControlTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcElectricTimeControlTypeEnum = IfcElectricTimeControlTypeEnum; + class IfcElementAssemblyTypeEnum { + } + IfcElementAssemblyTypeEnum.ACCESSORY_ASSEMBLY = { type: 3, value: "ACCESSORY_ASSEMBLY" }; + IfcElementAssemblyTypeEnum.ARCH = { type: 3, value: "ARCH" }; + IfcElementAssemblyTypeEnum.BEAM_GRID = { type: 3, value: "BEAM_GRID" }; + IfcElementAssemblyTypeEnum.BRACED_FRAME = { type: 3, value: "BRACED_FRAME" }; + IfcElementAssemblyTypeEnum.GIRDER = { type: 3, value: "GIRDER" }; + IfcElementAssemblyTypeEnum.REINFORCEMENT_UNIT = { type: 3, value: "REINFORCEMENT_UNIT" }; + IfcElementAssemblyTypeEnum.RIGID_FRAME = { type: 3, value: "RIGID_FRAME" }; + IfcElementAssemblyTypeEnum.SLAB_FIELD = { type: 3, value: "SLAB_FIELD" }; + IfcElementAssemblyTypeEnum.TRUSS = { type: 3, value: "TRUSS" }; + IfcElementAssemblyTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcElementAssemblyTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcElementAssemblyTypeEnum = IfcElementAssemblyTypeEnum; + class IfcElementCompositionEnum { + } + IfcElementCompositionEnum.COMPLEX = { type: 3, value: "COMPLEX" }; + IfcElementCompositionEnum.ELEMENT = { type: 3, value: "ELEMENT" }; + IfcElementCompositionEnum.PARTIAL = { type: 3, value: "PARTIAL" }; + IFC2X32.IfcElementCompositionEnum = IfcElementCompositionEnum; + class IfcEnergySequenceEnum { + } + IfcEnergySequenceEnum.PRIMARY = { type: 3, value: "PRIMARY" }; + IfcEnergySequenceEnum.SECONDARY = { type: 3, value: "SECONDARY" }; + IfcEnergySequenceEnum.TERTIARY = { type: 3, value: "TERTIARY" }; + IfcEnergySequenceEnum.AUXILIARY = { type: 3, value: "AUXILIARY" }; + IfcEnergySequenceEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcEnergySequenceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcEnergySequenceEnum = IfcEnergySequenceEnum; + class IfcEnvironmentalImpactCategoryEnum { + } + IfcEnvironmentalImpactCategoryEnum.COMBINEDVALUE = { type: 3, value: "COMBINEDVALUE" }; + IfcEnvironmentalImpactCategoryEnum.DISPOSAL = { type: 3, value: "DISPOSAL" }; + IfcEnvironmentalImpactCategoryEnum.EXTRACTION = { type: 3, value: "EXTRACTION" }; + IfcEnvironmentalImpactCategoryEnum.INSTALLATION = { type: 3, value: "INSTALLATION" }; + IfcEnvironmentalImpactCategoryEnum.MANUFACTURE = { type: 3, value: "MANUFACTURE" }; + IfcEnvironmentalImpactCategoryEnum.TRANSPORTATION = { type: 3, value: "TRANSPORTATION" }; + IfcEnvironmentalImpactCategoryEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcEnvironmentalImpactCategoryEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcEnvironmentalImpactCategoryEnum = IfcEnvironmentalImpactCategoryEnum; + class IfcEvaporativeCoolerTypeEnum { + } + IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER" }; + IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER" }; + IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER" }; + IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER" }; + IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEAIRWASHER = { type: 3, value: "DIRECTEVAPORATIVEAIRWASHER" }; + IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEPACKAGEAIRCOOLER = { type: 3, value: "INDIRECTEVAPORATIVEPACKAGEAIRCOOLER" }; + IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEWETCOIL = { type: 3, value: "INDIRECTEVAPORATIVEWETCOIL" }; + IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER = { type: 3, value: "INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER" }; + IfcEvaporativeCoolerTypeEnum.INDIRECTDIRECTCOMBINATION = { type: 3, value: "INDIRECTDIRECTCOMBINATION" }; + IfcEvaporativeCoolerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcEvaporativeCoolerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcEvaporativeCoolerTypeEnum = IfcEvaporativeCoolerTypeEnum; + class IfcEvaporatorTypeEnum { + } + IfcEvaporatorTypeEnum.DIRECTEXPANSIONSHELLANDTUBE = { type: 3, value: "DIRECTEXPANSIONSHELLANDTUBE" }; + IfcEvaporatorTypeEnum.DIRECTEXPANSIONTUBEINTUBE = { type: 3, value: "DIRECTEXPANSIONTUBEINTUBE" }; + IfcEvaporatorTypeEnum.DIRECTEXPANSIONBRAZEDPLATE = { type: 3, value: "DIRECTEXPANSIONBRAZEDPLATE" }; + IfcEvaporatorTypeEnum.FLOODEDSHELLANDTUBE = { type: 3, value: "FLOODEDSHELLANDTUBE" }; + IfcEvaporatorTypeEnum.SHELLANDCOIL = { type: 3, value: "SHELLANDCOIL" }; + IfcEvaporatorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcEvaporatorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcEvaporatorTypeEnum = IfcEvaporatorTypeEnum; + class IfcFanTypeEnum { + } + IfcFanTypeEnum.CENTRIFUGALFORWARDCURVED = { type: 3, value: "CENTRIFUGALFORWARDCURVED" }; + IfcFanTypeEnum.CENTRIFUGALRADIAL = { type: 3, value: "CENTRIFUGALRADIAL" }; + IfcFanTypeEnum.CENTRIFUGALBACKWARDINCLINEDCURVED = { type: 3, value: "CENTRIFUGALBACKWARDINCLINEDCURVED" }; + IfcFanTypeEnum.CENTRIFUGALAIRFOIL = { type: 3, value: "CENTRIFUGALAIRFOIL" }; + IfcFanTypeEnum.TUBEAXIAL = { type: 3, value: "TUBEAXIAL" }; + IfcFanTypeEnum.VANEAXIAL = { type: 3, value: "VANEAXIAL" }; + IfcFanTypeEnum.PROPELLORAXIAL = { type: 3, value: "PROPELLORAXIAL" }; + IfcFanTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcFanTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcFanTypeEnum = IfcFanTypeEnum; + class IfcFilterTypeEnum { + } + IfcFilterTypeEnum.AIRPARTICLEFILTER = { type: 3, value: "AIRPARTICLEFILTER" }; + IfcFilterTypeEnum.ODORFILTER = { type: 3, value: "ODORFILTER" }; + IfcFilterTypeEnum.OILFILTER = { type: 3, value: "OILFILTER" }; + IfcFilterTypeEnum.STRAINER = { type: 3, value: "STRAINER" }; + IfcFilterTypeEnum.WATERFILTER = { type: 3, value: "WATERFILTER" }; + IfcFilterTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcFilterTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcFilterTypeEnum = IfcFilterTypeEnum; + class IfcFireSuppressionTerminalTypeEnum { + } + IfcFireSuppressionTerminalTypeEnum.BREECHINGINLET = { type: 3, value: "BREECHINGINLET" }; + IfcFireSuppressionTerminalTypeEnum.FIREHYDRANT = { type: 3, value: "FIREHYDRANT" }; + IfcFireSuppressionTerminalTypeEnum.HOSEREEL = { type: 3, value: "HOSEREEL" }; + IfcFireSuppressionTerminalTypeEnum.SPRINKLER = { type: 3, value: "SPRINKLER" }; + IfcFireSuppressionTerminalTypeEnum.SPRINKLERDEFLECTOR = { type: 3, value: "SPRINKLERDEFLECTOR" }; + IfcFireSuppressionTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcFireSuppressionTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcFireSuppressionTerminalTypeEnum = IfcFireSuppressionTerminalTypeEnum; + class IfcFlowDirectionEnum { + } + IfcFlowDirectionEnum.SOURCE = { type: 3, value: "SOURCE" }; + IfcFlowDirectionEnum.SINK = { type: 3, value: "SINK" }; + IfcFlowDirectionEnum.SOURCEANDSINK = { type: 3, value: "SOURCEANDSINK" }; + IfcFlowDirectionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcFlowDirectionEnum = IfcFlowDirectionEnum; + class IfcFlowInstrumentTypeEnum { + } + IfcFlowInstrumentTypeEnum.PRESSUREGAUGE = { type: 3, value: "PRESSUREGAUGE" }; + IfcFlowInstrumentTypeEnum.THERMOMETER = { type: 3, value: "THERMOMETER" }; + IfcFlowInstrumentTypeEnum.AMMETER = { type: 3, value: "AMMETER" }; + IfcFlowInstrumentTypeEnum.FREQUENCYMETER = { type: 3, value: "FREQUENCYMETER" }; + IfcFlowInstrumentTypeEnum.POWERFACTORMETER = { type: 3, value: "POWERFACTORMETER" }; + IfcFlowInstrumentTypeEnum.PHASEANGLEMETER = { type: 3, value: "PHASEANGLEMETER" }; + IfcFlowInstrumentTypeEnum.VOLTMETER_PEAK = { type: 3, value: "VOLTMETER_PEAK" }; + IfcFlowInstrumentTypeEnum.VOLTMETER_RMS = { type: 3, value: "VOLTMETER_RMS" }; + IfcFlowInstrumentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcFlowInstrumentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcFlowInstrumentTypeEnum = IfcFlowInstrumentTypeEnum; + class IfcFlowMeterTypeEnum { + } + IfcFlowMeterTypeEnum.ELECTRICMETER = { type: 3, value: "ELECTRICMETER" }; + IfcFlowMeterTypeEnum.ENERGYMETER = { type: 3, value: "ENERGYMETER" }; + IfcFlowMeterTypeEnum.FLOWMETER = { type: 3, value: "FLOWMETER" }; + IfcFlowMeterTypeEnum.GASMETER = { type: 3, value: "GASMETER" }; + IfcFlowMeterTypeEnum.OILMETER = { type: 3, value: "OILMETER" }; + IfcFlowMeterTypeEnum.WATERMETER = { type: 3, value: "WATERMETER" }; + IfcFlowMeterTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcFlowMeterTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcFlowMeterTypeEnum = IfcFlowMeterTypeEnum; + class IfcFootingTypeEnum { + } + IfcFootingTypeEnum.FOOTING_BEAM = { type: 3, value: "FOOTING_BEAM" }; + IfcFootingTypeEnum.PAD_FOOTING = { type: 3, value: "PAD_FOOTING" }; + IfcFootingTypeEnum.PILE_CAP = { type: 3, value: "PILE_CAP" }; + IfcFootingTypeEnum.STRIP_FOOTING = { type: 3, value: "STRIP_FOOTING" }; + IfcFootingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcFootingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcFootingTypeEnum = IfcFootingTypeEnum; + class IfcGasTerminalTypeEnum { + } + IfcGasTerminalTypeEnum.GASAPPLIANCE = { type: 3, value: "GASAPPLIANCE" }; + IfcGasTerminalTypeEnum.GASBOOSTER = { type: 3, value: "GASBOOSTER" }; + IfcGasTerminalTypeEnum.GASBURNER = { type: 3, value: "GASBURNER" }; + IfcGasTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcGasTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcGasTerminalTypeEnum = IfcGasTerminalTypeEnum; + class IfcGeometricProjectionEnum { + } + IfcGeometricProjectionEnum.GRAPH_VIEW = { type: 3, value: "GRAPH_VIEW" }; + IfcGeometricProjectionEnum.SKETCH_VIEW = { type: 3, value: "SKETCH_VIEW" }; + IfcGeometricProjectionEnum.MODEL_VIEW = { type: 3, value: "MODEL_VIEW" }; + IfcGeometricProjectionEnum.PLAN_VIEW = { type: 3, value: "PLAN_VIEW" }; + IfcGeometricProjectionEnum.REFLECTED_PLAN_VIEW = { type: 3, value: "REFLECTED_PLAN_VIEW" }; + IfcGeometricProjectionEnum.SECTION_VIEW = { type: 3, value: "SECTION_VIEW" }; + IfcGeometricProjectionEnum.ELEVATION_VIEW = { type: 3, value: "ELEVATION_VIEW" }; + IfcGeometricProjectionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcGeometricProjectionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcGeometricProjectionEnum = IfcGeometricProjectionEnum; + class IfcGlobalOrLocalEnum { + } + IfcGlobalOrLocalEnum.GLOBAL_COORDS = { type: 3, value: "GLOBAL_COORDS" }; + IfcGlobalOrLocalEnum.LOCAL_COORDS = { type: 3, value: "LOCAL_COORDS" }; + IFC2X32.IfcGlobalOrLocalEnum = IfcGlobalOrLocalEnum; + class IfcHeatExchangerTypeEnum { + } + IfcHeatExchangerTypeEnum.PLATE = { type: 3, value: "PLATE" }; + IfcHeatExchangerTypeEnum.SHELLANDTUBE = { type: 3, value: "SHELLANDTUBE" }; + IfcHeatExchangerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcHeatExchangerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcHeatExchangerTypeEnum = IfcHeatExchangerTypeEnum; + class IfcHumidifierTypeEnum { + } + IfcHumidifierTypeEnum.STEAMINJECTION = { type: 3, value: "STEAMINJECTION" }; + IfcHumidifierTypeEnum.ADIABATICAIRWASHER = { type: 3, value: "ADIABATICAIRWASHER" }; + IfcHumidifierTypeEnum.ADIABATICPAN = { type: 3, value: "ADIABATICPAN" }; + IfcHumidifierTypeEnum.ADIABATICWETTEDELEMENT = { type: 3, value: "ADIABATICWETTEDELEMENT" }; + IfcHumidifierTypeEnum.ADIABATICATOMIZING = { type: 3, value: "ADIABATICATOMIZING" }; + IfcHumidifierTypeEnum.ADIABATICULTRASONIC = { type: 3, value: "ADIABATICULTRASONIC" }; + IfcHumidifierTypeEnum.ADIABATICRIGIDMEDIA = { type: 3, value: "ADIABATICRIGIDMEDIA" }; + IfcHumidifierTypeEnum.ADIABATICCOMPRESSEDAIRNOZZLE = { type: 3, value: "ADIABATICCOMPRESSEDAIRNOZZLE" }; + IfcHumidifierTypeEnum.ASSISTEDELECTRIC = { type: 3, value: "ASSISTEDELECTRIC" }; + IfcHumidifierTypeEnum.ASSISTEDNATURALGAS = { type: 3, value: "ASSISTEDNATURALGAS" }; + IfcHumidifierTypeEnum.ASSISTEDPROPANE = { type: 3, value: "ASSISTEDPROPANE" }; + IfcHumidifierTypeEnum.ASSISTEDBUTANE = { type: 3, value: "ASSISTEDBUTANE" }; + IfcHumidifierTypeEnum.ASSISTEDSTEAM = { type: 3, value: "ASSISTEDSTEAM" }; + IfcHumidifierTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcHumidifierTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcHumidifierTypeEnum = IfcHumidifierTypeEnum; + class IfcInternalOrExternalEnum { + } + IfcInternalOrExternalEnum.INTERNAL = { type: 3, value: "INTERNAL" }; + IfcInternalOrExternalEnum.EXTERNAL = { type: 3, value: "EXTERNAL" }; + IfcInternalOrExternalEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcInternalOrExternalEnum = IfcInternalOrExternalEnum; + class IfcInventoryTypeEnum { + } + IfcInventoryTypeEnum.ASSETINVENTORY = { type: 3, value: "ASSETINVENTORY" }; + IfcInventoryTypeEnum.SPACEINVENTORY = { type: 3, value: "SPACEINVENTORY" }; + IfcInventoryTypeEnum.FURNITUREINVENTORY = { type: 3, value: "FURNITUREINVENTORY" }; + IfcInventoryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcInventoryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcInventoryTypeEnum = IfcInventoryTypeEnum; + class IfcJunctionBoxTypeEnum { + } + IfcJunctionBoxTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcJunctionBoxTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcJunctionBoxTypeEnum = IfcJunctionBoxTypeEnum; + class IfcLampTypeEnum { + } + IfcLampTypeEnum.COMPACTFLUORESCENT = { type: 3, value: "COMPACTFLUORESCENT" }; + IfcLampTypeEnum.FLUORESCENT = { type: 3, value: "FLUORESCENT" }; + IfcLampTypeEnum.HIGHPRESSUREMERCURY = { type: 3, value: "HIGHPRESSUREMERCURY" }; + IfcLampTypeEnum.HIGHPRESSURESODIUM = { type: 3, value: "HIGHPRESSURESODIUM" }; + IfcLampTypeEnum.METALHALIDE = { type: 3, value: "METALHALIDE" }; + IfcLampTypeEnum.TUNGSTENFILAMENT = { type: 3, value: "TUNGSTENFILAMENT" }; + IfcLampTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcLampTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcLampTypeEnum = IfcLampTypeEnum; + class IfcLayerSetDirectionEnum { + } + IfcLayerSetDirectionEnum.AXIS1 = { type: 3, value: "AXIS1" }; + IfcLayerSetDirectionEnum.AXIS2 = { type: 3, value: "AXIS2" }; + IfcLayerSetDirectionEnum.AXIS3 = { type: 3, value: "AXIS3" }; + IFC2X32.IfcLayerSetDirectionEnum = IfcLayerSetDirectionEnum; + class IfcLightDistributionCurveEnum { + } + IfcLightDistributionCurveEnum.TYPE_A = { type: 3, value: "TYPE_A" }; + IfcLightDistributionCurveEnum.TYPE_B = { type: 3, value: "TYPE_B" }; + IfcLightDistributionCurveEnum.TYPE_C = { type: 3, value: "TYPE_C" }; + IfcLightDistributionCurveEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcLightDistributionCurveEnum = IfcLightDistributionCurveEnum; + class IfcLightEmissionSourceEnum { + } + IfcLightEmissionSourceEnum.COMPACTFLUORESCENT = { type: 3, value: "COMPACTFLUORESCENT" }; + IfcLightEmissionSourceEnum.FLUORESCENT = { type: 3, value: "FLUORESCENT" }; + IfcLightEmissionSourceEnum.HIGHPRESSUREMERCURY = { type: 3, value: "HIGHPRESSUREMERCURY" }; + IfcLightEmissionSourceEnum.HIGHPRESSURESODIUM = { type: 3, value: "HIGHPRESSURESODIUM" }; + IfcLightEmissionSourceEnum.LIGHTEMITTINGDIODE = { type: 3, value: "LIGHTEMITTINGDIODE" }; + IfcLightEmissionSourceEnum.LOWPRESSURESODIUM = { type: 3, value: "LOWPRESSURESODIUM" }; + IfcLightEmissionSourceEnum.LOWVOLTAGEHALOGEN = { type: 3, value: "LOWVOLTAGEHALOGEN" }; + IfcLightEmissionSourceEnum.MAINVOLTAGEHALOGEN = { type: 3, value: "MAINVOLTAGEHALOGEN" }; + IfcLightEmissionSourceEnum.METALHALIDE = { type: 3, value: "METALHALIDE" }; + IfcLightEmissionSourceEnum.TUNGSTENFILAMENT = { type: 3, value: "TUNGSTENFILAMENT" }; + IfcLightEmissionSourceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcLightEmissionSourceEnum = IfcLightEmissionSourceEnum; + class IfcLightFixtureTypeEnum { + } + IfcLightFixtureTypeEnum.POINTSOURCE = { type: 3, value: "POINTSOURCE" }; + IfcLightFixtureTypeEnum.DIRECTIONSOURCE = { type: 3, value: "DIRECTIONSOURCE" }; + IfcLightFixtureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcLightFixtureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcLightFixtureTypeEnum = IfcLightFixtureTypeEnum; + class IfcLoadGroupTypeEnum { + } + IfcLoadGroupTypeEnum.LOAD_GROUP = { type: 3, value: "LOAD_GROUP" }; + IfcLoadGroupTypeEnum.LOAD_CASE = { type: 3, value: "LOAD_CASE" }; + IfcLoadGroupTypeEnum.LOAD_COMBINATION_GROUP = { type: 3, value: "LOAD_COMBINATION_GROUP" }; + IfcLoadGroupTypeEnum.LOAD_COMBINATION = { type: 3, value: "LOAD_COMBINATION" }; + IfcLoadGroupTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcLoadGroupTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcLoadGroupTypeEnum = IfcLoadGroupTypeEnum; + class IfcLogicalOperatorEnum { + } + IfcLogicalOperatorEnum.LOGICALAND = { type: 3, value: "LOGICALAND" }; + IfcLogicalOperatorEnum.LOGICALOR = { type: 3, value: "LOGICALOR" }; + IFC2X32.IfcLogicalOperatorEnum = IfcLogicalOperatorEnum; + class IfcMemberTypeEnum { + } + IfcMemberTypeEnum.BRACE = { type: 3, value: "BRACE" }; + IfcMemberTypeEnum.CHORD = { type: 3, value: "CHORD" }; + IfcMemberTypeEnum.COLLAR = { type: 3, value: "COLLAR" }; + IfcMemberTypeEnum.MEMBER = { type: 3, value: "MEMBER" }; + IfcMemberTypeEnum.MULLION = { type: 3, value: "MULLION" }; + IfcMemberTypeEnum.PLATE = { type: 3, value: "PLATE" }; + IfcMemberTypeEnum.POST = { type: 3, value: "POST" }; + IfcMemberTypeEnum.PURLIN = { type: 3, value: "PURLIN" }; + IfcMemberTypeEnum.RAFTER = { type: 3, value: "RAFTER" }; + IfcMemberTypeEnum.STRINGER = { type: 3, value: "STRINGER" }; + IfcMemberTypeEnum.STRUT = { type: 3, value: "STRUT" }; + IfcMemberTypeEnum.STUD = { type: 3, value: "STUD" }; + IfcMemberTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcMemberTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcMemberTypeEnum = IfcMemberTypeEnum; + class IfcMotorConnectionTypeEnum { + } + IfcMotorConnectionTypeEnum.BELTDRIVE = { type: 3, value: "BELTDRIVE" }; + IfcMotorConnectionTypeEnum.COUPLING = { type: 3, value: "COUPLING" }; + IfcMotorConnectionTypeEnum.DIRECTDRIVE = { type: 3, value: "DIRECTDRIVE" }; + IfcMotorConnectionTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcMotorConnectionTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcMotorConnectionTypeEnum = IfcMotorConnectionTypeEnum; + class IfcNullStyle { + } + IfcNullStyle.NULL = { type: 3, value: "NULL" }; + IFC2X32.IfcNullStyle = IfcNullStyle; + class IfcObjectTypeEnum { + } + IfcObjectTypeEnum.PRODUCT = { type: 3, value: "PRODUCT" }; + IfcObjectTypeEnum.PROCESS = { type: 3, value: "PROCESS" }; + IfcObjectTypeEnum.CONTROL = { type: 3, value: "CONTROL" }; + IfcObjectTypeEnum.RESOURCE = { type: 3, value: "RESOURCE" }; + IfcObjectTypeEnum.ACTOR = { type: 3, value: "ACTOR" }; + IfcObjectTypeEnum.GROUP = { type: 3, value: "GROUP" }; + IfcObjectTypeEnum.PROJECT = { type: 3, value: "PROJECT" }; + IfcObjectTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcObjectTypeEnum = IfcObjectTypeEnum; + class IfcObjectiveEnum { + } + IfcObjectiveEnum.CODECOMPLIANCE = { type: 3, value: "CODECOMPLIANCE" }; + IfcObjectiveEnum.DESIGNINTENT = { type: 3, value: "DESIGNINTENT" }; + IfcObjectiveEnum.HEALTHANDSAFETY = { type: 3, value: "HEALTHANDSAFETY" }; + IfcObjectiveEnum.REQUIREMENT = { type: 3, value: "REQUIREMENT" }; + IfcObjectiveEnum.SPECIFICATION = { type: 3, value: "SPECIFICATION" }; + IfcObjectiveEnum.TRIGGERCONDITION = { type: 3, value: "TRIGGERCONDITION" }; + IfcObjectiveEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcObjectiveEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcObjectiveEnum = IfcObjectiveEnum; + class IfcOccupantTypeEnum { + } + IfcOccupantTypeEnum.ASSIGNEE = { type: 3, value: "ASSIGNEE" }; + IfcOccupantTypeEnum.ASSIGNOR = { type: 3, value: "ASSIGNOR" }; + IfcOccupantTypeEnum.LESSEE = { type: 3, value: "LESSEE" }; + IfcOccupantTypeEnum.LESSOR = { type: 3, value: "LESSOR" }; + IfcOccupantTypeEnum.LETTINGAGENT = { type: 3, value: "LETTINGAGENT" }; + IfcOccupantTypeEnum.OWNER = { type: 3, value: "OWNER" }; + IfcOccupantTypeEnum.TENANT = { type: 3, value: "TENANT" }; + IfcOccupantTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcOccupantTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcOccupantTypeEnum = IfcOccupantTypeEnum; + class IfcOutletTypeEnum { + } + IfcOutletTypeEnum.AUDIOVISUALOUTLET = { type: 3, value: "AUDIOVISUALOUTLET" }; + IfcOutletTypeEnum.COMMUNICATIONSOUTLET = { type: 3, value: "COMMUNICATIONSOUTLET" }; + IfcOutletTypeEnum.POWEROUTLET = { type: 3, value: "POWEROUTLET" }; + IfcOutletTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcOutletTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcOutletTypeEnum = IfcOutletTypeEnum; + class IfcPermeableCoveringOperationEnum { + } + IfcPermeableCoveringOperationEnum.GRILL = { type: 3, value: "GRILL" }; + IfcPermeableCoveringOperationEnum.LOUVER = { type: 3, value: "LOUVER" }; + IfcPermeableCoveringOperationEnum.SCREEN = { type: 3, value: "SCREEN" }; + IfcPermeableCoveringOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcPermeableCoveringOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcPermeableCoveringOperationEnum = IfcPermeableCoveringOperationEnum; + class IfcPhysicalOrVirtualEnum { + } + IfcPhysicalOrVirtualEnum.PHYSICAL = { type: 3, value: "PHYSICAL" }; + IfcPhysicalOrVirtualEnum.VIRTUAL = { type: 3, value: "VIRTUAL" }; + IfcPhysicalOrVirtualEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcPhysicalOrVirtualEnum = IfcPhysicalOrVirtualEnum; + class IfcPileConstructionEnum { + } + IfcPileConstructionEnum.CAST_IN_PLACE = { type: 3, value: "CAST_IN_PLACE" }; + IfcPileConstructionEnum.COMPOSITE = { type: 3, value: "COMPOSITE" }; + IfcPileConstructionEnum.PRECAST_CONCRETE = { type: 3, value: "PRECAST_CONCRETE" }; + IfcPileConstructionEnum.PREFAB_STEEL = { type: 3, value: "PREFAB_STEEL" }; + IfcPileConstructionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcPileConstructionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcPileConstructionEnum = IfcPileConstructionEnum; + class IfcPileTypeEnum { + } + IfcPileTypeEnum.COHESION = { type: 3, value: "COHESION" }; + IfcPileTypeEnum.FRICTION = { type: 3, value: "FRICTION" }; + IfcPileTypeEnum.SUPPORT = { type: 3, value: "SUPPORT" }; + IfcPileTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcPileTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcPileTypeEnum = IfcPileTypeEnum; + class IfcPipeFittingTypeEnum { + } + IfcPipeFittingTypeEnum.BEND = { type: 3, value: "BEND" }; + IfcPipeFittingTypeEnum.CONNECTOR = { type: 3, value: "CONNECTOR" }; + IfcPipeFittingTypeEnum.ENTRY = { type: 3, value: "ENTRY" }; + IfcPipeFittingTypeEnum.EXIT = { type: 3, value: "EXIT" }; + IfcPipeFittingTypeEnum.JUNCTION = { type: 3, value: "JUNCTION" }; + IfcPipeFittingTypeEnum.OBSTRUCTION = { type: 3, value: "OBSTRUCTION" }; + IfcPipeFittingTypeEnum.TRANSITION = { type: 3, value: "TRANSITION" }; + IfcPipeFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcPipeFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcPipeFittingTypeEnum = IfcPipeFittingTypeEnum; + class IfcPipeSegmentTypeEnum { + } + IfcPipeSegmentTypeEnum.FLEXIBLESEGMENT = { type: 3, value: "FLEXIBLESEGMENT" }; + IfcPipeSegmentTypeEnum.RIGIDSEGMENT = { type: 3, value: "RIGIDSEGMENT" }; + IfcPipeSegmentTypeEnum.GUTTER = { type: 3, value: "GUTTER" }; + IfcPipeSegmentTypeEnum.SPOOL = { type: 3, value: "SPOOL" }; + IfcPipeSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcPipeSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcPipeSegmentTypeEnum = IfcPipeSegmentTypeEnum; + class IfcPlateTypeEnum { + } + IfcPlateTypeEnum.CURTAIN_PANEL = { type: 3, value: "CURTAIN_PANEL" }; + IfcPlateTypeEnum.SHEET = { type: 3, value: "SHEET" }; + IfcPlateTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcPlateTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcPlateTypeEnum = IfcPlateTypeEnum; + class IfcProcedureTypeEnum { + } + IfcProcedureTypeEnum.ADVICE_CAUTION = { type: 3, value: "ADVICE_CAUTION" }; + IfcProcedureTypeEnum.ADVICE_NOTE = { type: 3, value: "ADVICE_NOTE" }; + IfcProcedureTypeEnum.ADVICE_WARNING = { type: 3, value: "ADVICE_WARNING" }; + IfcProcedureTypeEnum.CALIBRATION = { type: 3, value: "CALIBRATION" }; + IfcProcedureTypeEnum.DIAGNOSTIC = { type: 3, value: "DIAGNOSTIC" }; + IfcProcedureTypeEnum.SHUTDOWN = { type: 3, value: "SHUTDOWN" }; + IfcProcedureTypeEnum.STARTUP = { type: 3, value: "STARTUP" }; + IfcProcedureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcProcedureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcProcedureTypeEnum = IfcProcedureTypeEnum; + class IfcProfileTypeEnum { + } + IfcProfileTypeEnum.CURVE = { type: 3, value: "CURVE" }; + IfcProfileTypeEnum.AREA = { type: 3, value: "AREA" }; + IFC2X32.IfcProfileTypeEnum = IfcProfileTypeEnum; + class IfcProjectOrderRecordTypeEnum { + } + IfcProjectOrderRecordTypeEnum.CHANGE = { type: 3, value: "CHANGE" }; + IfcProjectOrderRecordTypeEnum.MAINTENANCE = { type: 3, value: "MAINTENANCE" }; + IfcProjectOrderRecordTypeEnum.MOVE = { type: 3, value: "MOVE" }; + IfcProjectOrderRecordTypeEnum.PURCHASE = { type: 3, value: "PURCHASE" }; + IfcProjectOrderRecordTypeEnum.WORK = { type: 3, value: "WORK" }; + IfcProjectOrderRecordTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcProjectOrderRecordTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcProjectOrderRecordTypeEnum = IfcProjectOrderRecordTypeEnum; + class IfcProjectOrderTypeEnum { + } + IfcProjectOrderTypeEnum.CHANGEORDER = { type: 3, value: "CHANGEORDER" }; + IfcProjectOrderTypeEnum.MAINTENANCEWORKORDER = { type: 3, value: "MAINTENANCEWORKORDER" }; + IfcProjectOrderTypeEnum.MOVEORDER = { type: 3, value: "MOVEORDER" }; + IfcProjectOrderTypeEnum.PURCHASEORDER = { type: 3, value: "PURCHASEORDER" }; + IfcProjectOrderTypeEnum.WORKORDER = { type: 3, value: "WORKORDER" }; + IfcProjectOrderTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcProjectOrderTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcProjectOrderTypeEnum = IfcProjectOrderTypeEnum; + class IfcProjectedOrTrueLengthEnum { + } + IfcProjectedOrTrueLengthEnum.PROJECTED_LENGTH = { type: 3, value: "PROJECTED_LENGTH" }; + IfcProjectedOrTrueLengthEnum.TRUE_LENGTH = { type: 3, value: "TRUE_LENGTH" }; + IFC2X32.IfcProjectedOrTrueLengthEnum = IfcProjectedOrTrueLengthEnum; + class IfcPropertySourceEnum { + } + IfcPropertySourceEnum.DESIGN = { type: 3, value: "DESIGN" }; + IfcPropertySourceEnum.DESIGNMAXIMUM = { type: 3, value: "DESIGNMAXIMUM" }; + IfcPropertySourceEnum.DESIGNMINIMUM = { type: 3, value: "DESIGNMINIMUM" }; + IfcPropertySourceEnum.SIMULATED = { type: 3, value: "SIMULATED" }; + IfcPropertySourceEnum.ASBUILT = { type: 3, value: "ASBUILT" }; + IfcPropertySourceEnum.COMMISSIONING = { type: 3, value: "COMMISSIONING" }; + IfcPropertySourceEnum.MEASURED = { type: 3, value: "MEASURED" }; + IfcPropertySourceEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcPropertySourceEnum.NOTKNOWN = { type: 3, value: "NOTKNOWN" }; + IFC2X32.IfcPropertySourceEnum = IfcPropertySourceEnum; + class IfcProtectiveDeviceTypeEnum { + } + IfcProtectiveDeviceTypeEnum.FUSEDISCONNECTOR = { type: 3, value: "FUSEDISCONNECTOR" }; + IfcProtectiveDeviceTypeEnum.CIRCUITBREAKER = { type: 3, value: "CIRCUITBREAKER" }; + IfcProtectiveDeviceTypeEnum.EARTHFAILUREDEVICE = { type: 3, value: "EARTHFAILUREDEVICE" }; + IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTCIRCUITBREAKER = { type: 3, value: "RESIDUALCURRENTCIRCUITBREAKER" }; + IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTSWITCH = { type: 3, value: "RESIDUALCURRENTSWITCH" }; + IfcProtectiveDeviceTypeEnum.VARISTOR = { type: 3, value: "VARISTOR" }; + IfcProtectiveDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcProtectiveDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcProtectiveDeviceTypeEnum = IfcProtectiveDeviceTypeEnum; + class IfcPumpTypeEnum { + } + IfcPumpTypeEnum.CIRCULATOR = { type: 3, value: "CIRCULATOR" }; + IfcPumpTypeEnum.ENDSUCTION = { type: 3, value: "ENDSUCTION" }; + IfcPumpTypeEnum.SPLITCASE = { type: 3, value: "SPLITCASE" }; + IfcPumpTypeEnum.VERTICALINLINE = { type: 3, value: "VERTICALINLINE" }; + IfcPumpTypeEnum.VERTICALTURBINE = { type: 3, value: "VERTICALTURBINE" }; + IfcPumpTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcPumpTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcPumpTypeEnum = IfcPumpTypeEnum; + class IfcRailingTypeEnum { + } + IfcRailingTypeEnum.HANDRAIL = { type: 3, value: "HANDRAIL" }; + IfcRailingTypeEnum.GUARDRAIL = { type: 3, value: "GUARDRAIL" }; + IfcRailingTypeEnum.BALUSTRADE = { type: 3, value: "BALUSTRADE" }; + IfcRailingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcRailingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcRailingTypeEnum = IfcRailingTypeEnum; + class IfcRampFlightTypeEnum { + } + IfcRampFlightTypeEnum.STRAIGHT = { type: 3, value: "STRAIGHT" }; + IfcRampFlightTypeEnum.SPIRAL = { type: 3, value: "SPIRAL" }; + IfcRampFlightTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcRampFlightTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcRampFlightTypeEnum = IfcRampFlightTypeEnum; + class IfcRampTypeEnum { + } + IfcRampTypeEnum.STRAIGHT_RUN_RAMP = { type: 3, value: "STRAIGHT_RUN_RAMP" }; + IfcRampTypeEnum.TWO_STRAIGHT_RUN_RAMP = { type: 3, value: "TWO_STRAIGHT_RUN_RAMP" }; + IfcRampTypeEnum.QUARTER_TURN_RAMP = { type: 3, value: "QUARTER_TURN_RAMP" }; + IfcRampTypeEnum.TWO_QUARTER_TURN_RAMP = { type: 3, value: "TWO_QUARTER_TURN_RAMP" }; + IfcRampTypeEnum.HALF_TURN_RAMP = { type: 3, value: "HALF_TURN_RAMP" }; + IfcRampTypeEnum.SPIRAL_RAMP = { type: 3, value: "SPIRAL_RAMP" }; + IfcRampTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcRampTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcRampTypeEnum = IfcRampTypeEnum; + class IfcReflectanceMethodEnum { + } + IfcReflectanceMethodEnum.BLINN = { type: 3, value: "BLINN" }; + IfcReflectanceMethodEnum.FLAT = { type: 3, value: "FLAT" }; + IfcReflectanceMethodEnum.GLASS = { type: 3, value: "GLASS" }; + IfcReflectanceMethodEnum.MATT = { type: 3, value: "MATT" }; + IfcReflectanceMethodEnum.METAL = { type: 3, value: "METAL" }; + IfcReflectanceMethodEnum.MIRROR = { type: 3, value: "MIRROR" }; + IfcReflectanceMethodEnum.PHONG = { type: 3, value: "PHONG" }; + IfcReflectanceMethodEnum.PLASTIC = { type: 3, value: "PLASTIC" }; + IfcReflectanceMethodEnum.STRAUSS = { type: 3, value: "STRAUSS" }; + IfcReflectanceMethodEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcReflectanceMethodEnum = IfcReflectanceMethodEnum; + class IfcReinforcingBarRoleEnum { + } + IfcReinforcingBarRoleEnum.MAIN = { type: 3, value: "MAIN" }; + IfcReinforcingBarRoleEnum.SHEAR = { type: 3, value: "SHEAR" }; + IfcReinforcingBarRoleEnum.LIGATURE = { type: 3, value: "LIGATURE" }; + IfcReinforcingBarRoleEnum.STUD = { type: 3, value: "STUD" }; + IfcReinforcingBarRoleEnum.PUNCHING = { type: 3, value: "PUNCHING" }; + IfcReinforcingBarRoleEnum.EDGE = { type: 3, value: "EDGE" }; + IfcReinforcingBarRoleEnum.RING = { type: 3, value: "RING" }; + IfcReinforcingBarRoleEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcReinforcingBarRoleEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcReinforcingBarRoleEnum = IfcReinforcingBarRoleEnum; + class IfcReinforcingBarSurfaceEnum { + } + IfcReinforcingBarSurfaceEnum.PLAIN = { type: 3, value: "PLAIN" }; + IfcReinforcingBarSurfaceEnum.TEXTURED = { type: 3, value: "TEXTURED" }; + IFC2X32.IfcReinforcingBarSurfaceEnum = IfcReinforcingBarSurfaceEnum; + class IfcResourceConsumptionEnum { + } + IfcResourceConsumptionEnum.CONSUMED = { type: 3, value: "CONSUMED" }; + IfcResourceConsumptionEnum.PARTIALLYCONSUMED = { type: 3, value: "PARTIALLYCONSUMED" }; + IfcResourceConsumptionEnum.NOTCONSUMED = { type: 3, value: "NOTCONSUMED" }; + IfcResourceConsumptionEnum.OCCUPIED = { type: 3, value: "OCCUPIED" }; + IfcResourceConsumptionEnum.PARTIALLYOCCUPIED = { type: 3, value: "PARTIALLYOCCUPIED" }; + IfcResourceConsumptionEnum.NOTOCCUPIED = { type: 3, value: "NOTOCCUPIED" }; + IfcResourceConsumptionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcResourceConsumptionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcResourceConsumptionEnum = IfcResourceConsumptionEnum; + class IfcRibPlateDirectionEnum { + } + IfcRibPlateDirectionEnum.DIRECTION_X = { type: 3, value: "DIRECTION_X" }; + IfcRibPlateDirectionEnum.DIRECTION_Y = { type: 3, value: "DIRECTION_Y" }; + IFC2X32.IfcRibPlateDirectionEnum = IfcRibPlateDirectionEnum; + class IfcRoleEnum { + } + IfcRoleEnum.SUPPLIER = { type: 3, value: "SUPPLIER" }; + IfcRoleEnum.MANUFACTURER = { type: 3, value: "MANUFACTURER" }; + IfcRoleEnum.CONTRACTOR = { type: 3, value: "CONTRACTOR" }; + IfcRoleEnum.SUBCONTRACTOR = { type: 3, value: "SUBCONTRACTOR" }; + IfcRoleEnum.ARCHITECT = { type: 3, value: "ARCHITECT" }; + IfcRoleEnum.STRUCTURALENGINEER = { type: 3, value: "STRUCTURALENGINEER" }; + IfcRoleEnum.COSTENGINEER = { type: 3, value: "COSTENGINEER" }; + IfcRoleEnum.CLIENT = { type: 3, value: "CLIENT" }; + IfcRoleEnum.BUILDINGOWNER = { type: 3, value: "BUILDINGOWNER" }; + IfcRoleEnum.BUILDINGOPERATOR = { type: 3, value: "BUILDINGOPERATOR" }; + IfcRoleEnum.MECHANICALENGINEER = { type: 3, value: "MECHANICALENGINEER" }; + IfcRoleEnum.ELECTRICALENGINEER = { type: 3, value: "ELECTRICALENGINEER" }; + IfcRoleEnum.PROJECTMANAGER = { type: 3, value: "PROJECTMANAGER" }; + IfcRoleEnum.FACILITIESMANAGER = { type: 3, value: "FACILITIESMANAGER" }; + IfcRoleEnum.CIVILENGINEER = { type: 3, value: "CIVILENGINEER" }; + IfcRoleEnum.COMISSIONINGENGINEER = { type: 3, value: "COMISSIONINGENGINEER" }; + IfcRoleEnum.ENGINEER = { type: 3, value: "ENGINEER" }; + IfcRoleEnum.OWNER = { type: 3, value: "OWNER" }; + IfcRoleEnum.CONSULTANT = { type: 3, value: "CONSULTANT" }; + IfcRoleEnum.CONSTRUCTIONMANAGER = { type: 3, value: "CONSTRUCTIONMANAGER" }; + IfcRoleEnum.FIELDCONSTRUCTIONMANAGER = { type: 3, value: "FIELDCONSTRUCTIONMANAGER" }; + IfcRoleEnum.RESELLER = { type: 3, value: "RESELLER" }; + IfcRoleEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IFC2X32.IfcRoleEnum = IfcRoleEnum; + class IfcRoofTypeEnum { + } + IfcRoofTypeEnum.FLAT_ROOF = { type: 3, value: "FLAT_ROOF" }; + IfcRoofTypeEnum.SHED_ROOF = { type: 3, value: "SHED_ROOF" }; + IfcRoofTypeEnum.GABLE_ROOF = { type: 3, value: "GABLE_ROOF" }; + IfcRoofTypeEnum.HIP_ROOF = { type: 3, value: "HIP_ROOF" }; + IfcRoofTypeEnum.HIPPED_GABLE_ROOF = { type: 3, value: "HIPPED_GABLE_ROOF" }; + IfcRoofTypeEnum.GAMBREL_ROOF = { type: 3, value: "GAMBREL_ROOF" }; + IfcRoofTypeEnum.MANSARD_ROOF = { type: 3, value: "MANSARD_ROOF" }; + IfcRoofTypeEnum.BARREL_ROOF = { type: 3, value: "BARREL_ROOF" }; + IfcRoofTypeEnum.RAINBOW_ROOF = { type: 3, value: "RAINBOW_ROOF" }; + IfcRoofTypeEnum.BUTTERFLY_ROOF = { type: 3, value: "BUTTERFLY_ROOF" }; + IfcRoofTypeEnum.PAVILION_ROOF = { type: 3, value: "PAVILION_ROOF" }; + IfcRoofTypeEnum.DOME_ROOF = { type: 3, value: "DOME_ROOF" }; + IfcRoofTypeEnum.FREEFORM = { type: 3, value: "FREEFORM" }; + IfcRoofTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcRoofTypeEnum = IfcRoofTypeEnum; + class IfcSIPrefix { + } + IfcSIPrefix.EXA = { type: 3, value: "EXA" }; + IfcSIPrefix.PETA = { type: 3, value: "PETA" }; + IfcSIPrefix.TERA = { type: 3, value: "TERA" }; + IfcSIPrefix.GIGA = { type: 3, value: "GIGA" }; + IfcSIPrefix.MEGA = { type: 3, value: "MEGA" }; + IfcSIPrefix.KILO = { type: 3, value: "KILO" }; + IfcSIPrefix.HECTO = { type: 3, value: "HECTO" }; + IfcSIPrefix.DECA = { type: 3, value: "DECA" }; + IfcSIPrefix.DECI = { type: 3, value: "DECI" }; + IfcSIPrefix.CENTI = { type: 3, value: "CENTI" }; + IfcSIPrefix.MILLI = { type: 3, value: "MILLI" }; + IfcSIPrefix.MICRO = { type: 3, value: "MICRO" }; + IfcSIPrefix.NANO = { type: 3, value: "NANO" }; + IfcSIPrefix.PICO = { type: 3, value: "PICO" }; + IfcSIPrefix.FEMTO = { type: 3, value: "FEMTO" }; + IfcSIPrefix.ATTO = { type: 3, value: "ATTO" }; + IFC2X32.IfcSIPrefix = IfcSIPrefix; + class IfcSIUnitName { + } + IfcSIUnitName.AMPERE = { type: 3, value: "AMPERE" }; + IfcSIUnitName.BECQUEREL = { type: 3, value: "BECQUEREL" }; + IfcSIUnitName.CANDELA = { type: 3, value: "CANDELA" }; + IfcSIUnitName.COULOMB = { type: 3, value: "COULOMB" }; + IfcSIUnitName.CUBIC_METRE = { type: 3, value: "CUBIC_METRE" }; + IfcSIUnitName.DEGREE_CELSIUS = { type: 3, value: "DEGREE_CELSIUS" }; + IfcSIUnitName.FARAD = { type: 3, value: "FARAD" }; + IfcSIUnitName.GRAM = { type: 3, value: "GRAM" }; + IfcSIUnitName.GRAY = { type: 3, value: "GRAY" }; + IfcSIUnitName.HENRY = { type: 3, value: "HENRY" }; + IfcSIUnitName.HERTZ = { type: 3, value: "HERTZ" }; + IfcSIUnitName.JOULE = { type: 3, value: "JOULE" }; + IfcSIUnitName.KELVIN = { type: 3, value: "KELVIN" }; + IfcSIUnitName.LUMEN = { type: 3, value: "LUMEN" }; + IfcSIUnitName.LUX = { type: 3, value: "LUX" }; + IfcSIUnitName.METRE = { type: 3, value: "METRE" }; + IfcSIUnitName.MOLE = { type: 3, value: "MOLE" }; + IfcSIUnitName.NEWTON = { type: 3, value: "NEWTON" }; + IfcSIUnitName.OHM = { type: 3, value: "OHM" }; + IfcSIUnitName.PASCAL = { type: 3, value: "PASCAL" }; + IfcSIUnitName.RADIAN = { type: 3, value: "RADIAN" }; + IfcSIUnitName.SECOND = { type: 3, value: "SECOND" }; + IfcSIUnitName.SIEMENS = { type: 3, value: "SIEMENS" }; + IfcSIUnitName.SIEVERT = { type: 3, value: "SIEVERT" }; + IfcSIUnitName.SQUARE_METRE = { type: 3, value: "SQUARE_METRE" }; + IfcSIUnitName.STERADIAN = { type: 3, value: "STERADIAN" }; + IfcSIUnitName.TESLA = { type: 3, value: "TESLA" }; + IfcSIUnitName.VOLT = { type: 3, value: "VOLT" }; + IfcSIUnitName.WATT = { type: 3, value: "WATT" }; + IfcSIUnitName.WEBER = { type: 3, value: "WEBER" }; + IFC2X32.IfcSIUnitName = IfcSIUnitName; + class IfcSanitaryTerminalTypeEnum { + } + IfcSanitaryTerminalTypeEnum.BATH = { type: 3, value: "BATH" }; + IfcSanitaryTerminalTypeEnum.BIDET = { type: 3, value: "BIDET" }; + IfcSanitaryTerminalTypeEnum.CISTERN = { type: 3, value: "CISTERN" }; + IfcSanitaryTerminalTypeEnum.SHOWER = { type: 3, value: "SHOWER" }; + IfcSanitaryTerminalTypeEnum.SINK = { type: 3, value: "SINK" }; + IfcSanitaryTerminalTypeEnum.SANITARYFOUNTAIN = { type: 3, value: "SANITARYFOUNTAIN" }; + IfcSanitaryTerminalTypeEnum.TOILETPAN = { type: 3, value: "TOILETPAN" }; + IfcSanitaryTerminalTypeEnum.URINAL = { type: 3, value: "URINAL" }; + IfcSanitaryTerminalTypeEnum.WASHHANDBASIN = { type: 3, value: "WASHHANDBASIN" }; + IfcSanitaryTerminalTypeEnum.WCSEAT = { type: 3, value: "WCSEAT" }; + IfcSanitaryTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcSanitaryTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcSanitaryTerminalTypeEnum = IfcSanitaryTerminalTypeEnum; + class IfcSectionTypeEnum { + } + IfcSectionTypeEnum.UNIFORM = { type: 3, value: "UNIFORM" }; + IfcSectionTypeEnum.TAPERED = { type: 3, value: "TAPERED" }; + IFC2X32.IfcSectionTypeEnum = IfcSectionTypeEnum; + class IfcSensorTypeEnum { + } + IfcSensorTypeEnum.CO2SENSOR = { type: 3, value: "CO2SENSOR" }; + IfcSensorTypeEnum.FIRESENSOR = { type: 3, value: "FIRESENSOR" }; + IfcSensorTypeEnum.FLOWSENSOR = { type: 3, value: "FLOWSENSOR" }; + IfcSensorTypeEnum.GASSENSOR = { type: 3, value: "GASSENSOR" }; + IfcSensorTypeEnum.HEATSENSOR = { type: 3, value: "HEATSENSOR" }; + IfcSensorTypeEnum.HUMIDITYSENSOR = { type: 3, value: "HUMIDITYSENSOR" }; + IfcSensorTypeEnum.LIGHTSENSOR = { type: 3, value: "LIGHTSENSOR" }; + IfcSensorTypeEnum.MOISTURESENSOR = { type: 3, value: "MOISTURESENSOR" }; + IfcSensorTypeEnum.MOVEMENTSENSOR = { type: 3, value: "MOVEMENTSENSOR" }; + IfcSensorTypeEnum.PRESSURESENSOR = { type: 3, value: "PRESSURESENSOR" }; + IfcSensorTypeEnum.SMOKESENSOR = { type: 3, value: "SMOKESENSOR" }; + IfcSensorTypeEnum.SOUNDSENSOR = { type: 3, value: "SOUNDSENSOR" }; + IfcSensorTypeEnum.TEMPERATURESENSOR = { type: 3, value: "TEMPERATURESENSOR" }; + IfcSensorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcSensorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcSensorTypeEnum = IfcSensorTypeEnum; + class IfcSequenceEnum { + } + IfcSequenceEnum.START_START = { type: 3, value: "START_START" }; + IfcSequenceEnum.START_FINISH = { type: 3, value: "START_FINISH" }; + IfcSequenceEnum.FINISH_START = { type: 3, value: "FINISH_START" }; + IfcSequenceEnum.FINISH_FINISH = { type: 3, value: "FINISH_FINISH" }; + IfcSequenceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcSequenceEnum = IfcSequenceEnum; + class IfcServiceLifeFactorTypeEnum { + } + IfcServiceLifeFactorTypeEnum.A_QUALITYOFCOMPONENTS = { type: 3, value: "A_QUALITYOFCOMPONENTS" }; + IfcServiceLifeFactorTypeEnum.B_DESIGNLEVEL = { type: 3, value: "B_DESIGNLEVEL" }; + IfcServiceLifeFactorTypeEnum.C_WORKEXECUTIONLEVEL = { type: 3, value: "C_WORKEXECUTIONLEVEL" }; + IfcServiceLifeFactorTypeEnum.D_INDOORENVIRONMENT = { type: 3, value: "D_INDOORENVIRONMENT" }; + IfcServiceLifeFactorTypeEnum.E_OUTDOORENVIRONMENT = { type: 3, value: "E_OUTDOORENVIRONMENT" }; + IfcServiceLifeFactorTypeEnum.F_INUSECONDITIONS = { type: 3, value: "F_INUSECONDITIONS" }; + IfcServiceLifeFactorTypeEnum.G_MAINTENANCELEVEL = { type: 3, value: "G_MAINTENANCELEVEL" }; + IfcServiceLifeFactorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcServiceLifeFactorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcServiceLifeFactorTypeEnum = IfcServiceLifeFactorTypeEnum; + class IfcServiceLifeTypeEnum { + } + IfcServiceLifeTypeEnum.ACTUALSERVICELIFE = { type: 3, value: "ACTUALSERVICELIFE" }; + IfcServiceLifeTypeEnum.EXPECTEDSERVICELIFE = { type: 3, value: "EXPECTEDSERVICELIFE" }; + IfcServiceLifeTypeEnum.OPTIMISTICREFERENCESERVICELIFE = { type: 3, value: "OPTIMISTICREFERENCESERVICELIFE" }; + IfcServiceLifeTypeEnum.PESSIMISTICREFERENCESERVICELIFE = { type: 3, value: "PESSIMISTICREFERENCESERVICELIFE" }; + IfcServiceLifeTypeEnum.REFERENCESERVICELIFE = { type: 3, value: "REFERENCESERVICELIFE" }; + IFC2X32.IfcServiceLifeTypeEnum = IfcServiceLifeTypeEnum; + class IfcSlabTypeEnum { + } + IfcSlabTypeEnum.FLOOR = { type: 3, value: "FLOOR" }; + IfcSlabTypeEnum.ROOF = { type: 3, value: "ROOF" }; + IfcSlabTypeEnum.LANDING = { type: 3, value: "LANDING" }; + IfcSlabTypeEnum.BASESLAB = { type: 3, value: "BASESLAB" }; + IfcSlabTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcSlabTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcSlabTypeEnum = IfcSlabTypeEnum; + class IfcSoundScaleEnum { + } + IfcSoundScaleEnum.DBA = { type: 3, value: "DBA" }; + IfcSoundScaleEnum.DBB = { type: 3, value: "DBB" }; + IfcSoundScaleEnum.DBC = { type: 3, value: "DBC" }; + IfcSoundScaleEnum.NC = { type: 3, value: "NC" }; + IfcSoundScaleEnum.NR = { type: 3, value: "NR" }; + IfcSoundScaleEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcSoundScaleEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcSoundScaleEnum = IfcSoundScaleEnum; + class IfcSpaceHeaterTypeEnum { + } + IfcSpaceHeaterTypeEnum.SECTIONALRADIATOR = { type: 3, value: "SECTIONALRADIATOR" }; + IfcSpaceHeaterTypeEnum.PANELRADIATOR = { type: 3, value: "PANELRADIATOR" }; + IfcSpaceHeaterTypeEnum.TUBULARRADIATOR = { type: 3, value: "TUBULARRADIATOR" }; + IfcSpaceHeaterTypeEnum.CONVECTOR = { type: 3, value: "CONVECTOR" }; + IfcSpaceHeaterTypeEnum.BASEBOARDHEATER = { type: 3, value: "BASEBOARDHEATER" }; + IfcSpaceHeaterTypeEnum.FINNEDTUBEUNIT = { type: 3, value: "FINNEDTUBEUNIT" }; + IfcSpaceHeaterTypeEnum.UNITHEATER = { type: 3, value: "UNITHEATER" }; + IfcSpaceHeaterTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcSpaceHeaterTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcSpaceHeaterTypeEnum = IfcSpaceHeaterTypeEnum; + class IfcSpaceTypeEnum { + } + IfcSpaceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcSpaceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcSpaceTypeEnum = IfcSpaceTypeEnum; + class IfcStackTerminalTypeEnum { + } + IfcStackTerminalTypeEnum.BIRDCAGE = { type: 3, value: "BIRDCAGE" }; + IfcStackTerminalTypeEnum.COWL = { type: 3, value: "COWL" }; + IfcStackTerminalTypeEnum.RAINWATERHOPPER = { type: 3, value: "RAINWATERHOPPER" }; + IfcStackTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcStackTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcStackTerminalTypeEnum = IfcStackTerminalTypeEnum; + class IfcStairFlightTypeEnum { + } + IfcStairFlightTypeEnum.STRAIGHT = { type: 3, value: "STRAIGHT" }; + IfcStairFlightTypeEnum.WINDER = { type: 3, value: "WINDER" }; + IfcStairFlightTypeEnum.SPIRAL = { type: 3, value: "SPIRAL" }; + IfcStairFlightTypeEnum.CURVED = { type: 3, value: "CURVED" }; + IfcStairFlightTypeEnum.FREEFORM = { type: 3, value: "FREEFORM" }; + IfcStairFlightTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcStairFlightTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcStairFlightTypeEnum = IfcStairFlightTypeEnum; + class IfcStairTypeEnum { + } + IfcStairTypeEnum.STRAIGHT_RUN_STAIR = { type: 3, value: "STRAIGHT_RUN_STAIR" }; + IfcStairTypeEnum.TWO_STRAIGHT_RUN_STAIR = { type: 3, value: "TWO_STRAIGHT_RUN_STAIR" }; + IfcStairTypeEnum.QUARTER_WINDING_STAIR = { type: 3, value: "QUARTER_WINDING_STAIR" }; + IfcStairTypeEnum.QUARTER_TURN_STAIR = { type: 3, value: "QUARTER_TURN_STAIR" }; + IfcStairTypeEnum.HALF_WINDING_STAIR = { type: 3, value: "HALF_WINDING_STAIR" }; + IfcStairTypeEnum.HALF_TURN_STAIR = { type: 3, value: "HALF_TURN_STAIR" }; + IfcStairTypeEnum.TWO_QUARTER_WINDING_STAIR = { type: 3, value: "TWO_QUARTER_WINDING_STAIR" }; + IfcStairTypeEnum.TWO_QUARTER_TURN_STAIR = { type: 3, value: "TWO_QUARTER_TURN_STAIR" }; + IfcStairTypeEnum.THREE_QUARTER_WINDING_STAIR = { type: 3, value: "THREE_QUARTER_WINDING_STAIR" }; + IfcStairTypeEnum.THREE_QUARTER_TURN_STAIR = { type: 3, value: "THREE_QUARTER_TURN_STAIR" }; + IfcStairTypeEnum.SPIRAL_STAIR = { type: 3, value: "SPIRAL_STAIR" }; + IfcStairTypeEnum.DOUBLE_RETURN_STAIR = { type: 3, value: "DOUBLE_RETURN_STAIR" }; + IfcStairTypeEnum.CURVED_RUN_STAIR = { type: 3, value: "CURVED_RUN_STAIR" }; + IfcStairTypeEnum.TWO_CURVED_RUN_STAIR = { type: 3, value: "TWO_CURVED_RUN_STAIR" }; + IfcStairTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcStairTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcStairTypeEnum = IfcStairTypeEnum; + class IfcStateEnum { + } + IfcStateEnum.READWRITE = { type: 3, value: "READWRITE" }; + IfcStateEnum.READONLY = { type: 3, value: "READONLY" }; + IfcStateEnum.LOCKED = { type: 3, value: "LOCKED" }; + IfcStateEnum.READWRITELOCKED = { type: 3, value: "READWRITELOCKED" }; + IfcStateEnum.READONLYLOCKED = { type: 3, value: "READONLYLOCKED" }; + IFC2X32.IfcStateEnum = IfcStateEnum; + class IfcStructuralCurveTypeEnum { + } + IfcStructuralCurveTypeEnum.RIGID_JOINED_MEMBER = { type: 3, value: "RIGID_JOINED_MEMBER" }; + IfcStructuralCurveTypeEnum.PIN_JOINED_MEMBER = { type: 3, value: "PIN_JOINED_MEMBER" }; + IfcStructuralCurveTypeEnum.CABLE = { type: 3, value: "CABLE" }; + IfcStructuralCurveTypeEnum.TENSION_MEMBER = { type: 3, value: "TENSION_MEMBER" }; + IfcStructuralCurveTypeEnum.COMPRESSION_MEMBER = { type: 3, value: "COMPRESSION_MEMBER" }; + IfcStructuralCurveTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcStructuralCurveTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcStructuralCurveTypeEnum = IfcStructuralCurveTypeEnum; + class IfcStructuralSurfaceTypeEnum { + } + IfcStructuralSurfaceTypeEnum.BENDING_ELEMENT = { type: 3, value: "BENDING_ELEMENT" }; + IfcStructuralSurfaceTypeEnum.MEMBRANE_ELEMENT = { type: 3, value: "MEMBRANE_ELEMENT" }; + IfcStructuralSurfaceTypeEnum.SHELL = { type: 3, value: "SHELL" }; + IfcStructuralSurfaceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcStructuralSurfaceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcStructuralSurfaceTypeEnum = IfcStructuralSurfaceTypeEnum; + class IfcSurfaceSide { + } + IfcSurfaceSide.POSITIVE = { type: 3, value: "POSITIVE" }; + IfcSurfaceSide.NEGATIVE = { type: 3, value: "NEGATIVE" }; + IfcSurfaceSide.BOTH = { type: 3, value: "BOTH" }; + IFC2X32.IfcSurfaceSide = IfcSurfaceSide; + class IfcSurfaceTextureEnum { + } + IfcSurfaceTextureEnum.BUMP = { type: 3, value: "BUMP" }; + IfcSurfaceTextureEnum.OPACITY = { type: 3, value: "OPACITY" }; + IfcSurfaceTextureEnum.REFLECTION = { type: 3, value: "REFLECTION" }; + IfcSurfaceTextureEnum.SELFILLUMINATION = { type: 3, value: "SELFILLUMINATION" }; + IfcSurfaceTextureEnum.SHININESS = { type: 3, value: "SHININESS" }; + IfcSurfaceTextureEnum.SPECULAR = { type: 3, value: "SPECULAR" }; + IfcSurfaceTextureEnum.TEXTURE = { type: 3, value: "TEXTURE" }; + IfcSurfaceTextureEnum.TRANSPARENCYMAP = { type: 3, value: "TRANSPARENCYMAP" }; + IfcSurfaceTextureEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcSurfaceTextureEnum = IfcSurfaceTextureEnum; + class IfcSwitchingDeviceTypeEnum { + } + IfcSwitchingDeviceTypeEnum.CONTACTOR = { type: 3, value: "CONTACTOR" }; + IfcSwitchingDeviceTypeEnum.EMERGENCYSTOP = { type: 3, value: "EMERGENCYSTOP" }; + IfcSwitchingDeviceTypeEnum.STARTER = { type: 3, value: "STARTER" }; + IfcSwitchingDeviceTypeEnum.SWITCHDISCONNECTOR = { type: 3, value: "SWITCHDISCONNECTOR" }; + IfcSwitchingDeviceTypeEnum.TOGGLESWITCH = { type: 3, value: "TOGGLESWITCH" }; + IfcSwitchingDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcSwitchingDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcSwitchingDeviceTypeEnum = IfcSwitchingDeviceTypeEnum; + class IfcTankTypeEnum { + } + IfcTankTypeEnum.PREFORMED = { type: 3, value: "PREFORMED" }; + IfcTankTypeEnum.SECTIONAL = { type: 3, value: "SECTIONAL" }; + IfcTankTypeEnum.EXPANSION = { type: 3, value: "EXPANSION" }; + IfcTankTypeEnum.PRESSUREVESSEL = { type: 3, value: "PRESSUREVESSEL" }; + IfcTankTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcTankTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcTankTypeEnum = IfcTankTypeEnum; + class IfcTendonTypeEnum { + } + IfcTendonTypeEnum.STRAND = { type: 3, value: "STRAND" }; + IfcTendonTypeEnum.WIRE = { type: 3, value: "WIRE" }; + IfcTendonTypeEnum.BAR = { type: 3, value: "BAR" }; + IfcTendonTypeEnum.COATED = { type: 3, value: "COATED" }; + IfcTendonTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcTendonTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcTendonTypeEnum = IfcTendonTypeEnum; + class IfcTextPath { + } + IfcTextPath.LEFT = { type: 3, value: "LEFT" }; + IfcTextPath.RIGHT = { type: 3, value: "RIGHT" }; + IfcTextPath.UP = { type: 3, value: "UP" }; + IfcTextPath.DOWN = { type: 3, value: "DOWN" }; + IFC2X32.IfcTextPath = IfcTextPath; + class IfcThermalLoadSourceEnum { + } + IfcThermalLoadSourceEnum.PEOPLE = { type: 3, value: "PEOPLE" }; + IfcThermalLoadSourceEnum.LIGHTING = { type: 3, value: "LIGHTING" }; + IfcThermalLoadSourceEnum.EQUIPMENT = { type: 3, value: "EQUIPMENT" }; + IfcThermalLoadSourceEnum.VENTILATIONINDOORAIR = { type: 3, value: "VENTILATIONINDOORAIR" }; + IfcThermalLoadSourceEnum.VENTILATIONOUTSIDEAIR = { type: 3, value: "VENTILATIONOUTSIDEAIR" }; + IfcThermalLoadSourceEnum.RECIRCULATEDAIR = { type: 3, value: "RECIRCULATEDAIR" }; + IfcThermalLoadSourceEnum.EXHAUSTAIR = { type: 3, value: "EXHAUSTAIR" }; + IfcThermalLoadSourceEnum.AIREXCHANGERATE = { type: 3, value: "AIREXCHANGERATE" }; + IfcThermalLoadSourceEnum.DRYBULBTEMPERATURE = { type: 3, value: "DRYBULBTEMPERATURE" }; + IfcThermalLoadSourceEnum.RELATIVEHUMIDITY = { type: 3, value: "RELATIVEHUMIDITY" }; + IfcThermalLoadSourceEnum.INFILTRATION = { type: 3, value: "INFILTRATION" }; + IfcThermalLoadSourceEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcThermalLoadSourceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcThermalLoadSourceEnum = IfcThermalLoadSourceEnum; + class IfcThermalLoadTypeEnum { + } + IfcThermalLoadTypeEnum.SENSIBLE = { type: 3, value: "SENSIBLE" }; + IfcThermalLoadTypeEnum.LATENT = { type: 3, value: "LATENT" }; + IfcThermalLoadTypeEnum.RADIANT = { type: 3, value: "RADIANT" }; + IfcThermalLoadTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcThermalLoadTypeEnum = IfcThermalLoadTypeEnum; + class IfcTimeSeriesDataTypeEnum { + } + IfcTimeSeriesDataTypeEnum.CONTINUOUS = { type: 3, value: "CONTINUOUS" }; + IfcTimeSeriesDataTypeEnum.DISCRETE = { type: 3, value: "DISCRETE" }; + IfcTimeSeriesDataTypeEnum.DISCRETEBINARY = { type: 3, value: "DISCRETEBINARY" }; + IfcTimeSeriesDataTypeEnum.PIECEWISEBINARY = { type: 3, value: "PIECEWISEBINARY" }; + IfcTimeSeriesDataTypeEnum.PIECEWISECONSTANT = { type: 3, value: "PIECEWISECONSTANT" }; + IfcTimeSeriesDataTypeEnum.PIECEWISECONTINUOUS = { type: 3, value: "PIECEWISECONTINUOUS" }; + IfcTimeSeriesDataTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcTimeSeriesDataTypeEnum = IfcTimeSeriesDataTypeEnum; + class IfcTimeSeriesScheduleTypeEnum { + } + IfcTimeSeriesScheduleTypeEnum.ANNUAL = { type: 3, value: "ANNUAL" }; + IfcTimeSeriesScheduleTypeEnum.MONTHLY = { type: 3, value: "MONTHLY" }; + IfcTimeSeriesScheduleTypeEnum.WEEKLY = { type: 3, value: "WEEKLY" }; + IfcTimeSeriesScheduleTypeEnum.DAILY = { type: 3, value: "DAILY" }; + IfcTimeSeriesScheduleTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcTimeSeriesScheduleTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcTimeSeriesScheduleTypeEnum = IfcTimeSeriesScheduleTypeEnum; + class IfcTransformerTypeEnum { + } + IfcTransformerTypeEnum.CURRENT = { type: 3, value: "CURRENT" }; + IfcTransformerTypeEnum.FREQUENCY = { type: 3, value: "FREQUENCY" }; + IfcTransformerTypeEnum.VOLTAGE = { type: 3, value: "VOLTAGE" }; + IfcTransformerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcTransformerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcTransformerTypeEnum = IfcTransformerTypeEnum; + class IfcTransitionCode { + } + IfcTransitionCode.DISCONTINUOUS = { type: 3, value: "DISCONTINUOUS" }; + IfcTransitionCode.CONTINUOUS = { type: 3, value: "CONTINUOUS" }; + IfcTransitionCode.CONTSAMEGRADIENT = { type: 3, value: "CONTSAMEGRADIENT" }; + IfcTransitionCode.CONTSAMEGRADIENTSAMECURVATURE = { type: 3, value: "CONTSAMEGRADIENTSAMECURVATURE" }; + IFC2X32.IfcTransitionCode = IfcTransitionCode; + class IfcTransportElementTypeEnum { + } + IfcTransportElementTypeEnum.ELEVATOR = { type: 3, value: "ELEVATOR" }; + IfcTransportElementTypeEnum.ESCALATOR = { type: 3, value: "ESCALATOR" }; + IfcTransportElementTypeEnum.MOVINGWALKWAY = { type: 3, value: "MOVINGWALKWAY" }; + IfcTransportElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcTransportElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcTransportElementTypeEnum = IfcTransportElementTypeEnum; + class IfcTrimmingPreference { + } + IfcTrimmingPreference.CARTESIAN = { type: 3, value: "CARTESIAN" }; + IfcTrimmingPreference.PARAMETER = { type: 3, value: "PARAMETER" }; + IfcTrimmingPreference.UNSPECIFIED = { type: 3, value: "UNSPECIFIED" }; + IFC2X32.IfcTrimmingPreference = IfcTrimmingPreference; + class IfcTubeBundleTypeEnum { + } + IfcTubeBundleTypeEnum.FINNED = { type: 3, value: "FINNED" }; + IfcTubeBundleTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcTubeBundleTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcTubeBundleTypeEnum = IfcTubeBundleTypeEnum; + class IfcUnitEnum { + } + IfcUnitEnum.ABSORBEDDOSEUNIT = { type: 3, value: "ABSORBEDDOSEUNIT" }; + IfcUnitEnum.AMOUNTOFSUBSTANCEUNIT = { type: 3, value: "AMOUNTOFSUBSTANCEUNIT" }; + IfcUnitEnum.AREAUNIT = { type: 3, value: "AREAUNIT" }; + IfcUnitEnum.DOSEEQUIVALENTUNIT = { type: 3, value: "DOSEEQUIVALENTUNIT" }; + IfcUnitEnum.ELECTRICCAPACITANCEUNIT = { type: 3, value: "ELECTRICCAPACITANCEUNIT" }; + IfcUnitEnum.ELECTRICCHARGEUNIT = { type: 3, value: "ELECTRICCHARGEUNIT" }; + IfcUnitEnum.ELECTRICCONDUCTANCEUNIT = { type: 3, value: "ELECTRICCONDUCTANCEUNIT" }; + IfcUnitEnum.ELECTRICCURRENTUNIT = { type: 3, value: "ELECTRICCURRENTUNIT" }; + IfcUnitEnum.ELECTRICRESISTANCEUNIT = { type: 3, value: "ELECTRICRESISTANCEUNIT" }; + IfcUnitEnum.ELECTRICVOLTAGEUNIT = { type: 3, value: "ELECTRICVOLTAGEUNIT" }; + IfcUnitEnum.ENERGYUNIT = { type: 3, value: "ENERGYUNIT" }; + IfcUnitEnum.FORCEUNIT = { type: 3, value: "FORCEUNIT" }; + IfcUnitEnum.FREQUENCYUNIT = { type: 3, value: "FREQUENCYUNIT" }; + IfcUnitEnum.ILLUMINANCEUNIT = { type: 3, value: "ILLUMINANCEUNIT" }; + IfcUnitEnum.INDUCTANCEUNIT = { type: 3, value: "INDUCTANCEUNIT" }; + IfcUnitEnum.LENGTHUNIT = { type: 3, value: "LENGTHUNIT" }; + IfcUnitEnum.LUMINOUSFLUXUNIT = { type: 3, value: "LUMINOUSFLUXUNIT" }; + IfcUnitEnum.LUMINOUSINTENSITYUNIT = { type: 3, value: "LUMINOUSINTENSITYUNIT" }; + IfcUnitEnum.MAGNETICFLUXDENSITYUNIT = { type: 3, value: "MAGNETICFLUXDENSITYUNIT" }; + IfcUnitEnum.MAGNETICFLUXUNIT = { type: 3, value: "MAGNETICFLUXUNIT" }; + IfcUnitEnum.MASSUNIT = { type: 3, value: "MASSUNIT" }; + IfcUnitEnum.PLANEANGLEUNIT = { type: 3, value: "PLANEANGLEUNIT" }; + IfcUnitEnum.POWERUNIT = { type: 3, value: "POWERUNIT" }; + IfcUnitEnum.PRESSUREUNIT = { type: 3, value: "PRESSUREUNIT" }; + IfcUnitEnum.RADIOACTIVITYUNIT = { type: 3, value: "RADIOACTIVITYUNIT" }; + IfcUnitEnum.SOLIDANGLEUNIT = { type: 3, value: "SOLIDANGLEUNIT" }; + IfcUnitEnum.THERMODYNAMICTEMPERATUREUNIT = { type: 3, value: "THERMODYNAMICTEMPERATUREUNIT" }; + IfcUnitEnum.TIMEUNIT = { type: 3, value: "TIMEUNIT" }; + IfcUnitEnum.VOLUMEUNIT = { type: 3, value: "VOLUMEUNIT" }; + IfcUnitEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IFC2X32.IfcUnitEnum = IfcUnitEnum; + class IfcUnitaryEquipmentTypeEnum { + } + IfcUnitaryEquipmentTypeEnum.AIRHANDLER = { type: 3, value: "AIRHANDLER" }; + IfcUnitaryEquipmentTypeEnum.AIRCONDITIONINGUNIT = { type: 3, value: "AIRCONDITIONINGUNIT" }; + IfcUnitaryEquipmentTypeEnum.SPLITSYSTEM = { type: 3, value: "SPLITSYSTEM" }; + IfcUnitaryEquipmentTypeEnum.ROOFTOPUNIT = { type: 3, value: "ROOFTOPUNIT" }; + IfcUnitaryEquipmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcUnitaryEquipmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcUnitaryEquipmentTypeEnum = IfcUnitaryEquipmentTypeEnum; + class IfcValveTypeEnum { + } + IfcValveTypeEnum.AIRRELEASE = { type: 3, value: "AIRRELEASE" }; + IfcValveTypeEnum.ANTIVACUUM = { type: 3, value: "ANTIVACUUM" }; + IfcValveTypeEnum.CHANGEOVER = { type: 3, value: "CHANGEOVER" }; + IfcValveTypeEnum.CHECK = { type: 3, value: "CHECK" }; + IfcValveTypeEnum.COMMISSIONING = { type: 3, value: "COMMISSIONING" }; + IfcValveTypeEnum.DIVERTING = { type: 3, value: "DIVERTING" }; + IfcValveTypeEnum.DRAWOFFCOCK = { type: 3, value: "DRAWOFFCOCK" }; + IfcValveTypeEnum.DOUBLECHECK = { type: 3, value: "DOUBLECHECK" }; + IfcValveTypeEnum.DOUBLEREGULATING = { type: 3, value: "DOUBLEREGULATING" }; + IfcValveTypeEnum.FAUCET = { type: 3, value: "FAUCET" }; + IfcValveTypeEnum.FLUSHING = { type: 3, value: "FLUSHING" }; + IfcValveTypeEnum.GASCOCK = { type: 3, value: "GASCOCK" }; + IfcValveTypeEnum.GASTAP = { type: 3, value: "GASTAP" }; + IfcValveTypeEnum.ISOLATING = { type: 3, value: "ISOLATING" }; + IfcValveTypeEnum.MIXING = { type: 3, value: "MIXING" }; + IfcValveTypeEnum.PRESSUREREDUCING = { type: 3, value: "PRESSUREREDUCING" }; + IfcValveTypeEnum.PRESSURERELIEF = { type: 3, value: "PRESSURERELIEF" }; + IfcValveTypeEnum.REGULATING = { type: 3, value: "REGULATING" }; + IfcValveTypeEnum.SAFETYCUTOFF = { type: 3, value: "SAFETYCUTOFF" }; + IfcValveTypeEnum.STEAMTRAP = { type: 3, value: "STEAMTRAP" }; + IfcValveTypeEnum.STOPCOCK = { type: 3, value: "STOPCOCK" }; + IfcValveTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcValveTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcValveTypeEnum = IfcValveTypeEnum; + class IfcVibrationIsolatorTypeEnum { + } + IfcVibrationIsolatorTypeEnum.COMPRESSION = { type: 3, value: "COMPRESSION" }; + IfcVibrationIsolatorTypeEnum.SPRING = { type: 3, value: "SPRING" }; + IfcVibrationIsolatorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcVibrationIsolatorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcVibrationIsolatorTypeEnum = IfcVibrationIsolatorTypeEnum; + class IfcWallTypeEnum { + } + IfcWallTypeEnum.STANDARD = { type: 3, value: "STANDARD" }; + IfcWallTypeEnum.POLYGONAL = { type: 3, value: "POLYGONAL" }; + IfcWallTypeEnum.SHEAR = { type: 3, value: "SHEAR" }; + IfcWallTypeEnum.ELEMENTEDWALL = { type: 3, value: "ELEMENTEDWALL" }; + IfcWallTypeEnum.PLUMBINGWALL = { type: 3, value: "PLUMBINGWALL" }; + IfcWallTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcWallTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcWallTypeEnum = IfcWallTypeEnum; + class IfcWasteTerminalTypeEnum { + } + IfcWasteTerminalTypeEnum.FLOORTRAP = { type: 3, value: "FLOORTRAP" }; + IfcWasteTerminalTypeEnum.FLOORWASTE = { type: 3, value: "FLOORWASTE" }; + IfcWasteTerminalTypeEnum.GULLYSUMP = { type: 3, value: "GULLYSUMP" }; + IfcWasteTerminalTypeEnum.GULLYTRAP = { type: 3, value: "GULLYTRAP" }; + IfcWasteTerminalTypeEnum.GREASEINTERCEPTOR = { type: 3, value: "GREASEINTERCEPTOR" }; + IfcWasteTerminalTypeEnum.OILINTERCEPTOR = { type: 3, value: "OILINTERCEPTOR" }; + IfcWasteTerminalTypeEnum.PETROLINTERCEPTOR = { type: 3, value: "PETROLINTERCEPTOR" }; + IfcWasteTerminalTypeEnum.ROOFDRAIN = { type: 3, value: "ROOFDRAIN" }; + IfcWasteTerminalTypeEnum.WASTEDISPOSALUNIT = { type: 3, value: "WASTEDISPOSALUNIT" }; + IfcWasteTerminalTypeEnum.WASTETRAP = { type: 3, value: "WASTETRAP" }; + IfcWasteTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcWasteTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcWasteTerminalTypeEnum = IfcWasteTerminalTypeEnum; + class IfcWindowPanelOperationEnum { + } + IfcWindowPanelOperationEnum.SIDEHUNGRIGHTHAND = { type: 3, value: "SIDEHUNGRIGHTHAND" }; + IfcWindowPanelOperationEnum.SIDEHUNGLEFTHAND = { type: 3, value: "SIDEHUNGLEFTHAND" }; + IfcWindowPanelOperationEnum.TILTANDTURNRIGHTHAND = { type: 3, value: "TILTANDTURNRIGHTHAND" }; + IfcWindowPanelOperationEnum.TILTANDTURNLEFTHAND = { type: 3, value: "TILTANDTURNLEFTHAND" }; + IfcWindowPanelOperationEnum.TOPHUNG = { type: 3, value: "TOPHUNG" }; + IfcWindowPanelOperationEnum.BOTTOMHUNG = { type: 3, value: "BOTTOMHUNG" }; + IfcWindowPanelOperationEnum.PIVOTHORIZONTAL = { type: 3, value: "PIVOTHORIZONTAL" }; + IfcWindowPanelOperationEnum.PIVOTVERTICAL = { type: 3, value: "PIVOTVERTICAL" }; + IfcWindowPanelOperationEnum.SLIDINGHORIZONTAL = { type: 3, value: "SLIDINGHORIZONTAL" }; + IfcWindowPanelOperationEnum.SLIDINGVERTICAL = { type: 3, value: "SLIDINGVERTICAL" }; + IfcWindowPanelOperationEnum.REMOVABLECASEMENT = { type: 3, value: "REMOVABLECASEMENT" }; + IfcWindowPanelOperationEnum.FIXEDCASEMENT = { type: 3, value: "FIXEDCASEMENT" }; + IfcWindowPanelOperationEnum.OTHEROPERATION = { type: 3, value: "OTHEROPERATION" }; + IfcWindowPanelOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcWindowPanelOperationEnum = IfcWindowPanelOperationEnum; + class IfcWindowPanelPositionEnum { + } + IfcWindowPanelPositionEnum.LEFT = { type: 3, value: "LEFT" }; + IfcWindowPanelPositionEnum.MIDDLE = { type: 3, value: "MIDDLE" }; + IfcWindowPanelPositionEnum.RIGHT = { type: 3, value: "RIGHT" }; + IfcWindowPanelPositionEnum.BOTTOM = { type: 3, value: "BOTTOM" }; + IfcWindowPanelPositionEnum.TOP = { type: 3, value: "TOP" }; + IfcWindowPanelPositionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcWindowPanelPositionEnum = IfcWindowPanelPositionEnum; + class IfcWindowStyleConstructionEnum { + } + IfcWindowStyleConstructionEnum.ALUMINIUM = { type: 3, value: "ALUMINIUM" }; + IfcWindowStyleConstructionEnum.HIGH_GRADE_STEEL = { type: 3, value: "HIGH_GRADE_STEEL" }; + IfcWindowStyleConstructionEnum.STEEL = { type: 3, value: "STEEL" }; + IfcWindowStyleConstructionEnum.WOOD = { type: 3, value: "WOOD" }; + IfcWindowStyleConstructionEnum.ALUMINIUM_WOOD = { type: 3, value: "ALUMINIUM_WOOD" }; + IfcWindowStyleConstructionEnum.PLASTIC = { type: 3, value: "PLASTIC" }; + IfcWindowStyleConstructionEnum.OTHER_CONSTRUCTION = { type: 3, value: "OTHER_CONSTRUCTION" }; + IfcWindowStyleConstructionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcWindowStyleConstructionEnum = IfcWindowStyleConstructionEnum; + class IfcWindowStyleOperationEnum { + } + IfcWindowStyleOperationEnum.SINGLE_PANEL = { type: 3, value: "SINGLE_PANEL" }; + IfcWindowStyleOperationEnum.DOUBLE_PANEL_VERTICAL = { type: 3, value: "DOUBLE_PANEL_VERTICAL" }; + IfcWindowStyleOperationEnum.DOUBLE_PANEL_HORIZONTAL = { type: 3, value: "DOUBLE_PANEL_HORIZONTAL" }; + IfcWindowStyleOperationEnum.TRIPLE_PANEL_VERTICAL = { type: 3, value: "TRIPLE_PANEL_VERTICAL" }; + IfcWindowStyleOperationEnum.TRIPLE_PANEL_BOTTOM = { type: 3, value: "TRIPLE_PANEL_BOTTOM" }; + IfcWindowStyleOperationEnum.TRIPLE_PANEL_TOP = { type: 3, value: "TRIPLE_PANEL_TOP" }; + IfcWindowStyleOperationEnum.TRIPLE_PANEL_LEFT = { type: 3, value: "TRIPLE_PANEL_LEFT" }; + IfcWindowStyleOperationEnum.TRIPLE_PANEL_RIGHT = { type: 3, value: "TRIPLE_PANEL_RIGHT" }; + IfcWindowStyleOperationEnum.TRIPLE_PANEL_HORIZONTAL = { type: 3, value: "TRIPLE_PANEL_HORIZONTAL" }; + IfcWindowStyleOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcWindowStyleOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcWindowStyleOperationEnum = IfcWindowStyleOperationEnum; + class IfcWorkControlTypeEnum { + } + IfcWorkControlTypeEnum.ACTUAL = { type: 3, value: "ACTUAL" }; + IfcWorkControlTypeEnum.BASELINE = { type: 3, value: "BASELINE" }; + IfcWorkControlTypeEnum.PLANNED = { type: 3, value: "PLANNED" }; + IfcWorkControlTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcWorkControlTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC2X32.IfcWorkControlTypeEnum = IfcWorkControlTypeEnum; + class IfcActorRole extends IfcLineObject { + constructor(expressID, Role, UserDefinedRole, Description) { + super(expressID); + this.Role = Role; + this.UserDefinedRole = UserDefinedRole; + this.Description = Description; + this.type = 3630933823; + } + } + IFC2X32.IfcActorRole = IfcActorRole; + class IfcAddress extends IfcLineObject { + constructor(expressID, Purpose, Description, UserDefinedPurpose) { + super(expressID); + this.Purpose = Purpose; + this.Description = Description; + this.UserDefinedPurpose = UserDefinedPurpose; + this.type = 618182010; + } + } + IFC2X32.IfcAddress = IfcAddress; + class IfcApplication extends IfcLineObject { + constructor(expressID, ApplicationDeveloper, Version, ApplicationFullName, ApplicationIdentifier) { + super(expressID); + this.ApplicationDeveloper = ApplicationDeveloper; + this.Version = Version; + this.ApplicationFullName = ApplicationFullName; + this.ApplicationIdentifier = ApplicationIdentifier; + this.type = 639542469; + } + } + IFC2X32.IfcApplication = IfcApplication; + class IfcAppliedValue extends IfcLineObject { + constructor(expressID, Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate) { + super(expressID); + this.Name = Name; + this.Description = Description; + this.AppliedValue = AppliedValue; + this.UnitBasis = UnitBasis; + this.ApplicableDate = ApplicableDate; + this.FixedUntilDate = FixedUntilDate; + this.type = 411424972; + } + } + IFC2X32.IfcAppliedValue = IfcAppliedValue; + class IfcAppliedValueRelationship extends IfcLineObject { + constructor(expressID, ComponentOfTotal, Components, ArithmeticOperator, Name, Description) { + super(expressID); + this.ComponentOfTotal = ComponentOfTotal; + this.Components = Components; + this.ArithmeticOperator = ArithmeticOperator; + this.Name = Name; + this.Description = Description; + this.type = 1110488051; + } + } + IFC2X32.IfcAppliedValueRelationship = IfcAppliedValueRelationship; + class IfcApproval extends IfcLineObject { + constructor(expressID, Description, ApprovalDateTime, ApprovalStatus, ApprovalLevel, ApprovalQualifier, Name, Identifier) { + super(expressID); + this.Description = Description; + this.ApprovalDateTime = ApprovalDateTime; + this.ApprovalStatus = ApprovalStatus; + this.ApprovalLevel = ApprovalLevel; + this.ApprovalQualifier = ApprovalQualifier; + this.Name = Name; + this.Identifier = Identifier; + this.type = 130549933; + } + } + IFC2X32.IfcApproval = IfcApproval; + class IfcApprovalActorRelationship extends IfcLineObject { + constructor(expressID, Actor, Approval, Role) { + super(expressID); + this.Actor = Actor; + this.Approval = Approval; + this.Role = Role; + this.type = 2080292479; + } + } + IFC2X32.IfcApprovalActorRelationship = IfcApprovalActorRelationship; + class IfcApprovalPropertyRelationship extends IfcLineObject { + constructor(expressID, ApprovedProperties, Approval) { + super(expressID); + this.ApprovedProperties = ApprovedProperties; + this.Approval = Approval; + this.type = 390851274; + } + } + IFC2X32.IfcApprovalPropertyRelationship = IfcApprovalPropertyRelationship; + class IfcApprovalRelationship extends IfcLineObject { + constructor(expressID, RelatedApproval, RelatingApproval, Description, Name) { + super(expressID); + this.RelatedApproval = RelatedApproval; + this.RelatingApproval = RelatingApproval; + this.Description = Description; + this.Name = Name; + this.type = 3869604511; + } + } + IFC2X32.IfcApprovalRelationship = IfcApprovalRelationship; + class IfcBoundaryCondition extends IfcLineObject { + constructor(expressID, Name) { + super(expressID); + this.Name = Name; + this.type = 4037036970; + } + } + IFC2X32.IfcBoundaryCondition = IfcBoundaryCondition; + class IfcBoundaryEdgeCondition extends IfcBoundaryCondition { + constructor(expressID, Name, LinearStiffnessByLengthX, LinearStiffnessByLengthY, LinearStiffnessByLengthZ, RotationalStiffnessByLengthX, RotationalStiffnessByLengthY, RotationalStiffnessByLengthZ) { + super(expressID, Name); + this.Name = Name; + this.LinearStiffnessByLengthX = LinearStiffnessByLengthX; + this.LinearStiffnessByLengthY = LinearStiffnessByLengthY; + this.LinearStiffnessByLengthZ = LinearStiffnessByLengthZ; + this.RotationalStiffnessByLengthX = RotationalStiffnessByLengthX; + this.RotationalStiffnessByLengthY = RotationalStiffnessByLengthY; + this.RotationalStiffnessByLengthZ = RotationalStiffnessByLengthZ; + this.type = 1560379544; + } + } + IFC2X32.IfcBoundaryEdgeCondition = IfcBoundaryEdgeCondition; + class IfcBoundaryFaceCondition extends IfcBoundaryCondition { + constructor(expressID, Name, LinearStiffnessByAreaX, LinearStiffnessByAreaY, LinearStiffnessByAreaZ) { + super(expressID, Name); + this.Name = Name; + this.LinearStiffnessByAreaX = LinearStiffnessByAreaX; + this.LinearStiffnessByAreaY = LinearStiffnessByAreaY; + this.LinearStiffnessByAreaZ = LinearStiffnessByAreaZ; + this.type = 3367102660; + } + } + IFC2X32.IfcBoundaryFaceCondition = IfcBoundaryFaceCondition; + class IfcBoundaryNodeCondition extends IfcBoundaryCondition { + constructor(expressID, Name, LinearStiffnessX, LinearStiffnessY, LinearStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ) { + super(expressID, Name); + this.Name = Name; + this.LinearStiffnessX = LinearStiffnessX; + this.LinearStiffnessY = LinearStiffnessY; + this.LinearStiffnessZ = LinearStiffnessZ; + this.RotationalStiffnessX = RotationalStiffnessX; + this.RotationalStiffnessY = RotationalStiffnessY; + this.RotationalStiffnessZ = RotationalStiffnessZ; + this.type = 1387855156; + } + } + IFC2X32.IfcBoundaryNodeCondition = IfcBoundaryNodeCondition; + class IfcBoundaryNodeConditionWarping extends IfcBoundaryNodeCondition { + constructor(expressID, Name, LinearStiffnessX, LinearStiffnessY, LinearStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ, WarpingStiffness) { + super(expressID, Name, LinearStiffnessX, LinearStiffnessY, LinearStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ); + this.Name = Name; + this.LinearStiffnessX = LinearStiffnessX; + this.LinearStiffnessY = LinearStiffnessY; + this.LinearStiffnessZ = LinearStiffnessZ; + this.RotationalStiffnessX = RotationalStiffnessX; + this.RotationalStiffnessY = RotationalStiffnessY; + this.RotationalStiffnessZ = RotationalStiffnessZ; + this.WarpingStiffness = WarpingStiffness; + this.type = 2069777674; + } + } + IFC2X32.IfcBoundaryNodeConditionWarping = IfcBoundaryNodeConditionWarping; + class IfcCalendarDate extends IfcLineObject { + constructor(expressID, DayComponent, MonthComponent, YearComponent) { + super(expressID); + this.DayComponent = DayComponent; + this.MonthComponent = MonthComponent; + this.YearComponent = YearComponent; + this.type = 622194075; + } + } + IFC2X32.IfcCalendarDate = IfcCalendarDate; + class IfcClassification extends IfcLineObject { + constructor(expressID, Source, Edition, EditionDate, Name) { + super(expressID); + this.Source = Source; + this.Edition = Edition; + this.EditionDate = EditionDate; + this.Name = Name; + this.type = 747523909; + } + } + IFC2X32.IfcClassification = IfcClassification; + class IfcClassificationItem extends IfcLineObject { + constructor(expressID, Notation, ItemOf, Title) { + super(expressID); + this.Notation = Notation; + this.ItemOf = ItemOf; + this.Title = Title; + this.type = 1767535486; + } + } + IFC2X32.IfcClassificationItem = IfcClassificationItem; + class IfcClassificationItemRelationship extends IfcLineObject { + constructor(expressID, RelatingItem, RelatedItems) { + super(expressID); + this.RelatingItem = RelatingItem; + this.RelatedItems = RelatedItems; + this.type = 1098599126; + } + } + IFC2X32.IfcClassificationItemRelationship = IfcClassificationItemRelationship; + class IfcClassificationNotation extends IfcLineObject { + constructor(expressID, NotationFacets) { + super(expressID); + this.NotationFacets = NotationFacets; + this.type = 938368621; + } + } + IFC2X32.IfcClassificationNotation = IfcClassificationNotation; + class IfcClassificationNotationFacet extends IfcLineObject { + constructor(expressID, NotationValue) { + super(expressID); + this.NotationValue = NotationValue; + this.type = 3639012971; + } + } + IFC2X32.IfcClassificationNotationFacet = IfcClassificationNotationFacet; + class IfcColourSpecification extends IfcLineObject { + constructor(expressID, Name) { + super(expressID); + this.Name = Name; + this.type = 3264961684; + } + } + IFC2X32.IfcColourSpecification = IfcColourSpecification; + class IfcConnectionGeometry extends IfcLineObject { + constructor(expressID) { + super(expressID); + this.type = 2859738748; + } + } + IFC2X32.IfcConnectionGeometry = IfcConnectionGeometry; + class IfcConnectionPointGeometry extends IfcConnectionGeometry { + constructor(expressID, PointOnRelatingElement, PointOnRelatedElement) { + super(expressID); + this.PointOnRelatingElement = PointOnRelatingElement; + this.PointOnRelatedElement = PointOnRelatedElement; + this.type = 2614616156; + } + } + IFC2X32.IfcConnectionPointGeometry = IfcConnectionPointGeometry; + class IfcConnectionPortGeometry extends IfcConnectionGeometry { + constructor(expressID, LocationAtRelatingElement, LocationAtRelatedElement, ProfileOfPort) { + super(expressID); + this.LocationAtRelatingElement = LocationAtRelatingElement; + this.LocationAtRelatedElement = LocationAtRelatedElement; + this.ProfileOfPort = ProfileOfPort; + this.type = 4257277454; + } + } + IFC2X32.IfcConnectionPortGeometry = IfcConnectionPortGeometry; + class IfcConnectionSurfaceGeometry extends IfcConnectionGeometry { + constructor(expressID, SurfaceOnRelatingElement, SurfaceOnRelatedElement) { + super(expressID); + this.SurfaceOnRelatingElement = SurfaceOnRelatingElement; + this.SurfaceOnRelatedElement = SurfaceOnRelatedElement; + this.type = 2732653382; + } + } + IFC2X32.IfcConnectionSurfaceGeometry = IfcConnectionSurfaceGeometry; + class IfcConstraint extends IfcLineObject { + constructor(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade) { + super(expressID); + this.Name = Name; + this.Description = Description; + this.ConstraintGrade = ConstraintGrade; + this.ConstraintSource = ConstraintSource; + this.CreatingActor = CreatingActor; + this.CreationTime = CreationTime; + this.UserDefinedGrade = UserDefinedGrade; + this.type = 1959218052; + } + } + IFC2X32.IfcConstraint = IfcConstraint; + class IfcConstraintAggregationRelationship extends IfcLineObject { + constructor(expressID, Name, Description, RelatingConstraint, RelatedConstraints, LogicalAggregator) { + super(expressID); + this.Name = Name; + this.Description = Description; + this.RelatingConstraint = RelatingConstraint; + this.RelatedConstraints = RelatedConstraints; + this.LogicalAggregator = LogicalAggregator; + this.type = 1658513725; + } + } + IFC2X32.IfcConstraintAggregationRelationship = IfcConstraintAggregationRelationship; + class IfcConstraintClassificationRelationship extends IfcLineObject { + constructor(expressID, ClassifiedConstraint, RelatedClassifications) { + super(expressID); + this.ClassifiedConstraint = ClassifiedConstraint; + this.RelatedClassifications = RelatedClassifications; + this.type = 613356794; + } + } + IFC2X32.IfcConstraintClassificationRelationship = IfcConstraintClassificationRelationship; + class IfcConstraintRelationship extends IfcLineObject { + constructor(expressID, Name, Description, RelatingConstraint, RelatedConstraints) { + super(expressID); + this.Name = Name; + this.Description = Description; + this.RelatingConstraint = RelatingConstraint; + this.RelatedConstraints = RelatedConstraints; + this.type = 347226245; + } + } + IFC2X32.IfcConstraintRelationship = IfcConstraintRelationship; + class IfcCoordinatedUniversalTimeOffset extends IfcLineObject { + constructor(expressID, HourOffset, MinuteOffset, Sense) { + super(expressID); + this.HourOffset = HourOffset; + this.MinuteOffset = MinuteOffset; + this.Sense = Sense; + this.type = 1065062679; + } + } + IFC2X32.IfcCoordinatedUniversalTimeOffset = IfcCoordinatedUniversalTimeOffset; + class IfcCostValue extends IfcAppliedValue { + constructor(expressID, Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, CostType, Condition) { + super(expressID, Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate); + this.Name = Name; + this.Description = Description; + this.AppliedValue = AppliedValue; + this.UnitBasis = UnitBasis; + this.ApplicableDate = ApplicableDate; + this.FixedUntilDate = FixedUntilDate; + this.CostType = CostType; + this.Condition = Condition; + this.type = 602808272; + } + } + IFC2X32.IfcCostValue = IfcCostValue; + class IfcCurrencyRelationship extends IfcLineObject { + constructor(expressID, RelatingMonetaryUnit, RelatedMonetaryUnit, ExchangeRate, RateDateTime, RateSource) { + super(expressID); + this.RelatingMonetaryUnit = RelatingMonetaryUnit; + this.RelatedMonetaryUnit = RelatedMonetaryUnit; + this.ExchangeRate = ExchangeRate; + this.RateDateTime = RateDateTime; + this.RateSource = RateSource; + this.type = 539742890; + } + } + IFC2X32.IfcCurrencyRelationship = IfcCurrencyRelationship; + class IfcCurveStyleFont extends IfcLineObject { + constructor(expressID, Name, PatternList) { + super(expressID); + this.Name = Name; + this.PatternList = PatternList; + this.type = 1105321065; + } + } + IFC2X32.IfcCurveStyleFont = IfcCurveStyleFont; + class IfcCurveStyleFontAndScaling extends IfcLineObject { + constructor(expressID, Name, CurveFont, CurveFontScaling) { + super(expressID); + this.Name = Name; + this.CurveFont = CurveFont; + this.CurveFontScaling = CurveFontScaling; + this.type = 2367409068; + } + } + IFC2X32.IfcCurveStyleFontAndScaling = IfcCurveStyleFontAndScaling; + class IfcCurveStyleFontPattern extends IfcLineObject { + constructor(expressID, VisibleSegmentLength, InvisibleSegmentLength) { + super(expressID); + this.VisibleSegmentLength = VisibleSegmentLength; + this.InvisibleSegmentLength = InvisibleSegmentLength; + this.type = 3510044353; + } + } + IFC2X32.IfcCurveStyleFontPattern = IfcCurveStyleFontPattern; + class IfcDateAndTime extends IfcLineObject { + constructor(expressID, DateComponent, TimeComponent) { + super(expressID); + this.DateComponent = DateComponent; + this.TimeComponent = TimeComponent; + this.type = 1072939445; + } + } + IFC2X32.IfcDateAndTime = IfcDateAndTime; + class IfcDerivedUnit extends IfcLineObject { + constructor(expressID, Elements, UnitType, UserDefinedType) { + super(expressID); + this.Elements = Elements; + this.UnitType = UnitType; + this.UserDefinedType = UserDefinedType; + this.type = 1765591967; + } + } + IFC2X32.IfcDerivedUnit = IfcDerivedUnit; + class IfcDerivedUnitElement extends IfcLineObject { + constructor(expressID, Unit, Exponent) { + super(expressID); + this.Unit = Unit; + this.Exponent = Exponent; + this.type = 1045800335; + } + } + IFC2X32.IfcDerivedUnitElement = IfcDerivedUnitElement; + class IfcDimensionalExponents extends IfcLineObject { + constructor(expressID, LengthExponent, MassExponent, TimeExponent, ElectricCurrentExponent, ThermodynamicTemperatureExponent, AmountOfSubstanceExponent, LuminousIntensityExponent) { + super(expressID); + this.LengthExponent = LengthExponent; + this.MassExponent = MassExponent; + this.TimeExponent = TimeExponent; + this.ElectricCurrentExponent = ElectricCurrentExponent; + this.ThermodynamicTemperatureExponent = ThermodynamicTemperatureExponent; + this.AmountOfSubstanceExponent = AmountOfSubstanceExponent; + this.LuminousIntensityExponent = LuminousIntensityExponent; + this.type = 2949456006; + } + } + IFC2X32.IfcDimensionalExponents = IfcDimensionalExponents; + class IfcDocumentElectronicFormat extends IfcLineObject { + constructor(expressID, FileExtension, MimeContentType, MimeSubtype) { + super(expressID); + this.FileExtension = FileExtension; + this.MimeContentType = MimeContentType; + this.MimeSubtype = MimeSubtype; + this.type = 1376555844; + } + } + IFC2X32.IfcDocumentElectronicFormat = IfcDocumentElectronicFormat; + class IfcDocumentInformation extends IfcLineObject { + constructor(expressID, DocumentId, Name, Description, DocumentReferences, Purpose, IntendedUse, Scope, Revision, DocumentOwner, Editors, CreationTime, LastRevisionTime, ElectronicFormat, ValidFrom, ValidUntil, Confidentiality, Status) { + super(expressID); + this.DocumentId = DocumentId; + this.Name = Name; + this.Description = Description; + this.DocumentReferences = DocumentReferences; + this.Purpose = Purpose; + this.IntendedUse = IntendedUse; + this.Scope = Scope; + this.Revision = Revision; + this.DocumentOwner = DocumentOwner; + this.Editors = Editors; + this.CreationTime = CreationTime; + this.LastRevisionTime = LastRevisionTime; + this.ElectronicFormat = ElectronicFormat; + this.ValidFrom = ValidFrom; + this.ValidUntil = ValidUntil; + this.Confidentiality = Confidentiality; + this.Status = Status; + this.type = 1154170062; + } + } + IFC2X32.IfcDocumentInformation = IfcDocumentInformation; + class IfcDocumentInformationRelationship extends IfcLineObject { + constructor(expressID, RelatingDocument, RelatedDocuments, RelationshipType) { + super(expressID); + this.RelatingDocument = RelatingDocument; + this.RelatedDocuments = RelatedDocuments; + this.RelationshipType = RelationshipType; + this.type = 770865208; + } + } + IFC2X32.IfcDocumentInformationRelationship = IfcDocumentInformationRelationship; + class IfcDraughtingCalloutRelationship extends IfcLineObject { + constructor(expressID, Name, Description, RelatingDraughtingCallout, RelatedDraughtingCallout) { + super(expressID); + this.Name = Name; + this.Description = Description; + this.RelatingDraughtingCallout = RelatingDraughtingCallout; + this.RelatedDraughtingCallout = RelatedDraughtingCallout; + this.type = 3796139169; + } + } + IFC2X32.IfcDraughtingCalloutRelationship = IfcDraughtingCalloutRelationship; + class IfcEnvironmentalImpactValue extends IfcAppliedValue { + constructor(expressID, Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, ImpactType, Category, UserDefinedCategory) { + super(expressID, Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate); + this.Name = Name; + this.Description = Description; + this.AppliedValue = AppliedValue; + this.UnitBasis = UnitBasis; + this.ApplicableDate = ApplicableDate; + this.FixedUntilDate = FixedUntilDate; + this.ImpactType = ImpactType; + this.Category = Category; + this.UserDefinedCategory = UserDefinedCategory; + this.type = 1648886627; + } + } + IFC2X32.IfcEnvironmentalImpactValue = IfcEnvironmentalImpactValue; + class IfcExternalReference extends IfcLineObject { + constructor(expressID, Location, ItemReference, Name) { + super(expressID); + this.Location = Location; + this.ItemReference = ItemReference; + this.Name = Name; + this.type = 3200245327; + } + } + IFC2X32.IfcExternalReference = IfcExternalReference; + class IfcExternallyDefinedHatchStyle extends IfcExternalReference { + constructor(expressID, Location, ItemReference, Name) { + super(expressID, Location, ItemReference, Name); + this.Location = Location; + this.ItemReference = ItemReference; + this.Name = Name; + this.type = 2242383968; + } + } + IFC2X32.IfcExternallyDefinedHatchStyle = IfcExternallyDefinedHatchStyle; + class IfcExternallyDefinedSurfaceStyle extends IfcExternalReference { + constructor(expressID, Location, ItemReference, Name) { + super(expressID, Location, ItemReference, Name); + this.Location = Location; + this.ItemReference = ItemReference; + this.Name = Name; + this.type = 1040185647; + } + } + IFC2X32.IfcExternallyDefinedSurfaceStyle = IfcExternallyDefinedSurfaceStyle; + class IfcExternallyDefinedSymbol extends IfcExternalReference { + constructor(expressID, Location, ItemReference, Name) { + super(expressID, Location, ItemReference, Name); + this.Location = Location; + this.ItemReference = ItemReference; + this.Name = Name; + this.type = 3207319532; + } + } + IFC2X32.IfcExternallyDefinedSymbol = IfcExternallyDefinedSymbol; + class IfcExternallyDefinedTextFont extends IfcExternalReference { + constructor(expressID, Location, ItemReference, Name) { + super(expressID, Location, ItemReference, Name); + this.Location = Location; + this.ItemReference = ItemReference; + this.Name = Name; + this.type = 3548104201; + } + } + IFC2X32.IfcExternallyDefinedTextFont = IfcExternallyDefinedTextFont; + class IfcGridAxis extends IfcLineObject { + constructor(expressID, AxisTag, AxisCurve, SameSense) { + super(expressID); + this.AxisTag = AxisTag; + this.AxisCurve = AxisCurve; + this.SameSense = SameSense; + this.type = 852622518; + } + } + IFC2X32.IfcGridAxis = IfcGridAxis; + class IfcIrregularTimeSeriesValue extends IfcLineObject { + constructor(expressID, TimeStamp, ListValues) { + super(expressID); + this.TimeStamp = TimeStamp; + this.ListValues = ListValues; + this.type = 3020489413; + } + } + IFC2X32.IfcIrregularTimeSeriesValue = IfcIrregularTimeSeriesValue; + class IfcLibraryInformation extends IfcLineObject { + constructor(expressID, Name, Version, Publisher, VersionDate, LibraryReference) { + super(expressID); + this.Name = Name; + this.Version = Version; + this.Publisher = Publisher; + this.VersionDate = VersionDate; + this.LibraryReference = LibraryReference; + this.type = 2655187982; + } + } + IFC2X32.IfcLibraryInformation = IfcLibraryInformation; + class IfcLibraryReference extends IfcExternalReference { + constructor(expressID, Location, ItemReference, Name) { + super(expressID, Location, ItemReference, Name); + this.Location = Location; + this.ItemReference = ItemReference; + this.Name = Name; + this.type = 3452421091; + } + } + IFC2X32.IfcLibraryReference = IfcLibraryReference; + class IfcLightDistributionData extends IfcLineObject { + constructor(expressID, MainPlaneAngle, SecondaryPlaneAngle, LuminousIntensity) { + super(expressID); + this.MainPlaneAngle = MainPlaneAngle; + this.SecondaryPlaneAngle = SecondaryPlaneAngle; + this.LuminousIntensity = LuminousIntensity; + this.type = 4162380809; + } + } + IFC2X32.IfcLightDistributionData = IfcLightDistributionData; + class IfcLightIntensityDistribution extends IfcLineObject { + constructor(expressID, LightDistributionCurve, DistributionData) { + super(expressID); + this.LightDistributionCurve = LightDistributionCurve; + this.DistributionData = DistributionData; + this.type = 1566485204; + } + } + IFC2X32.IfcLightIntensityDistribution = IfcLightIntensityDistribution; + class IfcLocalTime extends IfcLineObject { + constructor(expressID, HourComponent, MinuteComponent, SecondComponent, Zone, DaylightSavingOffset) { + super(expressID); + this.HourComponent = HourComponent; + this.MinuteComponent = MinuteComponent; + this.SecondComponent = SecondComponent; + this.Zone = Zone; + this.DaylightSavingOffset = DaylightSavingOffset; + this.type = 30780891; + } + } + IFC2X32.IfcLocalTime = IfcLocalTime; + class IfcMaterial extends IfcLineObject { + constructor(expressID, Name) { + super(expressID); + this.Name = Name; + this.type = 1838606355; + } + } + IFC2X32.IfcMaterial = IfcMaterial; + class IfcMaterialClassificationRelationship extends IfcLineObject { + constructor(expressID, MaterialClassifications, ClassifiedMaterial) { + super(expressID); + this.MaterialClassifications = MaterialClassifications; + this.ClassifiedMaterial = ClassifiedMaterial; + this.type = 1847130766; + } + } + IFC2X32.IfcMaterialClassificationRelationship = IfcMaterialClassificationRelationship; + class IfcMaterialLayer extends IfcLineObject { + constructor(expressID, Material, LayerThickness, IsVentilated) { + super(expressID); + this.Material = Material; + this.LayerThickness = LayerThickness; + this.IsVentilated = IsVentilated; + this.type = 248100487; + } + } + IFC2X32.IfcMaterialLayer = IfcMaterialLayer; + class IfcMaterialLayerSet extends IfcLineObject { + constructor(expressID, MaterialLayers, LayerSetName) { + super(expressID); + this.MaterialLayers = MaterialLayers; + this.LayerSetName = LayerSetName; + this.type = 3303938423; + } + } + IFC2X32.IfcMaterialLayerSet = IfcMaterialLayerSet; + class IfcMaterialLayerSetUsage extends IfcLineObject { + constructor(expressID, ForLayerSet, LayerSetDirection, DirectionSense, OffsetFromReferenceLine) { + super(expressID); + this.ForLayerSet = ForLayerSet; + this.LayerSetDirection = LayerSetDirection; + this.DirectionSense = DirectionSense; + this.OffsetFromReferenceLine = OffsetFromReferenceLine; + this.type = 1303795690; + } + } + IFC2X32.IfcMaterialLayerSetUsage = IfcMaterialLayerSetUsage; + class IfcMaterialList extends IfcLineObject { + constructor(expressID, Materials) { + super(expressID); + this.Materials = Materials; + this.type = 2199411900; + } + } + IFC2X32.IfcMaterialList = IfcMaterialList; + class IfcMaterialProperties extends IfcLineObject { + constructor(expressID, Material) { + super(expressID); + this.Material = Material; + this.type = 3265635763; + } + } + IFC2X32.IfcMaterialProperties = IfcMaterialProperties; + class IfcMeasureWithUnit extends IfcLineObject { + constructor(expressID, ValueComponent, UnitComponent) { + super(expressID); + this.ValueComponent = ValueComponent; + this.UnitComponent = UnitComponent; + this.type = 2597039031; + } + } + IFC2X32.IfcMeasureWithUnit = IfcMeasureWithUnit; + class IfcMechanicalMaterialProperties extends IfcMaterialProperties { + constructor(expressID, Material, DynamicViscosity, YoungModulus, ShearModulus, PoissonRatio, ThermalExpansionCoefficient) { + super(expressID, Material); + this.Material = Material; + this.DynamicViscosity = DynamicViscosity; + this.YoungModulus = YoungModulus; + this.ShearModulus = ShearModulus; + this.PoissonRatio = PoissonRatio; + this.ThermalExpansionCoefficient = ThermalExpansionCoefficient; + this.type = 4256014907; + } + } + IFC2X32.IfcMechanicalMaterialProperties = IfcMechanicalMaterialProperties; + class IfcMechanicalSteelMaterialProperties extends IfcMechanicalMaterialProperties { + constructor(expressID, Material, DynamicViscosity, YoungModulus, ShearModulus, PoissonRatio, ThermalExpansionCoefficient, YieldStress, UltimateStress, UltimateStrain, HardeningModule, ProportionalStress, PlasticStrain, Relaxations) { + super(expressID, Material, DynamicViscosity, YoungModulus, ShearModulus, PoissonRatio, ThermalExpansionCoefficient); + this.Material = Material; + this.DynamicViscosity = DynamicViscosity; + this.YoungModulus = YoungModulus; + this.ShearModulus = ShearModulus; + this.PoissonRatio = PoissonRatio; + this.ThermalExpansionCoefficient = ThermalExpansionCoefficient; + this.YieldStress = YieldStress; + this.UltimateStress = UltimateStress; + this.UltimateStrain = UltimateStrain; + this.HardeningModule = HardeningModule; + this.ProportionalStress = ProportionalStress; + this.PlasticStrain = PlasticStrain; + this.Relaxations = Relaxations; + this.type = 677618848; + } + } + IFC2X32.IfcMechanicalSteelMaterialProperties = IfcMechanicalSteelMaterialProperties; + class IfcMetric extends IfcConstraint { + constructor(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade, Benchmark, ValueSource, DataValue) { + super(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade); + this.Name = Name; + this.Description = Description; + this.ConstraintGrade = ConstraintGrade; + this.ConstraintSource = ConstraintSource; + this.CreatingActor = CreatingActor; + this.CreationTime = CreationTime; + this.UserDefinedGrade = UserDefinedGrade; + this.Benchmark = Benchmark; + this.ValueSource = ValueSource; + this.DataValue = DataValue; + this.type = 3368373690; + } + } + IFC2X32.IfcMetric = IfcMetric; + class IfcMonetaryUnit extends IfcLineObject { + constructor(expressID, Currency) { + super(expressID); + this.Currency = Currency; + this.type = 2706619895; + } + } + IFC2X32.IfcMonetaryUnit = IfcMonetaryUnit; + class IfcNamedUnit extends IfcLineObject { + constructor(expressID, Dimensions, UnitType) { + super(expressID); + this.Dimensions = Dimensions; + this.UnitType = UnitType; + this.type = 1918398963; + } + } + IFC2X32.IfcNamedUnit = IfcNamedUnit; + class IfcObjectPlacement extends IfcLineObject { + constructor(expressID) { + super(expressID); + this.type = 3701648758; + } + } + IFC2X32.IfcObjectPlacement = IfcObjectPlacement; + class IfcObjective extends IfcConstraint { + constructor(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade, BenchmarkValues, ResultValues, ObjectiveQualifier, UserDefinedQualifier) { + super(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade); + this.Name = Name; + this.Description = Description; + this.ConstraintGrade = ConstraintGrade; + this.ConstraintSource = ConstraintSource; + this.CreatingActor = CreatingActor; + this.CreationTime = CreationTime; + this.UserDefinedGrade = UserDefinedGrade; + this.BenchmarkValues = BenchmarkValues; + this.ResultValues = ResultValues; + this.ObjectiveQualifier = ObjectiveQualifier; + this.UserDefinedQualifier = UserDefinedQualifier; + this.type = 2251480897; + } + } + IFC2X32.IfcObjective = IfcObjective; + class IfcOpticalMaterialProperties extends IfcMaterialProperties { + constructor(expressID, Material, VisibleTransmittance, SolarTransmittance, ThermalIrTransmittance, ThermalIrEmissivityBack, ThermalIrEmissivityFront, VisibleReflectanceBack, VisibleReflectanceFront, SolarReflectanceFront, SolarReflectanceBack) { + super(expressID, Material); + this.Material = Material; + this.VisibleTransmittance = VisibleTransmittance; + this.SolarTransmittance = SolarTransmittance; + this.ThermalIrTransmittance = ThermalIrTransmittance; + this.ThermalIrEmissivityBack = ThermalIrEmissivityBack; + this.ThermalIrEmissivityFront = ThermalIrEmissivityFront; + this.VisibleReflectanceBack = VisibleReflectanceBack; + this.VisibleReflectanceFront = VisibleReflectanceFront; + this.SolarReflectanceFront = SolarReflectanceFront; + this.SolarReflectanceBack = SolarReflectanceBack; + this.type = 1227763645; + } + } + IFC2X32.IfcOpticalMaterialProperties = IfcOpticalMaterialProperties; + class IfcOrganization extends IfcLineObject { + constructor(expressID, Id, Name, Description, Roles, Addresses) { + super(expressID); + this.Id = Id; + this.Name = Name; + this.Description = Description; + this.Roles = Roles; + this.Addresses = Addresses; + this.type = 4251960020; + } + } + IFC2X32.IfcOrganization = IfcOrganization; + class IfcOrganizationRelationship extends IfcLineObject { + constructor(expressID, Name, Description, RelatingOrganization, RelatedOrganizations) { + super(expressID); + this.Name = Name; + this.Description = Description; + this.RelatingOrganization = RelatingOrganization; + this.RelatedOrganizations = RelatedOrganizations; + this.type = 1411181986; + } + } + IFC2X32.IfcOrganizationRelationship = IfcOrganizationRelationship; + class IfcOwnerHistory extends IfcLineObject { + constructor(expressID, OwningUser, OwningApplication, State, ChangeAction, LastModifiedDate, LastModifyingUser, LastModifyingApplication, CreationDate) { + super(expressID); + this.OwningUser = OwningUser; + this.OwningApplication = OwningApplication; + this.State = State; + this.ChangeAction = ChangeAction; + this.LastModifiedDate = LastModifiedDate; + this.LastModifyingUser = LastModifyingUser; + this.LastModifyingApplication = LastModifyingApplication; + this.CreationDate = CreationDate; + this.type = 1207048766; + } + } + IFC2X32.IfcOwnerHistory = IfcOwnerHistory; + class IfcPerson extends IfcLineObject { + constructor(expressID, Id, FamilyName, GivenName, MiddleNames, PrefixTitles, SuffixTitles, Roles, Addresses) { + super(expressID); + this.Id = Id; + this.FamilyName = FamilyName; + this.GivenName = GivenName; + this.MiddleNames = MiddleNames; + this.PrefixTitles = PrefixTitles; + this.SuffixTitles = SuffixTitles; + this.Roles = Roles; + this.Addresses = Addresses; + this.type = 2077209135; + } + } + IFC2X32.IfcPerson = IfcPerson; + class IfcPersonAndOrganization extends IfcLineObject { + constructor(expressID, ThePerson, TheOrganization, Roles) { + super(expressID); + this.ThePerson = ThePerson; + this.TheOrganization = TheOrganization; + this.Roles = Roles; + this.type = 101040310; + } + } + IFC2X32.IfcPersonAndOrganization = IfcPersonAndOrganization; + class IfcPhysicalQuantity extends IfcLineObject { + constructor(expressID, Name, Description) { + super(expressID); + this.Name = Name; + this.Description = Description; + this.type = 2483315170; + } + } + IFC2X32.IfcPhysicalQuantity = IfcPhysicalQuantity; + class IfcPhysicalSimpleQuantity extends IfcPhysicalQuantity { + constructor(expressID, Name, Description, Unit) { + super(expressID, Name, Description); + this.Name = Name; + this.Description = Description; + this.Unit = Unit; + this.type = 2226359599; + } + } + IFC2X32.IfcPhysicalSimpleQuantity = IfcPhysicalSimpleQuantity; + class IfcPostalAddress extends IfcAddress { + constructor(expressID, Purpose, Description, UserDefinedPurpose, InternalLocation, AddressLines, PostalBox, Town, Region, PostalCode, Country) { + super(expressID, Purpose, Description, UserDefinedPurpose); + this.Purpose = Purpose; + this.Description = Description; + this.UserDefinedPurpose = UserDefinedPurpose; + this.InternalLocation = InternalLocation; + this.AddressLines = AddressLines; + this.PostalBox = PostalBox; + this.Town = Town; + this.Region = Region; + this.PostalCode = PostalCode; + this.Country = Country; + this.type = 3355820592; + } + } + IFC2X32.IfcPostalAddress = IfcPostalAddress; + class IfcPreDefinedItem extends IfcLineObject { + constructor(expressID, Name) { + super(expressID); + this.Name = Name; + this.type = 3727388367; + } + } + IFC2X32.IfcPreDefinedItem = IfcPreDefinedItem; + class IfcPreDefinedSymbol extends IfcPreDefinedItem { + constructor(expressID, Name) { + super(expressID, Name); + this.Name = Name; + this.type = 990879717; + } + } + IFC2X32.IfcPreDefinedSymbol = IfcPreDefinedSymbol; + class IfcPreDefinedTerminatorSymbol extends IfcPreDefinedSymbol { + constructor(expressID, Name) { + super(expressID, Name); + this.Name = Name; + this.type = 3213052703; + } + } + IFC2X32.IfcPreDefinedTerminatorSymbol = IfcPreDefinedTerminatorSymbol; + class IfcPreDefinedTextFont extends IfcPreDefinedItem { + constructor(expressID, Name) { + super(expressID, Name); + this.Name = Name; + this.type = 1775413392; + } + } + IFC2X32.IfcPreDefinedTextFont = IfcPreDefinedTextFont; + class IfcPresentationLayerAssignment extends IfcLineObject { + constructor(expressID, Name, Description, AssignedItems, Identifier) { + super(expressID); + this.Name = Name; + this.Description = Description; + this.AssignedItems = AssignedItems; + this.Identifier = Identifier; + this.type = 2022622350; + } + } + IFC2X32.IfcPresentationLayerAssignment = IfcPresentationLayerAssignment; + class IfcPresentationLayerWithStyle extends IfcPresentationLayerAssignment { + constructor(expressID, Name, Description, AssignedItems, Identifier, LayerOn, LayerFrozen, LayerBlocked, LayerStyles) { + super(expressID, Name, Description, AssignedItems, Identifier); + this.Name = Name; + this.Description = Description; + this.AssignedItems = AssignedItems; + this.Identifier = Identifier; + this.LayerOn = LayerOn; + this.LayerFrozen = LayerFrozen; + this.LayerBlocked = LayerBlocked; + this.LayerStyles = LayerStyles; + this.type = 1304840413; + } + } + IFC2X32.IfcPresentationLayerWithStyle = IfcPresentationLayerWithStyle; + class IfcPresentationStyle extends IfcLineObject { + constructor(expressID, Name) { + super(expressID); + this.Name = Name; + this.type = 3119450353; + } + } + IFC2X32.IfcPresentationStyle = IfcPresentationStyle; + class IfcPresentationStyleAssignment extends IfcLineObject { + constructor(expressID, Styles) { + super(expressID); + this.Styles = Styles; + this.type = 2417041796; + } + } + IFC2X32.IfcPresentationStyleAssignment = IfcPresentationStyleAssignment; + class IfcProductRepresentation extends IfcLineObject { + constructor(expressID, Name, Description, Representations) { + super(expressID); + this.Name = Name; + this.Description = Description; + this.Representations = Representations; + this.type = 2095639259; + } + } + IFC2X32.IfcProductRepresentation = IfcProductRepresentation; + class IfcProductsOfCombustionProperties extends IfcMaterialProperties { + constructor(expressID, Material, SpecificHeatCapacity, N20Content, COContent, CO2Content) { + super(expressID, Material); + this.Material = Material; + this.SpecificHeatCapacity = SpecificHeatCapacity; + this.N20Content = N20Content; + this.COContent = COContent; + this.CO2Content = CO2Content; + this.type = 2267347899; + } + } + IFC2X32.IfcProductsOfCombustionProperties = IfcProductsOfCombustionProperties; + class IfcProfileDef extends IfcLineObject { + constructor(expressID, ProfileType, ProfileName) { + super(expressID); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.type = 3958567839; + } + } + IFC2X32.IfcProfileDef = IfcProfileDef; + class IfcProfileProperties extends IfcLineObject { + constructor(expressID, ProfileName, ProfileDefinition) { + super(expressID); + this.ProfileName = ProfileName; + this.ProfileDefinition = ProfileDefinition; + this.type = 2802850158; + } + } + IFC2X32.IfcProfileProperties = IfcProfileProperties; + class IfcProperty extends IfcLineObject { + constructor(expressID, Name, Description) { + super(expressID); + this.Name = Name; + this.Description = Description; + this.type = 2598011224; + } + } + IFC2X32.IfcProperty = IfcProperty; + class IfcPropertyConstraintRelationship extends IfcLineObject { + constructor(expressID, RelatingConstraint, RelatedProperties, Name, Description) { + super(expressID); + this.RelatingConstraint = RelatingConstraint; + this.RelatedProperties = RelatedProperties; + this.Name = Name; + this.Description = Description; + this.type = 3896028662; + } + } + IFC2X32.IfcPropertyConstraintRelationship = IfcPropertyConstraintRelationship; + class IfcPropertyDependencyRelationship extends IfcLineObject { + constructor(expressID, DependingProperty, DependantProperty, Name, Description, Expression) { + super(expressID); + this.DependingProperty = DependingProperty; + this.DependantProperty = DependantProperty; + this.Name = Name; + this.Description = Description; + this.Expression = Expression; + this.type = 148025276; + } + } + IFC2X32.IfcPropertyDependencyRelationship = IfcPropertyDependencyRelationship; + class IfcPropertyEnumeration extends IfcLineObject { + constructor(expressID, Name, EnumerationValues, Unit) { + super(expressID); + this.Name = Name; + this.EnumerationValues = EnumerationValues; + this.Unit = Unit; + this.type = 3710013099; + } + } + IFC2X32.IfcPropertyEnumeration = IfcPropertyEnumeration; + class IfcQuantityArea extends IfcPhysicalSimpleQuantity { + constructor(expressID, Name, Description, Unit, AreaValue) { + super(expressID, Name, Description, Unit); + this.Name = Name; + this.Description = Description; + this.Unit = Unit; + this.AreaValue = AreaValue; + this.type = 2044713172; + } + } + IFC2X32.IfcQuantityArea = IfcQuantityArea; + class IfcQuantityCount extends IfcPhysicalSimpleQuantity { + constructor(expressID, Name, Description, Unit, CountValue) { + super(expressID, Name, Description, Unit); + this.Name = Name; + this.Description = Description; + this.Unit = Unit; + this.CountValue = CountValue; + this.type = 2093928680; + } + } + IFC2X32.IfcQuantityCount = IfcQuantityCount; + class IfcQuantityLength extends IfcPhysicalSimpleQuantity { + constructor(expressID, Name, Description, Unit, LengthValue) { + super(expressID, Name, Description, Unit); + this.Name = Name; + this.Description = Description; + this.Unit = Unit; + this.LengthValue = LengthValue; + this.type = 931644368; + } + } + IFC2X32.IfcQuantityLength = IfcQuantityLength; + class IfcQuantityTime extends IfcPhysicalSimpleQuantity { + constructor(expressID, Name, Description, Unit, TimeValue) { + super(expressID, Name, Description, Unit); + this.Name = Name; + this.Description = Description; + this.Unit = Unit; + this.TimeValue = TimeValue; + this.type = 3252649465; + } + } + IFC2X32.IfcQuantityTime = IfcQuantityTime; + class IfcQuantityVolume extends IfcPhysicalSimpleQuantity { + constructor(expressID, Name, Description, Unit, VolumeValue) { + super(expressID, Name, Description, Unit); + this.Name = Name; + this.Description = Description; + this.Unit = Unit; + this.VolumeValue = VolumeValue; + this.type = 2405470396; + } + } + IFC2X32.IfcQuantityVolume = IfcQuantityVolume; + class IfcQuantityWeight extends IfcPhysicalSimpleQuantity { + constructor(expressID, Name, Description, Unit, WeightValue) { + super(expressID, Name, Description, Unit); + this.Name = Name; + this.Description = Description; + this.Unit = Unit; + this.WeightValue = WeightValue; + this.type = 825690147; + } + } + IFC2X32.IfcQuantityWeight = IfcQuantityWeight; + class IfcReferencesValueDocument extends IfcLineObject { + constructor(expressID, ReferencedDocument, ReferencingValues, Name, Description) { + super(expressID); + this.ReferencedDocument = ReferencedDocument; + this.ReferencingValues = ReferencingValues; + this.Name = Name; + this.Description = Description; + this.type = 2692823254; + } + } + IFC2X32.IfcReferencesValueDocument = IfcReferencesValueDocument; + class IfcReinforcementBarProperties extends IfcLineObject { + constructor(expressID, TotalCrossSectionArea, SteelGrade, BarSurface, EffectiveDepth, NominalBarDiameter, BarCount) { + super(expressID); + this.TotalCrossSectionArea = TotalCrossSectionArea; + this.SteelGrade = SteelGrade; + this.BarSurface = BarSurface; + this.EffectiveDepth = EffectiveDepth; + this.NominalBarDiameter = NominalBarDiameter; + this.BarCount = BarCount; + this.type = 1580146022; + } + } + IFC2X32.IfcReinforcementBarProperties = IfcReinforcementBarProperties; + class IfcRelaxation extends IfcLineObject { + constructor(expressID, RelaxationValue, InitialStress) { + super(expressID); + this.RelaxationValue = RelaxationValue; + this.InitialStress = InitialStress; + this.type = 1222501353; + } + } + IFC2X32.IfcRelaxation = IfcRelaxation; + class IfcRepresentation extends IfcLineObject { + constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { + super(expressID); + this.ContextOfItems = ContextOfItems; + this.RepresentationIdentifier = RepresentationIdentifier; + this.RepresentationType = RepresentationType; + this.Items = Items; + this.type = 1076942058; + } + } + IFC2X32.IfcRepresentation = IfcRepresentation; + class IfcRepresentationContext extends IfcLineObject { + constructor(expressID, ContextIdentifier, ContextType) { + super(expressID); + this.ContextIdentifier = ContextIdentifier; + this.ContextType = ContextType; + this.type = 3377609919; + } + } + IFC2X32.IfcRepresentationContext = IfcRepresentationContext; + class IfcRepresentationItem extends IfcLineObject { + constructor(expressID) { + super(expressID); + this.type = 3008791417; + } + } + IFC2X32.IfcRepresentationItem = IfcRepresentationItem; + class IfcRepresentationMap extends IfcLineObject { + constructor(expressID, MappingOrigin, MappedRepresentation) { + super(expressID); + this.MappingOrigin = MappingOrigin; + this.MappedRepresentation = MappedRepresentation; + this.type = 1660063152; + } + } + IFC2X32.IfcRepresentationMap = IfcRepresentationMap; + class IfcRibPlateProfileProperties extends IfcProfileProperties { + constructor(expressID, ProfileName, ProfileDefinition, Thickness, RibHeight, RibWidth, RibSpacing, Direction) { + super(expressID, ProfileName, ProfileDefinition); + this.ProfileName = ProfileName; + this.ProfileDefinition = ProfileDefinition; + this.Thickness = Thickness; + this.RibHeight = RibHeight; + this.RibWidth = RibWidth; + this.RibSpacing = RibSpacing; + this.Direction = Direction; + this.type = 3679540991; + } + } + IFC2X32.IfcRibPlateProfileProperties = IfcRibPlateProfileProperties; + class IfcRoot extends IfcLineObject { + constructor(expressID, GlobalId, OwnerHistory, Name, Description) { + super(expressID); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.type = 2341007311; + } + } + IFC2X32.IfcRoot = IfcRoot; + class IfcSIUnit extends IfcNamedUnit { + constructor(expressID, UnitType, Prefix, Name) { + super(expressID, new Handle(0), UnitType); + this.UnitType = UnitType; + this.Prefix = Prefix; + this.Name = Name; + this.type = 448429030; + } + } + IFC2X32.IfcSIUnit = IfcSIUnit; + class IfcSectionProperties extends IfcLineObject { + constructor(expressID, SectionType, StartProfile, EndProfile) { + super(expressID); + this.SectionType = SectionType; + this.StartProfile = StartProfile; + this.EndProfile = EndProfile; + this.type = 2042790032; + } + } + IFC2X32.IfcSectionProperties = IfcSectionProperties; + class IfcSectionReinforcementProperties extends IfcLineObject { + constructor(expressID, LongitudinalStartPosition, LongitudinalEndPosition, TransversePosition, ReinforcementRole, SectionDefinition, CrossSectionReinforcementDefinitions) { + super(expressID); + this.LongitudinalStartPosition = LongitudinalStartPosition; + this.LongitudinalEndPosition = LongitudinalEndPosition; + this.TransversePosition = TransversePosition; + this.ReinforcementRole = ReinforcementRole; + this.SectionDefinition = SectionDefinition; + this.CrossSectionReinforcementDefinitions = CrossSectionReinforcementDefinitions; + this.type = 4165799628; + } + } + IFC2X32.IfcSectionReinforcementProperties = IfcSectionReinforcementProperties; + class IfcShapeAspect extends IfcLineObject { + constructor(expressID, ShapeRepresentations, Name, Description, ProductDefinitional, PartOfProductDefinitionShape) { + super(expressID); + this.ShapeRepresentations = ShapeRepresentations; + this.Name = Name; + this.Description = Description; + this.ProductDefinitional = ProductDefinitional; + this.PartOfProductDefinitionShape = PartOfProductDefinitionShape; + this.type = 867548509; + } + } + IFC2X32.IfcShapeAspect = IfcShapeAspect; + class IfcShapeModel extends IfcRepresentation { + constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { + super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items); + this.ContextOfItems = ContextOfItems; + this.RepresentationIdentifier = RepresentationIdentifier; + this.RepresentationType = RepresentationType; + this.Items = Items; + this.type = 3982875396; + } + } + IFC2X32.IfcShapeModel = IfcShapeModel; + class IfcShapeRepresentation extends IfcShapeModel { + constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { + super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items); + this.ContextOfItems = ContextOfItems; + this.RepresentationIdentifier = RepresentationIdentifier; + this.RepresentationType = RepresentationType; + this.Items = Items; + this.type = 4240577450; + } + } + IFC2X32.IfcShapeRepresentation = IfcShapeRepresentation; + class IfcSimpleProperty extends IfcProperty { + constructor(expressID, Name, Description) { + super(expressID, Name, Description); + this.Name = Name; + this.Description = Description; + this.type = 3692461612; + } + } + IFC2X32.IfcSimpleProperty = IfcSimpleProperty; + class IfcStructuralConnectionCondition extends IfcLineObject { + constructor(expressID, Name) { + super(expressID); + this.Name = Name; + this.type = 2273995522; + } + } + IFC2X32.IfcStructuralConnectionCondition = IfcStructuralConnectionCondition; + class IfcStructuralLoad extends IfcLineObject { + constructor(expressID, Name) { + super(expressID); + this.Name = Name; + this.type = 2162789131; + } + } + IFC2X32.IfcStructuralLoad = IfcStructuralLoad; + class IfcStructuralLoadStatic extends IfcStructuralLoad { + constructor(expressID, Name) { + super(expressID, Name); + this.Name = Name; + this.type = 2525727697; + } + } + IFC2X32.IfcStructuralLoadStatic = IfcStructuralLoadStatic; + class IfcStructuralLoadTemperature extends IfcStructuralLoadStatic { + constructor(expressID, Name, DeltaT_Constant, DeltaT_Y, DeltaT_Z) { + super(expressID, Name); + this.Name = Name; + this.DeltaT_Constant = DeltaT_Constant; + this.DeltaT_Y = DeltaT_Y; + this.DeltaT_Z = DeltaT_Z; + this.type = 3408363356; + } + } + IFC2X32.IfcStructuralLoadTemperature = IfcStructuralLoadTemperature; + class IfcStyleModel extends IfcRepresentation { + constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { + super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items); + this.ContextOfItems = ContextOfItems; + this.RepresentationIdentifier = RepresentationIdentifier; + this.RepresentationType = RepresentationType; + this.Items = Items; + this.type = 2830218821; + } + } + IFC2X32.IfcStyleModel = IfcStyleModel; + class IfcStyledItem extends IfcRepresentationItem { + constructor(expressID, Item, Styles, Name) { + super(expressID); + this.Item = Item; + this.Styles = Styles; + this.Name = Name; + this.type = 3958052878; + } + } + IFC2X32.IfcStyledItem = IfcStyledItem; + class IfcStyledRepresentation extends IfcStyleModel { + constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { + super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items); + this.ContextOfItems = ContextOfItems; + this.RepresentationIdentifier = RepresentationIdentifier; + this.RepresentationType = RepresentationType; + this.Items = Items; + this.type = 3049322572; + } + } + IFC2X32.IfcStyledRepresentation = IfcStyledRepresentation; + class IfcSurfaceStyle extends IfcPresentationStyle { + constructor(expressID, Name, Side, Styles) { + super(expressID, Name); + this.Name = Name; + this.Side = Side; + this.Styles = Styles; + this.type = 1300840506; + } + } + IFC2X32.IfcSurfaceStyle = IfcSurfaceStyle; + class IfcSurfaceStyleLighting extends IfcLineObject { + constructor(expressID, DiffuseTransmissionColour, DiffuseReflectionColour, TransmissionColour, ReflectanceColour) { + super(expressID); + this.DiffuseTransmissionColour = DiffuseTransmissionColour; + this.DiffuseReflectionColour = DiffuseReflectionColour; + this.TransmissionColour = TransmissionColour; + this.ReflectanceColour = ReflectanceColour; + this.type = 3303107099; + } + } + IFC2X32.IfcSurfaceStyleLighting = IfcSurfaceStyleLighting; + class IfcSurfaceStyleRefraction extends IfcLineObject { + constructor(expressID, RefractionIndex, DispersionFactor) { + super(expressID); + this.RefractionIndex = RefractionIndex; + this.DispersionFactor = DispersionFactor; + this.type = 1607154358; + } + } + IFC2X32.IfcSurfaceStyleRefraction = IfcSurfaceStyleRefraction; + class IfcSurfaceStyleShading extends IfcLineObject { + constructor(expressID, SurfaceColour) { + super(expressID); + this.SurfaceColour = SurfaceColour; + this.type = 846575682; + } + } + IFC2X32.IfcSurfaceStyleShading = IfcSurfaceStyleShading; + class IfcSurfaceStyleWithTextures extends IfcLineObject { + constructor(expressID, Textures) { + super(expressID); + this.Textures = Textures; + this.type = 1351298697; + } + } + IFC2X32.IfcSurfaceStyleWithTextures = IfcSurfaceStyleWithTextures; + class IfcSurfaceTexture extends IfcLineObject { + constructor(expressID, RepeatS, RepeatT, TextureType, TextureTransform) { + super(expressID); + this.RepeatS = RepeatS; + this.RepeatT = RepeatT; + this.TextureType = TextureType; + this.TextureTransform = TextureTransform; + this.type = 626085974; + } + } + IFC2X32.IfcSurfaceTexture = IfcSurfaceTexture; + class IfcSymbolStyle extends IfcPresentationStyle { + constructor(expressID, Name, StyleOfSymbol) { + super(expressID, Name); + this.Name = Name; + this.StyleOfSymbol = StyleOfSymbol; + this.type = 1290481447; + } + } + IFC2X32.IfcSymbolStyle = IfcSymbolStyle; + class IfcTable extends IfcLineObject { + constructor(expressID, Name, Rows) { + super(expressID); + this.Name = Name; + this.Rows = Rows; + this.type = 985171141; + } + } + IFC2X32.IfcTable = IfcTable; + class IfcTableRow extends IfcLineObject { + constructor(expressID, RowCells, IsHeading) { + super(expressID); + this.RowCells = RowCells; + this.IsHeading = IsHeading; + this.type = 531007025; + } + } + IFC2X32.IfcTableRow = IfcTableRow; + class IfcTelecomAddress extends IfcAddress { + constructor(expressID, Purpose, Description, UserDefinedPurpose, TelephoneNumbers, FacsimileNumbers, PagerNumber, ElectronicMailAddresses, WWWHomePageURL) { + super(expressID, Purpose, Description, UserDefinedPurpose); + this.Purpose = Purpose; + this.Description = Description; + this.UserDefinedPurpose = UserDefinedPurpose; + this.TelephoneNumbers = TelephoneNumbers; + this.FacsimileNumbers = FacsimileNumbers; + this.PagerNumber = PagerNumber; + this.ElectronicMailAddresses = ElectronicMailAddresses; + this.WWWHomePageURL = WWWHomePageURL; + this.type = 912023232; + } + } + IFC2X32.IfcTelecomAddress = IfcTelecomAddress; + class IfcTextStyle extends IfcPresentationStyle { + constructor(expressID, Name, TextCharacterAppearance, TextStyle, TextFontStyle) { + super(expressID, Name); + this.Name = Name; + this.TextCharacterAppearance = TextCharacterAppearance; + this.TextStyle = TextStyle; + this.TextFontStyle = TextFontStyle; + this.type = 1447204868; + } + } + IFC2X32.IfcTextStyle = IfcTextStyle; + class IfcTextStyleFontModel extends IfcPreDefinedTextFont { + constructor(expressID, Name, FontFamily, FontStyle, FontVariant, FontWeight, FontSize) { + super(expressID, Name); + this.Name = Name; + this.FontFamily = FontFamily; + this.FontStyle = FontStyle; + this.FontVariant = FontVariant; + this.FontWeight = FontWeight; + this.FontSize = FontSize; + this.type = 1983826977; + } + } + IFC2X32.IfcTextStyleFontModel = IfcTextStyleFontModel; + class IfcTextStyleForDefinedFont extends IfcLineObject { + constructor(expressID, Colour, BackgroundColour) { + super(expressID); + this.Colour = Colour; + this.BackgroundColour = BackgroundColour; + this.type = 2636378356; + } + } + IFC2X32.IfcTextStyleForDefinedFont = IfcTextStyleForDefinedFont; + class IfcTextStyleTextModel extends IfcLineObject { + constructor(expressID, TextIndent, TextAlign, TextDecoration, LetterSpacing, WordSpacing, TextTransform, LineHeight) { + super(expressID); + this.TextIndent = TextIndent; + this.TextAlign = TextAlign; + this.TextDecoration = TextDecoration; + this.LetterSpacing = LetterSpacing; + this.WordSpacing = WordSpacing; + this.TextTransform = TextTransform; + this.LineHeight = LineHeight; + this.type = 1640371178; + } + } + IFC2X32.IfcTextStyleTextModel = IfcTextStyleTextModel; + class IfcTextStyleWithBoxCharacteristics extends IfcLineObject { + constructor(expressID, BoxHeight, BoxWidth, BoxSlantAngle, BoxRotateAngle, CharacterSpacing) { + super(expressID); + this.BoxHeight = BoxHeight; + this.BoxWidth = BoxWidth; + this.BoxSlantAngle = BoxSlantAngle; + this.BoxRotateAngle = BoxRotateAngle; + this.CharacterSpacing = CharacterSpacing; + this.type = 1484833681; + } + } + IFC2X32.IfcTextStyleWithBoxCharacteristics = IfcTextStyleWithBoxCharacteristics; + class IfcTextureCoordinate extends IfcLineObject { + constructor(expressID) { + super(expressID); + this.type = 280115917; + } + } + IFC2X32.IfcTextureCoordinate = IfcTextureCoordinate; + class IfcTextureCoordinateGenerator extends IfcTextureCoordinate { + constructor(expressID, Mode, Parameter) { + super(expressID); + this.Mode = Mode; + this.Parameter = Parameter; + this.type = 1742049831; + } + } + IFC2X32.IfcTextureCoordinateGenerator = IfcTextureCoordinateGenerator; + class IfcTextureMap extends IfcTextureCoordinate { + constructor(expressID, TextureMaps) { + super(expressID); + this.TextureMaps = TextureMaps; + this.type = 2552916305; + } + } + IFC2X32.IfcTextureMap = IfcTextureMap; + class IfcTextureVertex extends IfcLineObject { + constructor(expressID, Coordinates) { + super(expressID); + this.Coordinates = Coordinates; + this.type = 1210645708; + } + } + IFC2X32.IfcTextureVertex = IfcTextureVertex; + class IfcThermalMaterialProperties extends IfcMaterialProperties { + constructor(expressID, Material, SpecificHeatCapacity, BoilingPoint, FreezingPoint, ThermalConductivity) { + super(expressID, Material); + this.Material = Material; + this.SpecificHeatCapacity = SpecificHeatCapacity; + this.BoilingPoint = BoilingPoint; + this.FreezingPoint = FreezingPoint; + this.ThermalConductivity = ThermalConductivity; + this.type = 3317419933; + } + } + IFC2X32.IfcThermalMaterialProperties = IfcThermalMaterialProperties; + class IfcTimeSeries extends IfcLineObject { + constructor(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit) { + super(expressID); + this.Name = Name; + this.Description = Description; + this.StartTime = StartTime; + this.EndTime = EndTime; + this.TimeSeriesDataType = TimeSeriesDataType; + this.DataOrigin = DataOrigin; + this.UserDefinedDataOrigin = UserDefinedDataOrigin; + this.Unit = Unit; + this.type = 3101149627; + } + } + IFC2X32.IfcTimeSeries = IfcTimeSeries; + class IfcTimeSeriesReferenceRelationship extends IfcLineObject { + constructor(expressID, ReferencedTimeSeries, TimeSeriesReferences) { + super(expressID); + this.ReferencedTimeSeries = ReferencedTimeSeries; + this.TimeSeriesReferences = TimeSeriesReferences; + this.type = 1718945513; + } + } + IFC2X32.IfcTimeSeriesReferenceRelationship = IfcTimeSeriesReferenceRelationship; + class IfcTimeSeriesValue extends IfcLineObject { + constructor(expressID, ListValues) { + super(expressID); + this.ListValues = ListValues; + this.type = 581633288; + } + } + IFC2X32.IfcTimeSeriesValue = IfcTimeSeriesValue; + class IfcTopologicalRepresentationItem extends IfcRepresentationItem { + constructor(expressID) { + super(expressID); + this.type = 1377556343; + } + } + IFC2X32.IfcTopologicalRepresentationItem = IfcTopologicalRepresentationItem; + class IfcTopologyRepresentation extends IfcShapeModel { + constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { + super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items); + this.ContextOfItems = ContextOfItems; + this.RepresentationIdentifier = RepresentationIdentifier; + this.RepresentationType = RepresentationType; + this.Items = Items; + this.type = 1735638870; + } + } + IFC2X32.IfcTopologyRepresentation = IfcTopologyRepresentation; + class IfcUnitAssignment extends IfcLineObject { + constructor(expressID, Units) { + super(expressID); + this.Units = Units; + this.type = 180925521; + } + } + IFC2X32.IfcUnitAssignment = IfcUnitAssignment; + class IfcVertex extends IfcTopologicalRepresentationItem { + constructor(expressID) { + super(expressID); + this.type = 2799835756; + } + } + IFC2X32.IfcVertex = IfcVertex; + class IfcVertexBasedTextureMap extends IfcLineObject { + constructor(expressID, TextureVertices, TexturePoints) { + super(expressID); + this.TextureVertices = TextureVertices; + this.TexturePoints = TexturePoints; + this.type = 3304826586; + } + } + IFC2X32.IfcVertexBasedTextureMap = IfcVertexBasedTextureMap; + class IfcVertexPoint extends IfcVertex { + constructor(expressID, VertexGeometry) { + super(expressID); + this.VertexGeometry = VertexGeometry; + this.type = 1907098498; + } + } + IFC2X32.IfcVertexPoint = IfcVertexPoint; + class IfcVirtualGridIntersection extends IfcLineObject { + constructor(expressID, IntersectingAxes, OffsetDistances) { + super(expressID); + this.IntersectingAxes = IntersectingAxes; + this.OffsetDistances = OffsetDistances; + this.type = 891718957; + } + } + IFC2X32.IfcVirtualGridIntersection = IfcVirtualGridIntersection; + class IfcWaterProperties extends IfcMaterialProperties { + constructor(expressID, Material, IsPotable, Hardness, AlkalinityConcentration, AcidityConcentration, ImpuritiesContent, PHLevel, DissolvedSolidsContent) { + super(expressID, Material); + this.Material = Material; + this.IsPotable = IsPotable; + this.Hardness = Hardness; + this.AlkalinityConcentration = AlkalinityConcentration; + this.AcidityConcentration = AcidityConcentration; + this.ImpuritiesContent = ImpuritiesContent; + this.PHLevel = PHLevel; + this.DissolvedSolidsContent = DissolvedSolidsContent; + this.type = 1065908215; + } + } + IFC2X32.IfcWaterProperties = IfcWaterProperties; + class IfcAnnotationOccurrence extends IfcStyledItem { + constructor(expressID, Item, Styles, Name) { + super(expressID, Item, Styles, Name); + this.Item = Item; + this.Styles = Styles; + this.Name = Name; + this.type = 2442683028; + } + } + IFC2X32.IfcAnnotationOccurrence = IfcAnnotationOccurrence; + class IfcAnnotationSurfaceOccurrence extends IfcAnnotationOccurrence { + constructor(expressID, Item, Styles, Name) { + super(expressID, Item, Styles, Name); + this.Item = Item; + this.Styles = Styles; + this.Name = Name; + this.type = 962685235; + } + } + IFC2X32.IfcAnnotationSurfaceOccurrence = IfcAnnotationSurfaceOccurrence; + class IfcAnnotationSymbolOccurrence extends IfcAnnotationOccurrence { + constructor(expressID, Item, Styles, Name) { + super(expressID, Item, Styles, Name); + this.Item = Item; + this.Styles = Styles; + this.Name = Name; + this.type = 3612888222; + } + } + IFC2X32.IfcAnnotationSymbolOccurrence = IfcAnnotationSymbolOccurrence; + class IfcAnnotationTextOccurrence extends IfcAnnotationOccurrence { + constructor(expressID, Item, Styles, Name) { + super(expressID, Item, Styles, Name); + this.Item = Item; + this.Styles = Styles; + this.Name = Name; + this.type = 2297822566; + } + } + IFC2X32.IfcAnnotationTextOccurrence = IfcAnnotationTextOccurrence; + class IfcArbitraryClosedProfileDef extends IfcProfileDef { + constructor(expressID, ProfileType, ProfileName, OuterCurve) { + super(expressID, ProfileType, ProfileName); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.OuterCurve = OuterCurve; + this.type = 3798115385; + } + } + IFC2X32.IfcArbitraryClosedProfileDef = IfcArbitraryClosedProfileDef; + class IfcArbitraryOpenProfileDef extends IfcProfileDef { + constructor(expressID, ProfileType, ProfileName, Curve) { + super(expressID, ProfileType, ProfileName); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Curve = Curve; + this.type = 1310608509; + } + } + IFC2X32.IfcArbitraryOpenProfileDef = IfcArbitraryOpenProfileDef; + class IfcArbitraryProfileDefWithVoids extends IfcArbitraryClosedProfileDef { + constructor(expressID, ProfileType, ProfileName, OuterCurve, InnerCurves) { + super(expressID, ProfileType, ProfileName, OuterCurve); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.OuterCurve = OuterCurve; + this.InnerCurves = InnerCurves; + this.type = 2705031697; + } + } + IFC2X32.IfcArbitraryProfileDefWithVoids = IfcArbitraryProfileDefWithVoids; + class IfcBlobTexture extends IfcSurfaceTexture { + constructor(expressID, RepeatS, RepeatT, TextureType, TextureTransform, RasterFormat, RasterCode) { + super(expressID, RepeatS, RepeatT, TextureType, TextureTransform); + this.RepeatS = RepeatS; + this.RepeatT = RepeatT; + this.TextureType = TextureType; + this.TextureTransform = TextureTransform; + this.RasterFormat = RasterFormat; + this.RasterCode = RasterCode; + this.type = 616511568; + } + } + IFC2X32.IfcBlobTexture = IfcBlobTexture; + class IfcCenterLineProfileDef extends IfcArbitraryOpenProfileDef { + constructor(expressID, ProfileType, ProfileName, Curve, Thickness) { + super(expressID, ProfileType, ProfileName, Curve); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Curve = Curve; + this.Thickness = Thickness; + this.type = 3150382593; + } + } + IFC2X32.IfcCenterLineProfileDef = IfcCenterLineProfileDef; + class IfcClassificationReference extends IfcExternalReference { + constructor(expressID, Location, ItemReference, Name, ReferencedSource) { + super(expressID, Location, ItemReference, Name); + this.Location = Location; + this.ItemReference = ItemReference; + this.Name = Name; + this.ReferencedSource = ReferencedSource; + this.type = 647927063; + } + } + IFC2X32.IfcClassificationReference = IfcClassificationReference; + class IfcColourRgb extends IfcColourSpecification { + constructor(expressID, Name, Red, Green, Blue) { + super(expressID, Name); + this.Name = Name; + this.Red = Red; + this.Green = Green; + this.Blue = Blue; + this.type = 776857604; + } + } + IFC2X32.IfcColourRgb = IfcColourRgb; + class IfcComplexProperty extends IfcProperty { + constructor(expressID, Name, Description, UsageName, HasProperties) { + super(expressID, Name, Description); + this.Name = Name; + this.Description = Description; + this.UsageName = UsageName; + this.HasProperties = HasProperties; + this.type = 2542286263; + } + } + IFC2X32.IfcComplexProperty = IfcComplexProperty; + class IfcCompositeProfileDef extends IfcProfileDef { + constructor(expressID, ProfileType, ProfileName, Profiles, Label) { + super(expressID, ProfileType, ProfileName); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Profiles = Profiles; + this.Label = Label; + this.type = 1485152156; + } + } + IFC2X32.IfcCompositeProfileDef = IfcCompositeProfileDef; + class IfcConnectedFaceSet extends IfcTopologicalRepresentationItem { + constructor(expressID, CfsFaces) { + super(expressID); + this.CfsFaces = CfsFaces; + this.type = 370225590; + } + } + IFC2X32.IfcConnectedFaceSet = IfcConnectedFaceSet; + class IfcConnectionCurveGeometry extends IfcConnectionGeometry { + constructor(expressID, CurveOnRelatingElement, CurveOnRelatedElement) { + super(expressID); + this.CurveOnRelatingElement = CurveOnRelatingElement; + this.CurveOnRelatedElement = CurveOnRelatedElement; + this.type = 1981873012; + } + } + IFC2X32.IfcConnectionCurveGeometry = IfcConnectionCurveGeometry; + class IfcConnectionPointEccentricity extends IfcConnectionPointGeometry { + constructor(expressID, PointOnRelatingElement, PointOnRelatedElement, EccentricityInX, EccentricityInY, EccentricityInZ) { + super(expressID, PointOnRelatingElement, PointOnRelatedElement); + this.PointOnRelatingElement = PointOnRelatingElement; + this.PointOnRelatedElement = PointOnRelatedElement; + this.EccentricityInX = EccentricityInX; + this.EccentricityInY = EccentricityInY; + this.EccentricityInZ = EccentricityInZ; + this.type = 45288368; + } + } + IFC2X32.IfcConnectionPointEccentricity = IfcConnectionPointEccentricity; + class IfcContextDependentUnit extends IfcNamedUnit { + constructor(expressID, Dimensions, UnitType, Name) { + super(expressID, Dimensions, UnitType); + this.Dimensions = Dimensions; + this.UnitType = UnitType; + this.Name = Name; + this.type = 3050246964; + } + } + IFC2X32.IfcContextDependentUnit = IfcContextDependentUnit; + class IfcConversionBasedUnit extends IfcNamedUnit { + constructor(expressID, Dimensions, UnitType, Name, ConversionFactor) { + super(expressID, Dimensions, UnitType); + this.Dimensions = Dimensions; + this.UnitType = UnitType; + this.Name = Name; + this.ConversionFactor = ConversionFactor; + this.type = 2889183280; + } + } + IFC2X32.IfcConversionBasedUnit = IfcConversionBasedUnit; + class IfcCurveStyle extends IfcPresentationStyle { + constructor(expressID, Name, CurveFont, CurveWidth, CurveColour) { + super(expressID, Name); + this.Name = Name; + this.CurveFont = CurveFont; + this.CurveWidth = CurveWidth; + this.CurveColour = CurveColour; + this.type = 3800577675; + } + } + IFC2X32.IfcCurveStyle = IfcCurveStyle; + class IfcDerivedProfileDef extends IfcProfileDef { + constructor(expressID, ProfileType, ProfileName, ParentProfile, Operator, Label) { + super(expressID, ProfileType, ProfileName); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.ParentProfile = ParentProfile; + this.Operator = Operator; + this.Label = Label; + this.type = 3632507154; + } + } + IFC2X32.IfcDerivedProfileDef = IfcDerivedProfileDef; + class IfcDimensionCalloutRelationship extends IfcDraughtingCalloutRelationship { + constructor(expressID, Name, Description, RelatingDraughtingCallout, RelatedDraughtingCallout) { + super(expressID, Name, Description, RelatingDraughtingCallout, RelatedDraughtingCallout); + this.Name = Name; + this.Description = Description; + this.RelatingDraughtingCallout = RelatingDraughtingCallout; + this.RelatedDraughtingCallout = RelatedDraughtingCallout; + this.type = 2273265877; + } + } + IFC2X32.IfcDimensionCalloutRelationship = IfcDimensionCalloutRelationship; + class IfcDimensionPair extends IfcDraughtingCalloutRelationship { + constructor(expressID, Name, Description, RelatingDraughtingCallout, RelatedDraughtingCallout) { + super(expressID, Name, Description, RelatingDraughtingCallout, RelatedDraughtingCallout); + this.Name = Name; + this.Description = Description; + this.RelatingDraughtingCallout = RelatingDraughtingCallout; + this.RelatedDraughtingCallout = RelatedDraughtingCallout; + this.type = 1694125774; + } + } + IFC2X32.IfcDimensionPair = IfcDimensionPair; + class IfcDocumentReference extends IfcExternalReference { + constructor(expressID, Location, ItemReference, Name) { + super(expressID, Location, ItemReference, Name); + this.Location = Location; + this.ItemReference = ItemReference; + this.Name = Name; + this.type = 3732053477; + } + } + IFC2X32.IfcDocumentReference = IfcDocumentReference; + class IfcDraughtingPreDefinedTextFont extends IfcPreDefinedTextFont { + constructor(expressID, Name) { + super(expressID, Name); + this.Name = Name; + this.type = 4170525392; + } + } + IFC2X32.IfcDraughtingPreDefinedTextFont = IfcDraughtingPreDefinedTextFont; + class IfcEdge extends IfcTopologicalRepresentationItem { + constructor(expressID, EdgeStart, EdgeEnd) { + super(expressID); + this.EdgeStart = EdgeStart; + this.EdgeEnd = EdgeEnd; + this.type = 3900360178; + } + } + IFC2X32.IfcEdge = IfcEdge; + class IfcEdgeCurve extends IfcEdge { + constructor(expressID, EdgeStart, EdgeEnd, EdgeGeometry, SameSense) { + super(expressID, EdgeStart, EdgeEnd); + this.EdgeStart = EdgeStart; + this.EdgeEnd = EdgeEnd; + this.EdgeGeometry = EdgeGeometry; + this.SameSense = SameSense; + this.type = 476780140; + } + } + IFC2X32.IfcEdgeCurve = IfcEdgeCurve; + class IfcExtendedMaterialProperties extends IfcMaterialProperties { + constructor(expressID, Material, ExtendedProperties, Description, Name) { + super(expressID, Material); + this.Material = Material; + this.ExtendedProperties = ExtendedProperties; + this.Description = Description; + this.Name = Name; + this.type = 1860660968; + } + } + IFC2X32.IfcExtendedMaterialProperties = IfcExtendedMaterialProperties; + class IfcFace extends IfcTopologicalRepresentationItem { + constructor(expressID, Bounds) { + super(expressID); + this.Bounds = Bounds; + this.type = 2556980723; + } + } + IFC2X32.IfcFace = IfcFace; + class IfcFaceBound extends IfcTopologicalRepresentationItem { + constructor(expressID, Bound, Orientation) { + super(expressID); + this.Bound = Bound; + this.Orientation = Orientation; + this.type = 1809719519; + } + } + IFC2X32.IfcFaceBound = IfcFaceBound; + class IfcFaceOuterBound extends IfcFaceBound { + constructor(expressID, Bound, Orientation) { + super(expressID, Bound, Orientation); + this.Bound = Bound; + this.Orientation = Orientation; + this.type = 803316827; + } + } + IFC2X32.IfcFaceOuterBound = IfcFaceOuterBound; + class IfcFaceSurface extends IfcFace { + constructor(expressID, Bounds, FaceSurface, SameSense) { + super(expressID, Bounds); + this.Bounds = Bounds; + this.FaceSurface = FaceSurface; + this.SameSense = SameSense; + this.type = 3008276851; + } + } + IFC2X32.IfcFaceSurface = IfcFaceSurface; + class IfcFailureConnectionCondition extends IfcStructuralConnectionCondition { + constructor(expressID, Name, TensionFailureX, TensionFailureY, TensionFailureZ, CompressionFailureX, CompressionFailureY, CompressionFailureZ) { + super(expressID, Name); + this.Name = Name; + this.TensionFailureX = TensionFailureX; + this.TensionFailureY = TensionFailureY; + this.TensionFailureZ = TensionFailureZ; + this.CompressionFailureX = CompressionFailureX; + this.CompressionFailureY = CompressionFailureY; + this.CompressionFailureZ = CompressionFailureZ; + this.type = 4219587988; + } + } + IFC2X32.IfcFailureConnectionCondition = IfcFailureConnectionCondition; + class IfcFillAreaStyle extends IfcPresentationStyle { + constructor(expressID, Name, FillStyles) { + super(expressID, Name); + this.Name = Name; + this.FillStyles = FillStyles; + this.type = 738692330; + } + } + IFC2X32.IfcFillAreaStyle = IfcFillAreaStyle; + class IfcFuelProperties extends IfcMaterialProperties { + constructor(expressID, Material, CombustionTemperature, CarbonContent, LowerHeatingValue, HigherHeatingValue) { + super(expressID, Material); + this.Material = Material; + this.CombustionTemperature = CombustionTemperature; + this.CarbonContent = CarbonContent; + this.LowerHeatingValue = LowerHeatingValue; + this.HigherHeatingValue = HigherHeatingValue; + this.type = 3857492461; + } + } + IFC2X32.IfcFuelProperties = IfcFuelProperties; + class IfcGeneralMaterialProperties extends IfcMaterialProperties { + constructor(expressID, Material, MolecularWeight, Porosity, MassDensity) { + super(expressID, Material); + this.Material = Material; + this.MolecularWeight = MolecularWeight; + this.Porosity = Porosity; + this.MassDensity = MassDensity; + this.type = 803998398; + } + } + IFC2X32.IfcGeneralMaterialProperties = IfcGeneralMaterialProperties; + class IfcGeneralProfileProperties extends IfcProfileProperties { + constructor(expressID, ProfileName, ProfileDefinition, PhysicalWeight, Perimeter, MinimumPlateThickness, MaximumPlateThickness, CrossSectionArea) { + super(expressID, ProfileName, ProfileDefinition); + this.ProfileName = ProfileName; + this.ProfileDefinition = ProfileDefinition; + this.PhysicalWeight = PhysicalWeight; + this.Perimeter = Perimeter; + this.MinimumPlateThickness = MinimumPlateThickness; + this.MaximumPlateThickness = MaximumPlateThickness; + this.CrossSectionArea = CrossSectionArea; + this.type = 1446786286; + } + } + IFC2X32.IfcGeneralProfileProperties = IfcGeneralProfileProperties; + class IfcGeometricRepresentationContext extends IfcRepresentationContext { + constructor(expressID, ContextIdentifier, ContextType, CoordinateSpaceDimension, Precision, WorldCoordinateSystem, TrueNorth) { + super(expressID, ContextIdentifier, ContextType); + this.ContextIdentifier = ContextIdentifier; + this.ContextType = ContextType; + this.CoordinateSpaceDimension = CoordinateSpaceDimension; + this.Precision = Precision; + this.WorldCoordinateSystem = WorldCoordinateSystem; + this.TrueNorth = TrueNorth; + this.type = 3448662350; + } + } + IFC2X32.IfcGeometricRepresentationContext = IfcGeometricRepresentationContext; + class IfcGeometricRepresentationItem extends IfcRepresentationItem { + constructor(expressID) { + super(expressID); + this.type = 2453401579; + } + } + IFC2X32.IfcGeometricRepresentationItem = IfcGeometricRepresentationItem; + class IfcGeometricRepresentationSubContext extends IfcGeometricRepresentationContext { + constructor(expressID, ContextIdentifier, ContextType, ParentContext, TargetScale, TargetView, UserDefinedTargetView) { + super(expressID, ContextIdentifier, ContextType, new IfcDimensionCount(0), null, new Handle(0), null); + this.ContextIdentifier = ContextIdentifier; + this.ContextType = ContextType; + this.ParentContext = ParentContext; + this.TargetScale = TargetScale; + this.TargetView = TargetView; + this.UserDefinedTargetView = UserDefinedTargetView; + this.type = 4142052618; + } + } + IFC2X32.IfcGeometricRepresentationSubContext = IfcGeometricRepresentationSubContext; + class IfcGeometricSet extends IfcGeometricRepresentationItem { + constructor(expressID, Elements) { + super(expressID); + this.Elements = Elements; + this.type = 3590301190; + } + } + IFC2X32.IfcGeometricSet = IfcGeometricSet; + class IfcGridPlacement extends IfcObjectPlacement { + constructor(expressID, PlacementLocation, PlacementRefDirection) { + super(expressID); + this.PlacementLocation = PlacementLocation; + this.PlacementRefDirection = PlacementRefDirection; + this.type = 178086475; + } + } + IFC2X32.IfcGridPlacement = IfcGridPlacement; + class IfcHalfSpaceSolid extends IfcGeometricRepresentationItem { + constructor(expressID, BaseSurface, AgreementFlag) { + super(expressID); + this.BaseSurface = BaseSurface; + this.AgreementFlag = AgreementFlag; + this.type = 812098782; + } + } + IFC2X32.IfcHalfSpaceSolid = IfcHalfSpaceSolid; + class IfcHygroscopicMaterialProperties extends IfcMaterialProperties { + constructor(expressID, Material, UpperVaporResistanceFactor, LowerVaporResistanceFactor, IsothermalMoistureCapacity, VaporPermeability, MoistureDiffusivity) { + super(expressID, Material); + this.Material = Material; + this.UpperVaporResistanceFactor = UpperVaporResistanceFactor; + this.LowerVaporResistanceFactor = LowerVaporResistanceFactor; + this.IsothermalMoistureCapacity = IsothermalMoistureCapacity; + this.VaporPermeability = VaporPermeability; + this.MoistureDiffusivity = MoistureDiffusivity; + this.type = 2445078500; + } + } + IFC2X32.IfcHygroscopicMaterialProperties = IfcHygroscopicMaterialProperties; + class IfcImageTexture extends IfcSurfaceTexture { + constructor(expressID, RepeatS, RepeatT, TextureType, TextureTransform, UrlReference) { + super(expressID, RepeatS, RepeatT, TextureType, TextureTransform); + this.RepeatS = RepeatS; + this.RepeatT = RepeatT; + this.TextureType = TextureType; + this.TextureTransform = TextureTransform; + this.UrlReference = UrlReference; + this.type = 3905492369; + } + } + IFC2X32.IfcImageTexture = IfcImageTexture; + class IfcIrregularTimeSeries extends IfcTimeSeries { + constructor(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit, Values) { + super(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit); + this.Name = Name; + this.Description = Description; + this.StartTime = StartTime; + this.EndTime = EndTime; + this.TimeSeriesDataType = TimeSeriesDataType; + this.DataOrigin = DataOrigin; + this.UserDefinedDataOrigin = UserDefinedDataOrigin; + this.Unit = Unit; + this.Values = Values; + this.type = 3741457305; + } + } + IFC2X32.IfcIrregularTimeSeries = IfcIrregularTimeSeries; + class IfcLightSource extends IfcGeometricRepresentationItem { + constructor(expressID, Name, LightColour, AmbientIntensity, Intensity) { + super(expressID); + this.Name = Name; + this.LightColour = LightColour; + this.AmbientIntensity = AmbientIntensity; + this.Intensity = Intensity; + this.type = 1402838566; + } + } + IFC2X32.IfcLightSource = IfcLightSource; + class IfcLightSourceAmbient extends IfcLightSource { + constructor(expressID, Name, LightColour, AmbientIntensity, Intensity) { + super(expressID, Name, LightColour, AmbientIntensity, Intensity); + this.Name = Name; + this.LightColour = LightColour; + this.AmbientIntensity = AmbientIntensity; + this.Intensity = Intensity; + this.type = 125510826; + } + } + IFC2X32.IfcLightSourceAmbient = IfcLightSourceAmbient; + class IfcLightSourceDirectional extends IfcLightSource { + constructor(expressID, Name, LightColour, AmbientIntensity, Intensity, Orientation) { + super(expressID, Name, LightColour, AmbientIntensity, Intensity); + this.Name = Name; + this.LightColour = LightColour; + this.AmbientIntensity = AmbientIntensity; + this.Intensity = Intensity; + this.Orientation = Orientation; + this.type = 2604431987; + } + } + IFC2X32.IfcLightSourceDirectional = IfcLightSourceDirectional; + class IfcLightSourceGoniometric extends IfcLightSource { + constructor(expressID, Name, LightColour, AmbientIntensity, Intensity, Position, ColourAppearance, ColourTemperature, LuminousFlux, LightEmissionSource, LightDistributionDataSource) { + super(expressID, Name, LightColour, AmbientIntensity, Intensity); + this.Name = Name; + this.LightColour = LightColour; + this.AmbientIntensity = AmbientIntensity; + this.Intensity = Intensity; + this.Position = Position; + this.ColourAppearance = ColourAppearance; + this.ColourTemperature = ColourTemperature; + this.LuminousFlux = LuminousFlux; + this.LightEmissionSource = LightEmissionSource; + this.LightDistributionDataSource = LightDistributionDataSource; + this.type = 4266656042; + } + } + IFC2X32.IfcLightSourceGoniometric = IfcLightSourceGoniometric; + class IfcLightSourcePositional extends IfcLightSource { + constructor(expressID, Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation) { + super(expressID, Name, LightColour, AmbientIntensity, Intensity); + this.Name = Name; + this.LightColour = LightColour; + this.AmbientIntensity = AmbientIntensity; + this.Intensity = Intensity; + this.Position = Position; + this.Radius = Radius; + this.ConstantAttenuation = ConstantAttenuation; + this.DistanceAttenuation = DistanceAttenuation; + this.QuadricAttenuation = QuadricAttenuation; + this.type = 1520743889; + } + } + IFC2X32.IfcLightSourcePositional = IfcLightSourcePositional; + class IfcLightSourceSpot extends IfcLightSourcePositional { + constructor(expressID, Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation, Orientation, ConcentrationExponent, SpreadAngle, BeamWidthAngle) { + super(expressID, Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation); + this.Name = Name; + this.LightColour = LightColour; + this.AmbientIntensity = AmbientIntensity; + this.Intensity = Intensity; + this.Position = Position; + this.Radius = Radius; + this.ConstantAttenuation = ConstantAttenuation; + this.DistanceAttenuation = DistanceAttenuation; + this.QuadricAttenuation = QuadricAttenuation; + this.Orientation = Orientation; + this.ConcentrationExponent = ConcentrationExponent; + this.SpreadAngle = SpreadAngle; + this.BeamWidthAngle = BeamWidthAngle; + this.type = 3422422726; + } + } + IFC2X32.IfcLightSourceSpot = IfcLightSourceSpot; + class IfcLocalPlacement extends IfcObjectPlacement { + constructor(expressID, PlacementRelTo, RelativePlacement) { + super(expressID); + this.PlacementRelTo = PlacementRelTo; + this.RelativePlacement = RelativePlacement; + this.type = 2624227202; + } + } + IFC2X32.IfcLocalPlacement = IfcLocalPlacement; + class IfcLoop extends IfcTopologicalRepresentationItem { + constructor(expressID) { + super(expressID); + this.type = 1008929658; + } + } + IFC2X32.IfcLoop = IfcLoop; + class IfcMappedItem extends IfcRepresentationItem { + constructor(expressID, MappingSource, MappingTarget) { + super(expressID); + this.MappingSource = MappingSource; + this.MappingTarget = MappingTarget; + this.type = 2347385850; + } + } + IFC2X32.IfcMappedItem = IfcMappedItem; + class IfcMaterialDefinitionRepresentation extends IfcProductRepresentation { + constructor(expressID, Name, Description, Representations, RepresentedMaterial) { + super(expressID, Name, Description, Representations); + this.Name = Name; + this.Description = Description; + this.Representations = Representations; + this.RepresentedMaterial = RepresentedMaterial; + this.type = 2022407955; + } + } + IFC2X32.IfcMaterialDefinitionRepresentation = IfcMaterialDefinitionRepresentation; + class IfcMechanicalConcreteMaterialProperties extends IfcMechanicalMaterialProperties { + constructor(expressID, Material, DynamicViscosity, YoungModulus, ShearModulus, PoissonRatio, ThermalExpansionCoefficient, CompressiveStrength, MaxAggregateSize, AdmixturesDescription, Workability, ProtectivePoreRatio, WaterImpermeability) { + super(expressID, Material, DynamicViscosity, YoungModulus, ShearModulus, PoissonRatio, ThermalExpansionCoefficient); + this.Material = Material; + this.DynamicViscosity = DynamicViscosity; + this.YoungModulus = YoungModulus; + this.ShearModulus = ShearModulus; + this.PoissonRatio = PoissonRatio; + this.ThermalExpansionCoefficient = ThermalExpansionCoefficient; + this.CompressiveStrength = CompressiveStrength; + this.MaxAggregateSize = MaxAggregateSize; + this.AdmixturesDescription = AdmixturesDescription; + this.Workability = Workability; + this.ProtectivePoreRatio = ProtectivePoreRatio; + this.WaterImpermeability = WaterImpermeability; + this.type = 1430189142; + } + } + IFC2X32.IfcMechanicalConcreteMaterialProperties = IfcMechanicalConcreteMaterialProperties; + class IfcObjectDefinition extends IfcRoot { + constructor(expressID, GlobalId, OwnerHistory, Name, Description) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.type = 219451334; + } + } + IFC2X32.IfcObjectDefinition = IfcObjectDefinition; + class IfcOneDirectionRepeatFactor extends IfcGeometricRepresentationItem { + constructor(expressID, RepeatFactor) { + super(expressID); + this.RepeatFactor = RepeatFactor; + this.type = 2833995503; + } + } + IFC2X32.IfcOneDirectionRepeatFactor = IfcOneDirectionRepeatFactor; + class IfcOpenShell extends IfcConnectedFaceSet { + constructor(expressID, CfsFaces) { + super(expressID, CfsFaces); + this.CfsFaces = CfsFaces; + this.type = 2665983363; + } + } + IFC2X32.IfcOpenShell = IfcOpenShell; + class IfcOrientedEdge extends IfcEdge { + constructor(expressID, EdgeElement, Orientation) { + super(expressID, new Handle(0), new Handle(0)); + this.EdgeElement = EdgeElement; + this.Orientation = Orientation; + this.type = 1029017970; + } + } + IFC2X32.IfcOrientedEdge = IfcOrientedEdge; + class IfcParameterizedProfileDef extends IfcProfileDef { + constructor(expressID, ProfileType, ProfileName, Position) { + super(expressID, ProfileType, ProfileName); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.type = 2529465313; + } + } + IFC2X32.IfcParameterizedProfileDef = IfcParameterizedProfileDef; + class IfcPath extends IfcTopologicalRepresentationItem { + constructor(expressID, EdgeList) { + super(expressID); + this.EdgeList = EdgeList; + this.type = 2519244187; + } + } + IFC2X32.IfcPath = IfcPath; + class IfcPhysicalComplexQuantity extends IfcPhysicalQuantity { + constructor(expressID, Name, Description, HasQuantities, Discrimination, Quality, Usage) { + super(expressID, Name, Description); + this.Name = Name; + this.Description = Description; + this.HasQuantities = HasQuantities; + this.Discrimination = Discrimination; + this.Quality = Quality; + this.Usage = Usage; + this.type = 3021840470; + } + } + IFC2X32.IfcPhysicalComplexQuantity = IfcPhysicalComplexQuantity; + class IfcPixelTexture extends IfcSurfaceTexture { + constructor(expressID, RepeatS, RepeatT, TextureType, TextureTransform, Width, Height, ColourComponents, Pixel) { + super(expressID, RepeatS, RepeatT, TextureType, TextureTransform); + this.RepeatS = RepeatS; + this.RepeatT = RepeatT; + this.TextureType = TextureType; + this.TextureTransform = TextureTransform; + this.Width = Width; + this.Height = Height; + this.ColourComponents = ColourComponents; + this.Pixel = Pixel; + this.type = 597895409; + } + } + IFC2X32.IfcPixelTexture = IfcPixelTexture; + class IfcPlacement extends IfcGeometricRepresentationItem { + constructor(expressID, Location) { + super(expressID); + this.Location = Location; + this.type = 2004835150; + } + } + IFC2X32.IfcPlacement = IfcPlacement; + class IfcPlanarExtent extends IfcGeometricRepresentationItem { + constructor(expressID, SizeInX, SizeInY) { + super(expressID); + this.SizeInX = SizeInX; + this.SizeInY = SizeInY; + this.type = 1663979128; + } + } + IFC2X32.IfcPlanarExtent = IfcPlanarExtent; + class IfcPoint extends IfcGeometricRepresentationItem { + constructor(expressID) { + super(expressID); + this.type = 2067069095; + } + } + IFC2X32.IfcPoint = IfcPoint; + class IfcPointOnCurve extends IfcPoint { + constructor(expressID, BasisCurve, PointParameter) { + super(expressID); + this.BasisCurve = BasisCurve; + this.PointParameter = PointParameter; + this.type = 4022376103; + } + } + IFC2X32.IfcPointOnCurve = IfcPointOnCurve; + class IfcPointOnSurface extends IfcPoint { + constructor(expressID, BasisSurface, PointParameterU, PointParameterV) { + super(expressID); + this.BasisSurface = BasisSurface; + this.PointParameterU = PointParameterU; + this.PointParameterV = PointParameterV; + this.type = 1423911732; + } + } + IFC2X32.IfcPointOnSurface = IfcPointOnSurface; + class IfcPolyLoop extends IfcLoop { + constructor(expressID, Polygon) { + super(expressID); + this.Polygon = Polygon; + this.type = 2924175390; + } + } + IFC2X32.IfcPolyLoop = IfcPolyLoop; + class IfcPolygonalBoundedHalfSpace extends IfcHalfSpaceSolid { + constructor(expressID, BaseSurface, AgreementFlag, Position, PolygonalBoundary) { + super(expressID, BaseSurface, AgreementFlag); + this.BaseSurface = BaseSurface; + this.AgreementFlag = AgreementFlag; + this.Position = Position; + this.PolygonalBoundary = PolygonalBoundary; + this.type = 2775532180; + } + } + IFC2X32.IfcPolygonalBoundedHalfSpace = IfcPolygonalBoundedHalfSpace; + class IfcPreDefinedColour extends IfcPreDefinedItem { + constructor(expressID, Name) { + super(expressID, Name); + this.Name = Name; + this.type = 759155922; + } + } + IFC2X32.IfcPreDefinedColour = IfcPreDefinedColour; + class IfcPreDefinedCurveFont extends IfcPreDefinedItem { + constructor(expressID, Name) { + super(expressID, Name); + this.Name = Name; + this.type = 2559016684; + } + } + IFC2X32.IfcPreDefinedCurveFont = IfcPreDefinedCurveFont; + class IfcPreDefinedDimensionSymbol extends IfcPreDefinedSymbol { + constructor(expressID, Name) { + super(expressID, Name); + this.Name = Name; + this.type = 433424934; + } + } + IFC2X32.IfcPreDefinedDimensionSymbol = IfcPreDefinedDimensionSymbol; + class IfcPreDefinedPointMarkerSymbol extends IfcPreDefinedSymbol { + constructor(expressID, Name) { + super(expressID, Name); + this.Name = Name; + this.type = 179317114; + } + } + IFC2X32.IfcPreDefinedPointMarkerSymbol = IfcPreDefinedPointMarkerSymbol; + class IfcProductDefinitionShape extends IfcProductRepresentation { + constructor(expressID, Name, Description, Representations) { + super(expressID, Name, Description, Representations); + this.Name = Name; + this.Description = Description; + this.Representations = Representations; + this.type = 673634403; + } + } + IFC2X32.IfcProductDefinitionShape = IfcProductDefinitionShape; + class IfcPropertyBoundedValue extends IfcSimpleProperty { + constructor(expressID, Name, Description, UpperBoundValue, LowerBoundValue, Unit) { + super(expressID, Name, Description); + this.Name = Name; + this.Description = Description; + this.UpperBoundValue = UpperBoundValue; + this.LowerBoundValue = LowerBoundValue; + this.Unit = Unit; + this.type = 871118103; + } + } + IFC2X32.IfcPropertyBoundedValue = IfcPropertyBoundedValue; + class IfcPropertyDefinition extends IfcRoot { + constructor(expressID, GlobalId, OwnerHistory, Name, Description) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.type = 1680319473; + } + } + IFC2X32.IfcPropertyDefinition = IfcPropertyDefinition; + class IfcPropertyEnumeratedValue extends IfcSimpleProperty { + constructor(expressID, Name, Description, EnumerationValues, EnumerationReference) { + super(expressID, Name, Description); + this.Name = Name; + this.Description = Description; + this.EnumerationValues = EnumerationValues; + this.EnumerationReference = EnumerationReference; + this.type = 4166981789; + } + } + IFC2X32.IfcPropertyEnumeratedValue = IfcPropertyEnumeratedValue; + class IfcPropertyListValue extends IfcSimpleProperty { + constructor(expressID, Name, Description, ListValues, Unit) { + super(expressID, Name, Description); + this.Name = Name; + this.Description = Description; + this.ListValues = ListValues; + this.Unit = Unit; + this.type = 2752243245; + } + } + IFC2X32.IfcPropertyListValue = IfcPropertyListValue; + class IfcPropertyReferenceValue extends IfcSimpleProperty { + constructor(expressID, Name, Description, UsageName, PropertyReference) { + super(expressID, Name, Description); + this.Name = Name; + this.Description = Description; + this.UsageName = UsageName; + this.PropertyReference = PropertyReference; + this.type = 941946838; + } + } + IFC2X32.IfcPropertyReferenceValue = IfcPropertyReferenceValue; + class IfcPropertySetDefinition extends IfcPropertyDefinition { + constructor(expressID, GlobalId, OwnerHistory, Name, Description) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.type = 3357820518; + } + } + IFC2X32.IfcPropertySetDefinition = IfcPropertySetDefinition; + class IfcPropertySingleValue extends IfcSimpleProperty { + constructor(expressID, Name, Description, NominalValue, Unit) { + super(expressID, Name, Description); + this.Name = Name; + this.Description = Description; + this.NominalValue = NominalValue; + this.Unit = Unit; + this.type = 3650150729; + } + } + IFC2X32.IfcPropertySingleValue = IfcPropertySingleValue; + class IfcPropertyTableValue extends IfcSimpleProperty { + constructor(expressID, Name, Description, DefiningValues, DefinedValues, Expression, DefiningUnit, DefinedUnit) { + super(expressID, Name, Description); + this.Name = Name; + this.Description = Description; + this.DefiningValues = DefiningValues; + this.DefinedValues = DefinedValues; + this.Expression = Expression; + this.DefiningUnit = DefiningUnit; + this.DefinedUnit = DefinedUnit; + this.type = 110355661; + } + } + IFC2X32.IfcPropertyTableValue = IfcPropertyTableValue; + class IfcRectangleProfileDef extends IfcParameterizedProfileDef { + constructor(expressID, ProfileType, ProfileName, Position, XDim, YDim) { + super(expressID, ProfileType, ProfileName, Position); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.XDim = XDim; + this.YDim = YDim; + this.type = 3615266464; + } + } + IFC2X32.IfcRectangleProfileDef = IfcRectangleProfileDef; + class IfcRegularTimeSeries extends IfcTimeSeries { + constructor(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit, TimeStep, Values) { + super(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit); + this.Name = Name; + this.Description = Description; + this.StartTime = StartTime; + this.EndTime = EndTime; + this.TimeSeriesDataType = TimeSeriesDataType; + this.DataOrigin = DataOrigin; + this.UserDefinedDataOrigin = UserDefinedDataOrigin; + this.Unit = Unit; + this.TimeStep = TimeStep; + this.Values = Values; + this.type = 3413951693; + } + } + IFC2X32.IfcRegularTimeSeries = IfcRegularTimeSeries; + class IfcReinforcementDefinitionProperties extends IfcPropertySetDefinition { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, DefinitionType, ReinforcementSectionDefinitions) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.DefinitionType = DefinitionType; + this.ReinforcementSectionDefinitions = ReinforcementSectionDefinitions; + this.type = 3765753017; + } + } + IFC2X32.IfcReinforcementDefinitionProperties = IfcReinforcementDefinitionProperties; + class IfcRelationship extends IfcRoot { + constructor(expressID, GlobalId, OwnerHistory, Name, Description) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.type = 478536968; + } + } + IFC2X32.IfcRelationship = IfcRelationship; + class IfcRoundedRectangleProfileDef extends IfcRectangleProfileDef { + constructor(expressID, ProfileType, ProfileName, Position, XDim, YDim, RoundingRadius) { + super(expressID, ProfileType, ProfileName, Position, XDim, YDim); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.XDim = XDim; + this.YDim = YDim; + this.RoundingRadius = RoundingRadius; + this.type = 2778083089; + } + } + IFC2X32.IfcRoundedRectangleProfileDef = IfcRoundedRectangleProfileDef; + class IfcSectionedSpine extends IfcGeometricRepresentationItem { + constructor(expressID, SpineCurve, CrossSections, CrossSectionPositions) { + super(expressID); + this.SpineCurve = SpineCurve; + this.CrossSections = CrossSections; + this.CrossSectionPositions = CrossSectionPositions; + this.type = 1509187699; + } + } + IFC2X32.IfcSectionedSpine = IfcSectionedSpine; + class IfcServiceLifeFactor extends IfcPropertySetDefinition { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, PredefinedType, UpperValue, MostUsedValue, LowerValue) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.PredefinedType = PredefinedType; + this.UpperValue = UpperValue; + this.MostUsedValue = MostUsedValue; + this.LowerValue = LowerValue; + this.type = 2411513650; + } + } + IFC2X32.IfcServiceLifeFactor = IfcServiceLifeFactor; + class IfcShellBasedSurfaceModel extends IfcGeometricRepresentationItem { + constructor(expressID, SbsmBoundary) { + super(expressID); + this.SbsmBoundary = SbsmBoundary; + this.type = 4124623270; + } + } + IFC2X32.IfcShellBasedSurfaceModel = IfcShellBasedSurfaceModel; + class IfcSlippageConnectionCondition extends IfcStructuralConnectionCondition { + constructor(expressID, Name, SlippageX, SlippageY, SlippageZ) { + super(expressID, Name); + this.Name = Name; + this.SlippageX = SlippageX; + this.SlippageY = SlippageY; + this.SlippageZ = SlippageZ; + this.type = 2609359061; + } + } + IFC2X32.IfcSlippageConnectionCondition = IfcSlippageConnectionCondition; + class IfcSolidModel extends IfcGeometricRepresentationItem { + constructor(expressID) { + super(expressID); + this.type = 723233188; + } + } + IFC2X32.IfcSolidModel = IfcSolidModel; + class IfcSoundProperties extends IfcPropertySetDefinition { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, IsAttenuating, SoundScale, SoundValues) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.IsAttenuating = IsAttenuating; + this.SoundScale = SoundScale; + this.SoundValues = SoundValues; + this.type = 2485662743; + } + } + IFC2X32.IfcSoundProperties = IfcSoundProperties; + class IfcSoundValue extends IfcPropertySetDefinition { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, SoundLevelTimeSeries, Frequency, SoundLevelSingleValue) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.SoundLevelTimeSeries = SoundLevelTimeSeries; + this.Frequency = Frequency; + this.SoundLevelSingleValue = SoundLevelSingleValue; + this.type = 1202362311; + } + } + IFC2X32.IfcSoundValue = IfcSoundValue; + class IfcSpaceThermalLoadProperties extends IfcPropertySetDefinition { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableValueRatio, ThermalLoadSource, PropertySource, SourceDescription, MaximumValue, MinimumValue, ThermalLoadTimeSeriesValues, UserDefinedThermalLoadSource, UserDefinedPropertySource, ThermalLoadType) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableValueRatio = ApplicableValueRatio; + this.ThermalLoadSource = ThermalLoadSource; + this.PropertySource = PropertySource; + this.SourceDescription = SourceDescription; + this.MaximumValue = MaximumValue; + this.MinimumValue = MinimumValue; + this.ThermalLoadTimeSeriesValues = ThermalLoadTimeSeriesValues; + this.UserDefinedThermalLoadSource = UserDefinedThermalLoadSource; + this.UserDefinedPropertySource = UserDefinedPropertySource; + this.ThermalLoadType = ThermalLoadType; + this.type = 390701378; + } + } + IFC2X32.IfcSpaceThermalLoadProperties = IfcSpaceThermalLoadProperties; + class IfcStructuralLoadLinearForce extends IfcStructuralLoadStatic { + constructor(expressID, Name, LinearForceX, LinearForceY, LinearForceZ, LinearMomentX, LinearMomentY, LinearMomentZ) { + super(expressID, Name); + this.Name = Name; + this.LinearForceX = LinearForceX; + this.LinearForceY = LinearForceY; + this.LinearForceZ = LinearForceZ; + this.LinearMomentX = LinearMomentX; + this.LinearMomentY = LinearMomentY; + this.LinearMomentZ = LinearMomentZ; + this.type = 1595516126; + } + } + IFC2X32.IfcStructuralLoadLinearForce = IfcStructuralLoadLinearForce; + class IfcStructuralLoadPlanarForce extends IfcStructuralLoadStatic { + constructor(expressID, Name, PlanarForceX, PlanarForceY, PlanarForceZ) { + super(expressID, Name); + this.Name = Name; + this.PlanarForceX = PlanarForceX; + this.PlanarForceY = PlanarForceY; + this.PlanarForceZ = PlanarForceZ; + this.type = 2668620305; + } + } + IFC2X32.IfcStructuralLoadPlanarForce = IfcStructuralLoadPlanarForce; + class IfcStructuralLoadSingleDisplacement extends IfcStructuralLoadStatic { + constructor(expressID, Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ) { + super(expressID, Name); + this.Name = Name; + this.DisplacementX = DisplacementX; + this.DisplacementY = DisplacementY; + this.DisplacementZ = DisplacementZ; + this.RotationalDisplacementRX = RotationalDisplacementRX; + this.RotationalDisplacementRY = RotationalDisplacementRY; + this.RotationalDisplacementRZ = RotationalDisplacementRZ; + this.type = 2473145415; + } + } + IFC2X32.IfcStructuralLoadSingleDisplacement = IfcStructuralLoadSingleDisplacement; + class IfcStructuralLoadSingleDisplacementDistortion extends IfcStructuralLoadSingleDisplacement { + constructor(expressID, Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ, Distortion) { + super(expressID, Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ); + this.Name = Name; + this.DisplacementX = DisplacementX; + this.DisplacementY = DisplacementY; + this.DisplacementZ = DisplacementZ; + this.RotationalDisplacementRX = RotationalDisplacementRX; + this.RotationalDisplacementRY = RotationalDisplacementRY; + this.RotationalDisplacementRZ = RotationalDisplacementRZ; + this.Distortion = Distortion; + this.type = 1973038258; + } + } + IFC2X32.IfcStructuralLoadSingleDisplacementDistortion = IfcStructuralLoadSingleDisplacementDistortion; + class IfcStructuralLoadSingleForce extends IfcStructuralLoadStatic { + constructor(expressID, Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ) { + super(expressID, Name); + this.Name = Name; + this.ForceX = ForceX; + this.ForceY = ForceY; + this.ForceZ = ForceZ; + this.MomentX = MomentX; + this.MomentY = MomentY; + this.MomentZ = MomentZ; + this.type = 1597423693; + } + } + IFC2X32.IfcStructuralLoadSingleForce = IfcStructuralLoadSingleForce; + class IfcStructuralLoadSingleForceWarping extends IfcStructuralLoadSingleForce { + constructor(expressID, Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ, WarpingMoment) { + super(expressID, Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ); + this.Name = Name; + this.ForceX = ForceX; + this.ForceY = ForceY; + this.ForceZ = ForceZ; + this.MomentX = MomentX; + this.MomentY = MomentY; + this.MomentZ = MomentZ; + this.WarpingMoment = WarpingMoment; + this.type = 1190533807; + } + } + IFC2X32.IfcStructuralLoadSingleForceWarping = IfcStructuralLoadSingleForceWarping; + class IfcStructuralProfileProperties extends IfcGeneralProfileProperties { + constructor(expressID, ProfileName, ProfileDefinition, PhysicalWeight, Perimeter, MinimumPlateThickness, MaximumPlateThickness, CrossSectionArea, TorsionalConstantX, MomentOfInertiaYZ, MomentOfInertiaY, MomentOfInertiaZ, WarpingConstant, ShearCentreZ, ShearCentreY, ShearDeformationAreaZ, ShearDeformationAreaY, MaximumSectionModulusY, MinimumSectionModulusY, MaximumSectionModulusZ, MinimumSectionModulusZ, TorsionalSectionModulus, CentreOfGravityInX, CentreOfGravityInY) { + super(expressID, ProfileName, ProfileDefinition, PhysicalWeight, Perimeter, MinimumPlateThickness, MaximumPlateThickness, CrossSectionArea); + this.ProfileName = ProfileName; + this.ProfileDefinition = ProfileDefinition; + this.PhysicalWeight = PhysicalWeight; + this.Perimeter = Perimeter; + this.MinimumPlateThickness = MinimumPlateThickness; + this.MaximumPlateThickness = MaximumPlateThickness; + this.CrossSectionArea = CrossSectionArea; + this.TorsionalConstantX = TorsionalConstantX; + this.MomentOfInertiaYZ = MomentOfInertiaYZ; + this.MomentOfInertiaY = MomentOfInertiaY; + this.MomentOfInertiaZ = MomentOfInertiaZ; + this.WarpingConstant = WarpingConstant; + this.ShearCentreZ = ShearCentreZ; + this.ShearCentreY = ShearCentreY; + this.ShearDeformationAreaZ = ShearDeformationAreaZ; + this.ShearDeformationAreaY = ShearDeformationAreaY; + this.MaximumSectionModulusY = MaximumSectionModulusY; + this.MinimumSectionModulusY = MinimumSectionModulusY; + this.MaximumSectionModulusZ = MaximumSectionModulusZ; + this.MinimumSectionModulusZ = MinimumSectionModulusZ; + this.TorsionalSectionModulus = TorsionalSectionModulus; + this.CentreOfGravityInX = CentreOfGravityInX; + this.CentreOfGravityInY = CentreOfGravityInY; + this.type = 3843319758; + } + } + IFC2X32.IfcStructuralProfileProperties = IfcStructuralProfileProperties; + class IfcStructuralSteelProfileProperties extends IfcStructuralProfileProperties { + constructor(expressID, ProfileName, ProfileDefinition, PhysicalWeight, Perimeter, MinimumPlateThickness, MaximumPlateThickness, CrossSectionArea, TorsionalConstantX, MomentOfInertiaYZ, MomentOfInertiaY, MomentOfInertiaZ, WarpingConstant, ShearCentreZ, ShearCentreY, ShearDeformationAreaZ, ShearDeformationAreaY, MaximumSectionModulusY, MinimumSectionModulusY, MaximumSectionModulusZ, MinimumSectionModulusZ, TorsionalSectionModulus, CentreOfGravityInX, CentreOfGravityInY, ShearAreaZ, ShearAreaY, PlasticShapeFactorY, PlasticShapeFactorZ) { + super(expressID, ProfileName, ProfileDefinition, PhysicalWeight, Perimeter, MinimumPlateThickness, MaximumPlateThickness, CrossSectionArea, TorsionalConstantX, MomentOfInertiaYZ, MomentOfInertiaY, MomentOfInertiaZ, WarpingConstant, ShearCentreZ, ShearCentreY, ShearDeformationAreaZ, ShearDeformationAreaY, MaximumSectionModulusY, MinimumSectionModulusY, MaximumSectionModulusZ, MinimumSectionModulusZ, TorsionalSectionModulus, CentreOfGravityInX, CentreOfGravityInY); + this.ProfileName = ProfileName; + this.ProfileDefinition = ProfileDefinition; + this.PhysicalWeight = PhysicalWeight; + this.Perimeter = Perimeter; + this.MinimumPlateThickness = MinimumPlateThickness; + this.MaximumPlateThickness = MaximumPlateThickness; + this.CrossSectionArea = CrossSectionArea; + this.TorsionalConstantX = TorsionalConstantX; + this.MomentOfInertiaYZ = MomentOfInertiaYZ; + this.MomentOfInertiaY = MomentOfInertiaY; + this.MomentOfInertiaZ = MomentOfInertiaZ; + this.WarpingConstant = WarpingConstant; + this.ShearCentreZ = ShearCentreZ; + this.ShearCentreY = ShearCentreY; + this.ShearDeformationAreaZ = ShearDeformationAreaZ; + this.ShearDeformationAreaY = ShearDeformationAreaY; + this.MaximumSectionModulusY = MaximumSectionModulusY; + this.MinimumSectionModulusY = MinimumSectionModulusY; + this.MaximumSectionModulusZ = MaximumSectionModulusZ; + this.MinimumSectionModulusZ = MinimumSectionModulusZ; + this.TorsionalSectionModulus = TorsionalSectionModulus; + this.CentreOfGravityInX = CentreOfGravityInX; + this.CentreOfGravityInY = CentreOfGravityInY; + this.ShearAreaZ = ShearAreaZ; + this.ShearAreaY = ShearAreaY; + this.PlasticShapeFactorY = PlasticShapeFactorY; + this.PlasticShapeFactorZ = PlasticShapeFactorZ; + this.type = 3653947884; + } + } + IFC2X32.IfcStructuralSteelProfileProperties = IfcStructuralSteelProfileProperties; + class IfcSubedge extends IfcEdge { + constructor(expressID, EdgeStart, EdgeEnd, ParentEdge) { + super(expressID, EdgeStart, EdgeEnd); + this.EdgeStart = EdgeStart; + this.EdgeEnd = EdgeEnd; + this.ParentEdge = ParentEdge; + this.type = 2233826070; + } + } + IFC2X32.IfcSubedge = IfcSubedge; + class IfcSurface extends IfcGeometricRepresentationItem { + constructor(expressID) { + super(expressID); + this.type = 2513912981; + } + } + IFC2X32.IfcSurface = IfcSurface; + class IfcSurfaceStyleRendering extends IfcSurfaceStyleShading { + constructor(expressID, SurfaceColour, Transparency, DiffuseColour, TransmissionColour, DiffuseTransmissionColour, ReflectionColour, SpecularColour, SpecularHighlight, ReflectanceMethod) { + super(expressID, SurfaceColour); + this.SurfaceColour = SurfaceColour; + this.Transparency = Transparency; + this.DiffuseColour = DiffuseColour; + this.TransmissionColour = TransmissionColour; + this.DiffuseTransmissionColour = DiffuseTransmissionColour; + this.ReflectionColour = ReflectionColour; + this.SpecularColour = SpecularColour; + this.SpecularHighlight = SpecularHighlight; + this.ReflectanceMethod = ReflectanceMethod; + this.type = 1878645084; + } + } + IFC2X32.IfcSurfaceStyleRendering = IfcSurfaceStyleRendering; + class IfcSweptAreaSolid extends IfcSolidModel { + constructor(expressID, SweptArea, Position) { + super(expressID); + this.SweptArea = SweptArea; + this.Position = Position; + this.type = 2247615214; + } + } + IFC2X32.IfcSweptAreaSolid = IfcSweptAreaSolid; + class IfcSweptDiskSolid extends IfcSolidModel { + constructor(expressID, Directrix, Radius, InnerRadius, StartParam, EndParam) { + super(expressID); + this.Directrix = Directrix; + this.Radius = Radius; + this.InnerRadius = InnerRadius; + this.StartParam = StartParam; + this.EndParam = EndParam; + this.type = 1260650574; + } + } + IFC2X32.IfcSweptDiskSolid = IfcSweptDiskSolid; + class IfcSweptSurface extends IfcSurface { + constructor(expressID, SweptCurve, Position) { + super(expressID); + this.SweptCurve = SweptCurve; + this.Position = Position; + this.type = 230924584; + } + } + IFC2X32.IfcSweptSurface = IfcSweptSurface; + class IfcTShapeProfileDef extends IfcParameterizedProfileDef { + constructor(expressID, ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, FlangeEdgeRadius, WebEdgeRadius, WebSlope, FlangeSlope, CentreOfGravityInY) { + super(expressID, ProfileType, ProfileName, Position); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.Depth = Depth; + this.FlangeWidth = FlangeWidth; + this.WebThickness = WebThickness; + this.FlangeThickness = FlangeThickness; + this.FilletRadius = FilletRadius; + this.FlangeEdgeRadius = FlangeEdgeRadius; + this.WebEdgeRadius = WebEdgeRadius; + this.WebSlope = WebSlope; + this.FlangeSlope = FlangeSlope; + this.CentreOfGravityInY = CentreOfGravityInY; + this.type = 3071757647; + } + } + IFC2X32.IfcTShapeProfileDef = IfcTShapeProfileDef; + class IfcTerminatorSymbol extends IfcAnnotationSymbolOccurrence { + constructor(expressID, Item, Styles, Name, AnnotatedCurve) { + super(expressID, Item, Styles, Name); + this.Item = Item; + this.Styles = Styles; + this.Name = Name; + this.AnnotatedCurve = AnnotatedCurve; + this.type = 3028897424; + } + } + IFC2X32.IfcTerminatorSymbol = IfcTerminatorSymbol; + class IfcTextLiteral extends IfcGeometricRepresentationItem { + constructor(expressID, Literal, Placement, Path) { + super(expressID); + this.Literal = Literal; + this.Placement = Placement; + this.Path = Path; + this.type = 4282788508; + } + } + IFC2X32.IfcTextLiteral = IfcTextLiteral; + class IfcTextLiteralWithExtent extends IfcTextLiteral { + constructor(expressID, Literal, Placement, Path, Extent, BoxAlignment) { + super(expressID, Literal, Placement, Path); + this.Literal = Literal; + this.Placement = Placement; + this.Path = Path; + this.Extent = Extent; + this.BoxAlignment = BoxAlignment; + this.type = 3124975700; + } + } + IFC2X32.IfcTextLiteralWithExtent = IfcTextLiteralWithExtent; + class IfcTrapeziumProfileDef extends IfcParameterizedProfileDef { + constructor(expressID, ProfileType, ProfileName, Position, BottomXDim, TopXDim, YDim, TopXOffset) { + super(expressID, ProfileType, ProfileName, Position); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.BottomXDim = BottomXDim; + this.TopXDim = TopXDim; + this.YDim = YDim; + this.TopXOffset = TopXOffset; + this.type = 2715220739; + } + } + IFC2X32.IfcTrapeziumProfileDef = IfcTrapeziumProfileDef; + class IfcTwoDirectionRepeatFactor extends IfcOneDirectionRepeatFactor { + constructor(expressID, RepeatFactor, SecondRepeatFactor) { + super(expressID, RepeatFactor); + this.RepeatFactor = RepeatFactor; + this.SecondRepeatFactor = SecondRepeatFactor; + this.type = 1345879162; + } + } + IFC2X32.IfcTwoDirectionRepeatFactor = IfcTwoDirectionRepeatFactor; + class IfcTypeObject extends IfcObjectDefinition { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.type = 1628702193; + } + } + IFC2X32.IfcTypeObject = IfcTypeObject; + class IfcTypeProduct extends IfcTypeObject { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.type = 2347495698; + } + } + IFC2X32.IfcTypeProduct = IfcTypeProduct; + class IfcUShapeProfileDef extends IfcParameterizedProfileDef { + constructor(expressID, ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, EdgeRadius, FlangeSlope, CentreOfGravityInX) { + super(expressID, ProfileType, ProfileName, Position); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.Depth = Depth; + this.FlangeWidth = FlangeWidth; + this.WebThickness = WebThickness; + this.FlangeThickness = FlangeThickness; + this.FilletRadius = FilletRadius; + this.EdgeRadius = EdgeRadius; + this.FlangeSlope = FlangeSlope; + this.CentreOfGravityInX = CentreOfGravityInX; + this.type = 427810014; + } + } + IFC2X32.IfcUShapeProfileDef = IfcUShapeProfileDef; + class IfcVector extends IfcGeometricRepresentationItem { + constructor(expressID, Orientation, Magnitude) { + super(expressID); + this.Orientation = Orientation; + this.Magnitude = Magnitude; + this.type = 1417489154; + } + } + IFC2X32.IfcVector = IfcVector; + class IfcVertexLoop extends IfcLoop { + constructor(expressID, LoopVertex) { + super(expressID); + this.LoopVertex = LoopVertex; + this.type = 2759199220; + } + } + IFC2X32.IfcVertexLoop = IfcVertexLoop; + class IfcWindowLiningProperties extends IfcPropertySetDefinition { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, LiningDepth, LiningThickness, TransomThickness, MullionThickness, FirstTransomOffset, SecondTransomOffset, FirstMullionOffset, SecondMullionOffset, ShapeAspectStyle) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.LiningDepth = LiningDepth; + this.LiningThickness = LiningThickness; + this.TransomThickness = TransomThickness; + this.MullionThickness = MullionThickness; + this.FirstTransomOffset = FirstTransomOffset; + this.SecondTransomOffset = SecondTransomOffset; + this.FirstMullionOffset = FirstMullionOffset; + this.SecondMullionOffset = SecondMullionOffset; + this.ShapeAspectStyle = ShapeAspectStyle; + this.type = 336235671; + } + } + IFC2X32.IfcWindowLiningProperties = IfcWindowLiningProperties; + class IfcWindowPanelProperties extends IfcPropertySetDefinition { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, OperationType, PanelPosition, FrameDepth, FrameThickness, ShapeAspectStyle) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.OperationType = OperationType; + this.PanelPosition = PanelPosition; + this.FrameDepth = FrameDepth; + this.FrameThickness = FrameThickness; + this.ShapeAspectStyle = ShapeAspectStyle; + this.type = 512836454; + } + } + IFC2X32.IfcWindowPanelProperties = IfcWindowPanelProperties; + class IfcWindowStyle extends IfcTypeProduct { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ConstructionType, OperationType, ParameterTakesPrecedence, Sizeable) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ConstructionType = ConstructionType; + this.OperationType = OperationType; + this.ParameterTakesPrecedence = ParameterTakesPrecedence; + this.Sizeable = Sizeable; + this.type = 1299126871; + } + } + IFC2X32.IfcWindowStyle = IfcWindowStyle; + class IfcZShapeProfileDef extends IfcParameterizedProfileDef { + constructor(expressID, ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, EdgeRadius) { + super(expressID, ProfileType, ProfileName, Position); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.Depth = Depth; + this.FlangeWidth = FlangeWidth; + this.WebThickness = WebThickness; + this.FlangeThickness = FlangeThickness; + this.FilletRadius = FilletRadius; + this.EdgeRadius = EdgeRadius; + this.type = 2543172580; + } + } + IFC2X32.IfcZShapeProfileDef = IfcZShapeProfileDef; + class IfcAnnotationCurveOccurrence extends IfcAnnotationOccurrence { + constructor(expressID, Item, Styles, Name) { + super(expressID, Item, Styles, Name); + this.Item = Item; + this.Styles = Styles; + this.Name = Name; + this.type = 3288037868; + } + } + IFC2X32.IfcAnnotationCurveOccurrence = IfcAnnotationCurveOccurrence; + class IfcAnnotationFillArea extends IfcGeometricRepresentationItem { + constructor(expressID, OuterBoundary, InnerBoundaries) { + super(expressID); + this.OuterBoundary = OuterBoundary; + this.InnerBoundaries = InnerBoundaries; + this.type = 669184980; + } + } + IFC2X32.IfcAnnotationFillArea = IfcAnnotationFillArea; + class IfcAnnotationFillAreaOccurrence extends IfcAnnotationOccurrence { + constructor(expressID, Item, Styles, Name, FillStyleTarget, GlobalOrLocal) { + super(expressID, Item, Styles, Name); + this.Item = Item; + this.Styles = Styles; + this.Name = Name; + this.FillStyleTarget = FillStyleTarget; + this.GlobalOrLocal = GlobalOrLocal; + this.type = 2265737646; + } + } + IFC2X32.IfcAnnotationFillAreaOccurrence = IfcAnnotationFillAreaOccurrence; + class IfcAnnotationSurface extends IfcGeometricRepresentationItem { + constructor(expressID, Item, TextureCoordinates) { + super(expressID); + this.Item = Item; + this.TextureCoordinates = TextureCoordinates; + this.type = 1302238472; + } + } + IFC2X32.IfcAnnotationSurface = IfcAnnotationSurface; + class IfcAxis1Placement extends IfcPlacement { + constructor(expressID, Location, Axis) { + super(expressID, Location); + this.Location = Location; + this.Axis = Axis; + this.type = 4261334040; + } + } + IFC2X32.IfcAxis1Placement = IfcAxis1Placement; + class IfcAxis2Placement2D extends IfcPlacement { + constructor(expressID, Location, RefDirection) { + super(expressID, Location); + this.Location = Location; + this.RefDirection = RefDirection; + this.type = 3125803723; + } + } + IFC2X32.IfcAxis2Placement2D = IfcAxis2Placement2D; + class IfcAxis2Placement3D extends IfcPlacement { + constructor(expressID, Location, Axis, RefDirection) { + super(expressID, Location); + this.Location = Location; + this.Axis = Axis; + this.RefDirection = RefDirection; + this.type = 2740243338; + } + } + IFC2X32.IfcAxis2Placement3D = IfcAxis2Placement3D; + class IfcBooleanResult extends IfcGeometricRepresentationItem { + constructor(expressID, Operator, FirstOperand, SecondOperand) { + super(expressID); + this.Operator = Operator; + this.FirstOperand = FirstOperand; + this.SecondOperand = SecondOperand; + this.type = 2736907675; + } + } + IFC2X32.IfcBooleanResult = IfcBooleanResult; + class IfcBoundedSurface extends IfcSurface { + constructor(expressID) { + super(expressID); + this.type = 4182860854; + } + } + IFC2X32.IfcBoundedSurface = IfcBoundedSurface; + class IfcBoundingBox extends IfcGeometricRepresentationItem { + constructor(expressID, Corner, XDim, YDim, ZDim) { + super(expressID); + this.Corner = Corner; + this.XDim = XDim; + this.YDim = YDim; + this.ZDim = ZDim; + this.type = 2581212453; + } + } + IFC2X32.IfcBoundingBox = IfcBoundingBox; + class IfcBoxedHalfSpace extends IfcHalfSpaceSolid { + constructor(expressID, BaseSurface, AgreementFlag, Enclosure) { + super(expressID, BaseSurface, AgreementFlag); + this.BaseSurface = BaseSurface; + this.AgreementFlag = AgreementFlag; + this.Enclosure = Enclosure; + this.type = 2713105998; + } + } + IFC2X32.IfcBoxedHalfSpace = IfcBoxedHalfSpace; + class IfcCShapeProfileDef extends IfcParameterizedProfileDef { + constructor(expressID, ProfileType, ProfileName, Position, Depth, Width, WallThickness, Girth, InternalFilletRadius, CentreOfGravityInX) { + super(expressID, ProfileType, ProfileName, Position); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.Depth = Depth; + this.Width = Width; + this.WallThickness = WallThickness; + this.Girth = Girth; + this.InternalFilletRadius = InternalFilletRadius; + this.CentreOfGravityInX = CentreOfGravityInX; + this.type = 2898889636; + } + } + IFC2X32.IfcCShapeProfileDef = IfcCShapeProfileDef; + class IfcCartesianPoint extends IfcPoint { + constructor(expressID, Coordinates) { + super(expressID); + this.Coordinates = Coordinates; + this.type = 1123145078; + } + } + IFC2X32.IfcCartesianPoint = IfcCartesianPoint; + class IfcCartesianTransformationOperator extends IfcGeometricRepresentationItem { + constructor(expressID, Axis1, Axis2, LocalOrigin, Scale) { + super(expressID); + this.Axis1 = Axis1; + this.Axis2 = Axis2; + this.LocalOrigin = LocalOrigin; + this.Scale = Scale; + this.type = 59481748; + } + } + IFC2X32.IfcCartesianTransformationOperator = IfcCartesianTransformationOperator; + class IfcCartesianTransformationOperator2D extends IfcCartesianTransformationOperator { + constructor(expressID, Axis1, Axis2, LocalOrigin, Scale) { + super(expressID, Axis1, Axis2, LocalOrigin, Scale); + this.Axis1 = Axis1; + this.Axis2 = Axis2; + this.LocalOrigin = LocalOrigin; + this.Scale = Scale; + this.type = 3749851601; + } + } + IFC2X32.IfcCartesianTransformationOperator2D = IfcCartesianTransformationOperator2D; + class IfcCartesianTransformationOperator2DnonUniform extends IfcCartesianTransformationOperator2D { + constructor(expressID, Axis1, Axis2, LocalOrigin, Scale, Scale2) { + super(expressID, Axis1, Axis2, LocalOrigin, Scale); + this.Axis1 = Axis1; + this.Axis2 = Axis2; + this.LocalOrigin = LocalOrigin; + this.Scale = Scale; + this.Scale2 = Scale2; + this.type = 3486308946; + } + } + IFC2X32.IfcCartesianTransformationOperator2DnonUniform = IfcCartesianTransformationOperator2DnonUniform; + class IfcCartesianTransformationOperator3D extends IfcCartesianTransformationOperator { + constructor(expressID, Axis1, Axis2, LocalOrigin, Scale, Axis3) { + super(expressID, Axis1, Axis2, LocalOrigin, Scale); + this.Axis1 = Axis1; + this.Axis2 = Axis2; + this.LocalOrigin = LocalOrigin; + this.Scale = Scale; + this.Axis3 = Axis3; + this.type = 3331915920; + } + } + IFC2X32.IfcCartesianTransformationOperator3D = IfcCartesianTransformationOperator3D; + class IfcCartesianTransformationOperator3DnonUniform extends IfcCartesianTransformationOperator3D { + constructor(expressID, Axis1, Axis2, LocalOrigin, Scale, Axis3, Scale2, Scale3) { + super(expressID, Axis1, Axis2, LocalOrigin, Scale, Axis3); + this.Axis1 = Axis1; + this.Axis2 = Axis2; + this.LocalOrigin = LocalOrigin; + this.Scale = Scale; + this.Axis3 = Axis3; + this.Scale2 = Scale2; + this.Scale3 = Scale3; + this.type = 1416205885; + } + } + IFC2X32.IfcCartesianTransformationOperator3DnonUniform = IfcCartesianTransformationOperator3DnonUniform; + class IfcCircleProfileDef extends IfcParameterizedProfileDef { + constructor(expressID, ProfileType, ProfileName, Position, Radius) { + super(expressID, ProfileType, ProfileName, Position); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.Radius = Radius; + this.type = 1383045692; + } + } + IFC2X32.IfcCircleProfileDef = IfcCircleProfileDef; + class IfcClosedShell extends IfcConnectedFaceSet { + constructor(expressID, CfsFaces) { + super(expressID, CfsFaces); + this.CfsFaces = CfsFaces; + this.type = 2205249479; + } + } + IFC2X32.IfcClosedShell = IfcClosedShell; + class IfcCompositeCurveSegment extends IfcGeometricRepresentationItem { + constructor(expressID, Transition, SameSense, ParentCurve) { + super(expressID); + this.Transition = Transition; + this.SameSense = SameSense; + this.ParentCurve = ParentCurve; + this.type = 2485617015; + } + } + IFC2X32.IfcCompositeCurveSegment = IfcCompositeCurveSegment; + class IfcCraneRailAShapeProfileDef extends IfcParameterizedProfileDef { + constructor(expressID, ProfileType, ProfileName, Position, OverallHeight, BaseWidth2, Radius, HeadWidth, HeadDepth2, HeadDepth3, WebThickness, BaseWidth4, BaseDepth1, BaseDepth2, BaseDepth3, CentreOfGravityInY) { + super(expressID, ProfileType, ProfileName, Position); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.OverallHeight = OverallHeight; + this.BaseWidth2 = BaseWidth2; + this.Radius = Radius; + this.HeadWidth = HeadWidth; + this.HeadDepth2 = HeadDepth2; + this.HeadDepth3 = HeadDepth3; + this.WebThickness = WebThickness; + this.BaseWidth4 = BaseWidth4; + this.BaseDepth1 = BaseDepth1; + this.BaseDepth2 = BaseDepth2; + this.BaseDepth3 = BaseDepth3; + this.CentreOfGravityInY = CentreOfGravityInY; + this.type = 4133800736; + } + } + IFC2X32.IfcCraneRailAShapeProfileDef = IfcCraneRailAShapeProfileDef; + class IfcCraneRailFShapeProfileDef extends IfcParameterizedProfileDef { + constructor(expressID, ProfileType, ProfileName, Position, OverallHeight, HeadWidth, Radius, HeadDepth2, HeadDepth3, WebThickness, BaseDepth1, BaseDepth2, CentreOfGravityInY) { + super(expressID, ProfileType, ProfileName, Position); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.OverallHeight = OverallHeight; + this.HeadWidth = HeadWidth; + this.Radius = Radius; + this.HeadDepth2 = HeadDepth2; + this.HeadDepth3 = HeadDepth3; + this.WebThickness = WebThickness; + this.BaseDepth1 = BaseDepth1; + this.BaseDepth2 = BaseDepth2; + this.CentreOfGravityInY = CentreOfGravityInY; + this.type = 194851669; + } + } + IFC2X32.IfcCraneRailFShapeProfileDef = IfcCraneRailFShapeProfileDef; + class IfcCsgPrimitive3D extends IfcGeometricRepresentationItem { + constructor(expressID, Position) { + super(expressID); + this.Position = Position; + this.type = 2506170314; + } + } + IFC2X32.IfcCsgPrimitive3D = IfcCsgPrimitive3D; + class IfcCsgSolid extends IfcSolidModel { + constructor(expressID, TreeRootExpression) { + super(expressID); + this.TreeRootExpression = TreeRootExpression; + this.type = 2147822146; + } + } + IFC2X32.IfcCsgSolid = IfcCsgSolid; + class IfcCurve extends IfcGeometricRepresentationItem { + constructor(expressID) { + super(expressID); + this.type = 2601014836; + } + } + IFC2X32.IfcCurve = IfcCurve; + class IfcCurveBoundedPlane extends IfcBoundedSurface { + constructor(expressID, BasisSurface, OuterBoundary, InnerBoundaries) { + super(expressID); + this.BasisSurface = BasisSurface; + this.OuterBoundary = OuterBoundary; + this.InnerBoundaries = InnerBoundaries; + this.type = 2827736869; + } + } + IFC2X32.IfcCurveBoundedPlane = IfcCurveBoundedPlane; + class IfcDefinedSymbol extends IfcGeometricRepresentationItem { + constructor(expressID, Definition, Target) { + super(expressID); + this.Definition = Definition; + this.Target = Target; + this.type = 693772133; + } + } + IFC2X32.IfcDefinedSymbol = IfcDefinedSymbol; + class IfcDimensionCurve extends IfcAnnotationCurveOccurrence { + constructor(expressID, Item, Styles, Name) { + super(expressID, Item, Styles, Name); + this.Item = Item; + this.Styles = Styles; + this.Name = Name; + this.type = 606661476; + } + } + IFC2X32.IfcDimensionCurve = IfcDimensionCurve; + class IfcDimensionCurveTerminator extends IfcTerminatorSymbol { + constructor(expressID, Item, Styles, Name, AnnotatedCurve, Role) { + super(expressID, Item, Styles, Name, AnnotatedCurve); + this.Item = Item; + this.Styles = Styles; + this.Name = Name; + this.AnnotatedCurve = AnnotatedCurve; + this.Role = Role; + this.type = 4054601972; + } + } + IFC2X32.IfcDimensionCurveTerminator = IfcDimensionCurveTerminator; + class IfcDirection extends IfcGeometricRepresentationItem { + constructor(expressID, DirectionRatios) { + super(expressID); + this.DirectionRatios = DirectionRatios; + this.type = 32440307; + } + } + IFC2X32.IfcDirection = IfcDirection; + class IfcDoorLiningProperties extends IfcPropertySetDefinition { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, LiningDepth, LiningThickness, ThresholdDepth, ThresholdThickness, TransomThickness, TransomOffset, LiningOffset, ThresholdOffset, CasingThickness, CasingDepth, ShapeAspectStyle) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.LiningDepth = LiningDepth; + this.LiningThickness = LiningThickness; + this.ThresholdDepth = ThresholdDepth; + this.ThresholdThickness = ThresholdThickness; + this.TransomThickness = TransomThickness; + this.TransomOffset = TransomOffset; + this.LiningOffset = LiningOffset; + this.ThresholdOffset = ThresholdOffset; + this.CasingThickness = CasingThickness; + this.CasingDepth = CasingDepth; + this.ShapeAspectStyle = ShapeAspectStyle; + this.type = 2963535650; + } + } + IFC2X32.IfcDoorLiningProperties = IfcDoorLiningProperties; + class IfcDoorPanelProperties extends IfcPropertySetDefinition { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, PanelDepth, PanelOperation, PanelWidth, PanelPosition, ShapeAspectStyle) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.PanelDepth = PanelDepth; + this.PanelOperation = PanelOperation; + this.PanelWidth = PanelWidth; + this.PanelPosition = PanelPosition; + this.ShapeAspectStyle = ShapeAspectStyle; + this.type = 1714330368; + } + } + IFC2X32.IfcDoorPanelProperties = IfcDoorPanelProperties; + class IfcDoorStyle extends IfcTypeProduct { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, OperationType, ConstructionType, ParameterTakesPrecedence, Sizeable) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.OperationType = OperationType; + this.ConstructionType = ConstructionType; + this.ParameterTakesPrecedence = ParameterTakesPrecedence; + this.Sizeable = Sizeable; + this.type = 526551008; + } + } + IFC2X32.IfcDoorStyle = IfcDoorStyle; + class IfcDraughtingCallout extends IfcGeometricRepresentationItem { + constructor(expressID, Contents) { + super(expressID); + this.Contents = Contents; + this.type = 3073041342; + } + } + IFC2X32.IfcDraughtingCallout = IfcDraughtingCallout; + class IfcDraughtingPreDefinedColour extends IfcPreDefinedColour { + constructor(expressID, Name) { + super(expressID, Name); + this.Name = Name; + this.type = 445594917; + } + } + IFC2X32.IfcDraughtingPreDefinedColour = IfcDraughtingPreDefinedColour; + class IfcDraughtingPreDefinedCurveFont extends IfcPreDefinedCurveFont { + constructor(expressID, Name) { + super(expressID, Name); + this.Name = Name; + this.type = 4006246654; + } + } + IFC2X32.IfcDraughtingPreDefinedCurveFont = IfcDraughtingPreDefinedCurveFont; + class IfcEdgeLoop extends IfcLoop { + constructor(expressID, EdgeList) { + super(expressID); + this.EdgeList = EdgeList; + this.type = 1472233963; + } + } + IFC2X32.IfcEdgeLoop = IfcEdgeLoop; + class IfcElementQuantity extends IfcPropertySetDefinition { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, MethodOfMeasurement, Quantities) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.MethodOfMeasurement = MethodOfMeasurement; + this.Quantities = Quantities; + this.type = 1883228015; + } + } + IFC2X32.IfcElementQuantity = IfcElementQuantity; + class IfcElementType extends IfcTypeProduct { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 339256511; + } + } + IFC2X32.IfcElementType = IfcElementType; + class IfcElementarySurface extends IfcSurface { + constructor(expressID, Position) { + super(expressID); + this.Position = Position; + this.type = 2777663545; + } + } + IFC2X32.IfcElementarySurface = IfcElementarySurface; + class IfcEllipseProfileDef extends IfcParameterizedProfileDef { + constructor(expressID, ProfileType, ProfileName, Position, SemiAxis1, SemiAxis2) { + super(expressID, ProfileType, ProfileName, Position); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.SemiAxis1 = SemiAxis1; + this.SemiAxis2 = SemiAxis2; + this.type = 2835456948; + } + } + IFC2X32.IfcEllipseProfileDef = IfcEllipseProfileDef; + class IfcEnergyProperties extends IfcPropertySetDefinition { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, EnergySequence, UserDefinedEnergySequence) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.EnergySequence = EnergySequence; + this.UserDefinedEnergySequence = UserDefinedEnergySequence; + this.type = 80994333; + } + } + IFC2X32.IfcEnergyProperties = IfcEnergyProperties; + class IfcExtrudedAreaSolid extends IfcSweptAreaSolid { + constructor(expressID, SweptArea, Position, ExtrudedDirection, Depth) { + super(expressID, SweptArea, Position); + this.SweptArea = SweptArea; + this.Position = Position; + this.ExtrudedDirection = ExtrudedDirection; + this.Depth = Depth; + this.type = 477187591; + } + } + IFC2X32.IfcExtrudedAreaSolid = IfcExtrudedAreaSolid; + class IfcFaceBasedSurfaceModel extends IfcGeometricRepresentationItem { + constructor(expressID, FbsmFaces) { + super(expressID); + this.FbsmFaces = FbsmFaces; + this.type = 2047409740; + } + } + IFC2X32.IfcFaceBasedSurfaceModel = IfcFaceBasedSurfaceModel; + class IfcFillAreaStyleHatching extends IfcGeometricRepresentationItem { + constructor(expressID, HatchLineAppearance, StartOfNextHatchLine, PointOfReferenceHatchLine, PatternStart, HatchLineAngle) { + super(expressID); + this.HatchLineAppearance = HatchLineAppearance; + this.StartOfNextHatchLine = StartOfNextHatchLine; + this.PointOfReferenceHatchLine = PointOfReferenceHatchLine; + this.PatternStart = PatternStart; + this.HatchLineAngle = HatchLineAngle; + this.type = 374418227; + } + } + IFC2X32.IfcFillAreaStyleHatching = IfcFillAreaStyleHatching; + class IfcFillAreaStyleTileSymbolWithStyle extends IfcGeometricRepresentationItem { + constructor(expressID, Symbol2) { + super(expressID); + this.Symbol = Symbol2; + this.type = 4203026998; + } + } + IFC2X32.IfcFillAreaStyleTileSymbolWithStyle = IfcFillAreaStyleTileSymbolWithStyle; + class IfcFillAreaStyleTiles extends IfcGeometricRepresentationItem { + constructor(expressID, TilingPattern, Tiles, TilingScale) { + super(expressID); + this.TilingPattern = TilingPattern; + this.Tiles = Tiles; + this.TilingScale = TilingScale; + this.type = 315944413; + } + } + IFC2X32.IfcFillAreaStyleTiles = IfcFillAreaStyleTiles; + class IfcFluidFlowProperties extends IfcPropertySetDefinition { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, PropertySource, FlowConditionTimeSeries, VelocityTimeSeries, FlowrateTimeSeries, Fluid, PressureTimeSeries, UserDefinedPropertySource, TemperatureSingleValue, WetBulbTemperatureSingleValue, WetBulbTemperatureTimeSeries, TemperatureTimeSeries, FlowrateSingleValue, FlowConditionSingleValue, VelocitySingleValue, PressureSingleValue) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.PropertySource = PropertySource; + this.FlowConditionTimeSeries = FlowConditionTimeSeries; + this.VelocityTimeSeries = VelocityTimeSeries; + this.FlowrateTimeSeries = FlowrateTimeSeries; + this.Fluid = Fluid; + this.PressureTimeSeries = PressureTimeSeries; + this.UserDefinedPropertySource = UserDefinedPropertySource; + this.TemperatureSingleValue = TemperatureSingleValue; + this.WetBulbTemperatureSingleValue = WetBulbTemperatureSingleValue; + this.WetBulbTemperatureTimeSeries = WetBulbTemperatureTimeSeries; + this.TemperatureTimeSeries = TemperatureTimeSeries; + this.FlowrateSingleValue = FlowrateSingleValue; + this.FlowConditionSingleValue = FlowConditionSingleValue; + this.VelocitySingleValue = VelocitySingleValue; + this.PressureSingleValue = PressureSingleValue; + this.type = 3455213021; + } + } + IFC2X32.IfcFluidFlowProperties = IfcFluidFlowProperties; + class IfcFurnishingElementType extends IfcElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 4238390223; + } + } + IFC2X32.IfcFurnishingElementType = IfcFurnishingElementType; + class IfcFurnitureType extends IfcFurnishingElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, AssemblyPlace) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.AssemblyPlace = AssemblyPlace; + this.type = 1268542332; + } + } + IFC2X32.IfcFurnitureType = IfcFurnitureType; + class IfcGeometricCurveSet extends IfcGeometricSet { + constructor(expressID, Elements) { + super(expressID, Elements); + this.Elements = Elements; + this.type = 987898635; + } + } + IFC2X32.IfcGeometricCurveSet = IfcGeometricCurveSet; + class IfcIShapeProfileDef extends IfcParameterizedProfileDef { + constructor(expressID, ProfileType, ProfileName, Position, OverallWidth, OverallDepth, WebThickness, FlangeThickness, FilletRadius) { + super(expressID, ProfileType, ProfileName, Position); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.OverallWidth = OverallWidth; + this.OverallDepth = OverallDepth; + this.WebThickness = WebThickness; + this.FlangeThickness = FlangeThickness; + this.FilletRadius = FilletRadius; + this.type = 1484403080; + } + } + IFC2X32.IfcIShapeProfileDef = IfcIShapeProfileDef; + class IfcLShapeProfileDef extends IfcParameterizedProfileDef { + constructor(expressID, ProfileType, ProfileName, Position, Depth, Width, Thickness, FilletRadius, EdgeRadius, LegSlope, CentreOfGravityInX, CentreOfGravityInY) { + super(expressID, ProfileType, ProfileName, Position); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.Depth = Depth; + this.Width = Width; + this.Thickness = Thickness; + this.FilletRadius = FilletRadius; + this.EdgeRadius = EdgeRadius; + this.LegSlope = LegSlope; + this.CentreOfGravityInX = CentreOfGravityInX; + this.CentreOfGravityInY = CentreOfGravityInY; + this.type = 572779678; + } + } + IFC2X32.IfcLShapeProfileDef = IfcLShapeProfileDef; + class IfcLine extends IfcCurve { + constructor(expressID, Pnt, Dir) { + super(expressID); + this.Pnt = Pnt; + this.Dir = Dir; + this.type = 1281925730; + } + } + IFC2X32.IfcLine = IfcLine; + class IfcManifoldSolidBrep extends IfcSolidModel { + constructor(expressID, Outer) { + super(expressID); + this.Outer = Outer; + this.type = 1425443689; + } + } + IFC2X32.IfcManifoldSolidBrep = IfcManifoldSolidBrep; + class IfcObject extends IfcObjectDefinition { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.type = 3888040117; + } + } + IFC2X32.IfcObject = IfcObject; + class IfcOffsetCurve2D extends IfcCurve { + constructor(expressID, BasisCurve, Distance, SelfIntersect) { + super(expressID); + this.BasisCurve = BasisCurve; + this.Distance = Distance; + this.SelfIntersect = SelfIntersect; + this.type = 3388369263; + } + } + IFC2X32.IfcOffsetCurve2D = IfcOffsetCurve2D; + class IfcOffsetCurve3D extends IfcCurve { + constructor(expressID, BasisCurve, Distance, SelfIntersect, RefDirection) { + super(expressID); + this.BasisCurve = BasisCurve; + this.Distance = Distance; + this.SelfIntersect = SelfIntersect; + this.RefDirection = RefDirection; + this.type = 3505215534; + } + } + IFC2X32.IfcOffsetCurve3D = IfcOffsetCurve3D; + class IfcPermeableCoveringProperties extends IfcPropertySetDefinition { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, OperationType, PanelPosition, FrameDepth, FrameThickness, ShapeAspectStyle) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.OperationType = OperationType; + this.PanelPosition = PanelPosition; + this.FrameDepth = FrameDepth; + this.FrameThickness = FrameThickness; + this.ShapeAspectStyle = ShapeAspectStyle; + this.type = 3566463478; + } + } + IFC2X32.IfcPermeableCoveringProperties = IfcPermeableCoveringProperties; + class IfcPlanarBox extends IfcPlanarExtent { + constructor(expressID, SizeInX, SizeInY, Placement) { + super(expressID, SizeInX, SizeInY); + this.SizeInX = SizeInX; + this.SizeInY = SizeInY; + this.Placement = Placement; + this.type = 603570806; + } + } + IFC2X32.IfcPlanarBox = IfcPlanarBox; + class IfcPlane extends IfcElementarySurface { + constructor(expressID, Position) { + super(expressID, Position); + this.Position = Position; + this.type = 220341763; + } + } + IFC2X32.IfcPlane = IfcPlane; + class IfcProcess extends IfcObject { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.type = 2945172077; + } + } + IFC2X32.IfcProcess = IfcProcess; + class IfcProduct extends IfcObject { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.type = 4208778838; + } + } + IFC2X32.IfcProduct = IfcProduct; + class IfcProject extends IfcObject { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.LongName = LongName; + this.Phase = Phase; + this.RepresentationContexts = RepresentationContexts; + this.UnitsInContext = UnitsInContext; + this.type = 103090709; + } + } + IFC2X32.IfcProject = IfcProject; + class IfcProjectionCurve extends IfcAnnotationCurveOccurrence { + constructor(expressID, Item, Styles, Name) { + super(expressID, Item, Styles, Name); + this.Item = Item; + this.Styles = Styles; + this.Name = Name; + this.type = 4194566429; + } + } + IFC2X32.IfcProjectionCurve = IfcProjectionCurve; + class IfcPropertySet extends IfcPropertySetDefinition { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, HasProperties) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.HasProperties = HasProperties; + this.type = 1451395588; + } + } + IFC2X32.IfcPropertySet = IfcPropertySet; + class IfcProxy extends IfcProduct { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, ProxyType, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.ProxyType = ProxyType; + this.Tag = Tag; + this.type = 3219374653; + } + } + IFC2X32.IfcProxy = IfcProxy; + class IfcRectangleHollowProfileDef extends IfcRectangleProfileDef { + constructor(expressID, ProfileType, ProfileName, Position, XDim, YDim, WallThickness, InnerFilletRadius, OuterFilletRadius) { + super(expressID, ProfileType, ProfileName, Position, XDim, YDim); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.XDim = XDim; + this.YDim = YDim; + this.WallThickness = WallThickness; + this.InnerFilletRadius = InnerFilletRadius; + this.OuterFilletRadius = OuterFilletRadius; + this.type = 2770003689; + } + } + IFC2X32.IfcRectangleHollowProfileDef = IfcRectangleHollowProfileDef; + class IfcRectangularPyramid extends IfcCsgPrimitive3D { + constructor(expressID, Position, XLength, YLength, Height) { + super(expressID, Position); + this.Position = Position; + this.XLength = XLength; + this.YLength = YLength; + this.Height = Height; + this.type = 2798486643; + } + } + IFC2X32.IfcRectangularPyramid = IfcRectangularPyramid; + class IfcRectangularTrimmedSurface extends IfcBoundedSurface { + constructor(expressID, BasisSurface, U1, V1, U2, V2, Usense, Vsense) { + super(expressID); + this.BasisSurface = BasisSurface; + this.U1 = U1; + this.V1 = V1; + this.U2 = U2; + this.V2 = V2; + this.Usense = Usense; + this.Vsense = Vsense; + this.type = 3454111270; + } + } + IFC2X32.IfcRectangularTrimmedSurface = IfcRectangularTrimmedSurface; + class IfcRelAssigns extends IfcRelationship { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatedObjectsType = RelatedObjectsType; + this.type = 3939117080; + } + } + IFC2X32.IfcRelAssigns = IfcRelAssigns; + class IfcRelAssignsToActor extends IfcRelAssigns { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingActor, ActingRole) { + super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatedObjectsType = RelatedObjectsType; + this.RelatingActor = RelatingActor; + this.ActingRole = ActingRole; + this.type = 1683148259; + } + } + IFC2X32.IfcRelAssignsToActor = IfcRelAssignsToActor; + class IfcRelAssignsToControl extends IfcRelAssigns { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl) { + super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatedObjectsType = RelatedObjectsType; + this.RelatingControl = RelatingControl; + this.type = 2495723537; + } + } + IFC2X32.IfcRelAssignsToControl = IfcRelAssignsToControl; + class IfcRelAssignsToGroup extends IfcRelAssigns { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingGroup) { + super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatedObjectsType = RelatedObjectsType; + this.RelatingGroup = RelatingGroup; + this.type = 1307041759; + } + } + IFC2X32.IfcRelAssignsToGroup = IfcRelAssignsToGroup; + class IfcRelAssignsToProcess extends IfcRelAssigns { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingProcess, QuantityInProcess) { + super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatedObjectsType = RelatedObjectsType; + this.RelatingProcess = RelatingProcess; + this.QuantityInProcess = QuantityInProcess; + this.type = 4278684876; + } + } + IFC2X32.IfcRelAssignsToProcess = IfcRelAssignsToProcess; + class IfcRelAssignsToProduct extends IfcRelAssigns { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingProduct) { + super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatedObjectsType = RelatedObjectsType; + this.RelatingProduct = RelatingProduct; + this.type = 2857406711; + } + } + IFC2X32.IfcRelAssignsToProduct = IfcRelAssignsToProduct; + class IfcRelAssignsToProjectOrder extends IfcRelAssignsToControl { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl) { + super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatedObjectsType = RelatedObjectsType; + this.RelatingControl = RelatingControl; + this.type = 3372526763; + } + } + IFC2X32.IfcRelAssignsToProjectOrder = IfcRelAssignsToProjectOrder; + class IfcRelAssignsToResource extends IfcRelAssigns { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingResource) { + super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatedObjectsType = RelatedObjectsType; + this.RelatingResource = RelatingResource; + this.type = 205026976; + } + } + IFC2X32.IfcRelAssignsToResource = IfcRelAssignsToResource; + class IfcRelAssociates extends IfcRelationship { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.type = 1865459582; + } + } + IFC2X32.IfcRelAssociates = IfcRelAssociates; + class IfcRelAssociatesAppliedValue extends IfcRelAssociates { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingAppliedValue) { + super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatingAppliedValue = RelatingAppliedValue; + this.type = 1327628568; + } + } + IFC2X32.IfcRelAssociatesAppliedValue = IfcRelAssociatesAppliedValue; + class IfcRelAssociatesApproval extends IfcRelAssociates { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingApproval) { + super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatingApproval = RelatingApproval; + this.type = 4095574036; + } + } + IFC2X32.IfcRelAssociatesApproval = IfcRelAssociatesApproval; + class IfcRelAssociatesClassification extends IfcRelAssociates { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingClassification) { + super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatingClassification = RelatingClassification; + this.type = 919958153; + } + } + IFC2X32.IfcRelAssociatesClassification = IfcRelAssociatesClassification; + class IfcRelAssociatesConstraint extends IfcRelAssociates { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, Intent, RelatingConstraint) { + super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.Intent = Intent; + this.RelatingConstraint = RelatingConstraint; + this.type = 2728634034; + } + } + IFC2X32.IfcRelAssociatesConstraint = IfcRelAssociatesConstraint; + class IfcRelAssociatesDocument extends IfcRelAssociates { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingDocument) { + super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatingDocument = RelatingDocument; + this.type = 982818633; + } + } + IFC2X32.IfcRelAssociatesDocument = IfcRelAssociatesDocument; + class IfcRelAssociatesLibrary extends IfcRelAssociates { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingLibrary) { + super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatingLibrary = RelatingLibrary; + this.type = 3840914261; + } + } + IFC2X32.IfcRelAssociatesLibrary = IfcRelAssociatesLibrary; + class IfcRelAssociatesMaterial extends IfcRelAssociates { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingMaterial) { + super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatingMaterial = RelatingMaterial; + this.type = 2655215786; + } + } + IFC2X32.IfcRelAssociatesMaterial = IfcRelAssociatesMaterial; + class IfcRelAssociatesProfileProperties extends IfcRelAssociates { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingProfileProperties, ProfileSectionLocation, ProfileOrientation) { + super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatingProfileProperties = RelatingProfileProperties; + this.ProfileSectionLocation = ProfileSectionLocation; + this.ProfileOrientation = ProfileOrientation; + this.type = 2851387026; + } + } + IFC2X32.IfcRelAssociatesProfileProperties = IfcRelAssociatesProfileProperties; + class IfcRelConnects extends IfcRelationship { + constructor(expressID, GlobalId, OwnerHistory, Name, Description) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.type = 826625072; + } + } + IFC2X32.IfcRelConnects = IfcRelConnects; + class IfcRelConnectsElements extends IfcRelConnects { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ConnectionGeometry = ConnectionGeometry; + this.RelatingElement = RelatingElement; + this.RelatedElement = RelatedElement; + this.type = 1204542856; + } + } + IFC2X32.IfcRelConnectsElements = IfcRelConnectsElements; + class IfcRelConnectsPathElements extends IfcRelConnectsElements { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement, RelatingPriorities, RelatedPriorities, RelatedConnectionType, RelatingConnectionType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ConnectionGeometry = ConnectionGeometry; + this.RelatingElement = RelatingElement; + this.RelatedElement = RelatedElement; + this.RelatingPriorities = RelatingPriorities; + this.RelatedPriorities = RelatedPriorities; + this.RelatedConnectionType = RelatedConnectionType; + this.RelatingConnectionType = RelatingConnectionType; + this.type = 3945020480; + } + } + IFC2X32.IfcRelConnectsPathElements = IfcRelConnectsPathElements; + class IfcRelConnectsPortToElement extends IfcRelConnects { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingPort, RelatedElement) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingPort = RelatingPort; + this.RelatedElement = RelatedElement; + this.type = 4201705270; + } + } + IFC2X32.IfcRelConnectsPortToElement = IfcRelConnectsPortToElement; + class IfcRelConnectsPorts extends IfcRelConnects { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingPort, RelatedPort, RealizingElement) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingPort = RelatingPort; + this.RelatedPort = RelatedPort; + this.RealizingElement = RealizingElement; + this.type = 3190031847; + } + } + IFC2X32.IfcRelConnectsPorts = IfcRelConnectsPorts; + class IfcRelConnectsStructuralActivity extends IfcRelConnects { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedStructuralActivity) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingElement = RelatingElement; + this.RelatedStructuralActivity = RelatedStructuralActivity; + this.type = 2127690289; + } + } + IFC2X32.IfcRelConnectsStructuralActivity = IfcRelConnectsStructuralActivity; + class IfcRelConnectsStructuralElement extends IfcRelConnects { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedStructuralMember) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingElement = RelatingElement; + this.RelatedStructuralMember = RelatedStructuralMember; + this.type = 3912681535; + } + } + IFC2X32.IfcRelConnectsStructuralElement = IfcRelConnectsStructuralElement; + class IfcRelConnectsStructuralMember extends IfcRelConnects { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingStructuralMember = RelatingStructuralMember; + this.RelatedStructuralConnection = RelatedStructuralConnection; + this.AppliedCondition = AppliedCondition; + this.AdditionalConditions = AdditionalConditions; + this.SupportedLength = SupportedLength; + this.ConditionCoordinateSystem = ConditionCoordinateSystem; + this.type = 1638771189; + } + } + IFC2X32.IfcRelConnectsStructuralMember = IfcRelConnectsStructuralMember; + class IfcRelConnectsWithEccentricity extends IfcRelConnectsStructuralMember { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem, ConnectionConstraint) { + super(expressID, GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingStructuralMember = RelatingStructuralMember; + this.RelatedStructuralConnection = RelatedStructuralConnection; + this.AppliedCondition = AppliedCondition; + this.AdditionalConditions = AdditionalConditions; + this.SupportedLength = SupportedLength; + this.ConditionCoordinateSystem = ConditionCoordinateSystem; + this.ConnectionConstraint = ConnectionConstraint; + this.type = 504942748; + } + } + IFC2X32.IfcRelConnectsWithEccentricity = IfcRelConnectsWithEccentricity; + class IfcRelConnectsWithRealizingElements extends IfcRelConnectsElements { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement, RealizingElements, ConnectionType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ConnectionGeometry = ConnectionGeometry; + this.RelatingElement = RelatingElement; + this.RelatedElement = RelatedElement; + this.RealizingElements = RealizingElements; + this.ConnectionType = ConnectionType; + this.type = 3678494232; + } + } + IFC2X32.IfcRelConnectsWithRealizingElements = IfcRelConnectsWithRealizingElements; + class IfcRelContainedInSpatialStructure extends IfcRelConnects { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedElements, RelatingStructure) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedElements = RelatedElements; + this.RelatingStructure = RelatingStructure; + this.type = 3242617779; + } + } + IFC2X32.IfcRelContainedInSpatialStructure = IfcRelContainedInSpatialStructure; + class IfcRelCoversBldgElements extends IfcRelConnects { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingBuildingElement, RelatedCoverings) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingBuildingElement = RelatingBuildingElement; + this.RelatedCoverings = RelatedCoverings; + this.type = 886880790; + } + } + IFC2X32.IfcRelCoversBldgElements = IfcRelCoversBldgElements; + class IfcRelCoversSpaces extends IfcRelConnects { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedSpace, RelatedCoverings) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedSpace = RelatedSpace; + this.RelatedCoverings = RelatedCoverings; + this.type = 2802773753; + } + } + IFC2X32.IfcRelCoversSpaces = IfcRelCoversSpaces; + class IfcRelDecomposes extends IfcRelationship { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingObject = RelatingObject; + this.RelatedObjects = RelatedObjects; + this.type = 2551354335; + } + } + IFC2X32.IfcRelDecomposes = IfcRelDecomposes; + class IfcRelDefines extends IfcRelationship { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.type = 693640335; + } + } + IFC2X32.IfcRelDefines = IfcRelDefines; + class IfcRelDefinesByProperties extends IfcRelDefines { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingPropertyDefinition) { + super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatingPropertyDefinition = RelatingPropertyDefinition; + this.type = 4186316022; + } + } + IFC2X32.IfcRelDefinesByProperties = IfcRelDefinesByProperties; + class IfcRelDefinesByType extends IfcRelDefines { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatingType = RelatingType; + this.type = 781010003; + } + } + IFC2X32.IfcRelDefinesByType = IfcRelDefinesByType; + class IfcRelFillsElement extends IfcRelConnects { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingOpeningElement, RelatedBuildingElement) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingOpeningElement = RelatingOpeningElement; + this.RelatedBuildingElement = RelatedBuildingElement; + this.type = 3940055652; + } + } + IFC2X32.IfcRelFillsElement = IfcRelFillsElement; + class IfcRelFlowControlElements extends IfcRelConnects { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedControlElements, RelatingFlowElement) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedControlElements = RelatedControlElements; + this.RelatingFlowElement = RelatingFlowElement; + this.type = 279856033; + } + } + IFC2X32.IfcRelFlowControlElements = IfcRelFlowControlElements; + class IfcRelInteractionRequirements extends IfcRelConnects { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, DailyInteraction, ImportanceRating, LocationOfInteraction, RelatedSpaceProgram, RelatingSpaceProgram) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.DailyInteraction = DailyInteraction; + this.ImportanceRating = ImportanceRating; + this.LocationOfInteraction = LocationOfInteraction; + this.RelatedSpaceProgram = RelatedSpaceProgram; + this.RelatingSpaceProgram = RelatingSpaceProgram; + this.type = 4189434867; + } + } + IFC2X32.IfcRelInteractionRequirements = IfcRelInteractionRequirements; + class IfcRelNests extends IfcRelDecomposes { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects) { + super(expressID, GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingObject = RelatingObject; + this.RelatedObjects = RelatedObjects; + this.type = 3268803585; + } + } + IFC2X32.IfcRelNests = IfcRelNests; + class IfcRelOccupiesSpaces extends IfcRelAssignsToActor { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingActor, ActingRole) { + super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingActor, ActingRole); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatedObjectsType = RelatedObjectsType; + this.RelatingActor = RelatingActor; + this.ActingRole = ActingRole; + this.type = 2051452291; + } + } + IFC2X32.IfcRelOccupiesSpaces = IfcRelOccupiesSpaces; + class IfcRelOverridesProperties extends IfcRelDefinesByProperties { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingPropertyDefinition, OverridingProperties) { + super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingPropertyDefinition); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatingPropertyDefinition = RelatingPropertyDefinition; + this.OverridingProperties = OverridingProperties; + this.type = 202636808; + } + } + IFC2X32.IfcRelOverridesProperties = IfcRelOverridesProperties; + class IfcRelProjectsElement extends IfcRelConnects { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedFeatureElement) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingElement = RelatingElement; + this.RelatedFeatureElement = RelatedFeatureElement; + this.type = 750771296; + } + } + IFC2X32.IfcRelProjectsElement = IfcRelProjectsElement; + class IfcRelReferencedInSpatialStructure extends IfcRelConnects { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedElements, RelatingStructure) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedElements = RelatedElements; + this.RelatingStructure = RelatingStructure; + this.type = 1245217292; + } + } + IFC2X32.IfcRelReferencedInSpatialStructure = IfcRelReferencedInSpatialStructure; + class IfcRelSchedulesCostItems extends IfcRelAssignsToControl { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl) { + super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatedObjectsType = RelatedObjectsType; + this.RelatingControl = RelatingControl; + this.type = 1058617721; + } + } + IFC2X32.IfcRelSchedulesCostItems = IfcRelSchedulesCostItems; + class IfcRelSequence extends IfcRelConnects { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingProcess, RelatedProcess, TimeLag, SequenceType) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingProcess = RelatingProcess; + this.RelatedProcess = RelatedProcess; + this.TimeLag = TimeLag; + this.SequenceType = SequenceType; + this.type = 4122056220; + } + } + IFC2X32.IfcRelSequence = IfcRelSequence; + class IfcRelServicesBuildings extends IfcRelConnects { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSystem, RelatedBuildings) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingSystem = RelatingSystem; + this.RelatedBuildings = RelatedBuildings; + this.type = 366585022; + } + } + IFC2X32.IfcRelServicesBuildings = IfcRelServicesBuildings; + class IfcRelSpaceBoundary extends IfcRelConnects { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingSpace = RelatingSpace; + this.RelatedBuildingElement = RelatedBuildingElement; + this.ConnectionGeometry = ConnectionGeometry; + this.PhysicalOrVirtualBoundary = PhysicalOrVirtualBoundary; + this.InternalOrExternalBoundary = InternalOrExternalBoundary; + this.type = 3451746338; + } + } + IFC2X32.IfcRelSpaceBoundary = IfcRelSpaceBoundary; + class IfcRelVoidsElement extends IfcRelConnects { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingBuildingElement, RelatedOpeningElement) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingBuildingElement = RelatingBuildingElement; + this.RelatedOpeningElement = RelatedOpeningElement; + this.type = 1401173127; + } + } + IFC2X32.IfcRelVoidsElement = IfcRelVoidsElement; + class IfcResource extends IfcObject { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.type = 2914609552; + } + } + IFC2X32.IfcResource = IfcResource; + class IfcRevolvedAreaSolid extends IfcSweptAreaSolid { + constructor(expressID, SweptArea, Position, Axis, Angle) { + super(expressID, SweptArea, Position); + this.SweptArea = SweptArea; + this.Position = Position; + this.Axis = Axis; + this.Angle = Angle; + this.type = 1856042241; + } + } + IFC2X32.IfcRevolvedAreaSolid = IfcRevolvedAreaSolid; + class IfcRightCircularCone extends IfcCsgPrimitive3D { + constructor(expressID, Position, Height, BottomRadius) { + super(expressID, Position); + this.Position = Position; + this.Height = Height; + this.BottomRadius = BottomRadius; + this.type = 4158566097; + } + } + IFC2X32.IfcRightCircularCone = IfcRightCircularCone; + class IfcRightCircularCylinder extends IfcCsgPrimitive3D { + constructor(expressID, Position, Height, Radius) { + super(expressID, Position); + this.Position = Position; + this.Height = Height; + this.Radius = Radius; + this.type = 3626867408; + } + } + IFC2X32.IfcRightCircularCylinder = IfcRightCircularCylinder; + class IfcSpatialStructureElement extends IfcProduct { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.LongName = LongName; + this.CompositionType = CompositionType; + this.type = 2706606064; + } + } + IFC2X32.IfcSpatialStructureElement = IfcSpatialStructureElement; + class IfcSpatialStructureElementType extends IfcElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 3893378262; + } + } + IFC2X32.IfcSpatialStructureElementType = IfcSpatialStructureElementType; + class IfcSphere extends IfcCsgPrimitive3D { + constructor(expressID, Position, Radius) { + super(expressID, Position); + this.Position = Position; + this.Radius = Radius; + this.type = 451544542; + } + } + IFC2X32.IfcSphere = IfcSphere; + class IfcStructuralActivity extends IfcProduct { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedLoad = AppliedLoad; + this.GlobalOrLocal = GlobalOrLocal; + this.type = 3544373492; + } + } + IFC2X32.IfcStructuralActivity = IfcStructuralActivity; + class IfcStructuralItem extends IfcProduct { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.type = 3136571912; + } + } + IFC2X32.IfcStructuralItem = IfcStructuralItem; + class IfcStructuralMember extends IfcStructuralItem { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.type = 530289379; + } + } + IFC2X32.IfcStructuralMember = IfcStructuralMember; + class IfcStructuralReaction extends IfcStructuralActivity { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedLoad = AppliedLoad; + this.GlobalOrLocal = GlobalOrLocal; + this.type = 3689010777; + } + } + IFC2X32.IfcStructuralReaction = IfcStructuralReaction; + class IfcStructuralSurfaceMember extends IfcStructuralMember { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.PredefinedType = PredefinedType; + this.Thickness = Thickness; + this.type = 3979015343; + } + } + IFC2X32.IfcStructuralSurfaceMember = IfcStructuralSurfaceMember; + class IfcStructuralSurfaceMemberVarying extends IfcStructuralSurfaceMember { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness, SubsequentThickness, VaryingThicknessLocation) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.PredefinedType = PredefinedType; + this.Thickness = Thickness; + this.SubsequentThickness = SubsequentThickness; + this.VaryingThicknessLocation = VaryingThicknessLocation; + this.type = 2218152070; + } + } + IFC2X32.IfcStructuralSurfaceMemberVarying = IfcStructuralSurfaceMemberVarying; + class IfcStructuredDimensionCallout extends IfcDraughtingCallout { + constructor(expressID, Contents) { + super(expressID, Contents); + this.Contents = Contents; + this.type = 4070609034; + } + } + IFC2X32.IfcStructuredDimensionCallout = IfcStructuredDimensionCallout; + class IfcSurfaceCurveSweptAreaSolid extends IfcSweptAreaSolid { + constructor(expressID, SweptArea, Position, Directrix, StartParam, EndParam, ReferenceSurface) { + super(expressID, SweptArea, Position); + this.SweptArea = SweptArea; + this.Position = Position; + this.Directrix = Directrix; + this.StartParam = StartParam; + this.EndParam = EndParam; + this.ReferenceSurface = ReferenceSurface; + this.type = 2028607225; + } + } + IFC2X32.IfcSurfaceCurveSweptAreaSolid = IfcSurfaceCurveSweptAreaSolid; + class IfcSurfaceOfLinearExtrusion extends IfcSweptSurface { + constructor(expressID, SweptCurve, Position, ExtrudedDirection, Depth) { + super(expressID, SweptCurve, Position); + this.SweptCurve = SweptCurve; + this.Position = Position; + this.ExtrudedDirection = ExtrudedDirection; + this.Depth = Depth; + this.type = 2809605785; + } + } + IFC2X32.IfcSurfaceOfLinearExtrusion = IfcSurfaceOfLinearExtrusion; + class IfcSurfaceOfRevolution extends IfcSweptSurface { + constructor(expressID, SweptCurve, Position, AxisPosition) { + super(expressID, SweptCurve, Position); + this.SweptCurve = SweptCurve; + this.Position = Position; + this.AxisPosition = AxisPosition; + this.type = 4124788165; + } + } + IFC2X32.IfcSurfaceOfRevolution = IfcSurfaceOfRevolution; + class IfcSystemFurnitureElementType extends IfcFurnishingElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 1580310250; + } + } + IFC2X32.IfcSystemFurnitureElementType = IfcSystemFurnitureElementType; + class IfcTask extends IfcProcess { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TaskId, Status, WorkMethod, IsMilestone, Priority) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.TaskId = TaskId; + this.Status = Status; + this.WorkMethod = WorkMethod; + this.IsMilestone = IsMilestone; + this.Priority = Priority; + this.type = 3473067441; + } + } + IFC2X32.IfcTask = IfcTask; + class IfcTransportElementType extends IfcElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2097647324; + } + } + IFC2X32.IfcTransportElementType = IfcTransportElementType; + class IfcActor extends IfcObject { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.TheActor = TheActor; + this.type = 2296667514; + } + } + IFC2X32.IfcActor = IfcActor; + class IfcAnnotation extends IfcProduct { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.type = 1674181508; + } + } + IFC2X32.IfcAnnotation = IfcAnnotation; + class IfcAsymmetricIShapeProfileDef extends IfcIShapeProfileDef { + constructor(expressID, ProfileType, ProfileName, Position, OverallWidth, OverallDepth, WebThickness, FlangeThickness, FilletRadius, TopFlangeWidth, TopFlangeThickness, TopFlangeFilletRadius, CentreOfGravityInY) { + super(expressID, ProfileType, ProfileName, Position, OverallWidth, OverallDepth, WebThickness, FlangeThickness, FilletRadius); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.OverallWidth = OverallWidth; + this.OverallDepth = OverallDepth; + this.WebThickness = WebThickness; + this.FlangeThickness = FlangeThickness; + this.FilletRadius = FilletRadius; + this.TopFlangeWidth = TopFlangeWidth; + this.TopFlangeThickness = TopFlangeThickness; + this.TopFlangeFilletRadius = TopFlangeFilletRadius; + this.CentreOfGravityInY = CentreOfGravityInY; + this.type = 3207858831; + } + } + IFC2X32.IfcAsymmetricIShapeProfileDef = IfcAsymmetricIShapeProfileDef; + class IfcBlock extends IfcCsgPrimitive3D { + constructor(expressID, Position, XLength, YLength, ZLength) { + super(expressID, Position); + this.Position = Position; + this.XLength = XLength; + this.YLength = YLength; + this.ZLength = ZLength; + this.type = 1334484129; + } + } + IFC2X32.IfcBlock = IfcBlock; + class IfcBooleanClippingResult extends IfcBooleanResult { + constructor(expressID, Operator, FirstOperand, SecondOperand) { + super(expressID, Operator, FirstOperand, SecondOperand); + this.Operator = Operator; + this.FirstOperand = FirstOperand; + this.SecondOperand = SecondOperand; + this.type = 3649129432; + } + } + IFC2X32.IfcBooleanClippingResult = IfcBooleanClippingResult; + class IfcBoundedCurve extends IfcCurve { + constructor(expressID) { + super(expressID); + this.type = 1260505505; + } + } + IFC2X32.IfcBoundedCurve = IfcBoundedCurve; + class IfcBuilding extends IfcSpatialStructureElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, ElevationOfRefHeight, ElevationOfTerrain, BuildingAddress) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.LongName = LongName; + this.CompositionType = CompositionType; + this.ElevationOfRefHeight = ElevationOfRefHeight; + this.ElevationOfTerrain = ElevationOfTerrain; + this.BuildingAddress = BuildingAddress; + this.type = 4031249490; + } + } + IFC2X32.IfcBuilding = IfcBuilding; + class IfcBuildingElementType extends IfcElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 1950629157; + } + } + IFC2X32.IfcBuildingElementType = IfcBuildingElementType; + class IfcBuildingStorey extends IfcSpatialStructureElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, Elevation) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.LongName = LongName; + this.CompositionType = CompositionType; + this.Elevation = Elevation; + this.type = 3124254112; + } + } + IFC2X32.IfcBuildingStorey = IfcBuildingStorey; + class IfcCircleHollowProfileDef extends IfcCircleProfileDef { + constructor(expressID, ProfileType, ProfileName, Position, Radius, WallThickness) { + super(expressID, ProfileType, ProfileName, Position, Radius); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.Radius = Radius; + this.WallThickness = WallThickness; + this.type = 2937912522; + } + } + IFC2X32.IfcCircleHollowProfileDef = IfcCircleHollowProfileDef; + class IfcColumnType extends IfcBuildingElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 300633059; + } + } + IFC2X32.IfcColumnType = IfcColumnType; + class IfcCompositeCurve extends IfcBoundedCurve { + constructor(expressID, Segments, SelfIntersect) { + super(expressID); + this.Segments = Segments; + this.SelfIntersect = SelfIntersect; + this.type = 3732776249; + } + } + IFC2X32.IfcCompositeCurve = IfcCompositeCurve; + class IfcConic extends IfcCurve { + constructor(expressID, Position) { + super(expressID); + this.Position = Position; + this.type = 2510884976; + } + } + IFC2X32.IfcConic = IfcConic; + class IfcConstructionResource extends IfcResource { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ResourceIdentifier = ResourceIdentifier; + this.ResourceGroup = ResourceGroup; + this.ResourceConsumption = ResourceConsumption; + this.BaseQuantity = BaseQuantity; + this.type = 2559216714; + } + } + IFC2X32.IfcConstructionResource = IfcConstructionResource; + class IfcControl extends IfcObject { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.type = 3293443760; + } + } + IFC2X32.IfcControl = IfcControl; + class IfcCostItem extends IfcControl { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.type = 3895139033; + } + } + IFC2X32.IfcCostItem = IfcCostItem; + class IfcCostSchedule extends IfcControl { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, SubmittedBy, PreparedBy, SubmittedOn, Status, TargetUsers, UpdateDate, ID, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.SubmittedBy = SubmittedBy; + this.PreparedBy = PreparedBy; + this.SubmittedOn = SubmittedOn; + this.Status = Status; + this.TargetUsers = TargetUsers; + this.UpdateDate = UpdateDate; + this.ID = ID; + this.PredefinedType = PredefinedType; + this.type = 1419761937; + } + } + IFC2X32.IfcCostSchedule = IfcCostSchedule; + class IfcCoveringType extends IfcBuildingElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1916426348; + } + } + IFC2X32.IfcCoveringType = IfcCoveringType; + class IfcCrewResource extends IfcConstructionResource { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ResourceIdentifier = ResourceIdentifier; + this.ResourceGroup = ResourceGroup; + this.ResourceConsumption = ResourceConsumption; + this.BaseQuantity = BaseQuantity; + this.type = 3295246426; + } + } + IFC2X32.IfcCrewResource = IfcCrewResource; + class IfcCurtainWallType extends IfcBuildingElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1457835157; + } + } + IFC2X32.IfcCurtainWallType = IfcCurtainWallType; + class IfcDimensionCurveDirectedCallout extends IfcDraughtingCallout { + constructor(expressID, Contents) { + super(expressID, Contents); + this.Contents = Contents; + this.type = 681481545; + } + } + IFC2X32.IfcDimensionCurveDirectedCallout = IfcDimensionCurveDirectedCallout; + class IfcDistributionElementType extends IfcElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 3256556792; + } + } + IFC2X32.IfcDistributionElementType = IfcDistributionElementType; + class IfcDistributionFlowElementType extends IfcDistributionElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 3849074793; + } + } + IFC2X32.IfcDistributionFlowElementType = IfcDistributionFlowElementType; + class IfcElectricalBaseProperties extends IfcEnergyProperties { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, EnergySequence, UserDefinedEnergySequence, ElectricCurrentType, InputVoltage, InputFrequency, FullLoadCurrent, MinimumCircuitCurrent, MaximumPowerInput, RatedPowerInput, InputPhase) { + super(expressID, GlobalId, OwnerHistory, Name, Description, EnergySequence, UserDefinedEnergySequence); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.EnergySequence = EnergySequence; + this.UserDefinedEnergySequence = UserDefinedEnergySequence; + this.ElectricCurrentType = ElectricCurrentType; + this.InputVoltage = InputVoltage; + this.InputFrequency = InputFrequency; + this.FullLoadCurrent = FullLoadCurrent; + this.MinimumCircuitCurrent = MinimumCircuitCurrent; + this.MaximumPowerInput = MaximumPowerInput; + this.RatedPowerInput = RatedPowerInput; + this.InputPhase = InputPhase; + this.type = 360485395; + } + } + IFC2X32.IfcElectricalBaseProperties = IfcElectricalBaseProperties; + class IfcElement extends IfcProduct { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 1758889154; + } + } + IFC2X32.IfcElement = IfcElement; + class IfcElementAssembly extends IfcElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, AssemblyPlace, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.AssemblyPlace = AssemblyPlace; + this.PredefinedType = PredefinedType; + this.type = 4123344466; + } + } + IFC2X32.IfcElementAssembly = IfcElementAssembly; + class IfcElementComponent extends IfcElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 1623761950; + } + } + IFC2X32.IfcElementComponent = IfcElementComponent; + class IfcElementComponentType extends IfcElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 2590856083; + } + } + IFC2X32.IfcElementComponentType = IfcElementComponentType; + class IfcEllipse extends IfcConic { + constructor(expressID, Position, SemiAxis1, SemiAxis2) { + super(expressID, Position); + this.Position = Position; + this.SemiAxis1 = SemiAxis1; + this.SemiAxis2 = SemiAxis2; + this.type = 1704287377; + } + } + IFC2X32.IfcEllipse = IfcEllipse; + class IfcEnergyConversionDeviceType extends IfcDistributionFlowElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 2107101300; + } + } + IFC2X32.IfcEnergyConversionDeviceType = IfcEnergyConversionDeviceType; + class IfcEquipmentElement extends IfcElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 1962604670; + } + } + IFC2X32.IfcEquipmentElement = IfcEquipmentElement; + class IfcEquipmentStandard extends IfcControl { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.type = 3272907226; + } + } + IFC2X32.IfcEquipmentStandard = IfcEquipmentStandard; + class IfcEvaporativeCoolerType extends IfcEnergyConversionDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3174744832; + } + } + IFC2X32.IfcEvaporativeCoolerType = IfcEvaporativeCoolerType; + class IfcEvaporatorType extends IfcEnergyConversionDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3390157468; + } + } + IFC2X32.IfcEvaporatorType = IfcEvaporatorType; + class IfcFacetedBrep extends IfcManifoldSolidBrep { + constructor(expressID, Outer) { + super(expressID, Outer); + this.Outer = Outer; + this.type = 807026263; + } + } + IFC2X32.IfcFacetedBrep = IfcFacetedBrep; + class IfcFacetedBrepWithVoids extends IfcManifoldSolidBrep { + constructor(expressID, Outer, Voids) { + super(expressID, Outer); + this.Outer = Outer; + this.Voids = Voids; + this.type = 3737207727; + } + } + IFC2X32.IfcFacetedBrepWithVoids = IfcFacetedBrepWithVoids; + class IfcFastener extends IfcElementComponent { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 647756555; + } + } + IFC2X32.IfcFastener = IfcFastener; + class IfcFastenerType extends IfcElementComponentType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 2489546625; + } + } + IFC2X32.IfcFastenerType = IfcFastenerType; + class IfcFeatureElement extends IfcElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 2827207264; + } + } + IFC2X32.IfcFeatureElement = IfcFeatureElement; + class IfcFeatureElementAddition extends IfcFeatureElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 2143335405; + } + } + IFC2X32.IfcFeatureElementAddition = IfcFeatureElementAddition; + class IfcFeatureElementSubtraction extends IfcFeatureElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 1287392070; + } + } + IFC2X32.IfcFeatureElementSubtraction = IfcFeatureElementSubtraction; + class IfcFlowControllerType extends IfcDistributionFlowElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 3907093117; + } + } + IFC2X32.IfcFlowControllerType = IfcFlowControllerType; + class IfcFlowFittingType extends IfcDistributionFlowElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 3198132628; + } + } + IFC2X32.IfcFlowFittingType = IfcFlowFittingType; + class IfcFlowMeterType extends IfcFlowControllerType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3815607619; + } + } + IFC2X32.IfcFlowMeterType = IfcFlowMeterType; + class IfcFlowMovingDeviceType extends IfcDistributionFlowElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 1482959167; + } + } + IFC2X32.IfcFlowMovingDeviceType = IfcFlowMovingDeviceType; + class IfcFlowSegmentType extends IfcDistributionFlowElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 1834744321; + } + } + IFC2X32.IfcFlowSegmentType = IfcFlowSegmentType; + class IfcFlowStorageDeviceType extends IfcDistributionFlowElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 1339347760; + } + } + IFC2X32.IfcFlowStorageDeviceType = IfcFlowStorageDeviceType; + class IfcFlowTerminalType extends IfcDistributionFlowElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 2297155007; + } + } + IFC2X32.IfcFlowTerminalType = IfcFlowTerminalType; + class IfcFlowTreatmentDeviceType extends IfcDistributionFlowElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 3009222698; + } + } + IFC2X32.IfcFlowTreatmentDeviceType = IfcFlowTreatmentDeviceType; + class IfcFurnishingElement extends IfcElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 263784265; + } + } + IFC2X32.IfcFurnishingElement = IfcFurnishingElement; + class IfcFurnitureStandard extends IfcControl { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.type = 814719939; + } + } + IFC2X32.IfcFurnitureStandard = IfcFurnitureStandard; + class IfcGasTerminalType extends IfcFlowTerminalType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 200128114; + } + } + IFC2X32.IfcGasTerminalType = IfcGasTerminalType; + class IfcGrid extends IfcProduct { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, UAxes, VAxes, WAxes) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.UAxes = UAxes; + this.VAxes = VAxes; + this.WAxes = WAxes; + this.type = 3009204131; + } + } + IFC2X32.IfcGrid = IfcGrid; + class IfcGroup extends IfcObject { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.type = 2706460486; + } + } + IFC2X32.IfcGroup = IfcGroup; + class IfcHeatExchangerType extends IfcEnergyConversionDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1251058090; + } + } + IFC2X32.IfcHeatExchangerType = IfcHeatExchangerType; + class IfcHumidifierType extends IfcEnergyConversionDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1806887404; + } + } + IFC2X32.IfcHumidifierType = IfcHumidifierType; + class IfcInventory extends IfcGroup { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, InventoryType, Jurisdiction, ResponsiblePersons, LastUpdateDate, CurrentValue, OriginalValue) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.InventoryType = InventoryType; + this.Jurisdiction = Jurisdiction; + this.ResponsiblePersons = ResponsiblePersons; + this.LastUpdateDate = LastUpdateDate; + this.CurrentValue = CurrentValue; + this.OriginalValue = OriginalValue; + this.type = 2391368822; + } + } + IFC2X32.IfcInventory = IfcInventory; + class IfcJunctionBoxType extends IfcFlowFittingType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 4288270099; + } + } + IFC2X32.IfcJunctionBoxType = IfcJunctionBoxType; + class IfcLaborResource extends IfcConstructionResource { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity, SkillSet) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ResourceIdentifier = ResourceIdentifier; + this.ResourceGroup = ResourceGroup; + this.ResourceConsumption = ResourceConsumption; + this.BaseQuantity = BaseQuantity; + this.SkillSet = SkillSet; + this.type = 3827777499; + } + } + IFC2X32.IfcLaborResource = IfcLaborResource; + class IfcLampType extends IfcFlowTerminalType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1051575348; + } + } + IFC2X32.IfcLampType = IfcLampType; + class IfcLightFixtureType extends IfcFlowTerminalType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1161773419; + } + } + IFC2X32.IfcLightFixtureType = IfcLightFixtureType; + class IfcLinearDimension extends IfcDimensionCurveDirectedCallout { + constructor(expressID, Contents) { + super(expressID, Contents); + this.Contents = Contents; + this.type = 2506943328; + } + } + IFC2X32.IfcLinearDimension = IfcLinearDimension; + class IfcMechanicalFastener extends IfcFastener { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, NominalDiameter, NominalLength) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.NominalDiameter = NominalDiameter; + this.NominalLength = NominalLength; + this.type = 377706215; + } + } + IFC2X32.IfcMechanicalFastener = IfcMechanicalFastener; + class IfcMechanicalFastenerType extends IfcFastenerType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 2108223431; + } + } + IFC2X32.IfcMechanicalFastenerType = IfcMechanicalFastenerType; + class IfcMemberType extends IfcBuildingElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3181161470; + } + } + IFC2X32.IfcMemberType = IfcMemberType; + class IfcMotorConnectionType extends IfcEnergyConversionDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 977012517; + } + } + IFC2X32.IfcMotorConnectionType = IfcMotorConnectionType; + class IfcMove extends IfcTask { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TaskId, Status, WorkMethod, IsMilestone, Priority, MoveFrom, MoveTo, PunchList) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TaskId, Status, WorkMethod, IsMilestone, Priority); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.TaskId = TaskId; + this.Status = Status; + this.WorkMethod = WorkMethod; + this.IsMilestone = IsMilestone; + this.Priority = Priority; + this.MoveFrom = MoveFrom; + this.MoveTo = MoveTo; + this.PunchList = PunchList; + this.type = 1916936684; + } + } + IFC2X32.IfcMove = IfcMove; + class IfcOccupant extends IfcActor { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.TheActor = TheActor; + this.PredefinedType = PredefinedType; + this.type = 4143007308; + } + } + IFC2X32.IfcOccupant = IfcOccupant; + class IfcOpeningElement extends IfcFeatureElementSubtraction { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 3588315303; + } + } + IFC2X32.IfcOpeningElement = IfcOpeningElement; + class IfcOrderAction extends IfcTask { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TaskId, Status, WorkMethod, IsMilestone, Priority, ActionID) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TaskId, Status, WorkMethod, IsMilestone, Priority); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.TaskId = TaskId; + this.Status = Status; + this.WorkMethod = WorkMethod; + this.IsMilestone = IsMilestone; + this.Priority = Priority; + this.ActionID = ActionID; + this.type = 3425660407; + } + } + IFC2X32.IfcOrderAction = IfcOrderAction; + class IfcOutletType extends IfcFlowTerminalType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2837617999; + } + } + IFC2X32.IfcOutletType = IfcOutletType; + class IfcPerformanceHistory extends IfcControl { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LifeCyclePhase) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.LifeCyclePhase = LifeCyclePhase; + this.type = 2382730787; + } + } + IFC2X32.IfcPerformanceHistory = IfcPerformanceHistory; + class IfcPermit extends IfcControl { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PermitID) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.PermitID = PermitID; + this.type = 3327091369; + } + } + IFC2X32.IfcPermit = IfcPermit; + class IfcPipeFittingType extends IfcFlowFittingType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 804291784; + } + } + IFC2X32.IfcPipeFittingType = IfcPipeFittingType; + class IfcPipeSegmentType extends IfcFlowSegmentType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 4231323485; + } + } + IFC2X32.IfcPipeSegmentType = IfcPipeSegmentType; + class IfcPlateType extends IfcBuildingElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 4017108033; + } + } + IFC2X32.IfcPlateType = IfcPlateType; + class IfcPolyline extends IfcBoundedCurve { + constructor(expressID, Points) { + super(expressID); + this.Points = Points; + this.type = 3724593414; + } + } + IFC2X32.IfcPolyline = IfcPolyline; + class IfcPort extends IfcProduct { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.type = 3740093272; + } + } + IFC2X32.IfcPort = IfcPort; + class IfcProcedure extends IfcProcess { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ProcedureID, ProcedureType, UserDefinedProcedureType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ProcedureID = ProcedureID; + this.ProcedureType = ProcedureType; + this.UserDefinedProcedureType = UserDefinedProcedureType; + this.type = 2744685151; + } + } + IFC2X32.IfcProcedure = IfcProcedure; + class IfcProjectOrder extends IfcControl { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ID, PredefinedType, Status) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ID = ID; + this.PredefinedType = PredefinedType; + this.Status = Status; + this.type = 2904328755; + } + } + IFC2X32.IfcProjectOrder = IfcProjectOrder; + class IfcProjectOrderRecord extends IfcControl { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Records, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Records = Records; + this.PredefinedType = PredefinedType; + this.type = 3642467123; + } + } + IFC2X32.IfcProjectOrderRecord = IfcProjectOrderRecord; + class IfcProjectionElement extends IfcFeatureElementAddition { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 3651124850; + } + } + IFC2X32.IfcProjectionElement = IfcProjectionElement; + class IfcProtectiveDeviceType extends IfcFlowControllerType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1842657554; + } + } + IFC2X32.IfcProtectiveDeviceType = IfcProtectiveDeviceType; + class IfcPumpType extends IfcFlowMovingDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2250791053; + } + } + IFC2X32.IfcPumpType = IfcPumpType; + class IfcRadiusDimension extends IfcDimensionCurveDirectedCallout { + constructor(expressID, Contents) { + super(expressID, Contents); + this.Contents = Contents; + this.type = 3248260540; + } + } + IFC2X32.IfcRadiusDimension = IfcRadiusDimension; + class IfcRailingType extends IfcBuildingElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2893384427; + } + } + IFC2X32.IfcRailingType = IfcRailingType; + class IfcRampFlightType extends IfcBuildingElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2324767716; + } + } + IFC2X32.IfcRampFlightType = IfcRampFlightType; + class IfcRelAggregates extends IfcRelDecomposes { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects) { + super(expressID, GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingObject = RelatingObject; + this.RelatedObjects = RelatedObjects; + this.type = 160246688; + } + } + IFC2X32.IfcRelAggregates = IfcRelAggregates; + class IfcRelAssignsTasks extends IfcRelAssignsToControl { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl, TimeForTask) { + super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatedObjectsType = RelatedObjectsType; + this.RelatingControl = RelatingControl; + this.TimeForTask = TimeForTask; + this.type = 2863920197; + } + } + IFC2X32.IfcRelAssignsTasks = IfcRelAssignsTasks; + class IfcSanitaryTerminalType extends IfcFlowTerminalType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1768891740; + } + } + IFC2X32.IfcSanitaryTerminalType = IfcSanitaryTerminalType; + class IfcScheduleTimeControl extends IfcControl { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ActualStart, EarlyStart, LateStart, ScheduleStart, ActualFinish, EarlyFinish, LateFinish, ScheduleFinish, ScheduleDuration, ActualDuration, RemainingTime, FreeFloat, TotalFloat, IsCritical, StatusTime, StartFloat, FinishFloat, Completion) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ActualStart = ActualStart; + this.EarlyStart = EarlyStart; + this.LateStart = LateStart; + this.ScheduleStart = ScheduleStart; + this.ActualFinish = ActualFinish; + this.EarlyFinish = EarlyFinish; + this.LateFinish = LateFinish; + this.ScheduleFinish = ScheduleFinish; + this.ScheduleDuration = ScheduleDuration; + this.ActualDuration = ActualDuration; + this.RemainingTime = RemainingTime; + this.FreeFloat = FreeFloat; + this.TotalFloat = TotalFloat; + this.IsCritical = IsCritical; + this.StatusTime = StatusTime; + this.StartFloat = StartFloat; + this.FinishFloat = FinishFloat; + this.Completion = Completion; + this.type = 3517283431; + } + } + IFC2X32.IfcScheduleTimeControl = IfcScheduleTimeControl; + class IfcServiceLife extends IfcControl { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ServiceLifeType, ServiceLifeDuration) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ServiceLifeType = ServiceLifeType; + this.ServiceLifeDuration = ServiceLifeDuration; + this.type = 4105383287; + } + } + IFC2X32.IfcServiceLife = IfcServiceLife; + class IfcSite extends IfcSpatialStructureElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, RefLatitude, RefLongitude, RefElevation, LandTitleNumber, SiteAddress) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.LongName = LongName; + this.CompositionType = CompositionType; + this.RefLatitude = RefLatitude; + this.RefLongitude = RefLongitude; + this.RefElevation = RefElevation; + this.LandTitleNumber = LandTitleNumber; + this.SiteAddress = SiteAddress; + this.type = 4097777520; + } + } + IFC2X32.IfcSite = IfcSite; + class IfcSlabType extends IfcBuildingElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2533589738; + } + } + IFC2X32.IfcSlabType = IfcSlabType; + class IfcSpace extends IfcSpatialStructureElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, InteriorOrExteriorSpace, ElevationWithFlooring) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.LongName = LongName; + this.CompositionType = CompositionType; + this.InteriorOrExteriorSpace = InteriorOrExteriorSpace; + this.ElevationWithFlooring = ElevationWithFlooring; + this.type = 3856911033; + } + } + IFC2X32.IfcSpace = IfcSpace; + class IfcSpaceHeaterType extends IfcEnergyConversionDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1305183839; + } + } + IFC2X32.IfcSpaceHeaterType = IfcSpaceHeaterType; + class IfcSpaceProgram extends IfcControl { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, SpaceProgramIdentifier, MaxRequiredArea, MinRequiredArea, RequestedLocation, StandardRequiredArea) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.SpaceProgramIdentifier = SpaceProgramIdentifier; + this.MaxRequiredArea = MaxRequiredArea; + this.MinRequiredArea = MinRequiredArea; + this.RequestedLocation = RequestedLocation; + this.StandardRequiredArea = StandardRequiredArea; + this.type = 652456506; + } + } + IFC2X32.IfcSpaceProgram = IfcSpaceProgram; + class IfcSpaceType extends IfcSpatialStructureElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3812236995; + } + } + IFC2X32.IfcSpaceType = IfcSpaceType; + class IfcStackTerminalType extends IfcFlowTerminalType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3112655638; + } + } + IFC2X32.IfcStackTerminalType = IfcStackTerminalType; + class IfcStairFlightType extends IfcBuildingElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1039846685; + } + } + IFC2X32.IfcStairFlightType = IfcStairFlightType; + class IfcStructuralAction extends IfcStructuralActivity { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedLoad = AppliedLoad; + this.GlobalOrLocal = GlobalOrLocal; + this.DestabilizingLoad = DestabilizingLoad; + this.CausedBy = CausedBy; + this.type = 682877961; + } + } + IFC2X32.IfcStructuralAction = IfcStructuralAction; + class IfcStructuralConnection extends IfcStructuralItem { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedCondition = AppliedCondition; + this.type = 1179482911; + } + } + IFC2X32.IfcStructuralConnection = IfcStructuralConnection; + class IfcStructuralCurveConnection extends IfcStructuralConnection { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedCondition = AppliedCondition; + this.type = 4243806635; + } + } + IFC2X32.IfcStructuralCurveConnection = IfcStructuralCurveConnection; + class IfcStructuralCurveMember extends IfcStructuralMember { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.PredefinedType = PredefinedType; + this.type = 214636428; + } + } + IFC2X32.IfcStructuralCurveMember = IfcStructuralCurveMember; + class IfcStructuralCurveMemberVarying extends IfcStructuralCurveMember { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.PredefinedType = PredefinedType; + this.type = 2445595289; + } + } + IFC2X32.IfcStructuralCurveMemberVarying = IfcStructuralCurveMemberVarying; + class IfcStructuralLinearAction extends IfcStructuralAction { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy, ProjectedOrTrue) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedLoad = AppliedLoad; + this.GlobalOrLocal = GlobalOrLocal; + this.DestabilizingLoad = DestabilizingLoad; + this.CausedBy = CausedBy; + this.ProjectedOrTrue = ProjectedOrTrue; + this.type = 1807405624; + } + } + IFC2X32.IfcStructuralLinearAction = IfcStructuralLinearAction; + class IfcStructuralLinearActionVarying extends IfcStructuralLinearAction { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy, ProjectedOrTrue, VaryingAppliedLoadLocation, SubsequentAppliedLoads) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy, ProjectedOrTrue); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedLoad = AppliedLoad; + this.GlobalOrLocal = GlobalOrLocal; + this.DestabilizingLoad = DestabilizingLoad; + this.CausedBy = CausedBy; + this.ProjectedOrTrue = ProjectedOrTrue; + this.VaryingAppliedLoadLocation = VaryingAppliedLoadLocation; + this.SubsequentAppliedLoads = SubsequentAppliedLoads; + this.type = 1721250024; + } + } + IFC2X32.IfcStructuralLinearActionVarying = IfcStructuralLinearActionVarying; + class IfcStructuralLoadGroup extends IfcGroup { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, ActionType, ActionSource, Coefficient, Purpose) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.PredefinedType = PredefinedType; + this.ActionType = ActionType; + this.ActionSource = ActionSource; + this.Coefficient = Coefficient; + this.Purpose = Purpose; + this.type = 1252848954; + } + } + IFC2X32.IfcStructuralLoadGroup = IfcStructuralLoadGroup; + class IfcStructuralPlanarAction extends IfcStructuralAction { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy, ProjectedOrTrue) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedLoad = AppliedLoad; + this.GlobalOrLocal = GlobalOrLocal; + this.DestabilizingLoad = DestabilizingLoad; + this.CausedBy = CausedBy; + this.ProjectedOrTrue = ProjectedOrTrue; + this.type = 1621171031; + } + } + IFC2X32.IfcStructuralPlanarAction = IfcStructuralPlanarAction; + class IfcStructuralPlanarActionVarying extends IfcStructuralPlanarAction { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy, ProjectedOrTrue, VaryingAppliedLoadLocation, SubsequentAppliedLoads) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy, ProjectedOrTrue); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedLoad = AppliedLoad; + this.GlobalOrLocal = GlobalOrLocal; + this.DestabilizingLoad = DestabilizingLoad; + this.CausedBy = CausedBy; + this.ProjectedOrTrue = ProjectedOrTrue; + this.VaryingAppliedLoadLocation = VaryingAppliedLoadLocation; + this.SubsequentAppliedLoads = SubsequentAppliedLoads; + this.type = 3987759626; + } + } + IFC2X32.IfcStructuralPlanarActionVarying = IfcStructuralPlanarActionVarying; + class IfcStructuralPointAction extends IfcStructuralAction { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedLoad = AppliedLoad; + this.GlobalOrLocal = GlobalOrLocal; + this.DestabilizingLoad = DestabilizingLoad; + this.CausedBy = CausedBy; + this.type = 2082059205; + } + } + IFC2X32.IfcStructuralPointAction = IfcStructuralPointAction; + class IfcStructuralPointConnection extends IfcStructuralConnection { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedCondition = AppliedCondition; + this.type = 734778138; + } + } + IFC2X32.IfcStructuralPointConnection = IfcStructuralPointConnection; + class IfcStructuralPointReaction extends IfcStructuralReaction { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedLoad = AppliedLoad; + this.GlobalOrLocal = GlobalOrLocal; + this.type = 1235345126; + } + } + IFC2X32.IfcStructuralPointReaction = IfcStructuralPointReaction; + class IfcStructuralResultGroup extends IfcGroup { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TheoryType, ResultForLoadGroup, IsLinear) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.TheoryType = TheoryType; + this.ResultForLoadGroup = ResultForLoadGroup; + this.IsLinear = IsLinear; + this.type = 2986769608; + } + } + IFC2X32.IfcStructuralResultGroup = IfcStructuralResultGroup; + class IfcStructuralSurfaceConnection extends IfcStructuralConnection { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedCondition = AppliedCondition; + this.type = 1975003073; + } + } + IFC2X32.IfcStructuralSurfaceConnection = IfcStructuralSurfaceConnection; + class IfcSubContractResource extends IfcConstructionResource { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity, SubContractor, JobDescription) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ResourceIdentifier = ResourceIdentifier; + this.ResourceGroup = ResourceGroup; + this.ResourceConsumption = ResourceConsumption; + this.BaseQuantity = BaseQuantity; + this.SubContractor = SubContractor; + this.JobDescription = JobDescription; + this.type = 148013059; + } + } + IFC2X32.IfcSubContractResource = IfcSubContractResource; + class IfcSwitchingDeviceType extends IfcFlowControllerType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2315554128; + } + } + IFC2X32.IfcSwitchingDeviceType = IfcSwitchingDeviceType; + class IfcSystem extends IfcGroup { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.type = 2254336722; + } + } + IFC2X32.IfcSystem = IfcSystem; + class IfcTankType extends IfcFlowStorageDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 5716631; + } + } + IFC2X32.IfcTankType = IfcTankType; + class IfcTimeSeriesSchedule extends IfcControl { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ApplicableDates, TimeSeriesScheduleType, TimeSeries) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ApplicableDates = ApplicableDates; + this.TimeSeriesScheduleType = TimeSeriesScheduleType; + this.TimeSeries = TimeSeries; + this.type = 1637806684; + } + } + IFC2X32.IfcTimeSeriesSchedule = IfcTimeSeriesSchedule; + class IfcTransformerType extends IfcEnergyConversionDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1692211062; + } + } + IFC2X32.IfcTransformerType = IfcTransformerType; + class IfcTransportElement extends IfcElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OperationType, CapacityByWeight, CapacityByNumber) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.OperationType = OperationType; + this.CapacityByWeight = CapacityByWeight; + this.CapacityByNumber = CapacityByNumber; + this.type = 1620046519; + } + } + IFC2X32.IfcTransportElement = IfcTransportElement; + class IfcTrimmedCurve extends IfcBoundedCurve { + constructor(expressID, BasisCurve, Trim1, Trim2, SenseAgreement, MasterRepresentation) { + super(expressID); + this.BasisCurve = BasisCurve; + this.Trim1 = Trim1; + this.Trim2 = Trim2; + this.SenseAgreement = SenseAgreement; + this.MasterRepresentation = MasterRepresentation; + this.type = 3593883385; + } + } + IFC2X32.IfcTrimmedCurve = IfcTrimmedCurve; + class IfcTubeBundleType extends IfcEnergyConversionDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1600972822; + } + } + IFC2X32.IfcTubeBundleType = IfcTubeBundleType; + class IfcUnitaryEquipmentType extends IfcEnergyConversionDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1911125066; + } + } + IFC2X32.IfcUnitaryEquipmentType = IfcUnitaryEquipmentType; + class IfcValveType extends IfcFlowControllerType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 728799441; + } + } + IFC2X32.IfcValveType = IfcValveType; + class IfcVirtualElement extends IfcElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 2769231204; + } + } + IFC2X32.IfcVirtualElement = IfcVirtualElement; + class IfcWallType extends IfcBuildingElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1898987631; + } + } + IFC2X32.IfcWallType = IfcWallType; + class IfcWasteTerminalType extends IfcFlowTerminalType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1133259667; + } + } + IFC2X32.IfcWasteTerminalType = IfcWasteTerminalType; + class IfcWorkControl extends IfcControl { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identifier, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, WorkControlType, UserDefinedControlType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identifier = Identifier; + this.CreationDate = CreationDate; + this.Creators = Creators; + this.Purpose = Purpose; + this.Duration = Duration; + this.TotalFloat = TotalFloat; + this.StartTime = StartTime; + this.FinishTime = FinishTime; + this.WorkControlType = WorkControlType; + this.UserDefinedControlType = UserDefinedControlType; + this.type = 1028945134; + } + } + IFC2X32.IfcWorkControl = IfcWorkControl; + class IfcWorkPlan extends IfcWorkControl { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identifier, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, WorkControlType, UserDefinedControlType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identifier, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, WorkControlType, UserDefinedControlType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identifier = Identifier; + this.CreationDate = CreationDate; + this.Creators = Creators; + this.Purpose = Purpose; + this.Duration = Duration; + this.TotalFloat = TotalFloat; + this.StartTime = StartTime; + this.FinishTime = FinishTime; + this.WorkControlType = WorkControlType; + this.UserDefinedControlType = UserDefinedControlType; + this.type = 4218914973; + } + } + IFC2X32.IfcWorkPlan = IfcWorkPlan; + class IfcWorkSchedule extends IfcWorkControl { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identifier, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, WorkControlType, UserDefinedControlType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identifier, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, WorkControlType, UserDefinedControlType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identifier = Identifier; + this.CreationDate = CreationDate; + this.Creators = Creators; + this.Purpose = Purpose; + this.Duration = Duration; + this.TotalFloat = TotalFloat; + this.StartTime = StartTime; + this.FinishTime = FinishTime; + this.WorkControlType = WorkControlType; + this.UserDefinedControlType = UserDefinedControlType; + this.type = 3342526732; + } + } + IFC2X32.IfcWorkSchedule = IfcWorkSchedule; + class IfcZone extends IfcGroup { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.type = 1033361043; + } + } + IFC2X32.IfcZone = IfcZone; + class Ifc2DCompositeCurve extends IfcCompositeCurve { + constructor(expressID, Segments, SelfIntersect) { + super(expressID, Segments, SelfIntersect); + this.Segments = Segments; + this.SelfIntersect = SelfIntersect; + this.type = 1213861670; + } + } + IFC2X32.Ifc2DCompositeCurve = Ifc2DCompositeCurve; + class IfcActionRequest extends IfcControl { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, RequestID) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.RequestID = RequestID; + this.type = 3821786052; + } + } + IFC2X32.IfcActionRequest = IfcActionRequest; + class IfcAirTerminalBoxType extends IfcFlowControllerType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1411407467; + } + } + IFC2X32.IfcAirTerminalBoxType = IfcAirTerminalBoxType; + class IfcAirTerminalType extends IfcFlowTerminalType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3352864051; + } + } + IFC2X32.IfcAirTerminalType = IfcAirTerminalType; + class IfcAirToAirHeatRecoveryType extends IfcEnergyConversionDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1871374353; + } + } + IFC2X32.IfcAirToAirHeatRecoveryType = IfcAirToAirHeatRecoveryType; + class IfcAngularDimension extends IfcDimensionCurveDirectedCallout { + constructor(expressID, Contents) { + super(expressID, Contents); + this.Contents = Contents; + this.type = 2470393545; + } + } + IFC2X32.IfcAngularDimension = IfcAngularDimension; + class IfcAsset extends IfcGroup { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, AssetID, OriginalValue, CurrentValue, TotalReplacementCost, Owner, User, ResponsiblePerson, IncorporationDate, DepreciatedValue) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.AssetID = AssetID; + this.OriginalValue = OriginalValue; + this.CurrentValue = CurrentValue; + this.TotalReplacementCost = TotalReplacementCost; + this.Owner = Owner; + this.User = User; + this.ResponsiblePerson = ResponsiblePerson; + this.IncorporationDate = IncorporationDate; + this.DepreciatedValue = DepreciatedValue; + this.type = 3460190687; + } + } + IFC2X32.IfcAsset = IfcAsset; + class IfcBSplineCurve extends IfcBoundedCurve { + constructor(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect) { + super(expressID); + this.Degree = Degree; + this.ControlPointsList = ControlPointsList; + this.CurveForm = CurveForm; + this.ClosedCurve = ClosedCurve; + this.SelfIntersect = SelfIntersect; + this.type = 1967976161; + } + } + IFC2X32.IfcBSplineCurve = IfcBSplineCurve; + class IfcBeamType extends IfcBuildingElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 819618141; + } + } + IFC2X32.IfcBeamType = IfcBeamType; + class IfcBezierCurve extends IfcBSplineCurve { + constructor(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect) { + super(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect); + this.Degree = Degree; + this.ControlPointsList = ControlPointsList; + this.CurveForm = CurveForm; + this.ClosedCurve = ClosedCurve; + this.SelfIntersect = SelfIntersect; + this.type = 1916977116; + } + } + IFC2X32.IfcBezierCurve = IfcBezierCurve; + class IfcBoilerType extends IfcEnergyConversionDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 231477066; + } + } + IFC2X32.IfcBoilerType = IfcBoilerType; + class IfcBuildingElement extends IfcElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 3299480353; + } + } + IFC2X32.IfcBuildingElement = IfcBuildingElement; + class IfcBuildingElementComponent extends IfcBuildingElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 52481810; + } + } + IFC2X32.IfcBuildingElementComponent = IfcBuildingElementComponent; + class IfcBuildingElementPart extends IfcBuildingElementComponent { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 2979338954; + } + } + IFC2X32.IfcBuildingElementPart = IfcBuildingElementPart; + class IfcBuildingElementProxy extends IfcBuildingElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, CompositionType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.CompositionType = CompositionType; + this.type = 1095909175; + } + } + IFC2X32.IfcBuildingElementProxy = IfcBuildingElementProxy; + class IfcBuildingElementProxyType extends IfcBuildingElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1909888760; + } + } + IFC2X32.IfcBuildingElementProxyType = IfcBuildingElementProxyType; + class IfcCableCarrierFittingType extends IfcFlowFittingType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 395041908; + } + } + IFC2X32.IfcCableCarrierFittingType = IfcCableCarrierFittingType; + class IfcCableCarrierSegmentType extends IfcFlowSegmentType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3293546465; + } + } + IFC2X32.IfcCableCarrierSegmentType = IfcCableCarrierSegmentType; + class IfcCableSegmentType extends IfcFlowSegmentType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1285652485; + } + } + IFC2X32.IfcCableSegmentType = IfcCableSegmentType; + class IfcChillerType extends IfcEnergyConversionDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2951183804; + } + } + IFC2X32.IfcChillerType = IfcChillerType; + class IfcCircle extends IfcConic { + constructor(expressID, Position, Radius) { + super(expressID, Position); + this.Position = Position; + this.Radius = Radius; + this.type = 2611217952; + } + } + IFC2X32.IfcCircle = IfcCircle; + class IfcCoilType extends IfcEnergyConversionDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2301859152; + } + } + IFC2X32.IfcCoilType = IfcCoilType; + class IfcColumn extends IfcBuildingElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 843113511; + } + } + IFC2X32.IfcColumn = IfcColumn; + class IfcCompressorType extends IfcFlowMovingDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3850581409; + } + } + IFC2X32.IfcCompressorType = IfcCompressorType; + class IfcCondenserType extends IfcEnergyConversionDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2816379211; + } + } + IFC2X32.IfcCondenserType = IfcCondenserType; + class IfcCondition extends IfcGroup { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.type = 2188551683; + } + } + IFC2X32.IfcCondition = IfcCondition; + class IfcConditionCriterion extends IfcControl { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Criterion, CriterionDateTime) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Criterion = Criterion; + this.CriterionDateTime = CriterionDateTime; + this.type = 1163958913; + } + } + IFC2X32.IfcConditionCriterion = IfcConditionCriterion; + class IfcConstructionEquipmentResource extends IfcConstructionResource { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ResourceIdentifier = ResourceIdentifier; + this.ResourceGroup = ResourceGroup; + this.ResourceConsumption = ResourceConsumption; + this.BaseQuantity = BaseQuantity; + this.type = 3898045240; + } + } + IFC2X32.IfcConstructionEquipmentResource = IfcConstructionEquipmentResource; + class IfcConstructionMaterialResource extends IfcConstructionResource { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity, Suppliers, UsageRatio) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ResourceIdentifier = ResourceIdentifier; + this.ResourceGroup = ResourceGroup; + this.ResourceConsumption = ResourceConsumption; + this.BaseQuantity = BaseQuantity; + this.Suppliers = Suppliers; + this.UsageRatio = UsageRatio; + this.type = 1060000209; + } + } + IFC2X32.IfcConstructionMaterialResource = IfcConstructionMaterialResource; + class IfcConstructionProductResource extends IfcConstructionResource { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ResourceIdentifier = ResourceIdentifier; + this.ResourceGroup = ResourceGroup; + this.ResourceConsumption = ResourceConsumption; + this.BaseQuantity = BaseQuantity; + this.type = 488727124; + } + } + IFC2X32.IfcConstructionProductResource = IfcConstructionProductResource; + class IfcCooledBeamType extends IfcEnergyConversionDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 335055490; + } + } + IFC2X32.IfcCooledBeamType = IfcCooledBeamType; + class IfcCoolingTowerType extends IfcEnergyConversionDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2954562838; + } + } + IFC2X32.IfcCoolingTowerType = IfcCoolingTowerType; + class IfcCovering extends IfcBuildingElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1973544240; + } + } + IFC2X32.IfcCovering = IfcCovering; + class IfcCurtainWall extends IfcBuildingElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 3495092785; + } + } + IFC2X32.IfcCurtainWall = IfcCurtainWall; + class IfcDamperType extends IfcFlowControllerType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3961806047; + } + } + IFC2X32.IfcDamperType = IfcDamperType; + class IfcDiameterDimension extends IfcDimensionCurveDirectedCallout { + constructor(expressID, Contents) { + super(expressID, Contents); + this.Contents = Contents; + this.type = 4147604152; + } + } + IFC2X32.IfcDiameterDimension = IfcDiameterDimension; + class IfcDiscreteAccessory extends IfcElementComponent { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 1335981549; + } + } + IFC2X32.IfcDiscreteAccessory = IfcDiscreteAccessory; + class IfcDiscreteAccessoryType extends IfcElementComponentType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 2635815018; + } + } + IFC2X32.IfcDiscreteAccessoryType = IfcDiscreteAccessoryType; + class IfcDistributionChamberElementType extends IfcDistributionFlowElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1599208980; + } + } + IFC2X32.IfcDistributionChamberElementType = IfcDistributionChamberElementType; + class IfcDistributionControlElementType extends IfcDistributionElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 2063403501; + } + } + IFC2X32.IfcDistributionControlElementType = IfcDistributionControlElementType; + class IfcDistributionElement extends IfcElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 1945004755; + } + } + IFC2X32.IfcDistributionElement = IfcDistributionElement; + class IfcDistributionFlowElement extends IfcDistributionElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 3040386961; + } + } + IFC2X32.IfcDistributionFlowElement = IfcDistributionFlowElement; + class IfcDistributionPort extends IfcPort { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, FlowDirection) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.FlowDirection = FlowDirection; + this.type = 3041715199; + } + } + IFC2X32.IfcDistributionPort = IfcDistributionPort; + class IfcDoor extends IfcBuildingElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.OverallHeight = OverallHeight; + this.OverallWidth = OverallWidth; + this.type = 395920057; + } + } + IFC2X32.IfcDoor = IfcDoor; + class IfcDuctFittingType extends IfcFlowFittingType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 869906466; + } + } + IFC2X32.IfcDuctFittingType = IfcDuctFittingType; + class IfcDuctSegmentType extends IfcFlowSegmentType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3760055223; + } + } + IFC2X32.IfcDuctSegmentType = IfcDuctSegmentType; + class IfcDuctSilencerType extends IfcFlowTreatmentDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2030761528; + } + } + IFC2X32.IfcDuctSilencerType = IfcDuctSilencerType; + class IfcEdgeFeature extends IfcFeatureElementSubtraction { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, FeatureLength) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.FeatureLength = FeatureLength; + this.type = 855621170; + } + } + IFC2X32.IfcEdgeFeature = IfcEdgeFeature; + class IfcElectricApplianceType extends IfcFlowTerminalType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 663422040; + } + } + IFC2X32.IfcElectricApplianceType = IfcElectricApplianceType; + class IfcElectricFlowStorageDeviceType extends IfcFlowStorageDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3277789161; + } + } + IFC2X32.IfcElectricFlowStorageDeviceType = IfcElectricFlowStorageDeviceType; + class IfcElectricGeneratorType extends IfcEnergyConversionDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1534661035; + } + } + IFC2X32.IfcElectricGeneratorType = IfcElectricGeneratorType; + class IfcElectricHeaterType extends IfcFlowTerminalType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1365060375; + } + } + IFC2X32.IfcElectricHeaterType = IfcElectricHeaterType; + class IfcElectricMotorType extends IfcEnergyConversionDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1217240411; + } + } + IFC2X32.IfcElectricMotorType = IfcElectricMotorType; + class IfcElectricTimeControlType extends IfcFlowControllerType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 712377611; + } + } + IFC2X32.IfcElectricTimeControlType = IfcElectricTimeControlType; + class IfcElectricalCircuit extends IfcSystem { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.type = 1634875225; + } + } + IFC2X32.IfcElectricalCircuit = IfcElectricalCircuit; + class IfcElectricalElement extends IfcElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 857184966; + } + } + IFC2X32.IfcElectricalElement = IfcElectricalElement; + class IfcEnergyConversionDevice extends IfcDistributionFlowElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 1658829314; + } + } + IFC2X32.IfcEnergyConversionDevice = IfcEnergyConversionDevice; + class IfcFanType extends IfcFlowMovingDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 346874300; + } + } + IFC2X32.IfcFanType = IfcFanType; + class IfcFilterType extends IfcFlowTreatmentDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1810631287; + } + } + IFC2X32.IfcFilterType = IfcFilterType; + class IfcFireSuppressionTerminalType extends IfcFlowTerminalType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 4222183408; + } + } + IFC2X32.IfcFireSuppressionTerminalType = IfcFireSuppressionTerminalType; + class IfcFlowController extends IfcDistributionFlowElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 2058353004; + } + } + IFC2X32.IfcFlowController = IfcFlowController; + class IfcFlowFitting extends IfcDistributionFlowElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 4278956645; + } + } + IFC2X32.IfcFlowFitting = IfcFlowFitting; + class IfcFlowInstrumentType extends IfcDistributionControlElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 4037862832; + } + } + IFC2X32.IfcFlowInstrumentType = IfcFlowInstrumentType; + class IfcFlowMovingDevice extends IfcDistributionFlowElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 3132237377; + } + } + IFC2X32.IfcFlowMovingDevice = IfcFlowMovingDevice; + class IfcFlowSegment extends IfcDistributionFlowElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 987401354; + } + } + IFC2X32.IfcFlowSegment = IfcFlowSegment; + class IfcFlowStorageDevice extends IfcDistributionFlowElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 707683696; + } + } + IFC2X32.IfcFlowStorageDevice = IfcFlowStorageDevice; + class IfcFlowTerminal extends IfcDistributionFlowElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 2223149337; + } + } + IFC2X32.IfcFlowTerminal = IfcFlowTerminal; + class IfcFlowTreatmentDevice extends IfcDistributionFlowElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 3508470533; + } + } + IFC2X32.IfcFlowTreatmentDevice = IfcFlowTreatmentDevice; + class IfcFooting extends IfcBuildingElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 900683007; + } + } + IFC2X32.IfcFooting = IfcFooting; + class IfcMember extends IfcBuildingElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 1073191201; + } + } + IFC2X32.IfcMember = IfcMember; + class IfcPile extends IfcBuildingElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType, ConstructionType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.ConstructionType = ConstructionType; + this.type = 1687234759; + } + } + IFC2X32.IfcPile = IfcPile; + class IfcPlate extends IfcBuildingElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 3171933400; + } + } + IFC2X32.IfcPlate = IfcPlate; + class IfcRailing extends IfcBuildingElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 2262370178; + } + } + IFC2X32.IfcRailing = IfcRailing; + class IfcRamp extends IfcBuildingElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, ShapeType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.ShapeType = ShapeType; + this.type = 3024970846; + } + } + IFC2X32.IfcRamp = IfcRamp; + class IfcRampFlight extends IfcBuildingElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 3283111854; + } + } + IFC2X32.IfcRampFlight = IfcRampFlight; + class IfcRationalBezierCurve extends IfcBezierCurve { + constructor(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect, WeightsData) { + super(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect); + this.Degree = Degree; + this.ControlPointsList = ControlPointsList; + this.CurveForm = CurveForm; + this.ClosedCurve = ClosedCurve; + this.SelfIntersect = SelfIntersect; + this.WeightsData = WeightsData; + this.type = 3055160366; + } + } + IFC2X32.IfcRationalBezierCurve = IfcRationalBezierCurve; + class IfcReinforcingElement extends IfcBuildingElementComponent { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.SteelGrade = SteelGrade; + this.type = 3027567501; + } + } + IFC2X32.IfcReinforcingElement = IfcReinforcingElement; + class IfcReinforcingMesh extends IfcReinforcingElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, MeshLength, MeshWidth, LongitudinalBarNominalDiameter, TransverseBarNominalDiameter, LongitudinalBarCrossSectionArea, TransverseBarCrossSectionArea, LongitudinalBarSpacing, TransverseBarSpacing) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.SteelGrade = SteelGrade; + this.MeshLength = MeshLength; + this.MeshWidth = MeshWidth; + this.LongitudinalBarNominalDiameter = LongitudinalBarNominalDiameter; + this.TransverseBarNominalDiameter = TransverseBarNominalDiameter; + this.LongitudinalBarCrossSectionArea = LongitudinalBarCrossSectionArea; + this.TransverseBarCrossSectionArea = TransverseBarCrossSectionArea; + this.LongitudinalBarSpacing = LongitudinalBarSpacing; + this.TransverseBarSpacing = TransverseBarSpacing; + this.type = 2320036040; + } + } + IFC2X32.IfcReinforcingMesh = IfcReinforcingMesh; + class IfcRoof extends IfcBuildingElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, ShapeType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.ShapeType = ShapeType; + this.type = 2016517767; + } + } + IFC2X32.IfcRoof = IfcRoof; + class IfcRoundedEdgeFeature extends IfcEdgeFeature { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, FeatureLength, Radius) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, FeatureLength); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.FeatureLength = FeatureLength; + this.Radius = Radius; + this.type = 1376911519; + } + } + IFC2X32.IfcRoundedEdgeFeature = IfcRoundedEdgeFeature; + class IfcSensorType extends IfcDistributionControlElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1783015770; + } + } + IFC2X32.IfcSensorType = IfcSensorType; + class IfcSlab extends IfcBuildingElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1529196076; + } + } + IFC2X32.IfcSlab = IfcSlab; + class IfcStair extends IfcBuildingElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, ShapeType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.ShapeType = ShapeType; + this.type = 331165859; + } + } + IFC2X32.IfcStair = IfcStair; + class IfcStairFlight extends IfcBuildingElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, NumberOfRiser, NumberOfTreads, RiserHeight, TreadLength) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.NumberOfRiser = NumberOfRiser; + this.NumberOfTreads = NumberOfTreads; + this.RiserHeight = RiserHeight; + this.TreadLength = TreadLength; + this.type = 4252922144; + } + } + IFC2X32.IfcStairFlight = IfcStairFlight; + class IfcStructuralAnalysisModel extends IfcSystem { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, OrientationOf2DPlane, LoadedBy, HasResults) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.PredefinedType = PredefinedType; + this.OrientationOf2DPlane = OrientationOf2DPlane; + this.LoadedBy = LoadedBy; + this.HasResults = HasResults; + this.type = 2515109513; + } + } + IFC2X32.IfcStructuralAnalysisModel = IfcStructuralAnalysisModel; + class IfcTendon extends IfcReinforcingElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, PredefinedType, NominalDiameter, CrossSectionArea, TensionForce, PreStress, FrictionCoefficient, AnchorageSlip, MinCurvatureRadius) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.SteelGrade = SteelGrade; + this.PredefinedType = PredefinedType; + this.NominalDiameter = NominalDiameter; + this.CrossSectionArea = CrossSectionArea; + this.TensionForce = TensionForce; + this.PreStress = PreStress; + this.FrictionCoefficient = FrictionCoefficient; + this.AnchorageSlip = AnchorageSlip; + this.MinCurvatureRadius = MinCurvatureRadius; + this.type = 3824725483; + } + } + IFC2X32.IfcTendon = IfcTendon; + class IfcTendonAnchor extends IfcReinforcingElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.SteelGrade = SteelGrade; + this.type = 2347447852; + } + } + IFC2X32.IfcTendonAnchor = IfcTendonAnchor; + class IfcVibrationIsolatorType extends IfcDiscreteAccessoryType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3313531582; + } + } + IFC2X32.IfcVibrationIsolatorType = IfcVibrationIsolatorType; + class IfcWall extends IfcBuildingElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 2391406946; + } + } + IFC2X32.IfcWall = IfcWall; + class IfcWallStandardCase extends IfcWall { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 3512223829; + } + } + IFC2X32.IfcWallStandardCase = IfcWallStandardCase; + class IfcWindow extends IfcBuildingElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.OverallHeight = OverallHeight; + this.OverallWidth = OverallWidth; + this.type = 3304561284; + } + } + IFC2X32.IfcWindow = IfcWindow; + class IfcActuatorType extends IfcDistributionControlElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2874132201; + } + } + IFC2X32.IfcActuatorType = IfcActuatorType; + class IfcAlarmType extends IfcDistributionControlElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3001207471; + } + } + IFC2X32.IfcAlarmType = IfcAlarmType; + class IfcBeam extends IfcBuildingElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 753842376; + } + } + IFC2X32.IfcBeam = IfcBeam; + class IfcChamferEdgeFeature extends IfcEdgeFeature { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, FeatureLength, Width, Height) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, FeatureLength); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.FeatureLength = FeatureLength; + this.Width = Width; + this.Height = Height; + this.type = 2454782716; + } + } + IFC2X32.IfcChamferEdgeFeature = IfcChamferEdgeFeature; + class IfcControllerType extends IfcDistributionControlElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 578613899; + } + } + IFC2X32.IfcControllerType = IfcControllerType; + class IfcDistributionChamberElement extends IfcDistributionFlowElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 1052013943; + } + } + IFC2X32.IfcDistributionChamberElement = IfcDistributionChamberElement; + class IfcDistributionControlElement extends IfcDistributionElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, ControlElementId) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.ControlElementId = ControlElementId; + this.type = 1062813311; + } + } + IFC2X32.IfcDistributionControlElement = IfcDistributionControlElement; + class IfcElectricDistributionPoint extends IfcFlowController { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, DistributionPointFunction, UserDefinedFunction) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.DistributionPointFunction = DistributionPointFunction; + this.UserDefinedFunction = UserDefinedFunction; + this.type = 3700593921; + } + } + IFC2X32.IfcElectricDistributionPoint = IfcElectricDistributionPoint; + class IfcReinforcingBar extends IfcReinforcingElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, NominalDiameter, CrossSectionArea, BarLength, BarRole, BarSurface) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.SteelGrade = SteelGrade; + this.NominalDiameter = NominalDiameter; + this.CrossSectionArea = CrossSectionArea; + this.BarLength = BarLength; + this.BarRole = BarRole; + this.BarSurface = BarSurface; + this.type = 979691226; + } + } + IFC2X32.IfcReinforcingBar = IfcReinforcingBar; +})(IFC2X3 || (IFC2X3 = {})); +var IFC4; +(function(IFC42) { + class IfcAbsorbedDoseMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcAbsorbedDoseMeasure = IfcAbsorbedDoseMeasure; + class IfcAccelerationMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcAccelerationMeasure = IfcAccelerationMeasure; + class IfcAmountOfSubstanceMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcAmountOfSubstanceMeasure = IfcAmountOfSubstanceMeasure; + class IfcAngularVelocityMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcAngularVelocityMeasure = IfcAngularVelocityMeasure; + class IfcArcIndex { + constructor(value) { + this.value = value; + } + } + IFC42.IfcArcIndex = IfcArcIndex; + class IfcAreaDensityMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcAreaDensityMeasure = IfcAreaDensityMeasure; + class IfcAreaMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcAreaMeasure = IfcAreaMeasure; + class IfcBinary { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcBinary = IfcBinary; + class IfcBoolean { + constructor(v) { + this.type = 3; + this.value = v == "true" ? true : false; + } + } + IFC42.IfcBoolean = IfcBoolean; + class IfcBoxAlignment { + constructor(value) { + this.value = value; + this.type = 1; + } + } + IFC42.IfcBoxAlignment = IfcBoxAlignment; + class IfcCardinalPointReference { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcCardinalPointReference = IfcCardinalPointReference; + class IfcComplexNumber { + constructor(value) { + this.value = value; + } + } + IFC42.IfcComplexNumber = IfcComplexNumber; + class IfcCompoundPlaneAngleMeasure { + constructor(value) { + this.value = value; + } + } + IFC42.IfcCompoundPlaneAngleMeasure = IfcCompoundPlaneAngleMeasure; + class IfcContextDependentMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcContextDependentMeasure = IfcContextDependentMeasure; + class IfcCountMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcCountMeasure = IfcCountMeasure; + class IfcCurvatureMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcCurvatureMeasure = IfcCurvatureMeasure; + class IfcDate { + constructor(value) { + this.value = value; + this.type = 1; + } + } + IFC42.IfcDate = IfcDate; + class IfcDateTime { + constructor(value) { + this.value = value; + this.type = 1; + } + } + IFC42.IfcDateTime = IfcDateTime; + class IfcDayInMonthNumber { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcDayInMonthNumber = IfcDayInMonthNumber; + class IfcDayInWeekNumber { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcDayInWeekNumber = IfcDayInWeekNumber; + class IfcDescriptiveMeasure { + constructor(value) { + this.value = value; + this.type = 1; + } + } + IFC42.IfcDescriptiveMeasure = IfcDescriptiveMeasure; + class IfcDimensionCount { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcDimensionCount = IfcDimensionCount; + class IfcDoseEquivalentMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcDoseEquivalentMeasure = IfcDoseEquivalentMeasure; + class IfcDuration { + constructor(value) { + this.value = value; + this.type = 1; + } + } + IFC42.IfcDuration = IfcDuration; + class IfcDynamicViscosityMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcDynamicViscosityMeasure = IfcDynamicViscosityMeasure; + class IfcElectricCapacitanceMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcElectricCapacitanceMeasure = IfcElectricCapacitanceMeasure; + class IfcElectricChargeMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcElectricChargeMeasure = IfcElectricChargeMeasure; + class IfcElectricConductanceMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcElectricConductanceMeasure = IfcElectricConductanceMeasure; + class IfcElectricCurrentMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcElectricCurrentMeasure = IfcElectricCurrentMeasure; + class IfcElectricResistanceMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcElectricResistanceMeasure = IfcElectricResistanceMeasure; + class IfcElectricVoltageMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcElectricVoltageMeasure = IfcElectricVoltageMeasure; + class IfcEnergyMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcEnergyMeasure = IfcEnergyMeasure; + class IfcFontStyle { + constructor(value) { + this.value = value; + this.type = 1; + } + } + IFC42.IfcFontStyle = IfcFontStyle; + class IfcFontVariant { + constructor(value) { + this.value = value; + this.type = 1; + } + } + IFC42.IfcFontVariant = IfcFontVariant; + class IfcFontWeight { + constructor(value) { + this.value = value; + this.type = 1; + } + } + IFC42.IfcFontWeight = IfcFontWeight; + class IfcForceMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcForceMeasure = IfcForceMeasure; + class IfcFrequencyMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcFrequencyMeasure = IfcFrequencyMeasure; + class IfcGloballyUniqueId { + constructor(value) { + this.value = value; + this.type = 1; + } + } + IFC42.IfcGloballyUniqueId = IfcGloballyUniqueId; + class IfcHeatFluxDensityMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcHeatFluxDensityMeasure = IfcHeatFluxDensityMeasure; + class IfcHeatingValueMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcHeatingValueMeasure = IfcHeatingValueMeasure; + class IfcIdentifier { + constructor(value) { + this.value = value; + this.type = 1; + } + } + IFC42.IfcIdentifier = IfcIdentifier; + class IfcIlluminanceMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcIlluminanceMeasure = IfcIlluminanceMeasure; + class IfcInductanceMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcInductanceMeasure = IfcInductanceMeasure; + class IfcInteger { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcInteger = IfcInteger; + class IfcIntegerCountRateMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcIntegerCountRateMeasure = IfcIntegerCountRateMeasure; + class IfcIonConcentrationMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcIonConcentrationMeasure = IfcIonConcentrationMeasure; + class IfcIsothermalMoistureCapacityMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcIsothermalMoistureCapacityMeasure = IfcIsothermalMoistureCapacityMeasure; + class IfcKinematicViscosityMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcKinematicViscosityMeasure = IfcKinematicViscosityMeasure; + class IfcLabel { + constructor(value) { + this.value = value; + this.type = 1; + } + } + IFC42.IfcLabel = IfcLabel; + class IfcLanguageId { + constructor(value) { + this.value = value; + this.type = 1; + } + } + IFC42.IfcLanguageId = IfcLanguageId; + class IfcLengthMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcLengthMeasure = IfcLengthMeasure; + class IfcLineIndex { + constructor(value) { + this.value = value; + } + } + IFC42.IfcLineIndex = IfcLineIndex; + class IfcLinearForceMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcLinearForceMeasure = IfcLinearForceMeasure; + class IfcLinearMomentMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcLinearMomentMeasure = IfcLinearMomentMeasure; + class IfcLinearStiffnessMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcLinearStiffnessMeasure = IfcLinearStiffnessMeasure; + class IfcLinearVelocityMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcLinearVelocityMeasure = IfcLinearVelocityMeasure; + class IfcLogical { + constructor(v) { + this.type = 3; + this.value = v == "true" ? true : false; + } + } + IFC42.IfcLogical = IfcLogical; + class IfcLuminousFluxMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcLuminousFluxMeasure = IfcLuminousFluxMeasure; + class IfcLuminousIntensityDistributionMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcLuminousIntensityDistributionMeasure = IfcLuminousIntensityDistributionMeasure; + class IfcLuminousIntensityMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcLuminousIntensityMeasure = IfcLuminousIntensityMeasure; + class IfcMagneticFluxDensityMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcMagneticFluxDensityMeasure = IfcMagneticFluxDensityMeasure; + class IfcMagneticFluxMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcMagneticFluxMeasure = IfcMagneticFluxMeasure; + class IfcMassDensityMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcMassDensityMeasure = IfcMassDensityMeasure; + class IfcMassFlowRateMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcMassFlowRateMeasure = IfcMassFlowRateMeasure; + class IfcMassMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcMassMeasure = IfcMassMeasure; + class IfcMassPerLengthMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcMassPerLengthMeasure = IfcMassPerLengthMeasure; + class IfcModulusOfElasticityMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcModulusOfElasticityMeasure = IfcModulusOfElasticityMeasure; + class IfcModulusOfLinearSubgradeReactionMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcModulusOfLinearSubgradeReactionMeasure = IfcModulusOfLinearSubgradeReactionMeasure; + class IfcModulusOfRotationalSubgradeReactionMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcModulusOfRotationalSubgradeReactionMeasure = IfcModulusOfRotationalSubgradeReactionMeasure; + class IfcModulusOfSubgradeReactionMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcModulusOfSubgradeReactionMeasure = IfcModulusOfSubgradeReactionMeasure; + class IfcMoistureDiffusivityMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcMoistureDiffusivityMeasure = IfcMoistureDiffusivityMeasure; + class IfcMolecularWeightMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcMolecularWeightMeasure = IfcMolecularWeightMeasure; + class IfcMomentOfInertiaMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcMomentOfInertiaMeasure = IfcMomentOfInertiaMeasure; + class IfcMonetaryMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcMonetaryMeasure = IfcMonetaryMeasure; + class IfcMonthInYearNumber { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcMonthInYearNumber = IfcMonthInYearNumber; + class IfcNonNegativeLengthMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcNonNegativeLengthMeasure = IfcNonNegativeLengthMeasure; + class IfcNormalisedRatioMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcNormalisedRatioMeasure = IfcNormalisedRatioMeasure; + class IfcNumericMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcNumericMeasure = IfcNumericMeasure; + class IfcPHMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcPHMeasure = IfcPHMeasure; + class IfcParameterValue { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcParameterValue = IfcParameterValue; + class IfcPlanarForceMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcPlanarForceMeasure = IfcPlanarForceMeasure; + class IfcPlaneAngleMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcPlaneAngleMeasure = IfcPlaneAngleMeasure; + class IfcPositiveInteger { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcPositiveInteger = IfcPositiveInteger; + class IfcPositiveLengthMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcPositiveLengthMeasure = IfcPositiveLengthMeasure; + class IfcPositivePlaneAngleMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcPositivePlaneAngleMeasure = IfcPositivePlaneAngleMeasure; + class IfcPositiveRatioMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcPositiveRatioMeasure = IfcPositiveRatioMeasure; + class IfcPowerMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcPowerMeasure = IfcPowerMeasure; + class IfcPresentableText { + constructor(value) { + this.value = value; + this.type = 1; + } + } + IFC42.IfcPresentableText = IfcPresentableText; + class IfcPressureMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcPressureMeasure = IfcPressureMeasure; + class IfcPropertySetDefinitionSet { + constructor(value) { + this.value = value; + } + } + IFC42.IfcPropertySetDefinitionSet = IfcPropertySetDefinitionSet; + class IfcRadioActivityMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcRadioActivityMeasure = IfcRadioActivityMeasure; + class IfcRatioMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcRatioMeasure = IfcRatioMeasure; + class IfcReal { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcReal = IfcReal; + class IfcRotationalFrequencyMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcRotationalFrequencyMeasure = IfcRotationalFrequencyMeasure; + class IfcRotationalMassMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcRotationalMassMeasure = IfcRotationalMassMeasure; + class IfcRotationalStiffnessMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcRotationalStiffnessMeasure = IfcRotationalStiffnessMeasure; + class IfcSectionModulusMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcSectionModulusMeasure = IfcSectionModulusMeasure; + class IfcSectionalAreaIntegralMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcSectionalAreaIntegralMeasure = IfcSectionalAreaIntegralMeasure; + class IfcShearModulusMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcShearModulusMeasure = IfcShearModulusMeasure; + class IfcSolidAngleMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcSolidAngleMeasure = IfcSolidAngleMeasure; + class IfcSoundPowerLevelMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcSoundPowerLevelMeasure = IfcSoundPowerLevelMeasure; + class IfcSoundPowerMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcSoundPowerMeasure = IfcSoundPowerMeasure; + class IfcSoundPressureLevelMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcSoundPressureLevelMeasure = IfcSoundPressureLevelMeasure; + class IfcSoundPressureMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcSoundPressureMeasure = IfcSoundPressureMeasure; + class IfcSpecificHeatCapacityMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcSpecificHeatCapacityMeasure = IfcSpecificHeatCapacityMeasure; + class IfcSpecularExponent { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcSpecularExponent = IfcSpecularExponent; + class IfcSpecularRoughness { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcSpecularRoughness = IfcSpecularRoughness; + class IfcTemperatureGradientMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcTemperatureGradientMeasure = IfcTemperatureGradientMeasure; + class IfcTemperatureRateOfChangeMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcTemperatureRateOfChangeMeasure = IfcTemperatureRateOfChangeMeasure; + class IfcText { + constructor(value) { + this.value = value; + this.type = 1; + } + } + IFC42.IfcText = IfcText; + class IfcTextAlignment { + constructor(value) { + this.value = value; + this.type = 1; + } + } + IFC42.IfcTextAlignment = IfcTextAlignment; + class IfcTextDecoration { + constructor(value) { + this.value = value; + this.type = 1; + } + } + IFC42.IfcTextDecoration = IfcTextDecoration; + class IfcTextFontName { + constructor(value) { + this.value = value; + this.type = 1; + } + } + IFC42.IfcTextFontName = IfcTextFontName; + class IfcTextTransformation { + constructor(value) { + this.value = value; + this.type = 1; + } + } + IFC42.IfcTextTransformation = IfcTextTransformation; + class IfcThermalAdmittanceMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcThermalAdmittanceMeasure = IfcThermalAdmittanceMeasure; + class IfcThermalConductivityMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcThermalConductivityMeasure = IfcThermalConductivityMeasure; + class IfcThermalExpansionCoefficientMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcThermalExpansionCoefficientMeasure = IfcThermalExpansionCoefficientMeasure; + class IfcThermalResistanceMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcThermalResistanceMeasure = IfcThermalResistanceMeasure; + class IfcThermalTransmittanceMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcThermalTransmittanceMeasure = IfcThermalTransmittanceMeasure; + class IfcThermodynamicTemperatureMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcThermodynamicTemperatureMeasure = IfcThermodynamicTemperatureMeasure; + class IfcTime { + constructor(value) { + this.value = value; + this.type = 1; + } + } + IFC42.IfcTime = IfcTime; + class IfcTimeMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcTimeMeasure = IfcTimeMeasure; + class IfcTimeStamp { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcTimeStamp = IfcTimeStamp; + class IfcTorqueMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcTorqueMeasure = IfcTorqueMeasure; + class IfcURIReference { + constructor(value) { + this.value = value; + this.type = 1; + } + } + IFC42.IfcURIReference = IfcURIReference; + class IfcVaporPermeabilityMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcVaporPermeabilityMeasure = IfcVaporPermeabilityMeasure; + class IfcVolumeMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcVolumeMeasure = IfcVolumeMeasure; + class IfcVolumetricFlowRateMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcVolumetricFlowRateMeasure = IfcVolumetricFlowRateMeasure; + class IfcWarpingConstantMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcWarpingConstantMeasure = IfcWarpingConstantMeasure; + class IfcWarpingMomentMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC42.IfcWarpingMomentMeasure = IfcWarpingMomentMeasure; + class IfcActionRequestTypeEnum { + } + IfcActionRequestTypeEnum.EMAIL = { type: 3, value: "EMAIL" }; + IfcActionRequestTypeEnum.FAX = { type: 3, value: "FAX" }; + IfcActionRequestTypeEnum.PHONE = { type: 3, value: "PHONE" }; + IfcActionRequestTypeEnum.POST = { type: 3, value: "POST" }; + IfcActionRequestTypeEnum.VERBAL = { type: 3, value: "VERBAL" }; + IfcActionRequestTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcActionRequestTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcActionRequestTypeEnum = IfcActionRequestTypeEnum; + class IfcActionSourceTypeEnum { + } + IfcActionSourceTypeEnum.DEAD_LOAD_G = { type: 3, value: "DEAD_LOAD_G" }; + IfcActionSourceTypeEnum.COMPLETION_G1 = { type: 3, value: "COMPLETION_G1" }; + IfcActionSourceTypeEnum.LIVE_LOAD_Q = { type: 3, value: "LIVE_LOAD_Q" }; + IfcActionSourceTypeEnum.SNOW_S = { type: 3, value: "SNOW_S" }; + IfcActionSourceTypeEnum.WIND_W = { type: 3, value: "WIND_W" }; + IfcActionSourceTypeEnum.PRESTRESSING_P = { type: 3, value: "PRESTRESSING_P" }; + IfcActionSourceTypeEnum.SETTLEMENT_U = { type: 3, value: "SETTLEMENT_U" }; + IfcActionSourceTypeEnum.TEMPERATURE_T = { type: 3, value: "TEMPERATURE_T" }; + IfcActionSourceTypeEnum.EARTHQUAKE_E = { type: 3, value: "EARTHQUAKE_E" }; + IfcActionSourceTypeEnum.FIRE = { type: 3, value: "FIRE" }; + IfcActionSourceTypeEnum.IMPULSE = { type: 3, value: "IMPULSE" }; + IfcActionSourceTypeEnum.IMPACT = { type: 3, value: "IMPACT" }; + IfcActionSourceTypeEnum.TRANSPORT = { type: 3, value: "TRANSPORT" }; + IfcActionSourceTypeEnum.ERECTION = { type: 3, value: "ERECTION" }; + IfcActionSourceTypeEnum.PROPPING = { type: 3, value: "PROPPING" }; + IfcActionSourceTypeEnum.SYSTEM_IMPERFECTION = { type: 3, value: "SYSTEM_IMPERFECTION" }; + IfcActionSourceTypeEnum.SHRINKAGE = { type: 3, value: "SHRINKAGE" }; + IfcActionSourceTypeEnum.CREEP = { type: 3, value: "CREEP" }; + IfcActionSourceTypeEnum.LACK_OF_FIT = { type: 3, value: "LACK_OF_FIT" }; + IfcActionSourceTypeEnum.BUOYANCY = { type: 3, value: "BUOYANCY" }; + IfcActionSourceTypeEnum.ICE = { type: 3, value: "ICE" }; + IfcActionSourceTypeEnum.CURRENT = { type: 3, value: "CURRENT" }; + IfcActionSourceTypeEnum.WAVE = { type: 3, value: "WAVE" }; + IfcActionSourceTypeEnum.RAIN = { type: 3, value: "RAIN" }; + IfcActionSourceTypeEnum.BRAKES = { type: 3, value: "BRAKES" }; + IfcActionSourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcActionSourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcActionSourceTypeEnum = IfcActionSourceTypeEnum; + class IfcActionTypeEnum { + } + IfcActionTypeEnum.PERMANENT_G = { type: 3, value: "PERMANENT_G" }; + IfcActionTypeEnum.VARIABLE_Q = { type: 3, value: "VARIABLE_Q" }; + IfcActionTypeEnum.EXTRAORDINARY_A = { type: 3, value: "EXTRAORDINARY_A" }; + IfcActionTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcActionTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcActionTypeEnum = IfcActionTypeEnum; + class IfcActuatorTypeEnum { + } + IfcActuatorTypeEnum.ELECTRICACTUATOR = { type: 3, value: "ELECTRICACTUATOR" }; + IfcActuatorTypeEnum.HANDOPERATEDACTUATOR = { type: 3, value: "HANDOPERATEDACTUATOR" }; + IfcActuatorTypeEnum.HYDRAULICACTUATOR = { type: 3, value: "HYDRAULICACTUATOR" }; + IfcActuatorTypeEnum.PNEUMATICACTUATOR = { type: 3, value: "PNEUMATICACTUATOR" }; + IfcActuatorTypeEnum.THERMOSTATICACTUATOR = { type: 3, value: "THERMOSTATICACTUATOR" }; + IfcActuatorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcActuatorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcActuatorTypeEnum = IfcActuatorTypeEnum; + class IfcAddressTypeEnum { + } + IfcAddressTypeEnum.OFFICE = { type: 3, value: "OFFICE" }; + IfcAddressTypeEnum.SITE = { type: 3, value: "SITE" }; + IfcAddressTypeEnum.HOME = { type: 3, value: "HOME" }; + IfcAddressTypeEnum.DISTRIBUTIONPOINT = { type: 3, value: "DISTRIBUTIONPOINT" }; + IfcAddressTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IFC42.IfcAddressTypeEnum = IfcAddressTypeEnum; + class IfcAirTerminalBoxTypeEnum { + } + IfcAirTerminalBoxTypeEnum.CONSTANTFLOW = { type: 3, value: "CONSTANTFLOW" }; + IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREDEPENDANT = { type: 3, value: "VARIABLEFLOWPRESSUREDEPENDANT" }; + IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREINDEPENDANT = { type: 3, value: "VARIABLEFLOWPRESSUREINDEPENDANT" }; + IfcAirTerminalBoxTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcAirTerminalBoxTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcAirTerminalBoxTypeEnum = IfcAirTerminalBoxTypeEnum; + class IfcAirTerminalTypeEnum { + } + IfcAirTerminalTypeEnum.DIFFUSER = { type: 3, value: "DIFFUSER" }; + IfcAirTerminalTypeEnum.GRILLE = { type: 3, value: "GRILLE" }; + IfcAirTerminalTypeEnum.LOUVRE = { type: 3, value: "LOUVRE" }; + IfcAirTerminalTypeEnum.REGISTER = { type: 3, value: "REGISTER" }; + IfcAirTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcAirTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcAirTerminalTypeEnum = IfcAirTerminalTypeEnum; + class IfcAirToAirHeatRecoveryTypeEnum { + } + IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECOUNTERFLOWEXCHANGER = { type: 3, value: "FIXEDPLATECOUNTERFLOWEXCHANGER" }; + IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECROSSFLOWEXCHANGER = { type: 3, value: "FIXEDPLATECROSSFLOWEXCHANGER" }; + IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATEPARALLELFLOWEXCHANGER = { type: 3, value: "FIXEDPLATEPARALLELFLOWEXCHANGER" }; + IfcAirToAirHeatRecoveryTypeEnum.ROTARYWHEEL = { type: 3, value: "ROTARYWHEEL" }; + IfcAirToAirHeatRecoveryTypeEnum.RUNAROUNDCOILLOOP = { type: 3, value: "RUNAROUNDCOILLOOP" }; + IfcAirToAirHeatRecoveryTypeEnum.HEATPIPE = { type: 3, value: "HEATPIPE" }; + IfcAirToAirHeatRecoveryTypeEnum.TWINTOWERENTHALPYRECOVERYLOOPS = { type: 3, value: "TWINTOWERENTHALPYRECOVERYLOOPS" }; + IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONSEALEDTUBEHEATEXCHANGERS = { type: 3, value: "THERMOSIPHONSEALEDTUBEHEATEXCHANGERS" }; + IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONCOILTYPEHEATEXCHANGERS = { type: 3, value: "THERMOSIPHONCOILTYPEHEATEXCHANGERS" }; + IfcAirToAirHeatRecoveryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcAirToAirHeatRecoveryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcAirToAirHeatRecoveryTypeEnum = IfcAirToAirHeatRecoveryTypeEnum; + class IfcAlarmTypeEnum { + } + IfcAlarmTypeEnum.BELL = { type: 3, value: "BELL" }; + IfcAlarmTypeEnum.BREAKGLASSBUTTON = { type: 3, value: "BREAKGLASSBUTTON" }; + IfcAlarmTypeEnum.LIGHT = { type: 3, value: "LIGHT" }; + IfcAlarmTypeEnum.MANUALPULLBOX = { type: 3, value: "MANUALPULLBOX" }; + IfcAlarmTypeEnum.SIREN = { type: 3, value: "SIREN" }; + IfcAlarmTypeEnum.WHISTLE = { type: 3, value: "WHISTLE" }; + IfcAlarmTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcAlarmTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcAlarmTypeEnum = IfcAlarmTypeEnum; + class IfcAnalysisModelTypeEnum { + } + IfcAnalysisModelTypeEnum.IN_PLANE_LOADING_2D = { type: 3, value: "IN_PLANE_LOADING_2D" }; + IfcAnalysisModelTypeEnum.OUT_PLANE_LOADING_2D = { type: 3, value: "OUT_PLANE_LOADING_2D" }; + IfcAnalysisModelTypeEnum.LOADING_3D = { type: 3, value: "LOADING_3D" }; + IfcAnalysisModelTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcAnalysisModelTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcAnalysisModelTypeEnum = IfcAnalysisModelTypeEnum; + class IfcAnalysisTheoryTypeEnum { + } + IfcAnalysisTheoryTypeEnum.FIRST_ORDER_THEORY = { type: 3, value: "FIRST_ORDER_THEORY" }; + IfcAnalysisTheoryTypeEnum.SECOND_ORDER_THEORY = { type: 3, value: "SECOND_ORDER_THEORY" }; + IfcAnalysisTheoryTypeEnum.THIRD_ORDER_THEORY = { type: 3, value: "THIRD_ORDER_THEORY" }; + IfcAnalysisTheoryTypeEnum.FULL_NONLINEAR_THEORY = { type: 3, value: "FULL_NONLINEAR_THEORY" }; + IfcAnalysisTheoryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcAnalysisTheoryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcAnalysisTheoryTypeEnum = IfcAnalysisTheoryTypeEnum; + class IfcArithmeticOperatorEnum { + } + IfcArithmeticOperatorEnum.ADD = { type: 3, value: "ADD" }; + IfcArithmeticOperatorEnum.DIVIDE = { type: 3, value: "DIVIDE" }; + IfcArithmeticOperatorEnum.MULTIPLY = { type: 3, value: "MULTIPLY" }; + IfcArithmeticOperatorEnum.SUBTRACT = { type: 3, value: "SUBTRACT" }; + IFC42.IfcArithmeticOperatorEnum = IfcArithmeticOperatorEnum; + class IfcAssemblyPlaceEnum { + } + IfcAssemblyPlaceEnum.SITE = { type: 3, value: "SITE" }; + IfcAssemblyPlaceEnum.FACTORY = { type: 3, value: "FACTORY" }; + IfcAssemblyPlaceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcAssemblyPlaceEnum = IfcAssemblyPlaceEnum; + class IfcAudioVisualApplianceTypeEnum { + } + IfcAudioVisualApplianceTypeEnum.AMPLIFIER = { type: 3, value: "AMPLIFIER" }; + IfcAudioVisualApplianceTypeEnum.CAMERA = { type: 3, value: "CAMERA" }; + IfcAudioVisualApplianceTypeEnum.DISPLAY = { type: 3, value: "DISPLAY" }; + IfcAudioVisualApplianceTypeEnum.MICROPHONE = { type: 3, value: "MICROPHONE" }; + IfcAudioVisualApplianceTypeEnum.PLAYER = { type: 3, value: "PLAYER" }; + IfcAudioVisualApplianceTypeEnum.PROJECTOR = { type: 3, value: "PROJECTOR" }; + IfcAudioVisualApplianceTypeEnum.RECEIVER = { type: 3, value: "RECEIVER" }; + IfcAudioVisualApplianceTypeEnum.SPEAKER = { type: 3, value: "SPEAKER" }; + IfcAudioVisualApplianceTypeEnum.SWITCHER = { type: 3, value: "SWITCHER" }; + IfcAudioVisualApplianceTypeEnum.TELEPHONE = { type: 3, value: "TELEPHONE" }; + IfcAudioVisualApplianceTypeEnum.TUNER = { type: 3, value: "TUNER" }; + IfcAudioVisualApplianceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcAudioVisualApplianceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcAudioVisualApplianceTypeEnum = IfcAudioVisualApplianceTypeEnum; + class IfcBSplineCurveForm { + } + IfcBSplineCurveForm.POLYLINE_FORM = { type: 3, value: "POLYLINE_FORM" }; + IfcBSplineCurveForm.CIRCULAR_ARC = { type: 3, value: "CIRCULAR_ARC" }; + IfcBSplineCurveForm.ELLIPTIC_ARC = { type: 3, value: "ELLIPTIC_ARC" }; + IfcBSplineCurveForm.PARABOLIC_ARC = { type: 3, value: "PARABOLIC_ARC" }; + IfcBSplineCurveForm.HYPERBOLIC_ARC = { type: 3, value: "HYPERBOLIC_ARC" }; + IfcBSplineCurveForm.UNSPECIFIED = { type: 3, value: "UNSPECIFIED" }; + IFC42.IfcBSplineCurveForm = IfcBSplineCurveForm; + class IfcBSplineSurfaceForm { + } + IfcBSplineSurfaceForm.PLANE_SURF = { type: 3, value: "PLANE_SURF" }; + IfcBSplineSurfaceForm.CYLINDRICAL_SURF = { type: 3, value: "CYLINDRICAL_SURF" }; + IfcBSplineSurfaceForm.CONICAL_SURF = { type: 3, value: "CONICAL_SURF" }; + IfcBSplineSurfaceForm.SPHERICAL_SURF = { type: 3, value: "SPHERICAL_SURF" }; + IfcBSplineSurfaceForm.TOROIDAL_SURF = { type: 3, value: "TOROIDAL_SURF" }; + IfcBSplineSurfaceForm.SURF_OF_REVOLUTION = { type: 3, value: "SURF_OF_REVOLUTION" }; + IfcBSplineSurfaceForm.RULED_SURF = { type: 3, value: "RULED_SURF" }; + IfcBSplineSurfaceForm.GENERALISED_CONE = { type: 3, value: "GENERALISED_CONE" }; + IfcBSplineSurfaceForm.QUADRIC_SURF = { type: 3, value: "QUADRIC_SURF" }; + IfcBSplineSurfaceForm.SURF_OF_LINEAR_EXTRUSION = { type: 3, value: "SURF_OF_LINEAR_EXTRUSION" }; + IfcBSplineSurfaceForm.UNSPECIFIED = { type: 3, value: "UNSPECIFIED" }; + IFC42.IfcBSplineSurfaceForm = IfcBSplineSurfaceForm; + class IfcBeamTypeEnum { + } + IfcBeamTypeEnum.BEAM = { type: 3, value: "BEAM" }; + IfcBeamTypeEnum.JOIST = { type: 3, value: "JOIST" }; + IfcBeamTypeEnum.HOLLOWCORE = { type: 3, value: "HOLLOWCORE" }; + IfcBeamTypeEnum.LINTEL = { type: 3, value: "LINTEL" }; + IfcBeamTypeEnum.SPANDREL = { type: 3, value: "SPANDREL" }; + IfcBeamTypeEnum.T_BEAM = { type: 3, value: "T_BEAM" }; + IfcBeamTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcBeamTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcBeamTypeEnum = IfcBeamTypeEnum; + class IfcBenchmarkEnum { + } + IfcBenchmarkEnum.GREATERTHAN = { type: 3, value: "GREATERTHAN" }; + IfcBenchmarkEnum.GREATERTHANOREQUALTO = { type: 3, value: "GREATERTHANOREQUALTO" }; + IfcBenchmarkEnum.LESSTHAN = { type: 3, value: "LESSTHAN" }; + IfcBenchmarkEnum.LESSTHANOREQUALTO = { type: 3, value: "LESSTHANOREQUALTO" }; + IfcBenchmarkEnum.EQUALTO = { type: 3, value: "EQUALTO" }; + IfcBenchmarkEnum.NOTEQUALTO = { type: 3, value: "NOTEQUALTO" }; + IfcBenchmarkEnum.INCLUDES = { type: 3, value: "INCLUDES" }; + IfcBenchmarkEnum.NOTINCLUDES = { type: 3, value: "NOTINCLUDES" }; + IfcBenchmarkEnum.INCLUDEDIN = { type: 3, value: "INCLUDEDIN" }; + IfcBenchmarkEnum.NOTINCLUDEDIN = { type: 3, value: "NOTINCLUDEDIN" }; + IFC42.IfcBenchmarkEnum = IfcBenchmarkEnum; + class IfcBoilerTypeEnum { + } + IfcBoilerTypeEnum.WATER = { type: 3, value: "WATER" }; + IfcBoilerTypeEnum.STEAM = { type: 3, value: "STEAM" }; + IfcBoilerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcBoilerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcBoilerTypeEnum = IfcBoilerTypeEnum; + class IfcBooleanOperator { + } + IfcBooleanOperator.UNION = { type: 3, value: "UNION" }; + IfcBooleanOperator.INTERSECTION = { type: 3, value: "INTERSECTION" }; + IfcBooleanOperator.DIFFERENCE = { type: 3, value: "DIFFERENCE" }; + IFC42.IfcBooleanOperator = IfcBooleanOperator; + class IfcBuildingElementPartTypeEnum { + } + IfcBuildingElementPartTypeEnum.INSULATION = { type: 3, value: "INSULATION" }; + IfcBuildingElementPartTypeEnum.PRECASTPANEL = { type: 3, value: "PRECASTPANEL" }; + IfcBuildingElementPartTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcBuildingElementPartTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcBuildingElementPartTypeEnum = IfcBuildingElementPartTypeEnum; + class IfcBuildingElementProxyTypeEnum { + } + IfcBuildingElementProxyTypeEnum.COMPLEX = { type: 3, value: "COMPLEX" }; + IfcBuildingElementProxyTypeEnum.ELEMENT = { type: 3, value: "ELEMENT" }; + IfcBuildingElementProxyTypeEnum.PARTIAL = { type: 3, value: "PARTIAL" }; + IfcBuildingElementProxyTypeEnum.PROVISIONFORVOID = { type: 3, value: "PROVISIONFORVOID" }; + IfcBuildingElementProxyTypeEnum.PROVISIONFORSPACE = { type: 3, value: "PROVISIONFORSPACE" }; + IfcBuildingElementProxyTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcBuildingElementProxyTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcBuildingElementProxyTypeEnum = IfcBuildingElementProxyTypeEnum; + class IfcBuildingSystemTypeEnum { + } + IfcBuildingSystemTypeEnum.FENESTRATION = { type: 3, value: "FENESTRATION" }; + IfcBuildingSystemTypeEnum.FOUNDATION = { type: 3, value: "FOUNDATION" }; + IfcBuildingSystemTypeEnum.LOADBEARING = { type: 3, value: "LOADBEARING" }; + IfcBuildingSystemTypeEnum.OUTERSHELL = { type: 3, value: "OUTERSHELL" }; + IfcBuildingSystemTypeEnum.SHADING = { type: 3, value: "SHADING" }; + IfcBuildingSystemTypeEnum.TRANSPORT = { type: 3, value: "TRANSPORT" }; + IfcBuildingSystemTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcBuildingSystemTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcBuildingSystemTypeEnum = IfcBuildingSystemTypeEnum; + class IfcBurnerTypeEnum { + } + IfcBurnerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcBurnerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcBurnerTypeEnum = IfcBurnerTypeEnum; + class IfcCableCarrierFittingTypeEnum { + } + IfcCableCarrierFittingTypeEnum.BEND = { type: 3, value: "BEND" }; + IfcCableCarrierFittingTypeEnum.CROSS = { type: 3, value: "CROSS" }; + IfcCableCarrierFittingTypeEnum.REDUCER = { type: 3, value: "REDUCER" }; + IfcCableCarrierFittingTypeEnum.TEE = { type: 3, value: "TEE" }; + IfcCableCarrierFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCableCarrierFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcCableCarrierFittingTypeEnum = IfcCableCarrierFittingTypeEnum; + class IfcCableCarrierSegmentTypeEnum { + } + IfcCableCarrierSegmentTypeEnum.CABLELADDERSEGMENT = { type: 3, value: "CABLELADDERSEGMENT" }; + IfcCableCarrierSegmentTypeEnum.CABLETRAYSEGMENT = { type: 3, value: "CABLETRAYSEGMENT" }; + IfcCableCarrierSegmentTypeEnum.CABLETRUNKINGSEGMENT = { type: 3, value: "CABLETRUNKINGSEGMENT" }; + IfcCableCarrierSegmentTypeEnum.CONDUITSEGMENT = { type: 3, value: "CONDUITSEGMENT" }; + IfcCableCarrierSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCableCarrierSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcCableCarrierSegmentTypeEnum = IfcCableCarrierSegmentTypeEnum; + class IfcCableFittingTypeEnum { + } + IfcCableFittingTypeEnum.CONNECTOR = { type: 3, value: "CONNECTOR" }; + IfcCableFittingTypeEnum.ENTRY = { type: 3, value: "ENTRY" }; + IfcCableFittingTypeEnum.EXIT = { type: 3, value: "EXIT" }; + IfcCableFittingTypeEnum.JUNCTION = { type: 3, value: "JUNCTION" }; + IfcCableFittingTypeEnum.TRANSITION = { type: 3, value: "TRANSITION" }; + IfcCableFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCableFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcCableFittingTypeEnum = IfcCableFittingTypeEnum; + class IfcCableSegmentTypeEnum { + } + IfcCableSegmentTypeEnum.BUSBARSEGMENT = { type: 3, value: "BUSBARSEGMENT" }; + IfcCableSegmentTypeEnum.CABLESEGMENT = { type: 3, value: "CABLESEGMENT" }; + IfcCableSegmentTypeEnum.CONDUCTORSEGMENT = { type: 3, value: "CONDUCTORSEGMENT" }; + IfcCableSegmentTypeEnum.CORESEGMENT = { type: 3, value: "CORESEGMENT" }; + IfcCableSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCableSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcCableSegmentTypeEnum = IfcCableSegmentTypeEnum; + class IfcChangeActionEnum { + } + IfcChangeActionEnum.NOCHANGE = { type: 3, value: "NOCHANGE" }; + IfcChangeActionEnum.MODIFIED = { type: 3, value: "MODIFIED" }; + IfcChangeActionEnum.ADDED = { type: 3, value: "ADDED" }; + IfcChangeActionEnum.DELETED = { type: 3, value: "DELETED" }; + IfcChangeActionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcChangeActionEnum = IfcChangeActionEnum; + class IfcChillerTypeEnum { + } + IfcChillerTypeEnum.AIRCOOLED = { type: 3, value: "AIRCOOLED" }; + IfcChillerTypeEnum.WATERCOOLED = { type: 3, value: "WATERCOOLED" }; + IfcChillerTypeEnum.HEATRECOVERY = { type: 3, value: "HEATRECOVERY" }; + IfcChillerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcChillerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcChillerTypeEnum = IfcChillerTypeEnum; + class IfcChimneyTypeEnum { + } + IfcChimneyTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcChimneyTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcChimneyTypeEnum = IfcChimneyTypeEnum; + class IfcCoilTypeEnum { + } + IfcCoilTypeEnum.DXCOOLINGCOIL = { type: 3, value: "DXCOOLINGCOIL" }; + IfcCoilTypeEnum.ELECTRICHEATINGCOIL = { type: 3, value: "ELECTRICHEATINGCOIL" }; + IfcCoilTypeEnum.GASHEATINGCOIL = { type: 3, value: "GASHEATINGCOIL" }; + IfcCoilTypeEnum.HYDRONICCOIL = { type: 3, value: "HYDRONICCOIL" }; + IfcCoilTypeEnum.STEAMHEATINGCOIL = { type: 3, value: "STEAMHEATINGCOIL" }; + IfcCoilTypeEnum.WATERCOOLINGCOIL = { type: 3, value: "WATERCOOLINGCOIL" }; + IfcCoilTypeEnum.WATERHEATINGCOIL = { type: 3, value: "WATERHEATINGCOIL" }; + IfcCoilTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCoilTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcCoilTypeEnum = IfcCoilTypeEnum; + class IfcColumnTypeEnum { + } + IfcColumnTypeEnum.COLUMN = { type: 3, value: "COLUMN" }; + IfcColumnTypeEnum.PILASTER = { type: 3, value: "PILASTER" }; + IfcColumnTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcColumnTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcColumnTypeEnum = IfcColumnTypeEnum; + class IfcCommunicationsApplianceTypeEnum { + } + IfcCommunicationsApplianceTypeEnum.ANTENNA = { type: 3, value: "ANTENNA" }; + IfcCommunicationsApplianceTypeEnum.COMPUTER = { type: 3, value: "COMPUTER" }; + IfcCommunicationsApplianceTypeEnum.FAX = { type: 3, value: "FAX" }; + IfcCommunicationsApplianceTypeEnum.GATEWAY = { type: 3, value: "GATEWAY" }; + IfcCommunicationsApplianceTypeEnum.MODEM = { type: 3, value: "MODEM" }; + IfcCommunicationsApplianceTypeEnum.NETWORKAPPLIANCE = { type: 3, value: "NETWORKAPPLIANCE" }; + IfcCommunicationsApplianceTypeEnum.NETWORKBRIDGE = { type: 3, value: "NETWORKBRIDGE" }; + IfcCommunicationsApplianceTypeEnum.NETWORKHUB = { type: 3, value: "NETWORKHUB" }; + IfcCommunicationsApplianceTypeEnum.PRINTER = { type: 3, value: "PRINTER" }; + IfcCommunicationsApplianceTypeEnum.REPEATER = { type: 3, value: "REPEATER" }; + IfcCommunicationsApplianceTypeEnum.ROUTER = { type: 3, value: "ROUTER" }; + IfcCommunicationsApplianceTypeEnum.SCANNER = { type: 3, value: "SCANNER" }; + IfcCommunicationsApplianceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCommunicationsApplianceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcCommunicationsApplianceTypeEnum = IfcCommunicationsApplianceTypeEnum; + class IfcComplexPropertyTemplateTypeEnum { + } + IfcComplexPropertyTemplateTypeEnum.P_COMPLEX = { type: 3, value: "P_COMPLEX" }; + IfcComplexPropertyTemplateTypeEnum.Q_COMPLEX = { type: 3, value: "Q_COMPLEX" }; + IFC42.IfcComplexPropertyTemplateTypeEnum = IfcComplexPropertyTemplateTypeEnum; + class IfcCompressorTypeEnum { + } + IfcCompressorTypeEnum.DYNAMIC = { type: 3, value: "DYNAMIC" }; + IfcCompressorTypeEnum.RECIPROCATING = { type: 3, value: "RECIPROCATING" }; + IfcCompressorTypeEnum.ROTARY = { type: 3, value: "ROTARY" }; + IfcCompressorTypeEnum.SCROLL = { type: 3, value: "SCROLL" }; + IfcCompressorTypeEnum.TROCHOIDAL = { type: 3, value: "TROCHOIDAL" }; + IfcCompressorTypeEnum.SINGLESTAGE = { type: 3, value: "SINGLESTAGE" }; + IfcCompressorTypeEnum.BOOSTER = { type: 3, value: "BOOSTER" }; + IfcCompressorTypeEnum.OPENTYPE = { type: 3, value: "OPENTYPE" }; + IfcCompressorTypeEnum.HERMETIC = { type: 3, value: "HERMETIC" }; + IfcCompressorTypeEnum.SEMIHERMETIC = { type: 3, value: "SEMIHERMETIC" }; + IfcCompressorTypeEnum.WELDEDSHELLHERMETIC = { type: 3, value: "WELDEDSHELLHERMETIC" }; + IfcCompressorTypeEnum.ROLLINGPISTON = { type: 3, value: "ROLLINGPISTON" }; + IfcCompressorTypeEnum.ROTARYVANE = { type: 3, value: "ROTARYVANE" }; + IfcCompressorTypeEnum.SINGLESCREW = { type: 3, value: "SINGLESCREW" }; + IfcCompressorTypeEnum.TWINSCREW = { type: 3, value: "TWINSCREW" }; + IfcCompressorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCompressorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcCompressorTypeEnum = IfcCompressorTypeEnum; + class IfcCondenserTypeEnum { + } + IfcCondenserTypeEnum.AIRCOOLED = { type: 3, value: "AIRCOOLED" }; + IfcCondenserTypeEnum.EVAPORATIVECOOLED = { type: 3, value: "EVAPORATIVECOOLED" }; + IfcCondenserTypeEnum.WATERCOOLED = { type: 3, value: "WATERCOOLED" }; + IfcCondenserTypeEnum.WATERCOOLEDBRAZEDPLATE = { type: 3, value: "WATERCOOLEDBRAZEDPLATE" }; + IfcCondenserTypeEnum.WATERCOOLEDSHELLCOIL = { type: 3, value: "WATERCOOLEDSHELLCOIL" }; + IfcCondenserTypeEnum.WATERCOOLEDSHELLTUBE = { type: 3, value: "WATERCOOLEDSHELLTUBE" }; + IfcCondenserTypeEnum.WATERCOOLEDTUBEINTUBE = { type: 3, value: "WATERCOOLEDTUBEINTUBE" }; + IfcCondenserTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCondenserTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcCondenserTypeEnum = IfcCondenserTypeEnum; + class IfcConnectionTypeEnum { + } + IfcConnectionTypeEnum.ATPATH = { type: 3, value: "ATPATH" }; + IfcConnectionTypeEnum.ATSTART = { type: 3, value: "ATSTART" }; + IfcConnectionTypeEnum.ATEND = { type: 3, value: "ATEND" }; + IfcConnectionTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcConnectionTypeEnum = IfcConnectionTypeEnum; + class IfcConstraintEnum { + } + IfcConstraintEnum.HARD = { type: 3, value: "HARD" }; + IfcConstraintEnum.SOFT = { type: 3, value: "SOFT" }; + IfcConstraintEnum.ADVISORY = { type: 3, value: "ADVISORY" }; + IfcConstraintEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcConstraintEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcConstraintEnum = IfcConstraintEnum; + class IfcConstructionEquipmentResourceTypeEnum { + } + IfcConstructionEquipmentResourceTypeEnum.DEMOLISHING = { type: 3, value: "DEMOLISHING" }; + IfcConstructionEquipmentResourceTypeEnum.EARTHMOVING = { type: 3, value: "EARTHMOVING" }; + IfcConstructionEquipmentResourceTypeEnum.ERECTING = { type: 3, value: "ERECTING" }; + IfcConstructionEquipmentResourceTypeEnum.HEATING = { type: 3, value: "HEATING" }; + IfcConstructionEquipmentResourceTypeEnum.LIGHTING = { type: 3, value: "LIGHTING" }; + IfcConstructionEquipmentResourceTypeEnum.PAVING = { type: 3, value: "PAVING" }; + IfcConstructionEquipmentResourceTypeEnum.PUMPING = { type: 3, value: "PUMPING" }; + IfcConstructionEquipmentResourceTypeEnum.TRANSPORTING = { type: 3, value: "TRANSPORTING" }; + IfcConstructionEquipmentResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcConstructionEquipmentResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcConstructionEquipmentResourceTypeEnum = IfcConstructionEquipmentResourceTypeEnum; + class IfcConstructionMaterialResourceTypeEnum { + } + IfcConstructionMaterialResourceTypeEnum.AGGREGATES = { type: 3, value: "AGGREGATES" }; + IfcConstructionMaterialResourceTypeEnum.CONCRETE = { type: 3, value: "CONCRETE" }; + IfcConstructionMaterialResourceTypeEnum.DRYWALL = { type: 3, value: "DRYWALL" }; + IfcConstructionMaterialResourceTypeEnum.FUEL = { type: 3, value: "FUEL" }; + IfcConstructionMaterialResourceTypeEnum.GYPSUM = { type: 3, value: "GYPSUM" }; + IfcConstructionMaterialResourceTypeEnum.MASONRY = { type: 3, value: "MASONRY" }; + IfcConstructionMaterialResourceTypeEnum.METAL = { type: 3, value: "METAL" }; + IfcConstructionMaterialResourceTypeEnum.PLASTIC = { type: 3, value: "PLASTIC" }; + IfcConstructionMaterialResourceTypeEnum.WOOD = { type: 3, value: "WOOD" }; + IfcConstructionMaterialResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IfcConstructionMaterialResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IFC42.IfcConstructionMaterialResourceTypeEnum = IfcConstructionMaterialResourceTypeEnum; + class IfcConstructionProductResourceTypeEnum { + } + IfcConstructionProductResourceTypeEnum.ASSEMBLY = { type: 3, value: "ASSEMBLY" }; + IfcConstructionProductResourceTypeEnum.FORMWORK = { type: 3, value: "FORMWORK" }; + IfcConstructionProductResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcConstructionProductResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcConstructionProductResourceTypeEnum = IfcConstructionProductResourceTypeEnum; + class IfcControllerTypeEnum { + } + IfcControllerTypeEnum.FLOATING = { type: 3, value: "FLOATING" }; + IfcControllerTypeEnum.PROGRAMMABLE = { type: 3, value: "PROGRAMMABLE" }; + IfcControllerTypeEnum.PROPORTIONAL = { type: 3, value: "PROPORTIONAL" }; + IfcControllerTypeEnum.MULTIPOSITION = { type: 3, value: "MULTIPOSITION" }; + IfcControllerTypeEnum.TWOPOSITION = { type: 3, value: "TWOPOSITION" }; + IfcControllerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcControllerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcControllerTypeEnum = IfcControllerTypeEnum; + class IfcCooledBeamTypeEnum { + } + IfcCooledBeamTypeEnum.ACTIVE = { type: 3, value: "ACTIVE" }; + IfcCooledBeamTypeEnum.PASSIVE = { type: 3, value: "PASSIVE" }; + IfcCooledBeamTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCooledBeamTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcCooledBeamTypeEnum = IfcCooledBeamTypeEnum; + class IfcCoolingTowerTypeEnum { + } + IfcCoolingTowerTypeEnum.NATURALDRAFT = { type: 3, value: "NATURALDRAFT" }; + IfcCoolingTowerTypeEnum.MECHANICALINDUCEDDRAFT = { type: 3, value: "MECHANICALINDUCEDDRAFT" }; + IfcCoolingTowerTypeEnum.MECHANICALFORCEDDRAFT = { type: 3, value: "MECHANICALFORCEDDRAFT" }; + IfcCoolingTowerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCoolingTowerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcCoolingTowerTypeEnum = IfcCoolingTowerTypeEnum; + class IfcCostItemTypeEnum { + } + IfcCostItemTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCostItemTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcCostItemTypeEnum = IfcCostItemTypeEnum; + class IfcCostScheduleTypeEnum { + } + IfcCostScheduleTypeEnum.BUDGET = { type: 3, value: "BUDGET" }; + IfcCostScheduleTypeEnum.COSTPLAN = { type: 3, value: "COSTPLAN" }; + IfcCostScheduleTypeEnum.ESTIMATE = { type: 3, value: "ESTIMATE" }; + IfcCostScheduleTypeEnum.TENDER = { type: 3, value: "TENDER" }; + IfcCostScheduleTypeEnum.PRICEDBILLOFQUANTITIES = { type: 3, value: "PRICEDBILLOFQUANTITIES" }; + IfcCostScheduleTypeEnum.UNPRICEDBILLOFQUANTITIES = { type: 3, value: "UNPRICEDBILLOFQUANTITIES" }; + IfcCostScheduleTypeEnum.SCHEDULEOFRATES = { type: 3, value: "SCHEDULEOFRATES" }; + IfcCostScheduleTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCostScheduleTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcCostScheduleTypeEnum = IfcCostScheduleTypeEnum; + class IfcCoveringTypeEnum { + } + IfcCoveringTypeEnum.CEILING = { type: 3, value: "CEILING" }; + IfcCoveringTypeEnum.FLOORING = { type: 3, value: "FLOORING" }; + IfcCoveringTypeEnum.CLADDING = { type: 3, value: "CLADDING" }; + IfcCoveringTypeEnum.ROOFING = { type: 3, value: "ROOFING" }; + IfcCoveringTypeEnum.MOLDING = { type: 3, value: "MOLDING" }; + IfcCoveringTypeEnum.SKIRTINGBOARD = { type: 3, value: "SKIRTINGBOARD" }; + IfcCoveringTypeEnum.INSULATION = { type: 3, value: "INSULATION" }; + IfcCoveringTypeEnum.MEMBRANE = { type: 3, value: "MEMBRANE" }; + IfcCoveringTypeEnum.SLEEVING = { type: 3, value: "SLEEVING" }; + IfcCoveringTypeEnum.WRAPPING = { type: 3, value: "WRAPPING" }; + IfcCoveringTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCoveringTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcCoveringTypeEnum = IfcCoveringTypeEnum; + class IfcCrewResourceTypeEnum { + } + IfcCrewResourceTypeEnum.OFFICE = { type: 3, value: "OFFICE" }; + IfcCrewResourceTypeEnum.SITE = { type: 3, value: "SITE" }; + IfcCrewResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCrewResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcCrewResourceTypeEnum = IfcCrewResourceTypeEnum; + class IfcCurtainWallTypeEnum { + } + IfcCurtainWallTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCurtainWallTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcCurtainWallTypeEnum = IfcCurtainWallTypeEnum; + class IfcCurveInterpolationEnum { + } + IfcCurveInterpolationEnum.LINEAR = { type: 3, value: "LINEAR" }; + IfcCurveInterpolationEnum.LOG_LINEAR = { type: 3, value: "LOG_LINEAR" }; + IfcCurveInterpolationEnum.LOG_LOG = { type: 3, value: "LOG_LOG" }; + IfcCurveInterpolationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcCurveInterpolationEnum = IfcCurveInterpolationEnum; + class IfcDamperTypeEnum { + } + IfcDamperTypeEnum.BACKDRAFTDAMPER = { type: 3, value: "BACKDRAFTDAMPER" }; + IfcDamperTypeEnum.BALANCINGDAMPER = { type: 3, value: "BALANCINGDAMPER" }; + IfcDamperTypeEnum.BLASTDAMPER = { type: 3, value: "BLASTDAMPER" }; + IfcDamperTypeEnum.CONTROLDAMPER = { type: 3, value: "CONTROLDAMPER" }; + IfcDamperTypeEnum.FIREDAMPER = { type: 3, value: "FIREDAMPER" }; + IfcDamperTypeEnum.FIRESMOKEDAMPER = { type: 3, value: "FIRESMOKEDAMPER" }; + IfcDamperTypeEnum.FUMEHOODEXHAUST = { type: 3, value: "FUMEHOODEXHAUST" }; + IfcDamperTypeEnum.GRAVITYDAMPER = { type: 3, value: "GRAVITYDAMPER" }; + IfcDamperTypeEnum.GRAVITYRELIEFDAMPER = { type: 3, value: "GRAVITYRELIEFDAMPER" }; + IfcDamperTypeEnum.RELIEFDAMPER = { type: 3, value: "RELIEFDAMPER" }; + IfcDamperTypeEnum.SMOKEDAMPER = { type: 3, value: "SMOKEDAMPER" }; + IfcDamperTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDamperTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcDamperTypeEnum = IfcDamperTypeEnum; + class IfcDataOriginEnum { + } + IfcDataOriginEnum.MEASURED = { type: 3, value: "MEASURED" }; + IfcDataOriginEnum.PREDICTED = { type: 3, value: "PREDICTED" }; + IfcDataOriginEnum.SIMULATED = { type: 3, value: "SIMULATED" }; + IfcDataOriginEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDataOriginEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcDataOriginEnum = IfcDataOriginEnum; + class IfcDerivedUnitEnum { + } + IfcDerivedUnitEnum.ANGULARVELOCITYUNIT = { type: 3, value: "ANGULARVELOCITYUNIT" }; + IfcDerivedUnitEnum.AREADENSITYUNIT = { type: 3, value: "AREADENSITYUNIT" }; + IfcDerivedUnitEnum.COMPOUNDPLANEANGLEUNIT = { type: 3, value: "COMPOUNDPLANEANGLEUNIT" }; + IfcDerivedUnitEnum.DYNAMICVISCOSITYUNIT = { type: 3, value: "DYNAMICVISCOSITYUNIT" }; + IfcDerivedUnitEnum.HEATFLUXDENSITYUNIT = { type: 3, value: "HEATFLUXDENSITYUNIT" }; + IfcDerivedUnitEnum.INTEGERCOUNTRATEUNIT = { type: 3, value: "INTEGERCOUNTRATEUNIT" }; + IfcDerivedUnitEnum.ISOTHERMALMOISTURECAPACITYUNIT = { type: 3, value: "ISOTHERMALMOISTURECAPACITYUNIT" }; + IfcDerivedUnitEnum.KINEMATICVISCOSITYUNIT = { type: 3, value: "KINEMATICVISCOSITYUNIT" }; + IfcDerivedUnitEnum.LINEARVELOCITYUNIT = { type: 3, value: "LINEARVELOCITYUNIT" }; + IfcDerivedUnitEnum.MASSDENSITYUNIT = { type: 3, value: "MASSDENSITYUNIT" }; + IfcDerivedUnitEnum.MASSFLOWRATEUNIT = { type: 3, value: "MASSFLOWRATEUNIT" }; + IfcDerivedUnitEnum.MOISTUREDIFFUSIVITYUNIT = { type: 3, value: "MOISTUREDIFFUSIVITYUNIT" }; + IfcDerivedUnitEnum.MOLECULARWEIGHTUNIT = { type: 3, value: "MOLECULARWEIGHTUNIT" }; + IfcDerivedUnitEnum.SPECIFICHEATCAPACITYUNIT = { type: 3, value: "SPECIFICHEATCAPACITYUNIT" }; + IfcDerivedUnitEnum.THERMALADMITTANCEUNIT = { type: 3, value: "THERMALADMITTANCEUNIT" }; + IfcDerivedUnitEnum.THERMALCONDUCTANCEUNIT = { type: 3, value: "THERMALCONDUCTANCEUNIT" }; + IfcDerivedUnitEnum.THERMALRESISTANCEUNIT = { type: 3, value: "THERMALRESISTANCEUNIT" }; + IfcDerivedUnitEnum.THERMALTRANSMITTANCEUNIT = { type: 3, value: "THERMALTRANSMITTANCEUNIT" }; + IfcDerivedUnitEnum.VAPORPERMEABILITYUNIT = { type: 3, value: "VAPORPERMEABILITYUNIT" }; + IfcDerivedUnitEnum.VOLUMETRICFLOWRATEUNIT = { type: 3, value: "VOLUMETRICFLOWRATEUNIT" }; + IfcDerivedUnitEnum.ROTATIONALFREQUENCYUNIT = { type: 3, value: "ROTATIONALFREQUENCYUNIT" }; + IfcDerivedUnitEnum.TORQUEUNIT = { type: 3, value: "TORQUEUNIT" }; + IfcDerivedUnitEnum.MOMENTOFINERTIAUNIT = { type: 3, value: "MOMENTOFINERTIAUNIT" }; + IfcDerivedUnitEnum.LINEARMOMENTUNIT = { type: 3, value: "LINEARMOMENTUNIT" }; + IfcDerivedUnitEnum.LINEARFORCEUNIT = { type: 3, value: "LINEARFORCEUNIT" }; + IfcDerivedUnitEnum.PLANARFORCEUNIT = { type: 3, value: "PLANARFORCEUNIT" }; + IfcDerivedUnitEnum.MODULUSOFELASTICITYUNIT = { type: 3, value: "MODULUSOFELASTICITYUNIT" }; + IfcDerivedUnitEnum.SHEARMODULUSUNIT = { type: 3, value: "SHEARMODULUSUNIT" }; + IfcDerivedUnitEnum.LINEARSTIFFNESSUNIT = { type: 3, value: "LINEARSTIFFNESSUNIT" }; + IfcDerivedUnitEnum.ROTATIONALSTIFFNESSUNIT = { type: 3, value: "ROTATIONALSTIFFNESSUNIT" }; + IfcDerivedUnitEnum.MODULUSOFSUBGRADEREACTIONUNIT = { type: 3, value: "MODULUSOFSUBGRADEREACTIONUNIT" }; + IfcDerivedUnitEnum.ACCELERATIONUNIT = { type: 3, value: "ACCELERATIONUNIT" }; + IfcDerivedUnitEnum.CURVATUREUNIT = { type: 3, value: "CURVATUREUNIT" }; + IfcDerivedUnitEnum.HEATINGVALUEUNIT = { type: 3, value: "HEATINGVALUEUNIT" }; + IfcDerivedUnitEnum.IONCONCENTRATIONUNIT = { type: 3, value: "IONCONCENTRATIONUNIT" }; + IfcDerivedUnitEnum.LUMINOUSINTENSITYDISTRIBUTIONUNIT = { type: 3, value: "LUMINOUSINTENSITYDISTRIBUTIONUNIT" }; + IfcDerivedUnitEnum.MASSPERLENGTHUNIT = { type: 3, value: "MASSPERLENGTHUNIT" }; + IfcDerivedUnitEnum.MODULUSOFLINEARSUBGRADEREACTIONUNIT = { type: 3, value: "MODULUSOFLINEARSUBGRADEREACTIONUNIT" }; + IfcDerivedUnitEnum.MODULUSOFROTATIONALSUBGRADEREACTIONUNIT = { type: 3, value: "MODULUSOFROTATIONALSUBGRADEREACTIONUNIT" }; + IfcDerivedUnitEnum.PHUNIT = { type: 3, value: "PHUNIT" }; + IfcDerivedUnitEnum.ROTATIONALMASSUNIT = { type: 3, value: "ROTATIONALMASSUNIT" }; + IfcDerivedUnitEnum.SECTIONAREAINTEGRALUNIT = { type: 3, value: "SECTIONAREAINTEGRALUNIT" }; + IfcDerivedUnitEnum.SECTIONMODULUSUNIT = { type: 3, value: "SECTIONMODULUSUNIT" }; + IfcDerivedUnitEnum.SOUNDPOWERLEVELUNIT = { type: 3, value: "SOUNDPOWERLEVELUNIT" }; + IfcDerivedUnitEnum.SOUNDPOWERUNIT = { type: 3, value: "SOUNDPOWERUNIT" }; + IfcDerivedUnitEnum.SOUNDPRESSURELEVELUNIT = { type: 3, value: "SOUNDPRESSURELEVELUNIT" }; + IfcDerivedUnitEnum.SOUNDPRESSUREUNIT = { type: 3, value: "SOUNDPRESSUREUNIT" }; + IfcDerivedUnitEnum.TEMPERATUREGRADIENTUNIT = { type: 3, value: "TEMPERATUREGRADIENTUNIT" }; + IfcDerivedUnitEnum.TEMPERATURERATEOFCHANGEUNIT = { type: 3, value: "TEMPERATURERATEOFCHANGEUNIT" }; + IfcDerivedUnitEnum.THERMALEXPANSIONCOEFFICIENTUNIT = { type: 3, value: "THERMALEXPANSIONCOEFFICIENTUNIT" }; + IfcDerivedUnitEnum.WARPINGCONSTANTUNIT = { type: 3, value: "WARPINGCONSTANTUNIT" }; + IfcDerivedUnitEnum.WARPINGMOMENTUNIT = { type: 3, value: "WARPINGMOMENTUNIT" }; + IfcDerivedUnitEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IFC42.IfcDerivedUnitEnum = IfcDerivedUnitEnum; + class IfcDirectionSenseEnum { + } + IfcDirectionSenseEnum.POSITIVE = { type: 3, value: "POSITIVE" }; + IfcDirectionSenseEnum.NEGATIVE = { type: 3, value: "NEGATIVE" }; + IFC42.IfcDirectionSenseEnum = IfcDirectionSenseEnum; + class IfcDiscreteAccessoryTypeEnum { + } + IfcDiscreteAccessoryTypeEnum.ANCHORPLATE = { type: 3, value: "ANCHORPLATE" }; + IfcDiscreteAccessoryTypeEnum.BRACKET = { type: 3, value: "BRACKET" }; + IfcDiscreteAccessoryTypeEnum.SHOE = { type: 3, value: "SHOE" }; + IfcDiscreteAccessoryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDiscreteAccessoryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcDiscreteAccessoryTypeEnum = IfcDiscreteAccessoryTypeEnum; + class IfcDistributionChamberElementTypeEnum { + } + IfcDistributionChamberElementTypeEnum.FORMEDDUCT = { type: 3, value: "FORMEDDUCT" }; + IfcDistributionChamberElementTypeEnum.INSPECTIONCHAMBER = { type: 3, value: "INSPECTIONCHAMBER" }; + IfcDistributionChamberElementTypeEnum.INSPECTIONPIT = { type: 3, value: "INSPECTIONPIT" }; + IfcDistributionChamberElementTypeEnum.MANHOLE = { type: 3, value: "MANHOLE" }; + IfcDistributionChamberElementTypeEnum.METERCHAMBER = { type: 3, value: "METERCHAMBER" }; + IfcDistributionChamberElementTypeEnum.SUMP = { type: 3, value: "SUMP" }; + IfcDistributionChamberElementTypeEnum.TRENCH = { type: 3, value: "TRENCH" }; + IfcDistributionChamberElementTypeEnum.VALVECHAMBER = { type: 3, value: "VALVECHAMBER" }; + IfcDistributionChamberElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDistributionChamberElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcDistributionChamberElementTypeEnum = IfcDistributionChamberElementTypeEnum; + class IfcDistributionPortTypeEnum { + } + IfcDistributionPortTypeEnum.CABLE = { type: 3, value: "CABLE" }; + IfcDistributionPortTypeEnum.CABLECARRIER = { type: 3, value: "CABLECARRIER" }; + IfcDistributionPortTypeEnum.DUCT = { type: 3, value: "DUCT" }; + IfcDistributionPortTypeEnum.PIPE = { type: 3, value: "PIPE" }; + IfcDistributionPortTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDistributionPortTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcDistributionPortTypeEnum = IfcDistributionPortTypeEnum; + class IfcDistributionSystemEnum { + } + IfcDistributionSystemEnum.AIRCONDITIONING = { type: 3, value: "AIRCONDITIONING" }; + IfcDistributionSystemEnum.AUDIOVISUAL = { type: 3, value: "AUDIOVISUAL" }; + IfcDistributionSystemEnum.CHEMICAL = { type: 3, value: "CHEMICAL" }; + IfcDistributionSystemEnum.CHILLEDWATER = { type: 3, value: "CHILLEDWATER" }; + IfcDistributionSystemEnum.COMMUNICATION = { type: 3, value: "COMMUNICATION" }; + IfcDistributionSystemEnum.COMPRESSEDAIR = { type: 3, value: "COMPRESSEDAIR" }; + IfcDistributionSystemEnum.CONDENSERWATER = { type: 3, value: "CONDENSERWATER" }; + IfcDistributionSystemEnum.CONTROL = { type: 3, value: "CONTROL" }; + IfcDistributionSystemEnum.CONVEYING = { type: 3, value: "CONVEYING" }; + IfcDistributionSystemEnum.DATA = { type: 3, value: "DATA" }; + IfcDistributionSystemEnum.DISPOSAL = { type: 3, value: "DISPOSAL" }; + IfcDistributionSystemEnum.DOMESTICCOLDWATER = { type: 3, value: "DOMESTICCOLDWATER" }; + IfcDistributionSystemEnum.DOMESTICHOTWATER = { type: 3, value: "DOMESTICHOTWATER" }; + IfcDistributionSystemEnum.DRAINAGE = { type: 3, value: "DRAINAGE" }; + IfcDistributionSystemEnum.EARTHING = { type: 3, value: "EARTHING" }; + IfcDistributionSystemEnum.ELECTRICAL = { type: 3, value: "ELECTRICAL" }; + IfcDistributionSystemEnum.ELECTROACOUSTIC = { type: 3, value: "ELECTROACOUSTIC" }; + IfcDistributionSystemEnum.EXHAUST = { type: 3, value: "EXHAUST" }; + IfcDistributionSystemEnum.FIREPROTECTION = { type: 3, value: "FIREPROTECTION" }; + IfcDistributionSystemEnum.FUEL = { type: 3, value: "FUEL" }; + IfcDistributionSystemEnum.GAS = { type: 3, value: "GAS" }; + IfcDistributionSystemEnum.HAZARDOUS = { type: 3, value: "HAZARDOUS" }; + IfcDistributionSystemEnum.HEATING = { type: 3, value: "HEATING" }; + IfcDistributionSystemEnum.LIGHTING = { type: 3, value: "LIGHTING" }; + IfcDistributionSystemEnum.LIGHTNINGPROTECTION = { type: 3, value: "LIGHTNINGPROTECTION" }; + IfcDistributionSystemEnum.MUNICIPALSOLIDWASTE = { type: 3, value: "MUNICIPALSOLIDWASTE" }; + IfcDistributionSystemEnum.OIL = { type: 3, value: "OIL" }; + IfcDistributionSystemEnum.OPERATIONAL = { type: 3, value: "OPERATIONAL" }; + IfcDistributionSystemEnum.POWERGENERATION = { type: 3, value: "POWERGENERATION" }; + IfcDistributionSystemEnum.RAINWATER = { type: 3, value: "RAINWATER" }; + IfcDistributionSystemEnum.REFRIGERATION = { type: 3, value: "REFRIGERATION" }; + IfcDistributionSystemEnum.SECURITY = { type: 3, value: "SECURITY" }; + IfcDistributionSystemEnum.SEWAGE = { type: 3, value: "SEWAGE" }; + IfcDistributionSystemEnum.SIGNAL = { type: 3, value: "SIGNAL" }; + IfcDistributionSystemEnum.STORMWATER = { type: 3, value: "STORMWATER" }; + IfcDistributionSystemEnum.TELEPHONE = { type: 3, value: "TELEPHONE" }; + IfcDistributionSystemEnum.TV = { type: 3, value: "TV" }; + IfcDistributionSystemEnum.VACUUM = { type: 3, value: "VACUUM" }; + IfcDistributionSystemEnum.VENT = { type: 3, value: "VENT" }; + IfcDistributionSystemEnum.VENTILATION = { type: 3, value: "VENTILATION" }; + IfcDistributionSystemEnum.WASTEWATER = { type: 3, value: "WASTEWATER" }; + IfcDistributionSystemEnum.WATERSUPPLY = { type: 3, value: "WATERSUPPLY" }; + IfcDistributionSystemEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDistributionSystemEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcDistributionSystemEnum = IfcDistributionSystemEnum; + class IfcDocumentConfidentialityEnum { + } + IfcDocumentConfidentialityEnum.PUBLIC = { type: 3, value: "PUBLIC" }; + IfcDocumentConfidentialityEnum.RESTRICTED = { type: 3, value: "RESTRICTED" }; + IfcDocumentConfidentialityEnum.CONFIDENTIAL = { type: 3, value: "CONFIDENTIAL" }; + IfcDocumentConfidentialityEnum.PERSONAL = { type: 3, value: "PERSONAL" }; + IfcDocumentConfidentialityEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDocumentConfidentialityEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcDocumentConfidentialityEnum = IfcDocumentConfidentialityEnum; + class IfcDocumentStatusEnum { + } + IfcDocumentStatusEnum.DRAFT = { type: 3, value: "DRAFT" }; + IfcDocumentStatusEnum.FINALDRAFT = { type: 3, value: "FINALDRAFT" }; + IfcDocumentStatusEnum.FINAL = { type: 3, value: "FINAL" }; + IfcDocumentStatusEnum.REVISION = { type: 3, value: "REVISION" }; + IfcDocumentStatusEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcDocumentStatusEnum = IfcDocumentStatusEnum; + class IfcDoorPanelOperationEnum { + } + IfcDoorPanelOperationEnum.SWINGING = { type: 3, value: "SWINGING" }; + IfcDoorPanelOperationEnum.DOUBLE_ACTING = { type: 3, value: "DOUBLE_ACTING" }; + IfcDoorPanelOperationEnum.SLIDING = { type: 3, value: "SLIDING" }; + IfcDoorPanelOperationEnum.FOLDING = { type: 3, value: "FOLDING" }; + IfcDoorPanelOperationEnum.REVOLVING = { type: 3, value: "REVOLVING" }; + IfcDoorPanelOperationEnum.ROLLINGUP = { type: 3, value: "ROLLINGUP" }; + IfcDoorPanelOperationEnum.FIXEDPANEL = { type: 3, value: "FIXEDPANEL" }; + IfcDoorPanelOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDoorPanelOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcDoorPanelOperationEnum = IfcDoorPanelOperationEnum; + class IfcDoorPanelPositionEnum { + } + IfcDoorPanelPositionEnum.LEFT = { type: 3, value: "LEFT" }; + IfcDoorPanelPositionEnum.MIDDLE = { type: 3, value: "MIDDLE" }; + IfcDoorPanelPositionEnum.RIGHT = { type: 3, value: "RIGHT" }; + IfcDoorPanelPositionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcDoorPanelPositionEnum = IfcDoorPanelPositionEnum; + class IfcDoorStyleConstructionEnum { + } + IfcDoorStyleConstructionEnum.ALUMINIUM = { type: 3, value: "ALUMINIUM" }; + IfcDoorStyleConstructionEnum.HIGH_GRADE_STEEL = { type: 3, value: "HIGH_GRADE_STEEL" }; + IfcDoorStyleConstructionEnum.STEEL = { type: 3, value: "STEEL" }; + IfcDoorStyleConstructionEnum.WOOD = { type: 3, value: "WOOD" }; + IfcDoorStyleConstructionEnum.ALUMINIUM_WOOD = { type: 3, value: "ALUMINIUM_WOOD" }; + IfcDoorStyleConstructionEnum.ALUMINIUM_PLASTIC = { type: 3, value: "ALUMINIUM_PLASTIC" }; + IfcDoorStyleConstructionEnum.PLASTIC = { type: 3, value: "PLASTIC" }; + IfcDoorStyleConstructionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDoorStyleConstructionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcDoorStyleConstructionEnum = IfcDoorStyleConstructionEnum; + class IfcDoorStyleOperationEnum { + } + IfcDoorStyleOperationEnum.SINGLE_SWING_LEFT = { type: 3, value: "SINGLE_SWING_LEFT" }; + IfcDoorStyleOperationEnum.SINGLE_SWING_RIGHT = { type: 3, value: "SINGLE_SWING_RIGHT" }; + IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING" }; + IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT" }; + IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT" }; + IfcDoorStyleOperationEnum.DOUBLE_SWING_LEFT = { type: 3, value: "DOUBLE_SWING_LEFT" }; + IfcDoorStyleOperationEnum.DOUBLE_SWING_RIGHT = { type: 3, value: "DOUBLE_SWING_RIGHT" }; + IfcDoorStyleOperationEnum.DOUBLE_DOOR_DOUBLE_SWING = { type: 3, value: "DOUBLE_DOOR_DOUBLE_SWING" }; + IfcDoorStyleOperationEnum.SLIDING_TO_LEFT = { type: 3, value: "SLIDING_TO_LEFT" }; + IfcDoorStyleOperationEnum.SLIDING_TO_RIGHT = { type: 3, value: "SLIDING_TO_RIGHT" }; + IfcDoorStyleOperationEnum.DOUBLE_DOOR_SLIDING = { type: 3, value: "DOUBLE_DOOR_SLIDING" }; + IfcDoorStyleOperationEnum.FOLDING_TO_LEFT = { type: 3, value: "FOLDING_TO_LEFT" }; + IfcDoorStyleOperationEnum.FOLDING_TO_RIGHT = { type: 3, value: "FOLDING_TO_RIGHT" }; + IfcDoorStyleOperationEnum.DOUBLE_DOOR_FOLDING = { type: 3, value: "DOUBLE_DOOR_FOLDING" }; + IfcDoorStyleOperationEnum.REVOLVING = { type: 3, value: "REVOLVING" }; + IfcDoorStyleOperationEnum.ROLLINGUP = { type: 3, value: "ROLLINGUP" }; + IfcDoorStyleOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDoorStyleOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcDoorStyleOperationEnum = IfcDoorStyleOperationEnum; + class IfcDoorTypeEnum { + } + IfcDoorTypeEnum.DOOR = { type: 3, value: "DOOR" }; + IfcDoorTypeEnum.GATE = { type: 3, value: "GATE" }; + IfcDoorTypeEnum.TRAPDOOR = { type: 3, value: "TRAPDOOR" }; + IfcDoorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDoorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcDoorTypeEnum = IfcDoorTypeEnum; + class IfcDoorTypeOperationEnum { + } + IfcDoorTypeOperationEnum.SINGLE_SWING_LEFT = { type: 3, value: "SINGLE_SWING_LEFT" }; + IfcDoorTypeOperationEnum.SINGLE_SWING_RIGHT = { type: 3, value: "SINGLE_SWING_RIGHT" }; + IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING" }; + IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT" }; + IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT" }; + IfcDoorTypeOperationEnum.DOUBLE_SWING_LEFT = { type: 3, value: "DOUBLE_SWING_LEFT" }; + IfcDoorTypeOperationEnum.DOUBLE_SWING_RIGHT = { type: 3, value: "DOUBLE_SWING_RIGHT" }; + IfcDoorTypeOperationEnum.DOUBLE_DOOR_DOUBLE_SWING = { type: 3, value: "DOUBLE_DOOR_DOUBLE_SWING" }; + IfcDoorTypeOperationEnum.SLIDING_TO_LEFT = { type: 3, value: "SLIDING_TO_LEFT" }; + IfcDoorTypeOperationEnum.SLIDING_TO_RIGHT = { type: 3, value: "SLIDING_TO_RIGHT" }; + IfcDoorTypeOperationEnum.DOUBLE_DOOR_SLIDING = { type: 3, value: "DOUBLE_DOOR_SLIDING" }; + IfcDoorTypeOperationEnum.FOLDING_TO_LEFT = { type: 3, value: "FOLDING_TO_LEFT" }; + IfcDoorTypeOperationEnum.FOLDING_TO_RIGHT = { type: 3, value: "FOLDING_TO_RIGHT" }; + IfcDoorTypeOperationEnum.DOUBLE_DOOR_FOLDING = { type: 3, value: "DOUBLE_DOOR_FOLDING" }; + IfcDoorTypeOperationEnum.REVOLVING = { type: 3, value: "REVOLVING" }; + IfcDoorTypeOperationEnum.ROLLINGUP = { type: 3, value: "ROLLINGUP" }; + IfcDoorTypeOperationEnum.SWING_FIXED_LEFT = { type: 3, value: "SWING_FIXED_LEFT" }; + IfcDoorTypeOperationEnum.SWING_FIXED_RIGHT = { type: 3, value: "SWING_FIXED_RIGHT" }; + IfcDoorTypeOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDoorTypeOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcDoorTypeOperationEnum = IfcDoorTypeOperationEnum; + class IfcDuctFittingTypeEnum { + } + IfcDuctFittingTypeEnum.BEND = { type: 3, value: "BEND" }; + IfcDuctFittingTypeEnum.CONNECTOR = { type: 3, value: "CONNECTOR" }; + IfcDuctFittingTypeEnum.ENTRY = { type: 3, value: "ENTRY" }; + IfcDuctFittingTypeEnum.EXIT = { type: 3, value: "EXIT" }; + IfcDuctFittingTypeEnum.JUNCTION = { type: 3, value: "JUNCTION" }; + IfcDuctFittingTypeEnum.OBSTRUCTION = { type: 3, value: "OBSTRUCTION" }; + IfcDuctFittingTypeEnum.TRANSITION = { type: 3, value: "TRANSITION" }; + IfcDuctFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDuctFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcDuctFittingTypeEnum = IfcDuctFittingTypeEnum; + class IfcDuctSegmentTypeEnum { + } + IfcDuctSegmentTypeEnum.RIGIDSEGMENT = { type: 3, value: "RIGIDSEGMENT" }; + IfcDuctSegmentTypeEnum.FLEXIBLESEGMENT = { type: 3, value: "FLEXIBLESEGMENT" }; + IfcDuctSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDuctSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcDuctSegmentTypeEnum = IfcDuctSegmentTypeEnum; + class IfcDuctSilencerTypeEnum { + } + IfcDuctSilencerTypeEnum.FLATOVAL = { type: 3, value: "FLATOVAL" }; + IfcDuctSilencerTypeEnum.RECTANGULAR = { type: 3, value: "RECTANGULAR" }; + IfcDuctSilencerTypeEnum.ROUND = { type: 3, value: "ROUND" }; + IfcDuctSilencerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDuctSilencerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcDuctSilencerTypeEnum = IfcDuctSilencerTypeEnum; + class IfcElectricApplianceTypeEnum { + } + IfcElectricApplianceTypeEnum.DISHWASHER = { type: 3, value: "DISHWASHER" }; + IfcElectricApplianceTypeEnum.ELECTRICCOOKER = { type: 3, value: "ELECTRICCOOKER" }; + IfcElectricApplianceTypeEnum.FREESTANDINGELECTRICHEATER = { type: 3, value: "FREESTANDINGELECTRICHEATER" }; + IfcElectricApplianceTypeEnum.FREESTANDINGFAN = { type: 3, value: "FREESTANDINGFAN" }; + IfcElectricApplianceTypeEnum.FREESTANDINGWATERHEATER = { type: 3, value: "FREESTANDINGWATERHEATER" }; + IfcElectricApplianceTypeEnum.FREESTANDINGWATERCOOLER = { type: 3, value: "FREESTANDINGWATERCOOLER" }; + IfcElectricApplianceTypeEnum.FREEZER = { type: 3, value: "FREEZER" }; + IfcElectricApplianceTypeEnum.FRIDGE_FREEZER = { type: 3, value: "FRIDGE_FREEZER" }; + IfcElectricApplianceTypeEnum.HANDDRYER = { type: 3, value: "HANDDRYER" }; + IfcElectricApplianceTypeEnum.KITCHENMACHINE = { type: 3, value: "KITCHENMACHINE" }; + IfcElectricApplianceTypeEnum.MICROWAVE = { type: 3, value: "MICROWAVE" }; + IfcElectricApplianceTypeEnum.PHOTOCOPIER = { type: 3, value: "PHOTOCOPIER" }; + IfcElectricApplianceTypeEnum.REFRIGERATOR = { type: 3, value: "REFRIGERATOR" }; + IfcElectricApplianceTypeEnum.TUMBLEDRYER = { type: 3, value: "TUMBLEDRYER" }; + IfcElectricApplianceTypeEnum.VENDINGMACHINE = { type: 3, value: "VENDINGMACHINE" }; + IfcElectricApplianceTypeEnum.WASHINGMACHINE = { type: 3, value: "WASHINGMACHINE" }; + IfcElectricApplianceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcElectricApplianceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcElectricApplianceTypeEnum = IfcElectricApplianceTypeEnum; + class IfcElectricDistributionBoardTypeEnum { + } + IfcElectricDistributionBoardTypeEnum.CONSUMERUNIT = { type: 3, value: "CONSUMERUNIT" }; + IfcElectricDistributionBoardTypeEnum.DISTRIBUTIONBOARD = { type: 3, value: "DISTRIBUTIONBOARD" }; + IfcElectricDistributionBoardTypeEnum.MOTORCONTROLCENTRE = { type: 3, value: "MOTORCONTROLCENTRE" }; + IfcElectricDistributionBoardTypeEnum.SWITCHBOARD = { type: 3, value: "SWITCHBOARD" }; + IfcElectricDistributionBoardTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcElectricDistributionBoardTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcElectricDistributionBoardTypeEnum = IfcElectricDistributionBoardTypeEnum; + class IfcElectricFlowStorageDeviceTypeEnum { + } + IfcElectricFlowStorageDeviceTypeEnum.BATTERY = { type: 3, value: "BATTERY" }; + IfcElectricFlowStorageDeviceTypeEnum.CAPACITORBANK = { type: 3, value: "CAPACITORBANK" }; + IfcElectricFlowStorageDeviceTypeEnum.HARMONICFILTER = { type: 3, value: "HARMONICFILTER" }; + IfcElectricFlowStorageDeviceTypeEnum.INDUCTORBANK = { type: 3, value: "INDUCTORBANK" }; + IfcElectricFlowStorageDeviceTypeEnum.UPS = { type: 3, value: "UPS" }; + IfcElectricFlowStorageDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcElectricFlowStorageDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcElectricFlowStorageDeviceTypeEnum = IfcElectricFlowStorageDeviceTypeEnum; + class IfcElectricGeneratorTypeEnum { + } + IfcElectricGeneratorTypeEnum.CHP = { type: 3, value: "CHP" }; + IfcElectricGeneratorTypeEnum.ENGINEGENERATOR = { type: 3, value: "ENGINEGENERATOR" }; + IfcElectricGeneratorTypeEnum.STANDALONE = { type: 3, value: "STANDALONE" }; + IfcElectricGeneratorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcElectricGeneratorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcElectricGeneratorTypeEnum = IfcElectricGeneratorTypeEnum; + class IfcElectricMotorTypeEnum { + } + IfcElectricMotorTypeEnum.DC = { type: 3, value: "DC" }; + IfcElectricMotorTypeEnum.INDUCTION = { type: 3, value: "INDUCTION" }; + IfcElectricMotorTypeEnum.POLYPHASE = { type: 3, value: "POLYPHASE" }; + IfcElectricMotorTypeEnum.RELUCTANCESYNCHRONOUS = { type: 3, value: "RELUCTANCESYNCHRONOUS" }; + IfcElectricMotorTypeEnum.SYNCHRONOUS = { type: 3, value: "SYNCHRONOUS" }; + IfcElectricMotorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcElectricMotorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcElectricMotorTypeEnum = IfcElectricMotorTypeEnum; + class IfcElectricTimeControlTypeEnum { + } + IfcElectricTimeControlTypeEnum.TIMECLOCK = { type: 3, value: "TIMECLOCK" }; + IfcElectricTimeControlTypeEnum.TIMEDELAY = { type: 3, value: "TIMEDELAY" }; + IfcElectricTimeControlTypeEnum.RELAY = { type: 3, value: "RELAY" }; + IfcElectricTimeControlTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcElectricTimeControlTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcElectricTimeControlTypeEnum = IfcElectricTimeControlTypeEnum; + class IfcElementAssemblyTypeEnum { + } + IfcElementAssemblyTypeEnum.ACCESSORY_ASSEMBLY = { type: 3, value: "ACCESSORY_ASSEMBLY" }; + IfcElementAssemblyTypeEnum.ARCH = { type: 3, value: "ARCH" }; + IfcElementAssemblyTypeEnum.BEAM_GRID = { type: 3, value: "BEAM_GRID" }; + IfcElementAssemblyTypeEnum.BRACED_FRAME = { type: 3, value: "BRACED_FRAME" }; + IfcElementAssemblyTypeEnum.GIRDER = { type: 3, value: "GIRDER" }; + IfcElementAssemblyTypeEnum.REINFORCEMENT_UNIT = { type: 3, value: "REINFORCEMENT_UNIT" }; + IfcElementAssemblyTypeEnum.RIGID_FRAME = { type: 3, value: "RIGID_FRAME" }; + IfcElementAssemblyTypeEnum.SLAB_FIELD = { type: 3, value: "SLAB_FIELD" }; + IfcElementAssemblyTypeEnum.TRUSS = { type: 3, value: "TRUSS" }; + IfcElementAssemblyTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcElementAssemblyTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcElementAssemblyTypeEnum = IfcElementAssemblyTypeEnum; + class IfcElementCompositionEnum { + } + IfcElementCompositionEnum.COMPLEX = { type: 3, value: "COMPLEX" }; + IfcElementCompositionEnum.ELEMENT = { type: 3, value: "ELEMENT" }; + IfcElementCompositionEnum.PARTIAL = { type: 3, value: "PARTIAL" }; + IFC42.IfcElementCompositionEnum = IfcElementCompositionEnum; + class IfcEngineTypeEnum { + } + IfcEngineTypeEnum.EXTERNALCOMBUSTION = { type: 3, value: "EXTERNALCOMBUSTION" }; + IfcEngineTypeEnum.INTERNALCOMBUSTION = { type: 3, value: "INTERNALCOMBUSTION" }; + IfcEngineTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcEngineTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcEngineTypeEnum = IfcEngineTypeEnum; + class IfcEvaporativeCoolerTypeEnum { + } + IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER" }; + IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER" }; + IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER" }; + IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER" }; + IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEAIRWASHER = { type: 3, value: "DIRECTEVAPORATIVEAIRWASHER" }; + IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEPACKAGEAIRCOOLER = { type: 3, value: "INDIRECTEVAPORATIVEPACKAGEAIRCOOLER" }; + IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEWETCOIL = { type: 3, value: "INDIRECTEVAPORATIVEWETCOIL" }; + IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER = { type: 3, value: "INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER" }; + IfcEvaporativeCoolerTypeEnum.INDIRECTDIRECTCOMBINATION = { type: 3, value: "INDIRECTDIRECTCOMBINATION" }; + IfcEvaporativeCoolerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcEvaporativeCoolerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcEvaporativeCoolerTypeEnum = IfcEvaporativeCoolerTypeEnum; + class IfcEvaporatorTypeEnum { + } + IfcEvaporatorTypeEnum.DIRECTEXPANSION = { type: 3, value: "DIRECTEXPANSION" }; + IfcEvaporatorTypeEnum.DIRECTEXPANSIONSHELLANDTUBE = { type: 3, value: "DIRECTEXPANSIONSHELLANDTUBE" }; + IfcEvaporatorTypeEnum.DIRECTEXPANSIONTUBEINTUBE = { type: 3, value: "DIRECTEXPANSIONTUBEINTUBE" }; + IfcEvaporatorTypeEnum.DIRECTEXPANSIONBRAZEDPLATE = { type: 3, value: "DIRECTEXPANSIONBRAZEDPLATE" }; + IfcEvaporatorTypeEnum.FLOODEDSHELLANDTUBE = { type: 3, value: "FLOODEDSHELLANDTUBE" }; + IfcEvaporatorTypeEnum.SHELLANDCOIL = { type: 3, value: "SHELLANDCOIL" }; + IfcEvaporatorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcEvaporatorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcEvaporatorTypeEnum = IfcEvaporatorTypeEnum; + class IfcEventTriggerTypeEnum { + } + IfcEventTriggerTypeEnum.EVENTRULE = { type: 3, value: "EVENTRULE" }; + IfcEventTriggerTypeEnum.EVENTMESSAGE = { type: 3, value: "EVENTMESSAGE" }; + IfcEventTriggerTypeEnum.EVENTTIME = { type: 3, value: "EVENTTIME" }; + IfcEventTriggerTypeEnum.EVENTCOMPLEX = { type: 3, value: "EVENTCOMPLEX" }; + IfcEventTriggerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcEventTriggerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcEventTriggerTypeEnum = IfcEventTriggerTypeEnum; + class IfcEventTypeEnum { + } + IfcEventTypeEnum.STARTEVENT = { type: 3, value: "STARTEVENT" }; + IfcEventTypeEnum.ENDEVENT = { type: 3, value: "ENDEVENT" }; + IfcEventTypeEnum.INTERMEDIATEEVENT = { type: 3, value: "INTERMEDIATEEVENT" }; + IfcEventTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcEventTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcEventTypeEnum = IfcEventTypeEnum; + class IfcExternalSpatialElementTypeEnum { + } + IfcExternalSpatialElementTypeEnum.EXTERNAL = { type: 3, value: "EXTERNAL" }; + IfcExternalSpatialElementTypeEnum.EXTERNAL_EARTH = { type: 3, value: "EXTERNAL_EARTH" }; + IfcExternalSpatialElementTypeEnum.EXTERNAL_WATER = { type: 3, value: "EXTERNAL_WATER" }; + IfcExternalSpatialElementTypeEnum.EXTERNAL_FIRE = { type: 3, value: "EXTERNAL_FIRE" }; + IfcExternalSpatialElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcExternalSpatialElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcExternalSpatialElementTypeEnum = IfcExternalSpatialElementTypeEnum; + class IfcFanTypeEnum { + } + IfcFanTypeEnum.CENTRIFUGALFORWARDCURVED = { type: 3, value: "CENTRIFUGALFORWARDCURVED" }; + IfcFanTypeEnum.CENTRIFUGALRADIAL = { type: 3, value: "CENTRIFUGALRADIAL" }; + IfcFanTypeEnum.CENTRIFUGALBACKWARDINCLINEDCURVED = { type: 3, value: "CENTRIFUGALBACKWARDINCLINEDCURVED" }; + IfcFanTypeEnum.CENTRIFUGALAIRFOIL = { type: 3, value: "CENTRIFUGALAIRFOIL" }; + IfcFanTypeEnum.TUBEAXIAL = { type: 3, value: "TUBEAXIAL" }; + IfcFanTypeEnum.VANEAXIAL = { type: 3, value: "VANEAXIAL" }; + IfcFanTypeEnum.PROPELLORAXIAL = { type: 3, value: "PROPELLORAXIAL" }; + IfcFanTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcFanTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcFanTypeEnum = IfcFanTypeEnum; + class IfcFastenerTypeEnum { + } + IfcFastenerTypeEnum.GLUE = { type: 3, value: "GLUE" }; + IfcFastenerTypeEnum.MORTAR = { type: 3, value: "MORTAR" }; + IfcFastenerTypeEnum.WELD = { type: 3, value: "WELD" }; + IfcFastenerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcFastenerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcFastenerTypeEnum = IfcFastenerTypeEnum; + class IfcFilterTypeEnum { + } + IfcFilterTypeEnum.AIRPARTICLEFILTER = { type: 3, value: "AIRPARTICLEFILTER" }; + IfcFilterTypeEnum.COMPRESSEDAIRFILTER = { type: 3, value: "COMPRESSEDAIRFILTER" }; + IfcFilterTypeEnum.ODORFILTER = { type: 3, value: "ODORFILTER" }; + IfcFilterTypeEnum.OILFILTER = { type: 3, value: "OILFILTER" }; + IfcFilterTypeEnum.STRAINER = { type: 3, value: "STRAINER" }; + IfcFilterTypeEnum.WATERFILTER = { type: 3, value: "WATERFILTER" }; + IfcFilterTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcFilterTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcFilterTypeEnum = IfcFilterTypeEnum; + class IfcFireSuppressionTerminalTypeEnum { + } + IfcFireSuppressionTerminalTypeEnum.BREECHINGINLET = { type: 3, value: "BREECHINGINLET" }; + IfcFireSuppressionTerminalTypeEnum.FIREHYDRANT = { type: 3, value: "FIREHYDRANT" }; + IfcFireSuppressionTerminalTypeEnum.HOSEREEL = { type: 3, value: "HOSEREEL" }; + IfcFireSuppressionTerminalTypeEnum.SPRINKLER = { type: 3, value: "SPRINKLER" }; + IfcFireSuppressionTerminalTypeEnum.SPRINKLERDEFLECTOR = { type: 3, value: "SPRINKLERDEFLECTOR" }; + IfcFireSuppressionTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcFireSuppressionTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcFireSuppressionTerminalTypeEnum = IfcFireSuppressionTerminalTypeEnum; + class IfcFlowDirectionEnum { + } + IfcFlowDirectionEnum.SOURCE = { type: 3, value: "SOURCE" }; + IfcFlowDirectionEnum.SINK = { type: 3, value: "SINK" }; + IfcFlowDirectionEnum.SOURCEANDSINK = { type: 3, value: "SOURCEANDSINK" }; + IfcFlowDirectionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcFlowDirectionEnum = IfcFlowDirectionEnum; + class IfcFlowInstrumentTypeEnum { + } + IfcFlowInstrumentTypeEnum.PRESSUREGAUGE = { type: 3, value: "PRESSUREGAUGE" }; + IfcFlowInstrumentTypeEnum.THERMOMETER = { type: 3, value: "THERMOMETER" }; + IfcFlowInstrumentTypeEnum.AMMETER = { type: 3, value: "AMMETER" }; + IfcFlowInstrumentTypeEnum.FREQUENCYMETER = { type: 3, value: "FREQUENCYMETER" }; + IfcFlowInstrumentTypeEnum.POWERFACTORMETER = { type: 3, value: "POWERFACTORMETER" }; + IfcFlowInstrumentTypeEnum.PHASEANGLEMETER = { type: 3, value: "PHASEANGLEMETER" }; + IfcFlowInstrumentTypeEnum.VOLTMETER_PEAK = { type: 3, value: "VOLTMETER_PEAK" }; + IfcFlowInstrumentTypeEnum.VOLTMETER_RMS = { type: 3, value: "VOLTMETER_RMS" }; + IfcFlowInstrumentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcFlowInstrumentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcFlowInstrumentTypeEnum = IfcFlowInstrumentTypeEnum; + class IfcFlowMeterTypeEnum { + } + IfcFlowMeterTypeEnum.ENERGYMETER = { type: 3, value: "ENERGYMETER" }; + IfcFlowMeterTypeEnum.GASMETER = { type: 3, value: "GASMETER" }; + IfcFlowMeterTypeEnum.OILMETER = { type: 3, value: "OILMETER" }; + IfcFlowMeterTypeEnum.WATERMETER = { type: 3, value: "WATERMETER" }; + IfcFlowMeterTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcFlowMeterTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcFlowMeterTypeEnum = IfcFlowMeterTypeEnum; + class IfcFootingTypeEnum { + } + IfcFootingTypeEnum.CAISSON_FOUNDATION = { type: 3, value: "CAISSON_FOUNDATION" }; + IfcFootingTypeEnum.FOOTING_BEAM = { type: 3, value: "FOOTING_BEAM" }; + IfcFootingTypeEnum.PAD_FOOTING = { type: 3, value: "PAD_FOOTING" }; + IfcFootingTypeEnum.PILE_CAP = { type: 3, value: "PILE_CAP" }; + IfcFootingTypeEnum.STRIP_FOOTING = { type: 3, value: "STRIP_FOOTING" }; + IfcFootingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcFootingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcFootingTypeEnum = IfcFootingTypeEnum; + class IfcFurnitureTypeEnum { + } + IfcFurnitureTypeEnum.CHAIR = { type: 3, value: "CHAIR" }; + IfcFurnitureTypeEnum.TABLE = { type: 3, value: "TABLE" }; + IfcFurnitureTypeEnum.DESK = { type: 3, value: "DESK" }; + IfcFurnitureTypeEnum.BED = { type: 3, value: "BED" }; + IfcFurnitureTypeEnum.FILECABINET = { type: 3, value: "FILECABINET" }; + IfcFurnitureTypeEnum.SHELF = { type: 3, value: "SHELF" }; + IfcFurnitureTypeEnum.SOFA = { type: 3, value: "SOFA" }; + IfcFurnitureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcFurnitureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcFurnitureTypeEnum = IfcFurnitureTypeEnum; + class IfcGeographicElementTypeEnum { + } + IfcGeographicElementTypeEnum.TERRAIN = { type: 3, value: "TERRAIN" }; + IfcGeographicElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcGeographicElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcGeographicElementTypeEnum = IfcGeographicElementTypeEnum; + class IfcGeometricProjectionEnum { + } + IfcGeometricProjectionEnum.GRAPH_VIEW = { type: 3, value: "GRAPH_VIEW" }; + IfcGeometricProjectionEnum.SKETCH_VIEW = { type: 3, value: "SKETCH_VIEW" }; + IfcGeometricProjectionEnum.MODEL_VIEW = { type: 3, value: "MODEL_VIEW" }; + IfcGeometricProjectionEnum.PLAN_VIEW = { type: 3, value: "PLAN_VIEW" }; + IfcGeometricProjectionEnum.REFLECTED_PLAN_VIEW = { type: 3, value: "REFLECTED_PLAN_VIEW" }; + IfcGeometricProjectionEnum.SECTION_VIEW = { type: 3, value: "SECTION_VIEW" }; + IfcGeometricProjectionEnum.ELEVATION_VIEW = { type: 3, value: "ELEVATION_VIEW" }; + IfcGeometricProjectionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcGeometricProjectionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcGeometricProjectionEnum = IfcGeometricProjectionEnum; + class IfcGlobalOrLocalEnum { + } + IfcGlobalOrLocalEnum.GLOBAL_COORDS = { type: 3, value: "GLOBAL_COORDS" }; + IfcGlobalOrLocalEnum.LOCAL_COORDS = { type: 3, value: "LOCAL_COORDS" }; + IFC42.IfcGlobalOrLocalEnum = IfcGlobalOrLocalEnum; + class IfcGridTypeEnum { + } + IfcGridTypeEnum.RECTANGULAR = { type: 3, value: "RECTANGULAR" }; + IfcGridTypeEnum.RADIAL = { type: 3, value: "RADIAL" }; + IfcGridTypeEnum.TRIANGULAR = { type: 3, value: "TRIANGULAR" }; + IfcGridTypeEnum.IRREGULAR = { type: 3, value: "IRREGULAR" }; + IfcGridTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcGridTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcGridTypeEnum = IfcGridTypeEnum; + class IfcHeatExchangerTypeEnum { + } + IfcHeatExchangerTypeEnum.PLATE = { type: 3, value: "PLATE" }; + IfcHeatExchangerTypeEnum.SHELLANDTUBE = { type: 3, value: "SHELLANDTUBE" }; + IfcHeatExchangerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcHeatExchangerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcHeatExchangerTypeEnum = IfcHeatExchangerTypeEnum; + class IfcHumidifierTypeEnum { + } + IfcHumidifierTypeEnum.STEAMINJECTION = { type: 3, value: "STEAMINJECTION" }; + IfcHumidifierTypeEnum.ADIABATICAIRWASHER = { type: 3, value: "ADIABATICAIRWASHER" }; + IfcHumidifierTypeEnum.ADIABATICPAN = { type: 3, value: "ADIABATICPAN" }; + IfcHumidifierTypeEnum.ADIABATICWETTEDELEMENT = { type: 3, value: "ADIABATICWETTEDELEMENT" }; + IfcHumidifierTypeEnum.ADIABATICATOMIZING = { type: 3, value: "ADIABATICATOMIZING" }; + IfcHumidifierTypeEnum.ADIABATICULTRASONIC = { type: 3, value: "ADIABATICULTRASONIC" }; + IfcHumidifierTypeEnum.ADIABATICRIGIDMEDIA = { type: 3, value: "ADIABATICRIGIDMEDIA" }; + IfcHumidifierTypeEnum.ADIABATICCOMPRESSEDAIRNOZZLE = { type: 3, value: "ADIABATICCOMPRESSEDAIRNOZZLE" }; + IfcHumidifierTypeEnum.ASSISTEDELECTRIC = { type: 3, value: "ASSISTEDELECTRIC" }; + IfcHumidifierTypeEnum.ASSISTEDNATURALGAS = { type: 3, value: "ASSISTEDNATURALGAS" }; + IfcHumidifierTypeEnum.ASSISTEDPROPANE = { type: 3, value: "ASSISTEDPROPANE" }; + IfcHumidifierTypeEnum.ASSISTEDBUTANE = { type: 3, value: "ASSISTEDBUTANE" }; + IfcHumidifierTypeEnum.ASSISTEDSTEAM = { type: 3, value: "ASSISTEDSTEAM" }; + IfcHumidifierTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcHumidifierTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcHumidifierTypeEnum = IfcHumidifierTypeEnum; + class IfcInterceptorTypeEnum { + } + IfcInterceptorTypeEnum.CYCLONIC = { type: 3, value: "CYCLONIC" }; + IfcInterceptorTypeEnum.GREASE = { type: 3, value: "GREASE" }; + IfcInterceptorTypeEnum.OIL = { type: 3, value: "OIL" }; + IfcInterceptorTypeEnum.PETROL = { type: 3, value: "PETROL" }; + IfcInterceptorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcInterceptorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcInterceptorTypeEnum = IfcInterceptorTypeEnum; + class IfcInternalOrExternalEnum { + } + IfcInternalOrExternalEnum.INTERNAL = { type: 3, value: "INTERNAL" }; + IfcInternalOrExternalEnum.EXTERNAL = { type: 3, value: "EXTERNAL" }; + IfcInternalOrExternalEnum.EXTERNAL_EARTH = { type: 3, value: "EXTERNAL_EARTH" }; + IfcInternalOrExternalEnum.EXTERNAL_WATER = { type: 3, value: "EXTERNAL_WATER" }; + IfcInternalOrExternalEnum.EXTERNAL_FIRE = { type: 3, value: "EXTERNAL_FIRE" }; + IfcInternalOrExternalEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcInternalOrExternalEnum = IfcInternalOrExternalEnum; + class IfcInventoryTypeEnum { + } + IfcInventoryTypeEnum.ASSETINVENTORY = { type: 3, value: "ASSETINVENTORY" }; + IfcInventoryTypeEnum.SPACEINVENTORY = { type: 3, value: "SPACEINVENTORY" }; + IfcInventoryTypeEnum.FURNITUREINVENTORY = { type: 3, value: "FURNITUREINVENTORY" }; + IfcInventoryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcInventoryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcInventoryTypeEnum = IfcInventoryTypeEnum; + class IfcJunctionBoxTypeEnum { + } + IfcJunctionBoxTypeEnum.DATA = { type: 3, value: "DATA" }; + IfcJunctionBoxTypeEnum.POWER = { type: 3, value: "POWER" }; + IfcJunctionBoxTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcJunctionBoxTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcJunctionBoxTypeEnum = IfcJunctionBoxTypeEnum; + class IfcKnotType { + } + IfcKnotType.UNIFORM_KNOTS = { type: 3, value: "UNIFORM_KNOTS" }; + IfcKnotType.QUASI_UNIFORM_KNOTS = { type: 3, value: "QUASI_UNIFORM_KNOTS" }; + IfcKnotType.PIECEWISE_BEZIER_KNOTS = { type: 3, value: "PIECEWISE_BEZIER_KNOTS" }; + IfcKnotType.UNSPECIFIED = { type: 3, value: "UNSPECIFIED" }; + IFC42.IfcKnotType = IfcKnotType; + class IfcLaborResourceTypeEnum { + } + IfcLaborResourceTypeEnum.ADMINISTRATION = { type: 3, value: "ADMINISTRATION" }; + IfcLaborResourceTypeEnum.CARPENTRY = { type: 3, value: "CARPENTRY" }; + IfcLaborResourceTypeEnum.CLEANING = { type: 3, value: "CLEANING" }; + IfcLaborResourceTypeEnum.CONCRETE = { type: 3, value: "CONCRETE" }; + IfcLaborResourceTypeEnum.DRYWALL = { type: 3, value: "DRYWALL" }; + IfcLaborResourceTypeEnum.ELECTRIC = { type: 3, value: "ELECTRIC" }; + IfcLaborResourceTypeEnum.FINISHING = { type: 3, value: "FINISHING" }; + IfcLaborResourceTypeEnum.FLOORING = { type: 3, value: "FLOORING" }; + IfcLaborResourceTypeEnum.GENERAL = { type: 3, value: "GENERAL" }; + IfcLaborResourceTypeEnum.HVAC = { type: 3, value: "HVAC" }; + IfcLaborResourceTypeEnum.LANDSCAPING = { type: 3, value: "LANDSCAPING" }; + IfcLaborResourceTypeEnum.MASONRY = { type: 3, value: "MASONRY" }; + IfcLaborResourceTypeEnum.PAINTING = { type: 3, value: "PAINTING" }; + IfcLaborResourceTypeEnum.PAVING = { type: 3, value: "PAVING" }; + IfcLaborResourceTypeEnum.PLUMBING = { type: 3, value: "PLUMBING" }; + IfcLaborResourceTypeEnum.ROOFING = { type: 3, value: "ROOFING" }; + IfcLaborResourceTypeEnum.SITEGRADING = { type: 3, value: "SITEGRADING" }; + IfcLaborResourceTypeEnum.STEELWORK = { type: 3, value: "STEELWORK" }; + IfcLaborResourceTypeEnum.SURVEYING = { type: 3, value: "SURVEYING" }; + IfcLaborResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcLaborResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcLaborResourceTypeEnum = IfcLaborResourceTypeEnum; + class IfcLampTypeEnum { + } + IfcLampTypeEnum.COMPACTFLUORESCENT = { type: 3, value: "COMPACTFLUORESCENT" }; + IfcLampTypeEnum.FLUORESCENT = { type: 3, value: "FLUORESCENT" }; + IfcLampTypeEnum.HALOGEN = { type: 3, value: "HALOGEN" }; + IfcLampTypeEnum.HIGHPRESSUREMERCURY = { type: 3, value: "HIGHPRESSUREMERCURY" }; + IfcLampTypeEnum.HIGHPRESSURESODIUM = { type: 3, value: "HIGHPRESSURESODIUM" }; + IfcLampTypeEnum.LED = { type: 3, value: "LED" }; + IfcLampTypeEnum.METALHALIDE = { type: 3, value: "METALHALIDE" }; + IfcLampTypeEnum.OLED = { type: 3, value: "OLED" }; + IfcLampTypeEnum.TUNGSTENFILAMENT = { type: 3, value: "TUNGSTENFILAMENT" }; + IfcLampTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcLampTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcLampTypeEnum = IfcLampTypeEnum; + class IfcLayerSetDirectionEnum { + } + IfcLayerSetDirectionEnum.AXIS1 = { type: 3, value: "AXIS1" }; + IfcLayerSetDirectionEnum.AXIS2 = { type: 3, value: "AXIS2" }; + IfcLayerSetDirectionEnum.AXIS3 = { type: 3, value: "AXIS3" }; + IFC42.IfcLayerSetDirectionEnum = IfcLayerSetDirectionEnum; + class IfcLightDistributionCurveEnum { + } + IfcLightDistributionCurveEnum.TYPE_A = { type: 3, value: "TYPE_A" }; + IfcLightDistributionCurveEnum.TYPE_B = { type: 3, value: "TYPE_B" }; + IfcLightDistributionCurveEnum.TYPE_C = { type: 3, value: "TYPE_C" }; + IfcLightDistributionCurveEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcLightDistributionCurveEnum = IfcLightDistributionCurveEnum; + class IfcLightEmissionSourceEnum { + } + IfcLightEmissionSourceEnum.COMPACTFLUORESCENT = { type: 3, value: "COMPACTFLUORESCENT" }; + IfcLightEmissionSourceEnum.FLUORESCENT = { type: 3, value: "FLUORESCENT" }; + IfcLightEmissionSourceEnum.HIGHPRESSUREMERCURY = { type: 3, value: "HIGHPRESSUREMERCURY" }; + IfcLightEmissionSourceEnum.HIGHPRESSURESODIUM = { type: 3, value: "HIGHPRESSURESODIUM" }; + IfcLightEmissionSourceEnum.LIGHTEMITTINGDIODE = { type: 3, value: "LIGHTEMITTINGDIODE" }; + IfcLightEmissionSourceEnum.LOWPRESSURESODIUM = { type: 3, value: "LOWPRESSURESODIUM" }; + IfcLightEmissionSourceEnum.LOWVOLTAGEHALOGEN = { type: 3, value: "LOWVOLTAGEHALOGEN" }; + IfcLightEmissionSourceEnum.MAINVOLTAGEHALOGEN = { type: 3, value: "MAINVOLTAGEHALOGEN" }; + IfcLightEmissionSourceEnum.METALHALIDE = { type: 3, value: "METALHALIDE" }; + IfcLightEmissionSourceEnum.TUNGSTENFILAMENT = { type: 3, value: "TUNGSTENFILAMENT" }; + IfcLightEmissionSourceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcLightEmissionSourceEnum = IfcLightEmissionSourceEnum; + class IfcLightFixtureTypeEnum { + } + IfcLightFixtureTypeEnum.POINTSOURCE = { type: 3, value: "POINTSOURCE" }; + IfcLightFixtureTypeEnum.DIRECTIONSOURCE = { type: 3, value: "DIRECTIONSOURCE" }; + IfcLightFixtureTypeEnum.SECURITYLIGHTING = { type: 3, value: "SECURITYLIGHTING" }; + IfcLightFixtureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcLightFixtureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcLightFixtureTypeEnum = IfcLightFixtureTypeEnum; + class IfcLoadGroupTypeEnum { + } + IfcLoadGroupTypeEnum.LOAD_GROUP = { type: 3, value: "LOAD_GROUP" }; + IfcLoadGroupTypeEnum.LOAD_CASE = { type: 3, value: "LOAD_CASE" }; + IfcLoadGroupTypeEnum.LOAD_COMBINATION = { type: 3, value: "LOAD_COMBINATION" }; + IfcLoadGroupTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcLoadGroupTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcLoadGroupTypeEnum = IfcLoadGroupTypeEnum; + class IfcLogicalOperatorEnum { + } + IfcLogicalOperatorEnum.LOGICALAND = { type: 3, value: "LOGICALAND" }; + IfcLogicalOperatorEnum.LOGICALOR = { type: 3, value: "LOGICALOR" }; + IfcLogicalOperatorEnum.LOGICALXOR = { type: 3, value: "LOGICALXOR" }; + IfcLogicalOperatorEnum.LOGICALNOTAND = { type: 3, value: "LOGICALNOTAND" }; + IfcLogicalOperatorEnum.LOGICALNOTOR = { type: 3, value: "LOGICALNOTOR" }; + IFC42.IfcLogicalOperatorEnum = IfcLogicalOperatorEnum; + class IfcMechanicalFastenerTypeEnum { + } + IfcMechanicalFastenerTypeEnum.ANCHORBOLT = { type: 3, value: "ANCHORBOLT" }; + IfcMechanicalFastenerTypeEnum.BOLT = { type: 3, value: "BOLT" }; + IfcMechanicalFastenerTypeEnum.DOWEL = { type: 3, value: "DOWEL" }; + IfcMechanicalFastenerTypeEnum.NAIL = { type: 3, value: "NAIL" }; + IfcMechanicalFastenerTypeEnum.NAILPLATE = { type: 3, value: "NAILPLATE" }; + IfcMechanicalFastenerTypeEnum.RIVET = { type: 3, value: "RIVET" }; + IfcMechanicalFastenerTypeEnum.SCREW = { type: 3, value: "SCREW" }; + IfcMechanicalFastenerTypeEnum.SHEARCONNECTOR = { type: 3, value: "SHEARCONNECTOR" }; + IfcMechanicalFastenerTypeEnum.STAPLE = { type: 3, value: "STAPLE" }; + IfcMechanicalFastenerTypeEnum.STUDSHEARCONNECTOR = { type: 3, value: "STUDSHEARCONNECTOR" }; + IfcMechanicalFastenerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcMechanicalFastenerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcMechanicalFastenerTypeEnum = IfcMechanicalFastenerTypeEnum; + class IfcMedicalDeviceTypeEnum { + } + IfcMedicalDeviceTypeEnum.AIRSTATION = { type: 3, value: "AIRSTATION" }; + IfcMedicalDeviceTypeEnum.FEEDAIRUNIT = { type: 3, value: "FEEDAIRUNIT" }; + IfcMedicalDeviceTypeEnum.OXYGENGENERATOR = { type: 3, value: "OXYGENGENERATOR" }; + IfcMedicalDeviceTypeEnum.OXYGENPLANT = { type: 3, value: "OXYGENPLANT" }; + IfcMedicalDeviceTypeEnum.VACUUMSTATION = { type: 3, value: "VACUUMSTATION" }; + IfcMedicalDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcMedicalDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcMedicalDeviceTypeEnum = IfcMedicalDeviceTypeEnum; + class IfcMemberTypeEnum { + } + IfcMemberTypeEnum.BRACE = { type: 3, value: "BRACE" }; + IfcMemberTypeEnum.CHORD = { type: 3, value: "CHORD" }; + IfcMemberTypeEnum.COLLAR = { type: 3, value: "COLLAR" }; + IfcMemberTypeEnum.MEMBER = { type: 3, value: "MEMBER" }; + IfcMemberTypeEnum.MULLION = { type: 3, value: "MULLION" }; + IfcMemberTypeEnum.PLATE = { type: 3, value: "PLATE" }; + IfcMemberTypeEnum.POST = { type: 3, value: "POST" }; + IfcMemberTypeEnum.PURLIN = { type: 3, value: "PURLIN" }; + IfcMemberTypeEnum.RAFTER = { type: 3, value: "RAFTER" }; + IfcMemberTypeEnum.STRINGER = { type: 3, value: "STRINGER" }; + IfcMemberTypeEnum.STRUT = { type: 3, value: "STRUT" }; + IfcMemberTypeEnum.STUD = { type: 3, value: "STUD" }; + IfcMemberTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcMemberTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcMemberTypeEnum = IfcMemberTypeEnum; + class IfcMotorConnectionTypeEnum { + } + IfcMotorConnectionTypeEnum.BELTDRIVE = { type: 3, value: "BELTDRIVE" }; + IfcMotorConnectionTypeEnum.COUPLING = { type: 3, value: "COUPLING" }; + IfcMotorConnectionTypeEnum.DIRECTDRIVE = { type: 3, value: "DIRECTDRIVE" }; + IfcMotorConnectionTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcMotorConnectionTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcMotorConnectionTypeEnum = IfcMotorConnectionTypeEnum; + class IfcNullStyle { + } + IfcNullStyle.NULL = { type: 3, value: "NULL" }; + IFC42.IfcNullStyle = IfcNullStyle; + class IfcObjectTypeEnum { + } + IfcObjectTypeEnum.PRODUCT = { type: 3, value: "PRODUCT" }; + IfcObjectTypeEnum.PROCESS = { type: 3, value: "PROCESS" }; + IfcObjectTypeEnum.CONTROL = { type: 3, value: "CONTROL" }; + IfcObjectTypeEnum.RESOURCE = { type: 3, value: "RESOURCE" }; + IfcObjectTypeEnum.ACTOR = { type: 3, value: "ACTOR" }; + IfcObjectTypeEnum.GROUP = { type: 3, value: "GROUP" }; + IfcObjectTypeEnum.PROJECT = { type: 3, value: "PROJECT" }; + IfcObjectTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcObjectTypeEnum = IfcObjectTypeEnum; + class IfcObjectiveEnum { + } + IfcObjectiveEnum.CODECOMPLIANCE = { type: 3, value: "CODECOMPLIANCE" }; + IfcObjectiveEnum.CODEWAIVER = { type: 3, value: "CODEWAIVER" }; + IfcObjectiveEnum.DESIGNINTENT = { type: 3, value: "DESIGNINTENT" }; + IfcObjectiveEnum.EXTERNAL = { type: 3, value: "EXTERNAL" }; + IfcObjectiveEnum.HEALTHANDSAFETY = { type: 3, value: "HEALTHANDSAFETY" }; + IfcObjectiveEnum.MERGECONFLICT = { type: 3, value: "MERGECONFLICT" }; + IfcObjectiveEnum.MODELVIEW = { type: 3, value: "MODELVIEW" }; + IfcObjectiveEnum.PARAMETER = { type: 3, value: "PARAMETER" }; + IfcObjectiveEnum.REQUIREMENT = { type: 3, value: "REQUIREMENT" }; + IfcObjectiveEnum.SPECIFICATION = { type: 3, value: "SPECIFICATION" }; + IfcObjectiveEnum.TRIGGERCONDITION = { type: 3, value: "TRIGGERCONDITION" }; + IfcObjectiveEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcObjectiveEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcObjectiveEnum = IfcObjectiveEnum; + class IfcOccupantTypeEnum { + } + IfcOccupantTypeEnum.ASSIGNEE = { type: 3, value: "ASSIGNEE" }; + IfcOccupantTypeEnum.ASSIGNOR = { type: 3, value: "ASSIGNOR" }; + IfcOccupantTypeEnum.LESSEE = { type: 3, value: "LESSEE" }; + IfcOccupantTypeEnum.LESSOR = { type: 3, value: "LESSOR" }; + IfcOccupantTypeEnum.LETTINGAGENT = { type: 3, value: "LETTINGAGENT" }; + IfcOccupantTypeEnum.OWNER = { type: 3, value: "OWNER" }; + IfcOccupantTypeEnum.TENANT = { type: 3, value: "TENANT" }; + IfcOccupantTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcOccupantTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcOccupantTypeEnum = IfcOccupantTypeEnum; + class IfcOpeningElementTypeEnum { + } + IfcOpeningElementTypeEnum.OPENING = { type: 3, value: "OPENING" }; + IfcOpeningElementTypeEnum.RECESS = { type: 3, value: "RECESS" }; + IfcOpeningElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcOpeningElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcOpeningElementTypeEnum = IfcOpeningElementTypeEnum; + class IfcOutletTypeEnum { + } + IfcOutletTypeEnum.AUDIOVISUALOUTLET = { type: 3, value: "AUDIOVISUALOUTLET" }; + IfcOutletTypeEnum.COMMUNICATIONSOUTLET = { type: 3, value: "COMMUNICATIONSOUTLET" }; + IfcOutletTypeEnum.POWEROUTLET = { type: 3, value: "POWEROUTLET" }; + IfcOutletTypeEnum.DATAOUTLET = { type: 3, value: "DATAOUTLET" }; + IfcOutletTypeEnum.TELEPHONEOUTLET = { type: 3, value: "TELEPHONEOUTLET" }; + IfcOutletTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcOutletTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcOutletTypeEnum = IfcOutletTypeEnum; + class IfcPerformanceHistoryTypeEnum { + } + IfcPerformanceHistoryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcPerformanceHistoryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcPerformanceHistoryTypeEnum = IfcPerformanceHistoryTypeEnum; + class IfcPermeableCoveringOperationEnum { + } + IfcPermeableCoveringOperationEnum.GRILL = { type: 3, value: "GRILL" }; + IfcPermeableCoveringOperationEnum.LOUVER = { type: 3, value: "LOUVER" }; + IfcPermeableCoveringOperationEnum.SCREEN = { type: 3, value: "SCREEN" }; + IfcPermeableCoveringOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcPermeableCoveringOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcPermeableCoveringOperationEnum = IfcPermeableCoveringOperationEnum; + class IfcPermitTypeEnum { + } + IfcPermitTypeEnum.ACCESS = { type: 3, value: "ACCESS" }; + IfcPermitTypeEnum.BUILDING = { type: 3, value: "BUILDING" }; + IfcPermitTypeEnum.WORK = { type: 3, value: "WORK" }; + IfcPermitTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcPermitTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcPermitTypeEnum = IfcPermitTypeEnum; + class IfcPhysicalOrVirtualEnum { + } + IfcPhysicalOrVirtualEnum.PHYSICAL = { type: 3, value: "PHYSICAL" }; + IfcPhysicalOrVirtualEnum.VIRTUAL = { type: 3, value: "VIRTUAL" }; + IfcPhysicalOrVirtualEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcPhysicalOrVirtualEnum = IfcPhysicalOrVirtualEnum; + class IfcPileConstructionEnum { + } + IfcPileConstructionEnum.CAST_IN_PLACE = { type: 3, value: "CAST_IN_PLACE" }; + IfcPileConstructionEnum.COMPOSITE = { type: 3, value: "COMPOSITE" }; + IfcPileConstructionEnum.PRECAST_CONCRETE = { type: 3, value: "PRECAST_CONCRETE" }; + IfcPileConstructionEnum.PREFAB_STEEL = { type: 3, value: "PREFAB_STEEL" }; + IfcPileConstructionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcPileConstructionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcPileConstructionEnum = IfcPileConstructionEnum; + class IfcPileTypeEnum { + } + IfcPileTypeEnum.BORED = { type: 3, value: "BORED" }; + IfcPileTypeEnum.DRIVEN = { type: 3, value: "DRIVEN" }; + IfcPileTypeEnum.JETGROUTING = { type: 3, value: "JETGROUTING" }; + IfcPileTypeEnum.COHESION = { type: 3, value: "COHESION" }; + IfcPileTypeEnum.FRICTION = { type: 3, value: "FRICTION" }; + IfcPileTypeEnum.SUPPORT = { type: 3, value: "SUPPORT" }; + IfcPileTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcPileTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcPileTypeEnum = IfcPileTypeEnum; + class IfcPipeFittingTypeEnum { + } + IfcPipeFittingTypeEnum.BEND = { type: 3, value: "BEND" }; + IfcPipeFittingTypeEnum.CONNECTOR = { type: 3, value: "CONNECTOR" }; + IfcPipeFittingTypeEnum.ENTRY = { type: 3, value: "ENTRY" }; + IfcPipeFittingTypeEnum.EXIT = { type: 3, value: "EXIT" }; + IfcPipeFittingTypeEnum.JUNCTION = { type: 3, value: "JUNCTION" }; + IfcPipeFittingTypeEnum.OBSTRUCTION = { type: 3, value: "OBSTRUCTION" }; + IfcPipeFittingTypeEnum.TRANSITION = { type: 3, value: "TRANSITION" }; + IfcPipeFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcPipeFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcPipeFittingTypeEnum = IfcPipeFittingTypeEnum; + class IfcPipeSegmentTypeEnum { + } + IfcPipeSegmentTypeEnum.CULVERT = { type: 3, value: "CULVERT" }; + IfcPipeSegmentTypeEnum.FLEXIBLESEGMENT = { type: 3, value: "FLEXIBLESEGMENT" }; + IfcPipeSegmentTypeEnum.RIGIDSEGMENT = { type: 3, value: "RIGIDSEGMENT" }; + IfcPipeSegmentTypeEnum.GUTTER = { type: 3, value: "GUTTER" }; + IfcPipeSegmentTypeEnum.SPOOL = { type: 3, value: "SPOOL" }; + IfcPipeSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcPipeSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcPipeSegmentTypeEnum = IfcPipeSegmentTypeEnum; + class IfcPlateTypeEnum { + } + IfcPlateTypeEnum.CURTAIN_PANEL = { type: 3, value: "CURTAIN_PANEL" }; + IfcPlateTypeEnum.SHEET = { type: 3, value: "SHEET" }; + IfcPlateTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcPlateTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcPlateTypeEnum = IfcPlateTypeEnum; + class IfcPreferredSurfaceCurveRepresentation { + } + IfcPreferredSurfaceCurveRepresentation.CURVE3D = { type: 3, value: "CURVE3D" }; + IfcPreferredSurfaceCurveRepresentation.PCURVE_S1 = { type: 3, value: "PCURVE_S1" }; + IfcPreferredSurfaceCurveRepresentation.PCURVE_S2 = { type: 3, value: "PCURVE_S2" }; + IFC42.IfcPreferredSurfaceCurveRepresentation = IfcPreferredSurfaceCurveRepresentation; + class IfcProcedureTypeEnum { + } + IfcProcedureTypeEnum.ADVICE_CAUTION = { type: 3, value: "ADVICE_CAUTION" }; + IfcProcedureTypeEnum.ADVICE_NOTE = { type: 3, value: "ADVICE_NOTE" }; + IfcProcedureTypeEnum.ADVICE_WARNING = { type: 3, value: "ADVICE_WARNING" }; + IfcProcedureTypeEnum.CALIBRATION = { type: 3, value: "CALIBRATION" }; + IfcProcedureTypeEnum.DIAGNOSTIC = { type: 3, value: "DIAGNOSTIC" }; + IfcProcedureTypeEnum.SHUTDOWN = { type: 3, value: "SHUTDOWN" }; + IfcProcedureTypeEnum.STARTUP = { type: 3, value: "STARTUP" }; + IfcProcedureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcProcedureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcProcedureTypeEnum = IfcProcedureTypeEnum; + class IfcProfileTypeEnum { + } + IfcProfileTypeEnum.CURVE = { type: 3, value: "CURVE" }; + IfcProfileTypeEnum.AREA = { type: 3, value: "AREA" }; + IFC42.IfcProfileTypeEnum = IfcProfileTypeEnum; + class IfcProjectOrderTypeEnum { + } + IfcProjectOrderTypeEnum.CHANGEORDER = { type: 3, value: "CHANGEORDER" }; + IfcProjectOrderTypeEnum.MAINTENANCEWORKORDER = { type: 3, value: "MAINTENANCEWORKORDER" }; + IfcProjectOrderTypeEnum.MOVEORDER = { type: 3, value: "MOVEORDER" }; + IfcProjectOrderTypeEnum.PURCHASEORDER = { type: 3, value: "PURCHASEORDER" }; + IfcProjectOrderTypeEnum.WORKORDER = { type: 3, value: "WORKORDER" }; + IfcProjectOrderTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcProjectOrderTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcProjectOrderTypeEnum = IfcProjectOrderTypeEnum; + class IfcProjectedOrTrueLengthEnum { + } + IfcProjectedOrTrueLengthEnum.PROJECTED_LENGTH = { type: 3, value: "PROJECTED_LENGTH" }; + IfcProjectedOrTrueLengthEnum.TRUE_LENGTH = { type: 3, value: "TRUE_LENGTH" }; + IFC42.IfcProjectedOrTrueLengthEnum = IfcProjectedOrTrueLengthEnum; + class IfcProjectionElementTypeEnum { + } + IfcProjectionElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcProjectionElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcProjectionElementTypeEnum = IfcProjectionElementTypeEnum; + class IfcPropertySetTemplateTypeEnum { + } + IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENONLY = { type: 3, value: "PSET_TYPEDRIVENONLY" }; + IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENOVERRIDE = { type: 3, value: "PSET_TYPEDRIVENOVERRIDE" }; + IfcPropertySetTemplateTypeEnum.PSET_OCCURRENCEDRIVEN = { type: 3, value: "PSET_OCCURRENCEDRIVEN" }; + IfcPropertySetTemplateTypeEnum.PSET_PERFORMANCEDRIVEN = { type: 3, value: "PSET_PERFORMANCEDRIVEN" }; + IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENONLY = { type: 3, value: "QTO_TYPEDRIVENONLY" }; + IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENOVERRIDE = { type: 3, value: "QTO_TYPEDRIVENOVERRIDE" }; + IfcPropertySetTemplateTypeEnum.QTO_OCCURRENCEDRIVEN = { type: 3, value: "QTO_OCCURRENCEDRIVEN" }; + IfcPropertySetTemplateTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcPropertySetTemplateTypeEnum = IfcPropertySetTemplateTypeEnum; + class IfcProtectiveDeviceTrippingUnitTypeEnum { + } + IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTRONIC = { type: 3, value: "ELECTRONIC" }; + IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTROMAGNETIC = { type: 3, value: "ELECTROMAGNETIC" }; + IfcProtectiveDeviceTrippingUnitTypeEnum.RESIDUALCURRENT = { type: 3, value: "RESIDUALCURRENT" }; + IfcProtectiveDeviceTrippingUnitTypeEnum.THERMAL = { type: 3, value: "THERMAL" }; + IfcProtectiveDeviceTrippingUnitTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcProtectiveDeviceTrippingUnitTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcProtectiveDeviceTrippingUnitTypeEnum = IfcProtectiveDeviceTrippingUnitTypeEnum; + class IfcProtectiveDeviceTypeEnum { + } + IfcProtectiveDeviceTypeEnum.CIRCUITBREAKER = { type: 3, value: "CIRCUITBREAKER" }; + IfcProtectiveDeviceTypeEnum.EARTHLEAKAGECIRCUITBREAKER = { type: 3, value: "EARTHLEAKAGECIRCUITBREAKER" }; + IfcProtectiveDeviceTypeEnum.EARTHINGSWITCH = { type: 3, value: "EARTHINGSWITCH" }; + IfcProtectiveDeviceTypeEnum.FUSEDISCONNECTOR = { type: 3, value: "FUSEDISCONNECTOR" }; + IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTCIRCUITBREAKER = { type: 3, value: "RESIDUALCURRENTCIRCUITBREAKER" }; + IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTSWITCH = { type: 3, value: "RESIDUALCURRENTSWITCH" }; + IfcProtectiveDeviceTypeEnum.VARISTOR = { type: 3, value: "VARISTOR" }; + IfcProtectiveDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcProtectiveDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcProtectiveDeviceTypeEnum = IfcProtectiveDeviceTypeEnum; + class IfcPumpTypeEnum { + } + IfcPumpTypeEnum.CIRCULATOR = { type: 3, value: "CIRCULATOR" }; + IfcPumpTypeEnum.ENDSUCTION = { type: 3, value: "ENDSUCTION" }; + IfcPumpTypeEnum.SPLITCASE = { type: 3, value: "SPLITCASE" }; + IfcPumpTypeEnum.SUBMERSIBLEPUMP = { type: 3, value: "SUBMERSIBLEPUMP" }; + IfcPumpTypeEnum.SUMPPUMP = { type: 3, value: "SUMPPUMP" }; + IfcPumpTypeEnum.VERTICALINLINE = { type: 3, value: "VERTICALINLINE" }; + IfcPumpTypeEnum.VERTICALTURBINE = { type: 3, value: "VERTICALTURBINE" }; + IfcPumpTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcPumpTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcPumpTypeEnum = IfcPumpTypeEnum; + class IfcRailingTypeEnum { + } + IfcRailingTypeEnum.HANDRAIL = { type: 3, value: "HANDRAIL" }; + IfcRailingTypeEnum.GUARDRAIL = { type: 3, value: "GUARDRAIL" }; + IfcRailingTypeEnum.BALUSTRADE = { type: 3, value: "BALUSTRADE" }; + IfcRailingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcRailingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcRailingTypeEnum = IfcRailingTypeEnum; + class IfcRampFlightTypeEnum { + } + IfcRampFlightTypeEnum.STRAIGHT = { type: 3, value: "STRAIGHT" }; + IfcRampFlightTypeEnum.SPIRAL = { type: 3, value: "SPIRAL" }; + IfcRampFlightTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcRampFlightTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcRampFlightTypeEnum = IfcRampFlightTypeEnum; + class IfcRampTypeEnum { + } + IfcRampTypeEnum.STRAIGHT_RUN_RAMP = { type: 3, value: "STRAIGHT_RUN_RAMP" }; + IfcRampTypeEnum.TWO_STRAIGHT_RUN_RAMP = { type: 3, value: "TWO_STRAIGHT_RUN_RAMP" }; + IfcRampTypeEnum.QUARTER_TURN_RAMP = { type: 3, value: "QUARTER_TURN_RAMP" }; + IfcRampTypeEnum.TWO_QUARTER_TURN_RAMP = { type: 3, value: "TWO_QUARTER_TURN_RAMP" }; + IfcRampTypeEnum.HALF_TURN_RAMP = { type: 3, value: "HALF_TURN_RAMP" }; + IfcRampTypeEnum.SPIRAL_RAMP = { type: 3, value: "SPIRAL_RAMP" }; + IfcRampTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcRampTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcRampTypeEnum = IfcRampTypeEnum; + class IfcRecurrenceTypeEnum { + } + IfcRecurrenceTypeEnum.DAILY = { type: 3, value: "DAILY" }; + IfcRecurrenceTypeEnum.WEEKLY = { type: 3, value: "WEEKLY" }; + IfcRecurrenceTypeEnum.MONTHLY_BY_DAY_OF_MONTH = { type: 3, value: "MONTHLY_BY_DAY_OF_MONTH" }; + IfcRecurrenceTypeEnum.MONTHLY_BY_POSITION = { type: 3, value: "MONTHLY_BY_POSITION" }; + IfcRecurrenceTypeEnum.BY_DAY_COUNT = { type: 3, value: "BY_DAY_COUNT" }; + IfcRecurrenceTypeEnum.BY_WEEKDAY_COUNT = { type: 3, value: "BY_WEEKDAY_COUNT" }; + IfcRecurrenceTypeEnum.YEARLY_BY_DAY_OF_MONTH = { type: 3, value: "YEARLY_BY_DAY_OF_MONTH" }; + IfcRecurrenceTypeEnum.YEARLY_BY_POSITION = { type: 3, value: "YEARLY_BY_POSITION" }; + IFC42.IfcRecurrenceTypeEnum = IfcRecurrenceTypeEnum; + class IfcReflectanceMethodEnum { + } + IfcReflectanceMethodEnum.BLINN = { type: 3, value: "BLINN" }; + IfcReflectanceMethodEnum.FLAT = { type: 3, value: "FLAT" }; + IfcReflectanceMethodEnum.GLASS = { type: 3, value: "GLASS" }; + IfcReflectanceMethodEnum.MATT = { type: 3, value: "MATT" }; + IfcReflectanceMethodEnum.METAL = { type: 3, value: "METAL" }; + IfcReflectanceMethodEnum.MIRROR = { type: 3, value: "MIRROR" }; + IfcReflectanceMethodEnum.PHONG = { type: 3, value: "PHONG" }; + IfcReflectanceMethodEnum.PLASTIC = { type: 3, value: "PLASTIC" }; + IfcReflectanceMethodEnum.STRAUSS = { type: 3, value: "STRAUSS" }; + IfcReflectanceMethodEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcReflectanceMethodEnum = IfcReflectanceMethodEnum; + class IfcReinforcingBarRoleEnum { + } + IfcReinforcingBarRoleEnum.MAIN = { type: 3, value: "MAIN" }; + IfcReinforcingBarRoleEnum.SHEAR = { type: 3, value: "SHEAR" }; + IfcReinforcingBarRoleEnum.LIGATURE = { type: 3, value: "LIGATURE" }; + IfcReinforcingBarRoleEnum.STUD = { type: 3, value: "STUD" }; + IfcReinforcingBarRoleEnum.PUNCHING = { type: 3, value: "PUNCHING" }; + IfcReinforcingBarRoleEnum.EDGE = { type: 3, value: "EDGE" }; + IfcReinforcingBarRoleEnum.RING = { type: 3, value: "RING" }; + IfcReinforcingBarRoleEnum.ANCHORING = { type: 3, value: "ANCHORING" }; + IfcReinforcingBarRoleEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcReinforcingBarRoleEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcReinforcingBarRoleEnum = IfcReinforcingBarRoleEnum; + class IfcReinforcingBarSurfaceEnum { + } + IfcReinforcingBarSurfaceEnum.PLAIN = { type: 3, value: "PLAIN" }; + IfcReinforcingBarSurfaceEnum.TEXTURED = { type: 3, value: "TEXTURED" }; + IFC42.IfcReinforcingBarSurfaceEnum = IfcReinforcingBarSurfaceEnum; + class IfcReinforcingBarTypeEnum { + } + IfcReinforcingBarTypeEnum.ANCHORING = { type: 3, value: "ANCHORING" }; + IfcReinforcingBarTypeEnum.EDGE = { type: 3, value: "EDGE" }; + IfcReinforcingBarTypeEnum.LIGATURE = { type: 3, value: "LIGATURE" }; + IfcReinforcingBarTypeEnum.MAIN = { type: 3, value: "MAIN" }; + IfcReinforcingBarTypeEnum.PUNCHING = { type: 3, value: "PUNCHING" }; + IfcReinforcingBarTypeEnum.RING = { type: 3, value: "RING" }; + IfcReinforcingBarTypeEnum.SHEAR = { type: 3, value: "SHEAR" }; + IfcReinforcingBarTypeEnum.STUD = { type: 3, value: "STUD" }; + IfcReinforcingBarTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcReinforcingBarTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcReinforcingBarTypeEnum = IfcReinforcingBarTypeEnum; + class IfcReinforcingMeshTypeEnum { + } + IfcReinforcingMeshTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcReinforcingMeshTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcReinforcingMeshTypeEnum = IfcReinforcingMeshTypeEnum; + class IfcRoleEnum { + } + IfcRoleEnum.SUPPLIER = { type: 3, value: "SUPPLIER" }; + IfcRoleEnum.MANUFACTURER = { type: 3, value: "MANUFACTURER" }; + IfcRoleEnum.CONTRACTOR = { type: 3, value: "CONTRACTOR" }; + IfcRoleEnum.SUBCONTRACTOR = { type: 3, value: "SUBCONTRACTOR" }; + IfcRoleEnum.ARCHITECT = { type: 3, value: "ARCHITECT" }; + IfcRoleEnum.STRUCTURALENGINEER = { type: 3, value: "STRUCTURALENGINEER" }; + IfcRoleEnum.COSTENGINEER = { type: 3, value: "COSTENGINEER" }; + IfcRoleEnum.CLIENT = { type: 3, value: "CLIENT" }; + IfcRoleEnum.BUILDINGOWNER = { type: 3, value: "BUILDINGOWNER" }; + IfcRoleEnum.BUILDINGOPERATOR = { type: 3, value: "BUILDINGOPERATOR" }; + IfcRoleEnum.MECHANICALENGINEER = { type: 3, value: "MECHANICALENGINEER" }; + IfcRoleEnum.ELECTRICALENGINEER = { type: 3, value: "ELECTRICALENGINEER" }; + IfcRoleEnum.PROJECTMANAGER = { type: 3, value: "PROJECTMANAGER" }; + IfcRoleEnum.FACILITIESMANAGER = { type: 3, value: "FACILITIESMANAGER" }; + IfcRoleEnum.CIVILENGINEER = { type: 3, value: "CIVILENGINEER" }; + IfcRoleEnum.COMMISSIONINGENGINEER = { type: 3, value: "COMMISSIONINGENGINEER" }; + IfcRoleEnum.ENGINEER = { type: 3, value: "ENGINEER" }; + IfcRoleEnum.OWNER = { type: 3, value: "OWNER" }; + IfcRoleEnum.CONSULTANT = { type: 3, value: "CONSULTANT" }; + IfcRoleEnum.CONSTRUCTIONMANAGER = { type: 3, value: "CONSTRUCTIONMANAGER" }; + IfcRoleEnum.FIELDCONSTRUCTIONMANAGER = { type: 3, value: "FIELDCONSTRUCTIONMANAGER" }; + IfcRoleEnum.RESELLER = { type: 3, value: "RESELLER" }; + IfcRoleEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IFC42.IfcRoleEnum = IfcRoleEnum; + class IfcRoofTypeEnum { + } + IfcRoofTypeEnum.FLAT_ROOF = { type: 3, value: "FLAT_ROOF" }; + IfcRoofTypeEnum.SHED_ROOF = { type: 3, value: "SHED_ROOF" }; + IfcRoofTypeEnum.GABLE_ROOF = { type: 3, value: "GABLE_ROOF" }; + IfcRoofTypeEnum.HIP_ROOF = { type: 3, value: "HIP_ROOF" }; + IfcRoofTypeEnum.HIPPED_GABLE_ROOF = { type: 3, value: "HIPPED_GABLE_ROOF" }; + IfcRoofTypeEnum.GAMBREL_ROOF = { type: 3, value: "GAMBREL_ROOF" }; + IfcRoofTypeEnum.MANSARD_ROOF = { type: 3, value: "MANSARD_ROOF" }; + IfcRoofTypeEnum.BARREL_ROOF = { type: 3, value: "BARREL_ROOF" }; + IfcRoofTypeEnum.RAINBOW_ROOF = { type: 3, value: "RAINBOW_ROOF" }; + IfcRoofTypeEnum.BUTTERFLY_ROOF = { type: 3, value: "BUTTERFLY_ROOF" }; + IfcRoofTypeEnum.PAVILION_ROOF = { type: 3, value: "PAVILION_ROOF" }; + IfcRoofTypeEnum.DOME_ROOF = { type: 3, value: "DOME_ROOF" }; + IfcRoofTypeEnum.FREEFORM = { type: 3, value: "FREEFORM" }; + IfcRoofTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcRoofTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcRoofTypeEnum = IfcRoofTypeEnum; + class IfcSIPrefix { + } + IfcSIPrefix.EXA = { type: 3, value: "EXA" }; + IfcSIPrefix.PETA = { type: 3, value: "PETA" }; + IfcSIPrefix.TERA = { type: 3, value: "TERA" }; + IfcSIPrefix.GIGA = { type: 3, value: "GIGA" }; + IfcSIPrefix.MEGA = { type: 3, value: "MEGA" }; + IfcSIPrefix.KILO = { type: 3, value: "KILO" }; + IfcSIPrefix.HECTO = { type: 3, value: "HECTO" }; + IfcSIPrefix.DECA = { type: 3, value: "DECA" }; + IfcSIPrefix.DECI = { type: 3, value: "DECI" }; + IfcSIPrefix.CENTI = { type: 3, value: "CENTI" }; + IfcSIPrefix.MILLI = { type: 3, value: "MILLI" }; + IfcSIPrefix.MICRO = { type: 3, value: "MICRO" }; + IfcSIPrefix.NANO = { type: 3, value: "NANO" }; + IfcSIPrefix.PICO = { type: 3, value: "PICO" }; + IfcSIPrefix.FEMTO = { type: 3, value: "FEMTO" }; + IfcSIPrefix.ATTO = { type: 3, value: "ATTO" }; + IFC42.IfcSIPrefix = IfcSIPrefix; + class IfcSIUnitName { + } + IfcSIUnitName.AMPERE = { type: 3, value: "AMPERE" }; + IfcSIUnitName.BECQUEREL = { type: 3, value: "BECQUEREL" }; + IfcSIUnitName.CANDELA = { type: 3, value: "CANDELA" }; + IfcSIUnitName.COULOMB = { type: 3, value: "COULOMB" }; + IfcSIUnitName.CUBIC_METRE = { type: 3, value: "CUBIC_METRE" }; + IfcSIUnitName.DEGREE_CELSIUS = { type: 3, value: "DEGREE_CELSIUS" }; + IfcSIUnitName.FARAD = { type: 3, value: "FARAD" }; + IfcSIUnitName.GRAM = { type: 3, value: "GRAM" }; + IfcSIUnitName.GRAY = { type: 3, value: "GRAY" }; + IfcSIUnitName.HENRY = { type: 3, value: "HENRY" }; + IfcSIUnitName.HERTZ = { type: 3, value: "HERTZ" }; + IfcSIUnitName.JOULE = { type: 3, value: "JOULE" }; + IfcSIUnitName.KELVIN = { type: 3, value: "KELVIN" }; + IfcSIUnitName.LUMEN = { type: 3, value: "LUMEN" }; + IfcSIUnitName.LUX = { type: 3, value: "LUX" }; + IfcSIUnitName.METRE = { type: 3, value: "METRE" }; + IfcSIUnitName.MOLE = { type: 3, value: "MOLE" }; + IfcSIUnitName.NEWTON = { type: 3, value: "NEWTON" }; + IfcSIUnitName.OHM = { type: 3, value: "OHM" }; + IfcSIUnitName.PASCAL = { type: 3, value: "PASCAL" }; + IfcSIUnitName.RADIAN = { type: 3, value: "RADIAN" }; + IfcSIUnitName.SECOND = { type: 3, value: "SECOND" }; + IfcSIUnitName.SIEMENS = { type: 3, value: "SIEMENS" }; + IfcSIUnitName.SIEVERT = { type: 3, value: "SIEVERT" }; + IfcSIUnitName.SQUARE_METRE = { type: 3, value: "SQUARE_METRE" }; + IfcSIUnitName.STERADIAN = { type: 3, value: "STERADIAN" }; + IfcSIUnitName.TESLA = { type: 3, value: "TESLA" }; + IfcSIUnitName.VOLT = { type: 3, value: "VOLT" }; + IfcSIUnitName.WATT = { type: 3, value: "WATT" }; + IfcSIUnitName.WEBER = { type: 3, value: "WEBER" }; + IFC42.IfcSIUnitName = IfcSIUnitName; + class IfcSanitaryTerminalTypeEnum { + } + IfcSanitaryTerminalTypeEnum.BATH = { type: 3, value: "BATH" }; + IfcSanitaryTerminalTypeEnum.BIDET = { type: 3, value: "BIDET" }; + IfcSanitaryTerminalTypeEnum.CISTERN = { type: 3, value: "CISTERN" }; + IfcSanitaryTerminalTypeEnum.SHOWER = { type: 3, value: "SHOWER" }; + IfcSanitaryTerminalTypeEnum.SINK = { type: 3, value: "SINK" }; + IfcSanitaryTerminalTypeEnum.SANITARYFOUNTAIN = { type: 3, value: "SANITARYFOUNTAIN" }; + IfcSanitaryTerminalTypeEnum.TOILETPAN = { type: 3, value: "TOILETPAN" }; + IfcSanitaryTerminalTypeEnum.URINAL = { type: 3, value: "URINAL" }; + IfcSanitaryTerminalTypeEnum.WASHHANDBASIN = { type: 3, value: "WASHHANDBASIN" }; + IfcSanitaryTerminalTypeEnum.WCSEAT = { type: 3, value: "WCSEAT" }; + IfcSanitaryTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcSanitaryTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcSanitaryTerminalTypeEnum = IfcSanitaryTerminalTypeEnum; + class IfcSectionTypeEnum { + } + IfcSectionTypeEnum.UNIFORM = { type: 3, value: "UNIFORM" }; + IfcSectionTypeEnum.TAPERED = { type: 3, value: "TAPERED" }; + IFC42.IfcSectionTypeEnum = IfcSectionTypeEnum; + class IfcSensorTypeEnum { + } + IfcSensorTypeEnum.COSENSOR = { type: 3, value: "COSENSOR" }; + IfcSensorTypeEnum.CO2SENSOR = { type: 3, value: "CO2SENSOR" }; + IfcSensorTypeEnum.CONDUCTANCESENSOR = { type: 3, value: "CONDUCTANCESENSOR" }; + IfcSensorTypeEnum.CONTACTSENSOR = { type: 3, value: "CONTACTSENSOR" }; + IfcSensorTypeEnum.FIRESENSOR = { type: 3, value: "FIRESENSOR" }; + IfcSensorTypeEnum.FLOWSENSOR = { type: 3, value: "FLOWSENSOR" }; + IfcSensorTypeEnum.FROSTSENSOR = { type: 3, value: "FROSTSENSOR" }; + IfcSensorTypeEnum.GASSENSOR = { type: 3, value: "GASSENSOR" }; + IfcSensorTypeEnum.HEATSENSOR = { type: 3, value: "HEATSENSOR" }; + IfcSensorTypeEnum.HUMIDITYSENSOR = { type: 3, value: "HUMIDITYSENSOR" }; + IfcSensorTypeEnum.IDENTIFIERSENSOR = { type: 3, value: "IDENTIFIERSENSOR" }; + IfcSensorTypeEnum.IONCONCENTRATIONSENSOR = { type: 3, value: "IONCONCENTRATIONSENSOR" }; + IfcSensorTypeEnum.LEVELSENSOR = { type: 3, value: "LEVELSENSOR" }; + IfcSensorTypeEnum.LIGHTSENSOR = { type: 3, value: "LIGHTSENSOR" }; + IfcSensorTypeEnum.MOISTURESENSOR = { type: 3, value: "MOISTURESENSOR" }; + IfcSensorTypeEnum.MOVEMENTSENSOR = { type: 3, value: "MOVEMENTSENSOR" }; + IfcSensorTypeEnum.PHSENSOR = { type: 3, value: "PHSENSOR" }; + IfcSensorTypeEnum.PRESSURESENSOR = { type: 3, value: "PRESSURESENSOR" }; + IfcSensorTypeEnum.RADIATIONSENSOR = { type: 3, value: "RADIATIONSENSOR" }; + IfcSensorTypeEnum.RADIOACTIVITYSENSOR = { type: 3, value: "RADIOACTIVITYSENSOR" }; + IfcSensorTypeEnum.SMOKESENSOR = { type: 3, value: "SMOKESENSOR" }; + IfcSensorTypeEnum.SOUNDSENSOR = { type: 3, value: "SOUNDSENSOR" }; + IfcSensorTypeEnum.TEMPERATURESENSOR = { type: 3, value: "TEMPERATURESENSOR" }; + IfcSensorTypeEnum.WINDSENSOR = { type: 3, value: "WINDSENSOR" }; + IfcSensorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcSensorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcSensorTypeEnum = IfcSensorTypeEnum; + class IfcSequenceEnum { + } + IfcSequenceEnum.START_START = { type: 3, value: "START_START" }; + IfcSequenceEnum.START_FINISH = { type: 3, value: "START_FINISH" }; + IfcSequenceEnum.FINISH_START = { type: 3, value: "FINISH_START" }; + IfcSequenceEnum.FINISH_FINISH = { type: 3, value: "FINISH_FINISH" }; + IfcSequenceEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcSequenceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcSequenceEnum = IfcSequenceEnum; + class IfcShadingDeviceTypeEnum { + } + IfcShadingDeviceTypeEnum.JALOUSIE = { type: 3, value: "JALOUSIE" }; + IfcShadingDeviceTypeEnum.SHUTTER = { type: 3, value: "SHUTTER" }; + IfcShadingDeviceTypeEnum.AWNING = { type: 3, value: "AWNING" }; + IfcShadingDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcShadingDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcShadingDeviceTypeEnum = IfcShadingDeviceTypeEnum; + class IfcSimplePropertyTemplateTypeEnum { + } + IfcSimplePropertyTemplateTypeEnum.P_SINGLEVALUE = { type: 3, value: "P_SINGLEVALUE" }; + IfcSimplePropertyTemplateTypeEnum.P_ENUMERATEDVALUE = { type: 3, value: "P_ENUMERATEDVALUE" }; + IfcSimplePropertyTemplateTypeEnum.P_BOUNDEDVALUE = { type: 3, value: "P_BOUNDEDVALUE" }; + IfcSimplePropertyTemplateTypeEnum.P_LISTVALUE = { type: 3, value: "P_LISTVALUE" }; + IfcSimplePropertyTemplateTypeEnum.P_TABLEVALUE = { type: 3, value: "P_TABLEVALUE" }; + IfcSimplePropertyTemplateTypeEnum.P_REFERENCEVALUE = { type: 3, value: "P_REFERENCEVALUE" }; + IfcSimplePropertyTemplateTypeEnum.Q_LENGTH = { type: 3, value: "Q_LENGTH" }; + IfcSimplePropertyTemplateTypeEnum.Q_AREA = { type: 3, value: "Q_AREA" }; + IfcSimplePropertyTemplateTypeEnum.Q_VOLUME = { type: 3, value: "Q_VOLUME" }; + IfcSimplePropertyTemplateTypeEnum.Q_COUNT = { type: 3, value: "Q_COUNT" }; + IfcSimplePropertyTemplateTypeEnum.Q_WEIGHT = { type: 3, value: "Q_WEIGHT" }; + IfcSimplePropertyTemplateTypeEnum.Q_TIME = { type: 3, value: "Q_TIME" }; + IFC42.IfcSimplePropertyTemplateTypeEnum = IfcSimplePropertyTemplateTypeEnum; + class IfcSlabTypeEnum { + } + IfcSlabTypeEnum.FLOOR = { type: 3, value: "FLOOR" }; + IfcSlabTypeEnum.ROOF = { type: 3, value: "ROOF" }; + IfcSlabTypeEnum.LANDING = { type: 3, value: "LANDING" }; + IfcSlabTypeEnum.BASESLAB = { type: 3, value: "BASESLAB" }; + IfcSlabTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcSlabTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcSlabTypeEnum = IfcSlabTypeEnum; + class IfcSolarDeviceTypeEnum { + } + IfcSolarDeviceTypeEnum.SOLARCOLLECTOR = { type: 3, value: "SOLARCOLLECTOR" }; + IfcSolarDeviceTypeEnum.SOLARPANEL = { type: 3, value: "SOLARPANEL" }; + IfcSolarDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcSolarDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcSolarDeviceTypeEnum = IfcSolarDeviceTypeEnum; + class IfcSpaceHeaterTypeEnum { + } + IfcSpaceHeaterTypeEnum.CONVECTOR = { type: 3, value: "CONVECTOR" }; + IfcSpaceHeaterTypeEnum.RADIATOR = { type: 3, value: "RADIATOR" }; + IfcSpaceHeaterTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcSpaceHeaterTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcSpaceHeaterTypeEnum = IfcSpaceHeaterTypeEnum; + class IfcSpaceTypeEnum { + } + IfcSpaceTypeEnum.SPACE = { type: 3, value: "SPACE" }; + IfcSpaceTypeEnum.PARKING = { type: 3, value: "PARKING" }; + IfcSpaceTypeEnum.GFA = { type: 3, value: "GFA" }; + IfcSpaceTypeEnum.INTERNAL = { type: 3, value: "INTERNAL" }; + IfcSpaceTypeEnum.EXTERNAL = { type: 3, value: "EXTERNAL" }; + IfcSpaceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcSpaceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcSpaceTypeEnum = IfcSpaceTypeEnum; + class IfcSpatialZoneTypeEnum { + } + IfcSpatialZoneTypeEnum.CONSTRUCTION = { type: 3, value: "CONSTRUCTION" }; + IfcSpatialZoneTypeEnum.FIRESAFETY = { type: 3, value: "FIRESAFETY" }; + IfcSpatialZoneTypeEnum.LIGHTING = { type: 3, value: "LIGHTING" }; + IfcSpatialZoneTypeEnum.OCCUPANCY = { type: 3, value: "OCCUPANCY" }; + IfcSpatialZoneTypeEnum.SECURITY = { type: 3, value: "SECURITY" }; + IfcSpatialZoneTypeEnum.THERMAL = { type: 3, value: "THERMAL" }; + IfcSpatialZoneTypeEnum.TRANSPORT = { type: 3, value: "TRANSPORT" }; + IfcSpatialZoneTypeEnum.VENTILATION = { type: 3, value: "VENTILATION" }; + IfcSpatialZoneTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcSpatialZoneTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcSpatialZoneTypeEnum = IfcSpatialZoneTypeEnum; + class IfcStackTerminalTypeEnum { + } + IfcStackTerminalTypeEnum.BIRDCAGE = { type: 3, value: "BIRDCAGE" }; + IfcStackTerminalTypeEnum.COWL = { type: 3, value: "COWL" }; + IfcStackTerminalTypeEnum.RAINWATERHOPPER = { type: 3, value: "RAINWATERHOPPER" }; + IfcStackTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcStackTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcStackTerminalTypeEnum = IfcStackTerminalTypeEnum; + class IfcStairFlightTypeEnum { + } + IfcStairFlightTypeEnum.STRAIGHT = { type: 3, value: "STRAIGHT" }; + IfcStairFlightTypeEnum.WINDER = { type: 3, value: "WINDER" }; + IfcStairFlightTypeEnum.SPIRAL = { type: 3, value: "SPIRAL" }; + IfcStairFlightTypeEnum.CURVED = { type: 3, value: "CURVED" }; + IfcStairFlightTypeEnum.FREEFORM = { type: 3, value: "FREEFORM" }; + IfcStairFlightTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcStairFlightTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcStairFlightTypeEnum = IfcStairFlightTypeEnum; + class IfcStairTypeEnum { + } + IfcStairTypeEnum.STRAIGHT_RUN_STAIR = { type: 3, value: "STRAIGHT_RUN_STAIR" }; + IfcStairTypeEnum.TWO_STRAIGHT_RUN_STAIR = { type: 3, value: "TWO_STRAIGHT_RUN_STAIR" }; + IfcStairTypeEnum.QUARTER_WINDING_STAIR = { type: 3, value: "QUARTER_WINDING_STAIR" }; + IfcStairTypeEnum.QUARTER_TURN_STAIR = { type: 3, value: "QUARTER_TURN_STAIR" }; + IfcStairTypeEnum.HALF_WINDING_STAIR = { type: 3, value: "HALF_WINDING_STAIR" }; + IfcStairTypeEnum.HALF_TURN_STAIR = { type: 3, value: "HALF_TURN_STAIR" }; + IfcStairTypeEnum.TWO_QUARTER_WINDING_STAIR = { type: 3, value: "TWO_QUARTER_WINDING_STAIR" }; + IfcStairTypeEnum.TWO_QUARTER_TURN_STAIR = { type: 3, value: "TWO_QUARTER_TURN_STAIR" }; + IfcStairTypeEnum.THREE_QUARTER_WINDING_STAIR = { type: 3, value: "THREE_QUARTER_WINDING_STAIR" }; + IfcStairTypeEnum.THREE_QUARTER_TURN_STAIR = { type: 3, value: "THREE_QUARTER_TURN_STAIR" }; + IfcStairTypeEnum.SPIRAL_STAIR = { type: 3, value: "SPIRAL_STAIR" }; + IfcStairTypeEnum.DOUBLE_RETURN_STAIR = { type: 3, value: "DOUBLE_RETURN_STAIR" }; + IfcStairTypeEnum.CURVED_RUN_STAIR = { type: 3, value: "CURVED_RUN_STAIR" }; + IfcStairTypeEnum.TWO_CURVED_RUN_STAIR = { type: 3, value: "TWO_CURVED_RUN_STAIR" }; + IfcStairTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcStairTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcStairTypeEnum = IfcStairTypeEnum; + class IfcStateEnum { + } + IfcStateEnum.READWRITE = { type: 3, value: "READWRITE" }; + IfcStateEnum.READONLY = { type: 3, value: "READONLY" }; + IfcStateEnum.LOCKED = { type: 3, value: "LOCKED" }; + IfcStateEnum.READWRITELOCKED = { type: 3, value: "READWRITELOCKED" }; + IfcStateEnum.READONLYLOCKED = { type: 3, value: "READONLYLOCKED" }; + IFC42.IfcStateEnum = IfcStateEnum; + class IfcStructuralCurveActivityTypeEnum { + } + IfcStructuralCurveActivityTypeEnum.CONST = { type: 3, value: "CONST" }; + IfcStructuralCurveActivityTypeEnum.LINEAR = { type: 3, value: "LINEAR" }; + IfcStructuralCurveActivityTypeEnum.POLYGONAL = { type: 3, value: "POLYGONAL" }; + IfcStructuralCurveActivityTypeEnum.EQUIDISTANT = { type: 3, value: "EQUIDISTANT" }; + IfcStructuralCurveActivityTypeEnum.SINUS = { type: 3, value: "SINUS" }; + IfcStructuralCurveActivityTypeEnum.PARABOLA = { type: 3, value: "PARABOLA" }; + IfcStructuralCurveActivityTypeEnum.DISCRETE = { type: 3, value: "DISCRETE" }; + IfcStructuralCurveActivityTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcStructuralCurveActivityTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcStructuralCurveActivityTypeEnum = IfcStructuralCurveActivityTypeEnum; + class IfcStructuralCurveMemberTypeEnum { + } + IfcStructuralCurveMemberTypeEnum.RIGID_JOINED_MEMBER = { type: 3, value: "RIGID_JOINED_MEMBER" }; + IfcStructuralCurveMemberTypeEnum.PIN_JOINED_MEMBER = { type: 3, value: "PIN_JOINED_MEMBER" }; + IfcStructuralCurveMemberTypeEnum.CABLE = { type: 3, value: "CABLE" }; + IfcStructuralCurveMemberTypeEnum.TENSION_MEMBER = { type: 3, value: "TENSION_MEMBER" }; + IfcStructuralCurveMemberTypeEnum.COMPRESSION_MEMBER = { type: 3, value: "COMPRESSION_MEMBER" }; + IfcStructuralCurveMemberTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcStructuralCurveMemberTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcStructuralCurveMemberTypeEnum = IfcStructuralCurveMemberTypeEnum; + class IfcStructuralSurfaceActivityTypeEnum { + } + IfcStructuralSurfaceActivityTypeEnum.CONST = { type: 3, value: "CONST" }; + IfcStructuralSurfaceActivityTypeEnum.BILINEAR = { type: 3, value: "BILINEAR" }; + IfcStructuralSurfaceActivityTypeEnum.DISCRETE = { type: 3, value: "DISCRETE" }; + IfcStructuralSurfaceActivityTypeEnum.ISOCONTOUR = { type: 3, value: "ISOCONTOUR" }; + IfcStructuralSurfaceActivityTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcStructuralSurfaceActivityTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcStructuralSurfaceActivityTypeEnum = IfcStructuralSurfaceActivityTypeEnum; + class IfcStructuralSurfaceMemberTypeEnum { + } + IfcStructuralSurfaceMemberTypeEnum.BENDING_ELEMENT = { type: 3, value: "BENDING_ELEMENT" }; + IfcStructuralSurfaceMemberTypeEnum.MEMBRANE_ELEMENT = { type: 3, value: "MEMBRANE_ELEMENT" }; + IfcStructuralSurfaceMemberTypeEnum.SHELL = { type: 3, value: "SHELL" }; + IfcStructuralSurfaceMemberTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcStructuralSurfaceMemberTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcStructuralSurfaceMemberTypeEnum = IfcStructuralSurfaceMemberTypeEnum; + class IfcSubContractResourceTypeEnum { + } + IfcSubContractResourceTypeEnum.PURCHASE = { type: 3, value: "PURCHASE" }; + IfcSubContractResourceTypeEnum.WORK = { type: 3, value: "WORK" }; + IfcSubContractResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcSubContractResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcSubContractResourceTypeEnum = IfcSubContractResourceTypeEnum; + class IfcSurfaceFeatureTypeEnum { + } + IfcSurfaceFeatureTypeEnum.MARK = { type: 3, value: "MARK" }; + IfcSurfaceFeatureTypeEnum.TAG = { type: 3, value: "TAG" }; + IfcSurfaceFeatureTypeEnum.TREATMENT = { type: 3, value: "TREATMENT" }; + IfcSurfaceFeatureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcSurfaceFeatureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcSurfaceFeatureTypeEnum = IfcSurfaceFeatureTypeEnum; + class IfcSurfaceSide { + } + IfcSurfaceSide.POSITIVE = { type: 3, value: "POSITIVE" }; + IfcSurfaceSide.NEGATIVE = { type: 3, value: "NEGATIVE" }; + IfcSurfaceSide.BOTH = { type: 3, value: "BOTH" }; + IFC42.IfcSurfaceSide = IfcSurfaceSide; + class IfcSwitchingDeviceTypeEnum { + } + IfcSwitchingDeviceTypeEnum.CONTACTOR = { type: 3, value: "CONTACTOR" }; + IfcSwitchingDeviceTypeEnum.DIMMERSWITCH = { type: 3, value: "DIMMERSWITCH" }; + IfcSwitchingDeviceTypeEnum.EMERGENCYSTOP = { type: 3, value: "EMERGENCYSTOP" }; + IfcSwitchingDeviceTypeEnum.KEYPAD = { type: 3, value: "KEYPAD" }; + IfcSwitchingDeviceTypeEnum.MOMENTARYSWITCH = { type: 3, value: "MOMENTARYSWITCH" }; + IfcSwitchingDeviceTypeEnum.SELECTORSWITCH = { type: 3, value: "SELECTORSWITCH" }; + IfcSwitchingDeviceTypeEnum.STARTER = { type: 3, value: "STARTER" }; + IfcSwitchingDeviceTypeEnum.SWITCHDISCONNECTOR = { type: 3, value: "SWITCHDISCONNECTOR" }; + IfcSwitchingDeviceTypeEnum.TOGGLESWITCH = { type: 3, value: "TOGGLESWITCH" }; + IfcSwitchingDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcSwitchingDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcSwitchingDeviceTypeEnum = IfcSwitchingDeviceTypeEnum; + class IfcSystemFurnitureElementTypeEnum { + } + IfcSystemFurnitureElementTypeEnum.PANEL = { type: 3, value: "PANEL" }; + IfcSystemFurnitureElementTypeEnum.WORKSURFACE = { type: 3, value: "WORKSURFACE" }; + IfcSystemFurnitureElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcSystemFurnitureElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcSystemFurnitureElementTypeEnum = IfcSystemFurnitureElementTypeEnum; + class IfcTankTypeEnum { + } + IfcTankTypeEnum.BASIN = { type: 3, value: "BASIN" }; + IfcTankTypeEnum.BREAKPRESSURE = { type: 3, value: "BREAKPRESSURE" }; + IfcTankTypeEnum.EXPANSION = { type: 3, value: "EXPANSION" }; + IfcTankTypeEnum.FEEDANDEXPANSION = { type: 3, value: "FEEDANDEXPANSION" }; + IfcTankTypeEnum.PRESSUREVESSEL = { type: 3, value: "PRESSUREVESSEL" }; + IfcTankTypeEnum.STORAGE = { type: 3, value: "STORAGE" }; + IfcTankTypeEnum.VESSEL = { type: 3, value: "VESSEL" }; + IfcTankTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcTankTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcTankTypeEnum = IfcTankTypeEnum; + class IfcTaskDurationEnum { + } + IfcTaskDurationEnum.ELAPSEDTIME = { type: 3, value: "ELAPSEDTIME" }; + IfcTaskDurationEnum.WORKTIME = { type: 3, value: "WORKTIME" }; + IfcTaskDurationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcTaskDurationEnum = IfcTaskDurationEnum; + class IfcTaskTypeEnum { + } + IfcTaskTypeEnum.ATTENDANCE = { type: 3, value: "ATTENDANCE" }; + IfcTaskTypeEnum.CONSTRUCTION = { type: 3, value: "CONSTRUCTION" }; + IfcTaskTypeEnum.DEMOLITION = { type: 3, value: "DEMOLITION" }; + IfcTaskTypeEnum.DISMANTLE = { type: 3, value: "DISMANTLE" }; + IfcTaskTypeEnum.DISPOSAL = { type: 3, value: "DISPOSAL" }; + IfcTaskTypeEnum.INSTALLATION = { type: 3, value: "INSTALLATION" }; + IfcTaskTypeEnum.LOGISTIC = { type: 3, value: "LOGISTIC" }; + IfcTaskTypeEnum.MAINTENANCE = { type: 3, value: "MAINTENANCE" }; + IfcTaskTypeEnum.MOVE = { type: 3, value: "MOVE" }; + IfcTaskTypeEnum.OPERATION = { type: 3, value: "OPERATION" }; + IfcTaskTypeEnum.REMOVAL = { type: 3, value: "REMOVAL" }; + IfcTaskTypeEnum.RENOVATION = { type: 3, value: "RENOVATION" }; + IfcTaskTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcTaskTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcTaskTypeEnum = IfcTaskTypeEnum; + class IfcTendonAnchorTypeEnum { + } + IfcTendonAnchorTypeEnum.COUPLER = { type: 3, value: "COUPLER" }; + IfcTendonAnchorTypeEnum.FIXED_END = { type: 3, value: "FIXED_END" }; + IfcTendonAnchorTypeEnum.TENSIONING_END = { type: 3, value: "TENSIONING_END" }; + IfcTendonAnchorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcTendonAnchorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcTendonAnchorTypeEnum = IfcTendonAnchorTypeEnum; + class IfcTendonTypeEnum { + } + IfcTendonTypeEnum.BAR = { type: 3, value: "BAR" }; + IfcTendonTypeEnum.COATED = { type: 3, value: "COATED" }; + IfcTendonTypeEnum.STRAND = { type: 3, value: "STRAND" }; + IfcTendonTypeEnum.WIRE = { type: 3, value: "WIRE" }; + IfcTendonTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcTendonTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcTendonTypeEnum = IfcTendonTypeEnum; + class IfcTextPath { + } + IfcTextPath.LEFT = { type: 3, value: "LEFT" }; + IfcTextPath.RIGHT = { type: 3, value: "RIGHT" }; + IfcTextPath.UP = { type: 3, value: "UP" }; + IfcTextPath.DOWN = { type: 3, value: "DOWN" }; + IFC42.IfcTextPath = IfcTextPath; + class IfcTimeSeriesDataTypeEnum { + } + IfcTimeSeriesDataTypeEnum.CONTINUOUS = { type: 3, value: "CONTINUOUS" }; + IfcTimeSeriesDataTypeEnum.DISCRETE = { type: 3, value: "DISCRETE" }; + IfcTimeSeriesDataTypeEnum.DISCRETEBINARY = { type: 3, value: "DISCRETEBINARY" }; + IfcTimeSeriesDataTypeEnum.PIECEWISEBINARY = { type: 3, value: "PIECEWISEBINARY" }; + IfcTimeSeriesDataTypeEnum.PIECEWISECONSTANT = { type: 3, value: "PIECEWISECONSTANT" }; + IfcTimeSeriesDataTypeEnum.PIECEWISECONTINUOUS = { type: 3, value: "PIECEWISECONTINUOUS" }; + IfcTimeSeriesDataTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcTimeSeriesDataTypeEnum = IfcTimeSeriesDataTypeEnum; + class IfcTransformerTypeEnum { + } + IfcTransformerTypeEnum.CURRENT = { type: 3, value: "CURRENT" }; + IfcTransformerTypeEnum.FREQUENCY = { type: 3, value: "FREQUENCY" }; + IfcTransformerTypeEnum.INVERTER = { type: 3, value: "INVERTER" }; + IfcTransformerTypeEnum.RECTIFIER = { type: 3, value: "RECTIFIER" }; + IfcTransformerTypeEnum.VOLTAGE = { type: 3, value: "VOLTAGE" }; + IfcTransformerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcTransformerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcTransformerTypeEnum = IfcTransformerTypeEnum; + class IfcTransitionCode { + } + IfcTransitionCode.DISCONTINUOUS = { type: 3, value: "DISCONTINUOUS" }; + IfcTransitionCode.CONTINUOUS = { type: 3, value: "CONTINUOUS" }; + IfcTransitionCode.CONTSAMEGRADIENT = { type: 3, value: "CONTSAMEGRADIENT" }; + IfcTransitionCode.CONTSAMEGRADIENTSAMECURVATURE = { type: 3, value: "CONTSAMEGRADIENTSAMECURVATURE" }; + IFC42.IfcTransitionCode = IfcTransitionCode; + class IfcTransportElementTypeEnum { + } + IfcTransportElementTypeEnum.ELEVATOR = { type: 3, value: "ELEVATOR" }; + IfcTransportElementTypeEnum.ESCALATOR = { type: 3, value: "ESCALATOR" }; + IfcTransportElementTypeEnum.MOVINGWALKWAY = { type: 3, value: "MOVINGWALKWAY" }; + IfcTransportElementTypeEnum.CRANEWAY = { type: 3, value: "CRANEWAY" }; + IfcTransportElementTypeEnum.LIFTINGGEAR = { type: 3, value: "LIFTINGGEAR" }; + IfcTransportElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcTransportElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcTransportElementTypeEnum = IfcTransportElementTypeEnum; + class IfcTrimmingPreference { + } + IfcTrimmingPreference.CARTESIAN = { type: 3, value: "CARTESIAN" }; + IfcTrimmingPreference.PARAMETER = { type: 3, value: "PARAMETER" }; + IfcTrimmingPreference.UNSPECIFIED = { type: 3, value: "UNSPECIFIED" }; + IFC42.IfcTrimmingPreference = IfcTrimmingPreference; + class IfcTubeBundleTypeEnum { + } + IfcTubeBundleTypeEnum.FINNED = { type: 3, value: "FINNED" }; + IfcTubeBundleTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcTubeBundleTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcTubeBundleTypeEnum = IfcTubeBundleTypeEnum; + class IfcUnitEnum { + } + IfcUnitEnum.ABSORBEDDOSEUNIT = { type: 3, value: "ABSORBEDDOSEUNIT" }; + IfcUnitEnum.AMOUNTOFSUBSTANCEUNIT = { type: 3, value: "AMOUNTOFSUBSTANCEUNIT" }; + IfcUnitEnum.AREAUNIT = { type: 3, value: "AREAUNIT" }; + IfcUnitEnum.DOSEEQUIVALENTUNIT = { type: 3, value: "DOSEEQUIVALENTUNIT" }; + IfcUnitEnum.ELECTRICCAPACITANCEUNIT = { type: 3, value: "ELECTRICCAPACITANCEUNIT" }; + IfcUnitEnum.ELECTRICCHARGEUNIT = { type: 3, value: "ELECTRICCHARGEUNIT" }; + IfcUnitEnum.ELECTRICCONDUCTANCEUNIT = { type: 3, value: "ELECTRICCONDUCTANCEUNIT" }; + IfcUnitEnum.ELECTRICCURRENTUNIT = { type: 3, value: "ELECTRICCURRENTUNIT" }; + IfcUnitEnum.ELECTRICRESISTANCEUNIT = { type: 3, value: "ELECTRICRESISTANCEUNIT" }; + IfcUnitEnum.ELECTRICVOLTAGEUNIT = { type: 3, value: "ELECTRICVOLTAGEUNIT" }; + IfcUnitEnum.ENERGYUNIT = { type: 3, value: "ENERGYUNIT" }; + IfcUnitEnum.FORCEUNIT = { type: 3, value: "FORCEUNIT" }; + IfcUnitEnum.FREQUENCYUNIT = { type: 3, value: "FREQUENCYUNIT" }; + IfcUnitEnum.ILLUMINANCEUNIT = { type: 3, value: "ILLUMINANCEUNIT" }; + IfcUnitEnum.INDUCTANCEUNIT = { type: 3, value: "INDUCTANCEUNIT" }; + IfcUnitEnum.LENGTHUNIT = { type: 3, value: "LENGTHUNIT" }; + IfcUnitEnum.LUMINOUSFLUXUNIT = { type: 3, value: "LUMINOUSFLUXUNIT" }; + IfcUnitEnum.LUMINOUSINTENSITYUNIT = { type: 3, value: "LUMINOUSINTENSITYUNIT" }; + IfcUnitEnum.MAGNETICFLUXDENSITYUNIT = { type: 3, value: "MAGNETICFLUXDENSITYUNIT" }; + IfcUnitEnum.MAGNETICFLUXUNIT = { type: 3, value: "MAGNETICFLUXUNIT" }; + IfcUnitEnum.MASSUNIT = { type: 3, value: "MASSUNIT" }; + IfcUnitEnum.PLANEANGLEUNIT = { type: 3, value: "PLANEANGLEUNIT" }; + IfcUnitEnum.POWERUNIT = { type: 3, value: "POWERUNIT" }; + IfcUnitEnum.PRESSUREUNIT = { type: 3, value: "PRESSUREUNIT" }; + IfcUnitEnum.RADIOACTIVITYUNIT = { type: 3, value: "RADIOACTIVITYUNIT" }; + IfcUnitEnum.SOLIDANGLEUNIT = { type: 3, value: "SOLIDANGLEUNIT" }; + IfcUnitEnum.THERMODYNAMICTEMPERATUREUNIT = { type: 3, value: "THERMODYNAMICTEMPERATUREUNIT" }; + IfcUnitEnum.TIMEUNIT = { type: 3, value: "TIMEUNIT" }; + IfcUnitEnum.VOLUMEUNIT = { type: 3, value: "VOLUMEUNIT" }; + IfcUnitEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IFC42.IfcUnitEnum = IfcUnitEnum; + class IfcUnitaryControlElementTypeEnum { + } + IfcUnitaryControlElementTypeEnum.ALARMPANEL = { type: 3, value: "ALARMPANEL" }; + IfcUnitaryControlElementTypeEnum.CONTROLPANEL = { type: 3, value: "CONTROLPANEL" }; + IfcUnitaryControlElementTypeEnum.GASDETECTIONPANEL = { type: 3, value: "GASDETECTIONPANEL" }; + IfcUnitaryControlElementTypeEnum.INDICATORPANEL = { type: 3, value: "INDICATORPANEL" }; + IfcUnitaryControlElementTypeEnum.MIMICPANEL = { type: 3, value: "MIMICPANEL" }; + IfcUnitaryControlElementTypeEnum.HUMIDISTAT = { type: 3, value: "HUMIDISTAT" }; + IfcUnitaryControlElementTypeEnum.THERMOSTAT = { type: 3, value: "THERMOSTAT" }; + IfcUnitaryControlElementTypeEnum.WEATHERSTATION = { type: 3, value: "WEATHERSTATION" }; + IfcUnitaryControlElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcUnitaryControlElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcUnitaryControlElementTypeEnum = IfcUnitaryControlElementTypeEnum; + class IfcUnitaryEquipmentTypeEnum { + } + IfcUnitaryEquipmentTypeEnum.AIRHANDLER = { type: 3, value: "AIRHANDLER" }; + IfcUnitaryEquipmentTypeEnum.AIRCONDITIONINGUNIT = { type: 3, value: "AIRCONDITIONINGUNIT" }; + IfcUnitaryEquipmentTypeEnum.DEHUMIDIFIER = { type: 3, value: "DEHUMIDIFIER" }; + IfcUnitaryEquipmentTypeEnum.SPLITSYSTEM = { type: 3, value: "SPLITSYSTEM" }; + IfcUnitaryEquipmentTypeEnum.ROOFTOPUNIT = { type: 3, value: "ROOFTOPUNIT" }; + IfcUnitaryEquipmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcUnitaryEquipmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcUnitaryEquipmentTypeEnum = IfcUnitaryEquipmentTypeEnum; + class IfcValveTypeEnum { + } + IfcValveTypeEnum.AIRRELEASE = { type: 3, value: "AIRRELEASE" }; + IfcValveTypeEnum.ANTIVACUUM = { type: 3, value: "ANTIVACUUM" }; + IfcValveTypeEnum.CHANGEOVER = { type: 3, value: "CHANGEOVER" }; + IfcValveTypeEnum.CHECK = { type: 3, value: "CHECK" }; + IfcValveTypeEnum.COMMISSIONING = { type: 3, value: "COMMISSIONING" }; + IfcValveTypeEnum.DIVERTING = { type: 3, value: "DIVERTING" }; + IfcValveTypeEnum.DRAWOFFCOCK = { type: 3, value: "DRAWOFFCOCK" }; + IfcValveTypeEnum.DOUBLECHECK = { type: 3, value: "DOUBLECHECK" }; + IfcValveTypeEnum.DOUBLEREGULATING = { type: 3, value: "DOUBLEREGULATING" }; + IfcValveTypeEnum.FAUCET = { type: 3, value: "FAUCET" }; + IfcValveTypeEnum.FLUSHING = { type: 3, value: "FLUSHING" }; + IfcValveTypeEnum.GASCOCK = { type: 3, value: "GASCOCK" }; + IfcValveTypeEnum.GASTAP = { type: 3, value: "GASTAP" }; + IfcValveTypeEnum.ISOLATING = { type: 3, value: "ISOLATING" }; + IfcValveTypeEnum.MIXING = { type: 3, value: "MIXING" }; + IfcValveTypeEnum.PRESSUREREDUCING = { type: 3, value: "PRESSUREREDUCING" }; + IfcValveTypeEnum.PRESSURERELIEF = { type: 3, value: "PRESSURERELIEF" }; + IfcValveTypeEnum.REGULATING = { type: 3, value: "REGULATING" }; + IfcValveTypeEnum.SAFETYCUTOFF = { type: 3, value: "SAFETYCUTOFF" }; + IfcValveTypeEnum.STEAMTRAP = { type: 3, value: "STEAMTRAP" }; + IfcValveTypeEnum.STOPCOCK = { type: 3, value: "STOPCOCK" }; + IfcValveTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcValveTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcValveTypeEnum = IfcValveTypeEnum; + class IfcVibrationIsolatorTypeEnum { + } + IfcVibrationIsolatorTypeEnum.COMPRESSION = { type: 3, value: "COMPRESSION" }; + IfcVibrationIsolatorTypeEnum.SPRING = { type: 3, value: "SPRING" }; + IfcVibrationIsolatorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcVibrationIsolatorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcVibrationIsolatorTypeEnum = IfcVibrationIsolatorTypeEnum; + class IfcVoidingFeatureTypeEnum { + } + IfcVoidingFeatureTypeEnum.CUTOUT = { type: 3, value: "CUTOUT" }; + IfcVoidingFeatureTypeEnum.NOTCH = { type: 3, value: "NOTCH" }; + IfcVoidingFeatureTypeEnum.HOLE = { type: 3, value: "HOLE" }; + IfcVoidingFeatureTypeEnum.MITER = { type: 3, value: "MITER" }; + IfcVoidingFeatureTypeEnum.CHAMFER = { type: 3, value: "CHAMFER" }; + IfcVoidingFeatureTypeEnum.EDGE = { type: 3, value: "EDGE" }; + IfcVoidingFeatureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcVoidingFeatureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcVoidingFeatureTypeEnum = IfcVoidingFeatureTypeEnum; + class IfcWallTypeEnum { + } + IfcWallTypeEnum.MOVABLE = { type: 3, value: "MOVABLE" }; + IfcWallTypeEnum.PARAPET = { type: 3, value: "PARAPET" }; + IfcWallTypeEnum.PARTITIONING = { type: 3, value: "PARTITIONING" }; + IfcWallTypeEnum.PLUMBINGWALL = { type: 3, value: "PLUMBINGWALL" }; + IfcWallTypeEnum.SHEAR = { type: 3, value: "SHEAR" }; + IfcWallTypeEnum.SOLIDWALL = { type: 3, value: "SOLIDWALL" }; + IfcWallTypeEnum.STANDARD = { type: 3, value: "STANDARD" }; + IfcWallTypeEnum.POLYGONAL = { type: 3, value: "POLYGONAL" }; + IfcWallTypeEnum.ELEMENTEDWALL = { type: 3, value: "ELEMENTEDWALL" }; + IfcWallTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcWallTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcWallTypeEnum = IfcWallTypeEnum; + class IfcWasteTerminalTypeEnum { + } + IfcWasteTerminalTypeEnum.FLOORTRAP = { type: 3, value: "FLOORTRAP" }; + IfcWasteTerminalTypeEnum.FLOORWASTE = { type: 3, value: "FLOORWASTE" }; + IfcWasteTerminalTypeEnum.GULLYSUMP = { type: 3, value: "GULLYSUMP" }; + IfcWasteTerminalTypeEnum.GULLYTRAP = { type: 3, value: "GULLYTRAP" }; + IfcWasteTerminalTypeEnum.ROOFDRAIN = { type: 3, value: "ROOFDRAIN" }; + IfcWasteTerminalTypeEnum.WASTEDISPOSALUNIT = { type: 3, value: "WASTEDISPOSALUNIT" }; + IfcWasteTerminalTypeEnum.WASTETRAP = { type: 3, value: "WASTETRAP" }; + IfcWasteTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcWasteTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcWasteTerminalTypeEnum = IfcWasteTerminalTypeEnum; + class IfcWindowPanelOperationEnum { + } + IfcWindowPanelOperationEnum.SIDEHUNGRIGHTHAND = { type: 3, value: "SIDEHUNGRIGHTHAND" }; + IfcWindowPanelOperationEnum.SIDEHUNGLEFTHAND = { type: 3, value: "SIDEHUNGLEFTHAND" }; + IfcWindowPanelOperationEnum.TILTANDTURNRIGHTHAND = { type: 3, value: "TILTANDTURNRIGHTHAND" }; + IfcWindowPanelOperationEnum.TILTANDTURNLEFTHAND = { type: 3, value: "TILTANDTURNLEFTHAND" }; + IfcWindowPanelOperationEnum.TOPHUNG = { type: 3, value: "TOPHUNG" }; + IfcWindowPanelOperationEnum.BOTTOMHUNG = { type: 3, value: "BOTTOMHUNG" }; + IfcWindowPanelOperationEnum.PIVOTHORIZONTAL = { type: 3, value: "PIVOTHORIZONTAL" }; + IfcWindowPanelOperationEnum.PIVOTVERTICAL = { type: 3, value: "PIVOTVERTICAL" }; + IfcWindowPanelOperationEnum.SLIDINGHORIZONTAL = { type: 3, value: "SLIDINGHORIZONTAL" }; + IfcWindowPanelOperationEnum.SLIDINGVERTICAL = { type: 3, value: "SLIDINGVERTICAL" }; + IfcWindowPanelOperationEnum.REMOVABLECASEMENT = { type: 3, value: "REMOVABLECASEMENT" }; + IfcWindowPanelOperationEnum.FIXEDCASEMENT = { type: 3, value: "FIXEDCASEMENT" }; + IfcWindowPanelOperationEnum.OTHEROPERATION = { type: 3, value: "OTHEROPERATION" }; + IfcWindowPanelOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcWindowPanelOperationEnum = IfcWindowPanelOperationEnum; + class IfcWindowPanelPositionEnum { + } + IfcWindowPanelPositionEnum.LEFT = { type: 3, value: "LEFT" }; + IfcWindowPanelPositionEnum.MIDDLE = { type: 3, value: "MIDDLE" }; + IfcWindowPanelPositionEnum.RIGHT = { type: 3, value: "RIGHT" }; + IfcWindowPanelPositionEnum.BOTTOM = { type: 3, value: "BOTTOM" }; + IfcWindowPanelPositionEnum.TOP = { type: 3, value: "TOP" }; + IfcWindowPanelPositionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcWindowPanelPositionEnum = IfcWindowPanelPositionEnum; + class IfcWindowStyleConstructionEnum { + } + IfcWindowStyleConstructionEnum.ALUMINIUM = { type: 3, value: "ALUMINIUM" }; + IfcWindowStyleConstructionEnum.HIGH_GRADE_STEEL = { type: 3, value: "HIGH_GRADE_STEEL" }; + IfcWindowStyleConstructionEnum.STEEL = { type: 3, value: "STEEL" }; + IfcWindowStyleConstructionEnum.WOOD = { type: 3, value: "WOOD" }; + IfcWindowStyleConstructionEnum.ALUMINIUM_WOOD = { type: 3, value: "ALUMINIUM_WOOD" }; + IfcWindowStyleConstructionEnum.PLASTIC = { type: 3, value: "PLASTIC" }; + IfcWindowStyleConstructionEnum.OTHER_CONSTRUCTION = { type: 3, value: "OTHER_CONSTRUCTION" }; + IfcWindowStyleConstructionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcWindowStyleConstructionEnum = IfcWindowStyleConstructionEnum; + class IfcWindowStyleOperationEnum { + } + IfcWindowStyleOperationEnum.SINGLE_PANEL = { type: 3, value: "SINGLE_PANEL" }; + IfcWindowStyleOperationEnum.DOUBLE_PANEL_VERTICAL = { type: 3, value: "DOUBLE_PANEL_VERTICAL" }; + IfcWindowStyleOperationEnum.DOUBLE_PANEL_HORIZONTAL = { type: 3, value: "DOUBLE_PANEL_HORIZONTAL" }; + IfcWindowStyleOperationEnum.TRIPLE_PANEL_VERTICAL = { type: 3, value: "TRIPLE_PANEL_VERTICAL" }; + IfcWindowStyleOperationEnum.TRIPLE_PANEL_BOTTOM = { type: 3, value: "TRIPLE_PANEL_BOTTOM" }; + IfcWindowStyleOperationEnum.TRIPLE_PANEL_TOP = { type: 3, value: "TRIPLE_PANEL_TOP" }; + IfcWindowStyleOperationEnum.TRIPLE_PANEL_LEFT = { type: 3, value: "TRIPLE_PANEL_LEFT" }; + IfcWindowStyleOperationEnum.TRIPLE_PANEL_RIGHT = { type: 3, value: "TRIPLE_PANEL_RIGHT" }; + IfcWindowStyleOperationEnum.TRIPLE_PANEL_HORIZONTAL = { type: 3, value: "TRIPLE_PANEL_HORIZONTAL" }; + IfcWindowStyleOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcWindowStyleOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcWindowStyleOperationEnum = IfcWindowStyleOperationEnum; + class IfcWindowTypeEnum { + } + IfcWindowTypeEnum.WINDOW = { type: 3, value: "WINDOW" }; + IfcWindowTypeEnum.SKYLIGHT = { type: 3, value: "SKYLIGHT" }; + IfcWindowTypeEnum.LIGHTDOME = { type: 3, value: "LIGHTDOME" }; + IfcWindowTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcWindowTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcWindowTypeEnum = IfcWindowTypeEnum; + class IfcWindowTypePartitioningEnum { + } + IfcWindowTypePartitioningEnum.SINGLE_PANEL = { type: 3, value: "SINGLE_PANEL" }; + IfcWindowTypePartitioningEnum.DOUBLE_PANEL_VERTICAL = { type: 3, value: "DOUBLE_PANEL_VERTICAL" }; + IfcWindowTypePartitioningEnum.DOUBLE_PANEL_HORIZONTAL = { type: 3, value: "DOUBLE_PANEL_HORIZONTAL" }; + IfcWindowTypePartitioningEnum.TRIPLE_PANEL_VERTICAL = { type: 3, value: "TRIPLE_PANEL_VERTICAL" }; + IfcWindowTypePartitioningEnum.TRIPLE_PANEL_BOTTOM = { type: 3, value: "TRIPLE_PANEL_BOTTOM" }; + IfcWindowTypePartitioningEnum.TRIPLE_PANEL_TOP = { type: 3, value: "TRIPLE_PANEL_TOP" }; + IfcWindowTypePartitioningEnum.TRIPLE_PANEL_LEFT = { type: 3, value: "TRIPLE_PANEL_LEFT" }; + IfcWindowTypePartitioningEnum.TRIPLE_PANEL_RIGHT = { type: 3, value: "TRIPLE_PANEL_RIGHT" }; + IfcWindowTypePartitioningEnum.TRIPLE_PANEL_HORIZONTAL = { type: 3, value: "TRIPLE_PANEL_HORIZONTAL" }; + IfcWindowTypePartitioningEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcWindowTypePartitioningEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcWindowTypePartitioningEnum = IfcWindowTypePartitioningEnum; + class IfcWorkCalendarTypeEnum { + } + IfcWorkCalendarTypeEnum.FIRSTSHIFT = { type: 3, value: "FIRSTSHIFT" }; + IfcWorkCalendarTypeEnum.SECONDSHIFT = { type: 3, value: "SECONDSHIFT" }; + IfcWorkCalendarTypeEnum.THIRDSHIFT = { type: 3, value: "THIRDSHIFT" }; + IfcWorkCalendarTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcWorkCalendarTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcWorkCalendarTypeEnum = IfcWorkCalendarTypeEnum; + class IfcWorkPlanTypeEnum { + } + IfcWorkPlanTypeEnum.ACTUAL = { type: 3, value: "ACTUAL" }; + IfcWorkPlanTypeEnum.BASELINE = { type: 3, value: "BASELINE" }; + IfcWorkPlanTypeEnum.PLANNED = { type: 3, value: "PLANNED" }; + IfcWorkPlanTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcWorkPlanTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcWorkPlanTypeEnum = IfcWorkPlanTypeEnum; + class IfcWorkScheduleTypeEnum { + } + IfcWorkScheduleTypeEnum.ACTUAL = { type: 3, value: "ACTUAL" }; + IfcWorkScheduleTypeEnum.BASELINE = { type: 3, value: "BASELINE" }; + IfcWorkScheduleTypeEnum.PLANNED = { type: 3, value: "PLANNED" }; + IfcWorkScheduleTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcWorkScheduleTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC42.IfcWorkScheduleTypeEnum = IfcWorkScheduleTypeEnum; + class IfcActorRole extends IfcLineObject { + constructor(expressID, Role, UserDefinedRole, Description) { + super(expressID); + this.Role = Role; + this.UserDefinedRole = UserDefinedRole; + this.Description = Description; + this.type = 3630933823; + } + } + IFC42.IfcActorRole = IfcActorRole; + class IfcAddress extends IfcLineObject { + constructor(expressID, Purpose, Description, UserDefinedPurpose) { + super(expressID); + this.Purpose = Purpose; + this.Description = Description; + this.UserDefinedPurpose = UserDefinedPurpose; + this.type = 618182010; + } + } + IFC42.IfcAddress = IfcAddress; + class IfcApplication extends IfcLineObject { + constructor(expressID, ApplicationDeveloper, Version, ApplicationFullName, ApplicationIdentifier) { + super(expressID); + this.ApplicationDeveloper = ApplicationDeveloper; + this.Version = Version; + this.ApplicationFullName = ApplicationFullName; + this.ApplicationIdentifier = ApplicationIdentifier; + this.type = 639542469; + } + } + IFC42.IfcApplication = IfcApplication; + class IfcAppliedValue extends IfcLineObject { + constructor(expressID, Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, Category, Condition, ArithmeticOperator, Components) { + super(expressID); + this.Name = Name; + this.Description = Description; + this.AppliedValue = AppliedValue; + this.UnitBasis = UnitBasis; + this.ApplicableDate = ApplicableDate; + this.FixedUntilDate = FixedUntilDate; + this.Category = Category; + this.Condition = Condition; + this.ArithmeticOperator = ArithmeticOperator; + this.Components = Components; + this.type = 411424972; + } + } + IFC42.IfcAppliedValue = IfcAppliedValue; + class IfcApproval extends IfcLineObject { + constructor(expressID, Identifier, Name, Description, TimeOfApproval, Status, Level, Qualifier, RequestingApproval, GivingApproval) { + super(expressID); + this.Identifier = Identifier; + this.Name = Name; + this.Description = Description; + this.TimeOfApproval = TimeOfApproval; + this.Status = Status; + this.Level = Level; + this.Qualifier = Qualifier; + this.RequestingApproval = RequestingApproval; + this.GivingApproval = GivingApproval; + this.type = 130549933; + } + } + IFC42.IfcApproval = IfcApproval; + class IfcBoundaryCondition extends IfcLineObject { + constructor(expressID, Name) { + super(expressID); + this.Name = Name; + this.type = 4037036970; + } + } + IFC42.IfcBoundaryCondition = IfcBoundaryCondition; + class IfcBoundaryEdgeCondition extends IfcBoundaryCondition { + constructor(expressID, Name, TranslationalStiffnessByLengthX, TranslationalStiffnessByLengthY, TranslationalStiffnessByLengthZ, RotationalStiffnessByLengthX, RotationalStiffnessByLengthY, RotationalStiffnessByLengthZ) { + super(expressID, Name); + this.Name = Name; + this.TranslationalStiffnessByLengthX = TranslationalStiffnessByLengthX; + this.TranslationalStiffnessByLengthY = TranslationalStiffnessByLengthY; + this.TranslationalStiffnessByLengthZ = TranslationalStiffnessByLengthZ; + this.RotationalStiffnessByLengthX = RotationalStiffnessByLengthX; + this.RotationalStiffnessByLengthY = RotationalStiffnessByLengthY; + this.RotationalStiffnessByLengthZ = RotationalStiffnessByLengthZ; + this.type = 1560379544; + } + } + IFC42.IfcBoundaryEdgeCondition = IfcBoundaryEdgeCondition; + class IfcBoundaryFaceCondition extends IfcBoundaryCondition { + constructor(expressID, Name, TranslationalStiffnessByAreaX, TranslationalStiffnessByAreaY, TranslationalStiffnessByAreaZ) { + super(expressID, Name); + this.Name = Name; + this.TranslationalStiffnessByAreaX = TranslationalStiffnessByAreaX; + this.TranslationalStiffnessByAreaY = TranslationalStiffnessByAreaY; + this.TranslationalStiffnessByAreaZ = TranslationalStiffnessByAreaZ; + this.type = 3367102660; + } + } + IFC42.IfcBoundaryFaceCondition = IfcBoundaryFaceCondition; + class IfcBoundaryNodeCondition extends IfcBoundaryCondition { + constructor(expressID, Name, TranslationalStiffnessX, TranslationalStiffnessY, TranslationalStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ) { + super(expressID, Name); + this.Name = Name; + this.TranslationalStiffnessX = TranslationalStiffnessX; + this.TranslationalStiffnessY = TranslationalStiffnessY; + this.TranslationalStiffnessZ = TranslationalStiffnessZ; + this.RotationalStiffnessX = RotationalStiffnessX; + this.RotationalStiffnessY = RotationalStiffnessY; + this.RotationalStiffnessZ = RotationalStiffnessZ; + this.type = 1387855156; + } + } + IFC42.IfcBoundaryNodeCondition = IfcBoundaryNodeCondition; + class IfcBoundaryNodeConditionWarping extends IfcBoundaryNodeCondition { + constructor(expressID, Name, TranslationalStiffnessX, TranslationalStiffnessY, TranslationalStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ, WarpingStiffness) { + super(expressID, Name, TranslationalStiffnessX, TranslationalStiffnessY, TranslationalStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ); + this.Name = Name; + this.TranslationalStiffnessX = TranslationalStiffnessX; + this.TranslationalStiffnessY = TranslationalStiffnessY; + this.TranslationalStiffnessZ = TranslationalStiffnessZ; + this.RotationalStiffnessX = RotationalStiffnessX; + this.RotationalStiffnessY = RotationalStiffnessY; + this.RotationalStiffnessZ = RotationalStiffnessZ; + this.WarpingStiffness = WarpingStiffness; + this.type = 2069777674; + } + } + IFC42.IfcBoundaryNodeConditionWarping = IfcBoundaryNodeConditionWarping; + class IfcConnectionGeometry extends IfcLineObject { + constructor(expressID) { + super(expressID); + this.type = 2859738748; + } + } + IFC42.IfcConnectionGeometry = IfcConnectionGeometry; + class IfcConnectionPointGeometry extends IfcConnectionGeometry { + constructor(expressID, PointOnRelatingElement, PointOnRelatedElement) { + super(expressID); + this.PointOnRelatingElement = PointOnRelatingElement; + this.PointOnRelatedElement = PointOnRelatedElement; + this.type = 2614616156; + } + } + IFC42.IfcConnectionPointGeometry = IfcConnectionPointGeometry; + class IfcConnectionSurfaceGeometry extends IfcConnectionGeometry { + constructor(expressID, SurfaceOnRelatingElement, SurfaceOnRelatedElement) { + super(expressID); + this.SurfaceOnRelatingElement = SurfaceOnRelatingElement; + this.SurfaceOnRelatedElement = SurfaceOnRelatedElement; + this.type = 2732653382; + } + } + IFC42.IfcConnectionSurfaceGeometry = IfcConnectionSurfaceGeometry; + class IfcConnectionVolumeGeometry extends IfcConnectionGeometry { + constructor(expressID, VolumeOnRelatingElement, VolumeOnRelatedElement) { + super(expressID); + this.VolumeOnRelatingElement = VolumeOnRelatingElement; + this.VolumeOnRelatedElement = VolumeOnRelatedElement; + this.type = 775493141; + } + } + IFC42.IfcConnectionVolumeGeometry = IfcConnectionVolumeGeometry; + class IfcConstraint extends IfcLineObject { + constructor(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade) { + super(expressID); + this.Name = Name; + this.Description = Description; + this.ConstraintGrade = ConstraintGrade; + this.ConstraintSource = ConstraintSource; + this.CreatingActor = CreatingActor; + this.CreationTime = CreationTime; + this.UserDefinedGrade = UserDefinedGrade; + this.type = 1959218052; + } + } + IFC42.IfcConstraint = IfcConstraint; + class IfcCoordinateOperation extends IfcLineObject { + constructor(expressID, SourceCRS, TargetCRS) { + super(expressID); + this.SourceCRS = SourceCRS; + this.TargetCRS = TargetCRS; + this.type = 1785450214; + } + } + IFC42.IfcCoordinateOperation = IfcCoordinateOperation; + class IfcCoordinateReferenceSystem extends IfcLineObject { + constructor(expressID, Name, Description, GeodeticDatum, VerticalDatum) { + super(expressID); + this.Name = Name; + this.Description = Description; + this.GeodeticDatum = GeodeticDatum; + this.VerticalDatum = VerticalDatum; + this.type = 1466758467; + } + } + IFC42.IfcCoordinateReferenceSystem = IfcCoordinateReferenceSystem; + class IfcCostValue extends IfcAppliedValue { + constructor(expressID, Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, Category, Condition, ArithmeticOperator, Components) { + super(expressID, Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, Category, Condition, ArithmeticOperator, Components); + this.Name = Name; + this.Description = Description; + this.AppliedValue = AppliedValue; + this.UnitBasis = UnitBasis; + this.ApplicableDate = ApplicableDate; + this.FixedUntilDate = FixedUntilDate; + this.Category = Category; + this.Condition = Condition; + this.ArithmeticOperator = ArithmeticOperator; + this.Components = Components; + this.type = 602808272; + } + } + IFC42.IfcCostValue = IfcCostValue; + class IfcDerivedUnit extends IfcLineObject { + constructor(expressID, Elements, UnitType, UserDefinedType) { + super(expressID); + this.Elements = Elements; + this.UnitType = UnitType; + this.UserDefinedType = UserDefinedType; + this.type = 1765591967; + } + } + IFC42.IfcDerivedUnit = IfcDerivedUnit; + class IfcDerivedUnitElement extends IfcLineObject { + constructor(expressID, Unit, Exponent) { + super(expressID); + this.Unit = Unit; + this.Exponent = Exponent; + this.type = 1045800335; + } + } + IFC42.IfcDerivedUnitElement = IfcDerivedUnitElement; + class IfcDimensionalExponents extends IfcLineObject { + constructor(expressID, LengthExponent, MassExponent, TimeExponent, ElectricCurrentExponent, ThermodynamicTemperatureExponent, AmountOfSubstanceExponent, LuminousIntensityExponent) { + super(expressID); + this.LengthExponent = LengthExponent; + this.MassExponent = MassExponent; + this.TimeExponent = TimeExponent; + this.ElectricCurrentExponent = ElectricCurrentExponent; + this.ThermodynamicTemperatureExponent = ThermodynamicTemperatureExponent; + this.AmountOfSubstanceExponent = AmountOfSubstanceExponent; + this.LuminousIntensityExponent = LuminousIntensityExponent; + this.type = 2949456006; + } + } + IFC42.IfcDimensionalExponents = IfcDimensionalExponents; + class IfcExternalInformation extends IfcLineObject { + constructor(expressID) { + super(expressID); + this.type = 4294318154; + } + } + IFC42.IfcExternalInformation = IfcExternalInformation; + class IfcExternalReference extends IfcLineObject { + constructor(expressID, Location, Identification, Name) { + super(expressID); + this.Location = Location; + this.Identification = Identification; + this.Name = Name; + this.type = 3200245327; + } + } + IFC42.IfcExternalReference = IfcExternalReference; + class IfcExternallyDefinedHatchStyle extends IfcExternalReference { + constructor(expressID, Location, Identification, Name) { + super(expressID, Location, Identification, Name); + this.Location = Location; + this.Identification = Identification; + this.Name = Name; + this.type = 2242383968; + } + } + IFC42.IfcExternallyDefinedHatchStyle = IfcExternallyDefinedHatchStyle; + class IfcExternallyDefinedSurfaceStyle extends IfcExternalReference { + constructor(expressID, Location, Identification, Name) { + super(expressID, Location, Identification, Name); + this.Location = Location; + this.Identification = Identification; + this.Name = Name; + this.type = 1040185647; + } + } + IFC42.IfcExternallyDefinedSurfaceStyle = IfcExternallyDefinedSurfaceStyle; + class IfcExternallyDefinedTextFont extends IfcExternalReference { + constructor(expressID, Location, Identification, Name) { + super(expressID, Location, Identification, Name); + this.Location = Location; + this.Identification = Identification; + this.Name = Name; + this.type = 3548104201; + } + } + IFC42.IfcExternallyDefinedTextFont = IfcExternallyDefinedTextFont; + class IfcGridAxis extends IfcLineObject { + constructor(expressID, AxisTag, AxisCurve, SameSense) { + super(expressID); + this.AxisTag = AxisTag; + this.AxisCurve = AxisCurve; + this.SameSense = SameSense; + this.type = 852622518; + } + } + IFC42.IfcGridAxis = IfcGridAxis; + class IfcIrregularTimeSeriesValue extends IfcLineObject { + constructor(expressID, TimeStamp, ListValues) { + super(expressID); + this.TimeStamp = TimeStamp; + this.ListValues = ListValues; + this.type = 3020489413; + } + } + IFC42.IfcIrregularTimeSeriesValue = IfcIrregularTimeSeriesValue; + class IfcLibraryInformation extends IfcExternalInformation { + constructor(expressID, Name, Version, Publisher, VersionDate, Location, Description) { + super(expressID); + this.Name = Name; + this.Version = Version; + this.Publisher = Publisher; + this.VersionDate = VersionDate; + this.Location = Location; + this.Description = Description; + this.type = 2655187982; + } + } + IFC42.IfcLibraryInformation = IfcLibraryInformation; + class IfcLibraryReference extends IfcExternalReference { + constructor(expressID, Location, Identification, Name, Description, Language, ReferencedLibrary) { + super(expressID, Location, Identification, Name); + this.Location = Location; + this.Identification = Identification; + this.Name = Name; + this.Description = Description; + this.Language = Language; + this.ReferencedLibrary = ReferencedLibrary; + this.type = 3452421091; + } + } + IFC42.IfcLibraryReference = IfcLibraryReference; + class IfcLightDistributionData extends IfcLineObject { + constructor(expressID, MainPlaneAngle, SecondaryPlaneAngle, LuminousIntensity) { + super(expressID); + this.MainPlaneAngle = MainPlaneAngle; + this.SecondaryPlaneAngle = SecondaryPlaneAngle; + this.LuminousIntensity = LuminousIntensity; + this.type = 4162380809; + } + } + IFC42.IfcLightDistributionData = IfcLightDistributionData; + class IfcLightIntensityDistribution extends IfcLineObject { + constructor(expressID, LightDistributionCurve, DistributionData) { + super(expressID); + this.LightDistributionCurve = LightDistributionCurve; + this.DistributionData = DistributionData; + this.type = 1566485204; + } + } + IFC42.IfcLightIntensityDistribution = IfcLightIntensityDistribution; + class IfcMapConversion extends IfcCoordinateOperation { + constructor(expressID, SourceCRS, TargetCRS, Eastings, Northings, OrthogonalHeight, XAxisAbscissa, XAxisOrdinate, Scale) { + super(expressID, SourceCRS, TargetCRS); + this.SourceCRS = SourceCRS; + this.TargetCRS = TargetCRS; + this.Eastings = Eastings; + this.Northings = Northings; + this.OrthogonalHeight = OrthogonalHeight; + this.XAxisAbscissa = XAxisAbscissa; + this.XAxisOrdinate = XAxisOrdinate; + this.Scale = Scale; + this.type = 3057273783; + } + } + IFC42.IfcMapConversion = IfcMapConversion; + class IfcMaterialClassificationRelationship extends IfcLineObject { + constructor(expressID, MaterialClassifications, ClassifiedMaterial) { + super(expressID); + this.MaterialClassifications = MaterialClassifications; + this.ClassifiedMaterial = ClassifiedMaterial; + this.type = 1847130766; + } + } + IFC42.IfcMaterialClassificationRelationship = IfcMaterialClassificationRelationship; + class IfcMaterialDefinition extends IfcLineObject { + constructor(expressID) { + super(expressID); + this.type = 760658860; + } + } + IFC42.IfcMaterialDefinition = IfcMaterialDefinition; + class IfcMaterialLayer extends IfcMaterialDefinition { + constructor(expressID, Material, LayerThickness, IsVentilated, Name, Description, Category, Priority) { + super(expressID); + this.Material = Material; + this.LayerThickness = LayerThickness; + this.IsVentilated = IsVentilated; + this.Name = Name; + this.Description = Description; + this.Category = Category; + this.Priority = Priority; + this.type = 248100487; + } + } + IFC42.IfcMaterialLayer = IfcMaterialLayer; + class IfcMaterialLayerSet extends IfcMaterialDefinition { + constructor(expressID, MaterialLayers, LayerSetName, Description) { + super(expressID); + this.MaterialLayers = MaterialLayers; + this.LayerSetName = LayerSetName; + this.Description = Description; + this.type = 3303938423; + } + } + IFC42.IfcMaterialLayerSet = IfcMaterialLayerSet; + class IfcMaterialLayerWithOffsets extends IfcMaterialLayer { + constructor(expressID, Material, LayerThickness, IsVentilated, Name, Description, Category, Priority, OffsetDirection, OffsetValues) { + super(expressID, Material, LayerThickness, IsVentilated, Name, Description, Category, Priority); + this.Material = Material; + this.LayerThickness = LayerThickness; + this.IsVentilated = IsVentilated; + this.Name = Name; + this.Description = Description; + this.Category = Category; + this.Priority = Priority; + this.OffsetDirection = OffsetDirection; + this.OffsetValues = OffsetValues; + this.type = 1847252529; + } + } + IFC42.IfcMaterialLayerWithOffsets = IfcMaterialLayerWithOffsets; + class IfcMaterialList extends IfcLineObject { + constructor(expressID, Materials) { + super(expressID); + this.Materials = Materials; + this.type = 2199411900; + } + } + IFC42.IfcMaterialList = IfcMaterialList; + class IfcMaterialProfile extends IfcMaterialDefinition { + constructor(expressID, Name, Description, Material, Profile, Priority, Category) { + super(expressID); + this.Name = Name; + this.Description = Description; + this.Material = Material; + this.Profile = Profile; + this.Priority = Priority; + this.Category = Category; + this.type = 2235152071; + } + } + IFC42.IfcMaterialProfile = IfcMaterialProfile; + class IfcMaterialProfileSet extends IfcMaterialDefinition { + constructor(expressID, Name, Description, MaterialProfiles, CompositeProfile) { + super(expressID); + this.Name = Name; + this.Description = Description; + this.MaterialProfiles = MaterialProfiles; + this.CompositeProfile = CompositeProfile; + this.type = 164193824; + } + } + IFC42.IfcMaterialProfileSet = IfcMaterialProfileSet; + class IfcMaterialProfileWithOffsets extends IfcMaterialProfile { + constructor(expressID, Name, Description, Material, Profile, Priority, Category, OffsetValues) { + super(expressID, Name, Description, Material, Profile, Priority, Category); + this.Name = Name; + this.Description = Description; + this.Material = Material; + this.Profile = Profile; + this.Priority = Priority; + this.Category = Category; + this.OffsetValues = OffsetValues; + this.type = 552965576; + } + } + IFC42.IfcMaterialProfileWithOffsets = IfcMaterialProfileWithOffsets; + class IfcMaterialUsageDefinition extends IfcLineObject { + constructor(expressID) { + super(expressID); + this.type = 1507914824; + } + } + IFC42.IfcMaterialUsageDefinition = IfcMaterialUsageDefinition; + class IfcMeasureWithUnit extends IfcLineObject { + constructor(expressID, ValueComponent, UnitComponent) { + super(expressID); + this.ValueComponent = ValueComponent; + this.UnitComponent = UnitComponent; + this.type = 2597039031; + } + } + IFC42.IfcMeasureWithUnit = IfcMeasureWithUnit; + class IfcMetric extends IfcConstraint { + constructor(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade, Benchmark, ValueSource, DataValue, ReferencePath) { + super(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade); + this.Name = Name; + this.Description = Description; + this.ConstraintGrade = ConstraintGrade; + this.ConstraintSource = ConstraintSource; + this.CreatingActor = CreatingActor; + this.CreationTime = CreationTime; + this.UserDefinedGrade = UserDefinedGrade; + this.Benchmark = Benchmark; + this.ValueSource = ValueSource; + this.DataValue = DataValue; + this.ReferencePath = ReferencePath; + this.type = 3368373690; + } + } + IFC42.IfcMetric = IfcMetric; + class IfcMonetaryUnit extends IfcLineObject { + constructor(expressID, Currency) { + super(expressID); + this.Currency = Currency; + this.type = 2706619895; + } + } + IFC42.IfcMonetaryUnit = IfcMonetaryUnit; + class IfcNamedUnit extends IfcLineObject { + constructor(expressID, Dimensions, UnitType) { + super(expressID); + this.Dimensions = Dimensions; + this.UnitType = UnitType; + this.type = 1918398963; + } + } + IFC42.IfcNamedUnit = IfcNamedUnit; + class IfcObjectPlacement extends IfcLineObject { + constructor(expressID) { + super(expressID); + this.type = 3701648758; + } + } + IFC42.IfcObjectPlacement = IfcObjectPlacement; + class IfcObjective extends IfcConstraint { + constructor(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade, BenchmarkValues, LogicalAggregator, ObjectiveQualifier, UserDefinedQualifier) { + super(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade); + this.Name = Name; + this.Description = Description; + this.ConstraintGrade = ConstraintGrade; + this.ConstraintSource = ConstraintSource; + this.CreatingActor = CreatingActor; + this.CreationTime = CreationTime; + this.UserDefinedGrade = UserDefinedGrade; + this.BenchmarkValues = BenchmarkValues; + this.LogicalAggregator = LogicalAggregator; + this.ObjectiveQualifier = ObjectiveQualifier; + this.UserDefinedQualifier = UserDefinedQualifier; + this.type = 2251480897; + } + } + IFC42.IfcObjective = IfcObjective; + class IfcOrganization extends IfcLineObject { + constructor(expressID, Identification, Name, Description, Roles, Addresses) { + super(expressID); + this.Identification = Identification; + this.Name = Name; + this.Description = Description; + this.Roles = Roles; + this.Addresses = Addresses; + this.type = 4251960020; + } + } + IFC42.IfcOrganization = IfcOrganization; + class IfcOwnerHistory extends IfcLineObject { + constructor(expressID, OwningUser, OwningApplication, State, ChangeAction, LastModifiedDate, LastModifyingUser, LastModifyingApplication, CreationDate) { + super(expressID); + this.OwningUser = OwningUser; + this.OwningApplication = OwningApplication; + this.State = State; + this.ChangeAction = ChangeAction; + this.LastModifiedDate = LastModifiedDate; + this.LastModifyingUser = LastModifyingUser; + this.LastModifyingApplication = LastModifyingApplication; + this.CreationDate = CreationDate; + this.type = 1207048766; + } + } + IFC42.IfcOwnerHistory = IfcOwnerHistory; + class IfcPerson extends IfcLineObject { + constructor(expressID, Identification, FamilyName, GivenName, MiddleNames, PrefixTitles, SuffixTitles, Roles, Addresses) { + super(expressID); + this.Identification = Identification; + this.FamilyName = FamilyName; + this.GivenName = GivenName; + this.MiddleNames = MiddleNames; + this.PrefixTitles = PrefixTitles; + this.SuffixTitles = SuffixTitles; + this.Roles = Roles; + this.Addresses = Addresses; + this.type = 2077209135; + } + } + IFC42.IfcPerson = IfcPerson; + class IfcPersonAndOrganization extends IfcLineObject { + constructor(expressID, ThePerson, TheOrganization, Roles) { + super(expressID); + this.ThePerson = ThePerson; + this.TheOrganization = TheOrganization; + this.Roles = Roles; + this.type = 101040310; + } + } + IFC42.IfcPersonAndOrganization = IfcPersonAndOrganization; + class IfcPhysicalQuantity extends IfcLineObject { + constructor(expressID, Name, Description) { + super(expressID); + this.Name = Name; + this.Description = Description; + this.type = 2483315170; + } + } + IFC42.IfcPhysicalQuantity = IfcPhysicalQuantity; + class IfcPhysicalSimpleQuantity extends IfcPhysicalQuantity { + constructor(expressID, Name, Description, Unit) { + super(expressID, Name, Description); + this.Name = Name; + this.Description = Description; + this.Unit = Unit; + this.type = 2226359599; + } + } + IFC42.IfcPhysicalSimpleQuantity = IfcPhysicalSimpleQuantity; + class IfcPostalAddress extends IfcAddress { + constructor(expressID, Purpose, Description, UserDefinedPurpose, InternalLocation, AddressLines, PostalBox, Town, Region, PostalCode, Country) { + super(expressID, Purpose, Description, UserDefinedPurpose); + this.Purpose = Purpose; + this.Description = Description; + this.UserDefinedPurpose = UserDefinedPurpose; + this.InternalLocation = InternalLocation; + this.AddressLines = AddressLines; + this.PostalBox = PostalBox; + this.Town = Town; + this.Region = Region; + this.PostalCode = PostalCode; + this.Country = Country; + this.type = 3355820592; + } + } + IFC42.IfcPostalAddress = IfcPostalAddress; + class IfcPresentationItem extends IfcLineObject { + constructor(expressID) { + super(expressID); + this.type = 677532197; + } + } + IFC42.IfcPresentationItem = IfcPresentationItem; + class IfcPresentationLayerAssignment extends IfcLineObject { + constructor(expressID, Name, Description, AssignedItems, Identifier) { + super(expressID); + this.Name = Name; + this.Description = Description; + this.AssignedItems = AssignedItems; + this.Identifier = Identifier; + this.type = 2022622350; + } + } + IFC42.IfcPresentationLayerAssignment = IfcPresentationLayerAssignment; + class IfcPresentationLayerWithStyle extends IfcPresentationLayerAssignment { + constructor(expressID, Name, Description, AssignedItems, Identifier, LayerOn, LayerFrozen, LayerBlocked, LayerStyles) { + super(expressID, Name, Description, AssignedItems, Identifier); + this.Name = Name; + this.Description = Description; + this.AssignedItems = AssignedItems; + this.Identifier = Identifier; + this.LayerOn = LayerOn; + this.LayerFrozen = LayerFrozen; + this.LayerBlocked = LayerBlocked; + this.LayerStyles = LayerStyles; + this.type = 1304840413; + } + } + IFC42.IfcPresentationLayerWithStyle = IfcPresentationLayerWithStyle; + class IfcPresentationStyle extends IfcLineObject { + constructor(expressID, Name) { + super(expressID); + this.Name = Name; + this.type = 3119450353; + } + } + IFC42.IfcPresentationStyle = IfcPresentationStyle; + class IfcPresentationStyleAssignment extends IfcLineObject { + constructor(expressID, Styles) { + super(expressID); + this.Styles = Styles; + this.type = 2417041796; + } + } + IFC42.IfcPresentationStyleAssignment = IfcPresentationStyleAssignment; + class IfcProductRepresentation extends IfcLineObject { + constructor(expressID, Name, Description, Representations) { + super(expressID); + this.Name = Name; + this.Description = Description; + this.Representations = Representations; + this.type = 2095639259; + } + } + IFC42.IfcProductRepresentation = IfcProductRepresentation; + class IfcProfileDef extends IfcLineObject { + constructor(expressID, ProfileType, ProfileName) { + super(expressID); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.type = 3958567839; + } + } + IFC42.IfcProfileDef = IfcProfileDef; + class IfcProjectedCRS extends IfcCoordinateReferenceSystem { + constructor(expressID, Name, Description, GeodeticDatum, VerticalDatum, MapProjection, MapZone, MapUnit) { + super(expressID, Name, Description, GeodeticDatum, VerticalDatum); + this.Name = Name; + this.Description = Description; + this.GeodeticDatum = GeodeticDatum; + this.VerticalDatum = VerticalDatum; + this.MapProjection = MapProjection; + this.MapZone = MapZone; + this.MapUnit = MapUnit; + this.type = 3843373140; + } + } + IFC42.IfcProjectedCRS = IfcProjectedCRS; + class IfcPropertyAbstraction extends IfcLineObject { + constructor(expressID) { + super(expressID); + this.type = 986844984; + } + } + IFC42.IfcPropertyAbstraction = IfcPropertyAbstraction; + class IfcPropertyEnumeration extends IfcPropertyAbstraction { + constructor(expressID, Name, EnumerationValues, Unit) { + super(expressID); + this.Name = Name; + this.EnumerationValues = EnumerationValues; + this.Unit = Unit; + this.type = 3710013099; + } + } + IFC42.IfcPropertyEnumeration = IfcPropertyEnumeration; + class IfcQuantityArea extends IfcPhysicalSimpleQuantity { + constructor(expressID, Name, Description, Unit, AreaValue, Formula) { + super(expressID, Name, Description, Unit); + this.Name = Name; + this.Description = Description; + this.Unit = Unit; + this.AreaValue = AreaValue; + this.Formula = Formula; + this.type = 2044713172; + } + } + IFC42.IfcQuantityArea = IfcQuantityArea; + class IfcQuantityCount extends IfcPhysicalSimpleQuantity { + constructor(expressID, Name, Description, Unit, CountValue, Formula) { + super(expressID, Name, Description, Unit); + this.Name = Name; + this.Description = Description; + this.Unit = Unit; + this.CountValue = CountValue; + this.Formula = Formula; + this.type = 2093928680; + } + } + IFC42.IfcQuantityCount = IfcQuantityCount; + class IfcQuantityLength extends IfcPhysicalSimpleQuantity { + constructor(expressID, Name, Description, Unit, LengthValue, Formula) { + super(expressID, Name, Description, Unit); + this.Name = Name; + this.Description = Description; + this.Unit = Unit; + this.LengthValue = LengthValue; + this.Formula = Formula; + this.type = 931644368; + } + } + IFC42.IfcQuantityLength = IfcQuantityLength; + class IfcQuantityTime extends IfcPhysicalSimpleQuantity { + constructor(expressID, Name, Description, Unit, TimeValue, Formula) { + super(expressID, Name, Description, Unit); + this.Name = Name; + this.Description = Description; + this.Unit = Unit; + this.TimeValue = TimeValue; + this.Formula = Formula; + this.type = 3252649465; + } + } + IFC42.IfcQuantityTime = IfcQuantityTime; + class IfcQuantityVolume extends IfcPhysicalSimpleQuantity { + constructor(expressID, Name, Description, Unit, VolumeValue, Formula) { + super(expressID, Name, Description, Unit); + this.Name = Name; + this.Description = Description; + this.Unit = Unit; + this.VolumeValue = VolumeValue; + this.Formula = Formula; + this.type = 2405470396; + } + } + IFC42.IfcQuantityVolume = IfcQuantityVolume; + class IfcQuantityWeight extends IfcPhysicalSimpleQuantity { + constructor(expressID, Name, Description, Unit, WeightValue, Formula) { + super(expressID, Name, Description, Unit); + this.Name = Name; + this.Description = Description; + this.Unit = Unit; + this.WeightValue = WeightValue; + this.Formula = Formula; + this.type = 825690147; + } + } + IFC42.IfcQuantityWeight = IfcQuantityWeight; + class IfcRecurrencePattern extends IfcLineObject { + constructor(expressID, RecurrenceType, DayComponent, WeekdayComponent, MonthComponent, Position, Interval, Occurrences, TimePeriods) { + super(expressID); + this.RecurrenceType = RecurrenceType; + this.DayComponent = DayComponent; + this.WeekdayComponent = WeekdayComponent; + this.MonthComponent = MonthComponent; + this.Position = Position; + this.Interval = Interval; + this.Occurrences = Occurrences; + this.TimePeriods = TimePeriods; + this.type = 3915482550; + } + } + IFC42.IfcRecurrencePattern = IfcRecurrencePattern; + class IfcReference extends IfcLineObject { + constructor(expressID, TypeIdentifier, AttributeIdentifier, InstanceName, ListPositions, InnerReference) { + super(expressID); + this.TypeIdentifier = TypeIdentifier; + this.AttributeIdentifier = AttributeIdentifier; + this.InstanceName = InstanceName; + this.ListPositions = ListPositions; + this.InnerReference = InnerReference; + this.type = 2433181523; + } + } + IFC42.IfcReference = IfcReference; + class IfcRepresentation extends IfcLineObject { + constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { + super(expressID); + this.ContextOfItems = ContextOfItems; + this.RepresentationIdentifier = RepresentationIdentifier; + this.RepresentationType = RepresentationType; + this.Items = Items; + this.type = 1076942058; + } + } + IFC42.IfcRepresentation = IfcRepresentation; + class IfcRepresentationContext extends IfcLineObject { + constructor(expressID, ContextIdentifier, ContextType) { + super(expressID); + this.ContextIdentifier = ContextIdentifier; + this.ContextType = ContextType; + this.type = 3377609919; + } + } + IFC42.IfcRepresentationContext = IfcRepresentationContext; + class IfcRepresentationItem extends IfcLineObject { + constructor(expressID) { + super(expressID); + this.type = 3008791417; + } + } + IFC42.IfcRepresentationItem = IfcRepresentationItem; + class IfcRepresentationMap extends IfcLineObject { + constructor(expressID, MappingOrigin, MappedRepresentation) { + super(expressID); + this.MappingOrigin = MappingOrigin; + this.MappedRepresentation = MappedRepresentation; + this.type = 1660063152; + } + } + IFC42.IfcRepresentationMap = IfcRepresentationMap; + class IfcResourceLevelRelationship extends IfcLineObject { + constructor(expressID, Name, Description) { + super(expressID); + this.Name = Name; + this.Description = Description; + this.type = 2439245199; + } + } + IFC42.IfcResourceLevelRelationship = IfcResourceLevelRelationship; + class IfcRoot extends IfcLineObject { + constructor(expressID, GlobalId, OwnerHistory, Name, Description) { + super(expressID); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.type = 2341007311; + } + } + IFC42.IfcRoot = IfcRoot; + class IfcSIUnit extends IfcNamedUnit { + constructor(expressID, UnitType, Prefix, Name) { + super(expressID, new Handle(0), UnitType); + this.UnitType = UnitType; + this.Prefix = Prefix; + this.Name = Name; + this.type = 448429030; + } + } + IFC42.IfcSIUnit = IfcSIUnit; + class IfcSchedulingTime extends IfcLineObject { + constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin) { + super(expressID); + this.Name = Name; + this.DataOrigin = DataOrigin; + this.UserDefinedDataOrigin = UserDefinedDataOrigin; + this.type = 1054537805; + } + } + IFC42.IfcSchedulingTime = IfcSchedulingTime; + class IfcShapeAspect extends IfcLineObject { + constructor(expressID, ShapeRepresentations, Name, Description, ProductDefinitional, PartOfProductDefinitionShape) { + super(expressID); + this.ShapeRepresentations = ShapeRepresentations; + this.Name = Name; + this.Description = Description; + this.ProductDefinitional = ProductDefinitional; + this.PartOfProductDefinitionShape = PartOfProductDefinitionShape; + this.type = 867548509; + } + } + IFC42.IfcShapeAspect = IfcShapeAspect; + class IfcShapeModel extends IfcRepresentation { + constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { + super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items); + this.ContextOfItems = ContextOfItems; + this.RepresentationIdentifier = RepresentationIdentifier; + this.RepresentationType = RepresentationType; + this.Items = Items; + this.type = 3982875396; + } + } + IFC42.IfcShapeModel = IfcShapeModel; + class IfcShapeRepresentation extends IfcShapeModel { + constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { + super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items); + this.ContextOfItems = ContextOfItems; + this.RepresentationIdentifier = RepresentationIdentifier; + this.RepresentationType = RepresentationType; + this.Items = Items; + this.type = 4240577450; + } + } + IFC42.IfcShapeRepresentation = IfcShapeRepresentation; + class IfcStructuralConnectionCondition extends IfcLineObject { + constructor(expressID, Name) { + super(expressID); + this.Name = Name; + this.type = 2273995522; + } + } + IFC42.IfcStructuralConnectionCondition = IfcStructuralConnectionCondition; + class IfcStructuralLoad extends IfcLineObject { + constructor(expressID, Name) { + super(expressID); + this.Name = Name; + this.type = 2162789131; + } + } + IFC42.IfcStructuralLoad = IfcStructuralLoad; + class IfcStructuralLoadConfiguration extends IfcStructuralLoad { + constructor(expressID, Name, Values, Locations) { + super(expressID, Name); + this.Name = Name; + this.Values = Values; + this.Locations = Locations; + this.type = 3478079324; + } + } + IFC42.IfcStructuralLoadConfiguration = IfcStructuralLoadConfiguration; + class IfcStructuralLoadOrResult extends IfcStructuralLoad { + constructor(expressID, Name) { + super(expressID, Name); + this.Name = Name; + this.type = 609421318; + } + } + IFC42.IfcStructuralLoadOrResult = IfcStructuralLoadOrResult; + class IfcStructuralLoadStatic extends IfcStructuralLoadOrResult { + constructor(expressID, Name) { + super(expressID, Name); + this.Name = Name; + this.type = 2525727697; + } + } + IFC42.IfcStructuralLoadStatic = IfcStructuralLoadStatic; + class IfcStructuralLoadTemperature extends IfcStructuralLoadStatic { + constructor(expressID, Name, DeltaTConstant, DeltaTY, DeltaTZ) { + super(expressID, Name); + this.Name = Name; + this.DeltaTConstant = DeltaTConstant; + this.DeltaTY = DeltaTY; + this.DeltaTZ = DeltaTZ; + this.type = 3408363356; + } + } + IFC42.IfcStructuralLoadTemperature = IfcStructuralLoadTemperature; + class IfcStyleModel extends IfcRepresentation { + constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { + super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items); + this.ContextOfItems = ContextOfItems; + this.RepresentationIdentifier = RepresentationIdentifier; + this.RepresentationType = RepresentationType; + this.Items = Items; + this.type = 2830218821; + } + } + IFC42.IfcStyleModel = IfcStyleModel; + class IfcStyledItem extends IfcRepresentationItem { + constructor(expressID, Item, Styles, Name) { + super(expressID); + this.Item = Item; + this.Styles = Styles; + this.Name = Name; + this.type = 3958052878; + } + } + IFC42.IfcStyledItem = IfcStyledItem; + class IfcStyledRepresentation extends IfcStyleModel { + constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { + super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items); + this.ContextOfItems = ContextOfItems; + this.RepresentationIdentifier = RepresentationIdentifier; + this.RepresentationType = RepresentationType; + this.Items = Items; + this.type = 3049322572; + } + } + IFC42.IfcStyledRepresentation = IfcStyledRepresentation; + class IfcSurfaceReinforcementArea extends IfcStructuralLoadOrResult { + constructor(expressID, Name, SurfaceReinforcement1, SurfaceReinforcement2, ShearReinforcement) { + super(expressID, Name); + this.Name = Name; + this.SurfaceReinforcement1 = SurfaceReinforcement1; + this.SurfaceReinforcement2 = SurfaceReinforcement2; + this.ShearReinforcement = ShearReinforcement; + this.type = 2934153892; + } + } + IFC42.IfcSurfaceReinforcementArea = IfcSurfaceReinforcementArea; + class IfcSurfaceStyle extends IfcPresentationStyle { + constructor(expressID, Name, Side, Styles) { + super(expressID, Name); + this.Name = Name; + this.Side = Side; + this.Styles = Styles; + this.type = 1300840506; + } + } + IFC42.IfcSurfaceStyle = IfcSurfaceStyle; + class IfcSurfaceStyleLighting extends IfcPresentationItem { + constructor(expressID, DiffuseTransmissionColour, DiffuseReflectionColour, TransmissionColour, ReflectanceColour) { + super(expressID); + this.DiffuseTransmissionColour = DiffuseTransmissionColour; + this.DiffuseReflectionColour = DiffuseReflectionColour; + this.TransmissionColour = TransmissionColour; + this.ReflectanceColour = ReflectanceColour; + this.type = 3303107099; + } + } + IFC42.IfcSurfaceStyleLighting = IfcSurfaceStyleLighting; + class IfcSurfaceStyleRefraction extends IfcPresentationItem { + constructor(expressID, RefractionIndex, DispersionFactor) { + super(expressID); + this.RefractionIndex = RefractionIndex; + this.DispersionFactor = DispersionFactor; + this.type = 1607154358; + } + } + IFC42.IfcSurfaceStyleRefraction = IfcSurfaceStyleRefraction; + class IfcSurfaceStyleShading extends IfcPresentationItem { + constructor(expressID, SurfaceColour, Transparency) { + super(expressID); + this.SurfaceColour = SurfaceColour; + this.Transparency = Transparency; + this.type = 846575682; + } + } + IFC42.IfcSurfaceStyleShading = IfcSurfaceStyleShading; + class IfcSurfaceStyleWithTextures extends IfcPresentationItem { + constructor(expressID, Textures) { + super(expressID); + this.Textures = Textures; + this.type = 1351298697; + } + } + IFC42.IfcSurfaceStyleWithTextures = IfcSurfaceStyleWithTextures; + class IfcSurfaceTexture extends IfcPresentationItem { + constructor(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter) { + super(expressID); + this.RepeatS = RepeatS; + this.RepeatT = RepeatT; + this.Mode = Mode; + this.TextureTransform = TextureTransform; + this.Parameter = Parameter; + this.type = 626085974; + } + } + IFC42.IfcSurfaceTexture = IfcSurfaceTexture; + class IfcTable extends IfcLineObject { + constructor(expressID, Name, Rows, Columns) { + super(expressID); + this.Name = Name; + this.Rows = Rows; + this.Columns = Columns; + this.type = 985171141; + } + } + IFC42.IfcTable = IfcTable; + class IfcTableColumn extends IfcLineObject { + constructor(expressID, Identifier, Name, Description, Unit, ReferencePath) { + super(expressID); + this.Identifier = Identifier; + this.Name = Name; + this.Description = Description; + this.Unit = Unit; + this.ReferencePath = ReferencePath; + this.type = 2043862942; + } + } + IFC42.IfcTableColumn = IfcTableColumn; + class IfcTableRow extends IfcLineObject { + constructor(expressID, RowCells, IsHeading) { + super(expressID); + this.RowCells = RowCells; + this.IsHeading = IsHeading; + this.type = 531007025; + } + } + IFC42.IfcTableRow = IfcTableRow; + class IfcTaskTime extends IfcSchedulingTime { + constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin, DurationType, ScheduleDuration, ScheduleStart, ScheduleFinish, EarlyStart, EarlyFinish, LateStart, LateFinish, FreeFloat, TotalFloat, IsCritical, StatusTime, ActualDuration, ActualStart, ActualFinish, RemainingTime, Completion) { + super(expressID, Name, DataOrigin, UserDefinedDataOrigin); + this.Name = Name; + this.DataOrigin = DataOrigin; + this.UserDefinedDataOrigin = UserDefinedDataOrigin; + this.DurationType = DurationType; + this.ScheduleDuration = ScheduleDuration; + this.ScheduleStart = ScheduleStart; + this.ScheduleFinish = ScheduleFinish; + this.EarlyStart = EarlyStart; + this.EarlyFinish = EarlyFinish; + this.LateStart = LateStart; + this.LateFinish = LateFinish; + this.FreeFloat = FreeFloat; + this.TotalFloat = TotalFloat; + this.IsCritical = IsCritical; + this.StatusTime = StatusTime; + this.ActualDuration = ActualDuration; + this.ActualStart = ActualStart; + this.ActualFinish = ActualFinish; + this.RemainingTime = RemainingTime; + this.Completion = Completion; + this.type = 1549132990; + } + } + IFC42.IfcTaskTime = IfcTaskTime; + class IfcTaskTimeRecurring extends IfcTaskTime { + constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin, DurationType, ScheduleDuration, ScheduleStart, ScheduleFinish, EarlyStart, EarlyFinish, LateStart, LateFinish, FreeFloat, TotalFloat, IsCritical, StatusTime, ActualDuration, ActualStart, ActualFinish, RemainingTime, Completion, Recurrence) { + super(expressID, Name, DataOrigin, UserDefinedDataOrigin, DurationType, ScheduleDuration, ScheduleStart, ScheduleFinish, EarlyStart, EarlyFinish, LateStart, LateFinish, FreeFloat, TotalFloat, IsCritical, StatusTime, ActualDuration, ActualStart, ActualFinish, RemainingTime, Completion); + this.Name = Name; + this.DataOrigin = DataOrigin; + this.UserDefinedDataOrigin = UserDefinedDataOrigin; + this.DurationType = DurationType; + this.ScheduleDuration = ScheduleDuration; + this.ScheduleStart = ScheduleStart; + this.ScheduleFinish = ScheduleFinish; + this.EarlyStart = EarlyStart; + this.EarlyFinish = EarlyFinish; + this.LateStart = LateStart; + this.LateFinish = LateFinish; + this.FreeFloat = FreeFloat; + this.TotalFloat = TotalFloat; + this.IsCritical = IsCritical; + this.StatusTime = StatusTime; + this.ActualDuration = ActualDuration; + this.ActualStart = ActualStart; + this.ActualFinish = ActualFinish; + this.RemainingTime = RemainingTime; + this.Completion = Completion; + this.Recurrence = Recurrence; + this.type = 2771591690; + } + } + IFC42.IfcTaskTimeRecurring = IfcTaskTimeRecurring; + class IfcTelecomAddress extends IfcAddress { + constructor(expressID, Purpose, Description, UserDefinedPurpose, TelephoneNumbers, FacsimileNumbers, PagerNumber, ElectronicMailAddresses, WWWHomePageURL, MessagingIDs) { + super(expressID, Purpose, Description, UserDefinedPurpose); + this.Purpose = Purpose; + this.Description = Description; + this.UserDefinedPurpose = UserDefinedPurpose; + this.TelephoneNumbers = TelephoneNumbers; + this.FacsimileNumbers = FacsimileNumbers; + this.PagerNumber = PagerNumber; + this.ElectronicMailAddresses = ElectronicMailAddresses; + this.WWWHomePageURL = WWWHomePageURL; + this.MessagingIDs = MessagingIDs; + this.type = 912023232; + } + } + IFC42.IfcTelecomAddress = IfcTelecomAddress; + class IfcTextStyle extends IfcPresentationStyle { + constructor(expressID, Name, TextCharacterAppearance, TextStyle, TextFontStyle, ModelOrDraughting) { + super(expressID, Name); + this.Name = Name; + this.TextCharacterAppearance = TextCharacterAppearance; + this.TextStyle = TextStyle; + this.TextFontStyle = TextFontStyle; + this.ModelOrDraughting = ModelOrDraughting; + this.type = 1447204868; + } + } + IFC42.IfcTextStyle = IfcTextStyle; + class IfcTextStyleForDefinedFont extends IfcPresentationItem { + constructor(expressID, Colour, BackgroundColour) { + super(expressID); + this.Colour = Colour; + this.BackgroundColour = BackgroundColour; + this.type = 2636378356; + } + } + IFC42.IfcTextStyleForDefinedFont = IfcTextStyleForDefinedFont; + class IfcTextStyleTextModel extends IfcPresentationItem { + constructor(expressID, TextIndent, TextAlign, TextDecoration, LetterSpacing, WordSpacing, TextTransform, LineHeight) { + super(expressID); + this.TextIndent = TextIndent; + this.TextAlign = TextAlign; + this.TextDecoration = TextDecoration; + this.LetterSpacing = LetterSpacing; + this.WordSpacing = WordSpacing; + this.TextTransform = TextTransform; + this.LineHeight = LineHeight; + this.type = 1640371178; + } + } + IFC42.IfcTextStyleTextModel = IfcTextStyleTextModel; + class IfcTextureCoordinate extends IfcPresentationItem { + constructor(expressID, Maps) { + super(expressID); + this.Maps = Maps; + this.type = 280115917; + } + } + IFC42.IfcTextureCoordinate = IfcTextureCoordinate; + class IfcTextureCoordinateGenerator extends IfcTextureCoordinate { + constructor(expressID, Maps, Mode, Parameter) { + super(expressID, Maps); + this.Maps = Maps; + this.Mode = Mode; + this.Parameter = Parameter; + this.type = 1742049831; + } + } + IFC42.IfcTextureCoordinateGenerator = IfcTextureCoordinateGenerator; + class IfcTextureMap extends IfcTextureCoordinate { + constructor(expressID, Maps, Vertices, MappedTo) { + super(expressID, Maps); + this.Maps = Maps; + this.Vertices = Vertices; + this.MappedTo = MappedTo; + this.type = 2552916305; + } + } + IFC42.IfcTextureMap = IfcTextureMap; + class IfcTextureVertex extends IfcPresentationItem { + constructor(expressID, Coordinates) { + super(expressID); + this.Coordinates = Coordinates; + this.type = 1210645708; + } + } + IFC42.IfcTextureVertex = IfcTextureVertex; + class IfcTextureVertexList extends IfcPresentationItem { + constructor(expressID, TexCoordsList) { + super(expressID); + this.TexCoordsList = TexCoordsList; + this.type = 3611470254; + } + } + IFC42.IfcTextureVertexList = IfcTextureVertexList; + class IfcTimePeriod extends IfcLineObject { + constructor(expressID, StartTime, EndTime) { + super(expressID); + this.StartTime = StartTime; + this.EndTime = EndTime; + this.type = 1199560280; + } + } + IFC42.IfcTimePeriod = IfcTimePeriod; + class IfcTimeSeries extends IfcLineObject { + constructor(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit) { + super(expressID); + this.Name = Name; + this.Description = Description; + this.StartTime = StartTime; + this.EndTime = EndTime; + this.TimeSeriesDataType = TimeSeriesDataType; + this.DataOrigin = DataOrigin; + this.UserDefinedDataOrigin = UserDefinedDataOrigin; + this.Unit = Unit; + this.type = 3101149627; + } + } + IFC42.IfcTimeSeries = IfcTimeSeries; + class IfcTimeSeriesValue extends IfcLineObject { + constructor(expressID, ListValues) { + super(expressID); + this.ListValues = ListValues; + this.type = 581633288; + } + } + IFC42.IfcTimeSeriesValue = IfcTimeSeriesValue; + class IfcTopologicalRepresentationItem extends IfcRepresentationItem { + constructor(expressID) { + super(expressID); + this.type = 1377556343; + } + } + IFC42.IfcTopologicalRepresentationItem = IfcTopologicalRepresentationItem; + class IfcTopologyRepresentation extends IfcShapeModel { + constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { + super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items); + this.ContextOfItems = ContextOfItems; + this.RepresentationIdentifier = RepresentationIdentifier; + this.RepresentationType = RepresentationType; + this.Items = Items; + this.type = 1735638870; + } + } + IFC42.IfcTopologyRepresentation = IfcTopologyRepresentation; + class IfcUnitAssignment extends IfcLineObject { + constructor(expressID, Units) { + super(expressID); + this.Units = Units; + this.type = 180925521; + } + } + IFC42.IfcUnitAssignment = IfcUnitAssignment; + class IfcVertex extends IfcTopologicalRepresentationItem { + constructor(expressID) { + super(expressID); + this.type = 2799835756; + } + } + IFC42.IfcVertex = IfcVertex; + class IfcVertexPoint extends IfcVertex { + constructor(expressID, VertexGeometry) { + super(expressID); + this.VertexGeometry = VertexGeometry; + this.type = 1907098498; + } + } + IFC42.IfcVertexPoint = IfcVertexPoint; + class IfcVirtualGridIntersection extends IfcLineObject { + constructor(expressID, IntersectingAxes, OffsetDistances) { + super(expressID); + this.IntersectingAxes = IntersectingAxes; + this.OffsetDistances = OffsetDistances; + this.type = 891718957; + } + } + IFC42.IfcVirtualGridIntersection = IfcVirtualGridIntersection; + class IfcWorkTime extends IfcSchedulingTime { + constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin, RecurrencePattern, Start, Finish) { + super(expressID, Name, DataOrigin, UserDefinedDataOrigin); + this.Name = Name; + this.DataOrigin = DataOrigin; + this.UserDefinedDataOrigin = UserDefinedDataOrigin; + this.RecurrencePattern = RecurrencePattern; + this.Start = Start; + this.Finish = Finish; + this.type = 1236880293; + } + } + IFC42.IfcWorkTime = IfcWorkTime; + class IfcApprovalRelationship extends IfcResourceLevelRelationship { + constructor(expressID, Name, Description, RelatingApproval, RelatedApprovals) { + super(expressID, Name, Description); + this.Name = Name; + this.Description = Description; + this.RelatingApproval = RelatingApproval; + this.RelatedApprovals = RelatedApprovals; + this.type = 3869604511; + } + } + IFC42.IfcApprovalRelationship = IfcApprovalRelationship; + class IfcArbitraryClosedProfileDef extends IfcProfileDef { + constructor(expressID, ProfileType, ProfileName, OuterCurve) { + super(expressID, ProfileType, ProfileName); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.OuterCurve = OuterCurve; + this.type = 3798115385; + } + } + IFC42.IfcArbitraryClosedProfileDef = IfcArbitraryClosedProfileDef; + class IfcArbitraryOpenProfileDef extends IfcProfileDef { + constructor(expressID, ProfileType, ProfileName, Curve) { + super(expressID, ProfileType, ProfileName); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Curve = Curve; + this.type = 1310608509; + } + } + IFC42.IfcArbitraryOpenProfileDef = IfcArbitraryOpenProfileDef; + class IfcArbitraryProfileDefWithVoids extends IfcArbitraryClosedProfileDef { + constructor(expressID, ProfileType, ProfileName, OuterCurve, InnerCurves) { + super(expressID, ProfileType, ProfileName, OuterCurve); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.OuterCurve = OuterCurve; + this.InnerCurves = InnerCurves; + this.type = 2705031697; + } + } + IFC42.IfcArbitraryProfileDefWithVoids = IfcArbitraryProfileDefWithVoids; + class IfcBlobTexture extends IfcSurfaceTexture { + constructor(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter, RasterFormat, RasterCode) { + super(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter); + this.RepeatS = RepeatS; + this.RepeatT = RepeatT; + this.Mode = Mode; + this.TextureTransform = TextureTransform; + this.Parameter = Parameter; + this.RasterFormat = RasterFormat; + this.RasterCode = RasterCode; + this.type = 616511568; + } + } + IFC42.IfcBlobTexture = IfcBlobTexture; + class IfcCenterLineProfileDef extends IfcArbitraryOpenProfileDef { + constructor(expressID, ProfileType, ProfileName, Curve, Thickness) { + super(expressID, ProfileType, ProfileName, Curve); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Curve = Curve; + this.Thickness = Thickness; + this.type = 3150382593; + } + } + IFC42.IfcCenterLineProfileDef = IfcCenterLineProfileDef; + class IfcClassification extends IfcExternalInformation { + constructor(expressID, Source, Edition, EditionDate, Name, Description, Location, ReferenceTokens) { + super(expressID); + this.Source = Source; + this.Edition = Edition; + this.EditionDate = EditionDate; + this.Name = Name; + this.Description = Description; + this.Location = Location; + this.ReferenceTokens = ReferenceTokens; + this.type = 747523909; + } + } + IFC42.IfcClassification = IfcClassification; + class IfcClassificationReference extends IfcExternalReference { + constructor(expressID, Location, Identification, Name, ReferencedSource, Description, Sort) { + super(expressID, Location, Identification, Name); + this.Location = Location; + this.Identification = Identification; + this.Name = Name; + this.ReferencedSource = ReferencedSource; + this.Description = Description; + this.Sort = Sort; + this.type = 647927063; + } + } + IFC42.IfcClassificationReference = IfcClassificationReference; + class IfcColourRgbList extends IfcPresentationItem { + constructor(expressID, ColourList) { + super(expressID); + this.ColourList = ColourList; + this.type = 3285139300; + } + } + IFC42.IfcColourRgbList = IfcColourRgbList; + class IfcColourSpecification extends IfcPresentationItem { + constructor(expressID, Name) { + super(expressID); + this.Name = Name; + this.type = 3264961684; + } + } + IFC42.IfcColourSpecification = IfcColourSpecification; + class IfcCompositeProfileDef extends IfcProfileDef { + constructor(expressID, ProfileType, ProfileName, Profiles, Label) { + super(expressID, ProfileType, ProfileName); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Profiles = Profiles; + this.Label = Label; + this.type = 1485152156; + } + } + IFC42.IfcCompositeProfileDef = IfcCompositeProfileDef; + class IfcConnectedFaceSet extends IfcTopologicalRepresentationItem { + constructor(expressID, CfsFaces) { + super(expressID); + this.CfsFaces = CfsFaces; + this.type = 370225590; + } + } + IFC42.IfcConnectedFaceSet = IfcConnectedFaceSet; + class IfcConnectionCurveGeometry extends IfcConnectionGeometry { + constructor(expressID, CurveOnRelatingElement, CurveOnRelatedElement) { + super(expressID); + this.CurveOnRelatingElement = CurveOnRelatingElement; + this.CurveOnRelatedElement = CurveOnRelatedElement; + this.type = 1981873012; + } + } + IFC42.IfcConnectionCurveGeometry = IfcConnectionCurveGeometry; + class IfcConnectionPointEccentricity extends IfcConnectionPointGeometry { + constructor(expressID, PointOnRelatingElement, PointOnRelatedElement, EccentricityInX, EccentricityInY, EccentricityInZ) { + super(expressID, PointOnRelatingElement, PointOnRelatedElement); + this.PointOnRelatingElement = PointOnRelatingElement; + this.PointOnRelatedElement = PointOnRelatedElement; + this.EccentricityInX = EccentricityInX; + this.EccentricityInY = EccentricityInY; + this.EccentricityInZ = EccentricityInZ; + this.type = 45288368; + } + } + IFC42.IfcConnectionPointEccentricity = IfcConnectionPointEccentricity; + class IfcContextDependentUnit extends IfcNamedUnit { + constructor(expressID, Dimensions, UnitType, Name) { + super(expressID, Dimensions, UnitType); + this.Dimensions = Dimensions; + this.UnitType = UnitType; + this.Name = Name; + this.type = 3050246964; + } + } + IFC42.IfcContextDependentUnit = IfcContextDependentUnit; + class IfcConversionBasedUnit extends IfcNamedUnit { + constructor(expressID, Dimensions, UnitType, Name, ConversionFactor) { + super(expressID, Dimensions, UnitType); + this.Dimensions = Dimensions; + this.UnitType = UnitType; + this.Name = Name; + this.ConversionFactor = ConversionFactor; + this.type = 2889183280; + } + } + IFC42.IfcConversionBasedUnit = IfcConversionBasedUnit; + class IfcConversionBasedUnitWithOffset extends IfcConversionBasedUnit { + constructor(expressID, Dimensions, UnitType, Name, ConversionFactor, ConversionOffset) { + super(expressID, Dimensions, UnitType, Name, ConversionFactor); + this.Dimensions = Dimensions; + this.UnitType = UnitType; + this.Name = Name; + this.ConversionFactor = ConversionFactor; + this.ConversionOffset = ConversionOffset; + this.type = 2713554722; + } + } + IFC42.IfcConversionBasedUnitWithOffset = IfcConversionBasedUnitWithOffset; + class IfcCurrencyRelationship extends IfcResourceLevelRelationship { + constructor(expressID, Name, Description, RelatingMonetaryUnit, RelatedMonetaryUnit, ExchangeRate, RateDateTime, RateSource) { + super(expressID, Name, Description); + this.Name = Name; + this.Description = Description; + this.RelatingMonetaryUnit = RelatingMonetaryUnit; + this.RelatedMonetaryUnit = RelatedMonetaryUnit; + this.ExchangeRate = ExchangeRate; + this.RateDateTime = RateDateTime; + this.RateSource = RateSource; + this.type = 539742890; + } + } + IFC42.IfcCurrencyRelationship = IfcCurrencyRelationship; + class IfcCurveStyle extends IfcPresentationStyle { + constructor(expressID, Name, CurveFont, CurveWidth, CurveColour, ModelOrDraughting) { + super(expressID, Name); + this.Name = Name; + this.CurveFont = CurveFont; + this.CurveWidth = CurveWidth; + this.CurveColour = CurveColour; + this.ModelOrDraughting = ModelOrDraughting; + this.type = 3800577675; + } + } + IFC42.IfcCurveStyle = IfcCurveStyle; + class IfcCurveStyleFont extends IfcPresentationItem { + constructor(expressID, Name, PatternList) { + super(expressID); + this.Name = Name; + this.PatternList = PatternList; + this.type = 1105321065; + } + } + IFC42.IfcCurveStyleFont = IfcCurveStyleFont; + class IfcCurveStyleFontAndScaling extends IfcPresentationItem { + constructor(expressID, Name, CurveFont, CurveFontScaling) { + super(expressID); + this.Name = Name; + this.CurveFont = CurveFont; + this.CurveFontScaling = CurveFontScaling; + this.type = 2367409068; + } + } + IFC42.IfcCurveStyleFontAndScaling = IfcCurveStyleFontAndScaling; + class IfcCurveStyleFontPattern extends IfcPresentationItem { + constructor(expressID, VisibleSegmentLength, InvisibleSegmentLength) { + super(expressID); + this.VisibleSegmentLength = VisibleSegmentLength; + this.InvisibleSegmentLength = InvisibleSegmentLength; + this.type = 3510044353; + } + } + IFC42.IfcCurveStyleFontPattern = IfcCurveStyleFontPattern; + class IfcDerivedProfileDef extends IfcProfileDef { + constructor(expressID, ProfileType, ProfileName, ParentProfile, Operator, Label) { + super(expressID, ProfileType, ProfileName); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.ParentProfile = ParentProfile; + this.Operator = Operator; + this.Label = Label; + this.type = 3632507154; + } + } + IFC42.IfcDerivedProfileDef = IfcDerivedProfileDef; + class IfcDocumentInformation extends IfcExternalInformation { + constructor(expressID, Identification, Name, Description, Location, Purpose, IntendedUse, Scope, Revision, DocumentOwner, Editors, CreationTime, LastRevisionTime, ElectronicFormat, ValidFrom, ValidUntil, Confidentiality, Status) { + super(expressID); + this.Identification = Identification; + this.Name = Name; + this.Description = Description; + this.Location = Location; + this.Purpose = Purpose; + this.IntendedUse = IntendedUse; + this.Scope = Scope; + this.Revision = Revision; + this.DocumentOwner = DocumentOwner; + this.Editors = Editors; + this.CreationTime = CreationTime; + this.LastRevisionTime = LastRevisionTime; + this.ElectronicFormat = ElectronicFormat; + this.ValidFrom = ValidFrom; + this.ValidUntil = ValidUntil; + this.Confidentiality = Confidentiality; + this.Status = Status; + this.type = 1154170062; + } + } + IFC42.IfcDocumentInformation = IfcDocumentInformation; + class IfcDocumentInformationRelationship extends IfcResourceLevelRelationship { + constructor(expressID, Name, Description, RelatingDocument, RelatedDocuments, RelationshipType) { + super(expressID, Name, Description); + this.Name = Name; + this.Description = Description; + this.RelatingDocument = RelatingDocument; + this.RelatedDocuments = RelatedDocuments; + this.RelationshipType = RelationshipType; + this.type = 770865208; + } + } + IFC42.IfcDocumentInformationRelationship = IfcDocumentInformationRelationship; + class IfcDocumentReference extends IfcExternalReference { + constructor(expressID, Location, Identification, Name, Description, ReferencedDocument) { + super(expressID, Location, Identification, Name); + this.Location = Location; + this.Identification = Identification; + this.Name = Name; + this.Description = Description; + this.ReferencedDocument = ReferencedDocument; + this.type = 3732053477; + } + } + IFC42.IfcDocumentReference = IfcDocumentReference; + class IfcEdge extends IfcTopologicalRepresentationItem { + constructor(expressID, EdgeStart, EdgeEnd) { + super(expressID); + this.EdgeStart = EdgeStart; + this.EdgeEnd = EdgeEnd; + this.type = 3900360178; + } + } + IFC42.IfcEdge = IfcEdge; + class IfcEdgeCurve extends IfcEdge { + constructor(expressID, EdgeStart, EdgeEnd, EdgeGeometry, SameSense) { + super(expressID, EdgeStart, EdgeEnd); + this.EdgeStart = EdgeStart; + this.EdgeEnd = EdgeEnd; + this.EdgeGeometry = EdgeGeometry; + this.SameSense = SameSense; + this.type = 476780140; + } + } + IFC42.IfcEdgeCurve = IfcEdgeCurve; + class IfcEventTime extends IfcSchedulingTime { + constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin, ActualDate, EarlyDate, LateDate, ScheduleDate) { + super(expressID, Name, DataOrigin, UserDefinedDataOrigin); + this.Name = Name; + this.DataOrigin = DataOrigin; + this.UserDefinedDataOrigin = UserDefinedDataOrigin; + this.ActualDate = ActualDate; + this.EarlyDate = EarlyDate; + this.LateDate = LateDate; + this.ScheduleDate = ScheduleDate; + this.type = 211053100; + } + } + IFC42.IfcEventTime = IfcEventTime; + class IfcExtendedProperties extends IfcPropertyAbstraction { + constructor(expressID, Name, Description, Properties2) { + super(expressID); + this.Name = Name; + this.Description = Description; + this.Properties = Properties2; + this.type = 297599258; + } + } + IFC42.IfcExtendedProperties = IfcExtendedProperties; + class IfcExternalReferenceRelationship extends IfcResourceLevelRelationship { + constructor(expressID, Name, Description, RelatingReference, RelatedResourceObjects) { + super(expressID, Name, Description); + this.Name = Name; + this.Description = Description; + this.RelatingReference = RelatingReference; + this.RelatedResourceObjects = RelatedResourceObjects; + this.type = 1437805879; + } + } + IFC42.IfcExternalReferenceRelationship = IfcExternalReferenceRelationship; + class IfcFace extends IfcTopologicalRepresentationItem { + constructor(expressID, Bounds) { + super(expressID); + this.Bounds = Bounds; + this.type = 2556980723; + } + } + IFC42.IfcFace = IfcFace; + class IfcFaceBound extends IfcTopologicalRepresentationItem { + constructor(expressID, Bound, Orientation) { + super(expressID); + this.Bound = Bound; + this.Orientation = Orientation; + this.type = 1809719519; + } + } + IFC42.IfcFaceBound = IfcFaceBound; + class IfcFaceOuterBound extends IfcFaceBound { + constructor(expressID, Bound, Orientation) { + super(expressID, Bound, Orientation); + this.Bound = Bound; + this.Orientation = Orientation; + this.type = 803316827; + } + } + IFC42.IfcFaceOuterBound = IfcFaceOuterBound; + class IfcFaceSurface extends IfcFace { + constructor(expressID, Bounds, FaceSurface, SameSense) { + super(expressID, Bounds); + this.Bounds = Bounds; + this.FaceSurface = FaceSurface; + this.SameSense = SameSense; + this.type = 3008276851; + } + } + IFC42.IfcFaceSurface = IfcFaceSurface; + class IfcFailureConnectionCondition extends IfcStructuralConnectionCondition { + constructor(expressID, Name, TensionFailureX, TensionFailureY, TensionFailureZ, CompressionFailureX, CompressionFailureY, CompressionFailureZ) { + super(expressID, Name); + this.Name = Name; + this.TensionFailureX = TensionFailureX; + this.TensionFailureY = TensionFailureY; + this.TensionFailureZ = TensionFailureZ; + this.CompressionFailureX = CompressionFailureX; + this.CompressionFailureY = CompressionFailureY; + this.CompressionFailureZ = CompressionFailureZ; + this.type = 4219587988; + } + } + IFC42.IfcFailureConnectionCondition = IfcFailureConnectionCondition; + class IfcFillAreaStyle extends IfcPresentationStyle { + constructor(expressID, Name, FillStyles, ModelorDraughting) { + super(expressID, Name); + this.Name = Name; + this.FillStyles = FillStyles; + this.ModelorDraughting = ModelorDraughting; + this.type = 738692330; + } + } + IFC42.IfcFillAreaStyle = IfcFillAreaStyle; + class IfcGeometricRepresentationContext extends IfcRepresentationContext { + constructor(expressID, ContextIdentifier, ContextType, CoordinateSpaceDimension, Precision, WorldCoordinateSystem, TrueNorth) { + super(expressID, ContextIdentifier, ContextType); + this.ContextIdentifier = ContextIdentifier; + this.ContextType = ContextType; + this.CoordinateSpaceDimension = CoordinateSpaceDimension; + this.Precision = Precision; + this.WorldCoordinateSystem = WorldCoordinateSystem; + this.TrueNorth = TrueNorth; + this.type = 3448662350; + } + } + IFC42.IfcGeometricRepresentationContext = IfcGeometricRepresentationContext; + class IfcGeometricRepresentationItem extends IfcRepresentationItem { + constructor(expressID) { + super(expressID); + this.type = 2453401579; + } + } + IFC42.IfcGeometricRepresentationItem = IfcGeometricRepresentationItem; + class IfcGeometricRepresentationSubContext extends IfcGeometricRepresentationContext { + constructor(expressID, ContextIdentifier, ContextType, ParentContext, TargetScale, TargetView, UserDefinedTargetView) { + super(expressID, ContextIdentifier, ContextType, new IfcDimensionCount(0), null, new Handle(0), null); + this.ContextIdentifier = ContextIdentifier; + this.ContextType = ContextType; + this.ParentContext = ParentContext; + this.TargetScale = TargetScale; + this.TargetView = TargetView; + this.UserDefinedTargetView = UserDefinedTargetView; + this.type = 4142052618; + } + } + IFC42.IfcGeometricRepresentationSubContext = IfcGeometricRepresentationSubContext; + class IfcGeometricSet extends IfcGeometricRepresentationItem { + constructor(expressID, Elements) { + super(expressID); + this.Elements = Elements; + this.type = 3590301190; + } + } + IFC42.IfcGeometricSet = IfcGeometricSet; + class IfcGridPlacement extends IfcObjectPlacement { + constructor(expressID, PlacementLocation, PlacementRefDirection) { + super(expressID); + this.PlacementLocation = PlacementLocation; + this.PlacementRefDirection = PlacementRefDirection; + this.type = 178086475; + } + } + IFC42.IfcGridPlacement = IfcGridPlacement; + class IfcHalfSpaceSolid extends IfcGeometricRepresentationItem { + constructor(expressID, BaseSurface, AgreementFlag) { + super(expressID); + this.BaseSurface = BaseSurface; + this.AgreementFlag = AgreementFlag; + this.type = 812098782; + } + } + IFC42.IfcHalfSpaceSolid = IfcHalfSpaceSolid; + class IfcImageTexture extends IfcSurfaceTexture { + constructor(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter, URLReference) { + super(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter); + this.RepeatS = RepeatS; + this.RepeatT = RepeatT; + this.Mode = Mode; + this.TextureTransform = TextureTransform; + this.Parameter = Parameter; + this.URLReference = URLReference; + this.type = 3905492369; + } + } + IFC42.IfcImageTexture = IfcImageTexture; + class IfcIndexedColourMap extends IfcPresentationItem { + constructor(expressID, MappedTo, Opacity, Colours, ColourIndex) { + super(expressID); + this.MappedTo = MappedTo; + this.Opacity = Opacity; + this.Colours = Colours; + this.ColourIndex = ColourIndex; + this.type = 3570813810; + } + } + IFC42.IfcIndexedColourMap = IfcIndexedColourMap; + class IfcIndexedTextureMap extends IfcTextureCoordinate { + constructor(expressID, Maps, MappedTo, TexCoords) { + super(expressID, Maps); + this.Maps = Maps; + this.MappedTo = MappedTo; + this.TexCoords = TexCoords; + this.type = 1437953363; + } + } + IFC42.IfcIndexedTextureMap = IfcIndexedTextureMap; + class IfcIndexedTriangleTextureMap extends IfcIndexedTextureMap { + constructor(expressID, Maps, MappedTo, TexCoords, TexCoordIndex) { + super(expressID, Maps, MappedTo, TexCoords); + this.Maps = Maps; + this.MappedTo = MappedTo; + this.TexCoords = TexCoords; + this.TexCoordIndex = TexCoordIndex; + this.type = 2133299955; + } + } + IFC42.IfcIndexedTriangleTextureMap = IfcIndexedTriangleTextureMap; + class IfcIrregularTimeSeries extends IfcTimeSeries { + constructor(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit, Values) { + super(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit); + this.Name = Name; + this.Description = Description; + this.StartTime = StartTime; + this.EndTime = EndTime; + this.TimeSeriesDataType = TimeSeriesDataType; + this.DataOrigin = DataOrigin; + this.UserDefinedDataOrigin = UserDefinedDataOrigin; + this.Unit = Unit; + this.Values = Values; + this.type = 3741457305; + } + } + IFC42.IfcIrregularTimeSeries = IfcIrregularTimeSeries; + class IfcLagTime extends IfcSchedulingTime { + constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin, LagValue, DurationType) { + super(expressID, Name, DataOrigin, UserDefinedDataOrigin); + this.Name = Name; + this.DataOrigin = DataOrigin; + this.UserDefinedDataOrigin = UserDefinedDataOrigin; + this.LagValue = LagValue; + this.DurationType = DurationType; + this.type = 1585845231; + } + } + IFC42.IfcLagTime = IfcLagTime; + class IfcLightSource extends IfcGeometricRepresentationItem { + constructor(expressID, Name, LightColour, AmbientIntensity, Intensity) { + super(expressID); + this.Name = Name; + this.LightColour = LightColour; + this.AmbientIntensity = AmbientIntensity; + this.Intensity = Intensity; + this.type = 1402838566; + } + } + IFC42.IfcLightSource = IfcLightSource; + class IfcLightSourceAmbient extends IfcLightSource { + constructor(expressID, Name, LightColour, AmbientIntensity, Intensity) { + super(expressID, Name, LightColour, AmbientIntensity, Intensity); + this.Name = Name; + this.LightColour = LightColour; + this.AmbientIntensity = AmbientIntensity; + this.Intensity = Intensity; + this.type = 125510826; + } + } + IFC42.IfcLightSourceAmbient = IfcLightSourceAmbient; + class IfcLightSourceDirectional extends IfcLightSource { + constructor(expressID, Name, LightColour, AmbientIntensity, Intensity, Orientation) { + super(expressID, Name, LightColour, AmbientIntensity, Intensity); + this.Name = Name; + this.LightColour = LightColour; + this.AmbientIntensity = AmbientIntensity; + this.Intensity = Intensity; + this.Orientation = Orientation; + this.type = 2604431987; + } + } + IFC42.IfcLightSourceDirectional = IfcLightSourceDirectional; + class IfcLightSourceGoniometric extends IfcLightSource { + constructor(expressID, Name, LightColour, AmbientIntensity, Intensity, Position, ColourAppearance, ColourTemperature, LuminousFlux, LightEmissionSource, LightDistributionDataSource) { + super(expressID, Name, LightColour, AmbientIntensity, Intensity); + this.Name = Name; + this.LightColour = LightColour; + this.AmbientIntensity = AmbientIntensity; + this.Intensity = Intensity; + this.Position = Position; + this.ColourAppearance = ColourAppearance; + this.ColourTemperature = ColourTemperature; + this.LuminousFlux = LuminousFlux; + this.LightEmissionSource = LightEmissionSource; + this.LightDistributionDataSource = LightDistributionDataSource; + this.type = 4266656042; + } + } + IFC42.IfcLightSourceGoniometric = IfcLightSourceGoniometric; + class IfcLightSourcePositional extends IfcLightSource { + constructor(expressID, Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation) { + super(expressID, Name, LightColour, AmbientIntensity, Intensity); + this.Name = Name; + this.LightColour = LightColour; + this.AmbientIntensity = AmbientIntensity; + this.Intensity = Intensity; + this.Position = Position; + this.Radius = Radius; + this.ConstantAttenuation = ConstantAttenuation; + this.DistanceAttenuation = DistanceAttenuation; + this.QuadricAttenuation = QuadricAttenuation; + this.type = 1520743889; + } + } + IFC42.IfcLightSourcePositional = IfcLightSourcePositional; + class IfcLightSourceSpot extends IfcLightSourcePositional { + constructor(expressID, Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation, Orientation, ConcentrationExponent, SpreadAngle, BeamWidthAngle) { + super(expressID, Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation); + this.Name = Name; + this.LightColour = LightColour; + this.AmbientIntensity = AmbientIntensity; + this.Intensity = Intensity; + this.Position = Position; + this.Radius = Radius; + this.ConstantAttenuation = ConstantAttenuation; + this.DistanceAttenuation = DistanceAttenuation; + this.QuadricAttenuation = QuadricAttenuation; + this.Orientation = Orientation; + this.ConcentrationExponent = ConcentrationExponent; + this.SpreadAngle = SpreadAngle; + this.BeamWidthAngle = BeamWidthAngle; + this.type = 3422422726; + } + } + IFC42.IfcLightSourceSpot = IfcLightSourceSpot; + class IfcLocalPlacement extends IfcObjectPlacement { + constructor(expressID, PlacementRelTo, RelativePlacement) { + super(expressID); + this.PlacementRelTo = PlacementRelTo; + this.RelativePlacement = RelativePlacement; + this.type = 2624227202; + } + } + IFC42.IfcLocalPlacement = IfcLocalPlacement; + class IfcLoop extends IfcTopologicalRepresentationItem { + constructor(expressID) { + super(expressID); + this.type = 1008929658; + } + } + IFC42.IfcLoop = IfcLoop; + class IfcMappedItem extends IfcRepresentationItem { + constructor(expressID, MappingSource, MappingTarget) { + super(expressID); + this.MappingSource = MappingSource; + this.MappingTarget = MappingTarget; + this.type = 2347385850; + } + } + IFC42.IfcMappedItem = IfcMappedItem; + class IfcMaterial extends IfcMaterialDefinition { + constructor(expressID, Name, Description, Category) { + super(expressID); + this.Name = Name; + this.Description = Description; + this.Category = Category; + this.type = 1838606355; + } + } + IFC42.IfcMaterial = IfcMaterial; + class IfcMaterialConstituent extends IfcMaterialDefinition { + constructor(expressID, Name, Description, Material, Fraction, Category) { + super(expressID); + this.Name = Name; + this.Description = Description; + this.Material = Material; + this.Fraction = Fraction; + this.Category = Category; + this.type = 3708119e3; + } + } + IFC42.IfcMaterialConstituent = IfcMaterialConstituent; + class IfcMaterialConstituentSet extends IfcMaterialDefinition { + constructor(expressID, Name, Description, MaterialConstituents) { + super(expressID); + this.Name = Name; + this.Description = Description; + this.MaterialConstituents = MaterialConstituents; + this.type = 2852063980; + } + } + IFC42.IfcMaterialConstituentSet = IfcMaterialConstituentSet; + class IfcMaterialDefinitionRepresentation extends IfcProductRepresentation { + constructor(expressID, Name, Description, Representations, RepresentedMaterial) { + super(expressID, Name, Description, Representations); + this.Name = Name; + this.Description = Description; + this.Representations = Representations; + this.RepresentedMaterial = RepresentedMaterial; + this.type = 2022407955; + } + } + IFC42.IfcMaterialDefinitionRepresentation = IfcMaterialDefinitionRepresentation; + class IfcMaterialLayerSetUsage extends IfcMaterialUsageDefinition { + constructor(expressID, ForLayerSet, LayerSetDirection, DirectionSense, OffsetFromReferenceLine, ReferenceExtent) { + super(expressID); + this.ForLayerSet = ForLayerSet; + this.LayerSetDirection = LayerSetDirection; + this.DirectionSense = DirectionSense; + this.OffsetFromReferenceLine = OffsetFromReferenceLine; + this.ReferenceExtent = ReferenceExtent; + this.type = 1303795690; + } + } + IFC42.IfcMaterialLayerSetUsage = IfcMaterialLayerSetUsage; + class IfcMaterialProfileSetUsage extends IfcMaterialUsageDefinition { + constructor(expressID, ForProfileSet, CardinalPoint, ReferenceExtent) { + super(expressID); + this.ForProfileSet = ForProfileSet; + this.CardinalPoint = CardinalPoint; + this.ReferenceExtent = ReferenceExtent; + this.type = 3079605661; + } + } + IFC42.IfcMaterialProfileSetUsage = IfcMaterialProfileSetUsage; + class IfcMaterialProfileSetUsageTapering extends IfcMaterialProfileSetUsage { + constructor(expressID, ForProfileSet, CardinalPoint, ReferenceExtent, ForProfileEndSet, CardinalEndPoint) { + super(expressID, ForProfileSet, CardinalPoint, ReferenceExtent); + this.ForProfileSet = ForProfileSet; + this.CardinalPoint = CardinalPoint; + this.ReferenceExtent = ReferenceExtent; + this.ForProfileEndSet = ForProfileEndSet; + this.CardinalEndPoint = CardinalEndPoint; + this.type = 3404854881; + } + } + IFC42.IfcMaterialProfileSetUsageTapering = IfcMaterialProfileSetUsageTapering; + class IfcMaterialProperties extends IfcExtendedProperties { + constructor(expressID, Name, Description, Properties2, Material) { + super(expressID, Name, Description, Properties2); + this.Name = Name; + this.Description = Description; + this.Properties = Properties2; + this.Material = Material; + this.type = 3265635763; + } + } + IFC42.IfcMaterialProperties = IfcMaterialProperties; + class IfcMaterialRelationship extends IfcResourceLevelRelationship { + constructor(expressID, Name, Description, RelatingMaterial, RelatedMaterials, Expression) { + super(expressID, Name, Description); + this.Name = Name; + this.Description = Description; + this.RelatingMaterial = RelatingMaterial; + this.RelatedMaterials = RelatedMaterials; + this.Expression = Expression; + this.type = 853536259; + } + } + IFC42.IfcMaterialRelationship = IfcMaterialRelationship; + class IfcMirroredProfileDef extends IfcDerivedProfileDef { + constructor(expressID, ProfileType, ProfileName, ParentProfile, Label) { + super(expressID, ProfileType, ProfileName, ParentProfile, new Handle(0), Label); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.ParentProfile = ParentProfile; + this.Label = Label; + this.type = 2998442950; + } + } + IFC42.IfcMirroredProfileDef = IfcMirroredProfileDef; + class IfcObjectDefinition extends IfcRoot { + constructor(expressID, GlobalId, OwnerHistory, Name, Description) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.type = 219451334; + } + } + IFC42.IfcObjectDefinition = IfcObjectDefinition; + class IfcOpenShell extends IfcConnectedFaceSet { + constructor(expressID, CfsFaces) { + super(expressID, CfsFaces); + this.CfsFaces = CfsFaces; + this.type = 2665983363; + } + } + IFC42.IfcOpenShell = IfcOpenShell; + class IfcOrganizationRelationship extends IfcResourceLevelRelationship { + constructor(expressID, Name, Description, RelatingOrganization, RelatedOrganizations) { + super(expressID, Name, Description); + this.Name = Name; + this.Description = Description; + this.RelatingOrganization = RelatingOrganization; + this.RelatedOrganizations = RelatedOrganizations; + this.type = 1411181986; + } + } + IFC42.IfcOrganizationRelationship = IfcOrganizationRelationship; + class IfcOrientedEdge extends IfcEdge { + constructor(expressID, EdgeElement, Orientation) { + super(expressID, new Handle(0), new Handle(0)); + this.EdgeElement = EdgeElement; + this.Orientation = Orientation; + this.type = 1029017970; + } + } + IFC42.IfcOrientedEdge = IfcOrientedEdge; + class IfcParameterizedProfileDef extends IfcProfileDef { + constructor(expressID, ProfileType, ProfileName, Position) { + super(expressID, ProfileType, ProfileName); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.type = 2529465313; + } + } + IFC42.IfcParameterizedProfileDef = IfcParameterizedProfileDef; + class IfcPath extends IfcTopologicalRepresentationItem { + constructor(expressID, EdgeList) { + super(expressID); + this.EdgeList = EdgeList; + this.type = 2519244187; + } + } + IFC42.IfcPath = IfcPath; + class IfcPhysicalComplexQuantity extends IfcPhysicalQuantity { + constructor(expressID, Name, Description, HasQuantities, Discrimination, Quality, Usage) { + super(expressID, Name, Description); + this.Name = Name; + this.Description = Description; + this.HasQuantities = HasQuantities; + this.Discrimination = Discrimination; + this.Quality = Quality; + this.Usage = Usage; + this.type = 3021840470; + } + } + IFC42.IfcPhysicalComplexQuantity = IfcPhysicalComplexQuantity; + class IfcPixelTexture extends IfcSurfaceTexture { + constructor(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter, Width, Height, ColourComponents, Pixel) { + super(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter); + this.RepeatS = RepeatS; + this.RepeatT = RepeatT; + this.Mode = Mode; + this.TextureTransform = TextureTransform; + this.Parameter = Parameter; + this.Width = Width; + this.Height = Height; + this.ColourComponents = ColourComponents; + this.Pixel = Pixel; + this.type = 597895409; + } + } + IFC42.IfcPixelTexture = IfcPixelTexture; + class IfcPlacement extends IfcGeometricRepresentationItem { + constructor(expressID, Location) { + super(expressID); + this.Location = Location; + this.type = 2004835150; + } + } + IFC42.IfcPlacement = IfcPlacement; + class IfcPlanarExtent extends IfcGeometricRepresentationItem { + constructor(expressID, SizeInX, SizeInY) { + super(expressID); + this.SizeInX = SizeInX; + this.SizeInY = SizeInY; + this.type = 1663979128; + } + } + IFC42.IfcPlanarExtent = IfcPlanarExtent; + class IfcPoint extends IfcGeometricRepresentationItem { + constructor(expressID) { + super(expressID); + this.type = 2067069095; + } + } + IFC42.IfcPoint = IfcPoint; + class IfcPointOnCurve extends IfcPoint { + constructor(expressID, BasisCurve, PointParameter) { + super(expressID); + this.BasisCurve = BasisCurve; + this.PointParameter = PointParameter; + this.type = 4022376103; + } + } + IFC42.IfcPointOnCurve = IfcPointOnCurve; + class IfcPointOnSurface extends IfcPoint { + constructor(expressID, BasisSurface, PointParameterU, PointParameterV) { + super(expressID); + this.BasisSurface = BasisSurface; + this.PointParameterU = PointParameterU; + this.PointParameterV = PointParameterV; + this.type = 1423911732; + } + } + IFC42.IfcPointOnSurface = IfcPointOnSurface; + class IfcPolyLoop extends IfcLoop { + constructor(expressID, Polygon) { + super(expressID); + this.Polygon = Polygon; + this.type = 2924175390; + } + } + IFC42.IfcPolyLoop = IfcPolyLoop; + class IfcPolygonalBoundedHalfSpace extends IfcHalfSpaceSolid { + constructor(expressID, BaseSurface, AgreementFlag, Position, PolygonalBoundary) { + super(expressID, BaseSurface, AgreementFlag); + this.BaseSurface = BaseSurface; + this.AgreementFlag = AgreementFlag; + this.Position = Position; + this.PolygonalBoundary = PolygonalBoundary; + this.type = 2775532180; + } + } + IFC42.IfcPolygonalBoundedHalfSpace = IfcPolygonalBoundedHalfSpace; + class IfcPreDefinedItem extends IfcPresentationItem { + constructor(expressID, Name) { + super(expressID); + this.Name = Name; + this.type = 3727388367; + } + } + IFC42.IfcPreDefinedItem = IfcPreDefinedItem; + class IfcPreDefinedProperties extends IfcPropertyAbstraction { + constructor(expressID) { + super(expressID); + this.type = 3778827333; + } + } + IFC42.IfcPreDefinedProperties = IfcPreDefinedProperties; + class IfcPreDefinedTextFont extends IfcPreDefinedItem { + constructor(expressID, Name) { + super(expressID, Name); + this.Name = Name; + this.type = 1775413392; + } + } + IFC42.IfcPreDefinedTextFont = IfcPreDefinedTextFont; + class IfcProductDefinitionShape extends IfcProductRepresentation { + constructor(expressID, Name, Description, Representations) { + super(expressID, Name, Description, Representations); + this.Name = Name; + this.Description = Description; + this.Representations = Representations; + this.type = 673634403; + } + } + IFC42.IfcProductDefinitionShape = IfcProductDefinitionShape; + class IfcProfileProperties extends IfcExtendedProperties { + constructor(expressID, Name, Description, Properties2, ProfileDefinition) { + super(expressID, Name, Description, Properties2); + this.Name = Name; + this.Description = Description; + this.Properties = Properties2; + this.ProfileDefinition = ProfileDefinition; + this.type = 2802850158; + } + } + IFC42.IfcProfileProperties = IfcProfileProperties; + class IfcProperty extends IfcPropertyAbstraction { + constructor(expressID, Name, Description) { + super(expressID); + this.Name = Name; + this.Description = Description; + this.type = 2598011224; + } + } + IFC42.IfcProperty = IfcProperty; + class IfcPropertyDefinition extends IfcRoot { + constructor(expressID, GlobalId, OwnerHistory, Name, Description) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.type = 1680319473; + } + } + IFC42.IfcPropertyDefinition = IfcPropertyDefinition; + class IfcPropertyDependencyRelationship extends IfcResourceLevelRelationship { + constructor(expressID, Name, Description, DependingProperty, DependantProperty, Expression) { + super(expressID, Name, Description); + this.Name = Name; + this.Description = Description; + this.DependingProperty = DependingProperty; + this.DependantProperty = DependantProperty; + this.Expression = Expression; + this.type = 148025276; + } + } + IFC42.IfcPropertyDependencyRelationship = IfcPropertyDependencyRelationship; + class IfcPropertySetDefinition extends IfcPropertyDefinition { + constructor(expressID, GlobalId, OwnerHistory, Name, Description) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.type = 3357820518; + } + } + IFC42.IfcPropertySetDefinition = IfcPropertySetDefinition; + class IfcPropertyTemplateDefinition extends IfcPropertyDefinition { + constructor(expressID, GlobalId, OwnerHistory, Name, Description) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.type = 1482703590; + } + } + IFC42.IfcPropertyTemplateDefinition = IfcPropertyTemplateDefinition; + class IfcQuantitySet extends IfcPropertySetDefinition { + constructor(expressID, GlobalId, OwnerHistory, Name, Description) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.type = 2090586900; + } + } + IFC42.IfcQuantitySet = IfcQuantitySet; + class IfcRectangleProfileDef extends IfcParameterizedProfileDef { + constructor(expressID, ProfileType, ProfileName, Position, XDim, YDim) { + super(expressID, ProfileType, ProfileName, Position); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.XDim = XDim; + this.YDim = YDim; + this.type = 3615266464; + } + } + IFC42.IfcRectangleProfileDef = IfcRectangleProfileDef; + class IfcRegularTimeSeries extends IfcTimeSeries { + constructor(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit, TimeStep, Values) { + super(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit); + this.Name = Name; + this.Description = Description; + this.StartTime = StartTime; + this.EndTime = EndTime; + this.TimeSeriesDataType = TimeSeriesDataType; + this.DataOrigin = DataOrigin; + this.UserDefinedDataOrigin = UserDefinedDataOrigin; + this.Unit = Unit; + this.TimeStep = TimeStep; + this.Values = Values; + this.type = 3413951693; + } + } + IFC42.IfcRegularTimeSeries = IfcRegularTimeSeries; + class IfcReinforcementBarProperties extends IfcPreDefinedProperties { + constructor(expressID, TotalCrossSectionArea, SteelGrade, BarSurface, EffectiveDepth, NominalBarDiameter, BarCount) { + super(expressID); + this.TotalCrossSectionArea = TotalCrossSectionArea; + this.SteelGrade = SteelGrade; + this.BarSurface = BarSurface; + this.EffectiveDepth = EffectiveDepth; + this.NominalBarDiameter = NominalBarDiameter; + this.BarCount = BarCount; + this.type = 1580146022; + } + } + IFC42.IfcReinforcementBarProperties = IfcReinforcementBarProperties; + class IfcRelationship extends IfcRoot { + constructor(expressID, GlobalId, OwnerHistory, Name, Description) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.type = 478536968; + } + } + IFC42.IfcRelationship = IfcRelationship; + class IfcResourceApprovalRelationship extends IfcResourceLevelRelationship { + constructor(expressID, Name, Description, RelatedResourceObjects, RelatingApproval) { + super(expressID, Name, Description); + this.Name = Name; + this.Description = Description; + this.RelatedResourceObjects = RelatedResourceObjects; + this.RelatingApproval = RelatingApproval; + this.type = 2943643501; + } + } + IFC42.IfcResourceApprovalRelationship = IfcResourceApprovalRelationship; + class IfcResourceConstraintRelationship extends IfcResourceLevelRelationship { + constructor(expressID, Name, Description, RelatingConstraint, RelatedResourceObjects) { + super(expressID, Name, Description); + this.Name = Name; + this.Description = Description; + this.RelatingConstraint = RelatingConstraint; + this.RelatedResourceObjects = RelatedResourceObjects; + this.type = 1608871552; + } + } + IFC42.IfcResourceConstraintRelationship = IfcResourceConstraintRelationship; + class IfcResourceTime extends IfcSchedulingTime { + constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin, ScheduleWork, ScheduleUsage, ScheduleStart, ScheduleFinish, ScheduleContour, LevelingDelay, IsOverAllocated, StatusTime, ActualWork, ActualUsage, ActualStart, ActualFinish, RemainingWork, RemainingUsage, Completion) { + super(expressID, Name, DataOrigin, UserDefinedDataOrigin); + this.Name = Name; + this.DataOrigin = DataOrigin; + this.UserDefinedDataOrigin = UserDefinedDataOrigin; + this.ScheduleWork = ScheduleWork; + this.ScheduleUsage = ScheduleUsage; + this.ScheduleStart = ScheduleStart; + this.ScheduleFinish = ScheduleFinish; + this.ScheduleContour = ScheduleContour; + this.LevelingDelay = LevelingDelay; + this.IsOverAllocated = IsOverAllocated; + this.StatusTime = StatusTime; + this.ActualWork = ActualWork; + this.ActualUsage = ActualUsage; + this.ActualStart = ActualStart; + this.ActualFinish = ActualFinish; + this.RemainingWork = RemainingWork; + this.RemainingUsage = RemainingUsage; + this.Completion = Completion; + this.type = 1042787934; + } + } + IFC42.IfcResourceTime = IfcResourceTime; + class IfcRoundedRectangleProfileDef extends IfcRectangleProfileDef { + constructor(expressID, ProfileType, ProfileName, Position, XDim, YDim, RoundingRadius) { + super(expressID, ProfileType, ProfileName, Position, XDim, YDim); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.XDim = XDim; + this.YDim = YDim; + this.RoundingRadius = RoundingRadius; + this.type = 2778083089; + } + } + IFC42.IfcRoundedRectangleProfileDef = IfcRoundedRectangleProfileDef; + class IfcSectionProperties extends IfcPreDefinedProperties { + constructor(expressID, SectionType, StartProfile, EndProfile) { + super(expressID); + this.SectionType = SectionType; + this.StartProfile = StartProfile; + this.EndProfile = EndProfile; + this.type = 2042790032; + } + } + IFC42.IfcSectionProperties = IfcSectionProperties; + class IfcSectionReinforcementProperties extends IfcPreDefinedProperties { + constructor(expressID, LongitudinalStartPosition, LongitudinalEndPosition, TransversePosition, ReinforcementRole, SectionDefinition, CrossSectionReinforcementDefinitions) { + super(expressID); + this.LongitudinalStartPosition = LongitudinalStartPosition; + this.LongitudinalEndPosition = LongitudinalEndPosition; + this.TransversePosition = TransversePosition; + this.ReinforcementRole = ReinforcementRole; + this.SectionDefinition = SectionDefinition; + this.CrossSectionReinforcementDefinitions = CrossSectionReinforcementDefinitions; + this.type = 4165799628; + } + } + IFC42.IfcSectionReinforcementProperties = IfcSectionReinforcementProperties; + class IfcSectionedSpine extends IfcGeometricRepresentationItem { + constructor(expressID, SpineCurve, CrossSections, CrossSectionPositions) { + super(expressID); + this.SpineCurve = SpineCurve; + this.CrossSections = CrossSections; + this.CrossSectionPositions = CrossSectionPositions; + this.type = 1509187699; + } + } + IFC42.IfcSectionedSpine = IfcSectionedSpine; + class IfcShellBasedSurfaceModel extends IfcGeometricRepresentationItem { + constructor(expressID, SbsmBoundary) { + super(expressID); + this.SbsmBoundary = SbsmBoundary; + this.type = 4124623270; + } + } + IFC42.IfcShellBasedSurfaceModel = IfcShellBasedSurfaceModel; + class IfcSimpleProperty extends IfcProperty { + constructor(expressID, Name, Description) { + super(expressID, Name, Description); + this.Name = Name; + this.Description = Description; + this.type = 3692461612; + } + } + IFC42.IfcSimpleProperty = IfcSimpleProperty; + class IfcSlippageConnectionCondition extends IfcStructuralConnectionCondition { + constructor(expressID, Name, SlippageX, SlippageY, SlippageZ) { + super(expressID, Name); + this.Name = Name; + this.SlippageX = SlippageX; + this.SlippageY = SlippageY; + this.SlippageZ = SlippageZ; + this.type = 2609359061; + } + } + IFC42.IfcSlippageConnectionCondition = IfcSlippageConnectionCondition; + class IfcSolidModel extends IfcGeometricRepresentationItem { + constructor(expressID) { + super(expressID); + this.type = 723233188; + } + } + IFC42.IfcSolidModel = IfcSolidModel; + class IfcStructuralLoadLinearForce extends IfcStructuralLoadStatic { + constructor(expressID, Name, LinearForceX, LinearForceY, LinearForceZ, LinearMomentX, LinearMomentY, LinearMomentZ) { + super(expressID, Name); + this.Name = Name; + this.LinearForceX = LinearForceX; + this.LinearForceY = LinearForceY; + this.LinearForceZ = LinearForceZ; + this.LinearMomentX = LinearMomentX; + this.LinearMomentY = LinearMomentY; + this.LinearMomentZ = LinearMomentZ; + this.type = 1595516126; + } + } + IFC42.IfcStructuralLoadLinearForce = IfcStructuralLoadLinearForce; + class IfcStructuralLoadPlanarForce extends IfcStructuralLoadStatic { + constructor(expressID, Name, PlanarForceX, PlanarForceY, PlanarForceZ) { + super(expressID, Name); + this.Name = Name; + this.PlanarForceX = PlanarForceX; + this.PlanarForceY = PlanarForceY; + this.PlanarForceZ = PlanarForceZ; + this.type = 2668620305; + } + } + IFC42.IfcStructuralLoadPlanarForce = IfcStructuralLoadPlanarForce; + class IfcStructuralLoadSingleDisplacement extends IfcStructuralLoadStatic { + constructor(expressID, Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ) { + super(expressID, Name); + this.Name = Name; + this.DisplacementX = DisplacementX; + this.DisplacementY = DisplacementY; + this.DisplacementZ = DisplacementZ; + this.RotationalDisplacementRX = RotationalDisplacementRX; + this.RotationalDisplacementRY = RotationalDisplacementRY; + this.RotationalDisplacementRZ = RotationalDisplacementRZ; + this.type = 2473145415; + } + } + IFC42.IfcStructuralLoadSingleDisplacement = IfcStructuralLoadSingleDisplacement; + class IfcStructuralLoadSingleDisplacementDistortion extends IfcStructuralLoadSingleDisplacement { + constructor(expressID, Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ, Distortion) { + super(expressID, Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ); + this.Name = Name; + this.DisplacementX = DisplacementX; + this.DisplacementY = DisplacementY; + this.DisplacementZ = DisplacementZ; + this.RotationalDisplacementRX = RotationalDisplacementRX; + this.RotationalDisplacementRY = RotationalDisplacementRY; + this.RotationalDisplacementRZ = RotationalDisplacementRZ; + this.Distortion = Distortion; + this.type = 1973038258; + } + } + IFC42.IfcStructuralLoadSingleDisplacementDistortion = IfcStructuralLoadSingleDisplacementDistortion; + class IfcStructuralLoadSingleForce extends IfcStructuralLoadStatic { + constructor(expressID, Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ) { + super(expressID, Name); + this.Name = Name; + this.ForceX = ForceX; + this.ForceY = ForceY; + this.ForceZ = ForceZ; + this.MomentX = MomentX; + this.MomentY = MomentY; + this.MomentZ = MomentZ; + this.type = 1597423693; + } + } + IFC42.IfcStructuralLoadSingleForce = IfcStructuralLoadSingleForce; + class IfcStructuralLoadSingleForceWarping extends IfcStructuralLoadSingleForce { + constructor(expressID, Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ, WarpingMoment) { + super(expressID, Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ); + this.Name = Name; + this.ForceX = ForceX; + this.ForceY = ForceY; + this.ForceZ = ForceZ; + this.MomentX = MomentX; + this.MomentY = MomentY; + this.MomentZ = MomentZ; + this.WarpingMoment = WarpingMoment; + this.type = 1190533807; + } + } + IFC42.IfcStructuralLoadSingleForceWarping = IfcStructuralLoadSingleForceWarping; + class IfcSubedge extends IfcEdge { + constructor(expressID, EdgeStart, EdgeEnd, ParentEdge) { + super(expressID, EdgeStart, EdgeEnd); + this.EdgeStart = EdgeStart; + this.EdgeEnd = EdgeEnd; + this.ParentEdge = ParentEdge; + this.type = 2233826070; + } + } + IFC42.IfcSubedge = IfcSubedge; + class IfcSurface extends IfcGeometricRepresentationItem { + constructor(expressID) { + super(expressID); + this.type = 2513912981; + } + } + IFC42.IfcSurface = IfcSurface; + class IfcSurfaceStyleRendering extends IfcSurfaceStyleShading { + constructor(expressID, SurfaceColour, Transparency, DiffuseColour, TransmissionColour, DiffuseTransmissionColour, ReflectionColour, SpecularColour, SpecularHighlight, ReflectanceMethod) { + super(expressID, SurfaceColour, Transparency); + this.SurfaceColour = SurfaceColour; + this.Transparency = Transparency; + this.DiffuseColour = DiffuseColour; + this.TransmissionColour = TransmissionColour; + this.DiffuseTransmissionColour = DiffuseTransmissionColour; + this.ReflectionColour = ReflectionColour; + this.SpecularColour = SpecularColour; + this.SpecularHighlight = SpecularHighlight; + this.ReflectanceMethod = ReflectanceMethod; + this.type = 1878645084; + } + } + IFC42.IfcSurfaceStyleRendering = IfcSurfaceStyleRendering; + class IfcSweptAreaSolid extends IfcSolidModel { + constructor(expressID, SweptArea, Position) { + super(expressID); + this.SweptArea = SweptArea; + this.Position = Position; + this.type = 2247615214; + } + } + IFC42.IfcSweptAreaSolid = IfcSweptAreaSolid; + class IfcSweptDiskSolid extends IfcSolidModel { + constructor(expressID, Directrix, Radius, InnerRadius, StartParam, EndParam) { + super(expressID); + this.Directrix = Directrix; + this.Radius = Radius; + this.InnerRadius = InnerRadius; + this.StartParam = StartParam; + this.EndParam = EndParam; + this.type = 1260650574; + } + } + IFC42.IfcSweptDiskSolid = IfcSweptDiskSolid; + class IfcSweptDiskSolidPolygonal extends IfcSweptDiskSolid { + constructor(expressID, Directrix, Radius, InnerRadius, StartParam, EndParam, FilletRadius) { + super(expressID, Directrix, Radius, InnerRadius, StartParam, EndParam); + this.Directrix = Directrix; + this.Radius = Radius; + this.InnerRadius = InnerRadius; + this.StartParam = StartParam; + this.EndParam = EndParam; + this.FilletRadius = FilletRadius; + this.type = 1096409881; + } + } + IFC42.IfcSweptDiskSolidPolygonal = IfcSweptDiskSolidPolygonal; + class IfcSweptSurface extends IfcSurface { + constructor(expressID, SweptCurve, Position) { + super(expressID); + this.SweptCurve = SweptCurve; + this.Position = Position; + this.type = 230924584; + } + } + IFC42.IfcSweptSurface = IfcSweptSurface; + class IfcTShapeProfileDef extends IfcParameterizedProfileDef { + constructor(expressID, ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, FlangeEdgeRadius, WebEdgeRadius, WebSlope, FlangeSlope) { + super(expressID, ProfileType, ProfileName, Position); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.Depth = Depth; + this.FlangeWidth = FlangeWidth; + this.WebThickness = WebThickness; + this.FlangeThickness = FlangeThickness; + this.FilletRadius = FilletRadius; + this.FlangeEdgeRadius = FlangeEdgeRadius; + this.WebEdgeRadius = WebEdgeRadius; + this.WebSlope = WebSlope; + this.FlangeSlope = FlangeSlope; + this.type = 3071757647; + } + } + IFC42.IfcTShapeProfileDef = IfcTShapeProfileDef; + class IfcTessellatedItem extends IfcGeometricRepresentationItem { + constructor(expressID) { + super(expressID); + this.type = 901063453; + } + } + IFC42.IfcTessellatedItem = IfcTessellatedItem; + class IfcTextLiteral extends IfcGeometricRepresentationItem { + constructor(expressID, Literal, Placement, Path) { + super(expressID); + this.Literal = Literal; + this.Placement = Placement; + this.Path = Path; + this.type = 4282788508; + } + } + IFC42.IfcTextLiteral = IfcTextLiteral; + class IfcTextLiteralWithExtent extends IfcTextLiteral { + constructor(expressID, Literal, Placement, Path, Extent, BoxAlignment) { + super(expressID, Literal, Placement, Path); + this.Literal = Literal; + this.Placement = Placement; + this.Path = Path; + this.Extent = Extent; + this.BoxAlignment = BoxAlignment; + this.type = 3124975700; + } + } + IFC42.IfcTextLiteralWithExtent = IfcTextLiteralWithExtent; + class IfcTextStyleFontModel extends IfcPreDefinedTextFont { + constructor(expressID, Name, FontFamily, FontStyle, FontVariant, FontWeight, FontSize) { + super(expressID, Name); + this.Name = Name; + this.FontFamily = FontFamily; + this.FontStyle = FontStyle; + this.FontVariant = FontVariant; + this.FontWeight = FontWeight; + this.FontSize = FontSize; + this.type = 1983826977; + } + } + IFC42.IfcTextStyleFontModel = IfcTextStyleFontModel; + class IfcTrapeziumProfileDef extends IfcParameterizedProfileDef { + constructor(expressID, ProfileType, ProfileName, Position, BottomXDim, TopXDim, YDim, TopXOffset) { + super(expressID, ProfileType, ProfileName, Position); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.BottomXDim = BottomXDim; + this.TopXDim = TopXDim; + this.YDim = YDim; + this.TopXOffset = TopXOffset; + this.type = 2715220739; + } + } + IFC42.IfcTrapeziumProfileDef = IfcTrapeziumProfileDef; + class IfcTypeObject extends IfcObjectDefinition { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.type = 1628702193; + } + } + IFC42.IfcTypeObject = IfcTypeObject; + class IfcTypeProcess extends IfcTypeObject { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.ProcessType = ProcessType; + this.type = 3736923433; + } + } + IFC42.IfcTypeProcess = IfcTypeProcess; + class IfcTypeProduct extends IfcTypeObject { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.type = 2347495698; + } + } + IFC42.IfcTypeProduct = IfcTypeProduct; + class IfcTypeResource extends IfcTypeObject { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.ResourceType = ResourceType; + this.type = 3698973494; + } + } + IFC42.IfcTypeResource = IfcTypeResource; + class IfcUShapeProfileDef extends IfcParameterizedProfileDef { + constructor(expressID, ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, EdgeRadius, FlangeSlope) { + super(expressID, ProfileType, ProfileName, Position); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.Depth = Depth; + this.FlangeWidth = FlangeWidth; + this.WebThickness = WebThickness; + this.FlangeThickness = FlangeThickness; + this.FilletRadius = FilletRadius; + this.EdgeRadius = EdgeRadius; + this.FlangeSlope = FlangeSlope; + this.type = 427810014; + } + } + IFC42.IfcUShapeProfileDef = IfcUShapeProfileDef; + class IfcVector extends IfcGeometricRepresentationItem { + constructor(expressID, Orientation, Magnitude) { + super(expressID); + this.Orientation = Orientation; + this.Magnitude = Magnitude; + this.type = 1417489154; + } + } + IFC42.IfcVector = IfcVector; + class IfcVertexLoop extends IfcLoop { + constructor(expressID, LoopVertex) { + super(expressID); + this.LoopVertex = LoopVertex; + this.type = 2759199220; + } + } + IFC42.IfcVertexLoop = IfcVertexLoop; + class IfcWindowStyle extends IfcTypeProduct { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ConstructionType, OperationType, ParameterTakesPrecedence, Sizeable) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ConstructionType = ConstructionType; + this.OperationType = OperationType; + this.ParameterTakesPrecedence = ParameterTakesPrecedence; + this.Sizeable = Sizeable; + this.type = 1299126871; + } + } + IFC42.IfcWindowStyle = IfcWindowStyle; + class IfcZShapeProfileDef extends IfcParameterizedProfileDef { + constructor(expressID, ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, EdgeRadius) { + super(expressID, ProfileType, ProfileName, Position); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.Depth = Depth; + this.FlangeWidth = FlangeWidth; + this.WebThickness = WebThickness; + this.FlangeThickness = FlangeThickness; + this.FilletRadius = FilletRadius; + this.EdgeRadius = EdgeRadius; + this.type = 2543172580; + } + } + IFC42.IfcZShapeProfileDef = IfcZShapeProfileDef; + class IfcAdvancedFace extends IfcFaceSurface { + constructor(expressID, Bounds, FaceSurface, SameSense) { + super(expressID, Bounds, FaceSurface, SameSense); + this.Bounds = Bounds; + this.FaceSurface = FaceSurface; + this.SameSense = SameSense; + this.type = 3406155212; + } + } + IFC42.IfcAdvancedFace = IfcAdvancedFace; + class IfcAnnotationFillArea extends IfcGeometricRepresentationItem { + constructor(expressID, OuterBoundary, InnerBoundaries) { + super(expressID); + this.OuterBoundary = OuterBoundary; + this.InnerBoundaries = InnerBoundaries; + this.type = 669184980; + } + } + IFC42.IfcAnnotationFillArea = IfcAnnotationFillArea; + class IfcAsymmetricIShapeProfileDef extends IfcParameterizedProfileDef { + constructor(expressID, ProfileType, ProfileName, Position, BottomFlangeWidth, OverallDepth, WebThickness, BottomFlangeThickness, BottomFlangeFilletRadius, TopFlangeWidth, TopFlangeThickness, TopFlangeFilletRadius, BottomFlangeEdgeRadius, BottomFlangeSlope, TopFlangeEdgeRadius, TopFlangeSlope) { + super(expressID, ProfileType, ProfileName, Position); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.BottomFlangeWidth = BottomFlangeWidth; + this.OverallDepth = OverallDepth; + this.WebThickness = WebThickness; + this.BottomFlangeThickness = BottomFlangeThickness; + this.BottomFlangeFilletRadius = BottomFlangeFilletRadius; + this.TopFlangeWidth = TopFlangeWidth; + this.TopFlangeThickness = TopFlangeThickness; + this.TopFlangeFilletRadius = TopFlangeFilletRadius; + this.BottomFlangeEdgeRadius = BottomFlangeEdgeRadius; + this.BottomFlangeSlope = BottomFlangeSlope; + this.TopFlangeEdgeRadius = TopFlangeEdgeRadius; + this.TopFlangeSlope = TopFlangeSlope; + this.type = 3207858831; + } + } + IFC42.IfcAsymmetricIShapeProfileDef = IfcAsymmetricIShapeProfileDef; + class IfcAxis1Placement extends IfcPlacement { + constructor(expressID, Location, Axis) { + super(expressID, Location); + this.Location = Location; + this.Axis = Axis; + this.type = 4261334040; + } + } + IFC42.IfcAxis1Placement = IfcAxis1Placement; + class IfcAxis2Placement2D extends IfcPlacement { + constructor(expressID, Location, RefDirection) { + super(expressID, Location); + this.Location = Location; + this.RefDirection = RefDirection; + this.type = 3125803723; + } + } + IFC42.IfcAxis2Placement2D = IfcAxis2Placement2D; + class IfcAxis2Placement3D extends IfcPlacement { + constructor(expressID, Location, Axis, RefDirection) { + super(expressID, Location); + this.Location = Location; + this.Axis = Axis; + this.RefDirection = RefDirection; + this.type = 2740243338; + } + } + IFC42.IfcAxis2Placement3D = IfcAxis2Placement3D; + class IfcBooleanResult extends IfcGeometricRepresentationItem { + constructor(expressID, Operator, FirstOperand, SecondOperand) { + super(expressID); + this.Operator = Operator; + this.FirstOperand = FirstOperand; + this.SecondOperand = SecondOperand; + this.type = 2736907675; + } + } + IFC42.IfcBooleanResult = IfcBooleanResult; + class IfcBoundedSurface extends IfcSurface { + constructor(expressID) { + super(expressID); + this.type = 4182860854; + } + } + IFC42.IfcBoundedSurface = IfcBoundedSurface; + class IfcBoundingBox extends IfcGeometricRepresentationItem { + constructor(expressID, Corner, XDim, YDim, ZDim) { + super(expressID); + this.Corner = Corner; + this.XDim = XDim; + this.YDim = YDim; + this.ZDim = ZDim; + this.type = 2581212453; + } + } + IFC42.IfcBoundingBox = IfcBoundingBox; + class IfcBoxedHalfSpace extends IfcHalfSpaceSolid { + constructor(expressID, BaseSurface, AgreementFlag, Enclosure) { + super(expressID, BaseSurface, AgreementFlag); + this.BaseSurface = BaseSurface; + this.AgreementFlag = AgreementFlag; + this.Enclosure = Enclosure; + this.type = 2713105998; + } + } + IFC42.IfcBoxedHalfSpace = IfcBoxedHalfSpace; + class IfcCShapeProfileDef extends IfcParameterizedProfileDef { + constructor(expressID, ProfileType, ProfileName, Position, Depth, Width, WallThickness, Girth, InternalFilletRadius) { + super(expressID, ProfileType, ProfileName, Position); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.Depth = Depth; + this.Width = Width; + this.WallThickness = WallThickness; + this.Girth = Girth; + this.InternalFilletRadius = InternalFilletRadius; + this.type = 2898889636; + } + } + IFC42.IfcCShapeProfileDef = IfcCShapeProfileDef; + class IfcCartesianPoint extends IfcPoint { + constructor(expressID, Coordinates) { + super(expressID); + this.Coordinates = Coordinates; + this.type = 1123145078; + } + } + IFC42.IfcCartesianPoint = IfcCartesianPoint; + class IfcCartesianPointList extends IfcGeometricRepresentationItem { + constructor(expressID) { + super(expressID); + this.type = 574549367; + } + } + IFC42.IfcCartesianPointList = IfcCartesianPointList; + class IfcCartesianPointList2D extends IfcCartesianPointList { + constructor(expressID, CoordList) { + super(expressID); + this.CoordList = CoordList; + this.type = 1675464909; + } + } + IFC42.IfcCartesianPointList2D = IfcCartesianPointList2D; + class IfcCartesianPointList3D extends IfcCartesianPointList { + constructor(expressID, CoordList) { + super(expressID); + this.CoordList = CoordList; + this.type = 2059837836; + } + } + IFC42.IfcCartesianPointList3D = IfcCartesianPointList3D; + class IfcCartesianTransformationOperator extends IfcGeometricRepresentationItem { + constructor(expressID, Axis1, Axis2, LocalOrigin, Scale) { + super(expressID); + this.Axis1 = Axis1; + this.Axis2 = Axis2; + this.LocalOrigin = LocalOrigin; + this.Scale = Scale; + this.type = 59481748; + } + } + IFC42.IfcCartesianTransformationOperator = IfcCartesianTransformationOperator; + class IfcCartesianTransformationOperator2D extends IfcCartesianTransformationOperator { + constructor(expressID, Axis1, Axis2, LocalOrigin, Scale) { + super(expressID, Axis1, Axis2, LocalOrigin, Scale); + this.Axis1 = Axis1; + this.Axis2 = Axis2; + this.LocalOrigin = LocalOrigin; + this.Scale = Scale; + this.type = 3749851601; + } + } + IFC42.IfcCartesianTransformationOperator2D = IfcCartesianTransformationOperator2D; + class IfcCartesianTransformationOperator2DnonUniform extends IfcCartesianTransformationOperator2D { + constructor(expressID, Axis1, Axis2, LocalOrigin, Scale, Scale2) { + super(expressID, Axis1, Axis2, LocalOrigin, Scale); + this.Axis1 = Axis1; + this.Axis2 = Axis2; + this.LocalOrigin = LocalOrigin; + this.Scale = Scale; + this.Scale2 = Scale2; + this.type = 3486308946; + } + } + IFC42.IfcCartesianTransformationOperator2DnonUniform = IfcCartesianTransformationOperator2DnonUniform; + class IfcCartesianTransformationOperator3D extends IfcCartesianTransformationOperator { + constructor(expressID, Axis1, Axis2, LocalOrigin, Scale, Axis3) { + super(expressID, Axis1, Axis2, LocalOrigin, Scale); + this.Axis1 = Axis1; + this.Axis2 = Axis2; + this.LocalOrigin = LocalOrigin; + this.Scale = Scale; + this.Axis3 = Axis3; + this.type = 3331915920; + } + } + IFC42.IfcCartesianTransformationOperator3D = IfcCartesianTransformationOperator3D; + class IfcCartesianTransformationOperator3DnonUniform extends IfcCartesianTransformationOperator3D { + constructor(expressID, Axis1, Axis2, LocalOrigin, Scale, Axis3, Scale2, Scale3) { + super(expressID, Axis1, Axis2, LocalOrigin, Scale, Axis3); + this.Axis1 = Axis1; + this.Axis2 = Axis2; + this.LocalOrigin = LocalOrigin; + this.Scale = Scale; + this.Axis3 = Axis3; + this.Scale2 = Scale2; + this.Scale3 = Scale3; + this.type = 1416205885; + } + } + IFC42.IfcCartesianTransformationOperator3DnonUniform = IfcCartesianTransformationOperator3DnonUniform; + class IfcCircleProfileDef extends IfcParameterizedProfileDef { + constructor(expressID, ProfileType, ProfileName, Position, Radius) { + super(expressID, ProfileType, ProfileName, Position); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.Radius = Radius; + this.type = 1383045692; + } + } + IFC42.IfcCircleProfileDef = IfcCircleProfileDef; + class IfcClosedShell extends IfcConnectedFaceSet { + constructor(expressID, CfsFaces) { + super(expressID, CfsFaces); + this.CfsFaces = CfsFaces; + this.type = 2205249479; + } + } + IFC42.IfcClosedShell = IfcClosedShell; + class IfcColourRgb extends IfcColourSpecification { + constructor(expressID, Name, Red, Green, Blue) { + super(expressID, Name); + this.Name = Name; + this.Red = Red; + this.Green = Green; + this.Blue = Blue; + this.type = 776857604; + } + } + IFC42.IfcColourRgb = IfcColourRgb; + class IfcComplexProperty extends IfcProperty { + constructor(expressID, Name, Description, UsageName, HasProperties) { + super(expressID, Name, Description); + this.Name = Name; + this.Description = Description; + this.UsageName = UsageName; + this.HasProperties = HasProperties; + this.type = 2542286263; + } + } + IFC42.IfcComplexProperty = IfcComplexProperty; + class IfcCompositeCurveSegment extends IfcGeometricRepresentationItem { + constructor(expressID, Transition, SameSense, ParentCurve) { + super(expressID); + this.Transition = Transition; + this.SameSense = SameSense; + this.ParentCurve = ParentCurve; + this.type = 2485617015; + } + } + IFC42.IfcCompositeCurveSegment = IfcCompositeCurveSegment; + class IfcConstructionResourceType extends IfcTypeResource { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.ResourceType = ResourceType; + this.BaseCosts = BaseCosts; + this.BaseQuantity = BaseQuantity; + this.type = 2574617495; + } + } + IFC42.IfcConstructionResourceType = IfcConstructionResourceType; + class IfcContext extends IfcObjectDefinition { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.LongName = LongName; + this.Phase = Phase; + this.RepresentationContexts = RepresentationContexts; + this.UnitsInContext = UnitsInContext; + this.type = 3419103109; + } + } + IFC42.IfcContext = IfcContext; + class IfcCrewResourceType extends IfcConstructionResourceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.ResourceType = ResourceType; + this.BaseCosts = BaseCosts; + this.BaseQuantity = BaseQuantity; + this.PredefinedType = PredefinedType; + this.type = 1815067380; + } + } + IFC42.IfcCrewResourceType = IfcCrewResourceType; + class IfcCsgPrimitive3D extends IfcGeometricRepresentationItem { + constructor(expressID, Position) { + super(expressID); + this.Position = Position; + this.type = 2506170314; + } + } + IFC42.IfcCsgPrimitive3D = IfcCsgPrimitive3D; + class IfcCsgSolid extends IfcSolidModel { + constructor(expressID, TreeRootExpression) { + super(expressID); + this.TreeRootExpression = TreeRootExpression; + this.type = 2147822146; + } + } + IFC42.IfcCsgSolid = IfcCsgSolid; + class IfcCurve extends IfcGeometricRepresentationItem { + constructor(expressID) { + super(expressID); + this.type = 2601014836; + } + } + IFC42.IfcCurve = IfcCurve; + class IfcCurveBoundedPlane extends IfcBoundedSurface { + constructor(expressID, BasisSurface, OuterBoundary, InnerBoundaries) { + super(expressID); + this.BasisSurface = BasisSurface; + this.OuterBoundary = OuterBoundary; + this.InnerBoundaries = InnerBoundaries; + this.type = 2827736869; + } + } + IFC42.IfcCurveBoundedPlane = IfcCurveBoundedPlane; + class IfcCurveBoundedSurface extends IfcBoundedSurface { + constructor(expressID, BasisSurface, Boundaries, ImplicitOuter) { + super(expressID); + this.BasisSurface = BasisSurface; + this.Boundaries = Boundaries; + this.ImplicitOuter = ImplicitOuter; + this.type = 2629017746; + } + } + IFC42.IfcCurveBoundedSurface = IfcCurveBoundedSurface; + class IfcDirection extends IfcGeometricRepresentationItem { + constructor(expressID, DirectionRatios) { + super(expressID); + this.DirectionRatios = DirectionRatios; + this.type = 32440307; + } + } + IFC42.IfcDirection = IfcDirection; + class IfcDoorStyle extends IfcTypeProduct { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, OperationType, ConstructionType, ParameterTakesPrecedence, Sizeable) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.OperationType = OperationType; + this.ConstructionType = ConstructionType; + this.ParameterTakesPrecedence = ParameterTakesPrecedence; + this.Sizeable = Sizeable; + this.type = 526551008; + } + } + IFC42.IfcDoorStyle = IfcDoorStyle; + class IfcEdgeLoop extends IfcLoop { + constructor(expressID, EdgeList) { + super(expressID); + this.EdgeList = EdgeList; + this.type = 1472233963; + } + } + IFC42.IfcEdgeLoop = IfcEdgeLoop; + class IfcElementQuantity extends IfcQuantitySet { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, MethodOfMeasurement, Quantities) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.MethodOfMeasurement = MethodOfMeasurement; + this.Quantities = Quantities; + this.type = 1883228015; + } + } + IFC42.IfcElementQuantity = IfcElementQuantity; + class IfcElementType extends IfcTypeProduct { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 339256511; + } + } + IFC42.IfcElementType = IfcElementType; + class IfcElementarySurface extends IfcSurface { + constructor(expressID, Position) { + super(expressID); + this.Position = Position; + this.type = 2777663545; + } + } + IFC42.IfcElementarySurface = IfcElementarySurface; + class IfcEllipseProfileDef extends IfcParameterizedProfileDef { + constructor(expressID, ProfileType, ProfileName, Position, SemiAxis1, SemiAxis2) { + super(expressID, ProfileType, ProfileName, Position); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.SemiAxis1 = SemiAxis1; + this.SemiAxis2 = SemiAxis2; + this.type = 2835456948; + } + } + IFC42.IfcEllipseProfileDef = IfcEllipseProfileDef; + class IfcEventType extends IfcTypeProcess { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType, PredefinedType, EventTriggerType, UserDefinedEventTriggerType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.ProcessType = ProcessType; + this.PredefinedType = PredefinedType; + this.EventTriggerType = EventTriggerType; + this.UserDefinedEventTriggerType = UserDefinedEventTriggerType; + this.type = 4024345920; + } + } + IFC42.IfcEventType = IfcEventType; + class IfcExtrudedAreaSolid extends IfcSweptAreaSolid { + constructor(expressID, SweptArea, Position, ExtrudedDirection, Depth) { + super(expressID, SweptArea, Position); + this.SweptArea = SweptArea; + this.Position = Position; + this.ExtrudedDirection = ExtrudedDirection; + this.Depth = Depth; + this.type = 477187591; + } + } + IFC42.IfcExtrudedAreaSolid = IfcExtrudedAreaSolid; + class IfcExtrudedAreaSolidTapered extends IfcExtrudedAreaSolid { + constructor(expressID, SweptArea, Position, ExtrudedDirection, Depth, EndSweptArea) { + super(expressID, SweptArea, Position, ExtrudedDirection, Depth); + this.SweptArea = SweptArea; + this.Position = Position; + this.ExtrudedDirection = ExtrudedDirection; + this.Depth = Depth; + this.EndSweptArea = EndSweptArea; + this.type = 2804161546; + } + } + IFC42.IfcExtrudedAreaSolidTapered = IfcExtrudedAreaSolidTapered; + class IfcFaceBasedSurfaceModel extends IfcGeometricRepresentationItem { + constructor(expressID, FbsmFaces) { + super(expressID); + this.FbsmFaces = FbsmFaces; + this.type = 2047409740; + } + } + IFC42.IfcFaceBasedSurfaceModel = IfcFaceBasedSurfaceModel; + class IfcFillAreaStyleHatching extends IfcGeometricRepresentationItem { + constructor(expressID, HatchLineAppearance, StartOfNextHatchLine, PointOfReferenceHatchLine, PatternStart, HatchLineAngle) { + super(expressID); + this.HatchLineAppearance = HatchLineAppearance; + this.StartOfNextHatchLine = StartOfNextHatchLine; + this.PointOfReferenceHatchLine = PointOfReferenceHatchLine; + this.PatternStart = PatternStart; + this.HatchLineAngle = HatchLineAngle; + this.type = 374418227; + } + } + IFC42.IfcFillAreaStyleHatching = IfcFillAreaStyleHatching; + class IfcFillAreaStyleTiles extends IfcGeometricRepresentationItem { + constructor(expressID, TilingPattern, Tiles, TilingScale) { + super(expressID); + this.TilingPattern = TilingPattern; + this.Tiles = Tiles; + this.TilingScale = TilingScale; + this.type = 315944413; + } + } + IFC42.IfcFillAreaStyleTiles = IfcFillAreaStyleTiles; + class IfcFixedReferenceSweptAreaSolid extends IfcSweptAreaSolid { + constructor(expressID, SweptArea, Position, Directrix, StartParam, EndParam, FixedReference) { + super(expressID, SweptArea, Position); + this.SweptArea = SweptArea; + this.Position = Position; + this.Directrix = Directrix; + this.StartParam = StartParam; + this.EndParam = EndParam; + this.FixedReference = FixedReference; + this.type = 2652556860; + } + } + IFC42.IfcFixedReferenceSweptAreaSolid = IfcFixedReferenceSweptAreaSolid; + class IfcFurnishingElementType extends IfcElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 4238390223; + } + } + IFC42.IfcFurnishingElementType = IfcFurnishingElementType; + class IfcFurnitureType extends IfcFurnishingElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, AssemblyPlace, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.AssemblyPlace = AssemblyPlace; + this.PredefinedType = PredefinedType; + this.type = 1268542332; + } + } + IFC42.IfcFurnitureType = IfcFurnitureType; + class IfcGeographicElementType extends IfcElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 4095422895; + } + } + IFC42.IfcGeographicElementType = IfcGeographicElementType; + class IfcGeometricCurveSet extends IfcGeometricSet { + constructor(expressID, Elements) { + super(expressID, Elements); + this.Elements = Elements; + this.type = 987898635; + } + } + IFC42.IfcGeometricCurveSet = IfcGeometricCurveSet; + class IfcIShapeProfileDef extends IfcParameterizedProfileDef { + constructor(expressID, ProfileType, ProfileName, Position, OverallWidth, OverallDepth, WebThickness, FlangeThickness, FilletRadius, FlangeEdgeRadius, FlangeSlope) { + super(expressID, ProfileType, ProfileName, Position); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.OverallWidth = OverallWidth; + this.OverallDepth = OverallDepth; + this.WebThickness = WebThickness; + this.FlangeThickness = FlangeThickness; + this.FilletRadius = FilletRadius; + this.FlangeEdgeRadius = FlangeEdgeRadius; + this.FlangeSlope = FlangeSlope; + this.type = 1484403080; + } + } + IFC42.IfcIShapeProfileDef = IfcIShapeProfileDef; + class IfcIndexedPolygonalFace extends IfcTessellatedItem { + constructor(expressID, CoordIndex) { + super(expressID); + this.CoordIndex = CoordIndex; + this.type = 178912537; + } + } + IFC42.IfcIndexedPolygonalFace = IfcIndexedPolygonalFace; + class IfcIndexedPolygonalFaceWithVoids extends IfcIndexedPolygonalFace { + constructor(expressID, CoordIndex, InnerCoordIndices) { + super(expressID, CoordIndex); + this.CoordIndex = CoordIndex; + this.InnerCoordIndices = InnerCoordIndices; + this.type = 2294589976; + } + } + IFC42.IfcIndexedPolygonalFaceWithVoids = IfcIndexedPolygonalFaceWithVoids; + class IfcLShapeProfileDef extends IfcParameterizedProfileDef { + constructor(expressID, ProfileType, ProfileName, Position, Depth, Width, Thickness, FilletRadius, EdgeRadius, LegSlope) { + super(expressID, ProfileType, ProfileName, Position); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.Depth = Depth; + this.Width = Width; + this.Thickness = Thickness; + this.FilletRadius = FilletRadius; + this.EdgeRadius = EdgeRadius; + this.LegSlope = LegSlope; + this.type = 572779678; + } + } + IFC42.IfcLShapeProfileDef = IfcLShapeProfileDef; + class IfcLaborResourceType extends IfcConstructionResourceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.ResourceType = ResourceType; + this.BaseCosts = BaseCosts; + this.BaseQuantity = BaseQuantity; + this.PredefinedType = PredefinedType; + this.type = 428585644; + } + } + IFC42.IfcLaborResourceType = IfcLaborResourceType; + class IfcLine extends IfcCurve { + constructor(expressID, Pnt, Dir) { + super(expressID); + this.Pnt = Pnt; + this.Dir = Dir; + this.type = 1281925730; + } + } + IFC42.IfcLine = IfcLine; + class IfcManifoldSolidBrep extends IfcSolidModel { + constructor(expressID, Outer) { + super(expressID); + this.Outer = Outer; + this.type = 1425443689; + } + } + IFC42.IfcManifoldSolidBrep = IfcManifoldSolidBrep; + class IfcObject extends IfcObjectDefinition { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.type = 3888040117; + } + } + IFC42.IfcObject = IfcObject; + class IfcOffsetCurve2D extends IfcCurve { + constructor(expressID, BasisCurve, Distance, SelfIntersect) { + super(expressID); + this.BasisCurve = BasisCurve; + this.Distance = Distance; + this.SelfIntersect = SelfIntersect; + this.type = 3388369263; + } + } + IFC42.IfcOffsetCurve2D = IfcOffsetCurve2D; + class IfcOffsetCurve3D extends IfcCurve { + constructor(expressID, BasisCurve, Distance, SelfIntersect, RefDirection) { + super(expressID); + this.BasisCurve = BasisCurve; + this.Distance = Distance; + this.SelfIntersect = SelfIntersect; + this.RefDirection = RefDirection; + this.type = 3505215534; + } + } + IFC42.IfcOffsetCurve3D = IfcOffsetCurve3D; + class IfcPcurve extends IfcCurve { + constructor(expressID, BasisSurface, ReferenceCurve) { + super(expressID); + this.BasisSurface = BasisSurface; + this.ReferenceCurve = ReferenceCurve; + this.type = 1682466193; + } + } + IFC42.IfcPcurve = IfcPcurve; + class IfcPlanarBox extends IfcPlanarExtent { + constructor(expressID, SizeInX, SizeInY, Placement) { + super(expressID, SizeInX, SizeInY); + this.SizeInX = SizeInX; + this.SizeInY = SizeInY; + this.Placement = Placement; + this.type = 603570806; + } + } + IFC42.IfcPlanarBox = IfcPlanarBox; + class IfcPlane extends IfcElementarySurface { + constructor(expressID, Position) { + super(expressID, Position); + this.Position = Position; + this.type = 220341763; + } + } + IFC42.IfcPlane = IfcPlane; + class IfcPreDefinedColour extends IfcPreDefinedItem { + constructor(expressID, Name) { + super(expressID, Name); + this.Name = Name; + this.type = 759155922; + } + } + IFC42.IfcPreDefinedColour = IfcPreDefinedColour; + class IfcPreDefinedCurveFont extends IfcPreDefinedItem { + constructor(expressID, Name) { + super(expressID, Name); + this.Name = Name; + this.type = 2559016684; + } + } + IFC42.IfcPreDefinedCurveFont = IfcPreDefinedCurveFont; + class IfcPreDefinedPropertySet extends IfcPropertySetDefinition { + constructor(expressID, GlobalId, OwnerHistory, Name, Description) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.type = 3967405729; + } + } + IFC42.IfcPreDefinedPropertySet = IfcPreDefinedPropertySet; + class IfcProcedureType extends IfcTypeProcess { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.ProcessType = ProcessType; + this.PredefinedType = PredefinedType; + this.type = 569719735; + } + } + IFC42.IfcProcedureType = IfcProcedureType; + class IfcProcess extends IfcObject { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.type = 2945172077; + } + } + IFC42.IfcProcess = IfcProcess; + class IfcProduct extends IfcObject { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.type = 4208778838; + } + } + IFC42.IfcProduct = IfcProduct; + class IfcProject extends IfcContext { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.LongName = LongName; + this.Phase = Phase; + this.RepresentationContexts = RepresentationContexts; + this.UnitsInContext = UnitsInContext; + this.type = 103090709; + } + } + IFC42.IfcProject = IfcProject; + class IfcProjectLibrary extends IfcContext { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.LongName = LongName; + this.Phase = Phase; + this.RepresentationContexts = RepresentationContexts; + this.UnitsInContext = UnitsInContext; + this.type = 653396225; + } + } + IFC42.IfcProjectLibrary = IfcProjectLibrary; + class IfcPropertyBoundedValue extends IfcSimpleProperty { + constructor(expressID, Name, Description, UpperBoundValue, LowerBoundValue, Unit, SetPointValue) { + super(expressID, Name, Description); + this.Name = Name; + this.Description = Description; + this.UpperBoundValue = UpperBoundValue; + this.LowerBoundValue = LowerBoundValue; + this.Unit = Unit; + this.SetPointValue = SetPointValue; + this.type = 871118103; + } + } + IFC42.IfcPropertyBoundedValue = IfcPropertyBoundedValue; + class IfcPropertyEnumeratedValue extends IfcSimpleProperty { + constructor(expressID, Name, Description, EnumerationValues, EnumerationReference) { + super(expressID, Name, Description); + this.Name = Name; + this.Description = Description; + this.EnumerationValues = EnumerationValues; + this.EnumerationReference = EnumerationReference; + this.type = 4166981789; + } + } + IFC42.IfcPropertyEnumeratedValue = IfcPropertyEnumeratedValue; + class IfcPropertyListValue extends IfcSimpleProperty { + constructor(expressID, Name, Description, ListValues, Unit) { + super(expressID, Name, Description); + this.Name = Name; + this.Description = Description; + this.ListValues = ListValues; + this.Unit = Unit; + this.type = 2752243245; + } + } + IFC42.IfcPropertyListValue = IfcPropertyListValue; + class IfcPropertyReferenceValue extends IfcSimpleProperty { + constructor(expressID, Name, Description, UsageName, PropertyReference) { + super(expressID, Name, Description); + this.Name = Name; + this.Description = Description; + this.UsageName = UsageName; + this.PropertyReference = PropertyReference; + this.type = 941946838; + } + } + IFC42.IfcPropertyReferenceValue = IfcPropertyReferenceValue; + class IfcPropertySet extends IfcPropertySetDefinition { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, HasProperties) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.HasProperties = HasProperties; + this.type = 1451395588; + } + } + IFC42.IfcPropertySet = IfcPropertySet; + class IfcPropertySetTemplate extends IfcPropertyTemplateDefinition { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, TemplateType, ApplicableEntity, HasPropertyTemplates) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.TemplateType = TemplateType; + this.ApplicableEntity = ApplicableEntity; + this.HasPropertyTemplates = HasPropertyTemplates; + this.type = 492091185; + } + } + IFC42.IfcPropertySetTemplate = IfcPropertySetTemplate; + class IfcPropertySingleValue extends IfcSimpleProperty { + constructor(expressID, Name, Description, NominalValue, Unit) { + super(expressID, Name, Description); + this.Name = Name; + this.Description = Description; + this.NominalValue = NominalValue; + this.Unit = Unit; + this.type = 3650150729; + } + } + IFC42.IfcPropertySingleValue = IfcPropertySingleValue; + class IfcPropertyTableValue extends IfcSimpleProperty { + constructor(expressID, Name, Description, DefiningValues, DefinedValues, Expression, DefiningUnit, DefinedUnit, CurveInterpolation) { + super(expressID, Name, Description); + this.Name = Name; + this.Description = Description; + this.DefiningValues = DefiningValues; + this.DefinedValues = DefinedValues; + this.Expression = Expression; + this.DefiningUnit = DefiningUnit; + this.DefinedUnit = DefinedUnit; + this.CurveInterpolation = CurveInterpolation; + this.type = 110355661; + } + } + IFC42.IfcPropertyTableValue = IfcPropertyTableValue; + class IfcPropertyTemplate extends IfcPropertyTemplateDefinition { + constructor(expressID, GlobalId, OwnerHistory, Name, Description) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.type = 3521284610; + } + } + IFC42.IfcPropertyTemplate = IfcPropertyTemplate; + class IfcProxy extends IfcProduct { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, ProxyType, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.ProxyType = ProxyType; + this.Tag = Tag; + this.type = 3219374653; + } + } + IFC42.IfcProxy = IfcProxy; + class IfcRectangleHollowProfileDef extends IfcRectangleProfileDef { + constructor(expressID, ProfileType, ProfileName, Position, XDim, YDim, WallThickness, InnerFilletRadius, OuterFilletRadius) { + super(expressID, ProfileType, ProfileName, Position, XDim, YDim); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.XDim = XDim; + this.YDim = YDim; + this.WallThickness = WallThickness; + this.InnerFilletRadius = InnerFilletRadius; + this.OuterFilletRadius = OuterFilletRadius; + this.type = 2770003689; + } + } + IFC42.IfcRectangleHollowProfileDef = IfcRectangleHollowProfileDef; + class IfcRectangularPyramid extends IfcCsgPrimitive3D { + constructor(expressID, Position, XLength, YLength, Height) { + super(expressID, Position); + this.Position = Position; + this.XLength = XLength; + this.YLength = YLength; + this.Height = Height; + this.type = 2798486643; + } + } + IFC42.IfcRectangularPyramid = IfcRectangularPyramid; + class IfcRectangularTrimmedSurface extends IfcBoundedSurface { + constructor(expressID, BasisSurface, U1, V1, U2, V2, Usense, Vsense) { + super(expressID); + this.BasisSurface = BasisSurface; + this.U1 = U1; + this.V1 = V1; + this.U2 = U2; + this.V2 = V2; + this.Usense = Usense; + this.Vsense = Vsense; + this.type = 3454111270; + } + } + IFC42.IfcRectangularTrimmedSurface = IfcRectangularTrimmedSurface; + class IfcReinforcementDefinitionProperties extends IfcPreDefinedPropertySet { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, DefinitionType, ReinforcementSectionDefinitions) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.DefinitionType = DefinitionType; + this.ReinforcementSectionDefinitions = ReinforcementSectionDefinitions; + this.type = 3765753017; + } + } + IFC42.IfcReinforcementDefinitionProperties = IfcReinforcementDefinitionProperties; + class IfcRelAssigns extends IfcRelationship { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatedObjectsType = RelatedObjectsType; + this.type = 3939117080; + } + } + IFC42.IfcRelAssigns = IfcRelAssigns; + class IfcRelAssignsToActor extends IfcRelAssigns { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingActor, ActingRole) { + super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatedObjectsType = RelatedObjectsType; + this.RelatingActor = RelatingActor; + this.ActingRole = ActingRole; + this.type = 1683148259; + } + } + IFC42.IfcRelAssignsToActor = IfcRelAssignsToActor; + class IfcRelAssignsToControl extends IfcRelAssigns { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl) { + super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatedObjectsType = RelatedObjectsType; + this.RelatingControl = RelatingControl; + this.type = 2495723537; + } + } + IFC42.IfcRelAssignsToControl = IfcRelAssignsToControl; + class IfcRelAssignsToGroup extends IfcRelAssigns { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingGroup) { + super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatedObjectsType = RelatedObjectsType; + this.RelatingGroup = RelatingGroup; + this.type = 1307041759; + } + } + IFC42.IfcRelAssignsToGroup = IfcRelAssignsToGroup; + class IfcRelAssignsToGroupByFactor extends IfcRelAssignsToGroup { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingGroup, Factor) { + super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingGroup); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatedObjectsType = RelatedObjectsType; + this.RelatingGroup = RelatingGroup; + this.Factor = Factor; + this.type = 1027710054; + } + } + IFC42.IfcRelAssignsToGroupByFactor = IfcRelAssignsToGroupByFactor; + class IfcRelAssignsToProcess extends IfcRelAssigns { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingProcess, QuantityInProcess) { + super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatedObjectsType = RelatedObjectsType; + this.RelatingProcess = RelatingProcess; + this.QuantityInProcess = QuantityInProcess; + this.type = 4278684876; + } + } + IFC42.IfcRelAssignsToProcess = IfcRelAssignsToProcess; + class IfcRelAssignsToProduct extends IfcRelAssigns { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingProduct) { + super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatedObjectsType = RelatedObjectsType; + this.RelatingProduct = RelatingProduct; + this.type = 2857406711; + } + } + IFC42.IfcRelAssignsToProduct = IfcRelAssignsToProduct; + class IfcRelAssignsToResource extends IfcRelAssigns { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingResource) { + super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatedObjectsType = RelatedObjectsType; + this.RelatingResource = RelatingResource; + this.type = 205026976; + } + } + IFC42.IfcRelAssignsToResource = IfcRelAssignsToResource; + class IfcRelAssociates extends IfcRelationship { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.type = 1865459582; + } + } + IFC42.IfcRelAssociates = IfcRelAssociates; + class IfcRelAssociatesApproval extends IfcRelAssociates { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingApproval) { + super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatingApproval = RelatingApproval; + this.type = 4095574036; + } + } + IFC42.IfcRelAssociatesApproval = IfcRelAssociatesApproval; + class IfcRelAssociatesClassification extends IfcRelAssociates { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingClassification) { + super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatingClassification = RelatingClassification; + this.type = 919958153; + } + } + IFC42.IfcRelAssociatesClassification = IfcRelAssociatesClassification; + class IfcRelAssociatesConstraint extends IfcRelAssociates { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, Intent, RelatingConstraint) { + super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.Intent = Intent; + this.RelatingConstraint = RelatingConstraint; + this.type = 2728634034; + } + } + IFC42.IfcRelAssociatesConstraint = IfcRelAssociatesConstraint; + class IfcRelAssociatesDocument extends IfcRelAssociates { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingDocument) { + super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatingDocument = RelatingDocument; + this.type = 982818633; + } + } + IFC42.IfcRelAssociatesDocument = IfcRelAssociatesDocument; + class IfcRelAssociatesLibrary extends IfcRelAssociates { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingLibrary) { + super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatingLibrary = RelatingLibrary; + this.type = 3840914261; + } + } + IFC42.IfcRelAssociatesLibrary = IfcRelAssociatesLibrary; + class IfcRelAssociatesMaterial extends IfcRelAssociates { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingMaterial) { + super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatingMaterial = RelatingMaterial; + this.type = 2655215786; + } + } + IFC42.IfcRelAssociatesMaterial = IfcRelAssociatesMaterial; + class IfcRelConnects extends IfcRelationship { + constructor(expressID, GlobalId, OwnerHistory, Name, Description) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.type = 826625072; + } + } + IFC42.IfcRelConnects = IfcRelConnects; + class IfcRelConnectsElements extends IfcRelConnects { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ConnectionGeometry = ConnectionGeometry; + this.RelatingElement = RelatingElement; + this.RelatedElement = RelatedElement; + this.type = 1204542856; + } + } + IFC42.IfcRelConnectsElements = IfcRelConnectsElements; + class IfcRelConnectsPathElements extends IfcRelConnectsElements { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement, RelatingPriorities, RelatedPriorities, RelatedConnectionType, RelatingConnectionType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ConnectionGeometry = ConnectionGeometry; + this.RelatingElement = RelatingElement; + this.RelatedElement = RelatedElement; + this.RelatingPriorities = RelatingPriorities; + this.RelatedPriorities = RelatedPriorities; + this.RelatedConnectionType = RelatedConnectionType; + this.RelatingConnectionType = RelatingConnectionType; + this.type = 3945020480; + } + } + IFC42.IfcRelConnectsPathElements = IfcRelConnectsPathElements; + class IfcRelConnectsPortToElement extends IfcRelConnects { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingPort, RelatedElement) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingPort = RelatingPort; + this.RelatedElement = RelatedElement; + this.type = 4201705270; + } + } + IFC42.IfcRelConnectsPortToElement = IfcRelConnectsPortToElement; + class IfcRelConnectsPorts extends IfcRelConnects { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingPort, RelatedPort, RealizingElement) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingPort = RelatingPort; + this.RelatedPort = RelatedPort; + this.RealizingElement = RealizingElement; + this.type = 3190031847; + } + } + IFC42.IfcRelConnectsPorts = IfcRelConnectsPorts; + class IfcRelConnectsStructuralActivity extends IfcRelConnects { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedStructuralActivity) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingElement = RelatingElement; + this.RelatedStructuralActivity = RelatedStructuralActivity; + this.type = 2127690289; + } + } + IFC42.IfcRelConnectsStructuralActivity = IfcRelConnectsStructuralActivity; + class IfcRelConnectsStructuralMember extends IfcRelConnects { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingStructuralMember = RelatingStructuralMember; + this.RelatedStructuralConnection = RelatedStructuralConnection; + this.AppliedCondition = AppliedCondition; + this.AdditionalConditions = AdditionalConditions; + this.SupportedLength = SupportedLength; + this.ConditionCoordinateSystem = ConditionCoordinateSystem; + this.type = 1638771189; + } + } + IFC42.IfcRelConnectsStructuralMember = IfcRelConnectsStructuralMember; + class IfcRelConnectsWithEccentricity extends IfcRelConnectsStructuralMember { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem, ConnectionConstraint) { + super(expressID, GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingStructuralMember = RelatingStructuralMember; + this.RelatedStructuralConnection = RelatedStructuralConnection; + this.AppliedCondition = AppliedCondition; + this.AdditionalConditions = AdditionalConditions; + this.SupportedLength = SupportedLength; + this.ConditionCoordinateSystem = ConditionCoordinateSystem; + this.ConnectionConstraint = ConnectionConstraint; + this.type = 504942748; + } + } + IFC42.IfcRelConnectsWithEccentricity = IfcRelConnectsWithEccentricity; + class IfcRelConnectsWithRealizingElements extends IfcRelConnectsElements { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement, RealizingElements, ConnectionType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ConnectionGeometry = ConnectionGeometry; + this.RelatingElement = RelatingElement; + this.RelatedElement = RelatedElement; + this.RealizingElements = RealizingElements; + this.ConnectionType = ConnectionType; + this.type = 3678494232; + } + } + IFC42.IfcRelConnectsWithRealizingElements = IfcRelConnectsWithRealizingElements; + class IfcRelContainedInSpatialStructure extends IfcRelConnects { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedElements, RelatingStructure) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedElements = RelatedElements; + this.RelatingStructure = RelatingStructure; + this.type = 3242617779; + } + } + IFC42.IfcRelContainedInSpatialStructure = IfcRelContainedInSpatialStructure; + class IfcRelCoversBldgElements extends IfcRelConnects { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingBuildingElement, RelatedCoverings) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingBuildingElement = RelatingBuildingElement; + this.RelatedCoverings = RelatedCoverings; + this.type = 886880790; + } + } + IFC42.IfcRelCoversBldgElements = IfcRelCoversBldgElements; + class IfcRelCoversSpaces extends IfcRelConnects { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedCoverings) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingSpace = RelatingSpace; + this.RelatedCoverings = RelatedCoverings; + this.type = 2802773753; + } + } + IFC42.IfcRelCoversSpaces = IfcRelCoversSpaces; + class IfcRelDeclares extends IfcRelationship { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingContext, RelatedDefinitions) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingContext = RelatingContext; + this.RelatedDefinitions = RelatedDefinitions; + this.type = 2565941209; + } + } + IFC42.IfcRelDeclares = IfcRelDeclares; + class IfcRelDecomposes extends IfcRelationship { + constructor(expressID, GlobalId, OwnerHistory, Name, Description) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.type = 2551354335; + } + } + IFC42.IfcRelDecomposes = IfcRelDecomposes; + class IfcRelDefines extends IfcRelationship { + constructor(expressID, GlobalId, OwnerHistory, Name, Description) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.type = 693640335; + } + } + IFC42.IfcRelDefines = IfcRelDefines; + class IfcRelDefinesByObject extends IfcRelDefines { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingObject) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatingObject = RelatingObject; + this.type = 1462361463; + } + } + IFC42.IfcRelDefinesByObject = IfcRelDefinesByObject; + class IfcRelDefinesByProperties extends IfcRelDefines { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingPropertyDefinition) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatingPropertyDefinition = RelatingPropertyDefinition; + this.type = 4186316022; + } + } + IFC42.IfcRelDefinesByProperties = IfcRelDefinesByProperties; + class IfcRelDefinesByTemplate extends IfcRelDefines { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedPropertySets, RelatingTemplate) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedPropertySets = RelatedPropertySets; + this.RelatingTemplate = RelatingTemplate; + this.type = 307848117; + } + } + IFC42.IfcRelDefinesByTemplate = IfcRelDefinesByTemplate; + class IfcRelDefinesByType extends IfcRelDefines { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingType) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatingType = RelatingType; + this.type = 781010003; + } + } + IFC42.IfcRelDefinesByType = IfcRelDefinesByType; + class IfcRelFillsElement extends IfcRelConnects { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingOpeningElement, RelatedBuildingElement) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingOpeningElement = RelatingOpeningElement; + this.RelatedBuildingElement = RelatedBuildingElement; + this.type = 3940055652; + } + } + IFC42.IfcRelFillsElement = IfcRelFillsElement; + class IfcRelFlowControlElements extends IfcRelConnects { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedControlElements, RelatingFlowElement) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedControlElements = RelatedControlElements; + this.RelatingFlowElement = RelatingFlowElement; + this.type = 279856033; + } + } + IFC42.IfcRelFlowControlElements = IfcRelFlowControlElements; + class IfcRelInterferesElements extends IfcRelConnects { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedElement, InterferenceGeometry, InterferenceType, ImpliedOrder) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingElement = RelatingElement; + this.RelatedElement = RelatedElement; + this.InterferenceGeometry = InterferenceGeometry; + this.InterferenceType = InterferenceType; + this.ImpliedOrder = ImpliedOrder; + this.type = 427948657; + } + } + IFC42.IfcRelInterferesElements = IfcRelInterferesElements; + class IfcRelNests extends IfcRelDecomposes { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingObject = RelatingObject; + this.RelatedObjects = RelatedObjects; + this.type = 3268803585; + } + } + IFC42.IfcRelNests = IfcRelNests; + class IfcRelProjectsElement extends IfcRelDecomposes { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedFeatureElement) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingElement = RelatingElement; + this.RelatedFeatureElement = RelatedFeatureElement; + this.type = 750771296; + } + } + IFC42.IfcRelProjectsElement = IfcRelProjectsElement; + class IfcRelReferencedInSpatialStructure extends IfcRelConnects { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedElements, RelatingStructure) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedElements = RelatedElements; + this.RelatingStructure = RelatingStructure; + this.type = 1245217292; + } + } + IFC42.IfcRelReferencedInSpatialStructure = IfcRelReferencedInSpatialStructure; + class IfcRelSequence extends IfcRelConnects { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingProcess, RelatedProcess, TimeLag, SequenceType, UserDefinedSequenceType) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingProcess = RelatingProcess; + this.RelatedProcess = RelatedProcess; + this.TimeLag = TimeLag; + this.SequenceType = SequenceType; + this.UserDefinedSequenceType = UserDefinedSequenceType; + this.type = 4122056220; + } + } + IFC42.IfcRelSequence = IfcRelSequence; + class IfcRelServicesBuildings extends IfcRelConnects { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSystem, RelatedBuildings) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingSystem = RelatingSystem; + this.RelatedBuildings = RelatedBuildings; + this.type = 366585022; + } + } + IFC42.IfcRelServicesBuildings = IfcRelServicesBuildings; + class IfcRelSpaceBoundary extends IfcRelConnects { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingSpace = RelatingSpace; + this.RelatedBuildingElement = RelatedBuildingElement; + this.ConnectionGeometry = ConnectionGeometry; + this.PhysicalOrVirtualBoundary = PhysicalOrVirtualBoundary; + this.InternalOrExternalBoundary = InternalOrExternalBoundary; + this.type = 3451746338; + } + } + IFC42.IfcRelSpaceBoundary = IfcRelSpaceBoundary; + class IfcRelSpaceBoundary1stLevel extends IfcRelSpaceBoundary { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary, ParentBoundary) { + super(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingSpace = RelatingSpace; + this.RelatedBuildingElement = RelatedBuildingElement; + this.ConnectionGeometry = ConnectionGeometry; + this.PhysicalOrVirtualBoundary = PhysicalOrVirtualBoundary; + this.InternalOrExternalBoundary = InternalOrExternalBoundary; + this.ParentBoundary = ParentBoundary; + this.type = 3523091289; + } + } + IFC42.IfcRelSpaceBoundary1stLevel = IfcRelSpaceBoundary1stLevel; + class IfcRelSpaceBoundary2ndLevel extends IfcRelSpaceBoundary1stLevel { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary, ParentBoundary, CorrespondingBoundary) { + super(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary, ParentBoundary); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingSpace = RelatingSpace; + this.RelatedBuildingElement = RelatedBuildingElement; + this.ConnectionGeometry = ConnectionGeometry; + this.PhysicalOrVirtualBoundary = PhysicalOrVirtualBoundary; + this.InternalOrExternalBoundary = InternalOrExternalBoundary; + this.ParentBoundary = ParentBoundary; + this.CorrespondingBoundary = CorrespondingBoundary; + this.type = 1521410863; + } + } + IFC42.IfcRelSpaceBoundary2ndLevel = IfcRelSpaceBoundary2ndLevel; + class IfcRelVoidsElement extends IfcRelDecomposes { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingBuildingElement, RelatedOpeningElement) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingBuildingElement = RelatingBuildingElement; + this.RelatedOpeningElement = RelatedOpeningElement; + this.type = 1401173127; + } + } + IFC42.IfcRelVoidsElement = IfcRelVoidsElement; + class IfcReparametrisedCompositeCurveSegment extends IfcCompositeCurveSegment { + constructor(expressID, Transition, SameSense, ParentCurve, ParamLength) { + super(expressID, Transition, SameSense, ParentCurve); + this.Transition = Transition; + this.SameSense = SameSense; + this.ParentCurve = ParentCurve; + this.ParamLength = ParamLength; + this.type = 816062949; + } + } + IFC42.IfcReparametrisedCompositeCurveSegment = IfcReparametrisedCompositeCurveSegment; + class IfcResource extends IfcObject { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.type = 2914609552; + } + } + IFC42.IfcResource = IfcResource; + class IfcRevolvedAreaSolid extends IfcSweptAreaSolid { + constructor(expressID, SweptArea, Position, Axis, Angle) { + super(expressID, SweptArea, Position); + this.SweptArea = SweptArea; + this.Position = Position; + this.Axis = Axis; + this.Angle = Angle; + this.type = 1856042241; + } + } + IFC42.IfcRevolvedAreaSolid = IfcRevolvedAreaSolid; + class IfcRevolvedAreaSolidTapered extends IfcRevolvedAreaSolid { + constructor(expressID, SweptArea, Position, Axis, Angle, EndSweptArea) { + super(expressID, SweptArea, Position, Axis, Angle); + this.SweptArea = SweptArea; + this.Position = Position; + this.Axis = Axis; + this.Angle = Angle; + this.EndSweptArea = EndSweptArea; + this.type = 3243963512; + } + } + IFC42.IfcRevolvedAreaSolidTapered = IfcRevolvedAreaSolidTapered; + class IfcRightCircularCone extends IfcCsgPrimitive3D { + constructor(expressID, Position, Height, BottomRadius) { + super(expressID, Position); + this.Position = Position; + this.Height = Height; + this.BottomRadius = BottomRadius; + this.type = 4158566097; + } + } + IFC42.IfcRightCircularCone = IfcRightCircularCone; + class IfcRightCircularCylinder extends IfcCsgPrimitive3D { + constructor(expressID, Position, Height, Radius) { + super(expressID, Position); + this.Position = Position; + this.Height = Height; + this.Radius = Radius; + this.type = 3626867408; + } + } + IFC42.IfcRightCircularCylinder = IfcRightCircularCylinder; + class IfcSimplePropertyTemplate extends IfcPropertyTemplate { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, TemplateType, PrimaryMeasureType, SecondaryMeasureType, Enumerators, PrimaryUnit, SecondaryUnit, Expression, AccessState) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.TemplateType = TemplateType; + this.PrimaryMeasureType = PrimaryMeasureType; + this.SecondaryMeasureType = SecondaryMeasureType; + this.Enumerators = Enumerators; + this.PrimaryUnit = PrimaryUnit; + this.SecondaryUnit = SecondaryUnit; + this.Expression = Expression; + this.AccessState = AccessState; + this.type = 3663146110; + } + } + IFC42.IfcSimplePropertyTemplate = IfcSimplePropertyTemplate; + class IfcSpatialElement extends IfcProduct { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.LongName = LongName; + this.type = 1412071761; + } + } + IFC42.IfcSpatialElement = IfcSpatialElement; + class IfcSpatialElementType extends IfcTypeProduct { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 710998568; + } + } + IFC42.IfcSpatialElementType = IfcSpatialElementType; + class IfcSpatialStructureElement extends IfcSpatialElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.LongName = LongName; + this.CompositionType = CompositionType; + this.type = 2706606064; + } + } + IFC42.IfcSpatialStructureElement = IfcSpatialStructureElement; + class IfcSpatialStructureElementType extends IfcSpatialElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 3893378262; + } + } + IFC42.IfcSpatialStructureElementType = IfcSpatialStructureElementType; + class IfcSpatialZone extends IfcSpatialElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.LongName = LongName; + this.PredefinedType = PredefinedType; + this.type = 463610769; + } + } + IFC42.IfcSpatialZone = IfcSpatialZone; + class IfcSpatialZoneType extends IfcSpatialElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, LongName) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.LongName = LongName; + this.type = 2481509218; + } + } + IFC42.IfcSpatialZoneType = IfcSpatialZoneType; + class IfcSphere extends IfcCsgPrimitive3D { + constructor(expressID, Position, Radius) { + super(expressID, Position); + this.Position = Position; + this.Radius = Radius; + this.type = 451544542; + } + } + IFC42.IfcSphere = IfcSphere; + class IfcSphericalSurface extends IfcElementarySurface { + constructor(expressID, Position, Radius) { + super(expressID, Position); + this.Position = Position; + this.Radius = Radius; + this.type = 4015995234; + } + } + IFC42.IfcSphericalSurface = IfcSphericalSurface; + class IfcStructuralActivity extends IfcProduct { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedLoad = AppliedLoad; + this.GlobalOrLocal = GlobalOrLocal; + this.type = 3544373492; + } + } + IFC42.IfcStructuralActivity = IfcStructuralActivity; + class IfcStructuralItem extends IfcProduct { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.type = 3136571912; + } + } + IFC42.IfcStructuralItem = IfcStructuralItem; + class IfcStructuralMember extends IfcStructuralItem { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.type = 530289379; + } + } + IFC42.IfcStructuralMember = IfcStructuralMember; + class IfcStructuralReaction extends IfcStructuralActivity { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedLoad = AppliedLoad; + this.GlobalOrLocal = GlobalOrLocal; + this.type = 3689010777; + } + } + IFC42.IfcStructuralReaction = IfcStructuralReaction; + class IfcStructuralSurfaceMember extends IfcStructuralMember { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.PredefinedType = PredefinedType; + this.Thickness = Thickness; + this.type = 3979015343; + } + } + IFC42.IfcStructuralSurfaceMember = IfcStructuralSurfaceMember; + class IfcStructuralSurfaceMemberVarying extends IfcStructuralSurfaceMember { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.PredefinedType = PredefinedType; + this.Thickness = Thickness; + this.type = 2218152070; + } + } + IFC42.IfcStructuralSurfaceMemberVarying = IfcStructuralSurfaceMemberVarying; + class IfcStructuralSurfaceReaction extends IfcStructuralReaction { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedLoad = AppliedLoad; + this.GlobalOrLocal = GlobalOrLocal; + this.PredefinedType = PredefinedType; + this.type = 603775116; + } + } + IFC42.IfcStructuralSurfaceReaction = IfcStructuralSurfaceReaction; + class IfcSubContractResourceType extends IfcConstructionResourceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.ResourceType = ResourceType; + this.BaseCosts = BaseCosts; + this.BaseQuantity = BaseQuantity; + this.PredefinedType = PredefinedType; + this.type = 4095615324; + } + } + IFC42.IfcSubContractResourceType = IfcSubContractResourceType; + class IfcSurfaceCurve extends IfcCurve { + constructor(expressID, Curve3D, AssociatedGeometry, MasterRepresentation) { + super(expressID); + this.Curve3D = Curve3D; + this.AssociatedGeometry = AssociatedGeometry; + this.MasterRepresentation = MasterRepresentation; + this.type = 699246055; + } + } + IFC42.IfcSurfaceCurve = IfcSurfaceCurve; + class IfcSurfaceCurveSweptAreaSolid extends IfcSweptAreaSolid { + constructor(expressID, SweptArea, Position, Directrix, StartParam, EndParam, ReferenceSurface) { + super(expressID, SweptArea, Position); + this.SweptArea = SweptArea; + this.Position = Position; + this.Directrix = Directrix; + this.StartParam = StartParam; + this.EndParam = EndParam; + this.ReferenceSurface = ReferenceSurface; + this.type = 2028607225; + } + } + IFC42.IfcSurfaceCurveSweptAreaSolid = IfcSurfaceCurveSweptAreaSolid; + class IfcSurfaceOfLinearExtrusion extends IfcSweptSurface { + constructor(expressID, SweptCurve, Position, ExtrudedDirection, Depth) { + super(expressID, SweptCurve, Position); + this.SweptCurve = SweptCurve; + this.Position = Position; + this.ExtrudedDirection = ExtrudedDirection; + this.Depth = Depth; + this.type = 2809605785; + } + } + IFC42.IfcSurfaceOfLinearExtrusion = IfcSurfaceOfLinearExtrusion; + class IfcSurfaceOfRevolution extends IfcSweptSurface { + constructor(expressID, SweptCurve, Position, AxisPosition) { + super(expressID, SweptCurve, Position); + this.SweptCurve = SweptCurve; + this.Position = Position; + this.AxisPosition = AxisPosition; + this.type = 4124788165; + } + } + IFC42.IfcSurfaceOfRevolution = IfcSurfaceOfRevolution; + class IfcSystemFurnitureElementType extends IfcFurnishingElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1580310250; + } + } + IFC42.IfcSystemFurnitureElementType = IfcSystemFurnitureElementType; + class IfcTask extends IfcProcess { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Status, WorkMethod, IsMilestone, Priority, TaskTime, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.Status = Status; + this.WorkMethod = WorkMethod; + this.IsMilestone = IsMilestone; + this.Priority = Priority; + this.TaskTime = TaskTime; + this.PredefinedType = PredefinedType; + this.type = 3473067441; + } + } + IFC42.IfcTask = IfcTask; + class IfcTaskType extends IfcTypeProcess { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType, PredefinedType, WorkMethod) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.ProcessType = ProcessType; + this.PredefinedType = PredefinedType; + this.WorkMethod = WorkMethod; + this.type = 3206491090; + } + } + IFC42.IfcTaskType = IfcTaskType; + class IfcTessellatedFaceSet extends IfcTessellatedItem { + constructor(expressID, Coordinates) { + super(expressID); + this.Coordinates = Coordinates; + this.type = 2387106220; + } + } + IFC42.IfcTessellatedFaceSet = IfcTessellatedFaceSet; + class IfcToroidalSurface extends IfcElementarySurface { + constructor(expressID, Position, MajorRadius, MinorRadius) { + super(expressID, Position); + this.Position = Position; + this.MajorRadius = MajorRadius; + this.MinorRadius = MinorRadius; + this.type = 1935646853; + } + } + IFC42.IfcToroidalSurface = IfcToroidalSurface; + class IfcTransportElementType extends IfcElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2097647324; + } + } + IFC42.IfcTransportElementType = IfcTransportElementType; + class IfcTriangulatedFaceSet extends IfcTessellatedFaceSet { + constructor(expressID, Coordinates, Normals, Closed, CoordIndex, PnIndex) { + super(expressID, Coordinates); + this.Coordinates = Coordinates; + this.Normals = Normals; + this.Closed = Closed; + this.CoordIndex = CoordIndex; + this.PnIndex = PnIndex; + this.type = 2916149573; + } + } + IFC42.IfcTriangulatedFaceSet = IfcTriangulatedFaceSet; + class IfcWindowLiningProperties extends IfcPreDefinedPropertySet { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, LiningDepth, LiningThickness, TransomThickness, MullionThickness, FirstTransomOffset, SecondTransomOffset, FirstMullionOffset, SecondMullionOffset, ShapeAspectStyle, LiningOffset, LiningToPanelOffsetX, LiningToPanelOffsetY) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.LiningDepth = LiningDepth; + this.LiningThickness = LiningThickness; + this.TransomThickness = TransomThickness; + this.MullionThickness = MullionThickness; + this.FirstTransomOffset = FirstTransomOffset; + this.SecondTransomOffset = SecondTransomOffset; + this.FirstMullionOffset = FirstMullionOffset; + this.SecondMullionOffset = SecondMullionOffset; + this.ShapeAspectStyle = ShapeAspectStyle; + this.LiningOffset = LiningOffset; + this.LiningToPanelOffsetX = LiningToPanelOffsetX; + this.LiningToPanelOffsetY = LiningToPanelOffsetY; + this.type = 336235671; + } + } + IFC42.IfcWindowLiningProperties = IfcWindowLiningProperties; + class IfcWindowPanelProperties extends IfcPreDefinedPropertySet { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, OperationType, PanelPosition, FrameDepth, FrameThickness, ShapeAspectStyle) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.OperationType = OperationType; + this.PanelPosition = PanelPosition; + this.FrameDepth = FrameDepth; + this.FrameThickness = FrameThickness; + this.ShapeAspectStyle = ShapeAspectStyle; + this.type = 512836454; + } + } + IFC42.IfcWindowPanelProperties = IfcWindowPanelProperties; + class IfcActor extends IfcObject { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.TheActor = TheActor; + this.type = 2296667514; + } + } + IFC42.IfcActor = IfcActor; + class IfcAdvancedBrep extends IfcManifoldSolidBrep { + constructor(expressID, Outer) { + super(expressID, Outer); + this.Outer = Outer; + this.type = 1635779807; + } + } + IFC42.IfcAdvancedBrep = IfcAdvancedBrep; + class IfcAdvancedBrepWithVoids extends IfcAdvancedBrep { + constructor(expressID, Outer, Voids) { + super(expressID, Outer); + this.Outer = Outer; + this.Voids = Voids; + this.type = 2603310189; + } + } + IFC42.IfcAdvancedBrepWithVoids = IfcAdvancedBrepWithVoids; + class IfcAnnotation extends IfcProduct { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.type = 1674181508; + } + } + IFC42.IfcAnnotation = IfcAnnotation; + class IfcBSplineSurface extends IfcBoundedSurface { + constructor(expressID, UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect) { + super(expressID); + this.UDegree = UDegree; + this.VDegree = VDegree; + this.ControlPointsList = ControlPointsList; + this.SurfaceForm = SurfaceForm; + this.UClosed = UClosed; + this.VClosed = VClosed; + this.SelfIntersect = SelfIntersect; + this.type = 2887950389; + } + } + IFC42.IfcBSplineSurface = IfcBSplineSurface; + class IfcBSplineSurfaceWithKnots extends IfcBSplineSurface { + constructor(expressID, UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect, UMultiplicities, VMultiplicities, UKnots, VKnots, KnotSpec) { + super(expressID, UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect); + this.UDegree = UDegree; + this.VDegree = VDegree; + this.ControlPointsList = ControlPointsList; + this.SurfaceForm = SurfaceForm; + this.UClosed = UClosed; + this.VClosed = VClosed; + this.SelfIntersect = SelfIntersect; + this.UMultiplicities = UMultiplicities; + this.VMultiplicities = VMultiplicities; + this.UKnots = UKnots; + this.VKnots = VKnots; + this.KnotSpec = KnotSpec; + this.type = 167062518; + } + } + IFC42.IfcBSplineSurfaceWithKnots = IfcBSplineSurfaceWithKnots; + class IfcBlock extends IfcCsgPrimitive3D { + constructor(expressID, Position, XLength, YLength, ZLength) { + super(expressID, Position); + this.Position = Position; + this.XLength = XLength; + this.YLength = YLength; + this.ZLength = ZLength; + this.type = 1334484129; + } + } + IFC42.IfcBlock = IfcBlock; + class IfcBooleanClippingResult extends IfcBooleanResult { + constructor(expressID, Operator, FirstOperand, SecondOperand) { + super(expressID, Operator, FirstOperand, SecondOperand); + this.Operator = Operator; + this.FirstOperand = FirstOperand; + this.SecondOperand = SecondOperand; + this.type = 3649129432; + } + } + IFC42.IfcBooleanClippingResult = IfcBooleanClippingResult; + class IfcBoundedCurve extends IfcCurve { + constructor(expressID) { + super(expressID); + this.type = 1260505505; + } + } + IFC42.IfcBoundedCurve = IfcBoundedCurve; + class IfcBuilding extends IfcSpatialStructureElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, ElevationOfRefHeight, ElevationOfTerrain, BuildingAddress) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.LongName = LongName; + this.CompositionType = CompositionType; + this.ElevationOfRefHeight = ElevationOfRefHeight; + this.ElevationOfTerrain = ElevationOfTerrain; + this.BuildingAddress = BuildingAddress; + this.type = 4031249490; + } + } + IFC42.IfcBuilding = IfcBuilding; + class IfcBuildingElementType extends IfcElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 1950629157; + } + } + IFC42.IfcBuildingElementType = IfcBuildingElementType; + class IfcBuildingStorey extends IfcSpatialStructureElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, Elevation) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.LongName = LongName; + this.CompositionType = CompositionType; + this.Elevation = Elevation; + this.type = 3124254112; + } + } + IFC42.IfcBuildingStorey = IfcBuildingStorey; + class IfcChimneyType extends IfcBuildingElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2197970202; + } + } + IFC42.IfcChimneyType = IfcChimneyType; + class IfcCircleHollowProfileDef extends IfcCircleProfileDef { + constructor(expressID, ProfileType, ProfileName, Position, Radius, WallThickness) { + super(expressID, ProfileType, ProfileName, Position, Radius); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.Radius = Radius; + this.WallThickness = WallThickness; + this.type = 2937912522; + } + } + IFC42.IfcCircleHollowProfileDef = IfcCircleHollowProfileDef; + class IfcCivilElementType extends IfcElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 3893394355; + } + } + IFC42.IfcCivilElementType = IfcCivilElementType; + class IfcColumnType extends IfcBuildingElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 300633059; + } + } + IFC42.IfcColumnType = IfcColumnType; + class IfcComplexPropertyTemplate extends IfcPropertyTemplate { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, UsageName, TemplateType, HasPropertyTemplates) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.UsageName = UsageName; + this.TemplateType = TemplateType; + this.HasPropertyTemplates = HasPropertyTemplates; + this.type = 3875453745; + } + } + IFC42.IfcComplexPropertyTemplate = IfcComplexPropertyTemplate; + class IfcCompositeCurve extends IfcBoundedCurve { + constructor(expressID, Segments, SelfIntersect) { + super(expressID); + this.Segments = Segments; + this.SelfIntersect = SelfIntersect; + this.type = 3732776249; + } + } + IFC42.IfcCompositeCurve = IfcCompositeCurve; + class IfcCompositeCurveOnSurface extends IfcCompositeCurve { + constructor(expressID, Segments, SelfIntersect) { + super(expressID, Segments, SelfIntersect); + this.Segments = Segments; + this.SelfIntersect = SelfIntersect; + this.type = 15328376; + } + } + IFC42.IfcCompositeCurveOnSurface = IfcCompositeCurveOnSurface; + class IfcConic extends IfcCurve { + constructor(expressID, Position) { + super(expressID); + this.Position = Position; + this.type = 2510884976; + } + } + IFC42.IfcConic = IfcConic; + class IfcConstructionEquipmentResourceType extends IfcConstructionResourceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.ResourceType = ResourceType; + this.BaseCosts = BaseCosts; + this.BaseQuantity = BaseQuantity; + this.PredefinedType = PredefinedType; + this.type = 2185764099; + } + } + IFC42.IfcConstructionEquipmentResourceType = IfcConstructionEquipmentResourceType; + class IfcConstructionMaterialResourceType extends IfcConstructionResourceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.ResourceType = ResourceType; + this.BaseCosts = BaseCosts; + this.BaseQuantity = BaseQuantity; + this.PredefinedType = PredefinedType; + this.type = 4105962743; + } + } + IFC42.IfcConstructionMaterialResourceType = IfcConstructionMaterialResourceType; + class IfcConstructionProductResourceType extends IfcConstructionResourceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.ResourceType = ResourceType; + this.BaseCosts = BaseCosts; + this.BaseQuantity = BaseQuantity; + this.PredefinedType = PredefinedType; + this.type = 1525564444; + } + } + IFC42.IfcConstructionProductResourceType = IfcConstructionProductResourceType; + class IfcConstructionResource extends IfcResource { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.Usage = Usage; + this.BaseCosts = BaseCosts; + this.BaseQuantity = BaseQuantity; + this.type = 2559216714; + } + } + IFC42.IfcConstructionResource = IfcConstructionResource; + class IfcControl extends IfcObject { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.type = 3293443760; + } + } + IFC42.IfcControl = IfcControl; + class IfcCostItem extends IfcControl { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, CostValues, CostQuantities) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.PredefinedType = PredefinedType; + this.CostValues = CostValues; + this.CostQuantities = CostQuantities; + this.type = 3895139033; + } + } + IFC42.IfcCostItem = IfcCostItem; + class IfcCostSchedule extends IfcControl { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, SubmittedOn, UpdateDate) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.PredefinedType = PredefinedType; + this.Status = Status; + this.SubmittedOn = SubmittedOn; + this.UpdateDate = UpdateDate; + this.type = 1419761937; + } + } + IFC42.IfcCostSchedule = IfcCostSchedule; + class IfcCoveringType extends IfcBuildingElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1916426348; + } + } + IFC42.IfcCoveringType = IfcCoveringType; + class IfcCrewResource extends IfcConstructionResource { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.Usage = Usage; + this.BaseCosts = BaseCosts; + this.BaseQuantity = BaseQuantity; + this.PredefinedType = PredefinedType; + this.type = 3295246426; + } + } + IFC42.IfcCrewResource = IfcCrewResource; + class IfcCurtainWallType extends IfcBuildingElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1457835157; + } + } + IFC42.IfcCurtainWallType = IfcCurtainWallType; + class IfcCylindricalSurface extends IfcElementarySurface { + constructor(expressID, Position, Radius) { + super(expressID, Position); + this.Position = Position; + this.Radius = Radius; + this.type = 1213902940; + } + } + IFC42.IfcCylindricalSurface = IfcCylindricalSurface; + class IfcDistributionElementType extends IfcElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 3256556792; + } + } + IFC42.IfcDistributionElementType = IfcDistributionElementType; + class IfcDistributionFlowElementType extends IfcDistributionElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 3849074793; + } + } + IFC42.IfcDistributionFlowElementType = IfcDistributionFlowElementType; + class IfcDoorLiningProperties extends IfcPreDefinedPropertySet { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, LiningDepth, LiningThickness, ThresholdDepth, ThresholdThickness, TransomThickness, TransomOffset, LiningOffset, ThresholdOffset, CasingThickness, CasingDepth, ShapeAspectStyle, LiningToPanelOffsetX, LiningToPanelOffsetY) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.LiningDepth = LiningDepth; + this.LiningThickness = LiningThickness; + this.ThresholdDepth = ThresholdDepth; + this.ThresholdThickness = ThresholdThickness; + this.TransomThickness = TransomThickness; + this.TransomOffset = TransomOffset; + this.LiningOffset = LiningOffset; + this.ThresholdOffset = ThresholdOffset; + this.CasingThickness = CasingThickness; + this.CasingDepth = CasingDepth; + this.ShapeAspectStyle = ShapeAspectStyle; + this.LiningToPanelOffsetX = LiningToPanelOffsetX; + this.LiningToPanelOffsetY = LiningToPanelOffsetY; + this.type = 2963535650; + } + } + IFC42.IfcDoorLiningProperties = IfcDoorLiningProperties; + class IfcDoorPanelProperties extends IfcPreDefinedPropertySet { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, PanelDepth, PanelOperation, PanelWidth, PanelPosition, ShapeAspectStyle) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.PanelDepth = PanelDepth; + this.PanelOperation = PanelOperation; + this.PanelWidth = PanelWidth; + this.PanelPosition = PanelPosition; + this.ShapeAspectStyle = ShapeAspectStyle; + this.type = 1714330368; + } + } + IFC42.IfcDoorPanelProperties = IfcDoorPanelProperties; + class IfcDoorType extends IfcBuildingElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, OperationType, ParameterTakesPrecedence, UserDefinedOperationType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.OperationType = OperationType; + this.ParameterTakesPrecedence = ParameterTakesPrecedence; + this.UserDefinedOperationType = UserDefinedOperationType; + this.type = 2323601079; + } + } + IFC42.IfcDoorType = IfcDoorType; + class IfcDraughtingPreDefinedColour extends IfcPreDefinedColour { + constructor(expressID, Name) { + super(expressID, Name); + this.Name = Name; + this.type = 445594917; + } + } + IFC42.IfcDraughtingPreDefinedColour = IfcDraughtingPreDefinedColour; + class IfcDraughtingPreDefinedCurveFont extends IfcPreDefinedCurveFont { + constructor(expressID, Name) { + super(expressID, Name); + this.Name = Name; + this.type = 4006246654; + } + } + IFC42.IfcDraughtingPreDefinedCurveFont = IfcDraughtingPreDefinedCurveFont; + class IfcElement extends IfcProduct { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 1758889154; + } + } + IFC42.IfcElement = IfcElement; + class IfcElementAssembly extends IfcElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, AssemblyPlace, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.AssemblyPlace = AssemblyPlace; + this.PredefinedType = PredefinedType; + this.type = 4123344466; + } + } + IFC42.IfcElementAssembly = IfcElementAssembly; + class IfcElementAssemblyType extends IfcElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2397081782; + } + } + IFC42.IfcElementAssemblyType = IfcElementAssemblyType; + class IfcElementComponent extends IfcElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 1623761950; + } + } + IFC42.IfcElementComponent = IfcElementComponent; + class IfcElementComponentType extends IfcElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 2590856083; + } + } + IFC42.IfcElementComponentType = IfcElementComponentType; + class IfcEllipse extends IfcConic { + constructor(expressID, Position, SemiAxis1, SemiAxis2) { + super(expressID, Position); + this.Position = Position; + this.SemiAxis1 = SemiAxis1; + this.SemiAxis2 = SemiAxis2; + this.type = 1704287377; + } + } + IFC42.IfcEllipse = IfcEllipse; + class IfcEnergyConversionDeviceType extends IfcDistributionFlowElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 2107101300; + } + } + IFC42.IfcEnergyConversionDeviceType = IfcEnergyConversionDeviceType; + class IfcEngineType extends IfcEnergyConversionDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 132023988; + } + } + IFC42.IfcEngineType = IfcEngineType; + class IfcEvaporativeCoolerType extends IfcEnergyConversionDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3174744832; + } + } + IFC42.IfcEvaporativeCoolerType = IfcEvaporativeCoolerType; + class IfcEvaporatorType extends IfcEnergyConversionDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3390157468; + } + } + IFC42.IfcEvaporatorType = IfcEvaporatorType; + class IfcEvent extends IfcProcess { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, PredefinedType, EventTriggerType, UserDefinedEventTriggerType, EventOccurenceTime) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.PredefinedType = PredefinedType; + this.EventTriggerType = EventTriggerType; + this.UserDefinedEventTriggerType = UserDefinedEventTriggerType; + this.EventOccurenceTime = EventOccurenceTime; + this.type = 4148101412; + } + } + IFC42.IfcEvent = IfcEvent; + class IfcExternalSpatialStructureElement extends IfcSpatialElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.LongName = LongName; + this.type = 2853485674; + } + } + IFC42.IfcExternalSpatialStructureElement = IfcExternalSpatialStructureElement; + class IfcFacetedBrep extends IfcManifoldSolidBrep { + constructor(expressID, Outer) { + super(expressID, Outer); + this.Outer = Outer; + this.type = 807026263; + } + } + IFC42.IfcFacetedBrep = IfcFacetedBrep; + class IfcFacetedBrepWithVoids extends IfcFacetedBrep { + constructor(expressID, Outer, Voids) { + super(expressID, Outer); + this.Outer = Outer; + this.Voids = Voids; + this.type = 3737207727; + } + } + IFC42.IfcFacetedBrepWithVoids = IfcFacetedBrepWithVoids; + class IfcFastener extends IfcElementComponent { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 647756555; + } + } + IFC42.IfcFastener = IfcFastener; + class IfcFastenerType extends IfcElementComponentType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2489546625; + } + } + IFC42.IfcFastenerType = IfcFastenerType; + class IfcFeatureElement extends IfcElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 2827207264; + } + } + IFC42.IfcFeatureElement = IfcFeatureElement; + class IfcFeatureElementAddition extends IfcFeatureElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 2143335405; + } + } + IFC42.IfcFeatureElementAddition = IfcFeatureElementAddition; + class IfcFeatureElementSubtraction extends IfcFeatureElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 1287392070; + } + } + IFC42.IfcFeatureElementSubtraction = IfcFeatureElementSubtraction; + class IfcFlowControllerType extends IfcDistributionFlowElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 3907093117; + } + } + IFC42.IfcFlowControllerType = IfcFlowControllerType; + class IfcFlowFittingType extends IfcDistributionFlowElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 3198132628; + } + } + IFC42.IfcFlowFittingType = IfcFlowFittingType; + class IfcFlowMeterType extends IfcFlowControllerType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3815607619; + } + } + IFC42.IfcFlowMeterType = IfcFlowMeterType; + class IfcFlowMovingDeviceType extends IfcDistributionFlowElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 1482959167; + } + } + IFC42.IfcFlowMovingDeviceType = IfcFlowMovingDeviceType; + class IfcFlowSegmentType extends IfcDistributionFlowElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 1834744321; + } + } + IFC42.IfcFlowSegmentType = IfcFlowSegmentType; + class IfcFlowStorageDeviceType extends IfcDistributionFlowElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 1339347760; + } + } + IFC42.IfcFlowStorageDeviceType = IfcFlowStorageDeviceType; + class IfcFlowTerminalType extends IfcDistributionFlowElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 2297155007; + } + } + IFC42.IfcFlowTerminalType = IfcFlowTerminalType; + class IfcFlowTreatmentDeviceType extends IfcDistributionFlowElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 3009222698; + } + } + IFC42.IfcFlowTreatmentDeviceType = IfcFlowTreatmentDeviceType; + class IfcFootingType extends IfcBuildingElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1893162501; + } + } + IFC42.IfcFootingType = IfcFootingType; + class IfcFurnishingElement extends IfcElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 263784265; + } + } + IFC42.IfcFurnishingElement = IfcFurnishingElement; + class IfcFurniture extends IfcFurnishingElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1509553395; + } + } + IFC42.IfcFurniture = IfcFurniture; + class IfcGeographicElement extends IfcElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3493046030; + } + } + IFC42.IfcGeographicElement = IfcGeographicElement; + class IfcGrid extends IfcProduct { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, UAxes, VAxes, WAxes, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.UAxes = UAxes; + this.VAxes = VAxes; + this.WAxes = WAxes; + this.PredefinedType = PredefinedType; + this.type = 3009204131; + } + } + IFC42.IfcGrid = IfcGrid; + class IfcGroup extends IfcObject { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.type = 2706460486; + } + } + IFC42.IfcGroup = IfcGroup; + class IfcHeatExchangerType extends IfcEnergyConversionDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1251058090; + } + } + IFC42.IfcHeatExchangerType = IfcHeatExchangerType; + class IfcHumidifierType extends IfcEnergyConversionDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1806887404; + } + } + IFC42.IfcHumidifierType = IfcHumidifierType; + class IfcIndexedPolyCurve extends IfcBoundedCurve { + constructor(expressID, Points, Segments, SelfIntersect) { + super(expressID); + this.Points = Points; + this.Segments = Segments; + this.SelfIntersect = SelfIntersect; + this.type = 2571569899; + } + } + IFC42.IfcIndexedPolyCurve = IfcIndexedPolyCurve; + class IfcInterceptorType extends IfcFlowTreatmentDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3946677679; + } + } + IFC42.IfcInterceptorType = IfcInterceptorType; + class IfcIntersectionCurve extends IfcSurfaceCurve { + constructor(expressID, Curve3D, AssociatedGeometry, MasterRepresentation) { + super(expressID, Curve3D, AssociatedGeometry, MasterRepresentation); + this.Curve3D = Curve3D; + this.AssociatedGeometry = AssociatedGeometry; + this.MasterRepresentation = MasterRepresentation; + this.type = 3113134337; + } + } + IFC42.IfcIntersectionCurve = IfcIntersectionCurve; + class IfcInventory extends IfcGroup { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, Jurisdiction, ResponsiblePersons, LastUpdateDate, CurrentValue, OriginalValue) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.PredefinedType = PredefinedType; + this.Jurisdiction = Jurisdiction; + this.ResponsiblePersons = ResponsiblePersons; + this.LastUpdateDate = LastUpdateDate; + this.CurrentValue = CurrentValue; + this.OriginalValue = OriginalValue; + this.type = 2391368822; + } + } + IFC42.IfcInventory = IfcInventory; + class IfcJunctionBoxType extends IfcFlowFittingType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 4288270099; + } + } + IFC42.IfcJunctionBoxType = IfcJunctionBoxType; + class IfcLaborResource extends IfcConstructionResource { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.Usage = Usage; + this.BaseCosts = BaseCosts; + this.BaseQuantity = BaseQuantity; + this.PredefinedType = PredefinedType; + this.type = 3827777499; + } + } + IFC42.IfcLaborResource = IfcLaborResource; + class IfcLampType extends IfcFlowTerminalType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1051575348; + } + } + IFC42.IfcLampType = IfcLampType; + class IfcLightFixtureType extends IfcFlowTerminalType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1161773419; + } + } + IFC42.IfcLightFixtureType = IfcLightFixtureType; + class IfcMechanicalFastener extends IfcElementComponent { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, NominalDiameter, NominalLength, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.NominalDiameter = NominalDiameter; + this.NominalLength = NominalLength; + this.PredefinedType = PredefinedType; + this.type = 377706215; + } + } + IFC42.IfcMechanicalFastener = IfcMechanicalFastener; + class IfcMechanicalFastenerType extends IfcElementComponentType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, NominalDiameter, NominalLength) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.NominalDiameter = NominalDiameter; + this.NominalLength = NominalLength; + this.type = 2108223431; + } + } + IFC42.IfcMechanicalFastenerType = IfcMechanicalFastenerType; + class IfcMedicalDeviceType extends IfcFlowTerminalType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1114901282; + } + } + IFC42.IfcMedicalDeviceType = IfcMedicalDeviceType; + class IfcMemberType extends IfcBuildingElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3181161470; + } + } + IFC42.IfcMemberType = IfcMemberType; + class IfcMotorConnectionType extends IfcEnergyConversionDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 977012517; + } + } + IFC42.IfcMotorConnectionType = IfcMotorConnectionType; + class IfcOccupant extends IfcActor { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.TheActor = TheActor; + this.PredefinedType = PredefinedType; + this.type = 4143007308; + } + } + IFC42.IfcOccupant = IfcOccupant; + class IfcOpeningElement extends IfcFeatureElementSubtraction { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3588315303; + } + } + IFC42.IfcOpeningElement = IfcOpeningElement; + class IfcOpeningStandardCase extends IfcOpeningElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3079942009; + } + } + IFC42.IfcOpeningStandardCase = IfcOpeningStandardCase; + class IfcOutletType extends IfcFlowTerminalType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2837617999; + } + } + IFC42.IfcOutletType = IfcOutletType; + class IfcPerformanceHistory extends IfcControl { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LifeCyclePhase, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.LifeCyclePhase = LifeCyclePhase; + this.PredefinedType = PredefinedType; + this.type = 2382730787; + } + } + IFC42.IfcPerformanceHistory = IfcPerformanceHistory; + class IfcPermeableCoveringProperties extends IfcPreDefinedPropertySet { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, OperationType, PanelPosition, FrameDepth, FrameThickness, ShapeAspectStyle) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.OperationType = OperationType; + this.PanelPosition = PanelPosition; + this.FrameDepth = FrameDepth; + this.FrameThickness = FrameThickness; + this.ShapeAspectStyle = ShapeAspectStyle; + this.type = 3566463478; + } + } + IFC42.IfcPermeableCoveringProperties = IfcPermeableCoveringProperties; + class IfcPermit extends IfcControl { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, LongDescription) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.PredefinedType = PredefinedType; + this.Status = Status; + this.LongDescription = LongDescription; + this.type = 3327091369; + } + } + IFC42.IfcPermit = IfcPermit; + class IfcPileType extends IfcBuildingElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1158309216; + } + } + IFC42.IfcPileType = IfcPileType; + class IfcPipeFittingType extends IfcFlowFittingType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 804291784; + } + } + IFC42.IfcPipeFittingType = IfcPipeFittingType; + class IfcPipeSegmentType extends IfcFlowSegmentType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 4231323485; + } + } + IFC42.IfcPipeSegmentType = IfcPipeSegmentType; + class IfcPlateType extends IfcBuildingElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 4017108033; + } + } + IFC42.IfcPlateType = IfcPlateType; + class IfcPolygonalFaceSet extends IfcTessellatedFaceSet { + constructor(expressID, Coordinates, Closed, Faces, PnIndex) { + super(expressID, Coordinates); + this.Coordinates = Coordinates; + this.Closed = Closed; + this.Faces = Faces; + this.PnIndex = PnIndex; + this.type = 2839578677; + } + } + IFC42.IfcPolygonalFaceSet = IfcPolygonalFaceSet; + class IfcPolyline extends IfcBoundedCurve { + constructor(expressID, Points) { + super(expressID); + this.Points = Points; + this.type = 3724593414; + } + } + IFC42.IfcPolyline = IfcPolyline; + class IfcPort extends IfcProduct { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.type = 3740093272; + } + } + IFC42.IfcPort = IfcPort; + class IfcProcedure extends IfcProcess { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.PredefinedType = PredefinedType; + this.type = 2744685151; + } + } + IFC42.IfcProcedure = IfcProcedure; + class IfcProjectOrder extends IfcControl { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, LongDescription) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.PredefinedType = PredefinedType; + this.Status = Status; + this.LongDescription = LongDescription; + this.type = 2904328755; + } + } + IFC42.IfcProjectOrder = IfcProjectOrder; + class IfcProjectionElement extends IfcFeatureElementAddition { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3651124850; + } + } + IFC42.IfcProjectionElement = IfcProjectionElement; + class IfcProtectiveDeviceType extends IfcFlowControllerType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1842657554; + } + } + IFC42.IfcProtectiveDeviceType = IfcProtectiveDeviceType; + class IfcPumpType extends IfcFlowMovingDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2250791053; + } + } + IFC42.IfcPumpType = IfcPumpType; + class IfcRailingType extends IfcBuildingElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2893384427; + } + } + IFC42.IfcRailingType = IfcRailingType; + class IfcRampFlightType extends IfcBuildingElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2324767716; + } + } + IFC42.IfcRampFlightType = IfcRampFlightType; + class IfcRampType extends IfcBuildingElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1469900589; + } + } + IFC42.IfcRampType = IfcRampType; + class IfcRationalBSplineSurfaceWithKnots extends IfcBSplineSurfaceWithKnots { + constructor(expressID, UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect, UMultiplicities, VMultiplicities, UKnots, VKnots, KnotSpec, WeightsData) { + super(expressID, UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect, UMultiplicities, VMultiplicities, UKnots, VKnots, KnotSpec); + this.UDegree = UDegree; + this.VDegree = VDegree; + this.ControlPointsList = ControlPointsList; + this.SurfaceForm = SurfaceForm; + this.UClosed = UClosed; + this.VClosed = VClosed; + this.SelfIntersect = SelfIntersect; + this.UMultiplicities = UMultiplicities; + this.VMultiplicities = VMultiplicities; + this.UKnots = UKnots; + this.VKnots = VKnots; + this.KnotSpec = KnotSpec; + this.WeightsData = WeightsData; + this.type = 683857671; + } + } + IFC42.IfcRationalBSplineSurfaceWithKnots = IfcRationalBSplineSurfaceWithKnots; + class IfcReinforcingElement extends IfcElementComponent { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.SteelGrade = SteelGrade; + this.type = 3027567501; + } + } + IFC42.IfcReinforcingElement = IfcReinforcingElement; + class IfcReinforcingElementType extends IfcElementComponentType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 964333572; + } + } + IFC42.IfcReinforcingElementType = IfcReinforcingElementType; + class IfcReinforcingMesh extends IfcReinforcingElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, MeshLength, MeshWidth, LongitudinalBarNominalDiameter, TransverseBarNominalDiameter, LongitudinalBarCrossSectionArea, TransverseBarCrossSectionArea, LongitudinalBarSpacing, TransverseBarSpacing, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.SteelGrade = SteelGrade; + this.MeshLength = MeshLength; + this.MeshWidth = MeshWidth; + this.LongitudinalBarNominalDiameter = LongitudinalBarNominalDiameter; + this.TransverseBarNominalDiameter = TransverseBarNominalDiameter; + this.LongitudinalBarCrossSectionArea = LongitudinalBarCrossSectionArea; + this.TransverseBarCrossSectionArea = TransverseBarCrossSectionArea; + this.LongitudinalBarSpacing = LongitudinalBarSpacing; + this.TransverseBarSpacing = TransverseBarSpacing; + this.PredefinedType = PredefinedType; + this.type = 2320036040; + } + } + IFC42.IfcReinforcingMesh = IfcReinforcingMesh; + class IfcReinforcingMeshType extends IfcReinforcingElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, MeshLength, MeshWidth, LongitudinalBarNominalDiameter, TransverseBarNominalDiameter, LongitudinalBarCrossSectionArea, TransverseBarCrossSectionArea, LongitudinalBarSpacing, TransverseBarSpacing, BendingShapeCode, BendingParameters) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.MeshLength = MeshLength; + this.MeshWidth = MeshWidth; + this.LongitudinalBarNominalDiameter = LongitudinalBarNominalDiameter; + this.TransverseBarNominalDiameter = TransverseBarNominalDiameter; + this.LongitudinalBarCrossSectionArea = LongitudinalBarCrossSectionArea; + this.TransverseBarCrossSectionArea = TransverseBarCrossSectionArea; + this.LongitudinalBarSpacing = LongitudinalBarSpacing; + this.TransverseBarSpacing = TransverseBarSpacing; + this.BendingShapeCode = BendingShapeCode; + this.BendingParameters = BendingParameters; + this.type = 2310774935; + } + } + IFC42.IfcReinforcingMeshType = IfcReinforcingMeshType; + class IfcRelAggregates extends IfcRelDecomposes { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingObject = RelatingObject; + this.RelatedObjects = RelatedObjects; + this.type = 160246688; + } + } + IFC42.IfcRelAggregates = IfcRelAggregates; + class IfcRoofType extends IfcBuildingElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2781568857; + } + } + IFC42.IfcRoofType = IfcRoofType; + class IfcSanitaryTerminalType extends IfcFlowTerminalType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1768891740; + } + } + IFC42.IfcSanitaryTerminalType = IfcSanitaryTerminalType; + class IfcSeamCurve extends IfcSurfaceCurve { + constructor(expressID, Curve3D, AssociatedGeometry, MasterRepresentation) { + super(expressID, Curve3D, AssociatedGeometry, MasterRepresentation); + this.Curve3D = Curve3D; + this.AssociatedGeometry = AssociatedGeometry; + this.MasterRepresentation = MasterRepresentation; + this.type = 2157484638; + } + } + IFC42.IfcSeamCurve = IfcSeamCurve; + class IfcShadingDeviceType extends IfcBuildingElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 4074543187; + } + } + IFC42.IfcShadingDeviceType = IfcShadingDeviceType; + class IfcSite extends IfcSpatialStructureElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, RefLatitude, RefLongitude, RefElevation, LandTitleNumber, SiteAddress) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.LongName = LongName; + this.CompositionType = CompositionType; + this.RefLatitude = RefLatitude; + this.RefLongitude = RefLongitude; + this.RefElevation = RefElevation; + this.LandTitleNumber = LandTitleNumber; + this.SiteAddress = SiteAddress; + this.type = 4097777520; + } + } + IFC42.IfcSite = IfcSite; + class IfcSlabType extends IfcBuildingElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2533589738; + } + } + IFC42.IfcSlabType = IfcSlabType; + class IfcSolarDeviceType extends IfcEnergyConversionDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1072016465; + } + } + IFC42.IfcSolarDeviceType = IfcSolarDeviceType; + class IfcSpace extends IfcSpatialStructureElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, PredefinedType, ElevationWithFlooring) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.LongName = LongName; + this.CompositionType = CompositionType; + this.PredefinedType = PredefinedType; + this.ElevationWithFlooring = ElevationWithFlooring; + this.type = 3856911033; + } + } + IFC42.IfcSpace = IfcSpace; + class IfcSpaceHeaterType extends IfcFlowTerminalType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1305183839; + } + } + IFC42.IfcSpaceHeaterType = IfcSpaceHeaterType; + class IfcSpaceType extends IfcSpatialStructureElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, LongName) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.LongName = LongName; + this.type = 3812236995; + } + } + IFC42.IfcSpaceType = IfcSpaceType; + class IfcStackTerminalType extends IfcFlowTerminalType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3112655638; + } + } + IFC42.IfcStackTerminalType = IfcStackTerminalType; + class IfcStairFlightType extends IfcBuildingElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1039846685; + } + } + IFC42.IfcStairFlightType = IfcStairFlightType; + class IfcStairType extends IfcBuildingElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 338393293; + } + } + IFC42.IfcStairType = IfcStairType; + class IfcStructuralAction extends IfcStructuralActivity { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedLoad = AppliedLoad; + this.GlobalOrLocal = GlobalOrLocal; + this.DestabilizingLoad = DestabilizingLoad; + this.type = 682877961; + } + } + IFC42.IfcStructuralAction = IfcStructuralAction; + class IfcStructuralConnection extends IfcStructuralItem { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedCondition = AppliedCondition; + this.type = 1179482911; + } + } + IFC42.IfcStructuralConnection = IfcStructuralConnection; + class IfcStructuralCurveAction extends IfcStructuralAction { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedLoad = AppliedLoad; + this.GlobalOrLocal = GlobalOrLocal; + this.DestabilizingLoad = DestabilizingLoad; + this.ProjectedOrTrue = ProjectedOrTrue; + this.PredefinedType = PredefinedType; + this.type = 1004757350; + } + } + IFC42.IfcStructuralCurveAction = IfcStructuralCurveAction; + class IfcStructuralCurveConnection extends IfcStructuralConnection { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition, Axis) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedCondition = AppliedCondition; + this.Axis = Axis; + this.type = 4243806635; + } + } + IFC42.IfcStructuralCurveConnection = IfcStructuralCurveConnection; + class IfcStructuralCurveMember extends IfcStructuralMember { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Axis) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.PredefinedType = PredefinedType; + this.Axis = Axis; + this.type = 214636428; + } + } + IFC42.IfcStructuralCurveMember = IfcStructuralCurveMember; + class IfcStructuralCurveMemberVarying extends IfcStructuralCurveMember { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Axis) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Axis); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.PredefinedType = PredefinedType; + this.Axis = Axis; + this.type = 2445595289; + } + } + IFC42.IfcStructuralCurveMemberVarying = IfcStructuralCurveMemberVarying; + class IfcStructuralCurveReaction extends IfcStructuralReaction { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedLoad = AppliedLoad; + this.GlobalOrLocal = GlobalOrLocal; + this.PredefinedType = PredefinedType; + this.type = 2757150158; + } + } + IFC42.IfcStructuralCurveReaction = IfcStructuralCurveReaction; + class IfcStructuralLinearAction extends IfcStructuralCurveAction { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedLoad = AppliedLoad; + this.GlobalOrLocal = GlobalOrLocal; + this.DestabilizingLoad = DestabilizingLoad; + this.ProjectedOrTrue = ProjectedOrTrue; + this.PredefinedType = PredefinedType; + this.type = 1807405624; + } + } + IFC42.IfcStructuralLinearAction = IfcStructuralLinearAction; + class IfcStructuralLoadGroup extends IfcGroup { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, ActionType, ActionSource, Coefficient, Purpose) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.PredefinedType = PredefinedType; + this.ActionType = ActionType; + this.ActionSource = ActionSource; + this.Coefficient = Coefficient; + this.Purpose = Purpose; + this.type = 1252848954; + } + } + IFC42.IfcStructuralLoadGroup = IfcStructuralLoadGroup; + class IfcStructuralPointAction extends IfcStructuralAction { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedLoad = AppliedLoad; + this.GlobalOrLocal = GlobalOrLocal; + this.DestabilizingLoad = DestabilizingLoad; + this.type = 2082059205; + } + } + IFC42.IfcStructuralPointAction = IfcStructuralPointAction; + class IfcStructuralPointConnection extends IfcStructuralConnection { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition, ConditionCoordinateSystem) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedCondition = AppliedCondition; + this.ConditionCoordinateSystem = ConditionCoordinateSystem; + this.type = 734778138; + } + } + IFC42.IfcStructuralPointConnection = IfcStructuralPointConnection; + class IfcStructuralPointReaction extends IfcStructuralReaction { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedLoad = AppliedLoad; + this.GlobalOrLocal = GlobalOrLocal; + this.type = 1235345126; + } + } + IFC42.IfcStructuralPointReaction = IfcStructuralPointReaction; + class IfcStructuralResultGroup extends IfcGroup { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TheoryType, ResultForLoadGroup, IsLinear) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.TheoryType = TheoryType; + this.ResultForLoadGroup = ResultForLoadGroup; + this.IsLinear = IsLinear; + this.type = 2986769608; + } + } + IFC42.IfcStructuralResultGroup = IfcStructuralResultGroup; + class IfcStructuralSurfaceAction extends IfcStructuralAction { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedLoad = AppliedLoad; + this.GlobalOrLocal = GlobalOrLocal; + this.DestabilizingLoad = DestabilizingLoad; + this.ProjectedOrTrue = ProjectedOrTrue; + this.PredefinedType = PredefinedType; + this.type = 3657597509; + } + } + IFC42.IfcStructuralSurfaceAction = IfcStructuralSurfaceAction; + class IfcStructuralSurfaceConnection extends IfcStructuralConnection { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedCondition = AppliedCondition; + this.type = 1975003073; + } + } + IFC42.IfcStructuralSurfaceConnection = IfcStructuralSurfaceConnection; + class IfcSubContractResource extends IfcConstructionResource { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.Usage = Usage; + this.BaseCosts = BaseCosts; + this.BaseQuantity = BaseQuantity; + this.PredefinedType = PredefinedType; + this.type = 148013059; + } + } + IFC42.IfcSubContractResource = IfcSubContractResource; + class IfcSurfaceFeature extends IfcFeatureElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3101698114; + } + } + IFC42.IfcSurfaceFeature = IfcSurfaceFeature; + class IfcSwitchingDeviceType extends IfcFlowControllerType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2315554128; + } + } + IFC42.IfcSwitchingDeviceType = IfcSwitchingDeviceType; + class IfcSystem extends IfcGroup { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.type = 2254336722; + } + } + IFC42.IfcSystem = IfcSystem; + class IfcSystemFurnitureElement extends IfcFurnishingElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 413509423; + } + } + IFC42.IfcSystemFurnitureElement = IfcSystemFurnitureElement; + class IfcTankType extends IfcFlowStorageDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 5716631; + } + } + IFC42.IfcTankType = IfcTankType; + class IfcTendon extends IfcReinforcingElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, PredefinedType, NominalDiameter, CrossSectionArea, TensionForce, PreStress, FrictionCoefficient, AnchorageSlip, MinCurvatureRadius) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.SteelGrade = SteelGrade; + this.PredefinedType = PredefinedType; + this.NominalDiameter = NominalDiameter; + this.CrossSectionArea = CrossSectionArea; + this.TensionForce = TensionForce; + this.PreStress = PreStress; + this.FrictionCoefficient = FrictionCoefficient; + this.AnchorageSlip = AnchorageSlip; + this.MinCurvatureRadius = MinCurvatureRadius; + this.type = 3824725483; + } + } + IFC42.IfcTendon = IfcTendon; + class IfcTendonAnchor extends IfcReinforcingElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.SteelGrade = SteelGrade; + this.PredefinedType = PredefinedType; + this.type = 2347447852; + } + } + IFC42.IfcTendonAnchor = IfcTendonAnchor; + class IfcTendonAnchorType extends IfcReinforcingElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3081323446; + } + } + IFC42.IfcTendonAnchorType = IfcTendonAnchorType; + class IfcTendonType extends IfcReinforcingElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, NominalDiameter, CrossSectionArea, SheathDiameter) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.NominalDiameter = NominalDiameter; + this.CrossSectionArea = CrossSectionArea; + this.SheathDiameter = SheathDiameter; + this.type = 2415094496; + } + } + IFC42.IfcTendonType = IfcTendonType; + class IfcTransformerType extends IfcEnergyConversionDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1692211062; + } + } + IFC42.IfcTransformerType = IfcTransformerType; + class IfcTransportElement extends IfcElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1620046519; + } + } + IFC42.IfcTransportElement = IfcTransportElement; + class IfcTrimmedCurve extends IfcBoundedCurve { + constructor(expressID, BasisCurve, Trim1, Trim2, SenseAgreement, MasterRepresentation) { + super(expressID); + this.BasisCurve = BasisCurve; + this.Trim1 = Trim1; + this.Trim2 = Trim2; + this.SenseAgreement = SenseAgreement; + this.MasterRepresentation = MasterRepresentation; + this.type = 3593883385; + } + } + IFC42.IfcTrimmedCurve = IfcTrimmedCurve; + class IfcTubeBundleType extends IfcEnergyConversionDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1600972822; + } + } + IFC42.IfcTubeBundleType = IfcTubeBundleType; + class IfcUnitaryEquipmentType extends IfcEnergyConversionDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1911125066; + } + } + IFC42.IfcUnitaryEquipmentType = IfcUnitaryEquipmentType; + class IfcValveType extends IfcFlowControllerType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 728799441; + } + } + IFC42.IfcValveType = IfcValveType; + class IfcVibrationIsolator extends IfcElementComponent { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 2391383451; + } + } + IFC42.IfcVibrationIsolator = IfcVibrationIsolator; + class IfcVibrationIsolatorType extends IfcElementComponentType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3313531582; + } + } + IFC42.IfcVibrationIsolatorType = IfcVibrationIsolatorType; + class IfcVirtualElement extends IfcElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 2769231204; + } + } + IFC42.IfcVirtualElement = IfcVirtualElement; + class IfcVoidingFeature extends IfcFeatureElementSubtraction { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 926996030; + } + } + IFC42.IfcVoidingFeature = IfcVoidingFeature; + class IfcWallType extends IfcBuildingElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1898987631; + } + } + IFC42.IfcWallType = IfcWallType; + class IfcWasteTerminalType extends IfcFlowTerminalType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1133259667; + } + } + IFC42.IfcWasteTerminalType = IfcWasteTerminalType; + class IfcWindowType extends IfcBuildingElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, PartitioningType, ParameterTakesPrecedence, UserDefinedPartitioningType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.PartitioningType = PartitioningType; + this.ParameterTakesPrecedence = ParameterTakesPrecedence; + this.UserDefinedPartitioningType = UserDefinedPartitioningType; + this.type = 4009809668; + } + } + IFC42.IfcWindowType = IfcWindowType; + class IfcWorkCalendar extends IfcControl { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, WorkingTimes, ExceptionTimes, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.WorkingTimes = WorkingTimes; + this.ExceptionTimes = ExceptionTimes; + this.PredefinedType = PredefinedType; + this.type = 4088093105; + } + } + IFC42.IfcWorkCalendar = IfcWorkCalendar; + class IfcWorkControl extends IfcControl { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.CreationDate = CreationDate; + this.Creators = Creators; + this.Purpose = Purpose; + this.Duration = Duration; + this.TotalFloat = TotalFloat; + this.StartTime = StartTime; + this.FinishTime = FinishTime; + this.type = 1028945134; + } + } + IFC42.IfcWorkControl = IfcWorkControl; + class IfcWorkPlan extends IfcWorkControl { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.CreationDate = CreationDate; + this.Creators = Creators; + this.Purpose = Purpose; + this.Duration = Duration; + this.TotalFloat = TotalFloat; + this.StartTime = StartTime; + this.FinishTime = FinishTime; + this.PredefinedType = PredefinedType; + this.type = 4218914973; + } + } + IFC42.IfcWorkPlan = IfcWorkPlan; + class IfcWorkSchedule extends IfcWorkControl { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.CreationDate = CreationDate; + this.Creators = Creators; + this.Purpose = Purpose; + this.Duration = Duration; + this.TotalFloat = TotalFloat; + this.StartTime = StartTime; + this.FinishTime = FinishTime; + this.PredefinedType = PredefinedType; + this.type = 3342526732; + } + } + IFC42.IfcWorkSchedule = IfcWorkSchedule; + class IfcZone extends IfcSystem { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.LongName = LongName; + this.type = 1033361043; + } + } + IFC42.IfcZone = IfcZone; + class IfcActionRequest extends IfcControl { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, LongDescription) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.PredefinedType = PredefinedType; + this.Status = Status; + this.LongDescription = LongDescription; + this.type = 3821786052; + } + } + IFC42.IfcActionRequest = IfcActionRequest; + class IfcAirTerminalBoxType extends IfcFlowControllerType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1411407467; + } + } + IFC42.IfcAirTerminalBoxType = IfcAirTerminalBoxType; + class IfcAirTerminalType extends IfcFlowTerminalType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3352864051; + } + } + IFC42.IfcAirTerminalType = IfcAirTerminalType; + class IfcAirToAirHeatRecoveryType extends IfcEnergyConversionDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1871374353; + } + } + IFC42.IfcAirToAirHeatRecoveryType = IfcAirToAirHeatRecoveryType; + class IfcAsset extends IfcGroup { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, OriginalValue, CurrentValue, TotalReplacementCost, Owner, User, ResponsiblePerson, IncorporationDate, DepreciatedValue) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.OriginalValue = OriginalValue; + this.CurrentValue = CurrentValue; + this.TotalReplacementCost = TotalReplacementCost; + this.Owner = Owner; + this.User = User; + this.ResponsiblePerson = ResponsiblePerson; + this.IncorporationDate = IncorporationDate; + this.DepreciatedValue = DepreciatedValue; + this.type = 3460190687; + } + } + IFC42.IfcAsset = IfcAsset; + class IfcAudioVisualApplianceType extends IfcFlowTerminalType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1532957894; + } + } + IFC42.IfcAudioVisualApplianceType = IfcAudioVisualApplianceType; + class IfcBSplineCurve extends IfcBoundedCurve { + constructor(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect) { + super(expressID); + this.Degree = Degree; + this.ControlPointsList = ControlPointsList; + this.CurveForm = CurveForm; + this.ClosedCurve = ClosedCurve; + this.SelfIntersect = SelfIntersect; + this.type = 1967976161; + } + } + IFC42.IfcBSplineCurve = IfcBSplineCurve; + class IfcBSplineCurveWithKnots extends IfcBSplineCurve { + constructor(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect, KnotMultiplicities, Knots, KnotSpec) { + super(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect); + this.Degree = Degree; + this.ControlPointsList = ControlPointsList; + this.CurveForm = CurveForm; + this.ClosedCurve = ClosedCurve; + this.SelfIntersect = SelfIntersect; + this.KnotMultiplicities = KnotMultiplicities; + this.Knots = Knots; + this.KnotSpec = KnotSpec; + this.type = 2461110595; + } + } + IFC42.IfcBSplineCurveWithKnots = IfcBSplineCurveWithKnots; + class IfcBeamType extends IfcBuildingElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 819618141; + } + } + IFC42.IfcBeamType = IfcBeamType; + class IfcBoilerType extends IfcEnergyConversionDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 231477066; + } + } + IFC42.IfcBoilerType = IfcBoilerType; + class IfcBoundaryCurve extends IfcCompositeCurveOnSurface { + constructor(expressID, Segments, SelfIntersect) { + super(expressID, Segments, SelfIntersect); + this.Segments = Segments; + this.SelfIntersect = SelfIntersect; + this.type = 1136057603; + } + } + IFC42.IfcBoundaryCurve = IfcBoundaryCurve; + class IfcBuildingElement extends IfcElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 3299480353; + } + } + IFC42.IfcBuildingElement = IfcBuildingElement; + class IfcBuildingElementPart extends IfcElementComponent { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 2979338954; + } + } + IFC42.IfcBuildingElementPart = IfcBuildingElementPart; + class IfcBuildingElementPartType extends IfcElementComponentType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 39481116; + } + } + IFC42.IfcBuildingElementPartType = IfcBuildingElementPartType; + class IfcBuildingElementProxy extends IfcBuildingElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1095909175; + } + } + IFC42.IfcBuildingElementProxy = IfcBuildingElementProxy; + class IfcBuildingElementProxyType extends IfcBuildingElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1909888760; + } + } + IFC42.IfcBuildingElementProxyType = IfcBuildingElementProxyType; + class IfcBuildingSystem extends IfcSystem { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, LongName) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.PredefinedType = PredefinedType; + this.LongName = LongName; + this.type = 1177604601; + } + } + IFC42.IfcBuildingSystem = IfcBuildingSystem; + class IfcBurnerType extends IfcEnergyConversionDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2188180465; + } + } + IFC42.IfcBurnerType = IfcBurnerType; + class IfcCableCarrierFittingType extends IfcFlowFittingType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 395041908; + } + } + IFC42.IfcCableCarrierFittingType = IfcCableCarrierFittingType; + class IfcCableCarrierSegmentType extends IfcFlowSegmentType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3293546465; + } + } + IFC42.IfcCableCarrierSegmentType = IfcCableCarrierSegmentType; + class IfcCableFittingType extends IfcFlowFittingType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2674252688; + } + } + IFC42.IfcCableFittingType = IfcCableFittingType; + class IfcCableSegmentType extends IfcFlowSegmentType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1285652485; + } + } + IFC42.IfcCableSegmentType = IfcCableSegmentType; + class IfcChillerType extends IfcEnergyConversionDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2951183804; + } + } + IFC42.IfcChillerType = IfcChillerType; + class IfcChimney extends IfcBuildingElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3296154744; + } + } + IFC42.IfcChimney = IfcChimney; + class IfcCircle extends IfcConic { + constructor(expressID, Position, Radius) { + super(expressID, Position); + this.Position = Position; + this.Radius = Radius; + this.type = 2611217952; + } + } + IFC42.IfcCircle = IfcCircle; + class IfcCivilElement extends IfcElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 1677625105; + } + } + IFC42.IfcCivilElement = IfcCivilElement; + class IfcCoilType extends IfcEnergyConversionDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2301859152; + } + } + IFC42.IfcCoilType = IfcCoilType; + class IfcColumn extends IfcBuildingElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 843113511; + } + } + IFC42.IfcColumn = IfcColumn; + class IfcColumnStandardCase extends IfcColumn { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 905975707; + } + } + IFC42.IfcColumnStandardCase = IfcColumnStandardCase; + class IfcCommunicationsApplianceType extends IfcFlowTerminalType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 400855858; + } + } + IFC42.IfcCommunicationsApplianceType = IfcCommunicationsApplianceType; + class IfcCompressorType extends IfcFlowMovingDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3850581409; + } + } + IFC42.IfcCompressorType = IfcCompressorType; + class IfcCondenserType extends IfcEnergyConversionDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2816379211; + } + } + IFC42.IfcCondenserType = IfcCondenserType; + class IfcConstructionEquipmentResource extends IfcConstructionResource { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.Usage = Usage; + this.BaseCosts = BaseCosts; + this.BaseQuantity = BaseQuantity; + this.PredefinedType = PredefinedType; + this.type = 3898045240; + } + } + IFC42.IfcConstructionEquipmentResource = IfcConstructionEquipmentResource; + class IfcConstructionMaterialResource extends IfcConstructionResource { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.Usage = Usage; + this.BaseCosts = BaseCosts; + this.BaseQuantity = BaseQuantity; + this.PredefinedType = PredefinedType; + this.type = 1060000209; + } + } + IFC42.IfcConstructionMaterialResource = IfcConstructionMaterialResource; + class IfcConstructionProductResource extends IfcConstructionResource { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.Usage = Usage; + this.BaseCosts = BaseCosts; + this.BaseQuantity = BaseQuantity; + this.PredefinedType = PredefinedType; + this.type = 488727124; + } + } + IFC42.IfcConstructionProductResource = IfcConstructionProductResource; + class IfcCooledBeamType extends IfcEnergyConversionDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 335055490; + } + } + IFC42.IfcCooledBeamType = IfcCooledBeamType; + class IfcCoolingTowerType extends IfcEnergyConversionDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2954562838; + } + } + IFC42.IfcCoolingTowerType = IfcCoolingTowerType; + class IfcCovering extends IfcBuildingElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1973544240; + } + } + IFC42.IfcCovering = IfcCovering; + class IfcCurtainWall extends IfcBuildingElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3495092785; + } + } + IFC42.IfcCurtainWall = IfcCurtainWall; + class IfcDamperType extends IfcFlowControllerType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3961806047; + } + } + IFC42.IfcDamperType = IfcDamperType; + class IfcDiscreteAccessory extends IfcElementComponent { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1335981549; + } + } + IFC42.IfcDiscreteAccessory = IfcDiscreteAccessory; + class IfcDiscreteAccessoryType extends IfcElementComponentType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2635815018; + } + } + IFC42.IfcDiscreteAccessoryType = IfcDiscreteAccessoryType; + class IfcDistributionChamberElementType extends IfcDistributionFlowElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1599208980; + } + } + IFC42.IfcDistributionChamberElementType = IfcDistributionChamberElementType; + class IfcDistributionControlElementType extends IfcDistributionElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 2063403501; + } + } + IFC42.IfcDistributionControlElementType = IfcDistributionControlElementType; + class IfcDistributionElement extends IfcElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 1945004755; + } + } + IFC42.IfcDistributionElement = IfcDistributionElement; + class IfcDistributionFlowElement extends IfcDistributionElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 3040386961; + } + } + IFC42.IfcDistributionFlowElement = IfcDistributionFlowElement; + class IfcDistributionPort extends IfcPort { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, FlowDirection, PredefinedType, SystemType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.FlowDirection = FlowDirection; + this.PredefinedType = PredefinedType; + this.SystemType = SystemType; + this.type = 3041715199; + } + } + IFC42.IfcDistributionPort = IfcDistributionPort; + class IfcDistributionSystem extends IfcSystem { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.LongName = LongName; + this.PredefinedType = PredefinedType; + this.type = 3205830791; + } + } + IFC42.IfcDistributionSystem = IfcDistributionSystem; + class IfcDoor extends IfcBuildingElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, OperationType, UserDefinedOperationType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.OverallHeight = OverallHeight; + this.OverallWidth = OverallWidth; + this.PredefinedType = PredefinedType; + this.OperationType = OperationType; + this.UserDefinedOperationType = UserDefinedOperationType; + this.type = 395920057; + } + } + IFC42.IfcDoor = IfcDoor; + class IfcDoorStandardCase extends IfcDoor { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, OperationType, UserDefinedOperationType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, OperationType, UserDefinedOperationType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.OverallHeight = OverallHeight; + this.OverallWidth = OverallWidth; + this.PredefinedType = PredefinedType; + this.OperationType = OperationType; + this.UserDefinedOperationType = UserDefinedOperationType; + this.type = 3242481149; + } + } + IFC42.IfcDoorStandardCase = IfcDoorStandardCase; + class IfcDuctFittingType extends IfcFlowFittingType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 869906466; + } + } + IFC42.IfcDuctFittingType = IfcDuctFittingType; + class IfcDuctSegmentType extends IfcFlowSegmentType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3760055223; + } + } + IFC42.IfcDuctSegmentType = IfcDuctSegmentType; + class IfcDuctSilencerType extends IfcFlowTreatmentDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2030761528; + } + } + IFC42.IfcDuctSilencerType = IfcDuctSilencerType; + class IfcElectricApplianceType extends IfcFlowTerminalType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 663422040; + } + } + IFC42.IfcElectricApplianceType = IfcElectricApplianceType; + class IfcElectricDistributionBoardType extends IfcFlowControllerType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2417008758; + } + } + IFC42.IfcElectricDistributionBoardType = IfcElectricDistributionBoardType; + class IfcElectricFlowStorageDeviceType extends IfcFlowStorageDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3277789161; + } + } + IFC42.IfcElectricFlowStorageDeviceType = IfcElectricFlowStorageDeviceType; + class IfcElectricGeneratorType extends IfcEnergyConversionDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1534661035; + } + } + IFC42.IfcElectricGeneratorType = IfcElectricGeneratorType; + class IfcElectricMotorType extends IfcEnergyConversionDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1217240411; + } + } + IFC42.IfcElectricMotorType = IfcElectricMotorType; + class IfcElectricTimeControlType extends IfcFlowControllerType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 712377611; + } + } + IFC42.IfcElectricTimeControlType = IfcElectricTimeControlType; + class IfcEnergyConversionDevice extends IfcDistributionFlowElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 1658829314; + } + } + IFC42.IfcEnergyConversionDevice = IfcEnergyConversionDevice; + class IfcEngine extends IfcEnergyConversionDevice { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 2814081492; + } + } + IFC42.IfcEngine = IfcEngine; + class IfcEvaporativeCooler extends IfcEnergyConversionDevice { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3747195512; + } + } + IFC42.IfcEvaporativeCooler = IfcEvaporativeCooler; + class IfcEvaporator extends IfcEnergyConversionDevice { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 484807127; + } + } + IFC42.IfcEvaporator = IfcEvaporator; + class IfcExternalSpatialElement extends IfcExternalSpatialStructureElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.LongName = LongName; + this.PredefinedType = PredefinedType; + this.type = 1209101575; + } + } + IFC42.IfcExternalSpatialElement = IfcExternalSpatialElement; + class IfcFanType extends IfcFlowMovingDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 346874300; + } + } + IFC42.IfcFanType = IfcFanType; + class IfcFilterType extends IfcFlowTreatmentDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1810631287; + } + } + IFC42.IfcFilterType = IfcFilterType; + class IfcFireSuppressionTerminalType extends IfcFlowTerminalType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 4222183408; + } + } + IFC42.IfcFireSuppressionTerminalType = IfcFireSuppressionTerminalType; + class IfcFlowController extends IfcDistributionFlowElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 2058353004; + } + } + IFC42.IfcFlowController = IfcFlowController; + class IfcFlowFitting extends IfcDistributionFlowElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 4278956645; + } + } + IFC42.IfcFlowFitting = IfcFlowFitting; + class IfcFlowInstrumentType extends IfcDistributionControlElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 4037862832; + } + } + IFC42.IfcFlowInstrumentType = IfcFlowInstrumentType; + class IfcFlowMeter extends IfcFlowController { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 2188021234; + } + } + IFC42.IfcFlowMeter = IfcFlowMeter; + class IfcFlowMovingDevice extends IfcDistributionFlowElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 3132237377; + } + } + IFC42.IfcFlowMovingDevice = IfcFlowMovingDevice; + class IfcFlowSegment extends IfcDistributionFlowElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 987401354; + } + } + IFC42.IfcFlowSegment = IfcFlowSegment; + class IfcFlowStorageDevice extends IfcDistributionFlowElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 707683696; + } + } + IFC42.IfcFlowStorageDevice = IfcFlowStorageDevice; + class IfcFlowTerminal extends IfcDistributionFlowElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 2223149337; + } + } + IFC42.IfcFlowTerminal = IfcFlowTerminal; + class IfcFlowTreatmentDevice extends IfcDistributionFlowElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 3508470533; + } + } + IFC42.IfcFlowTreatmentDevice = IfcFlowTreatmentDevice; + class IfcFooting extends IfcBuildingElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 900683007; + } + } + IFC42.IfcFooting = IfcFooting; + class IfcHeatExchanger extends IfcEnergyConversionDevice { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3319311131; + } + } + IFC42.IfcHeatExchanger = IfcHeatExchanger; + class IfcHumidifier extends IfcEnergyConversionDevice { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 2068733104; + } + } + IFC42.IfcHumidifier = IfcHumidifier; + class IfcInterceptor extends IfcFlowTreatmentDevice { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 4175244083; + } + } + IFC42.IfcInterceptor = IfcInterceptor; + class IfcJunctionBox extends IfcFlowFitting { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 2176052936; + } + } + IFC42.IfcJunctionBox = IfcJunctionBox; + class IfcLamp extends IfcFlowTerminal { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 76236018; + } + } + IFC42.IfcLamp = IfcLamp; + class IfcLightFixture extends IfcFlowTerminal { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 629592764; + } + } + IFC42.IfcLightFixture = IfcLightFixture; + class IfcMedicalDevice extends IfcFlowTerminal { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1437502449; + } + } + IFC42.IfcMedicalDevice = IfcMedicalDevice; + class IfcMember extends IfcBuildingElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1073191201; + } + } + IFC42.IfcMember = IfcMember; + class IfcMemberStandardCase extends IfcMember { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1911478936; + } + } + IFC42.IfcMemberStandardCase = IfcMemberStandardCase; + class IfcMotorConnection extends IfcEnergyConversionDevice { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 2474470126; + } + } + IFC42.IfcMotorConnection = IfcMotorConnection; + class IfcOuterBoundaryCurve extends IfcBoundaryCurve { + constructor(expressID, Segments, SelfIntersect) { + super(expressID, Segments, SelfIntersect); + this.Segments = Segments; + this.SelfIntersect = SelfIntersect; + this.type = 144952367; + } + } + IFC42.IfcOuterBoundaryCurve = IfcOuterBoundaryCurve; + class IfcOutlet extends IfcFlowTerminal { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3694346114; + } + } + IFC42.IfcOutlet = IfcOutlet; + class IfcPile extends IfcBuildingElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType, ConstructionType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.ConstructionType = ConstructionType; + this.type = 1687234759; + } + } + IFC42.IfcPile = IfcPile; + class IfcPipeFitting extends IfcFlowFitting { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 310824031; + } + } + IFC42.IfcPipeFitting = IfcPipeFitting; + class IfcPipeSegment extends IfcFlowSegment { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3612865200; + } + } + IFC42.IfcPipeSegment = IfcPipeSegment; + class IfcPlate extends IfcBuildingElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3171933400; + } + } + IFC42.IfcPlate = IfcPlate; + class IfcPlateStandardCase extends IfcPlate { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1156407060; + } + } + IFC42.IfcPlateStandardCase = IfcPlateStandardCase; + class IfcProtectiveDevice extends IfcFlowController { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 738039164; + } + } + IFC42.IfcProtectiveDevice = IfcProtectiveDevice; + class IfcProtectiveDeviceTrippingUnitType extends IfcDistributionControlElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 655969474; + } + } + IFC42.IfcProtectiveDeviceTrippingUnitType = IfcProtectiveDeviceTrippingUnitType; + class IfcPump extends IfcFlowMovingDevice { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 90941305; + } + } + IFC42.IfcPump = IfcPump; + class IfcRailing extends IfcBuildingElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 2262370178; + } + } + IFC42.IfcRailing = IfcRailing; + class IfcRamp extends IfcBuildingElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3024970846; + } + } + IFC42.IfcRamp = IfcRamp; + class IfcRampFlight extends IfcBuildingElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3283111854; + } + } + IFC42.IfcRampFlight = IfcRampFlight; + class IfcRationalBSplineCurveWithKnots extends IfcBSplineCurveWithKnots { + constructor(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect, KnotMultiplicities, Knots, KnotSpec, WeightsData) { + super(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect, KnotMultiplicities, Knots, KnotSpec); + this.Degree = Degree; + this.ControlPointsList = ControlPointsList; + this.CurveForm = CurveForm; + this.ClosedCurve = ClosedCurve; + this.SelfIntersect = SelfIntersect; + this.KnotMultiplicities = KnotMultiplicities; + this.Knots = Knots; + this.KnotSpec = KnotSpec; + this.WeightsData = WeightsData; + this.type = 1232101972; + } + } + IFC42.IfcRationalBSplineCurveWithKnots = IfcRationalBSplineCurveWithKnots; + class IfcReinforcingBar extends IfcReinforcingElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, NominalDiameter, CrossSectionArea, BarLength, PredefinedType, BarSurface) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.SteelGrade = SteelGrade; + this.NominalDiameter = NominalDiameter; + this.CrossSectionArea = CrossSectionArea; + this.BarLength = BarLength; + this.PredefinedType = PredefinedType; + this.BarSurface = BarSurface; + this.type = 979691226; + } + } + IFC42.IfcReinforcingBar = IfcReinforcingBar; + class IfcReinforcingBarType extends IfcReinforcingElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, NominalDiameter, CrossSectionArea, BarLength, BarSurface, BendingShapeCode, BendingParameters) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.NominalDiameter = NominalDiameter; + this.CrossSectionArea = CrossSectionArea; + this.BarLength = BarLength; + this.BarSurface = BarSurface; + this.BendingShapeCode = BendingShapeCode; + this.BendingParameters = BendingParameters; + this.type = 2572171363; + } + } + IFC42.IfcReinforcingBarType = IfcReinforcingBarType; + class IfcRoof extends IfcBuildingElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 2016517767; + } + } + IFC42.IfcRoof = IfcRoof; + class IfcSanitaryTerminal extends IfcFlowTerminal { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3053780830; + } + } + IFC42.IfcSanitaryTerminal = IfcSanitaryTerminal; + class IfcSensorType extends IfcDistributionControlElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1783015770; + } + } + IFC42.IfcSensorType = IfcSensorType; + class IfcShadingDevice extends IfcBuildingElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1329646415; + } + } + IFC42.IfcShadingDevice = IfcShadingDevice; + class IfcSlab extends IfcBuildingElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1529196076; + } + } + IFC42.IfcSlab = IfcSlab; + class IfcSlabElementedCase extends IfcSlab { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3127900445; + } + } + IFC42.IfcSlabElementedCase = IfcSlabElementedCase; + class IfcSlabStandardCase extends IfcSlab { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3027962421; + } + } + IFC42.IfcSlabStandardCase = IfcSlabStandardCase; + class IfcSolarDevice extends IfcEnergyConversionDevice { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3420628829; + } + } + IFC42.IfcSolarDevice = IfcSolarDevice; + class IfcSpaceHeater extends IfcFlowTerminal { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1999602285; + } + } + IFC42.IfcSpaceHeater = IfcSpaceHeater; + class IfcStackTerminal extends IfcFlowTerminal { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1404847402; + } + } + IFC42.IfcStackTerminal = IfcStackTerminal; + class IfcStair extends IfcBuildingElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 331165859; + } + } + IFC42.IfcStair = IfcStair; + class IfcStairFlight extends IfcBuildingElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, NumberOfRisers, NumberOfTreads, RiserHeight, TreadLength, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.NumberOfRisers = NumberOfRisers; + this.NumberOfTreads = NumberOfTreads; + this.RiserHeight = RiserHeight; + this.TreadLength = TreadLength; + this.PredefinedType = PredefinedType; + this.type = 4252922144; + } + } + IFC42.IfcStairFlight = IfcStairFlight; + class IfcStructuralAnalysisModel extends IfcSystem { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, OrientationOf2DPlane, LoadedBy, HasResults, SharedPlacement) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.PredefinedType = PredefinedType; + this.OrientationOf2DPlane = OrientationOf2DPlane; + this.LoadedBy = LoadedBy; + this.HasResults = HasResults; + this.SharedPlacement = SharedPlacement; + this.type = 2515109513; + } + } + IFC42.IfcStructuralAnalysisModel = IfcStructuralAnalysisModel; + class IfcStructuralLoadCase extends IfcStructuralLoadGroup { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, ActionType, ActionSource, Coefficient, Purpose, SelfWeightCoefficients) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, ActionType, ActionSource, Coefficient, Purpose); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.PredefinedType = PredefinedType; + this.ActionType = ActionType; + this.ActionSource = ActionSource; + this.Coefficient = Coefficient; + this.Purpose = Purpose; + this.SelfWeightCoefficients = SelfWeightCoefficients; + this.type = 385403989; + } + } + IFC42.IfcStructuralLoadCase = IfcStructuralLoadCase; + class IfcStructuralPlanarAction extends IfcStructuralSurfaceAction { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedLoad = AppliedLoad; + this.GlobalOrLocal = GlobalOrLocal; + this.DestabilizingLoad = DestabilizingLoad; + this.ProjectedOrTrue = ProjectedOrTrue; + this.PredefinedType = PredefinedType; + this.type = 1621171031; + } + } + IFC42.IfcStructuralPlanarAction = IfcStructuralPlanarAction; + class IfcSwitchingDevice extends IfcFlowController { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1162798199; + } + } + IFC42.IfcSwitchingDevice = IfcSwitchingDevice; + class IfcTank extends IfcFlowStorageDevice { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 812556717; + } + } + IFC42.IfcTank = IfcTank; + class IfcTransformer extends IfcEnergyConversionDevice { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3825984169; + } + } + IFC42.IfcTransformer = IfcTransformer; + class IfcTubeBundle extends IfcEnergyConversionDevice { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3026737570; + } + } + IFC42.IfcTubeBundle = IfcTubeBundle; + class IfcUnitaryControlElementType extends IfcDistributionControlElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3179687236; + } + } + IFC42.IfcUnitaryControlElementType = IfcUnitaryControlElementType; + class IfcUnitaryEquipment extends IfcEnergyConversionDevice { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 4292641817; + } + } + IFC42.IfcUnitaryEquipment = IfcUnitaryEquipment; + class IfcValve extends IfcFlowController { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 4207607924; + } + } + IFC42.IfcValve = IfcValve; + class IfcWall extends IfcBuildingElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 2391406946; + } + } + IFC42.IfcWall = IfcWall; + class IfcWallElementedCase extends IfcWall { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 4156078855; + } + } + IFC42.IfcWallElementedCase = IfcWallElementedCase; + class IfcWallStandardCase extends IfcWall { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3512223829; + } + } + IFC42.IfcWallStandardCase = IfcWallStandardCase; + class IfcWasteTerminal extends IfcFlowTerminal { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 4237592921; + } + } + IFC42.IfcWasteTerminal = IfcWasteTerminal; + class IfcWindow extends IfcBuildingElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, PartitioningType, UserDefinedPartitioningType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.OverallHeight = OverallHeight; + this.OverallWidth = OverallWidth; + this.PredefinedType = PredefinedType; + this.PartitioningType = PartitioningType; + this.UserDefinedPartitioningType = UserDefinedPartitioningType; + this.type = 3304561284; + } + } + IFC42.IfcWindow = IfcWindow; + class IfcWindowStandardCase extends IfcWindow { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, PartitioningType, UserDefinedPartitioningType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, PartitioningType, UserDefinedPartitioningType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.OverallHeight = OverallHeight; + this.OverallWidth = OverallWidth; + this.PredefinedType = PredefinedType; + this.PartitioningType = PartitioningType; + this.UserDefinedPartitioningType = UserDefinedPartitioningType; + this.type = 486154966; + } + } + IFC42.IfcWindowStandardCase = IfcWindowStandardCase; + class IfcActuatorType extends IfcDistributionControlElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2874132201; + } + } + IFC42.IfcActuatorType = IfcActuatorType; + class IfcAirTerminal extends IfcFlowTerminal { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1634111441; + } + } + IFC42.IfcAirTerminal = IfcAirTerminal; + class IfcAirTerminalBox extends IfcFlowController { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 177149247; + } + } + IFC42.IfcAirTerminalBox = IfcAirTerminalBox; + class IfcAirToAirHeatRecovery extends IfcEnergyConversionDevice { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 2056796094; + } + } + IFC42.IfcAirToAirHeatRecovery = IfcAirToAirHeatRecovery; + class IfcAlarmType extends IfcDistributionControlElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3001207471; + } + } + IFC42.IfcAlarmType = IfcAlarmType; + class IfcAudioVisualAppliance extends IfcFlowTerminal { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 277319702; + } + } + IFC42.IfcAudioVisualAppliance = IfcAudioVisualAppliance; + class IfcBeam extends IfcBuildingElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 753842376; + } + } + IFC42.IfcBeam = IfcBeam; + class IfcBeamStandardCase extends IfcBeam { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 2906023776; + } + } + IFC42.IfcBeamStandardCase = IfcBeamStandardCase; + class IfcBoiler extends IfcEnergyConversionDevice { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 32344328; + } + } + IFC42.IfcBoiler = IfcBoiler; + class IfcBurner extends IfcEnergyConversionDevice { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 2938176219; + } + } + IFC42.IfcBurner = IfcBurner; + class IfcCableCarrierFitting extends IfcFlowFitting { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 635142910; + } + } + IFC42.IfcCableCarrierFitting = IfcCableCarrierFitting; + class IfcCableCarrierSegment extends IfcFlowSegment { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3758799889; + } + } + IFC42.IfcCableCarrierSegment = IfcCableCarrierSegment; + class IfcCableFitting extends IfcFlowFitting { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1051757585; + } + } + IFC42.IfcCableFitting = IfcCableFitting; + class IfcCableSegment extends IfcFlowSegment { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 4217484030; + } + } + IFC42.IfcCableSegment = IfcCableSegment; + class IfcChiller extends IfcEnergyConversionDevice { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3902619387; + } + } + IFC42.IfcChiller = IfcChiller; + class IfcCoil extends IfcEnergyConversionDevice { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 639361253; + } + } + IFC42.IfcCoil = IfcCoil; + class IfcCommunicationsAppliance extends IfcFlowTerminal { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3221913625; + } + } + IFC42.IfcCommunicationsAppliance = IfcCommunicationsAppliance; + class IfcCompressor extends IfcFlowMovingDevice { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3571504051; + } + } + IFC42.IfcCompressor = IfcCompressor; + class IfcCondenser extends IfcEnergyConversionDevice { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 2272882330; + } + } + IFC42.IfcCondenser = IfcCondenser; + class IfcControllerType extends IfcDistributionControlElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 578613899; + } + } + IFC42.IfcControllerType = IfcControllerType; + class IfcCooledBeam extends IfcEnergyConversionDevice { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 4136498852; + } + } + IFC42.IfcCooledBeam = IfcCooledBeam; + class IfcCoolingTower extends IfcEnergyConversionDevice { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3640358203; + } + } + IFC42.IfcCoolingTower = IfcCoolingTower; + class IfcDamper extends IfcFlowController { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 4074379575; + } + } + IFC42.IfcDamper = IfcDamper; + class IfcDistributionChamberElement extends IfcDistributionFlowElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1052013943; + } + } + IFC42.IfcDistributionChamberElement = IfcDistributionChamberElement; + class IfcDistributionCircuit extends IfcDistributionSystem { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, PredefinedType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.LongName = LongName; + this.PredefinedType = PredefinedType; + this.type = 562808652; + } + } + IFC42.IfcDistributionCircuit = IfcDistributionCircuit; + class IfcDistributionControlElement extends IfcDistributionElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 1062813311; + } + } + IFC42.IfcDistributionControlElement = IfcDistributionControlElement; + class IfcDuctFitting extends IfcFlowFitting { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 342316401; + } + } + IFC42.IfcDuctFitting = IfcDuctFitting; + class IfcDuctSegment extends IfcFlowSegment { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3518393246; + } + } + IFC42.IfcDuctSegment = IfcDuctSegment; + class IfcDuctSilencer extends IfcFlowTreatmentDevice { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1360408905; + } + } + IFC42.IfcDuctSilencer = IfcDuctSilencer; + class IfcElectricAppliance extends IfcFlowTerminal { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1904799276; + } + } + IFC42.IfcElectricAppliance = IfcElectricAppliance; + class IfcElectricDistributionBoard extends IfcFlowController { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 862014818; + } + } + IFC42.IfcElectricDistributionBoard = IfcElectricDistributionBoard; + class IfcElectricFlowStorageDevice extends IfcFlowStorageDevice { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3310460725; + } + } + IFC42.IfcElectricFlowStorageDevice = IfcElectricFlowStorageDevice; + class IfcElectricGenerator extends IfcEnergyConversionDevice { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 264262732; + } + } + IFC42.IfcElectricGenerator = IfcElectricGenerator; + class IfcElectricMotor extends IfcEnergyConversionDevice { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 402227799; + } + } + IFC42.IfcElectricMotor = IfcElectricMotor; + class IfcElectricTimeControl extends IfcFlowController { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1003880860; + } + } + IFC42.IfcElectricTimeControl = IfcElectricTimeControl; + class IfcFan extends IfcFlowMovingDevice { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3415622556; + } + } + IFC42.IfcFan = IfcFan; + class IfcFilter extends IfcFlowTreatmentDevice { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 819412036; + } + } + IFC42.IfcFilter = IfcFilter; + class IfcFireSuppressionTerminal extends IfcFlowTerminal { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1426591983; + } + } + IFC42.IfcFireSuppressionTerminal = IfcFireSuppressionTerminal; + class IfcFlowInstrument extends IfcDistributionControlElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 182646315; + } + } + IFC42.IfcFlowInstrument = IfcFlowInstrument; + class IfcProtectiveDeviceTrippingUnit extends IfcDistributionControlElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 2295281155; + } + } + IFC42.IfcProtectiveDeviceTrippingUnit = IfcProtectiveDeviceTrippingUnit; + class IfcSensor extends IfcDistributionControlElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 4086658281; + } + } + IFC42.IfcSensor = IfcSensor; + class IfcUnitaryControlElement extends IfcDistributionControlElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 630975310; + } + } + IFC42.IfcUnitaryControlElement = IfcUnitaryControlElement; + class IfcActuator extends IfcDistributionControlElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 4288193352; + } + } + IFC42.IfcActuator = IfcActuator; + class IfcAlarm extends IfcDistributionControlElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3087945054; + } + } + IFC42.IfcAlarm = IfcAlarm; + class IfcController extends IfcDistributionControlElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 25142252; + } + } + IFC42.IfcController = IfcController; +})(IFC4 || (IFC4 = {})); +var IFC4X3; +(function(IFC4X32) { + class IfcAbsorbedDoseMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcAbsorbedDoseMeasure = IfcAbsorbedDoseMeasure; + class IfcAccelerationMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcAccelerationMeasure = IfcAccelerationMeasure; + class IfcAmountOfSubstanceMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcAmountOfSubstanceMeasure = IfcAmountOfSubstanceMeasure; + class IfcAngularVelocityMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcAngularVelocityMeasure = IfcAngularVelocityMeasure; + class IfcArcIndex { + constructor(value) { + this.value = value; + } + } + IFC4X32.IfcArcIndex = IfcArcIndex; + class IfcAreaDensityMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcAreaDensityMeasure = IfcAreaDensityMeasure; + class IfcAreaMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcAreaMeasure = IfcAreaMeasure; + class IfcBinary { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcBinary = IfcBinary; + class IfcBoolean { + constructor(v) { + this.type = 3; + this.value = v == "true" ? true : false; + } + } + IFC4X32.IfcBoolean = IfcBoolean; + class IfcBoxAlignment { + constructor(value) { + this.value = value; + this.type = 1; + } + } + IFC4X32.IfcBoxAlignment = IfcBoxAlignment; + class IfcCardinalPointReference { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcCardinalPointReference = IfcCardinalPointReference; + class IfcComplexNumber { + constructor(value) { + this.value = value; + } + } + IFC4X32.IfcComplexNumber = IfcComplexNumber; + class IfcCompoundPlaneAngleMeasure { + constructor(value) { + this.value = value; + } + } + IFC4X32.IfcCompoundPlaneAngleMeasure = IfcCompoundPlaneAngleMeasure; + class IfcContextDependentMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcContextDependentMeasure = IfcContextDependentMeasure; + class IfcCountMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcCountMeasure = IfcCountMeasure; + class IfcCurvatureMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcCurvatureMeasure = IfcCurvatureMeasure; + class IfcDate { + constructor(value) { + this.value = value; + this.type = 1; + } + } + IFC4X32.IfcDate = IfcDate; + class IfcDateTime { + constructor(value) { + this.value = value; + this.type = 1; + } + } + IFC4X32.IfcDateTime = IfcDateTime; + class IfcDayInMonthNumber { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcDayInMonthNumber = IfcDayInMonthNumber; + class IfcDayInWeekNumber { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcDayInWeekNumber = IfcDayInWeekNumber; + class IfcDescriptiveMeasure { + constructor(value) { + this.value = value; + this.type = 1; + } + } + IFC4X32.IfcDescriptiveMeasure = IfcDescriptiveMeasure; + class IfcDimensionCount { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcDimensionCount = IfcDimensionCount; + class IfcDoseEquivalentMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcDoseEquivalentMeasure = IfcDoseEquivalentMeasure; + class IfcDuration { + constructor(value) { + this.value = value; + this.type = 1; + } + } + IFC4X32.IfcDuration = IfcDuration; + class IfcDynamicViscosityMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcDynamicViscosityMeasure = IfcDynamicViscosityMeasure; + class IfcElectricCapacitanceMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcElectricCapacitanceMeasure = IfcElectricCapacitanceMeasure; + class IfcElectricChargeMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcElectricChargeMeasure = IfcElectricChargeMeasure; + class IfcElectricConductanceMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcElectricConductanceMeasure = IfcElectricConductanceMeasure; + class IfcElectricCurrentMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcElectricCurrentMeasure = IfcElectricCurrentMeasure; + class IfcElectricResistanceMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcElectricResistanceMeasure = IfcElectricResistanceMeasure; + class IfcElectricVoltageMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcElectricVoltageMeasure = IfcElectricVoltageMeasure; + class IfcEnergyMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcEnergyMeasure = IfcEnergyMeasure; + class IfcFontStyle { + constructor(value) { + this.value = value; + this.type = 1; + } + } + IFC4X32.IfcFontStyle = IfcFontStyle; + class IfcFontVariant { + constructor(value) { + this.value = value; + this.type = 1; + } + } + IFC4X32.IfcFontVariant = IfcFontVariant; + class IfcFontWeight { + constructor(value) { + this.value = value; + this.type = 1; + } + } + IFC4X32.IfcFontWeight = IfcFontWeight; + class IfcForceMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcForceMeasure = IfcForceMeasure; + class IfcFrequencyMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcFrequencyMeasure = IfcFrequencyMeasure; + class IfcGloballyUniqueId { + constructor(value) { + this.value = value; + this.type = 1; + } + } + IFC4X32.IfcGloballyUniqueId = IfcGloballyUniqueId; + class IfcHeatFluxDensityMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcHeatFluxDensityMeasure = IfcHeatFluxDensityMeasure; + class IfcHeatingValueMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcHeatingValueMeasure = IfcHeatingValueMeasure; + class IfcIdentifier { + constructor(value) { + this.value = value; + this.type = 1; + } + } + IFC4X32.IfcIdentifier = IfcIdentifier; + class IfcIlluminanceMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcIlluminanceMeasure = IfcIlluminanceMeasure; + class IfcInductanceMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcInductanceMeasure = IfcInductanceMeasure; + class IfcInteger { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcInteger = IfcInteger; + class IfcIntegerCountRateMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcIntegerCountRateMeasure = IfcIntegerCountRateMeasure; + class IfcIonConcentrationMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcIonConcentrationMeasure = IfcIonConcentrationMeasure; + class IfcIsothermalMoistureCapacityMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcIsothermalMoistureCapacityMeasure = IfcIsothermalMoistureCapacityMeasure; + class IfcKinematicViscosityMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcKinematicViscosityMeasure = IfcKinematicViscosityMeasure; + class IfcLabel { + constructor(value) { + this.value = value; + this.type = 1; + } + } + IFC4X32.IfcLabel = IfcLabel; + class IfcLanguageId { + constructor(value) { + this.value = value; + this.type = 1; + } + } + IFC4X32.IfcLanguageId = IfcLanguageId; + class IfcLengthMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcLengthMeasure = IfcLengthMeasure; + class IfcLineIndex { + constructor(value) { + this.value = value; + } + } + IFC4X32.IfcLineIndex = IfcLineIndex; + class IfcLinearForceMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcLinearForceMeasure = IfcLinearForceMeasure; + class IfcLinearMomentMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcLinearMomentMeasure = IfcLinearMomentMeasure; + class IfcLinearStiffnessMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcLinearStiffnessMeasure = IfcLinearStiffnessMeasure; + class IfcLinearVelocityMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcLinearVelocityMeasure = IfcLinearVelocityMeasure; + class IfcLogical { + constructor(v) { + this.type = 3; + this.value = v == "true" ? true : false; + } + } + IFC4X32.IfcLogical = IfcLogical; + class IfcLuminousFluxMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcLuminousFluxMeasure = IfcLuminousFluxMeasure; + class IfcLuminousIntensityDistributionMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcLuminousIntensityDistributionMeasure = IfcLuminousIntensityDistributionMeasure; + class IfcLuminousIntensityMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcLuminousIntensityMeasure = IfcLuminousIntensityMeasure; + class IfcMagneticFluxDensityMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcMagneticFluxDensityMeasure = IfcMagneticFluxDensityMeasure; + class IfcMagneticFluxMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcMagneticFluxMeasure = IfcMagneticFluxMeasure; + class IfcMassDensityMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcMassDensityMeasure = IfcMassDensityMeasure; + class IfcMassFlowRateMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcMassFlowRateMeasure = IfcMassFlowRateMeasure; + class IfcMassMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcMassMeasure = IfcMassMeasure; + class IfcMassPerLengthMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcMassPerLengthMeasure = IfcMassPerLengthMeasure; + class IfcModulusOfElasticityMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcModulusOfElasticityMeasure = IfcModulusOfElasticityMeasure; + class IfcModulusOfLinearSubgradeReactionMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcModulusOfLinearSubgradeReactionMeasure = IfcModulusOfLinearSubgradeReactionMeasure; + class IfcModulusOfRotationalSubgradeReactionMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcModulusOfRotationalSubgradeReactionMeasure = IfcModulusOfRotationalSubgradeReactionMeasure; + class IfcModulusOfSubgradeReactionMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcModulusOfSubgradeReactionMeasure = IfcModulusOfSubgradeReactionMeasure; + class IfcMoistureDiffusivityMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcMoistureDiffusivityMeasure = IfcMoistureDiffusivityMeasure; + class IfcMolecularWeightMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcMolecularWeightMeasure = IfcMolecularWeightMeasure; + class IfcMomentOfInertiaMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcMomentOfInertiaMeasure = IfcMomentOfInertiaMeasure; + class IfcMonetaryMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcMonetaryMeasure = IfcMonetaryMeasure; + class IfcMonthInYearNumber { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcMonthInYearNumber = IfcMonthInYearNumber; + class IfcNonNegativeLengthMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcNonNegativeLengthMeasure = IfcNonNegativeLengthMeasure; + class IfcNormalisedRatioMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcNormalisedRatioMeasure = IfcNormalisedRatioMeasure; + class IfcNumericMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcNumericMeasure = IfcNumericMeasure; + class IfcPHMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcPHMeasure = IfcPHMeasure; + class IfcParameterValue { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcParameterValue = IfcParameterValue; + class IfcPlanarForceMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcPlanarForceMeasure = IfcPlanarForceMeasure; + class IfcPlaneAngleMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcPlaneAngleMeasure = IfcPlaneAngleMeasure; + class IfcPositiveInteger { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcPositiveInteger = IfcPositiveInteger; + class IfcPositiveLengthMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcPositiveLengthMeasure = IfcPositiveLengthMeasure; + class IfcPositivePlaneAngleMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcPositivePlaneAngleMeasure = IfcPositivePlaneAngleMeasure; + class IfcPositiveRatioMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcPositiveRatioMeasure = IfcPositiveRatioMeasure; + class IfcPowerMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcPowerMeasure = IfcPowerMeasure; + class IfcPresentableText { + constructor(value) { + this.value = value; + this.type = 1; + } + } + IFC4X32.IfcPresentableText = IfcPresentableText; + class IfcPressureMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcPressureMeasure = IfcPressureMeasure; + class IfcPropertySetDefinitionSet { + constructor(value) { + this.value = value; + } + } + IFC4X32.IfcPropertySetDefinitionSet = IfcPropertySetDefinitionSet; + class IfcRadioActivityMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcRadioActivityMeasure = IfcRadioActivityMeasure; + class IfcRatioMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcRatioMeasure = IfcRatioMeasure; + class IfcReal { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcReal = IfcReal; + class IfcRotationalFrequencyMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcRotationalFrequencyMeasure = IfcRotationalFrequencyMeasure; + class IfcRotationalMassMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcRotationalMassMeasure = IfcRotationalMassMeasure; + class IfcRotationalStiffnessMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcRotationalStiffnessMeasure = IfcRotationalStiffnessMeasure; + class IfcSectionModulusMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcSectionModulusMeasure = IfcSectionModulusMeasure; + class IfcSectionalAreaIntegralMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcSectionalAreaIntegralMeasure = IfcSectionalAreaIntegralMeasure; + class IfcShearModulusMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcShearModulusMeasure = IfcShearModulusMeasure; + class IfcSolidAngleMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcSolidAngleMeasure = IfcSolidAngleMeasure; + class IfcSoundPowerLevelMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcSoundPowerLevelMeasure = IfcSoundPowerLevelMeasure; + class IfcSoundPowerMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcSoundPowerMeasure = IfcSoundPowerMeasure; + class IfcSoundPressureLevelMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcSoundPressureLevelMeasure = IfcSoundPressureLevelMeasure; + class IfcSoundPressureMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcSoundPressureMeasure = IfcSoundPressureMeasure; + class IfcSpecificHeatCapacityMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcSpecificHeatCapacityMeasure = IfcSpecificHeatCapacityMeasure; + class IfcSpecularExponent { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcSpecularExponent = IfcSpecularExponent; + class IfcSpecularRoughness { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcSpecularRoughness = IfcSpecularRoughness; + class IfcTemperatureGradientMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcTemperatureGradientMeasure = IfcTemperatureGradientMeasure; + class IfcTemperatureRateOfChangeMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcTemperatureRateOfChangeMeasure = IfcTemperatureRateOfChangeMeasure; + class IfcText { + constructor(value) { + this.value = value; + this.type = 1; + } + } + IFC4X32.IfcText = IfcText; + class IfcTextAlignment { + constructor(value) { + this.value = value; + this.type = 1; + } + } + IFC4X32.IfcTextAlignment = IfcTextAlignment; + class IfcTextDecoration { + constructor(value) { + this.value = value; + this.type = 1; + } + } + IFC4X32.IfcTextDecoration = IfcTextDecoration; + class IfcTextFontName { + constructor(value) { + this.value = value; + this.type = 1; + } + } + IFC4X32.IfcTextFontName = IfcTextFontName; + class IfcTextTransformation { + constructor(value) { + this.value = value; + this.type = 1; + } + } + IFC4X32.IfcTextTransformation = IfcTextTransformation; + class IfcThermalAdmittanceMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcThermalAdmittanceMeasure = IfcThermalAdmittanceMeasure; + class IfcThermalConductivityMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcThermalConductivityMeasure = IfcThermalConductivityMeasure; + class IfcThermalExpansionCoefficientMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcThermalExpansionCoefficientMeasure = IfcThermalExpansionCoefficientMeasure; + class IfcThermalResistanceMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcThermalResistanceMeasure = IfcThermalResistanceMeasure; + class IfcThermalTransmittanceMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcThermalTransmittanceMeasure = IfcThermalTransmittanceMeasure; + class IfcThermodynamicTemperatureMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcThermodynamicTemperatureMeasure = IfcThermodynamicTemperatureMeasure; + class IfcTime { + constructor(value) { + this.value = value; + this.type = 1; + } + } + IFC4X32.IfcTime = IfcTime; + class IfcTimeMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcTimeMeasure = IfcTimeMeasure; + class IfcTimeStamp { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcTimeStamp = IfcTimeStamp; + class IfcTorqueMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcTorqueMeasure = IfcTorqueMeasure; + class IfcURIReference { + constructor(value) { + this.value = value; + this.type = 1; + } + } + IFC4X32.IfcURIReference = IfcURIReference; + class IfcVaporPermeabilityMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcVaporPermeabilityMeasure = IfcVaporPermeabilityMeasure; + class IfcVolumeMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcVolumeMeasure = IfcVolumeMeasure; + class IfcVolumetricFlowRateMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcVolumetricFlowRateMeasure = IfcVolumetricFlowRateMeasure; + class IfcWarpingConstantMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcWarpingConstantMeasure = IfcWarpingConstantMeasure; + class IfcWarpingMomentMeasure { + constructor(v) { + this.type = 4; + this.value = parseFloat(v); + } + } + IFC4X32.IfcWarpingMomentMeasure = IfcWarpingMomentMeasure; + class IfcActionRequestTypeEnum { + } + IfcActionRequestTypeEnum.EMAIL = { type: 3, value: "EMAIL" }; + IfcActionRequestTypeEnum.FAX = { type: 3, value: "FAX" }; + IfcActionRequestTypeEnum.PHONE = { type: 3, value: "PHONE" }; + IfcActionRequestTypeEnum.POST = { type: 3, value: "POST" }; + IfcActionRequestTypeEnum.VERBAL = { type: 3, value: "VERBAL" }; + IfcActionRequestTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcActionRequestTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcActionRequestTypeEnum = IfcActionRequestTypeEnum; + class IfcActionSourceTypeEnum { + } + IfcActionSourceTypeEnum.BRAKES = { type: 3, value: "BRAKES" }; + IfcActionSourceTypeEnum.BUOYANCY = { type: 3, value: "BUOYANCY" }; + IfcActionSourceTypeEnum.COMPLETION_G1 = { type: 3, value: "COMPLETION_G1" }; + IfcActionSourceTypeEnum.CREEP = { type: 3, value: "CREEP" }; + IfcActionSourceTypeEnum.CURRENT = { type: 3, value: "CURRENT" }; + IfcActionSourceTypeEnum.DEAD_LOAD_G = { type: 3, value: "DEAD_LOAD_G" }; + IfcActionSourceTypeEnum.EARTHQUAKE_E = { type: 3, value: "EARTHQUAKE_E" }; + IfcActionSourceTypeEnum.ERECTION = { type: 3, value: "ERECTION" }; + IfcActionSourceTypeEnum.FIRE = { type: 3, value: "FIRE" }; + IfcActionSourceTypeEnum.ICE = { type: 3, value: "ICE" }; + IfcActionSourceTypeEnum.IMPACT = { type: 3, value: "IMPACT" }; + IfcActionSourceTypeEnum.IMPULSE = { type: 3, value: "IMPULSE" }; + IfcActionSourceTypeEnum.LACK_OF_FIT = { type: 3, value: "LACK_OF_FIT" }; + IfcActionSourceTypeEnum.LIVE_LOAD_Q = { type: 3, value: "LIVE_LOAD_Q" }; + IfcActionSourceTypeEnum.PRESTRESSING_P = { type: 3, value: "PRESTRESSING_P" }; + IfcActionSourceTypeEnum.PROPPING = { type: 3, value: "PROPPING" }; + IfcActionSourceTypeEnum.RAIN = { type: 3, value: "RAIN" }; + IfcActionSourceTypeEnum.SETTLEMENT_U = { type: 3, value: "SETTLEMENT_U" }; + IfcActionSourceTypeEnum.SHRINKAGE = { type: 3, value: "SHRINKAGE" }; + IfcActionSourceTypeEnum.SNOW_S = { type: 3, value: "SNOW_S" }; + IfcActionSourceTypeEnum.SYSTEM_IMPERFECTION = { type: 3, value: "SYSTEM_IMPERFECTION" }; + IfcActionSourceTypeEnum.TEMPERATURE_T = { type: 3, value: "TEMPERATURE_T" }; + IfcActionSourceTypeEnum.TRANSPORT = { type: 3, value: "TRANSPORT" }; + IfcActionSourceTypeEnum.WAVE = { type: 3, value: "WAVE" }; + IfcActionSourceTypeEnum.WIND_W = { type: 3, value: "WIND_W" }; + IfcActionSourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcActionSourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcActionSourceTypeEnum = IfcActionSourceTypeEnum; + class IfcActionTypeEnum { + } + IfcActionTypeEnum.EXTRAORDINARY_A = { type: 3, value: "EXTRAORDINARY_A" }; + IfcActionTypeEnum.PERMANENT_G = { type: 3, value: "PERMANENT_G" }; + IfcActionTypeEnum.VARIABLE_Q = { type: 3, value: "VARIABLE_Q" }; + IfcActionTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcActionTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcActionTypeEnum = IfcActionTypeEnum; + class IfcActuatorTypeEnum { + } + IfcActuatorTypeEnum.ELECTRICACTUATOR = { type: 3, value: "ELECTRICACTUATOR" }; + IfcActuatorTypeEnum.HANDOPERATEDACTUATOR = { type: 3, value: "HANDOPERATEDACTUATOR" }; + IfcActuatorTypeEnum.HYDRAULICACTUATOR = { type: 3, value: "HYDRAULICACTUATOR" }; + IfcActuatorTypeEnum.PNEUMATICACTUATOR = { type: 3, value: "PNEUMATICACTUATOR" }; + IfcActuatorTypeEnum.THERMOSTATICACTUATOR = { type: 3, value: "THERMOSTATICACTUATOR" }; + IfcActuatorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcActuatorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcActuatorTypeEnum = IfcActuatorTypeEnum; + class IfcAddressTypeEnum { + } + IfcAddressTypeEnum.DISTRIBUTIONPOINT = { type: 3, value: "DISTRIBUTIONPOINT" }; + IfcAddressTypeEnum.HOME = { type: 3, value: "HOME" }; + IfcAddressTypeEnum.OFFICE = { type: 3, value: "OFFICE" }; + IfcAddressTypeEnum.SITE = { type: 3, value: "SITE" }; + IfcAddressTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IFC4X32.IfcAddressTypeEnum = IfcAddressTypeEnum; + class IfcAirTerminalBoxTypeEnum { + } + IfcAirTerminalBoxTypeEnum.CONSTANTFLOW = { type: 3, value: "CONSTANTFLOW" }; + IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREDEPENDANT = { type: 3, value: "VARIABLEFLOWPRESSUREDEPENDANT" }; + IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREINDEPENDANT = { type: 3, value: "VARIABLEFLOWPRESSUREINDEPENDANT" }; + IfcAirTerminalBoxTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcAirTerminalBoxTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcAirTerminalBoxTypeEnum = IfcAirTerminalBoxTypeEnum; + class IfcAirTerminalTypeEnum { + } + IfcAirTerminalTypeEnum.DIFFUSER = { type: 3, value: "DIFFUSER" }; + IfcAirTerminalTypeEnum.GRILLE = { type: 3, value: "GRILLE" }; + IfcAirTerminalTypeEnum.LOUVRE = { type: 3, value: "LOUVRE" }; + IfcAirTerminalTypeEnum.REGISTER = { type: 3, value: "REGISTER" }; + IfcAirTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcAirTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcAirTerminalTypeEnum = IfcAirTerminalTypeEnum; + class IfcAirToAirHeatRecoveryTypeEnum { + } + IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECOUNTERFLOWEXCHANGER = { type: 3, value: "FIXEDPLATECOUNTERFLOWEXCHANGER" }; + IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECROSSFLOWEXCHANGER = { type: 3, value: "FIXEDPLATECROSSFLOWEXCHANGER" }; + IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATEPARALLELFLOWEXCHANGER = { type: 3, value: "FIXEDPLATEPARALLELFLOWEXCHANGER" }; + IfcAirToAirHeatRecoveryTypeEnum.HEATPIPE = { type: 3, value: "HEATPIPE" }; + IfcAirToAirHeatRecoveryTypeEnum.ROTARYWHEEL = { type: 3, value: "ROTARYWHEEL" }; + IfcAirToAirHeatRecoveryTypeEnum.RUNAROUNDCOILLOOP = { type: 3, value: "RUNAROUNDCOILLOOP" }; + IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONCOILTYPEHEATEXCHANGERS = { type: 3, value: "THERMOSIPHONCOILTYPEHEATEXCHANGERS" }; + IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONSEALEDTUBEHEATEXCHANGERS = { type: 3, value: "THERMOSIPHONSEALEDTUBEHEATEXCHANGERS" }; + IfcAirToAirHeatRecoveryTypeEnum.TWINTOWERENTHALPYRECOVERYLOOPS = { type: 3, value: "TWINTOWERENTHALPYRECOVERYLOOPS" }; + IfcAirToAirHeatRecoveryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcAirToAirHeatRecoveryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcAirToAirHeatRecoveryTypeEnum = IfcAirToAirHeatRecoveryTypeEnum; + class IfcAlarmTypeEnum { + } + IfcAlarmTypeEnum.BELL = { type: 3, value: "BELL" }; + IfcAlarmTypeEnum.BREAKGLASSBUTTON = { type: 3, value: "BREAKGLASSBUTTON" }; + IfcAlarmTypeEnum.LIGHT = { type: 3, value: "LIGHT" }; + IfcAlarmTypeEnum.MANUALPULLBOX = { type: 3, value: "MANUALPULLBOX" }; + IfcAlarmTypeEnum.RAILWAYCROCODILE = { type: 3, value: "RAILWAYCROCODILE" }; + IfcAlarmTypeEnum.RAILWAYDETONATOR = { type: 3, value: "RAILWAYDETONATOR" }; + IfcAlarmTypeEnum.SIREN = { type: 3, value: "SIREN" }; + IfcAlarmTypeEnum.WHISTLE = { type: 3, value: "WHISTLE" }; + IfcAlarmTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcAlarmTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcAlarmTypeEnum = IfcAlarmTypeEnum; + class IfcAlignmentCantSegmentTypeEnum { + } + IfcAlignmentCantSegmentTypeEnum.BLOSSCURVE = { type: 3, value: "BLOSSCURVE" }; + IfcAlignmentCantSegmentTypeEnum.CONSTANTCANT = { type: 3, value: "CONSTANTCANT" }; + IfcAlignmentCantSegmentTypeEnum.COSINECURVE = { type: 3, value: "COSINECURVE" }; + IfcAlignmentCantSegmentTypeEnum.HELMERTCURVE = { type: 3, value: "HELMERTCURVE" }; + IfcAlignmentCantSegmentTypeEnum.LINEARTRANSITION = { type: 3, value: "LINEARTRANSITION" }; + IfcAlignmentCantSegmentTypeEnum.SINECURVE = { type: 3, value: "SINECURVE" }; + IfcAlignmentCantSegmentTypeEnum.VIENNESEBEND = { type: 3, value: "VIENNESEBEND" }; + IFC4X32.IfcAlignmentCantSegmentTypeEnum = IfcAlignmentCantSegmentTypeEnum; + class IfcAlignmentHorizontalSegmentTypeEnum { + } + IfcAlignmentHorizontalSegmentTypeEnum.BLOSSCURVE = { type: 3, value: "BLOSSCURVE" }; + IfcAlignmentHorizontalSegmentTypeEnum.CIRCULARARC = { type: 3, value: "CIRCULARARC" }; + IfcAlignmentHorizontalSegmentTypeEnum.CLOTHOID = { type: 3, value: "CLOTHOID" }; + IfcAlignmentHorizontalSegmentTypeEnum.COSINECURVE = { type: 3, value: "COSINECURVE" }; + IfcAlignmentHorizontalSegmentTypeEnum.CUBIC = { type: 3, value: "CUBIC" }; + IfcAlignmentHorizontalSegmentTypeEnum.HELMERTCURVE = { type: 3, value: "HELMERTCURVE" }; + IfcAlignmentHorizontalSegmentTypeEnum.LINE = { type: 3, value: "LINE" }; + IfcAlignmentHorizontalSegmentTypeEnum.SINECURVE = { type: 3, value: "SINECURVE" }; + IfcAlignmentHorizontalSegmentTypeEnum.VIENNESEBEND = { type: 3, value: "VIENNESEBEND" }; + IFC4X32.IfcAlignmentHorizontalSegmentTypeEnum = IfcAlignmentHorizontalSegmentTypeEnum; + class IfcAlignmentTypeEnum { + } + IfcAlignmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcAlignmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcAlignmentTypeEnum = IfcAlignmentTypeEnum; + class IfcAlignmentVerticalSegmentTypeEnum { + } + IfcAlignmentVerticalSegmentTypeEnum.CIRCULARARC = { type: 3, value: "CIRCULARARC" }; + IfcAlignmentVerticalSegmentTypeEnum.CLOTHOID = { type: 3, value: "CLOTHOID" }; + IfcAlignmentVerticalSegmentTypeEnum.CONSTANTGRADIENT = { type: 3, value: "CONSTANTGRADIENT" }; + IfcAlignmentVerticalSegmentTypeEnum.PARABOLICARC = { type: 3, value: "PARABOLICARC" }; + IFC4X32.IfcAlignmentVerticalSegmentTypeEnum = IfcAlignmentVerticalSegmentTypeEnum; + class IfcAnalysisModelTypeEnum { + } + IfcAnalysisModelTypeEnum.IN_PLANE_LOADING_2D = { type: 3, value: "IN_PLANE_LOADING_2D" }; + IfcAnalysisModelTypeEnum.LOADING_3D = { type: 3, value: "LOADING_3D" }; + IfcAnalysisModelTypeEnum.OUT_PLANE_LOADING_2D = { type: 3, value: "OUT_PLANE_LOADING_2D" }; + IfcAnalysisModelTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcAnalysisModelTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcAnalysisModelTypeEnum = IfcAnalysisModelTypeEnum; + class IfcAnalysisTheoryTypeEnum { + } + IfcAnalysisTheoryTypeEnum.FIRST_ORDER_THEORY = { type: 3, value: "FIRST_ORDER_THEORY" }; + IfcAnalysisTheoryTypeEnum.FULL_NONLINEAR_THEORY = { type: 3, value: "FULL_NONLINEAR_THEORY" }; + IfcAnalysisTheoryTypeEnum.SECOND_ORDER_THEORY = { type: 3, value: "SECOND_ORDER_THEORY" }; + IfcAnalysisTheoryTypeEnum.THIRD_ORDER_THEORY = { type: 3, value: "THIRD_ORDER_THEORY" }; + IfcAnalysisTheoryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcAnalysisTheoryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcAnalysisTheoryTypeEnum = IfcAnalysisTheoryTypeEnum; + class IfcAnnotationTypeEnum { + } + IfcAnnotationTypeEnum.ASBUILTAREA = { type: 3, value: "ASBUILTAREA" }; + IfcAnnotationTypeEnum.ASBUILTLINE = { type: 3, value: "ASBUILTLINE" }; + IfcAnnotationTypeEnum.ASBUILTPOINT = { type: 3, value: "ASBUILTPOINT" }; + IfcAnnotationTypeEnum.ASSUMEDAREA = { type: 3, value: "ASSUMEDAREA" }; + IfcAnnotationTypeEnum.ASSUMEDLINE = { type: 3, value: "ASSUMEDLINE" }; + IfcAnnotationTypeEnum.ASSUMEDPOINT = { type: 3, value: "ASSUMEDPOINT" }; + IfcAnnotationTypeEnum.NON_PHYSICAL_SIGNAL = { type: 3, value: "NON_PHYSICAL_SIGNAL" }; + IfcAnnotationTypeEnum.SUPERELEVATIONEVENT = { type: 3, value: "SUPERELEVATIONEVENT" }; + IfcAnnotationTypeEnum.WIDTHEVENT = { type: 3, value: "WIDTHEVENT" }; + IfcAnnotationTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcAnnotationTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcAnnotationTypeEnum = IfcAnnotationTypeEnum; + class IfcArithmeticOperatorEnum { + } + IfcArithmeticOperatorEnum.ADD = { type: 3, value: "ADD" }; + IfcArithmeticOperatorEnum.DIVIDE = { type: 3, value: "DIVIDE" }; + IfcArithmeticOperatorEnum.MULTIPLY = { type: 3, value: "MULTIPLY" }; + IfcArithmeticOperatorEnum.SUBTRACT = { type: 3, value: "SUBTRACT" }; + IFC4X32.IfcArithmeticOperatorEnum = IfcArithmeticOperatorEnum; + class IfcAssemblyPlaceEnum { + } + IfcAssemblyPlaceEnum.FACTORY = { type: 3, value: "FACTORY" }; + IfcAssemblyPlaceEnum.SITE = { type: 3, value: "SITE" }; + IfcAssemblyPlaceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcAssemblyPlaceEnum = IfcAssemblyPlaceEnum; + class IfcAudioVisualApplianceTypeEnum { + } + IfcAudioVisualApplianceTypeEnum.AMPLIFIER = { type: 3, value: "AMPLIFIER" }; + IfcAudioVisualApplianceTypeEnum.CAMERA = { type: 3, value: "CAMERA" }; + IfcAudioVisualApplianceTypeEnum.COMMUNICATIONTERMINAL = { type: 3, value: "COMMUNICATIONTERMINAL" }; + IfcAudioVisualApplianceTypeEnum.DISPLAY = { type: 3, value: "DISPLAY" }; + IfcAudioVisualApplianceTypeEnum.MICROPHONE = { type: 3, value: "MICROPHONE" }; + IfcAudioVisualApplianceTypeEnum.PLAYER = { type: 3, value: "PLAYER" }; + IfcAudioVisualApplianceTypeEnum.PROJECTOR = { type: 3, value: "PROJECTOR" }; + IfcAudioVisualApplianceTypeEnum.RECEIVER = { type: 3, value: "RECEIVER" }; + IfcAudioVisualApplianceTypeEnum.RECORDINGEQUIPMENT = { type: 3, value: "RECORDINGEQUIPMENT" }; + IfcAudioVisualApplianceTypeEnum.SPEAKER = { type: 3, value: "SPEAKER" }; + IfcAudioVisualApplianceTypeEnum.SWITCHER = { type: 3, value: "SWITCHER" }; + IfcAudioVisualApplianceTypeEnum.TELEPHONE = { type: 3, value: "TELEPHONE" }; + IfcAudioVisualApplianceTypeEnum.TUNER = { type: 3, value: "TUNER" }; + IfcAudioVisualApplianceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcAudioVisualApplianceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcAudioVisualApplianceTypeEnum = IfcAudioVisualApplianceTypeEnum; + class IfcBSplineCurveForm { + } + IfcBSplineCurveForm.CIRCULAR_ARC = { type: 3, value: "CIRCULAR_ARC" }; + IfcBSplineCurveForm.ELLIPTIC_ARC = { type: 3, value: "ELLIPTIC_ARC" }; + IfcBSplineCurveForm.HYPERBOLIC_ARC = { type: 3, value: "HYPERBOLIC_ARC" }; + IfcBSplineCurveForm.PARABOLIC_ARC = { type: 3, value: "PARABOLIC_ARC" }; + IfcBSplineCurveForm.POLYLINE_FORM = { type: 3, value: "POLYLINE_FORM" }; + IfcBSplineCurveForm.UNSPECIFIED = { type: 3, value: "UNSPECIFIED" }; + IFC4X32.IfcBSplineCurveForm = IfcBSplineCurveForm; + class IfcBSplineSurfaceForm { + } + IfcBSplineSurfaceForm.CONICAL_SURF = { type: 3, value: "CONICAL_SURF" }; + IfcBSplineSurfaceForm.CYLINDRICAL_SURF = { type: 3, value: "CYLINDRICAL_SURF" }; + IfcBSplineSurfaceForm.GENERALISED_CONE = { type: 3, value: "GENERALISED_CONE" }; + IfcBSplineSurfaceForm.PLANE_SURF = { type: 3, value: "PLANE_SURF" }; + IfcBSplineSurfaceForm.QUADRIC_SURF = { type: 3, value: "QUADRIC_SURF" }; + IfcBSplineSurfaceForm.RULED_SURF = { type: 3, value: "RULED_SURF" }; + IfcBSplineSurfaceForm.SPHERICAL_SURF = { type: 3, value: "SPHERICAL_SURF" }; + IfcBSplineSurfaceForm.SURF_OF_LINEAR_EXTRUSION = { type: 3, value: "SURF_OF_LINEAR_EXTRUSION" }; + IfcBSplineSurfaceForm.SURF_OF_REVOLUTION = { type: 3, value: "SURF_OF_REVOLUTION" }; + IfcBSplineSurfaceForm.TOROIDAL_SURF = { type: 3, value: "TOROIDAL_SURF" }; + IfcBSplineSurfaceForm.UNSPECIFIED = { type: 3, value: "UNSPECIFIED" }; + IFC4X32.IfcBSplineSurfaceForm = IfcBSplineSurfaceForm; + class IfcBeamTypeEnum { + } + IfcBeamTypeEnum.BEAM = { type: 3, value: "BEAM" }; + IfcBeamTypeEnum.CORNICE = { type: 3, value: "CORNICE" }; + IfcBeamTypeEnum.DIAPHRAGM = { type: 3, value: "DIAPHRAGM" }; + IfcBeamTypeEnum.EDGEBEAM = { type: 3, value: "EDGEBEAM" }; + IfcBeamTypeEnum.GIRDER_SEGMENT = { type: 3, value: "GIRDER_SEGMENT" }; + IfcBeamTypeEnum.HATSTONE = { type: 3, value: "HATSTONE" }; + IfcBeamTypeEnum.HOLLOWCORE = { type: 3, value: "HOLLOWCORE" }; + IfcBeamTypeEnum.JOIST = { type: 3, value: "JOIST" }; + IfcBeamTypeEnum.LINTEL = { type: 3, value: "LINTEL" }; + IfcBeamTypeEnum.PIERCAP = { type: 3, value: "PIERCAP" }; + IfcBeamTypeEnum.SPANDREL = { type: 3, value: "SPANDREL" }; + IfcBeamTypeEnum.T_BEAM = { type: 3, value: "T_BEAM" }; + IfcBeamTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcBeamTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcBeamTypeEnum = IfcBeamTypeEnum; + class IfcBearingTypeDisplacementEnum { + } + IfcBearingTypeDisplacementEnum.FIXED_MOVEMENT = { type: 3, value: "FIXED_MOVEMENT" }; + IfcBearingTypeDisplacementEnum.FREE_MOVEMENT = { type: 3, value: "FREE_MOVEMENT" }; + IfcBearingTypeDisplacementEnum.GUIDED_LONGITUDINAL = { type: 3, value: "GUIDED_LONGITUDINAL" }; + IfcBearingTypeDisplacementEnum.GUIDED_TRANSVERSAL = { type: 3, value: "GUIDED_TRANSVERSAL" }; + IfcBearingTypeDisplacementEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcBearingTypeDisplacementEnum = IfcBearingTypeDisplacementEnum; + class IfcBearingTypeEnum { + } + IfcBearingTypeEnum.CYLINDRICAL = { type: 3, value: "CYLINDRICAL" }; + IfcBearingTypeEnum.DISK = { type: 3, value: "DISK" }; + IfcBearingTypeEnum.ELASTOMERIC = { type: 3, value: "ELASTOMERIC" }; + IfcBearingTypeEnum.GUIDE = { type: 3, value: "GUIDE" }; + IfcBearingTypeEnum.POT = { type: 3, value: "POT" }; + IfcBearingTypeEnum.ROCKER = { type: 3, value: "ROCKER" }; + IfcBearingTypeEnum.ROLLER = { type: 3, value: "ROLLER" }; + IfcBearingTypeEnum.SPHERICAL = { type: 3, value: "SPHERICAL" }; + IfcBearingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcBearingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcBearingTypeEnum = IfcBearingTypeEnum; + class IfcBenchmarkEnum { + } + IfcBenchmarkEnum.EQUALTO = { type: 3, value: "EQUALTO" }; + IfcBenchmarkEnum.GREATERTHAN = { type: 3, value: "GREATERTHAN" }; + IfcBenchmarkEnum.GREATERTHANOREQUALTO = { type: 3, value: "GREATERTHANOREQUALTO" }; + IfcBenchmarkEnum.INCLUDEDIN = { type: 3, value: "INCLUDEDIN" }; + IfcBenchmarkEnum.INCLUDES = { type: 3, value: "INCLUDES" }; + IfcBenchmarkEnum.LESSTHAN = { type: 3, value: "LESSTHAN" }; + IfcBenchmarkEnum.LESSTHANOREQUALTO = { type: 3, value: "LESSTHANOREQUALTO" }; + IfcBenchmarkEnum.NOTEQUALTO = { type: 3, value: "NOTEQUALTO" }; + IfcBenchmarkEnum.NOTINCLUDEDIN = { type: 3, value: "NOTINCLUDEDIN" }; + IfcBenchmarkEnum.NOTINCLUDES = { type: 3, value: "NOTINCLUDES" }; + IFC4X32.IfcBenchmarkEnum = IfcBenchmarkEnum; + class IfcBoilerTypeEnum { + } + IfcBoilerTypeEnum.STEAM = { type: 3, value: "STEAM" }; + IfcBoilerTypeEnum.WATER = { type: 3, value: "WATER" }; + IfcBoilerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcBoilerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcBoilerTypeEnum = IfcBoilerTypeEnum; + class IfcBooleanOperator { + } + IfcBooleanOperator.DIFFERENCE = { type: 3, value: "DIFFERENCE" }; + IfcBooleanOperator.INTERSECTION = { type: 3, value: "INTERSECTION" }; + IfcBooleanOperator.UNION = { type: 3, value: "UNION" }; + IFC4X32.IfcBooleanOperator = IfcBooleanOperator; + class IfcBridgePartTypeEnum { + } + IfcBridgePartTypeEnum.ABUTMENT = { type: 3, value: "ABUTMENT" }; + IfcBridgePartTypeEnum.DECK = { type: 3, value: "DECK" }; + IfcBridgePartTypeEnum.DECK_SEGMENT = { type: 3, value: "DECK_SEGMENT" }; + IfcBridgePartTypeEnum.FOUNDATION = { type: 3, value: "FOUNDATION" }; + IfcBridgePartTypeEnum.PIER = { type: 3, value: "PIER" }; + IfcBridgePartTypeEnum.PIER_SEGMENT = { type: 3, value: "PIER_SEGMENT" }; + IfcBridgePartTypeEnum.PYLON = { type: 3, value: "PYLON" }; + IfcBridgePartTypeEnum.SUBSTRUCTURE = { type: 3, value: "SUBSTRUCTURE" }; + IfcBridgePartTypeEnum.SUPERSTRUCTURE = { type: 3, value: "SUPERSTRUCTURE" }; + IfcBridgePartTypeEnum.SURFACESTRUCTURE = { type: 3, value: "SURFACESTRUCTURE" }; + IfcBridgePartTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcBridgePartTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcBridgePartTypeEnum = IfcBridgePartTypeEnum; + class IfcBridgeTypeEnum { + } + IfcBridgeTypeEnum.ARCHED = { type: 3, value: "ARCHED" }; + IfcBridgeTypeEnum.CABLE_STAYED = { type: 3, value: "CABLE_STAYED" }; + IfcBridgeTypeEnum.CANTILEVER = { type: 3, value: "CANTILEVER" }; + IfcBridgeTypeEnum.CULVERT = { type: 3, value: "CULVERT" }; + IfcBridgeTypeEnum.FRAMEWORK = { type: 3, value: "FRAMEWORK" }; + IfcBridgeTypeEnum.GIRDER = { type: 3, value: "GIRDER" }; + IfcBridgeTypeEnum.SUSPENSION = { type: 3, value: "SUSPENSION" }; + IfcBridgeTypeEnum.TRUSS = { type: 3, value: "TRUSS" }; + IfcBridgeTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcBridgeTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcBridgeTypeEnum = IfcBridgeTypeEnum; + class IfcBuildingElementPartTypeEnum { + } + IfcBuildingElementPartTypeEnum.APRON = { type: 3, value: "APRON" }; + IfcBuildingElementPartTypeEnum.ARMOURUNIT = { type: 3, value: "ARMOURUNIT" }; + IfcBuildingElementPartTypeEnum.INSULATION = { type: 3, value: "INSULATION" }; + IfcBuildingElementPartTypeEnum.PRECASTPANEL = { type: 3, value: "PRECASTPANEL" }; + IfcBuildingElementPartTypeEnum.SAFETYCAGE = { type: 3, value: "SAFETYCAGE" }; + IfcBuildingElementPartTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcBuildingElementPartTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcBuildingElementPartTypeEnum = IfcBuildingElementPartTypeEnum; + class IfcBuildingElementProxyTypeEnum { + } + IfcBuildingElementProxyTypeEnum.COMPLEX = { type: 3, value: "COMPLEX" }; + IfcBuildingElementProxyTypeEnum.ELEMENT = { type: 3, value: "ELEMENT" }; + IfcBuildingElementProxyTypeEnum.PARTIAL = { type: 3, value: "PARTIAL" }; + IfcBuildingElementProxyTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcBuildingElementProxyTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcBuildingElementProxyTypeEnum = IfcBuildingElementProxyTypeEnum; + class IfcBuildingSystemTypeEnum { + } + IfcBuildingSystemTypeEnum.EROSIONPREVENTION = { type: 3, value: "EROSIONPREVENTION" }; + IfcBuildingSystemTypeEnum.FENESTRATION = { type: 3, value: "FENESTRATION" }; + IfcBuildingSystemTypeEnum.FOUNDATION = { type: 3, value: "FOUNDATION" }; + IfcBuildingSystemTypeEnum.LOADBEARING = { type: 3, value: "LOADBEARING" }; + IfcBuildingSystemTypeEnum.OUTERSHELL = { type: 3, value: "OUTERSHELL" }; + IfcBuildingSystemTypeEnum.PRESTRESSING = { type: 3, value: "PRESTRESSING" }; + IfcBuildingSystemTypeEnum.REINFORCING = { type: 3, value: "REINFORCING" }; + IfcBuildingSystemTypeEnum.SHADING = { type: 3, value: "SHADING" }; + IfcBuildingSystemTypeEnum.TRANSPORT = { type: 3, value: "TRANSPORT" }; + IfcBuildingSystemTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcBuildingSystemTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcBuildingSystemTypeEnum = IfcBuildingSystemTypeEnum; + class IfcBuiltSystemTypeEnum { + } + IfcBuiltSystemTypeEnum.EROSIONPREVENTION = { type: 3, value: "EROSIONPREVENTION" }; + IfcBuiltSystemTypeEnum.FENESTRATION = { type: 3, value: "FENESTRATION" }; + IfcBuiltSystemTypeEnum.FOUNDATION = { type: 3, value: "FOUNDATION" }; + IfcBuiltSystemTypeEnum.LOADBEARING = { type: 3, value: "LOADBEARING" }; + IfcBuiltSystemTypeEnum.MOORING = { type: 3, value: "MOORING" }; + IfcBuiltSystemTypeEnum.OUTERSHELL = { type: 3, value: "OUTERSHELL" }; + IfcBuiltSystemTypeEnum.PRESTRESSING = { type: 3, value: "PRESTRESSING" }; + IfcBuiltSystemTypeEnum.RAILWAYLINE = { type: 3, value: "RAILWAYLINE" }; + IfcBuiltSystemTypeEnum.RAILWAYTRACK = { type: 3, value: "RAILWAYTRACK" }; + IfcBuiltSystemTypeEnum.REINFORCING = { type: 3, value: "REINFORCING" }; + IfcBuiltSystemTypeEnum.SHADING = { type: 3, value: "SHADING" }; + IfcBuiltSystemTypeEnum.TRACKCIRCUIT = { type: 3, value: "TRACKCIRCUIT" }; + IfcBuiltSystemTypeEnum.TRANSPORT = { type: 3, value: "TRANSPORT" }; + IfcBuiltSystemTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcBuiltSystemTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcBuiltSystemTypeEnum = IfcBuiltSystemTypeEnum; + class IfcBurnerTypeEnum { + } + IfcBurnerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcBurnerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcBurnerTypeEnum = IfcBurnerTypeEnum; + class IfcCableCarrierFittingTypeEnum { + } + IfcCableCarrierFittingTypeEnum.BEND = { type: 3, value: "BEND" }; + IfcCableCarrierFittingTypeEnum.CONNECTOR = { type: 3, value: "CONNECTOR" }; + IfcCableCarrierFittingTypeEnum.CROSS = { type: 3, value: "CROSS" }; + IfcCableCarrierFittingTypeEnum.JUNCTION = { type: 3, value: "JUNCTION" }; + IfcCableCarrierFittingTypeEnum.TEE = { type: 3, value: "TEE" }; + IfcCableCarrierFittingTypeEnum.TRANSITION = { type: 3, value: "TRANSITION" }; + IfcCableCarrierFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCableCarrierFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcCableCarrierFittingTypeEnum = IfcCableCarrierFittingTypeEnum; + class IfcCableCarrierSegmentTypeEnum { + } + IfcCableCarrierSegmentTypeEnum.CABLEBRACKET = { type: 3, value: "CABLEBRACKET" }; + IfcCableCarrierSegmentTypeEnum.CABLELADDERSEGMENT = { type: 3, value: "CABLELADDERSEGMENT" }; + IfcCableCarrierSegmentTypeEnum.CABLETRAYSEGMENT = { type: 3, value: "CABLETRAYSEGMENT" }; + IfcCableCarrierSegmentTypeEnum.CABLETRUNKINGSEGMENT = { type: 3, value: "CABLETRUNKINGSEGMENT" }; + IfcCableCarrierSegmentTypeEnum.CATENARYWIRE = { type: 3, value: "CATENARYWIRE" }; + IfcCableCarrierSegmentTypeEnum.CONDUITSEGMENT = { type: 3, value: "CONDUITSEGMENT" }; + IfcCableCarrierSegmentTypeEnum.DROPPER = { type: 3, value: "DROPPER" }; + IfcCableCarrierSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCableCarrierSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcCableCarrierSegmentTypeEnum = IfcCableCarrierSegmentTypeEnum; + class IfcCableFittingTypeEnum { + } + IfcCableFittingTypeEnum.CONNECTOR = { type: 3, value: "CONNECTOR" }; + IfcCableFittingTypeEnum.ENTRY = { type: 3, value: "ENTRY" }; + IfcCableFittingTypeEnum.EXIT = { type: 3, value: "EXIT" }; + IfcCableFittingTypeEnum.FANOUT = { type: 3, value: "FANOUT" }; + IfcCableFittingTypeEnum.JUNCTION = { type: 3, value: "JUNCTION" }; + IfcCableFittingTypeEnum.TRANSITION = { type: 3, value: "TRANSITION" }; + IfcCableFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCableFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcCableFittingTypeEnum = IfcCableFittingTypeEnum; + class IfcCableSegmentTypeEnum { + } + IfcCableSegmentTypeEnum.BUSBARSEGMENT = { type: 3, value: "BUSBARSEGMENT" }; + IfcCableSegmentTypeEnum.CABLESEGMENT = { type: 3, value: "CABLESEGMENT" }; + IfcCableSegmentTypeEnum.CONDUCTORSEGMENT = { type: 3, value: "CONDUCTORSEGMENT" }; + IfcCableSegmentTypeEnum.CONTACTWIRESEGMENT = { type: 3, value: "CONTACTWIRESEGMENT" }; + IfcCableSegmentTypeEnum.CORESEGMENT = { type: 3, value: "CORESEGMENT" }; + IfcCableSegmentTypeEnum.FIBERSEGMENT = { type: 3, value: "FIBERSEGMENT" }; + IfcCableSegmentTypeEnum.FIBERTUBE = { type: 3, value: "FIBERTUBE" }; + IfcCableSegmentTypeEnum.OPTICALCABLESEGMENT = { type: 3, value: "OPTICALCABLESEGMENT" }; + IfcCableSegmentTypeEnum.STITCHWIRE = { type: 3, value: "STITCHWIRE" }; + IfcCableSegmentTypeEnum.WIREPAIRSEGMENT = { type: 3, value: "WIREPAIRSEGMENT" }; + IfcCableSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCableSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcCableSegmentTypeEnum = IfcCableSegmentTypeEnum; + class IfcCaissonFoundationTypeEnum { + } + IfcCaissonFoundationTypeEnum.CAISSON = { type: 3, value: "CAISSON" }; + IfcCaissonFoundationTypeEnum.WELL = { type: 3, value: "WELL" }; + IfcCaissonFoundationTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCaissonFoundationTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcCaissonFoundationTypeEnum = IfcCaissonFoundationTypeEnum; + class IfcChangeActionEnum { + } + IfcChangeActionEnum.ADDED = { type: 3, value: "ADDED" }; + IfcChangeActionEnum.DELETED = { type: 3, value: "DELETED" }; + IfcChangeActionEnum.MODIFIED = { type: 3, value: "MODIFIED" }; + IfcChangeActionEnum.NOCHANGE = { type: 3, value: "NOCHANGE" }; + IfcChangeActionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcChangeActionEnum = IfcChangeActionEnum; + class IfcChillerTypeEnum { + } + IfcChillerTypeEnum.AIRCOOLED = { type: 3, value: "AIRCOOLED" }; + IfcChillerTypeEnum.HEATRECOVERY = { type: 3, value: "HEATRECOVERY" }; + IfcChillerTypeEnum.WATERCOOLED = { type: 3, value: "WATERCOOLED" }; + IfcChillerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcChillerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcChillerTypeEnum = IfcChillerTypeEnum; + class IfcChimneyTypeEnum { + } + IfcChimneyTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcChimneyTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcChimneyTypeEnum = IfcChimneyTypeEnum; + class IfcCoilTypeEnum { + } + IfcCoilTypeEnum.DXCOOLINGCOIL = { type: 3, value: "DXCOOLINGCOIL" }; + IfcCoilTypeEnum.ELECTRICHEATINGCOIL = { type: 3, value: "ELECTRICHEATINGCOIL" }; + IfcCoilTypeEnum.GASHEATINGCOIL = { type: 3, value: "GASHEATINGCOIL" }; + IfcCoilTypeEnum.HYDRONICCOIL = { type: 3, value: "HYDRONICCOIL" }; + IfcCoilTypeEnum.STEAMHEATINGCOIL = { type: 3, value: "STEAMHEATINGCOIL" }; + IfcCoilTypeEnum.WATERCOOLINGCOIL = { type: 3, value: "WATERCOOLINGCOIL" }; + IfcCoilTypeEnum.WATERHEATINGCOIL = { type: 3, value: "WATERHEATINGCOIL" }; + IfcCoilTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCoilTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcCoilTypeEnum = IfcCoilTypeEnum; + class IfcColumnTypeEnum { + } + IfcColumnTypeEnum.COLUMN = { type: 3, value: "COLUMN" }; + IfcColumnTypeEnum.PIERSTEM = { type: 3, value: "PIERSTEM" }; + IfcColumnTypeEnum.PIERSTEM_SEGMENT = { type: 3, value: "PIERSTEM_SEGMENT" }; + IfcColumnTypeEnum.PILASTER = { type: 3, value: "PILASTER" }; + IfcColumnTypeEnum.STANDCOLUMN = { type: 3, value: "STANDCOLUMN" }; + IfcColumnTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcColumnTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcColumnTypeEnum = IfcColumnTypeEnum; + class IfcCommunicationsApplianceTypeEnum { + } + IfcCommunicationsApplianceTypeEnum.ANTENNA = { type: 3, value: "ANTENNA" }; + IfcCommunicationsApplianceTypeEnum.AUTOMATON = { type: 3, value: "AUTOMATON" }; + IfcCommunicationsApplianceTypeEnum.COMPUTER = { type: 3, value: "COMPUTER" }; + IfcCommunicationsApplianceTypeEnum.FAX = { type: 3, value: "FAX" }; + IfcCommunicationsApplianceTypeEnum.GATEWAY = { type: 3, value: "GATEWAY" }; + IfcCommunicationsApplianceTypeEnum.INTELLIGENTPERIPHERAL = { type: 3, value: "INTELLIGENTPERIPHERAL" }; + IfcCommunicationsApplianceTypeEnum.IPNETWORKEQUIPMENT = { type: 3, value: "IPNETWORKEQUIPMENT" }; + IfcCommunicationsApplianceTypeEnum.LINESIDEELECTRONICUNIT = { type: 3, value: "LINESIDEELECTRONICUNIT" }; + IfcCommunicationsApplianceTypeEnum.MODEM = { type: 3, value: "MODEM" }; + IfcCommunicationsApplianceTypeEnum.NETWORKAPPLIANCE = { type: 3, value: "NETWORKAPPLIANCE" }; + IfcCommunicationsApplianceTypeEnum.NETWORKBRIDGE = { type: 3, value: "NETWORKBRIDGE" }; + IfcCommunicationsApplianceTypeEnum.NETWORKHUB = { type: 3, value: "NETWORKHUB" }; + IfcCommunicationsApplianceTypeEnum.OPTICALLINETERMINAL = { type: 3, value: "OPTICALLINETERMINAL" }; + IfcCommunicationsApplianceTypeEnum.OPTICALNETWORKUNIT = { type: 3, value: "OPTICALNETWORKUNIT" }; + IfcCommunicationsApplianceTypeEnum.PRINTER = { type: 3, value: "PRINTER" }; + IfcCommunicationsApplianceTypeEnum.RADIOBLOCKCENTER = { type: 3, value: "RADIOBLOCKCENTER" }; + IfcCommunicationsApplianceTypeEnum.REPEATER = { type: 3, value: "REPEATER" }; + IfcCommunicationsApplianceTypeEnum.ROUTER = { type: 3, value: "ROUTER" }; + IfcCommunicationsApplianceTypeEnum.SCANNER = { type: 3, value: "SCANNER" }; + IfcCommunicationsApplianceTypeEnum.TELECOMMAND = { type: 3, value: "TELECOMMAND" }; + IfcCommunicationsApplianceTypeEnum.TELEPHONYEXCHANGE = { type: 3, value: "TELEPHONYEXCHANGE" }; + IfcCommunicationsApplianceTypeEnum.TRANSITIONCOMPONENT = { type: 3, value: "TRANSITIONCOMPONENT" }; + IfcCommunicationsApplianceTypeEnum.TRANSPONDER = { type: 3, value: "TRANSPONDER" }; + IfcCommunicationsApplianceTypeEnum.TRANSPORTEQUIPMENT = { type: 3, value: "TRANSPORTEQUIPMENT" }; + IfcCommunicationsApplianceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCommunicationsApplianceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcCommunicationsApplianceTypeEnum = IfcCommunicationsApplianceTypeEnum; + class IfcComplexPropertyTemplateTypeEnum { + } + IfcComplexPropertyTemplateTypeEnum.P_COMPLEX = { type: 3, value: "P_COMPLEX" }; + IfcComplexPropertyTemplateTypeEnum.Q_COMPLEX = { type: 3, value: "Q_COMPLEX" }; + IFC4X32.IfcComplexPropertyTemplateTypeEnum = IfcComplexPropertyTemplateTypeEnum; + class IfcCompressorTypeEnum { + } + IfcCompressorTypeEnum.BOOSTER = { type: 3, value: "BOOSTER" }; + IfcCompressorTypeEnum.DYNAMIC = { type: 3, value: "DYNAMIC" }; + IfcCompressorTypeEnum.HERMETIC = { type: 3, value: "HERMETIC" }; + IfcCompressorTypeEnum.OPENTYPE = { type: 3, value: "OPENTYPE" }; + IfcCompressorTypeEnum.RECIPROCATING = { type: 3, value: "RECIPROCATING" }; + IfcCompressorTypeEnum.ROLLINGPISTON = { type: 3, value: "ROLLINGPISTON" }; + IfcCompressorTypeEnum.ROTARY = { type: 3, value: "ROTARY" }; + IfcCompressorTypeEnum.ROTARYVANE = { type: 3, value: "ROTARYVANE" }; + IfcCompressorTypeEnum.SCROLL = { type: 3, value: "SCROLL" }; + IfcCompressorTypeEnum.SEMIHERMETIC = { type: 3, value: "SEMIHERMETIC" }; + IfcCompressorTypeEnum.SINGLESCREW = { type: 3, value: "SINGLESCREW" }; + IfcCompressorTypeEnum.SINGLESTAGE = { type: 3, value: "SINGLESTAGE" }; + IfcCompressorTypeEnum.TROCHOIDAL = { type: 3, value: "TROCHOIDAL" }; + IfcCompressorTypeEnum.TWINSCREW = { type: 3, value: "TWINSCREW" }; + IfcCompressorTypeEnum.WELDEDSHELLHERMETIC = { type: 3, value: "WELDEDSHELLHERMETIC" }; + IfcCompressorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCompressorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcCompressorTypeEnum = IfcCompressorTypeEnum; + class IfcCondenserTypeEnum { + } + IfcCondenserTypeEnum.AIRCOOLED = { type: 3, value: "AIRCOOLED" }; + IfcCondenserTypeEnum.EVAPORATIVECOOLED = { type: 3, value: "EVAPORATIVECOOLED" }; + IfcCondenserTypeEnum.WATERCOOLED = { type: 3, value: "WATERCOOLED" }; + IfcCondenserTypeEnum.WATERCOOLEDBRAZEDPLATE = { type: 3, value: "WATERCOOLEDBRAZEDPLATE" }; + IfcCondenserTypeEnum.WATERCOOLEDSHELLCOIL = { type: 3, value: "WATERCOOLEDSHELLCOIL" }; + IfcCondenserTypeEnum.WATERCOOLEDSHELLTUBE = { type: 3, value: "WATERCOOLEDSHELLTUBE" }; + IfcCondenserTypeEnum.WATERCOOLEDTUBEINTUBE = { type: 3, value: "WATERCOOLEDTUBEINTUBE" }; + IfcCondenserTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCondenserTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcCondenserTypeEnum = IfcCondenserTypeEnum; + class IfcConnectionTypeEnum { + } + IfcConnectionTypeEnum.ATEND = { type: 3, value: "ATEND" }; + IfcConnectionTypeEnum.ATPATH = { type: 3, value: "ATPATH" }; + IfcConnectionTypeEnum.ATSTART = { type: 3, value: "ATSTART" }; + IfcConnectionTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcConnectionTypeEnum = IfcConnectionTypeEnum; + class IfcConstraintEnum { + } + IfcConstraintEnum.ADVISORY = { type: 3, value: "ADVISORY" }; + IfcConstraintEnum.HARD = { type: 3, value: "HARD" }; + IfcConstraintEnum.SOFT = { type: 3, value: "SOFT" }; + IfcConstraintEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcConstraintEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcConstraintEnum = IfcConstraintEnum; + class IfcConstructionEquipmentResourceTypeEnum { + } + IfcConstructionEquipmentResourceTypeEnum.DEMOLISHING = { type: 3, value: "DEMOLISHING" }; + IfcConstructionEquipmentResourceTypeEnum.EARTHMOVING = { type: 3, value: "EARTHMOVING" }; + IfcConstructionEquipmentResourceTypeEnum.ERECTING = { type: 3, value: "ERECTING" }; + IfcConstructionEquipmentResourceTypeEnum.HEATING = { type: 3, value: "HEATING" }; + IfcConstructionEquipmentResourceTypeEnum.LIGHTING = { type: 3, value: "LIGHTING" }; + IfcConstructionEquipmentResourceTypeEnum.PAVING = { type: 3, value: "PAVING" }; + IfcConstructionEquipmentResourceTypeEnum.PUMPING = { type: 3, value: "PUMPING" }; + IfcConstructionEquipmentResourceTypeEnum.TRANSPORTING = { type: 3, value: "TRANSPORTING" }; + IfcConstructionEquipmentResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcConstructionEquipmentResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcConstructionEquipmentResourceTypeEnum = IfcConstructionEquipmentResourceTypeEnum; + class IfcConstructionMaterialResourceTypeEnum { + } + IfcConstructionMaterialResourceTypeEnum.AGGREGATES = { type: 3, value: "AGGREGATES" }; + IfcConstructionMaterialResourceTypeEnum.CONCRETE = { type: 3, value: "CONCRETE" }; + IfcConstructionMaterialResourceTypeEnum.DRYWALL = { type: 3, value: "DRYWALL" }; + IfcConstructionMaterialResourceTypeEnum.FUEL = { type: 3, value: "FUEL" }; + IfcConstructionMaterialResourceTypeEnum.GYPSUM = { type: 3, value: "GYPSUM" }; + IfcConstructionMaterialResourceTypeEnum.MASONRY = { type: 3, value: "MASONRY" }; + IfcConstructionMaterialResourceTypeEnum.METAL = { type: 3, value: "METAL" }; + IfcConstructionMaterialResourceTypeEnum.PLASTIC = { type: 3, value: "PLASTIC" }; + IfcConstructionMaterialResourceTypeEnum.WOOD = { type: 3, value: "WOOD" }; + IfcConstructionMaterialResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcConstructionMaterialResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcConstructionMaterialResourceTypeEnum = IfcConstructionMaterialResourceTypeEnum; + class IfcConstructionProductResourceTypeEnum { + } + IfcConstructionProductResourceTypeEnum.ASSEMBLY = { type: 3, value: "ASSEMBLY" }; + IfcConstructionProductResourceTypeEnum.FORMWORK = { type: 3, value: "FORMWORK" }; + IfcConstructionProductResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcConstructionProductResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcConstructionProductResourceTypeEnum = IfcConstructionProductResourceTypeEnum; + class IfcControllerTypeEnum { + } + IfcControllerTypeEnum.FLOATING = { type: 3, value: "FLOATING" }; + IfcControllerTypeEnum.MULTIPOSITION = { type: 3, value: "MULTIPOSITION" }; + IfcControllerTypeEnum.PROGRAMMABLE = { type: 3, value: "PROGRAMMABLE" }; + IfcControllerTypeEnum.PROPORTIONAL = { type: 3, value: "PROPORTIONAL" }; + IfcControllerTypeEnum.TWOPOSITION = { type: 3, value: "TWOPOSITION" }; + IfcControllerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcControllerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcControllerTypeEnum = IfcControllerTypeEnum; + class IfcConveyorSegmentTypeEnum { + } + IfcConveyorSegmentTypeEnum.BELTCONVEYOR = { type: 3, value: "BELTCONVEYOR" }; + IfcConveyorSegmentTypeEnum.BUCKETCONVEYOR = { type: 3, value: "BUCKETCONVEYOR" }; + IfcConveyorSegmentTypeEnum.CHUTECONVEYOR = { type: 3, value: "CHUTECONVEYOR" }; + IfcConveyorSegmentTypeEnum.SCREWCONVEYOR = { type: 3, value: "SCREWCONVEYOR" }; + IfcConveyorSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcConveyorSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcConveyorSegmentTypeEnum = IfcConveyorSegmentTypeEnum; + class IfcCooledBeamTypeEnum { + } + IfcCooledBeamTypeEnum.ACTIVE = { type: 3, value: "ACTIVE" }; + IfcCooledBeamTypeEnum.PASSIVE = { type: 3, value: "PASSIVE" }; + IfcCooledBeamTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCooledBeamTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcCooledBeamTypeEnum = IfcCooledBeamTypeEnum; + class IfcCoolingTowerTypeEnum { + } + IfcCoolingTowerTypeEnum.MECHANICALFORCEDDRAFT = { type: 3, value: "MECHANICALFORCEDDRAFT" }; + IfcCoolingTowerTypeEnum.MECHANICALINDUCEDDRAFT = { type: 3, value: "MECHANICALINDUCEDDRAFT" }; + IfcCoolingTowerTypeEnum.NATURALDRAFT = { type: 3, value: "NATURALDRAFT" }; + IfcCoolingTowerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCoolingTowerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcCoolingTowerTypeEnum = IfcCoolingTowerTypeEnum; + class IfcCostItemTypeEnum { + } + IfcCostItemTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCostItemTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcCostItemTypeEnum = IfcCostItemTypeEnum; + class IfcCostScheduleTypeEnum { + } + IfcCostScheduleTypeEnum.BUDGET = { type: 3, value: "BUDGET" }; + IfcCostScheduleTypeEnum.COSTPLAN = { type: 3, value: "COSTPLAN" }; + IfcCostScheduleTypeEnum.ESTIMATE = { type: 3, value: "ESTIMATE" }; + IfcCostScheduleTypeEnum.PRICEDBILLOFQUANTITIES = { type: 3, value: "PRICEDBILLOFQUANTITIES" }; + IfcCostScheduleTypeEnum.SCHEDULEOFRATES = { type: 3, value: "SCHEDULEOFRATES" }; + IfcCostScheduleTypeEnum.TENDER = { type: 3, value: "TENDER" }; + IfcCostScheduleTypeEnum.UNPRICEDBILLOFQUANTITIES = { type: 3, value: "UNPRICEDBILLOFQUANTITIES" }; + IfcCostScheduleTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCostScheduleTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcCostScheduleTypeEnum = IfcCostScheduleTypeEnum; + class IfcCourseTypeEnum { + } + IfcCourseTypeEnum.ARMOUR = { type: 3, value: "ARMOUR" }; + IfcCourseTypeEnum.BALLASTBED = { type: 3, value: "BALLASTBED" }; + IfcCourseTypeEnum.CORE = { type: 3, value: "CORE" }; + IfcCourseTypeEnum.FILTER = { type: 3, value: "FILTER" }; + IfcCourseTypeEnum.PAVEMENT = { type: 3, value: "PAVEMENT" }; + IfcCourseTypeEnum.PROTECTION = { type: 3, value: "PROTECTION" }; + IfcCourseTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCourseTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcCourseTypeEnum = IfcCourseTypeEnum; + class IfcCoveringTypeEnum { + } + IfcCoveringTypeEnum.CEILING = { type: 3, value: "CEILING" }; + IfcCoveringTypeEnum.CLADDING = { type: 3, value: "CLADDING" }; + IfcCoveringTypeEnum.COPING = { type: 3, value: "COPING" }; + IfcCoveringTypeEnum.FLOORING = { type: 3, value: "FLOORING" }; + IfcCoveringTypeEnum.INSULATION = { type: 3, value: "INSULATION" }; + IfcCoveringTypeEnum.MEMBRANE = { type: 3, value: "MEMBRANE" }; + IfcCoveringTypeEnum.MOLDING = { type: 3, value: "MOLDING" }; + IfcCoveringTypeEnum.ROOFING = { type: 3, value: "ROOFING" }; + IfcCoveringTypeEnum.SKIRTINGBOARD = { type: 3, value: "SKIRTINGBOARD" }; + IfcCoveringTypeEnum.SLEEVING = { type: 3, value: "SLEEVING" }; + IfcCoveringTypeEnum.TOPPING = { type: 3, value: "TOPPING" }; + IfcCoveringTypeEnum.WRAPPING = { type: 3, value: "WRAPPING" }; + IfcCoveringTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCoveringTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcCoveringTypeEnum = IfcCoveringTypeEnum; + class IfcCrewResourceTypeEnum { + } + IfcCrewResourceTypeEnum.OFFICE = { type: 3, value: "OFFICE" }; + IfcCrewResourceTypeEnum.SITE = { type: 3, value: "SITE" }; + IfcCrewResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCrewResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcCrewResourceTypeEnum = IfcCrewResourceTypeEnum; + class IfcCurtainWallTypeEnum { + } + IfcCurtainWallTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcCurtainWallTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcCurtainWallTypeEnum = IfcCurtainWallTypeEnum; + class IfcCurveInterpolationEnum { + } + IfcCurveInterpolationEnum.LINEAR = { type: 3, value: "LINEAR" }; + IfcCurveInterpolationEnum.LOG_LINEAR = { type: 3, value: "LOG_LINEAR" }; + IfcCurveInterpolationEnum.LOG_LOG = { type: 3, value: "LOG_LOG" }; + IfcCurveInterpolationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcCurveInterpolationEnum = IfcCurveInterpolationEnum; + class IfcDamperTypeEnum { + } + IfcDamperTypeEnum.BACKDRAFTDAMPER = { type: 3, value: "BACKDRAFTDAMPER" }; + IfcDamperTypeEnum.BALANCINGDAMPER = { type: 3, value: "BALANCINGDAMPER" }; + IfcDamperTypeEnum.BLASTDAMPER = { type: 3, value: "BLASTDAMPER" }; + IfcDamperTypeEnum.CONTROLDAMPER = { type: 3, value: "CONTROLDAMPER" }; + IfcDamperTypeEnum.FIREDAMPER = { type: 3, value: "FIREDAMPER" }; + IfcDamperTypeEnum.FIRESMOKEDAMPER = { type: 3, value: "FIRESMOKEDAMPER" }; + IfcDamperTypeEnum.FUMEHOODEXHAUST = { type: 3, value: "FUMEHOODEXHAUST" }; + IfcDamperTypeEnum.GRAVITYDAMPER = { type: 3, value: "GRAVITYDAMPER" }; + IfcDamperTypeEnum.GRAVITYRELIEFDAMPER = { type: 3, value: "GRAVITYRELIEFDAMPER" }; + IfcDamperTypeEnum.RELIEFDAMPER = { type: 3, value: "RELIEFDAMPER" }; + IfcDamperTypeEnum.SMOKEDAMPER = { type: 3, value: "SMOKEDAMPER" }; + IfcDamperTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDamperTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcDamperTypeEnum = IfcDamperTypeEnum; + class IfcDataOriginEnum { + } + IfcDataOriginEnum.MEASURED = { type: 3, value: "MEASURED" }; + IfcDataOriginEnum.PREDICTED = { type: 3, value: "PREDICTED" }; + IfcDataOriginEnum.SIMULATED = { type: 3, value: "SIMULATED" }; + IfcDataOriginEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDataOriginEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcDataOriginEnum = IfcDataOriginEnum; + class IfcDerivedUnitEnum { + } + IfcDerivedUnitEnum.ACCELERATIONUNIT = { type: 3, value: "ACCELERATIONUNIT" }; + IfcDerivedUnitEnum.ANGULARVELOCITYUNIT = { type: 3, value: "ANGULARVELOCITYUNIT" }; + IfcDerivedUnitEnum.AREADENSITYUNIT = { type: 3, value: "AREADENSITYUNIT" }; + IfcDerivedUnitEnum.COMPOUNDPLANEANGLEUNIT = { type: 3, value: "COMPOUNDPLANEANGLEUNIT" }; + IfcDerivedUnitEnum.CURVATUREUNIT = { type: 3, value: "CURVATUREUNIT" }; + IfcDerivedUnitEnum.DYNAMICVISCOSITYUNIT = { type: 3, value: "DYNAMICVISCOSITYUNIT" }; + IfcDerivedUnitEnum.HEATFLUXDENSITYUNIT = { type: 3, value: "HEATFLUXDENSITYUNIT" }; + IfcDerivedUnitEnum.HEATINGVALUEUNIT = { type: 3, value: "HEATINGVALUEUNIT" }; + IfcDerivedUnitEnum.INTEGERCOUNTRATEUNIT = { type: 3, value: "INTEGERCOUNTRATEUNIT" }; + IfcDerivedUnitEnum.IONCONCENTRATIONUNIT = { type: 3, value: "IONCONCENTRATIONUNIT" }; + IfcDerivedUnitEnum.ISOTHERMALMOISTURECAPACITYUNIT = { type: 3, value: "ISOTHERMALMOISTURECAPACITYUNIT" }; + IfcDerivedUnitEnum.KINEMATICVISCOSITYUNIT = { type: 3, value: "KINEMATICVISCOSITYUNIT" }; + IfcDerivedUnitEnum.LINEARFORCEUNIT = { type: 3, value: "LINEARFORCEUNIT" }; + IfcDerivedUnitEnum.LINEARMOMENTUNIT = { type: 3, value: "LINEARMOMENTUNIT" }; + IfcDerivedUnitEnum.LINEARSTIFFNESSUNIT = { type: 3, value: "LINEARSTIFFNESSUNIT" }; + IfcDerivedUnitEnum.LINEARVELOCITYUNIT = { type: 3, value: "LINEARVELOCITYUNIT" }; + IfcDerivedUnitEnum.LUMINOUSINTENSITYDISTRIBUTIONUNIT = { type: 3, value: "LUMINOUSINTENSITYDISTRIBUTIONUNIT" }; + IfcDerivedUnitEnum.MASSDENSITYUNIT = { type: 3, value: "MASSDENSITYUNIT" }; + IfcDerivedUnitEnum.MASSFLOWRATEUNIT = { type: 3, value: "MASSFLOWRATEUNIT" }; + IfcDerivedUnitEnum.MASSPERLENGTHUNIT = { type: 3, value: "MASSPERLENGTHUNIT" }; + IfcDerivedUnitEnum.MODULUSOFELASTICITYUNIT = { type: 3, value: "MODULUSOFELASTICITYUNIT" }; + IfcDerivedUnitEnum.MODULUSOFLINEARSUBGRADEREACTIONUNIT = { type: 3, value: "MODULUSOFLINEARSUBGRADEREACTIONUNIT" }; + IfcDerivedUnitEnum.MODULUSOFROTATIONALSUBGRADEREACTIONUNIT = { type: 3, value: "MODULUSOFROTATIONALSUBGRADEREACTIONUNIT" }; + IfcDerivedUnitEnum.MODULUSOFSUBGRADEREACTIONUNIT = { type: 3, value: "MODULUSOFSUBGRADEREACTIONUNIT" }; + IfcDerivedUnitEnum.MOISTUREDIFFUSIVITYUNIT = { type: 3, value: "MOISTUREDIFFUSIVITYUNIT" }; + IfcDerivedUnitEnum.MOLECULARWEIGHTUNIT = { type: 3, value: "MOLECULARWEIGHTUNIT" }; + IfcDerivedUnitEnum.MOMENTOFINERTIAUNIT = { type: 3, value: "MOMENTOFINERTIAUNIT" }; + IfcDerivedUnitEnum.PHUNIT = { type: 3, value: "PHUNIT" }; + IfcDerivedUnitEnum.PLANARFORCEUNIT = { type: 3, value: "PLANARFORCEUNIT" }; + IfcDerivedUnitEnum.ROTATIONALFREQUENCYUNIT = { type: 3, value: "ROTATIONALFREQUENCYUNIT" }; + IfcDerivedUnitEnum.ROTATIONALMASSUNIT = { type: 3, value: "ROTATIONALMASSUNIT" }; + IfcDerivedUnitEnum.ROTATIONALSTIFFNESSUNIT = { type: 3, value: "ROTATIONALSTIFFNESSUNIT" }; + IfcDerivedUnitEnum.SECTIONAREAINTEGRALUNIT = { type: 3, value: "SECTIONAREAINTEGRALUNIT" }; + IfcDerivedUnitEnum.SECTIONMODULUSUNIT = { type: 3, value: "SECTIONMODULUSUNIT" }; + IfcDerivedUnitEnum.SHEARMODULUSUNIT = { type: 3, value: "SHEARMODULUSUNIT" }; + IfcDerivedUnitEnum.SOUNDPOWERLEVELUNIT = { type: 3, value: "SOUNDPOWERLEVELUNIT" }; + IfcDerivedUnitEnum.SOUNDPOWERUNIT = { type: 3, value: "SOUNDPOWERUNIT" }; + IfcDerivedUnitEnum.SOUNDPRESSURELEVELUNIT = { type: 3, value: "SOUNDPRESSURELEVELUNIT" }; + IfcDerivedUnitEnum.SOUNDPRESSUREUNIT = { type: 3, value: "SOUNDPRESSUREUNIT" }; + IfcDerivedUnitEnum.SPECIFICHEATCAPACITYUNIT = { type: 3, value: "SPECIFICHEATCAPACITYUNIT" }; + IfcDerivedUnitEnum.TEMPERATUREGRADIENTUNIT = { type: 3, value: "TEMPERATUREGRADIENTUNIT" }; + IfcDerivedUnitEnum.TEMPERATURERATEOFCHANGEUNIT = { type: 3, value: "TEMPERATURERATEOFCHANGEUNIT" }; + IfcDerivedUnitEnum.THERMALADMITTANCEUNIT = { type: 3, value: "THERMALADMITTANCEUNIT" }; + IfcDerivedUnitEnum.THERMALCONDUCTANCEUNIT = { type: 3, value: "THERMALCONDUCTANCEUNIT" }; + IfcDerivedUnitEnum.THERMALEXPANSIONCOEFFICIENTUNIT = { type: 3, value: "THERMALEXPANSIONCOEFFICIENTUNIT" }; + IfcDerivedUnitEnum.THERMALRESISTANCEUNIT = { type: 3, value: "THERMALRESISTANCEUNIT" }; + IfcDerivedUnitEnum.THERMALTRANSMITTANCEUNIT = { type: 3, value: "THERMALTRANSMITTANCEUNIT" }; + IfcDerivedUnitEnum.TORQUEUNIT = { type: 3, value: "TORQUEUNIT" }; + IfcDerivedUnitEnum.VAPORPERMEABILITYUNIT = { type: 3, value: "VAPORPERMEABILITYUNIT" }; + IfcDerivedUnitEnum.VOLUMETRICFLOWRATEUNIT = { type: 3, value: "VOLUMETRICFLOWRATEUNIT" }; + IfcDerivedUnitEnum.WARPINGCONSTANTUNIT = { type: 3, value: "WARPINGCONSTANTUNIT" }; + IfcDerivedUnitEnum.WARPINGMOMENTUNIT = { type: 3, value: "WARPINGMOMENTUNIT" }; + IfcDerivedUnitEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IFC4X32.IfcDerivedUnitEnum = IfcDerivedUnitEnum; + class IfcDirectionSenseEnum { + } + IfcDirectionSenseEnum.NEGATIVE = { type: 3, value: "NEGATIVE" }; + IfcDirectionSenseEnum.POSITIVE = { type: 3, value: "POSITIVE" }; + IFC4X32.IfcDirectionSenseEnum = IfcDirectionSenseEnum; + class IfcDiscreteAccessoryTypeEnum { + } + IfcDiscreteAccessoryTypeEnum.ANCHORPLATE = { type: 3, value: "ANCHORPLATE" }; + IfcDiscreteAccessoryTypeEnum.BIRDPROTECTION = { type: 3, value: "BIRDPROTECTION" }; + IfcDiscreteAccessoryTypeEnum.BRACKET = { type: 3, value: "BRACKET" }; + IfcDiscreteAccessoryTypeEnum.CABLEARRANGER = { type: 3, value: "CABLEARRANGER" }; + IfcDiscreteAccessoryTypeEnum.ELASTIC_CUSHION = { type: 3, value: "ELASTIC_CUSHION" }; + IfcDiscreteAccessoryTypeEnum.EXPANSION_JOINT_DEVICE = { type: 3, value: "EXPANSION_JOINT_DEVICE" }; + IfcDiscreteAccessoryTypeEnum.FILLER = { type: 3, value: "FILLER" }; + IfcDiscreteAccessoryTypeEnum.FLASHING = { type: 3, value: "FLASHING" }; + IfcDiscreteAccessoryTypeEnum.INSULATOR = { type: 3, value: "INSULATOR" }; + IfcDiscreteAccessoryTypeEnum.LOCK = { type: 3, value: "LOCK" }; + IfcDiscreteAccessoryTypeEnum.PANEL_STRENGTHENING = { type: 3, value: "PANEL_STRENGTHENING" }; + IfcDiscreteAccessoryTypeEnum.POINTMACHINEMOUNTINGDEVICE = { type: 3, value: "POINTMACHINEMOUNTINGDEVICE" }; + IfcDiscreteAccessoryTypeEnum.POINT_MACHINE_LOCKING_DEVICE = { type: 3, value: "POINT_MACHINE_LOCKING_DEVICE" }; + IfcDiscreteAccessoryTypeEnum.RAILBRACE = { type: 3, value: "RAILBRACE" }; + IfcDiscreteAccessoryTypeEnum.RAILPAD = { type: 3, value: "RAILPAD" }; + IfcDiscreteAccessoryTypeEnum.RAIL_LUBRICATION = { type: 3, value: "RAIL_LUBRICATION" }; + IfcDiscreteAccessoryTypeEnum.RAIL_MECHANICAL_EQUIPMENT = { type: 3, value: "RAIL_MECHANICAL_EQUIPMENT" }; + IfcDiscreteAccessoryTypeEnum.SHOE = { type: 3, value: "SHOE" }; + IfcDiscreteAccessoryTypeEnum.SLIDINGCHAIR = { type: 3, value: "SLIDINGCHAIR" }; + IfcDiscreteAccessoryTypeEnum.SOUNDABSORPTION = { type: 3, value: "SOUNDABSORPTION" }; + IfcDiscreteAccessoryTypeEnum.TENSIONINGEQUIPMENT = { type: 3, value: "TENSIONINGEQUIPMENT" }; + IfcDiscreteAccessoryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDiscreteAccessoryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcDiscreteAccessoryTypeEnum = IfcDiscreteAccessoryTypeEnum; + class IfcDistributionBoardTypeEnum { + } + IfcDistributionBoardTypeEnum.CONSUMERUNIT = { type: 3, value: "CONSUMERUNIT" }; + IfcDistributionBoardTypeEnum.DISPATCHINGBOARD = { type: 3, value: "DISPATCHINGBOARD" }; + IfcDistributionBoardTypeEnum.DISTRIBUTIONBOARD = { type: 3, value: "DISTRIBUTIONBOARD" }; + IfcDistributionBoardTypeEnum.DISTRIBUTIONFRAME = { type: 3, value: "DISTRIBUTIONFRAME" }; + IfcDistributionBoardTypeEnum.MOTORCONTROLCENTRE = { type: 3, value: "MOTORCONTROLCENTRE" }; + IfcDistributionBoardTypeEnum.SWITCHBOARD = { type: 3, value: "SWITCHBOARD" }; + IfcDistributionBoardTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDistributionBoardTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcDistributionBoardTypeEnum = IfcDistributionBoardTypeEnum; + class IfcDistributionChamberElementTypeEnum { + } + IfcDistributionChamberElementTypeEnum.FORMEDDUCT = { type: 3, value: "FORMEDDUCT" }; + IfcDistributionChamberElementTypeEnum.INSPECTIONCHAMBER = { type: 3, value: "INSPECTIONCHAMBER" }; + IfcDistributionChamberElementTypeEnum.INSPECTIONPIT = { type: 3, value: "INSPECTIONPIT" }; + IfcDistributionChamberElementTypeEnum.MANHOLE = { type: 3, value: "MANHOLE" }; + IfcDistributionChamberElementTypeEnum.METERCHAMBER = { type: 3, value: "METERCHAMBER" }; + IfcDistributionChamberElementTypeEnum.SUMP = { type: 3, value: "SUMP" }; + IfcDistributionChamberElementTypeEnum.TRENCH = { type: 3, value: "TRENCH" }; + IfcDistributionChamberElementTypeEnum.VALVECHAMBER = { type: 3, value: "VALVECHAMBER" }; + IfcDistributionChamberElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDistributionChamberElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcDistributionChamberElementTypeEnum = IfcDistributionChamberElementTypeEnum; + class IfcDistributionPortTypeEnum { + } + IfcDistributionPortTypeEnum.CABLE = { type: 3, value: "CABLE" }; + IfcDistributionPortTypeEnum.CABLECARRIER = { type: 3, value: "CABLECARRIER" }; + IfcDistributionPortTypeEnum.DUCT = { type: 3, value: "DUCT" }; + IfcDistributionPortTypeEnum.PIPE = { type: 3, value: "PIPE" }; + IfcDistributionPortTypeEnum.WIRELESS = { type: 3, value: "WIRELESS" }; + IfcDistributionPortTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDistributionPortTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcDistributionPortTypeEnum = IfcDistributionPortTypeEnum; + class IfcDistributionSystemEnum { + } + IfcDistributionSystemEnum.AIRCONDITIONING = { type: 3, value: "AIRCONDITIONING" }; + IfcDistributionSystemEnum.AUDIOVISUAL = { type: 3, value: "AUDIOVISUAL" }; + IfcDistributionSystemEnum.CATENARY_SYSTEM = { type: 3, value: "CATENARY_SYSTEM" }; + IfcDistributionSystemEnum.CHEMICAL = { type: 3, value: "CHEMICAL" }; + IfcDistributionSystemEnum.CHILLEDWATER = { type: 3, value: "CHILLEDWATER" }; + IfcDistributionSystemEnum.COMMUNICATION = { type: 3, value: "COMMUNICATION" }; + IfcDistributionSystemEnum.COMPRESSEDAIR = { type: 3, value: "COMPRESSEDAIR" }; + IfcDistributionSystemEnum.CONDENSERWATER = { type: 3, value: "CONDENSERWATER" }; + IfcDistributionSystemEnum.CONTROL = { type: 3, value: "CONTROL" }; + IfcDistributionSystemEnum.CONVEYING = { type: 3, value: "CONVEYING" }; + IfcDistributionSystemEnum.DATA = { type: 3, value: "DATA" }; + IfcDistributionSystemEnum.DISPOSAL = { type: 3, value: "DISPOSAL" }; + IfcDistributionSystemEnum.DOMESTICCOLDWATER = { type: 3, value: "DOMESTICCOLDWATER" }; + IfcDistributionSystemEnum.DOMESTICHOTWATER = { type: 3, value: "DOMESTICHOTWATER" }; + IfcDistributionSystemEnum.DRAINAGE = { type: 3, value: "DRAINAGE" }; + IfcDistributionSystemEnum.EARTHING = { type: 3, value: "EARTHING" }; + IfcDistributionSystemEnum.ELECTRICAL = { type: 3, value: "ELECTRICAL" }; + IfcDistributionSystemEnum.ELECTROACOUSTIC = { type: 3, value: "ELECTROACOUSTIC" }; + IfcDistributionSystemEnum.EXHAUST = { type: 3, value: "EXHAUST" }; + IfcDistributionSystemEnum.FIREPROTECTION = { type: 3, value: "FIREPROTECTION" }; + IfcDistributionSystemEnum.FIXEDTRANSMISSIONNETWORK = { type: 3, value: "FIXEDTRANSMISSIONNETWORK" }; + IfcDistributionSystemEnum.FUEL = { type: 3, value: "FUEL" }; + IfcDistributionSystemEnum.GAS = { type: 3, value: "GAS" }; + IfcDistributionSystemEnum.HAZARDOUS = { type: 3, value: "HAZARDOUS" }; + IfcDistributionSystemEnum.HEATING = { type: 3, value: "HEATING" }; + IfcDistributionSystemEnum.LIGHTING = { type: 3, value: "LIGHTING" }; + IfcDistributionSystemEnum.LIGHTNINGPROTECTION = { type: 3, value: "LIGHTNINGPROTECTION" }; + IfcDistributionSystemEnum.MOBILENETWORK = { type: 3, value: "MOBILENETWORK" }; + IfcDistributionSystemEnum.MONITORINGSYSTEM = { type: 3, value: "MONITORINGSYSTEM" }; + IfcDistributionSystemEnum.MUNICIPALSOLIDWASTE = { type: 3, value: "MUNICIPALSOLIDWASTE" }; + IfcDistributionSystemEnum.OIL = { type: 3, value: "OIL" }; + IfcDistributionSystemEnum.OPERATIONAL = { type: 3, value: "OPERATIONAL" }; + IfcDistributionSystemEnum.OPERATIONALTELEPHONYSYSTEM = { type: 3, value: "OPERATIONALTELEPHONYSYSTEM" }; + IfcDistributionSystemEnum.OVERHEAD_CONTACTLINE_SYSTEM = { type: 3, value: "OVERHEAD_CONTACTLINE_SYSTEM" }; + IfcDistributionSystemEnum.POWERGENERATION = { type: 3, value: "POWERGENERATION" }; + IfcDistributionSystemEnum.RAINWATER = { type: 3, value: "RAINWATER" }; + IfcDistributionSystemEnum.REFRIGERATION = { type: 3, value: "REFRIGERATION" }; + IfcDistributionSystemEnum.RETURN_CIRCUIT = { type: 3, value: "RETURN_CIRCUIT" }; + IfcDistributionSystemEnum.SECURITY = { type: 3, value: "SECURITY" }; + IfcDistributionSystemEnum.SEWAGE = { type: 3, value: "SEWAGE" }; + IfcDistributionSystemEnum.SIGNAL = { type: 3, value: "SIGNAL" }; + IfcDistributionSystemEnum.STORMWATER = { type: 3, value: "STORMWATER" }; + IfcDistributionSystemEnum.TELEPHONE = { type: 3, value: "TELEPHONE" }; + IfcDistributionSystemEnum.TV = { type: 3, value: "TV" }; + IfcDistributionSystemEnum.VACUUM = { type: 3, value: "VACUUM" }; + IfcDistributionSystemEnum.VENT = { type: 3, value: "VENT" }; + IfcDistributionSystemEnum.VENTILATION = { type: 3, value: "VENTILATION" }; + IfcDistributionSystemEnum.WASTEWATER = { type: 3, value: "WASTEWATER" }; + IfcDistributionSystemEnum.WATERSUPPLY = { type: 3, value: "WATERSUPPLY" }; + IfcDistributionSystemEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDistributionSystemEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcDistributionSystemEnum = IfcDistributionSystemEnum; + class IfcDocumentConfidentialityEnum { + } + IfcDocumentConfidentialityEnum.CONFIDENTIAL = { type: 3, value: "CONFIDENTIAL" }; + IfcDocumentConfidentialityEnum.PERSONAL = { type: 3, value: "PERSONAL" }; + IfcDocumentConfidentialityEnum.PUBLIC = { type: 3, value: "PUBLIC" }; + IfcDocumentConfidentialityEnum.RESTRICTED = { type: 3, value: "RESTRICTED" }; + IfcDocumentConfidentialityEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDocumentConfidentialityEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcDocumentConfidentialityEnum = IfcDocumentConfidentialityEnum; + class IfcDocumentStatusEnum { + } + IfcDocumentStatusEnum.DRAFT = { type: 3, value: "DRAFT" }; + IfcDocumentStatusEnum.FINAL = { type: 3, value: "FINAL" }; + IfcDocumentStatusEnum.FINALDRAFT = { type: 3, value: "FINALDRAFT" }; + IfcDocumentStatusEnum.REVISION = { type: 3, value: "REVISION" }; + IfcDocumentStatusEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcDocumentStatusEnum = IfcDocumentStatusEnum; + class IfcDoorPanelOperationEnum { + } + IfcDoorPanelOperationEnum.DOUBLE_ACTING = { type: 3, value: "DOUBLE_ACTING" }; + IfcDoorPanelOperationEnum.FIXEDPANEL = { type: 3, value: "FIXEDPANEL" }; + IfcDoorPanelOperationEnum.FOLDING = { type: 3, value: "FOLDING" }; + IfcDoorPanelOperationEnum.REVOLVING = { type: 3, value: "REVOLVING" }; + IfcDoorPanelOperationEnum.ROLLINGUP = { type: 3, value: "ROLLINGUP" }; + IfcDoorPanelOperationEnum.SLIDING = { type: 3, value: "SLIDING" }; + IfcDoorPanelOperationEnum.SWINGING = { type: 3, value: "SWINGING" }; + IfcDoorPanelOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDoorPanelOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcDoorPanelOperationEnum = IfcDoorPanelOperationEnum; + class IfcDoorPanelPositionEnum { + } + IfcDoorPanelPositionEnum.LEFT = { type: 3, value: "LEFT" }; + IfcDoorPanelPositionEnum.MIDDLE = { type: 3, value: "MIDDLE" }; + IfcDoorPanelPositionEnum.RIGHT = { type: 3, value: "RIGHT" }; + IfcDoorPanelPositionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcDoorPanelPositionEnum = IfcDoorPanelPositionEnum; + class IfcDoorStyleConstructionEnum { + } + IfcDoorStyleConstructionEnum.ALUMINIUM = { type: 3, value: "ALUMINIUM" }; + IfcDoorStyleConstructionEnum.ALUMINIUM_PLASTIC = { type: 3, value: "ALUMINIUM_PLASTIC" }; + IfcDoorStyleConstructionEnum.ALUMINIUM_WOOD = { type: 3, value: "ALUMINIUM_WOOD" }; + IfcDoorStyleConstructionEnum.HIGH_GRADE_STEEL = { type: 3, value: "HIGH_GRADE_STEEL" }; + IfcDoorStyleConstructionEnum.PLASTIC = { type: 3, value: "PLASTIC" }; + IfcDoorStyleConstructionEnum.STEEL = { type: 3, value: "STEEL" }; + IfcDoorStyleConstructionEnum.WOOD = { type: 3, value: "WOOD" }; + IfcDoorStyleConstructionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDoorStyleConstructionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcDoorStyleConstructionEnum = IfcDoorStyleConstructionEnum; + class IfcDoorStyleOperationEnum { + } + IfcDoorStyleOperationEnum.DOUBLE_DOOR_DOUBLE_SWING = { type: 3, value: "DOUBLE_DOOR_DOUBLE_SWING" }; + IfcDoorStyleOperationEnum.DOUBLE_DOOR_FOLDING = { type: 3, value: "DOUBLE_DOOR_FOLDING" }; + IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING" }; + IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT" }; + IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT" }; + IfcDoorStyleOperationEnum.DOUBLE_DOOR_SLIDING = { type: 3, value: "DOUBLE_DOOR_SLIDING" }; + IfcDoorStyleOperationEnum.DOUBLE_SWING_LEFT = { type: 3, value: "DOUBLE_SWING_LEFT" }; + IfcDoorStyleOperationEnum.DOUBLE_SWING_RIGHT = { type: 3, value: "DOUBLE_SWING_RIGHT" }; + IfcDoorStyleOperationEnum.FOLDING_TO_LEFT = { type: 3, value: "FOLDING_TO_LEFT" }; + IfcDoorStyleOperationEnum.FOLDING_TO_RIGHT = { type: 3, value: "FOLDING_TO_RIGHT" }; + IfcDoorStyleOperationEnum.REVOLVING = { type: 3, value: "REVOLVING" }; + IfcDoorStyleOperationEnum.ROLLINGUP = { type: 3, value: "ROLLINGUP" }; + IfcDoorStyleOperationEnum.SINGLE_SWING_LEFT = { type: 3, value: "SINGLE_SWING_LEFT" }; + IfcDoorStyleOperationEnum.SINGLE_SWING_RIGHT = { type: 3, value: "SINGLE_SWING_RIGHT" }; + IfcDoorStyleOperationEnum.SLIDING_TO_LEFT = { type: 3, value: "SLIDING_TO_LEFT" }; + IfcDoorStyleOperationEnum.SLIDING_TO_RIGHT = { type: 3, value: "SLIDING_TO_RIGHT" }; + IfcDoorStyleOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDoorStyleOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcDoorStyleOperationEnum = IfcDoorStyleOperationEnum; + class IfcDoorTypeEnum { + } + IfcDoorTypeEnum.BOOM_BARRIER = { type: 3, value: "BOOM_BARRIER" }; + IfcDoorTypeEnum.DOOR = { type: 3, value: "DOOR" }; + IfcDoorTypeEnum.GATE = { type: 3, value: "GATE" }; + IfcDoorTypeEnum.TRAPDOOR = { type: 3, value: "TRAPDOOR" }; + IfcDoorTypeEnum.TURNSTILE = { type: 3, value: "TURNSTILE" }; + IfcDoorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDoorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcDoorTypeEnum = IfcDoorTypeEnum; + class IfcDoorTypeOperationEnum { + } + IfcDoorTypeOperationEnum.DOUBLE_PANEL_DOUBLE_SWING = { type: 3, value: "DOUBLE_PANEL_DOUBLE_SWING" }; + IfcDoorTypeOperationEnum.DOUBLE_PANEL_FOLDING = { type: 3, value: "DOUBLE_PANEL_FOLDING" }; + IfcDoorTypeOperationEnum.DOUBLE_PANEL_LIFTING_VERTICAL = { type: 3, value: "DOUBLE_PANEL_LIFTING_VERTICAL" }; + IfcDoorTypeOperationEnum.DOUBLE_PANEL_SINGLE_SWING = { type: 3, value: "DOUBLE_PANEL_SINGLE_SWING" }; + IfcDoorTypeOperationEnum.DOUBLE_PANEL_SINGLE_SWING_OPPOSITE_LEFT = { type: 3, value: "DOUBLE_PANEL_SINGLE_SWING_OPPOSITE_LEFT" }; + IfcDoorTypeOperationEnum.DOUBLE_PANEL_SINGLE_SWING_OPPOSITE_RIGHT = { type: 3, value: "DOUBLE_PANEL_SINGLE_SWING_OPPOSITE_RIGHT" }; + IfcDoorTypeOperationEnum.DOUBLE_PANEL_SLIDING = { type: 3, value: "DOUBLE_PANEL_SLIDING" }; + IfcDoorTypeOperationEnum.DOUBLE_SWING_LEFT = { type: 3, value: "DOUBLE_SWING_LEFT" }; + IfcDoorTypeOperationEnum.DOUBLE_SWING_RIGHT = { type: 3, value: "DOUBLE_SWING_RIGHT" }; + IfcDoorTypeOperationEnum.FOLDING_TO_LEFT = { type: 3, value: "FOLDING_TO_LEFT" }; + IfcDoorTypeOperationEnum.FOLDING_TO_RIGHT = { type: 3, value: "FOLDING_TO_RIGHT" }; + IfcDoorTypeOperationEnum.LIFTING_HORIZONTAL = { type: 3, value: "LIFTING_HORIZONTAL" }; + IfcDoorTypeOperationEnum.LIFTING_VERTICAL_LEFT = { type: 3, value: "LIFTING_VERTICAL_LEFT" }; + IfcDoorTypeOperationEnum.LIFTING_VERTICAL_RIGHT = { type: 3, value: "LIFTING_VERTICAL_RIGHT" }; + IfcDoorTypeOperationEnum.REVOLVING_HORIZONTAL = { type: 3, value: "REVOLVING_HORIZONTAL" }; + IfcDoorTypeOperationEnum.REVOLVING_VERTICAL = { type: 3, value: "REVOLVING_VERTICAL" }; + IfcDoorTypeOperationEnum.ROLLINGUP = { type: 3, value: "ROLLINGUP" }; + IfcDoorTypeOperationEnum.SINGLE_SWING_LEFT = { type: 3, value: "SINGLE_SWING_LEFT" }; + IfcDoorTypeOperationEnum.SINGLE_SWING_RIGHT = { type: 3, value: "SINGLE_SWING_RIGHT" }; + IfcDoorTypeOperationEnum.SLIDING_TO_LEFT = { type: 3, value: "SLIDING_TO_LEFT" }; + IfcDoorTypeOperationEnum.SLIDING_TO_RIGHT = { type: 3, value: "SLIDING_TO_RIGHT" }; + IfcDoorTypeOperationEnum.SWING_FIXED_LEFT = { type: 3, value: "SWING_FIXED_LEFT" }; + IfcDoorTypeOperationEnum.SWING_FIXED_RIGHT = { type: 3, value: "SWING_FIXED_RIGHT" }; + IfcDoorTypeOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDoorTypeOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcDoorTypeOperationEnum = IfcDoorTypeOperationEnum; + class IfcDuctFittingTypeEnum { + } + IfcDuctFittingTypeEnum.BEND = { type: 3, value: "BEND" }; + IfcDuctFittingTypeEnum.CONNECTOR = { type: 3, value: "CONNECTOR" }; + IfcDuctFittingTypeEnum.ENTRY = { type: 3, value: "ENTRY" }; + IfcDuctFittingTypeEnum.EXIT = { type: 3, value: "EXIT" }; + IfcDuctFittingTypeEnum.JUNCTION = { type: 3, value: "JUNCTION" }; + IfcDuctFittingTypeEnum.OBSTRUCTION = { type: 3, value: "OBSTRUCTION" }; + IfcDuctFittingTypeEnum.TRANSITION = { type: 3, value: "TRANSITION" }; + IfcDuctFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDuctFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcDuctFittingTypeEnum = IfcDuctFittingTypeEnum; + class IfcDuctSegmentTypeEnum { + } + IfcDuctSegmentTypeEnum.FLEXIBLESEGMENT = { type: 3, value: "FLEXIBLESEGMENT" }; + IfcDuctSegmentTypeEnum.RIGIDSEGMENT = { type: 3, value: "RIGIDSEGMENT" }; + IfcDuctSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDuctSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcDuctSegmentTypeEnum = IfcDuctSegmentTypeEnum; + class IfcDuctSilencerTypeEnum { + } + IfcDuctSilencerTypeEnum.FLATOVAL = { type: 3, value: "FLATOVAL" }; + IfcDuctSilencerTypeEnum.RECTANGULAR = { type: 3, value: "RECTANGULAR" }; + IfcDuctSilencerTypeEnum.ROUND = { type: 3, value: "ROUND" }; + IfcDuctSilencerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcDuctSilencerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcDuctSilencerTypeEnum = IfcDuctSilencerTypeEnum; + class IfcEarthworksCutTypeEnum { + } + IfcEarthworksCutTypeEnum.BASE_EXCAVATION = { type: 3, value: "BASE_EXCAVATION" }; + IfcEarthworksCutTypeEnum.CUT = { type: 3, value: "CUT" }; + IfcEarthworksCutTypeEnum.DREDGING = { type: 3, value: "DREDGING" }; + IfcEarthworksCutTypeEnum.EXCAVATION = { type: 3, value: "EXCAVATION" }; + IfcEarthworksCutTypeEnum.OVEREXCAVATION = { type: 3, value: "OVEREXCAVATION" }; + IfcEarthworksCutTypeEnum.PAVEMENTMILLING = { type: 3, value: "PAVEMENTMILLING" }; + IfcEarthworksCutTypeEnum.STEPEXCAVATION = { type: 3, value: "STEPEXCAVATION" }; + IfcEarthworksCutTypeEnum.TOPSOILREMOVAL = { type: 3, value: "TOPSOILREMOVAL" }; + IfcEarthworksCutTypeEnum.TRENCH = { type: 3, value: "TRENCH" }; + IfcEarthworksCutTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcEarthworksCutTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcEarthworksCutTypeEnum = IfcEarthworksCutTypeEnum; + class IfcEarthworksFillTypeEnum { + } + IfcEarthworksFillTypeEnum.BACKFILL = { type: 3, value: "BACKFILL" }; + IfcEarthworksFillTypeEnum.COUNTERWEIGHT = { type: 3, value: "COUNTERWEIGHT" }; + IfcEarthworksFillTypeEnum.EMBANKMENT = { type: 3, value: "EMBANKMENT" }; + IfcEarthworksFillTypeEnum.SLOPEFILL = { type: 3, value: "SLOPEFILL" }; + IfcEarthworksFillTypeEnum.SUBGRADE = { type: 3, value: "SUBGRADE" }; + IfcEarthworksFillTypeEnum.SUBGRADEBED = { type: 3, value: "SUBGRADEBED" }; + IfcEarthworksFillTypeEnum.TRANSITIONSECTION = { type: 3, value: "TRANSITIONSECTION" }; + IfcEarthworksFillTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcEarthworksFillTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcEarthworksFillTypeEnum = IfcEarthworksFillTypeEnum; + class IfcElectricApplianceTypeEnum { + } + IfcElectricApplianceTypeEnum.DISHWASHER = { type: 3, value: "DISHWASHER" }; + IfcElectricApplianceTypeEnum.ELECTRICCOOKER = { type: 3, value: "ELECTRICCOOKER" }; + IfcElectricApplianceTypeEnum.FREESTANDINGELECTRICHEATER = { type: 3, value: "FREESTANDINGELECTRICHEATER" }; + IfcElectricApplianceTypeEnum.FREESTANDINGFAN = { type: 3, value: "FREESTANDINGFAN" }; + IfcElectricApplianceTypeEnum.FREESTANDINGWATERCOOLER = { type: 3, value: "FREESTANDINGWATERCOOLER" }; + IfcElectricApplianceTypeEnum.FREESTANDINGWATERHEATER = { type: 3, value: "FREESTANDINGWATERHEATER" }; + IfcElectricApplianceTypeEnum.FREEZER = { type: 3, value: "FREEZER" }; + IfcElectricApplianceTypeEnum.FRIDGE_FREEZER = { type: 3, value: "FRIDGE_FREEZER" }; + IfcElectricApplianceTypeEnum.HANDDRYER = { type: 3, value: "HANDDRYER" }; + IfcElectricApplianceTypeEnum.KITCHENMACHINE = { type: 3, value: "KITCHENMACHINE" }; + IfcElectricApplianceTypeEnum.MICROWAVE = { type: 3, value: "MICROWAVE" }; + IfcElectricApplianceTypeEnum.PHOTOCOPIER = { type: 3, value: "PHOTOCOPIER" }; + IfcElectricApplianceTypeEnum.REFRIGERATOR = { type: 3, value: "REFRIGERATOR" }; + IfcElectricApplianceTypeEnum.TUMBLEDRYER = { type: 3, value: "TUMBLEDRYER" }; + IfcElectricApplianceTypeEnum.VENDINGMACHINE = { type: 3, value: "VENDINGMACHINE" }; + IfcElectricApplianceTypeEnum.WASHINGMACHINE = { type: 3, value: "WASHINGMACHINE" }; + IfcElectricApplianceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcElectricApplianceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcElectricApplianceTypeEnum = IfcElectricApplianceTypeEnum; + class IfcElectricDistributionBoardTypeEnum { + } + IfcElectricDistributionBoardTypeEnum.CONSUMERUNIT = { type: 3, value: "CONSUMERUNIT" }; + IfcElectricDistributionBoardTypeEnum.DISTRIBUTIONBOARD = { type: 3, value: "DISTRIBUTIONBOARD" }; + IfcElectricDistributionBoardTypeEnum.MOTORCONTROLCENTRE = { type: 3, value: "MOTORCONTROLCENTRE" }; + IfcElectricDistributionBoardTypeEnum.SWITCHBOARD = { type: 3, value: "SWITCHBOARD" }; + IfcElectricDistributionBoardTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcElectricDistributionBoardTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcElectricDistributionBoardTypeEnum = IfcElectricDistributionBoardTypeEnum; + class IfcElectricFlowStorageDeviceTypeEnum { + } + IfcElectricFlowStorageDeviceTypeEnum.BATTERY = { type: 3, value: "BATTERY" }; + IfcElectricFlowStorageDeviceTypeEnum.CAPACITOR = { type: 3, value: "CAPACITOR" }; + IfcElectricFlowStorageDeviceTypeEnum.CAPACITORBANK = { type: 3, value: "CAPACITORBANK" }; + IfcElectricFlowStorageDeviceTypeEnum.COMPENSATOR = { type: 3, value: "COMPENSATOR" }; + IfcElectricFlowStorageDeviceTypeEnum.HARMONICFILTER = { type: 3, value: "HARMONICFILTER" }; + IfcElectricFlowStorageDeviceTypeEnum.INDUCTOR = { type: 3, value: "INDUCTOR" }; + IfcElectricFlowStorageDeviceTypeEnum.INDUCTORBANK = { type: 3, value: "INDUCTORBANK" }; + IfcElectricFlowStorageDeviceTypeEnum.RECHARGER = { type: 3, value: "RECHARGER" }; + IfcElectricFlowStorageDeviceTypeEnum.UPS = { type: 3, value: "UPS" }; + IfcElectricFlowStorageDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcElectricFlowStorageDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcElectricFlowStorageDeviceTypeEnum = IfcElectricFlowStorageDeviceTypeEnum; + class IfcElectricFlowTreatmentDeviceTypeEnum { + } + IfcElectricFlowTreatmentDeviceTypeEnum.ELECTRONICFILTER = { type: 3, value: "ELECTRONICFILTER" }; + IfcElectricFlowTreatmentDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcElectricFlowTreatmentDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcElectricFlowTreatmentDeviceTypeEnum = IfcElectricFlowTreatmentDeviceTypeEnum; + class IfcElectricGeneratorTypeEnum { + } + IfcElectricGeneratorTypeEnum.CHP = { type: 3, value: "CHP" }; + IfcElectricGeneratorTypeEnum.ENGINEGENERATOR = { type: 3, value: "ENGINEGENERATOR" }; + IfcElectricGeneratorTypeEnum.STANDALONE = { type: 3, value: "STANDALONE" }; + IfcElectricGeneratorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcElectricGeneratorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcElectricGeneratorTypeEnum = IfcElectricGeneratorTypeEnum; + class IfcElectricMotorTypeEnum { + } + IfcElectricMotorTypeEnum.DC = { type: 3, value: "DC" }; + IfcElectricMotorTypeEnum.INDUCTION = { type: 3, value: "INDUCTION" }; + IfcElectricMotorTypeEnum.POLYPHASE = { type: 3, value: "POLYPHASE" }; + IfcElectricMotorTypeEnum.RELUCTANCESYNCHRONOUS = { type: 3, value: "RELUCTANCESYNCHRONOUS" }; + IfcElectricMotorTypeEnum.SYNCHRONOUS = { type: 3, value: "SYNCHRONOUS" }; + IfcElectricMotorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcElectricMotorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcElectricMotorTypeEnum = IfcElectricMotorTypeEnum; + class IfcElectricTimeControlTypeEnum { + } + IfcElectricTimeControlTypeEnum.RELAY = { type: 3, value: "RELAY" }; + IfcElectricTimeControlTypeEnum.TIMECLOCK = { type: 3, value: "TIMECLOCK" }; + IfcElectricTimeControlTypeEnum.TIMEDELAY = { type: 3, value: "TIMEDELAY" }; + IfcElectricTimeControlTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcElectricTimeControlTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcElectricTimeControlTypeEnum = IfcElectricTimeControlTypeEnum; + class IfcElementAssemblyTypeEnum { + } + IfcElementAssemblyTypeEnum.ABUTMENT = { type: 3, value: "ABUTMENT" }; + IfcElementAssemblyTypeEnum.ACCESSORY_ASSEMBLY = { type: 3, value: "ACCESSORY_ASSEMBLY" }; + IfcElementAssemblyTypeEnum.ARCH = { type: 3, value: "ARCH" }; + IfcElementAssemblyTypeEnum.BEAM_GRID = { type: 3, value: "BEAM_GRID" }; + IfcElementAssemblyTypeEnum.BRACED_FRAME = { type: 3, value: "BRACED_FRAME" }; + IfcElementAssemblyTypeEnum.CROSS_BRACING = { type: 3, value: "CROSS_BRACING" }; + IfcElementAssemblyTypeEnum.DECK = { type: 3, value: "DECK" }; + IfcElementAssemblyTypeEnum.DILATATIONPANEL = { type: 3, value: "DILATATIONPANEL" }; + IfcElementAssemblyTypeEnum.ENTRANCEWORKS = { type: 3, value: "ENTRANCEWORKS" }; + IfcElementAssemblyTypeEnum.GIRDER = { type: 3, value: "GIRDER" }; + IfcElementAssemblyTypeEnum.GRID = { type: 3, value: "GRID" }; + IfcElementAssemblyTypeEnum.MAST = { type: 3, value: "MAST" }; + IfcElementAssemblyTypeEnum.PIER = { type: 3, value: "PIER" }; + IfcElementAssemblyTypeEnum.PYLON = { type: 3, value: "PYLON" }; + IfcElementAssemblyTypeEnum.RAIL_MECHANICAL_EQUIPMENT_ASSEMBLY = { type: 3, value: "RAIL_MECHANICAL_EQUIPMENT_ASSEMBLY" }; + IfcElementAssemblyTypeEnum.REINFORCEMENT_UNIT = { type: 3, value: "REINFORCEMENT_UNIT" }; + IfcElementAssemblyTypeEnum.RIGID_FRAME = { type: 3, value: "RIGID_FRAME" }; + IfcElementAssemblyTypeEnum.SHELTER = { type: 3, value: "SHELTER" }; + IfcElementAssemblyTypeEnum.SIGNALASSEMBLY = { type: 3, value: "SIGNALASSEMBLY" }; + IfcElementAssemblyTypeEnum.SLAB_FIELD = { type: 3, value: "SLAB_FIELD" }; + IfcElementAssemblyTypeEnum.SUMPBUSTER = { type: 3, value: "SUMPBUSTER" }; + IfcElementAssemblyTypeEnum.SUPPORTINGASSEMBLY = { type: 3, value: "SUPPORTINGASSEMBLY" }; + IfcElementAssemblyTypeEnum.SUSPENSIONASSEMBLY = { type: 3, value: "SUSPENSIONASSEMBLY" }; + IfcElementAssemblyTypeEnum.TRACKPANEL = { type: 3, value: "TRACKPANEL" }; + IfcElementAssemblyTypeEnum.TRACTION_SWITCHING_ASSEMBLY = { type: 3, value: "TRACTION_SWITCHING_ASSEMBLY" }; + IfcElementAssemblyTypeEnum.TRAFFIC_CALMING_DEVICE = { type: 3, value: "TRAFFIC_CALMING_DEVICE" }; + IfcElementAssemblyTypeEnum.TRUSS = { type: 3, value: "TRUSS" }; + IfcElementAssemblyTypeEnum.TURNOUTPANEL = { type: 3, value: "TURNOUTPANEL" }; + IfcElementAssemblyTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcElementAssemblyTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcElementAssemblyTypeEnum = IfcElementAssemblyTypeEnum; + class IfcElementCompositionEnum { + } + IfcElementCompositionEnum.COMPLEX = { type: 3, value: "COMPLEX" }; + IfcElementCompositionEnum.ELEMENT = { type: 3, value: "ELEMENT" }; + IfcElementCompositionEnum.PARTIAL = { type: 3, value: "PARTIAL" }; + IFC4X32.IfcElementCompositionEnum = IfcElementCompositionEnum; + class IfcEngineTypeEnum { + } + IfcEngineTypeEnum.EXTERNALCOMBUSTION = { type: 3, value: "EXTERNALCOMBUSTION" }; + IfcEngineTypeEnum.INTERNALCOMBUSTION = { type: 3, value: "INTERNALCOMBUSTION" }; + IfcEngineTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcEngineTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcEngineTypeEnum = IfcEngineTypeEnum; + class IfcEvaporativeCoolerTypeEnum { + } + IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEAIRWASHER = { type: 3, value: "DIRECTEVAPORATIVEAIRWASHER" }; + IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER" }; + IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER" }; + IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER" }; + IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER" }; + IfcEvaporativeCoolerTypeEnum.INDIRECTDIRECTCOMBINATION = { type: 3, value: "INDIRECTDIRECTCOMBINATION" }; + IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER = { type: 3, value: "INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER" }; + IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEPACKAGEAIRCOOLER = { type: 3, value: "INDIRECTEVAPORATIVEPACKAGEAIRCOOLER" }; + IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEWETCOIL = { type: 3, value: "INDIRECTEVAPORATIVEWETCOIL" }; + IfcEvaporativeCoolerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcEvaporativeCoolerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcEvaporativeCoolerTypeEnum = IfcEvaporativeCoolerTypeEnum; + class IfcEvaporatorTypeEnum { + } + IfcEvaporatorTypeEnum.DIRECTEXPANSION = { type: 3, value: "DIRECTEXPANSION" }; + IfcEvaporatorTypeEnum.DIRECTEXPANSIONBRAZEDPLATE = { type: 3, value: "DIRECTEXPANSIONBRAZEDPLATE" }; + IfcEvaporatorTypeEnum.DIRECTEXPANSIONSHELLANDTUBE = { type: 3, value: "DIRECTEXPANSIONSHELLANDTUBE" }; + IfcEvaporatorTypeEnum.DIRECTEXPANSIONTUBEINTUBE = { type: 3, value: "DIRECTEXPANSIONTUBEINTUBE" }; + IfcEvaporatorTypeEnum.FLOODEDSHELLANDTUBE = { type: 3, value: "FLOODEDSHELLANDTUBE" }; + IfcEvaporatorTypeEnum.SHELLANDCOIL = { type: 3, value: "SHELLANDCOIL" }; + IfcEvaporatorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcEvaporatorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcEvaporatorTypeEnum = IfcEvaporatorTypeEnum; + class IfcEventTriggerTypeEnum { + } + IfcEventTriggerTypeEnum.EVENTCOMPLEX = { type: 3, value: "EVENTCOMPLEX" }; + IfcEventTriggerTypeEnum.EVENTMESSAGE = { type: 3, value: "EVENTMESSAGE" }; + IfcEventTriggerTypeEnum.EVENTRULE = { type: 3, value: "EVENTRULE" }; + IfcEventTriggerTypeEnum.EVENTTIME = { type: 3, value: "EVENTTIME" }; + IfcEventTriggerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcEventTriggerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcEventTriggerTypeEnum = IfcEventTriggerTypeEnum; + class IfcEventTypeEnum { + } + IfcEventTypeEnum.ENDEVENT = { type: 3, value: "ENDEVENT" }; + IfcEventTypeEnum.INTERMEDIATEEVENT = { type: 3, value: "INTERMEDIATEEVENT" }; + IfcEventTypeEnum.STARTEVENT = { type: 3, value: "STARTEVENT" }; + IfcEventTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcEventTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcEventTypeEnum = IfcEventTypeEnum; + class IfcExternalSpatialElementTypeEnum { + } + IfcExternalSpatialElementTypeEnum.EXTERNAL = { type: 3, value: "EXTERNAL" }; + IfcExternalSpatialElementTypeEnum.EXTERNAL_EARTH = { type: 3, value: "EXTERNAL_EARTH" }; + IfcExternalSpatialElementTypeEnum.EXTERNAL_FIRE = { type: 3, value: "EXTERNAL_FIRE" }; + IfcExternalSpatialElementTypeEnum.EXTERNAL_WATER = { type: 3, value: "EXTERNAL_WATER" }; + IfcExternalSpatialElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcExternalSpatialElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcExternalSpatialElementTypeEnum = IfcExternalSpatialElementTypeEnum; + class IfcFacilityPartCommonTypeEnum { + } + IfcFacilityPartCommonTypeEnum.ABOVEGROUND = { type: 3, value: "ABOVEGROUND" }; + IfcFacilityPartCommonTypeEnum.BELOWGROUND = { type: 3, value: "BELOWGROUND" }; + IfcFacilityPartCommonTypeEnum.JUNCTION = { type: 3, value: "JUNCTION" }; + IfcFacilityPartCommonTypeEnum.LEVELCROSSING = { type: 3, value: "LEVELCROSSING" }; + IfcFacilityPartCommonTypeEnum.SEGMENT = { type: 3, value: "SEGMENT" }; + IfcFacilityPartCommonTypeEnum.SUBSTRUCTURE = { type: 3, value: "SUBSTRUCTURE" }; + IfcFacilityPartCommonTypeEnum.SUPERSTRUCTURE = { type: 3, value: "SUPERSTRUCTURE" }; + IfcFacilityPartCommonTypeEnum.TERMINAL = { type: 3, value: "TERMINAL" }; + IfcFacilityPartCommonTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcFacilityPartCommonTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcFacilityPartCommonTypeEnum = IfcFacilityPartCommonTypeEnum; + class IfcFacilityUsageEnum { + } + IfcFacilityUsageEnum.LATERAL = { type: 3, value: "LATERAL" }; + IfcFacilityUsageEnum.LONGITUDINAL = { type: 3, value: "LONGITUDINAL" }; + IfcFacilityUsageEnum.REGION = { type: 3, value: "REGION" }; + IfcFacilityUsageEnum.VERTICAL = { type: 3, value: "VERTICAL" }; + IfcFacilityUsageEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcFacilityUsageEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcFacilityUsageEnum = IfcFacilityUsageEnum; + class IfcFanTypeEnum { + } + IfcFanTypeEnum.CENTRIFUGALAIRFOIL = { type: 3, value: "CENTRIFUGALAIRFOIL" }; + IfcFanTypeEnum.CENTRIFUGALBACKWARDINCLINEDCURVED = { type: 3, value: "CENTRIFUGALBACKWARDINCLINEDCURVED" }; + IfcFanTypeEnum.CENTRIFUGALFORWARDCURVED = { type: 3, value: "CENTRIFUGALFORWARDCURVED" }; + IfcFanTypeEnum.CENTRIFUGALRADIAL = { type: 3, value: "CENTRIFUGALRADIAL" }; + IfcFanTypeEnum.PROPELLORAXIAL = { type: 3, value: "PROPELLORAXIAL" }; + IfcFanTypeEnum.TUBEAXIAL = { type: 3, value: "TUBEAXIAL" }; + IfcFanTypeEnum.VANEAXIAL = { type: 3, value: "VANEAXIAL" }; + IfcFanTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcFanTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcFanTypeEnum = IfcFanTypeEnum; + class IfcFastenerTypeEnum { + } + IfcFastenerTypeEnum.GLUE = { type: 3, value: "GLUE" }; + IfcFastenerTypeEnum.MORTAR = { type: 3, value: "MORTAR" }; + IfcFastenerTypeEnum.WELD = { type: 3, value: "WELD" }; + IfcFastenerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcFastenerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcFastenerTypeEnum = IfcFastenerTypeEnum; + class IfcFilterTypeEnum { + } + IfcFilterTypeEnum.AIRPARTICLEFILTER = { type: 3, value: "AIRPARTICLEFILTER" }; + IfcFilterTypeEnum.COMPRESSEDAIRFILTER = { type: 3, value: "COMPRESSEDAIRFILTER" }; + IfcFilterTypeEnum.ODORFILTER = { type: 3, value: "ODORFILTER" }; + IfcFilterTypeEnum.OILFILTER = { type: 3, value: "OILFILTER" }; + IfcFilterTypeEnum.STRAINER = { type: 3, value: "STRAINER" }; + IfcFilterTypeEnum.WATERFILTER = { type: 3, value: "WATERFILTER" }; + IfcFilterTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcFilterTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcFilterTypeEnum = IfcFilterTypeEnum; + class IfcFireSuppressionTerminalTypeEnum { + } + IfcFireSuppressionTerminalTypeEnum.BREECHINGINLET = { type: 3, value: "BREECHINGINLET" }; + IfcFireSuppressionTerminalTypeEnum.FIREHYDRANT = { type: 3, value: "FIREHYDRANT" }; + IfcFireSuppressionTerminalTypeEnum.FIREMONITOR = { type: 3, value: "FIREMONITOR" }; + IfcFireSuppressionTerminalTypeEnum.HOSEREEL = { type: 3, value: "HOSEREEL" }; + IfcFireSuppressionTerminalTypeEnum.SPRINKLER = { type: 3, value: "SPRINKLER" }; + IfcFireSuppressionTerminalTypeEnum.SPRINKLERDEFLECTOR = { type: 3, value: "SPRINKLERDEFLECTOR" }; + IfcFireSuppressionTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcFireSuppressionTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcFireSuppressionTerminalTypeEnum = IfcFireSuppressionTerminalTypeEnum; + class IfcFlowDirectionEnum { + } + IfcFlowDirectionEnum.SINK = { type: 3, value: "SINK" }; + IfcFlowDirectionEnum.SOURCE = { type: 3, value: "SOURCE" }; + IfcFlowDirectionEnum.SOURCEANDSINK = { type: 3, value: "SOURCEANDSINK" }; + IfcFlowDirectionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcFlowDirectionEnum = IfcFlowDirectionEnum; + class IfcFlowInstrumentTypeEnum { + } + IfcFlowInstrumentTypeEnum.AMMETER = { type: 3, value: "AMMETER" }; + IfcFlowInstrumentTypeEnum.COMBINED = { type: 3, value: "COMBINED" }; + IfcFlowInstrumentTypeEnum.FREQUENCYMETER = { type: 3, value: "FREQUENCYMETER" }; + IfcFlowInstrumentTypeEnum.PHASEANGLEMETER = { type: 3, value: "PHASEANGLEMETER" }; + IfcFlowInstrumentTypeEnum.POWERFACTORMETER = { type: 3, value: "POWERFACTORMETER" }; + IfcFlowInstrumentTypeEnum.PRESSUREGAUGE = { type: 3, value: "PRESSUREGAUGE" }; + IfcFlowInstrumentTypeEnum.THERMOMETER = { type: 3, value: "THERMOMETER" }; + IfcFlowInstrumentTypeEnum.VOLTMETER = { type: 3, value: "VOLTMETER" }; + IfcFlowInstrumentTypeEnum.VOLTMETER_PEAK = { type: 3, value: "VOLTMETER_PEAK" }; + IfcFlowInstrumentTypeEnum.VOLTMETER_RMS = { type: 3, value: "VOLTMETER_RMS" }; + IfcFlowInstrumentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcFlowInstrumentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcFlowInstrumentTypeEnum = IfcFlowInstrumentTypeEnum; + class IfcFlowMeterTypeEnum { + } + IfcFlowMeterTypeEnum.ENERGYMETER = { type: 3, value: "ENERGYMETER" }; + IfcFlowMeterTypeEnum.GASMETER = { type: 3, value: "GASMETER" }; + IfcFlowMeterTypeEnum.OILMETER = { type: 3, value: "OILMETER" }; + IfcFlowMeterTypeEnum.WATERMETER = { type: 3, value: "WATERMETER" }; + IfcFlowMeterTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcFlowMeterTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcFlowMeterTypeEnum = IfcFlowMeterTypeEnum; + class IfcFootingTypeEnum { + } + IfcFootingTypeEnum.CAISSON_FOUNDATION = { type: 3, value: "CAISSON_FOUNDATION" }; + IfcFootingTypeEnum.FOOTING_BEAM = { type: 3, value: "FOOTING_BEAM" }; + IfcFootingTypeEnum.PAD_FOOTING = { type: 3, value: "PAD_FOOTING" }; + IfcFootingTypeEnum.PILE_CAP = { type: 3, value: "PILE_CAP" }; + IfcFootingTypeEnum.STRIP_FOOTING = { type: 3, value: "STRIP_FOOTING" }; + IfcFootingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcFootingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcFootingTypeEnum = IfcFootingTypeEnum; + class IfcFurnitureTypeEnum { + } + IfcFurnitureTypeEnum.BED = { type: 3, value: "BED" }; + IfcFurnitureTypeEnum.CHAIR = { type: 3, value: "CHAIR" }; + IfcFurnitureTypeEnum.DESK = { type: 3, value: "DESK" }; + IfcFurnitureTypeEnum.FILECABINET = { type: 3, value: "FILECABINET" }; + IfcFurnitureTypeEnum.SHELF = { type: 3, value: "SHELF" }; + IfcFurnitureTypeEnum.SOFA = { type: 3, value: "SOFA" }; + IfcFurnitureTypeEnum.TABLE = { type: 3, value: "TABLE" }; + IfcFurnitureTypeEnum.TECHNICALCABINET = { type: 3, value: "TECHNICALCABINET" }; + IfcFurnitureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcFurnitureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcFurnitureTypeEnum = IfcFurnitureTypeEnum; + class IfcGeographicElementTypeEnum { + } + IfcGeographicElementTypeEnum.SOIL_BORING_POINT = { type: 3, value: "SOIL_BORING_POINT" }; + IfcGeographicElementTypeEnum.TERRAIN = { type: 3, value: "TERRAIN" }; + IfcGeographicElementTypeEnum.VEGETATION = { type: 3, value: "VEGETATION" }; + IfcGeographicElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcGeographicElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcGeographicElementTypeEnum = IfcGeographicElementTypeEnum; + class IfcGeometricProjectionEnum { + } + IfcGeometricProjectionEnum.ELEVATION_VIEW = { type: 3, value: "ELEVATION_VIEW" }; + IfcGeometricProjectionEnum.GRAPH_VIEW = { type: 3, value: "GRAPH_VIEW" }; + IfcGeometricProjectionEnum.MODEL_VIEW = { type: 3, value: "MODEL_VIEW" }; + IfcGeometricProjectionEnum.PLAN_VIEW = { type: 3, value: "PLAN_VIEW" }; + IfcGeometricProjectionEnum.REFLECTED_PLAN_VIEW = { type: 3, value: "REFLECTED_PLAN_VIEW" }; + IfcGeometricProjectionEnum.SECTION_VIEW = { type: 3, value: "SECTION_VIEW" }; + IfcGeometricProjectionEnum.SKETCH_VIEW = { type: 3, value: "SKETCH_VIEW" }; + IfcGeometricProjectionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcGeometricProjectionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcGeometricProjectionEnum = IfcGeometricProjectionEnum; + class IfcGeotechnicalStratumTypeEnum { + } + IfcGeotechnicalStratumTypeEnum.SOLID = { type: 3, value: "SOLID" }; + IfcGeotechnicalStratumTypeEnum.VOID = { type: 3, value: "VOID" }; + IfcGeotechnicalStratumTypeEnum.WATER = { type: 3, value: "WATER" }; + IfcGeotechnicalStratumTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcGeotechnicalStratumTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcGeotechnicalStratumTypeEnum = IfcGeotechnicalStratumTypeEnum; + class IfcGlobalOrLocalEnum { + } + IfcGlobalOrLocalEnum.GLOBAL_COORDS = { type: 3, value: "GLOBAL_COORDS" }; + IfcGlobalOrLocalEnum.LOCAL_COORDS = { type: 3, value: "LOCAL_COORDS" }; + IFC4X32.IfcGlobalOrLocalEnum = IfcGlobalOrLocalEnum; + class IfcGridTypeEnum { + } + IfcGridTypeEnum.IRREGULAR = { type: 3, value: "IRREGULAR" }; + IfcGridTypeEnum.RADIAL = { type: 3, value: "RADIAL" }; + IfcGridTypeEnum.RECTANGULAR = { type: 3, value: "RECTANGULAR" }; + IfcGridTypeEnum.TRIANGULAR = { type: 3, value: "TRIANGULAR" }; + IfcGridTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcGridTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcGridTypeEnum = IfcGridTypeEnum; + class IfcHeatExchangerTypeEnum { + } + IfcHeatExchangerTypeEnum.PLATE = { type: 3, value: "PLATE" }; + IfcHeatExchangerTypeEnum.SHELLANDTUBE = { type: 3, value: "SHELLANDTUBE" }; + IfcHeatExchangerTypeEnum.TURNOUTHEATING = { type: 3, value: "TURNOUTHEATING" }; + IfcHeatExchangerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcHeatExchangerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcHeatExchangerTypeEnum = IfcHeatExchangerTypeEnum; + class IfcHumidifierTypeEnum { + } + IfcHumidifierTypeEnum.ADIABATICAIRWASHER = { type: 3, value: "ADIABATICAIRWASHER" }; + IfcHumidifierTypeEnum.ADIABATICATOMIZING = { type: 3, value: "ADIABATICATOMIZING" }; + IfcHumidifierTypeEnum.ADIABATICCOMPRESSEDAIRNOZZLE = { type: 3, value: "ADIABATICCOMPRESSEDAIRNOZZLE" }; + IfcHumidifierTypeEnum.ADIABATICPAN = { type: 3, value: "ADIABATICPAN" }; + IfcHumidifierTypeEnum.ADIABATICRIGIDMEDIA = { type: 3, value: "ADIABATICRIGIDMEDIA" }; + IfcHumidifierTypeEnum.ADIABATICULTRASONIC = { type: 3, value: "ADIABATICULTRASONIC" }; + IfcHumidifierTypeEnum.ADIABATICWETTEDELEMENT = { type: 3, value: "ADIABATICWETTEDELEMENT" }; + IfcHumidifierTypeEnum.ASSISTEDBUTANE = { type: 3, value: "ASSISTEDBUTANE" }; + IfcHumidifierTypeEnum.ASSISTEDELECTRIC = { type: 3, value: "ASSISTEDELECTRIC" }; + IfcHumidifierTypeEnum.ASSISTEDNATURALGAS = { type: 3, value: "ASSISTEDNATURALGAS" }; + IfcHumidifierTypeEnum.ASSISTEDPROPANE = { type: 3, value: "ASSISTEDPROPANE" }; + IfcHumidifierTypeEnum.ASSISTEDSTEAM = { type: 3, value: "ASSISTEDSTEAM" }; + IfcHumidifierTypeEnum.STEAMINJECTION = { type: 3, value: "STEAMINJECTION" }; + IfcHumidifierTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcHumidifierTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcHumidifierTypeEnum = IfcHumidifierTypeEnum; + class IfcImpactProtectionDeviceTypeEnum { + } + IfcImpactProtectionDeviceTypeEnum.BUMPER = { type: 3, value: "BUMPER" }; + IfcImpactProtectionDeviceTypeEnum.CRASHCUSHION = { type: 3, value: "CRASHCUSHION" }; + IfcImpactProtectionDeviceTypeEnum.DAMPINGSYSTEM = { type: 3, value: "DAMPINGSYSTEM" }; + IfcImpactProtectionDeviceTypeEnum.FENDER = { type: 3, value: "FENDER" }; + IfcImpactProtectionDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcImpactProtectionDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcImpactProtectionDeviceTypeEnum = IfcImpactProtectionDeviceTypeEnum; + class IfcInterceptorTypeEnum { + } + IfcInterceptorTypeEnum.CYCLONIC = { type: 3, value: "CYCLONIC" }; + IfcInterceptorTypeEnum.GREASE = { type: 3, value: "GREASE" }; + IfcInterceptorTypeEnum.OIL = { type: 3, value: "OIL" }; + IfcInterceptorTypeEnum.PETROL = { type: 3, value: "PETROL" }; + IfcInterceptorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcInterceptorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcInterceptorTypeEnum = IfcInterceptorTypeEnum; + class IfcInternalOrExternalEnum { + } + IfcInternalOrExternalEnum.EXTERNAL = { type: 3, value: "EXTERNAL" }; + IfcInternalOrExternalEnum.EXTERNAL_EARTH = { type: 3, value: "EXTERNAL_EARTH" }; + IfcInternalOrExternalEnum.EXTERNAL_FIRE = { type: 3, value: "EXTERNAL_FIRE" }; + IfcInternalOrExternalEnum.EXTERNAL_WATER = { type: 3, value: "EXTERNAL_WATER" }; + IfcInternalOrExternalEnum.INTERNAL = { type: 3, value: "INTERNAL" }; + IfcInternalOrExternalEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcInternalOrExternalEnum = IfcInternalOrExternalEnum; + class IfcInventoryTypeEnum { + } + IfcInventoryTypeEnum.ASSETINVENTORY = { type: 3, value: "ASSETINVENTORY" }; + IfcInventoryTypeEnum.FURNITUREINVENTORY = { type: 3, value: "FURNITUREINVENTORY" }; + IfcInventoryTypeEnum.SPACEINVENTORY = { type: 3, value: "SPACEINVENTORY" }; + IfcInventoryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcInventoryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcInventoryTypeEnum = IfcInventoryTypeEnum; + class IfcJunctionBoxTypeEnum { + } + IfcJunctionBoxTypeEnum.DATA = { type: 3, value: "DATA" }; + IfcJunctionBoxTypeEnum.POWER = { type: 3, value: "POWER" }; + IfcJunctionBoxTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcJunctionBoxTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcJunctionBoxTypeEnum = IfcJunctionBoxTypeEnum; + class IfcKnotType { + } + IfcKnotType.PIECEWISE_BEZIER_KNOTS = { type: 3, value: "PIECEWISE_BEZIER_KNOTS" }; + IfcKnotType.QUASI_UNIFORM_KNOTS = { type: 3, value: "QUASI_UNIFORM_KNOTS" }; + IfcKnotType.UNIFORM_KNOTS = { type: 3, value: "UNIFORM_KNOTS" }; + IfcKnotType.UNSPECIFIED = { type: 3, value: "UNSPECIFIED" }; + IFC4X32.IfcKnotType = IfcKnotType; + class IfcLaborResourceTypeEnum { + } + IfcLaborResourceTypeEnum.ADMINISTRATION = { type: 3, value: "ADMINISTRATION" }; + IfcLaborResourceTypeEnum.CARPENTRY = { type: 3, value: "CARPENTRY" }; + IfcLaborResourceTypeEnum.CLEANING = { type: 3, value: "CLEANING" }; + IfcLaborResourceTypeEnum.CONCRETE = { type: 3, value: "CONCRETE" }; + IfcLaborResourceTypeEnum.DRYWALL = { type: 3, value: "DRYWALL" }; + IfcLaborResourceTypeEnum.ELECTRIC = { type: 3, value: "ELECTRIC" }; + IfcLaborResourceTypeEnum.FINISHING = { type: 3, value: "FINISHING" }; + IfcLaborResourceTypeEnum.FLOORING = { type: 3, value: "FLOORING" }; + IfcLaborResourceTypeEnum.GENERAL = { type: 3, value: "GENERAL" }; + IfcLaborResourceTypeEnum.HVAC = { type: 3, value: "HVAC" }; + IfcLaborResourceTypeEnum.LANDSCAPING = { type: 3, value: "LANDSCAPING" }; + IfcLaborResourceTypeEnum.MASONRY = { type: 3, value: "MASONRY" }; + IfcLaborResourceTypeEnum.PAINTING = { type: 3, value: "PAINTING" }; + IfcLaborResourceTypeEnum.PAVING = { type: 3, value: "PAVING" }; + IfcLaborResourceTypeEnum.PLUMBING = { type: 3, value: "PLUMBING" }; + IfcLaborResourceTypeEnum.ROOFING = { type: 3, value: "ROOFING" }; + IfcLaborResourceTypeEnum.SITEGRADING = { type: 3, value: "SITEGRADING" }; + IfcLaborResourceTypeEnum.STEELWORK = { type: 3, value: "STEELWORK" }; + IfcLaborResourceTypeEnum.SURVEYING = { type: 3, value: "SURVEYING" }; + IfcLaborResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcLaborResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcLaborResourceTypeEnum = IfcLaborResourceTypeEnum; + class IfcLampTypeEnum { + } + IfcLampTypeEnum.COMPACTFLUORESCENT = { type: 3, value: "COMPACTFLUORESCENT" }; + IfcLampTypeEnum.FLUORESCENT = { type: 3, value: "FLUORESCENT" }; + IfcLampTypeEnum.HALOGEN = { type: 3, value: "HALOGEN" }; + IfcLampTypeEnum.HIGHPRESSUREMERCURY = { type: 3, value: "HIGHPRESSUREMERCURY" }; + IfcLampTypeEnum.HIGHPRESSURESODIUM = { type: 3, value: "HIGHPRESSURESODIUM" }; + IfcLampTypeEnum.LED = { type: 3, value: "LED" }; + IfcLampTypeEnum.METALHALIDE = { type: 3, value: "METALHALIDE" }; + IfcLampTypeEnum.OLED = { type: 3, value: "OLED" }; + IfcLampTypeEnum.TUNGSTENFILAMENT = { type: 3, value: "TUNGSTENFILAMENT" }; + IfcLampTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcLampTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcLampTypeEnum = IfcLampTypeEnum; + class IfcLayerSetDirectionEnum { + } + IfcLayerSetDirectionEnum.AXIS1 = { type: 3, value: "AXIS1" }; + IfcLayerSetDirectionEnum.AXIS2 = { type: 3, value: "AXIS2" }; + IfcLayerSetDirectionEnum.AXIS3 = { type: 3, value: "AXIS3" }; + IFC4X32.IfcLayerSetDirectionEnum = IfcLayerSetDirectionEnum; + class IfcLightDistributionCurveEnum { + } + IfcLightDistributionCurveEnum.TYPE_A = { type: 3, value: "TYPE_A" }; + IfcLightDistributionCurveEnum.TYPE_B = { type: 3, value: "TYPE_B" }; + IfcLightDistributionCurveEnum.TYPE_C = { type: 3, value: "TYPE_C" }; + IfcLightDistributionCurveEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcLightDistributionCurveEnum = IfcLightDistributionCurveEnum; + class IfcLightEmissionSourceEnum { + } + IfcLightEmissionSourceEnum.COMPACTFLUORESCENT = { type: 3, value: "COMPACTFLUORESCENT" }; + IfcLightEmissionSourceEnum.FLUORESCENT = { type: 3, value: "FLUORESCENT" }; + IfcLightEmissionSourceEnum.HIGHPRESSUREMERCURY = { type: 3, value: "HIGHPRESSUREMERCURY" }; + IfcLightEmissionSourceEnum.HIGHPRESSURESODIUM = { type: 3, value: "HIGHPRESSURESODIUM" }; + IfcLightEmissionSourceEnum.LIGHTEMITTINGDIODE = { type: 3, value: "LIGHTEMITTINGDIODE" }; + IfcLightEmissionSourceEnum.LOWPRESSURESODIUM = { type: 3, value: "LOWPRESSURESODIUM" }; + IfcLightEmissionSourceEnum.LOWVOLTAGEHALOGEN = { type: 3, value: "LOWVOLTAGEHALOGEN" }; + IfcLightEmissionSourceEnum.MAINVOLTAGEHALOGEN = { type: 3, value: "MAINVOLTAGEHALOGEN" }; + IfcLightEmissionSourceEnum.METALHALIDE = { type: 3, value: "METALHALIDE" }; + IfcLightEmissionSourceEnum.TUNGSTENFILAMENT = { type: 3, value: "TUNGSTENFILAMENT" }; + IfcLightEmissionSourceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcLightEmissionSourceEnum = IfcLightEmissionSourceEnum; + class IfcLightFixtureTypeEnum { + } + IfcLightFixtureTypeEnum.DIRECTIONSOURCE = { type: 3, value: "DIRECTIONSOURCE" }; + IfcLightFixtureTypeEnum.POINTSOURCE = { type: 3, value: "POINTSOURCE" }; + IfcLightFixtureTypeEnum.SECURITYLIGHTING = { type: 3, value: "SECURITYLIGHTING" }; + IfcLightFixtureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcLightFixtureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcLightFixtureTypeEnum = IfcLightFixtureTypeEnum; + class IfcLiquidTerminalTypeEnum { + } + IfcLiquidTerminalTypeEnum.HOSEREEL = { type: 3, value: "HOSEREEL" }; + IfcLiquidTerminalTypeEnum.LOADINGARM = { type: 3, value: "LOADINGARM" }; + IfcLiquidTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcLiquidTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcLiquidTerminalTypeEnum = IfcLiquidTerminalTypeEnum; + class IfcLoadGroupTypeEnum { + } + IfcLoadGroupTypeEnum.LOAD_CASE = { type: 3, value: "LOAD_CASE" }; + IfcLoadGroupTypeEnum.LOAD_COMBINATION = { type: 3, value: "LOAD_COMBINATION" }; + IfcLoadGroupTypeEnum.LOAD_GROUP = { type: 3, value: "LOAD_GROUP" }; + IfcLoadGroupTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcLoadGroupTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcLoadGroupTypeEnum = IfcLoadGroupTypeEnum; + class IfcLogicalOperatorEnum { + } + IfcLogicalOperatorEnum.LOGICALAND = { type: 3, value: "LOGICALAND" }; + IfcLogicalOperatorEnum.LOGICALNOTAND = { type: 3, value: "LOGICALNOTAND" }; + IfcLogicalOperatorEnum.LOGICALNOTOR = { type: 3, value: "LOGICALNOTOR" }; + IfcLogicalOperatorEnum.LOGICALOR = { type: 3, value: "LOGICALOR" }; + IfcLogicalOperatorEnum.LOGICALXOR = { type: 3, value: "LOGICALXOR" }; + IFC4X32.IfcLogicalOperatorEnum = IfcLogicalOperatorEnum; + class IfcMarineFacilityTypeEnum { + } + IfcMarineFacilityTypeEnum.BARRIERBEACH = { type: 3, value: "BARRIERBEACH" }; + IfcMarineFacilityTypeEnum.BREAKWATER = { type: 3, value: "BREAKWATER" }; + IfcMarineFacilityTypeEnum.CANAL = { type: 3, value: "CANAL" }; + IfcMarineFacilityTypeEnum.DRYDOCK = { type: 3, value: "DRYDOCK" }; + IfcMarineFacilityTypeEnum.FLOATINGDOCK = { type: 3, value: "FLOATINGDOCK" }; + IfcMarineFacilityTypeEnum.HYDROLIFT = { type: 3, value: "HYDROLIFT" }; + IfcMarineFacilityTypeEnum.JETTY = { type: 3, value: "JETTY" }; + IfcMarineFacilityTypeEnum.LAUNCHRECOVERY = { type: 3, value: "LAUNCHRECOVERY" }; + IfcMarineFacilityTypeEnum.MARINEDEFENCE = { type: 3, value: "MARINEDEFENCE" }; + IfcMarineFacilityTypeEnum.NAVIGATIONALCHANNEL = { type: 3, value: "NAVIGATIONALCHANNEL" }; + IfcMarineFacilityTypeEnum.PORT = { type: 3, value: "PORT" }; + IfcMarineFacilityTypeEnum.QUAY = { type: 3, value: "QUAY" }; + IfcMarineFacilityTypeEnum.REVETMENT = { type: 3, value: "REVETMENT" }; + IfcMarineFacilityTypeEnum.SHIPLIFT = { type: 3, value: "SHIPLIFT" }; + IfcMarineFacilityTypeEnum.SHIPLOCK = { type: 3, value: "SHIPLOCK" }; + IfcMarineFacilityTypeEnum.SHIPYARD = { type: 3, value: "SHIPYARD" }; + IfcMarineFacilityTypeEnum.SLIPWAY = { type: 3, value: "SLIPWAY" }; + IfcMarineFacilityTypeEnum.WATERWAY = { type: 3, value: "WATERWAY" }; + IfcMarineFacilityTypeEnum.WATERWAYSHIPLIFT = { type: 3, value: "WATERWAYSHIPLIFT" }; + IfcMarineFacilityTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcMarineFacilityTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcMarineFacilityTypeEnum = IfcMarineFacilityTypeEnum; + class IfcMarinePartTypeEnum { + } + IfcMarinePartTypeEnum.ABOVEWATERLINE = { type: 3, value: "ABOVEWATERLINE" }; + IfcMarinePartTypeEnum.ANCHORAGE = { type: 3, value: "ANCHORAGE" }; + IfcMarinePartTypeEnum.APPROACHCHANNEL = { type: 3, value: "APPROACHCHANNEL" }; + IfcMarinePartTypeEnum.BELOWWATERLINE = { type: 3, value: "BELOWWATERLINE" }; + IfcMarinePartTypeEnum.BERTHINGSTRUCTURE = { type: 3, value: "BERTHINGSTRUCTURE" }; + IfcMarinePartTypeEnum.CHAMBER = { type: 3, value: "CHAMBER" }; + IfcMarinePartTypeEnum.CILL_LEVEL = { type: 3, value: "CILL_LEVEL" }; + IfcMarinePartTypeEnum.COPELEVEL = { type: 3, value: "COPELEVEL" }; + IfcMarinePartTypeEnum.CORE = { type: 3, value: "CORE" }; + IfcMarinePartTypeEnum.CREST = { type: 3, value: "CREST" }; + IfcMarinePartTypeEnum.GATEHEAD = { type: 3, value: "GATEHEAD" }; + IfcMarinePartTypeEnum.GUDINGSTRUCTURE = { type: 3, value: "GUDINGSTRUCTURE" }; + IfcMarinePartTypeEnum.HIGHWATERLINE = { type: 3, value: "HIGHWATERLINE" }; + IfcMarinePartTypeEnum.LANDFIELD = { type: 3, value: "LANDFIELD" }; + IfcMarinePartTypeEnum.LEEWARDSIDE = { type: 3, value: "LEEWARDSIDE" }; + IfcMarinePartTypeEnum.LOWWATERLINE = { type: 3, value: "LOWWATERLINE" }; + IfcMarinePartTypeEnum.MANUFACTURING = { type: 3, value: "MANUFACTURING" }; + IfcMarinePartTypeEnum.NAVIGATIONALAREA = { type: 3, value: "NAVIGATIONALAREA" }; + IfcMarinePartTypeEnum.PROTECTION = { type: 3, value: "PROTECTION" }; + IfcMarinePartTypeEnum.SHIPTRANSFER = { type: 3, value: "SHIPTRANSFER" }; + IfcMarinePartTypeEnum.STORAGEAREA = { type: 3, value: "STORAGEAREA" }; + IfcMarinePartTypeEnum.VEHICLESERVICING = { type: 3, value: "VEHICLESERVICING" }; + IfcMarinePartTypeEnum.WATERFIELD = { type: 3, value: "WATERFIELD" }; + IfcMarinePartTypeEnum.WEATHERSIDE = { type: 3, value: "WEATHERSIDE" }; + IfcMarinePartTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcMarinePartTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcMarinePartTypeEnum = IfcMarinePartTypeEnum; + class IfcMechanicalFastenerTypeEnum { + } + IfcMechanicalFastenerTypeEnum.ANCHORBOLT = { type: 3, value: "ANCHORBOLT" }; + IfcMechanicalFastenerTypeEnum.BOLT = { type: 3, value: "BOLT" }; + IfcMechanicalFastenerTypeEnum.CHAIN = { type: 3, value: "CHAIN" }; + IfcMechanicalFastenerTypeEnum.COUPLER = { type: 3, value: "COUPLER" }; + IfcMechanicalFastenerTypeEnum.DOWEL = { type: 3, value: "DOWEL" }; + IfcMechanicalFastenerTypeEnum.NAIL = { type: 3, value: "NAIL" }; + IfcMechanicalFastenerTypeEnum.NAILPLATE = { type: 3, value: "NAILPLATE" }; + IfcMechanicalFastenerTypeEnum.RAILFASTENING = { type: 3, value: "RAILFASTENING" }; + IfcMechanicalFastenerTypeEnum.RAILJOINT = { type: 3, value: "RAILJOINT" }; + IfcMechanicalFastenerTypeEnum.RIVET = { type: 3, value: "RIVET" }; + IfcMechanicalFastenerTypeEnum.ROPE = { type: 3, value: "ROPE" }; + IfcMechanicalFastenerTypeEnum.SCREW = { type: 3, value: "SCREW" }; + IfcMechanicalFastenerTypeEnum.SHEARCONNECTOR = { type: 3, value: "SHEARCONNECTOR" }; + IfcMechanicalFastenerTypeEnum.STAPLE = { type: 3, value: "STAPLE" }; + IfcMechanicalFastenerTypeEnum.STUDSHEARCONNECTOR = { type: 3, value: "STUDSHEARCONNECTOR" }; + IfcMechanicalFastenerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcMechanicalFastenerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcMechanicalFastenerTypeEnum = IfcMechanicalFastenerTypeEnum; + class IfcMedicalDeviceTypeEnum { + } + IfcMedicalDeviceTypeEnum.AIRSTATION = { type: 3, value: "AIRSTATION" }; + IfcMedicalDeviceTypeEnum.FEEDAIRUNIT = { type: 3, value: "FEEDAIRUNIT" }; + IfcMedicalDeviceTypeEnum.OXYGENGENERATOR = { type: 3, value: "OXYGENGENERATOR" }; + IfcMedicalDeviceTypeEnum.OXYGENPLANT = { type: 3, value: "OXYGENPLANT" }; + IfcMedicalDeviceTypeEnum.VACUUMSTATION = { type: 3, value: "VACUUMSTATION" }; + IfcMedicalDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcMedicalDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcMedicalDeviceTypeEnum = IfcMedicalDeviceTypeEnum; + class IfcMemberTypeEnum { + } + IfcMemberTypeEnum.ARCH_SEGMENT = { type: 3, value: "ARCH_SEGMENT" }; + IfcMemberTypeEnum.BRACE = { type: 3, value: "BRACE" }; + IfcMemberTypeEnum.CHORD = { type: 3, value: "CHORD" }; + IfcMemberTypeEnum.COLLAR = { type: 3, value: "COLLAR" }; + IfcMemberTypeEnum.MEMBER = { type: 3, value: "MEMBER" }; + IfcMemberTypeEnum.MULLION = { type: 3, value: "MULLION" }; + IfcMemberTypeEnum.PLATE = { type: 3, value: "PLATE" }; + IfcMemberTypeEnum.POST = { type: 3, value: "POST" }; + IfcMemberTypeEnum.PURLIN = { type: 3, value: "PURLIN" }; + IfcMemberTypeEnum.RAFTER = { type: 3, value: "RAFTER" }; + IfcMemberTypeEnum.STAY_CABLE = { type: 3, value: "STAY_CABLE" }; + IfcMemberTypeEnum.STIFFENING_RIB = { type: 3, value: "STIFFENING_RIB" }; + IfcMemberTypeEnum.STRINGER = { type: 3, value: "STRINGER" }; + IfcMemberTypeEnum.STRUCTURALCABLE = { type: 3, value: "STRUCTURALCABLE" }; + IfcMemberTypeEnum.STRUT = { type: 3, value: "STRUT" }; + IfcMemberTypeEnum.STUD = { type: 3, value: "STUD" }; + IfcMemberTypeEnum.SUSPENDER = { type: 3, value: "SUSPENDER" }; + IfcMemberTypeEnum.SUSPENSION_CABLE = { type: 3, value: "SUSPENSION_CABLE" }; + IfcMemberTypeEnum.TIEBAR = { type: 3, value: "TIEBAR" }; + IfcMemberTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcMemberTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcMemberTypeEnum = IfcMemberTypeEnum; + class IfcMobileTelecommunicationsApplianceTypeEnum { + } + IfcMobileTelecommunicationsApplianceTypeEnum.ACCESSPOINT = { type: 3, value: "ACCESSPOINT" }; + IfcMobileTelecommunicationsApplianceTypeEnum.BASEBANDUNIT = { type: 3, value: "BASEBANDUNIT" }; + IfcMobileTelecommunicationsApplianceTypeEnum.BASETRANSCEIVERSTATION = { type: 3, value: "BASETRANSCEIVERSTATION" }; + IfcMobileTelecommunicationsApplianceTypeEnum.E_UTRAN_NODE_B = { type: 3, value: "E_UTRAN_NODE_B" }; + IfcMobileTelecommunicationsApplianceTypeEnum.GATEWAY_GPRS_SUPPORT_NODE = { type: 3, value: "GATEWAY_GPRS_SUPPORT_NODE" }; + IfcMobileTelecommunicationsApplianceTypeEnum.MASTERUNIT = { type: 3, value: "MASTERUNIT" }; + IfcMobileTelecommunicationsApplianceTypeEnum.MOBILESWITCHINGCENTER = { type: 3, value: "MOBILESWITCHINGCENTER" }; + IfcMobileTelecommunicationsApplianceTypeEnum.MSCSERVER = { type: 3, value: "MSCSERVER" }; + IfcMobileTelecommunicationsApplianceTypeEnum.PACKETCONTROLUNIT = { type: 3, value: "PACKETCONTROLUNIT" }; + IfcMobileTelecommunicationsApplianceTypeEnum.REMOTERADIOUNIT = { type: 3, value: "REMOTERADIOUNIT" }; + IfcMobileTelecommunicationsApplianceTypeEnum.REMOTEUNIT = { type: 3, value: "REMOTEUNIT" }; + IfcMobileTelecommunicationsApplianceTypeEnum.SERVICE_GPRS_SUPPORT_NODE = { type: 3, value: "SERVICE_GPRS_SUPPORT_NODE" }; + IfcMobileTelecommunicationsApplianceTypeEnum.SUBSCRIBERSERVER = { type: 3, value: "SUBSCRIBERSERVER" }; + IfcMobileTelecommunicationsApplianceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcMobileTelecommunicationsApplianceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcMobileTelecommunicationsApplianceTypeEnum = IfcMobileTelecommunicationsApplianceTypeEnum; + class IfcMooringDeviceTypeEnum { + } + IfcMooringDeviceTypeEnum.BOLLARD = { type: 3, value: "BOLLARD" }; + IfcMooringDeviceTypeEnum.LINETENSIONER = { type: 3, value: "LINETENSIONER" }; + IfcMooringDeviceTypeEnum.MAGNETICDEVICE = { type: 3, value: "MAGNETICDEVICE" }; + IfcMooringDeviceTypeEnum.MOORINGHOOKS = { type: 3, value: "MOORINGHOOKS" }; + IfcMooringDeviceTypeEnum.VACUUMDEVICE = { type: 3, value: "VACUUMDEVICE" }; + IfcMooringDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcMooringDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcMooringDeviceTypeEnum = IfcMooringDeviceTypeEnum; + class IfcMotorConnectionTypeEnum { + } + IfcMotorConnectionTypeEnum.BELTDRIVE = { type: 3, value: "BELTDRIVE" }; + IfcMotorConnectionTypeEnum.COUPLING = { type: 3, value: "COUPLING" }; + IfcMotorConnectionTypeEnum.DIRECTDRIVE = { type: 3, value: "DIRECTDRIVE" }; + IfcMotorConnectionTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcMotorConnectionTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcMotorConnectionTypeEnum = IfcMotorConnectionTypeEnum; + class IfcNavigationElementTypeEnum { + } + IfcNavigationElementTypeEnum.BEACON = { type: 3, value: "BEACON" }; + IfcNavigationElementTypeEnum.BUOY = { type: 3, value: "BUOY" }; + IfcNavigationElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcNavigationElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcNavigationElementTypeEnum = IfcNavigationElementTypeEnum; + class IfcObjectTypeEnum { + } + IfcObjectTypeEnum.ACTOR = { type: 3, value: "ACTOR" }; + IfcObjectTypeEnum.CONTROL = { type: 3, value: "CONTROL" }; + IfcObjectTypeEnum.GROUP = { type: 3, value: "GROUP" }; + IfcObjectTypeEnum.PROCESS = { type: 3, value: "PROCESS" }; + IfcObjectTypeEnum.PRODUCT = { type: 3, value: "PRODUCT" }; + IfcObjectTypeEnum.PROJECT = { type: 3, value: "PROJECT" }; + IfcObjectTypeEnum.RESOURCE = { type: 3, value: "RESOURCE" }; + IfcObjectTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcObjectTypeEnum = IfcObjectTypeEnum; + class IfcObjectiveEnum { + } + IfcObjectiveEnum.CODECOMPLIANCE = { type: 3, value: "CODECOMPLIANCE" }; + IfcObjectiveEnum.CODEWAIVER = { type: 3, value: "CODEWAIVER" }; + IfcObjectiveEnum.DESIGNINTENT = { type: 3, value: "DESIGNINTENT" }; + IfcObjectiveEnum.EXTERNAL = { type: 3, value: "EXTERNAL" }; + IfcObjectiveEnum.HEALTHANDSAFETY = { type: 3, value: "HEALTHANDSAFETY" }; + IfcObjectiveEnum.MERGECONFLICT = { type: 3, value: "MERGECONFLICT" }; + IfcObjectiveEnum.MODELVIEW = { type: 3, value: "MODELVIEW" }; + IfcObjectiveEnum.PARAMETER = { type: 3, value: "PARAMETER" }; + IfcObjectiveEnum.REQUIREMENT = { type: 3, value: "REQUIREMENT" }; + IfcObjectiveEnum.SPECIFICATION = { type: 3, value: "SPECIFICATION" }; + IfcObjectiveEnum.TRIGGERCONDITION = { type: 3, value: "TRIGGERCONDITION" }; + IfcObjectiveEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcObjectiveEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcObjectiveEnum = IfcObjectiveEnum; + class IfcOccupantTypeEnum { + } + IfcOccupantTypeEnum.ASSIGNEE = { type: 3, value: "ASSIGNEE" }; + IfcOccupantTypeEnum.ASSIGNOR = { type: 3, value: "ASSIGNOR" }; + IfcOccupantTypeEnum.LESSEE = { type: 3, value: "LESSEE" }; + IfcOccupantTypeEnum.LESSOR = { type: 3, value: "LESSOR" }; + IfcOccupantTypeEnum.LETTINGAGENT = { type: 3, value: "LETTINGAGENT" }; + IfcOccupantTypeEnum.OWNER = { type: 3, value: "OWNER" }; + IfcOccupantTypeEnum.TENANT = { type: 3, value: "TENANT" }; + IfcOccupantTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcOccupantTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcOccupantTypeEnum = IfcOccupantTypeEnum; + class IfcOpeningElementTypeEnum { + } + IfcOpeningElementTypeEnum.OPENING = { type: 3, value: "OPENING" }; + IfcOpeningElementTypeEnum.RECESS = { type: 3, value: "RECESS" }; + IfcOpeningElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcOpeningElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcOpeningElementTypeEnum = IfcOpeningElementTypeEnum; + class IfcOutletTypeEnum { + } + IfcOutletTypeEnum.AUDIOVISUALOUTLET = { type: 3, value: "AUDIOVISUALOUTLET" }; + IfcOutletTypeEnum.COMMUNICATIONSOUTLET = { type: 3, value: "COMMUNICATIONSOUTLET" }; + IfcOutletTypeEnum.DATAOUTLET = { type: 3, value: "DATAOUTLET" }; + IfcOutletTypeEnum.POWEROUTLET = { type: 3, value: "POWEROUTLET" }; + IfcOutletTypeEnum.TELEPHONEOUTLET = { type: 3, value: "TELEPHONEOUTLET" }; + IfcOutletTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcOutletTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcOutletTypeEnum = IfcOutletTypeEnum; + class IfcPavementTypeEnum { + } + IfcPavementTypeEnum.FLEXIBLE = { type: 3, value: "FLEXIBLE" }; + IfcPavementTypeEnum.RIGID = { type: 3, value: "RIGID" }; + IfcPavementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcPavementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcPavementTypeEnum = IfcPavementTypeEnum; + class IfcPerformanceHistoryTypeEnum { + } + IfcPerformanceHistoryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcPerformanceHistoryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcPerformanceHistoryTypeEnum = IfcPerformanceHistoryTypeEnum; + class IfcPermeableCoveringOperationEnum { + } + IfcPermeableCoveringOperationEnum.GRILL = { type: 3, value: "GRILL" }; + IfcPermeableCoveringOperationEnum.LOUVER = { type: 3, value: "LOUVER" }; + IfcPermeableCoveringOperationEnum.SCREEN = { type: 3, value: "SCREEN" }; + IfcPermeableCoveringOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcPermeableCoveringOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcPermeableCoveringOperationEnum = IfcPermeableCoveringOperationEnum; + class IfcPermitTypeEnum { + } + IfcPermitTypeEnum.ACCESS = { type: 3, value: "ACCESS" }; + IfcPermitTypeEnum.BUILDING = { type: 3, value: "BUILDING" }; + IfcPermitTypeEnum.WORK = { type: 3, value: "WORK" }; + IfcPermitTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcPermitTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcPermitTypeEnum = IfcPermitTypeEnum; + class IfcPhysicalOrVirtualEnum { + } + IfcPhysicalOrVirtualEnum.PHYSICAL = { type: 3, value: "PHYSICAL" }; + IfcPhysicalOrVirtualEnum.VIRTUAL = { type: 3, value: "VIRTUAL" }; + IfcPhysicalOrVirtualEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcPhysicalOrVirtualEnum = IfcPhysicalOrVirtualEnum; + class IfcPileConstructionEnum { + } + IfcPileConstructionEnum.CAST_IN_PLACE = { type: 3, value: "CAST_IN_PLACE" }; + IfcPileConstructionEnum.COMPOSITE = { type: 3, value: "COMPOSITE" }; + IfcPileConstructionEnum.PRECAST_CONCRETE = { type: 3, value: "PRECAST_CONCRETE" }; + IfcPileConstructionEnum.PREFAB_STEEL = { type: 3, value: "PREFAB_STEEL" }; + IfcPileConstructionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcPileConstructionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcPileConstructionEnum = IfcPileConstructionEnum; + class IfcPileTypeEnum { + } + IfcPileTypeEnum.BORED = { type: 3, value: "BORED" }; + IfcPileTypeEnum.COHESION = { type: 3, value: "COHESION" }; + IfcPileTypeEnum.DRIVEN = { type: 3, value: "DRIVEN" }; + IfcPileTypeEnum.FRICTION = { type: 3, value: "FRICTION" }; + IfcPileTypeEnum.JETGROUTING = { type: 3, value: "JETGROUTING" }; + IfcPileTypeEnum.SUPPORT = { type: 3, value: "SUPPORT" }; + IfcPileTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcPileTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcPileTypeEnum = IfcPileTypeEnum; + class IfcPipeFittingTypeEnum { + } + IfcPipeFittingTypeEnum.BEND = { type: 3, value: "BEND" }; + IfcPipeFittingTypeEnum.CONNECTOR = { type: 3, value: "CONNECTOR" }; + IfcPipeFittingTypeEnum.ENTRY = { type: 3, value: "ENTRY" }; + IfcPipeFittingTypeEnum.EXIT = { type: 3, value: "EXIT" }; + IfcPipeFittingTypeEnum.JUNCTION = { type: 3, value: "JUNCTION" }; + IfcPipeFittingTypeEnum.OBSTRUCTION = { type: 3, value: "OBSTRUCTION" }; + IfcPipeFittingTypeEnum.TRANSITION = { type: 3, value: "TRANSITION" }; + IfcPipeFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcPipeFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcPipeFittingTypeEnum = IfcPipeFittingTypeEnum; + class IfcPipeSegmentTypeEnum { + } + IfcPipeSegmentTypeEnum.CULVERT = { type: 3, value: "CULVERT" }; + IfcPipeSegmentTypeEnum.FLEXIBLESEGMENT = { type: 3, value: "FLEXIBLESEGMENT" }; + IfcPipeSegmentTypeEnum.GUTTER = { type: 3, value: "GUTTER" }; + IfcPipeSegmentTypeEnum.RIGIDSEGMENT = { type: 3, value: "RIGIDSEGMENT" }; + IfcPipeSegmentTypeEnum.SPOOL = { type: 3, value: "SPOOL" }; + IfcPipeSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcPipeSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcPipeSegmentTypeEnum = IfcPipeSegmentTypeEnum; + class IfcPlateTypeEnum { + } + IfcPlateTypeEnum.BASE_PLATE = { type: 3, value: "BASE_PLATE" }; + IfcPlateTypeEnum.COVER_PLATE = { type: 3, value: "COVER_PLATE" }; + IfcPlateTypeEnum.CURTAIN_PANEL = { type: 3, value: "CURTAIN_PANEL" }; + IfcPlateTypeEnum.FLANGE_PLATE = { type: 3, value: "FLANGE_PLATE" }; + IfcPlateTypeEnum.GUSSET_PLATE = { type: 3, value: "GUSSET_PLATE" }; + IfcPlateTypeEnum.SHEET = { type: 3, value: "SHEET" }; + IfcPlateTypeEnum.SPLICE_PLATE = { type: 3, value: "SPLICE_PLATE" }; + IfcPlateTypeEnum.STIFFENER_PLATE = { type: 3, value: "STIFFENER_PLATE" }; + IfcPlateTypeEnum.WEB_PLATE = { type: 3, value: "WEB_PLATE" }; + IfcPlateTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcPlateTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcPlateTypeEnum = IfcPlateTypeEnum; + class IfcPreferredSurfaceCurveRepresentation { + } + IfcPreferredSurfaceCurveRepresentation.CURVE3D = { type: 3, value: "CURVE3D" }; + IfcPreferredSurfaceCurveRepresentation.PCURVE_S1 = { type: 3, value: "PCURVE_S1" }; + IfcPreferredSurfaceCurveRepresentation.PCURVE_S2 = { type: 3, value: "PCURVE_S2" }; + IFC4X32.IfcPreferredSurfaceCurveRepresentation = IfcPreferredSurfaceCurveRepresentation; + class IfcProcedureTypeEnum { + } + IfcProcedureTypeEnum.ADVICE_CAUTION = { type: 3, value: "ADVICE_CAUTION" }; + IfcProcedureTypeEnum.ADVICE_NOTE = { type: 3, value: "ADVICE_NOTE" }; + IfcProcedureTypeEnum.ADVICE_WARNING = { type: 3, value: "ADVICE_WARNING" }; + IfcProcedureTypeEnum.CALIBRATION = { type: 3, value: "CALIBRATION" }; + IfcProcedureTypeEnum.DIAGNOSTIC = { type: 3, value: "DIAGNOSTIC" }; + IfcProcedureTypeEnum.SHUTDOWN = { type: 3, value: "SHUTDOWN" }; + IfcProcedureTypeEnum.STARTUP = { type: 3, value: "STARTUP" }; + IfcProcedureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcProcedureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcProcedureTypeEnum = IfcProcedureTypeEnum; + class IfcProfileTypeEnum { + } + IfcProfileTypeEnum.AREA = { type: 3, value: "AREA" }; + IfcProfileTypeEnum.CURVE = { type: 3, value: "CURVE" }; + IFC4X32.IfcProfileTypeEnum = IfcProfileTypeEnum; + class IfcProjectOrderTypeEnum { + } + IfcProjectOrderTypeEnum.CHANGEORDER = { type: 3, value: "CHANGEORDER" }; + IfcProjectOrderTypeEnum.MAINTENANCEWORKORDER = { type: 3, value: "MAINTENANCEWORKORDER" }; + IfcProjectOrderTypeEnum.MOVEORDER = { type: 3, value: "MOVEORDER" }; + IfcProjectOrderTypeEnum.PURCHASEORDER = { type: 3, value: "PURCHASEORDER" }; + IfcProjectOrderTypeEnum.WORKORDER = { type: 3, value: "WORKORDER" }; + IfcProjectOrderTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcProjectOrderTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcProjectOrderTypeEnum = IfcProjectOrderTypeEnum; + class IfcProjectedOrTrueLengthEnum { + } + IfcProjectedOrTrueLengthEnum.PROJECTED_LENGTH = { type: 3, value: "PROJECTED_LENGTH" }; + IfcProjectedOrTrueLengthEnum.TRUE_LENGTH = { type: 3, value: "TRUE_LENGTH" }; + IFC4X32.IfcProjectedOrTrueLengthEnum = IfcProjectedOrTrueLengthEnum; + class IfcProjectionElementTypeEnum { + } + IfcProjectionElementTypeEnum.BLISTER = { type: 3, value: "BLISTER" }; + IfcProjectionElementTypeEnum.DEVIATOR = { type: 3, value: "DEVIATOR" }; + IfcProjectionElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcProjectionElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcProjectionElementTypeEnum = IfcProjectionElementTypeEnum; + class IfcPropertySetTemplateTypeEnum { + } + IfcPropertySetTemplateTypeEnum.PSET_MATERIALDRIVEN = { type: 3, value: "PSET_MATERIALDRIVEN" }; + IfcPropertySetTemplateTypeEnum.PSET_OCCURRENCEDRIVEN = { type: 3, value: "PSET_OCCURRENCEDRIVEN" }; + IfcPropertySetTemplateTypeEnum.PSET_PERFORMANCEDRIVEN = { type: 3, value: "PSET_PERFORMANCEDRIVEN" }; + IfcPropertySetTemplateTypeEnum.PSET_PROFILEDRIVEN = { type: 3, value: "PSET_PROFILEDRIVEN" }; + IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENONLY = { type: 3, value: "PSET_TYPEDRIVENONLY" }; + IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENOVERRIDE = { type: 3, value: "PSET_TYPEDRIVENOVERRIDE" }; + IfcPropertySetTemplateTypeEnum.QTO_OCCURRENCEDRIVEN = { type: 3, value: "QTO_OCCURRENCEDRIVEN" }; + IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENONLY = { type: 3, value: "QTO_TYPEDRIVENONLY" }; + IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENOVERRIDE = { type: 3, value: "QTO_TYPEDRIVENOVERRIDE" }; + IfcPropertySetTemplateTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcPropertySetTemplateTypeEnum = IfcPropertySetTemplateTypeEnum; + class IfcProtectiveDeviceTrippingUnitTypeEnum { + } + IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTROMAGNETIC = { type: 3, value: "ELECTROMAGNETIC" }; + IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTRONIC = { type: 3, value: "ELECTRONIC" }; + IfcProtectiveDeviceTrippingUnitTypeEnum.RESIDUALCURRENT = { type: 3, value: "RESIDUALCURRENT" }; + IfcProtectiveDeviceTrippingUnitTypeEnum.THERMAL = { type: 3, value: "THERMAL" }; + IfcProtectiveDeviceTrippingUnitTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcProtectiveDeviceTrippingUnitTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcProtectiveDeviceTrippingUnitTypeEnum = IfcProtectiveDeviceTrippingUnitTypeEnum; + class IfcProtectiveDeviceTypeEnum { + } + IfcProtectiveDeviceTypeEnum.ANTI_ARCING_DEVICE = { type: 3, value: "ANTI_ARCING_DEVICE" }; + IfcProtectiveDeviceTypeEnum.CIRCUITBREAKER = { type: 3, value: "CIRCUITBREAKER" }; + IfcProtectiveDeviceTypeEnum.EARTHINGSWITCH = { type: 3, value: "EARTHINGSWITCH" }; + IfcProtectiveDeviceTypeEnum.EARTHLEAKAGECIRCUITBREAKER = { type: 3, value: "EARTHLEAKAGECIRCUITBREAKER" }; + IfcProtectiveDeviceTypeEnum.FUSEDISCONNECTOR = { type: 3, value: "FUSEDISCONNECTOR" }; + IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTCIRCUITBREAKER = { type: 3, value: "RESIDUALCURRENTCIRCUITBREAKER" }; + IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTSWITCH = { type: 3, value: "RESIDUALCURRENTSWITCH" }; + IfcProtectiveDeviceTypeEnum.SPARKGAP = { type: 3, value: "SPARKGAP" }; + IfcProtectiveDeviceTypeEnum.VARISTOR = { type: 3, value: "VARISTOR" }; + IfcProtectiveDeviceTypeEnum.VOLTAGELIMITER = { type: 3, value: "VOLTAGELIMITER" }; + IfcProtectiveDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcProtectiveDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcProtectiveDeviceTypeEnum = IfcProtectiveDeviceTypeEnum; + class IfcPumpTypeEnum { + } + IfcPumpTypeEnum.CIRCULATOR = { type: 3, value: "CIRCULATOR" }; + IfcPumpTypeEnum.ENDSUCTION = { type: 3, value: "ENDSUCTION" }; + IfcPumpTypeEnum.SPLITCASE = { type: 3, value: "SPLITCASE" }; + IfcPumpTypeEnum.SUBMERSIBLEPUMP = { type: 3, value: "SUBMERSIBLEPUMP" }; + IfcPumpTypeEnum.SUMPPUMP = { type: 3, value: "SUMPPUMP" }; + IfcPumpTypeEnum.VERTICALINLINE = { type: 3, value: "VERTICALINLINE" }; + IfcPumpTypeEnum.VERTICALTURBINE = { type: 3, value: "VERTICALTURBINE" }; + IfcPumpTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcPumpTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcPumpTypeEnum = IfcPumpTypeEnum; + class IfcRailTypeEnum { + } + IfcRailTypeEnum.BLADE = { type: 3, value: "BLADE" }; + IfcRailTypeEnum.CHECKRAIL = { type: 3, value: "CHECKRAIL" }; + IfcRailTypeEnum.GUARDRAIL = { type: 3, value: "GUARDRAIL" }; + IfcRailTypeEnum.RACKRAIL = { type: 3, value: "RACKRAIL" }; + IfcRailTypeEnum.RAIL = { type: 3, value: "RAIL" }; + IfcRailTypeEnum.STOCKRAIL = { type: 3, value: "STOCKRAIL" }; + IfcRailTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcRailTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcRailTypeEnum = IfcRailTypeEnum; + class IfcRailingTypeEnum { + } + IfcRailingTypeEnum.BALUSTRADE = { type: 3, value: "BALUSTRADE" }; + IfcRailingTypeEnum.FENCE = { type: 3, value: "FENCE" }; + IfcRailingTypeEnum.GUARDRAIL = { type: 3, value: "GUARDRAIL" }; + IfcRailingTypeEnum.HANDRAIL = { type: 3, value: "HANDRAIL" }; + IfcRailingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcRailingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcRailingTypeEnum = IfcRailingTypeEnum; + class IfcRailwayPartTypeEnum { + } + IfcRailwayPartTypeEnum.DILATATIONSUPERSTRUCTURE = { type: 3, value: "DILATATIONSUPERSTRUCTURE" }; + IfcRailwayPartTypeEnum.LINESIDESTRUCTURE = { type: 3, value: "LINESIDESTRUCTURE" }; + IfcRailwayPartTypeEnum.LINESIDESTRUCTUREPART = { type: 3, value: "LINESIDESTRUCTUREPART" }; + IfcRailwayPartTypeEnum.PLAINTRACKSUPERSTRUCTURE = { type: 3, value: "PLAINTRACKSUPERSTRUCTURE" }; + IfcRailwayPartTypeEnum.SUPERSTRUCTURE = { type: 3, value: "SUPERSTRUCTURE" }; + IfcRailwayPartTypeEnum.TRACKSTRUCTURE = { type: 3, value: "TRACKSTRUCTURE" }; + IfcRailwayPartTypeEnum.TRACKSTRUCTUREPART = { type: 3, value: "TRACKSTRUCTUREPART" }; + IfcRailwayPartTypeEnum.TURNOUTSUPERSTRUCTURE = { type: 3, value: "TURNOUTSUPERSTRUCTURE" }; + IfcRailwayPartTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcRailwayPartTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcRailwayPartTypeEnum = IfcRailwayPartTypeEnum; + class IfcRailwayTypeEnum { + } + IfcRailwayTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcRailwayTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcRailwayTypeEnum = IfcRailwayTypeEnum; + class IfcRampFlightTypeEnum { + } + IfcRampFlightTypeEnum.SPIRAL = { type: 3, value: "SPIRAL" }; + IfcRampFlightTypeEnum.STRAIGHT = { type: 3, value: "STRAIGHT" }; + IfcRampFlightTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcRampFlightTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcRampFlightTypeEnum = IfcRampFlightTypeEnum; + class IfcRampTypeEnum { + } + IfcRampTypeEnum.HALF_TURN_RAMP = { type: 3, value: "HALF_TURN_RAMP" }; + IfcRampTypeEnum.QUARTER_TURN_RAMP = { type: 3, value: "QUARTER_TURN_RAMP" }; + IfcRampTypeEnum.SPIRAL_RAMP = { type: 3, value: "SPIRAL_RAMP" }; + IfcRampTypeEnum.STRAIGHT_RUN_RAMP = { type: 3, value: "STRAIGHT_RUN_RAMP" }; + IfcRampTypeEnum.TWO_QUARTER_TURN_RAMP = { type: 3, value: "TWO_QUARTER_TURN_RAMP" }; + IfcRampTypeEnum.TWO_STRAIGHT_RUN_RAMP = { type: 3, value: "TWO_STRAIGHT_RUN_RAMP" }; + IfcRampTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcRampTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcRampTypeEnum = IfcRampTypeEnum; + class IfcRecurrenceTypeEnum { + } + IfcRecurrenceTypeEnum.BY_DAY_COUNT = { type: 3, value: "BY_DAY_COUNT" }; + IfcRecurrenceTypeEnum.BY_WEEKDAY_COUNT = { type: 3, value: "BY_WEEKDAY_COUNT" }; + IfcRecurrenceTypeEnum.DAILY = { type: 3, value: "DAILY" }; + IfcRecurrenceTypeEnum.MONTHLY_BY_DAY_OF_MONTH = { type: 3, value: "MONTHLY_BY_DAY_OF_MONTH" }; + IfcRecurrenceTypeEnum.MONTHLY_BY_POSITION = { type: 3, value: "MONTHLY_BY_POSITION" }; + IfcRecurrenceTypeEnum.WEEKLY = { type: 3, value: "WEEKLY" }; + IfcRecurrenceTypeEnum.YEARLY_BY_DAY_OF_MONTH = { type: 3, value: "YEARLY_BY_DAY_OF_MONTH" }; + IfcRecurrenceTypeEnum.YEARLY_BY_POSITION = { type: 3, value: "YEARLY_BY_POSITION" }; + IFC4X32.IfcRecurrenceTypeEnum = IfcRecurrenceTypeEnum; + class IfcReferentTypeEnum { + } + IfcReferentTypeEnum.BOUNDARY = { type: 3, value: "BOUNDARY" }; + IfcReferentTypeEnum.INTERSECTION = { type: 3, value: "INTERSECTION" }; + IfcReferentTypeEnum.KILOPOINT = { type: 3, value: "KILOPOINT" }; + IfcReferentTypeEnum.LANDMARK = { type: 3, value: "LANDMARK" }; + IfcReferentTypeEnum.MILEPOINT = { type: 3, value: "MILEPOINT" }; + IfcReferentTypeEnum.POSITION = { type: 3, value: "POSITION" }; + IfcReferentTypeEnum.REFERENCEMARKER = { type: 3, value: "REFERENCEMARKER" }; + IfcReferentTypeEnum.STATION = { type: 3, value: "STATION" }; + IfcReferentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcReferentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcReferentTypeEnum = IfcReferentTypeEnum; + class IfcReflectanceMethodEnum { + } + IfcReflectanceMethodEnum.BLINN = { type: 3, value: "BLINN" }; + IfcReflectanceMethodEnum.FLAT = { type: 3, value: "FLAT" }; + IfcReflectanceMethodEnum.GLASS = { type: 3, value: "GLASS" }; + IfcReflectanceMethodEnum.MATT = { type: 3, value: "MATT" }; + IfcReflectanceMethodEnum.METAL = { type: 3, value: "METAL" }; + IfcReflectanceMethodEnum.MIRROR = { type: 3, value: "MIRROR" }; + IfcReflectanceMethodEnum.PHONG = { type: 3, value: "PHONG" }; + IfcReflectanceMethodEnum.PHYSICAL = { type: 3, value: "PHYSICAL" }; + IfcReflectanceMethodEnum.PLASTIC = { type: 3, value: "PLASTIC" }; + IfcReflectanceMethodEnum.STRAUSS = { type: 3, value: "STRAUSS" }; + IfcReflectanceMethodEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcReflectanceMethodEnum = IfcReflectanceMethodEnum; + class IfcReinforcedSoilTypeEnum { + } + IfcReinforcedSoilTypeEnum.DYNAMICALLYCOMPACTED = { type: 3, value: "DYNAMICALLYCOMPACTED" }; + IfcReinforcedSoilTypeEnum.GROUTED = { type: 3, value: "GROUTED" }; + IfcReinforcedSoilTypeEnum.REPLACED = { type: 3, value: "REPLACED" }; + IfcReinforcedSoilTypeEnum.ROLLERCOMPACTED = { type: 3, value: "ROLLERCOMPACTED" }; + IfcReinforcedSoilTypeEnum.SURCHARGEPRELOADED = { type: 3, value: "SURCHARGEPRELOADED" }; + IfcReinforcedSoilTypeEnum.VERTICALLYDRAINED = { type: 3, value: "VERTICALLYDRAINED" }; + IfcReinforcedSoilTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcReinforcedSoilTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcReinforcedSoilTypeEnum = IfcReinforcedSoilTypeEnum; + class IfcReinforcingBarRoleEnum { + } + IfcReinforcingBarRoleEnum.ANCHORING = { type: 3, value: "ANCHORING" }; + IfcReinforcingBarRoleEnum.EDGE = { type: 3, value: "EDGE" }; + IfcReinforcingBarRoleEnum.LIGATURE = { type: 3, value: "LIGATURE" }; + IfcReinforcingBarRoleEnum.MAIN = { type: 3, value: "MAIN" }; + IfcReinforcingBarRoleEnum.PUNCHING = { type: 3, value: "PUNCHING" }; + IfcReinforcingBarRoleEnum.RING = { type: 3, value: "RING" }; + IfcReinforcingBarRoleEnum.SHEAR = { type: 3, value: "SHEAR" }; + IfcReinforcingBarRoleEnum.STUD = { type: 3, value: "STUD" }; + IfcReinforcingBarRoleEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcReinforcingBarRoleEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcReinforcingBarRoleEnum = IfcReinforcingBarRoleEnum; + class IfcReinforcingBarSurfaceEnum { + } + IfcReinforcingBarSurfaceEnum.PLAIN = { type: 3, value: "PLAIN" }; + IfcReinforcingBarSurfaceEnum.TEXTURED = { type: 3, value: "TEXTURED" }; + IFC4X32.IfcReinforcingBarSurfaceEnum = IfcReinforcingBarSurfaceEnum; + class IfcReinforcingBarTypeEnum { + } + IfcReinforcingBarTypeEnum.ANCHORING = { type: 3, value: "ANCHORING" }; + IfcReinforcingBarTypeEnum.EDGE = { type: 3, value: "EDGE" }; + IfcReinforcingBarTypeEnum.LIGATURE = { type: 3, value: "LIGATURE" }; + IfcReinforcingBarTypeEnum.MAIN = { type: 3, value: "MAIN" }; + IfcReinforcingBarTypeEnum.PUNCHING = { type: 3, value: "PUNCHING" }; + IfcReinforcingBarTypeEnum.RING = { type: 3, value: "RING" }; + IfcReinforcingBarTypeEnum.SHEAR = { type: 3, value: "SHEAR" }; + IfcReinforcingBarTypeEnum.SPACEBAR = { type: 3, value: "SPACEBAR" }; + IfcReinforcingBarTypeEnum.STUD = { type: 3, value: "STUD" }; + IfcReinforcingBarTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcReinforcingBarTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcReinforcingBarTypeEnum = IfcReinforcingBarTypeEnum; + class IfcReinforcingMeshTypeEnum { + } + IfcReinforcingMeshTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcReinforcingMeshTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcReinforcingMeshTypeEnum = IfcReinforcingMeshTypeEnum; + class IfcRoadPartTypeEnum { + } + IfcRoadPartTypeEnum.BICYCLECROSSING = { type: 3, value: "BICYCLECROSSING" }; + IfcRoadPartTypeEnum.BUS_STOP = { type: 3, value: "BUS_STOP" }; + IfcRoadPartTypeEnum.CARRIAGEWAY = { type: 3, value: "CARRIAGEWAY" }; + IfcRoadPartTypeEnum.CENTRALISLAND = { type: 3, value: "CENTRALISLAND" }; + IfcRoadPartTypeEnum.CENTRALRESERVE = { type: 3, value: "CENTRALRESERVE" }; + IfcRoadPartTypeEnum.HARDSHOULDER = { type: 3, value: "HARDSHOULDER" }; + IfcRoadPartTypeEnum.INTERSECTION = { type: 3, value: "INTERSECTION" }; + IfcRoadPartTypeEnum.LAYBY = { type: 3, value: "LAYBY" }; + IfcRoadPartTypeEnum.PARKINGBAY = { type: 3, value: "PARKINGBAY" }; + IfcRoadPartTypeEnum.PASSINGBAY = { type: 3, value: "PASSINGBAY" }; + IfcRoadPartTypeEnum.PEDESTRIAN_CROSSING = { type: 3, value: "PEDESTRIAN_CROSSING" }; + IfcRoadPartTypeEnum.RAILWAYCROSSING = { type: 3, value: "RAILWAYCROSSING" }; + IfcRoadPartTypeEnum.REFUGEISLAND = { type: 3, value: "REFUGEISLAND" }; + IfcRoadPartTypeEnum.ROADSEGMENT = { type: 3, value: "ROADSEGMENT" }; + IfcRoadPartTypeEnum.ROADSIDE = { type: 3, value: "ROADSIDE" }; + IfcRoadPartTypeEnum.ROADSIDEPART = { type: 3, value: "ROADSIDEPART" }; + IfcRoadPartTypeEnum.ROADWAYPLATEAU = { type: 3, value: "ROADWAYPLATEAU" }; + IfcRoadPartTypeEnum.ROUNDABOUT = { type: 3, value: "ROUNDABOUT" }; + IfcRoadPartTypeEnum.SHOULDER = { type: 3, value: "SHOULDER" }; + IfcRoadPartTypeEnum.SIDEWALK = { type: 3, value: "SIDEWALK" }; + IfcRoadPartTypeEnum.SOFTSHOULDER = { type: 3, value: "SOFTSHOULDER" }; + IfcRoadPartTypeEnum.TOLLPLAZA = { type: 3, value: "TOLLPLAZA" }; + IfcRoadPartTypeEnum.TRAFFICISLAND = { type: 3, value: "TRAFFICISLAND" }; + IfcRoadPartTypeEnum.TRAFFICLANE = { type: 3, value: "TRAFFICLANE" }; + IfcRoadPartTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcRoadPartTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcRoadPartTypeEnum = IfcRoadPartTypeEnum; + class IfcRoadTypeEnum { + } + IfcRoadTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcRoadTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcRoadTypeEnum = IfcRoadTypeEnum; + class IfcRoleEnum { + } + IfcRoleEnum.ARCHITECT = { type: 3, value: "ARCHITECT" }; + IfcRoleEnum.BUILDINGOPERATOR = { type: 3, value: "BUILDINGOPERATOR" }; + IfcRoleEnum.BUILDINGOWNER = { type: 3, value: "BUILDINGOWNER" }; + IfcRoleEnum.CIVILENGINEER = { type: 3, value: "CIVILENGINEER" }; + IfcRoleEnum.CLIENT = { type: 3, value: "CLIENT" }; + IfcRoleEnum.COMMISSIONINGENGINEER = { type: 3, value: "COMMISSIONINGENGINEER" }; + IfcRoleEnum.CONSTRUCTIONMANAGER = { type: 3, value: "CONSTRUCTIONMANAGER" }; + IfcRoleEnum.CONSULTANT = { type: 3, value: "CONSULTANT" }; + IfcRoleEnum.CONTRACTOR = { type: 3, value: "CONTRACTOR" }; + IfcRoleEnum.COSTENGINEER = { type: 3, value: "COSTENGINEER" }; + IfcRoleEnum.ELECTRICALENGINEER = { type: 3, value: "ELECTRICALENGINEER" }; + IfcRoleEnum.ENGINEER = { type: 3, value: "ENGINEER" }; + IfcRoleEnum.FACILITIESMANAGER = { type: 3, value: "FACILITIESMANAGER" }; + IfcRoleEnum.FIELDCONSTRUCTIONMANAGER = { type: 3, value: "FIELDCONSTRUCTIONMANAGER" }; + IfcRoleEnum.MANUFACTURER = { type: 3, value: "MANUFACTURER" }; + IfcRoleEnum.MECHANICALENGINEER = { type: 3, value: "MECHANICALENGINEER" }; + IfcRoleEnum.OWNER = { type: 3, value: "OWNER" }; + IfcRoleEnum.PROJECTMANAGER = { type: 3, value: "PROJECTMANAGER" }; + IfcRoleEnum.RESELLER = { type: 3, value: "RESELLER" }; + IfcRoleEnum.STRUCTURALENGINEER = { type: 3, value: "STRUCTURALENGINEER" }; + IfcRoleEnum.SUBCONTRACTOR = { type: 3, value: "SUBCONTRACTOR" }; + IfcRoleEnum.SUPPLIER = { type: 3, value: "SUPPLIER" }; + IfcRoleEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IFC4X32.IfcRoleEnum = IfcRoleEnum; + class IfcRoofTypeEnum { + } + IfcRoofTypeEnum.BARREL_ROOF = { type: 3, value: "BARREL_ROOF" }; + IfcRoofTypeEnum.BUTTERFLY_ROOF = { type: 3, value: "BUTTERFLY_ROOF" }; + IfcRoofTypeEnum.DOME_ROOF = { type: 3, value: "DOME_ROOF" }; + IfcRoofTypeEnum.FLAT_ROOF = { type: 3, value: "FLAT_ROOF" }; + IfcRoofTypeEnum.FREEFORM = { type: 3, value: "FREEFORM" }; + IfcRoofTypeEnum.GABLE_ROOF = { type: 3, value: "GABLE_ROOF" }; + IfcRoofTypeEnum.GAMBREL_ROOF = { type: 3, value: "GAMBREL_ROOF" }; + IfcRoofTypeEnum.HIPPED_GABLE_ROOF = { type: 3, value: "HIPPED_GABLE_ROOF" }; + IfcRoofTypeEnum.HIP_ROOF = { type: 3, value: "HIP_ROOF" }; + IfcRoofTypeEnum.MANSARD_ROOF = { type: 3, value: "MANSARD_ROOF" }; + IfcRoofTypeEnum.PAVILION_ROOF = { type: 3, value: "PAVILION_ROOF" }; + IfcRoofTypeEnum.RAINBOW_ROOF = { type: 3, value: "RAINBOW_ROOF" }; + IfcRoofTypeEnum.SHED_ROOF = { type: 3, value: "SHED_ROOF" }; + IfcRoofTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcRoofTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcRoofTypeEnum = IfcRoofTypeEnum; + class IfcSIPrefix { + } + IfcSIPrefix.ATTO = { type: 3, value: "ATTO" }; + IfcSIPrefix.CENTI = { type: 3, value: "CENTI" }; + IfcSIPrefix.DECA = { type: 3, value: "DECA" }; + IfcSIPrefix.DECI = { type: 3, value: "DECI" }; + IfcSIPrefix.EXA = { type: 3, value: "EXA" }; + IfcSIPrefix.FEMTO = { type: 3, value: "FEMTO" }; + IfcSIPrefix.GIGA = { type: 3, value: "GIGA" }; + IfcSIPrefix.HECTO = { type: 3, value: "HECTO" }; + IfcSIPrefix.KILO = { type: 3, value: "KILO" }; + IfcSIPrefix.MEGA = { type: 3, value: "MEGA" }; + IfcSIPrefix.MICRO = { type: 3, value: "MICRO" }; + IfcSIPrefix.MILLI = { type: 3, value: "MILLI" }; + IfcSIPrefix.NANO = { type: 3, value: "NANO" }; + IfcSIPrefix.PETA = { type: 3, value: "PETA" }; + IfcSIPrefix.PICO = { type: 3, value: "PICO" }; + IfcSIPrefix.TERA = { type: 3, value: "TERA" }; + IFC4X32.IfcSIPrefix = IfcSIPrefix; + class IfcSIUnitName { + } + IfcSIUnitName.AMPERE = { type: 3, value: "AMPERE" }; + IfcSIUnitName.BECQUEREL = { type: 3, value: "BECQUEREL" }; + IfcSIUnitName.CANDELA = { type: 3, value: "CANDELA" }; + IfcSIUnitName.COULOMB = { type: 3, value: "COULOMB" }; + IfcSIUnitName.CUBIC_METRE = { type: 3, value: "CUBIC_METRE" }; + IfcSIUnitName.DEGREE_CELSIUS = { type: 3, value: "DEGREE_CELSIUS" }; + IfcSIUnitName.FARAD = { type: 3, value: "FARAD" }; + IfcSIUnitName.GRAM = { type: 3, value: "GRAM" }; + IfcSIUnitName.GRAY = { type: 3, value: "GRAY" }; + IfcSIUnitName.HENRY = { type: 3, value: "HENRY" }; + IfcSIUnitName.HERTZ = { type: 3, value: "HERTZ" }; + IfcSIUnitName.JOULE = { type: 3, value: "JOULE" }; + IfcSIUnitName.KELVIN = { type: 3, value: "KELVIN" }; + IfcSIUnitName.LUMEN = { type: 3, value: "LUMEN" }; + IfcSIUnitName.LUX = { type: 3, value: "LUX" }; + IfcSIUnitName.METRE = { type: 3, value: "METRE" }; + IfcSIUnitName.MOLE = { type: 3, value: "MOLE" }; + IfcSIUnitName.NEWTON = { type: 3, value: "NEWTON" }; + IfcSIUnitName.OHM = { type: 3, value: "OHM" }; + IfcSIUnitName.PASCAL = { type: 3, value: "PASCAL" }; + IfcSIUnitName.RADIAN = { type: 3, value: "RADIAN" }; + IfcSIUnitName.SECOND = { type: 3, value: "SECOND" }; + IfcSIUnitName.SIEMENS = { type: 3, value: "SIEMENS" }; + IfcSIUnitName.SIEVERT = { type: 3, value: "SIEVERT" }; + IfcSIUnitName.SQUARE_METRE = { type: 3, value: "SQUARE_METRE" }; + IfcSIUnitName.STERADIAN = { type: 3, value: "STERADIAN" }; + IfcSIUnitName.TESLA = { type: 3, value: "TESLA" }; + IfcSIUnitName.VOLT = { type: 3, value: "VOLT" }; + IfcSIUnitName.WATT = { type: 3, value: "WATT" }; + IfcSIUnitName.WEBER = { type: 3, value: "WEBER" }; + IFC4X32.IfcSIUnitName = IfcSIUnitName; + class IfcSanitaryTerminalTypeEnum { + } + IfcSanitaryTerminalTypeEnum.BATH = { type: 3, value: "BATH" }; + IfcSanitaryTerminalTypeEnum.BIDET = { type: 3, value: "BIDET" }; + IfcSanitaryTerminalTypeEnum.CISTERN = { type: 3, value: "CISTERN" }; + IfcSanitaryTerminalTypeEnum.SANITARYFOUNTAIN = { type: 3, value: "SANITARYFOUNTAIN" }; + IfcSanitaryTerminalTypeEnum.SHOWER = { type: 3, value: "SHOWER" }; + IfcSanitaryTerminalTypeEnum.SINK = { type: 3, value: "SINK" }; + IfcSanitaryTerminalTypeEnum.TOILETPAN = { type: 3, value: "TOILETPAN" }; + IfcSanitaryTerminalTypeEnum.URINAL = { type: 3, value: "URINAL" }; + IfcSanitaryTerminalTypeEnum.WASHHANDBASIN = { type: 3, value: "WASHHANDBASIN" }; + IfcSanitaryTerminalTypeEnum.WCSEAT = { type: 3, value: "WCSEAT" }; + IfcSanitaryTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcSanitaryTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcSanitaryTerminalTypeEnum = IfcSanitaryTerminalTypeEnum; + class IfcSectionTypeEnum { + } + IfcSectionTypeEnum.TAPERED = { type: 3, value: "TAPERED" }; + IfcSectionTypeEnum.UNIFORM = { type: 3, value: "UNIFORM" }; + IFC4X32.IfcSectionTypeEnum = IfcSectionTypeEnum; + class IfcSensorTypeEnum { + } + IfcSensorTypeEnum.CO2SENSOR = { type: 3, value: "CO2SENSOR" }; + IfcSensorTypeEnum.CONDUCTANCESENSOR = { type: 3, value: "CONDUCTANCESENSOR" }; + IfcSensorTypeEnum.CONTACTSENSOR = { type: 3, value: "CONTACTSENSOR" }; + IfcSensorTypeEnum.COSENSOR = { type: 3, value: "COSENSOR" }; + IfcSensorTypeEnum.EARTHQUAKESENSOR = { type: 3, value: "EARTHQUAKESENSOR" }; + IfcSensorTypeEnum.FIRESENSOR = { type: 3, value: "FIRESENSOR" }; + IfcSensorTypeEnum.FLOWSENSOR = { type: 3, value: "FLOWSENSOR" }; + IfcSensorTypeEnum.FOREIGNOBJECTDETECTIONSENSOR = { type: 3, value: "FOREIGNOBJECTDETECTIONSENSOR" }; + IfcSensorTypeEnum.FROSTSENSOR = { type: 3, value: "FROSTSENSOR" }; + IfcSensorTypeEnum.GASSENSOR = { type: 3, value: "GASSENSOR" }; + IfcSensorTypeEnum.HEATSENSOR = { type: 3, value: "HEATSENSOR" }; + IfcSensorTypeEnum.HUMIDITYSENSOR = { type: 3, value: "HUMIDITYSENSOR" }; + IfcSensorTypeEnum.IDENTIFIERSENSOR = { type: 3, value: "IDENTIFIERSENSOR" }; + IfcSensorTypeEnum.IONCONCENTRATIONSENSOR = { type: 3, value: "IONCONCENTRATIONSENSOR" }; + IfcSensorTypeEnum.LEVELSENSOR = { type: 3, value: "LEVELSENSOR" }; + IfcSensorTypeEnum.LIGHTSENSOR = { type: 3, value: "LIGHTSENSOR" }; + IfcSensorTypeEnum.MOISTURESENSOR = { type: 3, value: "MOISTURESENSOR" }; + IfcSensorTypeEnum.MOVEMENTSENSOR = { type: 3, value: "MOVEMENTSENSOR" }; + IfcSensorTypeEnum.OBSTACLESENSOR = { type: 3, value: "OBSTACLESENSOR" }; + IfcSensorTypeEnum.PHSENSOR = { type: 3, value: "PHSENSOR" }; + IfcSensorTypeEnum.PRESSURESENSOR = { type: 3, value: "PRESSURESENSOR" }; + IfcSensorTypeEnum.RADIATIONSENSOR = { type: 3, value: "RADIATIONSENSOR" }; + IfcSensorTypeEnum.RADIOACTIVITYSENSOR = { type: 3, value: "RADIOACTIVITYSENSOR" }; + IfcSensorTypeEnum.RAINSENSOR = { type: 3, value: "RAINSENSOR" }; + IfcSensorTypeEnum.SMOKESENSOR = { type: 3, value: "SMOKESENSOR" }; + IfcSensorTypeEnum.SNOWDEPTHSENSOR = { type: 3, value: "SNOWDEPTHSENSOR" }; + IfcSensorTypeEnum.SOUNDSENSOR = { type: 3, value: "SOUNDSENSOR" }; + IfcSensorTypeEnum.TEMPERATURESENSOR = { type: 3, value: "TEMPERATURESENSOR" }; + IfcSensorTypeEnum.TRAINSENSOR = { type: 3, value: "TRAINSENSOR" }; + IfcSensorTypeEnum.TURNOUTCLOSURESENSOR = { type: 3, value: "TURNOUTCLOSURESENSOR" }; + IfcSensorTypeEnum.WHEELSENSOR = { type: 3, value: "WHEELSENSOR" }; + IfcSensorTypeEnum.WINDSENSOR = { type: 3, value: "WINDSENSOR" }; + IfcSensorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcSensorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcSensorTypeEnum = IfcSensorTypeEnum; + class IfcSequenceEnum { + } + IfcSequenceEnum.FINISH_FINISH = { type: 3, value: "FINISH_FINISH" }; + IfcSequenceEnum.FINISH_START = { type: 3, value: "FINISH_START" }; + IfcSequenceEnum.START_FINISH = { type: 3, value: "START_FINISH" }; + IfcSequenceEnum.START_START = { type: 3, value: "START_START" }; + IfcSequenceEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcSequenceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcSequenceEnum = IfcSequenceEnum; + class IfcShadingDeviceTypeEnum { + } + IfcShadingDeviceTypeEnum.AWNING = { type: 3, value: "AWNING" }; + IfcShadingDeviceTypeEnum.JALOUSIE = { type: 3, value: "JALOUSIE" }; + IfcShadingDeviceTypeEnum.SHUTTER = { type: 3, value: "SHUTTER" }; + IfcShadingDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcShadingDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcShadingDeviceTypeEnum = IfcShadingDeviceTypeEnum; + class IfcSignTypeEnum { + } + IfcSignTypeEnum.MARKER = { type: 3, value: "MARKER" }; + IfcSignTypeEnum.MIRROR = { type: 3, value: "MIRROR" }; + IfcSignTypeEnum.PICTORAL = { type: 3, value: "PICTORAL" }; + IfcSignTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcSignTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcSignTypeEnum = IfcSignTypeEnum; + class IfcSignalTypeEnum { + } + IfcSignalTypeEnum.AUDIO = { type: 3, value: "AUDIO" }; + IfcSignalTypeEnum.MIXED = { type: 3, value: "MIXED" }; + IfcSignalTypeEnum.VISUAL = { type: 3, value: "VISUAL" }; + IfcSignalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcSignalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcSignalTypeEnum = IfcSignalTypeEnum; + class IfcSimplePropertyTemplateTypeEnum { + } + IfcSimplePropertyTemplateTypeEnum.P_BOUNDEDVALUE = { type: 3, value: "P_BOUNDEDVALUE" }; + IfcSimplePropertyTemplateTypeEnum.P_ENUMERATEDVALUE = { type: 3, value: "P_ENUMERATEDVALUE" }; + IfcSimplePropertyTemplateTypeEnum.P_LISTVALUE = { type: 3, value: "P_LISTVALUE" }; + IfcSimplePropertyTemplateTypeEnum.P_REFERENCEVALUE = { type: 3, value: "P_REFERENCEVALUE" }; + IfcSimplePropertyTemplateTypeEnum.P_SINGLEVALUE = { type: 3, value: "P_SINGLEVALUE" }; + IfcSimplePropertyTemplateTypeEnum.P_TABLEVALUE = { type: 3, value: "P_TABLEVALUE" }; + IfcSimplePropertyTemplateTypeEnum.Q_AREA = { type: 3, value: "Q_AREA" }; + IfcSimplePropertyTemplateTypeEnum.Q_COUNT = { type: 3, value: "Q_COUNT" }; + IfcSimplePropertyTemplateTypeEnum.Q_LENGTH = { type: 3, value: "Q_LENGTH" }; + IfcSimplePropertyTemplateTypeEnum.Q_NUMBER = { type: 3, value: "Q_NUMBER" }; + IfcSimplePropertyTemplateTypeEnum.Q_TIME = { type: 3, value: "Q_TIME" }; + IfcSimplePropertyTemplateTypeEnum.Q_VOLUME = { type: 3, value: "Q_VOLUME" }; + IfcSimplePropertyTemplateTypeEnum.Q_WEIGHT = { type: 3, value: "Q_WEIGHT" }; + IFC4X32.IfcSimplePropertyTemplateTypeEnum = IfcSimplePropertyTemplateTypeEnum; + class IfcSlabTypeEnum { + } + IfcSlabTypeEnum.APPROACH_SLAB = { type: 3, value: "APPROACH_SLAB" }; + IfcSlabTypeEnum.BASESLAB = { type: 3, value: "BASESLAB" }; + IfcSlabTypeEnum.FLOOR = { type: 3, value: "FLOOR" }; + IfcSlabTypeEnum.LANDING = { type: 3, value: "LANDING" }; + IfcSlabTypeEnum.PAVING = { type: 3, value: "PAVING" }; + IfcSlabTypeEnum.ROOF = { type: 3, value: "ROOF" }; + IfcSlabTypeEnum.SIDEWALK = { type: 3, value: "SIDEWALK" }; + IfcSlabTypeEnum.TRACKSLAB = { type: 3, value: "TRACKSLAB" }; + IfcSlabTypeEnum.WEARING = { type: 3, value: "WEARING" }; + IfcSlabTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcSlabTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcSlabTypeEnum = IfcSlabTypeEnum; + class IfcSolarDeviceTypeEnum { + } + IfcSolarDeviceTypeEnum.SOLARCOLLECTOR = { type: 3, value: "SOLARCOLLECTOR" }; + IfcSolarDeviceTypeEnum.SOLARPANEL = { type: 3, value: "SOLARPANEL" }; + IfcSolarDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcSolarDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcSolarDeviceTypeEnum = IfcSolarDeviceTypeEnum; + class IfcSpaceHeaterTypeEnum { + } + IfcSpaceHeaterTypeEnum.CONVECTOR = { type: 3, value: "CONVECTOR" }; + IfcSpaceHeaterTypeEnum.RADIATOR = { type: 3, value: "RADIATOR" }; + IfcSpaceHeaterTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcSpaceHeaterTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcSpaceHeaterTypeEnum = IfcSpaceHeaterTypeEnum; + class IfcSpaceTypeEnum { + } + IfcSpaceTypeEnum.BERTH = { type: 3, value: "BERTH" }; + IfcSpaceTypeEnum.EXTERNAL = { type: 3, value: "EXTERNAL" }; + IfcSpaceTypeEnum.GFA = { type: 3, value: "GFA" }; + IfcSpaceTypeEnum.INTERNAL = { type: 3, value: "INTERNAL" }; + IfcSpaceTypeEnum.PARKING = { type: 3, value: "PARKING" }; + IfcSpaceTypeEnum.SPACE = { type: 3, value: "SPACE" }; + IfcSpaceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcSpaceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcSpaceTypeEnum = IfcSpaceTypeEnum; + class IfcSpatialZoneTypeEnum { + } + IfcSpatialZoneTypeEnum.CONSTRUCTION = { type: 3, value: "CONSTRUCTION" }; + IfcSpatialZoneTypeEnum.FIRESAFETY = { type: 3, value: "FIRESAFETY" }; + IfcSpatialZoneTypeEnum.INTERFERENCE = { type: 3, value: "INTERFERENCE" }; + IfcSpatialZoneTypeEnum.LIGHTING = { type: 3, value: "LIGHTING" }; + IfcSpatialZoneTypeEnum.OCCUPANCY = { type: 3, value: "OCCUPANCY" }; + IfcSpatialZoneTypeEnum.RESERVATION = { type: 3, value: "RESERVATION" }; + IfcSpatialZoneTypeEnum.SECURITY = { type: 3, value: "SECURITY" }; + IfcSpatialZoneTypeEnum.THERMAL = { type: 3, value: "THERMAL" }; + IfcSpatialZoneTypeEnum.TRANSPORT = { type: 3, value: "TRANSPORT" }; + IfcSpatialZoneTypeEnum.VENTILATION = { type: 3, value: "VENTILATION" }; + IfcSpatialZoneTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcSpatialZoneTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcSpatialZoneTypeEnum = IfcSpatialZoneTypeEnum; + class IfcStackTerminalTypeEnum { + } + IfcStackTerminalTypeEnum.BIRDCAGE = { type: 3, value: "BIRDCAGE" }; + IfcStackTerminalTypeEnum.COWL = { type: 3, value: "COWL" }; + IfcStackTerminalTypeEnum.RAINWATERHOPPER = { type: 3, value: "RAINWATERHOPPER" }; + IfcStackTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcStackTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcStackTerminalTypeEnum = IfcStackTerminalTypeEnum; + class IfcStairFlightTypeEnum { + } + IfcStairFlightTypeEnum.CURVED = { type: 3, value: "CURVED" }; + IfcStairFlightTypeEnum.FREEFORM = { type: 3, value: "FREEFORM" }; + IfcStairFlightTypeEnum.SPIRAL = { type: 3, value: "SPIRAL" }; + IfcStairFlightTypeEnum.STRAIGHT = { type: 3, value: "STRAIGHT" }; + IfcStairFlightTypeEnum.WINDER = { type: 3, value: "WINDER" }; + IfcStairFlightTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcStairFlightTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcStairFlightTypeEnum = IfcStairFlightTypeEnum; + class IfcStairTypeEnum { + } + IfcStairTypeEnum.CURVED_RUN_STAIR = { type: 3, value: "CURVED_RUN_STAIR" }; + IfcStairTypeEnum.DOUBLE_RETURN_STAIR = { type: 3, value: "DOUBLE_RETURN_STAIR" }; + IfcStairTypeEnum.HALF_TURN_STAIR = { type: 3, value: "HALF_TURN_STAIR" }; + IfcStairTypeEnum.HALF_WINDING_STAIR = { type: 3, value: "HALF_WINDING_STAIR" }; + IfcStairTypeEnum.LADDER = { type: 3, value: "LADDER" }; + IfcStairTypeEnum.QUARTER_TURN_STAIR = { type: 3, value: "QUARTER_TURN_STAIR" }; + IfcStairTypeEnum.QUARTER_WINDING_STAIR = { type: 3, value: "QUARTER_WINDING_STAIR" }; + IfcStairTypeEnum.SPIRAL_STAIR = { type: 3, value: "SPIRAL_STAIR" }; + IfcStairTypeEnum.STRAIGHT_RUN_STAIR = { type: 3, value: "STRAIGHT_RUN_STAIR" }; + IfcStairTypeEnum.THREE_QUARTER_TURN_STAIR = { type: 3, value: "THREE_QUARTER_TURN_STAIR" }; + IfcStairTypeEnum.THREE_QUARTER_WINDING_STAIR = { type: 3, value: "THREE_QUARTER_WINDING_STAIR" }; + IfcStairTypeEnum.TWO_CURVED_RUN_STAIR = { type: 3, value: "TWO_CURVED_RUN_STAIR" }; + IfcStairTypeEnum.TWO_QUARTER_TURN_STAIR = { type: 3, value: "TWO_QUARTER_TURN_STAIR" }; + IfcStairTypeEnum.TWO_QUARTER_WINDING_STAIR = { type: 3, value: "TWO_QUARTER_WINDING_STAIR" }; + IfcStairTypeEnum.TWO_STRAIGHT_RUN_STAIR = { type: 3, value: "TWO_STRAIGHT_RUN_STAIR" }; + IfcStairTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcStairTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcStairTypeEnum = IfcStairTypeEnum; + class IfcStateEnum { + } + IfcStateEnum.LOCKED = { type: 3, value: "LOCKED" }; + IfcStateEnum.READONLY = { type: 3, value: "READONLY" }; + IfcStateEnum.READONLYLOCKED = { type: 3, value: "READONLYLOCKED" }; + IfcStateEnum.READWRITE = { type: 3, value: "READWRITE" }; + IfcStateEnum.READWRITELOCKED = { type: 3, value: "READWRITELOCKED" }; + IFC4X32.IfcStateEnum = IfcStateEnum; + class IfcStructuralCurveActivityTypeEnum { + } + IfcStructuralCurveActivityTypeEnum.CONST = { type: 3, value: "CONST" }; + IfcStructuralCurveActivityTypeEnum.DISCRETE = { type: 3, value: "DISCRETE" }; + IfcStructuralCurveActivityTypeEnum.EQUIDISTANT = { type: 3, value: "EQUIDISTANT" }; + IfcStructuralCurveActivityTypeEnum.LINEAR = { type: 3, value: "LINEAR" }; + IfcStructuralCurveActivityTypeEnum.PARABOLA = { type: 3, value: "PARABOLA" }; + IfcStructuralCurveActivityTypeEnum.POLYGONAL = { type: 3, value: "POLYGONAL" }; + IfcStructuralCurveActivityTypeEnum.SINUS = { type: 3, value: "SINUS" }; + IfcStructuralCurveActivityTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcStructuralCurveActivityTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcStructuralCurveActivityTypeEnum = IfcStructuralCurveActivityTypeEnum; + class IfcStructuralCurveMemberTypeEnum { + } + IfcStructuralCurveMemberTypeEnum.CABLE = { type: 3, value: "CABLE" }; + IfcStructuralCurveMemberTypeEnum.COMPRESSION_MEMBER = { type: 3, value: "COMPRESSION_MEMBER" }; + IfcStructuralCurveMemberTypeEnum.PIN_JOINED_MEMBER = { type: 3, value: "PIN_JOINED_MEMBER" }; + IfcStructuralCurveMemberTypeEnum.RIGID_JOINED_MEMBER = { type: 3, value: "RIGID_JOINED_MEMBER" }; + IfcStructuralCurveMemberTypeEnum.TENSION_MEMBER = { type: 3, value: "TENSION_MEMBER" }; + IfcStructuralCurveMemberTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcStructuralCurveMemberTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcStructuralCurveMemberTypeEnum = IfcStructuralCurveMemberTypeEnum; + class IfcStructuralSurfaceActivityTypeEnum { + } + IfcStructuralSurfaceActivityTypeEnum.BILINEAR = { type: 3, value: "BILINEAR" }; + IfcStructuralSurfaceActivityTypeEnum.CONST = { type: 3, value: "CONST" }; + IfcStructuralSurfaceActivityTypeEnum.DISCRETE = { type: 3, value: "DISCRETE" }; + IfcStructuralSurfaceActivityTypeEnum.ISOCONTOUR = { type: 3, value: "ISOCONTOUR" }; + IfcStructuralSurfaceActivityTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcStructuralSurfaceActivityTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcStructuralSurfaceActivityTypeEnum = IfcStructuralSurfaceActivityTypeEnum; + class IfcStructuralSurfaceMemberTypeEnum { + } + IfcStructuralSurfaceMemberTypeEnum.BENDING_ELEMENT = { type: 3, value: "BENDING_ELEMENT" }; + IfcStructuralSurfaceMemberTypeEnum.MEMBRANE_ELEMENT = { type: 3, value: "MEMBRANE_ELEMENT" }; + IfcStructuralSurfaceMemberTypeEnum.SHELL = { type: 3, value: "SHELL" }; + IfcStructuralSurfaceMemberTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcStructuralSurfaceMemberTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcStructuralSurfaceMemberTypeEnum = IfcStructuralSurfaceMemberTypeEnum; + class IfcSubContractResourceTypeEnum { + } + IfcSubContractResourceTypeEnum.PURCHASE = { type: 3, value: "PURCHASE" }; + IfcSubContractResourceTypeEnum.WORK = { type: 3, value: "WORK" }; + IfcSubContractResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcSubContractResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcSubContractResourceTypeEnum = IfcSubContractResourceTypeEnum; + class IfcSurfaceFeatureTypeEnum { + } + IfcSurfaceFeatureTypeEnum.DEFECT = { type: 3, value: "DEFECT" }; + IfcSurfaceFeatureTypeEnum.HATCHMARKING = { type: 3, value: "HATCHMARKING" }; + IfcSurfaceFeatureTypeEnum.LINEMARKING = { type: 3, value: "LINEMARKING" }; + IfcSurfaceFeatureTypeEnum.MARK = { type: 3, value: "MARK" }; + IfcSurfaceFeatureTypeEnum.NONSKIDSURFACING = { type: 3, value: "NONSKIDSURFACING" }; + IfcSurfaceFeatureTypeEnum.PAVEMENTSURFACEMARKING = { type: 3, value: "PAVEMENTSURFACEMARKING" }; + IfcSurfaceFeatureTypeEnum.RUMBLESTRIP = { type: 3, value: "RUMBLESTRIP" }; + IfcSurfaceFeatureTypeEnum.SYMBOLMARKING = { type: 3, value: "SYMBOLMARKING" }; + IfcSurfaceFeatureTypeEnum.TAG = { type: 3, value: "TAG" }; + IfcSurfaceFeatureTypeEnum.TRANSVERSERUMBLESTRIP = { type: 3, value: "TRANSVERSERUMBLESTRIP" }; + IfcSurfaceFeatureTypeEnum.TREATMENT = { type: 3, value: "TREATMENT" }; + IfcSurfaceFeatureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcSurfaceFeatureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcSurfaceFeatureTypeEnum = IfcSurfaceFeatureTypeEnum; + class IfcSurfaceSide { + } + IfcSurfaceSide.BOTH = { type: 3, value: "BOTH" }; + IfcSurfaceSide.NEGATIVE = { type: 3, value: "NEGATIVE" }; + IfcSurfaceSide.POSITIVE = { type: 3, value: "POSITIVE" }; + IFC4X32.IfcSurfaceSide = IfcSurfaceSide; + class IfcSwitchingDeviceTypeEnum { + } + IfcSwitchingDeviceTypeEnum.CONTACTOR = { type: 3, value: "CONTACTOR" }; + IfcSwitchingDeviceTypeEnum.DIMMERSWITCH = { type: 3, value: "DIMMERSWITCH" }; + IfcSwitchingDeviceTypeEnum.EMERGENCYSTOP = { type: 3, value: "EMERGENCYSTOP" }; + IfcSwitchingDeviceTypeEnum.KEYPAD = { type: 3, value: "KEYPAD" }; + IfcSwitchingDeviceTypeEnum.MOMENTARYSWITCH = { type: 3, value: "MOMENTARYSWITCH" }; + IfcSwitchingDeviceTypeEnum.RELAY = { type: 3, value: "RELAY" }; + IfcSwitchingDeviceTypeEnum.SELECTORSWITCH = { type: 3, value: "SELECTORSWITCH" }; + IfcSwitchingDeviceTypeEnum.STARTER = { type: 3, value: "STARTER" }; + IfcSwitchingDeviceTypeEnum.START_AND_STOP_EQUIPMENT = { type: 3, value: "START_AND_STOP_EQUIPMENT" }; + IfcSwitchingDeviceTypeEnum.SWITCHDISCONNECTOR = { type: 3, value: "SWITCHDISCONNECTOR" }; + IfcSwitchingDeviceTypeEnum.TOGGLESWITCH = { type: 3, value: "TOGGLESWITCH" }; + IfcSwitchingDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcSwitchingDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcSwitchingDeviceTypeEnum = IfcSwitchingDeviceTypeEnum; + class IfcSystemFurnitureElementTypeEnum { + } + IfcSystemFurnitureElementTypeEnum.PANEL = { type: 3, value: "PANEL" }; + IfcSystemFurnitureElementTypeEnum.SUBRACK = { type: 3, value: "SUBRACK" }; + IfcSystemFurnitureElementTypeEnum.WORKSURFACE = { type: 3, value: "WORKSURFACE" }; + IfcSystemFurnitureElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcSystemFurnitureElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcSystemFurnitureElementTypeEnum = IfcSystemFurnitureElementTypeEnum; + class IfcTankTypeEnum { + } + IfcTankTypeEnum.BASIN = { type: 3, value: "BASIN" }; + IfcTankTypeEnum.BREAKPRESSURE = { type: 3, value: "BREAKPRESSURE" }; + IfcTankTypeEnum.EXPANSION = { type: 3, value: "EXPANSION" }; + IfcTankTypeEnum.FEEDANDEXPANSION = { type: 3, value: "FEEDANDEXPANSION" }; + IfcTankTypeEnum.OILRETENTIONTRAY = { type: 3, value: "OILRETENTIONTRAY" }; + IfcTankTypeEnum.PRESSUREVESSEL = { type: 3, value: "PRESSUREVESSEL" }; + IfcTankTypeEnum.STORAGE = { type: 3, value: "STORAGE" }; + IfcTankTypeEnum.VESSEL = { type: 3, value: "VESSEL" }; + IfcTankTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcTankTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcTankTypeEnum = IfcTankTypeEnum; + class IfcTaskDurationEnum { + } + IfcTaskDurationEnum.ELAPSEDTIME = { type: 3, value: "ELAPSEDTIME" }; + IfcTaskDurationEnum.WORKTIME = { type: 3, value: "WORKTIME" }; + IfcTaskDurationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcTaskDurationEnum = IfcTaskDurationEnum; + class IfcTaskTypeEnum { + } + IfcTaskTypeEnum.ADJUSTMENT = { type: 3, value: "ADJUSTMENT" }; + IfcTaskTypeEnum.ATTENDANCE = { type: 3, value: "ATTENDANCE" }; + IfcTaskTypeEnum.CALIBRATION = { type: 3, value: "CALIBRATION" }; + IfcTaskTypeEnum.CONSTRUCTION = { type: 3, value: "CONSTRUCTION" }; + IfcTaskTypeEnum.DEMOLITION = { type: 3, value: "DEMOLITION" }; + IfcTaskTypeEnum.DISMANTLE = { type: 3, value: "DISMANTLE" }; + IfcTaskTypeEnum.DISPOSAL = { type: 3, value: "DISPOSAL" }; + IfcTaskTypeEnum.EMERGENCY = { type: 3, value: "EMERGENCY" }; + IfcTaskTypeEnum.INSPECTION = { type: 3, value: "INSPECTION" }; + IfcTaskTypeEnum.INSTALLATION = { type: 3, value: "INSTALLATION" }; + IfcTaskTypeEnum.LOGISTIC = { type: 3, value: "LOGISTIC" }; + IfcTaskTypeEnum.MAINTENANCE = { type: 3, value: "MAINTENANCE" }; + IfcTaskTypeEnum.MOVE = { type: 3, value: "MOVE" }; + IfcTaskTypeEnum.OPERATION = { type: 3, value: "OPERATION" }; + IfcTaskTypeEnum.REMOVAL = { type: 3, value: "REMOVAL" }; + IfcTaskTypeEnum.RENOVATION = { type: 3, value: "RENOVATION" }; + IfcTaskTypeEnum.SAFETY = { type: 3, value: "SAFETY" }; + IfcTaskTypeEnum.SHUTDOWN = { type: 3, value: "SHUTDOWN" }; + IfcTaskTypeEnum.STARTUP = { type: 3, value: "STARTUP" }; + IfcTaskTypeEnum.TESTING = { type: 3, value: "TESTING" }; + IfcTaskTypeEnum.TROUBLESHOOTING = { type: 3, value: "TROUBLESHOOTING" }; + IfcTaskTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcTaskTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcTaskTypeEnum = IfcTaskTypeEnum; + class IfcTendonAnchorTypeEnum { + } + IfcTendonAnchorTypeEnum.COUPLER = { type: 3, value: "COUPLER" }; + IfcTendonAnchorTypeEnum.FIXED_END = { type: 3, value: "FIXED_END" }; + IfcTendonAnchorTypeEnum.TENSIONING_END = { type: 3, value: "TENSIONING_END" }; + IfcTendonAnchorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcTendonAnchorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcTendonAnchorTypeEnum = IfcTendonAnchorTypeEnum; + class IfcTendonConduitTypeEnum { + } + IfcTendonConduitTypeEnum.COUPLER = { type: 3, value: "COUPLER" }; + IfcTendonConduitTypeEnum.DIABOLO = { type: 3, value: "DIABOLO" }; + IfcTendonConduitTypeEnum.DUCT = { type: 3, value: "DUCT" }; + IfcTendonConduitTypeEnum.GROUTING_DUCT = { type: 3, value: "GROUTING_DUCT" }; + IfcTendonConduitTypeEnum.TRUMPET = { type: 3, value: "TRUMPET" }; + IfcTendonConduitTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcTendonConduitTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcTendonConduitTypeEnum = IfcTendonConduitTypeEnum; + class IfcTendonTypeEnum { + } + IfcTendonTypeEnum.BAR = { type: 3, value: "BAR" }; + IfcTendonTypeEnum.COATED = { type: 3, value: "COATED" }; + IfcTendonTypeEnum.STRAND = { type: 3, value: "STRAND" }; + IfcTendonTypeEnum.WIRE = { type: 3, value: "WIRE" }; + IfcTendonTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcTendonTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcTendonTypeEnum = IfcTendonTypeEnum; + class IfcTextPath { + } + IfcTextPath.DOWN = { type: 3, value: "DOWN" }; + IfcTextPath.LEFT = { type: 3, value: "LEFT" }; + IfcTextPath.RIGHT = { type: 3, value: "RIGHT" }; + IfcTextPath.UP = { type: 3, value: "UP" }; + IFC4X32.IfcTextPath = IfcTextPath; + class IfcTimeSeriesDataTypeEnum { + } + IfcTimeSeriesDataTypeEnum.CONTINUOUS = { type: 3, value: "CONTINUOUS" }; + IfcTimeSeriesDataTypeEnum.DISCRETE = { type: 3, value: "DISCRETE" }; + IfcTimeSeriesDataTypeEnum.DISCRETEBINARY = { type: 3, value: "DISCRETEBINARY" }; + IfcTimeSeriesDataTypeEnum.PIECEWISEBINARY = { type: 3, value: "PIECEWISEBINARY" }; + IfcTimeSeriesDataTypeEnum.PIECEWISECONSTANT = { type: 3, value: "PIECEWISECONSTANT" }; + IfcTimeSeriesDataTypeEnum.PIECEWISECONTINUOUS = { type: 3, value: "PIECEWISECONTINUOUS" }; + IfcTimeSeriesDataTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcTimeSeriesDataTypeEnum = IfcTimeSeriesDataTypeEnum; + class IfcTrackElementTypeEnum { + } + IfcTrackElementTypeEnum.BLOCKINGDEVICE = { type: 3, value: "BLOCKINGDEVICE" }; + IfcTrackElementTypeEnum.DERAILER = { type: 3, value: "DERAILER" }; + IfcTrackElementTypeEnum.FROG = { type: 3, value: "FROG" }; + IfcTrackElementTypeEnum.HALF_SET_OF_BLADES = { type: 3, value: "HALF_SET_OF_BLADES" }; + IfcTrackElementTypeEnum.SLEEPER = { type: 3, value: "SLEEPER" }; + IfcTrackElementTypeEnum.SPEEDREGULATOR = { type: 3, value: "SPEEDREGULATOR" }; + IfcTrackElementTypeEnum.TRACKENDOFALIGNMENT = { type: 3, value: "TRACKENDOFALIGNMENT" }; + IfcTrackElementTypeEnum.VEHICLESTOP = { type: 3, value: "VEHICLESTOP" }; + IfcTrackElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcTrackElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcTrackElementTypeEnum = IfcTrackElementTypeEnum; + class IfcTransformerTypeEnum { + } + IfcTransformerTypeEnum.CHOPPER = { type: 3, value: "CHOPPER" }; + IfcTransformerTypeEnum.COMBINED = { type: 3, value: "COMBINED" }; + IfcTransformerTypeEnum.CURRENT = { type: 3, value: "CURRENT" }; + IfcTransformerTypeEnum.FREQUENCY = { type: 3, value: "FREQUENCY" }; + IfcTransformerTypeEnum.INVERTER = { type: 3, value: "INVERTER" }; + IfcTransformerTypeEnum.RECTIFIER = { type: 3, value: "RECTIFIER" }; + IfcTransformerTypeEnum.VOLTAGE = { type: 3, value: "VOLTAGE" }; + IfcTransformerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcTransformerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcTransformerTypeEnum = IfcTransformerTypeEnum; + class IfcTransitionCode { + } + IfcTransitionCode.CONTINUOUS = { type: 3, value: "CONTINUOUS" }; + IfcTransitionCode.CONTSAMEGRADIENT = { type: 3, value: "CONTSAMEGRADIENT" }; + IfcTransitionCode.CONTSAMEGRADIENTSAMECURVATURE = { type: 3, value: "CONTSAMEGRADIENTSAMECURVATURE" }; + IfcTransitionCode.DISCONTINUOUS = { type: 3, value: "DISCONTINUOUS" }; + IFC4X32.IfcTransitionCode = IfcTransitionCode; + class IfcTransportElementTypeEnum { + } + IfcTransportElementTypeEnum.CRANEWAY = { type: 3, value: "CRANEWAY" }; + IfcTransportElementTypeEnum.ELEVATOR = { type: 3, value: "ELEVATOR" }; + IfcTransportElementTypeEnum.ESCALATOR = { type: 3, value: "ESCALATOR" }; + IfcTransportElementTypeEnum.HAULINGGEAR = { type: 3, value: "HAULINGGEAR" }; + IfcTransportElementTypeEnum.LIFTINGGEAR = { type: 3, value: "LIFTINGGEAR" }; + IfcTransportElementTypeEnum.MOVINGWALKWAY = { type: 3, value: "MOVINGWALKWAY" }; + IfcTransportElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcTransportElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcTransportElementTypeEnum = IfcTransportElementTypeEnum; + class IfcTrimmingPreference { + } + IfcTrimmingPreference.CARTESIAN = { type: 3, value: "CARTESIAN" }; + IfcTrimmingPreference.PARAMETER = { type: 3, value: "PARAMETER" }; + IfcTrimmingPreference.UNSPECIFIED = { type: 3, value: "UNSPECIFIED" }; + IFC4X32.IfcTrimmingPreference = IfcTrimmingPreference; + class IfcTubeBundleTypeEnum { + } + IfcTubeBundleTypeEnum.FINNED = { type: 3, value: "FINNED" }; + IfcTubeBundleTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcTubeBundleTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcTubeBundleTypeEnum = IfcTubeBundleTypeEnum; + class IfcUnitEnum { + } + IfcUnitEnum.ABSORBEDDOSEUNIT = { type: 3, value: "ABSORBEDDOSEUNIT" }; + IfcUnitEnum.AMOUNTOFSUBSTANCEUNIT = { type: 3, value: "AMOUNTOFSUBSTANCEUNIT" }; + IfcUnitEnum.AREAUNIT = { type: 3, value: "AREAUNIT" }; + IfcUnitEnum.DOSEEQUIVALENTUNIT = { type: 3, value: "DOSEEQUIVALENTUNIT" }; + IfcUnitEnum.ELECTRICCAPACITANCEUNIT = { type: 3, value: "ELECTRICCAPACITANCEUNIT" }; + IfcUnitEnum.ELECTRICCHARGEUNIT = { type: 3, value: "ELECTRICCHARGEUNIT" }; + IfcUnitEnum.ELECTRICCONDUCTANCEUNIT = { type: 3, value: "ELECTRICCONDUCTANCEUNIT" }; + IfcUnitEnum.ELECTRICCURRENTUNIT = { type: 3, value: "ELECTRICCURRENTUNIT" }; + IfcUnitEnum.ELECTRICRESISTANCEUNIT = { type: 3, value: "ELECTRICRESISTANCEUNIT" }; + IfcUnitEnum.ELECTRICVOLTAGEUNIT = { type: 3, value: "ELECTRICVOLTAGEUNIT" }; + IfcUnitEnum.ENERGYUNIT = { type: 3, value: "ENERGYUNIT" }; + IfcUnitEnum.FORCEUNIT = { type: 3, value: "FORCEUNIT" }; + IfcUnitEnum.FREQUENCYUNIT = { type: 3, value: "FREQUENCYUNIT" }; + IfcUnitEnum.ILLUMINANCEUNIT = { type: 3, value: "ILLUMINANCEUNIT" }; + IfcUnitEnum.INDUCTANCEUNIT = { type: 3, value: "INDUCTANCEUNIT" }; + IfcUnitEnum.LENGTHUNIT = { type: 3, value: "LENGTHUNIT" }; + IfcUnitEnum.LUMINOUSFLUXUNIT = { type: 3, value: "LUMINOUSFLUXUNIT" }; + IfcUnitEnum.LUMINOUSINTENSITYUNIT = { type: 3, value: "LUMINOUSINTENSITYUNIT" }; + IfcUnitEnum.MAGNETICFLUXDENSITYUNIT = { type: 3, value: "MAGNETICFLUXDENSITYUNIT" }; + IfcUnitEnum.MAGNETICFLUXUNIT = { type: 3, value: "MAGNETICFLUXUNIT" }; + IfcUnitEnum.MASSUNIT = { type: 3, value: "MASSUNIT" }; + IfcUnitEnum.PLANEANGLEUNIT = { type: 3, value: "PLANEANGLEUNIT" }; + IfcUnitEnum.POWERUNIT = { type: 3, value: "POWERUNIT" }; + IfcUnitEnum.PRESSUREUNIT = { type: 3, value: "PRESSUREUNIT" }; + IfcUnitEnum.RADIOACTIVITYUNIT = { type: 3, value: "RADIOACTIVITYUNIT" }; + IfcUnitEnum.SOLIDANGLEUNIT = { type: 3, value: "SOLIDANGLEUNIT" }; + IfcUnitEnum.THERMODYNAMICTEMPERATUREUNIT = { type: 3, value: "THERMODYNAMICTEMPERATUREUNIT" }; + IfcUnitEnum.TIMEUNIT = { type: 3, value: "TIMEUNIT" }; + IfcUnitEnum.VOLUMEUNIT = { type: 3, value: "VOLUMEUNIT" }; + IfcUnitEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IFC4X32.IfcUnitEnum = IfcUnitEnum; + class IfcUnitaryControlElementTypeEnum { + } + IfcUnitaryControlElementTypeEnum.ALARMPANEL = { type: 3, value: "ALARMPANEL" }; + IfcUnitaryControlElementTypeEnum.BASESTATIONCONTROLLER = { type: 3, value: "BASESTATIONCONTROLLER" }; + IfcUnitaryControlElementTypeEnum.COMBINED = { type: 3, value: "COMBINED" }; + IfcUnitaryControlElementTypeEnum.CONTROLPANEL = { type: 3, value: "CONTROLPANEL" }; + IfcUnitaryControlElementTypeEnum.GASDETECTIONPANEL = { type: 3, value: "GASDETECTIONPANEL" }; + IfcUnitaryControlElementTypeEnum.HUMIDISTAT = { type: 3, value: "HUMIDISTAT" }; + IfcUnitaryControlElementTypeEnum.INDICATORPANEL = { type: 3, value: "INDICATORPANEL" }; + IfcUnitaryControlElementTypeEnum.MIMICPANEL = { type: 3, value: "MIMICPANEL" }; + IfcUnitaryControlElementTypeEnum.THERMOSTAT = { type: 3, value: "THERMOSTAT" }; + IfcUnitaryControlElementTypeEnum.WEATHERSTATION = { type: 3, value: "WEATHERSTATION" }; + IfcUnitaryControlElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcUnitaryControlElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcUnitaryControlElementTypeEnum = IfcUnitaryControlElementTypeEnum; + class IfcUnitaryEquipmentTypeEnum { + } + IfcUnitaryEquipmentTypeEnum.AIRCONDITIONINGUNIT = { type: 3, value: "AIRCONDITIONINGUNIT" }; + IfcUnitaryEquipmentTypeEnum.AIRHANDLER = { type: 3, value: "AIRHANDLER" }; + IfcUnitaryEquipmentTypeEnum.DEHUMIDIFIER = { type: 3, value: "DEHUMIDIFIER" }; + IfcUnitaryEquipmentTypeEnum.ROOFTOPUNIT = { type: 3, value: "ROOFTOPUNIT" }; + IfcUnitaryEquipmentTypeEnum.SPLITSYSTEM = { type: 3, value: "SPLITSYSTEM" }; + IfcUnitaryEquipmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcUnitaryEquipmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcUnitaryEquipmentTypeEnum = IfcUnitaryEquipmentTypeEnum; + class IfcValveTypeEnum { + } + IfcValveTypeEnum.AIRRELEASE = { type: 3, value: "AIRRELEASE" }; + IfcValveTypeEnum.ANTIVACUUM = { type: 3, value: "ANTIVACUUM" }; + IfcValveTypeEnum.CHANGEOVER = { type: 3, value: "CHANGEOVER" }; + IfcValveTypeEnum.CHECK = { type: 3, value: "CHECK" }; + IfcValveTypeEnum.COMMISSIONING = { type: 3, value: "COMMISSIONING" }; + IfcValveTypeEnum.DIVERTING = { type: 3, value: "DIVERTING" }; + IfcValveTypeEnum.DOUBLECHECK = { type: 3, value: "DOUBLECHECK" }; + IfcValveTypeEnum.DOUBLEREGULATING = { type: 3, value: "DOUBLEREGULATING" }; + IfcValveTypeEnum.DRAWOFFCOCK = { type: 3, value: "DRAWOFFCOCK" }; + IfcValveTypeEnum.FAUCET = { type: 3, value: "FAUCET" }; + IfcValveTypeEnum.FLUSHING = { type: 3, value: "FLUSHING" }; + IfcValveTypeEnum.GASCOCK = { type: 3, value: "GASCOCK" }; + IfcValveTypeEnum.GASTAP = { type: 3, value: "GASTAP" }; + IfcValveTypeEnum.ISOLATING = { type: 3, value: "ISOLATING" }; + IfcValveTypeEnum.MIXING = { type: 3, value: "MIXING" }; + IfcValveTypeEnum.PRESSUREREDUCING = { type: 3, value: "PRESSUREREDUCING" }; + IfcValveTypeEnum.PRESSURERELIEF = { type: 3, value: "PRESSURERELIEF" }; + IfcValveTypeEnum.REGULATING = { type: 3, value: "REGULATING" }; + IfcValveTypeEnum.SAFETYCUTOFF = { type: 3, value: "SAFETYCUTOFF" }; + IfcValveTypeEnum.STEAMTRAP = { type: 3, value: "STEAMTRAP" }; + IfcValveTypeEnum.STOPCOCK = { type: 3, value: "STOPCOCK" }; + IfcValveTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcValveTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcValveTypeEnum = IfcValveTypeEnum; + class IfcVehicleTypeEnum { + } + IfcVehicleTypeEnum.CARGO = { type: 3, value: "CARGO" }; + IfcVehicleTypeEnum.ROLLINGSTOCK = { type: 3, value: "ROLLINGSTOCK" }; + IfcVehicleTypeEnum.VEHICLE = { type: 3, value: "VEHICLE" }; + IfcVehicleTypeEnum.VEHICLEAIR = { type: 3, value: "VEHICLEAIR" }; + IfcVehicleTypeEnum.VEHICLEMARINE = { type: 3, value: "VEHICLEMARINE" }; + IfcVehicleTypeEnum.VEHICLETRACKED = { type: 3, value: "VEHICLETRACKED" }; + IfcVehicleTypeEnum.VEHICLEWHEELED = { type: 3, value: "VEHICLEWHEELED" }; + IfcVehicleTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcVehicleTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcVehicleTypeEnum = IfcVehicleTypeEnum; + class IfcVibrationDamperTypeEnum { + } + IfcVibrationDamperTypeEnum.AXIAL_YIELD = { type: 3, value: "AXIAL_YIELD" }; + IfcVibrationDamperTypeEnum.BENDING_YIELD = { type: 3, value: "BENDING_YIELD" }; + IfcVibrationDamperTypeEnum.FRICTION = { type: 3, value: "FRICTION" }; + IfcVibrationDamperTypeEnum.RUBBER = { type: 3, value: "RUBBER" }; + IfcVibrationDamperTypeEnum.SHEAR_YIELD = { type: 3, value: "SHEAR_YIELD" }; + IfcVibrationDamperTypeEnum.VISCOUS = { type: 3, value: "VISCOUS" }; + IfcVibrationDamperTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcVibrationDamperTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcVibrationDamperTypeEnum = IfcVibrationDamperTypeEnum; + class IfcVibrationIsolatorTypeEnum { + } + IfcVibrationIsolatorTypeEnum.BASE = { type: 3, value: "BASE" }; + IfcVibrationIsolatorTypeEnum.COMPRESSION = { type: 3, value: "COMPRESSION" }; + IfcVibrationIsolatorTypeEnum.SPRING = { type: 3, value: "SPRING" }; + IfcVibrationIsolatorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcVibrationIsolatorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcVibrationIsolatorTypeEnum = IfcVibrationIsolatorTypeEnum; + class IfcVirtualElementTypeEnum { + } + IfcVirtualElementTypeEnum.BOUNDARY = { type: 3, value: "BOUNDARY" }; + IfcVirtualElementTypeEnum.CLEARANCE = { type: 3, value: "CLEARANCE" }; + IfcVirtualElementTypeEnum.PROVISIONFORVOID = { type: 3, value: "PROVISIONFORVOID" }; + IfcVirtualElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcVirtualElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcVirtualElementTypeEnum = IfcVirtualElementTypeEnum; + class IfcVoidingFeatureTypeEnum { + } + IfcVoidingFeatureTypeEnum.CHAMFER = { type: 3, value: "CHAMFER" }; + IfcVoidingFeatureTypeEnum.CUTOUT = { type: 3, value: "CUTOUT" }; + IfcVoidingFeatureTypeEnum.EDGE = { type: 3, value: "EDGE" }; + IfcVoidingFeatureTypeEnum.HOLE = { type: 3, value: "HOLE" }; + IfcVoidingFeatureTypeEnum.MITER = { type: 3, value: "MITER" }; + IfcVoidingFeatureTypeEnum.NOTCH = { type: 3, value: "NOTCH" }; + IfcVoidingFeatureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcVoidingFeatureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcVoidingFeatureTypeEnum = IfcVoidingFeatureTypeEnum; + class IfcWallTypeEnum { + } + IfcWallTypeEnum.ELEMENTEDWALL = { type: 3, value: "ELEMENTEDWALL" }; + IfcWallTypeEnum.MOVABLE = { type: 3, value: "MOVABLE" }; + IfcWallTypeEnum.PARAPET = { type: 3, value: "PARAPET" }; + IfcWallTypeEnum.PARTITIONING = { type: 3, value: "PARTITIONING" }; + IfcWallTypeEnum.PLUMBINGWALL = { type: 3, value: "PLUMBINGWALL" }; + IfcWallTypeEnum.POLYGONAL = { type: 3, value: "POLYGONAL" }; + IfcWallTypeEnum.RETAININGWALL = { type: 3, value: "RETAININGWALL" }; + IfcWallTypeEnum.SHEAR = { type: 3, value: "SHEAR" }; + IfcWallTypeEnum.SOLIDWALL = { type: 3, value: "SOLIDWALL" }; + IfcWallTypeEnum.STANDARD = { type: 3, value: "STANDARD" }; + IfcWallTypeEnum.WAVEWALL = { type: 3, value: "WAVEWALL" }; + IfcWallTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcWallTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcWallTypeEnum = IfcWallTypeEnum; + class IfcWasteTerminalTypeEnum { + } + IfcWasteTerminalTypeEnum.FLOORTRAP = { type: 3, value: "FLOORTRAP" }; + IfcWasteTerminalTypeEnum.FLOORWASTE = { type: 3, value: "FLOORWASTE" }; + IfcWasteTerminalTypeEnum.GULLYSUMP = { type: 3, value: "GULLYSUMP" }; + IfcWasteTerminalTypeEnum.GULLYTRAP = { type: 3, value: "GULLYTRAP" }; + IfcWasteTerminalTypeEnum.ROOFDRAIN = { type: 3, value: "ROOFDRAIN" }; + IfcWasteTerminalTypeEnum.WASTEDISPOSALUNIT = { type: 3, value: "WASTEDISPOSALUNIT" }; + IfcWasteTerminalTypeEnum.WASTETRAP = { type: 3, value: "WASTETRAP" }; + IfcWasteTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcWasteTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcWasteTerminalTypeEnum = IfcWasteTerminalTypeEnum; + class IfcWindowPanelOperationEnum { + } + IfcWindowPanelOperationEnum.BOTTOMHUNG = { type: 3, value: "BOTTOMHUNG" }; + IfcWindowPanelOperationEnum.FIXEDCASEMENT = { type: 3, value: "FIXEDCASEMENT" }; + IfcWindowPanelOperationEnum.OTHEROPERATION = { type: 3, value: "OTHEROPERATION" }; + IfcWindowPanelOperationEnum.PIVOTHORIZONTAL = { type: 3, value: "PIVOTHORIZONTAL" }; + IfcWindowPanelOperationEnum.PIVOTVERTICAL = { type: 3, value: "PIVOTVERTICAL" }; + IfcWindowPanelOperationEnum.REMOVABLECASEMENT = { type: 3, value: "REMOVABLECASEMENT" }; + IfcWindowPanelOperationEnum.SIDEHUNGLEFTHAND = { type: 3, value: "SIDEHUNGLEFTHAND" }; + IfcWindowPanelOperationEnum.SIDEHUNGRIGHTHAND = { type: 3, value: "SIDEHUNGRIGHTHAND" }; + IfcWindowPanelOperationEnum.SLIDINGHORIZONTAL = { type: 3, value: "SLIDINGHORIZONTAL" }; + IfcWindowPanelOperationEnum.SLIDINGVERTICAL = { type: 3, value: "SLIDINGVERTICAL" }; + IfcWindowPanelOperationEnum.TILTANDTURNLEFTHAND = { type: 3, value: "TILTANDTURNLEFTHAND" }; + IfcWindowPanelOperationEnum.TILTANDTURNRIGHTHAND = { type: 3, value: "TILTANDTURNRIGHTHAND" }; + IfcWindowPanelOperationEnum.TOPHUNG = { type: 3, value: "TOPHUNG" }; + IfcWindowPanelOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcWindowPanelOperationEnum = IfcWindowPanelOperationEnum; + class IfcWindowPanelPositionEnum { + } + IfcWindowPanelPositionEnum.BOTTOM = { type: 3, value: "BOTTOM" }; + IfcWindowPanelPositionEnum.LEFT = { type: 3, value: "LEFT" }; + IfcWindowPanelPositionEnum.MIDDLE = { type: 3, value: "MIDDLE" }; + IfcWindowPanelPositionEnum.RIGHT = { type: 3, value: "RIGHT" }; + IfcWindowPanelPositionEnum.TOP = { type: 3, value: "TOP" }; + IfcWindowPanelPositionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcWindowPanelPositionEnum = IfcWindowPanelPositionEnum; + class IfcWindowStyleConstructionEnum { + } + IfcWindowStyleConstructionEnum.ALUMINIUM = { type: 3, value: "ALUMINIUM" }; + IfcWindowStyleConstructionEnum.ALUMINIUM_WOOD = { type: 3, value: "ALUMINIUM_WOOD" }; + IfcWindowStyleConstructionEnum.HIGH_GRADE_STEEL = { type: 3, value: "HIGH_GRADE_STEEL" }; + IfcWindowStyleConstructionEnum.OTHER_CONSTRUCTION = { type: 3, value: "OTHER_CONSTRUCTION" }; + IfcWindowStyleConstructionEnum.PLASTIC = { type: 3, value: "PLASTIC" }; + IfcWindowStyleConstructionEnum.STEEL = { type: 3, value: "STEEL" }; + IfcWindowStyleConstructionEnum.WOOD = { type: 3, value: "WOOD" }; + IfcWindowStyleConstructionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcWindowStyleConstructionEnum = IfcWindowStyleConstructionEnum; + class IfcWindowStyleOperationEnum { + } + IfcWindowStyleOperationEnum.DOUBLE_PANEL_HORIZONTAL = { type: 3, value: "DOUBLE_PANEL_HORIZONTAL" }; + IfcWindowStyleOperationEnum.DOUBLE_PANEL_VERTICAL = { type: 3, value: "DOUBLE_PANEL_VERTICAL" }; + IfcWindowStyleOperationEnum.SINGLE_PANEL = { type: 3, value: "SINGLE_PANEL" }; + IfcWindowStyleOperationEnum.TRIPLE_PANEL_BOTTOM = { type: 3, value: "TRIPLE_PANEL_BOTTOM" }; + IfcWindowStyleOperationEnum.TRIPLE_PANEL_HORIZONTAL = { type: 3, value: "TRIPLE_PANEL_HORIZONTAL" }; + IfcWindowStyleOperationEnum.TRIPLE_PANEL_LEFT = { type: 3, value: "TRIPLE_PANEL_LEFT" }; + IfcWindowStyleOperationEnum.TRIPLE_PANEL_RIGHT = { type: 3, value: "TRIPLE_PANEL_RIGHT" }; + IfcWindowStyleOperationEnum.TRIPLE_PANEL_TOP = { type: 3, value: "TRIPLE_PANEL_TOP" }; + IfcWindowStyleOperationEnum.TRIPLE_PANEL_VERTICAL = { type: 3, value: "TRIPLE_PANEL_VERTICAL" }; + IfcWindowStyleOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcWindowStyleOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcWindowStyleOperationEnum = IfcWindowStyleOperationEnum; + class IfcWindowTypeEnum { + } + IfcWindowTypeEnum.LIGHTDOME = { type: 3, value: "LIGHTDOME" }; + IfcWindowTypeEnum.SKYLIGHT = { type: 3, value: "SKYLIGHT" }; + IfcWindowTypeEnum.WINDOW = { type: 3, value: "WINDOW" }; + IfcWindowTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcWindowTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcWindowTypeEnum = IfcWindowTypeEnum; + class IfcWindowTypePartitioningEnum { + } + IfcWindowTypePartitioningEnum.DOUBLE_PANEL_HORIZONTAL = { type: 3, value: "DOUBLE_PANEL_HORIZONTAL" }; + IfcWindowTypePartitioningEnum.DOUBLE_PANEL_VERTICAL = { type: 3, value: "DOUBLE_PANEL_VERTICAL" }; + IfcWindowTypePartitioningEnum.SINGLE_PANEL = { type: 3, value: "SINGLE_PANEL" }; + IfcWindowTypePartitioningEnum.TRIPLE_PANEL_BOTTOM = { type: 3, value: "TRIPLE_PANEL_BOTTOM" }; + IfcWindowTypePartitioningEnum.TRIPLE_PANEL_HORIZONTAL = { type: 3, value: "TRIPLE_PANEL_HORIZONTAL" }; + IfcWindowTypePartitioningEnum.TRIPLE_PANEL_LEFT = { type: 3, value: "TRIPLE_PANEL_LEFT" }; + IfcWindowTypePartitioningEnum.TRIPLE_PANEL_RIGHT = { type: 3, value: "TRIPLE_PANEL_RIGHT" }; + IfcWindowTypePartitioningEnum.TRIPLE_PANEL_TOP = { type: 3, value: "TRIPLE_PANEL_TOP" }; + IfcWindowTypePartitioningEnum.TRIPLE_PANEL_VERTICAL = { type: 3, value: "TRIPLE_PANEL_VERTICAL" }; + IfcWindowTypePartitioningEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcWindowTypePartitioningEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcWindowTypePartitioningEnum = IfcWindowTypePartitioningEnum; + class IfcWorkCalendarTypeEnum { + } + IfcWorkCalendarTypeEnum.FIRSTSHIFT = { type: 3, value: "FIRSTSHIFT" }; + IfcWorkCalendarTypeEnum.SECONDSHIFT = { type: 3, value: "SECONDSHIFT" }; + IfcWorkCalendarTypeEnum.THIRDSHIFT = { type: 3, value: "THIRDSHIFT" }; + IfcWorkCalendarTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcWorkCalendarTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcWorkCalendarTypeEnum = IfcWorkCalendarTypeEnum; + class IfcWorkPlanTypeEnum { + } + IfcWorkPlanTypeEnum.ACTUAL = { type: 3, value: "ACTUAL" }; + IfcWorkPlanTypeEnum.BASELINE = { type: 3, value: "BASELINE" }; + IfcWorkPlanTypeEnum.PLANNED = { type: 3, value: "PLANNED" }; + IfcWorkPlanTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcWorkPlanTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcWorkPlanTypeEnum = IfcWorkPlanTypeEnum; + class IfcWorkScheduleTypeEnum { + } + IfcWorkScheduleTypeEnum.ACTUAL = { type: 3, value: "ACTUAL" }; + IfcWorkScheduleTypeEnum.BASELINE = { type: 3, value: "BASELINE" }; + IfcWorkScheduleTypeEnum.PLANNED = { type: 3, value: "PLANNED" }; + IfcWorkScheduleTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; + IfcWorkScheduleTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; + IFC4X32.IfcWorkScheduleTypeEnum = IfcWorkScheduleTypeEnum; + class IfcActorRole extends IfcLineObject { + constructor(expressID, Role, UserDefinedRole, Description) { + super(expressID); + this.Role = Role; + this.UserDefinedRole = UserDefinedRole; + this.Description = Description; + this.type = 3630933823; + } + } + IFC4X32.IfcActorRole = IfcActorRole; + class IfcAddress extends IfcLineObject { + constructor(expressID, Purpose, Description, UserDefinedPurpose) { + super(expressID); + this.Purpose = Purpose; + this.Description = Description; + this.UserDefinedPurpose = UserDefinedPurpose; + this.type = 618182010; + } + } + IFC4X32.IfcAddress = IfcAddress; + class IfcAlignmentParameterSegment extends IfcLineObject { + constructor(expressID, StartTag, EndTag) { + super(expressID); + this.StartTag = StartTag; + this.EndTag = EndTag; + this.type = 2879124712; + } + } + IFC4X32.IfcAlignmentParameterSegment = IfcAlignmentParameterSegment; + class IfcAlignmentVerticalSegment extends IfcAlignmentParameterSegment { + constructor(expressID, StartTag, EndTag, StartDistAlong, HorizontalLength, StartHeight, StartGradient, EndGradient, RadiusOfCurvature, PredefinedType) { + super(expressID, StartTag, EndTag); + this.StartTag = StartTag; + this.EndTag = EndTag; + this.StartDistAlong = StartDistAlong; + this.HorizontalLength = HorizontalLength; + this.StartHeight = StartHeight; + this.StartGradient = StartGradient; + this.EndGradient = EndGradient; + this.RadiusOfCurvature = RadiusOfCurvature; + this.PredefinedType = PredefinedType; + this.type = 3633395639; + } + } + IFC4X32.IfcAlignmentVerticalSegment = IfcAlignmentVerticalSegment; + class IfcApplication extends IfcLineObject { + constructor(expressID, ApplicationDeveloper, Version, ApplicationFullName, ApplicationIdentifier) { + super(expressID); + this.ApplicationDeveloper = ApplicationDeveloper; + this.Version = Version; + this.ApplicationFullName = ApplicationFullName; + this.ApplicationIdentifier = ApplicationIdentifier; + this.type = 639542469; + } + } + IFC4X32.IfcApplication = IfcApplication; + class IfcAppliedValue extends IfcLineObject { + constructor(expressID, Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, Category, Condition, ArithmeticOperator, Components) { + super(expressID); + this.Name = Name; + this.Description = Description; + this.AppliedValue = AppliedValue; + this.UnitBasis = UnitBasis; + this.ApplicableDate = ApplicableDate; + this.FixedUntilDate = FixedUntilDate; + this.Category = Category; + this.Condition = Condition; + this.ArithmeticOperator = ArithmeticOperator; + this.Components = Components; + this.type = 411424972; + } + } + IFC4X32.IfcAppliedValue = IfcAppliedValue; + class IfcApproval extends IfcLineObject { + constructor(expressID, Identifier, Name, Description, TimeOfApproval, Status, Level, Qualifier, RequestingApproval, GivingApproval) { + super(expressID); + this.Identifier = Identifier; + this.Name = Name; + this.Description = Description; + this.TimeOfApproval = TimeOfApproval; + this.Status = Status; + this.Level = Level; + this.Qualifier = Qualifier; + this.RequestingApproval = RequestingApproval; + this.GivingApproval = GivingApproval; + this.type = 130549933; + } + } + IFC4X32.IfcApproval = IfcApproval; + class IfcBoundaryCondition extends IfcLineObject { + constructor(expressID, Name) { + super(expressID); + this.Name = Name; + this.type = 4037036970; + } + } + IFC4X32.IfcBoundaryCondition = IfcBoundaryCondition; + class IfcBoundaryEdgeCondition extends IfcBoundaryCondition { + constructor(expressID, Name, TranslationalStiffnessByLengthX, TranslationalStiffnessByLengthY, TranslationalStiffnessByLengthZ, RotationalStiffnessByLengthX, RotationalStiffnessByLengthY, RotationalStiffnessByLengthZ) { + super(expressID, Name); + this.Name = Name; + this.TranslationalStiffnessByLengthX = TranslationalStiffnessByLengthX; + this.TranslationalStiffnessByLengthY = TranslationalStiffnessByLengthY; + this.TranslationalStiffnessByLengthZ = TranslationalStiffnessByLengthZ; + this.RotationalStiffnessByLengthX = RotationalStiffnessByLengthX; + this.RotationalStiffnessByLengthY = RotationalStiffnessByLengthY; + this.RotationalStiffnessByLengthZ = RotationalStiffnessByLengthZ; + this.type = 1560379544; + } + } + IFC4X32.IfcBoundaryEdgeCondition = IfcBoundaryEdgeCondition; + class IfcBoundaryFaceCondition extends IfcBoundaryCondition { + constructor(expressID, Name, TranslationalStiffnessByAreaX, TranslationalStiffnessByAreaY, TranslationalStiffnessByAreaZ) { + super(expressID, Name); + this.Name = Name; + this.TranslationalStiffnessByAreaX = TranslationalStiffnessByAreaX; + this.TranslationalStiffnessByAreaY = TranslationalStiffnessByAreaY; + this.TranslationalStiffnessByAreaZ = TranslationalStiffnessByAreaZ; + this.type = 3367102660; + } + } + IFC4X32.IfcBoundaryFaceCondition = IfcBoundaryFaceCondition; + class IfcBoundaryNodeCondition extends IfcBoundaryCondition { + constructor(expressID, Name, TranslationalStiffnessX, TranslationalStiffnessY, TranslationalStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ) { + super(expressID, Name); + this.Name = Name; + this.TranslationalStiffnessX = TranslationalStiffnessX; + this.TranslationalStiffnessY = TranslationalStiffnessY; + this.TranslationalStiffnessZ = TranslationalStiffnessZ; + this.RotationalStiffnessX = RotationalStiffnessX; + this.RotationalStiffnessY = RotationalStiffnessY; + this.RotationalStiffnessZ = RotationalStiffnessZ; + this.type = 1387855156; + } + } + IFC4X32.IfcBoundaryNodeCondition = IfcBoundaryNodeCondition; + class IfcBoundaryNodeConditionWarping extends IfcBoundaryNodeCondition { + constructor(expressID, Name, TranslationalStiffnessX, TranslationalStiffnessY, TranslationalStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ, WarpingStiffness) { + super(expressID, Name, TranslationalStiffnessX, TranslationalStiffnessY, TranslationalStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ); + this.Name = Name; + this.TranslationalStiffnessX = TranslationalStiffnessX; + this.TranslationalStiffnessY = TranslationalStiffnessY; + this.TranslationalStiffnessZ = TranslationalStiffnessZ; + this.RotationalStiffnessX = RotationalStiffnessX; + this.RotationalStiffnessY = RotationalStiffnessY; + this.RotationalStiffnessZ = RotationalStiffnessZ; + this.WarpingStiffness = WarpingStiffness; + this.type = 2069777674; + } + } + IFC4X32.IfcBoundaryNodeConditionWarping = IfcBoundaryNodeConditionWarping; + class IfcConnectionGeometry extends IfcLineObject { + constructor(expressID) { + super(expressID); + this.type = 2859738748; + } + } + IFC4X32.IfcConnectionGeometry = IfcConnectionGeometry; + class IfcConnectionPointGeometry extends IfcConnectionGeometry { + constructor(expressID, PointOnRelatingElement, PointOnRelatedElement) { + super(expressID); + this.PointOnRelatingElement = PointOnRelatingElement; + this.PointOnRelatedElement = PointOnRelatedElement; + this.type = 2614616156; + } + } + IFC4X32.IfcConnectionPointGeometry = IfcConnectionPointGeometry; + class IfcConnectionSurfaceGeometry extends IfcConnectionGeometry { + constructor(expressID, SurfaceOnRelatingElement, SurfaceOnRelatedElement) { + super(expressID); + this.SurfaceOnRelatingElement = SurfaceOnRelatingElement; + this.SurfaceOnRelatedElement = SurfaceOnRelatedElement; + this.type = 2732653382; + } + } + IFC4X32.IfcConnectionSurfaceGeometry = IfcConnectionSurfaceGeometry; + class IfcConnectionVolumeGeometry extends IfcConnectionGeometry { + constructor(expressID, VolumeOnRelatingElement, VolumeOnRelatedElement) { + super(expressID); + this.VolumeOnRelatingElement = VolumeOnRelatingElement; + this.VolumeOnRelatedElement = VolumeOnRelatedElement; + this.type = 775493141; + } + } + IFC4X32.IfcConnectionVolumeGeometry = IfcConnectionVolumeGeometry; + class IfcConstraint extends IfcLineObject { + constructor(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade) { + super(expressID); + this.Name = Name; + this.Description = Description; + this.ConstraintGrade = ConstraintGrade; + this.ConstraintSource = ConstraintSource; + this.CreatingActor = CreatingActor; + this.CreationTime = CreationTime; + this.UserDefinedGrade = UserDefinedGrade; + this.type = 1959218052; + } + } + IFC4X32.IfcConstraint = IfcConstraint; + class IfcCoordinateOperation extends IfcLineObject { + constructor(expressID, SourceCRS, TargetCRS) { + super(expressID); + this.SourceCRS = SourceCRS; + this.TargetCRS = TargetCRS; + this.type = 1785450214; + } + } + IFC4X32.IfcCoordinateOperation = IfcCoordinateOperation; + class IfcCoordinateReferenceSystem extends IfcLineObject { + constructor(expressID, Name, Description, GeodeticDatum, VerticalDatum) { + super(expressID); + this.Name = Name; + this.Description = Description; + this.GeodeticDatum = GeodeticDatum; + this.VerticalDatum = VerticalDatum; + this.type = 1466758467; + } + } + IFC4X32.IfcCoordinateReferenceSystem = IfcCoordinateReferenceSystem; + class IfcCostValue extends IfcAppliedValue { + constructor(expressID, Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, Category, Condition, ArithmeticOperator, Components) { + super(expressID, Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, Category, Condition, ArithmeticOperator, Components); + this.Name = Name; + this.Description = Description; + this.AppliedValue = AppliedValue; + this.UnitBasis = UnitBasis; + this.ApplicableDate = ApplicableDate; + this.FixedUntilDate = FixedUntilDate; + this.Category = Category; + this.Condition = Condition; + this.ArithmeticOperator = ArithmeticOperator; + this.Components = Components; + this.type = 602808272; + } + } + IFC4X32.IfcCostValue = IfcCostValue; + class IfcDerivedUnit extends IfcLineObject { + constructor(expressID, Elements, UnitType, UserDefinedType, Name) { + super(expressID); + this.Elements = Elements; + this.UnitType = UnitType; + this.UserDefinedType = UserDefinedType; + this.Name = Name; + this.type = 1765591967; + } + } + IFC4X32.IfcDerivedUnit = IfcDerivedUnit; + class IfcDerivedUnitElement extends IfcLineObject { + constructor(expressID, Unit, Exponent) { + super(expressID); + this.Unit = Unit; + this.Exponent = Exponent; + this.type = 1045800335; + } + } + IFC4X32.IfcDerivedUnitElement = IfcDerivedUnitElement; + class IfcDimensionalExponents extends IfcLineObject { + constructor(expressID, LengthExponent, MassExponent, TimeExponent, ElectricCurrentExponent, ThermodynamicTemperatureExponent, AmountOfSubstanceExponent, LuminousIntensityExponent) { + super(expressID); + this.LengthExponent = LengthExponent; + this.MassExponent = MassExponent; + this.TimeExponent = TimeExponent; + this.ElectricCurrentExponent = ElectricCurrentExponent; + this.ThermodynamicTemperatureExponent = ThermodynamicTemperatureExponent; + this.AmountOfSubstanceExponent = AmountOfSubstanceExponent; + this.LuminousIntensityExponent = LuminousIntensityExponent; + this.type = 2949456006; + } + } + IFC4X32.IfcDimensionalExponents = IfcDimensionalExponents; + class IfcExternalInformation extends IfcLineObject { + constructor(expressID) { + super(expressID); + this.type = 4294318154; + } + } + IFC4X32.IfcExternalInformation = IfcExternalInformation; + class IfcExternalReference extends IfcLineObject { + constructor(expressID, Location, Identification, Name) { + super(expressID); + this.Location = Location; + this.Identification = Identification; + this.Name = Name; + this.type = 3200245327; + } + } + IFC4X32.IfcExternalReference = IfcExternalReference; + class IfcExternallyDefinedHatchStyle extends IfcExternalReference { + constructor(expressID, Location, Identification, Name) { + super(expressID, Location, Identification, Name); + this.Location = Location; + this.Identification = Identification; + this.Name = Name; + this.type = 2242383968; + } + } + IFC4X32.IfcExternallyDefinedHatchStyle = IfcExternallyDefinedHatchStyle; + class IfcExternallyDefinedSurfaceStyle extends IfcExternalReference { + constructor(expressID, Location, Identification, Name) { + super(expressID, Location, Identification, Name); + this.Location = Location; + this.Identification = Identification; + this.Name = Name; + this.type = 1040185647; + } + } + IFC4X32.IfcExternallyDefinedSurfaceStyle = IfcExternallyDefinedSurfaceStyle; + class IfcExternallyDefinedTextFont extends IfcExternalReference { + constructor(expressID, Location, Identification, Name) { + super(expressID, Location, Identification, Name); + this.Location = Location; + this.Identification = Identification; + this.Name = Name; + this.type = 3548104201; + } + } + IFC4X32.IfcExternallyDefinedTextFont = IfcExternallyDefinedTextFont; + class IfcGridAxis extends IfcLineObject { + constructor(expressID, AxisTag, AxisCurve, SameSense) { + super(expressID); + this.AxisTag = AxisTag; + this.AxisCurve = AxisCurve; + this.SameSense = SameSense; + this.type = 852622518; + } + } + IFC4X32.IfcGridAxis = IfcGridAxis; + class IfcIrregularTimeSeriesValue extends IfcLineObject { + constructor(expressID, TimeStamp, ListValues) { + super(expressID); + this.TimeStamp = TimeStamp; + this.ListValues = ListValues; + this.type = 3020489413; + } + } + IFC4X32.IfcIrregularTimeSeriesValue = IfcIrregularTimeSeriesValue; + class IfcLibraryInformation extends IfcExternalInformation { + constructor(expressID, Name, Version, Publisher, VersionDate, Location, Description) { + super(expressID); + this.Name = Name; + this.Version = Version; + this.Publisher = Publisher; + this.VersionDate = VersionDate; + this.Location = Location; + this.Description = Description; + this.type = 2655187982; + } + } + IFC4X32.IfcLibraryInformation = IfcLibraryInformation; + class IfcLibraryReference extends IfcExternalReference { + constructor(expressID, Location, Identification, Name, Description, Language, ReferencedLibrary) { + super(expressID, Location, Identification, Name); + this.Location = Location; + this.Identification = Identification; + this.Name = Name; + this.Description = Description; + this.Language = Language; + this.ReferencedLibrary = ReferencedLibrary; + this.type = 3452421091; + } + } + IFC4X32.IfcLibraryReference = IfcLibraryReference; + class IfcLightDistributionData extends IfcLineObject { + constructor(expressID, MainPlaneAngle, SecondaryPlaneAngle, LuminousIntensity) { + super(expressID); + this.MainPlaneAngle = MainPlaneAngle; + this.SecondaryPlaneAngle = SecondaryPlaneAngle; + this.LuminousIntensity = LuminousIntensity; + this.type = 4162380809; + } + } + IFC4X32.IfcLightDistributionData = IfcLightDistributionData; + class IfcLightIntensityDistribution extends IfcLineObject { + constructor(expressID, LightDistributionCurve, DistributionData) { + super(expressID); + this.LightDistributionCurve = LightDistributionCurve; + this.DistributionData = DistributionData; + this.type = 1566485204; + } + } + IFC4X32.IfcLightIntensityDistribution = IfcLightIntensityDistribution; + class IfcMapConversion extends IfcCoordinateOperation { + constructor(expressID, SourceCRS, TargetCRS, Eastings, Northings, OrthogonalHeight, XAxisAbscissa, XAxisOrdinate, Scale, ScaleY, ScaleZ) { + super(expressID, SourceCRS, TargetCRS); + this.SourceCRS = SourceCRS; + this.TargetCRS = TargetCRS; + this.Eastings = Eastings; + this.Northings = Northings; + this.OrthogonalHeight = OrthogonalHeight; + this.XAxisAbscissa = XAxisAbscissa; + this.XAxisOrdinate = XAxisOrdinate; + this.Scale = Scale; + this.ScaleY = ScaleY; + this.ScaleZ = ScaleZ; + this.type = 3057273783; + } + } + IFC4X32.IfcMapConversion = IfcMapConversion; + class IfcMaterialClassificationRelationship extends IfcLineObject { + constructor(expressID, MaterialClassifications, ClassifiedMaterial) { + super(expressID); + this.MaterialClassifications = MaterialClassifications; + this.ClassifiedMaterial = ClassifiedMaterial; + this.type = 1847130766; + } + } + IFC4X32.IfcMaterialClassificationRelationship = IfcMaterialClassificationRelationship; + class IfcMaterialDefinition extends IfcLineObject { + constructor(expressID) { + super(expressID); + this.type = 760658860; + } + } + IFC4X32.IfcMaterialDefinition = IfcMaterialDefinition; + class IfcMaterialLayer extends IfcMaterialDefinition { + constructor(expressID, Material, LayerThickness, IsVentilated, Name, Description, Category, Priority) { + super(expressID); + this.Material = Material; + this.LayerThickness = LayerThickness; + this.IsVentilated = IsVentilated; + this.Name = Name; + this.Description = Description; + this.Category = Category; + this.Priority = Priority; + this.type = 248100487; + } + } + IFC4X32.IfcMaterialLayer = IfcMaterialLayer; + class IfcMaterialLayerSet extends IfcMaterialDefinition { + constructor(expressID, MaterialLayers, LayerSetName, Description) { + super(expressID); + this.MaterialLayers = MaterialLayers; + this.LayerSetName = LayerSetName; + this.Description = Description; + this.type = 3303938423; + } + } + IFC4X32.IfcMaterialLayerSet = IfcMaterialLayerSet; + class IfcMaterialLayerWithOffsets extends IfcMaterialLayer { + constructor(expressID, Material, LayerThickness, IsVentilated, Name, Description, Category, Priority, OffsetDirection, OffsetValues) { + super(expressID, Material, LayerThickness, IsVentilated, Name, Description, Category, Priority); + this.Material = Material; + this.LayerThickness = LayerThickness; + this.IsVentilated = IsVentilated; + this.Name = Name; + this.Description = Description; + this.Category = Category; + this.Priority = Priority; + this.OffsetDirection = OffsetDirection; + this.OffsetValues = OffsetValues; + this.type = 1847252529; + } + } + IFC4X32.IfcMaterialLayerWithOffsets = IfcMaterialLayerWithOffsets; + class IfcMaterialList extends IfcLineObject { + constructor(expressID, Materials) { + super(expressID); + this.Materials = Materials; + this.type = 2199411900; + } + } + IFC4X32.IfcMaterialList = IfcMaterialList; + class IfcMaterialProfile extends IfcMaterialDefinition { + constructor(expressID, Name, Description, Material, Profile, Priority, Category) { + super(expressID); + this.Name = Name; + this.Description = Description; + this.Material = Material; + this.Profile = Profile; + this.Priority = Priority; + this.Category = Category; + this.type = 2235152071; + } + } + IFC4X32.IfcMaterialProfile = IfcMaterialProfile; + class IfcMaterialProfileSet extends IfcMaterialDefinition { + constructor(expressID, Name, Description, MaterialProfiles, CompositeProfile) { + super(expressID); + this.Name = Name; + this.Description = Description; + this.MaterialProfiles = MaterialProfiles; + this.CompositeProfile = CompositeProfile; + this.type = 164193824; + } + } + IFC4X32.IfcMaterialProfileSet = IfcMaterialProfileSet; + class IfcMaterialProfileWithOffsets extends IfcMaterialProfile { + constructor(expressID, Name, Description, Material, Profile, Priority, Category, OffsetValues) { + super(expressID, Name, Description, Material, Profile, Priority, Category); + this.Name = Name; + this.Description = Description; + this.Material = Material; + this.Profile = Profile; + this.Priority = Priority; + this.Category = Category; + this.OffsetValues = OffsetValues; + this.type = 552965576; + } + } + IFC4X32.IfcMaterialProfileWithOffsets = IfcMaterialProfileWithOffsets; + class IfcMaterialUsageDefinition extends IfcLineObject { + constructor(expressID) { + super(expressID); + this.type = 1507914824; + } + } + IFC4X32.IfcMaterialUsageDefinition = IfcMaterialUsageDefinition; + class IfcMeasureWithUnit extends IfcLineObject { + constructor(expressID, ValueComponent, UnitComponent) { + super(expressID); + this.ValueComponent = ValueComponent; + this.UnitComponent = UnitComponent; + this.type = 2597039031; + } + } + IFC4X32.IfcMeasureWithUnit = IfcMeasureWithUnit; + class IfcMetric extends IfcConstraint { + constructor(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade, Benchmark, ValueSource, DataValue, ReferencePath) { + super(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade); + this.Name = Name; + this.Description = Description; + this.ConstraintGrade = ConstraintGrade; + this.ConstraintSource = ConstraintSource; + this.CreatingActor = CreatingActor; + this.CreationTime = CreationTime; + this.UserDefinedGrade = UserDefinedGrade; + this.Benchmark = Benchmark; + this.ValueSource = ValueSource; + this.DataValue = DataValue; + this.ReferencePath = ReferencePath; + this.type = 3368373690; + } + } + IFC4X32.IfcMetric = IfcMetric; + class IfcMonetaryUnit extends IfcLineObject { + constructor(expressID, Currency) { + super(expressID); + this.Currency = Currency; + this.type = 2706619895; + } + } + IFC4X32.IfcMonetaryUnit = IfcMonetaryUnit; + class IfcNamedUnit extends IfcLineObject { + constructor(expressID, Dimensions, UnitType) { + super(expressID); + this.Dimensions = Dimensions; + this.UnitType = UnitType; + this.type = 1918398963; + } + } + IFC4X32.IfcNamedUnit = IfcNamedUnit; + class IfcObjectPlacement extends IfcLineObject { + constructor(expressID, PlacementRelTo) { + super(expressID); + this.PlacementRelTo = PlacementRelTo; + this.type = 3701648758; + } + } + IFC4X32.IfcObjectPlacement = IfcObjectPlacement; + class IfcObjective extends IfcConstraint { + constructor(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade, BenchmarkValues, LogicalAggregator, ObjectiveQualifier, UserDefinedQualifier) { + super(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade); + this.Name = Name; + this.Description = Description; + this.ConstraintGrade = ConstraintGrade; + this.ConstraintSource = ConstraintSource; + this.CreatingActor = CreatingActor; + this.CreationTime = CreationTime; + this.UserDefinedGrade = UserDefinedGrade; + this.BenchmarkValues = BenchmarkValues; + this.LogicalAggregator = LogicalAggregator; + this.ObjectiveQualifier = ObjectiveQualifier; + this.UserDefinedQualifier = UserDefinedQualifier; + this.type = 2251480897; + } + } + IFC4X32.IfcObjective = IfcObjective; + class IfcOrganization extends IfcLineObject { + constructor(expressID, Identification, Name, Description, Roles, Addresses) { + super(expressID); + this.Identification = Identification; + this.Name = Name; + this.Description = Description; + this.Roles = Roles; + this.Addresses = Addresses; + this.type = 4251960020; + } + } + IFC4X32.IfcOrganization = IfcOrganization; + class IfcOwnerHistory extends IfcLineObject { + constructor(expressID, OwningUser, OwningApplication, State, ChangeAction, LastModifiedDate, LastModifyingUser, LastModifyingApplication, CreationDate) { + super(expressID); + this.OwningUser = OwningUser; + this.OwningApplication = OwningApplication; + this.State = State; + this.ChangeAction = ChangeAction; + this.LastModifiedDate = LastModifiedDate; + this.LastModifyingUser = LastModifyingUser; + this.LastModifyingApplication = LastModifyingApplication; + this.CreationDate = CreationDate; + this.type = 1207048766; + } + } + IFC4X32.IfcOwnerHistory = IfcOwnerHistory; + class IfcPerson extends IfcLineObject { + constructor(expressID, Identification, FamilyName, GivenName, MiddleNames, PrefixTitles, SuffixTitles, Roles, Addresses) { + super(expressID); + this.Identification = Identification; + this.FamilyName = FamilyName; + this.GivenName = GivenName; + this.MiddleNames = MiddleNames; + this.PrefixTitles = PrefixTitles; + this.SuffixTitles = SuffixTitles; + this.Roles = Roles; + this.Addresses = Addresses; + this.type = 2077209135; + } + } + IFC4X32.IfcPerson = IfcPerson; + class IfcPersonAndOrganization extends IfcLineObject { + constructor(expressID, ThePerson, TheOrganization, Roles) { + super(expressID); + this.ThePerson = ThePerson; + this.TheOrganization = TheOrganization; + this.Roles = Roles; + this.type = 101040310; + } + } + IFC4X32.IfcPersonAndOrganization = IfcPersonAndOrganization; + class IfcPhysicalQuantity extends IfcLineObject { + constructor(expressID, Name, Description) { + super(expressID); + this.Name = Name; + this.Description = Description; + this.type = 2483315170; + } + } + IFC4X32.IfcPhysicalQuantity = IfcPhysicalQuantity; + class IfcPhysicalSimpleQuantity extends IfcPhysicalQuantity { + constructor(expressID, Name, Description, Unit) { + super(expressID, Name, Description); + this.Name = Name; + this.Description = Description; + this.Unit = Unit; + this.type = 2226359599; + } + } + IFC4X32.IfcPhysicalSimpleQuantity = IfcPhysicalSimpleQuantity; + class IfcPostalAddress extends IfcAddress { + constructor(expressID, Purpose, Description, UserDefinedPurpose, InternalLocation, AddressLines, PostalBox, Town, Region, PostalCode, Country) { + super(expressID, Purpose, Description, UserDefinedPurpose); + this.Purpose = Purpose; + this.Description = Description; + this.UserDefinedPurpose = UserDefinedPurpose; + this.InternalLocation = InternalLocation; + this.AddressLines = AddressLines; + this.PostalBox = PostalBox; + this.Town = Town; + this.Region = Region; + this.PostalCode = PostalCode; + this.Country = Country; + this.type = 3355820592; + } + } + IFC4X32.IfcPostalAddress = IfcPostalAddress; + class IfcPresentationItem extends IfcLineObject { + constructor(expressID) { + super(expressID); + this.type = 677532197; + } + } + IFC4X32.IfcPresentationItem = IfcPresentationItem; + class IfcPresentationLayerAssignment extends IfcLineObject { + constructor(expressID, Name, Description, AssignedItems, Identifier) { + super(expressID); + this.Name = Name; + this.Description = Description; + this.AssignedItems = AssignedItems; + this.Identifier = Identifier; + this.type = 2022622350; + } + } + IFC4X32.IfcPresentationLayerAssignment = IfcPresentationLayerAssignment; + class IfcPresentationLayerWithStyle extends IfcPresentationLayerAssignment { + constructor(expressID, Name, Description, AssignedItems, Identifier, LayerOn, LayerFrozen, LayerBlocked, LayerStyles) { + super(expressID, Name, Description, AssignedItems, Identifier); + this.Name = Name; + this.Description = Description; + this.AssignedItems = AssignedItems; + this.Identifier = Identifier; + this.LayerOn = LayerOn; + this.LayerFrozen = LayerFrozen; + this.LayerBlocked = LayerBlocked; + this.LayerStyles = LayerStyles; + this.type = 1304840413; + } + } + IFC4X32.IfcPresentationLayerWithStyle = IfcPresentationLayerWithStyle; + class IfcPresentationStyle extends IfcLineObject { + constructor(expressID, Name) { + super(expressID); + this.Name = Name; + this.type = 3119450353; + } + } + IFC4X32.IfcPresentationStyle = IfcPresentationStyle; + class IfcProductRepresentation extends IfcLineObject { + constructor(expressID, Name, Description, Representations) { + super(expressID); + this.Name = Name; + this.Description = Description; + this.Representations = Representations; + this.type = 2095639259; + } + } + IFC4X32.IfcProductRepresentation = IfcProductRepresentation; + class IfcProfileDef extends IfcLineObject { + constructor(expressID, ProfileType, ProfileName) { + super(expressID); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.type = 3958567839; + } + } + IFC4X32.IfcProfileDef = IfcProfileDef; + class IfcProjectedCRS extends IfcCoordinateReferenceSystem { + constructor(expressID, Name, Description, GeodeticDatum, VerticalDatum, MapProjection, MapZone, MapUnit) { + super(expressID, Name, Description, GeodeticDatum, VerticalDatum); + this.Name = Name; + this.Description = Description; + this.GeodeticDatum = GeodeticDatum; + this.VerticalDatum = VerticalDatum; + this.MapProjection = MapProjection; + this.MapZone = MapZone; + this.MapUnit = MapUnit; + this.type = 3843373140; + } + } + IFC4X32.IfcProjectedCRS = IfcProjectedCRS; + class IfcPropertyAbstraction extends IfcLineObject { + constructor(expressID) { + super(expressID); + this.type = 986844984; + } + } + IFC4X32.IfcPropertyAbstraction = IfcPropertyAbstraction; + class IfcPropertyEnumeration extends IfcPropertyAbstraction { + constructor(expressID, Name, EnumerationValues, Unit) { + super(expressID); + this.Name = Name; + this.EnumerationValues = EnumerationValues; + this.Unit = Unit; + this.type = 3710013099; + } + } + IFC4X32.IfcPropertyEnumeration = IfcPropertyEnumeration; + class IfcQuantityArea extends IfcPhysicalSimpleQuantity { + constructor(expressID, Name, Description, Unit, AreaValue, Formula) { + super(expressID, Name, Description, Unit); + this.Name = Name; + this.Description = Description; + this.Unit = Unit; + this.AreaValue = AreaValue; + this.Formula = Formula; + this.type = 2044713172; + } + } + IFC4X32.IfcQuantityArea = IfcQuantityArea; + class IfcQuantityCount extends IfcPhysicalSimpleQuantity { + constructor(expressID, Name, Description, Unit, CountValue, Formula) { + super(expressID, Name, Description, Unit); + this.Name = Name; + this.Description = Description; + this.Unit = Unit; + this.CountValue = CountValue; + this.Formula = Formula; + this.type = 2093928680; + } + } + IFC4X32.IfcQuantityCount = IfcQuantityCount; + class IfcQuantityLength extends IfcPhysicalSimpleQuantity { + constructor(expressID, Name, Description, Unit, LengthValue, Formula) { + super(expressID, Name, Description, Unit); + this.Name = Name; + this.Description = Description; + this.Unit = Unit; + this.LengthValue = LengthValue; + this.Formula = Formula; + this.type = 931644368; + } + } + IFC4X32.IfcQuantityLength = IfcQuantityLength; + class IfcQuantityNumber extends IfcPhysicalSimpleQuantity { + constructor(expressID, Name, Description, Unit, NumberValue, Formula) { + super(expressID, Name, Description, Unit); + this.Name = Name; + this.Description = Description; + this.Unit = Unit; + this.NumberValue = NumberValue; + this.Formula = Formula; + this.type = 2691318326; + } + } + IFC4X32.IfcQuantityNumber = IfcQuantityNumber; + class IfcQuantityTime extends IfcPhysicalSimpleQuantity { + constructor(expressID, Name, Description, Unit, TimeValue, Formula) { + super(expressID, Name, Description, Unit); + this.Name = Name; + this.Description = Description; + this.Unit = Unit; + this.TimeValue = TimeValue; + this.Formula = Formula; + this.type = 3252649465; + } + } + IFC4X32.IfcQuantityTime = IfcQuantityTime; + class IfcQuantityVolume extends IfcPhysicalSimpleQuantity { + constructor(expressID, Name, Description, Unit, VolumeValue, Formula) { + super(expressID, Name, Description, Unit); + this.Name = Name; + this.Description = Description; + this.Unit = Unit; + this.VolumeValue = VolumeValue; + this.Formula = Formula; + this.type = 2405470396; + } + } + IFC4X32.IfcQuantityVolume = IfcQuantityVolume; + class IfcQuantityWeight extends IfcPhysicalSimpleQuantity { + constructor(expressID, Name, Description, Unit, WeightValue, Formula) { + super(expressID, Name, Description, Unit); + this.Name = Name; + this.Description = Description; + this.Unit = Unit; + this.WeightValue = WeightValue; + this.Formula = Formula; + this.type = 825690147; + } + } + IFC4X32.IfcQuantityWeight = IfcQuantityWeight; + class IfcRecurrencePattern extends IfcLineObject { + constructor(expressID, RecurrenceType, DayComponent, WeekdayComponent, MonthComponent, Position, Interval, Occurrences, TimePeriods) { + super(expressID); + this.RecurrenceType = RecurrenceType; + this.DayComponent = DayComponent; + this.WeekdayComponent = WeekdayComponent; + this.MonthComponent = MonthComponent; + this.Position = Position; + this.Interval = Interval; + this.Occurrences = Occurrences; + this.TimePeriods = TimePeriods; + this.type = 3915482550; + } + } + IFC4X32.IfcRecurrencePattern = IfcRecurrencePattern; + class IfcReference extends IfcLineObject { + constructor(expressID, TypeIdentifier, AttributeIdentifier, InstanceName, ListPositions, InnerReference) { + super(expressID); + this.TypeIdentifier = TypeIdentifier; + this.AttributeIdentifier = AttributeIdentifier; + this.InstanceName = InstanceName; + this.ListPositions = ListPositions; + this.InnerReference = InnerReference; + this.type = 2433181523; + } + } + IFC4X32.IfcReference = IfcReference; + class IfcRepresentation extends IfcLineObject { + constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { + super(expressID); + this.ContextOfItems = ContextOfItems; + this.RepresentationIdentifier = RepresentationIdentifier; + this.RepresentationType = RepresentationType; + this.Items = Items; + this.type = 1076942058; + } + } + IFC4X32.IfcRepresentation = IfcRepresentation; + class IfcRepresentationContext extends IfcLineObject { + constructor(expressID, ContextIdentifier, ContextType) { + super(expressID); + this.ContextIdentifier = ContextIdentifier; + this.ContextType = ContextType; + this.type = 3377609919; + } + } + IFC4X32.IfcRepresentationContext = IfcRepresentationContext; + class IfcRepresentationItem extends IfcLineObject { + constructor(expressID) { + super(expressID); + this.type = 3008791417; + } + } + IFC4X32.IfcRepresentationItem = IfcRepresentationItem; + class IfcRepresentationMap extends IfcLineObject { + constructor(expressID, MappingOrigin, MappedRepresentation) { + super(expressID); + this.MappingOrigin = MappingOrigin; + this.MappedRepresentation = MappedRepresentation; + this.type = 1660063152; + } + } + IFC4X32.IfcRepresentationMap = IfcRepresentationMap; + class IfcResourceLevelRelationship extends IfcLineObject { + constructor(expressID, Name, Description) { + super(expressID); + this.Name = Name; + this.Description = Description; + this.type = 2439245199; + } + } + IFC4X32.IfcResourceLevelRelationship = IfcResourceLevelRelationship; + class IfcRoot extends IfcLineObject { + constructor(expressID, GlobalId, OwnerHistory, Name, Description) { + super(expressID); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.type = 2341007311; + } + } + IFC4X32.IfcRoot = IfcRoot; + class IfcSIUnit extends IfcNamedUnit { + constructor(expressID, Dimensions, UnitType, Prefix, Name) { + super(expressID, Dimensions, UnitType); + this.Dimensions = Dimensions; + this.UnitType = UnitType; + this.Prefix = Prefix; + this.Name = Name; + this.type = 448429030; + } + } + IFC4X32.IfcSIUnit = IfcSIUnit; + class IfcSchedulingTime extends IfcLineObject { + constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin) { + super(expressID); + this.Name = Name; + this.DataOrigin = DataOrigin; + this.UserDefinedDataOrigin = UserDefinedDataOrigin; + this.type = 1054537805; + } + } + IFC4X32.IfcSchedulingTime = IfcSchedulingTime; + class IfcShapeAspect extends IfcLineObject { + constructor(expressID, ShapeRepresentations, Name, Description, ProductDefinitional, PartOfProductDefinitionShape) { + super(expressID); + this.ShapeRepresentations = ShapeRepresentations; + this.Name = Name; + this.Description = Description; + this.ProductDefinitional = ProductDefinitional; + this.PartOfProductDefinitionShape = PartOfProductDefinitionShape; + this.type = 867548509; + } + } + IFC4X32.IfcShapeAspect = IfcShapeAspect; + class IfcShapeModel extends IfcRepresentation { + constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { + super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items); + this.ContextOfItems = ContextOfItems; + this.RepresentationIdentifier = RepresentationIdentifier; + this.RepresentationType = RepresentationType; + this.Items = Items; + this.type = 3982875396; + } + } + IFC4X32.IfcShapeModel = IfcShapeModel; + class IfcShapeRepresentation extends IfcShapeModel { + constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { + super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items); + this.ContextOfItems = ContextOfItems; + this.RepresentationIdentifier = RepresentationIdentifier; + this.RepresentationType = RepresentationType; + this.Items = Items; + this.type = 4240577450; + } + } + IFC4X32.IfcShapeRepresentation = IfcShapeRepresentation; + class IfcStructuralConnectionCondition extends IfcLineObject { + constructor(expressID, Name) { + super(expressID); + this.Name = Name; + this.type = 2273995522; + } + } + IFC4X32.IfcStructuralConnectionCondition = IfcStructuralConnectionCondition; + class IfcStructuralLoad extends IfcLineObject { + constructor(expressID, Name) { + super(expressID); + this.Name = Name; + this.type = 2162789131; + } + } + IFC4X32.IfcStructuralLoad = IfcStructuralLoad; + class IfcStructuralLoadConfiguration extends IfcStructuralLoad { + constructor(expressID, Name, Values, Locations) { + super(expressID, Name); + this.Name = Name; + this.Values = Values; + this.Locations = Locations; + this.type = 3478079324; + } + } + IFC4X32.IfcStructuralLoadConfiguration = IfcStructuralLoadConfiguration; + class IfcStructuralLoadOrResult extends IfcStructuralLoad { + constructor(expressID, Name) { + super(expressID, Name); + this.Name = Name; + this.type = 609421318; + } + } + IFC4X32.IfcStructuralLoadOrResult = IfcStructuralLoadOrResult; + class IfcStructuralLoadStatic extends IfcStructuralLoadOrResult { + constructor(expressID, Name) { + super(expressID, Name); + this.Name = Name; + this.type = 2525727697; + } + } + IFC4X32.IfcStructuralLoadStatic = IfcStructuralLoadStatic; + class IfcStructuralLoadTemperature extends IfcStructuralLoadStatic { + constructor(expressID, Name, DeltaTConstant, DeltaTY, DeltaTZ) { + super(expressID, Name); + this.Name = Name; + this.DeltaTConstant = DeltaTConstant; + this.DeltaTY = DeltaTY; + this.DeltaTZ = DeltaTZ; + this.type = 3408363356; + } + } + IFC4X32.IfcStructuralLoadTemperature = IfcStructuralLoadTemperature; + class IfcStyleModel extends IfcRepresentation { + constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { + super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items); + this.ContextOfItems = ContextOfItems; + this.RepresentationIdentifier = RepresentationIdentifier; + this.RepresentationType = RepresentationType; + this.Items = Items; + this.type = 2830218821; + } + } + IFC4X32.IfcStyleModel = IfcStyleModel; + class IfcStyledItem extends IfcRepresentationItem { + constructor(expressID, Item, Styles, Name) { + super(expressID); + this.Item = Item; + this.Styles = Styles; + this.Name = Name; + this.type = 3958052878; + } + } + IFC4X32.IfcStyledItem = IfcStyledItem; + class IfcStyledRepresentation extends IfcStyleModel { + constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { + super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items); + this.ContextOfItems = ContextOfItems; + this.RepresentationIdentifier = RepresentationIdentifier; + this.RepresentationType = RepresentationType; + this.Items = Items; + this.type = 3049322572; + } + } + IFC4X32.IfcStyledRepresentation = IfcStyledRepresentation; + class IfcSurfaceReinforcementArea extends IfcStructuralLoadOrResult { + constructor(expressID, Name, SurfaceReinforcement1, SurfaceReinforcement2, ShearReinforcement) { + super(expressID, Name); + this.Name = Name; + this.SurfaceReinforcement1 = SurfaceReinforcement1; + this.SurfaceReinforcement2 = SurfaceReinforcement2; + this.ShearReinforcement = ShearReinforcement; + this.type = 2934153892; + } + } + IFC4X32.IfcSurfaceReinforcementArea = IfcSurfaceReinforcementArea; + class IfcSurfaceStyle extends IfcPresentationStyle { + constructor(expressID, Name, Side, Styles) { + super(expressID, Name); + this.Name = Name; + this.Side = Side; + this.Styles = Styles; + this.type = 1300840506; + } + } + IFC4X32.IfcSurfaceStyle = IfcSurfaceStyle; + class IfcSurfaceStyleLighting extends IfcPresentationItem { + constructor(expressID, DiffuseTransmissionColour, DiffuseReflectionColour, TransmissionColour, ReflectanceColour) { + super(expressID); + this.DiffuseTransmissionColour = DiffuseTransmissionColour; + this.DiffuseReflectionColour = DiffuseReflectionColour; + this.TransmissionColour = TransmissionColour; + this.ReflectanceColour = ReflectanceColour; + this.type = 3303107099; + } + } + IFC4X32.IfcSurfaceStyleLighting = IfcSurfaceStyleLighting; + class IfcSurfaceStyleRefraction extends IfcPresentationItem { + constructor(expressID, RefractionIndex, DispersionFactor) { + super(expressID); + this.RefractionIndex = RefractionIndex; + this.DispersionFactor = DispersionFactor; + this.type = 1607154358; + } + } + IFC4X32.IfcSurfaceStyleRefraction = IfcSurfaceStyleRefraction; + class IfcSurfaceStyleShading extends IfcPresentationItem { + constructor(expressID, SurfaceColour, Transparency) { + super(expressID); + this.SurfaceColour = SurfaceColour; + this.Transparency = Transparency; + this.type = 846575682; + } + } + IFC4X32.IfcSurfaceStyleShading = IfcSurfaceStyleShading; + class IfcSurfaceStyleWithTextures extends IfcPresentationItem { + constructor(expressID, Textures) { + super(expressID); + this.Textures = Textures; + this.type = 1351298697; + } + } + IFC4X32.IfcSurfaceStyleWithTextures = IfcSurfaceStyleWithTextures; + class IfcSurfaceTexture extends IfcPresentationItem { + constructor(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter) { + super(expressID); + this.RepeatS = RepeatS; + this.RepeatT = RepeatT; + this.Mode = Mode; + this.TextureTransform = TextureTransform; + this.Parameter = Parameter; + this.type = 626085974; + } + } + IFC4X32.IfcSurfaceTexture = IfcSurfaceTexture; + class IfcTable extends IfcLineObject { + constructor(expressID, Name, Rows, Columns) { + super(expressID); + this.Name = Name; + this.Rows = Rows; + this.Columns = Columns; + this.type = 985171141; + } + } + IFC4X32.IfcTable = IfcTable; + class IfcTableColumn extends IfcLineObject { + constructor(expressID, Identifier, Name, Description, Unit, ReferencePath) { + super(expressID); + this.Identifier = Identifier; + this.Name = Name; + this.Description = Description; + this.Unit = Unit; + this.ReferencePath = ReferencePath; + this.type = 2043862942; + } + } + IFC4X32.IfcTableColumn = IfcTableColumn; + class IfcTableRow extends IfcLineObject { + constructor(expressID, RowCells, IsHeading) { + super(expressID); + this.RowCells = RowCells; + this.IsHeading = IsHeading; + this.type = 531007025; + } + } + IFC4X32.IfcTableRow = IfcTableRow; + class IfcTaskTime extends IfcSchedulingTime { + constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin, DurationType, ScheduleDuration, ScheduleStart, ScheduleFinish, EarlyStart, EarlyFinish, LateStart, LateFinish, FreeFloat, TotalFloat, IsCritical, StatusTime, ActualDuration, ActualStart, ActualFinish, RemainingTime, Completion) { + super(expressID, Name, DataOrigin, UserDefinedDataOrigin); + this.Name = Name; + this.DataOrigin = DataOrigin; + this.UserDefinedDataOrigin = UserDefinedDataOrigin; + this.DurationType = DurationType; + this.ScheduleDuration = ScheduleDuration; + this.ScheduleStart = ScheduleStart; + this.ScheduleFinish = ScheduleFinish; + this.EarlyStart = EarlyStart; + this.EarlyFinish = EarlyFinish; + this.LateStart = LateStart; + this.LateFinish = LateFinish; + this.FreeFloat = FreeFloat; + this.TotalFloat = TotalFloat; + this.IsCritical = IsCritical; + this.StatusTime = StatusTime; + this.ActualDuration = ActualDuration; + this.ActualStart = ActualStart; + this.ActualFinish = ActualFinish; + this.RemainingTime = RemainingTime; + this.Completion = Completion; + this.type = 1549132990; + } + } + IFC4X32.IfcTaskTime = IfcTaskTime; + class IfcTaskTimeRecurring extends IfcTaskTime { + constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin, DurationType, ScheduleDuration, ScheduleStart, ScheduleFinish, EarlyStart, EarlyFinish, LateStart, LateFinish, FreeFloat, TotalFloat, IsCritical, StatusTime, ActualDuration, ActualStart, ActualFinish, RemainingTime, Completion, Recurrence) { + super(expressID, Name, DataOrigin, UserDefinedDataOrigin, DurationType, ScheduleDuration, ScheduleStart, ScheduleFinish, EarlyStart, EarlyFinish, LateStart, LateFinish, FreeFloat, TotalFloat, IsCritical, StatusTime, ActualDuration, ActualStart, ActualFinish, RemainingTime, Completion); + this.Name = Name; + this.DataOrigin = DataOrigin; + this.UserDefinedDataOrigin = UserDefinedDataOrigin; + this.DurationType = DurationType; + this.ScheduleDuration = ScheduleDuration; + this.ScheduleStart = ScheduleStart; + this.ScheduleFinish = ScheduleFinish; + this.EarlyStart = EarlyStart; + this.EarlyFinish = EarlyFinish; + this.LateStart = LateStart; + this.LateFinish = LateFinish; + this.FreeFloat = FreeFloat; + this.TotalFloat = TotalFloat; + this.IsCritical = IsCritical; + this.StatusTime = StatusTime; + this.ActualDuration = ActualDuration; + this.ActualStart = ActualStart; + this.ActualFinish = ActualFinish; + this.RemainingTime = RemainingTime; + this.Completion = Completion; + this.Recurrence = Recurrence; + this.type = 2771591690; + } + } + IFC4X32.IfcTaskTimeRecurring = IfcTaskTimeRecurring; + class IfcTelecomAddress extends IfcAddress { + constructor(expressID, Purpose, Description, UserDefinedPurpose, TelephoneNumbers, FacsimileNumbers, PagerNumber, ElectronicMailAddresses, WWWHomePageURL, MessagingIDs) { + super(expressID, Purpose, Description, UserDefinedPurpose); + this.Purpose = Purpose; + this.Description = Description; + this.UserDefinedPurpose = UserDefinedPurpose; + this.TelephoneNumbers = TelephoneNumbers; + this.FacsimileNumbers = FacsimileNumbers; + this.PagerNumber = PagerNumber; + this.ElectronicMailAddresses = ElectronicMailAddresses; + this.WWWHomePageURL = WWWHomePageURL; + this.MessagingIDs = MessagingIDs; + this.type = 912023232; + } + } + IFC4X32.IfcTelecomAddress = IfcTelecomAddress; + class IfcTextStyle extends IfcPresentationStyle { + constructor(expressID, Name, TextCharacterAppearance, TextStyle, TextFontStyle, ModelOrDraughting) { + super(expressID, Name); + this.Name = Name; + this.TextCharacterAppearance = TextCharacterAppearance; + this.TextStyle = TextStyle; + this.TextFontStyle = TextFontStyle; + this.ModelOrDraughting = ModelOrDraughting; + this.type = 1447204868; + } + } + IFC4X32.IfcTextStyle = IfcTextStyle; + class IfcTextStyleForDefinedFont extends IfcPresentationItem { + constructor(expressID, Colour, BackgroundColour) { + super(expressID); + this.Colour = Colour; + this.BackgroundColour = BackgroundColour; + this.type = 2636378356; + } + } + IFC4X32.IfcTextStyleForDefinedFont = IfcTextStyleForDefinedFont; + class IfcTextStyleTextModel extends IfcPresentationItem { + constructor(expressID, TextIndent, TextAlign, TextDecoration, LetterSpacing, WordSpacing, TextTransform, LineHeight) { + super(expressID); + this.TextIndent = TextIndent; + this.TextAlign = TextAlign; + this.TextDecoration = TextDecoration; + this.LetterSpacing = LetterSpacing; + this.WordSpacing = WordSpacing; + this.TextTransform = TextTransform; + this.LineHeight = LineHeight; + this.type = 1640371178; + } + } + IFC4X32.IfcTextStyleTextModel = IfcTextStyleTextModel; + class IfcTextureCoordinate extends IfcPresentationItem { + constructor(expressID, Maps) { + super(expressID); + this.Maps = Maps; + this.type = 280115917; + } + } + IFC4X32.IfcTextureCoordinate = IfcTextureCoordinate; + class IfcTextureCoordinateGenerator extends IfcTextureCoordinate { + constructor(expressID, Maps, Mode, Parameter) { + super(expressID, Maps); + this.Maps = Maps; + this.Mode = Mode; + this.Parameter = Parameter; + this.type = 1742049831; + } + } + IFC4X32.IfcTextureCoordinateGenerator = IfcTextureCoordinateGenerator; + class IfcTextureCoordinateIndices extends IfcLineObject { + constructor(expressID, TexCoordIndex, TexCoordsOf) { + super(expressID); + this.TexCoordIndex = TexCoordIndex; + this.TexCoordsOf = TexCoordsOf; + this.type = 222769930; + } + } + IFC4X32.IfcTextureCoordinateIndices = IfcTextureCoordinateIndices; + class IfcTextureCoordinateIndicesWithVoids extends IfcTextureCoordinateIndices { + constructor(expressID, TexCoordIndex, TexCoordsOf, InnerTexCoordIndices) { + super(expressID, TexCoordIndex, TexCoordsOf); + this.TexCoordIndex = TexCoordIndex; + this.TexCoordsOf = TexCoordsOf; + this.InnerTexCoordIndices = InnerTexCoordIndices; + this.type = 1010789467; + } + } + IFC4X32.IfcTextureCoordinateIndicesWithVoids = IfcTextureCoordinateIndicesWithVoids; + class IfcTextureMap extends IfcTextureCoordinate { + constructor(expressID, Maps, Vertices, MappedTo) { + super(expressID, Maps); + this.Maps = Maps; + this.Vertices = Vertices; + this.MappedTo = MappedTo; + this.type = 2552916305; + } + } + IFC4X32.IfcTextureMap = IfcTextureMap; + class IfcTextureVertex extends IfcPresentationItem { + constructor(expressID, Coordinates) { + super(expressID); + this.Coordinates = Coordinates; + this.type = 1210645708; + } + } + IFC4X32.IfcTextureVertex = IfcTextureVertex; + class IfcTextureVertexList extends IfcPresentationItem { + constructor(expressID, TexCoordsList) { + super(expressID); + this.TexCoordsList = TexCoordsList; + this.type = 3611470254; + } + } + IFC4X32.IfcTextureVertexList = IfcTextureVertexList; + class IfcTimePeriod extends IfcLineObject { + constructor(expressID, StartTime, EndTime) { + super(expressID); + this.StartTime = StartTime; + this.EndTime = EndTime; + this.type = 1199560280; + } + } + IFC4X32.IfcTimePeriod = IfcTimePeriod; + class IfcTimeSeries extends IfcLineObject { + constructor(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit) { + super(expressID); + this.Name = Name; + this.Description = Description; + this.StartTime = StartTime; + this.EndTime = EndTime; + this.TimeSeriesDataType = TimeSeriesDataType; + this.DataOrigin = DataOrigin; + this.UserDefinedDataOrigin = UserDefinedDataOrigin; + this.Unit = Unit; + this.type = 3101149627; + } + } + IFC4X32.IfcTimeSeries = IfcTimeSeries; + class IfcTimeSeriesValue extends IfcLineObject { + constructor(expressID, ListValues) { + super(expressID); + this.ListValues = ListValues; + this.type = 581633288; + } + } + IFC4X32.IfcTimeSeriesValue = IfcTimeSeriesValue; + class IfcTopologicalRepresentationItem extends IfcRepresentationItem { + constructor(expressID) { + super(expressID); + this.type = 1377556343; + } + } + IFC4X32.IfcTopologicalRepresentationItem = IfcTopologicalRepresentationItem; + class IfcTopologyRepresentation extends IfcShapeModel { + constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { + super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items); + this.ContextOfItems = ContextOfItems; + this.RepresentationIdentifier = RepresentationIdentifier; + this.RepresentationType = RepresentationType; + this.Items = Items; + this.type = 1735638870; + } + } + IFC4X32.IfcTopologyRepresentation = IfcTopologyRepresentation; + class IfcUnitAssignment extends IfcLineObject { + constructor(expressID, Units) { + super(expressID); + this.Units = Units; + this.type = 180925521; + } + } + IFC4X32.IfcUnitAssignment = IfcUnitAssignment; + class IfcVertex extends IfcTopologicalRepresentationItem { + constructor(expressID) { + super(expressID); + this.type = 2799835756; + } + } + IFC4X32.IfcVertex = IfcVertex; + class IfcVertexPoint extends IfcVertex { + constructor(expressID, VertexGeometry) { + super(expressID); + this.VertexGeometry = VertexGeometry; + this.type = 1907098498; + } + } + IFC4X32.IfcVertexPoint = IfcVertexPoint; + class IfcVirtualGridIntersection extends IfcLineObject { + constructor(expressID, IntersectingAxes, OffsetDistances) { + super(expressID); + this.IntersectingAxes = IntersectingAxes; + this.OffsetDistances = OffsetDistances; + this.type = 891718957; + } + } + IFC4X32.IfcVirtualGridIntersection = IfcVirtualGridIntersection; + class IfcWorkTime extends IfcSchedulingTime { + constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin, RecurrencePattern, StartDate, FinishDate) { + super(expressID, Name, DataOrigin, UserDefinedDataOrigin); + this.Name = Name; + this.DataOrigin = DataOrigin; + this.UserDefinedDataOrigin = UserDefinedDataOrigin; + this.RecurrencePattern = RecurrencePattern; + this.StartDate = StartDate; + this.FinishDate = FinishDate; + this.type = 1236880293; + } + } + IFC4X32.IfcWorkTime = IfcWorkTime; + class IfcAlignmentCantSegment extends IfcAlignmentParameterSegment { + constructor(expressID, StartTag, EndTag, StartDistAlong, HorizontalLength, StartCantLeft, EndCantLeft, StartCantRight, EndCantRight, PredefinedType) { + super(expressID, StartTag, EndTag); + this.StartTag = StartTag; + this.EndTag = EndTag; + this.StartDistAlong = StartDistAlong; + this.HorizontalLength = HorizontalLength; + this.StartCantLeft = StartCantLeft; + this.EndCantLeft = EndCantLeft; + this.StartCantRight = StartCantRight; + this.EndCantRight = EndCantRight; + this.PredefinedType = PredefinedType; + this.type = 3752311538; + } + } + IFC4X32.IfcAlignmentCantSegment = IfcAlignmentCantSegment; + class IfcAlignmentHorizontalSegment extends IfcAlignmentParameterSegment { + constructor(expressID, StartTag, EndTag, StartPoint, StartDirection, StartRadiusOfCurvature, EndRadiusOfCurvature, SegmentLength, GravityCenterLineHeight, PredefinedType) { + super(expressID, StartTag, EndTag); + this.StartTag = StartTag; + this.EndTag = EndTag; + this.StartPoint = StartPoint; + this.StartDirection = StartDirection; + this.StartRadiusOfCurvature = StartRadiusOfCurvature; + this.EndRadiusOfCurvature = EndRadiusOfCurvature; + this.SegmentLength = SegmentLength; + this.GravityCenterLineHeight = GravityCenterLineHeight; + this.PredefinedType = PredefinedType; + this.type = 536804194; + } + } + IFC4X32.IfcAlignmentHorizontalSegment = IfcAlignmentHorizontalSegment; + class IfcApprovalRelationship extends IfcResourceLevelRelationship { + constructor(expressID, Name, Description, RelatingApproval, RelatedApprovals) { + super(expressID, Name, Description); + this.Name = Name; + this.Description = Description; + this.RelatingApproval = RelatingApproval; + this.RelatedApprovals = RelatedApprovals; + this.type = 3869604511; + } + } + IFC4X32.IfcApprovalRelationship = IfcApprovalRelationship; + class IfcArbitraryClosedProfileDef extends IfcProfileDef { + constructor(expressID, ProfileType, ProfileName, OuterCurve) { + super(expressID, ProfileType, ProfileName); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.OuterCurve = OuterCurve; + this.type = 3798115385; + } + } + IFC4X32.IfcArbitraryClosedProfileDef = IfcArbitraryClosedProfileDef; + class IfcArbitraryOpenProfileDef extends IfcProfileDef { + constructor(expressID, ProfileType, ProfileName, Curve) { + super(expressID, ProfileType, ProfileName); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Curve = Curve; + this.type = 1310608509; + } + } + IFC4X32.IfcArbitraryOpenProfileDef = IfcArbitraryOpenProfileDef; + class IfcArbitraryProfileDefWithVoids extends IfcArbitraryClosedProfileDef { + constructor(expressID, ProfileType, ProfileName, OuterCurve, InnerCurves) { + super(expressID, ProfileType, ProfileName, OuterCurve); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.OuterCurve = OuterCurve; + this.InnerCurves = InnerCurves; + this.type = 2705031697; + } + } + IFC4X32.IfcArbitraryProfileDefWithVoids = IfcArbitraryProfileDefWithVoids; + class IfcBlobTexture extends IfcSurfaceTexture { + constructor(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter, RasterFormat, RasterCode) { + super(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter); + this.RepeatS = RepeatS; + this.RepeatT = RepeatT; + this.Mode = Mode; + this.TextureTransform = TextureTransform; + this.Parameter = Parameter; + this.RasterFormat = RasterFormat; + this.RasterCode = RasterCode; + this.type = 616511568; + } + } + IFC4X32.IfcBlobTexture = IfcBlobTexture; + class IfcCenterLineProfileDef extends IfcArbitraryOpenProfileDef { + constructor(expressID, ProfileType, ProfileName, Curve, Thickness) { + super(expressID, ProfileType, ProfileName, Curve); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Curve = Curve; + this.Thickness = Thickness; + this.type = 3150382593; + } + } + IFC4X32.IfcCenterLineProfileDef = IfcCenterLineProfileDef; + class IfcClassification extends IfcExternalInformation { + constructor(expressID, Source, Edition, EditionDate, Name, Description, Specification, ReferenceTokens) { + super(expressID); + this.Source = Source; + this.Edition = Edition; + this.EditionDate = EditionDate; + this.Name = Name; + this.Description = Description; + this.Specification = Specification; + this.ReferenceTokens = ReferenceTokens; + this.type = 747523909; + } + } + IFC4X32.IfcClassification = IfcClassification; + class IfcClassificationReference extends IfcExternalReference { + constructor(expressID, Location, Identification, Name, ReferencedSource, Description, Sort) { + super(expressID, Location, Identification, Name); + this.Location = Location; + this.Identification = Identification; + this.Name = Name; + this.ReferencedSource = ReferencedSource; + this.Description = Description; + this.Sort = Sort; + this.type = 647927063; + } + } + IFC4X32.IfcClassificationReference = IfcClassificationReference; + class IfcColourRgbList extends IfcPresentationItem { + constructor(expressID, ColourList) { + super(expressID); + this.ColourList = ColourList; + this.type = 3285139300; + } + } + IFC4X32.IfcColourRgbList = IfcColourRgbList; + class IfcColourSpecification extends IfcPresentationItem { + constructor(expressID, Name) { + super(expressID); + this.Name = Name; + this.type = 3264961684; + } + } + IFC4X32.IfcColourSpecification = IfcColourSpecification; + class IfcCompositeProfileDef extends IfcProfileDef { + constructor(expressID, ProfileType, ProfileName, Profiles, Label) { + super(expressID, ProfileType, ProfileName); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Profiles = Profiles; + this.Label = Label; + this.type = 1485152156; + } + } + IFC4X32.IfcCompositeProfileDef = IfcCompositeProfileDef; + class IfcConnectedFaceSet extends IfcTopologicalRepresentationItem { + constructor(expressID, CfsFaces) { + super(expressID); + this.CfsFaces = CfsFaces; + this.type = 370225590; + } + } + IFC4X32.IfcConnectedFaceSet = IfcConnectedFaceSet; + class IfcConnectionCurveGeometry extends IfcConnectionGeometry { + constructor(expressID, CurveOnRelatingElement, CurveOnRelatedElement) { + super(expressID); + this.CurveOnRelatingElement = CurveOnRelatingElement; + this.CurveOnRelatedElement = CurveOnRelatedElement; + this.type = 1981873012; + } + } + IFC4X32.IfcConnectionCurveGeometry = IfcConnectionCurveGeometry; + class IfcConnectionPointEccentricity extends IfcConnectionPointGeometry { + constructor(expressID, PointOnRelatingElement, PointOnRelatedElement, EccentricityInX, EccentricityInY, EccentricityInZ) { + super(expressID, PointOnRelatingElement, PointOnRelatedElement); + this.PointOnRelatingElement = PointOnRelatingElement; + this.PointOnRelatedElement = PointOnRelatedElement; + this.EccentricityInX = EccentricityInX; + this.EccentricityInY = EccentricityInY; + this.EccentricityInZ = EccentricityInZ; + this.type = 45288368; + } + } + IFC4X32.IfcConnectionPointEccentricity = IfcConnectionPointEccentricity; + class IfcContextDependentUnit extends IfcNamedUnit { + constructor(expressID, Dimensions, UnitType, Name) { + super(expressID, Dimensions, UnitType); + this.Dimensions = Dimensions; + this.UnitType = UnitType; + this.Name = Name; + this.type = 3050246964; + } + } + IFC4X32.IfcContextDependentUnit = IfcContextDependentUnit; + class IfcConversionBasedUnit extends IfcNamedUnit { + constructor(expressID, Dimensions, UnitType, Name, ConversionFactor) { + super(expressID, Dimensions, UnitType); + this.Dimensions = Dimensions; + this.UnitType = UnitType; + this.Name = Name; + this.ConversionFactor = ConversionFactor; + this.type = 2889183280; + } + } + IFC4X32.IfcConversionBasedUnit = IfcConversionBasedUnit; + class IfcConversionBasedUnitWithOffset extends IfcConversionBasedUnit { + constructor(expressID, Dimensions, UnitType, Name, ConversionFactor, ConversionOffset) { + super(expressID, Dimensions, UnitType, Name, ConversionFactor); + this.Dimensions = Dimensions; + this.UnitType = UnitType; + this.Name = Name; + this.ConversionFactor = ConversionFactor; + this.ConversionOffset = ConversionOffset; + this.type = 2713554722; + } + } + IFC4X32.IfcConversionBasedUnitWithOffset = IfcConversionBasedUnitWithOffset; + class IfcCurrencyRelationship extends IfcResourceLevelRelationship { + constructor(expressID, Name, Description, RelatingMonetaryUnit, RelatedMonetaryUnit, ExchangeRate, RateDateTime, RateSource) { + super(expressID, Name, Description); + this.Name = Name; + this.Description = Description; + this.RelatingMonetaryUnit = RelatingMonetaryUnit; + this.RelatedMonetaryUnit = RelatedMonetaryUnit; + this.ExchangeRate = ExchangeRate; + this.RateDateTime = RateDateTime; + this.RateSource = RateSource; + this.type = 539742890; + } + } + IFC4X32.IfcCurrencyRelationship = IfcCurrencyRelationship; + class IfcCurveStyle extends IfcPresentationStyle { + constructor(expressID, Name, CurveFont, CurveWidth, CurveColour, ModelOrDraughting) { + super(expressID, Name); + this.Name = Name; + this.CurveFont = CurveFont; + this.CurveWidth = CurveWidth; + this.CurveColour = CurveColour; + this.ModelOrDraughting = ModelOrDraughting; + this.type = 3800577675; + } + } + IFC4X32.IfcCurveStyle = IfcCurveStyle; + class IfcCurveStyleFont extends IfcPresentationItem { + constructor(expressID, Name, PatternList) { + super(expressID); + this.Name = Name; + this.PatternList = PatternList; + this.type = 1105321065; + } + } + IFC4X32.IfcCurveStyleFont = IfcCurveStyleFont; + class IfcCurveStyleFontAndScaling extends IfcPresentationItem { + constructor(expressID, Name, CurveStyleFont, CurveFontScaling) { + super(expressID); + this.Name = Name; + this.CurveStyleFont = CurveStyleFont; + this.CurveFontScaling = CurveFontScaling; + this.type = 2367409068; + } + } + IFC4X32.IfcCurveStyleFontAndScaling = IfcCurveStyleFontAndScaling; + class IfcCurveStyleFontPattern extends IfcPresentationItem { + constructor(expressID, VisibleSegmentLength, InvisibleSegmentLength) { + super(expressID); + this.VisibleSegmentLength = VisibleSegmentLength; + this.InvisibleSegmentLength = InvisibleSegmentLength; + this.type = 3510044353; + } + } + IFC4X32.IfcCurveStyleFontPattern = IfcCurveStyleFontPattern; + class IfcDerivedProfileDef extends IfcProfileDef { + constructor(expressID, ProfileType, ProfileName, ParentProfile, Operator, Label) { + super(expressID, ProfileType, ProfileName); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.ParentProfile = ParentProfile; + this.Operator = Operator; + this.Label = Label; + this.type = 3632507154; + } + } + IFC4X32.IfcDerivedProfileDef = IfcDerivedProfileDef; + class IfcDocumentInformation extends IfcExternalInformation { + constructor(expressID, Identification, Name, Description, Location, Purpose, IntendedUse, Scope, Revision, DocumentOwner, Editors, CreationTime, LastRevisionTime, ElectronicFormat, ValidFrom, ValidUntil, Confidentiality, Status) { + super(expressID); + this.Identification = Identification; + this.Name = Name; + this.Description = Description; + this.Location = Location; + this.Purpose = Purpose; + this.IntendedUse = IntendedUse; + this.Scope = Scope; + this.Revision = Revision; + this.DocumentOwner = DocumentOwner; + this.Editors = Editors; + this.CreationTime = CreationTime; + this.LastRevisionTime = LastRevisionTime; + this.ElectronicFormat = ElectronicFormat; + this.ValidFrom = ValidFrom; + this.ValidUntil = ValidUntil; + this.Confidentiality = Confidentiality; + this.Status = Status; + this.type = 1154170062; + } + } + IFC4X32.IfcDocumentInformation = IfcDocumentInformation; + class IfcDocumentInformationRelationship extends IfcResourceLevelRelationship { + constructor(expressID, Name, Description, RelatingDocument, RelatedDocuments, RelationshipType) { + super(expressID, Name, Description); + this.Name = Name; + this.Description = Description; + this.RelatingDocument = RelatingDocument; + this.RelatedDocuments = RelatedDocuments; + this.RelationshipType = RelationshipType; + this.type = 770865208; + } + } + IFC4X32.IfcDocumentInformationRelationship = IfcDocumentInformationRelationship; + class IfcDocumentReference extends IfcExternalReference { + constructor(expressID, Location, Identification, Name, Description, ReferencedDocument) { + super(expressID, Location, Identification, Name); + this.Location = Location; + this.Identification = Identification; + this.Name = Name; + this.Description = Description; + this.ReferencedDocument = ReferencedDocument; + this.type = 3732053477; + } + } + IFC4X32.IfcDocumentReference = IfcDocumentReference; + class IfcEdge extends IfcTopologicalRepresentationItem { + constructor(expressID, EdgeStart, EdgeEnd) { + super(expressID); + this.EdgeStart = EdgeStart; + this.EdgeEnd = EdgeEnd; + this.type = 3900360178; + } + } + IFC4X32.IfcEdge = IfcEdge; + class IfcEdgeCurve extends IfcEdge { + constructor(expressID, EdgeStart, EdgeEnd, EdgeGeometry, SameSense) { + super(expressID, EdgeStart, EdgeEnd); + this.EdgeStart = EdgeStart; + this.EdgeEnd = EdgeEnd; + this.EdgeGeometry = EdgeGeometry; + this.SameSense = SameSense; + this.type = 476780140; + } + } + IFC4X32.IfcEdgeCurve = IfcEdgeCurve; + class IfcEventTime extends IfcSchedulingTime { + constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin, ActualDate, EarlyDate, LateDate, ScheduleDate) { + super(expressID, Name, DataOrigin, UserDefinedDataOrigin); + this.Name = Name; + this.DataOrigin = DataOrigin; + this.UserDefinedDataOrigin = UserDefinedDataOrigin; + this.ActualDate = ActualDate; + this.EarlyDate = EarlyDate; + this.LateDate = LateDate; + this.ScheduleDate = ScheduleDate; + this.type = 211053100; + } + } + IFC4X32.IfcEventTime = IfcEventTime; + class IfcExtendedProperties extends IfcPropertyAbstraction { + constructor(expressID, Name, Description, Properties2) { + super(expressID); + this.Name = Name; + this.Description = Description; + this.Properties = Properties2; + this.type = 297599258; + } + } + IFC4X32.IfcExtendedProperties = IfcExtendedProperties; + class IfcExternalReferenceRelationship extends IfcResourceLevelRelationship { + constructor(expressID, Name, Description, RelatingReference, RelatedResourceObjects) { + super(expressID, Name, Description); + this.Name = Name; + this.Description = Description; + this.RelatingReference = RelatingReference; + this.RelatedResourceObjects = RelatedResourceObjects; + this.type = 1437805879; + } + } + IFC4X32.IfcExternalReferenceRelationship = IfcExternalReferenceRelationship; + class IfcFace extends IfcTopologicalRepresentationItem { + constructor(expressID, Bounds) { + super(expressID); + this.Bounds = Bounds; + this.type = 2556980723; + } + } + IFC4X32.IfcFace = IfcFace; + class IfcFaceBound extends IfcTopologicalRepresentationItem { + constructor(expressID, Bound, Orientation) { + super(expressID); + this.Bound = Bound; + this.Orientation = Orientation; + this.type = 1809719519; + } + } + IFC4X32.IfcFaceBound = IfcFaceBound; + class IfcFaceOuterBound extends IfcFaceBound { + constructor(expressID, Bound, Orientation) { + super(expressID, Bound, Orientation); + this.Bound = Bound; + this.Orientation = Orientation; + this.type = 803316827; + } + } + IFC4X32.IfcFaceOuterBound = IfcFaceOuterBound; + class IfcFaceSurface extends IfcFace { + constructor(expressID, Bounds, FaceSurface, SameSense) { + super(expressID, Bounds); + this.Bounds = Bounds; + this.FaceSurface = FaceSurface; + this.SameSense = SameSense; + this.type = 3008276851; + } + } + IFC4X32.IfcFaceSurface = IfcFaceSurface; + class IfcFailureConnectionCondition extends IfcStructuralConnectionCondition { + constructor(expressID, Name, TensionFailureX, TensionFailureY, TensionFailureZ, CompressionFailureX, CompressionFailureY, CompressionFailureZ) { + super(expressID, Name); + this.Name = Name; + this.TensionFailureX = TensionFailureX; + this.TensionFailureY = TensionFailureY; + this.TensionFailureZ = TensionFailureZ; + this.CompressionFailureX = CompressionFailureX; + this.CompressionFailureY = CompressionFailureY; + this.CompressionFailureZ = CompressionFailureZ; + this.type = 4219587988; + } + } + IFC4X32.IfcFailureConnectionCondition = IfcFailureConnectionCondition; + class IfcFillAreaStyle extends IfcPresentationStyle { + constructor(expressID, Name, FillStyles, ModelOrDraughting) { + super(expressID, Name); + this.Name = Name; + this.FillStyles = FillStyles; + this.ModelOrDraughting = ModelOrDraughting; + this.type = 738692330; + } + } + IFC4X32.IfcFillAreaStyle = IfcFillAreaStyle; + class IfcGeometricRepresentationContext extends IfcRepresentationContext { + constructor(expressID, ContextIdentifier, ContextType, CoordinateSpaceDimension, Precision, WorldCoordinateSystem, TrueNorth) { + super(expressID, ContextIdentifier, ContextType); + this.ContextIdentifier = ContextIdentifier; + this.ContextType = ContextType; + this.CoordinateSpaceDimension = CoordinateSpaceDimension; + this.Precision = Precision; + this.WorldCoordinateSystem = WorldCoordinateSystem; + this.TrueNorth = TrueNorth; + this.type = 3448662350; + } + } + IFC4X32.IfcGeometricRepresentationContext = IfcGeometricRepresentationContext; + class IfcGeometricRepresentationItem extends IfcRepresentationItem { + constructor(expressID) { + super(expressID); + this.type = 2453401579; + } + } + IFC4X32.IfcGeometricRepresentationItem = IfcGeometricRepresentationItem; + class IfcGeometricRepresentationSubContext extends IfcGeometricRepresentationContext { + constructor(expressID, ContextIdentifier, ContextType, WorldCoordinateSystem, ParentContext, TargetScale, TargetView, UserDefinedTargetView) { + super(expressID, ContextIdentifier, ContextType, new IfcDimensionCount(0), null, WorldCoordinateSystem, null); + this.ContextIdentifier = ContextIdentifier; + this.ContextType = ContextType; + this.WorldCoordinateSystem = WorldCoordinateSystem; + this.ParentContext = ParentContext; + this.TargetScale = TargetScale; + this.TargetView = TargetView; + this.UserDefinedTargetView = UserDefinedTargetView; + this.type = 4142052618; + } + } + IFC4X32.IfcGeometricRepresentationSubContext = IfcGeometricRepresentationSubContext; + class IfcGeometricSet extends IfcGeometricRepresentationItem { + constructor(expressID, Elements) { + super(expressID); + this.Elements = Elements; + this.type = 3590301190; + } + } + IFC4X32.IfcGeometricSet = IfcGeometricSet; + class IfcGridPlacement extends IfcObjectPlacement { + constructor(expressID, PlacementRelTo, PlacementLocation, PlacementRefDirection) { + super(expressID, PlacementRelTo); + this.PlacementRelTo = PlacementRelTo; + this.PlacementLocation = PlacementLocation; + this.PlacementRefDirection = PlacementRefDirection; + this.type = 178086475; + } + } + IFC4X32.IfcGridPlacement = IfcGridPlacement; + class IfcHalfSpaceSolid extends IfcGeometricRepresentationItem { + constructor(expressID, BaseSurface, AgreementFlag) { + super(expressID); + this.BaseSurface = BaseSurface; + this.AgreementFlag = AgreementFlag; + this.type = 812098782; + } + } + IFC4X32.IfcHalfSpaceSolid = IfcHalfSpaceSolid; + class IfcImageTexture extends IfcSurfaceTexture { + constructor(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter, URLReference) { + super(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter); + this.RepeatS = RepeatS; + this.RepeatT = RepeatT; + this.Mode = Mode; + this.TextureTransform = TextureTransform; + this.Parameter = Parameter; + this.URLReference = URLReference; + this.type = 3905492369; + } + } + IFC4X32.IfcImageTexture = IfcImageTexture; + class IfcIndexedColourMap extends IfcPresentationItem { + constructor(expressID, MappedTo, Opacity, Colours, ColourIndex) { + super(expressID); + this.MappedTo = MappedTo; + this.Opacity = Opacity; + this.Colours = Colours; + this.ColourIndex = ColourIndex; + this.type = 3570813810; + } + } + IFC4X32.IfcIndexedColourMap = IfcIndexedColourMap; + class IfcIndexedTextureMap extends IfcTextureCoordinate { + constructor(expressID, Maps, MappedTo, TexCoords) { + super(expressID, Maps); + this.Maps = Maps; + this.MappedTo = MappedTo; + this.TexCoords = TexCoords; + this.type = 1437953363; + } + } + IFC4X32.IfcIndexedTextureMap = IfcIndexedTextureMap; + class IfcIndexedTriangleTextureMap extends IfcIndexedTextureMap { + constructor(expressID, Maps, MappedTo, TexCoords, TexCoordIndex) { + super(expressID, Maps, MappedTo, TexCoords); + this.Maps = Maps; + this.MappedTo = MappedTo; + this.TexCoords = TexCoords; + this.TexCoordIndex = TexCoordIndex; + this.type = 2133299955; + } + } + IFC4X32.IfcIndexedTriangleTextureMap = IfcIndexedTriangleTextureMap; + class IfcIrregularTimeSeries extends IfcTimeSeries { + constructor(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit, Values) { + super(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit); + this.Name = Name; + this.Description = Description; + this.StartTime = StartTime; + this.EndTime = EndTime; + this.TimeSeriesDataType = TimeSeriesDataType; + this.DataOrigin = DataOrigin; + this.UserDefinedDataOrigin = UserDefinedDataOrigin; + this.Unit = Unit; + this.Values = Values; + this.type = 3741457305; + } + } + IFC4X32.IfcIrregularTimeSeries = IfcIrregularTimeSeries; + class IfcLagTime extends IfcSchedulingTime { + constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin, LagValue, DurationType) { + super(expressID, Name, DataOrigin, UserDefinedDataOrigin); + this.Name = Name; + this.DataOrigin = DataOrigin; + this.UserDefinedDataOrigin = UserDefinedDataOrigin; + this.LagValue = LagValue; + this.DurationType = DurationType; + this.type = 1585845231; + } + } + IFC4X32.IfcLagTime = IfcLagTime; + class IfcLightSource extends IfcGeometricRepresentationItem { + constructor(expressID, Name, LightColour, AmbientIntensity, Intensity) { + super(expressID); + this.Name = Name; + this.LightColour = LightColour; + this.AmbientIntensity = AmbientIntensity; + this.Intensity = Intensity; + this.type = 1402838566; + } + } + IFC4X32.IfcLightSource = IfcLightSource; + class IfcLightSourceAmbient extends IfcLightSource { + constructor(expressID, Name, LightColour, AmbientIntensity, Intensity) { + super(expressID, Name, LightColour, AmbientIntensity, Intensity); + this.Name = Name; + this.LightColour = LightColour; + this.AmbientIntensity = AmbientIntensity; + this.Intensity = Intensity; + this.type = 125510826; + } + } + IFC4X32.IfcLightSourceAmbient = IfcLightSourceAmbient; + class IfcLightSourceDirectional extends IfcLightSource { + constructor(expressID, Name, LightColour, AmbientIntensity, Intensity, Orientation) { + super(expressID, Name, LightColour, AmbientIntensity, Intensity); + this.Name = Name; + this.LightColour = LightColour; + this.AmbientIntensity = AmbientIntensity; + this.Intensity = Intensity; + this.Orientation = Orientation; + this.type = 2604431987; + } + } + IFC4X32.IfcLightSourceDirectional = IfcLightSourceDirectional; + class IfcLightSourceGoniometric extends IfcLightSource { + constructor(expressID, Name, LightColour, AmbientIntensity, Intensity, Position, ColourAppearance, ColourTemperature, LuminousFlux, LightEmissionSource, LightDistributionDataSource) { + super(expressID, Name, LightColour, AmbientIntensity, Intensity); + this.Name = Name; + this.LightColour = LightColour; + this.AmbientIntensity = AmbientIntensity; + this.Intensity = Intensity; + this.Position = Position; + this.ColourAppearance = ColourAppearance; + this.ColourTemperature = ColourTemperature; + this.LuminousFlux = LuminousFlux; + this.LightEmissionSource = LightEmissionSource; + this.LightDistributionDataSource = LightDistributionDataSource; + this.type = 4266656042; + } + } + IFC4X32.IfcLightSourceGoniometric = IfcLightSourceGoniometric; + class IfcLightSourcePositional extends IfcLightSource { + constructor(expressID, Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation) { + super(expressID, Name, LightColour, AmbientIntensity, Intensity); + this.Name = Name; + this.LightColour = LightColour; + this.AmbientIntensity = AmbientIntensity; + this.Intensity = Intensity; + this.Position = Position; + this.Radius = Radius; + this.ConstantAttenuation = ConstantAttenuation; + this.DistanceAttenuation = DistanceAttenuation; + this.QuadricAttenuation = QuadricAttenuation; + this.type = 1520743889; + } + } + IFC4X32.IfcLightSourcePositional = IfcLightSourcePositional; + class IfcLightSourceSpot extends IfcLightSourcePositional { + constructor(expressID, Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation, Orientation, ConcentrationExponent, SpreadAngle, BeamWidthAngle) { + super(expressID, Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation); + this.Name = Name; + this.LightColour = LightColour; + this.AmbientIntensity = AmbientIntensity; + this.Intensity = Intensity; + this.Position = Position; + this.Radius = Radius; + this.ConstantAttenuation = ConstantAttenuation; + this.DistanceAttenuation = DistanceAttenuation; + this.QuadricAttenuation = QuadricAttenuation; + this.Orientation = Orientation; + this.ConcentrationExponent = ConcentrationExponent; + this.SpreadAngle = SpreadAngle; + this.BeamWidthAngle = BeamWidthAngle; + this.type = 3422422726; + } + } + IFC4X32.IfcLightSourceSpot = IfcLightSourceSpot; + class IfcLinearPlacement extends IfcObjectPlacement { + constructor(expressID, PlacementRelTo, RelativePlacement, CartesianPosition) { + super(expressID, PlacementRelTo); + this.PlacementRelTo = PlacementRelTo; + this.RelativePlacement = RelativePlacement; + this.CartesianPosition = CartesianPosition; + this.type = 388784114; + } + } + IFC4X32.IfcLinearPlacement = IfcLinearPlacement; + class IfcLocalPlacement extends IfcObjectPlacement { + constructor(expressID, PlacementRelTo, RelativePlacement) { + super(expressID, PlacementRelTo); + this.PlacementRelTo = PlacementRelTo; + this.RelativePlacement = RelativePlacement; + this.type = 2624227202; + } + } + IFC4X32.IfcLocalPlacement = IfcLocalPlacement; + class IfcLoop extends IfcTopologicalRepresentationItem { + constructor(expressID) { + super(expressID); + this.type = 1008929658; + } + } + IFC4X32.IfcLoop = IfcLoop; + class IfcMappedItem extends IfcRepresentationItem { + constructor(expressID, MappingSource, MappingTarget) { + super(expressID); + this.MappingSource = MappingSource; + this.MappingTarget = MappingTarget; + this.type = 2347385850; + } + } + IFC4X32.IfcMappedItem = IfcMappedItem; + class IfcMaterial extends IfcMaterialDefinition { + constructor(expressID, Name, Description, Category) { + super(expressID); + this.Name = Name; + this.Description = Description; + this.Category = Category; + this.type = 1838606355; + } + } + IFC4X32.IfcMaterial = IfcMaterial; + class IfcMaterialConstituent extends IfcMaterialDefinition { + constructor(expressID, Name, Description, Material, Fraction, Category) { + super(expressID); + this.Name = Name; + this.Description = Description; + this.Material = Material; + this.Fraction = Fraction; + this.Category = Category; + this.type = 3708119e3; + } + } + IFC4X32.IfcMaterialConstituent = IfcMaterialConstituent; + class IfcMaterialConstituentSet extends IfcMaterialDefinition { + constructor(expressID, Name, Description, MaterialConstituents) { + super(expressID); + this.Name = Name; + this.Description = Description; + this.MaterialConstituents = MaterialConstituents; + this.type = 2852063980; + } + } + IFC4X32.IfcMaterialConstituentSet = IfcMaterialConstituentSet; + class IfcMaterialDefinitionRepresentation extends IfcProductRepresentation { + constructor(expressID, Name, Description, Representations, RepresentedMaterial) { + super(expressID, Name, Description, Representations); + this.Name = Name; + this.Description = Description; + this.Representations = Representations; + this.RepresentedMaterial = RepresentedMaterial; + this.type = 2022407955; + } + } + IFC4X32.IfcMaterialDefinitionRepresentation = IfcMaterialDefinitionRepresentation; + class IfcMaterialLayerSetUsage extends IfcMaterialUsageDefinition { + constructor(expressID, ForLayerSet, LayerSetDirection, DirectionSense, OffsetFromReferenceLine, ReferenceExtent) { + super(expressID); + this.ForLayerSet = ForLayerSet; + this.LayerSetDirection = LayerSetDirection; + this.DirectionSense = DirectionSense; + this.OffsetFromReferenceLine = OffsetFromReferenceLine; + this.ReferenceExtent = ReferenceExtent; + this.type = 1303795690; + } + } + IFC4X32.IfcMaterialLayerSetUsage = IfcMaterialLayerSetUsage; + class IfcMaterialProfileSetUsage extends IfcMaterialUsageDefinition { + constructor(expressID, ForProfileSet, CardinalPoint, ReferenceExtent) { + super(expressID); + this.ForProfileSet = ForProfileSet; + this.CardinalPoint = CardinalPoint; + this.ReferenceExtent = ReferenceExtent; + this.type = 3079605661; + } + } + IFC4X32.IfcMaterialProfileSetUsage = IfcMaterialProfileSetUsage; + class IfcMaterialProfileSetUsageTapering extends IfcMaterialProfileSetUsage { + constructor(expressID, ForProfileSet, CardinalPoint, ReferenceExtent, ForProfileEndSet, CardinalEndPoint) { + super(expressID, ForProfileSet, CardinalPoint, ReferenceExtent); + this.ForProfileSet = ForProfileSet; + this.CardinalPoint = CardinalPoint; + this.ReferenceExtent = ReferenceExtent; + this.ForProfileEndSet = ForProfileEndSet; + this.CardinalEndPoint = CardinalEndPoint; + this.type = 3404854881; + } + } + IFC4X32.IfcMaterialProfileSetUsageTapering = IfcMaterialProfileSetUsageTapering; + class IfcMaterialProperties extends IfcExtendedProperties { + constructor(expressID, Name, Description, Properties2, Material) { + super(expressID, Name, Description, Properties2); + this.Name = Name; + this.Description = Description; + this.Properties = Properties2; + this.Material = Material; + this.type = 3265635763; + } + } + IFC4X32.IfcMaterialProperties = IfcMaterialProperties; + class IfcMaterialRelationship extends IfcResourceLevelRelationship { + constructor(expressID, Name, Description, RelatingMaterial, RelatedMaterials, MaterialExpression) { + super(expressID, Name, Description); + this.Name = Name; + this.Description = Description; + this.RelatingMaterial = RelatingMaterial; + this.RelatedMaterials = RelatedMaterials; + this.MaterialExpression = MaterialExpression; + this.type = 853536259; + } + } + IFC4X32.IfcMaterialRelationship = IfcMaterialRelationship; + class IfcMirroredProfileDef extends IfcDerivedProfileDef { + constructor(expressID, ProfileType, ProfileName, ParentProfile, Operator, Label) { + super(expressID, ProfileType, ProfileName, ParentProfile, Operator, Label); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.ParentProfile = ParentProfile; + this.Operator = Operator; + this.Label = Label; + this.type = 2998442950; + } + } + IFC4X32.IfcMirroredProfileDef = IfcMirroredProfileDef; + class IfcObjectDefinition extends IfcRoot { + constructor(expressID, GlobalId, OwnerHistory, Name, Description) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.type = 219451334; + } + } + IFC4X32.IfcObjectDefinition = IfcObjectDefinition; + class IfcOpenCrossProfileDef extends IfcProfileDef { + constructor(expressID, ProfileType, ProfileName, HorizontalWidths, Widths, Slopes, Tags, OffsetPoint) { + super(expressID, ProfileType, ProfileName); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.HorizontalWidths = HorizontalWidths; + this.Widths = Widths; + this.Slopes = Slopes; + this.Tags = Tags; + this.OffsetPoint = OffsetPoint; + this.type = 182550632; + } + } + IFC4X32.IfcOpenCrossProfileDef = IfcOpenCrossProfileDef; + class IfcOpenShell extends IfcConnectedFaceSet { + constructor(expressID, CfsFaces) { + super(expressID, CfsFaces); + this.CfsFaces = CfsFaces; + this.type = 2665983363; + } + } + IFC4X32.IfcOpenShell = IfcOpenShell; + class IfcOrganizationRelationship extends IfcResourceLevelRelationship { + constructor(expressID, Name, Description, RelatingOrganization, RelatedOrganizations) { + super(expressID, Name, Description); + this.Name = Name; + this.Description = Description; + this.RelatingOrganization = RelatingOrganization; + this.RelatedOrganizations = RelatedOrganizations; + this.type = 1411181986; + } + } + IFC4X32.IfcOrganizationRelationship = IfcOrganizationRelationship; + class IfcOrientedEdge extends IfcEdge { + constructor(expressID, EdgeStart, EdgeElement, Orientation) { + super(expressID, EdgeStart, new Handle(0)); + this.EdgeStart = EdgeStart; + this.EdgeElement = EdgeElement; + this.Orientation = Orientation; + this.type = 1029017970; + } + } + IFC4X32.IfcOrientedEdge = IfcOrientedEdge; + class IfcParameterizedProfileDef extends IfcProfileDef { + constructor(expressID, ProfileType, ProfileName, Position) { + super(expressID, ProfileType, ProfileName); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.type = 2529465313; + } + } + IFC4X32.IfcParameterizedProfileDef = IfcParameterizedProfileDef; + class IfcPath extends IfcTopologicalRepresentationItem { + constructor(expressID, EdgeList) { + super(expressID); + this.EdgeList = EdgeList; + this.type = 2519244187; + } + } + IFC4X32.IfcPath = IfcPath; + class IfcPhysicalComplexQuantity extends IfcPhysicalQuantity { + constructor(expressID, Name, Description, HasQuantities, Discrimination, Quality, Usage) { + super(expressID, Name, Description); + this.Name = Name; + this.Description = Description; + this.HasQuantities = HasQuantities; + this.Discrimination = Discrimination; + this.Quality = Quality; + this.Usage = Usage; + this.type = 3021840470; + } + } + IFC4X32.IfcPhysicalComplexQuantity = IfcPhysicalComplexQuantity; + class IfcPixelTexture extends IfcSurfaceTexture { + constructor(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter, Width, Height, ColourComponents, Pixel) { + super(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter); + this.RepeatS = RepeatS; + this.RepeatT = RepeatT; + this.Mode = Mode; + this.TextureTransform = TextureTransform; + this.Parameter = Parameter; + this.Width = Width; + this.Height = Height; + this.ColourComponents = ColourComponents; + this.Pixel = Pixel; + this.type = 597895409; + } + } + IFC4X32.IfcPixelTexture = IfcPixelTexture; + class IfcPlacement extends IfcGeometricRepresentationItem { + constructor(expressID, Location) { + super(expressID); + this.Location = Location; + this.type = 2004835150; + } + } + IFC4X32.IfcPlacement = IfcPlacement; + class IfcPlanarExtent extends IfcGeometricRepresentationItem { + constructor(expressID, SizeInX, SizeInY) { + super(expressID); + this.SizeInX = SizeInX; + this.SizeInY = SizeInY; + this.type = 1663979128; + } + } + IFC4X32.IfcPlanarExtent = IfcPlanarExtent; + class IfcPoint extends IfcGeometricRepresentationItem { + constructor(expressID) { + super(expressID); + this.type = 2067069095; + } + } + IFC4X32.IfcPoint = IfcPoint; + class IfcPointByDistanceExpression extends IfcPoint { + constructor(expressID, DistanceAlong, OffsetLateral, OffsetVertical, OffsetLongitudinal, BasisCurve) { + super(expressID); + this.DistanceAlong = DistanceAlong; + this.OffsetLateral = OffsetLateral; + this.OffsetVertical = OffsetVertical; + this.OffsetLongitudinal = OffsetLongitudinal; + this.BasisCurve = BasisCurve; + this.type = 2165702409; + } + } + IFC4X32.IfcPointByDistanceExpression = IfcPointByDistanceExpression; + class IfcPointOnCurve extends IfcPoint { + constructor(expressID, BasisCurve, PointParameter) { + super(expressID); + this.BasisCurve = BasisCurve; + this.PointParameter = PointParameter; + this.type = 4022376103; + } + } + IFC4X32.IfcPointOnCurve = IfcPointOnCurve; + class IfcPointOnSurface extends IfcPoint { + constructor(expressID, BasisSurface, PointParameterU, PointParameterV) { + super(expressID); + this.BasisSurface = BasisSurface; + this.PointParameterU = PointParameterU; + this.PointParameterV = PointParameterV; + this.type = 1423911732; + } + } + IFC4X32.IfcPointOnSurface = IfcPointOnSurface; + class IfcPolyLoop extends IfcLoop { + constructor(expressID, Polygon) { + super(expressID); + this.Polygon = Polygon; + this.type = 2924175390; + } + } + IFC4X32.IfcPolyLoop = IfcPolyLoop; + class IfcPolygonalBoundedHalfSpace extends IfcHalfSpaceSolid { + constructor(expressID, BaseSurface, AgreementFlag, Position, PolygonalBoundary) { + super(expressID, BaseSurface, AgreementFlag); + this.BaseSurface = BaseSurface; + this.AgreementFlag = AgreementFlag; + this.Position = Position; + this.PolygonalBoundary = PolygonalBoundary; + this.type = 2775532180; + } + } + IFC4X32.IfcPolygonalBoundedHalfSpace = IfcPolygonalBoundedHalfSpace; + class IfcPreDefinedItem extends IfcPresentationItem { + constructor(expressID, Name) { + super(expressID); + this.Name = Name; + this.type = 3727388367; + } + } + IFC4X32.IfcPreDefinedItem = IfcPreDefinedItem; + class IfcPreDefinedProperties extends IfcPropertyAbstraction { + constructor(expressID) { + super(expressID); + this.type = 3778827333; + } + } + IFC4X32.IfcPreDefinedProperties = IfcPreDefinedProperties; + class IfcPreDefinedTextFont extends IfcPreDefinedItem { + constructor(expressID, Name) { + super(expressID, Name); + this.Name = Name; + this.type = 1775413392; + } + } + IFC4X32.IfcPreDefinedTextFont = IfcPreDefinedTextFont; + class IfcProductDefinitionShape extends IfcProductRepresentation { + constructor(expressID, Name, Description, Representations) { + super(expressID, Name, Description, Representations); + this.Name = Name; + this.Description = Description; + this.Representations = Representations; + this.type = 673634403; + } + } + IFC4X32.IfcProductDefinitionShape = IfcProductDefinitionShape; + class IfcProfileProperties extends IfcExtendedProperties { + constructor(expressID, Name, Description, Properties2, ProfileDefinition) { + super(expressID, Name, Description, Properties2); + this.Name = Name; + this.Description = Description; + this.Properties = Properties2; + this.ProfileDefinition = ProfileDefinition; + this.type = 2802850158; + } + } + IFC4X32.IfcProfileProperties = IfcProfileProperties; + class IfcProperty extends IfcPropertyAbstraction { + constructor(expressID, Name, Specification) { + super(expressID); + this.Name = Name; + this.Specification = Specification; + this.type = 2598011224; + } + } + IFC4X32.IfcProperty = IfcProperty; + class IfcPropertyDefinition extends IfcRoot { + constructor(expressID, GlobalId, OwnerHistory, Name, Description) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.type = 1680319473; + } + } + IFC4X32.IfcPropertyDefinition = IfcPropertyDefinition; + class IfcPropertyDependencyRelationship extends IfcResourceLevelRelationship { + constructor(expressID, Name, Description, DependingProperty, DependantProperty, Expression) { + super(expressID, Name, Description); + this.Name = Name; + this.Description = Description; + this.DependingProperty = DependingProperty; + this.DependantProperty = DependantProperty; + this.Expression = Expression; + this.type = 148025276; + } + } + IFC4X32.IfcPropertyDependencyRelationship = IfcPropertyDependencyRelationship; + class IfcPropertySetDefinition extends IfcPropertyDefinition { + constructor(expressID, GlobalId, OwnerHistory, Name, Description) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.type = 3357820518; + } + } + IFC4X32.IfcPropertySetDefinition = IfcPropertySetDefinition; + class IfcPropertyTemplateDefinition extends IfcPropertyDefinition { + constructor(expressID, GlobalId, OwnerHistory, Name, Description) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.type = 1482703590; + } + } + IFC4X32.IfcPropertyTemplateDefinition = IfcPropertyTemplateDefinition; + class IfcQuantitySet extends IfcPropertySetDefinition { + constructor(expressID, GlobalId, OwnerHistory, Name, Description) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.type = 2090586900; + } + } + IFC4X32.IfcQuantitySet = IfcQuantitySet; + class IfcRectangleProfileDef extends IfcParameterizedProfileDef { + constructor(expressID, ProfileType, ProfileName, Position, XDim, YDim) { + super(expressID, ProfileType, ProfileName, Position); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.XDim = XDim; + this.YDim = YDim; + this.type = 3615266464; + } + } + IFC4X32.IfcRectangleProfileDef = IfcRectangleProfileDef; + class IfcRegularTimeSeries extends IfcTimeSeries { + constructor(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit, TimeStep, Values) { + super(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit); + this.Name = Name; + this.Description = Description; + this.StartTime = StartTime; + this.EndTime = EndTime; + this.TimeSeriesDataType = TimeSeriesDataType; + this.DataOrigin = DataOrigin; + this.UserDefinedDataOrigin = UserDefinedDataOrigin; + this.Unit = Unit; + this.TimeStep = TimeStep; + this.Values = Values; + this.type = 3413951693; + } + } + IFC4X32.IfcRegularTimeSeries = IfcRegularTimeSeries; + class IfcReinforcementBarProperties extends IfcPreDefinedProperties { + constructor(expressID, TotalCrossSectionArea, SteelGrade, BarSurface, EffectiveDepth, NominalBarDiameter, BarCount) { + super(expressID); + this.TotalCrossSectionArea = TotalCrossSectionArea; + this.SteelGrade = SteelGrade; + this.BarSurface = BarSurface; + this.EffectiveDepth = EffectiveDepth; + this.NominalBarDiameter = NominalBarDiameter; + this.BarCount = BarCount; + this.type = 1580146022; + } + } + IFC4X32.IfcReinforcementBarProperties = IfcReinforcementBarProperties; + class IfcRelationship extends IfcRoot { + constructor(expressID, GlobalId, OwnerHistory, Name, Description) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.type = 478536968; + } + } + IFC4X32.IfcRelationship = IfcRelationship; + class IfcResourceApprovalRelationship extends IfcResourceLevelRelationship { + constructor(expressID, Name, Description, RelatedResourceObjects, RelatingApproval) { + super(expressID, Name, Description); + this.Name = Name; + this.Description = Description; + this.RelatedResourceObjects = RelatedResourceObjects; + this.RelatingApproval = RelatingApproval; + this.type = 2943643501; + } + } + IFC4X32.IfcResourceApprovalRelationship = IfcResourceApprovalRelationship; + class IfcResourceConstraintRelationship extends IfcResourceLevelRelationship { + constructor(expressID, Name, Description, RelatingConstraint, RelatedResourceObjects) { + super(expressID, Name, Description); + this.Name = Name; + this.Description = Description; + this.RelatingConstraint = RelatingConstraint; + this.RelatedResourceObjects = RelatedResourceObjects; + this.type = 1608871552; + } + } + IFC4X32.IfcResourceConstraintRelationship = IfcResourceConstraintRelationship; + class IfcResourceTime extends IfcSchedulingTime { + constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin, ScheduleWork, ScheduleUsage, ScheduleStart, ScheduleFinish, ScheduleContour, LevelingDelay, IsOverAllocated, StatusTime, ActualWork, ActualUsage, ActualStart, ActualFinish, RemainingWork, RemainingUsage, Completion) { + super(expressID, Name, DataOrigin, UserDefinedDataOrigin); + this.Name = Name; + this.DataOrigin = DataOrigin; + this.UserDefinedDataOrigin = UserDefinedDataOrigin; + this.ScheduleWork = ScheduleWork; + this.ScheduleUsage = ScheduleUsage; + this.ScheduleStart = ScheduleStart; + this.ScheduleFinish = ScheduleFinish; + this.ScheduleContour = ScheduleContour; + this.LevelingDelay = LevelingDelay; + this.IsOverAllocated = IsOverAllocated; + this.StatusTime = StatusTime; + this.ActualWork = ActualWork; + this.ActualUsage = ActualUsage; + this.ActualStart = ActualStart; + this.ActualFinish = ActualFinish; + this.RemainingWork = RemainingWork; + this.RemainingUsage = RemainingUsage; + this.Completion = Completion; + this.type = 1042787934; + } + } + IFC4X32.IfcResourceTime = IfcResourceTime; + class IfcRoundedRectangleProfileDef extends IfcRectangleProfileDef { + constructor(expressID, ProfileType, ProfileName, Position, XDim, YDim, RoundingRadius) { + super(expressID, ProfileType, ProfileName, Position, XDim, YDim); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.XDim = XDim; + this.YDim = YDim; + this.RoundingRadius = RoundingRadius; + this.type = 2778083089; + } + } + IFC4X32.IfcRoundedRectangleProfileDef = IfcRoundedRectangleProfileDef; + class IfcSectionProperties extends IfcPreDefinedProperties { + constructor(expressID, SectionType, StartProfile, EndProfile) { + super(expressID); + this.SectionType = SectionType; + this.StartProfile = StartProfile; + this.EndProfile = EndProfile; + this.type = 2042790032; + } + } + IFC4X32.IfcSectionProperties = IfcSectionProperties; + class IfcSectionReinforcementProperties extends IfcPreDefinedProperties { + constructor(expressID, LongitudinalStartPosition, LongitudinalEndPosition, TransversePosition, ReinforcementRole, SectionDefinition, CrossSectionReinforcementDefinitions) { + super(expressID); + this.LongitudinalStartPosition = LongitudinalStartPosition; + this.LongitudinalEndPosition = LongitudinalEndPosition; + this.TransversePosition = TransversePosition; + this.ReinforcementRole = ReinforcementRole; + this.SectionDefinition = SectionDefinition; + this.CrossSectionReinforcementDefinitions = CrossSectionReinforcementDefinitions; + this.type = 4165799628; + } + } + IFC4X32.IfcSectionReinforcementProperties = IfcSectionReinforcementProperties; + class IfcSectionedSpine extends IfcGeometricRepresentationItem { + constructor(expressID, SpineCurve, CrossSections, CrossSectionPositions) { + super(expressID); + this.SpineCurve = SpineCurve; + this.CrossSections = CrossSections; + this.CrossSectionPositions = CrossSectionPositions; + this.type = 1509187699; + } + } + IFC4X32.IfcSectionedSpine = IfcSectionedSpine; + class IfcSegment extends IfcGeometricRepresentationItem { + constructor(expressID, Transition) { + super(expressID); + this.Transition = Transition; + this.type = 823603102; + } + } + IFC4X32.IfcSegment = IfcSegment; + class IfcShellBasedSurfaceModel extends IfcGeometricRepresentationItem { + constructor(expressID, SbsmBoundary) { + super(expressID); + this.SbsmBoundary = SbsmBoundary; + this.type = 4124623270; + } + } + IFC4X32.IfcShellBasedSurfaceModel = IfcShellBasedSurfaceModel; + class IfcSimpleProperty extends IfcProperty { + constructor(expressID, Name, Specification) { + super(expressID, Name, Specification); + this.Name = Name; + this.Specification = Specification; + this.type = 3692461612; + } + } + IFC4X32.IfcSimpleProperty = IfcSimpleProperty; + class IfcSlippageConnectionCondition extends IfcStructuralConnectionCondition { + constructor(expressID, Name, SlippageX, SlippageY, SlippageZ) { + super(expressID, Name); + this.Name = Name; + this.SlippageX = SlippageX; + this.SlippageY = SlippageY; + this.SlippageZ = SlippageZ; + this.type = 2609359061; + } + } + IFC4X32.IfcSlippageConnectionCondition = IfcSlippageConnectionCondition; + class IfcSolidModel extends IfcGeometricRepresentationItem { + constructor(expressID) { + super(expressID); + this.type = 723233188; + } + } + IFC4X32.IfcSolidModel = IfcSolidModel; + class IfcStructuralLoadLinearForce extends IfcStructuralLoadStatic { + constructor(expressID, Name, LinearForceX, LinearForceY, LinearForceZ, LinearMomentX, LinearMomentY, LinearMomentZ) { + super(expressID, Name); + this.Name = Name; + this.LinearForceX = LinearForceX; + this.LinearForceY = LinearForceY; + this.LinearForceZ = LinearForceZ; + this.LinearMomentX = LinearMomentX; + this.LinearMomentY = LinearMomentY; + this.LinearMomentZ = LinearMomentZ; + this.type = 1595516126; + } + } + IFC4X32.IfcStructuralLoadLinearForce = IfcStructuralLoadLinearForce; + class IfcStructuralLoadPlanarForce extends IfcStructuralLoadStatic { + constructor(expressID, Name, PlanarForceX, PlanarForceY, PlanarForceZ) { + super(expressID, Name); + this.Name = Name; + this.PlanarForceX = PlanarForceX; + this.PlanarForceY = PlanarForceY; + this.PlanarForceZ = PlanarForceZ; + this.type = 2668620305; + } + } + IFC4X32.IfcStructuralLoadPlanarForce = IfcStructuralLoadPlanarForce; + class IfcStructuralLoadSingleDisplacement extends IfcStructuralLoadStatic { + constructor(expressID, Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ) { + super(expressID, Name); + this.Name = Name; + this.DisplacementX = DisplacementX; + this.DisplacementY = DisplacementY; + this.DisplacementZ = DisplacementZ; + this.RotationalDisplacementRX = RotationalDisplacementRX; + this.RotationalDisplacementRY = RotationalDisplacementRY; + this.RotationalDisplacementRZ = RotationalDisplacementRZ; + this.type = 2473145415; + } + } + IFC4X32.IfcStructuralLoadSingleDisplacement = IfcStructuralLoadSingleDisplacement; + class IfcStructuralLoadSingleDisplacementDistortion extends IfcStructuralLoadSingleDisplacement { + constructor(expressID, Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ, Distortion) { + super(expressID, Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ); + this.Name = Name; + this.DisplacementX = DisplacementX; + this.DisplacementY = DisplacementY; + this.DisplacementZ = DisplacementZ; + this.RotationalDisplacementRX = RotationalDisplacementRX; + this.RotationalDisplacementRY = RotationalDisplacementRY; + this.RotationalDisplacementRZ = RotationalDisplacementRZ; + this.Distortion = Distortion; + this.type = 1973038258; + } + } + IFC4X32.IfcStructuralLoadSingleDisplacementDistortion = IfcStructuralLoadSingleDisplacementDistortion; + class IfcStructuralLoadSingleForce extends IfcStructuralLoadStatic { + constructor(expressID, Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ) { + super(expressID, Name); + this.Name = Name; + this.ForceX = ForceX; + this.ForceY = ForceY; + this.ForceZ = ForceZ; + this.MomentX = MomentX; + this.MomentY = MomentY; + this.MomentZ = MomentZ; + this.type = 1597423693; + } + } + IFC4X32.IfcStructuralLoadSingleForce = IfcStructuralLoadSingleForce; + class IfcStructuralLoadSingleForceWarping extends IfcStructuralLoadSingleForce { + constructor(expressID, Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ, WarpingMoment) { + super(expressID, Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ); + this.Name = Name; + this.ForceX = ForceX; + this.ForceY = ForceY; + this.ForceZ = ForceZ; + this.MomentX = MomentX; + this.MomentY = MomentY; + this.MomentZ = MomentZ; + this.WarpingMoment = WarpingMoment; + this.type = 1190533807; + } + } + IFC4X32.IfcStructuralLoadSingleForceWarping = IfcStructuralLoadSingleForceWarping; + class IfcSubedge extends IfcEdge { + constructor(expressID, EdgeStart, EdgeEnd, ParentEdge) { + super(expressID, EdgeStart, EdgeEnd); + this.EdgeStart = EdgeStart; + this.EdgeEnd = EdgeEnd; + this.ParentEdge = ParentEdge; + this.type = 2233826070; + } + } + IFC4X32.IfcSubedge = IfcSubedge; + class IfcSurface extends IfcGeometricRepresentationItem { + constructor(expressID) { + super(expressID); + this.type = 2513912981; + } + } + IFC4X32.IfcSurface = IfcSurface; + class IfcSurfaceStyleRendering extends IfcSurfaceStyleShading { + constructor(expressID, SurfaceColour, Transparency, DiffuseColour, TransmissionColour, DiffuseTransmissionColour, ReflectionColour, SpecularColour, SpecularHighlight, ReflectanceMethod) { + super(expressID, SurfaceColour, Transparency); + this.SurfaceColour = SurfaceColour; + this.Transparency = Transparency; + this.DiffuseColour = DiffuseColour; + this.TransmissionColour = TransmissionColour; + this.DiffuseTransmissionColour = DiffuseTransmissionColour; + this.ReflectionColour = ReflectionColour; + this.SpecularColour = SpecularColour; + this.SpecularHighlight = SpecularHighlight; + this.ReflectanceMethod = ReflectanceMethod; + this.type = 1878645084; + } + } + IFC4X32.IfcSurfaceStyleRendering = IfcSurfaceStyleRendering; + class IfcSweptAreaSolid extends IfcSolidModel { + constructor(expressID, SweptArea, Position) { + super(expressID); + this.SweptArea = SweptArea; + this.Position = Position; + this.type = 2247615214; + } + } + IFC4X32.IfcSweptAreaSolid = IfcSweptAreaSolid; + class IfcSweptDiskSolid extends IfcSolidModel { + constructor(expressID, Directrix, Radius, InnerRadius, StartParam, EndParam) { + super(expressID); + this.Directrix = Directrix; + this.Radius = Radius; + this.InnerRadius = InnerRadius; + this.StartParam = StartParam; + this.EndParam = EndParam; + this.type = 1260650574; + } + } + IFC4X32.IfcSweptDiskSolid = IfcSweptDiskSolid; + class IfcSweptDiskSolidPolygonal extends IfcSweptDiskSolid { + constructor(expressID, Directrix, Radius, InnerRadius, StartParam, EndParam, FilletRadius) { + super(expressID, Directrix, Radius, InnerRadius, StartParam, EndParam); + this.Directrix = Directrix; + this.Radius = Radius; + this.InnerRadius = InnerRadius; + this.StartParam = StartParam; + this.EndParam = EndParam; + this.FilletRadius = FilletRadius; + this.type = 1096409881; + } + } + IFC4X32.IfcSweptDiskSolidPolygonal = IfcSweptDiskSolidPolygonal; + class IfcSweptSurface extends IfcSurface { + constructor(expressID, SweptCurve, Position) { + super(expressID); + this.SweptCurve = SweptCurve; + this.Position = Position; + this.type = 230924584; + } + } + IFC4X32.IfcSweptSurface = IfcSweptSurface; + class IfcTShapeProfileDef extends IfcParameterizedProfileDef { + constructor(expressID, ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, FlangeEdgeRadius, WebEdgeRadius, WebSlope, FlangeSlope) { + super(expressID, ProfileType, ProfileName, Position); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.Depth = Depth; + this.FlangeWidth = FlangeWidth; + this.WebThickness = WebThickness; + this.FlangeThickness = FlangeThickness; + this.FilletRadius = FilletRadius; + this.FlangeEdgeRadius = FlangeEdgeRadius; + this.WebEdgeRadius = WebEdgeRadius; + this.WebSlope = WebSlope; + this.FlangeSlope = FlangeSlope; + this.type = 3071757647; + } + } + IFC4X32.IfcTShapeProfileDef = IfcTShapeProfileDef; + class IfcTessellatedItem extends IfcGeometricRepresentationItem { + constructor(expressID) { + super(expressID); + this.type = 901063453; + } + } + IFC4X32.IfcTessellatedItem = IfcTessellatedItem; + class IfcTextLiteral extends IfcGeometricRepresentationItem { + constructor(expressID, Literal, Placement, Path) { + super(expressID); + this.Literal = Literal; + this.Placement = Placement; + this.Path = Path; + this.type = 4282788508; + } + } + IFC4X32.IfcTextLiteral = IfcTextLiteral; + class IfcTextLiteralWithExtent extends IfcTextLiteral { + constructor(expressID, Literal, Placement, Path, Extent, BoxAlignment) { + super(expressID, Literal, Placement, Path); + this.Literal = Literal; + this.Placement = Placement; + this.Path = Path; + this.Extent = Extent; + this.BoxAlignment = BoxAlignment; + this.type = 3124975700; + } + } + IFC4X32.IfcTextLiteralWithExtent = IfcTextLiteralWithExtent; + class IfcTextStyleFontModel extends IfcPreDefinedTextFont { + constructor(expressID, Name, FontFamily, FontStyle, FontVariant, FontWeight, FontSize) { + super(expressID, Name); + this.Name = Name; + this.FontFamily = FontFamily; + this.FontStyle = FontStyle; + this.FontVariant = FontVariant; + this.FontWeight = FontWeight; + this.FontSize = FontSize; + this.type = 1983826977; + } + } + IFC4X32.IfcTextStyleFontModel = IfcTextStyleFontModel; + class IfcTrapeziumProfileDef extends IfcParameterizedProfileDef { + constructor(expressID, ProfileType, ProfileName, Position, BottomXDim, TopXDim, YDim, TopXOffset) { + super(expressID, ProfileType, ProfileName, Position); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.BottomXDim = BottomXDim; + this.TopXDim = TopXDim; + this.YDim = YDim; + this.TopXOffset = TopXOffset; + this.type = 2715220739; + } + } + IFC4X32.IfcTrapeziumProfileDef = IfcTrapeziumProfileDef; + class IfcTypeObject extends IfcObjectDefinition { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.type = 1628702193; + } + } + IFC4X32.IfcTypeObject = IfcTypeObject; + class IfcTypeProcess extends IfcTypeObject { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.ProcessType = ProcessType; + this.type = 3736923433; + } + } + IFC4X32.IfcTypeProcess = IfcTypeProcess; + class IfcTypeProduct extends IfcTypeObject { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.type = 2347495698; + } + } + IFC4X32.IfcTypeProduct = IfcTypeProduct; + class IfcTypeResource extends IfcTypeObject { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.ResourceType = ResourceType; + this.type = 3698973494; + } + } + IFC4X32.IfcTypeResource = IfcTypeResource; + class IfcUShapeProfileDef extends IfcParameterizedProfileDef { + constructor(expressID, ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, EdgeRadius, FlangeSlope) { + super(expressID, ProfileType, ProfileName, Position); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.Depth = Depth; + this.FlangeWidth = FlangeWidth; + this.WebThickness = WebThickness; + this.FlangeThickness = FlangeThickness; + this.FilletRadius = FilletRadius; + this.EdgeRadius = EdgeRadius; + this.FlangeSlope = FlangeSlope; + this.type = 427810014; + } + } + IFC4X32.IfcUShapeProfileDef = IfcUShapeProfileDef; + class IfcVector extends IfcGeometricRepresentationItem { + constructor(expressID, Orientation, Magnitude) { + super(expressID); + this.Orientation = Orientation; + this.Magnitude = Magnitude; + this.type = 1417489154; + } + } + IFC4X32.IfcVector = IfcVector; + class IfcVertexLoop extends IfcLoop { + constructor(expressID, LoopVertex) { + super(expressID); + this.LoopVertex = LoopVertex; + this.type = 2759199220; + } + } + IFC4X32.IfcVertexLoop = IfcVertexLoop; + class IfcZShapeProfileDef extends IfcParameterizedProfileDef { + constructor(expressID, ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, EdgeRadius) { + super(expressID, ProfileType, ProfileName, Position); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.Depth = Depth; + this.FlangeWidth = FlangeWidth; + this.WebThickness = WebThickness; + this.FlangeThickness = FlangeThickness; + this.FilletRadius = FilletRadius; + this.EdgeRadius = EdgeRadius; + this.type = 2543172580; + } + } + IFC4X32.IfcZShapeProfileDef = IfcZShapeProfileDef; + class IfcAdvancedFace extends IfcFaceSurface { + constructor(expressID, Bounds, FaceSurface, SameSense) { + super(expressID, Bounds, FaceSurface, SameSense); + this.Bounds = Bounds; + this.FaceSurface = FaceSurface; + this.SameSense = SameSense; + this.type = 3406155212; + } + } + IFC4X32.IfcAdvancedFace = IfcAdvancedFace; + class IfcAnnotationFillArea extends IfcGeometricRepresentationItem { + constructor(expressID, OuterBoundary, InnerBoundaries) { + super(expressID); + this.OuterBoundary = OuterBoundary; + this.InnerBoundaries = InnerBoundaries; + this.type = 669184980; + } + } + IFC4X32.IfcAnnotationFillArea = IfcAnnotationFillArea; + class IfcAsymmetricIShapeProfileDef extends IfcParameterizedProfileDef { + constructor(expressID, ProfileType, ProfileName, Position, BottomFlangeWidth, OverallDepth, WebThickness, BottomFlangeThickness, BottomFlangeFilletRadius, TopFlangeWidth, TopFlangeThickness, TopFlangeFilletRadius, BottomFlangeEdgeRadius, BottomFlangeSlope, TopFlangeEdgeRadius, TopFlangeSlope) { + super(expressID, ProfileType, ProfileName, Position); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.BottomFlangeWidth = BottomFlangeWidth; + this.OverallDepth = OverallDepth; + this.WebThickness = WebThickness; + this.BottomFlangeThickness = BottomFlangeThickness; + this.BottomFlangeFilletRadius = BottomFlangeFilletRadius; + this.TopFlangeWidth = TopFlangeWidth; + this.TopFlangeThickness = TopFlangeThickness; + this.TopFlangeFilletRadius = TopFlangeFilletRadius; + this.BottomFlangeEdgeRadius = BottomFlangeEdgeRadius; + this.BottomFlangeSlope = BottomFlangeSlope; + this.TopFlangeEdgeRadius = TopFlangeEdgeRadius; + this.TopFlangeSlope = TopFlangeSlope; + this.type = 3207858831; + } + } + IFC4X32.IfcAsymmetricIShapeProfileDef = IfcAsymmetricIShapeProfileDef; + class IfcAxis1Placement extends IfcPlacement { + constructor(expressID, Location, Axis) { + super(expressID, Location); + this.Location = Location; + this.Axis = Axis; + this.type = 4261334040; + } + } + IFC4X32.IfcAxis1Placement = IfcAxis1Placement; + class IfcAxis2Placement2D extends IfcPlacement { + constructor(expressID, Location, RefDirection) { + super(expressID, Location); + this.Location = Location; + this.RefDirection = RefDirection; + this.type = 3125803723; + } + } + IFC4X32.IfcAxis2Placement2D = IfcAxis2Placement2D; + class IfcAxis2Placement3D extends IfcPlacement { + constructor(expressID, Location, Axis, RefDirection) { + super(expressID, Location); + this.Location = Location; + this.Axis = Axis; + this.RefDirection = RefDirection; + this.type = 2740243338; + } + } + IFC4X32.IfcAxis2Placement3D = IfcAxis2Placement3D; + class IfcAxis2PlacementLinear extends IfcPlacement { + constructor(expressID, Location, Axis, RefDirection) { + super(expressID, Location); + this.Location = Location; + this.Axis = Axis; + this.RefDirection = RefDirection; + this.type = 3425423356; + } + } + IFC4X32.IfcAxis2PlacementLinear = IfcAxis2PlacementLinear; + class IfcBooleanResult extends IfcGeometricRepresentationItem { + constructor(expressID, Operator, FirstOperand, SecondOperand) { + super(expressID); + this.Operator = Operator; + this.FirstOperand = FirstOperand; + this.SecondOperand = SecondOperand; + this.type = 2736907675; + } + } + IFC4X32.IfcBooleanResult = IfcBooleanResult; + class IfcBoundedSurface extends IfcSurface { + constructor(expressID) { + super(expressID); + this.type = 4182860854; + } + } + IFC4X32.IfcBoundedSurface = IfcBoundedSurface; + class IfcBoundingBox extends IfcGeometricRepresentationItem { + constructor(expressID, Corner, XDim, YDim, ZDim) { + super(expressID); + this.Corner = Corner; + this.XDim = XDim; + this.YDim = YDim; + this.ZDim = ZDim; + this.type = 2581212453; + } + } + IFC4X32.IfcBoundingBox = IfcBoundingBox; + class IfcBoxedHalfSpace extends IfcHalfSpaceSolid { + constructor(expressID, BaseSurface, AgreementFlag, Enclosure) { + super(expressID, BaseSurface, AgreementFlag); + this.BaseSurface = BaseSurface; + this.AgreementFlag = AgreementFlag; + this.Enclosure = Enclosure; + this.type = 2713105998; + } + } + IFC4X32.IfcBoxedHalfSpace = IfcBoxedHalfSpace; + class IfcCShapeProfileDef extends IfcParameterizedProfileDef { + constructor(expressID, ProfileType, ProfileName, Position, Depth, Width, WallThickness, Girth, InternalFilletRadius) { + super(expressID, ProfileType, ProfileName, Position); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.Depth = Depth; + this.Width = Width; + this.WallThickness = WallThickness; + this.Girth = Girth; + this.InternalFilletRadius = InternalFilletRadius; + this.type = 2898889636; + } + } + IFC4X32.IfcCShapeProfileDef = IfcCShapeProfileDef; + class IfcCartesianPoint extends IfcPoint { + constructor(expressID, Coordinates) { + super(expressID); + this.Coordinates = Coordinates; + this.type = 1123145078; + } + } + IFC4X32.IfcCartesianPoint = IfcCartesianPoint; + class IfcCartesianPointList extends IfcGeometricRepresentationItem { + constructor(expressID) { + super(expressID); + this.type = 574549367; + } + } + IFC4X32.IfcCartesianPointList = IfcCartesianPointList; + class IfcCartesianPointList2D extends IfcCartesianPointList { + constructor(expressID, CoordList, TagList) { + super(expressID); + this.CoordList = CoordList; + this.TagList = TagList; + this.type = 1675464909; + } + } + IFC4X32.IfcCartesianPointList2D = IfcCartesianPointList2D; + class IfcCartesianPointList3D extends IfcCartesianPointList { + constructor(expressID, CoordList, TagList) { + super(expressID); + this.CoordList = CoordList; + this.TagList = TagList; + this.type = 2059837836; + } + } + IFC4X32.IfcCartesianPointList3D = IfcCartesianPointList3D; + class IfcCartesianTransformationOperator extends IfcGeometricRepresentationItem { + constructor(expressID, Axis1, Axis2, LocalOrigin, Scale) { + super(expressID); + this.Axis1 = Axis1; + this.Axis2 = Axis2; + this.LocalOrigin = LocalOrigin; + this.Scale = Scale; + this.type = 59481748; + } + } + IFC4X32.IfcCartesianTransformationOperator = IfcCartesianTransformationOperator; + class IfcCartesianTransformationOperator2D extends IfcCartesianTransformationOperator { + constructor(expressID, Axis1, Axis2, LocalOrigin, Scale) { + super(expressID, Axis1, Axis2, LocalOrigin, Scale); + this.Axis1 = Axis1; + this.Axis2 = Axis2; + this.LocalOrigin = LocalOrigin; + this.Scale = Scale; + this.type = 3749851601; + } + } + IFC4X32.IfcCartesianTransformationOperator2D = IfcCartesianTransformationOperator2D; + class IfcCartesianTransformationOperator2DnonUniform extends IfcCartesianTransformationOperator2D { + constructor(expressID, Axis1, Axis2, LocalOrigin, Scale, Scale2) { + super(expressID, Axis1, Axis2, LocalOrigin, Scale); + this.Axis1 = Axis1; + this.Axis2 = Axis2; + this.LocalOrigin = LocalOrigin; + this.Scale = Scale; + this.Scale2 = Scale2; + this.type = 3486308946; + } + } + IFC4X32.IfcCartesianTransformationOperator2DnonUniform = IfcCartesianTransformationOperator2DnonUniform; + class IfcCartesianTransformationOperator3D extends IfcCartesianTransformationOperator { + constructor(expressID, Axis1, Axis2, LocalOrigin, Scale, Axis3) { + super(expressID, Axis1, Axis2, LocalOrigin, Scale); + this.Axis1 = Axis1; + this.Axis2 = Axis2; + this.LocalOrigin = LocalOrigin; + this.Scale = Scale; + this.Axis3 = Axis3; + this.type = 3331915920; + } + } + IFC4X32.IfcCartesianTransformationOperator3D = IfcCartesianTransformationOperator3D; + class IfcCartesianTransformationOperator3DnonUniform extends IfcCartesianTransformationOperator3D { + constructor(expressID, Axis1, Axis2, LocalOrigin, Scale, Axis3, Scale2, Scale3) { + super(expressID, Axis1, Axis2, LocalOrigin, Scale, Axis3); + this.Axis1 = Axis1; + this.Axis2 = Axis2; + this.LocalOrigin = LocalOrigin; + this.Scale = Scale; + this.Axis3 = Axis3; + this.Scale2 = Scale2; + this.Scale3 = Scale3; + this.type = 1416205885; + } + } + IFC4X32.IfcCartesianTransformationOperator3DnonUniform = IfcCartesianTransformationOperator3DnonUniform; + class IfcCircleProfileDef extends IfcParameterizedProfileDef { + constructor(expressID, ProfileType, ProfileName, Position, Radius) { + super(expressID, ProfileType, ProfileName, Position); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.Radius = Radius; + this.type = 1383045692; + } + } + IFC4X32.IfcCircleProfileDef = IfcCircleProfileDef; + class IfcClosedShell extends IfcConnectedFaceSet { + constructor(expressID, CfsFaces) { + super(expressID, CfsFaces); + this.CfsFaces = CfsFaces; + this.type = 2205249479; + } + } + IFC4X32.IfcClosedShell = IfcClosedShell; + class IfcColourRgb extends IfcColourSpecification { + constructor(expressID, Name, Red, Green, Blue) { + super(expressID, Name); + this.Name = Name; + this.Red = Red; + this.Green = Green; + this.Blue = Blue; + this.type = 776857604; + } + } + IFC4X32.IfcColourRgb = IfcColourRgb; + class IfcComplexProperty extends IfcProperty { + constructor(expressID, Name, Specification, UsageName, HasProperties) { + super(expressID, Name, Specification); + this.Name = Name; + this.Specification = Specification; + this.UsageName = UsageName; + this.HasProperties = HasProperties; + this.type = 2542286263; + } + } + IFC4X32.IfcComplexProperty = IfcComplexProperty; + class IfcCompositeCurveSegment extends IfcSegment { + constructor(expressID, Transition, SameSense, ParentCurve) { + super(expressID, Transition); + this.Transition = Transition; + this.SameSense = SameSense; + this.ParentCurve = ParentCurve; + this.type = 2485617015; + } + } + IFC4X32.IfcCompositeCurveSegment = IfcCompositeCurveSegment; + class IfcConstructionResourceType extends IfcTypeResource { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.ResourceType = ResourceType; + this.BaseCosts = BaseCosts; + this.BaseQuantity = BaseQuantity; + this.type = 2574617495; + } + } + IFC4X32.IfcConstructionResourceType = IfcConstructionResourceType; + class IfcContext extends IfcObjectDefinition { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.LongName = LongName; + this.Phase = Phase; + this.RepresentationContexts = RepresentationContexts; + this.UnitsInContext = UnitsInContext; + this.type = 3419103109; + } + } + IFC4X32.IfcContext = IfcContext; + class IfcCrewResourceType extends IfcConstructionResourceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.ResourceType = ResourceType; + this.BaseCosts = BaseCosts; + this.BaseQuantity = BaseQuantity; + this.PredefinedType = PredefinedType; + this.type = 1815067380; + } + } + IFC4X32.IfcCrewResourceType = IfcCrewResourceType; + class IfcCsgPrimitive3D extends IfcGeometricRepresentationItem { + constructor(expressID, Position) { + super(expressID); + this.Position = Position; + this.type = 2506170314; + } + } + IFC4X32.IfcCsgPrimitive3D = IfcCsgPrimitive3D; + class IfcCsgSolid extends IfcSolidModel { + constructor(expressID, TreeRootExpression) { + super(expressID); + this.TreeRootExpression = TreeRootExpression; + this.type = 2147822146; + } + } + IFC4X32.IfcCsgSolid = IfcCsgSolid; + class IfcCurve extends IfcGeometricRepresentationItem { + constructor(expressID) { + super(expressID); + this.type = 2601014836; + } + } + IFC4X32.IfcCurve = IfcCurve; + class IfcCurveBoundedPlane extends IfcBoundedSurface { + constructor(expressID, BasisSurface, OuterBoundary, InnerBoundaries) { + super(expressID); + this.BasisSurface = BasisSurface; + this.OuterBoundary = OuterBoundary; + this.InnerBoundaries = InnerBoundaries; + this.type = 2827736869; + } + } + IFC4X32.IfcCurveBoundedPlane = IfcCurveBoundedPlane; + class IfcCurveBoundedSurface extends IfcBoundedSurface { + constructor(expressID, BasisSurface, Boundaries, ImplicitOuter) { + super(expressID); + this.BasisSurface = BasisSurface; + this.Boundaries = Boundaries; + this.ImplicitOuter = ImplicitOuter; + this.type = 2629017746; + } + } + IFC4X32.IfcCurveBoundedSurface = IfcCurveBoundedSurface; + class IfcCurveSegment extends IfcSegment { + constructor(expressID, Transition, Placement, SegmentStart, SegmentLength, ParentCurve) { + super(expressID, Transition); + this.Transition = Transition; + this.Placement = Placement; + this.SegmentStart = SegmentStart; + this.SegmentLength = SegmentLength; + this.ParentCurve = ParentCurve; + this.type = 4212018352; + } + } + IFC4X32.IfcCurveSegment = IfcCurveSegment; + class IfcDirection extends IfcGeometricRepresentationItem { + constructor(expressID, DirectionRatios) { + super(expressID); + this.DirectionRatios = DirectionRatios; + this.type = 32440307; + } + } + IFC4X32.IfcDirection = IfcDirection; + class IfcDirectrixCurveSweptAreaSolid extends IfcSweptAreaSolid { + constructor(expressID, SweptArea, Position, Directrix, StartParam, EndParam) { + super(expressID, SweptArea, Position); + this.SweptArea = SweptArea; + this.Position = Position; + this.Directrix = Directrix; + this.StartParam = StartParam; + this.EndParam = EndParam; + this.type = 593015953; + } + } + IFC4X32.IfcDirectrixCurveSweptAreaSolid = IfcDirectrixCurveSweptAreaSolid; + class IfcEdgeLoop extends IfcLoop { + constructor(expressID, EdgeList) { + super(expressID); + this.EdgeList = EdgeList; + this.type = 1472233963; + } + } + IFC4X32.IfcEdgeLoop = IfcEdgeLoop; + class IfcElementQuantity extends IfcQuantitySet { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, MethodOfMeasurement, Quantities) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.MethodOfMeasurement = MethodOfMeasurement; + this.Quantities = Quantities; + this.type = 1883228015; + } + } + IFC4X32.IfcElementQuantity = IfcElementQuantity; + class IfcElementType extends IfcTypeProduct { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 339256511; + } + } + IFC4X32.IfcElementType = IfcElementType; + class IfcElementarySurface extends IfcSurface { + constructor(expressID, Position) { + super(expressID); + this.Position = Position; + this.type = 2777663545; + } + } + IFC4X32.IfcElementarySurface = IfcElementarySurface; + class IfcEllipseProfileDef extends IfcParameterizedProfileDef { + constructor(expressID, ProfileType, ProfileName, Position, SemiAxis1, SemiAxis2) { + super(expressID, ProfileType, ProfileName, Position); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.SemiAxis1 = SemiAxis1; + this.SemiAxis2 = SemiAxis2; + this.type = 2835456948; + } + } + IFC4X32.IfcEllipseProfileDef = IfcEllipseProfileDef; + class IfcEventType extends IfcTypeProcess { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType, PredefinedType, EventTriggerType, UserDefinedEventTriggerType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.ProcessType = ProcessType; + this.PredefinedType = PredefinedType; + this.EventTriggerType = EventTriggerType; + this.UserDefinedEventTriggerType = UserDefinedEventTriggerType; + this.type = 4024345920; + } + } + IFC4X32.IfcEventType = IfcEventType; + class IfcExtrudedAreaSolid extends IfcSweptAreaSolid { + constructor(expressID, SweptArea, Position, ExtrudedDirection, Depth) { + super(expressID, SweptArea, Position); + this.SweptArea = SweptArea; + this.Position = Position; + this.ExtrudedDirection = ExtrudedDirection; + this.Depth = Depth; + this.type = 477187591; + } + } + IFC4X32.IfcExtrudedAreaSolid = IfcExtrudedAreaSolid; + class IfcExtrudedAreaSolidTapered extends IfcExtrudedAreaSolid { + constructor(expressID, SweptArea, Position, ExtrudedDirection, Depth, EndSweptArea) { + super(expressID, SweptArea, Position, ExtrudedDirection, Depth); + this.SweptArea = SweptArea; + this.Position = Position; + this.ExtrudedDirection = ExtrudedDirection; + this.Depth = Depth; + this.EndSweptArea = EndSweptArea; + this.type = 2804161546; + } + } + IFC4X32.IfcExtrudedAreaSolidTapered = IfcExtrudedAreaSolidTapered; + class IfcFaceBasedSurfaceModel extends IfcGeometricRepresentationItem { + constructor(expressID, FbsmFaces) { + super(expressID); + this.FbsmFaces = FbsmFaces; + this.type = 2047409740; + } + } + IFC4X32.IfcFaceBasedSurfaceModel = IfcFaceBasedSurfaceModel; + class IfcFillAreaStyleHatching extends IfcGeometricRepresentationItem { + constructor(expressID, HatchLineAppearance, StartOfNextHatchLine, PointOfReferenceHatchLine, PatternStart, HatchLineAngle) { + super(expressID); + this.HatchLineAppearance = HatchLineAppearance; + this.StartOfNextHatchLine = StartOfNextHatchLine; + this.PointOfReferenceHatchLine = PointOfReferenceHatchLine; + this.PatternStart = PatternStart; + this.HatchLineAngle = HatchLineAngle; + this.type = 374418227; + } + } + IFC4X32.IfcFillAreaStyleHatching = IfcFillAreaStyleHatching; + class IfcFillAreaStyleTiles extends IfcGeometricRepresentationItem { + constructor(expressID, TilingPattern, Tiles, TilingScale) { + super(expressID); + this.TilingPattern = TilingPattern; + this.Tiles = Tiles; + this.TilingScale = TilingScale; + this.type = 315944413; + } + } + IFC4X32.IfcFillAreaStyleTiles = IfcFillAreaStyleTiles; + class IfcFixedReferenceSweptAreaSolid extends IfcDirectrixCurveSweptAreaSolid { + constructor(expressID, SweptArea, Position, Directrix, StartParam, EndParam, FixedReference) { + super(expressID, SweptArea, Position, Directrix, StartParam, EndParam); + this.SweptArea = SweptArea; + this.Position = Position; + this.Directrix = Directrix; + this.StartParam = StartParam; + this.EndParam = EndParam; + this.FixedReference = FixedReference; + this.type = 2652556860; + } + } + IFC4X32.IfcFixedReferenceSweptAreaSolid = IfcFixedReferenceSweptAreaSolid; + class IfcFurnishingElementType extends IfcElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 4238390223; + } + } + IFC4X32.IfcFurnishingElementType = IfcFurnishingElementType; + class IfcFurnitureType extends IfcFurnishingElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, AssemblyPlace, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.AssemblyPlace = AssemblyPlace; + this.PredefinedType = PredefinedType; + this.type = 1268542332; + } + } + IFC4X32.IfcFurnitureType = IfcFurnitureType; + class IfcGeographicElementType extends IfcElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 4095422895; + } + } + IFC4X32.IfcGeographicElementType = IfcGeographicElementType; + class IfcGeometricCurveSet extends IfcGeometricSet { + constructor(expressID, Elements) { + super(expressID, Elements); + this.Elements = Elements; + this.type = 987898635; + } + } + IFC4X32.IfcGeometricCurveSet = IfcGeometricCurveSet; + class IfcIShapeProfileDef extends IfcParameterizedProfileDef { + constructor(expressID, ProfileType, ProfileName, Position, OverallWidth, OverallDepth, WebThickness, FlangeThickness, FilletRadius, FlangeEdgeRadius, FlangeSlope) { + super(expressID, ProfileType, ProfileName, Position); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.OverallWidth = OverallWidth; + this.OverallDepth = OverallDepth; + this.WebThickness = WebThickness; + this.FlangeThickness = FlangeThickness; + this.FilletRadius = FilletRadius; + this.FlangeEdgeRadius = FlangeEdgeRadius; + this.FlangeSlope = FlangeSlope; + this.type = 1484403080; + } + } + IFC4X32.IfcIShapeProfileDef = IfcIShapeProfileDef; + class IfcIndexedPolygonalFace extends IfcTessellatedItem { + constructor(expressID, CoordIndex) { + super(expressID); + this.CoordIndex = CoordIndex; + this.type = 178912537; + } + } + IFC4X32.IfcIndexedPolygonalFace = IfcIndexedPolygonalFace; + class IfcIndexedPolygonalFaceWithVoids extends IfcIndexedPolygonalFace { + constructor(expressID, CoordIndex, InnerCoordIndices) { + super(expressID, CoordIndex); + this.CoordIndex = CoordIndex; + this.InnerCoordIndices = InnerCoordIndices; + this.type = 2294589976; + } + } + IFC4X32.IfcIndexedPolygonalFaceWithVoids = IfcIndexedPolygonalFaceWithVoids; + class IfcIndexedPolygonalTextureMap extends IfcIndexedTextureMap { + constructor(expressID, Maps, MappedTo, TexCoords, TexCoordIndices) { + super(expressID, Maps, MappedTo, TexCoords); + this.Maps = Maps; + this.MappedTo = MappedTo; + this.TexCoords = TexCoords; + this.TexCoordIndices = TexCoordIndices; + this.type = 3465909080; + } + } + IFC4X32.IfcIndexedPolygonalTextureMap = IfcIndexedPolygonalTextureMap; + class IfcLShapeProfileDef extends IfcParameterizedProfileDef { + constructor(expressID, ProfileType, ProfileName, Position, Depth, Width, Thickness, FilletRadius, EdgeRadius, LegSlope) { + super(expressID, ProfileType, ProfileName, Position); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.Depth = Depth; + this.Width = Width; + this.Thickness = Thickness; + this.FilletRadius = FilletRadius; + this.EdgeRadius = EdgeRadius; + this.LegSlope = LegSlope; + this.type = 572779678; + } + } + IFC4X32.IfcLShapeProfileDef = IfcLShapeProfileDef; + class IfcLaborResourceType extends IfcConstructionResourceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.ResourceType = ResourceType; + this.BaseCosts = BaseCosts; + this.BaseQuantity = BaseQuantity; + this.PredefinedType = PredefinedType; + this.type = 428585644; + } + } + IFC4X32.IfcLaborResourceType = IfcLaborResourceType; + class IfcLine extends IfcCurve { + constructor(expressID, Pnt, Dir) { + super(expressID); + this.Pnt = Pnt; + this.Dir = Dir; + this.type = 1281925730; + } + } + IFC4X32.IfcLine = IfcLine; + class IfcManifoldSolidBrep extends IfcSolidModel { + constructor(expressID, Outer) { + super(expressID); + this.Outer = Outer; + this.type = 1425443689; + } + } + IFC4X32.IfcManifoldSolidBrep = IfcManifoldSolidBrep; + class IfcObject extends IfcObjectDefinition { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.type = 3888040117; + } + } + IFC4X32.IfcObject = IfcObject; + class IfcOffsetCurve extends IfcCurve { + constructor(expressID, BasisCurve) { + super(expressID); + this.BasisCurve = BasisCurve; + this.type = 590820931; + } + } + IFC4X32.IfcOffsetCurve = IfcOffsetCurve; + class IfcOffsetCurve2D extends IfcOffsetCurve { + constructor(expressID, BasisCurve, Distance, SelfIntersect) { + super(expressID, BasisCurve); + this.BasisCurve = BasisCurve; + this.Distance = Distance; + this.SelfIntersect = SelfIntersect; + this.type = 3388369263; + } + } + IFC4X32.IfcOffsetCurve2D = IfcOffsetCurve2D; + class IfcOffsetCurve3D extends IfcOffsetCurve { + constructor(expressID, BasisCurve, Distance, SelfIntersect, RefDirection) { + super(expressID, BasisCurve); + this.BasisCurve = BasisCurve; + this.Distance = Distance; + this.SelfIntersect = SelfIntersect; + this.RefDirection = RefDirection; + this.type = 3505215534; + } + } + IFC4X32.IfcOffsetCurve3D = IfcOffsetCurve3D; + class IfcOffsetCurveByDistances extends IfcOffsetCurve { + constructor(expressID, BasisCurve, OffsetValues, Tag) { + super(expressID, BasisCurve); + this.BasisCurve = BasisCurve; + this.OffsetValues = OffsetValues; + this.Tag = Tag; + this.type = 2485787929; + } + } + IFC4X32.IfcOffsetCurveByDistances = IfcOffsetCurveByDistances; + class IfcPcurve extends IfcCurve { + constructor(expressID, BasisSurface, ReferenceCurve) { + super(expressID); + this.BasisSurface = BasisSurface; + this.ReferenceCurve = ReferenceCurve; + this.type = 1682466193; + } + } + IFC4X32.IfcPcurve = IfcPcurve; + class IfcPlanarBox extends IfcPlanarExtent { + constructor(expressID, SizeInX, SizeInY, Placement) { + super(expressID, SizeInX, SizeInY); + this.SizeInX = SizeInX; + this.SizeInY = SizeInY; + this.Placement = Placement; + this.type = 603570806; + } + } + IFC4X32.IfcPlanarBox = IfcPlanarBox; + class IfcPlane extends IfcElementarySurface { + constructor(expressID, Position) { + super(expressID, Position); + this.Position = Position; + this.type = 220341763; + } + } + IFC4X32.IfcPlane = IfcPlane; + class IfcPolynomialCurve extends IfcCurve { + constructor(expressID, Position, CoefficientsX, CoefficientsY, CoefficientsZ) { + super(expressID); + this.Position = Position; + this.CoefficientsX = CoefficientsX; + this.CoefficientsY = CoefficientsY; + this.CoefficientsZ = CoefficientsZ; + this.type = 3381221214; + } + } + IFC4X32.IfcPolynomialCurve = IfcPolynomialCurve; + class IfcPreDefinedColour extends IfcPreDefinedItem { + constructor(expressID, Name) { + super(expressID, Name); + this.Name = Name; + this.type = 759155922; + } + } + IFC4X32.IfcPreDefinedColour = IfcPreDefinedColour; + class IfcPreDefinedCurveFont extends IfcPreDefinedItem { + constructor(expressID, Name) { + super(expressID, Name); + this.Name = Name; + this.type = 2559016684; + } + } + IFC4X32.IfcPreDefinedCurveFont = IfcPreDefinedCurveFont; + class IfcPreDefinedPropertySet extends IfcPropertySetDefinition { + constructor(expressID, GlobalId, OwnerHistory, Name, Description) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.type = 3967405729; + } + } + IFC4X32.IfcPreDefinedPropertySet = IfcPreDefinedPropertySet; + class IfcProcedureType extends IfcTypeProcess { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.ProcessType = ProcessType; + this.PredefinedType = PredefinedType; + this.type = 569719735; + } + } + IFC4X32.IfcProcedureType = IfcProcedureType; + class IfcProcess extends IfcObject { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.type = 2945172077; + } + } + IFC4X32.IfcProcess = IfcProcess; + class IfcProduct extends IfcObject { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.type = 4208778838; + } + } + IFC4X32.IfcProduct = IfcProduct; + class IfcProject extends IfcContext { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.LongName = LongName; + this.Phase = Phase; + this.RepresentationContexts = RepresentationContexts; + this.UnitsInContext = UnitsInContext; + this.type = 103090709; + } + } + IFC4X32.IfcProject = IfcProject; + class IfcProjectLibrary extends IfcContext { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.LongName = LongName; + this.Phase = Phase; + this.RepresentationContexts = RepresentationContexts; + this.UnitsInContext = UnitsInContext; + this.type = 653396225; + } + } + IFC4X32.IfcProjectLibrary = IfcProjectLibrary; + class IfcPropertyBoundedValue extends IfcSimpleProperty { + constructor(expressID, Name, Specification, UpperBoundValue, LowerBoundValue, Unit, SetPointValue) { + super(expressID, Name, Specification); + this.Name = Name; + this.Specification = Specification; + this.UpperBoundValue = UpperBoundValue; + this.LowerBoundValue = LowerBoundValue; + this.Unit = Unit; + this.SetPointValue = SetPointValue; + this.type = 871118103; + } + } + IFC4X32.IfcPropertyBoundedValue = IfcPropertyBoundedValue; + class IfcPropertyEnumeratedValue extends IfcSimpleProperty { + constructor(expressID, Name, Specification, EnumerationValues, EnumerationReference) { + super(expressID, Name, Specification); + this.Name = Name; + this.Specification = Specification; + this.EnumerationValues = EnumerationValues; + this.EnumerationReference = EnumerationReference; + this.type = 4166981789; + } + } + IFC4X32.IfcPropertyEnumeratedValue = IfcPropertyEnumeratedValue; + class IfcPropertyListValue extends IfcSimpleProperty { + constructor(expressID, Name, Specification, ListValues, Unit) { + super(expressID, Name, Specification); + this.Name = Name; + this.Specification = Specification; + this.ListValues = ListValues; + this.Unit = Unit; + this.type = 2752243245; + } + } + IFC4X32.IfcPropertyListValue = IfcPropertyListValue; + class IfcPropertyReferenceValue extends IfcSimpleProperty { + constructor(expressID, Name, Specification, UsageName, PropertyReference) { + super(expressID, Name, Specification); + this.Name = Name; + this.Specification = Specification; + this.UsageName = UsageName; + this.PropertyReference = PropertyReference; + this.type = 941946838; + } + } + IFC4X32.IfcPropertyReferenceValue = IfcPropertyReferenceValue; + class IfcPropertySet extends IfcPropertySetDefinition { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, HasProperties) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.HasProperties = HasProperties; + this.type = 1451395588; + } + } + IFC4X32.IfcPropertySet = IfcPropertySet; + class IfcPropertySetTemplate extends IfcPropertyTemplateDefinition { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, TemplateType, ApplicableEntity, HasPropertyTemplates) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.TemplateType = TemplateType; + this.ApplicableEntity = ApplicableEntity; + this.HasPropertyTemplates = HasPropertyTemplates; + this.type = 492091185; + } + } + IFC4X32.IfcPropertySetTemplate = IfcPropertySetTemplate; + class IfcPropertySingleValue extends IfcSimpleProperty { + constructor(expressID, Name, Specification, NominalValue, Unit) { + super(expressID, Name, Specification); + this.Name = Name; + this.Specification = Specification; + this.NominalValue = NominalValue; + this.Unit = Unit; + this.type = 3650150729; + } + } + IFC4X32.IfcPropertySingleValue = IfcPropertySingleValue; + class IfcPropertyTableValue extends IfcSimpleProperty { + constructor(expressID, Name, Specification, DefiningValues, DefinedValues, Expression, DefiningUnit, DefinedUnit, CurveInterpolation) { + super(expressID, Name, Specification); + this.Name = Name; + this.Specification = Specification; + this.DefiningValues = DefiningValues; + this.DefinedValues = DefinedValues; + this.Expression = Expression; + this.DefiningUnit = DefiningUnit; + this.DefinedUnit = DefinedUnit; + this.CurveInterpolation = CurveInterpolation; + this.type = 110355661; + } + } + IFC4X32.IfcPropertyTableValue = IfcPropertyTableValue; + class IfcPropertyTemplate extends IfcPropertyTemplateDefinition { + constructor(expressID, GlobalId, OwnerHistory, Name, Description) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.type = 3521284610; + } + } + IFC4X32.IfcPropertyTemplate = IfcPropertyTemplate; + class IfcRectangleHollowProfileDef extends IfcRectangleProfileDef { + constructor(expressID, ProfileType, ProfileName, Position, XDim, YDim, WallThickness, InnerFilletRadius, OuterFilletRadius) { + super(expressID, ProfileType, ProfileName, Position, XDim, YDim); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.XDim = XDim; + this.YDim = YDim; + this.WallThickness = WallThickness; + this.InnerFilletRadius = InnerFilletRadius; + this.OuterFilletRadius = OuterFilletRadius; + this.type = 2770003689; + } + } + IFC4X32.IfcRectangleHollowProfileDef = IfcRectangleHollowProfileDef; + class IfcRectangularPyramid extends IfcCsgPrimitive3D { + constructor(expressID, Position, XLength, YLength, Height) { + super(expressID, Position); + this.Position = Position; + this.XLength = XLength; + this.YLength = YLength; + this.Height = Height; + this.type = 2798486643; + } + } + IFC4X32.IfcRectangularPyramid = IfcRectangularPyramid; + class IfcRectangularTrimmedSurface extends IfcBoundedSurface { + constructor(expressID, BasisSurface, U1, V1, U2, V2, Usense, Vsense) { + super(expressID); + this.BasisSurface = BasisSurface; + this.U1 = U1; + this.V1 = V1; + this.U2 = U2; + this.V2 = V2; + this.Usense = Usense; + this.Vsense = Vsense; + this.type = 3454111270; + } + } + IFC4X32.IfcRectangularTrimmedSurface = IfcRectangularTrimmedSurface; + class IfcReinforcementDefinitionProperties extends IfcPreDefinedPropertySet { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, DefinitionType, ReinforcementSectionDefinitions) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.DefinitionType = DefinitionType; + this.ReinforcementSectionDefinitions = ReinforcementSectionDefinitions; + this.type = 3765753017; + } + } + IFC4X32.IfcReinforcementDefinitionProperties = IfcReinforcementDefinitionProperties; + class IfcRelAssigns extends IfcRelationship { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatedObjectsType = RelatedObjectsType; + this.type = 3939117080; + } + } + IFC4X32.IfcRelAssigns = IfcRelAssigns; + class IfcRelAssignsToActor extends IfcRelAssigns { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingActor, ActingRole) { + super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatedObjectsType = RelatedObjectsType; + this.RelatingActor = RelatingActor; + this.ActingRole = ActingRole; + this.type = 1683148259; + } + } + IFC4X32.IfcRelAssignsToActor = IfcRelAssignsToActor; + class IfcRelAssignsToControl extends IfcRelAssigns { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl) { + super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatedObjectsType = RelatedObjectsType; + this.RelatingControl = RelatingControl; + this.type = 2495723537; + } + } + IFC4X32.IfcRelAssignsToControl = IfcRelAssignsToControl; + class IfcRelAssignsToGroup extends IfcRelAssigns { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingGroup) { + super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatedObjectsType = RelatedObjectsType; + this.RelatingGroup = RelatingGroup; + this.type = 1307041759; + } + } + IFC4X32.IfcRelAssignsToGroup = IfcRelAssignsToGroup; + class IfcRelAssignsToGroupByFactor extends IfcRelAssignsToGroup { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingGroup, Factor) { + super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingGroup); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatedObjectsType = RelatedObjectsType; + this.RelatingGroup = RelatingGroup; + this.Factor = Factor; + this.type = 1027710054; + } + } + IFC4X32.IfcRelAssignsToGroupByFactor = IfcRelAssignsToGroupByFactor; + class IfcRelAssignsToProcess extends IfcRelAssigns { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingProcess, QuantityInProcess) { + super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatedObjectsType = RelatedObjectsType; + this.RelatingProcess = RelatingProcess; + this.QuantityInProcess = QuantityInProcess; + this.type = 4278684876; + } + } + IFC4X32.IfcRelAssignsToProcess = IfcRelAssignsToProcess; + class IfcRelAssignsToProduct extends IfcRelAssigns { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingProduct) { + super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatedObjectsType = RelatedObjectsType; + this.RelatingProduct = RelatingProduct; + this.type = 2857406711; + } + } + IFC4X32.IfcRelAssignsToProduct = IfcRelAssignsToProduct; + class IfcRelAssignsToResource extends IfcRelAssigns { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingResource) { + super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatedObjectsType = RelatedObjectsType; + this.RelatingResource = RelatingResource; + this.type = 205026976; + } + } + IFC4X32.IfcRelAssignsToResource = IfcRelAssignsToResource; + class IfcRelAssociates extends IfcRelationship { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.type = 1865459582; + } + } + IFC4X32.IfcRelAssociates = IfcRelAssociates; + class IfcRelAssociatesApproval extends IfcRelAssociates { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingApproval) { + super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatingApproval = RelatingApproval; + this.type = 4095574036; + } + } + IFC4X32.IfcRelAssociatesApproval = IfcRelAssociatesApproval; + class IfcRelAssociatesClassification extends IfcRelAssociates { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingClassification) { + super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatingClassification = RelatingClassification; + this.type = 919958153; + } + } + IFC4X32.IfcRelAssociatesClassification = IfcRelAssociatesClassification; + class IfcRelAssociatesConstraint extends IfcRelAssociates { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, Intent, RelatingConstraint) { + super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.Intent = Intent; + this.RelatingConstraint = RelatingConstraint; + this.type = 2728634034; + } + } + IFC4X32.IfcRelAssociatesConstraint = IfcRelAssociatesConstraint; + class IfcRelAssociatesDocument extends IfcRelAssociates { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingDocument) { + super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatingDocument = RelatingDocument; + this.type = 982818633; + } + } + IFC4X32.IfcRelAssociatesDocument = IfcRelAssociatesDocument; + class IfcRelAssociatesLibrary extends IfcRelAssociates { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingLibrary) { + super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatingLibrary = RelatingLibrary; + this.type = 3840914261; + } + } + IFC4X32.IfcRelAssociatesLibrary = IfcRelAssociatesLibrary; + class IfcRelAssociatesMaterial extends IfcRelAssociates { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingMaterial) { + super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatingMaterial = RelatingMaterial; + this.type = 2655215786; + } + } + IFC4X32.IfcRelAssociatesMaterial = IfcRelAssociatesMaterial; + class IfcRelAssociatesProfileDef extends IfcRelAssociates { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingProfileDef) { + super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatingProfileDef = RelatingProfileDef; + this.type = 1033248425; + } + } + IFC4X32.IfcRelAssociatesProfileDef = IfcRelAssociatesProfileDef; + class IfcRelConnects extends IfcRelationship { + constructor(expressID, GlobalId, OwnerHistory, Name, Description) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.type = 826625072; + } + } + IFC4X32.IfcRelConnects = IfcRelConnects; + class IfcRelConnectsElements extends IfcRelConnects { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ConnectionGeometry = ConnectionGeometry; + this.RelatingElement = RelatingElement; + this.RelatedElement = RelatedElement; + this.type = 1204542856; + } + } + IFC4X32.IfcRelConnectsElements = IfcRelConnectsElements; + class IfcRelConnectsPathElements extends IfcRelConnectsElements { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement, RelatingPriorities, RelatedPriorities, RelatedConnectionType, RelatingConnectionType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ConnectionGeometry = ConnectionGeometry; + this.RelatingElement = RelatingElement; + this.RelatedElement = RelatedElement; + this.RelatingPriorities = RelatingPriorities; + this.RelatedPriorities = RelatedPriorities; + this.RelatedConnectionType = RelatedConnectionType; + this.RelatingConnectionType = RelatingConnectionType; + this.type = 3945020480; + } + } + IFC4X32.IfcRelConnectsPathElements = IfcRelConnectsPathElements; + class IfcRelConnectsPortToElement extends IfcRelConnects { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingPort, RelatedElement) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingPort = RelatingPort; + this.RelatedElement = RelatedElement; + this.type = 4201705270; + } + } + IFC4X32.IfcRelConnectsPortToElement = IfcRelConnectsPortToElement; + class IfcRelConnectsPorts extends IfcRelConnects { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingPort, RelatedPort, RealizingElement) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingPort = RelatingPort; + this.RelatedPort = RelatedPort; + this.RealizingElement = RealizingElement; + this.type = 3190031847; + } + } + IFC4X32.IfcRelConnectsPorts = IfcRelConnectsPorts; + class IfcRelConnectsStructuralActivity extends IfcRelConnects { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedStructuralActivity) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingElement = RelatingElement; + this.RelatedStructuralActivity = RelatedStructuralActivity; + this.type = 2127690289; + } + } + IFC4X32.IfcRelConnectsStructuralActivity = IfcRelConnectsStructuralActivity; + class IfcRelConnectsStructuralMember extends IfcRelConnects { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingStructuralMember = RelatingStructuralMember; + this.RelatedStructuralConnection = RelatedStructuralConnection; + this.AppliedCondition = AppliedCondition; + this.AdditionalConditions = AdditionalConditions; + this.SupportedLength = SupportedLength; + this.ConditionCoordinateSystem = ConditionCoordinateSystem; + this.type = 1638771189; + } + } + IFC4X32.IfcRelConnectsStructuralMember = IfcRelConnectsStructuralMember; + class IfcRelConnectsWithEccentricity extends IfcRelConnectsStructuralMember { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem, ConnectionConstraint) { + super(expressID, GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingStructuralMember = RelatingStructuralMember; + this.RelatedStructuralConnection = RelatedStructuralConnection; + this.AppliedCondition = AppliedCondition; + this.AdditionalConditions = AdditionalConditions; + this.SupportedLength = SupportedLength; + this.ConditionCoordinateSystem = ConditionCoordinateSystem; + this.ConnectionConstraint = ConnectionConstraint; + this.type = 504942748; + } + } + IFC4X32.IfcRelConnectsWithEccentricity = IfcRelConnectsWithEccentricity; + class IfcRelConnectsWithRealizingElements extends IfcRelConnectsElements { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement, RealizingElements, ConnectionType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ConnectionGeometry = ConnectionGeometry; + this.RelatingElement = RelatingElement; + this.RelatedElement = RelatedElement; + this.RealizingElements = RealizingElements; + this.ConnectionType = ConnectionType; + this.type = 3678494232; + } + } + IFC4X32.IfcRelConnectsWithRealizingElements = IfcRelConnectsWithRealizingElements; + class IfcRelContainedInSpatialStructure extends IfcRelConnects { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedElements, RelatingStructure) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedElements = RelatedElements; + this.RelatingStructure = RelatingStructure; + this.type = 3242617779; + } + } + IFC4X32.IfcRelContainedInSpatialStructure = IfcRelContainedInSpatialStructure; + class IfcRelCoversBldgElements extends IfcRelConnects { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingBuildingElement, RelatedCoverings) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingBuildingElement = RelatingBuildingElement; + this.RelatedCoverings = RelatedCoverings; + this.type = 886880790; + } + } + IFC4X32.IfcRelCoversBldgElements = IfcRelCoversBldgElements; + class IfcRelCoversSpaces extends IfcRelConnects { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedCoverings) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingSpace = RelatingSpace; + this.RelatedCoverings = RelatedCoverings; + this.type = 2802773753; + } + } + IFC4X32.IfcRelCoversSpaces = IfcRelCoversSpaces; + class IfcRelDeclares extends IfcRelationship { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingContext, RelatedDefinitions) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingContext = RelatingContext; + this.RelatedDefinitions = RelatedDefinitions; + this.type = 2565941209; + } + } + IFC4X32.IfcRelDeclares = IfcRelDeclares; + class IfcRelDecomposes extends IfcRelationship { + constructor(expressID, GlobalId, OwnerHistory, Name, Description) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.type = 2551354335; + } + } + IFC4X32.IfcRelDecomposes = IfcRelDecomposes; + class IfcRelDefines extends IfcRelationship { + constructor(expressID, GlobalId, OwnerHistory, Name, Description) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.type = 693640335; + } + } + IFC4X32.IfcRelDefines = IfcRelDefines; + class IfcRelDefinesByObject extends IfcRelDefines { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingObject) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatingObject = RelatingObject; + this.type = 1462361463; + } + } + IFC4X32.IfcRelDefinesByObject = IfcRelDefinesByObject; + class IfcRelDefinesByProperties extends IfcRelDefines { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingPropertyDefinition) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatingPropertyDefinition = RelatingPropertyDefinition; + this.type = 4186316022; + } + } + IFC4X32.IfcRelDefinesByProperties = IfcRelDefinesByProperties; + class IfcRelDefinesByTemplate extends IfcRelDefines { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedPropertySets, RelatingTemplate) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedPropertySets = RelatedPropertySets; + this.RelatingTemplate = RelatingTemplate; + this.type = 307848117; + } + } + IFC4X32.IfcRelDefinesByTemplate = IfcRelDefinesByTemplate; + class IfcRelDefinesByType extends IfcRelDefines { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingType) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedObjects = RelatedObjects; + this.RelatingType = RelatingType; + this.type = 781010003; + } + } + IFC4X32.IfcRelDefinesByType = IfcRelDefinesByType; + class IfcRelFillsElement extends IfcRelConnects { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingOpeningElement, RelatedBuildingElement) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingOpeningElement = RelatingOpeningElement; + this.RelatedBuildingElement = RelatedBuildingElement; + this.type = 3940055652; + } + } + IFC4X32.IfcRelFillsElement = IfcRelFillsElement; + class IfcRelFlowControlElements extends IfcRelConnects { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedControlElements, RelatingFlowElement) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedControlElements = RelatedControlElements; + this.RelatingFlowElement = RelatingFlowElement; + this.type = 279856033; + } + } + IFC4X32.IfcRelFlowControlElements = IfcRelFlowControlElements; + class IfcRelInterferesElements extends IfcRelConnects { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedElement, InterferenceGeometry, InterferenceSpace, InterferenceType, ImpliedOrder) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingElement = RelatingElement; + this.RelatedElement = RelatedElement; + this.InterferenceGeometry = InterferenceGeometry; + this.InterferenceSpace = InterferenceSpace; + this.InterferenceType = InterferenceType; + this.ImpliedOrder = ImpliedOrder; + this.type = 427948657; + } + } + IFC4X32.IfcRelInterferesElements = IfcRelInterferesElements; + class IfcRelNests extends IfcRelDecomposes { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingObject = RelatingObject; + this.RelatedObjects = RelatedObjects; + this.type = 3268803585; + } + } + IFC4X32.IfcRelNests = IfcRelNests; + class IfcRelPositions extends IfcRelConnects { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingPositioningElement, RelatedProducts) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingPositioningElement = RelatingPositioningElement; + this.RelatedProducts = RelatedProducts; + this.type = 1441486842; + } + } + IFC4X32.IfcRelPositions = IfcRelPositions; + class IfcRelProjectsElement extends IfcRelDecomposes { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedFeatureElement) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingElement = RelatingElement; + this.RelatedFeatureElement = RelatedFeatureElement; + this.type = 750771296; + } + } + IFC4X32.IfcRelProjectsElement = IfcRelProjectsElement; + class IfcRelReferencedInSpatialStructure extends IfcRelConnects { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedElements, RelatingStructure) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatedElements = RelatedElements; + this.RelatingStructure = RelatingStructure; + this.type = 1245217292; + } + } + IFC4X32.IfcRelReferencedInSpatialStructure = IfcRelReferencedInSpatialStructure; + class IfcRelSequence extends IfcRelConnects { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingProcess, RelatedProcess, TimeLag, SequenceType, UserDefinedSequenceType) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingProcess = RelatingProcess; + this.RelatedProcess = RelatedProcess; + this.TimeLag = TimeLag; + this.SequenceType = SequenceType; + this.UserDefinedSequenceType = UserDefinedSequenceType; + this.type = 4122056220; + } + } + IFC4X32.IfcRelSequence = IfcRelSequence; + class IfcRelServicesBuildings extends IfcRelConnects { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSystem, RelatedBuildings) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingSystem = RelatingSystem; + this.RelatedBuildings = RelatedBuildings; + this.type = 366585022; + } + } + IFC4X32.IfcRelServicesBuildings = IfcRelServicesBuildings; + class IfcRelSpaceBoundary extends IfcRelConnects { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingSpace = RelatingSpace; + this.RelatedBuildingElement = RelatedBuildingElement; + this.ConnectionGeometry = ConnectionGeometry; + this.PhysicalOrVirtualBoundary = PhysicalOrVirtualBoundary; + this.InternalOrExternalBoundary = InternalOrExternalBoundary; + this.type = 3451746338; + } + } + IFC4X32.IfcRelSpaceBoundary = IfcRelSpaceBoundary; + class IfcRelSpaceBoundary1stLevel extends IfcRelSpaceBoundary { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary, ParentBoundary) { + super(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingSpace = RelatingSpace; + this.RelatedBuildingElement = RelatedBuildingElement; + this.ConnectionGeometry = ConnectionGeometry; + this.PhysicalOrVirtualBoundary = PhysicalOrVirtualBoundary; + this.InternalOrExternalBoundary = InternalOrExternalBoundary; + this.ParentBoundary = ParentBoundary; + this.type = 3523091289; + } + } + IFC4X32.IfcRelSpaceBoundary1stLevel = IfcRelSpaceBoundary1stLevel; + class IfcRelSpaceBoundary2ndLevel extends IfcRelSpaceBoundary1stLevel { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary, ParentBoundary, CorrespondingBoundary) { + super(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary, ParentBoundary); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingSpace = RelatingSpace; + this.RelatedBuildingElement = RelatedBuildingElement; + this.ConnectionGeometry = ConnectionGeometry; + this.PhysicalOrVirtualBoundary = PhysicalOrVirtualBoundary; + this.InternalOrExternalBoundary = InternalOrExternalBoundary; + this.ParentBoundary = ParentBoundary; + this.CorrespondingBoundary = CorrespondingBoundary; + this.type = 1521410863; + } + } + IFC4X32.IfcRelSpaceBoundary2ndLevel = IfcRelSpaceBoundary2ndLevel; + class IfcRelVoidsElement extends IfcRelDecomposes { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingBuildingElement, RelatedOpeningElement) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingBuildingElement = RelatingBuildingElement; + this.RelatedOpeningElement = RelatedOpeningElement; + this.type = 1401173127; + } + } + IFC4X32.IfcRelVoidsElement = IfcRelVoidsElement; + class IfcReparametrisedCompositeCurveSegment extends IfcCompositeCurveSegment { + constructor(expressID, Transition, SameSense, ParentCurve, ParamLength) { + super(expressID, Transition, SameSense, ParentCurve); + this.Transition = Transition; + this.SameSense = SameSense; + this.ParentCurve = ParentCurve; + this.ParamLength = ParamLength; + this.type = 816062949; + } + } + IFC4X32.IfcReparametrisedCompositeCurveSegment = IfcReparametrisedCompositeCurveSegment; + class IfcResource extends IfcObject { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.type = 2914609552; + } + } + IFC4X32.IfcResource = IfcResource; + class IfcRevolvedAreaSolid extends IfcSweptAreaSolid { + constructor(expressID, SweptArea, Position, Axis, Angle) { + super(expressID, SweptArea, Position); + this.SweptArea = SweptArea; + this.Position = Position; + this.Axis = Axis; + this.Angle = Angle; + this.type = 1856042241; + } + } + IFC4X32.IfcRevolvedAreaSolid = IfcRevolvedAreaSolid; + class IfcRevolvedAreaSolidTapered extends IfcRevolvedAreaSolid { + constructor(expressID, SweptArea, Position, Axis, Angle, EndSweptArea) { + super(expressID, SweptArea, Position, Axis, Angle); + this.SweptArea = SweptArea; + this.Position = Position; + this.Axis = Axis; + this.Angle = Angle; + this.EndSweptArea = EndSweptArea; + this.type = 3243963512; + } + } + IFC4X32.IfcRevolvedAreaSolidTapered = IfcRevolvedAreaSolidTapered; + class IfcRightCircularCone extends IfcCsgPrimitive3D { + constructor(expressID, Position, Height, BottomRadius) { + super(expressID, Position); + this.Position = Position; + this.Height = Height; + this.BottomRadius = BottomRadius; + this.type = 4158566097; + } + } + IFC4X32.IfcRightCircularCone = IfcRightCircularCone; + class IfcRightCircularCylinder extends IfcCsgPrimitive3D { + constructor(expressID, Position, Height, Radius) { + super(expressID, Position); + this.Position = Position; + this.Height = Height; + this.Radius = Radius; + this.type = 3626867408; + } + } + IFC4X32.IfcRightCircularCylinder = IfcRightCircularCylinder; + class IfcSectionedSolid extends IfcSolidModel { + constructor(expressID, Directrix, CrossSections) { + super(expressID); + this.Directrix = Directrix; + this.CrossSections = CrossSections; + this.type = 1862484736; + } + } + IFC4X32.IfcSectionedSolid = IfcSectionedSolid; + class IfcSectionedSolidHorizontal extends IfcSectionedSolid { + constructor(expressID, Directrix, CrossSections, CrossSectionPositions) { + super(expressID, Directrix, CrossSections); + this.Directrix = Directrix; + this.CrossSections = CrossSections; + this.CrossSectionPositions = CrossSectionPositions; + this.type = 1290935644; + } + } + IFC4X32.IfcSectionedSolidHorizontal = IfcSectionedSolidHorizontal; + class IfcSectionedSurface extends IfcSurface { + constructor(expressID, Directrix, CrossSectionPositions, CrossSections) { + super(expressID); + this.Directrix = Directrix; + this.CrossSectionPositions = CrossSectionPositions; + this.CrossSections = CrossSections; + this.type = 1356537516; + } + } + IFC4X32.IfcSectionedSurface = IfcSectionedSurface; + class IfcSimplePropertyTemplate extends IfcPropertyTemplate { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, TemplateType, PrimaryMeasureType, SecondaryMeasureType, Enumerators, PrimaryUnit, SecondaryUnit, Expression, AccessState) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.TemplateType = TemplateType; + this.PrimaryMeasureType = PrimaryMeasureType; + this.SecondaryMeasureType = SecondaryMeasureType; + this.Enumerators = Enumerators; + this.PrimaryUnit = PrimaryUnit; + this.SecondaryUnit = SecondaryUnit; + this.Expression = Expression; + this.AccessState = AccessState; + this.type = 3663146110; + } + } + IFC4X32.IfcSimplePropertyTemplate = IfcSimplePropertyTemplate; + class IfcSpatialElement extends IfcProduct { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.LongName = LongName; + this.type = 1412071761; + } + } + IFC4X32.IfcSpatialElement = IfcSpatialElement; + class IfcSpatialElementType extends IfcTypeProduct { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 710998568; + } + } + IFC4X32.IfcSpatialElementType = IfcSpatialElementType; + class IfcSpatialStructureElement extends IfcSpatialElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.LongName = LongName; + this.CompositionType = CompositionType; + this.type = 2706606064; + } + } + IFC4X32.IfcSpatialStructureElement = IfcSpatialStructureElement; + class IfcSpatialStructureElementType extends IfcSpatialElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 3893378262; + } + } + IFC4X32.IfcSpatialStructureElementType = IfcSpatialStructureElementType; + class IfcSpatialZone extends IfcSpatialElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.LongName = LongName; + this.PredefinedType = PredefinedType; + this.type = 463610769; + } + } + IFC4X32.IfcSpatialZone = IfcSpatialZone; + class IfcSpatialZoneType extends IfcSpatialElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, LongName) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.LongName = LongName; + this.type = 2481509218; + } + } + IFC4X32.IfcSpatialZoneType = IfcSpatialZoneType; + class IfcSphere extends IfcCsgPrimitive3D { + constructor(expressID, Position, Radius) { + super(expressID, Position); + this.Position = Position; + this.Radius = Radius; + this.type = 451544542; + } + } + IFC4X32.IfcSphere = IfcSphere; + class IfcSphericalSurface extends IfcElementarySurface { + constructor(expressID, Position, Radius) { + super(expressID, Position); + this.Position = Position; + this.Radius = Radius; + this.type = 4015995234; + } + } + IFC4X32.IfcSphericalSurface = IfcSphericalSurface; + class IfcSpiral extends IfcCurve { + constructor(expressID, Position) { + super(expressID); + this.Position = Position; + this.type = 2735484536; + } + } + IFC4X32.IfcSpiral = IfcSpiral; + class IfcStructuralActivity extends IfcProduct { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedLoad = AppliedLoad; + this.GlobalOrLocal = GlobalOrLocal; + this.type = 3544373492; + } + } + IFC4X32.IfcStructuralActivity = IfcStructuralActivity; + class IfcStructuralItem extends IfcProduct { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.type = 3136571912; + } + } + IFC4X32.IfcStructuralItem = IfcStructuralItem; + class IfcStructuralMember extends IfcStructuralItem { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.type = 530289379; + } + } + IFC4X32.IfcStructuralMember = IfcStructuralMember; + class IfcStructuralReaction extends IfcStructuralActivity { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedLoad = AppliedLoad; + this.GlobalOrLocal = GlobalOrLocal; + this.type = 3689010777; + } + } + IFC4X32.IfcStructuralReaction = IfcStructuralReaction; + class IfcStructuralSurfaceMember extends IfcStructuralMember { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.PredefinedType = PredefinedType; + this.Thickness = Thickness; + this.type = 3979015343; + } + } + IFC4X32.IfcStructuralSurfaceMember = IfcStructuralSurfaceMember; + class IfcStructuralSurfaceMemberVarying extends IfcStructuralSurfaceMember { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.PredefinedType = PredefinedType; + this.Thickness = Thickness; + this.type = 2218152070; + } + } + IFC4X32.IfcStructuralSurfaceMemberVarying = IfcStructuralSurfaceMemberVarying; + class IfcStructuralSurfaceReaction extends IfcStructuralReaction { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedLoad = AppliedLoad; + this.GlobalOrLocal = GlobalOrLocal; + this.PredefinedType = PredefinedType; + this.type = 603775116; + } + } + IFC4X32.IfcStructuralSurfaceReaction = IfcStructuralSurfaceReaction; + class IfcSubContractResourceType extends IfcConstructionResourceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.ResourceType = ResourceType; + this.BaseCosts = BaseCosts; + this.BaseQuantity = BaseQuantity; + this.PredefinedType = PredefinedType; + this.type = 4095615324; + } + } + IFC4X32.IfcSubContractResourceType = IfcSubContractResourceType; + class IfcSurfaceCurve extends IfcCurve { + constructor(expressID, Curve3D, AssociatedGeometry, MasterRepresentation) { + super(expressID); + this.Curve3D = Curve3D; + this.AssociatedGeometry = AssociatedGeometry; + this.MasterRepresentation = MasterRepresentation; + this.type = 699246055; + } + } + IFC4X32.IfcSurfaceCurve = IfcSurfaceCurve; + class IfcSurfaceCurveSweptAreaSolid extends IfcDirectrixCurveSweptAreaSolid { + constructor(expressID, SweptArea, Position, Directrix, StartParam, EndParam, ReferenceSurface) { + super(expressID, SweptArea, Position, Directrix, StartParam, EndParam); + this.SweptArea = SweptArea; + this.Position = Position; + this.Directrix = Directrix; + this.StartParam = StartParam; + this.EndParam = EndParam; + this.ReferenceSurface = ReferenceSurface; + this.type = 2028607225; + } + } + IFC4X32.IfcSurfaceCurveSweptAreaSolid = IfcSurfaceCurveSweptAreaSolid; + class IfcSurfaceOfLinearExtrusion extends IfcSweptSurface { + constructor(expressID, SweptCurve, Position, ExtrudedDirection, Depth) { + super(expressID, SweptCurve, Position); + this.SweptCurve = SweptCurve; + this.Position = Position; + this.ExtrudedDirection = ExtrudedDirection; + this.Depth = Depth; + this.type = 2809605785; + } + } + IFC4X32.IfcSurfaceOfLinearExtrusion = IfcSurfaceOfLinearExtrusion; + class IfcSurfaceOfRevolution extends IfcSweptSurface { + constructor(expressID, SweptCurve, Position, AxisPosition) { + super(expressID, SweptCurve, Position); + this.SweptCurve = SweptCurve; + this.Position = Position; + this.AxisPosition = AxisPosition; + this.type = 4124788165; + } + } + IFC4X32.IfcSurfaceOfRevolution = IfcSurfaceOfRevolution; + class IfcSystemFurnitureElementType extends IfcFurnishingElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1580310250; + } + } + IFC4X32.IfcSystemFurnitureElementType = IfcSystemFurnitureElementType; + class IfcTask extends IfcProcess { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Status, WorkMethod, IsMilestone, Priority, TaskTime, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.Status = Status; + this.WorkMethod = WorkMethod; + this.IsMilestone = IsMilestone; + this.Priority = Priority; + this.TaskTime = TaskTime; + this.PredefinedType = PredefinedType; + this.type = 3473067441; + } + } + IFC4X32.IfcTask = IfcTask; + class IfcTaskType extends IfcTypeProcess { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType, PredefinedType, WorkMethod) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.ProcessType = ProcessType; + this.PredefinedType = PredefinedType; + this.WorkMethod = WorkMethod; + this.type = 3206491090; + } + } + IFC4X32.IfcTaskType = IfcTaskType; + class IfcTessellatedFaceSet extends IfcTessellatedItem { + constructor(expressID, Coordinates, Closed) { + super(expressID); + this.Coordinates = Coordinates; + this.Closed = Closed; + this.type = 2387106220; + } + } + IFC4X32.IfcTessellatedFaceSet = IfcTessellatedFaceSet; + class IfcThirdOrderPolynomialSpiral extends IfcSpiral { + constructor(expressID, Position, CubicTerm, QuadraticTerm, LinearTerm, ConstantTerm) { + super(expressID, Position); + this.Position = Position; + this.CubicTerm = CubicTerm; + this.QuadraticTerm = QuadraticTerm; + this.LinearTerm = LinearTerm; + this.ConstantTerm = ConstantTerm; + this.type = 782932809; + } + } + IFC4X32.IfcThirdOrderPolynomialSpiral = IfcThirdOrderPolynomialSpiral; + class IfcToroidalSurface extends IfcElementarySurface { + constructor(expressID, Position, MajorRadius, MinorRadius) { + super(expressID, Position); + this.Position = Position; + this.MajorRadius = MajorRadius; + this.MinorRadius = MinorRadius; + this.type = 1935646853; + } + } + IFC4X32.IfcToroidalSurface = IfcToroidalSurface; + class IfcTransportationDeviceType extends IfcElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 3665877780; + } + } + IFC4X32.IfcTransportationDeviceType = IfcTransportationDeviceType; + class IfcTriangulatedFaceSet extends IfcTessellatedFaceSet { + constructor(expressID, Coordinates, Closed, Normals, CoordIndex, PnIndex) { + super(expressID, Coordinates, Closed); + this.Coordinates = Coordinates; + this.Closed = Closed; + this.Normals = Normals; + this.CoordIndex = CoordIndex; + this.PnIndex = PnIndex; + this.type = 2916149573; + } + } + IFC4X32.IfcTriangulatedFaceSet = IfcTriangulatedFaceSet; + class IfcTriangulatedIrregularNetwork extends IfcTriangulatedFaceSet { + constructor(expressID, Coordinates, Closed, Normals, CoordIndex, PnIndex, Flags) { + super(expressID, Coordinates, Closed, Normals, CoordIndex, PnIndex); + this.Coordinates = Coordinates; + this.Closed = Closed; + this.Normals = Normals; + this.CoordIndex = CoordIndex; + this.PnIndex = PnIndex; + this.Flags = Flags; + this.type = 1229763772; + } + } + IFC4X32.IfcTriangulatedIrregularNetwork = IfcTriangulatedIrregularNetwork; + class IfcVehicleType extends IfcTransportationDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3651464721; + } + } + IFC4X32.IfcVehicleType = IfcVehicleType; + class IfcWindowLiningProperties extends IfcPreDefinedPropertySet { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, LiningDepth, LiningThickness, TransomThickness, MullionThickness, FirstTransomOffset, SecondTransomOffset, FirstMullionOffset, SecondMullionOffset, ShapeAspectStyle, LiningOffset, LiningToPanelOffsetX, LiningToPanelOffsetY) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.LiningDepth = LiningDepth; + this.LiningThickness = LiningThickness; + this.TransomThickness = TransomThickness; + this.MullionThickness = MullionThickness; + this.FirstTransomOffset = FirstTransomOffset; + this.SecondTransomOffset = SecondTransomOffset; + this.FirstMullionOffset = FirstMullionOffset; + this.SecondMullionOffset = SecondMullionOffset; + this.ShapeAspectStyle = ShapeAspectStyle; + this.LiningOffset = LiningOffset; + this.LiningToPanelOffsetX = LiningToPanelOffsetX; + this.LiningToPanelOffsetY = LiningToPanelOffsetY; + this.type = 336235671; + } + } + IFC4X32.IfcWindowLiningProperties = IfcWindowLiningProperties; + class IfcWindowPanelProperties extends IfcPreDefinedPropertySet { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, OperationType, PanelPosition, FrameDepth, FrameThickness, ShapeAspectStyle) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.OperationType = OperationType; + this.PanelPosition = PanelPosition; + this.FrameDepth = FrameDepth; + this.FrameThickness = FrameThickness; + this.ShapeAspectStyle = ShapeAspectStyle; + this.type = 512836454; + } + } + IFC4X32.IfcWindowPanelProperties = IfcWindowPanelProperties; + class IfcActor extends IfcObject { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.TheActor = TheActor; + this.type = 2296667514; + } + } + IFC4X32.IfcActor = IfcActor; + class IfcAdvancedBrep extends IfcManifoldSolidBrep { + constructor(expressID, Outer) { + super(expressID, Outer); + this.Outer = Outer; + this.type = 1635779807; + } + } + IFC4X32.IfcAdvancedBrep = IfcAdvancedBrep; + class IfcAdvancedBrepWithVoids extends IfcAdvancedBrep { + constructor(expressID, Outer, Voids) { + super(expressID, Outer); + this.Outer = Outer; + this.Voids = Voids; + this.type = 2603310189; + } + } + IFC4X32.IfcAdvancedBrepWithVoids = IfcAdvancedBrepWithVoids; + class IfcAnnotation extends IfcProduct { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.PredefinedType = PredefinedType; + this.type = 1674181508; + } + } + IFC4X32.IfcAnnotation = IfcAnnotation; + class IfcBSplineSurface extends IfcBoundedSurface { + constructor(expressID, UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect) { + super(expressID); + this.UDegree = UDegree; + this.VDegree = VDegree; + this.ControlPointsList = ControlPointsList; + this.SurfaceForm = SurfaceForm; + this.UClosed = UClosed; + this.VClosed = VClosed; + this.SelfIntersect = SelfIntersect; + this.type = 2887950389; + } + } + IFC4X32.IfcBSplineSurface = IfcBSplineSurface; + class IfcBSplineSurfaceWithKnots extends IfcBSplineSurface { + constructor(expressID, UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect, UMultiplicities, VMultiplicities, UKnots, VKnots, KnotSpec) { + super(expressID, UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect); + this.UDegree = UDegree; + this.VDegree = VDegree; + this.ControlPointsList = ControlPointsList; + this.SurfaceForm = SurfaceForm; + this.UClosed = UClosed; + this.VClosed = VClosed; + this.SelfIntersect = SelfIntersect; + this.UMultiplicities = UMultiplicities; + this.VMultiplicities = VMultiplicities; + this.UKnots = UKnots; + this.VKnots = VKnots; + this.KnotSpec = KnotSpec; + this.type = 167062518; + } + } + IFC4X32.IfcBSplineSurfaceWithKnots = IfcBSplineSurfaceWithKnots; + class IfcBlock extends IfcCsgPrimitive3D { + constructor(expressID, Position, XLength, YLength, ZLength) { + super(expressID, Position); + this.Position = Position; + this.XLength = XLength; + this.YLength = YLength; + this.ZLength = ZLength; + this.type = 1334484129; + } + } + IFC4X32.IfcBlock = IfcBlock; + class IfcBooleanClippingResult extends IfcBooleanResult { + constructor(expressID, Operator, FirstOperand, SecondOperand) { + super(expressID, Operator, FirstOperand, SecondOperand); + this.Operator = Operator; + this.FirstOperand = FirstOperand; + this.SecondOperand = SecondOperand; + this.type = 3649129432; + } + } + IFC4X32.IfcBooleanClippingResult = IfcBooleanClippingResult; + class IfcBoundedCurve extends IfcCurve { + constructor(expressID) { + super(expressID); + this.type = 1260505505; + } + } + IFC4X32.IfcBoundedCurve = IfcBoundedCurve; + class IfcBuildingStorey extends IfcSpatialStructureElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, Elevation) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.LongName = LongName; + this.CompositionType = CompositionType; + this.Elevation = Elevation; + this.type = 3124254112; + } + } + IFC4X32.IfcBuildingStorey = IfcBuildingStorey; + class IfcBuiltElementType extends IfcElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 1626504194; + } + } + IFC4X32.IfcBuiltElementType = IfcBuiltElementType; + class IfcChimneyType extends IfcBuiltElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2197970202; + } + } + IFC4X32.IfcChimneyType = IfcChimneyType; + class IfcCircleHollowProfileDef extends IfcCircleProfileDef { + constructor(expressID, ProfileType, ProfileName, Position, Radius, WallThickness) { + super(expressID, ProfileType, ProfileName, Position, Radius); + this.ProfileType = ProfileType; + this.ProfileName = ProfileName; + this.Position = Position; + this.Radius = Radius; + this.WallThickness = WallThickness; + this.type = 2937912522; + } + } + IFC4X32.IfcCircleHollowProfileDef = IfcCircleHollowProfileDef; + class IfcCivilElementType extends IfcElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 3893394355; + } + } + IFC4X32.IfcCivilElementType = IfcCivilElementType; + class IfcClothoid extends IfcSpiral { + constructor(expressID, Position, ClothoidConstant) { + super(expressID, Position); + this.Position = Position; + this.ClothoidConstant = ClothoidConstant; + this.type = 3497074424; + } + } + IFC4X32.IfcClothoid = IfcClothoid; + class IfcColumnType extends IfcBuiltElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 300633059; + } + } + IFC4X32.IfcColumnType = IfcColumnType; + class IfcComplexPropertyTemplate extends IfcPropertyTemplate { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, UsageName, TemplateType, HasPropertyTemplates) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.UsageName = UsageName; + this.TemplateType = TemplateType; + this.HasPropertyTemplates = HasPropertyTemplates; + this.type = 3875453745; + } + } + IFC4X32.IfcComplexPropertyTemplate = IfcComplexPropertyTemplate; + class IfcCompositeCurve extends IfcBoundedCurve { + constructor(expressID, Segments, SelfIntersect) { + super(expressID); + this.Segments = Segments; + this.SelfIntersect = SelfIntersect; + this.type = 3732776249; + } + } + IFC4X32.IfcCompositeCurve = IfcCompositeCurve; + class IfcCompositeCurveOnSurface extends IfcCompositeCurve { + constructor(expressID, Segments, SelfIntersect) { + super(expressID, Segments, SelfIntersect); + this.Segments = Segments; + this.SelfIntersect = SelfIntersect; + this.type = 15328376; + } + } + IFC4X32.IfcCompositeCurveOnSurface = IfcCompositeCurveOnSurface; + class IfcConic extends IfcCurve { + constructor(expressID, Position) { + super(expressID); + this.Position = Position; + this.type = 2510884976; + } + } + IFC4X32.IfcConic = IfcConic; + class IfcConstructionEquipmentResourceType extends IfcConstructionResourceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.ResourceType = ResourceType; + this.BaseCosts = BaseCosts; + this.BaseQuantity = BaseQuantity; + this.PredefinedType = PredefinedType; + this.type = 2185764099; + } + } + IFC4X32.IfcConstructionEquipmentResourceType = IfcConstructionEquipmentResourceType; + class IfcConstructionMaterialResourceType extends IfcConstructionResourceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.ResourceType = ResourceType; + this.BaseCosts = BaseCosts; + this.BaseQuantity = BaseQuantity; + this.PredefinedType = PredefinedType; + this.type = 4105962743; + } + } + IFC4X32.IfcConstructionMaterialResourceType = IfcConstructionMaterialResourceType; + class IfcConstructionProductResourceType extends IfcConstructionResourceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.ResourceType = ResourceType; + this.BaseCosts = BaseCosts; + this.BaseQuantity = BaseQuantity; + this.PredefinedType = PredefinedType; + this.type = 1525564444; + } + } + IFC4X32.IfcConstructionProductResourceType = IfcConstructionProductResourceType; + class IfcConstructionResource extends IfcResource { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.Usage = Usage; + this.BaseCosts = BaseCosts; + this.BaseQuantity = BaseQuantity; + this.type = 2559216714; + } + } + IFC4X32.IfcConstructionResource = IfcConstructionResource; + class IfcControl extends IfcObject { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.type = 3293443760; + } + } + IFC4X32.IfcControl = IfcControl; + class IfcCosineSpiral extends IfcSpiral { + constructor(expressID, Position, CosineTerm, ConstantTerm) { + super(expressID, Position); + this.Position = Position; + this.CosineTerm = CosineTerm; + this.ConstantTerm = ConstantTerm; + this.type = 2000195564; + } + } + IFC4X32.IfcCosineSpiral = IfcCosineSpiral; + class IfcCostItem extends IfcControl { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, CostValues, CostQuantities) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.PredefinedType = PredefinedType; + this.CostValues = CostValues; + this.CostQuantities = CostQuantities; + this.type = 3895139033; + } + } + IFC4X32.IfcCostItem = IfcCostItem; + class IfcCostSchedule extends IfcControl { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, SubmittedOn, UpdateDate) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.PredefinedType = PredefinedType; + this.Status = Status; + this.SubmittedOn = SubmittedOn; + this.UpdateDate = UpdateDate; + this.type = 1419761937; + } + } + IFC4X32.IfcCostSchedule = IfcCostSchedule; + class IfcCourseType extends IfcBuiltElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 4189326743; + } + } + IFC4X32.IfcCourseType = IfcCourseType; + class IfcCoveringType extends IfcBuiltElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1916426348; + } + } + IFC4X32.IfcCoveringType = IfcCoveringType; + class IfcCrewResource extends IfcConstructionResource { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.Usage = Usage; + this.BaseCosts = BaseCosts; + this.BaseQuantity = BaseQuantity; + this.PredefinedType = PredefinedType; + this.type = 3295246426; + } + } + IFC4X32.IfcCrewResource = IfcCrewResource; + class IfcCurtainWallType extends IfcBuiltElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1457835157; + } + } + IFC4X32.IfcCurtainWallType = IfcCurtainWallType; + class IfcCylindricalSurface extends IfcElementarySurface { + constructor(expressID, Position, Radius) { + super(expressID, Position); + this.Position = Position; + this.Radius = Radius; + this.type = 1213902940; + } + } + IFC4X32.IfcCylindricalSurface = IfcCylindricalSurface; + class IfcDeepFoundationType extends IfcBuiltElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 1306400036; + } + } + IFC4X32.IfcDeepFoundationType = IfcDeepFoundationType; + class IfcDirectrixDerivedReferenceSweptAreaSolid extends IfcFixedReferenceSweptAreaSolid { + constructor(expressID, SweptArea, Position, Directrix, StartParam, EndParam, FixedReference) { + super(expressID, SweptArea, Position, Directrix, StartParam, EndParam, FixedReference); + this.SweptArea = SweptArea; + this.Position = Position; + this.Directrix = Directrix; + this.StartParam = StartParam; + this.EndParam = EndParam; + this.FixedReference = FixedReference; + this.type = 4234616927; + } + } + IFC4X32.IfcDirectrixDerivedReferenceSweptAreaSolid = IfcDirectrixDerivedReferenceSweptAreaSolid; + class IfcDistributionElementType extends IfcElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 3256556792; + } + } + IFC4X32.IfcDistributionElementType = IfcDistributionElementType; + class IfcDistributionFlowElementType extends IfcDistributionElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 3849074793; + } + } + IFC4X32.IfcDistributionFlowElementType = IfcDistributionFlowElementType; + class IfcDoorLiningProperties extends IfcPreDefinedPropertySet { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, LiningDepth, LiningThickness, ThresholdDepth, ThresholdThickness, TransomThickness, TransomOffset, LiningOffset, ThresholdOffset, CasingThickness, CasingDepth, ShapeAspectStyle, LiningToPanelOffsetX, LiningToPanelOffsetY) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.LiningDepth = LiningDepth; + this.LiningThickness = LiningThickness; + this.ThresholdDepth = ThresholdDepth; + this.ThresholdThickness = ThresholdThickness; + this.TransomThickness = TransomThickness; + this.TransomOffset = TransomOffset; + this.LiningOffset = LiningOffset; + this.ThresholdOffset = ThresholdOffset; + this.CasingThickness = CasingThickness; + this.CasingDepth = CasingDepth; + this.ShapeAspectStyle = ShapeAspectStyle; + this.LiningToPanelOffsetX = LiningToPanelOffsetX; + this.LiningToPanelOffsetY = LiningToPanelOffsetY; + this.type = 2963535650; + } + } + IFC4X32.IfcDoorLiningProperties = IfcDoorLiningProperties; + class IfcDoorPanelProperties extends IfcPreDefinedPropertySet { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, PanelDepth, PanelOperation, PanelWidth, PanelPosition, ShapeAspectStyle) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.PanelDepth = PanelDepth; + this.PanelOperation = PanelOperation; + this.PanelWidth = PanelWidth; + this.PanelPosition = PanelPosition; + this.ShapeAspectStyle = ShapeAspectStyle; + this.type = 1714330368; + } + } + IFC4X32.IfcDoorPanelProperties = IfcDoorPanelProperties; + class IfcDoorType extends IfcBuiltElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, OperationType, ParameterTakesPrecedence, UserDefinedOperationType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.OperationType = OperationType; + this.ParameterTakesPrecedence = ParameterTakesPrecedence; + this.UserDefinedOperationType = UserDefinedOperationType; + this.type = 2323601079; + } + } + IFC4X32.IfcDoorType = IfcDoorType; + class IfcDraughtingPreDefinedColour extends IfcPreDefinedColour { + constructor(expressID, Name) { + super(expressID, Name); + this.Name = Name; + this.type = 445594917; + } + } + IFC4X32.IfcDraughtingPreDefinedColour = IfcDraughtingPreDefinedColour; + class IfcDraughtingPreDefinedCurveFont extends IfcPreDefinedCurveFont { + constructor(expressID, Name) { + super(expressID, Name); + this.Name = Name; + this.type = 4006246654; + } + } + IFC4X32.IfcDraughtingPreDefinedCurveFont = IfcDraughtingPreDefinedCurveFont; + class IfcElement extends IfcProduct { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 1758889154; + } + } + IFC4X32.IfcElement = IfcElement; + class IfcElementAssembly extends IfcElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, AssemblyPlace, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.AssemblyPlace = AssemblyPlace; + this.PredefinedType = PredefinedType; + this.type = 4123344466; + } + } + IFC4X32.IfcElementAssembly = IfcElementAssembly; + class IfcElementAssemblyType extends IfcElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2397081782; + } + } + IFC4X32.IfcElementAssemblyType = IfcElementAssemblyType; + class IfcElementComponent extends IfcElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 1623761950; + } + } + IFC4X32.IfcElementComponent = IfcElementComponent; + class IfcElementComponentType extends IfcElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 2590856083; + } + } + IFC4X32.IfcElementComponentType = IfcElementComponentType; + class IfcEllipse extends IfcConic { + constructor(expressID, Position, SemiAxis1, SemiAxis2) { + super(expressID, Position); + this.Position = Position; + this.SemiAxis1 = SemiAxis1; + this.SemiAxis2 = SemiAxis2; + this.type = 1704287377; + } + } + IFC4X32.IfcEllipse = IfcEllipse; + class IfcEnergyConversionDeviceType extends IfcDistributionFlowElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 2107101300; + } + } + IFC4X32.IfcEnergyConversionDeviceType = IfcEnergyConversionDeviceType; + class IfcEngineType extends IfcEnergyConversionDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 132023988; + } + } + IFC4X32.IfcEngineType = IfcEngineType; + class IfcEvaporativeCoolerType extends IfcEnergyConversionDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3174744832; + } + } + IFC4X32.IfcEvaporativeCoolerType = IfcEvaporativeCoolerType; + class IfcEvaporatorType extends IfcEnergyConversionDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3390157468; + } + } + IFC4X32.IfcEvaporatorType = IfcEvaporatorType; + class IfcEvent extends IfcProcess { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, PredefinedType, EventTriggerType, UserDefinedEventTriggerType, EventOccurenceTime) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.PredefinedType = PredefinedType; + this.EventTriggerType = EventTriggerType; + this.UserDefinedEventTriggerType = UserDefinedEventTriggerType; + this.EventOccurenceTime = EventOccurenceTime; + this.type = 4148101412; + } + } + IFC4X32.IfcEvent = IfcEvent; + class IfcExternalSpatialStructureElement extends IfcSpatialElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.LongName = LongName; + this.type = 2853485674; + } + } + IFC4X32.IfcExternalSpatialStructureElement = IfcExternalSpatialStructureElement; + class IfcFacetedBrep extends IfcManifoldSolidBrep { + constructor(expressID, Outer) { + super(expressID, Outer); + this.Outer = Outer; + this.type = 807026263; + } + } + IFC4X32.IfcFacetedBrep = IfcFacetedBrep; + class IfcFacetedBrepWithVoids extends IfcFacetedBrep { + constructor(expressID, Outer, Voids) { + super(expressID, Outer); + this.Outer = Outer; + this.Voids = Voids; + this.type = 3737207727; + } + } + IFC4X32.IfcFacetedBrepWithVoids = IfcFacetedBrepWithVoids; + class IfcFacility extends IfcSpatialStructureElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.LongName = LongName; + this.CompositionType = CompositionType; + this.type = 24185140; + } + } + IFC4X32.IfcFacility = IfcFacility; + class IfcFacilityPart extends IfcSpatialStructureElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.LongName = LongName; + this.CompositionType = CompositionType; + this.UsageType = UsageType; + this.type = 1310830890; + } + } + IFC4X32.IfcFacilityPart = IfcFacilityPart; + class IfcFacilityPartCommon extends IfcFacilityPart { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.LongName = LongName; + this.CompositionType = CompositionType; + this.UsageType = UsageType; + this.PredefinedType = PredefinedType; + this.type = 4228831410; + } + } + IFC4X32.IfcFacilityPartCommon = IfcFacilityPartCommon; + class IfcFastener extends IfcElementComponent { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 647756555; + } + } + IFC4X32.IfcFastener = IfcFastener; + class IfcFastenerType extends IfcElementComponentType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2489546625; + } + } + IFC4X32.IfcFastenerType = IfcFastenerType; + class IfcFeatureElement extends IfcElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 2827207264; + } + } + IFC4X32.IfcFeatureElement = IfcFeatureElement; + class IfcFeatureElementAddition extends IfcFeatureElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 2143335405; + } + } + IFC4X32.IfcFeatureElementAddition = IfcFeatureElementAddition; + class IfcFeatureElementSubtraction extends IfcFeatureElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 1287392070; + } + } + IFC4X32.IfcFeatureElementSubtraction = IfcFeatureElementSubtraction; + class IfcFlowControllerType extends IfcDistributionFlowElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 3907093117; + } + } + IFC4X32.IfcFlowControllerType = IfcFlowControllerType; + class IfcFlowFittingType extends IfcDistributionFlowElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 3198132628; + } + } + IFC4X32.IfcFlowFittingType = IfcFlowFittingType; + class IfcFlowMeterType extends IfcFlowControllerType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3815607619; + } + } + IFC4X32.IfcFlowMeterType = IfcFlowMeterType; + class IfcFlowMovingDeviceType extends IfcDistributionFlowElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 1482959167; + } + } + IFC4X32.IfcFlowMovingDeviceType = IfcFlowMovingDeviceType; + class IfcFlowSegmentType extends IfcDistributionFlowElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 1834744321; + } + } + IFC4X32.IfcFlowSegmentType = IfcFlowSegmentType; + class IfcFlowStorageDeviceType extends IfcDistributionFlowElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 1339347760; + } + } + IFC4X32.IfcFlowStorageDeviceType = IfcFlowStorageDeviceType; + class IfcFlowTerminalType extends IfcDistributionFlowElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 2297155007; + } + } + IFC4X32.IfcFlowTerminalType = IfcFlowTerminalType; + class IfcFlowTreatmentDeviceType extends IfcDistributionFlowElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 3009222698; + } + } + IFC4X32.IfcFlowTreatmentDeviceType = IfcFlowTreatmentDeviceType; + class IfcFootingType extends IfcBuiltElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1893162501; + } + } + IFC4X32.IfcFootingType = IfcFootingType; + class IfcFurnishingElement extends IfcElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 263784265; + } + } + IFC4X32.IfcFurnishingElement = IfcFurnishingElement; + class IfcFurniture extends IfcFurnishingElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1509553395; + } + } + IFC4X32.IfcFurniture = IfcFurniture; + class IfcGeographicElement extends IfcElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3493046030; + } + } + IFC4X32.IfcGeographicElement = IfcGeographicElement; + class IfcGeotechnicalElement extends IfcElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 4230923436; + } + } + IFC4X32.IfcGeotechnicalElement = IfcGeotechnicalElement; + class IfcGeotechnicalStratum extends IfcGeotechnicalElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1594536857; + } + } + IFC4X32.IfcGeotechnicalStratum = IfcGeotechnicalStratum; + class IfcGradientCurve extends IfcCompositeCurve { + constructor(expressID, Segments, SelfIntersect, BaseCurve, EndPoint) { + super(expressID, Segments, SelfIntersect); + this.Segments = Segments; + this.SelfIntersect = SelfIntersect; + this.BaseCurve = BaseCurve; + this.EndPoint = EndPoint; + this.type = 2898700619; + } + } + IFC4X32.IfcGradientCurve = IfcGradientCurve; + class IfcGroup extends IfcObject { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.type = 2706460486; + } + } + IFC4X32.IfcGroup = IfcGroup; + class IfcHeatExchangerType extends IfcEnergyConversionDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1251058090; + } + } + IFC4X32.IfcHeatExchangerType = IfcHeatExchangerType; + class IfcHumidifierType extends IfcEnergyConversionDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1806887404; + } + } + IFC4X32.IfcHumidifierType = IfcHumidifierType; + class IfcImpactProtectionDevice extends IfcElementComponent { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 2568555532; + } + } + IFC4X32.IfcImpactProtectionDevice = IfcImpactProtectionDevice; + class IfcImpactProtectionDeviceType extends IfcElementComponentType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3948183225; + } + } + IFC4X32.IfcImpactProtectionDeviceType = IfcImpactProtectionDeviceType; + class IfcIndexedPolyCurve extends IfcBoundedCurve { + constructor(expressID, Points, Segments, SelfIntersect) { + super(expressID); + this.Points = Points; + this.Segments = Segments; + this.SelfIntersect = SelfIntersect; + this.type = 2571569899; + } + } + IFC4X32.IfcIndexedPolyCurve = IfcIndexedPolyCurve; + class IfcInterceptorType extends IfcFlowTreatmentDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3946677679; + } + } + IFC4X32.IfcInterceptorType = IfcInterceptorType; + class IfcIntersectionCurve extends IfcSurfaceCurve { + constructor(expressID, Curve3D, AssociatedGeometry, MasterRepresentation) { + super(expressID, Curve3D, AssociatedGeometry, MasterRepresentation); + this.Curve3D = Curve3D; + this.AssociatedGeometry = AssociatedGeometry; + this.MasterRepresentation = MasterRepresentation; + this.type = 3113134337; + } + } + IFC4X32.IfcIntersectionCurve = IfcIntersectionCurve; + class IfcInventory extends IfcGroup { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, Jurisdiction, ResponsiblePersons, LastUpdateDate, CurrentValue, OriginalValue) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.PredefinedType = PredefinedType; + this.Jurisdiction = Jurisdiction; + this.ResponsiblePersons = ResponsiblePersons; + this.LastUpdateDate = LastUpdateDate; + this.CurrentValue = CurrentValue; + this.OriginalValue = OriginalValue; + this.type = 2391368822; + } + } + IFC4X32.IfcInventory = IfcInventory; + class IfcJunctionBoxType extends IfcFlowFittingType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 4288270099; + } + } + IFC4X32.IfcJunctionBoxType = IfcJunctionBoxType; + class IfcKerbType extends IfcBuiltElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, Mountable) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.Mountable = Mountable; + this.type = 679976338; + } + } + IFC4X32.IfcKerbType = IfcKerbType; + class IfcLaborResource extends IfcConstructionResource { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.Usage = Usage; + this.BaseCosts = BaseCosts; + this.BaseQuantity = BaseQuantity; + this.PredefinedType = PredefinedType; + this.type = 3827777499; + } + } + IFC4X32.IfcLaborResource = IfcLaborResource; + class IfcLampType extends IfcFlowTerminalType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1051575348; + } + } + IFC4X32.IfcLampType = IfcLampType; + class IfcLightFixtureType extends IfcFlowTerminalType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1161773419; + } + } + IFC4X32.IfcLightFixtureType = IfcLightFixtureType; + class IfcLinearElement extends IfcProduct { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.type = 2176059722; + } + } + IFC4X32.IfcLinearElement = IfcLinearElement; + class IfcLiquidTerminalType extends IfcFlowTerminalType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1770583370; + } + } + IFC4X32.IfcLiquidTerminalType = IfcLiquidTerminalType; + class IfcMarineFacility extends IfcFacility { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.LongName = LongName; + this.CompositionType = CompositionType; + this.PredefinedType = PredefinedType; + this.type = 525669439; + } + } + IFC4X32.IfcMarineFacility = IfcMarineFacility; + class IfcMarinePart extends IfcFacilityPart { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.LongName = LongName; + this.CompositionType = CompositionType; + this.UsageType = UsageType; + this.PredefinedType = PredefinedType; + this.type = 976884017; + } + } + IFC4X32.IfcMarinePart = IfcMarinePart; + class IfcMechanicalFastener extends IfcElementComponent { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, NominalDiameter, NominalLength, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.NominalDiameter = NominalDiameter; + this.NominalLength = NominalLength; + this.PredefinedType = PredefinedType; + this.type = 377706215; + } + } + IFC4X32.IfcMechanicalFastener = IfcMechanicalFastener; + class IfcMechanicalFastenerType extends IfcElementComponentType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, NominalDiameter, NominalLength) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.NominalDiameter = NominalDiameter; + this.NominalLength = NominalLength; + this.type = 2108223431; + } + } + IFC4X32.IfcMechanicalFastenerType = IfcMechanicalFastenerType; + class IfcMedicalDeviceType extends IfcFlowTerminalType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1114901282; + } + } + IFC4X32.IfcMedicalDeviceType = IfcMedicalDeviceType; + class IfcMemberType extends IfcBuiltElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3181161470; + } + } + IFC4X32.IfcMemberType = IfcMemberType; + class IfcMobileTelecommunicationsApplianceType extends IfcFlowTerminalType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1950438474; + } + } + IFC4X32.IfcMobileTelecommunicationsApplianceType = IfcMobileTelecommunicationsApplianceType; + class IfcMooringDeviceType extends IfcBuiltElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 710110818; + } + } + IFC4X32.IfcMooringDeviceType = IfcMooringDeviceType; + class IfcMotorConnectionType extends IfcEnergyConversionDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 977012517; + } + } + IFC4X32.IfcMotorConnectionType = IfcMotorConnectionType; + class IfcNavigationElementType extends IfcBuiltElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 506776471; + } + } + IFC4X32.IfcNavigationElementType = IfcNavigationElementType; + class IfcOccupant extends IfcActor { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.TheActor = TheActor; + this.PredefinedType = PredefinedType; + this.type = 4143007308; + } + } + IFC4X32.IfcOccupant = IfcOccupant; + class IfcOpeningElement extends IfcFeatureElementSubtraction { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3588315303; + } + } + IFC4X32.IfcOpeningElement = IfcOpeningElement; + class IfcOutletType extends IfcFlowTerminalType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2837617999; + } + } + IFC4X32.IfcOutletType = IfcOutletType; + class IfcPavementType extends IfcBuiltElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 514975943; + } + } + IFC4X32.IfcPavementType = IfcPavementType; + class IfcPerformanceHistory extends IfcControl { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LifeCyclePhase, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.LifeCyclePhase = LifeCyclePhase; + this.PredefinedType = PredefinedType; + this.type = 2382730787; + } + } + IFC4X32.IfcPerformanceHistory = IfcPerformanceHistory; + class IfcPermeableCoveringProperties extends IfcPreDefinedPropertySet { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, OperationType, PanelPosition, FrameDepth, FrameThickness, ShapeAspectStyle) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.OperationType = OperationType; + this.PanelPosition = PanelPosition; + this.FrameDepth = FrameDepth; + this.FrameThickness = FrameThickness; + this.ShapeAspectStyle = ShapeAspectStyle; + this.type = 3566463478; + } + } + IFC4X32.IfcPermeableCoveringProperties = IfcPermeableCoveringProperties; + class IfcPermit extends IfcControl { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, LongDescription) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.PredefinedType = PredefinedType; + this.Status = Status; + this.LongDescription = LongDescription; + this.type = 3327091369; + } + } + IFC4X32.IfcPermit = IfcPermit; + class IfcPileType extends IfcDeepFoundationType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1158309216; + } + } + IFC4X32.IfcPileType = IfcPileType; + class IfcPipeFittingType extends IfcFlowFittingType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 804291784; + } + } + IFC4X32.IfcPipeFittingType = IfcPipeFittingType; + class IfcPipeSegmentType extends IfcFlowSegmentType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 4231323485; + } + } + IFC4X32.IfcPipeSegmentType = IfcPipeSegmentType; + class IfcPlateType extends IfcBuiltElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 4017108033; + } + } + IFC4X32.IfcPlateType = IfcPlateType; + class IfcPolygonalFaceSet extends IfcTessellatedFaceSet { + constructor(expressID, Coordinates, Closed, Faces, PnIndex) { + super(expressID, Coordinates, Closed); + this.Coordinates = Coordinates; + this.Closed = Closed; + this.Faces = Faces; + this.PnIndex = PnIndex; + this.type = 2839578677; + } + } + IFC4X32.IfcPolygonalFaceSet = IfcPolygonalFaceSet; + class IfcPolyline extends IfcBoundedCurve { + constructor(expressID, Points) { + super(expressID); + this.Points = Points; + this.type = 3724593414; + } + } + IFC4X32.IfcPolyline = IfcPolyline; + class IfcPort extends IfcProduct { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.type = 3740093272; + } + } + IFC4X32.IfcPort = IfcPort; + class IfcPositioningElement extends IfcProduct { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.type = 1946335990; + } + } + IFC4X32.IfcPositioningElement = IfcPositioningElement; + class IfcProcedure extends IfcProcess { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.PredefinedType = PredefinedType; + this.type = 2744685151; + } + } + IFC4X32.IfcProcedure = IfcProcedure; + class IfcProjectOrder extends IfcControl { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, LongDescription) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.PredefinedType = PredefinedType; + this.Status = Status; + this.LongDescription = LongDescription; + this.type = 2904328755; + } + } + IFC4X32.IfcProjectOrder = IfcProjectOrder; + class IfcProjectionElement extends IfcFeatureElementAddition { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3651124850; + } + } + IFC4X32.IfcProjectionElement = IfcProjectionElement; + class IfcProtectiveDeviceType extends IfcFlowControllerType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1842657554; + } + } + IFC4X32.IfcProtectiveDeviceType = IfcProtectiveDeviceType; + class IfcPumpType extends IfcFlowMovingDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2250791053; + } + } + IFC4X32.IfcPumpType = IfcPumpType; + class IfcRailType extends IfcBuiltElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1763565496; + } + } + IFC4X32.IfcRailType = IfcRailType; + class IfcRailingType extends IfcBuiltElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2893384427; + } + } + IFC4X32.IfcRailingType = IfcRailingType; + class IfcRailway extends IfcFacility { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.LongName = LongName; + this.CompositionType = CompositionType; + this.PredefinedType = PredefinedType; + this.type = 3992365140; + } + } + IFC4X32.IfcRailway = IfcRailway; + class IfcRailwayPart extends IfcFacilityPart { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.LongName = LongName; + this.CompositionType = CompositionType; + this.UsageType = UsageType; + this.PredefinedType = PredefinedType; + this.type = 1891881377; + } + } + IFC4X32.IfcRailwayPart = IfcRailwayPart; + class IfcRampFlightType extends IfcBuiltElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2324767716; + } + } + IFC4X32.IfcRampFlightType = IfcRampFlightType; + class IfcRampType extends IfcBuiltElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1469900589; + } + } + IFC4X32.IfcRampType = IfcRampType; + class IfcRationalBSplineSurfaceWithKnots extends IfcBSplineSurfaceWithKnots { + constructor(expressID, UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect, UMultiplicities, VMultiplicities, UKnots, VKnots, KnotSpec, WeightsData) { + super(expressID, UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect, UMultiplicities, VMultiplicities, UKnots, VKnots, KnotSpec); + this.UDegree = UDegree; + this.VDegree = VDegree; + this.ControlPointsList = ControlPointsList; + this.SurfaceForm = SurfaceForm; + this.UClosed = UClosed; + this.VClosed = VClosed; + this.SelfIntersect = SelfIntersect; + this.UMultiplicities = UMultiplicities; + this.VMultiplicities = VMultiplicities; + this.UKnots = UKnots; + this.VKnots = VKnots; + this.KnotSpec = KnotSpec; + this.WeightsData = WeightsData; + this.type = 683857671; + } + } + IFC4X32.IfcRationalBSplineSurfaceWithKnots = IfcRationalBSplineSurfaceWithKnots; + class IfcReferent extends IfcPositioningElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.PredefinedType = PredefinedType; + this.type = 4021432810; + } + } + IFC4X32.IfcReferent = IfcReferent; + class IfcReinforcingElement extends IfcElementComponent { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.SteelGrade = SteelGrade; + this.type = 3027567501; + } + } + IFC4X32.IfcReinforcingElement = IfcReinforcingElement; + class IfcReinforcingElementType extends IfcElementComponentType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 964333572; + } + } + IFC4X32.IfcReinforcingElementType = IfcReinforcingElementType; + class IfcReinforcingMesh extends IfcReinforcingElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, MeshLength, MeshWidth, LongitudinalBarNominalDiameter, TransverseBarNominalDiameter, LongitudinalBarCrossSectionArea, TransverseBarCrossSectionArea, LongitudinalBarSpacing, TransverseBarSpacing, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.SteelGrade = SteelGrade; + this.MeshLength = MeshLength; + this.MeshWidth = MeshWidth; + this.LongitudinalBarNominalDiameter = LongitudinalBarNominalDiameter; + this.TransverseBarNominalDiameter = TransverseBarNominalDiameter; + this.LongitudinalBarCrossSectionArea = LongitudinalBarCrossSectionArea; + this.TransverseBarCrossSectionArea = TransverseBarCrossSectionArea; + this.LongitudinalBarSpacing = LongitudinalBarSpacing; + this.TransverseBarSpacing = TransverseBarSpacing; + this.PredefinedType = PredefinedType; + this.type = 2320036040; + } + } + IFC4X32.IfcReinforcingMesh = IfcReinforcingMesh; + class IfcReinforcingMeshType extends IfcReinforcingElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, MeshLength, MeshWidth, LongitudinalBarNominalDiameter, TransverseBarNominalDiameter, LongitudinalBarCrossSectionArea, TransverseBarCrossSectionArea, LongitudinalBarSpacing, TransverseBarSpacing, BendingShapeCode, BendingParameters) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.MeshLength = MeshLength; + this.MeshWidth = MeshWidth; + this.LongitudinalBarNominalDiameter = LongitudinalBarNominalDiameter; + this.TransverseBarNominalDiameter = TransverseBarNominalDiameter; + this.LongitudinalBarCrossSectionArea = LongitudinalBarCrossSectionArea; + this.TransverseBarCrossSectionArea = TransverseBarCrossSectionArea; + this.LongitudinalBarSpacing = LongitudinalBarSpacing; + this.TransverseBarSpacing = TransverseBarSpacing; + this.BendingShapeCode = BendingShapeCode; + this.BendingParameters = BendingParameters; + this.type = 2310774935; + } + } + IFC4X32.IfcReinforcingMeshType = IfcReinforcingMeshType; + class IfcRelAdheresToElement extends IfcRelDecomposes { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedSurfaceFeatures) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingElement = RelatingElement; + this.RelatedSurfaceFeatures = RelatedSurfaceFeatures; + this.type = 3818125796; + } + } + IFC4X32.IfcRelAdheresToElement = IfcRelAdheresToElement; + class IfcRelAggregates extends IfcRelDecomposes { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects) { + super(expressID, GlobalId, OwnerHistory, Name, Description); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.RelatingObject = RelatingObject; + this.RelatedObjects = RelatedObjects; + this.type = 160246688; + } + } + IFC4X32.IfcRelAggregates = IfcRelAggregates; + class IfcRoad extends IfcFacility { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.LongName = LongName; + this.CompositionType = CompositionType; + this.PredefinedType = PredefinedType; + this.type = 146592293; + } + } + IFC4X32.IfcRoad = IfcRoad; + class IfcRoadPart extends IfcFacilityPart { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.LongName = LongName; + this.CompositionType = CompositionType; + this.UsageType = UsageType; + this.PredefinedType = PredefinedType; + this.type = 550521510; + } + } + IFC4X32.IfcRoadPart = IfcRoadPart; + class IfcRoofType extends IfcBuiltElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2781568857; + } + } + IFC4X32.IfcRoofType = IfcRoofType; + class IfcSanitaryTerminalType extends IfcFlowTerminalType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1768891740; + } + } + IFC4X32.IfcSanitaryTerminalType = IfcSanitaryTerminalType; + class IfcSeamCurve extends IfcSurfaceCurve { + constructor(expressID, Curve3D, AssociatedGeometry, MasterRepresentation) { + super(expressID, Curve3D, AssociatedGeometry, MasterRepresentation); + this.Curve3D = Curve3D; + this.AssociatedGeometry = AssociatedGeometry; + this.MasterRepresentation = MasterRepresentation; + this.type = 2157484638; + } + } + IFC4X32.IfcSeamCurve = IfcSeamCurve; + class IfcSecondOrderPolynomialSpiral extends IfcSpiral { + constructor(expressID, Position, QuadraticTerm, LinearTerm, ConstantTerm) { + super(expressID, Position); + this.Position = Position; + this.QuadraticTerm = QuadraticTerm; + this.LinearTerm = LinearTerm; + this.ConstantTerm = ConstantTerm; + this.type = 3649235739; + } + } + IFC4X32.IfcSecondOrderPolynomialSpiral = IfcSecondOrderPolynomialSpiral; + class IfcSegmentedReferenceCurve extends IfcCompositeCurve { + constructor(expressID, Segments, SelfIntersect, BaseCurve, EndPoint) { + super(expressID, Segments, SelfIntersect); + this.Segments = Segments; + this.SelfIntersect = SelfIntersect; + this.BaseCurve = BaseCurve; + this.EndPoint = EndPoint; + this.type = 544395925; + } + } + IFC4X32.IfcSegmentedReferenceCurve = IfcSegmentedReferenceCurve; + class IfcSeventhOrderPolynomialSpiral extends IfcSpiral { + constructor(expressID, Position, SepticTerm, SexticTerm, QuinticTerm, QuarticTerm, CubicTerm, QuadraticTerm, LinearTerm, ConstantTerm) { + super(expressID, Position); + this.Position = Position; + this.SepticTerm = SepticTerm; + this.SexticTerm = SexticTerm; + this.QuinticTerm = QuinticTerm; + this.QuarticTerm = QuarticTerm; + this.CubicTerm = CubicTerm; + this.QuadraticTerm = QuadraticTerm; + this.LinearTerm = LinearTerm; + this.ConstantTerm = ConstantTerm; + this.type = 1027922057; + } + } + IFC4X32.IfcSeventhOrderPolynomialSpiral = IfcSeventhOrderPolynomialSpiral; + class IfcShadingDeviceType extends IfcBuiltElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 4074543187; + } + } + IFC4X32.IfcShadingDeviceType = IfcShadingDeviceType; + class IfcSign extends IfcElementComponent { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 33720170; + } + } + IFC4X32.IfcSign = IfcSign; + class IfcSignType extends IfcElementComponentType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3599934289; + } + } + IFC4X32.IfcSignType = IfcSignType; + class IfcSignalType extends IfcFlowTerminalType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1894708472; + } + } + IFC4X32.IfcSignalType = IfcSignalType; + class IfcSineSpiral extends IfcSpiral { + constructor(expressID, Position, SineTerm, LinearTerm, ConstantTerm) { + super(expressID, Position); + this.Position = Position; + this.SineTerm = SineTerm; + this.LinearTerm = LinearTerm; + this.ConstantTerm = ConstantTerm; + this.type = 42703149; + } + } + IFC4X32.IfcSineSpiral = IfcSineSpiral; + class IfcSite extends IfcSpatialStructureElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, RefLatitude, RefLongitude, RefElevation, LandTitleNumber, SiteAddress) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.LongName = LongName; + this.CompositionType = CompositionType; + this.RefLatitude = RefLatitude; + this.RefLongitude = RefLongitude; + this.RefElevation = RefElevation; + this.LandTitleNumber = LandTitleNumber; + this.SiteAddress = SiteAddress; + this.type = 4097777520; + } + } + IFC4X32.IfcSite = IfcSite; + class IfcSlabType extends IfcBuiltElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2533589738; + } + } + IFC4X32.IfcSlabType = IfcSlabType; + class IfcSolarDeviceType extends IfcEnergyConversionDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1072016465; + } + } + IFC4X32.IfcSolarDeviceType = IfcSolarDeviceType; + class IfcSpace extends IfcSpatialStructureElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, PredefinedType, ElevationWithFlooring) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.LongName = LongName; + this.CompositionType = CompositionType; + this.PredefinedType = PredefinedType; + this.ElevationWithFlooring = ElevationWithFlooring; + this.type = 3856911033; + } + } + IFC4X32.IfcSpace = IfcSpace; + class IfcSpaceHeaterType extends IfcFlowTerminalType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1305183839; + } + } + IFC4X32.IfcSpaceHeaterType = IfcSpaceHeaterType; + class IfcSpaceType extends IfcSpatialStructureElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, LongName) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.LongName = LongName; + this.type = 3812236995; + } + } + IFC4X32.IfcSpaceType = IfcSpaceType; + class IfcStackTerminalType extends IfcFlowTerminalType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3112655638; + } + } + IFC4X32.IfcStackTerminalType = IfcStackTerminalType; + class IfcStairFlightType extends IfcBuiltElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1039846685; + } + } + IFC4X32.IfcStairFlightType = IfcStairFlightType; + class IfcStairType extends IfcBuiltElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 338393293; + } + } + IFC4X32.IfcStairType = IfcStairType; + class IfcStructuralAction extends IfcStructuralActivity { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedLoad = AppliedLoad; + this.GlobalOrLocal = GlobalOrLocal; + this.DestabilizingLoad = DestabilizingLoad; + this.type = 682877961; + } + } + IFC4X32.IfcStructuralAction = IfcStructuralAction; + class IfcStructuralConnection extends IfcStructuralItem { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedCondition = AppliedCondition; + this.type = 1179482911; + } + } + IFC4X32.IfcStructuralConnection = IfcStructuralConnection; + class IfcStructuralCurveAction extends IfcStructuralAction { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedLoad = AppliedLoad; + this.GlobalOrLocal = GlobalOrLocal; + this.DestabilizingLoad = DestabilizingLoad; + this.ProjectedOrTrue = ProjectedOrTrue; + this.PredefinedType = PredefinedType; + this.type = 1004757350; + } + } + IFC4X32.IfcStructuralCurveAction = IfcStructuralCurveAction; + class IfcStructuralCurveConnection extends IfcStructuralConnection { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition, AxisDirection) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedCondition = AppliedCondition; + this.AxisDirection = AxisDirection; + this.type = 4243806635; + } + } + IFC4X32.IfcStructuralCurveConnection = IfcStructuralCurveConnection; + class IfcStructuralCurveMember extends IfcStructuralMember { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Axis) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.PredefinedType = PredefinedType; + this.Axis = Axis; + this.type = 214636428; + } + } + IFC4X32.IfcStructuralCurveMember = IfcStructuralCurveMember; + class IfcStructuralCurveMemberVarying extends IfcStructuralCurveMember { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Axis) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Axis); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.PredefinedType = PredefinedType; + this.Axis = Axis; + this.type = 2445595289; + } + } + IFC4X32.IfcStructuralCurveMemberVarying = IfcStructuralCurveMemberVarying; + class IfcStructuralCurveReaction extends IfcStructuralReaction { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedLoad = AppliedLoad; + this.GlobalOrLocal = GlobalOrLocal; + this.PredefinedType = PredefinedType; + this.type = 2757150158; + } + } + IFC4X32.IfcStructuralCurveReaction = IfcStructuralCurveReaction; + class IfcStructuralLinearAction extends IfcStructuralCurveAction { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedLoad = AppliedLoad; + this.GlobalOrLocal = GlobalOrLocal; + this.DestabilizingLoad = DestabilizingLoad; + this.ProjectedOrTrue = ProjectedOrTrue; + this.PredefinedType = PredefinedType; + this.type = 1807405624; + } + } + IFC4X32.IfcStructuralLinearAction = IfcStructuralLinearAction; + class IfcStructuralLoadGroup extends IfcGroup { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, ActionType, ActionSource, Coefficient, Purpose) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.PredefinedType = PredefinedType; + this.ActionType = ActionType; + this.ActionSource = ActionSource; + this.Coefficient = Coefficient; + this.Purpose = Purpose; + this.type = 1252848954; + } + } + IFC4X32.IfcStructuralLoadGroup = IfcStructuralLoadGroup; + class IfcStructuralPointAction extends IfcStructuralAction { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedLoad = AppliedLoad; + this.GlobalOrLocal = GlobalOrLocal; + this.DestabilizingLoad = DestabilizingLoad; + this.type = 2082059205; + } + } + IFC4X32.IfcStructuralPointAction = IfcStructuralPointAction; + class IfcStructuralPointConnection extends IfcStructuralConnection { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition, ConditionCoordinateSystem) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedCondition = AppliedCondition; + this.ConditionCoordinateSystem = ConditionCoordinateSystem; + this.type = 734778138; + } + } + IFC4X32.IfcStructuralPointConnection = IfcStructuralPointConnection; + class IfcStructuralPointReaction extends IfcStructuralReaction { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedLoad = AppliedLoad; + this.GlobalOrLocal = GlobalOrLocal; + this.type = 1235345126; + } + } + IFC4X32.IfcStructuralPointReaction = IfcStructuralPointReaction; + class IfcStructuralResultGroup extends IfcGroup { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TheoryType, ResultForLoadGroup, IsLinear) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.TheoryType = TheoryType; + this.ResultForLoadGroup = ResultForLoadGroup; + this.IsLinear = IsLinear; + this.type = 2986769608; + } + } + IFC4X32.IfcStructuralResultGroup = IfcStructuralResultGroup; + class IfcStructuralSurfaceAction extends IfcStructuralAction { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedLoad = AppliedLoad; + this.GlobalOrLocal = GlobalOrLocal; + this.DestabilizingLoad = DestabilizingLoad; + this.ProjectedOrTrue = ProjectedOrTrue; + this.PredefinedType = PredefinedType; + this.type = 3657597509; + } + } + IFC4X32.IfcStructuralSurfaceAction = IfcStructuralSurfaceAction; + class IfcStructuralSurfaceConnection extends IfcStructuralConnection { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedCondition = AppliedCondition; + this.type = 1975003073; + } + } + IFC4X32.IfcStructuralSurfaceConnection = IfcStructuralSurfaceConnection; + class IfcSubContractResource extends IfcConstructionResource { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.Usage = Usage; + this.BaseCosts = BaseCosts; + this.BaseQuantity = BaseQuantity; + this.PredefinedType = PredefinedType; + this.type = 148013059; + } + } + IFC4X32.IfcSubContractResource = IfcSubContractResource; + class IfcSurfaceFeature extends IfcFeatureElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3101698114; + } + } + IFC4X32.IfcSurfaceFeature = IfcSurfaceFeature; + class IfcSwitchingDeviceType extends IfcFlowControllerType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2315554128; + } + } + IFC4X32.IfcSwitchingDeviceType = IfcSwitchingDeviceType; + class IfcSystem extends IfcGroup { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.type = 2254336722; + } + } + IFC4X32.IfcSystem = IfcSystem; + class IfcSystemFurnitureElement extends IfcFurnishingElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 413509423; + } + } + IFC4X32.IfcSystemFurnitureElement = IfcSystemFurnitureElement; + class IfcTankType extends IfcFlowStorageDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 5716631; + } + } + IFC4X32.IfcTankType = IfcTankType; + class IfcTendon extends IfcReinforcingElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, PredefinedType, NominalDiameter, CrossSectionArea, TensionForce, PreStress, FrictionCoefficient, AnchorageSlip, MinCurvatureRadius) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.SteelGrade = SteelGrade; + this.PredefinedType = PredefinedType; + this.NominalDiameter = NominalDiameter; + this.CrossSectionArea = CrossSectionArea; + this.TensionForce = TensionForce; + this.PreStress = PreStress; + this.FrictionCoefficient = FrictionCoefficient; + this.AnchorageSlip = AnchorageSlip; + this.MinCurvatureRadius = MinCurvatureRadius; + this.type = 3824725483; + } + } + IFC4X32.IfcTendon = IfcTendon; + class IfcTendonAnchor extends IfcReinforcingElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.SteelGrade = SteelGrade; + this.PredefinedType = PredefinedType; + this.type = 2347447852; + } + } + IFC4X32.IfcTendonAnchor = IfcTendonAnchor; + class IfcTendonAnchorType extends IfcReinforcingElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3081323446; + } + } + IFC4X32.IfcTendonAnchorType = IfcTendonAnchorType; + class IfcTendonConduit extends IfcReinforcingElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.SteelGrade = SteelGrade; + this.PredefinedType = PredefinedType; + this.type = 3663046924; + } + } + IFC4X32.IfcTendonConduit = IfcTendonConduit; + class IfcTendonConduitType extends IfcReinforcingElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2281632017; + } + } + IFC4X32.IfcTendonConduitType = IfcTendonConduitType; + class IfcTendonType extends IfcReinforcingElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, NominalDiameter, CrossSectionArea, SheathDiameter) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.NominalDiameter = NominalDiameter; + this.CrossSectionArea = CrossSectionArea; + this.SheathDiameter = SheathDiameter; + this.type = 2415094496; + } + } + IFC4X32.IfcTendonType = IfcTendonType; + class IfcTrackElementType extends IfcBuiltElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 618700268; + } + } + IFC4X32.IfcTrackElementType = IfcTrackElementType; + class IfcTransformerType extends IfcEnergyConversionDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1692211062; + } + } + IFC4X32.IfcTransformerType = IfcTransformerType; + class IfcTransportElementType extends IfcTransportationDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2097647324; + } + } + IFC4X32.IfcTransportElementType = IfcTransportElementType; + class IfcTransportationDevice extends IfcElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 1953115116; + } + } + IFC4X32.IfcTransportationDevice = IfcTransportationDevice; + class IfcTrimmedCurve extends IfcBoundedCurve { + constructor(expressID, BasisCurve, Trim1, Trim2, SenseAgreement, MasterRepresentation) { + super(expressID); + this.BasisCurve = BasisCurve; + this.Trim1 = Trim1; + this.Trim2 = Trim2; + this.SenseAgreement = SenseAgreement; + this.MasterRepresentation = MasterRepresentation; + this.type = 3593883385; + } + } + IFC4X32.IfcTrimmedCurve = IfcTrimmedCurve; + class IfcTubeBundleType extends IfcEnergyConversionDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1600972822; + } + } + IFC4X32.IfcTubeBundleType = IfcTubeBundleType; + class IfcUnitaryEquipmentType extends IfcEnergyConversionDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1911125066; + } + } + IFC4X32.IfcUnitaryEquipmentType = IfcUnitaryEquipmentType; + class IfcValveType extends IfcFlowControllerType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 728799441; + } + } + IFC4X32.IfcValveType = IfcValveType; + class IfcVehicle extends IfcTransportationDevice { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 840318589; + } + } + IFC4X32.IfcVehicle = IfcVehicle; + class IfcVibrationDamper extends IfcElementComponent { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1530820697; + } + } + IFC4X32.IfcVibrationDamper = IfcVibrationDamper; + class IfcVibrationDamperType extends IfcElementComponentType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3956297820; + } + } + IFC4X32.IfcVibrationDamperType = IfcVibrationDamperType; + class IfcVibrationIsolator extends IfcElementComponent { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 2391383451; + } + } + IFC4X32.IfcVibrationIsolator = IfcVibrationIsolator; + class IfcVibrationIsolatorType extends IfcElementComponentType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3313531582; + } + } + IFC4X32.IfcVibrationIsolatorType = IfcVibrationIsolatorType; + class IfcVirtualElement extends IfcElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 2769231204; + } + } + IFC4X32.IfcVirtualElement = IfcVirtualElement; + class IfcVoidingFeature extends IfcFeatureElementSubtraction { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 926996030; + } + } + IFC4X32.IfcVoidingFeature = IfcVoidingFeature; + class IfcWallType extends IfcBuiltElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1898987631; + } + } + IFC4X32.IfcWallType = IfcWallType; + class IfcWasteTerminalType extends IfcFlowTerminalType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1133259667; + } + } + IFC4X32.IfcWasteTerminalType = IfcWasteTerminalType; + class IfcWindowType extends IfcBuiltElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, PartitioningType, ParameterTakesPrecedence, UserDefinedPartitioningType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.PartitioningType = PartitioningType; + this.ParameterTakesPrecedence = ParameterTakesPrecedence; + this.UserDefinedPartitioningType = UserDefinedPartitioningType; + this.type = 4009809668; + } + } + IFC4X32.IfcWindowType = IfcWindowType; + class IfcWorkCalendar extends IfcControl { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, WorkingTimes, ExceptionTimes, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.WorkingTimes = WorkingTimes; + this.ExceptionTimes = ExceptionTimes; + this.PredefinedType = PredefinedType; + this.type = 4088093105; + } + } + IFC4X32.IfcWorkCalendar = IfcWorkCalendar; + class IfcWorkControl extends IfcControl { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.CreationDate = CreationDate; + this.Creators = Creators; + this.Purpose = Purpose; + this.Duration = Duration; + this.TotalFloat = TotalFloat; + this.StartTime = StartTime; + this.FinishTime = FinishTime; + this.type = 1028945134; + } + } + IFC4X32.IfcWorkControl = IfcWorkControl; + class IfcWorkPlan extends IfcWorkControl { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.CreationDate = CreationDate; + this.Creators = Creators; + this.Purpose = Purpose; + this.Duration = Duration; + this.TotalFloat = TotalFloat; + this.StartTime = StartTime; + this.FinishTime = FinishTime; + this.PredefinedType = PredefinedType; + this.type = 4218914973; + } + } + IFC4X32.IfcWorkPlan = IfcWorkPlan; + class IfcWorkSchedule extends IfcWorkControl { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.CreationDate = CreationDate; + this.Creators = Creators; + this.Purpose = Purpose; + this.Duration = Duration; + this.TotalFloat = TotalFloat; + this.StartTime = StartTime; + this.FinishTime = FinishTime; + this.PredefinedType = PredefinedType; + this.type = 3342526732; + } + } + IFC4X32.IfcWorkSchedule = IfcWorkSchedule; + class IfcZone extends IfcSystem { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.LongName = LongName; + this.type = 1033361043; + } + } + IFC4X32.IfcZone = IfcZone; + class IfcActionRequest extends IfcControl { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, LongDescription) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.PredefinedType = PredefinedType; + this.Status = Status; + this.LongDescription = LongDescription; + this.type = 3821786052; + } + } + IFC4X32.IfcActionRequest = IfcActionRequest; + class IfcAirTerminalBoxType extends IfcFlowControllerType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1411407467; + } + } + IFC4X32.IfcAirTerminalBoxType = IfcAirTerminalBoxType; + class IfcAirTerminalType extends IfcFlowTerminalType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3352864051; + } + } + IFC4X32.IfcAirTerminalType = IfcAirTerminalType; + class IfcAirToAirHeatRecoveryType extends IfcEnergyConversionDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1871374353; + } + } + IFC4X32.IfcAirToAirHeatRecoveryType = IfcAirToAirHeatRecoveryType; + class IfcAlignmentCant extends IfcLinearElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, RailHeadDistance) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.RailHeadDistance = RailHeadDistance; + this.type = 4266260250; + } + } + IFC4X32.IfcAlignmentCant = IfcAlignmentCant; + class IfcAlignmentHorizontal extends IfcLinearElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.type = 1545765605; + } + } + IFC4X32.IfcAlignmentHorizontal = IfcAlignmentHorizontal; + class IfcAlignmentSegment extends IfcLinearElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, DesignParameters) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.DesignParameters = DesignParameters; + this.type = 317615605; + } + } + IFC4X32.IfcAlignmentSegment = IfcAlignmentSegment; + class IfcAlignmentVertical extends IfcLinearElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.type = 1662888072; + } + } + IFC4X32.IfcAlignmentVertical = IfcAlignmentVertical; + class IfcAsset extends IfcGroup { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, OriginalValue, CurrentValue, TotalReplacementCost, Owner, User, ResponsiblePerson, IncorporationDate, DepreciatedValue) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.OriginalValue = OriginalValue; + this.CurrentValue = CurrentValue; + this.TotalReplacementCost = TotalReplacementCost; + this.Owner = Owner; + this.User = User; + this.ResponsiblePerson = ResponsiblePerson; + this.IncorporationDate = IncorporationDate; + this.DepreciatedValue = DepreciatedValue; + this.type = 3460190687; + } + } + IFC4X32.IfcAsset = IfcAsset; + class IfcAudioVisualApplianceType extends IfcFlowTerminalType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1532957894; + } + } + IFC4X32.IfcAudioVisualApplianceType = IfcAudioVisualApplianceType; + class IfcBSplineCurve extends IfcBoundedCurve { + constructor(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect) { + super(expressID); + this.Degree = Degree; + this.ControlPointsList = ControlPointsList; + this.CurveForm = CurveForm; + this.ClosedCurve = ClosedCurve; + this.SelfIntersect = SelfIntersect; + this.type = 1967976161; + } + } + IFC4X32.IfcBSplineCurve = IfcBSplineCurve; + class IfcBSplineCurveWithKnots extends IfcBSplineCurve { + constructor(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect, KnotMultiplicities, Knots, KnotSpec) { + super(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect); + this.Degree = Degree; + this.ControlPointsList = ControlPointsList; + this.CurveForm = CurveForm; + this.ClosedCurve = ClosedCurve; + this.SelfIntersect = SelfIntersect; + this.KnotMultiplicities = KnotMultiplicities; + this.Knots = Knots; + this.KnotSpec = KnotSpec; + this.type = 2461110595; + } + } + IFC4X32.IfcBSplineCurveWithKnots = IfcBSplineCurveWithKnots; + class IfcBeamType extends IfcBuiltElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 819618141; + } + } + IFC4X32.IfcBeamType = IfcBeamType; + class IfcBearingType extends IfcBuiltElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3649138523; + } + } + IFC4X32.IfcBearingType = IfcBearingType; + class IfcBoilerType extends IfcEnergyConversionDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 231477066; + } + } + IFC4X32.IfcBoilerType = IfcBoilerType; + class IfcBoundaryCurve extends IfcCompositeCurveOnSurface { + constructor(expressID, Segments, SelfIntersect) { + super(expressID, Segments, SelfIntersect); + this.Segments = Segments; + this.SelfIntersect = SelfIntersect; + this.type = 1136057603; + } + } + IFC4X32.IfcBoundaryCurve = IfcBoundaryCurve; + class IfcBridge extends IfcFacility { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.LongName = LongName; + this.CompositionType = CompositionType; + this.PredefinedType = PredefinedType; + this.type = 644574406; + } + } + IFC4X32.IfcBridge = IfcBridge; + class IfcBridgePart extends IfcFacilityPart { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.LongName = LongName; + this.CompositionType = CompositionType; + this.UsageType = UsageType; + this.PredefinedType = PredefinedType; + this.type = 963979645; + } + } + IFC4X32.IfcBridgePart = IfcBridgePart; + class IfcBuilding extends IfcFacility { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, ElevationOfRefHeight, ElevationOfTerrain, BuildingAddress) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.LongName = LongName; + this.CompositionType = CompositionType; + this.ElevationOfRefHeight = ElevationOfRefHeight; + this.ElevationOfTerrain = ElevationOfTerrain; + this.BuildingAddress = BuildingAddress; + this.type = 4031249490; + } + } + IFC4X32.IfcBuilding = IfcBuilding; + class IfcBuildingElementPart extends IfcElementComponent { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 2979338954; + } + } + IFC4X32.IfcBuildingElementPart = IfcBuildingElementPart; + class IfcBuildingElementPartType extends IfcElementComponentType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 39481116; + } + } + IFC4X32.IfcBuildingElementPartType = IfcBuildingElementPartType; + class IfcBuildingElementProxyType extends IfcBuiltElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1909888760; + } + } + IFC4X32.IfcBuildingElementProxyType = IfcBuildingElementProxyType; + class IfcBuildingSystem extends IfcSystem { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, LongName) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.PredefinedType = PredefinedType; + this.LongName = LongName; + this.type = 1177604601; + } + } + IFC4X32.IfcBuildingSystem = IfcBuildingSystem; + class IfcBuiltElement extends IfcElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 1876633798; + } + } + IFC4X32.IfcBuiltElement = IfcBuiltElement; + class IfcBuiltSystem extends IfcSystem { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, LongName) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.PredefinedType = PredefinedType; + this.LongName = LongName; + this.type = 3862327254; + } + } + IFC4X32.IfcBuiltSystem = IfcBuiltSystem; + class IfcBurnerType extends IfcEnergyConversionDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2188180465; + } + } + IFC4X32.IfcBurnerType = IfcBurnerType; + class IfcCableCarrierFittingType extends IfcFlowFittingType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 395041908; + } + } + IFC4X32.IfcCableCarrierFittingType = IfcCableCarrierFittingType; + class IfcCableCarrierSegmentType extends IfcFlowSegmentType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3293546465; + } + } + IFC4X32.IfcCableCarrierSegmentType = IfcCableCarrierSegmentType; + class IfcCableFittingType extends IfcFlowFittingType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2674252688; + } + } + IFC4X32.IfcCableFittingType = IfcCableFittingType; + class IfcCableSegmentType extends IfcFlowSegmentType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1285652485; + } + } + IFC4X32.IfcCableSegmentType = IfcCableSegmentType; + class IfcCaissonFoundationType extends IfcDeepFoundationType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3203706013; + } + } + IFC4X32.IfcCaissonFoundationType = IfcCaissonFoundationType; + class IfcChillerType extends IfcEnergyConversionDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2951183804; + } + } + IFC4X32.IfcChillerType = IfcChillerType; + class IfcChimney extends IfcBuiltElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3296154744; + } + } + IFC4X32.IfcChimney = IfcChimney; + class IfcCircle extends IfcConic { + constructor(expressID, Position, Radius) { + super(expressID, Position); + this.Position = Position; + this.Radius = Radius; + this.type = 2611217952; + } + } + IFC4X32.IfcCircle = IfcCircle; + class IfcCivilElement extends IfcElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 1677625105; + } + } + IFC4X32.IfcCivilElement = IfcCivilElement; + class IfcCoilType extends IfcEnergyConversionDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2301859152; + } + } + IFC4X32.IfcCoilType = IfcCoilType; + class IfcColumn extends IfcBuiltElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 843113511; + } + } + IFC4X32.IfcColumn = IfcColumn; + class IfcCommunicationsApplianceType extends IfcFlowTerminalType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 400855858; + } + } + IFC4X32.IfcCommunicationsApplianceType = IfcCommunicationsApplianceType; + class IfcCompressorType extends IfcFlowMovingDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3850581409; + } + } + IFC4X32.IfcCompressorType = IfcCompressorType; + class IfcCondenserType extends IfcEnergyConversionDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2816379211; + } + } + IFC4X32.IfcCondenserType = IfcCondenserType; + class IfcConstructionEquipmentResource extends IfcConstructionResource { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.Usage = Usage; + this.BaseCosts = BaseCosts; + this.BaseQuantity = BaseQuantity; + this.PredefinedType = PredefinedType; + this.type = 3898045240; + } + } + IFC4X32.IfcConstructionEquipmentResource = IfcConstructionEquipmentResource; + class IfcConstructionMaterialResource extends IfcConstructionResource { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.Usage = Usage; + this.BaseCosts = BaseCosts; + this.BaseQuantity = BaseQuantity; + this.PredefinedType = PredefinedType; + this.type = 1060000209; + } + } + IFC4X32.IfcConstructionMaterialResource = IfcConstructionMaterialResource; + class IfcConstructionProductResource extends IfcConstructionResource { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.Identification = Identification; + this.LongDescription = LongDescription; + this.Usage = Usage; + this.BaseCosts = BaseCosts; + this.BaseQuantity = BaseQuantity; + this.PredefinedType = PredefinedType; + this.type = 488727124; + } + } + IFC4X32.IfcConstructionProductResource = IfcConstructionProductResource; + class IfcConveyorSegmentType extends IfcFlowSegmentType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2940368186; + } + } + IFC4X32.IfcConveyorSegmentType = IfcConveyorSegmentType; + class IfcCooledBeamType extends IfcEnergyConversionDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 335055490; + } + } + IFC4X32.IfcCooledBeamType = IfcCooledBeamType; + class IfcCoolingTowerType extends IfcEnergyConversionDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2954562838; + } + } + IFC4X32.IfcCoolingTowerType = IfcCoolingTowerType; + class IfcCourse extends IfcBuiltElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1502416096; + } + } + IFC4X32.IfcCourse = IfcCourse; + class IfcCovering extends IfcBuiltElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1973544240; + } + } + IFC4X32.IfcCovering = IfcCovering; + class IfcCurtainWall extends IfcBuiltElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3495092785; + } + } + IFC4X32.IfcCurtainWall = IfcCurtainWall; + class IfcDamperType extends IfcFlowControllerType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3961806047; + } + } + IFC4X32.IfcDamperType = IfcDamperType; + class IfcDeepFoundation extends IfcBuiltElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 3426335179; + } + } + IFC4X32.IfcDeepFoundation = IfcDeepFoundation; + class IfcDiscreteAccessory extends IfcElementComponent { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1335981549; + } + } + IFC4X32.IfcDiscreteAccessory = IfcDiscreteAccessory; + class IfcDiscreteAccessoryType extends IfcElementComponentType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2635815018; + } + } + IFC4X32.IfcDiscreteAccessoryType = IfcDiscreteAccessoryType; + class IfcDistributionBoardType extends IfcFlowControllerType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 479945903; + } + } + IFC4X32.IfcDistributionBoardType = IfcDistributionBoardType; + class IfcDistributionChamberElementType extends IfcDistributionFlowElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1599208980; + } + } + IFC4X32.IfcDistributionChamberElementType = IfcDistributionChamberElementType; + class IfcDistributionControlElementType extends IfcDistributionElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.type = 2063403501; + } + } + IFC4X32.IfcDistributionControlElementType = IfcDistributionControlElementType; + class IfcDistributionElement extends IfcElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 1945004755; + } + } + IFC4X32.IfcDistributionElement = IfcDistributionElement; + class IfcDistributionFlowElement extends IfcDistributionElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 3040386961; + } + } + IFC4X32.IfcDistributionFlowElement = IfcDistributionFlowElement; + class IfcDistributionPort extends IfcPort { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, FlowDirection, PredefinedType, SystemType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.FlowDirection = FlowDirection; + this.PredefinedType = PredefinedType; + this.SystemType = SystemType; + this.type = 3041715199; + } + } + IFC4X32.IfcDistributionPort = IfcDistributionPort; + class IfcDistributionSystem extends IfcSystem { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.LongName = LongName; + this.PredefinedType = PredefinedType; + this.type = 3205830791; + } + } + IFC4X32.IfcDistributionSystem = IfcDistributionSystem; + class IfcDoor extends IfcBuiltElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, OperationType, UserDefinedOperationType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.OverallHeight = OverallHeight; + this.OverallWidth = OverallWidth; + this.PredefinedType = PredefinedType; + this.OperationType = OperationType; + this.UserDefinedOperationType = UserDefinedOperationType; + this.type = 395920057; + } + } + IFC4X32.IfcDoor = IfcDoor; + class IfcDuctFittingType extends IfcFlowFittingType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 869906466; + } + } + IFC4X32.IfcDuctFittingType = IfcDuctFittingType; + class IfcDuctSegmentType extends IfcFlowSegmentType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3760055223; + } + } + IFC4X32.IfcDuctSegmentType = IfcDuctSegmentType; + class IfcDuctSilencerType extends IfcFlowTreatmentDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2030761528; + } + } + IFC4X32.IfcDuctSilencerType = IfcDuctSilencerType; + class IfcEarthworksCut extends IfcFeatureElementSubtraction { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3071239417; + } + } + IFC4X32.IfcEarthworksCut = IfcEarthworksCut; + class IfcEarthworksElement extends IfcBuiltElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 1077100507; + } + } + IFC4X32.IfcEarthworksElement = IfcEarthworksElement; + class IfcEarthworksFill extends IfcEarthworksElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3376911765; + } + } + IFC4X32.IfcEarthworksFill = IfcEarthworksFill; + class IfcElectricApplianceType extends IfcFlowTerminalType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 663422040; + } + } + IFC4X32.IfcElectricApplianceType = IfcElectricApplianceType; + class IfcElectricDistributionBoardType extends IfcFlowControllerType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2417008758; + } + } + IFC4X32.IfcElectricDistributionBoardType = IfcElectricDistributionBoardType; + class IfcElectricFlowStorageDeviceType extends IfcFlowStorageDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3277789161; + } + } + IFC4X32.IfcElectricFlowStorageDeviceType = IfcElectricFlowStorageDeviceType; + class IfcElectricFlowTreatmentDeviceType extends IfcFlowTreatmentDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2142170206; + } + } + IFC4X32.IfcElectricFlowTreatmentDeviceType = IfcElectricFlowTreatmentDeviceType; + class IfcElectricGeneratorType extends IfcEnergyConversionDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1534661035; + } + } + IFC4X32.IfcElectricGeneratorType = IfcElectricGeneratorType; + class IfcElectricMotorType extends IfcEnergyConversionDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1217240411; + } + } + IFC4X32.IfcElectricMotorType = IfcElectricMotorType; + class IfcElectricTimeControlType extends IfcFlowControllerType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 712377611; + } + } + IFC4X32.IfcElectricTimeControlType = IfcElectricTimeControlType; + class IfcEnergyConversionDevice extends IfcDistributionFlowElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 1658829314; + } + } + IFC4X32.IfcEnergyConversionDevice = IfcEnergyConversionDevice; + class IfcEngine extends IfcEnergyConversionDevice { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 2814081492; + } + } + IFC4X32.IfcEngine = IfcEngine; + class IfcEvaporativeCooler extends IfcEnergyConversionDevice { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3747195512; + } + } + IFC4X32.IfcEvaporativeCooler = IfcEvaporativeCooler; + class IfcEvaporator extends IfcEnergyConversionDevice { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 484807127; + } + } + IFC4X32.IfcEvaporator = IfcEvaporator; + class IfcExternalSpatialElement extends IfcExternalSpatialStructureElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.LongName = LongName; + this.PredefinedType = PredefinedType; + this.type = 1209101575; + } + } + IFC4X32.IfcExternalSpatialElement = IfcExternalSpatialElement; + class IfcFanType extends IfcFlowMovingDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 346874300; + } + } + IFC4X32.IfcFanType = IfcFanType; + class IfcFilterType extends IfcFlowTreatmentDeviceType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1810631287; + } + } + IFC4X32.IfcFilterType = IfcFilterType; + class IfcFireSuppressionTerminalType extends IfcFlowTerminalType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 4222183408; + } + } + IFC4X32.IfcFireSuppressionTerminalType = IfcFireSuppressionTerminalType; + class IfcFlowController extends IfcDistributionFlowElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 2058353004; + } + } + IFC4X32.IfcFlowController = IfcFlowController; + class IfcFlowFitting extends IfcDistributionFlowElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 4278956645; + } + } + IFC4X32.IfcFlowFitting = IfcFlowFitting; + class IfcFlowInstrumentType extends IfcDistributionControlElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 4037862832; + } + } + IFC4X32.IfcFlowInstrumentType = IfcFlowInstrumentType; + class IfcFlowMeter extends IfcFlowController { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 2188021234; + } + } + IFC4X32.IfcFlowMeter = IfcFlowMeter; + class IfcFlowMovingDevice extends IfcDistributionFlowElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 3132237377; + } + } + IFC4X32.IfcFlowMovingDevice = IfcFlowMovingDevice; + class IfcFlowSegment extends IfcDistributionFlowElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 987401354; + } + } + IFC4X32.IfcFlowSegment = IfcFlowSegment; + class IfcFlowStorageDevice extends IfcDistributionFlowElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 707683696; + } + } + IFC4X32.IfcFlowStorageDevice = IfcFlowStorageDevice; + class IfcFlowTerminal extends IfcDistributionFlowElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 2223149337; + } + } + IFC4X32.IfcFlowTerminal = IfcFlowTerminal; + class IfcFlowTreatmentDevice extends IfcDistributionFlowElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 3508470533; + } + } + IFC4X32.IfcFlowTreatmentDevice = IfcFlowTreatmentDevice; + class IfcFooting extends IfcBuiltElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 900683007; + } + } + IFC4X32.IfcFooting = IfcFooting; + class IfcGeotechnicalAssembly extends IfcGeotechnicalElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 2713699986; + } + } + IFC4X32.IfcGeotechnicalAssembly = IfcGeotechnicalAssembly; + class IfcGrid extends IfcPositioningElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, UAxes, VAxes, WAxes, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.UAxes = UAxes; + this.VAxes = VAxes; + this.WAxes = WAxes; + this.PredefinedType = PredefinedType; + this.type = 3009204131; + } + } + IFC4X32.IfcGrid = IfcGrid; + class IfcHeatExchanger extends IfcEnergyConversionDevice { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3319311131; + } + } + IFC4X32.IfcHeatExchanger = IfcHeatExchanger; + class IfcHumidifier extends IfcEnergyConversionDevice { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 2068733104; + } + } + IFC4X32.IfcHumidifier = IfcHumidifier; + class IfcInterceptor extends IfcFlowTreatmentDevice { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 4175244083; + } + } + IFC4X32.IfcInterceptor = IfcInterceptor; + class IfcJunctionBox extends IfcFlowFitting { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 2176052936; + } + } + IFC4X32.IfcJunctionBox = IfcJunctionBox; + class IfcKerb extends IfcBuiltElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, Mountable) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.Mountable = Mountable; + this.type = 2696325953; + } + } + IFC4X32.IfcKerb = IfcKerb; + class IfcLamp extends IfcFlowTerminal { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 76236018; + } + } + IFC4X32.IfcLamp = IfcLamp; + class IfcLightFixture extends IfcFlowTerminal { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 629592764; + } + } + IFC4X32.IfcLightFixture = IfcLightFixture; + class IfcLinearPositioningElement extends IfcPositioningElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.type = 1154579445; + } + } + IFC4X32.IfcLinearPositioningElement = IfcLinearPositioningElement; + class IfcLiquidTerminal extends IfcFlowTerminal { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1638804497; } - - static peek() { - return (Handle$3.seed + 1).toString(16).toUpperCase(); + } + IFC4X32.IfcLiquidTerminal = IfcLiquidTerminal; + class IfcMedicalDevice extends IfcFlowTerminal { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1437502449; } -}; - -var Handle_1 = Handle$3; - -const Handle$2 = Handle_1; - -let DatabaseObject$n = class DatabaseObject { - constructor(subclass = null) { - this.handle = Handle$2.next(); - this.ownerObjectHandle = "0"; - this.subclassMarkers = []; - if (subclass) { - if (Array.isArray(subclass)) { - this.subclassMarkers.push(...subclass); - } else { - this.subclassMarkers.push(subclass); - } - } + } + IFC4X32.IfcMedicalDevice = IfcMedicalDevice; + class IfcMember extends IfcBuiltElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1073191201; } - - /** - * - * @param {TagsManager} manager - */ - tags(manager) { - manager.push(5, this.handle); - manager.push(330, this.ownerObjectHandle); - for (const s of this.subclassMarkers) { - manager.push(100, s); - } + } + IFC4X32.IfcMember = IfcMember; + class IfcMobileTelecommunicationsAppliance extends IfcFlowTerminal { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 2078563270; } -}; - -var DatabaseObject_1 = DatabaseObject$n; - -const DatabaseObject$m = DatabaseObject_1; - -let LineType$1 = class LineType extends DatabaseObject$m { - /** - * @param {string} name - * @param {string} description - * @param {array} elements - if elem > 0 it is a line, if elem < 0 it is gap, if elem == 0.0 it is a - */ - constructor(name, description, elements) { - super(["AcDbSymbolTableRecord", "AcDbLinetypeTableRecord"]); - this.name = name; - this.description = description; - this.elements = elements; + } + IFC4X32.IfcMobileTelecommunicationsAppliance = IfcMobileTelecommunicationsAppliance; + class IfcMooringDevice extends IfcBuiltElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 234836483; } - - tags(manager) { - // https://www.autodesk.com/techpubs/autocad/acadr14/dxf/ltype_al_u05_c.htm - manager.push(0, "LTYPE"); - super.tags(manager); - manager.push(2, this.name); - manager.push(3, this.description); - manager.push(70, 0); - manager.push(72, 65); - manager.push(73, this.elements.length); - manager.push(40, this.getElementsSum()); - - this.elements.forEach((element) => { - manager.push(49, element); - manager.push(74, 0); - }); + } + IFC4X32.IfcMooringDevice = IfcMooringDevice; + class IfcMotorConnection extends IfcEnergyConversionDevice { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 2474470126; } - - getElementsSum() { - return this.elements.reduce((sum, element) => { - return sum + Math.abs(element); - }, 0); + } + IFC4X32.IfcMotorConnection = IfcMotorConnection; + class IfcNavigationElement extends IfcBuiltElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 2182337498; } -}; - -var LineType_1 = LineType$1; - -const DatabaseObject$l = DatabaseObject_1; - -let Layer$1 = class Layer extends DatabaseObject$l { - constructor(name, colorNumber, lineTypeName = null) { - super(["AcDbSymbolTableRecord", "AcDbLayerTableRecord"]); - this.name = name; - this.colorNumber = colorNumber; - this.lineTypeName = lineTypeName; - this.shapes = []; - this.trueColor = -1; + } + IFC4X32.IfcNavigationElement = IfcNavigationElement; + class IfcOuterBoundaryCurve extends IfcBoundaryCurve { + constructor(expressID, Segments, SelfIntersect) { + super(expressID, Segments, SelfIntersect); + this.Segments = Segments; + this.SelfIntersect = SelfIntersect; + this.type = 144952367; } - - tags(manager) { - manager.push(0, "LAYER"); - super.tags(manager); - manager.push(2, this.name); - if (this.trueColor !== -1) manager.push(420, this.trueColor); - else manager.push(62, this.colorNumber); - - manager.push(70, 0); - if (this.lineTypeName) manager.push(6, this.lineTypeName); - - /* Hard-pointer handle to PlotStyleName object; seems mandatory, but any value seems OK, - * including 0. - */ - manager.push(390, 1); + } + IFC4X32.IfcOuterBoundaryCurve = IfcOuterBoundaryCurve; + class IfcOutlet extends IfcFlowTerminal { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3694346114; } - - setTrueColor(color) { - this.trueColor = color; + } + IFC4X32.IfcOutlet = IfcOutlet; + class IfcPavement extends IfcBuiltElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1383356374; } - - addShape(shape) { - this.shapes.push(shape); - shape.layer = this; + } + IFC4X32.IfcPavement = IfcPavement; + class IfcPile extends IfcDeepFoundation { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType, ConstructionType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.ConstructionType = ConstructionType; + this.type = 1687234759; } - - getShapes() { - return this.shapes; + } + IFC4X32.IfcPile = IfcPile; + class IfcPipeFitting extends IfcFlowFitting { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 310824031; } - - shapesTags(space, manager) { - for (const shape of this.shapes) { - shape.ownerObjectHandle = space.handle; - shape.tags(manager); - } + } + IFC4X32.IfcPipeFitting = IfcPipeFitting; + class IfcPipeSegment extends IfcFlowSegment { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3612865200; + } + } + IFC4X32.IfcPipeSegment = IfcPipeSegment; + class IfcPlate extends IfcBuiltElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3171933400; + } + } + IFC4X32.IfcPlate = IfcPlate; + class IfcProtectiveDevice extends IfcFlowController { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 738039164; + } + } + IFC4X32.IfcProtectiveDevice = IfcProtectiveDevice; + class IfcProtectiveDeviceTrippingUnitType extends IfcDistributionControlElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 655969474; + } + } + IFC4X32.IfcProtectiveDeviceTrippingUnitType = IfcProtectiveDeviceTrippingUnitType; + class IfcPump extends IfcFlowMovingDevice { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 90941305; + } + } + IFC4X32.IfcPump = IfcPump; + class IfcRail extends IfcBuiltElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3290496277; + } + } + IFC4X32.IfcRail = IfcRail; + class IfcRailing extends IfcBuiltElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 2262370178; + } + } + IFC4X32.IfcRailing = IfcRailing; + class IfcRamp extends IfcBuiltElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3024970846; + } + } + IFC4X32.IfcRamp = IfcRamp; + class IfcRampFlight extends IfcBuiltElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3283111854; + } + } + IFC4X32.IfcRampFlight = IfcRampFlight; + class IfcRationalBSplineCurveWithKnots extends IfcBSplineCurveWithKnots { + constructor(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect, KnotMultiplicities, Knots, KnotSpec, WeightsData) { + super(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect, KnotMultiplicities, Knots, KnotSpec); + this.Degree = Degree; + this.ControlPointsList = ControlPointsList; + this.CurveForm = CurveForm; + this.ClosedCurve = ClosedCurve; + this.SelfIntersect = SelfIntersect; + this.KnotMultiplicities = KnotMultiplicities; + this.Knots = Knots; + this.KnotSpec = KnotSpec; + this.WeightsData = WeightsData; + this.type = 1232101972; + } + } + IFC4X32.IfcRationalBSplineCurveWithKnots = IfcRationalBSplineCurveWithKnots; + class IfcReinforcedSoil extends IfcEarthworksElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3798194928; + } + } + IFC4X32.IfcReinforcedSoil = IfcReinforcedSoil; + class IfcReinforcingBar extends IfcReinforcingElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, NominalDiameter, CrossSectionArea, BarLength, PredefinedType, BarSurface) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.SteelGrade = SteelGrade; + this.NominalDiameter = NominalDiameter; + this.CrossSectionArea = CrossSectionArea; + this.BarLength = BarLength; + this.PredefinedType = PredefinedType; + this.BarSurface = BarSurface; + this.type = 979691226; + } + } + IFC4X32.IfcReinforcingBar = IfcReinforcingBar; + class IfcReinforcingBarType extends IfcReinforcingElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, NominalDiameter, CrossSectionArea, BarLength, BarSurface, BendingShapeCode, BendingParameters) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.NominalDiameter = NominalDiameter; + this.CrossSectionArea = CrossSectionArea; + this.BarLength = BarLength; + this.BarSurface = BarSurface; + this.BendingShapeCode = BendingShapeCode; + this.BendingParameters = BendingParameters; + this.type = 2572171363; + } + } + IFC4X32.IfcReinforcingBarType = IfcReinforcingBarType; + class IfcRoof extends IfcBuiltElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 2016517767; } -}; - -var Layer_1 = Layer$1; - -const DatabaseObject$k = DatabaseObject_1; - -let Table$2 = class Table extends DatabaseObject$k { - constructor(name) { - super("AcDbSymbolTable"); - this.name = name; - this.elements = []; + } + IFC4X32.IfcRoof = IfcRoof; + class IfcSanitaryTerminal extends IfcFlowTerminal { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3053780830; } - - add(element) { - element.ownerObjectHandle = this.handle; - this.elements.push(element); + } + IFC4X32.IfcSanitaryTerminal = IfcSanitaryTerminal; + class IfcSensorType extends IfcDistributionControlElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 1783015770; } - - tags(manager) { - manager.push(0, "TABLE"); - manager.push(2, this.name); - super.tags(manager); - manager.push(70, this.elements.length); - - this.elements.forEach((element) => { - element.tags(manager); - }); - - manager.push(0, "ENDTAB"); + } + IFC4X32.IfcSensorType = IfcSensorType; + class IfcShadingDevice extends IfcBuiltElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1329646415; } -}; - -var Table_1 = Table$2; - -const DatabaseObject$j = DatabaseObject_1; -const Table$1 = Table_1; - -let DimStyleTable$1 = class DimStyleTable extends Table$1 { - constructor(name) { - super(name); - this.subclassMarkers.push("AcDbDimStyleTable"); + } + IFC4X32.IfcShadingDevice = IfcShadingDevice; + class IfcSignal extends IfcFlowTerminal { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 991950508; } - - tags(manager) { - manager.push(0, "TABLE"); - manager.push(2, this.name); - DatabaseObject$j.prototype.tags.call(this, manager); - manager.push(70, this.elements.length); - /* DIMTOL */ - manager.push(71, 1); - - for (const e of this.elements) { - e.tags(manager); - } - - manager.push(0, "ENDTAB"); + } + IFC4X32.IfcSignal = IfcSignal; + class IfcSlab extends IfcBuiltElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1529196076; } -}; - -var DimStyleTable_1 = DimStyleTable$1; - -const DatabaseObject$i = DatabaseObject_1; - -let TextStyle$1 = class TextStyle extends DatabaseObject$i { - fontFileName = 'txt'; - constructor(name) { - super(["AcDbSymbolTableRecord", "AcDbTextStyleTableRecord"]); - this.name = name; + } + IFC4X32.IfcSlab = IfcSlab; + class IfcSolarDevice extends IfcEnergyConversionDevice { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3420628829; } - - tags(manager) { - manager.push(0, "STYLE"); - super.tags(manager); - manager.push(2, this.name); - /* No flags set */ - manager.push(70, 0); - manager.push(40, 0); - manager.push(41, 1); - manager.push(50, 0); - manager.push(71, 0); - manager.push(42, 1); - manager.push(3, this.fontFileName); - manager.push(4, ""); + } + IFC4X32.IfcSolarDevice = IfcSolarDevice; + class IfcSpaceHeater extends IfcFlowTerminal { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1999602285; } -}; - -var TextStyle_1 = TextStyle$1; - -const DatabaseObject$h = DatabaseObject_1; - -let Viewport$1 = class Viewport extends DatabaseObject$h { - constructor(name, height) { - super(["AcDbSymbolTableRecord", "AcDbViewportTableRecord"]); - this.name = name; - this.height = height; + } + IFC4X32.IfcSpaceHeater = IfcSpaceHeater; + class IfcStackTerminal extends IfcFlowTerminal { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1404847402; } - - tags(manager) { - manager.push(0, "VPORT"); - super.tags(manager); - manager.push(2, this.name); - manager.push(40, this.height); - /* No flags set */ - manager.push(70, 0); + } + IFC4X32.IfcStackTerminal = IfcStackTerminal; + class IfcStair extends IfcBuiltElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 331165859; } -}; - -var Viewport_1 = Viewport$1; - -const DatabaseObject$g = DatabaseObject_1; - -let AppId$1 = class AppId extends DatabaseObject$g { - constructor(name) { - super(["AcDbSymbolTableRecord", "AcDbRegAppTableRecord"]); - this.name = name; + } + IFC4X32.IfcStair = IfcStair; + class IfcStairFlight extends IfcBuiltElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, NumberOfRisers, NumberOfTreads, RiserHeight, TreadLength, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.NumberOfRisers = NumberOfRisers; + this.NumberOfTreads = NumberOfTreads; + this.RiserHeight = RiserHeight; + this.TreadLength = TreadLength; + this.PredefinedType = PredefinedType; + this.type = 4252922144; } - - tags(manager) { - manager.push(0, "APPID"); - super.tags(manager); - manager.push(2, this.name); - /* No flags set */ - manager.push(70, 0); + } + IFC4X32.IfcStairFlight = IfcStairFlight; + class IfcStructuralAnalysisModel extends IfcSystem { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, OrientationOf2DPlane, LoadedBy, HasResults, SharedPlacement) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.PredefinedType = PredefinedType; + this.OrientationOf2DPlane = OrientationOf2DPlane; + this.LoadedBy = LoadedBy; + this.HasResults = HasResults; + this.SharedPlacement = SharedPlacement; + this.type = 2515109513; } -}; - -var AppId_1 = AppId$1; - -const DatabaseObject$f = DatabaseObject_1; - -let Block$1 = class Block extends DatabaseObject$f { - constructor(name) { - super(["AcDbEntity", "AcDbBlockBegin"]); - this.name = name; - this.end = new DatabaseObject$f(["AcDbEntity", "AcDbBlockEnd"]); - this.recordHandle = null; + } + IFC4X32.IfcStructuralAnalysisModel = IfcStructuralAnalysisModel; + class IfcStructuralLoadCase extends IfcStructuralLoadGroup { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, ActionType, ActionSource, Coefficient, Purpose, SelfWeightCoefficients) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, ActionType, ActionSource, Coefficient, Purpose); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.PredefinedType = PredefinedType; + this.ActionType = ActionType; + this.ActionSource = ActionSource; + this.Coefficient = Coefficient; + this.Purpose = Purpose; + this.SelfWeightCoefficients = SelfWeightCoefficients; + this.type = 385403989; } - - tags(manager) { - manager.push(0, "BLOCK"); - super.tags(manager); - manager.push(2, this.name); - /* No flags set */ - manager.push(70, 0); - /* Block top left corner */ - manager.point(0, 0); - manager.push(3, this.name); - /* xref path name - nothing */ - manager.push(1, ""); - - //XXX dump content here - - manager.push(0, "ENDBLK"); - this.end.tags(manager); + } + IFC4X32.IfcStructuralLoadCase = IfcStructuralLoadCase; + class IfcStructuralPlanarAction extends IfcStructuralSurfaceAction { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.AppliedLoad = AppliedLoad; + this.GlobalOrLocal = GlobalOrLocal; + this.DestabilizingLoad = DestabilizingLoad; + this.ProjectedOrTrue = ProjectedOrTrue; + this.PredefinedType = PredefinedType; + this.type = 1621171031; } -}; - -var Block_1 = Block$1; - -const DatabaseObject$e = DatabaseObject_1; - -let BlockRecord$1 = class BlockRecord extends DatabaseObject$e { - constructor(name) { - super(["AcDbSymbolTableRecord", "AcDbBlockTableRecord"]); - this.name = name; + } + IFC4X32.IfcStructuralPlanarAction = IfcStructuralPlanarAction; + class IfcSwitchingDevice extends IfcFlowController { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1162798199; } - - tags(manager) { - manager.push(0, "BLOCK_RECORD"); - super.tags(manager); - manager.push(2, this.name); - /* No flags set */ - manager.push(70, 0); - /* Block explodability */ - manager.push(280, 0); - /* Block scalability */ - manager.push(281, 1); + } + IFC4X32.IfcSwitchingDevice = IfcSwitchingDevice; + class IfcTank extends IfcFlowStorageDevice { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 812556717; } -}; - -var BlockRecord_1 = BlockRecord$1; - -const DatabaseObject$d = DatabaseObject_1; - -let Dictionary$1 = class Dictionary extends DatabaseObject$d { - constructor() { - super("AcDbDictionary"); - this.children = {}; + } + IFC4X32.IfcTank = IfcTank; + class IfcTrackElement extends IfcBuiltElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3425753595; } - - /** - * - * @param {*} name - * @param {DatabaseObject} dictionary - */ - addChildDictionary(name, dictionary) { - dictionary.ownerObjectHandle = this.handle; - this.children[name] = dictionary; + } + IFC4X32.IfcTrackElement = IfcTrackElement; + class IfcTransformer extends IfcEnergyConversionDevice { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3825984169; } - - tags(manager) { - manager.push(0, "DICTIONARY"); - super.tags(manager); - /* Duplicate record cloning flag - keep existing */ - manager.push(281, 1); - - const entries = Object.entries(this.children); - for (const entry of entries) { - const [name, dic] = entry; - manager.push(3, name); - manager.push(350, dic.handle); - } - - const children = Object.values(this.children); - for (const c of children) { - c.tags(manager); - } + } + IFC4X32.IfcTransformer = IfcTransformer; + class IfcTransportElement extends IfcTransportationDevice { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1620046519; } -}; - -var Dictionary_1 = Dictionary$1; - -const DatabaseObject$c = DatabaseObject_1; - -let Line$1 = class Line extends DatabaseObject$c { - constructor(x1, y1, x2, y2) { - super(["AcDbEntity", "AcDbLine"]); - this.x1 = x1; - this.y1 = y1; - this.x2 = x2; - this.y2 = y2; + } + IFC4X32.IfcTransportElement = IfcTransportElement; + class IfcTubeBundle extends IfcEnergyConversionDevice { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3026737570; } - - tags(manager) { - //https://www.autodesk.com/techpubs/autocad/acadr14/dxf/line_al_u05_c.htm - manager.push(0, "LINE"); - super.tags(manager); - manager.push(8, this.layer.name); - manager.point(this.x1, this.y1); - - manager.push(11, this.x2); - manager.push(21, this.y2); - manager.push(31, 0); + } + IFC4X32.IfcTubeBundle = IfcTubeBundle; + class IfcUnitaryControlElementType extends IfcDistributionControlElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3179687236; } -}; - -var Line_1 = Line$1; - -const DatabaseObject$b = DatabaseObject_1; - -let Line3d$1 = class Line3d extends DatabaseObject$b { - constructor(x1, y1, z1, x2, y2, z2) { - super(["AcDbEntity", "AcDbLine"]); - this.x1 = x1; - this.y1 = y1; - this.z1 = z1; - this.x2 = x2; - this.y2 = y2; - this.z2 = z2; + } + IFC4X32.IfcUnitaryControlElementType = IfcUnitaryControlElementType; + class IfcUnitaryEquipment extends IfcEnergyConversionDevice { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 4292641817; } - - tags(manager) { - //https://www.autodesk.com/techpubs/autocad/acadr14/dxf/line_al_u05_c.htm - manager.push(0, "LINE"); - super.tags(manager); - manager.push(8, this.layer.name); - manager.point(this.x1, this.y1, this.z1); - - manager.push(11, this.x2); - manager.push(21, this.y2); - manager.push(31, this.z2); + } + IFC4X32.IfcUnitaryEquipment = IfcUnitaryEquipment; + class IfcValve extends IfcFlowController { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 4207607924; } -}; - -var Line3d_1 = Line3d$1; - -const DatabaseObject$a = DatabaseObject_1; - -let Arc$1 = class Arc extends DatabaseObject$a { - /** - * @param {number} x - Center x - * @param {number} y - Center y - * @param {number} r - radius - * @param {number} startAngle - degree - * @param {number} endAngle - degree - */ - constructor(x, y, r, startAngle, endAngle) { - super(["AcDbEntity", "AcDbCircle"]); - this.x = x; - this.y = y; - this.r = r; - this.startAngle = startAngle; - this.endAngle = endAngle; + } + IFC4X32.IfcValve = IfcValve; + class IfcWall extends IfcBuiltElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 2391406946; } - - tags(manager) { - //https://www.autodesk.com/techpubs/autocad/acadr14/dxf/line_al_u05_c.htm - manager.push(0, "ARC"); - super.tags(manager); - manager.push(8, this.layer.name); - manager.point(this.x, this.y); - manager.push(40, this.r); - manager.push(100, "AcDbArc"); - manager.push(50, this.startAngle); - manager.push(51, this.endAngle); + } + IFC4X32.IfcWall = IfcWall; + class IfcWallStandardCase extends IfcWall { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3512223829; } -}; - -var Arc_1 = Arc$1; - -const DatabaseObject$9 = DatabaseObject_1; - -let Circle$1 = class Circle extends DatabaseObject$9 { - /** - * @param {number} x - Center x - * @param {number} y - Center y - * @param {number} r - radius - */ - constructor(x, y, r) { - super(["AcDbEntity", "AcDbCircle"]); - this.x = x; - this.y = y; - this.r = r; + } + IFC4X32.IfcWallStandardCase = IfcWallStandardCase; + class IfcWasteTerminal extends IfcFlowTerminal { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 4237592921; } - - tags(manager) { - //https://www.autodesk.com/techpubs/autocad/acadr14/dxf/circle_al_u05_c.htm - manager.push(0, "CIRCLE"); - super.tags(manager); - manager.push(8, this.layer.name); - manager.point(this.x, this.y); - manager.push(40, this.r); + } + IFC4X32.IfcWasteTerminal = IfcWasteTerminal; + class IfcWindow extends IfcBuiltElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, PartitioningType, UserDefinedPartitioningType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.OverallHeight = OverallHeight; + this.OverallWidth = OverallWidth; + this.PredefinedType = PredefinedType; + this.PartitioningType = PartitioningType; + this.UserDefinedPartitioningType = UserDefinedPartitioningType; + this.type = 3304561284; } -}; - -var Circle_1 = Circle$1; - -const DatabaseObject$8 = DatabaseObject_1; - -let Cylinder$1 = class Cylinder extends DatabaseObject$8 { - /** - * @param {number} x - Center x - * @param {number} y - Center y - * @param {number} z - Center z - * @param {number} r - radius - * @param {number} thickness - thickness - * @param {number} extrusionDirectionX - Extrusion Direction x - * @param {number} extrusionDirectionY - Extrusion Direction y - * @param {number} extrusionDirectionZ - Extrusion Direction z - */ - constructor( - x, - y, - z, - r, - thickness, - extrusionDirectionX, - extrusionDirectionY, - extrusionDirectionZ - ) { - super(["AcDbEntity", "AcDbCircle"]); - this.x = x; - this.y = y; - this.z = z; - this.r = r; - this.thickness = thickness; - (this.extrusionDirectionX = extrusionDirectionX), - (this.extrusionDirectionY = extrusionDirectionY), - (this.extrusionDirectionZ = extrusionDirectionZ); + } + IFC4X32.IfcWindow = IfcWindow; + class IfcActuatorType extends IfcDistributionControlElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 2874132201; } - - tags(manager) { - manager.push(0, "CIRCLE"); - super.tags(manager); - manager.push(8, this.layer.name); - manager.point(this.x, this.y, this.z); - manager.push(40, this.r); - manager.push(39, this.thickness); - manager.push(210, this.extrusionDirectionX); - manager.push(220, this.extrusionDirectionY); - manager.push(230, this.extrusionDirectionZ); + } + IFC4X32.IfcActuatorType = IfcActuatorType; + class IfcAirTerminal extends IfcFlowTerminal { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1634111441; } -}; - -var Cylinder_1 = Cylinder$1; - -const DatabaseObject$7 = DatabaseObject_1; - -const H_ALIGN_CODES = ["left", "center", "right"]; -const V_ALIGN_CODES = ["baseline", "bottom", "middle", "top"]; - -let Text$1 = class Text extends DatabaseObject$7 { - /** - * @param {number} x - x - * @param {number} y - y - * @param {number} height - Text height - * @param {number} rotation - Text rotation - * @param {string} value - the string itself - * @param {string} [horizontalAlignment="left"] left | center | right - * @param {string} [verticalAlignment="baseline"] baseline | bottom | middle | top - */ - constructor( - x, - y, - height, - rotation, - value, - horizontalAlignment = "left", - verticalAlignment = "baseline" - ) { - super(["AcDbEntity", "AcDbText"]); - this.x = x; - this.y = y; - this.height = height; - this.rotation = rotation; - this.value = value; - this.hAlign = horizontalAlignment; - this.vAlign = verticalAlignment; + } + IFC4X32.IfcAirTerminal = IfcAirTerminal; + class IfcAirTerminalBox extends IfcFlowController { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 177149247; } - - tags(manager) { - //https://www.autodesk.com/techpubs/autocad/acadr14/dxf/text_al_u05_c.htm - manager.push(0, "TEXT"); - super.tags(manager); - manager.push(8, this.layer.name); - manager.point(this.x, this.y); - manager.push(40, this.height); - manager.push(1, this.value); - manager.push(50, this.rotation); - - if ( - H_ALIGN_CODES.includes(this.hAlign, 1) || - V_ALIGN_CODES.includes(this.vAlign, 1) - ) { - manager.push(72, Math.max(H_ALIGN_CODES.indexOf(this.hAlign), 0)); - - manager.push(11, this.x); - manager.push(21, this.y); - manager.push(31, 0); - - /* AutoCAD needs this one more time, yes, exactly here. */ - manager.push(100, "AcDbText"); - manager.push(73, Math.max(V_ALIGN_CODES.indexOf(this.vAlign), 0)); - } else { - /* AutoCAD needs this one more time. */ - manager.push(100, "AcDbText"); - } + } + IFC4X32.IfcAirTerminalBox = IfcAirTerminalBox; + class IfcAirToAirHeatRecovery extends IfcEnergyConversionDevice { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 2056796094; } -}; - -var Text_1 = Text$1; - -const DatabaseObject$6 = DatabaseObject_1; - -let Polyline$1 = class Polyline extends DatabaseObject$6 { - /** - * @param {array} points - Array of points like [ [x1, y1], [x2, y2, bulge]... ] - * @param {boolean} closed - * @param {number} startWidth - * @param {number} endWidth - */ - constructor(points, closed = false, startWidth = 0, endWidth = 0) { - super(["AcDbEntity", "AcDbPolyline"]); - this.points = points; - this.closed = closed; - this.startWidth = startWidth; - this.endWidth = endWidth; + } + IFC4X32.IfcAirToAirHeatRecovery = IfcAirToAirHeatRecovery; + class IfcAlarmType extends IfcDistributionControlElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 3001207471; } - - tags(manager) { - manager.push(0, "LWPOLYLINE"); - super.tags(manager); - manager.push(8, this.layer.name); - manager.push(6, "ByLayer"); - manager.push(62, 256); - manager.push(370, -1); - manager.push(90, this.points.length); - manager.push(70, this.closed ? 1 : 0); - - this.points.forEach((point) => { - const [x, y, z] = point; - manager.push(10, x); - manager.push(20, y); - if (this.startWidth !== 0 || this.endWidth !== 0) { - manager.push(40, this.startWidth); - manager.push(41, this.endWidth); - } - if (z !== undefined) manager.push(42, z); - }); + } + IFC4X32.IfcAlarmType = IfcAlarmType; + class IfcAlignment extends IfcLinearPositioningElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.PredefinedType = PredefinedType; + this.type = 325726236; } -}; - -var Polyline_1 = Polyline$1; - -const DatabaseObject$5 = DatabaseObject_1; - -let Vertex$1 = class Vertex extends DatabaseObject$5 { - /** - * - * @param {number} x The X coordinate - * @param {number} y The Y coordinate - * @param {number} z The Z coordinate - */ - constructor(x, y, z) { - super(["AcDbEntity", "AcDbVertex", "AcDb3dPolylineVertex"]); - this.x = x; - this.y = y; - this.z = z; + } + IFC4X32.IfcAlignment = IfcAlignment; + class IfcAudioVisualAppliance extends IfcFlowTerminal { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 277319702; } - - tags(manager) { - manager.push(0, "VERTEX"); - super.tags(manager); - manager.push(8, this.layer.name); - manager.point(this.x, this.y, this.z); - manager.push(70, 32); + } + IFC4X32.IfcAudioVisualAppliance = IfcAudioVisualAppliance; + class IfcBeam extends IfcBuiltElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 753842376; + } + } + IFC4X32.IfcBeam = IfcBeam; + class IfcBearing extends IfcBuiltElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 4196446775; } -}; - -var Vertex_1 = Vertex$1; - -const DatabaseObject$4 = DatabaseObject_1; -const Handle$1 = Handle_1; -const Vertex = Vertex_1; - -let Polyline3d$1 = class Polyline3d extends DatabaseObject$4 { - /** - * @param {[number, number, number][]} points - Array of points like [ [x1, y1, z1], [x2, y2, z2]... ] - */ - constructor(points) { - super(["AcDbEntity", "AcDb3dPolyline"]); - this.verticies = points.map((point) => { - const [x, y, z] = point; - const vertex = new Vertex(x, y, z); - vertex.ownerObjectHandle = this.handle; - return vertex; - }); - this.seqendHandle = Handle$1.next(); + } + IFC4X32.IfcBearing = IfcBearing; + class IfcBoiler extends IfcEnergyConversionDevice { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 32344328; } - - tags(manager) { - manager.push(0, "POLYLINE"); - super.tags(manager); - manager.push(8, this.layer.name); - manager.push(66, 1); - manager.push(70, 0); - manager.point(0, 0); - - this.verticies.forEach((vertex) => { - vertex.layer = this.layer; - vertex.tags(manager); - }); - - manager.push(0, "SEQEND"); - manager.push(5, this.seqendHandle); - manager.push(100, "AcDbEntity"); - manager.push(8, this.layer.name); + } + IFC4X32.IfcBoiler = IfcBoiler; + class IfcBorehole extends IfcGeotechnicalAssembly { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 3314249567; } -}; - -var Polyline3d_1 = Polyline3d$1; - -const DatabaseObject$3 = DatabaseObject_1; - -let Face$1 = class Face extends DatabaseObject$3 { - constructor(x1, y1, z1, x2, y2, z2, x3, y3, z3, x4, y4, z4) { - super(["AcDbEntity", "AcDbFace"]); - this.x1 = x1; - this.y1 = y1; - this.z1 = z1; - this.x2 = x2; - this.y2 = y2; - this.z2 = z2; - this.x3 = x3; - this.y3 = y3; - this.z3 = z3; - this.x4 = x4; - this.y4 = y4; - this.z4 = z4; + } + IFC4X32.IfcBorehole = IfcBorehole; + class IfcBuildingElementProxy extends IfcBuiltElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1095909175; } - - tags(manager) { - //https://www.autodesk.com/techpubs/autocad/acadr14/dxf/3dface_al_u05_c.htm - manager.push(0, "3DFACE"); - super.tags(manager); - manager.push(8, this.layer.name); - manager.point(this.x1, this.y1, this.z1); - - manager.push(11, this.x2); - manager.push(21, this.y2); - manager.push(31, this.z2); - - manager.push(12, this.x3); - manager.push(22, this.y3); - manager.push(32, this.z3); - - manager.push(13, this.x4); - manager.push(23, this.y4); - manager.push(33, this.z4); + } + IFC4X32.IfcBuildingElementProxy = IfcBuildingElementProxy; + class IfcBurner extends IfcEnergyConversionDevice { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 2938176219; } -}; - -var Face_1 = Face$1; - -const DatabaseObject$2 = DatabaseObject_1; - -let Point$1 = class Point extends DatabaseObject$2 { - constructor(x, y) { - super(["AcDbEntity", "AcDbPoint"]); - this.x = x; - this.y = y; + } + IFC4X32.IfcBurner = IfcBurner; + class IfcCableCarrierFitting extends IfcFlowFitting { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 635142910; } - - tags(manager) { - //https://www.autodesk.com/techpubs/autocad/acadr14/dxf/point_al_u05_c.htm - manager.push(0, "POINT"); - super.tags(manager); - manager.push(8, this.layer.name); - manager.point(this.x, this.y); + } + IFC4X32.IfcCableCarrierFitting = IfcCableCarrierFitting; + class IfcCableCarrierSegment extends IfcFlowSegment { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3758799889; } -}; - -var Point_1 = Point$1; - -const DatabaseObject$1 = DatabaseObject_1; - -let Spline$1 = class Spline extends DatabaseObject$1 { - /** - * Creates a spline. See https://www.autodesk.com/techpubs/autocad/acad2000/dxf/spline_dxf_06.htm - * @param {[Array]} controlPoints - Array of control points like [ [x1, y1], [x2, y2]... ] - * @param {number} degree - Degree of spline: 2 for quadratic, 3 for cubic. Default is 3 - * @param {[number]} knots - Knot vector array. If null, will use a uniform knot vector. Default is null - * @param {[number]} weights - Control point weights. If provided, must be one weight for each control point. Default is null - * @param {[Array]} fitPoints - Array of fit points like [ [x1, y1], [x2, y2]... ] - */ - constructor( - controlPoints, - degree = 3, - knots = null, - weights = null, - fitPoints = [] - ) { - super(["AcDbEntity", "AcDbSpline"]); - if (controlPoints.length < degree + 1) { - throw new Error( - `For degree ${degree} spline, expected at least ${ - degree + 1 - } control points, but received only ${controlPoints.length}` - ); - } - - if (knots == null) { - // Examples: - // degree 2, 3 pts: 0 0 0 1 1 1 - // degree 2, 4 pts: 0 0 0 1 2 2 2 - // degree 2, 5 pts: 0 0 0 1 2 3 3 3 - // degree 3, 4 pts: 0 0 0 0 1 1 1 1 - // degree 3, 5 pts: 0 0 0 0 1 2 2 2 2 - - knots = []; - for (let i = 0; i < degree + 1; i++) { - knots.push(0); - } - for (let i = 1; i < controlPoints.length - degree; i++) { - knots.push(i); - } - for (let i = 0; i < degree + 1; i++) { - knots.push(controlPoints.length - degree); - } - } - - if (knots.length !== controlPoints.length + degree + 1) { - throw new Error( - `Invalid knot vector length. Expected ${ - controlPoints.length + degree + 1 - } but received ${knots.length}.` - ); - } - - this.controlPoints = controlPoints; - this.knots = knots; - this.fitPoints = fitPoints; - this.degree = degree; - this.weights = weights; - - const closed = 0; - const periodic = 0; - const rational = this.weights ? 1 : 0; - const planar = 1; - const linear = 0; - - this.type = - closed * 1 + periodic * 2 + rational * 4 + planar * 8 + linear * 16; - - // Not certain where the values of these flags came from so I'm going to leave them commented for now - // const closed = 0 - // const periodic = 0 - // const rational = 1 - // const planar = 1 - // const linear = 0 - // const splineType = 1024 * closed + 128 * periodic + 8 * rational + 4 * planar + 2 * linear + } + IFC4X32.IfcCableCarrierSegment = IfcCableCarrierSegment; + class IfcCableFitting extends IfcFlowFitting { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1051757585; } - - tags(manager) { - // https://www.autodesk.com/techpubs/autocad/acad2000/dxf/spline_dxf_06.htm - manager.push(0, "SPLINE"); - super.tags(manager); - manager.push(8, this.layer.name); - - manager.push(210, 0.0); - manager.push(220, 0.0); - manager.push(230, 1.0); - - manager.push(70, this.type); - manager.push(71, this.degree); - manager.push(72, this.knots.length); - manager.push(73, this.controlPoints.length); - manager.push(74, this.fitPoints.length); - - manager.push(42, 1e-7); - manager.push(43, 1e-7); - manager.push(44, 1e-10); - - this.knots.forEach((knot) => { - manager.push(40, knot); - }); - - if (this.weights) { - this.weights.forEach((weight) => { - manager.push(41, weight); - }); - } - - this.controlPoints.forEach((point) => { - manager.point(point[0], point[1]); - }); + } + IFC4X32.IfcCableFitting = IfcCableFitting; + class IfcCableSegment extends IfcFlowSegment { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 4217484030; } -}; - -var Spline_1 = Spline$1; - -const DatabaseObject = DatabaseObject_1; - -let Ellipse$1 = class Ellipse extends DatabaseObject { - /** - * Creates an ellipse. - * @param {number} x - Center x - * @param {number} y - Center y - * @param {number} majorAxisX - Endpoint x of major axis, relative to center - * @param {number} majorAxisY - Endpoint y of major axis, relative to center - * @param {number} axisRatio - Ratio of minor axis to major axis - * @param {number} startAngle - Start angle - * @param {number} endAngle - End angle - */ - constructor(x, y, majorAxisX, majorAxisY, axisRatio, startAngle, endAngle) { - super(["AcDbEntity", "AcDbEllipse"]); - this.x = x; - this.y = y; - this.majorAxisX = majorAxisX; - this.majorAxisY = majorAxisY; - this.axisRatio = axisRatio; - this.startAngle = startAngle; - this.endAngle = endAngle; + } + IFC4X32.IfcCableSegment = IfcCableSegment; + class IfcCaissonFoundation extends IfcDeepFoundation { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3999819293; } - - tags(manager) { - // https://www.autodesk.com/techpubs/autocad/acadr14/dxf/ellipse_al_u05_c.htm - manager.push(0, "ELLIPSE"); - super.tags(manager); - manager.push(8, this.layer.name); - manager.point(this.x, this.y); - manager.push(11, this.majorAxisX); - manager.push(21, this.majorAxisY); - manager.push(31, 0); - - manager.push(40, this.axisRatio); - manager.push(41, this.startAngle); - manager.push(42, this.endAngle); + } + IFC4X32.IfcCaissonFoundation = IfcCaissonFoundation; + class IfcChiller extends IfcEnergyConversionDevice { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3902619387; } -}; - -var Ellipse_1 = Ellipse$1; - -let TagsManager$1 = class TagsManager { - constructor() { - this.lines = []; + } + IFC4X32.IfcChiller = IfcChiller; + class IfcCoil extends IfcEnergyConversionDevice { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 639361253; } - - /** - * - * @param {number} x - * @param {number} y - * @param {number} z - */ - point(x, y, z = 0) { - this.push(10, x); - this.push(20, y); - this.push(30, z); + } + IFC4X32.IfcCoil = IfcCoil; + class IfcCommunicationsAppliance extends IfcFlowTerminal { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3221913625; } - - /** - * - * @param {string} name The name of the section - */ - start(name) { - this.push(0, "SECTION"); - this.push(2, name); + } + IFC4X32.IfcCommunicationsAppliance = IfcCommunicationsAppliance; + class IfcCompressor extends IfcFlowMovingDevice { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3571504051; } - - end() { - this.push(0, "ENDSEC"); + } + IFC4X32.IfcCompressor = IfcCompressor; + class IfcCondenser extends IfcEnergyConversionDevice { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 2272882330; } - - addHeaderVariable(name, tagsElements) { - this.push(9, `$${name}`); - tagsElements.forEach((tagElement) => { - this.push(tagElement[0], tagElement[1]); - }); + } + IFC4X32.IfcCondenser = IfcCondenser; + class IfcControllerType extends IfcDistributionControlElementType { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ApplicableOccurrence = ApplicableOccurrence; + this.HasPropertySets = HasPropertySets; + this.RepresentationMaps = RepresentationMaps; + this.Tag = Tag; + this.ElementType = ElementType; + this.PredefinedType = PredefinedType; + this.type = 578613899; } - - push(code, value) { - this.lines.push(code, value); + } + IFC4X32.IfcControllerType = IfcControllerType; + class IfcConveyorSegment extends IfcFlowSegment { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3460952963; } - - toDxfString() { - return this.lines.join("\n"); + } + IFC4X32.IfcConveyorSegment = IfcConveyorSegment; + class IfcCooledBeam extends IfcEnergyConversionDevice { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 4136498852; } -}; - -var TagsManager_1 = TagsManager$1; - -const LineType = LineType_1; -const Layer = Layer_1; -const Table = Table_1; -const DimStyleTable = DimStyleTable_1; -const TextStyle = TextStyle_1; -const Viewport = Viewport_1; -const AppId = AppId_1; -const Block = Block_1; -const BlockRecord = BlockRecord_1; -const Dictionary = Dictionary_1; -const Line = Line_1; -const Line3d = Line3d_1; -const Arc = Arc_1; -const Circle = Circle_1; -const Cylinder = Cylinder_1; -const Text = Text_1; -const Polyline = Polyline_1; -const Polyline3d = Polyline3d_1; -const Face = Face_1; -const Point = Point_1; -const Spline = Spline_1; -const Ellipse = Ellipse_1; -const TagsManager = TagsManager_1; -const Handle = Handle_1; - -class Drawing { - constructor() { - this.layers = {}; - this.activeLayer = null; - this.lineTypes = {}; - this.headers = {}; - this.tables = {}; - this.blocks = {}; - - this.dictionary = new Dictionary(); - - this.setUnits("Unitless"); - - for (const ltype of Drawing.LINE_TYPES) { - this.addLineType(ltype.name, ltype.description, ltype.elements); - } - - for (const l of Drawing.LAYERS) { - this.addLayer(l.name, l.colorNumber, l.lineTypeName); - } - - this.setActiveLayer("0"); - - // Must call this function - this.generateAutocadExtras(); + } + IFC4X32.IfcCooledBeam = IfcCooledBeam; + class IfcCoolingTower extends IfcEnergyConversionDevice { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3640358203; } - - /** - * @param {string} name - * @param {string} description - * @param {array} elements - if elem > 0 it is a line, if elem < 0 it is gap, if elem == 0.0 it is a - */ - addLineType(name, description, elements) { - this.lineTypes[name] = new LineType(name, description, elements); - return this; + } + IFC4X32.IfcCoolingTower = IfcCoolingTower; + class IfcDamper extends IfcFlowController { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 4074379575; } - - addLayer(name, colorNumber, lineTypeName) { - this.layers[name] = new Layer(name, colorNumber, lineTypeName); - return this; + } + IFC4X32.IfcDamper = IfcDamper; + class IfcDistributionBoard extends IfcFlowController { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3693000487; } - - setActiveLayer(name) { - this.activeLayer = this.layers[name]; - return this; + } + IFC4X32.IfcDistributionBoard = IfcDistributionBoard; + class IfcDistributionChamberElement extends IfcDistributionFlowElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1052013943; } - - addTable(name) { - const table = new Table(name); - this.tables[name] = table; - return table; + } + IFC4X32.IfcDistributionChamberElement = IfcDistributionChamberElement; + class IfcDistributionCircuit extends IfcDistributionSystem { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, PredefinedType); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.LongName = LongName; + this.PredefinedType = PredefinedType; + this.type = 562808652; } - - /** - * - * @param {string} name The name of the block. - * @returns {Block} - */ - addBlock(name) { - const block = new Block(name); - this.blocks[name] = block; - return block; + } + IFC4X32.IfcDistributionCircuit = IfcDistributionCircuit; + class IfcDistributionControlElement extends IfcDistributionElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 1062813311; } - - drawLine(x1, y1, x2, y2) { - this.activeLayer.addShape(new Line(x1, y1, x2, y2)); - return this; + } + IFC4X32.IfcDistributionControlElement = IfcDistributionControlElement; + class IfcDuctFitting extends IfcFlowFitting { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 342316401; } - - drawLine3d(x1, y1, z1, x2, y2, z2) { - this.activeLayer.addShape(new Line3d(x1, y1, z1, x2, y2, z2)); - return this; + } + IFC4X32.IfcDuctFitting = IfcDuctFitting; + class IfcDuctSegment extends IfcFlowSegment { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3518393246; } - - drawPoint(x, y) { - this.activeLayer.addShape(new Point(x, y)); - return this; + } + IFC4X32.IfcDuctSegment = IfcDuctSegment; + class IfcDuctSilencer extends IfcFlowTreatmentDevice { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1360408905; } - - drawRect(x1, y1, x2, y2, cornerLength, cornerBulge) { - const w = x2 - x1; - const h = y2 - y1; - cornerBulge = cornerBulge || 0; - let p = null; - if (!cornerLength) { - p = new Polyline( - [ - [x1, y1], - [x1, y1 + h], - [x1 + w, y1 + h], - [x1 + w, y1], - ], - true - ); - } else { - p = new Polyline( - [ - [x1 + w - cornerLength, y1, cornerBulge], // 1 - [x1 + w, y1 + cornerLength], // 2 - [x1 + w, y1 + h - cornerLength, cornerBulge], // 3 - [x1 + w - cornerLength, y1 + h], // 4 - [x1 + cornerLength, y1 + h, cornerBulge], // 5 - [x1, y1 + h - cornerLength], // 6 - [x1, y1 + cornerLength, cornerBulge], // 7 - [x1 + cornerLength, y1], // 8 - ], - true - ); - } - this.activeLayer.addShape(p); - return this; + } + IFC4X32.IfcDuctSilencer = IfcDuctSilencer; + class IfcElectricAppliance extends IfcFlowTerminal { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1904799276; } - - /** - * Draw a regular convex polygon as a polyline entity. - * - * @see [Regular polygon | Wikipedia](https://en.wikipedia.org/wiki/Regular_polygon) - * - * @param {number} x - The X coordinate of the center of the polygon. - * @param {number} y - The Y coordinate of the center of the polygon. - * @param {number} numberOfSides - The number of sides. - * @param {number} radius - The radius. - * @param {number} rotation - The rotation angle (in Degrees) of the polygon. By default 0. - * @param {boolean} circumscribed - If `true` is a polygon in which each side is a tangent to a circle. - * If `false` is a polygon in which all vertices lie on a circle. By default `false`. - * - * @returns {Drawing} - The current object of {@link Drawing}. - */ - drawPolygon( - x, - y, - numberOfSides, - radius, - rotation = 0, - circumscribed = false - ) { - const angle = (2 * Math.PI) / numberOfSides; - const vertices = []; - let d = radius; - const rotationRad = (rotation * Math.PI) / 180; - if (circumscribed) d = radius / Math.cos(Math.PI / numberOfSides); - for (let i = 0; i < numberOfSides; i++) { - vertices.push([ - x + d * Math.sin(rotationRad + i * angle), - y + d * Math.cos(rotationRad + i * angle), - ]); - } - this.activeLayer.addShape(new Polyline(vertices, true)); - return this; + } + IFC4X32.IfcElectricAppliance = IfcElectricAppliance; + class IfcElectricDistributionBoard extends IfcFlowController { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 862014818; } - - /** - * @param {number} x1 - Center x - * @param {number} y1 - Center y - * @param {number} r - radius - * @param {number} startAngle - degree - * @param {number} endAngle - degree - */ - drawArc(x1, y1, r, startAngle, endAngle) { - this.activeLayer.addShape(new Arc(x1, y1, r, startAngle, endAngle)); - return this; + } + IFC4X32.IfcElectricDistributionBoard = IfcElectricDistributionBoard; + class IfcElectricFlowStorageDevice extends IfcFlowStorageDevice { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3310460725; } - - /** - * @param {number} x1 - Center x - * @param {number} y1 - Center y - * @param {number} r - radius - */ - drawCircle(x1, y1, r) { - this.activeLayer.addShape(new Circle(x1, y1, r)); - return this; + } + IFC4X32.IfcElectricFlowStorageDevice = IfcElectricFlowStorageDevice; + class IfcElectricFlowTreatmentDevice extends IfcFlowTreatmentDevice { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 24726584; } - - /** - * @param {number} x1 - Center x - * @param {number} y1 - Center y - * @param {number} z1 - Center z - * @param {number} r - radius - * @param {number} thickness - thickness - * @param {number} extrusionDirectionX - Extrusion Direction x - * @param {number} extrusionDirectionY - Extrusion Direction y - * @param {number} extrusionDirectionZ - Extrusion Direction z - */ - drawCylinder( - x1, - y1, - z1, - r, - thickness, - extrusionDirectionX, - extrusionDirectionY, - extrusionDirectionZ - ) { - this.activeLayer.addShape( - new Cylinder( - x1, - y1, - z1, - r, - thickness, - extrusionDirectionX, - extrusionDirectionY, - extrusionDirectionZ - ) - ); - return this; + } + IFC4X32.IfcElectricFlowTreatmentDevice = IfcElectricFlowTreatmentDevice; + class IfcElectricGenerator extends IfcEnergyConversionDevice { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 264262732; } - - /** - * @param {number} x1 - x - * @param {number} y1 - y - * @param {number} height - Text height - * @param {number} rotation - Text rotation - * @param {string} value - the string itself - * @param {string} [horizontalAlignment="left"] left | center | right - * @param {string} [verticalAlignment="baseline"] baseline | bottom | middle | top - */ - drawText( - x1, - y1, - height, - rotation, - value, - horizontalAlignment = "left", - verticalAlignment = "baseline" - ) { - this.activeLayer.addShape( - new Text( - x1, - y1, - height, - rotation, - value, - horizontalAlignment, - verticalAlignment - ) - ); - return this; + } + IFC4X32.IfcElectricGenerator = IfcElectricGenerator; + class IfcElectricMotor extends IfcEnergyConversionDevice { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 402227799; } - - /** - * @param {[number, number][]} points - Array of points like [ [x1, y1], [x2, y2]... ] - * @param {boolean} closed - Closed polyline flag - * @param {number} startWidth - Default start width - * @param {number} endWidth - Default end width - */ - drawPolyline(points, closed = false, startWidth = 0, endWidth = 0) { - this.activeLayer.addShape( - new Polyline(points, closed, startWidth, endWidth) - ); - return this; + } + IFC4X32.IfcElectricMotor = IfcElectricMotor; + class IfcElectricTimeControl extends IfcFlowController { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1003880860; } - - /** - * @param {[number, number, number][]} points - Array of points like [ [x1, y1, z1], [x2, y2, z1]... ] - */ - drawPolyline3d(points) { - points.forEach((point) => { - if (point.length !== 3) { - throw "Require 3D coordinates"; - } - }); - this.activeLayer.addShape(new Polyline3d(points)); - return this; + } + IFC4X32.IfcElectricTimeControl = IfcElectricTimeControl; + class IfcFan extends IfcFlowMovingDevice { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3415622556; } - - /** - * - * @param {number} trueColor - Integer representing the true color, can be passed as an hexadecimal value of the form 0xRRGGBB - */ - setTrueColor(trueColor) { - this.activeLayer.setTrueColor(trueColor); - return this; + } + IFC4X32.IfcFan = IfcFan; + class IfcFilter extends IfcFlowTreatmentDevice { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 819412036; } - - /** - * Draw a spline. - * @param {[Array]} controlPoints - Array of control points like [ [x1, y1], [x2, y2]... ] - * @param {number} degree - Degree of spline: 2 for quadratic, 3 for cubic. Default is 3 - * @param {[number]} knots - Knot vector array. If null, will use a uniform knot vector. Default is null - * @param {[number]} weights - Control point weights. If provided, must be one weight for each control point. Default is null - * @param {[Array]} fitPoints - Array of fit points like [ [x1, y1], [x2, y2]... ] - */ - drawSpline( - controlPoints, - degree = 3, - knots = null, - weights = null, - fitPoints = [] - ) { - this.activeLayer.addShape( - new Spline(controlPoints, degree, knots, weights, fitPoints) - ); - return this; + } + IFC4X32.IfcFilter = IfcFilter; + class IfcFireSuppressionTerminal extends IfcFlowTerminal { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 1426591983; } - - /** - * Draw an ellipse. - * @param {number} x1 - Center x - * @param {number} y1 - Center y - * @param {number} majorAxisX - Endpoint x of major axis, relative to center - * @param {number} majorAxisY - Endpoint y of major axis, relative to center - * @param {number} axisRatio - Ratio of minor axis to major axis - * @param {number} startAngle - Start angle - * @param {number} endAngle - End angle - */ - drawEllipse( - x1, - y1, - majorAxisX, - majorAxisY, - axisRatio, - startAngle = 0, - endAngle = 2 * Math.PI - ) { - this.activeLayer.addShape( - new Ellipse( - x1, - y1, - majorAxisX, - majorAxisY, - axisRatio, - startAngle, - endAngle - ) - ); - return this; + } + IFC4X32.IfcFireSuppressionTerminal = IfcFireSuppressionTerminal; + class IfcFlowInstrument extends IfcDistributionControlElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 182646315; } - - /** - * @param {number} x1 - x - * @param {number} y1 - y - * @param {number} z1 - z - * @param {number} x2 - x - * @param {number} y2 - y - * @param {number} z2 - z - * @param {number} x3 - x - * @param {number} y3 - y - * @param {number} z3 - z - * @param {number} x4 - x - * @param {number} y4 - y - * @param {number} z4 - z - */ - drawFace(x1, y1, z1, x2, y2, z2, x3, y3, z3, x4, y4, z4) { - this.activeLayer.addShape( - new Face(x1, y1, z1, x2, y2, z2, x3, y3, z3, x4, y4, z4) - ); - return this; + } + IFC4X32.IfcFlowInstrument = IfcFlowInstrument; + class IfcGeomodel extends IfcGeotechnicalAssembly { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 2680139844; } - - _ltypeTable() { - const t = new Table("LTYPE"); - const ltypes = Object.values(this.lineTypes); - for (const lt of ltypes) t.add(lt); - return t; + } + IFC4X32.IfcGeomodel = IfcGeomodel; + class IfcGeoslice extends IfcGeotechnicalAssembly { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.type = 1971632696; } - - _layerTable(manager) { - const t = new Table("LAYER"); - const layers = Object.values(this.layers); - for (const l of layers) t.add(l); - return t; + } + IFC4X32.IfcGeoslice = IfcGeoslice; + class IfcProtectiveDeviceTrippingUnit extends IfcDistributionControlElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 2295281155; } - - /** - * @see https://www.autodesk.com/techpubs/autocad/acadr14/dxf/header_section_al_u05_c.htm - * @see https://www.autodesk.com/techpubs/autocad/acad2000/dxf/header_section_group_codes_dxf_02.htm - * - * @param {string} variable - * @param {array} values Array of "two elements arrays". [ [value1_GroupCode, value1_value], [value2_GroupCode, value2_value] ] - */ - header(variable, values) { - this.headers[variable] = values; - return this; + } + IFC4X32.IfcProtectiveDeviceTrippingUnit = IfcProtectiveDeviceTrippingUnit; + class IfcSensor extends IfcDistributionControlElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 4086658281; } - - /** - * - * @param {string} unit see Drawing.UNITS - */ - setUnits(unit) { - typeof Drawing.UNITS[unit] != "undefined" - ? Drawing.UNITS[unit] - : Drawing.UNITS["Unitless"]; - this.header("INSUNITS", [[70, Drawing.UNITS[unit]]]); - return this; + } + IFC4X32.IfcSensor = IfcSensor; + class IfcUnitaryControlElement extends IfcDistributionControlElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 630975310; } - - /** Generate additional DXF metadata which are required to successfully open resulted document - * in AutoDesk products. Call this method before serializing the drawing to get the most - * compatible result. - */ - generateAutocadExtras() { - if (!this.headers["ACADVER"]) { - /* AutoCAD 2007 version. */ - this.header("ACADVER", [[1, "AC1021"]]); - } - - if (!this.lineTypes["ByBlock"]) { - this.addLineType("ByBlock", "", []); - } - if (!this.lineTypes["ByLayer"]) { - this.addLineType("ByLayer", "", []); - } - - let vpTable = this.tables["VPORT"]; - if (!vpTable) { - vpTable = this.addTable("VPORT"); - } - let styleTable = this.tables["STYLE"]; - if (!styleTable) { - styleTable = this.addTable("STYLE"); - } - if (!this.tables["VIEW"]) { - this.addTable("VIEW"); - } - if (!this.tables["UCS"]) { - this.addTable("UCS"); - } - let appIdTable = this.tables["APPID"]; - if (!appIdTable) { - appIdTable = this.addTable("APPID"); - } - if (!this.tables["DIMSTYLE"]) { - const t = new DimStyleTable("DIMSTYLE"); - this.tables["DIMSTYLE"] = t; - } - - vpTable.add(new Viewport("*ACTIVE", 1000)); - - /* Non-default text alignment is not applied without this entry. */ - styleTable.add(new TextStyle("standard")); - - appIdTable.add(new AppId("ACAD")); - - this.modelSpace = this.addBlock("*Model_Space"); - this.addBlock("*Paper_Space"); - - const d = new Dictionary(); - this.dictionary.addChildDictionary("ACAD_GROUP", d); + } + IFC4X32.IfcUnitaryControlElement = IfcUnitaryControlElement; + class IfcActuator extends IfcDistributionControlElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 4288193352; } - - _tagsManager() { - const manager = new TagsManager(); - - // Setup - const blockRecordTable = new Table("BLOCK_RECORD"); - const blocks = Object.values(this.blocks); - for (const b of blocks) { - const r = new BlockRecord(b.name); - blockRecordTable.add(r); - } - const ltypeTable = this._ltypeTable(); - const layerTable = this._layerTable(); - - // Header section start. - manager.start("HEADER"); - manager.addHeaderVariable("HANDSEED", [[5, Handle.peek()]]); - const variables = Object.entries(this.headers); - for (const v of variables) { - const [name, values] = v; - manager.addHeaderVariable(name, values); - } - manager.end(); - // Header section end. - - // Classes section start. - manager.start("CLASSES"); - // Empty CLASSES section for compatibility - manager.end(); - // Classes section end. - - // Tables section start. - manager.start("TABLES"); - ltypeTable.tags(manager); - layerTable.tags(manager); - const tables = Object.values(this.tables); - for (const t of tables) { - t.tags(manager); - } - blockRecordTable.tags(manager); - manager.end(); - // Tables section end. - - // Blocks section start. - manager.start("BLOCKS"); - for (const b of blocks) { - b.tags(manager); - } - manager.end(); - // Blocks section end. - - // Entities section start. - manager.start("ENTITIES"); - const layers = Object.values(this.layers); - for (const l of layers) { - l.shapesTags(this.modelSpace, manager); - } - manager.end(); - // Entities section end. - - // Objects section start. - manager.start("OBJECTS"); - this.dictionary.tags(manager); - manager.end(); - // Objects section end. - - manager.push(0, "EOF"); - - return manager; + } + IFC4X32.IfcActuator = IfcActuator; + class IfcAlarm extends IfcDistributionControlElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 3087945054; } - - toDxfString() { - return this._tagsManager().toDxfString(); + } + IFC4X32.IfcAlarm = IfcAlarm; + class IfcController extends IfcDistributionControlElement { + constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { + super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); + this.GlobalId = GlobalId; + this.OwnerHistory = OwnerHistory; + this.Name = Name; + this.Description = Description; + this.ObjectType = ObjectType; + this.ObjectPlacement = ObjectPlacement; + this.Representation = Representation; + this.Tag = Tag; + this.PredefinedType = PredefinedType; + this.type = 25142252; } -} - -//AutoCAD Color Index (ACI) -//http://sub-atomic.com/~moses/acadcolors.html -Drawing.ACI = { - LAYER: 0, - RED: 1, - YELLOW: 2, - GREEN: 3, - CYAN: 4, - BLUE: 5, - MAGENTA: 6, - WHITE: 7, -}; - -Drawing.LINE_TYPES = [ - { name: "CONTINUOUS", description: "______", elements: [] }, - { name: "DASHED", description: "_ _ _ ", elements: [5.0, -5.0] }, - { name: "DOTTED", description: ". . . ", elements: [0.0, -5.0] }, -]; - -Drawing.LAYERS = [ - { name: "0", colorNumber: Drawing.ACI.WHITE, lineTypeName: "CONTINUOUS" }, -]; + } + IFC4X32.IfcController = IfcController; +})(IFC4X3 || (IFC4X3 = {})); -//https://www.autodesk.com/techpubs/autocad/acad2000/dxf/header_section_group_codes_dxf_02.htm -Drawing.UNITS = { - Unitless: 0, - Inches: 1, - Feet: 2, - Miles: 3, - Millimeters: 4, - Centimeters: 5, - Meters: 6, - Kilometers: 7, - Microinches: 8, - Mils: 9, - Yards: 10, - Angstroms: 11, - Nanometers: 12, - Microns: 13, - Decimeters: 14, - Decameters: 15, - Hectometers: 16, - Gigameters: 17, - "Astronomical units": 18, - "Light years": 19, - Parsecs: 20, -}; +// dist/helpers/log.ts +var LogLevel; +(function(LogLevel2) { + LogLevel2[LogLevel2["LOG_LEVEL_DEBUG"] = 0] = "LOG_LEVEL_DEBUG"; + LogLevel2[LogLevel2["LOG_LEVEL_INFO"] = 1] = "LOG_LEVEL_INFO"; + LogLevel2[LogLevel2["LOG_LEVEL_WARN"] = 2] = "LOG_LEVEL_WARN"; + LogLevel2[LogLevel2["LOG_LEVEL_ERROR"] = 3] = "LOG_LEVEL_ERROR"; + LogLevel2[LogLevel2["LOG_LEVEL_OFF"] = 4] = "LOG_LEVEL_OFF"; +})(LogLevel || (LogLevel = {})); +var WebIFCWasm; +if (typeof self !== "undefined" && self.crossOriginIsolated) { + try { + WebIFCWasm = require_web_ifc_mt(); + } catch (ex) { + WebIFCWasm = require_web_ifc(); + } +} else + WebIFCWasm = require_web_ifc(); /* eslint-disable */ -const _upVector = new Vector3(0, 1, 0); +const _upVector = new Vector3$1(0, 1, 0); const EPSILON = 1e-16; // Modified version of js EdgesGeometry logic to handle silhouette edges ((function () { - const _v0 = new Vector3(); - const _v1 = new Vector3(); - const _normal = new Vector3(); + const _v0 = new Vector3$1(); + const _v1 = new Vector3$1(); + const _normal = new Vector3$1(); const _triangle = new Triangle(); return function generateEdges(geometry, projectionDir, thresholdAngle = 1) { const edges = []; @@ -62619,9 +163572,9 @@ const EPSILON = 1e-16; }))(); // outputs the overlapping segment of a coplanar line and triangle const getOverlappingLine = (function () { - const _dir0 = new Vector3(); - const _dir1 = new Vector3(); - const _tempDir = new Vector3(); + const _dir0 = new Vector3$1(); + const _dir1 = new Vector3$1(); + const _tempDir = new Vector3$1(); const _orthoPlane = new Plane(); const _line0 = new Line3(); const _line1 = new Line3(); @@ -62729,8 +163682,8 @@ const getPlaneYAtPoint = (function () { })(); // returns whether the given line is above the given triangle plane ((function () { - const _v0 = new Vector3(); - const _v1 = new Vector3(); + const _v0 = new Vector3$1(); + const _v1 = new Vector3$1(); return function isLineAbovePlane(plane, line) { _v0.lerpVectors(line.start, line.end, 0.5); getPlaneYAtPoint(plane, _v0, _v1); @@ -62738,8 +163691,8 @@ const getPlaneYAtPoint = (function () { }; }))(); ((function () { - const _tempDir = new Vector3(); - const _upVector = new Vector3(0, 1, 0); + const _tempDir = new Vector3$1(); + const _upVector = new Vector3$1(0, 1, 0); return function isYProjectedLineDegenerate(line) { line.delta(_tempDir).normalize(); return Math.abs(_tempDir.dot(_upVector)) >= 1.0 - EPSILON; @@ -62756,9 +163709,9 @@ function isYProjectedTriangleDegenerate(tri) { // projected along the y axis ((function () { const _target = new Line3(); - const _tempDir = new Vector3(); - const _tempVec0 = new Vector3(); - const _tempVec1 = new Vector3(); + const _tempDir = new Vector3$1(); + const _tempVec0 = new Vector3$1(); + const _tempVec1 = new Vector3$1(); const _line = new Line3(); const _tri = new ExtendedTriangle(); return function getProjectedOverlaps(tri, line, overlapsTarget) { @@ -62792,10 +163745,10 @@ function isYProjectedTriangleDegenerate(tri) { }))(); // Trim the provided line to just the section below the given triangle plane ((function () { - const _lineDirection = new Vector3(); - const _planeHit = new Vector3(); - const _centerPoint = new Vector3(); - const _planePoint = new Vector3(); + const _lineDirection = new Vector3$1(); + const _planeHit = new Vector3$1(); + const _centerPoint = new Vector3$1(); + const _planePoint = new Vector3$1(); return function trimToBeneathTriPlane(tri, line, lineTarget) { if (tri.needsUpdate) { tri.update(); @@ -62891,6 +163844,629 @@ function compressEdgeOverlaps(overlaps) { } } +let Primitive$1 = class Primitive { + constructor() { + /** + * All the selected items within this primitive. + */ + this.selected = new Selector(); + this._baseColor = new THREE$1.Color(0.5, 0.5, 0.5); + this._selectColor = new THREE$1.Color(1, 0, 0); + this.list = {}; + } + /** + * The list of ids of the {@link list} of items. + */ + get ids() { + const ids = []; + for (const id in this.list) { + ids.push(this.list[id].id); + } + return ids; + } + /** + * The color of all the points. + */ + get baseColor() { + return this._baseColor; + } + /** + * The color of all the points. + */ + set baseColor(color) { + this._baseColor.copy(color); + } + /** + * The color of all the selected points. + */ + get selectColor() { + return this._selectColor; + } + /** + * The color of all the selected points. + */ + set selectColor(color) { + this._selectColor.copy(color); + } + get _positionBuffer() { + return this.mesh.geometry.attributes.position; + } + get _colorBuffer() { + return this.mesh.geometry.attributes.color; + } + get _normalBuffer() { + return this.mesh.geometry.attributes.normal; + } + get _attributes() { + return Object.values(this.mesh.geometry.attributes); + } +}; + +let Vertices$1 = class Vertices extends Primitive$1 { + /** + * Creates a new instance of vertices + * @param size Visualization point size + */ + constructor(size = 0.1) { + super(); + /** The map between each vertex ID and its index. */ + this.idMap = new IdIndexMap(); + const geometry = new THREE$1.BufferGeometry(); + const material = new THREE$1.PointsMaterial({ + size, + vertexColors: true, + }); + this.mesh = new THREE$1.Points(geometry, material); + this.mesh.frustumCulled = false; + this._buffers = new BufferManager(geometry); + this._buffers.createAttribute("position"); + this._buffers.createAttribute("color"); + } + /** + * The color of all the points. + */ + set baseColor(color) { + super.baseColor = color; + const allIDs = this.idMap.ids; + const unselected = this.selected.getUnselected(allIDs); + this.updateColor(unselected); + } + /** + * The color of all the selected points. + */ + set selectColor(color) { + super.selectColor = color; + this.updateColor(this.selected.data); + } + /** + * Gets the coordinates of the vertex with the given ID. + * @param id the id of the point to retrieve. + */ + get(id) { + const index = this.idMap.getIndex(id); + if (index === null) + return null; + return [ + this._positionBuffer.getX(index), + this._positionBuffer.getY(index), + this._positionBuffer.getZ(index), + ]; + } + /** + * Add new points + * @param ids the vertices to edit. + * @param coordinates the new coordinates for the vertex. + */ + set(ids, coordinates) { + const [x, y, z] = coordinates; + for (const id of ids) { + const index = this.idMap.getIndex(id); + if (index === null) + return; + this._positionBuffer.setXYZ(index, x, y, z); + } + this._positionBuffer.needsUpdate = true; + } + /** + * Add new points + * @param coordinates Points to add. + * @returns the list of ids of the created vertices. + */ + add(coordinates) { + this._buffers.resizeIfNeeded(coordinates.length); + const ids = []; + const { r, g, b } = this._baseColor; + for (let i = 0; i < coordinates.length; i++) { + const index = this.idMap.add(); + const id = this.idMap.getId(index); + ids.push(id); + const [x, y, z] = coordinates[i]; + this._positionBuffer.setXYZ(index, x, y, z); + this._colorBuffer.setXYZ(index, r, g, b); + } + this._buffers.updateCount(this.idMap.size); + this.mesh.geometry.computeBoundingSphere(); + this.mesh.geometry.computeBoundingBox(); + return ids; + } + /** + * Select or unselects the given vertices. + * @param active Whether to select or unselect. + * @param ids List of vertices IDs to select or deselect. If not + * defined, all vertices will be selected or deselected. + */ + select(active, ids = this.idMap.ids) { + const idsToUpdate = this.selected.select(active, ids, this.idMap.ids); + this.updateColor(idsToUpdate); + } + /** + * Applies a transformation to the selected vertices. + * @param matrix Transformation matrix to apply. + * @param ids IDs of the vertices to transform. + */ + transform(matrix, ids = this.selected.data) { + const vector = new THREE$1.Vector3(); + for (const id of ids) { + const index = this.idMap.getIndex(id); + if (index === null) + continue; + const x = this._positionBuffer.getX(index); + const y = this._positionBuffer.getY(index); + const z = this._positionBuffer.getZ(index); + vector.set(x, y, z); + vector.applyMatrix4(matrix); + this._positionBuffer.setXYZ(index, vector.x, vector.y, vector.z); + } + this._positionBuffer.needsUpdate = true; + } + /** + * Quickly removes all the points and releases all the memory used. + */ + clear() { + this._buffers.resetAttributes(); + this.selected.data.clear(); + this.idMap.reset(); + } + /** + * Removes the selected points from the list + */ + remove(ids = this.selected.data) { + for (const id of ids) { + for (const attribute of this._attributes) { + this.removeFromBuffer(id, attribute); + } + this.idMap.remove(id); + } + this.select(false, ids); + this._buffers.updateCount(this.idMap.size); + } + addAttribute(attribute) { + this._buffers.addAttribute(attribute); + } + removeFromBuffer(id, buffer) { + const lastIndex = this.idMap.getLastIndex(); + const index = this.idMap.getIndex(id); + if (index !== null) { + buffer.setXYZ(index, buffer.getX(lastIndex), buffer.getY(lastIndex), buffer.getZ(lastIndex)); + } + } + updateColor(ids = this.idMap.ids) { + const colorBuffer = this._colorBuffer; + for (const id of ids) { + const isSelected = this.selected.data.has(id); + const index = this.idMap.getIndex(id); + if (index === null) + continue; + const color = isSelected ? this._selectColor : this._baseColor; + colorBuffer.setXYZ(index, color.r, color.g, color.b); + } + colorBuffer.needsUpdate = true; + } +}; + +let Lines$1 = class Lines extends Primitive$1 { + constructor() { + super(); + /** {@link Primitive.mesh } */ + this.mesh = new THREE$1.LineSegments(); + /** + * The list of segments. + */ + this.list = {}; + /** + * The geometric representation of the vertices that define this instance of lines. + */ + this.vertices = new Vertices$1(); + /** + * The map that keeps track of the segments ID and their position in the geometric buffer. + */ + this.idMap = new IdIndexMap(); + /** + * The list of points that define each line. + */ + this.points = {}; + const material = new THREE$1.LineBasicMaterial({ vertexColors: true }); + const geometry = new THREE$1.BufferGeometry(); + this.mesh = new THREE$1.LineSegments(geometry, material); + this._buffers = new BufferManager(geometry); + this.setupAttributes(); + } + /** + * The color of all the points. + */ + set baseColor(color) { + super.baseColor = color; + const allIDs = this.idMap.ids; + const unselected = this.selected.getUnselected(allIDs); + this.updateColor(unselected); + this.vertices.baseColor = color; + } + /** + * The color of all the selected points. + */ + set selectColor(color) { + super.selectColor = color; + this.updateColor(this.selected.data); + this.vertices.selectColor = color; + } + /** + * Quickly removes all the lines and releases all the memory used. + */ + clear() { + this.selected.data.clear(); + this.mesh.geometry.dispose(); + this.mesh.geometry = new THREE$1.BufferGeometry(); + this.setupAttributes(); + this.vertices.clear(); + this.idMap.reset(); + this.list = {}; + this.points = {}; + } + /** + * Adds a segment between two {@link points}. + * @param ids - the IDs of the {@link points} that define the segments. + */ + add(ids) { + const createdIDs = []; + const newVerticesCount = (ids.length - 1) * 2; + this._buffers.resizeIfNeeded(newVerticesCount); + const { r, g, b } = this._baseColor; + for (let i = 0; i < ids.length - 1; i++) { + const startID = ids[i]; + const endID = ids[i + 1]; + const start = this.vertices.get(startID); + const end = this.vertices.get(endID); + if (start === null || end === null) + continue; + const index = this.idMap.add(); + const id = this.idMap.getId(index); + createdIDs.push(id); + const startPoint = this.points[startID]; + const endPoint = this.points[endID]; + startPoint.start.add(id); + endPoint.end.add(id); + this._positionBuffer.setXYZ(index * 2, start[0], start[1], start[2]); + this._positionBuffer.setXYZ(index * 2 + 1, end[0], end[1], end[2]); + this._colorBuffer.setXYZ(index * 2, r, g, b); + this._colorBuffer.setXYZ(index * 2 + 1, r, g, b); + this.list[id] = { id, start: startID, end: endID }; + } + const allVerticesCount = this.idMap.size * 2; + this._buffers.updateCount(allVerticesCount); + this.mesh.geometry.computeBoundingSphere(); + this.mesh.geometry.computeBoundingBox(); + return createdIDs; + } + get(id) { + const line = this.list[id]; + const start = this.vertices.get(line.start); + const end = this.vertices.get(line.end); + if (!start || !end) + return null; + return [start, end]; + } + /** + * Adds the points that can be used by one or many lines. + * @param points the list of (x, y, z) coordinates of the points. + */ + addPoints(points) { + const ids = this.vertices.add(points); + for (const id of ids) { + this.points[id] = { start: new Set(), end: new Set() }; + } + return ids; + } + /** + * Select or unselects the given lines. + * @param active Whether to select or unselect. + * @param ids List of lines IDs to select or unselect. If not + * defined, all lines will be selected or deselected. + */ + select(active, ids = this.ids) { + const allLines = this.idMap.ids; + const lineIDs = ids || allLines; + const idsToUpdate = this.selected.select(active, lineIDs, allLines); + this.updateColor(idsToUpdate); + const points = []; + for (const id of idsToUpdate) { + const line = this.list[id]; + points.push(line.start); + points.push(line.end); + } + this.selectPoints(active, points); + } + selectPoints(active, ids) { + this.vertices.select(active, ids); + } + /** + * Removes the specified lines. + * @param ids List of lines to remove. If no line is specified, + * removes all the selected lines. + */ + remove(ids = this.selected.data) { + const position = this._positionBuffer; + const color = this._colorBuffer; + const points = []; + for (const id of ids) { + const line = this.list[id]; + if (line === undefined) + continue; + this.removeFromBuffer(id, position); + this.removeFromBuffer(id, color); + this.idMap.remove(id); + const startPoint = this.points[line.start]; + points.push(line.start, line.end); + startPoint.start.delete(id); + const endPoint = this.points[line.end]; + endPoint.end.delete(id); + delete this.list[id]; + this.selected.data.delete(id); + } + position.needsUpdate = true; + color.needsUpdate = true; + this.selectPoints(false, points); + } + /** + * Removes the specified points and all lines that use them. + * @param ids List of points to remove. If no point is specified, + * removes all the selected points. + */ + removePoints(ids = this.vertices.selected.data) { + const lines = new Set(); + for (const id of ids) { + const point = this.points[id]; + if (!point) + continue; + for (const id of point.start) { + lines.add(id); + } + for (const id of point.end) { + lines.add(id); + } + } + this.vertices.remove(ids); + this.remove(lines); + } + /** + * Sets a point of the line to a specific position. + * @param id The point whose position to set. + * @param coordinates The new coordinates of the point. + */ + setPoint(id, coordinates) { + const indices = new Set(); + this.getPointIndices(id, indices); + this.setLines(coordinates, indices); + this.vertices.set([id], coordinates); + } + transform(matrix) { + const indices = new Set(); + const points = new Set(); + for (const id of this.vertices.selected.data) { + points.add(id); + this.getPointIndices(id, indices); + } + this.transformLines(matrix, indices); + this.vertices.transform(matrix, points); + } + getPointIndices(id, indices) { + const point = this.points[id]; + for (const id of point.start) { + const index = this.idMap.getIndex(id); + if (index === null) { + continue; + } + indices.add(index * 2); + } + for (const id of point.end) { + const index = this.idMap.getIndex(id); + if (index === null) { + continue; + } + indices.add(index * 2 + 1); + } + } + setupAttributes() { + this._buffers.createAttribute("position"); + this._buffers.createAttribute("color"); + } + removeFromBuffer(id, buffer) { + const index = this.idMap.getIndex(id); + if (index === null) + return; + const lastIndex = this.idMap.getLastIndex(); + const indices = [index * 2, index * 2 + 1]; + const lastIndices = [lastIndex * 2, lastIndex * 2 + 1]; + for (let i = 0; i < 2; i++) { + const x = buffer.getX(lastIndices[i]); + const y = buffer.getY(lastIndices[i]); + const z = buffer.getZ(lastIndices[i]); + buffer.setXYZ(indices[i], x, y, z); + } + buffer.count -= 2; + } + transformLines(matrix, indices) { + const vector = new THREE$1.Vector3(); + for (const index of indices) { + const x = this._positionBuffer.getX(index); + const y = this._positionBuffer.getY(index); + const z = this._positionBuffer.getZ(index); + vector.set(x, y, z); + vector.applyMatrix4(matrix); + this._positionBuffer.setXYZ(index, vector.x, vector.y, vector.z); + } + this._positionBuffer.needsUpdate = true; + } + setLines(coords, indices) { + const [x, y, z] = coords; + for (const index of indices) { + this._positionBuffer.setXYZ(index, x, y, z); + } + this._positionBuffer.needsUpdate = true; + } + updateColor(ids = this.ids) { + const colorAttribute = this._colorBuffer; + for (const id of ids) { + const line = this.list[id]; + const isSelected = this.selected.data.has(line.id); + const { r, g, b } = isSelected ? this._selectColor : this._baseColor; + const index = this.idMap.getIndex(id); + if (index === null) + continue; + colorAttribute.setXYZ(index * 2, r, g, b); + colorAttribute.setXYZ(index * 2 + 1, r, g, b); + } + colorAttribute.needsUpdate = true; + } +}; + +class RoadNavigator extends Component { + constructor(components) { + super(components); + this.enabled = true; + this._lines = new Lines$1(); + // TODO: this should be handled better and allow to define lines per IFC model + this._defaultID = "RoadNavigator"; + this.components.tools.add(RoadNavigator.uuid, this); + const raycaster = this.components.raycaster.get(); + raycaster.params.Points = { threshold: 1 }; + this._lines.baseColor = new THREE$1.Color("#6528D7"); + const scene = components.scene.get(); + scene.add(this._lines.mesh); + scene.add(this._lines.vertices.mesh); + this.longSection = new Simple2DScene(components); + this._longProjection = new Lines$1(); + const longSection = this.longSection.get(); + longSection.add(this._longProjection.mesh, this._longProjection.vertices.mesh); + } + get() { + return this._lines; + } + drawPoint() { + const found = this.components.raycaster.castRay(); + if (!found) + return; + const { x, y, z } = found.point; + const [id] = this._lines.addPoints([[x, y, z]]); + this._lines.vertices.mesh.geometry.computeBoundingSphere(); + const selected = Array.from(this._lines.vertices.selected.data); + if (selected.length) { + const previousPoint = selected[0]; + this._lines.add([previousPoint, id]); + } + this._lines.selectPoints(false); + this._lines.selectPoints(true, [id]); + this.updateLongProjection(); + this.cache(); + } + select() { + this._lines.selectPoints(false); + // TODO: Fix cast ray type + const found = this.components.raycaster.castRay([ + this._lines.vertices.mesh, + ]); + if (found && found.index !== undefined) { + const id = this._lines.vertices.idMap.getId(found.index); + this._lines.selectPoints(true, [id]); + } + } + delete() { + this._lines.removePoints(); + // TODO: Clay bug: The selected point keeps existing in vertices + this._lines.vertices.selected.data.clear(); + this._lines.vertices.mesh.geometry.computeBoundingSphere(); + this.updateLongProjection(); + this.cache(); + } + // TODO: All fragment clases should include built-in caching in dexie + cache(id = this._defaultID) { + const points = []; + const lines = []; + const newPointIDMap = new Map(); + let pointCounter = 0; + for (const key in this._lines.points) { + const pointID = parseInt(key, 10); + const coords = this._lines.vertices.get(pointID); + if (!coords) + continue; + points.push(coords); + newPointIDMap.set(pointID, pointCounter); + pointCounter++; + } + for (const id in this._lines.list) { + const line = this._lines.list[id]; + const newStart = newPointIDMap.get(line.start); + const newEnd = newPointIDMap.get(line.end); + if (newStart !== undefined && newEnd !== undefined) { + lines.push([newStart, newEnd]); + } + } + localStorage.setItem(id, JSON.stringify({ lines, points })); + } + loadCached(id = this._defaultID) { + const cached = localStorage.getItem(id); + if (!cached) + return; + const parsed = JSON.parse(cached); + if (parsed.points && parsed.points.length) { + this._lines.addPoints(parsed.points); + } + if (parsed.lines && parsed.lines.length) { + for (const line of parsed.lines) { + this._lines.add(line); + } + } + } + updateLongProjection() { + // Assuming that the lines of the road axis are sorted + // TODO: Sort them in case they are not + this._longProjection.clear(); + const vertices = this._lines.mesh.geometry.attributes.position; + console.log(vertices); + const v1 = new THREE$1.Vector3(); + const v2 = new THREE$1.Vector3(); + const points = []; + let accumulatedX = 0; + for (let i = 0; i < vertices.count * 3 - 5; i += 6) { + const x1 = vertices.array[i]; + const y1 = vertices.array[i + 1]; + const z1 = vertices.array[i + 2]; + const x2 = vertices.array[i + 3]; + const y2 = vertices.array[i + 4]; + const z2 = vertices.array[i + 5]; + v1.set(x1, y1, z1); + v2.set(x2, y2, z2); + const length = v1.distanceTo(v2); + accumulatedX += length; + points.push([accumulatedX, y2, 0]); + } + const ids = this._longProjection.addPoints(points); + this._longProjection.add(ids); + } +} +/** {@link Component.uuid} */ +RoadNavigator.uuid = "85f2c89c-4c6b-4c7d-bc20-5b675874b228"; +ToolComponent.libraryUUIDs.add(RoadNavigator.uuid); + class Control { get items() { return [this.helper, this.core]; @@ -62899,8 +164475,8 @@ class Control { this.transformed = new Event(); this.controlsActivated = new Event(); this.core = new TransformControls(camera, element); - this.helper = new THREE.Object3D(); - let transform = new THREE.Matrix4(); + this.helper = new THREE$1.Object3D(); + let transform = new THREE$1.Matrix4(); this.core.attach(this.helper); this.core.addEventListener("dragging-changed", () => { this.controlsActivated.trigger(); @@ -62920,9 +164496,9 @@ class Primitive { /** * All the selected items within this primitive. */ - this.selected = new Selector(); - this._baseColor = new THREE.Color(0.5, 0.5, 0.5); - this._selectColor = new THREE.Color(1, 0, 0); + this.selected = new Selector$1(); + this._baseColor = new THREE$1.Color(0.5, 0.5, 0.5); + this._selectColor = new THREE$1.Color(1, 0, 0); this.list = {}; } /** @@ -62997,15 +164573,15 @@ class Vertices extends Primitive { constructor(size = 0.1) { super(); /** The map between each vertex ID and its index. */ - this.idMap = new IdIndexMap(); - const geometry = new THREE.BufferGeometry(); - const material = new THREE.PointsMaterial({ + this.idMap = new IdIndexMap$1(); + const geometry = new THREE$1.BufferGeometry(); + const material = new THREE$1.PointsMaterial({ size, vertexColors: true, }); - this.mesh = new THREE.Points(geometry, material); + this.mesh = new THREE$1.Points(geometry, material); this.mesh.frustumCulled = false; - this._buffers = new BufferManager(geometry); + this._buffers = new BufferManager$1(geometry); this._buffers.createAttribute("position"); this._buffers.createAttribute("color"); } @@ -63076,7 +164652,7 @@ class Vertices extends Primitive { * @param ids IDs of the vertices to transform. */ transform(matrix, ids = this.selected.data) { - const vector = new THREE.Vector3(); + const vector = new THREE$1.Vector3(); for (const id of ids) { const index = this.idMap.getIndex(id); if (index === null) @@ -63157,7 +164733,7 @@ class Lines extends Primitive { constructor() { super(); /** {@link Primitive.mesh } */ - this.mesh = new THREE.LineSegments(); + this.mesh = new THREE$1.LineSegments(); /** * The list of segments. */ @@ -63169,15 +164745,15 @@ class Lines extends Primitive { /** * The map that keeps track of the segments ID and their position in the geometric buffer. */ - this.idMap = new IdIndexMap(); + this.idMap = new IdIndexMap$1(); /** * The list of points that define each line. */ this.points = {}; - const material = new THREE.LineBasicMaterial({ vertexColors: true }); - const geometry = new THREE.BufferGeometry(); - this.mesh = new THREE.LineSegments(geometry, material); - this._buffers = new BufferManager(geometry); + const material = new THREE$1.LineBasicMaterial({ vertexColors: true }); + const geometry = new THREE$1.BufferGeometry(); + this.mesh = new THREE$1.LineSegments(geometry, material); + this._buffers = new BufferManager$1(geometry); this.setupAttributes(); } /** @@ -63186,7 +164762,7 @@ class Lines extends Primitive { clear() { this.selected.data.clear(); this.mesh.geometry.dispose(); - this.mesh.geometry = new THREE.BufferGeometry(); + this.mesh.geometry = new THREE$1.BufferGeometry(); this.setupAttributes(); this.vertices.clear(); this.idMap.reset(); @@ -63376,7 +164952,7 @@ class Lines extends Primitive { buffer.count -= 2; } transformLines(matrix, indices) { - const vector = new THREE.Vector3(); + const vector = new THREE$1.Vector3(); for (const index of indices) { const x = this._positionBuffer.getX(index); const y = this._positionBuffer.getY(index); @@ -63437,7 +165013,7 @@ class Faces extends Primitive { constructor() { super(); /** {@link Primitive.mesh } */ - this.mesh = new THREE.Mesh(); + this.mesh = new THREE$1.Mesh(); /** * The list of points that define the faces. Each point corresponds to a set of {@link Vertices}. This way, * we can provide an API of faces that share vertices, but under the hood the vertices are duplicated per face @@ -63455,19 +165031,19 @@ class Faces extends Primitive { /** * The list of selected {@link points}. */ - this.selectedPoints = new Selector(); + this.selectedPoints = new Selector$1(); this._vertexFaceMap = new Map(); this._faceIdGenerator = 0; this._pointIdGenerator = 0; this._holeIdGenerator = 0; - const material = new THREE.MeshLambertMaterial({ - side: THREE.DoubleSide, + const material = new THREE$1.MeshLambertMaterial({ + side: THREE$1.DoubleSide, vertexColors: true, }); - const geometry = new THREE.BufferGeometry(); - this.mesh = new THREE.Mesh(geometry, material); + const geometry = new THREE$1.BufferGeometry(); + this.mesh = new THREE$1.Mesh(geometry, material); geometry.setIndex([]); - const normals = new THREE.BufferAttribute(new Float32Array(0), 3); + const normals = new THREE$1.BufferAttribute(new Float32Array(0), 3); normals.name = "normal"; this.vertices.addAttribute(normals); this.updateBuffers(); @@ -63770,7 +165346,7 @@ class Faces extends Primitive { this.mesh.geometry.setAttribute("position", positionBuffer); this.mesh.geometry.setAttribute("normal", normalBuffer); const colorBuffer = new Float32Array(positionBuffer.array.length * 3); - const colorAttribute = new THREE.BufferAttribute(colorBuffer, 3); + const colorAttribute = new THREE$1.BufferAttribute(colorBuffer, 3); this.mesh.geometry.setAttribute("color", colorAttribute); this.updateColor(); } @@ -64144,10 +165720,11 @@ class OffsetFaces extends Primitive { const d2 = p2[0] * n2[0] + p2[2] * n2[2]; const x = (b2 * d1 - b1 * d2) / (a1 * b2 - a2 * b1); const z = (a1 * d2 - a2 * d1) / (a1 * b2 - a2 * b1); + const y = coords[1]; // Update the vertices of both OffsetFaces - this.faces.setPoint(currentPoint, [x, 0, z]); - this.faces.setPoint(nextPoint, [x, 0, z]); - intersectionPoints.push([x, 0, z]); + this.faces.setPoint(currentPoint, [x, y, z]); + this.faces.setPoint(nextPoint, [x, y, z]); + intersectionPoints.push([x, y, z]); } } if (intersectionPoints.length > 2) { @@ -64200,7 +165777,7 @@ class Extrusions extends Primitive { constructor() { super(); /** {@link Primitive.mesh } */ - this.mesh = new THREE.Mesh(); + this.mesh = new THREE$1.Mesh(); /** * The list of outer points that define the faces. Each point corresponds to a set of {@link Vertices}. This way, * we can provide an API of faces that share vertices, but under the hood the vertices are duplicated per face @@ -64218,12 +165795,12 @@ class Extrusions extends Primitive { this._faceExtrusionMap = new Map(); this._idGenerator = 0; this._holeIdGenerator = 0; - const material = new THREE.MeshLambertMaterial({ - side: THREE.DoubleSide, + const material = new THREE$1.MeshLambertMaterial({ + side: THREE$1.DoubleSide, vertexColors: true, }); - const geometry = new THREE.BufferGeometry(); - this.mesh = new THREE.Mesh(geometry, material); + const geometry = new THREE$1.BufferGeometry(); + this.mesh = new THREE$1.Mesh(geometry, material); geometry.setIndex([]); } clear() { @@ -64987,13 +166564,13 @@ class Polygons { this._isClosingPolygon = false; } newWorkPlane() { - const floorPlaneGeom = new THREE.PlaneGeometry(10, 10); - const floorPlaneMaterial = new THREE.MeshBasicMaterial({ + const floorPlaneGeom = new THREE$1.PlaneGeometry(10, 10); + const floorPlaneMaterial = new THREE$1.MeshBasicMaterial({ transparent: true, opacity: 0.7, color: 0xc4adef, }); - const plane = new THREE.Mesh(floorPlaneGeom, floorPlaneMaterial); + const plane = new THREE$1.Mesh(floorPlaneGeom, floorPlaneMaterial); plane.rotation.x = -Math.PI / 2; plane.visible = false; return plane; @@ -65019,15 +166596,15 @@ class Planes { this.transformMode = "TRANSLATE"; this._lines = new Lines(); this._selected = null; - this._v1 = new THREE.Vector3(); - this._v2 = new THREE.Vector3(); - this._v3 = new THREE.Vector3(); - this._v4 = new THREE.Vector3(); - this._q = new THREE.Quaternion(); + this._v1 = new THREE$1.Vector3(); + this._v2 = new THREE$1.Vector3(); + this._v3 = new THREE$1.Vector3(); + this._v4 = new THREE$1.Vector3(); + this._q = new THREE$1.Quaternion(); this._transformActive = false; - this._previousTransform = new THREE.Matrix4(); - this._newTransform = new THREE.Matrix4(); - this._tempTransform = new THREE.Matrix4(); + this._previousTransform = new THREE$1.Matrix4(); + this._newTransform = new THREE$1.Matrix4(); + this._tempTransform = new THREE$1.Matrix4(); this._state = "IDLE"; this.updateTransform = () => { const result = this._components.raycaster.castRay([this._helperPlane]); @@ -65065,14 +166642,14 @@ class Planes { const material = this.faces.mesh.material; material.transparent = true; material.opacity = 0.2; - const helperMaterial = new THREE.MeshBasicMaterial({ + const helperMaterial = new THREE$1.MeshBasicMaterial({ color: 0xeeeeee, transparent: true, opacity: 0.3, side: 2, }); - const helperGeometry = new THREE.PlaneGeometry(10, 10, 10); - this._helperPlane = new THREE.Mesh(helperGeometry, helperMaterial); + const helperGeometry = new THREE$1.PlaneGeometry(10, 10, 10); + this._helperPlane = new THREE$1.Mesh(helperGeometry, helperMaterial); // this._helperPlane.visible = false; const [a, b, c, d] = this._lines.addPoints([ [0, 0, 0], @@ -65179,8 +166756,8 @@ class Planes { const factor = secondLength / firstLength; this._newTransform.identity(); const { x, y, z } = this._v1; - const move = new THREE.Matrix4().makeTranslation(x, y, z); - const scale = new THREE.Matrix4().makeScale(factor, factor, factor); + const move = new THREE$1.Matrix4().makeTranslation(x, y, z); + const scale = new THREE$1.Matrix4().makeScale(factor, factor, factor); const invMove = move.clone().invert(); this._newTransform.multiply(move); this._newTransform.multiply(scale); @@ -65201,15 +166778,15 @@ class Planes { angle *= -1; } // Get axis from camera - const axis = new THREE.Vector3(); + const axis = new THREE$1.Vector3(); axis.set(0, 0, 1); const camera = this._components.camera.get(); axis.applyEuler(camera.rotation); this._q.setFromAxisAngle(axis, angle); this._newTransform.identity(); const { x, y, z } = this._v1; - const move = new THREE.Matrix4().makeTranslation(x, y, z); - const rotation = new THREE.Matrix4().makeRotationFromQuaternion(this._q); + const move = new THREE$1.Matrix4().makeTranslation(x, y, z); + const rotation = new THREE$1.Matrix4().makeRotationFromQuaternion(this._q); const invMove = move.clone().invert(); this._newTransform.multiply(move); this._newTransform.multiply(rotation); @@ -65345,8 +166922,8 @@ class Snapper { this.findHelperLineIntersections(extStart, extEnd); this._helperLinesIDs.add(extensionID); // Perpendicular - const v1 = new THREE.Vector3(vx, vy, vz); - const up = new THREE.Vector3(0, 1, 0); + const v1 = new THREE$1.Vector3(vx, vy, vz); + const up = new THREE$1.Vector3(0, 1, 0); v1.cross(up); const perpStart = [x + v1.x, y + v1.y, z + v1.z]; const perpEnd = [x - v1.x, y - v1.y, z - v1.z]; @@ -65366,11 +166943,11 @@ class Snapper { const helperMat = this._helper.mesh.material; helperMat.transparent = true; helperMat.opacity = 0.2; - this._helper.baseColor = new THREE.Color(0xff0000); - this.snap.on(this.updateLastSelection); - this.snap.on(this.previewSnap); - this.snap.on(this.updateMidPoint); - this.snap.on(this.updateHelperLines); + this._helper.baseColor = new THREE$1.Color(0xff0000); + this.snap.add(this.updateLastSelection); + this.snap.add(this.previewSnap); + this.snap.add(this.updateMidPoint); + this.snap.add(this.updateHelperLines); window.addEventListener("mousemove", () => { window.clearTimeout(this._helperLinesTimeout); }); @@ -65418,16 +166995,16 @@ class Snapper { // t1 = ((p2 - p1) x d2) · (d1 x d2) / ||d1 x d2||^2 // t2 = ((p2 - p1) x d1) · (d1 x d2) / ||d1 x d2||^2 const tolerance = 0.01; - const p1 = new THREE.Vector3(); - const d1 = new THREE.Vector3(); - const p2 = new THREE.Vector3(); - const d2 = new THREE.Vector3(); - const d1XD2 = new THREE.Vector3(); - const result1 = new THREE.Vector3(); - const result2 = new THREE.Vector3(); - const p2MinusP1 = new THREE.Vector3(); - const p2MinusP1XD2 = new THREE.Vector3(); - const p2MinusP1XD1 = new THREE.Vector3(); + const p1 = new THREE$1.Vector3(); + const d1 = new THREE$1.Vector3(); + const p2 = new THREE$1.Vector3(); + const d2 = new THREE$1.Vector3(); + const d1XD2 = new THREE$1.Vector3(); + const result1 = new THREE$1.Vector3(); + const result2 = new THREE$1.Vector3(); + const p2MinusP1 = new THREE$1.Vector3(); + const p2MinusP1XD2 = new THREE$1.Vector3(); + const p2MinusP1XD1 = new THREE$1.Vector3(); p1.set(start[0], start[1], start[2]); d1.set(end[0] - start[0], end[1] - start[1], end[2] - start[2]); for (const lineID of this._helperLinesIDs) { @@ -65507,4 +167084,4 @@ class Snapper { } } -export { BufferManager, Control, Extrusions, Faces, IdIndexMap, Lines, OffsetFaces, Planes, Polygons, Primitive, Raycaster, Selector, Slabs, Snapper, Vector, Vertices, Walls }; +export { BufferManager$1 as BufferManager, Control, Extrusions, Faces, IdIndexMap$1 as IdIndexMap, Lines, OffsetFaces, Planes, Polygons, Primitive, Raycaster, Selector$1 as Selector, Slabs, Snapper, Vector, Vertices, Walls }; diff --git a/src/editors/Snapper/index.ts b/src/editors/Snapper/index.ts index a7f819f..e7c538e 100644 --- a/src/editors/Snapper/index.ts +++ b/src/editors/Snapper/index.ts @@ -56,10 +56,10 @@ export class Snapper { helperMat.opacity = 0.2; this._helper.baseColor = new THREE.Color(0xff0000); - this.snap.on(this.updateLastSelection); - this.snap.on(this.previewSnap); - this.snap.on(this.updateMidPoint); - this.snap.on(this.updateHelperLines); + this.snap.add(this.updateLastSelection); + this.snap.add(this.previewSnap); + this.snap.add(this.updateMidPoint); + this.snap.add(this.updateHelperLines); window.addEventListener("mousemove", () => { window.clearTimeout(this._helperLinesTimeout); diff --git a/src/primitives/OffsetFaces/index.ts b/src/primitives/OffsetFaces/index.ts index 39ecd7c..6118272 100644 --- a/src/primitives/OffsetFaces/index.ts +++ b/src/primitives/OffsetFaces/index.ts @@ -389,10 +389,11 @@ export class OffsetFaces extends Primitive { const x = (b2 * d1 - b1 * d2) / (a1 * b2 - a2 * b1); const z = (a1 * d2 - a2 * d1) / (a1 * b2 - a2 * b1); + const y = coords[1]; // Update the vertices of both OffsetFaces - this.faces.setPoint(currentPoint, [x, 0, z]); - this.faces.setPoint(nextPoint, [x, 0, z]); - intersectionPoints.push([x, 0, z]); + this.faces.setPoint(currentPoint, [x, y, z]); + this.faces.setPoint(nextPoint, [x, y, z]); + intersectionPoints.push([x, y, z]); } } diff --git a/yarn.lock b/yarn.lock index eef08cf..9c5a3b1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5009,11 +5009,11 @@ __metadata: linkType: hard "jiti@npm:^1.18.2": - version: 1.19.3 - resolution: "jiti@npm:1.19.3" + version: 1.20.0 + resolution: "jiti@npm:1.20.0" bin: jiti: bin/jiti.js - checksum: de3dacdfe30948d96b69712b04cc28127c17f43d5233a5aa069933e04ac4c9aaf265bef4cdf2b0c2a6f5af236a58aea9bfea83e8e289e2490802bdff7f99bff7 + checksum: 7924062b5675142e3e272a27735be84b7bfc0a0eb73217fc2dcafa034f37c4f7b4b9ffc07dd98bcff0f739a8811ce1544db205ae7e97b1c86f0df92c65ce3c72 languageName: node linkType: hard @@ -6000,6 +6000,17 @@ __metadata: languageName: node linkType: hard +"openbim-clay@npm:0.0.3": + version: 0.0.3 + resolution: "openbim-clay@npm:0.0.3" + dependencies: + earcut: ^2.2.4 + openbim-components: 1.0.0-alpha.102 + three: 0.152.2 + checksum: e2e343a9a4f210462449555a9b6ba81fa434f91bf6e48a0bdf63801f114c15d2cf012dfc5003a176960b161a250e849b9130782bd6a34418f97d47989cfdc1f5 + languageName: node + linkType: hard + "openbim-clay@workspace:.": version: 0.0.0-use.local resolution: "openbim-clay@workspace:." @@ -6020,13 +6031,15 @@ __metadata: eslint-plugin-import: ^2.23.4 eslint-plugin-prettier: ^3.4.0 jest: 27.0.4 - openbim-components: 1.0.0-alpha.102 + openbim-components: ^1.1.2 prettier: ^2.3.1 rollup: 3.2.3 three: 0.152.2 ts-jest: ^27.0.3 ts-node: ^10.0.0 typescript: ^4.3.2 + peerDependencies: + openbim-components: ^1.1.2 languageName: unknown linkType: soft @@ -6053,6 +6066,30 @@ __metadata: languageName: node linkType: hard +"openbim-components@npm:^1.1.2": + version: 1.1.2 + resolution: "openbim-components@npm:1.1.2" + dependencies: + "@popperjs/core": latest + bim-fragment: 1.0.22 + camera-controls: ^1.36.0 + dexie: ^3.2.3 + dxf-writer: ^1.18.4 + earcut: ^2.2.4 + mapbox-gl: ^2.15.0 + n8ao: ^1.5.1 + openbim-clay: 0.0.3 + postprocessing: ^6.31.0 + stats.js: ^0.17.0 + tailwindcss: ^3.3.2 + three: 0.152.2 + three-mesh-bvh: 0.6.0 + top-tool-package-reader: 0.0.3 + web-ifc: 0.0.44 + checksum: 600b6fed5c8bf71e17544e78fbfdc380b03d21a5d53d77c6e08fe9c08f36a78e4324a5f857f33f7cfd13193fec7797a0c783831995866702fb74a8bfa428c450 + languageName: node + linkType: hard + "optionator@npm:^0.9.1": version: 0.9.3 resolution: "optionator@npm:0.9.3" @@ -6397,22 +6434,22 @@ __metadata: linkType: hard "postcss@npm:^8.4.23": - version: 8.4.29 - resolution: "postcss@npm:8.4.29" + version: 8.4.31 + resolution: "postcss@npm:8.4.31" dependencies: nanoid: ^3.3.6 picocolors: ^1.0.0 source-map-js: ^1.0.2 - checksum: dd6daa25e781db9ae5b651d9b7bfde0ec6e60e86a37da69a18eb4773d5ddd51e28fc4ff054fbdc04636a31462e6bf09a1e50986f69ac52b10d46b7457cd36d12 + checksum: 1d8611341b073143ad90486fcdfeab49edd243377b1f51834dc4f6d028e82ce5190e4f11bb2633276864503654fb7cab28e67abdc0fbf9d1f88cad4a0ff0beea languageName: node linkType: hard "postprocessing@npm:^6.31.0": - version: 6.33.0 - resolution: "postprocessing@npm:6.33.0" + version: 6.33.2 + resolution: "postprocessing@npm:6.33.2" peerDependencies: - three: ">= 0.138.0 < 0.156.0" - checksum: a82cf04d96791f3275b0d696cc7454e7e50ef28e2c3a6fd02478bb4461eb1846f33e78eda6bbf7433666b224b20506045c4369cccad93f91fd6f1c64251f555a + three: ">= 0.138.0 < 0.158.0" + checksum: ef9626eecfa79d217392ed1e77373f41851280a78ff49cfc031b06868a38feb85c1360c503f695ac726fd5bf0339252197fa02ccc49958ccb3dbe07f666c29ae languageName: node linkType: hard @@ -6725,7 +6762,20 @@ __metadata: languageName: node linkType: hard -"resolve@npm:^1.1.7, resolve@npm:^1.10.0, resolve@npm:^1.20.0, resolve@npm:^1.22.1, resolve@npm:^1.22.2, resolve@npm:^1.22.4": +"resolve@npm:^1.1.7, resolve@npm:^1.22.2": + version: 1.22.6 + resolution: "resolve@npm:1.22.6" + dependencies: + is-core-module: ^2.13.0 + path-parse: ^1.0.7 + supports-preserve-symlinks-flag: ^1.0.0 + bin: + resolve: bin/resolve + checksum: d13bf66d4e2ee30d291491f16f2fa44edd4e0cefb85d53249dd6f93e70b2b8c20ec62f01b18662e3cd40e50a7528f18c4087a99490048992a3bb954cf3201a5b + languageName: node + linkType: hard + +"resolve@npm:^1.10.0, resolve@npm:^1.20.0, resolve@npm:^1.22.1, resolve@npm:^1.22.4": version: 1.22.4 resolution: "resolve@npm:1.22.4" dependencies: @@ -6738,7 +6788,20 @@ __metadata: languageName: node linkType: hard -"resolve@patch:resolve@^1.1.7#~builtin, resolve@patch:resolve@^1.10.0#~builtin, resolve@patch:resolve@^1.20.0#~builtin, resolve@patch:resolve@^1.22.1#~builtin, resolve@patch:resolve@^1.22.2#~builtin, resolve@patch:resolve@^1.22.4#~builtin": +"resolve@patch:resolve@^1.1.7#~builtin, resolve@patch:resolve@^1.22.2#~builtin": + version: 1.22.6 + resolution: "resolve@patch:resolve@npm%3A1.22.6#~builtin::version=1.22.6&hash=07638b" + dependencies: + is-core-module: ^2.13.0 + path-parse: ^1.0.7 + supports-preserve-symlinks-flag: ^1.0.0 + bin: + resolve: bin/resolve + checksum: 9d3b3c67aefd12cecbe5f10ca4d1f51ea190891096497c43f301b086883b426466918c3a64f1bbf1788fabb52b579d58809614006c5d0b49186702b3b8fb746a + languageName: node + linkType: hard + +"resolve@patch:resolve@^1.10.0#~builtin, resolve@patch:resolve@^1.20.0#~builtin, resolve@patch:resolve@^1.22.1#~builtin, resolve@patch:resolve@^1.22.4#~builtin": version: 1.22.4 resolution: "resolve@patch:resolve@npm%3A1.22.4#~builtin::version=1.22.4&hash=07638b" dependencies: @@ -8056,6 +8119,22 @@ __metadata: languageName: node linkType: hard +"web-ifc@npm:0.0.44": + version: 0.0.44 + resolution: "web-ifc@npm:0.0.44" + dependencies: + web-ifc: ^0.0.43 + checksum: 2f9ac32f1015c858698183c74bf39b8c01e93bd794ec90a4800086d8fffd2ae9297fc8b9dbd943357a56b26dbbaefdee88d303f3fe51e528d0841cc48e03006c + languageName: node + linkType: hard + +"web-ifc@npm:^0.0.43": + version: 0.0.43 + resolution: "web-ifc@npm:0.0.43" + checksum: 6464767bf63b987d3f997d34f9d40c11579cfe1702b4966255888598b0629918bcbd132adaee049c62a3ad46334b213650b08531128ac17accc173d53cee9fb6 + languageName: node + linkType: hard + "webidl-conversions@npm:^5.0.0": version: 5.0.0 resolution: "webidl-conversions@npm:5.0.0"